図1〜図46に基づいて、本発明の一実施形態に係る階層動画像復号装置1および階層動画像符号化装置2について説明すれば以下のとおりである。
〔概要〕
本実施の形態に係る階層動画像復号装置(画像復号装置)1は、階層動画像符号化装置(画像符号化装置)2によってスケーラブル映像符号化(SVC;Scalable Video Coding)された符号化データを復号する。スケーラブル映像符号化とは、動画像を低品質のものから高品質のものにかけて階層的に符号化する符号化方式のことである。スケーラブル映像符号化は、例えば、H.264/AVC Annex G SVCにおいて標準化されている。なお、ここでいう動画像の品質とは、主観的および客観的な動画像の見栄えに影響する要素のことを広く意味する。動画像の品質には、例えば、“解像度”、“フレームレート”、“画質”、および、“画素の表現精度”が含まれる。よって、以下、動画像の品質が異なるといえば、例示的には、“解像度”等が異なることを指すが、これに限られない。例えば、異なる量子化ステップで量子化された動画像の場合(すなわち、異なる符号化雑音により符号化された動画像の場合)も互いに動画像の品質が異なるといえる。
また、SVCは、階層化される情報の種類の観点から、(1)空間スケーラビリティ、(2)時間スケーラビリティ、および(3)SNR(Signal to Noise Ratio)スケーラビリティに分類されることもある。空間スケーラビリティとは、解像度や画像のサイズにおいて階層化する技術である。時間スケーラビリティとは、フレーム・レート(単位時間のフレーム数)において階層化する技術である。また、SNRスケーラビリティは、符号化雑音において階層化する技術である。
本実施形態に係る階層動画像符号化装置2及び階層動画像復号装置1の詳細な説明に先立って、まず(1)階層動画像符号化装置2によって生成され、階層動画像復号装置1によって復号される階層符号化データのレイヤ構造について説明し、次いで(2)各レイヤで採用できるデータ構造の具体例について説明を行う。
〔階層符号化データのレイヤ構造〕
ここで、図2を用いて、階層符号化データの符号化および復号について説明すると次のとおりである。図2は、動画像を、下位階層L3、中位階層L2、および上位階層L1の3階層により階層的に符号化/復号する場合について模式的に表す図である。つまり、図2(a)および(b)に示す例では、3階層のうち、上位階層L1が最上位層となり、下位階層L3が最下位層となる。
以下において、階層符号化データから復号され得る特定の品質に対応する復号画像は、特定の階層の復号画像(または、特定の階層に対応する復号画像)と称される(例えば、上位階層L1の復号画像POUT#A)。
図2(a)は、入力画像PIN#A〜PIN#Cをそれぞれ階層的に符号化して符号化データDATA#A〜DATA#Cを生成する階層動画像符号化装置2#A〜2#Cを示している。図2(b)は、階層的に符号化された符号化データDATA#A〜DATA#Cをそれぞれ復号して復号画像POUT#A〜POUT#Cを生成する階層動画像復号装置1#A〜1#Cを示している。
まず、図2(a)を用いて、符号化装置側について説明する。符号化装置側の入力となる入力画像PIN#A、PIN#B、およびPIN#Cは、原画は同じだが、画像の品質(解像度、フレームレート、および画質等)が異なる。画像の品質は、入力画像PIN#A、PIN#B、およびPIN#Cの順に低くなる。
下位階層L3の階層動画像符号化装置2#Cは、下位階層L3の入力画像PIN#Cを符号化して下位階層L3の符号化データDATA#Cを生成する。下位階層L3の復号画像POUT#Cを復号するのに必要な基本情報が含まれる(図2において“C”にて示している)。下位階層L3は、最下層の階層であるため、下位階層L3の符号化データDATA#Cは、基本符号化データとも称される。
また、中位階層L2の階層動画像符号化装置2#Bは、中位階層L2の入力画像PIN#Bを、下位階層の符号化データDATA#Cを参照しながら符号化して中位階層L2の符号化データDATA#Bを生成する。中位階層L2の符号化データDATA#Bには、符号化データDATA#Cに含まれる基本情報“C”に加えて、中位階層の復号画像POUT#Bを復号するのに必要な付加的情報(図2において“B”にて示している)が含まれる。
また、上位階層L1の階層動画像符号化装置2#Aは、上位階層L1の入力画像PIN#Aを、中位階層L2の符号化データDATA#Bを参照しながら符号化して上位階層L1の符号化データDATA#Aを生成する。上位階層L1の符号化データDATA#Aには、下位階層L3の復号画像POUT#Cを復号するのに必要な基本情報“C”および中位階層L2の復号画像POUT#Bを復号するのに必要な付加的情報“B”に加えて、上位階層の復号画像POUT#Aを復号するのに必要な付加的情報(図2において“A”にて示している)が含まれる。
このように上位階層L1の符号化データDATA#Aは、異なる複数の品質の復号画像に関する情報を含む。
次に、図2(b)を参照しながら復号装置側について説明する。復号装置側では、上位階層L1、中位階層L2、および下位階層L3それぞれの階層に応じた復号装置1#A、1#B、および1#Cが、符号化データDATA#A、DATA#B、およびDATA#Cを復号して復号画像POUT#A、POUT#B、およびPOUT#Cを出力する。
なお、上位の階層符号化データの一部の情報を抽出して、より下位の特定の復号装置において、当該抽出した情報を復号することで特定の品質の動画像を再生することもできる。
例えば、中位階層L2の階層動画像復号装置1#Bは、上位階層L1の階層符号化データDATA#Aから、復号画像POUT#Bを復号するのに必要な情報(すなわち、階層符号化データDATA#Aに含まれる“B”および“C”)を抽出して、復号画像POUT#Bを復号してもよい。言い換えれば、復号装置側では、上位階層L1の階層符号化データDATA#Aに含まれる情報に基づいて、復号画像POUT#A、POUT#B、およびPOUT#Cを復号することができる。
なお、以上の3階層の階層符号化データに限られず、階層符号化データは、2階層で階層符号化されていてもよいし、3階層よりも多い階層数にて階層符号化されていてもよい。
また、特定の階層の復号画像に関する符号化データの一部または全部を他の階層とは独立して符号化し、特定の階層の復号の際に、他の階層の情報を参照しなくても済むように階層符号化データを構成してもよい。例えば、図2(a)および(b)を用いて上述した例では、復号画像POUT#Bの復号に“C”および“B”を参照すると説明したが、これに限られない。復号画像POUT#Bが“B”だけを用いて復号できるように階層符号化データを構成することも可能である。
なお、SNRスケーラビリティを実現する場合、入力画像PIN#A、PIN#B、およびPIN#Cとして同一の原画を用いた上で、復号画像POUT#A、POUT#B、およびPOUT#Cが異なる画質となるよう階層符号化データを生成することもできる。その場合、下位階層の階層動画像符号化装置が、上位階層の階層動画像符号化装置に較べて、より大きい量子化幅を用いて予測残差を量子化することで階層符号化データを生成する。
本書では、説明の便宜上、次のとおり用語を定義する。以下の用語は、特に断りがなければ、下記の技術的事項のことを表わすのに用いる。
上位レイヤ : ある階層よりも上位に位置する階層のことを、上位レイヤと称する。例えば、図2において、下位階層L3の上位レイヤは、中位階層L2および上位階層L1である。また、上位レイヤの復号画像とは、より品質の高い(例えば、解像度が高い、フレームレートが高い、画質が高い等)復号画像のことをいう。
下位レイヤ : ある階層よりも下位に位置する階層のことを、下位レイヤと称する。例えば、図2において、上位階層L1の下位レイヤは、中位階層L2および下位階層L3である。また、下位レイヤの復号画像とは、より品質の低い復号画像のことをいう。
対象レイヤ : 復号または符号化の対象となっている階層のことをいう。
参照レイヤ(reference layer) : 対象レイヤに対応する復号画像を復号するのに参照される特定の下位レイヤのことを参照レイヤと称する。
図2(a)および(b)に示した例では、上位階層L1の参照レイヤは、中位階層L2および下位階層L3である。しかしながら、これに限られず、特定の上記レイヤの復号において、下位レイヤのすべてを参照しなくてもよいように階層符号化データを構成することもできる。例えば、上位階層L1の参照レイヤが、中位階層L2および下位階層L3のいずれか一方となるように階層符号化データを構成することも可能である。
基本レイヤ(base layer) : 最下層に位置する階層のことを基本レイヤと称する。基本レイヤの復号画像は、符号化データから復号され得るもっとも低い品質の復号画像であり、基本復号画像と呼称される。別の言い方をすれば、基本復号画像は、最下層の階層に対応する復号画像のことである。基本復号画像の復号に必要な階層符号化データの部分符号化データは基本符号化データと呼称される。例えば、上位階層L1の階層符号化データDATA#Aに含まれる基本情報“C”が基本符号化データである。
拡張レイヤ : 基本レイヤの上位レイヤは、拡張レイヤと称される。
レイヤ識別子 : レイヤ識別子は、階層を識別するためのものであり、階層と1対1に対応する。階層符号化データには特定の階層の復号画像の復号に必要な部分符号化データを選択するために用いられる階層識別子が含まれる。特定のレイヤに対応するレイヤ識別子に関連付けられた階層符号化データの部分集合は、レイヤ表現とも呼称される。
一般に、特定の階層の復号画像の復号には、当該階層のレイヤ表現、および/または、当該階層の下位レイヤに対応するレイヤ表現が用いられる。すなわち、対象レイヤの復号画像の復号においては、対象レイヤのレイヤ表現、および/または、対象レイヤの下位レイヤに含まれる1つ以上階層のレイヤ表現が用いられる。
レイヤ間予測 : レイヤ間予測とは、対象レイヤのレイヤ表現と異なる階層(参照レイヤ)のレイヤ表現に含まれるシンタックス要素値、シンタックス要素値より導出される値、および復号画像に基づいて、対象レイヤのシンタックス要素値や対象レイヤの復号に用いられる符号化パラメータ等を予測することである。動き予測に関する情報を(同時刻の)参照レイヤの情報から予測するレイヤ間予測のことを動き情報予測と称することもある。また、(同時刻の)下位レイヤの復号画像をアップサンプリングした画像から予測するレイヤ間予測のことをテクスチャ予測(あるいはレイヤ間イントラ予測)と称することもある。なお、レイヤ間予測に用いられる階層は、例示的には、対象レイヤの下位レイヤである。また、参照レイヤを用いず対象レイヤ内で予測を行うことをレイヤ内予測と称することもある。
なお、以上の用語は、飽くまで説明の便宜上のものであり、上記の技術的事項を別の用語にて表現してもかまわない。
〔階層符号化データのデータ構造について〕
以下、各階層の符号化データを生成する符号化方式として、HEVCおよびその拡張方式を用いる場合について例示する。しかしながら、これに限られず、各階層の符号化データを、MPEG−2や、H.264/AVCなどの符号化方式により生成してもよい。
また、下位レイヤと上位レイヤとが異なる符号化方式によって符号化されていてもよい。また、各階層の符号化データは、互いに異なる伝送路を介して階層動画像復号装置1に供給されるものであってもよいし、同一の伝送路を介して階層動画像復号装置1に供給されるものであってもよい。
例えば、超高精細映像(動画像、4K映像データ)を基本レイヤおよび1つの拡張レイヤによりスケーラブル符号化して伝送する場合、基本レイヤは、4K映像データをダウンスケーリングし、インタレース化した映像データをMPEG−2またはH.264/AVCにより符号化してテレビ放送網で伝送し、拡張レイヤは、4K映像(プログレッシブ)をHEVCにより符号化して、インターネットで伝送してもよい。
(基本レイヤ)
図3は、基本レイヤにおいて採用することができる符号化データ(図2の例でいえば、階層符号化データDATA#C)のデータ構造について例示する図である。階層符号化データDATA#Cは、例示的に、シーケンス、およびシーケンスを構成する複数のピクチャを含む。
階層符号化データDATA#Cにおけるデータの階層構造を図3に示す。図3の(a)〜(e)は、それぞれ、シーケンスSEQを規定するシーケンスレイヤ、ピクチャPICTを規定するピクチャレイヤ、スライスSを規定するスライスレイヤ、ツリーブロック(Tree block)TBLKを規定するツリーブロックレイヤ、ツリーブロックTBLKに含まれる符号化単位(Coding Unit;CU)を規定するCUレイヤを示す図である。
(シーケンスレイヤ)
シーケンスレイヤでは、処理対象のシーケンスSEQ(以下、対象シーケンスとも称する)を復号するために階層動画像復号装置1が参照するデータの集合が規定されている。シーケンスSEQは、図3の(a)に示すように、シーケンスパラメータセットSPS(Sequence Parameter Set)、ピクチャパラメータセットPPS(Picture Parameter Set)、適応パラメータセットAPS(Adaptation Parameter Set)、ピクチャPICT1〜PICTNP(NPはシーケンスSEQに含まれるピクチャの総数)、及び、付加拡張情報SEI(Supplemental Enhancement Information)を含んでいる。
シーケンスパラメータセットSPSでは、対象シーケンスを復号するために階層動画像復号装置1が参照する符号化パラメータの集合が規定されている。
ピクチャパラメータセットPPSでは、対象シーケンス内の各ピクチャを復号するために階層動画像復号装置1が参照する符号化パラメータの集合が規定されている。なお、PPSは複数存在してもよい。その場合、対象シーケンス内の各ピクチャから複数のPPSの何れかを選択する。
適応パラメータセットAPSは、対象シーケンス内の各スライスを復号するために階層動画像復号装置1が参照する符号化パラメータの集合が規定されている。APSは複数存在してもよい。その場合、対象シーケンス内の各スライスから複数のAPSの何れかを選択する。
(ピクチャレイヤ)
ピクチャレイヤでは、処理対象のピクチャPICT(以下、対象ピクチャとも称する)を復号するために階層動画像復号装置1が参照するデータの集合が規定されている。ピクチャPICTは、図3の(b)に示すように、ピクチャヘッダPH、及び、スライスS1〜SNSを含んでいる(NSはピクチャPICTに含まれるスライスの総数)。
なお、以下、スライスS1〜SNSのそれぞれを区別する必要が無い場合、符号の添え字を省略して記述することがある。また、以下に説明する階層符号化データDATA#Cに含まれるデータであって、添え字を付している他のデータについても同様である。
ピクチャヘッダPHには、対象ピクチャの復号方法を決定するために階層動画像復号装置1が参照する符号化パラメータ群が含まれている。なお、符号化パラメータ群は、必ずしもピクチャヘッダPH内に直接含んでいる必要はなく、例えばピクチャパラメータセットPPSへの参照を含むことで、間接的に含めても良い。
(スライスレイヤ)
スライスレイヤでは、処理対象のスライスS(対象スライスとも称する)を復号するために階層動画像復号装置1が参照するデータの集合が規定されている。スライスSは、図3の(c)に示すように、スライスヘッダSH、及び、ツリーブロックTBLK1〜TBLKNC(NCはスライスSに含まれるツリーブロックの総数)のシーケンスを含んでいる。
スライスヘッダSHには、対象スライスの復号方法を決定するために階層動画像復号装置1が参照する符号化パラメータ群が含まれる。スライスタイプを指定するスライスタイプ指定情報(slice_type)は、スライスヘッダSHに含まれる符号化パラメータの一例である。
スライスタイプ指定情報により指定可能なスライスタイプとしては、(1)符号化の際にイントラ予測のみを用いるIスライス、(2)符号化の際に単方向予測、又は、イントラ予測を用いるPスライス、(3)符号化の際に単方向予測、双方向予測、又は、イントラ予測を用いるBスライスなどが挙げられる。
なお、スライスヘッダSHには、上記シーケンスレイヤに含まれる、ピクチャパラメータセットPPSへの参照(pic_parameter_set_id)、適応パラメータセットAPSへの参照(aps_id)を含んでいても良い。
また、スライスヘッダSHには、階層動画像復号装置1の備える適応フィルタによって参照されるフィルタパラメータFPが含まれている。フィルタパラメータFPは、フィルタ係数群を含んでいる。フィルタ係数群には、(1)フィルタのタップ数を指定するタップ数指定情報、(2)フィルタ係数a0〜aNT-1(NTは、フィルタ係数群に含まれるフィルタ係数の総数)、および、(3)オフセットが含まれる。
(ツリーブロックレイヤ)
ツリーブロックレイヤでは、処理対象のツリーブロックTBLK(以下、対象ツリーブロックとも称する)を復号するために階層動画像復号装置1が参照するデータの集合が規定されている。なお、ツリーブロックのことを符号化ツリーブロック(CTB:Coding Tree block)、または、最大符号化単位(LCU:Largest Cording Unit)と呼ぶこともある。
ツリーブロックTBLKは、ツリーブロックヘッダTBLKHと、符号化単位情報CU1〜CUNL(NLはツリーブロックTBLKに含まれる符号化単位情報の総数)とを含む。ここで、まず、ツリーブロックTBLKと、符号化単位情報CUとの関係について説明すると次のとおりである。
ツリーブロックTBLKは、イントラ予測またはインター予測、および、変換の各処理ためのブロックサイズを特定するためのパーティションに分割される。
ツリーブロックTBLKの上記パーティションは、再帰的な4分木分割により分割されている。この再帰的な4分木分割により得られる木構造のことを以下、符号化ツリー(coding tree)と称する。
以下、符号化ツリーの末端のノードであるリーフ(leaf)に対応するパーティションを、符号化ノード(coding node)として参照する。また、符号化ノードは、符号化処理の基本的な単位となるため、以下、符号化ノードのことを、符号化単位(CU)とも称する。なお、符号化ノードは、符号化ブロック(CB: Coding Block)と呼ぶこともある。
つまり、符号化単位情報(以下、CU情報と称する)CU1〜CUNLは、ツリーブロックTBLKを再帰的に4分木分割して得られる各符号化ノード(符号化単位)に対応する情報である。
また、符号化ツリーのルート(root)は、ツリーブロックTBLKに対応付けられる。換言すれば、ツリーブロックTBLKは、複数の符号化ノードを再帰的に含む4分木分割の木構造の最上位ノードに対応付けられる。
なお、各符号化ノードのサイズは、当該符号化ノードが直接に属する符号化ノード(すなわち、当該符号化ノードの1階層上位のノードのパーティション)のサイズの縦横とも半分である。
また、ツリーブロックTBLKのサイズ、および、各符号化ノードのとり得るサイズは、階層符号化データDATA#CのシーケンスパラメータセットSPSに含まれる、最小符号化ノードのサイズ指定情報、および最大符号化ノードと最小符号化ノードの階層深度の差分に依存する。例えば、最小符号化ノードのサイズが8×8画素であって、最大符号化ノードと最小符号化ノードの階層深度の差分が3である場合、ツリーブロックTBLKのサイズが64×64画素であって、符号化ノードのサイズは、4種類のサイズ、すなわち、64×64画素、32×32画素、16×16画素、および、8×8画素の何れかをとり得る。
(ツリーブロックヘッダ)
ツリーブロックヘッダTBLKHには、対象ツリーブロックの復号方法を決定するために階層動画像復号装置1が参照する符号化パラメータが含まれる。具体的には、図3の(d)に示すように、対象ツリーブロックの各CUへの分割パターンを指定するツリーブロック分割情報SP_TBLK、および、量子化ステップの大きさを指定する量子化パラメータ差分Δqp(qp_delta)が含まれる。
ツリーブロック分割情報SP_TBLKは、ツリーブロックを分割するための符号化ツリーを表す情報であり、具体的には、対象ツリーブロックに含まれる各CUの形状、サイズ、および、対象ツリーブロック内での位置を指定する情報である。
なお、ツリーブロック分割情報SP_TBLKは、CUの形状やサイズを明示的に含んでいなくてもよい。例えばツリーブロック分割情報SP_TBLKは、対象ツリーブロック全体またはツリーブロックの部分領域を四分割するか否かを示すフラグの集合であってもよい。その場合、ツリーブロックの形状やサイズを併用することで各CUの形状やサイズを特定できる。
また、量子化パラメータ差分Δqpは、対象ツリーブロックにおける量子化パラメータqpと、当該対象ツリーブロックの直前に符号化されたツリーブロックにおける量子化パラメータqp’との差分qp−qp’である。
(CUレイヤ)
CUレイヤでは、処理対象のCU(以下、対象CUとも称する)を復号するために階層動画像復号装置1が参照するデータの集合が規定されている。
ここで、CU情報CUに含まれるデータの具体的な内容の説明をする前に、CUに含まれるデータの木構造について説明する。符号化ノードは、予測ツリー(prediction tree;PT)および変換ツリー(transform tree;TT)のルートのノードとなる。予測ツリーおよび変換ツリーについて説明すると次のとおりである。
予測ツリーにおいては、符号化ノードが1または複数の予測ブロックに分割され、各予測ブロックの位置とサイズとが規定される。別の表現でいえば、予測ブロックは、符号化ノードを構成する1または複数の重複しない領域である。また、予測ツリーは、上述の分割により得られた1または複数の予測ブロックを含む。
予測処理は、この予測ブロックごとに行われる。以下、予測の単位である予測ブロックのことを、予測単位(prediction unit;PU)とも称する。
予測ツリーにおける分割(以下、PU分割と略称する)の種類は、大まかにいえば、イントラ予測の場合と、インター予測の場合との2つがある。
イントラ予測の場合、分割方法は、2N×2N(符号化ノードと同一サイズ)と、N×Nとがある。
また、インター予測の場合、分割方法は、2N×2N(符号化ノードと同一サイズ)、2N×N、2N×nU、2N×nD、N×2N、nL×2N、nR×2N、および、N×Nなどがある。PU分割の種類については、後に図面を用いて説明する。
また、変換ツリーにおいては、符号化ノードが1または複数の変換ブロックに分割され、各変換ブロックの位置とサイズとが規定される。別の表現でいえば、変換ブロックは、符号化ノードを構成する1または複数の重複しない領域のことである。また、変換ツリーは、上述の分割より得られた1または複数の変換ブロックを含む。
変換ツリーにおける分割には、符号化ノードと同一のサイズの領域を変換ブロックとして割り付けるものと、上述したツリーブロックの分割と同様、再帰的な4分木分割によるものがある。
変換処理は、この変換ブロックごとに行われる。以下、変換の単位である変換ブロックのことを、変換単位(transform unit;TU)とも称する。
(CU情報のデータ構造)
続いて、図3(e)を参照しながらCU情報CUに含まれるデータの具体的な内容について説明する。図3(e)に示すように、CU情報CUは、具体的には、スキップフラグSKIP、予測ツリー情報(以下、PT情報と略称する)PTI、および、変換ツリー情報(以下、TT情報と略称する)TTIを含む。
スキップフラグSKIPは、対象のPUについて、スキップモードが適用されているか否かを示すフラグであり、スキップフラグSKIPの値が1の場合、すなわち、対象CUにスキップモードが適用されている場合、そのCU情報CUにおけるPT情報PTIの一部、および、TT情報TTIは省略される。なお、スキップフラグSKIPは、Iスライスでは省略される。
[PT情報]
PT情報PTIは、CUに含まれる予測ツリー(以下、PTと略称する)に関する情報である。言い換えれば、PT情報PTIは、PTに含まれる1または複数のPUそれぞれに関する情報の集合であり、階層動画像復号装置1により予測画像を生成する際に参照される。PT情報PTIは、図3(e)に示すように、予測タイプ情報PType、および、予測情報PInfoを含んでいる。
予測タイプ情報PTypeは、対象PUについての予測画像生成方法として、イントラ予測を用いるのか、または、インター予測を用いるのかを指定する情報である。
予測情報PInfoは、予測タイプ情報PTypeが何れの予測方法を指定するのかに応じて、イントラ予測情報PP_Intra、または、インター予測情報PP_Interを含む。以下では、イントラ予測が適用されるPUをイントラPUとも呼称し、インター予測が適用されるPUをインターPUとも呼称する。
インター予測情報PP_Interは、階層動画像復号装置1が、インター予測によってインター予測画像を生成する際に参照される符号化パラメータを含む。より具体的には、インター予測情報PP_Interは、対象CUの各インターPUへの分割パターンを指定するインターPU分割情報、および、各インターPUについてのインター予測パラメータを含む。
イントラ予測情報PP_Intraは、階層動画像復号装置1が、イントラ予測によってイントラ予測画像を生成する際に参照される符号化パラメータを含む。より具体的には、イントラ予測情報PP_Intraには、対象CUの各イントラPUへの分割パターンを指定するイントラPU分割情報、および、各イントラPUについてのイントラ予測パラメータが含まれる。イントラ予測パラメータは、各イントラPUについてのイントラ予測方法(予測モード)を指定するためのパラメータである。
また、PU分割情報には、対象PUの形状、サイズ、および、位置を指定する情報が含まれていてもよい。PU分割情報の詳細については後述する。
[TT情報]
TT情報TTIは、CUに含まれる変換ツリー(以下、TTと略称する)に関する情報である。言い換えれば、TT情報TTIは、TTに含まれる1または複数のTUそれぞれに関する情報の集合であり、階層動画像復号装置1により残差データを復号する際に参照される。なお、以下、TUのことをブロックと称することもある。
TT情報TTIは、図3(e)に示すように、対象CUの各変換ブロックへの分割パターンを指定するTT分割情報SP_TT、および、量子化予測残差QD1〜QDNT(NTは、対象CUに含まれるブロックの総数)を含んでいる。
TT分割情報SP_TTは、具体的には、対象CUに含まれる各TUの形状、サイズ、および、対象CU内での位置を決定するための情報である。例えば、TT分割情報SP_TTは、対象となるノードの分割を行うのか否かを示す情報(split_transform_unit_flag)と、その分割の深度を示す情報(trafoDepth)とから実現することができる。
また、例えば、CUのサイズが、64×64の場合、分割により得られる各TUは、32×32画素から4×4画素までのサイズをとり得る。
各量子化予測残差QDは、階層動画像符号化装置2が以下の処理1〜3を、処理対象のブロックである対象ブロックに施すことによって生成した符号化データである。
処理1:符号化対象画像から予測画像を減算した予測残差を周波数変換(例えば、DCT変換(Discrete Cosine Transform)およびDST変換(Discrete Sine Transform)等)する;
処理2:処理1にて得られた変換係数を量子化する;
処理3:処理2にて量子化された変換係数を可変長符号化する;
なお、上述した量子化パラメータqpは、階層動画像符号化装置2が変換係数を量子化する際に用いた量子化ステップQPの大きさを表す(QP=2qp/6)。
(予測パラメータ)
インター予測およびイントラ予測における予測パラメータの詳細について説明する。上述のとおり、予測情報PInfoには、インター予測パラメータまたはイントラ予測パラメータが含まれる。
インター予測パラメータとしては、例えば、マージフラグ(merge_flag)、マージインデックス(merge_idx)、推定動きベクトルインデックス(mvp_idx)、参照画像インデックス(ref_idx)、インター予測フラグ(inter_pred_flag)、および動きベクトル残差(mvd)が挙げられる。
一方、イントラ予測パラメータとしては、例えば、推定予測モードフラグ、推定予測モードインデックス、および、残余予測モードインデックスが挙げられる。
(PU分割情報)
PU分割情報によって指定されるPU分割タイプには、対象CUのサイズを2N×2N画素とすると、次の合計8種類のパターンがある。すなわち、2N×2N画素、2N×N画素、N×2N画素、およびN×N画素の4つの対称的分割(symmetric splittings)、並びに、2N×nU画素、2N×nD画素、nL×2N画素、およびnR×2N画素の4つの非対称的分割(asymmetric splittings)である。なお、N=2m(mは1以上の任意の整数)を意味している。以下、対象CUを分割して得られる領域のことをパーティションとも称する。
図4(a)〜(h)に、それぞれの分割タイプについて、CUにおけるPU分割の境界の位置を具体的に図示している。
図4(a)は、CUの分割を行わない2N×2NのPU分割タイプを示している。また、図4(b)、(c)、および(d)は、それぞれ、PU分割タイプが、2N×N、2N×nU、および、2N×nDである場合のパーティションの形状について示している。また、図4(e)、(f)、および(g)は、それぞれ、PU分割タイプが、N×2N、nL×2N、および、nR×2Nである場合のパーティションの形状について示している。また、図4(h)は、PU分割タイプが、N×Nである場合のパーティションの形状を示している。
図4(a)および(h)のPU分割タイプのことを、そのパーティションの形状に基づいて、正方形分割とも称する。また、図4(b)〜(g)のPU分割タイプのことは、非正方形分割とも称する。
また、図4(a)〜(h)において、各領域に付した番号は、領域の識別番号を示しており、この識別番号順に、領域に対して処理が行われる。すなわち、当該識別番号は、領域のスキャン順を表している。
[インター予測の場合の分割タイプ]
インターPUでは、上記8種類の分割タイプのうち、N×N(図4(h))以外の7種類が定義されている。なお、上記6つの非対称的分割は、AMP(Asymmetric Motion Partition)と呼ばれることもある。
また、Nの具体的な値は、当該PUが属するCUのサイズによって規定され、nU、nD、nL、および、nRの具体的な値は、Nの値に応じて定められる。例えば、128×128画素のインターCUは、128×128画素、128×64画素、64×128画素、64×64画素、128×32画素、128×96画素、32×128画素、および、96×128画素のインターPUへ分割することが可能である。
[イントラ予測の場合の分割タイプ]
イントラPUでは、次の2種類の分割パターンが定義されている。対象CUを分割しない、すなわち対象CU自身が1つのPUとして取り扱われる分割パターン2N×2Nと、対象CUを、4つのPUへと対称的に分割するパターンN×Nと、である。
したがって、イントラPUでは、図4に示した例でいえば、(a)および(h)の分割パターンを取ることができる。
例えば、128×128画素のイントラCUは、128×128画素、および、64×64画素のイントラPUへ分割することが可能である。
(拡張レイヤ)
拡張レイヤの符号化データについても、例えば、図3に示すデータ構造とほぼ同様のデータ構造を採用することができる。ただし、拡張レイヤの符号化データでは、以下のとおり、付加的な情報を追加したり、パラメータを省略したりすることができる。
SPSには階層符号化を示す情報が符号化されていてもよい。
また、スライスレイヤでは、空間スケーラビリティ、時間スケーラビリティ、および、SNRスケーラビリティの階層の識別情報(それぞれ、dependency_id、temporal_id、および、quality_id)が符号化されていてもよい。フィルタ情報やフィルタのオン/オフ情報(後述)はPPS、スライスヘッダ、マクロブロックヘッダ等で符号化することが可能である。
また、CU情報CUでは、スキップフラグ(skip_flag)、ベースモードフラグ(base_mode_flag)および予測モードフラグ(pred_mode_flag)が符号化されていてもよい。
また、これらのフラグにより対象CUのCUタイプが、イントラCU、インターCU、スキップCUおよびベーススキップCUのいずれであるかが指定されていてもよい。
イントラCUおよびスキップCUは、上述のHEVC方式の場合と同様に定義できる。例えば、スキップCUでは、スキップフラグに“1”が設定される。スキップCUでない場合、スキップフラグに“0”が設定される。また、イントラCUでは、予測モードフラグに“0”が設定される。
また、インターCUは、非スキップかつ動き補償(MC;Motion Compensation)を適用するCUと定義されていてもよい。インターCUでは、例えば、スキップフラグに“0”が設定され、予測モードフラグに“1”が設定される。
ベーススキップCUは、CUまたはPUの情報を参照レイヤから推定するCUタイプである。また、ベーススキップCUでは、例えば、スキップフラグに“1”が設定され、ベースモードフラグに“1”が設定される。
また、PT情報PTIでは、対象PUのPUタイプが、イントラPU、インターPU、マージPU、およびベースマージPUのいずれであるかが指定されていてもよい。
イントラPU、インターPU、マージPUは、上述のHEVC方式の場合と同様に定義できる。
ベースマージPUは、PUの情報を参照レイヤから推定するPUタイプである。また、例えば、PT情報PTIにおいて、マージフラグおよびベースモードフラグを符号化しておき、これらのフラグを用いて、対象PUがベースマージを行うPUであるか否かを判定してもよい。すなわち、ベースマージPUでは、マージフラグに“1”が設定され、ベースモードフラグに“1”が設定される。
なお、拡張レイヤに含まれる動きベクトル情報のうち、下位レイヤに含まれる動きベクトル情報から導出可能な動きベクトル情報については、拡張レイヤから省略する構成とすることができる。このような構成とすることによって、拡張レイヤの符号量を削減することができるので、符号化効率が向上する。
また、上述のとおり拡張レイヤの符号化データを、下位レイヤの符号化方式と異なる符号化方式により生成しても構わない。すなわち、拡張レイヤの符号化・復号処理は、下位レイヤのコーデックの種類に依存しない。
下位レイヤが、例えば、MPEG−2や、H.264/AVC方式によって符号化されていてもよい。
対象レイヤと参照レイヤとが異なる符号化方式によって符号化されている場合、参照レイヤのパラメータを、対象レイヤの対応するパラメータ、または、類似のパラメータに変換することでレイヤ間における相応の互換性を保つことができる。例えば、MPEG−2や、H.264/AVC方式におけるマクロブロックは、HEVCにおけるCTBに読み替えて解釈することが可能である。
なお、以上に説明したパラメータは、単独で符号化されていてもよいし、複数のパラメータが複合的に符号化されていてもよい。複数のパラメータが複合的に符号化される場合は、そのパラメータの値の組み合わせに対してインデックスが割り当てられ、割り当てられた当該インデックスが符号化される。また、パラメータが、別のパラメータや、復号済みの情報から導出可能であれば、当該パラメータの符号化を省略することができる。
〔階層動画像復号装置〕
以下では、本実施形態に係る階層動画像復号装置1の構成について、図1〜図21を参照して説明する。
(階層動画像復号装置の構成)
図5を用いて、階層動画像復号装置1の概略的構成について説明すると次のとおりである。図5は、階層動画像復号装置1の概略的構成について示した機能ブロック図である。階層動画像復号装置1は、階層動画像符号化装置2から供給される階層符号化データDATAを、HEVC方式により復号して、対象レイヤの復号画像POUT#Tを生成する。
図5に示すように階層動画像復号装置1は、NAL逆多重化部11、可変長復号部12、予測パラメータ復元部14、テクスチャ復元部15、およびベース復号部16を備える。
NAL逆多重化部11は、NAL(Network Abstraction Layer)におけるNALユニット単位で伝送される階層符号化データDATAを逆多重化する。
NALは、VCL(Video Coding Layer)と、符号化データを伝送・蓄積する下位システムとの間における通信を抽象化するために設けられる層である。
VCLは、動画像符号化処理を行う層のことであり、VCLにおいて符号化が行われる。一方、ここでいう、下位システムは、H.264/AVCおよびHEVCのファイルフォーマットや、MPEG−2システムに対応する。以下に示す例では、下位システムは、対象レイヤおよび参照レイヤにおける復号処理に対応する。
なお、NALでは、VCLで生成されたビットストリームが、NALユニットという単位で区切られて、宛先となる下位システムへ伝送される。NALユニットには、VCLで符号化された符号化データ、および、当該符号化データが宛先の下位システムに適切に届けられるためのヘッダが含まれる。また、各階層における符号化データは、NALユニット格納されることでNAL多重化されて階層動画像復号装置1に伝送される。
NAL逆多重化部11は、階層符号化データDATAを逆多重化して、対象レイヤ符号化データDATA#Tおよび参照レイヤ符号化データDATA#Rを取り出す。また、NAL逆多重化部11は、対象レイヤ符号化データDATA#Tを可変長復号部12に供給するとともに、参照レイヤ符号化データDATA#Rをベース復号部16に供給する。
可変長復号部12は、対象レイヤ符号化データDATA#Tに含まれるバイナリから各種のシンタックス値を復号するための情報の復号処理を行う。
具体的には、可変長復号部12は、以下のように、予測情報、符号化情報および変換係数情報を符号化データDATA#Tから復号する。
すなわち、可変長復号部12は、各CUまたはPUに関する予測情報を、符号化データDATA#Tから復号する。予測情報には、例えば、CUタイプまたはPUタイプの指定が含まれる。
CUがインターCUである場合、可変長復号部12はPU分割情報を符号化DATA#Tから復号する。加えて、各PUにおいて、可変長復号部12は、さらに、予測情報として、参照画像インデックスRI、推定動きベクトルインデックスPMVI、及び、動きベクトル残差MVD等の動き情報、モード情報を符号化データDATA#Tから復号する。
一方、CUがイントラCUである場合、可変長復号部12は、さらに、予測情報として、(1)予測単位のサイズを指定するサイズ指定情報、および、(2)予測インデックスを指定する予測インデックス指定情報を含むイントラ予測情報を符号化データDATA#Tから復号する。
また、可変長復号部12は、符号化情報を符号化データDATA#Tから復号する。符号化情報には、CUの形状、サイズ、位置を特定するための情報が含まれる。より具体的には、符号化情報には、対象ツリーブロックの各CUへの分割パターンを指定するツリーブロック分割情報、すなわち、対象ツリーブロックに含まれる各CUの形状、サイズ、および、対象ツリーブロック内での位置を指定する情報が含まれる。
可変長復号部12は、復号した予測情報および符号化情報を予測パラメータ復元部14に供給する。
また、可変長復号部12は、各ブロックに関する量子化予測残差QD、及び、そのブロックを含むツリーブロックに関する量子化パラメータ差分Δqpを符号化データDATA#Tから復号する。可変長復号部12は、復号した量子化予測残差QDおよび量子化パラメータ差分Δqpを変換係数情報としてテクスチャ復元部15に供給する。
ベース復号部16は、参照レイヤ符号化データDATA#Rから、対象レイヤに対応する復号画像を復号する際に参照される参照レイヤに関する情報であるベース復号情報を復号する。ベース復号情報には、ベース予測パラメータ、ベース変換係数、およびベース復号画像が含まれる。ベース復号部16は、復号したベース復号情報を予測パラメータ復元部14およびテクスチャ復元部15に供給する。
予測パラメータ復元部14は、予測情報およびベース復号情報を用いて、予測パラメータを復元する。予測パラメータ復元部14は、復元した予測パラメータを、テクスチャ復元部15に供給する。なお、予測パラメータ復元部14は、予測パラメータを復元する際に、テクスチャ復元部15が備えるフレームメモリ155(後述)に格納された動き情報を参照することができる。
テクスチャ復元部15は、変換係数情報、ベース復号情報および予測パラメータを用いて、復号画像POUT#Tを生成し、外部に出力する。なお、テクスチャ復元部15では、復元された復号画像に関する情報が、内部に備えるフレームメモリ155(後述)に格納される。
以下において、ベース復号部16、予測パラメータ復元部14、およびテクスチャ復元部15それぞれの詳細について説明する。
(予測パラメータ復元部)
図6を用いて、予測パラメータ復元部14の詳細構成について説明する。図6は、予測パラメータ復元部14の構成について例示した機能ブロック図である。
図6に示すように、予測パラメータ復元部14は、予測タイプ選択部141、スイッチ142、イントラ予測モード復元部143、動きベクトル候補導出部144、動き情報復元部145、マージ候補導出部146、マージ情報復元部147、およびPU分割タイプ導出部148を備える。
予測タイプ選択部141は、CUタイプまたはPUタイプに応じてスイッチ142に切り替え指示を送り予測パラメータの導出処理を制御する。具体的には以下のとおりである。
イントラCUまたはイントラPUが指定されている場合、予測タイプ選択部141はイントラ予測モード復元部143を用いて予測パラメータを導出できるようスイッチ142を制御する。
インターCU(マージなし)およびインターPU(マージなし)のいずれかが指定されている場合、予測タイプ選択部141は動き情報復元部145を用いて予測パラメータを導出できるようスイッチ142を制御する。
ベーススキップCU、ベースマージPU、スキップCUおよびマージPUのいずれかが指定されている場合、予測タイプ選択部141はマージ情報復元部147を用いて予測パラメータを導出できるようスイッチ142を制御する。
スイッチ142は、予測タイプ選択部141の指示に応じて、予測情報を、イントラ予測モード復元部143、動き情報復元部145、およびマージ情報復元部147のいずれかに供給する。予測情報の供給先において予測パラメータが導出される。
イントラ予測モード復元部143は、予測情報から予測モードを導出する。すなわち、イントラ予測モード復元部143が予測パラメータとして復元するのは予測モードである。
ここで、図7を用いて、予測モードの定義について説明する。図7は、予測モードの定義を示している。同図に示すように、36種類の予測モードが定義されており、それぞれの予測モードは、「0」〜「35」の番号(イントラ予測モードインデックス)によって特定される。また、図8に示すように、各予測モードには次のような名称が割り当てられている。すなわち、「0」は、“Intra_Planar(プラナー予測モード、平面予測モード)”であり、「1」は、“Intra DC(イントラDC予測モード)”であり、「2」〜「34」は、“Intra Angular(方向予測)”であり、「35」は、“Intra From Luma”である。「35」は、色差予測モード固有のものであり、輝度の予測に基づいて色差の予測を行うモードである。言い換えれば、色差予測モード「35」は、輝度画素値と色差画素値との相関を利用した予測モードである。色差予測モード「35」はLMモードとも称する。予測モード数(intraPredModeNum)は、対象ブロックのサイズによらず「35」である。
動きベクトル候補導出部144は、ベース復号情報を用いて、レイヤ内動き推定処理、または、レイヤ間動き推定処理により推定動きベクトルの候補を導出する。動きベクトル候補導出部144は、導出した動きベクトルの候補を動き情報復元部145に供給する。
動き情報復元部145は、マージを行わない各インターPUに関する動き情報を復元する。すなわち、動き情報復元部145が予測パラメータとして復元するのは動き情報である。
動き情報復元部145は、対象CU(PU)がインターCU(インターPU)である場合、予測情報から、動き情報を復元する。より具体的には、動き情報復元部145は、動きベクトル残差(mvd)、推定動きベクトルインデックス(mvp_idx)、インター予測フラグ(inter_pred_flag)および、参照画像インデックス(refIdx)を取得する。そして、インター予測フラグの値に基づいて、参照画像リストL0と参照画像リストL1各々について参照画像リスト利用フラグを決定する。続いて、対応する参照画像リスト利用フラグが、当該参照画像を利用することを示している場合、動き情報復元部145は、推定動きベクトルインデックスの値に基づいて、推定動きベクトルを導出するとともに、動きベクトル残差と推定動きベクトルとに基づいて動きベクトルを導出する。動き情報復元部145は、導出した動きベクトルと、参照画像リスト利用フラグ、および、参照画像インデックスと合わせて動き情報(動き補償パラメータ)として出力する。
マージ候補導出部146は、後述するフレームメモリ155から供給される復号済みの動き情報および/またはベース復号部16から供給されるベース復号情報等を用いて、各種のマージ候補を導出する。マージ候補導出部146は、導出したマージ候補をマージ情報復元部147に供給する。
マージ情報復元部147は、レイヤ内またはレイヤ間でマージを行う各PUに関する動き情報を復元する。すなわち、動き情報復元部145が予測パラメータとして復元するのは動き情報である。
具体的には、マージ情報復元部147は、対象CU(PU)がレイヤ内でマージを行うスキップCU(マージPU)である場合、マージ候補導出部146がレイヤ内マージにより導出したマージ候補リストから、予測情報に含まれるマージインデックス(merge_idx)に対応する動き補償パラメータを導出することにより、動き情報を復元する。
また、マージ情報復元部147は、レイヤ間でマージを行うベーススキップCUである場合、マージ候補導出部146がレイヤ間マージにより導出したマージ候補リストから、予測情報に含まれるマージインデックス(merge_idx)に対応する動き補償パラメータを導出することにより、動き情報を復元する。
PU分割タイプ導出部148は、符号化情報およびベース復号情報を用いて、対象レイヤにおける対象CUのPUへのPU分割タイプを推定する。PU分割タイプ導出部148は、推定したPU分割タイプをマージ候補導出部146およびマージ情報復元部147に供給する。
なお、マージ候補導出部146およびPU分割タイプ導出部148の詳細については後述する。
(テクスチャ復元部)
図9を用いて、テクスチャ復元部15の詳細構成について説明する。図9は、テクスチャ復元部15の構成について例示した機能ブロック図である。
図9に示すように、テクスチャ復元部15は、逆直交変換・逆量子化部151、テクスチャ予測部152、加算器153、ループフィルタ部154、およびフレームメモリ155を備える。
逆直交変換・逆量子化部151は、(1)可変長復号部12から供給される変換係数情報に含まれる量子化予測残差QDを逆量子化し、(2)逆量子化によって得られたDCT係数を逆直交変換(例えば、DCT(Discrete Cosine Transform)変換)し、(3)逆直交変換によって得られた予測残差Dを加算器153に供給する。なお、量子化予測残差QDを逆量子化する際に、逆直交変換・逆量子化部151は、変換係数情報に含まれる量子化パラメータ差分Δqpから量子化ステップQPを導出する。量子化パラメータqpは、直前に逆量子化/逆直交変換したツリーブロックに関する量子化パラメータqp’に量子化パラメータ差分Δqpを加算することによって導出でき、量子化ステップQPは、量子化パラメータqpからQP=2qp/6によって導出できる。また、逆直交変換・逆量子化部151による予測残差Dの生成は、ブロック(変換単位)を単位として行われる。
テクスチャ予測部152は、予測パラメータに応じて、ベース復号情報に含まれるベース復号画像またはフレームメモリに格納されている復号済みの復号画像を参照し、予測画像を生成する。
テクスチャ予測部152は、より詳細には、インター予測部152A、レイヤ内イントラ予測部152B、およびレイヤ間イントラ予測部152Cを備える。
インター予測部152Aは、各インター予測パーティションに関する予測画像をインター予測により生成する。具体的には、インター予測部152Aは、動き情報復元部145またはマージ情報復元部147から予測パラメータとして供給される動き情報を用いて、参照画像から予測画像を生成する。
レイヤ内イントラ予測部152Bは、各イントラ予測パーティションに関する予測画像をレイヤ内イントラ予測により生成する。具体的には、レイヤ内イントラ予測部152Bは、イントラ予測モード復元部143から予測パラメータとして供給される予測モードを用いて、対象パーティションにおいて復号済みの復号画像から予測画像を生成する。
レイヤ間イントラ予測部152Cは、各イントラ予測パーティションに関する予測画像をレイヤ間イントラ予測により生成する。具体的には、レイヤ間イントラ予測部152Cは、イントラ予測モード復元部143から予測パラメータとして供給される予測モードを用いて、ベース復号情報に含まれるベース復号画像に基づいて予測画像を生成する。ベース復号画像は、対象レイヤの解像度に合わせて適宜アップサンプリングされてもよい。
テクスチャ予測部152は、インター予測部152A、レイヤ内イントラ予測部152Bまたはレイヤ間イントラ予測部152Cが生成した予測画像を加算器153に供給する。
加算器153は、テクスチャ予測部153予測画像と、逆直交変換・逆量子化部151から供給された予測残差Dとを加算することによって復号画像を生成する。
ループフィルタ部154は、加算器153から供給される復号画像に対し、デブロッキング処理や、適応フィルタパラメータによるフィルタ処理を施すものである。
フレームメモリ155は、ループフィルタ部154によるフィルタ済み復号画像を格納する。
(ベース復号部)
図10を用いて、ベース復号部16の詳細構成について説明する。図10は、ベース復号部16の構成について例示した機能ブロック図である。
図10に示すように、ベース復号部16は、可変長復号部161、ベース予測パラメータ復元部162、ベース変換係数復元部163、およびベーステクスチャ復元部164を備える。
可変長復号部161は、参照レイヤ符号化データDATA#Rに含まれるバイナリから各種のシンタックス値を復号するための情報の復号処理を行う。
具体的には、可変長復号部161は、予測情報および変換係数情報を符号化データDATA#Rから復号する。可変長復号部161が復号する予測情報および変換係数のシンタックスは、可変長復号部12と同様であるのでここではその詳細な説明を省略する。
可変長復号部161は、復号した予測情報をベース予測パラメータ復元部162に供給するとともに、復号した変換係数情報をベース変換係数復元部163に供給する。
ベース予測パラメータ復元部162は、可変長復号部161から供給される予測情報に基づいて、ベース予測パラメータを復元する。ベース予測パラメータ復元部162が、ベース予測パラメータを復元する方法については、予測パラメータ復元部14と同様であるので、ここではその詳細な説明を省略する。ベース予測パラメータ復元部162は、復元したベース予測パラメータを、ベーステクスチャ復元部164に供給するとともに、外部に出力する。
ベース変換係数復元部163は、可変長復号部161から供給される変換係数情報に基づいて、変換係数を復元する。ベース変換係数復元部163が変換係数を復元する方法については、逆直交変換・逆量子化部151と同様であるので、ここではその詳細な説明を省略する。ベース変換係数復元部163は、復元したベース変換係数を、ベーステクスチャ復元部164に供給するとともに、外部に出力する。
ベーステクスチャ復元部164は、ベース予測パラメータ復元部162から供給されるベース予測パラメータと、ベース変換係数復元部163から供給されるベース変換係数とを用いて、復号画像を生成する。具体的には、ベーステクスチャ復元部164は、ベース予測パラメータに基づき、テクスチャ予測部152と同様のテクスチャ予測を行って、予測画像を生成する。また、ベーステクスチャ復元部164は、ベース変換係数に基づいて予測残差を生成し、生成した予測残差と、テクスチャ予測により生成した予測画像とを加算することでベース復号画像を生成する。
なお、ベーステクスチャ復元部164は、ベース復号画像に対して、ループフィルタ部154と同様のフィルタ処理を施してもよい。また、ベーステクスチャ復元部164は、復号済みのベース復号画像を格納するためのフレームメモリを備えていてもよく、テクスチャ予測においてフレームメモリに格納されている復号済みのベース復号画像を参照してもよい。
<<マージ候補導出部の詳細>>
次に、図1を用いて、マージ候補導出部146の詳細構成について説明する。図1は、マージ候補導出部146の構成について例示した機能ブロック図である。
図1に示すように、マージ候補導出部146は、マージ候補導出制御部(判定手段)1461、マージ候補格納部1462、スライスタイプ判定部1463、および個別マージ候補導出部1464を備える構成である。
マージ候補導出制御部1461は、個別マージ候補導出部1464を制御し、所定数(マージ候補導出数)のマージ候補を導出しマージ候補格納部1462に格納する。上記マージ候補導出数として、例えば、merge_idx+1の値が通常用いられる。なお、上記マージ候補導出数として、merge_idx+1の値以上の任意の整数を用いてもよい。例えば、merge_idxの最大値に1を加えた値をMRG_MAX_NUM_CANDSとして、上記マージ候補導出数として用いてもよい。
マージ候補格納部1462には、複数のマージ候補が格納される。マージ候補は順序づけられたリスト(マージ候補リスト)として記録される。
スライスタイプ判定部1463は、要求に応じて対象PUを含むスライスのスライスタイプを判定し、結果を出力する。
個別マージ候補導出部1464は、指定された導出方法によりマージ候補を導出して出力する。指定された導出方法に基づき選択される各マージ候補導出部の詳細動作については後述する。なお、導出されるマージ候補は、例示的には、参照画像リストLXに対する参照画像リスト利用フラグ(predFlagLX)、参照画像インデックス(refIdxLX)、動きベクトル(mvLX)から構成される。ここで、LXはL0またはL1である。
(個別マージ候補導出部の詳細)
個別マージ候補導出部1464は、より詳細には、空間マージ候補導出部(対象レイヤ候補導出手段、空間動き情報候補導出手段)1464A、レイヤ間マージ候補導出部(層間候補導出手段)1464B、時間マージ候補導出部(対象レイヤ候補導出手段、時間動き情報候補導出手段)1464C、結合マージ候補導出部(対象レイヤ候補導出手段)1464D、および、ゼロマージ候補導出部(対象レイヤ候補導出手段)1464Eを有している。なお、図1では図示しないが、空間マージ候補導出部1464Aおよび時間マージ候補導出部1464Cには、フレームメモリ155に格納されている復号済のCU及びPUの符号化パラメータ、特に、PU単位の動き補償(動き補償パラメータ)が供給される。
また、以下では、空間マージ候補導出部1464A、レイヤ間マージ候補導出部1464B、時間マージ候補導出部1464C、結合マージ候補導出部1464D、および、ゼロマージ候補導出部1464Eをまとめて参照する場合、“各マージ候補導出部”と総称する。また、各マージ候補導出部は、所定の優先順に従ってマージ候補を導出する。このマージ候補の導出順序は、マージ候補導出制御部1461によって制御される。
また、レイヤ内マージを行う場合、マージ候補導出制御部1461は、レイヤ間マージ候補を除く任意のマージ候補を各マージ候補導出部に導出させることができる。また、レイヤ間マージを行う場合、マージ候補導出制御部1461は、レイヤ間マージ候補を含む任意のマージ候補を各マージ候補導出部に導出させることができる。
(空間マージ候補導出部)
図11は、空間マージ候補導出部1464Aの動作を説明するための図である。図11は、対象PUと、隣接ブロックA0、A1、B0、B1、B2の位置関係を示している。空間マージ候補導出部1464Aでは、概略的には、上記各隣接ブロックにおける動き補償パラメータが、マージ候補として出力される。導出する順序は、例示的に、A1、B1、B0、A0、B2であるとする。導出されたマージ候補は、マージ候補格納部1462に格納される。より厳密には、導出された順番で、マージ候補格納部1462に格納されているマージ候補リストの末尾に追加される。各隣接ブロックの位置は、PUの左上座標を(xP,yP)、PUのサイズnPSW、nPSHとして、以下のように表現できる。
A0:(xP - 1,yP + nPSH)
A1:(xP - 1,yP + nPSH - 1)
B0:(xP + nPSW,yP - 1)
B1:(xP + nPSW - 1,yP - 1)
B2:(xP - 1,yP - 1)
なお、以下の条件のいずれかを満たす場合は、位置N(NはA0、A1、B0、B1、または、B2のいずれか)に対応するマージ候補は導出されない。
・位置Nのブロックが利用可能ではない(availableではない)場合。
・位置Nのブロックがイントラ符号化されている場合。
・NがB2であって、A0、A1、B0、B1の位置に対応するマージ候補が全て導出された場合。
・PUの分割タイプが、2N×NもしくはN×2N、かつ、PUのインデックスが1であって、ブロックNとインデックス0のPUが同一の動き補償パラメータを有する場合。
・NがB0であって、ブロックNとブロックB1が同一の動き補償パラメータを有する場合。
・NがA0であって、ブロックNとブロックA1が同一の動き補償パラメータを有する場合。
・NがB2であって、ブロックNが、ブロックA1またはブロックB1のいずれかと同一の動き補償パラメータを有する場合。
ここで、あるブロックがavailableではない場合とは、当該ブロックが画面外にある場合、スライス外にある場合、または、未復号である場合である。また、2つのブロックが同一の動き補償パラメータを有するとは、両ブロックにおいて、参照画像リストL0とL1の双方について、参照画像リスト利用フラグ、参照画像インデックス、動きベクトルが全て等しいことを表す。動き補償パラメータの同一性の判定(一致判定)、については後に詳細に説明する。
(レイヤ間マージ候補導出部)
図12は、レイヤ間マージ候補導出部1464Bの動作を示す図である。図12は、レイヤ間マージ候補を導出する際に参照する参照レイヤ上の領域を示している。レイヤ間マージ候補導出部1464Bでは、例示的には、対象PUに対応する参照レイヤ上の領域(以下、対応参照領域と略称する)における右下の位置C0における動き補償パラメータが、マージ候補として出力される。導出されたマージ候補は、マージ候補格納部1462に格納される。より厳密には、導出された順番で、マージ候補格納部1462に格納されているマージ候補リストの末尾に追加される。
レイヤ間マージ候補導出部1464Bは、具体的には、次のようにベース復号情報を参照してマージ候補を導出する。
レイヤ間マージ候補導出部1464Bが参照するベース復号情報には、参照レイヤの動き補償パラメータ(mxLX_RL, refIdxLX_RL, predFlagLX_RL)が含れている。
また、レイヤ間マージ候補導出部1464Bが出力するマージ候補(マージ候補C0)は、動き補償パラメータ(mvLX_C0, refIdxLX_C0, predFlagLX_C0)より構成される。
ここで、
対象予測単位の左上画素位置 :(xP, yP)
対応する参照レイヤの画素位置:(xPR, yPR)
参照レイヤに対する対象レイヤの解像度の比率:(scaleX, scaleY)
対象PUのサイズ:nPSW * nPSH
とすると、対応参照領域のサイズは、nPSWR = ceil(nPSW / scaleX)、nPSHR = ceil(nPSH / scaleY)である。対応参照領域は、対象PUに対応する参照レイヤ上の領域のことである。
また、このときC0の位置(xC0, yC0)とすると、
(xC0, yC0) = (xPR + nPSWR - 1, yPR + nPSHR - 1)
であり、マージ候補C0は、
mvL_C0[0] = mvLX_RL(xC0, yC0)[0] * scaleX
mvL_C0[1] = mvLX_RL(xC0, yC0)[1] * scaleY
refIdxLX_C0 = refIdxLX_RL(xC0, yC0)
predFlagLX_C0 = predFlagLX_RL(xC0, yC0)
となる。
空間マージ候補は、前述のとおり対象PUの右上(B1、B0)、左下(A1、A0)、および左上(B2)の位置の情報に基づき導出されるのに対して、レイヤ間マージ候補は、対応参照領域における右下(C0)の位置の情報に基づいて導出される。これにより、マージ候補リストに、空間マージ候補とは性質の異なる多様なマージ候補が含まれることになる。
その結果、マージ候補リストに含まれるいずれかのマージ候補が、実際の動き情報と一致する可能性が高まり、これにより動き情報の符号量を削減することができる。
なお、以上の例に限定されず、レイヤ間マージ候補導出部1464Bは、対応参照領域内の任意の位置からマージ候補を導出できるようになっていてもよい。
例えば、対象予測単位において復号未済の領域に対応する参照レイヤ上の領域において復号されている動き情報をマージ候補として導出できるようになっていればよい。
また、レイヤ間マージ候補導出部1464Bは、右下(C0)の右、下、および右下のいずれかに隣接する位置の情報に基づいて導出してもよい。
例えば、レイヤ間マージ候補導出部1464Bは、図11に示した対象PUの領域R1付近の位置に対応する参照レイヤ上の位置からマージ候補を導出できるようになっていてもよい。領域R1は、対象参照領域内の右下の位置を含む所定範囲の領域と表現することができる。
定性的に言えば、空間マージ候補が導出される位置と異なる位置(“異なる位置”とは、言い換えれば、“所定の距離以上、離間した位置”)に対応する参照レイヤ上の位置から、レイヤ間マージ候補が導出されるようになっていればよい。
空間マージ候補では、主に対象PUの左上領域に対応する動き情報が多く、右下領域(領域R1)に対応する動き情報が少ない。上記構成によれば、レイヤ間マージ候補として、対応参照領域内の位置から、空間マージ候補と異なる性質のマージ候補を導出することができる。
復号未済の領域について補足すると、以下の通りである。一般に、ツリーブロックは、図20に示すように、ピクチャの左上を起点として、右下方向に向かうラスタスキャン順に復号処理される。そのような場合、対象予測単位が含まれる対象ツリーブロックに対して、ラスタスキャン順で後続のツリーブロックは、復号未済の領域となる。ラスタスキャン順の場合、対象ツリーブロックより下に位置するツリーブロック、または、対象ツリーブロックと垂直位置が同じツリーブロックであって、対象ツリーブロックよりも右に位置するツリーブロックが復号未済のツリーブロックである。復号未済のツリーブロックに含まれる領域は、復号未済の領域である。
次に、ツリーブロック内の符号化単位(CU)の処理順について、ツリーブロック内のCUは、いわゆるZスキャンの順により処理される。Zスキャンでは、ツリーブロックを4つの合同な正方形に分割して、左上、右上、左下、右下の各正方形領域に含まれるCUの順に処理を行う。続いて、各正方形領域についても再帰的に処理を行う。例えば、左上の領域をさらに4つの合同な正方領域に分割し、左上、右上、左下、右下の順に各正方形領域に含まれるCUの処理を行う。
Zスキャンの例について、図21の例を参照しながら説明する。図21において、各領域に付与された数字はZスキャンによるスキャン順を表す。ツリーブロックを4分割した左上領域に1〜7のCU、右上領域に8のCU、左下領域に9のCU、そして、右下領域に10〜13のCUが含まれている。1〜7のCUが含まれる左上領域をさらに4分割した左上領域に1のCU、右上領域に2のCU、左下領域に3のCU、右下領域に4〜7のCUが含まれる。Zスキャン順で対象CUよりも後のCUは復号未済のCUであり、当該CUに含まれる領域は復号未済の領域である。
また、レイヤ間マージ候補導出部1464Bは、特定の位置からマージ候補を導出することを制限または禁止されていてもよい。
例えば、図17(d)に示すような対応参照領域における左上の位置C0からマージ候補を導出することが禁止されていてもよい。
また、対応参照領域における右下(C0)の位置に対応する動き情報がメモリ上に記録されていない場合もあるが、そのような場合には右下(C0)の近傍の位置に対応する情報に基づいてマージ候補を導出してもよい。例えば、参照レイヤの動き情報が特定の間隔(N画素単位)で間引いて記録されている場合、C0の位置、すなわち、(xC0,yC0)の位置に替えて、((xC0//N)*N, (yC0//N)*N)の位置に対応する動き情報に基づいてマージ候補を導出してもよい。ここで、演算子“//”は、“x//y”の値がxをyで割った商となる演算子である。
(時間マージ候補導出部)
図13は、時間マージ候補導出部1464Cの動作を説明する図である。図13(a)を参照して説明すると、時間マージ候補導出部1464Cは、概略的には、時間マージ候補を次のようにして導出する。すなわち、現ピクチャがcurrPicである場合、時間マージ候補導出部1464Cは、現ピクチャ内における対象PUの空間的位置とほぼ同じ空間的位置を占める、参照画像インデックスrefIdxL0で指定される参照画像上のPU、もしくは、参照画像インデックスrefIdxL1で指定される参照画像上のPUの動き補償パラメータをコピーすることにより時間マージ候補を導出する。図13(b)を参照して、参照インデックス番号refIdxL0、参照インデックス番号refIdxL1の導出方法を説明する。参照インデックス番号refIdxLX(ここでXは0もしくは1もしくはC)は、対象PUの隣接PU、A、B、Cのブロックの参照ピクチャrefIdxLXA、refIdxLXB、refIdxLXCを用いて以下のように求められる。
(1)refIdxLXA = refIdxLXB = refIdxLXCの場合、
refIdxLXA = -1のとき、refIdxLX = 0
それ以外のとき、refIdxLX = refIdxLXA
(2)refIdxLXA = refIdxLXBの場合、
refIdxLXA = -1のとき、refIdxLX = refIdxLXC
それ以外のとき、refIdxLX = refIdxLXA
(3)refIdxLXB = refIdxLXCの場合、
refIdxLXB = -1のとき、refIdxLX = refIdxLXA
それ以外のとき、refIdxLX = refIdxLXB
(4)refIdxLXA = refIdxLXCの場合、
refIdxLXA = -1のとき、refIdxLX = refIdxLXB
それ以外のとき、refIdxLX = refIdxLXA
(5)refIdxLXA = -1の場合、
refIdxLX = min( refIdxLXB, refIdxLXC)
(6)refIdxLXB = -1の場合、
refIdxLX = min( refIdxLXA, refIdxLXC)
(7)refIdxLXC = -1の場合、
refIdxLX = min( refIdxLXA, refIdxLXB)
(8)その他の場合、
refIdxLX = min( refIdxLXA, refIdxLXB, refIdxLXC)
ここで、minは最小値をとる関数である。
なお、ブロックA、Bの座標は、以下の通りである。
A:(xP - 1,yP + nPSH - 1)
B:(xP + nPSW - 1,yP - 1)
ブロックCの座標は、下記C0、C1、C2の何れかである。C0からC2の順に走査し、各位置に対応するPUが、availableであり、イントラ以外である場合に、その位置のPUのrefIdxLXを、refIdxLXCとする。
C0:(xP + nPSW - 1,yP - 1)
C1:(xP - 1,yP + nPSH)
C2:(xP - 1,yP - 1)
上記のようにrefIdxL0、refIdxL1が導出されると、refIdxL0で示される参照ピクチャの位置(xP +nPSW、yP +nPSH)の動き補償パラメータを用いて、L0の動きベクトルを定め、refIdxL1で示される参照ピクチャの位置(xP +nPSW、yP +nPSH)の動き補償パラメータを用いて、L1の動きベクトルを定めることにより、時間的マージ候補を導出する。すなわち、各参照ピクチャリストLX(X=0、X=1もしくはX=C)に対する動きベクトルmvLXCol[0]、mvLXCol[0]を、LXリスト及びrefIdxLXで示される参照ピクチャから算出する。具体的には、refIdxLXで示される参照ピクチャの位置(xP +nPSW、yP +nPSH)のPUがunavailableである、もしくは、イントラ予測モードである場合には、時間的マージ候補のLXの動きベクトルmvLXCol[0]、mvLXCol[1]を0に定める。それ以外、すなわち、該PUのPredFlagL0が0である場合には、該PUのL1の動きベクトルMvL1を、時間的マージ候補のLXの動きベクトルmvLXCol[0]、mvLXCol[1]として用いる。それ以外の場合には、該PUのL0の動きベクトルMvL0を、時間マージ候補のLXの動きベクトルmvLXCol[0]、mvLXCol[1]として用いる。
続いて、動きベクトルmvLXColを、現フレームのPOC(Picture Order Count)と参照ピクチャのPOCを用いてスケーリングして最終的な時間マージ候補を得る。時間マージ候補導出部1464Cは、導出した時間マージ候補を、マージ候補格納部1462に格納する。
(結合マージ候補導出部)
結合マージ候補導出部1464Dは、概略的には、既に導出されマージ候補格納部1462に格納された、2つの異なる導出済マージ候補の動きベクトルを組み合わせることで結合マージ候補を導出する。
結合マージ候補導出部1464Dでは、結合マージ候補カウントcombCntを0から増加させ、マージ候補リストの要素数がマージ候補導出数と一致するか、または、combCntが最大値(5)を超えるまで、結合マージ候補を導出して、マージ候補リストの末尾に追加する。
特定の結合マージ候補カウントcombCntに対応する結合マージ候補の導出手順は次の通りである。
まず、マージ候補組み合わせリストをcombCntをインデックス(combIdx)として参照して、結合に用いる2つのマージ候補、すなわち、L0マージ候補とL1マージ候補のマージ候補リスト上の位置を示すインデックスl0CandIdx、L1CandIdxをそれぞれ導出する。マージ候補組み合わせリストの例を図14に示す。結合マージ候補は、参照画像リストL0に対してL0マージ候補、参照画像リストL1に対してL1マージ候補の動き補償パラメータをそれぞれコピーすることで生成される。なお、以下の何れかの条件が満たされる場合には、combCntに対応する結合マージ候補は導出されない。
・L0マージ候補のL0参照画像リスト利用フラグが0
・L1マージ候補のL1参照画像リスト利用フラグが0
・L0マージ候補とL1マージ候補の動きベクトルまたは参照画像が一致
上記の手順で結合マージ候補が導出される。なお、結合マージ候補に対応する動き補償パラメータでは、L0とL1の参照画像リスト利用フラグが共に1となっている。すなわち、結合マージ候補は双予測を行うマージ候補である。したがって、双予測が適用不可能である状況(例えば、Pスライス内のPU)では、結合マージ候補はマージ候補リストに含まれない。
(ゼロマージ候補導出部)
図15は、ゼロマージ候補導出部1464Eの動作を示す図である。マージ候補格納部1462のマージ候補数がマージ候補導出数に到達していれば、ゼロマージ候補導出部1464Eは、処理を行わない(ゼロマージ候補は導出されない)。一方、マージ候補数がマージ候補導出数個に到達していなければ、ゼロマージ候補導出部1464Eは、マージ候補数がマージ候補導出数に到達するまでゼロベクトルを有するマージ候補を生成してマージ候補リストに追加する。すなわち、参照するマージ候補のインデックスをzeroCandmとして、L0の動きベクトル(mvL0zeroCandm[0]、mvL0zeroCandm[1])、L1の動きベクトル(mvL1zeroCandm[0]、mvL1zeroCandm[1])が共に0となるような候補を導出する。ここで、インデックスzeroCandmは、既に導出されたマージ候補リストの最後のインデックスの値に1を加えた値を用いる。mは、0から開始するインデックスであり、ゼロマージ候補をマージ候補リストに追加する際に1ずつインクリメントする。
(マージ候補導出処理の流れ)
図16を用いてマージ候補導出処理の流れの一例について説明する。図16は、マージ候補導出部146の動作の流れの一例を示すフロー図である。
図16に示すように、まず、空間マージ候補導出部1464Aにおいて、マージ候補S0〜マージ候補S2が導出される(S101)。
続いて、レイヤ間マージ候補導出部1464Bにおいて、マージ候補C0が導出される(S102)。
続いて、時間マージ候補導出部1464Cにおいて、マージ候補Tが導出される(S103)。
続いて、結合マージ候補導出部1464Dにおいて、マージ候補Cが導出される(S104)。なお、S104は、スライスタイプ判定部1463によって、スライスタイプがBスライスであると判定されときに実行するように構成しても構わない。
最後にゼロマージ候補導出部1464Eにおいて、マージ候補Zが導出される(S105)。
(作用・効果)
以上に示したように、階層動画像復号装置1は、レイヤごとに異なる品質の画像に関する画像情報が階層的に符号化された階層符号化データDATAを復号して、復号の対象となる対象レイヤにおける動き情報を復元し、復元した動き情報に基づく動き補償予測によって生成した予測画像を用いて、上記対象レイヤにおける復号画像POUT#Tを復元する階層動画像復号装置1であって、上記対象レイヤにおける予測画像生成の処理対象となる対象予測単位において、復号済みレイヤである参照レイヤを参照し、該対象予測単位を含む周辺領域で復号未済の領域に対応する該参照レイヤ上の領域において復号されている動き情報を、上記対象予測単位における動き情報を推定するための候補として導出するレイヤ間マージ候補導出部1464Bを備える構成である。
よって、上記構成によれば、同じレイヤでは未復号のため利用できない領域に対応する参照領域上の動き情報をマージ候補リストに追加することができる。
これにより、階層符号化における動き情報候補リストの生成において、多様な動き情報を候補として導出することで動き情報の符号量削減を図ることができるという効果を奏する。
(マージ候補導出部の変形例)
以下において、マージ候補導出部146の好ましい変形例について説明する。
(2個以上の位置からレイヤ間マージ候補を導出する)
図17(a)〜(c)に示すように、レイヤ間マージ候補導出部1464Bは、参照領域上の2個以上の位置から、レイヤ間マージ候補を導出してもよい。以下、図17(a)〜(c)のそれぞれについて順に説明する。
[1] 図17(a)に示すように、レイヤ間マージ候補導出部1464Bは、位置C0に加えて、対応参照領域における左上の位置C1をさらにレイヤ間マージ候補導出の対象としてもよい。
例えば、レイヤ間マージ候補導出部1464Bは、位置C0が利用不可である場合、位置C1を利用する。すなわち、レイヤ間マージ候補導出部1464Bのマージ候補導出の優先順位としては、右下の位置C0が、位置C1に優先する。
上記変形例によれば、位置C0が利用不可のため、位置C0の動き情報が参照できない場合でも、レイヤ間マージ候補導出部1464Bがレイヤ間マージ候補を導出できる場合がある。
[2] 図17(b)に示すように、レイヤ間マージ候補導出部1464Bは、対応参照領域の右下隣接ブロックC0、C2、C3と、対応参照領域における左上の位置C1とをレイヤ間マージ候補の導出に利用してもよい。なお、マージ候補導出の優先順位は、例示的に、位置C0,C1,C2、およびC3の順とする。
対象PUまたは対応参照領域が小さい場合、対応参照領域における左上の位置に対応する画素と右下の位置に対応する画素とが同じ動き情報の記録単位に属している可能性がある。
右下隣接ブロックの動き情報を用いることで、対応参照領域における左上の部分と異なる記録単位から動き情報を導出できる可能性が高まる。
これにより、対応参照領域の左上部分と、異なる動き情報を導出できる可能性が高まる。
[3] 図17(c)に示すように、レイヤ間マージ候補導出部1464Bは、対応参照領域における右下の位置C0、対応参照領域の右下隣接ブロックC1、対応参照領域における左上の位置C1、対応参照領域の右隣接ブロックC3および下隣接ブロックC4をレイヤ間マージ候補の導出に利用してもよい。
また、マージ候補導出の優先順位は、位置C0,C1,C2、C3、およびC4の順としてもよい。
また、位置C0〜C4の各位置において、動き情報が存在しない場合は、レイヤ間マージ候補を追加しなくてもよい。
また、マージ候補導出制御部1461が、位置C1〜C4における動き補償パラメータそれぞれと、位置C0における動き補償パラメータとの間で一致判定を行い、その判定の結果、互いの動き補償パラメータが一致しない場合に、レイヤ間マージ候補導出部1464Bは、対応するマージ候補を導出してもよい。
なお、ブロックA、ブロックBの動き補償パラメータの一致判定を行う関数equalMotion(A, B)の動作は、例示的には、以下のように規定できる。
equalMotion(A, B) = (predFlagL0A == predFlagL0B) && (predFlagL1A == predFlagL1B) && mvL0A[0] == mvL0B[0] && mvL0A[1] == mvL0B[1] && mvL1A[0] == mvL1B[0] && mvL1A[1] == mvL1B[1])
ここで、predFlagL0A、predFlagL1Aは、各々、ブロックAにおいてL0、L1の参照ピクチャが用いられる場合に1、それ以外は0となる。mvL0[0]、mvL0[1]は、L0の水平動きベクトル、垂直動きベクトル、mvL1[0]、mvL1[1]は、L1の水平動きベクトル、垂直動きベクトルである。なお、ブロックBの場合には、上記AをBに置き換える。
また、レイヤ間マージ候補導出部1464Bは、上記一致判定を行いながら、上記優先順位の順にマージ候補を導出し、ユニークなマージ候補の数が2個になるまで、レイヤ間マージ候補を追加してもよい。
上記変形例に係る構成によれば、異なる動き情報を導出できる可能性が高まるため、符号化対象の動き情報がマージ候補に含まれる可能性が高まる。その結果、動き情報の符号量を削減することができる。
(一致判定)
マージ候補導出制御部1461は、各マージ候補導出部が導出するマージ候補の動き補償パラメータの一致判定(以下、マージ候補の一致判定と称する)を行ってもよい。また、マージ候補導出制御部1461は、一致判定の結果、ユニークと判定されたマージ候補のみをマージ候補格納部1462に格納してもよい。また、マージ候補導出制御部1461は、レイヤ間マージ候補導出部1464Bが導出するレイヤ間マージ候補と、他のマージ候補導出部が導出するマージ候補との一致判定を省略してもよい。
例えば、図16に示すフローチャートにおいて、レイヤ間マージ候補導出部1464Bよりも後に、時間マージ候補導出部1464Cおよび結合マージ候補導出部1464Dがマージ候補を導出する。ここで、時間マージ候補および結合マージ候補とマージ候補リストに含まれるマージ候補との一致判定を省略してもよい。
上記変形例に係る構成によれば、レイヤ間マージ候補導出ステップ(S102)と、時間マージ候補導出ステップ(S103)および結合マージ候補導出ステップ(S104)とを並列に実行することができる。
また、マージ候補導出制御部1461は、空間マージ候補と、レイヤ間マージ候補との一致判定を行う場合、空間マージ候補のマージ候補S0(マージ候補リスト内の最初のマージ候補)とのみ一致判定を行うことが好ましい。
これにより、並列性の低下を抑えつつ、同一のマージ候補が候補リストに含まれる可能性を低減できる。
(マージ候補導出ステップの省略)
図18を用いてマージ候補導出処理の流れの別の例について説明する。図18は、マージ候補導出部146の動作の別の例を示すフロー図である。
以下では、図18を参照しながら、レイヤ間マージ候補導出ステップを実行する場合、時間マージ候補導出ステップを省略する例について説明する。
図18に示すように、まず、空間マージ候補導出部1464Aにおいて、マージ候補S0〜マージ候補S2が導出される(S201)。
次に、マージ候補導出制御部1461が、レイヤ間マージ候補導出が有効であるか否かを判定する(S202)。マージ候補導出制御部1461は、例えば、次の(A)または(B)の場合に、レイヤ間マージ候補導出が有効であると判定することができる。
(A)SPS、PPSに含まれるフラグが、レイヤ間マージ予測が有効であることを示している場合;または、
(B)対象PUに対応する参照レイヤが存在し、対象PUおよび参照レイヤが、Pスライス、またはBスライスである場合。
ここで、レイヤ間マージ候補導出が有効である場合(S202においてYES)、レイヤ間マージ候補導出部1464Bにおいて、マージ候補C0が導出される(S204)。
一方、レイヤ間マージ候補導出が有効でない場合(S202においてNO)、時間マージ候補導出部1464Cにおいて、マージ候補Tが導出される(S203)。
すなわち、レイヤ間マージ候補ステップ(S204)および時間マージ候補導出ステップ(S203)は択一的に行われるため、両者のうちの一方が実行される場合、他方は省略される。
以後、結合マージ候補導出部1464Dにおいて、マージ候補Cが導出される(S205)。最後にゼロマージ候補導出部1464Eにおいて、マージ候補Zが導出される(S206)。
時間マージ候補とレイヤ間マージ候補とを併用する場合における動き情報の符号量削減幅は、何れか一方を用いる場合における動き情報の符号量削減幅と大きな差がない。
よって、レイヤ間マージ候補を用いる場合、時間マージ候補を用いなくても、それほど符号量は増大しない。さらに言えば、時間マージ候補の導出を省略すれば、時間マージ候補の導出に関する処理負荷の低減や、メモリ資源の節約を図ることができる。
上記構成によれば、レイヤ間マージ候補を用いる場合、時間マージ候補の導出を省略する。
よって、レイヤ間マージ候補を用いる場合において時間マージ候補を用いない。これにより、動き情報の符号量が大きく増加することを抑えつつ、時間マージ候補導出に必要な処理量、および、参照画像の動きベクトルを記録するメモリ量を削減することができる。
また、逆のことも言える。例えば、時間マージ候補を用いる場合、レイヤ間マージ候補を用いなくても、それほど符号量は増大しない。
上記構成によれば、時間マージ候補を用いる場合、レイヤ間マージ候補の導出を省略する。よって、動き情報の符号量をそれほど大きく増加させることがない一方で、レイヤ間マージ候補に必要な処理量を削減することができる。
以上のように、レイヤ間マージ候補および時間マージ候補のいずれか一方を択一的に導出することで、レイヤ間マージ候補および時間マージ候補の両マージ候補を併用するケースを回避することができる。すなわち、両マージ候補を処理しなければならないケースを回避することができる。これにより、処理量の最悪値(最も処理量が多くなる場合の処理量)の低減を図ることができる。
(レイヤ間イントラ候補導出部)
図19を用いて、マージ候補導出部146の変形例について説明する。個別マージ候補導出部1464は、さらに、レイヤ間イントラ候補導出部1464Fを有していてもよい。
本変形例では、マージ候補リストの概念を拡張する。具体的には、レイヤ間イントラ候補導出部1464Fが、マージ候補リストにおいてレイヤ間イントラ予測(テクスチャ予測)をシグナルする。
すなわち、レイヤ間イントラ候補導出部1464Fは、マージ候補リストに、レイヤ間イントラ予測をシグナルする候補であるレイヤ間イントラ候補を追加する。マージ候補リストからレイヤ間イントラ候補が選択された場合、テクスチャ予測部152のレイヤ間イントラ予測部152Cが、参照レイヤの復号画素をアップサンプルした画像に基づいて予測画像を生成する。
また、本変形例では、マージ候補導出制御部1461は、次の優先順で各マージ候補をマージ候補リストに追加してもよい。
1)空間マージ候補、2)時間マージ候補、3)レイヤ間マージ候補、4)結合マージ候補、5)ゼロマージ候補、6)レイヤ間イントラ候補
また、マージ候補導出部146におけるマージ候補の導出は、例えば、以下に示す手法により行うことができる。
すなわち、一つの手法としては、1)〜6)の優先順に、マージ候補リストのマージ候補導出数の最大値になるまでマージ候補を追加する。また、別の手法としては、1)〜5)の優先順でマージ候補リストのマージ候補導出数の最大値−1個のマージ候補を追加し、その後ろに6)レイヤ間マージ候補をマージ候補として追加する。
上記構成によれば、レイヤ間イントラ予測をPU単位で選択することができる。これにより、CUごとに選択フラグ(base_mode_flag)を設ける場合に比べてサイド情報を削減することができる。
また、マージ候補導出制御部1461は、次の優先順で各マージ候補をマージ候補リストに追加してもよい。
1)空間マージ候補、2)時間マージ候補、3)レイヤ間候補、4)結合マージ候補、5)ゼロマージ候補
ここで、3)レイヤ間候補は、レイヤ間予測に関するマージ候補であり、具体的には、レイヤ間マージ候補またはレイヤ間イントラ候補である。対象PUに対応する参照レイヤ上の領域が属するCU(以下、参照CUと称する)の予測タイプに応じて、レイヤ間候補として追加される候補が、レイヤ間マージ候補およびレイヤ間イントラ候補の間で切り替えられる。なお、この切り替えは、マージ候補導出制御部1461が制御すればよい。
参照CUがインターCUの場合、レイヤ間マージ候補導出部1464Bがレイヤ間マージ候補をレイヤ間候補として導出する。レイヤ間マージ候補が選択された場合、テクスチャ予測部152のインター予測部152Aが動き補償予測により予測画像を生成する。
参照CUがイントラCUの場合、レイヤ間イントラ候補導出部1464Fがレイヤ間イントラ候補をレイヤ間候補として導出する。レイヤ間イントラ候補が選択された場合、テクスチャ予測部152のレイヤ間イントラ予測部152Cが、参照レイヤの復号画素をアップサンプルした画像に基づいて予測画像を生成する。
参照レイヤがインターCUである場合、動き補償処理における処理量削減を図るため、当該インターCUの復号画像はレイヤ間予測における動き情報予測に用いられない。また、参照レイヤがイントラCUの場合、当該イントラCUでは動き補償の情報が存在しない。
上記構成によれば、参照CUがインターCUかイントラCUかに応じて、当該参照CUにおいて利用可能な情報を用いて候補を生成する。
これによりマージ候補リストにおいて、レイヤ間マージ候補とレイヤ間イントラ候補とを別々の候補とする場合に比べて、マージ候補の数を削減することができる。
また、マージ候補を追加する際に、利用可能でない情報を参照してしまうというオーバーヘッドを抑制することができる。
<<PU分割タイプ導出部の詳細>>
次に、図27を用いて、PU分割タイプ導出部148の詳細構成について説明する。図27は、PU分割タイプ導出部148の構成について例示した機能ブロック図である。
図27に示すように、PU分割タイプ導出部148は、参照CU設定部1481、およびPU分割推定部1482を備える構成である。
参照CU設定部1481は、復号の対象となる対象CUの復号化の際に、当該対象CUに対応する参照レイヤ上の領域を設定し、設定した参照領域を基準として、PU分割推定時に参照すべき参照レイヤ上のCUを設定する。以後、参照CU設定部1481が設定する上記領域のことを参照領域と称し、上記参照レイヤ上のCUのことを参照CUと称する。
PU分割推定部1482は、参照CU設定部1481によって設定された参照CUを参照して、対象レイヤの対象CUにおけるPUへの分割タイプ(推定PU分割タイプ)を推定するものである。
より具体的には、PU分割推定部1482は、右下画素位置判定部1482A、重複領域判定部1482B、および分割タイプ決定部1482Cを備えている。
右下画素位置判定部1482Aは、参照CUにおける右下画素の位置の参照領域内での位置を判定する。
重複領域判定部1482Bは、参照CUと参照領域とが重なる領域(以下、重複領域と称する)の重複の度合いを判定する。重複領域の重複の度合いには、例えば、重複領域の面積の大小や、重複領域の形状、幅および高さの大小関係、および参照CUと参照領域との包含関係が含まれる。
分割タイプ決定部1482Cは、右下画素位置判定部1482Aまたは重複領域判定部1482Bの判定結果に応じて、対象CUにおけるPU分割タイプを決定する。
以下において、図28〜図40を用いて、参照CU設定部1481およびPU分割推定部1482の動作の詳細について順に説明する。
(参照CU設定部の動作について)
図28を用いて、参照CU設定部1481が、対象レイヤ上の対象フレームtgtFR1に含まれる対象CUtgtCUに対して参照CUを設定する例について説明する。
図28に示すように、まず、参照CU設定部1481は、参照レイヤ上の参照フレームrefFR1に含まれるCUであって、対象CUtgtCUに対応する参照レイヤ上の参照領域refREGを設定する。
すなわち、参照フレームrefFR1は、例示的には、対象フレームtgtFR1と同時刻における参照レイヤ上のフレームである。
また、ここで対象CUtgtCUが参照領域refREGと“対応する”とは、対象レイヤ上の対象フレームtgtFR1における対象CUtgtCUの空間的位置が、参照レイヤ上の参照フレームrefFR1における参照領域refREGの空間的位置と対応しているということである。
次に、参照CU設定部1481は、参照領域refREGを基準として、参照CUを設定する。
図28に示す例では、参照レイヤ上のコーディングツリーブロックrefCTB1に参照領域refREGが含まれている。また、コーディングツリーブロックrefCTB1には、階層深度1のCUであるrefCU0、refCU1、refCU2、およびrefCU3が含まれる。また、refCU0には、階層深度2の分割CUであるrefCU00、refCU01、refCU02、およびrefCU03が含まれる。
ここで、参照領域refREGは、参照レイヤ上の複数のCUと重複部分を有する可能性がある。すなわち、参照領域refREGは、参照レイヤ上の複数のCUと重なり合う可能性がある。
図28に示す例では、参照領域refREGは、refCU00、refCU01、refCU02、およびrefCU03、refCU1、refCU2、およびrefCU3と重複部分を有する。
以下では、主として、参照CU設定部1481が、対象CUの左上画素tgtCUPXに対応する画素refCUPXを含む参照レイヤ上のCUを参照CUとして設定する例について説明する。すなわち、図28に示す例では、refCU00が参照CUとなる。
図29を用いて、上述のような参照CUの設定について、より具体的に説明する。図29に示すように、対象レイヤ上の対象フレームtgtFR1の高さおよび幅を、それぞれhPicおよびwPicとする。また、対象CUtgtCUの高さおよび幅を、それぞれhCuおよびwCuとし、左上画素の位置の対象フレームtgtFR1における座標表現を、(xCu,yCu)とする。また、参照レイヤ上の参照フレームrefFR1の高さおよび幅を、それぞれhRefPicおよびwRefPicとする。
左上画素に対応する参照CUを設定する場合、参照CU設定部1481は、以下のとおり参照CUを設定する。まず、参照CU設定部1481は、以下の計算により、参照領域refREGの座標(xRefReg, yRefReg)を導出する。なお、以下のscaleX・scaleYは、対象フレームの幅・高さの参照フレームの幅・高さに対する比である。
scaleX = wPic / wRefPic
scaleY = hPic / hRefPic
xRefReg = xCu / scaleX
yRefReg = yCu / scaleY
続いて、参照CU設定部1481は、以上のようにして得られた参照領域refREGの座標(xRefReg, yRefReg)を含むCUを参照CUとして設定する。
なお、上記に限られず、参照CU設定部1481は、以下のようにして、中心画素に対応する参照CUを設定してもよい。まず、参照CU設定部1481は、以下の計算により、参照領域refREGの幅および高さ(wRefReg, hRefReg)を導出する。なお、以下に示すscaleX,scaleY,xRefReg およびyRefRegの導出方法については、既に説明した通りである。
wRefReg = wCu / scaleX
hRefReg = hCu / scaleY
このとき、参照領域の中心画素の座標(xRefC, yRefC)は、
xRefC = xRefReg + (hRefReg >> 1)
yRefC = yRefReg + (wRefReg >> 1)
により得られる。
続いて、参照CU設定部1481は、以上のようにして得られた参照領域の中心画素の座標(xRefC, yRefC)を含むCUを参照CUとして設定する。
上記の例において、scaleXおよびscaleYの値は、参照レイヤ上の参照フレーム全体と対象レイヤ上の対象フレーム全体が空間的に対応することを仮定して算出されているが、それに限らない。例えば、対象レイヤ上の部分領域が参照レイヤ上の参照フレーム全体と空間的に対応するような場合も考えられる。そのような場合、scaleXやscaleYの値は、対象レイヤ上の部分領域の位置(対象フレーム左上からのオフセット)や当該部分領域のサイズに基づいて算出される。
(PU分割推定部の動作について)
次に、図30〜図40を用いて、PU分割推定部1482が、対象CUtgtCUのPU分割タイプを推定する例について説明する。
[単一の参照CU(参照領域の左上画素を含むCU)を用いる場合]
まず、右下画素位置判定部1482Aが参照CUrefCUの右下画素refCUPXの位置が参照領域refREGにおける位置を判定し、当該判定結果に基づいて、分割タイプ決定部1482Cが対象CUにおけるPU分割タイプを決定する例について説明する。なお、上述のとおり参照領域refREGの左上画素が参照CUrefCUには含まれる。
[A]右下画素が参照領域の上半分
図30(a)に示すように、参照CUrefCUの右下画素refCUPXの位置が参照領域refREG内の上半分の位置(直線M1より上の領域)にあると判定される場合、分割タイプ決定部1482Cは、対象CUtgtCUにおけるPU分割タイプを、2N×Nと推定する(図30(b)参照)。
参照CUの右下画素が参照領域の上半分の位置にある場合、参照領域の上半分に、少なくとも水平方向のCU境界が存在する。一般にCU境界が存在する場合、境界を挟んだ2領域が異なる動き情報を有する可能性が、CU境界が存在しない場合に較べて高い。従って、参照領域の上半分には、物体の境界が存在する可能性が高い。そのため、物体の境界が存在する可能性が高い上半分の領域と、物体の境界の有無が不明である下半分の領域を異なるPUに分割することで、物体の境界が存在しないPUが設定される可能性を高めることができる。
[B]右下画素が参照領域の左下
図31(a)に示すように、参照CUrefCUの右下画素refCUPXの位置が参照領域refREG内の左下の位置(直線M1より下であって直線M2より左の領域)にあると判定される場合、分割タイプ決定部1482Cは、対象CUtgtCUにおけるPU分割タイプを、N×2Nと推定する(図31(b)参照)。
参照CUの右下画素が参照領域の左下の位置にある場合、参照領域の左半分に、少なくとも垂直方向のCU境界が存在する。従って、参照領域の左半分と右半分を分割するPU分割タイプを用いることで、[A]の場合と同様に、物体の境界が存在しないPUが設定される可能性を高めることができる。
[C]右下画素が参照領域の右下
図32(a)に示すように、参照CUrefCUの右下画素refCUPXの位置が参照領域refREG内の右下の位置(直線M1より下であって直線M2より右の領域)にあると判定される場合、分割タイプ決定部1482Cは、対象CUtgtCUにおけるPU分割タイプを、2N×2Nと推定する(図32(b)参照)。
参照CUの右下画素が参照領域の右下の位置にある場合、参照領域と参照CUの重複領域の面積が大きい。そのため、参照領域の大部分が単一のCU(参照CU)に含まれている可能性が高く、一様な動き情報を有している可能性が高い。そのため、参照領域内で一様な動きを有する場合に最も適したPU分割である2N×2Nを用いることで、符号化効率を向上できる。
[D]参照CUが参照領域を含む
図33(a)に示すように、参照CUrefCUの右下画素refCUPXの位置が参照領域refREGの外側右下の位置にあると判定される場合、すなわち、参照CUrefCUが、参照領域refREGを含むような場合、分割タイプ決定部1482Cは、対象CUtgtCUにおけるPU分割タイプを、2N×2Nと推定する(図32(b)参照)。
参照CUが参照領域を含む場合、参照領域内で一様な動き情報を有している可能性が高い。そのため、参照領域内で一様な動きを有する場合に最も適したPU分割である2N×2Nを用いることで、符号化効率を向上できる。
以上のように、参照領域内のCU境界の位置を厳密に導出することなく、右下画素の位置判定処理によりPU分割タイプを導出することができる。これにより、比較的少ない処理量でPU分割タイプを導出することができる。
図34および図35を用いて、右下画素位置判定部1482Aが、右下画素refCUPXの位置を判定する手法についてより具体的に説明する。
図34に示すように、参照領域refREGの左上画素の位置を(xRefReg,yRefReg)とし、参照領域refREGのサイズを、wRefReg×hRefRegとする。また、参照CUrefCUの右下画素refCUPXの位置を(xRefCUBR,yRefCUBR)とする。
上記判定条件[A]〜[D]のそれぞれについて説明すると次のとおりである。
[A]右下画素が参照領域の上半分
図35は、参照CUrefCUの右下画素refCUPXの位置と、判定結果との関係を示す図である。
まず、右下画素位置判定部1482Aは、式(A1)の真偽を判定する。
yRefCuBR < yRefReg + (hRefReg >> 1) ・・・(A1)
式(A1)では、参照CUrefCUの右下画素refCUPXの位置が、参照領域refREGの上半分にあるか否かを判定している。すなわち、式(A1)が真である場合、参照CUrefCUの右下画素refCUPXの位置は、図35に示す区画Aに存在する。なお、図35に示す各区画に付したラベルA〜Dは、判定条件[A]〜[D]に対応している。例えば、判定条件“[A]右下画素が参照領域の上半分”を満たす位置が、区画Aに対応している。
[B]右下画素が参照領域の左下
式(A1)が偽である場合、右下画素位置判定部1482Aは、さらに、式(A2)の真偽を判定する。
xRefCuBR < xRefReg + (wRefReg >> 1) ・・・(A2)
式(A2)では、参照CUrefCUの右下画素refCUPXの位置が、参照領域refREGの左下にあるか否かを判定している。すなわち、式(A2)が真である場合、参照CUrefCUの右下画素refCUPXの位置は、図35に示す区画Bに存在する。
[C]右下画素が参照領域の右下
式(A2)が偽である場合、右下画素位置判定部1482Aは、さらに、式(A3)の真偽を判定する。
xRefCuBR < xRefReg + wRefReg ||
xRefCuBR < yRefReg + hRefReg ・・・(A3)
式(A3)では、参照CUrefCUの右下画素refCUPXの位置が、参照領域refREGの右下にあるか否かを判定している。すなわち、式(A3)が真である場合、参照CUrefCUの右下画素refCUPXの位置は、図35に示す区画Cに存在する。
[D]参照CUが参照領域を含む
式(A3)が偽である場合、右下画素位置判定部1482Aは、さらに、式(A4)の真偽を判定する。
(xRefCuBR >= xRefReg + wRefReg &&
yRefCuBR >= yRefReg + hRefReg) ・・・(A4)
式(A4)では、参照CUrefCUが、参照領域refREGを含むか否かを判定している。すなわち、式(A4)が真である場合、参照CUrefCUの右下画素refCUPXの位置は、図35に示す区画Dに存在する。
[参照CUと参照領域が重なる領域(重複領域)の重複の度合いによる判定]
次に、重複領域判定部1482Bが参照CUrefCUと参照領域refREGとの重複領域の重複の度合いを判定し、当該判定結果に基づいて、分割タイプ決定部1482Cが対象CUにおけるPU分割タイプを決定する例について説明する。
なお、図36においても、図34と同様、参照領域refREGの左上画素の位置を(xRefReg,yRefReg)とする。また、参照CUrefCUの右下画素refCUPXの位置を(xRefCUBR,yRefCUBR)とする。また、参照領域refREGの右下画素の位置を(xRefRegBR、yRefRegBR)とし、参照CUrefCUの左上画素の位置を(xRefCU,yRefCU)とする。
[A´]参照CUrefCUが参照領域refREGを含む場合
図36(a)に示すように、参照CUrefCUが参照領域refREGを含むと判定される場合(参照領域refREGが重複領域と一致する場合)、分割タイプ決定部1482Cは、対象CUtgtCUにおけるPU分割タイプを、2N×2Nと推定する(図36(b)参照)。なお、上記判定は、例えば、参照CUrefCUの左上画素の位置と、参照領域refREGの左上画素の位置とを比較し、さらに、参照CUrefCUの幅および高さと、参照領域refREGの幅および高さとを比較することにより行うことができる。
また、重複領域の幅(wOver)、重複領域の幅(hOver)を算出して、それらの値に基づいて判定を行ってもよい。wOver、hOverはそれぞれ次の式で算出できる。
wOver = Min(xRefRegBR, xRefCuBR) - Max(xRefReg, xRefCu)
hOver = Min(yRefRegBR, yRefCuBR) - Max(yRefReg, yRefCu)
ここで、参照CUrefCUが参照領域refREGを含む場合、重複領域と参照領域refREGが一致し、次の関係式が成り立つ。
wOver == wRefReg && hOver == hRefReg
なお、参照CUrefCUが参照領域refREGの位置関係に特定の制約がある場合、より簡略化した計算によりwOver、hOverの値を算出できる。例えば、参照CUrefCUが参照領域refREGの左上画素を含む場合、参照CUrefCUの左上画素は、参照領域refREGの左上画素よりも常に左上に位置する。従って、そのような場合、wOver、hOverの値はそれぞれ以下の式により計算できる。
wOver = Min(xRefRegBR, xRefCuBR) - xRefReg
hOver = Min(yRefRegBR, yRefCuBR) - yRefReg
[B´]重複領域の幅がその高さ以上の場合
[A´]でない場合であって、図37(a)または(b)に示すように、参照CUrefCUと参照領域refREGとの重複領域の幅が、当該重複領域の高さ以上と判定される場合、分割タイプ決定部1482Cは、対象CUtgtCUにおけるPU分割タイプを、2N×Nと推定する(図37(c)参照)。なお、図37(a)および(b)では、wOverを“w”と、hOverを“h”とそれぞれ略記している。
具体的には、重複領域判定部1482Bは、式(B1)の真偽を判定する。
wOver >=hOver ・・・(B1)
式(B1)が真であれば、重複領域の幅がその高さ以上と判定される。
[C´]重複領域の幅がその高さ未満の場合、
それ以外の場合([A´]でも「B´」でもない場合)であって、図38(a)または(b)に示すように、参照CUrefCUと参照領域refREGとの重複領域の幅が、当該重複領域の高さ未満と判定される場合、分割タイプ決定部1482Cは、対象CUtgtCUにおけるPU分割タイプを、N×2Nと推定する(図38(c)参照)。
重複領域判定部1482Bは、上記式(B1)が偽である場合、重複領域の幅がその高さ未満と判定してもよい。
なお、以上の説明では、参照領域refREGの左上画素の位置(xRefReg,yRefReg)と、参照CUrefCUの右下画素refCUPXの位置(xRefCUBR,yRefCUBR)とを判定における比較の対象とした。しかしながらこれに限られず、以上の判定は、参照領域refREGの左上画素以外の画素位置に対応する参照CUを用いる場合にも適用可能である。
(作用・効果)
以上に示したように、階層動画像復号装置1は、レイヤごとに異なる品質の画像に関する画像情報が階層的に符号化された階層符号化データを復号して、復号の対象となる対象レイヤにおける画像を復元する階層動画像復号装置1であって、上記対象レイヤにおける対象CUについて、参照レイヤにおける、上記対象CUに対応する参照領域と重複部分を有するCUに基づいて、上記参照領域との重複の度合いを判定するべき参照CUを設定する参照CU設定部1481と、上記参照領域と上記参照CUとの重複の度合いに応じて、上記対象CUについて、PU分割タイプを決定するPU分割推定部1482と、を備える構成である。
よって、PU分割タイプを導出する処理の処理量を低減することができるという効果を奏する。
(PU分割タイプ導出部の変形例)
以下において、PU分割タイプ導出部148の好ましい変形例について説明する。
(参照CUのPU分割タイプを利用した判定)
右下画素位置判定部1482Aによる判定に応じて、分割タイプ決定部1482Cは、参照CUのPU分割タイプを利用した判定を行う構成としてもよい。
[厳密な計算を省略する場合]
具体的には、上記“単一の参照CUを用いる場合”で説明した[A]〜[C]に該当すると判定される場合は、前述のとおりとする。すなわち、参照CUrefCUの右下画素refCUPXが参照領域refREG内に含まれると判定される場合、分割タイプ決定部1482Cは、参照CUのPU分割タイプは用いずに対象CUのPU分割タイプを決定する。
一方、上記[D]に該当すると判定される場合は、分割タイプ決定部1482Cは、参照CUのPU分割タイプを利用して、以下のとおり対象CUのPU分割タイプを決定する。すなわち、
[D1]参照CUのPU分割タイプが2N×2Nの場合:
分割タイプ決定部1482Cは、対象CUのPU分割タイプを、2N×2Nと決定する。
[D2]参照CUのPU分割タイプが2N×N or 2N×nU or 2N×nDの場合:
分割タイプ決定部1482Cは、対象CUのPU分割タイプを、2N×Nと決定する。
[D3]参照CUのPU分割タイプがN×2N or nL×2N or nR×2Nの場合:
分割タイプ決定部1482Cは、対象CUのPU分割タイプを、N×2Nと決定する。
以上の構成によれば、参照CU内にパーティション境界(PU境界)がない場合、パーティション境界のないPU分割タイプである2N×2Nを対象CUにおけるPU分割タイプとして決定する([D1]の場合)。
また、参照CUにおいてPU境界が存在する可能性がある場合([D2]または[D3]の場合)、参照CUにおけるPU境界の位置の厳密な計算を省略し、垂直または水平の何れに境界がありえるかのみを判定して、対象CUにおけるPU分割タイプを決定する。
なお、“参照CUと参照領域が重なる領域重複の度合いによる判定”の場合は、上記[A´]の場合に上記[D1]〜[D3]の判定を行ってもよい。
[厳密な計算を実行する場合]
厳密な計算を省略する場合の構成は、以上に説明したとおりであるが、分割タイプ決定部1482Cは、参照CUにおけるPU境界の位置を厳密に計算して、対象CUにおけるPU分割タイプを決定する構成であっても構わない。以下において、このような分割タイプ決定部1482Cの構成例を示す。
上記“単一の参照CUを用いる場合”で説明した[A]〜[C]に該当すると判定される場合は、前述のとおりとする。
一方、上記[D]に該当すると判定される場合は、分割タイプ決定部1482Cは、参照CUのPU分割タイプを利用して、以下のとおり対象CUのPU分割タイプを決定する。すなわち、
[D1]参照CUのPU分割タイプが2N×2Nの場合:
分割タイプ決定部1482Cは、対象CUのPU分割タイプを、2N×2Nと決定する。
[D2]参照CUのPU分割タイプが2N×N or 2N×nU or 2N×nDの場合:
図39(a)、(b)および(c)に示すように、参照CUのPU分割タイプが2N×N or 2N×nU or 2N×nDの場合、分割タイプ決定部1482Cは、以下の計算により、参照CUにおけるPU境界の位置(すなわち、横PU境界の位置)を厳密に計算する。
ここで、図40に示すように、参照CUrefCUの左上画素の位置を(xRefCu, yRefCu)とし、参照CUrefCUの高さおよび幅を、それぞれhRefCu, wRefCuとする。また、参照CUrefCuにおけるPU境界の基準となる位置を、参照CUの左辺と、PU境界とが交わる位置(xRefCu,yPub)とする(yPubは、縦PU境界の位置)。また、参照領域refREGの左上画素の位置を(xRefReg, yRefReg)とし、参照領域の高さおよび幅を、それぞれ、hRefReg, wRefRegとする。
[1]分割タイプ決定部1482Cは、以下のとおり横PU境界のy方向の位置yPubを導出する。
yPub = yRefCu + (hRefCu * bPos)
bPos = 0.25 (2NxnUの場合)
0.5 (2NxNの場合)
0.75 (2NxnDの場合)
[2]分割タイプ決定部1482Cは、yPubの参照領域refREG内での位置にお応じて、以下のとおりPU分割タイプを決定する。以下では、d = yPub - yRefRegとする。すなわち、ここでは、分割タイプ決定部1482Cは、参照CUrefCUの横PU境界の参照領域refREGにおける位置に応じて、PU分割タイプを決定している。
[2−1] d ≦ 0 または d ≧ hRefRegの場合
これは、参照領域refREGが、参照CUrefCUのいずれかのパーティションに含まれるような場合である。分割タイプ決定部1482Cは、PU分割タイプを2N×2Nと決定する。
[2−2] 0 < d < 0.25 * hRefRegの場合
これは、参照CUrefCUのPU境界が、参照領域refREGの上1/4以上の位置を横切る場合である。分割タイプ決定部1482Cは、PU分割タイプを2N×nUと決定する。
[2−3]0.25 * hRefReg ≦ d < 0.75 * hRefRegの場合
これは、参照CUrefCUのPU境界が、参照領域refREGの中央付近(上1/4〜下1/4の位置)を横切る場合である。分割タイプ決定部1482Cは、PU分割タイプを2N×Nと決定する。
[2−4]0.75 * hRefReg ≦ d < hRefRegの場合
これは、参照CUrefCUのPU境界が、参照領域refREGの下1/4以上の位置を横切る場合である。分割タイプ決定部1482Cは、PU分割タイプを2N×nDと決定する。
[D3]参照CUのPU分割タイプがN×2N or nL×2N or nR×2Nの場合:
分割タイプ決定部1482Cは、参照CUにおけるPU境界の位置(すなわち、縦PU境界の位置)を厳密に計算する。その計算方法は、図40を用いて示した計算手法を、縦PU境界について応用したものを用いることが可能であるので、その詳細な説明を省略する。
(解像度比が小さい場合の判定)
参照レイヤの解像度に対する対象レイヤの解像度の比が所定値以下である場合(例えば、1.5以下の場合)、分割タイプ決定部1482Cは、参照CUのサイズと、対象CUのサイズとの大小に応じてPU分割タイプを決定してもよい。
例えば、参照CUのサイズが、対象CUのサイズよりも大きい場合、分割タイプ決定部1482Cは、PU分割タイプを2N×2Nと決定してもよい。
また、例えば、参照CUのサイズが、対象CUのサイズ以下の場合、分割タイプ決定部1482Cは、参照CUのPU分割タイプを、PU分割タイプとしてもよい。
以上の構成によれば、判定処理を簡略化することができる。
(ブロックサイズによる制限)
小さいサイズのPUがPU分割により発生することを抑制することが好ましい。よって、分割タイプ決定部1482Cは、所定のサイズのCU(例えば、8×8CU)では、常に2N×2NをPU分割タイプとする構成であってもよい。すなわち、分割タイプ決定部1482Cは、所定のサイズのCUでは、分割を禁止してもよい。
上記構成によれば、処理のボトルネックとなる小サイズPUのインターCUの割合を減らすことができ、これにより平均的な処理量を低減することができる。
なお、分割タイプ決定部1482Cは、所定のサイズのCUにおいて、対称的なパーティションのみをPU分割タイプとして導出してもよい。また、分割タイプ決定部1482Cは、N×NをPU分割パターンとして導出することを制限してもよい。
(非対称パーティションの制限)
参照レイヤからPU分割タイプを決定する場合、分割タイプ決定部1482Cは、非対称パーティションをPU分割タイプとして導出しないような構成であってもよい。例えば、参照CUのPU分割タイプから対象CUのPU分割タイプを推定する場合、分割タイプ決定部1482Cは、境界の方向性に応じた対称パーティションをPU分割タイプとして導出する構成であってもよい。
言い換えれば、上述の参照CUのPU分割タイプを利用した判定は、[D]の場合に限られず、[A]〜[C]にも適用することができる。また、上述の参照CUのPU分割タイプを利用した判定を[A]〜[C]にも適用する場合、分割タイプ決定部1482Cは、対称パーティションをPU分割タイプとして導出してもよい。
上記構成によれば、垂直または水平境界の厳密な位置を判定しなくても済むため、処理を簡略化することができる。
(参照CUの選択・設定)
以上の説明では、参照CU設定部1481は、参照領域refREGと重複部分を有する複数のCUのうち、対象CUの左上画素を含むCUを参照CUとして設定する構成について説明した。
しかしながら、本発明は上記の構成には限られない。参照CU設定部1481は、より一般的には、参照領域refREGと重複部分を有する複数のCUのうちから所定の基準で単一の参照CUを設定する構成であってもよい。
例えば、参照CU設定部1481は、上記複数のCUのうち、対象CUに含まれる所定の位置にある画素に対応する画素を含む参照レイヤ上のCUを参照CUとして設定してもよい。具体例を挙げると、参照CU設定部1481は、対象CUに含まれる中央画素に対応する画素を含む参照レイヤ上のCUを参照CUとして設定してもよい。
また別の具体例では、参照CU設定部1481は、参照領域refREGと重複部分を有する複数のCUのうちから、最大の面積を有するCUを参照CUとして用いてもよい。
上記構成によれば、対象CUに含まれる中央画素に対応する画素を含む参照レイヤ上のCUや、上記複数のCUのうち最大の面積を有するCUは、対象CUと同じPU分割タイプである可能性が高いため、推定精度を向上させることができる。
また、参照CU設定部1481は、参照領域refREGと重複部分を有する複数のCUから仮想的な単一のCUを生成してもよい。具体的には、参照CU設定部1481は、複数のCUにおける代表的な性質を参照領域周辺のCUから抽出し、抽出した性質に基づいて仮想的な単一のCUを生成して、参照符号化単位としてもよい。例えば、参照CU設定部1481は、複数のCUのサイズおよび形状に基づいて、あるいは、これらの情報を組み合わせて、当該仮想的な単一のCUを生成することができる。なお、上記仮想的な単一の符号化単位は、上記参照領域と重複するよう領域になるように生成する。
また、参照CU設定部1481は、参照領域refREGと重複部分を有する複数のCUを参照CUリストとして利用してもよい。
(PU分割推定部の補足)
上記図27のPU分割推定部1482の説明において、PU分割推定部1482は右下画素位置判定部1482Aと重複領域判定部1482Bの双方を備える構成として説明したが、常にいずれか一方の判定部を用いるように構成した上で、PU分割推定部1482を右下画素位置判定部1482Aと重複領域判定部1482Bのいずれか一方を含む構成としてもよい。
(その他の変形例)
以下において、その他の変形例について説明する。
(シンタックステーブルの構成例)
ベーススキップCUを符号化するためのシンタックスの構成例について以下説明する。その構成の概要は、次のとおりである。まず、参照レイヤの情報を用いるか否かのベースモードフラグ(base_mode_flag)を符号化する。また、ベースモードフラグが“true”の場合、PartModeの導出に上述したPU分割タイプ導出部148によるPU分割タイプの推定を用いる。
なお、シンタックス構成の仕方によっては、PU分割タイプ以外の推定(例えば、pred_mode)を実行する場合もある。
[coding_unitでbase_mode_flagを符号化する構成]
図41および図42を用いて、coding_unitでbase_mode_flagを符号化する構成例について説明する。
図42にcoding_unitでbase_mode_flagを符号化する場合のシンタックスの構成例を示している。
図42に示すように、coding_unitにおいて、skip_flagの直後にbase_mode_flagを符号化してもよい(SYN11)。なお、以下では、base_mode_flagの符号化に関連する技術的事項として、予測モードpred_mode、およびPU分割タイプpart_modeの省略および導出を、あわせて検討する。
図42を参照し、さらに具体的に説明すると、符号化データの構成において、ベースモードフラグ(base_mode_flag)は、スキップフラグ(skip_flag)の後、かつ予測モードフラグ(pred_mode_flag)の前に配置される。
また、ベースモードフラグ(base_mode_flag)が“true”の場合には、予測モードフラグ(pred_mode_flag)および分割タイプ(part_mode)を配置しない(それぞれ、SYN12およびSYN13に対応)。
図42に示すシンタックスの構成例によれば、ベーススキップCUにおける復号(base_mode_flagに関する復号)は、次のように行われる。
(1)階層動画像復号装置1は、base_mode_flagを復号する。
(2)base_mode_flagが“true”の場合、階層動画像復号装置1は、PredModeとPartModeとを推定(infer)により導出する。
(3)これに対して、base_mode_flagが“false”の場合、階層動画像復号装置1は、pred_mode_flagとpart_modeのシンタックス要素値を符号化データより復号して、復号したシンタックス値に基づいてPredModeとPartModeとを導出する。
以上の復号処理を表形式にて表すと図41のとおりである。図41は、シンタックス要素値とCUタイプとの関係について示すテーブルである。同図において、“-”は、そのCUタイプでは復号しなくてもよいシンタックス要素であることを示している。
以上のシンタックス構成によれば、図41に示すように、ベーススキップCUの場合、pred_mode_flagとpart_modeとを復号しないため、符号化効率が向上する。
(予測モード(PredMode)の導出)
以下に、予測モード(PredMode)の導出方法について説明する。
[導出方法1]
べースレイヤがIスライスである場合、階層動画像復号装置1は、対象CUにおいて常にイントラ予測(MODE_INTRA)を用いてもよい。
一方、べースレイヤがIスライスでない場合、階層動画像復号装置1は、参照CUのPredModeを用いてもよい。なお、上記の参照CUには、例えば、対象CUの左上画素を含む参照レイヤ上のCUを用いることができる。
[導出方法2]
べースレイヤがIスライスである場合、階層動画像復号装置1は、対象CUにおいて常にイントラ予測(MODE_INTRA)を用いてもよい。
一方、ベースレイヤがIスライスでない場合、階層動画像復号装置1は、インター予測(MODE_INTER)を用いる。
なお、上記導出方法1および2において、「ベースレイヤがIスライスでない場合」という条件は、「ベースレイヤがIDR(Instantaneous Decoding Refresh)である場合」という条件でもよい。IDRとは、参照ピクチャの初期化のことであり、IDRピクチャは、参照がリセットされたピクチャである。つまり、IDRピクチャでは、そのピクチャより前(スライス)の情報を参照せずに、そのピクチャ以後のピクチャが正しく復号できる。
(merge_flagの導出)
図43を用いて、prediction_unitでbase_mode_flagの判定に応じてmerge_flagを符号化する構成例について説明する。
図43にprediction_unitでbase_mode_flagの判定を行ってからmerge_flagを符号化する場合のシンタックスの構成例を示している。
図43に示すように、prediction_unitにおいて、mereg_flagの直前でbase_mode_flagを判定してもよい(SYN21)。また、base_mode_flagが“true”である場合は、merge_flagを配置しなくてもよい。
すなわち、base_mode_flagが“true”となるベーススキップCUに含まれる各PUでは、常にマージモードを用いる構成(merge_flag=true)であってもよい。
上記構成によれば、3つのフラグpred_mode, part_mode, merge_flagを省略することができる。これにより、これら3つのフラグの符号量を削減でき符号化効率が向上する。
(階層動画像復号装置におけるCU復号処理の流れ)
図44、図45、および図46を用いて階層動画像復号装置1における予測パラメータに関するCU復号処理の流れの一例について説明する。図44、図45、および図46は、それぞれ、ベーススキップCU、スキップCU、およびインターCUの予測パラメータに関する復号処理の流れの一例を示すフロー図である。
まず、図44を用いて、階層動画像復号装置1におけるベーススキップCU復号処理の流れの一例について説明する。
対象CUがベーススキップCUの場合、参照CU設定部1481が対象CUに対応する参照CUを設定する(S301)。
続いて、PU分割推定部1482が、対象CUにおけるPU分割タイプをレイヤ間予測により推定する(S302)。具体的には、PU分割タイプの推定は、右下画素位置判定部1482Aにおける判定結果、または、重複領域判定部1482Bにおける判定結果に基づいて、分割タイプ決定部1482Cによって実行される。
続いて、推定されたPU分割タイプに従って、PUが分割され対象PUが設定されると(S303)、対象PUについてマージ候補導出部146がマージ候補リストを導出する(S304)。なお、マージ候補導出部146は、例示的には、マージ候補リストの導出において、レイヤ間マージ候補を導出する。しかしながら、レイヤ間予測をどの程度行うかは任意に設定することができる。例えば、ベーススキップCUでは、PU分割タイプのみをレイヤ間予測の対象としてもよい。すなわち、S304において、レイヤ内マージ候補のみを導出する構成も採用可能である。また、ベーススキップCUにおいて、S301“参照CUの設定”・S302“PU分割の推定”処理の代わりに、後述のS401“PU分割を2N×2Nに設定”処理を実行してもよい。また、ベーススキップCU以外のCUにおいて、PU分割の推定を行っても構わない。
続いて、マージ情報復元部147が、導出されたマージ候補リストからマージ候補を選択する(S305)。
ここで、対象PUが、対象CUにおける処理順序上の最終PUでなければ(S306においてNO)、S303〜S305の処理が繰り返し実行される。
その後、対象CUにおける処理順序上の最終PUまで処理が完了すれば(S306においてYES)、ベーススキップCU復号処理が終了する。
次に、図45を用いて、階層動画像復号装置1におけるスキップCU復号処理の流れの一例について説明する。
対象CUがスキップCUの場合、予測パラメータ復元部14において、PU分割タイプが2N×2N(すなわちPU分割なし)に設定されるとともに(S401)、対象PUが設定される(S402)。
続いて、マージ候補リスト導出部146が、対象PUについて、マージ候補リストを導出する(S403)。さらに、マージ情報復元部147が、導出されたマージ候補リストからマージ候補を選択し(S404)、その後、スキップCU復号処理が終了する。
次に、図46を用いて、階層動画像復号装置1におけるインターCU復号処理の流れの一例について説明する。
対象CUがインターCUの場合、PU分割タイプが符号化データから復号される(S501)。また、復号されたPU分割タイプに従って対象CUにおけるPUへのパーティションが設定され、対象PUが設定される(S502)。
続いて、対象PUがマージPUであるか否かが判定される(S503)。対象PUがマージPUである場合(S503においてYES)、マージ候補導出部146がマージ候補リストを導出し(S504)、マージ情報復元部147がマージ候補リストからマージ候補を選択する(S505)。
一方、対象PUがマージPUでない場合(S503においてNO)、PU情報が符号化パラメータから復号される(S507)。
S505またはS507の処理の後、対象PUが、対象CUにおける処理順序上の最終PUでなければ(S506においてNO)、S502〜S507の処理が繰り返し実行される。
その後、対象CUにおける処理順序上の最終PUまで処理が完了すれば(S506においてYES)、インターCU復号処理が終了する。
〔階層動画像符号化装置〕
以下では、本実施形態に係る階層動画像符号化装置2の構成について、図22〜図24を参照して説明する。
(階層動画像符号化装置の構成)
図22を用いて、階層動画像符号化装置2の概略的構成について説明すると次のとおりである。図22は、階層動画像符号化装置2の概略的構成について示した機能ブロック図である。階層動画像符号化装置2は、対象レイヤの入力画像PIN#Tを、参照レイヤ符号化データDATA#Rを参照しながら符号化して、対象レイヤの階層符号化データDATAを生成する。なお、参照レイヤ符号化データDATA#Rは、参照レイヤに対応する階層動画像符号化装置において符号化済みであるとする。
図22に示すように階層動画像符号化装置2は、予測パラメータ決定部21、予測情報生成部22、ベース復号部23、テクスチャ情報生成部24、可変長符号化部25、およびNAL多重化部26を備える。
予測パラメータ決定部21は、入力画像PIN#Tに基づいて、予測画像の予測に用いられる予測パラメータおよびその他の符号化の設定を決定する。
予測パラメータ決定部21は、予測パラメータをはじめとする符号化の設定を、以下のとおり行う。
まず、予測パラメータ決定部21は、入力画像PIN#Tを、スライス単位、ツリーブロック単位、CU単位に順次分割することにより、対象CUについてのCU画像を生成する。
また、予測パラメータ決定部21は、分割処理の結果に基づいて、符号化情報(ヘッダ情報とも称されることがある)を生成する。符号化情報は、(1)対象スライスに属するツリーブロックのサイズ、形状および対象スライス内での位置についての情報であるツリーブロック情報と、(2)各ツリーブロックに属するCUのサイズ、形状および対象ツリーブロック内での位置についての情報であるCU情報とを含んでいる。
さらに、予測パラメータ決定部21は、CU画像、ツリーブロック情報、およびCU情報を参照して、対象CUの予測タイプ、対象CUのPUへの分割情報、および、予測パラメータ(対象CUが、イントラCUであればイントラ予測モード、インターCUである場合には各PUにおける動き補償パラメータ)を導出する。
予測パラメータ決定部21は、(1)対象CUの予測タイプ、(2)対象CUの各PUへの可能な分割パターン、および、(3)各PUに割り付ける可能な予測モード(イントラCUであればイントラ予測モード、インターCUであれば動き補償パラメータ)、の全ての組み合わせについて、コストを算出し、最低コストの予測タイプ、分割パターン、および、予測モードを決定する。
予測パラメータ決定部21は、符号化情報および予測パラメータを予測情報生成部22およびテクスチャ情報生成部24に供給する。なお、説明の簡便のため図示しないが、予測パラメータ決定部21において決定された上記の符号化の設定は、階層動画像符号化装置2の各部において参照可能とする。
予測情報生成部22は、予測パラメータ決定部21から供給される予測パラメータと、参照レイヤ符号化データDATA#Rとに基づいて予測パラメータに関するシンタックス値を含む予測情報を生成する。予測情報生成部22は、生成した予測情報を可変長符号化部25に供給する。なお、予測情報生成部22は、予測パラメータを復元する際に、テクスチャ情報生成24が備えるフレームメモリ244(後述)に格納された動き情報を参照することができる。
ベース復号部23は、階層動画像復号装置1のベース復号部16と同様であるので、ここではその説明を省略する。
テクスチャ情報生成部24は、入力画像PIN#Tから予測画像を減算して得られる予測残差を、直交変換・量子化した変換係数を含む変換係数情報を生成する。テクスチャ情報生成部24は、生成した変換係数情報を可変長符号化部25に供給する。なお、テクスチャ情報生成24では、復元された復号画像に関する情報が、内部に備えるフレームメモリ244(後述)に格納される。
可変長符号化部25は、予測情報生成部22から供給される予測情報およびテクスチャ情報生成部24から供給される変換係数情報を可変長符号化して対象レイヤ符号化データDATA#Tを生成する。可変長符号化部25は、生成した対象レイヤ符号化データDATA#TをNAL多重化部26に供給する。
NAL多重化部26は、可変長符号化部25から供給される対象レイヤ符号化データDATA#Tと、参照レイヤ符号化データDATA#RとをNALユニットに格納することでNAL多重化した階層動画像符号化データDATAを生成し、外部に出力する。
以下において、予測情報生成部22、およびテクスチャ情報生成部24それぞれの詳細について説明する。
(予測情報生成部)
図23を用いて、予測情報生成部22の詳細構成について説明する。図23は、予測情報生成部22の構成について例示した機能ブロック図である。
図23に示すように、予測情報生成部22は、予測タイプ選択部221、スイッチ222、イントラ予測モード導出部223、動きベクトル候補導出部224、動き情報生成部225、マージ候補導出部(層間候補導出手段)226、マージ情報生成部227、およびPU分割タイプ導出部228を備える。
予測タイプ選択部221は、CUタイプまたはPUタイプに応じてスイッチ222に切り替え指示を送り予測パラメータの導出処理を制御する。具体的には以下のとおりである。
イントラCUまたはイントラPUが指定されている場合、予測タイプ選択部221はイントラ予測モード導出部223を用いて予測情報を導出できるようスイッチ222を制御する。
インターCU(マージなし)およびインターPU(マージなし)のいずれかが指定されている場合、予測タイプ選択部221は動き情報生成部225を用いて予測パラメータを導出できるようスイッチ222を制御する。
ベーススキップCU、ベースマージPU、スキップCUおよびマージPUのいずれかが指定されている場合、予測タイプ選択部221はマージ情報生成部227を用いて予測パラメータを導出できるようスイッチ222を制御する。
スイッチ222は、予測タイプ選択部221の指示に応じて、予測パラメータを、イントラ予測モード導出部223、動き情報生成部225、およびマージ情報生成部227のいずれかに供給する。予測情報の供給先において予測パラメータが導出される。
イントラ予測モード導出部223は、イントラ予測モードに関するシンタックス値を導出する。すなわち、イントラ予測モード復元部143が予測情報として生成するのは、予測モードに関するシンタックス値である。
動きベクトル候補導出部224は、ベース復号情報を用いて、レイヤ内動き推定処理、または、レイヤ間動き推定処理により推定動きベクトルの候補を導出する。動きベクトル候補導出部224は、導出した動きベクトルの候補を動き情報生成部225に供給する。
動き情報生成部225は、マージを行わない各インター予測パーティションにおける動き情報に関するシンタックス値を生成する。すなわち、動き情報復元部145が予測情報として生成するのは動き情報に関するシンタックス値である。具体的には、動き情報生成部225は、各PUにおける動き補償パラメータから、対応するシンタックス要素値であるinter_pred_flag、mvd、mvp_idx、および、refIdxを導出する。
具体的には、動き情報生成部225は、対象PUがベースマージPUである場合、動きベクトル候補導出部224から供給される動きベクトルの候補に基づいて、上記シンタックス値を導出する。
一方、動き情報復元部145は、対象CU(PU)がマージを行わないインターCU(インターPU)である場合、予測パラメータに含まれる動き情報に基づいて、上記シンタックス値を導出する。
マージ候補導出部226は、後述するフレームメモリ155から供給される復号済みの動き情報および/またはベース復号部23から供給されるベース復号情報等を用いて、各PUにおける動き補償パラメータと類似の動き補償パラメータを有するマージ候補を導出する。マージ候補導出部226は、導出したマージ候補をマージ情報生成部227に供給する。マージ候補導出部226の構成は、階層動画像復号装置1に含まれるマージ候補導出部146の構成と同様であるので、その説明を省略する。
マージ情報生成部227は、マージを行う各インター予測パーティションに関する動き情報に関するシンタックス値を生成する。すなわち、マージ情報生成部227が予測情報として生成するのは動き情報に関するシンタックス値である。具体的には、マージ情報生成部227は、各PUにおける動き補償パラメータと類似の動き補償パラメータを有するマージ候補を指定するシンタックス要素値merge_idxを出力する。
PU分割タイプ導出部228は、符号化情報およびベース復号情報を用いて、対象レイヤにおける対象CUのPUへのPU分割タイプを推定する。PU分割タイプ導出部228の構成は、階層画像復号装置1に含まれるPU分割タイプ導出部148の構成と同様であるので、その詳細な説明を省略する。
(テクスチャ情報生成部)
図24を用いて、テクスチャ情報生成部24の詳細構成について説明する。図24は、テクスチャ情報生成部24の構成について例示した機能ブロック図である。
図24に示すように、テクスチャ情報生成部24は、テクスチャ予測部241、減算器242、直交変換・量子化部243、逆直交変換・逆量子化部244、加算器245、ループフィルタ部246、およびフレームメモリ247を備える。
減算器242は、入力画像PIN#Tからテクスチャ予測部241から供給される予測画像を減算することによって、予測残差Dを生成する。減算器242は、生成した予測残差Dを、変換・量子化部243に供給する。
直交変換・量子化部243は、予測残差Dに対して、直交変換および量子化を行うことで量子化予測残差を生成する。なお、ここで直交変換とは、画素領域から周波数領域への直交変換のことをさす。また、直交変換の例としては、DCT変換(Discrete Cosine Transform)、およびDST変換(Discrete Sine Transform)等が挙げられる。また、具体的な量子化過程については、すでに説明した通りであるので、ここではその説明を省略する。直交変換・量子化部243は、生成した量子化予測残差を含む変換係数情報を逆変換・逆量子化部244および可変長符号化部25に供給する。
テクスチャ予測部241、逆直交変換・逆量子化部244、加算器245、ループフィルタ部246、およびフレームメモリ247は、それぞれ、階層動画像復号装置1に含まれるテクスチャ予測部152、逆直交変換・逆量子化部151、加算器153、ループフィルタ部154、およびフレームメモリ155と同様であるので、ここではその説明は省略する。ただし、テクスチャ予測部241は、加算器245だけでなく減算器242にも予測画像を供給する。
(他の階層動画像符号化/復号システムへの適用例)
上述した階層動画像符号化装置2及び階層動画像復号装置1は、動画像の送信、受信、記録、再生を行う各種装置に搭載して利用することができる。なお、動画像は、カメラ等により撮像された自然動画像であってもよいし、コンピュータ等により生成された人工動画像(CGおよびGUIを含む)であってもよい。
まず、上述した階層動画像符号化装置2及び階層動画像復号装置1を、動画像の送信及び受信に利用できることを、図25を参照して説明する。
図25の(a)は、階層動画像符号化装置2を搭載した送信装置PROD_Aの構成を示したブロック図である。図25の(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を更に備えていてもよい。図25の(a)においては、これら全てを送信装置PROD_Aが備えた構成を例示しているが、一部を省略しても構わない。
なお、記録媒体PROD_A5は、符号化されていない動画像を記録したものであってもよいし、伝送用の符号化方式とは異なる記録用の符号化方式で符号化された動画像を記録したものであってもよい。後者の場合、記録媒体PROD_A5と符号化部PROD_A1との間に、記録媒体PROD_A5から読み出した符号化データを記録用の符号化方式に従って復号する復号部(不図示)を介在させるとよい。
図25の(b)は、階層動画像復号装置1を搭載した受信装置PROD_Bの構成を示したブロック図である。図25の(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を更に備えていてもよい。図25の(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の双方として機能する。
次に、上述した階層動画像符号化装置2及び階層動画像復号装置1を、動画像の記録及び再生に利用できることを、図26を参照して説明する。
図26の(a)は、上述した階層動画像符号化装置2を搭載した記録装置PROD_Cの構成を示したブロック図である。図26の(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を更に備えていてもよい。図26の(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の一例である。
図26の(b)は、上述した階層動画像復号装置1を搭載した再生装置PROD_Dの構成を示したブロックである。図26の(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を更に備えていてもよい。図26の(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(登録商標)(Electrically Erasable and Programmable Read-only Memory)/フラッシュROM等の半導体メモリ類、あるいはPLD(Programmable Logic Device)やFPGA(Field Programmable Gate Array)等の論理回路類などを用いることができる。
また、上記各装置を通信ネットワークと接続可能に構成し、上記プログラムコードを通信ネットワークを介して供給してもよい。この通信ネットワークは、プログラムコードを伝送可能であればよく、特に限定されない。例えば、インターネット、イントラネット、エキストラネット、LAN(Local Area Network)、ISDN(Integrated Services Digital Network)、VAN(Value-Added Network)、CATV(Community Antenna Television)通信網、仮想専用網(Virtual Private Network)、電話回線網、移動体通信網、衛星通信網等が利用可能である。また、この通信ネットワークを構成する伝送媒体も、プログラムコードを伝送可能な媒体であればよく、特定の構成または種類のものに限定されない。例えば、IEEE(Institute of Electrical and Electronic Engineers)1394、USB、電力線搬送、ケーブルTV回線、電話線、ADSL(Asymmetric Digital Subscriber Line)回線等の有線でも、IrDA(Infrared Data Association)やリモコンのような赤外線、Bluetooth(登録商標)、IEEE802.11無線、HDR(High Data Rate)、NFC(Near Field Communication)、DLNA(Digital Living Network Alliance)、携帯電話網、衛星回線、地上波デジタル網等の無線でも利用可能である。なお、本発明は、上記プログラムコードが電子的な伝送で具現化された、搬送波に埋め込まれたコンピュータデータ信号の形態でも実現され得る。
本発明は上述した実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、実施形態に開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。