本発明の一実施形態について図1〜図24を参照して説明する。まず、図2を参照しながら、動画像復号装置(画像復号装置)1および動画像符号化装置(画像符号化装置)2の概要について説明する。図2は、動画像復号装置1の概略的構成を示す機能ブロック図である。
図2に示す動画像復号装置1および動画像符号化装置2は、H.264/MPEG−4 AVC規格に採用されている技術、VCEG(Video Coding Expert Group)における共同開発用コーデックであるKTAソフトウェアに採用されている技術、TMuC(Test Model under Consideration)ソフトウェアに採用されている技術、および、その後継コーデックであるHEVC(High-Efficiency Video Coding)にて提案されている技術を実装している。
動画像符号化装置2は、これらの動画像符号化方式において、エンコーダからデコーダに伝送されることが規定されているシンタックス(syntax)の値をエントロピー符号化して符号化データ#1を生成する。
エントロピー符号化方式としては、コンテキスト適応型可変長符号化(CAVLC:Context-based Adaptive Variable Length Coding)、および、コンテキスト適応型2値算術符号化(CABAC:Context-based Adaptive Binary Arithmetic Coding)が知られている。
CAVLCおよびCABACによる符号化/復号においては、コンテキストに適応した処理が行われる。コンテキストとは、符号化/復号の状況(文脈)のことであり、関連シンタックスの過去の符号化/復号結果により定まるものである。関連シンタックスとしては、例えば、イントラ予測、インター予測に関する各種シンタックス、輝度(Luma)、色差(Chroma)に関する各種シンタックス、およびCU(Coding Unit 符号化単位)サイズに関する各種シンタックスなどがある。また、CABACでは、シンタックスに対応する2値データ(バイナリ列)における、符号化/復号対象となるバイナリの位置をコンテキストとして用いる場合もある。
CAVLCでは、符号化に用いるVLCテーブルを適応的に変更して、各種シンタックスが符号化される。一方、CABACでは、予測モードおよび変換係数等の多値を取り得るシンタックスに対して2値化処理が施され、この2値化処理によって得られた2値データが発生確率に応じて適応的に算術符号化される。具体的には、バイナリ値(0または1)の発生確率を保持するバッファを複数用意し、コンテキストに応じて一つのバッファを選択し、当該バッファに記録されている発生確率に基づいて算術符号化を行う。また、復号/符号化するバイナリ値に基づいて、当該バッファの発生確率を更新することで、コンテキストに応じて適切な発生確率を維持できる。
動画像復号装置1には、動画像符号化装置2が動画像を符号化した符号化データ#1が入力される。動画像復号装置1は、入力された符号化データ#1を復号して動画像#2を外部に出力する。動画像復号装置1の詳細な説明に先立ち、符号化データ#1の構成を以下に説明する。
〔符号化データの構成〕
図3を用いて、動画像符号化装置2によって生成され、動画像復号装置1によって復号される符号化データ#1の構成例について説明する。符号化データ#1は、例示的に、シーケンス、およびシーケンスを構成する複数のピクチャを含む。
符号化データ#1におけるピクチャレイヤ以下の階層の構造を図3に示す。図3の(a)〜(d)は、それぞれ、ピクチャPICTを規定するピクチャレイヤ、スライスSを規定するスライスレイヤ、ツリーブロック(Tree block)TBLKを規定するツリーブロックレイヤ、ツリーブロックTBLKに含まれる符号化単位(Coding Unit;CU)を規定するCUレイヤを示す図である。
(ピクチャレイヤ)
ピクチャレイヤでは、処理対象のピクチャPICT(以下、対象ピクチャとも称する)を復号するために動画像復号装置1が参照するデータの集合が規定されている。ピクチャPICTは、図3の(a)に示すように、ピクチャヘッダPH、及び、スライスS1〜SNSを含んでいる(NSはピクチャPICTに含まれるスライスの総数)。
なお、以下、スライスS1〜SNSのそれぞれを区別する必要が無い場合、符号の添え字を省略して記述することがある。また、以下に説明する符号化データ#1に含まれるデータであって、添え字を付している他のデータについても同様である。
ピクチャヘッダPHには、対象ピクチャの復号方法を決定するために動画像復号装置1が参照する符号化パラメータ群が含まれている。例えば、動画像符号化装置2が符号化の際に用いた可変長符号化のモードを示す符号化モード情報(entropy_coding_mode_flag)は、ピクチャヘッダPHに含まれる符号化パラメータの一例である。
entropy_coding_mode_flagが0の場合、当該ピクチャPICTは、CAVLC(Context-based Adaptive Variable Length Coding)によって符号化されている。また、entropy_coding_mode_flagが1である場合、当該ピクチャPICTは、CABAC(Context-based Adaptive Binary Arithmetic Coding)によって符号化されている。
なお、ピクチャヘッダPHは、ピクチャー・パラメーター・セット(PPS:Picture Parameter Set)とも称される。
(スライスレイヤ)
スライスレイヤでは、処理対象のスライスS(対象スライスとも称する)を復号するために動画像復号装置1が参照するデータの集合が規定されている。スライスSは、図3の(b)に示すように、スライスヘッダSH、及び、ツリーブロックTBLK1〜TBLKNC(NCはスライスSに含まれるツリーブロックの総数)を含んでいる。
スライスヘッダSHには、対象スライスの復号方法を決定するために動画像復号装置1が参照する符号化パラメータ群が含まれる。スライスタイプを指定するスライスタイプ指定情報(slice_type)は、スライスヘッダSHに含まれる符号化パラメータの一例である。
スライスタイプ指定情報により指定可能なスライスタイプとしては、(1)符号化の際にイントラ予測のみを用いるIスライス、(2)符号化の際に単予測、又は、イントラ予測を用いるPスライス、(3)符号化の際に単予測、双予測、又は、イントラ予測を用いるBスライスなどが挙げられる。
また、スライスヘッダSHには、動画像復号装置1の備えるループフィルタ(不図示)によって参照されるフィルタパラメータが含まれていてもよい。
(ツリーブロックレイヤ)
ツリーブロックレイヤでは、処理対象のツリーブロックTBLK(以下、対象ツリーブロックとも称する)を復号するために動画像復号装置1が参照するデータの集合が規定されている。
ツリーブロックTBLKは、ツリーブロックヘッダTBLKHと、符号化単位情報CU1〜CUNL(NLはツリーブロックTBLKに含まれる符号化単位情報の総数)とを含む。ここで、まず、ツリーブロックTBLKと、符号化単位情報CUとの関係について説明すると次のとおりである。
ツリーブロックTBLKは、イントラ予測またはインター予測、および、変換の各処理ためのブロックサイズを特定するためのユニットに分割される。
ツリーブロックTBLKの上記ユニットは、再帰的な4分木分割により分割されている。この再帰的な4分木分割により得られる木構造のことを以下、符号化ツリー(coding tree)と称する。
以下、符号化ツリーの末端のノードであるリーフ(leaf)に対応するユニットを、符号化ノード(coding node)として参照する。また、符号化ノードは、符号化処理の基本的な単位となるため、以下、符号化ノードのことを、符号化単位(CU)とも称する。
つまり、符号化単位情報CU1〜CUNLは、ツリーブロックTBLKを再帰的に4分木分割して得られる各符号化ノード(符号化単位)に対応する情報である。
また、符号化ツリーのルート(root)は、ツリーブロックTBLKに対応付けられる。換言すれば、ツリーブロックTBLKは、複数の符号化ノードを再帰的に含む4分木分割の木構造の最上位ノードに対応付けられる。
なお、各符号化ノードのサイズは、当該符号化ノードが直接に属する符号化ノード(すなわち、当該符号化ノードの1階層上位のノードのユニット)のサイズの縦横とも半分である。
また、各符号化ノードの取り得るサイズは、符号化データ#1のシーケンスパラメータセットSPSに含まれる、符号化ノードのサイズ指定情報および最大階層深度(maximum hierarchical depth)に依存する。例えば、ツリーブロックTBLKのサイズが64×64画素であって、最大階層深度が3である場合には、当該ツリーブロックTBLK以下の階層における符号化ノードは、4種類のサイズ、すなわち、64×64画素、32×32画素、16×16画素、および8×8画素の何れかを取り得る。
(ツリーブロックヘッダ)
ツリーブロックヘッダTBLKHには、対象ツリーブロックの復号方法を決定するために動画像復号装置1が参照する符号化パラメータが含まれる。具体的には、図3の(c)に示すように、対象ツリーブロックの各CUへの分割パターンを指定するツリーブロック分割情報SP_TBLK、および、量子化ステップの大きさを指定する量子化パラメータ差分Δqp(qp_delta)が含まれる。
ツリーブロック分割情報SP_TBLKは、ツリーブロックを分割するための符号化ツリーを表す情報であり、具体的には、対象ツリーブロックに含まれる各CUの形状、サイズ、および、対象ツリーブロック内での位置を指定する情報である。
なお、ツリーブロック分割情報SP_TBLKは、CUの形状やサイズを明示的に含んでいなくてもよい。例えばツリーブロック分割情報SP_TBLKは、対象ツリーブロック全体またはツリーブロックの部分領域を四分割するか否かを示すフラグ(split_coding_unit_flag)の集合であってもよい。その場合、ツリーブロックの形状やサイズを併用することで各CUの形状やサイズを特定できる。
また、量子化パラメータ差分Δqpは、対象ツリーブロックにおける量子化パラメータqpと、当該対象ツリーブロックの直前に符号化されたツリーブロックにおける量子化パラメータqp’との差分qp−qp’である。
(CUレイヤ)
CUレイヤでは、処理対象のCU(以下、対象CUとも称する)を復号するために動画像復号装置1が参照するデータの集合が規定されている。
ここで、符号化単位情報CUに含まれるデータの具体的な内容の説明をする前に、CUに含まれるデータの木構造について説明する。符号化ノードは、予測ツリー(prediction tree;PT)および変換ツリー(transform tree;TT)のルートのノードとなる。予測ツリーおよび変換ツリーについて説明すると次のとおりである。
予測ツリーにおいては、符号化ノードが1または複数の予測ブロックに分割され、各予測ブロックの位置とサイズとが規定される。別の表現でいえば、予測ブロックは、符号化ノードを構成する1または複数の重複しない領域である。また、予測ツリーは、上述の分割により得られた1または複数の予測ブロックを含む。
予測処理は、この予測ブロックごとに行われる。以下、予測の単位である予測ブロックのことを、予測単位(prediction unit;PU)とも称する。
予測ツリーにおける分割の種類は、大まかにいえば、イントラ予測の場合と、インター予測の場合との2つがある。
イントラ予測の場合、分割方法は、2N×2N(符号化ノードと同一サイズ)と、N×Nとがある。
また、インター予測の場合、分割方法は、2N×2N(符号化ノードと同一サイズ)、2N×N、N×2N、および、N×Nなどがある。
また、変換ツリーにおいては、符号化ノードが1または複数の変換ブロックに分割され、各変換ブロックの位置とサイズとが規定される。別の表現でいえば、変換ブロックは、符号化ノードを構成する1または複数の重複しない領域のことである。また、変換ツリーは、上述の分割より得られた1または複数の変換ブロックを含む。
変換処理は、この変換ブロックごとに行われる。以下、変換の単位である変換ブロックのことを、変換単位(transform unit;TU)とも称する。
(符号化単位情報のデータ構造)
続いて、図3の(d)を参照しながら符号化単位情報CUに含まれるデータの具体的な内容について説明する。図3の(d)に示すように、符号化単位情報CUは、具体的には、スキップモードフラグSKIP、CU予測タイプ情報Pred_type、PT情報PTI、および、TT情報TTIを含む。
[スキップフラグ]
スキップフラグSKIPは、対象CUについて、スキップモードが適用されているか否かを示すフラグであり、スキップフラグSKIPの値が1の場合、すなわち、対象CUにスキップモードが適用されている場合、その符号化単位情報CUにおけるPT情報PTIは省略される。なお、スキップフラグSKIPは、Iスライスでは省略される。
[CU予測タイプ情報]
CU予測タイプ情報Pred_typeは、CU予測方式情報PredModeおよびPU分割タイプ情報PartModeを含む。
CU予測方式情報PredModeは、対象CUに含まれる各PUについての予測画像生成方法として、イントラ予測(イントラCU)、および、インター予測(インターCU)のいずれを用いるのかを指定するものである。なお、以下では、対象CUにおける、スキップ、イントラ予測、および、インター予測の種別を、CU予測モードと称する。
PU分割タイプ情報PartModeは、対象符号化単位(CU)の各PUへの分割のパターンであるPU分割タイプを指定するものである。以下、このように、PU分割タイプに従って、対象符号化単位(CU)を各PUへ分割することをPU分割と称する。
PU分割タイプ情報PartModeは、例示的には、PU分割パターンの種類を示すインデックスであってもよいし、対象予測ツリーに含まれる各PUの形状、サイズ、および、対象予測ツリー内での位置が指定されていてもよい。
なお、選択可能なPU分割タイプは、CU予測方式とCUサイズに応じて異なる。また、さらにいえば、選択可能できるPU分割タイプは、インター予測およびイントラ予測それぞれの場合において異なる。また、PU分割タイプの詳細については後述する。
また、Iスライスでない場合、PU分割タイプ情報PartModeの値は、ツリーブロックの分割(partition)、予測方式、およびCUの分割(split)の方法の組み合わせを指定するインデックス(cu_split_pred_part_mode)によって特定されるようになっていてもよい。
[PT情報]
PT情報PTIは、対象CUに含まれるPTに関する情報である。言い換えれば、PT情報PTIは、PTに含まれる1または複数のPUそれぞれに関する情報の集合である。上述のとおり予測画像の生成は、PUを単位として行われるので、PT情報PTIは、動画像復号装置1によって予測画像が生成される際に参照される。PT情報PTIは、図3の(d)に示すように、各PUにおける予測情報等を含むPU情報PUI1〜PUINP(NPは、対象PTに含まれるPUの総数)を含む。
予測情報PUIは、予測タイプ情報Pred_modeが何れの予測方法を指定するのかに応じて、イントラ予測情報、または、インター予測情報を含む。以下では、イントラ予測が適用されるPUをイントラPUとも呼称し、インター予測が適用されるPUをインターPUとも呼称する。
インター予測情報は、動画像復号装置1が、インター予測によってインター予測画像を生成する際に参照される符号化パラメータを含む。
インター予測パラメータとしては、例えば、マージフラグ(merge_flag)、マージインデックス(merge_idx)、推定動きベクトルインデックス(mvp_idx)、参照画像インデックス(ref_idx)、インター予測フラグ(inter_pred_flag)、および動きベクトル残差(mvd)が挙げられる。
イントラ予測情報は、動画像復号装置1が、イントラ予測によってイントラ予測画像を生成する際に参照される符号化パラメータを含む。
イントラ予測パラメータとしては、例えば、推定予測モードフラグ、推定予測モードインデックス、および、残余予測モードインデックスが挙げられる。
なお、イントラ予測情報では、PCMモードを用いるか否かを示すPCMモードフラグが符号化されていてもよい。PCMモードフラグが符号化されている場合であって、PCMモードフラグがPCMモードを用いることを示しているときには、予測処理(イントラ)、変換処理、および、エントロピー符号化の各処理が省略される。
[TT情報]
TT情報TTIは、CUに含まれるTTに関する情報である。言い換えれば、TT情報TTIは、TTに含まれる1または複数のTUそれぞれに関する情報の集合であり、動画像復号装置1により残差データを復号する際に参照される。なお、以下、TUのことをブロックと称することもある。
TT情報TTIは、図3の(d)に示すように、対象CUの各変換ブロックへの分割パターンを指定するTT分割情報SP_TU、および、TU情報TUI1〜TUINT(NTは、対象CUに含まれるブロックの総数)を含んでいる。
TT分割情報SP_TUは、具体的には、対象CUに含まれる各TUの形状、サイズ、および、対象CU内での位置を決定するための情報である。例えば、TT分割情報SP_TUは、対象となるノードの分割を行うのか否かを示す情報(split_transform_flag)と、その分割の深度を示す情報(trafoDepth)とから実現することができる。
また、例えば、CUのサイズが、64×64の場合、分割により得られる各TUは、32×32画素から4×4画素までのサイズを取り得る。
TU情報TUI1〜TUINTは、TTに含まれる1または複数のTUそれぞれに関する個別の情報である。例えば、TU情報TUIは、量子化予測残差を含んでいる。
各量子化予測残差は、動画像符号化装置2が以下の処理1〜3を、処理対象のブロックである対象ブロックに施すことによって生成した符号化データである。
処理1:符号化対象画像から予測画像を減算した予測残差をDCT変換(Discrete Cosine Transform)する;
処理2:処理1にて得られた変換係数を量子化する;
処理3:処理2にて量子化された変換係数を可変長符号化する;
なお、上述した量子化パラメータqpは、動画像符号化装置2が変換係数を量子化する際に用いた量子化ステップQPの大きさを表す(QP=2qp/6)。
(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である場合のパーティションの形状について示している。以下、PU分割タイプが、2N×N、2N×nU、および、2N×nDである場合のパーティションを、まとめて横長パーティションと称する。
また、図4の(e)、(f)、および(g)は、それぞれ、PU分割タイプが、N×2N、nL×2N、および、nR×2Nである場合のパーティションの形状について示している。以下、PU分割タイプが、N×2N、nL×2N、および、nR×2Nである場合のパーティションを、まとめて縦長パーティションと称する。
また、横長パーティションおよび縦長パーティションをまとめて長方形パーティションと称する。
また、図4の(h)は、PU分割タイプが、N×Nである場合のパーティションの形状を示している。図4の(a)および(h)のPU分割タイプのことを、そのパーティションの形状に基づいて、正方形分割とも称する。また、図4の(b)〜(g)のPU分割タイプのことは、非正方形分割とも称する。
また、図4の(a)〜(h)において、各領域に付した番号は、領域の識別番号を示しており、この識別番号順に、領域に対して処理が行われる。すなわち、当該識別番号は、領域のスキャン順を表している。
また、図4の(a)〜(h)において、左上がCUの基準点(原点)であるとする。
[インター予測の場合の分割タイプ]
インターPUでは、上記8種類の分割タイプのうち、N×N(図4の(h))以外の7種類が定義されている。なお、上記4つの非対称的分割は、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へ分割することが可能である。
なお、Iスライスの場合、符号化単位情報CUにおいて、PU分割タイプPartModeを特定するためのイントラ分割モード(intra_part_mode)が含まれていてもよい。
(TU分割およびノード内のTUの順序)
次に、図18〜図20を用いて、TU分割およびノード内のTUの順序について説明する。TU分割のパターンは、CUのサイズ、分割の深度(trafoDepth)、および対象PUのPU分割タイプにより定まる。
また、TU分割のパターンには、正方形の4分木分割と、非正方形の4分木分割とが含まれる。TU分割のパターンの具体例は、図18および図19に示すとおりである。
図18は、正方形のノードを正方形または非正方形に4分木分割する分割方式について示している。
図18の(a)は、正方形のノードを正方形に4分木分割する分割方式を示している。また、同図の(b)は、正方形のノードを横長の長方形に4分木分割する分割方式を示している。そして、同図の(c)は、正方形のノードを縦長の長方形に4分木分割する分割方式を示している。
また、図19は、非正方形のノードを正方形または非正方形に4分木分割する分割方式について示している。
図19の(a)は、横長の長方形のノードを横長の長方形に4分木分割する分割方式を示している。また、同図の(b)は、横長の長方形のノードを正方形に4分木分割する分割方式を示している。また、同図の(c)は、縦長の長方形のノードを縦長の長方形に4分木分割する分割方式を示している。そして、同図の(d)は、縦長の長方形のノードを正方形に4分木分割する分割方式を示している。
また、図20に、PU分割タイプ2N×Nの32×32CUのTU分割の例を示している。同図において、“depth”は、分割の深度(trafoDepth)を示している。また、“split”は、当該depthにおけるsplit_transform_flagの値を示している。“split”が“1”であれば、当該depthのノードについてTU分割を行い、“0”であれば、TU分割を行わない。
CUのサイズ、分割の深度(trafoDepth)、および対象PUのPU分割タイプと、TU分割パターンとの対応関係の詳細については後述する。
〔動画像復号装置〕
以下では、本実施形態に係る動画像復号装置1の構成について、図1〜図24を参照して説明する。
(動画像復号装置の概要)
動画像復号装置1は、PU毎に予測画像を生成し、生成された予測画像と、符号化データ#1から復号された予測残差とを加算することによって復号画像#2を生成し、生成された復号画像#2を外部に出力する。
ここで、予測画像の生成は、符号化データ#1を復号することによって得られる符号化パラメータを参照して行われる。符号化パラメータとは、予測画像を生成するために参照されるパラメータのことである。符号化パラメータには、画面間予測において参照される動きベクトルや画面内予測において参照される予測モードなどの予測パラメータに加えて、PUのサイズや形状、ブロックのサイズや形状、および、原画像と予測画像との残差データなどが含まれる。以下では、符号化パラメータに含まれる情報のうち、上記残差データを除く全ての情報の集合を、サイド情報と呼ぶ。
また、以下では、復号の対象となるピクチャ(フレーム)、スライス、ツリーブロック、ブロック、および、PUをそれぞれ、対象ピクチャ、対象スライス、対象ツリーブロック、対象ブロック、および、対象PUと呼ぶことにする。
なお、ツリーブロックのサイズは、例えば64×64画素であり、PUのサイズは、例えば、64×64画素、32×32画素、16×16画素、8×8画素や4×4画素などである。しかしながら、これらのサイズは、単なる例示であり、ツリーブロックおよびPUのサイズは以上に示したサイズ以外のサイズであってもよい。
(動画像復号装置の構成)
再び、図2を参照して、動画像復号装置1の概略的構成について説明すると次のとおりである。図2は、動画像復号装置1の概略的構成について示した機能ブロック図である。
図2に示すように動画像復号装置1は、復号モジュール10、CU情報復号部11、PU情報復号部12、TU情報復号部13、予測画像生成部14、逆量子化・逆変換部15、フレームメモリ16および加算器17を備えている。
[復号モジュール]
復号モジュール10は、バイナリからシンタックス値を復号する復号処理を行う。復号モジュール10は、より具体的には、供給元から供給される符号化データおよびシンタックス種別に基づいて、CABACおよびCAVLC等のエントロピー符号化方式により符号化されているシンタックス値を復号し、復号したシンタックス値を供給元に返す。
以下に示す例では、符号化データおよびシンタックス種別の供給元は、CU情報復号部11、PU情報復号部12、およびTU情報復号部13である。
復号モジュール10における復号処理の例として、CU情報復号部11から、復号モジュール10に対して、符号化データのバイナリ(ビット列)と、シンタックス種別“split_coding_unit_flag”とが供給された場合について説明すると次のとおりである。すなわち、この場合、復号モジュール10は、“split_coding_unit_flag”に関するビット列とシンタックス値との対応付けを参照して、バイナリからシンタックス値を導出して、導出したシンタックス値をCU情報復号部11に返す。
[CU情報復号部]
CU情報復号部11は、復号モジュール10を用いて、動画像符号化装置2から入力された1フレーム分の符号化データ#1について、ツリーブロックおよびCUレベルでの復号処理を行う。CU情報復号部11は、具体的には、以下の手順により符号化データ#1を復号する。
まず、CU情報復号部11は、符号化データ#1に含まれる各種ヘッダを参照して、符号化データ#1を、スライス、ツリーブロックに順次分離する。
ここで、各種ヘッダには、(1)対象ピクチャのスライスへの分割方法についての情報、および(2)対象スライスに属するツリーブロックのサイズ、形状および対象スライス内での位置についての情報が含まれる。
そして、CU情報復号部11は、ツリーブロックヘッダTBLKHに含まれるツリーブロック分割情報SP_TBLKを参照して、対象ツリーブロックをCUに分割する。
次に、CU情報復号部11は、分割により得られたCUに対応する符号化単位情報(以下、CU情報と称する)を取得する。CU情報復号部11は、ツリーブロックに含まれる各CUを順に対象CUとして、対象CUに対応するCU情報の復号処理を実行する。
すなわち、CU情報復号部11は、対象CUについて得られる変換ツリーに関するTT情報TTI、および、対象CUについて得られる予測ツリーに関するPT情報PTIを逆多重化する。
なお、TT情報TTIには、上述のとおり、変換ツリーに含まれるTUに対応するTU情報TUIが含まれる。また、PT情報PTIには、上述のとおり、対象予測ツリーに含まれるPUに対応するPU情報PUIが含まれる。
CU情報復号部11は、対象CUについて得られたPT情報PTIをPU情報復号部12に供給する。また、CU情報復号部11は、対象CUについて得られたTT情報TTIをTU情報復号部13に供給する。
[PU情報復号部]
PU情報復号部12は、復号モジュール10を用いて、CU情報復号部11から供給されるPT情報PTIについて、PUレベルでの復号処理を行う。PU情報復号部12は、具体的には、以下の手順によりPT情報PTIを復号する。
PU情報復号部12は、PU分割タイプ情報Part_typeを参照して、対象予測ツリーにおけるPU分割タイプを決定する。続いて、PU情報復号部12は、対象予測ツリーに含まれる各PUを順に対象PUとして、対象PUに対応するPU情報の復号処理を実行する。
すなわち、PU情報復号部12は、対象PUに対応するPU情報から、予測画像の生成に用いられる各パラメータの復号処理を行う。
PU情報復号部12は、対象PUについて復号したPU情報を、予測画像生成部14に供給する。
[TU情報復号部]
TU情報復号部13は、復号モジュール10を用いて、CU情報復号部11から供給されるTT情報TTIについて、TUレベルでの復号処理を行う。TU情報復号部13は、具体的には、以下の手順によりTT情報TTIを復号する。
TU情報復号部13は、TT分割情報SP_TUを参照して、対象変換ツリーをノードまたはTUに分割する。なお、TU情報復号部13は、対象ノードについて、さらに分割を行うことが指定されていれば、再帰的にTUの分割処理を行う。
分割処理が終了すると、TU情報復号部13は、対象予測ツリーに含まれる各TUを順に対象TUとして、対象TUに対応するTU情報の復号処理を実行する。
すなわち、TU情報復号部13は、対象TUに対応するTU情報から、変換係数の復元に用いられる各パラメータの復号処理を行う。
TU情報復号部13は、対象TUについて復号したTU情報を、逆量子化・逆変換部15に供給する。
[予測画像生成部]
予測画像生成部14は、対象CUに含まれる各PUについて、PT情報PTIに基づいて予測画像を生成する。具体的には、予測画像生成部14は、対象予測ツリーに含まれる各対象PUについて、対象PUに対応するPU情報PUIに含まれるパラメータに従ってイントラ予測またはインター予測を行うことにより、復号済み画像である局所復号画像P’から予測画像Predを生成する。予測画像生成部14は、生成した予測画像Predを加算器17に供給する。
なお、予測画像生成部14が、動き補償予測パラメータ(動きベクトル、参照画像インデックス、インター予測フラグ)に基づいて対象CUに含まれるPUの予測画像を生成する手法について説明すると以下のとおりである。
インター予測フラグが単予測を示す場合、予測画像生成部14は、参照画像インデックスの示す参照画像の動きベクトルが示す場所に位置する復号画像に相当する予測画像を生成する。
一方、インター予測フラグが双予測を示す場合には、予測画像生成部14は、2組の参照画像インデックスと動きベクトルとの組み合わせのそれぞれについて動き補償により予測画像を生成し、平均を算出することで、もしくは、各予測画像を対象ピクチャと各参照画像との表示時間間隔に基づいて重み付け加算することで、最終的な予測画像を生成する。
[逆量子化・逆変換部]
逆量子化・逆変換部15は、対象CUに含まれる各TUについて、TT情報TTIに基づいて逆量子化・逆変換処理を実行する。具体的には、逆量子化・逆変換部15は、対象変換ツリーに含まれる各対象TUについて、対象TUに対応するTU情報TUIに含まれる量子化予測残差を逆量子化および逆直交変換することによって、画素毎の予測残差Dを復元する。なお、ここで直交変換とは、画素領域から周波数領域への直交変換のことを指す。したがって、逆直交変換は、周波数領域から画素領域への変換である。また、逆直交変換の例としては、逆DCT変換(Inverse Discrete Cosine Transform)、および逆DST変換(Inverse Discrete Sine Transform)等が挙げられる。逆量子化・逆変換部15は、復元した予測残差Dを加算器17に供給する。
[フレームメモリ]
フレームメモリ16には、復号された復号画像Pが、当該復号画像Pの復号に用いられたパラメータと共に、順次記録される。フレームメモリ16には、対象ツリーブロックを復号する時点において、当該対象ツリーブロックよりも先に復号された全てのツリーブロック(例えば、ラスタスキャン順で先行する全てのツリーブロック)に対応する復号画像が記録されている。フレームメモリ16に記録される復号パラメータの例としては、CU予測方式情報PredModeなどが挙げられる。
[加算器]
加算器17は、予測画像生成部14より供給される予測画像Predと、逆量子化・逆変換部15より供給される予測残差Dとを加算することによって、対象CUについての復号画像Pを生成する。
なお、動画像復号装置1において、画像内の全てのツリーブロックに対して、ツリーブロック単位の復号画像生成処理が終わった時点で、動画像復号装置1に入力された1フレーム分の符号化データ#1に対応する復号画像#2が外部に出力される。
以下では、(1)CU情報復号部11、(2)PU情報復号部12、および(3)TU情報復号部13の構成について、それぞれの構成に対応する復号モジュール10の構成と共に詳細に説明する。
(1)CU情報復号部の詳細
次に、図1を用いて、CU情報復号部11および復号モジュール10の構成例について説明する。図1は、動画像復号装置1において、CU予測情報を復号するための構成、すなわちCU情報復号部11および復号モジュール10の構成について例示する機能ブロック図である。
以下、CU情報復号部11および復号モジュール10の順で、各部の構成について説明する。
(CU情報復号部)
図1に示すように、CU情報復号部11は、CU予測モード決定部111、PUサイズ決定部112、およびPUサイズテーブル113を備える。
CU予測モード決定部111は、CU予測モードの符号化データおよびシンタックス種別と、PU分割タイプの符号化データおよびシンタックス種別とを、復号モジュール10に供給する。また、CU予測モード決定部111は、復号モジュール10から、復号されたCU予測モードのシンタックス値と、PU分割タイプのシンタックス値とを取得する。
具体的には、CU予測モード決定部111は、次のようにして、CU予測モードおよびPU分割タイプを決定する。
まず、CU予測モード決定部111は、スキップフラグSKIPを復号モジュール10により復号して、対象CUがスキップCUであるか否かを決定する。
対象CUがスキップCUでない場合、CU予測タイプ情報Pred_typeを復号モジュール10により復号する。また、CU予測タイプ情報Pred_typeに含まれるCU予測方式情報PredModeに基づいて、対象CUがイントラCUか、インターCUかを決定するとともに、PU分割タイプ情報PartModeに基づいてPU分割タイプを決定する。
PUサイズ決定部112は、PUサイズテーブル113を参照して、対象CUのサイズと、CU予測モード決定部111において決定されたCU予測タイプおよびPU分割タイプとから、PUの個数およびサイズを決定する。
PUサイズテーブル113は、CUのサイズとCU予測タイプ−PU分割タイプとの組み合わせにPUの個数およびサイズを対応付けるテーブルである。
ここで、図5を用いて、PUサイズテーブル113の具体的な構成例について説明すると次のとおりである。
図5に示すPUサイズテーブル113では、CUのサイズと、PU分割タイプ(イントラCUおよびインターCU)に応じて、PUの個数およびサイズが定義されている。なお、表中の“d”は、CUの分割深度を示す。
PUサイズテーブル113では、CUのサイズとして、64×64、32×32、16×16、および8×8の4つが定義されている。
また、PUサイズテーブル113では、CUのサイズに対して、各PU分割タイプにおけるPUの個数およびサイズが定義されている。
例えば、64×64のインターCUであって、2N×N分割である場合は、PUは2個でサイズは共に64×32である。
また、64×64のインターCUであって、2N×nU分割である場合は、PUは2個でサイズは64×16と64×48とである。
また、8×8のイントラCUであって、N×N分割である場合は、PUは4個でサイズはすべて4×4である。
なお、スキップCUのPU分割タイプは、2N×2Nと推定される。また、表中、“−”で示している箇所は、選択できないPU分割タイプであることを示している。
すなわち、CUサイズが、8×8の場合、インターCUにおいて、非対称パーティション(2N×nU、2N×nD、nL×2N、およびnR×2N)のPU分割タイプは選択不可である。また、インターCUの場合、N×NのPU分割タイプは、選択不可である。
また、イントラ予測では、CUサイズが、8×8の場合のみ、N×NのPU分割タイプを選択することが可能である。
(復号モジュール)
図1に示すように、復号モジュール10は、CU予測モード復号部(復号手段、変更手段)1011、二値化情報記憶部1012、コンテキスト記憶部1013、および確率設定記憶部1014を備える。
CU予測モード復号部1011は、CU予測モード決定部111から供給される符号化データおよびシンタックス種別に応じて、符号化データに含まれるバイナリからシンタックス値の復号を行う。具体的には、CU予測モード復号部1011は、二値化情報記憶部1012に記憶されている二値化情報に従って、CU予測モードおよびPU分割タイプの復号処理を行う。また、CU予測モード復号部1011は、スキップフラグの復号処理を行う。
二値化情報記憶部1012には、CU予測モード復号部1011が、バイナリから、シンタックス値を復号するための二値化情報が記憶されている。二値化情報は、バイナリ(bin列)と、シンタックス値との対応付けを示す情報である。
コンテキスト記憶部1013には、CU予測モード復号部1011が、復号処理の際に参照するコンテキストが記憶されている。
確率設定記憶部1014には、CU予測モード復号部1011が、符号化データから算術復号処理によりbin列を復号する際に参照する確率設定値が記録されている。なお、確率設定値は、各コンテキストに対応する記録設定値と、既定の確率設定値がある。各コンテキストに対応する確率設定値は、算術復号の結果に基づいて更新される。一方、既定の確率設定値は一定であり、算術復号の結果により更新されない。なお、確率設定値は、確率の値自体ではなく、確率の値に対応する整数値で示される状態で表現しても良い。
[具体的構成例]
[1−1]コンテキストの参照を制限する構成の例
CU予測モード復号部1011は、PU分割タイプが非対称パーティションであるとき、非対称パーティションの分割の種類を示す情報を、CABACのコンテキストを用いないで復号処理を行ってもかまわない。言い換えると、非対称パーティションの分割の種類を示す情報に対応するbin列を算術復号により符号化データから復号する際に、確率設定記憶部1014にコンテキスト毎に記録された確率設定値を用いず、既定の確率設定値(例えば0,1の発生確率が等確率に対応する確率設定値)を用いて復号処理を行ってもかまわない。
以下、図7を参照しながら、このようにコンテキストの参照の制限を行う構成について例示する。
CU予測モード復号部1011は、規定の確率を仮定して非対称パーティションの分割の種類を示す情報を復号する。
図7を参照しながら、本構成例についてさらに具体的に例示すると次のとおりである。図7に示す対応付けテーブルBT1では、長方形の分割について、プレフィックス部は、分割の方向が横長(水平)および縦長(垂直)のいずれであるかを示しており、サフィックス部は、分割の種類を示している。
例えば、プレフィックス部が、PU分割タイプが横長の分割であることを示すとき、サフィックス部は、2N×N、2N×nU、および2N×nDの3つの横長の分割のうち、いずれを選択するかを示す。
CU予測モード復号部1011は、PU分割タイプが、長方形の分割である場合、確率設定記憶部1014に設定されているコンテキスト毎に記録された確率設定値の代わりに、確率設定記憶部1014に設定されている既定の確率設定値を参照して、サフィックス部の各binの算術復号を行う。なお、当該確率設定値は、例えば、等確率を仮定して設定しておくことができる。
ここで、コンテキストを用いたCABACの算術復号とは、バイナリの位置(コンテキスト)に応じてバイナリ値の発生確率(を示す状態)を記録・更新しておき、その発生確率(状態)に基づき算術復号を行う処理のことを言う。一方、コンテキストを用いないCABACの算術復号とは、バイナリ値の発生確率(状態)の更新を行わず確率設定値により定まる固定確率に基づき算術復号を行うことを言う。コンテキストを用いない場合には、符号化処理、復号処理における発生確率(状態)の更新が不要である分、処理負荷が低減されスループットが向上する。またコンテキストに応じた発生確率(状態)を蓄積するメモリが不要になる。固定確率として、確率0.5を用いる場合は、EP符号化(等確率、Equal Probability符号化)もしくはBypass(バイパス)と呼ばれることがある。
図6を用いて、上記構成による作用・効果を説明する。まず、コンテキストが符号化効率の向上に有効なのは、特定の状況において、同一の符号が連続して発生する場合である。コンテキストを参照してサフィックス部を復号することで符号化効率が向上するのは、具体的には、横長の分割が選択された状況において、2N×N、2N×nU、または2N×nDが連続して選択される場合である。例えば、2N×Nが選択された予測単位の次の予測単位において、2N×Nが選択されるような場合である。
一方、パーティションは、図6に示すようにエッジ境界をまたがないように設定される場合が多い。
すなわち、図6に示すように、傾斜を有するエッジE1が領域内に存在するとき、当該エッジE1をまたがないように、CU10およびC20のPU分割タイプが決定される。
より詳細には、CU10では、エッジE1は、領域の垂直方向中央寄りに存在し、CU20では、エッジE1が領域上方に存在する。
このように傾斜を有するエッジE1が領域内に存在する場合、CU10は、エッジE1をまたがないように、2N×NのPU分割タイプにより対称なPU11およびPU12分割される。
また、CU20は、エッジE1をまたがないように、2N×nUの分割タイプにより、非対称なPU21およびPU22に分割される。
このように、傾斜を有するエッジE1が、領域内に存在する場合、同一の形状のパーティションが連続して出現しないときがある。
このような場合は、2N×N、2N×nU、または2N×nDが連続して選択される場合に該当しない。このような場合には、コンテキストを用いなくても符号化効率が低下しない場合がある。
上記構成のように、プレフィックス部を規定の確率を仮定して上記情報を復号することで、符号化効率を維持しつつ、pred_typeの復号処理を簡略化することができる。
[作用・効果]
本発明は以下のように表現することもできる。すなわち、本発明の一態様に係る画像復号装置は、符号化単位を1以上の数に分割して得られる予測単位ごとに予測画像を生成して画像を復元する画像復号装置において、上記予測単位への分割タイプは、長方形の予測単位への分割を含み、上記長方形が縦長および横長のいずれであるかを示す符号と、上記長方形の種類を示す符号とを含む、上記長方形の予測単位への分割を特定するための符号のうち、上記長方形の種類を示す符号を、コンテキストを用いずに復号する復号手段を備える構成である。
よって、符号化効率を維持しつつ、コンテキストを参照しないことによる処理の簡略化を図ることができる。
なお、上記の例は、複数の長方形パーティションを含むPU分割に対応するPU分割タイプの集合であって、対称分割と非対称分割の分割タイプを共に含むPU分割タイプの集合において、何れかのPU分割タイプを選択するための情報を復号する際に、コンテキストを用いずに復号してもよい、と表現することもできる。
また、上記の例において、非対称パーティションの選択に係る情報に対応するbin列のうち、全てのbinの復号にコンテキストを用いないのではなく、一部のbinにコンテキストを用いてもよい。例えば、上述した図7の例では、8×8より大きいCUで長方形パーティションを含む分割が選択された場合、最大2桁のbinが複号される。このうち1桁目は対称分割か非対称分割かを示す情報である。2桁目は、1桁目が‘0’すなわち非対称分割であることを示す場合に複号されるbinであって、非対称分割における小さいPUと大きいPUの位置関係を表す。1桁目については、前述の図6に基づき説明した理由から同一の符号が連続しない場合もあるため、コンテキストを設定しないことが好ましい。一方、2桁目については、非対称パーティションが利用されるという前提条件が成立した状態において、小さいPUは局所的には片側の辺(例えば2桁目が2NxnUと2N×nDの選択情報を表す場合、上方側または下方側の何れか)に寄りやすい傾向があるため、コンテキストを設定することが好ましい。
[1−2]CU予測タイプ情報(pred_type)を復号する構成
CU予測モード復号部1011は、以下に示すように、二値化情報記憶部1012に記憶される二値化情報を参照してCU予測タイプ情報を復号するよう構成してもよい。
図7を用いて、二値化情報記憶部1012に記憶される二値化情報の構成例について説明する。図7は、CU予測タイプおよびPU分割タイプの組み合わせと、bin列との対応付けを定義する二値化情報の一例を示すテーブルである。
なお、図7では、例示的に、二値化情報を、bin列と、CU予測タイプ−PU分割タイプとを対応付けるテーブル形式にて示しているが、これに限られない。二値化情報は、PU分割タイプと、CU予測タイプとを導出するための導出式であってもかまわない。後に説明する二値化情報についても同様である。
また、二値化情報は、データとして記憶されていなければならないわけではなく、復号処理を行うプログラムのロジックとして実現されていてもかまわない。
図7に例示する対応付けテーブルBT1では、CU予測タイプおよびPU分割タイプと、CUサイズとに応じて、bin列が対応付けられている。
まず、CUサイズの定義について説明する。対応付けテーブルBT1では、CUサイズの定義として、CUサイズが8×8より大きい場合(CU>8×8)の非8×8CU1012Bと、CUサイズが8×8(CU==8×8)の場合の8×8CU1012Aの2種類の対応付けが定義されている。
なお、非8×8CU1012Bおよび8×8CU1012Aそれぞれにおいて対応付けられているbin列は、プレフィックス部(prefix)とサフィックス部(suffix)とから構成される。
また、対応付けテーブルBT1では、それぞれのCUサイズの定義について、CU予測タイプとして、前述のイントラCU(“Intra”と図示)およびインターCU(“Inter”と図示)の2系統が定義されている。さらに、それぞれのCU予測タイプに応じて、PU分割タイプが定義されている。
具体的には、以下のとおりである。まず、イントラCUの場合、2N×2NおよびN×Nの2種類のPU分割タイプについて定義されている。
2N×2Nについて説明すると次のとおりである。非8×8CU1012Bでは、プレフィックス部のみが定義されており、bin列は、“000”である。サフィックス部は、符号化されていない。また、8×8CU1012Aでは、プレフィックス部は、“000”であり、サフィックス部は、“0”である。
一方、N×Nについては、非8×8CU1012Bにのみ定義されている。この場合、プレフィックス部は、“000”であり、サフィックス部は、“1”である。
このように、イントラCUの場合は、サフィックス部については、“000”で共通である。
次に、インターCUの場合、2N×2N、2N×N、2N×nU、2N×nD、N×2N、nL×2N、nR×2Nの7つのPU分割タイプについて定義されている。
PU分割タイプが、2N×2Nのときは、非8×8CU1012Bおよび8×8CU1012Aのいずれにおいても、プレフィックス部のみが定義されており、bin列は、“1”である。
非8×8CU1012Bでは、水平方向の分割を行う横長パーティションのPU分割タイプ、2N×N、2N×nU、および、2N×nDについて、共通のプレフィックス部“01”が割り当てられている。
また、2N×N、2N×nU、および、2N×nDのサフィックス部は、それぞれ、“1”、“00”、および“01”である。
また、垂直方向の分割を行う縦長パーティションのPU分割タイプ、N×2N、nL×2N、および、nR×2Nについて、共通のプレフィックス部“001”が割り当てられている。
N×2N、nL×2N、および、nR×2Nのサフィックス部は、それぞれ、“1”、“00”、および“01”である。サフィックス部については、上述の水平方向の分割を行うPU分割タイプの場合と同様である。
つまり、横長パーティションおよび縦長パーティションの定義では、サフィックス部は、分割の種類を表している。すなわち、対称分割である場合、binは、“1”である。また、“00”は、分割の境界が対称分割のときよりも原点側にあることを示し、“01”は、分割の境界が対称分割のときよりも原点から遠い側にあることを示している。
続いて、8×8CU1012Aでは、2N×2N、2N×N、および、N×2Nについてプレフィックス部のみが定義されている。2N×2N、2N×N、および、N×2Nのプレフィックス部は、それぞれ、“1”、“01”、および、“001”である。
CU予測モード復号部1011は、上記の二値化情報に従った復号処理において、プレフィックス部およびサフィックス部の各bin位置に対して異なるコンテキストを用いてもよい。
プレフィックス部およびサフィックス部の各bin位置に対して異なるコンテキストを用いる場合、コンテキストは、以下の合計8個になる。
まず、プレフィックス部は、最大3ビットのbinが定義されているため、コンテキストの数は、3個である。
以下、サフィックス部については、まず、2N×2NおよびN×Nの場合、1個である。そして、横長パーティション(2N×N、2N×nU、および、2N×nD)の場合、2個であり、縦長パーティション(N×2N、nL×2N、および、nR×2N)の場合、2個である。
[1−3]小サイズのCUにおいて、イントラCUについて短い符号を復号する構成
CU予測モード復号部1011は、小サイズのCUにおいて、イントラCUについて短い符号を復号するよう構成してもよい。小サイズのCUとは、所定サイズ以下のサイズのCUであるが、以下では、例示的に、8×8サイズのCUとする。
[構成例1−3−1]
そこで、図8に示すように二値化情報記憶部1012に記憶される二値化情報を構成してもよい。図8は、二値化情報の定義である8×8CU1012Aの他の構成例を示している。すなわち、図8に示す8×8CU1012A_1は、図7に示す対応付けテーブルBT1に含まれる8×8CU1012Aの他の構成例である。
図8に示すように、二値化情報の定義である8×8CU1012A_1では、小サイズのCUである8×8サイズのCUにおいて、イントラCUに短い符号を割り当てる。
図8に示す8×8CU1012A_1では、大サイズのCUにおいてイントラCUに対して割り当てられている符号に比べて短い符号が割り当てられている(図7の非8×8CU1012Bを参照)。なお、大サイズのCUとは、小サイズのCUでないCUのことであり、具体的には、サイズが8×8より大きいCUのことを意味する。
また、8×8CU1012A_1では、イントラCUに割り当てられている符号のほうが、インターCUに割り当てられている符号よりも短い。言い換えれば、同一サイズのCUにおいては、イントラCUでない他のPU分割タイプに比べて、イントラCUに短い符号が割り当てられる。
例えば、8×8CU1012A_1では、イントラCUには、1ビットの符号が割り当てられており、インターCUには、2ビットまたは3ビットの符号が割り当てられている。
インター予測が当たりにくい領域では、小さいCUのイントラ予測が用いられる傾向がある。そのため、小さいCUでは、イントラCUの使用率が高い。一方、図7に示す構成例では、イントラCUに長い符号が割り当てられている。これに対して、上記データ構成によれば、小さいサイズのイントラCUに短い符号が割り当てられるようにする。
これにより、インター予測が当たりにくい領域では、CU予測モード復号部1011は、小さいサイズのイントラCUについて、短い符号を復号する。これにより、符号化効率が向上するという効果を奏する。
なお、上記構成では、CU予測モード復号部1011は、大サイズのCUのプレフィックス部と、小サイズのCUのプレフィックス部とで、異なるコンテキストを設定することが好ましい。
そこで、コンテキスト記憶部1013において、大サイズのCUのプレフィックス部を復号するためのコンテキストである8×8CU prefix1013Aと、小サイズのCUのプレフィックス部を復号するためのコンテキストである非8×8CU prefix1013Bとが記憶されていてもよい。ここで、8×8CU prefix1013Aと、非8×8CU prefix1013Bとは異なるコンテキストである。
小サイズのCU(CU==8×8)と、大サイズのCU(CU>8×8)との間で、プレフィックス部の各binの意味が異なる。
例えば、プレフィックス部の1ビット目は、小サイズのCUでは、CU予測タイプが、イントラCUおよびインターCUのいずれであるかを示す情報であるのに対して、大サイズのCUでは、2N×2NのインターCUであるか、それとも、それ以外のインターCUであるかを示す情報である。
また、意味が異なるbinは、出現傾向が異なる。このため、大サイズのCUおよび小サイズのCU、双方のプレフィックス部に、同一のコンテキストを設定した場合、binの出現傾向が異なるため、符号化効率が低下するおそれがある。
上記構成によれば、出現傾向が異なるbinに合わせて、異なるコンテキストを設定することができるため、binの符号化効率を向上させることができる。
[構成例1−3−2]
また、図9に示すように二値化情報記憶部1012に記憶される二値化情報を構成してもよい。図9は、二値化情報の定義である8×8CU1012Aの別の構成例を示している。すなわち、図9に示す8×8CU1012A_2は、図7に示す対応付けテーブルBT1に含まれる8×8CU1012Aの別の構成例である。
図9に示す8×8CU1012A_2では、bin列が、フラグ(flag)、プレフィックス部およびサフィックス部の3つの部分から構成されている。
イントラCUの場合、フラグは、“1”であり、インターCUの場合、フラグは、“0”である。
また、イントラCUの場合、サフィックス部のみが定義されている。すなわち、PU分割タイプが、2N×2Nのときは、サフィックス部が“0”であり、N×Nのときは、サフィックス部が“1”である。
一方、インターCUの場合、プレフィックス部のみが定義されている。すなわち、2N×2N、2N×N、および、N×2Nのとき、それぞれ、“1”、“01”、および、“00”である。
図9に示す8×8CU1012A_2では、図8に示した8×8CU1012A_1と同様、大サイズのCUにおいてイントラCUに対して割り当てられている符号に比べて短い符号が割り当てられているとともに、イントラCUに割り当てられている符号のほうが、インターCUに割り当てられている符号よりも短い。
図9に示すように8×8CU1012A_2を構成することで、インター予測が当たりにくい領域では、CU予測モード復号部1011は、小さいサイズのイントラCUについて、短い符号を復号する。これにより、符号化効率が向上するという効果を奏する。
なお、上記構成では、フラグに、プレフィックス部およびサフィックス部に設定されているコンテキストとは別の独自のコンテキストを設定することが好ましい。また、プレフィックス部には、小サイズのCUおよび大サイズのCUの間で、同一のコンテキストを設定することが好ましい。
例えば、コンテキスト記憶部1013において、8×8CU prefix1013Aと、非8×8CU prefix1013Bとを統合した一つのコンテキストを記憶しておけばよい。
上記構成では、小サイズのCUのプレフィックス部と、大サイズのCUのプレフィックス部との間で、各binが、同じ意味となるよう設計されている。このため、両者の間で、同一のコンテキストを設定することで、binの符号化効率を向上させることができる。
[作用・効果]
本発明は以下のとおり表現することもできる。すなわち、本発明の一態様に係る画像復号装置は、符号化単位毎に、画像を復元するための情報を画像符号化データから復号して画像を復元する画像復号装置において、予測単位のサイズと符号化単位に適用される予測方式との組み合わせに割り当てられている符号について、所定サイズ以下のサイズの符号化単位に画面内予測の予測方式が適用される組み合わせに対して、該組み合わせ以外の組み合わせに割り当てられている符号より短い符号を復号する復号手段を備える構成である。
よって、所定サイズ以下のサイズの符号化単位において発生確率が高い組み合わせに短い符号を割り当てることができ、符号化効率が向上するという効果を奏する。
[1−4]近傍の予測パラメータに応じてbin列の解釈を変更する構成
CU予測モード復号部1011は、隣接領域に割り付けられている予測パラメータを参照して、bin列の解釈を変更するよう構成してもよい。
[構成例1−4−1]
そこで、図10に示すように二値化情報記憶部1012に記憶される二値化情報を構成してもよい。
図10は、二値化情報記憶部1012に記憶される二値化情報のさらに別の構成例を示す図である。
図10に示す二値化情報対応付けテーブルBT20では、図7に示す8×8CU1012Aを、インターCUの定義(1012D)およびイントラCUの定義(1012C)に置き換えることで、隣接領域の予測パラメータの値に応じて、bin列の解釈が変わるように構成されている。
具体的には、対応付けテーブルBT20では、小サイズのCUについての定義において、隣接CUの少なくとも一方がインターCUの場合における二値化情報の定義であるインターCU1012Dと、隣接CUが共にイントラCUの場合における二値化情報の定義であるイントラCU1012Cとの間で、bin列の解釈が変わるように構成されている。
インターCU1012D(隣接CUの少なくとも一方がインターCUの場合)では、プレフィックス部のbin列が“000”のとき、対象CUがイントラCU(2N×2NまたはN×N)であると解釈し、プレフィックス部のbin列が“1”のとき、対象CUがインターCUの2N×2Nであると解釈する。
一方、イントラCU1012C(隣接CUが共にイントラCUの場合)では、プレフィックス部のbin列が“1”であるとき、対象CUがイントラCU(2N×2NまたはN×N)であると解釈し、プレフィックス部のbin列が“000”のとき、対象CUがインターCUの2N×2Nであると解釈する。
近傍のCUが、イントラCUである場合、空間相関性により、対象CUもイントラCUである可能性が高い。よって、近傍のCUがイントラCUである場合に、イントラCUに対して、短い符号に割り当てることで、符号量を削減することができる。
また、小サイズのCUでは、イントラCUの発生頻度が高くなる。このため、小さいサイズのCUにおいて、イントラCUに対して短い符号に割り当てることで、符号化効率のより一層の向上を図ることができる。
これに対して、小サイズのCUでないCU(例えば、大サイズのCU)では、図10に示すように、“隣接CUが共にイントラの場合、イントラCUに対して短い符号に割り当てる”構成でなくてもかまわない。どのサイズのCUにおいて、“隣接CUが共にイントラの場合、イントラCUに対して短い符号に割り当てる”構成を適用するかは、イントラCUの発生頻度に応じて決定することができる。一般には、小さいサイズのCUほどイントラCUの選択率が高い傾向があるため、最小サイズのCUを含め、所定の大きさ(例えば16×16)以下のサイズのCUでイントラCUに対して短い符号を割り当てる構成とすることが好ましい。上記構成によれば、近傍のCUがイントラCUである場合、CU予測モード復号部1011が、イントラCU1012Cを参照し、イントラCUに対して、短い符号に割り当てる。一方、近傍のCUにインターCUが含まれている場合、CU予測モード復号部1011が、インターCU1012Dを参照し、インターCUに対して、短い符号に割り当てる。その結果、符号量を削減し、符号化効率の向上を図ることができる。
[構成例1−4−2]
また、図11に示すように二値化情報記憶部1012に記憶される二値化情報を構成してもよい。
図11は、二値化情報記憶部1012に記憶される二値化情報のさらに別の構成例を示す図である。
図11に示す二値化情報対応付けテーブルBT30では、図7に示す非8×8CU1012Bを、『上CUのサイズが対象CU以上』の定義(1012B_1)および『上CUのサイズが対象CUより小さい』の定義(1012B_2)に置き換えることで、隣接領域の予測パラメータの値に応じて、bin列の解釈が変わるように構成されている。
すなわち、対応付けテーブルBT30では、大サイズのCUについての定義において、上隣接CUが対象CU以上のサイズである場合と、上隣接CUが対象サイズより小さい場合との間で、bin列の解釈が変わるように構成されている。
『上CUのサイズが対象CU以上』1012B_1(上隣接CUが対象CU以上のサイズである場合)では、プレフィックス部のbin列が“001”のとき、対象CUが縦長パーティションであると解釈し、プレフィックス部のbin列が“01”のとき、対象CUが横長パーティションであると解釈する。
一方、『上CUのサイズが対象CUより小さい』1012B_2(上隣接CUが対象CUより小さいサイズである場合)では、プレフィックス部のbin列が“01”のとき、対象CUが縦長パーティションであると解釈し、プレフィックス部のbin列が“001”のとき、対象CUが横長パーティションであると解釈する。
隣接CUのサイズが対象CUより小さい場合、当該隣接CU内にエッジが存在する可能性が高い。
従って、このような場合、対象CUは、隣接CUとの境界にあたる辺と垂直な方向にパーティション分割される可能性が高い。このため、上隣接CUが対象CUより小さいサイズである場合、縦長パーティションが選択される可能性が高い。
よって、上隣接CUが対象CUより小さいサイズである場合、選択される可能性が高い縦長パーティションに短い符号を割り当てることで符号化効率を向上させることができる。
上記構成によれば、上隣接CUが対象CUより小さいサイズである場合、CU予測モード復号部1011が、『上CUのサイズが対象CUより小さい』1012B_2を参照し、縦長パーティションに短い符号を割り当てる。
一方、上隣接CUが対象CU以上のサイズである場合、CU予測モード復号部1011が、『上CUのサイズが対象CU以上』1012B_1を参照し、横長パーティションに短い符号を割り当てる。その結果、符号量を削減し、符号化効率の向上を図ることができる。
さらにいえば、隣接CUに基づくプレフィックス部の解釈に依存せず、サフィックス部の解釈が同じであることが好ましい。対応付けテーブルBT30では、プレフィックス部が、縦長パーティションか、横長パーティションかに依存せず、同一のサフィックス部の解釈は同じである。すなわち、対応付けテーブルBT30の例では、プレフィックス部が、縦長パーティションか、横長パーティションかに応じて、サフィックス部の復号処理を変更しなくてもかまわない。
すなわち、対応付けテーブルBT30では、PU分割タイプ(分割数)が、参照するパラメータに依存しないように構成されている。
分割数が、参照するパラメータの値に依存しないため、参照パラメータにエラーが生じている場合でも、以降の可変長復号処理への影響が少ない。具体的には、隣接CUのサイズに誤りがあり、プレフィックス部が縦長と横長何れのパーティションを示すかの解釈が誤った場合でも、サフィックス部を含め、後続のシンタックスの復号を継続できる。
すなわち、隣接CUのサイズによらずサフィックス部の復号処理が可能となるため、隣接パラメータのエラーに影響されなくなりエラー耐性が向上する。
なお、左隣接CUが対象CUより小さいサイズである場合、横長パーティションが選択される可能性が高い。よって、左隣接CUが対象CUより小さいサイズである場合、選択されやすい横長パーティションに短い符号を割り当てるようにしてもよい。これにより上記と同様の効果を得る事ができる。
また、最小サイズのCUに対しては、隣接CUのサイズに基づく解釈の切り替え処理を行わないことが好ましい。対象CUが最小サイズのCUである場合、常に対象CUは、隣接CU以下のサイズであるため、解釈の切り替え処理を省略することで、復号処理を簡略化することができる。
なお、上隣接CUのサイズが対象CUのサイズより小さいとは、対象CUの上辺(頂点を除く)において、当該上辺に対して垂直な位置関係にあるCU境界が存在するとも言える。
よって、対象CUの上辺(頂点を除く)において、当該上辺に対して垂直な位置関係にあるCU境界またはPU境界が存在する場合、縦長パーティションに短い符号を割り当ててもよい。
また、以上では、対象CUに隣接する隣接CUについて説明したがこれに限られない。空間相関性が認められる程度に近傍に位置するCUについても同様のことがいえる。
以上の構成を、より一般化して言えば次のとおりである。すなわち、以上の構成は、複数のバイナリ列と、複数の対応する分割数が互いに等しいpred_typeについて、隣接の予測パラメータに応じてpred_typeの発生可能性の優先順位を決定し、優先順位の高いpred_typeほど短いバイナリ列に関連付けるものである。
なお、上記説明における、上側隣接CUのサイズが対象CUのサイズより小さい、という条件は、次のように表現することもできる。
(1)対象CU内の左上画素を(xc,yc)とする。
(2)上側隣接CUとして、(xc,yc-1)を含むCUを導出して、当該上側隣接CUの左上画素を(xu,yu)とする。
(3)「log2CUSize[xu][yu] < log2CUSize[xc][yc] 」が成り立つならば、上側隣接CUのサイズが対象CUのサイズより小さいと判定する。ここで、log2CUSize[x][y]は、(x,y)の画素を左上画素とするCUのサイズの2を底とする対数値である。
ここで、上記のように対象CUの左上画素の上に位置するCUのサイズのみを対象CUのサイズと比較して判定することが好ましい。
以上では、上側隣接CUの場合について記載したが、左側隣接CUのサイズを判定する場合にも、対象CUの左上画素の左に位置するCUのサイズのみを対象CUのサイズと比較して判定することが好ましい。
なお、上記判定手順の(3)ではCUのサイズの値を直接比較する例を挙げたが、CUのサイズと関連付けられた別の値を比較してもよい。例えば、上記(3)の条件は、ツリーブロック(LCU)を何回分割するかに対応するCU分割深度(cuDepth[x][y])の値を用いて、「cuDepth[xu][yu] > cuDepth[xc][yc]」という式により判定してもよい。
[作用・効果]
本発明は以下のように表現することもできる。すなわち、本発明の一態様に係る画像復号装置は、符号化単位を1以上の数に分割して得られる予測単位ごとに予測画像を生成して画像を復元する画像復号装置において、復号対象となる上記符号化単位である対象符号化単位を上記予測単位へ分割するタイプである分割タイプと予測方式との複数の組に対して対応付けられる複数の符号を、復号の対象となる上記予測単位である対象予測単位の近傍の復号済み予測単位に割り付けられている復号済みパラメータに応じて変更する変更手段を備える構成である。
よって、近傍の復号済み予測単位に割り付けられている復号済みパラメータに応じて、より発生確率が高い予測方式および分割タイプの組に、より短い符号を割り当てることができ、これにより符号化効率を向上させることができる。
(2)PU情報復号部の詳細
次に、図12を用いて、PU情報復号部12および復号モジュール10の構成例について説明する。図12は、動画像復号装置1において、動き情報を復号するための構成、すなわちPU情報復号部12および復号モジュール10の構成について例示する機能ブロック図である。
以下、PU情報復号部12および復号モジュール10の順で、各部の構成について説明する。
(PU情報復号部)
図12に示すように、PU情報復号部12は、動き補償パラメータ導出部(双予測制限手段、候補決定手段、推定手段)121、マージ候補優先順位情報記憶部122、および参照フレーム設定情報記憶部123を備える。
動き補償パラメータ導出部121は、符号化データから対象CUに含まれる各PUの動き補償パラメータを導出する。
動き補償パラメータ導出部121は、具体的には、以下の手順にて、動き補償パラメータを導出する。ここで、対象CUがスキップCUである場合に、マージインデックスの代わりに、スキップインデックスを復号し、その値に基づいてスキップCUにおける予測パラメータを導出してもよい。
まず、動き補償パラメータ導出部121は、スキップフラグを判定する。その結果、対象CUが非スキップCUであれば、動き情報復号部1021を用いて、マージフラグを復号する。
ここで、対象CUが、スキップCUまたはマージPUである場合、動き補償パラメータ導出部121は、マージインデックスを復号して、復号したマージインデックスの値に基づいて予測パラメータ(動きベクトル、参照画像インデックス、インター予測フラグ)を導出する。なお、動き補償パラメータ導出部121は、マージ候補優先順位情報記憶部122に記憶されているマージ候補情報に従って、マージインデックスで指定されるマージ候補を決定する。
一方、対象CUが、スキップCUおよびマージPUのいずれでもない場合、動き補償パラメータ導出部121は、予測パラメータ(インター予測フラグ、参照画像インデックス、動きベクトル差分、推定動きベクトルインデックス)を復号する。
さらに、動き補償パラメータ導出部121は、推定動きベクトルインデックスの値に基づいて、推定動きベクトルを導出するとともに、動きベクトル差分と推定動きベクトルとに基づいて動きベクトルを導出する。
マージ候補優先順位情報記憶部122には、いずれの領域をマージ候補とするかを示す情報およびマージ候補の優先順位を示す情報を含むマージ候補情報が記憶されている。
参照フレーム設定情報記憶部123には、1枚の参照画像を参照する単予測、及び、2枚の参照画像を参照する双予測の何れの画面間予測の予測方式を用いるかを決定するための参照フレーム設定情報が記憶されている。
(復号モジュール)
図12に示すように、復号モジュール10は、動き情報復号部1021を備える。動き情報復号部1021は、動き補償パラメータ導出部121から供給される符号化データおよびシンタックス種別に応じて、符号化データに含まれるバイナリからシンタックス値の復号を行う。動き情報復号部1021が復号する動き補償パラメータは、マージフラグ(merge_flag)、マージインデックス(merge_idx)、推定動きベクトルインデックス(mvp_idx)、参照画像インデックス(ref_idx)、インター予測フラグ(inter_pred_flag)、動きベクトル差分(mvd)である。
[マージPUにおいて予測パラメータを導出するための構成例]
[2−1]マージ候補の位置および優先順位の例
図13〜図15を用いて、マージPUにおける予測パラメータ導出について説明する。
動き補償パラメータ導出部121は、PU分割タイプが非対称である場合、PU分割タイプが対称である場合と異なる方法でマージ候補の優先順位を決定する構成であってもよい。
まず、非対称パーティションの特性について説明する。非対称パーティションでは、小さい方のパーティションに、長辺方向のエッジが存在する可能性が高い。また、エッジが存在する領域は、正確な動きベクトルが導出されている可能性が高い。
図13を用いて、具体的に説明すると次のとおりである。図13は、非対称パーティションが選択されたCUを示している。図13に示すように、対象CU30では、傾斜を有するエッジE1が領域内に存在し、2N×nUのPU分割タイプが選択されている。
対象CUには、PU31とPU32とが含まれる。ここで、対象PUをPU31とする。傾斜を有するエッジE1が、対象PU31の領域内を横断している。
図13に示す例では、対象PU31の短辺側付近の領域R10にも、対象PU31の領域内に存在するエッジと同じエッジが存在する可能性が高い。従って、対象PU31と同じ動きベクトル(mv)が割り付けられている可能性が高い。
従って、エッジが存在する可能性の高い領域、すなわち小さいパーティションでは、短辺側の領域に割り付けられている動きベクトルを参照し、大きいパーティションでは、小さいパーティションの周辺の領域に割り付けられている動きベクトルを参照することで、動きベクトルの精度を高めることができる。
そこで、マージ候補優先順位情報記憶部122において記憶されているマージ候補優先順位情報を、対称PU分割タイプ122Aおよび非対称PU分割タイプ122Bの2つのマージ候補優先順位情報を含む構成とする。
図14を用いて、対称PU分割タイプ122Aのマージ候補優先順位情報について説明すると次のとおりである。
図14は、対称パーティションが選択されたCUを示している。図14に示すように、対称CUでは、2N×NのPU分割タイプが選択されている。また、同図では、対象PUを、“Curr PU”にて示している。対象PUでは、マージ候補として、左(L)、上(U)、右上(UR)、左下(BL)、左上(UL)の順に優先順位が割り当てられている。
また、図15を用いて、非対称PU分割タイプ122Bのマージ候補優先順位情報について説明すると次のとおりである。図15の(a)および(b)は、それぞれ、2N×nUの小さい方のパーティション、および、2N×nUの大きい方のパーティションにおける優先順位の設定について示している。また、図15の(c)および(d)は、それぞれ、2N×nDの大きい方のパーティション、および、2N×nDの小さい方のパーティションにおける優先順位の設定について示している。
図15の(a)および(d)に示すように、非対称パーティション内の小さい方のパーティションでは、短辺側のマージ候補に高い優先順位を割り当てる。
具体的には、2N×nUおよび2N×nDの小さい方のPUでは、それぞれ(a)および(d)に示すように、短辺に、隣接(L)、頂点に隣接(UR、BL、UL)、長辺に隣接(U)の順に優先順位が割り当てられている。
また、図15の(b)および(c)に示すように、非対称パーティション内の大きい方のパーティションでは、小さい方のパーティションに近い位置のマージ候補に高い優先順位を割り当てる。
具体的には、2N×nUの大きい方のPUでは、図15の(b)に示すように、小さい方のPU内におけるマージ候補(U)、小さい方のPUに近いマージ候補(UR、UL)、それ以外のマージ候補(L、BL)の順に優先度が割り当てられている。
また、2N×nDの大きい方のPUでは、図15の(c)に示すように、小さい方のPUに近いマージ候補(L、BL)それ以外のマージ候補(U、BL、UL)の順に優先順位が割り当てられている。
なお、優先順位の高い候補に対して小さいマージインデックスを割り当て、小さいマージインデックスに短い符号を割り当てる。また、優先順位の高い候補のみを選択可能なマージ候補としてもよい。
なお、上記の説明は、マージPUにおける予測パラメータ導出について記載したが、同様の導出方法をインターCU内の非マージPUにおいて動きベクトルの復元に用いる推定動きベクトルの導出に用いても良い。一般的には、非対称PU内の各PUにおいて、隣接領域に対応する動きパラメータの推定値または予測値を導出する際に、上記方式が適応できる。
[作用・効果]
本発明は以下のように表現することもできる。すなわち、本発明の一態様に係る画像復号装置は、符号化単位を1以上の数に分割して得られる予測単位ごとに画面間予測の予測方式によって予測画像を生成して画像を復元する画像復号装置において、上記予測単位への分割タイプは、符号化単位を複数の異なる大きさの予測単位に分割する非対称分割または符号化単位を複数の同一の大きさの予測単位に分割する対称分割を含み、上記分割タイプが非対称分割である場合、上記分割タイプが対称分割である場合と異なる推定方法によって、画面間予測の予測パラメータの推定を行う推定手段を備える構成である。
よって、分割タイプが非対称分割である場合と、上記分割タイプが対称分割である場合とで異なる推定方法を変更することで、分割タイプに応じた好ましい推定方法により画面間予測の予測パラメータの推定を行うことができるという効果を奏する。
[2−2]CUサイズとスキップ/マージとの組み合わせによるマージ候補の変更
動き補償パラメータ導出部121は、CUサイズと、当該CUがスキップ/マージを行うCUであるか否かとの組み合わせに応じてマージ候補を変更する構成であってもよい。そこで、マージ候補優先順位情報記憶部122に記憶されるマージ候補情報を、小PUサイズ122Cおよび大PUサイズ122Dの2つの定義情報を含む構成とする。
小PUサイズ122Cのマージ候補情報は、小サイズのPUに適用されるマージ候補数を定義する。また、大PUサイズ122Dのマージ情報は、大サイズのPUに適用されるマージ候補数を定義する。
一例としては、マージ候補情報において、小PUサイズ122Cに定義されるマージ候補数(小サイズのPUのマージ候補数)が、大PUサイズ122Dに定義されるマージ候補数(大サイズのPUのマージ候補数)に比べて少なくなるよう定義する。
小サイズのPUが選択される領域では、動きが複雑な場合が多い。このため、近傍のPUに割り付けられる動きベクトルの相関が小さくなる傾向がある。
このため、マージ候補を増やしても大サイズのPUの場合に比べて推定精度の向上が少ない場合がある。
よって、マージ候補数を少なくすることにより、サイド情報の符号量を削減するほうが好ましい。
上記例では、マージ候補情報において、動きが複雑な場合が多い小サイズのPUのマージ候補数を大サイズのPUのマージ候補数に比べて少なくするため、サイド情報の符号量を削減することができる。
小サイズPUと大サイズPUの組み合わせの例について列挙すると以下の通りである。
・小サイズPUは少なくとも一辺が所定の閾値(例えば8)より小さいPUであり、大サイズPUはそれ以外のPUである。例えば、16×4、4×16、8×4、4×8、4×4のサイズのPUは小サイズPUであり、8×8、16×16のサイズのPUが大サイズPUとなる。
・小サイズPUは面積が所定の閾値(例えば64)より小さいPUであり、大サイズPUはそれ以外のPUである。例えば、8×4、4×8、4×4のサイズのPUは小サイズPUであり、8×8、16×4、4×16、16×16等のサイズのPUが大サイズPUとなる。
・小サイズPUは所定のサイズ(例えば8×8)以下のCUに含まれるPUであり、大サイズPUはそれより大きいCUに含まれるPUである。例えば、8×8CUに含まれる8×8、8×4、4×8、4×4のサイズのPUは小サイズPUである。
・小サイズPUは、非対称分割が適応されるCUにおいて、小さい方のPUであり、大サイズPUは、非対称分割が適応されるCUにおいて、大きい方のPUである。
また、他の例としては、マージ候補情報において、小さいPUでは、時間予測によるマージ候補の数を、大きいPUにおける時間予測によるマージ候補の数に比べて少なくすることが好ましい。小さいPUでは、マージ候補情報において時間予測によるマージ候補を含めないように定義してもよい。
また、小サイズのPUが選択されるような、動きが複雑な領域では、時間予測に使用されるcollocated PUと、対象PUとの相関が小さいため、時間予測が選択される可能性が低い。よって、時間予測によるマージ候補の数を減らす、または、時間予測によるマージ候補を含めないことが好ましい。
[作用・効果]
本発明は以下のように表現することもできる。すなわち、本発明の一態様に係る画像復号装置は、符号化単位を1以上の数に分割して得られる予測単位ごとに画面間予測の予測方式によって予測画像を生成して画像を復元する画像復号装置において、復号の対象となる上記予測単位である対象予測単位が、該対象予測単位の近傍の領域に割り付けられている予測パラメータから、該対象予測単位の予測パラメータの推定を行う予測単位である場合、該対象予測単位のサイズに応じて、推定に用いる領域の候補を決定する候補決定手段を備える構成である。
よって、候補数を削減することによりサイド情報を削減することができ、その結果、符号化効率を向上させることができる。
[2−3]参照フレーム数の決定
動き補償パラメータ導出部121を、以下の[2−3−1]〜[2−3−4]に示すように構成してもよく、これによりインター予測において単予測および双予測のいずれの予測方式を適用するかを決定してもよい。
[2−3−1]小サイズPUでの双予測制限
動き補償パラメータ導出部121は、参照フレーム設定情報記憶部123に記憶される参照フレーム設定情報を参照して、インター予測において単予測および双予測のいずれの予測方式を適用するかを決定してもよい。
動き補償パラメータ導出部121は、小サイズのPUでは、双予測を制限する構成であってもよい。そこで、参照フレーム設定情報を、小PUサイズ123Aおよび大PUサイズ123Bの2つの定義情報を含む構成とする。
大PUサイズ123Bは、大きいサイズのPUにおいて選択可能な予測方式が定義される。大PUサイズ123Bでは、大きいサイズのPUにおいて双予測および単予測いずれの予測方式も制限なく選択できるよう定義される。
小PUサイズ123Aは、小さいサイズのPUにおいて選択可能な予測方式が定義される。小PUサイズ123Aでは、小さいサイズのPUにおいて双予測が制限されるよう定義される。
小PUサイズ123Aの定義の一例としては、インターCUに含まれる、マージを適用しないPUであって、サイズが16×16未満のPUにおいて、インター予測フラグの復号を省略して単予測を適用する旨定義する。
また、小PUサイズ123Aの定義の他の例としては、インターCUに含まれる、マージを適用するPUであって、サイズが16×16未満のPUにおいて、単予測を適用する旨定義する。
また、小PUサイズ123Aの定義の別の例としては、スキップCUに含まれる各PUにおいて単予測を適用する。
また、小PUサイズ123Aの定義のさらに別の例としては、インターCUに含まれる、マージを適用しないPUであって、サイズが16×16未満のPUにおいて、重み付け予測を適用しない。すなわち、重み付け予測に関する情報を省略する。
以下、参照フレーム設定情報に基づき双予測を制限する場合に関し、シンタックステーブル及びブロック図を用いて、さらに、符号化データの構成、及び、動画像復号装置の構成の詳細を説明する。
(双予測制限の種類)
PUの種類には、対象CUがスキップであるPU(スキップPU)、対象PUがマージを適応するPU(マージPU)、対象PUがスキップでもマージでもないPU(基本インターPU、または、非動き情報省略PU)がある。基本インターPUでは、双予測であるか単予測であるかを示すインター予測フラグを符号化データから復号し、動き補償パラメータを導出する。それに対して、スキップPU及びマージPUでは、インター予測フラグを復号せずに動き補償パラメータを導出する。これらのPUでは、スキップ候補、または、マージ候補から、動き補償に用いる候補をスキップインデックスまたはマージインデックスに基づき選択し、当該選択候補における動き補償パラメータに基づいて、対象PUにおける動き補償パラメータを導出する。通常、スキップPUの動き補償パラメータの導出方法は、マージPUと同様である。なお、シーケンスパラメータセットのフラグなどを用いてマージの利用を制限する場合には、動きベクトル残差(mvd)を復号しない点を除き、基本インターPUと同一の方法を用いてもよい。この場合、スキップPUの双予測制限の動作は、基本インターPUと同じ動作を行う。
図35の(a)は、各PUにおける双予測制限の例を示す。場合としては、基本インターPUのみに双予測制限を行う場合と、動き補償予測を適用する全PUに双予測制限を行う場合がある。基本インターPUのみに双予測制限を行う場合には、スキップPU及びマージPUでは双予測制限を行わず、基本インターPUのみに双予測制限を行う。基本インターPUのみに双予測制限を行う場合にも、全PUに双予測制限を行う場合にも、動画像符号化装置および動画像復号装置における処理量の低減と回路規模の削減が可能である。
図35の(b)は、各PUにおける双予測制限の方法を示す。スキップPU及びマージPUの場合には、スキップ候補またはマージ候補に基づく動き補償パラメータ導出において双予測を行わないことを示す情報を導出することによって、双予測制限を行う。具体的には、動き補償パラメータ導出部で後述するように、動き補償パラメータに含まれるインター予測フラグの値を双予測から単予測に変換することで双予測制限を行う。基本インターPUに対して双予測制限を行う場合には、PUサイズ情報に応じて双予測制限の適用有無を判定する。双予測制限を適用しない場合にはインター予測フラグの復号を行う。また、双予測制限を適用する場合にはインター予測フラグの復号を省略するとともに、さらにインター予測フラグの値を単予測と推定する処理を行う。
ここで、PUサイズ情報とは、小さなPUであるか否かを判定するための情報であり、対象CUのサイズとPU分割タイプ、もしくは、対象CUのサイズとPU分割数、もしくは、PUの幅もしくは高さ、もしくはPUの面積などを用いることができる。
スキップPU及びマージPUと、基本インターPUは、動き補償パラメータの復号方法だけでなく用いられる場面も異なる。スキップPUとマージPUは、選択可能な動き補償パラメータを制限することによって符号量の低減を行う。このようなPUでは、動きが一様であるような領域で主に用いられる。動きが一様である場合には、2つの予測画像が近く双予測によるノイズ除去効果が大きいことが多い。そのため、基本インターPUの双予測制限に比べると、スキップPU及びマージPUでは、基本インターPUと比較して双予測制限により符号化効率が低下する場合が生じやすい。そのため、上述のように基本インターPUのみで双予測を用いる制限や、後述のように、基本インターPUと、スキップPUおよびマージPUで制限するPUサイズを変更する方法も好適である。また、基本インターPUでの双予測制限は、符号化データの構造の観点からみると、インター予測フラグを符号化しないことによる符号量低減効果があるためにより有効である。
(PUの動き補償パラメータ)
PUの動き補償パラメータは、予測リスト利用フラグpredFlagL0およびpredFlagL1と、参照インデックス番号refIdxL0およびrefIdxL1と動きベクトルmvL0およびmvL1と、で表現される。予測リスト利用フラグpredFlagL0、predFlagL1は、参照予測リストが用いられるか否かを示す。以下、利用する場合を1、利用しない場合を0で示す。2つの参照予測リストを用いる場合、predFlagL0=1, predFlagL1=1の場合が双予測に対応し、1つの参照予測リストを用いる場合、すなわち(predFlagL0, predFlagL1) = (1, 0)もしくは(predFlagL0, predFlagL1) = (0, 1)の場合が単予測に対応する。なお、双予測であるか否かは、後述のインター予測フラグで表現することもでき、符号化データから、参照ピクチャの数が1(単予測)か2(双予測)かの情報を復号する場合にはこちらが用いられる。
予測リスト利用フラグpredFlagL0が1の場合には、参照インデックス番号refIdxL0によってL0リストの参照ピクチャを指定し、動きベクトルmvL0によって指定された参照ピクチャに対する動きベクトルを指定する。
予測リスト利用フラグpredFlagL1が1の場合には、参照インデックス番号refIdxL1によってL1リストの参照ピクチャを指定し、動きベクトルmvL1によって指定された参照ピクチャに対する動きベクトルを指定する。
なお、リストXを使用しない場合(Xは0もしくは1)、すなわち、予測リスト利用フラグpredFlagLXが0の場合には、基本的には参照インデックス番号refIdxLXの値を-1、動きベクトルmvL1の値を(0, 0)とする。
(インター予測フラグの詳細)
ここでは、インター予測フラグの詳細を説明する。インター予測フラグinter_pred_flagは、単予測であるか双予測であるかを示す2値フラグである場合の他、単予測において参照する参照画像のリスト(参照リスト)を複数の参照リストの中から選択する情報を含む場合がある。例えば、2種類の参照リスト(L0リストとL1リスト)のいずれかを選択するフラグを含む3値フラグとしてインター予測フラグが定義されていてもよい。以下、各々の場合を説明する。
復号モジュール10では、スライスヘッダ等から参照フレームリストとしてL0、L1リストを用いるか、コンバインドリスト(LCリスト)を用いるかを選択するコンバインドリストフラグref_pic_list_combination_flagを復号する。単予測の場合の参照フレーム決定方法は、コンバインドリストフラグの値に応じて異なる。コンバインドリストフラグが1の場合には、単予測の参照フレームの指定に用いる参照リストとしてコンバインドリストLCを用い、各PUにおいて参照リストを指定するためのフラグは不要である。そのためインター予測フラグinter_pred_flagは2値フラグで良い。コンバインドリストフラグが0の場合には、各PUにおいて、参照リストをL0リストもしくはL1リストから選択する必要がある、そのためインター予測フラグinter_pred_flagは3値フラグとなる。
図32の(a)は、2値フラグである場合のインター予測フラグの意味を示し、図32の(b)は、3値フラグである場合のインター予測フラグの意味を示す。
(双予測制限におけるシンタックステーブル例)
図31は、従来技術におけるPUのシンタックステーブルの例であり双予測制限を行わない場合の符号化データの構成を示す。図33は、PUのシンタックステーブルの例であり、(a)および(b)は各々双予測制限を行う場合の符号化データの構成の特にインター予測フラグinter_pred_flagの部分を示す。図33の(a)は、インター予測フラグが常に2値フラグである場合のシンタックステーブルの例である。この場合、inter_pred_flagにより単予測を意味するPred_LCと、双予測を意味するPred_Biの2つを区別する。スライスがBスライスでかつ双予測が有効である場合(DisableBiPred = false)には、単予測と双予測を区別するために符号化データは、インター予測フラグinter_pred_flagを含み、双予測が有効ではない場合(DisableBiPred = true)には、常に単予測であるからインター予測フラグinter_pred_flagを含まない。
図33の(b)は、インター予測フラグが3値フラグである場合のシンタックステーブルの例である。コンバインドリストを利用する場合にはinter_pred_flagによりLCリストの参照フレームを1つ用いる単予測を意味するPred_LCと、双予測を意味するPred_Biの2つを区別するが、そうでない場合には、L1リストの単予測を意味するPred_L1、L1リストの単予測を意味するPred_L2と、双予測を意味するPred_Biの3つを区別する。スライスがBスライスでかつ双予測が有効である場合(DisableBiPred = false)には、符号化データは単予測と双予測を指定するために第1のインター予測フラグinter_pred_flag0を含み、双予測が有効ではない場合には、コンバインドリストを用いない場合に限り、符号化データは、参照リストを指定するための単予測と双予測を指定するために第2のインター予測フラグinter_pred_flag1を含む。コンバインドリストを用いない場合とは詳細には図33の(a)に示すように!UsePredRefLC && !NoBackPredFlagにより判定する。すなわち、コンバインドリストを使用するか否かを指定するフラグUsePredRefLC(UsePredRefLCの値が真の場合にコンバインドリストを使用することを示す)と、後方向予測を用いるか否かを示すフラグNoBackPredFlag(NoBackPredFlagの値が真の場合に後方向予測を用いないことを示す)により指定される。コンバインドリストを利用する場合には、リスト選択をせずともコンバインドリストであることが分かる。後方向予測を用いない場合にはPred_L1を禁止することであるから、第2のインター予測フラグinter_pred_flag1を符号化しない場合にも使用するリストが、コンバインドリストであるか(Pred_LC)、L0リストであるかPred_L0が分かる。なお、NoBackPredFlagの代わりにL1リストを用いないという意味でNoL1PredFlagという表現を用いることもできる。
双予測制限を行うか否か、もしくは、双予測制限を行う場合のPUサイズの判定に用いる閾値を符号化データに含めても構わない。図34は、双予測制限に関するシンタックステーブルの例である。図34の(a)は、シーケンスパラメータセットが双予測制限をするか否かを制限するフラグdisable_bipred_in_small_PUを含む場合を示す。図に示すように、双予測制限のフラグは、小サイズのPU(ここでは4x4サイズのPU)を禁止するフラグdisable_inter_4x4と独立に符号化しても良い。なお、小サイズのPUを禁止するフラグの目的も、双予測制限と同じく、PU予測画像を生成する場合における最悪の処理量の低減であるから、小サイズのPUを禁止するフラグと小サイズの双予測を禁止するフラグを共通フラグとしても用いても良い。図34の(b)は、共通のフラグとして予測制約フラグuse_restricted_predictionを設ける例である。この場合には、予測制約フラグがtrueの場合には、小サイズのPUの適用と小サイズPUにおける双予測を同時に禁止する。図34の(c)は、双予測を禁止するPUのサイズを示すdisable_bipred_sizeを符号化データに含める例である。disable_bipred_sizeとしては双予測制限の判定方法で後述する閾値THの2を底とする対数の値等を用いることなどができる。なお、これらのフラグは、シーケンスパラメータセット以外のパラメータセットで符号化しても構わないし、スライスヘッダで符号化しても構わない。
以上において、CABACの場合のシンタックスについて説明したが、続いて、CAVLCの場合のシンタックスについて説明する。上述のとおり図33はCABACの場合のシンタックステーブルである。それに対し図36はCAVLCの場合を含むシンタックステーブルである。図36中のcombined_inter_pred_ref_idxは、インター予測フラグinter_pred_flagと参照ピクチャインデックス(ref_idx_l0、ref_idx_lc、ref_idx_l1)を結合したフラグである。図36に示すように、符号化モード情報(entropy_coding_mode_flag)が0、すなわちCAVLCの場合には、インター予測フラグinter_pred_flagと参照ピクチャインデックスを別々に符号化、復号するのではなく、結合フラグであるcombined_inter_pred_ref_idxを符号化する。従って、符号化データはcombined_inter_pred_ref_idxを含む。
さらに双予測が使用可能な場合(双予測制限を示すフラグDisableBipredがfalseである場合)で、かつcombined_inter_pred_ref_idxが所定の値MaxPredRef(後述)であれば、符号化データはインター予測フラグinter_pred_flagをさらに含む。DisableBipredは、PUサイズが小サイズである場合にtrueとする。図36のDisableBipredの導出方法は一例であり、この場合、4x4、4x8、8x4のPUサイズの場合にDisableBipred=trueとなる。
(結合インター予 測参照インデックス)
図37は、結合インター予測参照インデックスcombined_inter_pred_ref_idxを説明するための図である。図37の(a)、(b)、(c)は、combined_inter_pred_ref_idxの値の例を説明するための図である。図37の(d)は、combined_inter_pred_ref_idxの最大値MaxPredRefの導出方法を示すテーブルTBL37および擬似コードCODE37である。combined_inter_pred_ref_idxは、発生確率の高いインター予測フラグinter_pred_flagと参照ピクチャインデックスの組み合わせを短いビットで符号化するために用いられる。combined_inter_pred_ref_idxは、発生確率の高い参照ピクチャの組み合わせを要素にもつ参照リストLC(LCのCはcombinedの略)で管理される参照ピクチャを選択するために用いられるインデックスである。
図37の(a)、(c)の例では、combined_inter_pred_ref_idxの値の範囲は0から8(=MaxPredRef)である。図37の(c)に示す通り、0から7に発生しやすい組み合わせ(結合参照ピクチャセット)が割り当てられる。インター予測フラグinter_pred_flagと参照ピクチャインデックスの組み合わせがそれ以外の場合には、8(=MaxPredRef)が割り当てられる。図37の(d)に示す最大値MaxPredRefの導出方法については、後に説明する。
CAVLCでは、combined_inter_pred_ref_idxは、変換可変テーブルEncTableと呼ばれるテーブルでコード番号codeNumに変換され、コード番号codeNumがMaxPredRefを最大値としたtruncated unary codeで符号化される。すなわち、codeNum = EncTable[combined_inter_pred_ref_idx]が符号化される。truncated unary codeでは小さい値ほど短いビット数で符号化される。また最大値を明示的に用いることで無駄なビットなく符号化できる。なお、最大値cMaxの場合のtruncated unary codeによるコード番号(codeNum)の復号は次の擬似コードに規定される処理により実現できる。ここで、read_bits(1)は符号化データから1bitのバイナリを読み出してその値を返す関数である。
leadingZeroBits = -1
for( b = 0; !b && leadingZeroBits < cMax; leadingZeroBits++ )
b = read_bits( 1 )
codeNum = leadingZeroBits
図38の(a)および(b)に、それぞれ、変換可変テーブルEncTableと逆変換可変テーブルDecTableの例を示す。図38の(a)の例に示されるように、変換可変テーブルEncTableを用いることにより、結合参照ピクチャセットの中で、さらに、発生しやすい組み合わせに小さい値が割り振られ、短い符号長で符号化される。変換可変テーブル及び逆変換可変テーブルは、1つのcombined_inter_pred_ref_idxを符号化、復号する度に、発生した値が短いコード番号となるように更新される。これにより固定的な可変テーブルを用いる場合に比べさらに短い符号長で符号化できる。図38の(b)は、逆変換可変テーブルDecTableを示す。復号されたcodeNumはDecTableによりcombined_inter_pred_ref_idxに直される。すなわち、combined_inter_pred_ref_idx = DecTable[combined_inter_pred_ref_idx]である。復号動作の詳細はインター予測フラグ復号部1028の説明で後述する。
(双予測制限における動き補償パラメータ導出部)
図29は、動き補償パラメータ導出部121の構成を示す。動き補償パラメータ導出部121は、スキップ動き補償パラメータ導出部1211、マージ動き補償パラメータ導出部1212、基本動き補償パラメータ導出部1213、双予測制限PU判定部1218、および、双単予測変換部1219から構成される。
動き補償パラメータ導出部121では、特に、インター予測フラグを復号しない場合のPUであるスキップPUとマージPUの双予測制限を行う。
スキップ動き補償パラメータ導出部1211は、対象CUがスキップの場合に、スキップPUの動き補償パラメータを導出し、双単予測変換部1219に入力する。双単予測変換部1219は、双予測限定条件に応じて動き補償パラメータを変換し、スキップ動き補償パラメータ導出部1211に戻す。双予測限定条件とは、双予測制限を行うか否かを決定するための条件であり、その判定は、後述のとおり、双予測制限PU判定部1218が行う。また、双単予測変換部1219が、双予測を単予測へ変換する方法(双予測変換方法)の詳細については後述する。スキップ動き補償パラメータ導出部1211は、双予測限定条件に応じて変換された動き補償パラメータを、対象PUの動き補償パラメータとして外部に出力する。なお、スキップインデックスによって、動き補償パラメータが定まる場合には、スキップ候補の各々に対して、双単予測変換部1219で変換を行い、変換後のスキップ候補をスキップインデックスで選択する構成でも構わない。なお、スキップPUのスキップ候補導出と、マージPUのマージ候補導出の導出方法とが同じ場合には、スキップ動き補償パラメータ導出部1211をマージ動き補償パラメータ導出部1212に置き換えて、マージ候補をスキップ候補に置き換えて導出する。
マージ動き補償パラメータ導出部1212は、対象PUがマージの場合に、対象PUの動き補償パラメータを導出し、双単予測変換部1219に入力する。双単予測変換部1219は、双予測限定条件に応じて動き補償パラメータを変換し、マージ動き補償パラメータ導出部1212に戻す。マージ動き補償パラメータ導出部1212は、双予測限定条件に応じて変換された動き補償パラメータを、対象PUの動き補償パラメータとして外部に出力する。なお、マージインデックスによって、動き補償パラメータが定まる場合には、マージ候補の各々に対して、双単予測変換部1219で変換を行い、変換後のマージ候補を、マージインデックスで選択する構成でも構わない。
基本動き補償パラメータ導出部1213は、対象PUがスキップでも、マージでもない場合において、対象PUの動き補償パラメータを導出し、外部に出力する。
双予測制限PU判定部1218は、対象PUのPUサイズ情報を参照し、対象PUにおいて双予測を用いない双予測制限を行うか否かを判定する。スキップCU及びマージPUの双予測制限を行うか否か、及び、基本インターPUの双予測制限を行うか否かを、独立に判定しても良い。例えば、全てのPUを同じPUサイズを閾値として双予測制限を行って良いし、スキップPU及びマージPUの方が大きなPUサイズを閾値として双予測制限を行っても良い。またスキップPU及びマージPUは双予測制限を行わず、基本インターPUにのみ双予測制限を行っても良い。
なお、マージの利用を制限する場合のように、スキップPUでインター予測フラグを復号する場合には、スキップPU、マージPU、基本インターPUの各々で双予測制限を行うか否かを、独立に判定することも可能である。
また、上記の構成では、スキップ動き補償パラメータ導出部1211において設定された双予測・単予測の設定を双単予測変換部1219において双予測制限PU判定部1218に基づき判定すると説明したが、この構成に限らない。例えば、双予測制限PU判定部1218の判定結果を直接スキップ動き補償パラメータ導出部1211に入力し、双予測・単予測の設定を行う構成でも構わない。
以下では、上記動き補償パラメータ導出部121の各構成のうち、マージ動き補償パラメータ導出部1212、基本動き補償パラメータ導出部1213、双予測制限PU判定部1218、および、双単予測変換部1219の詳細について、順に説明する。
(マージ動き補償パラメータ導出部1212の詳細)
図43は、マージ動き補償パラメータ導出部1212の構成を示すブロック図である。なお、スキップPUの場合に用いられる場合には、以下のマージ候補をスキップ候補に置き換えて動作させる。
マージ動き補償パラメータ導出部1212は、隣接マージ候補導出部1212A、時間的マージ候補導出部1212B、ユニーク候補導出部1212C、結合双予測マージ候補導出部1212D、非スケール双予測マージ候補導出部1212E、ゼロベクトルマージ候補導出部1212F、マージ候補導出制御部1212G、マージ候補格納部1212H、マージ候補選択部1212Jから構成される。図43では図示しないが、隣接マージ候補導出部1212Aおよび時間的マージ候補導出部1212Bには、フレームメモリ16に格納されている既に復号されたCU及びPUの復号パラメータ、特に、PU単位の動き補償パラメータが供給される。なお、以下では、隣接マージ候補導出部1212A、時間的マージ候補導出部1212B、ユニーク候補導出部1212C、結合双予測マージ候補導出部1212D、非スケール双予測マージ候補導出部1212E、ゼロベクトルマージ候補導出部1212Fのことを、まとめて、マージ候補導出手段と称する。
マージ動き補償パラメータ導出部1212においては、マージ候補導出制御部1212Gが、各マージ候補導出手段を制御し、所定の数MRG_MAX_NUM_CANDSのマージ候補を導出しマージ候補格納部1212Hに格納する。ここで、マージ候補は、PUの動き補償パラメータである予測リスト利用フラグpredFlagL0とpredFlagL1、参照インデックス番号refIdxL0とrefIdxL1、動きベクトルmvL0とmvL1から構成される。マージ候補格納部1212Hには、上記動きパラメータの組がマージ候補として格納される。格納するマージ候補は格納順に順序づけられたリスト(マージ候補リスト)として管理される。マージ候補選択部1212Jは、マージインデックスで指定されるマージ候補を選択し予測情報PUIとして出力する。
結合双予測マージ候補導出部1212D、非スケール双予測マージ候補導出部1212Eは、特に、双予測のマージ候補を導出するので、双予測マージ候補導出手段と呼ぶ。
図44は、マージ動き補償パラメータ導出部1212の動作を示すフロー図である。なお、各マージ候補導出手段が、マージ候補を導出する手法については、別の図を用いて後述する。始めに、隣接マージ候補導出部1212Aにおいて、隣接ブロックの動き補償パラメータを用いてマージ候補A0〜マージ候補B2が求められる(S101)。続いて、時間的マージ候補導出部1212Bにおいて、既に復号した参照ピクチャの動き補償パラメータを用いてマージ候補Tが求められる(S102)。S103では、導出したマージ候補A0〜マージ候補Tの中で重複するマージ候補が取り除かれ、マージ候補格納部1212Hに格納される。ここで重複しないマージ候補数がMRG_MAX_NUM_CANDS個以上であれば、マージ候補の導出を終了する(S104でYES)。それ以外であれば(S104でNO)、S105に遷移する。Bスライスであれば(S105でYES)、S106に遷移し、そうではなければ(S105でNO)、S107、S108をスキップしS109に遷移する(S105)。双予測制限を行う場合、ここでは、双方向マージ候補導出をスキップする場合に相当する小サイズPUの場合も、S107、S108の双予測動き候補導出の処理をスキップし、S109に遷移する(S106)。S107では、結合双予測マージ候補導出部1212Dにおいて、結合双予測マージ候補が導出されマージ候補格納部1212Hに格納される。S108では、非スケール双予測マージ候補導出部1212Eにおいて、非スケール双予測マージ候補が導出されマージ候補格納部1212Hに格納される。ここでマージ候補数がMRG_MAX_NUM_CANDS個以上であれば(S109でYES)、マージ候補の導出を終了する。また、図示しないが、S107及びS108のステップ中に、マージ候補数がMRG_MAX_NUM_CANDS個に到達した時点で、各処理を停止し、マージ候補の導出を終了する。S110では、ゼロベクトルマージ候補導出部1212Fにおいて、マージ候補数がMRG_MAX_NUM_CANDS個に到達するまでゼロベクトルのマージ候補が導出され、マージ候補格納部1212Hに格納される。
上記処理では、小サイズPUにおいて、双予測マージ候補に関わるマージ候補導出処理が省略されるため、マージ候補導出に掛る処理量を低減することができる。双予測マージ候補に関わる結合双予測マージ候補導出処理(S107)および非スケール双予測マージ候補導出処理(S108)は繰り返し複数の判定を行う必要がある重い処理であるため、復号にかけられる時間(処理量)が限られる小サイズPUで処理を省略できることは、実時間で復号処理を行う必要がある機器おいて特に有効である。なお、双予測のマージ候補の省略は、結合双予測マージ候補導出部1212D、非スケール双予測マージ候補導出部1212Eの動作に限らず、双予測のマージ候補を主に生成する他のマージ候補導出処理にも適用可能である。
以下、各マージ候補導出手段の詳細を説明する。図45は、隣接マージ候補導出部1212Aの動作を説明するための図である。図45に示すとおり、A0、A1、B0、B1、B2の位置を含む隣接ブロックの動き補償パラメータを、コピーすることにより、各マージ候補を導出する。導出する順序は、A1、B1、B0、A0、B2であるとする。導出されたマージ候補は、双単予測変換部1219で変換後、マージ候補格納部1212Hに格納する。双単予測変換部1219は、双予測制限が行われる場合に、入力されるマージ候補を単予測に変換する。単予測に変換されたマージ候補が複数になる場合(例えばL0予測とL1予測の2つ)には、その複数のマージ候補を、マージ候補格納部1212Hに格納する。双単予測変換部1219の出力が複数のマージ候補で良いというのは、以後、説明する他のマージ候補導出部でも同様である。
なお、隣接ブロックが、availableではない場合(unavailable)やイントラブロックの場合には、対応するマージ候補は導出されない。なお、availableではない場合とは、画面外にある場合、スライス外にある場合、ブロックのスキャン順からみて、未復号である場合である。A0〜B1の位置は、PUの左上座標を(xP,yP)、PUのサイズnPSW、nPSHとして、以下のように表現できる。
A0:(xP - 1,yP + nPSH)
A1:(xP - 1,yP + nPSH - 1)
B0:(xP + nPSH,yP - 1)
B1:(xP + nPSH - 1,yP - 1)
B2:(xP - 1,yP - 1)
なお、A0、A1、B0、B1の位置に対応するマージ候補が全て導出された場合には、B2の位置に対応するマージ候補は導出されない。PUの分割タイプが、2N×NもしくはN×2Nの場合でPUのインデックスが1である場合のマージ候補の導出においては、各マージ候補の動き補償パラメータが、インデックスが0のPUの動き補償パラメータと一致しない場合に限り、対応するマージ候補が導出されマージ候補格納部1212Hに格納される。ブロック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に置き換える。
図46は、時間的マージ候補導出部1212Bの動作を説明する図である。図46の(a)を参照すると、時間的マージ候補は、現ピクチャがcurrPicである場合、現ピクチャ内における対象PUの空間的位置とほぼ同じ空間的位置を占める参照インデックス番号refIdxL0で指定される参照ピクチャPU、もしくは、参照ピクチャインデックス番号で指定される参照ピクチャのPUの動き補償パラメータをコピーすることにより、導出される。図46の(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]として用いる。
続いて、現フレームのPOC(Picture Order Count)と参照ピクチャのPOCを用いて、動きベクトルのスケーリングを行う。時間的マージ候補においても隣接マージ候補と同様に、マージ候補をマージ候補格納部1212Hに格納する前に、双単予測変換部1219にマージ候補を入力し変換する。変換後のマージ候補が時間的マージ候補として、マージ候補格納部1212Hに格納される。
ユニーク候補導出部1212Cは、マージ候補リストの各マージ候補が互いにユニークになるように、マージ候補リストを更新する。マージ候補リストに格納されたマージ候補がインデックス0〜インデックスCANDXまでである場合、図47の擬似コードに示すステップによりユニークなマージ候補リストを得ることができる。なお、マージ候補リストは、マージ候補を格納する配列motion_cand[]を用いて管理する。また、マージ候補数をNumcandとすると、CANDX=Numcand−1である。図47の擬似コードの各ステップSについて、以下に説明する。
S4701:インデックス0からインデックスCANDXの有効性フラグを全て有効に初期化する。ここでmotion_valid[]は有効性フラグを格納する配列である。
S4702:ループ変数i(i=1からCANDX)に対して、iのマージ候補motion_cand[i]と同じ動き補償パラメータが、iより小さい番号のインデックスj(0<=j<i)のmotion_cand[j]で出現していたら、iの有効性フラグmotion_valid[i]を無効にする。S4702−1では、インデックスiとjの動き補償パラメータを比較する。動き補償パラメータの比較には、equalMotion関数を用いる。ここでequalMotion(A, B)は、入力された動き補償パラメータAとBとの同一性を判定する関数である(同図においては、“hasEqualMotion”と表記している)。動き補償パラメータが一致していたら、iの有効性フラグmotion_valid[i]を無効にする。
S4703:有効性フラグmotion_validがtrueのマージ候補motion_candをマージ候補リストに格納する。このマージ候補リストの再構成は、マージ候補motion_candの配列から構成されるマージ候補リストに番号が小さい順にコピーすることで行う。ここでcopy(A, B)はBをAにコピーする関数である。
S4704:有効性フラグmotion_validを再設定する。
S4705:有効なマージ候補数NumCandを更新する。
図48は、結合双予測マージ候補導出部1212Dの動作を説明する図である。結合双予測マージ候補は、マージ候補リストに格納された2つの参照マージ候補を用いて、一方の参照マージ候補からリストL0の動き補償パラメータをコピーし、もう一方の参照マージ候補からリストL1の動き補償パラメータをコピーすることで導出される。図48の(c)は、抽出する2つの参照マージ候補リストを決定するためのテーブルである。導出する結合双予測マージ候補のインデックスをcombCandk で表現する。なお、combCandkは、既に導出されたマージ候補リストの最後のインデックスの値に1を加えた値を用いる。kは、0から開始するインデックスであり、結合双予測マージ候補をマージ候補リストに追加する際に1ずつインクリメントする。また、combIdxインデックスは、結合双予測マージ候補の導出の際に用いられる一時的なインデックスで0から11までの値を持つ。0から11までのcombIdxインデックスについて、2つのインデックスl0CandIdx及びl1CandIdxで示されるインデックスの参照マージ候補をマージ候補リストから選択する。ここでインデックスlXCandIdx(X=0もしくはX=1)のインデックスの候補を選択するとは、マージ候補リストに格納されたインデックス0〜CANDXまでのマージ候補の内、インデックスlXCandIdxで示される候補を抽出することを言う。図48の(a)は、結合双予測マージ候補を導出するか否かを判定する判定式を示す。l0CandIdxで選択されたマージ候補のL0の動き補償パラメータpredFlagL0l0Cand、refIdxL0l0Cand、mvL0l0Candと、l1CandIdxで選択されたL1のマージ候補の動き補償パラメータpredFlagL1l1Cand、refIdxL1l1Cand、mvL1l1Candが図48(a)の判定式を全て満たす場合に、結合双予測マージ候補が導出される。図48の(b)は、インデックスcombCandkで示される結合双予測マージ候補の導出方法を示す図である。結合双予測マージ候補の動き補償パラメータrefIdxL0combCandk、refIdxL1combCandk、predFlagL0combCandk、predFlagL1combCandk、mvL0combCandk[0]、mvL0combCandk[1]、mvL1combCandk[0]、mvL1combCandk[1]を上記L0の動き補償パラメータと上記L1の動き補償パラメータをコピーすることにより導出する。導出された結合双予測マージ候補がマージ候補格納部1212Hのマージ候補リストに格納された全てのマージ候補と一致しない場合に、結合双予測マージ候補をマージ候補リストの最後に格納する。一致判定は既に説明した関数equalMotionを用いる。
マージ候補数が、MRG_MAX_NUM_CANDS個に到達していれば、結合双予測マージ候補導出部1212Dの動作を終了する。到達していなければcombIdxを1だけインクリメントし、図48の(c)のテーブルを用いて2つの参照マージ候補を抽出し、マージ候補導出を継続する。全てのテーブルについて抽出した時点で、結合双予測マージ候補導出部1212Dの動作を終了する。
図49は、非スケール双予測マージ候補導出部1212Eの導出を説明する図である。図49の(a)は、非スケール双予測マージ候補を導出するか否かを判定する判定式を示す。図49の(b)は、インデックスnscaleCandlで示される非スケール双予測マージ候補の導出方法を示す図である。ここで、インデックスnscaleCandlは、既に導出されたマージ候補リストの最後のインデックスの値に1を加えた値を用いる。lは、0から開始するインデックスであり、非スケール双予測マージ候補をマージ候補リストに追加する際に1ずつインクリメントする。非スケール双予測マージ候補導出部1212Eは、既に導出されマージ候補格納部1212Hに格納されたマージ候補の動きベクトルを利用して、2つの参照ピクチャに対する動きベクトルが互いに反転する関係になるようなマージ候補を導出する。参照するマージ候補のインデックスをorigCandとして、図49の(a)の判定式を全て満たす場合に、図49の(b)に従い非スケール双予測マージ候補の導出が行われる。非スケール双予測マージ候補についても、関数equalMotionを用いて、導出された結合双予測マージ候補がマージ候補格納部1212Hのマージ候補リストに格納された全てのマージ候補と一致しない場合に、結合双予測マージ候補をマージ候補リストの最後に格納する。マージ候補数が、MRG_MAX_NUM_CANDS個に到達していれば動作を終了し、到達していなければ処理を繰り返す。
図50は、ゼロベクトルマージ候補導出部1212Fの動作を示す図である。マージ候補格納部1212Hのマージ候補数が、MRG_MAX_NUM_CANDS個に到達していれば処理を行わない。到達していなければ、マージ候補数が、MRG_MAX_NUM_CANDS個に到達するまでゼロベクトルを格納する。すなわち、参照するマージ候補のインデックスをmvL0zeroCandmとして、L0の動きベクトル(mvL0zeroCandm[0]、mvL0zeroCandm[1])、L1の動きベクトル(mvL1zeroCandm[0]、mvL1zeroCandm[1])が共に0となるような候補を導出する。ここで、インデックスzeroCandmは、既に導出されたマージ候補リストの最後のインデックスの値に1を加えた値を用いる。mは、0から開始するインデックスであり、ゼロベクトル予測マージ候補をマージ候補リストに追加する際に1ずつインクリメントする。なお、ゼロベクトルマージ候補導出部1212Fにおいても、2つの参照ピクチャを用いるマージ候補、すなわちpredFlagL1=1、predFlagL1=1のマージ候補を導出することが可能であるが、マージPUの双予測制限を行う場合には、双予測制限を行う小サイズのPUにおいて、単予測のマージ候補のみを導出することとする。
マージ候補導出制御部1212Gは、図44のフローチャートで示した動作を行い、マージ候補を導出する。
マージ候補格納部1212Hは、導出したマージ候補を保存する。
(基本動き補償パラメータ導出部1213の詳細)
図54は、基本動き補償パラメータ導出部1213の構成を示すブロック図である。基本動き補償パラメータ導出部1213は、隣接動きベクトル候補導出部1213A、時間的動きベクトル候補導出部1213B、ゼロベクトルマージ候補導出部1213F、動きベクトル候補導出制御部1213G、動きベクトル候補格納部1213H、動きベクトル候補選択部1213I、動きベクトル復元部1213Jから構成される。なお、以下では、隣接動きベクトル候補導出部1213A、時間的動きベクトル候補導出部1213B、ゼロベクトルマージ候補導出部1213Fのことを、まとめて、動きベクトル/マージ候補導出手段と称する。
基本動き補償パラメータ導出部1213においては、動きベクトル候補導出制御部1213Gが、各動きベクトル/マージ候補導出手段を制御し、所定の数PMV_MAX_NUM_CANDSの予測動きベクトル候補を導出し動きベクトル候補格納部1213Hに格納する。ここで、予測動きベクトル候補は、動きベクトルmvL0とmvL1とから構成される。動きベクトル候補格納部1213Hには、上記動きパラメータの組が予測動きベクトル候補として格納される。格納する予測動きベクトル候補は格納順に順序づけられたリスト(予測動きベクトル候補リスト)として管理される。
隣接動きベクトル候補導出部1213Aは、隣接マージ候補導出部1212Aと同様に、隣接ブロックの動き補償パラメータを、コピーすることにより、各予測動きベクトル候補を導出する。
時間的動きベクトル候補導出部1213Bは、時間的マージ候補導出部1212Bと同様に、既に復号済みのピクチャの動き補償パラメータを、コピーすることにより、時間的予測動きベクトル候補を導出する。
ゼロベクトルマージ候補導出部1213Fは、ゼロベクトルを予測動きベクトル候補として導出する。
動きベクトル候補導出制御部1213Gは、所定の数PMV_MAX_NUM_CANDSの予測動きベクトル候補が導出された時点で導出を終了する。また、内部のユニーク候補判定部1213Cを用いて、隣接動きベクトル候補導出部1213Aおよび時間的動きベクトル候補導出部1213Bから導出される予測動きベクトルが互いに一致しない(ユニークになる)ように、動きベクトル候補格納部1213Hに格納する。具体的には、動きベクトル候補導出制御部1213Gは、ユニーク候補判定部1213Cに2つの動きベクトルAと動きベクトルBとを入力し、動きベクトルAと動きベクトルとBが一致しているか否かを判定させる。ユニーク候補判定部1213Cは入力された2つの動きベクトルが互いに一致しているが否かを判定する。
(双予測制限PU判定部1218の詳細:双予測制限の判定方法)
双予測制限PU判定部1218において、双予測制限を行うべき小サイズのPUであるか否かを判定する方法の好適な例を以下に説明する。なお、判定方法は以下の例に限定されるものではなく、PUサイズ情報として他のパラメータを用いることも可能である。
(判定方法の例1)
判定方法の例1では、PUサイズの判定に用いる閾値をTHとした場合に、THxTH未満のPUの場合に双予測制限を行う。この時の対象CUサイズ(ここではCU Width)とPU分割タイプを用いた判定式は以下の通りである。
DisableBiPred = ((CU Width == TH && PU分割タイプ != 2Nx2N) || CU Width < TH) ? true : false
具体的には、
TH = 16の場合には、16x8、8x16、12x16、4x16、16x12、16x4、8x8、8x4、4x8、4x4の各PUにおいて双予測制限が行われる。
TH = 8の場合には、8x4、4x8、4x4の各PUにおいて双予測制限が行われる。
なお、PUサイズの判定に用いるCUサイズとしてCU Widthの代わりに、CUサイズ(CU Width)の底を2とする対数log2CUSizeを用いても良い。この場合、16x8、8x16、12x16、4x16、16x12、16x4、8x8、8x4、4x8、4x4を双予測制限する場合の判定式は、以下になる。
DisableBiPred = ((log2CUSize == 4 && PU分割タイプ != 2Nx2N) || log2CUSize < 4) ? true : false
また、8x4、4x8、4x4を双予測制限する場合の判定式は、以下になる。
DisableBiPred = (log2CUSize == 3 && PU分割タイプ != 2Nx2N)
なお、対象CUサイズとPU分割タイプ以外のパラメータを用いて判定を行うことも可能である。例えば、PU分割数NumPartを用いて以下のような判定も可能である。
DisableBiPred = ((CU Width == TH && NumPart > 1) && CU Width < TH) ? true : false
(判定方法の例2)
判定方法の例2では、THxTH以下のPUにおいて双予測制限を行う。この時の判定式は以下の通りである。
DisableBiPred = ((CU Width == 2*TH && PU分割タイプ == NxN) || CU Width < 2*TH) ? true : false
具体的には、
TH = 16の場合には、16x16、16x8、8x16、12x16、4x16、16x12、16x4、8x8、8x4、4x8、4x4の各PUにおいて双予測制限が行われる。
TH = 8の場合には、8x8、8x4、4x8、4x4の各PUにおいて双予測制限が行われる。
TH = 4の場合には、4x4のPUにおいて双予測制限が行われる。
なお、PUサイズの判定にlog2CUSize を用いる場合、8x8、8x4、4x8、4x4を双予測制限する場合の判定式は、以下になる。
DisableBiPred = ((log2CUSize == 4 && PU分割タイプ == NxN) || log2CUSize < 4) ? true : false
4x4の判定式は、以下になる。
DisableBiPred = ((log2CUSize == 3 && PU分割タイプ == NxN)) ? true : false
なお、PUの分割数NumPartを用いて以下のような判定も可能である。
DisableBiPred = ((CU Width == 2*TH && NumPart != 4) || CU Width < 2*TH) ? true : false
なお、上述の例においてスキップPU及びマージPUと、基本インターPUとで異なるPUサイズ(閾値TH)を用いても構わない。また、図34の(c)で既に示したように、判定に用いるPUサイズ(閾値TH)を符号化しても良い。
(双単予測変換部1219の詳細)
双単予測変換部1219は、入力された動き補償パラメータが双予測を示しており、さらに、双予測制限PU判定部においてスキップPU及びマージPUの双予測制限を行うと判定された場合において、双単予測変換部1219に入力される動き補償パラメータを単予測に変換する。
なお、双単予測変換部1219は複数の双予測変換方法を切り替えることが可能であり、マージ候補導出部の指定する双予測変換方法を用いて双単予測変換を行っても構わない。また、双単予測変換部1219に、双単予測変換を行うか否かを入力し、それに合わせて切り替えを行っても構わない。
また、後述するように、双単予測変換部1219は、入力された動き補償パラメータが双予測の場合には、2つの動き補償パラメータを順次、出力しても良い。
動き補償パラメータは、時間的及び空間的に近接するPUの動き補償パラメータのコピー、もしくは、時間的及び空間的に近接するPUの動き補償パラメータの組み合わせから導出される動き補償パラメータのインター予測フラグinter_pred_flagが双予測を示す2である場合には、単予測を示す1に変換する。また、内部の処理に用いるインター予測フラグ(内部インター予測フラグ)がL0予測を示す1、L1予測を示す2、双予測を示す3からなるフラグである場合には、以下の動作を行う。内部インター予測フラグが3である場合には、内部インター予測フラグの値がL0予測を意味する1、もしくは、L1予測を意味する2に変換する。また、L0予測に変換する場合にはL1予測に関する動き補償パラメータを例えばゼロにリフレッシュすることも可能である。L1予測に変換する場合には、L0予測に関する動き補償パラメータを例えばゼロにリフレッシュすることも可能である。なお、内部インター予測フラグと、予測リスト利用フラグpredFlagL0、predFlagL1の関係は以下のように相互に変換可能である。
内部インター予測フラグ = (predFlagL1<<1) + predFlagL0
predFlagL0 =内部インター予測フラグ & 1
predFlagL1 =内部インター予測フラグ >> 1
単予測に変換する方法としては、インター予測フラグ(及び内部インター予測フラグ)を変更する方法の他、予測リスト利用フラグpredFlagL0、predFlagL1の両者が利用するを示す値である1の場合に、予測リスト利用フラグの一方を使用しないことを示す値の0に変換すること、で行うこともできる。
図51は、単予測への変換の方法(双予測変換方法)の例を説明する図である。L0選択は、予測リスト利用フラグpredFlagL1を0に変更する。L1選択は、予測リスト利用フラグpredFlagL0を0に変更する。参照インデックス番号選択は、参照インデックス番号refIdxL0、参照インデックス番号refIdxL1の内、値が大きい方のリストの予測リスト利用フラグを0に変更する。式としては、X = (ref_idx_L1 < ref_idx_L0) ? 0 : 1、predFlagLX = 0。これにより、参照インデックス番号が小さい方のリストが使用される。POC選択は、現ピクチャのPOC(POC_curr)と、参照インデックス番号refIdxL0で示される参照ピクチャのPOC(POC_L0)の差分と、現ピクチャのPOCと、参照インデックス番号refIdxL1で示される参照ピクチャのPOC(POC_L1)の絶対値差分との内、値が大きい方のリストの予測リスト利用フラグを0に変更する。X = (|POC_L1 ‐ POC_curr| < |POC_L0 ‐ POC_curr| ) ? 0 : 1、predFlagLX = 0。これにより現ピクチャに対してPOCが近い参照ピクチャが用いられる。
両選択は、L0の動き補償パラメータを用いる場合とL1の動き補償パラメータを用いる場合の両方を候補として用いる。すなわち、入力されたマージ候補が双予測の場合には、predFlagL1 = 0のようにL0を用いるように変更されたマージ候補と、predFlagL0 = 0のように変更されたマージ候補の2つを、入力元であるマージ候補導出部に出力する。
発明者による実験では、PUサイズが8×4、4×8の場合に双予測を制限する場合で、双単予測変換にL1選択を行う方法において、符号化効率の低下がほぼゼロであることを確認している。この場合、双単予測変換は、以下のように表現できる。CUサイズlog2CUSizeが3、かつ、PU分割タイプPartModeが2N×2N以外の場合において、予測リスト利用フラグpredFlagL0と予測リスト利用フラグpredFlagL1の両者が1である場合には、予測リスト利用フラグpredFlagL0を0に設定する。
一般に、動き補償パラメータの導出では、L0リストの参照ピクチャを優先することが多い。逆に、L0リストの参照ピクチャの代わりにL1リストの参照ピクチャを使用することによれば、これらのL0リストを優先する導出処理と差別化することができる。ある符号化パラメータにより複数の導出処理が選択可能な場合において、あるグループの導出処理をL0リスト優先、他のグループの導出処理をL1リスト優先とすると、各々の導出処理は互いに相補的に用いることができるため、より多くの動きの性質のシーケンスや領域において有効に作用する。そのため、双単予測変換においては、L1リストを用いることによって高い符号化効率を得ることができる。
図51の例以外の単予測への変換の方法の例をさらに説明する。双予測マージ候補毎に、双予測である(predFlagL0とpredFlagL1が共に1)である場合に、predFlagL1を0にする(L0リストを用いる)かを切り替えても良い。例えば、隣接マージ候補導出部1212Aでは、A1、B1、B0、A0、B2の順にマージ候補を導出するが、A1、B0、B2でpredFlagL1=0、B1、A0でpredFlagL1=1とする方法がある。この例では、マージ候補を導出する毎に、L0リストを用いる場合とL1リストを用いる場合を交互に選択する。また、この例では、左方向に隣接するブロックから算出されるマージ候補A0、A1および上方向に隣接するブロックから算出されるマージ候補B0、B1の各々に対して、一方についてL0リストを用いる場合とし、もう一方についてL1リストを用いる場合とする。このように、隣接マージ候補の一部をpredFlagL1=0、一部をpredFlagL0=0により、単予測に変換する場合には、各々の参照リストの動き補償パラメータをバランスよく使用することができるため、高い符号化効率が得られる。また、隣接方向が右方向(A0、A1)、上方向(B0、B1、B2)であるマージ候補は互いに異なる参照リストを選択するようにすることが好ましい。なお、どのマージ候補をpredFlagL1=0として、どのマージ候補をpredFlagL0=0とするかについては上記以外の方法でも良い。例えば、A1、B0、B2でpredFlagL1=1、B1、A0でpredFlagL1=0としても良い。また、導出する順番もしくはマージ候補リストに格納する場合のインデックス毎に、反対の参照リストを用いるようにしても良い。
また、参照リストXの予測リスト利用フラグpredFlagLXを0にすることで、双単予測変換を行う場合に、参照インデックス番号refIdxLXの値を-1、動きベクトルmvL1の値を(0, 0)などの初期値にリフレッシュしないこととするが、リフレッシュすることも可能である。発明者による実験では、これらの値はリフレッシュを行わない方が高い符号化効率が得られることを確認している。リフレッシュしない場合においては、参照ピクチャリストの使用を制限した場合においても、後続の処理において、制限した方の、参照インデックス番号および動きベクトルの値を使用することができる。そのため、高い符号化効率が得られる。
なお、双単予測変換部1219は、スキップ動き補償パラメータ導出部1211及びマージ動き補償パラメータ導出部1212の内部に備える手段として構成しても構わない。また、基本インターPUのみに双予測制限を行う場合には、双単予測変換部1219を備えない構成でも良い。
(双予測制限における動き情報復号部1021)
図30は、動き情報復号部1021の構成を示すブロック図である。動き情報復号部1021は少なくともインター予測フラグ復号部1028を備える。動き情報復号部1021では、特に、インター予測フラグを復号する場合のPUである基本インターPUの双予測制限を行う。インター予測フラグ復号部1028は、上述の双予測制限PU判定部1218で、基本インターPUの双予測制限を行うか否かに応じて、インター予測フラグの復号を行うか否かを変更する。
なお、マージの利用を制限する場合のように、スキップPUでインター予測フラグを復号する場合には、スキップPUの双予測制限を行う。
(インター予測フラグ復号部1028)
図39は、CABACの場合のインター予測フラグ復号部1028の動作を示すフロー図である。インター予測フラグ復号部1028は、スライスがBスライスの場合(S131でYES)には、S132に遷移する。それ以外では(S131でNO)、インター予測フラグinter_pred_flagを復号せずに終了する。PUサイズが小PUサイズの場合(DisableBiPred = trueの場合)には(S132でYES)、インター予測フラグinter_pred_flagを復号せずに終了する。それ以外の場合には(S132でNO)、インター予測フラグinter_pred_flagを復号する(S133)。
図40は、CAVLCの場合のインター予測フラグ復号部1028の動作を示すフロー図である。インター予測フラグ復号部1028は、スライスがBスライスの場合(S141でYES)には、S142に遷移する。それ以外では(S141でNO)、インター予測フラグinter_pred_flagを復号せずに終了する。PUサイズが小PUサイズ以外の場合(DisableBiPred != trueの場合)には(S142でNO)、S143、S144、145により、結合インター予測参照インデックスcombined_inter_pred_ref_idxを復号する。PUサイズが小PUサイズの場合には(S142でYES)、S146、S147、S148により、結合インター予測参照インデックスcombined_inter_pred_ref_idxを復号する。
S143およびS146では、最大値MaxPredRefを算出する。最大値MaxPredRefは、図37の(d)のテーブルTBL37および擬似コードCODE37に示す通りである。具体的には、小サイズPU以外の場合、すなわち、双予測制限なしの場合(DisableBiPred != true)の最大値MaxPredRefは、NumPredRefLC+NumPredRefL0*NumPredRefL1もしくは、NumPredRefL0+NumPredRefL0*NumPredRefL1、すなわち、単予測の結合参照ピクチャセットの数(NumPredRefLC、もしくはNumPredRefL0)と双予測の結合参照ピクチャセットの数(NumPredRefL0*NumPredRefL1)の和で算出する(S143)。双予測制限ありの場合(DisableBiPred = true)の最大値MaxPredRefは、NumPredRefLCもしくは、NumPredRefL0、すなわち、単予測の結合参照ピクチャセットの数(NumPredRefLC、もしくはNumPredRefL0)で算出し、双予測の結合参照ピクチャセットを含まない(S146)。これにより、無駄な符号を排除することができる。なお、num_ref_idx_lc_active_minus1は、参照リストLCで管理される参照リスト番号の数(参照リストLCのサイズ)から1を引いた数である。num_ref_idx_lc_active_minus1が0より大きいことは、参照リストLCが用いられることを示す。同様に、num_ref_idx_l0_active_minus1は参照リストL0で管理される参照リスト番号の数(参照リストL0のサイズ)から1を引いた数であり、参照リストL0が用いられることを示す。同様に、num_ref_idx_l1_active_minus1は参照リストL1で管理される参照リスト番号の数(参照リストL1のサイズ)から1を引いた数である。なお、単予測の結合参照ピクチャセットの数は、以下の式のように、参照リストのサイズを最大値(参照リストLCは4、それ以外の参照リストは2)でクリップした数として定められる。
NumPredRefLC = Min(°4,°num_ref_idx_lc_active_minus1°+°1°)
NumPredRefL0 = Min(°2,°num_ref_idx_l0_active_minus1°+°1°)
NumPredRefL1 = Min(°2,°num_ref_idx_l1_active_minus1°+°1°)
S144、S147における、combined_inter_pred_ref_idxの復号では、最大値をMaxPredRefとするunary codeで符号化されたcodeNumを復号する。S145、S148において、codeNumはcombined_inter_pred_ref_idxに変換される。小サイズPU以外の場合には、逆変換可変テーブルDecTableによってcombined_inter_pred_ref_idxに変換する。すなわち、combined_inter_pred_ref_idx = DecTable[codeNum]である(S145)。小サイズPUの場合には、codeNumをcombined_inter_pred_ref_idxの値としてそのまま用いる。すなわち、combined_inter_pred_ref_idx = codeNumである(S148)。そして、combined_inter_pred_ref_idxが最大値MaxPredRefに一致するか否かを判定する(S149)。一致する場合で(S149でYES)、さらに、小サイズPU以外の場合には、inter_pred_flagを復号する(S150)。この動作は、図36に示すシンタックステーブルの復号に対応する。
上記の例では、小サイズPUでは逆変換可変テーブルを用いないことで簡易な復号を行っているが、上記S148のステップを図41の擬似コードで示す処理に置き換えることにより、逆変換可変テーブルを用いたcombined_inter_pred_ref_idxの復号も可能である。逆変換可変テーブル及び変換可変テーブルは、双予測制限を用いる場合と用いない場合とで同一のテーブルを用いる。双予測テーブルを用いない場合には、テーブルのエントリの内、双予測に対応するエントリは無効である。そのため、無効なエントリをスキップする処理が必要になる。具体的には復号部では、コード番号を復号した後、逆変換可変テーブルDecTableのエントリを発生確率の高い順、すなわち、番号が小さい方から大きい方にむけて順にスキャンする。エントリの内容が双予測である、すなわち、2つの予測リストを用いる場合には無効であるのでスキップし、有効である場合のみをカウントする。このカウント値が復号したコード番号に一致する場合に、このカウント値のエントリのパラメータを復号すべきcombined_inter_pred_ref_idxの値とする。また、逆変換可変テーブルDecTableの更新は、無効なカウントを含めたカウント値をコード番号とみなして行われる。具体的には図41の動作を行う。図41は、逆変換可変テーブルを用いる場合のcombined_inter_pred_ref_idxの復号処理を示す擬似コードである。以下に、図41に示す擬似コードの各ステップSについて説明する。なお、図41では、コーディングスタイルの都合により、最大値MaxPredRefを、uiMaxValと表記している。また、NumPredRefLC、NumPredRefL0、および、NumPredRefL1は、それぞれ、uiValNumRefIdx0fLC、uiValNumRefIdx0fL0、および、uiValNumRefIdx0fL1と表記している。
S501:最大値MaxPredRefを得る。
S502:双予測制限を行う場合の最大値MaxPredRefとuiBipredValを得る。
S503:最大値MaxPredRefを引数としてunary復号処理xReadUnaryMaxSymbolを呼び出すことにより、コード番号tmpを得る。
S504:逆変換可変テーブルm_uiMITableDを用いてコード番号tmpからcombined_inter_pred_ref_idxを得る。双予測制限を行わない場合はこの値が最終的なcombined_inter_pred_ref_idxの値である。
S505:双予測制限を行う場合においてコード番号からcombined_inter_pred_ref_idxを得る処理に入る分岐である。
S506:後に、S509での判定に用いるため、双予測制限を行わない場合の最大値MaxPredRefを得る。
S507:仮のコード番号tmp2をループ変数として0から最大値MaxPredRefまで処理を行う。第2の仮のコード番号cxは0に処理化しておく。
S508:仮のコード番号tmp2を逆変換可変テーブルで変換して得られる仮のcombined_inter_pred_ref_idxの値xを得る。
S509:仮のcombined_inter_pred_ref_idxの値xが、有効範囲であるか否かを判定する。有効であるのは、双予測制限を行う場合の最大値uiBipredValを超えない場合と、双予測制限を行わない場合の最大値MaxPredRefである場合である。
S510:第2の仮のコード番号cxが、復号したコード番号tmpに一致する場合にループを終了する。ループを終了する時点の仮のコード番号tmp2は、双予測制限を行わない場合のコード番号に対応する。よって、コード番号tmpに代入する。
S511:第2の仮のコード番号cxをインクリメントする。
S512:ループを終了した時点の仮のcombined_inter_pred_ref_idxの値xをcombined_inter_pred_ref_idxの復号値として得る。
S513:双予測制限を行わない場合のコード番号tmpを用いて、逆変換可変テーブルを更新する処理adaptCodewordを呼び出す。
なお、図42は、可変テーブルを用いる場合のcombined_inter_pred_ref_idxの符号化処理を示す擬似コードである。
以上、小PUサイズの処理量削減方法として、基本インターPUの双予測制限(インター予測フラグ、結合インター予測参照インデックスの復号方法の変更)、マージPUの双予測制限(マージ候補導出における双単予測変換)、双予測マージ候補算出のスキップ を説明したが、これら制限を単独で用いる、もしくは、これら制限を行うPUサイズを各々異なる値としても良い。図52、図53は、双予測の処理量低減の例を示すものである。なお、図中の○はその処理を行うことを示し、図中の×はその処理を行わないことを示す。
図52の(a)は、4x4、4x8、4x8のサイズのPUに対して、一様に、基本インターPUの双予測制限、マージPUの双予測制限、双予測マージ候補導出のスキップを適用する例である。図52の(b)、(c)は、マージPUの双予測制限、双予測マージ候補導出のスキップは行わず基本インターPUにのみ双予測制限を行う例である。一般にマージPUの双予測制限を行うと符号化効率の低下が生じる場合があるため、基本インターPUにのみ双予測制限を行う例は適当である。
図52の(d)は、4x4、4x8、4x8のサイズのPUに対して、一様に、基本インターPUの双予測制限、8x8のサイズのPUに対してマージPUの双予測制限、双予測マージ候補導出のスキップを適用する例である。基本インターPUの双予測制限に比べ、マージPUの双予測制限を緩くすることは符号化効率上適当である。
図53の(a)は、4x4、4x8、4x8、8x8に対して、基本インターPUの双予測制限と双予測マージ候補導出のスキップを適用する例である。マージPUの双予測制限は行わないが、マージPUの動き補償パラメータとして用いられるマージ候補導出を簡略化することにより、マージPUにおける双予測関連の処理量を低下させることができる。図53の(b)は、4x4、4x8、4x8、8x8に対して、双予測マージ候補導出のスキップを適用する例である。このように、双予測マージ候補導出のスキップを単独で用いることもできる。
このような場合の実現には、判定方法を別のフラグで管理すればよい。例えば、各用予測制限を行うことを示すフラグDisableBiPredFlag、DisableBiPredMerge、DisableBiPredMergeDeriveを設け、以下に示す動作によりこれらが可能である。
例えば、双予測制限PU判定部1218では、3つのフラグDisableBiPredFlag、DisableBiPredMerge、DisableBiPredMergeDeriveを各々導出する。図52の(d)に示す例であれば、以下で導出できる。
DisableBiPredFlag = (log2CUSize == 3 && PU分割タイプ != 2Nx2N) ? true : false
DisableBiPredMerge、DisableBiPredMergeDerive =((log2CUSize == 4 && PU分割タイプ == NxN) || log2CUSize < 4) ? true : false
インター予測フラグ復号部1028では、DisableBiPredFlagが真の場合に、インター予測フラグ、結合インター予測参照インデックスの復号方法の変更を行う。
マージ動き補償パラメータ導出部1212では、DisableBiPredMergeが真の場合に、マージ候補導出において、双単予測変換部 1219を用いて双単予測変換を行う。
マージ動き補償パラメータ導出部1212では、DisableBiPredMergeDeriveが真の場合に、マージ候補導出において、双予測マージ候補導出のスキップを行う。
動き補償パラメータ導出部121が、小PUサイズ123Aを参照して双予測制限を行うことによる作用・効果は以下のとおりである。双予測は、単予測よりも処理量が大きく、また小サイズのPUは、大サイズのPUに比べて単位面積あたりの処理量が大きい。従って、小サイズのPUにおける双予測は、処理のボトルネックとなりかねない。このため、小サイズのPUでは、双予測を抑制することで、処理量が過度に増大することを抑えることができる。とくに、最も小さいサイズのPUを処理するような最悪ケースの処理量を抑制することができる。
なお、インター予測フラグについて補足しておくと次のとおりである。非特許文献1では、インター予測フラグ(inter_pred_flag)は、基本的には、双予測か単予測かを選択するフラグとなっている。しかし、コンバインドリストを使用せず、後方予測禁止フラグが禁止でない場合には、単予測に用いる参照フレームリストとしてL0、L1のいずれかを選択するためのフラグをinter_pred_flagにより送信する場合もある。
[作用・効果]
本発明は以下のとおり表現することもできる。すなわち、本発明の一態様に係る画像復号装置は、予測単位内の画像を、1枚の参照画像を参照する単予測、及び、2枚の参照画像を参照する双予測の何れかの画面間予測の予測方式によって復元する画像復号装置において、上記画面間予測が適用される、所定サイズ以下のサイズの予測単位である対象予測単位について、双予測を行うことを制限する双予測制限手段を備える構成である。
上記制限を行うことで、復号処理のボトルネックになるような処理の処理量を低減することができるという効果を奏する。
[2−3−2]双予測の制限を行うサイズの決定
以下では、図58〜図70を用いて、双予測の制限を行うサイズを決定するための構成について開示する。
(レベル規制)
まず、図58および図59を用いて、H.264/AVCにおけるレベル規制(level limit)について説明する。図58および図59は、H.264/AVCにおけるレベル規制を定義するテーブルである。
図58を参照しながら、レベル規制について説明する。レベル規制におけるレベルとは、デコーダの性能や、ビット・ストリームの複雑さを規定するものである。
レベルは、整数部と、非整数部とにより指定される。整数部のレベルは、主として、取り扱う画像の解像度に応じた大まかな区分を表している。図58に示すように、整数には、1〜5までの数が指定される。レベル1、レベル2、およびレベル3は、それぞれQICF、CIF、SDTV(標準テレビ)の解像度に対応している。
また、レベル4は、HDTV(高精細テレビ)の解像度に対応している。そして、レベル5は、スーパーHDTVの解像度への対応している。
また、図58に示すように、各整数レベルでは、さらに、非整数部によって、中間レベルが指定される場合がある(COL581で示す“Level number”の項目を参照)。
これらのレベル指定に対し、デコーダの性能や、ビット・ストリームの複雑さを表すパラメータが定義される。
図58に示す表に規定されるパラメータは、Level number(COL581)から、表中、右側に向けて順に、MaxMBPS、MaxFS、MaxDPB、MaxBR、MaxCPB、MaxVmvR、MinCR、MaxMvsPer2Mbである。
ここで、参照番号COL582で示すMaxFSについて、説明すると次のとおりである。MaxFSは、最大のフレーム・サイズを、マクロブロックの数(MBs)で規定するものである。
例えば、レベル2.2および3では、MaxFS=1620である。また、レベル3.1では、MaxFS=3600であり、レベル3.2では、MaxFS=5120である。
画面サイズには、480p、720p、1080p、4kなどがあるが、これらの画面サイズが、どのレベルで処理可能かは、MaxFSにより定まる。
1つのマクロブロックは、16×16=256画素から構成される。よって、例えば、480p(720×480)に含まれるマクロブロックの数は、720×480/256=1350(MBs)である。上述のとおりレベル2.2では、MaxFS=1620であるので、480pを処理することが可能である。
また、例えば、720p(1280×720)については、1フレームあたり1280×720/256=3600(MBs)のマクロブロックを処理できればよい。よって、レベル3.1および3.2では、720pを処理することが可能である。なお、画像サイズの処理能力の計算において、16で割り切れない画像サイズが対象となる場合、画像サイズを16で割り切れる値に切り上げて計算が行われる。例えば、「1080p」は1920x1088に相当する画面としてマクロブロック分割されてから計算が行われる。
以下、図58において、4〜5.1の各レベルにおいて処理可能な画面サイズを、表の右側に示している。
レベル4〜4.2では、1080pを処理可能である。また、レベル5では、PCディスプレイで使用されるサイズである2560x1600が処理可能である。また、レベル5.1では、4kが処理可能である。
なお、図59において参照番号COL591に示すように、レベル3.1以上(720p以上の画面サイズ)においては、輝度の双予測が許容される最小のブロックサイズは、8×8である(MinLumaBiPredSize)。つまり、レベル3.1以上では、サブマクロブロック単位(8×4、4×8、および4×4)での双予測は禁止される。
H.264/AVCにおけるマクロブロックは、HEVCでは、CU、TUおよびPUに相当する単位である。
ところで、H.264/AVCでは双予測のみが制限されているが、小サイズのPUでは単予測においても、動き補償のためのフィルタ処理に必要な処理量および参照画素の転送量が大きくなる。従って、小PUサイズの双予測制限と同時に、小PUサイズの制限が適当である。なお、レベルが大きくなるにつれて、基本的に使用される解像度(画像サイズ)が大きくなるが、解像度が大きくなるほど処理量および転送量が厳しくなる。同時に解像度が大きい場合は、オブジェクトサイズもそれに応じて大きくなるため(動きの空間相関が大きくなるため)、比較的大きなPUだけでも高い符号化効率が実現できる。逆に符号化効率の大きな低下なく、小PUサイズの使用、および、小PUサイズでの双予測を制限できるようになる。解像度は基本的にレベルに対応するため、レベルに応じて、制約を設けたいPUサイズおよび双予測の制限を行いたい予測単位(PU)は異なる。例えば、level 3.1(720P)では、4×4PUに制約を設けるとともに、8×4PU、および4×8PUにおいて双予測の制限を行うことが好ましい。また、level 5(2560×1600相当および4k相当)では、8×4PUおよび4×8PUに制約を設けるとともに、8×8PUにおいて双予測の制限を行うことが好ましい。
また、HEVCでは、後述する符号化データ中の値log2_min_coding_block_size_minus3により、最小のCUサイズを制御できるが、最小のCUサイズを小さくする目的は、処理量および転送量の削減であるから、処理量および転送量に大きな影響を与える双予測も同時に制限することが適当である。また、制限したい処理量および転送量の度合いは、最小のCUサイズ毎に代わることから、最小のCUサイズに応じて、双予測の制限を適応的に変更することが好ましい。図60を用いて、適応的な制約・制限の例について説明する。図60の(a)は、16×16CUの場合の双予測の制限を例示している。また、図60の(b)は、8×8CUの場合の双予測の制限を例示している。図60の(a)に例示するように、16×16CUについては、16×16PU、16×8PU、8×16PU、および8×8PU等を取り得る。ここで、16×16PU、16×8PU、8×16PUには双予測制限を行わない一方で、8×8PUには双予測制限を行う。
また、図60の(b)に例示するように、8×8CUについては、8×8PU、8×4PU、および4×8PUを取り得る。ここで、8×8PUには双予測制限を行わない一方で、8×4PU、および4×8PUには双予測制限を行う。
(レベル規制による符号化データの制限)
図60に示したような適応的な制約・制限は、動画像復号装置1に特別な構成を施さずとも、レベルに応じて、符号化データを復号する際に導出される動き補償パラメータの値を制限するレベル規制によっても実現することができる。図84は、本発明のレベル規制の一例である。図84のテーブル中の、MaxLog2MinCUSize、MinPUSize、およびMinBipredPUSizeは、各々、最小CUサイズの対数値、最小PUサイズ、および最小双予測PUサイズであり、特定レベルにおいて使用可能なCUサイズおよびPUサイズの最小値を示す。図84のように、レベルlevel_idcが所定の閾値TH1未満である場合には、最小CUサイズの対数値、最小PUサイズは各々3、4×4であり特に制限しない。最小双予測PUサイズは8×4、4×8であり、4×4PUの双予測を使用不可とする。続いて、レベルlevel_idcが所定の閾値TH1以上、所定の閾値TH2未満の場合には、最小CUサイズの対数値(最小PUサイズの対数値)は、3であり特に制限しないが、最小PUサイズは8×4、4×8とする。すなわち4×4PUを使用不可とする。さらに、最小双予測PUサイズは8×4、4×8であり、4×4PUの双予測を使用不可とする。続いて、所定の閾値TH2以上の場合には、最小CUサイズの対数値は4であり最小PUサイズは8×8に制限する。すなわち、8×4PU、4×8PU、4×4PUを使用不可とする。さらに、最小双予測PUサイズは16×8であり、8×8PUの双予測を使用不可とする。なお、8×4PU、4×8PU、4×4PUの双予測も最小PUサイズ制限により使用不可である。なお、閾値TH1は720Pのラインであるレベル2.1、閾値TH2は、2560×1600相当のラインであるレベル5とすることが適当であるが、他の閾値を用いても良い。
図85は、本発明のレベル規制の別の例である。本例では、図84の例とほぼ同一であるが、レベルlevel_idcが所定の閾値TH0未満である場合には、最小CUサイズの対数値、最小PUサイズ、最小双予測PUサイズは各々3、4×4、4×4であり全て制限を加えない。このように、制限を加えないレベルを設けても良い。なお、レベル規制は、符号化データの制限を行うだけ、すなわち、小PUサイズにおける、インター予測フラグの復号のスキップ、マージ候補の双単変換、マージ候補導出における双予測マージ候補導出のスキップの一部、もしくは、全部を行わなくても良い。また逆に、小PUサイズにおける、インター予測フラグの復号のスキップ、マージ候補の双単変換、マージ候補導出における双予測マージ候補導出のスキップの一部もしくは全部を併用しても良い。
[作用・効果]
本レベル規制によれば、使用可能なPUサイズと使用可能な双予測PUサイズの両者をレベルに応じて制限するため、動き補償のためのフィルタ処理に必要な処理量および参照画素の転送量を適切に制限することができる。H.264/AVCにおけるレベル規制のように、使用可能な双予測PUサイズだけを制限する場合には、使用可能なPUサイズの制限を行わないため、小PUの場合に、単予測においても双予測の場合と同様に大きな処理量および転送量が必要となるという課題がある。すなわち、本レベル規制によれば、双予測に伴う処理量および転送量は制限されるが、単予測の処理量および転送量は制限されないというアンバランスがなくなる。
さらに、本レベル規制によれば、同じ閾値を用いて、使用可能なPUサイズと使用可能な双予測PUサイズの両者をレベルに応じて切り替える。例えば、閾値TH1の前後で、最小PUサイズMinPUSizeを変更する場合には、同じ閾値TH1を用いて最小双予測PUサイズMinBipredPUSizeを変更する。このように、使用可能なPUサイズと使用可能な双予測PUサイズの閾値を同じ値を用いることで、特定のレベル以下の復号をサポートする動画像復号手段において、処理量および転送量を適切に制限することができる。また、どのレベルで必要な制限が変化するかが簡明となる。
さらに、本レベル規制によれば、以下の使用可能なPUサイズと使用可能な双予測PUサイズとして以下の組み合わせを用いる。
4×4PU制限と8×4PU双予測制限
8×4PU制限と8×8PU双予測制限
本組み合わせのPU制限および双予測制限は互いに同程度の処理量および転送量の制限を行うことになるので、バランスが良い。
(構成の説明)
まず、図61に加えて、図62〜図70を参照しながら、双予測の制限を行うサイズを決定するための構成について説明する。図61に示す構成は、図43に示した構成において、双予測制限PU判定部1218を双予測制限PU判定部1218Aに変更したものである。
双予測制限PU判定部1218Aは、双予測限定条件を判定し、対象PUにおいて双予測を用いない双予測制限を行うか否かを判定する。双予測制限PU判定部1218Aは、スキップCU及びマージPUの双予測制限を行うか否か、及び、基本インターPUの双予測制限を行うか否かを、独立に判定しても良い。
なお、マージの利用を制限する場合のように、スキップPUでインター予測フラグを復号する場合には、スキップPU、マージPU、基本インターPUの各々で双予測制限を行うか否かを、独立に判定することも可能である。
また、図43に示した構成と同様、上記の構成では、スキップ動き補償パラメータ導出部1211において設定された双予測・単予測の設定を双単予測変換部1219Aにおいて双予測制限PU判定部1218Aに基づき判定する構成でもよい。また、これに限られず、例えば、双予測制限PU判定部1218Aの判定結果を直接スキップ動き補償パラメータ導出部1211に入力し、双予測・単予測の設定を行う構成でも構わない。
双予測制限PU判定部1218Aが行う双予測限定条件の判定は、エンコーダ側から設定された各種のフラグ・パラメータに基づいて行われる。双予測制限PU判定部1218Aは、具体的には、以下の(1A)〜(1E)に例示するように構成することが可能である。以下において、(1A)〜(1E)の各構成例について、シンタックステーブルと、疑似コードとを示しながら説明する。なお、レベル規制と各構成例は対立するものではなく、併用することも可能である。
(1A)双予測制限を行うか否かを示すフラグを設けて、双予測制限のサイズを直接指定する
[シンタックステーブル]
図62を用いて、双予測制限に関するシンタックステーブルの一例について説明する。図62は、双予測制限に関するシンタックステーブルの一例を示す図である。図62に示すように、符号化データのシーケンスパラメータセットのRBSP(Raw Byte Sequence Payload)では、log2_min_coding_block_size_minus3(SYN621)、inter_4x4_enabled_flag(SYN622)、restrict_bipred_flag(SYN623)、および、log2_min_bipred_coding_block_size_minus3(SYN625)が符号化される。
log2_min_coding_block_size_minus3は、最小CUサイズを決定するフラグである。log2_min_coding_block_size_minus3には、指定したい最小CUサイズの対数値から3を差し引いた値が格納される。例えば、最小CUサイズが8×8の場合、log2_min_coding_block_size_minus3 = 0であり、最小CUサイズが16×16の場合、log2_min_coding_block_size_minus3 = 1である。
inter_4x4_enabled_flagは、その名称のとおり、インター4×4PUを禁止するフラグである。
log2_min_coding_block_size_minus3およびinter_4x4_enabled_flagは、各々、最小CUサイズの対数値Log2MinCUSizeと4×4PU使用可能性を示し、使用可能なPUのサイズを制約する。最小CUサイズの対数値Log2MinCUSizeは、log2_min_coding_block_size_minus3+3により導出される。例えば、Log2MinCUSize=3の場合には最小CUサイズは8×8であり、Log2MinCUSize=4の場合には最小CUサイズは16×16になる。最小CUサイズが8×8の場合には、最小CUを分割して得られるPUである、8×4PU、4×8PU、4×4PUが使用可能である。但し、inter_4x4_enabled_flagが0の場合には4×4PUは使用不可となる。
また、例えば、Log2MinCUSize=4(log2_min_coding_block_size_minus3=1)のとき、すなわち、最小CUサイズが16×16CUであるときには、8×8のCUサイズは使用できない。よって、8×8PUは、使用可能であるが、8×8を分割してのみ得られるPUである8×4PU、4×8PU、4×4PUは、使用不可となる。
restrict_bipred_flagおよびlog2_min_bipred_coding_block_size_minus3は、双予測制限に関する情報である。
restrict_bipred_flagは、双予測を制限すべきか否かを示すフラグである。このフラグの値は、動画像符号化装置2において、レベルに応じて決定される。restrict_bipred_flagが、“1”である場合、双予測の制限をすることを示す。また、restrict_bipred_flagが、“0”である場合、双予測の制限をしないことを示す。
log2_min_bipred_coding_block_size_minus3は、双予測制限を行う最小のCUサイズ(以下、最小双予測制限CUサイズと称する)を直接指定するものである。log2_min_bipred_coding_block_size_minus3におけるサイズの指定の仕方は、log2_min_coding_block_size_minus3と同様である。また、log2_min_bipred_coding_block_size_minus3は、restrict_bipred_flagが符号化されている場合に復号される(SYN625)。
[疑似コード]
続いて、図63に示す疑似コードを用いて、双予測制限PU判定部1218Aの動作について説明する。以下に、図63に示す擬似コードの各ステップSについて説明する。
S631:双予測制限PU判定部1218Aは、restrict_bipred_flagが“0”か否かを判定する。
S632:restrict_bipred_flagが“0”である場合、双予測制限PU判定部1218Aは、DisableBipred変数に、“0”を設定する。DisableBipred変数は、双予測の制限を行うか否かを示す変数である。DisableBipred変数に、“0”が設定されている場合、双予測の制限は行れない。DisableBipred変数に、“1”が設定されている場合、双予測の制限が行れる。
S633:一方、restrict_bipred_flagが“0”でない場合、双予測制限PU判定部1218Aは、さらにLog2MinBipredCUSizeが“3”であるか否かを判定する。なお、ここで、Log2MinBipredCUSize = log2_min_bipred_coding_block_size_minus3 + 3である。すなわち、S633では、双予測制限を行う最小CUサイズが8×8CUであるか否かを判定している。
S634:Log2MinBipredCUSizeが“3”である場合、双予測制限PU判定部1218Aは、DisableBipred変数を次のように設定する。
CUサイズの対数値(log2CUSize)が、Log2MinBipredCUSize(=3)と一致しており、かつ、PUのモードが、2N×2N以外のモードのPUについて双予測を制限する。
すなわち、S634では、最小双予測制限CUサイズが8×8CUの場合、8×8CUについて、8×8PU以外(2N×2N)のPUにおける双予測を制限する。
なお、S634において、“&&”の演算子は、論理積を示している。すなわち、“&&”の左項においては、対象ブロックのCUサイズの対数値(log2CUSize)が、Log2MinBipredCUSize(ここでは、“3”)と一致するか否かを判定している。また、“&&”の右項においては、PUのモード(PartMode)が、2N×2Nでないことを判定している。なお、“!=”は、「等しくない」関係を示す関係演算子である。
S635:一方、Log2MinBipredCUSizeが“3”でない場合、双予測制限PU判定部1218Aは、DisableBipred変数を次のように設定する。
CUサイズの対数値(log2CUSize)が、Log2MinBipredCUSizeと一致しており、かつ、PUのモードが、N×NであるPU(最小PU)について双予測を制限する。
すなわち、S635では、最小双予測制限CUサイズが8×8以外(例えば、16×16)の場合には、最小双予測制限CUサイズと一致するサイズのCUについて、最小PU(N×N)における双予測を制限している。図中、“Bを制限する”と記載しているのは、“双予測(Bi-predictive prediction)を制限する”の意味である。
なお、S635は、次のS635’のように変形しても構わない。
S635’:Log2MinBipredCUSizeが“3”でない場合、双予測制限PU判定部1218Aは、DisableBiPred変数を次のように設定する。
「CUサイズの対数値(log2CUSize)が、Log2MinBipredCUSizeと一致しており、かつ、PUのモードが、N×Nである場合」または、「CUサイズの対数値(log2CUSize)が、Log2MinBipredCUSizeよりも小さい場合」に、双予測を制限する。
S635’では、S635における制限に加えて、最小双予測制限CUサイズよりも小さいCUサイズの場合、すべてのモードについて双予測を制限する。
[作用・効果]
本構成例では、動画像符号化装置2の意図(符号化データに含まれる情報)に合わせて適応的に双予測制限を行うことができる。
動画像符号化装置2は、例えば、動画像の解像度や動画像復号装置1の性能に合わせて、双予測制限に関する情報を符号化すればよい。
これにより、動画像復号装置1において、動画像の解像度や動画像復号装置1の性能に合わせて、双予測制限に関する細かい調整が可能となる。
(1B)双予測制限に関する追加のフラグを設けないで、最小CUサイズに連動して双予測制限のサイズを決定する
[シンタックステーブル]
図64を用いて、双予測制限に関するシンタックステーブルの他の例について説明する。図64は、双予測制限に関するシンタックステーブルの他の例を示す図である。図64に示すように、符号化データのシーケンスパラメータセットのRBSPでは、log2_min_coding_block_size_minus3が符号化されていればよい(SYN641)。
[疑似コード]
続いて、図65に示す疑似コードを用いて、双予測制限PU判定部1218Aの動作について説明する。以下に、図65に示す擬似コードの各ステップSについて説明する。
S651:双予測制限PU判定部1218Aは、Log2MinCUSizeが“3”であるか否かを判定する。ここで、Log2MinCUSize = log2_min_coding_block_size_minus3 + 3である。すなわち、S651では、最小CUサイズが8×8CUであるか否かを判定している。
S652:Log2MinCUSizeが“3”である場合、双予測制限PU判定部1218Aは、DisableBipred変数を次のように設定する。
CUサイズの対数値(log2CUSize)が、Log2MinCUSize(=3)と一致しており、かつ、PUのモードが、2N×2N以外のモードのPUについて双予測を制限する。
すなわち、S652では、CUサイズが8×8CUの場合、最小CUサイズと一致するサイズのCUについて、8×8PU以外(2N×2N)のPUにおける双予測を制限する。
S653:一方、Log2MinCUSizeが“3”でない場合、双予測制限PU判定部1218Aは、DisableBipred変数を次のように設定する。
CUサイズの対数値(log2CUSize)が、Log2MinCUSizeと一致しており、かつ、PUのモードが、N×NであるPU(最小PU)について双予測を制限する。
すなわち、S653では、最小CUサイズが、8×8以外(例えば、16×16)の場合、最小CUサイズと一致するサイズのCUについて、最小PU(N×N)における双予測を制限している。
[作用・効果]
本構成例では、最小CUサイズに合わせて、双予測の制限を行う。よって、双予測制限に関する情報を追加で符号化することなく双予測の制限が可能となる。
(1C)双予測制限を行うか否かを示すフラグを設けて、最小CUサイズに連動して双予測制限のサイズを決定する
[シンタックステーブル]
図66を用いて、双予測制限に関するシンタックステーブルの別の例について説明する。図66は、双予測制限に関するシンタックステーブルの別の例を示す図である。図66に示すように、符号化データのシーケンスパラメータセットのRBSPでは、log2_min_coding_block_size_minus3(SYN661)、restrict_bipred_flag(SYN663)を符号化する。なお、符号化データのシーケンスパラメータセットのRBSPにおいて、inter_4x4_enabled_flagが符号化されていてもよい(SYN662)。
[疑似コード]
続いて、図67に示す疑似コードを用いて、双予測制限PU判定部1218Aの動作について説明する。以下に、図67に示す擬似コードの各ステップSについて説明する。
S671:双予測制限PU判定部1218Aは、restrict_bipred_flagが“0”か否かを判定する。
S672:restrict_bipred_flagが“0”である場合、双予測制限PU判定部1218Aは、DisableBipred変数に、“0”を設定する。
S673:一方、restrict_bipred_flagが“0”でない場合、双予測制限PU判定部1218Aは、さらにLog2MinCUSizeが“3”であるか否かを判定する。
S674:Log2CUMinSizeが“3”である場合、双予測制限PU判定部1218Aは、DisableBipred変数を次のように設定する。
CUサイズの対数値(log2CUSize)が、Log2MinCUSize(=3)と一致しており、かつ、PUのモードが、2N×2N以外のモードのPUについて双予測を制限する。
すなわち、S674では、S652と同様、CUサイズが8×8CUの場合、最小CUサイズと一致するサイズのCUについて、8×8PU以外(2N×2N)のPUにおける双予測を制限する。
S675:Log2MinCUSizeが“3”でない場合、双予測制限PU判定部1218Aは、DisableBipred変数を次のように設定する。
CUサイズの対数値(log2CUSize)が、Log2MinCUSizeと一致しており、かつ、PUのモードが、N×NであるPU(最小PU)について双予測を制限する。
すなわち、S675では、S653と同様、最小CUサイズが、8×8以外(例えば、16×16)の場合、最小CUサイズと一致するサイズのCUについて、最小PU(N×N)における双予測を制限している。
[作用・効果]
本構成例では、双予測制限を行うか否かを示すフラグの判定に応じて、最小CUサイズに合わせて、双予測の制限を行う。よって、最小双予測制限CUサイズを直接指定する双予測制限に関する情報については、追加で符号化することなく双予測の制限が可能となる。本構成例では、使用可能なPUサイズと使用可能な双予測PUサイズの両者を同じLog2MinCUSizeフラグによって制御するため、双予測に伴う処理量および転送量と、単予測に伴う処理量および転送量をバランスよく制限することができる。
なお、本構成例は、以下に示す(1C’)のように変形してもよい。
(1C’)1Cにおいて、双予測制限を行うか否かを示すフラグを3値のフラグに変更する
以下では、図68に示す疑似コードを用いて、1Cにおいて、restrict_bipred_flagを3値フラグとする変形例について説明する。本変形例では、restrict_bipred_flagは、0、1、および、これら以外の値(例えば、2)を取り得るものとする。以下に、図67に示す擬似コードの各ステップSについて説明する。
S681:restrict_bipred_flagが“0”である場合、双予測制限PU判定部1218Aは、DisableBipred変数に、“0”を設定する。
S682:restrict_bipred_flagが“1”である場合、双予測制限PU判定部1218Aは、DisableBipred変数を次のように設定する。
「CUサイズの対数値(log2CUSize)が、Log2MinCUSizeと一致しており、かつ、PUのモードが、2N×2N以外である場合」または、「CUサイズの対数値(log2CUSize)が、Log2MinCUSizeよりも小さい場合」に、双予測を制限する。
S682:restrict_bipred_flagが、上記以外の値である場合(例えば、“2”の場合)、双予測制限PU判定部1218Aは、DisableBipred変数を次のように設定する。
「CUサイズの対数値(log2CUSize)が、Log2MinCUSizeと一致しており、かつ、PUのモードが、N×Nである場合」または、「CUサイズの対数値(log2CUSize)が、Log2MinCUSizeよりも小さい場合」に、双予測を制限する。
[作用・効果]
本変形例によれば、restrict_bipred_flagを3値フラグとして構成しているので、双予測制限に関するより細かい調整を実現することができる。
例えば、16×16CUにおいて、8×8PUにおける双予測制限のみを行うことや、8×8PU、16×8PU、および8×16PUにおける双予測制限を行うことができる。このように、本変形例によれば、双予測制限に関し、幅広い選択肢を提供することができる。
(1D)双予測制限を行うか否かを示すフラグが、インター4×4PUを禁止することを示すフラグを兼ねる
[シンタックステーブル]
図69を用いて、双予測制限に関するシンタックステーブルのさらに別の例について説明する。図69は、双予測制限に関するシンタックステーブルのさらに別の例を示す図である。図69に示すように、符号化データのシーケンスパラメータセットのRBSPでは、log2_min_coding_block_size_minus3(SYN691)およびrestrict_motion_compensation_flag(SYN692)が符号化される。
ここで、図66に示した(1C)のシンタックステーブルと、図69に示す(1D)のシンタックステーブルとの比較を行うと次のとおりである。
すなわち、本構成例に係る符号化データのシーケンスパラメータセットのRBSPでは、図66に示すinter_4x4_enabled_flag(SYN662)およびrestrict_bipred_flag(SYN663)に替えて、restrict_motion_compensation_flag(SYN692)が符号化される。
restrict_motion_compensation_flagは、!inter_4x4_enabled_flag(“!”は、論理否定の論理演算子を表す)およびrestrict_motion_compensation_flagを共通化したものである。すなわち、restrict_motion_compensation_flagは、インター4×4を禁止するか否かを示すフラグでもあり、双予測を制限すべきか否かを示すフラグでもある。
[疑似コード]
続いて、図70に示す疑似コードを用いて、双予測制限PU判定部1218Aの動作について説明する。以下に、図70に示す擬似コードの各ステップSについて説明する。
S701:双予測制限PU判定部1218Aは、restrict_motion_compensation_flagが“0”か否かを判定する。
S702:restrict_motion_compensation_flagが“0”である場合、双予測制限PU判定部1218Aは、DisableBipred変数に、“0”を設定する。
S703:一方、restrict_motion_compensation_flagが“0”でない場合、双予測制限PU判定部1218Aは、さらにLog2MinCUSizeが“3”であるか否かを判定する。
S704:Log2CUSizeが“3”である場合、双予測制限PU判定部1218Aは、DisableBipred変数を次のように設定する。
CUサイズの対数値(log2CUSize)が、Log2MinCUSize(=3)と一致しており、かつ、PUのモードが、2N×2N以外のモードのPUについて双予測を制限する。
すなわち、S704では、S674と同様、CUサイズが8×8CUの場合、最小CUサイズと一致するサイズのCUについて、8×8PU以外(2N×2N)のPUにおける双予測を制限する。
S705:Log2CUSizeが“3”でない場合、双予測制限PU判定部1218Aは、DisableBipred変数を次のように設定する。
CUサイズの対数値(log2CUSize)が、Log2MinCUSizeと一致しており、かつ、PUのモードが、N×NであるPU(最小PU)について双予測を制限する。
すなわち、S705では、S675と同様、最小CUサイズが、8×8以外(例えば、16×16)の場合、最小CUサイズと一致するサイズのCUについて、最小PU(N×N)における双予測を制限している。
[作用・効果]
本構成例では、双予測制限を行うか否かを示すフラグが、インター4×4PUを禁止することを示すフラグを兼ねる。本構成例によれば、フラグの数を削減することができ、比較的簡易に双予測の制限を実現することができる。
(1E)レベルの値に基づいて双予測制限のサイズを決定する
[シンタックステーブル]
図64のシンタックステーブルを用いる。図64に示すように、符号化データのシーケンスパラメータセットのRBSPでは、level_idcが符号化されていればよい(SYN642)。
[疑似コード]
続いて、図86に示す疑似コードを用いて、双予測制限PU判定部1218Aの動作について説明する。以下に、図86に示す擬似コードの各ステップSについて説明する。
S861:双予測制限PU判定部1218Aは、レベルlevel_idcの値が所定の閾値TH1未満であるか否かを判定する。
S862:レベルlevel_idcの値がTH1未満である場合、双予測制限PU判定部1218Aは、特に処理は行わない。
S863:一方、レベルlevel_idcの値がTH1未満でない場合、双予測制限PU判定部1218Aは、さらにレベルlevel_idcの値が所定の閾値TH2未満か否かを判定する。
S864:レベルlevel_idcの値がTH2未満である場合、双予測制限PU判定部1218Aは、DisableBipred変数を次のように設定する。
CUサイズの対数値(log2CUSize)が、Log2MinCUSize(=3)と一致しており、かつ、PUのモードが、2N×2N以外のモードのPUについて双予測を制限する。
すなわち、S864では、最小CUサイズである8×8のCUについて、8×8PU以外(2N×2N)のPUにおける双予測を制限する。
S865:レベルlevel_idcの値がTH2未満でない場合、双予測制限PU判定部1218Aは、DisableBipred変数を次のように設定する。
CUサイズの対数値(log2CUSize)が、Log2MinCUSize(=4)と一致しており、かつ、PUのモードが、N×NであるPU(最小PU)について双予測を制限する。
すなわち、S865では、最小CUサイズが、8×8以外(例えば、16×16)の場合、最小CUサイズと一致するサイズのCUについて、最小PU(N×N)における双予測を制限している。なお、S864およびS865において、双予測制限PU判定部1218Aは、レベルlevel_idcの値に応じて、図84のテーブルのMaxLog2MinCUSizeを参照して、Log2MinCUSizeを決定してもよい。例えば、図84に示すように、レベルlevel_idcの値がTH1以上、TH2未満である場合、MaxLog2MinCuSize=3であるので、S864において、双予測制限PU判定部1218Aは、Log2MinCUSizeの値として、MaxLog2MinCuSize=3を用いることができる。S865においても同様に、双予測制限PU判定部1218Aは、Log2MinCUSizeの値として、MaxLog2MinCuSize=4を用いることができる。
[作用・効果]
本構成例では、レベルの値に応じて、双予測制限を行うサイズを変更する。本構成例によれば、双予測制限を行うフラグを用いることなく、レベルで示される目的の環境に合わせて双予測の制限を実現することができる。
以上の(1A)〜(1E)に示したように構成することで、図60に示したような、適応的な制約・制限を実現することができる。なお、図84、図85で示すように、符号化データの制限するレベル規制によっても、図60に示したような、適応的な制約・制限を実現することができる。
[2−3−3] 部分的な双予測制限を行うための構成
以下では、再び図61を参照しながら、部分的な双予測制限を行うための構成について説明する。図61に示す構成は、図43に示した構成において、双単予測変換部1219を、双単予測変換部1219Aに変更したものである。
双単予測変換部1219Aは、導出されたマージ候補に対して、部分的な双予測制限を行う。より具体的には、以下に示すとおりである。
まず、双単予測変換部1219Aは、隣接マージ候補導出部1212A、時間的マージ候補導出部1212Bが導出したマージ候補を、それぞれ取得する。
そして、取得したマージ候補の動き補償パラメータが双予測を示しており、さらに、双予測制限PU判定部1218Aにおいて双予測制限を行うと判定されている場合、双単予測変換部1219Aは、取得したマージ候補の少なくとも一部について双予測を制限する。
ここで、取得したマージ候補から双予測を制限するマージ候補を選択する方法としては、先頭N個のマージ候補を選択する方法が挙げられる。双単予測変換部1219Aは、例えば、隣接マージ候補から、先頭1つ、または、先頭2つのマージ候補(双予測)を選択してもよい。
また、隣接マージ候補から1つまたは2つ、及び、時間的マージ候補から1つを選択しても良い。8×8PUの双予測においては、発明者らの実験により、時間的マージ候補を双単変換することが有用であるとの知見が得られているため、マージ候補のうち、双単変換を行うマージ候補に時間的マージ候補を含める構成は有効である。
つまり、双単予測変換部1219Aは、選択したマージ候補に対して双単変換を行う。双単変換については上述したとおりであるので、ここではその説明を省略する。
[処理の流れ]
図71を用いて、双単予測変換部1219Aの処理の流れについて説明すると、以下のとおりである。図71は、マージ動き補償パラメータ導出部1212および双単予測変換部1219Aの処理の流れの一例について示すフローチャートである。
図71に示すように、隣接マージ候補導出部1212Aが隣接マージ候補を導出すると(S711)、双単予測変換部1219Aが、導出された隣接マージ候補に対して双単変換処理を行う(S714)。S714では、双予測制限PU判定部1218Aにおいて双予測制限を行うと判定されている場合、双単予測変換部1219Aが、先頭N個の隣接マージ候補について双単変換処理を行う。なお、図71の図中、点線は、S711〜S713の処理と、並行してS714が実行されることを示している。また、双単予測変換部1219Aは、隣接マージ候補導出部1212Aから、導出されたマージ候補を1つずつ逐次取得することとする。しかしながらこれに限られず、双単予測変換部1219Aは、隣接マージ候補導出部1212Aにおいて導出されるマージ候補すべてを一括で取得してもよい。
続いて、時間的マージ候補導出部1212B、時間的マージ候補を導出すると(S712)、双単予測変換部1219Aが、導出された時間的マージ候補に対して双単変換処理を行う(S714)。このとき、S714では、双単予測変換部1219Aが、先頭N個の時間的マージ候補について双単変換処理を行ってもよいし、すべての時間的マージ候補について双単変換処理を行ってもよいし、また、双単変換処理を省略してもよい。
そして、その他のマージ候補が導出され(S713)、双単予測変換部1219Aにおける双単変換処理が完了すると処理は終了する。
[作用・効果]
双単予測変換部1219Aは、隣接マージ候補導出部1212Aから、逐次、隣接マージ候補を取得し、双予測制限が制限されている場合には、先頭N個のマージ候補について双単変換処理を行う。
上記構成によれば、一部のマージ候補について、双単変換処理を行うので、すべてのマージ候補について双単変換処理を行う場合に比べれば、双単変換処理の処理負荷が軽減される。また、少なくとも1つの時間的マージ候補において双単変換を行う構成とすれば、比較的大きいPUサイズである8×8PUにおいて双予測制限を行った場合にも、8×8PUの時間的マージ候補は単予測である、すなわち使用可能であることが保証されるため、符号化効率の低下を最小限に抑えることができる。また、マージ候補導出処理と、双単変換処理とを並行して実行するので、効率的に処理を行うことができる。
(変形例)
本構成の好ましい変形例1〜3を説明する。
(変形例1)
双単予測変換部1219Aは、すべてのマージ候補が導出され、マージ候補リストが、マージ候補格納部1212Hに格納されてから、双単予測処理を行う構成であってもよい。
そこで、図72に示すように構成変更する。図72に示す構成は、図61に示す構成において、双単予測変換部1219Aを、マージ候補導出制御部1212Gからのマージ候補リスト完成通知に基づいてマージ候補格納部1212Hに格納されているマージ候補リストに対して双単変換処理を行う双単予測変換部1219Bに変更したものである。
なお、双単予測変換部1219Bにおける双単変換処理自体は、双単予測変換部1219Aと同様であるのでその説明を省略する。
[処理の流れ]
図73を用いて、図72に示す双単予測変換部1219Bの処理の流れについて説明すると、以下のとおりである。図73は、マージ動き補償パラメータ導出部1212および双単予測変換部1219Bの処理の流れの一例について示すフローチャートである。
S731〜S733は、図44を用いて示したS101〜S103と同様であるので、その説明を省略する。
S733に続くS734において、Bスライスであれば(S734においてYES)、双予測制限PU判定部1218Aが、双予測制限を行うか否かを判定する(S735)。
双予測制限を行う場合(S735においてYES)、双単予測変換部1219Bは、マージ候補リストの先頭N個のマージ候補の双単変換を行う(S736)。そして、双単変換の実行後、その他のマージ候補が導出される(S737)。
これに対して、Bスライスでない(S734においてNO)、または、双予測制限を行わない場合(S735においてNO)には、双単変換を行うことなくその他のマージ候補が導出される(S737)。
[作用・効果]
双単予測変換部1219Bは、S731〜S733が実行されることで、マージ候補格納部1212Hにマージ候補リストが生成された後、双予測制限が制限されている場合には、マージ候補リストの先頭N個のマージ候補について双単変換処理を行う。
上記構成によれば、一部のマージ候補について、双単変換処理を行うので、すべてのマージ候補について双単変換処理を行う場合に比べれば、双単変換処理の処理負荷が軽減される。
また、S731〜S733は、S101〜S103と同様に構成することができるので、マージ候補生成処理に関しては、図44から構成を大幅に変更しなくても済む。このように、簡易な構成変更により部分的な双予測制限処理を実現することができる。
(比較)
ここで、図61、図71に示した構成と、図72、図73に示した構成との比較を行うと次のとおりである。
図61、図71に示した構成は、すでに説明したとおり、マージ候補導出処理と、双単変換処理とを並行して実行する構成である。
従って、一連の処理のタイムテーブルは、例えば、図74に示すとおりになる。図74に示すタイムチャートでは、マージ候補A〜Eが導出されており、このうち、双予測の制限により、2個のマージ候補を双単変換することにしている。また、マージ候補A、B、およびDの導出よりも、マージ候補C、Eの導出に、より時間がかかるとする。
図74に示すように、マージ候補A、Bが、マージ候補A〜Eにおける先頭2個のマージ候補であるので、双単変換の対象となる。マージ候補A、Bの双単変換は、処理時間の長いマージ候補C、Eの実行中に並行して行われる。このため、図74に示す例では、マージ候補C、Dの導出処理が終了すると、リスト作成処理が開始され、リスト作成処理が終了することで処理全体が終了する。
これに対して、図72、図73に示した構成は、マージ候補リストが生成された後、双単変換処理を行う構成である。
従って、一連の処理のタイムチャートは、例えば、図75に示すとおりになる。図75に示すタイムチャートも、図74と同様、マージ候補A〜Eが導出されており、このうち、双予測の制限により、2個のマージ候補を双単変換することにしている。また、マージ候補A、B、およびDの導出よりも、マージ候補C、Eの導出に、より時間がかかるとする。
図75に示す例では、マージ候補A〜Eが導出された後、マージ候補リストが完成してから、双単変換を行っている。
よって、図74および図75に示す例を比較すると、図75に示す例では、双単変換を行う処理時間の分だけ、図74に示す例よりも処理全体が終了する時間が遅れる。
一方、図75に示す例は、双単変換を行う処理を、マージ候補リスト作成後に追加するだけで済み、マージ候補導出からマージ候補リスト作成までのロジックを変更しなくても済む。
また、図74に示す例では、双単変換後のマージ候補をマージ候補リストとしてマージ候補格納部1212Hに格納したあと、ユニークチェックが行われる。よって、図75に示したように、作成後のマージ候補リストに含まれるマージ候補に対して、双単変換を行う場合に比較すれば、図73に示す例では、マージ候補リストに含まれるマージ候補のユニーク性が保たれる。
また、タイムチャート上は不利ではあるが、双単予測変換部1219Aと双単予測変換部1219Bを組み合わせたタイプの構成としても良い。すなわち、時間的マージ候補に限り、マージ候補導出時(マージ候補リスト格納前)に双単変換を行い、それ以外のマージ候補については、マージ候補リスト格納後に双単変換を行う構成としても良い。この場合には、8×8PUにおける双予測制限において有効な時間的マージ候補で双単変換を行うことを保証しつつ、簡易な構成で双単変換を行うことが可能になる。
(変形例2)
双単予測変換部1219Bにおいて、マージ候補リストに含まれる単予測の数に応じて双単変換を行ってもよい。
具体的には、双単予測変換部1219Bにおいて、マージ候補導出時に単予測の数をカウントし、マージ候補リストにおいてN個以上の単予測がない場合に限り、先頭N個のマージ候補を双単変換してもよい。なお、Nは、正の整数であり、例えば、N=1とすることができる。
上記構成によれば、マージ候補リストにN個以上の単予測が存在する場合には、双単変換を行わなくてもよいので、マージ候補導出処理の負荷軽減を図ることができる。
(変形例3)
双単予測変換部1219Aまたは双単予測変換部1219Bは、双予測のマージ候補についての2つの動きベクトルが非整数動きベクトルであるか否かに応じて、双単変換を行ってもよい。
ここで、非整数動きベクトルとは、画素位置を整数値として表現したときに、少なくとも一部の該動きベクトルの成分が非整数によって表されるものを指す。これに対して、画素位置を整数値として表現したときに、該動きベクトルの成分がすべて整数によって表されるものを整数動きベクトルと称する。
非整数動きベクトルに対しては、補間画像を生成するための補間フィルタを適用するため、処理負荷が高くなり、また動き補償に必要な参照画素の範囲が大きくなるため、参照画素の転送のため転送量が高くなる傾向がある。これに対して、整数動きベクトルの場合には、このようなフィルタ処理は必須ではない。
また、整数動きベクトルの場合、動き補償で必要とされる参照範囲は、対象ブロックと同一となる。よって、双予測に整数動きベクトルが含まれる場合、双予測を行っても、転送量および処理量はそれほどに多くはならない。
そこで、双単予測変換部1219Aまたは双単予測変換部1219Bは、双予測のマージ候補についての2つの動きベクトルの少なくとも一方が整数動きベクトルである場合、双単変換を省略してもよい。
すなわち、双単予測変換部1219Aまたは双単予測変換部1219Bは、双予測のマージ候補についての2つの動きベクトルがともに非整数動きベクトルである場合に限り、双単変換を行ってもよい。
また、双単予測変換部1219Aまたは双単予測変換部1219Bを次のように構成してもよい。すなわち、双単予測変換部1219Aまたは双単予測変換部1219Bは、双予測のマージ候補についての2つの動きベクトルがともに整数動きベクトルである場合、双単変換を省略してもよい。
また、双単予測変換部1219Aまたは双単予測変換部1219Bは、双予測のマージ候補についての2つの動きベクトルの少なくとも一方が非整数動きベクトルである場合、双単変換を行ってもよい。
上記構成によれば、双予測のすべてについて双単変換をしなくても済むため、双予測制限に関わるマージ候補の変換を最小限におさえることができる。
[2−3−4] 動きベクトルの整数化
以下では、図76〜図80を用いて、動きベクトルの整数化について説明する。まず、図76を用いて、動きベクトルの整数化を行うための構成について開示する。図76に示す構成は、図61に示した構成において、双単予測変換部1219Aを動きベクトル整数化部1220に変更したものである。
動きベクトル整数化部1220は、非整数動きベクトルに含まれる1以上の非整数の成分のうち、少なくとも1つの成分を整数の成分に変換する。以下、動きベクトル整数化部1220による上記変換を、動きベクトルの整数化と称する。
より具体的には、動きベクトル整数化部1220は、双予測が制限される場合、隣接マージ候補導出部1212Aまたは時間的マージ候補導出1212Bから入力されるマージ候補に双予測が含まれるとき、双予測の2つの動きベクトルが非整数動きベクトルであるか否かを判定する。そして、双予測の2つの動きベクトルのうち、少なくとも一方が非整数動きベクトルである場合、動きベクトル整数化部1220は、当該非整数動きベクトルを整数化する。
次に、図77〜図80を用いて、整数化処理の具体例について説明する。図77〜図80は、動きベクトル整数化部1220における整数化処理の具体例を示す図である。
なお、以下では、動きベクトルが(X,Y)の2次元座標表示により表されるものとする。また、以下の説明では、説明の便宜上、非整数動きベクトルとは、X成分、Y成分ともに、非整数である非整数動きベクトルを指すものとする。また、mv_Lxは、リストLx(x=0 or 1)の動きベクトルを示す。また、mv_Lx[0]は、動きベクトルのX成分を示しており、mv_Lx[1]は、動きベクトルのY成分を示している。
[X座標を整数化する]
動きベクトル整数化部1220は、図77に例示するように、動きベクトルのX座標を整数化してもよい。以下に、図77に示す擬似コードの各ステップSについて説明する。
S771:L0の動きベクトルが、非整数ベクトルであるか否かを判定する。なお、動きベクトルの座標成分の下位2ビットは、小数位置を表すビットである。“mv_L0[x] & 3”(x=0 or 1)は、座標成分の下位2ビットが“11(3)”であるか否かを判定しており、座標位置が小数位置を示しているかどうかを判定している。
S772:L0の動きベクトルが、非整数ベクトルである場合、L0のX座標の下位2ビットを“00”に設定することでL0の動きベクトルのX座標の整数化を行う。なお、“〜”は、ビット否定の演算子であr、“〜3”は、“11”のビット否定、すなわち“00”を示す。また、“&=”は、ビット積代入の演算子である。例えば、“A &= B”は、“A = A & B”を意味する。
S773:L1の動きベクトルが、非整数ベクトルであるか否かを判定する。
S774:L1の動きベクトルが、非整数ベクトルである場合、L1の動きベクトルのX座標の整数化を行う。
[Y座標を整数化する]
また、動きベクトル整数化部1220は、図78に例示するように、動きベクトルのY座標を整数化してもよい。以下に、図78に示す擬似コードの各ステップSについて説明する。
S781:L0の動きベクトルが、非整数ベクトルであるか否かを判定する。
S782:L0の動きベクトルが、非整数ベクトルである場合、L0の動きベクトルのY座標の整数化を行う。
S783:L1の動きベクトルが、非整数ベクトルであるか否かを判定する。
S784:L1の動きベクトルが、非整数ベクトルである場合、L1の動きベクトルのY座標の整数化を行う。
[X座標およびY座標を整数化する]
また、動きベクトル整数化部1220は、図79に例示するように、動きベクトルのX座標およびY座標を整数化してもよい。以下に、図79に示す擬似コードの各ステップSについて説明する。
S791:L0の動きベクトルが、非整数ベクトルであるか否かを判定する。
S792:L0の動きベクトルが、非整数ベクトルである場合、L0の動きベクトルのX座標およびY座標の整数化を行う。
S793:L1の動きベクトルが、非整数ベクトルであるか否かを判定する。
S794:L1の動きベクトルが、非整数ベクトルである場合、L1の動きベクトルのX座標およびY座標の整数化を行う。
[片方のリストのみX座標およびY座標を整数化する]
また、動きベクトル整数化部1220は、図80に例示するように、片方のリストの動きベクトルのX座標およびY座標を整数化してもよい。以下に、図80に示す擬似コードの各ステップSについて説明する。
S801:LXの動きベクトルが、非整数ベクトルであるか否かを判定する(ただし、X=0or 1)。
S802:LXの動きベクトルが、非整数ベクトルである場合、LXの動きベクトルのX座標およびY座標の整数化を行う。
[作用・効果]
すでに説明したとおり、整数動きベクトルの場合には、補間フィルタによるフィルタ処理を行わなくても済む。よって、動き補償で参照される参照範囲は、対象ブロックと一致する。このため、双予測を行っても、フィルタ処理の処理量および参照画素の転送量は、それほど多くはならない。
このため、双予測の動きベクトルの少なくとも一方が、X座標およびY座標ともに非整数成分である非整数動きベクトルである場合、X座標およびY座標ともに非整数成分を有する非整数動きベクトルの少なくとも一方の非整数成分を、整数成分に変換することができれば、非整数動きベクトルをそのまま処理するよりも、処理量および転送量を抑えられる場合がある。
また、非整数動きベクトルを、整数動きベクトルに変換すれば、参照範囲が、対象ブロックと一致するので、より一層、処理量および転送量の軽減を図ることができる。
なお、動きベクトル整数化部1220は、X座標およびY座標のいずれか一方が非整数成分でない非整数動きベクトルに対して上記整数化処理を適用しても構わない。
(3)TU情報復号部の詳細
次に、図16を用いて、TU情報復号部13および復号モジュール10の構成例について説明する。図16は、動画像復号装置1において、TU分割復号処理、変換係数復号処理、および、予測残差導出処理を行うための構成、すなわち、TU情報復号部13および復号モジュール10の構成について例示する機能ブロック図である。
以下、TU情報復号部13および復号モジュール10の順で、各部の構成について説明する。
[TU情報復号部]
図16に示すように、TU情報復号部13は、TU分割設定部131および変換係数復元部132を備える。
TU分割設定部131は、符号化データから復号したパラメータとCUサイズおよびPU分割タイプとに基づいて、TU分割の方式を設定するものである。また、変換係数復元部132は、TU分割設定部131によって設定されたTU分割に従って、各TUの予測残差を復元するものである。
[TU分割設定部]
まず、図16を参照しながら、TU分割設定部131の詳細について説明する。TU分割設定部131は、より詳細には、対象領域設定部1311、分割決定部1312、分割領域設定部(変換単位分割手段、分割手段)1313、および変換サイズ決定情報記憶部1314を備える。
対象領域設定部1311は、対象領域となるノードである対象ノードを設定する。対象領域設定部1311は、対象変換ツリーについてTU分割の処理が開始されたとき、対象領域の初期値として、対象CU全体を設定する。また、分割の深度は、“0”に設定する。
分割決定部1312は、領域分割フラグ復号部1031を用いて、対象領域設定部1311によって設定された対象ノードを分割するか否かを示す情報(split_transform_flag)を復号し、復号した情報に基づいて対象ノードの分割要否を決定する。
分割領域設定部1313は、分割決定部1312によって分割要と決定された対象ノードについて分割領域を設定する。具体的には、分割領域設定部1313は、分割要と決定された対象ノードについて、分割の深度を1加算するとともに、変換サイズ決定情報記憶部1314に記憶されている変換サイズ決定情報に基づいて対象ノードを分割する。
なお、分割により得られた各対象ノードは、対象領域設定部1311によりさらに対象領域として設定される。
すなわち、TU分割では、分割した対象ノードについて、対象領域設定部1311、分割決定部1312および分割領域設定部1313によって、“対象領域の設定”、“分割の決定”、および“分割領域の設定”の一連の処理が、再帰的に繰り返される。
変換サイズ決定情報記憶部1314には、対象ノードの分割方式を示す変換サイズ決定情報が記憶されている。変換サイズ決定情報は、具体的には、CUのサイズ、TU分割の深度(trafoDepth)、および対象PUのPU分割タイプと、TU分割パターンとの対応関係を定義する情報である。
ここで、図17を用いて、変換サイズ決定情報の具体的な構成例について説明すると次のとおりである。図17に示す変換サイズ決定情報では、CUのサイズ、TU分割の深度(trafoDepth)、および対象PUのPU分割タイプに応じて、TU分割パターンが定義されている。なお、なお、表中の“d”は、CUの分割深度を示す。
変換サイズ決定情報では、CUのサイズとして、64×64、32×32、16×16、および8×8の4つが定義されている。
また、変換サイズ決定情報では、CUのサイズに応じて、選択可能なPU分割タイプが定義されている。
CUのサイズが、64×64、32×32、および16×16である場合、PU分割タイプとして、2N×2N、2N×nU、2N×nD、N×2N、nL×2N、およびnR×2Nのいずれかを選択可能である。
また、CUのサイズが、8×8である場合、PU分割タイプとして、2N×2N、2N×NおよびN×2Nのいずれかを選択可能である。
また、変換サイズ決定情報では、CUのサイズおよびPU分割タイプに応じて、各TU分割の深度におけるTU分割パターンが定義されている。
例えば、CUのサイズが64×64である場合、次のとおりである。まず、TU分割の深度“0”は定義されておらず、64×64のCUは、強制的に分割が行われる(図17において※1にて示している)。これは、変換単位の最大サイズが32×32と定義されているためである。
TU分割深度“1”および“2”では、正方形の4分木分割のみを含む場合と、非正方形の4分木分割のみを含む場合とで異なるTU分割パターンが定義されている。
PU分割タイプが2N×2Nであり、かつ、正方形の4分木分割のみを含むTU分割パターンの場合、TU分割深度“1”では、32×32の正方形4分木分割、TU分割深度“2”では、16×16の正方形4分木分割が定義されている。
PU分割タイプが、2N×2N、2N×nU、2N×nD、N×2N、nL×2N、およびnR×2Nのいずれかであり、かつ、非正方形の4分木分割のみを含む場合の定義は次のとおりである。
まず、TU分割深度“1”では、32×32の正方形4分木分割が定義されている。続いて、TU分割深度“2”では、PU分割タイプ:2N×2N、2N×nU、2N×nDに対しては、32×8の非正方形4分木分割が定義されており、PU分割タイプ:N×2N、nL×2N、nR×2Nに対しては、8×32の非正方形4分木分割が定義されている。
さらに、CUのサイズが8×8である場合について例示すれば次のとおりである。CUのサイズが8×8である場合、選択可能なPU分割タイプは、2N×2N、2N×2、およびN×2Nである。それぞれのPU分割タイプについて、TU分割深度“1”では、8×8の正方形4分木分割、TU分割深度“2”では、4×4の正方形4分木分割が定義されている。なお、TU分割の深度“3”は定義されておらず、強制的に非分割である(図17において、※2にて示している)。
ここで、図20を用いて、TU分割設定部131におけるTU分割について詳細について説明すると次のとおりである。図20は、CUのサイズが32×32であり、かつ、PU分割タイプが2N×Nである場合のTU分割の例を示す図である。
まず、対象領域設定部1311は、TU分割処理が開始されると、対象CU全体を、対象領域の初期値として設定するとともに、depth=0とする。なお、depth=0では、領域垂直方向中央において点線にて、PU境界B1を示している。
次に、分割決定部1312が、対象ノードを分割するか否かを示す情報(split_transform_flag)に基づいて、対象ノードの分割要否を決定する。
split=1であるので、分割決定部1312は、対象ノードを分割することを決定する。
分割領域設定部1313は、depthを1加算し、変換サイズ決定情報に基づいて、対象ノードについて、TU分割パターンを設定する。分割領域設定部1313は、対象領域である対象CUについて、depth=1のTU分割を実行する。
図17に示す変換サイズ決定情報の定義に従って、分割領域設定部1313は、depth=1では、対象ノードを32×8の領域に四分木分割する。
これにより、対象ノードは、図18の(b)に示す分割方式で、TU0、TU1、TU2、および、TU3の4つの横長の長方形領域に分割される。
さらに対象領域設定部1311は、depth=1の分割深度において、TU0、TU1、TU2、および、TU3の各ノードを、順に対象領域に設定する。
ここで、TU1について、split=1が設定されているので、分割決定部1312は、TU1を分割する事を決定する。
分割領域設定部1313は、TU1について、depth=2のTU分割を実行する。図17に示す変換サイズ決定情報の定義に従って、分割領域設定部1313は、depth=2では、対象ノードを16×4の領域に四分木分割する。
これにより、対象ノードであるTU1は、図19の(a)に示す分割方式で、TU1−0、TU1−1、TU1−2、およびTU1−3の4つに横長の長方形領域に分割される。
[3−1]PU分割タイプが非対称の場合において分割領域サイズを導出する構成の例
分割領域設定部1313は、PU分割タイプが非対称の場合、小さい方のPUでは、長方形(非正方形)の変換を適用する一方で、大きい方のPUの少なくとも一部では、正方形の変換を適用する構成であってもよい。
例えば、変換サイズ決定情報記憶部1314に記憶される変換サイズ決定情報において、定義情報である小PUサイズ1314Aと、大PUサイズ1314Bとを設ける。
小PUサイズ1314Aでは、非対称に分割されたPUのうち、小さいサイズのPUにおいて、長方形の変換が適用されるよう定義する。
大PUサイズ1314Bは、非対称に分割されたPUのうち、大きいサイズのPUにおいて、正方形の変換が適用されるよう定義する。
また、分割領域設定部1313は、非対称に分割されたPUのサイズに応じて、小PUサイズ1314Aの定義情報と、大PUサイズ1314Bの定義情報とのいずれか一方を参照し、分割領域を設定する。
図21を用いて、上記構成例によるTU分割について説明すると次のとおりである。
図21は、PU分割タイプが2N×nUである場合の上記構成例によるTU分割の例を示す図である。
まず、対象領域設定部1311は、TU分割処理が開始されると、対象CU全体を、対象領域の初期値として設定するとともに、depth=0とする。なお、depth=0では、領域垂直方向中央より上方において点線にて、PU境界B2を示している。
次に、分割決定部1312が、対象ノードを分割するか否かを示す情報(split_transform_flag)に基づいて、対象ノードの分割要否を決定する。
split=1であるので、分割決定部1312は、対象ノードを分割することを決定する。
分割領域設定部1313は、depthを1加算し、変換サイズ決定情報に基づいて、対象ノードについて、TU分割パターンを設定する。分割領域設定部1313は、対象領域である対象CUについて、depth=1のTU分割を実行する。
ここで、分割領域設定部1313は、小PUサイズ1314Aに従って、非対称に分割されたPUのうち、小さいサイズのPUについて、横長の長方形のTU分割を行う。
また、分割領域設定部1313は、大PUサイズ1314Bに従って、非対称に分割されたPUのうち、大きいサイズのPUについて、正方形のTU分割を含める。なお、分割領域設定部1313は、PU境界側に位置する領域については、図21に示すように長方形のTU分割領域を含めてもかまわない。
結果として、分割領域設定部1313は、depth=1では、対象ノードを、2つの長方形のノードおよび2つの正方形のノードに四分木分割する。
これにより、対象ノードは、横長の長方形のTU0およびTU1と、正方形のTU2およびTU3との4つの領域に分割される。
さらに対象領域設定部1311は、depth=1の分割深度において、TU0、TU1、TU2、および、TU3の各ノードを、順に対象領域に設定する。
ここで、TU0およびTU2について、split=1が設定されているので、分割決定部1312は、TU0およびTU2を分割する事を決定する。
分割領域設定部1313は、TU0およびTU2について、depth=2のTU分割を実行する。分割領域設定部1313は、depth=2では、TU0を、4つの横長の長方形にTU分割し、TU2を、4つの正方形にTU分割する。
これにより、TU0は、TU0−0、TU0−1、TU0−2、およびTU0−3の4つに横長の長方形領域に分割される。また、TU2は、TU2−0、TU2−1、TU2−2、およびTU2−3の4つに横長の長方形領域に分割される。
なお、上記のようにPU分割タイプが非対称のCUにおけるTU分割を行う場合、パーティションがPU境界をまたがず、かつ、分割後の各TU分割領域の面積が同一となるよう分割することが好ましい。
[作用・効果]
本発明は以下のとおり表現することもできる。すなわち、本発明の一態様に係る画像復号装置は、符号化単位を1以上の数に分割して得られる予測単位ごとに予測画像を生成するとともに、符号化単位を1以上の数に分割して得られる変換単位ごとに予測残差を復号し、予測画像に予測残差を加算することで画像を復元する画像復号装置において、上記予測単位への分割タイプは、符号化単位を複数の異なる大きさの予測単位に分割する非対称分割または符号化単位を複数の同一の大きさの予測単位に分割する対称分割を含み、復号の対象となる上記符号化単位である対象符号化単位の分割タイプが非対称分割であるとき、上記対象符号化単位に含まれる予測単位の大きさに応じて、変換単位の分割方式を決定する変換単位分割手段を備える構成である。
よって、分割タイプが非対称分割であるときは、上記対象符号化単位に含まれる予測単位の大きさに応じて、効率よく相関を除去できるような変換単位の分割方式を選択することができる。
[3−2]一部のCUサイズにおいて、PU分割タイプが正方形の分割であるとき非矩形変換を適用する構成の例
[構成例3−2−1]
分割領域設定部1313は、PU分割タイプが正方形の分割である場合、対象ノードを非正方形に分割してもよい。
そこで、変換サイズ決定情報記憶部1314に記憶される変換サイズ決定情報において、PU分割タイプが正方形の分割である場合、対象ノードを非正方形に分割する旨定義する正方形PU分割タイプ1314Cが定義されていてもよい。
そして、分割領域設定部1313は、PU分割タイプが正方形の分割である場合、正方形PU分割タイプ1314Cを参照して対象ノードを非正方形に分割する。
分割領域設定部1313は、CUサイズが、32×32サイズであり、かつPU分割タイプが、2N×2Nである場合、TU分割において領域を32×8のノードに分割してもよい。
また、分割領域設定部1313は、CUサイズが、32×32サイズであり、かつPU分割タイプが、2N×2Nである場合、TU分割の分割方式を示す情報を追加で復号し、復号した情報に基づいて32×8、16×16、8×32のいずれかのノードに分割してもよい。
また、分割領域設定部1313は、CUサイズが、32×32サイズであり、かつPU分割タイプが、2N×2Nである場合、隣接CUのサイズおよびPU分割タイプに基づいて、対象CUを分割するTUサイズを推定してもよい。また、分割領域設定部1313は、以下の(i)〜(iii)のとおり推定を行ってもよい。
(i) 左辺にCU境界またはPU境界が存在し、上辺にはCU境界およびPU境界の境界が存在しない場合、32×8を選択。
(ii) 上辺にCU境界またはPU境界が存在し、左辺にはCU境界およびPU境界の境界が存在しない場合、8×32を選択。
(iii) 上記(i)および(ii)以外(左辺または上辺に境界が存在するか、左辺および上辺のいずれにも境界が存在しない場合)、16×16を選択。
[作用・効果]
本発明は、以下のとおり表現することもできる。すなわち、本発明の一態様に係る画像復号装置は、符号化単位を1以上の数に分割して得られる予測単位ごとに予測画像を生成するとともに、符号化単位を1以上の数に分割して得られる変換単位ごとに予測残差を復号し、予測画像に予測残差を加算することで画像を復元する画像復号装置において、上記変換単位への分割方式は、正方形および長方形の分割を含み、復号の対象となる上記予測単位である対象予測単位の形状が正方形である場合、対象変換単位を長方形の分割方式により分割する分割手段を備える構成である。
上記構成による作用・効果は以下のとおりである。領域内にエッジが存在し、画像に方向性があるにもかかわらず、正方形の予測単位が選択される場合がある。例えば、多数の横エッジが存在するオブジェクトが移動している場合、オブジェクト内では、動きは一様であるため、正方形の予測単位が選択される。しかしながら、このような場合は、変換処理では、横エッジに沿った、水平方向に長い形状の変換単位を適用することが望ましい。
上記構成によれば、復号の対象となる上記予測単位である対象予測単位の形状が正方形である場合、対象変換単位を長方形の分割方式により分割する。
よって、正方形の符号化単位においても、長方形の変換単位を選択することができ、このため上記のような領域に対する符号化効率を向上させることができる。
[構成例3−2−2]
上記構成3−2−1に加えて、分割領域設定部1313は、CUサイズが、16×16サイズであり、かつPU分割タイプが、2N×2Nである場合、各分割深度において以下のとおり分割を行う。
分割深度=1 … 16×4のTUに分割する。
分割深度=2 … 4×4のTUに分割する。
上記構成によれば、4×4のTUにおいて、16×16CUのPU分割タイプに依存せず、スキャン順が統一される。4×4のTUにおいて、16×16CUのPU分割タイプが異なることで、スキャン順が統一されていないと、16×16CUのPU分割タイプに応じてスキャン処理を変更しなければならないため、処理が複雑となる。よって、このようなスキャン順の不統一は、処理のボトルネックとなり得る。
上記構成によれば、スキャン順が統一されることにより、処理を簡略化できるという効果を奏する。
図22および図23を用いて、より具体的に説明すると、以下のとおりである。まず、図22に示すTU分割から説明する。図22は、図17に示した変換サイズ決定情報に従って分割を行った場合のTU分割の流れを示している。
図22の(a)に示すように、PU分割タイプが2N×2Nの場合 … depth=1において、分割領域設定部1313は、対象ノードの正方形の4分木分割を行う。また、depth=2において、分割領域設定部1313は、正方形に分割された各ノードに対して、さらに正方形の4分木分割を行う。ここで、スキャン順は、再帰的なzスキャンが用いられる。具体的には、図22に図示するとおりである。
図22の(b)に示すように、PU分割タイプが2N×nUの場合 … depth=1において、分割領域設定部1313は、対象ノードに対して、横長の長方形の4分木分割を行う。また、depth=2において、分割領域設定部1313は、横長の長方形に分割された各ノードに対して、さらに正方形の4分木分割を行う。ここで、各TUのスキャン順は、ラスタスキャンが用いられる。具体的には、図22に図示するとおりである。
次に、図23に示すTU分割について説明する。図23は、正方形PU分割タイプ1314Cに従って、PU分割タイプが2N×2Nの領域の分割を行った場合のTU分割の流れを示している。
PU分割タイプ:2N×2Nの場合 … depth=1において、分割領域設定部1313は、対象ノードに対して、横長の長方形の4分木分割を行う。また、depth=2において、分割領域設定部1313は、横長の長方形に分割された各ノードに対して、さらに正方形の4分木分割を行う。
その結果、スキャン順は、ラスタスキャンが用いられる。よって、PU分割タイプが2N×nUである場合と、2N×2Nである場合との間で、スキャン順をラスタスキャンに統一することができる。
[変換係数復元部]
次に、再び図16を参照しながら、変換係数復元部132の詳細について説明する。変換係数復元部132は、より詳細には、非ゼロ係数判定部1321および変換係数導出部1322を備える。
非ゼロ係数判定部1321は、判定情報復号部(係数復号手段)1032を用いて、対象CUに含まれる各TUまたは変換ツリーについての非ゼロ変換係数の存否情報を復号し、各TUに非ゼロ変換係数が存在するか否かを判定する。
変換係数導出部1322は、変換係数復号部(係数復号手段)1033を用いて非ゼロ変換係数が存在する各TUの変換係数を復元する一方で、非ゼロ変換係数が存在しない各TUの変換係数を0(ゼロ)に設定する。
[復号モジュール]
図16に示すように、復号モジュール10は、領域分割フラグ復号部1031、判定情報復号部1032、変換係数復号部1033、およびコンテキスト記憶部1034を備える。
領域分割フラグ復号部1031は、分割決定部1312から供給される符号化データおよびシンタックス種別に応じて、符号化データに含まれるバイナリからシンタックス値の復号を行う。領域分割フラグ復号部1031は、対象ノードを分割するか否かを示す情報(split_transform_flag)を復号する。
判定情報復号部1032は、変換係数導出部1322から供給される非ゼロ変換係数の存否情報の符号化データおよびシンタックス種別に応じて、当該符号化データに含まれるバイナリからシンタックス値の復号を行う。判定情報復号部1032が復号するシンタックスは、具体的には、no_residual_data_flag、cbf_luma、cbf_cb、cbf_cr、およびcbp等である。
変換係数復号部1033は、変換係数導出部1322から供給される変換係数の符号化データおよびシンタックス種別に応じて、当該符号化データに含まれるバイナリからシンタックス値の復号を行う。変換係数復号部1033が復号するシンタックスは、具体的には、変換係数の絶対値であるレベル(level)、変換係数の符号(sign)、連続するゼロのランの長さ(run)などである。
コンテキスト記憶部1034は、判定情報復号部1032および変換係数復号部1033が、復号処理の際に参照するコンテキストが記憶されている。
[3−3]変換係数復号時にコンテキストを参照する具体的構成
判定情報復号部1032および変換係数復号部1033は、それぞれ、PU分割タイプが非対称分割である場合、小さい方のPUに含まれるTUと、大きい方のPUに含まれるTUとで異なるコンテキストを用いて、変換係数に係るシンタックス値を復号する構成であってもよい。例えば、そのようなシンタックスの種類として、非ゼロ変換係数フラグ、変換係数レベル、変換係数のラン、TUツリーの各ノードにおける非ゼロ変換係数の存否情報が含まれる。前記シンタックスの組み合わせを含んでいてもよい。
そこで、コンテキスト記憶部1034では、小さい方のPUに含まれるTUにおいて参照されるコンテキストにおける変換係数に係る各種シンタックス値に対応する確率設定値である小PUサイズ1034Aと、大きい方のPUに含まれるTUにおいて参照されるコンテキストにおける確率設定値である大PUサイズ1034Bとが記憶されていてもよい。ここで、小PUサイズ1034Aおよび大PUサイズ1034Bは異なるコンテキストに対応する確率設定値である。
判定情報復号部1032は、対象TUが、小さいPUに含まれる場合、小PUサイズ1034Aを参照する一方で、対象TUが、大きい方のPUに含まれる場合、大PUサイズ1034Bを参照し、対象TUにおけるCbf(cbf_luma、cbf_cb、cbf_cr等)を算術復号する。
また、変換係数復号部1033は、対象TUが、小さいPUに含まれる場合、小PUサイズ1034Aを参照する一方で、対象TUが、大きい方のPUに含まれる場合、大PUサイズ1034Bを参照し、対象TUにおける変換係数(level、sign、run等)を算術復号する。
なお、判定情報復号部1032および変換係数復号部1033は、対象TUが、大きい方のPUに含まれる場合であって、対象TUが、小さい方のPUに近い側に位置するとき、小PUサイズ1034Aを参照してもかまわない。
言い換えれば、対象TUが、大きい方のPUに含まれる場合であっても、対象TUがPU境界の近傍に位置している場合、判定情報復号部1032および変換係数復号部1033は、小PUサイズ1034Aを参照してもかまわない。
小さい方のPUには、エッジが存在する可能性が高く変換係数が発生しやすい。これに対して、大きい方のPUでは変換係数が発生しにくい。対象TUが、小さいPUに含まれる場合と大きい方のPUに含まれる場合とで、異なるコンテキストを用いることで、それぞれの領域内における変換係数の発生確率に応じた可変長復号を行うことができる。
[作用・効果]
本発明は、以下のとおり表現することもできる。すなわち、本発明の一態様に係る画像復号装置は、符号化単位を1以上の数に分割して得られる予測単位ごとに予測画像を生成するとともに、符号化単位を1以上の数に分割して得られる変換単位ごとに予測残差を復号し、予測画像に予測残差を加算することで画像を復元する画像復号装置において、上記予測単位への分割タイプは、異なる大きさの予測単位に分割する非対称形への分割および同一の大きさの予測単位に分割する対称形への分割を含み、復号の対象となる上記予測単位である対象予測単位の分割タイプが非対称形への分割であるとき、該分割により得られた小さい予測単位および大きい予測単位の間で、異なるコンテキストを参照して変換係数を復号する係数復号手段を備える構成である。
よって、小さい予測単位に含まれる変換単位および大きい予測単位に含まれる変換単位のそれぞれの領域内における変換係数の発生確率に応じた可変長復号を行うことができる。
(処理の流れ)
図24を用いて、動画像復号装置1におけるCU復号処理について説明すると以下のとおりである。なお、以下では、対象CUは、インターCU、または、スキップCUであるとする。図24は、動画像復号装置1におけるCU復号処理(インター/スキップCU)の流れの一例について示すフローチャートである。
CU復号処理が開始されると、CU情報復号部11が、復号モジュール10を用いて、対象CUについてCU予測情報を復号する(S11)。この処理は、CU単位で行われる。
具体的には、CU情報復号部11において、CU予測モード決定部111が、復号モジュール10を用いて、スキップフラグSKIPを復号する。また、スキップフラグがスキップCUであることを示していなければ、さらに、CU予測モード決定部111は、復号モジュール10を用いて、CU予測タイプ情報Pred_typeを復号する。
次に、PU単位の処理が行われる。すなわち、PU情報復号部12が備える動き補償パラメータ導出部121が、動き情報を復号するとともに(S12)、予測画像生成部14が、復号された当該動き情報に基づいてインター予測により予測画像を生成する(S13)。
次に、TU情報復号部13が、TU分割復号処理を行う(S14)。具体的には、TU情報復号部13において、TU分割設定部131が、符号化データから復号したパラメータとCUサイズおよびPU分割タイプとに基づいて、TU分割の方式を設定する。この処理は、CU単位で行われる。
次に、TU単位の処理が行われる。すなわち、TU情報復号部13が、変換係数を復号し(S15)、逆量子化・逆変換部15が、復号された変換係数から予測残差を導出する(S16)。
次に、加算器17において、予測画像と予測残差とが加算されることにより、復号画像が生成される(S17)。この処理は、CU単位で行われる。
〔動画像符号化装置〕
以下において、本実施形態に係る動画像符号化装置2について、図25および図26を参照して説明する。
(動画像符号化装置の概要)
動画像符号化装置2は、概略的に言えば、入力画像#10を符号化することによって符号化データ#1を生成し、出力する装置である。
(動画像符号化装置の構成)
まず、図25を用いて、動画像符号化装置2の構成例について説明する。図25は、動画像符号化装置2の構成について示す機能ブロック図である。図25に示すように、動画像符号化装置2は、符号化設定部21、逆量子化・逆変換部22、予測画像生成部23、加算器24、フレームメモリ25、減算器26、変換・量子化部27、および符号化データ生成部(符号化手段)29を備えている。
符号化設定部21は、入力画像#10に基づいて、符号化に関する画像データおよび各種の設定情報を生成する。
具体的には、符号化設定部21は、次の画像データおよび設定情報を生成する。
まず、符号化設定部21は、入力画像#10を、スライス単位、ツリーブロック単位に順次分割することにより、対象CUについてのCU画像#100を生成する。
また、符号化設定部21は、分割処理の結果に基づいて、ヘッダ情報H’を生成する。ヘッダ情報H’は、(1)対象スライスに属するツリーブロックのサイズ、形状および対象スライス内での位置についての情報、並びに、(2)各ツリーブロックに属するCUのサイズ、形状および対象ツリーブロック内での位置についてのCU情報CU’を含んでいる。
さらに、符号化設定部21は、CU画像#100、および、CU情報CU’を参照して、PT設定情報PTI’を生成する。PT設定情報PTI’には、(1)対象CUの各PUへの可能な分割パターン、および、(2)各PUに割り付ける可能な予測モード、の全ての組み合わせに関する情報が含まれる。
符号化設定部21は、各分割パターンおよび各予測モードの組み合わせのコストを算出し、最低コストの分割パターンおよび予測モードを決定する。
符号化設定部21は、CU画像#100を減算器26に供給する。また、符号化設定部21は、ヘッダ情報H’を符号化データ生成部29に供給する。また、符号化設定部21は、PT設定情報PTI’を予測画像生成部23に供給する。
逆量子化・逆変換部22は、変換・量子化部27より供給される、ブロック毎の量子化予測残差を、逆量子化、および、逆直交変換することによって、ブロック毎の予測残差を復元する。逆直交変換については、図2に示す逆量子化・逆変換部15について、既に説明したとおりであるので、ここではその説明を省略する。
また、逆量子化・逆変換部22は、ブロック毎の予測残差を、TT分割情報(後述)により指定される分割パターンに従って統合し、対象CUについての予測残差Dを生成する。逆量子化・逆変換部22は、生成した対象CUについての予測残差Dを、加算器24に供給する。
予測画像生成部23は、フレームメモリ25に記録されている局所復号画像P’、および、PT設定情報PTI’を参照して、対象CUについての予測画像Predを生成する。予測画像生成部23は、予測画像生成処理により得られた予測パラメータを、PT設定情報PTI’に設定し、設定後のPT設定情報PTI’を符号化データ生成部29に転送する。なお、予測画像生成部23による予測画像生成処理は、動画像復号装置1の備える予測画像生成部14と同様であるので、ここでは説明を省略する。
加算器24は、予測画像生成部23より供給される予測画像Predと、逆量子化・逆変換部22より供給される予測残差Dとを加算することによって、対象CUについての復号画像Pを生成する。
フレームメモリ25には、復号された復号画像Pが順次記録される。フレームメモリ25には、対象ツリーブロックを復号する時点において、当該対象ツリーブロックよりも先に復号された全てのツリーブロック(例えば、ラスタスキャン順で先行する全てのツリーブロック)に対応する復号画像が、当該復号画像Pの復号に用いられたパラメータと共に、記録されている。
減算器26は、CU画像#100から予測画像Predを減算することによって、対象CUについての予測残差Dを生成する。減算器26は、生成した予測残差Dを、変換・量子化部27に供給する。
変換・量子化部27は、予測残差Dに対して、直交変換および量子化を行うことで量子化予測残差を生成する。なお、ここで直交変換とは、画素領域から周波数領域への直交変換のことをさす。また、逆直交変換の例としては、DCT変換(Discrete Cosine Transform)、およびDST変換(Discrete Sine Transform)等が挙げられる。
具体的には、変換・量子化部27は、CU画像#100、および、CU情報CU’を参照し、対象CUの1または複数のブロックへの分割パターンを決定する。また、決定された分割パターンに従って、予測残差Dを、各ブロックについての予測残差に分割する。
また、変換・量子化部27は、各ブロックについての予測残差を直交変換することによって周波数領域における予測残差を生成した後、当該周波数領域における予測残差を量子化することによってブロック毎の量子化予測残差を生成する。
また、変換・量子化部27は、生成したブロック毎の量子化予測残差と、対象CUの分割パターンを指定するTT分割情報と、対象CUの各ブロックへの可能な全分割パターンに関する情報とを含むTT設定情報TTI’を生成する。変換・量子化部27は、生成したTT設定情報TTI’を逆量子化・逆変換部22および符号化データ生成部29に供給する。
PU情報生成部30は、PT設定情報PTI’に示される予測タイプがインター予測である場合において、PT設定情報PTI’を符号化し、PT設定情報PTIを導出する。また、マージ候補についてのPTI設定情報PTI’を生成し、符号化設定部21に供給する。
符号化データ生成部29は、ヘッダ情報H’、TT設定情報TTI’、およびPT設定情報PTI’を符号化し、符号化したヘッダ情報H、TT設定情報TTI、およびPT設定情報PTIを多重化して符号化データ#1を生成し、出力する。
(動画像復号装置との対応関係)
動画像符号化装置2は、動画像復号装置1の各構成と対応する構成を含む。ここで、対応とは、同様の処理、または、逆の処理を行う関係にあるということである。
例えば、上述したように、動画像復号装置1が備える予測画像生成部14の予測画像生成処理と、動画像符号化装置2が備える予測画像生成部23の予測画像生成処理とは、同様である。
例えば、動画像復号装置1において、ビット列から、シンタックス値を復号する処理は、動画像符号化装置2において、シンタックス値から、ビット列を符号化する処理と逆の処理としての対応となっている。
以下では、動画像符号化装置2における各構成が、動画像復号装置1のCU情報復号部11、PU情報復号部12、およびTU情報復号部13とどのような対応となっているかについて説明する。これにより、動画像符号化装置2における各構成の動作・機能はより詳細に明らかになるだろう。
符号化データ生成部29は、復号モジュール10に対応している。より詳しくいえば、復号モジュール10が、符号化データおよびシンタックス種別に基づいてシンタックス値を導出するのに対して、符号化データ生成部29は、シンタックス値およびシンタックス種別に基づいて符号化データを生成する。
符号化設定部21は、動画像復号装置1のCU情報復号部11に対応している。符号化設定部21と、CU情報復号部11とを比較すると次のとおりである。
CU情報復号部11が、CU予測タイプ情報に係る符号化データとシンタックス種別とを復号モジュール10に供給し、復号モジュール10により復号されたCU予測タイプ情報に基づいてPU分割タイプを決定する。
これに対して、符号化設定部21は、PU分割タイプを決定してCU予測タイプ情報を生成し、CU予測タイプ情報に係るシンタックス値とシンタックス種別とを符号化データ生成部29に供給する。
なお、符号化データ生成部29は、復号モジュール10が備える二値化情報記憶部1012、コンテキスト記憶部1013、および確率設定記憶部1014と同様の構成を備えていてもよい。
PU情報生成部30および予測画像生成部23は、動画像復号装置1のPU情報復号部12および予測画像生成部14に対応している。これらを比較すると次のとおりである。
上述のとおり、PU情報復号部12は、動き情報に係る符号化データとシンタックス種別とを復号モジュール10に供給し、復号モジュール10により復号された動き情報に基づいて動き補償パラメータを導出する。また、予測画像生成部14は、導出された動き補償パラメータに基づいて予測画像を生成する。
これに対して、PU情報生成部30および予測画像生成部23は、予測画像生成処理において、動き補償パラメータを決定し、動き補償パラメータに係るシンタックス値とシンタックス種別とを符号化データ生成部29に供給する。
また、PU情報生成部30および予測画像生成部23は、PU情報復号部12が備えるマージ候補優先順位情報記憶部122、および参照フレーム設定情報記憶部123と同様の構成を備えていてもよい。
変換・量子化部27は、動画像復号装置1のTU情報復号部13および逆量子化・逆変換部15に対応している。これらを比較すると次のとおりである。
TU情報復号部13が備えるTU分割設定部131は、ノードの分割を行うのか否かを示す情報に係る符号化データおよびシンタックス種別を復号モジュール10に供給し、復号モジュール10により復号されたノードの分割を行うのか否かを示す情報に基づいてTU分割を行う。
さらに、TU情報復号部13が備える変換係数復元部132は、判定情報および変換係数に係る符号化データおよびシンタックス種別を復号モジュール10に供給し、復号モジュール10により復号された判定情報および変換係数に基づいて変換係数を導出する。
これに対して、変換・量子化部27は、TU分割の分割方式を決定し、ノードの分割を行うのか否かを示す情報に係るシンタックス値およびシンタックス種別を符号化データ生成部29に供給する。
また、変換・量子化部27は、予測残差を変換・量子化して得られる量子化変換係数に係るシンタックス値およびシンタックス種別を符号化データ生成部29に供給する。
なお、変換・量子化部27は、TU分割設定部131が備える変換サイズ決定情報記憶部1314と同様の構成を備えていてもよい。また、符号化データ生成部29は、復号モジュール10が備えるコンテキスト記憶部1034と同様の構成を備えていてもよい。
(PU情報生成部30の詳細)
図55は、PU情報生成部30の構成を示すブロック図である。PU情報生成部30は、動き補償パラメータを生成するための動き補償パラメータ生成部301を備える。動き補償パラメータ生成部301は、双予測制限PU判定部1218、双単予測変換部1219、マージ動き補償パラメータ生成部3012、および基本動き補償パラメータ生成部3013を備える。マージ動き補償パラメータ生成部3012は、マージ候補を生成し、PTI設定情報PTI’として、符号化設定部21に供給する。また、マージ動き補償パラメータ生成部3012は、マージ候補を選択するためのインデックスを、PT設定情報PTIとして出力する。基本動き補償パラメータ生成部3013は、入力されたPTI設定情報PTI’、ここでは動き補償パラメータからPT設定情報PTIを符号化する。
続いて、図56を用いて、マージ動き補償パラメータ生成部3012のより詳細な構成について説明すると次のとおりである。図56は、マージ動き補償パラメータ生成部3012の構成を示すブロック図である。なお、スキップPUの動きパラメータ導出もマージ動き補償パラメータ生成部3012で行われる。
マージ動き補償パラメータ生成部3012は、隣接マージ候補導出部1212A、時間的マージ候補導出部1212B、ユニーク候補導出部1212C、結合双予測マージ候補導出部1212D、非スケール双予測マージ候補導出部1212E、ゼロベクトルマージ候補導出部1212F、マージ候補導出制御部1212G、マージ候補格納部1212Hから構成される。
マージ候補を導出する処理は、マージ動き補償パラメータ導出部1212と同様に、双予測制限PU判定部1218において双予測制限を行うと判定された小サイズのPUについて、双単予測変換部1219を用いて双予測であれば単予測の動き補償パラメータに変換することによって、単予測のマージ候補のみを導出する。各部の詳細は既に説明済みであるので省略する。
マージ動き補償パラメータ生成部3012は、マージ候補を生成し、PTI設定情報PTI’として、符号化設定部21に供給する。また、マージインデックスを、PT設定情報PTIとして、符号化データ生成部29に供給する。
続いて、図57を用いて、基本動き補償パラメータ生成部3013のより詳細な構成について説明すると次のとおりである。図57は、基本動き補償パラメータ生成部3013の構成を示すブロック図である。基本動き補償パラメータ生成部3013は、隣接動きベクトル候補導出部1213A、時間的動きベクトル候補導出部1213B、ゼロベクトルマージ候補導出部1213F、動きベクトル候補導出制御部1213G、動きベクトル候補格納部1213H、動きベクトル候補選択部3013A、差分動きベクトル算出部3013B、から構成される。
予測動きベクトル候補を導出する処理は、図54に示した基本動き補償パラメータ導出部1213と同様であるので説明を省略する。動きベクトル候補選択部3013Aは、供給された予測動きベクトルに最も近い予測動きベクトル候補を、動きベクトル候補格納部1213Hに格納された予測動きベクトル候補から選択し、そのインデックスを予測動きベクトルインデックスとして導出する。選択された予測動きベクトルは、差分動きベクトル算出部3013Bに供給される。差分動きベクトル算出部3013Bは供給された動きベクトルと予測動きベクトルとの差分を差分動きベクトルとして算出する。インター予測フラグ、参照インデックス番号、及び、導出された予測動きベクトルインデックス、差分動きベクトルは、PT設定情報PTとして、符号化データ生成部29に供給される。
(具体的構成との対応関係)
[1]’ 符号化設定部および符号化データ生成部
[1−1]’コンテキストの参照を制限する構成の例
符号化データ生成部29は、PU分割タイプが非対称パーティションであるとき、非対称パーティションの分割の種類を示す情報を、CABACのコンテキストを用いないで符号化処理を行ってもかまわない。
具体的な構成は、例えば、動画像復号装置1の構成例[1−1]において説明したものと同様であるので、ここでは説明を省略する。ただし、構成例[1−1]の説明における「CU予測モード復号部1011」、「確率設定記憶部1014」、および「復号(する)」を、それぞれ、「符号化データ生成部29」、「確率設定記憶部1014に相当する構成」、および「符号化(する)」と読み替えるものとする。
[1−2]’CU予測タイプ情報(pred_type)を符号化する構成
符号化データ生成部29は、二値化情報を参照してCU予測タイプ情報を符号化するよう構成してもよい。
具体的な構成は、例えば、動画像復号装置1の構成例[1−2]において説明したものと同様であるので、ここでは説明を省略する。ただし、構成例[1−2]の説明における「CU予測モード復号部1011」、「二値化情報記憶部1012」、および「復号(する)」を、それぞれ、「符号化データ生成部29」、「二値化情報記憶部1012に相当する構成」、および「符号化(する)」と読み替えるものとする。
[1−3]’小サイズのCUにおいて、イントラCUについて短い符号を符号化する構成
符号化データ生成部29は、小サイズのCUにおいて、イントラCUについて短い符号を符号化するよう構成してもよい。
具体的な構成は、例えば、動画像復号装置1の構成例[1−3]において説明したものと同様であるので、ここでは説明を省略する。ただし、構成例[1−3]の説明における「CU予測モード復号部1011」、「コンテキスト記憶部1013」、「二値化情報記憶部1012」、および「復号(する)」を、それぞれ、「符号化データ生成部29」、「コンテキスト記憶部1013に相当する構成」、「二値化情報記憶部1012に相当する構成」、および「符号化(する)」と読み替えるものとする。
[1−4]’近傍の予測パラメータに応じてbin列の解釈を変更する構成
符号化データ生成部29は、隣接領域に割り付けられている予測パラメータを参照して、bin列の解釈を変更するよう構成してもよい。
具体的な構成は、例えば、動画像復号装置1の構成例[1−4]において説明したものと同様であるので、ここでは説明を省略する。ただし、構成例[1−4]の説明における「CU予測モード復号部1011」、「二値化情報記憶部1012」、および「復号(する)」を、それぞれ、「符号化データ生成部29」、「二値化情報記憶部1012に相当する構成」および「符号化(する)」と読み替えるものとする。
[2]’予測画像生成部および符号化データ生成部
[2−1]’マージ候補の位置および優先順位の例
PU情報生成部30は、PU分割タイプが非対称である場合、PU分割タイプが対称である場合と異なる方法でマージ候補の優先順位を決定する構成であってもよい。
具体的な構成は、例えば、動画像復号装置1の構成例[2−1]において説明したものと同様であるので、ここでは説明を省略する。ただし、構成例[2−1]の説明における「動き補償パラメータ導出部121」、および「マージ候補優先順位情報記憶部122」を、それぞれ、「動き補償パラメータ生成部301」、および「マージ候補優先順位情報記憶部122に相当する構成」と読み替えるものとする。
[2−2]’CUサイズとスキップ/マージとの組み合わせによるマージ候補の変更
PU情報生成部30は、CUサイズと、当該CUがスキップ/マージを行うCUであるか否かとの組み合わせに応じてマージ候補を変更する構成であってもよい。
具体的な構成は、例えば、動画像復号装置1の構成例[2−2]において説明したものと同様であるので、ここでは説明を省略する。ただし、構成例[2−2]の説明における「動き補償パラメータ導出部121」、および「マージ候補優先順位情報記憶部122」を、それぞれ、「動き補償パラメータ生成部301」、および「マージ候補優先順位情報記憶部122に相当する構成」と読み替えるものとする。
[2−3]’参照フレーム数の決定
動き補償パラメータ生成部301を、以下の[2−3−1]’〜[2−3−4]’に示すように構成してもよく、これによりインター予測において単予測および双予測のいずれの予測方式を適用するかを決定してもよい。
[2−3−1]’小サイズPUでの双予測制限
動き補償パラメータ生成部301は、参照フレーム設定情報を参照して、インター予測において単予測および双予測のいずれの予測方式を適用するかを決定してもよい。
具体的な構成は、例えば、動画像復号装置1の構成例[2−3−1]において説明したものと同様であるので、ここでは説明を省略する。ただし、構成例[2−3−1]の説明における「動き補償パラメータ導出部121」、および「参照フレーム設定情報記憶部123」を、それぞれ、「動き補償パラメータ生成部301」、および「参照フレーム設定情報記憶部123に相当する構成」と読み替えるものとする。
参照フレーム設定情報において、小サイズの予測方向を単予測に限定することによって、動き補償パラメータ生成部301における予測画像生成に必要な処理量を大幅に低減することができる。また、小サイズのPUにおいて、マージ候補を単予測に制限することによっても、予測画像生成に必要な処理量を低減することができる。さらに、小サイズのPUにおいて、双予測マージ候補の導出を省略することによっても、マージ候補の導出に必要な処理量を低減することができる。
[2−3−2]’双予測の制限を行うサイズの決定
PU情報生成部30は、双予測の制限を行うサイズを決定し符号化してもよい。具体的な構成は、図81に示すとおりである。図81に示す構成は、図55、56に示したPU情報生成部30において、双予測制限PU判定部1218を、双予測制限PU判定部1218Aに変更したものである。
より詳細については、例えば、動画像復号装置1の構成例[2−3−2]において説明したものと同様であるので、ここでは説明を省略する。ただし、構成例[2−3−2]の説明における「動き補償パラメータ導出部121」、「マージ動き補償パラメータ導出部1212」および「参照フレーム設定情報記憶部123」を、それぞれ、「動き補償パラメータ生成部301」、「マージ動き補償パラメータ生成部3012」および「参照フレーム設定情報記憶部123に相当する構成」と読み替えるものとする。
[2−3−3]’部分的な双予測制限を行うための構成
PU情報生成部30は、部分的な双予測制限を行ってもよい。具体的な構成は、図81および図82に示すとおりである。図81に示す構成は、図55、56に示したPU情報生成部30において、双単予測変換部1219を、双単予測変換部1219Aに変更したものである。図82に示す構成は、図55、56に示したPU情報生成部30において、双単予測変換部1219を、双単予測変換部1219Bに変更したものである。
より詳細については、例えば、動画像復号装置1の構成例[2−3−3]において説明したものと同様であるので、ここでは説明を省略する。ただし、構成例[2−3−3]の説明における「動き補償パラメータ導出部121」、「マージ動き補償パラメータ導出部1212」および「参照フレーム設定情報記憶部123」を、それぞれ、「動き補償パラメータ生成部301」、「マージ動き補償パラメータ生成部3012」および「参照フレーム設定情報記憶部123に相当する構成」と読み替えるものとする。
[2−3−4]’動きベクトルの整数化
PU情報生成部30は、動きベクトルの整数化を行ってもよい。具体的な構成は、図83に示すとおりである。図83に示す構成は、図55、56に示したPU情報生成部30において、双単予測変換部1219を、双単予測変換部1219Aに変更したものである。図82に示す構成は、図55、56に示したPU情報生成部30において、双単予測変換部1219を、動きベクトル整数化部1220に変更したものである。
より詳細については、例えば、動画像復号装置1の構成例[2−3−4]において説明したものと同様であるので、ここでは説明を省略する。ただし、構成例[2−3−4]の説明における「動き補償パラメータ導出部121」、「マージ動き補償パラメータ導出部1212」および「参照フレーム設定情報記憶部123」を、それぞれ、「動き補償パラメータ生成部301」、「マージ動き補償パラメータ生成部3012」および「参照フレーム設定情報記憶部123に相当する構成」と読み替えるものとする。
[2−3−2]’〜[2−3−4]’に示したように双予測を制限することによって、動き補償パラメータ生成部301における予測画像生成に必要な処理量を低減することができる。
(符号化データ上の動き補償パラメータの制限)
動画像復号装置では、レベル規制による符号化データの制限を説明した。これはレベル毎に符号化データを導出して得られる動き補償パラメータの値を制限するものである。このような制限は、以下に示す動画像符号化装置2により実現できる。なお、ここではインター予測フラグの符号化のスキップ、マージ候補の双単変換、マージ候補導出を行わない例を説明する。
本構成の動画像符号化装置2は、図88に示すPU情報生成部30を用いる。PU情報生成部30は、動き補償パラメータ生成部301を備える。動き補償パラメータ生成部301は、マージ動き補償パラメータ生成部3012、および基本動き補償パラメータ生成部3013を備える。予測制限PU判定部1218の代わりに、動き補償パラメータ制限部3014を備える。本構成では、マージ候補の双単変換を行わないため、双単予測変換部1219を含めないが、小PUサイズの場合にマージ候補の双単変換を行うために双単予測変換部1219を含める構成でも良い。
動き補償パラメータ制限部3014は、PUサイズ情報と、PTI設定情報PTI’を入力し、PTI設定情報PTI’の動き補償パラメータに応じて追加コストを算出する。追加コストは、符号化設定部21に伝送される。伝送された追加コストは最小コストに追加されるため大きな追加コストを設定することにより、特定の動き補償パラメータの選択を防ぐことができる。
[疑似コード]
続いて、図87に示す疑似コードを用いて、動き補償パラメータ制限部3014の動作について説明する。以下に、図87に示す擬似コードの各ステップSについて説明する。
S871:動き補償パラメータ制限部3014は、レベルlevel_idcの値が所定の閾値TH1未満であるか否かを判定する。
S872:レベルlevel_idcの値がTH1未満である場合、動き補償パラメータ制限部3014は、特に処理は行わない。
S873:一方、レベルlevel_idcの値がTH1未満でない場合、動き補償パラメータ制限部3014は、さらにレベルlevel_idcの値が所定の閾値TH2未満か否かを判定する。
S874:レベルlevel_idcの値がTH2未満である場合、動き補償パラメータ制限部3014は、DisableBipred変数を次のように設定する。
CUサイズの対数値(log2CUSize)が、Log2MinCUSize(=3)と一致しており、かつ、PUのモードが、2N×2N以外のモードのPUについて双予測を制限する。
すなわち、S874では、最小CUサイズである8×8のCUについて、8×8PU以外(2N×2N)のPUにおける双予測を制限する。
さらに、PTI設定情報PTI’が上記、制限に該当する場合には、追加コストを十分に大きく設定する。該当しない場合には、追加コストを0とする。
S874´:レベルlevel_idcの値がTH1未満である場合、動き補償パラメータ制限部3014は、使用可能なPUサイズを制限する。すなわち、動き補償パラメータ制限を制限するフラグinter_4x4_enable_flag = 0とし4×4PUの使用を制限を行う。さらに、PTI設定情報PTI’が上記、制限に該当する場合、すなわちPUサイズが4×4の場合には、追加コストを十分に大きく設定する。該当しない場合には、追加コストを0とする。なお、上記では動き補償パラメータを制限するフラグとしてinter_4x4_enable_flagを用いたが、4×4PUの使用を制限する他のフラグ(例えば、use_restricted_prediction)でも構わない。
S875:レベルlevel_idcの値がTH2未満でない場合、動き補償パラメータ制限部3014は、DisableBipred変数を次のように設定する。
CUサイズの対数値(log2CUSize)が、Log2MinCUSize(=4)と一致しており、かつ、PUのモードが、N×NであるPU(最小PU)について双予測を制限する。
すなわち、S875では、最小CUサイズが、8×8以外(例えば、16×16)の場合、最小CUサイズと一致するサイズのCUについて、最小PU(N×N)における双予測を制限している。
さらに、PTI設定情報PTI’が上記、制限に該当する場合には、追加コストを十分に大きく設定する。該当しない場合には、追加コストを0とする。
S875´:レベルlevel_idcの値がTH2未満でない場合、動き補償パラメータ制限部3014は、使用可能なCUサイズを制限することで、使用可能なPUサイズを制限する。すなわち、CUサイズの対数値Log2MinCuSizeを4以上に制限する。log2_min_cu_size_minus3を1以上に制限する。
さらに、PTI設定情報PTI’が上記、制限に該当する場合、すなわちCUサイズが8×8の場合には、追加コストを十分に大きく設定する。該当しない場合には、追加コストを0とする。なお、S874において、動き補償パラメータ制限部3014は、レベルlevel_idcの値に応じて、図84のテーブルのMaxLog2MinCUSizeを参照して、Log2MinCUSizeを決定してもよい。例えば、図84に示すように、レベルlevel_idcの値がTH1以上、TH2未満である場合、MaxLog2MinCuSize=3であるので、S874において、動き補償パラメータ制限部3014は、Log2MinCUSizeの値として、MaxLog2MinCuSize=3を用いることができる。
[3]’変換・量子化部および符号化データ生成部
[3−1]’PU分割タイプが非対称の場合において分割領域サイズを導出する構成の例
変換・量子化部27は、PU分割タイプが非対称の場合、小さい方のPUでは、長方形(非正方形)の変換を適用する一方で、大きい方のPUでは、正方形の変換を適用する構成であってもよい。
具体的な構成は、例えば、動画像復号装置1の構成例[3−1]において説明したものと同様であるので、ここでは説明を省略する。ただし、構成例[3−1]の説明における「対象領域設定部1311」「分割決定部1312」および「分割領域設定部1313」は、「変換・量子化部27」と読み替えるものとする。また、構成例[3−1]の説明における「変換サイズ決定情報記憶部1314」を、「変換サイズ決定情報記憶部1314に相当する構成」と読み替えるものとする。
[3−2]’一部のPU分割タイプが正方形の分割であるとき非矩形変換を適用する構成の例
変換・量子化部27は、PU分割タイプが正方形の分割である場合、対象ノードを非正方形に分割する構成であってもよい。また、上記構成に加えて、変換・量子化部27は、は、CUサイズが、16×16サイズであり、かつPU分割タイプが、2N×2Nである場合、各分割深度においてスキャン順が統一できるように分割を行う構成であってもよい。
具体的な構成は、例えば、動画像復号装置1の構成例[3−2]において説明したものと同様であるので、ここでは説明を省略する。ただし、構成例[3−2]の説明における「分割領域設定部1313」、および「変換サイズ決定情報記憶部1314」は、それぞれ、「変換・量子化部27」、および「変換サイズ決定情報記憶部1314に相当する構成」と読み替えるものとする。
[3−3]’変換係数符号化時にコンテキストを参照する具体的構成
符号化データ生成部29は、PU分割タイプが非対称分割である場合、小さい方のPUに含まれるTUと、大きい方のPUに含まれるTUとで異なるコンテキストを用いて、非ゼロ変換係数の存否情報および変換係数の少なくとも一方を符号化する構成であってもよい。
具体的な構成は、例えば、動画像復号装置1の構成例[3−3]において説明したものと同様であるので、ここでは説明を省略する。ただし、構成例[3−3]の説明における「判定情報復号部1032」および「変換係数復号部1033」は、「符号化データ生成部29」と読み替えるものとする。また、構成例[3−3]の説明における「復号(する)」、および「コンテキスト記憶部1034」を、それぞれ、「符号化(する)」、および「コンテキスト記憶部1034に相当する構成」と読み替えるものとする。
(処理の流れ)
図26を用いて、動画像符号化装置2におけるCU符号化処理について説明すると以下のとおりである。なお、以下では、対象CUは、インターCU、または、スキップCUであるとする。図24は、動画像符号化装置2におけるCU符号化処理(インター/スキップCU)の流れの一例について示すフローチャートである。
CU符号化処理が開始されると、符号化設定部21が、対象CUについてCU予測情報を決定し、符号化データ生成部29が、符号化設定部21により決定されたCU予測情報を符号化する(S21)。この処理は、CU単位で行われる。
具体的には、符号化設定部21が、対象CUがスキップCUであるか否かを決定する。対象CUがスキップCUである場合、符号化設定部21は、スキップフラグSKIPを符号化データ生成部20に符号化させる。また、対象CUがスキップCUでない場合、符号化設定部21は、CU予測タイプ情報Pred_typeを符号化データ生成部20に符号化させる。
次に、PU単位の処理が行われる。すなわち、予測画像生成部23が動き情報を導出し、符号化データ生成部29が、予測画像生成部23により導出された動き情報を符号化する(S22)。また、予測画像生成部14は、導出した当該動き情報に基づいてインター予測により予測画像を生成する(S23)。
次に、変換・量子化部27が、TU分割符号化処理を行う(S24)。具体的には、変換・量子化部27は、対象CUのCUサイズおよびPU分割タイプに基づいて、TU分割の方式を設定する。この処理は、CU単位で行われる。
次に、TU単位の処理が行われる。すなわち、変換・量子化部27が、予測残差を変換係数に変換・量子化し(S25)、符号化データ生成部29が、変換・量子化された変換係数を符号化する(S26)。
次に、逆量子化・逆変換部22が、変換・量子化された変換係数を、逆量子化・逆変換して予測残差を復元するとともに、加算器24が、予測画像および予測残差を加算することにより、復号画像が生成される(S27)。この処理は、CU単位で行われる。
〔応用例〕
上述した動画像符号化装置2及び動画像復号装置1は、動画像の送信、受信、記録、再生を行う各種装置に搭載して利用することができる。なお、動画像は、カメラ等により撮像された自然動画像であってもよいし、コンピュータ等により生成された人工動画像(CGおよびGUIを含む)であってもよい。
まず、上述した動画像符号化装置2及び動画像復号装置1を、動画像の送信及び受信に利用できることを、図27を参照して説明する。
図27の(a)は、動画像符号化装置2を搭載した送信装置PROD_Aの構成を示したブロック図である。図27の(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を更に備えていてもよい。図27の(a)においては、これら全てを送信装置PROD_Aが備えた構成を例示しているが、一部を省略しても構わない。
なお、記録媒体PROD_A5は、符号化されていない動画像を記録したものであってもよいし、伝送用の符号化方式とは異なる記録用の符号化方式で符号化された動画像を記録したものであってもよい。後者の場合、記録媒体PROD_A5と符号化部PROD_A1との間に、記録媒体PROD_A5から読み出した符号化データを記録用の符号化方式に従って復号する復号部(不図示)を介在させるとよい。
図27の(b)は、動画像復号装置1を搭載した受信装置PROD_Bの構成を示したブロック図である。図27の(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を更に備えていてもよい。図27の(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を、動画像の記録及び再生に利用できることを、図28を参照して説明する。
図28の(a)は、上述した動画像符号化装置2を搭載した記録装置PROD_Cの構成を示したブロック図である。図28の(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を更に備えていてもよい。図28の(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の一例である。
図28の(b)は、上述した動画像復号装置1を搭載した再生装置PROD_Dの構成を示したブロックである。図28の(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を更に備えていてもよい。図28の(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枚の参照画像を参照する双予測を用いて予測単位内の画像を復号する画像復号装置において、前記単予測または前記双予測のいずれかの予測方式を示す動き補償パラメータを導出する動き補償パラメータ導出部を備え、前記予測単位が所定のサイズ以下の場合、前記動き補償パラメータ導出部は、前記予測方式を切り替えて前記動き補償パラメータを導出する。
本発明の一態様に係る画像復号装置は、予測単位の動き補償パラメータをマージ候補として導出する処理において、隣接する予測単位の動き補償パラメータに基づいて、該マージ候補を導出するマージ候補導出手段を備え、前記マージ候補が前記双予測を示している場合、前記動き補償パラメータ導出部は、前記予測方式として前記単予測を用いて前記動き補償パラメータを導出する。
本発明の一態様に係る画像復号装置は、前記動き補償パラメータは、少なくとも第1の参照予測リストを用いるか否かを示す第1の予測リスト利用フラグと第2の参照予測リストを用いるか否かを示す第2の予測リスト利用フラグとを含み、前記動き補償パラメータ導出部は、前記第1の予測リスト利用フラグ及び前記第2の予測リスト利用フラグを用いて、前記動き補償パラメータを導出する。
本発明の一態様に係る画像復号装置は、前記第1の予測リスト利用フラグ及び第2の予測リスト利用フラグが、該第1及び第2の予測リスト利用フラグを利用することを示している場合、前記動き補償パラメータ導出部は、前記第1の予測リスト利用フラグ又は前記第2の予測リスト利用フラグを利用しないように変換する。
本発明の一態様に係る画像復号装置は、前記予測単位のサイズが、該予測単位の幅と高さを用いて算出される。
本発明の一態様に係る画像復号方法は、画面間予測の予測方式として、1枚の参照画像を参照する単予測または2枚の参照画像を参照する双予測を用いて予測単位内の画像を復号する画像復号方法において、前記単予測または前記双予測のいずれかの予測方式を示す動き補償パラメータを導出するステップと、前記予測単位のサイズが、所定のサイズ以下か否かを判定するステップとを少なくとも含み、前記動き補償パラメータを導出するステップは、前記予測単位が前記所定のサイズ以下の場合、前記予測方式を切り替えて前記動き補償パラメータを導出する。
本発明の一態様に係る画像符号化装置は、画面間予測の予測方式として、1枚の参照画像を参照する単予測または2枚の参照画像を参照する双予測を用いて予測単位内の画像を符号化する画像符号化装置において、前記単予測または前記双予測のいずれかの予測方式を示す動き補償パラメータを導出する動き補償パラメータ導出部を備え、前記予測単位が所定のサイズ以下の場合、前記動き補償パラメータ導出部は、前記予測方式を切り替えて前記動き補償パラメータを導出する。
本発明の一態様に係る画像復号装置は、符号化単位毎に、画像符号化データを復号して復号画像を生成する画像復号装置において、前記符号化単位を分割する分割タイプを指定する情報を復号するCU情報復号部と、コンテキストを用いた算術復号又はコンテキストを用いない算術復号により、前記画像符号化データからバイナリ値を復号する算術復号部とを備え、前記CU情報復号部が、前記分割タイプとして非対称的分割(AMP; Asymmetric Motion Partition)を指定する情報を復号する場合、前記算術復号部は、前記バイナリ値の位置に応じて、前記コンテキストを用いた算術復号と前記コンテキストを用いない算術復号とを切り替えて復号する。
本発明の上記の態様によれば、非対称パーティションを用いる場合における符号量の削減と、非対称パーティションの性質を活用した効率のよい符号化/復号処理を実現することができる。
また、本発明は以下のように表現することもできる。本発明の一態様に係る画像復号装置は、符号化単位毎に、画像を復元するための情報を画像符号化データから復号して画像を復元する画像復号装置において、予測単位のサイズと符号化単位に適用される予測方式との組み合わせに割り当てられている符号について、所定サイズ以下のサイズの符号化単位に画面内予測の予測方式が適用される組み合わせに対して、該組み合わせ以外の組み合わせに割り当てられている符号より短い符号を復号する復号手段を備えることを特徴とする。
上記の構成において、所定サイズ以下のサイズの符号化単位は、当該所定サイズよりも大きいサイズの符号化単位では、インター予測が当たりにくくなるようなサイズの符号化単位である。
インター予測が当たりにくい領域では、所定サイズ以下のサイズの小さい符号化単位が適用される傾向がある。なお、以下、所定サイズよりも大きいサイズの符号化単位のことを大きい符号化単位と称する。
所定サイズ以下のサイズの符号化単位は、例示的には、最小サイズの符号化単位であり、8×8画素の符号化単位である。
このような小さい符号化単位では、大きい符号化単位よりも空間相関性が高くなるので、予測精度の向上を図るためイントラCUが適用されることが多い。
上記の構成では、符号化サイズが小さく、予測方式が画面内予測である組み合わせについて、それ以外の組み合わせよりも短い符号が割り当てられる。
このため、上記の構成によれば、所定サイズ以下のサイズの符号化単位において発生確率が高い組み合わせに短い符号を割り当てることができ、符号化効率が向上するという効果を奏する。
本発明の一態様に係る画像復号装置は、上記復号手段が、上記組み合わせに対して、上記所定サイズより大きいサイズの符号化単位に画面内予測の予測方式が適用される組み合わせに対して割り当てられている符号に比べて、短い符号を復号することが好ましい。
上記の構成によれば、画面内予測が当たりにくい大きい符号化単位において画面内予測の予測方式が適用される場合よりも、画面内予測が当たりやすい小さい符号化単位において画面内予測の予測方式が適用される場合に、より短い符号が復号される。
これにより、出現頻度が高い組み合わせに対して、短い符号を復号することができ、その結果、符号化効率を向上させることができる。
本発明の一態様に係る画像復号装置は、上記復号手段が、上記組み合わせに対して、上記所定サイズと同一サイズの符号化単位に画面内予測以外の予測方式が適用される組み合わせに対して割り当てられている符号に比べて、短い符号を復号することが好ましい。
上記の構成によれば、小さい符号化単位において予測が当たりにくい画面間予測よりも、予測が当たりやすい画面内予測について、短い符号を復号することができる。
これにより、出現頻度が高い組み合わせに対して、短い符号を復号することができ、その結果、符号化効率を向上させることができる。
本発明の一態様に係る画像復号装置は、予測単位内の画像を、1枚の参照画像を参照する単予測、及び、2枚の参照画像を参照する双予測の何れかの画面間予測の予測方式によって復元する画像復号装置において、上記画面間予測が適用される、所定サイズ以下のサイズの予測単位である対象予測単位について、双予測を行うことを制限する双予測制限手段を備えることを特徴とする。
双予測は、単予測よりも処理量が多い。なお、双予測とは、画面間予測において参照する画像を2つ用いる予測方式のことである。参照する画像は、対象フレームに対して時間的に前方であっても後方であってもよい。
また、所定サイズ以下のサイズの小さい予測単位では、所定サイズよりも大きいサイズの大きい予測単位よりも、単位面積当たりの処理量が多い。
従って、小さい予測単位において双予測を行うと、どちらも処理量が多いため、復号処理のボトルネックになりやすい。
上記の構成によれば、小さい予測単位において双予測を行うことを制限する。なお、制限するとは、双予測における一部の処理を省略すること、および、双予測の処理を行わないことを含む。
上記制限を行うことで、復号処理のボトルネックになるような処理の処理量を低減することができるという効果を奏する。
本発明の一態様に係る画像復号装置は、上記双予測制限手段が、上記対象予測単位における予測画像の生成に用いる動きベクトルの少なくとも一部の復号を省略しない予測単位であって、かつ、上記対象予測単位の近傍の予測単位に割り付けられている予測パラメータから、該対象予測単位に割り付ける予測パラメータの推定を行わない上記対象予測単位に対して、上記制限を行うことが好ましい。
上記の構成によれば、いわゆるスキップ処理およびマージ処理を行わず、実際に対象予測単位に予測パラメータを導出する場合において、双予測を制限する。
スキップ処理やマージ処理を行わない場合、動きベクトルを全て復号する必要があり処理量が増加する。したがって、そのような場合に上記制限を行うことで、復号処理のボトルネックになるような処理の処理量を低減することができる。
本発明の一態様に係る画像復号装置は、上記双予測制限手段が、双予測および単予測のいずれを行うかを示す情報の復号を省略して、単予測を行うことが好ましい。
上記の構成によれば、双予測を制限する対象予測単位における復号処理を簡略化することができる。また、単予測を行うことが予め決まっているのに、双予測および単予測のいずれを行うかを示す情報を復号するというオーバーヘッドを回避することができる。
本発明の一態様に係る画像復号装置は、上記双予測制限手段が、双予測における重み付け予測に関する情報の処理を省略することが好ましい。
上記の構成によれば、双予測における重み付け予測に関する情報の処理を省略することで、双予測における処理量を軽減できる。その結果、重み付け予測に関する情報の処理のような、復号処理のボトルネックになるような処理の処理量を低減することができる。
本発明の一態様に係る画像復号装置では、当該画像復号装置は、復号済みの予測単位の復号に用いた動き補償パラメータからマージ候補を導出するマージ候補導出手段を備え、上記双予測制限手段は、上記マージ候補導出手段で導出されるマージ候補が双予測である場合には、該双予測を単予測に変換する双単予測変換手段を備えるものであってもよい。
上記の構成によれば、対象予測単位における予測画像の復号にマージ処理を用いる場合でも、双予測を制限することができ、対象予測単位における復号処理を簡略化することができる。
本発明の一態様に係る画像復号装置は、上記双単予測変換手段が、参照ピクチャリストの使用の有無を示すフラグである予測リスト利用フラグを2つ用いる場合に、該2つの予測リスト利用フラグの両者が、上記参照ピクチャリストを使用することを示しているとき、上記2つの予測リスト利用フラグの一方のフラグを、上記参照ピクチャリストを使用しないことを示すように変換するものであってもよい。
上記の構成によれば、予測リスト利用フラグを用いて双予測を行うか、単予測を行うかを制御する画像復号装置において、双予測を制限することができ、対象予測単位における復号処理を簡略化することができる。
本発明の一態様に係る画像復号装置は、上記双単予測変換手段が、L0リストを使用することを示す参照ピクチャリストのフラグを、当該L0リストを使用しないことを示すように変換するものであってもよい。
上記の構成によれば、予測リスト利用フラグを用いて双予測を行うか、単予測を行うかを制御する復号装置において、符号化効率を保持したまま、双予測を制限することができ、対象予測単位における復号処理を簡略化することができる。
ここで、L0リストとは、主として前方向予測に使用するピクチャのリストである。一般に、動き補償パラメータの導出では、L0リストの参照ピクチャを優先することが多い。逆に、L0リストの参照ピクチャの代わりにL1リストの参照ピクチャを使用することによれば、これらのL0リストを優先する導出処理と差別化することができる。ある符号化パラメータにより複数の導出処理が選択可能な場合において、あるグループの導出処理をL0リスト優先、他のグループの導出処理をL1リスト優先とすると、各々の導出処理は互いに相補的に用いることができるため、より多くの動きの性質のシーケンスや領域において有効に作用する。そのため、双単予測変換においては、L1リストを用いることによって高い符号化効率を得ることができる。
本発明の一態様に係る画像復号装置は、上記双単予測変換手段が、上記参照ピクチャリストの使用の有無を示すフラグを、上記参照ピクチャリストを使用しないことを示すように変換する場合、参照インデックス番号および動きベクトルのリフレッシュを行わないものであってもよい。
上記の構成によれば、参照ピクチャリストの使用を制限した場合においても、後続の処理において、制限した方の、参照インデックス番号および動きベクトルの値を使用することができる。そのため、リフレッシュを行う場合と比較して符号化効率を保持したまま、双予測を制限することができ、対象予測単位における復号処理を簡略化することができる。
本発明の一態様に係る画像復号装置は、上記双予測制限手段が、結合インター予測参照インデックスに対応するコード番号を復号する場合、コード番号の値の最大値を、双予測を制限するときは単予測の結合参照ピクチャセットの数に設定し、双予測を制限しないときは、単予測の結合参照ピクチャセットの数と双予測の結合参照ピクチャセットの数との和に設定するものであってもよい。
上記の構成によれば、結合インター予測参照インデックスを用いる画像復号装置において、単予測を行うことが予め決まっているのに、双予測の場合に対応するコード番号を復号するというオーバーヘッドを回避することができる。
本発明の一態様に係る画像復号装置は、上記双予測制限手段が、結合インター予測参照インデックスを復号する場合に、双予測を制限するときは、コード番号から可変テーブルを用いて上記結合インター予測参照インデックスを導出し、制限しないときは、可変テーブルを用いずにコード番号から上記結合インター予測参照インデックスを導出するものであってもよい。
上記の構成によれば、可変テーブルを用いてコード番号から結合インター予測参照インデックスを復号する画像復号装置において、双予測を制限する場合における可変テーブルに関する復号処理を簡略することができる。
本発明の一態様に係る画像復号装置は、上記双予測制限手段が、復号した結合インター予測参照インデックスが結合参照ピクチャセット以外を示す場合、双予測を制限するときは、双予測および単予測のいずれを行うかを示す情報の復号を省略して単予測を行い、双予測を制限しないときは、双予測および単予測のいずれを行うかを示す情報の復号を行うものであってもよい。
上記の構成によれば、結合インター予測参照インデックスを用いる画像復号装置において、単予測を行うことが予め決まっているのに、双予測および単予測のいずれを行うかを示す情報を復号するというオーバーヘッドを回避することができる。
本発明の一態様に係る画像復号装置では、当該画像復号装置は、対象予測単位における予測画像の復号にマージ処理を用いる場合に動き補償パラメータの候補であるマージ候補を導出するマージ候補導出手段を備え、上記マージ候補導出手段は、上記対象予測単位に隣接している隣接対象予測単位の復号に用いた動き補償パラメータからマージ候補を導出する隣接マージ候補導出手段と、複数の参照ピクチャからマージ候補を導出する双予測マージ候補導出手段を備え、上記マージ候補導出手段は、上記対象予測単位が、所定のサイズのとき、上記双予測マージ候補導出手段によるマージ候補を用いないものであってもよい。
上記の構成によれば、双予測に対するマージ候補の導出を省略することにより、マージ候補の導出を簡略化することができる。
本発明の一態様に係る画像復号装置は、符号化単位を1以上の数に分割して得られる予測単位ごとに予測画像を生成して画像を復元する画像復号装置において、復号対象となる上記符号化単位である対象符号化単位を上記予測単位へ分割するタイプである分割タイプと予測方式との複数の組に対して対応付けられる複数の符号を、復号の対象となる上記予測単位である対象予測単位の近傍の復号済み予測単位に割り付けられている復号済みパラメータに応じて変更する変更手段を備えることを特徴とする。
予測画像を生成する単位は、符号化処理の単位となる符号化単位を基準に決定される。具体的には、符号化単位と同じ領域または符号化単位を分割して得られる領域を予測単位とする。
上記の構成において、上記予測単位への分割タイプは、正方形への分割および非正方形への分割を含んでいてもよい。正方形への分割は、分割によって得られる予測単位が正方形である場合である。
例えば、正方形の符号化単位を、4つの正方形に四分割する場合がこれに該当する。また、正方形の符号化単位と同じサイズの領域を予測単位とする非分割の場合もこれに該当する。非分割の場合の分割タイプは、一般的には、2N×2Nと表される。
非正方形への分割は、分割によって得られる予測単位が非正方形である場合である。例えば、符号化単位の領域を大きな長方形と、小さな長方形とに分割する場合がこれに該当する。
また、符号とは、符号化されたパラメータ値のバイナリ(bin)列のことをいう。バイナリ列は直接符号化されてもよいし、算術符号化により符号化されてもよい。予測方式は、画面間予測および画面内予測のいずれかである。また、予測方式および分割タイプの組とは、例えば、(画面内予測,非分割)であり、pred_typeというパラメータ値によって表されることもある。
また、上記の構成では、符号と、予測方式および分割タイプの組とは、1対1で対応付けられる。
上記の構成によれば、復号済みパラメータに応じて、上記対応付けを変更する。言い換えれば、同じ符号であっても、復号済みパラメータに応じて、いずれの予測方式および分割タイプの組を示すかの解釈を変更するということである。
このため、より発生確率が高い予測方式および分割タイプの組に、より短い符号を割り当てることができる。
具体的には、対象符号化単位に隣接する符号化単位が、画面内予測を行う符号化単位である場合、対象符号化単位も画面内予測が採用される可能性が高くなる。
よって、このような場合、画面内予測を含む組に短い符号を割り当てることが望ましい。
上記の構成によれば、近傍の復号済み予測単位に割り付けられている復号済みパラメータに応じて、より発生確率が高い予測方式および分割タイプの組に、より短い符号を割り当てるので、符号化効率を向上させることができる。
本発明の一態様に係る画像復号装置は、上記変更手段が、上記対象符号化単位の近傍の復号済み符号化単位に画面内予測の予測方式が割り付けられているときに、画面内予測の予測方式を含む組に対応付けられる符号を、短い符号に変更することが好ましい。
上記の構成によれば、対象符号化単位の近傍の復号済み符号化単位に画面内予測の予測方式が割り付けられているときに、画面内予測の予測方式を含む組に対応付けられる符号を、短い符号に変更する。
なお、近傍とは、複数であってもよく、例えば、上隣接符号化単位および左隣接符号化単位を近傍とすることが挙げられる。
この場合、上隣接符号化単位および左隣接符号化単位のいずれか、もしくは、両方において、画面内予測の予測方式が割り付けられていればよい。
対象符号化単位の近傍の復号済み符号化単位に画面内予測の予測方式が割り付けられているとき、対象符号化単位も画面内予測が割り付けられる可能性が高い。
このため、発生頻度が高い組に対応付けられる符号を短くすることができ、符号化効率が向上する。
本発明の一態様に係る画像復号装置は、上記変更手段が、上記対象符号化単位に隣接する復号済み符号化単位が、上記対象符号化単位よりも小さいときに、隣接する方向への分割を行う分割タイプを含む組に対応付けられる符号を、短い符号に変更することが好ましい。
上記の構成によれば、上記対象符号化単位に隣接する復号済み符号化単位が、上記対象符号化単位よりも小さいときに、隣接する方向への分割を行う分割タイプを含む組に対応付けられる符号を、短い符号に変更する。
上記対象符号化単位に隣接する復号済み符号化単位が、上記対象符号化単位よりも小さいとき、対象符号化単位と、隣接する復号済み符号化単位との間の境界に対し、垂直な方向にエッジが存在する可能性が高い。すなわち、対象符号化単位が上記復号済み符号化単位に隣接する方向にエッジが現れることが多い。
このような場合、隣接する方向への分割を行う分割タイプが選択されやすくなる。
このため、発生頻度が高い組に対応付けられる符号を短くすることができ、符号化効率が向上する。
本発明の一態様に係る画像復号装置は、符号化単位を1以上の数に分割して得られる予測単位ごとに画面間予測の予測方式によって予測画像を生成して画像を復元する画像復号装置において、復号の対象となる上記予測単位である対象予測単位が、該対象予測単位の近傍の領域に割り付けられている予測パラメータから、該対象予測単位の予測パラメータの推定を行う予測単位である場合、該対象予測単位のサイズに応じて、推定に用いる領域の候補を決定する候補決定手段を備えることを特徴とする。
上記の構成によれば、対象予測単位のサイズに応じて、いわゆるスキップや、マージに用いる領域の候補を決定する。または、復号した差分動きベクトルと合わせて動きベクトルを復元するために用いる推定動きベクトルの導出に用いる領域の候補を設定する。
対象予測単位のサイズに応じて、画面間予測の動きベクトルの相関は変動する。例えば、所定のサイズ以下の小さい予測単位が選択される領域では、オブジェクトの動きが複雑な場合が多く、動きベクトルの相関は小さい。
よって、上記構成によれば、例えば、動きの複雑度に応じて、候補数を削減することができる。これにより、サイド情報を削減することができ、その結果、符号化効率を向上させることができる。
本発明の一態様に係る画像復号装置は、上記候補決定手段が、所定のサイズ以下の小さい予測単位の上記候補の数を、該小さい予測単位よりも大きい予測単位の上記候補の数よりも少なくすることが好ましい。
上記の構成によれば、所定のサイズ以下の小さい予測単位の上記候補の数を、該小さい予測単位よりも大きい予測単位の上記候補の数よりも少なくする。
上述のとおり、所定のサイズ以下の小さい予測単位が選択される領域では、オブジェクトの動きが複雑な場合が多く、動きベクトルの相関は小さい。
そのため、上記のような領域では、候補数を少なくしたほうが、サイド情報を削減することができるため好ましい。
本発明の一態様に係る画像復号装置では、上記候補決定手段は、所定のサイズ以下の小さい予測単位では、時間予測を上記候補に含めないことが好ましい。
上記の構成によれば、所定のサイズ以下の小さい予測単位では、時間予測を上記候補に含めない。
小さい予測単位が選択されるような動きが複雑な領域では、時間予測に用いられる関連予測単位(collocated PU)と対象予測単位との相関が小さいため、時間予測が選択される可能性が小さい。よって、このような領域では、時間予測をマージ候補に含めないことが好ましい。
本発明の一態様に係る画像復号装置は、符号化単位を1以上の数に分割して得られる予測単位ごとに予測画像を生成して画像を復元する画像復号装置において、上記予測単位への分割タイプは、長方形の予測単位への分割を含み、上記長方形が縦長および横長のいずれであるかを示す符号と、上記長方形の種類を示す符号とを含む、上記長方形の予測単位への分割を特定するための符号のうち、上記長方形の種類を示す符号を、コンテキストを用いずに復号する復号手段を備えることを特徴とする。
上記の構成によれば、予測単位への分割タイプが、長方形の予測単位への分割の場合、長方形の種類を示す符号を、コンテキストを用いずに復号する。
長方形の種類とは、例えば、分割タイプが、横長の長方形の分割である場合、2N×N、2N×nU、2N×nDの3種類である。
予測単位の分割は、符号化単位の領域内に存在するエッジをまたがないように行われることが多い。傾きを有するエッジが領域内に存在する場合、必ずしも同一の長方形の種類が続けて選ばれないことがある。このような領域においては、コンテキストを用いて復号処理を行っても、符号化効率が向上しない場合がある。
逆に言えば、このような領域においては、コンテキストを用いないで復号処理を行っても、符号化効率が低下しない場合がある。
上記の構成によれば、上述のような領域において、符号化効率を維持しつつ、コンテキストを参照しないことによる処理の簡略化を図ることができる。
本発明の一態様に係る画像復号装置は、符号化単位を1以上の数に分割して得られる予測単位ごとに画面間予測の予測方式によって予測画像を生成して画像を復元する画像復号装置において、上記予測単位への分割タイプは、符号化単位を複数の異なる大きさの予測単位に分割する非対称分割または符号化単位を複数の同一の大きさの予測単位に分割する対称分割を含み、上記分割タイプが非対称分割である場合、上記分割タイプが対称分割である場合と異なる推定方法によって、画面間予測の予測パラメータの推定を行う推定手段を備えることを特徴とする。
上記の構成によれば、分割タイプが非対称分割である場合、上記分割タイプが対称分割である場合と異なる推定方法によって、画面間予測の予測パラメータの推定を行う。
非対称分割が選択される符号化単位は、予測単位を得るための分割において、小さい方の予測単位と、大きい方の予測単位とに非対称に分割される。
また、非対称分割が選択される符号化単位では、小さい方の予測単位を長辺方向に横切るエッジが存在する可能性が高い。
また、エッジが存在する領域は正確な動きベクトルが導出されている可能性が高い。つまり、分割タイプが非対称分割である場合、上記分割タイプが対称分割である場合と、精度の高い動きベクトルが導出されている領域が異なる。
よって、分割タイプが非対称分割である場合と、上記分割タイプが対称分割である場合とで異なる推定方法を変更することで、分割タイプに応じた好ましい推定方法により画面間予測の予測パラメータの推定を行うことができるという効果を奏する。
本発明の一態様に係る画像復号装置は、符号化単位を1以上の数に分割して得られる予測単位ごとに予測画像を生成するとともに、符号化単位を1以上の数に分割して得られる変換単位ごとに予測残差を復号し、予測画像に予測残差を加算することで画像を復元する画像復号装置において、上記予測単位への分割タイプは、符号化単位を複数の異なる大きさの予測単位に分割する非対称分割または符号化単位を複数の同一の大きさの予測単位に分割する対称分割を含み、復号の対象となる上記符号化単位である対象符号化単位の分割タイプが非対称分割であるとき、上記対象符号化単位に含まれる予測単位の大きさに応じて、変換単位の分割方式を決定する変換単位分割手段を備えることを特徴とする。
上記の構成によれば、復号の対象となる上記符号化単位である対象符号化単位の分割タイプが非対称分割であるとき、上記対象符号化単位に含まれる予測単位の大きさに応じて、変換単位の分割方式を決定する。
非対称分割が適用されるとき、小さい方の予測単位にはエッジが含まれる可能性が高いのに対して、大きい方の予測単位にはエッジが含まれる可能性が低い。
予測残差に方向性がない場合、変換単位の分割方式として、長方形の変換を適用するよりも、正方形の変換を適用したほうが、効率よく相関を除去できる。
上記の構成によれば、分割タイプが非対称分割であるときは、上記対象符号化単位に含まれる予測単位の大きさに応じて、効率よく相関を除去できるような変換単位の分割方式を選択することができる。その結果、符号化効率が向上する。
本発明の一態様に係る画像復号装置は、符号化単位を1以上の数に分割して得られる予測単位ごとに予測画像を生成するとともに、符号化単位を1以上の数に分割して得られる変換単位ごとに予測残差を復号し、予測画像に予測残差を加算することで画像を復元する画像復号装置において、上記変換単位への分割方式は、正方形および長方形の分割を含み、復号の対象となる上記予測単位である対象予測単位の形状が正方形である場合、対象変換単位を長方形の分割方式により分割する分割手段を備えることを特徴とする。
領域内にエッジが存在し、画像に方向性があるにもかかわらず、正方形の予測単位が選択される場合がある。例えば、多数の横エッジが存在するオブジェクトが移動している場合、オブジェクト内では、動きは一様であるため、正方形の予測単位が選択される。しかしながら、このような場合は、変換処理では、横エッジに沿った、水平方向に長い形状の変換単位を適用することが望ましい。
上記の構成によれば、復号の対象となる上記予測単位である対象予測単位の形状が正方形である場合、対象変換単位を長方形の分割方式により分割する。
これにより、正方形の符号化単位においても、長方形の変換単位を選択することができ、このため上記のような領域に対する符号化効率を向上させることができる。
本発明の一態様に係る画像復号装置は、上記分割手段が、さらに、所定の大きさの符号化単位において分割深度2に対応する変換単位の形状が正方形である場合、上記所定の大きさの符号化単位において、分割深度1に対応する対象変換単位を長方形とすることが好ましい。
上記の構成によれば、対象予測単位の形状が正方形である場合、対象変換単位を長方形の分割方式により分割する。
変換単位を正方形の4分木分割方式により再帰的に2回分割すると、すなわち分割深度を2まで上げると、16個の正方形の変換単位が得られる。この場合、スキャン順は、zスキャンが再帰的に適用されたものになる。従来、対象符号化単位の分割タイプが正方形の分割である場合、この分割方式が適用されていた。
一方、変換単位を横長の4分木分割方式により分割する場合は、分割深度2では、各ノードが正方形の変換単位に分割される。すなわち、分割深度を2では、最終的に、16個の正方形の変換単位が得られる。この場合、スキャン順は、16個の正方形の変換単位に対してラスタスキャンが適用される。従来、対象符号化単位の分割タイプが非正方形の分割である場合、この分割方式が適用されていた。
よって、対象符号化単位の分割タイプが、正方形の分割である場合と非正方形の分割である場合とで、スキャン順が異なっていた。
これに対して、上記構成によれば、符号化単位の分割タイプが正方形の分割であり、すなわち対象予測単位の形状が正方形である場合、対象変換単位を長方形の分割方式により分割する。
このため、正方形の分割である場合と非正方形の分割である場合とで、スキャン順を統一させることができるという効果を奏する。
本発明の一態様に係る画像復号装置は、符号化単位を1以上の数に分割して得られる予測単位ごとに予測画像を生成するとともに、符号化単位、または、分割した符号化単位として得られる変換単位ごとに予測残差を復号し、予測画像に予測残差を加算することで画像を復元する画像復号装置において、上記予測単位への分割タイプは、異なる大きさの予測単位への分割である非対称形への分割および同一の大きさの予測単位への分割である対称形への分割を含み、復号の対象となる上記予測単位である対象予測単位の分割タイプが非対称形への分割であるとき、該分割により得られた小さい予測単位および大きい予測単位の間で、異なるコンテキストを参照して変換係数を復号する係数復号手段を備えることを特徴とする。
非対称分割により得られた小さい予測単位には、エッジが存在する可能性が高く変換係数が発生しやすい。これに対して、大きい予測単位では変換係数が発生しにくい。対象変換単位が、小さい予測単位に含まれる場合と大きい予測単位に含まれる場合とで、異なるコンテキストを用いることで、それぞれの領域内における変換係数の発生確率に応じた可変長復号を行うことができる。
本発明の一態様に係る画像符号化装置は、符号化単位毎に、画像を復元するための情報を符号化して画像符号化データを生成する画像符号化装置において、予測単位のサイズと符号化単位に適用される予測方式との組み合わせに割り当てられている符号について、所定サイズ以下のサイズの符号化単位に画面内予測の予測方式が適用される組み合わせに対して、該組み合わせ以外の組み合わせに割り当てられている符号より短い符号を符号化する符号化手段を備えることを特徴とする。
なお、上記画像復号装置に対応する構成を備える画像符号化装置も本発明の範疇に入る。上記のように構成された画像符号化装置によれば、本発明の一態様に係る画像復号装置と同様の効果を奏することができる。
本発明の一態様に係る画像復号装置は、符号化データを復号して、予測単位内の画像を、1枚の参照画像を参照する単予測、及び、2枚の参照画像を参照する双予測の何れかの画面間予測の予測方式によって復元する画像復号装置において、上記符号化データに含まれる、双予測の制限を行う予測単位のサイズを示す情報である双予測制限情報に基づいて、双予測の制限を行う双予測制限手段を備えることを特徴とする。
上記の構成によれば、画像符号化装置が、画像の符号化において、意図に応じて適応的に双予測制限情報を符号化すれば、画像復号装置において、上記意図に応じた双予測の制限を行うことができる。これにより、画像の解像度や、画像符号化装置/画像復号装置の性能に応じた細かい調整を行うことができるという効果を奏する。
本発明の一態様に係る画像復号装置では、上記符号化データに含まれる、双予測の制限を行うか否かを示すフラグである双予測制限フラグが双予測の制限を行うことを示すときに、上記双予測制限情報を復号する制限情報復号手段を備えることが好ましい。
上記の構成によれば、画像符号化装置から明示的にしてされたフラグに応じて適応的に双予測の制限を行うことができる。これにより画像符号化装置が意図するに双予測制限処理を画像復号装置において行うことができる。
本発明の一態様に係る画像復号装置は、上記双予測制限フラグが、上記符号化データのストリームの複雑度および上記符号化データを復号する画像復号装置の性能の少なくとも何れか一方に応じて設定されているものであることが好ましい。
双予測制限フラグは、上記のとおり、双予測の制限を行うか否かを示すフラグである。当該双予測制限フラグは、画像符号化装置において、符号化データのストリームの複雑度および画像復号装置の性能の少なくとも何れか一方に応じて設定される。符号化データのストリームの複雑度および画像復号装置の性能を示す指標としては、例えば、H.264/AVCにおけるレベル規制(level limit)が挙げられる。レベル規制では、デコーダがビット・ストリームを復号するスピード等が規定されている。また、レベル規制は、整数レベルおよびサブレベル(小数点以下のレベル)の2つのレベルにより構成されている。整数レベルは、大まかな範囲を規定しており、level1〜5までが規定されている。
例えば、level 4は、HDTV(High Definition Television;高精細テレビ)の1080pの解像度に対応しており、level 5は、4kの解像度に対応している。
また、さらにサブレベルにおいて、各整数レベルにおける詳細な仕様が規定されている。
ここで、レベルに応じて、制約を設けたいPUサイズおよび双予測の制限を行いたい予測単位(PU)は異なる。例えば、level 4(HD)では、4×4PUに制約を設けるとともに、8×4PU、および4×8PUにおいて双予測の制限を行うことが好ましい。また、level 5(4k)では、8×4PUおよび4×8PUに制約を設けるとともに、8×8PUにおいて双予測の制限を行うことが好ましい。
また、このような双予測の制限は、画像符号化装置において明示的に指定されていることが好ましい。
上記の構成によれば、画像符号化装置が、符号化データにおいて、レベルに応じて双予測制限フラグおよび双予測制限情報を設定している場合、画像復号装置において、双予測制限フラグおよび双予測制限情報に基づいた双予測の制限を行うことができる。
すなわち、画像符号化装置において明示的に設定された双予測の制限の指定に従って、画像復号装置において双予測の制限を行うことができる。
このように、双予測制限フラグの判定結果に応じて双予測制限情報に基づく双予測制限を行うことで、すなわちストリームの複雑度・画像復号装置の性能(レベル)に応じて適応的に双予測の制限を行うことができるという効果を奏する。
本発明の一態様に係る画像復号装置は、符号化データを復号して、予測単位内の画像を、1枚の参照画像を参照する単予測、及び、2枚の参照画像を参照する双予測の何れかの画面間予測の予測方式によって復元する画像復号装置において、符号化の単位である符号化単位のサイズに応じて、上記予測単位の取り得るサイズが定まっており、上記符号化データに含まれる、符号化単位の最小サイズを示すフラグの値に応じて、双予測の制限を行う双予測制限手段を備えることを特徴とする。
例えば、引用文献1では、”log2_min_coding_block_size_minus3”というパラメータによって、最小の符号化単位(CU)のサイズを規定する。また、予測単位(PU)の形状(サイズ)は、符号化単位(CU)のサイズも考慮して定められる。最小CUサイズが、8×8である場合、8×8PUに加えて、8×8CUを分割した8×4PU、4×8PU、4×4PUが使用可能である。また、最小CUサイズが16×16である場合、8×8PUが使用可能である一方で、8×4PU、4×8PU、4×4PUは、使用不可である。
上述のとおり、符号化データのストリームの複雑度および画像復号装置の性能の少なくとも何れか一方に応じて設定される、いわゆるレベルに応じて双予測の制限を行うことが好ましい。
最小CUサイズに基づいて双予測の制限を行えば、双予測制限を行うPUサイズと、単予測自体を制限するPUサイズのバランスを取ることができる。すなわち、双予測に伴う処理量および転送量は制限されるが、単予測の処理量および転送量は制限されないというアンバランスがなくなる。
最小CUサイズは、引用文献1に見られるように、既存のパラメータとして規定されている。よって、このような既存のパラメータを活用することで、双予測制限専用のフラグを追加する場合と比べて、符号量の増大を招来することなく、簡易に双予測の制限を行うことができる。
本発明の一態様に係る画像復号装置では、上記双予測制限手段は、双予測の制限を行うか否かを示すフラグである双予測制限フラグが双予測の制限を行うことを示すときに、上記双予測の制限を行うことが好ましい。
上記の構成によれば、画像符号化装置が設定した予測制限フラグに基づく双予測の制限を行うことができる。これにより、画像符号化装置が明示的に設定した指定に基づいて、適応的に双予測の制限を行うことができる。
本発明の一態様に係る画像復号装置は、上記双予測制限フラグが、上記符号化データのストリームの複雑度および上記符号化データを復号する画像復号装置の性能の少なくとも何れか一方に応じて設定されているものであることが好ましい。
上記の構成によれば、レベルに応じて適応的に双予測の制限を行うことができる。
本発明の一態様に係る画像復号装置では、上記双予測制限フラグは、少なくとも3値を取り得えるものであり、上記双予測制限手段は、上記双予測制限フラグの値に応じた双予測の制限を行うことが好ましい。
上記の構成によれば、双予測の制限に関し、双予測制限フラグの値に応じた細かい調整を行うことができる。例えば、双予測制限フラグの値を3値に設定した場合は、次のような双予測の制限が考えられる。すなわち、あるサイズのCUについて、双予測の制限を行わない場合、2N×2N・PU以外の双予測を制限する場合、および、N×N・PUの双予測を制限する場合、の3つの場合を、3値を取り得る双予測制限フラグによって表現することができる。
より具体的には、双予測制限フラグの値に応じて、16×16CUにおいて、双予測の制限を行わない場合、8×8PUだけ双予測を制限する場合、および、8×8PU、16×8PU、8×16PUについて双予測を制限する場合を選択することができる。
本発明の一態様に係る画像復号装置では、上記双予測制限フラグは、処理の対象となる符号化単位について予め定められている最小のサイズのインター予測単位を禁止するフラグを兼ねていることが好ましい。
上記の構成においては、最小のPU(N×N)でのインター予測単位を禁止する場合、上記双予測制限フラグが双予測の制限を行うことを示すように設定することができる。逆もまた同様である。
例えば、最小のPU(N×N)でのインター予測単位を許容するか否かを示すフラグとしては、引用文献1では、inter_4x4_enabled_flagが規定されている。なお、CUのサイズが、8×8以上である場合、または、inter_4x4_enabled_flagが、“1”である場合、N×Nのインター予測が許容される。
ここで、!inter_4x4_enabled_flag(“!”は、論理否定の論理演算子を表す)とすれば、このように構成されたフラグは、インター4×4を禁止するか否かを示すフラグということができる。
あるCUのサイズに関して取り得る最小のサイズのPU(N×N)において、双予測を制限する場合、上記のように構成したフラグによって実現することが可能である。よって、このような場合、フラグの数を削減することができ、比較的簡易に双予測の制限を実現することができる。
本発明の一態様に係る画像復号装置は、符号化データを復号して、予測単位内の画像を、1枚の参照画像を参照する単予測、及び、2枚の参照画像を参照する双予測の何れかの画面間予測の予測方式によって復元する画像復号装置において、復号済みの予測単位の復号に用いた動き補償パラメータからマージ候補を導出するマージ候補導出手段と、上記導出されたマージ候補の少なくとも一部に対して、双予測の制限を行う双予測制限手段とを備えることを特徴とする。
双予測は、単予測よりも処理量が多い。なお、単予測とは、画面間予測において参照する画像を1つ用いる予測方式のことであり、双予測とは、画面間予測において参照する画像を2つ用いる予測方式のことである。参照する画像は、対象フレームに対して時間的に前方であっても後方であってもよい。
上記の構成によれば、対象予測単位における予測画像の復号にマージ処理を用いる場合でも、双予測を制限することができ、対象予測単位における復号処理を簡略化することができる。なお、制限するとは、双予測における一部の処理を省略すること、双予測の動きベクトルを、より処理負荷が軽減できるようなものに変換すること、および、双予測の処理を行わない(禁止する)ことを含む。
導出されたマージ候補の少なくとも一部において上記双予測の制限を行うことで、復号処理のボトルネックになるような処理の処理量を低減することができるという効果を奏する。
本発明の一態様に係る画像復号装置では、上記双予測制限手段は、上記双予測の制限において、上記双予測を単予測に変換することが好ましい。
上記構成において、“双予測を制限する”とは、双予測を単予測に変換して、双予測を行わなくても済むようにするということである。すでに説明したとおり、双予測よりも単予測のほうが、処理が複雑でなく、また処理量も少なくて済む。
また、「双予測を単予測に変換する」とは、参照される参照画像の枚数を2枚から1枚に制限することを指す。
上記の構成によれば、対象予測単位における予測画像の復号にマージ処理を用いる場合において、上述のとおり双予測を制限することで、対象予測単位における復号処理を簡略化することができる。
本発明の一態様に係る画像復号装置では、上記双予測制限手段は、上記導出されたマージ候補のうち、双予測のマージ候補であって、2つの動きベクトルの少なくとも一方が、非整数の成分を含む非整数動きベクトルであるマージ候補に対して、上記双予測の制限を行うことが好ましい。
上記の構成によれば、2つの動きベクトルが非整数動きベクトルであるマージ候補を、双予測の制限対象とする。その一方で、マージ候補が整数動きベクトルの場合には双予測を制限しなくても済む。
ここで、非整数動きベクトルとは、画素位置を整数値として表現したときに、少なくとも一部の該動きベクトルの成分が非整数によって表されるものを指す。
非整数動きベクトルに対しては、補間画像を生成するための補間フィルタを適用するため、処理負荷が高くなる傾向がある。これに対して、整数動きベクトルの場合には、このようなフィルタ処理は必須ではない。
また、整数動きベクトルの場合には、補間フィルタ処理が必須ではないため、動き補償で参照する範囲は、対象ブロックと同一とすることができる。
このため、整数動きベクトルの場合には、双予測を行っても転送量および処理量が過度には増大しない。
上記の構成によれば、双予測を制限しなくてもそれほど負荷がかからないような整数動きベクトルに対しては、双単変換を省略することができるので、マージ候補を双単変換する双予測制限処理の負荷を軽減することができる。
本発明の一態様に係る画像復号装置では、上記双予測制限手段は、上記導出されたマージ候補のうち、非整数の成分を含んでいる非整数動きベクトルを含む双予測のマージ候補に対して、該非整数動きベクトルが含んでいる非整数の成分の少なくとも一部を、整数の成分に変換することが好ましい。
上記の構成において、“双予測を制限する”とは、非整数動きベクトルによる双予測を制限するということである。
上述のとおり整数動きベクトルについては、補間フィルタを適用しなくても済む。よって、双予測のマージ候補の非整数動きベクトルの成分を整数化することにより、動き補償で参照する範囲を対象ブロックの範囲に、より一致させることができる。なお、すべての成分が整数化されれば、動き補償で参照する範囲が対象ブロックに一致する。
なお、整数化は、(X,Y)の2次元座標表現である場合、X座標に対してのみ行ってもよいし、Y座標に対してのみ行ってもよいし、X座標およびY座標の両方に対して行ってもよい。また、L0およびL1リストの片方のみを整数化してもよい。
このようにして得られる整数化された動きベクトルにより双予測を行えば、非整数動きベクトルのまま双予測を行う場合と比べて、転送量および処理量の増大を抑えることができる。
本発明の一態様に係る画像復号装置では、上記双予測制限手段は、上記導出されたマージ候補のうち、所定の数のマージ候補に対して、上記双予測の制限を行うことが好ましい。
上記の構成によれば、導出されたマージ候補のうちの一部のマージ候補に対して双予測の制限を行うことができる。例えば、マージ候補の導出の順序が定められている場合、または、導出したマージ候補が格納されているリストに順序が定められている場合、先頭からN個を双予測の制限対象とすることができる。なお、Nは正の整数であり、N=1であってもよい。
これにより、すべてのマージ候補に対して双予測の制限を行う場合と比べて、処理負荷を軽減することができる。
本発明の一態様に係る画像復号装置では、上記双予測制限手段は、上記導出されたマージ候補に、所定数以上の単予測が含まれていない場合、上記双予測の制限を行うことが好ましい。
マージ候補リストにおいて、所定数以上の単予測が含まれる場合、双予測を許容しても、全体的に見てそれほど処理負荷が増大しない場合がある。上記構成によれば、このような場合において、双予測の制限処理を省略することができ、双予測の制限処理による不可増大の抑制を図ることができる。
本発明の一態様に係る画像復号装置では、上記マージ候補導出手段が、すべてのマージ候補を導出したのち、上記双予測制限手段が、上記導出されたマージ候補に対して上記双予測の制限を行うことが好ましい。
上記の構成によれば、まず、マージ候補リストを生成する。また、マージ候補の導出においては、このような処理が一般的である。上記構成によれば、このように一般的なマージ候補リスト生成処理に変更を加えなくても済むので、処理ロジックが複雑になることを防ぐことができる。
本発明の一態様に係る画像復号装置では、上記マージ候補導出手段が、マージ候補を導出する処理と、並列的に、上記双予測制限手段が、上記導出されたマージ候補に対する上記双予測を制限する処理を行うことが好ましい。
上記の構成によれば、マージ候補をマージ候補リストに格納する前に、双予測を制限する。また、この処理は、マージ候補を導出する処理と、並列的に行われる。
このような並列化により処理効率の向上を図ることができる。処理のレイテンシの許容範囲が狭い場合に、特に有用である。
また、マージ候補の双単変換により、双予測の制限を行う場合であって、マージ候補のユニーク性をチェックする場合、マージ候補リストの生成を行って、ユニーク性のチェックを行ってから、双単変換する場合と比べて、マージ候補の重複なくマージ候補リストを作成することができる。
本発明の一態様に係る画像符号化装置は、符号化単位毎に、画像を復元するための情報を符号化して画像符号化データを生成する画像符号化装置において、上記符号化データのストリームの複雑度および上記符号化データを復号する画像復号装置の性能の少なくとも何れか一方に応じて、1枚の参照画像を参照する単予測、及び、2枚の参照画像を参照する双予測の画面間予測のうち、双予測の制限を行うか否かを示すフラグである双予測制限フラグを符号化データおいて符号化する符号化手段を備えることを特徴とする。
本発明の一態様に係る画像符号化データのデータ構造は、符号化単位毎に、画像を復元するための情報が画像符号化装置によって符号化されている画像符号化データのデータ構造において、上記符号化データのストリームの複雑度および上記符号化データを復号する画像復号装置の性能の少なくとも何れか一方に応じて、1枚の参照画像を参照する単予測、及び、2枚の参照画像を参照する双予測の画面間予測のうち、双予測の制限を行うか否かを示すフラグである双予測制限フラグを含むことを特徴とする。
なお、上記画像復号装置に対応する構成を備える画像符号化装置および当該画像符号化装置によって生成される画像符号化データのデータ構造も本発明の範疇に入る。上記のように構成された画像符号化装置および画像符号化データのデータ構造によれば、本発明の一態様に係る画像復号装置と同様の効果を奏することができる。
(ハードウェア的実現およびソフトウェア的実現)
また、上述した動画像復号装置1および動画像符号化装置2の各ブロックは、集積回路(ICチップ)上に形成された論理回路によってハードウェア的に実現してもよいし、CPU(Central Processing Unit)を用いてソフトウェア的に実現してもよい。
後者の場合、上記各装置は、各機能を実現するプログラムの命令を実行するCPU、上記プログラムを格納したROM(Read Only Memory)、上記プログラムを展開するRAM(Random Access Memory)、上記プログラムおよび各種データを格納するメモリ等の記憶装置(記録媒体)などを備えている。そして、本発明の目的は、上述した機能を実現するソフトウェアである上記各装置の制御プログラムのプログラムコード(実行形式プログラム、中間コードプログラム、ソースプログラム)をコンピュータで読み取り可能に記録した記録媒体を、上記各装置に供給し、そのコンピュータ(またはCPUやMPU)が記録媒体に記録されているプログラムコードを読み出し実行することによっても、達成可能である。
上記記録媒体としては、例えば、磁気テープやカセットテープ等のテープ類、フロッピー(登録商標)ディスク/ハードディスク等の磁気ディスクやCD−ROM(Compact Disc Read-Only Memory)/MOディスク(Magneto-Optical disc)/MD(Mini Disc)/DVD(Digital Versatile Disc)/CD−R(CD Recordable)/ブルーレイディスク(Blu-ray Disc:登録商標)等の光ディスクを含むディスク類、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/Cable 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)、携帯電話網、衛星回線、地上波デジタル網等の無線でも利用可能である。なお、本発明は、上記プログラムコードが電子的な伝送で具現化された、搬送波に埋め込まれたコンピュータデータ信号の形態でも実現され得る。
本発明は上述した実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能である。すなわち、請求項に示した範囲で適宜変更した技術的手段を組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。