欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

圖像解碼裝置及圖像解碼方法與流程

文檔序號:11852792閱讀:623來源:國知局
圖像解碼裝置及圖像解碼方法與流程

本發(fā)明涉及對分層編碼圖像的分層編碼數(shù)據(jù)進(jìn)行解碼的圖像解碼裝置、以及通過對圖像進(jìn)行分層編碼而生成分層編碼數(shù)據(jù)的圖像編碼裝置。



背景技術(shù):

圖像或視頻是通信系統(tǒng)傳輸?shù)男畔?、或存儲裝置中記錄的信息之一?,F(xiàn)有技術(shù)中,已知有圖像編碼技術(shù)用于這些圖像(以下也包含視頻)的傳輸和存儲。

已知的視頻編碼方式,有AVC(H.264/MPEG-4Advanced Video Coding)、及其后續(xù)的編解碼方式HEVC(High-Efficiency Video Coding)(非專利文獻(xiàn)1)等。

這些視頻編碼方式中,通常是根據(jù)對輸入圖像進(jìn)行編碼/解碼所得到的局部解碼圖像生成預(yù)測圖像,對輸入圖像(原圖像)減去該預(yù)測圖像所得到的預(yù)測殘差(也稱為“差分圖像”或“殘差圖像”)進(jìn)行編碼。此外,預(yù)測圖像的生成方法有幀間預(yù)測(Inter預(yù)測)、幀內(nèi)預(yù)測(Intra預(yù)測)等。

在HEVC中,假設(shè)了以按時域抽取的幀頻進(jìn)行播放的情況,如將60fps的內(nèi)容用30fps速度進(jìn)行播放的情況,采用了實現(xiàn)時域可分級(temporal scalability)的技術(shù)。具體的做法是,對各圖片分配稱之為時域標(biāo)識符(Temporal ID、子層標(biāo)識符)的數(shù)值,并約束時域標(biāo)識符大的圖片不得參考比其時域標(biāo)識符小的圖片。因此,只抽取特定時域標(biāo)識符圖片進(jìn)行播放時,不需要對時域標(biāo)識符比其大的圖片進(jìn)行解碼。

此外,近年來還提出了根據(jù)必要的數(shù)據(jù)速率,對圖像進(jìn)行分層編碼的可分級編碼技術(shù)、或分層編碼技術(shù)。SHVC(Scalable HEVC)和MV-HEVC(MultiView HEVC)是已知的有代表性的可分級編碼方式(分層編碼方式)。

SHVC支持空域可分級、時域可分級、SNR可分級。例如,空域可分級的情況,將從原圖像按所希望的分辨率進(jìn)行下采樣后的圖像作為低層進(jìn)行編碼,然后在高層進(jìn)行層間預(yù)測以去除層間的冗余(非專利文獻(xiàn)2)。

MV-HEVC支持視點可分級(view scalability)。例如,在對視點圖像0(層0)、視點圖像1(層1)、視點圖像2(層2)的3個視點圖像進(jìn)行編碼時,通過從低層(層0)對高層的視點圖像1、視點圖像2進(jìn)行層間預(yù)測,可去除層間的冗余(非專利文獻(xiàn)3)。

SHVC和MV-HEVC等的可分級編碼方式中采用的層間預(yù)測,有層間圖像預(yù)測和層間運(yùn)動預(yù)測。層間圖像預(yù)測中,利用低層(或者與對象層不同的其它層)已解碼圖片的紋理信息(圖像)生成對象層的預(yù)測圖像。層間運(yùn)動預(yù)測中,利用低層(或者與對象層不同的其它層)已解碼圖片的運(yùn)動信息,導(dǎo)出對象層的運(yùn)動信息預(yù)測值。即利用低層(或者與對象層不同的其它層)已解碼圖片作為對象層的參考圖片進(jìn)行層間預(yù)測。

除去除層間圖像信息或運(yùn)動信息的冗余的層間預(yù)測以外,還有參數(shù)集間預(yù)測,即在參數(shù)集(定義對編碼數(shù)據(jù)進(jìn)行解碼/編碼用的必要的編碼參數(shù)的集合,如序列參數(shù)集SPS、圖片參數(shù)集PPS等)中,為去除層間共同的編碼參數(shù)冗余,從低層解碼/編碼中利用的參數(shù)集內(nèi)的對應(yīng)編碼參數(shù)預(yù)測(也稱作參考或繼承)高層解碼/編碼中利用的參數(shù)集內(nèi)的部分編碼參數(shù),以省略該編碼參數(shù)的解碼/編碼。例如,有SPS或PPS等中通知的從低層分級列表信息來預(yù)測對象層的分級列表信息(量化矩陣)的技術(shù)(也稱為參數(shù)集間語法預(yù)測)。

此外,在視點可分級、SNR可分級中,因為在各層解碼/編碼中利用的參數(shù)集內(nèi)通用的編碼參數(shù)很多,還有稱之為通用參數(shù)集的技術(shù),可在不同層間利用通用參數(shù)集、去除層間邊信息(參數(shù)集)的冗余。例如,非專利文獻(xiàn)2和3中,層標(biāo)識符值為nuhLayerIdA的低層解碼/編碼中利用的SPS和PPS(參數(shù)集的層標(biāo)識符值也為nuhLayerIdA)等,允許用于比nuhLayerIdA大的層標(biāo)識符值(nuhLayerIdB)的高層解碼/編碼。并且,在存儲圖像編碼數(shù)據(jù)、編碼參數(shù)等參數(shù)集的編碼數(shù)據(jù)的NAL單元中的NAL單元頭中,會通知用來識別層的層標(biāo)識符(nuh_layer_id、也稱為layerId、lId)、以及識別附屬于層的子層的時域標(biāo)識符(nuh_temporal_id_plus1、也稱為temporalId、tId)、甚至NAL單元中存儲的表示編碼數(shù)據(jù)種類的NAL單元類型(nal_unit_type)。

此外,在非專利文獻(xiàn)2和3中,關(guān)于視頻參數(shù)集VPS(為了對由1以上的層構(gòu)成的編碼數(shù)據(jù)進(jìn)行解碼而定義的參考用編碼參數(shù)集合),有“VPS的層標(biāo)識符為0(nuh_layer_id=0)”的比特流約束。

非專利文獻(xiàn)4中,關(guān)于序列參數(shù)集SPS(為了對對象序列進(jìn)行解碼而定義的參考用編碼參數(shù)集合)、以及圖片參數(shù)集PPS(為了對對象序列內(nèi)的各圖片進(jìn)行解碼而定義的參考用編碼參數(shù)集合),提出了“SPS以及PPS的層標(biāo)識符為0(nuh_layer_id=0)”的比特流約束。

現(xiàn)有技術(shù)文獻(xiàn)

非專利文獻(xiàn)

非專利文獻(xiàn)1:”Recommendation H.265(04/13)”,ITU-T(2013年6月7日公開)

非專利文獻(xiàn)2:JCTVC-N1008_v3“SHVC Draft 3”,Joint Collaborative Team onVideo Coding(JCT-VC)of ITU-T SG 16WP 3and ISO/IEC JTC 1/SC 29/WG 11 14th Meeting:Vienna,AT,25July-2Aug.2013(2013年8月20日公開)

非專利文獻(xiàn)3:JCT3V-E1008_v5“MV-HEVC Draft Text 5”,Joint CollaborativeTeam on 3D Video Coding Extension Development of ITU-T SG 16WP 3and ISO/IEC JTC 1/SC 29/WG 11 5th Meeting:Vienna,AT,27July-2Aug.2013(2013年8月7日公開)

非專利文獻(xiàn)4:JCTVC-O0092_v1“MV-HEVC/SHVC HLS:On nuh_layer_id of SPS and PPS”,Joint Collaborative Team on Video Coding(JCT-VC)of ITU-T SG 16WP 3and ISO/IEC JTC 1/SC 29/WG 11 15th Meeting:Geneva,CH,23Oct.-1Nov.2013(2013年10月14日公開)



技術(shù)實現(xiàn)要素:

發(fā)明所要解決的問題

然而,在現(xiàn)有技術(shù)(非專利文獻(xiàn)2~4)中的VPS、SPS及PPS的相關(guān)層標(biāo)識符的約束中,當(dāng)抽取比特流時,在有由層標(biāo)識符值為nuhLayerIdA的層A和層標(biāo)識符值為nuhLayerldB的層B構(gòu)成的比特流的情況,如果通過抽取比特流,丟棄層A的編碼數(shù)據(jù)、抽取僅由層B的編碼數(shù)據(jù)構(gòu)成的比特流時,則有可能丟失對層B進(jìn)行解碼時所必須的層A參數(shù)集(層標(biāo)識符值為nuhLayerIdA)。此時,將發(fā)生抽取的層B的編碼數(shù)據(jù)不能解碼的問題。

更具體的說明如圖1(a)所示。假設(shè)比特流中包含由層標(biāo)識符值分別為L#0(nuh_layer_id=0)、L#1(nuh_layer_id=1)、以及L#2(nuh_layer_id=2)的層0(圖1(a)中的L#0)、層1(圖1(a)中的L#1)、層2(圖1(a)中的L#2)構(gòu)成的層集A{LayerIdList={nuh_layer_id=0,nuh_layer_id=1,nuh_layer_id=2}}。圖1(a)的例中,層集A的層間依賴關(guān)系如圖1(a)中所示,層2的VCL(視頻編碼層)(圖1(a)中的VCL L#2)依賴層1的VCL(圖1(a)中的VCL L#1)作為層間預(yù)測(層間圖像預(yù)測、層間運(yùn)動預(yù)測)時的參考層(圖1上的實線箭頭)。此外,參數(shù)集的參考關(guān)系如圖1(a)中的粗箭頭所示,層0的VPS(圖1(a)中的VPS L#0)被各層0~層2的參數(shù)集、以及VCL(圖1(a)中的SPS L#0,PPS L#0,VCL L#0,SPS L#1,PPS L#1,VCL L#1以及VCL L#2)參考。層0的SPS被層0的PPS以及VCL參考,層0的PPS被層0的VCL參考。同樣,層1的SPS被層1的PPS、VCL、以及層2的VCL參考,層1的PPS被層1的VCL、以及層2的VCL參考。

從包含該層集A的比特流中,抽取(抽取比特流)作為解碼對象的只包含層集A子集的層集B{LayerIdListTarget={nuh_layer_id=1,nuh_layer_id=2}}的子比特流(圖1(b))。然而,因為在抽取后的比特流中不存在對層集B內(nèi)的層1、及層2的編碼數(shù)據(jù)進(jìn)行解碼時參考的、層標(biāo)識符值為L#0(nuh_layer_id=0)的參數(shù)集(VPS(圖1(b)上的VPS L#0),所以會發(fā)生層1、及層2的編碼數(shù)據(jù)不能解碼的情況。

本發(fā)明就是針對上述問題的發(fā)明,其目的是規(guī)定參數(shù)集的相關(guān)比特流約束、及比特流抽取處理,實現(xiàn)一種可防止從包含該層集的比特流、通過比特流抽取處理而生成的、只包含該層集子集的層集的比特流上出現(xiàn)不能解碼的層的圖像解碼裝置及圖像編碼裝置。

解決問題的方法

為了解決上述問題,本發(fā)明的一種方式的圖像解碼裝置,是對輸入圖像編碼數(shù)據(jù)進(jìn)行解碼的圖像解碼裝置,其特征在于:具有圖像編碼數(shù)據(jù)抽取部,根據(jù)表示由1以上的層構(gòu)成的解碼對象層集的層ID列表,從前述輸入圖像編碼數(shù)據(jù)中抽取前述解碼對象層集的相關(guān)圖像編碼數(shù)據(jù);具有圖片解碼部,通過前述抽取的圖像編碼數(shù)據(jù)對解碼對象層集的圖片進(jìn)行解碼;其中,從前述圖像編碼數(shù)據(jù)抽取部抽取的前述輸入圖像編碼數(shù)據(jù)不包含層標(biāo)識符不等于0且具有前述層ID列表中不包含的層標(biāo)識符的non-VCL NAL單元。

本發(fā)明的一種方式的圖像解碼方法,是對輸入圖像編碼數(shù)據(jù)進(jìn)行解碼的圖像解碼方法,其特征在于:具有圖像編碼數(shù)據(jù)抽取流程,根據(jù)表示由1以上的層構(gòu)成的解碼對象層集的層ID列表,從前述輸入圖像編碼數(shù)據(jù)中抽取前述解碼對象層集的相關(guān)圖像編碼數(shù)據(jù);具有圖片解碼流程,通過前述所抽取的圖像編碼數(shù)據(jù),對解碼對象層集的圖片進(jìn)行解碼;其中,從前述圖像編碼數(shù)據(jù)抽取流程中抽取的前述輸入圖像編碼數(shù)據(jù)不包含層標(biāo)識符不等于0且具有前述層ID列表中不包含的層標(biāo)識符的non-VCL NAL單元。

發(fā)明的效果

按照本發(fā)明的一種方式,通過規(guī)定與參數(shù)集相關(guān)的比特流約束、以及比特流抽取處理,防止從包含該層集的比特流中進(jìn)行比特流抽取處理而生成的、只包含該層集子集的層集的比特流上出現(xiàn)不能解碼的層。

附圖說明

圖1舉例說明從包含某層集A的比特流中抽取層集A子集的層集B時發(fā)生的問題。其中(a)示出了層集A的一個例子;(b)示出了比特流抽取后的層集B的一個例子。

圖2是說明本發(fā)明一實施例相關(guān)的分層編碼數(shù)據(jù)的層結(jié)構(gòu)圖。其中(a)所示為分層視頻編碼裝置端;(b)所示為分層視頻解碼裝置端。

圖3是說明層集的層、以及子層(時域?qū)?結(jié)構(gòu)的圖。

圖4是說明通過從圖3所示的層集進(jìn)行子比特流抽取處理后抽取的層集的子集所構(gòu)成的層、以及子層(時域?qū)?的圖。

圖5是構(gòu)成NAL單元層的數(shù)據(jù)結(jié)構(gòu)示例圖。

圖6是NAL單元層中包含的語法示例圖。(a)是構(gòu)成NAL單元層的語法示例圖;(b)是NAL單元頭的語法示例圖。

圖7是表示本發(fā)明實施例相關(guān)的NAL單元類型值和NAL單元類型關(guān)系的圖。

圖8是接入單元中的NAL單元的一種構(gòu)成示例圖。

圖9是說明本發(fā)明實施例相關(guān)的分層編碼數(shù)據(jù)的構(gòu)成圖。圖(a)示出了定義了序列SEQ的序列層;圖(b)示出了定義了圖片PICT的圖片層;圖(c)示出了定義了條帶S的條帶層;圖(d)示出了定義條帶數(shù)據(jù)的條帶數(shù)據(jù)層;圖(e)示出了有無條帶數(shù)據(jù)中的編碼樹單元的編碼樹層;圖(f)示出了有無編碼樹中的編碼單位(Coding Unit;CU)的編碼單元層。

圖10是說明本實施例相關(guān)的共享參數(shù)集的圖。

圖11是說明參考圖片列表、以及參考圖片的圖。圖(a)示出了一種參考圖片列表;圖(b)示出了一種參考圖片。

圖12是本發(fā)明實施例相關(guān)的VPS語法表的一個示例圖。

圖13是本發(fā)明實施例相關(guān)的VPS擴(kuò)展數(shù)據(jù)的語法表的一個示例圖。

圖14是說明本實施方式相關(guān)的層依賴類型的圖。(a)是包含non-VCL依賴有無的依賴類型的示例圖;(b)是包含共享參數(shù)集有無、以及參數(shù)集間預(yù)測有無的依賴類型的示例圖。

圖15是本發(fā)明實施例相關(guān)的SPS語法表的一個示例圖。

圖16是本發(fā)明實施例相關(guān)的SPS擴(kuò)展數(shù)據(jù)語法表的一個示例圖。

圖17是本發(fā)明實施例相關(guān)的PPS語法表的一個示例圖。

圖18是本發(fā)明實施例相關(guān)的條帶層語法表的一個示例圖。(a)是條帶層中包含的條帶頭、以及條帶數(shù)據(jù)語法表的一個示例;(b)是條帶頭語法表的一個示例;(c)是條帶數(shù)據(jù)語法表的一個示例。

圖19是說明本實施例相關(guān)的分層視頻解碼裝置構(gòu)成的概要圖。

圖20是說明本實施例相關(guān)的對象層集圖片解碼部構(gòu)成的概要圖。

圖21是說明本實施例的圖片解碼部動作的流程圖。

圖22是說明本實施例相關(guān)的分層視頻解碼裝置構(gòu)成的概要圖。

圖23是說明本實施例相關(guān)的對象層集圖片解碼部構(gòu)成的概要圖。

圖24是說明本實施例相關(guān)的圖片解碼部動作的流程圖。

圖25是表示搭載了上述分層視頻編碼裝置的發(fā)送裝置、以及搭載了上述分層視頻解碼裝置的接收裝置的構(gòu)成圖。(a)所示為搭載分層視頻編碼裝置的發(fā)送裝置;(b)所示為搭載分層視頻解碼裝置的接收裝置。

圖26是表示搭載了上述分層視頻編碼裝置的記錄裝置、以及搭載了上述分層視頻解碼裝置的播放裝置的構(gòu)成圖。(a)所示為搭載分層視頻編碼裝置的記錄裝置;(b)所示為搭載分層視頻解碼裝置的播放裝置。

圖27是說明本實施例相關(guān)的比特流抽取部動作流的程圖。

圖28是說明本實施例相關(guān)的比特流抽取部的變化實施例1動作的流程圖。

圖29是說明本實施例相關(guān)的比特流抽取部的變化實施例2動作的流程圖。

圖30是說明本實施例相關(guān)的比特流抽取部的變化實施例3動作的流程圖。

圖31是說明間接參考層的圖。

具體實施方式

按照圖2~圖31,對本發(fā)明的一個實施例相關(guān)的分層視頻解碼裝置1及分層視頻編碼裝置2說明如下。

〔概要〕

本實施例的分層視頻解碼裝置(圖像解碼裝置)1,對被分層視頻編碼裝置(圖像編碼裝置)2進(jìn)行了分層編碼的編碼數(shù)據(jù)進(jìn)行解碼。分層編碼是指將視頻從低品質(zhì)到高品質(zhì)分層進(jìn)行編碼的編碼方式。分層編碼已在SVC、SHVC等中標(biāo)準(zhǔn)化。另外,這里所指的視頻品質(zhì)是廣義地指主觀和客觀上影響視頻視覺效果的元素。視頻的品質(zhì)中,包括如“分辨率”、“幀頻”、“畫質(zhì)”、以及“像素的表現(xiàn)精度”等。因此,以后稱視頻的品質(zhì)不同,比如可以指“分辨率”等的不同,但并不僅限于此。例如,在不同量化步長中量化的視頻(即通過不同編碼雜音編碼的視頻)的情況,也可以相互認(rèn)為視頻品質(zhì)不同。

此外,從被分層信息的種類來看,分層編碼技術(shù)可分為(1)空域可分級、(2)時域可分級、(3)SNR(Signal to Noise Ratio)可分級、以及(4)視點可分級??沼蚩煞旨壥侵阜直媛屎蛨D像尺寸等的分層技術(shù)。時域可分級是指幀頻(單位時間的幀數(shù))的分層技術(shù)。SNR可分級是指編碼雜音的分層技術(shù)。視點可分級是指對應(yīng)各圖像的視點位置的分層技術(shù)。

在對本實施例相關(guān)的分層視頻編碼裝置2及分層視頻解碼裝置1進(jìn)行詳細(xì)說明之前,首先,(1)對通過分層視頻編碼裝置2生成的、通過分層視頻解碼裝置1進(jìn)行解碼的分層編碼數(shù)據(jù)的層結(jié)構(gòu)進(jìn)行說明,然后,(2)對各層中可采用的數(shù)據(jù)結(jié)構(gòu)的具體例子進(jìn)行說明。

〔分層編碼數(shù)據(jù)的層結(jié)構(gòu)〕

在此利用圖2對分層編碼數(shù)據(jù)的編碼和解碼說明如下。圖2是通過低層L3、中層L2和高層L1的3層對視頻進(jìn)行分層編碼/解碼時的模型圖。即在圖2(a)和(b)中,3層中高層L1為最高層,低層L3為最低層。

以下將從分層編碼數(shù)據(jù)進(jìn)行解碼所得到的對應(yīng)特定品質(zhì)的解碼圖像稱為特定層的解碼圖像(或稱為對應(yīng)特定層的解碼圖像)(例如,高層L1的解碼圖像POUT#A)。

圖2(a)所示為分別將輸入圖像PIN#A~PIN#C進(jìn)行分層編碼后生成編碼數(shù)據(jù)DATA#A~DATA#C的分層視頻編碼裝置2#A~2#C。圖2(b)所示為分別將被分層編碼的編碼數(shù)據(jù)DATA#A~DATA#C進(jìn)行解碼后生成解碼圖像POUT#A~POUT#C的分層視頻解碼裝置1#A~1#C。

首先利用圖2(a)對編碼裝置進(jìn)行說明。作為編碼裝置端輸入的輸入圖像PIN#A、PIN#B以及PIN#C雖然與原畫相同,但圖像的品質(zhì)(分辨率、幀頻以及畫質(zhì)等)不同。圖像的品質(zhì)按輸入圖像PIN#A、PIN#B和PIN#C的順序低減。

低層L3的分層視頻編碼裝置2#C,對低層L3的輸入圖像PIN#C進(jìn)行編碼、生成低層L3的編碼數(shù)據(jù)DATA#C。它包含了為獲得低層L3的解碼圖像POUT#C進(jìn)行解碼所必須的基本信息(圖2中的“C”所示)。低層L3因為是最低的層,所以低層L3的編碼數(shù)據(jù)DATA#C也稱為基本編碼數(shù)據(jù)。

中層L2的分層視頻編碼裝置2#B,參考低層的編碼數(shù)據(jù)DATA#C、對中層L2的輸入圖像PIN#B進(jìn)行編碼、生成中層L2的編碼數(shù)據(jù)DATA#B。在中層L2的編碼數(shù)據(jù)DATA#B中,在編碼數(shù)據(jù)DATA#C中包含的基本信息“C”的基礎(chǔ)上,還包含了為獲得中層解碼圖像POUT#B進(jìn)行解碼所必須的附加信息(圖2中的“B”所示)。

高層L1的分層視頻編碼裝置2#A,參考中層L2的編碼數(shù)據(jù)DATA#B、對高層L1的輸入圖像PIN#A進(jìn)行編碼、生成高層L1的編碼數(shù)據(jù)DATA#A。高層L1的編碼數(shù)據(jù)DATA#A中,在為獲得低層L3的解碼圖像POUT#C進(jìn)行解碼所必須的基本信息“C”以及為獲得中層L2的解碼圖像POUT#B進(jìn)行解碼所必須的附加信息“B”的基礎(chǔ)上,還包含了為獲得高層的解碼圖像POUT#A進(jìn)行解碼所必須的附加信息(圖2中的“A”所示)。

就這樣,在高層L1的編碼數(shù)據(jù)DATA#A中包含了不同的、多種品質(zhì)的解碼圖像信息。

接下來利用圖2(b)對解碼裝置進(jìn)行說明。在解碼裝置端,分別對應(yīng)高層L1、中層L2和低層L3的解碼裝置1#A、1#B和1#C,對編碼數(shù)據(jù)DATA#A、DATA#B和DATA#C進(jìn)行解碼、輸出解碼圖像POUT#A、POUT#B和POUT#C。

抽取高層的分層編碼數(shù)據(jù)的部分信息(也稱為比特流抽取),通過在相對低層的特定解碼裝置中對該抽取的信息進(jìn)行解碼,可進(jìn)行特定品質(zhì)的視頻播放。

例如,中層L2的分層解碼裝置1#B,可以從高層L1的分層編碼數(shù)據(jù)DATA#A中抽取為獲得解碼圖像POUT#B進(jìn)行解碼所必須的信息(即,分層編碼數(shù)據(jù)DATA#A中包含的“B”和“C”),進(jìn)行解碼以獲得解碼圖像POUT#B。換言之,解碼裝置端可根據(jù)高層L1的分層編碼數(shù)據(jù)DATA#A中包含的信息,進(jìn)行解碼以獲得解碼圖像POUT#A、POUT#B和POUT#C。

并且,分層編碼數(shù)據(jù)不限于以上的3層分層編碼數(shù)據(jù),也可以是分2層的分層編碼數(shù)據(jù),或是比3層更多層的分層編碼數(shù)據(jù)。

此外,對部分或全部與特定層解碼圖像相關(guān)的編碼數(shù)據(jù)獨(dú)立于其它層進(jìn)行編碼、特定層解碼時,構(gòu)成的分層編碼數(shù)據(jù)也可以不參考其它層的信息。例如,使用圖2(a)及(b)說明的上述例中,曾說明在為獲得解碼圖像POUT#B進(jìn)行解碼時參考“C”和“B”,但并不僅限于此。也可以構(gòu)成只參考“B”即可解碼而獲得解碼圖像POUT#B的分層編碼數(shù)據(jù)。例如,為獲得解碼圖像POUT#B進(jìn)行解碼時,可構(gòu)成僅由“B”構(gòu)成的分層編碼數(shù)據(jù)和以解碼圖像POUT#C作為輸入的分層視頻解碼裝置。

在實現(xiàn)SNR可分級時,輸入圖像PIN#A、PIN#B和PIN#C采用同一原畫,可生成解碼圖像POUT#A、POUT#B和POUT#C不同畫質(zhì)的分層編碼數(shù)據(jù)。這種情況,低層的分層視頻編碼裝置與高層分層視頻編碼裝置進(jìn)行比較,通過使用相對更大的量化幅度對預(yù)測殘差進(jìn)行量化,生成分層編碼數(shù)據(jù)。

本說明書中,為說明的方便,定義了如下術(shù)語。如無特殊說明,以下的術(shù)語用于表示下列技術(shù)事項。

VCL NAL單元:VCL(Video Coding Layer、視頻編碼層)NAL單元,指包含視頻(視頻信號)編碼數(shù)據(jù)的NAL單元。例如,VCL NAL單元中包含了條帶數(shù)據(jù)(CTU的編碼數(shù)據(jù))、以及通過該條帶的解碼而共同使用的頭信息(條帶頭)。并且,VCL NAL單元中存儲的編碼數(shù)據(jù)稱為VCL。

non-VCL NAL單元:non-VCL(non-Video Coding Layer、非視頻編碼層、非VCL)NAL單元,包含了對視頻參數(shù)集VPS、序列參數(shù)集SPS、圖片參數(shù)集PPS等各序列和圖片等進(jìn)行解碼時所使用的編碼參數(shù)的集合的頭信息等的編碼數(shù)據(jù)的NAL單元。并且,non-VCL NAL單元中存儲的編碼數(shù)據(jù)稱為non-VCL。

層標(biāo)識符:層標(biāo)識符(也稱為層ID),用于對層(Layer)的識別,與層為一一對應(yīng)關(guān)系。分層編碼數(shù)據(jù)中包含了用于選擇為獲得特定層解碼圖像進(jìn)行解碼所必須的部分的編碼數(shù)據(jù)標(biāo)識符。與特定層對應(yīng)的層標(biāo)識符相關(guān)聯(lián)的分層編碼數(shù)據(jù)的部分集合,也稱為層表現(xiàn)。

通常,為獲得特定層解碼圖像的解碼中,使用該層的層表現(xiàn)和/或?qū)?yīng)比該層低的層的層表現(xiàn)。即在為獲得對象層解碼圖像的解碼中,使用對象層的層表現(xiàn)和/或比對象層低的層中包含的1個以上(含1)層的層表現(xiàn)。

