本發明專利技術公開了使用環形(循環)緩沖區的用于解碼及編碼一個多幀視頻流的系統、方法和設備。解碼時,解碼器可以從編碼器接收數據包,并將它們存儲至循環緩沖區。所述循環緩沖區可以將數據包儲存至收到包含完整的幀的數據包。在循環緩沖區存儲多個部分或完整的幀,可以移除抖動(jitter),并通過有效聚合完整的幀來允許前向糾錯繼續進行且盡量減少延遲。
【技術實現步驟摘要】
本專利技術涉及視頻編碼及解碼,更具體地,涉及使用聯合抖動-幀緩沖區的視頻解碼及渲染。
技術介紹
數字視頻位流可被編碼后有效地把視頻壓縮成數字位流,所述數字位流可存儲于非瞬時數字媒介或通過有限帶寬的通信信道進行流傳輸。然而,在視頻位流的傳輸或存儲過程中,可能會發生丟包或其他錯誤,從而導致所述位流解碼的錯誤??捎玫男诺缼挷粫r改變的情況也屬常見,導致實時視頻傳輸的問題。網絡傳播的變化可能會導致跨網接收的數據包信號產生抖動,即延遲時間的變化,其測量為數據包的延遲隨時間的變化性;而在渲染前,所述抖動應予減輕。
技術實現思路
有鑒于此,本專利技術公開了使用聯合抖動-幀緩沖區的視頻解碼及渲染的系統、方法和裝置的各個方面。一方面,本專利技術實施例提出一種用計算設備在解碼視頻位流時減少抖動的方法,包括:在所述計算設備中,接收所述視頻位流中一個編碼幀所關聯的一個或多個數據包;將所述編碼幀所關聯的所述一個或多個數據包存儲至所述計算設備的一個配置為循環緩沖區的存儲器;在判定所述編碼幀所關聯的所有數據包都已存儲至所述循環緩沖區后,立即解碼所述編碼幀;以一個快于實時的速度渲染所述解碼幀。另一方面,本專利技術實施例提出一種用于在視頻位流中減少抖動的裝置,包括:一個存儲器,其包括一個構造為循環緩沖區的存儲空間用以接收所述視頻位流中一個編碼幀所關聯的一個或多個數據包;一個處理器,配置用于執行存儲在所述存儲器中的指令,以:接收所述視頻位流中一個編碼幀所關聯的一個或多個數據包;將所述編碼幀所關聯的所述一個或多個數據包存儲至所述存儲器;在判定所述編碼幀所關聯的所有數據包都已存儲至所述循環緩沖區后,立即解碼所述編碼幀;以一個快于實時的速度渲染所述解碼幀。另一方面,本專利技術實施例提出一種用于在解碼視頻位流時減少抖動的系統,包括:一個前向糾錯解碼器;一個視頻解碼器,配置用以:接收所述視頻位流中一個編碼幀所關聯的一個或多個數據包;將所述編碼幀所關聯的所述一個或多個數據包存儲至一個循環緩沖區;在判定所述編碼幀所關聯的所有數據包都已存儲至所述循環緩沖區后,立即解碼所述編碼幀;一個渲染器,配置用以渲染所述解碼幀,其特征在于,所述渲染以一個快于實時的速度進行。本專利技術的上述及其他方面,將通過對以下實施例、所附權利要求書和附圖的詳細描述。附圖說明本專利技術在結合附圖閱讀時,可以從以下的詳細描述中得到最好的理解。需要強調的是,根據通常的做法,附圖的各種特征不是按比例的。相反,為解釋清楚,所述各種特征的尺寸被任意地放大或縮小。本專利技術的公開材料提到所附附圖時,類似的參照數字在所有視圖中指代類似的部分。在附圖中:圖1是依本專利技術公開的實施例提供的一個視頻編碼及解碼系統的結構示意圖;圖2是依本專利技術公開的實施例提供的一個視頻位流分解的結構示意圖;圖3是依本專利技術公開的實施例提供的一個視頻編碼器/壓縮系統的結構示意圖;圖4是依本專利技術公開的實施例提供的一個視頻解碼器/解壓系統的結構示意圖;圖5是依本專利技術公開的實施例提供的展示使用循環緩沖區的在視頻解碼流程中減少抖動的操作的流程圖;圖6是依本專利技術公開的實施例提供的展示一個幀緩沖區的操作的流程圖;圖7是依本專利技術公開的實施例提供的展示一個幀緩沖區的操作的流程圖;圖8A是依本專利技術公開的實施例提供的一個使用單獨的抖動緩沖區和幀緩沖區的用于視頻解碼處理的系統的結構示意圖;圖8B是依本專利技術公開的實施例提供的一個使用循環緩沖區的用于視頻解碼處理的系統的結構示意圖;圖9是依本專利技術公開的實施例提供的一個循環緩沖區的結構示意圖。具體實施方式數字視頻可以被用于娛樂、視頻會議、廣告和通常的信息共享。用戶對數字視頻質量的期望會很高,因為用戶希望在帶寬有限的共享互聯網傳播的視頻與在專用有線頻道傳播的視頻具有同樣高的空間和時間質量。例如,數字視頻編碼可以壓縮數字視頻的位流,以允許高質量的數字視頻在具有有限帶寬的網絡進行傳輸。例如,數字視頻質量可以定義為輸出的解壓及解碼的數字視頻在何種程度上與輸入的數字視頻匹配。視頻編碼和解碼統合各種技術用以壓縮和解壓數字視頻流,得以在有限帶寬能力的網絡中傳輸高質量的數字視頻流。這些技術可以將數字視頻流處理為一系列的數字數據塊,并處理這些數據塊以壓縮用于傳輸或存儲,并且在收到數據塊后,解壓縮所述數據塊以重建原始數字視頻流。為了消除有限帶寬導致的抖動和減少延遲,傳統的視頻網絡應用采用數據包抖動緩沖區,而其會在系統中引入一個恒常的延遲。本專利技術公開的各方面可以聯合數據包抖動緩沖區和專用的幀緩沖區,以聯合消除抖動并減少延遲。在一些實施例中,數據包抖動緩沖區采用循環緩沖區數組,數組中每個循環緩沖區承載某個單幀所關聯的一個或多個數據包。當所有的數據包——如屬于所述單幀的所有必需的數據包——被接收時,循環緩沖區立即將它們傳送到一個解碼器進行解碼。經解碼的各幀(解碼幀)被分配一個時間戳,并進一步被發送到一個渲染器的渲染緩沖區數組?;诋斍皫鸵粋€緊接的先前幀(前臨幀)之間的時間戳差異,渲染器在渲染緩沖區數組中以稍微快于(例如,1%或3%)實時顯示時間的速度渲染幀。本文公開了使用循環緩沖區(本文中也稱為“環形緩沖區”)的、用于解碼及編碼具有多幀的視頻流的系統、裝置和方法。解碼時,解碼器可從編碼器接收數據包,并將它們存儲到一個循環緩沖區。循環緩沖區可存儲數據包,直到收到包括一個完整幀的數據包。在循環緩沖區存儲多個部分或完整的幀,可以移除抖動,并通過有效聚合完整的幀來允許前向糾錯繼續進行且盡量減少延遲。本專利技術公開的實施例的各方面,可以通過對視頻位流的數據包執行前向糾錯(Forward Error Correction,FEC),以允許經壓縮的視頻位流在“嘈雜”或易發潛在錯誤的網絡中傳輸。所述各方面可以將FEC包添加到視頻位流,以允許檢測和校正丟失或損壞的數據包。通過用循環緩沖區接收經FEC保護的視頻位流的數據包,所述各方面可以有效地聚合屬于該視頻位流的某個幀的所有數據包,并將待FEC解碼的幀發出。在某些情況下,FEC可以用一個幀的其他數據包重建該幀丟失或損壞的數據包而無需重傳數據包,從而減少往返延遲。在其他情況下,丟失或損壞的數據包不能被FEC重建。在這些情況下,丟失或亂序的數據包可以由循環緩沖區檢測到——循環緩沖區在其中具有最先幀編號的幀尚未完整時,收到了一個數據包,其來自的幀所具的幀編號卻先于所述最先幀的幀編號。這意味著,要么數據包在傳輸中丟失了,要么數據包被亂序發出。當這種情況發生時,所公開實施例的各方面可以暫停所述幀從循環緩沖區到FEC解碼器的傳輸。幀傳輸可以暫停至所述最先幀編號所關聯的丟失數據包接收到或者后續幀完成為止。如果在后續幀完成前接收到所述最先幀編號所關聯的丟失數據包,則可將所述最先幀發送到FEC解碼器。如果在后續幀所關聯的所有數據包都收到后,循環緩沖區仍未收到丟失的數據包,則其幀編號先于所述完整后續幀的不完整的幀可被刪除,而完整的后續幀可被發送到FEC解碼器。丟棄具有不完全或損壞的數據包的幀,可以通過消除視頻數據重傳的需求來提高視頻編碼和解碼的性能。在需要重傳時,可從解碼器通過網絡傳遞一條消息給編碼器,然后編碼器可以重發所丟失的幀。這種消息傳訊和數據重傳可能導致解碼視頻流中的——例如——中斷和延遲。所公開實施例的各方面丟棄不完整的幀而無本文檔來自技高網...

