專利名稱:調整編碼器和解碼器中緩沖器的大小的制作方法
技術領域:
本發明涉及一種用于緩沖編碼圖像的方法,該方法包括編碼步驟,用于在編碼器中形成編碼圖像;傳輸步驟,用于向解碼器發射所述編碼圖像;解碼步驟,用于解碼編碼圖像以形成解碼圖像;和重排步驟,用于以解碼順序來排列解碼圖像。本發明還涉及一種系統、發射裝置、接收裝置、編碼器、解碼器、電子裝置、軟件程序和存儲介質。
背景技術:
已公開的視頻編碼標準包括ITU-T H.261、ITU-T H.263、ISO/IECMPEG-1、ISO/IEC MPEG-2和ISO/IEC MPEG-4 Part 2。這些標準在此被稱為傳統的視頻編碼標準。
視頻通信系統視頻通信系統可以被劃分成對話式和非對話式系統。對話式系統包括視頻會議和視頻電話。這類系統的示例包括ITU-T推薦H.320、H.323和H.324,它們指定了分別在ISDN、IP和PSTN網絡中操作的視頻會議/電話系統。對話式系統的特點在于其試圖最小化端到端時延(從音頻-視頻捕獲到遠端音頻-視頻呈現)以便改善用戶體驗。
非對話式系統包括被存儲內容的播放,比如數字多功能光盤(DVD)或存儲在播放裝置的海量存儲器中的視頻文件、數字電視和媒體流。這些技術領域中的最重要的標準的簡略評論如下給出。
當今,數字視頻消費電子中的主導標準是MPEG-2,其包括用于視頻壓縮、聲頻壓縮、存儲和傳送的規范。編碼視頻的存儲和傳送是基于基本流的概念。基本流包括來自于單個源(例如視頻)的編碼數據加上同步、識別和描述源信息特征所需的輔助數據。基本流被分組成不變長度或可變長度的分組以便形成分組基本流(PES)。每個PES分組都包括報頭,跟隨其后是被稱作有效載荷的流數據。來自于各個基本流的PES分組被合并形成程序流(PS)或傳送流(TS)。PS針對具有可忽略傳輸差錯的應用,比如存儲和播放類型的應用。TS針對容許有傳輸差錯的應用。然而,TS假定網絡吞吐量有保證為常數。
ITU-T和ISO/IEC的聯合視頻工作組(JVT)正在努力進行標準化。JVT的工作是基于ITU-T的較早的標準化項目,稱作H.26L。JVT標準化的目標是發布與ITU-T推薦H.264和ISO/IEC國際標準14496-10(MPEG-4Part 10)相同的標準文本。這個文件中的標準草案被稱為JVT編碼標準,而根據該標準草案的編碼解碼器被稱為JVT編碼解碼器。
編碼解碼器規范本身在概念上在視頻編碼層(VCL)和網絡抽象層(NAL)之間有所區別。VCL包括編碼解碼器的信號處理功能,比如轉換、量化、運動搜索/補償和環路濾波之類的功能。它遵循當今大多數的視頻編碼解碼器的一般概念,使用具有運動補償的圖像間預測的基于宏塊的編碼器,并且轉換殘留信號的編碼。VCL的輸出是片(slice)包括宏塊整數的宏塊數據的位串,以及片報頭的信息(包括該片中第一宏塊的空間地址、初始量化參數、以及類似信息)。除非指定了不同的宏塊分配,否則片中的宏塊通過使用所謂的靈活的宏塊排序語法以掃描順序被排序。圖像中預測只在片內使用。
NAL將VCL的片輸出封裝到網絡抽象層單元(NALU)中,其適合于在分組網上傳輸或者適合于在面向分組復用環境中使用。JVT的附錄B定義了用于在面向字節流的網絡上發射這類NALU的封裝過程。
H.263的可選擇的參考圖像選擇模式和MPEG-4 Part 2的NEWPRED編碼工具支持例如H.263中的每一片的每一圖像段的運動補償的參考幀的選擇。而且,H.263的可選擇的增強參考圖像選擇模式和JVT編碼標準分別支持用于每個宏塊的參考幀的選擇。
參考圖像選擇支持很多類型的時域可擴展方案。圖1示出了時域可擴展方案的示例,其在此被稱為遞歸時域可擴展。該示例方案可以用三個恒定幀速率來解碼。圖2描述了被稱為視頻冗余編碼的方案,其中,圖像序列以交錯方式被分成兩個或更多的獨立編碼的線程。這些附圖和所有隨后附圖中的箭頭指示了運動補償的方向,并且幀下面的值對應于幀的相對捕獲和顯示時間。
參數集概念JVT編碼解碼器的一個很基礎的設計概念是生成獨立的分組,以便使得諸如報頭復制之類的機制不必要。其實現方法是去耦與來自于媒體流的超過一個的片有關的信息。這個較高層的元信息應該從包括片分組的RTP分組流提前異步地并且可靠地發送。在這類沒有適合于該目的帶外傳送信道的應用中,這個信息還可以被在帶內發送。較高級的參數的組合被稱作參數集。該參數集包括諸如圖像大小、顯示窗口、所采用的可選擇的編碼模式、宏塊分配圖等等之類的信息。
為了能夠改變圖像參數(比如圖像大小),而不需要向片分組流同步地發射參數集更新,編碼器和解碼器可以保持超過一個參數集的列表。每個片報頭都包括指示將要使用的參數集的代碼字。
這個機制允許從分組流中去耦參數集的傳輸,并且通過例如作為容量交換的副作用的外部手段或通過一個(可靠或不可靠的)控制協議來發射它們。甚至有可能它們永遠不被發射但是卻由應用設計規范來決定。
傳輸順序在傳統的視頻編碼標準中,圖像的解碼順序與除B圖像之外的顯示順序相同。傳統的B圖像中的塊可以從兩個參考圖像被雙向地在時間上預測,其中,一個參考圖像在時間上處于前面,而另一個參考圖像按顯示順序在時間上接續。只有解碼順序中的最新參考圖像可以以顯示順序來接續B圖像(例外H.263中的交錯編碼,其中,時間上后續的參考幀的雙字段圖像可以按解碼順序先于B圖像)。傳統的B圖像不能被用作用于時域預測的參考圖像,并且因此傳統的B圖像可以被處置而不會影響任何其它圖像的解碼。
JVT編碼標準包括下列與較早期標準相比新穎的技術特征-圖像的解碼順序從顯示順序被去耦。圖像編號指示解碼順序并且圖像順序計數指示顯示順序。
-用于B圖像中的塊的參考圖像可以在顯示順序上在B圖像之前或之后。因此,B圖像代表雙預測圖像而不是雙向圖像。
-未被用作參考圖像的圖像被明確地標記。任何類型的圖像(內、間、B等)可以是參考圖像或非參考圖像。(從而,B圖像可以被用作參考圖像,以對其它圖像進行時域預測。)-圖像可以包括用不同的編碼類型來編碼的片。換言之,編碼圖像可以包括例如幀內編碼片和B編碼片。
從壓縮效率和誤碼彈性的角度看,顯示順序從解碼順序中去耦是有益的。
在圖3中給出了潛在地改善壓縮效率的預測結構示例。方框指示圖像,方框內的大寫字母指示編碼類型,方框內的編號是根據JVT編碼標準的圖像編號,并且箭頭指示預測相關性。請注意,圖像B17是一個用于圖像B18的參考圖像。壓縮效率較傳統的編碼潛在地得以提高,因為用于圖像B18的參考圖像較使用PBBP或PBBBP編碼圖像模式的傳統編碼在時間上較為接近。壓縮效率較傳統的PBP編碼圖像模式潛在地得以提高,因為部分參考圖像被雙向地預測。
圖4示出了可用于提高誤碼彈性的幀內圖像延緩方法的示例。傳統地,例如在情景剪切之后或響應于期滿的幀內圖像刷新周期,幀內圖像被立即編碼。在幀內圖像延緩方法中,幀內圖像不是在出現編碼幀內圖像的需要之后被立即編碼,而是在時間上后續的圖像被選為幀內圖像時。編碼幀內圖像和幀內圖像的傳統位置之間的每個圖像都從下一個在時間上后續的圖像被預測。如圖4所示,幀內圖像延緩方法生成兩個獨立的圖像間預測鏈,而傳統的編碼算法產生單個圖像間鏈。直觀地很清楚,雙鏈方法比單鏈常規方法更能有效地防止擦除差錯。如果一個鏈遇到分組丟失,則另一個鏈仍然可以被正確地接收。在傳統的編碼中,分組丟失總是導致其余的圖像間預測鏈的差錯傳播。
兩種排序和定時信息已經傳統地與數字視頻相關聯解碼和呈現順序。對相關技術的更詳細解釋在下文中給出。
解碼時間戳(DTS)指示相對于假設編碼數據單元將被解碼的參考時鐘的時間。如果DTS被編碼并發射,則它用作兩個目的首先,如果圖像解碼順序不同于它們的輸出順序,則DTS明確地指示解碼順序。其次,假如接收速率在任意時刻都接近傳輸速率,則DTS保證確定的解碼器前緩沖行為。在端到端延遲變化的網絡中,DTS的第二種使用沒有或幾乎沒什么作用。替代地,假如在用于未壓縮圖像的解碼器后緩沖器中存在空間,那么接收數據被盡快地解碼。
DTS的運作取決于通信系統和使用的視頻編碼標準。在MPEG-2系統中,DTS可以選擇性地作為PES分組報頭中的一項被發射。在JVT編碼標準中,DTS可以選擇性地作為補充增強信息(SEI)的一部分被傳送,并且它被用于可選擇的虛擬參考解碼器的操作。在ISO基本媒體文件格式中,DTS將它自己的箱形(box type)、解碼時間專用于樣品箱。在許多諸如基于RTP的流傳輸系統之類的系統中,根本不傳送DTS,因為解碼順序被假定為與傳輸順序相同并且正確的解碼時間沒有起重要作用。
H.263可選擇的附錄U以及附錄W.6.12指定了圖像編號,其相對于前一參考圖像在解碼順序中被增加1。在JVT編碼標準中,類似于H.263的圖像編號地指定了幀編號編碼元件。JVT編碼標準指定了特殊類型的幀內圖像,被稱作即時解碼刷新(IDR)圖像。沒有后續的圖像可以參考在解碼順序中比IDR圖像早的圖像。IDR圖像往往響應于情景的變化而被編碼。在JVT編碼標準中,幀編號在IDR圖像處被重置為0,以便在IDR圖像丟失的情況下提高誤碼彈性,如附圖5a和5b所示。然而,應當指出,JVT編碼標準的情景信息SEI消息還可以被用于檢測情景變化。
H.263圖像編號可用于恢復參考圖像的解碼順序。類似地,JVT幀編號可用于恢復解碼順序中的IDR圖像(相容)和下一個IDR圖像(排斥)之間的幀的解碼順序。然而,因為補足參考字段對(被編碼為具有異奇偶性的字段的連續圖像)共享同一幀編號,所以它們的解碼順序不能從幀編號被重建。
H.263圖像編號或非參考圖像的JVT幀編號被指定為等于解碼順序中的前一參考圖像的圖像或幀編號加上1。如果幾個非參考圖像在解碼順序中是連續的,則它們共享同一圖像或幀編號。非參考圖像的圖像或幀編號還與解碼順序中的下列參考圖像的圖像或幀編號相同。連續的非參考圖像的解碼順序可以用H.263中的時域參考(TR)編碼元件或JVT編碼標準的圖像順序計數(POC)概念來恢復。
呈現時間戳(PTS)指示相對于假設圖像將被顯示的參考時鐘的時間。呈現時間戳也被稱為顯示時間戳、輸出時間戳和合成時間戳。
PTS的運作取決于通信系統和使用的視頻編碼標準。在MPEG-2系統中,PTS可以選擇性地作為PES分組報頭中的一項被發射。在JVT編碼標準中,PTS可以選擇性地作為補充增強信息(SEI)的一部分被傳送,并且它被用于可選擇的虛擬參考解碼器的操作。在ISO基本媒體文件格式中,PTS將它自己的箱形、合成時間專用于樣品箱,其中,呈現時間戳相對于對應的解碼時間戳被編碼。在RTP中,RTP分組報頭中的RTP時間戳對應于PTS。
傳統的視頻編碼標準的特征是在許多方面類似于PTS的時域參考(TR)編碼元件。在諸如MPEG-2視頻之類的某些傳統的編碼標準中,TR在圖像組(GOP)開始時被重置為零。在JVT編碼標準中,在視頻編碼層中不存在時間的概念。圖像順序計數(POC)被指定用于每個幀和字段,并且例如它類似于TR被直接用于B片的直接時域預測。POC在IDR圖像處被重置為0。
多媒體流的傳輸多媒體流系統包括流傳輸服務器和大量的播放器,播放器經由網絡接入服務器。通常,該網絡是面向分組的并且很少或不提供保證服務質量的手段。播放器從服務器獲取預存儲的或者實況的多媒體內容,并且在這些內容被下載的時候實時播放它們。通信類型可以是點到點或者組播。在點到點流傳輸中,服務器為每個播放器提供一個單獨的連接。在組播流傳輸中,服務器向大量的播放器發射單個數據流,并且網元只有當有必要時才復制該數據流。
當播放器已經建立了到服務器的連接和請求了多媒體流時,該服務器開始發射所期望的流。播放器不立即開始播放該數據流,而是通常將輸入數據緩沖幾秒。在此,這個緩沖被稱為初始緩沖。初始緩沖有助于保持無間斷播放,因為在傳輸延遲偶爾增加或網絡吞吐量偶爾下降的情況下,播放器可以解碼并播放緩沖的數據。
為了避免沒有限制的傳輸延遲,在流傳輸系統中一般不趨向于支持可靠的傳輸協議。替代地,系統優選不可靠的傳輸協議,比如UDP,其一方面繼承了更穩定的傳輸延遲,但是另一方面還容許數據損壞或丟失。
RTP和RTCP協議可以在UDP之上被用來控制實時通信。RTP提供檢測傳輸分組的丟失,在接收端重組分組的正確順序,以及關聯抽樣時間戳與每個分組的手段。RTCP傳送與分組的大部分怎樣被正確地接收有關的信息,并且因此它可以被用于流量控制目的。
傳輸差錯傳輸差錯的主要類型有兩種,即比特差錯和分組差錯。通常,比特差錯與電路交換信道相關聯,比如移動通信中的無線接入網絡連接,并且它們起因于物理信道的缺陷,比如無線電干擾。這類缺陷可能在被發射數據中導致比特倒置、比特插入和比特刪除。分組差錯通常由分組交換網絡中的元件所引起。例如,分組路由器可能變得擁塞;即它可能得到太多作為輸入的分組并且不能以相同的速率輸出它們。在這個情況下,其緩沖溢出,并且一部分分組被丟失。與發射順序不同的分組復制和分組遞送也是可能的,但是它們通常被認為比分組丟失更不普遍。分組差錯還可能起因于所使用的傳送協議棧的實施。例如,某些協議使用校驗和,校驗和在發射機中被計算并且用源編碼數據來封裝。如果在數據中存在比特倒置差錯,則接收機不能終止于相同的校驗和,并且它可能必須丟棄所接收到的分組。
第二代(2G)和第三代(3G)移動網絡(包括GPRS、UMTS和CDMA-2000)提供兩種基本類型的無線電鏈路連接,即確認和非確認的。確認連接使得無線電鏈路幀的完整性由接收者來檢查(或是移動臺,MS或是基站子系統,BSS),并且在傳輸差錯的情況下,重發請求被給到該無線電鏈路的其它端。由于鏈路層重發,始發者必須緩沖無線電鏈路幀,直到該幀的肯定確認被接收為止。在惡劣的無線電條件中,這個緩沖器可能溢出并且造成數據丟失。盡管如此,已經被示出了將確認無線鏈路協議模式用于流傳輸服務是有益的。非確認連接使得錯誤的無線電鏈路幀通常被丟棄。
分組丟失可能被校正或隱瞞。丟失校正指的是完美地恢復丟失數據的能力,就好像數據從來未被丟失過一樣。丟失隱瞞指的是隱瞞傳輸損失影響的能力,因此它們在重建的視頻序列中應當不是可見的。
當播放器檢測到分組丟失時,它可能請求分組重發。因為初始緩沖,該重發分組可以在其計劃播放時間之前被接收。某些商業互聯網流傳輸系統使用專有協議來執行重發請求。IETF的工作在繼續,以便將選擇性的重發請求機制標準化為RTCP的一部分。
用于所有這些重發請求協議的共同特征是它們不宜于向大量的播放器的組播,因為網絡業務量可能急速地增加。因此,組播流傳輸應用必須依賴于非交互的分組丟失控制。
點到點流傳輸系統還可能受益于非交互的差錯控制技術。首先,某些系統可能不包括任何交互的差錯控制機制或它們優選地不具有任何來自播放器的反饋以便簡化系統。其次,丟失分組的重發和其它形式的交互差錯控制一般比非交互差錯控制方法采用更大部分的發射數據速率。流傳輸服務器必須保證交互差錯控制方法沒有保留可用的網絡吞吐量的主要部分。實際上,服務器可能必須限制交互差錯控制操作的數量。再者,傳輸延遲可能限制服務器和播放器之間的交互的數量,因為所有用于特殊數據抽樣的交互差錯控制操作將優選地在數據抽樣被播放之前完成。
非交互的分組丟失控制機制可以被分類成前向差錯控制和通過后處理的丟失隱瞞。前向差錯控制指的是這樣的技術,其中,發射機將這類冗余添加到被發射數據,即使存在傳輸損失,接收機也可以至少恢復一部分被發射數據。通過后處理的差錯隱瞞完全是面向接收機的。這些方法試圖估計被錯誤接收的數據的正確表示。
大多數的視頻壓縮算法在時間上生成被預測的INTER或P圖像。因此,圖像中的數據丟失在結果圖像中產生可見的退化,結果圖像是在時間上從惡化的圖像預測出的。視頻通信系統可以隱瞞被顯示圖形中的損失或者將最新的正確圖像穩定在屏幕上,直到接收到與該惡化幀無關的幀為止。
在傳統的視頻編碼標準中,解碼順序與輸出順序耦合。換言之,I和P圖像的解碼順序與它們的輸出順序相同,并且B圖像的解碼順序在輸出順序中立即遵循B圖像的后面的參考圖像的解碼順序。因此,基于已知的輸出順序來恢復解碼順序是可能的。輸出順序通常在時域參考(TR)字段以及系統多路復用層中,比如在RTP報頭中,以基本視頻比特流來傳送。從而,在傳統的視頻編碼標準中不存在所給出的問題。
一個對于本領域專家明顯的解決方案是使用類似于H.263圖像編號的幀計數器,而在IDR圖像處不用重置到0(如JVT編碼標準中所做的)。然而,某些問題可能在那種解決方案被使用的時候發生。圖5a表示連續數字方案被使用的情況。例如,如果IDR圖像I37丟失(不能被接收/解碼),則解碼器繼續解碼接續的圖像,但是它使用的參考圖像是錯誤的。這導致了到接續幀的差錯傳播,直到與惡化幀無關的下一幀被正確地接收和解碼為止。在圖5b的示例中,幀編號在IDR圖像處被重置到0。現在,在IDR圖像I0被丟失的情況中,解碼器通知在最新的正確解碼圖像P36之后在圖像編號中存在一個大缺口。然后,解碼器可以假定發生了差錯并且可以將顯示保持在圖像P36,直到與惡化幀無關的下一幀被接收和解碼為止。
子序列JVT編碼標準還包括子序列概念,其較非參考圖像的使用可以增強時域可擴展,使得預測間的圖像鏈可以被處置為一個整體而不會影響其余編碼流的可解碼性。
子序列是子序列層內的一組編碼圖像。圖像將存在于一個子序列層中并且只存在于一個子序列中。子序列將不會取決于在相同或更高子序列層中的任何其它子序列。層0中的子序列可以與任何其它子序列以及先前的長期參考圖像無關地被解碼。圖6a公開了包括在層1處子序列的圖像流的示例。
子序列層包括在序列中的編碼圖像的子集。子序列層用非負整數來編號。具有較大層編號的層是比具有較小層編號的層更高的層。該層基于它們彼此的相關性被按等級地排序,使得一個層不取決于任何較高層并且可以取決于較低層。換言之,層0是可獨立地解碼的,層1中的圖像可以從層0來預測,層2中的圖像可以從層0和1來預測等等。主觀的質量被預期隨著解碼層的編號增加而增加。
該子序列概念被如下所示地包括在JVT編碼標準中在序列參數集中等于1的required_frame_num_update_behaviour_flag發信號告知該編碼序列可能不包括所有的子序列。required_frame_num_update_behaviour_flag的使用發布了對每個參考幀都將其幀編號加1的要求。替代地,幀編號中的缺口在被解碼圖像緩沖器中被特別地標記。如果″丟失″幀編號和幀間預測有關,則推斷圖像丟失。否則,處理對應于″丟失″幀編號的幀,就好像它們是用滑動窗口緩沖模式插入解碼圖像緩沖器的普通幀一樣。在處置的子序列中的所有圖像因此都在解碼圖像緩沖器中被分配了″丟失″幀編號,但是它們在其它子序列的幀間預測中從不被使用。
JVT編碼標準還包括與可選擇子序列相關的SEI消息。子序列信息SEI消息與解碼順序中的下一片相關聯。它發信號告知子序列層和該片所屬的子序列的子序列標識符(sub_seq_id)。
每個IDR圖像都包括標識符(idr_pic_id)。如果兩個IDR圖像在解碼順序中是連續的(沒有任何插入圖像),則idr_pic_id的值將從第一IDR圖像變化成另一個。如果當前圖像存在于其在解碼順序中的第一圖像是IDR圖像的子序列中,則sub_seq_id的值應該與IDR圖像的idr_pic_id值相同。
JVT-D093中的解決方案只有當子序列層1或更高層中不存在數據時才正確地工作。如果傳輸順序不同于解碼順序并且編碼圖像存在于子序列層1,則它們相對于子序列層0中的圖像的解碼順序不能基于子序列標識符和幀編號來斷定。例如,考慮在圖6b上給出的下列編碼方案,其中,輸出順序從左至右,方框指示圖像,方框內的大寫字母指示編碼類型,方框內的編號是根據JVT編碼標準的幀編號,加下線字符指示非參考圖像,并且箭頭指示預測相關性。如果圖像以順序I0、P1、P3、I0、P1、B2、B4、P5被發射,則不能斷定獨立的GOP圖像B2屬于哪一個。
可以證明,在先前的示例中,圖像B2的正確獨立的GOP可以基于其輸出時間戳來斷定。然而,圖像的解碼順序不能基于輸出時間戳和圖像編號來恢復,因為解碼順序和輸出順序被去耦。考慮下列示例(圖6c),其中,輸出順序從左至右,方框指示圖像,方框內的大寫字母指示編碼類型,方框內的編號是根據JVT編碼標準的幀編號,并且箭頭指示預測相關性。如果圖像不按解碼順序發射,則無法可靠地檢測圖像P4是否應該在輸出順序中的第一或第二獨立的GOP的P3之后被解碼。
緩沖流傳輸客戶端通常具有能夠存儲相對大量數據的接收機緩沖器。最初,當流傳輸會話被建立時,客戶端不是立即開始播放該流,而是通常將輸入數據緩沖幾秒。這個緩沖有助于保持連續播放,因為在傳輸延遲偶爾增加或網絡吞吐量偶爾下降的情況下,客戶端可以解碼并播放緩沖的數據。如果沒有初始的緩沖,那么客戶端必須保持顯示,停止解碼并且等待輸入數據。緩沖還是在任何協議級中的自動或選擇性的重發所必需的。如果圖像的任何一部分丟失,則重發機制可以被用來重新發送丟失的數據。如果重發數據在其計劃的解碼或播放時間之前被接收,則丟失被完美地恢復。
編碼圖像可以根據它們在解碼序列的主觀質量中的重要性來劃分等級。例如,諸如傳統的B圖像之類的非參考圖像主觀上是最不重要的,因為它們的缺失不影響任何其它圖像的解碼。主觀的劃分等級還可以基于數據分割或片組來做出。主觀上最重要的編碼片和數據分割可以比它們的解碼順序指示更早地發送,而主觀上最不重要的編碼片和數據分割可以比它們的自然編碼順序指示更遲地發送。因此,與最不重要的片和數據分割相比,最重要的片和數據分割的任何重發部分很可能在它們計劃的解碼或播放時間之前被接收。
解碼器前緩沖解碼器前緩沖指的是在編碼數據被解碼之前的緩沖。初始緩沖指的是在流傳輸會話開始時的解碼器前緩沖。初始緩沖傳統地因為在下面解釋的兩個原因而被做出。
在對話式分組交換多媒體系統中,例如在基于IP的電視會議系統中,不同類型的媒體一般在單獨分組中被傳送。而且,分組通常在盡力而為(best-effort)網絡上傳送,所述網絡不能保證恒定的傳輸延遲,而是時延可能在分組之間有所不同。因此,具有相同的呈現(播放)時間戳的分組可能沒有被同時接收,并且兩個分組的接收間隔可能與它們的呈現間隔(按照時間)不相同。從而,為了保持不同媒體類型之間的播放同步并且保持正確的播放速率,多媒體終端通常將所接收數據緩沖一個短周期(例如小于半秒)以便平滑延遲變化。在此,這類緩沖器部件被稱為延遲抖動緩沖器。緩沖可以在媒體數據解碼之前和/或之后進行。
延遲抖動緩沖還應用在流傳輸系統中。由于流傳輸是非對話式應用的原因,所以所要求的延遲抖動緩沖可能比對話式應用中大得多。當流傳輸播放器已經建立了到服務器的連接并且請求了要下載的多媒體流時,該服務器開始發射所期望的流。播放器不立即開始播放該媒體流,而是通常將輸入數據緩沖某個周期,通常是幾秒。在此,這個緩沖被稱為初始緩沖。初始緩沖提供了以類似于對話式應用中的延遲抖動緩沖所提供的方式來平滑傳輸延遲變化的能力。另外,它支持鏈路、傳送和/或丟失協議數據單元(PDU)的應用層重發的使用。當可以及時接收重發的PDU以在計劃的時刻被解碼和播放的時候,播放器可以解碼并播放緩沖的數據。
流傳輸客戶端中的初始緩沖還提供了在對話式系統中不能實現的另一個優點它允許從服務器發射的媒體的數據速率發生變化。換言之,只要接收機緩沖器不溢出或下溢,媒體分組就可以暫時比它們的播放速率更快或更慢地發射。數據速率中的波動可以起源于兩個源。
首先,某些諸如視頻之類的媒體類型中可達到的壓縮效率取決于源數據的內容。因此,如果期望穩定的質量,則得到的壓縮的比特流的比特速率發生變化。通常,穩定的視聽質量主觀上比變化質量更合意。從而,與例如電視會議系統的沒有初始緩沖的系統相比較,初始緩沖支持了將達到的更合意的視聽質量。
其次,通常已知,固定IP網絡中的分組丟失以突發的形式發生。為了避免突發差錯和高峰值比特和分組速率,精心設計的流傳輸服務器謹慎地計劃分組的傳輸。分組可能不精確地以它們在接收端被播放的速率來發送,而是服務器可能設法在被發射分組之間實現穩定的間隔。服務器還可以根據占優勢的網絡條件來調整分組傳輸速率,在網絡變得擁塞的時候降低分組傳輸速率,并且例如在網絡條件允許的時候增加分組傳輸速率。
虛擬參考解碼器(HRD)/視頻緩沖校驗器(verifier)(VBV)許多視頻編碼標準包括作為該標準不可分割部分的HRD/VBV規范。HRD/VBV規范是虛擬解碼器模型,其包括輸入(解碼器前)緩沖器。編碼數據通常以恒定比特率流入輸入緩沖器。編碼圖像在它們的解碼時間戳處被從輸入緩沖器中移除,解碼時間戳可以與它們的輸出時間戳相同。輸入緩沖器取決于使用的配置文件和級別具有特定大小。HRD/VBV模型被用來從處理和內存需求的觀點指定互操作性點。編碼器將保證生成的比特流根據特定配置文件和級別的HRD/VBV參數值來遵循HRD/VBV規范。解碼器要求對特定配置文件和級別的支持將能夠解碼遵循HRD/VBV模型的比特流。
HRD包括用于存儲編碼數據流編碼圖像緩沖器和用于存儲解碼參考圖像并且重新在顯示順序中排序解碼圖像的解碼圖像緩沖器。HRD類似于解碼器裝置的解碼器在緩沖器之間移動數據。然而,HRD不需要徹底地解碼編碼圖像并且也不需要輸出解碼圖像,而HRD只是檢查圖像流的解碼可以在編碼標準給出的約束條件下被執行。當HRD正在操作時,它接收編碼數據流并且將其存儲到編碼圖像緩沖器。另外,HRD從編碼圖像緩沖器移除編碼圖像并且將至少某些對應的假設地解碼的圖像存儲到解碼圖像緩沖器中。HRD知道編碼數據依此流入編碼圖像緩沖器的輸入速率、圖像從編碼圖像緩沖器移除的速率、以及圖像從解碼圖像緩沖器輸的出速率。HRD檢查編碼或解碼圖像緩沖器溢出,并且它指示用當前設置是否有可能進行解碼。然后,HRD通知編碼器關于緩沖違規,其中,編碼器可以例如通過降低參考幀數量來改變編碼參數以便避免緩沖違規。替換地或附加地,編碼器開始用新的參數編碼圖像并且將編碼的圖像發送到HRD,HRD再次執行圖像解碼以及必需的檢查。作為又一個替換,編碼器可以丟棄最新的編碼幀并且編碼較后的幀使得沒有緩沖違規發生。
兩種類型的解碼器一致性已經在JVT編碼標準中被指定輸出順序一致性(VCL一致性)以及輸出時間一致性(VCL-NAL一致性)。這些類型的一致性已經用HRD規范來指定。輸出順序一致性指的是解碼器正確地恢復圖像輸出順序的能力。HRD規范包括″撞擊解碼器(bumpingdecoder)″模型,當需要用于圖像的新的存儲空間時,其以輸出順序輸出最早的未壓縮圖像。輸出時間一致性指的是解碼器以與HRD模型的相同步調輸出圖像的能力。圖像的輸出時間戳必須總是等于或小于它將從″撞擊解碼器″中被移除的時間。
交錯幀交錯是在音頻流傳輸中常用的技術。在幀交錯技術中,一個RTP分組包括在解碼或輸出順序中不連續的音頻幀。如果音頻分組流中的一個分組丟失,則被正確接收的分組包括可以被用于隱瞞丟失音頻分組的相鄰音頻幀(通過某種內插)。許多音頻編碼RTP有效載荷和MIME類型規范包括在一個分組中就音頻幀而言發送交錯的最大量的可能性。
在某些現有技術編碼/解碼方法中,緩沖器的所需大小作為傳輸單元計數被通知。
發明內容
解碼器的解碼前緩沖器的最大大小可以作為字節被通知給解碼器。如果基于字節的方案被使用并且沒有為解碼器定義重新排序過程,則緩沖模型必須被明確地定義,因為編碼器和解碼器可能使用不同的緩沖方案。如果為緩沖器定義了字節中的某個大小并且解碼器使用緩沖方案,在該方案中,傳輸單元被存儲到緩沖器直到該緩沖器飽和為止,并且只是在最舊的數據從緩沖中被移除并且被解碼之后。那種緩沖可以在解碼開始之前比必需的維持更長。
通知解碼前緩沖器的最大大小的另一個可能性是使用傳輸單元,其中,緩沖器大小作為將被緩沖的傳輸單元的最大量被通知。然而,傳輸單元的最大大小沒有被定義并且傳輸單元的大小可能變化。如果最大大小被定義并且如果該大小對于某個數據單元太小,則該數據單元必須被劃分成多于一個的傳輸單元,這樣增加了編碼和傳輸開銷,即降低了壓縮效率和/或增加了系統復雜性。傳輸單元的最大大小應該足夠大,其中,緩沖器的總大小可能會不必要地大。
在本發明中,緩沖器大小被如此定義,以使得至少兩個傳輸單元的總大小被定義并且最大緩沖器大小根據總大小而被定義。除了總大小之外,考慮到網絡傳輸抖動可能是必需的。
根據本發明的另一個方面,總大小計算中使用的傳輸單元編號按照傳輸單元編號是必需的緩沖器大小的分數。
仍然根據本發明的另一個方面,總大小計算中使用的傳輸單元編號按照傳輸單元編號是必需的緩沖器大小的分數,其中,分數具有1/N的形式,N是整數。
根據本發明的又一個方面,總大小計算中使用的傳輸單元編號按照傳輸單元編號與必需的緩沖器大小相同。
在本發明的一個實施例中,總大小計算中使用的傳輸單元編號可以表示為傳輸單元的緩沖器順序。緩沖順序指的是傳輸單元在解碼器中被緩沖用于解碼的順序,即解碼前緩沖器中的緩沖順序。
本發明支持將接收緩沖器的大小定義到解碼器。
在下文中,一個獨立的GOP包括在解碼順序中從IDR圖像(相容)到下一IDR圖像(排斥)的圖像。
在本發明中,建議了發信號告知所需的緩沖最大量的參數。考慮了用于這類參數的幾個單元持續時間、字節、編碼圖像、幀、VCL NAL單元、各種類型的NAL單元以及RTP分組或有效載荷。指定持續時間中的雜亂量在傳輸比特率和指定的持續時間之間產生一個相關性以便斷定緩沖的字節需要量。因為傳輸比特率一般不是已知的,所以沒有使用基于持續時間的方法。指定雜亂字節量將需要發射機謹慎地檢查被發射流,使得不會超出所發信號的限制。這個方法需要來自所有服務器的大量處理能力。它還將需要指定用于服務器的緩沖校驗器。指定編碼圖像或幀中的雜亂量也是很粗糙的單位,因為用于不支持任意片排序的解碼器的簡單的片交錯方法將需要子圖像分辨率來實現用于恢復解碼順序的緩沖最小延遲。指定RTP分組編號中的雜亂量被認為是不適當的,因為不同類型的集合分組可能取決于流行網絡條件而存在。從而,RTP分組可以包括數據的變化量。不同的SEI消息可以取決于流行網絡條件而被發射。例如在相對較差的條件中,它有益于發射目標為誤碼彈性的SEI消息,比如情景信息SEI消息。從而,所有類型的NAL單元的編號中的雜亂量取決于流行網絡條件,即被無序發射的SEI和參數集NAL單元的量。因此,″所有類型的NAL單元″也不被看作一個好的單元。因此,指定編號VCL NAL單元中的雜亂量被認為是最好的替換。VCL NAL單元在JVT編碼標準中被定義成編碼片、編碼數據分割、或序列結束標志器。
所建議的參數如下所示num-reorder-VCL-NAL-units。它指定在分組流中以NAL單元遞送順序先于任何VCL NAL單元的VCL NAL單元并且在RTP序列號順序或包括VCL NAL單元的集合分組的合成順序中在VCL NAL單元之后的最大量。
所建議的參數可以作為MIME類型宣告中的可選參數或作為可選擇SDP字段被傳送。所建議的參數可以取決于會話準備過程的協議以及階段來指示解碼器能力或流特征或其二者。
根據num-reorder-VCL-NAL-units參數所建立的緩沖器的緩沖器大小不能精確地以字節指定。為了允許設計緩沖存儲器要求被精確地已知的接收機,建議了解碼時間一致性的規范。解碼時間一致性用一個不假定恒定輸入比特率的假設緩沖器模型來指定,而是要求流服務器應當包括該模型以便保證被發射的分組流遵循該模型。被指定的假設緩沖器模型平滑可能的突發分組速率并且將NAL單元從傳輸順序重新排序到解碼順序,使得得到的比特流可以以恒定比特率被輸入假設解碼器。
在以下說明中,本發明通過使用基于編碼器-解碼器的系統被描述,但是本發明顯然還可以在存儲視頻信號的系統中被執行。所存儲的視頻信號可以是在編碼之前被存儲的未編碼信號,作為在編碼之后存儲的編碼信號,或者作為在編碼和解碼過程之后存儲的解碼信號。例如,編碼器以解碼順序產生比特流。文件系統接收例如以解碼順序被封裝并且被存儲為文件的音頻和/或視頻比特流。另外,編碼器和文件系統可以產生除了其他因素之外包括子序列信息的元數據,其通知圖像和NAL單元的主觀重要性。該文件可以被存儲到流傳輸服務器可以從中讀取NAL單元并且將它們封裝到RTP分組中的數據庫中。根據可選擇的元數據和所使用的數據連接,流傳輸服務器可以更改不同于解碼順序的分組傳輸順序,移除子序列,決定將發射什么SEI消息,如果有的話,等等。在接收端中,RTP分組被接收并且緩沖。通常,NAL單元首先被重新排序成正確的順序并且然后NAL單元被遞送給解碼器。
而且,在以下說明中,本發明通過使用基于編碼器-解碼器的系統被描述,但是本發明顯然還可以在編碼器將編碼數據輸出并發射到比如流傳輸服務器的另一個部件的系統中以解碼順序被執行,其中,另一個部件將編碼數據從解碼順序重新排序到另一個順序并且以其重新排序的形式將編碼數據轉發給解碼器。
根據本發明的方法的特征主要在于,緩沖器大小被如此定義,使得至少兩個傳輸單元的總大小被定義并且最大緩沖器大小根據總大小而被定義。根據本發明的系統的特征主要在于,該系統還包括一個定義器用于定義緩沖器大小,使得至少兩個傳輸單元的總大小被定義并且最大緩沖器大小根據總大小被定義。根據本發明的編碼器的特征主要在于,該編碼器還包括一個定義器用于定義緩沖器大小,使得至少兩個傳輸單元的總大小被定義并且最大緩沖器大小根據總大小被定義。根據本發明的解碼器的特征主要在于,該解碼器還包括一個處理器用于根據指示緩沖器大小的、所接收的參數來為解碼前緩沖器分配存儲器,并且定義了緩沖器大小使得至少兩個傳輸單元的總大小被定義并且最大緩沖器大小根據總大小被定義。根據本發明的發射裝置的特征主要在于,該發射裝置還包括一個定義器用于定義緩沖器大小,使得至少兩個傳輸單元的總大小被定義并且最大緩沖器大小根據總大小被定義。根據本發明的接收裝置的特征主要在于,該接收裝置還包括一個處理器用于根據指示緩沖器大小的、所接收的參數來為解碼前緩沖器分配存儲器,并且定義了緩沖器大小使得至少兩個傳輸單元的總大小被定義并且最大緩沖器大小根據總大小被定義。根據本發明的軟件程序的特征主要在于,緩沖器大小被如此定義,使得至少兩個傳輸單元的總大小被定義并且最大緩沖器大小根據總大小而被定義。根據本發明的存儲介質的特征主要在于,緩沖器大小被如此定義,使得至少兩個傳輸單元的總大小被定義并且最大緩沖器大小根據總大小而被定義。根據本發明的電子裝置的特征主要在于,該電子裝置還包括一個定義器用于定義緩沖器大小,使得至少兩個傳輸單元的總大小被定義并且最大緩沖器大小根據總大小被定義。
在下文中,根據本發明的一個有利實施例給出了在視頻比特流中的任何解碼順序信息的代用信令。解碼順序編號(DON)以其他NAL單元的遞送順序向解碼器指示NAL單元的解碼順序。在下文中,DON被假定為16比特無符號整數,沒有普遍性的丟失。使一個NAL單元的DON是D1并且使另一個NAL單元的DON是D2。如果D1<D2并且D2-D1<32768,或如果D1>D2并且D1-D2>=32768,則具有DON等于D1的NAL單元在NAL單元遞送順序中先于具有DON等于D2的NAL單元。如果D1<D2并且D2-D1>=32768,或如果D1>D2并且D1-D2<32768,則具有DON等于D2的NAL單元在NAL單元遞送順序中先于具有DON等于D1的NAL單元。與不同的原始編碼圖像相關聯的NAL單元不具有相同的DON值。與相同的原始編碼圖像相關聯的NAL單元可能具有相同的DON值。如果原始編碼圖像的所有NAL單元都具有相同的DON值,則與原始編碼圖像相關聯的冗余編碼圖像的NAL單元應當具有與原始編碼圖像的NAL單元相同的DON值。具有相同的DON值的NAL單元的NAL單元遞送順序優選地如下所示1.如果存在,圖像定界符NAL單元2.如果存在,序列參數集NAL單元3.如果存在,圖像參數集NAL單元4.如果存在,SEI NAL單元5.如果存在,原始編碼圖像的編碼片和片數據分割NAL單元6.如果存在,冗余編碼圖像的編碼片和片數據分割NAL單元7.如果存在,填充符數據NAL單元8.如果存在,序列結束NAL單元9.如果存在,流結束NAL單元本發明改善了編碼系統的緩沖效率。通過使用本發明,通知解碼器需要多少解碼前緩沖是可能的。因此,不需要為解碼前緩沖器分配比在解碼裝置中的必需的更多的存儲器。此外,解碼前緩沖器溢出可以被避免。
圖1示出了一個遞歸時域可擴展方案的示例,圖2描述了一個被稱為視頻冗余編碼的方案,其中圖像序列以交錯方式分成兩個或更多的獨立編碼線程,圖3呈現了潛在地改善壓縮效率的一個預測結構的示例,圖4呈現了一個可用于改善誤碼彈性的幀內圖像延緩方法的示例,
圖5a和5b公開了用于編碼視頻流的圖像的不同的現有技術編號方案,圖6a公開了一個包括在層1處子序列的圖像流的示例,圖6b公開了一個包括在層1處具有子序列的兩個圖像組的圖像流的示例,圖6c公開了一個不同圖像組的圖像流的示例,圖7公開了包括在層1處子序列的圖像流的另一個示例,圖8描述了一個根據本發明的系統的有利實施例,圖9描述了一個根據本發明的編碼器的有利實施例,圖10描述了一個根據本發明的解碼器的有利實施例,圖11a公開了一個可以和本發明一起使用的NAL分組格式的示例,圖11b公開了可以和本發明一起使用的NAL分組格式的另一個示例,以及圖12描述了解碼前緩沖器中的傳輸單元的緩沖的示例。
具體實施例方式
在去分組化規則后的一般概念是將諸如NAL單元之類的傳輸單元從傳輸順序重新排序到NAL單元解碼順序。
接收機包括接收機緩沖器(或解碼前緩沖器),其被用來將分組從傳輸順序重新排序到NAL單元解碼順序。在本發明的一個示例實施例中,接收機緩沖器大小按照字節數被設置為等于或大于deint-buf-size參數的值,例如被設置成值1.2×deint-buf-size MIME參數的值。接收機還可以考慮用于傳輸延遲抖動的緩沖并且或者保留單獨的緩沖器用于傳輸延遲抖動緩沖或者合并用于傳輸延遲抖動的緩沖器與接收機緩沖器(并因此保留某些附加的空間用于接收機緩沖器中的延遲抖動緩沖)。
接收機以接收順序將輸入NAL單元如下地存儲到接收機緩沖器中。將集合分組的NAL單元分別地存儲到接收機緩沖器中。計算并且存儲DON的值以用于所有的NAL單元。
在下文中,使N是可選擇num-reorder-VCL-NAL-units參數(交錯深度參數)的值,該參數指定了VCL NAL單元的最大量,其中該單元在NAL單元傳輸順序中先于分組流中的任何VCL NAL單元并且在解碼順序中跟隨在VCL NAL單元之后的。如果參數不存在,則可以默示為0值的數字。
當視頻流傳送會話被初始化時,接收機8為接收緩沖器9.1分配存儲器以便存儲至少N個VCL NAL單元。然后,接收機開始接收視頻流并且將所接收的VCL NAL單元存儲到接收緩沖器中。初始緩沖維持-直到至少N個VCL NAL單元被存儲到接收緩沖器9.1中,或者-如果max-don-diff MIME參數存在,則直到函數don_diff(m,n)的值大于max-don-diff的值,其中,n在被接收NAL單元當中對應于具有AbsDON最大值的NAL單元,以及m在被接收NAL單元當中對應于具有最小AbsDON值的NAL單元,或者-直到初始緩沖已經持續了等于或大于可選擇的init-buf-timeMIME參數的持續時間。
函數don_diff(m,n)被指定如下If DON(m)==DON(n),don_diff(m,n)=0If(DON(m)<DON(n)and DON(n)-DON(m)<32768),don_diff(m,n)=DON(n)-DON(m)If(DON(m)>DON(n)and DON(m)-DON(n)>=32768),don_diff(m,n)=65536-DON(m)+DON(n)If(DON(m)<DON(n)and DON(n)-DON(m)>=32768),don_diff(m,n)=-(DON(m)+65536-DON(n))If(DON(m)>DON(n)and DON(m)-DON(n)<32768),don_diff(m,n)=-(DON(m)-DON(n))其中,DON(i)是在傳輸順序中具有指數i的NAL單元的解碼順序編號。
don_diff(m,n)的正值指示具有傳輸順序指數n的NAL單元在解碼順序中跟隨在具有傳輸順序指數m的NAL單元之后。
AbsDON表示在65535之后不回轉到0的NAL單元的這類解碼順序編號。換言之,AbsDON計算如下使m和n在傳輸順序中是連續的NAL單元。對于在傳輸順序中的第一個NAL單元(其指數是0),AbsDON(0)=DON(0)。對于其它NAL單元,AbsDON被計算如下If DON(m)==DON(n),AbsDON(n)=AbsDON(m)If(DON(m)<DON(n)and DON(n)-DON(m)<32768),AbsDON(n)=AbsDON(m)+DON(n)-DON(m)If(DON(m)>DON(n)and DON(m)-DON(n)>=32768),AbsDON(n)=AbsDON(m)+65536-DON(m)+DON(n)If(DON(m)<DON(n)and DON(n)-DON(m)>=32768),AbsDON(n)=AbsDON(m)-(DON(m)+65536-DON(n))If(DON(m)>DON(n)and DON(m)-DON(n)<32768),AbsDON(n)=AbsDON(m)-(DON(m)-DON(n))其中,DON(i)是在傳輸順序中具有指數i的NAL單元的解碼順序編號。
在接收機中通常存在兩種緩沖狀態初始緩沖和邊播放邊緩沖。初始緩沖發生在RTP會話初始化的時候。在初始緩沖之后,開始解碼和播放并且使用邊播放邊緩沖模式。
當接收機緩沖器9.1包括至少N個VCL NAL單元時,NAL單元被一個接一個地從接收機緩沖器9.1中移除并且被傳遞到解碼器2。NAL單元不是必須按與它們的存儲順序相同的順序從接收機緩沖器9.1中被移除,而是如下所述地根據NAL單元的DON。向解碼器2的分組遞送一直繼續到緩沖器包括小于N個的VCL NAL單元,即N-1個VCL NAL單元。
將從接收機緩沖器中被移除的NAL單元被確定如下-如果接收機緩沖器包括至少N個VCL NAL單元,則NAL單元從接收機緩沖器中被移除并且以在下面指定的順序被傳遞到解碼器,直到緩沖器包括N-1個VCL NAL單元為止。
-如果max-don-diff存在,則所有的don_diff(m,n)大于max-don-diff的NAL單元m從接收機緩沖器中被移除并且以在下面指定的順序被傳遞到解碼器。在此,n對應于在所接收NAL單元當中具有最大AbsDON值的NAL單元。
-變量ts被設置為系統計時器的值,其在接收NAL單元流的第一分組時被初始化為0。如果接收機緩沖器包括一個其接收時間tr滿足ts-tr>init-buf-time的條件的NAL單元,則NAL單元以下面指定的順序被傳遞到解碼器(并且從接收機緩沖器中被移除),直到接收機緩沖器不包含其接收時間tr滿足指定條件的NAL單元為止。
向解碼器傳遞NAL單元的順序被指定如下使PDON是在RTP會話開始時被初始化為0的變量。對于與DON值相關聯的每個NAL單元,DON距離被計算如下。如果NAL單元的DON值大于PDON的值,則DON距離等于DON-PDON。否則,DON距離等于65535-PDON+DON+1。
NAL單元以DON距離的升序被遞送給解碼器。如果幾個NAL單元共享同一DON距離值,則它們可以以任何順序被傳遞到解碼器。當期望的NAL單元編號已經被傳遞到解碼器時,對于最后一個被傳遞到解碼器的NAL單元,PDON值被設置為DON的值。
附加去分組化方針以下附加去分組化規則可以用來執行運算的H.264去分組器智能RTP接收機(例如在網關中)可以標識丟失的編碼片數據分割A(DPA)。如果找到丟失的DPA,則網關可能決定不發送對應的編碼片數據分割B和C,因為它們的信息對于H.264解碼器來說沒有意義。用這種方法,網元可以通過丟棄無用分組來降低網絡負載而不用解析復雜的比特流。
智能RTP接收機(例如在網關中)可以標識丟失的分數單元(FU)。如果找到丟失的FU,則網關可能決定不發送同一NAL單元的后續FU,因為它們的信息對于H.264解碼器來說沒有意義。用這種方法,網元可以通過丟棄無用分組來降低網絡負載而不用解析復雜的比特流。
必須丟棄分組或NALU的智能接收機可以首先丟棄所有的分組/NALU,其中,NAL單元類型八比特組的NRI字段值等于0。這可以最小化對用戶體驗的影響。
在下文中,被描述用于指示解碼器中的最大緩沖器大小的參數。該參數deint-buf-size一般在指示分組化模式的分組化模式參數不存在或者分組化模式參數的值等于0或1的時候不存在。這個參數將在分組化模式參數等于2的時候存在。
deint-buf-size參數的值與以下假設去交錯緩沖器模型相關聯地被指定。在開始時,假設去交錯緩沖器為空并且最大緩沖器占用m被設置為0。以下過程被用于該模型i)傳輸順序中的下一個VCL NAL單元被插入假設去交錯緩沖器。
ii)使s是緩沖器中的VCL NAL單元的字節總大小。
iii)如果s大于m,則m被設置成等于s。
iv)如果假設去交錯緩沖器中的VCL NAL單元的編號小于或等于交錯深度的值,則處理從階段vii繼續。
v)根據RFC XXXX的段5.5,在假設去交錯緩沖器中的VCL NAL單元當中以解碼順序最早的VCL NAL單元從用于VCL NAL單元的DON值中被確定。
vi)最早的VCL NAL單元從假設去交錯緩沖器中被移除。
vii)如果在傳輸順序中不再有更多的VCL NAL單元,則該處理被終止。
viii)處理從階段i繼續。
這個參數發信號告知NAL單元流的屬性或者接收機的實施能力。當該參數被用來發信號告知NAL單元流的屬性時,該被稱為v的參數的值使得a)當NAL單元流通過假設去交錯緩沖器模型被徹底地處理時所得到的m的值小于或等于v,或者b)只要存在緩沖溢出,通過移除來自去交錯緩沖器的最早VCL NAL單元而確定的VCL NAL單元的順序就與來自假設去交錯緩沖器的VCLNAL單元的移除順序相同。
因此,當用于VCL NAL單元解碼順序恢復的緩沖器大小至少是deint-buf-size的按字節的值時,保證接收機可以重建VCL NAL單元解碼順序。
當該參數被用來發信號告知接收機的實施能力時,該接收機能夠正確地重建任何其特點在于相同的deint-buf-size值的NAL單元流的VCLNAL單元解碼順序。當接收機緩沖等于或大于deint-buf-size值的字節的這類數量時,它能夠從傳輸順序重建VCL NAL單元解碼順序。
非VCL NAL單元還將在確定去交錯緩沖器大小的時候被考慮。當這個參數存在時,對于所有NAL單元的去交錯緩沖器的足夠大小是小于或等于參數值的20%以上。
如果該參數不存在,則0值被用于deint-buf-size。deint-buf-size的值是例如包括在在0到4294967295范圍內的整數。
在下文中,本發明將更詳細地參考圖8的系統、圖9的編碼器1和虛擬參考解碼器(HRD)5以及圖10的解碼器2來描述。將被編碼的圖像例如可以是來自例如照相機、電視錄像機等的視頻源3的視頻流的圖像。視頻流的圖像(幀)可以被劃分成諸如片之類的較小的部分。所述片還可以被劃分成塊。在編碼器1中,視頻流被編碼以便減少將經由傳輸信道4發射的,或發射到存儲介質(未示出)的信息。視頻流的圖像被輸入編碼器1。編碼器具有用于暫時存儲將被編碼的一部分圖像的編碼緩沖器1.1(圖9)。編碼器1還包括存儲器1.3和處理器1.2,在其中根據本發明的編碼任務可以被應用。存儲器1.3和處理器1.2可以是發射裝置6常見的情況,或者發射裝置6可以具有另一個處理器和/或存儲器(未示出)以用于發射裝置6的其它功能。編碼器1執行運動估計和/或其它的任務來壓縮視頻流。在運動估計中,將被編碼的圖像(當前圖像)和之前和/或之后的圖像之間的相似性被搜索。如果找到相似性,則所比較的圖像或其一部分可以用作將要編碼的圖像的參考圖像。在JVT中,圖像的顯示順序和解碼順序不一定是相同的,其中,只要它被用作參考圖像,參考圖像必須被存儲在緩沖器(例如編碼緩沖器1.1)中。編碼器1還將關于圖像的顯示順序的信息插入到傳輸流中。
必要時,編碼圖像從編碼處理被移動到編碼圖像緩沖器5.2。編碼圖像經由傳輸信道4從編碼器1被發射到解碼器2。在解碼器2中,編碼圖像被解碼以便形成盡可能對應于編碼圖像的未壓縮圖像。每個解碼圖像都在解碼器2的DPB 2.1中被緩沖,除非它基本上立即在解碼之后被顯示并且未被用作參考圖像。在根據本發明的系統中,參考圖像緩沖和顯示圖像緩沖被合并并且它們使用相同的解碼的圖像緩沖器2.1。這消除了對將同一圖像存儲在兩個不同地方的需要,從而降低了解碼器2的存儲器需求。
解碼器1還包括存儲器2.3和處理器2.2,在其中根據本發明的解碼任務可以被應用。存儲器2.3和處理器2.2可以是接收裝置8常見的情況,或者接收裝置8可以具有用于接收裝置8的其它功能的另一個處理器和/或存儲器(未示出)。
編碼我們現在來更詳細地考慮編碼-解碼過程。來自視頻源3的圖像被輸入編碼器1并且被有利地存儲在編碼緩沖器1.1中。編碼過程不一定要在第一圖像被輸入編碼器之后立即開始,而是在一定數量的圖像在編碼緩沖器1.1中可用之后才開始。然后,編碼器1試圖從將被用作參考幀的圖像中找到適當的候選者。然后,編碼器1執行編碼以形成編碼圖像。例如,編碼圖像可以是預測圖像(P)、雙預測圖像(B)和/或幀內編碼圖像(I)。幀內編碼圖像可以不使用任何其它圖像就被解碼,但是其它類型的圖像在其可以被解碼之前需要至少一個參考圖像。任何上述圖像類型的圖像都可以被用作參考圖像。
編碼器有利地向圖像付上兩個時間戳解碼時間戳(DTS)和輸出時間戳(OTS)。解碼器可以使用該時間戳來確定正確的解碼時間和輸出(顯示)圖像的時間。然而,其時間戳不一定被發射到解碼器或者解碼器不使用它們。
編碼器還在最低層0上面的一層或多層上形成子序列。層0上的圖像是可獨立解碼的,但是較高層上的圖像可以取決于某些較低的一層或多層上的圖像。在圖6a的示例中存在兩層層0和層1。圖像I0、P6和P12屬于層0,而圖6a上示出的其它圖像P1-P5、P7-P11屬于層1。有利地,編碼器形成圖像組(GOP),使得一個GOP中的每個圖像都可以通過只使用同一GOP中的圖像來重建。換言之,一個GOP包括至少一個可獨立解碼的圖像和所有其它的圖像,可獨立解碼的圖像是所有其它圖像的參考圖像。在圖7的示例中存在兩個圖像組。第一圖像組包括層0上的圖像I0(0)、P1(0)、P3(0),以及層1上的圖像B2(0)、2xB3(0)、B4(0)、2xB5(0)、B6(0)、P5(0)、P6(0)。第二圖像組包括層0上的圖像I0(1)、和P1(1),以及層1上的圖像2xB3(1)和B2(1)。每個圖像組的層1上的圖像被進一步安排為子序列。第一圖像組的第一子序列包括圖像B3(0)、B2(0)、B3(0),第二子序列包括圖像B5(0)、B4(0)、B5(0),以及第三子序列包括圖像B6(0)、P5(0)、P6(0)。第二圖像組的子序列包括圖像B3(1)、B2(1)、B3(1)。括弧中的數字指示定義用于圖像所屬的圖像組的視頻序列ID。
視頻序列ID對每個圖像都被傳送。它可以在諸如補充增強信息數據之類的視頻比特流內被傳送。視頻序列ID還可以在傳送協議的報頭字段中被發射,比如在JVT編碼標準的RTP有效載荷報頭內被發射。根據給出的獨立GOP的分割的視頻序列ID可以以視頻文件元數據的格式被存儲,比如以MPEG-4AVC文件格式被存儲。圖11a和11b公開了可用于本發明的NAL分組格式的示例。所述分組包括報頭11和有效載荷部分12。報頭11有利地包括差錯指示符字段11.1(F,禁止)、優先權字段11.2、和類型字段11.3。所述差錯指示符字段11.1指示了無比特差錯的NAL單元。有利地,當所述差錯指示符字段被設置時,解碼器被告知在有效載荷或NALU類型的八比特組可能存在比特差錯。不能處理比特差錯的解碼器然后可以丟棄這類分組。優先權字段11.2被用于指示封裝在分組的有效載荷部分12中的圖像的重要性。在一個實現的示例中,所述優先權字段可以具有如下的四個不同的值。值00指示NALU的內容不被用來重建所存儲的圖像(其可以被用于將來的參考)。這類NALU可以被丟棄而不會危及參考圖像的完整性。上述的值00指示NALU的解碼被要求保持參考圖像的完整性。而且,上述的值00指示了如由編碼器確定的相關的傳送優先權。智能網元可以用這個信息來比次要NALU更好地保護重要的NALU。11是最高傳送優先級,后面是10、然后是01,并且最后,00是最低的。
NALU的有效載荷部分12包括至少一個視頻序列ID字段12.1、字段指示符12.2、大小字段12.3、定時信息12.4以及編碼圖像信息12.5。視頻序列ID字段12.1被用于存儲圖像所屬的視頻序列的編號。字段指示符12.2被用來在兩幀圖像格式被使用的時候發送所述圖像是第一還是第二幀的信號。兩個幀都可以被編碼為單獨的圖像。等于1的第一字段指示符有利地發信號,告知NALU屬于在解碼順序中先于同一幀的第二代碼字段的碼幀或代碼字段。等于0的第一字段指示符發信號,告知NALU屬于在解碼順序中接續同一幀的第一代碼字段的代碼字段。必要時,定時信息字段11.3被用于與轉換時間相關的信息。
NAL單元可以在不同種類的分組中被遞送。在這個有利的實施例中,不同的分組格式包括簡單分組和集合分組。所述集合分組可以被進一步劃分成單一時間集合分組和多時間集合分組。
根據本發明的簡單分組包括一個NALU。通過以RTP序列號順序拆封簡單分組而合成的NAL單元流將遵循NAL單元遞送順序。
集合分組是這個有效載荷規范的分組集合方案。所述方案被引入來反映兩種不同類型網絡的顯著不同的MTU大小有線IP網絡(具有往往受限于以太網MTU的大小的MTU大小,大約為1500字節),以及基于IP或非IP(例如H.324/M)的無線網絡,其優選的傳輸單元大小為254字節或更小。為了防止兩個領域之間的媒體代碼轉換并且避免不合需要的分組化開銷,引入了分組集合方案。
單一時間集合分組(STAP)集合具有相同NALU時間的NALU。各自地,多時間集合分組(MTAP)集合具有潛在不同的NALU時間的NALU。兩種不同的MTAPs被定義,它們在NALU時間戳偏移的長度方面有所不同。如果那個NALU將在它自己的RTP分組中被傳送,則術語NALU時間被定義為RTP時間戳將具有的值。
根據本發明的一個有利實施例MTAP和STAP共享下列非限制的分組化規則。RTP時間戳必須被設置為將要集合的所有NALU的NALU時間的最小數。NALU類型八比特組的類型字段必須被設置為表1中指示的適當值。如果被集合NALU的所有差錯指示符字段都是零,則差錯指示符字段11.1必須被清空,否則它必須被設置。
表1
集合分組的NALU有效載荷包括一個或多個集合單元。集合分組可以有所需數量的集合單元,然而集合分組中的數據總數明顯地必須要適合于IP分組,并且其大小應該使得得到的IP分組小于MTU大小。
無論何時集合共享同一NALU時間的NALU,都應該使用單一時間集合分組(STAP)。STAP的NALU有效載荷包括視頻序列ID字段12.1(例如7比特)和由單一圖像集合單元(SPAU)跟隨的字段指示符12.2。
在另一個可選擇實施例中,單一圖像集合分組(STAP)包括16比特無符號的解碼順序編號(DON),其后面是單一圖像集合單元(SPAU)。
根據這個規范的視頻序列可以是NALU流的任何部分,其可以從NALU流的其它部分被獨立地解碼。
幀包括可以被編碼為單獨圖像的兩個字段。等于1的第一字段指示符發信號,告知NALU屬于在解碼順序中先于同一幀的第二代碼字段的碼幀或代碼字段。等于0的第一字段指示符發信號,告知NALU屬于在解碼順序中接續同一幀的第一代碼字段的代碼字段。
單一圖像集合單元包括16比特無符號大小信息,該信息指示下列NALU的按字節的大小(除去這兩個八比特組,但是包括NALU的NALU類型八比特組),該單元后面是包括它的NALU類型字節的NALU本身。
多時間集合分組(MTAP)具有類似于STAP的結構。它包括NALU報頭字節和一個或多個多圖像集合單元。不同的MTAP字段之間的選擇是與應用相關的時間戳偏移越大,MTAP的靈活性就越高,但是開銷也越大。
在這些規范中定義了兩個不同的多時間集合單元。它們都包括例如下列NALU的16比特無符號大小信息(與STAP中的大小信息一樣)。除了這些16比特之外,還有視頻序列ID字段12.1(例如7比特)、字段指示符12.2和用于這些NALU的定時信息的n比特,以此,n可以例如是16或24。定時信息字段必須被設置,使得MTAP中每個NALU的RTP分組的RTP時間戳(NALU時間)可以通過添加來自MTAP的RTP時間戳的定時信息而生成。
在另一個可選擇實施例中,多時間集合分組(MTAP)包括NALU報頭字節、解碼順序編號基礎(DONB)字段12.1(例如16比特)、和一個或多個多圖像集合單元。兩個不同的多時間集合單元在這種情況下被定義如下。它們都包括例如下列NALU的16比特無符號大小信息(與STAP中的大小信息一樣)。除了這些16比特之外,還有解碼順序編號增量(DONA)字段12.5(例如7比特)、和用于這些NALU的定時信息的n比特,以此,n可以例如是16或24。下列NALU的DON等于DONB+DOND。定時信息字段必須被設置,使得MTAP中每個NALU的RTP分組的RTP時間戳(NALU時間)可以通過添加來自MTAP的RTP時間戳的定時信息而生成。DONB將包括MTAP的NAL單元當中最小的DON值。
根據本發明的緩沖模型的行為有利地用下列參數來控制起始輸入周期(例如以90kHz時鐘的時鐘節拍)和虛擬分組輸入緩沖器的大小(例如以字節)。優選地,缺省的起始輸入周期和虛擬分組輸入緩沖器的缺省大小是0。PSS客戶端可以在能力交換過程中來發信號告知它們提供較大緩沖器的能力。
例如用SDP的媒體級帶寬屬性或專用的SDP參數,可以發送最大的視頻比特率的信號。如果視頻級帶寬屬性在給出的說明中不存在,則最大視頻比特率根據使用中的視頻編碼配置文件和級別來定義。
例如通過使用MIME型參數或類似的非標準SDP參數,可以在所述流的SDP描述內發送每個流的起始參數值的信號。發信號的參數值覆蓋對應的缺省參數值。(假定恒定時延可靠的傳輸信道)在SDP描述內被發信號的值保證從流的開始一直無間斷播放到流的結束。
PSS服務器可以響應于RTSP播放請求來更新參數值。如果更新的參數值存在,則它將替換在SDP描述中被發信號的值或在PSS緩沖器模型的操作中的缺省參數值。更新的參數值只有在指示的播放范圍中才是有效的,并且在那之后不再有效。假定恒定時延可靠的傳輸信道,更新的參數值保證響應于播放請求指示的實際范圍的無間斷播放。虛擬輸入分組緩沖器的指示大小和起始輸入周期應該小于或等于SDP描述中的對應值或對應的缺省值,無論那一個都是有效的。
服務器緩沖校驗器根據指定的緩沖模型而被指定。所述模型是基于虛擬分組輸入緩沖器。
下面給出該緩沖模型。緩沖器最初是空的。當具有視頻有效載荷的RTP分組被發射時,PSS服務器立即將它們每一個添加到虛擬分組輸入緩沖器1.1。在RTP或任何較低層的所有協議報頭都被除去。在一個被稱作起始輸入周期的周期中,數據沒有從虛擬分組輸入緩沖器被移除。起始輸入周期在第一RTP分組被添加到虛擬分組輸入緩沖器的時候開始。當起始輸入周期已經期滿時,數據開始從虛擬分組輸入緩沖器被移除。除非虛擬分組輸入緩沖器1.1是空的,否則數據移除有利地發生在最大視頻比特率。從虛擬分組輸入緩沖器1.1除去的數據被輸入虛擬參考解碼器5。虛擬參考解碼器5執行虛擬解碼過程來保證編碼視頻流根據所設置參數是可解碼的,或者如果虛擬參考解碼器5注意到例如虛擬參考解碼器5的圖像緩沖器5.2溢出,則緩沖器參數可以被更改。在那種情況下,新的參數也被發射到接收裝置8,其中,緩沖器因此被重新初始化。
諸如PSS服務器之類的編碼和發射裝置1將校驗被發射的RTP分組流遵循以下要求-緩沖模型應該用于缺省或被發信號的緩沖參數值。發信號的參數值覆蓋對應的缺省參數值。
-虛擬分組輸入緩沖器的占用率將不會超過缺省或所發信號的緩沖器大小。
-虛擬分組輸入緩沖器的輸出比特流將遵循虛擬參考解碼器的定義。
當緩沖模型在使用中時,在RTP分組流在固定時延可靠的傳輸信道上被傳輸的時候,PSS客戶端應該能夠接收遵循PSS服務緩沖校驗器的RTP分組流。而且,PSS客戶端的解碼器將以由接收的分組流的RTP時間戳定義的正確的速率來輸出幀。
傳輸被編碼圖像的傳輸和/或存儲(以及可選擇的虛擬解碼)可以在第一編碼圖像準備好之后立即開始。這個圖像不一定是解碼器輸出順序中的第一個,因為解碼順序和輸出順序可能不相同。
當視頻流的第一圖像被編碼時,傳輸可以開始。被編碼圖像被選擇性地存儲到編碼圖像緩沖器1.2。傳輸還可以稍后開始,例如,在視頻流的某個部分被編碼之后開始。
例如通過使用圖像順序計數的排序,解碼器2也將以正確順序輸出已解碼圖像,并且因此重新排序過程需要被清楚地和規范地定義。
去分組化去分組化過程是與實施相關的。因此,以下描述是適當的實施的非限制性的示例。其它方案也可以被使用。相對于所述算法的優化很可能是可能的。
這些去分組化規則后的一般概念將NAL單元從傳輸順序重新排序到NAL單元遞送順序。
解碼接下來,將描述接收機8的操作。接收機8收集屬于圖像的所有分組,帶給它們合理的順序。順序的嚴謹性取決于所采用的配置文件。接收的分組被存儲到接收緩沖器9.1中(解碼前緩沖器)。接收機8丟棄任何不可用的東西,并且將剩余的傳遞到解碼器2。集合分組通過將它們的有效載荷卸載到攜帶NALU的各個RTP分組中得以處理。按照它們在集合分組中被安排的順序,那些NALU像它們在單獨的RTP分組中被接收那樣被處理。
在下文中,使N是可選擇num-reorder-VCL-NAL-units MIME類型參數的值,其指定了VCL NAL單元的最大量,VCL NAL單元在NAL單元遞送順序中先于分組流中的任何VCL NAL單元,并且在RTP序列號順序中或在包括該VCL NAL單元的集合分組的合成順序中的VCL NAL單元之后。如果參數不存在,則可以默示為0值的數字。
當視頻流傳輸會話被初始化時,接收機8為接收緩沖器9.1分配存儲器以便存儲至少N個VCL NAL單元。然后,接收機開始接收視頻流并且將接收到的VCL NAL單元存儲到接收緩沖器中,直到至少N個VCL NAL單元被存儲到接收緩沖器9.1中為止。
當接收機緩沖器9.1包括至少N個VCL NAL單元時,NAL單元被一個接一個地從接收機緩沖器9.1中移除并且被傳遞到解碼器2。NAL單元不是必須按與它們的存儲順序相同的順序從接收機緩沖器9.1中被移除,而是如下所述地根據NAL單元的視頻序列ID。向解碼器2的分組遞送一直繼續到緩沖器包括小于N個的VCL NAL單元,即N-1個VCL NAL單元。
在圖12中,描述了在解碼器的解碼前緩沖器中緩沖傳輸單元的示例。數字指示解碼順序,而傳輸單元的順序指的是傳輸順序(并且還指示接收順序)。
在下文中,使PVSID是被傳遞到解碼器的最新NAL單元的視頻序列ID(VSID)。STAP中的所有NAL單元都共享同一VSID。NAL單元向解碼器傳遞的順序被指定如下如果緩沖器中最舊的RTP序列號對應于簡單的分組,則該簡單分組中的NALU是NAL單元遞送順序中的下一個NALU。如果緩沖器中最舊的RTP序列號對應于一個集合分組,則NAL單元遞送順序在集合分組中以RTP序列號順序傳送的NALU當中被恢復,直到下一個簡單分組(排斥)。這組NALU在下面被稱為候選NALU。如果沒有在簡單分組中傳送的NALU存在于緩沖器中,則所有的NALU都屬于候選NALU。
對于候選NALU當中的每個NAL單元,VSID距離被計算如下。如果NAL單元的VSID大于PVSID,則VSID距離等于VSID-PVSID。否則,VSID距離等于2^(用來發送VSID的信號的比特數)-PVSID+VSID。NAL單元以VSID距離的升序被遞送給解碼器。如果幾個NAL單元共享同一VSID距離,則將它們傳遞到解碼器的順序將遵循這規范中定義的NAL單元遞送順序。NAL單元遞送順序可以如下文所述地被恢復。
首先,片和數據分割根據它們的幀編號、RTP時間戳和第一字段標志與圖像相關聯所有的NALU都共享相同的幀編號、RTP時間戳和屬于同一圖像的第一字段標志的值。SEI NALU、序列參數集NALU、圖像參數集NALU、圖像定界符NALU、序列結束NALU、流結束NALU、和填充符數據NALU屬于傳輸順序中的下一VCL NAL單元的圖像。
其次,圖像的遞送順序基于每個圖像的nal_ref_idc、幀編號、第一字段標志和RTP時間戳而被斷定。圖像的遞送順序是以幀編號的升序(在模運算中)。如果幾個圖像共享同一幀編號值,則一個或多個具有nal_ref_idc等于0的圖像首先被遞送。如果幾個圖像共享同一幀編號值并且它們全都具有等于0的nal_ref_idc,則圖像以RTP時間戳的升序被遞送。如果兩個圖像共享同一RTP時間戳,則具有等于1的第一字段標志的圖像首先被遞送。請注意,原始編碼圖像和對應的冗余編碼圖像在此被認為是一個編碼圖像。
再者,如果使用的視頻解碼器不支持任意的片排序,則片和A數據分割的遞送順序是片報頭中的first_mb_in_slice語法元素的升序。而且,B和C數據分割立即在遞送順序中跟隨對應的A數據分割。
在上文中,使用了術語PVSID和VSID。術語PDON(在NAL單元遞送順序中的集合分組的前一NAL單元的解碼順序編號)和DON(解碼順序編號)可以替代地被使用如下使被傳遞到解碼器的第一NAL單元的PDON是0。NAL單元被傳遞到解碼器的順序被指定如下如果緩沖器中最舊的RTP序列號對應于簡單分組,則該簡單分組中的NALU是NAL單元遞送順序中的下一個NALU。如果緩沖器中最舊的RTP序列號對應于集合分組,則NAL單元遞送順序在集合分組中以RTP序列號順序傳送的NALU當中被恢復,直到下一個簡單分組(排斥)。這組NALU在下面被稱為候選NALU。如果沒有在簡單分組中傳送的NALU存在于緩沖器中,則所有的NALU都屬于候選NALU。
對于候選NALU當中的每個NAL單元,DON距離計算如下。如果NAL單元的DON大于PDON,則DON距離等于DON-PDON。否則,DON距離等于2^(將DON和PDON表示為無符號整數的比特數)-PDON+DON。NAL單元以DON距離的升序被遞送給解碼器。
如果幾個NAL單元共享同一DON距離,則它們向解碼器的傳遞順序是1.如果存在,圖像定界符NAL單元2.如果存在,序列參數集NAL單元3.如果存在,圖像參數集NAL單元4.如果存在,SEI NAL單元5.如果存在,原始編碼圖像的編碼片和片數據分割NAL單元6.如果存在,冗余編碼圖像的編碼片和片數據分割NAL單元7.如果存在,填充符數據NAL單元8.如果存在,序列結束NAL單元9.如果存在,流結束NAL單元如果使用的視頻解碼器不支持任意的片排序,則片和A數據分割的遞送順序以片報頭中的first_mb_in_slice語法元素的升序來排序。而且,B和C數據分割立即在遞送順序中跟隨對應的A數據分割。
以下附加去分組化規則可以被用來執行運算的JVT去分組器NALU以RTP序列號的順序被呈現給JVT解碼器。在集合分組中傳送的NALU以它們在集合分組中的順序來給出。集合分組的所有NALU都在下一RTP分組被處理之前被處理。
智能RTP接收機(例如在網關中)可以標識丟失的DPA。如果找到丟失的DPA,則網關可以決定不發送DPB和DPC分割,因為它們的信息對于JVT解碼器來說沒有意義。用這種方法,網元可以通過丟棄無用分組來降低網絡負載而不用解析復雜的比特流。
智能接收機可以丟棄具有NAL參考Idc為0的所有分組。然而,如果可能,它們將處理這些分組,因為用戶體驗可以由于分組被丟棄而受損害。
DPB 2.1包括用于存儲大量圖像的存儲器位置。那些位置也被稱為描述中的幀存儲。解碼器2以正確順序解碼接收到的圖像。為此,解碼器檢驗所接收圖像的視頻序列ID信息。如果編碼器已經為每個圖像組自由地選擇了視頻序列ID,則解碼器以它們的被接收的順序來解碼圖像組的圖像。如果編碼器已經使用遞增(或遞減)編號方案為每個圖像組定義了視頻序列ID,則解碼器以視頻序列ID的順序來解碼圖像組。換言之,具有最小(或最大)視頻序列ID的圖像組被首先解碼。
本發明可以應用于許多種類的系統和裝置。發射裝置6包括編碼器1并且可選擇地包括HRD5,還有利地包括發射機7,用于將編碼圖像發射到傳輸信道4。接收裝置8包括用于接收編碼圖像的接收機9、解碼器2以及可以在上面顯示解碼圖像的顯示器10。例如,傳輸信道可以是陸上線路通信信道和/或無線通信信道。發射裝置和接收裝置還包括一個或多個處理器1.2、2.2,它們可以執行用于控制根據本發明視頻流的編碼/解碼過程所必需的步驟。因此,根據本發明的方法可以主要地被執行為處理器的機器可執行步驟。圖像緩沖可以在裝置的存儲器1.3、2.3中被實現。編碼器的程序代碼1.4可以被存儲到存儲器1.3中。相應地,解碼器的程序代碼2.4可以被存儲到存儲器2.3中。
顯然,虛擬參考解碼器5可以被安置在編碼器1之后,使得虛擬參考解碼器5在必要時重排編碼圖像并可以保證接收機8的解碼前緩沖器不溢出。
本發明可以實現在為虛擬參考解碼器5的一部分的緩沖校驗器中或者與之分離。
權利要求
1.一種用于緩沖編碼圖像的方法,該方法包括一個用于在編碼器中形成編碼圖像的編碼步驟,一個用于將所述編碼圖像作為傳輸單元發射到解碼器的傳輸步驟,一個用于在緩沖器中緩沖被發射到該解碼器的傳輸單元的緩沖步驟,以及一個用于解碼該編碼圖像以形成解碼圖像的解碼步驟,其中,定義了該緩沖器大小,使得至少兩個傳輸單元的總大小被定義并且最大緩沖器大小根據該總大小被定義。
2.根據權利要求1所述的方法,其中,該總大小計算中使用的傳輸單元編號是按照該傳輸單元編號的必需的緩沖器大小的分數。
3.根據權利要求1所述的方法,其中,該總大小計算中使用的傳輸單元編號是按照該傳輸單元編號的必需的緩沖器大小的分數,其中,該分數具有1/N的形式,N是整數。
4.根據權利要求1所述的方法,其中,該總大小計算中使用的傳輸單元編號按照該傳輸單元編號與必需的緩沖器大小相同。
5.根據權利要求1所述的方法,其中,該總大小計算中使用的傳輸單元編號可以表示為該傳輸單元的緩沖順序。
6.一種系統,包括一個編碼器用于編碼圖像,一個發射機用于將所述編碼圖像作為VCL NAL單元發射到解碼器,一個解碼器用于解碼該編碼圖像以便形成解碼圖像,該解碼器包括一個緩沖器用于緩沖被發射到該解碼器的傳輸單元,其中,該系統還包括一個定義器,用于定義該緩沖器大小,使得至少兩個傳輸單元的總大小被定義并且最大緩沖器大小根據該總大小被定義。
7.一種用于編碼圖像的編碼器,包括發射機,用于將所述編碼圖像作為傳輸單元發射到解碼器以便在緩沖器中緩沖并解碼,其中,該編碼器還包括一個定義器用于定義緩沖器大小,使得至少兩個傳輸單元的總大小被定義并且最大緩沖器大小根據該總大小被定義。
8.根據權利要求7所述的編碼器,其中,它包括一個緩沖器用于緩沖該編碼圖像,以及一個虛擬參考解碼器用于確定該編碼圖像的解碼緩沖需求。
9.一種用于解碼編碼圖像以便形成解碼圖像的解碼器,包括一個解碼前緩沖器用于緩沖所接收的編碼圖像以便解碼,其中,該解碼器還包括一個處理器用于根據指示該緩沖器大小的、所接收的參數來為該解碼前緩沖器分配存儲器,并且定義了該緩沖器大小,使得至少兩個傳輸單元的總大小被定義并且最大緩沖器大小根據該總大小被定義。
10.一種包括用于執行緩沖編碼圖像的方法的機器可執行步驟的軟件程序,該方法包括一個用于在編碼器中形成編碼圖像的編碼步驟,一個用于將所述編碼圖像作為傳輸單元發射到該解碼器的傳輸步驟,一個用于在緩沖器中緩沖被發射到該解碼器的傳輸單元的緩沖步驟,以及一個用于解碼該編碼圖像以形成解碼圖像的解碼步驟,其中,定義了該緩沖器大小,使得至少兩個傳輸單元的總大小被定義并且最大緩沖器大小根據該總大小被定義。
11.一種用于存儲包括用于執行緩沖編碼圖像的方法的機器可執行步驟的軟件程序的存儲介質,該方法包括一個用于在編碼器中形成編碼圖像的編碼步驟,一個用于將所述編碼圖像作為傳輸單元發射到該解碼器的傳輸步驟,一個用于在緩沖器中緩沖被發射到解碼器的傳輸單元的緩沖步驟,以及一個用于解碼該編碼圖像以形成解碼圖像的解碼步驟,其中,定義了該緩沖器大小,使得至少兩個傳輸單元的總大小被定義并且最大緩沖器大小根據該總大小被定義。
12.一種電子裝置,包括一個編碼器用于編碼圖像,以及一個發射機用于將所述編碼圖像作為傳輸單元發射到解碼器以便在緩沖器中緩沖并解碼,其中,該電子裝置還包括一個定義器,用于定義該緩沖器大小的,使得至少兩個傳輸單元的總大小被定義并且最大緩沖器大小根據該總大小被定義。
13.一種包括作為傳輸單元的編碼圖像的信號,為該信號確定用于解碼該編碼圖像的緩沖要求,其中,一個參數指示緩沖器大小,使得至少兩個傳輸單元的總大小被定義并且最大緩沖器大小根據該總大小被定義,并且所述參數被附加到該信號。
14.一種發射裝置,包括一個用于編碼圖像的編碼器,一個發射機用于將所述編碼圖像作為傳輸單元發射到解碼器以便在緩沖器中緩沖并解碼,其中,該發射裝置還包括一個定義器,用于定義緩沖器大小,使得至少兩個傳輸單元的總大小被定義并且最大緩沖器大小根據該總大小被定義。
15.一種接收裝置,其包括一個用于解碼編碼圖像以便形成解碼圖像的解碼器,一個解碼前緩沖器用于緩沖所接收的編碼圖像以便解碼,其中,該解碼器還包括一個處理器用于根據指示該緩沖器大小的、所接收的參數來為該解碼前緩沖器分配存儲器,并且定義了該緩沖器大小,使得至少兩個傳輸單元的總大小被定義并且最大緩沖器大小根據該總大小被定義。
全文摘要
本發明涉及用于緩沖編碼圖像的方法。該方法包括一個用于在編碼器中形成編碼圖像的編碼步驟。該方法還包括一個用于將所述編碼圖像為傳輸單元發射到解碼器的傳輸步驟,一個用于將被發射到解碼器的傳輸單元緩沖在緩沖器中的緩沖步驟,和一個用于解碼編碼圖像以形成解碼圖像的解碼步驟。緩沖器大小被如此定義,以至于至少兩個傳輸單元的總大小被定義并且最大緩沖器大小根據總大小而被定義。
文檔編號H04N7/12GK1934865SQ200580008985
公開日2007年3月21日 申請日期2005年2月14日 優先權日2004年2月13日
發明者米斯卡·昂尼克塞拉, 埃姆勒·阿克敘 申請人:諾基亞公司