層:具有特定層(Layer)的層標(biāo)識符值(nuh_layer_id,nuhLayerId)的VCL NAL單元以及與該VCL NAL單元相關(guān)聯(lián)的non-VCL NAL單元的集合、或一個具有分層關(guān)系的語法構(gòu)造的集合。

高層:在某層之上位置的層稱為高層。例如,圖2中,低層L3的高層有中間位置的層L2及高層位置的層L1。此外,高層解碼圖像是指品質(zhì)更高(例如,高分辨率、高幀頻、高畫質(zhì)等)的解碼圖像。

低層:在某層之下位置的層稱為低層。例如,圖2中,高層L1的低層有中間位置的層L2及低層位置的層L3。此外,低層解碼圖像是指品質(zhì)更低的解碼圖像。

對象層:指作為解碼或編碼對象的層。與對象層對應(yīng)的解碼圖像稱為對象層圖片。構(gòu)成對象層圖片的像素稱為對象層像素。

參考層:為獲得對象層對應(yīng)的解碼圖像進(jìn)行解碼時所參考的特定的低層稱為參考層。與參考層對應(yīng)的解碼圖像稱為參考層圖片。構(gòu)成參考層的像素稱為參考層像素。

在圖2(a)及(b)所示的例中,高層L1的參考層為中層L2及低層L3。但并不僅限于此,在特定的上述層的解碼中,也可不參考全部低層而構(gòu)成分層編碼數(shù)據(jù)。例如,也可以構(gòu)成分層編碼數(shù)據(jù),讓高層L1的參考層是中層L2或低層L3的其中之一。此外,參考層也可表述為預(yù)測對象層解碼用的編碼參數(shù)等時使用(參考)的、與對象層不同的層。對象層的層間預(yù)測中直接被參考的參考層也稱為直接參考層。在對象層的直接參考層A的層間預(yù)測中被參考的直接參考層B也稱為對象層的間接參考層。

基本層:處于最下層的層稱為基本層?;緦拥慕獯a圖像是從編碼數(shù)據(jù)解碼所得到的最低品質(zhì)的解碼圖像,也稱為基本解碼圖像。換言之,基本解碼圖像是與最下層對應(yīng)的解碼圖像。為獲得基本解碼圖像的解碼中所必須的分層編碼數(shù)據(jù)的部分編碼數(shù)據(jù)稱為基本編碼數(shù)據(jù)。例如,高層L1的分層編碼數(shù)據(jù)DATA#A中包含的基本信息“C”就是基本編碼數(shù)據(jù)。

增強(qiáng)層:基本層之上的層稱為增強(qiáng)層。

層間預(yù)測:層間預(yù)測是指根據(jù)與對象層的層表現(xiàn)不同的層(參考層)的層表現(xiàn)中包含的語法元素值、從語法元素值中導(dǎo)出的值和解碼圖像,預(yù)測對象層的語法元素值和對象層解碼中用的編碼參數(shù)等。從參考層信息預(yù)測與運(yùn)動預(yù)測相關(guān)的信息的層間預(yù)測稱為層間運(yùn)動信息預(yù)測。從低層解碼圖像進(jìn)行的層間預(yù)測稱為層間圖像預(yù)測(或?qū)娱g紋理預(yù)測)。用于層間預(yù)測的層,典型的是對象層的低層。此外,不用參考層而在對象層內(nèi)進(jìn)行的預(yù)測也稱為層內(nèi)預(yù)測。

時域標(biāo)識符:時域標(biāo)識符(也稱為時域ID、時間標(biāo)識符、子層ID、或子層標(biāo)識符)是為了識別時域可分級層(以下稱為子層)的標(biāo)識符。時域標(biāo)識符的作用是為了識別子層,與子層為一一對應(yīng)的關(guān)系。編碼數(shù)據(jù)中包含用于選擇為獲得特定子層的解碼圖像進(jìn)行解碼所必須部分編碼數(shù)據(jù)的時域標(biāo)識符。特別地,最高(最高層)子層的時域標(biāo)識符稱為最高(最高層)時域標(biāo)識符(highest TemporaLId,highestTid)。

子層:子層是通過時域標(biāo)識符所確定的時域可分級的層。為了區(qū)別于空域可分級、SNR可分級等其它的可分級,以后稱為子層(也稱時域?qū)?。并且以后認(rèn)為時域可分級是通過基本層編碼數(shù)據(jù)、或?qū)δ硨咏獯a所必須的分層編碼數(shù)據(jù)中包含的子層而實現(xiàn)的。

層集:層集是指由1以上的層(含1)所構(gòu)成的層的集合。

比特流抽取處理:比特流抽取處理是從某比特流(分層編碼數(shù)據(jù)、編碼數(shù)據(jù))中、去除(丟棄)由對象最高時域標(biāo)識符(highest TemporaLId,highestTid)、表示對象層集中所包含層的層ID列表(也稱為LayerSetLayerIdList[]、LayerIdList[])所決定的集合(稱為目標(biāo)集TargetSet)中不包含的NAL單元、抽取由目標(biāo)集中包含的NAL單元構(gòu)成的比特流(也稱子比特流)的處理。比特流抽取也稱為子比特流抽取。并且,假設(shè)層集中包含的層ID按照升序存儲在層ID列表LayerSetLayerIdList[K](K=0…N-1,N為層集中包含的層數(shù))的各元素中。此外,對象最高時域標(biāo)識符也稱為HighestTidTarget,對象層集也稱為LayerSetTarget,對象層集的層ID列表(對象層ID列表)也稱為LayerIdListTarget。通過比特流抽取而生成的、目標(biāo)集中包含的NAL單元所構(gòu)成的比特流(圖像編碼數(shù)據(jù))也稱為解碼對象圖像編碼數(shù)據(jù)(BitsreamToDecode)。

接下來,參考圖3和圖4,舉例說明通過比特流抽取處理,從包含某層集A的分層編碼數(shù)據(jù)中,抽取包含作為層集A子集的層集B的分層編碼數(shù)據(jù)。

圖3所示為由3個層(L#0,L#1,L#2)、以及各層的3個子層(TID1,TID2,TID3)所構(gòu)成的層集A。以下,將構(gòu)成層集的層以及子層用{層ID列表{L#0,…,L#N},最高時域ID=K}、或{LayerIdList={L#0,…,L#N},HighestTid=K}表示。例如,圖3的層集A表示為{層ID列表{L#0,L#1,L#2},最高時域ID=3}、或{LayerIdList={L#0,L#1,L#2},HighestTid=3}。這里,符號L#N表示層N,圖3中的各方框表示圖片,方框內(nèi)的編號表示解碼順序的一種例子。以下,圖片編號N標(biāo)記為P#N(圖4亦同樣)。

各圖片間的箭頭表示圖片間的依賴方向(參考關(guān)系)。如果是同一層內(nèi)的箭頭,表示為Inter預(yù)測中使用的參考圖片。如果是層間箭頭,則表示是層間預(yù)測中使用的參考圖片(也稱參考層圖片)。

圖3中的AU表示接入單元,符號#N表示接入單元的編號。如果某起點(例如,隨機(jī)接入開始點)的AU作為AU#0,則AU#N為第(N-1)號的接入單元,它表示比特流中包含的AU的順序。即,以圖3為例,在比特流上,接入單元是按AU#0、AU#1、AU#2、AU#3、AU#4…的順序存儲的。并且,接入單元表示由特定分類規(guī)則匯總的NAL單元的集合。圖3的AU#0可認(rèn)為是包含圖片P#1、P#1、及P#3的編碼數(shù)據(jù)的VCL NAL的集合。關(guān)于接入單元的詳細(xì)內(nèi)容將在以后闡述。

圖3的例中,因為目標(biāo)集(層集B)為{LayerIdList={L#0,L#1}、HighestTid=2},所以,從包含層集A的比特流中,通過比特流抽取丟棄目標(biāo)集(層集B)中不包含的層、以及比最高時域ID(HighestTid=2)大的子層。即丟棄層ID列表中不包含的層L#2、及具有子層(TID3)的NAL單元,最終如圖4所示抽取了包含層集B的比特流。圖4中,虛線方框表示被丟棄的圖片,虛線箭頭表示被丟棄的圖片和參考圖片之間的依賴方向。另外,因為已丟棄了層L#3、以及構(gòu)成TID3子層圖片的NAL單元,所以依賴關(guān)系也被切斷了。

SHVC和MV-HEVC等中,為了實現(xiàn)SNR可分級、空域可分級、時域可分級等,導(dǎo)入了層、以及子層的概念。正如圖3、圖4中已說明的,在變更幀頻實現(xiàn)時域可分級時,通過比特流抽取處理,首先丟棄其它圖片不參考的圖片(最高時域ID(TID3))的編碼數(shù)據(jù)。如圖3、圖4中通過丟棄圖片(10、13、11、14、12、15)的編碼數(shù)據(jù),生成了幀頻為1/2的編碼數(shù)據(jù)。

而且,實現(xiàn)SNR可分級、空域可分級、視點可分級等時,通過比特流抽取,丟棄目標(biāo)集中不包含的層的編碼數(shù)據(jù),可變更各可分級的粒度。圖3、圖4的情況,通過丟棄圖片(3、6、9、12、15)的編碼數(shù)據(jù),生成粗化了可分級粒度的編碼數(shù)據(jù)。通過反復(fù)進(jìn)行上述處理,可以分階段調(diào)整層、子層的粒度。

另外,圖3中,如果層L#0和層L#1之間沒有層間預(yù)測等的依賴關(guān)系,從層集A的比特流中,通過比特流抽取,可抽取包含由單獨(dú)的層形成的、作為層集A子集的層集C{LayerIdList={L#1}、HighestTid=2}的比特流。

另外,以上術(shù)語目的是為了說明上的方便,上述的技術(shù)事項也可用別的術(shù)語表達(dá)。

〔分層編碼數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)〕

下面,生成各層編碼數(shù)據(jù)的編碼方式將以使用HEVC及其擴(kuò)展方式為例。但并不僅限于此,各層的編碼數(shù)據(jù)也可以用MPEG-2、H.264/AVC等的編碼方式來生成。

也可以低層和高層采用不同編碼方式進(jìn)行編碼。各層的編碼數(shù)據(jù)可以是通過相互不同的傳輸路徑提供給分層視頻解碼裝置1,也可以通過同一傳輸路徑提供給分層視頻解碼裝置1。

例如,可以將超高清視頻(視頻、4K視頻數(shù)據(jù))通過基本層及1個增強(qiáng)層進(jìn)行可分級編碼并傳輸?shù)那闆r,基本層用于將4K視頻數(shù)據(jù)縮小(Downscaling)、將隔行掃描處理后的視頻數(shù)據(jù)通過MPEG-2或H.264/AVC進(jìn)行編碼,傳送給電視廣播網(wǎng),增強(qiáng)層用于將4K視頻(漸進(jìn)的)通過HEVC進(jìn)行編碼,傳送到互聯(lián)網(wǎng)。

<分層編碼數(shù)據(jù)DATA的結(jié)構(gòu)>

在詳細(xì)說明本實施例相關(guān)的圖像編碼裝置2及圖像解碼裝置1之前,首先來說明通過圖像編碼裝置2生成的、通過圖像解碼裝置1解碼的分層編碼數(shù)據(jù)DATA的數(shù)據(jù)結(jié)構(gòu)。

(NAL單元層)

圖5所示為分層編碼數(shù)據(jù)DATA中數(shù)據(jù)的分層結(jié)構(gòu)。分層編碼數(shù)據(jù)DATA以NAL(Network Abstraction Layer)單元為單位進(jìn)行編碼。

NAL是在進(jìn)行視頻編碼處理的層VCL(Video Coding Layer)和傳輸、存儲編碼數(shù)據(jù)的低層系統(tǒng)之間設(shè)置的用于通信抽象化的層。

VCL是指進(jìn)行圖像編碼處理的層,在VCL中進(jìn)行編碼。另一方面,這里所說的低層系統(tǒng),對應(yīng)H.264/AVC及HEVC的文件格式、MPEG-2系統(tǒng)等。在以下的示例中,低層系統(tǒng)對應(yīng)對象層及參考層中的解碼處理。另外,在NAL中,VCL生成的比特流以NAL單元為單位分割,傳輸?shù)侥繕?biāo)低層系統(tǒng)。

圖6(a)所示為NAL(Network Abstraction Layer)單元的語法表。NAL單元中包括有在VCL中編碼的編碼數(shù)據(jù)和將該編碼數(shù)據(jù)正確傳送到目標(biāo)低層系統(tǒng)用的“頭”(NAL單元頭:nal_unit_header()(圖6的SYNNAL01))。NAL單元頭用如圖6(b)所示的語法表示。NAL單元頭中,有表示存儲在NAL單元中的編碼數(shù)據(jù)種類的“nal_unit_type”、表示存儲的編碼數(shù)據(jù)所屬子層的標(biāo)識符(時域標(biāo)識符)“nuh_temporal_id_plus1”、表示存儲的編碼數(shù)據(jù)所屬層的標(biāo)識符(層標(biāo)識符)“nuh_layer_id”(或nuh_reserved_zero_6bits)。另一方面,NAL單元數(shù)據(jù)(圖6的SYNNAL02)中,包含了后述的參數(shù)集、SEI、條帶等。

圖7所示為NAL單元類型的值和NAL單元種類的關(guān)系。圖7中SYNA101所示的NAL單元類型值0到15的NAL單元,是非RAP(隨機(jī)接入圖片)的條帶。SYNA102所示的NAL單元類型值16到21的NAL單元,是RAP(隨機(jī)接入點圖片、IRAP圖片)的條帶。RAP圖片可分為BLA圖片、IDR圖片、CRA圖片三大類,其中BLA圖片又可分為BLA_W_LP、BLA_W_DLP、BLA_N_LP。IDR圖片可分為IDR_W_DLP、IDR_N_LP。RAP圖片以外的圖片,還有領(lǐng)先圖片(LP圖片)、時域接入圖片(TSA圖片、STSA圖片)、尾隨圖片(TRAIL圖片)等。另外,各層的編碼數(shù)據(jù),通過存儲在NAL單元中,被NAL復(fù)用后傳輸?shù)椒謱右曨l解碼裝置1。

如圖7的NAL Unit Type Class所示,各NAL單元對應(yīng)NAL單元類型,可分為構(gòu)成圖片的數(shù)據(jù)(VCL數(shù)據(jù))和除此之外的數(shù)據(jù)(non-VCL)。無論是隨機(jī)接入圖片、LP圖片、TRAIL圖片等何種圖片類型,都屬于VCL NAL單元。圖片解碼中所需數(shù)據(jù)的參數(shù)集、圖片補(bǔ)助信息的SEI、表示序列分隔的接入單元定界符(AUD)、序列終止符(EOS)、比特流終止符(EOB)(圖7的SYNA103)等都屬于non-VCL NAL單元。

(接入單元)

由特定分類規(guī)則匯總的NAL單元的集合稱為接入單元。當(dāng)層數(shù)為1時,接入單元為構(gòu)成1圖片的NAL單元的集合。當(dāng)層數(shù)大于1時,接入單元為構(gòu)成同時刻的多層圖片的NAL單元的集合。另外,為表示接入單元的分隔,編碼數(shù)據(jù)中可包含被稱為接入單元定界符(Access unit delimiter)的NAL單元。接入單元定界符處在構(gòu)成編碼數(shù)據(jù)中的接入單元的NAL單元集合和構(gòu)成別的接入單元的NAL單元集合的中間。

圖8所示為接入單元中的NAL單元的構(gòu)成示例。如圖8所示,AU由表示AU先頭的接入單元定界符(AUD)、各種參數(shù)集(VPS、SPS、PPS)、各種SEI(Prefix SEI,Suffix SEI)、層數(shù)為1時構(gòu)成1圖片的VCL(slice)、層數(shù)大于1時構(gòu)成層數(shù)張的圖片的VCL、表示序列終點的EOS(End of Sequence)、表示比特流終點的EOB(End of Bitstream)等NAL單元構(gòu)成。另外,圖8的例中,VPS、SPS、SEI、VCL后的符號L#K(K=Nmin…Nmax)表示層ID。圖8的例中,AU內(nèi)除VPS外,層L#Nmin~層L#Nmax的SPS、PPS、SEI、VCL以層ID的升序排列。VPS只用最低的層ID傳送。另外,圖8中,用箭頭表示特定NAL單元是否存在于AU內(nèi)以及是否反復(fù)存在。例如,特定的NAL單元如果存在于AU內(nèi),用穿過該NAL單元的箭頭表示,特定的NAL單元如果不存在于AU內(nèi),用跳過該NAL單元的箭頭表示。例如,不穿過AUD而指向VPS的箭頭表示AUD在AU內(nèi)不存在。而且,在AU內(nèi)可以包含最低以外的高層ID的VPS,但圖像解碼裝置會忽略最低以外的層ID的VPS。圖8所示的各種參數(shù)集(VPS,SPS,PPS)和補(bǔ)助信息SEI等,可以作為接入單元的一部分包含其中,也可用與比特流不同的方法傳遞給解碼器。

特別是包含層標(biāo)識符nuhLayerId=0的IRAP圖片的接入單元稱為IRAP接入單元(隨機(jī)接入點、接入單元)。進(jìn)行解碼對象層集中包含的所有層的解碼處理初始化的IRAP接入單元稱為初始化IRAP接入單元。按解碼順序,從初始化IRAP接入單元開始、至0以上的非初始化IRAP接入單元(初始化IRAP接入單元以外的接入單元)、至下一個初始化IRAP接入單元為止的接入單元的集合(但不包括下一個初始化IRAP接入單元)也稱為CVS(Coded Video Sequence;編碼視頻序列,以下包含序列SEQ)。

圖9所示為分層編碼數(shù)據(jù)DATA中的數(shù)據(jù)分層結(jié)構(gòu)。分層編碼數(shù)據(jù)DATA,例如,包括序列和構(gòu)成序列的多張圖片。圖9(a)~(f)分別為定義序列SEQ的序列層;定義圖片PICT的圖片層;定義條帶S的條帶層;定義條帶數(shù)據(jù)的條帶數(shù)據(jù)層;定義條帶數(shù)據(jù)中編碼樹單元的編碼樹層;定義編碼樹中的編碼單位(Coding Unit:CU)的編碼單元層。

(序列層)

序列層中定義了對處理對象的序列SEQ(以下也稱為對象序列)進(jìn)行解碼時圖像解碼裝置1參考的數(shù)據(jù)的集合。序列SEQ如圖9(a)所示,包含了視頻參數(shù)集(Video Parameter Set)、序列參數(shù)集SPS(Sequence Parameter Set)、圖片參數(shù)集PPS(Picture Parameter Set)、圖片PICT、以及附加擴(kuò)展信息SEI(Supplemental Enhancement lnformation)。此處#后的值表示層ID。圖9例中存在#0和#1、即層ID為0和層ID為1的編碼數(shù)據(jù),但層的種類及層的數(shù)量不僅限于此。

(視頻參數(shù)集)

視頻參數(shù)集VPS定義了對1以上(含1)的層構(gòu)成的編碼數(shù)據(jù)進(jìn)行解碼的圖像解碼裝置1所參考的編碼參數(shù)的集合。例如定義了:用于識別后述序列參數(shù)集和其它語法元素等參考的VPS的VPS標(biāo)識符(video_parameter_set_id)、編碼數(shù)據(jù)中包含的層數(shù)(vps_max_layers_minus1)、層中包含的子層數(shù)(vps_sub_layers_minus1)、定義編碼數(shù)據(jù)中出現(xiàn)的由1以上(含1)的層形成的層集合的層集數(shù)(vps_num_layer_sets_minus1)、定義構(gòu)成層集的層集合的層集構(gòu)成信息(layer_id_included_flag[i][j])、層間依賴關(guān)系(直接依賴標(biāo)記direct_dependency_flag[i][j]、以及層依賴類型direct_dependency_type[i][j])等。在編碼數(shù)據(jù)內(nèi)可存在多個VPS。此時,每個對象序列解碼用的VPS將從多個候補(bǔ)中選擇。對屬于某層的特定序列進(jìn)行解碼時所使用的VPS稱為Active VPS。為了區(qū)別適用于基本層和增強(qiáng)層的VPS,也將對基本層(層ID=0)的VPS稱為Active VPS,對增強(qiáng)層(層ID>0)的VPS稱為Active Layer VPS。以下,若無特殊規(guī)定,VPS指對屬于某層的對象序列的Active VPS。另外,對層ID=nuhLayerIdA的層進(jìn)行解碼用的層ID=nuhLayerIdA的VPS也可用于層ID比nuhlayerIdA大的層(nuhLayerIdB、nuhLayerIdB>nuhLayerIdA)的解碼。

(VPS的比特流約束)

有關(guān)VPS在解碼器和編碼器之間的比特流約束(也稱為比特流一致性)為:“VPS的層ID等于接入單元中包含的VCL中的最低層ID,且時域ID為0(tId=0)”。此處的比特流一致性是指分層視頻解碼裝置(指本發(fā)明實施例相關(guān)的分層視頻解碼裝置)解碼的比特流應(yīng)滿足的必要條件。同樣,對分層視頻編碼裝置(指本發(fā)明實施例相關(guān)的分層視頻編碼裝置)生成的比特流,為了保證是上述分層視頻解碼裝置可以解碼的比特流,也必須滿足上述比特流一致性。即作為比特流的一致性,要求比特流至少應(yīng)滿足以下的條件CX1。

CX1:”層標(biāo)識符為nuhLayerIdA的VPS是層標(biāo)識符為nuhLayerIdB(nuhLayerIdB〉=nuhLayerIdA)層的Active VPS時,層標(biāo)識符nuhLayerIdA等于接入單元中包含的VCL中的最低層標(biāo)識符”。

此外,條件CX1也可以表述為以下的條件CX1’。

CX1’:“層標(biāo)識符nuh_layer_id等于nuhLayerIdA的VPS是層標(biāo)識符nuh_layer_id等于nuhLayerIdB(nuhLayerIdB〉=nuhLayerIdA)的層的Active VPS時,層標(biāo)識符nuhLayerIdA等于接入單元中包含的VCL中的最低層標(biāo)識符”。

換言之,上述比特流約束CX1(CX1’)是:對象層所參考的VPS,是作為對象層集NAL單元集合的接入單元內(nèi)所包含的VCL、與具有最低層標(biāo)識符的VCL屬于同一層。

“對象層所參考的VPS,是作為對象層集NAL單元集合的接入單元內(nèi)所包含的VCL、與具有最低層標(biāo)識符的VCL屬于同一層。”是指:“層集A子集的層集B內(nèi)的層,參考層集A中的‘包含在層集A中、但不包含在層集B中’的層的VPS時,在通過比特流抽取所抽取的層集B中應(yīng)包含與前述VPS具有相同編碼參數(shù)的VPS”。另外,與前述VPS具有相同編碼參數(shù)的VPS,是指除層標(biāo)識符、時域標(biāo)識符以外,VPS標(biāo)識符、以及其它的VPS內(nèi)的語法元素與前述VPS相同。因此,通過設(shè)置上述比特流約束,可解決在比特流抽取后的比特流上,層集內(nèi)不包含VPS的問題。即,可防止從某層集的比特流中、通過比特流抽取處理生成的、只包含該層集子集的層集的比特流上出現(xiàn)不能解碼的層。

(VPS的比特流約束的變化實施例1)

前述VPS約束也可認(rèn)為是:“VPS的層ID是層集內(nèi)最低的層ID,且時域ID為0(tld=0)”。

即作為比特流一致性,要求比特流至少應(yīng)滿足以下的條件CX2。

CX2:”層標(biāo)識符為nuhLayerIdA的VPS是層標(biāo)識符nuhLayerldB(nuhLayerIdB〉=nuhLayerIdA)層的Active VPS時,層標(biāo)識符nuhLayerIdA是層集內(nèi)的最低的層標(biāo)識符”。

此外,條件CX2也可以表述為以下的條件CX2’。

CX2’:”層標(biāo)識符nuh_layer_id等于nuhLayerIdA的VPS是層標(biāo)識符nuh_layer_id等于nuhLayerIdB(nuhLayerIdB〉=nuhLayerIdA)的層的Active VPS時,層標(biāo)識符nuhLayerIdA是層集內(nèi)最低的層標(biāo)識符”。

換言之,上述比特流約束CX2(CX2’)是:,對象層所參考的VPS是對象層集內(nèi)具有最低層標(biāo)識符的VPS。

“對象層所參考的VPS是在對象層集內(nèi)具有最低層標(biāo)識符的VPS”是指:“層集A子集的層集B內(nèi)的層,參考層集A中的‘包含在層集A中、但不包含在層集B中’的層的VPS時,在通過比特流抽取所抽取的層集B中應(yīng)包含與前述VPS具有相同編碼參數(shù)的VPS”。

因此,通過設(shè)置上述比特流約束,可解決在比特流抽取后的比特流上,層集內(nèi)不包含VPS的問題。即,可防止如圖1所示的現(xiàn)有技術(shù)中發(fā)生的這一問題:從某層集的比特流中、通過比特流抽取處理生成的、只包含該層集子集的層集的比特流上出現(xiàn)不能解碼的層。

(序列參數(shù)集)

序列參數(shù)集SPS定義了對對象序列進(jìn)行解碼的圖像解碼裝置1所參考的編碼參數(shù)的集合。例如定義了:表示對象SPS參考的Active VPS的Active VPS標(biāo)識符(sps_video_parameter_set_id)、用于識別后述圖片參數(shù)集和其它語法元素等參考的SPS的SPS標(biāo)識符(sps_seq_parameter_set_id)、以及圖片的寬度和高度等。在編碼數(shù)據(jù)內(nèi)可存在多個SPS。此時,每個對象序列解碼用的SPS將從多個候補(bǔ)中選擇。對屬于某層的特定序列進(jìn)行解碼所使用的SPS也稱為Active SPS。為了區(qū)別適用于基本層和增強(qiáng)層的SPS,也將對基本層的SPS稱為Active SPS,對增強(qiáng)層的SPS稱為Active Layer SPS。以下,若無特殊規(guī)定,SPS指用于某層對象序列解碼的Active SPS。另外,對層ID=nuhLayerIdA層的序列解碼用的、層ID=nuhLayerIdA的SPS,也可用于層ID比nuhLayerIdA大的層ID(nuhLayerIdB、nuhLayerIdB〉nuhLayerIdA)的序列的解碼。以下,若無特殊規(guī)定,解碼器和編碼器之間的約束條件是:SPS的時域ID為0(tld=0)(也稱為比特流約束)。

