〔実施形態1〕
(動画像符号化装置)
以下では、本実施形態に係る動画像符号化装置(符号化装置)2について、図1〜図3、図6〜図10、および図12を参照して説明する。図1は、動画像符号化装置2の構成を示すブロック図である。図1に示すように、動画像符号化装置2は、サイド情報決定部21、サイド情報符号化部22、MB設定部23、MB符号化部24、可変長符号多重化部25、MB復号部26、および、フレームメモリ27を備えている。
動画像符号化装置2は、概略的に言えば、入力画像#100を符号化することによって符号化データ#1を生成し、出力する装置である。動画像符号化装置2は、その一部に、H264/AVC規格に採用されている技術を用いている動画像符号化装置である。
また、入力画像#100の符号化処理には、DCT変換や量子化等の処理が含まれるが、動画像符号化装置2は、マクロブロック(量子化単位領域)ごとに量子化レベルを切り替えて量子化処理を施すようになっている。
サイド情報決定部21は、入力画像#100に基づいて、サイド情報を決定し、決定したサイド情報をサイド情報#21として出力する。そして、サイド情報#21は、MB設定部23に入力されると共に、サイド情報符号化部22に供給される。ここで、サイド情報#21は、入力画像#100に関するパラメータの集合であるピクチャ・パラメータ・セット、入力画像#100に含まれるスライス毎のヘッダ情報であるスライスヘッダ、スライスに含まれるマクロブロック毎のパラメータの集合であるマクロブロックレイヤ等から構成されるようになっている。ピクチャ・パラメータ・セットおよびスライスヘッダには、それぞれ、ピクチャデフォルトQP値、および、スライスデフォルトQP値のピクチャデフォルトQP値に対する差分値が含まれるようになっている。
また、サイド情報決定部21は、スライス毎に、該スライスに含まれるマクロブロックに割り当て可能なQP値に制限を課すためのQP差分値の集合を決定する。すなわち、スライスに含まれるマクロブロックMBiに割り当て可能なQP値は、同じスライスに含まれるマクロブロックMBi―1に割り当てたQP値とのQP差分値が上記QP差分値の集合に含まれるように制限される。
さらに、サイド情報決定部21は、スライス(テーブル生成単位領域)毎に、該スライスに関するQP差分値テーブルを生成し、対応するスライスヘッダ内に生成したQP差分値テーブルを含めるようになっている。ここで、スライスに関するQP差分値テーブルとは、上記QP差分値の集合に含まれる各QP差分値に、該QP差分値を指し示すインデックス(QP差分値ごとに互いに異なる整数)を関連づけることにより生成されるテーブルであるが、QP差分値テーブルは、(付記事項3)に後述するように、QP差分値テーブルの生成規則を符号化するものでも良い。また、動画像符号化装置と動画像復号装置が所定のQP差分値テーブルを複数個備えることとし、そのQP差分値テーブルを切り替えるためのインデックスを符号化する構成としても良い。そして、サイド情報決定部21は、マクロブロックMBiに割り当てたQP値とマクロブロックMBi―1に割り当てたQP値とのQP差分値を指し示すインデックスをマクロブロックレイヤに含めるようになっている。なお、サイド情報決定部21が、上記QP差分値の集合をどのように決定するか、また、QP差分値テーブルをどのように生成するかについては後述する。
サイド情報符号化部22は、サイド情報#21を符号化し、符号化済サイド情報#22を出力する。符号化済サイド情報#22は、可変長符号多重化部25に供給される。
MB設定部23は、サイド情報#21に基づいて、入力画像#100を複数のスライスに分割し、さらに、各スライスを複数のマクロブロックに分割し、各マクロブロックに関するマクロブロック画像#23を出力する。また、MB設定部23は、サイド情報#21に基づいて、マクロブロック画像#23に関する量子化パラメータの値(QP値)を算出する(詳細については後述する)。そして、マクロブロック画像#23は、算出したQP値とともに、MB符号化部24に順次供給される。
MB符号化部24は、順次入力されるマクロブロック画像#23について、MB符号化データ#24を生成して可変長符号多重化部25に供給する。MB符号化部24がMB符号化データ#24を生成する処理は具体的には以下の通りである。
すなわち、MB符号化部24は、マクロブロック画像#23を構成する各ブロックをDCT変換するとともに、ともに供給されるQP値に基づく量子化レベルで各ブロックの各DCT係数を量子化する。そして、MB符号化部24は、量子化により得られたデータに可変長符号化処理を施すことによりMB符号化データ#24を生成する。
可変長符号多重化部25は、符号化済サイド情報#22と、MB符号化データ#24とを多重化することによって符号化データ#1を生成し、出力する。
MB復号部26は、入力された個々のマクロブロックに対応するMB符号化データ#24を順次復号することにより、個々のマクロブロックに対応する復号画像#26を生成し、出力する。復号画像#26は、フレームメモリ27に供給される。
フレームメモリ27には、入力された復号画像#26が記録される。特定のマクロブロックを符号化する時点では、当該マクロブロックよりもラスタスキャン順で先行する全てのマクロブロックに対応する復号画像がフレームメモリ27に記録されている。
(QP差分値の集合の決定方法、および、QP差分値テーブルの生成方法)
サイド情報決定部21はマクロブロックに割り当て可能なQP値に制限を課すためのQP差分値の集合を任意の方法により決定できるが、以下に具体例を挙げる。
例1)要素として含まれる各QP差分値がfactor*(−1)j+1* Ceil(j/2)(j=0、1、2、・・)であるようなQP差分値の集合を決定する。
例2)要素として含まれる各QP差分値が、0または(−1)j+1*factor{Ceil(j/2)-1} (j=1、2、・・)であるようなQP差分値の集合を決定する。
例3)要素として含まれる各QP差分値が、0、1、−1、またはfactor*(−1)j+1* Ceil(j/2)+3(j=3、4、・・)であるようなQP差分値の集合を決定する。
なお、上記例1〜例3のいずれの場合においても、スライス毎にスライスタイプを判定し、スライスタイプがIスライスの場合にfactor(所定の値)=3,スライスタイプがPスライスの場合にfactor=2、スライスタイプがBスライスの場合にfactor=1となるようにQP差分値の集合を決定する。以下、上記例1〜上記例3の各決定方法をmethod=0,1,2で識別することとする。
次に例1〜例3のようにQP差分値の集合を決定した場合における、QP差分値テーブルの生成方法の具体例について以下に説明する。
例1のようにQP差分値の集合を決定した場合、Pスライスのスライスヘッダに含めるQP差分値テーブルは、例えば、図8(b)に示すようなテーブルになる。
すなわち、サイド情報決定部21がスライスヘッダに含めるQP差分値テーブルは、各QP差分値mb_qp_delta[j]=2*(−1)j+1*Ceil(j/2)(j=0〜8)に、インデックスmb_qp_delta_index[j]=(−1)j+1*Ceil(j/2)を関連付けたテーブルとなる。例1の場合、QP差分値とインデックスの関係は、QP差分値=factor*インデックスとなる。
また、例2のようにQP差分値の集合を決定した場合、Pスライスのスライスヘッダに含めるQP差分値テーブルは、例えば、図8(c)に示すようなテーブルになる。
すなわち、サイド情報決定部21がスライスヘッダに含めるQP差分値テーブルは、QP差分値0にインデックス0を関連づけ、各QP差分値mb_qp_delta[j]=(−1)j+1*2{Ceil(j/2)-1}(j=1〜8)に、インデックスmb_qp_delta_index[j]=(−1)j+1* Ceil(j/2)を関連付けたテーブルとなる。
例3のようにQP差分値の集合を決定した場合、サイド情報決定部21がスライスヘッダに含めるQP差分値テーブルは、QP差分値0、1、−1にそれぞれインデックス0、1、−1を関連づけ、各QP差分値mb_qp_delta[j]=(−1)j+1*factor{Ceil(j/2)-1}(j=3・・)に、インデックスmb_qp_delta_index[j]=(−1)j+1* Ceil(j/2)+3(j=3・・)を関連付けたテーブルとなる。
以上のように、サイド情報決定部21は、各QP差分値に、該QP差分値の絶対値よりも絶対値が小さいインデックスを関連づけたQP差分値テーブル(図8(a)〜図8(c)に示すようなテーブル)を生成することが望ましいが、サイド情報決定部21が生成するQP差分値テーブルは少なくとも以下のような特性を持っていればよい。
すなわち、各インデックスを符号番号に変換してユーナリバイナリゼーションに基づく量子化処理を施した場合に出力される全量子化データの符号量が、各QP差分値を符号番号に変換してユーナリバイナリゼーションに基づく量子化処理を施した場合に出力される全量子化データの符号量より少なくなるようなものであれば、QP差分値テーブルはいかなるものであっても構わない。例えば、QP差分値テーブルは、QP差分値とインデックスとが1対1に対応づけられたテーブルであって、各QP差分値の絶対値の総和よりも各インデックスの絶対値の総和が小さくなるようなテーブルであればよい。
(サイド情報決定部21およびサイド情報符号化部22の動作について)
次に、サイド情報決定部21およびサイド情報符号化部22の動作について、図2を参照しながら説明する。すなわち、入力画像#100に含まれる図7(a)に示すような各スライスについて、動画像符号化装置2が、QP差分値テーブルを生成してからスライス内の各マクロブロックMBiのマクロブロックレイヤに格納したインデックスを符号化するまでの各部の動作について以下に説明する。
図2は、上記動作の流れを示すフローチャートである。
図2に示すように、サイド情報決定部21は、入力画像#100に含まれるスライスのスライスタイプに応じたQP差分値テーブルを生成し、サイド情報#21内の対応するスライスヘッダに含める(ステップS41)。
次に、サイド情報決定部21は、上記スライス内のマクロブロックMBi(i=1、2、・・)のQP値を決定する(ステップS42)。
具体的には、サイド情報決定部21は、マクロブロックMBiのQP値を、H264/AVC規格において規定された範囲内の値に暫定的に定める。そして、サイド情報決定部21は、暫定的に定めたマクロブロックMBiのQP値から、すでに決定したマクロブロックMBi−1のQP値(i=1の場合にはスライスデフォルトQP値)を引いた値(暫定QP差分値)が、QP差分値テーブルにQP差分値として含まれているか否かを判定する。
そして、含まれていると判定した場合には、サイド情報決定部21は、暫定的に定めたQP値を、マクロブロックMBiのQP値として決定する。一方、含まれていないと判定した場合には、サイド情報決定部21は、QP差分値テーブルに含まれている複数のQP差分値のうち暫定QP差分値に最も近いQP差分値をマクロブロックMBi−1のQP値(i=1の場合にはスライスデフォルトQP値)に加算した値をマクロブロックMBiのQP値として決定する。
以上のように、各マクロブロックのQP値を決定した後、サイド情報決定部21は、先頭マクロブロックMB1のQP値からスライスデフォルトQP値を引き算することにより、先頭マクロブロックMB1に関するQP差分値を求める。そして、サイド情報決定部21は、直前のステップS41にて生成したQP差分値テーブルを参照して、該QP差分値をインデックスに変換する(ステップS43)。サイド情報決定部21は、得られたインデックスをサイド情報#21内の対応するマクロブロックレイヤに含める。
ここでは、QP差分値テーブルを用いて、QP差分値からインデックスへの変換を行ったが、QP差分値とインデックスとの関係が四則演算などの演算で定義されるものである場合には、QP差分値テーブルを用いずとも変換は可能である。以下、QP差分値からインデックスへの演算による変換、もしくは、インデックスからQP差分値への演算による変換を定める規則を変換規則と呼ぶ。例えば、例1の場合は、変換規則がQP差分値=インデックス×factorとなるので、QP差分値テーブルによらず演算によりQP差分値からインデックスへの変換が可能である。
さらに、サイド情報決定部21は、QP差分値がまだ算出されていない別のマクロブロックMBi(i>1)について、マクロブロックMBiに関するQP差分値を、マクロブロックMBiのQP値からマクロブロックMBi−1のQP値を引き算することにより求める。そして、サイド情報決定部21は、直前のステップS41にて生成したQP差分値テーブルを参照して、該QP差分値をインデックスに変換する(ステップS44)。サイド情報決定部21は、得られたインデックスをサイド情報#21内の対応するマクロブロックレイヤに含める。
ステップS44の後、サイド情報決定部21は、ステップS44における処理の対象となったマクロブロックがスライス内の最後のマクロブロックMBnであるか否かを判定する(ステップS45)。最後のマクロブロックMBnでないと判定された場合、ステップS44に戻る。一方、最後のマクロブロックMBnであると判定された場合、ステップS46に進む。
サイド情報決定部21は、ステップS41〜ステップS44における処理が施されていないスライスが入力画像#100内に存在するか否かを判定する(ステップS46)。存在すると判定された場合、ステップS41〜ステップS44における処理がまだ施されていない別のスライスについてステップS41〜ステップS44の処理を施す。一方、存在しないと判定された場合、サイド情報決定部21は、マクロブロックレイヤにインデックスが含まれ、スライスヘッダにQP差分値テーブルが含まれているサイド情報#21を、サイド情報符号化部22およびMB設定部23に供給し、ステップS47に進む。
サイド情報#21が入力されたサイド情報符号化部22は、サイド情報#21の各マクロブロックレイヤに含まれているインデックスについて、該インデックスを符号番号に変換し、符号番号を入力として、ユーナリバイナリゼーションに基づく2値化処理を施す。すなわち、図9(a)に示すようなテーブルに基づいて、絶対値nのインデックスを、長さ2nの2値列または長さ2n+1の2値列(すなわち、インデックスの絶対値の大きさに応じた長さの2値列)に変換する(ステップS47)。
さらに、サイド情報符号化部22は、ステップS47の処理によって各マクロブロックレイヤに格納された2値列を算術符号化するとともに、サイド情報#21の各スライスヘッダに含まれているQP差分値テーブルを符号化する(ステップS48)。サイド情報符号化部22は、S48の処理を含むサイド情報#21全体の符号化処理を行った後、符号化済サイド情報#22を可変長符号多重化部25に供給する。
以上、サイド情報決定部21およびサイド情報符号化部22の動作について説明したが、ここで、サイド情報#21が入力されたMB設定部23の動作について説明する。
前述したように、MB設定部23は、入力画像#100を複数のスライスに分割し、さらに、各スライスを複数のマクロブロックに分割する。そして、MB設定部23は、各マクロブロックに関するマクロブロック画像#23を、そのマクロブロック画像#23に関するQP値とともに、MB符号化部24に順次供給する。
MB設定部23は、入力されたサイド情報#21に基づいてMB符号化部24に供給する上記QP値を以下のように算出する。
すなわち、MB設定部23は、マクロブロック画像#23に対応するマクロブロックレイヤに含まれているインデックスと、マクロブロック画像#23がその一部を構成するスライスに対応するスライスヘッダに含まれているQP差分値テーブルと、を参照する。
そして、MB設定部23は、QP差分値テーブルにおいて、参照したインデックスに関連づけられているQP差分値を参照する。さらに、MB設定部23は、直前にMB符号化部24に供給したマクロブロック画像#23に関するQP値に該QP差分値を加算した値を、MB符号化部24にこれから供給するQP値とする。
なお、入力されたQP値に基づいてマクロブロック画像#23を量子化および符号化するMB符号化部24、並びに、可変長符号多重化部25〜フレームメモリ27は、H264/AVC規格に準拠した動作を行うものであるので、詳細については省略することとする。
(QP差分値テーブルの符号化について)
サイド情報符号化部22によるQP差分値の符号化について具体的に説明する。
サイド情報符号化部22は、QP差分値テーブルのサイズ(すなわち、テーブルに含まれるインデックス(QP差分値)の個数)と、各QP差分値と、を符号化する。
例えば、図8(b)に示すようなQP差分値テーブルをサイド情報決定部21が生成していた場合、サイド情報符号化部22は、QP差分値テーブルのサイズ9と、各QP差分値(−8、−6、・・、0、・・6、8)と、を符号化する。あるいは、サイド情報符号化部22は、各QP差分値をそのまま符号化する代わりに、インデックス0に対応するQP差分値についてはそのまま符号化し、他のインデックスについては、該インデックスのQP差分値から該インデックスより1だけ小さいインデックスのQP差分値を引き算した差分を符号化するようにしてもよい。
なお、QP差分値、または上記QP差分値の差分を、ユーナリバイナリゼーションにより符号化してもよい。
ユーナリバイナリゼーションを用いて図8(b)のQP差分値テーブルを符号化する場合の符号量を、各QP差分値をそのまま符号化する場合、および、インデックス0に対応するQP差分値についてはそのまま符号化し、他のインデックスについてはQP差分値の差分を符号化する場合のそれぞれについて、図10(a)および図10(b)を参照しながら以下に示す。なお、図10(a)および図10(b)のmb_qp_delta[i]はインデックスiのQP差分値を示しており、図10(b)において、dd[i,i-1]=mb_qp_delta[i]-mb_qp_delta[i-1]である。
各QP差分値をそのまま符号化する場合、図10(a)に示すように、QP差分値mb_qp_delta[-4](=-8)は符号番号16に変換されるので、QP差分値の符号量は17になる。他のQP差分値についても同様であり、各QP差分値の符号量の合計は85ビットになる。
また、インデックス0に対応するQP差分値についてはそのまま符号化し、他のインデックスについてはQP差分値の差分を符号化する場合、図10(b)に示すように、インデックス0に対応するQP差分値(mb_qp_delta[0]=0)は、符号番号0に変換されるので符号量は1になる。また、他のインデックスiについてはQP差分値の差分dd[i,i-1]=2が符号番号3に変換されるので符号量は4になる。したがって、符号量の合計は、29ビットになる。
(変形例)
サイド情報決定部21およびサイド情報符号化部22の動作の変形例について、図3および図7(b)を参照しながら以下に説明する。図3は、本変形例に係るサイド情報決定部21およびサイド情報符号化部22の動作を示すフローチャートである。また、図7(b)は、複数の拡大マクロブロック(第2単位領域)から構成されているスライスであって各拡大マクロブロックが複数のマクロブロックから構成されているスライスを示す図である。ここで、拡大マクロブロックは、内部に含まれる全マクロブロックが互いに画素特性が類似するように構成される。
本変形例では、動画像符号化装置2は、拡大マクロブロックに含まれる複数のマクロブロックの各々についてQP差分値を決定するが、QP差分値を決定するマクロブロックは、拡大マクロブロック内においてラスタスキャン順に選択されるようになっている。例えば、図7(b)の拡大マクロブロックLMB1に含まれる4つのマクロブロックのQP差分値は、MB1、MB2、MB3、MB4の順に決定されるようになっている。
また、動画像符号化装置2は、スライスに含まれる複数の拡大マクロブロックの各々について上記処理を行うが、上記処理の対象となる拡大マクロブロックは、スライス内においてラスタスキャン順に選択されるようになっている。例えば、図7(b)のスライスに含まれる複数の拡大マクロブロックに対する上記処理は、拡大マクロブロックLMB1、LMB2、LMB3・・の順に行うようになっている。なお、図7(b)および上記説明からわかるように、図中においてマクロブロックに付した符号MBi(i=1、2、・・)のiの値はスライス内でマクロブロックが選択される順序を示している。
本変形例では、動画像符号化装置2は、拡大マクロブロック内の先頭のマクロブロック(特定の単位領域)については、H264/AVC規格に基づく方法でQP値(以下では上記先頭のマクロブロックのQP値をQPheadとも記載する)を割り当てる。そして、動画像符号化装置2は、QP差分値をインデックスに変換せずに直接符号番号に変換し、符号番号をユーナリバイナリゼーションにより2値列に変換する。
一方、動画像符号化装置2は、先頭以外のマクロブロックについては、同じ拡大マクロブロックの先頭のマクロブロックについて割り当てたQP値に対するQP差分値を、図8(e)に示すQP差分値テーブルに基づいてインデックスに変換する。そして、動画像符号化装置2は、インデックスを符号番号に変換し、符号番号をユーナリバイナリゼーションにより2値列に変換する。
ここで、図8(e)からわかるように、本変形例で先頭以外のマクロブロックに割り当て可能なQP値の候補の数(QPhead−2、QPhead、QPhead+2の3個)は、上記実施形態において各マクロブロックに割り当て可能なQP値の候補の数(図8(a)のテーブルを用いた場合の13個や図8(b)〜図8(d)のテーブルを用いた場合の9個)より少なくなっている。また、本変形例で先頭以外のマクロブロックに決定可能なQP差分値の絶対値の最大値は、0に近い所定の値である2となっている。
なお、拡大マクロブロック内の各マクロブロックは画像特性が類似しているため、上記のようにして各マクロブロックに割り当てるQP値を略一定にしても、適切でないQP値を割り当てることによるマクロブロック画像の画質の劣化や無駄な符号量の増加等が起こりにくいと考えられる。また、QP差分値テーブルのサイズが小さくなるため、QP差分値テーブルを符号化する場合の符号量も削減されるメリットや、インデックスの絶対値の最大値がたかだか1になるので、インデックスから変換された2値列の符号量も2以下と小さくなるメリットがある。
以下、サイド情報決定部21およびサイド情報符号化部22の変形例に係る動作について、図3を参照しながら説明する。
図3に示すように、サイド情報決定部21は、図8(e)に示すようなQP差分値テーブルを生成し、サイド情報#21内の対応するスライスヘッダに含める(ステップS61)。
以下のS62〜S68の処理は、対象となる拡大マクロブロック(例えばLMB1)全体を構成する複数のマクロブロックの中からラスタスキャン順に選択した各マクロブロックについて、選択した順(例えば、MB1、MB2、MB3、MB4の順)に行われる。また、上記対象となる拡大マクロブロックは、スライス全体を構成する複数の拡大マクロブロックの中からラスタスキャン順(LMB1、LMB2・・の順)に選択される。
ステップS62において、サイド情報決定部21は、選択したマクロブロックMBiがスライス内の先頭マクロブロックMB1であるか否かを判定する。
先頭マクロブロックMB1であると判定された場合(ステップS62においてYES)、サイド情報決定部21は、マクロブロックMB1のQP値をH264/AVC規格に基づく方法で決定する。そして、サイド情報決定部21は、決定したQP値からスライスデフォルトQP値を引き算したQP差分値を、対応するマクロブロックレイヤに格納し(ステップS67)、ステップS68に進む。
一方、先頭マクロブロックMB1でないと判定された場合(ステップS62においてNO)、選択したマクロブロックMBiがいずれかの拡大マクロブロック内の先頭マクロブロック(MB5やMB9等)であるか否かを判定する(ステップS63)。
拡大マクロブロック内の先頭マクロブロックであると判定された場合(ステップS63においてYES)、サイド情報決定部21は、マクロブロックMBiのQP値をH264/AVC規格に基づく方法で決定する。そして、サイド情報決定部21は、決定したQP値から、マクロブロックMBi−1について決定したQP値を引き算したQP差分値を、対応するマクロブロックレイヤに格納し(ステップS66)、ステップS68に進む。
一方、先頭マクロブロックでないと判定された場合(ステップS63においてNO)、そのマクロブロックのQP差分値を決定する(ステップS64)。
具体的には、サイド情報決定部21は、マクロブロックのQP値をH264/AVC規格に基づいて暫定的に定める。そして、サイド情報決定部21は、暫定的に定めたQP値から、該マクロブロックと同じ拡大マクロブロックに含まれる先頭マクロブロックのQP値を引いた値(暫定QP差分値)が、QP差分値テーブルにQP差分値として含まれているか否かを判定する。
そして、含まれていると判定した場合には、サイド情報決定部21は、暫定的に定めたQP値を、マクロブロックMBiのQP値として決定する。一方、含まれていないと判定した場合には、サイド情報決定部21は、QP差分値テーブルに含まれている複数のQP差分値のうち暫定QP差分値に最も近いQP差分値をマクロブロックMBiのQP差分値として決定する。つまり、ステップS64にて拡大マクロブロックの先頭以外のマクロブロックについて決定すべきQP差分値の候補の数は、拡大マクロブロックの先頭マクロブロックについて決定すべきQP差分値の候補の数よりも少なくなることになる。なお、決定したQP差分値をマクロブロックMBi−1のQP値に加算した値をマクロブロックMBiのQP値として決定する。
サイド情報決定部21は、直前のステップS61にて生成したQP差分値テーブルを参照して、ステップS64にて決定したQP差分値をインデックスに変換する。サイド情報決定部21は、得られたインデックスをサイド情報#21内の対応するマクロブロックレイヤに含め(ステップS65)、ステップS68に進む。
ステップS68において、サイド情報決定部21は、処理の対象となったマクロブロックがスライス内の最後のマクロブロックであるか否かを判定する。最後のマクロブロックでないと判定された場合(ステップS68においてNO)、ステップS62に戻る。一方、最後のマクロブロックであると判定された場合(ステップS68においてYES)、ステップS69に進む。
サイド情報決定部21は、ステップS61〜ステップS68における処理が施されていないスライスが入力画像#100内に存在するか否かを判定する(ステップS69)。存在すると判定された場合、ステップS61〜ステップS68における処理がまだ施されていない別のスライスについてステップS61〜ステップS68の処理を施す。一方、存在しないと判定された場合、サイド情報決定部21は、サイド情報#21を、サイド情報符号化部22およびMB設定部23に供給し、ステップS70に進む。
サイド情報#21が入力されたサイド情報符号化部22は、サイド情報#21の各マクロブロックレイヤに含まれているインデックスまたはQP差分値を符号番号に変換し、符号番号を入力として、ユーナリバイナリゼーションに基づく2値化処理を施す(ステップS70)。
さらに、サイド情報符号化部22は、サイド情報#21の各スライスヘッダに含まれているQP差分値テーブルを符号化する(ステップS71)。サイド情報符号化部22は、S70の処理を含むサイド情報#21全体の符号化処理を行った後、符号化済サイド情報#22を可変長符号多重化部25に供給する。
以上、サイド情報決定部21およびサイド情報符号化部22の動作について説明したが、ここで、サイド情報#21が入力されたMB設定部23の動作について説明する。
MB設定部23は、MB符号化部24にマクロブロック画像#23とともに供給するQP値を、入力されたサイド情報#21に基づいて以下のように算出する。
すなわち、供給すべきマクロブロック画像#23が拡大マクロブロック内の先頭マクロブロック以外のマクロブロックである場合、MB設定部23は、マクロブロック画像#23に対応するマクロブロックレイヤに含まれているインデックスと、マクロブロック画像#23がその一部を構成するスライスに対応するスライスヘッダに含まれているQP差分値テーブルと、を参照する。そして、MB設定部23は、QP差分値テーブルにおいて、参照したインデックスに関連づけられているQP差分値を参照する。さらに、MB設定部23は、直前にMB符号化部24に供給したマクロブロック画像#23に関するQP値に該QP差分値を加算した値を、MB符号化部24にこれから供給するQP値とする。
一方、供給すべきマクロブロック画像#23が拡大マクロブロック内の先頭マクロブロックである場合、MB設定部23は、マクロブロック画像#23に対応するマクロブロックレイヤに含まれているQP差分値を参照する。MB設定部23は、直前にMB符号化部24に供給したマクロブロック画像#23に関するQP値に該QP差分値を加算した値を、MB符号化部24にこれから供給するQP値とする。
<動画像符号化装置に関する付記事項>
なお、QP差分値テーブルは、図8(a)〜図8(c)のように、各QP差分値に、該QP差分値の絶対値よりも絶対値が小さいインデックスを関連づけたテーブルであることが望ましいと述べたが、サイド情報決定部21は、そうでない図8(d)のようなテーブルを生成してもよい。図8(d)のテーブルは以下のように生成されるものである。
すなわち、先に述べたように、ステップS42において、サイド情報決定部21は、スライス内のマクロブロックMB1〜MBnの各々について、該マクロブロックのQP値を決定するために、該スライスについて決定したQP差分値の集合の中から該マクロブロックのQP差分値を決定する。
サイド情報決定部21は、決定したn個のQP差分値から定まる最頻値(図8(d)において0)、2番目に頻度の高い値(図8(d)において4)、3番目に頻度の高い値(図8(d)において−6)・・の順に、それぞれ、インデックス0、1、−1、・・・を関連づけたテーブルを生成する。すなわち、テーブルにおいて、頻度が高いQP差分値ほど絶対値の小さいインデックスに関連づけられることになる。また、各頻度、すなわち、各QP差分値がn個のQP差分値からなるグループの中に含まれる割合は、サイド情報決定部21により算出される。なお、このように、頻度の高いQP差分値ほど絶対値の小さいインデックスが割り当てられるようにQP差分値テーブルを生成する場合、QP差分値テーブルに含まれる各QP差分値の絶対値の総和と各インデックスの絶対値の総和とは、等しくなっていてもよい。
以上、本実施形態に係る動画像符号化装置2について説明を行ったが、本発明は、以上の構成に限定されるものではない。
(付記事項1)
上記実施形態では、量子化単位領域がマクロブロックであるものとしたが、これに限られない。すなわち、QP値の決定、QP差分値のインデックスへの変換、およびインデックスの2値化、並びに、QP値による画像の量子化をマクロブロック単位で行うものとものとしたが、マクロブロック単位でなくマクロブロックよりも大きい単位やマクロブロックより小さい単位(パーティション単位や8画素x8ラインのブロック単位、4画素x4ラインのブロック単位等)で行ってもよい。
また、上記実施形態では、テーブル生成単位領域がスライスであるものとしたが、これに限られない。すなわち、QP差分値テーブルの生成をスライス単位で行うものとしたが、QP差分値テーブルの生成を、スライスより大きい単位(ピクチャ単位等)やスライスより小さい単位(マクロブロック単位等)で行うようにしてもよい。マクロブロック単位でfactorの値に応じたQP差分値テーブルを生成する場合、例えば、マクロブロックレイヤのマクロブロックタイプを参照して、マクロブロックタイプがイントラマクロブロックであればfactor=3と決定し、マクロブロックタイプがインターマクロブロックである場合にはfactor=2と決定するようにしてもよい。
ただし、どのようにテーブル生成単位領域のサイズ、および量子化単位領域のサイズを決定した場合であっても、テーブル生成単位領域は、複数の量子化単位領域を包含するように構成される必要がある。
また、QP差分値テーブルをテーブル生成単位領域ごとに生成しないようにしてもよい。すなわち、予め定められたQP差分値テーブルを図示しない記憶部に保持しておき、テーブル生成単位領域ごとに生成するQP差分値テーブルに代えて、上記記憶部に保持しているQP差分値テーブルを用いてもよい。この場合、動画像符号化装置2は、QP差分値テーブルの符号化および符号化したQP差分値テーブルの外部への出力を行わなくてもよい。これは、動画像復号装置1が、同じQP差分値テーブルを保持していれば、サイド情報符号化データ#11aを復号した後、インデックスからQP差分値を導出することができるからである。
(付記事項2)
上記実施形態では、スライス毎にスライスタイプを判定し、スライスタイプに応じてfactorの値を決定し、factorの値に応じたQP差分値テーブルを生成するものとしたが、QP差分値テーブルの生成は以下のように行っても良い。
すなわち、最初に、サイド情報決定部21は、スライスに含まれるマクロブロックMB1〜MBnのQP値を、H264/AVC規格に基づく方法で暫定的に定める。そして、サイド情報決定部21は、得られたn個のQP値の分散を算出し、分散の値の大きさに応じてfactorの値を決定する。具体的には、例えば、分散がS1以上である場合にfactor=3と決定し、分散がS2以上S1未満である場合にfactor=2と決定し、分散がS2未満である場合にfactor=1と決定するようにしてもよい。最後にサイド情報決定部21は、このように決定されたfactorの値に応じたQP差分値テーブルを生成する。
(付記事項3)
上記実施形態では、QP差分値テーブルを符号化する場合に、各QP差分値を符号化するものとしたが、以下のようにQP差分値テーブルを符号化してもよい。すなわち、図8(b)のQP差分値テーブルや図8(c)のQP差分値テーブルのように、factorの値と、QP差分値テーブルのサイズと、から定まるQP差分値テーブルを符号化する場合には、各QP差分値を符号化する代わりにfactorの値を符号化するようにしてもよい。この場合、QP差分値テーブルの符号量がより削減されることになる。また、同一のfactorからQP差分値テーブルを算出する算出方法には例1〜例3に示すように複数の算出方法が存在する。ここでは例1〜例3の各算出方法の中から算出方法を1つ選択して使用してもよい。この場合、QP差分値テーブルの算出方法を決定するために必要な情報を明示的に符号化してもよい。すなわち、methodとfactorの両方を符号化するものでも構わない。
なお、符号化データとして外部に出力する情報は、各QP差分値と、各インデックスと、を1対1に対応付ける情報であれば、いかなるものであっても構わない。すなわち、該情報は、各QP差分値を符号化したものであってもよいし、factorの値を符号化したものであってもよい。また、QP差分値テーブルに登録されるインデックスの範囲がスライス毎に変更され得る場合には、該情報に、各QP差分値またはfactorの値に加え、各インデックスの値を含めてもよい。
なお、動画像符号化装置と動画像復号装置が所定の変換規則、もしくは、QP差分値テーブルを複数個備えることとし、その変換規則(QP差分値テーブル)を切り替えるための変換規則インデックス(粗さ指定フラグ)を符号化する構成としても良い。変換規則インデックスを符号化する場合、例えば、mb_qp_delta = mb_qp_delta_indexとなる変換規則を識別するインデックスが0、等価なQP差分値テーブルが図8(b)のQP差分値テーブルで示される変換規則を識別するインデックスが1、等価なQP差分値テーブルが図8(c)で示される変換規則を識別するインデックスが2となるような0〜2の変換規則インデックスを符号化する構成でも良い。
また、QP差分値テーブルを識別する粗さ指定フラグは、2値のフラグであっても構わない。例えば、等価な変換規則がmb_qp_delta = mb_qp_delta_indexとなるようなQP差分値テーブルを識別する粗さ指定フラグの値を0とし、図8(a)のQP差分値テーブルを識別する粗さ指定フラグの値を1としても良い。
(付記事項4)
上記実施形態では、インデックスを2値列に変換するためにユーナリバイナリゼーションを用いるものとしたが、必ずしもこの構成に限定されない。すなわち、インデックスを2値列に変換するために、ユーナリバイナリゼーションと、図9(b)に示すような固定長バイナリゼーションとを使い分けてもよい。さらには、これらのバイナリゼーションにより得られた2値列に対し、別の符号化を施してもよい。例えば、H.264/AVCで規定されているようなコンテキスト適応算術符号化(CABAC)を適用することができる。
具体的には、サイド情報符号化部22は、ユーナリバイナリゼーションを用いるか、固定長バイナリゼーションを用いるかをスライス毎に決定してもよい。この場合、サイド情報符号化部22は、例えば、スライス内の各マクロブロックについて、対応するマクロブロックレイヤに格納されているインデックスを参照する。そして、サイド情報符号化部22は、参照した複数個のインデックスの中に各インデックスの値i(i=0、1、・・・)が含まれる確率が略一定であるか(確率の最大値と最小値との差が所定の閾値以下であるか)否かを判定し、略一定である場合には固定長バイナリゼーション、そうでない場合にはユーナリバイナリゼーションを用いるようにしてもよい。
なお、固定長バイナリゼーションにより得られる2値列の長さは、2を底とする、とり得るQP差分値の個数の対数値に依存することになる。例えば、とり得るQP差分値の個数が7であれば、2値列の長さは3になる。したがって、QP差分値テーブルを用いてとり得るQP差分値に制限をかけた場合、制限をかけない場合に比べ2値列の長さが小さくなり、符号量も削減されることになる。
(付記事項5)
本発明では、量子化単位領域のQP差分値を、該量子化単位領域のQP値と所定の基準値と、の差をとることにより求める。上記実施形態では、この所定の基準値を、処理順で該量子化単位領域の直前の量子化単位領域のQP値としていたが、本発明はこれに限定されない。すなわち、QP差分値を求める量子化単位領域に隣接する量子化単位領域(例えば、左や上に隣接する量子化単位領域)のQP値を上記所定の基準値としてもよい。あるいは、QP差分値を求める量子化単位領域に近接する(すなわち、該量子化単位領域から所定の範囲内にある)量子化単位領域のQP値を上記所定の基準値としてもよいし、量子化単位よりも大きな処理単位毎に変化する値(例えば、スライスデフォルトQP値)を上記所定の基準値としてもよい。あるいは、上記所定の基準値を特定の定数値(例えば、0)にしてもよい。
(動画像符号化装置2の利点)
以上のように、動画像符号化装置2では、サイド情報決定部21が、符号化順序が連続する2つのマクロブロックからなる各対のQP差分値がn個のQP差分値のいずれかになるように、各マクロブロックのQP値を設定する。例えば、動画像符号化装置2は、マクロブロックMB3のマクロブロックMB2に対するQP差分値が図8(d)のQP差分値テーブルに登録される9個のQP差分値−9、−2、・・3、8のひとつである1になるように、マクロブロックMB3のQP値を決定する。そして、マクロブロックMB3のマクロブロックMB2に対するQP差分値1を、9個のインデックスのうちの、QP差分値1に対応するインデックス2に変換する。
また、サイド情報符号化部22は、インデックスからその絶対値の大きさに応じた長さの2値列を生成する。例えば、サイド情報符号化部22は、インデックス2から長さ4の2値列「1110」を生成し、インデックス3から長さ6の2値列「111110」を生成する。
なお、n個のインデックスはn個の差分値よりも絶対値の総和が小さくなっている。例えば、図8(d)のQP差分値テーブルでは、9個のインデックスの絶対値の総和は20であり、9個のQP差分値の絶対値の総和は34である。このため、マクロブロックMB1〜MBnの各QP差分値から従来のように該QP差分値の絶対値の大きさに応じた長さの2値列を生成するよりも、マクロブロックMB1〜MBnの各QP差分値を対応するインデックスに変換するとともにインデックスの絶対値の大きさに応じた長さの2値列を生成するほうが、一般的に、n個の2値列の合計長が短くなる(すなわち、符号量が小さくなる)。
これにより、動画像符号化装置2は、量子化パラメータの符号量を従来に比べてより削減することが可能である。
(動画像復号装置)
実施形態に係る動画像復号装置(復号装置)1の構成について、図4〜図10、図12を参照して説明する。動画像復号装置1は、その一部に、H264/AVC規格に採用されている技術を用いている動画像復号装置である。
動画像復号装置1は、概略的に言えば、動画像符号化装置2から入力される符号化データ#1を復号することによって復号画像#2を生成し、出力する装置である。
図4は、動画像復号装置1の構成を示すブロック図である。図4に示すように、動画像復号装置1は、可変長符号逆多重化部11、サイド情報復号部12、MB設定部13、MB復号部14、および、フレームメモリ15を備えている。
動画像復号装置1に入力された符号化データ#1は可変長符号逆多重化部11へ入力される。可変長符号逆多重化部11は、入力された符号化データ#1を逆多重化することによって、符号化データ#1を、サイド情報に関する符号化データであるサイド情報符号化データ#11aと、ピクチャに関する符号化データである符号化データ#11bと、に分離し、サイド情報符号化データ#11aをサイド情報復号部12に、符号化データ#11bをMB設定部13にそれぞれ出力する。
サイド情報復号部12では、サイド情報符号化データ#11aからサイド情報#12を復号し、サイド情報#12をMB設定部13に出力する。サイド情報#12は、入力画像#100に関するパラメータの集合であるピクチャ・パラメータ・セット、入力画像#100に含まれるスライス毎のヘッダ情報であるスライスヘッダ、スライスに含まれるマクロブロック毎のパラメータの集合であるマクロブロックレイヤ等から構成される。
MB設定部13では、入力されたサイド情報#12に基づいて、符号化データ#11bを複数のスライスに分割し、各スライスを個々のマクロブロックに対応する符号化データ#13に分離し、MB復号部14に対して順次出力する。MB設定部13は、後述するように、サイド情報#12に基づいて、符号化データ#13を逆量子化するためのQP値を求め、求めたQP値を符号化データ#13とともにMB復号部14に出力する。
MB復号部14は、入力された個々のマクロブロック(逆量子化単位領域)に対応する符号化データ#13を順次復号および逆量子化することにより、個々のマクロブロックに対応する復号画像#2を生成し、出力する。また、復号画像#2は、フレームメモリ15に対しても出力される。
フレームメモリ15には、復号画像#2が記録される。フレームメモリ15には、特定のマクロブロックを復号する時点において、当該マクロブロックよりも処理順で先行する全てのマクロブロックに対応する復号画像が記録されている。
符号化データ#11bを構成する全てのマクロブロックに対して、MB復号部14によるマクロブロック単位の復号画像生成処理が終わった時点で、動画像復号装置1に入力された符号化データに対応する復号画像#2の生成処理が完了する。
(サイド情報復号部12およびMB設定部13の動作について)
次に、サイド情報復号部12およびMB設定部13の動作について、図5を参照しながら説明する。図5は、サイド情報復号部12およびMB設定部13の動作の流れを示すフローチャートである。
図5に示すように、サイド情報復号部12は、サイド情報符号化データ#11aから、各スライスヘッダに含まれているQP差分値テーブルを復号する(ステップS1)。そして、サイド情報復号部12は、サイド情報符号化データ#11aから、各マクロブロックレイヤに含まれているインデックスを取り出す(ステップ2)。具体的には、動画像符号化装置2のサイド情報符号化部22がステップS48にて算術符号化したデータを算術復号して2値列を生成し、2値列に対して、ユーナリバイナリゼーションの逆処理(2値列の多値化)を施すことにより、インデックスを取り出す。そして、サイド情報復号部12は、QP差分値テーブルおよびインデックスを含むサイド情報#12をMB設定部13に供給する。
そして、MB設定部13は、符号化データ#13とともにMB復号部14に順次出力するQP値を算出する(ステップS3)。
具体的には、MB設定部13は、サイド情報#12のスライスヘッダに含まれているQP差分値テーブルと、サイド情報#12のマクロブロックレイヤ(符号化データ#13が表わすマクロブロックに対応するマクロブロックレイヤ)に含まれているインデックスと、を参照する。ここで、サイド情報#12のスライスヘッダとは、符号化データ#13が表わすマクロブロックがその一部を構成するスライスに対応するスライスヘッダである。そして、MB設定部13は、QP差分値テーブルにおいて該インデックスに関連づけられているQP差分値を参照し、該QP差分値からQP値を算出する。
なお、入力された符号化データ#13を復号し、さらに、ともに入力されたQP値に基づいて逆量子化するMB復号部14、および、フレームメモリ15は、H264/AVC規格に準拠した動作を行うものであるので、詳細については省略することとする。
(変形例)
サイド情報復号部12およびMB設定部13の動作の変形例について、図6および図7(b)を参照しながら以下に説明する。図6は、サイド情報復号部12およびMB設定部13の動作を示すフローチャートである。
サイド情報復号部12およびMB設定部13の本変形例に係る動作は、動画像符号化装置2のサイド情報決定部21およびサイド情報符号化部22が変形例に係る動作を行った場合に、行うべき動作である。
図6に示すように、サイド情報復号部12は、サイド情報符号化データ#11aから、各スライスヘッダに含まれているQP差分値テーブルを復号する(ステップS21)。
以下のS22以降の処理は、サイド情報符号化データ#11aに含まれる全マクロブロックレイヤに対して施される。また、S22以降の処理を施すマクロブロックレイヤは、動画像符号化装置2のサイド情報決定部21が処理対象とするマクロブロックを選択する順序と同じ順序で選択される。図7(b)のスライスに即して言えば、マクロブロックMBiに対応するマクロブロックレイヤに対するS22以降の処理はi番目に行われる。
サイド情報復号部12は、選択したマクロブロックレイヤが拡大マクロブロック(第2単位領域)内の先頭マクロブロック(特定の単位領域)のマクロブロックレイヤであるか否かを判定する(ステップS22)。
先頭マクロブロックのマクロブロックレイヤでないと判定された場合(ステップS22においてNO)、サイド情報復号部12は、サイド情報符号化データ#11aから、マクロブロックレイヤに含まれているインデックスを取り出す(ステップS23)。具体的には、動画像符号化装置2のサイド情報符号化部22がステップS70にて生成した2値列に対して、ユーナリバイナリゼーションの逆処理(2値列の多値化)を施すことにより、インデックスを取り出す。そして、サイド情報復号部12は、QP差分値テーブルおよびインデックスを含むサイド情報#12をMB設定部13に供給する。
さらに、MB設定部13は、符号化データ#13とともにMB復号部14に出力するQP値を算出する(ステップS24)。
具体的には、MB設定部13は、サイド情報#12のスライスヘッダに含まれているQP差分値テーブルと、マクロブロックレイヤに含まれているインデックスと、を参照する。そして、MB設定部13は、QP差分値テーブルにおいて該インデックスに関連づけられているQP差分値を参照し、該QP差分値からH264/AVC規格に基づく方法でQP値を算出する。
一方、先頭マクロブロックのマクロブロックレイヤであると判定された場合(ステップS22においてYES)、サイド情報復号部12は、サイド情報符号化データ#11aから、マクロブロックレイヤに含まれているQP差分値を取り出し、MB設定部13はQP値を算出する(ステップ25)。具体的には、動画像符号化装置2のサイド情報符号化部22がステップS70にて生成した2値列に対して、ユーナリバイナリゼーションの逆処理(2値列の多値化)を施すことにより多値化された整数値に対応するQP差分値を取り出す。そして、サイド情報復号部12は、QP差分値を含むサイド情報#12をMB設定部13に供給し、MB設定部13は、サイド情報#12に含まれているQP差分値からH264/AVC規格に基づく方法でQP値を算出する。
すべてのマクロブロックレイヤに対してステップS23およびステップS24の処理(または、ステップS25の処理)を施した場合(ステップS26においてYES)、処理を終了する。まだ該処理を施していないマクロブロックレイヤが存在する場合(ステップS26においてNO)、ステップS22に戻る。
<動画像復号装置に関する付記事項>
以上、本実施形態に係る動画像復号装置1について説明を行ったが、本発明は、以上の構成に限定されるものではない。
(付記事項1)
上記実施形態では、逆量子化単位領域がマクロブロックであるものとしたが、これに限られない。すなわち、逆量子化単位領域のサイズが動画像符号化装置2における量子化単位領域のサイズと同一であれば、逆量子化単位領域はマクロブロックよりも大きい単位領域またはマクロブロックよりも小さい単位領域であっても構わない。
また、上記実施形態では、各逆量子化単位領域の画像の逆量子化に用いるQP値をQP差分値から算出するが、インデックスからQP差分値を求めるために、スライスヘッダ内のQP差分値テーブルを参照した。すなわち、インデックスからQP差分値を求めるために参照するQP差分値テーブルをスライス毎に切り替えていた。しかし、本発明に係る復号装置はこれに限定されない。すなわち、動画像符号化装置2におけるテーブル生成単位領域と同一のサイズの単位領域ごとに、参照するQP差分値テーブルを切り替えるようになっていればよい。
(付記事項2)
QP差分値テーブルを復号する具体的な処理は以下のようになっていればよい。
すなわち、QP差分値テーブルの符号化データがQP差分値テーブルに含まれる各QP差分値の符号化データを含む場合、各QP差分値をユーナリバイナリゼーションの逆処理により復号してもよい。
また、QP差分値テーブルの符号化データがfactorの値とQP差分値テーブルのサイズとを含んでいる場合、これらを復号することになる。この場合、復号により得られたfactorの値およびQP差分値テーブルのサイズに基づいて、QP差分値テーブルを生成すればよい。すなわち、QP差分値テーブルのサイズが2n+1であり、factorの値がfである場合、インデックスを-n,-n+1,・・,0,・・,n-1,nとし、それぞれに対応するQP差分値を-1*f*n,-1*f*(n-1),・・,0, f*(n-1),f*nとするQP差分値テーブルを生成すればよい。
(動画像復号装置1の利点)
以上のように、動画像復号装置1は、復号画像を構成する各マクロブロックに関する量子化パラメータを設定する処理を行うが、サイド情報復号部12が符号化データ#1から各マクロブロックに関する2値列のデータを抽出する。そして、サイド情報復号部12は、各2値列のデータから2値列の長さに応じたインデックスを生成する。
そして、MB設定部13は、互いに異なるn個のインデックスと、n個のQP差分値と、が1対1に対応付けられているQP差分値テーブルを参照することにより、サイド情報復号部12が各マクロブロックについて生成したインデックスから、各マクロブロックのQP差分値を特定する。その後、MB設定部13は、H264/AVC規格に基づく方法で各QP差分値から各マクロブロックのQP値を算出する。
したがって、動画像復号装置1は、算出したQP値を用いて各マクロブロックに逆量子化処理を施すことにより、各マクロブロックが構成する復号画像を生成することができる。
〔実施形態2〕
(符号化データ)
まず、実施形態2以降の各実施形態に係る動画像符号化装置によって生成され、実施形態2以降の各本実施形態に係る動画像復号装置によって参照される符号化データについて図13を参照しながら説明する。なお、以下の説明における、動画像符号化装置の符号「4」、動画像復号装置の符号「3」、符号化データの符号「#4」は、それぞれ、実施形態2に係る動画像符号化装置、実施形態2に係る動画像復号装置、実施形態2において参照される符号化データを示している。実施形態3以降の各実施形態に係る動画像符号化装置および動画像復号装置によって参照される符号化データについても、以下の説明において用いられている符号を、当該実施形態において使用される符号に置き換えて読むことにより理解できることは言うまでもない。
〔符号化データの構成〕
図13を用いて、動画像符号化装置4によって生成され、動画像復号装置3によって復号される符号化データ#4の構成例について説明する。符号化データ#4は、例示的に、シーケンス、およびシーケンスを構成する複数のピクチャを含む。
符号化データ#4におけるピクチャレイヤ以下の階層の構造を図13に示す。図13の(a)〜(d)は、それぞれ、ピクチャPICTを規定するピクチャレイヤ、スライスSを規定するスライスレイヤ、ツリーブロック(Tree block)TBLKを規定するツリーブロックレイヤ、ツリーブロックTBLKに含まれる符号化単位(Coding Unit;CU)を規定するCUレイヤを示す図である。
(ピクチャレイヤ)
ピクチャレイヤでは、処理対象のピクチャPICT(以下、対象ピクチャとも称する)を復号するために動画像復号装置3が参照するデータの集合が規定されている。ピクチャPICTは、図13の(a)に示すように、ピクチャヘッダPH、及び、スライスS1〜SNSを含んでいる(NSはピクチャPICTに含まれるスライスの総数)。
なお、以下、スライスS1〜SNSのそれぞれを区別する必要が無い場合、符号の添え字を省略して記述することがある。また、以下に説明する符号化データ#4に含まれるデータであって、添え字を付している他のデータについても同様である。
ピクチャヘッダPHには、対象ピクチャの復号方法を決定するために動画像復号装置3が参照する符号化パラメータ群が含まれている。例えば、動画像符号化装置4が符号化の際に用いた可変長符号化のモードを示す符号化モード情報(entropy_coding_mode_flag)は、ピクチャヘッダPHに含まれる符号化パラメータの一例である。
entorpy_coding_mode_flagが0の場合、当該ピクチャPICTは、CAVLC(Context-based Adaptive Variable Length Coding)によって符号化されている。また、entorpy_coding_mode_flagが1である場合、当該ピクチャPICTは、CABAC(Context-based Adaptive Binary Arithmetic Coding)によって符号化されている。
なお、ピクチャヘッダPHは、ピクチャ・パラメータ・セット(PPS:Picture Parameter Set)とも称される。
図16は、ピクチャ・パラメータ・セットに含まれているシンタックスを示す図である。図16に示すように、ピクチャ・パラメータ・セットには、シンタックスlog2_min_delta_qualt_coding_unit_size_minus4が含まれている。本実施形態に係る動画像復号装置は、このシンタックスを参照することによって、サイズ情報としてMinDeltaQuantCodingUnitSizeを生成する。
なお、図16に示したDescriptor(記述子)u(1)は、これらの記述子に関連付けられたシンタックスが1ビットで固定長符号化されることを示しており、u(2)は、この記述子に関連付けられたシンタックスが2ビットで固定長符号化されることを示しており、ue(v)は、この記述子に関連付けられたシンタックスが可変長符号化されることを示している(以下のシンタックステーブルにおいても同様)。
(スライスレイヤ)
スライスレイヤでは、処理対象のスライスS(対象スライスとも称する)を復号するために動画像復号装置3が参照するデータの集合が規定されている。スライスSは、図13の(b)に示すように、スライスヘッダSH、及び、ツリーブロックTBLK1〜TBLKNC(NCはスライスSに含まれるツリーブロックの総数)のシーケンスを含んでいる。
スライスヘッダSHには、対象スライスの復号方法を決定するために動画像復号装置1が参照する符号化パラメータ群が含まれる。スライスタイプを指定するスライスタイプ指定情報(slice_type)は、スライスヘッダSHに含まれる符号化パラメータの一例である。
スライスタイプ指定情報により指定可能なスライスタイプとしては、(1)符号化の際にイントラ予測のみを用いるIスライス、(2)符号化の際に単方向予測、又は、イントラ予測を用いるPスライス、(3)符号化の際に単方向予測、双方向予測、又は、イントラ予測を用いるBスライスなどが挙げられる。
また、スライスヘッダSHには、動画像復号装置1の備えるループフィルタ(不図示)によって参照されるフィルタパラメータが含まれていてもよい。
(ツリーブロックレイヤ)
ツリーブロックレイヤでは、処理対象のツリーブロックTBLK(以下、対象ツリーブロックとも称する)を復号するために動画像復号装置3が参照するデータの集合が規定されている。
ツリーブロックTBLKは、ツリーブロックヘッダTBLKHと、符号化単位情報CU1〜CUNL(NLはツリーブロックTBLKに含まれる符号化単位情報の総数)とを含む。ここで、まず、ツリーブロックTBLKと、符号化単位情報CUとの関係について説明すると次のとおりである。
ツリーブロックTBLKは、イントラ予測またはインター予測、および、変換の各処理ためのブロックサイズを特定するためのパーティションに分割される。
ツリーブロックTBLKの上記パーティションは、再帰的な4分木分割により分割されている。この再帰的な4分木分割により得られる木構造のことを以下、符号化ツリー(coding tree)と称する。
以下、符号化ツリーの末端のノードであるリーフ(leaf)に対応するパーティションを、符号化ノード(coding node)として参照する。また、符号化ノードは、符号化処理の基本的な単位となるため、以下、符号化ノードのことを、符号化単位(CU)とも称する。
つまり、符号化単位情報(以下、CU情報と称する)CU1〜CUNLは、ツリーブロックTBLKを再帰的に4分木分割して得られる各符号化ノード(符号化単位)に対応する情報である。
また、符号化ツリーのルート(root)は、ツリーブロックTBLKに対応付けられる。換言すれば、ツリーブロックTBLKは、複数の符号化ノードを再帰的に含む4分木分割の木構造の最上位ノードに対応付けられる。
なお、各符号化ノードのサイズは、当該符号化ノードが直接に属する符号化ノード(すなわち、当該符号化ノードの1階層上位のノードのパーティション)のサイズの縦横とも半分である。
また、各符号化ノードのとり得るサイズは、符号化データ#4のシーケンスパラメータセットSPSに含まれる、符号化ノードのサイズ指定情報および最大階層深度(maximum hierarchical depth)に依存する。例えば、ツリーブロックTBLKのサイズが64×64画素であって、最大階層深度が3である場合には、当該ツリーブロックTBLK以下の階層における符号化ノードは、3種類のサイズ、すなわち、64×64画素、32×32画素、および16×16画素の何れかをとり得る。
(ツリーブロックヘッダ)
ツリーブロックヘッダTBLKHには、対象ツリーブロックの復号方法を決定するために動画像復号装置3が参照する符号化パラメータが含まれる。具体的には、図13の(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とも称する)を復号するために動画像復号装置3が参照するデータの集合が規定されている。
ここで、CU情報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または複数の変換ブロックを含む。
変換ツリーにおける分割には、符号化ノードと同一のサイズの領域を変換ブロックとして割り付けるものと、上述したツリーブロックの分割と同様、再帰的な4分木分割によるものがある。
変換処理は、この変換ブロックごとに行われる。以下、変換の単位である変換ブロックのことを、変換単位(transform unit;TU)とも称する。
(CU情報のデータ構造)
続いて、図13の(d)を参照しながらCU情報に含まれるデータの具体的な内容について説明する。図13の(d)に示すように、CU情報は、具体的には、スキップフラグSKIP、PT情報PTI、および、TT情報TTIを含む。
スキップフラグSKIPは、対象のPUについて、スキップモードが適用されているか否かを示すフラグであり、スキップフラグSKIPの値が1の場合、すなわち、対象CUにスキップモードが適用されている場合、そのCU情報におけるPT情報PTI、および、TT情報TTIは省略される。なお、スキップフラグSKIPは、Iスライスでは省略される。
PT情報PTIは、CUに含まれるPTに関する情報である。言い換えれば、PT情報PTIは、PTに含まれる1または複数のPUそれぞれに関する情報の集合であり、動画像復号装置3により予測画像を生成する際に参照される。PT情報PTIは、図13の(d)に示すように、予測タイプ情報PType、および、予測情報PInfoを含んでいる。
予測タイプ情報PTypeは、対象PUについての予測画像生成方法として、イントラ予測を用いるのか、または、インター予測を用いるのかを指定する情報である。
予測情報PInfoは、予測タイプ情報PTypeが何れの予測方法を指定するのかに応じて、イントラ予測情報、または、インター予測情報より構成される。以下では、イントラ予測が適用されるPUをイントラPUとも呼称し、インター予測が適用されるPUをインターPUとも呼称する。
また、予測情報PInfoは、対象PUの形状、サイズ、および、位置を指定する情報が含まれる。上述のとおり予測画像の生成は、PUを単位として行われる。予測情報PInfoの詳細については後述する。
TT情報TTIは、CUに含まれるTTに関する情報である。言い換えれば、TT情報TTIは、TTに含まれる1または複数のTUそれぞれに関する情報の集合であり、動画像復号装置1により残差データを復号する際に参照される。なお、以下、TUのことをブロックと称することもある。
TT情報TTIは、図13の(d)に示すように、対象CUの各変換ブロックへの分割パターンを指定するTT分割情報SP_TT、および、量子化予測残差QD1〜QDNT(NTは、対象CUに含まれるブロックの総数)を含んでいる。
TT分割情報SP_TTは、具体的には、対象CUに含まれる各TUの形状、サイズ、および、対象CU内での位置を決定するための情報である。例えば、TT分割情報SP_TTは、対象となるノードの分割を行うのか否かを示す情報(split_transform_unit_flag)と、その分割の深度を示す情報(trafoDepth)とから実現することができる。
また、例えば、CUのサイズが、64×64の場合、分割により得られる各TUは、32×32画素から2×2画素までのサイズをとり得る。
各量子化予測残差QDは、動画像符号化装置4が以下の処理1〜3を、処理対象のブロックである対象ブロックに施すことによって生成した符号化データである。
処理1:符号化対象画像から予測画像を減算した予測残差をDCT変換(Discrete Cosine Transform)する;
処理2:処理1にて得られた変換係数を量子化する;
処理3:処理2にて量子化された変換係数を可変長符号化する;
なお、上述した量子化パラメータqpは、動画像符号化装置2が変換係数を量子化する際に用いた量子化ステップQPの大きさを表す(QP=2qp/6)。
(予測情報PInfo)
上述のとおり、予測情報PInfoには、インター予測情報およびイントラ予測情報の2種類がある。
インター予測情報には、動画像復号装置3が、インター予測によってインター予測画像を生成する際に参照される符号化パラメータが含まれる。より具体的には、インター予測情報には、対象CUの各インターPUへの分割パターンを指定するインターPU分割情報、および、各インターPUについてのインター予測パラメータが含まれる。
インター予測パラメータには、参照画像インデックスと、推定動きベクトルインデックスと、動きベクトル残差とが含まれる。
一方、イントラ予測情報には、動画像復号装置3が、イントラ予測によってイントラ予測画像を生成する際に参照される符号化パラメータが含まれる。より具体的には、イントラ予測情報には、対象CUの各イントラPUへの分割パターンを指定するイントラPU分割情報、および、各イントラPUについてのイントラ予測パラメータが含まれる。イントラ予測パラメータは、各イントラPUについてのイントラ予測方法(予測モード)を指定するためのパラメータである。
以下、実施形態2以降では、特に断りがない限り、「TU」を変換ツリーの最下位階層にある変換ブロックの意味で用いている。さらに、「LCU」を符号化ツリーの最上位階層にあるCUの意味で用いている。
(動画像復号装置)
本実施形態に係る動画像復号装置は、次に説明する動画像符号化装置4から供給される符号化データ#4を復号して復号画像#3を生成する装置である。
以下では、本実施形態に係る動画像復号装置について図面を参照しながら詳細に説明する。
最初に、本実施形態に係る動画像復号装置の構成について図14を参照しながら説明する。図14は、動画像復号装置3の構成を示すブロック図である。図14に示すように、動画像復号装置3は、可変長符号逆多重化部31、サイド情報復号部32、CU設定部33、CU復号部34、および、フレームメモリ15を備えている。
動画像復号装置3に入力された符号化データ#4は可変長符号逆多重化部31へ入力される。可変長符号逆多重化部31は、入力された符号化データ#4を逆多重化することによって、符号化データ#4を、サイド情報に関する符号化データであるサイド情報符号化データ#31aと、ピクチャに関する符号化データである符号化データ#31bとに分離し、サイド情報符号化データ#31aをサイド情報復号部32に、符号化データ#31bをCU設定部33にそれぞれ出力する。
サイド情報復号部32では、サイド情報符号化データ#31aを復号してサイド情報#32を生成し、サイド情報#32をCU設定部33に出力する。
サイド情報復号部32では、サイド情報符号化データ#31aを復号する処理において、QP符号化単位領域のサイズを示すサイズ情報の符号化データを復号することにより、サイド情報#32の一部として上記サイズ情報を生成する。具体的には、サイド情報復号部32は、サイド情報符号化データ#31aに含まれているlog2_min_delta_qualt_coding_unit_size_minus4に対して以下の式1の演算を行い、上記サイズ情報としてMinDeltaQuantCodingUnitSizeを生成する。式1において「<<」は、左ビットシフト演算を示している。
また、サイド情報復号部32では、サイド情報符号化データ#31aを復号する処理において、各QP符号化単位領域のQP差分値の符号化データを復号することにより、サイド情報#32の一部として上記QP差分値を生成する。
サイド情報復号部32は、より具体的には、符号化データ#4に含まれるcoding_unitシンタックス(図18参照)を参照して各CUに対して順次以下の処理を行う。すなわち、サイド情報復号部32は、スキップフラグ(skip_flag)を参照するCUの左上座標のx成分およびy成分が共にQP符号化単位領域のサイズ(MinDeltaQuantCodingUnitSize)の整数倍に一致する場合に、復号可能状態を示すフラグ(deltaQuantAvail)の値を復号可能状態を示す”true”に設定する。そして、サイド情報復号部32は、deltaQuantAvailが復号可能状態において、スキップブロック以外のCUを復号する時点で、QP差分値を復号する。すなわち、deltaQuantAvailの値が”true”である状態で値が「0」のスキップフラグを参照すると、coding_unitシンタックスに含まれるcu_qp_deltaを復号し、該スキップフラグを参照したCUのQP差分値を、復号されたcu_qp_deltaの値に設定する。続いて、サイド情報復号部32は、deltaQuantAvailの値を”false”に設定する。
サイド情報復号部32は、deltaQuantAvailの値が”false”である状態のときに、値が「0」のスキップフラグを参照すると、QP差分値に0を設定する。すなわち、該スキップフラグを参照したCUの直前に復号したCUにおけるqpの値を、該スキップフラグを参照したCUについてのqpとして用いる。
あるいは、隣接するブロックと同じ予測パラメータを用いるCUであるマージブロックを考慮して以下のようにcu_qp_deltaを復号しても良い。サイド情報復号部32は、各QP符号化単位領域について、該QP符号化単位領域全体を構成する1以上の各CUについて、ラスタスキャン順に該CUのスキップフラグと該CUのマージフラグとを参照するようにしてもよい。この場合、サイド情報復号部32は、各QP符号化単位領域について、値が「0」であるスキップフラグと値が「0」であるマージフラグとが該QP符号化単位領域において初めて参照されるCUのQP差分値をcu_qp_deltaから復号する。
具体的には、サイド情報復号部32は、符号化データ#4に含まれるcoding_unitシンタックス(図19参照)を参照して各CUに対して順次以下の処理を行ってもよい。すなわち、サイド情報復号部32は、スキップフラグ(skip_flag)を参照するCUの左上座標のx成分およびy成分が共にQP符号化単位領域のサイズ(MinDeltaQuantCodingUnitSize)の整数倍に一致する場合に、復号可能状態を示すフラグ(deltaQuantAvail)の値を”true”に設定する。その後、サイド情報復号部32は、スキップブロックでも、マージブロックでもないCUを復号する時点において、cu_qp_deltaを復号する。すなわち、deltaQuantAvailの値が”true”である状態で値が「0」のスキップフラグと値が「0」のマージフラグとを同時に参照すると、coding_unitシンタックスに含まれるcu_qp_deltaを復号し、該スキップフラグを参照したCUのQP差分値を、復号されたcu_qp_deltaの値に設定する。続いて、サイド情報復号部32は、deltaQuantAvailの値を”false”に設定する。
サイド情報復号部32は、deltaQuantAvailの値が”false”である状態のときに、スキップブロックもしくはマージブロックのCUを復号する時点においては、QP差分値の符号化は行わない。すなわち、deltaQuantAvailの値が”false”である状態のときに、値が「1」のスキップフラグを参照すると、あるいは、値が「0」のスキップフラグと値が「1」のマージフラグとを同時に参照すると、QP差分値に0を設定する。この場合、該スキップフラグを参照したCUの直前に復号したCUのqpの値を、該スキップフラグを参照したCUについてのqpとして用いる。
以上のようなサイド情報復号部32の処理によって、各QP符号化単位領域についてqpがユニークに定まることになる。また、各QP符号化単位領域についてユニークに定まったqpは、該QP符号化単位領域に含まれる各CUに対して共通に用いられる。
CU設定部33では、入力されたサイド情報#32に基づいて、符号化データ#31bを複数のスライスに分割し、各スライスを複数のQP符号化単位領域に分割し、各QP符号化単位領域を個々のCUに対応する符号化データ#33bに分離し、CU復号部34に対して順次出力する。また、CU設定部33は、各QP符号化単位領域について、該QP符号化単位領域の個々のCUに対応する符号化データ#33bに加えて、サイド情報#32に含まれている該QP符号化単位領域のQP差分値#33aをCU復号部34に対して出力する。
CU復号部34は、入力された個々のCU(逆量子化単位領域)に対応する符号化データ#33bを順次復号および逆量子化することにより、個々のCUに対応する復号画像#34を生成し、出力する。また、復号画像#34は、フレームメモリ15に対しても出力される。
具体的には、CU復号部34は、CUに対応する符号化データ#33bを復号および逆量子化する際には、該CUが属するQP符号化単位領域のQP差分値#33aからQP値を求めて逆量子化処理を行う。
符号化データ#31bを構成する全てのCUに対して、CU復号部34によるCU単位の復号画像生成処理が終わった時点で、動画像復号装置3に入力された符号化データに対応する復号画像#3の生成処理が完了する。
以上のように、動画像復号装置は、CUごとにQP差分値の符号化データを復号するのではなく、1以上のCUからなるQP符号化単位領域ごとにQP差分値の符号化データを復号するので、従来よりも少ない符号量の符号化データからで復号画像を生成することができる。
また、残差データを含まないCUであるスキップブロックではqpを必要としない。このことを考慮してスキップフラグが「1」である場合にはQP差分値を復号せず、スキップフラグが「0」である場合のみQP差分値を復号することにより、符号化データにおけるQP差分値の符号量を低減することができる。
また、スキップブロックと同様、一部の符号化データを省略することによって符号化データの符号量を低減するマージブロックでもQP差分値を復号しないことにより、符号化データにおけるQP差分値の符号量を低減することができる。
(動画像符号化装置)
本実施形態に係る動画像符号化装置は、入力画像を構成する各LCUを、JCTVT−403に記載されているcoding_treeシンタックスを用いて複数のCU(Coding Unit:量子化単位領域)に分割する処理を行う。coding_treeシンタックスを見るとわかるように、上記分割処理は、具体的には、第i階層のCUのsplit_coding_unit_flagがtrueであるときに該CUを4分の1のサイズを持つ第i+1階層の4つのCUに分割する処理を、再帰的に行う処理である。したがって、上記複数のCUのサイズは、一般的に同一ではない。
また、動画像符号化装置は、1つ以上のCUから構成されるQP符号化単位領域(単位領域)ごとに、該QP符号化単位領域に属するたかだか1つのCUに関するQP差分値を符号化するように構成されている。また、動画像符号化装置は、QP符号化単位領域のサイズを示すサイズ情報を符号化するように構成されている。
すなわち、本実施形態に係る動画像符号化装置は、実施形態1の動画像符号化装置のように量子化単位領域ごとにQP差分値を符号化するのではなく、1以上の量子化単位領域からなるQP符号化単位領域ごとにQP差分値を符号化することによって、QP差分値の符号量を削減できるようになっている。
このようにして生成された、各QP符号化単位領域の符号化済みのQP差分値と符号化済みのサイズ情報とは、後述する動画像復号装置に伝送される。そして、動画像復号装置は、1つのQP符号化単位領域を構成する各量子化単位領域で共通のQP差分値を使用して逆量子化を行うようになっている。
なお、上記のQP符号化単位領域の構成要素となる領域(第3単位領域)は、CUではなくTUであっても構わない。
以下では、本実施形態に係る動画像符号化装置について図面を参照しながら詳細に説明する。
最初に、本実施形態に係る動画像符号化装置4の構成について図15を参照しながら説明する。図15は、動画像符号化装置4の構成を示すブロック図である。図15に示すように、動画像符号化装置4は、サイド情報決定部41、サイド情報符号化部42、CU設定部43、CU符号化部44、可変長符号多重化部25、CU復号部46、および、フレームメモリ27を備えている。
サイド情報決定部41は、入力画像#100に基づいて、サイド情報を決定し、決定したサイド情報をサイド情報#41として出力する。サイド情報#41(後述するサイド情報#61、#81等も同様)は、入力画像#100に関するパラメータの集合であるピクチャ・パラメータ・セット、入力画像#100に含まれるスライス毎のヘッダ情報であるスライスヘッダ、スライスに含まれるCU毎のパラメータの集合であるCU情報、CUに含まれるTU毎のパラメータの集合であるTU情報等から構成される。
具体的には、サイド情報決定部41は、スライス(またはピクチャ)ごとに所定のアルゴリズムに基づいてQP符号化単位領域の(縦および横の)サイズを決定し、QP符号化単位領域のサイズを示すサイズ情報をサイド情報#41のスライスヘッダ(ピクチャ・パラメータ・セット)に格納する。
さらに、サイド情報決定部41は、ピクチャ・パラメータ・セット(またはスライスヘッダ)内のQP符号化単位領域のサイズ情報に基づいて、入力画像#100(または各スライス)を構成するQP符号化単位領域を規定し、QP符号化単位領域ごとにたかだか1つのCUに関するQP差分値(以下、単に、「QP符号化単位領域のQP差分値」とも称する)を、該CUのCU情報の一部としてサイド情報#41に格納する。
サイド情報符号化部42は、サイド情報#41を符号化し、サイド情報符号化データ#42を出力する。サイド情報符号化データ#42は、可変長符号多重化部25に供給される。サイド情報符号化部42は、サイド情報#41を符号化する処理において、各QP符号化単位領域のQP差分値と、上記サイズ情報とを符号化する。
サイド情報符号化部42は、具体的には、QP符号化単位領域のサイズに2を底とするような対数関数を適用するとともに得られた対数関数値から4を減算することにより、サイズ情報の符号化データを生成する。なお、ピクチャ・パラメータ・セットにサイズ情報が含まれている場合には、ピクチャ・パラメータ・セットの符号化データは、例えば、図16に示すようなデータとなる(図16において、log2_min_delta_qualt_coding_unit_size_minus4がサイズ情報の符号化データを表している)。
CU設定部43は、サイド情報#41に基づいて、入力画像#100を複数のスライスに分割し、さらに、各スライスを複数のCUに分割し、各CUに関するCU画像#43を出力する。なお、前述したように、一般的には各CU画像のサイズは同一ではない。
また、CU設定部43は、1つのQP符号化単位領域を構成する複数のCUのCU画像#43bとともに、サイド情報#41に格納されている該QP符号化単位領域のQP差分値#43aを出力する。
CU符号化部44は、順次入力されるCU画像#43bについて、予測画像生成部(図示せず)から送信される予測画像との予測残差をDCT変換するとともに、該CU画像#43bが属するQP符号化単位領域のQP差分値#43aから定まるQP値に応じた量子化レベルで、予測残差の各DCT係数を量子化する。そして、CU符号化部44は、量子化により得られたデータに可変長符号化処理を施すことによりCU符号化データ#44を生成して可変長符号多重化部25に供給する。
CU復号部46は、入力された個々のCU画像#43bに対応するCU符号化データ#44を順次復号することにより、個々のCUに対応する復号画像#46を生成し、出力する。復号画像#46は、フレームメモリ27に供給される。
なお、可変長符号多重化部25およびフレームメモリ27については実施形態1において説明したので、ここでは説明を省略する。
以上、動画像符号化装置4の構成について説明したが、以下では、QP符号化単位領域ごとにたかだか1つのQP差分値を符号化するためにサイド情報決定部41およびサイド情報符号化部42が行う具体的な処理について図17を参照しながら説明する。
図17は、サイド情報決定部41が規定するQP符号化単位領域の一部(4つのQP符号化単位領域)を模式的に示した図である。図17において太線で囲まれた4つの正方形領域の各々がQP符号化単位領域であり、細線で囲まれた計12個の領域はCUを示している。また、図17において斜線で描かれたCUは、QP差分値が符号化されるCUを示しており、点状模様で描かれたCUは、スキップブロックであることを示している。
サイド情報決定部41は、規定した各QP符号化単位領域について、該QP符号化単位領域全体を構成する1以上の各CUについて、規定の順序で(本実施形態ではラスタスキャン順に)該CUのスキップフラグを参照する。サイド情報決定部41は、各QP符号化単位領域について、値が「0」であるスキップフラグが該QP符号化単位領域において初めて参照されるCUのQP値を算出し、直前に参照したQP値(またはデフォルトQP値)とのQP差分値をサイド情報#41の一部としてサイド情報符号化部42に出力する。
例えば、図17の右上の符号化単位領域では、サイド情報決定部41は、ラスタスキャン順で最初に位置するCUがスキップブロック(スキップフラグの値が「1」であるCU)であるので、ラスタスキャン順で2番目に位置する斜線が描かれたCUのQP値を算出し、デフォルトQP値とのQP差分値をサイド情報符号化部42に出力することになる。
サイド情報符号化部42は、QP符号化単位領域ごとに、サイド情報#41に格納されている該QP符号化単位領域内のたかだか1つのCUのQP差分値を符号化する。
具体的には、サイド情報決定部41およびサイド情報符号化部42は、図18に示すcoding_unitシンタックスを用いて各CUに対して順次以下の処理を行う。すなわち、サイド情報決定部41は、スキップフラグ(skip_flag)を参照するCUの左上座標のx成分およびy成分が共にQP符号化単位領域のサイズ(MinDeltaQuantCodingUnitSize)の整数倍に一致する場合に、符号化可能状態を示すフラグ(deltaQuantAvail)の値を”true”に設定する。そして、サイド情報決定部41は、deltaQuantAvailの値が”true”である状態で値が「0」のスキップフラグを参照すると、スキップフラグを参照したCUのQP差分値をサイド情報#41の一部としてサイド情報符号化部42に供給する。サイド情報符号化部42は、QP差分値の符号化処理を実行してdeltaQuantAvailの値を”false”に設定する。
あるいは、サイド情報決定部41は、規定した各QP符号化単位領域について、該QP符号化単位領域全体を構成する1以上の各CUについて、ラスタスキャン順に該CUのスキップフラグと該CUのマージフラグとを参照するようにしてもよい。この場合、サイド情報決定部41は、各QP符号化単位領域について、値が「0」であるスキップフラグと値が「0」であるマージフラグとが該QP符号化単位領域において初めて参照されるCUのQP値を算出し、直前に参照したCUのQP値(またはデフォルトQP値)とのQP差分値を、サイド情報#41の一部としてサイド情報符号化部42に供給する。
具体的には、サイド情報決定部41およびサイド情報符号化部42は、図19に示すcoding_unitシンタックスを用いて各CUに対して順次以下の処理を行ってもよい。すなわち、サイド情報決定部41は、スキップフラグ(skip_flag)を参照するCUの左上座標のx成分およびy成分が共にQP符号化単位領域のサイズ(MinDeltaQuantCodingUnitSize)の整数倍に一致する場合に、符号化可能状態を示すフラグ(deltaQuantAvail)の値を”true”に設定する。その後、サイド情報決定部41は、deltaQuantAvailの値が”true”である状態で値が「0」のスキップフラグと値が「0」のマージフラグとを同時に参照すると、スキップフラグを参照したCUのQP差分値をサイド情報#41の一部としてサイド情報符号化部42に供給する。サイド情報符号化部42は、QP差分値の符号化処理を実行してdeltaQuantAvailの値を”false”に設定する。
以上のようなサイド情報決定部41およびサイド情報符号化部42の処理によって可変長符号多重化部25は、サイド情報符号化部42から、各QP符号化単位領域のQP差分値とピクチャ・パラメータ・セット(各スライス)ごとに定まるQP符号化単位領域のサイズ情報との符号化データを含むサイド情報符号化データ#42を受け取ることになる。また、可変長符号多重化部25は、CU符号化部44から受け取るCU符号化データ#44とサイド情報符号化データ#42とを多重化することによって符号化データ#4を生成し、出力する。
なお、サイド情報決定部41は、スライスヘッダおよびピクチャ・パラメータ・セットに代えて、シーケンス・パラメータ・セットにQP符号化単位領域のサイズ情報を格納してもよい。
(付記事項)
動画像符号化装置4のサイド情報符号化部42は、QP符号化単位領域のサイズに2を底とするような対数関数を適用するとともに得られた対数関数値から4を減算した値を算出することにより、サイズ情報の符号化データを生成するものとしたが、本発明はこれに限られない。
すなわち、サイド情報符号化部42は、LCUサイズとの相対的なサイズとしてQP符号化単位領域のサイズを符号化しても構わない。例えば、QP符号化単位領域のサイズがLCUサイズ(max_coding_unit_width)の2n分の1である場合にnをサイズ情報の符号化データとして生成してもよい。
この場合、動画像復号装置3のサイド情報復号部32は、サイド情報符号化データ#31aに含まれているlog2_min_delta_qualt_coding_unit_size_to_lcuに対して以下の式2の演算を行い、上記サイズ情報としてMinDeltaQuantCodingUnitSizeを生成する。式2において「>>」は、右ビットシフト演算を示している。
なお、上記のような、LCUサイズとの相対的なサイズとして符号化する、QP符号化単位領域のサイズの符号化方法は、以下の実施形態にも適応することが可能である。
〔実施形態3〕
(符号化データ)
本実施形態に係る符号化データ#6の構成は、実施形態2において説明した符号化データ#4の構成と略同様であるが、以下の点において異なる。すなわち、本実施形態に係る符号化データ#6には、図20に示すcoding_unitシンタックスおよび図21に示すtransform_treeシンタックスが含まれている。図20に示すcoding_unitシンタックスおよび図21に示すtransform_treeシンタックスについては、以下の動画像復号装置及び動画像符号化装置と共に説明を行うことにする。
(動画像復号装置)
本実施形態に係る動画像復号装置は、実施形態2において説明した動画像復号装置3と略同様の構成である。また、本実施形態に係る動画像復号装置は、基本的に実施形態2において説明した動画像復号装置3と略同様の動作を行うことにより、符号化データ#6を復号して復号画像#3を生成できる。ただし、各QP符号化単位領域のQP差分値は、サイド情報#32のQP情報の一部ではなく、サイド情報#32のTU情報の一部になっている。したがって、動画像復号装置3のCU設定部33は、サイド情報#32に含まれている各選択対象TUのTU情報を参照することにより、各QP符号化単位領域のQP差分値を読み出すことになる。
この点についてより具体的に説明すれば以下の通りである。
本実施形態に係る動画像復号装置の備えるサイド情報復号部32は、各QP符号化単位領域について、該QP符号化単位領域全体を構成する1以上の各CUについて、ラスタスキャン順に該CUのスキップフラグと該CUの残差データ存在フラグ(residualDataPresentFlag)とを参照する。ここで、残差データ存在フラグは、CUが、0でないDCT係数を少なくとも1つ以上含むTUを少なくとも1つ以上含む場合に、”True”になり、そうでない場合に”False”になるフラグである。
サイド情報復号部32は、図20のcoding unitシンタックスと、図21のtransform_treeシンタックスと、を参照し、各CUに対して順次以下の処理を行う。すなわち、図20からわかるように、サイド情報復号部32は、スキップフラグ(skip_flag)を参照するCUの左上座標のx成分およびy成分が共にQP符号化単位領域の縦および横のサイズ(MinDeltaQuantCodingUnitSize)の整数倍に一致する場合に、復号可能状態を示すフラグ(deltaQuantAvail)の値を”true”に設定する。そして、サイド情報復号部32は、deltaQuantAvailの値が”true”である状態で値が「0」のスキップフラグを参照すると、図21のtransform_treeシンタックスにおける、residualDataPresentFlagの値を参照する。residualDataPresentFlagの値が「0」である場合、すなわち、該TUが残差データを含まない場合、サイド情報復号部32は、次のCUについてcoding unitシンタックスを参照する。なお、entropy_coding_mode_flagが0の場合、residualDataPresentFlagは、cuv_yuv_rootの値が0か否かにより定まる。cuv_yuv_rootが0以外の場合に”true”、cuv_yuv_rootが0の場合に”false”となる。
entropy_coding_mode_flagが0の場合、residualDataPresentFlagは、no_resisulal_data_flagの値が0以外であれば”true”、 no_resisulal_data_flagの値が0であれば”false”となる。
一方、residualDataPresentFlagの値が「1」である場合、すなわち、該TUが残差データを含む場合、サイド情報復号部32は、注目しているCUを構成する各TUに対して図21のtransform_treeシンタックスを参照する。その結果、サイド情報復号部32は、0でないDCT係数を少なくとも1つ以上含むTUであって注目しているCUの中で規定の順序(例えば、ラスタスキャン順とは真逆の順序)において最初に復号するTU(例えば、右下端のTU。以下、「選択対象TU」とも称する)のcu_qp_deltaを復号し、当該最初に復号するTUについてのQP差分値を、該復号されたcu_qp_deltaの値に設定する。その後、サイド情報復号部32は、deltaQuantAvailの値を”false”に設定する。以上のようなサイド情報復号部32の処理によって、各QP符号化単位領域についてqpがユニークに定まることになる。また、各QP符号化単位領域についてユニークに定まったqpは、該QP符号化単位領域に含まれる各CUに対して共通に用いられる。
(動画像符号化装置)
本実施形態に係る動画像符号化装置について図面を参照しながら詳細に説明する。
本実施形態に係る動画像符号化装置は、実施形態2の動画像符号化装置4と同様、入力画像を構成する各LCUを、coding_treeシンタックスを用いて複数のCU(Coding Unit:量子化単位領域)に分割する。また、本実施形態に係る動画像符号化装置は、動画像符号化装置4とは異なり、各CUについて、図20に示すcoding_unitシンタックスおよび図21に示すtransform_treeシンタックスを用いて、該CUを、変換ツリーを構成する複数の変換単位(TU)に分割する。
また、動画像符号化装置は、1以上の上記TUから構成される所定のアルゴリズムに基づいて定められたQP符号化単位領域ごとに、該QP符号化単位領域全体を構成する少なくとも一部のTUについてのみQP差分値を符号化するように構成されている。ただし、本実施形態に係る動画像符号化装置が、該TUに関するQP差分値を符号化するのは、該TUの予測残差が0でない(すなわち、0でないDCT係数が存在する)場合に限られている。ここで、0でないDCT係数が存在しないことは、該TUの輝度成分の各DCT係数および該TUの色差成分の各DCT係数がすべて0であることと等価である。そのため、本実施形態に係る動画像符号化装置は、実施形態2と異なり、符号化する必要がないQP差分値を符号化してしまうという冗長な処理を減らすことができる。
以下、本実施形態に係る動画像符号化装置6について図22を参照しながら説明する。図22は、動画像符号化装置6の構成を示すブロック図である。図22に示すように、動画像符号化装置6は、サイド情報決定部61、サイド情報符号化部62、CU設定部43、CU符号化部44、可変長符号多重化部25、CU復号部46、および、フレームメモリ27を備えている。
CU設定部43、CU符号化部44、可変長符号多重化部25、CU復号部46、および、フレームメモリ27については、実施形態1または2において説明したので、以下では、サイド情報決定部61およびサイド情報符号化部62について説明する。
サイド情報決定部61は、規定した各QP符号化単位領域について、該QP符号化単位領域全体を構成する1以上の各CUについて、ラスタスキャン順に該CUのスキップフラグと該CUの残差データ存在フラグ(residualDataPresentFlag)とを参照する。ここで、残差データ存在フラグは、CUが、0でないDCT係数を少なくとも1つ以上含むTUを少なくとも1つ以上含む場合に、”True”になり、そうでない場合に”False”になるフラグである。サイド情報決定部61は、各QP符号化単位領域について、値が「0」であるスキップフラグと値が「1」である残差データ存在フラグとが該QP符号化単位領域において初めて同時に参照されるCUのQP値とデフォルトQP値とのQP差分値#63aを、サイド情報#61の一部としてサイド情報符号化部62に出力する。
サイド情報符号化部62は、QP符号化単位領域ごとに、サイド情報決定部61から受け取ったQP差分値を符号化して符号化データ#62を生成する。
具体的には、サイド情報決定部61およびサイド情報符号化部62は、図20のcoding unitシンタックスと、図21のtransform_treeシンタックスと、を用いて各CUに対して順次以下の処理を行う。すなわち、図20からわかるように、サイド情報決定部61は、スキップフラグ(skip_flag)を参照するCUの左上座標のx成分およびy成分が共にQP符号化単位領域の縦および横のサイズ(MinDeltaQuantCodingUnitSize)の整数倍に一致する場合に、符号化可能状態を示すフラグ(deltaQuantAvail)の値を”true”に設定する。そして、サイド情報決定部61は、deltaQuantAvailの値が”true”である状態で値が「0」のスキップフラグを参照すると、図21のtransform_treeシンタックスを呼び出して、residualDataPresentFlagの値を参照する。residualDataPresentFlagの値が「0」である場合、サイド情報決定部61は、次のCUについてcoding unitシンタックスを呼び出す。
一方、サイド情報決定部61は、residualDataPresentFlagの値が「1」である場合、サイド情報決定部61は、注目しているCUを構成する各TUに対して図21のtransform_treeシンタックスを適用する。その結果、サイド情報決定部61は、0でないDCT係数を少なくとも1つ以上含むTUであって注目しているCUの中で規定の順序(例えば、ラスタスキャン順とは真逆の順序)において最初に参照するTU(例えば、右下端のTU。以下、「選択対象TU」とも称する)のQP差分値を算出し、選択対象TUのQP差分値をTU情報の一部としてサイド情報符号化部62に供給する。サイド情報符号化部62は、受け取ったQP差分値に対して符号化処理を実行してdeltaQuantAvailの値を”false”に設定する。
以上のようなサイド情報決定部61およびサイド情報符号化部62の処理によって可変長符号多重化部25は、サイド情報符号化部62から、各QP符号化単位領域のQP差分値とピクチャ(またはピクチャを構成する各スライス)ごとに定まるQP符号化単位領域のサイズ情報との符号化データを含むサイド情報符号化データ#62を受け取ることになる。また、可変長符号多重化部25は、CU符号化部44から受け取るCU符号化データ#44とサイド情報符号化データ#62とを多重化することによって符号化データ#6を生成し、出力する。
(付記事項)
サイド情報決定部61およびサイド情報符号化部62は、図21のtransform_treeシンタックスを用いる代わりに、図23のtransform_treeシンタックスを用いてもよい。
すなわち、サイド情報決定部61は、上記選択対象TUのQP差分値に加え、0でないDCT係数を少なくとも1つ以上含むTUであって注目しているCU内の左上端に位置するTUのQP差分値を、TU情報の一部としてサイド情報符号化部62に供給してもよい。
さらに、サイド情報決定部61およびサイド情報符号化部62は、図21のtransform_treeシンタックスを用いる代わりに、図24のtransform_treeシンタックスを用いてもよい。
すなわち、サイド情報決定部61は、注目しているCUのresidualDataPresentFlagの値が「1」である場合、該CU(すなわち、最上位階層のTU)のCU情報の一部として、該CUのQP差分値をサイド情報符号化部62に供給してもよい。
〔実施形態4〕
(動画像復号装置)
本実施形態に係る動画像復号装置は、動画像符号化装置8から供給される符号化データ#8を復号して復号画像#7を生成する装置である。符号化データ#7に含まれるcoding unitシンタックスの一例を図27に示す。
以下では、本実施形態に係る動画像復号装置について図面を参照しながら詳細に説明する。
最初に、本実施形態に係る動画像復号装置の構成について図25を参照しながら説明する。図27は、動画像復号装置7の構成を示すブロック図である。図25に示すように、動画像復号装置7は、可変長符号逆多重化部71、サイド情報復号部72、CU設定部73、CU復号部74、予測画像生成部75、および、フレームメモリ15を備えている。
動画像復号装置7に入力された符号化データ#8は可変長符号逆多重化部71へ入力される。可変長符号逆多重化部71は、入力された符号化データ#8を逆多重化することによって、符号化データ#7を、サイド情報に関する符号化データであるサイド情報符号化データ#71aと、ピクチャに関する符号化データである符号化データ#71bと、に分離し、サイド情報符号化データ#71aをサイド情報復号部72に、符号化データ#71bをCU設定部73にそれぞれ出力する。
サイド情報復号部72では、サイド情報符号化データ#71aを復号してサイド情報#72を生成し、サイド情報#72をCU設定部73に出力する。
サイド情報復号部72は、サイド情報符号化データ#71aを復号する処理の中で、各CUの予測モード#88mの符号データを復号することにより、サイド情報#72の一部となる各CUの予測モード#88mを生成する。
また、サイド情報復号部72は、サイド情報符号化データ#71aを復号する処理の中で、サイド情報符号化データ#71aに含まれている第1QP符号化単位領域(単位領域)および第2QP符号化単位領域(第4単位領域)のサイズ情報の符号化データを復号することにより、サイド情報#72の一部として上記2つのサイズ情報を生成する。具体的には、サイド情報復号部72は、サイド情報符号化データ#71aに含まれているlog2_min_delta_qualt_coding_unit_size_minus4に対して前述した式1の演算を行い、第1QP符号化単位領域のサイズ情報としてMinDeltaQuantCodingUnitSizeを生成する。
また、サイド情報復号部72は、サイド情報符号化データ#71aに含まれているlog2_min_intra_delta_qualt_coding_unit_size_minus4に対しても同様の演算を行い、第2QP符号化単位領域のサイズ情報としてMinIntraDeltaQuantCodingUnitSizeを生成する。
サイド情報復号部72によるQP差分値73aの復号処理についてより具体的に説明すれば以下の通りである。
サイド情報復号部72は、図27のcoding unitシンタックスを参照して、各CUに対して順次以下の処理を行う。すなわち、図27からわかるように、サイド情報復号部72は、スキップフラグ(skip_flag)を参照するCUの左上座標のx成分およびy成分が共に第1QP符号化単位領域のサイズ(MinDeltaQuantCodingUnitSize)の整数倍に一致する場合に、deltaQuantAailの値を”true”に設定する。
そして、サイド情報復号部72は、各スキップフラグの値を参照し、値が“0”であるようなスキップフラグを参照した場合に、CU画像をイントラ符号化する場合におけるQP差分値の復号可能状態を示すフラグ(deltaQuantAvailIntra)を”true”に設定する。さらに、サイド情報復号部72は、deltaQuantAvailの値が”true”である状態で値が「0」のスキップフラグを参照すると、coding_unitシンタックスに含まれるcu_qp_deltaを復号し、該スキップフラグを参照したCUのQP差分値を、復号されたcu_qp_deltaの値に設定する。続いて、サイド情報復号部72は、deltaQuantAvailの値とdeltaQuantAvailIntraの値とを”false”に設定する。
また、サイド情報復号部72は、スキップフラグ(skip_flag)を参照するCUの左上座標のx成分およびy成分が共に第2QP符号化単位領域のサイズ(MinIntraDeltaQuantCodingUnitSize)の整数倍に一致し、尚且つ、deltaQuantAvailIntraの値が”true”である場合にも、coding_unitシンタックスに含まれるcu_qp_deltaを復号し、該スキップフラグを参照したCUのQP差分値を、復号されたcu_qp_deltaの値に設定する。
CU設定部73では、入力されたサイド情報#72に基づいて、符号化データ#71bを複数のスライスに分割し、各スライスを個々のCUに対応する符号化データ#73bに分離し、CU復号部74に対して順次出力する。また、CU設定部73は、各符号化データ#73bとともに、サイド情報#72に含まれている各CUの予測モード#73mと各選択対象CUのQP差分値73aとをCU復号部74に対して出力する。また、CU設定部73は、各CUの予測モード#73mを予測画像生成部75に対して出力する。
CU復号部74は、入力された個々のCU(逆量子化単位領域)に対応する符号化データ#73bを順次復号および逆量子化することにより、個々のCUに対応する復号画像#74を生成し、出力する。また、復号画像#74は、フレームメモリ15に対しても出力される。
具体的には、CU復号部74は、入力されたサイド情報#72に格納されている第1QP符号化単位領域および第2QP符号化単位領域のサイズを参照し、生成すべき復号画像の全領域を構成する各QP符号化単位領域を規定する。
そして、CU復号部74は、各CUの逆量子化に用いるQP差分値を以下のように決定する。すなわち、逆量子化の対象となっているCUが選択対象CUである場合、CU復号部74は、CU設定部73から受け取った当該選択対象CUのQP差分値#73bと直前に逆量子化したCUのQP値とから、当該選択対象CUのQP値を求める。そして、CU復号部74は、選択対象CUのQP値に応じた量子化レベルで逆量子化を行う。
一方、逆量子化の対象となっているCUが選択対象CUでない場合、該CUの逆量子化に用いるQP差分値を以下のように決定する。すなわち、CU復号部74は、CU設定部73から受信した当該CUの予測モード#73mがインター予測画像を示す場合、当該CUが属する第1QP符号化単位領域内の選択対象CUのQP差分値#73bと、直前に逆量子化したCUのQP値とから、逆量子化の対象となっているCUのQP値を求める。そして、CU復号部74は、当該CUのQP値に応じた量子化レベルで逆量子化を行う。
逆に、CU復号部74は、CU設定部73から受信した当該CUの予測モード#73mがイントラ予測モードを示す場合、当該CUが属する第2QP符号化単位領域内の選択対象CUのQP差分値#73bと、直前に逆量子化したCUのQP値とから、逆量子化の対象となっているCUのQP値を求める。そして、CU復号部74は、当該CUのQP値に応じた量子化レベルで逆量子化を行う。
CU復号部74は、以上のようにして逆量子化を行い、さらにDCT逆変換を行って、予測残差を生成する。そして、CU復号部74は、予測画像生成部75から受け取った、符号化データ#73bに対応する予測画像#75と、予測残差と、を加算して復号画像#74を生成する。
予測画像生成部75は、CU設定部73から送られる予測モード#73mに基づいて、フレームメモリ15に格納された復号画像#74からイントラ予測画像を生成するか、また、フレームメモリ15に格納されている参照画像#74を用いて、動きベクトルを算出し、動きベクトルに基づいた動き補償を行い、インター予測画像を生成する。予測画像生成部75は、生成したいずれかの予測画像#75を出力する。
符号化データ#71bを構成する全てのCUに対して、CU復号部74によるCU単位の復号画像生成処理が終わった時点で、動画像復号装置7に入力された符号化データに対応する復号画像#7の生成処理が完了する。
以上のように、動画像復号装置は、CUごとにQP差分値の符号化データを復号するのではなく、選択対象CUについてのみQP差分値の符号化データを復号するので、従来よりも少ない符号量の符号化データから復号画像を生成することができる。
また、以上のように、deltaQuantAvailIntraフラグを導入することによって、サイド情報決定部81が選択対象CUのQP差分値を重複してサイド情報符号化部82に供給してしまうことを防止することができる。
(動画像符号化装置)
入力画像中にインター符号化すべき領域が相対的に多い場合、QP差分値の個数を多くすることによってQP値の精度を高めて量子化を行ったとしても、予測残差の符号量の削減量がQP差分値の符号量の増加量を下回り、符号化効率が低下することがわかっている。
本実施形態に係る動画像符号化装置は、入力画像中にインター符号化すべき領域が相対的に多いほど、相対的に少ない数のQP差分値を符号化するようになっている。すなわち、入力画像中にイントラ符号化すべき領域が相対的に多いほど、相対的に多い数のQP差分値を符号化するようになっている。
本実施形態に係る動画像符号化装置について図面を参照しながら詳細に説明する。
最初に、本実施形態に係る動画像符号化装置8の構成について図26を参照しながら説明する。図26は、動画像符号化装置8の構成を示すブロック図である。図26に示すように、動画像符号化装置8は、サイド情報決定部81、サイド情報符号化部82、CU設定部83、CU符号化部84、可変長符号多重化部25、CU復号部46、フレームメモリ27、および予測画像生成部88を備えている。サイド情報決定部81、サイド情報符号化部82および予測画像生成部88について説明する。
可変長符号多重化部25、CU復号部46、およびフレームメモリ27については実施形態1または2で説明したので、以下ではその他の構成要素について説明する。
予測画像生成部88は、フレームメモリ27に格納された復号画像#46からイントラ予測画像#88aを生成する。また、予測画像生成部88は、フレームメモリ27に格納されている参照画像#46を用いて、動きベクトルを算出し、動きベクトルに基づいた動き補償を行い、インター予測画像#88bを生成する。
さらに、予測画像生成部88は、イントラ予測画像と、インター予測画像と、入力画像#100とを比較し、イントラ予測画像、または、インター予測画像のうち、何れか一方を選択し、予測画像#88として出力する。また、予測画像生成部88は、イントラ予測画像、または、インター予測画像のうち、何れを選択したのかを表す情報である予測モード#88mを出力する。
サイド情報決定部81は、入力画像#100および各CUに関する予測モード#88mに基づいて、サイド情報を決定し、決定したサイド情報をサイド情報#81として出力する。具体的には、サイド情報決定部81は、スライス(またはピクチャ)ごとに所定のアルゴリズムに基づいて第1QP符号化単位領域のサイズおよび第2QP符号化単位領域のサイズを決定し、各QP符号化単位領域のサイズを示すサイズ情報をサイド情報#81のスライスヘッダ(またはピクチャ・パラメータ・セット)に格納する。ここで、サイド情報決定部81は、第1QP符号化単位領域のサイズを、第2QP符号化単位領域のサイズよりも相対的に大きいサイズに決定する。より具体的には、サイド情報決定部81は、第1QP符号化単位領域(単位領域)が複数の第2QP符号化単位領域(第4単位領域)から構成されるように、第1QP符号化単位領域および第2QP符号化単位領域のサイズを決定する。
さらに、サイド情報決定部81は、ピクチャ・パラメータ・セット(またはスライスヘッダ)内の第1QP符号化単位領域のサイズ情報および第2QP符号化単位領域のサイズに基づいて、入力画像#100(または各スライス)を構成する第1QP符号化単位領域および第2QP符号化単位領域を規定し、予測モード#88mに基づいて後述する処理によって選択された各CU(以下、「選択対象CU」とも称する)のQP差分値を、該CUのCU情報の一部としてサイド情報#81に格納する。また、サイド情報決定部81は、各CUの予測モード#88mをサイド情報#81に格納する。
サイド情報符号化部82は、サイド情報#81を符号化してサイド情報符号化データ#82を出力する。
サイド情報符号化部82は、サイド情報#81を符号化する処理の中で、サイド情報決定部81から受け取った各QP差分値を符号化するが、符号化済みの各QP差分値はサイド情報符号化データ#82の一部を構成するようになっている。
同様に、サイド情報符号化部82は、サイド情報#81を符号化する処理の中で、各QP符号化単位領域のサイズ情報を符号化するが、符号化済みの各サイズ情報はサイド情報符号化データ#82の一部を構成するようになっている。
サイド情報符号化部82は、具体的には、第1QP符号化単位領域および第2のQP符号化単位領域の各々について、QP符号化単位領域のサイズに2を底とするような対数関数を適用するとともに得られた対数関数値から4を減算することにより、サイズ情報の各符号化データを生成する。
CU設定部83は、サイド情報#81に基づいて、入力画像#100を複数のスライスに分割し、各スライスを複数のCUに分割し、各CUに関するCU画像#83bを出力する。
また、CU設定部83は、各CUのCU画像#83bを出力する際に、その一部のCUについては当該CUのCU画像#83bとともにサイド情報#81に含まれている当該CUのQP差分値#83aをCU符号化部84に出力する。
CU符号化部84は、順次入力されるCU画像#83bについて、予測画像生成部(図示せず)から送信される予測画像との予測残差をDCT変換する。
そして、CU符号化部84は、入力されるCU画像#83bについて予測画像生成部88から送信される予測画像がインター予測画像である場合(すなわち、予測画像生成部88から送信される予測モード#88mがインター予測モードを示す場合)、該CU画像#83bが属する第1QP符号化単位領域内の選択対象CUのQP差分値#83aから定まるQP値に応じた量子化レベルで、予測残差の各DCT係数を量子化する。
一方、CU符号化部84は、入力されるCU画像#83bについて予測画像生成部88から送信される予測画像がイントラ予測画像である場合(すなわち、予測画像生成部88から送信される予測モード#88mがイントラ予測モードを示す場合)、該CU画像#83bが属する第2QP符号化単位領域内の選択対象CUのQP差分値#83aから定まるQP値に応じた量子化レベルで、予測残差の各DCT係数を量子化する。
CU符号化部84は、以上のDCT変換および量子化処理により得られたCU符号化データ#84を可変長符号多重化部25に出力する。
以上、動画像符号化装置8の構成について説明したが、以下では、サイド情報決定部81およびサイド情報符号化部82が行う具体的な処理について説明する。
サイド情報決定部81は、サイド情報#81に基づいて、各第1QP符号化単位領域について、該第1QP符号化単位領域全体を構成する1以上の各CUについて、ラスタスキャン順に該CUのスキップフラグを参照する。CU設定部83は、各第1QP符号化単位領域について、値が「0」であるスキップフラグが該第1QP符号化単位領域において初めて参照されるCU(選択対象CU)のQP値とデフォルトQP値とのQP差分値#83aを算出する。
また、サイド情報決定部81は、上記各CUのスキップフラグを参照する処理に付随して、上記各CUについて該CUが第2QP符号化領域内の左上端に位置するCUであり、尚且つ、予測画像生成部88から送られる該CUの予測モード#88mがイントラ予測モードである(すなわち、判定処理の結果が真である)か否かを判定するようになっている。サイド情報決定部81は、上記各CUについて該CUに対する上記判定処理の結果が真であると判定した場合、該CU(選択対象CU)のQP値とデフォルトQP値とのQP差分値#83aを算出する。
そして、サイド情報決定部81は、各選択対象CUのQP差分値81をCU設定部83とサイド情報符号化部82とに供給する。
サイド情報符号化部82は、サイド情報決定部81から受け取った各QP差分値を符号化して、各QP差分値の符号化データを符号化データ#82の一部として生成する。
具体的には、サイド情報決定部81およびサイド情報符号化部82は、図27のcoding unitシンタックスを用いて各CUに対して順次以下の処理を行う。すなわち、図27からわかるように、サイド情報決定部81は、スキップフラグ(skip_flag)を参照するCUの左上座標のx成分およびy成分が共に第1QP符号化単位領域のサイズ(MinDeltaQuantCodingUnitSize)の整数倍に一致する場合に、deltaQuantAailの値を”true”に設定する。
そして、サイド情報決定部81は、各スキップフラグの値を参照し、値が“0”であるようなスキップフラグを参照した場合に、CU画像をイントラ符号化する場合におけるQP差分値の符号化可能状態を示すフラグ(deltaQuantAvailIntra)を”true”に設定する。さらに、サイド情報決定部81は、deltaQuantAvailの値が”true”である状態で値が「0」のスキップフラグを参照すると、スキップフラグを参照したCUのQP差分値をサイド情報#81の一部としてサイド情報符号化部82に供給する。サイド情報符号化部82は、QP差分値の符号化処理を実行してdeltaQuantAvailの値とdeltaQuantAvailIntraの値とを”false”に設定する。
また、サイド情報決定部81は、スキップフラグ(skip_flag)を参照するCUの左上座標のx成分およびy成分が共に第2QP符号化単位領域のサイズ(MinDeltaQuantCodingUnitSize)の整数倍に一致し、尚且つ、deltaQuantAvailIntraの値が”true”である場合にも、スキップフラグを参照したCUのQP差分値をサイド情報#81の一部としてサイド情報符号化部82に供給するようになっている。
以上のようなサイド情報決定部81およびサイド情報符号化部82の処理によって可変長符号多重化部25は、サイド情報符号化部82から、選択対象CUのQP差分値とピクチャ(またはピクチャを構成する各スライス)ごとに定まる第1QP符号化単位領域および第2QP符号化単位領域のサイズ情報との符号化データを含むサイド情報符号化データ#82を受け取ることになる。また、可変長符号多重化部25は、CU符号化部84から受け取るCU符号化データ#84とサイド情報符号化データ#82とを多重化することによって符号化データ#8を生成し、出力する。スキップフラグ(skip_flag)を参照するCUの左上座標のx成分およびy成分が共に第1QP符号化単位領域のサイズ(MinDeltaQuantCodingUnitSize)の整数倍に一致する場合に、deltaQuantAailの値を”true”に設定する。
そして、サイド情報決定部81は、deltaQuantAvailの値が”true”である状態で値が「0」のスキップフラグを参照すると、図21のtransform_treeシンタックスを呼び出して、residualDataPresentFlagの値を参照する。residualDataPresentFlagの値が「0」である場合、サイド情報決定部61は、次のCUについてcoding unitシンタックスを呼び出す。
なお、上記では、CUの左上座標のx成分およびy成分が共にQP符号化単位領域のサイズ(MinDeltaQuantCodingUnitSize)の整数倍に一致する場合という判定を行っているが、同じ位置のCUを判定できる別の判定方法を用いても構わない。例えば、以下に示すCU座標インデックスで判定を行うことができる。CU座標インデックスとは、あるLCUを最大限に分割した場合にできるCUに対し、LCU左上からラスタスキャンで復号する順番で0、1、2と増加するような、CUの位置を示すインデックスのことである。LCUを最大限に分割しない場合にもCU毎に、対応する位置からCU座標インデックスを割り振ることができる。最小CUサイズが4×4ブロックである場合には、CU座標インデックスが例えば0、4、8、12である場合の判定を行うと、MinDeltaQuantCodingUnitSize=8、すなわちQP符号化単位領域が8×8とすることができる。
また、上記では、CUの左上座標のx成分およびy成分が共にQP符号化単位領域のサイズ(MinDeltaQuantCodingUnitSize)の整数倍に一致する場合としているが、x成分とy成分で異なるQP符号化単位領域のサイズを用いても構わない。この場合、CUの左上座標のx成分がQP符号化単位領域の幅MinDeltaQuantCodingUnitWidthの整数倍、かつ、CUの左上座標のy成分がQP符号化単位領域の高さMinDeltaQuantCodingUnitHeightの整数倍のように判定を行う。
(付記事項)
上記実施形態では、サイド情報決定部81が図27のcoding unitシンタックスに従って選択対象CUを決定し、サイド情報符号化部82が図27のcoding unitシンタックスに従って選択対象CUのQP差分値を符号化するものとした。対応する動画像復号装置では、サイド情報復号部72が、図27のcoding unitシンタックスに従って、選択対象CUのQP差分値を復号するものとした。しかしながら、本発明はこれに限定されない。すなわち、サイド情報決定部81が図28のcoding unitシンタックスを用いて選択対象CUを決定してもよい。対応する動画像復号装置では、サイド情報復号部72が、図28のcoding unitシンタックスを参照して、選択対象CUのQP差分値を復号してもよい。
すなわち、図27のcoding unitに代えて、CUの予測モードに応じた分岐処理を行うようなシンタックスを構成するようにしてもよい。具体的には、図28のcoding unitシンタックスのように、CUの予測モードがイントラ予測モードであるときとインター予測モードであるときとマージモードであるときとダイレクトモードであるときとで、サイド情報符号化部82が符号化する、もしくは、サイド情報復号部72が復号のために参照するcu_qp_deltaがシンタックス中の別々の場所に記載されるようになっていてもよい(換言すれば、サイド情報符号化部82がcu_qp_deltaの符号化を行うステップは、CUの予測モードの符号化に続くステップであり、予測モードの種別毎にcu_qp_deltaの符号化の有無を異なるものとしてよい。サイド情報復号部72がcu_qp_deltaを復号するステップは、CUの予測モードの復号に続くステップであり、該予測モード毎のステップであってもよい)。
なお、図28のcoding unitシンタックスを見るとわかるように、予測モードがスキップモードである場合にはQP差分値を符号化せず、予測モードがイントラ予測モードである場合には、MinIntraDeltaCodingUnitSize以上のサイズを持つCUについてのみQP差分値を符号化し、予測モードがイントラ予測モードでもスキップモードでない場合には、MinDeltaCodingUnitSize以上のサイズを持つCUについてのみQP差分値を符号化するようにしてもよい。
(付記事項)
なお、上記実施形態において、量子化の対象となっているCUのQP値(cu_qp)を、直前に参照したQP値(pred_qp)と量子化の対象となっているCUのQP差分値との和によって求めている。ここで、直前に参照したQP値(QP予測値)は、量子化の対象となっているCUの左側に位置するCUのQP値であってもよいし、ラスタスキャン順で量子化の対象となっているCUの直前の位置にあるCUのQP値であってもよい。あるいは、直前に参照したQP値は、量子化の対象となっているCUの左側に位置するCUのQP値と量子化の対象となっているCUの上側に位置するCUのQP値との平均値であってもよい。
〔実施形態5〕
(動画像復号装置)
本実施形態に係る動画像復号装置は、次に説明する動画像符号化装置10から供給される符号化データ#10を復号して復号画像#9を生成する装置である。符号化データ#10に含まれるcoding_unitシンタックスの一例を図31に示す。
以下では、本実施形態に係る動画像復号装置について図面を参照しながら詳細に説明する。
最初に、本実施形態に係る動画像復号装置の構成について図29を参照しながら説明する。図29は、動画像復号装置9の構成を示すブロック図である。図29に示すように、動画像復号装置9は、可変長符号逆多重化部91、サイド情報復号部92、CU設定部93、CU復号部94、および、フレームメモリ15を備えている。
動画像復号装置9に入力された符号化データ#10は可変長符号逆多重化部91へ入力される。可変長符号逆多重化部91は、入力された符号化データ#9を逆多重化することによって、符号化データ#9を、サイド情報に関する符号化データであるサイド情報符号化データ#91aと、ピクチャに関する符号化データである符号化データ#91bとに分離し、サイド情報符号化データ#91aをサイド情報復号部92に、符号化データ#91bをCU設定部93にそれぞれ出力する。
サイド情報復号部92では、サイド情報符号化データ#91aを復号してサイド情報#92を生成し、サイド情報#92をCU設定部93に出力する。
サイド情報復号部92では、サイド情報符号化データ#91aを復号する処理において、QP符号化単位領域のサイズを示すサイズ情報の符号化データを復号することにより、サイド情報#92の一部として上記サイズ情報を生成する。
また、サイド情報復号部92では、サイド情報符号化データ#91aを復号する処理において、各LCUについて、該LCUを構成する各QP符号化単位領域のQP差分値の符号化データ、または、該LCUのQP差分値の符号化データを復号することにより、サイド情報#92の一部としてQP差分値を生成する。
サイド情報復号部92によるQP差分値の復号処理についてより具体的に説明すれば以下の通りである。
サイド情報復号部92は、符号化データ#10のスライスヘッダ(ピクチャ・パラメータ・セット)に含まれるサイズ情報(MinDeltaQuantCodingUnitSize)を復号し、QP符号化単位領域の(縦および横の)サイズを決定する。
また、サイド情報復号部92は、各LCUのdeltaQuantAvailCUフラグを復号する。
サイド情報復号部92は、該LCUのdeltaQuantAvailCUの値が”false”である場合に、該LCUの量子化に用いるQP差分値の復号をLCU単位で行う(すなわち、該LCUにおいてたかだか1つのQP差分値を復号する)ことを決定する。そして、サイド情報復号部92は、そのQP差分値を、該LCUに含まれる各CUの復号に利用する。
一方、サイド情報復号部92は、該LCUのdeltaQuantAvailCUの値が”true”である場合に、該LCUの量子化に用いるQP差分値の復号をCU単位で行うことを決定する。そして、サイド情報復号部92は、QP符号化単位領域ごとにたかだか1つ選択される選択対象CUのQP差分値を復号する。
以下では、サイド情報復号部92が各LCUに対して行う具体的な処理について図31のcoding_unitシンタックスを参照しながら説明する。
サイド情報復号部92は、LCUを構成する1以上の各CUについて、対象CUに対して以下の処理を行う。
サイド情報復号部92は、対象CUがLCUの左上端に位置するCUである場合(すなわち、対象CUの左上座標のx成分およびy成分がそれぞれmax_coding_unit_widthおよびmax_coding_unit_heightの整数倍である場合)にdeltaQuantAvailLCUフラグを”true”に設定する。そして、サイド情報復号部92は、対象CUが属するQP符号化単位領域の左上端に対象CUが位置し(すなわち、対象CUの左上座標のx成分およびy成分がMinDeltaQuantCodingUnitSizeの整数倍であり)、尚且つ、deltaQuantAvailCUフラグが”true”である場合にdeltaQuantAvailフラグを”true”に設定する。
ここで、deltaQuantAvailLCUフラグ、deltaQuantAvailCUフラグ、deltaQuantAvailフラグの意味は以下の通り、deltaQuantAvailLCUフラグは、LCU単位で符号化されるdeltaQuantAvailCUフラグの符号化/復号を制御するためのフラグであり、deltaQuantAvailCU の符号化/復号可能状態を示す。deltaQuantAvailCUフラグは、QP差分値をLCU単位で符号化するか、CU単位で符号化するかを選択するためのフラグであり、LCU単位で符号化する場合に”false”、CU単位で符号化する際に”true”となる。deltaQuantAvailは、CU単位で符号化する場合における、QP符号化単位を制御するためのフラグであり、qp_deltaの符号化/復号可能状態を示す。
サイド情報復号部92は、さらに対象CUのスキップフラグの値が“0”であってdeltaQuantAvailLCUフラグが”true”である場合に、対象CU(すなわち、選択対象CU)のqp_deltaを復号し、対象CUについてのQP差分値に設定する。また、deltaQuantAvailCUフラグを復号し、尚且つ、deltaQuantAvailLCUフラグを”false”に設定する。なお、図31では、qp_delta の後にdeltaQuantAvailCUフラグが位置するシンタックスとなっているが、qp_delta の前にdeltaQuantAvailCUフラグが位置するシンタックスであっても構わない。
また、サイド情報復号部92は、対象CUのスキップフラグの値が“0”であってdeltaQuantAvailフラグが”true”である場合にも、対象CU(すなわち、選択対象CU)のqp_deltaを復号し、対象CUについてのQP差分値に設定する。また、deltaQuantAvailフラグを”false”に設定する。
以上の説明および図31のcoding_unitシンタックスからわかるように、LCUのdeltaQuantAvailCUフラグが”false”である限り、deltaQuantAvailフラグは”true”になり得ない。そのため、LCU内において値が“0”であるようなスキップフラグがラスタスキャン順で最初に参照されるただ1つのCUについてのQP差分値が復号される。したがって、deltaQuantAvailCUフラグが”false”の場合、LCU単位でQP差分値が復号されることになる。
一方、LCUのdeltaQuantAvailCUフラグが”true”である場合、QP符号化単位領域の左上端に位置する対象CUに図31のcoding_unitシンタックスを適用するたびに、deltaQuantAvailフラグは”true“になる。そのため、QP符号化単位領域ごとにたかだか1つ選択される選択対象CUのQP差分値が復号されることになる。
また、図31のcoding_unitシンタックスからわかるように、LCUの中で最初に値が“0”であるようなスキップフラグが参照されるCUについてQP差分値の復号を行う際に、当該LCU内でその後に参照するCUについてQP差分値の復号を行うか否かが決定されることになる。
CU設定部93では、入力されたサイド情報#92に基づいて、符号化データ#91bを複数のスライスに分割し、各スライスを複数のQP符号化単位領域に分割し、各QP符号化単位領域を個々のCUに対応する符号化データ#93bに分離し、CU復号部94に対して順次出力する。
また、CU設定部93は、各LCUについて、該LCUのdeltaQuantAvailCUフラグを参照する。このdeltaQuantAvailCUフラグは、前述のLCU単位でQP差分値を符号化するかQP符号化領域単位でLCUを符号化するかを示すフラグである。CU設定部93は、該LCUのdeltaQuantAvailCUフラグが“true”である場合に、該LCUに属する各CUのCU情報を参照し、CU情報内にQP差分値が含まれているCUについてはそのQP差分値を、CU復号部94に出力する。
一方、CU設定部93は、該LCUのdeltaQuantAvailCUフラグが“false”である場合に、該LCUのCU情報内に含まれているQP差分値を、CU復号部94に出力する。
さらに、CU設定部93は、各LCUのdeltaQuantAvailCUフラグをCU復号部94に出力する。
CU復号部94は、入力された個々のCU(逆量子化単位領域)に対応する符号化データ#93bを順次復号および逆量子化することにより、個々のCUに対応する復号画像#94を生成し、出力する。また、復号画像#94は、フレームメモリ15に対しても出力される。
具体的には、CU復号部94は、CUに対応する符号化データ#93bを復号および逆量子化する際には、CUが属するLCUにおけるdeltaQuantAvailCUフラグの値に応じて、該CUが属するQP符号化単位領域または該LCUのQP差分値#93aからQP値を求めて逆量子化処理を行う。
符号化データ#91bを構成する全てのCUに対して、CU復号部94によるCU単位の復号画像生成処理が終わった時点で、動画像復号装置9に入力された符号化データに対応する復号画像#9の生成処理が完了する。
以上のように、動画像復号装置は、CUごとにQP差分値の符号化データを復号するのではなく、各LCUについてLCU単位またはLCUを構成するQP符号化単位領域ごとにQP差分値の符号化データを復号するので、従来よりも少ない符号量の符号化データからで復号画像を生成することができる。
(動画像符号化装置)
本実施形態に係る動画像符号化装置は、実施形態2に係る動画像符号化装置と同様に、入力画像を構成する各LCUを、JCTVC−C403に記載されているcoding_treeシンタックスを用いて複数のCU(Coding Unit:量子化単位領域)に分割する処理を行う。但し、本実施形態にて説明するシンタックスは、JCTVC−C403に記載されているシンタックスよりも一部簡略化してある(coding_treeシンタックスを用いる他の実施形態についても同様)。
ただし、本実施形態に係る動画像符号化装置は、実施形態2に係る動画像符号化装置とは異なり、入力画像を構成する各LCUについて、該LCUの量子化に用いるQP差分値の符号化をLCU単位で行うか、該LCUを構成するQP符号化領域単位で行うかを、後述するdeltaQuantAvailCUフラグに基づいて決定するように構成されている。
以下では、本実施形態に係る動画像符号化装置について図面を参照しながら詳細に説明する。
最初に、本実施形態に係る動画像符号化装置10の構成について図30を参照しながら説明する。図30は、動画像符号化装置10の構成を示すブロック図である。図30に示すように、動画像符号化装置10は、サイド情報決定部101、サイド情報符号化部102、CU設定部43、CU符号化部44、可変長符号多重化部25、CU復号部46、および、フレームメモリ27を備えている。
サイド情報決定部101は、入力画像#100に基づいて、サイド情報を決定し、決定したサイド情報をサイド情報#101として出力する。
具体的には、サイド情報決定部101は、QP符号化単位領域の(縦および横の)サイズを決定し、QP符号化単位領域のサイズを示すサイズ情報(MinDeltaQuantCodingUnitSize)をサイド情報#101のスライスヘッダ(ピクチャ・パラメータ・セット)に格納する。
また、サイド情報決定部101は、入力画像#100を構成する各LCUについて、所定のアルゴリズムに基づいて定められている、該LCUのdeltaQuantAvailCUフラグを復号する。
サイド情報決定部101は、該LCUのdeltaQuantAvailCUの値が”false”である場合に、該LCUの量子化に用いるQP差分値の符号化をLCU単位で行う(すなわち、該LCUにおいてたかだか1つのQP差分値を符号化する)ことを決定する。そして、サイド情報決定部101は、そのQP差分値をサイド情報#101を構成するLCUのCU情報内に格納する。
一方、サイド情報決定部101は、該LCUのdeltaQuantAvailCUの値が”true”である場合に、該LCUの量子化に用いるQP差分値の符号化をCU単位で行うことを決定する。そして、サイド情報決定部101は、QP符号化単位領域ごとにたかだか1つ選択される選択対象CUのQP差分値を、サイド情報#101を構成するその選択対象CUのCU情報内に格納する。
サイド情報符号化部102は、サイド情報#101を符号化し、サイド情報符号化データ#102を出力する。サイド情報符号化データ#102は、可変長符号多重化部25に供給される。サイド情報符号化部102は、サイド情報#101を符号化する処理において、各QP差分値と、上記サイズ情報とを符号化する。
なお、CU設定部43、CU符号化部44、CU復号部46、可変長符号多重化部25およびフレームメモリ27については実施形態1または2において説明したので、ここでは説明を省略する。
以上、動画像符号化装置10の構成について説明したが、以下では、サイド情報決定部101およびサイド情報符号化部102が入力画像#100を構成する各LCUに対して行う具体的な処理について図31のcoding_unitシンタックスを参照しながら説明する。
サイド情報決定部101は、LCUを構成する1以上の各CUについて、対象CUに対して以下の処理を行う。
サイド情報決定部101は、対象CUがLCUの左上端に位置するCUである場合(すなわち、対象CUの左上座標のx成分およびy成分がそれぞれmax_coding_unit_widthおよびmax_coding_unit_heightの整数倍である場合)にdeltaQuantAvailLCUフラグを”true”に設定する。そして、サイド情報決定部101は、対象CUが属するQP符号化単位領域の左上端に対象CUが位置し(すなわち、対象CUの左上座標のx成分およびy成分がMinDeltaQuantCodingUnitSizeの整数倍であり)、尚且つ、deltaQuantAvailCUフラグが”true”である場合にdeltaQuantAvailフラグを”true”に設定する。
さらに、サイド情報決定部101は、対象CUのスキップフラグの値が“0”であってdeltaQuantAvailLCUフラグが”true”である場合に、対象CU(すなわち、選択対象CU)のQP差分値を対象CUのCU情報内に格納するとともに、deltaQuantAvailCUフラグを復号し、尚且つ、deltaQuantAvailLCUフラグを”false”に設定する。
また、サイド情報決定部101は、対象CUのスキップフラグの値が“0”であってdeltaQuantAvailフラグが”true”である場合にも、対象CU(すなわち、選択対象CU)のQP差分値を対象CUのCU情報内に格納するとともに、deltaQuantAvailフラグを”false”に設定する。
このようにしてCU情報内に格納されたQP差分値は、LCUのdeltaQuantAvailフラグとともに、サイド情報#101の一部としてサイド情報符号化部102に供給される。
サイド情報符号化部102は、サイド情報#101を符号化してサイド情報符号化データ#102を可変長符号多重化部25に供給する。
以上の説明および図31のcoding_unitシンタックスからわかるように、LCUのdeltaQuantAvailCUフラグが”false”である限り、deltaQuantAvailフラグは”true”になり得ない。そのため、LCU内において値が“0”であるようなスキップフラグがラスタスキャン順で最初に参照されるただ1つのCUのCU情報にQP差分値が格納される。したがって、deltaQuantAvailCUフラグが”false”の場合、LCU単位でQP差分値が符号化されることになる。
一方、LCUのdeltaQuantAvailCUフラグが”true”である場合、QP符号化単位領域の左上端に位置する対象CUに図31のcoding_unitシンタックスを適用するたびに、deltaQuantAvailフラグは”true“になる。そのため、QP符号化単位領域ごとにたかだか1つ選択される選択対象CUのQP差分値が符号化されることになる。
また、図31のcoding_unitシンタックスからわかるように、LCUの中で最初に値が“0”であるようなスキップフラグが参照されるCUについてQP差分値の符号化を行う際に、当該LCU内でその後に参照するCUについてQP差分値の符号化を行うか否かが決定されることになる。
以上のようなサイド情報決定部101およびサイド情報符号化部102の処理によって可変長符号多重化部25は、サイド情報符号化部102から、各LCUについてLCU単位またはQP符号化単位領域単位で定まるQP差分値とピクチャ・パラメータ・セット(各スライス)ごとに定まるQP符号化単位領域のサイズ情報とdeltaQuantAvailCUフラグとの符号化データを含むサイド情報符号化データ#102を受け取ることになる。また、可変長符号多重化部25は、CU符号化部44から受け取るCU符号化データ#44とサイド情報符号化データ#102とを多重化することによって符号化データ#10を生成し、出力する。
〔実施形態6〕
(動画像復号装置)
本実施形態に係る動画像復号装置は、次に説明する動画像符号化装置112から供給される符号化データ#112を復号して復号画像#111を生成する装置である。符号化データ#112に含まれるcoding_unitシンタックスの一例を図34に示す。
以下では、本実施形態に係る動画像復号装置について図面を参照しながら詳細に説明する。
最初に、本実施形態に係る動画像復号装置の構成について図32を参照しながら説明する。図32は、動画像復号装置111の構成を示すブロック図である。図32に示すように、動画像復号装置111は、可変長符号逆多重化部1111、サイド情報復号部1112、CU設定部1113、CU復号部1114、および、フレームメモリ15を備えている。
動画像復号装置111に入力された符号化データ#112は可変長符号逆多重化部1111へ入力される。可変長符号逆多重化部1111は、入力された符号化データ#112を逆多重化することによって、符号化データ#112を、サイド情報に関する符号化データであるサイド情報符号化データ#1111aと、ピクチャに関する符号化データである符号化データ#1111bとに分離し、サイド情報符号化データ#1111aをサイド情報復号部1112に、符号化データ#1111bをCU設定部1113にそれぞれ出力する。
サイド情報復号部1112では、サイド情報符号化データ#1111aを復号してサイド情報#1112を生成し、サイド情報#1112をCU設定部1113に出力する。
サイド情報復号部1112では、サイド情報符号化データ#1111aを復号する処理において、IスライスQP符号化単位領域、Qスライス符号化単位領域およびPスライス符号化単位領域の各QP符号化単位領域のサイズを示すサイズ情報の符号化データを復号することにより、サイド情報#1112の一部として上記サイズ情報を生成する。
また、サイド情報復号部1112では、サイド情報符号化データ#1111aを復号する処理において、各LCUについて、該LCUを構成する各対象QP符号化単位領域のQP差分値の符号化データを復号することにより、サイド情報#1112の一部としてQP差分値を生成する。ここで、サイド情報復号部1112は、LCUを構成する各対象QP符号化単位領域が3種類のQP符号化単位領域のうちのいずれに該当するかを、該LCUが属するスライスのスライスヘッダ内のスライスタイプを参照することにより認識する。
サイド情報復号部1112によるQP差分値の復号処理についてより具体的に説明すれば以下の通りである。
サイド情報復号部1112は、量子化処理の対象となる各LCUについて、該LCUが属するスライスのスライスタイプに応じて異なるサイズの3つのQP符号化単位領域(Iスライス用QP符号化単位領域、Qスライス用QP符号化単位領域、およびBスライス用QP符号化単位領域)のいずれかのQP符号化単位領域(「対象QP符号化単位領域」とも称する)を規定するようになっている。例えば、サイド情報復号部1112はLCUが属するスライスのスライスタイプがIスライスである場合には、対象QP符号化単位領域としてIスライス用QP符号化単位領域を規定する。
そして、サイド情報復号部1112は、規定した各対象QP符号化単位領域について、該対象QP符号化単位領域全体を構成する1以上の各CUについて、ラスタスキャン順に該CUのスキップフラグを参照する。サイド情報復号部1112は、各対象QP符号化単位領域について、値が「0」であるスキップフラグが該QP符号化単位領域において初めて参照されるCUについて、図34に示すcu_qp_deltaを復号し、当該CUについてのQP差分値に設定する。
具体的には、サイド情報復号部1112は、図34に示すcoding_unitシンタックスを用いて各CUに対して順次以下の処理を行う。すなわち、サイド情報復号部1112は、スキップフラグ(skip_flag)を参照するCUの左上座標のx成分およびy成分が共に対象QP符号化単位領域のサイズ(LCUが属するスライスのスライスタイプがIスライスの場合にはMinIDeltaQuantCodingUnitSize。BスライスおよびPスライスの場合には、それぞれ、MinBDeltaQuantCodingUnitSizeおよびMinPDeltaQuantCodingUnitSize)の整数倍に一致する場合に、復号可能状態を示すフラグ(deltaQuantAvail)の値を”true”に設定する。そして、サイド情報復号部1112は、deltaQuantAvailの値が”true”である状態で値が「0」のスキップフラグを参照すると、スキップフラグを参照したCUについてのcu_qp_deltaを復号し、当該CUについてのQP差分値に設定する。その後、deltaQuantAvailの値を”false”に設定する。
CU設定部1113では、入力されたサイド情報#1112に基づいて、符号化データ#1111bを複数のスライスに分割し、各スライスを複数の対象QP符号化単位領域に分割し、各対象QP符号化単位領域を個々のCUに対応する符号化データ#1113bに分離し、CU復号部1114に対して順次出力する。
CU復号部1114は、入力された個々のCU(逆量子化単位領域)に対応する符号化データ#1113bを順次復号および逆量子化することにより、個々のCUに対応する復号画像#1114を生成し、出力する。また、復号画像#1114は、フレームメモリ15に対しても出力される。
具体的には、CU復号部1114は、CUに対応する符号化データ#1113bを復号および逆量子化する際には、CUが属する対象QP符号化単位領域におけるQP差分値#1113aからQP値を求めて逆量子化処理を行う。
符号化データ#1111bを構成する全てのCUに対して、CU復号部1114によるCU単位の復号画像生成処理が終わった時点で、動画像復号装置111に入力された符号化データに対応する復号画像#111の生成処理が完了する。
以上のように、動画像復号装置は、CUごとにQP差分値の符号化データを復号するのではなく、CUが属するスライスのスライスタイプに応じて定まる対象QP符号化単位領域ごとにQP差分値の符号化データを復号するので、従来よりも少ない符号量の符号化データから復号画像を生成することができる。
(動画像符号化装置)
本実施形態に係る動画像符号化装置112は、入力画像を構成するスライスにIスライスが多い場合と、Pスライスが多い場合と、Bスライスが多い場合とで、異なる粒度(個数)のQP差分値を符号化するように構成されている。
以下、本実施形態に係る動画像符号化装置112について図33を参照しながら説明する。図33は、動画像符号化装置112の構成を示すブロック図である。図33に示すように、動画像符号化装置112は、サイド情報決定部1121、サイド情報符号化部1122、CU設定部43、CU符号化部44、可変長符号多重化部25、CU復号部46、および、フレームメモリ27を備えている。
CU設定部43、CU符号化部44、可変長符号多重化部25、CU復号部46、および、フレームメモリ27については、実施形態1または2において説明したので、以下では、サイド情報決定部1121およびサイド情報符号化部1122について説明する。
サイド情報決定部1121は、量子化処理の対象となる各LCUについて、該LCUが属するスライスのスライスタイプに応じて異なるサイズの3つのQP符号化単位領域(Iスライス用QP符号化単位領域、Qスライス用QP符号化単位領域、およびBスライス用QP符号化単位領域)のいずれかのQP符号化単位領域(「対象QP符号化単位領域」とも称する)を規定するようになっている。例えば、サイド情報決定部1121は、LCUが属するスライスのスライスタイプがIスライスである場合には、対象QP符号化単位領域としてIスライス用QP符号化単位領域を規定する。
そして、サイド情報決定部1121は、規定した各対象QP符号化単位領域について、該対象QP符号化単位領域全体を構成する1以上の各CUについて、ラスタスキャン順に該CUのスキップフラグを参照する。サイド情報決定部1121は、各対象QP符号化単位領域について、値が「0」であるスキップフラグが該QP符号化単位領域において初めて参照されるCUのQP値を算出し、直前に参照したQP値(またはデフォルトQP値)とのQP差分値をサイド情報の一部としてサイド情報符号化部1122に出力する。
具体的には、サイド情報決定部1121およびサイド情報符号化部1122は、図34に示すcoding_unitシンタックスを用いて各CUに対して順次以下の処理を行う。すなわち、サイド情報決定部1121は、スキップフラグ(skip_flag)を参照するCUの左上座標のx成分およびy成分が共に対象QP符号化単位領域のサイズ(LCUが属するスライスのスライスタイプがIスライスの場合にはMinIDeltaQuantCodingUnitSize。BスライスおよびPスライスの場合には、それぞれ、MinBDeltaQuantCodingUnitSizeおよびMinPDeltaQuantCodingUnitSize)の整数倍に一致する場合に、符号化可能状態を示すフラグ(deltaQuantAvail)の値を”true”に設定する。そして、サイド情報決定部1121は、deltaQuantAvailの値が”true”である状態で値が「0」のスキップフラグを参照すると、スキップフラグを参照したCUのQP差分値をサイド情報#41の一部としてサイド情報符号化部1122に供給する。サイド情報符号化部1122は、QP差分値の符号化処理を実行してdeltaQuantAvailの値を”false”に設定する。
以上のようなサイド情報決定部1121およびサイド情報符号化部1122の処理によって、可変長符号多重化部25は、サイド情報符号化部1122から、3種類のQP符号化単位領域のサイズ情報と各対象QP符号化単位領域のQP差分値との符号化データを含むサイド情報符号化データ#1122を受け取ることになる。また、可変長符号多重化部25は、CU符号化部44から受け取るCU符号化データ#44とサイド情報符号化データ#1122とを多重化することによって符号化データ#112を生成し、出力する。
(付記事項)
なお、本実施形態に係る動画像符号化装置112は、入力画像を構成するスライスにIスライスが多い場合と、Pスライスが多い場合と、Bスライスが多い場合とで、異なる粒度(個数)のQP差分値を符号化するように構成されているが、本発明はこれに限定されない。すなわち、動画像符号化装置は、Pスライスが多い場合とBスライスが多い場合とで符号化するQP差分値を符号化する粒度(個数)が同程度になるように構成してもよい。すなわち、MinIDeltaQuantCodingUnitSizeとMinBDeltaQuantCodingUnitSizeとMinPDeltaQuantCodingUnitSizeとの各値を、次式が成立するような値に設定してもよい。
また、MinIDeltaQuantCodingUnitSize、MinBDeltaQuantCodingUnitSize、MinPDeltaQuantCodingUnitSizeは、ピクチャ・パラメータ・セットもしくは、シーケンス・パラメータ・セット、もしくは、スライスヘッダなどで符号化データ中に符号化する構成としても構わない。
〔実施形態7〕
(動画像復号装置)
本実施形態に係る動画像復号装置は、その次に説明する動画像符号化装置114から供給される符号化データ#114を復号して復号画像#113を生成する装置である。
以下では、本実施形態に係る動画像復号装置について図面を参照しながら詳細に説明する。
最初に、本実施形態に係る動画像復号装置の構成について図35を参照しながら説明する。図35は、動画像復号装置113の構成を示すブロック図である。図35に示すように、動画像復号装置113は、可変長符号逆多重化部1131、サイド情報復号部1132、CU設定部1133、CU復号部1134、および、フレームメモリ15を備えている。
動画像復号装置113に入力された符号化データ#114は可変長符号逆多重化部1131へ入力される。可変長符号逆多重化部1131は、入力された符号化データ#114を逆多重化することによって、符号化データ#114を、サイド情報に関する符号化データであるサイド情報符号化データ#1131aと、ピクチャに関する符号化データである符号化データ#1131bとに分離し、サイド情報符号化データ#1131aをサイド情報復号部1132に、符号化データ#1131bをCU設定部1133にそれぞれ出力する。
サイド情報復号部1132では、サイド情報符号化データ#1131aを復号してサイド情報#1132を生成し、サイド情報#1132をCU設定部1133に出力する。
サイド情報復号部1132では、サイド情報符号化データ#1131aを復号する処理において、QP符号化単位領域のサイズを示すサイズ情報の符号化データを復号することにより、サイド情報#1132の一部として上記サイズ情報を生成する。
また、サイド情報復号部1132では、サイド情報符号化データ#1131aを復号する処理において、各スライスヘッダの変換規則インデックスの符号化データを復号することにより、サイド情報#1132の一部として上記変換規則インデックスを生成する。ここで、変換規則インデックスとは、実施形態1において説明した各変換規則を識別するインデックスのことである。
さらに、サイド情報復号部1132では、サイド情報符号化データ#1131aを復号する処理において、各QP符号化単位領域のインデックス(qp_delta_index)の符号化データを復号することにより、サイド情報#1132の一部として上記インデックスを生成する。
CU設定部1133では、入力されたサイド情報#1132に基づいて、符号化データ#1131bを複数のスライスに分割し、各スライスを複数のQP符号化単位領域に分割し、各QP符号化単位領域を個々のCUに対応する符号化データ#1133bに分離し、CU復号部34に対して順次出力する。また、CU設定部1133は、各QP符号化単位領域について、サイド情報#1132に含まれている変換規則インデックスから特定される変換規則を用いて、同じくサイド情報#1132に含まれている該QP符号化単位領域のインデックスから、CU復号部1134に対して出力すべきQP差分値を算出する。そして、CU設定部1133は、該QP符号化単位領域の個々のCUに対応する符号化データ#1133bに加えて、変換規則を用いて算出したQP差分値#1133aをCU復号部1134に対して出力する。
CU復号部1134は、入力された個々のCU(逆量子化単位領域)に対応する符号化データ#1133bを順次復号および逆量子化することにより、個々のCUに対応する復号画像#1134を生成し、出力する。また、復号画像#1134は、フレームメモリ15に対しても出力される。
具体的には、CU復号部1134は、CUに対応する符号化データ#1133bを復号および逆量子化する際には、該CUが属するQP符号化単位領域のQP差分値#1133aからQP値を求めて逆量子化処理を行う。
符号化データ#1131bを構成する全てのCUに対して、CU復号部1134によるCU単位の復号画像生成処理が終わった時点で、動画像復号装置113に入力された符号化データに対応する復号画像#113の生成処理が完了する。
以上のように、動画像復号装置は、QP符号化単位領域ごとにQP差分値の符号化データを復号するのではなく、QP差分値よりも値が小さい(または図8(d)のようにQP差分値よりも小さいことが多い)インデックスの符号化データを復号する。したがって、変換規則インデックスの符号化による符号量の増分があっても、QP差分値を生成するために受信する符号化データの符号量は全体としてより少なくなる。そのため、動画像復号装置は、より少ないデータ量の符号化データからQP差分値を生成することができる。
(動画像符号化装置)
本実施形態に係る動画像符号化装置は、実施形態2に係る動画像符号化装置と同様に、入力画像を構成する各LCUを、JCTVC−C403に記載されているcoding_treeシンタックスを用いて複数のCU(Coding Unit:量子化単位領域)に分割する処理を行う。
また、本実施形態に係る動画像符号化装置は、QP符号化単位領域のサイズを示すサイズ情報を符号化するように構成されている。
一方、本実施形態に係る動画像符号化装置は、実施形態2に係る動画像符号化装置とは異なり、QP符号化単位領域ごとに、該QP符号化単位領域に属するたかだか1つのCUに関するQP差分値に代えて、実施形態1において説明した該QP差分値を指し示すインデックスを符号化するように構成されている。また、実施形態1と同様に、本実施形態に係る動画像符号化装置は、実施形態1において説明したQP差分値とインデックスとの関係を表した変換規則の変換規則インデックスを符号化するように構成されている。
以下では、本実施形態に係る動画像符号化装置について図面を参照しながら詳細に説明する。
最初に、本実施形態に係る動画像符号化装置114の構成について図36を参照しながら説明する。図36は、動画像符号化装置114の構成を示すブロック図である。図36に示すように、動画像符号化装置114は、サイド情報決定部1141、サイド情報符号化部1142、CU設定部43、CU符号化部44、可変長符号多重化部25、CU復号部46、および、フレームメモリ27を備えている。
サイド情報決定部1141は、入力画像#100に基づいて、サイド情報を決定し、決定したサイド情報をサイド情報#1141として出力する。サイド情報#1141は、入力画像#100に関するパラメータの集合であるピクチャ・パラメータ・セット、入力画像#100に含まれるスライス毎のヘッダ情報であるスライスヘッダ、スライスに含まれるCU毎のパラメータの集合であるCU情報、CUに含まれるTU毎のパラメータの集合であるTU情報等から構成される。
具体的には、サイド情報決定部1141は、スライス(またはピクチャ)ごとに所定のアルゴリズムに基づいてQP符号化単位領域の(縦および横の)サイズを決定し、QP符号化単位領域のサイズを示すサイズ情報をサイド情報#1141のスライスヘッダ(ピクチャ・パラメータ・セット)に格納する。
また、サイド情報決定部1141は、スライス毎に、該スライスに含まれるCUに割り当て可能なQP値に制限を課すためのQP差分値の集合を決定する。すなわち、スライスに含まれるCUに割り当て可能なQP値は、同じスライスに含まれる直前のCUに割り当てたQP値とのQP差分値が上記QP差分値の集合に含まれるように制限される。
さらに、サイド情報決定部1141は、スライス毎に、該スライスに関する変換規則を定め、対応するスライスヘッダ内に該変換規則を識別する変換規則インデックスを含めるようになっている。
そして、サイド情報決定部1141は、ピクチャ・パラメータ・セット(またはスライスヘッダ)内のQP符号化単位領域のサイズ情報に基づいて、入力画像#100(または各スライス)を構成するQP符号化単位領域を規定する。さらに、サイド情報決定部1141は、QP符号化単位領域ごとにたかだか1つ選択したCU(選択対象CU)について、QP差分値テーブルを参照することによりQP差分値(qp_delta)をインデックス(qp_delta_index)に変換する。そして、サイド情報決定部1141は、選択対象CUのCU情報にインデックスを格納したサイド情報#1141をサイド情報符号化部1142に出力するとともに、QP差分値をCU設定部43に出力する。
サイド情報符号化部1142は、サイド情報#1141を符号化し、サイド情報符号化データ#1142を出力する。サイド情報符号化データ#1142は、可変長符号多重化部25に供給される。サイド情報符号化部1142は、サイド情報#1141を符号化する処理において、各QP符号化単位領域のインデックスと、上記サイズ情報と、変換規則インデックスとを符号化する。より具体的には、サイド情報符号化部1142は、各QP符号化単位領域のインデックスを、インデックスの絶対値の大きさに応じた長さの2値列に符号化する。
なお、CU設定部43、CU符号化部44、CU復号部46、可変長符号多重化部25およびフレームメモリ27については実施形態1または2において説明したので、ここでは説明を省略する。
(動画像復号装置113および動画像符号化装置114の変形例1)
動画像符号化装置114のサイド情報決定部1141は、スライス毎に変換規則を定めるものとしたが、サイド情報決定部1141は、各スライスについて、所定の複数種類の変換規則の中からいずれか1つの変換規則を選択するものとしてもよい。
例えば、サイド情報決定部1141は、qp_delta=qp_delta_indexで表される変換規則と、qp_delta=qp_delta_index *2で表される変換規則(等価なQP差分値テーブルが図8(b)で表されるような変換規則)と、等価なQP差分値テーブルが図8(c)で表されるような変換規則と、の中からいずれかの変換規則を選択し、変換規則テーブルを参照して、該変換規則を示す変換規則インデックスをサイド情報#1141のスライスヘッダ内に格納してもよい。ここで、変換規則テーブルは、変換規則と変換規則インデックスとが関連づけられたテーブルであり、動画像符号化装置114と動画像復号装置113とは、共通の変換規則テーブルをそれぞれの記憶部(図示せず)に備えている。変換規則テーブルは、例えば、qp_delta=qp_delta_indexで表される変換規則を識別する変換規則インデックスを0とし、qp_delta=qp_delta_index *2で表される変換規則を識別する変換規則インデックスを1とし、等価なQP差分値テーブルが図8(c)で表されるような変換規則を識別する変換規則インデックスを2とするようなテーブルが挙げられる。
また、サイド情報決定部1141は、各スライスについて、所定の複数種類のQP差分値テーブルの中からいずれか1つのQP差分値テーブルを選択するものとしてもよい。
例えば、サイド情報決定部1141は、qp_deltaとqp_delta_indexとが同値となるようなQP差分値テーブルおよび図8(a)のようなQP差分値テーブルのどちらかのQP差分値テーブルを選択して、テーブル選択用情報を参照して、該QP差分値テーブルを示す粗さ指定フラグをサイド情報#1141のスライスヘッダ内に格納してもよい。ここで、テーブル選択用情報は、QP差分値テーブルと粗さ指定フラグとが関連づけられたテーブルであり、動画像符号化装置114と動画像復号装置113とは、共通のテーブル選択用情報をそれぞれの記憶部(図示せず)に備えている。
また、動画像符号化装置114と動画像復号装置113は、前者のQP差分値テーブルを示す2値フラグである粗さ指定フラグ「0」と規定し、後者のQP差分値テーブルを示す粗さ指定フラグ「1」と規定してもよい。
上記2つの例の場合、動画像復号装置113では、サイド情報復号部1132が、サイド情報符号化データ#1131aを復号する処理において、各スライスヘッダの変換規則インデックス(粗さ指定フラグ)の符号化データを復号することにより、サイド情報#1132の一部として上記変換規則インデックス(粗さ指定フラグ)を生成する。
CU設定部1133は、記憶部(図示せず)に格納されている変換規則テーブルを参照して、サイド情報#1132のスライスヘッダに含まれている変換規則インデックス(粗さ指定フラグ)から、同じく記憶部に格納されている、変換規則を表す演算アルゴリズム情報(QP差分値テーブル)を特定する。そして、CU設定部1133は、各QP符号化単位領域について、サイド情報#1132に含まれている該QP符号化単位領域内の選択対象CUのインデックスを、特定された演算情報(QP差分値テーブル)に基づいてCU復号部1134に対して出力すべきQP差分値に変換することになる。
なお、上記複数種類のQP差分値テーブルは、予測モードに応じて定まるようなQP差分値テーブルとなっていてもよい。例えば、上記複数種類のQP差分値テーブルは、イントラ予測モード用のQP差分値テーブルと、その他の予測モード用のQP差分値テーブルとからなる2種類のQP差分値テーブルであってもよい。そして、イントラ予測モード用のQP差分値テーブルがqp_deltaとqp_delta_indexとが同値となるようなQP差分値テーブルであり、その他の予測モード用のQP差分値テーブルが図8(b)のようなQP差分値テーブルとなっていてもよい。
この場合、サイド情報決定部1141は、図示しない予測画像生成部から受け取った選択対象CUの予測モードがイントラ予測モードである場合には、前者のQP差分値テーブルを参照して選択対象CUのQP差分値をインデックスに変換する。一方、サイド情報決定部1141は、図示しない予測画像生成部から受け取った選択対象CUの予測モードがインター予測モード等の他の予測モードである場合には、後者のQP差分値テーブルを参照して選択対象CUのQP差分値をインデックスに変換する。
また、上記複数種類のQP差分値テーブルは、スライスタイプに応じて定まるようなQP差分値テーブルとなっていてもよい。例えば、上記複数種類のQP差分値テーブルは、IスライスおよびBスライス用のQP差分値テーブルと、Pスライス用のQP差分値テーブルとからなる2種類のQP差分値テーブルであってもよい。
例えば、サイド情報決定部1141は、IスライスおよびBスライスについては、実施形態1に記載されているような方法でfactorが1となるようなQP差分値の集合を決定し、QP差分値の集合からIスライスおよびBスライス用のQP差分値テーブルを生成してもよい。同様に、サイド情報決定部1141は、Pスライスについては、実施形態1に記載されているような方法でfactorが2となるようなQP差分値の集合を決定し、QP差分値の集合からPスライス用のQP差分値テーブルを生成してもよい。
この場合、選択対象CUが属するスライスのスライスタイプがIスライスまたはBスライスである場合には前者のQP差分値テーブルを参照して選択対象CUのQP差分値をインデックスに変換する。一方、選択対象CUが属するスライスのスライスタイプがPスライスである場合には後者のQP差分値テーブルを参照して選択対象CUのQP差分値をインデックスに変換する。
なお、上記複数種類の演算規則についても、上記複数種類のQP差分値テーブルと同様のことがあてはまる。
(動画像復号装置113および動画像符号化装置114の変形例2)
実施形態5では、入力画像#100を構成する各LCUについて、LCU単位でQP差分値を符号化するかLCUを構成するQP符号化領域単位でQP差分値を符号化するかを、deltaQuantAvailCUフラグの真偽に応じて決定する動画像符号化装置について説明した。
動画像符号化装置114は、実施形態6に係る動画像符号化装置と同様に、LCU単位でインデックス(qp_delta_index)を符号化するかLCUを構成するQP符号化単位領域でインデックスを符号化するかを、deltaQuantAvailCUフラグの真偽に応じて決定してもよい。
さらに、動画像符号化装置114のサイド情報決定部1141は、各選択対象CUについて、スライス(LCUまたはCU)ごとに定めた複数種類の変換規則からいずれか1つの変換規則を選択し、選択した変換規則を用いてQP差分値をインデックスに変換してもよい。この場合、サイド情報決定部1141は、選択対象CUのインデックスとともに選択した変換規則の変換規則インデックスを選択対象CUのCU情報に格納する。
なお、サイド情報決定部1141は、上記複数種類の変換規則がスライスまたはLCUごとに定められている場合には、各LCUについて1つの変換規則を選択し、選択した変換規則を示す変換規則インデックスをLCUのCU情報に含めてもよい。同様に、サイド情報決定部1141は、上記複数種類の変換規則がスライスごとに定められている場合には、各スライスについて1つの変換規則を選択し、選択した変換規則を示す変換規則インデックスをスライスヘッダに含めてもよい。
例えば、サイド情報決定部1141は、qp_deltaとqp_delta_indexとが同値となるような変換規則と等価なQP差分値テーブルが図8(b)で表されるような変換規則とのどちらの変換規則を使用するかをスライス毎に選択するものとしてもよい。
この場合、サイド情報決定部1141は、LCU単位でインデックス(qp_delta_index)を決定する場合には選択対象CUのQP差分値から前者の変換規則を用いてサイド情報#1141に格納すべきインデックスを算出し、QP符号化単位領域単位でインデックス(qp_delta_index)を決定する場合には選択対象CUのQP差分値から後者の変換規則を用いてサイド情報#1141に格納すべきインデックスを算出してもよい。
また、動画像符号化装置114は、入力画像#100を構成する各スライスについて、スライス単位でインデックスを符号化するかスライスを構成するLCU(またはQP符号化単位領域)単位でインデックスを符号化するかを、決定してもよい。
この場合、サイド情報決定部1141は、スライス単位でインデックスを決定する場合には選択対象CUのQP差分値から前者の変換規則を用いてサイド情報#1141に格納すべきインデックスを算出し、LCU(またはQP符号化単位領域)単位でインデックスを決定する場合には選択対象CUのQP差分値から後者の変換規則を用いてサイド情報#1141に格納すべきインデックスを算出してもよい。
この場合、動画像復号装置113のCU設定部1133は、各LCUについて、サイド情報#1132内の該LCUのCU情報に含まれているdeltaQuantAvailCUを参照する。CU設定部1133は、該LCUのdeltaQuantAvailCUフラグが“true”である場合に、該LCUに属する各CUのCU情報を参照し、CU情報内にインデックスが含まれているCUについてはそのインデックスから、スライスヘッダ内に含まれている変換規則インデックスが表す変換規則を用いてQP差分値1133aを算出する。一方、該LCUのdeltaQuantAvailCUフラグが“false”である場合に、該LCUのCU情報を参照し、CU情報内に含まれているインデックスを、スライスヘッダ内に含まれている変換規則インデックスが示す変換規則を用いてQP差分値1133aに変換する。
そして、CU設定部1133は、QP差分値1133aをCU復号部1134に出力する。その他は、変形例1に係る動画像復号装置113と同様の動作を行う。
なお、上記実施形態1における、マクロブロックは、H.264/MPEG−4 AVCの後継規格として提案されているHEVC(High Efficiency Video Coding)のLCU(最大コーディングユニット:Largest Coding Unit、コーディングツリー(Coding Tree)のrootと呼ばれることもある)に相当し、サブマクロブロックおよびブロックは、HEVCのCU(コーディングユニット:Coding Unit、コーディングツリーのleafと呼ばれることもある)、PU(Prediction Unit)、又はTU(transformation Unit)に相当するものである。
最後に、シンタックスが示された各図において用いられている変数の説明を以下に示しておく。
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
以上のように、本発明に係る符号化装置は、上記n個の差分値と、上記n個の整数と、の1対1の対応関係を示す情報を生成する情報生成手段をさらに備え、上記情報生成手段が生成した上記情報を符号化データとして上記2値列とともに外部に出力することが望ましい。
上記の構成によれば、上記符号化装置は、上記2値列と上記対応関係を示す情報とが入力された場合に上記差分値を復号可能な復号装置に上記差分値の復号を行わせることができ、また、上記n個の差分値と上記n個の整数との1対1の対応関係を符号化すべき入力画像に応じて適宜変更することができるというさらなる効果を奏する。
本発明に係る符号化装置では、上記n個の差分値は上記n個の整数にそれぞれ所定の値を乗算することにより得られる値となっており、上記情報は上記所定の値そのものであることが望ましい。
上記の構成によれば、上記n個の差分値と、上記n個の整数と、の1対1の対応関係を示す情報が、1個の所定の値で表わされるので、外部に符号化データとして出力する上記情報の符号量を削減することができるというさらなる効果を奏する。
本発明に係る符号化装置では、上記変換手段は、上記n個の差分値のうち絶対値がi番目に小さい差分値を、上記n個の整数のうち絶対値がi番目に小さい整数に変換するように構成されており、該整数の絶対値は、該差分値の絶対値よりも小さいことが好ましい。
上記の構成によれば、本発明に係る符号化装置は、単位領域に関する差分値をn個の差分値の中からどのように決定したとしても、差分値を絶対値がより小さい整数に変換する。
したがって、本発明に係る符号化装置は、復号装置に供給する量子化パラメータの符号量を確実に削減することができるというさらなる効果を奏する。
本発明に係る符号化装置は、上記n個の差分値の各々について、上記変換手段が変換する各単位領域の差から構成されるグループに占める該差分値の割合を算出する算出手段をさらに備え、上記変換手段は、変換の対象となる差分値が上記算出手段が算出した上記割合が大きい差分値であるほど変換により得られる整数の絶対値が小さくなるように構成されていることが望ましい。
上記の構成によれば、本発明に係る符号化装置は、上記変換手段が変換する各単位領域の差から構成されるグループに占める割合が大きい差分値ほど、絶対値が小さい整数に変換する(すなわち、整数から生成される2値列の長さも短くなる)。
したがって、本発明に係る符号化装置は、復号装置に供給する量子化パラメータの符号量をより効率的に削減することができるというさらなる効果を奏する。
本発明に係る符号化装置では、上記入力画像は複数の第2単位領域から構成され、且つ、各第2単位領域は複数の上記単位領域から構成されており、上記設定手段が、各第2単位領域について予め定めた特定の単位領域の量子化パラメータを設定する場合には、該単位領域と、該単位領域より符号化順序が若い単位領域と、からなる対における量子化パラメータの差は、上記n個の差分値以外の値をとり得るようになっており、上記2値列生成手段は、該対における量子化パラメータの差から、差の絶対値の大きさに応じた長さの2値列を生成することが望ましい。
一般に、画像特性が互いに類似している(すなわち、量子化パラメータを近い値にすることが適切な)各単位領域から構成される領域が第2単位領域(例えば、拡大マクロブロック)として設定された場合、第2単位領域内の特定の単位領域(例えば、拡大マクロブロック内の左上隅のマクロブロック)を除く残りの単位領域の各々については、該単位領域の量子化パラメータを、該単位領域と該単位領域より符号化順序が若い単位領域と、からなる対における量子化パラメータの差が十分小さくなるように設定すれば、適切に量子化を行うことが可能である。
したがって、本発明に係る符号化装置は、上記残りの単位領域の各々の量子化パラメータを設定する場合における、該単位領域と該単位領域より符号化順序が若い単位領域と、からなる対における量子化パラメータの差の候補の数nを十分に小さくしても適切に量子化することができる。これにより、本発明に係る符号化装置は、n個の整数と、量子化パラメータに関するn個の差分値と、が1対1に対応付けられている情報を保持する記憶領域を節約することができるというさらなる効果を奏する。
本発明に係る復号装置では、上記符号化データには、n個の整数と、量子化パラメータに関するn個の差分値と、を1対1に対応付ける情報が含まれており、上記抽出手段が、上記符号化データから上記情報を抽出することが望ましい。
上記の構成によれば、本発明に係る復号装置は、上記符号化データから上記情報を抽出することができるので、本発明に係る符号化装置から供給された量子化パラメータに基づいて逆量子化するために自装置に予め上記情報を保持していなくてもよいというさらなる効果を奏する。
本発明に係る復号装置では、上記抽出手段が上記符号化データから抽出する上記情報は所定の値であり、上記特定手段は、上記整数生成手段が生成した整数値に上記抽出手段が抽出した上記所定の値を乗算することにより、上記差分値を特定することが望ましい。
上記の構成によれば、上記符号化データに含まれる上記情報は所定の値であるため、本発明に係る復号装置は、上記差分値を特定するために上記情報を保持する記憶領域を節約することができるというさらなる効果を奏する。
本発明に係る復号装置では、上記復号画像は複数の第2単位領域から構成され、且つ、各第2単位領域は複数の上記単位領域から構成されており、上記特定手段は、上記復号画像全体を構成する複数の単位領域のうち各第2単位領域について予め定めた特定の単位領域を除く残りの単位領域の各々について、該単位領域に関する整数値から該単位領域に関する差分値を上記情報に基づいて特定するようになっており、上記特定手段は、上記特定の単位領域については、上記整数生成手段が生成した整数値そのものを差分値として特定することが望ましい。
上記の構成によれば、本発明に係る復号装置は、上記残りの単位領域の各々について、該単位領域に関する整数値から該単位領域に関する差分値を、n個の整数と、量子化パラメータに関するn個の差分値と、が1対1に対応付けられている情報に基づいて特定する。ここで、符号化データを供給する符号化装置側において、画像特性が互いに類似している(すなわち、量子化パラメータを近い値にすることが適切な)各単位領域から構成される領域が第2単位領域(例えば、拡大マクロブロック)として設定し、かつ、上記残りの単位領域について決定する差分値の候補の数nを小さくしておけば、本発明に係る復号装置は、上記情報を保持するための記憶領域を節約することができるというさらなる効果を奏する。
なお、上記n個の差分値と、上記n個の整数と、の1対1の対応関係を示す情報を含む符号化データも本発明の範疇に含まれる。
なお、本発明に係る符号化装置は、上記第3単位領域を符号化単位(CU:Coding Unit)とするか、または、変換単位(TU:Transformation Unit)とすることができる。
また、本発明に係る符号化装置は、上記第3単位領域がCUであり、上記単位領域がLCUであり、上記複数のLCUの各々について、該LCU内の画像に対して上記算出手段が算出した上記量子化パラメータの値に応じた量子化を行うか、該LCUを構成する各CUについて、該CU内の画像に対して該CUの量子化パラメータの値に応じた量子化を行うか、を所定の基準に基づいて決定する第2決定手段をさらに備えることができる。
本発明に係る符号化装置は、上記の各構成によっても、量子化パラメータの符号量を従来に比べてより削減することが可能であるという効果を奏する。
本発明に係る符号化装置は、上記第3単位領域はCUであって、上記単位領域を構成する複数の第4単位領域の各々について、上記選択手段が該第4単位領域内で最初に選択するCUの予測モードがイントラ予測モードであるかを否かを判定する判定手段をさらに備え、上記算出手段は、上記予測モードがイントラ予測モードであると判定された第4単位領域内の量子化の対象となる各CUの画像に対して量子化を行うために参照する上記量子化パラメータの値を、該第4単位領域が属する単位領域について上記決定手段が決定した上記量子化パラメータの差分値に代えて、該第4単位領域内で最初に選択されたCUの量子化パラメータの差分値から算出することが望ましい。
上記の構成によれば、本発明に係る符号化装置は、各第4単位領域について該第4単位領域内で最初に選択されるCUの予測モードがイントラ予測モードである場合に、該第4単位領域と該第4単位領域が属する単位領域内の他の第4単位領域とで量子化パラメータの差分値が異なるような量子化パラメータを用いて、該第4単位領域内の画像に対して量子化を行うことができる。
換言すれば、本発明に係る符号化装置は、入力画像内に予測モードがイントラ予測モードとなるようなCUが多く含まれる場合には、入力画像内に予測モードがインター予測モードとなるようなCUが多く含まれる場合に比べて、復号装置に出力する量子化パラメータの差分値の個数が相対的に多くなる。
なお、入力画像内に予測モードがイントラ予測モードとなるようなCUが多く含まれる場合、入力画像内に予測モードがインター予測モードとなるようなCUが多く含まれる場合に比べ、量子化の精度を上げることによって符号化データの符号量は大きく削減されることがわかっている。
したがって、本発明に係る符号化装置は、入力画像内に占める予測モードがイントラ予測モードとなるようなCUと予測モードがインター予測モードとなるようなCUとの比率に応じて、符号化データの符号量を適切に削減することができるというさらなる効果を奏する。
本発明に係る符号化装置は、上記入力画像を構成する複数のスライスの各々について該スライスのスライスタイプを判定する判定手段と、記複数のスライスの各々について、該スライスを構成する各単位領域のサイズを、上記判定手段が判定したスライスタイプに応じたサイズに設定する単位領域設定手段と、をさらに備えていることが望ましい。
上記の構成によれば、本発明に係る符号化装置は、上記量子化パラメータの差分値が同一となるような各量子化パラメータを用いて量子化を行うべき単位領域のサイズを、その単位領域が属するスライスのスライスタイプに応じて適切に設定することにより、符号化データの符号量をより削減することができるというさらなる効果を奏する。
本発明に係る符号化装置は、n組(n:任意の整数)の上記量子化パラメータの差分値と整数とが1対1の対応関係になるような変換規則に従って、上記決定手段が各単位領域について決定した上記差分値を対応する整数に変換する変換手段と、上記変換手段による変換により得られた上記整数の絶対値の大きさに応じた長さの2値列を生成する2値列生成手段と、をさらに備え、n個の上記整数はn個の上記差分値よりも絶対値の総和が小さいことが望ましい。
上記の構成によれば、本発明に係る符号化装置は、量子化パラメータの各差分値について該差分値から変換された整数の絶対値を2値列に変換する。ここで、n個の上記整数はn個の上記差分値よりも絶対値の総和が小さいので、上記変換後の2値列の長さの総和は、統計的には、量子化パラメータの各差分値について該差分値の絶対値を2値列に変換した場合における変換後の2値列の長さの総和よりも小さくなることが多いと言える。
したがって、本発明に係る符号化装置は、量子化パラメータの差分値の符号量をより削減することができるというさらなる効果を奏する。
また、本発明に係る復号装置は、上記第3単位領域を符号化単位(CU:Coding Unit)とするか、または、変換単位(TU:Transformation Unit)とすることができる。
また、本発明に係る復号装置は、上記第3単位領域はCUであり、上記単位領域はLCUであり、上記複数のLCUの各々について、該LCU内の量子化画像に対して上記特定手段が特定した上記量子化パラメータの値に応じた逆量子化を行うか、該LCUを構成する各CUについて、該CU内の量子化画像に対して該CUの量子化パラメータの値に応じた逆量子化を行うか、を所定の基準に基づいて決定することができる。
上記の各構成によっても、本発明に係る復号装置は、逆量子化を行うために用いるべき量子化パラメータをより少ない負荷で特定することができる。
本発明に係る復号装置は、上記第3単位領域はCUであって、上記単位領域を構成する複数の第4単位領域の各々について、上記選択手段が該第4単位領域内で最初に選択するCUの予測モードがイントラ予測モードであるかを否かを判定する判定手段をさらに備え、上記特定手段は、上記予測モードがイントラ予測モードであると判定された第4単位領域内の逆量子化の対象となる各CUの量子化画像に対して逆量子化を行うために参照する上記量子化パラメータの値を、該第4単位領域が属する単位領域について上記読出手段が読み出した上記量子化パラメータの差分値に代えて、該第4単位領域内で最初に選択されたCUの量子化パラメータの差分値から特定することが望ましい。
上記の構成によれば、本発明に係る符号化装置は、各CUの予測モードがイントラ予測モードであるか否かを判定する判定手段を備えた本発明に係る符号化装置から送信されるより小さい符号量の符号化データを復号して、復号画像を生成することができるというさらなる効果を奏する。
本発明に係る復号装置は、上記復号画像を構成する複数のスライスの各々について該スライスのスライスタイプを判定する判定手段と、上記複数のスライスの各々について、該スライスを構成する各単位領域のサイズを、上記判定手段が判定したスライスタイプに応じたサイズに設定する単位領域設定手段と、をさらに備えていることが望ましい。
上記の構成によれば、本発明に係る復号装置は、同様の判定手段を備えた本発明に係る符号化装置から送信された符号化データを復号して、復号画像を生成することができるというさらなる効果を奏する。
本発明に係る復号装置は、上記読出手段が、量子化パラメータの差分値に代えて、該差分値に対応する整数を上記符号化データから読み出すように構成されている読出手段であり、n組(n:任意の整数)の上記量子化パラメータの差分値と整数とが1対1の対応関係になるような変換規則に従って、上記読出手段が各単位領域について読み出した上記整数を、対応する上記差分値に変換する変換手段をさらに備え、上記特定手段が、各単位領域について、該単位領域に含まれる逆量子化の対象となる各第3単位領域内の量子化画像に対して逆量子化を行うために参照する上記量子化パラメータの値を、上記読出手段が該単位領域内において読み出した上記整数を上記変換手段が変換することにより得られた量子化パラメータの差分値から特定するように構成されており、n個の上記整数はn個の上記差分値よりも絶対値の総和が小さいことが望ましい。
上記の構成によれば、本発明に係る復号装置は、上記変換規則に従って量子化パラメータの差分値を整数に変換する変換手段を備えた本発明に係る符号化装置から送信された符号化データを復号して、復号画像を生成することができるというさらなる効果を奏する。