I幀調(diào)整方法、裝置及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及視頻通信技術(shù),尤其涉及一種I峽調(diào)整方法、裝置及系統(tǒng)。
【背景技術(shù)】
[0002]現(xiàn)有技術(shù)中的視頻編碼,通常采用I峽,P峽和B峽進(jìn)行編碼傳輸。其中,I峽主 要是參考本峽進(jìn)行編碼,而P峽主要參考I峽或者P峽,B峽一般會參考I峽,P峽,或者B 峽。因此,I峽編碼輸出編碼比特通常具有較高的碼率。并且,碼率通常為P峽或者B峽的 幾十倍或者上百倍。由于在有I峽輸出時,需要傳輸?shù)臄?shù)據(jù)較多,因此導(dǎo)致一個I峽或者I 片輸出的視頻包較大,在分辨率比較高的情況下,I片或者I峽輸出的包通常會拆包處理。
[0003] 在圖像的實(shí)時傳輸過程中,現(xiàn)有技術(shù)一般會采用實(shí)時傳輸協(xié)議(Realtime TransportProtocol,簡稱;RTP)來承載視頻編碼的視頻包,同時相應(yīng)地進(jìn)行視頻包時延, 碼率等的實(shí)時估計。在視頻流媒體應(yīng)用的一個典型的協(xié)議體系結(jié)構(gòu)中,RTP需要實(shí)時傳輸 控制協(xié)議(RTPControlProtocol,簡稱;RTCP)為其服務(wù)質(zhì)量提供保證,RTCP的主要功能 是:服務(wù)質(zhì)量的監(jiān)視與反饋、媒體間的同步,W及多播組中成員的標(biāo)識。在RTP會話期間,各 參與者周期性地傳送RTCP包。RTCP包中含有已發(fā)送的數(shù)據(jù)包的數(shù)量、丟失的數(shù)據(jù)包的數(shù)量 等統(tǒng)計資料,因此,各參與者可W利用該些信息動態(tài)地改變傳輸速率,甚至改變有效載荷類 型。
[0004] 但是采用現(xiàn)有技術(shù)的RTP協(xié)議與RTCP協(xié)議進(jìn)行視頻數(shù)據(jù)傳輸時,由于通常傳輸時 延就比較大,傳輸?shù)臅r延比較長,該樣在不同峽之間的時延抖動不均衡,在進(jìn)行I包的傳遞 過程中,I包延遲就會比較大,從而導(dǎo)致視頻解碼端視頻輸出依然會出現(xiàn)視頻卡頓的問題。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明提供一種I峽調(diào)整方法、裝置及系統(tǒng),用W在保證視頻數(shù)據(jù)流解碼質(zhì)量的 同時,避免了由于I峽抖動不均勻而造成視頻卡頓的現(xiàn)象。
[0006] 本發(fā)明的第一個方面是提供一種I峽調(diào)整方法,包括:
[0007] 發(fā)送端每次向接收端發(fā)送一個I幀實(shí)時傳送協(xié)議RTP包,對應(yīng)每個所述I幀RTP 包向所述接收端發(fā)送第一實(shí)時傳送控制協(xié)議RTCP發(fā)送端報告,所述第一RTCP發(fā)送端報告 與I峽關(guān)聯(lián),所述第一RTCP發(fā)送端報告采用特殊位標(biāo)識為對應(yīng)I峽的特殊報告;
[0008] 所述發(fā)送端接收所述接收端發(fā)送的第一RTCP接收端報告,所述第一RTCP接收端 報告與I峽關(guān)聯(lián),所述第一RTCP接收端報告包含第一處理時延,所述第一處理時延為所述 接收端收到所述第一發(fā)送端報告到所述接收端發(fā)送所述第一接收端報告的時延;
[0009] 所述發(fā)送端基于RTCP報告間隔向所述接收端發(fā)送第二RTCP發(fā)送端報告;
[0010] 所述發(fā)送端接收所述接收端基于RTCP報告間隔發(fā)送的第二RTCP接收端報告,所 述第二RTCP接收端報告包含第二處理時延,所述第二處理時延為所述接收端收到所述第 二RTCP發(fā)送端報告到所述接收端發(fā)送所述第二RTCP接收端報告的時延;
[0011] 所述發(fā)送端記錄第一時戳、第二時戳、第H時戳和第四時戳,所述第一時戳為所述 發(fā)送端發(fā)送所述第一RTCP發(fā)送端報告的時刻、所述第二時戳為所述發(fā)送端收到所述第一RTCP接收端報告的時刻、所述第H時戳為所述發(fā)送端發(fā)送第二RTCP發(fā)送端報告的時刻、所 述第四時戳為所述發(fā)送端收到所述第二RTCP接收端報告的時刻;
[0012] 所述發(fā)送端根據(jù)所述第一時戳、所述第二時戳、所述第H時戳、所述第四時戳、所 述第一處理時延和所述第二處理時延獲取所述I峽的延時抖動;
[0013] 若所述I峽的延時抖動大于抖動闊值,則增加鄰近I針的間隔進(jìn)行編碼。
[0014] 結(jié)合第一個方面,在第一種可能的實(shí)現(xiàn)方式中,所述發(fā)送端根據(jù)所述第一時戳、所 述第二時戳和所述處理時延獲取所述I峽的延時抖動,包括:
[0015] 通過下面公式獲取所述I峽的等效傳輸時延:
[0016]
【主權(quán)項(xiàng)】
1. 一種I幀調(diào)整方法,其特征在于,包括: 發(fā)送端每次向接收端發(fā)送一個I幀實(shí)時傳送協(xié)議RTP包,對應(yīng)每個所述I幀RTP包向 所述接收端發(fā)送第一實(shí)時傳送控制協(xié)議RTCP發(fā)送端報告,所述第一 RTCP發(fā)送端報告與I 幀關(guān)聯(lián),所述第一 RTCP發(fā)送端報告采用特殊位標(biāo)識為對應(yīng)I幀的特殊報告; 所述發(fā)送端接收所述接收端發(fā)送的第一 RTCP接收端報告,所述第一 RTCP接收端報告 與I幀關(guān)聯(lián),所述第一 RTCP接收端報告包含第一處理時延,所述第一處理時延為所述接收 端收到所述第一發(fā)送端報告到所述接收端發(fā)送所述第一接收端報告的時延; 所述發(fā)送端基于RTCP報告間隔向所述接收端發(fā)送第二RTCP發(fā)送端報告; 所述發(fā)送端接收所述接收端基于RTCP報告間隔發(fā)送的第二RTCP接收端報告,所述 第二RTCP接收端報告包含第二處理時延,所述第二處理時延為所述接收端收到所述第二 RTCP發(fā)送端報告到所述接收端發(fā)送所述第二RTCP接收端報告的時延; 所述發(fā)送端記錄第一時戳、第二時戳、第三時戳和第四時戳,所述第一時戳為所述發(fā)送 端發(fā)送所述第一 RTCP發(fā)送端報告的時刻、所述第二時戳為所述發(fā)送端收到所述第一 RTCP 接收端報告的時刻、所述第三時戳為所述發(fā)送端發(fā)送第二RTCP發(fā)送端報告的時刻、所述第 四時戳為所述發(fā)送端收到所述第二RTCP接收端報告的時刻; 所述發(fā)送端根據(jù)所述第一時戳、所述第二時戳、所述第三時戳、所述第四時戳、所述第 一處理時延和所述第二處理時延獲取所述I幀的延時抖動; 若所述I幀的延時抖動大于抖動閾值,則增加鄰近I針的間隔進(jìn)行編碼。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述發(fā)送端根據(jù)所述第一時戳、所述第二 時戳和所述處理時延獲取所述I幀的延時抖動,包括: 通過下面公式獲取所述I幀的等效傳輸時延:
其中,所述Dlk為所述第k個I幀的等效傳輸時延,所述為所述發(fā)送端發(fā)送所述 第一 RTCP發(fā)送端報告的第一時戳,所述第一 RTCP發(fā)送端報告與所述第k個I幀的第η個 RTP包對應(yīng),所述7^",7?為所述發(fā)送端接收所述第一 RTCP接收端報告的第二時戳,所述第一 RTCP接收端報告與所述第k個I幀的第η個RTP包對應(yīng),所述DLSRln為所述第一 RTCP接 收端報告包含的第一處理時延,N為所述第k個I幀所分解對應(yīng)的RTP包數(shù)目,應(yīng)為大于或 等于1的整數(shù),所述η的取值范圍為[1,N],所述k為順序記錄的I幀的索引號; 通過下面公式獲取視頻幀的等效傳輸時延:
其中,所述D1 SRTP流數(shù)據(jù)的等效傳輸時延,所述^?,為所述基于時間間隔發(fā)送的所 述第二RTCP發(fā)送端報告對應(yīng)的第三時戳,所述^^;為與所述基于時間間隔收到所述第二 RTCP接收端報告對應(yīng)的第四時戳,所述DLSR1為所述標(biāo)準(zhǔn)RTCP接收端報告包含的第二處理 時延,所述1為順序記錄的基于時間間隔按序發(fā)送的RTCP報告的索引號; 通過下面公式獲取所述I幀的延時抖動: ^ jetter ^Ik avg ^l avg 其中,所述Aette為所述I幀的延時抖動,所述Dlk avg為所述I幀的傳輸時延的長期平 滑,所述D1 avg為視頻幀的傳輸時延的長期平滑; 通過下面公式獲取所述Dlk avg :
其中,所述^為對I幀等效傳輸時延進(jìn)行長期平滑的濾波因子,取值范圍為[〇.〇, 1. 〇],所述D10^為第k-Ι個I幀的等效傳輸時延; 通過下面公式獲取所述視頻幀的傳輸時延的長期平滑:
其中,所述^為對視頻幀等效傳輸時延進(jìn)行長期平滑的濾波因子,取值范圍為[〇.〇, 1. 〇],所述Dw為第1-1個所述第二RTCP報告的等效傳輸時延,所述D1為第1個所述第二 RTCP報告的等效傳輸時延。
3. 根據(jù)權(quán)利要求2所述的方法,其特征在于,若存在所述第一 RTCP發(fā)送端報告或所述 第一 RTCP接收端報告丟失無法進(jìn)行計算,則通過下面公式獲取所述Dlk : Dik-D11 ax 其中,所述DMax為所定義的最大傳輸時延; 若存在所述第二RTCP發(fā)送端報告或所述第二RTCP接收端報告丟失無法進(jìn)行計算,則 通過下面公式獲取所述D1: Di-Dllax。
4. 根據(jù)權(quán)利要求1-3任意一項(xiàng)所述的方法,其特征在于,所述抖動閾值包括:第一抖動 閾值和第二抖動閾值; 所述若所述I幀的延時抖動大于抖動閾值,則增加鄰近I針的間隔進(jìn)行編碼,包括: 若所述大于所述第一抖動閾值,則觸發(fā)I幀轉(zhuǎn)換,每隔一個I幀,將下一個I幀 轉(zhuǎn)換為P幀或B幀進(jìn)行編碼,并且每轉(zhuǎn)換一次I幀格式,則對累計轉(zhuǎn)換次數(shù)m加1 ; 當(dāng)所述m值累計達(dá)到M次,所述M為大于或等于1的整數(shù)或者所述D^tte連續(xù)R次大 于所述第二抖動閾值,則增大相鄰I幀的間隔,所述R為大于或等于1的整數(shù),所述第二抖 動閾值大于所述第一抖動閾值; 其中,新的相鄰I幀的間隔通過以下公式獲得: Dlst-new_Dist-〇id+Diststep 其中,所述Dlst n"為所述新的相鄰I幀的間隔,所述Dlst。1(1為上一次采用的I幀間隔, 所述Diststep為預(yù)設(shè)的I幀間隔改變的步長。
5. 根據(jù)權(quán)利要求4所述的方法,其特征在于,所述Dlst。1(1初始值為Dlst」,所述D lst」為 標(biāo)準(zhǔn)相鄰I幀的間隔。
6. 根據(jù)權(quán)利要求4所述的方法,其特征在于,若所述Dlst nOT大于等于間隔最大值,則所 述新的相鄰I幀的間隔取值為所述間隔最大值。
7. 根據(jù)權(quán)利要求4所述的方法,其特征在于,還包括: 若所述累計轉(zhuǎn)換次數(shù)m未達(dá)到M次,且所述小于或等于所述第一抖動閾值,則停 止I幀轉(zhuǎn)換動作。
8. 根據(jù)權(quán)利要求4所述的方法,其特征在于,還包括: 若所述D^ttw連續(xù)R次小于或等于所述第二抖動閾值,則減少I幀間隔;其中,新的相