(圖片參數(shù)集)

圖片參數(shù)集PPS定義了對對象序列內(nèi)的各圖片進(jìn)行解碼的圖像解碼裝置1所參考的編碼參數(shù)的集合。例如包含了:表示對象PPS參考的Active SPS的Active SPS標(biāo)識符(pps_seq_parameter_set_id)、用于識別后述條帶頭和其它語法元素參考的PPS的PPS標(biāo)識符(pps_pic_parameter_set_id)、圖片解碼用的量化范圍基準(zhǔn)值(pic_init_qp_minus26)、表示適用于帶權(quán)重預(yù)測的標(biāo)記(weighted_pred_flag)、以及分級列表(量化矩陣)等??捎卸鄠€PPS存在。此時,對象序列內(nèi)的各圖片從多個PPS中選擇數(shù)個PPS。對屬于某層的特定圖片進(jìn)行解碼所使用的PPS稱為Active PPS。而且,為了區(qū)別適用于基本層或增強(qiáng)層的PPS,對基本層的PPS稱為Active PPS,對增強(qiáng)層的PPS稱為Active Layer PPS。以下,若無特殊規(guī)定,PPS指對屬于某層的對象圖片的Active PPS。另外,用于層ID=nuhLayerIdA層的圖片解碼的、層ID=nuhLayerIdA的PPS,也可用于層ID比nuhLayerIdA大的層(nuhLayerIdB、nuhLayerIdB〉nuhLayerIdA)的圖片的解碼。

Active SPS以及Active PPS,可以按不同層來設(shè)置不同的SPS或PPS。即各層可以參考不同的SPS、PPS等進(jìn)行解碼處理。

(圖片層)

圖片層定義了對處理對象圖片PICT(以下也稱為對象圖片)進(jìn)行解碼的分層視頻解碼裝置1所參考的數(shù)據(jù)的集合。圖片PICT如圖9(b)所示,包含了條帶S0~SNS-1(NS為圖片PICT中包含的條帶的總數(shù))。

另外,以下如果沒有必要區(qū)別S0~SNS-1的各具體條帶時,省略符號后的下標(biāo)。以下說明中的分層編碼數(shù)據(jù)DATA中包含的有下標(biāo)的其它數(shù)據(jù)也同樣如此。

(條帶層)

條帶層定義了對處理對象條帶S(也稱為對象條帶)進(jìn)行解碼的分層視頻解碼裝置1所參考的數(shù)據(jù)的集合。條帶S如圖9(c)所示,包含了條帶頭SH和條帶數(shù)據(jù)SDATA。

條帶頭SH包含了決定對象條帶解碼方法的分層視頻解碼裝置1所參考的編碼參數(shù)群。例如包含了指定對對象條帶進(jìn)行解碼用的參考PPS(Active PPS)的Active PPS標(biāo)識符(slice_pic_parameter_set_id)。另外,通過Active PPS中包含的Active SPS標(biāo)識符(pps_seq_parameter_set_id)來指定Active PPS參考的SPS。通過Active SPS中包含的Active VPS標(biāo)識符(sps_video_parameter_set_id)來指定Active SPS參考的VPS(Active VPS)。

以圖10為例,說明本實施例中的層間參數(shù)集共享(共享參數(shù)集)。圖10所示為構(gòu)成頭信息和接入單元(AU)的編碼數(shù)據(jù)的參考關(guān)系。圖10的例中,構(gòu)成屬于AU內(nèi)各層L#K(K=Nmin…Nmax)的圖片的各條帶,在條帶頭中包含了指定應(yīng)參考的PPS的Active PPS標(biāo)識符,在開始各條帶的解碼時,通過該標(biāo)識符指定解碼中使用的PPS(Active PPS)(也稱為激活)。另外,在同一圖片內(nèi),各條帶所參考的各PPS、SPS、VPS的編碼參數(shù)必須是相同的。被激活的PPS中,包含了解碼處理中應(yīng)參考的SPS(Active SPS)的Active SPS標(biāo)識符,通過該標(biāo)識符指定解碼中用的SPS(Active SPS)(激活)。同樣,被激活的SPS中,包含了指定各層序列解碼處理中應(yīng)參考的VPS(Active VPS)的Active VPS標(biāo)識符,通過該標(biāo)識符指定解碼用的VPS(Active VPS)(激活)。

按照以上的步驟,確定執(zhí)行各層編碼數(shù)據(jù)的解碼處理所必需的參數(shù)集。圖10的例中,各參數(shù)集(VPS、SPS、PPS)的層標(biāo)識符為屬于某層集的最低層ID=L#Nmin。層ID=L#Nmin的條帶參考具有同一層ID的參數(shù)集。即,圖10的例中,AU#i的層ID=L#Nmin的條帶,其層ID=L#Nmin,參考PPS標(biāo)識符=0的PPS,該P(yáng)PS的層ID=L#Nmin,參考SPS標(biāo)識符=0的SPS,該SPS的層ID=L#Nmin,參考VPS標(biāo)識符=0的VPS。另一方面,AU#i的層ID=L#K(K〉Nmin)(圖10中的L#Nmax)的條帶,可以參考具有相同層ID(=L#K)的PPS、SPS,但也可參考比L#K低層L#M(K〉M)(圖10中的M=Nmin、L#Nmin)的PPS、SPS。即,通過在層間參考通用的參數(shù)集,在高層中已經(jīng)沒有必要重復(fù)發(fā)送具有與低層相同編碼參數(shù)的參數(shù)集,所以可減少重復(fù)的參數(shù)集符號量以及與解碼/編碼相關(guān)的處理量。

另外,各頭信息(條帶頭、PPS、SPS)參考的高層參數(shù)集的標(biāo)識符不僅限于圖10的舉例。VPS可以從VPS標(biāo)識符k=0…15中選擇,SPS可以從SPS標(biāo)識符m=0…15中選擇,PPS可以從PPS標(biāo)識符n=0…63中選擇。

指定條帶類型的條帶類型指定信息(slice_type)也只是條帶頭SH中包含的編碼參數(shù)的一例。

例如,可通過條帶類型指定信息指定的條帶類型有:(1)只用于編碼時幀內(nèi)預(yù)測的I條帶;(2)用于編碼時單方向預(yù)測或幀內(nèi)預(yù)測的P條帶;(3)用于編碼單方向預(yù)測、雙方向預(yù)測或幀內(nèi)預(yù)測的B條帶等。

(條帶數(shù)據(jù)層)

條帶數(shù)據(jù)層定義了對處理對象的條帶數(shù)據(jù)SDATA進(jìn)行解碼的分層視頻解碼裝置1所參考的數(shù)據(jù)的集合。條帶數(shù)據(jù)SDATA如圖9(d)所示,包含編碼樹塊(CTB:Coded Tree BLock)。CTB為構(gòu)成條帶的固定尺寸(例如64×64)的塊,也稱為最大編碼單位(LCU:Largest Cording Unit)。

(編碼樹層)

編碼樹層如圖9(e)所示,定義了對處理對象的編碼樹塊進(jìn)行解碼的分層視頻解碼裝置1所參考的數(shù)據(jù)集合。通過迭代的四叉樹分割對編碼樹單元進(jìn)行分割。通過迭代的四叉樹分割得到的樹結(jié)構(gòu)節(jié)點稱為編碼樹(coding tree)。四叉樹的中間節(jié)點是編碼樹單元(CTU:Coded Tree Unit),編碼樹塊自身也被定義作為最高層的CTU。CTU中,包含分割標(biāo)記(split_flag),當(dāng)split_flag為1時,分割成4個編碼樹單元CTU。當(dāng)split_flag為0時,編碼樹單元CTU被分割成4個編碼單元(CU:Coded Unit)。編碼單元CU為編碼樹層的末端節(jié)點,此層不能再被分割。編碼單元CU是編碼處理的基本單位。

編碼樹單元CTU的尺寸以及各編碼單元可取尺寸,取決于序列參數(shù)集SPS中包含的、最小編碼節(jié)點的尺寸指定信息、以及最大編碼節(jié)點與最小編碼節(jié)點的層深度差分。例如,當(dāng)最小編碼節(jié)點的尺寸為8×8像素、最大編碼節(jié)點與最小編碼節(jié)點的層深度差分為3時,編碼樹單元CTU的尺寸為64×64像素,編碼節(jié)點可取4種類的尺寸,即,64×64像素、32×32像素、16×16像素和8×8像素。

通過編碼樹單元解碼的對象圖片上的部分區(qū)域稱為編碼樹塊(CTB:Coding Tree bLock)。對應(yīng)對象圖片亮度成分的亮度圖片的CTB稱為亮度CTB。換言之,從CTU解碼的亮度圖片上的部分區(qū)域稱為亮度CTB。而對應(yīng)由CTU解碼的色度圖片的部分區(qū)域稱為色度CTB。通常,如果決定了圖像的色格式,亮度CTB尺寸和色度CTB尺寸可以相互變換。例如,當(dāng)色格式為4:2:2時,色度CTB尺寸與亮度CTB尺寸各占一半。以下的闡述中,若無特殊規(guī)定,CTB尺寸即指亮度CTB的尺寸。而且,CTU的尺寸為對應(yīng)CTU的亮度CTB的尺寸。

(編碼單元層)

編碼單元層如圖9(f)所示,定義了對處理對象的編碼單元進(jìn)行解碼的分層視頻解碼裝置1所參考的數(shù)據(jù)的集合。具體的編碼單元CU(coding unit)由CU頭CUH、預(yù)測樹、變換樹構(gòu)成。CU頭CUH定義了編碼單元是使用幀內(nèi)預(yù)測的單元還是使用幀間預(yù)測單元等。編碼單元作為預(yù)測樹(prediction tree;PT)及變換樹(transform tree;TT)的根(root)。另外,對應(yīng)CU的圖片上的區(qū)域稱為編碼塊(CB:Coding Block)。亮度圖片上的CB稱為亮度CB、色度圖片上的CB稱為色度CB。CU的尺寸(編碼節(jié)點的尺寸)是指亮度CB的尺寸。

(變換樹)

變換樹(以下簡稱TT)定義了編碼單元CU被分割成1個或多個變換塊、以及各變換塊的位置和尺寸。也就是說,變換塊是構(gòu)成編碼單元CU的1個或多個不重復(fù)的區(qū)域?;蛘哒f,變換樹包含了通過上述分割得到的1個或多個變換塊。另外,CU中包含的變換樹的相關(guān)信息、以及變換樹中包含的信息稱為TT信息。

變換樹中的分割有將與編碼單元相同大小的區(qū)域作為變換塊進(jìn)行的分割、以及與上述樹塊的分割同樣的通過迭代四叉樹進(jìn)行的分割。變換處理在各變換塊進(jìn)行。以下,將作為變換的單位的變換塊稱為變換單位(transform unit;TU)。

變換樹TT包含指定將對象CU分割成各變換塊的分割方式的TT分割信息SP_TT、以及量化預(yù)測殘差QD1~QDNT(NT為對象CU中包含的變換單位TU的總數(shù))。

TT分割信息SP_TT具體是指對象CU中包含的各變換塊的形狀和決定在對象CU內(nèi)的位置用的信息。例如,TT分割信息SP_TT可由表示是否進(jìn)行對象節(jié)點分割的信息(split_transform_unit_flag)和表示其分割深度的信息(transfoDepth)組成。例如,當(dāng)CU尺寸為64×64時,分割可得到的各變換塊尺寸可從32×32像素到4×4像素。

各量化預(yù)測殘差QD是分層視頻編碼裝置2通過對作為處理對象變換塊的對象塊進(jìn)行以下處理1~3而生成的編碼數(shù)據(jù)。

處理1:對從編碼對象圖像減去預(yù)測圖像得到的預(yù)測殘差進(jìn)行頻率變換(例如,DCT變換(Discrete Cosine Transform)及DST變換(Discrete Sine Transform)等);

處理2:對從處理1得到的變換系數(shù)進(jìn)行量化;

處理3:對處理2中量化的變換系數(shù)進(jìn)行可變長度編碼。另外,上述的量化參數(shù)qp表示分層視頻編碼裝置2量化變換系數(shù)時使用的量化步長QP的大小(QP=2qp/6)。

(預(yù)測樹)

預(yù)測樹(以下簡稱PT)定義了編碼單元CU被分割成1個或多個預(yù)測塊、及各預(yù)測塊的位置和尺寸。也就是說,預(yù)測塊是構(gòu)成編碼單元CU的1個或多個不重復(fù)的區(qū)域?;蛘哒f,預(yù)測樹包含了通過上述分割得到的1個或多個預(yù)測塊。另外,CU中包含的預(yù)測樹的相關(guān)信息、以及預(yù)測樹中包含的信息稱為PT信息。

預(yù)測處理在各預(yù)測塊中進(jìn)行。以下將作為預(yù)測的單位的預(yù)測塊稱為預(yù)測單位(prediction unit;PU)。

預(yù)測樹中的分割可分為2大類,即幀內(nèi)預(yù)測和幀間預(yù)測。幀內(nèi)預(yù)測是指同一圖片內(nèi)的預(yù)測,幀間預(yù)測是指互不相同圖片之間(例如,顯示時間之間、層圖像之間)進(jìn)行的預(yù)測處理。即幀間預(yù)測中,是將與對象層同一層的參考圖片(層內(nèi)參考圖片)或?qū)ο髮拥膮⒖紝由系膮⒖紙D片(層間參考圖片)作為參考圖片,從參考圖片上的解碼圖像生成預(yù)測圖像。

幀內(nèi)預(yù)測時,分割方法有2N×2N(與編碼單元相同尺寸)和N×N。

幀間預(yù)測時,分割方法是通過編碼數(shù)據(jù)的part_mode進(jìn)行編碼,有2NX2N(與編碼單元相同尺寸)、2N×N、2N×nU、2N×nD、N×2N、nL×2N、nR×2N和N×N等。其中,N=2m(m為大于等于1的任意整數(shù))。而且,因為分割數(shù)為1、2、4的其中之一,所以,CU中包含的PU為1個到4個。這些PU依次用PU0、PUI、PU2、PU3表示。

(預(yù)測參數(shù))

預(yù)測單元的預(yù)測圖像,通過附屬于預(yù)測單元的預(yù)測參數(shù)導(dǎo)出。預(yù)測參數(shù)中,有幀內(nèi)預(yù)測的預(yù)測參數(shù)或幀間預(yù)測的預(yù)測參數(shù)。

幀內(nèi)預(yù)測參數(shù),是還原各Intra PU的幀內(nèi)預(yù)測(預(yù)測模式)用的參數(shù)。還原預(yù)測模式用的參數(shù)中包含MPM(Most Probable Mode、下同)標(biāo)記mpm_flag、選擇MPM用的索引mpm_idx、以及指定MPM以外的預(yù)測模式用的索引rem_idx。這里的MPM是指在對象分區(qū)被選擇的可能性大的推斷預(yù)測模式。例如,根據(jù)分配給對象分區(qū)的周圍分區(qū)的預(yù)測模式進(jìn)行推斷的推斷預(yù)測模式、通常發(fā)生概率高的DC模式和Planar模式等可能包含在MPM中。以下如果沒有特別說明,單純標(biāo)記“預(yù)測模式”時,指亮度預(yù)測模式。色度預(yù)測模式標(biāo)記為“色度預(yù)測模式”,以區(qū)別于亮度預(yù)測模式。另外,還原預(yù)測模式的參數(shù)中,包含了用于指定色度預(yù)測模式的參數(shù)chroma_mode。

幀間預(yù)測參數(shù)由預(yù)測列表使用標(biāo)記predFlagL0、predFlagL1和參考圖片索引refldxL0、refIdxL1和矢量mvL0、mvL1組成。預(yù)測列表使用標(biāo)記predFlagL0、predFlagL1是表示是否使用稱為L0參考列表、L1參考列表的參考圖片列表的標(biāo)記,值為1時使用對應(yīng)的參考圖片列表。使用2個參考圖片列表,即predFlagL0=1、predFlagL1=1時,對應(yīng)雙預(yù)測;使用1個參考圖片列表,即(predFLagL0,predFlagL1)=(1,0)或(predFlagL0,predFlagL1)=(0,1)時,對應(yīng)單預(yù)測。

導(dǎo)出編碼數(shù)據(jù)中包含的幀間預(yù)測參數(shù)用的語法元素中,包括例如分割模式part_mode、合并標(biāo)記merge_flag、合并索引merge_idx、幀間預(yù)測標(biāo)識符inter_pred_idc、參考圖片索引refldxLX、預(yù)測矢量索引mvp_LX_idx、差分矢量mvdLX等。另外,預(yù)測列表標(biāo)記的各值,可根據(jù)幀間預(yù)測標(biāo)識符,按以下方法導(dǎo)出。

predFlagL0=幀間預(yù)測標(biāo)識符&1

predFlagL1=幀間預(yù)測標(biāo)識符>>1

這里,“&”為邏輯積、“>>”為右移位。

(參考圖片列表的舉例)

下面舉例說明參考圖片列表。參考圖片列表是指存儲在解碼圖片緩存中的參考圖片的列表。圖11(a)所示為舉例的參考圖片列表概念圖。在參考圖片列表RPL0中,左右排列的5個長方形,分別表示各參考圖片。從左至右依次排列的符號P1、P2、Q0、P3、P4分別表示各參考圖片的符號。同樣,參考圖片列表RPL1中,從左至右依次排列的符號P4、P3、R0、P2、P1分別為表示參考圖片的符號。P1等中的P表示對象層P,Q0中的Q表示與對象層P不同的層Q。同樣,R0中的R表示與對象層P及層Q不同的層R。P、Q、R的下標(biāo),表示圖片序號POC。refldxL0正下方的向下箭頭表示參考圖片索引refldxL0是在解碼圖片緩存中通過參考圖片列表RPL0對參考圖片Q0進(jìn)行參考的索引。同樣,refldxL1正下方的向下箭頭,表示參考圖片索引refldxL1是在解碼圖片緩存中通過參考圖片列表RPL1對參考圖片P3進(jìn)行參考的索引。

(參考圖片的舉例)

下面舉例說明導(dǎo)出矢量時使用的參考圖片。圖11(b)為舉例的參考圖片概念圖。圖11(b)中,橫軸表示時間,縱軸表示層數(shù)。圖中所示的橫向3個縱向3個(共9個)長方形,分別表示圖片。9個長方形中,中間行左數(shù)第2列的長方形表示解碼對象圖片(對象圖片),其余的8個長方形表示各參考圖片。從對象圖片向下箭頭所示的參考圖片Q2、以及R2為與對象圖片相同顯示時間的不同層的圖片。在以對象圖片curPic(P2)為基準(zhǔn)的層間預(yù)測中,使用參考圖片Q2或R2。從對象圖片向左箭頭所示的參考圖片P1為與對象圖片同一層的過去的圖片。從對象圖片向右箭頭所示的參考圖片P3為與對象圖同一層的未來的圖片。在以對象圖片為基準(zhǔn)的運(yùn)動預(yù)測中,使用參考圖片P1或P3。

(合并預(yù)測和AMVP預(yù)測)

幀間預(yù)測參數(shù)的解碼(編碼)方法中有合并預(yù)測(merge)模式和AMVP(Adaptive Motion Vector Prediction、自適應(yīng)運(yùn)動矢量預(yù)測)模式。合并標(biāo)記merge_flag為識別它們的標(biāo)記。無論是合并預(yù)測模式還是AMVP模式都是使用已處理塊的預(yù)測參數(shù)導(dǎo)出對象PU的預(yù)測參數(shù)。合并預(yù)測模式是在編碼數(shù)據(jù)中不包含預(yù)測列表使用標(biāo)記predFlagLX(幀間預(yù)測標(biāo)識符inter_pred_idc)、參考圖片索引refldxLX和矢量mvLX,而直接使用已經(jīng)導(dǎo)出的預(yù)測參數(shù)的模式,AMVP模式是在編碼數(shù)據(jù)中包含幀間預(yù)測標(biāo)識符inter_pred_idc、參考圖片索引refIdxLX和矢量mvLX的模式。另外,矢量mvLX作為表示預(yù)測矢量的預(yù)測矢量索引mvp_LX_idx和差分矢量(mvdLX)進(jìn)行編碼。

幀間預(yù)測標(biāo)識符inter_pred_idc是表示參考圖片的種類和數(shù)量的數(shù)據(jù),可取Pred_L0、Pred_L1或Pred_Bi中的某值。Pred_L0、Pred_L1表示分別使用稱為L0參考列表、L1參考列表的參考圖片列表中記憶的參考圖片,都是使用1張參考圖片(單預(yù)測)。使用L0參考列表、L1參考列表的預(yù)測分別稱為L0預(yù)測、L1預(yù)測。Pred_Bi表示使用2張參考圖片(雙預(yù)測),使用2張L0參考列表和L1參考列表中記憶的參考圖片。預(yù)測矢量索引mvp_LX_idx表示預(yù)測矢量的索引,參考圖片索引refldxLX表示參考圖片列表中記憶的參考圖片的索引。另外,LX是不區(qū)分L0預(yù)測和L1預(yù)測時的描述方法,用L0、L1替換LX后分別表示對L0參考列表的參數(shù)和對L1參考列表的參數(shù)。例如,refldxL0是用于L0預(yù)測的參考圖片索引,refldxL1是用于L1預(yù)測的參考圖片索引,refldx(refldxLX)是不區(qū)分refldxL0和refldxL1時的表示。

合并索引merge_idx是表示在已處理塊中導(dǎo)出的候補(bǔ)(合并候補(bǔ))預(yù)測參數(shù)中,用哪個預(yù)測參數(shù)作為解碼對象塊的預(yù)測參數(shù)的索引。

(運(yùn)動矢量和變位矢量)

矢量mvLX中有運(yùn)動矢量和變位矢量(disparity vector、視差矢量)。運(yùn)動矢量是表示在某層某顯示時間的圖片中的塊的位置和不同顯示時間(例如,鄰接的離散時間)的同一層圖片中的對應(yīng)塊的位置差異的矢量。變位矢量是表示在某層某顯示時間的圖片中的塊的位置和同一顯示時間中的不同層的圖片中的對應(yīng)塊的位置差異的矢量。不同層的圖片有多種情況,如同一分辨率而品質(zhì)不同的圖片、不同視點的圖片、或不同分辨率的圖片等。特別地將對應(yīng)不同視點的圖片的變位矢量稱為視差矢量。以下的說明中,在不區(qū)別運(yùn)動矢量和變位矢量的情況,單純地稱之為矢量mvLX。與矢量mvLX相關(guān)的預(yù)測矢量、差分矢量分別稱為預(yù)測矢量mvpLX、差分矢量mvdLX。通過附屬于矢量的參考圖片索引refldxLX可區(qū)分矢量mvLX和差分矢量mvdLX是運(yùn)動矢量還是變位矢量。

另外,以上說明的參數(shù),可以單獨(dú)編碼也可以是多個參數(shù)混合編碼。當(dāng)多個參數(shù)混合編碼時,對參數(shù)值的組合分配索引,該分配的索引被編碼。如果參數(shù)可以從其它參數(shù)、已解碼信息中導(dǎo)出,則可省略該參數(shù)的編碼。

〔分層視頻解碼裝置〕

以下,參考圖19~圖21說明本實施例的分層視頻解碼裝置1的構(gòu)成。

(分層視頻解碼裝置的構(gòu)成)

以下說明本實施例相關(guān)的分層視頻解碼裝置1的構(gòu)成。圖19所示為本實施例的分層視頻解碼裝置1的構(gòu)成概要圖。分層視頻解碼裝置1根據(jù)外部提供的分層編碼數(shù)據(jù)DATA中包含的解碼對象的對象層集LayerSetTarget的層ID列表LayerIdListTarget、以及指定附屬于解碼對象層的最高子層的對象最高時域標(biāo)識符HighestTidTarget,對分層視頻編碼裝置2提供的分層編碼數(shù)據(jù)DATA進(jìn)行解碼,生成對象層集的各層的解碼圖像POUT#T。即,分層視頻解碼裝置1對對象層集中包含的各層圖片的編碼數(shù)據(jù),從最低的層ID開始到最高的層ID為止,按升序進(jìn)行解碼,生成其解碼圖像(解碼圖片)。換言之,即按對象層集的層ID列表LayerIdListTarget[0]…LayerldListTarget[N-1](N為對象層集中包含的層數(shù))的順序,對各層圖片的編碼數(shù)據(jù)進(jìn)行解碼。

圖19所示的分層視頻解碼裝置1的構(gòu)成中包含NAL解復(fù)用部11、以及對象層集圖片解碼部10。而對象層集圖片解碼部10的構(gòu)成中包含參數(shù)集解碼部12、參數(shù)集管理部13、圖片解碼部14和解碼圖片管理部15。NAL解復(fù)用部11中有比特流抽取部17。

分層編碼數(shù)據(jù)DATA中,除通過VCL生成的NAL以外,還有包含參數(shù)集(VPS、SPS、PPS)、SEI等的NAL。這些NAL相對于VCL NAL稱為非VCL NAL(non-VCL)。

概括地說,NAL解復(fù)用部11中的比特流抽取部17,就是根據(jù)構(gòu)成外部提供對象層集LayerSetTarget的層ID列表LayerIdListTarget、以及對象最高時域標(biāo)識符HighestTidTarget,進(jìn)行比特流抽取處理,從分層編碼數(shù)據(jù)DATA中,抽取通過由對象最高時域標(biāo)識符HighestTidTarget、以及對象層集LayerSetTarget的層ID列表LayerIdListTarget所決定的集合(稱為目標(biāo)集TargetSet)中包含的NAL單元所構(gòu)成的對象層集編碼數(shù)據(jù)DATA#T(BitstreamToDecode)。比特流抽取部17中與本發(fā)明關(guān)聯(lián)性大的處理將在后面詳細(xì)論述。

然后,NAL解復(fù)用部11,將由比特流抽取部17抽取的對象層集編碼數(shù)據(jù)DATA#T(BitstreamToDecode)進(jìn)行解復(fù)用,參考NAL單元中的NAL單元類型、層標(biāo)識符(層ID)、時域標(biāo)識符(時域ID),將對象層集中包含的NAL單元提供給對象層集圖片解碼部10。

對象層集圖片解碼部10,分別將所提供的對象層集編碼數(shù)據(jù)DATA#T中包含的NAL中的非VCL NAL提供給參數(shù)集解碼部12、將VCL NAL提供給圖片解碼部14。即對象層集圖片解碼部10將提供的NAL單元的頭(NAL單元頭)進(jìn)行解碼,根據(jù)解碼后的NAL單元頭中包含的NAL單元類型、層標(biāo)識符、以及時域標(biāo)識符,分別將non-VCL的編碼數(shù)據(jù)、VCL的編碼數(shù)據(jù)與解碼后的NAL單元類型、層標(biāo)識符、以及時域標(biāo)識符等一起提供給參數(shù)集解碼部12、圖片解碼部14。