【技術保護點】
一種用計算設備在解碼視頻位流時減少抖動的方法,包括:在所述計算設備中,接收所述視頻位流中一個編碼幀所關聯的一個或多個數據包;將所述編碼幀所關聯的所述一個或多個數據包存儲至所述計算設備的一個配置為循環緩沖區的存儲器;在判定所述編碼幀所關聯的所有數據包都已存儲至所述循環緩沖區后,立即解碼所述編碼幀;以一個快于實時的速度渲染所述解碼幀。
【技術特征摘要】
2015.12.29 US 14/982,7311.一種用計算設備在解碼視頻位流時減少抖動的方法,包括:在所述計算設備中,接收所述視頻位流中一個編碼幀所關聯的一個或多個數據包;將所述編碼幀所關聯的所述一個或多個數據包存儲至所述計算設備的一個配置為循環緩沖區的存儲器;在判定所述編碼幀所關聯的所有數據包都已存儲至所述循環緩沖區后,立即解碼所述編碼幀;以一個快于實時的速度渲染所述解碼幀。2.根據權利要求1所述的方法,其特征在于,所述方法進一步包括:在立即解碼所述編碼幀之后,將所述解碼幀存儲至一個渲染緩沖區數組,其中,所述解碼幀與所述解碼幀所關聯的一個顯示時間戳一并存儲。3.根據權利要求2所述的方法,其特征在于,所述方法進一步包括:基于所述解碼幀所關聯的所述顯示時間戳與一個前臨幀所關聯的一個顯示時間戳之間的差異,確定所述快于實時的速度。4.根據權利要求1所述的方法,其特征在于,所述方法進一步包括:通過所述計算設備,判斷所述編碼幀所關聯的所有數據包是否都已存儲至所述循環緩沖區。5.根據權利要求1所述的方法,其特征在于,所述計算設備包括串聯的一個前向糾錯解碼器和一個視頻解碼器。6.根據權利要求1所述的方法,其特征在于,所述存儲器包括一個包括數個循環緩沖區的抖動緩沖區數組,且所述數個循環緩沖區的每一個都配置用于在一個時間點存儲單個編碼幀所關聯的數據包。7.根據權利要求6所述的方法,其特征在于,以一個快于實時的速度渲染所述解碼幀進一步包括:以一個稍微快于實時的速度,渲染存儲于所述渲染緩沖區數組的所述解碼幀。8.根據權利要求1所述的方法,其特征在于,所述循環緩沖區是所述編碼幀所關聯的所述一個或多個數據包的一個專屬存儲位置。9.一種用于在視頻位流中減少抖動的裝置,包括:一個存儲器,其包括一個構造為循環緩沖區的存儲空間用以接收所述視頻位流中一個編碼幀所關聯的一個或多個數據包;一個處理器,配置用于執行存儲在所述存儲器中的指令,以:接收所述視頻位流中一個編碼幀所關聯的一個或多個數據包;將所述編碼幀所關聯的所述一個或多個數據包存儲至所述存儲器;在判定所述編碼幀所關聯的所有數據包都已存儲至所述循環緩沖區后,立即解碼所述編碼幀;以一個快于實時的速度渲染所述解碼幀。10.根據權利要求9所述的裝置,其特征在于,所述處...
【專利技術屬性】
技術研發人員:谷群山,
申請(專利權)人:蘇州蹤視通信息技術有限公司,
類型:發明
國別省市:江蘇;32
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。