図1~図27に基づいて、本発明の一実施形態に係る階層動画像復号装置1および階層動画像符号化装置2を説明すれば以下のとおりである。
〔概要〕
本実施の形態に係る階層動画像復号装置(画像復号装置とも記載する)1は、階層動画像符号化装置(画像符号化装置とも記載する)2によって階層符号化された符号化データを復号する。階層符号化とは、動画像を低品質のものから高品質のものにかけて階層的に符号化する符号化方式のことである。階層符号化は、例えば、SVCやSHVCにおいて標準化されている。なお、ここでいう動画像の品質とは、主観的および客観的な動画像の見栄えに影響する要素のことを広く意味する。動画像の品質には、例えば、“解像度”、“フレームレート”、“画質”、および、“画素の表現精度”が含まれる。よって、以下、動画像の品質が異なるといえば、例示的には、“解像度”等が異なることを指すが、これに限られない。例えば、異なる量子化ステップで量子化された動画像の場合(すなわち、異なる符号化雑音により符号化された動画像の場合)も互いに動画像の品質が異なるといえる。
また、階層符号化技術は、階層化される情報の種類の観点から、(1)空間スケーラビリティ、(2)時間スケーラビリティ、(3)SNR(Signal to Noise Ratio)スケーラビリティ、および(4)ビュースケーラビリティに分類されることもある。空間スケーラビリティとは、解像度や画像のサイズにおいて階層化する技術である。時間スケーラビリティとは、フレームレート(単位時間のフレーム数)において階層化する技術である。SNRスケーラビリティは、符号化雑音において階層化する技術である。また、ビュースケーラビリティは、各画像に対応付けられた視点位置において階層化する技術である。
本実施形態に係る階層動画像符号化装置2及び階層動画像復号装置1の詳細な説明に先立って、まず(1)階層動画像符号化装置2によって生成され、階層動画像復号装置1によって復号される階層符号化データのレイヤ構造を説明し、次いで(2)各レイヤで採用できるデータ構造の具体例について説明を行う。
〔階層符号化データのレイヤ構造〕
ここで、図1を用いて、階層符号化データの符号化および復号について説明すると次のとおりである。図1は、動画像を、下位階層L3、中位階層L2、および上位階層L1の3階層により階層的に符号化/復号する場合について模式的に表す図である。つまり、図1(a)および(b)に示す例では、3階層のうち、上位階層L1が最上位層となり、下位階層L3が最下位層となる。
以下において、階層符号化データから復号され得る特定の品質に対応する復号画像は、特定の階層の復号画像(または、特定の階層に対応する復号画像)と称される(例えば、上位階層L1の復号画像POUT#A)。
図1(a)は、入力画像PIN#A~PIN#Cをそれぞれ階層的に符号化して符号化データDATA#A~DATA#Cを生成する階層動画像符号化装置2#A~2#Cを示している。図1(b)は、階層的に符号化された符号化データDATA#A~DATA#Cをそれぞれ復号して復号画像POUT#A~POUT#Cを生成する階層動画像復号装置1#A~1#Cを示している。
まず、図1(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を復号するのに必要な基本情報が含まれる(図1において“C”にて示している)。下位階層L3は、最下層の階層であるため、下位階層L3の符号化データDATA#Cは、基本符号化データとも称される。
また、中位階層L2の階層動画像符号化装置2#Bは、中位階層L2の入力画像PIN#Bを、下位階層の符号化データDATA#Cを参照しながら符号化して中位階層L2の符号化データDATA#Bを生成する。中位階層L2の符号化データDATA#Bには、符号化データDATA#Cに含まれる基本情報“C”に加えて、中位階層の復号画像POUT#Bを復号するのに必要な付加的情報(図1において“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を復号するのに必要な付加的情報(図1において“A”にて示している)が含まれる。
このように上位階層L1の符号化データDATA#Aは、異なる複数の品質の復号画像に関する情報を含む。
次に、図1(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階層よりも多い階層数にて階層符号化されていてもよい。
また、特定の階層の復号画像に関する符号化データの一部または全部を他の階層とは独立して符号化し、特定の階層の復号の際に、他の階層の情報を参照しなくても済むように階層符号化データを構成してもよい。例えば、図1(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が異なる画質となるよう階層符号化データを生成することもできる。その場合、下位階層の階層動画像符号化装置が、上位階層の階層動画像符号化装置に較べて、より大きい量子化幅を用いて予測残差を量子化することで階層符号化データを生成する。
本書では、説明の便宜上、次のとおり用語を定義する。以下の用語は、特に断りがなければ、下記の技術的事項のことを表わすのに用いる。
上位レイヤ : ある階層よりも上位に位置する階層のことを、上位レイヤと称する。例えば、図1において、下位階層L3の上位レイヤは、中位階層L2および上位階層L1である。また、上位レイヤの復号画像とは、より品質の高い(例えば、解像度が高い、フレームレートが高い、画質が高い等)復号画像のことをいう。
下位レイヤ : ある階層よりも下位に位置する階層のことを、下位レイヤと称する。例えば、図1において、上位階層L1の下位レイヤは、中位階層L2および下位階層L3である。また、下位レイヤの復号画像とは、より品質の低い復号画像のことをいう。
対象レイヤ : 復号または符号化の対象となっている階層のことをいう。
参照レイヤ : 対象レイヤに対応する復号画像を復号するのに参照される特定の下位レイヤのことを参照レイヤと称する。
図1(a)および(b)に示した例では、上位階層L1の参照レイヤは、中位階層L2および下位階層L3である。しかしながら、これに限られず、特定の上記レイヤの復号において、下位レイヤのすべてを参照しなくてもよいように階層符号化データを構成することもできる。例えば、上位階層L1の参照レイヤが、中位階層L2および下位階層L3のいずれか一方となるように階層符号化データを構成することも可能である。
基本レイヤ : 最下層に位置する階層のことを基本レイヤと称する。基本レイヤの復号画像は、符号化データから復号され得るもっとも低い品質の復号画像であり、基本復号画像と呼称される。別の言い方をすれば、基本復号画像は、最下層の階層に対応する復号画像のことである。基本復号画像の復号に必要な階層符号化データの部分符号化データは基本符号化データと呼称される。例えば、上位階層L1の階層符号化データDATA#Aに含まれる基本情報“C”が基本符号化データである。
拡張レイヤ : 基本レイヤの上位レイヤは、拡張レイヤと称される。
レイヤ識別子 : レイヤ識別子(レイヤIDともいう)は、階層を識別するためのものであり、階層と1対1に対応する。階層符号化データには特定の階層の復号画像の復号に必要な部分符号化データを選択するために用いられる階層識別子が含まれる。特定のレイヤに対応するレイヤ識別子に関連付けられた階層符号化データの部分集合は、レイヤ表現とも呼称される。
一般に、特定の階層の復号画像の復号には、当該階層のレイヤ表現、および/または、当該階層の下位レイヤに対応するレイヤ表現が用いられる。すなわち、対象レイヤの復号画像の復号においては、対象レイヤのレイヤ表現、および/または、対象レイヤの下位レイヤに含まれる1つ以上階層のレイヤ表現が用いられる。
レイヤ間予測 : レイヤ間予測とは、対象レイヤのレイヤ表現と異なる階層(参照レイヤ)のレイヤ表現に含まれるシンタックス要素値、シンタックス要素値より導出される値、および復号画像に基づいて、対象レイヤのシンタックス要素値や対象レイヤの復号に用いられる符号化パラメータ等を予測することである。動き予測に関する情報を参照レイヤの情報から予測するレイヤ間予測のことをレイヤ間動き情報予測と称することもある。また、下位レイヤの復号画像から予測するレイヤ間予測のことをレイヤ間画像予測(あるいはレイヤ間テクスチャ予測)と称することもある。なお、レイヤ間予測に用いられる階層は、例示的には、対象レイヤの下位レイヤである。また、参照レイヤを用いず対象レイヤ内で予測を行うことをレイヤ内予測と称することもある。
テンポラル識別子: テンポラル識別子(テンポラルID、時間識別子、サブレイヤID、あるいはサブレイヤ識別子ともいう)は、時間スケーラビリティに関するレイヤ(以降、サブレイヤ)を識別するための識別子である。テンポラル識別子は、サブレイヤを識別するためのものであり、サブレイヤと1対1に対応する。符号化データには特定のサブレイヤの復号画像の復号に必要な部分符号化データを選択するために用いられるテンポラル識別子が含まれる。
サブレイヤ: サブレイヤとは、テンポラル識別子により特定される時間スケーラビリティに関するレイヤである。空間スケーラビリティ、SNRスケーラビリティ等、そのほかのスケーラビリティと区別するため、以降サブレイヤと称する(テンポラルレイヤとも称する)。
なお、以降では、時間スケーラビリティは、基本レイヤの符号化データ、またはあるレイヤを復号するために必要な階層符号化データ、に含まれるサブレイヤによって実現されるものとする。
次に、図2、3を参照して、ビットストリーム抽出処理(サブビットストリーム抽出ともいう)により、あるレイヤセットAを含む階層符号化データより、レイヤセットAのサブセットとなるレイヤセットB(ターゲットセットとも呼ぶ)を含む階層符号化データを抽出する例について説明する。
なお、ビットストリーム抽出処理とは、あるビットストリーム(階層符号化データ、符号化データ)から、対象最高次テンポラル識別子(heighest TemporalId, heighestTid)、対象レイヤセットに含まれるレイヤを表わすレイヤIDリストによって定まる集合(ターゲットセットと呼ぶ)に含まれないNALユニットを除去(破棄)し、ターゲットセットに含まれるNALユニットから構成されるビットストリーム(サブビットストリームとも称する)を抽出する処理である。
図2は、3つのレイヤ(L#0,L#1,L#2)、及び各レイヤは3つのサブレイヤ(TID1, TID2,TID3)から構成されるレイヤセットAの構成を表わす。なお、以降では、レイヤセットをを構成するレイヤ、及びサブレイヤを、{レイヤIDリスト{L#0,…,L#N}、最高次テンポラルID(HighestTid=K)}と表わす。例えば、図2のレイヤセットAは、{レイヤIDリスト{L#0, L#1, L#2}、最高次テンポラルID=3}と表現される。ここで、符号L♯Nは、あるレイヤNを示し、図2中の各ボックスは、ピクチャを表わし、ボックス内の番号は、復号順の一例を表わす。以降、ピクチャで番号Nを、P#Nと表記する(図3についても同様)。
また、各ピクチャ間の矢印は、ピクチャ間の依存方向(参照関係)を表わす。同一レイヤ内の矢印であれば、インター予測に利用される参照ピクチャであることを示す。レイヤ間の矢印であれば、レイヤ間予測に利用される参照ピクチャ(参照レイヤピクチャともいう)であることを表わす。
また、図2中のAUは、アクセスユニットを表わし、#Nは、アクセスユニット番号を表わす。AU#Nは、ある起点(例えば、ランダムアクセス開始点)のAUをAU#0とすれば、(N-1)番目のアクセスユニットであることを表わし、ビットストリームに含まれるAUの順番を表わす。すなわち、図2の例であれば、ビットストリーム上で、アクセスユニットは、AU#0、AU#1、AU#2、AU#3、AU#4…の順で格納されている。なお、アクセスユニットとは、特定の分類ルールにより集約されたNALユニットの集合を表わす。図2のAU#0は、ピクチャP#1、P#1、及びP#3の符号化データを含むVLC NALの集合とみることができる。なお、アクセスユニットの詳細については後述する。
図2の例では、ターゲットセット(レイヤセットB)は、レイヤIDリスト{L#0,L#1}、及び最高次テンポラルID=2であるから、レイヤセットAを含むビットストリームから、ターゲットセット(レイヤセットB)に含まれないレイヤ、及び最高次テンポラルID=2より大きいサブレイヤを、ビットストリーム抽出により破棄する。すなわち、レイヤIDリストに含まれないレイヤL#2、及びサブレイヤ(TID3)を有するNALユニットが破棄され、最終的には、図3に示すように、レイヤセットBを含むビットストリームが抽出される。図3では、点線のボックスは、破棄されたピクチャを表わし、点線の矢印は、破棄されたピクチャと参照ピクチャ間の依存方向を示す。なお、レイヤL#3、及びTID3のサブレイヤのピクチャを構成するNALユニットは破棄済のため、依存関係は既に断ち切られている。
SHVCやMV-HEVCでは、SNRスケーラビリティ、空間スケーラビリティ、時間スケーラビリティ等を実現するために、レイヤ、及びサブレイヤの概念が導入されている。図2、図3で既に説明したように、フレームレートを変更し時間スケーラビリティを実現する場合、ビットストリーム抽出処理により、まず他のピクチャから参照されないピクチャ(最高次テンポラルID(TID3))の符号化データを破棄する。図2、3の場合、ピクチャ(10、13、11、14、12、15)の符号化データを破棄することにより、フレームレートが1/2となる符号化データが生成される。
また、SNRスケーラビリティ、空間スケーラビリティや、ビュースケーラビリティを実現する場合、ビットストリーム抽出により、ターゲットセットに含まれない、レイヤの符号化データを破棄することで、各スケーラビリティの粒度を変更することができる。(図2、3では、3、6、9、12、15)の符号化データを破棄することで、スケーラビリティの粒度を粗くした符号化データが生成される。上記処理を繰り返すことで、段階的にレイヤ、サブレイヤの粒度を調整することができる。
なお、以上の用語は、飽くまで説明の便宜上のものであり、上記の技術的事項を別の用語にて表現してもかまわない。
〔階層符号化データのデータ構造について〕
以下、各階層の符号化データを生成する符号化方式として、HEVCおよびその拡張方式を用いる場合について例示する。しかしながら、これに限られず、各階層の符号化データを、MPEG-2や、H.264/AVCなどの符号化方式により生成してもよい。
また、下位レイヤと上位レイヤとが異なる符号化方式によって符号化されていてもよい。また、各階層の符号化データは、互いに異なる伝送路を介して階層動画像復号装置1に供給されてもよいし、同一の伝送路を介して階層動画像復号装置1に供給されてもよい。
例えば、超高精細映像(動画像、4K映像データ)を基本レイヤおよび1つの拡張レイヤによりスケーラブル符号化して伝送する場合、基本レイヤは、4K映像データをダウンスケーリングし、インタレース化した映像データをMPEG-2またはH.264/AVCにより符号化してテレビ放送網で伝送し、拡張レイヤは、4K映像(プログレッシブ)をHEVCにより符号化して、インターネットで伝送してもよい。
<符号化データ#1(階層符号化データDATAともいう)の構造>
本実施形態に係る画像符号化装置2および画像復号装置1の詳細な説明に先立って、画像符号化装置2によって生成され、画像復号装置1によって復号される符号化データ#1のデータ構造について説明する。
(NALユニットレイヤ)
図4は、符号化データ#1におけるデータの階層構造を示す図である。符号化データ#1は、NAL(Network Abstraction Layer)ユニットと呼ばれる単位で符号化される。
NALは、動画像符号化処理を行う層であるVCL(Video Coding Layer)と、符号化データを伝送・蓄積する下位システムとの間における通信を抽象化するために設けられる層である。
VCLは、画像符号化処理を行う層のことであり、VCLにおいて符号化が行われる。一方、ここでいう、下位システムは、H.264/AVCおよびHEVCのファイルフォーマットや、MPEG-2システムに対応する。以下に示す例では、下位システムは、対象レイヤおよび参照レイヤにおける復号処理に対応する。なお、NALでは、VCLで生成されたビットストリームが、NALユニットという単位で区切られて、宛先となる下位システムへ伝送される。
図5(a)は、NAL(Network Abstraction Layer)ユニットのシンタックステーブルを示す。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(ランダムアクセスピクチャ)のスライスである。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ユニットの集合のことをアクセスユニットと呼ぶ。レイヤ数が1の場合には、アクセスユニットは1ピクチャを構成するNALユニットの集合である。レイヤ数が1より大きい場合には、アクセスユニットは同じ時刻の複数のレイヤのピクチャを構成するNALユニットの集合である。なお、アクセスユニットの区切りを示すために、符号化データはアクセスユニットデリミタ(Access unit delimiter)と呼ばれるNALユニットを含んでも良い。アクセスユニットデリミタは、符号化データ中にあるアクセスユニットを構成するNALユニットの集合と、別のアクセスユニットを構成するNALユニットの集合の間に含まれる。
(ビデオパラメータセット)
図7は、本発明の実施形態に係るVPS(Video Parameter Set)の符号化データの構成を示す図である。一部シンタック要素について意味を示すと、次の通りである。VPSは、複数のレイヤに共通するパラメータを規定するためのパラメータセットである。パラメータセットは、ピクチャを圧縮データである符号化データからID(video_parameter_set_id)を用いて参照される。
・video_parameter_set_idは、各VPSを識別するための識別子である。
・vide_reserved_three_2bitsは、将来の規格拡張用のシンタックスである。
・vps_max_layers_minus1は、少なくとも基本レイヤを含む階層符号化データに関して、時間スケーラビリティを除く、その他のスケーラビリティに関するレイヤの数の上限値MaxNumLayersを算出するために用いるシンタックスである。なお、レイヤ数の上限値MaxNumLayersは、MaxNumLayers = vps_max_num_sub_layers_minus1 + 1によって表わされる。階層符号化データが基本レイヤのみで構成される場合は、vps_max_num_sub_layers_minus1 = 0となる。
・vps_max_sub_layer_minus1は、少なくとも基本レイヤを含む階層符号化データの時間スケーラビリティに関するレイヤ(サブレイヤ)の数の上限値MaxNumSubLayersを算出するために用いるシンタックスである。なお、サブレイヤ数の上限値MaxNumSubLayersは、MaxNumSubLayers = vps_max_sub_layers_minus1 + 1 によって表わされる。
・vps_temporal_id_nesting_flagは、当該VPSを参照するピクチャにおけるインター予測に関して、追加の制約をするか否かを表わすフラグである。
・vps_extension_offsetは、VPSを含むNALユニットの先頭位置から、VPS拡張データvps_extension()内のシンタックスavc_base_flagまでのバイトオフセット値を表わす。
・profile_tier_level(X,Y)は、階層符号化データに関するプロファイル情報、及びレベル情報を表わすシンタックス(以降、PTL情報とも称する)である。なお、引数Xは、プロファイル情報有無フラグProfilePresentFlagの値であり、引数Yは、サブレイヤ数の上限値-1の値、すなわちMaxNumSubLayersMinus1である。なお、引数Yは、サブレイヤ数の上限値-1の値MaxNumSubLayersMinus1の代わりに、MaxNumSubLayersの値としてもよい。その場合、PTL情報profile_tier_level()上におけるMaxNumSubLayersMinus1を、”MaxNumSubLayers-1”と解釈する。以降では、サブレイヤ数の上限値―1の値MaxNumSubLayersMinus1の代わり、サブレイヤ数の上限値MaxNumSubLayersを用いて説明する。なお、プロファイル/レベル情報profile_tier_level()に関しては、後述する。なお、ここで規定されるプロファイル/レベル情報には、デコーダが、レイヤセット0(基本レイヤ)を復号するのに必要とする最大のプロファイル、レベル情報が設定される。なお、レイヤセット0(基本レイヤ)を復号するのに必要とする最大のプロファイル、レベル情報の代わりに、レイヤセット0を、全レイヤ(基本レイヤおよび拡張レイヤ、各レイヤに付随するサブレイヤを含む)を復号するのに必要とする最大のプロファイル、レベル情報を設定してもよい。なお、VPSに含まれるプロファイル/レベル情報profile_tier_level()は、後述のPTL情報復号部1021において復号される。
・vps_max_layer_idは、CVS上の全てのNALユニットのレイヤID(nuh_layer_id)の最大値を表わすシンタックスである。
・vps_num_layers_sets_minus1は、ビットストリームに含まれる、“1以上のレイヤの集合を表わすレイヤセットの総数-1”を表わすシンタックスである。レイヤセット数MaxNumLayersSetsは、vps_num_layers_sets_minus1 + 1である。
・layer_id_included_flag[i][j]は、レイヤセットj(レイヤIDリスト)を構成するレイヤとして、レイヤID=jが含まれるか否かを表わすフラグである。
・vps_extension_flagは、VPSがさらにVPS拡張データvps_extension()を含むか否かを示すフラグである。
なお、本明細書中「XXであるか否かを示すフラグ」と記す場合、1をXXである場合、0をXXではない場合とし、論理否定、論理積などでは1を真、0を偽と扱う(以下同様)。但し、実際の装置や方法では真値、偽値として他の値を用いることもできる。
図56は、従来技術に係るVPS拡張の符号化データの構成を示す図である。一部シンタックス要素について意味を示すと、次の通りである。
・avc_base_layer_flagは、基本レイヤがH.264で符号化されたビットストリームであるか否かを示すフラグである。
・vps_vui_offsetは、VPSを含むNALユニットの先頭位置から、VPS拡張データvps_extension()内に含まれるVPS VUIデータvps_vui()内の先頭シンタックス(bit_rate_rate_flag(図56では不図示))までのバイトオフセット値を表わす。
・scalability_mask(図56では不図示)は、スケーラブルの種別を示す値である。スケーラブルマスクは、各ビットが各スケーラブル種別に対応する。ビット1は空間スケーラブル、ビット2は画質スケーラブル、ビット3はデプススケーラブル、ビット4はビュースケーラブルに対応する。各ビットが1である場合に対応するスケーラブル種別が有効であることを意味する。複数のビットが1であることも可能であり、例えばscalability_maskが12の場合は、ビット3とビット4が1であるから、デプススケーラブルとビュースケーラブルが有効である。すなわち、複数のビューとデプスを含む3Dスケーラブルを意味する。
・dimension_id_len_minus1(図56では不図示)は、スケーラブルの種別ごとに含まれる次元IDdimention_idの数num_dimensionsを示す。
num_dimensions=dimension_id_len_minus1[1]+1である。例えば、num_dimensionsは、スケーラブルの種別がデプスの場合2、ビューの場合には視点数が復号される。
・dimention_id(図56では不図示)は、スケーラブルの種別ごとのピクチャの種別を示す情報である。
・direct_dependency_flag[i][j](レイヤ依存フラグと称する)は、レイヤjが、対象レイヤiの直接参照レイヤ(依存レイヤ)であるかを示すフラグである。値が1の場合は、依存レイヤであること示し、0の場合は直接参照レイヤでないことを示す。すなわち、レイヤ依存フラグが1であれば、対象レイヤiは別のレイヤjを参照し、レイヤ依存フラグが0であれば対象レイヤiはレイヤjを参照しない。
・vps_number_layers_sets_minus1(図56上のSYNVPS0C)は、ビットストリームに含まれる、1以上のレイヤの集合を表わすレイヤセットの総数を表わすシンタックスであり、vps_num_layers_sets_minus1と同じ値である。
・vps_num_profile_teir_level_minus1(図56上のSYNVPS0D)は、“VPS上に含まれるPTL情報の総数-1”を表わすシンタックスである。VPS上のPTL情報数NumPTLは、“vps_num_profile_tier_level_minus1 + 1”である。なお、以降、VPS上に存在する1以上のPTL情報で構成されるPTL情報群をPTL情報リストと呼ぶ。
・vps_profile_present_flag[i](VPSプロファイル有無フラグ, (図56上のSYNVPS0E))は、PTL情報リスト上で、i番目のPTL情報のプロファイル情報の有無を示すフラグである。VPSプロファイル有無フラグが1であれば、プロファイル情報を示すシンタックス群が対象PTL情報profile_tier_level()内に存在することを示し、VPSプロファイル有無フラグが0であれば、プロファイル情報を示すシンタックス群が存在しないことを示す。
・profile_ref_minus1[i](参照PTL情報指定インデクス, (図56上のSYNVPS0F))は、上記VPSプロファイル有無フラグの値が0の場合、PTL情報リスト上のi番目のPTL情報のプロファイル情報が、PTL情報リスト上の(profile_ref_minus1[i] + 1)番目のPTL情報のプロファイル情報と同一であることを示すシンタックスである。なお、従来技術では、「参照PTL情報指定インデクス”profile_ref_minus1[i]+1”の値は、PTL情報リスト中の対象PTL情報の位置を示すインデクスi未満でなければならない」という制約がある。
・profile_teir_level(X,Y)(図56上のSYNVPS0G)は、PTL情報リスト中のi番目PTL情報である。なお、各PTL情報は、後述の各レイヤセット(レイヤセットi)に適用されるPTL情報を指定するPTL情報指定インデクス“profile_tier_level_idx [i]”により、各レイヤセットで参照される。PTL情報指定インデクス“profile_tier_level_idx [i]”により参照されるPTL情報は、レイヤセットiを構成すレイヤ、及び各レイヤに付随するサブレイヤを復号するのに必要とする最大のプロファイル、レベル情報が設定される。なお、VPSに含まれるプロファイル/レベル情報profile_tier_level()は、後述のPTL情報復号部X1021において復号される。
・profile_level_tier_idx[i](PTL情報指定インデクス)は、レイヤセットiに適用するPTL情報リスト上のPTL情報を指定するインデクスを表わすシンタックスである。
・direct_dependency_len_minus2(図56上のSYNVPS0I)は、レイヤ依存タイプの種類の総数を表わすシンタックスである。
・direct_dependency_type[i][j](レイヤ依存タイプ)は、対象レイヤiとレイヤj間の参照関係を示す。具体的には、レイヤ依存フラグdirect_dependency_flag[i][j]が1である場合、レイヤ依存タイプdirect_dependency_type[i][j]で、対象レイヤiに対する参照レイヤjのレイヤ依存タイプを示す。レイヤ依存タイプは、サンプル予測のみ、動き予測のみ、またはその両方を指定することができる。direct_dependency_type[i][j]の値とレイヤ依存タイプの値との関係を以下に示す。
direct_dependency_type[i][j] = 0 … サンプル予測および動き予測
direct_dependency_type[i][j] = 1 … 動き予測のみ
direct_dependency_type[i][j] = 2 … サンプル予測のみ。
図10は、符号化データ#1におけるデータの階層構造を示す図である。符号化データ#1は、例示的に、シーケンス、およびシーケンスを構成する複数のピクチャを含む。図10の(a)~(f)は、それぞれ、シーケンスSEQを既定するシーケンスレイヤ、ピクチャPICTを規定するピクチャレイヤ、スライスSを規定するスライスレイヤ、スライスデータを規定するスライスデータレイヤ、スライスデータに含まれる符号化ツリーユニットを規定する符号化ツリーレイヤ、符号化ツリーに含まれる符号化単位(Coding Unit;CU)を規定する符号化ユニットレイヤを示す図である。
(シーケンスレイヤ)
シーケンスレイヤでは、処理対象のシーケンスSEQ(以下、対象シーケンスとも称する)を復号するために画像復号装置1が参照するデータの集合が規定されている。シーケンスSEQは、図10の(a)に示すように、ビデオパラメータセット(Video Parameter Set)シーケンスパラメータセットSPS(Sequence Parameter Set)、ピクチャパラメータセットPPS(Picture Parameter Set)、ピクチャPICT、及び、付加拡張情報SEI(Supplemental Enhancement Information)を含んでいる。ここで#の後に示される値はレイヤIDを示す。図10では、#0と#1すなわちレイヤIDが0とレイヤIDが1の符号化データが存在する例を示すが、レイヤの種類およびレイヤの数はこれによらない。
ビデオパラメータセットVPSは、複数のレイヤから構成されている動画像において、複数の動画像に共通する符号化パラメータの集合および動画像に含まれる複数のレイヤおよび個々のレイヤに関連する符号化パラメータの集合が規定されている。
シーケンスパラメータセットSPSでは、対象シーケンスを復号するために画像復号装置1が参照する符号化パラメータの集合が規定されている。例えば、ピクチャの幅や高さが規定される。
ピクチャパラメータセットPPSでは、対象シーケンス内の各ピクチャを復号するために画像復号装置1が参照する符号化パラメータの集合が規定されている。例えば、ピクチャの復号に用いられる量子化幅の基準値(pic_init_qp_minus26)や重み付き予測の適用を示すフラグ(weighted_pred_flag)、スケーリングリスト(量子化マトリックス)が含まれる。なお、PPSは複数存在してもよい。その場合、対象シーケンス内の各ピクチャから複数のPPSの何れかを選択する。
(ピクチャレイヤ)
ピクチャレイヤでは、処理対象のピクチャPICT(以下、対象ピクチャとも称する)を復号するために画像復号装置1が参照するデータの集合が規定されている。ピクチャPICTは、図10の(b)に示すように、スライスS0~SNS-1を含んでいる(NSはピクチャPICTに含まれるスライスの総数)。
なお、以下、スライスS0~SNS-1のそれぞれを区別する必要が無い場合、符号の添え字を省略して記述することがある。また、以下に説明する符号化データ#1に含まれるデータであって、添え字を付している他のデータについても同様である。
(スライスレイヤ)
スライスレイヤでは、処理対象のスライスS(対象スライスとも称する)を復号するために画像復号装置1が参照するデータの集合が規定されている。スライスSは、図2の(c)に示すように、スライスヘッダSH、および、スライスデータSDATAを含んでいる。
スライスヘッダSHには、対象スライスの復号方法を決定するために画像復号装置1が参照する符号化パラメータ群が含まれる。スライスタイプを指定するスライスタイプ指定情報(slice_type)は、スライスヘッダSHに含まれる符号化パラメータの一例である。
スライスタイプ指定情報により指定可能なスライスタイプとしては、(1)符号化の際にイントラ予測のみを用いるIスライス、(2)符号化の際に単方向予測、または、イントラ予測を用いるPスライス、(3)符号化の際に単方向予測、双方向予測、または、イントラ予測を用いるBスライスなどが挙げられる。
なお、スライスヘッダSHには、上記シーケンスレイヤに含まれる、ピクチャパラメータセットPPSへの参照(pic_parameter_set_id)を含んでいても良い。
(スライスデータレイヤ)
スライスデータレイヤでは、処理対象のスライスデータSDATAを復号するために画像復号装置1が参照するデータの集合が規定されている。スライスデータSDATAは、図10の(d)に示すように、符号化ツリーユニット(CTU: Coded Tree Unit)を含んでいる。CTUは、スライスを構成する固定サイズ(例えば64×64)のブロックであり、最大符号化単位(LCU:Largest Cording Unit)と呼ぶこともある。
(符号化ツリーレイヤ)
符号化ツリーレイヤは、図10(e)に示すように、処理対象の符号化ツリーブロックを復号するために画像復号装置1が参照するデータの集合が規定されている。符号化ツリーユニットは、再帰的な4分木分割により分割される。再帰的な4分木分割により得られる木構造のノードのことを符号化ツリー(coding tree)と称する。4分木の中間ノードは、符号化4分木ツリー(CQT: Coded Quad Tree)であり、CTUは、最上位のCQTを含むものとして規定される。CQTは、分割フラグ(split_flag)を含み、split_flagが1の場合には、4つのCQTに分割される(4つのCQTを含む)。split_flagが0の場合には、CQTは末端ノードである符号化ユニット(CU:Coded Unit)を含む。符号化ユニットCUは符号化ツリーレイヤの末端ノードであり、このレイヤではこれ以上分割されない。符号化ユニットCUは、符号化処理の基本的な単位となる。
また、符号化ツリーユニットCTUのサイズ64×64画素の場合には、符号化ユニットのサイズは、64×64画素、32×32画素、16×16画素、および、8×8画素の何れかをとり得る。
(符号化ユニットレイヤ)
符号化ユニットレイヤは、図10の(f)に示すように、処理対象の符号化ユニットを復号するために画像復号装置1が参照するデータの集合が規定されている。具体的には、符号化ユニットは、CUヘッダCUH、予測ツリー、変換ツリー、CUヘッダCUFから構成される。CUヘッダCUHでは、符号化ユニットが、イントラ予測を用いるユニットであるか、インター予測を用いるユニットであるかなどが規定される。符号化ユニットは、予測ツリー(prediction tree;PT)および変換ツリー(transform tree;TT)のルートとなる。CUヘッダCUFは、予測ツリーと変換ツリーの間、もしくは、変換ツリーの後に含まれる。
予測ツリーは、符号化ユニットが1または複数の予測ブロックに分割され、各予測ブロックの位置とサイズとが規定される。別の表現でいえば、予測ブロックは、符号化ユニットを構成する1または複数の重複しない領域である。また、予測ツリーは、上述の分割により得られた1または複数の予測ブロックを含む。
予測処理は、この予測ブロックごとに行われる。以下、予測の単位である予測ブロックのことを、予測単位(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などがある。なお、2N×nUは、2N×2Nの符号化ユニットを上から順に2N×0.5Nと2N×1.5Nの2領域に分割することを示す。2N×nDは、2N×2Nの符号化ユニットを上から順に2N×1.5Nと2N×0.5Nの2領域に分割することを示す。nL×2Nは、2N×2Nの符号化ユニットを左から順に0.5N×2Nと1.5N×2Nの2領域に分割することを示す。nR×2Nは、2N×2Nの符号化ユニットを左から順に1.5N×2Nと0.5N×1.5Nの2領域に分割することを示す。分割数は1、2、4のいずれかであるため、CUに含まれるPUは1個から4個である。これらのPUを順にPU0、PU1、PU2、PU3と表現する。
また、変換ツリーにおいては、符号化ユニットが1または複数の変換ブロックに分割され、各変換ブロックの位置とサイズとが規定される。別の表現でいえば、変換ブロックは、符号化ユニットを構成する1または複数の重複しない領域のことである。また、変換ツリーは、上述の分割より得られた1または複数の変換ブロックを含む。
変換ツリーにおける分割には、符号化ユニットと同一のサイズの領域を変換ブロックとして割り付けるものと、上述したツリーブロックの分割と同様、再帰的な4分木分割によるものがある。
変換処理は、この変換ブロックごとに行われる。以下、変換の単位である変換ブロックのことを、変換単位(transform unit;TU)とも称する。
(予測パラメータ)
予測ユニットの予測画像は、予測ユニットに付随する予測パラメータによって導出される。予測パラメータには、イントラ予測の予測パラメータもしくはインター予測の予測パラメータがある。以下、インター予測の予測パラメータ(インター予測パラメータ)について説明する。インター予測パラメータは、予測リスト利用フラグ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)の場合が単予測に対応する。なお、予測リスト利用フラグの情報は、後述のインター予測識別子inter_pred_idcで表現することもできる。通常、後述の予測画像生成部、予測パラメータメモリでは、予測リスト利用フラグが用いれ、符号化データから、どの参照ピクチャリストが用いられるか否かの情報を復号する場合にはインター予測識別子inter_pred_idcが用いられる。
符号化データに含まれるインター予測パラメータを導出するためのシンタックス要素には、例えば、分割モードpart_mode、マージフラグmerge_flag、マージインデックスmerge_idx、インター予測識別子inter_pred_idc、参照ピクチャインデックスrefIdxLX、予測ベクトルインデックスmvp_LX_idx、差分ベクトルmvdLXがある。
(参照ピクチャリストの一例)
次に、参照ピクチャリストの一例について説明する。参照ピクチャリストとは、復号ピクチャバッファ12に記憶された参照ピクチャからなる列である。図11は、参照ピクチャリストの一例を示す概念図である。参照ピクチャリスト601において、左右に一列に配列された5個の長方形は、それぞれ参照ピクチャを示す。左端から右へ順に示されている符号、P1、P2、Q0、P3、P4は、それぞれの参照ピクチャを示す符号である。P1等のPとは、視点Pを示し、そしてQ0のQとは、レイヤPとは異なるレイヤQを示す。P及びQの添字は、ピクチャ順序番号POCを示す。refIdxLXの真下の下向きの矢印は、参照ピクチャインデックスrefIdxLXが、復号ピクチャバッファ12において参照ピクチャQ0を参照するインデックスであることを示す。
(参照ピクチャの例)
次に、ベクトルを導出する際に用いる参照ピクチャの例について説明する。図12は、参照ピクチャの例を示す概念図である。図12において、横軸は表示時刻を示し、縦軸はレイヤ数を示す。図示されている、縦2行、横3列(計6個)の長方形は、それぞれピクチャを示す。6個の長方形のうち、下行の左から2列目の長方形は復号対象のピクチャ(対象ピクチャ)を示し、残りの5個の長方形がそれぞれ参照ピクチャを示す。対象ピクチャから下向きの矢印で示される参照ピクチャQ2は対象ピクチャと同じ表示時刻であってレイヤが異なるピクチャである。対象ピクチャcurPic(P2)を基準とするレイヤ間予測においては、参照ピクチャQ2が用いられる。対象ピクチャから左向きの矢印で示される参照ピクチャP1は、対象ピクチャと同じレイヤであって、過去のピクチャである。対象ピクチャから右向きの矢印で示される参照ピクチャP3は、対象ピクチャと同じレイヤであって、未来のピクチャである。対象ピクチャを基準とする動き予測においては、参照ピクチャP1又はP3が用いられる。
(インター予測識別子と予測リスト利用フラグ)
インター予測識別子と、予測リスト利用フラグpredFlagL0、predFlagL1の関係は以下のように相互に変換可能である。そのため、インター予測パラメータとしては、予測リスト利用フラグを用いても良いし、インター予測識別子を用いてもよい。また、以下、予測リスト利用フラグを用いた判定は、インター予測識別子に置き替えても可能である。逆に、インター予測識別子を用いた判定は、予測リスト利用フラグに置き替えても可能である。
インター予測識別子 = (predFlagL1<<1) + predFlagL0
predFlagL0 =インター予測識別子 & 1
predFlagL1 =インター予測識別子 >> 1
ここで、>>は右シフト、<<は左シフトである。
(マージ予測とAMVP予測)
予測パラメータの復号(符号化)方法には、マージ予測(merge)モードとAMVP(Adaptive Motion Vector Prediction、適応動きベクトル予測)モードがある、マージフラグmerge_flagは、これらを識別するためのフラグである。マージ予測モードでも、AMVPモードでも、既に処理済みのブロックの予測パラメータを用いて、対象PUの予測パラメータが導出される。マージ予測モードは、予測リスト利用フラグpredFlagLX(インター予測識別子inter_pred_idc)、参照ピクチャインデックスrefIdxLX、ベクトルmvLXを符号化データに含めずに、既に導出した予測パラメータをそのまま用いるモードであり、AMVPモードは、インター予測識別子inter_pred_idc、参照ピクチャインデックスrefIdxLX、ベクトルmvLXを符号化データに含めるモードである。なおベクトルmvLXは、予測ベクトルを示す予測ベクトルインデックスmvp_LX_idxと差分ベクトル(mvdLX)として符号化される。
インター予測識別子inter_pred_idcは、参照ピクチャの種類および数を示すデータであり、Pred_L0、Pred_L1、Pred_Biの何れかの値をとる。Pred_L0、Pred_L1は、各々L0参照リスト、L1参照リストと呼ばれる参照ピクチャリストに記憶された参照ピクチャが用いられることを示し、共に1枚の参照ピクチャを用いること(単予測)を示す。L0参照リスト、L1参照リストを用いた予測を各々L0予測、L1予測と呼ぶ。Pred_Biは2枚の参照ピクチャを用いること(双予測)を示し、L0参照リストとL1参照リストに記憶された参照ピクチャの2つを用いることを示す。予測ベクトルインデックスmvp_LX_idxは予測ベクトルを示すインデックスであり、参照ピクチャインデックスrefIdxLXは、参照ピクチャリストに記憶された参照ピクチャを示すインデックスである。なお、LXは、L0予測とL1予測を区別しない場合に用いられる記述方法であり、LXをL0、L1に置き換えることでL0参照リストに対するパラメータとL1参照リストに対するパラメータを区別するする。例えば、refIdxL0はL0予測に用いる参照ピクチャインデックス、refIdxL1はL1予測に用いる参照ピクチャインデックス、refIdx(refIdxLX)は、refIdxL0とrefIdxL1を区別しない場合に用いられる表記である。
マージインデックスmerge_idxは、処理が完了したブロックから導出される予測パラメータ候補(マージ候補)のうち、いずれかの予測パラメータを復号対象ブロックの予測パラメータとして用いるかを示すインデックスである。
(動きベクトルと変位ベクトル)
ベクトルmvLXには、動きベクトルと変位ベクトル(disparity vector、視差ベクトル)がある。動きベクトルとは、あるレイヤのある表示時刻でのピクチャにおけるブロックの位置と、異なる表示時刻(例えば、隣接する離散時刻)における同一のレイヤのピクチャにおける対応するブロックの位置との間の位置のずれを示すベクトルである。変位ベクトルとは、あるレイヤのある表示時刻でのピクチャにおけるブロックの位置と、同一の表示時刻における異なるレイヤのピクチャにおける対応するブロックの位置との間の位置のずれを示すベクトルである。異なるレイヤのピクチャとしては、同一解像度で品質が異なるピクチャである場合、異なる視点のピクチャである場合、もしくは、異なる解像度のピクチャである場合などがある。特に、異なる視点のピクチャに対応する変位ベクトルを視差ベクトルと呼ぶ。以下の説明では、動きベクトルと変位ベクトルを区別しない場合には、単にベクトルmvLXと呼ぶ。ベクトルmvLXに関する予測ベクトル、差分ベクトルを、それぞれ予測ベクトルmvpLX、差分ベクトルmvdLXと呼ぶ。ベクトルmvLXおよび差分ベクトルmvdLXが、動きベクトルであるか、変位ベクトルであるかは、ベクトルに付随する参照ピクチャインデックスrefIdxLXを用いて行われる。
(画像復号装置の構成)
本実施形態に係る画像復号装置1の構成について説明する。図44は、画像復号装置の概略的な構成を示す図であり、図13は、本実施形態に係る画像復号装置1の構成を示す図である。画像復号装置1は、ヘッダ復号部10、ピクチャ復号部11、復号ピクチャバッファ12、参照ピクチャ管理部13を含んで構成される。画像復号装置1は、複数のレイヤを含む画像において特定の時刻のピクチャから復号を開始する後述するランダムアクセス復号処理が可能である。
[ヘッダ復号部10]
ヘッダ復号部10は、画像符号化装置2より供給される符号化データ#1から、NALユニット単位、シーケンス単位、ピクチャ単位、またはスライス単位で復号に利用される情報を復号する。復号された情報は、ピクチャ復号部11及び参照ピクチャ管理部13に出力される。
ヘッダ復号部10は、符号化データ#1に含まれるVPS、SPS、PPSを既定のシンタックス定義に基づいてパースして、シーケンス単位で復号に利用される情報を復号する。例えば、レイヤ数に関する情報がVPSから復号される。レプリゼンテーション情報がVPSに存在する場合には、復号画像の画像サイズに関連する情報がVPSから復号され、レプリゼンテーション情報がSPSに存在する場合には、復号画像の画像サイズに関連する情報はSPSから復号される。
また、ヘッダ復号部10は、符号化データ#1に含まれるスライスヘッダを既定のシンタックス定義に基づいてパースして、スライス単位で復号に利用される情報を復号する。例えば、スライスタイプがスライスヘッダから復号される。
図14に示すようにヘッダ復号部10は、ヘッダ復号部は、NALユニットヘッダ復号部101、VPS復号部102、SPS復号部103、PPS復号部104、スライスヘッダ復号部105、及びパラメータメモリ(不図示)等を備える。
図15は、NALユニットヘッダ復号部101の概略的構成について示した機能ブロック図である。図15に示すように、NALユニットヘッダ復号部101はレイヤID復号部1011とNALユニットタイプ復号部1012を含んで構成される。
レイヤID復号部1011は、符号化データからレイヤIDを復号する。NALユニットタイプ復号部1012は、符号化データからNALユニットタイプを復号する。レイヤIDは、例えば0から63の6ビットの情報であり、レイヤIDが0の場合、ベースレイヤを示す。NALユニットタイプは、例えば0から63の6ビットの情報であり、NALユニットに含まれるデータの種別を示す。後述するようにデータの種別には、例えば、VPS、SPS、PPSなどのパラメータセット、IDRピクチャ、CRAピクチャ、LBAピクチャなどのRPSピクチャ、LPピクチャなどの非RPSピクチャ、SEIなどがNALユニットタイプから識別される。
VPS復号部102は、符号化データ#1に含まれるVPSを規定のシンタックス定義に基づいてパースして、レイヤ単位で利用される情報を復号する。なお、VPS復号部102の詳細については、後述する。
SPS復号部103は、符号化データ#1に含まれるSPSを規定のシンタックス定義に基づいてパースして、シーケンス単位で利用される情報を復号する。
PPS復号部104は、符号化データ#1に含まれるPPSを規定のシンタックス定義に基づいてパースして、ピクチャ単位で利用される情報を復号する。
スライスヘッダ復号部105は、符号化データ#1に含まれるスライスヘッダを規定のシンタクス定義に基づいてパースして、スライス単位で復号に利用される情報を復号する。
以下では、図16~図22を参照し、本発明の実施例1に係るVPS復号部102について説明する。
[VPS復号部102]
図16は、VPS復号部102の概略的構成について示した機能ブロック図である。図16に示すように、VPS復号部102は、さらに、プロファイルレベル情報復号部(PTL情報復号部)1021、参照PTL指定情報復号部1022、プロファイル有無フラグ復号部1023を含んで構成される。
<VPSの詳細な復号プロセス>
以下、図17を参照しながら、VPS復号部102の動作について説明する。
(ステップSA101)VPS復号部102は、図7上のシンタックス群SYNVPS01を復号する。
(ステップSA102)VPS復号部102に含まれるPTL情報復号部1021が、図7上のSYNVPS02に示すレイヤセット0のPTL情報を復号する。なお、復号されたPTL情報は、パラメータメモリへ供給され記憶される。
(ステップSA103)VPS復号部102は、図7上のシンタックス群SYNVPS03から各レイヤセットを構成するレイヤIDを復号する。
(ステップSA104)VPS復号部102は、図7上のVPS拡張フラグvps_extension_flag(図7上のSYNVPS04)を復号する。
(ステップSA105)VPS拡張フラグが1の場合(ステップSA105でYES)、VPS拡張データがVPS上にあると判定し、ステップSA106へ進む。VPS拡張フラグが0の場合(ステップSA105でNo)、VPS拡張データがVPS上にないと判定し、ステップSA109へ進む。
(ステップSA106)VPS拡張フラグの次ビットからVPS拡張データに含まれるavc_base_flagの直前まで挿入されているバイトアラインデータ(vps_extension_aligment_bit_equal_to_one)(図7上のシンタックス群SYNVPS05)を復号する。
(ステップSA107)VPS拡張データvps_extension()を復号する。なお、VPS拡張データの詳細の復号プロセスについては後述する。
(ステップSA108)VPS復号部102は、図7上のSYNVPS07に示すVPS拡張2フラグvps_extension2_flagを復号する。VPS拡張2フラグが1であれば、さらにVPS拡張2データを復号する。
(ステップSA109)VPS復号部102は、図7上のSYNVPS08に示すRBSP_traling_bits()を復号する。RBSP_trailing_bits()とは、バイトアラインデータである。なお、バイトアラインデータは、スタッフィングデータとも呼ばれる。
<VPS拡張データの詳細な復号プロセス>
図18を参照しながら、VPS拡張データの復号プロセスについて説明する。
(ステップSB101)VPS復号部102は、図8上のシンタックス群SYNVPS0Aを復号する。
(ステップSB102)VPS復号部102は、図8上のシンタックス群SYNVPS0Bより、各レイヤが参照する依存レイヤ(直接参照レイヤ、従属レイヤともいう)に関する依存フラグを復号する。
(ステップSB103)VPS復号部102は、レイヤセット数(図8上のシンタックスSYNVPS0C)を復号する。
(ステップSB104)VPS復号部102は、VPS上に含まれるPTL情報の総数(図8上のSYNVPS0D)を復号する。
(ステップSB105)VPS上に含まれるPTL情報の復号プロセスのループ開始点である。
(ステップSB106)VPS復号部102に含まれるプロファイル有無フラグ復号部1023は、i番目のPTL情報profile_tier_level()上に、プロファイル情報を示すシンタックス群の有無を示すプロファイル有無フラグ(図8上のシンタックスSYNVPS0E)を復号する。
(ステップSB107)プロファイル有無フラグが0の場合は、i番目のPTL情報上にプロファイル情報を示すシンタックス群がないと判定し、ステップSB108へ進む。プロファイル有無フラグが1の場合は、i番目のPTL情報上にプロファイル情報を示すシンタックス群がある判定し、ステップSB109へ進む。
(ステップSB108)プロファイル有無フラグが0の場合、VPS復号部102に含まれる参照PTL指定情報復号部1022は、i番目のPTL情報のプロファイル情報をPTL情報リスト上のいずれのPTL情報から参照するかを示す参照PTL情報指定インデクス(参照プロファイルレベル情報相対インデクス、参照PTL指定情報ともいう)”profile_ref_delta_index_minus1[i]”(図8上のSYNVPS0Fa)を復号する。参照PTL情報指定インデクス“profile_ref_delta_index_minus1[i]”は、i番目のPTL情報と参照先PTL情報の相対インデクスを表わす。すなわち、i番目のPTL情報は、j = (i - profile_ref_delta_minus1[i] +1 )で特定される、j番目のPTL情報をプロファイル情報の参照先とする。なお、予めエンコーダ側で、PTL情報リスト上のPTL情報を、類似順に並び替えておくことで、i番目のPTL情報は、直前のPTL情報を参照する確率を高めることができる。従って、参照PTL指定インデクス” profile_ref_delta_index_minus1[i]”は相対インデクスを、例えば、図19に示すように、ゴロム符号で表わすことにより、参照PTL指定インデクスを表現するために必要なビット長を従来に比べて削減することが可能である。図19(a)は、ゴロム符号とシンタクス値の対応表を表わし、図19(b)は、“prefix“と”suffix”で構成されるゴロム符号の各ビット長により表現できる値との対応関係を表わす。
換言すれば、プロファイル/レベル情報復号部は、上記プロファイル/レベル情報におけるi番目の参照PTL情報指定インデクスのセマンティックを、当該i番目の参照PTL情報指定インデクスが、i番目のプロファイル/レベル情報と参照されるプロファイル/レベル情報との間の相対的な位置を指定するものとして取り扱う。
例えば、参照PTL指定インデクス“profile_ref_delta_minus1[i]”の値が0、すなわち、i番目のPTL情報のひとつ前(i-1)番目のPTL情報を参照する場合、図19に示すゴロム符号を用いることにより、参照PTL指定インデクスを表現するのに必要なビット長は1ビットとなる。これにより、従来技術に比べて、参照PTL情報指定インデクスを固定長で表わす場合に比べて、符号量を削減することができる。また、PTL情報リスト上の先頭PTL情報(0番目)を参照することができるため、対象PTL情報が1番目のときに、参照PTL情報指定インデックスが機能しない欠点を解消することができる。なお、参照PTL指定インデクス“profile_ref_delta_minus1[i]”をゴロム符号の代わりに、k次指数ゴロム符号(k-th order Exponential Golomb: EGk(K>=0))により復号してもよく、同様の効果を奏する。また、図19に示すゴロム符号は、0次指数ゴロム符号とも呼ばれる。
また、PTL情報リスト上の先頭PTL情報(0番目)を参照することを禁止する場合は、対象PTL情報が1番目のときに、プロファイル有無フラグを必ず1と設定し、明示的に、1番目のPTL情報のプロファイル情報を必ず符号化データ内に含むよう、デコーダとエンコーダ間で予め取り決めておいてもよい(ビットストリーム制約ともいう)。これにより、対象PTL情報が1番目のときに、参照PTL情報指定インデックスが機能しない欠点を同様に解消することができる。
(ステップSB109)VPS復号部102に含まれるPTL情報復号部1021は、プロファイル有無フラグ、参照PTL指定インデクス、サブレイヤ数を入力として、i番目のPTL情報のプロファイル、及びレベル情報を復号する。PTL情報復号部1021の詳細については後述する。
(ステップSB110)VPS上に含まれるPTL情報の復号プロセスのループ終端である。
(ステップSB111)VPS復号部102は、各出力レイヤセットに適用するPTL情報を指定するPTL情報指定インデクス(図8上のシンタックス群SYNVPS0H上のprofile_level_tier_idx[i])を復号する。
(ステップSB112)VPS復号部102は、図8上のシンタックス群SYNVPS0Iから各レイヤの従属レイヤタイプを復号する。図8上のシンタックス群SYNVPS0Iのうち、”direct_dep_type_len_minus2”は、従属レイヤタイプ(direct_dependency_type[i][j])のビット長(direct_dep_type_len_minus2 + 2)を表わし、図8上のシンタックスSYNVPS0Iのうち、従属レイヤタイプ(direct_dependency_tipe[i][j])は、各レイヤと従属レイヤの依存タイプの種類を表わす。
(ステップSB111)VPS復号部102は、図8上のその他シンタックス群SYNVPS0Jを復号する。
<PTL情報復号部1011の詳細>
次に、実施例1に係るPTL情報復号部1021の詳細について、図20、図21を用いて説明する。
図20は、PTL情報復号部1021の構成について例示した機能ブロック図である。図20に示すように、PTL情報(プロファイル/レベル情報)復号部1021は、プロファイル情報復号部1021a、レベル情報復号部1021b、サブレイヤプロファイル有無フラグ復号部1021c、サブレイヤレベル有無フラグ復号部1021d、バイトアラインデータ復号部1021e、および参照プロファイルレベル選択部1021fを備える。
[プロファイル情報復号部1021a]
プロファイル情報復号部1021aは、プロファイル有無フラグprofilePresentFlagに基づいて、符号化データDATA#Tより復号対象PTL情報のプロファイル情報(最高次サブレイヤのプロファイル情報、あるいは汎用プロファイル情報とも呼ぶ)を復号し出力する。具体的には、プロファイル有無フラグprofilePresentFlagが1の場合、復号対象PTL情報のプロファイル情報を符号化データDATA#Tより復号する。プロファイル有無フラグprofilePresentFlagが0の場合、復号対象PTL情報のプロファイル情報が、参照PTL指定情報により指定されるPTL情報のプロファイル情報と等しいと判断し、参照PTL指定情報により指定される復号済PTL情報をパラメータメモリ(不図示)より読み出し、該プロファイル情報を、復号対象PTL情報のプロファイル情報として出力する。なお、VPSの先頭に位置する0番目のPTL情報、及び基本レイヤにおけるSPSにおいては、必ずプロファイル情報が符号化側においてシグナルされる。
また、プロファイル情報復号部1021aは、プロファイル有無フラグprofilePresentFlag、サブレイヤ数MaxNumSubLayers、参照PTL指定情報、及びサブレイヤプロファイル有無フラグ復号部1021cより供給される各サブレイヤのサブレイヤプロファイル有無フラグsub_layer_profile_present_flag[i]に基づいて、符号化データDATA#Tより、最高次サブレイヤを除く、復号対象PTL情報の各サブレイヤのサブレイヤプロファイル情報を復号し出力する。
(プロファイル有無フラグが1の場合のサブレイヤプロファイル復号)
復号対象PTL情報のプロファイル有無フラグが1の場合、プロファイル情報復号部1021aは、以下の動作により、サブレイヤプロファイルを復号する。復号対象PTL情報中のサブレイヤi(temporalId=i+1)のサブレイヤプロファイル有無フラグが1の場合、該サブレイヤiのプロファイル情報が符号化データDATA#T内に存在すると判断し、符号化データDATA#Tよりサブレイヤiのサブレイヤプロファイル情報を復号する。それ以外の場合は、サブレイヤiのサブレイヤプロファイル情報に所定のプロファイル情報を設定する。サブレイヤiが最高次サブレイヤ(i=MaxNumSubLayers-1)の場合には、汎用プロファイルをサブレイヤiのプロファイル情報として設定し、それ以外の場合には、復号対象PTL情報のサブレイヤ(i+1)のプロファイル情報をサブレイヤiのプロファイル情報として設定する。サブレイヤのプロファイル情報の設定ルールを疑似コードで表せば、以下の通りである(図62(FIG_INFER_RULE)(a)参照)。
for(i=MaxNumSubLayers-1; i>=0; i--){
if( sub_layer_profile_present_flag[i]==0 ){
if( i== MaxNumSubLayers-1 ){
The i-th sub-layer profile information is set to be equal to
the general level information of the current profile_tier_level();
} else {// i<MaxNumSubLayers-1
The i-th sub-layer profile information is set to be equal to
the (i+1)-th sub-layer profile information of
the current profile_tier_level();
}
}
(プロファイル有無フラグが0の場合のサブレイヤプロファイル復号)
復号対象PTL情報のプロファイル有無フラグが0の場合、プロファイル情報復号部1021aは、以下の動作により、サブレイヤプロファイルを復号する。サブレイヤi(temporalId=i+1)のサブレイヤプロファイル有無フラグが1の場合、該サブレイヤiのプロファイル情報が符号化データDATA#T内に存在すると判断し、符号化データDATA#Tよりサブレイヤiのサブレイヤプロファイル情報を復号する。それ以外の場合は、サブレイヤiのサブレイヤプロファイル情報に、参照PTL指定情報で指定される復号済PTL情報の対応するサブレイヤのプロファイル情報をサブレイヤiのプロファイル情報として設定する。サブレイヤのプロファイル情報の設定ルールを疑似コードで表せば、以下の通りである(図62(FIG_INFER_RULE)(b)参照)。なお、ここで、ProfileRefIdxとは、参照PTL指定情報であり、本実施例であれば、ProfileRefIdx = (profile_ref_delta_minus1 + 1)である。すなわち、PTL情報リスト上のProfileRefIdx番目のPTL情報を参照する。
for(i=MaxNumSubLayers-1; i>=0; i--){
if( sub_layer_profile_present_flag[i]==0 ){
i-th sub_layer_profile information is set to be equal to i-th sub_layer_profile information of the (ProfileRefIdx)-th profile_tier_level();
}
}
なお、プロファイル有無フラグが0の場合は、サブレイヤ有無フラグの値も0として、符号化/復号するように、予め画像復号装置と画像符号化装置側で取り決めておいてもよい。
[レベル情報復号部1021b]
レベル情報復号部1021bは、符号化データDATA#Tより復号対象PTL情報のレベル情報(最高次サブレイヤのレベル情報、あるいは汎用レベル情報とも呼ぶ)を復号し出力する。また、レベル情報復号部1021bは、サブレイヤ数MaxNumSubLayers、及びサブレイヤレベル有無フラグ復号部1021dより供給される各サブレイヤのサブレイヤレベル有無フラグsub_layer_level_present_flag[i]に基づいて、符号化データDATA#Tより、最高次サブレイヤを除く、復号対象PTL情報の各サブレイヤのサブレイヤレベル情報を復号し出力する。
具体的には、サブレイヤi(temporalId=i+1)のサブレイヤレベル有無フラグsub_layer_level_present_flag[i]が1の場合、該サブレイヤiのレベル情報が符号化データ#T内に存在すると判断し、符号化データDATA#Tよりサブレイヤiのサブレイヤレベル情報を復号し出力する。それ以外の場合(サブレイヤレベル有無フラグsub_layer_level_present_flag[i]が0)、サブレイヤiのサブレイヤレベル情報に所定のレベル情報を設定する。例えば、復号対象PTL情報のサブレイヤ(i+1)のレベル情報をサブレイヤiのレベル情報として設定する。すなわち、最高次サブレイヤ(temporalId=highestTid)より1つ下のサブレイヤi(temporalId=highestTid-1、すなわち、temporalId=MaxNumSubLayers-2)は、最高次サブレイヤのレベル情報(汎用レベル情報)が設定され、それ以外のサブレイヤiは、1つ上のサブレイヤ(i+1)のサブレイヤレベル情報が設定される。サブレイヤのレベル情報の設定ルールを疑似コードで表せば、以下の通りである(図63(FIG_INFER_RULE)(a)参照)。
for(i=MaxNumSubLayers-1; i>=0; i--){
if( sub_layer_profile_present_flag[i]==0 ){
i-th sub_layer_profile information is set to be equal to (i+1)-th sub_layer_profile information;
}
}
また、図63(b)の疑似コードでも表現できる。
for(i=MaxNumSubLayers-1; i>=0; i--){
if( sub_layer_level_present_flag[i]==0 ){
sub_layer_level_idc[i] = (i==MaxNumSubLayers-1) ?
general_level_idc : sub_layer_level_idc[i+1];
}
}
[サブレイヤプロファイル有無フラグ復号部1021c]
サブレイヤプロファイル有無フラグ復号部1021cは、サブレイヤ数MaxNumSubLayersに基づいて、符号化データDATA#Tより復号対象PTL情報の各サブレイヤのサブレイヤプロファイル有無フラグを復号し、プロファイル情報復号部1021a、および外部へ出力する。
[サブレイヤレベル有無フラグ復号部1021d]
サブレイヤレベル有無フラグ復号部1021dは、サブレイヤ数MaxNumSubLayersに基づいて、符号化データDATA#Tより復号対象PTL情報の各サブレイヤのサブレイヤレベル有無フラグを復号し、レベル情報復号部1021b、および外部へ出力する。
[バイトアラインデータ復号部1021e]
バイトアラインデータ復号部1021eは、サブレイヤ数(MaxNumSbuLayersMinus1,またはMaxNumSubLayers-1)に基づいて定まるビット数分のバイトアラインデータ(reserved_zero_2bits[i])(図9上のシンタックスSYNPTL04)を2bit単位で符号化データから読み出す(復号する)。バイトアラインデータとして、読み出す(復号する)べきビット数は、図9上のシンタックスSYNVPSPTL04から明らかなように、”(8 - MaxNumSubLayersMinus1) * 2 bits”である。
[参照プロファイルレベル選択部1021f]
参照プロファイルレベル選択部1021fは、パラメータメモリ(不図示)から参照PTL指定情報により指定される復号済みPTL情報を読み出す。
(プロファイル/レベル情報profile_tier_level()の復号処理の流れ)
図21は、PTL情報profile_tier_level()の復号処理を示すフロー図である。以下、プロファイル/レベル情報復号部1021の動作について説明する。
(ステップSC101)プロファイル情報復号部1021aは、プロファイル有無フラグprofilePresentFlagが1であるか判別する。プロファイル有無フラグprofilePresentFlagが1の場合(ステップSC101においてYes)の場合、ステップSC102へ進み、それ以外の場合(ステップSC101においてNo)の場合、ステップSC103へ進む。
(ステップSC102)プロファイル情報復号部1021aは、符号化データDATA#Tから、例えば、図9上のシンタックス群SYNPTL01、
・プロファイル空間general_profile_space
・ティアフラグgeneral_tier_flag
・プロファイル識別子general_profile_idc
・プロファイル互換フラグgeneral_profile_compatibility_flag[ i ]
…省略…
・プロファイル予約シンタックスgeneral_reserved_zero_44bits
等を復号し、復号対象PTL情報のプロファイル情報として出力する。
(ステップSC103)
プロファイル情報復号部1021aは、復号対象PTL情報のプロファイル情報が、参照PTL指定情報により指定される復号済PTL情報のプロファイル情報と等しいと判断し、参照PTL指定情報により指定される復号済PTL情報をパラメータメモリ(不図示)より読み出し、該プロファイル情報を、復号対象PTL情報のプロファイル情報として設定し出力する。
(ステップSC104)
レベル情報復号部1021は、符号化データDATA#Tから、以下のシンタックス、・レベル識別子general_level_idc
を復号し、復号対象PTL情報のレベル情報として出力する。
(ステップSC105)
サブレイヤのサブレイヤプロファイル有無フラグ、およびサブレイヤレベル有無フラグの復号に関するループの開始である。ループの開始前に、変数iは0に初期化される。ループ内の処理は、変数iがサブレイヤ数-1、“MaxNumSubLayers - 1”未満のときに実行され、ループ内の処理が1回実行される度に、変数iは“1”増分される。すなわち、ステップSC105~ステップSC107では、最高次サブレイヤを除く、サブレイヤのサブレイヤプロファイル有無フラグ、及びサブレイヤレベル有無フラグが復号される。
(ステップSC106)
サブレイヤプロファイル有無フラグ復号部1021cは、符号化データDATA#Tから、変数iで指定されるサブレイヤに関するサブレイヤプロファイル有無フラグsub_layer_profile_present_flag[i]を復号し出力する。
サブレイヤレベル有無フラグ復号部1021dは、符号化データDATA#Tから、変数iで指定されるサブレイヤに関するサブレイヤレベル有無フラグsub_layer_level_present_flag[i]を復号し出力する。
(ステップSC107)
サブレイヤのサブレイヤプロファイル有無フラグ、およびサブレイヤレベル有無フラグの復号に関するループの終端である。
(ステップSC108)
バイトアラインデータ復号部1021eは、サブレイヤ数(MaxNumSbuLayersMinus1,またはMaxNumSubLayers-1)に基づいて定まるビット数分のバイトアラインデータ(reserved_zero_2bits[i])(図9上のシンタックスSYNPTL04)を2bit単位で符号化データから読み出す(復号する)。
具体的には、ステップSC105~ステップSC107において、サブレイヤ毎に復号されるサブレイヤプロファイル有無フラグとサブレイヤレベル有無フラグの符号量は各1ビット、計2ビットであり、サブレイヤ数はMaxNumSubLayersであるため、ステップSC105~ステップSC107で復号される符号量の総和は、2 * (MaxNumSubLayer - 1)である。従って、バイトアラインデータとして、読み出す(復号する)べきビット数は、”(8 - MaxNumSubLayersMinus1) * 2 bits”である。
(ステップSC109)
サブレイヤのサブレイヤプロファイル情報、およびサブレイヤレベル情報の復号に関するループの開始点である。ループの開始前に、変数iは0に初期化される。ループ内の処理は、変数iがサブレイヤ数-1、“MaxNumSubLayers - 1”未満のときに実行され、ループ内の処理が1回実行される度に、変数iは”1”増分される。
(ステップSC110)
プロファイル情報復号部1021aは、変数iで指定されるサブレイヤのサブレイヤプロファイル有無フラグsub_layer_profile_present_flag[i]が1であるかを判定する。サブレイヤプロファイル有無フラグが1の場合(ステップSC110においてYes)、ステップSC111へ進み、それ以外の場合(ステップSC110においてNo)、ステップSC112へ進む。
(ステップSC111)
プロファイル情報復号部1021aは、符号化データDATA#Tより、変数iで指定されるサブレイヤのサブレイヤプロファイル情報として、例えば、図9上のシンタックス群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 ]
を復号し出力する。
(ステップSC112)
プロファイル情報復号部1021aは、サブレイヤiのサブレイヤプロファイル情報に所定のプロファイル情報を設定する。例えば、図62(a)に示すように、プロファイル有無フラグprofilePresentFlagが1の場合、復号対象PTL情報のサブレイヤ(i+1)のプロファイル情報をサブレイヤiのプロファイル情報として設定し出力する。図62(b)に示すように、プロファイル有無フラグprofilePresentFlagが0の場合、参照PTL指定情報で指定される復号済PTL情報の対応するサブレイヤのプロファイル情報をサブレイヤiのプロファイル情報として設定し出力する。
(ステップSC113)
レベル情報復号部1021bは、変数iで指定されるサブレイヤのサブレイヤレベル有無フラグsub_layer_level_present_flag[i]が1であるか判定する。サブレイヤレベル有無フラグが1の場合(ステップSC113においてYes)、ステップSCA114へ進み、それ以外の場合(ステップSC113においてNo)、ステップSC115へ進む。
(ステップSC114)
レベル情報復号部1021bは、符号化データDATA#Tより、変数iで指定されるサブレイヤのサブレイヤレベル情報として、
・サブレイヤレベル識別子sub_layer_level_idc[ i ]
を復号し出力する。
(ステップSC115)
レベル情報復号部1021bは、サブレイヤiのサブレイヤレベル情報に所定のレベル情報を設定する。例えば、図63に示すように、復号対象PTL情報のサブレイヤ(i+1)のレベル情報をサブレイヤiのレベル情報として設定し出力する。
(ステップSC116)
サブレイヤのサブレイヤプロファイル情報、およびサブレイヤレベル情報の復号に関するループの終端である。
以上、実施例1に係るプロファイル/レベル情報復号部1011の動作について説明したが、上記ステップに限定されず、実施可能な範囲で、ステップを変更しても構わない。
なお、PTL情報のうち拡張用シンタックス”general_reserved_zero_44bits”のうち、先頭4bit(各シンタックスは、1bit)を下記のようにRange Extension用拡張シンタックスを割り当て、残りの40bitの拡張用シンタックスを”general_reserved_40btis”へ変更してもよい。
・general_max_12bit_constraint_flag
・general_max_10bit_constraint_flag、
・general_max_422chroma_constraint_flag、
・general_max_420chroma_constraint_flag
同様に、テンポラルID = i +1(i=0…maxNumSubLayersMinus1)の各サブレイヤの拡張用シンタックスsub_layer_reserved_zero_44bits[i]のうち、先頭4bit(各シンタックスは、1bit)を下記のようにRange Extension用拡張シンタックスを割り当て、残りの40bitの拡張用シンタックスを”sub_layer_reserved_zero_40bits[i]”へ変更してもよい。
・sub_max_12bit_constraint_flag[i]
・sub_max_10bit_constraint_flag[i]
・sub_max_422chroma_constraint_flag[i]
・sub_max_420chroma_constraint_flag[i]
(実施例1の変形例)
図22を参照しながら、VPS復号部102の変形例について説明する。なお、参照PTL情報指定インデクス(図22上のシンタックスSYNVPS0Fb )を除き、VPS復号部102の動作は、実施例1と同一であるため、説明を省略する。
実施例1では、参照PTL情報指定インデクスをPTL情報リスト上の対象PTL情報の位置と参照先のPTL情報の相対インデクス(profile_ref_delta_index_minus1[i])をゴロム符号により復号していたが、これに限定されない。例えば、相対インデックスの代わりに、PTL情報リスト上の“profile_ref[i]”番目にあるPTL情報のプロファイル情報を参照するようにしてもよい。このとき、参照PTL情報指定インデクス”profile_ref[i]”を対象PTL情報のリスト上の位置を示すインデクスiに基づいて定まるビット長Vにより可変長復号する。ここでビット長Vは、ceil(log2(i) )により定まる。これにより、従来技術に比べて、参照PTL情報指定インデクスを固定長で表わす場合に比べて、符号量を削減することができる。また、PTL情報リスト上の先頭PLT情報(0番目)を参照することができるため、対象PTL情報が1番目のときに、参照PTL情報指定インデックスが機能しない欠点を解消することができる。
換言すれば、プロファイル/レベル情報復号部が復号する上記プロファイル/レベル情報において、1番目のプロファイル/レベル情報のプロファイルおよびティアの情報が、0番目のプロファイル/レベル情報に基づいて推定可能となるように、参照PTL情報指定インデクスが参照プロファイルに変更されている。
なお、PTL情報リスト上の先頭PTL情報(0番目)を参照することを禁止する場合は、対象PTL情報が1番目のときに、プロファイル有無フラグを必ず1と設定し、明示的に、1番目のPTL情報のプロファイル情報を必ず符号化データ内に含むよう、デコーダとエンコーダ間で予め取り決めておいてもよい(ビットストリーム制約ともいう)。これにより、対象PTL情報が1番目のときに、参照PTL情報指定インデックスが機能しない欠点を同様に解消することができる。
<<VPS復号部102の変形例2>>
次に、図23~図27を用いて、VPS復号部102の変形例2について説明する。
図23は、拡張ビデオパラメータセットVPSのシンタックステーブルの変形例である。図24は、VPS拡張データの復号プロセスを説明するためのフローチャートである。は、図25は、VPS復号部の概略的構成の変形例について示した機能ブロック図である。図26は、PTL情報復号部における処理の流れの変形例を示すフローチャートである。図27は、PTL情報復号部の詳細の変形例を示すブロック図である。
まず、変形例2に係る拡張ビデオパラメータセットVPSのシンタックステーブルについて図23を用いて説明する。図23と図8に示す拡張ビデオパラメータセットVPSのシンタックステーブルとの違いは、図23では、図8上のシンタックスSYNVPS0Faに示す参照PTL情報指定インデクス(profile_ref_delta_index_minus1[i])が削除され、参照PTL指定情報指定インデクスの機能を、図23上のシンタックスSYNVPS0Eに示すプロファイル有無フラグ(vps_profile_present_flag[i])が兼用する点である。すなわち、プロファイル有無フラグ(vps_profile_present_flag[i])の値が1の場合は、i番目のPTL情報のプロファイル情報が符号化データより復号される。一方、プロファイル有無フラグの値が0の場合は、i番目のPTL情報のプロファイル情報には、i番目のPTL情報の直前に復号された、(i-1)番目の復号済PTL情報のプロファイル情報が設定される(推定される)。
続いて、変形例2に係るVPS復号102’とVPS復号部102の構成の違いについて説明する。図25に示すVPS復号部102’は、VPS復号部102が備える参照PTL情報復号部1022を備えておらず、PTL情報復号部1021’の機能がPTL情報復号部1021と一部異なる。
より具体的には、図27に示すPTL情報復号部1021’の備えるプロファイル情報復号部1021a’、及び参照プロファイルレベル情報選択部1021f’の機能が一部異なる。PTL情報復号部1021’の備えるその他の構成要素(レベル情報復号部1021b’、サブレイヤ有無フラグ復号部1021c’、サブレイヤレベル情報復号部1021d’、及びバイトアラインデータ復号部1021e’)は、PTL情報復号部1021が備える同一符号の構成要素と同一であるため、説明を省略する。以下では、プロファイル情報復号部1021a’、及び参照プロファイルレベル情報選択部1021f’おいて、機能の異なる部分についてのみ説明する。
[プロファイル情報復号部1021a’]
プロファイル情報復号部1021a’は、プロファイル有無フラグprofilePresentFlagに基づいて、符号化データDATA#Tより、復号対象PTL情報のプロファイル情報(最高次サブレイヤのプロファイル情報、あるいは汎用プロファイル情報とも呼ぶ)を復号し出力する。具体的には、プロファイル有無フラグprofilePresentFlagが1の場合、復号対象PTL情報のプロファイル情報を符号化データDATA#Tより復号する。プロファイル有無フラグprofilePresentFlagが0の場合、復号対象PTL情報のプロファイル情報が、復号対象PTL情報の1つ前に復号された復号済PTL情報((i-1)番目のPTL情報)のプロファイル情報と等しいと判断し、(i-1)番目の復号済PTL情報をパラメータメモリ(不図示)より読み出し、該プロファイル情報を、復号対象PTL情報のプロファイル情報として出力する。
また、プロファイル情報復号部1021a’は、プロファイル有無フラグprofilePresentFlag、サブレイヤ数MaxNumSubLayers、及びサブレイヤプロファイル有無フラグ復号部1021cより供給される各サブレイヤのサブレイヤプロファイル有無フラグsub_layer_profile_present_flag[i]に基づいて、符号化データDATA#Tより、最高次サブレイヤを除く、復号対象PTL情報の各サブレイヤのサブレイヤプロファイル情報を復号し出力する。なお、プロファイル有無フラグが1の場合の、各サブレイヤのプロファイル情報の復号処理は、プロファイル情報復号部1021aと同一であるため、説明を省略する。また、プロファイル有無フラグが0場合の、各サブレイヤのプロファイル情報の処理は、図62(b)に示す疑似コードにおいて、参照PTL指定情報ProfileRefIdxの導出を以下に置き換えれば、同一である。すなわち、復号対象PTL情報のPTL情報リスト上の位置を示すインデクスidxとすれば、参照PTL指定情報ProfileRefIdx = (idx-1)と導出する。従って、PTL情報リスト上のProfileRefIdx (= idx-1 )番目の復号済PTL情報、すなわち、1つ前の復号済PTL情報を参照する。
(プロファイル/レベル情報profile_tier_level()の復号処理の流れ)
以下、図26を用いて、変形例2に係るプロファイル/レベル情報復号部1021’の動作について説明する。なお、プロファイル情報/レベル情報の復号処理は、図21のうち、動作が異なるステップSC103、SC112のみ説明する。それ以外のステップは共通のため説明を省略する。すなわち、以下の説明では、図21のステップSC103、SC112を、それぞれ、ステップSE103、SE112と読み替える。
(ステップSE103)
プロファイル情報復号部1021a’は、復号対象PTL情報のプロファイル情報が、PTL情報リスト上の復号対象PTL情報より1つ前の復号済PTL情報((i-1)番目のPTL情報)のプロファイル情報と等しいと判断し、該復号済PTL情報をパラメータメモリ(不図示)より読み出し、該プロファイル情報を、復号対象PTL情報のプロファイル情報として設定し出力する。
(ステップSE112)
プロファイル情報復号部1021a’は、サブレイヤiのサブレイヤプロファイル情報に所定のプロファイル情報を設定する。例えば、図62(a)に示すように、プロファイル有無フラグprofilePresentFlagが1の場合、復号対象PTL情報のサブレイヤ(i+1)のプロファイル情報をサブレイヤiのプロファイル情報として設定し出力する。図62(b)に示すように、プロファイル有無フラグprofilePresentFlagが0の場合、ProfileRefIdxで指定される復号済PTL情報の対応するサブレイヤのプロファイル情報をサブレイヤiのプロファイル情報として設定し出力する。なお、ProfileRefIdxは、復号対象PTL情報のPTL情報リスト上の位置を示すインデクスidxとすれば、ProfileRefIdx = (idx-1)である。すなわち、1つ前の復号済PTL情報を参照する。
以上、変形例2に係るプロファイル/レベル情報復号部1021’の動作について説明したが、上記ステップに限定されず、実施可能な範囲で、ステップを変更しても構わない。
以上のように、変形例2に係る拡張ビデオパラメータセットVPSのシンタックステーブルでは、図23のシンタックスSYNVPS0Faに示す参照PTL情報指定インデクス(profile_ref_delta_index_minus1[i])が削除され、参照PTL指定情報指定インデクスの機能を、図23上のシンタックスSYNVPS0Eに示すプロファイル有無フラグ(vps_profile_present_flag[i])が兼用している。すなわち、プロファイル有無フラグ(vps_profile_present_flag[i])の値が1の場合は、i番目のPTL情報のプロファイル情報が符号化データより復号される。一方、プロファイル有無フラグの値が0の場合は、i番目のPTL情報のプロファイル情報には、i番目のPTL情報の直前に復号された、(i-1)番目の復号済PTL情報のプロファイル情報が設定される(推定される)。なお、予めエンコーダ側で、PTL情報リスト上のPTL情報を、類似順に並び替えておくことで、i番目のPTL情報は、直前のPTL情報を参照する確率を高めることができる。すなわち、vps_profile_present_flag[i]=0の場合、参照PTL指定インデクス”profile_ref_delta_index_minus1[i]”を復号せずに、参照PTL指定インデクス”profile_ref_delta_index_minus1[i]==0”と推定しているとも解釈できる。これにより、相対インデクスに係る符号量をさらに削減することが可能である。
<<VPS復号部102の変形例3>>
次に、図28~図34を用いて、VPS復号部102の変形例3について説明する。図28は、ビデオパラメータセットVPSのシンタックステーブルの変形例である。図29は、拡張ビデオパラメータセットVPSのシンタックステーブルの変形例である。図30は、VPS拡張データの復号プロセスの変形例を説明するためのフローチャートである。図31は、VPS復号部の概略的構成の変形例について示した機能ブロック図である。図32は、PTL情報のデータ構造の変形例を示す図である。図33は、PTL情報復号部における処理の流れの変形例を示すフローチャートである。図34は、PTL情報復号部の詳細の変形例を示すブロック図である。
従来技術では、プロファイル情報に関しては、プロファイル有無フラグによって復号を省略するか否かを制御することができる。しかし、複数レイヤ利用時の場合、レイヤ間において共通のレベルをとることがあるため、レベル情報を冗長にシグナルする場合がある。そこで、レベル情報のシグナルの冗長性を削減するために、プロファイル/レベル情報profile_tier_level()のデータ構造を図32に示すように、プロファイル有無フラグprofilePresentFlagに加えて、レベル情報の有無を示すレベル有無フラグlevelPresentFlagをさらに入力とする。この変更により、まず、図28に示すようにビデオパラメータセットVPSの先頭に位置するPTL情報は、profilePresentFlag=1、levelPresentFlag=1を入力して符号化される。なお、この変更により、既存のHEVCのVPSの先頭に位置するPTL情報、及び、ベースレイヤで通知されるSPS上のPTL情報のシンタックステーブルに変更はない。すなわち、既存のHEVCデコーダによって、VPS、SPS上のPTL情報が復号できないということは発生しない。
まず、変形例3に係る拡張ビデオパラメータセットVPSのシンタックステーブルについて図29を用いて説明する。図29と図56に示す従来の拡張ビデオパラメータセットVPSのシンタックステーブルとの違いは、図29では、図56上のシンタックスSYNVPS0Fに示す参照PTL情報指定インデクス(profile_ref minus1[i])が削除され、参照PTL指定情報指定インデクスの機能を、図29上のシンタックスSYNVPS0Eに示すプロファイル有無フラグ(vps_profile_present_flag[i])、及び、新たに追加した図29上のシンタックスSYNVPS0Faに示すレベル有無フラグ(vps_level_present_flag[i]) が兼用する点である。すなわち、プロファイル有無フラグ(vps_profile_present_flag[i])の値が1の場合は、i番目のPTL情報のプロファイル情報が符号化データより復号される。一方、プロファイル有無フラグの値が0の場合は、i番目のPTL情報のプロファイル情報には、i番目のPTL情報の直前に復号された、(i-1)番目の復号済PTL情報のプロファイル情報が設定される(推定される)。同様に、レベル有無フラグ(vps_level_present_flag[i])の値が1の場合は、i番目のPTL情報のレベル情報が符号化データより復号される。一方、レベル有無フラグの値が0の場合は、i番目のPTL情報のレベル情報には、i番目のPTL情報の直前に復号された、(i-1)番目の復号済PTL情報のレベル情報が設定される(推定される)。
続いて、変形例3に係るVPS復号102’’とVPS復号部102の構成の違いについて説明する。図31に示すVPS復号部102’’は、VPS復号部102が備える参照PTL情報復号部1022を備えておらず、新たに、レベル有無フラグ復号部1224を備え、PTL情報復号部1021’’の機能がPTL情報復号部1021と一部異なる。レベル有無フラグ1224は、i番目のPTL情報のレベル有無フラグ(vps_level_present_flag[i])を復号する。
以下、変形例3におけるプロファイル/レベル情報復号部1021’’の構成について図34を用いて説明する。図34に示すように、プロファイル/レベル情報復号部1021’’は、プロファイル情報復号部1021a’’、レベル情報復号部1021b’’、サブレイヤプロファイルレベル有無フラグ復号部1021f’’、およびバイトアラインデータ復号部1021e’’を備える。なお、サブレイヤ有無フラグ復号部1021c’’、サブレイヤレベル情報復号部1021d’’、及びバイトアラインデータ復号部1021e’’は実施例1と同一のため、説明を省略する。また、プロファイル情報復号部1021a’’は、変形例2に係るPTL情報復号部1021’が備えるプロファイル情報復号部1021a’と同一のため、説明を省略する。
以下では、レベル情報復号部1021b’’及び参照プロファイルレベル情報選択部1021f’’おいて、機能の異なる部分についてのみ説明する。
[レベル情報復号部1021b’’]
レベル情報復号部1021b’’は、レベル有無フラグlevelPresentFlagに基づいて、符号化データDATA#Tより復号対象PTL情報のレベル情報(最高次サブレイヤのレベル情報、あるいは汎用レベル情報とも呼ぶ)を復号し出力する。具体的には、レベル有無フラグlevelPresentFlagが1の場合、復号対象PTL情報のレベル情報を符号化データDATA#Tより復号する。レベル有無フラグlevelPresentFlagが0の場合、復号対象PTL情報のレベル情報が、復号対象PTL情報の1つ前に復号された復号済PTL情報((i-1)番目のPTL情報)のレベル情報と等しいと判断し、(i-1)番目の復号済PTL情報をパラメータメモリ(不図示)より読み出し、該レベル情報を、復号対象PTL情報のレベル情報として出力する。
また、レベル情報復号部1021b’’は、レベル有無フラグlevelPresentFlag、サブレイヤ数MaxNumSubLayers、及びサブレイヤレベル有無フラグ復号部1021d’’より供給される各サブレイヤのサブレイヤレベル有無フラグsub_layer_level_present_flag[i]に基づいて、符号化データDATA#Tより、最高次サブレイヤを除く、復号対象PTL情報の各サブレイヤのサブレイヤレベル情報を復号し出力する。
(レベル有無フラグが1の場合のサブレイヤレベル復号)
復号対象PTL情報のレベル有無フラグが1の場合、実施例1に係るPTL情報復号部1021が備えるレベル情報復号部1021bの動作と同一であるため、詳細の説明を省略する。簡単にいえば、サブレイヤi(temporalId=i+1)のサブレイヤレベル有無フラグが1の場合、該サブレイヤiのレベル情報が符号化データDATA#T内に存在すると判断し、符号化データDATA#Tよりサブレイヤiのサブレイヤレベル情報を復号する。それ以外の場合は、サブレイヤiのサブレイヤレベル情報に所定のレベル情報を設定する。例えば、復号対象PTL情報のサブレイヤ(i+1)のレベル情報をサブレイヤiのレベル情報として設定する(図63参照)。
(レベル有無フラグが0の場合のサブレイヤレベル復号)
復号対象PTL情報のレベル有無フラグが0の場合、レベル情報復号部1021b’’は、以下の動作により、サブレイヤレベルを復号する。サブレイヤi(temporalId=i+1)のサブレイヤレベル有無フラグが1の場合、該サブレイヤiのレベル情報が符号化データDATA#T内に存在すると判断し、符号化データDATA#Tよりサブレイヤiのサブレイヤレベル情報を復号する。それ以外の場合は、サブレイヤiのサブレイヤレベル情報に所定のレベル情報を設定する。具体的には、復号対象PTL情報のサブレイヤのiレベル情報が、復号対象PTL情報の1つ前に復号された復号済PTL情報((idx-1)番目のPTL情報)の対応するサブレイヤのレベル情報と等しいと判断し、(idx-1)番目の復号済PTL情報をパラメータメモリ(不図示)より読み出し、該レベル情報を、復号対象PTL情報のサブレイヤのレベル情報として出力する。
ここで、idxは、PTL情報リスト上の復号対象PTL情報の位置を示すインデクスである。
サブレイヤのレベル情報の設定ルールを疑似コードで表せば、以下の通りである(図64(b)参照)。なお、ここで、ProfileRefIdxとは、参照PTL指定情報であり、変形例3ではれば、ProfileRefIdx = (idx-1)である。すなわち、PTL情報リスト上のProfileRefIdx番目のPTL情報を参照する。
for(i=MaxNumSubLayers-1; i>=0; i--){
if( sub_layer_level_present_flag[i]==0 ){
i-th sub_layer_level information is set to be equal to i-th sub_layer_
level information of the (ProfileRefIdx)-th profile_tier_level();
}
}
なお、上記疑似コードは、図64(c)のようにも表現できる。
(プロファイル/レベル情報profile_tier_level()の復号処理の流れ)
以下、図33を用いて、変形例3に係るプロファイル/レベル情報復号部1021’’の動作を説明する。なお、プロファイル情報/レベル情報の復号処理は、図33のうち、図21と動作が異なるステップSG104、SG105、SG106、SG115、SG116、SG117のみ説明する。それ以外のステップは共通のため説明を省略する。
(ステップSG104)レベル情報復号部1021b’’は、レベル有無フラグlevelPresentFlagが1であるか判別する。レベル有無フラグlevelPresentFlagが1の場合(ステップSG104においてYes)の場合、ステップSG105へ進み、それ以外の場合(ステップSG104においてNo)の場合、ステップSG106へ進む。
(ステップSG105)レベル情報復号部1021b’’は、符号化データDATA#Tから、以下のシンタックス、
・レベル識別子general_level_idc
復号し、復号対象PTL情報のレベル情報として出力する。
(ステップSG106)
レベル情報復号部1021b’’は、復号対象PTL情報のレベル情報が、PTL情報リスト上の復号対象PTL情報より1つ前の復号済PTL情報((i-1)番目のPTL情報)のレベル情報と等しいと判断し、該復号済PTL情報をパラメータメモリ(不図示)より読み出し、該レベル情報を、復号対象PTL情報のレベル情報として設定し出力する。
(ステップSG115)
レベル情報復号部1021b’‘は、変数iで指定されるサブレイヤのサブレイヤレベル有無フラグsub_layer_level_present_flag[i]が1であるかを判定する。サブレイヤレベル有無フラグが1の場合(ステップSG115においてYes)、ステップSG116へ進み、それ以外の場合(ステップSG115においてNo)、ステップSG117へ進む。
(ステップSG116)
レベル情報復号部1021b’’は、符号化データDATA#Tより、変数iで指定されるサブレイヤのサブレイヤレベル情報として、
・サブレイヤレベル識別子sub_layer_level_idc[ i ]
を復号し出力する。
(ステップSC117)
レベル情報復号部1021b’’は、サブレイヤiのサブレイヤレベル情報に所定のレベル情報を設定する。例えば、図64(a)に示すように、レベル有無フラグlevelPresentFlagが1の場合、復号対象PTL情報のサブレイヤ(i+1)のレベル情報をサブレイヤiのレベル情報として設定し出力する。図64(b)に示すように、レベル有無フラグlevelPresentFlagが0の場合、ProfileRefIdxで指定される復号済PTL情報の対応するサブレイヤのレベル情報をサブレイヤiのレベル情報として設定し出力する。なお、ProfileRefIdxは、復号対象PTL情報のPTL情報リスト上の位置を示すインデクスidxとすれば、ProfileRefIdx = (idx-1)である。すなわち、1つ前の復号済PTL情報を参照する。
以上、変形例3に係るプロファイル/レベル情報復号部1021’’の動作について説明したが、上記ステップに限定されず、実施可能な範囲で、ステップを変更しても構わない。
以上のように、変形例3に係る拡張ビデオパラメータセットVPSのシンタックステーブルでは、図23のシンタックスSYNVPS0Fに示す参照PTL情報指定インデクス(profile_ref_delta idx_minus1[i])が削除され、参照PTL指定情報指定インデクスの機能を、図29上のシンタックスSYNVPS0Eに示すプロファイル有無フラグ(vps_profile_present_flag[i])、及びレベル有無フラグ(vps_level_present_flag[i])が兼用している。すなわち、プロファイル有無フラグ(vps_profile_present_flag[i])の値が1の場合は、i番目のPTL情報のプロファイル情報が符号化データより復号される。一方、プロファイル有無フラグの値が0の場合は、i番目のPTL情報のプロファイル情報には、i番目のPTL情報の直前に復号された、(i-1)番目の復号済PTL情報のプロファイル情報が設定される(推定される)。また、レベル有無フラグ(vps_level_present_flag[i])の値が1の場合は、i番目のPTL情報のレベル情報が符号化データより復号される。一方、レベル有無フラグの値が0の場合は、i番目のPTL情報のレベル情報には、i番目のPTL情報の直前に復号された、(i-1)番目の復号済PTL情報のレベル情報が設定される(推定される)。なお、予めエンコーダ側で、PTL情報リスト上のPTL情報を、類似順に並び替えておくことで、i番目のPTL情報は、直前のPTL情報を参照する確率を高めることができる。すなわち、vps_profile_present_flag[i]=0、または、vps_level_present_flag[i]=0の場合、参照PTL指定インデクス”profile_ref_delta_index_minus1[i]”を復号せずに、参照PTL指定インデクス”profile_ref_delta_index_minus1[i]==0”と推定しているとも解釈できる。これにより、相対インデクスに係る符号量をさらに削減することが可能である。さらに、変形例3は、実施例1と同様に、復号対象PTL情報のプロファイル情報、及びレベル情報の冗長性を低減さえる効果を奏する。
以上のように、プロファイル/レベル情報復号部は、VPSレベル有無フラグが「0」に等しい場合、i番目のプロファイル/レベル情報のレベルの情報を、それ以前のプロファイル/レベル情報のレベルの情報から導出する。
<<VPS復号部102の変形例3a>>
なお、上記変形3は、次のようにも構成を変更することが可能である。すなわち、プロファイル有無フラグprofilePresentFlag、及びレベル有無フラグlevelPresentFlagをプロファイル情報とレベル情報の有無を表わすプロファイルレベル有無フラグProfileLevelPresentFlagへ置き換える。
以下、変形例3aにおけるプロファイル/レベル情報復号部1021’’の構成について図34を代用して説明する。変形例3aに係るPTL情報復号部1021’’は、変形例3に係るPTL情報復号部1021’’における、プロファイル有無フラグprofilePresentFlag、及びレベル有無フラグlevelPresentFlagの入力値を除いて、構成、及び動作は同一である。図34では、プロファイル有無フラグprofilePresentFlag、及びレベル有無フラグlevelPresentFlagの配線があるが、変形例3aでは、プロファイルレベル有無フラグprofileLevelPresentFlagが0の場合には、図34のprofilePresentFlag、及びlevelPresentFlagを0として入力する。また、プロファイルレベル有無フラグprofileLevelPresentFlagが1の場合には、図34のprofilePresentFlag、及びlevelPresentFlagを1として入力する。なお、この変更により、既存のHEVCのVPSの先頭に位置するPTL情報、及び、ベースレイヤで通知されるSPS上のPTL情報のシンタックステーブルに変更はない。すなわち、既存のHEVCデコーダによって、VPS、SPS上のPTL情報が復号できないということは発生しない。
以上、変形3aは、変形3と同様の効果を奏する。さらに、変形例3に対して、プロファイル有無フラグとレベル有無フラグを1つにまとめて、プロファイル情報とレベル情報の有無を示すプロファイルレベル有無フラグとすることで、追加的なフラグ(変形3であれば、レベル有無フラグ)に係る符号量を削減することが可能である。
以上のように、プロファイル/レベル情報復号部は、VPSプロファイルレベル有無フラグが「0」に等しい場合、i番目のプロファイル/レベル情報のレベルの情報を、それ以前のプロファイル/レベル情報のレベルの情報から導出する。
<<VPS復号部102の変形例4>>
次に図65、図66を用いて、VPS復号部102の変形例4について説明する。
まず、変形例4に係る拡張ビデオパラメータセットVPS(VPS拡張データvps_extesion())のシンタックステーブルについて、図65を用いて説明する。図65と図56(従来技術)に示す拡張ビデオパラメータセットのシンタックステーブルとの違いは、以下に示す(1)~(2)の通りである。
(1)VPS拡張データvps_extension()の先頭にある基本レイヤがH.264で符号化されたビットストリームであるかを示すフラグavc_base_layer_flag(図65のSYNVPS0A)~各レイヤのスケーラビリティタイプを示すスケーラブルマスクscalability_mask_flag[i](図65のSYNVPS0F)のシンタックスがバイトアラインされるように、(a)シンタックスsplitting_flag(図65のSYNVPS0B)の配置変更(図65の例では、avc_base_layer_flagの次に配置)、バイトアラインを調整するための拡張ビット(バイトアラインデータ)reserved_zero_6bits(図65のSYNVPS0C)、及び(b)VPS NALユニットの先頭から、VPS NALユニット上のVPS拡張データ上にあるPTL情報関連シンタックスまでのバイトオフセットを示すシンタックスvps_ptl_info_offset(図65のSYNVPS0E)を追加している。
まず、図65に示すバイトオフセット情報vps_ptl_info_offsetは、バイトアラインを保つために、16bitとすることが望ましい。なお、バイトオフセット情報vps_ptl_info_offsetは、VPS NALユニットの先頭から、VPS NALユニット上のVPS拡張データ上にあるPTL情報関連シンタックスまでのバイトオフセットとしているが、具体的には、VPS NALユニットの先頭から、図65のSYNVPS0Hに示すシンタックスvps_number_layer_sets_minus1(レイヤセット数)までのバイトオフセットとしてもよい。この場合、レイヤセット数vps_number_layer_の直前では、バイトアラインを調整するために、バイトアラインデータvps_alignment_bit_equal_to_one(図65のSYNVPS0G)を挿入する。また、これに限定されず、バイトオフセット情報vps_ptl_info_offsetは、VPS NALユニットの先頭から、図65のSYNVPS0Iに示すシンタックスvps_num_profile_tier_level_minus1(PTL情報数)までのバイトオフセットとしてもよい。この場合、図65のSYNVPS0Gと同様に、PTL情報数vps_num_profile_tier_level_minus1の直前では、バイトアラインを調整するために、バイトアラインデータvps_alignment_bit_equal_to_oneを挿入する。
また、拡張ビットreserved_zero_6bitsは、値がゼロの6ビットのシンタックスであるが、値は1であってもよい。また、拡張ビットreserved_zero_6bitsのいずれかのビットを他のシンタックスを表すために利用してもよい。例えば、reserved_zero_6bitsのうち、先頭Nbit(1<=N<=6)をそれぞれ、以下に示すあるシンタックスやある状態の有無を示すフラグ等のいずれかと置き換えてもよい。
・レイヤ毎のレイヤ間予測に利用可能なサブレイヤの上限の有無を示すフラグmax_tid_ref_present_flag(不図示)
・符号化ピクチャの復号時にレイヤ間予測等に利用されるアクティブ直接参照レイヤ数と、シーケンス全体の復号を通じてレイヤ間予測等に参照され得る参照レイヤ数が同じであるかを示すフラグ(全直接参照レイヤが、符号化ピクチャの復号時に参照されることを示す)all_ref_layers_active_flag(不図示)、
・出力レイヤセット数がデフォルト値(vps_number_layer_sets_minus1+1)より大きいことを示すフラグmore_output_layer_sets_than_default_flag(不図示)、
・リプリゼンテーション情報有無フラグrep_format_idx_present_flag(不図示)、
・符号化ピクチャの復号時に参照する参照レイヤ数が最大1レイヤであることを示すフラグmax_one_active_ref_layer_flag(不図示)、
・レイヤ間でランダムアクセス可能なピクチャがアラインされることを示すフラグcross_layer_irap_alinged_flag(不図示)、
・同一AU内で全てのVLC NALユニットが同一のレイヤ識別子を持つか、または、同一AU内のVCL NALユニットに2つのレイヤ識別子が含まれ、一方のレイヤ識別子の値より大きいレイヤ識別子をもつピクチャがランダムアクセスピクチャであるか否かを示すフラグsingle_layer_for_non_irap_flag(不図示)、
・VUI有無フラグvps_vui_present_flag(不図示)
また、拡張ビットreserved_zero_6bitsのビット長は、6bitに限定されず、バイトアラインを調整できるビット数へ拡張してもよい。例えば、6bitから8bitを加えた14bitとし、その先頭Nbit(1<=N<=14)を、上記フラグやその他のシンタックスと置き換えてもよい。
従来技術の場合、上記フラグが散在しているため、そのフラグのあるところまで復号しなければ、そのフラグに関連するシンタックスの有無、または状態の有無を把握することができない課題がある。しかし、変形例4のように、あるシンタックスや状態の有無を示すフラグをVPS拡張データの先頭へ配置することによって、早期に関連シンタックスの有無、及び状態の有無を、デコーダが先頭の数バイトを読み込む(復号)することで把握することができる効果がある。また、バイトアラインすることによって、各シンタックスを復号/符号化する際の読み出し/書き出しに関するメモリアクセスの回数を低減させることができる。すなわち、復号/符号化に要する処理量を低減させる効果を奏する。
また、PTL情報に関連シンタックスへのバイトオフセットを示すシンタックスvps_ptl_info_offsetを追加することにより、デコーダはVPS拡張データの先頭の数ビット(あるいはバイト)を読み込み、vps_ptl_info_offsetで示されるバイトオフセット上に存在する、PTL情報に関連するシンタックスへ早期にアクセスすることができる。PTL情報リスト上のPTL情報へ早期にアクセスすることのメリットは、VPS拡張データの先頭付近には、各レイヤのスケーラビリティタイプを示すscalablity_mask_flagがあるが、このシンタックスからでは、各レイヤセットをデコーダが復号可能である否かを把握することができない。そのため、バイトオフセットvps_ptl_info_offsetに基づいて、早期にPTL情報へアクセスし復号することで、デコーダは、復号可能なレイヤセットがビットストリーム上に存在するかどうか早期に把握することが可能である。また、PTL情報リストの直後に配置されている各(出力)レイヤセットに適用するPTL情報を指定するPTL指定インデクス (profile_level_tier_idx[i])(図56上のシンタックス群SYNVPS0H)を復号することにより、デコーダが復号可能なレイヤセットを特定することが可能である。さらに、デコーダは、PTL情報、及び出力レイヤセットとPTL情報の対応情報(PTL情報指定インデクス)及び、各レイヤセットのレイヤIDリスト(図55のシンタックス群SYNVPS03)等に基づいて、ターゲットセット(出力レイヤセット)を選択し、ビットストリーム抽出処理を行うことで、デコーダが復号可能なビットストリームのみを生成することが可能である。
(2)非特許文献1のHEVCの規格策定の段階において、VPS、及びSPS上にあるPTL情報profile_tier_level()(図54)は、プロファイル情報(図54のSYNPTL01)、レベル情報(図54のSYNPTL02)、サブレイヤプロファイル有無フラグ及びサブレイヤレベル有無フラグ(図54のSYNPTL03)、各サブレイヤのプロファイル情報(図54のSYNPTL05)、及びレベル情報(図54のSYNPTL06)がバイトアラインされるように設計されている。例えば、バイトアラインを調整するために、図54のSYNPTL04に示すバイトアラインデータがある。また、サブレイヤプロファイル有無フラグ、及びサブレイヤレベル有無フラグを、各サブレイヤのプロファイル情報及びレベル情報とインターリーブしてシグナルすることで、サブレイヤ数、サブレイヤプロファイル有無フラグ、サブレイヤレベル有無フラグに基づいて、特定のサブレイヤのプロファイル情報、及びレベル情報へバイト計算により容易にアクセスできるように設計されている。
しかし、従来技術(非特許文献2及び非特許文献3)において、VPS拡張データ上にあるPTL情報は、PTL情報の直前にあるシンタックス(例えば、図56のvps_profile_present_flag[i]やprofile_ref_minus1[i])がアラインされていないめ、バイトアラインが保たれていない。そのため、前述したPTL情報の規格策定段階で考慮された上記メリットが損なわれている。
上記課題を解決するために、PTL情報に関連するシンタックス(出力レイヤセット数vps_number_layer_sets_minus1(図65のSYNVPS0H)、PTL情報数vps_num_profile_tier_level_minus1(図65のSYNVPS0I)、VPSプロファイル有無フラグvps_present_flag[i] (図65のSYNVPS0J)、参照PTL指定情報profile_ref_minus1[i] (図65のSYNVPS0L)、及びPTL情報profile_tier_level()(図65のSYNVPS0M)のシンタックスがバイトアラインされるように、シンタックスの配置、ビット長の変更、及び新たにバイトアラインデータvps_alingment_bit_equalt_to_one(図65のSYNVPS0G)、及びPTL情報数、及びプロファイル有無フラグに基づいて定まるバイトアラインデータreserved_zero_1bits[i](図65のSYNVPS0K)を追加している。
具体的には、まず、PTL情報関連シンタックスの先頭シンタックス(図65の例では、レイヤセット数vps_number_layer_sets_minus1)がバイトアラインされた位置に符号化データ上で配置される(バイト境界の先頭位置に配置される)ように、図65のSYNVPS0Gに示すバイトアラインデータvps_alingment_bit_equalt_to_one(図65のSYNVPS0G)を挿入する。ここで、関数byte_aligned()は、符号化データ上の現在位置(ビット単位)がバイト境界上であるか否かを判定する処理であり、符号化データ上の現在位置がバイト境界上である場合は、”真”と判定し、それ以外の場合は、“偽”と判定する。すなわち、判定が”真”となるまで、バイトアラインデータ(vps_alingment_bit_equalt_to_one)が1bit単位で挿入される。
続いて、各PTL情報のプロファイル有無フラグと、PTL情報をインターリーブ(分離)して、プロファイル有無フラグとPTL情報との間に、バイトアラインを調整するためにバイトアラインデータreserved_zero_bits[i]を挿入する。図65の場合は、レイヤセット数vps_number_layer_sets_minus1(図65のSYNVPS0H)、及びPTL情報数vps_num_profile_tier_level_minus1(図65のSYNVPS0G)のシンタックスはバイトアラインされるため、挿入されているバイトアラインデータreserved_zero_bits[i]のビット量Vは、PTL情報数によって定まり、例えば、V={ 8 - { { (vps_num_profile_tier_level_minus1 + 1) % 8 } % 8 } }である。なお、バイトアラインデータを挿入するループの式は、図65のSYNVPS0Gに示す
“for( i= (((vps_num_profile_tier_level_minus1 + 1) % 8 ) % 8) ; i>0; i--)”に限定されず、実施可能な範囲で変更してよい。例えば、
“for( i=0; i< (((vps_num_profile_tier_level_minus1 + 1) % 8 ) % 8); i++)”としてもよい。
なお、図65の場合、バイトアラインデータvps_alingment_bit_equal_to_one(=1bit)を、レイヤセット数の直前に挿入しているが、PTL情報数vps_num_profile_tier_level_minus1の直前に挿入してもよい。この場合、プロファイル有無フラグとPTL情報の間に挿入されるバイトアラインデータのビット量Vは、PTL情報数のビット長V1(=6bits)及び、PTL情報数によって定まり、例えば、V={ 8 - { { (vps_num_profile_tier_level_minus1 + 1 + V1) % 8 } % 8 } }である。この場合、バイトアラインデータを挿入するループの式は、例えば、
“for( i=(((vps_num_profile_tier_level_minus1+1+V1)%8)%8); i>0; i--)”としてもよい。また、これに限定されず、実施可能な範囲で変更してよい。例えば、
“for( i=0; i<(((vps_num_profile_tier_level_minus1+1+V1)%8)%8); i++)”としてもよい。なお、上記ループの式の代わりに、“while(!byte_aligned())”としてもよい。
また、PTL情報リスト上のバイトアラインを保つために、参照PTL指定情報profile_ref_minus1[i]を6bitから8bitへ変更している(図65のSYNVPS0L)。なお、参照PTL指定情報profile_ref_minus1[i]のビット長を拡張する代わりに、バイトアラインを調整するため、2bitの拡張用ビットreserved_zero_2bitsを付加してもよい。
以上の変更を実施することにより、PTL情報リスト上のPTL情報がバイトアラインされるため、各シンタックスを復号/符号化する際の読み出し/書き出しに関するメモリアクセスの回数を低減させることができる。すなわち、復号/符号化に要する処理量を低減させる効果を奏する。また、非特許文献1と同様に、各PTL情報の特定サブレイヤのプロファイル情報、及びレベル情報に、サブレイヤ数、サブレイヤプロファイル有無フラグ、サブレイヤレベル有無フラグに基づいて、特定のサブレイヤのプロファイル情報、及びレベル情報へバイト計算により容易にアクセスすることが可能である。
(VPS復号部102’’’の構成)
図16を参照して、変形例4に係るVPS復号部102’’’の構成について説明する。VPS復号部102’’’は、実施例1に係るVPS復号部102の備えるPTL情報復号部1021、参照PTL指定情報復号部1022、及びプロファイル有無フラグ復号部1023と同一の構成要素に加えて、さらに、バイトアラインデータ復号部1024(不図示)を含んで備える。なお、以下では、バイトアラインデータ復号部1024についてのみ説明する。
VPS復号部102’’’の備えるバイトアラインデータ復号部1024は、VPS拡張データvps_extension()に含まれる、バイトアラインを調整するために挿入されるデータ、バイトアラインデータを復号する。例えば、vps_alignment_bit_equal_to_one(図65上のSYNVPS0G)や、reserved_zero_1bits[i](図65上のSYNVPS0K)である。
<VPS拡張データの詳細な復号プロセス(変形例4)>
図66を用いて、VPS復号部102’’’のVPS拡張データの復号プロセスについて説明する。
(ステップSH101)VPS復号部102’’’は、図65上のシンタックス群SYNVPS0Aを復号する。
(ステップSH102)VPS復号部102’’’は、図65上のSYNVPS0Eに示すPTL情報リストまでのバイトオフセット情報(vps_ptl_info_offset)を復号する。
(ステップSH103)VPS復号部102’’’は、図65上のSYNVPS0Fに示すスケーラビリティマスクフラグを復号する。
・・・省略・・・
(ステップSH104)VPS復号部102’’’の備えるバイトアラインデータ復号部1024は、図65上のSYNVPS0Gに示す所定の判定式に基づいて、バイトアラインデータ(vps_alignment_bit_equal_to_one)を1ビット単位で復号(読み出す)する。
(ステップSH105)VPS復号部102’’’は、図65上のSYNVPS0Hに示すレイヤセット数を復号する。
(ステップSH106)VPS復号部102’’’は、図65上のSYNVPS0Iに示すPTL情報数を復号する。
(ステップSH107)VPS復号部102’’’に含まれるプロファイル有無フラグ復号部1023は、図65上のSYNVPS0Jに示すプロファイル有無フラグを”PTL情報数-1”個復号する。
(ステップSH108)VPS復号部102’’’の備えるバイトアラインデータ復号部1024は、図65上のSYNVPS0Kに示すバイトアラインデータ(reserved_zero_bit[i])を復号する。復号するバイトアラインデータのビット数は、V={ 8 - { { (vps_num_profile_tier_level_minus1 + 1) % 8 } % 8 } }である。
(ステップSH109)VPS上に含まれるPTL情報の復号プロセスのループ開始点である。
(ステップSH110)プロファイル有無フラグが0の場合は、i番目のPTL情報上にプロファイル情報を示すシンタックス群がないと判定し、ステップSH112へ進む。プロファイル有無フラグが1の場合は、i番目のPTL情報上にプロファイル情報を示すシンタックス群がある判定し、ステップSA111へ進む。
(ステップSH111)プロファイル有無フラグが0の場合、VPS復号部102’’’’に含まれる参照PTL指定情報復号部1022は、i番目のPTL情報のプロファイル情報をPTL情報リスト上のいずれのPTL情報から参照するかを示す参照PTL情報指定インデクス”profile_ref_minus1[i]”(図65上のSYNVPS0L)を復号する。参照PTL情報指定インデクス“profile_ref_ minus1[i]”は、参照先のPTL情報の位置を表す。すなわち、i番目のPTL情報は、j = (profile_ref_ minus1[i] +1 )で特定される、j番目のPTL情報をプロファイル情報の参照先とする。
(ステップSH112)VPS復号部102’’’に含まれるPTL情報復号部1021は、プロファイル有無フラグ、参照PTL指定インデクス、サブレイヤ数を入力として、i番目のPTL情報のプロファイル、及びレベル情報を復号する。PTL情報復号部1021の詳細については説明済みのため省略する。
(ステップSH113)VPS上に含まれるPTL情報の復号プロセスのループ終端である。
(ステップSH114)VPS復号部102’’’は、その他のシンタックスを復号する。
以上、変形例4に係るVPS復号部102’’’のの動作について説明したが、上記ステップに限定されず、実施可能な範囲で、ステップを変更しても構わない。
<<VPS復号部102の変形例4a>>
続いて、図68、図69を用いて、VPS復号部102の変形例4aについて説明する。
まず変形例4aに係るビデオ拡張パラメータセットVPS(VPS拡張データvps_extension())のシンタックステーブルについて、図68を用いて説明する。図68と変形例4に係る図65に示すVPS拡張データのシンタックステーブルの違いは、図68では、図65上のシンタックスSYNVPS0Lに示す参照PTL情報指定インデクス(profile_ref_minus1 [i])が削除され、参照PTL指定情報指定インデクスの機能を、図68上のシンタックスSYNVPS0Jに示すプロファイル有無フラグ(vps_profile_present_flag[i])が兼用する点である。すなわち、プロファイル有無フラグ(vps_profile_present_flag[i])の値が1の場合は、i番目のPTL情報のプロファイル情報が符号化データより復号される。一方、プロファイル有無フラグの値が0の場合は、i番目のPTL情報のプロファイル情報には、i番目のPTL情報の直前に復号された、(i-1)番目の復号済PTL情報のプロファイル情報が設定される(推定される)。なお、予めエンコーダ側で、PTL情報リスト上のPTL情報を、類似順に並び替えておくことで、i番目のPTL情報は、直前のPTL情報を参照する確率を高めることができる。すなわち、vps_profile_present_flag[i]=0の場合、参照PTL指定インデクス”profile_ref_minus1 [i]”を復号せずに、参照PTL指定インデクス”profile_ref_ minus1[i]==0”と推定しているとも解釈できる。これにより、参照PTL指定インデクスに係る符号量をさらに削減することが可能である。また、それ以外の従来技術に係る拡張VPSデータに対する変更は、変形例4と同じであり、同様の効果を奏する。
(VPS復号部102’’’aの構成)
図25を参照して、変形例4aに係るVPS復号部102’’’aの構成について説明する。VPS復号部102’’’aは、変形例2に係るVPS復号部102’の備えるPTL情報復号部1021’、及びプロファイル有無フラグ復号部1023’と同一の構成要素に加えて、さらに、バイトアラインデータ復号部1024(不図示)を含んで備える。同一の構成要素である、PTL情報復号部1021’、及びプロファイル有無フラグ復号部1023’の説明は省略する。また、バイトアラインデータ復号部1024は、変形例4に係るVPS復号部102’’’の備えるバイトアラインデータ復号部1024と同一の構成要素であるため、説明を省略する。
<VPS拡張データの詳細な復号プロセス(変形例4a)>
図69を用いて、VPS復号部102’’’aのVPS拡張データの復号プロセスについて説明する。なお、VPS復号部102’’’aのVPS拡張データの復号プロセスでは、図66上のステップSH110(プロファイル有無フラグの値に基づく分岐判定、及び分岐に基づく遷移)、ステップSH111(参照PTL情報指定インデクスprofile_ref_minus1[i]の復号)が省略されている点が異なり、それ以外の動作は同一であるため、説明を省略する。
以上、変形例4に係るVPS復号部102’’’aのの動作について説明したが、上記ステップに限定されず、実施可能な範囲で、ステップを変更しても構わない。
なお、変形例4及び変形例4aに係るVPS拡張データにおいて、VPS NALユニットの先頭から、VPS NALユニット上のVPS拡張データ上にあるPTL情報関連シンタックスまでのバイトオフセットを示すvps_ptl_info_offsetを追加しているが、これに限定されない。例えば、上記バイトオフセットを追加する代わりに、PTL情報関連シンタックスを、スケーラビリティマスクフラグの直後に配置してもよい。これによっても、PTL情報及び関連シンタックスへ早期にアクセスすることが可能であり、変形例4及び変形例4aと同様の効果を奏する。なお、符号化側においても、同様のことが適用可能である。
なお、変形例4aでは、プロファイル有無フラグとPTL情報をインターリーブしてシグナルしているが、これに限定されない。例えば、変形例3で導入したレベル情報有無フラグも、変形例4aと同様に、PTL情報とインターリーブしてシグナルしてもよい。すなわち、PTL情報数―1個のプロファイル情報とレベル情報とを先にシグナルし、その後、バイトアラインデータを挿入し、その後、各PTL情報をシグナルするようにしてもよい。この場合、変形例4a及び変形例3と同様の効果を奏する。なお、この変更は、符号化側においても適用可能である。
[参照ピクチャ情報復号部]
参照ピクチャ情報復号部は、ヘッダ復号部10の構成要素であり、参照ピクチャに関する情報を符号化データ#1から復号する。参照ピクチャに関する情報には、参照ピクチャセット情報(以下、RPS情報)と、参照ピクチャリスト修正情報(以下、RPL修正情報)が含まれる。
参照ピクチャセット(RPS: Reference Picture Set)は、対象ピクチャ、または、復号順で対象ピクチャに後続するピクチャにおいて、参照ピクチャとして利用される可能性のあるピクチャの集合を表す。RPS情報は、SPSやスライスヘッダから復号される情報であり、各ピクチャの復号時に設定される参照ピクチャセットの導出に用いられる情報である。
参照ピクチャリスト(RPL: Reference Picture List)は、動き補償予測を行う際に参照すべき参照ピクチャの候補リストである。参照ピクチャリストは2以上存在してもよい。本実施形態では、L0参照ピクチャリスト(L0参照リスト)とL1参照ピクチャリスト(L1参照リスト)を用いるとする。RPL修正情報は、SPSやスライスヘッダから復号される情報であり、参照ピクチャリスト内の参照ピクチャの順序を示す。
動き補償予測では、参照画像リスト上で参照画像インデックス(refIdx)の位置に記録されている参照ピクチャを利用する。例えば、refIdxの値が0の場合は、参照画像リストの0の位置、すなわち参照画像リストの先頭の参照ピクチャが動き補償予測に用いられる。
なお、参照ピクチャ情報復号部によるRPS情報およびRPL修正情報の復号処理は、本実施形態における重要な処理であるため、後ほど詳しく説明する。
ここで、参照ピクチャセットと参照ピクチャリストの例を、図35を参照して説明しておく。図35(a)は、動画像を構成するピクチャを表示順に並べて示したものであり、図中の数字は各ピクチャに対応するPOCを表している。POCは、復号ピクチャバッファの説明で後述するように、出力順で昇順となるよう各ピクチャに割り当てられている。“curr”と示されたPOCが9のピクチャが、現在の復号の対象ピクチャである。
図35(b)は、対象ピクチャに適用されるRPS情報の例を示す。対象ピクチャにおける参照ピクチャセット(現RPS)は、当該RPS情報に基づいて導出される。RPS情報には、長期RPS情報と短期RPS情報とが含まれる。長期RPS情報として、現RPSに含めるピクチャのPOCが直接示されている。図35(b)に示す例では、長期RPS情報は、POC=1のピクチャを現RPSに含めることを示している。短期RPS情報には、現RPSに含めるピクチャが、対象ピクチャのPOCに対する差分で記録されている。図中の「Before, dPOC=1」と示された短期RPS情報は、対象ピクチャのPOCに対して1小さいPOCのピクチャを現RPSに含めることを示している。同様に、図中の「Before, dPOC=4」は4小さいPOCのピクチャを示し、「After, dPOC=1」は1大きいPOCのピクチャを現RPSに含めることを示す。なお、「Before」は、対象ピクチャの前方、つまり、対象ピクチャより表示順の早いピクチャを示す。また、「After」は、対象ピクチャの後方、つまり、対象ピクチャより表示順の遅いピクチャを示す。
図35(c)は、対象ピクチャのPOCが0の場合に、図35(b)で例示したRPS情報を適用したときに導出される現RPSの例を示す。長期RPS情報で示されたPOC=1のピクチャが含まれている。また、短期RPS情報で示された、対象ピクチャ(POC=9)より1小さいPOCを有するピクチャ、すなわちPOC=8のピクチャが含まれている。同様に、短期RPS情報で示された、POC=5とPOC=10のピクチャが含まれている。
図35(d)および(e)は、現RPSに含まれる参照ピクチャから生成される参照ピクチャリストの例を示す。参照ピクチャリストの各要素にはインデックス(参照ピクチャインデックス)が付与されている(図中ではidxと記載)。図35(d)は、L0参照リストの例を示す。L0参照リストには、5、8、10、1のPOCを持つ現RPSに含まれる参照ピクチャが、この順で含まれている。図35(e)は、L1参照リストの例を示す。L1参照リストには、10、5、8のPOCを持つ現RPSに含まれる参照ピクチャが、この順で含まれている。なお、L1参照リストの例で示した通り、参照ピクチャリストには、現RPSに含まれる全ての参照ピクチャ(参照可能ピクチャ)を含める必要はない。しかし、参照ピクチャリストの要素数は、最大でも現RPSに含まれる参照ピクチャの数となる。言い換えると、参照ピクチャリストの長さは、現ピクチャで参照可能なピクチャ数以下である。
次に、参照ピクチャリスト修正の例を、図36を参照して説明しておく。図36は、特定の参照ピクチャリストに(図36(a))に対して、RPL修正情報(図36(b))を適用した場合に得られる修正後の参照ピクチャリスト(図36(c))を例示している。図36(a)に示す修正前L0参照リストは、図35(d)で説明したL0参照リストと同一である。図36(b)に示すRPL修正情報は参照ピクチャインデックスの値を要素とするリストになっており、先頭から順に0、2、1、3の値が格納されている。このRPL修正情報は、修正前参照リストに含まれる0、2、1、3の参照ピクチャインデックスで示される参照ピクチャを、この順で修正後L0参照リストの参照ピクチャとすることを示す。図36(c)は修正後L0参照リストを示し、POCが5、10、8、1のピクチャがこの順で含まれている。
(動画像復号処理手順)
画像復号装置1が、入力符号化データ#1から復号画像#2を生成する手順は次のとおりである。
(S11)ヘッダ復号部10は、符号化データ#1からVPS、SPSを復号する。
(S12)ヘッダ復号部10は、符号化データ#1からPPSを復号する。
(S13)符号化データ#1の示すピクチャを順次対象ピクチャに設定する。各対象ピクチャに対して、S14~S17の処理を実行する。
(S14)ヘッダ復号部10は、符号化データ#1から対象ピクチャに含まれる各スライスのスライスヘッダを復号する。ヘッダ復号部10に含まれる参照ピクチャ情報復号部は、スライスヘッダからRPS情報を復号して参照ピクチャ管理部13に含まれる参照ピクチャセット設定部131に出力する。また、参照ピクチャ情報復号部は、スライスヘッダからRPL修正情報を復号して参照ピクチャリスト導出部132に出力する。
(S15)参照ピクチャセット設定部131は、RPS情報と、復号ピクチャバッファ12に記録されている局所復号画像のPOCとメモリ上の位置情報の組み合わせに基づいて、対象ピクチャに適用する参照ピクチャセットRPSを生成して、参照ピクチャリスト導出部132に出力する。
(S16)参照ピクチャリスト導出部132は、参照ピクチャセットRPSと、RPL修正情報に基づいて参照ピクチャリストRPLを生成してピクチャ復号部11に出力する。(S17)ピクチャ復号部11は、符号化データ#1から対象ピクチャに含まれる各スライスのスライスデータと、参照ピクチャリストRPLに基づいて対象ピクチャの局所復号画像を作成して、対象ピクチャのPOCと関連付けて復号ピクチャバッファに記録する。復号ピクチャバッファに記録された局所復号画像は、POCに基づき決定される適切なタイミングで、外部に復号画像#2として出力される。
[復号ピクチャバッファ12]
復号ピクチャバッファ12には、ピクチャ復号部で復号された各ピクチャの局所復号画像が、レイヤID、当該ピクチャのPOC(Picture Order Count、ピクチャ順序情報)と関連付けられて記録されている。復号ピクチャバッファ12は、所定の出力タイミングで、出力対象のPOCを決定する。その後、当該POCに対応する局所復号画像を、復号画像#2を構成するピクチャの一つとして外部に出力する。
図37は、復号ピクチャメモリの構成を示す概念図である。図中内部に数字を記したボックスが局所復号画像を示す。数字はPOCを示す。図37の図の通り、複数のレイヤの局所復号画像が、そのレイヤID、POC、局所復号画像に関連づけられて記録される。さらに、レイヤIDに対応するビューIDview_id、デプスフラグdepth_flagも局所復号画像に関連づけられて記録される。
[参照ピクチャ管理部13]
図38は、本実施形態に係る参照ピクチャ管理部13の構成を示す概略図である。参照ピクチャ管理部13は、参照ピクチャセット設定部131と、参照ピクチャリスト導出部132を含んで構成される。
参照ピクチャセット設定部131は、参照ピクチャ情報復号部218で復号されたRPS情報、および、復号ピクチャバッファ12に記録されている局所復号画像とレイヤID、POCの情報に基づいて、参照ピクチャセットRPSを構築して参照ピクチャリスト導出部132に出力する。なお、参照ピクチャセット設定部131の詳細は後述する。
参照ピクチャリスト導出部132は、参照ピクチャ情報復号部218で復号されたRPL修正情報、および、参照ピクチャセット設定部131から入力された参照ピクチャセットRPSに基づいて参照ピクチャリストRPLを生成して、ピクチャ復号部11に出力する。なお、参照ピクチャリスト導出部132の詳細は後述する。
(参照ピクチャ情報復号処理の詳細)
上記復号手順におけるS14の処理のうち、RPS情報およびRPL修正情報の復号処理について詳細を説明する。
(RPS情報復号処理)
RPS情報は、参照ピクチャセットを構築するためにSPSまたはスライスヘッダより復号される情報である。RPS情報には以下を含む。
1.SPS短期RPS情報:SPSに含まれる短期参照ピクチャセット情報
2.SPS長期RP情報:SPSに含まれる長期参照ピクチャ情報
3.SH短期RPS情報:スライスヘッダに含まれる短期参照ピクチャセット情報
4.SH長期RP情報:スライスヘッダに含まれる長期参照ピクチャ情報
(1.SPS短期RPS情報)
SPS短期RPS情報は、SPSを参照する各ピクチャから利用され得る複数の短期参照ピクチャセットの情報を含む。なお、短期参照ピクチャセットとは、対象ピクチャに対する相対的な位置(例えば対象ピクチャとのPOC差分)により指定される参照ピクチャ(短期参照ピクチャ)となり得るピクチャの集合である。
SPS短期RPS情報の復号について、図39を参照して説明する。図39は、ヘッダ復号部10および参照ピクチャ情報復号部においてSPS復号時に利用されるSPSシンタックス表の一部を例示している。図39の(A)の部分がSPS短期RPS情報に相当する。SPS短期RPS情報には、SPSに含まれる短期参照ピクチャセットの数(num_short_term_ref_pic_sets)、および、各短期参照ピクチャセットの情報(short_term_ref_pic_set(i))が含まれる。
短期参照ピクチャセット情報について、図40を参照して説明する。図40は、ヘッダ復号部10および参照ピクチャ情報復号部においてSPS復号時、および、スライスヘッダ復号時に利用される短期参照ピクチャセットのシンタックス表を例示している。
短期参照ピクチャセット情報には、対象ピクチャより表示順が早い短期参照ピクチャ数(num_negative_pics)、および、対象ピクチャより表示順が遅い短期参照ピクチャ数(num_positive_pics)が含まれる。なお、以下では、対象ピクチャより表示順が早い短期参照ピクチャを前方短期参照ピクチャ、対象ピクチャより表示順が遅い短期参照ピクチャを後方短期参照ピクチャと呼ぶ。
また、短期参照ピクチャセット情報には、各前方短期参照ピクチャに対して、対象ピクチャに対するPOC差分の絶対値(delta_poc_s0_minus1[i])、および、対象ピクチャの参照ピクチャとして使用される可能性の有無(used_by_curr_pic_s0_flag[i])が含まれる。加えて、各後方短期参照ピクチャに対して、対象ピクチャに対するPOC差分の絶対値(delta_poc_s1_minus1[i])、および、対象ピクチャの参照ピクチャとして使用される可能性の有無(used_by_curr_pic_s1_flag[i])が含まれる。
(2.SPS長期RP情報)
SPS長期RP情報は、SPSを参照する各ピクチャから利用され得る複数の長期参照ピクチャの情報を含む。なお、長期参照ピクチャとは、シーケンス内の絶対的な位置(例えばPOC)により指定されるピクチャである。
SPS長期RP情報の復号について、図39を再び参照して説明する。図39の(B)の部分がSPS長期RP情報に相当する。SPS長期RP情報には、SPSで伝送される長期参照ピクチャの有無を示す情報(long_term_ref_pics_present_flag)、SPSに含まれる長期参照ピクチャの数(num_long_term_ref_pics_sps)、および、各長期参照ピクチャの情報が含まれる。長期参照ピクチャの情報には、参照ピクチャのPOC(lt_ref_pic_poc_lsb_sps[i])、および、対象ピクチャの参照ピクチャとして使用される可能性の有無(used_by_curr_pic_lt_sps_flag[i])が含まれる。
なお、上記参照ピクチャのPOCは、参照ピクチャに関連付けられたPOCの値自体であってもよいし、POCのLSB(Least Significant Bit)、すなわち、POCを既定の2の冪乗の数で割った余りの値を用いてもよい。
(3.SH短期RPS情報)
SH短期RPS情報は、スライスヘッダを参照するピクチャから利用され得る単一の短期参照ピクチャセットの情報を含む。
SPS短期RPS情報の復号について、図41を参照して説明する。図41は、ヘッダ復号部10および参照ピクチャ情報復号部においてスライスヘッダ復号時に利用されるスライスヘッダシンタックス表の一部を例示している。図41の(A)の部分がSH短期RPS情報に相当する。SH短期RPS情報は、短期参照ピクチャセットをSPSで復号済みの短期参照ピクチャセットの中から選択するか、スライスヘッダに明示的に含めるかを示すフラグ(short_term_ref_pic_set_sps_flag)を含む。SPSで復号済の中から選択する場合、復号済の短期参照ピクチャセットを一つ選択する識別子(short_term_ref_pic_set_idx)が含まれる。スライスヘッダに明示的に含める場合は、前述したシンタックス表(short_term_ref_pic_set(idx))に相当する情報が、SPS短期RPS情報に含まれる。
(4.SH長期RP情報)
SH長期RP情報は、スライスヘッダを参照するピクチャから利用され得る長期参照ピクチャの情報を含む。
SH長期RP情報の復号について、図41を再び参照して説明する。図41の(B)の部分がSH長期RP情報に相当する。SH長期RP情報は、対象ピクチャで長期参照ピクチャが利用可能(long_term_ref_pic_present_flag)である場合のみスライスヘッダに含まれる。SPSで1以上の長期参照ピクチャを復号済である場合(num_long_term_ref_pics_sps>0)、SPSで復号済の長期参照ピクチャの中で対象ピクチャで参照され得る参照ピクチャの数(num_long_term_sps)がSH長期RP情報に含まれる。また、スライスヘッダで明示的に伝送される長期参照ピクチャ数(num_long_term_pics)がSH長期RP情報に含まれる。加えて、上記num_long_term_spsの数の長期参照ピクチャをSPSで伝送済の長期参照ピクチャの中から選択する情報(lt_idx_sps[i])がSH長期RP情報に含まれる。さらに、スライスヘッダに明示的に含める長期参照ピクチャの情報として、上記num_long_term_picsの数だけ、参照ピクチャのPOC(poc_lsb_lt [i])、および、対象ピクチャの参照ピクチャとして使用される可能性の有無(used_by_curr_pic_lt_flag[i])が含まれる。
(RPL修正情報復号処理)
RPL修正情報は、参照ピクチャリストRPLを構築するためにSPSまたはスライスヘッダより復号される情報である。RPL修正情報には、SPSリスト修正情報、および、SHリスト修正情報が含まれる。
(SPSリスト修正情報)
SPSリスト修正情報はSPSに含まれる情報であり、参照ピクチャリスト修正の制約に係る情報である。SPSリスト修正情報について、図39を再び参照して説明する。図39の(C)の部分がSPSリスト修正情報に相当する。SPSリスト修正情報には、ピクチャに含まれる前スライスで参照ピクチャリストが共通か否かを示すフラグ(restricted_ref_pic_lists_flag)、および、スライスヘッダ内にリスト並べ替えに関する情報が存在するか否かを示すフラグ(lists_modification_present_flag)が含まれる。
(SHリスト修正情報)
SHリスト修正情報はスライスヘッダに含まれる情報であり、対象ピクチャに適用される参照ピクチャリストの長さ(参照リスト長)の更新情報、および、参照ピクチャリストの並べ替え情報(参照リスト並べ替え情報)が含まれる。SHリスト修正情報について、図42を参照して説明する。図42はヘッダ復号部10および参照ピクチャ情報復号部においてスライスヘッダ復号時に利用されるスライスヘッダシンタックス表の一部を例示している。図42の(C)の部分がSHリスト修正情報に相当する。
参照リスト長更新情報として、リスト長の更新有無を示すフラグ(num_ref_idx_active_override_flag)が含まれる。加えて、L0参照リストの変更後の参照リスト長を表す情報(num_ref_idx_l0_active_minus1)、および、L1参照リストの変更後の参照リスト長を表す情報(num_ref_idx_l1_active_minus1)が含まれる。
参照リスト並べ替え情報としてスライスヘッダに含まれる情報について、図43を参照して説明する。図43はヘッダ復号部10および参照ピクチャ情報復号部においてスライスヘッダ復号時に利用される参照リスト並べ替え情報のシンタックス表を例示している。
参照リスト並べ替え情報には、L0参照リスト並べ替え有無フラグ(ref_pic_list_modification_flag_l0)が含まれる。前記フラグの値が1(L0参照リストの並べ替えが有る場合)、かつ、NumPocTotalCurrが2より大きい場合、L0参照リスト並べ替え順序(list_entry_l0[i])が参照リスト並べ替え情報に含まれる。ここで、NumPocTotalCurrは、現ピクチャにおいて利用可能な参照ピクチャの数を表す変数である。したがって、L0参照リストの並べ替えが有る場合であって、かつ、現ピクチャにおいて利用可能な参照ピクチャ数が2より大きい場合にのみ、L0参照リスト並べ替え順序がスライスヘッダに含まれる。
同様に、参照ピクチャがBスライスである場合、つまり、対象ピクチャにおいてL1参照リストが利用可能である場合、L1参照リスト並べ替え有無フラグ(ref_pic_list_modification_flag_l1)が参照リスト並べ替え情報に含まれる。前記フラグの値が1、かつ、NumPocTotalCurrが2より大きい場合、L1参照リスト並べ替え順序(list_entry_l1[i])が参照リスト並べ替え情報に含まれる。言い換えると、L1参照リストの並べ替えが有る場合であって、かつ、現ピクチャにおいて利用可能な参照ピクチャ数が2より大きい場合にのみ、L1参照リスト並べ替え順序がスライスヘッダに含まれる。
(参照ピクチャセット導出処理の詳細)
前述の動画像復号手順におけるS15の処理、すなわち、参照ピクチャセット設定部による参照ピクチャセット導出処理の詳細を説明する。
既に説明したとおり、参照ピクチャセット設定部131は、RPS情報と、復号ピクチャバッファ12に記録されている情報に基づいて、対象ピクチャの復号に用いる参照ピクチャセットRPSを生成する。
参照ピクチャセットRPSは、対象ピクチャ、または、対象ピクチャに復号順で後続のピクチャにおいて、復号時に参照画像として利用可能なピクチャ(参照可能ピクチャ)の集合である。参照ピクチャセットは、参照可能ピクチャの種類に応じて次の2つのサブセットに分けられる。
・現ピクチャ参照可能リストListCurr:復号ピクチャバッファ上のピクチャのうち、対象ピクチャにおける参照可能ピクチャのリスト
・後続ピクチャ参照可能リストListFoll:対象ピクチャでは参照されないが、対象ピクチャに復号順で後続のピクチャで参照可能な復号ピクチャバッファ上のピクチャのリスト
なお、現ピクチャ参照可能リストに含まれるピクチャの数を、現ピクチャ参照可能ピクチャ数NumCurrListと呼ぶ。なお、前述の図43を参照して説明したNumPocTotalCurrは、NumCurrListと同一である。
現ピクチャ参照可能リストは、さらに3つの部分リストから構成される。
・現ピクチャ長期参照可能リストListLtCurr:SPS長期RP情報またはSH長期RP情報により指定される現ピクチャ参照可能ピクチャ
・現ピクチャ短期前方参照可能リストListStCurrBefore:SPS短期RPS情報またはSH短期RPS情報により指定される現ピクチャ参照可能ピクチャであって、表示順が対象ピクチャより早いもの
・現ピクチャ短期後方参照可能リストListStCurrAfter:SPS短期RPS情報またはSH短期RPS情報により指定される現ピクチャ参照可能ピクチャであって、表示順が対象ピクチャより早いもの。
後続ピクチャ参照可能リストは、さらに2つの部分リストから構成される。
・後続ピクチャ長期参照可能リストListLtFoll:SPS長期RP情報またはSH長期RP情報により指定される後続ピクチャ参照可能ピクチャ
・後続ピクチャ短期参照可能リストListStFoll:SPS短期RPS情報またはSH短期RPS情報により指定される現ピクチャ参照可能ピクチャ。
参照ピクチャセット設定部131は、NALユニットタイプがIDR以外の場合に、参照ピクチャセットRPS、すなわち、現ピクチャ短期前方参照可能リストListStCurrBefore、現ピクチャ短期後方参照可能リストListStCurrAfter、現ピクチャ長期参照可能リストListLtCurr、後続ピクチャ短期参照可能リストListStFoll、および、後続ピクチャ長期参照可能リストListLtFollを次の手順で生成する。加えて、現ピクチャ参照可能ピクチャ数を表す変数NumPocTotalCurrを導出する。なお、前記各参照可能リストは、以下の処理の開始前に空に設定されているとする。参照ピクチャセット設定部131は、NALユニットタイプがIDRの場合は、参照ピクチャセットRPSを空として導出する。
(S201)SPS短期RPS情報、および、SH短期RPS情報に基づいて、対象ピクチャの復号に用いる単一の短期参照ピクチャセットを特定する。具体的には、SH短期RPS情報に含まれるshort_term_ref_pic_set_spsの値が0である場合、SH短期RPS情報に含まれるスライスヘッダで明示的に伝送された短期RPSを選択する。それ以外(short_term_ref_pic_set_spsの値が1の場合、SH短期RPS情報に含まれるshort_term_ref_pic_set_idxが示す短期RPSを、SPS短期RPS情報に含まれる複数の短期RPSの中から選択する。
(S202)選択された短期RPSに含まれる参照ピクチャ各々のPOCの値を導出し、復号ピクチャバッファ12上に当該POC値と関連付けられて記録されている局所復号画像の位置を検出して、参照ピクチャの復号ピクチャバッファ上の記録位置として導出する。
参照ピクチャのPOC値は、参照ピクチャが前方短期参照ピクチャの場合、対象ピクチャのPOCの値から「delta_poc_s0_minus1[i]+1」の値を減算して導出する。一方、参照ピクチャが後方短期参照ピクチャの場合、対象ピクチャのPOCの値に「delta_poc_s1_minus1[i]+1」の値を加算して導出する。
(S203)短期RPSに含まれる前方参照ピクチャを伝送された順に確認し、関連付けられているused_by_curr_pic_s0_flag[i]の値が1である場合、当該前方参照ピクチャを現ピクチャ短期前方参照可能リストListStCurrBeforeに追加する。それ以外(used_by_curr_pic_s0_flag[i]の値が0)の場合、当該前方参照ピクチャを後続ピクチャ短期参照可能リストListStFollに追加する。
(S204)短期RPSに含まれる後方参照ピクチャを伝送された順に確認し、関連付けられているused_by_curr_pic_s1_flag[i]の値が1である場合、当該後方参照ピクチャを現ピクチャ短期後方参照可能リストListStCurrAfterに追加する。それ以外(used_by_curr_pic_s1_flag[i]の値が0の場合、当該前方参照ピクチャを後続ピクチャ短期参照可能リストListStFollに追加する。
(S205) SPS長期RP情報、および、SH長期RP情報に基づいて、対象ピクチャの復号に用いる長期参照ピクチャセットを特定する。具体的には、num_long_term_spsの数の参照ピクチャを、SPS長期RP情報に含まれ、かつ、対象ピクチャとレイヤIDが等しい参照ピクチャの中から選択して、順に長期参照ピクチャセットに追加する。選択される参照ピクチャは、lt_idx_sps[i]の示す参照ピクチャである。続いて、num_long_term_picsの数の参照ピクチャをSH長期RP情報に含まれる参照ピクチャを順に長期参照ピクチャセットに追加する。対象ピクチャのレイヤIDが0以外の場合には、対象ピクチャとレイヤIDが異なるピクチャ、特に、対象ピクチャの依存レイヤref_layer_idが等しいレイヤID参照ピクチャの中から、対象ピクチャのPOCと等しいPOCを持つ参照ピクチャをさらに長期参照ピクチャセットに追加する。
(S206)長期参照ピクチャセットに含まれる参照ピクチャ各々のPOCの値を導出し、復号ピクチャバッファ12上で対象ピクチャとレイヤIDが等しい参照ピクチャの中から当該POC値と関連付けられて記録されている局所復号画像の位置を検出して、参照ピクチャの復号ピクチャバッファ上の記録位置として導出する。また、対象ピクチャとレイヤIDが異なる参照ピクチャについては、依存レイヤref_layer_idにより指定されたレイヤIDと対象ピクチャのPOCと関連付けられて記録されている局所復号画像の位置を検出して、参照ピクチャの復号ピクチャバッファ上の記録位置として導出する。
長期参照ピクチャのPOCは、対象ピクチャとレイヤIDが等しい参照ピクチャについては、関連付けて復号されたpoc_lst_lt[i]、または、lt_ref_pic_poc_lsb_sps[i]の値から直接導出される。対象ピクチャとレイヤIDが異なる参照ピクチャについては、対象ピクチャのPOCが設定される。
(S207)長期参照ピクチャセットに含まれる参照ピクチャを順に確認し、関連付けられているused_by_curr_pic_lt_flag[i]、または、used_by_curr_pic_lt_sps_flag[i]の値が1である場合、当該長期参照ピクチャを現ピクチャ長期参照可能リストListLtCurrに追加する。それ以外(used_by_curr_pic_lt_flag[i]、または、used_by_curr_pic_lt_sps_flag[i]の値が0)の場合、当該長期参照ピクチャを後続ピクチャ長期参照可能リストListLtFollに追加する。
(S208)変数NumPocTotalCurrの値を、現ピクチャから参照可能な参照ピクチャの和に設定する。すなわち、変数NumPocTotalCurrの値を、現ピクチャ短期前方参照可能リストListStCurrBefore、現ピクチャ短期後方参照可能リストListStCurrAfter、および、現ピクチャ長期参照可能リストListLtCurrの3つのリストの各要素数の和に設定する。
(参照ピクチャリスト構築処理の詳細)
上記復号手順におけるS16の処理、すなわち、参照ピクチャリスト構築処理の詳細を説明する。既に説明したとおり、参照ピクチャリスト導出部132は、参照ピクチャセットRPSと、RPL修正情報に基づいて参照ピクチャリストRPLを生成する。
参照ピクチャリストはL0参照リストとL1参照リストの2つのリストから構成される。始めに、L0参照リストの構築手順を説明する。L0参照リストは、以下のS301~S307に示す手順で構築される。
(S301)暫定L0参照リストを生成して、空のリストに初期化する。
(S302)暫定L0参照リストに対し、現ピクチャ短期前方参照可能リストに含まれる参照ピクチャを順に追加する。
(S303)暫定L0参照リストに対し、現ピクチャ短期後方参照可能リストに含まれる参照ピクチャを順に追加する。
(S304)暫定L0参照リストに対し、現ピクチャ長期参照可能リストに含まれる参照ピクチャを順に追加する。
(S305)参照ピクチャリストが修正される場合(RPL修正情報に含まれるlists_modification_present_flagの値が1の場合)、以下のS306a~S306bの処理を実行する。そうでない場合(lists_modification_present_flagの値が0の場合)、S307の処理を実行する。
(S306a)L0参照ピクチャの修正が有効な場合(RPL修正情報に含まれるref_pic_list_modification_flag_l0の値が1の場合)であって、かつ、現ピクチャ参照可能ピクチャ数NumCurrListが2に等しい場合、S306bを実行する。そうでない場合、S306cを実行する。
(S306b)RPL修正情報に含まれるリスト並べ替え順序list_entry_l0[i]の値を下記の式により設定し、その後、S306cを実行する。
list_entry_l0[0] = 1
list_entry_l0[1] = 0
(S306c)参照リスト並べ替え順序list_entry_l0[i]の値に基づいて、暫定L0参照リストの要素を並べ換えて、L0参照リストとする。参照ピクチャインデックスrIdxに対応するL0参照リストの要素RefPicList0[rIdx]は、次式により導出される。ここで、RefListTemp0[i]は、暫定L0参照リストのi番目の要素を表す。
RefPicList0[ rIdx ] = RefPicListTemp0[ list_entry_l0[ rIdx ] ]
上記の式によれば、参照リスト並べ替え順序list_entry_l0[i]において、参照ピクチャインデックスrIdxの示す位置に記録されている値を参照し、暫定L0参照リストにおいて前記値の位置に記録されている参照ピクチャを、L0参照リストのrIdxの位置の参照ピクチャとして格納する。
(S307)暫定L0参照リストをL0参照リストとする。
次にL1参照リストを構築する。なお、L1参照リストも、上記L0参照リストと同様の手順で構築できる。上記L0参照リストの構築手順(S301~S307)において、L0参照ピクチャ、L0参照リスト、暫定L0参照リスト、list_entry_l0をそれぞれ、L1参照ピクチャ、L1参照リスト、暫定L1参照リスト、list_entry_l1と置き換えればよい。
上記では、図43において、現ピクチャ参照可能ピクチャ数が2の場合にRPL修正情報を省略する例を記載したが、それに限らない。現ピクチャ参照可能ピクチャ数が1の場合にRPL修正情報を省略してもよい。具体的には、参照ピクチャ情報復号部におけるSHリスト修正情報の復号処理において、参照リスト並べ替え情報を図45に示すシンタックス表に基づいてパースする。図45は、スライスヘッダ復号時に利用される参照リスト並べ替え情報のシンタックス表を例示している。
[ピクチャ復号部11]
ピクチャ復号部11は、符号化データ#1、ヘッダ復号部10より入力されるヘッダ情報、復号ピクチャバッファ12に記録されている参照ピクチャ、および、参照ピクチャリスト導出部132より入力される参照ピクチャリストに基づいて、各ピクチャの局所復号画像を生成して復号ピクチャバッファ12に記録する。
図44は、本実施形態に係るピクチャ復号部11の構成を示す概略図である。ピクチャ復号部11は、エントロピー復号部301、予測パラメータ復号部302、予測パラメータメモリ(予測パラメータ記憶部)307、予測画像生成部308、逆量子化・逆DCT部311、及び加算部312を含んで構成される。
また、予測パラメータ復号部302は、インター予測パラメータ復号部303及びイントラ予測パラメータ復号部304を含んで構成される。予測画像生成部308は、インター予測画像生成部309及びイントラ予測画像生成部310を含んで構成される。
エントロピー復号部301は、外部から入力された符号化データ#1に対してエントロピー復号を行って、個々の符号(シンタックス要素)を分離し復号する。分離された符号には、予測画像を生成するための予測情報および、差分画像を生成するための残差情報などがある。
エントロピー復号部301は、分離した符号の一部を予測パラメータ復号部302に出力する。分離した符号の一部とは、例えば、予測モードPredMode、分割モードpart_mode、マージフラグmerge_flag、マージインデックスmerge_idx、インター予測フラグinter_pred_idx、参照ピクチャインデックスrefIdxLX、予測ベクトルインデックスmvp_LX_idx、差分ベクトルmvdLXである。どの符号を復号するか否かの制御は、予測パラメータ復号部302の指示に基づいて行われる。エントロピー復号部301は、量子化係数を逆量子化・逆DCT部311に出力する。この量子化係数は、符号化処理において、残差信号に対してDCT(Discrete Cosine Transform、離散コサイン変換)を行い量子化して得られる係数である。
インター予測パラメータ復号部303は、エントロピー復号部301から入力された符号に基づいて、予測パラメータメモリ307に記憶された予測パラメータを参照してインター予測パラメータを復号する。
インター予測パラメータ復号部303は、復号したインター予測パラメータを予測画像生成部308に出力し、また予測パラメータメモリ307に記憶する。インター予測パラメータ復号部303の詳細については後述する。
イントラ予測パラメータ復号部304は、エントロピー復号部301から入力された符号に基づいて、予測パラメータメモリ307に記憶された予測パラメータを参照してイントラ予測パラメータを生成する。イントラ予測パラメータとは、復号対象ブロックの予測画像をイントラ予測を用いて生成する際に必要な情報であり、例えば、イントラ予測モードIntraPredModeである。
イントラ予測パラメータ復号部304は、イントラ予測パラメータを予測画像生成部308に出力し、また予測パラメータメモリ307に記憶する。
予測パラメータメモリ307は、予測パラメータを、復号対象のピクチャ及びブロック毎に予め定めた位置に記憶する。具体的には、予測パラメータメモリ307は、インター予測パラメータ復号部303が復号したインター予測パラメータ、イントラ予測パラメータ復号部304が復号したイントラ予測パラメータ及びエントロピー復号部301が分離した予測モードpredModeを記憶する。記憶されるインター予測パラメータには、例えば、予測リスト利用フラグpredFlagLX(インター予測フラグinter_pred_idx)、参照ピクチャインデックスrefIdxLX、ベクトルmvLXがある。
予測画像生成部308には、エントロピー復号部301から入力された予測モードpredModeが入力され、また予測パラメータ復号部302から予測パラメータが入力される。また、予測画像生成部308は、復号ピクチャバッファ12から参照ピクチャを読み出す。予測画像生成部308は、予測モードpredModeが示す予測モードで、入力された予測パラメータと読み出した参照ピクチャを用いて予測ピクチャブロックP(予測画像)を生成する。
ここで、予測モードpredModeがインター予測モードを示す場合、インター予測画像生成部309は、インター予測パラメータ復号部303から入力されたインター予測パラメータと読み出した参照ピクチャを用いてインター予測により予測ピクチャブロックPを生成する。予測ピクチャブロックPはPUに対応する。PUは、上述したように予測処理を行う単位となる複数の画素からなるピクチャの一部分、つまり1度に予測処理が行われる復号対象ブロックに相当する。
インター予測画像生成部309は、予測リスト利用フラグpredFlagLXが1である参照ピクチャリスト(L0参照リスト、もしくはL1参照リスト)に対し、参照ピクチャインデックスrefIdxLXで示される参照ピクチャから、復号対象ブロックを基準としてベクトルmvLXが示す位置にある参照ピクチャブロックを復号ピクチャバッファ12から読み出す。インター予測画像生成部309は、読み出した参照ピクチャブロックについて予測を行って予測ピクチャブロックPを生成する。インター予測画像生成部309は、生成した予測ピクチャブロックPを加算部312に出力する。
予測モードpredModeがイントラ予測モードを示す場合、イントラ予測画像生成部310は、イントラ予測パラメータ復号部304から入力されたイントラ予測パラメータと読み出した参照ピクチャを用いてイントラ予測を行う。具体的には、イントラ予測画像生成部310は、復号対象のピクチャであって、既に復号されたブロックのうち復号対象ブロックから予め定めた範囲にある参照ピクチャブロックを復号ピクチャバッファ12から読み出す。予め定めた範囲とは、復号対象ブロックがいわゆるラスタースキャンの順序で順次移動する場合、例えば、左、左上、上、右上の隣接ブロックのうちのいずれかであり、イントラ予測モードによって異なる。ラスタースキャンの順序とは、各ピクチャにおいて、上端から下端まで各行について、順次左端から右端まで移動させる順序である。
イントラ予測画像生成部310は、読み出した参照ピクチャブロックと、入力された予測パラメータを用いて予測ピクチャブロックを生成する。
イントラ予測画像生成部310は、生成した予測ピクチャブロックPを加算部312に出力する。
逆量子化・逆DCT部311は、エントロピー復号部301から入力された量子化係数を逆量子化してDCT係数を求める。逆量子化・逆DCT部311は、求めたDCT係数について逆DCT(Inverse Discrete Cosine Transform、逆離散コサイン変換)を行い、復号残差信号を算出する。逆量子化・逆DCT部311は、算出した復号残差信号を加算部312に出力する。
加算部312は、インター予測画像生成部309及びイントラ予測画像生成部310から入力された予測ピクチャブロックPと逆量子化・逆DCT部311から入力された復号残差信号の信号値を画素毎に加算して、参照ピクチャブロックを生成する。加算部312は、生成した参照ピクチャブロックを参照ピクチャバッファに記憶し、生成した参照ピクチャブロックをピクチャ毎に統合した復号レイヤ画像Tdを外部に出力する。
〔画像符号化装置〕
以下において、本実施形態に係る画像符号化装置2について、図45を参照して説明する。
(画像符号化装置の概要)
画像符号化装置2は、概略的に言えば、入力画像#10を符号化することによって符号化データ#1を生成し、出力する装置である。
(画像符号化装置の構成)
本実施形態に係る画像符号化装置2の構成例について説明する。図45は、本実施形態に係る画像符号化装置2の構成を示す概略図である。画像符号化装置2は、ヘッダ符号化部10E、ピクチャ符号化部21、復号ピクチャバッファ12、参照ピクチャ決定部13Eを含んで構成される。画像符号化装置2は、複数のレイヤを含む画像において特定の時刻のピクチャから復号を開始する後述するランダムアクセス復号処理が可能である。
[ヘッダ符号化部10E]
ヘッダ符号化部10Eは、入力画像#10に基づいて、NALユニットヘッダ、SPS、PPS、および、スライスヘッダなどをの、NALユニット単位、シーケンス単位、ピクチャ単位、またはスライス単位で復号に利用される情報を生成し、符号化して出力する。
ヘッダ符号化部10Eは、符号化データ#1に含まれるVPS、SPS、およびPPSを既定のシンタックス定義に基づいてパースして、シーケンス単位で復号に利用される情報を符号化する。例えば、レイヤ数に関する情報がVPSに符号化され、復号画像の画像サイズに関連する情報がSPSに符号化される。なお、複数レイヤの復号画像の画像サイズに関連する情報(レプリゼンテーション情報)はVPSで符号化され、SPSでは、ある対象レイヤの復号画像の画像サイズに関する情報(レプリゼンテーション情報)が符号化される。
また、ヘッダ符号化部10Eは、符号化データ#1に含まれるスライスヘッダを既定のシンタックス定義に基づいてパースして、スライス単位で復号に利用される情報を符号化する。例えば、スライスタイプがスライスヘッダから符号化される。
なお、ヘッダ符号化部10E、さらに、NALユニットヘッダ符号化部101E、VPS符号化部102E(222)、SPS符号化部103E、PPS符号化部104、及びスライスヘッダ符号化部105E等を含んで構成される(不図示)。
NALユニットヘッダ符号化101Eは、さらに、レイヤID符号化部1011E、NALユニットタイプ符号化部1012Eを含んで構成される(不図示)。
レイヤID符号化部1011Eは、外部から入力された各レイヤ画像Tの画像信号の符号化データ(スライスヘッダ、及びスライスデータ)、及びスライスデータを復号するために参照されるパラメータセット(VPS、SPS、PPS、及びSEI)の符号化データに対して、各レイヤ、及びレイヤに付随するサブレイヤを識別するためのレイヤID、テンポラルIDを付与し、符号化する。
NALユニットタイプ符号化部1012Eは、各符号化データに対して、符号化データの種別(識別)を表すNALユニットタイプを付与し、符号化する。なお、NALユニットタイプは説明済みのため省略する。
VPS符号化部102E(222)は、VPS復号部102の逆処理に対応し、複数のレイヤ画像T、及びVPSの規定シンタックスに基づいて、レイヤ単位で利用される情報を符号化する。なお、VPS符号化部102E(222)の詳細については、後述する。
SPS符号化部103Eは、SPS復号部103の逆処理に対応し、レイヤ画像T、及びSPSの規定のシンタックス定義に基づいて、シーケンス単位で利用される情報を符号化する。
PPS符号化部104Eは、PPS復号部104の逆処理に対応し、レイヤ画像Tの各ピクチャ、及びPPSの規定のシンタックス定義に基づいて、ピクチャ単位で利用される情報を符号化する。
スライスヘッダ符号化部105Eは、スライスヘッダ復号部105の逆処理に対応し、レイヤ画像Tのピクチャを構成するスライス単位毎に、スライスヘッダの規定のシンタクス定義に基づいて符号化し、スライス単位で復号に利用される情報を符号化する。
なお、VPS、SPSには各レイヤセットの符号化/復号に必要とするプロファイル、およびレベルに関するプロファイル/レベル情報profile_tier_level()が含まれる。ヘッダ符号化部10Eは、プロファイル/レベル情報に関して、以下の処理を行う。ヘッダ符号化部10Eは、外部より供給された、または予め設定された、レイヤセット数、及び各レイヤセットに適用するPTL情報の総数を供給する。続いて、外部より供給された、または予め設定された、レイヤセット0(例えば、基本レイヤ)、及び基本レイヤ、拡張レイヤより構成される各レイヤセット(レイヤに属する各サブレイヤも含む)のプロファイル情報、およびレベル情報(プロファイル/レベル/ティア)に基づいて、各レイヤセットに適用するプロファイル有無フラグ、サブレイヤのプロファイル有無フラグ(サブレイヤ有無フラグ)、サブレイヤのレベル有無フラグ(サブレイヤレベル有無フラグ)の値を設定し、設定したプロファイル有無フラグ、および各サブレイヤのプロファイル有無フラグ/レベル有無フラグを、ヘッダ情報符号化部へ供給する。また、あるPTL情報のプロファイル有無フラグが0であれば、該PTL情報が参照するPTL情報のリスト上の位置を示す参照PLT指定情報を供給する。
(画像復号装置との対応関係)
画像符号化装置2は、画像復号装置1の各構成と対応する構成を含む。ここで、対応とは、同様の処理、または、逆の処理を行う関係にあるということである。
例えば、画像復号装置1が備える参照ピクチャ情報復号部の参照ピクチャ情報復号処理と、画像符号化装置2が備える参照ピクチャ情報符号化部の参照ピクチャ情報符号化処理とは、同様である。より詳細には、参照ピクチャ情報復号部は、SPSやスライスヘッダから復号されるシンタックス値としてRPS情報や修正RPL情報を生成する。それに対し、参照ピクチャ情報符号化部は、入力されたRPS情報や修正RPL情報を、SPSやスライスヘッダのシンタックス値として符号化する。
例えば、画像復号装置1において、ビット列から、シンタックス値を復号する処理は、画像符号化装置2において、シンタックス値から、ビット列を符号化する処理と逆の処理としての対応となっている。
(処理の流れ)
画像符号化装置2が、入力画像#10から出力符号化データ#1を生成する手順は次のとおりである。
(S21)入力画像#10を構成する各ピクチャ(対象ピクチャ)に対して、以下のS22~S29の処理を実行する。
(S22)参照ピクチャセット決定部は入力画像#10内の対象ピクチャと復号ピクチャバッファ12に記録されている局所復号画像に基づいて参照ピクチャセットRPSを決定して、参照ピクチャリスト決定部に出力する。また、参照ピクチャセットRPSの生成に必要なRPS情報を導出して、参照ピクチャ情報符号化部に出力する。
(S23)参照ピクチャリスト決定部は入力画像#10内の対象ピクチャと入力された参照ピクチャセットRPSに基づいて参照ピクチャリストRPLを導出し、ピクチャ符号化部21、および、ピクチャ復号部11に出力する。また、参照ピクチャリストRPLの生成に必要なRPL修正情報を導出して、参照ピクチャ情報符号化部に出力する。
(S24)参照ピクチャ情報符号化部は、参照ピクチャセットRPSおよび参照ピクチャリストRPLに基づいて、SPS、または、スライスヘッダに含めるためのRPS情報およびRPL修正情報を生成する。
(S25)ヘッダ符号化部10Eは、入力画像#10、および、参照ピクチャ決定部13Eで生成されたRPS情報およびRPL修正情報に基づいて、対象ピクチャに適用するSPSを生成して出力する。
(S26)ヘッダ符号化部10Eは、入力画像#10に基づいて、対象ピクチャに適用するPPSを生成して出力する。
(S27)ヘッダ符号化部10Eは、入力画像#10、および、参照ピクチャ決定部13Eで生成されたRPS情報およびRPL修正情報に基づいて、対象ピクチャを構成する各スライスのスライスヘッダを符号化して、符号化データ#1の一部として外部に出力するとともに、ピクチャ復号部11に出力する。
(S28)ピクチャ符号化部21は、入力画像#10に基づいて、対象ピクチャを構成する各スライスのスライスデータを生成して、符号化データ#1の一部として外部に出力する。
(S29)ピクチャ符号化部21は、対象ピクチャの局所復号画像を生成し、対象ピクチャのレイヤIDとPOCに関連付けて復号ピクチャバッファに記録する。
(ピクチャ符号化部21の構成)
次に、本実施形態に係るピクチャ符号化部21の構成について説明する。図46は、本実施形態に係るピクチャ符号化部21の構成を示すブロック図である。ピクチャ符号化部21は、予測画像生成部201、減算部202、DCT・量子化部203、エントロピー符号化部204、逆量子化・逆DCT部205、加算部206、予測パラメータメモリ208、符号化パラメータ決定部210、予測パラメータ符号化部211を含んで構成される。予測パラメータ符号化部211は、インター予測パラメータ符号化部212及びイントラ予測パラメータ符号化部213を含んで構成される。
予測画像生成部201は、外部から入力されたレイヤ画像Tのレイヤ毎の各ピクチャについて、そのピクチャを分割した領域であるブロック毎に予測ピクチャブロックPを生成する。ここで、予測画像生成部201は、予測パラメータ符号化部211から入力された予測パラメータに基づいて復号ピクチャバッファ12から参照ピクチャブロックを読み出す。予測パラメータ符号化部211から入力された予測パラメータとは、例えば、動きベクトル又は変位ベクトルである。予測画像生成部201は、符号化対象ブロックを起点として予測された動きベクトル又は変位ベクトルが示す位置にあるブロックの参照ピクチャブロックを読み出す。予測画像生成部201は、読み出した参照ピクチャブロックについて複数の予測方式のうちの1つの予測方式を用いて予測ピクチャブロックPを生成する。予測画像生成部201は、生成した予測ピクチャブロックPを減算部202に出力する。なお、予測画像生成部201は、既に説明した予測画像生成部308と同じ動作であるため予測ピクチャブロックPの生成の詳細は省略する。
予測画像生成部201は、予測方式を選択するために、例えば、レイヤ画像に含まれるブロックの画素毎の信号値と予測ピクチャブロックPの対応する画素毎の信号値との差分に基づく誤差値を最小にする予測方式を選択する。予測方式を選択する方法は、これには限られない。
符号化対象のピクチャがベースレイヤピクチャである場合には、複数の予測方式とは、イントラ予測、動き予測及びマージ予測である。動き予測とは、上述のインター予測のうち、表示時刻間の予測である。マージ予測とは、既に符号化されたブロックであって、符号化対象ブロックから予め定めた範囲内にあるブロックと同一の参照ピクチャブロック及び予測パラメータを用いる予測である。符号化対象のピクチャがノンベースビューピクチャである場合には、複数の予測方式とは、イントラ予測、動き予測、マージ予測、及び変位予測である。変位予測(視差予測)とは、上述のインター予測のうち、別レイヤ画像(別視点画像)間の予測である。さらに、動き予測、マージ予測、及び変位予測である。
予測画像生成部201は、イントラ予測を選択した場合、予測ピクチャブロックPを生成する際に用いたイントラ予測モードを示す予測モードpredModeを予測パラメータ符号化部211に出力する。
予測画像生成部201は、動き予測を選択した場合、予測ピクチャブロックPを生成する際に用いた動きベクトルmvLXを予測パラメータメモリ208に記憶し、インター予測パラメータ符号化部212に出力する。動きベクトルmvLXは、符号化対象ブロックの位置から予測ピクチャブロックPを生成する際の参照ピクチャブロックの位置までのベクトルを示す。動きベクトルmvLXを示す情報には、参照ピクチャを示す情報(例えば、参照ピクチャインデックスrefIdxLX、ピクチャ順序番号POC)を含み、予測パラメータを表すものであっても良い。また、予測画像生成部201は、インター予測モードを示す予測モードpredModeを予測パラメータ符号化部211に出力する。
予測画像生成部201は、変位予測(レイヤ間画像予測)を選択した場合、予測ピクチャブロックPを生成する際に用いた変位ベクトルを予測パラメータメモリ208に記憶し、インター予測パラメータ符号化部212に出力する。変位ベクトルdvLXは、符号化対象ブロックの位置から予測ピクチャブロックPを生成する際の参照ピクチャブロックの位置までのベクトルを示す。変位ベクトルdvLXを示す情報には、参照ピクチャを示す情報(例えば、参照ピクチャインデックスrefIdxLX、レイヤID(あるいは、ビューIDview_id))を含み、予測パラメータを表すものであっても良い。また、予測画像生成部201は、インター予測モードを示す予測モードpredModeを予測パラメータ符号化部211に出力する。
予測画像生成部201は、マージ予測を選択した場合、選択した参照ピクチャブロックを示すマージインデックスmerge_idxをインター予測パラメータ符号化部212に出力する。また、予測画像生成部201は、マージ予測モードを示す予測モードpredModeを予測パラメータ符号化部211に出力する。
減算部202は、予測画像生成部201から入力された予測ピクチャブロックPの信号値を、外部から入力されたレイヤ画像Tの対応するブロックの信号値から画素毎に減算して、残差信号を生成する。減算部202は、生成した残差信号をDCT・量子化部203と符号化パラメータ決定部210に出力する。
DCT・量子化部203は、減算部202から入力された残差信号についてDCTを行い、DCT係数を算出する。DCT・量子化部203は、算出したDCT係数を量子化して量子化係数を求める。DCT・量子化部203は、求めた量子化係数をエントロピー符号化部204及び逆量子化・逆DCT部205に出力する。
エントロピー符号化部204には、DCT・量子化部203から量子化係数が入力され、符号化パラメータ決定部210から符号化パラメータが入力される。入力される符号化パラメータには、例えば、参照ピクチャインデックスrefIdxLX、ベクトルインデックスmvp_LX_idx、差分ベクトルmvdLX、予測モードpredMode、及びマージインデックスmerge_idx等の符号がある。
エントロピー符号化部204は、入力された量子化係数と符号化パラメータをエントロピー符号化して符号化データ#1を生成し、生成した符号化データ#1を外部に出力する。
逆量子化・逆DCT部205は、DCT・量子化部203から入力された量子化係数を逆量子化してDCT係数を求める。逆量子化・逆DCT部205は、求めたDCT係数について逆DCTを行い、符号化残差信号を算出する。逆量子化・逆DCT部205は、算出した符号化残差信号を加算部206に出力する。
加算部206は、予測画像生成部201から入力された予測ピクチャブロックPの信号値と逆量子化・逆DCT部205から入力された符号化残差信号の信号値を画素毎に加算して、参照ピクチャブロックを生成する。加算部206は、生成した参照ピクチャブロックを復号ピクチャバッファ12に記憶する。
予測パラメータメモリ208は、予測パラメータ符号化部211が生成した予測パラメータを、符号化対象のピクチャ及びブロック毎に予め定めた位置に記憶する。
符号化パラメータ決定部210は、符号化パラメータの複数のセットのうち、1つのセットを選択する。符号化パラメータとは、上述した予測パラメータやこの予測パラメータに関連して生成される符号化の対象となるパラメータである。予測画像生成部201は、これらの符号化パラメータのセットの各々を用いて予測ピクチャブロックPを生成する。
符号化パラメータ決定部210は、複数のセットの各々について情報量の大きさと符号化誤差を示すコスト値を算出する。コスト値は、例えば、符号量と二乗誤差に係数λを乗じた値との和である。符号量は、量子化誤差と符号化パラメータをエントロピー符号化して得られる符号化データ#1の情報量である。二乗誤差は、減算部202において算出された残差信号の残差値の二乗値についての画素間の総和である。係数λは、予め設定されたゼロよりも大きい実数である。符号化パラメータ決定部210は、算出したコスト値が最小となる符号化パラメータのセットを選択する。これにより、エントロピー符号化部204は、選択した符号化パラメータのセットを符号化データ#1として外部に出力し、選択されなかった符号化パラメータのセットを出力しない。
予測パラメータ符号化部211は、予測画像生成部201から入力されたパラメータに基づいて予測ピクチャを生成する際に用いる予測パラメータを導出し、導出した予測パラメータを符号化して符号化パラメータのセットを生成する。予測パラメータ符号化部211は、生成した符号化パラメータのセットをエントロピー符号化部204に出力する。
予測パラメータ符号化部211は、生成した符号化パラメータのセットのうち符号化パラメータ決定部210が選択したものに対応する予測パラメータを予測パラメータメモリ208に記憶する。
予測パラメータ符号化部211は、予測画像生成部201から入力された予測モードpredModeがインター予測モードを示す場合、インター予測パラメータ符号化部212を動作させる。予測パラメータ符号化部211は、予測モードpredModeがイントラ予測モードを示す場合、イントラ予測パラメータ符号化部213を動作させる。
インター予測パラメータ符号化部212は、符号化パラメータ決定部210から入力された予測パラメータに基づいてインター予測パラメータを導出する。インター予測パラメータ符号化部212は、インター予測パラメータを導出する構成として、インター予測パラメータ復号部303がインター予測パラメータを導出する構成と同一の構成を含む。
イントラ予測パラメータ符号化部213は、符号化パラメータ決定部210から入力された予測モードpredModeが示すイントラ予測モードIntraPredModeをインター予測パラメータのセットとして定める。
以下では、図7~9、17、20~24、26、29、33、47~49を参照し、本発明の実施例1に係るVPS符号化部102Eについて説明する。
[VPS符号化部222(102E)]
図47は、VPS符号化部222の概略的構成について示した機能ブロック図である。図47に示すように、VPS符号化部222は、プロファイルレベル情報符号化部(PTL情報符号化部)2221、参照PTL指定情報符号化部2222、プロファイル有無フラグ符号化部2223を含んで構成される。
<VPSの詳細な符号化プロセス>
以下、VPS符号化部222の動作について、図17を参照しながら説明する。図17において、”復号”を”符号化”と置き換えて解釈する。VPS符号化部222は、VSP復号部102の逆処理である。
(ステップSA101)VPS符号化部222は、図7上のシンタックス群SYNVPS01を符号化する。
(ステップSA102)VPS符号化部222に含まれるPTL情報符号化部2221が、図7上のSYNVPS02に示すレイヤセット0のPTL情報を符号化する。
(ステップSA103)VPS符号化部222は、図7上のシンタックス群SYNVPS03に示す各レイヤセットを構成するレイヤIDを符号化する。
(ステップSA104)VPS符号化222は、図7上のVPS拡張フラグvps_extension_flag(図7上のSYNVPS04)を符号化する。
(ステップSA105)VPS拡張フラグが1の場合(ステップSA105でYES)、VPS拡張データがVPS上にあると判定し、ステップSA106へ進む。VPS拡張フラグが0の場合(ステップSA105でNo)、VPS拡張データがVPS上にないと判定し、ステップSA109へ進む。
(ステップSA106)VPS拡張フラグの次ビットからVPS拡張データに含まれるavc_base_flagの直前まで、バイトアラインを調整するために、バイトアラインデータ(vps_extension_aligment_bit_equal_to_one)(図7上のシンタックス群SYNVPS05)を符号化する。
(ステップSA107)VPS拡張データvps_extension()を符号化する。なお、VPS拡張データの詳細の符号化プロセスについては後述する。
(ステップSA108)VPS符号化部222は、図7上のSYNVPS07に示すVPS拡張2フラグvps_extension2_flagを符号化する。VPS拡張2フラグが1であれば、さらにVPS拡張2データを符号化する。
(ステップSA109)VPS符号化部222は、図7上のSYNVPS08に示すRBSP_traling_bits()を符号化する。RBSP_trailing_bits()とは、バイトアラインデータである。なお、バイトアラインデータは、スタッフィングデータとも呼ばれる。
<VPS拡張データの詳細な符号化プロセス>
図18を参照しながら、VPS拡張データの符号化プロセスについて説明する。図18において、”復号”を”符号化”と置き換えて解釈する。
(ステップSB101)VPS符号化部222は、図8上のシンタックス群SYNVPS0Aを符号化する。
(ステップSB102)VPS符号化部222は、図8上のシンタックス群SYNVPS0Bに示す、各レイヤが参照する依存レイヤ(直接参照レイヤ、従属レイヤともいう)に関する依存フラグを符号化する。
(ステップSB103)VPS符号化部222は、レイヤセット数(図8上のシンタックスSYNVPS0C)を符号化する。
(ステップSB104)VPS符号化部222は、VPS上に含まれるPTL情報の総数(図8上のSYNVPS0D)を符号化する。
(ステップSB105)VPS上に含まれるPTL情報の符号化プロセスのループ開始点である。
(ステップSB106)VPS符号化部222に含まれるプロファイル有無フラグ符号化2223は、i番目のPTL情報profile_tier_level()上に、プロファイル情報を示すシンタックス群の有無を示すプロファイル有無フラグ(図8上のシンタックスSYNVPS0E)を符号化する。
(ステップSB107)プロファイル有無フラグが0の場合は、i番目のPTL情報上にプロファイル情報を示すシンタックス群がないと判定し、ステップSB108へ進む。プロファイル有無フラグが1の場合は、i番目のPTL情報上にプロファイル情報を示すシンタックス群がある判定し、ステップSB109へ進む。
(ステップSB108)プロファイル有無フラグが0の場合、VPS符号化部222に含まれる参照PTL指定情報符号化部2222は、i番目のPTL情報のプロファイル情報をPTL情報リスト上のいずれのPTL情報から参照するかを示す参照PTL情報指定インデクス(参照プロファイルレベル情報相対インデクスともいう)”profile_ref_delta_index_minus1[i]”(図8上のSYNVPS0Fa)を符号化する。参照PTL情報指定インデクス“profile_ref_delta_index_minus1[i]”は、i番目のPTL情報と参照先PTL情報の相対インデクスを表わす。すなわち、i番目のPTL情報は、j = (i - profile_ref_delta_minus1[i] +1 )で特定される、j番目のPTL情報をプロファイル情報の参照先とする。なお、予めエンコーダ側で、PTL情報リスト上のPTL情報を、類似順に並び替えておくことで、i番目のPTL情報は、直前のPTL情報を参照する確率を高めることができる。従って、参照PTL指定インデクス” profile_ref_delta_index_minus1[i]”は相対インデクスを、例えば、図20に示すように、ゴロム符号で表わすことにより、参照PTL指定インデクスを表現するために必要なビット長を従来に比べて削減することが可能である。
換言すれば、プロファイル/レベル情報符号化部は、上記プロファイル/レベル情報におけるi番目の参照PTL情報指定インデクスのセマンティックを、当該i番目の参照PTL情報指定インデクスが、i番目のプロファイル/レベル情報と参照されるプロファイル/レベル情報との間の相対的な位置を指定するものとして取り扱う。
例えば、参照PTL指定インデクス“profile_ref_delta_minus1[i]”の値が0、すなわち、i番目のPTL情報のひとつ前(i-1)番目のPTL情報を参照する場合、図20に示すゴロム符号を用いることにより、参照PTL指定インデクスを表現するのに必要なビット長は1ビットとなる。これにより、従来技術に比べて、参照PTL情報指定インデクスを固定長で表わす場合に比べて、符号量を削減することができる。また、PTL情報リスト上の先頭PTL情報(0番目)を参照することができるため、対象PTL情報が1番目のときに、参照PTL情報指定インデックスが機能しない欠点を解消することができる。なお、参照PTL指定インデクス“profile_ref_delta_minus1[i]”をゴロム符号の代わりに、k次指数ゴロム符号(k-th order Exponential Golomb: EGk(K>=0))により復号してもよく、同様の効果を奏する。なお、図20に示すゴロム符号は、0次指数ゴロム符号とも呼ばれる。
なお、PTL情報リスト上の先頭PTL情報(0番目)を参照することを禁止する場合は、対象PTL情報が1番目のときに、プロファイル有無フラグを必ず1と設定し、明示的に、1番目のPTL情報のプロファイル情報を必ず符号化データ内に含むよう、デコーダとエンコーダ間で予め取り決めておいてもよい(ビットストリーム制約ともいう)。これにより、対象PTL情報が1番目のときに、参照PTL情報指定インデックスが機能しない欠点を同様に解消することができる。
(ステップSB109)VPS符号化部222に含まれるPTL情報符号化部2222は、プロファイル有無フラグ、参照PTL指定情報(参照PTL指定インデクス)、サブレイヤ数、PTL情報を入力として、i番目のPTL情報のプロファイル、及びレベル情報を符号化する。PTL情報符号化2221の詳細については後述する。
(ステップSB110)VPS上に含まれるPTL情報の符号化プロセスのループ終端である。
(ステップSB111)VPS符号化部222は、各出力レイヤセットに適用するPTL情報を指定するPTL情報指定インデクス(図8上のシンタックス群SYNVPS0H上のprofile_level_tier_idx[i])を符号化する。
(ステップSB112)VPS符号化部222は、図8上のシンタックス群SYNVPS0Iに示す各レイヤの従属レイヤタイプを符号化する。
(ステップSB111)VPS符号化222は、図8上のその他シンタックス群SYNVPS0Jを符号化する。
<PTL情報符号化部2221の詳細>
次に、実施例1に係るPTL情報符号化部2221の詳細について、図49、図21を用いて説明する。PTL情報符号化部2221は、PTL情報復号部1021に対応する符号化装置である。なお、図21において、”復号”を”符号化”と置き換えて解釈する。
図49は、PTL情報符号化部2221の構成について例示した機能ブロック図である。図49に示すように、PTL情報符号化部2221は、プロファイル情報符号化部2221a、レベル情報符号化部2221b、サブレイヤプロファイル有無フラグ符号化部2221c、サブレイヤレベル有無フラグ符号化部2221d、バイトアラインデータ符号化部2221eを備える。なお、本実施例では、図49におけるlevelPresentFlagの入力線は無いものとして解釈する。
[プロファイル情報符号化部2221a]
プロファイル情報符号化部2221aは、外部より供給される、プロファイル有無フラグprofilePresentFlagに基づいて、外部より供給される、符号化対象PTL情報のプロファイル情報(最高次サブレイヤのプロファイル情報、あるいは汎用プロファイル情報とも呼ぶ)を符号化し、符号化データDATA#Tとして出力する。具体的には、プロファイル有無フラグprofilePresentFlagが1の場合、符号化対象PTL情報のプロファイル情報を符号化し、符号化データDATA#Tとして出力する。プロファイル有無フラグprofilePresentFlagが0の場合、符号化対象PTL情報に符号化すべきプロファイル情報がないため、符号化処理を行わない。
また、プロファイル情報符号化部2221aは、外部より供給される、プロファイル有無フラグprofilePresentFlag、サブレイヤ数MaxNumSubLayers、及び各サブレイヤのサブレイヤプロファイル有無フラグsub_layer_profile_present_flag[i]に基づいて、最高次サブレイヤを除く、符号化対象PTL情報の各サブレイヤのサブレイヤプロファイル情報を符号化し、符号化データDATA#Tとして出力する。
なお、画像復号装置1と画像符号化装置2の間において、プロファイル有無フラグが1、及び0の場合における、各サブレイヤのプロファイル情報の設定方法(推定方法)について予め取り決めておいてもよい。例えば、既に説明済だが、プロファイル有無フラグが1の場合は、図62(a)に示す疑似コードに従って、各サブレイヤのプロファイル情報を設定する。また、プロファイル有無フラグが0の場合は、図62(b)に示す疑似コードに従って設定する。これにより、profilePresentFlag=1、かつ、sub_layer_profile_present_flag[i]=0の場合のサブレイヤのプロファイル情報が不定値となる問題を解消することができる。
[レベル情報符号化部2221b]
レベル情報符号化部2221bは、外部より供給される、符号化対象PTL情報のレベル情報(最高次サブレイヤのレベル情報、あるいは汎用レベル情報とも呼ぶ)を符号化し、符号化データ#Tとして出力する。また、レベル情報符号化部2221bは、外部より供給される、サブレイヤ数MaxNumSubLayers、及び各サブレイヤのサブレイヤレベル有無フラグsub_layer_level_present_flag[i]に基づいて、最高次サブレイヤを除く、符号化対象PTL情報の各サブレイヤのサブレイヤレベル情報を符号化し、符号化データ#Tとして出力する。
具体的には、サブレイヤi(temporalId=i+1)のサブレイヤレベル有無フラグsub_layer_level_present_flag[i]が1の場合、外部より供給される、該サブレイヤiのレベル情報を符号化し、符号化データDATA#Tとして出力する。それ以外の場合(サブレイヤレベル有無フラグsub_layer_level_present_flag[i]が0)、符号化すべきレベル情報がないため、符号化処理を行わない。
なお、画像復号装置1と画像符号化装置2の間において、サブレイヤiのサブレイヤレベル有無フラグが0の場合における、各サブレイヤのレベル情報の設定方法(推定方法)について予め取り決めておいてもよい。例えば、既に説明済だが、サブレイヤレベル有無フラグが0場合は、図63(a)、(b)に示す疑似コードに従って、各サブレイヤのレベル情報を設定する。これにより、sub_layer_level_present_flag[i]=0の場合のサブレイヤのレベル情報が不定値となる問題を解消することができる。
[サブレイヤプロファイル有無フラグ符号化部2221c]
サブレイヤプロファイル有無フラグ符号化部2221cは、外部より供給される、サブレイヤ数MaxNumSubLayersに基づいて、符号化対象PTL情報の各サブレイヤのサブレイヤプロファイル有無フラグを符号化し、符号化データDATA#Tとして出力する。
[サブレイヤレベル有無フラグ符号化部2221d]
サブレイヤレベル有無フラグ符号化部2221dは、外部より供給される、サブレイヤ数MaxNumSubLayersに基づいて、符号化対象PTL情報の各サブレイヤのサブレイヤレベル有無フラグを符号化し、符号化データDATA#Tとして出力する。
[バイトアラインデータ符号化部2221e]
バイトアラインデータ符号化2221eは、サブレイヤ数(MaxNumSbuLayersMinus1,またはMaxNumSubLayers-1)に基づいて定まるビット数分のバイトアラインデータ(reserved_zero_2bits[i])(図9上のシンタックスSYNPTL04)を2bit単位で符号化し、符号化データDATA#Tとして出力する。バイトアラインデータとして、符号化すべきビット数は、図9上のシンタックスSYNVPSPTL04から明らかなように、”(8 - MaxNumSubLayersMinus1) * 2 bits”である。
(プロファイル/レベル情報profile_tier_level()の符号化処理の流れ)
図21を参照して、PTL情報profile_tier_level()の符号化処理を説明する。なお、図21において、”復号”を”符号化”と置き換えて解釈する。また、ステップSC103,SC112, SC115における動作は、符号化装置側では実施しない。すなわち、ステップSC101の分岐でNOの場合、ステップSC104へ進む。また、ステップSC110の分岐でNOの場合、ステップSC113へ進む。また、ステップSC113の分岐でNOの場合、ステップSC116へ進む。
(ステップSC101)プロファイル情報符号化部2221aは、プロファイル有無フラグprofilePresentFlagが1であるか判別する。プロファイル有無フラグprofilePresentFlagが1の場合(ステップSC101においてYes)の場合、ステップSC102へ進み、それ以外の場合(ステップSC101においてNo)の場合、ステップSC104へ進む。
(ステップSC102)プロファイル情報符号化部2221aは、符号化対象PTL情報のプロファイル情報として、例えば、図9上のシンタックス群SYNPTL01、
・プロファイル空間general_profile_space
・ティアフラグgeneral_tier_flag
・プロファイル識別子general_profile_idc
・プロファイル互換フラグgeneral_profile_compatibility_flag[ i ]
…省略…
・プロファイル予約シンタックスgeneral_reserved_zero_44bits
等を符号化する。
(ステップSC104)
レベル情報符号化部2221bは、符号化対象PTL情報のレベル情報として以下のシンタックス、
・レベル識別子general_level_idc
を符号化する。
(ステップSC105)
サブレイヤのサブレイヤプロファイル有無フラグ、およびサブレイヤレベル有無フラグの符号化に関するループの開始である。ループの開始前に、変数iは0に初期化される。ループ内の処理は、変数iがサブレイヤ数-1、“MaxNumSubLayers - 1”未満のときに実行され、ループ内の処理が1回実行される度に、変数iは“1”増分される。すなわち、ステップSC105~ステップSC107では、最高次サブレイヤを除く、サブレイヤのサブレイヤプロファイル有無フラグ、及びサブレイヤレベル有無フラグが符号化される。
(ステップSC106)
サブレイヤプロファイル有無フラグ符号化部2221cは、変数iで指定されるサブレイヤに関するサブレイヤプロファイル有無フラグsub_layer_profile_present_flag[i]を符号化する。
サブレイヤレベル有無フラグ符号化部2221dは、変数iで指定されるサブレイヤに関するサブレイヤレベル有無フラグsub_layer_level_present_flag[i]を符号化する。
(ステップSC107)
サブレイヤのサブレイヤプロファイル有無フラグ、およびサブレイヤレベル有無フラグの符号化に関するループの終端である。
(ステップSC108)
バイトアラインデータ符号化部2221eは、サブレイヤ数(MaxNumSbuLayersMinus1,またはMaxNumSubLayers-1)に基づいて定まるビット数分のバイトアラインデータ(reserved_zero_2bits[i])(図9上のシンタックスSYNPTL04)を2bit単位で符号化データDATA#Tへ挿入する(符号化する)。
具体的には、ステップSC105~ステップSC107において、サブレイヤ毎に符号化されるサブレイヤプロファイル有無フラグとサブレイヤレベル有無フラグの符号量は各1ビット、計2ビットであり、サブレイヤ数はMaxNumSubLayersであるため、ステップSC105~ステップSC107で復号される符号量の総和は、2 * (MaxNumSubLayer - 1)である。従って、バイトアラインデータとして、符号化すべきビット数は、”(8 - MaxNumSubLayersMinus1) * 2 bits”である。
(ステップSC109)
サブレイヤのサブレイヤプロファイル情報、およびサブレイヤレベル情報の符号化に関するループの開始点である。ループの開始前に、変数iは0に初期化される。ループ内の処理は、変数iがサブレイヤ数-1、“MaxNumSubLayers - 1”未満のときに実行され、ループ内の処理が1回実行される度に、変数iは”1”増分される。
(ステップSC110)
プロファイル情報符号化部2221aは、変数iで指定されるサブレイヤのサブレイヤプロファイル有無フラグsub_layer_profile_present_flag[i]が1であるかを判定する。サブレイヤプロファイル有無フラグが1の場合(ステップSC110においてYes)、ステップSC111へ進み、それ以外の場合(ステップSC110においてNo)、ステップSC113へ進む。
(ステップSC111)
プロファイル情報符号化部2221aは、変数iで指定されるサブレイヤのサブレイヤプロファイル情報として、例えば、図9上のシンタックス群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 ]
を符号化し出力する。
(ステップSC113)
レベル情報符号化部2221bは、変数iで指定されるサブレイヤのサブレイヤレベル有無フラグsub_layer_level_present_flag[i]が1であるか判定する。サブレイヤレベル有無フラグが1の場合(ステップSC113においてYes)、ステップSC114へ進み、それ以外の場合(ステップSC113においてNo)、ステップSC116へ進む。
(ステップSC114)
レベル情報符号化部2221bは、変数iで指定されるサブレイヤのサブレイヤレベル情報として、
・サブレイヤレベル識別子sub_layer_level_idc[ i ]
を符号化し出力する。
(ステップSC116)
サブレイヤのサブレイヤプロファイル情報、およびサブレイヤレベル情報の符号化に関するループの終端である。
以上、実施例1に係るプロファイル/レベル情報符号化部2221の動作について説明したが、上記ステップに限定されず、実施可能な範囲で、ステップを変更しても構わない。
(実施例1の変形例)
図22を参照しながら、VPS符号化部202の変形例について説明する。なお、参照PTL情報指定インデクス(図22上のシンタックスSYNVPS0Fb)を除き、VPS符号部202の動作は、実施例1と同一であるため、説明を省略する。
実施例1では、参照PTL情報指定インデクスをPTL情報リスト上の対象PTL情報の位置と参照先のPTL情報の相対インデクス(profile_ref_delta_index_minus1[i])をゴロム符号により符号化していたが、これに限定されない。例えば、相対インデックスの代わりに、PTL情報リスト上の“profile_ref[i]”番目にあるPTL情報のプロファイル情報を参照するようにしてもよい。このとき、参照PTL情報指定インデクス”profile_ref[i]”を対象PTL情報のリスト上の位置を示すインデクスiに基づいて定まるビット長Vにより可変長符号化する。ここでビット長Vは、ceil(log2(i) )により定まる。これにより、従来技術に比べて、参照PTL情報指定インデクスを固定長で表わす場合に比べて、符号量を削減することができる。また、PTL情報リスト上の先頭PLT情報(0番目)を参照することができるため、対象PTL情報が1番目のときに、参照PTL情報指定インデックスが機能しない欠点を解消することができる。
換言すれば、プロファイル/レベル情報符号化部が符号化する上記プロファイル/レベル情報において、1番目のプロファイル/レベル情報のプロファイルおよびティアの情報が、0番目のプロファイル/レベル情報に基づいて推定可能となるように、参照PTL情報指定インデクスが参照プロファイルに変更されている。
なお、PTL情報リスト上の先頭PTL情報(0番目)を参照することを禁止する場合は、対象PTL情報が1番目のときに、プロファイル有無フラグを必ず1と設定し、明示的に、1番目のPTL情報のプロファイル情報を必ず符号化データ内に含むよう、デコーダとエンコーダ間で予め取り決めておいてもよい(ビットストリーム制約ともいう)。これにより、対象PTL情報が1番目のときに、参照PTL情報指定インデックスが機能しない欠点を同様に解消することができる。
<<VPS符号化部202の変形例2>>
次に、図23、図24、図26、図47を用いて、VPS符号化部202の変形例2について説明する。
図23は、拡張ビデオパラメータセットVPSのシンタックステーブルの変形例である。図24を参照して、VPS拡張データの符号化プロセスを説明する。なお、図24で”復号”を”符号化”と置き換えて解釈する。
まず、変形例2に係る拡張ビデオパラメータセットVPSのシンタックステーブルについて図23を用いて説明する。図23と図8に示す拡張ビデオパラメータセットVPSのシンタックステーブルとの違いは、図23では、図8上のシンタックスSYNVPS0Faに示す参照PTL情報指定インデクス(profile_ref_delta_index_minus1[i])が削除され、参照PTL指定情報指定インデクスの機能を、図23上のシンタックスSYNVPS0Eに示すプロファイル有無フラグ(vps_profile_present_flag[i])が兼用する点である。すなわち、プロファイル有無フラグ(vps_profile_present_flag[i])の値が1の場合は、i番目のPTL情報のプロファイル情報が符号化される。一方、プロファイル有無フラグの値が0の場合は、i番目のPTL情報のプロファイル情報には、i番目のPTL情報の直前に符号化された、(i-1)番目の符号化済PTL情報と同一であるため、プロファイル情報の符号化を省略する。
続いて、変形例2に係るVPS符号化部202’とVPS符号化202の構成の違いについて説明する。VPS符号化部202’は、VPS符号化部202が備える参照PTL指定情報符号化部2222を備えていない。また、プロファイル有無フラグの入力線が、PTL情報符号化部2221へプロファイル有無フラグの入力線がある点が異なる(不図示)。
また、変形例2に係るPTL情報符号化部2221は、実施例1に係るPTL情報符号化部2221と構成要素は同一であるため、説明を省略する。
また、PTL情報の符号化処理の流れも、実施例1に係るPLT情報の符号化処理の流れと同一であるため、説明を省略する。
以上のように、変形例2に係る拡張ビデオパラメータセットVPSのシンタックステーブルでは、図23のシンタックスSYNVPS0Faに示す参照PTL情報指定インデクス(profile_ref_delta_index_minus1[i])が削除され、参照PTL指定情報指定インデクスの機能を、図23上のシンタックスSYNVPS0Eに示すプロファイル有無フラグ(vps_profile_present_flag[i])が兼用している。すなわち、プロファイル有無フラグ(vps_profile_present_flag[i])の値が1の場合は、i番目のPTL情報のプロファイル情報が符号化される。一方、プロファイル有無フラグの値が0の場合は、i番目のPTL情報のプロファイル情報には、i番目のPTL情報の直前に符号化された、(i-1)番目の符号化済PTL情報のプロファイル情報と同一であるため、プロファイル情報の符号化を省略する。なお、予めエンコーダ側で、PTL情報リスト上のPTL情報を、類似順に並び替えておくことで、i番目のPTL情報は、直前のPTL情報を参照する確率を高めることができる。すなわち、vps_profile_present_flag[i]=0の場合、参照PTL指定インデクス”profile_ref_delta_index_minus1[i]”を符号化せずに、参照PTL指定インデクス”profile_ref_delta_index_minus1[i]==0”と推定しているとも解釈できる。これにより、相対インデクスに係る符号量をさらに削減することが可能である。
<<VPS符号化部222の変形例3>>
VPS符号化部222の変形例3は、VPS復号部102の変形例3に対応する逆処理である。
変形例3に係るVPS符号化部222’とVPS符号化部222の構成の違いについて説明する。図48に示すVPS符号化部222’’は、VPS符号化部222が備える参照PTL指定情報符号化2222を備えておらず、新たに、レベル有無フラグ符号化部2224’を備える。レベル有無フラグ符号化部2224’は、外部より入力された符号化対象PTL情報のレベル有無フラグを符号化し、符号化データとして出力する。
以下、変形例3におけるPTL情報符号化部2221の構成について図49を用いて説明する。変形3に係るPTL情報符号化部2221は、実施例1に係るPTL情報符号化部2221に対して、レベル有無フラグの入力線が、レベル情報符号化部2221b、及びサブレイヤレベル有無フラグ符号化部2221dに有る点を除き、その他の構成要素は同一であるため、説明を省略する。以下では、レベル情報符号化部2221b、及びサブレイヤレベル有無フラグ符号化部2221dの機能の異なる点のみ説明する。
[レベル情報符号化部2221b]
レベル情報符号化部2221bは、外部より供給される、レベル有無フラグlevelPresentFlagに基づいて、符号化対象PTL情報のレベル情報(最高次サブレイヤのレベル情報、あるいは汎用レベル情報とも呼ぶ)を符号化し出力する。具体的には、レベル有無フラグlevelPresentFlagが1の場合、符号化対象PTL情報のレベル情報を符号化する。レベル有無フラグlevelPresentFlagが0の場合、符号化対象PTL情報のレベル情報が、符号化対象PTL情報の1つ前に符号化した符号化済PTL情報((i-1)番目のPTL情報)のレベル情報と同一であるため、レベル情報の符号化を省略する。
また、レベル情報符号化部2221bは、外部より供給される、レベル有無フラグlevelPresentFlag、サブレイヤ数MaxNumSubLayers、及び各サブレイヤのサブレイヤレベル有無フラグsub_layer_level_present_flag[i]に基づいて、最高次サブレイヤを除く、符号化対象PTL情報の各サブレイヤのサブレイヤレベル情報を符号化し出力する。
(レベル有無フラグが1の場合)
レベル有無フラグが1の場合、実施例1に係るPTL情報符号化部2221が備えるレベル情報符号化部2221bの動作と同一であるため、詳細の説明を省略する。簡単にいえば、サブレイヤi(temporalId=i+1)のサブレイヤレベル有無フラグが1の場合、該サブレイヤiのレベル情報を符号化する。それ以外の場合は、サブレイヤiのレベル情報の符号化を省略する。なお、画像復号装置1と画像符号化装置2の間で、サブレイヤiのサブレイヤレベル有無フラグが0の場合における、レベル情報の設定方法を予め取り決めておいてもよい。例えば、例えば、符号化対象PTL情報のサブレイヤ(i+1)のレベル情報を、サブレイヤiのレベル情報として設定する(図63参照)。これにより、level_present_flag=0、かつ、sub_layer_level_present_flag[i]=0の場合において、サブレイヤのレベル情報が不定値になる課題を解消することができる。
(レベル有無フラグが0の場合)
サブレイヤi(temporalId=i+1)のサブレイヤレベル有無フラグが1の場合、該サブレイヤiのレベル情報を符号化する。それ以外の場合は、符号化対象PTL情報のサブレイヤのiレベル情報が、符号化対象PTL情報の1つ前に符号化された符号化済PTL情報((idx-1)番目のPTL情報)の対応するサブレイヤのレベル情報と同一であるため、レベル情報の符号化を省略する。ここで、idxは、PTL情報リスト上の復号対象PTL情報の位置を示すインデクスである。なお、サブレイヤのレベル情報の設定ルールは、図64(b)に示す通りである。
(プロファイル/レベル情報profile_tier_level()の符号化処理の流れ)
以下、図33を用いて、変形例3に係るPTL情報符号化部2221の動作を説明する。なお、図33において、”復号”を”符号化”と置き換えて解釈する。また、図33のうち、図33のうち、図21と動作が異なるステップSG104、SG105、SG106、SG115、SG116、SG117のみ説明する。それ以外のステップは共通のため説明を省略する。また、符号化側では、ステップSG103、SG106、SG114、及びSG117の処理を実施しない。すなわち、ステップSG101の分岐でNoの場合、ステップSG104へ進む。また、ステップSG104の分岐でNoの場合、ステップSG107へ進む。また、ステップSG112の分岐でNoの場合、ステップSG115へ進む。また、ステップSG115の分岐でNOの場合、ステップSG118へ進む。
(ステップSG104)レベル情報符号化部2221bは、レベル有無フラグlevelPresentFlagが1であるか判別する。レベル有無フラグlevelPresentFlagが1の場合(ステップSG104においてYes)の場合、ステップSG105へ進み、それ以外の場合(ステップSG104においてNo)の場合、ステップSG107へ進む。
(ステップSG105)レベル情報符号化部2221bは、符号化対象PTL情報のレベル情報として、以下のシンタックス、
・レベル識別子general_level_idc
を符号化する。
(ステップSG115)
レベル情報符号化部2221bは、変数iで指定されるサブレイヤのサブレイヤレベル有無フラグsub_layer_level_present_flag[i]が1であるかを判定する。サブレイヤレベル有無フラグが1の場合(ステップSG115においてYes)、ステップSG116へ進み、それ以外の場合(ステップSG115においてNo)、ステップSG118へ進む。
(ステップSG116)
レベル情報符号化部2221bは、変数iで指定されるサブレイヤのサブレイヤレベル情報として、
・サブレイヤレベル識別子sub_layer_level_idc[ i ]
を符号化する。
以上、変形例3に係るPTL情報符号化部2221の動作について説明したが、上記ステップに限定されず、実施可能な範囲で、ステップを変更しても構わない。
以上のように、変形例3に係る拡張ビデオパラメータセットVPSのシンタックステーブルでは、図23のシンタックスSYNVPS0Fに示す参照PTL情報指定インデクス(profile_ref_delta idx_minus1[i])が削除され、参照PTL指定情報指定インデクスの機能を、図29上のシンタックスSYNVPS0Eに示すプロファイル有無フラグ(vps_profile_present_flag[i])、及びレベル有無フラグ(vps_level_present_flag[i])が兼用している。すなわち、プロファイル有無フラグ(vps_profile_present_flag[i])の値が1の場合は、i番目のPTL情報のプロファイル情報が符号化される。一方、プロファイル有無フラグの値が0の場合は、i番目のPTL情報のプロファイル情報は、i番目のPTL情報の直前に符号化された、(i-1)番目の符号化済PTL情報のプロファイル情報と同一であるため、符号化を省略する。また、レベル有無フラグ(vps_level_present_flag[i])の値が1の場合は、i番目のPTL情報のレベル情報が符号化される。一方、レベル有無フラグの値が0の場合は、i番目のPTL情報のレベル情報には、i番目のPTL情報の直前に符号化された、(i-1)番目の符号化済PTL情報のレベル情報と同一であるため、符号化を省略する。なお、予めエンコーダ側で、PTL情報リスト上のPTL情報を、類似順に並び替えておくことで、i番目のPTL情報は、直前のPTL情報を参照する確率を高めることができる。すなわち、vps_profile_present_flag[i]=0、または、vps_level_present_flag[i]=0の場合、参照PTL指定インデクス”profile_ref_delta_index_minus1[i]”を符号化せずに、参照PTL指定インデクス”profile_ref_delta_index_minus1[i]==0”と推定しているとも解釈できる。これにより、相対インデクスに係る符号量をさらに削減することが可能である。さらに、変形例3は、実施例1と同様に、符号化対象PTL情報のプロファイル情報、及びレベル情報の冗長性を低減させる効果を奏する。
<<VPS符号化部222の変形例3a>>
VPS符号化部222の変形例3aは、VPS復号部202の変形3aに対応する逆処理である。上記変形3は、次のようにも構成を変更することが可能である。すなわち、プロファイル有無フラグprofilePresentFlag、及びレベル有無フラグlevelPresentFlagをプロファイル情報とレベル情報の有無を表わすプロファイルレベル有無フラグProfileLevelPresentFlagへ置き換える。
以下、変形例3aにおけるPLT情報符号化部2221の構成について図49を代用して説明する。変形例3aに係るPTL情報符号化部2221は、変形例3に係るPTL情報復号部2221における、プロファイル有無フラグprofilePresentFlag、及びレベル有無フラグlevelPresentFlagの入力値を除いて、構成、及び動作は同一である。図49では、プロファイル有無フラグprofilePresentFlag、及びレベル有無フラグlevelPresentFlagの配線があるが、変形例3aでは、プロファイルレベル有無フラグprofileLevelPresentFlagが0の場合には、図49のprofilePresentFlag、及びlevelPresentFlagを0として入力する。また、プロファイルレベル有無フラグprofileLevelPresentFlagが1の場合には、図49のprofilePresentFlag、及びlevelPresentFlagを1として入力する。なお、この変更により、既存のHEVCのVPSの先頭に位置するPTL情報、及び、ベースレイヤで通知されるSPS上のPTL情報のシンタックステーブルに変更はない。すなわち、既存のHEVCデコーダによって、VPS、SPS上のPTL情報が復号できないということは発生しない。
以上、変形3aは、変形3と同様の効果を奏する。さらに、変形例3に対して、プロファイル有無フラグとレベル有無フラグを1つにまとめて、プロファイル情報とレベル情報の有無を示すプロファイルレベル有無フラグとすることで、追加的なフラグ(変形3であれば、レベル有無フラグ)に係る符号量を削減することが可能である。
<<VPS符号化部222の変形例4>>
次に図65、図67を用いて、VPS符号化部202の変形例4について説明する。VPS符号化部202の変形4は、VPS復号部102の変形例4に対応する逆処理である。なお、変形例4に係るVPS拡張データのシンタクステーブルにつては、VPS復号部102の変形例4において、既に説明済であるため省略するが、同様の効果を奏する。
(VPS符号化部222’’’の構成)
図47を参照して、変形例4に係るVPS符号化部222’’’の構成について説明する。VPS符号化部222’’’は、実施例1に係るVPS符号化部222の備えるPTL情報符号化部2221、参照PTL情報符号化部2222、及びプロファイル有無フラグ符号化部2223と同一の構成要素に加え、さらに、バイトアラインデータ符号化部2024(不図示)を含んで備える。なお、以下では、バイトアラインデータ符号化部2224についてのみ説明する。
VPS符号化部222’’’の備えるバイトアラインデータ符号化部2224は、VPS拡張データvps_extension()に含まれる、バイトアラインを調整するために挿入されるデータ、バイトアラインデータを符号化する。例えば、vps_alignment_bit_equal_to_one(図65上のSYNVPS0G)や、reserved_zero_1bits[i](図65上のSYNVPS0K)
である。
<VPS拡張データの詳細な符号化プロセス(変形例4)>
図67を用いて、VPS符号化部222’’’のVPS拡張データの符号化プロセスについて説明する。
(ステップSJ101)VPS符号化部222’’’は、図65上のシンタックス群SYNVPS0Aを符号化する。
(ステップSJ102)VPS符号化部222’’’は、図65上のSYNVPS0Eに示すPTL情報リストまでのバイトオフセット情報(vps_ptl_info_offset)を符号化する。
(ステップSJ103)VPS符号化部222’’’は、図65上のSYNVPS0Fに示すスケーラビリティマスクフラグを符号化する。
・・・省略・・・
(ステップSJ104)VPS符号化部222’’’の備えるバイトアラインデータ符号化部2224は、図65上のSYNVPS0Gに示す所定の判定式に基づいて、バイトアラインデータ(vps_alignment_bit_equal_to_one)を1ビット単位で符号化する。
(ステップSJ105)VPS符号化部222’’’は、図65上のSYNVPS0Hに示すレイヤセット数を符号化する。
(ステップSJ106)VPS符号化部222’’’は、図65上のSYNVPS0Iに示すPTL情報数を符号化する。
(ステップSJ107)VPS符号化部222’’’に含まれるプロファイル有無フラグ復号部1023は、図65上のSYNVPS0Jに示すプロファイル有無フラグを”PTL情報数-1”個符号化する。
(ステップSJ108)VPS符号化部222’’’の備えるバイトアラインデータ符号化部2224は、図65上のSYNVPS0Kに示すバイトアラインデータ(reserved_zero_bit[i])を符号化する。符号化するバイトアラインデータのビット数は、V={ 8 - { { (vps_num_profile_tier_level_minus1 + 1) % 8 } % 8 } }である。
(ステップSJ109)VPS上に含まれるPTL情報の符号化プロセスのループ開始点である。
(ステップSJ110)プロファイル有無フラグが0の場合は、i番目のPTL情報上にプロファイル情報を示すシンタックス群がないと判定し、ステップSJ112へ進む。プロファイル有無フラグが1の場合は、i番目のPTL情報上にプロファイル情報を示すシンタックス群がある判定し、ステップSJ111へ進む。
(ステップSJ111)プロファイル有無フラグが0の場合、VPS符号化部222’’’に含まれる参照PTL指定情報符号化部2222は、i番目のPTL情報のプロファイル情報をPTL情報リスト上のいずれのPTL情報から参照するかを示す参照PTL情報指定インデクス”profile_ref_minus1[i]”(図65上のSYNVPS0L)を符号化する。参照PTL情報指定インデクス“profile_ref_ minus1[i]”は、参照先のPTL情報の位置を表す。すなわち、i番目のPTL情報は、j = (profile_ref_ minus1[i] +1 )で特定される、j番目のPTL情報をプロファイル情報と同一である。
(ステップSJ112)VPS符号化部222’’’に含まれるPTL情報符号化部2221は、プロファイル有無フラグ、参照PTL指定インデクス、サブレイヤ数を入力として、i番目のPTL情報のプロファイル、及びレベル情報を符号化する。PTL情報符号化部2221の詳細については説明済みのため省略する。
(ステップSJ113)VPS上に含まれるPTL情報の符号化プロセスのループ終端である。
(ステップSJ114)VPS符号化部222’’’は、その他のシンタックスを符号化する。
以上、変形例4に係るVPS符号化部222’’’のの動作について説明したが、上記ステップに限定されず、実施可能な範囲で、ステップを変更しても構わない。
<<VPS符号化部222の変形例4a>>
続いて、図68、図70を用いて、VPS符号化部222の変形例4aについて説明する。VPS符号化部202の変形例4aは、VPS復号部102の変形例4aに対応する逆処理である。なお、変形例4aに係るVPS拡張データのシンタクステーブルにつては、VPS復号部102の変形例4aにおいて、既に説明済であるため省略するが、同様の効果を奏する。
(VPS符号化部222’’’aの構成)
変形例4aに係るVPS符号化部222’’’aの構成について説明する。VPS符号化部222’’’aは、変形例2に係るVPS符号化部222’の備えるPTL情報符号化部2221’、及びプロファイル有無フラグ符号化部2223’と同一の構成要素に加えて、さらに、バイトアラインデータ符号化部2224(不図示)を含んで備える。同一の構成要素である、PTL情報符号化部2221’、及びプロファイル有無フラグ符号化部2223’の説明は省略する。また、バイトアラインデータ符号化部2224は、変形例4に係るVPS符号化部222’’’の備えるバイトアラインデータ符号化部22224と同一の構成要素であるため、説明を省略する。
<VPS拡張データの詳細な符号化プロセス(変形例4a)>
図70を用いて、VPS符号化部222’’’aのVPS拡張データの符号化プロセスについて説明する。なお、VPS符号化部222’’’aのVPS拡張データの符号化プロセスでは、図70上のステップSL110(プロファイル有無フラグの値に基づく分岐判定、及び分岐に基づく遷移)、ステップSL111(参照PTL情報指定インデクスprofile_ref_minus1[i]の符号化)が省略されている点が異なり、それ以外の動作は同一であるため、説明を省略する。
以上、変形例4aに係るVPS符号化部222’’’aの動作について説明したが、上記ステップに限定されず、実施可能な範囲で、ステップを変更しても構わない。
以上のように、プロファイル/レベル情報符号化部が符号化するプロファイル/レベル情報において、1番目のプロファイル/レベル情報のプロファイルおよびティアの情報が、0番目のプロファイル/レベル情報に基づいて推定可能となるように、参照PTL情報指定インデクスが参照プロファイルに変更されていてもよい。
また、プロファイル/レベル情報符号化部が符号化するプロファイル/レベル情報において、参照PTL情報指定インデクスに代えて、VPSプロファイル有無フラグが含まれていてもよい。
また、プロファイル/レベル情報符号化部は、i番目のサブレイヤに対するレベルの情報が提示されない場合、該レベルは、(i+1)番目のサブレイヤのレベルと、レベルの識別子のレベルとのうち小さい方に等しい、と推定するように符号化してもよい。
また、プロファイル/レベル情報には、VPSレベル有無フラグが付加されており、プロファイル/レベル情報符号化部は、VPSレベル有無フラグが「0」に等しい場合、i番目のプロファイル/レベル情報のレベルの情報を、それ以前のプロファイル/レベル情報のレベルの情報から導出できるように符号化してもよい。
(付記事項)
なお、レイヤセットに適用されるPTL情報のプロファイル情報、及びレベル情報には、レイヤセットを構成する全レイヤ、及び各レイヤに付随するサブレイヤを復号するの必要な最大のプロファイル情報、及びレベル情報が設定される。また、サブレイヤのプロファイル情報、及びレベル情報に関しても、レイヤセット内の全レイヤの特定のテンポラルID以下のサブレイヤを復号するに必要な最大のプロファイル情報、及びレベル情報が設定される。
また、レイヤセットA{レイヤIDリスト{L#0,L#1,L#2},HighestTid=3}と、レイヤセットAのサブセットとなるレイヤセットB{レイヤIDリスト{L#0,L#1}, HighestTid=2}に適用される各PTL情報(PTL情報A、PTL情報Bとする)では、下位レイヤセット(レイヤセットB)のPTL情報Bのプロファイル情報、及びレベル情報は、上位レイヤセット(レイヤセットA)のPTL情報Aの下位互換であるようにする。すなわち、以下の制約が少なくともある。
・下位レイヤセットBのプロファイル空間の値≦上位レイヤセットAのプロファイル空間の値
・下位レイヤセットBのプロファイル識別子の値≦上位レイヤセットAのプロファイル識別子の値
・下位レイヤセットBのティアフラグの値≦上位レイヤセットAのティアフラグの値
・上位レイヤセットAのプロファイル互換フラグには、下位レイヤセットBのプロファイル識別子に該当するプロファイル互換フラグの値が1である(すなわち、レイヤセットAは、レイヤセットBの上位互換である)。レイヤセットBのプロファイル識別子を例えば“LayerSetBProfileIdc”とし、レイヤセットAのプロファイル互換フラグを”LayerSetA’s general_compatibility_flag[i]”とすれば、”LayerSetA’s general_compatibility_flag[“LayerSetBProfileIdc”]= 1”と設定される。
・上位レイヤセットAのレベル識別子の値≧下位レイヤセットBのレベル識別子の値
同様の制約が、サブレイヤのプロファイル情報、及びレベル情報にも適用される。すなわち、“下位レイヤセットB”を“下位レイヤセットBのサブレイヤ(temporalId=i)”と読み替え、また、“上位レイヤセットA”を“上位レイヤセットAのサブレイヤ(temporalId=i)”と読み替えて解釈すればよい。
上記の制約を課すことのメリットについて、以下説明する。従来技術(非特許文献1~3)では、上位レイヤセットAのサブセットであるレイヤセットBにそれぞれ適用されるPTL情報(プロファイル情報、及びレベル情報、及びサブレイヤのサブレイヤプロファイル情報およびサブレイヤレベル情報)との間に制約がないため、画像復号装置の実装負荷が高い(画像復号装置の複雑度が増大する)という問題がある。
例えば、図2において、レイヤセットA{{レイヤIDリスト{L#0,L#1,L#2},HighestTid=3}の各レイヤL#Nのプロファイルが次のように、
レイヤL#2のプロファイル:"scalable main profile"、
レイヤL#1のプロファイル:"scalable high profile"、
レイヤL#0のプロファイル:"main profile"、
と3種類のプロファイルの設定で符号化されたものと仮定する。ここで、"scalable highprofile"は、"scalable main profile"、及び”main profile”の符号化ツールを全てサポートする上位のスケーラブルプロファイルであり、"scalable main profile"は、"mainprofile"の符号化ツールを全てサポートする上位のスケーラブルプロファイルであり,
“main profile”は、非特許文献1で記載されている、HEVCの“main profile”を表わすものとする。すなわち、プロファイルの関係は、"main profile" < "scalable mainprofile" < "scalable high profile"となる。
上記例の場合、プロファイル"scalable high profile"をサポートする画像復号装置では、レイヤセットA内の全レイヤ(L#0,L#1,L#2)を復号することが可能である。すなわち、レイヤセットAを完全に復号することができる。しかし、プロファイル"scalable main profile"をサポートする画像復号装置では、仮に、レイヤセットAのサブセット(レイヤセットB)を抽出したビットストリームの復号を試みても、下位レイヤ(L#1)のプロファイルが上位レイヤ(L#2)のプロファイルと互換がないため、レイヤL#2の復号時に依存する下位レイヤ(L#1)および、上位レイヤL#2を復号できず、下位プロファイル"main profile"である基本レイヤL#0しか復号することができない。すなわち、画像符号化装置側において、下位レイヤのプロファイルが、上位レイヤのプロファイルと互換のないプロファイルを不連続に設定した符号化データが生成される可能性がある。そのため、画像復号装置側において、その符号化データを復号する場合には、復号対象レイヤが依存する下位レイヤを復号できず、結果として、レイヤのスケーラビリティやサブレイヤのスケーラビリティの粒度が粗くなるという課題がある。
また、画像復号装置側において、上記のような符号化データに対して柔軟にスケーラビリティを実現できるようするには、複数のプロファイルをサポートするように実装する必要があり、画像復号装置の複雑度が増大するという課題がある。
同様に、レベル/ティアに関しても、レイヤセット間のレベル/ティアとの間に制約がないことにより、上記プロファイル制約がない場合と同様の問題が発生する。すなわち、画像符号化装置側で、下位レイヤのレベルおよびティアが、上位レイヤのレベルおよびティアと互換のないレベルおよびティアを不連続に設定した符号化データが生成される可能性があり、画像復号装置側において、レイヤのスケーラビリティやサブレイヤのスケーラビリティの粒度が粗くなり、柔軟性が損なわれるという課題が発生する。また、画像復号装置側において、上記のような符号化データに対して柔軟にスケーラビリティを実現できるようするには、複数のレベルおよびティアをサポートするように実装する必要があり、画像復号装置の複雑度が増大するという課題がある。
そこで、上記課題を解決するため、包含関係にあるレイヤセット間では、以下の制約を課すことが好ましい。
(1-1)下位レイヤセットBのプロファイル空間の値≦上位レイヤセットAのプロファイル空間の値
(1-2)下位レイヤセットBのプロファイル識別子の値≦上位レイヤセットAのプロファイル識別子の値
(1-3)下位レイヤセットBのティアフラグの値≦上位レイヤセットAのティアフラグの値
(1-4)上位レイヤセットAのプロファイル互換フラグには、下位レイヤセットBのプロファイル識別子に該当するプロファイル互換フラグの値が1である(すなわち、レイヤセットAは、レイヤセットBの上位互換である)。レイヤセットBのプロファイル識別子を例えば、
“LayerSetBProfileIdc”とし、レイヤセットAのプロファイル互換フラグを”LayerSetA’s general_profile_compatibility_flag[i]”とすれば、”LayerSetA’s general_profile_compatibility_flag[“LayerSetBProfileIdc”]= 1”と設定される。
(1-5)上位レイヤセットAのレベル識別子の値≧下位レイヤセットBのレベル識別子の値
また、同一のレイヤセット内の各レイヤに対しても以下の制約を課すことが好ましい。(2-1)下位レイヤL#Nのプロファイル空間の値≦上位レイヤL#(N+1)のプロファイル空間の値
(2-2)下位レイヤL#Nのプロファイル識別子の値≦上位レイヤL#(N+1)のプロファイル識別子の値
(2-3)下位レイヤL#Nのティアフラグの値≦上位レイヤL#Nのティアフラグの値
(2-4)下位レイヤL#Nのレベル識別子の値≦上位レイヤL#Nのレベル識別子の値
また、同一レイヤ(L#N)のサブレイヤ(サブレイヤNを、SL#Nと表記する)に対しても以下の制約を課すことが好ましい。
(3-1)下位サブレイヤSL#Nのプロファイル空間の値≦上位サブレイヤSL#(N+1)のプロファイル空間の値
(3-2)下位サブレイヤSL#Nのプロファイル識別子の値≦上位サブレイヤSL#(N+1)のプロファイル識別子の値
(3-3)下位サブレイヤSL#Nのティアフラグの値≦上位サブレイヤSL#(N+1)のティアフラグの値
(3-4)上位サブレイヤSL#(N+1)のプロファイル互換フラグには、下位サブレイヤSL#Nのプロファイル識別子に該当するプロファイル互換フラグの値が1である(すなわち、サブレイヤSL#(N+1)は、サブレイヤSL#Nの上位互換である)。サブレイヤSL#Nのプロファイル識別子を例えば、
“sub_layer_profile_idc[N]”とし、サブレイヤSL#(N+1)のプロファイル互換フラグを”sub_layer_profile_compatibility_flag[N+1][j]”とすれば、”sub_layer_profile_compatibility_flag[N+1][ sub_layer_profile_idc[N] ]= 1”と設定される。
(3-5)上位サブレイヤSL#(N+1)のレベル識別子の値≧下位サブレイヤSL#Nのレベル識別子の値。
以上、画像復号装置側と画像符号化装置側において上記プロファイル、及びレベルの制約を予め設けることで、下位レイヤのプロファイル/レベルと、上位レイヤのプロファイル/レベルと互換のないプロファイル/レベルを不連続に設定した符号化データが生成されることを防止する効果を奏する。また、画像復号装置が対応すべきプロファイル/レベルを必要最小限に抑制することができるため画像復号装置の複雑度を軽減する効果を奏する。
また、上記包含関係にあるレイヤセット間のプロファイル及びレベルに関する上記制約を実施するか否かを表わすシンタックス(プロファイル/レベル制約フラグ"profile_level_restrict_flag")をVPS拡張データ上の各PTL情報の直前で明示的に、VPS復号部102及びVPS符号化部222(また、それれらの変形例を含む)により、それぞれ復号/符号化してもよい。上記と同様の効果に加えて、画像復号装置はVPS拡張データ上のPTL情報を復号する前に、VPSまたはSPS上で早期に各レイヤでのプロファイル/レベル制約の有無を容易に判定することができる効果を奏する。同様に、プロファイル、レベルに制約の有無示すフラグを設けてもよい。
(他の階層動画像符号化/復号システムへの適用例)
上述した階層動画像符号化装置2及び階層動画像復号装置1は、動画像の送信、受信、記録、再生を行う各種装置に搭載して利用できる。なお、動画像は、カメラ等により撮像された自然動画像であってもよいし、コンピュータ等により生成された人工動画像(CGおよびGUIを含む)であってもよい。
図50に基づいて、上述した階層動画像符号化装置2および階層動画像復号装置1を、動画像の送信および受信に利用できることを説明する。図50の(a)は、階層動画像符号化装置2を搭載した送信装置PROD_Aの構成を示したブロック図である。
図50の(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を更に備えていてもよい。図50の(a)においては、これら全てを送信装置PROD_Aが備えた構成を例示しているが、一部を省略しても構わない。
なお、記録媒体PROD_A5は、符号化されていない動画像を記録したものであってもよいし、伝送用の符号化方式とは異なる記録用の符号化方式で符号化された動画像を記録したものであってもよい。後者の場合、記録媒体PROD_A5と符号化部PROD_A1との間に、記録媒体PROD_A5から読み出した符号化データを記録用の符号化方式に従って復号する復号部(不図示)を介在させるとよい。
図50の(b)は、階層動画像復号装置1を搭載した受信装置PROD_Bの構成を示したブロック図である。図50の(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を更に備えていてもよい。図50の(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の双方として機能する。
図51に基づいて、上述した階層動画像符号化装置2および階層動画像復号装置1を、動画像の記録および再生に利用できることを説明する。図51の(a)は、上述した階層動画像符号化装置2を搭載した記録装置PROD_Cの構成を示したブロック図である。
図51の(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を更に備えていてもよい。図51の(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の一例である。
図51の(b)は、上述した階層動画像復号装置1を搭載した再生装置PROD_Dの構成を示したブロックである。図51の(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を更に備えていてもよい。図51の(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)を用いてソフトウェア的に実現してもよい。
後者の場合、上記各装置は、各機能を実現する制御プログラムの命令を実行する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(登録商標)(ElectricallyErasable 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 DigitalSubscriber Line)回線等の有線でも、IrDA(Infrared Data Association)やリモコンのような赤外線、Bluetooth(登録商標)、IEEE802.11無線、HDR(High Data Rate)、NFC(Near Field Communication)、DLNA(登録商標)(Digital Living Network Alliance)、携帯電話網、衛星回線、地上波デジタル網等の無線でも利用可能である。なお、本発明は、上記プログラムコードが電子的な伝送で具現化された、搬送波に埋め込まれたコンピュータデータ信号の形態でも実現され得る。
〔まとめ〕
本発明の態様1に係る画像復号装置は、階層符号化データを復号する画像復号装置であって、PTL情報リスト中のPTL情報内のプロファイル情報の有無を示すプロファイル有無フラグを復号するプロファイル有無フラグ復号手段とPTL情報を復号するPTL情報復号手段とを備え、上記PTL情報復号手段は、上記プロファイル有無フラグが1の場合、符号化データより、上記PTL情報のプロファイル情報を復号し、上記プロファイル情報有無フラグが0の場合、上記PTL情報内のプロファイル情報を、1つ前に復号されたPTL情報のプロファイル情報と等しいと推定する
構成である。
上記の構成によれば、プロファイル有無フラグの値に基づいて、PTL情報のプロファイル情報を復号するか、1つ前に復号されたPTL情報のプロファイル情報から推定するかを決定できるようになる。
本発明の態様2に係る画像復号装置は、上記態様1において、各サブレイヤプロファイル情報の有無を示すサブレイヤプロファイル有無フラグを復号するサブレイヤプロファイル有無フラグ復号手段を備え、上記PTL情報復号手段は、上記各サブレイヤのサブレイヤプロファイル情報有無フラグが1の場合、符号化データより、各サブレイヤのサブレイヤプロファイル情報を復号し、上記各サブレイヤプロファイル情報有無フラグが0の場合、上記各PTL情報に含まれる各サブレイヤプロファイル情報を、1つ前に復号されたPTL情報に含まれる対応する各サブレイヤプロファイル情報と等しいと推定することが追加されている。
上記の構成によれば、サブレイヤプロファイル有無フラグの値に基づいて、各サブレイヤのサブレイヤプロファイル情報を復号するか、1つ前に復号されたPTL情報に含まれる対応する各サブレイヤプロファイル情報と等しいと推定するかを決定する。
本発明の態様3に係る画像復号装置は、上記態様1において、各サブレイヤレベル情報の有無を示すサブレイヤレベル有無フラグを復号するサブレイヤレベル情報有無フラグ復号手段を備え、上記PTL情報復号手段は、上記各サブレイヤのサブレイヤレベル情報有無フラグが1の場合、符号化データより、各サブレイヤのサブレイヤレベル情報を復号し、上記サブレイヤレベル情報有無フラグが0の場合、上記PTL情報に含まれる各サブレイヤレベル情報を、1つ前に復号されたPTL情報に含まれる対応する各サブレイヤレベル情報と等しいと推定することが追加されている。
上記の構成によれば、サブレイヤレベル有無フラグの値に基づいて、各サブレイヤのサブレイヤレベル情報を復号するか、1つ前に復号されたPTL情報に含まれる対応する各サブレイヤレベル情報と等しいと推定するかを決定することができる。。
本発明の態様4に係る画像復号装置は、上記態様1から3において、上記プロファイル情報には、少なくとも、プロファイル空間、ティアフラグ、プロファイル識別子、及びプロファイル互換フラグを含んでも良い。
上記の構成によれば、少なくとも、プロファイル空間、ティアフラグ、プロファイル識別子、及びプロファイル互換フラグを含むプロファイル情報を復号、もしくは推定によって取得することができる。
本発明の態様5に係る画像復号装置は、上記態様2または4において、上記サブレイヤプロファイル情報には、少なくとも、サブレイヤプロファイル空間、サブレイヤティアフラグ、サブレイヤプロファイル識別子、及びサブレイヤプロファイル互換フラグを含んでもよい。
上記の構成によれば、少なくとも、サブレイヤプロファイル空間、サブレイヤティアフラグ、サブレイヤプロファイル識別子、及びサブレイヤプロファイル互換フラグを含むサブレイヤプロファイル情報を復号、もしくは推定により取得することができる。
本発明の態様6に係る画像復号装置は、上記態様2において、上記PTL情報に関するプロファイル有無フラグが0の場合、上記PTL情報に含まれる各サブレイヤに関するサブレイヤプロファイル有無フラグの値を0としても良い。
上記の構成によれば、プロファイル有無フラグが0の場合には、上記PTL情報に含まれる各サブレイヤに関するサブレイヤプロファイル有無フラグの値は0とすることができる。
本発明の態様7に係る画像復号方法は、階層符号化データを復号する画像復号方法であって、PTL情報リスト中のPTL情報内のプロファイル情報の有無を示すプロファイル有無フラグを復号するプロファイル有無フラグ復号ステップとPTL情報を復号するPTL情報復号ステップを備え、上記PTL情報復号ステップは、上記プロファイル有無フラグが1の場合、符号化データより、上記PTL情報のプロファイル情報を復号し、上記プロファイル情報有無フラグが0の場合、上記PTL情報内のプロファイル情報を、1つ前に復号されたPTL情報のプロファイル情報と等しいと推定する。
上記の構成によれば、プロファイル有無フラグの値に基づいて、PTL情報のプロファイル情報を復号するか、1つ前に復号されたPTL情報のプロファイル情報から推定するかを決定できるようになる。
本発明の態様8に係る画像符号化装置は、画像データを階層的に符号化して階層符号化データを生成する画像符号化装置であって、上記階層符号化データのプロファイルを示すPTL情報を符号化するPTL情報符号化部を備え、上記PTL情報符号化部は、上記PTL情報符号化部は、上記PTL情報にプロファイル情報を符号化する場合に、プロファイル有無フラグの値を1として符号化し、上記PTL情報内のプロファイル情報を、1つ前に符号化したPTL情報のプロファイル情報と等しいと推定する場合に、プロファイル有無フラグの値を0として符号化する構成である。
上記の構成によれば、PTL情報のプロファイル情報を符号化するか、1つ前に符号化したPTL情報のプロファイル情報と等しいと推定して符号化するかに応じて、プロファイル有無フラグの値を設定して符号化できる。
本発明の態様9に係る画像符号化方法は、画像データを階層的に符号化して階層符号化データを生成する画像符号化方法であって、上記階層符号化データのプロファイルを示すPTL情報を符号化するPTL情報符号化ステップを備え、上記PTL情報符号化ステップは、上記PTL情報にプロファイル情報を符号化する場合にプロファイル有無フラグの値を1として符号化し、上記PTL情報内のプロファイル情報を、1つ前に符号化したPTL情報のプロファイル情報と等しいと推定する場合に、プロファイル有無フラグの値を0として符号化する。
上記の構成によれば、PTL情報のプロファイル情報を符号化するか、1つ前に符号化したPTL情報のプロファイル情報と等しいと推定して符号化するかに応じて、プロファイル有無フラグの値を設定して符号化できる。
〔本発明の他の態様〕
本発明の他の態様1に係る画像復号装置は、レイヤごとに異なる品質の画像に関する画像情報が階層的に符号化された階層符号化データを復号して、復号の対象となる対象レイヤにおける画像を復元する画像復号装置であって、上記階層符号化データのプロファイルを示すプロファイル/レベル情報を復号するプロファイル/レベル情報復号部を備え、上記プロファイル/レベル情報復号部は、上記プロファイル/レベル情報におけるi番目の参照PTL情報指定インデクスのセマンティックを、当該i番目の参照PTL情報指定インデクスが、i番目のプロファイル/レベル情報と参照されるプロファイル/レベル情報との間の相対的な位置を指定するものとして取り扱う構成である。
上記の構成によれば、1番目のプロファイル/レベル情報のプロファイルおよびティアの情報を、0番目のプロファイル/レベル情報から推定することができるようになる。
本発明の他の態様2に係る画像復号装置は、レイヤごとに異なる品質の画像に関する画像情報が階層的に符号化された階層符号化データを復号して、復号の対象となる対象レイヤにおける画像を復元する画像復号装置であって、上記階層符号化データのプロファイルを示すプロファイル/レベル情報を復号するプロファイル/レベル情報復号部を備え、上記プロファイル/レベル情報復号部が復号する上記プロファイル/レベル情報において、1番目のプロファイル/レベル情報のプロファイルおよびティアの情報が、0番目のプロファイル/レベル情報に基づいて推定可能となるように、参照PTL情報指定インデクスが参照プロファイルに変更されている。
上記の構成によれば、i番目の参照PTL情報指定インデクスが符号化されているので、ビットを抑制することができる。
本発明の他の態様3に係る画像復号装置は、レイヤごとに異なる品質の画像に関する画像情報が階層的に符号化された階層符号化データを復号して、復号の対象となる対象レイヤにおける画像を復元する画像復号装置であって、上記階層符号化データのプロファイルを示すプロファイル/レベル情報を復号するプロファイル/レベル情報復号部を備え、上記プロファイル/レベル情報復号部が復号する上記プロファイル/レベル情報において、参照PTL情報指定インデクスに代えて、VPSプロファイル有無フラグが含まれているものであってもよい。
上記の構成によれば、i番目のプロファイル/レベル情報のプロファイルおよびティアの情報を、(i-1)番目のプロファイル/レベル情報から推定することができるようになるので、ビットを抑制することができる。
本発明の他の態様4に係る画像復号装置は、上記他の態様1または2において、上記プロファイル/レベル情報復号部は、i番目のサブレイヤに対するレベルの情報が提示されていない場合、該レベルは、(i+1)番目のサブレイヤのレベルと、レベルの識別子のレベルとのうち小さい方に等しい、と推定するものであってもよい。
上記の構成によれば、i番目のサブレイヤのレベルの情報がプロファイル/レベル情報中に存在しない場合の、i番目のサブレイヤのレベルの扱い方が明確になるので、テンポラルIDが1に等しいサブレイヤの表示について未定義であることを回避することができる。
本発明の他の態様5に係る画像復号装置は、上記他の態様1または2において、上記プロファイル/レベル情報復号部は、i番目のサブレイヤのサブレイヤプロファイル有無フラグが1の場合、該サブレイヤのプロファイル情報は対象レイヤの符号化データ内に存在すると判断し、該符号化データに基づいて該サブレイヤのサブレイヤプロファイル情報を復号するものであってもよい。
上記の構成によれば、プロファイル有無フラグが1で、かつ、サブレイヤプロファイル有無フラグが0の場合においても、サブレイヤのプロファイル情報が不定となる事態を解消することができる。
本発明の他の態様6に係る画像復号装置は、上記他の態様1または2において、上記プロファイル/レベル情報復号部は、対象レイヤの符号化データに基づいて最高次サブレイヤのレベル情報を復号し、該最高次サブレイヤを除く各サブレイヤのサブレイヤレベル情報について、i番目のサブレイヤのサブレイヤレベル有無フラグが1の場合、該サブレイヤのレベル情報は対象レイヤの符号化データ内に存在すると判断し、該符号化データに基づいて該サブレイヤのサブレイヤレベル情報を復号し、i番目のサブレイヤのサブレイヤレベル有無フラグが0の場合、該サブレイヤのサブレイヤレベル情報に、所定のレベル情報を設定するものであってもよい。
上記の構成によれば、サブレイヤレベル有無フラグが0の場合においても、サブレイヤのレベル情報が不定となる事態を解消することができる。
本発明の他の態様7に係る画像復号装置は、上記他の態様1または2において、上記プロファイル/レベル情報復号部は、レベル有無フラグが1であり、かつ、i番目のサブレイヤのサブレイヤレベル有無フラグが1である場合、該サブレイヤのレベル情報は、対象レイヤの符号化データ内に存在すると判断し、該符号化データに基づいて該サブレイヤのサブレイヤレベル情報を復号し、レベル有無フラグが1であり、かつ、i番目のサブレイヤのサブレイヤレベル有無フラグが0である場合、該サブレイヤのサブレイヤレベル情報に所定のレベル情報を設定し、レベル有無フラグが0であり、かつ、i番目のサブレイヤのサブレイヤレベル有無フラグが1である場合、該サブレイヤのレベル情報は、対象レイヤの符号化データ内に存在すると判断し、該符号化データに基づいて該サブレイヤのサブレイヤレベル情報を復号し、レベル有無フラグが0であり、かつ、i番目のサブレイヤのサブレイヤレベル有無フラグが0である場合、該サブレイヤのサブレイヤレベル情報に、i番目の参照PTL情報指定インデクスにより指定されるサブレイヤのレベル情報を設定するものであってもよい。
上記の構成によれば、レベル有無フラグが0で、かつ、サブレイヤレベル有無フラグが0の場合においても、サブレイヤのレベル情報が不定となる事態を解消することができる。
本発明の他の態様8に係る画像復号装置は、上記他の態様3において、上記プロファイル/レベル情報には、VPSレベル有無フラグが付加されており、上記プロファイル/レベル情報復号部は、VPSレベル有無フラグが「0」に等しい場合、i番目のプロファイル/レベル情報のレベルの情報を、それ以前のプロファイル/レベル情報のレベルの情報から導出するものであってもよい。
上記の構成によれば、i番目のサブレイヤのレベルの情報がプロファイル/レベル情報中に存在しない場合の、i番目のサブレイヤのレベルの扱い方が明確になるので、テンポラルIDが1に等しいサブレイヤの表示について未定義であることを回避することができる。
本発明の他の態様9に係る画像符号化装置は、画像データを、レイヤごとに異なる品質の画像に関する画像情報が階層的に符号化された階層符号化データを生成する画像符号化装置であって、上記階層符号化データのプロファイルを示すプロファイル/レベル情報を符号化するプロファイル/レベル情報符号化部を備え、上記プロファイル/レベル情報符号化部は、上記プロファイル/レベル情報におけるi番目の参照PTL情報指定インデクスのセマンティックを、当該i番目の参照PTL情報指定インデクスが、i番目のプロファイル/レベル情報と参照されるプロファイル/レベル情報との間の相対的な位置を指定するものとして符号化する。
上記の構成によれば、1番目のプロファイル/レベル情報のプロファイルおよびティアの情報を、0番目のプロファイル/レベル情報から推定することができるようになる。
本発明の他の態様10に係る画像符号化装置は、画像データを、レイヤごとに異なる品質の画像に関する画像情報が階層的に符号化された階層符号化データを生成する画像符号化装置であって、上記階層符号化データのプロファイルを示すプロファイル/レベル情報を符号化するプロファイル/レベル情報符号化部を備え、上記プロファイル/レベル情報符号化部が符号化する上記プロファイル/レベル情報において、1番目のプロファイル/レベル情報のプロファイルおよびティアの情報が、0番目のプロファイル/レベル情報に基づいて推定可能となるように、参照PTL情報指定インデクスが参照プロファイルに変更されている。
上記の構成によれば、i番目の参照PTL情報指定インデクスが符号化されているので、ビットを抑制することができる。
本発明の他の態様11に係る画像符号化復号装置は、画像データを、レイヤごとに異なる品質の画像に関する画像情報が階層的に符号化された階層符号化データを生成する画像符号化装置であって、上記階層符号化データのプロファイルを示すプロファイル/レベル情報を符号化するプロファイル/レベル情報符号化部を備え、上記プロファイル/レベル情報符号化部が符号化する上記プロファイル/レベル情報において、参照PTL情報指定インデクスに代えて、VPSプロファイル有無フラグが含まれているものであってもよい。
上記の構成によれば、i番目のプロファイル/レベル情報のプロファイルおよびティアの情報を、(i-1)番目のプロファイル/レベル情報から推定することができるようになるので、ビットを抑制することができる。
本発明の他の態様12に係る画像符号化装置は、上記他の態様9または10において、上記プロファイル/レベル情報符号化部は、i番目のサブレイヤに対するレベルの情報が提示されない場合、該レベルは、(i+1)番目のサブレイヤのレベルと、レベルの識別子のレベルとのうち小さい方に等しい、と推定するように符号化するものであってもよい。
上記の構成によれば、i番目のサブレイヤのレベルの情報がプロファイル/レベル情報中に存在しない場合の、i番目のサブレイヤのレベルの扱い方が明確になるので、テンポラルIDが1に等しいサブレイヤの表示について未定義であることを回避することができる。
本発明の他の態様13に係る画像符号化装置は、上記他の態様9または10において、上記プロファイル/レベル情報符号化部は、i番目のサブレイヤのサブレイヤプロファイル有無フラグが1の場合、該サブレイヤのプロファイル情報は対象レイヤの符号化データ内にサブレイヤプロファイル情報を含めるものであってもよい。
上記の構成によれば、プロファイル有無フラグが1で、かつ、サブレイヤプロファイル有無フラグが0の場合においても、サブレイヤのプロファイル情報が不定となる事態を解消することができる。
本発明の他の態様14に係る画像符号化装置は、上記他の態様9または10において、上記プロファイル/レベル情報符号化部は、対象レイヤの符号化データに最高次サブレイヤのレベル情報を含め、該最高次サブレイヤを除く各サブレイヤのサブレイヤレベル情報について、i番目のサブレイヤのサブレイヤレベル有無フラグが1の場合、該サブレイヤのレベル情報を対象レイヤの符号化データ内に含め該符号化データに該サブレイヤのサブレイヤレベル情報を含め、i番目のサブレイヤのサブレイヤレベル有無フラグが0の場合、該サブレイヤのサブレイヤレベル情報に、所定のレベル情報を設定するものであってもよい。
上記の構成によれば、サブレイヤレベル有無フラグが0の場合においても、サブレイヤのレベル情報が不定となる事態を解消することができる。
本発明の他の態様15に係る画像符号化装置は、上記他の態様9または10において、上記プロファイル/レベル情報符号化部は、レベル有無フラグが1であり、かつ、i番目のサブレイヤのサブレイヤレベル有無フラグが1である場合、該サブレイヤのレベル情報を、対象レイヤの符号化データ内に含め、該符号化データに該サブレイヤのサブレイヤレベル情報を含め、レベル有無フラグが1であり、かつ、i番目のサブレイヤのサブレイヤレベル有無フラグが0である場合、該サブレイヤのサブレイヤレベル情報に所定のレベル情報を設定し、レベル有無フラグが0であり、かつ、i番目のサブレイヤのサブレイヤレベル有無フラグが1である場合、該サブレイヤのレベル情報は、対象レイヤの符号化データ内に含め、該符号化データに該サブレイヤのサブレイヤレベル情報を含め、レベル有無フラグが0であり、かつ、i番目のサブレイヤのサブレイヤレベル有無フラグが0である場合、該サブレイヤのサブレイヤレベル情報に、i番目の参照PTL情報指定インデクスにより指定されるサブレイヤのレベル情報を設定するものであってもよい。
上記の構成によれば、レベル有無フラグが0で、かつ、サブレイヤレベル有無フラグが0の場合においても、サブレイヤのレベル情報が不定となる事態を解消することができる。
本発明の他の態様16に係る画像符号化装置は、上記他の態様11において、上記プロファイル/レベル情報には、VPSレベル有無フラグが付加されており、上記プロファイル/レベル情報符号化部は、VPSレベル有無フラグが「0」に等しい場合、i番目のプロファイル/レベル情報のレベルの情報を、それ以前のプロファイル/レベル情報のレベルの情報から導出できるように符号化するものであってもよい。
上記の構成によれば、i番目のサブレイヤのレベルの情報がプロファイル/レベル情報中に存在しない場合の、i番目のサブレイヤのレベルの扱い方が明確になるので、テンポラルIDが1に等しいサブレイヤの表示について未定義であることを回避することができる。
本発明の他の態様17に係る画像復号装置は、レイヤごとに異なる品質の画像に関する画像情報が階層的に符号化された階層符号化データを復号して、復号の対象となる対象レイヤにおける画像を復元する画像復号装置であって、上記階層符号化データのプロファイルを示すプロファイル/レベル情報を復号するプロファイル/レベル情報復号部を備え、上記プロファイル/レベル情報復号部は、上記プロファイル/レベル情報において、以下の各条件:下位レイヤセットのプロファイル空間の値≦上位レイヤセットのプロファイル空間の値、下位レイヤセットのプロファイル識別子の値≦上位レイヤセットのプロファイル識別子の値、下位レイヤセットのティアフラグの値≦上位レイヤセットのティアフラグの値、上位レイヤセットAのレベル識別子の値≧下位レイヤセットBのレベル識別子の値を満たす符号化データを復号するものであってもよい。
上記の構成によれば、下位レイヤのプロファイル/レベルと、上位レイヤのプロファイル/レベルと互換のないプロファイル/レベルを不連続に設定した符号化データが生成されることを防止する効果を奏する。また、画像復号装置が対応すべきプロファイル/レベルを必要最小限に抑制することができるため画像復号装置の複雑度を軽減する効果を奏する。
本発明の各態様に係る画像復号装置、および画像符号化装置は、コンピュータによって実現してもよく、この場合には、コンピュータを上記画像復号装置、および画像符号化装置が備える各手段として動作させることにより上記画像復号装置、および画像符号化装置をコンピュータにて実現させる制御プログラム、およびそれを記録したコンピュータ読み取り可能な記録媒体も、本発明の範疇に入る。
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。