參數(shù)集解碼部12,從輸入的非VCL NAL中對參數(shù)集、即VPS、SPS和PPS進(jìn)行解碼后提供給參數(shù)集管理部13。參數(shù)集解碼部12中與本發(fā)明關(guān)聯(lián)性大的處理將在后面詳細(xì)論述。

參數(shù)集管理部13,將解碼后的參數(shù)集按各參數(shù)集的標(biāo)識符,保管參數(shù)集的編碼參數(shù)。具體是,如果是VPS,按每個VPS標(biāo)識符(video_parameter_set_id)保管VPS的編碼參數(shù)。如果是SPS,按每個SPS標(biāo)識符(sps_seq_parameter_set_id)保管SPS的編碼參數(shù)。如果是PPS,按每個PPS標(biāo)識符(pps_pic_parameter_set_id)保管PPS的編碼參數(shù)。

參數(shù)集管理部13還將后述圖片解碼部14對圖片解碼時參考的參數(shù)集(Active參數(shù)集)的編碼參數(shù)提供給圖片解碼部14。具體是:首先,根據(jù)圖片解碼部14解碼的條帶頭SH中包含的Active PPS標(biāo)識符(slice_pic_parameter_set_id),指定Active PPS;然后,根據(jù)所指定的Active PPS中包含的Active SPS標(biāo)識符(pps_seq_parameter_set_id),指定Active SPS;最后,根據(jù)Active SPS中包含的Active VPS標(biāo)識符(sps_video_parameter_set_id),指定Active VPS。之后將所指定的Active PPS、Active SPS、Active VPS的編碼參數(shù)提供給圖片解碼部14。另外,指定圖片解碼時參考的參數(shù)集也被稱為”激活參數(shù)集”。例如,指定Active PPS、Active SPS、Active VPS分別稱為”激活PPS”、”激活SPS”、”激活VPS”。

圖片解碼部14,根據(jù)所輸入的VCL NAL、Active參數(shù)集(Active PPS、Active SPS、Active VPS)以及參考圖片,生成解碼圖片,提供給解碼圖片管理部15。所提供的解碼圖片保存在解碼圖片管理部15內(nèi)的緩存中。圖片解碼部14的詳細(xì)說明將將后述。

解碼圖片管理部15,將所輸入的解碼圖片保存在內(nèi)部的解碼圖片緩存(DPB:Decoded Picture Buffer)中,同時還決定參考圖片列表的生成和輸出圖片等。此外,解碼圖片管理部15還將DPB中記錄的解碼圖片按照既定的時間作為輸出圖片POUT#T向外部輸出。

(比特流抽取部17)

比特流抽取部17,根據(jù)構(gòu)成外部提供的對象層集LayerSetTarget的層ID列表LayerIdListTarget、以及對象最高時域標(biāo)識符HighestTidTarget,進(jìn)行比特流抽取處理,從輸入的分層編碼數(shù)據(jù)DATA中,去除(丟棄)由對象最高時域標(biāo)識符HighestTidTarget、以及對象層集LayerSetTarget的層ID列表LayerIdListTarget所決定的集合(稱為目標(biāo)集TargetSet)中不包含的NAL單元,抽取并輸出由目標(biāo)集TargetSet中包含的NAL單元構(gòu)成的對象層集編碼數(shù)據(jù)DATA#T(BitstreamToDecode)。

以下,將參考圖27概要說明本實施例相關(guān)的比特流抽取部17的動作。圖27所示為比特流抽取部17中以接入單元為單位的比特流抽取處理流程圖。

(SG101)比特流抽取部17按照圖6(b)所示的語法表,對提供來的對象NAL單元的NAL單元頭進(jìn)行解碼。即對NAL單元類型(nal_unit_type)、層標(biāo)識符(nuh_layer_id)、以及時域標(biāo)識符(nuh_temporal_id_plus1)進(jìn)行解碼。對象NAL單元的層標(biāo)識符nuhLayerId設(shè)置于“nuh_layer_id”、對象NAL單元的時域標(biāo)識符temporalId設(shè)置于“nuh_temporal_id_plus1-1”。

(SG102)根據(jù)圖7所示的nal_unit_type”和“Name of nal_unit_type”判斷對象NAL單元的NAL單元類型(nal_unit_type)是否是參數(shù)集。這里,為了滿足一致性條件CX1,判斷NAL單元類型是否是“VPS_NUT”(nal_unit_type==32)。即,當(dāng)NAL單元類型為視頻參數(shù)集時(SG102判斷為YES),進(jìn)入步驟SG103。除此以外的情況(SG102判斷為No),進(jìn)入步驟SG105。

(SG103)判斷對象NAL單元的層標(biāo)識符是否包含在目標(biāo)集內(nèi)。具體是:判斷構(gòu)成對象層集LayerSetTarget的層ID列表LayerIdListTarget中是否有與對象NAL單元的層標(biāo)識符相同的值。如果對象NAL單元的層標(biāo)識符存在于LayerIdListTarget中(SG103判斷為Yes),進(jìn)入步驟SG105。除此之外的情況(SG103判斷為No),即如果在LayerIdListTarget中不存在對象NAL單元的層標(biāo)識符,進(jìn)入步驟SG104。

(SG104)在LayerIdListTarget內(nèi)將對象NAL單元的層標(biāo)識符更新為最低的層標(biāo)識符。即更新為“nuh_layer_id=LayerldListTarget[0]”。

(SG105)根據(jù)構(gòu)成對象層集LayerSetTarget的層的層ID列表LayerIdListTarget、以及對象最高時域標(biāo)識符判斷對象NAL單元的層標(biāo)識符、時域標(biāo)識符是否包含在目標(biāo)集TargetSet中。具體是:判斷是否滿足以下(1)~(2)的條件,至少滿足其中一個條件(為真)時(SG105判斷為Yes),進(jìn)入步驟SG106。除此以外的情況(SG105判斷為No),進(jìn)入步驟SG107。

(1)如果”構(gòu)成對象層集LayerSetTarget的層ID列表LayerIdListTarget中,有與對象NAL單元的層標(biāo)識符相同的值”,判斷為真,除此以外的情況(構(gòu)成對象層集LayerSetTarget的層ID列表LayerIdListTarget中沒有與對象NAL單元的層標(biāo)識符相同的值),判斷為偽。

(2)如果”對象NAL單元的時域標(biāo)識符在對象最高時域標(biāo)識符HighestTidTarget以下(含相同)”時,判斷為真,除此以外的情況(對象NAL單元的時域標(biāo)識符比對象最高時域標(biāo)識符HighestTidTarget大),判斷為偽。

(SG106)丟棄對象NAL單元。即,因為對象NAL單元沒有包含在目標(biāo)集TargetSet中,比特流抽取部17從輸入的分層編碼數(shù)據(jù)DATA中去除對象NAL單元。

(SG107)判斷同一接入單元中是否有未處理的NAL單元。如果有未處理的NAL單元(SG107判斷為Yes),為了繼續(xù)以構(gòu)成對象接入單元的NAL單元為單位進(jìn)行比特流抽取,進(jìn)入步驟SG101。除此以外的情況(SG107判斷為No),進(jìn)入步驟SG10A。

(SG10A)判斷在輸入的分層編碼數(shù)據(jù)DATA中是否有對象接入單元的下一個接入單元。如果有下一個接入單元(SG10A判斷為Yes),為了繼續(xù)下一個接入單元的處理,進(jìn)入步驟SG101。如果沒有下一個接入單元(SG10A判斷為No),結(jié)束比特流抽取處理。

以上說明了實施例1的比特流抽取部17的動作,但不僅限于上述步驟,在實施可能的范圍內(nèi),可以變更步驟。

按照以上說明的比特流抽取部17,根據(jù)構(gòu)成外部提供對象層集LayerSetTarget的層ID列表LayerIdListTarget、以及對象最高時域標(biāo)識符HighestTidTarget,進(jìn)行比特流抽取處理,從輸入的分層編碼數(shù)據(jù)DATA中,去除(丟棄)由對象最高時域標(biāo)識符HighestTidTarget、以及對象層集LayerSetTarget的層ID列表LayerIdListTarget所決定的集合(稱為目標(biāo)集TargetSet)中不包含的NAL單元,抽取并輸出由目標(biāo)集TargetSet中包含的NAL單元構(gòu)成的對象層集編碼數(shù)據(jù)DATA#T(BitstreamToDecode)。并且,上述比特流抽取部17具有以下特征:如果視頻參數(shù)集的層標(biāo)識符不包含在前述目標(biāo)集TargetSet中,則在目標(biāo)集TargetSet內(nèi)將前述視頻參數(shù)集的層標(biāo)識符更新為最低的層標(biāo)識符(改寫)。

另外,上述比特流抽取部17的動作雖然有”構(gòu)成輸入的分層編碼數(shù)據(jù)DATA的AU中,最多包含1個具有AU內(nèi)最低層標(biāo)識符的VPS”的前提條件,但并不僅限于此。例如,AU內(nèi)也可以包含具有AU內(nèi)最低層標(biāo)識符以外的層標(biāo)識符的VPS。這種情況,比特流抽取部17在步驟SG104中,作為層標(biāo)識符更新對象的VPS,可以是在目標(biāo)集TargetSet中不包含的層標(biāo)識符、最低的層標(biāo)識符。通常因為層標(biāo)識符“nuhLayerId=0”的VPS為具有最低層標(biāo)識符的VPS,所以將該VPS作為更新對象,丟棄除此以外的目標(biāo)集TargetSet中不包含的VPS。

通過以上本實施例相關(guān)的比特流抽取部17,可防止在進(jìn)行了比特流抽取后的比特流上,層集內(nèi)不包含VPS的問題。即,可防止從某層集的比特流中、通過比特流抽取處理生成的、只包含該層集子集的層集的比特流上出現(xiàn)不能解碼的層。

(參數(shù)集解碼部12)

參數(shù)集解碼部12,從輸入的對象層集編碼數(shù)據(jù)中,對對象層集解碼用的參數(shù)集(VPS、SPS、PPS)進(jìn)行解碼。解碼后的參數(shù)集的編碼參數(shù)被提供給參數(shù)集管理部13,按各參數(shù)集的每個標(biāo)識符進(jìn)行記錄。

通常,參數(shù)集的解碼按既定的語法表進(jìn)行。即,按語法表定義的步驟從編碼數(shù)據(jù)讀出比特串,對語法表中包含的語法元素的值進(jìn)行解碼。也可以根據(jù)需要導(dǎo)出基于已解碼的語法元素值導(dǎo)出的變量并包含在輸出的參數(shù)集中。因此,從參數(shù)集解碼部12輸出的參數(shù)集可以用編碼數(shù)據(jù)中包含的參數(shù)集(VPS、SPS、PPS)的相關(guān)語法的語法元素值及通過該語法元素值導(dǎo)出的變量的集合來表現(xiàn)。

以下重點說明參數(shù)集解碼部12中解碼用的語法表中與本發(fā)明關(guān)聯(lián)性大的語法表。

(視頻參數(shù)集VPS)

視頻參數(shù)集VPS,是用于定義多層通用參數(shù)的參數(shù)集,作為識別各VPS用的VPS標(biāo)識符、層信息,包含了最大層數(shù)信息、層集信息、以及層間依賴信息。

VPS標(biāo)識符是用于識別各VPS的標(biāo)識符,作為語法元素“video_parameter_set_id”(圖12的SYNVPS01)包含在VPS中。通過后述的SPS中包含的Active VPS標(biāo)識符(sps_video_parameter_set_id)所特定的VPS,在對象層集內(nèi)的對象層編碼數(shù)據(jù)進(jìn)行解碼處理時被參考。

最大層數(shù)信息是表示分層編碼數(shù)據(jù)內(nèi)的最大層數(shù)的信息,作為語法元素“vps_max_layers_minus1”(圖12的SYNVPS02)包含在VPS中。分層編碼數(shù)據(jù)內(nèi)的最大層數(shù)(以下稱最大層數(shù)MaxNumLayers)設(shè)置在(vps_max_layers_minus1+1)的值中。另外,此處所定義的最大層數(shù)是除時域可分級以外的其它可分級(SNR可分級、空域可分級、視點可分級等)層的最大層數(shù)。

最大子層數(shù)信息是表示分層編碼數(shù)據(jù)內(nèi)的最大子層數(shù)的信息,作為語法元素“vps_max_sub_layers_minus1”(圖12的SYNVPS03)包含在VPS中。分層編碼數(shù)據(jù)內(nèi)的最大子層數(shù)(以下稱最大子層數(shù)MaxNumSubLayers)設(shè)置在(vps_max_sub_layers_minus1+1)的值中。另外,此處定義的最大子層數(shù)是指與時域可分級相關(guān)層的最大層數(shù)。

最大層標(biāo)識符信息是表示分層編碼數(shù)據(jù)內(nèi)包含的最高層的層標(biāo)識符(層ID)信息,作為語法元素“vps_max_layer_id”(圖12的SYNVPS04)包含在VPS中。換言之,是分層編碼數(shù)據(jù)內(nèi)包含的、NAL單元的層ID(nuh_layer_id)的最大值。

層集數(shù)信息是表示分層編碼數(shù)據(jù)中包含的層集總數(shù)的信息。作為語法元素“vps_num_layer_sets_minus1”(圖12的SYNVPS05)包含在VPS中。分層編碼數(shù)據(jù)內(nèi)的層集數(shù)(以下稱層集數(shù)NumLayerSets)設(shè)置在(vps_num_layer_sets_minus1+1)的值中。

層集信息是表示構(gòu)成分層編碼數(shù)據(jù)中包含的層集的層的集合的列表(以下稱層ID列表LayerSetLayerIdList),它通過VPS解碼。VPS中,有表示第j層(層標(biāo)識符nunLayerIdJ)是否包含在第i層集中的語法元素“l(fā)ayer_id_included_flag[i][j]”(圖12的SYNVPS06),層集由該語法元素值為1的層標(biāo)識符的層構(gòu)成。即構(gòu)成層集i的層j包含在層ID列表LayerSetLayerIdList[i]中。

VPS擴(kuò)展數(shù)據(jù)有無標(biāo)記“vps_extension_flag”(圖12的SYNVPS07)是表示VPS是否還包含了VPS擴(kuò)展數(shù)據(jù)vps_extension()(圖12的SYNVPS08)的標(biāo)記。另外,本說明書中的”表示是否為XX的標(biāo)記”、或”XX有無標(biāo)記”的表述,1表示“是XX”、0表示“非XX”,邏輯否定和邏輯積等中1為真、0為偽(以后相同)。但在實際的裝置或方法中,也可以用其它值表示真、偽。

層間依賴信息從VPS中包含的VPS擴(kuò)展數(shù)據(jù)(vps_extension())進(jìn)行解碼。關(guān)于VPS擴(kuò)展數(shù)據(jù)中包含的層間依賴信息,參考圖13進(jìn)行說明。圖13所示為VPS擴(kuò)展解碼時所參考的語法表中與層間依賴信息相關(guān)的部分。

VPS擴(kuò)展數(shù)據(jù)(vps_extension())中,作為層間依賴信息包含了直接依賴標(biāo)記“direct_dependency_flag[i][j]”(圖13的SYNVPS0A)。直接依賴標(biāo)記direct_dependency_flag[i][j]表示第i層是否直接依賴第j層,直接依賴時的值為1,不直接依賴時的值為0。當(dāng)?shù)趇層直接依賴第j層時,意味著以第i層為對象層進(jìn)行解碼處理時,有可能從對象層直接參考第j層的相關(guān)參數(shù)集、解碼圖片和相關(guān)的已解碼語法元素等。反之,當(dāng)?shù)趇層不直接依賴第j層時,意味著以第i層為對象層進(jìn)行解碼處理時,不直接參考第j層的相關(guān)參數(shù)集、解碼圖片和相關(guān)的已解碼語法元素等。換言之,第i層對第j層的直接依賴標(biāo)記為1時,第j層為第i層的直接參考層。特定層的直接參考層的層的集合、即對應(yīng)的直接依賴標(biāo)記值為1的層的集合稱為直接依賴層集。另外,因為i=0、即第0層(基本層),與第j層(增強(qiáng)層)沒有直接的依賴關(guān)系,所以直接依賴標(biāo)記"direct_depedency_flag[i][j]"的值為0,正如圖13所示,包含SYNVPS0A的i循環(huán)從1開始,對第0層(基本層)的第j層(增強(qiáng)層)的直接依賴標(biāo)記的解碼/編碼可以省略。

這里,表示對第i層(層標(biāo)識符iNuhLId=nunLayerIdI)的直接參考層集的參考層ID列表RefLayerId[iNuhLId][]、以及作為第i層的參考層的第j層是直接參考層集中按升序排列的第幾號元素的直接參考層IDX列表DirectRefLayerIdx[iNuhLId][],可通過后述的公式導(dǎo)出。另外,參考層ID列表RefLayerId[][]是二維數(shù)組,數(shù)組的行下標(biāo)是對象層(層i)的層標(biāo)識符、數(shù)組的列下標(biāo)是直接參考層集中按升序排列的第k參考層的層標(biāo)識符。直接參考層IDX列表DirectRefLayerIdx[][]是二維數(shù)組,數(shù)組的行下標(biāo)是對象層(層i)的層標(biāo)識符,數(shù)組的列下標(biāo)表示是直接參考層集中按升序排列的第幾元素的索引(直接參考層IDX)。

通過以下偽代碼導(dǎo)出上述的參考層ID列表、以及直接參考層IDX列表。第i層的層標(biāo)識符nuhLayerId,在VPS上用語法元素“l(fā)ayer_id_in_nuh[i]”(圖13中未表示)表示。以下,為了縮短表示,將第i層的層標(biāo)識符“l(fā)ayer_id_in_nuh[i]”記為“nuhLId#i”,“l(fā)ayer_id_in_nuh[j]”記為“nuhLId#j”。此外,陣列NumDirectRefLayers[]表示層標(biāo)識符iNuhLId的層參考的直接參考層數(shù)。

(參考層ID列表、以及直接參考層IDX列表的導(dǎo)出)

通過以下的偽代碼導(dǎo)出參考層ID列表、以及直接參考層IDX列表。

for(i=0;i<vps_max_layers_minus1+1;i++){

iNuhLId=nuhLId#i;

NumDirectRefLayers[iNuhLId]=0;

for(j=0;j<i;j++){

if(direct_dependency_flag[i][j]){

RefLayerId[iNuhLId][NumDirectRefLayers[iNuhLId]]=nuhLId#j;

NumDirectRefLayers[iNuhLId]++;

DirectRefLayerIdx[iNuhLId][nuhLId#j]=NumDirectRefLayers[iNuhLId]-1;

}

}//end of loop on for(j=0;j<i;i++)

}//end of loop on for(i=0;i<vps_max_layers_minus1+1;i++)

可用如下步驟表示上述偽代碼。

(SL01)導(dǎo)出與第i層相關(guān)的參考層ID列表、以及直接參考層IDX列表的循環(huán)的始點。循環(huán)開始前,將變量i初始化為0。當(dāng)變量i小于層數(shù)“vps_max_layers_minus1+1”時執(zhí)行循環(huán)內(nèi)的處理,每執(zhí)行1次循環(huán)內(nèi)的處理,變量i加“1”。

(SL02)在變量iNuhLid中設(shè)置第i層的層標(biāo)識符nuhLID#i。并且將層標(biāo)識符nuhLID#i的直接參考層數(shù)NumDirectRefLyaers[iNuhLID]設(shè)置為0。(SL03)將第j層作為向第i層的參考層ID列表以及直接參考層IDX列表中追加元素的循環(huán)的始點。循環(huán)開始前,變量j初始化為0。在變量j(第j層)未達(dá)第i層(j<i)時執(zhí)行循環(huán)內(nèi)的處理。每執(zhí)行1次循環(huán)內(nèi)的處理,變量j加“1”。

(SL04)判斷第j層對第i層的直接依賴標(biāo)記(direct_dependency_flag[i][j])。當(dāng)直接依賴標(biāo)記為1時,進(jìn)入步驟SL05,執(zhí)行步驟SL05~SL07的處理。當(dāng)直接依賴標(biāo)記為0時,省略步驟SL05~SL07的處理,進(jìn)入SL0A。

(SL05)在參考層ID列表RefLayerId[iNuhLId][]的第NumDirectRefLayers[iNuhLId]元素中設(shè)置層標(biāo)識符nuhLID#j。

即,RefLayerld[iNuhLId][NumDirectRefLayers[iNuhLId]]=nuhLld#j;

(SL06)直接參考層數(shù)NumDirectRefLayers[iNuhLId]的值加“1”。即,NumDirectRefLayers[iNuhLId]++;

(SL07)在直接參考層IDX列表DirectRefLayerIdx[iNuhLid[]的第nuhLId#j元素中設(shè)置“直接參考層數(shù)-1"的值,作為直接參考層索引(直接參考層IDX)。即,

DirectRefLayerIdx[iNuhLId][nuhLId#j]=NumDirectRefLayers[iNuhLId]-1;

(SL0A)將第j層作為元素追加到第i層的參考層ID列表、以及直接參考層IDX列表中的循環(huán)的終點。

(SL0B)導(dǎo)出第i層的參考層ID列表、以及直接參考層IDX列表的循環(huán)的終點。

使用以上說明的參考層ID列表、以及直接參考層IDX列表,可以掌握直接參考層集的第k層的層ID是全層中的第幾元素(直接參考層IDX)、反之直接參考層IDX是直接參考層集的第幾元素。另外,導(dǎo)出流程不僅限定于上述流程,可在實施可能的范圍內(nèi)變更。

層間依賴信息中包含了表示后述層依賴類型(direct_dependency_type[i][j])位長M的語法元素“direct_dependency_len_minusN"(層依賴類型位長)(圖13的SYNVPS0C)。這里的N是根據(jù)層依賴類型的種類總數(shù)決定的值,是大于等于2的整數(shù)。例如,位長M的最大值為32、取N=2時,direct_dependency_type[i][j]的值域為0~(2^32-2)。如果更通用地用位長M、及層依賴類型總數(shù)所決定的N表示,則direct_dependency_type[i][j]的值域為0~(2^M-N)。

層間依賴信息中包含了表示第i層與第j層間參考關(guān)系的層依賴類型的語法元素“direct_dependency_type[i][j]”(圖13的SYNVPS0D)。具體是,當(dāng)直接依賴標(biāo)記direct_dependency_flag[i][j]為1時,用層依賴類型(DirectDepType[i][j]=direct_dependency_type[i][j]+1)的各位的值表示第i層的參考層的第j層的層依賴類型的有無。例如,表示層依賴類型有無的標(biāo)記中,有表示層間圖像預(yù)測有無的標(biāo)記(SamplePredEnabledFlag;層間圖像預(yù)測有無標(biāo)記)、層間運(yùn)動預(yù)測有無的標(biāo)記(MotionPredEnabledFlag;層間運(yùn)動預(yù)測有無的標(biāo)記)、non-VCL依賴有無的標(biāo)記(NonVCLDepEnabledFlag;non-VCL依賴有無的標(biāo)記)。另外,non-VCL依賴有無的標(biāo)記,表示non-VCL NAL單元中包含的頭信息(SPS、PPS等參數(shù)集)的相關(guān)層間依賴關(guān)系的有無。例如,包含后述的層間參數(shù)集共享(共享參數(shù)集)的有無、層間參數(shù)集內(nèi)的部分語法預(yù)測(例如,分級列表信息(量化矩陣)等)(參數(shù)集間的語法預(yù)測,或稱為參數(shù)集間預(yù)測)的有無。用語法元素“direct_dependency_type[i][j]”編碼的值,在圖14的例中是層依賴類型的值為-1、即為“DirectDepType[i][j]-1”的值。

此處,用圖14(a)表示本實施例相關(guān)的層依賴類型的值(DirectDepType[i][j]=direct_dependency_type[i][j]+1)和層依賴類型的類型對應(yīng)關(guān)系的一例。如圖14(a)所示,層依賴類型最低有效位值(0位)表示層間圖像預(yù)測的有無,從最低有效位到第1位的值表示層間運(yùn)動預(yù)測的有無,從最低有效位到第(N-1)位的值表示non-VCL依賴的有無。另外,從最低有效位開始的第N位到最高有效位(第M-1位)的各位為依賴類型的擴(kuò)展位。

根據(jù)下式導(dǎo)出對象層i(層標(biāo)識符iNuhLId=nunLayerIdI)的參考層j的各層依賴類型有無的標(biāo)記。

SamplePredEnabledFlag[iNuhLId][j]=((direct_dependency_type[i][j]+1)&1);

MotionPredEnabledFlag[iNuhLId][j]=((direct_dependency_type[i][j]+1)&2)>>1;

NonVCLDepEnabledFlag[iNuhLid][j]=((direct_dependency_type[i][j]+1)&(1<<(N-1)))>>(N-1);

或用變量DirectDepType[i][j]代替(direct_dependency_type[i][j]+1),通過下式表示。SamplePredEnabledFlag[iNuhLId][j]=((DirectDepType[i][j])&1);

MotionPredEnabledFlag[iNuhLId][j]=((DirectDepType[i][j])&2)>>1;

NonVCLDepEnabledFlag[iNuhLid][j]=((DirectDepType[i][j])&

(1<<(N-1)))>>(N-1);

圖14(a)的例中,雖然將第(N-1)位用于non-VCL依賴類型(non-VCL依賴有無標(biāo)記),但并不僅限于此。例如,當(dāng)N=3時,也可用從最低有效位開始的第2位表示non-VCL依賴類型的有無。而且,表示各依賴類型有無的標(biāo)記的位置在可實施范圍內(nèi)可變更。上述各有無標(biāo)記,也可以在上述的(參考層ID列表、以及直接參考層IDX列表的導(dǎo)出)中,通過執(zhí)行步驟SL08導(dǎo)出。另外,導(dǎo)出步驟不僅限于上述步驟,在可實施范圍內(nèi)可變更。

(間接依賴標(biāo)記、依賴標(biāo)記的導(dǎo)出)

此處,表示第i層是否間接依賴第j層(第j層是否是第i層的間接參考層)的依賴關(guān)系的間接依賴標(biāo)記(IndirectDependencyFlag[i][j]),可參考直接依賴標(biāo)記(direct_dependency_flag[i][j]),通過后述偽代碼導(dǎo)出。同樣,表示第i層是直接依賴第j層(直接依賴標(biāo)記為1時,第j層也稱為第i層的直接參考層)還是間接依賴第j層(當(dāng)間接依賴標(biāo)記為1時,第j層也稱為第i層的間接參考層)的依賴關(guān)系的依賴標(biāo)記(DependencyFlag[i][j]),可參考直接依賴標(biāo)記(direct_dependency_flag[i][j])、以及上述間接依賴標(biāo)記(IndirectDepdendencyFlag[i][j]),通過后述偽代碼導(dǎo)出。在此,通過圖31對間接參考層進(jìn)行說明。圖31中,層數(shù)為N+1,第j層(稱為圖31上的L#j、層j)是比第i層(稱為圖31上的L#i、層i)低的層(j<i)。層k(圖31上的L#k)(j<k<i)是比層j高、比層i低的層。圖31中,層k直接依賴層j(圖31中的實線箭頭、層j是層k的直接參考層、direct_dependency_flag[k][j]==1),層i直接依賴層k(層k是層j的直接參考層、direct_dependency_flag[i][k]==1)。此時,因為層i通過層k間接依賴層j(圖31中的虛線箭頭),所以層j稱為層i的間接參考層。換言之,當(dāng)層i通過1層或多層k(i<k<j)間接依賴層j時,層j為層i的間接參考層。

另外,間接依賴標(biāo)記lndirectDependencyFLag[i][j]表示第i層是否間接依賴第j層,間接依賴時的值為1,不間接間接依賴時的值為0。這里,當(dāng)?shù)趇層間接依賴第j層時,意味著以第i層為對象層執(zhí)行解碼處理時,第j層的相關(guān)參數(shù)集、解碼圖片以及相關(guān)的已解碼語法元素等可能被對象層間接參考。反之,當(dāng)?shù)趇層不間接依賴第j層時,意味著以第i層為對象層執(zhí)行解碼處理時,第j層的相關(guān)參數(shù)集、解碼圖片以及相關(guān)的已解碼語法元素不會被間接參考。也就是說,當(dāng)?shù)趇層對第j層的間接依賴標(biāo)記為1時,第j層可能成為第i層的間接參考層??沙蔀樘囟▽拥拈g接參考層的層的集合、即對應(yīng)的間接依賴標(biāo)記值為1的層的集合稱為間接依賴層集。另外,i=0、即第0層(基本層)因為與第j層(增強(qiáng)層)之間沒有間接依賴關(guān)系,間接依賴標(biāo)記“IndirectDepedencyFlag[i][j]”的值為0,對第0層(基本層)的第j層(增強(qiáng)層)間接依賴標(biāo)記的導(dǎo)出可以省略。

依賴標(biāo)記DependencyFLag[i][j]表示第i層是否依賴第j層,依賴時的值為1,不依賴時的值為0。另外,如果沒有特別言明與依賴標(biāo)記DependencyFLag[i][j]相關(guān)的參考或依賴,都包含直接和間接(直接參考、間接參考、直接依賴、間接依賴)兩方面。此處,當(dāng)?shù)趇層依賴第j層時,意味著以第i層為對象層執(zhí)行解碼處理時,第j層的相關(guān)參數(shù)集、解碼圖片和相關(guān)的已解碼語法元素等可能被對象層參考。反之,當(dāng)?shù)趇層不依賴第j層時,意味著以第i層為對象層執(zhí)行解碼處理時,第j層的相關(guān)參數(shù)集、解碼圖片和相關(guān)的已解碼語法元素不被參考。也就是說,當(dāng)?shù)趇層對第j層的依賴標(biāo)記為1時,第j層可能成為第i層的直接參考層,或間接參考層??沙蔀樘囟▽拥闹苯訁⒖紝踊蜷g接參考層的層的集合,即對應(yīng)依賴標(biāo)記值為1的層的集合稱為依賴層集。另外,因為i=0、即第0層(基本層)與第j層(增強(qiáng)層)沒有依賴關(guān)系,依賴標(biāo)記“DependencyFLag[i][j]”的值為0,所以對第0層(基本層)的第j層(增強(qiáng)層)的依賴標(biāo)記的導(dǎo)出可以省略。

