專利名稱:用于視頻編碼和解碼的方法和裝置的制作方法
技術領域:
本發(fā)明總體上涉及視頻編碼領域,并且更具體地,涉及對解碼經(jīng)編碼數(shù)據(jù)的高效啟動。
背景技術:
本部分旨在提供針對在權利要求中敘述的本發(fā)明的背景或者上下文。這里的描述可以包括可能被實現(xiàn)的概念,但并不必是在此之前已經(jīng)被構想出或者實現(xiàn)過的概念。因此, 除非在此另行指出,在本部分中描述的并非是本申請中的描述和權利要求的現(xiàn)有技術,并且并不由于被包括在本部分中而被承認為現(xiàn)有技術。為了促進視頻內容在一個或者多個網(wǎng)絡上的傳輸,已經(jīng)開發(fā)了若干編碼標準。 視頻編碼標準包括 ITU-T H. 261, IS0/IEC MPEG-lVideo, ITU-T H. 262 或者 IS0/IEC MPEG-2Video、ITU-T H. 263、IS0/IEC MPEG-4 Visual、ITU-T H. 264(也被稱為 IS0/IEC MPEG-4AVC)、以及H. ^4/AVC的可分級視頻編碼(SVC)擴展。此外,當前正在努力開發(fā)新的視頻編碼標準。正在開發(fā)之中的一個此類標準是多視點視頻編碼(MVC)標準,其將成為對 H. 264/AVC的另一個擴展。高級視頻編碼(H. 264/AVC)標準被稱為ITU-T推薦H. 264和IS0/IEC國際標準 14496-10,也被稱為MPEG-4第10部分高級視頻編碼(AVC)。已經(jīng)存在了 H. 264/AVC標準的若干版本,每個版本都向規(guī)范合并了新的特征。版本8指代包括可分級視頻編碼(SVC)修正案的標準。當前正在審批的新版本包括多視點視頻編碼(MVC)修正案。建議使用由H. ^4/AVC和SVC支持的多級時間分級層級,這是由于它們的壓縮效率顯著提高。然而,多級層級也導致解碼的開始與渲染的開始之間的顯著延遲。該延遲是由以下事實造成的,即必須將經(jīng)解碼圖像從它們的解碼順序重新排序成輸出/顯示順序。因此,當從隨機位置對流進行訪問時,啟動延遲增加,并且類似地,與非層級時間分級的情況相比,對多播或者廣播的調諧延遲增加。
發(fā)明內容
在本發(fā)明的一個方面中,一種方法包括接收包括訪問單元序列在內的比特流;對該比特流中的第一可解碼訪問單元進行解碼;確定該比特流中的下一可解碼訪問單元在該下一可解碼訪問單元的輸出時間之前是否可以被解碼;以及基于確定該下一可解碼訪問單元在該下一可解碼訪問單元的輸出時間之前無法被解碼而跳過對該下一可解碼訪問單元的解碼。在一個實施方式中,該方法還包括跳過對依賴于該下一可解碼訪問單元的任何訪問單元的解碼。在一個實施方式中,該方法還包括基于確定該下一可解碼訪問單元在該下一可解碼訪問單元的輸出時間之前可以被解碼而對該下一可解碼訪問單元進行解碼??梢詫υ摯_定以及跳過解碼或者對該下一可解碼訪問單元進行解碼進行重復,直到該比特流不再包括訪問單元。在一個實施方式中,對該第一可解碼訪問單元進行解碼可以包括在相對于先前的解碼位置的非連續(xù)位置處開始解碼。在本發(fā)明的另一方面中,一種方法包括從接收器接收針對包括訪問單元序列的比特流的請求;封裝該比特流的第一可解碼訪問單元以供傳輸;確定該比特流中的下一可解碼訪問單元在該下一可解碼訪問單元的傳輸時間之前是否可以被封裝;以及基于確定該下一可解碼訪問單元在該下一可解碼訪問單元的傳輸時間之前無法被封裝而跳過對該下一可解碼訪問單元的封裝;以及向該接收器傳輸該比特流。在本發(fā)明的又一方面中,一種方法包括生成用于對包括訪問單元序列的比特流進行解碼的指令,該指令包括對該比特流中的第一可解碼訪問單元進行解碼;確定該比特流中的下一可解碼訪問單元在該下一可解碼訪問單元的輸出時間之前是否可以被解碼;以及基于確定該下一可解碼訪問單元在該下一可解碼訪問單元的輸出時間之前無法被解碼而跳過對該下一可解碼訪問單元的解碼。在本發(fā)明的另一方面中,一種方法包括基于指令對包括訪問單元序列的比特流進行解碼,該指令包括對該比特流中的第一可解碼訪問單元進行解碼;確定該比特流中的下一可解碼訪問單元在該下一可解碼訪問單元的輸出時間之前是否可以被解碼;以及基于確定該下一可解碼訪問單元在該下一可解碼訪問單元的輸出時間之前無法被解碼而跳過對該下一可解碼訪問單元的解碼。 在本發(fā)明的又一方面中,一種方法包括生成用于對包括訪問單元序列的比特流進行封裝的指令,該指令包括封裝該比特流的第一可解碼訪問單元以供傳輸;確定該比特流中的下一可解碼訪問單元在該下一可解碼訪問單元的傳輸時間之前是否可以被封裝;以及基于確定該下一可解碼訪問單元在該下一可解碼訪問單元的傳輸時間之前無法被封裝而跳過對該下一可解碼訪問單元的封裝。在本發(fā)明的另一方面中,一種方法包括基于指令封裝包括訪問單元序列的比特流,該指令包括封裝該比特流的第一可解碼訪問單元以供傳輸;確定該比特流中的下一可解碼訪問單元在該下一可解碼訪問單元的傳輸時間之前是否可以被封裝;以及基于確定該下一可解碼訪問單元在該下一可解碼訪問單元的傳輸時間之前無法被封裝而跳過對該下一可解碼訪問單元的封裝。在本發(fā)明的又一方面中,一種方法包括從比特流中選擇經(jīng)編碼數(shù)據(jù)單元的第一集合,其中包括不含該經(jīng)編碼數(shù)據(jù)單元結果的第一集合的該比特流的子比特流可解碼為經(jīng)解碼數(shù)據(jù)單元的第一集合,該比特流可解碼為經(jīng)解碼數(shù)據(jù)單元的第二集合,第一緩沖資源足以將該經(jīng)解碼數(shù)據(jù)單元的第一集合布置為輸出順序(output order),第二緩沖資源足以將該經(jīng)解碼數(shù)據(jù)單元的第二集合布置為輸出順序,并且該第一緩沖資源少于該第二緩沖資源。在一個實施方式中,該第一緩沖資源和該第二緩沖資源是相對于用于經(jīng)解碼數(shù)據(jù)單元緩沖的初始時間而言的。在另一實施方式中,該第一緩沖資源和該第二緩沖資源是相對于用于經(jīng)解碼數(shù)據(jù)單元緩沖的初始緩沖占有而言的。在本發(fā)明的另一方面中,一種裝置包括解碼器,該解碼器配置用于對該比特流中的第一可解碼訪問單元進行解碼;確定該比特流中的下一可解碼訪問單元在該下一可解碼訪問單元的輸出時間之前是否可以被解碼;以及基于確定該下一可解碼訪問單元在該下一可解碼訪問單元的輸出時間之前無法被解碼而跳過對該下一可解碼訪問單元的解碼。在本發(fā)明的又一方面中,一種裝置包括編碼器,該編碼器配置用于封裝該比特流
5的第一可解碼訪問單元以供傳輸;確定該比特流中的下一可解碼訪問單元在該下一可解碼訪問單元的傳輸時間之前是否可以被封裝;以及基于確定該下一可解碼訪問單元在該下一可解碼訪問單元的傳輸時間之前無法被封裝而跳過對該下一可解碼訪問單元的封裝。在本發(fā)明的另一方面中,一種裝置包括文件生成器,該文件生成器配置用于生成指令以對該比特流中的第一可解碼訪問單元進行解碼;確定該比特流中的下一可解碼訪問單元在該下一可解碼訪問單元的輸出時間之前是否可以被解碼;以及基于確定該下一可解碼訪問單元在該下一可解碼訪問單元的輸出時間之前無法被解碼而跳過對該下一可解碼訪問單元的解碼。在本發(fā)明的又一方面中,一種裝置包括文件生成器,該文件生成器配置用于生成指令以封裝該比特流的第一可解碼訪問單元以供傳輸;確定該比特流中的下一可解碼訪問單元在該下一可解碼訪問單元的傳輸時間之前是否可以被封裝;以及基于確定該下一可解碼訪問單元在該下一可解碼訪問單元的傳輸時間之前無法被封裝而跳過對該下一可解碼訪問單元的封裝。在本發(fā)明的另一方面中,一種裝置包括處理器以及可通信地連接至該處理器的存儲器單元。該存儲器單元包括用于對該比特流中的第一可解碼訪問單元進行解碼的計算機代碼;用于確定該比特流中的下一可解碼訪問單元在該下一可解碼訪問單元的輸出時間之前是否可以被解碼的計算機代碼;以及用于基于確定該下一可解碼訪問單元在該下一可解碼訪問單元的輸出時間之前無法被解碼而跳過對該下一可解碼訪問單元的解碼的計算機代碼。在本發(fā)明的又一方面中,一種裝置包括處理器以及可通信地連接至該處理器的存儲器單元。該存儲器單元包括用于封裝針對該比特流的第一可解碼訪問單元以供傳輸?shù)挠嬎銠C代碼;用于確定該比特流中的下一可解碼訪問單元在該下一可解碼訪問單元的傳輸時間之前是否可以被封裝的計算機代碼;以及用于基于確定該下一可解碼訪問單元在該下一可解碼訪問單元的傳輸時間之前無法被封裝而跳過對該下一可解碼訪問單元的封裝的計算機代碼。在本發(fā)明的另一方面中,一種計算機程序產(chǎn)品體現(xiàn)在計算機可讀介質上并且包括用于對該比特流中的第一可解碼訪問單元進行解碼的計算機代碼;用于確定該比特流中的下一可解碼訪問單元在該下一可解碼訪問單元的輸出時間之前是否可以被解碼的計算機代碼;以及用于基于確定該下一可解碼訪問單元在該下一可解碼訪問單元的輸出時間之前無法被解碼而跳過對該下一可解碼訪問單元的解碼的計算機代碼。在本發(fā)明的又一方面中,一種計算機程序產(chǎn)品體現(xiàn)在計算機可讀介質上并且包括用于封裝該比特流的第一可解碼訪問單元以供傳輸?shù)挠嬎銠C代碼;用于確定該比特流中的下一可解碼訪問單元在該下一可解碼訪問單元的傳輸時間之前是否可以被封裝的計算機代碼;以及用于基于確定該下一可解碼訪問單元在該下一可解碼訪問單元的該傳輸時間之前無法被封裝而跳過對該下一可解碼訪問單元的封裝的計算機代碼。本發(fā)明的各種實施方式的這些和其他優(yōu)點和特征,連同其操作的組織與方式,將通過結合附圖的以下詳細描述而變得顯而易見。
通過參考附圖描述本發(fā)明的實施方式,其中圖1圖示了具有時間分級的示例性層級編碼結構;圖2圖示了根據(jù)ISO基礎媒體文件格式的示例性盒;圖3是圖示了樣本編組的示例性盒;圖4圖示了容納包括SampletoToGroup盒的電影片段的示例性盒;圖5圖示了用于數(shù)字視頻廣播-手持式(DVB-H)的協(xié)議棧;圖6圖示了多協(xié)議封裝前向糾錯(MPE-FEC)幀的結構;圖7(a)-圖7(c)圖示了具有5個時間級別的示例層級可分級比特流;圖8是圖示了根據(jù)本發(fā)明的實施方式的示例實現(xiàn)的流程圖;圖9圖示了圖8的方法對圖7的序列的示例應用;圖10圖示了根據(jù)本發(fā)明的實施方式的另一示例序列;圖11(a)-圖11(c)圖示了根據(jù)本發(fā)明的實施方式的又一示例序列;圖12是在其中可以實現(xiàn)本發(fā)明的各種實施方式的系統(tǒng)的概覽圖;圖13圖示了可以根據(jù)本發(fā)明的各種實施方式利用的示例性電子設備的透視圖;圖14是可以包括在圖13的電子設備中的電路的示意圖;以及圖15是在其中可以實現(xiàn)各種實施方式的一般多媒體通信系統(tǒng)的圖示。
具體實施例方式在以下描述中,出于說明而非限制的目的,為了提供對本發(fā)明的徹底理解而闡明了細節(jié)和描述。然而,對本領域技術人員而言,很明顯地,本發(fā)明可以在脫離這些細節(jié)和描述的其他實施方式中實踐。如上所述,高級視頻編碼(H. 264/AVC)標準被稱為ITU-T推薦H. 264和IS0/IEC 國際標準14496-10,也被稱為MPEG-4第10部分高級視頻編碼(AVC)。已經(jīng)存在了 H. 264/ AVC標準的若干版本,每個版本都向規(guī)范合并了新的特征。版本8指代包括可分級視頻編碼 (SVC)修正案的標準。當前正在審批的新版本包括多視點視頻編碼(MVC)修正案。類似于較早的視頻編碼標準,在H. 264/AVC中指定了用于無誤比特流的解碼過程以及比特流語法和語義。編碼過程未被指定,但是編碼器必須生成一致的比特流??梢杂眉僭O參考解碼器(HRD)來驗證比特流與解碼器一致性,HRD在H. 264/AVC的附錄C中指定。 該標準包含有助于應對傳輸錯誤和損失的編碼工具,但是在編碼中對該工具的使用是可選的并且尚未針對錯誤比特流指定解碼過程。H. 264/AVC編碼器的輸入以及H. 264/AVC解碼器的輸出的基本單位是圖像。圖像可以是幀或者場。幀包括亮度樣本和相應色度樣本的矩陣。場是幀的交替樣本行的集合并且在源信號被交織時可以被用作編碼器輸入。宏塊是亮度樣本的16x16塊和相應的色度樣本的塊。圖像被分為一個或多個片組,并且片組包括一個或多個片。片包括整數(shù)個宏塊,這些宏塊在特定片組內的光柵掃描中連續(xù)排列。H. 264/AVC編碼器的輸出和H. 264/AVC解碼器的輸入的基本單位是網(wǎng)絡抽象層 (NAL)單元。對部分或者毀壞的NAL單元的解碼非常困難。為了通過面向分組的網(wǎng)絡進行傳播或者向結構化文件中進行存儲,通常將NAL單元封裝到分組或者類似結構中。在H. 264/ AVC中已經(jīng)針對不提供成幀結構的傳輸或者存儲環(huán)境指定了字節(jié)流格式。字節(jié)流格式通過在每個NAL單元前面附加起始碼而將NAL單元相互分離。為了避免對NAL單元邊界的錯誤檢測,編碼器必須運行面向字節(jié)的起始碼預防歧義(emulation prevention)算法,其在未出現(xiàn)起始碼時向NAL單元凈荷添加預防歧義字節(jié)。為了支持面向分組的系統(tǒng)與面向流的系統(tǒng)之間的直接網(wǎng)關操作,無論是否正在使用字節(jié)流格式,總是執(zhí)行起始碼預防歧義。H. 264/AVC的比特流語法指示特定圖像是否為用于任何其他圖像的幀間預測的參考圖像。因此,不用于預測的圖像(非參考圖像)可以被安全地處置。任何編碼類型(I、P、 B)的圖像都可以是H. 264/AVC中的非參考圖像。NAL單元頭指示NAL單元的類型以及包含在該NAL單元中的經(jīng)編碼片是參考圖像還是非參考圖像的一部分。H. 264/AVC指定用于經(jīng)解碼參考圖像標記的過程以便控制解碼器中的存儲器消耗。在序列參數(shù)集合中確定被稱為M的用于幀間預測的參考圖像的最大數(shù)目。當參考圖像被解碼時,其被標記為“用于參考”。如果參考圖像的解碼使得多于M個圖像被標記為“用于參考”,則至少一個圖像必須被標記為“未用于參考(unused for reference) 針對經(jīng)解碼參考圖像標記存在兩種類型的操作自適應存儲器控制和滑動窗口?;趫D像來選擇用于經(jīng)解碼參考圖像標記的操作模式。自適應存儲器控制使得能夠明確表示哪個圖像被標記為“未用于參考”并且還可以向短期參考圖像分配長期索引。自適應存儲器控制要求在比特流中存在存儲器管理控制操作(MMCO)參數(shù)。如果滑動窗口操作模式在使用中并且有 M個圖像被標記為“用于參考”,則在被標記為“用于參考”的那些短期參考圖像之中的作為被首先解碼的圖像的短期參考圖像被標記為“未用于參考”。換言之,滑動窗口操作模式導致短期參考圖像之中的先進先出緩沖操作。H. 264/AVC中的存儲器管理控制操作之一使得除了當前圖像以外的所有參考圖像被標記為“未用于參考”。即時解碼刷新(instantaneous decoding refresh, IDR)圖像僅包含幀內編碼片并且導致參考圖像的類似的“重置”。使用對參考圖像列表的索引來指示用于幀間預測的參考圖像。該索引使用可變長度編碼進行編碼,即,索引越小則相應的語法元素變得越短。針對H. 264/AVC的每個雙向預測片(bi-predictive slice)生成兩個參考圖像列表,并且針對H. ^4/AVC的每個幀間編碼片形成一個參考圖像列表。以兩個步驟來構建參考圖像列表首先生成初始參考圖像列表,并且繼而可以通過包含在片頭(slice header)中的參考圖像列表重新排序(RPLR)命令對初始參考圖像列表進行重新排序。RPLR命令指示被排序到相應的參考圖像列表的開端的圖像。framejum語法元素用于與多個參考圖像有關的各種解碼過程。要求IDR圖像的 frame_num的值為0。要求非IDR圖像的framejum的值等于在解碼順序中的前一參考圖像的framejum遞增1 (以模運算的形式,即在framejum的最大值之后framejum的值繞回0)。在H. 264/AVC的附錄C中指定的假設參考解碼器(HRD)用于檢查比特流和解碼器一致性。HRD包含經(jīng)編碼圖像緩沖器(CPB)、即時解碼過程、經(jīng)解碼圖像緩沖器(DPB)以及輸出圖像修剪塊(cropping block)。CPB和即時解碼過程被類似地指定給任何其他視頻編碼標準,并且輸出圖像修剪塊簡單地修剪來自位于以信令通信的輸出圖像范圍之外的經(jīng)解碼圖像的那些樣本。將DPB引入H. 264/AVC中以便控制用于對一致的比特流進行解碼所需的存儲器資源。出于兩個原因而緩存經(jīng)解碼圖像,為了在幀間預測中參考和為了將經(jīng)解碼圖像重新排序為輸出順序。由于H. ^4/AVC為參考圖像標記和輸出重新排序兩者提供了極大的靈活性,因此用于參考圖像緩沖和輸出圖像緩沖的分立的緩沖器可能是對存儲器資源的浪費。因此,DPB包括用于參考圖像和輸出重新排序的統(tǒng)一經(jīng)解碼圖像緩沖過程。當經(jīng)解碼圖像不再用作參考和需要將其輸出時,將其從DPB移除。允許比特流使用的DPB的最大尺寸在H. 264/AVC的級別定義(附錄A)中指定。 對于解碼器存在兩種類型的一致性輸出時序一致性和輸出順序一致性。對于輸出時序一致性,解碼器必須以與HRD比較而言相同的時間輸出圖像。對于輸出順序一致性, 僅僅考慮輸出圖像的正確順序。假設輸出順序DPB包含最大允許數(shù)目的幀緩沖器。當一個幀不再用作參考并且需要將其輸出時將其從DPB移除。當DPB變滿時,輸出順序中的最早幀被輸出,直到至少一個幀緩沖器變?yōu)槲幢徽加谩?可以將NAL單元分類為視頻編碼層(VCL) NAL單元和非VCLNAL單元。VCL NAL單元是經(jīng)編碼片NAL單元、經(jīng)編碼片數(shù)據(jù)分塊NAL單元或者VCL前綴NAL單元。經(jīng)編碼片NAL 單元包含代表一個或多個經(jīng)編碼宏塊的語法元素,其中每個經(jīng)編碼宏塊對應于未壓縮圖像中的樣本塊。存在4種類型的經(jīng)編碼片NAL單元即時解碼刷新(IDR)圖像中的經(jīng)編碼片、 非IDR圖像中的經(jīng)編碼片、輔助經(jīng)編碼圖像(諸如alpha平面)的經(jīng)編碼片以及可分級擴展(SVC)中的經(jīng)編碼片。三個經(jīng)編碼片數(shù)據(jù)分塊NAL單元的集合包含相同的語法元素作為經(jīng)編碼片。經(jīng)編碼片數(shù)據(jù)分塊A包括片的運動向量以及宏塊頭,而經(jīng)編碼片數(shù)據(jù)分塊B和C 分別包括用于幀內宏塊和幀間宏塊的經(jīng)編碼殘留數(shù)據(jù)。應當注意,在H. 264/AVC的基本應用規(guī)范或高級應用規(guī)范中沒有包括對片數(shù)據(jù)分塊的支持。VCL前綴NAL單元先于SVC比特流中的基礎層的經(jīng)編碼片,并且包含相關聯(lián)的經(jīng)編碼片的可分級層級的指示。非VCL NAL單元可以是以下類型之一序列參數(shù)集合、圖像參數(shù)集合、補充增強信息(SEI) NAL單元、訪問單元定界符、序列NAL單元的末端、流NAL單元的末端或者填充符數(shù)據(jù)NAL單元。參數(shù)集合對于經(jīng)解碼圖像的重建而言是必要的,而其他非VCL NAL單元對于經(jīng)解碼樣本值的重建而言不是必需的并且服務于以下介紹的其他目的。在下述段落中深入地評述參數(shù)集合以及SEI NAL單元。其他非VCL NAL單元對于本文的范圍而言不是必要的并因此而未被描述。為了魯棒地傳遞不頻繁改變的編碼參數(shù),對H. ^4/AVC采用參數(shù)集合機制。通過經(jīng)編碼視頻序列而保持不變的參數(shù)被包括在序列參數(shù)集合中。除了對于解碼過程而言必要的參數(shù),序列參數(shù)集合可選地可以包含視頻可用性信息(VUI),其包括對于緩沖、圖像輸出時序、渲染和資源保留而言重要的參數(shù)。圖像參數(shù)集合包含很可能在若干經(jīng)編碼圖像中都不改變的此類參數(shù)。在HJ64/AVC比特流中不存在圖像頭,但是頻繁改變的圖像級數(shù)據(jù)在每個片頭中重復并且圖像參數(shù)集攜載剩余的圖像級參數(shù)。H. ^4/AVC語法允許圖像參數(shù)集合和序列的許多實例,并且使用唯一的標識符來標識每個實例。每個片頭包括對于包含該片的圖像的解碼而言為活躍的圖像參數(shù)集合的標識符,并且每個圖像參數(shù)集合包含活躍序列參數(shù)集合的標識符。因此,圖像和序列參數(shù)集合的傳輸并不必須與片的傳輸準確同步。相反,在活躍序列和圖像參數(shù)集合被參考前的任何時刻接收它們就足夠了,這允許使用與用于片數(shù)據(jù)的協(xié)議相比更為可靠的傳輸機制來傳輸參數(shù)集合。例如,參數(shù)集合可以被包括作為用于HJ64/AVC RTP會話的會話描述中的參數(shù)。推薦只要有可能,就在正使用的應用中使用頻帶外的可靠的傳輸機制。如果參數(shù)集合在頻帶內傳輸,則可以對它們進行重復以改進錯誤魯棒性。一個SEI NAL單元包含一個或者多個SEI消息,其并非是對輸出圖像的解碼所需要的但是有助于相關過程,諸如圖像輸出時序、渲染、錯誤檢測、錯誤隱藏以及資源保留。在 H. 264/AVC中指定了若干SEI消息,并且用戶數(shù)據(jù)SEI消息支持團體和公司為了它們自己的使用而指定SEI消息。H. ^4/AVC包含用于指定的SEI消息的語法和語義,但是沒有定義用于對接收方的消息進行處理的過程。因此,當編碼器創(chuàng)建SEI消息時它們必須遵循H. 264/ AVC標準,而對于為了輸出順序一致性而處理SEI消息則并不需要解碼器與H. ^4/AVC標準一致。在H. 264/AVC中包括SEI消息的語法和語義的原因之一是為了允許不同系統(tǒng)規(guī)范同一地解釋補充信息并且因而互操作。旨在讓系統(tǒng)規(guī)范可以在編碼端和在解碼端兩者中要求使用特定SEI消息,并且附加地可以指定用于處理接收方的特定SEI消息的過程。經(jīng)編碼圖像包括對該圖像進行解碼所必需的VCL NAL單元。經(jīng)編碼圖像可以是主編碼圖像或者冗余編碼圖像。主編碼圖像在有效比特流的解碼過程中使用,而冗余編碼圖像是冗余表示,其僅當主編碼圖像無法被成功解碼時才應當被解碼。訪問單元包括主編碼圖像和與其相關聯(lián)的那些NAL單元。訪問單元內的NAL單元的出現(xiàn)順序被限定如下??蛇x訪問單元定界符NAL單元可以指示訪問單元的開始。其后接有0個或更多個SEI NAL單元。接著出現(xiàn)主編碼圖像的經(jīng)編碼片或者片數(shù)據(jù)分塊,其后接有0個或者更多個冗余編碼圖像的經(jīng)編碼片。經(jīng)編碼視頻序列被定義為按照解碼順序的連續(xù)訪問單元序列,該順序為從一個 IDR訪問單元(含該單元)到下一 IDR訪問單元(不含該單元)或者到該比特流的末端,以更早出現(xiàn)的情況為準。在H.264/AVC 的最新發(fā)布(ITU-T 推薦H. 264(11/2007) ,"Advanced video coding for generic audiovisual services,,)的附錄 G 中指定了 SVC。在可分級視頻編碼中,視頻信號可以被編碼為構建的基礎層以及一個或多個增強層。增強層增強時間分辨率(即,幀速率)、空間分辨率或者簡單地增強由另一層或其部分代表的視頻內容的質量。每個層連同其所有從屬層是在某個空間分辨率、時間分辨率和質量級別的視頻信號的一個表示。在本文中,將可分級層連同其所有從屬層稱為“可分級層表示”。對應于可分級層表示的可分級比特流的部分可以被提取和解碼以產(chǎn)生在某個保真度的原始信號的表示。在某些情況中,可以在某個位置乃至任意位置之后將增強層中的數(shù)據(jù)截短,每個截短位置可以包括表示逐漸增強的視覺質量的附加數(shù)據(jù)。此類分級可以被稱為細粒度(粒度)(fine-grained (granularity))分級(TOS)。應當指出,在最新的SVC草案中已經(jīng)放棄了對FGS的支持,但該支持在較早的SVC草案中可用,例如,在JVT-U201, “Joint Draft 8 of SVC Amendment,,(21st JVT meeting, Hangzhou, China, October 2006,其可從 http://ftp3. itu. ch/av-arch/jvt-site/2006_10_Hangzhou/JVT-U201. zip獲得)中可用。與res相反,由不能被截短的那些增強層提供的分級被稱為粗粒度(粒度)(coarse-grained(granularity))分級(CGS)。其共同地包括傳統(tǒng)的質量(SNR)可分級性和空間可分級性。SVC草案標準還支持所謂的中等粒度(粒度) (medium-grained(granularity))分級(MGS),其中通過使 quality_id 語法元素大于 0,將質量增強圖像類似地編碼為SNR可分級層圖像但是由高級語法元素類似地指示為res層圖像。SVC使用層間預測機制,其中某些信息可以從除了當前重新構建的層或下一較低層以外的層預測??梢员粚娱g預測的信息包括幀內紋理(intra texture)、運動和殘留數(shù)據(jù)。層間運動預測包括塊編碼模式、頭信息等的預測,其中來自較低層的運動可以用于較高層的預測。在幀內編碼的情況下,可以根據(jù)周圍宏塊或者來自較低層的同等位置的宏塊來進行預測。這些預測技術沒有使用來自較早編碼的訪問單元的信息并且因此被稱為幀內預測技術。此外,來自較低層的殘留數(shù)據(jù)也可以用于當前層的預測。SVC指定被稱為單循環(huán)解碼的概念。其通過使用受限的幀內紋理預測模式而被支持,從而層間幀內紋理預測可以被應用于宏塊(MB),對于該宏塊,基礎層的相應塊位于幀內 MB內。同時,基礎層中的這些幀內MB使用受限幀內預測(例如,使語法元素“constrainecL intra_pred_flag”等于1)。在單循環(huán)解碼中,解碼器僅針對期望用于回放的可分級層(稱為“期望層”或者“目標層”)執(zhí)行運動補償和完全圖像重建,從而極大地降低了解碼復雜性。 除了期望層之外的所有層均不需要被完全解碼,這是因為對于期望層的重建而言不需要不用于層間預測(無論是層間幀內紋理預測、層間運動預測還是層間殘留預測)的MB的全部數(shù)據(jù)或部分數(shù)據(jù)。對于大多數(shù)圖像的解碼需要單個解碼循環(huán),而第二解碼循環(huán)選擇性地應用于重建基礎表示,其需要用作預測參考而不是用于輸出或者顯示,并且僅針對所謂的關鍵圖像 (針對關鍵圖像,“st0re_base_i^p_flag”等于1)而被重建。SVC草案中的可分級結構以三個語法元素表征“ temporal_id”、“ dependency, id”和“qualityjd”。語法元素“temporaljd”用于指示時間可分級層級或間接地指示幀速率。包括較小最大“temporaljd”值的圖像的可分級層表示比包括較大最大“temporal id”的圖像的可分級層表示具有更小的幀速率。給定的時間層通常取決于較低時間層 (即,具有較小“temporaljd”值的時間層)而并不取決于任何較高時間層。語法元素 “cbpendencyjd”用于指示CGS層間編碼從屬層級(其如前文所提及,包括SNR和空間可分級性兩者)。在任何時間層位置,較小“d印endencyjd”值的圖像可以用于針對具有較大 “cbpendencyjd”值的圖像的編碼的層間預測。語法元素“qualityjd”用于指示TOS或者 MGS層的質量級別層級。在任何時間位置,并且伴隨相同的“cbpendencyjd”值,具有等于 QL的“qualityjd”的圖像使用具有等于QL-I的“qualityjd”的圖像用于層間預測。具有大于0的“qualityjd”的經(jīng)編碼片可以被編碼為可截短TOS片或者不可截短MGS片。為簡單起見,一個訪問單元中具有相同的“cbpendencyjd”值的所有數(shù)據(jù)單元 (例如,SVC上下文中的網(wǎng)絡抽象層單元或者NAL單元)被稱為從屬單元或者從屬表示。在一個從屬單元內,具有相同的“quality_id”值的所有數(shù)據(jù)單元被稱為質量單元或者層表
7J\ ο基礎表示(也稱為經(jīng)解碼基礎圖像)是通過對具有等于0的“quality_id”并且 “st0re_base_i^p_flag”設置為等于1的從屬單元的視頻編碼層(VCL) NAL單元進行解碼而產(chǎn)生的經(jīng)解碼圖像。增強表示(也稱為經(jīng)解碼圖像)是通過常規(guī)解碼過程而產(chǎn)生的,在該過程中對為了最高從屬表示而存在的所有的層表示進行解碼。在SVC比特流中,每個H. ^4/AVC VCL NAL單元(NAL單元類型在1至5的范圍中) 之前是前綴NAL單元。兼容的H. ^4/AVC解碼器實現(xiàn)方式忽略前綴NAL單元。前綴NAL單元包括“temporaljd”值并且因此對基礎層進行解碼的SVC解碼器可以從前綴NAL單元得知時間可分級層級。此外,前綴NAL單元包括用于基礎表示的參考圖像標記命令。SVC使用與H. 264/AVC相同的機制來提供時間可分級性。時間可分級性通過給予調整幀速率的靈活性而在時間域中提供對視頻質量的精細化。在隨后的段落中提供對時間可分級性的評述。向視頻編碼標準引入的最早的可分級性是在MPEG-I Visual中伴隨B圖像的時間可分級性。在這個B圖像概念中,從兩個圖像雙向預測出B圖像,一個圖像在B圖像之前而另一個圖像在B圖像之后,它們二者都按照顯示順序。在雙向預測中,對兩個參考圖像中的兩個預測塊進行采樣寬度求平均以獲得最終的預測塊。傳統(tǒng)上,B圖像是非參考圖像(即, 其不由其他圖像用于圖像間預測參考)。因此,B圖像可以被丟棄以實現(xiàn)具有較低幀速率的時間可分級點。在MPEG-2 Video、H. 263和MPEG-4 Visual中保留了同樣的機制。在H. 264/AVC中,B圖像或者B片的概念已經(jīng)被改變。B片的定義如下使用至多兩個運動向量和參考索引預測每個塊的樣本值,可以使用幀內預測從同一片內的經(jīng)解碼樣本或使用幀間預測從之前解碼的參考圖像進行解碼的片。傳統(tǒng)的B圖像概念的雙向預測性質和非參考圖像性質兩者均不再有效??梢詮陌凑诊@示順序的相同方向上的兩個參考圖像預測B片中的塊,并且包括B片的圖像可以由其他圖像參考以供圖像間預測。在H. 264/AVC, SVC和MVC中,時間可分級性可以通過使用非參考圖像和/或層級圖像間預測結構實現(xiàn)。通過丟棄非參考圖像,僅使用非參考圖像能夠實現(xiàn)類似于使用 MPEG-V2/4中的傳統(tǒng)B圖像的時間可分級性。層級編碼結構可以實現(xiàn)更靈活的時間可分級性?,F(xiàn)在參考圖1,其示出了具有4級時間可分級性的示例性層級編碼結構。顯示順序由被表示為圖像順序計數(shù)(P0C)210的值指示。I或P圖像(諸如I/P圖像212,也被稱為關鍵圖像)被編碼成按照解碼順序的圖像組(GOP) 214的第一圖像。當關鍵圖像(例如, 關鍵圖像216、218)被幀間編碼時,之前的關鍵圖像212、216被用作針對圖像間預測的參考。這些圖像對應于時間可分級結構中的最低時間級別220(在圖中表示為TL)并且與最低幀速率相關聯(lián)。較高時間級別的圖像可以僅使用相同或者更低時間級別的圖像以供圖像間預測。使用此類層級編碼結構,可以通過丟棄某些時間級別值和超過部分的圖像來實現(xiàn)對應于不同幀速率的不同時間可分級性。在圖1中,圖像0、8和16是最低時間級別的,而圖像1、3、5、7、9、11、13和15是最高時間級別的。其他圖像被分層地分配有其他時間級別。 這些不同時間級別的圖像組成不同幀速率的比特流。當對所有時間級別進行解碼時,獲得 30Hz的幀速率。通過丟棄某些時間級別的圖像可以獲得其他幀速率。最低時間級別的圖像與3. 75Hz的幀速率相關聯(lián)。具有較低時間級別或者較低幀速率的時間可分級層也被稱為較低時間層。以上描述的層級B圖像編碼結構是最典型的時間可分級性的編碼結構。然而,應當注意,靈活得多的編碼結構是可能的。例如,隨著時間的推移GOP尺寸可能不是恒定的。 在另一示例中,時間增強層圖像并不必須被編碼為B片,它們也可以被編碼為P片。在H. 264/AVC中,可以通過子序列信息補充增強信息(SEI)消息用信令發(fā)送時間級別。在SVC中,在網(wǎng)絡抽象層(NAL)單元頭中通過語法元素“temporaljd”用信令發(fā)送時間級別。在可分級性信息SEI消息中用信令發(fā)送針對每個時間級別的比特率和幀速率信肩、ο子序列代表可以被去除而不會影響剩余比特流的解碼的相互從屬圖像的數(shù)目。經(jīng)編碼比特流中的圖像可以按照多種方式組織為子序列。在大多數(shù)應用中,單一結構的子序列就足夠了。如前文所提及,CGS包括空間可分級性和SNR可分級性兩者。空間可分級性被初始地設計用于支持具有不同分辨率的視頻的表示。對于每個時間實例,在同一訪問單元中對VCL NAL單元進行編碼并且這些VCL NAL單元可以對應于不同的分辨率。在解碼期間, 低分辨率VCL NAL單元提供運動場(motion field)和殘留,其可以可選地被高分辨率圖像的最終解碼和重建所繼承。當與更早的視頻壓縮標準比較時,SVC的空間可分級性被概括為支持基礎層成為增強層的經(jīng)修剪和經(jīng)縮放版本。與res質量層類似地用“qimlity_id”指示MGS質量層。對于每個從屬單元(具有相同的“(1印拙如11(^_丨(1”),存在具有等于0的“9皿1行7_丨(1”的層并且可以有“9皿1行又_ id”大于0的其它層。這些“qualityjd”大于0的層是MGS層或者TOS層,這取決于片是否被編碼為可截短的片。在res增強層的基本形式中,僅使用層間預測。因此,res增強層可以被自由地截短而不會在經(jīng)解碼序列中引起任何錯誤傳播。然而,res的基本形式遭受低壓縮效率之害。 該問題由于僅有低質量圖像用于幀間預測參考而產(chǎn)生。因此,已經(jīng)提議將res增強圖像用做幀間預測參考。然而,當某些res數(shù)據(jù)被丟棄時,這引起編碼-解碼不匹配,也稱為漂移 (drift)。SVC的一個重要特征在于reS NAL單元可以被自由地放棄或者截短,并且MGS NAL 單元可以被自由地放棄(但是無法被截短)而不會影響比特流的一致性。如以上討論的, 當這些res或者MGS數(shù)據(jù)在編碼期間用于幀間預測參考時,數(shù)據(jù)的放棄或者截短將導致解碼器側中和編碼器側中的經(jīng)解碼圖像之間的不匹配。這種不匹配也稱為漂移。為了控制由于對res或者MGS數(shù)據(jù)的放棄或者截短而產(chǎn)生的漂移,SVC應用以下解決方案在某個從屬單元中,將基本表示(通過僅對“quality_id”等于0的CGS圖像和所有從屬的較低層數(shù)據(jù)進行解碼)存儲在經(jīng)解碼圖像緩沖器中。當對具有相同“dependency, id”值的隨后的從屬單元進行編碼時,包括i^GS或者MGS NAL單元在內的所有NAL單元使用基本表示以供幀間預測參考。因此,在較早的訪問單元中由于KiS或者MGS NAL單元的放棄或者截短而產(chǎn)生的所有漂移均在這一訪問單元中被停止。對于具有相同“d印endenCy_ id”值的其他從屬單元,為了高編碼效率,所有NAL單元均使用經(jīng)解碼圖像以供幀間預測參考。每個NAL單元在NAL單元頭中包括語法元素“use_base_prediction_flag”。當這一元素的值等于1時,對NAL單元的解碼在幀間預測過程中使用參考圖像的基本表示。語法元素“Store_base_i^p_flag”指定是(當?shù)扔?時)否(當?shù)扔?時)存儲當前圖像的基本表示以供將來的圖像用于幀間預測。具有大于0的“qualityjd”的NAL單元不包含關于參考圖像列表構建和加權預測的語法元素,即,不存在語法元素“num_ref_active_lX_minuSl”(x = 0或者1)、參考圖像列表重新排序語法表以及加權預測語法表。因此,MGS或者res層在需要時必須從同一從屬單元的具有等于0的“qualityjd”的NAL單元繼承這些語法元素。通過使用基本表示和經(jīng)解碼圖像的加權組合預測res數(shù)據(jù),漏預測技術利用基本表示和經(jīng)解碼圖像(對應于最高經(jīng)解碼“quality_id”)兩者。加權因數(shù)可以用于控制增強層圖像中的潛在漂移的衰減。在H. C. Huang,C. N. Wang和T. Chiang,“A robust fine granularity scalability using trellis-based predictive leak, ” (IEEE Trans. Circuits Syst. Video Technol.,vol. 12,pp. 372-385,Jun. 2002)中可以找到關于漏預測的更多信息。當使用漏預測時,SVC的res特征通常被稱為自適應參考res(ar-fgs)。ar-fgs 是用于在編碼效率與漂移控制之間進行平衡的工具。AR-FGS通過加權因數(shù)的MB級別自適應和片級別信令發(fā)送來支持漏預測。關于AR-FGS的成熟版本的更多細節(jié)可以在以下文獻中找到JVT-W119 Yiliang Bao,Marta Karczewicz, Yan Ye "CEl report :FGS simplification, " (JVT-W119, 23rd JVT meeting, San Jose, USA, April 2007,可以從 ftp3· itu. ch/av-arch/jvt-site/2007_04_SanJose/JVT-W119. zip 獲得)。隨機訪問是指解碼器在除了流的開端之外的點開始對流進行解碼以及恢復經(jīng)解碼圖像的精確的或者近似的表示的能力。隨機訪問點和恢復點表征了隨機訪問操作。隨機訪問點是在該處可以發(fā)起解碼的任何經(jīng)編碼圖像。按照輸出順序的位于恢復點或者在恢復點之后的所有經(jīng)解碼圖像在內容上是正確的或者近似正確的。如果隨機訪問點與恢復點相同,則隨機訪問操作是即時的,否則是逐步的。隨機訪問點支持本地存儲的視頻流中的尋找、快進和快退操作。在視頻點播流 (video on-demand streaming)中,服務器可以通過從最接近尋找操作的所請求目的地的隨機訪問點開始傳輸數(shù)據(jù)來響應該尋找請求。在不同比特率的經(jīng)編碼流之間切換是通常在單播流中使用以供因特網(wǎng)對傳輸比特率和預期的網(wǎng)絡吞吐量進行匹配并且避免網(wǎng)絡中的擁塞的方法。在隨機訪問點可以切換到另一流。此外,隨機訪問點支持調諧到廣播或者多播。另外,隨機訪問點可以被編碼為對來源序列中的場景切換(scene cut)的響應或者編碼為對幀內圖像更新請求的響應。傳統(tǒng)上,每個幀內圖像是經(jīng)編碼序列中的隨機訪問點。針對幀間預測引入多個參考圖像使得幀內圖像可能不足以用于隨機訪問。例如,按照解碼順序在幀內圖像之前的經(jīng)解碼圖像可以用作對于按照解碼順序在幀內圖像之后的幀間預測的參考圖像。因此,如在 H. ^4/AVC標準中指定的IDR圖像或者具有與IDR圖像類似性質的幀內圖像必須被用作隨機訪問點。封閉圖像組(GOP)是這樣的圖像組即,在其中所有圖像均可以被正確解碼。在 H. ^4/AVC中,封閉GOP從IDR訪問單元開始(或者伴隨將所有之前的參考圖像標記為未使用的存儲器管理控制操作,從幀內經(jīng)編碼圖像開始)。開放圖像組(GOP)是這樣的圖像組即,在其中按照輸出順序在初始幀內圖像之前的圖像可能無法被正確解碼但在初始幀內圖像之后的圖像可被正確解碼。H. ^4/AVC解碼器可以識別從H. 264/AVC比特流中的恢復點SEI消息開始開放GOP的幀內圖像。在開始開放GOP的初始幀內圖像之前的圖像被稱為引導圖像(leading picture) 0存在兩種類型的引導圖像可解碼的和不可解碼的??山獯a引導圖像是這樣的引導圖像即,當從開始開放GOP的初始幀內圖像開始解碼時其可以被正確解碼。換言之,可解碼引導圖像僅使用按照解碼順序的初始幀內圖像或者后續(xù)圖像作為幀間預測中的參考。不可解碼引導圖像是這樣的引導圖像即,當從開始開放GOP的初始幀內圖像開始解碼時其無法被正確解碼。換言之,不可解碼引導圖像使用按照解碼順序的在開始開放GOP的初始幀內圖像之前的圖像作為幀間預測中的參考。ISO基本媒體文件格式(版本幻的草案修正案1包括對于指示可解碼和不可解碼引導圖像的支持。應當注意,在隨機訪問的上下文中使用的術語GOP與在SVC的上下文中使用的不同。在SVC中,GOP是指從具有等于0(含)的temporaljd的圖像到具有等于0(不含)的 temporal_id的下一圖像的圖像組。在隨機訪問上下文中,GOP是無論按照解碼順序的任何較早圖像是否已經(jīng)被解碼,都可以被解碼的圖像組。逐步解碼刷新(OTR)是指在非IDR圖像開始解碼以及在對某個數(shù)量的圖像進行解碼之后恢復在內容上正確的經(jīng)解碼圖像的能力。即,GDR可以用于從非幀內圖像實現(xiàn)隨機訪問。用于幀間預測的某些參考圖像可能在隨機訪問點與恢復點之間不可用,并且因此在逐步解碼刷新周期中的經(jīng)解碼圖像的某些部分無法被正確重建。然而,這些圖像不用于在恢復點處或在恢復點之后的預測,其結果是從恢復點開始的無錯經(jīng)解碼圖像。很明顯地,與即時解碼刷新相比,逐步解碼刷新對于編碼器和解碼器兩者而言都更加不便。然而,由于以下兩個事實,逐步解碼刷新在容易出現(xiàn)錯誤的環(huán)境中可能是期望的第一,經(jīng)解碼幀內圖像通常顯著地大于經(jīng)解碼非幀內圖像。這使得幀內圖像比非幀內圖像更容易出現(xiàn)錯誤,并且錯誤很可能隨時間傳播,直到損壞的宏塊位置被幀內編碼。第二, 在容易出現(xiàn)錯誤的環(huán)境中使用幀內編碼的宏塊以停止誤差傳播。因此,在例如運作在容易出現(xiàn)錯誤的傳輸信道上的視頻會議和廣播視頻應用中組合用于隨機訪問和用于誤差傳播阻止的幀內宏塊編碼是有意義的。在逐步解碼刷新中利用這種結論??梢允褂酶綦x區(qū)域編碼(isolated region coding)方法來實現(xiàn)逐步解碼刷新。圖像中的隔離區(qū)域可以包含任何宏塊位置,并且圖像可以包含不重疊的0個或更多個隔離區(qū)域。殘余區(qū)域是未被圖像的任何隔離區(qū)域覆蓋的圖像區(qū)域。當對隔離區(qū)域進行編碼時,不能跨其邊界進行圖像內預測??梢詮耐粓D像的隔離區(qū)域預測殘余區(qū)域??梢栽诓淮嬖谕唤?jīng)編碼圖像的任何其他隔離區(qū)域或者殘余區(qū)域的情況下對經(jīng)編碼隔離區(qū)域進行解碼??赡鼙仨殞D像在殘余區(qū)域之前的所有隔離區(qū)域進行解碼。隔離區(qū)域或者殘余區(qū)域包括至少一個片。將根據(jù)彼此來預測隔離區(qū)域的圖像編組為隔離區(qū)域圖像組。一個隔離區(qū)域可以從同一隔離區(qū)域圖像組內的其他圖像中的相應隔離區(qū)域幀間預測出,而從其他隔離區(qū)域或者隔離區(qū)域圖像組外的幀間預測是不允許的。殘余區(qū)域可以從任何隔離區(qū)域幀間預測。耦合的隔離區(qū)域的形狀、位置和尺寸可以從隔離區(qū)域圖像組中的一個圖像到下一圖像演進。演進的隔離區(qū)域可以用于提供逐步解碼刷新。在圖像中的隨機訪問點建立新的演進隔離區(qū)域,并且隔離區(qū)域中的宏塊被幀內編碼。隔離區(qū)域的形狀、尺寸和位置從一個圖像到下一圖像演進。一個隔離區(qū)域可以從逐步解碼刷新周期中的較早圖像中的相應隔離區(qū)域幀間預測出。當隔離區(qū)域覆蓋整個圖像區(qū)時,當從隨機訪問點開始解碼時獲得在內容上完全正確的圖像。這一過程也可以概括為包括最終覆蓋整個圖像區(qū)的不止一個演進隔離區(qū)域。可能存在諸如恢復點SEI消息之類的特制頻帶內信令以指示用于解碼器的逐步隨機訪問點和恢復點。此外,恢復點SEI消息包括是否在隨機訪問點和恢復點之間使用演進隔離區(qū)域以提供逐步解碼刷新的指示。RTP用于傳輸連續(xù)媒體數(shù)據(jù),諸如基于因特網(wǎng)協(xié)議(IP)的網(wǎng)絡中的經(jīng)編碼音頻和視頻流。實時傳輸控制協(xié)議(RTCP)是RTP的配套,即當網(wǎng)絡和應用基礎結構允許使用RTCP 時,應當使用RTCP來補充RTP。RTP和RTCP通常通過用戶數(shù)據(jù)報協(xié)議(UDP)傳遞,UDP又通過因特網(wǎng)協(xié)議(IP)傳遞。RTCP用于監(jiān)控網(wǎng)絡提供的服務質量以及傳遞關于在正進行的會話中的參與者的信息。RTP和RTCP設計用于范圍從一對一通信到數(shù)千個端點的大型多播組的會話。為了控制由多方會話中的RTCP分組產(chǎn)生的總比特率,由單個端點傳輸?shù)腞TCP分組的傳輸間隔與會話中的參與者數(shù)目成比例。每個媒體編碼格式具有特定RTP凈荷格式, 其指定如何將媒體數(shù)據(jù)構建到RTP分組的凈荷中。可用媒體文件格式標準包括ISO基本媒體文件格式(IS0/IEC14496-12)、MPEG-4 文件格式(IS0/IEC 14996-14,也稱為 MP4 格式)、AVC 文件格式(IS0/IEC 14496-15)、3GPP 文件格式(3GPP TS 26. 244,也稱為3GP格式)和DVB文件格式。ISO文件格式是用于衍生所有上述文件格式(除了 ISO文件格式自身以外)的基礎。這些文件格式(包括ISO文件格式自身)被稱為ISO文件格式族。圖2示出了根據(jù)ISO基本媒體文件格式的簡化文件結構230。ISO基本媒體文件格式中的基本構造塊(building block)被稱為盒(box)。每個盒具有頭和凈荷。盒頭指示盒的類型以及以字節(jié)為單位的盒的大小。一個盒可以封入其它盒,并且ISO文件格式指定在某種類型的盒中允許哪些盒類型。此外,某些盒必須存在于每個文件中,而其他盒是可選的。此外,對于某些盒類型,允許在一個文件中存在不止一個盒??梢酝茢喑鯥SO基本媒體文件格式指定盒的層級結構。根據(jù)ISO文件格式族,文件包括被分別封入獨立的盒(媒體數(shù)據(jù)(mdat)盒與電影 (moov)盒)中的媒體數(shù)據(jù)和元數(shù)據(jù)。為使文件具有可操作性,這些盒必須全都存在。電影盒可以包含一個或者多個軌道,并且每個軌道位于一個軌道盒中。軌道可以是以下類型之一媒體、提示(hint)、定時元數(shù)據(jù)。媒體軌道是指根據(jù)媒體壓縮格式(及其對ISO基本媒體文件格式的封裝)格式化的樣本。提示軌道是指提示樣本,其包含用于針對通過所指示的通信協(xié)議的傳輸來構建分組的細則指令(coolcbook instruction) 0細則指令可以包含用于分組頭構建并且包括分組凈荷構建的指導。在分組凈荷構建中,位于其他軌道或者項目中的數(shù)據(jù)可以被參考,即,通過參考來指示在分組構建過程期間將特定軌道或者項目中的哪部分數(shù)據(jù)復制到分組中。定時元數(shù)據(jù)軌道是指描述所參考的媒體和/或提示樣本的樣本。為了表示一個媒體類型,通常選擇一個媒體軌道。軌道的樣本隱式地與按照樣本的所指示的解碼順序遞增1的樣本編號相關聯(lián)。軌道中的第一樣本與樣本編號1相關聯(lián)。應當注意,這一假定影響以下某些公式, 并且對于本領域技術人員而言,相應地針對樣本編號的其他起始偏移(諸如0)而修改公式是顯而易見的。應當注意,ISO基本媒體文件格式并未將表示限制為包含在一個文件中,而是可以包含在幾個文件中。一個文件包含用于整個表示的元數(shù)據(jù)。這種文件也可以包含所有媒體數(shù)據(jù),因此該表示是自包含的。其他文件(如果使用的話)并不需要格式化為ISO基本媒體文件格式,而是用于包含媒體數(shù)據(jù),并且還可以包含未使用媒體數(shù)據(jù)或者其他信息。ISO 基本媒體文件格式僅涉及表示文件的結構。媒體數(shù)據(jù)文件的格式限于ISO基本媒體文件格式或其衍生格式之處僅僅在于媒體文件中的媒體數(shù)據(jù)必須被按照ISO基本媒體文件格式或其衍生格式所指定的那樣進行格式化。當將內容記錄至ISO文件時可以使用電影片段,以便在一旦記錄應用崩潰、耗盡磁盤或者發(fā)生某些其他事件發(fā)生時避免丟失數(shù)據(jù)。如果沒有電影片段,則可能發(fā)生數(shù)據(jù)丟失,這是因為文件格式要求將所有元數(shù)據(jù)(電影盒)寫入文件的一個連續(xù)區(qū)域。此外,當記錄文件時,可能不存在足夠量的隨機訪問存儲器(RAM)以緩存針對可用存儲尺寸的電影盒,并且在電影被關閉時重新計算電影盒的內容過于緩慢。此外,電影片段可以使用常規(guī) ISO文件分析器支持文件的同時記錄和回放。最后,對于漸進的下載(即,當使用電影片段并且初始電影盒與具有相同媒體內容但沒有使用電影片段進行構建的文件相比更小時,文件的同時接收和回放)需要較小持續(xù)時間的初始緩沖。電影片段特征使得能夠將傳統(tǒng)上會位于moov盒中的元數(shù)據(jù)分為多個片,其中每個對應于軌道的某個時段。換言之,電影片段特征使得能夠交織文件元數(shù)據(jù)和媒體數(shù)據(jù)。因此,可以限制moov盒的大小并且可以實現(xiàn)上述用例。如果電影片段的媒體樣本與moov盒位于同一文件中,則它們通常位于mdat盒中。 然而,對于電影片段的元數(shù)據(jù),提供了 moof盒。其包括在回放時間的某個持續(xù)時間內之前已經(jīng)在moov盒中的信息。moov盒獨立地表示有效電影,但是除此之外,其包括指示電影片段將在同一文件中后接的mvex盒。電影片段及時擴展與moov盒相關聯(lián)的表示??梢园ㄔ趍oof盒中的元數(shù)據(jù)限于可以包括在moov盒中的元數(shù)據(jù)的子集并且在某些情況下被不同地編碼??梢园ㄔ趍oof盒中的盒的細節(jié)可以從ISO基本媒體文件格式規(guī)范中找到?,F(xiàn)在參照圖3和圖4,其示出了對盒中的樣本編組的使用。在ISO基本媒體文件格式及其衍生格式(諸如AVC文件格式和SVC文件格式)中的樣本分組是基于編組準則的對軌道中將成為一個樣本組的成員的每個樣本的分配。樣本編組過程中的樣本組不限于是連續(xù)的樣本并且可以包括非相鄰樣本。由于對于軌道中的樣本可能存在不止一種樣本編組,每個樣本編組均具有類型字段以指示編組的類型。樣本編組由兩種鏈接的數(shù)據(jù)結構表示dDSampleToGroup盒(sbgp盒)表示向樣本組分配樣本;以及(2) SampleGroupDescription盒(sgpd盒)包含每個樣本組的描述該組的性質的樣本組條目。 基于不同的分組準則,可以存在SampleToGroup盒和SampleGroupDescription盒的多種實例。它們由用于指示編組的類型的類型字段來區(qū)分。圖3提供了指示樣本分組盒的嵌套結構的簡化的盒層級。樣本組盒 (SampleGroupDescription盒和Sample^ToGroup盒)位于樣本表(stbl)盒內,其封入到電影(moov)盒內的媒體信息(minf)盒、媒體(mdia)盒和軌道(trak)盒中(按照此順序)。允許SampleToGroup盒位于電影片段中。因此,可以片段接片段地完成樣本編組。 圖4示出了包含有包括SampleToGroup盒的電影片段的文件的示例。糾錯是指完美地恢復有錯誤數(shù)據(jù)使得如同沒有錯誤曾經(jīng)存在于所接收的比特流中一樣的能力。錯誤隱藏是指隱藏由于傳輸錯誤產(chǎn)生的劣化從而使得它們在重建的媒體信號中變得幾乎不能被察覺的能力。前向糾錯(FEC)是指發(fā)射機向所傳輸數(shù)據(jù)添加冗余(通常被稱為奇偶校驗或者修復符號)以支持接收機在即使有傳輸錯誤的情況下恢復所傳輸數(shù)據(jù)的那些技術。在系統(tǒng)
17FEC代碼中,原始比特流表現(xiàn)為與經(jīng)編碼符號中的一樣,而使用非系統(tǒng)代碼進行的編碼并不重建原始比特流作為輸出。將在其中附加冗余提供用于對丟失內容進行近似估算的裝置的方法分類為前向錯誤隱藏技術。在信源編碼層之下操作的前向錯誤控制方法通常是不知曉編解碼器或媒體的,即冗余是這樣的其不需要分析語法或者對經(jīng)編碼媒體進行解碼。在不知曉媒體的前向錯誤控制中,糾錯代碼(諸如Reed-Solomon代碼)用于修改發(fā)送器側的信源信號,從而使得所傳輸信號變得魯棒(即,即使某些錯誤攻擊了所傳輸?shù)男盘?,接收方也可以恢復信源信?。如果所傳輸?shù)男盘柊@樣的信源信號,則糾錯代碼是系統(tǒng)的,否則它是非系統(tǒng)的。不知曉媒體的前向錯誤控制方法通常由以下因子表征k =在其上計算代碼的塊中的元素(通常是字節(jié)或者分組)的數(shù)目;η=被發(fā)送的元素的數(shù)目;因此n-k是糾錯代碼帶來的開銷;k’ =在不存在傳輸錯誤的條件下需要被接收以重建源塊的元素的必需數(shù)目;以及t =代碼可以恢復的(每個塊的)被擦除元素的數(shù)目不知曉媒體的錯誤控制方法還可以按照自適應方式應用(其也可以是知曉媒體的),從而使得僅使用糾錯代碼處理一部分源樣本。例如,視頻比特流的非參考圖像可以不受保護,因為攻擊非參考圖像的任何傳輸錯誤均不向其他圖像傳播。知曉媒體的前向錯誤控制方法和不知曉媒體的前向錯誤控制方法中重建源塊所不需要的n-k’個元素的冗余表示在本文中被統(tǒng)稱為前向錯誤控制開銷。當傳輸為時間片形式的或者當FEC編碼已經(jīng)應用在多路訪問單元上時,本發(fā)明可應用于接收器。因此,在本部分中介紹兩個系統(tǒng)數(shù)字視頻廣播-手持(DVB-H)和3GPP多媒體廣播/多播服務(MBMS)。DVB-H基于DVB-地面(DVB-T)并與其兼容。DVB-H中關于DVB-T的擴展使得在手持設備中接收廣播服務成為可能。在圖5中呈現(xiàn)了用于DVB-H的協(xié)議棧。IP分組被封裝到用于在介質訪問(MAC)子層上傳輸?shù)亩鄥f(xié)議封裝(MPE)部分。每個MPE部分包括頭、作為凈荷的IP數(shù)據(jù)報以及用于凈荷完整性驗證的32字節(jié)循環(huán)冗余校驗(CRC)。MPE部分頭包含尋址數(shù)據(jù)和其他數(shù)據(jù)。MPE 部分可以被邏輯地布置到邏輯鏈接控制(LLC)子層中的應用數(shù)據(jù)表,在該LLC子層上計算 Reed-Solomon (RS)FEC代碼并且形成MPE-FEC部分。以下更為詳細地說明用于MPE-FEC構建的過程。MPE和MPE-FEC部分被映射到MPEG-2傳輸流(TS)分組上。MPE-FEC被包括在DVB-H中用于對抗在物理層中無法被有效糾正的長突發(fā)錯誤 (long burst error)。由于Reed-Solomon代碼是系統(tǒng)代碼(即,源數(shù)據(jù)在FEC編碼中保持不變),因此MPE-FEC解碼對于DVB-H終端而言是可選的。在IP分組上計算MPE-FEC修復數(shù)據(jù)并且并將其封裝到MPE-FEC部分中,其以這樣的方式傳輸即,不知道MPE-FEC的接收器可以僅僅接收未受保護的數(shù)據(jù)而忽略接下來的修復數(shù)據(jù)。為了計算MPE-FEC修復數(shù)據(jù),IP分組按列填充到N χ 191矩陣中,其中該矩陣的每個單元包含一個字節(jié)并且N表示矩陣中的行的數(shù)目。該標準將N的值限定為256、512、768 或IOM之一。針對每行計算RS代碼并將其連結起來,從而使得矩陣的最終大小為N χ255 這一大小。矩陣的N χ 191部分被稱為應用數(shù)據(jù)表(ADT)并且矩陣的接下來的N χ 64部分被稱為RS數(shù)據(jù)表(RSDT)。ADT不需要被完全填充,必須使用ADT來避免兩個MPE-FEC幀之間的IP分組碎裂,并且其還可以被用于控制比特率和錯誤保護強度。ADT的未填充部分被稱為補白(padding)。為了控制FEC保護的強度,無需傳輸RSDT的所有64列,即RSDT可以被穿刺(puncture)。在圖6中示出了 MPE-FEC幀的結構。移動設備具有有限的功率源。在對標準全帶寬DVB-T信號進行的接收、解碼和解調中消耗的功率將在短時間內使用大量電池壽命。對MPE-FEC幀的時間分片用于解決這一問題。數(shù)據(jù)被突發(fā)地接收,從而使得使用控制信號的接收器在沒有要接收的脈沖(burst) 時保持不活動。以與在脈沖中攜帶的媒體流的比特率相比顯著更高的比特率發(fā)送該脈沖。MBMS可以被功能性地分為載體服務和用戶服務。MBMS載體服務指定IP層之下的傳輸過程,而MBMS用戶服務指定IP層之上的協(xié)議和過程。MBMS用戶服務包括兩種遞送方法下載和流式。本部分提供了 MBMS流式遞送方法的簡短概述。MBMS的流式遞送方法使用基于RTP的協(xié)議棧。由于服務的廣播/多播性質,沒有使用諸如中繼之類的交互式錯誤控制特征。作為替代,MBMS包括用于流媒體的應用層FEC 方案。該方案基于具有兩種分組類型(FEC源分組和FEC修復分組)的FEC RTP凈荷格式。 FEC源分組包含根據(jù)后接有源FEC凈荷ID字段的媒體RTP凈荷格式的媒體數(shù)據(jù)。FEC修復分組包含修復FEC凈荷ID和FEC編碼符號(即,修復數(shù)據(jù))。FEC凈荷ID指示凈荷與哪個 FEC源塊相關聯(lián)以及FEC源塊中的分組的頭和凈荷的位置。FEC源塊包含條目,每個條目具有1字節(jié)的流標識符、2字節(jié)長度的后接UDP凈荷,以及UDP凈荷,即,包括RTP頭但不包括任何底層分組頭的RTP分組。對于每對目的地UDP端口數(shù)目和目的地IP地址是唯一的流標識符支持對具有相同F(xiàn)EC編碼的多個RTP流的保護。這與由相同時間段內的單一 RTP流組成的FEC源塊相比支持更大的FEC源塊,并且因此可以改進錯誤魯棒性。然而,接收器必須接收全部的捆綁流(bundled flow)(即RTP流),即使只有流的子集屬于相同的多媒體服務。發(fā)送器中的處理可以被概況如下由媒體編碼器和封裝器生成的原始媒體RTP分組被修改成指示FEC凈荷的RTP凈荷類型并且附加有源FEC凈荷ID。使用普通RTP機制發(fā)送經(jīng)修改的RTP分組。原始媒體RTP分組還被復制到FEC源塊中。一旦FEC源塊被RTP 分組填充,則應用FEC編碼算法來計算同樣使用普通RTP機制發(fā)送的FEC修復分組的數(shù)目。 系統(tǒng)Raptor代碼被用作MBMS的FEC編碼算法。在接收器處,與相同F(xiàn)EC源塊相關聯(lián)的所有FEC源分組和FEC修復分組被收集并且FEC源塊被重建。如果存在丟失的FEC源分組,則可以基于FEC修復分組和FEC源塊來應用FEC解碼。當所接收的FEC修復分組的恢復能力足夠時,F(xiàn)EC解碼導致任何丟失的FEC 源分組的重建。繼而由媒體凈荷解封裝器和解碼器常規(guī)地處理所接收或者所恢復的媒體分組。自適應媒體播放是指根據(jù)其捕捉速率以及因此預期的播放速率對媒體播放的速率進行自適應。在文獻記載中,自適應媒體播放主要用于消除低延遲會話應用(網(wǎng)絡電話、 視頻電話和多方語音/視頻會議)中的傳輸延遲抖動以及調整來源與播放設備之間的時鐘漂移。在流式和電視類的廣播應用中,初始緩沖用于消除潛在的延遲抖動以及因此自適應媒體播放未用于這些目的(但仍可以用于時鐘漂移調整)。音頻時標修改(參見以下)在文獻記載中中還用于水印、數(shù)據(jù)嵌入以及視頻瀏覽。
實時媒體內容(通常是音頻和視頻)可以被分類為連續(xù)的或者半連續(xù)的。連續(xù)媒體連續(xù)地并且活躍地改變,示例為電視節(jié)目或者電影的音樂和視頻流。半連續(xù)媒體的特征在于具有不活躍時段。具有靜音檢測的語音是廣泛使用的半連續(xù)媒體。從自適應媒體播放的觀點來說,這兩種媒體內容類型的主要差異在于半連續(xù)媒體的不活躍時段的持續(xù)時間可以被容易地調整。相反,連續(xù)音頻信號必須按照察覺不到的方式進行修改,例如通過對各種時標修改方法進行采樣。對于連續(xù)和半連續(xù)音頻兩者的一個自適應音頻播放算法的參考 ;^Y.J.Liang,N.F^rbei^BB.Girod,“Adaptive playout scheduling using time-scale modification in packet voice communications"(Proceedings of IEEE International Conference on Acoustics,Speech,and SignalProcessing,vol.3,pp. 1445—1448,May 2001)。用于連續(xù)音頻信號的時標修改的各種方法可以在該文獻中找到。根據(jù)[J. Laroche, "Autocorrelation method for high-quality time/pitch-scaling", Proceedings of IEEE Workshop on Applications of Signal Processing to Audio and Acoustics, pp. 131-134, Oct. 1993],發(fā)現(xiàn)多達15%的時標修改幾乎不生成可聽偽差。應當注意,視頻的自適應播放是沒有問題的,這是因為通常根據(jù)音頻播放時鐘對經(jīng)解碼視頻圖像進行定速。已經(jīng)注意到,自適應媒體播放不僅對于消除傳輸延遲抖動而言是需要的,而且其還需要在使用中與前向糾錯方案一起被優(yōu)化。換言之,當對媒體的播放進度進行確定時,必須考慮接收針對FEC塊的所有數(shù)據(jù)的固有延遲。關于此主題的一篇文章是J. Rosenberg, Q.Lili 禾口 H. Schulzrinne,“Integrating packet FEC into adaptive voice playout buffer algorithms on the Internet"(Proceedings of the IEEE Computer and Communications Societies Conference (INF0C0M),vol. 3,pp. 1705-1714)。就發(fā)明人所知,在科學文獻中僅僅針對會話應用考慮了針對FEC塊接收延遲和傳輸延遲抖動而聯(lián)合設計的自適應媒體播放算法。建議使用由H. ^4/AVC和SVC支持的多級時間分級層級,這是由于它們的壓縮效率顯著提高。然而,多級層級還導致解碼的開始與渲染的開始之間的顯著延遲。該延遲是由于經(jīng)解碼圖像必須從其解碼順序重新排序成輸出/顯示順序這一事實而造成的。因此,當從隨機位置對流進行訪問時,啟動延遲增加,并且類似地,與非層級時間分級的情況相比, 對多播或者廣播的調諧延遲增加。圖7(a)-圖7(c)示出了具有5個時間級別(也稱為GOP尺寸16)的典型層級可分級比特流。在時間級別0處的圖像根據(jù)時間級別0處的先前圖像來預測。時間級別N(N >0)處的圖像根據(jù)按照輸出順序在時間級別< N處的先前和隨后的圖像來預測。假設在這一示例中,對一個圖像的解碼持續(xù)一個圖像間隔。盡管這是幼稚的假設,其也能服務于說明問題而不喪失一般性的目的。圖7a示出了按照輸出順序的示例序列。在盒中封入的值指示圖像的frame_num 值。斜體字的值指示非參考圖像而其他圖像是參考圖像。圖7b示出了按照解碼順序的示例序列。圖7c示出了當假設輸出時間線與解碼時間線一致時按照輸出順序的示例序列。換言之,在圖7c中,圖像的最早輸出時間在跟隨圖像的解碼的下一圖像間隔中??梢钥吹?,流回放的開始比流解碼的開始晚5個圖像間隔。如果以25Hz對圖像進行采樣,則圖像間隔是40毫秒,并且回放延遲0. 2秒。層級時間可分級性在現(xiàn)代視頻編碼(H. ^4/AVC和SVC)中的應用改進了壓縮效率但由于將經(jīng)解碼圖像從編碼(解碼)順序重新排序為輸出順序而增加了解碼延遲。在層級時間可分級性中可以省略對所謂的子序列的解碼。根據(jù)本發(fā)明的實施方式,當解碼或者傳輸在隨機訪問后開始、在流起始處開始或者當調諧到廣播/多播時,省略對所選擇子序列的解碼或者傳輸。因此,避免了用于將這些所選擇的經(jīng)解碼圖像重新排序成它們的輸出順序的延遲并且減小了啟動延遲。因此,本發(fā)明的實施方式可以在訪問視頻流或者切換廣播的信道時改進響應時間(并且因而改進用戶體驗)。本發(fā)明的實施方式可應用于其中對比特流的開頭的訪問快于導致以普通速率回放的比特流的自然解碼速率的播放器。此類播放器的示例是來自大容量存儲器的流回放、 接收時分復用突發(fā)傳輸(諸如DVB-H移動電視)以及對其中已在若干媒體幀上應用前向糾錯(FEC)并且執(zhí)行FEC解碼的流的接收(例如,MBMS接收器)。播放器選擇不對比特流的哪個子序列進行解碼。本發(fā)明的實施方式還可以由服務器或者發(fā)送器應用以供單播遞送。當接收器開始接收比特流或者從期望的位置訪問比特流時,發(fā)送器選擇向接收器傳遞比特流的哪個子序列。本發(fā)明的實施方式還可以由創(chuàng)建指令以供從所選擇的隨機訪問位置訪問多媒體文件的文件生成器應用。該指令可以在本地回放中應用或者在封裝比特流以供單播遞送時應用。當接收器加入多播或者廣播時也可以應用本發(fā)明的實施方式。作為對加入多播或者廣播的響應,接收器可以通過單播遞送獲得關于為了加速啟動而應當對哪個子序列進行解碼的指令。在某些實施方式中,關于為了加速啟動而應當對哪個子序列進行解碼的指令可以包括在多播或者廣播流中?,F(xiàn)在參考圖8,其示出了本發(fā)明的一個實施方式的示例實現(xiàn)方式。在塊810處,在處理單元可以訪問的那些訪問單元中標識第一可解碼訪問單元??梢园凑绽缫韵路绞街械囊环N或多種方式來定義可解碼訪問單元-IDR訪問單元;-具有IDR從屬表示的SVC訪問單元,其cbpendency_id小于訪問單元的最大 dependency_id ;-包含錨定圖像的MVC訪問單元;-包含恢復點SEI消息的訪問單元,即,開始開放G0P(當recovery_frame_cnt等于0時)或者逐步解碼刷新時段(當recOVery_frame_cnt大于0時)的訪問單元;-包含冗余IDR圖像的訪問單元;-包含與恢復點SEI消息相關聯(lián)的冗余經(jīng)編碼圖像的訪問單元。在最寬泛的意義上,可解碼訪問單元可以是任何訪問單元。繼而,可以例如忽略在解碼過程中丟失的預測參考或者由缺省值來代替。在其中標識第一可解碼訪問單元的訪問單元取決于本發(fā)明所實現(xiàn)于的功能塊。如果本發(fā)明應用于對大容量存儲器中的比特流進行訪問的播放器或者發(fā)送器,則第一可解碼訪問單元可以是從期望的訪問位置開始的任何訪問單元或者其可以是位于或先于期望訪問位置的第一可解碼訪問單元。如果本發(fā)明應用于訪問所接收的比特流的播放器,則第一可解碼訪問單元是第一所接收數(shù)據(jù)脈沖或者FEC源矩陣中的訪問單元之一。
第一可解碼訪問單元可以通過包括以下的多種方式標識-視頻比特流中的指示,諸如nal_imit_type等于5,idr_flag等于1,或者比特流中存在的恢復點SEI消息。-由傳輸協(xié)議指示,諸如SVCRTP凈荷格式的PACSI NAL單元的A比特。A比特指示可以執(zhí)行在非IDR層表示(nal_imit_type不等于5并且idr_flag不等于1的層表示) 的空間層切換還是CGS。在具有某些圖像編碼結構的情況下,非IDR幀內層表示可以用于隨機訪問。與僅使用IDR層表示相比較,可以實現(xiàn)更高的編碼效率。用于指示非IDR幀內層表示的隨機可訪問性的H. 264/AVC或者SVC解決方案使用恢復點SEI消息。A比特提供對這一信息的直接訪問而不需要分析恢復點SEI消息,該SEI消息可能深埋在SEI NAL單元中。此外,SEI消息可能不存在于比特流中。-在容器文件中指示。例如,可以在與ISO基本媒體文件格式兼容的文件中使用同步樣本盒、陰影同步樣本盒、隨機訪問恢復點樣本編組,軌道片段隨機訪問盒。-在經(jīng)分組化的基本流中指示。再次參考圖8,在塊820處,對第一可解碼訪問單元進行處理。處理的方法取決于圖8的示例過程所實現(xiàn)于其中的功能塊。如果過程實現(xiàn)于播放器中,則處理包括解碼。如果過程實現(xiàn)于發(fā)送器中,則處理可以包括將訪問單元封裝為一個或多個傳輸分組并且傳輸訪問單元以及(潛在假設的)對針對訪問單元的傳輸分組進行接收和解碼。如果過程實現(xiàn)于文件創(chuàng)建器中,則處理包括編寫(例如寫入文件中)關于應當在加速的啟動過程中解碼或者傳遞哪個子序列的指令。在塊830處,初始化并且啟動輸出時鐘。與輸出時鐘的啟動同時發(fā)生的附加操作可以取決于該過程實現(xiàn)于其中的功能塊。如果過程實現(xiàn)于播放器中,則產(chǎn)生于對第一可解碼訪問單元的解碼的經(jīng)解碼圖像可以同步于輸出時鐘的開始進行顯示。如果過程實現(xiàn)于發(fā)送器中,則產(chǎn)生于對第一可解碼訪問單元的解碼的(假設的)經(jīng)解碼圖像可以同步于輸出時鐘的開始進行(假設的)顯示。如果過程實現(xiàn)于文件創(chuàng)建器中,則輸出時鐘可能不實時表示掛鐘滴答聲(wall clock ticking),而是可以與訪問單元的解碼或者合成時間同步。在各種的實施方式中,塊820和塊830的操作的順序可以互換。在塊840處,做出關于按照解碼順序的下一訪問單元是否可以在輸出時鐘達到下一訪問單元的輸出時間之前進行處理的確定。處理的方法取決于過程實現(xiàn)于其中的功能塊。如果過程實現(xiàn)于播放器中,則處理包括解碼。如果過程實現(xiàn)于發(fā)送器中,則處理通常包括將訪問單元封裝為一個或多個傳輸分組并且傳輸訪問單元以及(潛在假設的)對針對訪問單元的傳輸分組進行接收和解碼。如果過程實現(xiàn)于文件創(chuàng)建器中,則根據(jù)指令是針對播放器還是發(fā)送器而創(chuàng)建,相應地如上所述針對播放器或者發(fā)送器定義處理。應當注意,如果過程實現(xiàn)于創(chuàng)建用于比特流傳輸?shù)闹噶畹陌l(fā)送器或者文件創(chuàng)建器中,則解碼順序可以由不需要與解碼順序相同的傳輸順序來代替。在另一實施方式中,當過程實現(xiàn)于創(chuàng)建用于傳輸?shù)闹噶畹陌l(fā)送器或者文件創(chuàng)建器中時,對輸出時鐘和處理進行不同解釋。在該實施方式中,將輸出時鐘視為傳輸時鐘。在塊840處,確定訪問單元的預定解碼時間是否先于訪問單元的輸出時間(即,傳輸時間)出現(xiàn)?;驹瓌t在于,訪問單元應當在其解碼時間之前被傳輸或者被命令傳輸(例如,在文件內)。術語“處理”包括將訪問單元封裝為一個或者多個傳輸分組并且傳遞訪問單元,其在
22文件創(chuàng)建器的情況下是當遵循在文件中給出的指令時發(fā)送器將進行的假設操作。如果在塊840處做出的確定是按照解碼順序的下一訪問單元可以在輸出時鐘達到與下一訪問單元相關聯(lián)的輸出時間之前被處理,則過程進行到塊850。在塊850處,對下一訪問單元進行處理。按照與塊820中相同的方式定義處理。在塊850處進行處理之后, 將指向按照解碼順序的下一訪問單元的指針遞增一個訪問單元,并且過程返回塊840。另一方面,如果在塊840處做出的確定是按照解碼順序的下一訪問單元無法在輸出時鐘達到與下一訪問單元相關聯(lián)的輸出時間之前被處理,則過程進行到塊860。在塊860 處,省略對按照解碼順序的下一訪問單元的處理。此外,在解碼中省略對依賴于下一訪問單元的訪問單元的處理。換言之,不處理以按照解碼順序的下一訪問單元為根的子序列。繼而,將指向按照解碼順序的下一訪問單元的指針遞增一個訪問單元(假設被省略的訪問單元不再存在于解碼順序中),并且過程返回塊840。如果在比特流中不再存在訪問單元,則過程在塊840處停止。在下文中,作為示例,將圖8的過程示出為應用于圖7的序列。在圖9a中,示出了被選擇用于處理的訪問單元。在圖%中,呈現(xiàn)了產(chǎn)生于對圖9a中的訪問單元的解碼的經(jīng)解碼圖像。圖9a和圖9b以這樣的方式水平對齊即,經(jīng)解碼圖像可以在圖9b中的解碼器輸出中出現(xiàn)的最早時隙是相對于圖9a中的相應訪問單元的處理時隙的下一時隙。在圖8的塊810處,將framejum等于0的訪問單元標識為第一可解碼訪問單元。在圖8的塊820處,對frame_num等于0的訪問單元進行處理。在圖8的塊830處,輸出時鐘開始,并且輸出產(chǎn)生于對framejum等于0的訪問單元的(假設的)解碼的經(jīng)解碼圖像。針對frame_num等于1、2和3的訪問單元反復重復圖8的塊840和塊850,因為可以在輸出時鐘到達它們的輸出時間之前對它們進行處理。當framejum等于4的訪問單元是解碼順序中的下一個時,其輸出時間已經(jīng)過去了。因此,跳過framejum等于4的訪問單元和framejum等于5的包含非參考圖像的訪問單元(圖8的塊860)。繼而,針對按照解碼順序的所有后續(xù)訪問單元反復重復圖8的塊840和塊850,因為可以在輸出時鐘到達它們的輸出時間之前對它們進行處理。在本示例中,當應用圖8的過程時,圖像渲染的開始與之前描述的傳統(tǒng)方式相比早4個圖像間隔。當圖像速率是25Hz時,在啟動延遲中的節(jié)省是160毫秒。啟動延遲中的節(jié)省伴隨著在比特流開始處的更長圖像間隔的缺點。在備選實現(xiàn)方式中,在輸出時鐘開始前處理不止一個幀。輸出時鐘可以不從第一經(jīng)解碼訪問單元的輸出時間開始,而是可以選擇較晚的訪問單元。相應地,當輸出時鐘開始時,同時傳輸或者播放所選擇的較晚幀。在一個實施方式中,即使訪問單元可以在其輸出時間之前被處理,也可以不選擇該訪問單元用于處理。如果省略了在相同時間級別中對多個連續(xù)子序列的解碼,則情況尤為如此。圖10示出了根據(jù)本發(fā)明的實施方式的另一示例序列。在本示例中,產(chǎn)生于frame_ num等于2的訪問單元的經(jīng)解碼圖像是被輸出/傳輸?shù)牡谝粋€圖像。省略對包含依賴于 frame_num等于3的訪問單元的訪問單元的子序列的解碼,并且還省略對第一GOP的后一半內的非參考圖像的解碼。因此,第一 GOP的輸出圖像速率是正常圖像速率的一半,但顯示過程比之前描述的傳統(tǒng)解決方案中早兩個幀間隔開始(在25Hz的圖像速率時為80毫秒)。當對比特流的處理開始自開始開放GOP的幀內圖像時,省略對不可解碼引導圖像的處理。此外,也可以省略對可解碼引導圖像的處理。此外,省略按照輸出順序的在開始開放GOP的幀內圖像之后出現(xiàn)的一個或多個子序列。圖Ila示出了示例序列,其按照解碼順序的第一訪問單元包含開始開放GOP的幀內圖像。將針對此圖像的framejum選擇為等于1 (但是假如隨后的framejum值已經(jīng)相應地發(fā)生了變化,則framejum的任何其他值也是同樣有效的)。圖Ila中的序列與圖7a 中的序列相同但是不存在初始IDR訪問單元(例如,由于接收在初始IDR訪問單元的傳輸之后開始而沒有接收到)。經(jīng)解碼圖像具有從2 (含)到8 (含)的framejum,并且frame_ num等于9的經(jīng)解碼非參考圖像因而出現(xiàn)在按照輸出順序在framejum等于1的經(jīng)解碼圖像之前并且為不可解碼引導圖像。如可從圖lib觀察到的,因而省略對它們的解碼。此外, 以上關于圖8所呈現(xiàn)的過程應用于剩余訪問單元。因此,省略對framejum等于12的訪問單元以及framejum等于13的包含非參考圖像的訪問單元的處理。在圖Ilc中呈現(xiàn)了在圖lib所處理的訪問單元以及在解碼器輸出處所獲得的圖像序列。在本示例中,經(jīng)解碼圖像輸出比傳統(tǒng)的實現(xiàn)方式早開始19個圖像間隔(即,在25Hz的圖像速率時為760毫秒)。如果沒有輸出按照輸出順序的最早經(jīng)解碼圖像(例如,作為類似于在圖10和圖 Ila-圖Ilc中示出的處理的結果),則根據(jù)本發(fā)明的實施方式所實現(xiàn)于其中的功能塊,可能必須執(zhí)行附加操作。-如果本發(fā)明的實施方式實現(xiàn)于實時(S卩,平均而言不快于解碼或者回放速率)接收視頻比特流和與視頻比特流同步的一個或多個比特流的播放器中,則可能必須省略對其他比特流的第一訪問單元中的某些訪問單元的處理以便具有所有流的同步播放,并且可能必須調整流的回放速率(減速)。如果沒有調整回放速率,則下一接收的傳輸脈沖或者下一經(jīng)解碼FEC源塊可能晚于第一接收的傳輸脈沖或者第一經(jīng)解碼FEC源塊的最后經(jīng)解碼樣本可用,即,在回放中可能存在間隔或者中斷??梢允褂萌魏巫赃m應媒體播放算法。-如果本發(fā)明的實施方式實現(xiàn)于編寫用于傳輸流的指令的發(fā)送器或者文件創(chuàng)建器中,則選擇來自與視頻比特流同步的比特流的第一訪問單元以盡可能接近地匹配輸出時間中的第一經(jīng)解碼圖像。如果本發(fā)明的實施方式應用于其中第一可解碼訪問單元包含逐步解碼刷新時段的第一圖像的序列,則只有temporaljd等于0的訪問單元被解碼。此外,在逐步解碼刷新時段內只有可靠隔離區(qū)域可被解碼。如果使用質量、空間或者其他可分級性方式對訪問單元進行編碼,則只有選定的從屬表示和層表示可以被解碼,以便加速解碼過程并且進一步減少啟動延遲?,F(xiàn)在將描述使用ISO基本媒體文件格式實現(xiàn)的本發(fā)明的實施方式的示例。當訪問從同步樣本開始的軌道時,如果某些子序列沒有被解碼,則對經(jīng)解碼圖像的輸出可以更早開始。根據(jù)本發(fā)明的實施方式,樣本編組機制可以用于指示是否應當按照隨機訪問處理加速的經(jīng)解碼圖像緩沖(DPB)的樣本。備選啟動序列包含從同步樣本開始的某個時段內的軌道的樣本的子集。通過處理樣本的該子集,處理樣本的輸出可以比當處理所有樣本的情況中更早開始?!產(chǎn)lst’樣本組描述條目指示備選啟動序列中的樣本的數(shù)目,在其后所有樣本都應當被處理。在媒體軌道的情況中,處理包括分析和解碼。在提示軌道的情況中,處理包括根據(jù)提示樣本中的指令形成分組以及潛在地傳輸所形成的分組。
class AIternativeStartupEntry<) extends VisualSampleGroupEntry Calst') I
unsigned in.t (16) roll_count; unsigned int (16) first_output_sample; for (i=I; i <= roll—count,* i++) unsigned int(32) ssmple_offset[i
}rollcoimt指示備選啟動序列中樣本的數(shù)目。如果r0ll_C0imt等于0,則相關聯(lián)的樣本不屬于任何備選啟動序列并且firSt_0UtpUt_Sample的語義未指定。對于一個備選啟動序列,映射到這個樣本組條目的樣本的數(shù)目應當?shù)扔趓oll_COimt。first_output_sample指示旨在針對備選啟動序列中的樣本中的輸出的第一樣本的索引。開始備選啟動序列的同步樣本的索引為1,并且對于按照解碼順序的備選啟動序列中的每個樣本,將索引遞增1。sample_offset[i]指示相對于源自解碼時間到樣本盒或者軌道片段頭盒的樣本的傳統(tǒng)解碼時間的備選啟動序列中的第i個樣本的解碼時間差。開始備選啟動序列的同步樣本是它的第一個樣本。在另一實施方式中,Sample_0ffSet[i]是標記的合成時間偏移(相對于源自解碼時間到樣本盒或者軌道片段頭盒的樣本的正常解碼時間)。在另一實施方式中,可以使用DVB樣本編組機制并且給出Sample_0ffSet[i]作為 index_payl0ad而不是在樣本組描述條目中提供sample_0ffset[i]。這種解決方案可以減少所需的樣本組描述條目的數(shù)目。在一個實施方式中,根據(jù)本發(fā)明的文件分析器如下所述從非連續(xù)位置訪問軌道。 選擇從其開始處理的同步樣本。所選擇的同步樣本可以位于期望的非連續(xù)位置,可以是相對于期望的非連續(xù)位置的最接近的之前的同步樣本,或者是相對于期望的非連續(xù)位置的最接近的后續(xù)同步樣本。基于相應的樣本組標識備選啟動序列內的樣本。處理備選啟動序列內的樣本。在媒體軌道的情況下,處理包括解碼以及潛在地包括渲染。在提示軌道的情況下,處理包括根據(jù)提示樣本中的指令形成分組以及潛在地傳輸所形成的分組。可以如 sample_offset[i]的值所指示的那樣修改處理的時序。以上討論的指示(艮口,roll_count、first_output_sample 以及 sample— offset[i])可以包括在比特流中(例如作為SEI消息)、包括在分組凈荷結構中、包括在分組頭結構中、包括在分組化基本流結構中以及包括在文件格式中或者由其他方式指示。在本部分中討論的指示可以例如由編碼器創(chuàng)建、由分析比特流的單元創(chuàng)建或者由文件創(chuàng)建器創(chuàng)建。在一個實施方式中,根據(jù)本發(fā)明的解碼器從可解碼訪問單元(AU)開始解碼。解碼器例如通過SEI消息接收關于備選啟動序列的信息。如果訪問單元被指示為屬于備選啟動序列,則解碼器選擇它們以供解碼并且跳過對不在備選啟動序列中的那些訪問單元的解碼(只要備選啟動序列還持續(xù))。當完成了備選啟動序列的解碼后,解碼器對所有訪問單元進行解碼。為了協(xié)助解碼器、接收器或者播放器選擇從解碼中省略哪個子序列,可以提供比特流的時間可分級性結構的指示。一個示例是指示是否使用如圖2中所示的常規(guī)“二分 (bifuractive)”嵌套結構以及存在多少時間級別(或者GOP尺寸是多少)的標志(flag)。 指示的另一示例是temporaljd值的序列,其中每個指示按照解碼順序的訪問單元的 temporal_id。任何圖像的temporaljd可以通過重復temporaljd值的所指示序列來推斷出,S卩,temporaljd值的序列指示temporaljd值的重復行為。根據(jù)本發(fā)明的解碼器、 接收器或者播放器基于指示選擇所省略的和經(jīng)解碼的子序列??梢灾甘居糜谳敵龅念A期的第一經(jīng)解碼圖像。這一指示協(xié)助解碼器、接收器或者播放器如由發(fā)送器或者文件創(chuàng)建器期望的那樣運作。例如,可以指示frame_nUm等于2的經(jīng)解碼圖像是在圖10的示例中預期用于輸出的第一個。否則,解碼器、接收器或者播放器可以首先輸出framejum等于0的經(jīng)解碼圖像并且輸出過程將與由發(fā)送器或者文件創(chuàng)建器預期的不同并且啟動延遲中的節(jié)省可能不是最理想的??梢灾甘居糜趶南嚓P聯(lián)的第一可解碼訪問單元開始解碼(而不是更早,例如從比特流的起始處)的HRD參數(shù)。這些HRD參數(shù)指示當解碼從相關聯(lián)的第一可解碼訪問單元開始時可應用的初始CPB和DPB延遲。因此,根據(jù)本發(fā)明的實施方式,可以實現(xiàn)高達幾百毫秒的對時間可分級視頻比特流的解碼的調諧/啟動延遲的減少。從比特率方面來說,時間可分級視頻比特流可以提高壓縮效率達至少25%。圖12示出了在其中可以使用本發(fā)明的各種實施方式的系統(tǒng)10,其包括多個可以通過一個或多個網(wǎng)絡進行通信的通信設備。系統(tǒng)10可以包括有線或者無線網(wǎng)絡的任何組合,該有線或者無線網(wǎng)絡包括但不限于移動電話網(wǎng)絡、無線局域網(wǎng)(LAN)、藍牙個域網(wǎng)、以太網(wǎng)LAN、令牌環(huán)LAN、廣域網(wǎng)、因特網(wǎng)等。系統(tǒng)10可以同時包括有線和無線通信設備。為了舉例,圖12中示出的系統(tǒng)10包括移動電話網(wǎng)絡11和因特網(wǎng)觀。到因特網(wǎng) 28的連接可以包括但不限于遠距離無線連接、短距離無線連接,而各種有線連接包括但不限于電話線、電纜線、電源線等。系統(tǒng)10的示例性通信設備可以包括但不限于采取以下形式的電子設備12 移動電話、組合式個人數(shù)字助理(PDA)和移動電話14、PDA 16、集成消息設備(IMD) 18、臺式計算機20、筆記本計算機22等。通信設備可以是固定的或者如當由正在移動的個人攜帶時那樣是移動的。通信設備也可以位于運輸模式中,包括但不限于汽車、卡車、出租車、公共汽車、 火車、船、飛機、自行車、摩托車等。某些或者全部通信設備可以通過到基站M的無線連接 25來發(fā)送和接收呼叫和消息以及與服務提供商進行通信。基站M可以連接到網(wǎng)絡服務器 26,網(wǎng)絡服務器16允許移動電話網(wǎng)絡11與因特網(wǎng)28之間的通信。系統(tǒng)10可以包括附加通信設備和不同類型的通信設備。通信設備可以使用各種傳輸技術進行通信,這些技術包括但不限于碼分多址 (CDMA)、全球移動通信系統(tǒng)(GSM)、通用移動電信服務(UMTS)、時分多址(TDMA)、頻分多址 (FDMA)、傳輸控制協(xié)議/因特網(wǎng)協(xié)議(TCP/IP)、短消息服務(SMS)、多媒體消息服務(MMS)、 電子郵件、即時消息服務(IMS)、藍牙、IEEE 802. 11等。在實現(xiàn)本發(fā)明的各種實施方式中涉及的通信設備可以使用包括但不限于無線電、紅外線、激光、電纜連接等各種介質進行通圖13和圖14示出了一個有代表性的電子設備觀,根據(jù)本發(fā)明的各種實施方式,電子設備觀可以用作網(wǎng)絡節(jié)點。然而,應當理解,本發(fā)明的范圍并非旨在限制到一種特定類型的設備。圖13和圖14的電子設備觀包括外殼30、采取液晶顯示器形式的顯示器32、小鍵盤34、麥克風36、聽筒38、電池40、紅外線端口 42、天線44、根據(jù)一個實施方式采取UICC 形式的智能卡46、讀卡器48、無線電接口電路52、編解碼器電路M、控制器56和存儲器58。 上述組件使電子設備觀能夠向根據(jù)本發(fā)明的實施方式可以位于網(wǎng)絡上的其他設備發(fā)送各種消息或從其接收各種消息。單個電路和元件全都是本領域中公知的類型,例如在諾基亞系列移動電話中的類型。圖15是在其中可以實現(xiàn)各種實施方式的一般多媒體通信系統(tǒng)的圖示。如圖15中所示,數(shù)據(jù)源100按照模擬、未壓縮數(shù)字、經(jīng)壓縮數(shù)字格式或這些格式的任何組合提供源信號。編碼器110將源信號編碼為經(jīng)編碼媒體比特流。應當注意,待解碼比特流可以直接地或者間接地從位于幾乎任何類型的網(wǎng)絡內的遠程設備接收。附加地,比特流可以從本地硬件或者軟件接收。編碼器110可以能夠對諸如音頻和視頻之類的不止一種媒體類型進行編碼,或者可能需要不止一個編碼器110對源信號的不同媒體類型進行編碼。編碼器110還可以獲得合成產(chǎn)生的輸入(諸如圖形和文本),或者其可以能夠產(chǎn)生合成媒體的經(jīng)編碼比特流。在下文中,僅僅考慮對一種媒體類型的一個經(jīng)編碼媒體比特流的處理以簡化描述。 然而,應當注意,典型的實時廣播服務包括若干個流(通常至少一個音頻、視頻和文本字幕流)。還應當注意,該系統(tǒng)可以包括許多編碼器,但在圖15中僅僅描繪了一個編碼器110以在不缺少一般性的情況下簡化描述。應當進一步理解,雖然在此包括的正文和示例可以具體描述編碼過程,但本領域技術人員將理解,相同的概念和原理同樣適用于相應的解碼過程并且反之亦然。向存儲器120傳遞經(jīng)編碼媒體比特流。存儲器120可以包括任何類型的大容量存儲器以存儲經(jīng)編碼媒體比特流。存儲器120中的經(jīng)編碼媒體比特流的格式可以是基本自包含比特流格式,或者一個或多個經(jīng)編碼媒體比特流可以被封裝為容器文件。某些系統(tǒng)“現(xiàn)場”操作,即省略存儲器并且從編碼器110直接向發(fā)送器130傳遞經(jīng)編碼媒體比特流。繼而,在需要時向發(fā)送器130(也稱為服務器)傳遞經(jīng)編碼媒體比特流。在傳輸中使用的格式可以是基本自包含比特流格式、分組流格式或者可以被封裝為容器文件的一個或多個經(jīng)編碼媒體比特流。編碼器110、存儲器120和發(fā)送器130可以位于同一物理設備中,或者它們可以被包括在分離的設備中。編碼器110和發(fā)送器130可以使用現(xiàn)場實時內容進行操作, 在該情況中經(jīng)編碼媒體比特流通常不被永久存儲,而是在內容編碼器110和/或發(fā)送器130 中緩存一小段時間,從而消除處理延遲、傳遞延遲和經(jīng)編碼比特流中的變化。發(fā)送器130使用通信協(xié)議棧發(fā)送經(jīng)編碼媒體比特流。該棧可以包括但不限于實時傳輸協(xié)議(RTP)、用戶數(shù)據(jù)報協(xié)議(UDP)以及因特網(wǎng)協(xié)議(IP)。當通信協(xié)議棧為面向分組時,發(fā)送器130將經(jīng)解碼媒體比特流封裝為分組。例如,當使用RTP時,發(fā)送器130根據(jù)RTP 凈荷格式將經(jīng)編碼媒體比特流封裝為RTP分組。通常,每種媒體類型具有專用的RTP凈荷格式。應當再次注意,系統(tǒng)可以包含不止一個發(fā)送器130,但是為簡單起見,以下描述僅考慮一個發(fā)送器130。
如果針對存儲器120或者為了向發(fā)送器130輸入數(shù)據(jù)而將媒體內容封裝為容器文件,發(fā)送器130可以包括或者操作地附接到“發(fā)送文件分析器”(在圖中未示出)。特別地,如果容器文件沒有照這樣被傳輸?shù)侵辽僖粋€所包含的經(jīng)編碼媒體比特流被封裝以供通過通信協(xié)議傳輸,則發(fā)送文件分析器定位經(jīng)編碼媒體比特流的應通過通信網(wǎng)絡傳遞的適當部分。發(fā)送文件分析器還可以有助于創(chuàng)建針對通信協(xié)議的正確格式,諸如分組頭和凈荷。 多媒體容器文件可以包含封裝指令(諸如ISO基本媒體文件格式中的提示軌道)以對通信協(xié)議上的至少一個包含的媒體流進行封裝。發(fā)送器130可以或可以不通過通信網(wǎng)絡連接到網(wǎng)關140。網(wǎng)關140可以執(zhí)行不同類型的功能,諸如將根據(jù)一個通信協(xié)議棧的分組流翻譯為另一通信協(xié)議棧,合并或者分開數(shù)據(jù)流,以及根據(jù)下行鏈路和/或接收器能力來操控數(shù)據(jù)流,諸如根據(jù)占優(yōu)的下行鏈路網(wǎng)絡狀況控制轉發(fā)的流的比特率。網(wǎng)關140的示例包括MCU、電路交換和分組交換視頻電話之間的網(wǎng)關。蜂窩式一鍵通(PoC)服務器、數(shù)字視頻廣播-手持(DVB-H)系統(tǒng)中的IP封裝器、 或者將廣播傳輸本地轉發(fā)到家庭無線網(wǎng)絡的機頂盒。當使用RTP時,網(wǎng)關140被稱為RTP 混合器或者RTP翻譯器并且通常充當RTP連接的端點。該系統(tǒng)包括一個或者多個接收器150,其通常能夠對所傳輸?shù)男盘栠M行接收、解調并將其解封裝為經(jīng)編碼媒體比特流。向記錄存儲器巧5傳遞經(jīng)編碼媒體比特流。記錄存儲器155可以包括任何類型的大容量存儲器以存儲經(jīng)編碼媒體比特流。記錄存儲器155可以備選地或者附加地包括計算存儲器,諸如隨機訪問存儲器。記錄存儲器155中的經(jīng)編碼媒體比特流的格式可以是基本自包含比特流格式,或者一個或者多個經(jīng)編碼媒體比特流可以被封裝為容器文件。如果存在相互相關聯(lián)的多個經(jīng)編碼媒體比特流(諸如音頻流和視頻流),則通常使用容器文件并且接收器150包括或者附接到從輸入流產(chǎn)生容器文件的文件生成器。某些系統(tǒng)“現(xiàn)場”操作,即省略記錄存儲器155并且從接收器150直接向解碼器160 傳遞經(jīng)編碼媒體比特流。在某些系統(tǒng)中,在記錄存儲器155中僅僅維持所記錄流的最新部分,例如所記錄流的最近10分鐘摘錄,而從記錄存儲器155丟棄任何更早記錄的數(shù)據(jù)。從記錄存儲器155向解碼器160傳遞經(jīng)編碼媒體比特流。如果存在相互關聯(lián)并且被封裝為容器文件的多個經(jīng)編碼媒體比特流(諸如音頻流和視頻流),則文件分析器(圖中未示出)用于從容器文件解封裝每個經(jīng)編碼媒體比特流。記錄存儲器155或者解碼器160 可以包括文件分析器,或者文件分析器附接到記錄存儲器巧5或者解碼器160。經(jīng)編碼媒體比特流通常進一步由解碼器160處理,其輸出為一個或多個未壓縮媒體流。最后,渲染器170可以使用例如揚聲器或者顯示器再現(xiàn)未壓縮媒體流。接收器150、 記錄存儲器155、解碼器160以及渲染器170可以位于同一物理設備中,或者它們可以被包括在分離的設備中。在此描述的各種實施方式在方法步驟或者過程的一般上下文中進行了描述,在一個實施方式中該方法步驟或者過程可以由計算機程序產(chǎn)品來實現(xiàn),該產(chǎn)品體現(xiàn)在計算機可讀介質中,其包括由聯(lián)網(wǎng)環(huán)境中的計算機執(zhí)行的計算機可執(zhí)行指令(諸如程序代碼)。計算機可讀介質可以包括可移除和不可移除存儲設備,其包括但不限于只讀存儲器(ROM)、隨機訪問存儲器(RAM)、壓縮盤(⑶)、數(shù)字多功能盤(DVD)等。通常,程序模塊可以包括執(zhí)行特定任務或者實現(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對象、組件、數(shù)據(jù)結構等。計算機可執(zhí)行指令、相關聯(lián)的數(shù)據(jù)結構以及程序模塊代表用于執(zhí)行在此公開的方法的步驟的程序代碼的示例。此類可執(zhí)行指令的特定序列或者相關聯(lián)的數(shù)據(jù)結構代表用于實現(xiàn)在此類步驟或者過程中描述的功能的相應動作的示例。本發(fā)明的實施方式可以在軟件、硬件、應用邏輯或者軟件、硬件和應用邏輯的組合中實現(xiàn)。該軟件、應用邏輯和/或硬件可以例如位于芯片組、移動設備、臺式計算機、膝上型計算機或者服務器上。各種實施方式的軟件和web實現(xiàn)可以使用具有基于規(guī)則的邏輯以及其他邏輯的標準編程技術來實現(xiàn),從而實現(xiàn)各種數(shù)據(jù)庫搜索步驟或者過程、關聯(lián)步驟或者過程、比較步驟或者過程以及決策步驟或者過程。各種實施方式也可以完全地或者部分地在網(wǎng)絡元件或者模塊內實現(xiàn)。應當注意,如在此以及在以下的權利要求書中使用的,詞語 “組件”和“模塊”旨在包括使用一行或者多行軟件代碼的實現(xiàn)和/或硬件實現(xiàn)和/或用于接收人工輸入的設備。已經(jīng)出于說明和描述的目的呈現(xiàn)了本發(fā)明的實施方式的上述描述。其并非旨在是詳盡的或者將本發(fā)明限制到所公開的精確形式,修改或者變型根據(jù)以上教示是可能的或者可以通過對本發(fā)明的實踐而獲得。實施方式被選擇和描述以便說明本發(fā)明的原理及其實際應用,從而使得本領域技術人員能夠按照各種實施方式并且運用適合于所預期的特定使用的各種修改來利用本發(fā)明。
權利要求
1.一種方法,包括接收包括訪問單元序列的比特流;對所述比特流中的第一可解碼訪問單元進行解碼;確定所述比特流中跟隨所述第一可解碼訪問單元的下一可解碼訪問單元在所述下一可解碼訪問單元的輸出時間之前是否能夠被解碼;基于確定所述下一可解碼訪問單元在所述下一可解碼訪問單元的所述輸出時間之前無法被解碼而跳過對所述下一可解碼訪問單元的解碼;以及跳過對依賴于所述下一可解碼訪問單元的任何訪問單元的解碼。
2.根據(jù)權利要求1所述的方法,還包括從所述比特流中選擇經(jīng)編碼數(shù)據(jù)單元的第一集合,其中子比特流包括所述比特流的、包括所述經(jīng)編碼數(shù)據(jù)單元的第一集合在內的部分, 所述子比特流可解碼為經(jīng)解碼數(shù)據(jù)單元的第一集合,并且所述比特流可解碼為經(jīng)解碼數(shù)據(jù)單元的第二集合,其中第一緩沖資源足以將所述經(jīng)解碼數(shù)據(jù)單元的第一集合布置為輸出順序,第二緩沖資源足以將所述經(jīng)解碼數(shù)據(jù)單元的第二集合布置為輸出順序,并且所述第一緩沖資源少于所述第二緩沖資源。
3.根據(jù)權利要求2所述的方法,其中所述第一緩沖資源和所述第二緩沖資源是相對于用于經(jīng)解碼數(shù)據(jù)單元緩沖的初始時間而言的。
4.根據(jù)權利要求2所述的方法,其中所述第一緩沖資源和所述第二緩沖資源是相對于用于經(jīng)解碼數(shù)據(jù)單元緩沖的初始緩沖占用而言的。
5.根據(jù)權利要求1所述的方法,其中每個訪問單元是IDR訪問單元、SVC訪問單元或者包含錨定圖像的MVC訪問單元之一。
6.一種裝置,包括 處理器;以及存儲器單元,其可通信地連接至所述處理器并且包括 用于接收包括訪問單元序列的比特流的計算機代碼; 用于對所述比特流中的第一可解碼訪問單元進行解碼的計算機代碼; 用于確定所述比特流中跟隨所述第一可解碼訪問單元在所述下一可解碼訪問單元的下一可解碼訪問單元的輸出時間之前是否能夠被解碼的計算機代碼;用于基于確定所述下一可解碼訪問單元在所述下一可解碼訪問單元的所述輸出時間之前無法被解碼而跳過對所述下一可解碼訪問單元的解碼的計算機代碼;以及用于跳過對依賴于所述下一可解碼訪問單元的任何訪問單元的解碼的計算機代碼。
7.根據(jù)權利要求6所述的裝置,還包括用于從所述比特流中選擇經(jīng)編碼數(shù)據(jù)單元的第一集合的計算機代碼, 其中子比特流包括所述比特流的、包括所述經(jīng)編碼數(shù)據(jù)單元的第一集合在內的部分, 所述子比特流可解碼為經(jīng)解碼數(shù)據(jù)單元的第一集合,并且所述比特流可解碼為經(jīng)解碼數(shù)據(jù)單元的第二集合,其中第一緩沖資源足以將所述經(jīng)解碼數(shù)據(jù)單元的第一集合布置為輸出順序,第二緩沖資源足以將所述經(jīng)解碼數(shù)據(jù)單元的第二集合布置為輸出順序,并且所述第一緩沖資源少于所述第二緩沖資源。
8.根據(jù)權利要求7所述的裝置,其中所述第一緩沖資源和所述第二緩沖資源是相對于用于經(jīng)解碼數(shù)據(jù)單元緩沖的初始時間而言的。
9.根據(jù)權利要求7所述的裝置,其中所述第一緩沖資源和所述第二緩沖資源是相對于用于經(jīng)解碼數(shù)據(jù)單元緩沖的初始緩沖占用而言的。
10.根據(jù)權利要求6所述的裝置,其中每個訪問單元是IDR訪問單元、SVC訪問單元或者包含錨定圖像的MVC訪問單元之一。
11.一種計算機可讀介質,具有存儲在其上的計算機程序,所述計算機程序包括用于接收包括訪問單元序列的比特流的計算機代碼;用于對所述比特流中的第一可解碼訪問單元進行解碼的計算機代碼;用于確定所述比特流中跟隨所述第一可解碼訪問單元在所述下一可解碼訪問單元的下一可解碼訪問單元的輸出時間之前是否能夠被解碼的計算機代碼;用于基于確定所述下一可解碼訪問單元在所述下一可解碼訪問單元的所述輸出時間之前無法被解碼而跳過對所述下一可解碼訪問單元的解碼的計算機代碼;以及用于跳過對依賴于所述下一可解碼訪問單元的任何訪問單元的解碼的計算機代碼。
12.根據(jù)權利要求11所述的計算機可讀介質,還包括用于從所述比特流中選擇經(jīng)編碼數(shù)據(jù)單元的第一集合的計算機代碼,其中子比特流包括所述比特流的、包括所述經(jīng)編碼數(shù)據(jù)單元的第一集合在內的部分, 所述子比特流可解碼為經(jīng)解碼數(shù)據(jù)單元的第一集合,并且所述比特流可解碼為經(jīng)解碼數(shù)據(jù)單元的第二集合,其中第一緩沖資源足以將所述經(jīng)解碼數(shù)據(jù)單元的第一集合布置為輸出順序,第二緩沖資源足以將所述經(jīng)解碼數(shù)據(jù)單元的第二集合布置為輸出順序,并且所述第一緩沖資源少于所述第二緩沖資源。
13.根據(jù)權利要求12所述的計算機可讀介質,其中所述第一緩沖資源和所述第二緩沖資源是相對于用于經(jīng)解碼數(shù)據(jù)單元緩沖的初始時間而言的。
14.根據(jù)權利要求12所述的計算機可讀介質,其中所述第一緩沖資源和所述第二緩沖資源是相對于用于經(jīng)解碼數(shù)據(jù)單元緩沖的初始緩沖占用而言的。
15.根據(jù)權利要求11所述的計算機可讀介質,其中每個訪問單元是IDR訪問單元、SVC 訪問單元或者包含錨定圖像的MVC訪問單元之一。
全文摘要
一種方法,包括接收包括訪問單元序列的比特流;對該比特流中的第一可解碼訪問單元進行解碼;確定該比特流中的下一可解碼訪問單元在該下一可解碼訪問單元的輸出時間之前是否可以被解碼;以及基于確定該下一可解碼訪問單元在該下一可解碼訪問單元的輸出時間之前無法被解碼而跳過對該下一可解碼訪問單元的解碼。
文檔編號H04N21/643GK102342127SQ201080010422
公開日2012年2月1日 申請日期2010年1月27日 優(yōu)先權日2009年1月28日
發(fā)明者M·安尼克塞拉 申請人:諾基亞公司