本実施の形態では、動画像の符号化に関し、特にピクチャを任意のサイズ、形状の矩形に分割したブロック単位で、符号化においては既に符号化および復号済み、復号においては復号済み(以下復号済みとする)の周囲のブロックの画素値から予測を行うイントラ予測、及び既に復号済みのピクチャから動き補償によるインター予測を用いて符号量を削減する。
まず、本実施例において使用する技術、及び技術用語を定義する。
(色差フォーマット)
実施の形態の説明で符号化及び復号の対象とする画像の色差フォーマットは、AVC/H.264方式でも対象とされているモノクロ、4:2:0、4:2:2、4:4:4とし、輝度信号と色差信号をセットにして符号化、及び復号するものとする。ただし、色差信号に関する説明に関しては、モノクロの場合の説明を省略する。なお、4:4:4で輝度信号と色差信号を独立に符号化する方法に関しては本実施例ではモノクロとみなすこととする。
(ツリーブロック、符号化ブロックについて)
実施の形態では、図6に示されるように、画面内を任意の同一サイズの正方の矩形の単位にて均等分割する。この単位をツリーブロックと定義し、画像内での符号化/復号対象ブロック(符号化においては符号化対象ブロック、復号においては復号対象ブロック)を特定するためのアドレス管理の基本単位とする。モノクロを除きツリーブロックは1つの輝度信号と2つの色差信号で構成される。ツリーブロックのサイズはピクチャサイズや画面内のテクスチャに応じて、2のべき乗のサイズで自由に設定することができるものとする。ツリーブロックは画面内のテクスチャに応じて、符号化処理を最適にすべく、必要に応じてツリーブロック内の輝度信号、及び色差信号を階層的に4分割(縦横に2分割ずつ)して、ブロックサイズの小さいブロックにすることができる。このブロックをそれぞれ符号化ブロックと定義し、符号化及び復号を行う際の処理の基本単位とする。モノクロを除き符号化ブロックも1つの輝度信号と2つの色差信号で構成される。符号化ブロックの最大サイズはツリーブロックのサイズと同一である。符号化ブロックの最小のサイズとなる符号化ブロックを最小符号化ブロックと呼び、2のべき乗のサイズで自由に設定することができるものとする。
図6においては、符号化ブロックAは、ツリーブロックを分割せず、1つの符号化ブロックとしたものである。符号化ブロックBは、ツリーブロックを4分割してできた符号化ブロックである。符号化ブロックCは、ツリーブロックを4分割してできたブロックをさらに4分割してできた符号化ブロックである。符号化ブロックDは、ツリーブロックを4分割してできたブロックをさらに階層的に2度4分割してできた符号化ブロックであり、最小サイズの符号化ブロックである。
実施の形態の説明においては、色差フォーマットが4:2:0で、ツリーブロックのサイズを輝度信号で64×64画素、色差信号で32×32画素と設定し、最小の符号化ブロックのサイズを輝度信号で8×8画素、色差信号で4×4画素と設定するものとする。図6では、符号化ブロックAのサイズは輝度信号で64×64画素、色差信号で32×32画素となり、符号化ブロックBのサイズは輝度信号で32×32画素、色差信号で16×16画素となり、符号化ブロックCのサイズは輝度信号で16×16画素、色差信号で8×8画素となり、符号化ブロックDのサイズは輝度信号で8×8画素、色差信号で4×4画素となる。なお、色差フォーマットが4:4:4の場合、各符号化ブロックの輝度信号と色差信号のサイズが等しくなる。色差フォーマットが4:2:2の場合、符号化ブロックAのサイズは色差信号で32×64画素となり、符号化ブロックBのサイズは色差信号で16×32画素となり、符号化ブロックCのサイズは色差信号で8×16画素となり、最小の符号化ブロックである符号化ブロックDのサイズは色差信号で4×8画素となる。
(予測モードについて)
符号化ブロック単位で、符号化/復号済みの周囲の画像信号から予測を行うイントラ予測、及び符号化/復号済みの画像の画像信号から予測を行うインター予測を切り替える。このイントラ予測とインター予測を識別するモードを予測モード(PredMode)と定義する。予測モード(PredMode)はイントラ予測(MODE_INTRA)、またはインター予測(MODE_INTER)を値として持ち、選択して符号化できる。
(分割モード、予測ブロック、予測ユニットについて)
画面内をブロックに分割してイントラ予測及びインター予測を行う場合、イントラ予測及びインター予測の方法を切り替える単位をより小さくするために、必要に応じて符号化ブロックを分割して予測を行う。この符号化ブロックの輝度信号と色差信号の分割方法を識別するモードを分割モード(PartMode)と定義する。さらに、この分割されたブロックを予測ブロックと定義する。図7に示すように、符号化ブロックの輝度信号の分割方法に応じて4種類の分割モード(PartMode)を定義する。符号化ブロックの輝度信号を分割せず1つの予測ブロックとみなしたもの(図7(a))の分割モード(PartMode)を2N×2N分割(PART_2Nx2N)、符号化ブロックの輝度信号を水平方向に2分割し、2つの予測ブロックとしたもの(図7(b))の分割モード(PartMode)を2N×N分割(PART_2NxN)、符号化ブロックの輝度信号を垂直方向に分割し、符号化ブロックを2つの予測ブロックとしたもの(図7(c))の分割モード(PartMode)をN×2N分割(PART_Nx2N)、符号化ブロックの輝度信号を水平と垂直の均等分割により4つの予測ブロックとしたもの(図7(d))の分割モード(PartMode)をN×N分割(PART_NxN)とそれぞれ定義する。なお、イントラ予測(MODE_INTRA)のN×N分割(PART_NxN)を除き、各分割モード(PartMode)毎に輝度信号の縦横の分割比率と同様に色差信号も分割する。イントラ予測(MODE_INTRA)のN×N分割(PART_NxN)の符号化ブロックの色差信号の縦横の分割比率は色差フォーマットの種類によって異なり、後述する。
符号化ブロック内部において、各予測ブロックを特定する為に、0から開始する番号を、符号化順序で、符号化ブロック内部に存在する予測ブロックに対して割り当てる。この番号を分割インデックスPartIdxと定義する。図7の符号化ブロックの各予測ブロックの中に記述された数字は、その予測ブロックの分割インデックスPartIdxを表す。図7(b)に示す2N×N分割(PART_2NxN)では上の予測ブロックの分割インデックスPartIdxを0とし、下の予測ブロックの分割インデックスPartIdxを1とする。図7(c)に示すN×2N分割(PART_Nx2N)では左の予測ブロックの分割インデックスPartIdxを0とし、右の予測ブロックの分割インデックスPartIdxを1とする。図7(d)に示すN×N分割(PART_NxN)では、左上の予測ブロックの分割インデックスPartIdxを0とし、右上の予測ブロックの分割インデックスPartIdxを1とし、左下の予測ブロックの分割インデックスPartIdxを2とし、右下の予測ブロックの分割インデックスPartIdxを3とする。
また、同じ位置にある輝度信号と色差信号の予測ブロックはイントラ予測、インター予測共に相関性が高いので、実施の形態においては、輝度信号と色差信号の予測ブロックの符号化情報を1つの予測ユニットとして符号化、および復号処理を行う。また、予測ユニットにも分割インデックスPartIdxが割り当てられ、同じ位置にある輝度信号と色差信号の予測ブロックには分割インデックスPartIdxに同じ値が割り当てられる。
予測モード(PredMode)がイントラ予測(MODE_INTRA)では、最小の符号化ブロックである符号化ブロックD(本実施例は輝度信号で8×8画素)以外では、分割モード(PartMode)は2N×2N分割(PART_2Nx2N)を定義し、最小の符号化ブロックである符号化ブロックDのみ、分割モード(PartMode)は2N×2N分割(PART_2Nx2N)とN×N分割(PART_NxN)を定義する。
予測モード(PredMode)がインター予測(MODE_INTER)では、最小の符号化ブロックである符号化ブロックD以外では、分割モード(PartMode)は2N×2N分割(PART_2Nx2N)、2N×N分割(PART_2NxN)、及びN×2N分割(PART_Nx2N)を定義し、最小の符号化ブロックである符号化ブロックDのみ、分割モード(PartMode)は2N×2N分割(PART_2Nx2N)、2N×N分割(PART_2NxN)、及びN×2N分割(PART_Nx2N)に加えてN×N分割(PART_NxN)を定義する。なお、最小の符号化ブロック以外にN×N分割(PART_NxN)を定義しない理由は最小の符号化ブロック以外では、符号化ブロックを4分割して小さな符号化ブロックを表現できるからである。
(イントラ予測、イントラ予測モードについて)
イントラ予測では同じ画面内の周囲の復号済みのブロックの画素の値から処理対象ブロックの画素の値を予測する。本実施例の符号化装置及び復号装置では34通りのイントラ予測モードから選択して、イントラ予測する。図8は本実施例で規定するイントラ予測モードの値と予測方向を説明図である。実線の矢印の指し示す方向はイントラ予測の予測方向、すなわちイントラ予測で参照する方向を示し、隣接するブロックの矢印の指し示す方向の復号済みの画素を参照して矢印の始点の画素のイントラ予測を行う。番号はイントラ予測モードの値を示す。イントラ予測モード(intraPredMode)は、上の復号済みのブロックから垂直方向に予測する垂直予測(イントラ予測モードintraPredMode=0)、左の復号済みのブロックから水平方向に予測する水平予測(イントラ予測モードintraPredMode=1)、周囲の復号済みのブロックから平均値を算出することにより予測する平均値予測(イントラ予測モードintraPredMode=2)、周囲の復号済みのブロックから斜め45度の角度で予測する平均値予測(intraPredMode=3)に加えて、周囲の復号済みのブロックから様々な角度で斜め方向に予測する30通りの角度予測(イントラ予測モードintraPredMode=4…33)を定義する。
イントラ予測モードは、輝度信号、色差信号それぞれに用意し、輝度信号用のイントラ予測モードをイントラ輝度予測モード、色差信号用のイントラ予測モードをイントラ色差予測モードと定義する。イントラ輝度予測モードの符号化、および復号においては、周辺のブロックのイントラ輝度予測モードとの相関性を利用し、符号化側で周辺のブロックのイントラ輝度予測モードから予測できると判断された場合は参照するブロックを特定する情報を伝送し、周辺のブロックのイントラ輝度予測モードから予測するよりもイントラ輝度予測モードに別の値を設定した方が良いと判断された場合に、さらにイントラ輝度予測モードの値を符号化、または復号する仕組みを用いる。周辺のブロックのイントラ輝度予測モードから符号化・復号対象ブロックのイントラ輝度予測モードを予測することにより、伝送する符号量を削減できる。一方、イントラ色差予測モードの符号化、および復号においては、色差信号の予測ブロックと同じ位置の輝度信号の予測ブロックのイントラ輝度予測モードとの相関性を利用し、符号化側でイントラ輝度予測モードから予測できると判断された場合はイントラ輝度予測モードの値からイントラ色差予測モードの値を予測し、イントラ輝度予測モードから予測するよりもイントラ色差予測モードに独自の値を設定した方が良いと判断した場合に、イントラ色差予測モードの値を符号化、または復号する仕組みを用いる。イントラ輝度予測モードからイントラ色差予測モードを予測することにより、伝送する符号量を削減できる。
(変換ブロック)
従来と同様に、本実施の形態でもDCT(離散コサイン変換)、DST(離散サイン変換)等の、離散信号を周波数領域へ変換する直交変換とその逆変換を用いて、符号量の削減を図る。符号化ブロックを階層的に4分割した変換ブロック単位で、変換、または逆変換を行う。実施の形態においては、32×32画素、16×16画素、8×8画素、4×4画素の4通りの変換サイズを定義し、32×32変換、16×16変換、8×8変換、4×4変換、およびそれぞれの逆変換を行うものとする。
(ツリーブロック、符号化ブロック、予測ブロック、変換ブロックの位置)
本実施例で説明するツリーブロック、符号化ブロック、予測ブロック、変換ブロックを始めとする各ブロックの位置は、輝度信号の画面の一番左上の輝度信号の画素の位置を原点(0,0)とし、それぞれのブロックの領域に含まれる一番左上の輝度信号の画素の位置を(x,y)の二次元座標で表す。座標軸の向きは水平方向に右の方向、垂直方向に下の方向をそれぞれ正の向きとし、単位は輝度信号の1画素単位である。輝度信号と色差信号で画像サイズ(画素数)が同じである色差フォーマットが4:4:4の場合ではもちろんのこと、輝度信号と色差信号で画像サイズ(画素数)が異なる色差フォーマットが4:2:0、4:2:2の場合でも色差信号の各ブロックの位置をそのブロックの領域に含まれる輝度信号の画素の座標で表し、単位は輝度信号の1画素である。この様にすることで、色差信号の各ブロックの位置が特定できるのはもちろんのこと、座標の値を比較するだけで、輝度信号のブロックと色差信号のブロックの位置の関係も明確となる。図9は色差フォーマットが4:2:0での本実施例で規定するブロックの位置の説明をするための一例の図である。図9の×は画像の画面平面上での輝度信号の画素の位置を示し、○は色差信号の画素の位置を示す。図9の点線の四角形は8×8画素の輝度信号のブロックEであると同時に、4×4画素の色差信号のブロックFでもある。▲は点線で示される8×8画素の輝度信号のブロックEの一番左上の輝度信号の画素の位置である。したがって、▲は点線で示される8×8画素の輝度信号のブロックEの位置となり、▲で示される画素の輝度信号の座標を点線で示される8×8画素の輝度信号のブロックEの座標となる。同様に、▲は点線で示される4×4画素の色差信号のブロックFの領域に含まれる一番左上の輝度信号の画素の位置でもある。したがって、▲は点線で示される4×4画素の色差信号のブロックFの位置ともなり、▲で示される画素の輝度信号の座標を点線で示される4×4画素の色差信号のブロックFの座標となる。実施の形態においては、色差フォーマットの種類やブロックの形状、大きさにかかわらず、定義した輝度信号のブロックの座標と色差信号のブロックの座標のx成分とy成分の値が共に同一の場合にだけ、これらのブロックは同じ位置にあると定義する。
図1は実施の形態に係る動画像符号化装置の構成を示すブロックである。実施の形態の動画像符号化装置は、色差フォーマット設定部101、画像メモリ102、イントラ予測部103、インター予測部104、符号化方法決定部105、残差信号生成部106、直交変換・量子化部107、逆量子化・逆直交変換部108、復号画像信号重畳部109、復号画像メモリ111、第1の符号化ビット列生成部112、第2の符号化ビット列生成部113、第3の符号化ビット列生成部114、符号化ビット列多重化部115を備える。
色差フォーマット設定部101では符号化対象の画像信号の色差フォーマットを設定する。色差フォーマット設定部101に供給される符号化画像信号から色差フォーマットを判断して色差フォーマットを設定してもよいし、外部から設定してもよい。輝度信号のみ、4:2:0、4:2:2、または4:4:4と設定された色差フォーマットの情報は第1の符号化ビット列生成部112に供給されるとともに、第2の符号化ビット列生成部113に供給されて、色差フォーマットに基づいた符号化処理が行われる。なお、図示していないが、図1の画像メモリ102、イントラ予測部103、インター予測部104、符号化方法決定部105、残差信号生成部106、直交変換・量子化部107、逆量子化・逆直交変換部108、復号画像信号重畳部109、第3の符号化ビット列生成部114でもこの設定された色差フォーマットに基づいて符号化処理が行われ、符号化情報格納メモリ110、復号画像メモリ111では、この設定された色差フォーマットに基づいて管理される。
画像メモリ102では、時間順に供給された符号化対象の画像信号を一時格納する。画像メモリ102に格納された符号化対象の画像信号は符号化順序に並べ替えられて、設定に応じた複数の組み合わせでそれぞれの符号化ブロック単位に分割され、さらに、それぞれの予測ブロック単位に分割されて、イントラ予測部103、インター予測部104に供給される。
イントラ予測部103は複数の符号化ブロック単位におけるそれぞれの分割モード(PartMode)に応じた予測ブロック単位で、復号画像メモリ111に格納された復号済みの画像信号から符号化対象の予測ブロックの輝度信号、色差信号それぞれについて複数のイントラ輝度予測モード、及びイントラ色差予測モードに応じたそれぞれのイントラ予測を行い、イントラ予測信号を得る。なお、イントラ色差予測モードは色差フォーマットに応じてイントラ輝度予測モードから予測される値、または、代表的なイントラ予測モードである0(水平方向)、1(垂直方向)、2(平均値)、3(斜め45度)に限り選択する。なお、イントラ輝度予測モードからイントラ色差予測モードを予測する方法については後述する。
予測ブロック単位に供給された符号化対象の信号から、予測ブロック単位のイントラ予測信号を画素毎に減算して、予測残差信号を得る。その予測残差信号を用いて符号量と歪量を評価するための評価値を算出し、予測ブロック単位で、複数のイントラ予測モードの中から最も符号量、及び歪量の観点で最適なモードを選択し、当該予測ブロックのイントラ予測の候補として、選択されたイントラ予測モードに対応するイントラ予測情報、イントラ予測信号、及びイントラ予測の評価値を符号化方法決定部105に供給する。なお、イントラ予測を行う予測処理単位については後述する。
インター予測部104は複数の符号化ブロック単位におけるそれぞれの分割モード(PartMode)に応じた単位、即ち予測ブロック単位で、復号画像メモリ111に格納された復号済みの画像信号から複数のインター予測モード(L0予測、L1予測、両予測)、及び参照画像に応じたそれぞれのインター予測を行い、インター予測信号を得る。その際、動きベクトル探索を行い、探索された動きベクトルに応じてインター予測を行う。なお、両予測の場合は、2つのインター予測信号を画素毎に平均、または重み付け加算することにより、両予測のインター予測を行う。予測ブロック単位に供給された符号化対象の信号から、予測ブロック単位のインター予測信号を画素毎に減算して、予測残差信号を得る。その予測残差信号を用いて符号量と歪量を評価するための評価値を算出し、予測ブロック単位で、複数のインター予測モードの中から最も符号量、及び歪量の観点で最適なモードを選択し、当該予測ブロックのインター予測の候補として、選択されたインター予測モードに対応するインター予測情報、インター予測信号、及びインター予測の評価値を符号化方法決定部105に供給する。
符号化方法決定部105は複数の符号化ブロック単位におけるそれぞれの予測ブロック毎に選択されたイントラ予測情報に対応するイントラ予測評価値及びインター予測情報に対応するインター予測評価値に基づき、最適な符号化ブロックの分割方法、予測モード(PredMode)、分割モード(PartMode)を決定し、決定に応じたイントラ予測情報、またはインター予測情報を含む符号化情報を第2の符号化ビット列生成部113に供給するとともに、符号化情報格納メモリ110に格納し、決定に応じたイントラ予測またはインター予測された予測信号を残差信号生成部106、及び復号画像信号重畳部109に供給する。
残差信号生成部106は、符号化する画像信号からイントラ予測またはインター予測された予測信号を画素毎に減じて残差信号を生成し、直交変換・量子化部107に供給する。
直交変換・量子化部107は、供給される残差信号に対して量子化パラメータに応じてDCTやDST等の周波数領域に変換する直交変換及び量子化を行い直交変換・量子化された残差信号を生成し、第3の符号化ビット列生成部114、及び逆量子化・逆直交変換部108に供給する。
第1の符号化ビット列生成部112は、シンタックス要素の意味、導出方法を定義するセマンティクス規則に従って、シーケンス、ピクチャ、及びスライス単位の符号化情報に関するシンタックス要素の値を算出し、算出した各シンタックス要素の値をシンタックス規則に従って、可変長符号化、算術符号化等によるエントロピー符号化を行い、第1の符号化ビット列を生成し、符号化された第1の符号化ビット列を符号化ビット列多重化部115に供給する。色差フォーマットに関するシンタックス要素の値も第1の符号化ビット列生成部112で算出される。色差フォーマット設定部101から供給される色差フォーマット情報から色差フォーマットに関するシンタックス要素を算出する。図10は本実施例で規定するシーケンス全体の符号化に関する情報を符号化するヘッダとなるシーケンス・パラメータ・セットで色差フォーマット情報を符号化する際の、シンタックスの定義の一例である。シンタックス要素chroma_format_idcは色差フォーマットの種類を示す。シンタックス要素chroma_format_idcの意味は値が0はモノクロ、1は4:2:0、2は4:2:2、3は4:4:4を表す。また、シンタックス要素separate_colour_plane_flagの意味は輝度信号と色差信号が別々に符号化されるかどうかを表し、separate_colour_plane_flagの値が0の場合、輝度信号に2つの色差信号が対応付けられて符号化されることを表す。シンタックス要素chroma_format_idcの値が1の場合、輝度信号と2つの色差信号が別々に符号化されることを表す。シンタックス要素chroma_format_idcの値が3、即ち色差フォーマットが4:4:4の場合のみ、chroma_format_idcの値を0または1に設定することができ、それ以外の色差フォーマットでは、常にシンタックス要素separate_colour_plane_flagの値が0であるものとして、符号化される。
第2の符号化ビット列生成部113は、シンタックス要素の意味、導出方法を定義するセマンティクス規則に従って、符号化ブロック単位の符号化情報に加えて、予測ブロック毎に符号化方法決定部105によって決定された符号化情報に関するシンタックス要素の値を算出する。具体的には、符号化ブロックの分割方法、予測モード(PredMode)、分割モード(PartMode)等の符号化ブロック単位の符号化情報に加えて、予測ブロック単位の符号化情報に関するシンタックス要素の値を算出する。予測モード(PredMode)がイントラ予測の場合、イントラ輝度予測モード、及びイントラ色差予測モードを含むイントラ予測モードに関するシンタックス要素の値を算出し、予測モード(PredMode)がインター予測の場合、インター予測モード、参照画像を特定する情報、動きベクトル等のインター予測情報に関するシンタックス要素の値を算出する。算出された各シンタックス要素の値をシンタックス規則に従って、可変長符号化、算術符号化等によるエントロピー符号化を行い、第2の符号化ビット列を生成し、符号化された第2の符号化ビット列を符号化ビット列多重化部115に供給する。なお、第2の符号化ビット列生成部113で行われるイントラ輝度予測モード、及びイントラ色差予測モードに関するシンタックス要素の算出、及びエントロピー符号化処理に関する詳細な処理内容については後述する。
第3の符号化ビット列生成部114は、直交変換及び量子化された残差信号を規定のシンタックス規則に従って可変長符号化、算術符号化等によるエントロピー符号化を行い、第3の符号化ビット列を生成して、第3の符号化ビット列を符号化ビット列多重化部115に供給する。
符号化ビット列多重化部115で、第1の符号化ビット列と第2の符号化ビット列、及び第3の符号化ビット列を規定のシンタックス規則に従って多重化してビットストリームを生成し、多重化されたビットストリームを出力する。
逆量子化・逆直交変換部108は、直交変換・量子化部107から供給された直交変換・量子化された残差信号を逆量子化及び逆直交変換して残差信号を算出し、復号画像信号重畳部109に供給する。復号画像信号重畳部109は、符号化方法決定部105による決定に応じてイントラ予測またはインター予測された予測信号と逆量子化・逆直交変換部108で逆量子化及び逆直交変換された残差信号を重畳して復号画像を生成し、復号画像メモリ111に格納する。なお、復号画像に対して符号化によるブロック歪等を減少させるフィルタリング処理を施して、復号画像メモリ111に格納されることもある。
図2は図1の動画像符号化装置に対応した実施の形態に係る動画像復号装置の構成を示すブロックである。実施の形態の動画像復号装置は、符号化ビット列分離部201、第1の符号化ビット列復号部202、第2の符号化ビット列復号部203、第3の符号化ビット列復号部204、色差フォーマット管理部205、イントラ予測部206、インター予測部207、逆量子化・逆直交変換部208、復号画像信号重畳部209、符号化情報格納メモリ210、復号画像メモリ211、およびスイッチ212、213を備える。
符号化ビット列分離部201に供給されるビットストリームは規定のシンタックスの規則に従って分離し、シーケンス、ピクチャ、及びスライス単位の符号化情報を示す第1の符号化ビット列が第1の符号化ビット列復号部202に供給され、符号化ブロック単位の符号化情報を含む第2の符号化ビット列が第2の符号化ビット列復号部203に供給され、直交変換及び量子化された残差信号を含む第3の符号化ビット列が第3の符号化ビット列復号部204に供給される。
第1の符号化ビット列復号部202は、シンタックス規則に従って、供給された第1の符号化ビット列をエントロピー復号して、シーケンス、ピクチャ、及びスライス単位の符号化情報に関するシンタックス要素のそれぞれの値を得る。シンタックス要素の意味、導出方法を定義するセマンティクス規則に従って、復号されたシーケンス、ピクチャ、及びスライス単位の符号化情報に関するシンタックス要素の値から、シーケンス、ピクチャ、及びスライス単位の符号化情報を算出する。第1の符号化ビット列復号部202は符号化側の第1の符号化ビット列生成部112に対応する符号化ビット列復号部であり、第1の符号化ビット列生成部112で符号化されたシーケンス、ピクチャ、及びスライス単位の符号化情報を含む符号化ビット列からそれぞれの符号化情報に戻す機能を有する。第1の符号化ビット列生成部112で符号化された色差フォーマット情報は第1の符号化ビット列復号部202で第2の符号化ビット列をエントロピー復号することにより得られる色差フォーマット情報に関するシンタックス要素の値から算出する。図10に示すシンタックス規則、及びセマンティクス規則に従って、シンタックス要素chroma_format_idcの値から色差フォーマットの種類を特定し、シンタックス要素chroma_format_idcの値が0はモノクロ、1は4:2:0、2は4:2:2、3は4:4:4となる。さらに、シンタックス要素chroma_format_idcの値が3の時にはシンタックス要素separate_colour_plane_flagを復号して、輝度信号と色差信号が別々に符号化されているかどうかを判別する。算出された色差フォーマット情報は色差フォーマット管理部205に供給される。
色差フォーマット管理部205は、供給された色差フォーマット情報を管理する。供給された色差フォーマット情報は第2の符号化ビット列復号部203に供給され、色差フォーマット情報に基づいた符号化ブロック、及び予測ブロックの符号化情報の算出処理が行われる。なお、図に明示していないが、第3の符号化ビット列復号部204、図2のイントラ予測部206、インター予測部207、逆量子化・逆直交変換部208、復号画像信号重畳部209でもこの色差フォーマット情報に基づいた復号処理が行われ、符号化情報格納メモリ210、復号画像メモリ211ではこの色差フォーマット情報に基づいて管理される。
第2の符号化ビット列復号部203は、シンタックス規則に従って、供給された第1の符号化ビット列をエントロピー復号して、符号化ブロック、及び予測ブロック単位の符号化情報に関するシンタックス要素のそれぞれの値を得る。シンタックス要素の意味、導出方法を定義するセマンティクス規則に従って、供給された符号化ブロック単位、及び予測ブロック単位の符号化情報に関するシンタックス要素の値から、符号化ブロック単位、及び予測ブロック単位の符号化情報を算出する。第2の符号化ビット列復号部203は符号化側の第2の符号化ビット列生成部113に対応する符号化情報算出部であり、第2の符号化ビット列生成部113で符号化された符号化ブロック、及び予測ブロック単位の符号化情報を含む第2の符号化ビット列からそれぞれの符号化情報に戻す機能を有する。具体的には、第2の符号化ビット列を規定のシンタックス規則に従って復号することにより得られる各シンタックス要素から、符号化ブロックの分割方法、予測モード(PredMode)、分割モード(PartMode)に加えて、予測モード(PredMode)がイントラ予測の場合、イントラ輝度予測モード、及びイントラ色差予測モードを含むイントラ予測モードを得る。一方、予測モード(PredMode)がインター予測の場合、インター予測モード、参照画像を特定する情報、動きベクトル等のインター予測情報を得る。予測モード(PredMode)がイントラ予測の場合、スイッチ212を通じて、イントラ輝度予測モード、及びイントラ色差予測モードを含むイントラ予測モードをイントラ予測部206に供給し、予測モード(PredMode)がインター予測の場合、スイッチ212を通じて、インター予測モード、参照画像を特定する情報、動きベクトル等のインター予測情報をインター予測部207に供給する。なお、第2の符号化ビット列復号部203で行われるエントロピー復号処理、及びイントラ輝度予測モード、及びイントラ色差予測モードに関するシンタックス要素からのイントラ輝度予測モード、及びイントラ色差予測モードの値の算出処理に関する詳細な処理については後述する。
第3の符号化ビット列復号部204は、供給された符号化ビット列を復号して直交変換・量子化された残差信号を算出し、直交変換・量子化された残差信号を逆量子化・逆直交変換部208に供給する。
イントラ予測部206は、供給されるイントラ輝度予測モード、及びイントラ色差予測モードを含むイントラ予測モードに応じて復号画像メモリ211に格納されている復号済みの周辺ブロックからイントラ予測により予測画像信号を生成し、スイッチ213を介して、予測画像信号を復号画像信号重畳部209に供給する。なお、イントラ予測を行う単位については後述する。
インター予測部207は、供給されるインター予測モード、参照ピクチャを特定する情報、動きベクトル等のインター予測情報を用いて復号画像メモリ211に格納されている復号済みの参照ピクチャから動き補償を用いたインター予測により予測画像信号を生成し、スイッチ213を介して、予測画像信号を復号画像信号重畳部209に供給する。なお、両予測の場合は、L0予測、L1予測の2つの動き補償予測画像信号に適応的に重み係数を乗算して重畳し、最終的な予測画像信号を生成する。
逆量子化・逆直交変換部208は、第3の符号化ビット列復号部204で復号された直交変換・量子化された残差信号に対して逆直交変換及び逆量子化を行い、逆直交変換・逆量子化された残差信号を得る。
復号画像信号重畳部209は、イントラ予測部206、またはインター予測部207で予測された予測画像信号と、逆量子化・逆直交変換部208により逆直交変換・逆量子化された残差信号とを重畳することにより、復号画像信号を復号し、復号画像メモリ211に格納する。復号画像メモリ211に格納する際には、復号画像に対して符号化によるブロック歪等を減少させるフィルタリング処理を施して、復号画像メモリ211に格納されることもある。復号画像メモリ211に格納された復号画像信号は、出力順で出力される。
次に、実施の形態のポイントのひとつであるイントラ予測の予測処理単位について詳細に説明する。
まず、本実施例における直交変換の最小単位について説明する。画像符号化においては、低周波数成分の画質劣化は目立ちやすいが、高周波数成分の画質劣化は目立ちにくいという特性を利用して、低周波数成分よりも高周波数成分を粗く量子化することで、符号量を削減する。しかし、2×2変換は充分に周波数成分に分けることが困難なため、符号量の削減効果が低い。また、イントラ予測、変換、量子化のそれぞれの処理単位が小さくしすぎると対応する処理単位の数が増大するため処理が複雑になる。そこで、本実施例においては、直交変換の最小単位を4×4画素とする。
次に、本実施例におけるイントラ予測の最小単位、即ちイントラ予測の場合の予測ブロックの最小サイズについて説明する。イントラ予測では同一画面内の周囲の復号済みのブロックの画素値から処理対象ブロックの画素値を予測するため、後続のブロックの符号化、復号処理の前に、復号処理を完了させる必要がある。具体的には、イントラ予測した予測信号を用いて、残差信号を算出し、その残差信号に直交変換、量子化、及び逆量子化、逆変換を行って、予測信号と重畳することにより、復号処理が完了し、後続のブロックがイントラ予測可能な状態になる。したがって、イントラ予測は最小の変換ブロックのサイズと同一かそれよりも大きい単位で行う必要がある。なぜなら、最小の変換ブロックのサイズよりも小さな単位でイントラ予測を行うと、その後に直交変換ができず、復号処理を行うことができないからである。したがって、本実施例においては、イントラ予測の最小単位、即ちイントラ予測の際の予測ブロックの最小サイズも直交変換の最小単位と同様に4×4画素とする。
次に、本実施例における符号化ブロックの最小サイズについて説明する。最小符号化ブロックでは、予測モード(PredMode)がイントラ予測(MODE_INTRA)、インター予測共に分割モード(PartMode)がN×N分割を定義している。N×N分割は符号化ブロックの輝度信号を水平と垂直の均等分割により4つの予測ブロックとする分割モード(PartMode)であるが、本実施例においてはイントラ予測の最小単位を4×4画素としているので、符号化ブロックの最小サイズは輝度信号で8×8画素とする。
次に、イントラ予測の際のN×N分割での符号化ブロックの色差信号の分割方法について説明する。図11はイントラ予測の際のN×N分割での符号化ブロックの色差信号の分割方法を説明する図である。
色差フォーマットが4:2:0の場合、符号化ブロックの最小サイズが輝度信号で8×8画素とすると、符号化ブロックの最小サイズが色差信号で4×4画素となり、これ以上分割することができない。したがって、本実施の形態においては、色差フォーマットが4:2:0の場合、予測モードがイントラ予測で、分割モード(PartMode)がN×N分割の際に、図11(a)に示すように、輝度信号では符号化ブロックを水平と垂直の均等分割により4つの予測ブロックとして4×4画素単位でイントラ予測を行うが、色差信号では図11(b)に示すように、符号化ブロックを分割せずに、1つの予測ブロックとして輝度信号の予測ブロックのサイズと同じく4×4画素単位でイントラ予測を行う。なお、色差信号の予測ブロックの分割インデックスPartIdxを0と設定する。
また、色差フォーマットが4:2:2の場合、符号化ブロックの最小サイズが輝度信号で8×8画素とすると、符号化ブロックの最小サイズが色差信号で4×8画素となるので、水平に均等分割することはできるが、垂直に均等分割することはできない。したがって、本実施の形態においては、色差フォーマットが4:2:2の場合、予測モードがイントラ予測で、分割モード(PartMode)がN×N分割の際に、図11(a)に示すように、輝度信号では符号化ブロックを水平と垂直の均等分割により4つの予測ブロックとして4×4画素単位でイントラ予測を行うが、色差信号では図11(c)に示すように、符号化ブロックを水平にのみ均等分割して垂直には分割せずに、2つの予測ブロックとして同じく4×4画素単位でイントラ予測を行う。なお、色差信号の予測ブロックの分割インデックスPartIdxを符号化順序で(上から下の順序で)、0、及び2と設定する。下のブロックの分割インデックスPartIdxを2とした理由は、色差信号の下の予測ブロックは輝度信号の分割インデックスPartIdxが2の予測ブロックと同一位置にあるからである。
色差信号の予測ブロックと輝度信号の予測ブロックが同一位置にあるとは、予測ブロックの左上端の画素の座標を基準位置としたとき、色差信号の予測ブロックと輝度信号の予測ブロックの基準位置が同一であることをいう。
また、色差フォーマットが4:4:4の場合、符号化ブロックの最小サイズが輝度信号で8×8画素とすると、符号化ブロックの最小サイズが色差信号で8×8画素となるので、輝度信号と同様に、水平と垂直の均等分割により4つの予測ブロックとする事ができる。したがって、本実施の形態においては、色差フォーマットが4:4:4の場合、予測モードがイントラ予測で、分割モード(PartMode)がN×N分割の際に、図11(a)に示すように、輝度信号では符号化ブロックを水平と垂直の均等分割により4つの予測ブロックとして4×4画素単位でイントラ予測を行うとともに、色差信号でも図11(c)に示すように、符号化ブロックを水平と垂直の均等分割により4つの予測ブロックとして4×4画素単位でイントラ予測を行う。なお、輝度信号と同様に、色差信号の予測ブロックの分割インデックスPartIdxも符号化順序で(左上、右上、左下、右下の順序で)、0、1、2、3とする。
実施の形態においては、色差フォーマットの種類にかかわらず、輝度信号の予測ブロックの分割インデックスPartIdxと色差信号の予測ブロックの分割インデックスPartIdxとの値が同一の場合、輝度信号の予測ブロックの位置を示す座標(予測ブロックの一番左上の画素の座標)と、色差信号の予測ブロックの位置を示す座標(予測ブロックの一番左上の画素の座標)も同一となるので、同じ位置にあるものとする。
次に、色差フォーマットが4:2:0の場合にインター予測のN×N分割で符号化ブロックを輝度信号、色差信号共に4分割して輝度信号は4×4画素、色差信号は2×2画素の予測ブロックとした場合について考える。インター予測では輝度信号、色差信号共に共通の符号化情報を用いて、動き補償によるインター予測を行う。ただし、色差フォーマットが4:2:0の色差信号の動き補償においては、輝度信号が基準の動きベクトルの値の大きさを水平、垂直成分共に半分にスケーリングした値を用いる。インター予測では、イントラ予測とは異なり、同一画像内の周辺のブロックの復号信号を用いないので、直交変換処理単位よりも小さいインター予測処理単位を用いることが可能である。そのため、予測ブロックよりも大きい単位で直交変換を行うことができるので、色差信号でも符号化ブロックを4分割して2×2画素単位でインター予測を行ったとしても、必ずしも2×2画素単位で直交変換を行う必要はなく、4つの予測ブロックのインター予測を行ってから、4つの予測ブロックを結合して、4×4画素単位の残差信号を算出し、4×4画素単位で直交変換を行うことができる。
したがって、インター予測のN×N分割においては、色差フォーマットの種類に拘わらず輝度信号、色差信号共に水平、垂直共に均等分割して4つの予測ブロックとするものとする。
次に、図1の第2の符号化ビット列生成部113で行われる符号化ブロック、及び予測ブロック単位での符号化情報の符号化処理について実施の形態の特徴であるイントラ予測モードに係わるポイントを中心に説明する。図12は図1の第2の符号化ビット列生成部113の構成を示すブロック図である。
図12に示すように、図1の第2の符号化ビット列生成部113は、符号化ブロック単位の符号化情報に関するシンタックス要素算出部121、イントラ輝度予測モードに関するシンタックス要素算出部122、イントラ色差予測モードに関するシンタックス要素算出部123、インター予測情報に関するシンタックス要素算出部124、イントラ予測モード符号化制御部125、エントロピー符号化部126から構成されている。第2の符号化ビット列生成部113を構成する各部においては、色差フォーマット設定部101から供給される色差フォーマット情報に応じた処理が行われるとともに、符号化ブロック単位の予測モード、分割モード(PartMode)等の符号化情報に応じた処理が行われる。
符号化ブロック単位の符号化情報に関するシンタックス要素算出部121は、符号化ブロック単位の符号化情報に関するシンタックス要素の値を算出し、算出した各シンタックス要素の値をエントロピー符号化部126に供給する。符号化ブロックのイントラ予測(MODE_INTRA)、またはインター予測(MODE_INTER)を判別する予測モード(PredMode)、及び、予測ブロックの形状を判別する分割モード(PartMode)に関するシンタックス要素の値はこの符号化ブロック単位の符号化情報のシンタックス要素算出部121で算出される。
イントラ輝度予測モードに関するシンタックス要素算出部122は、符号化ブロックの予測モード(PredMode)がイントラ予測(MODE_INTRA)の場合に、輝度信号の予測ブロックのイントラ輝度予測モードに関するシンタックス要素の値をそれぞれ算出し、算出した各シンタックス要素の値をエントロピー符号化部126に供給する。イントラ輝度予測モードに関するシンタックス要素は周辺のブロックのイントラ輝度予測モードから予測できるかどうかを示すフラグであるシンタックス要素prev_intra_luma_pred_flag[ x0 ][ y0 ]、予測元の予測ブロックを指し示すインデックスであるシンタックス要素mpm_idx[ x0 ][ y0 ]、及び予測ブロック単位のイントラ輝度予測モードを示すシンタックス要素rem_intra_luma_pred_mode[ x0 ][ y0 ]である。なお、x0, 及びy0は予測ブロックの位置を示す座標である。イントラ輝度予測モードに関するシンタックス要素の値の算出においては、符号化情報格納メモリ110に格納されている周辺のブロックのイントラ輝度予測モードとの相関性を利用し、周辺のブロックのイントラ輝度予測モードから予測できる場合はその値を用いることを示すフラグであるシンタックス要素prev_intra_luma_pred_flag[ x0 ][ y0 ]を1(真)に設定して、予測元の予測ブロックを指し示すインデックスであるシンタックス要素mpm_idx[ x0 ][ y0 ]に参照先を特定する値を設定し、予測できない場合には、prev_intra_luma_pred_flag[ x0 ][ y0 ]を0(偽)に設定して、符号化するイントラ輝度予測モードを示すシンタックス要素rem_intra_luma_pred_mode[ x0 ][ y0 ]にイントラ輝度予測モードを特定する値を設定する。
なお、分割ブロックに応じて符号化ブロック内の予測ブロックのイントラ輝度予測モードの数が異なり、分割モード(PartMode)が2N×2N分割の場合、符号化ブロック毎に1セットの予測ブロックのイントラ輝度予測モードに関するシンタックス要素の値を算出し、分割モードがN×N分割の場合、符号化ブロック毎に4セットの予測ブロックのイントラ輝度予測モードに関するシンタックス要素の値を算出する。
イントラ色差予測モードに関するシンタックス要素算出部123は、符号化ブロックの予測モード(PredMode)がイントラ予測(MODE_INTRA)の場合に、色差信号の予測ブロックのイントラ色差予測モードに関するシンタックス要素intra_chroma_pred_mode[ x0 ][ y0 ]の値を算出し、算出したシンタックス要素intra_chroma_pred_mode[ x0 ][ y0 ]の値をエントロピー符号化部126に供給する。イントラ色差予測モードに関するシンタックス要素の値の算出においては、色差信号の予測ブロックと同じ位置の輝度信号の予測ブロックのイントラ輝度予測モードとの相関性を利用し、イントラ色差予測モードが色差信号の予測ブロックと同じ位置の輝度信号の予測ブロックのイントラ輝度予測モードから予測できる場合はイントラ輝度予測モードの値からイントラ色差予測モードの値を予測し、イントラ輝度予測モードからイントラ色差予測モードを予測できない場合に、イントラ色差予測モードに代表的なイントラ予測モードである0(水平方向)、1(水平方向),2(平均値),3(斜め45度)のいずれかの値を設定する仕組みを用いることにより、符号量を削減する。
ここで、復号側で、イントラ輝度予測モードの値とイントラ色差予測モードに関するシンタックス要素の値からイントラ色差予測モードの値を予測する方法について説明する。図14は本実施例で規定するイントラ色差予測モードに関するシンタックス要素intra_chroma_pred_mode[ x0 ][ y0 ]の値と色差信号の予測ブロックと同じ位置の予測ブロックのイントラ輝度予測モードの値からイントラ色差予測モードの値を算出する変換テーブルであり、この変換テーブルを用いて、復号側では、イントラ色差予測モードの値を算出する。
シンタックス要素intra_chroma_pred_mode[ x0 ][ y0 ]の値が0の場合、色差フォーマットに応じて、色差信号の予測ブロックと同じ位置の予測ブロックのイントラ輝度予測モードの値からイントラ色差予測モードの値が予測される。
色差フォーマットが4:2:0または4:4:4でシンタックス要素intra_chroma_pred_mode[ x0 ][ y0 ]の値が0の場合、色差信号の予測ブロックと同じ位置の予測ブロックのイントラ輝度予測モードの値がそのまま、イントラ色差予測モードの値となる。
色差フォーマットが4:2:2でシンタックス要素intra_chroma_pred_mode[ x0 ][ y0 ]の値が0の場合、図15に示す変換テーブルにより、色差信号の予測ブロックと同じ位置の予測ブロックのイントラ輝度予測モードの値に応じて、イントラ色差予測モードの値を算出する。図15は本実施例で規定する色差フォーマットが4:2:2で、色差信号の予測ブロックと同じ位置の予測ブロックのイントラ輝度予測モードの値から、イントラ色差予測モードの値を予測するための変換テーブルである。
色差フォーマットが4:2:2の場合に、イントラ輝度予測モードの値からイントラ色差予測モードの値を予測する際に、4:2:0や、4:4:4の様にそのままの値とせず、図15の変換テーブルを用いて算出する理由について説明する。色差フォーマットが4:2:2では、図3(b)に示すように輝度信号に対して色差信号が水平方向に2分の1の密度、垂直方向に同じ密度で標本化された色差フォーマットである。したがって、イントラ輝度予測モードのそれぞれの予測方向に対して、水平方向に2分の1倍にスケーリングした予測方向、またはその近傍の予測方向で色差信号のイントラ予測を行うと、色差信号の予測ブロックと同じ位置の予測ブロックの輝度信号のイントラ予測と等価、または等価に近くなる。
このことを図27を参照してより詳しく説明する。図27は色差フォーマットが4:2:2の場合の輝度信号、及び色差信号のイントラ予測の予測方向の対応関係を説明する図である。図27において、×は輝度信号の画素の位置、○は色差信号の画素の位置を示す。4:2:2では、輝度信号に対して色差信号は水平方向に1/2で標本化(サンプリング)されている。図27(a)は4:2:2の輝度信号と色差信号の標本化された画素の位置を示す。符号P1はイントラ予測される画素、符号P2はイントラ予測の際に参照する画素(実際にはフィルタリングされるので隣の画素も参照する)である。符号2701に示す画素P1から画素P2への矢印は、輝度信号の画素P1のイントラ予測方向を示す。
図27(b)は、水平方向に1/2でサンプリングされた色差信号の画素の配列を示す。ここで、色差信号のイントラ予測の際に、水平方向に1/2のスケーリングを行わなかった場合、色差信号の画素P1のイントラ予測方向は符号2702で示す矢印の方向となってしまい、色差信号の画素配列において、誤って符号P3の画素を参照することになってしまう。しかし、正しい参照先は符号P2の画素である。そこで、輝度信号のイントラ予測方向を水平方向に1/2倍のスケーリングを行い、色差信号のイントラ予測方向とすることで、符号2703に示すように、色差信号の配列における正しいイントラ予測方向を算出し、イントラ予測方向の先に正しい参照先である上側に隣接している画素を取得する。
図27(a)、(b)では予測ブロックの上側に隣接する画素を参照している場合を説明したが、左側に隣接する画素を参照している場合でも同様である。左側に隣接する画素の場合は、輝度信号のイントラ予測方向を垂直方向に2倍にスケーリングする(これは垂直方向に1/2倍にスケーリングすることとベクトルの方向を求める意味では等価である)ことで、色差信号の配列における正しいイントラ予測方向を算出し、イントラ予測方向の先に正しい参照先である左側に隣接している画素(一部上側に隣接している画素も含む)を取得する。
したがって、図15の変換テーブルでは、図8の点線の矢印に示すように、参照先が水平方向(水平軸上)に並んでいるイントラ輝度予測モードの値が3、18、10、19、4,20、11、21、0、22、12,23,5,24、13、25、6のとき、それらの値を水平方向に2分の1倍にスケーリングすることにより算出した予測方向に最も近い予測方向のイントラ色差予測モードの値を選択し、イントラ色差予測モードの値をそれぞれ、19、4、20、20、11、11、21、0、0、0、22、12、12、23、23、5、24とする。また、イントラ予測の予測方向を水平方向に2分の1倍にスケーリングすることは、垂直方向に2倍にスケーリングすることと等価である。したがって、イントラ輝度予測モードのそれぞれの予測方向に対して、垂直方向に2倍にスケーリングした予測方向、またはその近傍の予測方向で色差信号のイントラ予測を行うと、色差信号の予測ブロックと同じ位置の予測ブロックの輝度信号のイントラ予測と等価、または等価に近くなる。したがって、図15の変換テーブルでは、図8に示すように、参照先が垂直方向(垂直軸上)に並んでいるイントラ輝度予測モードの値が26、14,27、7、28、15、29、1、30、16、31、8、32、17、33、9のとき、垂直方向に2倍にスケーリングすることにより算出した予測方向に最も近い予測方向のイントラ色差予測モードの値を選択し、イントラ色差予測モードの値を10、18、3、26、27、28、15、1、16、31、32、33、9、9、9、9とする。
一方、色差フォーマットが4:2:0または4:4:4の場合は、イントラ輝度予測モードの値からイントラ色差予測モードの値を予測する際に、輝度信号のイントラ予測方向と色差信号のイントラ予測方向が一致するので、イントラ輝度予測モードの値をイントラ色差予測モードの値に変換する必要はない。このことを図28を参照して説明する。図28は色差フォーマットが4:2:0の場合の輝度信号、及び色差信号のイントラ予測の予測方向の対応関係を説明する図である。図28(a)は、色差フォーマットが4:2:0の場合の輝度信号と色差信号の配置を示すものであり、色差信号は輝度信号に対して水平、垂直ともに1/2で標本化(サンプリング)されている。符号2704に示す画素P1から画素P2への矢印は、輝度信号の画素P1のイントラ予測方向を示す。この場合、図28(b)に示す色差信号の配列においても、輝度信号のイントラ予測方向はそのまま、符号2705に示すように、色差信号のイントラ予測方向であり、色差信号の画素P1の参照先の画素P2を正しく参照することができる。
なお、イントラ予測部103でも以上の点を考慮して、イントラ色差予測モードの値を予測する場合、色差フォーマットに応じて、色差信号の予測ブロックと同じ位置の予測ブロックのイントラ輝度予測モードの値からイントラ色差予測モードの値を予測する。すなわち、色差フォーマットが4:2:0または4:4:4でイントラ色差予測モードの値を予測する場合、色差信号の予測ブロックと同じ位置の予測ブロックのイントラ輝度予測モードの値をそのまま、イントラ色差予測モードの値とする。色差フォーマットが4:2:2でイントラ色差予測モードの値を予測する場合、図15に示す変換テーブルにより、色差信号の予測ブロックと同じ位置の予測ブロックのイントラ輝度予測モードの値に応じて、イントラ色差予測モードの値を算出する。
シンタックス要素intra_chroma_pred_mode[ x0 ][ y0 ]の値が1から4の場合、シンタックス要素intra_chroma_pred_mode[ x0 ][ y0 ]の値と色差信号の予測ブロックと同じ位置の予測ブロックのイントラ輝度予測モードの値との組み合わせで、イントラ色差予測モードの値を算出する。
シンタックス要素intra_chroma_pred_mode[ x0 ][ y0 ]の値が1の場合、色差信号の予測ブロックと同じ位置の予測ブロックのイントラ輝度予測モードの値に応じて、イントラ色差予測モードの値は0または1の値をとる。
シンタックス要素intra_chroma_pred_mode[ x0 ][ y0 ]の値が2の場合、色差信号の予測ブロックと同じ位置の予測ブロックのイントラ輝度予測モードの値に応じて、イントラ色差予測モードの値は1または2の値をとる。
シンタックス要素intra_chroma_pred_mode[ x0 ][ y0 ]の値が3の場合、色差信号の予測ブロックと同じ位置の予測ブロックのイントラ輝度予測モードの値に応じて、イントラ色差予測モードの値は2または3の値をとる。
シンタックス要素intra_chroma_pred_mode[ x0 ][ y0 ]の値が4の場合、イントラ色差予測モードの値は3の値をとる。
図16はイントラ色差予測モードの値と色差信号の予測ブロックと同じ位置の予測ブロック、即ち同じ予測ユニットに属する輝度信号の予測ブロックのイントラ輝度予測モードの値からイントラ色差予測モードに関するシンタックス要素intra_chroma_pred_mode[ x0 ][ y0 ]の値を算出する変換テーブルであり、図16の変換テーブルは図14の変換テーブルに対応している。この図16に示す変換テーブルを用いて、符号化側では、シンタックス要素intra_chroma_pred_mode[ x0 ][ y0 ]の値を算出する。
イントラ色差予測モードの値が0の場合、色差信号の予測ブロックと同じ位置の予測ブロックのイントラ輝度予測モードの値に応じて、シンタックス要素intra_chroma_pred_mode[ x0 ][ y0 ]の値は0または1の値をとる。
イントラ色差予測モードの値が1の場合、色差信号の予測ブロックと同じ位置の予測ブロックのイントラ輝度予測モードの値に応じて、シンタックス要素intra_chroma_pred_mode[ x0 ][ y0 ]の値は0、1または2の値をとる。
イントラ色差予測モードの値が2の場合、色差信号の予測ブロックと同じ位置の予測ブロックのイントラ輝度予測モードの値に応じて、シンタックス要素intra_chroma_pred_mode[ x0 ][ y0 ]の値は0、2または3の値をとる。
イントラ色差予測モードの値が3の場合、色差信号の予測ブロックと同じ位置の予測ブロックのイントラ輝度予測モードの値に応じて、シンタックス要素intra_chroma_pred_mode[ x0 ][ y0 ]の値は0、3または4の値をとる。
イントラ色差予測モードの値が4から33までの場合、イントラ色差予測モードが同じ位置の予測ブロックのイントラ輝度予測モードの値から予測されることを示し、シンタックス要素intra_chroma_pred_mode[ x0 ][ y0 ]の値は0の値をとる。ただし、色差フォーマットが4:2:2でイントラ色差予測モードの値を予測する場合、イントラ予測部103では、図15に示す変換テーブルにより、色差信号の予測ブロックと同じ位置の予測ブロックのイントラ輝度予測モードの値に応じて、イントラ色差予測モードの値を算出しているので、イントラ色差予測モードの値は4、5、9、10、11、12、15、16、18、19、20、21、22、23、24、26、27、28、31、32、33のいずれかの値だけをとり得る。
なお、色差信号の予測ブロックと同じ位置の輝度信号の予測ブロックを特定する際には、それぞれの予測ブロックを特定する分割インデックスPartIdxを参照することにより特定してもよいし、それぞれの予測ブロックの位置を示す座標を参照することにより特定してもよい。
なお、色差フォーマット設定部101から供給される色差フォーマットの種類に応じて符号化ブロック内の予測ブロックのイントラ色差予測モードの数が異なるので、色差フォーマットが4:2:0の場合、符号化ブロック毎に1つの予測ブロックのイントラ色差予測モードに関するシンタックス要素の値を算出する。
なお、分割モードと色差フォーマットの組み合わせ応じて符号化ブロック内の予測ブロックのイントラ色差予測モードの数が異なり、分割モードが2N×2N分割の場合、色差フォーマットの種類にかかわらず、符号化ブロック毎に1個の予測ブロックのイントラ色差予測モードに関するシンタックス要素の値を算出する。分割モードがN×N分割で色差フォーマットが4:2:0の場合、符号化ブロック毎に1個の予測ブロックのイントラ輝度予測モードに関するシンタックス要素の値を算出する。分割モードがN×N分割で色差フォーマットが4:2:2の場合、符号化ブロック毎に2個の予測ブロックのイントラ輝度予測モードに関するシンタックス要素の値を算出する。分割モードがN×N分割で色差フォーマットが4:4:4の場合、符号化ブロック毎に4個の予測ブロックのイントラ輝度予測モードに関するシンタックス要素の値を算出する。
インター予測情報のシンタックス要素算出部124は、符号化ブロックの予測モード(PredMode)がインター予測(MODE_INTER)の場合に、予測ブロック単位のインター予測情報に関するシンタックス要素の値を算出し、算出した各シンタックス要素の値をエントロピー符号化部126に供給する。予測ブロック単位のインター予測情報には、インター予測モード(L0予測、L1予測、両予測)、複数の参照画像を特定するインデックス、動きベクトル等の情報が含まれる。
エントロピー符号化部126は、
符号化ブロック単位の符号化情報に関するシンタックス要素算出部121から供給される符号化ブロック単位の符号化情報に関するシンタックス要素の値、
イントラ輝度予測モードに関するシンタックス要素算出部122から供給される輝度信号の予測ブロックのイントラ輝度予測モードに関するシンタックス要素の値、
イントラ色差予測モードに関するシンタックス要素算出部123から供給される色差信号の予測ブロックのイントラ色差予測モードに関するシンタックス要素の値、及び
インター予測情報のシンタックス要素算出部124から供給される予測ブロック単位のインター予測情報に関するシンタックス要素の値を既定のシンタックス規則に従ってエントロピー符号化する。その際、イントラ予測モード符号化制御部125は分割モードと色差フォーマットに応じて、イントラ輝度予測モードとイントラ色差予測モードのエントロピー符号化の順序を制御し、エントロピー符号化部126はそのイントラ予測モード符号化制御部125で指示された順序で、イントラ輝度予測モードとイントラ色差予測モードのエントロピー符号化処理を行う。
イントラ予測モード符号化制御部125で制御されるエントロピー符号化部126でのN×N分割の際のイントラ輝度予測モードとイントラ色差予測モードのエントロピー符号化の順序について説明する。図17は実施の形態によるイントラ輝度予測モード、及びイントラ色差予測モードに関するシンタックス要素のエントロピー符号化または復号順序を示す図である。図17(a)、図17(b)、図17(c)は色差フォーマットがそれぞれ4:2:0、4:2:2、4:4:4の場合のエントロピー符号化及び復号順序を示す。また、L0、L1、L2、L3は輝度信号の分割インデックスPartIdxがそれぞれ0、1、2、3のイントラ輝度予測モードに関するシンタックス要素であることを示し、C0、C1、C2、C3は色差信号の分割インデックスPartIdxがそれぞれ0、1、2、3の予測ブロックのイントラ色差予測モードに関するシンタックス要素であることを示している。
色差フォーマットが4:2:0の場合、L0が符号化された直後に、C0が符号化され、続いて、L1、L2、L3が符号化される。(C1、C2、C3は存在せず、符号化されない。)
色差フォーマットが4:2:2の場合、L0が符号化され、L0の直後にC0が符号化され、続いて、L1、L2が符号化され、L2の直後にC2が符号化され、続いてL3が符号化される。(C1、C3は存在せず、符号化されない。)
色差フォーマットが4:4:4の場合、L0が符号化され、L0の直後にC0が符号化され、続いて、L1、C1、L2、C2、L3、C3の順序で符号化される。
すなわち、同じ予測ユニットに属するインター輝度予測モードとイントラ色差予測モードが連続して符号化される。
図17に示す符号化順序でエントロピー符号化する場合は下記の様な利点がある。
1つ目の利点として、復号側で符号化ビット列をエントロピー復号して得られるイントラ色差予測モードに関するシンタックス要素の値からイントラ色差予測モードの値を算出する際に、処理が単純であるという点を上げることができる。
図17に示す符号化順序では、予測モード、分割モード、色差フォーマットに関わらず常に直前に符号化されたイントラ輝度予測モードに関するシンタックス要素から算出されたイントラ予測モードの値を参照してイントラ色差予測モードを算出することになり、処理を単純化することができる。
2つ目の利点として、予測モードがイントラ予測で、分割モードがN×N分割の際に、復号側で色差信号の予測ブロックのイントラ予測に関わる一連の処理の遅延時間を短くできるという点を上げることができる。
図17に示す符号化順序では、輝度信号の予測ブロックのイントラ輝度予測モードに関するシンタックス要素L0をエントロピー符号化した直後に同じ予測ユニットに属する輝度信号の予測ブロックと同じ位置の色差信号の予測ブロックのイントラ色差予測モードに関するシンタックス要素C0をエントロピー符号化することにより、復号側では、輝度信号の予測ブロックのイントラ輝度予測モードに関するシンタックス要素L0をエントロピー復号した直後に輝度信号の予測ブロックと同じ位置の色差信号の予測ブロックのイントラ色差予測モードに関するシンタックス要素C0をエントロピー復号することができ、イントラ色差予測モードの算出を早く開始することができるので、その後の色差信号のイントラ予測処理も早く開始することができ、輝度信号の予測ブロックのイントラ予測と色差信号の予測ブロックのイントラ予測を並列に処理する場合に、色差信号に関するそれぞれの処理の遅延時間を短くできる。なお、色差フォーマットが4:2:2、または4:4:4の場合、C0に対応する分割インデックスPartIdxが0の色差信号の予測ブロックのイントラ予測処理を早く開始することによって、分割インデックスPartIdxが0の色差信号の予測ブロックの復号信号を参照する分割インデックスPartIdxが0以外の予測ブロックのイントラ予測処理を早く開始することができる。なお、イントラ輝度予測モードに関するシンタックス要素L1の前にイントラ色差予測モードに関するシンタックス要素C0の符号化を行うことで、復号側では、イントラ輝度予測モードに関するシンタックス要素L1、L2、L3のエントロピー復号処理の開始が遅れるが、L1に対応する予測ブロックのイントラ予測処理を開始するためには、イントラ予測の際に参照するL0に対応する予測ブロックに関する一連の復号処理(イントラ予測、逆量子化、逆直交変換)を完了する必要があるため、L1、L2、L3のエントロピー復号が遅れることのデメリットはほとんどない。
次に、図2の第2の符号化ビット列復号部203で行われる符号化ブロック、及び予測ブロック単位での符号化情報の復号処理について実施の形態の特徴であるイントラ予測モードに係わるポイントを中心に説明する。図13は図2の第2の符号化ビット列復号部203の構成を示すブロック図である。
図13に示すように、図2の第2の符号化ビット列復号部203は、イントラ予測モード復号制御部221、エントロピー復号部222、符号化ブロック単位の符号化情報算出部223、イントラ輝度予測モード算出部224、イントラ色差予測モード算出部225、インター予測情報算出部226から構成されている。第2の符号化ビット列復号部203を構成する各部においては、色差フォーマット管理部205から供給される色差フォーマット情報に応じた処理が行われるとともに、符号化ブロック単位の予測モード、分割モード等の符号化情報に応じた処理が行われる。
エントロピー復号部222は、符号化ビット列分離部から供給される符号化ブロック、及び予測ブロック単位の符号化情報を含む符号化ビット列を既定のシンタックス規則に従ってエントロピー復号して、符号化ブロック単位の符号化情報に関するシンタックス要素の値、輝度信号の予測ブロックのイントラ輝度予測モードに関するシンタックス要素の値、色差信号の予測ブロックのイントラ色差予測モードに関するシンタックス要素の値、及び予測ブロック単位のインター予測情報に関するシンタックス要素の値を得る。その際、イントラ予測モード復号制御部221は分割モードと色差フォーマットに応じて、イントラ輝度予測モードとイントラ色差予測モードのエントロピー復号の順序を制御し、エントロピー復号部222はそのイントラ予測モード復号制御部221で指示された順序で、イントラ輝度予測モードとイントラ色差予測モードのエントロピー復号処理を行う。イントラ予測モード復号制御部221は符号化側のイントラ予測モード符号化制御部125に対応する制御部であり、分割モードと色差フォーマットに応じてイントラ予測モード符号化制御部125で設定するイントラ予測モードの符号化順序と同じイントラ予測モードの復号順序を設定し、エントロピー復号部222のイントラ予測モードの復号順序を制御する。エントロピー復号部222は符号化側のエントロピー符号化部126に対応する復号部であり、エントロピー符号化部126で用いたシンタックス規則と同一の規則でエントロピー復号処理を行う。即ち、図17に示す符号化順序と同一の順序でイントラ予測モードの復号処理を行う。すなわち、同じ予測ユニットに属するインター輝度予測モードとイントラ色差予測モードが連続して復号される。
復号されて得た符号化ブロック単位の符号化情報に関するシンタックス要素の値は符号化ブロック単位の符号化情報算出部223に供給され、輝度信号の予測ブロックのイントラ輝度予測モードに関するシンタックス要素の値はイントラ輝度予測モード算出部224に供給され、色差信号の予測ブロックのイントラ色差予測モードに関するシンタックス要素の値はイントラ色差予測モード算出部225に供給され、予測ブロック単位のインター予測情報に関するシンタックス要素の値はインター予測情報算出部226に供給される。
符号化ブロック単位の符号化情報算出部223は、供給される符号化ブロック単位の符号化情報に関するシンタックス要素の値から符号化ブロック単位の符号化情報を算出し、スイッチ212を介してイントラ予測部206またはインター予測部207に供給する。
符号化ブロック単位の符号化情報算出部223は符号化側の符号化ブロック単位の符号化情報に関するシンタックス要素算出部121に対応する符号化情報算出部であり、同一のセマンティクス規則に従って算出する。符号化ブロックのイントラ予測(MODE_INTRA)、またはインター予測(MODE_INTER)を判別する予測モード(PredMode)、及び、予測ブロックの形状を判別する分割モード(PartMode)に関する値はこの符号化ブロック単位の符号化情報算出部223で算出される。
イントラ輝度予測モード算出部224は、符号化ブロック単位の符号化情報算出部223で算出された符号化ブロックの予測モード(PredMode)がイントラ予測(MODE_INTRA)の場合に、供給される輝度信号の予測ブロックのイントラ輝度予測モードに関するシンタックス要素の値から輝度信号の予測ブロックのイントラ輝度予測モードを算出し、イントラ色差予測モード算出部225に供給するとともに、スイッチ212を介してイントラ予測部206に供給する。イントラ輝度予測モード算出部224は符号化側のイントラ輝度予測モードに関するシンタックス要素算出部122に対応する符号化情報算出部であり、同一のセマンティクス規則に従って算出する。イントラ輝度予測モードに関するシンタックス要素は周辺のブロックのイントラ輝度予測モードから予測できるかどうかを示すフラグであるシンタックス要素prev_intra_luma_pred_flag[ x0 ][ y0 ]、予測元の予測ブロックを指し示すインデックスであるシンタックス要素mpm_idx[ x0 ][ y0 ]、及び予測ブロック単位のイントラ輝度予測モードを示すシンタックス要素rem_intra_luma_pred_mode[ x0 ][ y0 ]である。イントラ輝度予測モードの算出においては、符号化情報格納メモリ210に格納されている周辺のブロックのイントラ輝度予測モードとの相関性を利用し、周辺のブロックのイントラ輝度予測モードから予測できる場合はその値を用いることを示すフラグであるシンタックス要素prev_intra_luma_pred_flag[ x0 ][ y0 ]が1(真)になっており、予測元の予測ブロックを指し示すインデックスであるシンタックス要素mpm_idx[ x0 ][ y0 ]で指し示されている周辺の予測ブロックのイントラ輝度予測モードを当該予測モードのイントラ輝度予測モードとする。シンタックス要素prev_intra_luma_pred_flag[ x0 ][ y0 ]が0(偽)の場合は、周辺の予測ブロックからイントラ輝度予測モードを予測するのではなく、復号されたイントラ輝度予測モードを示すシンタックス要素rem_intra_luma_pred_mode[ x0 ][ y0 ]の値からイントラ輝度予測モードを算出する。
なお、分割モードに応じて符号化ブロック内の予測ブロックのイントラ輝度予測モードの数が異なり、分割モードが2N×2N分割の場合、符号化ブロック毎に1セットの予測ブロックのイントラ輝度予測モードの値を算出し、分割モードがN×N分割の場合、符号化ブロック毎に4セットの予測ブロックのイントラ輝度予測モードの値を算出する。
イントラ色差予測モード算出部225は、符号化ブロック単位の符号化情報算出部223で算出された符号化ブロックの予測モード(PredMode)がイントラ予測(MODE_INTRA)の場合に、供給される色差信号の予測ブロックのイントラ色差予測モードに関するシンタックス要素intra_chroma_pred_mode[ x0 ][ y0 ]の値とイントラ輝度予測モード算出部から供給されるイントラ輝度予測モードの値からイントラ色差予測モードの値を算出し、スイッチ212を介してイントラ予測部206に供給する。イントラ色差予測モード算出部225は符号化側のイントラ色差予測モードに関するシンタックス要素算出部123に対応する符号化情報算出部であり、同一のセマンティクス規則に従って算出する。イントラ色差予測モードの値の算出においては、色差信号の予測ブロックと同じ位置の輝度信号の予測ブロックのイントラ輝度予測モードとの相関性を利用し、符号化側で、イントラ色差予測モードが色差信号の予測ブロックと同じ位置の輝度信号の予測ブロックのイントラ輝度予測モードから予測できると判断された場合はイントラ輝度予測モードの値からイントラ色差予測モードの値が予測され、イントラ輝度予測モードから予測するよりもイントラ色差予測モードに独自の値を設定した方が良いと判断された場合に、イントラ色差予測モードに代表的なイントラ予測モードである0(水平方向)、1(水平方向)、2(平均値)、3(斜め45度)のいずれかの値を設定する仕組みを用いることにより、符号量が削減されている。
図14はシンタックス要素intra_chroma_pred_mode[ x0 ][ y0 ]の値と色差信号の予測ブロックと同じ位置の予測ブロックのイントラ輝度予測モードの値からイントラ色差予測モードの値を算出する変換テーブルであり、この変換テーブルを用いて、イントラ色差予測モードの値を算出する。なお、イントラ輝度予測モードは復号順序で直前に復号したイントラ輝度予測モードに関するシンタックス要素の値から算出したイントラ輝度予測モードを参照する。図17の符号化または復号順序で符号化、および復号を行うことで、参照するイントラ輝度予測モードの特定が容易になる。また、符号化側で説明したように、シンタックス要素intra_chroma_pred_mode[ x0 ][ y0 ]の値が0の場合、色差フォーマットに応じて、色差信号の予測ブロックと同じ位置の予測ブロックのイントラ輝度予測モードの値からイントラ色差予測モードの値が予測される。色差フォーマットが4:2:0または4:4:4でシンタックス要素intra_chroma_pred_mode[ x0 ][ y0 ]の値が0の場合、色差信号の予測ブロックと同じ位置の予測ブロックのイントラ輝度予測モードの値がそのまま、イントラ色差予測モードの値となる。色差フォーマットが4:2:2でシンタックス要素intra_chroma_pred_mode[ x0 ][ y0 ]の値が0の場合、図15に示す変換テーブルにより、色差信号の予測ブロックと同じ位置の予測ブロックのイントラ輝度予測モードの値から、イントラ色差予測モードの値を算出する。図15は本実施例で規定する色差フォーマットが4:2:2で、色差信号の予測ブロックと同じ位置の予測ブロックのイントラ輝度予測モードの値から、イントラ色差予測モードの値を予測するための変換テーブルである。
インター予測情報算出部226は、符号化ブロックの予測モード(PredMode)がインター予測(MODE_INTER)の場合に、予測ブロック単位のインター予測情報に関するシンタックス要素の値からインター予測情報を算出し、算出したインター予測情報の値をスイッチ212を介してインター予測部207に供給する。インター予測情報算出部226は符号化側のインター予測情報のシンタックス要素算出部124に対応する符号化情報算出部であり、同一のセマンティクス規則に従って算出する。算出される予測ブロック単位のインター予測情報には、インター予測モード(L0予測、L1予測、両予測)、複数の参照画像を特定するインデックス、動きベクトル等の情報が含まれる。
次に、本実施例で用いるシンタックス規則について実施の形態の特徴であるイントラ予測モードに係わるポイントを中心に説明する。図18は符号化側のエントロピー符号化部126、及び復号側のエントロピー復号部222で用いる符号化ブロック単位の符号化情報の符号化及び復号のためのシンタックス規則の一例であり、図19は符号化側のエントロピー符号化部126、及び復号側のエントロピー復号部222で用いる予測ユニットの符号化情報の符号化及び復号のためのシンタックス規則の一例である。
図18のx0, 及びy0は符号化ブロックの位置を示す座標である。図18は符号化ブロック単位で、分割モード(PartMode)が2N×2N分割(PART_2Nx2N)の場合に、図19に示すシンタックス規則に従って、1組の予測ユニットの符号化情報のエントロピー符号化、またはエントロピー復号を行うことを示している。さらに、分割モード(PartMode)がN×N分割(PART_NxN)の場合に、図19に示すシンタックス規則に従って、4組の予測ユニットの符号化情報のエントロピー符号化、またはエントロピー復号を行うことを示している。
図19は予測ユニットの符号化情報を符号化するシンタックス規則である。図19のx0, 及びy0は輝度信号での予測ユニット、及び予測ブロックの位置を示す座標である。図19は予測ブロック単位で、予測モード(PredMode)がイントラ予測(MODE_INTRA)の場合に、1組の予測ブロック単位のイントラ輝度予測モードに関するシンタックス要素のエントロピー符号化、またはエントロピー復号を行うことを示している。予測モード(PredMode)がイントラ予測(MODE_INTRA)の場合には、prev_intra_luma_pred_flag[ x0 ][ y0 ] のエントロピー符号化、またはエントロピー復号を行い、シンタックス要素prev_intra_luma_pred_flag[ x0 ][ y0 ]が1(真)の場合、シンタックス要素mpm_idx[ x0 ][ y0 ] のエントロピー符号化、またはエントロピー復号を行い、シンタックス要素prev_intra_luma_pred_flag[ x0 ][ y0 ]が0(偽)の場合、シンタックス要素rem_intra_luma_pred_mode[ x0 ][ y0 ]のエントロピー符号化、またはエントロピー復号を行う。
さらに、色差フォーマットと分割インデックスPartIdxに応じて、イントラ色差予測モードに関するシンタックス要素intra_chroma_pred_mode[ x0 ][ y0 ]のエントロピー符号化、またはエントロピー復号を行うことを示している。ChromaArrayTypeは色差フォーマットを示す変数であり、0がモノクロ(本来は4:4:4で輝度信号と色差信号を独立に符号化するモードも含むがこの場合本実施例ではモノクロとみなしている)、1が4:2:0、2が4:2:2、3が4:4:4を示す。
色差フォーマットが4:2:0、4:2:2、または4:4:4で(ChromaArrayTypeが0でない)分割インデックスPartIdxが0、または色差フォーマットが4:2:2( ChromaArrayTypeが2)で分割インデックスPartIdxが2、または色差フォーマットが4:4:4( ChromaArrayTypeが3)のいずれかを満たしている場合に、予測ブロック単位のイントラ色差予測モードに関するシンタックス要素intra_chroma_pred_mode[ x0 ][ y0 ]のエントロピー符号化、またはエントロピー復号を行うことを示している。すなわち、色差フォーマットが4:2:0の場合は分割インデックスPartIdxが0の場合にだけ、インター輝度予測モードに関するシンタックス要素の直後に分割インデックスPartIdxが0のインター色差予測モードに関するシンタックス要素のエントロピー符号化、またはエントロピー復号を行われ、色差フォーマットが4:2:2の場合は分割インデックスPartIdxが0または2の場合にだけ、インター輝度予測モードに関するシンタックス要素の直後に同じ分割インデックスPartIdxのインター色差予測モードに関するシンタックス要素のエントロピー符号化、またはエントロピー復号を行われ、色差フォーマットが4:4:4の場合は分割インデックスPartIdxが0、1、2、3のすべてにおいて、インター輝度予測モードに関するシンタックス要素の直後に同じ分割インデックスPartIdxのインター色差予測モードに関するシンタックス要素のエントロピー符号化、またはエントロピー復号を行われることを示している。なお、2N×2N分割(PART_2Nx2N)の場合は、分割インデックスPartIdxが0の場合に該当し、インター輝度予測モードに関するシンタックス要素の直後に分割インデックスPartIdxが0のインター色差予測モードに関するシンタックス要素のエントロピー符号化、またはエントロピー復号を行う。
次に、図1の第2の符号化ビット列生成部113で行われる符号化ブロック、及び予測ブロック単位での符号化情報の符号化処理の処理手順について実施の形態の特徴であるイントラ予測モードに係わるポイントを中心に説明する。図20は図1の第2の符号化ビット列生成部113で行われる符号化ブロック、及び予測ブロック単位の符号化処理の処理手順を説明するフローチャートである。
まず、符号化側では符号化ブロック単位の符号化情報に関するシンタックス要素算出部121で符号化ブロックの予測モードおよび分割モード等を含む符号化情報に関するシンタックス要素の値を計算し、エントロピー符号化部126でエントロピー符号化する(S1001)。続いて、符号化ブロックの予測モード(PredMode)がイントラ予測(MODE_INTRA)でない場合(S1002のNO)、ステップS1016に進み、インター予測情報に関するシンタックス要素算出部124で分割モードに応じて予測ブロック毎にインター情報に関するシンタックス要素の値を計算し、エントロピー符号化部126でエントロピー符号化して(S1016)、本符号化処理を終了する。符号化ブロックの予測モード(PredMode)がイントラ予測(MODE_INTRA)の場合(S1002のYES)、ステップS1003以降のイントラ予測モードの符号化処理に進む。
続いて、符号化ブロックの予測モードがイントラ予測の場合に、イントラ輝度予測モードに関するシンタックス要素算出部122、及びエントロピー符号化部126で輝度信号の分割インデックスPartIdxが0の予測ブロックのイントラ輝度予測モードの符号化処理を行う(S1003)。
ここで、イントラ輝度予測モードに関するシンタックス要素算出部122、及びエントロピー符号化部126で行われる輝度信号の予測ブロックのイントラ輝度予測モードの符号化処理手順について図21のフローチャートを用いて説明する。図21はイントラ輝度予測モードに関するシンタックス要素算出部122、及びエントロピー符号化部126で行われる輝度信号の予測ブロックのイントラ輝度予測モードの符号化処理手順を示すフローチャートである。まず、イントラ輝度予測モードに関するシンタックス要素算出部122で輝度信号の予測ブロックのイントラ輝度予測モードに関する各シンタックス要素の値を算出する(S1101)。この際、イントラ輝度予測モードの値を周辺のブロックのイントラ輝度予測モードと比較し、同じ値を持つ予測ブロックが存在する場合はシンタックス要素prev_intra_luma_pred_flag[ x0 ][ y0 ]の値を1(真)に設定して、予測元の予測ブロックを指し示すインデックスであるシンタックス要素mpm_idx[ x0 ][ y0 ]に参照先を特定する値を設定し、同じ値を持つ予測ブロックが存在しない場合はシンタックス要素prev_intra_luma_pred_flag[ x0 ][ y0 ]の値を0(偽)に設定して、イントラ輝度予測モードを示すシンタックス要素rem_intra_luma_pred_mode[ x0 ][ y0 ]にイントラ輝度予測モードを特定する値を設定する。続いて、エントロピー符号化部126で輝度信号の予測ブロックのイントラ輝度予測モードに関する各シンタックス要素の値をエントロピー符号化し(S1102)、本符号化処理を終了する。なお、図21の符号化処理手順は、図20のステップS1003に加えて、ステップS1007、ステップS1010、ステップS1013でも用いられる共通の符号化処理手順である。
再び、図20に戻り、続いて色差フォーマットが4:2:0、4:2:2または4:4:4の場合(S1004のYES)、イントラ色差予測モードに関するシンタックス要素算出部123、及びエントロピー符号化部126で色差信号の分割インデックスPartIdxが0の予測ブロックのイントラ色差予測モードの符号化処理を行う(S1005)。なお、色差フォーマットが4:2:0でも4:2:2でも4:4:4でもない場合、すなわち色差フォーマットがモノクロの場合(S1004のNO)、色差信号の予測ブロックは存在しないので、ステップS1005をスキップして、次のステップS1006に進む。
ここで、イントラ色差予測モードに関するシンタックス要素算出部123、及びエントロピー符号化部126で行われる色差信号の予測ブロックのイントラ色差予測モードの符号化処理手順について図22のフローチャートを用いて説明する。図22はイントラ色差予測モードに関するシンタックス要素算出部123、及びエントロピー符号化部126で行われる色差信号の予測ブロックのイントラ色差予測モードの符号化処理手順を示すフローチャートである。まず、イントラ色差予測モードに関するシンタックス要素算出部123で色差信号の予測ブロックのイントラ色差予測モードに関する各シンタックス要素の値を算出する(S1201)。この際、イントラ色差予測モードの値と色差信号の予測ブロックと同じ位置の予測ブロックのイントラ輝度予測モードの値から図16に示す変換テーブルを用いて、イントラ色差予測モードに関するシンタックス要素intra_chroma_pred_mode[ x0 ][ y0 ]の値を算出する。続いて、エントロピー符号化部126で色差信号の予測ブロックのイントラ色差予測モードに関する各シンタックス要素の値をエントロピー符号化し(S1202)、本符号化処理を終了する。なお、図22の符号化処理手順は、図20のステップS1005に加えて、ステップS1009、ステップS1012、ステップS1015でも用いられる共通の符号化処理手順である。
再び、図20に戻り、続いて符号化ブロックの分割モードがN×N分割でない場合、すなわち分割モードが2N×2Nの場合(S1006のNO)、分割インデックスPartIdxが0の予測ブロックしか存在せず、これ以上符号化すべきイントラ予測モードは無いので、本符号化処理を終了する。
一方、符号化ブロックの分割モードがN×N分割の場合(S1006のYES)、分割インデックスPartIdxが0より大きい予測ブロックのイントラ予測モードの符号化処理に進む。まず、図21の符号化処理手順で輝度信号の分割インデックスPartIdxが1の予測ブロックのイントラ輝度予測モードの符号化処理を行う(S1007)。続いて、色差フォーマットが4:4:4の場合(S1008のYES)、図22の符号化処理手順で色差信号の分割インデックスPartIdxが1の予測ブロックのイントラ色差予測モードの符号化処理を行う(S1009)。なお、色差フォーマットが4:4:4でない場合、すなわち色差フォーマットが4:2:0、4:2:2またはモノクロの場合(S1008のNO)、色差信号の分割インデックスPartIdxが1の予測ブロックは存在しないので、ステップS1009をスキップして、次のステップS1010に進む。
続いて、図21の符号化処理手順で輝度信号の分割インデックスPartIdxが2の予測ブロックのイントラ輝度予測モードの符号化処理を行う(S1010)。続いて、色差フォーマットが4:2:2または4:4:4の場合(S1011のYES)、図22の符号化処理手順で色差信号の分割インデックスPartIdxが2の予測ブロックのイントラ色差予測モードの符号化処理を行う(S1012)。なお、色差フォーマットが4:2:2でも4:4:4でもない場合、すなわち色差フォーマットが4:2:0またはモノクロの場合(S1011のNO)、色差信号の分割インデックスPartIdxが2の予測ブロックは存在しないので、ステップS1012をスキップして、次のステップS1013に進む。
続いて、図21の符号化処理手順で輝度信号の分割インデックスPartIdxが3の予測ブロックのイントラ輝度予測モードの符号化処理を行う(S1013)。続いて、色差フォーマットが4:4:4の場合(S1014のYES)、図22の符号化処理手順で色差信号の分割インデックスPartIdxが3の予測ブロックのイントラ色差予測モードの符号化処理を行う(S1015)。なお、色差フォーマットが4:4:4以外の場合、すなわち色差フォーマットが4:2:0、4:2:2またはモノクロの場合(S1014のNO)、色差信号の分割インデックスPartIdxが3の予測ブロックは存在しないので、ステップS1015をスキップして、本符号化処理を終了する。
本符号化処理によると、図17に示す順序で、同じ予測ユニットに属するイントラ輝度予測モードとイントラ色差予測モードが連続して符号化され、復号側でイントラ色差予測モードの算出時に、直前に復号され、算出されたイントラ輝度予測モードを参照することにより算出処理が行われるので、イントラ輝度予測モードを参照することでイントラ色差モードの符号化効率を高めつつ、最適なタイミングでイントラ色差モードの復号処理を行うことができる。
次に、図2の第2の符号化ビット列復号部203で行われる符号化ブロック、及び予測ブロック単位での符号化情報の復号処理の処理手順について実施の形態の特徴であるイントラ予測モードに係わるポイントを中心に説明する。図23は図2の第2の符号化ビット列復号部203で行われる符号化ブロック、及び予測ブロック単位の復号処理の処理手順を説明するフローチャートである。
まず、復号側ではエントロピー復号部222で符号化ビット列をエントロピー復号して符号化ブロックの予測モードおよび分割モード等を含む符号化情報に関するシンタックス要素の値を得て(S2001)、符号化ブロック単位の符号化情報算出部223で復号された各シンタックス要素の値から符号化ブロックの予測モードおよび分割モード等を含む符号化情報の値を計算する。続いて、符号化ブロックの予測モード(PredMode)がイントラ予測(MODE_INTRA)でない場合(S2002のNO)、ステップS2016に進み、エントロピー復号部222でエントロピー復号して分割モードに応じて予測ブロック毎にインター情報に関するシンタックス要素の値を得てインター予測情報算出部226で分割モードに応じて予測ブロック毎にインター情報の値を計算し(S2016)、本復号処理を終了する。符号化ブロックの予測モード(PredMode)がイントラ予測(MODE_INTRA)の場合(S2002のYES)、ステップS2003以降のイントラ予測モードの復号処理に進む。
続いて、符号化ブロックの予測モードがイントラ予測の場合に、エントロピー復号部222、及びイントラ輝度予測モード算出部224で輝度信号の分割インデックスPartIdxが0の予測ブロックのイントラ輝度予測モードの復号処理を行う(S2003)。
ここで、エントロピー復号部222、及びイントラ輝度予測モード算出部224で行われる輝度信号の予測ブロックのイントラ輝度予測モードの復号処理手順について図24のフローチャートを用いて説明する。図24はエントロピー復号部222、及びイントラ輝度予測モード算出部224で行われる輝度信号の予測ブロックのイントラ輝度予測モードの復号処理手順を示すフローチャートである。まず、エントロピー復号部222で符号化ビット列をエントロピー復号し、輝度信号の予測ブロックのイントラ輝度予測モードに関する各シンタックス要素の値を得る(S2101)。続いて、イントラ輝度予測モードのイントラ輝度予測モード算出部224で、ステップS2101で復号された復号された各シンタックス要素の値から輝度信号の予測ブロックのイントラ輝度予測モードの値を算出する(S2102)。この際、シンタックス要素prev_intra_luma_pred_flag[ x0 ][ y0 ]の値が1(真)の場合は、予測元の予測ブロックを指し示すインデックスであるシンタックス要素mpm_idx[ x0 ][ y0 ]で指し示されている周辺の予測ブロックのイントラ輝度予測モードを当該予測モードのイントラ輝度予測モードとする。シンタックス要素prev_intra_luma_pred_flag[ x0 ][ y0 ]の値が0(偽)の場合は、イントラ輝度予測モードを示すシンタックス要素rem_intra_luma_pred_mode[ x0 ][ y0 ]の値からイントラ輝度予測モードを算出し、本復号処理を終了する。なお、図24の復号処理手順は、図23のステップS2003に加えて、ステップS2007、ステップS2010、ステップS2013でも用いられる共通の復号処理手順である。
再び、図23に戻り、続いて色差フォーマットが4:2:0、4:2:2または4:4:4の場合(S2004のYES)、エントロピー復号部222、及びイントラ色差予測モード算出部225で色差信号の分割インデックスPartIdxが0の予測ブロックのイントラ色差予測モードの復号処理を行う(S2005)。なお、色差フォーマットが4:2:0でも4:2:2でも4:4:4でもない場合、すなわち色差フォーマットがモノクロの場合(S2004のNO)、色差信号の予測ブロックは存在しないので、ステップS2005をスキップして、次のステップS2006に進む。
ここで、エントロピー復号部222、及びイントラ色差予測モード算出部225で行われる色差信号の予測ブロックのイントラ色差予測モードの復号処理手順について図25のフローチャートを用いて説明する。図25はエントロピー復号部222、及びイントラ色差予測モード算出部225で行われる色差信号の予測ブロックのイントラ色差予測モードの復号処理手順を示すフローチャートである。まず、エントロピー復号部222で符号化ビット列をエントロピー復号して色差信号の予測ブロックのイントラ色差予測モードに関するシンタックス要素intra_chroma_pred_mode[ x0 ][ y0 ]の値を得る(S2201)。続いて、イントラ色差予測モード算出部225で、色差信号の予測ブロックのイントラ色差予測モードの値を算出する(S2202)。ここで、イントラ色差予測モード算出部225で行われる色差信号の予測ブロックのイントラ色差予測モードの算出処理手順について図26のフローチャートを用いて説明する。図26は図25のステップS2202で行われるイントラ色差予測モードの算出処理手順を示すフローチャートである。まず、色差信号の予測ブロックのイントラ色差予測モードに関するシンタックス要素intra_chroma_pred_mode[ x0 ][ y0 ]の値が0かどうか判定し(S2301)、値が0の場合(S2301のYES)、ステップS2302に進む。色差フォーマットが4:2:0または4:4:4の場合(S2302のYES)、色差信号の予測ブロックと同じ位置の予測ブロックのイントラ輝度予測モードの値をそのまま、イントラ色差予測モードの値として(ステップS2303)、本算出処理を終了する。一方、色差フォーマットが4:2:0または4:4:4の場合、すなわち4:2:2の場合(S2302のNO)、図15に示す変換テーブルにより、色差信号の予測ブロックと同じ位置の予測ブロックのイントラ輝度予測モードの値から、イントラ色差予測モードの値を算出して(ステップS2304)、本算出処理を終了する。一方、intra_chroma_pred_mode[ x0 ][ y0 ]の値が0以外の場合、(S2301のNO)、図14の変換テーブルを用いて、イントラ輝度予測モードの値をイントラ色差予測モードの値に変換して(ステップS2305)、本算出処理を終了する。この際、ステップS2201で復号されたイントラ色差予測モードに関するシンタックス要素intra_chroma_pred_mode[ x0 ][ y0 ]の値と色差信号の予測ブロックと同じ位置の予測ブロックのイントラ輝度予測モードの値、すなわち最新のステップで算出されたイントラ輝度予測モードの値から図14に示す変換テーブルを用いて、シンタックス要素の値を算出し、本復号処理を終了する。なお、図25の復号処理手順は、図23のステップS2005に加えて、ステップS2009、ステップS2012、ステップS2015でも用いられる共通の復号処理手順である。
再び、図23に戻り、続いて符号化ブロックの分割モードがN×N分割でない場合、すなわち分割モードが2N×2Nの場合(S2006のNO)、分割インデックスPartIdxが0の予測ブロックしか存在せず、これ以上復号すべきイントラ予測モードは無いので、本復号処理を終了する。
一方、符号化ブロックの分割モードがN×N分割の場合(S2006のYES)、分割インデックスPartIdxが0より大きい予測ブロックのイントラ予測モードの復号処理に進む。まず、図24の復号処理手順で輝度信号の分割インデックスPartIdxが1の予測ブロックのイントラ輝度予測モードの復号処理を行う(S2007)。続いて、色差フォーマットが4:4:4の場合(S2008のYES)、図25の処理手順で色差信号の分割インデックスPartIdxが1の予測ブロックのイントラ色差予測モードの復号処理を行う(S2009)。なお、色差フォーマットが4:4:4でない場合、すなわち色差フォーマットが4:2:0、4:2:2またはモノクロの場合(S2008のNO)、色差信号の分割インデックスPartIdxが1の予測ブロックは存在しないので、ステップS2009をスキップして、次のステップS2010に進む。
続いて、図24の処理手順で輝度信号の分割インデックスPartIdxが2の予測ブロックのイントラ輝度予測モードの復号処理を行う(S2010)。続いて、色差フォーマットが4:2:2または4:4:4の場合(S2011のYES)、図25の処理手順で色差信号の分割インデックスPartIdxが2の予測ブロックのイントラ色差予測モードの復号処理を行う(S2012)。なお、色差フォーマットが4:2:2でも4:4:4でもない場合、すなわち色差フォーマットが4:2:0またはモノクロの場合(S2011のNO)、色差信号の分割インデックスPartIdxが2の予測ブロックは存在しないので、ステップS2012をスキップして、次のステップS2013に進む。
続いて、図24の処理手順で輝度信号の分割インデックスPartIdxが3の予測ブロックのイントラ輝度予測モードの復号処理を行う(S2013)。続いて、色差フォーマットが4:4:4の場合(S2014のYES)、図25の処理手順で色差信号の分割インデックスPartIdxが3の予測ブロックのイントラ色差予測モードの復号処理を行う(S2015)。なお、色差フォーマットが4:4:4以外の場合、すなわち色差フォーマットが4:2:0、4:2:2またはモノクロの場合(S2014のNO)、色差信号の分割インデックスPartIdxが3の予測ブロックは存在しないので、ステップS2015をスキップして、本復号処理を終了する。
本復号処理によると、図17に示す順序で、同じ予測ユニットに属するイントラ輝度予測モードとイントラ色差予測モードが連続して復号され、イントラ色差予測モードの算出時に、直前に復号され、算出されたイントラ輝度予測モードを参照することにより算出処理が行われるので、イントラ輝度予測モードを参照することでイントラ色差モードの符号化効率を高めつつ、最適なタイミングでイントラ色差モードの復号処理を行うことができる。
以上述べた実施の形態の動画像符号化装置が出力する動画像の符号化ストリームは、実施の形態で用いられた符号化方法に応じて復号することができるように特定のデータフォーマットを有しており、動画像符号化装置に対応する動画像復号装置がこの特定のデータフォーマットの符号化ストリームを復号することができる。
動画像符号化装置と動画像復号装置の間で符号化ストリームをやりとりするために、有線または無線のネットワークが用いられる場合、符号化ストリームを通信路の伝送形態に適したデータ形式に変換して伝送してもよい。その場合、動画像符号化装置が出力する符号化ストリームを通信路の伝送形態に適したデータ形式の符号化データに変換してネットワークに送信する動画像送信装置と、ネットワークから符号化データを受信して符号化ストリームに復元して動画像復号装置に供給する動画像受信装置とが設けられる。
動画像送信装置は、動画像符号化装置が出力する符号化ストリームをバッファするメモリと、符号化ストリームをパケット化するパケット処理部と、パケット化された符号化データをネットワークを介して送信する送信部とを含む。動画像受信装置は、パケット化された符号化データをネットワークを介して受信する受信部と、受信された符号化データをバッファするメモリと、符号化データをパケット処理して符号化ストリームを生成し、動画像復号装置に提供するパケット処理部とを含む。
以上の符号化及び復号に関する処理は、ハードウェアを用いた伝送、蓄積、受信装置として実現することができるのは勿論のこと、ROM(リード・オンリ・メモリ)やフラッシュメモリ等に記憶されているファームウェアや、コンピュータ等のソフトウェアによっても実現することができる。そのファームウェアプログラム、ソフトウェアプログラムをコンピュータ等で読み取り可能な記録媒体に記録して提供することも、有線あるいは無線のネットワークを通してサーバから提供することも、地上波あるいは衛星ディジタル放送のデータ放送として提供することも可能である。
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。