(偽代碼)

for(i=0;i<vps_max_layers_minus1+1;i++){

for(j=0;j<i;j++){

IndirectDependencyFlag[i][j]=0;

DependencyFlag[i][j]=0;

for(k=j(luò)+1;k<i;k++){

if(direct_dependency_flag[k][j]&&direct_dependency_flag[i][k]&&!direct_dependency_flag[i][j]){

IndirectDependencyFlag[i][j]=1;

}

}

DependencyFlag[i][j]=(direct_dependency_flag[i][j]|IndirectDependencyFlag[i][j]);

}//end of loop on for(j=0;j<i;i++)

}//end of loop on for(i=0;i<vps_max_layers_minus1+1;i++)

可用如下步驟表示上述偽代碼。

(SN01)導(dǎo)出第i層的相關(guān)間接依賴標(biāo)記、以及依賴標(biāo)記的循環(huán)的始點。循環(huán)開始前,將變量i初始化為0。當(dāng)變量i小于層數(shù)“vps_max_layers_minus1+1”時執(zhí)行循環(huán)內(nèi)的處理,每執(zhí)行1次循環(huán)內(nèi)的處理,變量i加“1”。

(SN02)導(dǎo)出第i層和第j層的間接依賴標(biāo)記、以及依賴標(biāo)記的循環(huán)的始點。循環(huán)開始前,將變量j初始化為0。當(dāng)變量j(第j層)小于第i層(j<i)時執(zhí)行循環(huán)內(nèi)的處理,每執(zhí)行1次循環(huán)內(nèi)的處理,變量j加“1”。

(SN03)間接依賴標(biāo)記lndirectDependencyFLag[i][]的第j元素的值設(shè)置為0、依賴標(biāo)記DependencyFLag[i][]的第j元素的值設(shè)置為0。即,IndirectDependencyFlag[i][j]=0、DependencyFlag[i][j]=0。

(SN04)對第j層是否是對第i層的間接參考層進(jìn)行搜索的循環(huán)的始點。循環(huán)開始前,將變量k初始化為“j+1”。變量k值小于變量i時執(zhí)行循環(huán)內(nèi)的處理,每執(zhí)行1次循環(huán)內(nèi)的處理,變量k加“1”。

(SN05)根據(jù)以下的(1)~(3)條件,判斷第j層是否是第i間接參考層。

(1)判斷第j層是否是第k直接參考層。具體是,當(dāng)?shù)趈層對第k層的直接依賴標(biāo)記(direct_dependency_flag[k][j])為1時,則判斷為真(是直接參考層),如果直接依賴標(biāo)記為0(不是直接參考層),則判斷為偽。

(2)判斷第k層是否是第i直接參考層。具體是,當(dāng)?shù)趉層對第i層的直接依賴標(biāo)記(direct_dependency_flag[i][k])為1時,則判斷為真(是直接參考層),如果直接依賴標(biāo)記為0(不是直接參考層),則判斷為偽。

(3)判斷第j層不是第i直接參考層。具體是,如果第j層對第i層的直接依賴標(biāo)記(direct_dependency_flag[i][j])為0(不是直接參考層),則判斷為真,如果直接依賴標(biāo)記為1(是直接參考層),則判斷為偽。

當(dāng)上述(1)~(3)條件全部為真時(即,第j層對第k層的直接依賴標(biāo)記direct_dependency_flag[k][j]為1且第k層對第i層的直接依賴標(biāo)記direct_dependency_flag[i][k]為1且第j層對第i層的直接依賴標(biāo)記direct_dependency_flag[i][j]為0),進(jìn)入步驟SN06。除此以外的情況(上述(1)~(3)的條件中有任何一項為偽時,即第j層對第k層的直接依賴標(biāo)記direct_dependency_flag[k][j]為0、或第k層對第i層的直接依賴標(biāo)記direct_dependency_flag[i][k]為0、或第j層對第i層的直接依賴標(biāo)記direct_dependency_flag[i][j]為1),省略步驟SN06的處理,進(jìn)入步驟SN07。

(SN06)當(dāng)上述(1)~(3)條件全部為真時,判斷為第j層是對第i層的間接參考層,將間接依賴標(biāo)記lndirectDependencyFlag[i][]的第j元素的值設(shè)為1。即,IndirectDependencyFlag[i][j]=1。

(SN07)對第j層是否是對第i層的間接參考層進(jìn)行搜索的循環(huán)的終點。

(SN08)根據(jù)直接依賴標(biāo)記(direct_dependency_flag[i][j])、以及間接依賴標(biāo)記(IndirectDependencyFlag[i][j]),設(shè)置依賴標(biāo)記(DependencyFlag[i][j])的值。具體是,將直接依賴標(biāo)記(direct_dependency_flag[i][j])的值和間接依賴標(biāo)記(direct_dependency_flag[i][j])的值的邏輯和作為依賴標(biāo)記(DependencyFlag[i][j])的值。即通過以下公式導(dǎo)出。如果直接依賴標(biāo)記的值為1或間接依賴標(biāo)記的值為1,則依賴標(biāo)記的值為1。除此以外的情況(直接依賴標(biāo)記的值為0、且間接依賴標(biāo)記的值為0),則依賴標(biāo)記的值為0。另外,下述導(dǎo)出公式,僅為一例,依賴標(biāo)記中設(shè)置的值可在相同范圍內(nèi)變更。DependencyFlag[i][j]=(direct_dependency_flag[i][j]|IndirectDependencyFlag[i][j]);

(SN0A)導(dǎo)出第i層和第j層的間接依賴標(biāo)記、以及依賴標(biāo)記的循環(huán)的終點。

(SN0B)導(dǎo)出第i層的間接依賴標(biāo)記、以及依賴標(biāo)記的循環(huán)的終點。

如以上的說明,通過導(dǎo)出表示第i層與第j層間接依賴時的依賴關(guān)系的間接依賴標(biāo)記(IndirectDependencyFlag[i][j]),可把握第j層是否是第i層的間接參考層。

通過導(dǎo)出表示第i層與第j層依賴時(當(dāng)直接依賴標(biāo)記為1、或間接依賴標(biāo)記為1時)的依賴關(guān)系的依賴標(biāo)記(DependencyFlag[i][j]),可把握第j層是第i層的直接參考層還是間接參考層。另外,導(dǎo)出流程不僅限定于上述流程,在實施可能的范圍內(nèi)可變更。例如,間接依賴標(biāo)記、依賴標(biāo)記也可通過下面的偽代碼導(dǎo)出。

(偽代碼)

//derive indirect reference layers of layer i

for(i=2;i<vps_max_layers_minus1+1;i++){

for(k=1;k<i;k++){

for(j=0;j<k;j++){

if((direct_dependency_flag[k][j]||IndirectDependencyFlag[k][j])

direct_dependency_flag[i][k]&&!direct_dependency_flag[i][j]){

IndirectDependencyFlag[i][j]=1;

}

}//end of loop on for(j=0;j<k;j++)

}//end of loop on for(k=1;k<i;k++)

}//end of loop on for(i=2;i<vps_max_layers_minus1+1;i++)

//derive dependent layers(direct or indirect reference layers)of layer i

for(i=0;i<vps_max_layers_minus1+1;i++){

for(j=0;j<i;j++){

DependencyFlag[i][j]=(direct_dependency_flag[i][j]|IndirectDependencyFlag[i][j]);

}//end of loop on for(j=0;j<i;i++)

}//end of loop on for(i=0;i<vps_max_layers_minus1+1;i++)

可用如下步驟表示上述偽代碼。另外,步驟SO01開始前,間接依賴標(biāo)記IndirectDependencyFlag[][]、以及依賴標(biāo)記DependencyFlga[][]的全部元素的值已經(jīng)初始化為0。

(SO01)導(dǎo)出第i層(層i)的間接依賴標(biāo)記的循環(huán)的始點。循環(huán)開始前,將變量i初始化為2。當(dāng)變量i小于層數(shù)“vps_max_layers_minus1+1”時執(zhí)行循環(huán)內(nèi)的處理,每執(zhí)行1次循環(huán)內(nèi)的處理,變量i加“1”。另外,變量i從2開始,是因為發(fā)生間接參考層的層數(shù)在3層以上(含3)。

(SO02)比第i層(層i)低、比第j層(層j)高的第k層(層k)(j<k<i)的相關(guān)循環(huán)的始點。循環(huán)開始前,將變量i初始化為1。當(dāng)變量k(層k)小于層i(k<i)時執(zhí)行循環(huán)內(nèi)的處理,每執(zhí)行1次,變量k加“1”。另外,變量k從1開始,是因為發(fā)生間接參考的層數(shù)在3層以上(含3)。

(SO03)對層j是否是層i的間接參考層進(jìn)行搜索的循環(huán)的始點。循環(huán)開始前,將變量j初始化為0。當(dāng)變量j(層j)小于層k(j<k)時執(zhí)行循環(huán)內(nèi)的處理,每執(zhí)行1次循環(huán)內(nèi)的處理,變量j加“1”。

(SO04)根據(jù)以下的(1)~(3)條件,判斷層j是否是層i的間接參考層。

(1)判斷層j是否是層k的直接參考層或間接參考層。具體是,當(dāng)層j對層k的直接依賴標(biāo)記(direct_dependency_flag[k][j])為1、或?qū)觠對層k的間接依賴標(biāo)記(IndirectDependencyFlag[k][j])為1時,則判斷為真(是直接參考層或間接參考層)。如果直接依賴標(biāo)記為0(不是直接參考層)且間接依賴標(biāo)記為0(不是間接參考層),則判斷為偽。

(2)判斷層k是否是層i的直接參考層。具體是,當(dāng)層k對層i的直接依賴標(biāo)記(direct_dependency_flag[i][k])為1時,則判斷為真(是直接參考層),如果直接依賴標(biāo)記為0(不是直接參考層),則判斷為偽。

(3)判斷層j不是層i的直接參考層。具體是,當(dāng)層j對層i的直接依賴標(biāo)記(direct_dependency_flag[i][j])為0(不是直接參考層)時,則判斷為真,如果直接依賴標(biāo)記為1(是直接參考層),則判斷為偽。

當(dāng)上述(1)~(3)的條件全部為真時(即(層j對層k的直接依賴標(biāo)記為1或間接依賴標(biāo)記為1)且層對層i的直接依賴標(biāo)記direct_dependency_flag[i][k]為1且層對層i的直接依賴標(biāo)記direct_dependency_flag[i][j]為0),進(jìn)入步驟SO05。除此以外的情況(上述(1)~(3)的條件中有任何一項為偽時,即層j對層k的直接依賴標(biāo)記為0且間接依賴標(biāo)記為0)、或?qū)訉觟的直接依賴標(biāo)記direct_dependency_flag[i][k]為0、或?qū)訉觟的直接依賴標(biāo)記direct_dependency_flag[i][j]為1),省略步驟SO05的處理,進(jìn)入步驟SO06。

(SO05)當(dāng)上述(1)~(3)的條件全部為真時,判斷為層j是層i的間接參考層,將間接依賴標(biāo)記IndirectDependencyFlag[i][]的第j元素的值設(shè)為1。即,IndirectDependencyFlag[i][j]=1。

(SO06)對層j是否為層i的間接參考層進(jìn)行搜索的循環(huán)的終點。

(SO07)比層i低、比層j高的層k(j<k<i)的循環(huán)的終點。

(SO08)導(dǎo)出層i間接依賴標(biāo)記的循環(huán)的終點。

(S00A)導(dǎo)出層i的依賴標(biāo)記的循環(huán)的始點。

循環(huán)開始前,將變量i初始化為0。當(dāng)變量i小于層數(shù)“vps_max_layers_minus1+1”時執(zhí)行循環(huán)內(nèi)的處理,每執(zhí)行1次循環(huán)內(nèi)的處理,變量i加“1”。

(S00B)對層j是否為層i的依賴層(直接參考層或間接參考層)進(jìn)行搜索的循環(huán)的始點。循環(huán)開始前,將變量j初始化為0。當(dāng)變量j小于變量i(j<i)時執(zhí)行循環(huán)內(nèi)的處理,每執(zhí)行1次循環(huán)內(nèi)的處理,變量j加“1”。

(S00C)根據(jù)直接依賴標(biāo)記(direct_dependency_flag[i][j])、以及間接依賴標(biāo)記(IndirectDependencyFlag[i][j]),設(shè)置依賴標(biāo)記(DependencyFlag[i][j])的值。具體是,將直接依賴標(biāo)記(direct_dependency_flag[i][j])值和間接依賴標(biāo)記(direct_dependency_flag[i][j])值的邏輯和作為依賴標(biāo)記(DependencyFlag[i][j])的值。即通過以下公式導(dǎo)出。如果直接依賴標(biāo)記值為1或間接依賴標(biāo)記值為1,則依賴標(biāo)記的值為1。除此以外的情況(直接依賴標(biāo)記值為0且間接依賴標(biāo)記值為0),依賴標(biāo)記的值為0。另外,下述導(dǎo)出公式,僅為一例,依賴標(biāo)記中設(shè)置的值可在相同范圍內(nèi)變更。

DependencyFlag[i][j]=(direct_dependency_flag[i][j]|IndirectDependencyFlag[i][j]);

(S00D)對層j是否為層i的依賴層(直接參考層或間接參考層)進(jìn)行搜索的循環(huán)的終點。

(S00E)導(dǎo)出層i的依賴標(biāo)記的循環(huán)的終點。

如以上的說明,通過導(dǎo)出表示層i與層j間接依賴時的依賴關(guān)系的間接依賴標(biāo)記(IndirectDependencyFlag[i][j]),可把握層j是否是層i的間接參考層。而且,通過導(dǎo)出表示層i與層j依賴時(當(dāng)直接依賴標(biāo)記為1或間接依賴標(biāo)記為1時)的依賴關(guān)系的依賴標(biāo)記(DependencyFlag[i][j]),可把握層j是否是層i的依賴層(直接參考層或間接參考層)。另外,導(dǎo)出步驟不僅限定于上述步驟,可在實施可能的范圍內(nèi)變更。

上述例中,是在全層內(nèi)針對索引i、j導(dǎo)出表示第j層是否是對第i層的直接參考層或間接參考層的依賴標(biāo)記DipendecyFlag[i][j],但也可用第i層的層標(biāo)識符nuhLId#i、以及第j層的層標(biāo)識符nuhLId#j,導(dǎo)出層標(biāo)識符間的依賴標(biāo)記(層標(biāo)識符間依賴標(biāo)記)LIdDipendencyFlag[][]。此時,在上述步驟SN08或SO0C中,將層標(biāo)識符間依賴標(biāo)記(LIdDependencyFlag[][])的行用第i層的層標(biāo)識符nuhLId#i、列用第j層的層標(biāo)識符nuhLId#j,導(dǎo)出層標(biāo)識符間依賴標(biāo)記(LIdDependencyFlag[nuhLId#i][nuhLId#j])值。即,如下式所示,如果直接依賴標(biāo)記值為1或間接依賴標(biāo)記值為1,則層標(biāo)識符間依賴標(biāo)記的值為1。除此以外的情況(直接依賴標(biāo)記的值為0且間接依賴標(biāo)記的值為0),則層標(biāo)識符間依賴標(biāo)記的值為0。

LIdDependencyFlag[nuhLId#i][nuhLId#j]=(direct_dependency_flag[i][j]|IndirectDependencyFlag[i][j]);

如以上的說明,通過導(dǎo)出表示層標(biāo)識符為nuhLId#i的第i層與層標(biāo)識符為nuhLId#j的第j層是否直接或間接依賴的層標(biāo)識符間依賴標(biāo)記(Lid0DependencyFlag[nuhLId#i][nuhLId#j]),可把握層標(biāo)識符為nuhLId#j的第j層是否是層標(biāo)識符為nuhLId#i的第i層的直接參考層或間接參考層。另外,上述步驟不僅限于此,可在實施可能的范圍內(nèi)變更。

(序列參數(shù)集SPS)

序列參數(shù)集SPS定義了對對象序列進(jìn)行解碼的圖像解碼裝置1所參考的編碼參數(shù)的集合。

Active VPS標(biāo)識符是用于指定對象SPS參考的Active VPS的標(biāo)識符,作為語法元素“sps_video_parameter_set_id”(圖15的SYNSPS01)包含在SPS中。參數(shù)集解碼部12對解碼對象序列參數(shù)集SPS中包含的Active VPS標(biāo)識符進(jìn)行解碼,同時從參數(shù)集管理部13讀出該Active VPS標(biāo)識符指定的Active VPS的編碼參數(shù),對以后的解碼對象SPS的各語法元素進(jìn)行解碼時也可參考該Active VPS的編碼參數(shù)。另外,如果解碼對象SPS的各語法元素不依賴Active VPS的編碼參數(shù),則無需在解碼對象SPS的Active VPS標(biāo)識符解碼時進(jìn)行VPS的激活處理。

SPS標(biāo)識符是用于識別各SPS的標(biāo)識符,作為語法元素“sps_seq_parameter_set_id”(圖15的SYNSPS02)包含在SPS中。通過后述的PPS中包含的Active SPS標(biāo)識符(pps_seq_parameter_set_id)確定的SPS,用于對象層集內(nèi)的對象層的編碼數(shù)據(jù)的解碼處理時進(jìn)行參考。

(圖片信息)

SPS中包含了決定對象層解碼圖片大小的圖片信息。例如,圖片信息中包含了表示對象層的解碼圖片的寬度和高度等信息。通過SPS解碼的圖片信息中,包含了解碼圖片的寬度(pic_width_in_luma_Samples)和解碼圖片的高度(pic_height_in_luma_Samples)(圖15中未顯示)。語法元素“pic_width_in_luma_Samples”的值對應(yīng)以亮度像素為單位的解碼圖片的寬度,語法元素“pic_height_in_luma_Samples”的值對應(yīng)以亮度像素為單位的解碼圖片的高度。

圖15中的SYNSPS04所示的語法元素組是通過全體對象序列使用的分級列表(量化矩陣)的相關(guān)信息(分級列表信息)。分級列表信息中,“sps_infer_scaling_list_flag”(SPS分級列表推斷標(biāo)記)表示對象SPS的分級列表的相關(guān)信息是否可通過用“sps_scaling_list_ref_layer_id”確定的參考層的Active SPS的分級列表信息進(jìn)行推斷。當(dāng)SPS分級列表推斷標(biāo)記為1時,該SPS的分級列表信息通過用“sps_scaling_list_ref_layer_id”確定的參考層的Active SPS分級列表信息進(jìn)行推斷(被拷貝)。當(dāng)SPS分級列表推斷標(biāo)記為0時,根據(jù)“sps_scaling_list_data_present_flag”通知SPS的分級列表信息。

SPS擴(kuò)展數(shù)據(jù)有無標(biāo)記“sps_extension_flag”(圖15的SYNSPS05)是表示SPS是否還包含SPS擴(kuò)展數(shù)據(jù)sps_extension()(圖15的SYNSPS06)的標(biāo)記。

例如,在SPS擴(kuò)展數(shù)據(jù)(sps_extension())中,包含了層間位置對應(yīng)信息(圖16的SYNSPS0A)等。

(圖片參數(shù)集PPS)

圖片參數(shù)集PPS定義了對對象序列內(nèi)的各圖片進(jìn)行解碼的圖像解碼裝置1參考的編碼參數(shù)的集合。

PPS標(biāo)識符是為了識別各PPS用的標(biāo)識符,作為語法元素“sps_seq_parameter_set_id”(圖15的SYNSPS02)包含在PPS中。通過后述的條帶頭中包含的Active PPS標(biāo)識符(slice_pic_parameter_set_id)確定的PPS,在對象層集內(nèi)的對象層編碼數(shù)據(jù)的解碼處理時被參考。

Active SPS標(biāo)識符是用于指定對象PPS參考的Active SPS的標(biāo)識符,作為語法元素“pps_seq_parameter_set_id”(圖17的SYNSPS02)包含在PPS中。參數(shù)集解碼部12對解碼對象圖片參數(shù)集PPS中包含的Active SPS標(biāo)識符進(jìn)行解碼,同時從參數(shù)集管理部13讀出該Active SPS標(biāo)識符指定的Active SPS的編碼參數(shù),進(jìn)而調(diào)出該Active SPS參考的Active VPS的編碼參數(shù),對以后的解碼對象PPS的各語法元素進(jìn)行解碼時也可參考該Active SPS、以及該Active VPS的編碼參數(shù)。另外,如果解碼對象PPS的各語法元素不依賴于Active SPS、以及Active VPS的編碼參數(shù),無需在解碼對象PPS的Active SPS標(biāo)識符解碼時進(jìn)行SPS、以及VPS的激活處理。

圖17中SYNPPS03所示的語法群是對參考對象PPS的圖片進(jìn)行解碼時使用的分級列表(量化矩陣)的相關(guān)信息(分級列表信息)。分級列表信息中的“pps_infer_scaling_list_flag”(分級列表推斷標(biāo)記),表示對象PPS的分級列表相關(guān)信息是否可通過用“pps_scaling_list_ref_layer_id”確定的參考層的Active PPS的分級列表信息進(jìn)行推斷。當(dāng)PPS分級列表推斷標(biāo)記為1時,該P(yáng)PS的分級列表信息通過用“sps_scaling_list_ref_layer_id”確定的參考層的Active PPS的分級列表信息進(jìn)行推斷(拷貝)。當(dāng)PPS分級列表推斷標(biāo)記為0時,根據(jù)“sps_scaling_list_data_present_flag”通知PPS的分級列表信息。

(圖片解碼部14)

圖片解碼部14根據(jù)輸入的VCL NAL單元和Active參數(shù)集生成解碼圖片并輸出。

用圖20來說明圖片解碼部14的基本構(gòu)成。圖20所示為圖片解碼部14構(gòu)成的概要功能方塊圖。

圖片解碼部14具有條帶頭解碼部141、CTU解碼部142。CTU解碼部142中又包含預(yù)測殘差還原部1421、預(yù)測圖像生成部1422、以及CTU解碼圖像生成部1423。

(條帶頭解碼部141)

條帶頭解碼部141根據(jù)輸入的VCL NAL單元和Active參數(shù)集進(jìn)行條帶頭的解碼。解碼后的條帶頭與輸入的VCL NAL單元一起輸出到CTU解碼部142。

(CTU解碼部142)

概括地說,CTU解碼部142是根據(jù)輸入的條帶頭、VCL NAL單元中包含的條帶數(shù)據(jù)、以及Active參數(shù)集,通過對構(gòu)成圖片的條帶中包含的各CTU對應(yīng)的區(qū)域的解碼圖像進(jìn)行解碼,生成條帶解碼圖像。這里,CTU尺寸使用的是Active參數(shù)集中包含的、對對象層的CTB尺寸(圖15的SYNSPS03中的Log2_min_luma_coding_block_size_minus3、以及Log2_dIff_max_min_luma_coding_block_size對應(yīng)的語法元素)。條帶的解碼圖像作為解碼圖片的一部分輸出到輸入條帶頭指示的條帶位置。CTU的解碼圖像通過CTU解碼部142內(nèi)部的預(yù)測殘差復(fù)原部1421、預(yù)測圖像生成部1422、以及CTU解碼圖像生成部1423生成。

預(yù)測殘差復(fù)原部1421將輸入的條帶數(shù)據(jù)中包含的預(yù)測殘差信息(TT信息)進(jìn)行解碼后生成并輸出對象CTU的預(yù)測殘差。

預(yù)測圖像生成部1422根據(jù)輸入的條帶數(shù)據(jù)中包含的預(yù)測信息(PT信息)所指示的預(yù)測方法和預(yù)測參數(shù),生成并輸出預(yù)測圖像。此時,根據(jù)需要可使用參考圖片的解碼圖像和編碼參數(shù)等。例如,使用幀間預(yù)測、或?qū)娱g圖像預(yù)測時,從解碼圖片管理部15讀出對應(yīng)的參考圖片。

