視頻傳輸處理方法及裝置的制造方法
【專利摘要】本發(fā)明公開了一種視頻傳輸處理方法及裝置。其中,視頻傳輸處理方法包括:接收至少一視頻幀;根據(jù)視頻幀發(fā)送隊列長度與參考隊列長度的偏差值以及上一次計算得到的丟包率,計算本次的丟包率;根據(jù)本次的丟包率,確定對接收到的視頻幀是否進行丟棄處理?;谏鲜鰧嵤┓桨?,可以動態(tài)調(diào)整視頻幀的丟包率,從而能夠精確地確定是否對視頻幀進行丟棄處理,避免了僅用同一丟包率對視頻幀進行丟棄處理造成的不合理丟棄問題,以及在網(wǎng)絡出現(xiàn)問題時而導致的集中丟棄一段連續(xù)的視頻幀的問題,使得對視頻幀丟棄處理更為合理,實現(xiàn)了在網(wǎng)絡狀況較差時,也能夠流暢播放視頻的效果,避免出現(xiàn)視頻畫面不清晰,甚至出現(xiàn)視頻畫面卡住的情況。
【專利說明】
視頻傳輸處理方法及裝置
技術領域
[0001 ]本發(fā)明涉及通信技術領域,具體涉及一種視頻傳輸處理方法及裝置。
【背景技術】
[0002] 隨著Internet的不斷發(fā)展,人們希望在網(wǎng)上傳送更多的多媒體信息。視頻信號的 傳輸是多媒體信息傳輸?shù)暮诵?。視頻傳輸一般是采用無線網(wǎng)絡傳輸,然而,受無線網(wǎng)絡的穩(wěn) 定性和帶寬不足的影響,很容易出現(xiàn)不合理丟包的問題。
[0003] 在無線網(wǎng)絡環(huán)境較差時,很容易出現(xiàn)視頻幀發(fā)送隊列中的視頻幀未被及時發(fā)送出 去的情況,而當視頻幀發(fā)送隊列的長度達到極限值后,在后續(xù)的視頻傳輸過程中,視頻發(fā)送 裝置所接收到的視頻幀將會被直接丟棄,待視頻幀發(fā)送隊列有空間放入視頻幀后,才會將 后續(xù)接收到的視頻幀放入到視頻幀發(fā)送隊列,若無線網(wǎng)絡環(huán)境差的情況持續(xù)時間較長時, 就很可能出現(xiàn)一段連續(xù)的視頻幀被集中丟棄,這樣就會造成視頻接收裝置所接收到的視頻 幀也會不完整,導致嚴重的數(shù)據(jù)缺失,在對視頻幀進行解碼后,得到的不再是完整的視頻畫 面,容易出現(xiàn)視頻畫面不清晰,甚至出現(xiàn)視頻畫面卡住的情況,視頻的播放不流暢。因此如 何在網(wǎng)絡不穩(wěn)定、帶寬有限的無線網(wǎng)絡上進行視頻的流暢播放,是一個迫切需要解決的問 題。
【發(fā)明內(nèi)容】
[0004] 鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上 述問題的視頻傳輸處理方法和相應的視頻傳輸處理裝置。
[0005] 根據(jù)本發(fā)明的一個方面,提供了一種視頻傳輸處理方法,包括:
[0006] 接收至少一視頻幀;
[0007] 根據(jù)視頻幀發(fā)送隊列長度與參考隊列長度的偏差值以及上一次計算得到的丟包 率,計算本次的丟包率;
[0008] 根據(jù)本次的丟包率,確定對接收到的視頻幀是否進行丟棄處理。
[0009 ]根據(jù)本發(fā)明的另一方面,提供了一種視頻傳輸處理裝置,包括:
[0010]接收模塊,適于接收至少一視頻幀;
[0011] 計算模塊,適于根據(jù)視頻幀發(fā)送隊列長度與參考隊列長度的偏差值以及上一次計 算得到的丟包率,計算本次的丟包率;
[0012] 處理模塊,適于根據(jù)本次的丟包率,確定對接收到的視頻幀是否進行丟棄處理。
[0013] 根據(jù)本發(fā)明提供的方案,接收至少一視頻幀;根據(jù)視頻幀發(fā)送隊列長度與參考隊 列長度的偏差值以及上一次計算得到的丟包率,計算本次的丟包率;根據(jù)本次的丟包率,確 定對接收到的視頻幀是否進行丟棄處理?;谏鲜鰧嵤┓桨?,可以動態(tài)調(diào)整視頻幀的丟包 率,從而能夠精確地確定是否對視頻幀進行丟棄處理,避免了僅用同一丟包率對視頻幀進 行丟棄處理造成的不合理丟棄問題,以及在網(wǎng)絡出現(xiàn)問題時而導致的集中丟棄一段連續(xù)的 視頻幀的問題,使得對視頻幀丟棄處理更為合理,實現(xiàn)了在網(wǎng)絡狀況較差時,也能夠流暢播 放視頻的效果,避免出現(xiàn)視頻畫面不清晰,甚至出現(xiàn)視頻畫面卡住的情況。
[0014] 上述說明僅是本發(fā)明技術方案的概述,為了能夠更清楚了解本發(fā)明的技術手段, 而可依照說明書的內(nèi)容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠 更明顯易懂,以下特舉本發(fā)明的【具體實施方式】。
【附圖說明】
[0015] 通過閱讀下文優(yōu)選實施方式的詳細描述,各種其他的優(yōu)點和益處對于本領域普通 技術人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認為是對本發(fā)明 的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:
[0016] 圖1示出了根據(jù)本發(fā)明一個實施例的視頻傳輸處理方法的流程示意圖;
[0017] 圖2示出了根據(jù)本發(fā)明另一個實施例的視頻傳輸處理方法的流程示意圖;
[0018] 圖3示出了根據(jù)本發(fā)明一個實施例的視頻傳輸處理裝置的結構框圖;
[0019] 圖4示出了根據(jù)本發(fā)明另一個實施例的視頻傳輸處理裝置的結構框圖。
【具體實施方式】
[0020] 下面將參照附圖更詳細地描述本公開的示例性實施例。雖然附圖中顯示了本公開 的示例性實施例,然而應當理解,可以以各種形式實現(xiàn)本公開而不應被這里闡述的實施例 所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍 完整的傳達給本領域的技術人員。
[0021] 本發(fā)明的實施例提供一種視頻傳輸處理方法,可以應用于進行實時視頻的網(wǎng)絡傳 輸?shù)膽脠鼍爸?,例如視頻會議,視頻點播等。本發(fā)明的實施例以視頻點播的應用場景為例 進行說明。概括地講,視頻點播系統(tǒng)包括視頻發(fā)送裝置和視頻接收裝置。其中,視頻發(fā)送裝 置通過攝像獲取視頻幀隊列,并對視頻幀隊列進行編碼后通過網(wǎng)絡向視頻接收裝置發(fā)送。 發(fā)送方式包括寬帶網(wǎng)絡、3G網(wǎng)絡或者4G網(wǎng)絡等,不斷變化的網(wǎng)絡環(huán)境對視頻播放流暢度的 影響十分顯著,本發(fā)明的實施例所提供的視頻傳輸處理方法,其目的即在于在不斷變化的 網(wǎng)絡環(huán)境下進行視頻網(wǎng)絡點播時,提高視頻播放的流暢度。
[0022]圖1示出了根據(jù)本發(fā)明一個實施例的視頻傳輸處理方法的流程示意圖。如圖1所 示,該方法包括以下步驟:
[0023]步驟SlOO,接收至少一視頻幀。
[0024]具體地,視頻幀是視頻中最小單位的視頻畫面,一個視頻由多個視頻幀組成,視頻 發(fā)送裝置通過攝像獲取視頻幀隊列,即接收至少一視頻幀。
[0025]步驟SlOl,根據(jù)視頻幀發(fā)送隊列長度與參考隊列長度的偏差值以及上一次計算得 到的丟包率,計算本次的丟包率。
[0026] 其中,視頻幀發(fā)送隊列長度指視頻發(fā)送裝置通過網(wǎng)絡發(fā)送至視頻接收裝置的視頻 幀的長度,視頻幀數(shù)體現(xiàn)了視頻幀發(fā)送隊列的長度;參考隊列長度是根據(jù)視頻幀發(fā)送隊列 長度的極限值確定的,在實際情況中,視頻幀發(fā)送隊列長度可能小于或等于參考隊列長度。 參考隊列長度是根據(jù)當前網(wǎng)絡狀況等進行設定的,本領域技術人員可以根據(jù)實際需要進行 設定,這里不做具體限定。
[0027] 在本發(fā)明實施例中,在計算本次的丟包率時,需要將上一次計算得到的丟包率作 為參考因數(shù)來計算本次的丟包率,也就是說,上一次計算得到的丟包率對本次的丟包率具 有一定的影響;視頻幀發(fā)送隊列長度與參考隊列長度的偏差值體現(xiàn)了視頻幀發(fā)送隊列還能 放入的視頻幀數(shù),該偏差值作為參考因數(shù)來計算本次的丟包率,也就是說,該偏差值對本次 的丟包率具有一定的影響,具體地,根據(jù)視頻幀發(fā)送隊列長度與參考隊列長度的偏差值以 及上一次計算得到的丟包率,計算本次的丟包率。
[0028] 步驟S102,根據(jù)本次的丟包率,確定對接收到的視頻幀是否進行丟棄處理。
[0029] 在根據(jù)步驟SlOl計算得到本次的丟包率后,則能夠確定是否對接收到的視頻幀進 行丟棄處理。
[0030] 根據(jù)本發(fā)明上述實施例提供的視頻傳輸處理方法,接收至少一視頻幀;根據(jù)視頻 幀發(fā)送隊列長度與參考隊列長度的偏差值以及上一次計算得到的丟包率,計算本次的丟包 率;根據(jù)本次的丟包率,確定對接收到的視頻幀是否進行丟棄處理?;谏鲜鰧嵤┓桨?,可 以動態(tài)調(diào)整視頻幀的丟包率,從而能夠精確地確定是否對視頻幀進行丟棄處理,避免了僅 用同一丟包率對視頻幀進行丟棄處理造成的不合理丟棄問題,以及在網(wǎng)絡出現(xiàn)問題時而導 致的集中丟棄一段連續(xù)的視頻幀的問題,使得對視頻幀丟棄處理更為合理,實現(xiàn)了在網(wǎng)絡 狀況較差時,也能夠流暢播放視頻的效果,避免出現(xiàn)視頻畫面不清晰,甚至出現(xiàn)視頻畫面卡 住的情況。
[0031] 圖2示出了根據(jù)本發(fā)明另一個實施例的視頻傳輸處理方法的流程示意圖。如圖2所 示,該方法包括以下步驟:
[0032]步驟S200,接收至少一視頻幀。
[0033]步驟S201,根據(jù)視頻幀發(fā)送隊列長度與參考隊列長度的偏差值以及上一次計算得 到的丟包率,計算本次的丟包率。
[0034] 其中,視頻幀發(fā)送隊列長度指視頻發(fā)送裝置通過網(wǎng)絡發(fā)送至視頻接收裝置的視頻 幀的長度,視頻幀數(shù)體現(xiàn)了視頻幀發(fā)送隊列的長度;參考隊列長度是根據(jù)視頻幀發(fā)送隊列 長度的極限值確定的,在實際情況中,視頻幀發(fā)送隊列長度可能小于或等于參考隊列長度。 參考隊列長度是根據(jù)當前網(wǎng)絡狀況等進行設定的,本領域技術人員可以根據(jù)實際需要進行 設定,這里不做具體限定。
[0035] 在本發(fā)明實施例中,具體可以采用如下方法計算本次的丟包率:
[0036] 方法一:
[0037] 當?shù)竭_定時時間時,根據(jù)視頻幀發(fā)送隊列長度與參考隊列長度的偏差值以及上一 次計算得到的丟包率,計算本次的丟包率,也就是說,需要預先設定好計算丟包率的時間, 當?shù)竭_設定時間時,根據(jù)視頻幀發(fā)送隊列長度與參考隊列長度的偏差值以及上一次計算得 到的丟包率,計算本次的丟包率,舉例說明,預先設定每隔5秒鐘計算一次丟包率,當距離上 一次計算丟包率的時間為5秒鐘時,根據(jù)視頻幀發(fā)送隊列長度與參考隊列長度的偏差值以 及上一次計算得到的丟包率,計算本次的丟包率,這里對所設定的時間僅僅是舉例說明,不 具有任何限定作用,本領域技術人員可以根據(jù)實際需要進行設定,在此不再贅述。
[0038]方法二:
[0039] 當視頻幀發(fā)送隊列長度達到第一預設閾值時,根據(jù)視頻幀發(fā)送隊列長度與參考隊 列長度的偏差值以及上一次計算得到的丟包率,計算本次的丟包率。
[0040] 其中,第一預設閾值可以根據(jù)參考隊列長度進行設定,一般情況下,第一預設閾值 小于參考隊列長度,例如可以將第一預設閾值設定為參考隊列長度的二分之一,當視頻幀 發(fā)送隊列長度達到第一預設閾值時,說明此時需要計算所接收到的視頻幀的丟包率,從而 進一步確定是否需要對接收到的視頻幀進行丟棄處理,對于第一預設閾值的設定這里僅僅 是舉例說明,不具有任何限定作用,本領域技術人員可以根據(jù)實際需要進行設定。
[0041 ] 方法三:
[0042] 當視頻幀發(fā)送隊列長度變化值達到第二預設閾值時,根據(jù)視頻幀發(fā)送隊列長度與 參考隊列長度的偏差值以及上一次計算得到的丟包率,計算本次的丟包率。
[0043] 其中,視頻幀發(fā)送隊列長度變化值體現(xiàn)了單位時間內(nèi)新放入到視頻幀發(fā)送隊列中 的視頻幀數(shù),例如,可以設定第二預設閾值為20幀/毫秒,每隔預定時間例如10毫秒檢測一 下視頻幀發(fā)送隊列長度,確定視頻幀發(fā)送隊列長度變化值,當視頻幀發(fā)送隊列長度變化值 達到20幀/毫秒時,說明此時需要計算所接收到的視頻幀的丟包率,從而進一步確定是否需 要對接收到的視頻幀進行丟棄處理,若視頻幀發(fā)送隊列長度變化值未達到20幀/毫秒,則不 進行丟包率計算。對于第二預設閾值的設定這里僅僅是舉例說明,不具有任何限定作用,本 領域技術人員可以根據(jù)實際需要進行設定。
[0044] 在本發(fā)明實施例中,可以利用如下公式計算第k次的丟包率:
[0045] p(k) = p(k_l )+KP[e(k)-e(k_l) ]+Kie(k)+Kd[e(k)-2e(k_l )+e(k_2)];
[0046] 其中,p(k),p(k_l)分別表示第k次和第k-1次的丟包率;6(1〇,6仏-1), 6仏-2)分別 表示第k次、第k-Ι次和第k-2次的視頻幀發(fā)送隊列長度與參考隊列長度的偏差值;KP,Ki,Kd 分別表示比例系數(shù)、積分系數(shù)和微分系數(shù)。
[0047] 利用上述公式能夠精確地計算得到本次的丟包率,進一步提升了對視頻幀丟棄處 理的準確性。
[0048]步驟S202,根據(jù)標志位對視頻幀進行識別處理,確定視頻幀是否為關鍵幀,若否, 則執(zhí)行步驟S203;若是,則執(zhí)行步驟S206。
[0049] 其中,經(jīng)過編碼所得的視頻幀可以是關鍵幀(I幀)或者非關鍵幀(P幀)。關鍵幀記 錄了一幀完整的視頻畫面,如果一個視頻幀為關鍵幀,視頻播放裝置通過解碼該視頻幀就 可以得到完整的視頻畫面。非關鍵幀記錄了一幀視頻與另一幀視頻(參考幀)所不同的部 分,如果一個視頻幀為非關鍵幀,視頻接收裝置需要基于該視頻的參考幀對該視頻幀進行 解碼,得到完整的視頻畫面。一個非關鍵幀可以引用關鍵幀為參考幀,對于一個非關鍵幀, 如果其參考幀丟失,視頻接收裝置即使接收到該視頻幀,在播放該幀時也可能出現(xiàn)花屏或 者馬賽克。
[0050] 視頻中,每個關鍵幀都有唯一的標志位,將關鍵幀彼此區(qū)分開,將關鍵幀與非關鍵 幀區(qū)分開。在本實施例中,根據(jù)標志位可以確定視頻幀是否為關鍵幀,而確定視頻幀是否為 關鍵幀主要是為了確定是否對視頻幀進行丟棄處理,若不是關鍵幀,則可以根據(jù)所計算得 到的丟包率對視頻幀進行丟棄處理,若是關鍵幀,則不能丟棄,需要放入到視頻幀發(fā)送隊 列。
[0051] 步驟S203,設定隨機數(shù)生成區(qū)間,并根據(jù)本次的丟包率在隨機數(shù)生成區(qū)間內(nèi)設定 丟包區(qū)間。
[0052]具體地,預先設定一最大值和一最小值,構成隨機數(shù)生成區(qū)間,即,預先設定隨機 數(shù)生成區(qū)間,在設定好隨機數(shù)生成區(qū)間后,隨機數(shù)僅能在該隨機數(shù)生成區(qū)間中生成。
[0053]在根據(jù)步驟S202計算得到本次的丟包率后,根據(jù)本次的丟包率在隨機數(shù)生成區(qū)間 內(nèi)設定丟包區(qū)間,也就是說,該丟包區(qū)間確定了對非關鍵幀進行丟棄處理的最大值和最小 值,例如,設定隨機數(shù)生成區(qū)間為[0,1],根據(jù)步驟S202計算得到本次的丟包率為0.6,根據(jù) 本次的丟包率在隨機數(shù)生成區(qū)間內(nèi)設定丟包區(qū)間為[0,0.6],也就是說,在該區(qū)間內(nèi)將丟棄 對非關鍵幀進彳丁丟棄處理。
[0054]步驟S204,生成位于隨機數(shù)生成區(qū)間內(nèi)的一隨機數(shù),判斷隨機數(shù)是否位于丟包區(qū) 間內(nèi),若是,則執(zhí)行步驟S205;若否,則執(zhí)行步驟206。
[0055]具體地,在根據(jù)步驟S203設定丟包區(qū)間后,便可以進行視頻幀的丟棄處理,對于視 頻幀的丟棄處理是隨機的,也就是說,在隨機數(shù)生成區(qū)間中隨機生成一數(shù)值,作為視頻幀是 否被丟棄處理的判斷依據(jù),當隨機數(shù)位于丟包區(qū)間時,則需要對視頻幀進行丟棄處理,當隨 機數(shù)不在丟包區(qū)間時,則不對視頻幀進行丟棄處理。
[0056]步驟S205,對接收到的視頻幀進行丟棄處理。
[0057]具體地,在根據(jù)步驟S204判斷出隨機數(shù)位于丟包區(qū)間內(nèi)的情況下,將對接收到的 非關鍵幀進行丟棄處理。
[0058]步驟S206,將接收的視頻幀中的未被丟棄的視頻幀放入視頻幀發(fā)送隊列。
[0059] 具體地,在根據(jù)步驟S204判斷出隨機數(shù)不在丟包區(qū)間內(nèi)的情況下,將不對接收到 的非關鍵幀進行丟棄處理,而是將該非關鍵幀放入視頻幀發(fā)送隊列。在視頻幀為關鍵幀的 情況下,將該關鍵幀放入視頻幀發(fā)送隊列,等待發(fā)送。
[0060] 根據(jù)本發(fā)明上述實施例提供的視頻傳輸處理方法,接收至少一視頻幀,根據(jù)視頻 幀發(fā)送隊列長度與參考隊列長度的偏差值以及上一次計算得到的丟包率,計算本次的丟包 率,根據(jù)標志位對視頻幀進行識別處理,確定視頻幀是否為關鍵幀,若否,則設定隨機數(shù)生 成區(qū)間,并根據(jù)本次的丟包率在隨機數(shù)生成區(qū)間內(nèi)設定丟包區(qū)間,生成位于隨機數(shù)區(qū)間內(nèi) 的一隨機數(shù),判斷隨機數(shù)是否位于丟包區(qū)間內(nèi),若是,則對接收到的視頻幀進行丟棄處理。 基于上述實施方案,可以動態(tài)調(diào)整視頻幀的丟包率,從而能夠精確地確定是否對視頻幀進 行丟棄處理,避免了僅用同一丟包率對視頻幀進行丟棄處理造成的不合理丟棄問題,以及 在網(wǎng)絡出現(xiàn)問題時而導致的集中丟棄一段連續(xù)的視頻幀的問題,而且,可以僅針對非關鍵 幀進行丟棄處理,避免了因丟棄關鍵幀而導致非關鍵幀因沒有參考幀而無法正確顯示畫面 的缺陷,使得對視頻幀丟棄處理更為合理,實現(xiàn)了在網(wǎng)絡狀況較差時,也能夠流暢播放視頻 的效果,避免出現(xiàn)視頻畫面不清晰,甚至出現(xiàn)視頻畫面卡住的情況。
[0061] 圖3示出了根據(jù)本發(fā)明一個實施例的視頻傳輸處理裝置的結構框圖。如圖3所示, 該裝置包括:接收模塊300、計算模塊310和處理模塊320。
[0062]接收模塊300,適于接收至少一視頻幀。
[0063]計算模塊310,適于根據(jù)視頻幀發(fā)送隊列長度與參考隊列長度的偏差值以及上一 次計算得到的丟包率,計算本次的丟包率。
[0064]處理模塊320,適于根據(jù)本次的丟包率,確定對接收到的視頻幀是否進行丟棄處 理。
[0065]根據(jù)本發(fā)明上述實施例提供的視頻傳輸處理裝置,接收至少一視頻幀;根據(jù)視頻 幀發(fā)送隊列長度與參考隊列長度的偏差值以及上一次計算得到的丟包率,計算本次的丟包 率;根據(jù)本次的丟包率,確定對接收到的視頻幀是否進行丟棄處理。基于上述實施方案,可 以動態(tài)調(diào)整視頻幀的丟包率,從而能夠精確地確定是否對視頻幀進行丟棄處理,避免了僅 用同一丟包率對視頻幀進行丟棄處理造成的不合理丟棄問題,以及在網(wǎng)絡出現(xiàn)問題時而導 致的集中丟棄一段連續(xù)的視頻幀的問題,使得對視頻幀丟棄處理更為合理,實現(xiàn)了在網(wǎng)絡 狀況較差時,也能夠流暢播放視頻的效果,避免出現(xiàn)視頻畫面不清晰,甚至出現(xiàn)視頻畫面卡 住的情況。
[0066]圖4示出了根據(jù)本發(fā)明另一個實施例的視頻傳輸處理裝置的結構框圖。如圖4所 示,該裝置包括:接收模塊400、計算模塊410和處理模塊420。
[0067]接收模塊400,適于接收至少一視頻幀。
[0068]計算模塊410,適于根據(jù)視頻幀發(fā)送隊列長度與參考隊列長度的偏差值以及上一 次計算得到的丟包率,計算本次的丟包率。
[0069]處理模塊420,適于根據(jù)本次的丟包率,確定對接收到的視頻幀是否進行丟棄處 理。
[0070] 可選地,計算模塊410進一步適于:當?shù)竭_定時時間時,根據(jù)視頻幀發(fā)送隊列長度 與參考隊列長度的偏差值以及上一次計算得到的丟包率,計算本次的丟包率。
[0071] 可選地,計算模塊410進一步適于:當視頻幀發(fā)送隊列長度達到第一預設閾值時, 根據(jù)視頻幀發(fā)送隊列長度與參考隊列長度的偏差值以及上一次計算得到的丟包率,計算本 次的丟包率。
[0072]可選地,計算模塊410進一步適于:當視頻幀發(fā)送隊列長度變化值達到第二預設閾 值時,根據(jù)視頻幀發(fā)送隊列長度與參考隊列長度的偏差值以及上一次計算得到的丟包率, 計算本次的丟包率。
[0073]可選地,參考隊列長度是根據(jù)視頻幀發(fā)送隊列長度的極限值確定的。
[0074] 可選地,處理模塊420進一步包括:設定單元421和處理單元422。
[0075]設定單元421,適于設定隨機數(shù)生成區(qū)間,并根據(jù)本次的丟包率在隨機數(shù)生成區(qū)間 內(nèi)設定丟包區(qū)間。
[0076]處理單元422,適于生成位于隨機數(shù)生成區(qū)間內(nèi)的一隨機數(shù),判斷隨機數(shù)是否位于 丟包區(qū)間內(nèi),若是,則對接收到的視頻幀進行丟棄處理。
[0077] 可選地,裝置還包括:識別模塊430,適于根據(jù)標志位對視頻幀進行識別處理,確定 視頻幀是否為關鍵幀。
[0078]處理模塊420進一步適于:在識別模塊識別出視頻幀不是關鍵幀的情況下,根據(jù)本 次的丟包率,確定對接收到的視頻幀是否進行丟棄處理。
[0079] 可選地,計算模塊410進一步適于:
[0080] 利用公式:批幻=1)+乓2e 妒玲 e. 計算第k次的丟包率;
[0081] 其中,p(k),p(k_l)分別表示第k次和第k-Ι次的丟包率;
[0082] e(k),e(k-l),e(k-2)分別表示第k次、第k-Ι次和第k-2次的視頻幀發(fā)送隊列長度 與參考隊列長度的偏差值;
[0083 ] Kp,Ki,Kd分別表不比例系數(shù)、積分系數(shù)和微分系數(shù)。
[0084]可選地,裝置還包括:添加模塊440,適于將接收的視頻幀中的未被丟棄的視頻幀 放入視頻幀發(fā)送隊列。
[0085] 根據(jù)本發(fā)明上述實施例提供的視頻傳輸處理裝置,接收至少一視頻幀,根據(jù)視頻 幀發(fā)送隊列長度與參考隊列長度的偏差值以及上一次計算得到的丟包率,計算本次的丟包 率,根據(jù)標志位對視頻幀進行識別處理,確定視頻幀是否為關鍵幀,若否,則設定隨機數(shù)生 成區(qū)間,并根據(jù)本次的丟包率在隨機數(shù)生成區(qū)間內(nèi)設定丟包區(qū)間,生成位于隨機數(shù)區(qū)間內(nèi) 的一隨機數(shù),判斷隨機數(shù)是否位于丟包區(qū)間內(nèi),若是,則對接收到的視頻幀進行丟棄處理。 基于上述實施方案,可以動態(tài)調(diào)整視頻幀的丟包率,從而能夠精確地確定是否對視頻幀進 行丟棄處理,避免了僅用同一丟包率對視頻幀進行丟棄處理造成的不合理丟棄問題,以及 在網(wǎng)絡出現(xiàn)問題時而導致的集中丟棄一段連續(xù)的視頻幀的問題,而且,可以僅針對非關鍵 幀進行丟棄處理,避免了因丟棄關鍵幀而導致非關鍵幀因沒有參考幀而無法正確顯示畫面 的缺陷,使得對視頻幀丟棄處理更為合理,實現(xiàn)了在網(wǎng)絡狀況較差時,也能夠流暢播放視頻 的效果,避免出現(xiàn)視頻畫面不清晰,甚至出現(xiàn)視頻畫面卡住的情況。
[0086] 在此提供的算法和顯示不與任何特定計算機、虛擬系統(tǒng)或者其它設備固有相關。 各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構造這類系統(tǒng)所要求 的結構是顯而易見的。此外,本發(fā)明也不針對任何特定編程語言。應當明白,可以利用各種 編程語言實現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對特定語言所做的描述是為了披露本發(fā) 明的最佳實施方式。
[0087] 在此處所提供的說明書中,說明了大量具體細節(jié)。然而,能夠理解,本發(fā)明的實施 例可以在沒有這些具體細節(jié)的情況下實踐。在一些實例中,并未詳細示出公知的方法、結構 和技術,以便不模糊對本說明書的理解。
[0088]類似地,應當理解,為了精簡本公開并幫助理解各個發(fā)明方面中的一個或多個,在 上面對本發(fā)明的示例性實施例的描述中,本發(fā)明的各個特征有時被一起分組到單個實施 例、圖、或者對其的描述中。然而,并不應將該公開的方法解釋成反映如下意圖:即所要求保 護的本發(fā)明要求比在每個權利要求中所明確記載的特征更多的特征。更確切地說,如下面 的權利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個實施例的所有特征。因此, 遵循【具體實施方式】的權利要求書由此明確地并入該【具體實施方式】,其中每個權利要求本身 都作為本發(fā)明的單獨實施例。
[0089]本領域那些技術人員可以理解,可以對實施例中的設備中的模塊進行自適應性地 改變并且把它們設置在與該實施例不同的一個或多個設備中??梢园褜嵤├械哪K或單 元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或 子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何 組合對本說明書(包括伴隨的權利要求、摘要和附圖)中公開的所有特征以及如此公開的任 何方法或者設備的所有過程或單元進行組合。除非另外明確陳述,本說明書(包括伴隨的權 利要求、摘要和附圖)中公開的每個特征可以由提供相同、等同或相似目的的替代特征來代 替。
[0090] 此外,本領域的技術人員能夠理解,盡管在此所述的一些實施例包括其它實施例 中所包括的某些特征而不是其它特征,但是不同實施例的特征的組合意味著處于本發(fā)明的 范圍之內(nèi)并且形成不同的實施例。例如,在下面的權利要求書中,所要求保護的實施例的任 意之一都可以以任意的組合方式來使用。
[0091] 本發(fā)明的各個部件實施例可以以硬件實現(xiàn),或者以在一個或者多個處理器上運行 的軟件模塊實現(xiàn),或者以它們的組合實現(xiàn)。本領域的技術人員應當理解,可以在實踐中使用 微處理器或者數(shù)字信號處理器(DSP)來實現(xiàn)根據(jù)本發(fā)明實施例的視頻傳輸處理設備中的一 些或者全部部件的一些或者全部功能。本發(fā)明還可以實現(xiàn)為用于執(zhí)行這里所描述的方法的 一部分或者全部的設備或者裝置程序(例如,計算機程序和計算機程序產(chǎn)品)。這樣的實現(xiàn) 本發(fā)明的程序可以存儲在計算機可讀介質(zhì)上,或者可以具有一個或者多個信號的形式。這 樣的信號可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號上提供,或者以任何其他形式提 供。
[0092] 應該注意的是上述實施例對本發(fā)明進行說明而不是對本發(fā)明進行限制,并且本領 域技術人員在不脫離所附權利要求的范圍的情況下可設計出替換實施例。在權利要求中, 不應將位于括號之間的任何參考符號構造成對權利要求的限制。單詞"包含"不排除存在未 列在權利要求中的元件或步驟。位于元件之前的單詞"一"或"一個"不排除存在多個這樣的 元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當編程的計算機來實 現(xiàn)。在列舉了若干裝置的單元權利要求中,這些裝置中的若干個可以是通過同一個硬件項 來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名 稱。
[0093] 本發(fā)明公開了 :A1、一種視頻傳輸處理方法,包括:
[0094]接收至少一視頻幀;
[0095] 根據(jù)視頻幀發(fā)送隊列長度與參考隊列長度的偏差值以及上一次計算得到的丟包 率,計算本次的丟包率;
[0096] 根據(jù)所述本次的丟包率,確定對接收到的視頻幀是否進行丟棄處理。
[0097] A2、根據(jù)Al所述的方法,其中,所述根據(jù)視頻幀發(fā)送隊列長度與參考隊列長度的偏 差值以及上一次計算得到的丟包率,計算本次的丟包率進一步包括:
[0098] 當?shù)竭_定時時間時,根據(jù)視頻幀發(fā)送隊列長度與參考隊列長度的偏差值以及上一 次計算得到的丟包率,計算本次的丟包率。
[0099] A3、根據(jù)Al所述的方法,其中,所述根據(jù)視頻幀發(fā)送隊列長度與參考隊列長度的偏 差值以及上一次計算得到的丟包率,計算本次的丟包率進一步包括:
[0100] 當視頻幀發(fā)送隊列長度達到第一預設閾值時,根據(jù)視頻幀發(fā)送隊列長度與參考隊 列長度的偏差值以及上一次計算得到的丟包率,計算本次的丟包率。
[0101] A4、根據(jù)Al所述的方法,其中,所述根據(jù)視頻幀發(fā)送隊列長度與參考隊列長度的偏 差值以及上一次計算得到的丟包率,計算本次的丟包率進一步包括:
[0102] 當視頻幀發(fā)送隊列長度變化值達到第二預設閾值時,根據(jù)視頻幀發(fā)送隊列長度與 參考隊列長度的偏差值以及上一次計算得到的丟包率,計算本次的丟包率。
[0103] A5、根據(jù)A1-A4任一項所述的方法,其中,所述參考隊列長度是根據(jù)視頻幀發(fā)送隊 列長度的極限值確定的。
[0104] A6、根據(jù)A1-A5任一項所述的方法,其中,所述根據(jù)本次的丟包率,確定對接收到的 視頻幀是否進行丟棄處理進一步包括:
[0105]設定隨機數(shù)生成區(qū)間,并根據(jù)本次的丟包率在所述隨機數(shù)生成區(qū)間內(nèi)設定丟包區(qū) 間;
[0106]生成位于所述隨機數(shù)生成區(qū)間內(nèi)的一隨機數(shù),判斷所述隨機數(shù)是否位于所述丟包 區(qū)間內(nèi),若是,則對接收到的視頻幀進行丟棄處理。
[0107] A7、根據(jù)A1-A6任一項所述的方法,其中,在所述根據(jù)本次的丟包率,確定對接收到 的視頻幀是否進行丟棄處理之前,所述方法還包括:
[0108] 根據(jù)標志位對所述視頻幀進行識別處理,確定所述視頻幀是否為關鍵幀;
[0109] 若否,則根據(jù)本次的丟包率,確定對接收到的視頻幀是否進行丟棄處理。
[0110] A8、根據(jù)A1-A7任一項所述的方法,其中,所述根據(jù)視頻幀發(fā)送隊列長度與參考隊 列長度的偏差值以及上一次計算得到的丟包率,計算本次的丟包率進一步包括:
[0111] 利用公式:/,(/c)=/7(/c-丨)+/? e(/c-丨)> 盡《[以奸 >(/卜玲 計算第k次的丟包率;
[0112] 其中,p(k),p(k_l)分別表示第k次和第k-Ι次的丟包率;
[0113] e(k),e(k-l),e(k-2)分別表示第k次、第k-Ι次和第k-2次的視頻幀發(fā)送隊列長度 與參考隊列長度的偏差值;
[0114] Kp,Ki,Kd分別表不比例系數(shù)、積分系數(shù)和微分系數(shù)。
[0115] A9、根據(jù)A1-A8任一項所述的方法,還包括:
[0116] 將接收的視頻幀中的未被丟棄的視頻幀放入視頻幀發(fā)送隊列。
[0117] 本發(fā)明還公開了:B10、一種視頻傳輸處理裝置,包括:
[0118] 接收模塊,適于接收至少一視頻幀;
[0119] 計算模塊,適于根據(jù)視頻幀發(fā)送隊列長度與參考隊列長度的偏差值以及上一次計 算得到的丟包率,計算本次的丟包率;
[0120] 處理模塊,適于根據(jù)所述本次的丟包率,確定對接收到的視頻幀是否進行丟棄處 理。
[0121] B11、根據(jù)BlO所述的裝置,其中,所述計算模塊進一步適于:當?shù)竭_定時時間時,根 據(jù)視頻幀發(fā)送隊列長度與參考隊列長度的偏差值以及上一次計算得到的丟包率,計算本次 的丟包率。
[0122] B12、根據(jù)BlO所述的裝置,其中,所述計算模塊進一步適于:當視頻幀發(fā)送隊列長 度達到第一預設閾值時,根據(jù)視頻幀發(fā)送隊列長度與參考隊列長度的偏差值以及上一次計 算得到的丟包率,計算本次的丟包率。
[0123] B13、根據(jù)BlO所述的裝置,其中,所述計算模塊進一步適于:當視頻幀發(fā)送隊列長 度變化值達到第二預設閾值時,根據(jù)視頻幀發(fā)送隊列長度與參考隊列長度的偏差值以及上 一次計算得到的丟包率,計算本次的丟包率。
[0124] B14、根據(jù)B10-B13任一項所述的裝置,其中,所述參考隊列長度是根據(jù)視頻幀發(fā)送 隊列長度的極限值確定的。
[0125] B15、根據(jù)B10-B14任一項所述的裝置,其中,所述處理模塊進一步包括:
[0126] 設定單元,適于設定隨機數(shù)生成區(qū)間,并根據(jù)本次的丟包率在所述隨機數(shù)生成區(qū) 間內(nèi)設定丟包區(qū)間;
[0127] 處理單元,適于生成位于所述隨機數(shù)生成區(qū)間內(nèi)的一隨機數(shù),判斷所述隨機數(shù)是 否位于所述丟包區(qū)間內(nèi),若是,則對接收到的視頻幀進行丟棄處理。
[0128] B16、根據(jù)B10-B15任一項所述的裝置,其中,所述裝置還包括:
[0129] 識別模塊,適于根據(jù)標志位對所述視頻幀進行識別處理,確定所述視頻幀是否為 關鍵幀;
[0130]所述處理模塊進一步適于:在所述識別模塊識別出所述視頻幀不是關鍵幀的情況 下,根據(jù)本次的丟包率,確定對接收到的視頻幀是否進行丟棄處理。
[0131] B17、根據(jù)B10-B16任一項所述的裝置,其中,所述計算模塊進一步適于:
[0132] 利用公式:/從)=/從-丨)+ & [d/t)- 尨命 1令 e·. 計算第k次的丟包率;
[0133] 其中,p(k),p(k_l)分別表示第k次和第k-Ι次的丟包率;
[0134] e(k),e(k-l),e(k-2)分別表示第k次、第k-Ι次和第k-2次的視頻幀發(fā)送隊列長度 與參考隊列長度的偏差值;
[0135] Kp,K1,Kd分別表示比例系數(shù)、積分系數(shù)和微分系數(shù)。
[0136] B18、根據(jù)B10-B17任一項所述的裝置,所述裝置還包括:添加模塊,適于將接收的 視頻幀中的未被丟棄的視頻幀放入視頻幀發(fā)送隊列。
【主權項】
1. 一種視頻傳輸處理方法,包括: 接收至少一視頻帖; 根據(jù)視頻帖發(fā)送隊列長度與參考隊列長度的偏差值W及上一次計算得到的丟包率,計 算本次的丟包率; 根據(jù)所述本次的丟包率,確定對接收到的視頻帖是否進行丟棄處理。2. 根據(jù)權利要求1所述的方法,其中,所述根據(jù)視頻帖發(fā)送隊列長度與參考隊列長度的 偏差值W及上一次計算得到的丟包率,計算本次的丟包率進一步包括: 當?shù)竭_定時時間時,根據(jù)視頻帖發(fā)送隊列長度與參考隊列長度的偏差值W及上一次計 算得到的丟包率,計算本次的丟包率。3. 根據(jù)權利要求1所述的方法,其中,所述根據(jù)視頻帖發(fā)送隊列長度與參考隊列長度的 偏差值W及上一次計算得到的丟包率,計算本次的丟包率進一步包括: 當視頻帖發(fā)送隊列長度達到第一預設闊值時,根據(jù)視頻帖發(fā)送隊列長度與參考隊列長 度的偏差值W及上一次計算得到的丟包率,計算本次的丟包率。4. 根據(jù)權利要求1所述的方法,其中,所述根據(jù)視頻帖發(fā)送隊列長度與參考隊列長度的 偏差值W及上一次計算得到的丟包率,計算本次的丟包率進一步包括: 當視頻帖發(fā)送隊列長度變化值達到第二預設闊值時,根據(jù)視頻帖發(fā)送隊列長度與參考 隊列長度的偏差值W及上一次計算得到的丟包率,計算本次的丟包率。5. 根據(jù)權利要求1-4任一項所述的方法,其中,所述參考隊列長度是根據(jù)視頻帖發(fā)送隊 列長度的極限值確定的。6. 根據(jù)權利要求1-5任一項所述的方法,其中,所述根據(jù)本次的丟包率,確定對接收到 的視頻帖是否進行丟棄處理進一步包括: 設定隨機數(shù)生成區(qū)間,并根據(jù)本次的丟包率在所述隨機數(shù)生成區(qū)間內(nèi)設定丟包區(qū)間; 生成位于所述隨機數(shù)生成區(qū)間內(nèi)的一隨機數(shù),判斷所述隨機數(shù)是否位于所述丟包區(qū)間 內(nèi),若是,則對接收到的視頻帖進行丟棄處理。7. 根據(jù)權利要求1-6任一項所述的方法,其中,在所述根據(jù)本次的丟包率,確定對接收 到的視頻帖是否進行丟棄處理之前,所述方法還包括: 根據(jù)標志位對所述視頻帖進行識別處理,確定所述視頻帖是否為關鍵帖; 若否,則根據(jù)本次的丟包率,確定對接收到的視頻帖是否進行丟棄處理。8. 根據(jù)權利要求1-7任一項所述的方法,其中,所述根據(jù)視頻帖發(fā)送隊列長度與參考隊 列長度的偏差伊^方^^一次i+貸浩卸的手巧莖.i+貸太次的手巧莖講一擊巧巧? 利用公式十算 第k次的丟包率;其中,P化),p化-1)分別表示第k次和第k-1次的丟包率; e化),e化-l),e(k-2)分別表示第k次、第k-1次和第k-2次的視頻帖發(fā)送隊列長度與參 考隊列長度的偏差值; Kp,Ki,Kd分別表示比例系數(shù)、積分系數(shù)和微分系數(shù)。9. 根據(jù)權利要求1-8任一項所述的方法,還包括: 將接收的視頻帖中的未被丟棄的視頻帖放入視頻帖發(fā)送隊列。10. -種視頻傳輸處理裝置,包括: 接收模塊,適于接收至少一視頻帖; 計算模塊,適于根據(jù)視頻帖發(fā)送隊列長度與參考隊列長度的偏差值W及上一次計算得 到的丟包率,計算本次的丟包率; 處理模塊,適于根據(jù)所述本次的丟包率,確定對接收到的視頻帖是否進行丟棄處理。
【文檔編號】H04N21/647GK105916059SQ201610282505
【公開日】2016年8月31日
【申請日】2016年4月29日
【發(fā)明人】喬俊龍
【申請人】北京奇虎科技有限公司, 奇智軟件(北京)有限公司