JP2015195543A - 画像復号装置、画像符号化装置 - Google Patents
画像復号装置、画像符号化装置 Download PDFInfo
- Publication number
- JP2015195543A JP2015195543A JP2014076372A JP2014076372A JP2015195543A JP 2015195543 A JP2015195543 A JP 2015195543A JP 2014076372 A JP2014076372 A JP 2014076372A JP 2014076372 A JP2014076372 A JP 2014076372A JP 2015195543 A JP2015195543 A JP 2015195543A
- Authority
- JP
- Japan
- Prior art keywords
- layer
- output
- decoding
- picture
- identifier
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
【課題】出力レイヤセットの最大サブレイヤ値を、出力レイヤフラグに依存せずに、出力レイヤに含まれる全てのレイヤに関する最大サブレイヤ値に応じて導出しているために生じる、出力レイヤに関係ないサブレイヤの復号の複雑化を解決する方法を提供する。さらに、出力レイヤに関係ないサブレイヤのDPB情報まで符号化されて生じる符号量の増加を解決する方法を提供する。【解決手段】出力レイヤフラグが1であるレイヤに関する最大サブレイヤ値に応じて、出力レイヤ最大サブレイヤ値を導出する。また、出力レイヤセットに含まれるレイヤセットのレイヤ数が、出力レイヤセットに含まれる出力フラグが1のレイヤの数である出力レイヤ数よりも大きい場合に、符号化データから代替レイヤ出力フラグを復号する。【選択図】図1
Description
本発明は、画像が階層的に符号化された階層符号化データを復号する画像復号装置、および画像を階層的に符号化することによって階層符号化データを生成する画像符号化装置に関する。
通信システムで伝送される情報、あるいは蓄積装置に記録される情報の1つに画像あるいは動画像がある。従来、これらの画像(以降、動画像を含む)の伝送・蓄積のため、画像を符号化する技術が知られている。
動画像符号化方式としては、AVC(H.264/MPEG-4 Advanced Video Coding)や、その後継コーデックであるHEVC(High-Efficiency Video Coding)が知られている。
これらの動画像符号化方式では、通常、入力画像を符号化/復号することによって得られる局所復号画像に基づいて予測画像が生成され、当該予測画像を入力画像(原画像)から減算して得られる予測残差(「差分画像」または「残差画像」と呼ぶこともある)が符号化される。また、予測画像の生成方法としては、画面間予測(インター予測)、および、画面内予測(イントラ予測)が挙げられる。
また、近年、必要なデータレートに従って、画像を階層的に符号化するスケーラブル符号化技術、又は階層符号化技術が提案されている。代表的なスケーラブル符号化方式(階層符号化方式)としてSHVC(Scalable HEVC)、及びMV-HEVC(MultiView HEVC)が知られている。
SHVCでは、空間スケーラビリティ、時間スケーラビリティ、SNRスケーラビリティをサポートする。例えば空間スケーラビリティの場合、原画像から所望の解像度にダウンサンプリングした画像を下位レイヤとして符号化する。次に上位レイヤではレイヤ間の冗長性を除去するためにレイヤ間予測を行う(非特許文献2)。
MV-HEVCでは、視点スケーラビリティ(ビュースケーラビリティ)をサポートする。例えば、視点画像0(レイヤ0)、視点画像1(レイヤ1)、視点画像2(レイヤ2)の3つの視点画像を符号化する場合、下位レイヤ(レイヤ0)から、上位レイヤである視点画像1、視点画像2をレイヤ間予測により予測することによりレイヤ間の冗長性の除去が可能である。
SHVCやMV-HEVCでは、復号対象とするレイヤの集合を出力レイヤセットにより指定する。また、復号対象とするサブレイヤの最大値を最高次テンポラル識別子として指定する。また、出力レイヤセットでは、出力フラグによりどのレイヤを出力するかを制御することが可能であり、また、出力レイヤセット単位およびサブレイヤ単位でDPB情報を符号化することができる。また、出力フラグとして指定されたレイヤが出力できない場合には、代替として別のレイヤを出力する技術が知られており、この機能は出力レイヤセット単位で符号化される代替出力フラグによって有効にできる(非特許文献1)。
SHVCやMV-HEVCでは、予測画像の生成に、インター予測、イントラ予測、レイヤ間画像予測のいずれかを利用できる。また、SHVCやMV-HEVCでは、各レイヤのピクチャに対して、補助ピクチャと呼ばれる補助的なピクチャを付加することができる。補助ピクチャは、アルファピクチャ、デプスピクチャなどであり、補助ピクチャ以外のピクチャであるプライマリピクチャに対して、アルファプレーン情報や、デプス情報を付加する。
JCTVC-P1008_v4「High efficiency video coding (HEVC) scalable extensions Draft 5」, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 16th Meeting: San Jose, US, 9-17 Jan. 2014 (2014年1月22日公開)
JCT3V-G1004_v6「MV-HEVC Draft Text 7」, Joint Collaborative Team on 3D Video Coding Extension Development of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 7th Meeting: San Jose, US, 11-17 Jan. 2014. (2014年1月24日公開)
しかしながら、出力レイヤセットの最大サブレイヤ値MaxSubLayersInLayerSetMinus1を、レイヤを出力するか否かを制御する出力レイヤフラグOutputLayerFlagに依存せずに、出力レイヤに含まれる全てのレイヤのsub_layers_vps_max_minus1[]に応じて導出しているため、出力レイヤに関係ないサブレイヤの復号が生じ複雑になるという課題がある。
また、サブレイヤ単位のDPB情報を、出力レイヤフラグOutputLayerFlagに依存せずに導出される最大サブレイヤ値MaxSubLayersInLayerSetMinus1を最大値とするサブレイヤに対して符号化されるため、出力レイヤに関係ないサブレイヤのDPB情報まで符号化され符号量が増加するという課題がある。
また、復号対象とするサブレイヤの最大値を示す最高次テンポラル識別子の指定可能な範囲が、出力レイヤフラグOutputLayerFlagに依存せずに定義されているため、出力レイヤに関係ないサブレイヤを含むように最高次テンポラル識別子の値を指定可能であり、出力レイヤに関係ないサブレイヤの復号を復号装置でサポートする必要があるという課題がある。
また、従来の代替出力フラグの復号は複雑であり、また、出力レイヤセットの含まれる全てのレイヤで出力フラグが1の場合にも、代替出力フラグが符号化されるため、符号量が増大するという課題がある。
また、同じスケーラブルIDを備えるレイヤが許容されているため、スケーラブルIDに基づいて一意にピクチャを特定することができないという課題がある。さらに、同じスケーラブルIDを備えるプライマリピクチャおよび補助ピクチャがある場合、スケーラブルIDを用いて補助ピクチャに対応するプライマリピクチャを一意に区別できないという課題がある。
また、出力レイヤセットのプロファイルがステレオプロファイル("Stereo Main Profile")である場合、出力レイヤセットのプロファイルがステレオプロファイルである場合、プライマリピクチャレイヤ(AuxID[]==0)である出力レイヤの数が0又は1である出力レイヤセットが定義される場合が発生しうるという課題があった。すなわち、ステレオプロファイルである出力レイヤセットにおいて、無意味な出力レイヤセットが定義されうるため、出力レイヤセットに関する符号量が増大するという課題がある。
また、対象レイヤに関するレイヤ間画素位置情報において、対象レイヤに対する非直接参照レイヤのレイヤ間画素位置情報が含まれるうるという課題がある。また、対象レイヤがプライマリピクチャレイヤである場合、該対象レイヤと関連のない補助ピクチャレイヤのレイヤ間画素位置情報が含まれるうるという課題がある。すなわち、対象レイヤに関するレイヤ間画像位置情報の符号量が増大するという課題がある。
また、1又は複数のプライマリピクチャ(レイヤ)に対して、1つの補助ピクチャ(レイヤ)を共有することができないため、プライマリピクチャ(レイヤ)毎に異なった補助ピクチャ(レイヤ)を復号/符号化する必要があり、符号量が増大するという課題がある。
上記の課題を解決するために、本発明の態様1に係る画像復号装置は、階層画像符号化データを復号する画像復号装置であって、
レイヤセットを復号するレイヤセット情報復号手段と、
出力レイヤセットのレイヤセット識別子、出力レイヤフラグ、代替出力レイヤフラグ及びPTL指定識別子を復号する出力レイヤセット情報復号手段と、
上記出力レイヤセットのPTL指定識別子に対応するPTL情報を復号するPTL情報復号手段を備え、
上記出力レイヤセットに対するPTL情報のプロファイル識別子が、ステレオプロファイルを示す場合、上記出力レイヤセットにおいて、プライマリピクチャレイヤの出力レイヤ数は2であることを特徴とする。
レイヤセットを復号するレイヤセット情報復号手段と、
出力レイヤセットのレイヤセット識別子、出力レイヤフラグ、代替出力レイヤフラグ及びPTL指定識別子を復号する出力レイヤセット情報復号手段と、
上記出力レイヤセットのPTL指定識別子に対応するPTL情報を復号するPTL情報復号手段を備え、
上記出力レイヤセットに対するPTL情報のプロファイル識別子が、ステレオプロファイルを示す場合、上記出力レイヤセットにおいて、プライマリピクチャレイヤの出力レイヤ数は2であることを特徴とする。
上記の課題を解決するために、本発明の態様2に係る画像符号化装置は、階層的符号化データを生成する画像符号化装置であって、
レイヤセットを符号化するレイヤセット情報符号化手段と、
出力レイヤセットのレイヤセット識別子、出力レイヤフラグ、代替出力レイヤフラグ及びPTL指定識別子を符号化する出力レイヤセット情報符号化手段と、
上記出力レイヤセットのPTL指定識別子に対応するPTL情報を符号化するPTL情報符号化手段を備え、
上記出力レイヤセットに対するPTL情報のプロファイル識別子が、ステレオプロファイルを示す場合、上記出力レイヤセットにおいて、プライマリピクチャレイヤの出力レイヤ数は2であることを特徴とする。
レイヤセットを符号化するレイヤセット情報符号化手段と、
出力レイヤセットのレイヤセット識別子、出力レイヤフラグ、代替出力レイヤフラグ及びPTL指定識別子を符号化する出力レイヤセット情報符号化手段と、
上記出力レイヤセットのPTL指定識別子に対応するPTL情報を符号化するPTL情報符号化手段を備え、
上記出力レイヤセットに対するPTL情報のプロファイル識別子が、ステレオプロファイルを示す場合、上記出力レイヤセットにおいて、プライマリピクチャレイヤの出力レイヤ数は2であることを特徴とする。
上記の課題を解決するために、本発明の態様3に係る画像復号装置は、階層画像符号化データを復号する画像復号装置であって、
各レイヤのスケーラブル識別子及び補助ピクチャIDAuxIDを復号するスケーラブル識別子復号手段と、
直接依存フラグを復号するレイヤ間依存情報復号手段と、
対象レイヤに対するレイヤ間位置対応情報を復号するレイヤ間位置対応情報復号手段とを備え、
前記対象レイヤに対するレイヤ間位置対応情報に含まれるスケール参照レイヤ識別子の値は、前記対象レイヤのレイヤ識別子の値より小さいことを特徴とする。
各レイヤのスケーラブル識別子及び補助ピクチャIDAuxIDを復号するスケーラブル識別子復号手段と、
直接依存フラグを復号するレイヤ間依存情報復号手段と、
対象レイヤに対するレイヤ間位置対応情報を復号するレイヤ間位置対応情報復号手段とを備え、
前記対象レイヤに対するレイヤ間位置対応情報に含まれるスケール参照レイヤ識別子の値は、前記対象レイヤのレイヤ識別子の値より小さいことを特徴とする。
上記の課題を解決するために、本発明の態様4に係る画像復号装置は、階層画像符号化データを復号する画像復号装置であって、
各レイヤのスケーラブル識別子及び補助ピクチャIDAuxIDを復号するスケーラブル識別子復号手段と、
直接依存フラグを復号するレイヤ間依存情報復号手段と、
対象レイヤに対するレイヤ間位置対応情報を復号するレイヤ間位置対応情報復号手段とを備え、
前記対象レイヤに対するレイヤ間位置対応情報に含まれるスケール参照レイヤ識別子に等しいレイヤ識別子を有するレイヤは、前記対象レイヤの直接参照レイヤであることを特徴とする。
各レイヤのスケーラブル識別子及び補助ピクチャIDAuxIDを復号するスケーラブル識別子復号手段と、
直接依存フラグを復号するレイヤ間依存情報復号手段と、
対象レイヤに対するレイヤ間位置対応情報を復号するレイヤ間位置対応情報復号手段とを備え、
前記対象レイヤに対するレイヤ間位置対応情報に含まれるスケール参照レイヤ識別子に等しいレイヤ識別子を有するレイヤは、前記対象レイヤの直接参照レイヤであることを特徴とする。
上記の課題を解決するために、本発明の態様5に係る画像復号装置は、上記態様4において、さらに、前記対象レイヤに対するレイヤ間位置対応情報に含まれるスケール参照レイヤ識別子に等しいレイヤ識別子を有するレイヤは、前記対象レイヤがプライマリピクチャレイヤである場合、前記プライマリピクチャレイヤに対応する補助ピクチャレイヤであることを特徴とする。
上記の課題を解決するために、本発明の態様6に係る画像符号化装置は、階層的符号化データを生成する画像符号化装置であって、
各レイヤのスケーラブル識別子及び補助ピクチャIDAuxIDを符号化するスケーラブル識別子符号化手段と、
直接依存フラグを符号化するレイヤ間依存情報符号化手段と、
対象レイヤに対するレイヤ間位置対応情報を符号化するレイヤ間位置対応情報符号化手段とを備え、
前記対象レイヤに対するレイヤ間位置対応情報に含まれるスケール参照レイヤ識別子の値は、前記対象レイヤのレイヤ識別子の値より小さいことを特徴とする。
各レイヤのスケーラブル識別子及び補助ピクチャIDAuxIDを符号化するスケーラブル識別子符号化手段と、
直接依存フラグを符号化するレイヤ間依存情報符号化手段と、
対象レイヤに対するレイヤ間位置対応情報を符号化するレイヤ間位置対応情報符号化手段とを備え、
前記対象レイヤに対するレイヤ間位置対応情報に含まれるスケール参照レイヤ識別子の値は、前記対象レイヤのレイヤ識別子の値より小さいことを特徴とする。
上記の課題を解決するために、本発明の態様7に係る画像符号化装置は、階層的符号化データを生成する画像符号化装置であって、
各レイヤのスケーラブル識別子及び補助ピクチャIDAuxIDを符号化するスケーラブル識別子符号化手段と、
直接依存フラグを符号化するレイヤ間依存情報符号化手段と、
対象レイヤに対するレイヤ間位置対応情報を符号化するレイヤ間位置対応情報符号化手段とを備え、
前記対象レイヤに対するレイヤ間位置対応情報に含まれるスケール参照レイヤ識別子に等しいレイヤ識別子を有するレイヤは、前記対象レイヤの直接参照レイヤであることを特徴とする。
各レイヤのスケーラブル識別子及び補助ピクチャIDAuxIDを符号化するスケーラブル識別子符号化手段と、
直接依存フラグを符号化するレイヤ間依存情報符号化手段と、
対象レイヤに対するレイヤ間位置対応情報を符号化するレイヤ間位置対応情報符号化手段とを備え、
前記対象レイヤに対するレイヤ間位置対応情報に含まれるスケール参照レイヤ識別子に等しいレイヤ識別子を有するレイヤは、前記対象レイヤの直接参照レイヤであることを特徴とする。
上記の課題を解決するために、本発明の態様8に係る画像符号化装置は、上記態様7において、さらに、前記対象レイヤに対するレイヤ間位置対応情報に含まれるスケール参照レイヤ識別子に等しいレイヤ識別子を有するレイヤは、前記対象レイヤがプライマリピクチャレイヤである場合、前記プライマリピクチャレイヤに対応する補助ピクチャレイヤであることを特徴とする。
上記の課題を解決するために、本発明の態様9に係る画像復号装置は、階層画像符号化データを復号する画像復号装置であって、
各レイヤのスケーラブル識別子及び補助ピクチャIDAuxIDを復号するスケーラブル識別子復号手段と、
前記補助ピクチャIDAuxIDが0より大きい補助ピクチャレイヤに対して、0以上の補助ピクチャIDAuxIDが0であるプライマイリピクチャレイヤを関連プライマリピクチャレイヤとして関連付ける関連レイヤ導出手段を備え、
前記関連レイヤ導出手段は、前記補助ピクチャレイヤと前記関連プライマリピクチャレイヤにおいて、AuxIDを除く全てのスケーラブル識別子が等しいことを特徴とする。
各レイヤのスケーラブル識別子及び補助ピクチャIDAuxIDを復号するスケーラブル識別子復号手段と、
前記補助ピクチャIDAuxIDが0より大きい補助ピクチャレイヤに対して、0以上の補助ピクチャIDAuxIDが0であるプライマイリピクチャレイヤを関連プライマリピクチャレイヤとして関連付ける関連レイヤ導出手段を備え、
前記関連レイヤ導出手段は、前記補助ピクチャレイヤと前記関連プライマリピクチャレイヤにおいて、AuxIDを除く全てのスケーラブル識別子が等しいことを特徴とする。
上記の課題を解決するために、本発明の態様10に係る画像符号化装置は、階層的符号化データを生成する画像符号化装置であって、
各レイヤのスケーラブル識別子及び補助ピクチャIDAuxIDを符号化するスケーラブル識別子符号化手段と、
前記補助ピクチャIDAuxIDが0より大きい補助ピクチャレイヤに対して、0以上の補助ピクチャIDAuxIDが0であるプライマイリピクチャレイヤを関連プライマリピクチャレイヤとして関連付ける関連レイヤ導出手段を備え、
前記関連レイヤ導出手段は、前記補助ピクチャレイヤと前記関連プライマリピクチャレイヤにおいて、AuxIDを除く全てのスケーラブル識別子が等しいことを特徴とする。
各レイヤのスケーラブル識別子及び補助ピクチャIDAuxIDを符号化するスケーラブル識別子符号化手段と、
前記補助ピクチャIDAuxIDが0より大きい補助ピクチャレイヤに対して、0以上の補助ピクチャIDAuxIDが0であるプライマイリピクチャレイヤを関連プライマリピクチャレイヤとして関連付ける関連レイヤ導出手段を備え、
前記関連レイヤ導出手段は、前記補助ピクチャレイヤと前記関連プライマリピクチャレイヤにおいて、AuxIDを除く全てのスケーラブル識別子が等しいことを特徴とする。
本発明の1つの形態は、階層画像符号化データを復号する画像復号装置であって、レイヤセットを復号するレイヤセット情報復号手段と、出力レイヤセットのレイヤセット識別子、出力レイヤフラグを復号する出力レイヤセット情報復号手段と、各レイヤの最大サブレイヤ値を復号する最大サブレイヤ復号手段と、上記出力レイヤセットの最大サブレイヤ値を導出する出力レイヤ最大サブレイヤ導出手段を備え、上記出力レイヤ最大サブレイヤ導出手段は、上記出力レイヤフラグが1であるレイヤに関する上記最大サブレイヤ値に応じて、出力レイヤ最大サブレイヤ値を導出することを特徴とする。
本発明の1つの形態は、上記出力レイヤ最大サブレイヤ導出手段は、上記出力レイヤフラグが1であるレイヤの最大サブレイヤ値の最大値を上記出力レイヤセット最大サブレイヤ値として導出することを特徴とする。
本発明の1つの形態は、さらに、上記出力レイヤセットに対応するDPB情報を復号するDPB情報復号手段を備え、上記DPB情報復号手段は、上記出力レイヤの上記出力レイヤセット最大サブレイヤ値以下のサブレイヤについてDPB情報を復号することを特徴とする。
本発明の1つの形態は、さらに、上記出力レイヤセットの一つを対象出力レイヤセットとして選択する出力レイヤセット選択手段を備え、上記対象出力レイヤセット選択手段は、復号対象レイヤの最大サブレイヤである最高次テンポラル識別子として、0以上、上記出力レイヤセット最大サブレイヤ値以下の値が設定可能であることを特徴とする。
本発明の1つの形態は、さらに、指定された対象レイヤおよび対象サブレイヤを抽出するビットストリーム抽出手段を備え、上記ビットストリーム抽出手段は、上記出力レイヤセット選択手段の指定した、対象出力レイヤセットの復号対象レイヤ以外のレイヤおよび上記最高次テンポラル識別子以外のサブレイヤを除去した符号化データを導出することを特徴とする。
本発明の1つの形態は、階層画像符号化データを符号化する画像符号化装置であって、レイヤセットを符号化するレイヤセット情報符号化手段と、出力レイヤセットのレイヤセット識別子、出力レイヤフラグを復号する出力レイヤセット情報符号化手段と、各レイヤの最大サブレイヤ値を復号する最大サブレイヤ符号化手段と、上記出力レイヤセットの最大サブレイヤ値を導出する出力レイヤ最大サブレイヤ導出手段を備え、上記出力レイヤ最大サブレイヤ導出手段は、上記出力レイヤフラグが1であるレイヤに関する上記最大サブレイヤ値に応じて、出力レイヤ最大サブレイヤ値を導出することを特徴とする。
本発明の1つの形態は、さらに、上記出力レイヤセットに対応するDPB情報を復号するDPB情報符号化手段を備え、上記DPB情報符号化手段は、上記出力レイヤの上記出力レイヤセット最大サブレイヤ値以下のサブレイヤについてDPB情報を符号化することを特徴とする。
本発明の1つの形態は、出力レイヤフラグと代替レイヤ出力フラグを復号する出力レイヤセット情報復号手段を備え、上記出力レイヤセット情報復号手段は、出力レイヤセットに含まれるレイヤセットのレイヤ数が、上記出力レイヤセットに含まれる出力フラグが1のレイヤの数である出力レイヤ数よりも大きい場合に、符号化データから代替レイヤ出力フラグを復号し、上記レイヤ数が上記出力レイヤ数以下の場合には、代替レイヤ出力フラグを符号化データから復号せずに0を導出することを特徴とする。
本発明の1つの形態は、符号化データに含まれる任意の2つのレイヤのスケーラブルIDが一致することはない、という条件を満たす符号化データを復号することを特徴とする。
本発明の1つの形態は、レイヤセットに含まれる任意の2つのレイヤのスケーラブルIDが一致することはない、という条件を満たす符号化データを復号することを特徴とする。
本発明の一態様によれば、出力レイヤフラグが1であるレイヤに関する最大サブレイヤ値に応じて、出力レイヤ最大サブレイヤ値を導出することで、出力レイヤに不要なサブレイヤの復号処理を省略することが可能である。
本発明の一態様によれば、出力レイヤセットに含まれるレイヤセットのレイヤ数が、出力レイヤセットに含まれる出力レイヤフラグが1のレイヤの数である出力レイヤ数よりも大きい場合に、符号化データから代替レイヤ出力フラグを復号することで、該フラグの復号を簡略化することが可能である。
図1〜図38に基づいて、本発明の一実施形態に係る階層動画像復号装置1および階層動画像符号化装置2を説明すれば以下のとおりである。
〔概要〕
本実施の形態に係る階層動画像復号装置(画像復号装置)1は、階層動画像符号化装置(画像符号化装置)2によって階層符号化された符号化データを復号する。階層符号化とは、動画像を低品質のものから高品質のものにかけて階層的に符号化する符号化方式のことである。階層符号化は、例えば、SVCやSHVCにおいて標準化されている。なお、ここでいう動画像の品質とは、主観的および客観的な動画像の見栄えに影響する要素のことを広く意味する。動画像の品質には、例えば、“解像度”、“フレームレート”、“画質”、および、“画素の表現精度”が含まれる。よって、以下、動画像の品質が異なるといえば、例示的には、“解像度”等が異なることを指すが、これに限られない。例えば、異なる量子化ステップで量子化された動画像の場合(すなわち、異なる符号化雑音により符号化された動画像の場合)も互いに動画像の品質が異なるといえる。
本実施の形態に係る階層動画像復号装置(画像復号装置)1は、階層動画像符号化装置(画像符号化装置)2によって階層符号化された符号化データを復号する。階層符号化とは、動画像を低品質のものから高品質のものにかけて階層的に符号化する符号化方式のことである。階層符号化は、例えば、SVCやSHVCにおいて標準化されている。なお、ここでいう動画像の品質とは、主観的および客観的な動画像の見栄えに影響する要素のことを広く意味する。動画像の品質には、例えば、“解像度”、“フレームレート”、“画質”、および、“画素の表現精度”が含まれる。よって、以下、動画像の品質が異なるといえば、例示的には、“解像度”等が異なることを指すが、これに限られない。例えば、異なる量子化ステップで量子化された動画像の場合(すなわち、異なる符号化雑音により符号化された動画像の場合)も互いに動画像の品質が異なるといえる。
また、階層符号化技術は、階層化される情報の種類の観点から、(1)空間スケーラビリティ、(2)時間スケーラビリティ、(3)SNR(Signal to Noise Ratio)スケーラビリティ、および(4)ビュースケーラビリティに分類されることもある。空間スケーラビリティとは、解像度や画像のサイズにおいて階層化する技術である。時間スケーラビリティとは、フレームレート(単位時間のフレーム数)において階層化する技術である。SNRスケーラビリティは、符号化雑音において階層化する技術である。また、ビュースケーラビリティは、各画像に対応付けられた視点位置において階層化する技術である。
本実施形態に係る階層動画像符号化装置2及び階層動画像復号装置1の詳細な説明に先立って、まず(1)階層動画像符号化装置2によって生成され、階層動画像復号装置1によって復号される階層符号化データのレイヤ構造を説明し、次いで(2)各レイヤで採用できるデータ構造の具体例について説明を行う。
〔階層符号化データのレイヤ構造〕
ここで、図2を用いて、階層符号化データの符号化および復号について説明すると次のとおりである。図2は、動画像を、下位階層L3、中位階層L2、および上位階層L1の3階層により階層的に符号化/復号する場合について模式的に表わす図である。つまり、図2(a)および(b)に示す例では、3階層のうち、上位階層L1が最上位層となり、下位階層L3が最下位層となる。
ここで、図2を用いて、階層符号化データの符号化および復号について説明すると次のとおりである。図2は、動画像を、下位階層L3、中位階層L2、および上位階層L1の3階層により階層的に符号化/復号する場合について模式的に表わす図である。つまり、図2(a)および(b)に示す例では、3階層のうち、上位階層L1が最上位層となり、下位階層L3が最下位層となる。
以下において、階層符号化データから復号され得る特定の品質に対応する復号画像は、特定の階層の復号画像(または、特定の階層に対応する復号画像)と称される(例えば、上位階層L1の復号画像POUT#A)。
図2(a)は、入力画像PIN#A〜PIN#Cをそれぞれ階層的に符号化して符号化データDATA#A〜DATA#Cを生成する階層動画像符号化装置2#A〜2#Cを示している。図2(b)は、階層的に符号化された符号化データDATA#A〜DATA#Cをそれぞれ復号して復号画像POUT#A〜POUT#Cを生成する階層動画像復号装置1#A〜1#Cを示している。
まず、図2(a)を用いて、符号化装置側について説明する。符号化装置側の入力となる入力画像PIN#A、PIN#B、およびPIN#Cは、原画は同じだが、画像の品質(解像度、フレームレート、および画質等)が異なる。画像の品質は、入力画像PIN#A、PIN#B、およびPIN#Cの順に低くなる。
下位階層L3の階層動画像符号化装置2#Cは、下位階層L3の入力画像PIN#Cを符号化して下位階層L3の符号化データDATA#Cを生成する。下位階層L3の復号画像POUT#Cを復号するのに必要な基本情報が含まれる(図2において“C”にて示している)。下位階層L3は、最下層の階層であるため、下位階層L3の符号化データDATA#Cは、基本符号化データとも称される。
また、中位階層L2の階層動画像符号化装置2#Bは、中位階層L2の入力画像PIN#Bを、下位階層の符号化データDATA#Cを参照しながら符号化して中位階層L2の符号化データDATA#Bを生成する。中位階層L2の符号化データDATA#Bには、符号化データDATA#Cに含まれる基本情報“C”に加えて、中位階層の復号画像POUT#Bを復号するのに必要な付加的情報(図2において“B”にて示している)が含まれる。
また、上位階層L1の階層動画像符号化装置2#Aは、上位階層L1の入力画像PIN#Aを、中位階層L2の符号化データDATA#Bを参照しながら符号化して上位階層L1の符号化データDATA#Aを生成する。上位階層L1の符号化データDATA#Aには、下位階層L3の復号画像POUT#Cを復号するのに必要な基本情報“C”および中位階層L2の復号画像POUT#Bを復号するのに必要な付加的情報“B”に加えて、上位階層の復号画像POUT#Aを復号するのに必要な付加的情報(図2において“A”にて示している)が含まれる。
このように上位階層L1の符号化データDATA#Aは、異なる複数の品質の復号画像に関する情報を含む。
次に、図2(b)を参照しながら復号装置側について説明する。復号装置側では、上位階層L1、中位階層L2、および下位階層L3それぞれの階層に応じた復号装置1#A、1#B、および1#Cが、符号化データDATA#A、DATA#B、およびDATA#Cを復号して復号画像POUT#A、POUT#B、およびPOUT#Cを出力する。
なお、上位の階層符号化データの一部の情報を抽出(ビットストリーム抽出とも呼ぶ)して、より下位の特定の復号装置において、当該抽出した情報を復号することで特定の品質の動画像を再生することもできる。
例えば、中位階層L2の階層復号装置1#Bは、上位階層L1の階層符号化データDATA#Aから、復号画像POUT#Bを復号するのに必要な情報(すなわち、階層符号化データDATA#Aに含まれる“B”および“C”)を抽出して、復号画像POUT#Bを復号してもよい。言い換えれば、復号装置側では、上位階層L1の階層符号化データDATA#Aに含まれる情報に基づいて、復号画像POUT#A、POUT#B、およびPOUT#Cを復号できる。
なお、以上の3階層の階層符号化データに限られず、階層符号化データは、2階層で階層符号化されていてもよいし、3階層よりも多い階層数にて階層符号化されていてもよい。
また、特定の階層の復号画像に関する符号化データの一部または全部を他の階層とは独立して符号化し、特定の階層の復号の際に、他の階層の情報を参照しなくても済むように階層符号化データを構成してもよい。例えば、図2(a)および(b)を用いて上述した例では、復号画像POUT#Bの復号に“C”および“B”を参照すると説明したが、これに限られない。復号画像POUT#Bが“B”だけを用いて復号できるように階層符号化データを構成することも可能である。例えば、復号画像POUT#Bの復号に、“B”だけから構成される階層符号化データと、復号画像POUT#Cを入力とする階層動画像復号装置も構成できる。
なお、SNRスケーラビリティを実現する場合、入力画像PIN#A、PIN#B、およびPIN#Cとして同一の原画を用いた上で、復号画像POUT#A、POUT#B、およびPOUT#Cが異なる画質となるよう階層符号化データを生成することもできる。その場合、下位階層の階層動画像符号化装置が、上位階層の階層動画像符号化装置に較べて、より大きい量子化幅を用いて予測残差を量子化することで階層符号化データを生成する。
本書では、説明の便宜上、次のとおり用語を定義する。以下の用語は、特に断りがなければ、下記の技術的事項のことを表わすのに用いる。
プロファイル(Profile): プロファイルとは、特定のアプリケーションを想定し、規格に準拠するデコーダが備えるべき処理機能を規定するものであり、符号化ツール(要素技術)の組み合わせ、あるいは集合によって定義される。プロファイルを規定することで、個々のアプリケーションでは、規格全体でなく、適したプロファイルのみを実装すればよく、デコーダ/エンコーダの複雑度を低減することが可能となるメリットがある。
レベル(Level): レベルは、デコーダの処理能力上限や回路規模の範囲を規定するものであり、単位時間当たりの最大処理画素数、画像の最大解像度、最大ビットレート、最大参照画像バッファサイズ、最低限の圧縮率などのパラメータの制限を規定している。すなわち、レベルはデコーダの処理能力やビットストリームの複雑さを規定するものである。また、レベルでは、各プロファイルで規定されたツールを、どの範囲までサポートするかについても規定されている。そのため、上位のレベルでは、下位のレベルをサポートする必要がある。例えば、レベル制限される各種パラメータには、最大輝度ピクチャサイズ(Max luma picture size)、最大ビットレート(Max bitrate)、最大CPBサイズ(Max CPB size)、ピクチャ単位当りの最大スライスセグメント数(Max slice segments per picture)、ピクチャ単位当たりの最大タイル行数(Max number of tile rows)、ピクチャ単位当たりの最大タイル列数(Max number of tile columns)等がある。また、特定のプロファイルに対して適用される、レベル制限される各種パラメータには、最大輝度サンプルレート(Max luma sample rate)、最大ビットレート(Max bit rate)、及び最低圧縮比率(Min compression Ratio)が挙げられる。なお、レベルのサブ概念として、各レベルに対応するビットストリーム(符号化データ)の最大ビットレート、及びビットストリームを格納する最大CPBサイズがメインティア(Main tier:コンシューマ用)で規定される値か、または、ハイティア(High tier:業務用)で規定される値であるか表す“ティア”(tier)がある。
HRD (Hypothetical Reference Decoder、仮想参照デコーダ) : HRDとは、バッファの動作を中心としたデコーダの仮想モデルであり、バッファモデルとも呼ばれる。HRDは、(1)ビットストリームの伝送バッファであるCPB(Coded Picture Buffer、符号化済ピクチャバッファ)、(2)瞬時に復号動作を行う復号処理部、(3)復号したピクチャを保存するDPB(Decoded Picture Buffer、復号ピクチャバッファ)、(4)切り出し処理を行うクロッピング処理部(画像の有効領域のみ切り出す処理)から構成される。
HRDの基本動作は以下の通りである。
(SA01)入力ビットストリームをCPBへ蓄積する;
(SA02)CPBに蓄積されたAUを瞬時復号処理する;
(SA03)瞬時復号処理して得られた復号済ピクチャをDPBへ保存する;
(SA04)DPBに保存された復号ピクチャをクロップして出力する;
HRDパラメータ(HRD parameters) : HRDパラメータとは、入力されたビットストリームが、HRDにおいて、コンフォーマンス条件を満たすか検証するために利用されるバッファモデルを示すパラメータである。
(SA01)入力ビットストリームをCPBへ蓄積する;
(SA02)CPBに蓄積されたAUを瞬時復号処理する;
(SA03)瞬時復号処理して得られた復号済ピクチャをDPBへ保存する;
(SA04)DPBに保存された復号ピクチャをクロップして出力する;
HRDパラメータ(HRD parameters) : HRDパラメータとは、入力されたビットストリームが、HRDにおいて、コンフォーマンス条件を満たすか検証するために利用されるバッファモデルを示すパラメータである。
ビットストリームコンフォーマンス : ビットストリームコンフォーマンスとは、階層動画像復号装置(ここでは本発明の実施形態に係る階層動画像復号装置)が復号するビットストリームが満たす必要がある条件である。同様に、階層動画像符号化装置(ここでは本発明の実施形態に係る階層動画像符号化装置)が生成するビットストリームに関しても、上記階層動画像復号装置が復号可能なビットストリームであることを保障するため、上記ビットストリームコンフォーマンスを満たす必要がある。
VCL NALユニット : VCL(Video Coding Layer、ビデオ符号化レイヤ) NALユニットとは、動画像(映像信号)の符号化データを含むNALユニットである。例えば、VCL NALユニットには、スライスデータ(CTUの符号化データ)、及び当該スライスの復号を通じて共通で利用されるヘッダ情報(スライスヘッダ)が含まれる。
non-VCL NALユニット : non-VCL(non-Video Coding Layer、非ビデオ符号化レイヤ、非VCL) NALユニットとは、ビデオパラメータセットVPS、シーケンスパラメータセットSPS、ピクチャパラメータセットPPS等の各シーケンスやピクチャを復号する時に利用される符号化パラメータの集合であるヘッダ情報や補助情報SEI等の符号化データを含むNALユニットである。
レイヤ識別子 : レイヤ識別子(レイヤIDとも称する)は、階層(レイヤ)を識別するためのものであり、階層と1対1に対応する。階層符号化データには特定の階層の復号画像の復号に必要な部分符号化データを選択するために用いられる識別子が含まれる。特定のレイヤに対応するレイヤ識別子に関連付けられた階層符号化データの部分集合は、レイヤ表現とも呼称される。
一般に、特定の階層の復号画像の復号には、当該階層のレイヤ表現、および/または、当該階層の下位レイヤに対応するレイヤ表現が用いられる。すなわち、対象レイヤの復号画像の復号においては、対象レイヤのレイヤ表現、および/または、対象レイヤの下位レイヤに含まれる1つ以上階層のレイヤ表現が用いられる。
レイヤ : 特定の階層(レイヤ)のレイヤ識別子の値(nuh_layer_id, nuhLayerId)をもつVCL NAL UNIT及びそのVCL NALユニットに関連付けられたnon-VCL NAL UNITの集合、あるいは、階層的な関係をもつシンタックス構造の集合の一つである。
上位レイヤ : ある階層よりも上位に位置する階層のことを、上位レイヤと称する。例えば、図2において、下位階層L3の上位レイヤは、中位階層L2および上位階層L1である。また、上位レイヤの復号画像とは、より品質の高い(例えば、解像度が高い、フレームレートが高い、画質が高い等)復号画像のことをいう。
下位レイヤ : ある階層よりも下位に位置する階層のことを、下位レイヤと称する。例えば、図2において、上位階層L1の下位レイヤは、中位階層L2および下位階層L3である。また、下位レイヤの復号画像とは、より品質の低い復号画像のことをいう。
対象レイヤ : 復号または符号化の対象となっている階層のことをいう。なお、対象レイヤに対応する復号画像を対象レイヤピクチャと呼ぶ。また、対象レイヤピクチャを構成する画素を対象レイヤ画素と呼ぶ。
参照レイヤ : 対象レイヤに対応する復号画像を復号するのに参照される特定の下位レイヤのことを参照レイヤと称する。なお、参照レイヤに対応する復号画像を参照レイヤピクチャと呼ぶ。また、参照レイヤを構成する画素を参照レイヤ画素と呼ぶ。
図2(a)および(b)に示した例では、上位階層L1の参照レイヤは、中位階層L2および下位階層L3である。しかしながら、これに限られず、特定の上記レイヤの復号において、下位レイヤのすべてを参照しなくてもよいように階層符号化データを構成することもできる。例えば、上位階層L1の参照レイヤが、中位階層L2および下位階層L3のいずれか一方となるように階層符号化データを構成することも可能である。また、参照レイヤは、対象レイヤの復号に用いられる符号化パラメータ等を予測する際に利用(参照)される、対象レイヤとは異なるレイヤであるとも表現できる。対象レイヤのレイヤ間予測で、直接的に参照される参照レイヤは、直接参照レイヤと呼ばれる。また、対象レイヤの直接参照レイヤAのレイヤ間予測で参照される直接参照レイヤBは、対象レイヤが、間接的に依存するため、対象レイヤの間接参照レイヤとも呼ばれる。換言すれば、レイヤiが、1又は複数のレイヤk(i<k<j)を介して、レイヤjに対して、間接的に依存す場合、レイヤjは、レイヤiの間接参照レイヤである。なお、対象レイヤに対する直接参照レイヤ、及び間接参照レイヤを総称して、依存レイヤと呼ぶ。
基本レイヤ(base layer) : 最下層に位置する階層のことを基本レイヤと称する。基本レイヤの復号画像は、符号化データから復号され得るもっとも低い品質の復号画像であり、基本復号画像と呼称される。別の言い方をすれば、基本復号画像は、最下層の階層に対応する復号画像のことである。基本復号画像の復号に必要な階層符号化データの部分符号化データは基本符号化データと呼称される。例えば、上位階層L1の階層符号化データDATA#Aに含まれる基本情報“C”が基本符号化データである。また、基本レイヤは、少なくとも、同一のレイヤ識別子を有し、かつそのレイヤ識別子(nuh_layer_id)の値は0である、1又は複数のVCL NALユニットからなるレイヤである。
拡張レイヤ(non-base layer) : 基本レイヤの上位レイヤは、拡張レイヤと称される。また、拡張レイヤは、少なくとも、同一のレイヤ識別子を有し、そのレイヤ識別子(nuh_layer_id)の値が0より大きい、1又は複数のVCL NALユニットからなるレイヤである。
レイヤ間予測 : レイヤ間予測とは、対象レイヤのレイヤ表現と異なる階層(参照レイヤ)のレイヤ表現に含まれるシンタックス要素値、シンタックス要素値より導出される値、および復号画像に基づいて、対象レイヤのシンタックス要素値や対象レイヤの復号に用いられる符号化パラメータ等を予測することである。動き予測に関する情報を参照レイヤの情報から予測するレイヤ間予測のことをレイヤ間動き情報予測と称することもある。また、下位レイヤの復号画像から予測するレイヤ間予測のことをレイヤ間画像予測(あるいはレイヤ間テクスチャ予測)と称することもある。なお、レイヤ間予測に用いられる階層は、例示的には、対象レイヤの下位レイヤである。また、参照レイヤを用いず対象レイヤ内で予測を行うことをレイヤ内予測と称することもある。
テンポラル識別子: テンポラル識別子(テンポラルID)は、時間スケーラビリティに関するレイヤ(以降、サブレイヤ)を識別するための識別子である。テンポラル識別子は、サブレイヤを識別するためのものであり、サブレイヤと1対1に対応する。符号化データには特定のサブレイヤの復号画像の復号に必要な部分符号化データを選択するために用いられるテンポラル識別子が含まれる。特に、最高次(最上位)のサブレイヤのテンポラル識別子を最高次(最上位)テンポラル識別子(highest TemporalId, highestTid、対象最大サブレイヤ値)と称する。
サブレイヤ: サブレイヤとは、テンポラル識別子により特定される時間スケーラビリティに関するレイヤである。空間スケーラビリティ、SNRスケーラビリティ等、そのほかのスケーラビリティと区別するため、以降サブレイヤと称する(テンポラルレイヤとも称する)。また、以降では、時間スケーラビリティは、基本レイヤの符号化データ、またはあるレイヤを復号するために必要な階層符号化データ、に含まれるサブレイヤによって実現されるものとする。
レイヤセット: レイヤセットとは、1以上のレイヤからなるレイヤの集合である。特に、レイヤセットの構成は、レイヤIDリストLayerSetLayerIdList[](あるいは、LayerIdList[])によって表現され、レイヤセットに含まれるレイヤを識別するレイヤID(または、VPS上でのレイヤの順番を示すインデクス)は、レイヤIDリストLayerIdList[K](K=0.. N-1, Nはレイヤセットに含まれるレイヤ数)の各要素に、格納される。
出力レイヤセット: 出力レイヤセットとは、上記レイヤセットに含まれるレイヤに対して、出力レイヤであるかどうか指定されたレイヤの集合である。また、出力レイヤセットは、レイヤセットと出力レイヤを指定する出力レイヤフラグの組み合わせにより表現される集合とも表現される。以下、識別子iで識別される出力レイヤセットをOLS#iと記載する。 出力レイヤ : 出力レイヤとは、上記出力レイヤセットにおいて、復号または符号化の対象となるレイヤのうち、該レイヤの復号ピクチャを、出力ピクチャとして出力することが指定されたレイヤのことである。
代替出力レイヤ: 代替出力レイヤとは、上記出力レイヤセットにおいて、出力レイヤとして指定されたレイヤの復号画像が何らかの理由により復号できない場合、該出力レイヤとは別のレイヤの復号画像を代替として出力されるレイヤである。
ビットストリーム抽出処理 : ビットストリーム抽出処理とは、あるビットストリーム(階層符号化データ、符号化データ)から、対象最高次テンポラル識別子(highestTid)、及び対象レイヤセットに含まれるレイヤを表わすレイヤIDリストLayerIdList[]によって定まる集合(ターゲットセットTargetSetと呼ぶ)に含まれないNALユニットを除去(破棄)し、ターゲットセットTargetSetに含まれるNALユニットから構成されるビットストリームを抽出する処理である。なお、ビットストリーム抽出は、サブビットストリーム抽出とも呼ばれる。
また、対象最高次テンポラル識別子をTargetHighestTidと称し、対象レイヤセットをTargetLayerSetと称し、対象レイヤセットのレイヤIDリスト(対象レイヤIDリスト)をTargetLayerIdListとも称する。特に、復号対象となるレイヤIDリストを、TargetDecLayerIdListとも呼ぶ。また、ビットストリーム抽出により生成された、ターゲットセットTargetSetに含まれるNALユニットから構成されるビットストリームを符号化データBitstreamToDecodeとも称する。
次に、図3を参照して、ビットストリーム抽出処理により、あるレイヤセットAを含む階層符号化データより、レイヤセットAのサブセットとなるレイヤセットBを含む階層符号化データを抽出する例について説明する。
図3は、3つのレイヤ(L#0, L#1, L#2)、及び各レイヤは3つのサブレイヤ(TID1, TID2, TID3)からなるレイヤセットA、及びそのサブセットであるレイヤセットBの構成を表わす。なお、以降では、レイヤセットを構成するレイヤ、及びサブレイヤを、{LayerIdList={L#0,…,L#N}, HighestTid=K}と表わす。例えば、図3のレイヤセットAは、{LayerIdList={L#0, L#1, L#2}, HighestTid=3}と表現される。ここで、符号L#Nは、あるレイヤNを示し、図3中の各ボックスは、ピクチャを表わし、ボックス内の番号は、復号順の一例を表わす。以降、ピクチャで番号Nを、P#Nと表記する。
また、各ピクチャ間の矢印は、ピクチャ間の依存方向(参照関係)を表わす。同一レイヤ内の矢印であれば、インター予測に利用される参照ピクチャであることを示す。レイヤ間の矢印であれば、レイヤ間予測に利用される参照ピクチャ(参照レイヤピクチャともいう)であることを表わす。
また、図3中のAUは、アクセスユニットを表わし、符号#Nは、アクセスユニット番号を表わす。AU#Nは、ある起点(例えば、ランダムアクセス開始点)のAUをAU#0とすれば、(N−1)番目のアクセスユニットであることを表わし、ビットストリームに含まれるAUの順番を表わす。すなわち、図3の例であれば、ビットストリーム上で、アクセスユニットは、AU#0、AU#1、AU#2、AU#3、AU#4..の順で並んでいる。なお、アクセスユニットとは、特定の分類ルールにより集約されたNALユニットの集合を表わす。図3のAU#0は、ピクチャP#1、P#1、及びP#3の符号化データを含むVCL NALの集合とみることができる。なお、アクセスユニットの詳細については後述する。なお、本明細書では、X番目と記す場合、先頭要素が0番目であり、0番目から数えることとする(以下同様)。
図3の例では、ターゲットセットTargetSet(レイヤセットB)は、{LayerIdList={L#0,L#1}、HighestTid=2}であるから、レイヤセットAを含むビットストリームから、ターゲットセットTargetSetに含まれないレイヤ、及び最高次テンポラルID(HighestTid=2)より大きいサブレイヤを、ビットストリーム抽出により破棄する。すなわち、レイヤIDリストに含まれないレイヤL#2、及びサブレイヤ(TID3)を有するNALユニットが破棄され、最終的には、レイヤセットBを含むビットストリームが抽出される。図3では、点線のボックスは、破棄されたピクチャを表わし、点線の矢印は、破棄されたピクチャと参照ピクチャ間の依存方向を示す。なお、レイヤL#3、及びTID3のサブレイヤのピクチャを構成するNALユニットは破棄済のため、依存関係は既に断ち切られている。
SHVCやMV-HEVCでは、SNRスケーラビリティ、空間スケーラビリティ、時間スケーラビリティ等を実現するために、レイヤ、及びサブレイヤの概念が導入されている。図3で既に説明したように、フレームレートを変更し時間スケーラビリティを実現する場合、ビットストリーム抽出処理により、まず他のピクチャから参照されないピクチャ(最高次テンポラルID(TID3))の符号化データを破棄する。図3の場合、ピクチャ(10、13、11、14、12、15)の符号化データを破棄することにより、フレームレートが1/2となる符号化データが生成される。
また、SNRスケーラビリティ、空間スケーラビリティや、ビュースケーラビリティを実現する場合、ビットストリーム抽出により、ターゲットセットTargetSetに含まれない、レイヤの符号化データを破棄することで、各スケーラビリティの粒度を変更することができる。図3の場合、ピクチャ(3、6、9、12、15)の符号化データを破棄することで、スケーラビリティの粒度を粗くした符号化データが生成される。上記処理を繰り返すことで、段階的にレイヤ、サブレイヤの粒度を調整することができる。
なお、以上の用語は、飽くまで説明の便宜上のものであり、上記の技術的事項を別の用語にて表現してもかまわない。
〔階層符号化データのデータ構造について〕
以下、各階層の符号化データを生成する符号化方式として、HEVCおよびその拡張方式を用いる場合について例示する。しかしながら、これに限られず、各階層の符号化データを、MPEG-2や、H.264/AVCなどの符号化方式により生成してもよい。
以下、各階層の符号化データを生成する符号化方式として、HEVCおよびその拡張方式を用いる場合について例示する。しかしながら、これに限られず、各階層の符号化データを、MPEG-2や、H.264/AVCなどの符号化方式により生成してもよい。
また、下位レイヤと上位レイヤとが異なる符号化方式によって符号化されていてもよい。また、各階層の符号化データは、互いに異なる伝送路を介して階層動画像復号装置1に供給されてもよいし、同一の伝送路を介して階層動画像復号装置1に供給されてもよい。
例えば、超高精細映像(動画像、4K映像データ)を基本レイヤおよび1つの拡張レイヤによりスケーラブル符号化して伝送する場合、基本レイヤは、4K映像データをダウンスケーリングし、インタレース化した映像データをMPEG-2またはH.264/AVCにより符号化してテレビ放送網で伝送し、拡張レイヤは、4K映像(プログレッシブ)をHEVCにより符号化して、インターネットで伝送してもよい。
<階層符号化データDATAの構造>
本実施形態に係る画像符号化装置2および画像復号装置1の詳細な説明に先立って、画像符号化装置2によって生成され、画像復号装置1によって復号される階層符号化データDATAのデータ構造について説明する。
本実施形態に係る画像符号化装置2および画像復号装置1の詳細な説明に先立って、画像符号化装置2によって生成され、画像復号装置1によって復号される階層符号化データDATAのデータ構造について説明する。
(NALユニットレイヤ)
図4は、階層符号化データDATAにおけるデータの階層構造を示す図である。階層符号化データDATAは、NAL(Network Abstraction Layer)ユニットと呼ばれる単位で符号化される。
図4は、階層符号化データDATAにおけるデータの階層構造を示す図である。階層符号化データDATAは、NAL(Network Abstraction Layer)ユニットと呼ばれる単位で符号化される。
NALは、動画像符号化処理を行う層であるVCL(Video Coding Layer)と、符号化データを伝送・蓄積する下位システムとの間における通信を抽象化するために設けられる層である。
VCLは、画像符号化処理を行う層のことであり、VCLにおいて符号化が行われる。一方、ここでいう、下位システムは、H.264/AVCおよびHEVCのファイルフォーマットや、MPEG-2システムに対応する。以下に示す例では、下位システムは、対象レイヤおよび参照レイヤにおける復号処理に対応する。なお、NALでは、VCLで生成されたビットストリームが、NALユニットという単位で区切られて、宛先となる下位システムへ伝送される。
図5(a)は、NALユニットのシンタックステーブルを示す。NALユニットには、VCLで符号化された符号化データ、および、当該符号化データが宛先の下位システムに適切に届けられるためのヘッダ(NALユニットヘッダ:nal_unit_header())が含まれる。NALユニットヘッダは、例えば、図5(b)に示すシンタックスで表わされる。NALユニットヘッダには、NALユニットに格納された符号化データの種類を表わす“nal_unit_type”、格納された符号化データが属するサブレイヤの識別子(テンポラル識別子)を表わす”nuh_temporal_id_plus1”や、格納された符号化データが属するレイヤの識別子(レイヤ識別子)を表わす”nuh_layer_id”(または、nuh_reserved_zero_6bits)が記述されている。一方、NALユニットデータには、後述のパラメータセット、SEI、スライスなどが含まれる。
図6は、NALユニットタイプの値とNALユニットの種別の関係を示す図である。図6に示す通り、SYNA101で示される0から15の値のNALユニットタイプを持つNALユニットは、非RAP (ランダムアクセスピクチャ)のスライスである。SYNA102で示される16から21の値のNALユニットタイプを持つNALユニットは、RAP (ランダムアクセスピクチャ、IRAPピクチャ)のスライスである。RAPピクチャには、大きく分けて、BLAピクチャ、IDRピクチャ、CRAピクチャがあり、BLAピクチャは、さらに、BLA_W_LP、BLA_W_DLP、BLA_N_LPに分類される。IDRピクチャは、さらに、IDR_W_DLP、IDR_N_LPに分類される。RAPピクチャ以外のピクチャには、リーディングピクチャ(LPピクチャ)、テンポラルアクセスピクチャ(TSAピクチャ、STSAピクチャ)、トレイリングピクチャ(TRAILピクチャ)などがある。なお、各階層における符号化データは、NALユニットに格納されることでNAL多重化されて階層動画像復号装置1に伝送される。
図6、特にNAL Unit Type Classで示されるように、各NALユニットは、NALユニットタイプに応じて、ピクチャを構成するデータ(VCLデータ)と、それ以外のデータ(non-VCL)に分類される。ピクチャは、ランダムアクセスピクチャ、リーディングピクチャ、トレイリングピクチャなどのピクチャ種別によらず、全てVCL NALユニットに分類され、ピクチャの復号に必要なデータであるパラメータセットや、ピクチャの補助情報であるSEI、シーケンスの区切りを表わすアクセスユニットデリミタ(AUD)、エンドオブシーケンス(EOS)、エンドオブビットストリーム(EOB)などは、non-VCL NALユニットに分類される。
(アクセスユニット)
特定の分類ルールにより集約されたNALユニットの集合のことをアクセスユニットと呼ぶ。レイヤ数が1の場合には、アクセスユニットは1ピクチャを構成するNALユニットの集合である。レイヤ数が1より大きい場合には、アクセスユニットは同じ時刻(同一出力タイミング)の複数のレイヤのピクチャを構成するNALユニットの集合である。なお、アクセスユニットの区切りを示すために、符号化データはアクセスユニットデリミタ(AUD:Access unit delimiter)と呼ばれるNALユニットを含んでも良い。アクセスユニットデリミタは、符号化データ中にあるアクセスユニットを構成するNALユニットの集合と、別のアクセスユニットを構成するNALユニットの集合の間に含まれる。
特定の分類ルールにより集約されたNALユニットの集合のことをアクセスユニットと呼ぶ。レイヤ数が1の場合には、アクセスユニットは1ピクチャを構成するNALユニットの集合である。レイヤ数が1より大きい場合には、アクセスユニットは同じ時刻(同一出力タイミング)の複数のレイヤのピクチャを構成するNALユニットの集合である。なお、アクセスユニットの区切りを示すために、符号化データはアクセスユニットデリミタ(AUD:Access unit delimiter)と呼ばれるNALユニットを含んでも良い。アクセスユニットデリミタは、符号化データ中にあるアクセスユニットを構成するNALユニットの集合と、別のアクセスユニットを構成するNALユニットの集合の間に含まれる。
図7は、アクセスユニットに含まれるNALユニットの構成の一例を示す図である。同図において、AUには、AUの先頭であることを示すアクセスユニットデリミタ(AUD)、各種パラメータセット(VPS, SPS, PPS)、各種SEI(Prefix SEI, Suffix SEI)、レイヤ数が1の場合は1ピクチャを構成するVCL(slice)、レイヤ数が1より大きい場合はレイヤ数分のピクチャを構成するVCL、シーケンスの終端を示すEOS(End of Sequence)、ビットストリームの終端を示すEOB(End of Bitstream)等のNALユニットから構成される。なお、図7において、VPS, SPS, SEI, VCLの後の符号L#K(K=Nmin.. Nmax)は、レイヤID(あるいは、VPS上で定義されたレイヤの順番を示すインデクス)を表わす。図7の例では、AU内に、VPSを除き、各レイヤL#Nmin〜レイヤL#NmaxのSPS, PPS, SEI, VCLが、レイヤID(あるいは、VPS上で定義されたレイヤの順番を示すインデクス)の昇順で存在する。図7の例では、VPSは、最低次のレイヤIDでのみ送られる。なお、図7において、特定NALユニットがAU内に存在するか、または繰り返し存在するかを、矢印によって示している。
例えば、特定のNALユニットがAU内に存在すれば、そのNALユニットを通過する矢印で示し、特定のNALユニットがAU内に存在しなければ、そのNALユニットをスキップする矢印で示している。例えば、AUDを通らずに、VPSへ向かう矢印は、AUDがAU内に存在しない場合を示す。また、VCLを通過してから再びVCLへ戻る矢印は、1以上のVCLが存在する場合を示す。
また、最低次以外の上位のレイヤIDを有するVPSがAU内に含まれてもよいが、画像復号装置は、最低次以外のレイヤIDを有するVPSを無視するものとする。また、各種パラメータセット(VPS,SPS,PPS)や補助情報であるSEIは、図7のように、アクセスユニットの一部として含まれてもよいし、ビットストリームとは別の手段でデコーダに伝達されてもよい。なお、図7は、アクセスユニットに含まれるNALユニットの構成の一実施形態に過ぎず、アクセスユニットに含まれるNALユニットの構成は、ビットストリームを復号することが可能な範囲で変更が可能である。
特に、レイヤ識別子nuhLayerId=0のIRAPピクチャを含むアクセスユニットを、IRAPアクセスユニット(ランダムアクセスポイント・アクセスユニット)と呼ぶ。また、ターゲットセットに含まれる全レイヤの復号処理の初期化を実施するIRAPアクセスユニットを初期化IRAPアクセスユニットと呼ぶ。また、復号順で、初期化IRAPアクセスユニットから、0以上の非初期化IRAPアクセスユニット(初期化IRAPアクセスユニット以外のアクセスユニット)が続き、次の初期化IRAPアクセスユニットまでのアクセスユニットの集合(ただし、次の初期化IRAPアクセスユニットは除く)を、CVS(Coded Video Sequence;符号化ビデオシーケンス、以降ではシーケンスSEQとも称する)とも称する。
図8は、階層符号化データDATAにおけるデータの階層構造を示す図である。階層符号化データDATAは、例示的に、シーケンス、およびシーケンスを構成する複数のピクチャを含む。図8の(a)〜(f)は、それぞれ、シーケンスSEQを既定するシーケンスレイヤ、ピクチャPICTを規定するピクチャレイヤ、スライスSを規定するスライスレイヤ、スライスデータを規定するスライスデータレイヤ、スライスデータに含まれる符号化ツリーユニットを規定する符号化ツリーレイヤ、符号化ツリーに含まれる符号化単位(Coding Unit;CU)を規定する符号化ユニットレイヤを示す図である。
(シーケンスレイヤ)
シーケンスレイヤでは、処理対象のシーケンスSEQ(以下、対象シーケンスとも称する)を復号するために画像復号装置1が参照するデータの集合が規定されている。シーケンスSEQは、図8の(a)に示すように、ビデオパラメータセット(Video Parameter Set)シーケンスパラメータセットSPS(Sequence Parameter Set)、ピクチャパラメータセットPPS(Picture Parameter Set)、ピクチャPICT、及び、付加拡張情報SEI(Supplemental Enhancement Information)を含んでいる。ここで#の後に示される値はレイヤIDを示す。図8では、#0と#1すなわちレイヤIDが0とレイヤIDが1の符号化データが存在する例を示すが、レイヤの種類およびレイヤの数はこれに限定されない。
シーケンスレイヤでは、処理対象のシーケンスSEQ(以下、対象シーケンスとも称する)を復号するために画像復号装置1が参照するデータの集合が規定されている。シーケンスSEQは、図8の(a)に示すように、ビデオパラメータセット(Video Parameter Set)シーケンスパラメータセットSPS(Sequence Parameter Set)、ピクチャパラメータセットPPS(Picture Parameter Set)、ピクチャPICT、及び、付加拡張情報SEI(Supplemental Enhancement Information)を含んでいる。ここで#の後に示される値はレイヤIDを示す。図8では、#0と#1すなわちレイヤIDが0とレイヤIDが1の符号化データが存在する例を示すが、レイヤの種類およびレイヤの数はこれに限定されない。
(ビデオパラメータセット)
図11は、ビデオパラメータセットVPSのシンタックス表の一例であり、図12は、ビデオパラメータセットVPSの拡張データのシンタックス表の一例である。ビデオパラメータセットVPSでは、1以上のレイヤから構成される符号化データを復号するために画像復号装置1が参照する符号化パラメータの集合が規定されている。例えば、後述のシーケンスパラメータセットや他のシンタックス要素が参照するVPSを識別するために用いるVPS識別子(video_parameter_set_id)(図11上のSYNVPS01)や、符号化データに含まれるレイヤ数(vps_max_layers_minus1) (図11上のSYNVPS02)、レイヤに含まれるサブレイヤ数(vps_sub_layers_minus1) (図11上のSYNVPS03)、符号化データ中で表現される1以上のレイヤからなるレイヤの集合を規定するレイヤセットの数(vps_num_layer_sets_minus1) (図11上のSYNVPS06)、レイヤセットを構成するレイヤの集合を規定するレイヤセット情報(レイヤセット、layer_id_included_flag[i][j]) (図11上のSYNVPS07)や、レイヤ間の依存関係(直接依存フラグdirect_dependency_flag[i][j])(図12上のSYNVPS0C)、出力レイヤセットを構成する出力レイヤの集合や、PTL情報等を規定した出力レイヤセット情報 (デフォルト出力レイヤ識別子default_target_output_layer_idc、関連するレイヤセット識別子output_layer_set_idx_minus1、出力レイヤ情報output_layer_flag[i][j]、代替出力レイヤフラグalt_output_layer_flag[i]、PTL指定識別子profile_level_tier_idx[i]など)(図12上のSYNVPS0G〜SYNVPS0M)などが規定されている。VPSは符号化データ内に複数存在してもよい。その場合、対象シーケンス毎に復号に用いられるVPSが複数の候補から選択される。
図11は、ビデオパラメータセットVPSのシンタックス表の一例であり、図12は、ビデオパラメータセットVPSの拡張データのシンタックス表の一例である。ビデオパラメータセットVPSでは、1以上のレイヤから構成される符号化データを復号するために画像復号装置1が参照する符号化パラメータの集合が規定されている。例えば、後述のシーケンスパラメータセットや他のシンタックス要素が参照するVPSを識別するために用いるVPS識別子(video_parameter_set_id)(図11上のSYNVPS01)や、符号化データに含まれるレイヤ数(vps_max_layers_minus1) (図11上のSYNVPS02)、レイヤに含まれるサブレイヤ数(vps_sub_layers_minus1) (図11上のSYNVPS03)、符号化データ中で表現される1以上のレイヤからなるレイヤの集合を規定するレイヤセットの数(vps_num_layer_sets_minus1) (図11上のSYNVPS06)、レイヤセットを構成するレイヤの集合を規定するレイヤセット情報(レイヤセット、layer_id_included_flag[i][j]) (図11上のSYNVPS07)や、レイヤ間の依存関係(直接依存フラグdirect_dependency_flag[i][j])(図12上のSYNVPS0C)、出力レイヤセットを構成する出力レイヤの集合や、PTL情報等を規定した出力レイヤセット情報 (デフォルト出力レイヤ識別子default_target_output_layer_idc、関連するレイヤセット識別子output_layer_set_idx_minus1、出力レイヤ情報output_layer_flag[i][j]、代替出力レイヤフラグalt_output_layer_flag[i]、PTL指定識別子profile_level_tier_idx[i]など)(図12上のSYNVPS0G〜SYNVPS0M)などが規定されている。VPSは符号化データ内に複数存在してもよい。その場合、対象シーケンス毎に復号に用いられるVPSが複数の候補から選択される。
あるレイヤに属する特定シーケンスの復号に使用されるVPSは、アクティブVPSと呼ばれる。以下では、特に断りがなければ、VPSは、あるレイヤに属する対象シーケンスに対するアクティブVPSを意味する。
(スケーラブル識別子)
図示しない、スケーラブル識別子復号手段は、入力される対象レイヤ符号化データから、レイヤ単位に割り当てられるスケーラブル識別子(ScalabilityId)を復号する。スケーラブル識別子ScalabilityIdは、レイヤ間でレイヤの性質を区別するためのIDであり、1つのレイヤに対して複数の次元のスケーラブルIDを有することができる。以下のレイヤi、次元目のスケーラブルIDは符号化データのdimension_id[i][j]から導出される。次元は、0から15までをとる。
図示しない、スケーラブル識別子復号手段は、入力される対象レイヤ符号化データから、レイヤ単位に割り当てられるスケーラブル識別子(ScalabilityId)を復号する。スケーラブル識別子ScalabilityIdは、レイヤ間でレイヤの性質を区別するためのIDであり、1つのレイヤに対して複数の次元のスケーラブルIDを有することができる。以下のレイヤi、次元目のスケーラブルIDは符号化データのdimension_id[i][j]から導出される。次元は、0から15までをとる。
図13(c)は、VPS拡張の符号化データの構成を示すシンタックステーブルの一例である。スケーラブル識別子復号手段は、符号化データから分離フラグsplitting_flag、スケーラブルマスクフラグscalability_mask_flag、次元ID長dimension_id_len_minus1、dimension_id、次元IDdimension_idを復号する。splitting_flagは、dimension_idの符号化位置(符号化方法)を示す。splitting_flagが1の場合には、VPS拡張において明示的に符号化させず、NALユニットヘッダから導出される。splitting_flagが0の場合には、dimension_idはVPS拡張で符号化される。scalability_mask_flag[j]は、インデックスjで示される次元IDが用いられるか否かを示す。スケーラブル識別子復号手段は、scalability_mask_flag[j]が1である次元の数NumScalabilityTypesを導出する。scalability_mask_flag[j]が0の場合には対応するインデックスjのdimension_id[i][j]は復号されないdimension_id_len_minus1は、インデックスjのdimension_id[i][j]のビット長―1を示す。スケーラブル識別子復号手段は、splitting_flagが0の場合には、レイヤのインデックスi、次元のインデックスjの次元IDdimension_id[i][j]を復号する。
図13(b)は、スケーラブルIDScalabilityIdの導出方法を示す擬似コードである。スケーラブル識別子復号手段は、レイヤインデックス0から最大レイヤ数―1MaxLayersMinus1までのインデックスiについて、次元IDdimension_id[i][j]からスケーラブルIDScalabilityIdを導出する。具体的には、スケーラブルマスクsmIdxが0以外のdimension_id[i][smIdx]を、ScalabilityI[i][smIdx]であるとして導出する。
(補助ピクチャ情報)
補助ピクチャ情報復号手段(関連レイヤ導出手段)は、スケーラブルIDに基づいて、補助ピクチャ(補助ピクチャ)に対応するプライマリピクチャ(プライマリピクチャレイヤ)を特定する。プライマリピクチャは、AuxId[](ここではScalabilityI[i][3])が0であるレイヤであり、プライマリピクチャレイヤは、AuxId[]が0であるレイヤである。逆に、補助ピクチャレイヤは、AuxId[](ここではScalabilityI[i][3])が0以外であるレイヤであり、補助ピクチャは、AuxId[]が0以外であるレイヤのピクチャである。
補助ピクチャ情報復号手段(関連レイヤ導出手段)は、スケーラブルIDに基づいて、補助ピクチャ(補助ピクチャ)に対応するプライマリピクチャ(プライマリピクチャレイヤ)を特定する。プライマリピクチャは、AuxId[](ここではScalabilityI[i][3])が0であるレイヤであり、プライマリピクチャレイヤは、AuxId[]が0であるレイヤである。逆に、補助ピクチャレイヤは、AuxId[](ここではScalabilityI[i][3])が0以外であるレイヤであり、補助ピクチャは、AuxId[]が0以外であるレイヤのピクチャである。
本実施形態の補助ピクチャ情報復号手段は、ある補助ピクチャに対して、AuxIdが0であるプライマリピクチャの中で、AuxIdを示すj=3以外の全ての0から15までのjについて、スケーラブルID(ScalabilityId[ LayerIdxInVps[ nuhLayerIdA ] ][ j ])が、ScalabilityId[ LayerIdxInVps[ nuhLayerIdB ] ][ j ]と一致する、1もしくはそれ以上の補助ピクチャと同じピクチャを対応する(associateの)プライマリピクチャとする、という定義から、プライマリピクチャを特定する。
ここで、配列LayerIdxInVps[]は、レイヤ識別子nuh_layer_idを添え字として、対応するレイヤのレイヤインデックスが格納されている配列である。例えば、レイヤ識別子nuh_layer_id=nuhLayerIdAと対応するレイヤのレイヤインデックスは、LayerIdxInVps[nuhLayerIdA]である(以降も同様)。
本実施形態の補助ピクチャ情報復号手段は、以下のコンフォーマンス条件(CC1)を満たす符号化データを復号する。
符号化データに含まれる任意の2つのレイヤにおいて全てのスケーラブルIDが一致する場合を禁止する(CC1)
上記コンフォーマンス条件CC1は、以下のコンフォーマンス条件CC2〜CC3とも表現することができる。
上記コンフォーマンス条件CC1は、以下のコンフォーマンス条件CC2〜CC3とも表現することができる。
CC2:符号化データに含まれるレイヤiA(iA=0..MaxLayersMinus1)のn番目のスケーラブルID”ScalaibityID[iA][n]”(n=0,..,15)とレイヤiB(iA!=iB, iB=0..MaxLayersMinus1)のn番目のスケーラブルID”ScalabilityId[iB][n]”(n=0,..,15)の値は異なる。
CC3:ScalabilityId[iA][n] != ScalabilityId[iB][n]
ここで、変数iAとiBは符号化データに含まれるレイヤを識別するレイヤインデックスであり、0からMaxLayersMinus1までの値をとり、iA!=iBを満たす変数である。また、変数nはレイヤiのn番目のスケーラブルID[i][n]を識別するインデックスであり0から15までの値をとる変数である。
ここで、変数iAとiBは符号化データに含まれるレイヤを識別するレイヤインデックスであり、0からMaxLayersMinus1までの値をとり、iA!=iBを満たす変数である。また、変数nはレイヤiのn番目のスケーラブルID[i][n]を識別するインデックスであり0から15までの値をとる変数である。
以上の構成のコンフォーマンス条件CC(CCはCC1からCC3のいずれか)を満たす符号化データを復号する画像復号装置によれば、符号化データ内のスケーラブルIDの一意性が保障されているため、スケーラブルIDに基づいてレイヤを識別可能であるという効果を奏する。
以上の構成のコンフォーマンス条件を満たす符号化データを復号する画像復号装置によれば、同じスケーラブルIDを備えるプライマリピクチャが複数存在する場合に、1つの補助ピクチャに対するプライマリピクチャがいずれであるのかが特定できないという課題を解決することができるという効果を奏する。
(別の構成例)
なお、スケーラブルIDの一致を禁止する条件はレイヤセット単位にする別の構成も好適である。この構成では、補助ピクチャ情報復号手段(関連レイヤ導出手段)は、以下のコンフォーマンス条件(CD1)を満たす符号化データを復号する。
なお、スケーラブルIDの一致を禁止する条件はレイヤセット単位にする別の構成も好適である。この構成では、補助ピクチャ情報復号手段(関連レイヤ導出手段)は、以下のコンフォーマンス条件(CD1)を満たす符号化データを復号する。
レイヤセット(もしくは出力レイヤセット)に含まれる任意の2つのレイヤにおいて全てのスケーラブルIDが一致する場合を禁止する(CD1)
上記コンフォーマンス条件CD1は、以下のコンフォーマンス条件CD2〜CD3とも表現することができる。
上記コンフォーマンス条件CD1は、以下のコンフォーマンス条件CD2〜CD3とも表現することができる。
CD2:レイヤセット(もしくは出力レイヤセット)に含まれるレイヤiA(iA=0..MaxLayersMinus1)のn番目のスケーラブルID”ScalaibityID[iA][n]”(n=0,..,15)とレイヤiB(iA!=iB, iB=0..MaxLayersMinus1)のn番目のスケーラブルID”ScalabilityId[iB][n]”(n=0,..,15)の値は異なる。
CD3:ScalabilityId[iA][n] != ScalabilityId[iB][n]
ここで、変数iAとiBはレイヤセット(もしくは出力レイヤセット)に含まれるレイヤを識別するレイヤインデックスであり、0からMaxLayersMinus1までの値をとり、iA!=iBを満たす変数である。また、変数nはレイヤiのn番目のスケーラブルID[i][n]を識別するインデックスであり0から15までの値をとる変数である。
ここで、変数iAとiBはレイヤセット(もしくは出力レイヤセット)に含まれるレイヤを識別するレイヤインデックスであり、0からMaxLayersMinus1までの値をとり、iA!=iBを満たす変数である。また、変数nはレイヤiのn番目のスケーラブルID[i][n]を識別するインデックスであり0から15までの値をとる変数である。
この場合、あるレイヤセット内では、スケーラブルIDによる一意性が保障されるため、スケーラブルIDによりレイヤセット内のレイヤを識別できる効果がある。逆に、あるレイヤセットと別のレイヤセットであれば、スケーラブルIDが一致する場合を許容するため、同じスケーラブルを備えるレイヤが符号化データに複数ある場合にも、一つの符号化データで送信可能であるという効果を奏する。例えば、サイマルキャストの場合など、同じ0のDependencyIdを有する(互いに独立であるので、依存関係はなくDependencyIdは0)である場合などで適当できる。
この場合、補助ピクチャ情報復号手段は同じレイヤセット内で、補助ピクチャに対応するプライマリピクチャを導出することがさらに適当である。
補助ピクチャ情報復号手段は、あるレイヤセットの補助ピクチャに対して、AuxIdが0であるプライマリピクチャの中で、AuxIdを示すj=3以外の全ての0から15までのjについて、スケーラブルID(ScalabilityId[ LayerIdxInVps[ nuhLayerIdA ] ][ j ])が、ScalabilityId[ LayerIdxInVps[ nuhLayerIdB ] ][ j ]と一致する、1もしくはそれ以上の補助ピクチャと同じレイヤセットに含まれるピクチャを対応する(associateの)プライマリピクチャとする、という定義から、プライマリピクチャを特定する。
以上の構成のコンフォーマンス条件(CD1)を満たす符号化データを復号し、レイヤセット内での補助ピクチャ、プライマリピクチャの対応関係を導出する画像復号装置によれば、図32に示すように、複数の独立なレイヤセットが存在する場合(たとえばレイヤセット1、レイヤセット2)で、レイヤセット1、レイヤセット2でともにScalabileId[0]= ScalabileId[1]=0のプライマリピクチャと補助ピクチャが存在する場合、レイヤセット1の補助ピクチャが、レイヤセット2のプライマリピクチャと対応するような混乱を避けることができる効果を奏する。
(シーケンスパラメータセット)
図17(a)は、シーケンスパラメータセットSPSのシンタックス表の一例である。シーケンスパラメータセットSPSでは、対象シーケンスを復号するために画像復号装置1が参照する符号化パラメータの集合が規定されている。例えば、対象SPSが参照するアクティブVPSを表わすアクティブVPS識別子(sps_video_parameter_set_id)(図17(a)上のSYNSPS01)、後述のピクチャパラメータセットや他のシンタックス要素が参照するSPSを識別するために用いるSPS識別子(sps_seq_parameter_set_id)(図17(a)上のSYNSPS02)や、ピクチャの幅や高さが規定される。SPSは符号化データ内に複数存在してもよく、その場合には、対象シーケンス毎に復号に用いられるSPSが複数の候補から選択される。
図17(a)は、シーケンスパラメータセットSPSのシンタックス表の一例である。シーケンスパラメータセットSPSでは、対象シーケンスを復号するために画像復号装置1が参照する符号化パラメータの集合が規定されている。例えば、対象SPSが参照するアクティブVPSを表わすアクティブVPS識別子(sps_video_parameter_set_id)(図17(a)上のSYNSPS01)、後述のピクチャパラメータセットや他のシンタックス要素が参照するSPSを識別するために用いるSPS識別子(sps_seq_parameter_set_id)(図17(a)上のSYNSPS02)や、ピクチャの幅や高さが規定される。SPSは符号化データ内に複数存在してもよく、その場合には、対象シーケンス毎に復号に用いられるSPSが複数の候補から選択される。
あるレイヤに属する特定シーケンスの復号に使用されるSPSは、アクティブSPSとも呼ばれる。以下では、特に断りがなければ、SPSは、あるレイヤに属する対象シーケンスに対するアクティブSPSを意味する。
(ピクチャパラメータセット)
図17(b)は、ピクチャパラメータセットPPSのシンタックス表の一例である。ピクチャパラメータセットPPSでは、対象シーケンス内の各ピクチャを復号するために画像復号装置1が参照する符号化パラメータの集合が規定されている。例えば、対象PPSが参照するアクティブSPSを表わすアクティブSPS識別子(pps_seq_parameter_set_id)(図17(b)のSYNPPS01)、後述のスライスヘッダや他のシンタックス要素が参照するPPSを識別するために用いるPPS識別子(pps_pic_parameter_set_id)(図17(b)のSYNPPS02)や、ピクチャの復号に用いられる量子化幅の基準値(pic_init_qp_minus26)や重み付き予測の適用を示すフラグ(weighted_pred_flag)、スケーリングリスト(量子化マトリックス)が含まれる。なお、PPSは複数存在してもよく、その場合、対象シーケンス内の各ピクチャから複数のPPSの何れかを選択する。
図17(b)は、ピクチャパラメータセットPPSのシンタックス表の一例である。ピクチャパラメータセットPPSでは、対象シーケンス内の各ピクチャを復号するために画像復号装置1が参照する符号化パラメータの集合が規定されている。例えば、対象PPSが参照するアクティブSPSを表わすアクティブSPS識別子(pps_seq_parameter_set_id)(図17(b)のSYNPPS01)、後述のスライスヘッダや他のシンタックス要素が参照するPPSを識別するために用いるPPS識別子(pps_pic_parameter_set_id)(図17(b)のSYNPPS02)や、ピクチャの復号に用いられる量子化幅の基準値(pic_init_qp_minus26)や重み付き予測の適用を示すフラグ(weighted_pred_flag)、スケーリングリスト(量子化マトリックス)が含まれる。なお、PPSは複数存在してもよく、その場合、対象シーケンス内の各ピクチャから複数のPPSの何れかを選択する。
あるレイヤに属する特定ピクチャの復号に使用されるPPSはアクティブPPSと呼ばれる。以下では、特に断りがなければ、PPSは、あるレイヤに属する対象ピクチャに対するアクティブPPSを意味する。なお、アクティブSPS、及びアクティブPPSは、レイヤ毎に異なるSPSやPPSに設定してもよい。すなわち、レイヤ毎に異なるSPSやPPSを参照して復号処理を実行することができる。
(ピクチャレイヤ)
ピクチャレイヤでは、処理対象のピクチャPICT(以下、対象ピクチャとも称する)を復号するために階層動画像復号装置1が参照するデータの集合が規定されている。ピクチャPICTは、図8(b)に示すように、スライスS0〜SNS-1を含んでいる(NSはピクチャPICTに含まれるスライスの総数)。なお、以下、スライスS0〜SNS-1のそれぞれを区別する必要が無い場合、符号の添字を省略して記述することがある。また、以下に説明する階層符号化データDATAに含まれるデータであって、添字を付している他のデータについても同様である。
ピクチャレイヤでは、処理対象のピクチャPICT(以下、対象ピクチャとも称する)を復号するために階層動画像復号装置1が参照するデータの集合が規定されている。ピクチャPICTは、図8(b)に示すように、スライスS0〜SNS-1を含んでいる(NSはピクチャPICTに含まれるスライスの総数)。なお、以下、スライスS0〜SNS-1のそれぞれを区別する必要が無い場合、符号の添字を省略して記述することがある。また、以下に説明する階層符号化データDATAに含まれるデータであって、添字を付している他のデータについても同様である。
(スライスレイヤ)
スライスレイヤでは、処理対象のスライスS(対象スライスとも称する、スライスセグメント)を復号するために階層動画像復号装置1が参照するデータの集合が規定されている。スライスSは、図8(c)に示すように、スライスヘッダSH、および、スライスデータSDATAを含んでいる。
スライスレイヤでは、処理対象のスライスS(対象スライスとも称する、スライスセグメント)を復号するために階層動画像復号装置1が参照するデータの集合が規定されている。スライスSは、図8(c)に示すように、スライスヘッダSH、および、スライスデータSDATAを含んでいる。
スライスヘッダSHには、対象スライスの復号方法を決定するために階層動画像復号装置1が参照する符号化パラメータ群が含まれる。図17(d)は、スライスヘッダのシンタックス表の一例である。例えば、対象スライスを復号するために参照するPPS(アクティブPPS)を指定するアクティブPPS識別子(slice_pic_parameter_set_id)(図17(d)のSYNSH02)が含まれる。なお、アクティブPPSが参照するSPSは、アクティブPPSに含まれるアクティブSPS識別子(pps_seq_parameter_set_id)により指定される。さらに、アクティブSPSが参照するVPS(アクティブVPS)は、アクティブSPSに含まれるアクティブVPS識別子(sps_video_parameter_set_id)により指定される。
図9を例に、パラメータセットのアクティベートについて説明する。同図は、ヘッダ情報とアクセスユニット(AU)を構成する符号化データの参照関係を説明する。同図の例では、各AU内のレイヤL#K(K=Nmin.. Nmax)に属するピクチャを構成する各スライスは、参照すべきPPSを指定するアクティブPPS識別子をスライスヘッダ内に含んでおり、各スライスの復号開始時に該識別子によって復号に用いるPPS(アクティブPPS)を指定する(アクティベートするともいう)。なお、同一ピクチャ内のスライスが参照する各PPS, SPS, VPSの識別子は同一でなければならない。アクティベートされたPPSの中には、復号処理上参照すべきSPS(アクティブSPS)を指定するアクティブSPS識別子が含まれており、該識別子によって復号に用いるSPS(アクティブSPS)を指定する。同様に、アクティベートされたSPSの中には、各レイヤに属するシーケンスの復号処理上参照すべきVPS(アクティブVPS)を指定するアクティブVPS識別子が含まれており、該識別子によって復号に用いるVPS(アクティブVPS)を指定する。以上の手順により、各レイヤの符号化データの復号処理を実行するにあたって必要なパラメータセットが確定する。
なお、各ヘッダ情報(スライスヘッダSH、PPS、SPS)が参照する上位のパラメータセットの識別子は、同図の例に限定されない。VPSであれば、VPS識別子k=0.. 15の中から選択されてよいし、SPSであれば、SPS識別子m=0.. 15の中から選択されてよいし、PPSであれば、PPS識別子n=0.. 63の中から選択されてよい。
また、スライスタイプを指定するスライスタイプ指定情報(slice_type)は、スライスヘッダSHに含まれる符号化パラメータの一例である。
スライスタイプ指定情報により指定可能なスライスタイプとしては、(1)符号化の際にイントラ予測のみを用いるIスライス、(2)符号化の際に単方向予測、または、イントラ予測を用いるPスライス、(3)符号化の際に単方向予測、双方向予測、または、イントラ予測を用いるBスライスなどが挙げられる。
(スライスデータレイヤ)
スライスデータレイヤでは、処理対象のスライスデータSDATAを復号するために階層動画像復号装置1が参照するデータの集合が規定されている。スライスデータSDATAは、図8(d)に示すように、符号化ツリーブロック(CTB:Coded Tree Block)を含んでいる。CTB、スライスを構成する固定サイズ(例えば64×64)のブロックであり、最大符号化単位(LCU:Largest Cording Unit)と呼ぶこともある。
スライスデータレイヤでは、処理対象のスライスデータSDATAを復号するために階層動画像復号装置1が参照するデータの集合が規定されている。スライスデータSDATAは、図8(d)に示すように、符号化ツリーブロック(CTB:Coded Tree Block)を含んでいる。CTB、スライスを構成する固定サイズ(例えば64×64)のブロックであり、最大符号化単位(LCU:Largest Cording Unit)と呼ぶこともある。
(符号化ツリーレイヤ)
符号化ツリーレイヤは、図8(e)に示すように、処理対象の符号化ツリーブロックを復号するために階層動画像復号装置1が参照するデータの集合が規定されている。符号化ツリーユニットは、再帰的な4分木分割により分割される。再帰的な4分木分割により得られる木構造のノードのことを符号化ツリー(coding tree)と称する。4分木の中間ノードは、符号化ツリーユニット(CTU:Coded Tree Unit)であり、符号化ツリーブロック自身も最上位のCTUとして規定される。CTUは、分割フラグ(split_flag)を含み、split_flagが1の場合には、4つの符号化ツリーユニットCTUに分割される。split_flagが0の場合には、符号化ツリーユニットCTUは4つの符号化ユニット(CU:Coded Unit)に分割される。符号化ユニットCUは符号化ツリーレイヤの末端ノードであり、このレイヤではこれ以上分割されない。符号化ユニットCUは、符号化処理の基本的な単位となる。
符号化ツリーレイヤは、図8(e)に示すように、処理対象の符号化ツリーブロックを復号するために階層動画像復号装置1が参照するデータの集合が規定されている。符号化ツリーユニットは、再帰的な4分木分割により分割される。再帰的な4分木分割により得られる木構造のノードのことを符号化ツリー(coding tree)と称する。4分木の中間ノードは、符号化ツリーユニット(CTU:Coded Tree Unit)であり、符号化ツリーブロック自身も最上位のCTUとして規定される。CTUは、分割フラグ(split_flag)を含み、split_flagが1の場合には、4つの符号化ツリーユニットCTUに分割される。split_flagが0の場合には、符号化ツリーユニットCTUは4つの符号化ユニット(CU:Coded Unit)に分割される。符号化ユニットCUは符号化ツリーレイヤの末端ノードであり、このレイヤではこれ以上分割されない。符号化ユニットCUは、符号化処理の基本的な単位となる。
なお、符号化ツリーユニットより復号される対象ピクチャ上の部分領域を符号化ツリーブロック(CTB: Coding Tree block)と呼ぶ。対象ピクチャの輝度成分である輝度ピクチャに対応するCTBは輝度CTBと呼ばれる。換言すると、CTUから復号される輝度ピクチャ上の部分領域は輝度CTBと呼ばれる。一方、CTUから復号される色差ピクチャに対応する部分領域は色差CTBと呼ばれる。一般に、画像の色フォーマットが決まっていれば、輝度CTBサイズと色差CTBサイズは相互に変換可能である。例えば、色フォーマットが4:2:2の場合は、色差CTBサイズは輝度CTBサイズの各半分である。以下の記載では、特に断りがなければ、CTBサイズとは輝度CTBサイズを意味する。また、CTUサイズは、CTUに対応する輝度CTBサイズである。
(符号化ユニットレイヤ)
符号化ユニットレイヤは、図8(f)に示すように、処理対象の符号化ユニットを復号するために階層動画像復号装置1が参照するデータの集合が規定されている。具体的には、符号化ユニットCU(coding unit)は、CUヘッダCUH、予測ツリー、変換ツリーから構成される。CUヘッダCUHでは、符号化ユニットが、イントラ予測を用いるユニットであるか、インター予測を用いるユニットであるかなどが規定される。符号化ユニットは、予測ツリー(prediction tree;PT)および変換ツリー(transform tree;TT)のルートとなる。なお、CUに対応するピクチャ上の領域は符号化ブロック(CB:Coding Block)と呼ばれる。輝度ピクチャ上のCBを輝度CB、色差ピクチャ上のCBを色差CBと呼ぶ。CUサイズ(符号化ノードのサイズ)とは、輝度CBサイズを意味する。
符号化ユニットレイヤは、図8(f)に示すように、処理対象の符号化ユニットを復号するために階層動画像復号装置1が参照するデータの集合が規定されている。具体的には、符号化ユニットCU(coding unit)は、CUヘッダCUH、予測ツリー、変換ツリーから構成される。CUヘッダCUHでは、符号化ユニットが、イントラ予測を用いるユニットであるか、インター予測を用いるユニットであるかなどが規定される。符号化ユニットは、予測ツリー(prediction tree;PT)および変換ツリー(transform tree;TT)のルートとなる。なお、CUに対応するピクチャ上の領域は符号化ブロック(CB:Coding Block)と呼ばれる。輝度ピクチャ上のCBを輝度CB、色差ピクチャ上のCBを色差CBと呼ぶ。CUサイズ(符号化ノードのサイズ)とは、輝度CBサイズを意味する。
(変換ツリー)
変換ツリー(以下、TTと略称する)は、符号化ユニットCUが1または複数の変換ブロックに分割され、各変換ブロックの位置とサイズとが規定される。別の表現でいえば、変換ブロックは、符号化ユニットCUを構成する1または複数の重複しない領域のことである。また、変換ツリーは、上述の分割より得られた1または複数の変換ブロックを含む。なお、CUに含まれる変換ツリーに関する情報、及び変換ツリーに包含される情報を、TT情報と呼ぶ。
変換ツリー(以下、TTと略称する)は、符号化ユニットCUが1または複数の変換ブロックに分割され、各変換ブロックの位置とサイズとが規定される。別の表現でいえば、変換ブロックは、符号化ユニットCUを構成する1または複数の重複しない領域のことである。また、変換ツリーは、上述の分割より得られた1または複数の変換ブロックを含む。なお、CUに含まれる変換ツリーに関する情報、及び変換ツリーに包含される情報を、TT情報と呼ぶ。
変換ツリーにおける分割には、符号化ユニットと同一のサイズの領域を変換ブロックとして割り付けるものと、上述したツリーブロックの分割と同様、再帰的な4分木分割によるものがある。変換処理は、この変換ブロックごとに行われる。以下、変換の単位である変換ブロックのことを、変換単位(transform unit;TU)とも称する。
変換ツリーTTには、対象CUの各変換ブロックへの分割パターンを指定するTT分割情報SP_TT、及び量子化予測残差QD 1〜QD NT(NTは、対象CUに含まれる変換単位TUの総数)を含んでいる。
TT分割情報SP_TTは、具体的には、対象CUに含まれる各変換ブロックの形状、および、対象CU内での位置を決定するための情報である。例えば、TT分割情報SP_TTは、対象ノードの分割を行うのか否かを示す情報(split_transform_unit_flag)と、その分割の深度を示す情報(trafoDepth)とから実現できる。
各量子化予測残差QDは、階層動画像符号化装置2が以下の処理1〜3を、処理対象の変換ブロックである対象ブロックに施すことによって生成した符号化データである。
処理1:符号化対象画像から予測画像を減算した予測残差を周波数変換(例えば、DCT変換(Discrete Cosine Transform)およびDST変換(Discrete Sine Transform)等)する;
処理2:処理1にて得られた変換係数を量子化する;
処理3:処理2にて量子化された変換係数を可変長符号化する;
なお、上述した量子化パラメータqpは、階層動画像符号化装置2が変換係数を量子化する際に用いた量子化ステップQPの大きさを表わす(QP=2qp/6)。
処理2:処理1にて得られた変換係数を量子化する;
処理3:処理2にて量子化された変換係数を可変長符号化する;
なお、上述した量子化パラメータqpは、階層動画像符号化装置2が変換係数を量子化する際に用いた量子化ステップQPの大きさを表わす(QP=2qp/6)。
(予測ツリー)
予測ツリー(以下、PTと略称する)は、符号化ユニットCUが1または複数の予測ブロックに分割され、各予測ブロックの位置とサイズとが規定される。別の表現でいえば、予測ブロックは、符号化ユニットCUを構成する1または複数の重複しない領域である。また、予測ツリーは、上述の分割により得られた1または複数の予測ブロックを含む。なお、CUに含まれる予測ツリーに関する情報、及び予測ツリーに包含される情報を、PT情報と呼ぶ。
予測ツリー(以下、PTと略称する)は、符号化ユニットCUが1または複数の予測ブロックに分割され、各予測ブロックの位置とサイズとが規定される。別の表現でいえば、予測ブロックは、符号化ユニットCUを構成する1または複数の重複しない領域である。また、予測ツリーは、上述の分割により得られた1または複数の予測ブロックを含む。なお、CUに含まれる予測ツリーに関する情報、及び予測ツリーに包含される情報を、PT情報と呼ぶ。
予測処理は、この予測ブロックごとに行われる。以下、予測の単位である予測ブロックのことを、予測単位(prediction unit;PU)とも称する。
予測ツリーにおける分割の種類は、イントラ予測の場合と、インター予測の場合との2つがある。イントラ予測とは、同一ピクチャ内の予測であり、インター予測とは、互いに異なるピクチャ間(例えば、表示時刻間、レイヤ画像間)で行われる予測処理を指す。すなわち、インター予測では、対象レイヤと同一レイヤの参照ピクチャ(レイヤ内参照ピクチャ)または、対象レイヤの参照レイヤ上の参照ピクチャ(レイヤ間参照ピクチャ)のいずれを参照ピクチャとして、参照ピクチャ上の復号画像から予測画像を生成する。
イントラ予測の場合、分割方法は、2N×2N(符号化ユニットと同一サイズ)と、N×Nとがある。
また、インター予測の場合、分割方法は、符号化データのpart_modeにより符号化され、2N×2N(符号化ユニットと同一サイズ)、2N×N、2N×nU、2N×nD、N×2N、nL×2N、nR×2N、および、N×Nなどがある。
(予測パラメータ)
予測ユニットの予測画像は、予測ユニットに付随する予測パラメータによって導出される。予測パラメータには、イントラ予測の予測パラメータ、もしくはインター予測の予測パラメータがある。
予測ユニットの予測画像は、予測ユニットに付随する予測パラメータによって導出される。予測パラメータには、イントラ予測の予測パラメータ、もしくはインター予測の予測パラメータがある。
イントラ予測パラメータは、各イントラPUについてのイントラ予測(予測モード)を復元するためのパラメータである。予測モードを復元するためのパラメータには、MPM(Most Probable Mode、以下同様)に関するフラグであるmpm_flag、MPMを選択するためのインデクスであるmpm_idx、及び、MPM以外の予測モードを指定するためのインデクスであるrem_idxが含まれる。
インター予測パラメータは、予測リスト利用フラグpredFlagL0、predFlagL1と、参照ピクチャインデックスrefIdxL0、refIdxL1と、ベクトルmvL0、mvL1から構成される。予測リスト利用フラグpredFlagL0、predFlagL1は、各々L0参照リスト、L1参照リストと呼ばれる参照ピクチャリストが用いられるか否かを示すフラグであり、値が1の場合に対応する参照ピクチャリストが用いられる。2つの参照ピクチャリストが用いられる場合、つまり、predFlagL0=1, predFlagL1=1の場合が、双予測に対応し、1つの参照ピクチャリストを用いる場合、すなわち(predFlagL0, predFlagL1) = (1, 0)もしくは(predFlagL0, predFlagL1) = (0, 1)の場合が単予測に対応する。
(参照ピクチャリストの一例)
次に、参照ピクチャリストの一例について説明する。参照ピクチャリストとは、復号ピクチャバッファに記憶された参照ピクチャからなる列である。図10 (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の添字は、ピクチャ順序番号POC(Picture Ordering Count)を示す。refIdxL0の真下の下向きの矢印は、参照ピクチャインデックスrefIdxL0が、復号ピクチャバッファにおいて、参照ピクチャリストRPL0より参照ピクチャQ0を参照するインデックスであることを示す。同様に、refIdxL1の真下の下向きの矢印は、参照ピクチャインデックスrefIdxL1が、復号ピクチャバッファにおいて、参照ピクチャリストRPL1より参照ピクチャP3を参照するインデックスであることを示す。
次に、参照ピクチャリストの一例について説明する。参照ピクチャリストとは、復号ピクチャバッファに記憶された参照ピクチャからなる列である。図10 (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の添字は、ピクチャ順序番号POC(Picture Ordering Count)を示す。refIdxL0の真下の下向きの矢印は、参照ピクチャインデックスrefIdxL0が、復号ピクチャバッファにおいて、参照ピクチャリストRPL0より参照ピクチャQ0を参照するインデックスであることを示す。同様に、refIdxL1の真下の下向きの矢印は、参照ピクチャインデックスrefIdxL1が、復号ピクチャバッファにおいて、参照ピクチャリストRPL1より参照ピクチャP3を参照するインデックスであることを示す。
(参照ピクチャの例)
次に、ベクトルを導出する際に用いる参照ピクチャの例について説明する。図10 (b)は、参照ピクチャの例を示す概念図である。図10 (b)において、横軸は表示時刻を示し、縦軸はレイヤ数を示す。図示されている、縦3行、横3列(計9個)の長方形は、それぞれピクチャを示す。9個の長方形のうち、下行の左から2列目の長方形は復号対象のピクチャ(対象ピクチャ)を示し、残りの8個の長方形がそれぞれ参照ピクチャを示す。対象ピクチャから下向きの矢印で示される参照ピクチャQ2、及びR2は対象ピクチャと同じ表示時刻であってレイヤが異なるピクチャである。対象ピクチャcurPic(P2)を基準とするレイヤ間予測においては、参照ピクチャQ2、またはR2が用いられる。対象ピクチャから左向きの矢印で示される参照ピクチャP1は、対象ピクチャと同じレイヤであって、過去のピクチャである。対象ピクチャから右向きの矢印で示される参照ピクチャP3は、対象ピクチャと同じレイヤであって、未来のピクチャである。対象ピクチャを基準とする動き予測においては、参照ピクチャP1又はP3が用いられる。
次に、ベクトルを導出する際に用いる参照ピクチャの例について説明する。図10 (b)は、参照ピクチャの例を示す概念図である。図10 (b)において、横軸は表示時刻を示し、縦軸はレイヤ数を示す。図示されている、縦3行、横3列(計9個)の長方形は、それぞれピクチャを示す。9個の長方形のうち、下行の左から2列目の長方形は復号対象のピクチャ(対象ピクチャ)を示し、残りの8個の長方形がそれぞれ参照ピクチャを示す。対象ピクチャから下向きの矢印で示される参照ピクチャQ2、及びR2は対象ピクチャと同じ表示時刻であってレイヤが異なるピクチャである。対象ピクチャcurPic(P2)を基準とするレイヤ間予測においては、参照ピクチャQ2、またはR2が用いられる。対象ピクチャから左向きの矢印で示される参照ピクチャP1は、対象ピクチャと同じレイヤであって、過去のピクチャである。対象ピクチャから右向きの矢印で示される参照ピクチャP3は、対象ピクチャと同じレイヤであって、未来のピクチャである。対象ピクチャを基準とする動き予測においては、参照ピクチャP1又はP3が用いられる。
(動きベクトルと変位ベクトル)
ベクトルmvLXには、動きベクトルと変位ベクトル(disparity vector、視差ベクトル)がある。動きベクトルとは、あるレイヤのある表示時刻でのピクチャにおけるブロックの位置と、異なる表示時刻(例えば、隣接する離散時刻)における同一のレイヤのピクチャにおける対応するブロックの位置との間の位置のずれを示すベクトルである。
ベクトルmvLXには、動きベクトルと変位ベクトル(disparity vector、視差ベクトル)がある。動きベクトルとは、あるレイヤのある表示時刻でのピクチャにおけるブロックの位置と、異なる表示時刻(例えば、隣接する離散時刻)における同一のレイヤのピクチャにおける対応するブロックの位置との間の位置のずれを示すベクトルである。
変位ベクトルとは、あるレイヤのある表示時刻でのピクチャにおけるブロックの位置と、同一の表示時刻における異なるレイヤのピクチャにおける対応するブロックの位置との間の位置のずれを示すベクトルである。異なるレイヤのピクチャとしては、同一解像度でかつ品質が異なるピクチャである場合、異なる視点のピクチャである場合、もしくは、異なる解像度のピクチャである場合などがある。特に、異なる視点のピクチャに対応する変位ベクトルを視差ベクトルと呼ぶ。
〔階層動画像復号装置〕
以下では、本実施形態に係る階層動画像復号装置1の構成について、図18〜図21を参照して説明する。
以下では、本実施形態に係る階層動画像復号装置1の構成について、図18〜図21を参照して説明する。
(階層動画像復号装置の構成)
本実施形態に係る階層動画像復号装置1の構成について説明する。図18は、本実施形態に係る階層動画復号装置1の構成を示す概略図である。
本実施形態に係る階層動画像復号装置1の構成について説明する。図18は、本実施形態に係る階層動画復号装置1の構成を示す概略図である。
階層動画像復号装置1は、階層動画像符号化装置2から供給される階層符号化データDATAを復号して、外部より供給される出力指定情報によって定まるターゲットセットTargetSetに含まれる各レイヤの復号ピクチャを生成し、出力レイヤの復号ピクチャを出力ピクチャPOUT#Tとして出力する。
すなわち、階層動画像復号装置1は、出力指定情報が示す対象出力レイヤセットTargetOptLayerSetの復号に必要とするレイヤの構成を示す対象復号レイヤIDリストTargetDecLayerIdListの要素TargetDecLayerIdList [0].. TargetDecLayerIdList [N-1](Nはターゲットセットに含まれるレイヤ数)の順で、レイヤiのピクチャの符号化データを復号し、その復号ピクチャを生成し、該レイヤiの出力レイヤ情報OutputLayerFlag[i]が“出力レイヤ”を示す場合、該レイヤiの復号ピクチャを所定のタイミングに出力する。
図18に示すように階層動画像復号装置1は、NAL逆多重化部11、及びターゲットセットピクチャ復号部10を含んで構成される。さらに、ターゲットセットピクチャ復号部10は、non-VCL復号部12、パラメータメモリ13、ピクチャ復号部14、復号ピクチャ管理部15、及び出力制御部16を含んで構成される。また、NAL逆多重化部11は、さらにビットストリーム抽出部17を備える。
階層符号化データDATAには、VCLにより生成されたNALU(NAL Unit)の他に、パラメータセット(VPS、SPS、PPS)やSEI等を含むNALUが含まれる。それらのNALはVCL NALUに対して非VCL NALU(non-VCL NAL unit)と呼ばれる。
出力制御部16は、外部より供給される出力指定情報と、パラメータメモリ13に保持されたアクティブVPSのシンタックス、及びシンタックスから導出されるパラメータに基づいて、出力制御情報を導出する。より具体的には、出力制御部16は、出力指定情報に含まれる出力レイヤセットを特定する出力レイヤセット識別子TargetOLSIdx、及びパラメータメモリ13に保持されたアクティブVPSのレイヤセット情報(レイヤセット)、及び出力レイヤセット情報(レイヤセット識別子および出力レイヤフラグ)に基づいて対象出力レイヤセットTargetOptLayerSetの出力レイヤのレイヤ構成を示す対象出力レイヤIDリストTargetOptLayerIdListを導出し、出力制御情報の一部として、復号ピクチャ管理部15へ供給する。
さらに、出力制御部16は、出力指定情報に含まれる出力レイヤセット識別子TargetOLSIdx、及びパラメータメモリ13に保持されたアクティブVPSのレイヤセット情報、及び出力レイヤセット情報、レイヤ間依存情報より導出される依存フラグ、及び出力制御部16で導出される対象出力レイヤIDリストTargetOptLayerIdListに基づいて、非出力レイヤかつ非依存レイヤを除く、対象出力レイヤセットの復号に必要とするレイヤの構成を示す対象復号レイヤIDリストTargetDecLayerIdListを導出し、出力制御情報の一部として、ビットストリーム抽出部17、及びターゲットセットピクチャ復号部10へ供給する。なお、出力制御部16における対象出力レイヤIDリスト、及び対象復号レイヤIDリストの導出処理の詳細については後述する。
さらに、出力制御部16は、出力指定情報に含まれる最高次サブレイヤ識別子HighestTIdと、パラメータメモリ13に保持されたアクティブVPS又はアクティブSPSの最大サブレイヤ値に基づいて、対象出力レイヤセットの出力レイヤ最高次サブレイヤ識別子TargetOLSHighestTIdを導出し、ビットストリーム抽出部17、及びターゲットセットピクチャ復号部10へ供給する。
NAL逆多重化部11の備えるビットストリーム抽出部17は、概略的には、ビットストリーム抽出処理を行い、階層符号化データDATAから、出力制御部16より供給された対象復号レイヤIDリスト、及び復号対象最高次サブレイヤ識別子TargetHighestTidによって定まる集合、ターゲットTargetSetに含まれるNALユニットから構成されるターゲットセット符号化データDATA#T(BitstreamToDecode)を抽出する。なお、ビットストリーム抽出部17における本発明との関連性の高い処理の詳細について後述する。
続いて、NAL逆多重化部11は、ビットストリーム抽出部17より抽出されたターゲットセット符号化データDATA#T(BitstreamToDecode)を逆多重化して、NALユニットに含まれるNALユニットタイプ、レイヤ識別子(レイヤID)、テンポラル識別子(テンポラルID)を参照し、ターゲットセットに含まれるNALユニットを、ターゲットセットピクチャ復号部10へ供給する。
ターゲットセットピクチャ復号部10は、供給されたターゲットセット符号化データDATA#Tに含まれるNALUのうち、non-VCL NALUをnon-VCL復号部12に、VCL NALUをピクチャ復号部14にそれぞれ供給する。すなわち、ターゲットセットピクチャ復号部10は、供給されたNALユニットのヘッダ(NALユニットヘッダ)を復号し、復号したNALユニットヘッダに含まれるNALユニットタイプ、レイヤ識別子、及びテンポラル識別子に基づいて、non-VCL NALUの符号化データをnon-VCL復号部12へ、VCL NALUの符号化データをピクチャ復号部14へ、復号したNALユニットタイプ、レイヤ識別子、及びテンポラル識別子と合わせて供給する。
non-VCL復号部12は、入力されるnon-VCL NALUからパラメータセット、すなわち、VPS、SPS、および、PPSを復号してパラメータメモリ13に供給する。なお、non-VCL復号部12における本発明との関連性の高い処理の詳細について後述する。
パラメータメモリ13は、復号されたパラメータセットを各パラメータセットの識別子毎に、パラメータセットの符号化パラメータを保持する。具体的には、VPSであれば、VPS識別子(video_parameter_set_id)毎に、VPSの符号化パラメータを保持する。SPSであれば、SPS識別子(sps_seq_parameter_set_id)毎に、SPSの符号化パラメータを保持する。PPSであれば、PPS識別子(pps_pic_parameter_set_id)毎に、PPSの符号化パラメータを保持する。なお、パラメータメモリ13に保持される符号化パラメータには、各パラメータセットのレイヤ識別子、及びテンポラル識別子が含まれていてもよい。
また、パラメータメモリ13は、後述のピクチャ復号部14が、ピクチャを復号するために参照するパラメータセット(アクティブパラメータセット)の符号化パラメータを、ピクチャ復号部14へ供給する。具体的には、まず、ピクチャ復号部14で復号されたスライスヘッダSHに含まれるアクティブPPS識別子(slice_pic_parameter_set_id)により、アクティブPPSが指定される。次に、指定されたアクティブPPSに含まれるアクティブSPS識別子(pps_seq_parameter_set_id)により、アクティブSPSが指定される。最後に、アクティブSPSに含まれるアクティブVPS識別子(sps_video_parameter_set_id)により、アクティブVPSが指定される。その後、指定されたアクティブPPS、アクティブSPS、アクティブVPSの符号化パラメータを、ピクチャ復号部14へ供給する。また、パラメータメモリ13は、同様に、出力制御部16が出力制御情報を導出するために参照するアクティブパラメータセットの符号化パラメータを、出力制御部16へ供給する。
ピクチャ復号部14は、入力されるVCL NALU、アクティブパラメータセット(アクティブPPS、アクティブSPS、アクティブVPS),及び参照ピクチャに基づいて復号ピクチャを生成して復号ピクチャ管理部15へ供給する。供給された復号ピクチャは、復号ピクチャ管理部15内のバッファに記録される。なお、ピクチャ復号部14の詳細な説明は後述する。
復号ピクチャ管理部15は、入力される復号ピクチャを内部の復号ピクチャバッファ(DPB: Decoded Picture Buffer)に記録するとともに、参照ピクチャリスト生成や出力ピクチャ決定を行う。また、復号ピクチャ管理部15は、DPBに記録されている復号ピクチャのうち、出力制御部16により導出された対象出力レイヤIDリストTargetOptLayerIdListに含まれる出力レイヤの復号ピクチャを出力ピクチャPOUT#Tとして、所定のタイミングに外部に出力する。
(non-VCL復号部12)
non-VCL復号部12は、入力されるターゲットセット符号化データから、ターゲットセットの復号に用いられるパラメータセット(VPS, SPS, PPS)を復号する。復号されたパラメータセットの符号化パラメータは、パラメータメモリ13に供給され、各パラメータセットの有する識別子毎に記録される。なお、non-VCL復号部12は、パラメータセットに限定されず、図6において、non-VCLに分類されるNALユニット(nal_unit_type=32.. 63)を復号してもよい。パラメータセットと同様に、復号されたnon-VCLの符号化パラメータは、パラメータメモリ13において、各々記録される。
non-VCL復号部12は、入力されるターゲットセット符号化データから、ターゲットセットの復号に用いられるパラメータセット(VPS, SPS, PPS)を復号する。復号されたパラメータセットの符号化パラメータは、パラメータメモリ13に供給され、各パラメータセットの有する識別子毎に記録される。なお、non-VCL復号部12は、パラメータセットに限定されず、図6において、non-VCLに分類されるNALユニット(nal_unit_type=32.. 63)を復号してもよい。パラメータセットと同様に、復号されたnon-VCLの符号化パラメータは、パラメータメモリ13において、各々記録される。
一般に、パラメータセットの復号は既定のシンタックス表に基づいて実行される。すなわち、シンタックス表の定める手順に従って符号化データからビット列を読み出して、シンタックス表に含まれるシンタックスを復号する。また、必要に応じて、復号したシンタックスに基づいて導出した変数を導出して、出力するパラメータセットに含めてもよい。したがって、non-VCL復号部12から出力されるパラメータセットは、符号化データに含まれるパラメータセット(VPS、SPS、PPS)に係るシンタックスおよび、該シンタックスより導出される変数の集合と表現することもできる。
また、non-VCL復号部12は、規定のシンタックス表に基づいてパラメータセット(VPS/SPS/PPS)を復号するパラメータセット復号手段121を含んで構成される。図1は、本実施形態の階層復号装置が備えるパラメータセット復号手段121の構成を示すブロック図である。パラメータセット復号手段121は、レイヤセット情報を復号するレイヤセット復号手段1211、レイヤ間依存情報を復号するレイヤ間依存情報復号手段1220(不図示)、各レイヤの最大サブレイヤ値を復号する最大サブレイヤ復号手段1212、出力レイヤセット情報を復号する出力レイヤセット情報復号手段1213、出力レイヤセットに対応するPTL情報を復号するPTL情報復号手段1221(不図示)、各出力レイヤの最大サブレイヤ値を導出する出力レイヤセット最大サブレイヤ導出手段1214、出力レイヤセットに対応DPB情報を復号するDPB情報復号手段1215、等を備える。 以下では、non-VCL復号部12において復号に使用されるシンタックス表のうち、本発明との関連性が高いシンタックス表を中心に説明する。
(レイヤセット情報)
レイヤセット情報は、階層符号化データに含まれるレイヤセットを構成するレイヤの集合を表わすリスト(以下、レイヤIDリストLayerIdList)であり、レイヤセット情報復号手段1211によってVPSから復号される。レイヤセット情報には、VPS上に定義されるレイヤセットの数を示すシンタックス(vps_num_layer_sets_minus1) (図11上のSYNPVS06)及び、VPS上のレイヤ定義の順番で、j番目のレイヤ(レイヤj)が、i番目のレイヤセット(レイヤセットi)に含まれるか否かを示すシンタックス“layer_id_included_flag[i][j]”(SYNVPS07)が含まれている。レイヤセット数VpsNumLayerSetsは、(vps_num_layer_sets_minus1 + 1)に設定される。また、レイヤセットiは、シンタックス”layer_id_included_flag[i][j]”の値が1であるレイヤjから構成される。すなわち、レイヤセットiを構成するレイヤjは、レイヤIDリストLayerIdList[i]に含まれる。
レイヤセット情報は、階層符号化データに含まれるレイヤセットを構成するレイヤの集合を表わすリスト(以下、レイヤIDリストLayerIdList)であり、レイヤセット情報復号手段1211によってVPSから復号される。レイヤセット情報には、VPS上に定義されるレイヤセットの数を示すシンタックス(vps_num_layer_sets_minus1) (図11上のSYNPVS06)及び、VPS上のレイヤ定義の順番で、j番目のレイヤ(レイヤj)が、i番目のレイヤセット(レイヤセットi)に含まれるか否かを示すシンタックス“layer_id_included_flag[i][j]”(SYNVPS07)が含まれている。レイヤセット数VpsNumLayerSetsは、(vps_num_layer_sets_minus1 + 1)に設定される。また、レイヤセットiは、シンタックス”layer_id_included_flag[i][j]”の値が1であるレイヤjから構成される。すなわち、レイヤセットiを構成するレイヤjは、レイヤIDリストLayerIdList[i]に含まれる。
また、レイヤセットiに含まれるレイヤ数NumLayersInIdList[i]は、シンタックス“layer_id_included_flag[i][j]”のうち、レイヤセットiに関して、該シンタックスの値が1であるフラグの個数から導出される。
具体的には、レイヤセット情報復号手段1211は、各レイヤセットiのレイヤIDリストLayerIdList[i]、及びレイヤセットiに含まれるレイヤ数NumLayersInIdList[i]を、以下の疑似コードにより導出する。
(各レイヤセットのレイヤIDリストの導出を示す疑似コード)
for( i = 0; i < VpsNumLayerSets; i++){
NumLayersInIdList[i] = 0;
for( m = 0; m <= vps_max_layer_id; m++ ){
if( layer_id_included_flag[ i ][ m ] ){
LayerIdList[ i ][ NumLayersInIdList[i] ] = m;
NumLayersInIdList[i]++;
}
} // end of loop on for(m=0; m<= vps_max_layer_id; m++)
} // end of loop on for(i=0; i<VpsNumLayerSets; i++)
なお、上記疑似コードをステップで表わせば、次の通りである。
for( i = 0; i < VpsNumLayerSets; i++){
NumLayersInIdList[i] = 0;
for( m = 0; m <= vps_max_layer_id; m++ ){
if( layer_id_included_flag[ i ][ m ] ){
LayerIdList[ i ][ NumLayersInIdList[i] ] = m;
NumLayersInIdList[i]++;
}
} // end of loop on for(m=0; m<= vps_max_layer_id; m++)
} // end of loop on for(i=0; i<VpsNumLayerSets; i++)
なお、上記疑似コードをステップで表わせば、次の通りである。
(SA01)レイヤセットiのレイヤIDリストの導出に係るループの開始点である。ループの開始前に、変数iは0に初期化される。以下の繰り返し処理のループ変数は変数iであり、0から (NumLayerSets-1)の変数iに対して、SA0A2〜SA0Aに示す処理が実行される。
(SA02)レイヤセットiのレイヤ数NumLayresInIdList[i]を0へ初期化する(すなわち、NumLayersInIdList[i] = 0;)。
(SA03)レイヤセットiのレイヤIDリストへm番目のレイヤ(レイヤm)を要素追加に係るループの開始点である。ループの開始前に、変数mは0に初期化される。以下の繰り返し処理のループ変数は変数mであり、0から最大レイヤ識別子“vps_max_layer_id”の変数mに対して、SA04からSA06に示す処理が実行される。なお、最大レイヤ識別子“vps_max_layer_id”の代わりに、最大レイヤ数VpsMaxLayersを用いて、変数mが、最大レイヤ数VpsMaxLayers未満のときに、ループ内の処理が実行されるようにしてもよい。すなわち、for文の“m<=vps_max_layer_id”の判定式を“m<VpsMaxLayers”へ変更してもよい。
(SA04)レイヤmがレイヤセットiに含まれるか否か(layer_id_included_flag[i][m])を判定する。layer_id_included_flag[i][m]が1であれば、ステップSA05へ遷移する。layer_id_included_flag[i][m]が0であれば、ステップSA05〜SA06の処理を省略し、SA0Aへ遷移する。
(SA05)レイヤセットiのレイヤIDリストLayerIdList[i][]のNumLayersInIdList[i]番目の要素へ、レイヤmを追加する(すなわち、LayerIdList[i][NumLayersInIdList[i]] = m;)。
(SA06)レイヤセットiのレイヤ数NumLayersInIdList[i]の値を“1”加算する(すなわち、NumLayersInIdList[i]++;)。
(SA0A)ステップSA03のループ終端である。
(SA0B)ステップSA01のループ終端である。
以上の手順により、各レイヤセットiのレイヤIDリストLayerIdList[i]を導出することができる。レイヤIDリストLayerIdList[]を参照することで、レイヤセットiで、m番目の要素であるレイヤが、全レイヤ(VPSで定義されるレイヤ)の中で、何番目のレイヤであるかを把握することができる。また、レイヤセットiに含まれるレイヤ数は、レイヤセットiのレイヤ数を表す変数NumLayersInIdList[i]を参照することで把握することができる。なお、導出の手順は、上記ステップに限定されず、実施可能な範囲で変更してもよい。
(レイヤ間依存情報)
レイヤ間依存情報には、直接依存フラグ“direct_dependency_flag[i][j]”(図12のSYNVPS0C)が含まれる。レイヤ間依存情報は、レイヤ間依存情報復号手段により、例えば、VPS拡張データから復号される。
レイヤ間依存情報には、直接依存フラグ“direct_dependency_flag[i][j]”(図12のSYNVPS0C)が含まれる。レイヤ間依存情報は、レイヤ間依存情報復号手段により、例えば、VPS拡張データから復号される。
直接依存フラグdirect_dependency_flag[i][j]は、i番目のレイヤ(以降、レイヤi)が、j番目のレイヤ(以降、レイヤj)に直接的に依存しているか否かを示し、直接的に依存している場合に1の値、直接的に依存していない場合に0の値をとる。
ここで、レイヤiがレイヤjに直接的に依存している場合、レイヤiを対象レイヤとして復号処理を実行する場合に、レイヤjに関するパラメータセット、復号ピクチャや関連する復号済シンタックスが、対象レイヤにより直接的に参照される可能性があることを意味する。逆に、レイヤiがレイヤjに直接的に依存していない場合、レイヤiを対象レイヤとして復号処理を実行する場合に、レイヤjに関するパラメータセット、復号ピクチャや関連する復号済シンタックスが直接的に参照されないことを意味する。言い換えると、レイヤiのレイヤjに対する直接依存フラグdirect_dependency_flag[i][j]が1である場合、レイヤjはレイヤiの直接参照レイヤである。逆に、同フラグが0である場合、レイヤjはレイヤiの非直接参照レイヤである。
レイヤ依存情報復号手段は、直接依存フラグ”direct_dependency_flag[i][j]”に基づいて、レイヤiのの直接参照レイヤのリスト(参照レイヤIDリストともいう)RefLayerId[][]、及びレイヤiの直接参照レイヤ数NumDirectRefLayers[]を導出する。ここで、参照レイヤIDリストRefLayerId[][]は2次元の配列であり、1次元目のインデックスは、対象レイヤ(レイヤi)のレイヤ識別子(layer_id_in_nuh [i])であり、2次元目のインデックスは、対象レイヤ(レイヤi)の参照レイヤIDリストの要素のインデックスである。ここで、layer_id_in_nuh []は、レイヤiのレイヤ識別子nuh_layer_idを導出するための配列である(以下同様)。
(参照レイヤIDリスト、及び直接参照レイヤ数の導出)
参照レイヤIDリスト、及び直接参照レイヤ数の導出は以下の疑似コードにより実行される。
参照レイヤIDリスト、及び直接参照レイヤ数の導出は以下の疑似コードにより実行される。
for(i=0; i< VpsMaxLayers; i++){
iNuhLId = layer_id_in_nuh [i];
NumDirectRefLayers[iNuhLId] = 0;
for(j=0; j<i; j++){
if( direct_dependency_flag[i][j]){
RefLayerId[iNuhLId][NumDirectRefLayers[iNuhLId]] = layer_id_in_nuh[j];
NumDirectRefLayers[iNuhLId]++;
}
} // end of loop on for(j=0; j<i; i++)
} // end of loop on for(i=0; i< VpsMaxLayers ; i++)
なお、上記疑似コードをステップで表わせば、次の通りである。
iNuhLId = layer_id_in_nuh [i];
NumDirectRefLayers[iNuhLId] = 0;
for(j=0; j<i; j++){
if( direct_dependency_flag[i][j]){
RefLayerId[iNuhLId][NumDirectRefLayers[iNuhLId]] = layer_id_in_nuh[j];
NumDirectRefLayers[iNuhLId]++;
}
} // end of loop on for(j=0; j<i; i++)
} // end of loop on for(i=0; i< VpsMaxLayers ; i++)
なお、上記疑似コードをステップで表わせば、次の通りである。
(SL01)レイヤiに関する参照レイヤIDリスト、及び直接参照レイヤ数の導出に係るループの開始点である。ループの開始前に、変数iは0に初期化される。ループ内の処理は、変数iがレイヤ数VpsMaxLayers 未満のときに実行され、ループ内の処理が1回実行される度に、変数iは“1”加算される。
(SL02)変数iNuhLidに、レイヤiのレイヤ識別子layer_id_in_nuh[i]を設定する。さらに、レイヤ識別子layer_id_in_nuh[i]の直接参照レイヤ数NumDirectRefLyaers[iNuhLId]を0へ設定する。
(SL03)レイヤiに関する参照レイヤIDリストへの要素追加(レイヤj)に係るループの開始点である。ループの開始前に、変数jは0に初期化される。ループ内の処理は、変数j(レイヤj)がi未満(j<i)のときに実行され、ループ内の処理が1回実行される度に、変数jは“1”加算される。
(SL04)レイヤjがレイヤiの直接参照レイヤであるか、直接依存フラグ(direct_dependency_flag[i][j])に基づいて判定する。直接依存フラグが1(直接参照レイヤである)であれば、ステップSL05〜SL07の処理を実行するため、ステップSL05へ遷移する。直接依存フラグが0(非直接参照レイヤである)であれば、ステップSL05〜SL07の処理を省略し、SL0Aへ遷移する。
(SL05)参照レイヤIDリストRefLayerId[iNuhLId][]のNumDirectRefLayers[iNuhLId]番目の要素へ、レイヤjのレイヤ識別子layer_id_in_nuh[j]を設定する。
すなわち、RefLayerId[iNuhLId][NumDirectRefLayers[iNuhLId]] = layer_id_in_nuh[j];
すなわち、RefLayerId[iNuhLId][NumDirectRefLayers[iNuhLId]] = layer_id_in_nuh[j];
(SL06)直接参照レイヤ数NumDirectRefLayers[iNuhLId]の値を“1”加算する。すなわち、NumDirectRefLayers[iNuhLId]++;
(SL0A)レイヤiに関する参照レイヤIDリストへの要素追加(レイヤj) に係るループの終端である。
(SL0B)レイヤiの参照レイヤIDリスト、及び直接参照レイヤ数の導出に係るループの終端である。
なお、上記参照レイヤIDリスト、及び直接参照レイヤ数の導出手順は、上記ステップに限定されず、実施可能な範囲で変更してもよい。
(PTL情報)
PTL情報は、出力レイヤセットを復号するために必要とするプロファイル及びレベルを示す情報であり、PTL情報復号手段によってVPSまたはSPSから復号される。
PTL情報は、出力レイヤセットを復号するために必要とするプロファイル及びレベルを示す情報であり、PTL情報復号手段によってVPSまたはSPSから復号される。
出力レイヤセットOLS#0に対応するPTL情報は、VPS上の図11に示すSYNVPS04、又はSPS上の図17(a)に示すSYN_SPS03において通知される。また、出力レイヤセットOLS#i(i=1.. NumOutputLayerSets-1)に対応するPTL情報は、VPS上で定義される”PTL情報の数−1”を示すシンタックス”vps_num_profile_tier_level_minus1”(図12上のSYNVPS0D)、i番目(i=1…num_profile_tier_level_minus1)のPTL情報のプロファイル情報の有無を示プロファイル有無フラグ”vps_profile_present_flag[i]” (図12上のSYNVPS0D)、及びi番目のPTL情報”profile_tier_level()” (図12上のSYNVPS0F)からなる。
各PTL情報は、後述の出力レイヤセットOLS#iに含まれるPTL指定識別子 (profile_level_tier_idx[i]) (図12上のSYNVPS0J)によって、出力レイヤセットOLS#iと対応付けられる。
なお、図14に示すようにPTL情報(SYNVPS04及びSYNVPS0H)は、プロファイル及びレベルに関するシンタックス群(SYNPTL01、SYNPTL02、SYNPTL03、SYNPTL04、SYNPTL05、SYNPTL06)が含まれ、PTL情報復号手段によって復号される。
シンタックス群SYNPTL01には下記シンタックスが含まれる。
・プロファイル空間general_profile_space
・ティアフラグgeneral_tier_flag
・プロファイル識別子general_profile_idc
・プロファイル互換フラグgeneral_profile_compatibility_flag[ i ]
・プロファイル予約シンタックスgeneral_reserved_zero_44bits
シンタックス群SYNPTL02は、レベル識別子general_level_idcが含まれる。
・プロファイル空間general_profile_space
・ティアフラグgeneral_tier_flag
・プロファイル識別子general_profile_idc
・プロファイル互換フラグgeneral_profile_compatibility_flag[ i ]
・プロファイル予約シンタックスgeneral_reserved_zero_44bits
シンタックス群SYNPTL02は、レベル識別子general_level_idcが含まれる。
シンタックス群SYNPTL03は、サブレイヤのサブレイヤプロファイル有無フラグ、およびサブレイヤレベル有無フラグを含む。
シンタックス群SYNPTL04は、サブレイヤ数(MaxNumSbuLayersMinus1,またはMaxNumSubLayers-1)に基づいて定まるビット数分のバイトアラインデータ(reserved_zero_2bits[i])である。
シンタックス群SYNPTL05には、下記シンタックスが含まれる。
・サブレイヤプロファイル空間sub_layer_profile_space[ i ]
・サブレイヤティアフラグsub_layer_tier_flag[ i ]
・サブレイヤプロファイル識別子sub_layer_profile_idc[ i ]
・サブレイヤプロファイル互換フラグsub_layer_profile_compatibility_flag[ i ][ j ]
・サブレイヤプロファイル予約シンタックスsub_layer_reserved_zero_44bits[ i ]
シンタックス群SYNPTL05には、サブレイヤのサブレイヤレベル情報として、サブレイヤレベル識別子sub_layer_level_idc[ i ]が含まれる。
・サブレイヤプロファイル空間sub_layer_profile_space[ i ]
・サブレイヤティアフラグsub_layer_tier_flag[ i ]
・サブレイヤプロファイル識別子sub_layer_profile_idc[ i ]
・サブレイヤプロファイル互換フラグsub_layer_profile_compatibility_flag[ i ][ j ]
・サブレイヤプロファイル予約シンタックスsub_layer_reserved_zero_44bits[ i ]
シンタックス群SYNPTL05には、サブレイヤのサブレイヤレベル情報として、サブレイヤレベル識別子sub_layer_level_idc[ i ]が含まれる。
(最大サブレイヤ情報)
最大サブレイヤ復号手段1212は、符号化データからレイヤ単位で最大サブレイヤ値sub_layers_vps_max_minus1[]を復号する。具体的には、0から最大レイヤ数MaxLayersMinus1までの値iが示すレイヤiについて、最大サブレイヤ値sub_layers_vps_max_minus1[ i ]を復号する。なお、最大サブレイヤ値は、本実施形態では最大のTIDから1を減じた値として、導出されるが、最大のTIDそのものを用いても良い。
最大サブレイヤ復号手段1212は、符号化データからレイヤ単位で最大サブレイヤ値sub_layers_vps_max_minus1[]を復号する。具体的には、0から最大レイヤ数MaxLayersMinus1までの値iが示すレイヤiについて、最大サブレイヤ値sub_layers_vps_max_minus1[ i ]を復号する。なお、最大サブレイヤ値は、本実施形態では最大のTIDから1を減じた値として、導出されるが、最大のTIDそのものを用いても良い。
(出力レイヤセット情報)
出力レイヤセット情報は、出力するレイヤの集合(出力レイヤ情報)と、レイヤの集合(レイヤセット情報)の組み合わせにより定義され、階層動画像復号装置の備える出力レイヤセット情報復号手段1213で復号される。階層動画像復号装置は、出力レイヤセット情報復号化手段で復号される出力レイヤセットに含まれるレイヤセット(出力レイヤセットに対応づけらるレイヤセット)に含まれるレイヤを復号対象とし、該レイヤの復号ピクチャを復号してバッファに記録し、出力レイヤセットに含まれる出力レイヤ情報を対象として、バッファに記録された特定のレイヤの復号ピクチャを選択して出力する。
出力レイヤセット情報は、出力するレイヤの集合(出力レイヤ情報)と、レイヤの集合(レイヤセット情報)の組み合わせにより定義され、階層動画像復号装置の備える出力レイヤセット情報復号手段1213で復号される。階層動画像復号装置は、出力レイヤセット情報復号化手段で復号される出力レイヤセットに含まれるレイヤセット(出力レイヤセットに対応づけらるレイヤセット)に含まれるレイヤを復号対象とし、該レイヤの復号ピクチャを復号してバッファに記録し、出力レイヤセットに含まれる出力レイヤ情報を対象として、バッファに記録された特定のレイヤの復号ピクチャを選択して出力する。
出力レイヤセット情報には、以下のシンタックス要素(E1〜E6)を含む。
E1:追加出力レイヤセット数(num_add_output_layer_sets)(図12上のSYNVPS0G)
E2:デフォルト出力レイヤ識別子(default_target_output_layer_idc)(図12上のSYNVPS0H)
E3:レイヤセット識別子(output_layer_set_idx_minus1)(図12上のSYNVPS0I)
E4:出力レイヤ情報(output_layer_flag)(図12上のSYNVPS0J)
E5:代替出力レイヤフラグ(alt_output_layer_flag)(図12上のSYNVPS0K)
E6:PTL指定識別子(profile_level_tier_idx)(図12上のSYNVPS0M)
本実施形態の出力レイヤセット情報復号手段1213は少なくとも出力レイヤセットのレイヤセット識別子(E3)と出力レイヤフラグ(E4)を復号する。
E2:デフォルト出力レイヤ識別子(default_target_output_layer_idc)(図12上のSYNVPS0H)
E3:レイヤセット識別子(output_layer_set_idx_minus1)(図12上のSYNVPS0I)
E4:出力レイヤ情報(output_layer_flag)(図12上のSYNVPS0J)
E5:代替出力レイヤフラグ(alt_output_layer_flag)(図12上のSYNVPS0K)
E6:PTL指定識別子(profile_level_tier_idx)(図12上のSYNVPS0M)
本実施形態の出力レイヤセット情報復号手段1213は少なくとも出力レイヤセットのレイヤセット識別子(E3)と出力レイヤフラグ(E4)を復号する。
(E1:追加出力レイヤセット)
出力レイヤセットは対応するレイヤセットと、レイヤセット内の出力レイヤの指定を組み合わせた情報である。出力レイヤセットに対応するレイヤセットとして、レイヤセット識別子により特定されるレイヤセットが利用できる。出力レイヤの指定には、出力レイヤ情報が利用できる。そのため、各出力レイヤセットは一つの関連するレイヤセットを有する。
出力レイヤセットは対応するレイヤセットと、レイヤセット内の出力レイヤの指定を組み合わせた情報である。出力レイヤセットに対応するレイヤセットとして、レイヤセット識別子により特定されるレイヤセットが利用できる。出力レイヤの指定には、出力レイヤ情報が利用できる。そのため、各出力レイヤセットは一つの関連するレイヤセットを有する。
出力レイヤセットは、基本出力レイヤセットと追加出力レイヤセットに分類できる。出力レイヤセットが同じレイヤセットに関連付けられる場合、その中の1つを基本出力レイヤセット、同じレイヤセットの関連づけらる基本出力レイヤセット以外の出力レイヤセットが拡張出力レイヤセットである。本実施形態においては、VPSで復号される各レイヤセットに一つの対応する出力レイヤセットが基本出力レイヤセットとして導出される。本実施形態では、レイヤセット数をVpsNumLayerSetsとする場合、0〜VpsNumLayerSets-1の識別子の出力レイヤセットは、0〜VpsNumLayerSets-1の識別子のレイヤセットと1対1に対応する。これらを基本出力レイヤセットとする。VpsNumLayerSets以上の識別子に対応する出力レイヤセットは、基本出力レイヤセット以外の出力レイヤセットであるから、拡張出力レイヤセットである。
追加レイヤセットは、基本出力レイヤセットに追加して定義される出力レイヤセットである。本実施形態では、追加出力レイヤセット数(num_add_output_layer_sets)がVPS拡張から復号されて、該追加出力レイヤセット数の個数の出力レイヤセットがVPS拡張から復号されるレイヤセット識別子と出力レイヤ情報に基づいて導出される。
(E2:デフォルト出力レイヤ識別子)
デフォルト出力レイヤ識別子default_target_output_layer_idcは、出力レイヤセット(出力レイヤ情報)の導出処理を指定するシンタックス要素である。本実施形態の出力レイヤセット情報復号手段1213は、デフォルト出力レイヤ識別子を復号し、デフォルト出力レイヤ識別子の値に応じた処理により、出力レイヤ情報の復号制御または導出を実行する。
デフォルト出力レイヤ識別子default_target_output_layer_idcは、出力レイヤセット(出力レイヤ情報)の導出処理を指定するシンタックス要素である。本実施形態の出力レイヤセット情報復号手段1213は、デフォルト出力レイヤ識別子を復号し、デフォルト出力レイヤ識別子の値に応じた処理により、出力レイヤ情報の復号制御または導出を実行する。
(1)デフォルト出力レイヤ識別子=0の場合:基本出力レイヤセットに対し後述の出力レイヤ情報(output_layer_flag[i][j])の復号を省略し、各出力レイヤセットに含まれる全レイヤを出力レイヤとする。追加出力レイヤセットについては明示的に出力レイヤ情報(output_layer_flag)を復号し、該出力レイヤ情報に従って出力レイヤを設定する。
(2)デフォルト出力レイヤ識別子=1の場合:基本出力レイヤセットにおいて、各出力レイヤセットに含まれる最高次のレイヤ識別子を有するプライマリレイヤを出力レイヤとする。追加出力レイヤセットについては明示的に出力レイヤ情報(output_layer_flag)を復号し、該出力レイヤ情報に従って出力レイヤを設定する。
(3)デフォルト出力レイヤ識別子=2の場合:全ての出力レイヤセット(基本出力レイヤセットおよび追加出力レイヤセット)において、明示的に出力レイヤ情報(output_layer_flag)を復号し、該出力レイヤ情報に従って出力レイヤを設定する。
なお、デフォルト出力レイヤ識別子の値のうち、3以上の値は将来の規格拡張のための予約値である。
(E3:レイヤセット識別子)
レイヤセット識別子は出力レイヤセットに関連付けられるレイヤセットを特定する値である。本実施形態の出力レイヤセット情報復号手段1213は、シンタックス要素output_layer_set_idx_minus1[i]を復号し、該シンタックス要素値に1を加えた値を識別子iの出力レイヤセットに対するレイヤセット識別子として用いる。レイヤセット識別子が指すレイヤセット(LS#(output_layer_set_idx_minus1[i] + 1))は識別子iの出力レイヤセット(OLS#i)に関連付けられる。
レイヤセット識別子は出力レイヤセットに関連付けられるレイヤセットを特定する値である。本実施形態の出力レイヤセット情報復号手段1213は、シンタックス要素output_layer_set_idx_minus1[i]を復号し、該シンタックス要素値に1を加えた値を識別子iの出力レイヤセットに対するレイヤセット識別子として用いる。レイヤセット識別子が指すレイヤセット(LS#(output_layer_set_idx_minus1[i] + 1))は識別子iの出力レイヤセット(OLS#i)に関連付けられる。
なお、出力レイヤセット情報復号手段1213は、符号化データに、出力レイヤセットOLS#iのレイヤセット識別子が存在しない場合(省略された場合)には、推定してもよい。例えば、出力レイヤセット識別子がiである基本出力レイヤセットの場合には、レイヤセット識別子を(i - 1)と推定する。なお、本実施形態において、レイヤセット識別子に係るシンタックス要素は、”レイヤセット識別子の値−1”で表現されるが、これに限定されず、”レイヤセット識別子の値”そのものでもよい。
より具体的には、出力レイヤセット情報復号手段1213は、iで識別される出力レイヤセットのレイヤセット識別子LayerSetIdxForOutputLayerSet[ i ]を以下の擬似コードにより導出する。
LayerSetIdxForOutputLayerSet[ i ] = ( i <= vps_number_layer_sets_minus1 ) ?
i : output_layer_set_idx_minus1[ i ] + 1
すなわち、値iが、レイヤセット数―1(vps_number_layer_sets_minus1)以下、すなわち、基本出力レイヤセットの場合には、LayerSetIdxForOutputLayerSet[ i ] = iとして導出し、それ以外の場合には、LayerSetIdxForOutputLayerSet[ i ] = output_layer_set_idx_minus1[ i ] + 1として導出する。
i : output_layer_set_idx_minus1[ i ] + 1
すなわち、値iが、レイヤセット数―1(vps_number_layer_sets_minus1)以下、すなわち、基本出力レイヤセットの場合には、LayerSetIdxForOutputLayerSet[ i ] = iとして導出し、それ以外の場合には、LayerSetIdxForOutputLayerSet[ i ] = output_layer_set_idx_minus1[ i ] + 1として導出する。
(E4:出力レイヤ情報)
出力レイヤ情報は、出力レイヤセットに関連付けられるレイヤセットに含まれる各レイヤを出力対象レイヤとするかを示すフラグ(OutputLayerFlag[i][j])の集合である。本実施形態の出力レイヤセット情報復号手段1213は、復号したシンタックス要素output_layer_flag[i][j]から、出力レイヤ情報OutputLayerFlag[i][j]を設定する。output_layer_flag[i][j]は、出力レイヤセットiに含まれるj番目のレイヤを出力対象レイヤとするか否かを表すフラグであって、値が真(1)の場合には出力対象レイヤとすることを示し、値が偽(0)の場合には出力対象レイヤとしないことを表す。
出力レイヤ情報は、出力レイヤセットに関連付けられるレイヤセットに含まれる各レイヤを出力対象レイヤとするかを示すフラグ(OutputLayerFlag[i][j])の集合である。本実施形態の出力レイヤセット情報復号手段1213は、復号したシンタックス要素output_layer_flag[i][j]から、出力レイヤ情報OutputLayerFlag[i][j]を設定する。output_layer_flag[i][j]は、出力レイヤセットiに含まれるj番目のレイヤを出力対象レイヤとするか否かを表すフラグであって、値が真(1)の場合には出力対象レイヤとすることを示し、値が偽(0)の場合には出力対象レイヤとしないことを表す。
なお、出力レイヤセット情報復号手段1213は、一部または全ての出力レイヤ情報の復号を省略し、推定、または、他のシンタックス要素の値に基づいた導出処理により出力レイヤ情報を決定してもよい。例えば、デフォルト出力レイヤ識別子(default_target_output_layer_idc)に基づいて、次の(1)〜(3)に示す何れかの導出処理を選択して、基本出力レイヤセットの出力レイヤ情報を決めてもよい。なお、ベースレイヤのみからなる出力レイヤセットOLS#0の出力レイヤ情報は、OutputLayerFlag[0][0]=1と推定してもよい。
(1)デフォルト出力レイヤ識別子=0の場合:出力レイヤセット情報復号手段1213は、以下の疑似コードに示すように、i=0..VpsNumLayerSets-1の基本出力レイヤセットに対して、全レイヤの出力レイヤフラグOutputLayerFlag[i][j]を1に推定する。ここで、変数LayerSetIdx[i]は、出力レイヤセットOLS#iに関連付けられたレイヤセットを示すレイヤセット識別子を表わし、(output_layer_set_idx_minus1[i] + 1)に設定されており、変数NumLayersInIdList[LayerSetIdx[i]]は、レイヤセットLS#(LayerSetIdx[i])に含まれるレイヤ数である(以下、同様)。
for( j=0; j<NumLayersInIdList[LayerSetIdx[i]]; j++){
OutputLayerFlag[i][j] = 1;
}
OutputLayerFlag[i][j] = 1;
}
(2)デフォルト出力レイヤ識別子=1の場合:出力レイヤセット情報復号手段1213は、i=0..vps_number_layer_sets_minus1の基本出力レイヤに対して、各出力レイヤセットに含まれる最高次レイヤ識別子を有するプライマリレイヤを出力レイヤとする。出力レイヤ情報(OutputLayerFlag)は、以下に示す疑似コードによって導出される。
for( j=0; j<NumLayersInIdList[LayerSetIdx[i]]; j++){
if( レイヤjがLayerIdList[LayerSetIdx[i]]中にある最高次レイヤ識別子を有するプライマリレイヤである){
OutputLayerFlag[i][j] = 1;
} else{
OutputLayerFlag[i][j] = 0;
}
}
なお、レイヤjがプライマリレイヤであるか否かは、レイヤjに関する次元IDを示すシンタックス”dimension_id[i][j]”から導出されるスケーラビリティID(ScalabilityId)と、図13(a)上に示すスケーラビリティIDとスケーラビリティタイプ(Scalability Diemnsion)との対応表を参照して、同表のうち、“Auxiliary”の項目 (AuxId[j] = ScalabilityId[j][3]) の値によって決まる。すなわち、同項目の値が0である場合(AuxId[j]==0)、レイヤjがプライマリレイヤであることを示し、0より大きい場合(AuxId[j]>0)、レイヤjが補助レイヤ(あるいは、AUXレイヤ)であることを示す。なお、補助レイヤとは、プライマリレイヤに属するピクチャに対するデプスマップや、アルファチャネルなどの補助ピクチャを通知するためのレイヤである。
if( レイヤjがLayerIdList[LayerSetIdx[i]]中にある最高次レイヤ識別子を有するプライマリレイヤである){
OutputLayerFlag[i][j] = 1;
} else{
OutputLayerFlag[i][j] = 0;
}
}
なお、レイヤjがプライマリレイヤであるか否かは、レイヤjに関する次元IDを示すシンタックス”dimension_id[i][j]”から導出されるスケーラビリティID(ScalabilityId)と、図13(a)上に示すスケーラビリティIDとスケーラビリティタイプ(Scalability Diemnsion)との対応表を参照して、同表のうち、“Auxiliary”の項目 (AuxId[j] = ScalabilityId[j][3]) の値によって決まる。すなわち、同項目の値が0である場合(AuxId[j]==0)、レイヤjがプライマリレイヤであることを示し、0より大きい場合(AuxId[j]>0)、レイヤjが補助レイヤ(あるいは、AUXレイヤ)であることを示す。なお、補助レイヤとは、プライマリレイヤに属するピクチャに対するデプスマップや、アルファチャネルなどの補助ピクチャを通知するためのレイヤである。
(3)デフォルト出力レイヤ識別子=2の場合:出力レイヤセット情報復号手段1213は、i=0を除くすべての出力レイヤセット(i=1.. NumOutputLayerSetsの出力レイヤセット)に対して、シンタックス要素output_layer_flag[i][j]を復号し、出力レイヤを導出する。すなわち、以下の疑似コードに示すように、出力レイヤセットOLS#iのj番目のレイヤjの出力レイヤ情報(OutputLayerFlag[i][j])に、シンタックス要素output_layer_flag[i][j]の値を設定する。
for( j=0; j<NumLayersInIdList[LayerSetIdx[i]]; j++){
OutputLayerFlag[i][j] = output_layer_flag[i][j];
}
なお、出力レイヤセット情報復号手段1213は、導出された出力レイヤ情報(OutputLayerFlag)に基づいて、各出力レイヤセットOLS#i(i=0.. NumOutputLayerSets-1)の出力レイヤ数NumOptLayersInOLS[i]、及び最高次出力レイヤのレイヤ識別子OlsHighestOutputLayerId[i]を、以下に示す疑似コードによって導出してもよい。すなわち、出力レイヤセットOLS#iの出力レイヤ数NumOptLayersInOLS[i]は、レイヤjの出力レイヤフラグOutputLayerFlag[i][j]が”出力レイヤ”を示すフラグの個数である。また、最高次出力レイヤのレイヤ識別子は、出力レイヤセットOLS#iのレイヤIDリストLayerIdList[LayerSetIdx[i]][]の中で、OuputLayerFlag[i][]が1(真)である最高次レイヤのレイヤ識別子である。
OutputLayerFlag[i][j] = output_layer_flag[i][j];
}
なお、出力レイヤセット情報復号手段1213は、導出された出力レイヤ情報(OutputLayerFlag)に基づいて、各出力レイヤセットOLS#i(i=0.. NumOutputLayerSets-1)の出力レイヤ数NumOptLayersInOLS[i]、及び最高次出力レイヤのレイヤ識別子OlsHighestOutputLayerId[i]を、以下に示す疑似コードによって導出してもよい。すなわち、出力レイヤセットOLS#iの出力レイヤ数NumOptLayersInOLS[i]は、レイヤjの出力レイヤフラグOutputLayerFlag[i][j]が”出力レイヤ”を示すフラグの個数である。また、最高次出力レイヤのレイヤ識別子は、出力レイヤセットOLS#iのレイヤIDリストLayerIdList[LayerSetIdx[i]][]の中で、OuputLayerFlag[i][]が1(真)である最高次レイヤのレイヤ識別子である。
NumOptLayersInOLS[i] = 0;
for(j=0; j<NumLayersInIdList[LayerSetIdx[i]]; j++){
NumOptLayersInOLS[i] += OuputLayerFlag[i][j];
if (OuputLayerFlag[i][j]){
OlsHighestOutputLayerId[i] = LayerIdList[ LayerSetIdx[i] ][j];
}
}
for(j=0; j<NumLayersInIdList[LayerSetIdx[i]]; j++){
NumOptLayersInOLS[i] += OuputLayerFlag[i][j];
if (OuputLayerFlag[i][j]){
OlsHighestOutputLayerId[i] = LayerIdList[ LayerSetIdx[i] ][j];
}
}
(E5:代替出力レイヤフラグ)
代替出力レイヤフラグは、代替レイヤ復号ピクチャ出力の適用可否を示す情報である。代替レイヤ復号ピクチャ出力の適用時には、出力レイヤ情報で指定されたレイヤの復号ピクチャが存在しない場合に、代替レイヤが設定されて該代替レイヤの復号ピクチャが代わりに出力される。本実施形態では、シンタックス要素値alt_output_layer_flag[i]が出力レイヤセットiに対する代替出力レイヤ情報である。alt_output_layer_flag[i]の値が真(1)の場合には、出力レイヤセットOLS#iの復号時に代替レイヤ復号ピクチャ出力が適用され、値が偽(0)の場合には、代替レイヤ復号ピクチャ出力が適用されない。
代替出力レイヤフラグは、代替レイヤ復号ピクチャ出力の適用可否を示す情報である。代替レイヤ復号ピクチャ出力の適用時には、出力レイヤ情報で指定されたレイヤの復号ピクチャが存在しない場合に、代替レイヤが設定されて該代替レイヤの復号ピクチャが代わりに出力される。本実施形態では、シンタックス要素値alt_output_layer_flag[i]が出力レイヤセットiに対する代替出力レイヤ情報である。alt_output_layer_flag[i]の値が真(1)の場合には、出力レイヤセットOLS#iの復号時に代替レイヤ復号ピクチャ出力が適用され、値が偽(0)の場合には、代替レイヤ復号ピクチャ出力が適用されない。
出力レイヤセット情報復号手段1213は、例えば、次の条件(A1)を満たす場合にシンタックス要素alt_output_layer_flag[i]を符号化データより復号し、代替出力レイヤフラグAltOutputLayerFlag[i]へ、alt_output_layer_flag[i]の値を設定する。
(A1)出力レイヤセットOLS#iのレイヤ数NumLayersInIdList[LayerSetIdxForOutputLayerSet[ i ]]−出力レイヤ数NumOptLayersInOLS[i]が0より大きい場合。
出力レイヤセット情報復号手段1213は、シンタックス要素alt_output_layer_flag[i]を復号しない場合、該シンタックス要素の値を0であると推定し、代替レイヤ出力フラグAltOutputLayerFlag[i]に、代替レイヤ復号ピクチャ出力を適用しないことに対応する値を設定する。本実施形態においては、AltOutputLayerFlag[i]の値が0に設定される。
図31は、本実施形態に係る出力レイヤセット情報復号手段1213の代替レイヤ出力フラグalt_output_layer_flag[]の復号を説明するフローチャートである。(SC101)レイヤ数NumLayersInIdList[LayerSetIdxForOutputLayerSet[ i ]]−出力レイヤ数NumOptLayersInOLS[i]が0より大きいか否かを判定する。(SC102)上記条件がYESの場合、代替レイヤ出力フラグalt_output_layer_flag[]を符号化データから復号する。上記条件がNOの場合、代替レイヤ出力フラグalt_output_layer_flag[]を符号化データから復号せずに0を導出する。
代替レイヤは、出力レイヤが無い場合に、他のレイヤを代替の出力レイヤとするものである。代替の出力レイヤを用意するためには、レイヤ数が2以上の場合である必要がある。また、全てのレイヤが出力レイヤの場合には、代替レイヤとしなくても出力レイヤであるため、代替レイヤを制御する必要はない。
本実施形態の出力レイヤセット情報復号手段1213は、レイヤ数が出力レイヤ数よりも大きい場合のみに、代替レイヤ出力フラグalt_output_layer_flag[]を復号する。すなわち、出力レイヤセットに含まれる全てのレイヤが出力するを示す場合(レイヤ数と出力レイヤ数が等しい場合)に、代替レイヤ出力フラグalt_output_layer_flag[]を符号化データに含めずに0と復号するため、符号量を低減する効果を奏する。また、レイヤ数―出力レイヤ数>0の条件は、レイヤ数>出力レイヤ数と等価であり、出力レイヤ数の最小値は1であるから、レイヤ数>1を満たす。すなわち、上記条件は、レイヤ数が2以上の場合である必要があるという条件も満たしており、レイヤ数が2個未満の場合に、代替レイヤ出力alt_output_layer_flag[]を符号化データに含めずに0と復号するため、符号量を低減する効果を奏する。
(出力レイヤ最大サブレイヤ)
出力レイヤセット最大サブレイヤ導出手段1214は、出力レイヤ情報復号部1213で導出された出力レイヤについて、最大サブレイヤ復号部1212で導出された各出力レイヤに含まれるレイヤの最大サブレイヤ値から、出力レイヤ最大サブレイヤ値MaxSubLayersInLayerSetMinus1を導出する。
出力レイヤセット最大サブレイヤ導出手段1214は、出力レイヤ情報復号部1213で導出された出力レイヤについて、最大サブレイヤ復号部1212で導出された各出力レイヤに含まれるレイヤの最大サブレイヤ値から、出力レイヤ最大サブレイヤ値MaxSubLayersInLayerSetMinus1を導出する。
出力レイヤセット最大サブレイヤ導出手段1214は、各出力レイヤセットiに対し、出力レイヤセットに対応するレイヤセットに含まれるレイヤの内で、出力フラグOutputLayerFlag[i][j]が1であるレイヤjの最大サブレイヤ値sub_layers_vps_max_minus1の最大値を、出力レイヤ最大サブレイヤ値MaxSubLayersInLayerSetMinus1[ i ]として導出する。
具体的には、出力レイヤセット最大サブレイヤ導出手段1214は、変数iで示される出力レイヤiの、レイヤセット識別子optLsIdx )=LayerSetIdxForOutputLayerSet[ i ])で示されるレイヤセットが含むレイヤk(ここでkは、0からレイヤセットの含むレイヤ数NumLayersInIdList[ optLsIdx ]までの値)が出力レイヤである、すなわち、OutputLayerFlag[i][k]が1である場合には、レイヤkの最大サブレイヤ値sub_layers_vps_max_minus1[ LayerIdxInVps[ lId ] ]の最大値を、出力レイヤ最大サブレイヤ値MaxSubLayersInLayerSetMinus1[ i ]として導出する。なお、出力レイヤセット最大サブレイヤ導出手段1214の処理を示す擬似コードは以下の通りである。
for( i = 1; i < NumOutputLayerSets; i++ ) {
maxSLMinus1 = 0
optLsIdx = LayerSetIdxForOutputLayerSet[ i ]
for( k = 0; k < NumLayersInIdList[ optLsIdx ]; k++ ) {
lId = LayerSetLayerIdList[ optLsIdx ][ k ]
if (OutputLayerFlag[i][k])
maxSLMinus1 =Max( maxSLMinus1, sub_layers_vps_max_minus1[ LayerIdxInVps[ lId ] ] )
}
MaxSubLayersInLayerSetMinus1[ i ] = maxSLMinus1
}
ここで、optLsIdxはLayerSetIdxForOutputLayerSet[ i ]により導出されるアウトプットレイヤセットiのレイヤセット識別子、lldは、LayerSetLayerIdList[ optLsIdx ][ k ]に導出されるレイヤkのレイヤIDである。
maxSLMinus1 = 0
optLsIdx = LayerSetIdxForOutputLayerSet[ i ]
for( k = 0; k < NumLayersInIdList[ optLsIdx ]; k++ ) {
lId = LayerSetLayerIdList[ optLsIdx ][ k ]
if (OutputLayerFlag[i][k])
maxSLMinus1 =Max( maxSLMinus1, sub_layers_vps_max_minus1[ LayerIdxInVps[ lId ] ] )
}
MaxSubLayersInLayerSetMinus1[ i ] = maxSLMinus1
}
ここで、optLsIdxはLayerSetIdxForOutputLayerSet[ i ]により導出されるアウトプットレイヤセットiのレイヤセット識別子、lldは、LayerSetLayerIdList[ optLsIdx ][ k ]に導出されるレイヤkのレイヤIDである。
図23は、本実施形態のサブレイヤと出力レイヤの関係を示す図である。図23では、出力レイヤセットとしてレイヤ0とレイヤ1が含まれ、レイヤ0の出力情報が出力しないことを示す0(OutputLayerLlag[0]=0)で、レイヤ1の出力フラグが出力することを示す1(OutputLayerLlag[0]=1)である例である。レイヤ0の最大出力レイヤ値sub_layers_vps_max_minus1[0]は2であり、レイヤ0はサブレイヤ0〜サブレイヤ2を有し、レイヤ1の最大サブレイヤ値sub_layers_vps_max_minus1[1]は1であり、レイヤ1はサブレイヤ0、サブレイヤ1を有す。この例は、レイヤ0が60fps、レイヤ1が30fpsの場合など、低いレイヤの方が高いフレームレートである場合に相当する。この場合、出力レイヤであるレイヤ1は、30fps(最大サブレイヤ値=1)であるから、レイヤ0を出力せず、レイヤ1のみを出力sるう場合には、60fps相当のピクチャを復号する意味はない。従って、出力レイヤセットに含まれるレイヤの内、出力フラグが1であるもの(出力レイヤ)の中から最も大きい、最大サブレイヤ値(ここでは1)を、出力レイヤセットに対する符号化データを復号する際に必要となるサブレイヤを指定する。後述するようにDPB情報は、出力フラグが1のレイヤの最大サブレイヤ値sub_layers_vps_max_minus1から導出された出力レイヤ最大サブレイヤMaxSubLayersInLayerSetMinus1に対応するサブレイヤのDPB情報のみを復号すれば良い。また、後述するように、復号装置は、出力フラグが1のレイヤの最大サブレイヤ値sub_layers_vps_max_minus1から導出された出力レイヤ最大サブレイヤMaxSubLayersInLayerSetMinus1に対応するサブレイヤのみを(MaxSubLayersInLayerSetMinus1以下のサブレイヤ)のみを復号すれば良い。
図24は、出力レイヤセットに含まれるレイヤ数が2個の場合の出力レイヤセット最大サブレイヤ導出手段1214の動作を説明する図である。図24(a)に示すように、最大サブレイヤ値が各々2と1(sub_layers_vps_max_minus1[0]=2、sub_layers_vps_max_minus1[1]=1)であるレイヤが含まれる場合に、出力レイヤセット最大サブレイヤ導出手段1214は2つの最大サブレイヤ値の最大値Max(sub_layers_vps_max_minus1[0], sub_layers_vps_max_minus1[1])から、出力レイヤ最大サブレイヤ値を導出するのではなく、出力レイヤフラグが1のレイヤの最大サブレイヤ値sub_layers_vps_max_minus1[0]のみから導出する。よって、得られる出力レイヤセット最大サブレイヤ値は1である。図24(a)に示すように、出力レイヤフラグが2つのレイヤともに1である場合には、出力レイヤセット最大サブレイヤ導出手段1214は2つの最大サブレイヤ値の最大値Max(sub_layers_vps_max_minus1[0], sub_layers_vps_max_minus1[1])から、出力レイヤ最大サブレイヤ値を導出する。ここでは、最大サブレイヤ値が各々2と3(sub_layers_vps_max_minus1[0]=2、sub_layers_vps_max_minus1[1]=3)であるレイヤが含まれる場合であるので、得られる出力レイヤセット最大サブレイヤ値は3である。
(DPB情報)
DPB情報は、出力レイヤセットを復号するためにデコーダがバッファ(DPB)で保持する復号ピクチャの最大サイズ等を示す情報であり、DPB情報復号手段1215によって、VPSまたはSPSから復号される。
DPB情報は、出力レイヤセットを復号するためにデコーダがバッファ(DPB)で保持する復号ピクチャの最大サイズ等を示す情報であり、DPB情報復号手段1215によって、VPSまたはSPSから復号される。
DPB情報復号手段1215は、出力レイヤセットiに対する出力レイヤ最大サブレイヤ値以下のサブレイヤについて、出力レイヤのDPB情報を復号する。すなわち、変数iで示す出力レイヤについて、0から出力レイヤ最大サブレイヤ値MaxSubLayersInLayerSetMinus1[i]までのサブレイヤjに対応するDPB情報として、vps_max_dec_pic_buffering_minus1[i][j], vps_max_num_reorder_pics[i][j], vps_max_latency_increase_plus1[i][ j]を復号する。
DPB情報復号手段1215は、出力レイヤセットOLS#0に対応するDPB情報を、符号化データに含まれるVPS上の図15に示すシンタックスSYNDPB01〜SYNDPB04(vps_sub_layer_ordering_info_present_flag, vps_max_dec_pic_buffering_minus1[], vps_max_num_reorder_pics[], vps_max_latency_increase_plus1[])、又はSPS上で、前記シンタックスSYNDPB01〜SYNDPB04の”vps”を”sps”へ置き換えたシンタックスから復号する。なお、各シンタックスの意味は次の通りである。なお、以下のシンタックスで、先頭の”x”は、”vps”又は、”sps”のことである。
x_sub_layer_ordering_info_present_flag:同フラグが1の場合、出力レイヤセットOLS#0の全てのサブレイヤにDPB情報(x_dec_pic_buffering_minus1[],x_max_num_reorder_pics[],x_max_latency_increase_plus1[])が存在することを示す。同フラグが0の場合、前記3種類のシンタクス配列のvps_max_sub_layers_minus1番目の値が全てのサブレイヤへ適用される。
x_max_dec_pic_buffering_minus1 []:バッファ(DPB)に格納するピクチャ数の“最大要求数―1”を示す。
x_max_num_reorder_pics[]:Bピクチャなどの階層構造でデコード順序と表示順序が異なる場合において、デコード順序で当該ピクチャに先行して、かつ表示順序で当該ピクチャに後続できる最大許容ピクチャ枚数を示す。
x_max_latency_inclease_plus1[]:表示順序で、当該ピクチャに先行して、かつ、デコード順序で当該ピクチャに後続する最大ピクチャ枚数を示す変数x_MaxLatencyPictures[]の算出に用いられる値である。なお、変数x_MaxLatencyPictures[]=(x_max_num_reorder_pics[] + x_max_vps_latency_increase_plus1[][] - 1)である。
また、DPB情報復号手段1215は、出力レイヤセットOLS#i(i=1.. NumOutputLayerSets-1)に対応するDPB情報を符号化データに含まれるVPS上のSYNVPS0Mに示すDPB_SIZE() (図16)において、図16に示すシンタックスSYNDPB05〜SYNDPB10から復号する。なお、各シンタックスの意味は次の通りである。
sub_layer_flag_info_present_flag[i](SYNDPB05):サブレイヤ情報有無フラグ [i](同フラグ)が1の場合、出力レイヤセットOLS#iのサブレイヤDPB情報有無フラグ(sub_layer_dpb_info_present_flag[i][j])が符号化データに存在することを示す。同フラグが0の場合、サブレイヤDPB情報有無フラグが符号化データに存在せず、サブレイヤDPB情報有無フラグの値は0と推定される。
sub_layer_dpb_info_prenset_flag[i][j](SYNDPB06):配列[i][j](同フラグ)が1の場合、サブレイヤjに関するmax_vps_dec_pic_buffering_minus1[i][k][j], max_vps_num_reorder_pics[i][k][j], max_vps_latency_increase_plus1[i][k][j])が存在することを示す。同フラグが0の場合、前記3種類のシンタクスは、サブレイヤ(j-1)のシンタックス配列の値と等しいと推定される。
max_vps_dec_pic_buffering_minus1[i][k][j](SYNDPB07): 出力レイヤセットOLS#iにおいて、k番目のサブバッファ(sub-DPB)に格納するピクチャ数の“最大要求数―1”を示す。
max_vps_layer_dec_pic_buiff_minus1[i][k][j] (SYNDPB08): 出力レイヤセットOLS#iにおいて、バッファ(DPB)に格納するk番目のレイヤのピクチャ数の“最大要求数―1”を示す。
max_vps_num_reorder_pic[i][j] (SYNDPB09): 出力レイヤセットOLS#iにおいて、k番目のレイヤkにおいて、Bピクチャなどの階層構造でデコード順序と表示順序が異なる場合において、デコード順序で当該ピクチャに先行して、かつ表示順序で当該ピクチャに後続できる最大許容ピクチャ枚数を示す。
max_vps_latency_increase_plus1[i][j] (SYNDPB10): 表示順序で、当該ピクチャに先行して、かつ、デコード順序で当該ピクチャに後続する最大ピクチャ枚数を示す変数MaxLatencyPictures[]の算出に用いられる値である。なお、変数MaxLatencyPictures[i][j]=(max_vps_num_reorder_pics[i][j] + max_vps_latency_increase_plus1[i][j] - 1)である。
なお、サブレイヤを示す変数jは0からMaxSubLayersInLayerSetMinus1[i]をとり、上述のシンタックス要素は、この範囲のサブレイヤに対して導出される。
図28は、本実施形態の階層動画像復号装置1の動作を示すフローチャートである。
(SA100)階層動画像復号装置1の備える出力レイヤセット最大サブレイヤ導出手段1214により、各出力レイヤiに対して、出力フラグOutputLayerFlag[i][j]が1であるレイヤjのサブレイヤ値sub_layers_vps_max_minus1[j]の最大値から出力レイヤの出力レイヤ最大サブレイヤ値MaxSubLayersInLayerSetMinus1[i]を導出する。
(SA121)DPB情報復号部1215は、出力レイヤの最大サブレイヤ数MaxSubLayersInLayerSetMinus1[i]以下のサブレイヤについて、DPB情報を復号する。
(SA100)階層動画像復号装置1の備える出力レイヤセット最大サブレイヤ導出手段1214により、各出力レイヤiに対して、出力フラグOutputLayerFlag[i][j]が1であるレイヤjのサブレイヤ値sub_layers_vps_max_minus1[j]の最大値から出力レイヤの出力レイヤ最大サブレイヤ値MaxSubLayersInLayerSetMinus1[i]を導出する。
(SA121)DPB情報復号部1215は、出力レイヤの最大サブレイヤ数MaxSubLayersInLayerSetMinus1[i]以下のサブレイヤについて、DPB情報を復号する。
図16に示すように、変数iで示される出力レイヤセットについて、0からMaxSubLayersInLayerSetMinus1[i]までの変数jで示されるサブレイヤについて、sub_layer_dpb_info_present_flag[ i ][ j ]、max_vps_dec_pic_buffering_minus1[ i ][ k ][ j ]、max_vps_num_reorder_pics[ i ][ j ]、
max_vps_layer_dec_pic_buff_minus1[ i ][ k ][ j ]、max_vps_latency_increase_plus1[ i ][ j ]のDPB情報を復号する。
max_vps_layer_dec_pic_buff_minus1[ i ][ k ][ j ]、max_vps_latency_increase_plus1[ i ][ j ]のDPB情報を復号する。
以上の構成により、本実施形態のレイヤセット情報復号手段1211、最大サブレイヤ復号手段1212、出力レイヤセット情報復号手段1213、出力レイヤセット最大サブレイヤ導出手段1214、DPB情報復号手段1215を備える画像復号装置によれば、出力レイヤセットにおいて出力される(出力フラグOutputLayerFlag[i][j])が1である、レイヤjの最大サブレイヤ値sub_layers_vps_max_minus1[j]の最大値を用いて、出力レイヤ最大サブレイヤ値MaxSubLayersInLayerSetMinus1[i]を導出し、出力レイヤ最大サブレイヤ値MaxSubLayersInLayerSetMinus1[i]以下のサブレイヤについてのみDPB情報を復号する。これにより、実際に出力に必要であるサブレイヤのみにDPB情報が限定されることから、DPB情報の符号量を低減する効果を奏する。また、実際には使用されないサブレイヤのDPB情報を誤って符号化するような問題を防ぐ効果を奏する。
(出力制御部16)
出力制御部16は、対象出力レイヤIDリストTargetOptLayerIdList[]、復号レイヤIDリスト及び最大出力レイヤサブレイヤ値TargetOLSHighestTIdを導出し、復号ピクチャ管理部15に出力する。
出力制御部16は、対象出力レイヤIDリストTargetOptLayerIdList[]、復号レイヤIDリスト及び最大出力レイヤサブレイヤ値TargetOLSHighestTIdを導出し、復号ピクチャ管理部15に出力する。
出力制御部16は、外部より供給される出力指定情報である出力レイヤセット識別子TargetOLSIdx)と、レイヤセットLayerIdList[][]および出力レイヤフラグOutputLayerFlag[][]に基づいて、対象出力レイヤIDリストTargetOptLayerIdList[]を出力制御情報として導出する。なお、出力制御部16が参照するアクティブパラメータセット(アクティブVPS)のシンタックス、及びシンタックスより導出される変数は、復号済であり、パラメータメモリ13に格納されているものとする。なお、アクティブVPSを特定するために、アクティブVPS識別子を、出力指定情報に含めてもよい。
まず、出力制御部16は、出力指定情報に含まれる出力レイヤセット識別子TargetOLSIdxによって指定される出力レイヤセットOLS#TargetOLSIdxを処理対象として選択する。さらに、出力制御部16は、以下の疑似コードによって対象出力レイヤIDリストTargetOptLayerIdList[]を導出する(出力レイヤIDリスト導出手段)。
(TargetOptLayerIdListの導出を示す疑似コード)
for(k=0; j=0; j< NumLayersInIdList[ LayerSetIdx[ TargetOLSIdx ]]; j++){ //SA01
if( OutputLayerFlag[ TargetOLSIdx ][j] ){ //SA02
TargetOptLayerIdList[k] = LayerIdList[LayerSetIdx[ TargetOLSIdx ] ][j]; //SA03
k++; //SA04
}
} // end of loop //SA05
なお、上記疑似コードをステップで表わせば、次の通りである。
for(k=0; j=0; j< NumLayersInIdList[ LayerSetIdx[ TargetOLSIdx ]]; j++){ //SA01
if( OutputLayerFlag[ TargetOLSIdx ][j] ){ //SA02
TargetOptLayerIdList[k] = LayerIdList[LayerSetIdx[ TargetOLSIdx ] ][j]; //SA03
k++; //SA04
}
} // end of loop //SA05
なお、上記疑似コードをステップで表わせば、次の通りである。
(SA01)対象出力レイヤIDリストTargetOptLayerIdList[]の導出に係るループの開始点である。ループの開始前に、変数k、変数jは0に初期化される。以下の繰り返し処理のループ変数は変数jであり、出力制御部16は、0から(NumLayersInIdList[ LayerSetIdx[ TargetOLSIdx] ]-1)の変数jに対して、SA02〜SA04に示す処理を実行する。
ここで、LayerSetIdx[ TargetOLSIdx]は、TargetOLSIdxが示すレイヤセット識別子であり、NumLayersInIdList[x]は、レイヤセット識別子xが示すレイヤセットのレイヤ数であるから、NumLayersInIdList[ LayerSetIdx[ TargetOLSIdx] ]は、対象出力レイヤセットOLS#(TargetOLSIdx)に関連付けられたレイヤセットLS#(LayerSetIdx[TargetOLSIdx])に含まれるレイヤ数である。
ここで、LayerSetIdx[ TargetOLSIdx]は、TargetOLSIdxが示すレイヤセット識別子であり、NumLayersInIdList[x]は、レイヤセット識別子xが示すレイヤセットのレイヤ数であるから、NumLayersInIdList[ LayerSetIdx[ TargetOLSIdx] ]は、対象出力レイヤセットOLS#(TargetOLSIdx)に関連付けられたレイヤセットLS#(LayerSetIdx[TargetOLSIdx])に含まれるレイヤ数である。
(SA02)対象出力レイヤセットに含まれる各レイヤが出力レイヤであるか否かを判定する。具体的には、対象出力レイヤセットにおいて、変数jの示すレイヤの出力レイヤフラグOutputLayerFlag[ TargetOLSIdx ][j]が1(真)である場合(出力レイヤである)、ステップSA04へ遷移する。出力レイヤフラグOutputLayerFlag[ TargetOLSIdx ][j]が0(偽)である場合(出力レイヤでない)、ステップSA0Aへ遷移する。
(SA03)対象出力レイヤセットの内、出力レイヤフラグが1(出力レイヤ)であるレイヤを、出力レイヤIDリストTargetOptLayerIdList[]として導出する。具体的には、出力レイヤセットOLS#(TargetOLSIdx)に関連付けられたレイヤセットLS#(LayerSetIdx[ TargetOLSIdx ])のj番目の要素を、出力レイヤセットOLS#(TargetOLSIdx)の出力レイヤIDリストTargetOptLayerIdList[]のk番目の要素へ追加する。すなわち、TargetOptLayerIdList[k] = LayerIdList[LayerSetIdx[ TargetOLSIdx ] ][j];
(SA04)変数kに”1”加算する。
(SA05)対象出力レイヤセットOLS#(TargetOLSIdx)のレイヤIDリストTargetOptLayerIdList[]、の導出に係るループの終端である。
(復号レイヤIDリスト導出)
さらに、出力制御部16の備える図示しない復号レイヤIDリスト導出手段は、対象出力レイヤIDリストTargetOptLayerIdList、パラメータメモリ13に保持されたアクティブVPSのレイヤセットLayerIdList[][]、レイヤ間依存情報より導出される依存フラグに基づいて、対象出力レイヤセットの復号に必要とするレイヤの構成を示す対象復号レイヤIDリストTargetDecLayerIdList[]を導出する。導出されたTargetDecLayerIdList[]は、出力制御情報の一部として、ビットストリーム抽出部17、及びターゲットセットピクチャ部10へ供給する。
さらに、出力制御部16の備える図示しない復号レイヤIDリスト導出手段は、対象出力レイヤIDリストTargetOptLayerIdList、パラメータメモリ13に保持されたアクティブVPSのレイヤセットLayerIdList[][]、レイヤ間依存情報より導出される依存フラグに基づいて、対象出力レイヤセットの復号に必要とするレイヤの構成を示す対象復号レイヤIDリストTargetDecLayerIdList[]を導出する。導出されたTargetDecLayerIdList[]は、出力制御情報の一部として、ビットストリーム抽出部17、及びターゲットセットピクチャ部10へ供給する。
復号レイヤIDリスト導出手段は、対象復号レイヤIDリストを、例えば、以下の疑似コードによって導出される。
(TargetDecLayerIdListの導出を示す疑似コード1)
for(i=0,j=0; j< NumLayersInIdList[ LayerSetIdx[ TargetOLSIdx ]]; j++){ //SB01
iNuhLId = layer_id_in_nuh[i]; //SB02
for(refLayerFlag=0, k=0; k< NumOptLayersInOLS[TargetOLSIdx]; k++){ //SB03
iOptLayerId = layer_id_in_nuh[( TargetOptLayerIdList[k] )]; //SB04
refLayerFlag =
(refLayerFlag | recursiveRefLayerFlag[ iOptLayerId ][ iNuhLId ]); //SB05
} //SB06
if( OutputLayerFlag[ TargetOLSIdx ][j] || refLayerFlag ){ //SB07
TargetDecLayerId[i] = LayerIdList[LayerSetIdx[ TargetOLSIdx ] ][j]; //SB08
i++; //SB09
}
} //SB10
なお、上記疑似コードをステップで表わせば、次の通りである。なお、各ステップ番号SB01.. SB10は、疑似コード、及び図19に示す対象復号レイヤIDリストの導出に係るフロー図のステップ番号SB01.. SB10と対応する。
for(i=0,j=0; j< NumLayersInIdList[ LayerSetIdx[ TargetOLSIdx ]]; j++){ //SB01
iNuhLId = layer_id_in_nuh[i]; //SB02
for(refLayerFlag=0, k=0; k< NumOptLayersInOLS[TargetOLSIdx]; k++){ //SB03
iOptLayerId = layer_id_in_nuh[( TargetOptLayerIdList[k] )]; //SB04
refLayerFlag =
(refLayerFlag | recursiveRefLayerFlag[ iOptLayerId ][ iNuhLId ]); //SB05
} //SB06
if( OutputLayerFlag[ TargetOLSIdx ][j] || refLayerFlag ){ //SB07
TargetDecLayerId[i] = LayerIdList[LayerSetIdx[ TargetOLSIdx ] ][j]; //SB08
i++; //SB09
}
} //SB10
なお、上記疑似コードをステップで表わせば、次の通りである。なお、各ステップ番号SB01.. SB10は、疑似コード、及び図19に示す対象復号レイヤIDリストの導出に係るフロー図のステップ番号SB01.. SB10と対応する。
(SB01)対象復号レイヤIDリストTargetDecLayerIdList[]の導出に係るループの開始点である。変数k、変数jは0に初期化される。以下の繰り返し処理のループ変数は変数jであり、復号レイヤIDリスト導出手段は、は、0から(NumLayersInIdList[ LayerSetIdx[ TargetOLSIdx] ]-1)の変数jに対して、SB02〜SB08に示す処理を実行する。
(SB02) 復号レイヤIDリスト導出手段は、出力レイヤセットに含まれる変数jで識別されるレイヤ(以下、レイヤj)のレイヤ識別子を導出する。具体的には、出力レイヤセットOLS#(TargetOLSIdx)に関連付けられたレイヤセットLS#(LayerSetIdx[ TargetOLSIdx ])のj番目の要素(対象レイヤj)のレイヤ識別子を、変数iNuhLIdへ設定する。
(SB03)復号レイヤIDリスト導出手段は、出力レイヤセットに関連付けられたレイヤセットのレイヤ(対象レイヤj)が、出力レイヤフラグが1のレイヤである対象出力レイヤTargetOptLayerIdList[k]の依存レイヤ(直接参照レイヤ、又は間接参照レイヤ)であるか否かを示すフラグrefLayerFlagをSB03〜SB05により導出する。
復号レイヤIDリスト導出手段は、対象出力レイヤTargetOptLayerIdList[k]に属する各々のレイヤ(以下、出力レイヤk)に対して、対象レイヤjが出力レイヤkに依存するか否かを示す依存フラグrecursiveRefLayerFlag[出力レイヤkのレイヤID][対象レイヤjのレイヤID]を判定し、1つでも依存フラグrecursiveRefLayerFlag[][]が1のレイヤが存在すれば、対象レイヤj出力レイヤkの依存レイヤであるか否かを示す対象レイヤ依存フラグrefLayerFlagを1にする。
SB03では、ループの開始前に、変数k、フラグrefLayerFlagを0に初期化する。ループ内の処理は、変数kが、出力レイヤ数“NumOptLayerIdList[TargetOptLayerIdx]”未満のときに実行され、ループ内の処理が1回実行される度に、変数kは“1”加算される。
(SB04)変数iOptLayerIdへ、出力レイヤTargetOptLayerIdList[k]のレイヤ識別子を設定する。
(SB05)フラグrefLayerFlagと、レイヤ識別子iOptLayerIdを有する出力レイヤTargetOptLayerIdList[k]に対するレイヤ識別子iNuhLIdを有する対象レイヤjの依存フラグrecursiveRefLayerFlagとの論理和の値を、フラグrefLayerFlagへ設定する。
(SB06)ステップSB03のループ終端である。
(SB07)復号レイヤIDリスト導出手段は、対象レイヤjが出力レイヤであるか、又は対象出力レイヤセットTargetOptLayerSet内の出力レイヤの依存レイヤであるかを判定する。対象レイヤjの出力レイヤフラグOutputLayerFlag[TargetOLSIdx][j]が1(真)、又は対象レイヤjの対象レイヤ依存フラグrefLayerFlagが1(真)である場合、ステップSB08-SB09を実行する。
(SB08)復号レイヤIDリスト導出手段は、対象レイヤjが出力レイヤであるか、又は出力レイヤの依存レイヤである場合に、対象レイヤjを対象復号レイヤIDリストTargetDecLayerIdList[]として導出する。具体的には、対象復号レイヤIDリストTargetDecLayerIdList[]のi番目の要素へ、対象出力レイヤセットTargetOptLayerSetに関連付けられたレイヤセットLayerSetIdx[ TargetOLSIdx ]のj番目の要素を追加する。
上記処理では、非出力(出力レイヤフラグOutputLayerFlag[TargetOLSIdx][j]が0)かつ非依存(refLayerFlagが0)のレイヤは除外される。つまり、復号レイヤIDリスト導出手段は、出力レイヤセットTargetOptLayerSetにおいて、非出力かつ非参照レイヤであるレイヤを除く、全てのレイヤ(出力レイヤ、又は依存レイヤ)を対象復号レイヤIDリストへ含める。
(SB09)変数iへ”1”を加算する。
(SB10)ステップSB01のループ終端である。
なお、上記依存フラグの導出手順は、上記ステップに限定されず、実施可能な範囲で変更してもよい。例えば、ステップSB05において、フラグrefLayerFlagの値は、論理和の演算子’|’代わりに、和の演算子’+’としてもよい。
なお、既に説明したように、対象出力レイヤIDリストTargetOptLayerIdListは、出力制御部16のより出力レイヤフラグOutputLayerFlag[][]から導出される情報である。従って、全体とすれば、出力制御部16は、出力レイヤセット識別子TargetOLSIdx、レイヤセットLayerIdList[][]、出力レイヤフラグOutputLayerFlag[][]および依存フラグrecursiveRefLayerFlagにより、対象復号レイヤIDリストを導出する。
上記構成の出力制御部16は、対象出力レイヤセットTargetOptLayerSetに関連づけられるレイヤセットの各レイヤが、対象出力レイヤセットの出力レイヤもしくは出力レイヤの依存レイヤであるかに応じて、復号対象とするレイヤである対象復号レイヤIDリストTargetDecLayerIdList[]を導出する。すなわち、出力制御部16は、対象出力レイヤセットの出力レイヤの復号に必須でないレイヤ(非出力かつ非参照レイヤ)の復号は、対象復号レイヤIDリストTargetDecLayerIdList[]に含めない。これにより、ターゲットセットピクチャ復号部10は、非出力かつ非参照レイヤの復号を省略することが可能である。また、同様に、上記構成の出力制御部16は、対象出力レイヤセットの出力レイヤの復号に必須でない、非出力かつ非参照レイヤのレイヤ識別子を有するNALユニットを、対象復号レイヤIDリストTargetDecLayerIdListに含めないため、ビットストリーム抽出部17ではこれらのレイヤが破棄される。
なお、出力制御部16において、指定された出力レイヤセットOLS#(TargetOLSIdx)が出力レイヤを有さない場合は、出力レイヤセットに含まれる、少なくとも1以上のレイヤを出力レイヤとして指定することが好ましい。例えば、出力レイヤセットに含まれる全レイヤ、あるは最高次レイヤ識別子を有するプライマリレイヤを出力レイヤと指定すればよい。
(出力レイヤ最大サブレイヤ識別子TargetOLSHighestTIdの導出)
出力制御部16は、出力指定情報に含まれる最高次サブレイヤ識別子(又は、最大サブレイヤ値HighestTIdともいう)と、パラメータメモリ13に保持されたアクティブVPS又はアクティブSPSの最大サブレイヤ値に基づいて、対象出力レイヤの出力レイヤ最大サブレイヤ値TargetOLSHighestTIdを導出し、ビットストリーム抽出部17、及びターゲットセットピクチャ復号部10へ供給する。
出力制御部16は、出力指定情報に含まれる最高次サブレイヤ識別子(又は、最大サブレイヤ値HighestTIdともいう)と、パラメータメモリ13に保持されたアクティブVPS又はアクティブSPSの最大サブレイヤ値に基づいて、対象出力レイヤの出力レイヤ最大サブレイヤ値TargetOLSHighestTIdを導出し、ビットストリーム抽出部17、及びターゲットセットピクチャ復号部10へ供給する。
より具体的には、出力制御部16は、外部より供給された最高次サブレイヤ識別子HighestTIdと、外部より供給される対象出力レイヤセット識別子TargetOlsIdxによっと特定される出力レイヤセットOLS#(TargetOlsIdx)の出力レイヤ最大サブレイヤ値MaxSubLayersInLayerSetMinus1[TargetOLSIdx]に基づいて、出力レイヤ最大サブレイヤ識別子TargetOLSHighestTIdを下記式(A1)によって導出する。
TargetOLSHighestTId = CLIP(0, MaxSubLayersInLayerSetMinus1[TargetOLSIdx], HighestTId) (A1)
ここで、演算子CLIP(X,Y,Z)は、ZがYより大きい場合(Z>Y)には、Yの値を返し、ZがXより小さい場合(Z<X)には、Xを返し、それ以外の場合(X<=Z<=Y)には、Zを返すクリップ処理である。
ここで、演算子CLIP(X,Y,Z)は、ZがYより大きい場合(Z>Y)には、Yの値を返し、ZがXより小さい場合(Z<X)には、Xを返し、それ以外の場合(X<=Z<=Y)には、Zを返すクリップ処理である。
すなわち、出力制御16は、最高次サブレイヤ識別子HighestTIdが、出力レイヤ最大サブレイヤ値MaxSubLayersInLayerSetMinus1[TargetOLSIdx]の値より大きい場合、MaxSubLayersInLayerSetMinus1[TargetOLSIdx]の値を、出力レイヤ最大サブレイヤ識別子TargetOLSHighestTIdへ設定する。
出力制御16は、最高次サブレイヤ識別子HighestTIdが、0より小さい場合、0の値を、出力レイヤ最大サブレイヤ識別子TargetOLSHighestTIdへ設定する。
それ以外の場合、すなわち、最高次サブレイヤ識別子HighestTIdが、出力レイヤ最大サブレイヤ値MaxSubLayersInLayerSetMinus1[TargetOLSIdx]の値以下かつ0以上の場合、最高次サブレイヤ識別子HighestTIdの値を、出力レイヤ最大サブレイヤ識別子TargetOLSHighestTIdへ設定する。
以上、出力制御部16は、外部より供給される最高次サブレイヤ識別子HighestTIdが、0〜出力レイヤ最大サブレイヤ値MaxSubLayersInLayerSetMinus1[TargetOLSIdx]の値を超えないように制限し、対象出力レイヤセットOLS#(TargetOLSIdx)の最高次サブレイヤTargetOLSHihgestTIdを導出する。
なお、出力制御部16は、対象出力レイヤセット識別子TargetOLSIdxが0の場合、すなわち、ベースレイヤのみからなるレイヤセットであり、かつ、ベースレイヤが出力レイヤである場合には、アクティブVPSから導出される出力レイヤ最大サブレイヤ値MaxSubLayersInLayerSetMinus1[0](=vps_max_sub_layers_minus1)の代わりに、アクティブSPSにある最大サブレイヤ値sps_max_sub_layers_minus1を代用してもよい。
(ピクチャ復号部14)
ピクチャ復号部14は、入力されるVCL NALユニット、および、アクティブパラメータセットに基づいて復号ピクチャを生成して出力する。
ピクチャ復号部14は、入力されるVCL NALユニット、および、アクティブパラメータセットに基づいて復号ピクチャを生成して出力する。
図20を用いて、ピクチャ復号部14の概略的構成を説明する。図20は、ピクチャ復号部14の概略的構成を示した機能ブロック図である。
ピクチャ復号部14は、スライスヘッダ復号部141、CTU復号部142を備えている。CTU復号部142は、さらに、予測残差復元部1421、予測画像生成部1422、及びCTU復号画像生成部1423を含んでいる。
(スライスヘッダ復号部141)
スライスヘッダ復号部141は、入力されるVCL NALユニットとアクティブパラメータセットに基づいてスライスヘッダを復号する。復号したスライスヘッダは、入力されるVCL NALユニットと合わせてCTU復号部142に出力する。
スライスヘッダ復号部141は、入力されるVCL NALユニットとアクティブパラメータセットに基づいてスライスヘッダを復号する。復号したスライスヘッダは、入力されるVCL NALユニットと合わせてCTU復号部142に出力する。
(CTU復号部142)
CTU復号部142は、概略的には、入力されるVCL NALユニットに含まれるスライスセグメント(スライスヘッダおよびスライスデータ)、及びアクティブパラメータセットに基づいて、ピクチャを構成するスライスに含まれる各CTUに対応する領域の復号画像を復号することで、スライスの復号画像を生成する。CTUの復号画像は、CTU復号部142内部の予測残差復元部1421、予測画像生成部1422、及びCTU復号画像生成部1423により生成される。
CTU復号部142は、概略的には、入力されるVCL NALユニットに含まれるスライスセグメント(スライスヘッダおよびスライスデータ)、及びアクティブパラメータセットに基づいて、ピクチャを構成するスライスに含まれる各CTUに対応する領域の復号画像を復号することで、スライスの復号画像を生成する。CTUの復号画像は、CTU復号部142内部の予測残差復元部1421、予測画像生成部1422、及びCTU復号画像生成部1423により生成される。
予測残差復元部1421は、入力のスライスデータに含まれる予測残差情報(TT情報)を復号して対象CTUの予測残差を生成して出力する。
予測画像生成部1422は、入力のスライスデータに含まれる予測情報(PT情報)の示す予測方法と予測パラメータに基づいて予測画像を生成して出力する。その際、必要に応じて、参照ピクチャの復号画像や符号化パラメータが利用される。例えば、インター予測、または、レイヤ間画像予測を使用する場合は、復号ピクチャ管理部15より対応する参照ピクチャを読み出す。
CTU復号画像生成部1423は、入力される予測画像と予測残差を加算して対象CTUの復号画像を生成して出力する。
<ピクチャ復号部14の復号プロセス>
以下、図21を参照して、ピクチャ復号部14における対象レイヤiのピクチャの復号の概略的な動作について説明する。図21は、ピクチャ復号部14における対象レイヤiのピクチャを構成するスライス単位の復号プロセスを示すフロー図である。
以下、図21を参照して、ピクチャ復号部14における対象レイヤiのピクチャの復号の概略的な動作について説明する。図21は、ピクチャ復号部14における対象レイヤiのピクチャを構成するスライス単位の復号プロセスを示すフロー図である。
(SD101)復号対象スライスの先頭スライスフラグ(first_slice_segment_in_pic_flag)(図17(d)のSYNSH01)を復号する。先頭スライスフラグが1の場合、復号対象スライスは、ピクチャ内の復号順(以降、処理順)で先頭スライスであり、復号対象スライスの先頭CTUのピクチャ内でのラスタスキャン順での位置(以降、CTUアドレス)を0に設定する。さらに、ピクチャ内の処理済みCTU数のカウンタnumCtb(以降、処理済CTU数numCtb)を0に設定する。先頭スライスフラグが0の場合、後述のSD106で復号されるスライスアドレスに基づいて、復号対象スライスの先頭CTUアドレスを設定する。
(SD102)復号対象スライスの復号時に参照するアクティブPPSを指定するアクティブPPS識別子(slice_pic_paramter_set_id)(図17(d)のSYNSH02)を復号する。
(SD104)アクティブパラメータセットをパラメータメモリ13よりフェッチする。すなわち、復号対象スライスが参照するアクティブPPS識別子(slice_pic_parameter_set_id)と同一のPPS識別子(pps_pic_parameter_set_id)を有するPPSをアクティブPPSとし、パラメータメモリ13から、アクティブPPSの符号化パラメータをフェッチする(読み出す)。さらに、アクティブPPS内のアクティブSPS識別子(pps_seq_parameter_set_id)と同一のSPS識別子(sps_seq_parameter_set_id)を有するSPSをアクティブSPSとし、パラメータメモリ13から、アクティブSPSの符号化パラメータをフェッチする。さらに、アクティブSPS内のアクティブVPS識別子(sps_video_parameter_set_id)と同一のVPS識別子(vps_video_parameter_set_id)を有するVPSをアクティブVPSとし、パラメータメモリ13から、アクティブVPSの符号化パラメータをフェッチする。
(SD105)復号対象スライスが、ピクチャ内の処理順で先頭スライスであるか否かを先頭スライスフラグに基づいて判定する。先頭スライスフラグが0の場合(SD105でYes)、ステップSD106へ遷移する。それ以外の場合(SD105でNo)、ステップSD106の処理をスキップする。なお、先頭スライスフラグが1の場合、復号対象スライスのスライスアドレスは0である。
(SD106)復号対象スライスのスライスアドレス(slice_segment_address)(図17(d)のSYNSH03)を復号し、復号対象スライスの先頭CTUアドレスを設定する。例えば、先頭スライスCTUアドレス=slice_segment_addressである。
(SD10A)CTU復号部142は、入力されるスライスヘッダ、アクティブパラメータセット、及びVCL NALユニットに含まれるスライスデータ内の各CTU情報(図17(e)のSYNSD01)に基づいて、ピクチャを構成するスライスに含まれる各CTUに対応する領域のCTU復号画像を生成する。さらに、各CTU情報の後に、該CTUが復号対象スライスの終端であるかを示すスライス終端フラグ(end_of_slice_segment_flag)(図17(e)のSYNSD2)。また、各CTUの復号後に、処理済CTU数numCtbの値を1加算する(numCtb++)。
(SD10B)該CTUが復号対象スライスの終端であるか否かをスライス終端フラグに基づいて判定する。スライス終端フラグが1の場合(SD10BでYes)、ステップSD10Cへ遷移する。それ以外の場合(SD10BでNo)、後続のCTU情報を復号するため、ステップSD10Aへ遷移する。
(SD10C)処理済CTU数numCtuが、ピクチャを構成するCTUの総数(PicSizeInCtbsY)に達したか判定する。すなわち、numCtu==PicSizeInCtbsYであるか判定する。numCtuがPicSizeInCtbsYと等しい場合(SD10CでYes)、復号対象ピクチャを構成するスライス単位の復号処理を終了する。それ以外の場合(numCtu<PicSizeInCtbsY)(SD10CでNo)、復号対象ピクチャを構成するスライス単位の復号処理を継続するため、ステップSD101へ遷移する。
以上、実施例1に係るピクチャ復号部14の動作について説明したが、上記ステップに限定されず、実施可能な範囲で、ステップを変更しても構わない。
(ビットストリーム抽出部17)
復号装置
ビットストリーム抽出部17は、出力制御部16より供給される出力制御情報(出力レイヤセットのうち、復号対象となるレイヤの構成を示す対象復号レイヤIDリストTargetDecLayerIdList、及び、及び対象最高次テンポラル識別子TargetHighestTidに基づいて、ビットストリーム抽出処理を行い、入力される階層符号化データDATAから、対象最高次テンポラル識別子TargetHighestTid、及び対象復号レイヤIDリストTargetDecLayerIdListによって定まる集合(ターゲットセットTargetSetと呼ぶ)に含まれないNALユニットを除去(破棄)し、ターゲットセットTargetSetに含まれるNALユニットから構成される対象レイヤセット符号化データDATA#T(BitstreamToDecode)を抽出し、出力する。
復号装置
ビットストリーム抽出部17は、出力制御部16より供給される出力制御情報(出力レイヤセットのうち、復号対象となるレイヤの構成を示す対象復号レイヤIDリストTargetDecLayerIdList、及び、及び対象最高次テンポラル識別子TargetHighestTidに基づいて、ビットストリーム抽出処理を行い、入力される階層符号化データDATAから、対象最高次テンポラル識別子TargetHighestTid、及び対象復号レイヤIDリストTargetDecLayerIdListによって定まる集合(ターゲットセットTargetSetと呼ぶ)に含まれないNALユニットを除去(破棄)し、ターゲットセットTargetSetに含まれるNALユニットから構成される対象レイヤセット符号化データDATA#T(BitstreamToDecode)を抽出し、出力する。
より具体的には、上記ビットストリーム抽出部17は、図示しないNALユニットヘッダを復号するNALユニット復号手段を備える。
(ビットストリーム抽出処理)
以下、図22を参照して、本実施例に係るビットストリーム抽出部17の概略的な動作について説明する。図22は、ビットストリーム抽出部17におけるアクセスユニット単位のビットストリーム抽出処理を示すフロー図である。
以下、図22を参照して、本実施例に係るビットストリーム抽出部17の概略的な動作について説明する。図22は、ビットストリーム抽出部17におけるアクセスユニット単位のビットストリーム抽出処理を示すフロー図である。
(SG101)ビットストリーム抽出部17は、図5(b)に示すシンタックス表に従って、供給された対象NALユニットのNALユニットヘッダを復号する。すなわち、NALユニットタイプ(nal_unit_type)、レイヤ識別子(nuh_layer_id)、及びテンポラル識別子(nuh_temporal_id_plus1)を復号する。なお、対象NALユニットのレイヤ識別子nuhLayerIdは、“nuh_layer_id”に設定され、対象NALユニットのテンポラル識別子temporalIdは、“nuh_temporal_id_plus1 - 1”に設定される。
(SG102)対象NALユニットのレイヤ識別子、テンポラル識別子がターゲットセットTargetSetに含まれるか否かを、対象復号レイヤIDリストTargetDecLayerIdList、及び対象最高次テンポラル識別子に基づいて判定する。より具体的には、以下の(C1)〜(C2)の条件のうち、少なくとも何れかの条件が偽である場合(SG102でNo)、ステップSG103へ遷移する。それ以外((C1)、(C2)ともに真)の場合(SG102でYes)、ステップSG103を省略する。
(C1)「対象復号レイヤIDリストTargetDecLayerIdListに、対象NALユニットのレイヤ識別子と同一の値がある」場合、真と判定し、それ以外の場合(対象復号レイヤIDリストTargetDecLayerIdListに、対象NALユニットのレイヤ識別子と同一の値がない)、偽と判定する。
(C2)「対象NALユニットのテンポラル識別子が対象最高次テンポラル識別子TargetHighestTid以下である」場合、真と判定し、それ以外の場合(対象NALユニットのテンポラル識別子が対象最高次テンポラル識別子TargetHighestTidより大きい)、偽と判定する。
(SG103)対象NALユニットを破棄する。すなわち、対象NALユニットは、ターゲットセットTargetSetに含まれないため、ビットストリーム抽出部17は、入力された階層符号化データDATAから、対象NALユニットを除去する。
(SG10A)同一アクセスユニット内に、未処理のNALユニットがあるか判定する。未処理のNALユニットがある場合(SG10AでNo)、対象アクセスユニットを構成するNALユニット単位のビットストリーム抽出を継続するため、ステップSG101へ遷移する。それ以外の場合(SG10AでYes)、ステップSG10Bへ遷移する。
(SG10B)入力された階層符号化データDATAに、対象アクセスユニットの次のアクセスユニットがあるか判定する。次のアクセスユニットがある場合(SG10BでYes)、次のアクセスユニットの処理を継続するため、ステップSG101へ遷移する。次のアクセスユニットがない場合(SG10BでNo)、ビットストリーム抽出処理を終了する。
(対象最高次テンポラル識別子TargetHighestTidの設定範囲)
出力制御部16は、対象出力レイヤセットの出力レイヤの復号に必須でない、非出力・非参照レイヤのレイヤ識別子を有するNALユニットを破棄するように、ビットストリーム抽出部17へ指示する。
出力制御部16は、対象出力レイヤセットの出力レイヤの復号に必須でない、非出力・非参照レイヤのレイヤ識別子を有するNALユニットを破棄するように、ビットストリーム抽出部17へ指示する。
階層動画像復号装置1は、出力レイヤ最大サブレイヤ値MaxSubLayersInLayerSetMinus1[]以下の値を有する対象最高次テンポラル識別子TargetHighestTidを定める。すなわち、対象最高次テンポラル識別子TargetHighestTidの設定範囲を0以上、出力レイヤ最大サブレイヤ値MaxSubLayersInLayerSetMinus1[i]以下に限定する。
階層動画像復号装置1の備えるビットストリーム抽出部17は、出力制御部16より供給される対象復号レイヤIDリストTargetDecLayerIdList、及び、上記復号対象とする最高次のサブレイヤを指定する対象最高次テンポラル識別子TargetHighestTidによって定まるターゲットセットTargetSetに含まれないNALユニットを除去(破棄)し、ターゲットセットTargetSetに含まれるNALユニットから構成されるターゲットセット符号化データDATA#T(BitstreamToDecode)を抽出する。
図29は、本実施形態の階層動画像復号装置1の動作を示すフローチャートである。
(SA100)階層動画像復号装置1の備える出力レイヤセット最大サブレイヤ導出手段1214により、各出力レイヤiに対して、出力フラグOutputLayerFlag[i][j]が1であるレイヤjのサブレイヤ値sub_layers_vps_max_minus1[j]の最大値から出力レイヤの出力レイヤ最大サブレイヤ値MaxSubLayersInLayerSetMinus1[i]を導出する。
(SA102)階層動画像復号装置1は、0以上、出力レイヤ最大サブレイヤ値MaxSubLayersInLayerSetMinus1[i]以下の対象最高次テンポラル識別子TargetHighestTidを定める。
(SA103)階層動画像復号装置1の備えるビットストリーム抽出部17は、対象最高次テンポラル識別子TargetHighestTidより大きい、NonVCLサブレイヤを符号化データから除去する。
(SA100)階層動画像復号装置1の備える出力レイヤセット最大サブレイヤ導出手段1214により、各出力レイヤiに対して、出力フラグOutputLayerFlag[i][j]が1であるレイヤjのサブレイヤ値sub_layers_vps_max_minus1[j]の最大値から出力レイヤの出力レイヤ最大サブレイヤ値MaxSubLayersInLayerSetMinus1[i]を導出する。
(SA102)階層動画像復号装置1は、0以上、出力レイヤ最大サブレイヤ値MaxSubLayersInLayerSetMinus1[i]以下の対象最高次テンポラル識別子TargetHighestTidを定める。
(SA103)階層動画像復号装置1の備えるビットストリーム抽出部17は、対象最高次テンポラル識別子TargetHighestTidより大きい、NonVCLサブレイヤを符号化データから除去する。
本実施形態の出力レイヤセット最大サブレイヤ導出手段1214を備える階層動画像復号装置によれば、出力レイヤセットにおいて出力される(出力フラグOutputLayerFlag[i][j])が1である、レイヤjの最大サブレイヤ値sub_layers_vps_max_minus1[j]の最大値を用いて、出力レイヤ最大サブレイヤ値MaxSubLayersInLayerSetMinus1[i]を導出し、出力レイヤ最大サブレイヤ値MaxSubLayersInLayerSetMinus1[i]以下のサブレイヤを最高次テンポラル識別子TargetHighestTidとして、符号化データを復号する。上記構成によれば、最高次テンポラル識別子TargetHighestTidとして、出力レイヤ最大サブレイヤ値MaxSubLayersInLayerSetMinus1[i]より大きい値が指定されることがなく、出力レイヤ最大サブレイヤ値MaxSubLayersInLayerSetMinus1[i]より大きいサブレイヤは常に、ビットストリーム抽出部17により除去される。従って、実際に出力に必要であるサブレイヤのみが復号されることから、復号の処理量を低減する効果を奏する。
なお、本実施形態の階層動画像復号装置1は、出力レイヤセット最大サブレイヤ導出手段1214で導出した出力レイヤ最大サブレイヤ値MaxSubLayersInLayerSetMinus1[i]に応じてDPBを復号し、さらに、出力レイヤ最大サブレイヤ値MaxSubLayersInLayerSetMinus1[i]に応じて最高次テンポラル識別子TargetHighestTidを定めても構わない。
図30は、本実施形態の階層動画像復号装置1の動作を示すフローチャートである。
(SA100)階層動画像復号装置1の備える出力レイヤセット最大サブレイヤ導出手段1214により、各出力レイヤiに対して、出力フラグOutputLayerFlag[i][j]が1であるレイヤjのサブレイヤ値sub_layers_vps_max_minus1[j]の最大値から出力レイヤの出力レイヤ最大サブレイヤ値MaxSubLayersInLayerSetMinus1[i]を導出する。
(SA101)DPB情報復号部1215は、出力レイヤの最大サブレイヤ数MaxSubLayersInLayerSetMinus1[i]以下のサブレイヤについて、DPB情報を復号
(SA102)階層動画像復号装置1は、0以上、出力レイヤ最大サブレイヤ値MaxSubLayersInLayerSetMinus1[i]以下の対象最高次テンポラル識別子TargetHighestTidを定める。
(SA103)階層動画像復号装置1の備えるビットストリーム抽出部17は、対象最高次テンポラル識別子TargetHighestTidより大きい、NonVCLサブレイヤを符号化データから除去する。
(SA100)階層動画像復号装置1の備える出力レイヤセット最大サブレイヤ導出手段1214により、各出力レイヤiに対して、出力フラグOutputLayerFlag[i][j]が1であるレイヤjのサブレイヤ値sub_layers_vps_max_minus1[j]の最大値から出力レイヤの出力レイヤ最大サブレイヤ値MaxSubLayersInLayerSetMinus1[i]を導出する。
(SA101)DPB情報復号部1215は、出力レイヤの最大サブレイヤ数MaxSubLayersInLayerSetMinus1[i]以下のサブレイヤについて、DPB情報を復号
(SA102)階層動画像復号装置1は、0以上、出力レイヤ最大サブレイヤ値MaxSubLayersInLayerSetMinus1[i]以下の対象最高次テンポラル識別子TargetHighestTidを定める。
(SA103)階層動画像復号装置1の備えるビットストリーム抽出部17は、対象最高次テンポラル識別子TargetHighestTidより大きい、NonVCLサブレイヤを符号化データから除去する。
なお、図23を再度用いて、本実施形態の効果を再度、説明する。図23の例では、出力レイヤ最大サブレイヤ値MaxSubLayersInLayerSetMinus1[i] は、出力レイヤの最大サブレイヤ値sub_layers_vps_max_minus1[j]である1と導出され、本実施形態の階層動画像復号装置1では、対象最高次テンポラル識別子TargetHighestTidが0から1に限定される。この場合、TargetHighestTidが0および1より大きいサブレイヤ、つまり、TID=2のサブレイヤは、ビットストリーム抽出部17に除去されるため、出力に関係ないサブレイヤを復号することがないという効果を奏する。
ここで、図23を再度用いて、本実施形態の構成とは異なり、仮に、出力レイヤ最大サブレイヤ値MaxSubLayersInLayerSetMinus1[i]以下に対象最高次テンポラル識別子TargetHighestTidを限定しない場合について、生じる課題を説明する。仮に対象最高次テンポラル識別子TargetHighestTidが0から1に限定されず2が指定可能となる場合を想定してみる。この場合、TargetHighestTid=2が指定される場合、TID=2のサブレイヤがビットストリーム抽出部17で除去されないため、出力に関係ないサブレイヤを復号され処理量が増加する。さらに代替出力フラグalt_output_layer_flagが1の場合には、以下の課題が生じる。代替出力フラグalt_output_layer_flagが1の場合には、出力レイヤであるレイヤ1が出力できない間、代替レイヤとしてレイヤ0が出力される。この場合において、TargetHighestTid=2が指定可能であれば、レイヤ0はTID=2まで復号され、レイヤ1はTID=1まで復号されるため、代替レイヤとしてレイヤ0が出力される間だけ、TID=2となりフレームレートが高い状況が発生する。すなわち、代替出力が行われるか否かで出力フレームレートが異なってしまうという課題が生じる。また、代替出力フラグalt_output_layer_flagが1の場合には、代替出力が行われる可能性を考慮して、レイヤ0のTID=2まで常に復号する必要があるという課題が生じる。
(パラメータセット復号手段121の変形例(パラメータセット復号手段121A))
図35〜図37を参照して、上記non-VCL復号部12が備えるパラメータセット復号手段121の変形例(パラメータセット復号手段121A)について説明する。
図35〜図37を参照して、上記non-VCL復号部12が備えるパラメータセット復号手段121の変形例(パラメータセット復号手段121A)について説明する。
また、non-VCL復号部12は、規定のシンタックス表に基づいてパラメータセット(VPS/SPS/PPS)を復号するパラメータセット復号手段121Aを含んで構成される。図35は、本実施形態の階層復号装置が備えるパラメータセット復号手段121Aの構成を示すブロック図である。パラメータセット復号手段121Aは、レイヤセット情報を復号するレイヤセット復号手段1211、レイヤ間依存情報を復号するレイヤ間依存情報復号手段1220、出力レイヤセット情報を復号する出力レイヤセット情報復号手段1213、出力レイヤセットに対応するPTL情報を復号するPTL情報復号手段1221、各レイヤのスケーラブル識別子(ScalabilityID)及び補助ピクチャレイヤID(AuxID)を復号するスケーラブル識別子復号手段1222、及び補助ピクチャレイヤ(AuxID>0であるレイヤ)に対応する(関連付けられる)プライマリピクチャレイヤ(AuxID=0であるレイヤ)を導出する関連レイヤ導出手段1223、参照レイヤのピクチャ上の画素と対応する対象レイヤのピクチャ上の画素との位置関係を示すレイヤ間位置情報を復号するレイヤ間位置情報復号手段1224や、ピクチャの画像サイズ等を示すピクチャ情報を復号するピクチャ情報復号手段1225等を備える。なお、パラメータセット復号手段121とパラメータセット復号手段121Aにおいて、共通の構成要素については、同一の符号を付し、説明を省略する。
(スケーラブル識別子復号手段1222)
スケーラブル識別子復号手段1222は、入力される対象レイヤ符号化データから、レイヤ単位に割り当てられるスケーラブル識別子(ScalabilityId)を復号する。スケーラブル識別子ScalabilityIdは、レイヤ間でレイヤの性質を区別するためのIDであり、1つのレイヤに対して複数の次元のスケーラブルIDを有することができる。以下のレイヤi、次元目のスケーラブルIDは符号化データのdimension_id[i][j]から導出される。次元は、0から15までをとる。
スケーラブル識別子復号手段1222は、入力される対象レイヤ符号化データから、レイヤ単位に割り当てられるスケーラブル識別子(ScalabilityId)を復号する。スケーラブル識別子ScalabilityIdは、レイヤ間でレイヤの性質を区別するためのIDであり、1つのレイヤに対して複数の次元のスケーラブルIDを有することができる。以下のレイヤi、次元目のスケーラブルIDは符号化データのdimension_id[i][j]から導出される。次元は、0から15までをとる。
図13(c)は、VPS拡張の符号化データの構成を示すシンタックステーブルの一例である。スケーラブル識別子復号手段1222は、符号化データから分離フラグsplitting_flag、スケーラブルマスクフラグscalability_mask_flag、次元ID長dimension_id_len_minus1、dimension_id、次元IDdimension_idを復号する。splitting_flagは、dimension_idの符号化位置(符号化方法)を示す。splitting_flagが1の場合には、dimension_idは、VPS拡張において明示的に符号化させず、NALユニットヘッダから導出される。splitting_flagが0の場合には、dimension_idはVPS拡張で符号化される。scalability_mask_flag[j]は、インデックスjで示される次元IDが用いられるか否かを示す。スケーラブル識別子復号手段1222は、scalability_mask_flag[j]が1である次元の数NumScalabilityTypesを導出する。scalability_mask_flag[j]が0の場合には対応するインデックスjのdimension_id[i][j]は復号されないdimension_id_len_minus1は、インデックスjのdimension_id[i][j]のビット長―1を示す。スケーラブル識別子復号手段1222は、splitting_flagが0の場合には、レイヤのインデックスi、次元のインデックスjの次元IDdimension_id[i][j]を復号する。
図13(b)は、スケーラブル識別子ScalabilityIdの導出方法を示す擬似コードである。スケーラブル識別子復号手段は、レイヤインデックス0から最大レイヤ数―1MaxLayersMinus1までのインデックスiについて、次元IDdimension_id[i][j]からスケーラブル識別子ScalabilityId[i][smIdx]を導出する。具体的には、図13(b)のSPEP1において、次元を示す変数smIdxのスケーラブルマスクscalability_mask_flag[smIdx]が真(1)の場合に、j番目のdimension_id[i][j]を、ScalabilityId[i][smIdx]に設定する。jは、ScalabilityId[i][smIdx]に設定する度に1だけインクリメントされる。
なお、符号化データにスケーラブル識別子ScalabilityId[i][smIdx]に対応するdimension_idが含まれない場合には、ScalabilityId[i][smIdx]を0とすれば良い。すなわち、スケーラブル識別子復号手段1222は、インデックスsmIdxのスケーラブルマスクscalability_mask_flag[smIdx]が0の場合には、ScalabilityId[ i ][ smIdx ]=0とする。
さらに、スケーラブル識別子復号手段1222は、図13(b)のSPEP2において、各レイヤインデックスiについて、図13(b)のSPTEP1において導出されたスケーラブル識別子scalabilityId[ i ][ 0 ]、ScalabilityId[ i ][ 1 ]、ScalabilityId[ i ][ 2 ]、ScalabilityId[ i ][ 3 ]を各々、デプスIDDepthId[ lId ]、ビューオーダーIDViewOrderIdx[ lId ]、依存IDDependencyId[ lId ]、補助ピクチャIDAuxId[ lId ]へ設定して導出する。
なお、次元IDとスケーラブルIDの種類の関係は、上述の図13(b)に限定されず、別の対応関係でも良い。例えば、ScalabilityId[ i ][ 0 ]、ScalabilityId[ i ][ 1 ]、ScalabilityId[ i ][ 1 ]を各々、ViewOrderIdx[ lId ]、DependencyId[ lId ]、AuxId[ lId ]、DepthId[ lId ]にマッピングしても良い。この場合には、ScalabilityI[i][3]ではなく、ScalabilityI[i][2]からAuxIdが導出される。
デプスIDDepthId[lld]は、テクスチャかデプスを示し、0がテクスチャ、1がデプスに対応する。
ビューオーダーIDViewOrderIdx[lld]は、視点の順序を示す。視点の順序は、カメラの位置に対応している必要はない。また、ビューオーダーIDとは別にビューIDを定めることもできる。
依存IDDependencyId[0]は、SNRスケーラビリティや空間スケーラビリティの階層を示すIDであり、例えばベースレイヤ、ベースレイヤを参照するエンハンスレイヤ1、エンハンスメントレイヤ1を参照するエンハンスメント2から、レイヤが構成される場合には、各々0、1、2の値をとる。
補助ピクチャレイヤIDAuxId[lld ]は、プライマリピクチャと補助ピクチャレイヤの識別、及び、補助ピクチャの種類の識別に用いられる。0がプライマリピクチャ、0以外が補助ピクチャに対応する。また、1、2は各々、アルファピクチャ、デプスピクチャであることを示す。なお、補助ピクチャIDとしてさらに2以上の値を用いることもできる。
(関連レイヤ導出手段1223)
関連レイヤ導出手段1223は、スケーラブル識別子に基づいて、補助ピクチャを有するレイヤiに対応する(関連付けられる)0以上のプライマリピクチャを有するレイヤjを特定する。ここで、プライマリピクチャは、AuxId[](ここではScalabilityI[i][3])が0である(AuxId[]==0)レイヤのピクチャである。プライマリピクチャを有するピクチャをプライマリピクチャレイヤとも称する。逆に、補助ピクチャは、AuxId[](ここではScalabilityI[i][3])が1以上であるレイヤのピクチャである。補助ピクチャを有するレイヤを、補助ピクチャレイヤとも称する。なお、補助ピクチャレイヤと対応する(関連付けられる)プライマリピクチャを関連プライマリピクチャと称する。すなわち、関連レイヤ導出手段1223は、スケーラブル識別子に基づいて、ある補助ピクチャレイヤiに対して、0以上の関連プライマイリピクチャレイヤを特定する(導出する)といえる。または、関連レイヤ導出手段12223は、スケーラブル識別子に基づいて、あるレイヤ識別子を有する補助ピクチャに対して、0以上の互いに異なるレイヤ識別子を有する関連プライマリピクチャを特定するともいえる。
関連レイヤ導出手段1223は、スケーラブル識別子に基づいて、補助ピクチャを有するレイヤiに対応する(関連付けられる)0以上のプライマリピクチャを有するレイヤjを特定する。ここで、プライマリピクチャは、AuxId[](ここではScalabilityI[i][3])が0である(AuxId[]==0)レイヤのピクチャである。プライマリピクチャを有するピクチャをプライマリピクチャレイヤとも称する。逆に、補助ピクチャは、AuxId[](ここではScalabilityI[i][3])が1以上であるレイヤのピクチャである。補助ピクチャを有するレイヤを、補助ピクチャレイヤとも称する。なお、補助ピクチャレイヤと対応する(関連付けられる)プライマリピクチャを関連プライマリピクチャと称する。すなわち、関連レイヤ導出手段1223は、スケーラブル識別子に基づいて、ある補助ピクチャレイヤiに対して、0以上の関連プライマイリピクチャレイヤを特定する(導出する)といえる。または、関連レイヤ導出手段12223は、スケーラブル識別子に基づいて、あるレイヤ識別子を有する補助ピクチャに対して、0以上の互いに異なるレイヤ識別子を有する関連プライマリピクチャを特定するともいえる。
より具体的には、関連レイヤ導出手段1223は、レイヤ識別子nuhLayerIdAを有する補助ピクチャに対して、レイヤ識別子nuhLayerIdBを有するプライマリピクチャの中で、補助ピクチャIDAuxIdを示すj=3を除く、0から2及び4から15までの全てのjについて、補助ピクチャのスケーラブル識別子ScalabilityId [ LayerIdxInVps[ nuhLayerIdA ] ][ j ]と等しいスケーラブル識別子ScalabilityId[ LayerIdxInVps[ nuhLayerIdB ] ][ j ]を有するプライマリピクチャを、関連プライマリピクチャとする。なお、上記表現は、関連レイヤ導出手段1223は、レイヤ識別子nuhLayerIdAを有する補助ピクチャレイヤに対して、レイヤ識別子nuhLayerIdBを有するプライマリピクチャレイヤの中で、補助ピクチャIDAuxIdを示すj=3を除く、0から2及び4から15までの全てのjについて、補助ピクチャレイヤのスケーラブル識別子ScalabilityId [ LayerIdxInVps[ nuhLayerIdA ] ][ j ]と等しいスケーラブル識別子ScalabilityId[ LayerIdxInVps[ nuhLayerIdB ] ][ j ]を有するプライマリピクチャレイヤを、関連プライマリピクチャレイヤとも表現することができる。ここで、配列LayerIdxInVps[]は、レイヤ識別子nuh_layer_idを添え字として、対応するレイヤのレイヤインデックスが格納されている配列である。例えば、レイヤ識別子nuh_layer_id=nuhLayerIdAと対応するレイヤのレイヤインデックスは、LayerIdxInVps[nuhLayerIdA]である(以降も同様)。
なお、関連レイヤ導出手段手段1223は、プライマリピクチャに対応する補助ピクチャを、関連補助ピクチャとして導出してもよい。すなわち、レイヤ識別子nuhLayerIdAを有するプライマリピクチャに対して、レイヤ識別子nuhLayerIdBを有する補助ピクチャの中で、補助ピクチャIDAuxIdを示すj=3を除く、0から2及び4から15までの全てのjについて、プライマリピクチャのスケーラブル識別子ScalabilityId [ LayerIdxInVps[ nuhLayerIdA ] ][ j ]と等しいスケーラブル識別子ScalabilityId[ LayerIdxInVps[ nuhLayerIdB ] ][ j ]を有する補助ピクチャを、関連補助ピクチャとする。
以下では、あるレイヤ識別子nuhLayerIdAの補助ピクチャレイヤに対する関連プライマリピクチャレイヤのレイヤIDリスト(関連レイヤIDリストと呼ぶ)をAssociatedLayerIdList[nuhLayerIdA][]、及び関連レイヤ数NumAssociatedLayers[nuhLayerIdA]、及び関連レイヤフラグAssociatedLayerFlag[nuhLayerIdA][]とすれば、関連レイヤ導出手段1223は、以下の疑似コードを実行することによって、関連レイヤIDリストAssociatedLayerIdList[nuhLayerIdA][]、及び関連レイヤ数NumAssociatedLayers、関連レイヤフラグAssociatedLayerFlag[nuhLayerIdA][]を導出することができる。ここで、関連レイヤIDリストAssociatedLayerIdList[X][Y]の1番目の配列の添え字Xは、レイヤ識別子であり、2番目の配列の添え字Yは、レイヤ識別子nuhLayerIdAのレイヤに対するY番目の関連レイヤを表わし、AssociatedLayerIdList[X][Y]には、Y番目の関連レイヤのレイヤ識別子が格納される。
また、関連レイヤ数NumAssociatedLayers[nuhLayerIdA]は、レイヤ識別子nuhLayerIdAに対する関連レイヤの総数である。また、関連レイヤフラグAssociatedLayerFlag[X][Y]は、レイヤXに対して、レイヤYが関連レイヤであるかを示すフラグが格納される。レイヤXに対して、レイヤYが関連レイヤであれば、真(1)、関連レイヤでなければ、偽(0)が格納される。
(疑似コード)
for(i=0; i< VpsMaxLayers; j++){ //SB01
iNuhLId = layer_id_in_nuh[i]; //SB02
if( AuxID[iNuhLId]>0 ){ //SB03
for(j=0; j< VpsMaxLayers; j++){ //SB04
iTagetLId = layer_id_in_nuh[j]; //SB05
if( 関連付け条件Xを満たす){ // SB06
AssociatedLayerIdList[ iNuhLId ][ NumAssociatedLayers ] = iTargetLId;
NumAssociatedLayers ++;
AssociatedLayerFlag[ iNuhLId ][ iTargetLId ] = true; // SB07
}
} // SB0A
}
} // SB0B
上記疑似コードをステップで表わせば、次の通りである。なお、各ステップ番号SB01.. SB0Aは、疑似コード中のステップ番号SB01.. SB0Bと対応する。なお、以下の疑似コード実行前に、予め、関連レイヤIDリストAssociatedLayerIdList[][]の各要素は、関連レイヤが無いこと示す例外値(例えば、−1など)に初期化済であり、関連レイヤ数NumAssociatedLayers[]の各要素は0に初期化済であり、関連レイヤフラグAssociatedLayerFlag[][]の各要素は、偽(0)へ初期化済であるものとする。
for(i=0; i< VpsMaxLayers; j++){ //SB01
iNuhLId = layer_id_in_nuh[i]; //SB02
if( AuxID[iNuhLId]>0 ){ //SB03
for(j=0; j< VpsMaxLayers; j++){ //SB04
iTagetLId = layer_id_in_nuh[j]; //SB05
if( 関連付け条件Xを満たす){ // SB06
AssociatedLayerIdList[ iNuhLId ][ NumAssociatedLayers ] = iTargetLId;
NumAssociatedLayers ++;
AssociatedLayerFlag[ iNuhLId ][ iTargetLId ] = true; // SB07
}
} // SB0A
}
} // SB0B
上記疑似コードをステップで表わせば、次の通りである。なお、各ステップ番号SB01.. SB0Aは、疑似コード中のステップ番号SB01.. SB0Bと対応する。なお、以下の疑似コード実行前に、予め、関連レイヤIDリストAssociatedLayerIdList[][]の各要素は、関連レイヤが無いこと示す例外値(例えば、−1など)に初期化済であり、関連レイヤ数NumAssociatedLayers[]の各要素は0に初期化済であり、関連レイヤフラグAssociatedLayerFlag[][]の各要素は、偽(0)へ初期化済であるものとする。
(SB01)ループの開始点である。変数iは0に初期化される。以下の繰り返し処理のループ変数は変数iであり、0から(VpsMaxLayers-1)の変数jに対して、SB02〜SB0Bに示す処理が実行される。
(SB02)レイヤiのレイヤ識別子layer_id_in_nuh[j]を変数iNuhLIdへ設定する。
(SB03)レイヤiが補助ピクチャであるかをAuxId[iNuhLId]>0を満たすかに基づいて判定する。AuxId[iNuhLId]>0の場合(補助ピクチャである)、ステップSB04へ遷移する。AuxId[iNuhLId]=0場合(プライマリピクチャである)、ステップSB04〜SB0Aの処理をスキップする。
(SB04)ループの開始点である。変数jは0初期化される。以下の繰り返し処理のループ変数は、変数jであり、0〜(VpsMaxLayers-1)の変数jに対して、SB05〜SB0Aに示す処理が実行される。
(SB05)変数iTagetLIdへ、レイヤkのレイヤ識別子nuh_layer_id[k]を設定する。
(SB06)レイヤ識別子iTagetLIdのレイヤに関して、関連付け条件Xを満たすか判定する。関連付け条件Xを満たす場合、ステップSB07に遷移する。関連付け条件Xを満たさない場合、ステップSB07の処理をスキップする。関連付け条件Xを満たすとは、具体的には、下記条件(C1)〜(C3)の全ての条件が真の場合である。逆に関連付け条件Xを満たさないとは、下記条件(C1)〜(C3)の何れかが偽の場合である。
条件(C1)レイヤiとレイヤjは互いに異なるレイヤである(i!=j)。
条件(C2)レイヤjはプライマリピクチャである(AuxID[iTargetLId]==0)。
条件(C3)AuxIdを示すXを除く、0からX-1、Xから15までの変数kについて、レイヤi(補助ピクチャレイヤ)のスケーラブル識別子scalabilityId[i][k]とレイヤj(プライマリピクチャレイヤ)のスケーラブル識別子scalabilityId[j][k]が等しい。ここで、Xは、例えば3である。
(SB07)関連付け条件Xを満たす場合、レイヤj(プライマイリピクチャレイヤ)をレイヤi(補助ピクチャレイヤ)に対する関連プライマリピクチャとする。すなわち、
・レイヤjレイヤ識別子iTargetLId(=nuh_layer_id[j])を、関連レイヤIDリストAsscoiatedLayerIdList[iNuhLID][]のNumAssociatedLayers[iNuhLId]番目の要素として追加する(AssociatedLayerIdList[iNuhLId][NumAsscoiatedLayers[iNuhLId]] = iTargetLId)。
・関連レイヤ数NumAssociatedLayers[iNuhLId]へ“1”を加算する(NumAssociatedLayers[iNuhLId]++)。
・レイヤiに対するレイヤjの関連レイヤフラグへtrue(真)を設定する(AssociatedLayerFlag[i][j]=true)。
・レイヤjレイヤ識別子iTargetLId(=nuh_layer_id[j])を、関連レイヤIDリストAsscoiatedLayerIdList[iNuhLID][]のNumAssociatedLayers[iNuhLId]番目の要素として追加する(AssociatedLayerIdList[iNuhLId][NumAsscoiatedLayers[iNuhLId]] = iTargetLId)。
・関連レイヤ数NumAssociatedLayers[iNuhLId]へ“1”を加算する(NumAssociatedLayers[iNuhLId]++)。
・レイヤiに対するレイヤjの関連レイヤフラグへtrue(真)を設定する(AssociatedLayerFlag[i][j]=true)。
(SB0A)ステップSB04のループ終端である。
(SB0B)ステップSB01のループ終端である。
なお、上記導出手順は、上記ステップに限定されず、実施可能な範囲で変更してもよい。例えば、関連レイヤIDリスト、及び関連レイヤ数の導出を省略し、関連レイヤフラグのみ導出してもよい。また、関連レイヤフラグの導出を省略し、関連レイヤIDリスト、及び関連レイヤ数を導出してもよい。また、関連レイヤIDリストAssociatedLayerIdList[][]の1次元目の配列の添え字や、配列の要素に格納する値は、レイヤ識別子の代わりに、レイヤインデックスであってもよい。また、関連レイヤフラグAssociatedLayerFlag[][]の1次元目、2次元目の配列の添え字は、レイヤインデックスの代わりに、レイヤ識別子としてもよい。
以上の構成によれば、関連レイヤ導出手段1223は、レイヤ識別子nuhLayerIdAである補助ピクチャ(レイヤ)に対する、関連プライマリピクチャ(レイヤ)のレイヤ識別子(及びレイヤインデックス)を、関連レイヤIDリストAsscoiatedLayerIdList[nuhLayerIdA][]に格納されたレイヤ識別子(レイヤインデックス)を参照することで、特定することが可能となる。
また、関連レイヤ導出手段1223は、ある補助ピクチャ(レイヤi)に対するプライマリピクチャ(レイヤj)の関連レイヤフラグAssociatedLayerFlag[i][j]が真であるかを判定することで、関連プライマリピクチャであることを特定することができる。
以上、補助ピクチャ情報復号手段1223(パラメータセット復号手段)は、複数の関連プライマリピクチャ(レイヤ)で1つの補助ピクチャ(レイヤ)を共有することができるため、プライマリピクチャ(レイヤ)毎に異なった補助ピクチャ(レイヤ)を復号/符号化する場合に比べ、符号量を低減する効果を奏する。
また、上記疑似コードでは、補助ピクチャ(レイヤ)に対する関連プライマリピクチャ(レイヤ)を特定するが、逆に、プライマリピクチャ(レイヤ)に対する関連補助ピクチャ(レイヤ)を特定するように処理を変更してもよい。例えば、ステップSB03、SB06、SB07をそれぞれ、SB03a、SB06a、SB07aへ置き換えて、実行すれば、プライマリピクチャ(レイヤ)に対する関連補助ピクチャ(レイヤ)を示す関連レイヤIDリスト、関連レイヤ数、及び関連レイヤフラグを導出することができる。
(SB03a)レイヤiがプライマリピクチャであるかをAuxId[iNuhLId]=0を満たすかに基づいて判定する。AuxId[iNuhLId]=0の場合(プライマリピクチャである)、ステップSB04へ遷移する。AuxId[iNuhLId]>0場合(補助ピクチャである)、ステップSB04〜SB0Aの処理をスキップする。
(SB06a)ステップSB06において、条件C2、C3を下記C2b、C3bへ置き換えて、実行する。
条件(C2b)レイヤjは補助ピクチャである(AuxID[iTargetLId]>0)。
条件(C3b)AuxIdを示すXを除く、0からX-1、Xから15までの変数kについて、レイヤi(補助ピクチャレイヤ)のスケーラブル識別子scalabilityId[i][k]とレイヤj(補助ピクチャレイヤ)のスケーラブル識別子scalabilityId[j][k]が等しい。ここで、Xは、例えば、3である。
(SB07a)関連付け条件Xを満たす場合、レイヤj(補助ピクチャレイヤ)をレイヤi(プライマリピクチャレイヤ)に対する関連補助ピクチャレイヤとする。各配列に対する値の設定処理は、ステップSB07と同じ。
以上、関連レイヤ導出手段1223は、あるプライマリピクチャに対して、0以上の関連補助ピクチャを特定することが可能である。
また、関連レイヤ導出手段1223は、ある補助ピクチャ(レイヤ)に対する関連補助ピクチャ(レイヤ)を導出してもよい。上記疑似コードにおいて、例えば、ステップSB03、SB06、SB07をそれぞれ、SB03b、SB06b、SB07bへ置き換えて、実行すれば、補助ピクチャ(レイヤ)に対する関連補助ピクチャ(レイヤ)を示す関連レイヤIDリスト、関連レイヤ数、及び関連レイヤフラグを導出することができる。
(SB03b)レイヤiが補助ピクチャであるかをAuxId[iNuhLId]>0を満たすかに基づいて判定する。AuxId[iNuhLId]>0の場合(補助ピクチャである)、ステップSB04へ遷移する。AuxId[iNuhLId]=0場合(プライマリピクチャである)、ステップSB04〜SB0Aの処理をスキップする。
(SB06b)ステップSB06において、条件C2、C3を下記C2b、C3bへ置き換えて、実行する。
条件(C2b)レイヤjは補助ピクチャである(AuxID[iTargetLId]>0)。
条件(C3b)AuxIdを示すXを除く、0からX-1、Xから15までの変数kについて、レイヤi(補助ピクチャレイヤ)のスケーラブル識別子scalabilityId[i][k]とレイヤj(補助ピクチャレイヤ)のスケーラブル識別子scalabilityId[j][k]が等しい。ここで、Xは、例えば、3である。
さらに条件C1、C2b、C3bに加えて、条件C4を加えてもい。
条件(C4)レイヤiのAuxIdとレイヤjのAuxIdは互いに異なる。
(SB07b)関連付け条件Xを満たす場合、レイヤj(補助ピクチャレイヤ)をレイヤi(補助ピクチャレイヤ)に対する関連補助ピクチャレイヤとする。各配列に対する値の設定処理は、ステップSB07と同じ。
以上、関連レイヤ導出手段1223は、ある補助ピクチャに対して、0以上の関連補助ピクチャを特定することが可能である。
(ピクチャ情報復号手段1225)
ピクチャ情報復号手段1225は、入力される対象レイヤ符号化データからピクチャ情報を復号する。ピクチャ情報は、概略的には、対象レイヤの復号ピクチャのサイズを定める情報である。例えば、ピクチャ情報は、対象レイヤの復号ピクチャの幅や高さを表わす情報を含んでいる。
ピクチャ情報復号手段1225は、入力される対象レイヤ符号化データからピクチャ情報を復号する。ピクチャ情報は、概略的には、対象レイヤの復号ピクチャのサイズを定める情報である。例えば、ピクチャ情報は、対象レイヤの復号ピクチャの幅や高さを表わす情報を含んでいる。
ピクチャ情報は、例えば、SPSに含まれている。SPSから復号されるピクチャ情報には、復号ピクチャの幅(pic_width_in_luma_samples)と復号ピクチャの高さ(pic_height_in_luma_samples)が含まれている。シンタックスpic_width_in_luma_samplesの値は、輝度画素単位での復号ピクチャの幅に対応する。また、シンタックスpic_height_in_luma_samplesの値は、輝度画素単位での復号ピクチャの高さに対応する。また、ピクチャ情報をVPSに含まれる、複数のピクチャ情報のセットである、レプリメンテーションフォーマットrep_formatに基づいて復号しても良い。rep_formatは、ピクチャ幅pic_width_vps_in_luma_samples、ピクチャ高さpic_height_vps_in_luma_samplesなどを含む。
(レイヤ間位置情報復号手段1224)
レイヤ間位置情報復号手段1224は、入力される対象レイヤ符号化データからレイヤ間位置対応情報を復号する。レイヤ間位置対応情報は、概略的には、対象レイヤと参照レイヤの対応する領域の位置関係を示す。例えば、対象レイヤのピクチャと参照レイヤのピクチャにある物体(物体A)が含まれる場合、対象レイヤのピクチャ上の物体Aに対応する領域と、参照レイヤのピクチャ上の物体Aに対応する領域が、前記対象レイヤと参照レイヤの対応する領域に相当する。なお、レイヤ間位置対応情報は、必ずしも上記の対象レイヤと参照レイヤの対応する領域の位置関係を正確に示す情報でなくてもよいが、一般的には、レイヤ間予測の正確性を高めるために正確な対象レイヤと参照レイヤの対応する領域の位置関係を示している。
レイヤ間位置情報復号手段1224は、入力される対象レイヤ符号化データからレイヤ間位置対応情報を復号する。レイヤ間位置対応情報は、概略的には、対象レイヤと参照レイヤの対応する領域の位置関係を示す。例えば、対象レイヤのピクチャと参照レイヤのピクチャにある物体(物体A)が含まれる場合、対象レイヤのピクチャ上の物体Aに対応する領域と、参照レイヤのピクチャ上の物体Aに対応する領域が、前記対象レイヤと参照レイヤの対応する領域に相当する。なお、レイヤ間位置対応情報は、必ずしも上記の対象レイヤと参照レイヤの対応する領域の位置関係を正確に示す情報でなくてもよいが、一般的には、レイヤ間予測の正確性を高めるために正確な対象レイヤと参照レイヤの対応する領域の位置関係を示している。
レイヤ間位置対応情報は、レイヤ間画素対応情報を含む。レイヤ間画素対応情報は、参照レイヤのピクチャ上の画素と、対応する対象レイヤのピクチャ上の画素との位置関係を示す情報である。また、レイヤ間対応情報は、レイヤ間位相対応情報を追加で含んでいてもよい。レイヤ間位相対応情報は、前記レイヤ間画素対応情報で対応が示された画素の位相差を表わす情報である。
(レイヤ間画素対応情報)
レイヤ間画素対応情報は、例えば、SPSの一部であるSPS拡張(sps_extension)に含まれており、図36(a)に示すシンタックス表に従って、パラメータセット復号復号手段121a(レイヤ間位置対応情報復号手段1224)により復号される。
レイヤ間画素対応情報は、例えば、SPSの一部であるSPS拡張(sps_extension)に含まれており、図36(a)に示すシンタックス表に従って、パラメータセット復号復号手段121a(レイヤ間位置対応情報復号手段1224)により復号される。
SPSから復号されるレイヤ間画素対応情報には、SPS拡張に含まれるレイヤ間画素対応情報の個数(num_scaled_ref_layer_offsets)が含まれる。加えて、レイヤ間画素対応情報には、前記レイヤ間画素対応情報の個数分とスケール参照レイヤ識別子(scaled_ref_layer_id[ i ])とレイヤ間画素対応オフセットが含まれる。レイヤ間位置対応情報復号手段1224は、0からnum_scaled_ref_layer_offsets-1までの各変数iに対して、スケール参照レイヤ識別子、及びレイヤ間画素対応オフセットとして、スケール参照レイヤ左オフセット(scaled_ref_layer_left_offset[scaled_ref_layer_id[ i ]])、スケール参照レイヤ上オフセット(scaled_ref_layer_top_offset[scaled_ref_layer_id[ i ]])、スケール参照レイヤ右オフセット(scaled_ref_layer_right_offset[scaled_ref_layer_id[ i ]])、および、スケール参照レイヤ下オフセット(scaled_ref_layer_bottom_offset[scaled_ref_layer_id[ i ]])を復号する。
レイヤ間位置対応情報復号手段1224は、符号化データ中の変数iが示す参照レイヤピクチャ(j=scaled_ref_layer_id[ i ]をレイヤIDとする参照レイヤピクチャ)に対する、シンタックス要素scaled_ref_layer_left_offset[j]、scaled_ref_layer_top_offset[j]、scaled_ref_layer_right_offset[j]、scaled_ref_layer_bottom_offset[j] を復号し、以下のようにスケール参照レイヤオフセット(SRL左オフセットSRLLOffset、SRL上オフセットSRLTOffset、SRL右オフセットSRLROffset、SRL下オフセットSRLBOffset)を導出する。
SRLLOffset = scaled_ref_layer_left_offset[j]<<1
SRLTOffset = scaled_ref_layer_top_offset[j]<<1
SRLROffset = scaled_ref_layer_right_offset[j]<<1
SRLBOffset = scaled_ref_layer_bottom_offset[j]<<1
以後、スケール参照レイヤオフセットは、参照レイヤのインデックスjを省略して、単にSRLLOffset、SRLTOffset、SRLROffset、SRLBOffsetとも表現する。
SRLTOffset = scaled_ref_layer_top_offset[j]<<1
SRLROffset = scaled_ref_layer_right_offset[j]<<1
SRLBOffset = scaled_ref_layer_bottom_offset[j]<<1
以後、スケール参照レイヤオフセットは、参照レイヤのインデックスjを省略して、単にSRLLOffset、SRLTOffset、SRLROffset、SRLBOffsetとも表現する。
なお、<<は、左ビットシフトを示す演算子である。X<<Yと記す場合、XをYビットだけ左シフトする。同様に>>は、右ビットシフトを示す演算子である。X>>Yと記す場合、XをYビットだけ右シフトする。
また、レイヤ間画素対応情報は、VPSの一部であるVPS拡張(vps_extension)に含まれていても良い、図36(b)に示すシンタックス表に従って、レイヤ間位置対応情報復号手段1224により復号される。
レイヤ間位置対応情報復号手段1224は、0から符号化データに含まれるレイヤの最大値−0MaxLayersMinus1の変数iの各々に対応するレイヤIDがlayer_id_in_nuh[i]であるレイヤに対するレイヤ間位置対応情報を復号する。
レイヤ間位置対応情報復号手段1224は、上記各iのレイヤの各々について、レイヤ間画素対応情報の個数(num_scaled_ref_layer_offsets[i])を復号し、さらに各iについて、0からnum_scaled_ref_layer_offsets[i]-1までの変数jに対して、スケール参照レイヤ識別子(scaled_ref_layer_id[ i ][ j ])と、レイヤ間画素対応オフセットとして、スケール参照レイヤ左オフセット(vps_scaled_ref_layer_left_offset[i][j])、スケール参照レイヤ上オフセット(vps_scaled_ref_layer_top_offset[i][j])、スケール参照レイヤ右オフセット(vps_scaled_ref_layer_right_offset[i][j])、および、スケール参照レイヤ下オフセット(vps_scaled_ref_layer_bottom_offset[i][j])を復号する。
レイヤ間位置対応情報復号手段1224は、符号化データ中の変数iが示す参照レイヤピクチャ(k=scaled_ref_layer_id[ i ][ j ]をレイヤIDとする参照レイヤピクチャ)に対する、シンタックス要素vps_scaled_ref_layer_left_offset[j]、vps_scaled_ref_layer_top_offset[j]、vps_scaled_ref_layer_right_offset[j]、vps_scaled_ref_layer_bottom_offset[j]から、以下のようにスケール参照レイヤオフセットを導出する。
SRLLOffset[k] = vps_scaled_ref_layer_left_offset[k]<<1
SRLTOffset[k] = vps_scaled_ref_layer_top_offset[k]<<1
SRLROffset[k] = vps_scaled_ref_layer_right_offset[k]<<1
SRLBOffset[k] = vps_scaled_ref_layer_bottom_offset[k]<<1
SRLTOffset[k] = vps_scaled_ref_layer_top_offset[k]<<1
SRLROffset[k] = vps_scaled_ref_layer_right_offset[k]<<1
SRLBOffset[k] = vps_scaled_ref_layer_bottom_offset[k]<<1
レイヤ間画素対応オフセットに含まれる各オフセットの意味を、図37を参照して説明する。図37は、対象レイヤのピクチャ、参照レイヤのピクチャ、および、レイヤ間画素対応オフセットの関係を例示する図である。
図37(a)は、参照レイヤのピクチャ全体が対象レイヤのピクチャの一部に対応する場合の例を示す。この場合、参照レイヤピクチャ全体に対応する対象レイヤ上の領域(対象レイヤ対応領域)は、対象レイヤピクチャの内部に含まれている。図37(b)は、参照レイヤのピクチャの一部が対象レイヤのピクチャ全体に対応する場合の例を示す。この場合、参照レイヤ対応領域の内部に対象レイヤピクチャが含まれている。なお、対象レイヤピクチャ全体にオフセットが含まれている。
図37に示したように、スケール参照レイヤ左オフセットSRLLOffset(図ではSRL左オフセット)は、参照レイヤ対応領域左辺の対象レイヤピクチャ左辺に対するオフセットを表わす。なお、SRL左オフセットが0より大きい場合、参照レイヤ対応領域左辺が対象レイヤピクチャ左辺の右側に位置することを表わす。
スケール参照レイヤ上オフセットSRLTOffset(図ではSRL上オフセット)は、参照レイヤ対応領域上辺の対象レイヤピクチャ上辺に対するオフセットを表わす。なお、SRL上オフセットが0より大きい場合、参照レイヤ対応領域上辺が対象レイヤピクチャ上辺の下側に位置することを表わす。
スケール参照レイヤ右オフセットSRLROffset(図ではSRL右オフセット)は、参照レイヤ対応領域右辺の対象レイヤピクチャ右辺に対するオフセットを表わす。なお、SRL右オフセットが0より大きい場合、参照レイヤ対応領域右辺が対象レイヤピクチャ右辺の左側に位置することを表わす。
スケール参照レイヤ下オフセットSRLBOffset(図ではSRL下オフセット)は、参照レイヤ対応領域下辺の対象レイヤピクチャ下辺に対するオフセットを表わす。なお、SRL下オフセットが0より大きい場合、参照レイヤ対応領域下辺が対象レイヤピクチャ下辺の上側に位置することを表わす。
(レイヤ間画素対応情報に関するコンフォーマンス条件)
レイヤ間画素対応情報復号手段1224がVPSより復号されるスケール参照レイヤ識別子(図36(b)のSYN02)について、以下に示すコンフォーマンス条件C1を満たすことが望ましい。なお、スケール参照レイヤ識別子は、ある対象レイヤに対応する参照レイヤ又は補助ピクチャレイヤのレイヤ識別子である。
レイヤ間画素対応情報復号手段1224がVPSより復号されるスケール参照レイヤ識別子(図36(b)のSYN02)について、以下に示すコンフォーマンス条件C1を満たすことが望ましい。なお、スケール参照レイヤ識別子は、ある対象レイヤに対応する参照レイヤ又は補助ピクチャレイヤのレイヤ識別子である。
C1:対象レイヤiのj番目のスケーラブル参照レイヤ識別子(scaled_ref_layer_id[i][j])の値は、対象レイヤiのレイヤ識別子nuh_layer_id[i]の値よりも小さい(scaled_ref_layer_id[i][j]<nuh_layer_id[i])。
以上の構成によれば、レイヤ間位置情報復号手段1224は、より少ない符号量で、対象レイヤに関するレイヤ間画素位置対応情報を復号することが可能となる効果を奏する。また、対象レイヤに関するレイヤ間画素位置情報の符号量を低減する効果を奏する。
また、レイヤ間画素対応情報復号手段1224は、スケール参照レイヤ識別子(図36(a)のSYN01、図36(b)のSYN01)について、以下に示すコンフォーマンス条件C2を満たす符号化データを、VPS、SPS、およびスライスヘッダから復号しても良い。
C2:スケーラブル参照レイヤ識別子を有するレイヤは、対象レイヤの直接参照レイヤである。
SPSから復号されるスケール参照レイヤ識別子(scaled_ref_layer_id[i])について限定すれば、C2aとも表現することができる。
C2a:スケーラブル参照レイヤ識別子(scaled_ref_layer_id[i])を有するレイヤは、アクティブSPSを参照する対象レイヤの直接参照レイヤである。
また、VPSから復号されるスケール参照レイヤ識別子(vps_scaled_ref_layer_id[i][j])について限定すれば、C2bとも表現することができる。
C2b:対象レイヤiのj番目のスケーラブル参照レイヤ識別子(vps_scaled_ref_layer_id[i][j])を有するレイヤは、対象レイヤiの直接参照レイヤである。
また、VPSから復号されるスケール参照レイヤ識別子(scaled_ref_layer_id[i][j])について限定すれば、C2bとも表現することができる。
また、スライスヘッダから復号されるスケール参照レイヤ識別子(scaled_ref_layer_id[i][j])について限定すれば、C2cとも表現することができる。
C2c:スケーラブル参照レイヤ識別子(scaled_ref_layer_id[i])を有するレイヤは、対象スライスが属する対象レイヤの直接参照レイヤである。 また、直接参照レイヤの表現を直接依存フラグdirect_depedendency_flag[][]を用いて表現すれば、C2、C2a、C2b、C2cは、それぞれ、C2’、C2a’、C2b’、C2c’とも表現することができる。
C2’:対象レイヤに対するスケーラブル参照レイヤ識別子と等しいレイヤ識別子を有するレイヤの直接依存フラグdirect_dependency_flag[LayerIdxInVps[nuhLayerIdA]]][LayerIdxInVps[nuhLayerIdB]]は1(真)である。ここで、nuhLayerIdAは、対象レイヤのレイヤ識別子であり、nuhLayerIdBは、スケーラブル参照レイヤ識別子である。
C2a’: アクティブSPSを参照する対象レイヤに対するスケーラブル参照レイヤ識別子に等しいレイヤ識別子を有するレイヤの直接依存フラグdirect_dependency_flag[LayerIdxInVps[nuhLayerIdA]][LayerIdxInVps[scaled_ref_layer_id[i]]]は1(真)である。ここで、nuhLayerIdAは、アクティブSPSを参照する対象レイヤのレイヤ識別子である。
C2b’:対象レイヤiに対するスケーラブル参照レイヤ識別子に等しいレイヤ識別子を有するレイヤの直接依存フラグdirect_dependency_flag[i][LayerIdxInVps[scaled_ref_layer_id[i][j]]]は、1(真)である。
従来技術では、対象レイヤに対して、対象レイヤの非直接参照レイヤである(直接参照レイヤでない)レイヤのレイヤ間画素位置情報が符号化データに含まれるうるという課題があった。一方、コンフォーマンス条件CX2(C2、C2a、C2b、C2’、C2a’、C2b’の少なくとも何れか1つ)を満たすことは、換言すれば、対象レイヤと非直接参照レイヤに関するレイヤ間画素対応情報が符号化データに含まれることを禁止する。
C2c’: 対象スライスの属する対象レイヤに対するスケーラブル参照レイヤ識別子に等しいレイヤ識別子を有するレイヤの直接依存フラグdirect_dependency_flag[LayerIdxInVps[nuh_layer_id]][LayerIdxInVps[scaled_ref_layer_id[i]]]は1(真)である。ここで、nuh_layer_idは、対象レイヤのレイヤ識別子である。 以上の構成によれば、レイヤ間位置情報復号手段1224は、対象レイヤに対する非直接参照レイヤのレイヤ間画素位置情報の復号を省略することができる。従って、より少ない符号量で、対象レイヤに関するレイヤ間画素位置対応情報を復号することが可能となる効果を奏する。また、対象レイヤに関するレイヤ間画素位置情報の符号量を低減する効果を奏する。
なお、CX2では、対象レイヤの非直接参照レイヤに関するレイヤ間画素位置情報が符号化データに含まれることを禁止したが、この制約を緩めて、対象レイヤの非依存レイヤに関するレイヤ間画素位置情報が符号化データに含まれることを禁止してもよい。この場合、C2、C2a、C2b、C2cにおいて、”直接依存レイヤ”を”依存レイヤ”と置き換えればよい。また、C2’、C2a’、C2b’、C2c’において、直接依存フラグdirect_dependency_flagの代わりに、依存フラグrecursiveRefLayerFlag[][]を用いればよい。
また、上記コンフォーマンス条件CX2(C2、C2a、C2b、C2’、C2a’、C2b’の少なくとも何れか1つ)と、以下の条件DX1(D1、D1a、D1bのうち、少なくとも何れか1つ)とのORにより定まる条件CX3(=(CX2||DX1))をコンフォーマンス条件としてもよい。
D1:対象レイヤがプライマリピクチャ(レイヤ)である場合、スケール参照レイヤ識別子に等しいレイヤ識別子を有するレイヤは、前記対象レイヤに対応する補助ピクチャ(レイヤ)である。
SPSから復号されるスケール参照レイヤ識別子(scaled_ref_layer_id[i])について限定すれば、D1aとも表現することができる。
D1a:アクティブSPSを参照する対象レイヤがプライマリピクチャ(レイヤ)である場合(AuxID[]==0)、スケーラブル参照レイヤ識別子(scaled_ref_layer_id[i])に等しいレイヤ識別子を有するレイヤは、前記対象レイヤに対応する補助ピクチャ(レイヤ)(AuxID[]>0)である。
また、VPSから復号されるスケール参照レイヤ識別子(scaled_ref_layer_id[i][j])について限定すれば、D1bとも表現することができる。
D1b:対象レイヤiがプライマリピクチャ(レイヤ)である場合(AuxID[]==0)、対象レイヤiのj番目のスケーラブル参照レイヤ識別子(scaled_ref_layer_id[i][j])に等しいレイヤ識別子を有するレイヤは、前記対象レイヤiの補助ピクチャ(レイヤ)(AuxID[]>0)である。
コンフォーマンス条件CX3(=CX2||DX1)は、換言すれば、対象レイヤiAに対するあるレイヤiBのレイヤ間画素位置情報を定義する場合には、スケーラブル参照レイヤ識別子を有するレイヤiBは、対象レイヤiAに対する直接参照レイヤ、又は対象レイヤiAに対応する補助ピクチャ(レイヤ)であること(補助ピクチャレイヤであるレイヤiBに対して、対象レイヤiAは、関連プライマリピクチャレイヤであること)を意味する。従って、コンフォーマンス条件CX3を満たすことによって、対象レイヤiAに関するレイヤ間画素位置情報として、対象レイヤiAの非直接参照レイヤ(又は非依存レイヤ)、及び対象レイヤiAと対応しない補助ピクチャレイヤのレイヤ間画素位置情報が、符号化データに含まれることを禁止する。
以上の構成によれば、レイヤ間位置情報復号手段1224は、対象レイヤに対する非直接参照レイヤのレイヤ間画素位置情報、及び対象レイヤに対応しない補助ピクチャレイヤのレイヤ間画素位置情報の復号を省略することができる。従って、より少ない符号量で、対象レイヤに関するレイヤ間画素位置対応情報を復号することが可能となる効果を奏する。また、対象レイヤに関するレイヤ間画素位置情報の符号量を低減する効果を奏する。
(出力レイヤセットに関するビットストリームコンフォーマンス)
出力レイヤセットが満たすべき各種ビットストリームコンフォーマンスについて説明する。
出力レイヤセットが満たすべき各種ビットストリームコンフォーマンスについて説明する。
従来技術では、出力レイヤセットのプロファイルがステレオプロファイルである場合、プライマリピクチャレイヤ(AuxID[]==0)である出力レイヤの数が0又は1である出力レイヤセットが定義される場合が発生しうるという課題があった。すなわち、ステレオプロファイルである出力レイヤセットの出力レイヤ数が2でなければ、無意味な出力レイヤセットが定義されうるため、それらの無意味な出力レイヤセットに関する符号量が増大するという課題があった。ここで、ステレオプロファイルとは、例えば、非特許文献2のG11.1.2において定義される”Stereo Main Profile”のことである。
従って、本実施例において、画像復号装置1/画像符号化装置2は、出力レイヤセットのプロファイルがステレオプロファイルである場合には、コンフォーマンス条件CA1を満たす符号化データを復号/生成する。
CA1:出力レイヤセットOLS#olsIdx(olsIdx=1..NumOutputLayerSets-1)において、該出力レイヤセットのプロファイルがステレオプロファイルである場合、該出力レイヤセットのプライマイリピクチャレイヤである(補助ピクチャレイヤでない)出力レイヤの数は2である(出力レイヤフラグが1である該出力レイヤセットのプライマリピクチャレイヤの数は2である)。
条件CA1は、補助ピクチャIDAuxID及び出力レイヤフラグOutputLayerFlagを用いて、条件CA2のように言い換えることができる。
CA2:出力レイヤセットOLS#olsIdx(olsIdx=1..NumOutputLayerSets-1)において、該出力レイヤセットのプロファイルがステレオプロファイルである場合、プライマリピクチャレイヤ(補助ピクチャレイヤでないレイヤ)に関する出力レイヤフラグの総和は2である。
条件CA2において、出力レイヤセットOLS#olsIdxのプライマリピクチャレイヤ(AuxID[]==0)の出力レイヤフラグの総和SumOfOutputLayerFlagは、例えば、以下の疑似コードによって導出される。
SumOfOutputLayerFlag = 0;
for( j=0; j<NumLayersInIdList[LayerSetIdx[i]]; j++){
if( AuxId [ nuh_layer_id[ LayerIdList[ LayersetIdx[ i ][ j ] ] ] ]==0 )
SumOfOutputLayerFlag += OutputLayerFlag[i][j];
}
なお、コンフォーマンス条件CA1及びCA2において、出力レイヤセットOLS#olsIdxのプロファイルがステレオプロファイルであるかどうかは、出力レイヤセットOLS#olsIdxのPTL指定識別子profile_level_tier_idx[olsIdx]によって特定されるPTL情報のプロファイル識別子general_profile_idcが、ステレオプロファイルを示す値(例えば、”Stereo Main Profile”)であることを判定すればよい。また、ステレオプロファイルに互換があるプロファイル(互換プロファイル)”profileX”の場合には、プロファイル識別子general_profile_idcの代わりに、プロファイル互換フラグgeneral_profile_compatibility_flag[ “Stereo Main Profile” ]の値が1である(ステレオプロファイルと互換がある)ことを判定すればよい。
for( j=0; j<NumLayersInIdList[LayerSetIdx[i]]; j++){
if( AuxId [ nuh_layer_id[ LayerIdList[ LayersetIdx[ i ][ j ] ] ] ]==0 )
SumOfOutputLayerFlag += OutputLayerFlag[i][j];
}
なお、コンフォーマンス条件CA1及びCA2において、出力レイヤセットOLS#olsIdxのプロファイルがステレオプロファイルであるかどうかは、出力レイヤセットOLS#olsIdxのPTL指定識別子profile_level_tier_idx[olsIdx]によって特定されるPTL情報のプロファイル識別子general_profile_idcが、ステレオプロファイルを示す値(例えば、”Stereo Main Profile”)であることを判定すればよい。また、ステレオプロファイルに互換があるプロファイル(互換プロファイル)”profileX”の場合には、プロファイル識別子general_profile_idcの代わりに、プロファイル互換フラグgeneral_profile_compatibility_flag[ “Stereo Main Profile” ]の値が1である(ステレオプロファイルと互換がある)ことを判定すればよい。
上記コンフォーマンス条件CA1〜CA2は、換言すれば、出力レイヤセットがステレオプロファイル(”Stereo Main Profile”)である場合(あるいは互換プロファイル)、プライマリピクチャレイヤ(補助ピクチャレイヤでない)の出力レイヤ数が2でない出力レイヤセットの定義を禁止する。符号化データは、出力レイヤセットに関して上記コンフォーマンス条件CA1(またはCA2)を満たすことによって、画像復号装置1において、上記符号化データから復号される出力レイヤセットがステレオプロファイル(”Stereo Main Profile”)である場合、2つのプライマリピクチャレイヤ(補助ピクチャレイヤでない)の復号ピクチャが出力ピクチャとして出力されることが保障される。従って、従来技術において課題であった、出力レイヤセットのプロファイルがステレオプロファイルである場合、プライマリピクチャレイヤ(AuxID[]==0)である出力レイヤの数が0又は1である出力レイヤセットが定義される可能性を排除することができる効果を奏する。また、ステレオプロファイルである出力レイヤセットのプライマリピクチャレイヤの出力レイヤ数が2でない無意味な出力レイヤセットに係る符号量を削減する効果を奏する。
(階層動画像符号化装置の構成)
図25を用いて、階層動画像符号化装置2の概略構成を説明する。同図は、階層動画像符号化装置2の概略的構成を示した機能ブロック図である。階層動画像符号化装置2は、符号化対象とするターゲットセットに含まれる各レイヤ/サブレイヤの入力画像PIN#T(ピクチャ)を符号化して、ターゲットセットの階層符号化データDATAを生成する。すなわち、動画像符号化装置2は、ターゲットセットTargetSetのレイヤIDリストの要素TargetLayerIdList [0]…TargetLayerIdList [N-1](Nはターゲットセット(対象レイヤセット)に含まれるレイヤ数)の順で、各レイヤのピクチャを符号化し、その符号化データを生成する。
図25を用いて、階層動画像符号化装置2の概略構成を説明する。同図は、階層動画像符号化装置2の概略的構成を示した機能ブロック図である。階層動画像符号化装置2は、符号化対象とするターゲットセットに含まれる各レイヤ/サブレイヤの入力画像PIN#T(ピクチャ)を符号化して、ターゲットセットの階層符号化データDATAを生成する。すなわち、動画像符号化装置2は、ターゲットセットTargetSetのレイヤIDリストの要素TargetLayerIdList [0]…TargetLayerIdList [N-1](Nはターゲットセット(対象レイヤセット)に含まれるレイヤ数)の順で、各レイヤのピクチャを符号化し、その符号化データを生成する。
図25に示すように階層動画像符号化装置2は、ターゲットセットピクチャ符号化部20、及びNAL多重化部21を含んで備える。さらに、ターゲットセットピクチャ符号化部20は、non-VCL符号化部22、ピクチャ符号化部24、復号ピクチャ管理部15、および符号化パラメータ決定部26を含んで構成される。
復号ピクチャ管理部15は、既に説明した階層動画像復号装置1の備える復号ピクチャ管理部15と同一の構成要素である。ただし、階層動画像符号化装置2の備える復号ピクチャ管理部15では、内部のDPBに記録されたピクチャを出力ピクチャとして出力する必要はないため、当該出力は省略可能である。なお、階層動画像復号装置1の復号ピクチャ管理部15の説明において「復号」として説明した記載は「符号化」と置き換えることで、階層動画像符号化装置2の備える復号ピクチャ管理部15にも適用できる。
NAL多重化部21は、入力されるターゲットセットの各レイヤのVCL、及びnon-VCLを、NALユニットに格納することでNAL多重化した階層動画像符号化データDATA#Tを生成し、外部へ出力する。言い換えれば、NAL多重化部21は、ターゲットセットピクチャ符号化部20から供給されるnon-VCLの符号化データ、VCLの符号化データ、及び各non-VCL、VCLに対応するNALユニットタイプ、レイヤ識別子、テンポラル識別子を、NALユニットに格納して(符号化して)、NAL多重化した階層符号化データDATA#Tを生成する。
符号化パラメータ決定部26は、符号化パラメータの複数のセットのうち、1つのセットを選択する。符号化パラメータとは、各パラメータセット(VPS、SPS、PPS)に関連した各種パラメータや、ピクチャを符号化するための予測パラメータや、該予測パラメータに関連して生成される符号化の対象となるパラメータである。符号化パラメータ決定部26は、上記符号化パラメータの複数のセットの各々について情報量の大きさと符号化誤差を示すコスト値を算出する。コスト値は、例えば、符号量と二乗誤差に係数λを乗じた値との和である。符号量は、量子化誤差と符号化パラメータを可変長符号化して得られるターゲットセットの各レイヤ/サブレイヤの符号化データの情報量である。二乗誤差は、入力画像PIN#Tと予測画像との差分値の二乗値についての画素間の総和である。係数λは、予め設定されたゼロよりも大きい実数である。符号化パラメータ決定部26は、算出したコスト値が最小となる符号化パラメータのセットを選択し、選択した各符号化パラメータのセットをパラメータセット符号化部22、及びピクチャ符号化部24へ供給する。
Non-VCL符号化部22は、階層動画像復号装置1におけるNon-VCL復号部12の逆処理に対応し、符号化パラメータ決定部26から入力される各non-VCLの符号化パラメータと入力画像に基づいて、入力画像の符号化に用いるパラメータセット(VPS、SPS、およびSPS)やその他にnon-VCLを設定し、各パラメータセットやその他のnon-VCLをnon-VCL NALユニットに格納されるデータとして、NAL多重化部21へ供給する。なお、Non-VCL符号化部22で符号化されるnon-VCLには、階層動画像復号装置1の備えるnon-VCL復号部12の説明で記載したレイヤセット情報、出力レイヤセット情報、PTL情報、及びDPB情報を含んでいる。すなわち、non-VCL符号化部22は、図示しない、パラメータセット符号化手段を備える。さらに、パラメータセット符号化手段は、図示しない、レイヤセット情報を符号化(生成)するレイヤセット情報符号化手段、出力レイヤセット情報を符号化(生成)する出力レイヤセット情報符号化手段、PTL情報を符号化するPTL情報符号化手段、DPB情報を符号化するDPB情報符号化手段、サブビットストリーム特性情報を符号化するサブビットストリーム特性情報符号化手段をさらに含んで構成される。
各符号化部、符号化手段の機能及び動作は、対応する復号部、復号手段の逆処理に相当し、復号部、復号手段において、“復号”を“符号化”と読み替えて解釈するものとする。なお、Non-VCL符号化部22は、NAL多重化部21へnon-VCLの符号化データを供給するときに、non-VCLに対応するNALユニットタイプ、レイヤ識別子、及びテンポラル識別子も付与して出力する。
また、Non-VCL符号化部22で生成されるパラメータセットには、該パラメータセットを識別する識別子、及び各レイヤのピクチャを復号するために参照する該パラメータセットが参照するパラメータセット(アクティブパラメータセット)を指定するアクティブパラメータセット識別子が含まれる。具体的には、ビデオパラメータセットVPSであれば、該VPSを識別するVPS識別子が含まれる。シーケンスパラメータセットSPSであれば、該SPSを識別するSPS識別子(sps_seq_parameter_set_id)、及び該SPSや他のシンタックスが参照するVPSを特定するアクティブVPS識別子(sps_video_parameter_set_id)が含まれる。ピクチャパラメータセットPPSであれば、該PPSを識別するPPS識別子(pps_pic_parameter_set_id)、及び該PPSや他のシンタックスが参照するSPSを特定するアクティブSPS識別子(pps_seq_parameter_set_id)が含まれる。
また、non-VCL符号化部22は、図示されない、規定のシンタックス表に基づいてパラメータセット(VPS/SPS/PPS)を符号化するパラメータセット符号化手段221を含んで構成される。パラメータセット符号化手段221は、レイヤセット情報を符号化するレイヤセット情報符号化手段2211、レイヤ間依存情報を符号化するレイヤ間依存情報符号化手段2220、各レイヤの最大サブレイヤ値を符号化する最大サブレイヤ符号化手段2212、出力レイヤセット情報を符号化する出力レイヤセット情報符号化手段2213、出力レイヤセットに対応するPTL情報を符号化するPTL情報符号化手段2221、各出力レイヤの最大サブレイヤ値を導出する出力レイヤセット最大サブレイヤ導出手段1214、出力レイヤセットに対応DPB情報を符号化するDPB情報符号化手段2215、等を備える。 レイヤセット情報符号化手段2211は、レイヤセットiに含まれるレイヤjが含まれるか否かを示すフラグlayer_id_included_flag[i][j]を符号化する。
最大サブレイヤ復号手段2212は、符号化データからレイヤ単位で最大サブレイヤ値sub_layers_vps_max_minus1[]を符号化する。具体的には、0から最大レイヤ数MaxLayersMinus1までの値iが示すレイヤiについて、最大サブレイヤ値sub_layers_vps_max_minus1[ i ]を符号化する。
出力レイヤセット情報符号化手段2213は、出力レイヤセットiに対応するレイヤセット識別子―1output_layer_set_idx_minus1を符号化し、さらに、出力フラグOutputLayerFlag[i][j]を示す出力情報output_layer_flag[i][j]を符号化する。
出力レイヤセット最大サブレイヤ導出手段1214は既に説明した通りである。
DPB情報符号化手段2215は、出力レイヤの最大サブレイヤ数MaxSubLayersInLayerSetMinus1[i]以下のサブレイヤについて、DPB情報を符号化する。
本実施形態の階層動画像符号化装置2の動作を示すフローチャートは以下の通りである。
(SB100)階層動画像符号化装置2の備える出力レイヤセット最大サブレイヤ導出手段1214により、各出力レイヤiに対して、出力フラグOutputLayerFlag[i][j]が1であるレイヤjのサブレイヤ値sub_layers_vps_max_minus1[j]の最大値から出力レイヤの出力レイヤ最大サブレイヤ値MaxSubLayersInLayerSetMinus1[i]を導出する。
(SB101)DPB情報符号化部1215は、出力レイヤの最大サブレイヤ数MaxSubLayersInLayerSetMinus1[i]以下のサブレイヤについて、DPB情報を符号化する。
以上の構成により、本実施形態のレイヤセット情報符号化手段2211、最大サブレイヤ符号化手段2212、出力レイヤセット情報符号化手段2213、出力レイヤセット最大サブレイヤ導出手段1214、DPB情報符号化手段2215を備える画像符号化装置によれば、出力レイヤセットにおいて出力される(出力フラグOutputLayerFlag[i][j])が1である、レイヤjの最大サブレイヤ値sub_layers_vps_max_minus1[j]の最大値を用いて、出力レイヤ最大サブレイヤ値MaxSubLayersInLayerSetMinus1[i]を導出し、出力レイヤ最大サブレイヤ値MaxSubLayersInLayerSetMinus1[i]以下のサブレイヤについてのみDPB情報を符号化する。これにより、実際に出力に必要であるサブレイヤのみに符号化されるDPB情報が限定されることから、DPB情報の符号量を低減する効果を奏する。また、実際には使用されないサブレイヤのDPB情報を誤って符号化するような問題を防ぐ効果を奏する。
ピクチャ符号化部24は、入力される各レイヤの入力画像PIN#T、符号化パラメータ決定部26より供給されるNon-VCL(特に、パラメータセット)、および復号ピクチャ管理部15に記録されている参照ピクチャに基づいて、ピクチャを構成するスライスに対応する各レイヤの入力画像の一部を符号化して、当該部分の符号化データを生成し、VCL NALユニットに格納されるデータとして、NAL多重化部21へ供給する。ピクチャ符号化部24の詳細な説明は後述する。なお、ピクチャ符号化部24は、NAL多重化部21へVCLの符号化データを供給するときに、VCLに対応するNALユニットタイプ、レイヤ識別子、及びテンポラル識別子も付与して出力する。
なお、本実施形態の階層動画像符号化装置は、上述のコンフォーマンス条件(CC、CCはCC1からCC3のいずれか)を満たす符号化データを符号化する。
以上の構成のコンフォーマンス条件(CC)を満たす符号化データを符号化する画像符号化装置によれば、符号化データ内のスケーラブルIDの一意性が保障されているため、スケーラブルIDに基づいてレイヤを識別可能であるという効果を奏する。
以上の構成のコンフォーマンス条件を満たす符号化データを符号化する画像符号化装置によれば、同じスケーラブルIDを備えるプライマリピクチャが複数存在する場合に、1つの補助ピクチャに対するプライマリピクチャがいずれであるのかが特定できないという課題を解決することができるという効果を奏する。
なお、本実施形態の別の構成の階層動画像符号化装置は、上述のコンフォーマンス条件(CD、CDはCD1からCD3のいずれか)を満たす符号化データを符号化しても良い。以上の構成のコンフォーマンス条件(CD)を満たす符号化データを符号化する画像符号化装置によれば、レイヤセット内のスケーラブルIDの一意性が保障されているため、スケーラブルIDに基づいてレイヤを識別可能であるという効果を奏する。
(パラメータセット符号化手段221の変形例(パラメータセット符号化手段221A)
また、non-VCL符号化部22は、復号装置側において説明したパラメータセット復号手段121の変形例であるパラメータセット復号手段121Aに対応するパラメータセット符号化手段121Aを備えていてもよい。パラメータセット符号化手段121Aは、図38に示すように、レイヤセット情報符号化手段2211(レイヤセット情報復号手段1211の逆処理)、出力レイヤセット情報符号化2213(出力レイヤセット情報復号手段1213の逆処理)、レイヤ間依存情報符号化手段2220(レイヤ間依存情報復号手段1220の逆処理)、PTL情報符号化手段2221(PTL情報復号手段1221の逆処理)、スケーラブル識別子符号化手段2222(スケーラブル識別子復号手段1222の逆処理)、レイヤ間位置対応情報符号化手段(レイヤ間位置情報復号手段1224の逆処理)、ピクチャ情報符号化手段2225(ピクチャ情報復号手段1225の逆処理)、及び関連レイヤ導出手段1223を含んで構成される。なお、パラメータセット符号化手段221と共通の構成要素については、同一の符号を付し、説明を省略する。また、関連レイヤ導出手段1223は、パラメータセット復号手段121Aの備える関連レイヤ導出手段1223と同一機能を有するため、説明を省略する。
また、non-VCL符号化部22は、復号装置側において説明したパラメータセット復号手段121の変形例であるパラメータセット復号手段121Aに対応するパラメータセット符号化手段121Aを備えていてもよい。パラメータセット符号化手段121Aは、図38に示すように、レイヤセット情報符号化手段2211(レイヤセット情報復号手段1211の逆処理)、出力レイヤセット情報符号化2213(出力レイヤセット情報復号手段1213の逆処理)、レイヤ間依存情報符号化手段2220(レイヤ間依存情報復号手段1220の逆処理)、PTL情報符号化手段2221(PTL情報復号手段1221の逆処理)、スケーラブル識別子符号化手段2222(スケーラブル識別子復号手段1222の逆処理)、レイヤ間位置対応情報符号化手段(レイヤ間位置情報復号手段1224の逆処理)、ピクチャ情報符号化手段2225(ピクチャ情報復号手段1225の逆処理)、及び関連レイヤ導出手段1223を含んで構成される。なお、パラメータセット符号化手段221と共通の構成要素については、同一の符号を付し、説明を省略する。また、関連レイヤ導出手段1223は、パラメータセット復号手段121Aの備える関連レイヤ導出手段1223と同一機能を有するため、説明を省略する。
スケーラブル識別子符号化手段2222は、スケーラブル識別子復号手段1222の逆処理であり、符号化対象となる各レイヤ単位に割り当てられるスケーラブル識別子(ScalabilityId)を符号化する。
ピクチャ情報符号化手段2225は、ピクチャ情報復号手段1225の逆処理であり、符号化対象となる各レイヤのピクチャ情報を符号化する。
レイヤ間位置情報符号化手段2224は、レイヤ間位置情報復号手段2224の逆処理であり、符号化対象となるレイヤと、その参照レイヤ、あるいは補助ピクチャレイヤの対応する領域の位置関係意を示すレイヤ間位置対応情報を符号化する。
なお、階層動画像復号装置1(及びその変形例を含む)において、上記符号化データから復号される出力レイヤセットのプロファイルがステレオプロファイル(Stereo Main Profile)である場合、2つのプライマリピクチャレイヤである出力レイヤの復号ピクチャを出力ピクチャとして出力されることを保障するため、階層動画像符号化装置2は、少なくとも前述のコンフォーマンス条件CA1(又はCA2)を満たすように、ターゲットセットの階層符号化データDATAを生成する。従って、従来技術において課題であった、出力レイヤセットのプロファイルがステレオプロファイルである場合、プライマリピクチャレイヤ(AuxID[]==0)である出力レイヤの数が0又は1である出力レイヤセットが定義される可能性を排除することができる効果を奏する。また、ステレオプロファイルである出力レイヤセットのプライマリピクチャレイヤの出力レイヤ数が2でない無意味な出力レイヤセットに係る符号量を削減する効果を奏する。
また、上記符号化データから復号される対象レイヤに関するレイヤ間画素対応情報に、対象レイヤのレイヤ識別子の値以上の上位レイヤが含まれないことを保障するために、前述のコンフォーマンス条件CX1(C1、C1a、C1bの少なくともいずれか一つ)を満たすように、ターゲットセットの階層符号化データDATAを生成することが好ましい。従って、対象レイヤと上位レイヤ間のレイヤ間画素対応情報の重複定義を防止することができる。すなわち、より少ない符号量で、対象レイヤに関するレイヤ間画素位置対応情報を符号化することが可能となる効果を奏する。また、対象レイヤに関するレイヤ間画素位置情報の符号量を低減する効果を奏する。
あるいは、上記符号化データから復号される対象レイヤに関するレイヤ間画素対応情報に、対象レイヤの非直接参照レイヤ(非依存レイヤ)、又は、対象レイヤがプライマリピクチャレイヤである場合、対象レイヤに対応しない補助ピクチャレイヤがが含まれないことを保障するために、コンフォーマンス条件CX2(C2、C2a、及びC2b、C2’、C2a’、C2b’の少なくとも何れか一つ)又は、コンフォーマンス条件CX3(=CX2||DX1)を満たすように、ターゲットセットの階層符号化データDATAを生成することが好ましい。従って、対象レイヤiAに関するレイヤ間画素位置情報として、対象レイヤiAの非直接参照レイヤ(又は非依存レイヤ)、及び対象レイヤiAと対応しない補助ピクチャレイヤのレイヤ間画素位置情報が、符号化データに含まれることを禁止することができる。すなわち、対象レイヤに対する非直接参照レイヤのレイヤ間画素位置情報、及び対象レイヤに対応しない補助ピクチャレイヤのレイヤ間画素位置情報の符号化を省略することができる。従って、より少ない符号量で、対象レイヤに関するレイヤ間画素位置対応情報を符号化することが可能となる効果を奏する。また、対象レイヤに関するレイヤ間画素位置情報の符号量を低減する効果を奏する。 (ピクチャ符号化部24)
図26を参照して、ピクチャ符号化部24の構成の詳細を説明する。図26は、ピクチャ符号化部24の概略的構成を示した機能ブロック図である。
図26を参照して、ピクチャ符号化部24の構成の詳細を説明する。図26は、ピクチャ符号化部24の概略的構成を示した機能ブロック図である。
図26に示すように、ピクチャ符号化部24は、スライスヘッダ符号化部241、及びCTU符号化部242を含んで構成される。
スライスヘッダ符号化部241は、入力されるアクティブパラメータセットに基づいてスライス単位で入力される各レイヤの入力画像の符号化に用いるスライスヘッダを生成する。生成されたスライスヘッダは、スライス符号化データの一部として出力されるとともに、入力画像と共にCTU符号化部242へ供給される。なお、スライスヘッダ符号化部241で生成されるスライスヘッダには、各レイヤのピクチャを復号するために参照するピクチャパラメータセットPPS(アクティブPPS)を指定するアクティブPPS識別子が含まれる。
CTU符号化部242は、入力されるアクティブパラメータセット、スライスヘッダに基づいて、入力画像(対象スライス部分)をCTU単位で符号化して、対象スライスに係るスライスデータおよび復号画像(復号ピクチャ)を生成して出力する。より具体的には、CTU符号化部242は、パラメータセットが含むCTBサイズの大きさのCTBを単位として対象スライスの入力画像を分割し、各CTBに対応する画像を一つのCTUとして符号化する。CTUの符号化は、予測残差符号化部2421、予測画像符号化部2422、CTU復号画像生成部2423により実行される。
予測残差符号化部2421は、入力される入力画像と予測画像の差分画像を、変換・量子化して得られる量子化残差情報(TT情報)を、スライス符号化データに含まれるスライスデータの一部として出力する。また、量子化残差情報に逆変換・逆量子化を適用して予測残差を復元し、復元した予測残差をCTU復号画像生成部2423に出力する。
予測画像符号化部2422は、符号化パラメータ決定部26で決定された、対象スライスに含まれる対象CTUの予測方式および予測パラメータに基づいて、予測画像を生成して予測残差符号化部2421とCTU復号画像生成部2423に出力する。なお、予測方式や予測パラメータの情報は予測情報(PT情報)として可変長符号化されて、スライス符号化データに含まれるスライスデータの一部として出力される。なお、インター予測、または、レイヤ間画像予測を使用する場合は、復号ピクチャ管理部15より対応する参照ピクチャを読み出す。
CTU復号画像生成部2423は、階層動画像復号装置1の備えるCTU復号画像制生成部1423と同一の構成要素であるため、説明を省略する。なお、対象CTUの復号画像は、復号ピクチャ管理部15へ供給され、内部のDPBに記録される。
<ピクチャ符号化部24の符号化プロセス>
以下、図27を参照して、ピクチャ符号化部24における対象レイヤiのピクチャの符号化の概略的な動作について説明する。図27は、ピクチャ符号化部24における対象レイヤiのピクチャを構成するスライス単位の符号化プロセスを示すフロー図である。
以下、図27を参照して、ピクチャ符号化部24における対象レイヤiのピクチャの符号化の概略的な動作について説明する。図27は、ピクチャ符号化部24における対象レイヤiのピクチャを構成するスライス単位の符号化プロセスを示すフロー図である。
(SE101)符号化対象スライスの先頭スライスフラグ(first_slice_segment_in_pic_flag) (図17(d)のSYNSH01)を符号化する。すなわち、スライス単位に分割された入力画像(以降、符号化対象スライス)が、ピクチャ内の符号化順(復号順)(以降、処理順)で先頭スライスであれば、先頭スライスフラグ(first_slice_segment_in_pic_flag)が1である。符号化対象スライスが先頭スライスでなければ、先頭スライスフラグは0である。なお、先頭スライスフラグが1の場合、符号化対象スライスの先頭CTUアドレスを0に設定する。さらに、ピクチャ内の処理済みCTU数のカウンタnumCtbを0に設定する。先頭スライスフラグが0の場合、後述のSE106で符号化されるスライスアドレスに基づいて、符号化対象スライスの先頭CTUアドレスを設定する。
(SE102)符号化対象スライスの符号化時に参照するアクティブPPSを指定するアクティブPPS識別子(slice_pic_paramter_set_id)(図17(d)のSYNSH02)を符号化する。
(SE104)符号化パラメータ決定部26で決定されたアクティブパラメータセットをフェッチする。すなわち、符号化対象スライスが参照するアクティブPPS識別子(slice_pic_parameter_set_id)と同一のPPS識別子(pps_pic_parameter_set_id)を有するPPSをアクティブPPSとし、符号化パラメータ決定部26から、アクティブPPSの符号化パラメータをフェッチする(読み出す)。さらに、アクティブPPS内のアクティブSPS識別子(pps_seq_parameter_set_id)と同一のSPS識別子(sps_seq_parameter_set_id)を有するSPSをアクティブSPSとし、符号化パラメータ決定部26から、アクティブSPSの符号化パラメータをフェッチする。さらに、アクティブSPS内のアクティブVPS識別子(sps_video_parameter_set_id)と同一のVPS識別子(vps_video_parameter_set_id)を有するVPSをアクティブVPSとし、符号化パラメータ決定部26から、アクティブVPSの符号化パラメータをフェッチする。
なお、ピクチャ符号化部24は、アクティブVPSに含まれるレイヤセット情報、出力レイヤセット情報、及びPTL情報、該アクティブパラメータセット(VPS, SPS, PPS)のレイヤ識別子、対象レイヤのレイヤ識別子等を参照し、ターゲットセットがコンフォーマンス条件満たすか検証してもよい。コンフォーマンス条件は、階層動画像復号装置1において説明済みであるため省略する。なお、コンフォーマンス条件を満たせば、生成されるターゲットセットの階層符号化データDATAが、階層画像符号化装置2に対応する階層動画像復号装置1において、復号可能であることが保障される。
(SE105)符号化対象スライスが、ピクチャ内の処理順で先頭スライスであるか否かを先頭スライスフラグに基づいて判定する。先頭スライスフラグが0の場合(SE105でYes)、ステップSE106へ遷移する。それ以外の場合(SE105でNo)、ステップSE106の処理をスキップする。なお、先頭スライスフラグが1の場合、符号化対象スライスのスライスアドレスは0である。
(SE106)符号化対象スライスのスライスアドレス(slice_segment_address)(図17(d)のSYNSH03)を符号化する。なお、符号化対象スライスのスライスアドレス(符号化対象スライスの先頭CUTアドレス)は、例えば、ピクチャ内の処理済CTU数のカウンタnumCtbに基づいて設定可能である。この場合、スライスアドレスslice_segment_adress=numCtbである。すなわち、符号化対象スライスの先頭CTUアドレス=numCtbでもある。なお、スライスアドレスの決定方法はこれに限定されず、実施可能な範囲で変更可能である。
(SE10A)CTU符号化部242は、入力されるアクティブパラメータセット、スライスヘッダに基づいて、入力画像(符号化対象スライス)をCTU単位で符号化して、符号化対象スライスのスライスデータの一部として、CTU情報の符号化データ(図17(d)のSYNSD01)を出力する。また、CTU符号化部242は、各CTUに対応する領域のCTU復号画像を生成し出力する。さらに、各CTU情報の符号化データの後に、該CTUが符号化対象スライスの終端であるかを示すスライス終端フラグ(end_of_slice_segment_flag) (図17(d)のSYNSD02)を符号化する。該CTUが符号化対象スライスの終端である場合、スライス終端フラグを1へ設定し、それ以外の場合は0へ設定し、符号化する。また、各CTUの符号化後に、処理済CTU数numCtbの値を1加算する(numCtb++)。
(SE10B)該CTUが符号化対象スライスの終端であるか否かをスライス終端フラグに基づいて判定する。スライス終端フラグが1の場合(SE10BでYes)、ステップSE10Cへ遷移する。それ以外の場合(SE10BでNo)、後続のCTUを符号化するため、ステップSE10Aへ遷移する。
(SE10C)処理済CTU数numCtuが、ピクチャを構成するCTUの総数(PicSizeInCtbsY)に達したか判定する。すなわち、numCtu==PicSizeInCtbsYであるか判定する。numCtuがPicSizeInCtbsYと等しい場合(SE10CでYes)、符号化対象ピクチャを構成するスライス単位の符号化処理を終了する。それ以外の場合(numCtu<PicSizeInCtbsY)(SE10CでNo)、符号化対象ピクチャを構成するスライス単位の符号化処理を継続するため、ステップSE101へ遷移する。
以上、実施例1に係るピクチャ符号化部24の動作について説明したが、上記ステップに限定されず、実施可能な範囲で、ステップを変更しても構わない。
(動画像符号化装置2の効果)
以上説明した本実施形態に係る階層動画像符号化装置2は、階層動画像復号装置1(及びその変形例を含む)において、レイヤセットにベースレイヤが含まれることを保障するために、前述のコンフォーマンス条件CC1(又はCC2〜CC4)を満たすように、ターゲットセットの階層符号化データDATAを生成する。従って、画像復号装置1において、上記符号化データから復号される出力レイヤセットは、必ずベースレイヤを復号することが保障される。従って、あるレイヤセットAを含む符号化データからビットストリーム抽出処理によって生成された、レイヤセットAのサブセットであるレイヤセットBを含む符号化データを復号する際に、レイヤセットBのあるレイヤC(レイヤ識別子>0)において、ベースレイヤにレイヤ識別子を有するパラメータセット(VPS/SPS/PPS)をアクティブパラメータセットとして参照する場合、ベースレイヤがレイヤセットBを含む符号化データに含まれず、あるレイヤCを復号できないというケースを防止することができる。すなわち、コンフォーマンス条件CC1(C2C〜CC4)を満たすことで、レイヤセットAを含む符号化データから、ビットストリーム抽出により生成されたレイヤセットAのサブセットであるレイヤセットBを含む符号化データが復号可能であることを保障することができる。
以上説明した本実施形態に係る階層動画像符号化装置2は、階層動画像復号装置1(及びその変形例を含む)において、レイヤセットにベースレイヤが含まれることを保障するために、前述のコンフォーマンス条件CC1(又はCC2〜CC4)を満たすように、ターゲットセットの階層符号化データDATAを生成する。従って、画像復号装置1において、上記符号化データから復号される出力レイヤセットは、必ずベースレイヤを復号することが保障される。従って、あるレイヤセットAを含む符号化データからビットストリーム抽出処理によって生成された、レイヤセットAのサブセットであるレイヤセットBを含む符号化データを復号する際に、レイヤセットBのあるレイヤC(レイヤ識別子>0)において、ベースレイヤにレイヤ識別子を有するパラメータセット(VPS/SPS/PPS)をアクティブパラメータセットとして参照する場合、ベースレイヤがレイヤセットBを含む符号化データに含まれず、あるレイヤCを復号できないというケースを防止することができる。すなわち、コンフォーマンス条件CC1(C2C〜CC4)を満たすことで、レイヤセットAを含む符号化データから、ビットストリーム抽出により生成されたレイヤセットAのサブセットであるレイヤセットBを含む符号化データが復号可能であることを保障することができる。
(他の階層動画像符号化/復号システムへの適用例)
上述した階層動画像符号化装置2及び階層動画像復号装置1は、動画像の送信、受信、記録、再生を行う各種装置に搭載して利用できる。なお、動画像は、カメラ等により撮像された自然動画像であってもよいし、コンピュータ等により生成された人工動画像(CGおよびGUIを含む)であってもよい。
上述した階層動画像符号化装置2及び階層動画像復号装置1は、動画像の送信、受信、記録、再生を行う各種装置に搭載して利用できる。なお、動画像は、カメラ等により撮像された自然動画像であってもよいし、コンピュータ等により生成された人工動画像(CGおよびGUIを含む)であってもよい。
図33に基づいて、上述した階層動画像符号化装置2および階層動画像復号装置1を、動画像の送信および受信に利用できることを説明する。図33の(a)は、階層動画像符号化装置2を搭載した送信装置PROD_Aの構成を示したブロック図である。
図33の(a)に示すように、送信装置PROD_Aは、動画像を符号化することによって符号化データを得る符号化部PROD_A1と、符号化部PROD_A1が得た符号化データで搬送波を変調することによって変調信号を得る変調部PROD_A2と、変調部PROD_A2が得た変調信号を送信する送信部PROD_A3とを備えている。上述した階層動画像符号化装置2は、この符号化部PROD_A1として利用される。
送信装置PROD_Aは、符号化部PROD_A1に入力する動画像の供給源として、動画像を撮像するカメラPROD_A4、動画像を記録した記録媒体PROD_A5、動画像を外部から入力するための入力端子PROD_A6、及び、画像を生成または加工する画像処理部A7を更に備えていてもよい。図33の(a)においては、これら全てを送信装置PROD_Aが備えた構成を例示しているが、一部を省略しても構わない。
なお、記録媒体PROD_A5は、符号化されていない動画像を記録したものであってもよいし、伝送用の符号化方式とは異なる記録用の符号化方式で符号化された動画像を記録したものであってもよい。後者の場合、記録媒体PROD_A5と符号化部PROD_A1との間に、記録媒体PROD_A5から読み出した符号化データを記録用の符号化方式に従って復号する復号部(不図示)を介在させるとよい。
図33の(b)は、階層動画像復号装置1を搭載した受信装置PROD_Bの構成を示したブロック図である。図33の(b)に示すように、受信装置PROD_Bは、変調信号を受信する受信部PROD_B1と、受信部PROD_B1が受信した変調信号を復調することによって符号化データを得る復調部PROD_B2と、復調部PROD_B2が得た符号化データを復号することによって動画像を得る復号部PROD_B3とを備えている。上述した階層動画像復号装置1は、この復号部PROD_B3として利用される。
受信装置PROD_Bは、復号部PROD_B3が出力する動画像の供給先として、動画像を表示するディスプレイPROD_B4、動画像を記録するための記録媒体PROD_B5、及び、動画像を外部に出力するための出力端子PROD_B6を更に備えていてもよい。図33の(b)においては、これら全てを受信装置PROD_Bが備えた構成を例示しているが、一部を省略しても構わない。
なお、記録媒体PROD_B5は、符号化されていない動画像を記録するためのものであってもよいし、伝送用の符号化方式とは異なる記録用の符号化方式で符号化されたものであってもよい。後者の場合、復号部PROD_B3と記録媒体PROD_B5との間に、復号部PROD_B3から取得した動画像を記録用の符号化方式に従って符号化する符号化部(不図示)を介在させるとよい。
なお、変調信号を伝送する伝送媒体は、無線であってもよいし、有線であってもよい。また、変調信号を伝送する伝送態様は、放送(ここでは、送信先が予め特定されていない送信態様を指す)であってもよいし、通信(ここでは、送信先が予め特定されている送信態様を指す)であってもよい。すなわち、変調信号の伝送は、無線放送、有線放送、無線通信、及び有線通信の何れによって実現してもよい。
例えば、地上デジタル放送の放送局(放送設備など)/受信局(テレビジョン受像機など)は、変調信号を無線放送で送受信する送信装置PROD_A/受信装置PROD_Bの一例である。また、ケーブルテレビ放送の放送局(放送設備など)/受信局(テレビジョン受像機など)は、変調信号を有線放送で送受信する送信装置PROD_A/受信装置PROD_Bの一例である。
また、インターネットを用いたVOD(Video On Demand)サービスや動画共有サービスなどのサーバ(ワークステーションなど)/クライアント(テレビジョン受像機、パーソナルコンピュータ、スマートフォンなど)は、変調信号を通信で送受信する送信装置PROD_A/受信装置PROD_Bの一例である(通常、LANにおいては伝送媒体として無線又は有線の何れかが用いられ、WANにおいては伝送媒体として有線が用いられる)。ここで、パーソナルコンピュータには、デスクトップ型PC、ラップトップ型PC、及びタブレット型PCが含まれる。また、スマートフォンには、多機能携帯電話端末も含まれる。
なお、動画共有サービスのクライアントは、サーバからダウンロードした符号化データを復号してディスプレイに表示する機能に加え、カメラで撮像した動画像を符号化してサーバにアップロードする機能を有している。すなわち、動画共有サービスのクライアントは、送信装置PROD_A及び受信装置PROD_Bの双方として機能する。
図34に基づいて、上述した階層動画像符号化装置2および階層動画像復号装置1を、動画像の記録および再生に利用できることを説明する。図34の(a)は、上述した階層動画像符号化装置2を搭載した記録装置PROD_Cの構成を示したブロック図である。
図34の(a)に示すように、記録装置PROD_Cは、動画像を符号化することによって符号化データを得る符号化部PROD_C1と、符号化部PROD_C1が得た符号化データを記録媒体PROD_Mに書き込む書込部PROD_C2と、を備えている。上述した階層動画像符号化装置2は、この符号化部PROD_C1として利用される。
なお、記録媒体PROD_Mは、(1)HDD(Hard Disk Drive)やSSD(Solid State Drive)等のように、記録装置PROD_Cに内蔵されるタイプのものであってもよいし、(2)SDメモリカードやUSB(Universal Serial Bus)フラッシュメモリ等のように、記録装置PROD_Cに接続されるタイプのものであってもよいし、(3)DVD(Digital Versatile Disc)やBD(Blu-ray Disc:登録商標)等のように、記録装置PROD_Cに内蔵されたドライブ装置(不図示)に装填されるものであってもよい。
また、記録装置PROD_Cは、符号化部PROD_C1に入力する動画像の供給源として、動画像を撮像するカメラPROD_C3、動画像を外部から入力するための入力端子PROD_C4、動画像を受信するための受信部PROD_C5、及び、画像を生成または加工する画像処理部C6を更に備えていてもよい。図34の(a)においては、これら全てを記録装置PROD_Cが備えた構成を例示しているが、一部を省略しても構わない。
なお、受信部PROD_C5は、符号化されていない動画像を受信するものであってもよいし、記録用の符号化方式とは異なる伝送用の符号化方式で符号化された符号化データを受信するものであってもよい。後者の場合、受信部PROD_C5と符号化部PROD_C1との間に、伝送用の符号化方式で符号化された符号化データを復号する伝送用復号部(不図示)を介在させるとよい。
このような記録装置PROD_Cとしては、例えば、DVDレコーダ、BDレコーダ、HDD(Hard Disk Drive)レコーダなどが挙げられる(この場合、入力端子PROD_C4又は受信部PROD_C5が動画像の主な供給源となる)。また、カムコーダ(この場合、カメラPROD_C3が動画像の主な供給源となる)、パーソナルコンピュータ(この場合、受信部PROD_C5又は画像処理部C6が動画像の主な供給源となる)、スマートフォン(この場合、カメラPROD_C3又は受信部PROD_C5が動画像の主な供給源となる)なども、このような記録装置PROD_Cの一例である。
図34の(b)は、上述した階層動画像復号装置1を搭載した再生装置PROD_Dの構成を示したブロックである。図34の(b)に示すように、再生装置PROD_Dは、記録媒体PROD_Mに書き込まれた符号化データを読み出す読出部PROD_D1と、読出部PROD_D1が読み出した符号化データを復号することによって動画像を得る復号部PROD_D2と、を備えている。上述した階層動画像復号装置1は、この復号部PROD_D2として利用される。
なお、記録媒体PROD_Mは、(1)HDDやSSDなどのように、再生装置PROD_Dに内蔵されるタイプのものであってもよいし、(2)SDメモリカードやUSBフラッシュメモリなどのように、再生装置PROD_Dに接続されるタイプのものであってもよいし、(3)DVDやBDなどのように、再生装置PROD_Dに内蔵されたドライブ装置(不図示)に装填されるものであってもよい。
また、再生装置PROD_Dは、復号部PROD_D2が出力する動画像の供給先として、動画像を表示するディスプレイPROD_D3、動画像を外部に出力するための出力端子PROD_D4、及び、動画像を送信する送信部PROD_D5を更に備えていてもよい。図34の(b)においては、これら全てを再生装置PROD_Dが備えた構成を例示しているが、一部を省略しても構わない。
なお、送信部PROD_D5は、符号化されていない動画像を送信するものであってもよいし、記録用の符号化方式とは異なる伝送用の符号化方式で符号化された符号化データを送信するものであってもよい。後者の場合、復号部PROD_D2と送信部PROD_D5との間に、動画像を伝送用の符号化方式で符号化する符号化部(不図示)を介在させるとよい。
このような再生装置PROD_Dとしては、例えば、DVDプレイヤ、BDプレイヤ、HDDプレイヤなどが挙げられる(この場合、テレビジョン受像機等が接続される出力端子PROD_D4が動画像の主な供給先となる)。また、テレビジョン受像機(この場合、ディスプレイPROD_D3が動画像の主な供給先となる)、デジタルサイネージ(電子看板や電子掲示板等とも称され、ディスプレイPROD_D3又は送信部PROD_D5が動画像の主な供給先となる)、デスクトップ型PC(この場合、出力端子PROD_D4又は送信部PROD_D5が動画像の主な供給先となる)、ラップトップ型又はタブレット型PC(この場合、ディスプレイPROD_D3又は送信部PROD_D5が動画像の主な供給先となる)、スマートフォン(この場合、ディスプレイPROD_D3又は送信部PROD_D5が動画像の主な供給先となる)なども、このような再生装置PROD_Dの一例である。
(ハードウェア的実現およびソフトウェア的実現について)
最後に、階層動画像復号装置1、階層動画像符号化装置2の各ブロックは、集積回路(ICチップ)上に形成された論理回路によってハードウェア的に実現してもよいし、CPU(Central Processing Unit)を用いてソフトウェア的に実現してもよい。
最後に、階層動画像復号装置1、階層動画像符号化装置2の各ブロックは、集積回路(ICチップ)上に形成された論理回路によってハードウェア的に実現してもよいし、CPU(Central Processing Unit)を用いてソフトウェア的に実現してもよい。
後者の場合、上記各装置は、各機能を実現する制御プログラムの命令を実行するCPU、上記プログラムを格納したROM(Read Only Memory)、上記プログラムを展開するRAM(Random Access Memory)、上記プログラムおよび各種データを格納するメモリ等の記憶装置(記録媒体)などを備えている。そして、本発明の目的は、上述した機能を実現するソフトウェアである上記各装置の制御プログラムのプログラムコード(実行形式プログラム、中間コードプログラム、ソースプログラム)をコンピュータで読み取り可能に記録した記録媒体を、上記各装置に供給し、そのコンピュータ(またはCPUやMPU(Micro Processing Unit))が記録媒体に記録されているプログラムコードを読み出し実行することによっても、達成可能である。
上記記録媒体としては、例えば、磁気テープやカセットテープ等のテープ類、フロッピー(登録商標)ディスク/ハードディスク等の磁気ディスクやCD−ROM(Compact Disc Read-Only Memory)/MO(Magneto-Optical)/MD(Mini Disc)/DVD(Digital Versatile Disk)/CD−R(CD Recordable)等の光ディスクを含むディスク類、ICカード(メモリカードを含む)/光カード等のカード類、マスクROM/EPROM(Erasable Programmable Read-only Memory)/EEPROM(登録商標)(Electrically Erasable and Programmable Read-only Memory)/フラッシュROM等の半導体メモリ類、あるいはPLD(Programmable Logic Device)やFPGA(Field Programmable Gate Array)等の論理回路類などを用いることができる。
また、上記各装置を通信ネットワークと接続可能に構成し、上記プログラムコードを通信ネットワークを介して供給してもよい。この通信ネットワークは、プログラムコードを伝送可能であればよく、特に限定されない。例えば、インターネット、イントラネット、エキストラネット、LAN(Local Area Network)、ISDN(Integrated Services Digital Network)、VAN(Value-Added Network)、CATV(Community Antenna Television)通信網、仮想専用網(Virtual Private Network)、電話回線網、移動体通信網、衛星通信網等が利用可能である。また、この通信ネットワークを構成する伝送媒体も、プログラムコードを伝送可能な媒体であればよく、特定の構成または種類のものに限定されない。例えば、IEEE(Institute of Electrical and Electronic Engineers)1394、USB、電力線搬送、ケーブルTV回線、電話線、ADSL(Asymmetric Digital Subscriber Line)回線等の有線でも、IrDA(Infrared Data Association)やリモコンのような赤外線、Bluetooth(登録商標)、IEEE802.11無線、HDR(High Data Rate)、NFC(Near Field Communication)、DLNA(Digital Living Network Alliance)、携帯電話網、衛星回線、地上波デジタル網等の無線でも利用可能である。なお、本発明は、上記プログラムコードが電子的な伝送で具現化された、搬送波に埋め込まれたコンピュータデータ信号の形態でも実現され得る。
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
本発明は、画像データが階層的に符号化された符号化データを復号する階層動画像復号装置、および、画像データが階層的に符号化された符号化データを生成する階層動画像符号化装置に好適に適用することができる。また、階層動画像符号化装置によって生成され、階層動画像復号装置によって参照される階層符号化データのデータ構造に好適に適用することができる。
1…階層動画像復号装置(画像復号装置)
2…階層動画像符号化装置(画像符号化装置)
10…ターゲットセットピクチャ復号部
11…NAL逆多重化部(NALユニット復号手段、レイヤ識別子復号手段)
12…Non-VCL復号部
121…パラメータセット復号手段(PTL情報復号手段、レイヤ間依存情報復号手段)
1211…レイヤセット情報復号手段
1212…最大サブレイヤ値復号手段
1213…出力レイヤセット情報復号手段
1214…出力レイヤ最大サブレイヤ導出手段
1215…DPB情報復号手段
1220…レイヤ間依存情報復号手段
1221…PTL情報復号手段
1222…スケーラブル識別子復号手段
1223…関連レイヤ導出手段
1224…レイヤ間位置対応情報復号手段
1225…ピクチャ情報復号手段
13…パラメータメモリ
14…ピクチャ復号部(VCL復号手段)
141…スライスヘッダ復号部
142…CTU復号部
1421…予測残差復元部
1422…予測画像生成部
1423…CTU復号画像生成部
15…復号ピクチャ管理部
16…出力制御部(出力レイヤセット選択手段、対象出力レイヤID導出手段、対象復号レイヤIDリスト導出手段)
17…ビットストリーム抽出手段(符号化データ抽出手段)
20…ターゲットセットピクチャ符号化部
21…NAL多重化部(NALユニット符号化手段)
22…Non-VCL符号化部
221…パラメータセット符号化手段(PTL情報復号手段、レイヤ間依存情報復号手段)
2211…レイヤセット情報符号化手段
2212…最大サブレイヤ値符号化手段
2213…出力レイヤセット情報符号化手段
2215…DPB情報符号化手段
2220…レイヤ間依存情報符号化手段
2221…PTL情報符号化手段
2222…スケーラブル識別子符号化手段
2223…関連レイヤ導出手段
2224…レイヤ間位置対応情報符号化手段
2225…ピクチャ情報符号化手段
24…ピクチャ符号化部(VCL符号化手段)
26…符号化パラメータ決定部
241…スライスヘッダ符号化部
242…CTU符号化部
2421…予測残差符号化部
2422…予測画像符号化部
2423…CTU復号画像生成部
2…階層動画像符号化装置(画像符号化装置)
10…ターゲットセットピクチャ復号部
11…NAL逆多重化部(NALユニット復号手段、レイヤ識別子復号手段)
12…Non-VCL復号部
121…パラメータセット復号手段(PTL情報復号手段、レイヤ間依存情報復号手段)
1211…レイヤセット情報復号手段
1212…最大サブレイヤ値復号手段
1213…出力レイヤセット情報復号手段
1214…出力レイヤ最大サブレイヤ導出手段
1215…DPB情報復号手段
1220…レイヤ間依存情報復号手段
1221…PTL情報復号手段
1222…スケーラブル識別子復号手段
1223…関連レイヤ導出手段
1224…レイヤ間位置対応情報復号手段
1225…ピクチャ情報復号手段
13…パラメータメモリ
14…ピクチャ復号部(VCL復号手段)
141…スライスヘッダ復号部
142…CTU復号部
1421…予測残差復元部
1422…予測画像生成部
1423…CTU復号画像生成部
15…復号ピクチャ管理部
16…出力制御部(出力レイヤセット選択手段、対象出力レイヤID導出手段、対象復号レイヤIDリスト導出手段)
17…ビットストリーム抽出手段(符号化データ抽出手段)
20…ターゲットセットピクチャ符号化部
21…NAL多重化部(NALユニット符号化手段)
22…Non-VCL符号化部
221…パラメータセット符号化手段(PTL情報復号手段、レイヤ間依存情報復号手段)
2211…レイヤセット情報符号化手段
2212…最大サブレイヤ値符号化手段
2213…出力レイヤセット情報符号化手段
2215…DPB情報符号化手段
2220…レイヤ間依存情報符号化手段
2221…PTL情報符号化手段
2222…スケーラブル識別子符号化手段
2223…関連レイヤ導出手段
2224…レイヤ間位置対応情報符号化手段
2225…ピクチャ情報符号化手段
24…ピクチャ符号化部(VCL符号化手段)
26…符号化パラメータ決定部
241…スライスヘッダ符号化部
242…CTU符号化部
2421…予測残差符号化部
2422…予測画像符号化部
2423…CTU復号画像生成部
Claims (20)
- 階層画像符号化データを復号する画像復号装置であって、
レイヤセットを復号するレイヤセット情報復号手段と、
出力レイヤセットのレイヤセット識別子、出力レイヤフラグ、代替出力レイヤフラグ及びPTL指定識別子を復号する出力レイヤセット情報復号手段と、
上記出力レイヤセットのPTL指定識別子に対応するPTL情報を復号するPTL情報復号手段を備え、
上記出力レイヤセットに対するPTL情報のプロファイル識別子が、ステレオプロファイルを示す場合、上記出力レイヤセットにおいて、プライマリピクチャレイヤの出力レイヤ数は2であることを特徴とする画像復号装置。 - 階層的符号化データを生成する画像符号化装置であって、
レイヤセットを符号化するレイヤセット情報符号化手段と、
出力レイヤセットのレイヤセット識別子、出力レイヤフラグ、代替出力レイヤフラグ及びPTL指定識別子を符号化する出力レイヤセット情報符号化手段と、
上記出力レイヤセットのPTL指定識別子に対応するPTL情報を符号化するPTL情報符号化手段を備え、
上記出力レイヤセットに対するPTL情報のプロファイル識別子が、ステレオプロファイルを示す場合、上記出力レイヤセットにおいて、プライマリピクチャレイヤの出力レイヤ数は2であることを特徴とする画像符号化装置。 - 階層画像符号化データを復号する画像復号装置であって、
各レイヤのスケーラブル識別子及び補助ピクチャIDAuxIDを復号するスケーラブル識別子復号手段と、
直接依存フラグを復号するレイヤ間依存情報復号手段と、
対象レイヤに対するレイヤ間位置対応情報を復号するレイヤ間位置対応情報復号手段とを備え、
前記対象レイヤに対するレイヤ間位置対応情報に含まれるスケール参照レイヤ識別子の値は、前記対象レイヤのレイヤ識別子の値より小さいことを特徴とする画像復号装置。 - 階層画像符号化データを復号する画像復号装置であって、
各レイヤのスケーラブル識別子及び補助ピクチャIDAuxIDを復号するスケーラブル識別子復号手段と、
直接依存フラグを復号するレイヤ間依存情報復号手段と、
対象レイヤに対するレイヤ間位置対応情報を復号するレイヤ間位置対応情報復号手段とを備え、
前記対象レイヤに対するレイヤ間位置対応情報に含まれるスケール参照レイヤ識別子に等しいレイヤ識別子を有するレイヤは、前記対象レイヤの直接参照レイヤであることを特徴とする画像復号装置。 - さらに、前記対象レイヤに対するレイヤ間位置対応情報に含まれるスケール参照レイヤ識別子に等しいレイヤ識別子を有するレイヤは、前記対象レイヤがプライマリピクチャレイヤである場合、前記プライマリピクチャレイヤに対応する補助ピクチャレイヤであることを特徴とする請求項4に記載の画像復号装置。
- 階層的符号化データを生成する画像符号化装置であって、
各レイヤのスケーラブル識別子及び補助ピクチャIDAuxIDを符号化するスケーラブル識別子符号化手段と、
直接依存フラグを符号化するレイヤ間依存情報符号化手段と、
対象レイヤに対するレイヤ間位置対応情報を符号化するレイヤ間位置対応情報符号化手段とを備え、
前記対象レイヤに対するレイヤ間位置対応情報に含まれるスケール参照レイヤ識別子の値は、前記対象レイヤのレイヤ識別子の値より小さいことを特徴とする画像符号化装置。 - 階層的符号化データを生成する画像符号化装置であって、
各レイヤのスケーラブル識別子及び補助ピクチャIDAuxIDを符号化するスケーラブル識別子符号化手段と、
直接依存フラグを符号化するレイヤ間依存情報符号化手段と、
対象レイヤに対するレイヤ間位置対応情報を符号化するレイヤ間位置対応情報符号化手段とを備え、
前記対象レイヤに対するレイヤ間位置対応情報に含まれるスケール参照レイヤ識別子に等しいレイヤ識別子を有するレイヤは、前記対象レイヤの直接参照レイヤであることを特徴とする画像符号化装置。 - さらに、前記対象レイヤに対するレイヤ間位置対応情報に含まれるスケール参照レイヤ識別子に等しいレイヤ識別子を有するレイヤは、前記対象レイヤがプライマリピクチャレイヤである場合、前記プライマリピクチャレイヤに対応する補助ピクチャレイヤであることを特徴とする請求項7に記載の画像符号化装置。
- 階層画像符号化データを復号する画像復号装置であって、
各レイヤのスケーラブル識別子及び補助ピクチャIDAuxIDを復号するスケーラブル識別子復号手段と、
前記補助ピクチャIDAuxIDが0より大きい補助ピクチャレイヤに対して、0以上の補助ピクチャIDAuxIDが0であるプライマリピクチャレイヤを関連プライマリピクチャレイヤとして関連付ける関連レイヤ導出手段を備え、
前記関連レイヤ導出手段は、前記補助ピクチャレイヤと前記関連プライマリピクチャレイヤにおいて、AuxIDを除く全てのスケーラブル識別子が等しいことを特徴とする画像復号装置。 - 階層的符号化データを生成する画像符号化装置であって、
各レイヤのスケーラブル識別子及び補助ピクチャIDAuxIDを符号化するスケーラブル識別子符号化手段と、
前記補助ピクチャIDAuxIDが0より大きい補助ピクチャレイヤに対して、0以上の補助ピクチャIDAuxIDが0であるプライマイリピクチャレイヤを関連プライマリピクチャレイヤとして関連付ける関連レイヤ導出手段を備え、
前記関連レイヤ導出手段は、前記補助ピクチャレイヤと前記関連プライマリピクチャレイヤにおいて、AuxIDを除く全てのスケーラブル識別子が等しいことを特徴とする画像符号化装置。 - 階層画像符号化データを復号する画像復号装置であって、レイヤセットを復号するレイヤセット情報復号手段と、出力レイヤセットのレイヤセット識別子、出力レイヤフラグを復号する出力レイヤセット情報復号手段と、各レイヤの最大サブレイヤ値を復号する最大サブレイヤ復号手段と、上記出力レイヤセットの最大サブレイヤ値を導出する出力レイヤセット最大サブレイヤ導出手段を備え、上記出力レイヤセット最大サブレイヤ導出手段は、上記出力レイヤフラグが1であるレイヤに関する上記最大サブレイヤ値に応じて、出力レイヤ最大サブレイヤ値を導出することを特徴とする画像復号装置。
- 上記出力レイヤセット最大サブレイヤ導出手段は、上記出力レイヤフラグが1であるレイヤの最大サブレイヤ値の最大値を上記出力レイヤセット最大サブレイヤ値として導出することを特徴とする請求項11に記載の画像復号装置。
- さらに、上記出力レイヤセットに対応するDPB情報を復号するDPB情報復号手段を備え、上記DPB情報復号手段は、上記出力レイヤの上記出力レイヤセット最大サブレイヤ値以下のサブレイヤについてDPB情報を復号することを特徴とする請求項11または請求項12に記載の画像復号装置。
- さらに、上記出力レイヤセットの一つを対象出力レイヤセットとして選択する対象出力レイヤセット選択手段を備え、上記対象出力レイヤセット選択手段は、復号対象レイヤの最大サブレイヤである最高次テンポラル識別子として、0以上、上記出力レイヤセット最大サブレイヤ値以下の値が設定可能であることを特徴とする請求項13に記載の画像復号装置。
- さらに、指定された対象レイヤおよび対象サブレイヤを抽出するビットストリーム抽出手段を備え、上記ビットストリーム抽出手段は、上記対象出力レイヤセット選択手段の指定した、対象出力レイヤセットの復号対象レイヤ以外のレイヤおよび上記最高次テンポラル識別子以外のサブレイヤを除去した符号化データを導出することを特徴とする請求項14に記載の画像復号装置。
- 階層画像符号化データを符号化する画像符号化装置であって、レイヤセットを符号化するレイヤセット情報符号化手段と、出力レイヤセットのレイヤセット識別子、出力レイヤフラグを復号する出力レイヤセット情報符号化手段と、各レイヤの最大サブレイヤ値を復号する最大サブレイヤ符号化手段と、上記出力レイヤセットの最大サブレイヤ値を導出する出力レイヤ最大サブレイヤ導出手段を備え、上記出力レイヤ最大サブレイヤ導出手段は、上記出力レイヤフラグが1であるレイヤに関する上記最大サブレイヤ値に応じて、出力レイヤ最大サブレイヤ値を導出することを特徴とする画像符号化装置。
- さらに、上記出力レイヤセットに対応するDPB情報を復号するDPB情報符号化手段を備え、
上記DPB情報符号化手段は、上記出力レイヤの上記出力レイヤセット最大サブレイヤ値以下のサブレイヤについてDPB情報を符号化することを特徴とする請求項16に記載の画像符号化装置。 - 階層画像符号化データを復号する画像復号装置であって、出力レイヤフラグと代替レイヤ出力フラグを復号する出力レイヤセット情報復号手段を備え、上記出力レイヤセット情報復号手段は、出力レイヤセットに含まれるレイヤセットのレイヤ数が、上記出力レイヤセットに含まれる出力フラグが1のレイヤの数である出力レイヤ数よりも大きい場合に、符号化データから代替レイヤ出力フラグを復号し、上記レイヤ数が上記出力レイヤ数以下の場合には、代替レイヤ出力フラグを符号化データから復号せずに0を導出することを特徴とする画像復号装置。
- 階層画像符号化データを復号する画像復号装置であって、符号化データに含まれる任意の2つのレイヤのスケーラブルIDが一致することはない、という条件を満たす符号化データを復号することを特徴とする画像復号装置。
- 階層画像符号化データを復号する画像復号装置であって、レイヤセットに含まれる任意の2つのレイヤのスケーラブルIDが一致することはない、という条件を満たす符号化データを復号することを特徴とする画像復号装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014076372A JP2015195543A (ja) | 2014-03-26 | 2014-04-02 | 画像復号装置、画像符号化装置 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014063800 | 2014-03-26 | ||
JP2014063800 | 2014-03-26 | ||
JP2014076372A JP2015195543A (ja) | 2014-03-26 | 2014-04-02 | 画像復号装置、画像符号化装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2015195543A true JP2015195543A (ja) | 2015-11-05 |
Family
ID=54434216
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014076372A Pending JP2015195543A (ja) | 2014-03-26 | 2014-04-02 | 画像復号装置、画像符号化装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2015195543A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113055668A (zh) * | 2019-12-27 | 2021-06-29 | 腾讯美国有限责任公司 | 从已编码视频比特流中提取子比特流的方法和设备 |
JP2022549649A (ja) * | 2019-09-24 | 2022-11-28 | 華為技術有限公司 | マルチレイヤービデオビットストリームにおける不要なレイヤーの禁止 |
CN116210223A (zh) * | 2020-09-22 | 2023-06-02 | Lg 电子株式会社 | 媒体文件处理方法及其装置 |
JP7400089B2 (ja) | 2019-09-24 | 2023-12-18 | ホアウェイ・テクノロジーズ・カンパニー・リミテッド | 空間およびsnrスケーラビリティのためのols |
JP7419513B2 (ja) | 2019-10-07 | 2024-01-22 | ホアウェイ・テクノロジーズ・カンパニー・リミテッド | マルチレイヤビデオビットストリーム内の冗長シグナリングの回避 |
-
2014
- 2014-04-02 JP JP2014076372A patent/JP2015195543A/ja active Pending
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022549649A (ja) * | 2019-09-24 | 2022-11-28 | 華為技術有限公司 | マルチレイヤービデオビットストリームにおける不要なレイヤーの禁止 |
JP2022549836A (ja) * | 2019-09-24 | 2022-11-29 | 華為技術有限公司 | マルチレイヤービデオビットストリームにおける未使用レイヤーの禁止 |
JP7381732B2 (ja) | 2019-09-24 | 2023-11-15 | 華為技術有限公司 | マルチレイヤービデオビットストリームにおける未使用レイヤーの禁止 |
JP7381731B2 (ja) | 2019-09-24 | 2023-11-15 | 華為技術有限公司 | マルチレイヤービデオビットストリームにおける不要なレイヤーの禁止 |
JP7400089B2 (ja) | 2019-09-24 | 2023-12-18 | ホアウェイ・テクノロジーズ・カンパニー・リミテッド | 空間およびsnrスケーラビリティのためのols |
JP7419513B2 (ja) | 2019-10-07 | 2024-01-22 | ホアウェイ・テクノロジーズ・カンパニー・リミテッド | マルチレイヤビデオビットストリーム内の冗長シグナリングの回避 |
CN113055668A (zh) * | 2019-12-27 | 2021-06-29 | 腾讯美国有限责任公司 | 从已编码视频比特流中提取子比特流的方法和设备 |
CN113055668B (zh) * | 2019-12-27 | 2023-06-02 | 腾讯美国有限责任公司 | 从已编码视频比特流中提取子比特流的方法和设备 |
CN116210223A (zh) * | 2020-09-22 | 2023-06-02 | Lg 电子株式会社 | 媒体文件处理方法及其装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6585223B2 (ja) | 画像復号装置 | |
JP6465863B2 (ja) | 画像復号装置、画像復号方法及び記録媒体 | |
JP6800837B2 (ja) | 画像復号装置、及び画像復号方法 | |
WO2015053330A1 (ja) | 画像復号装置 | |
JP6290088B2 (ja) | 画像復号装置、画像復号方法、および記録媒体 | |
WO2015053120A1 (ja) | 画像復号装置、画像復号方法、画像符号化装置、及び画像符号化方法 | |
WO2014050597A1 (ja) | 画像復号装置 | |
JP2015195543A (ja) | 画像復号装置、画像符号化装置 | |
WO2014007131A1 (ja) | 画像復号装置、および画像符号化装置 | |
JP2015119402A (ja) | 画像復号装置、画像符号化装置、及び符号化データ | |
WO2015098713A1 (ja) | 画像復号装置および画像符号化装置 | |
JP2015126507A (ja) | 画像復号装置、画像符号化装置、及び符号化データ | |
JP2015076807A (ja) | 画像復号装置、画像符号化装置、および符号化データのデータ構造 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20161104 |