CTU解碼圖像生成部1423將輸入的預(yù)測圖像和預(yù)測殘差相加,生成并輸出對象CTU的解碼圖像。

<圖片解碼部14的解碼過程>

以下、參考圖21,概要說明圖片解碼部14中的對象層i的圖片解碼動作。圖21所示為構(gòu)成圖片解碼部14中的對象層i的圖片的條帶單位的解碼過程流程圖。

(SD101)對解碼對象條帶的先頭條帶標(biāo)記(first_slice_segment_in_pic_flag)進(jìn)行解碼。當(dāng)先頭條帶標(biāo)記為1時,解碼對象條帶為圖片內(nèi)按解碼順序(以下稱為處理順序)的先頭條帶,將解碼對象條帶先頭CTU的圖片內(nèi)的光柵掃描順序的位置(以下稱CTU地址)設(shè)為0。并將圖片內(nèi)已處理CTU數(shù)的計數(shù)numCtu(以下稱已處理CTU數(shù)numCtu)設(shè)為0。當(dāng)先頭條帶標(biāo)記為0時,根據(jù)在后述SD106中解碼的條帶地址,設(shè)置解碼對象條帶的先頭CTU地址。

(SD102)對指定解碼對象條帶解碼時參考的Active PPS的Active PPS標(biāo)識符(slice_pic_paramter_set_id)進(jìn)行解碼。

(SD104)從參數(shù)集管理部13取來Active參數(shù)集。即,將具有與解碼對象條帶參考Active PPS標(biāo)識符(slice_pic_parameter_set_id)相同PPS標(biāo)識符(pps_pic_parameter_set_id)的PPS作為Active PPS,從參數(shù)集管理部13取來Active PPS的編碼參數(shù)(讀出)。將具有與Active PPS內(nèi)的Active SPS標(biāo)識符(pps_seq_parameter_set_id)相同的SPS標(biāo)識符(sps_seq_parameter_set_id)的SPS作為Active SPS,從參數(shù)集管理部13取來Active SPS的編碼參數(shù)。將具有與Active SPS內(nèi)的Active VPS標(biāo)識符(sps_video_parameter_set_id)相同的VPS標(biāo)識符(vps_video_parameter_set_id)的VPS作為Active VPS,從參數(shù)集管理部13取來Active VPS的編碼參數(shù)。

(SD105)根據(jù)先頭條帶標(biāo)記判斷解碼對象條帶是否是圖片內(nèi)處理順序的先頭條帶。當(dāng)先頭條帶標(biāo)記為0時(SD105判斷為Yes),進(jìn)入步驟SD106。除此以外的情況(SD105判斷為No),跳過步驟SD106的處理。另外,當(dāng)先頭條帶標(biāo)記為1時,解碼對象條帶的條帶地址為0。

(SD106)對解碼對象條帶的條帶地址(slice_segment_address)進(jìn)行解碼,設(shè)置解碼對象條帶的先頭CTU地址。例如,先頭條帶CTU地址=slice_segment_address。

···省略···

(SD10A)CTU解碼部1 4 2,根據(jù)輸入的條帶頭、Active參數(shù)集、以及VCL NAL單元中包含的條帶數(shù)據(jù)內(nèi)各CTU信息(圖18的SYNSD01),生成構(gòu)成圖片的條帶中包含的對應(yīng)各CTU的區(qū)域CTU解碼圖像。各CTU信息后是表示該CTU是否是解碼對象條帶終點的條帶終點標(biāo)記(end_of_slice_segment_flag)(圖18的SYNSD02)。在各CTU解碼后,已處理CTU數(shù)numCtu的值加1(numCtu++)。

(SD10B)根據(jù)條帶終點標(biāo)記判斷該CTU是否是解碼對象條帶的終點。當(dāng)條帶終點標(biāo)記為1時(SD10B判斷為Yes),進(jìn)入步驟SD10C。除此以外的情況(SD10B判斷為No),進(jìn)入步驟SD10A,處理后續(xù)CTU信息的解碼。

(SD10C)已處理CTU數(shù)numCtu判斷是否達(dá)到了構(gòu)成圖片的CTU總數(shù)(PicSizelnCtbsY)。即,判斷numCtu==PicSizelnCtbsY。numCtu等于PicSizelnCtbsY時(SD10C判斷為Yes),結(jié)束構(gòu)成解碼對象圖片的條帶單位的解碼處理。除此以外的情況(numCtu<PicSizelnCtbsY)(SD10C判斷為No),進(jìn)入步驟SD101,繼續(xù)進(jìn)行構(gòu)成解碼對象圖片的條帶單位的解碼處理。

以上說明了實施例1的圖片解碼部14的動作,但不僅限于上述步驟,在實施可能的范圍內(nèi),可以變更步驟。

(視頻解碼裝置1的效果)

以上說明的本實施例相關(guān)的分層視頻解碼裝置1(分層圖像解碼裝置),具有比特流抽取部17,它根據(jù)外部提供的構(gòu)成對象層集LayerSetTarget的層的層ID列表LayerIdListTarget、以及對象最高時域標(biāo)識符HighestTidTarget,進(jìn)行比特流抽取處理,從輸入的分層編碼數(shù)據(jù)DATA中,去除(丟棄)由對象最高時域標(biāo)識符HighestTidTarget、以及對象層集LayerSetTarget的層ID列表LayerIdListTarget所決定的集合(稱為目標(biāo)集TargetSet)中不包含的NAL單元,抽取由目標(biāo)集TargetSet中包含的NAL單元構(gòu)成的對象層集編碼數(shù)據(jù)DATA#T(BitstreamToDecode)。上述比特流抽取部17還具有如下特征:如果視頻參數(shù)集的層標(biāo)識符不包含在前述目標(biāo)集TargetSet中,則在目標(biāo)集TargetSet內(nèi),將前述視頻參數(shù)集的層標(biāo)識符更新(改寫)為最低的層標(biāo)識符。另外,上述比特流抽取部17動作雖有”構(gòu)成輸入的分層編碼數(shù)據(jù)DATA的AU中,AU內(nèi)具有最低的層標(biāo)識符的VPS最多包含1個”的前提,但并不僅限于此。例如,在AU內(nèi)具有最低層標(biāo)識符以外的層標(biāo)識符的VPS也可以包含在AU內(nèi)。此時,比特流抽取部17,在圖27的步驟SG104中,也可將層標(biāo)識符更新對象的VPS作為不包含在目標(biāo)集TargetSet中的、最低的層標(biāo)識符。因為通常層標(biāo)識符“nuhLayerId=0”的VPS是具有最低層標(biāo)識符的VPS,所以將該VPS作為更新對象,丟棄其它的目標(biāo)集TargetSet中不包含的VPS。

因此,通過本實施方案的相關(guān)分層視頻解碼裝置1,可防止在進(jìn)行了比特流抽取后的比特流上,層集內(nèi)不包含VPS的問題。即,可防止從某層集的比特流中、通過比特流抽取處理生成的、只包含該層集子集的層集的比特流上出現(xiàn)不能解碼的層。

而且,作為對象層解碼用的參數(shù)集(VPS、SPS、PPS),通過共享(參考)參考層的解碼中使用的參數(shù)集,可省略對象層參數(shù)集相關(guān)的解碼處理。即,可通過更少的編碼量進(jìn)行參數(shù)集解碼。

(比特流抽取部17的變化實施例1)

實施例1的比特流抽取部17,如圖27所示,在目標(biāo)集中,當(dāng)VPS層標(biāo)識符不包含在前述目標(biāo)集TargetSet中時,通過在目標(biāo)集TargetSet內(nèi)將前述VPS的層標(biāo)識符更新(改寫)為最低層標(biāo)識符,讓目標(biāo)集TargetSet中務(wù)必包含VPS,但并不僅限于此。例如,比特流抽取部17中,不包含在構(gòu)成目標(biāo)集TargetSet的層ID列表LayerIdListTarget中的VPS,也可不更新該VPS的層標(biāo)識符,省略對該VPS的NAL單元的丟棄,讓抽取后的目標(biāo)集TargetSet的比特流中包含該VPS。以下,參考圖28,對變化實施例1的比特流抽取部17’的動作進(jìn)行說明。另外,與實施例1中比特流抽取部17通用的動作,則采用統(tǒng)一的符號,省略說明。

(SG102a)根據(jù)圖7所示的“nal_unit_type”和“Name of_nal_unit_type”判斷對象NAL單元的NAL單元類型(nal_unit_type)是否是參數(shù)集。此處,為了滿足后述的一致性條件CY1,判斷NAL單元類型是否是“VPS NUT”(nal_unit_type==32)。即,如果NAL單元類型是視頻參數(shù)集(SG102a的判斷為YES),進(jìn)入步驟SG107,省略與該VPS相關(guān)的步驟SG105a、SG106a的動作。除此以外的情況(SG102a判斷為No),進(jìn)入步驟SG105a。

(SG105a)根據(jù)構(gòu)成對象層集LayerSetTarget的層的層ID列表LayerIdListTarget、以及對象最高時域標(biāo)識符,判斷對象NAL單元的層標(biāo)識符、時域標(biāo)識符是否包含在目標(biāo)集TargetSet中。因為具體動作與圖27的步驟SG105相同,省略其說明。

(SG106a)丟棄對象NAL單元。即,因為對象NAL單元不包含在目標(biāo)集TargetSet中,所以比特流抽取部17’從輸入的分層編碼數(shù)據(jù)DATA中去除對象NAL單元。

以上、說明了變化實施例1的比特流抽取部17’的動作,但不僅限于上述步驟,在實施可能的范圍內(nèi),可以變更步驟。

根據(jù)以上說明的變化實施例1比特流抽取部17’,其特征是:根據(jù)外部提供的構(gòu)成對象層集LayerSetTarget的層的層ID列表LayerIdListTarget、以及對象最高時域標(biāo)識符HighestTidTarget,進(jìn)行比特流抽取處理,從輸入的分層編碼數(shù)據(jù)DATA中,去除NAL單元類型為VPS的NAL單元,去除(丟棄)由對象最高時域標(biāo)識符HighestTidTarget、以及對象層集LayerSetTarget的層ID列表LayerIdListTarget所決定的集合(目標(biāo)集TargetSet)中不包含的NAL單元,抽取并輸出由目標(biāo)集TargetSet中包含的NAL單元構(gòu)成的對象層集編碼數(shù)據(jù)DATA#T(BitstreamToDecode)。換言之,如果視頻參數(shù)集的層標(biāo)識符不包含在目標(biāo)集TargetSet中,前述比特流抽取部17’不丟棄前述視頻參數(shù)集的NAL單元,在目標(biāo)集TargetSet的比特流中包含該VPS。

上述比特流抽取部17’的動作,雖有”構(gòu)成輸入的分層編碼數(shù)據(jù)DATA的AU中,AU內(nèi)具有最低層標(biāo)識符的VPS最多包含1個”的前提,但不僅限如此。例如,在AU內(nèi)具有最低層標(biāo)識符以外的層標(biāo)識符的VPS也可以包含在AU內(nèi)。此時,比特流抽取部17’可在步驟SG102a中追加”VPS層標(biāo)識符是否是目標(biāo)集TargetSet中不包含的、最低的層標(biāo)識符?”的條件。因為通常層標(biāo)識符“nuhLayerId=0”的VPS是具有最低層標(biāo)識符的VPS,所以,將該VPS作為目標(biāo)集TargetSet中包含的VPS,丟棄其它的目標(biāo)集TargetSet中不包含的VPS。

通過以上的變化實施例1的比特流抽取部17’,可防止在進(jìn)行了比特流抽取后的比特流上,層集內(nèi)不包含VPS的問題。即,可防止從某層集的比特流中、通過比特流抽取處理生成的、只包含該層集子集的層集的比特流上出現(xiàn)不能解碼的層。

(比特流抽取部17變化實施例1相關(guān)的VPS約束)

為了執(zhí)行變化實施例1的比特流抽取部17’中記載的比特流抽取,作為比特流一致性,要求比特流至少應(yīng)滿足以下的條件CY1。

CY1:”目標(biāo)集TargetSet(層集)中,所有的層中都應(yīng)包含有與最低層標(biāo)識符相等的層標(biāo)識符的VPS”。

上述比特流約束CY1,換言之,即:”接入單元中包含的VPS,在所有的層(包括接入單元中不包含的層)中必須與有最低層標(biāo)識符的VCL屬于同一層”。

“接入單元中包含的VPS,在所有的層(包括接入單元中不包含的層)中必須與有最低層標(biāo)識符的VCL屬于同一層”。”是指:”層集A子集的層集B內(nèi)的層,參考層集A中的‘包含在層集A中、但不包含在層集B中’的層的VPS時,在通過比特流抽取而抽取的層集B中,將具有與前述VPS相同編碼參數(shù)的VPS包含到層集B中”。具有與前述VPS相同編碼參數(shù)的VPS是指除層標(biāo)識符、時域標(biāo)識符以外,VPS標(biāo)識符、以及其它VPS內(nèi)的語法元素與前述VPS相同。因此,通過設(shè)定上述比特流約束,可解決在進(jìn)行了比特流抽取后的比特流上,層集內(nèi)不包含VPS的問題。即,可防止從某層集的比特流中、通過比特流抽取處理生成的、只包含該層集子集的層集的比特流上出現(xiàn)不能解碼的層。

另外,上述一致性條件CY1中雖有”目標(biāo)集TargetSet(層集)中,所有的層中都應(yīng)包含有與最低層標(biāo)識符相等的層標(biāo)識符的VPS”,但并不僅限于此。例如,可將最低層標(biāo)識符作為層標(biāo)識符nuhLayerId=0(nuh_layer_id=0)。即,作為比特流一致性,要求比特流至少應(yīng)滿足以下的條件CY2。

CY2:”目標(biāo)集TargetSet(層集)中,應(yīng)包含具有與層標(biāo)識符nuh_layer_id=0相等層標(biāo)識符的VPS”

上述一致性條件CY2的情況,與一致性條件CY1時具有同樣的效果。而且,因為不會出現(xiàn)在現(xiàn)有技術(shù)(非專利文獻(xiàn)2~3)的約束(VPS的層標(biāo)識符為0)條件下進(jìn)行比特流抽取、有TargetSet的層參考nuh_layer_id=0的VPS時,TargetSet中不包含的、nuh_layer_id=0的VPS被丟棄的情況,所以,可防止有TargetSet的層不能解碼的問題。

(比特流抽取部17的變化實施例1a)

在現(xiàn)有技術(shù)(非專利文獻(xiàn)4)的約束(VPS/SPS/PPS的層標(biāo)識符為0)時,作為比特流一致性,在CY2之上,至少還應(yīng)滿足CY3、CY4。

CY3:”目標(biāo)集TargetSet(層集)中,應(yīng)包含具有與層標(biāo)識符nuh_layer_id=0相等層標(biāo)識符的SPS”

CY4:”目標(biāo)集TargetSet(層集)中,應(yīng)包含具有與層標(biāo)識符nuh_layer_id=0相等層標(biāo)識符的PPS”

適用上述比特流約束CY2~CY4的情況,可將變化實施例1的比特流抽取部17’的動作(圖28步驟G102)變更為以下的處理(SG102a’)。

(SG102a’)根據(jù)圖7所示的“nal_unit_type”和“Name of nal_unit_type”,判斷對象NAL單元的NAL單元類型(nal_unit_type)是否是參數(shù)集。此處,為了滿足一致性條件CY2~CY4,判斷NAL單元類型是否是“VPS_NUT”(nal_unit_type==32)、或“SPS_NUT”(nal_unit_type==33)、或“PPS_NUT”(nal_unit_type==34)。即,如果NAL單元類型是VPS、SPS、PPS參數(shù)集的其中之一(SG102a’判斷為Yes),進(jìn)入步驟SG107。除此以外的情況(SG102a判斷為No),進(jìn)入步驟SG105a。

雖然就以上比特流抽取動作進(jìn)行了說明,但不僅限于上述步驟,在實施可能的范圍內(nèi),可以變更步驟。另外,將進(jìn)行了上述変更的比特流抽取部17’作為變化實施例1a的比特流抽取部17’a。

通過以上的比特流抽取部17’a,因為不會出現(xiàn)在現(xiàn)有技術(shù)(非專利文獻(xiàn)4)的約束(VPS/SPS/PPS的層標(biāo)識符為0)條件下進(jìn)行比特流抽取、有TargetSet的層參考nuh_layer_id=0的VPS/SPS/PPS時,TargetSet中不包含的nuh_layer_id=0的VPS/SPS/PPS被丟棄的情況,所以,可防止有TargetSet的層不能解碼的問題。

(比特流抽取部17的變化實施例2)

實施例1的比特流抽取部17如圖27所示,在目標(biāo)集中,當(dāng)VPS層標(biāo)識符不包含在前述目標(biāo)集TargetSet中時,通過在目標(biāo)集TargetSet內(nèi)將前述VPS的層標(biāo)識符更新(改寫)為最低的層標(biāo)識符,讓目標(biāo)集TargetSet中務(wù)必包含VPS,但并不僅限于此。例如,比特流抽取部17,也可省略丟棄目標(biāo)集TargetSet內(nèi)各層依賴的、構(gòu)成目標(biāo)集TargetSet的層ID列表LayerIdListTarget中不包含的、參考層(直接參考層、以及間接參考層)的VCL和non-VCL的NAL單元,讓抽取后的目標(biāo)集TargetSet的比特流中包含該VCL和non-VCL。以下,參考圖29,對變化實施例2的比特流抽取部17”的動作進(jìn)行說明。與實施例1中比特流抽取部17通用的動作,采用統(tǒng)一的符號,省略說明。另外,比特流抽取部17”為了從VPS的編碼參數(shù)導(dǎo)出依賴層,具有與參數(shù)集解碼部12中的VPS的解碼方法相同的功能。圖29所示為比特流抽取部17”中以接入單元為單位的比特流抽取處理流程圖。

(SG102b)通過圖7所示的“nal_unit_type”和“Name of nal_unit_type”,判斷對象NAL單元的NAL單元類型(nal_unit_type)是否是參數(shù)集。此處,為了滿足后述的一致性條件CZ1,判斷NAL單元類型是否是“VPS NUT"(nal_unit_type==32)。即,如果NAL單元類型是視頻參數(shù)集(SG102b判斷為Yes),進(jìn)入步驟SG103。除此以外的情況(SG102判斷為No),進(jìn)入步驟SG105。

(SG10B)比特流抽取部17”,對對象NAL單元VPS進(jìn)行解碼,導(dǎo)出目標(biāo)集TargetSet中包含的各層的依賴層(依賴層集)。具體是按照“參考層ID列表、以及直接參考層IDX列表的導(dǎo)出”以及“間接依賴標(biāo)記、依賴標(biāo)記的導(dǎo)出”中說明的步驟,導(dǎo)出表示層標(biāo)識符為nuhLId#j的第j層對層標(biāo)識符為nuhLId#i的第i層是直接參考層還是間接參考層的層標(biāo)識符間依賴標(biāo)記LIdDipendecyFlag[][]。另外,取代層標(biāo)識符間依賴標(biāo)記,也可導(dǎo)出表示第j層(層標(biāo)識符nuhLId#j)是對已述第i層(層標(biāo)識符nuhLId#i)的直接參考層還是間接參考層的依賴標(biāo)記DependencyFlag[i][j]。

(SG105b)根據(jù)構(gòu)成對象層集LayerSetTarget的層的層ID列表LayerIdListTarget、對象最高時域標(biāo)識符、以及依賴標(biāo)記(層標(biāo)識符間依賴標(biāo)記LidDependencyFlag[][]),判斷對象NAL單元的層標(biāo)識符、時域標(biāo)識符是否包含在目標(biāo)集TargetSet中、或是否是目標(biāo)集TargetSet中包含的層的依賴層。更具體地,判斷是否滿足以下(1)~(3)的條件,至少滿足其中條件之一(為真)時(SG105判斷為Yes),進(jìn)入步驟SG106。除此以外的情況(SG105b判斷為No),進(jìn)入步驟SG107。

(1)”構(gòu)成對象層集LayerSetTarget的層ID列表LayerIdListTarget中存在與對象NAL單元的層標(biāo)識符相同的值”時,判斷為真,除此以外的情況(構(gòu)成對象層集LayerSetTarget的層的層ID列表LayerIdListTarget沒有與對象NAL單元的層標(biāo)識符相同的值),判斷為偽。

(2)”對象NAL單元的時域標(biāo)識符小于等于對象最高時域標(biāo)識符HighestTidTarget”時,判斷為真,除此以外的情況(對象NAL單元的時域標(biāo)識符大于對象最高時域標(biāo)識符HighestTidTarget),判斷為偽。

(3)根據(jù)層標(biāo)識符間依賴標(biāo)記LIdDependencyFLag[LayerIdListTarget[k]][nuhLayerId](k=0…n-1),判斷對象NAL單元的層標(biāo)識符nuhLayerId,對對象層集LayerSetTarget中包含的各層(LayerIdListTarget[k](k=0…n-1,(n為LayerSetTarget中包含的層數(shù))),是直接參考層還是間接參考層。

具體是,對象層集LayerSetTarget中包含的任意層k中,當(dāng)層標(biāo)識符間依賴標(biāo)記LIdDependencyFLag[LayerIdListTarget[k]][nuhLayerId]值為1時,判斷為真,除此以外的情況(對象層集LayerSetTarget中包含的全部層k中,層標(biāo)識符間依賴標(biāo)記LIdDependencyFLag[[LayerIdListTarget[k]][nuhLayerId]的值為0),判斷為偽。另外,也可根據(jù)下式導(dǎo)出的DepFlag進(jìn)行上述判斷。即,作為層標(biāo)識符間依賴標(biāo)記LIdDepedencyFlag[LayerIdListTarget[k]][nuhLayerId](k=0…n-1)邏輯和的DepFlag的值為1時,判斷為真,DepFlag的值為0時,判斷為偽。

DepFlag=0;for(k=0;i<k;i++){DepFlag|=LIdDependencyFLag[LayerIdListTarget[k]][nuhLayerId];}

(SG106b)丟棄對象NAL單元。即,因為在目標(biāo)集TargetSet或目標(biāo)集Target的依賴層中不包含對象NAL單元,所以,比特流抽取部17從輸入的分層編碼數(shù)據(jù)DATA中去除對象NAL單元。

以上對變化實施例2的比特流抽取部17”的動作進(jìn)行了說明,但不僅限上述步驟,在實施可能的范圍內(nèi),可以變更步驟。

以上說明的變化實施例2的比特流抽取部17”,具有以下特征:根據(jù)外部提供的構(gòu)成對象層集LayerSetTarget的層ID列表LayerIdListTarget、對象最高時域標(biāo)識符HighestTidTarget、以及從VPS導(dǎo)出的依賴層信息(依賴標(biāo)記(LIdDependencyFlag[][]或DependencyFLag[][])),進(jìn)行比特流抽取處理,從輸入的分層編碼數(shù)據(jù)DATA中去除(丟棄)對象最高時域標(biāo)識符HighestTidTarget、由對象層集LayerSetTarget的層ID列表LayerIdListTarget所決定的集合目標(biāo)集TargetSet、以及目標(biāo)集TargetSet的依賴層中不包含的NAL單元,抽取并輸出由目標(biāo)集TargetSet、以及目標(biāo)集TargetSet的依賴層中包含的NAL單元所構(gòu)成的對象層集編碼數(shù)據(jù)DATA#T(BitstreamToDecode)。換言之,上述比特流抽取部17”不丟棄目標(biāo)集TargetSet的依賴層中包含的NAL單元,在目標(biāo)集TargetSet的比特流中包含該依賴層中的NAL單元。

另外,上述比特流抽取部17”的動作,雖有”構(gòu)成輸入的分層編碼數(shù)據(jù)DATA的AU中,AU內(nèi)具有最低的層標(biāo)識符的VPS最多包含1個”的前提,但并不僅限于此。例如,AU內(nèi)具有最低的層標(biāo)識符以外的層標(biāo)識符的VPS也可包含在AU內(nèi)。此時,比特流抽取部17”的步驟SG102b~SG10B中,可將導(dǎo)出層依賴信息對象的VPS,作為目標(biāo)集TargetSet中不包含的、最低的層標(biāo)識符。因為通常層標(biāo)識符“nuhLayerId=0”的VPS是具有最低層標(biāo)識符的VPS,所以,可從該VPS導(dǎo)出層依賴信息,丟棄其它的目標(biāo)集TargetSet中不包含的VPS。

通過以上本實施例相關(guān)的比特流抽取部17”,在進(jìn)行了比特流抽取后的比特流上,可防止層集中不包含層集內(nèi)的層所參考的依賴層(直接參考層或間接參考層)相關(guān)的VCL、non-VCL的NAL單元的問題。即,可防止從某層集的比特流中、通過比特流抽取處理生成的、只包含該層集子集的層集的比特流上出現(xiàn)不能解碼的層。

(比特流抽取部17的變化實施例2的比特流約束)

為了進(jìn)行變化實施例2的比特流抽取部17”所記載的比特流抽取,作為比特流一致性,要求比特流至少應(yīng)滿足以下的條件CZ1。

CZ1:”目標(biāo)集TargetSet(層集)中,必須包含目標(biāo)集TargetSet內(nèi)各層依賴(參考)的依賴層”。

上述比特流約束CZ1,換言之,即:”層集內(nèi)的對象層參考的依賴層必須包含在同一層集中。”

“在層集內(nèi),層集內(nèi)的對象層參考的依賴層必須包含在同一層集中”是指:”禁止層集A子集的層集B內(nèi)的層,參考層集A中的‘包含在層集A中包含、但不包含在層集B中’層的VCL或non-VCL”。通過設(shè)定上述比特流約束,可解決在進(jìn)行了比特流抽取后的比特流上,不包含層集內(nèi)的層所參考的依賴層(直接參考層或間接參考層)相關(guān)的VCL、non-VCL的NAL單元的問題。即,可防止從某層集的比特流中、通過比特流抽取處理生成的、只包含該層集子集的層集的比特流上出現(xiàn)不能解碼的層。

(比特流抽取部17的變化實施例3)

比特流抽取部17也可由比特流抽取部17的變化實施例1a和變化實施例2組合而成。即:省略丟棄”在目標(biāo)集TargetSet中不包含目標(biāo)集TargetSet內(nèi)的各層所依賴的參考層(直接參考層、以及間接參考層)的層標(biāo)識符時,具有該層標(biāo)識符的參考層的VCL以及non-VCL的NAL單元”,且省略丟棄”目標(biāo)集TargetSet中不包含層標(biāo)識符nuh_layer_id=0時,包含層標(biāo)識符nuh_layer_id=0的參數(shù)集(VPS、SPS、PPS)的non-VCL的NAL單元”,可讓抽取后的目標(biāo)集TargetSet的比特流中包含該VCL以及non-VCL。此時,作為比特流一致性,在一致性條件CZ1的基礎(chǔ)上,至少應(yīng)滿足參數(shù)集(SPS、PPS)的一致性條件CA1、以及CA2。

CA1:”層標(biāo)識符nuh_layer_id=layerIdA的層layerA的Active SPS的層標(biāo)識符為0或layerIdA、或與層layerA的直接參考層或間接參考層的層標(biāo)識符nuh_layer_id的值相等”

CA2:”層標(biāo)識符nuh_layer_id=layerIdA的層layerA的Active PPS的層標(biāo)識符等于0或layerIdA、或與層layerA的直接參考層或間接參考層的層標(biāo)識符nuh_layer_id的值相等”

通過圖30來說明適用上述一致性條件CZ1、CA1~CA2、以及現(xiàn)有的”VPS的層標(biāo)識符nuh_layer_id為0”時,變化實施例3的比特流抽取部17”’的動作。與變化實施例3的比特流抽取部17”通用的動作,采用統(tǒng)一的符號,省略說明。另外,比特流抽取部17”’為了從VPS的編碼參數(shù)導(dǎo)出依賴層,具有與參數(shù)集解碼部12中的VPS的解碼方法相同的功能。圖30所示為比特流抽取部17”’中以接入單元為單位的比特流抽取處理流程圖。

(SG102b)根據(jù)圖7所示的nal_unit_type”和“Name of nal_unit_type”判斷對象NAL單元的NAL單元類型(nal_unit_type)是否是參數(shù)集。此處,為了滿足一致性條件CZ1,判斷NAL單元類型是否是“VPS NUT”(nal_unit_type==32)。即,當(dāng)NAL單元類型為視頻參數(shù)集時(SG102b判斷為Yes),進(jìn)入步驟SG10C。除此以外的情況(SG102b判斷為No),進(jìn)入步驟SG10B。

(SG10B)比特流抽取部17”’對對象NAL單元VPS進(jìn)行解碼,導(dǎo)出目標(biāo)集TargetSet中包含的各層的依賴層(依賴層集)。因與圖29的步驟SG10B的處理相同,省略說明。

(SG10C)判斷是否全部滿足條件(1)、以及(2)。

(1)根據(jù)圖7所示的“nal_unit_type”和“Name of nal_unit_type”判斷對象NAL單元的NAL單元類型(nal_unit_type)是否是參數(shù)集。具體是,判斷NAL單元類型是否是“VPS_NUT”(nal_unit_type==32)、或“SPS_NUT”(nal_unit_type==33)、或“PPS_NUT”(nal_unit_type==34)。即,當(dāng)NAL單元類型是VPS、SPS、PPS中的任何一個時,判斷為真,除此以外的情況判斷為偽。

(2)判斷對象NAL單元的層標(biāo)識符是否為0。當(dāng)對象NAL單元的層標(biāo)識符為0時,判斷為真,除此以外的情況判斷為偽。

上述條件(1)以及(2)全為真(對象NAL單元的NAL單元類型為參數(shù)集(VPS、或SPS或PPS),且對象NAL單元的層標(biāo)識符為0)(SG10C判斷為Yes)時,進(jìn)入步驟SG0107。除此以外的情況(SG10C判斷為No),進(jìn)入步驟SG105b。

(SG105b)根據(jù)構(gòu)成對象層集LayerSetTarget的層的層ID列表LayerIdListTarget、對象最高時域標(biāo)識符、以及依賴標(biāo)記(層標(biāo)識符間依賴標(biāo)記LIdDependencyFlag[][]),判斷對象NAL單元的層標(biāo)識符、時域標(biāo)識符是否包含在目標(biāo)集TargetSet中、或是否是目標(biāo)集TargetSet中包含的層的依賴層。因與圖29的步驟SG105b的處理相同,省略說明。

丟棄(SG106b)對象NAL單元。即,因為對象NAL單元不包含在目標(biāo)集TargetSet中或不是目標(biāo)集TargetSet各層的依賴層,比特流抽取部17”’從輸入的分層編碼數(shù)據(jù)DATA中去除對象NAL單元。

以上、說明了變化實施例3的比特流抽取部17”’的動作,但不僅限于上述步驟,在實施可能的范圍內(nèi),可以變更步驟。

根據(jù)以上說明的變化實施例3的比特流抽取部17”’,其特征是:根據(jù)外部提供的構(gòu)成對象層集LayerSetTarget的層的層ID列表LayerIdListTarget、對象最高時域標(biāo)識符HighestTidTarget、以及從VPS導(dǎo)出的依賴層信息(依賴標(biāo)記(LIdDependencyFlag[][]或DependencyFLag[][])),進(jìn)行比特流抽取處理;從輸入的分層編碼數(shù)據(jù)DATA中,除了包含層標(biāo)識符為nuh_layer_id=0的參數(shù)集(VPS、SPS、PPS)的NAL單元外,去除(丟棄)具有由對象最高時域標(biāo)識符HighestTidTarget、以及對象層集LayerSetTarget的層ID列表LayerIdListTarget所決定的集合目標(biāo)集TargetSet中不包含的層標(biāo)識符的NAL單元和沒有目標(biāo)集TargetSet內(nèi)各層的依賴層的層標(biāo)識符的NAL單元;抽取并輸出通過具有目標(biāo)集TargetSet中包含的層標(biāo)識符的NAL單元、具有目標(biāo)集TargetSet內(nèi)各層的依賴層的層標(biāo)識符的NAL單元、以及包含nuh_layer_id=0的參數(shù)集(VPS/SPS/PPS)的NAL單元所構(gòu)成的對象層集編碼數(shù)據(jù)DATA#T(BitstreamToDecode)。換言之,上述比特流抽取部17”’不丟棄具有目標(biāo)集TargetSet內(nèi)各層的依賴層的層標(biāo)識符的NAL單元、以及nuh_layer_id=0的參數(shù)集的NAL單元,在目標(biāo)集TargetSet的比特流中包含該依賴層中包含的NAL單元、以及nuh_layer_id=0的參數(shù)集的NAL單元。

另外,上述比特流抽取部17”’的動作雖有”構(gòu)成輸入的分層編碼數(shù)據(jù)DATA的AU中,AU內(nèi)具有最低層標(biāo)識符的VPS最多包含1個”的前提,但并不僅限于此。例如,AU內(nèi)具有最低層標(biāo)識符以外的層標(biāo)識符的VPS也可包含在AU內(nèi)。此時,比特流抽取部17”’在步驟SG102b~SG10B中,可將導(dǎo)出層依賴信息的對象的VPS作為目標(biāo)集TargetSet中不包含的、最低的層標(biāo)識符。通常因為層標(biāo)識符“nuhLayerId=0”的VPS為具有最低層標(biāo)識符的VPS,所以從該VPS導(dǎo)出層依賴信息即可,可丟棄(忽略)除此之外的目標(biāo)集TargetSet中不包含的VPS。

通過以上的本實施例相關(guān)的比特流抽取部17”’,在進(jìn)行了比特流抽取后的比特流上,可防止層集中不包含層集內(nèi)的層所參考的依賴層(直接參考層或間接參考層)相關(guān)的VCL、non-VCL的NAL單元、以及nuh_layer_id=0的參數(shù)集(VPS/SPS/PPS)的NAL單元的問題。即,可防止從某層集的比特流中、通過比特流抽取處理生成的、只包含該層集子集的層集的比特流上出現(xiàn)不能解碼的層。

〔分層視頻編碼裝置〕

以下,參考圖22,對本實施例相關(guān)的分層視頻編碼裝置2的構(gòu)成進(jìn)行說明。

(分層視頻編碼裝置的構(gòu)成)

使用圖22來說明分層視頻編碼裝置2的構(gòu)成概要。圖22所示為分層視頻編碼裝置2構(gòu)成概要功能塊圖。分層視頻編碼裝置2對編碼對象的層集(對象層集)中包含的各層的輸入圖像PIN#T(圖片)進(jìn)行編碼,生成對象層集的分層編碼數(shù)據(jù)DATA。即,視頻編碼裝置2從對象層集中包含的最低的層ID開始到最高的層ID為止,按升序?qū)Ω鲗訄D片進(jìn)行編碼,生成其編碼數(shù)據(jù)。換言之,按照對象層集的層ID列表LayerSetLayerIdList[0]…LayerSetldList[N-1](N為對象層集中包含的層數(shù))的順序,對各層圖片進(jìn)行編碼。另外,分層視頻編碼裝置2為保證分層視頻解碼裝置1(包含其變化實施例)是可以解碼的比特流,以滿足上述的CX1(CX1’)、或CX2(CX2’)、或CY1、或CY2、或(CY2且CY3且CY4)、或CZ1、或、(CZ1且CA1且CA2且”VPS的層標(biāo)識符nuh_layer_id為0”)的比特流一致性,來生成對象層集的分層編碼數(shù)據(jù)DATA。通過生成滿足上述比特流一致性的分層編碼數(shù)據(jù)DATA,在分層解碼裝置1中,可防止從某層集的比特流中、通過比特流抽取處理生成的、只包含該層集子集的層集的比特流上出現(xiàn)不能解碼的層。

圖22所示的分層視頻編碼裝置2的構(gòu)成中,包含有對象層集圖片編碼部20、以及NAL復(fù)用部21。對象層集圖片編碼部20的構(gòu)成中包含有參數(shù)集編碼部22、圖片編碼部24、解碼圖片管理部15和編碼參數(shù)決定部26。

解碼圖片管理部15與已經(jīng)說明的分層視頻解碼裝置1的解碼圖片管理部15是相同的構(gòu)成元素。但因為分層視頻編碼裝置2的解碼圖片管理部15中,不需要將內(nèi)部DPB中記錄的圖片作為輸出圖片進(jìn)行輸出,所以可以省略該輸出部分。另外,將分層視頻解碼裝置1的解碼圖片管理部15的說明中的”解碼”用”編碼”置換后,可適用于分層視頻編碼裝置2的解碼圖片管理部15。

NAL復(fù)用部21通過將輸入的對象層集各層的VCL、以及non-VCL存儲到NAL單元,生成NAL復(fù)用的分層視頻編碼數(shù)據(jù)DATA#T,并向外部輸出。換言之,NAL復(fù)用部21將對象層集圖片編碼部20提供的non-VCL編碼數(shù)據(jù)、VCL編碼數(shù)據(jù)、以及對應(yīng)各non-VCL、VCL的NAL單元類型、層標(biāo)識符和時域標(biāo)識符存儲到NAL單元(編碼),生成NAL復(fù)用的分層編碼數(shù)據(jù)DATA#T。

編碼參數(shù)決定部26,從多個編碼參數(shù)集中選擇1個集。編碼參數(shù)是指與各參數(shù)集(VPS、SPS、PPS)相關(guān)連的各種參數(shù)、圖片編碼用的預(yù)測參數(shù)以及與此預(yù)測參數(shù)關(guān)聯(lián)后生成的編碼對象的參數(shù)。編碼參數(shù)決定部26對上述編碼參數(shù)的每一個集算出表示信息量大小和編碼誤差的成本值。例如,成本值是符號量與平方誤差乘以系數(shù)λ的和。符號量是指量化誤差和對編碼參數(shù)進(jìn)行可變長度編碼得到的對象層集的各層編碼數(shù)據(jù)的信息量。平方誤差是指像素間的輸入圖像PIN#T和預(yù)測圖像的差分值的平方值的總和。系數(shù)λ是預(yù)先設(shè)定的大于零的實數(shù)。編碼參數(shù)決定部26選擇所算出的成本值為最小的編碼參數(shù)集,將所選擇的各編碼參數(shù)集提供給參數(shù)集編碼部22、以及圖片編碼部24。另外,從編碼參數(shù)決定部26輸出的參數(shù)集可用編碼數(shù)據(jù)中包含的參數(shù)集(VPS、SPS、PPS)語法元素的語法元素值和由該語法元素值導(dǎo)出的變量集合來表述。

參數(shù)集編碼部22,根據(jù)從編碼參數(shù)決定部26輸入的各參數(shù)集的編碼參數(shù)和輸入圖像,設(shè)置用于輸入圖像編碼的參數(shù)集(VPS、SPS和SPS),將各參數(shù)集作為存儲在non-VCL NAL單元的數(shù)據(jù),提供給NAL復(fù)用部21。通常,參數(shù)集的編碼按照既定語法表執(zhí)行。即,按照語法表所決定的步驟,對語法表中包含的語法元素值進(jìn)行編碼,生成比特串,作為編碼數(shù)據(jù)輸出。另外,在參數(shù)集編碼部22編碼的參數(shù)集中,包含分層視頻解碼裝置1中的參數(shù)集解碼部12的說明中所述的層間依賴信息(直接依賴標(biāo)記、層依賴類型位長、層依賴類型)。參數(shù)集編碼部22,作為層依賴類型的一部分,對non-VCL依賴有無標(biāo)記進(jìn)行編碼。參數(shù)集編碼部22在向NAL復(fù)用部21提供non-VCL的編碼數(shù)據(jù)時,附加對應(yīng)non-VCL的NAL單元類型、層標(biāo)識符、以及時域標(biāo)識符后輸出。

參數(shù)集編碼部22生成的參數(shù)集中,包含了識別該參數(shù)集的標(biāo)識符、以及指定對各層圖片進(jìn)行解碼時參考的該參數(shù)集所參考的參數(shù)集(Active參數(shù)集)的Active參數(shù)集標(biāo)識符。具體是,如果是視頻參數(shù)集VPS,則包含識別該VPS的VPS標(biāo)識符。如果是序列參數(shù)集SPS,則包含識別該SPS的SPS標(biāo)識符(sps_seq_paramete_set_id)、以及確定該SPS和其它語法元素參考的VPS的Active VPS標(biāo)識符(sps_video_parameter_set_id)。如果是圖片參數(shù)集PPS,則包含識別該P(yáng)PS的PPS標(biāo)識符(pps_pic_parameter_set_id)、以及確定該P(yáng)PS和其它語法元素參考的SPS的Active SPS標(biāo)識符(pps_seq_parameter_set_id)。

圖片編碼部24,根據(jù)輸入各層的輸入圖像PIN#T、以及通過編碼參數(shù)決定部26提供的參數(shù)集和解碼圖片管理部15中記錄的參考圖片,對構(gòu)成圖片的條帶對應(yīng)的一部分各層輸入圖像進(jìn)行編碼,生成該部分的編碼數(shù)據(jù),作為VCL NAL單元中存儲的數(shù)據(jù)提供給NAL復(fù)用部21。圖片編碼部24的詳細(xì)說明后述。另外,圖片編碼部24在向NAL復(fù)用部21提供VCL的編碼數(shù)據(jù)時,附加對應(yīng)VCL的NAL單元類型、層標(biāo)識符、以及時域標(biāo)識符后輸出。

(圖片編碼部24)

下面參考圖23,詳細(xì)說明圖片編碼部24的構(gòu)成。圖23所示為圖片編碼部24構(gòu)成概要的功能塊圖。

如圖23所示,圖片編碼部24的構(gòu)成中包含條帶頭編碼部241、以及CTU編碼部242。

條帶頭編碼部241根據(jù)輸入的Active參數(shù)集,生成以條帶為單位輸入的各層的輸入圖像編碼中使用的條帶頭。所生成的條帶頭作為條帶編碼數(shù)據(jù)的一部分被輸出,同時,與輸入圖像一起被提供給CTU編碼部242。另外,通過條帶頭編碼部241生成的條帶頭中,包含了確定各層圖片解碼時參考的圖片參數(shù)集PPS(Active PPS)的Active PPS標(biāo)識符。

CTU編碼部242根據(jù)輸入的Active參數(shù)集、條帶頭,對輸入圖像(對象條帶部分)以CTU單位進(jìn)行編碼,生成并輸出對象條帶的條帶數(shù)據(jù)及解碼圖像(解碼圖片)。更具體地說,CTU編碼部242,以參數(shù)集包含的CTB尺寸大小的CTB為單位對對象條帶的輸入圖像進(jìn)行分割,將對應(yīng)各CTB的圖像作為1個CTU進(jìn)行編碼。CTU的編碼通過預(yù)測殘差編碼部2421、預(yù)測圖像編碼部2422、CTU解碼圖像生成部2423執(zhí)行。

預(yù)測殘差編碼部2421將輸入的輸入圖像和預(yù)測圖像的差分圖像通過變換、量化后得到的量化殘差信息(TT信息)作為條帶編碼數(shù)據(jù)中包含的條帶數(shù)據(jù)的一部分輸出。而且,對量化殘差信息采用逆變換、逆量化恢復(fù)預(yù)測殘差,將恢復(fù)后的預(yù)測殘差輸出到CTU解碼圖像生成部2423。

預(yù)測圖像編碼部2422根據(jù)編碼參數(shù)決定部26決定的、對象條帶中包含的對象CTU的預(yù)測方式及預(yù)測參數(shù),生成預(yù)測圖像,輸出給預(yù)測殘差編碼部2421和CTU解碼圖像生成部2423。另外,預(yù)測方式和預(yù)測參數(shù)等信息作為預(yù)測信息(PT信息)被可變長度編碼后,作為條帶編碼數(shù)據(jù)中包含的條帶數(shù)據(jù)的一部分輸出。預(yù)測圖像編碼部2422可選擇的預(yù)測方式中,至少包含了層間圖像預(yù)測。使用幀間預(yù)測、或?qū)娱g圖像預(yù)測時,由解碼圖片管理部15讀出對應(yīng)的參考圖片。

CTU解碼圖像生成部2423因為與分層視頻解碼裝置1中的CTU解碼圖像生成部1423是同一構(gòu)成元素,所以省略說明。另外,對象CTU的解碼圖像被提供給解碼圖片管理部15,記錄在內(nèi)部的DPB中。

<圖片編碼部24的編碼流程>

以下、參考圖24概要說明圖片編碼部24中的對象層i的圖片的編碼動作。圖24所示為圖片編碼部24中構(gòu)成對象層i的圖片的以條帶為單位的編碼流程圖。

(SE101)對編碼對象條帶的先頭條帶標(biāo)記(first_slice_segment_in_pic_flag)進(jìn)行編碼。即,以條帶為單位分割的輸入圖像(以下稱編碼對象條帶)依圖片內(nèi)的編碼順序(解碼順序)(以下稱處理順序),如果是先頭條帶,則先頭條帶標(biāo)記(first_slice_segment_in_pic_flag)為1。編碼對象條帶如果不是先頭條帶,則先頭條帶標(biāo)記為0。另外,當(dāng)先頭條帶標(biāo)記為1時,編碼對象條帶的先頭CTU地址設(shè)為0。并且,圖片內(nèi)的已處理CTU數(shù)的計數(shù)器numCtu設(shè)為0。當(dāng)先頭條帶標(biāo)記為0時,根據(jù)后述的SE106中被編碼的條帶地址,設(shè)置編碼對象條帶的先頭CTU地址。

(SE102)對確定編碼對象條帶編碼時參考的Active PPS的Active PPS標(biāo)識符(slice_pic_paramter_set_id)進(jìn)行編碼。

(SE104)獲取編碼參數(shù)決定部26決定的Active參數(shù)集。即,將與編碼對象條帶參考的Active PPS標(biāo)識符(slice_pic_parameter_set_id)有相同PPS標(biāo)識符(pps_pic_parameter_set_id)的PPS作為Active PPS,從編碼參數(shù)決定部26取來Active PPS的編碼參數(shù)(讀出)。將與Active PPS內(nèi)的Active SPS標(biāo)識符(pps_seq_parameter_set_id)有相同的SPS標(biāo)識符(sps_seq_parameter_set_id)的SPS作為Active SPS,從編碼參數(shù)決定部26取來Active SPS的編碼參數(shù)。將與Active SPS內(nèi)的Active VPS標(biāo)識符(sps_video_parameter_set_id)有相同VPS標(biāo)識符(vps_video_parameter_set_id)的VPS作為Active VPS,從編碼參數(shù)決定部26取來Active VPS的編碼參數(shù)。

(SE105)根據(jù)先頭條帶標(biāo)記判斷編碼對象條帶是不是按圖片內(nèi)處理順序的先頭條帶。當(dāng)先頭條帶標(biāo)記為0時(SE105判斷為Yes),進(jìn)入步驟SE106。除此以外的情況(SE105判斷為No),跳過步驟SE106的處理。另外,當(dāng)先頭條帶標(biāo)記為1時,編碼對象條帶的條帶地址為0。

(SE106)對編碼對象條帶的條帶地址(slice_segment_address)進(jìn)行編碼。另外,編碼對象條帶的條帶地址(編碼對象條帶的先頭CUT地址),可以根據(jù)圖片內(nèi)的已處理CTU數(shù)的計數(shù)器numCtu進(jìn)行設(shè)置。此時,條帶地址為slice_segment_adress=numCtu。即,編碼對象條帶的先頭CTU地址=numCtu。另外,條帶地址的決定方法并不僅限于此,可在實施可能的范圍內(nèi)變更。

···省略···

(SE10A)CTU編碼部242,根據(jù)輸入的Active參數(shù)集、條帶頭,對輸入圖像(編碼對象條帶)以CTU為單位進(jìn)行編碼,作為編碼對象條帶的條帶數(shù)據(jù)的一部分,輸出CTU信息的編碼數(shù)據(jù)(圖18的SYNSD01)。而且,CTU編碼部242,生成并輸出對應(yīng)各CTU的區(qū)域的CTU解碼圖像。在各CTU信息的編碼數(shù)據(jù)后,對表示該CTU是否是編碼對象條帶終點的條帶終點標(biāo)記(end_of_slice_segment_flag)(圖18的SYNSD2)進(jìn)行編碼。如果該CTU是編碼對象條帶的終點,條帶終點標(biāo)記設(shè)為1,除此以外的情況設(shè)為0,進(jìn)行編碼。各CTU編碼后,已處理CTU數(shù)numCtu的值加1(numCtu++)。

(SE10B)根據(jù)條帶終點標(biāo)記判斷該CTU是否是編碼對象條帶的終點。條帶終點標(biāo)記為1時(SE10B判斷為Yes),進(jìn)入步驟SE10C。除此以外的情況(SE10B判斷為No),為了對后續(xù)的CTU進(jìn)行編碼,進(jìn)入步驟SE10A。

(SE10C)判斷已處理CTU數(shù)numCtu是否達(dá)到了構(gòu)成圖片的CTU總數(shù)(PicSizelnCtbsY)。即,判斷是否numCtu==PicSizelnCtbsY。如果numCtu等于PicSizelnCtbsY(SE10C判斷為Yes),結(jié)束對構(gòu)成編碼對象圖片的以條帶為單位的編碼處理。除此以外的情況(numCtu<PicSizelnCtbsY)(SE10C判斷為No),為了繼續(xù)對構(gòu)成編碼對象對象圖片以條帶為單位進(jìn)行編碼處理,進(jìn)入步驟SE101。

以上、說明了實施例1的圖片編碼部24的動作,但不僅限于上述步驟,在實施可能的范圍內(nèi),可以變更步驟。

(視頻編碼裝置2的效果)

以上說明的本實施例相關(guān)的分層視頻編碼裝置2,為了保證分層視頻解碼裝置1(包括其變化實施例)是可解碼的比特流,按滿足上述的CX1(CX1’)、或CX2(CX2’)、或CY1、或CY2、或(CY2且CY3且CY4)、或CZ1、或、(CZ1且CA1且CA2且”VPS的層標(biāo)識符nuh_layer_id為0”)的比特流一致性條件,生成對象層集的分層編碼數(shù)據(jù)DATA。通過生成滿足上述比特流一致性的分層編碼數(shù)據(jù)DATA,防止分層解碼裝置1中,從某層集的比特流中、通過比特流處理生成的、只包含該層集子集的層集的比特流上發(fā)生不能解碼的層。

以上說明的本實施例相關(guān)的分層視頻編碼裝置2,通過將對象層編碼用的參數(shù)集(VPS,SPS、PPS),用于參考層編碼的參數(shù)集的共享,可減少對象層參數(shù)集的相關(guān)符號量。即,可通過更少的符號量進(jìn)行參數(shù)集編碼。

(對其它分層視頻編碼/解碼系統(tǒng)的適用例)

上述的分層視頻編碼裝置2以及分層視頻解碼裝置1,可搭載在用于視頻發(fā)送、接收、記錄、播放的各種裝置中使用。其中的視頻可以是通過攝像頭(照相機(jī))等拍攝的自然視頻,也可以是通過計算機(jī)等生成的人工視頻(包括CG及GUI)。

根據(jù)圖25,說明上述分層視頻編碼裝置2及分層視頻解碼裝置1可用于視頻的發(fā)送和接收。圖25(a)所示為搭載了分層視頻編碼裝置2的發(fā)送裝置PROD_A的構(gòu)成方塊圖。

如圖25(a)所示,發(fā)送裝置PROD_A包括:編碼部PROD_A1,通過對視頻進(jìn)行編碼而獲得編碼數(shù)據(jù);調(diào)制部PROD_A2,通過用編碼部PROD_A1獲得的編碼數(shù)據(jù)對載波進(jìn)行調(diào)制而得到調(diào)制信號;發(fā)送部PROD_A3,發(fā)送調(diào)制部PROD_A2得到的調(diào)制信號。上述的分層視頻編碼裝置2作為該編碼部PROD_A1使用。

發(fā)送裝置PROD_A作為向編碼部PROD_A1輸入視頻的供給源,也可包括錄制視頻的攝像頭(照相機(jī))PROD_A4、記錄視頻的記憶媒體PROD_A5、從外部輸入視頻的輸入端子PROD_A6、以及生成或加工圖像的圖像處理部A7。圖25(a)所示為包括了所有這些部分的發(fā)送裝置PROD_A的構(gòu)成示例,但也可以省略一部分。

另外,記憶媒體PROD_A5記錄的還可以是未經(jīng)編碼的視頻,還可以是與傳輸用編碼方式不同的記錄用編碼方式編碼的視頻。是后者時,在記憶媒體PROD_A5與編碼部PROD_A1之間最好有解碼部(圖中未表示),將從記憶媒體PROD_A5讀出的編碼數(shù)據(jù)按照記錄用的編碼方式進(jìn)行解碼。

圖25(b)所示為搭載分層視頻解碼裝置1的接收裝置PROD_B的構(gòu)成方塊圖。如圖25(b)所示,接收裝置PROD_B包括:接收部PROD_B1,接收調(diào)制信號;解調(diào)部PROD_B2,對接收部PROD_B1接收的調(diào)制信號進(jìn)行解調(diào)而獲得編碼數(shù)據(jù);解碼部PROD_B3,對解調(diào)部PROD_B2獲得的編碼數(shù)據(jù)進(jìn)行解碼而獲得視頻。上述的分層視頻解碼裝置1作為此解碼部PROD_B3使用。

接收裝置PROD_B作為解碼部PROD_B3輸出視頻的提供對象,也可包括顯示視頻的顯示器PROD_B4、記錄視頻用的記憶媒體PROD_B5、以及向外部輸出視頻用的輸出端子PROD_B6。圖25(b)所示為包括了所有這些部分的接收裝置PROD_B的構(gòu)成示例,但也可以省略一部分。

另外,記憶媒體PROD_B5記錄的還可以是未經(jīng)編碼的視頻,可以采用與傳輸用編碼方式不同的記錄用編碼方式編碼。是后者時,在解碼部PROD_B3和記憶媒體PROD_B5之間最好有編碼部(圖中未表示),將從解碼部PROD_B3獲取的視頻按照記錄用編碼方式進(jìn)行編碼。

另外,傳輸調(diào)制信號的傳輸媒體可以是無線也可以是有線。而且,傳輸調(diào)制信號的傳輸模式可以是廣播(此處指沒有預(yù)先指定發(fā)送對象的發(fā)送方式),也可以是通信(此處指預(yù)先指定了發(fā)送對象的發(fā)送方式)。即,可通過無線廣播、有線廣播、無線通信、以及有線通信中的任何一種方式來實現(xiàn)調(diào)制信號的傳輸。

例如,地上波數(shù)字廣播的電視臺(廣播設(shè)備等)/接收臺(電視接收機(jī)等)即是用無線廣播發(fā)送/接收調(diào)制信號的發(fā)送裝置PROD_A/接收裝置PROD_B的一個示例。有線電視廣播的電視臺(廣播設(shè)備等)/接收臺(電視接收機(jī)等)即是用有線廣播發(fā)送/接收調(diào)制信號的發(fā)送裝置PROD_A/接收裝置PROD_B的一個示例。

利用互聯(lián)網(wǎng)的VOD(Video On Demand)服務(wù)和視頻共享服務(wù)等的服務(wù)器(工作站等)/客戶端(電視接收機(jī)、個人電腦、智能手機(jī)等)也是用通信發(fā)送/接收調(diào)制信號的發(fā)送裝置PROD_A/接收裝置PROD_B的一個示例(通常、LAN中的傳輸媒體采用了無線或有線,WAN中的傳輸媒體采用有線)。此處的個人電腦中包含臺式電腦、便攜式電腦、以及平板電腦。而且,智能手機(jī)中還包括多功能手機(jī)終端。

另外,視頻共享服務(wù)的客戶端,在將從服務(wù)器下載的編碼數(shù)據(jù)進(jìn)行解碼后在顯示器上顯示的功能的基礎(chǔ)上,還有將用攝像頭(照相機(jī))撮像的視頻進(jìn)行編碼后向服務(wù)器上傳的功能。即,視頻共享服務(wù)的客戶端具有發(fā)送裝置PROD_A以及接收裝置PROD_B雙方的功能。

通過圖26來說明可將上述的分層視頻編碼裝置2及分層視頻解碼裝置1用于視頻的記錄及播放。圖26(a)所示為搭載上述分層視頻編碼裝置2的記錄裝置PROD_C的構(gòu)成方塊圖。

如圖26(a)所示,記錄裝置PROD_C包含:編碼部PROD_C1,它通過對視頻進(jìn)行編碼而獲得編碼數(shù)據(jù);寫入部PROD_C2,它將編碼部PROD_C1獲得的編碼數(shù)據(jù)寫入記憶媒體PROD_M(jìn)。上述的分層視頻編碼裝置2作為此編碼部PROD_C1使用。

另外,記憶媒體PROD_M也可以是:(1)置于記錄裝置PROD_C內(nèi)部的內(nèi)置型,如HDD(Hard Disk Drive)和SSD(Solid State Drive)等;(2)與記錄裝置PROD_C連接的類型,如SD存儲卡和USB(Universal Serial Bus)閃存等;(3)裝入記錄裝置PROD_C內(nèi)置的驅(qū)動裝置(圖中未表示)的類型,如DVD(Digital Versatile Disc)和BD(BLu-ray Disc:注冊商標(biāo))等。

記錄裝置PROD_C,作為向編碼部PROD_C1輸入的視頻的供給源,也可包括:進(jìn)行視頻撮像的攝像頭(照相機(jī))PROD_C3;用于視頻從外部的輸入的輸入端子PROD_C4;用于視頻接收的接收部PROD_C5;進(jìn)行圖像生成和加工的圖像處理部C6。圖26(a)所示為包括了所有這些部分的記錄裝置PROD_C的構(gòu)成示例,但也可以省略一部分。

另外,接收部PROD_C5接收的也可以是未經(jīng)編碼的視頻,也可以是不同于記錄用編碼方式的傳輸用編碼方式所編碼的編碼數(shù)據(jù)。是后者時,在接收部PROD_C5和編碼部PROD_C1之間最好有傳輸用解碼部(圖中未表示),將傳輸用編碼方式編碼的編碼數(shù)據(jù)進(jìn)行解碼。

這樣的記錄裝置PROD_C有例如DVD刻錄機(jī)、BD刻錄機(jī)、HDD(Hard Disk Drive)刻錄機(jī)等(此時,輸入端子PROD_C4或接收部PROD_C5為視頻的主要供給源)。便攜式錄像機(jī)(此時,攝像頭(照相機(jī))PROD_C3為視頻的主要供給源)、個人電腦(此時,接收部PROD_C5或圖像處理部C6為視頻的主要供給源)、智能手機(jī)(此時,攝像頭(照相機(jī))PROD_C3或接收部PROD_C5為視頻的主要供給源)等,也是這種記錄裝置PROD_C的實例。

圖26(b)所示為搭載上述的分層視頻解碼裝置1的播放裝置PROD_D的構(gòu)成方塊圖。如圖26(b)所示,播放裝置PROD_D包括:讀出部PROD_D1,它讀出寫在記憶媒體PROD_M中的編碼數(shù)據(jù);解碼部PROD_D2,它對讀出部PROD_D1讀出的編碼數(shù)據(jù)進(jìn)行解碼而得到視頻。上述分層視頻解碼裝置1作為此解碼部PROD_D2使用。

記憶媒體PROD_M也可以是:(1)置于播放裝置PROD_D內(nèi)部的內(nèi)置型,如HDD和SSD等;(2)與播放裝置PROD_D連接的類型,如SD存儲卡和USB閃存等;(3),裝入播放裝置PROD_D內(nèi)置的驅(qū)動裝置(圖中未表示)的類型,如DVD和BD等。

播放裝置PROD_D,作為解碼部PROD_D2輸出視頻的提供對象,也可包括:顯示視頻的顯示器PROD_D3;用于將視頻向外部輸出的輸出端子PROD_D4;以及用于發(fā)送視頻的發(fā)送部PROD_D5。圖26(b)所示為包括了所有這些部分的播放裝置PROD_D的構(gòu)成示例,但也可以省略一部分。

另外,發(fā)送部PROD_D5發(fā)送的也可以是未經(jīng)編碼的視頻,也可以是不同于記錄用編碼方式的傳輸用編碼方式所編碼的編碼數(shù)據(jù)。是后者時,在解碼部PROD_D2和發(fā)送部PROD_D5之間最好有編碼部(圖中未表示),將視頻用傳輸用編碼方式進(jìn)行編碼。

這樣的播放裝置PROD_D有例如DVD播放機(jī)、BD播放機(jī)、HDD播放機(jī)等(此時,與電視接收機(jī)等連接的輸出端子PROD_D4為視頻的主要提供對象)。而且,電視接收機(jī)(此時,顯示器PROD_D3為視頻的主要提供對象)、數(shù)字標(biāo)牌(也稱電子標(biāo)牌等,顯示器PROD_D3或發(fā)送部PROD_D5為視頻的主要提供對象)、臺式電腦(此時,輸出端子PROD_D4或發(fā)送部PROD_D5為視頻的主要提供對象)、便攜式電腦或平板電腦(此時,顯示器PROD_D3或發(fā)送部PROD_D5為視頻的主要提供對象)、智能手機(jī)(此時,顯示器PROD_D3或發(fā)送部PROD_D5為視頻的主要提供對象)等也是這種播放裝置PROD_D的實例。

(由硬件實現(xiàn)及由軟件實現(xiàn))

分層視頻解碼裝置1、分層視頻編碼裝置2的各功能塊,可以通過集成電路(IC芯片)上形成的邏輯電路通過硬件實現(xiàn),也可以利用CPU(Central Processing Unit)通過軟件實現(xiàn)。

后者時,上述各裝置具備:執(zhí)行實現(xiàn)各功能控制程序命令的CPU、存儲上述程序的ROM(Read Only Memory)、展開上述程序的RAM(Random Access Memory)、以及存儲上述程序和各種數(shù)據(jù)的內(nèi)存等記憶裝置(記憶媒體)等。因此,也可通過將記錄了可在計算機(jī)上讀取的、作為實現(xiàn)上述功能的軟件的上述各裝置的控制程序的程序代碼(執(zhí)行碼、中間碼、源代碼)的記憶媒體,提供給上述各裝置,該計算機(jī)(或CPU、MPU(Micro Processing Unit)等)讀出并執(zhí)行記錄在記憶媒體中的程序代碼,來實現(xiàn)本發(fā)明的目的。

上述記憶媒體,可使用如:磁帶、盒式磁帶等記錄帶類;包括軟盤(floppy disk,注冊商標(biāo))/硬盤等磁盤、CD-ROM(Compact Disc Read-Only Memory)/MO(Magneto-Optical)/MD(Mini Disc)/DVD(Digital Versatile Disk)/CD-R(CD Recordable)等光盤在內(nèi)的盤類;IC卡(包括內(nèi)存卡)/光卡等卡類;掩膜ROM/EPROM(Erasable Programmable Read-only Memory)/EEPROM(注冊商標(biāo))(Electrically Erasable and Programmable Read-only Memory)/閃存ROM等半導(dǎo)體存儲類;PLD(Programmable Logic Device)、FPGA(Field Programmable Gate Array)等邏輯電路類等。

上述各裝置可與通信網(wǎng)絡(luò)連接,上述程序代碼也可通過通信網(wǎng)絡(luò)提供。該通信網(wǎng)絡(luò),只要能傳輸程序代碼即可,沒有特別的限制。例如可利用互聯(lián)網(wǎng)、以太網(wǎng)、外聯(lián)網(wǎng)、LAN(Local Area Network)、ISDN(lntegrated Services Digital Network)、VAN(Value-Added Network)、CATV(Community Antenna Television)通信網(wǎng)、虛擬專用網(wǎng)(Virtual Private Network)、電話網(wǎng)、移動通信網(wǎng)、衛(wèi)星通信網(wǎng)等。而且構(gòu)成此通信網(wǎng)絡(luò)的傳輸媒體也只需是可以傳輸程序代碼的媒體,對其構(gòu)成和種類沒有特別的限制。例如可利用有線如IEEE(lnstitute of Electrical and Electronic Engineers)1394、USB、電力輸送線、有線電視線、電話線、ADSL(Asymmetric DigitalSubscriber Line)線路等,無線如IrDA(lnfrared Data Association)、如遙控器那樣的紅外線、Bluetooth(注冊商標(biāo))、IEEE802.11無線、HDR(High Data Rate)、NFC(Near Field Communication)、DLNA(注冊商標(biāo))(Digital Living Network Alliance)、移動電話網(wǎng)、衛(wèi)星傳輸、地上波數(shù)字網(wǎng)等。另外,本發(fā)明也可通過上述程序代碼在電子傳輸中而具體化的、嵌在載波中的計算機(jī)數(shù)據(jù)信號的形式實現(xiàn)。

〔總結(jié)〕

本發(fā)明的方式1的相關(guān)圖像解碼裝置,是對輸入圖像編碼數(shù)據(jù)進(jìn)行解碼的圖像解碼裝置,其特征在于:具有圖像編碼數(shù)據(jù)抽取部,根據(jù)表示由1個以上的層構(gòu)成的解碼對象層集的層ID列表,從前述輸入圖像編碼數(shù)據(jù)中抽取前述解碼對象層集的相關(guān)圖像編碼數(shù)據(jù);具有圖片解碼部,通過前述抽取的圖像編碼數(shù)據(jù)對解碼對象層集的圖片進(jìn)行解碼;從前述圖像編碼數(shù)據(jù)抽取部抽取的前述輸入圖像編碼數(shù)據(jù)不包含層標(biāo)識符不等于0且具有前述層ID列表中不包含的層標(biāo)識符的non-VCL NAL單元。

本發(fā)明的方式2的相關(guān)圖像解碼裝置,其特征在于:在上述方式1中,前述圖像編碼數(shù)據(jù)中包含的NAL單元的時域ID,在前述解碼對象層集的最高時域ID的值以下。

本發(fā)明的方式3的相關(guān)圖像解碼裝置,其特征在于:在上述方式1中,前述non-VCL NAL單元是具有參數(shù)集的NAL單元。

本發(fā)明的方式4的相關(guān)圖像解碼裝置,其特征在于:在上述方式2中,前述參數(shù)集包含視頻參數(shù)集。

本發(fā)明的方式5的相關(guān)圖像解碼裝置,其特征在于:在上述方式3中,前述參數(shù)集包含序列參數(shù)集。

本發(fā)明的方式6的相關(guān)圖像解碼裝置,其特征在于:在上述方式3中,前述參數(shù)集包含圖片參數(shù)集。

本發(fā)明的方式7的相關(guān)圖像解碼方法,是對輸入圖像編碼數(shù)據(jù)進(jìn)行解碼的圖像解碼方法,其特征在于:具有圖像編碼數(shù)據(jù)抽取流程,根據(jù)表示由1以上的層構(gòu)成的解碼對象層集的層ID列表,從前述輸入圖像編碼數(shù)據(jù)中抽取前述解碼對象層集的相關(guān)圖像編碼數(shù)據(jù);具有圖片解碼流程,通過前述抽取的圖像編碼數(shù)據(jù)對解碼對象層集的圖片進(jìn)行解碼;在前述圖像編碼數(shù)據(jù)抽取流程中抽取的前述輸入圖像編碼數(shù)據(jù)不包含層標(biāo)識符不等于0且具有前述層ID列表中不包含的層標(biāo)識符的non-VCL NAL單元。

本發(fā)明的方式8的相關(guān)圖像解碼裝置,其特征在于:具有圖像編碼數(shù)據(jù)抽取部,根據(jù)對象層集的層ID列表從輸入圖像編碼數(shù)據(jù)中抽取解碼對象圖像編碼數(shù)據(jù);并且,前述圖像編碼數(shù)據(jù)抽取部具有層標(biāo)識符更新部,將輸入圖像編碼數(shù)據(jù)中具有比對象層集的層ID列表中的最低層標(biāo)識符更小的層標(biāo)識符的非視頻編碼層NAL單元的層標(biāo)識符更新為前述最低層標(biāo)識符;前述圖像編碼數(shù)據(jù)抽取部,從包含通過前述層標(biāo)識符更新部更新了層標(biāo)識符的非視頻編碼層NAL單元的圖像編碼數(shù)據(jù)中,丟棄具有前述對象層集的層ID列表中不包含的層標(biāo)識符的NAL單元,生成解碼對象圖像編碼數(shù)據(jù)。

通過以上的圖像解碼裝置,可防止發(fā)生在進(jìn)行了比特流抽取后的比特流上、層集中不包含非視頻編碼層的NAL單元的問題。即,可防止從某層集的比特流中、通過比特流抽取處理生成的、只包含該層集子集的層集的比特流上出現(xiàn)不能解碼的層。

本發(fā)明的方式9的相關(guān)圖像解碼裝置,其特征在于:具有圖像編碼數(shù)據(jù)抽取部,根據(jù)對象層集的層ID列表從輸入圖像編碼數(shù)據(jù)中抽取解碼對象圖像編碼數(shù)據(jù);前述圖像編碼數(shù)據(jù)抽取部,從前述輸入圖像編碼數(shù)據(jù)中,除了層標(biāo)識符為0的參數(shù)集的NAL單元外,丟棄具有前述對象層集的層ID列表中不包含的層標(biāo)識符的NAL單元,生成解碼對象圖像編碼數(shù)據(jù)。

通過以上的圖像解碼裝置,可防止發(fā)生在進(jìn)行了比特流抽取后的比特流上、層集中不包含層標(biāo)識符為0的參數(shù)集的NAL單元的問題。即,可防止從某層集的比特流中、通過比特流抽取處理生成的、只包含該層集子集的層集的比特流上出現(xiàn)不能解碼的層。

本發(fā)明的方式10的相關(guān)圖像解碼裝置,其特征在于:具有圖像編碼數(shù)據(jù)抽取部,根據(jù)對象層集的層ID列表,從輸入圖像編碼數(shù)據(jù)中抽取解碼對象圖像編碼數(shù)據(jù);并且,前述圖像編碼數(shù)據(jù)抽取部具有依賴層信息導(dǎo)出部,在輸入圖像編碼數(shù)據(jù)中導(dǎo)出對象層集的各層依賴的依賴層信息;前述圖像編碼數(shù)據(jù)抽取部,從前述輸入圖像編碼數(shù)據(jù)中,除了通過前述依賴層信息導(dǎo)出部導(dǎo)出的依賴層的NAL單元外、丟棄具有前述對象層集的層ID列表中不包含的層標(biāo)識符的NAL單元,生成解碼對象圖像編碼數(shù)據(jù)。

通過以上的圖像解碼裝置,可防止發(fā)生在進(jìn)行了比特流抽取后的比特流上、層集中不包含對象層集的各層依賴的依賴層的NAL單元的問題。即,可防止從某層集的比特流中、通過比特流抽取處理生成的、只包含該層集子集的層集的比特流上出現(xiàn)不能解碼的層。

本發(fā)明的方式11的相關(guān)圖像解碼裝置,其特征在于:在上述方式8中,前述非視頻編碼層NAL單元是包含參數(shù)集的NAL單元。

通過以上的圖像解碼裝置,可防止發(fā)生在進(jìn)行了比特流抽取后的比特流上、層集中不包含參數(shù)集的NAL單元的問題。

本發(fā)明的方式12的相關(guān)圖像解碼裝置,其特征在于:在上述方式9或方式11中,前述參數(shù)集是視頻參數(shù)集。

通過以上的圖像解碼裝置,可防止發(fā)生在進(jìn)行了比特流抽取后的比特流上、層集中不包含視頻參數(shù)集的NAL單元的問題。

本發(fā)明的方式13的相關(guān)圖像解碼裝置,其特征在于:在上述方式9或方式11中,前述參數(shù)集是序列參數(shù)集。

通過以上的圖像解碼裝置,可防止發(fā)生在進(jìn)行了比特流抽取后的比特流上、層集中不包含序列參數(shù)集的NAL單元的問題。

本發(fā)明的方式14的相關(guān)圖像解碼裝置,其特征在于:在上述方式9或方式11中,前述參數(shù)集是圖片參數(shù)集。

通過以上的圖像解碼裝置,可防止發(fā)生在進(jìn)行了比特流抽取后的比特流上、層集中不包含圖片參數(shù)集的NAL單元的問題。

本發(fā)明的方式15的相關(guān)圖像解碼裝置,其特征在于:在上述方式10中,前述依賴層是直接參考層或間接參考層。

通過以上的圖像解碼裝置,可防止發(fā)生在進(jìn)行了比特流抽取后的比特流上、層集中不包含對象層集的各層依賴的直接參考層或間接參考層的NAL單元的問題。

本發(fā)明的方式16的相關(guān)圖像編碼數(shù)據(jù),其特征在于:它是滿足“某對象層參考的視頻參數(shù)集,與包含對象層的接入單元中的具有最低層標(biāo)識符的VCL有相同的層標(biāo)識符”的一致性條件的圖像編碼數(shù)據(jù)。

通過以上的圖像編碼數(shù)據(jù),可以防止發(fā)生在由前述圖像編碼數(shù)據(jù)通過比特流抽取而生成的子比特流中、層集中不包含視頻參數(shù)集的問題。即,可防止從某層集的比特流中、通過比特流抽取處理生成的、只包含該層集子集的層集的比特流上出現(xiàn)不能解碼的層。

本發(fā)明的方式17的相關(guān)圖像編碼數(shù)據(jù),其特征在于:它滿足“某對象層參考的視頻參數(shù)集的層標(biāo)識符值為0”的一致性條件。

通過以上的圖像編碼數(shù)據(jù),可以防止發(fā)生在由前述圖像編碼數(shù)據(jù)通過比特流抽取而生成的子比特流中,層集中不包含層標(biāo)識符為0的視頻參數(shù)集的問題。即,可防止從某層集的比特流中、通過比特流抽取處理生成的、只包含該層集子集的層集的比特流上出現(xiàn)不能解碼的層。

本發(fā)明的方式18的相關(guān)圖像編碼數(shù)據(jù),其特征在于:在上述方式17中,它是還滿足“某對象層參考的序列參數(shù)集的層標(biāo)識符值為0”的一致性條件的圖像編碼數(shù)據(jù)。

通過以上的圖像編碼數(shù)據(jù),可以防止發(fā)生在由前述圖像編碼數(shù)據(jù)通過比特流抽取而生成的子比特流中,層集中不存在層標(biāo)識符為0的序列參數(shù)集的問題。

本發(fā)明的方式19的相關(guān)圖像編碼數(shù)據(jù),其特征在于:在上述方式17或方式18中,它還是滿足某對象層參考的圖片參數(shù)集的層標(biāo)識符的值為0的一致性條件的圖像編碼數(shù)據(jù)。

通過以上的圖像編碼數(shù)據(jù),可以防止發(fā)生在由前述圖像編碼數(shù)據(jù)通過比特流抽取生成的子比特流中,層集中不包含層標(biāo)識符為0的圖片參數(shù)集的問題。

本發(fā)明的方式20的相關(guān)圖像編碼數(shù)據(jù),其特征在于:它是滿足“層集中包含層集內(nèi)的某對象層參考的依賴層”的一致性條件的圖像編碼數(shù)據(jù)。

通過以上的圖像編碼數(shù)據(jù),可以防止發(fā)生在由前述圖像編碼數(shù)據(jù)通過比特流抽取生成的子比特流中,層集中不包含層集內(nèi)的某對象層參考的依賴層的問題。即,可防止從某層集的比特流中、通過比特流抽取處理生成的、只包含該層集子集的層集的比特流上出現(xiàn)不能解碼的層。

本發(fā)明的方式21的相關(guān)圖像編碼裝置,其特征在于:它是根據(jù)對象層集的層ID列表,從對應(yīng)前述對象層集的輸入層圖像中生成圖像編碼數(shù)據(jù)的圖像編碼裝置;前述圖像編碼裝置生成的圖像編碼數(shù)據(jù),滿足“在上述對象層集內(nèi),某對象層參考的非視頻編碼層的層標(biāo)識符,是與前述對象層集的接入單元中具有最低層標(biāo)識符的VCL有相同的層標(biāo)識符”的一致性條件的圖像編碼數(shù)據(jù)。

通過以上的圖像編碼裝置,可以防止發(fā)生在由上述圖像編碼裝置生成的圖像編碼數(shù)據(jù),通過比特流抽取而生成的子比特流中,不包含某對象層參考的非視頻編碼層的NAL單元的問題。即,可防止從某層集的比特流中、通過比特流抽取處理生成的、只包含該層集子集的層集的比特流上出現(xiàn)不能解碼的層。

本發(fā)明的方式22的相關(guān)圖像編碼裝置,其特征在于:它是根據(jù)對象層集的層ID列表,從對應(yīng)前述對象層集的輸入層圖像生成圖像編碼數(shù)據(jù)的圖像編碼裝置;前述圖像編碼裝置生成的圖像編碼數(shù)據(jù),滿足“在前述對象層集內(nèi),某對象層參考的非視頻編碼層的層標(biāo)識符是前述對象層集的層ID列表中的最低層標(biāo)識符”的一致性條件。

通過以上的圖像編碼裝置,可以防止在由上述圖像編碼裝置生成的圖像編碼數(shù)據(jù),通過比特流抽取而生成的子比特流中,不包含某對象層參考的非視頻編碼層的NAL單元的問題。即,可防止從某層集的比特流中、通過比特流抽取處理生成的、只包含該層集子集的層集的比特流上出現(xiàn)不能解碼的層。

本發(fā)明的方式23的相關(guān)圖像編碼裝置,其特征在于:它是根據(jù)對象層集的層ID列表,從對應(yīng)前述對象層集的輸入層圖像生成圖像編碼數(shù)據(jù)的圖像編碼裝置;前述圖像編碼裝置生成的圖像編碼數(shù)據(jù),滿足“在前述對象層集內(nèi),各層依賴的依賴層包含在前述對象層集中”的一致性條件。

通過以上的圖像編碼裝置,可以防止在由上述圖像編碼裝置生成的圖像編碼數(shù)據(jù),通過比特流抽取而生成的子比特流中,不包含某對象層參考的依賴層的NAL單元的問題。即,可防止從某層集的比特流中、通過比特流抽取處理生成的、只包含該層集子集的層集的比特流上出現(xiàn)不能解碼的層。

本發(fā)明并不只限于上述的各實施例,在權(quán)利要求所示范圍內(nèi)可有各種變化,在不同實施例中對公開的技術(shù)方法進(jìn)行適當(dāng)組合而得到的實施例也包含在本發(fā)明的技術(shù)范圍內(nèi)。

在行業(yè)中使用的可能性

本發(fā)明可根據(jù)需要應(yīng)用于對圖像數(shù)據(jù)分層編碼的編碼數(shù)據(jù)進(jìn)行解碼的分層視頻解碼裝置、以及生成圖像數(shù)據(jù)分層編碼的編碼數(shù)據(jù)的分層視頻編碼裝置中。而且,也可根據(jù)需要用于由分層視頻編碼裝置生成的、由分層視頻解碼裝置參考的分層編碼數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)中。

符號的說明

1…分層視頻解碼裝置

2…分層視頻編碼裝置

10…對象層集圖片解碼部

11…NAL解復(fù)用部

12…參數(shù)集解碼部

13…參數(shù)集管理部

14…圖片解碼部

141…條帶頭解碼部

142…CTU解碼部

1421…預(yù)測殘差還原部

1422…預(yù)測圖像生成部

1423…CTU解碼圖像生成部

15…解碼圖片管理部

17…比特流抽取部(圖像編碼數(shù)據(jù)抽取部)

20…對象層集圖片編碼部

21…NAL復(fù)用部

22…參數(shù)集編碼部

24…圖片編碼部

26…編碼參數(shù)決定部

241…條帶頭編碼部

242…CTU編碼部

2421…預(yù)測殘差編碼部

2422…預(yù)測圖像編碼部

2423…CTU解碼圖像生成部

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
循化| 曲麻莱县| 宜春市| 石河子市| 隆昌县| 阿克苏市| 甘洛县| 许昌县| 高邑县| 巩义市| 柳河县| 泰来县| 石家庄市| 铅山县| 嫩江县| 平阳县| 博罗县| 东乡县| 邓州市| 鄯善县| 马尔康县| 安阳县| 屏南县| 吉隆县| 正安县| 五河县| 岐山县| 兴山县| 乳源| 响水县| 临西县| 缙云县| 德昌县| 通渭县| 积石山| 台江县| 黄冈市| 大厂| 乐平市| 民权县| 阿瓦提县|