本実施の形態では、動画像の符号化、及び復号に関し、特にピクチャを任意のサイズ、形状の矩形に分割したブロック単位で、符号化においては既に符号化および復号済み、復号においては復号済み(以下復号済みとする)の周囲のブロックの画素値から予測を行うイントラ予測、及び既に復号済みのピクチャから動き補償によるインター予測を用いて符号量を削減する。
まず、本実施例において使用する技術、及び技術用語を定義する。
(色差フォーマット)
実施の形態の説明で符号化及び復号の対象とする画像の色差フォーマットは、モノクロ、4:2:0、4:2:2、4:4:4とし、輝度信号と色差信号をセットにして符号化、及び復号するものとする。ただし、色差信号に関する説明に関しては、モノクロの場合の説明を省略する。なお、色差フォーマットが4:4:4ではRGBの信号を符号化、及び復号することもできる。その場合、G(緑)信号を輝度信号とみなし、B(青)信号、R(赤)信号を色差信号とみなして符号化、及び復号する。なお、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とする。
予測モード(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分割して小さな符号化ブロックを表現できるからである。
(イントラ予測、イントラ予測モードについて)
イントラ予測では同じ画面内の周囲の復号済みの後述する変換ブロックの画素の値から処理対象変換ブロックの画素の値を予測する。本実施例の符号化装置及び復号装置では予測ブロック毎に35通りのイントラ予測モードから選択して、変換ブロック毎にイントラ予測する。予測ブロックと、変換ブロックのサイズが異なる場合があるが、変換ブロックのイントラ予測の際には、当該変換ブロックを含む予測ブロックのイントラ予測モードが使われる。図8は本実施例で規定するイントラ予測モードの値と予測方向の説明図である。イントラ予測モードの値は0から34までのモード番号で規定される。イントラ予測モード(intraPredMode)は、周囲の復号済みのブロックから画素値を内挿することにより予測する平面予測(イントラ予測モードintraPredMode=0)、周囲の復号済みのブロックから平均値を導出することにより予測する平均値予測(イントラ予測モードintraPredMode=1)に加えて、周囲の復号済みのブロックから様々な角度で予測する33通りの角度予測(イントラ予測モードintraPredMode=2…34)を定義する。
(変換ブロック)
従来と同様に、本実施の形態でも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(平均値予測)、10(水平予測)、26(垂直予測)、34(斜め予測)のいずれかを予測ブロック毎に選択することができる。ただし本実施の形態においては、色差フォーマットが4:2:2のイントラ予測の際には後述する第2のイントラ色差予測モードを用いる。なお、色差信号のイントラ予測、及びイントラ予測モードについては後ほど詳細に説明する。
予測ブロック単位に供給された符号化対象の信号から、予測ブロック単位のイントラ予測信号を画素毎に減算して、予測残差信号を得る。その予測残差信号を用いて符号量と歪量を評価するための評価値を導出し、予測ブロック単位で、複数のイントラ輝度予測モード、及びイントラ色差予測モードの中から最も符号量、及び歪量の観点で最適なモードを選択し、当該予測ブロックのイントラ予測の候補として、選択されたイントラ予測モードに対応するイントラ予測情報、イントラ予測信号、及びイントラ予測の評価値を符号化方法決定部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の符号化ストリームからそれぞれの符号化情報に戻す機能を有する。第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、即ち色差フォーマットが4:4:4の時にはシンタックス要素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は、供給された第3の符号化ストリームを復号して直交変換・量子化された残差信号を導出し、直交変換・量子化された残差信号を逆量子化・逆直交変換部208に供給する。
イントラ予測部206は、供給されるイントラ輝度予測モード、及びイントラ色差予測モードに応じて復号画像メモリ211に格納されている復号済みの周辺ブロックからイントラ予測により予測画像信号を生成し、スイッチ213を介して、予測画像信号を復号画像信号重畳部209に供給する。ただし本実施の形態においては、色差フォーマットが4:2:2のイントラ予測の際には後述する第2のイントラ色差予測モードを用いる。なお、色差信号のイントラ予測、及びイントラ予測モードについては後ほど詳細に説明する。
インター予測部207は、供給されるインター予測モード、参照ピクチャを特定する情報、動きベクトル等のインター予測情報を用いて復号画像メモリ211に格納されている復号済みの参照ピクチャから動き補償を用いたインター予測により予測画像信号を生成し、スイッチ213を介して、予測画像信号を復号画像信号重畳部209に供給する。なお、両予測の場合は、L0予測、L1予測の2つの動き補償予測画像信号に適応的に重み係数を乗算して重畳し、最終的な予測画像信号を生成する。
逆量子化・逆直交変換部208は、第3の符号化ストリーム復号部204で復号された直交変換・量子化された残差信号に対して逆直交変換及び逆量子化を行い、逆直交変換・逆量子化された残差信号を得る。
復号画像信号重畳部209は、イントラ予測部206、またはインター予測部207で予測された予測画像信号と、逆量子化・逆直交変換部208により逆直交変換・逆量子化された残差信号とを重畳することにより、復号画像信号を復号し、復号画像メモリ211に格納する。復号画像メモリ211に格納する際には、復号画像に対して符号化によるブロック歪等を減少させるフィルタリング処理を施して、復号画像メモリ211に格納されることもある。復号画像メモリ211に格納された復号画像信号は、出力順で出力される。
次に、図1の画像符号化装置のイントラ予測部103、及び図2の画像復号装置のイントラ予測部206で行われるイントラ予測、及びイントラ予測の際に用いられ、図1の第2の符号化ストリーム生成部113で符号化され、図2の第2の符号化ストリーム復号部203で復号されるイントラ予測モードについて説明する。
イントラ予測では同じ画面内の周囲の復号済みの変換ブロックの画素の値から処理対象の変換ブロックの画素の値を予測する。本実施例の符号化装置及び復号装置では35通りのイントラ予測モードから選択して、イントラ予測する。図8は本実施例で規定するイントラ予測モードの値と予測方向を説明図である。矢印の指し示す方向は各イントラ予測の予測方向、即ちイントラ予測で参照する方向を示す。各イントラ予測モードにおいてイントラ予測の対象となる変換ブロックに隣接する変換ブロックに含まれるイントラ予測の予測方向(図8の矢印の指し示す方向)の復号済みの境界の画素を参照して各画素(図8の矢印の始点の画素)のイントラ予測を行う。左側、上側の番号はイントラ予測モードの値を示す。右側、下側の数字はそれぞれ左側、上側のイントラ予測モードに対応するイントラ予測の角度を示す。イントラ予測モード(intraPredMode)は、周囲の復号済みの変換ブロックの画素から画素値を内挿することにより予測する平面予測(イントラ予測モードintraPredMode=0)、周囲の復号済みの変換ブロックの画素から平均値を導出することにより予測する平均値予測(イントラ予測モードintraPredMode=1)に加えて、周囲の復号済みの変換ブロックの画素から様々な角度で予測する33通りの角度予測(イントラ予測モードintraPredMode=2…34)を定義する。なお、この角度予測には上の復号済みの変換ブロックの画素から垂直方向に予測する垂直予測(イントラ予測モードintraPredMode=26)、左の復号済みの変換ブロックの画素から水平方向に予測する水平予測(イントラ予測モードintraPredMode=10)も含まれる。なお、本実施例では水平方向の単位長さ32に対する垂直方向の長さ、または垂直方向の単位長さ32に対する水平方向の長さによってイントラ予測の角度を表す。水平方向に予測する水平予測のイントラ予測モードに対応するイントラ予測の角度を0として、水平方向の単位長さ32に対する垂直方向の長さを下方向に正、上方向に負の値で表し、イントラ予測の角度とする。または、垂直方向に予測する垂直予測のイントラ予測モードに対応するイントラ予測の角度を0として、垂直方向の単位長さ32に対する水平方向の長さを右方向に正、左方向に負の値で表し、イントラ予測の角度とする。例えば、イントラ予測の角度が32は度数法の45°を表し、−32は度数法の−45°を表す。
イントラ予測モードは、輝度信号、色差信号それぞれに用意し、輝度信号用のイントラ予測モードをイントラ輝度予測モード、色差信号用のイントラ予測モードをイントラ色差予測モードと定義する。イントラ輝度予測モードの符号化、および復号においては、周辺のブロックのイントラ輝度予測モードとの相関性を利用し、符号化側で周辺のブロックのイントラ輝度予測モードから予測できると判断された場合は参照するブロックを特定する情報を伝送し、周辺のブロックのイントラ輝度予測モードから予測するよりもイントラ輝度予測モードに別の値を設定した方が良いと判断された場合に、さらにイントラ輝度予測モードの値を符号化、または復号する仕組みを用いる。周辺のブロックのイントラ輝度予測モードから符号化・復号対象ブロックのイントラ輝度予測モードを予測することにより、伝送する符号量を削減できる。一方、イントラ色差予測モードの符号化、および復号においては、色差信号の予測ブロックと同じ位置の輝度信号の予測ブロックのイントラ輝度予測モードとの相関性を利用し、符号化側でイントラ輝度予測モードから予測できると判断された場合はイントラ輝度予測モードの値からイントラ色差予測モードの値を予測し、イントラ輝度予測モードから予測するよりもイントラ色差予測モードに独自の値を設定した方が良いと判断した場合に、イントラ色差予測モードの値を符号化、または復号する仕組みを用いる。イントラ輝度予測モードからイントラ色差予測モードを予測することにより、伝送する符号量を削減できる。
次に、図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に供給する。イントラ予測部103でのイントラ色差予測モードの決定、及びイントラ色差予測モードに関するシンタックス要素導出部123のイントラ色差予測モードに関するシンタックス要素の値の導出においては、色差信号の予測ブロックと同じ位置の輝度信号の予測ブロックのイントラ輝度予測モードとの相関性を利用し、イントラ色差予測モードが色差信号の予測ブロックと同じ位置の輝度信号の予測ブロックのイントラ輝度予測モードからの予測値が最も適している場合はイントラ輝度予測モードの値からイントラ色差予測モードの値を予測し、イントラ輝度予測モードからの予測値よりも独自の値を設定したほうがよいと判断した場合には、イントラ色差予測モードに代表的なイントラ予測モードである0(平面予測)、1(平均値予測)、10(水平予測)、26(垂直予測)、34(斜め予測)のいずれかの値を設定する仕組みを用いることにより、符号量を削減する。
ここで、復号側の後述するイントラ色差予測モード導出部225で、イントラ輝度予測モードの値とイントラ色差予測モードに関するシンタックス要素の値からイントラ色差予測モードの値を導出する方法について説明する。なお、本実施例においては、後述する色差フォーマット4:2:2用のイントラ色差予測モードと区別するために、後述の図14のテーブルにより導出される4:2:0または4:4:4用のイントラ色差予測モードを第1のイントラ色差予測モードと定義する。図14は本実施例で規定するイントラ色差予測モードに関するシンタックス要素intra_chroma_pred_mode[ x0 ][ y0 ]の値と色差信号の予測ブロックと同じ位置の予測ブロックのイントラ輝度予測モードの値から第1のイントラ色差予測モードの値導出するテーブルであり、このテーブルを用いて、復号側では、第1のイントラ色差予測モードの値を導出する。
シンタックス要素intra_chroma_pred_mode[ x0 ][ y0 ]の値が0の場合、色差信号の予測ブロックと同じ位置の予測ブロックのイントラ輝度予測モードの値が0でなければ、第1のイントラ色差予測モードの値は0(平面予測)の値をとり、イントラ輝度予測モードの値が0であれば、第1のイントラ色差予測モードの値は34(斜め予測)の値をとる。
シンタックス要素intra_chroma_pred_mode[ x0 ][ y0 ]の値が1の場合、色差信号の予測ブロックと同じ位置の予測ブロックのイントラ輝度予測モードの値が1でなければ、第1のイントラ色差予測モードの値は26(垂直予測)の値をとり、イントラ輝度予測モードの値が1であれば、第1のイントラ色差予測モードの値は34(斜め予測)の値をとる。
シンタックス要素intra_chroma_pred_mode[ x0 ][ y0 ]の値が2の場合、色差信号の予測ブロックと同じ位置の予測ブロックのイントラ輝度予測モードの値が2でなければ、第1のイントラ色差予測モードの値は10(水平予測)の値をとり、イントラ輝度予測モードの値が2であれば、第1のイントラ色差予測モードの値は34(斜め予測)の値をとる。
シンタックス要素intra_chroma_pred_mode[ x0 ][ y0 ]の値が3の場合、色差信号の予測ブロックと同じ位置の予測ブロックのイントラ輝度予測モードが3でなければ、第1のイントラ色差予測モードの値は1(平均値予測)の値をとり、イントラ輝度予測モードの値が3であれば、第1のイントラ色差予測モードの値は34(斜め予測)の値をとる。
シンタックス要素intra_chroma_pred_mode[ x0 ][ y0 ]の値が4の場合、第1のイントラ色差予測モードの値は色差信号の予測ブロックと同じ位置の予測ブロックのイントラ輝度予測モードと同じ値をとる。
色差フォーマットが4:2:0または4:4:4では、図14により導出される第1のイントラ色差予測モードを色差フォーマットが4:2:0または4:4:4用の色差信号のイントラ予測モードとして用いる。図1の画像符号化装置のイントラ予測部103、及び図2の画像復号装置のイントラ予測部206では、色差フォーマットが4:2:0または4:4:4の際に、第1のイントラ色差予測モードを用いて色差信号のイントラ予測を行う。
色差フォーマットが4:2:2では、図14により導出された第1のイントラ色差予測モードから変換テーブルにより、色差フォーマット4:2:2用のイントラ色差予測モードの値を導出する。本実施の形態の符号化及び復号においては、後述の図15、図16、図17、図30、または図33の変換テーブルにより導出される色差フォーマット4:2:2用のイントラ色差予測モードを第2のイントラ色差予測モードと定義する。図1の画像符号化装置のイントラ予測部103、及び図2の画像復号装置のイントラ予測部206では、色差フォーマットが4:2:2の際に、第2のイントラ色差予測モードを用いて色差信号のイントラ予測を行う。図15、図16、図17、図30、及び図33は本実施例で規定するイントラ輝度予測モードまたは図14のテーブルにより導出された第1のイントラ色差予測モードからさらに色差フォーマットが4:2:2の色差信号のイントラ予測に用いる色差フォーマット4:2:2用の第2のイントラ色差予測モードの値を導出するための変換テーブルである。図18は本実施例で規定する図15の変換テーブルで導出されるイントラ予測モードの値と予測方向を説明する図であり、図19は本実施例で規定する図16の変換テーブルで導出されるイントラ予測モードの値と予測方向を説明する図であり、図20は本実施例で規定する図17の変換テーブルで導出されるイントラ予測モードの値と予測方向を説明する図であり、図31は本実施例で規定する図30の変換テーブルで導出されるイントラ予測モードの値と予測方向を説明する図であり、図34は本実施例で規定する図33の変換テーブルで導出されるイントラ予測モードの値と予測方向を説明する図である。
本実施の形態では、図15、図16、図17、図30、及び図33によるイントラ輝度予測モードまたは第1のイントラ色差予測モードから色差フォーマット4:2:2用の第2のイントラ色差予測モードを導出する処理は、符号化側では符号化装置のイントラ予測部103で行われ、復号側では復号装置の第2の符号化ストリーム復号部203、あるいはイントラ予測部206で行われる。
本実施の形態の符号化及び復号において、色差フォーマットが4:2:2の場合に、4:2:0や、4:4:4の様に図14のテーブルにより導出された第1のイントラ色差予測モードをそのまま用いるのではなく、図15、図16、図17、図30、または図33の変換テーブルを用いて色差フォーマット4:2:2用の第2のイントラ色差予測モードを導出する理由について説明する。色差フォーマットが4:2:2では、図3(b)に示すように輝度信号に対して色差信号が水平方向に2分の1の密度、垂直方向に同じ密度で標本化された色差フォーマットである。したがって、イントラ輝度予測モードまたは第1のイントラ色差予測モードのそれぞれの予測方向に対して、水平方向に2分の1倍にスケーリングした予測方向、またはその近傍の予測方向で色差信号のイントラ予測を行うと、色差信号の予測ブロックと同じ位置の予測ブロックの輝度信号のイントラ予測と等価、または等価に近くなる。
このことを図21を参照してより詳しく説明する。図21は色差フォーマットが4:2:2の場合の輝度信号、及び色差信号のイントラ予測の予測方向の対応関係を説明する図である。図21において、×は輝度信号の画素の位置、○は色差信号の画素の位置を示す。4:2:2では、輝度信号に対して色差信号は水平方向に1/2で標本化(サンプリング)されており、輝度信号と色差信号の画素のアスペクト比が異なる。図21(a)は4:2:2の輝度信号と色差信号の標本化された画素の位置を示す。符号P1はイントラ予測される画素、符号P2はイントラ予測の際に参照する画素(実際にはフィルタリングされるのでその隣の画素も参照する)である。符号2701に示す画素P1から画素P2への矢印は、輝度信号の画素P1のイントラ予測方向を示すとともに、色差信号の画素P1のイントラ予測方向を示す。
図21(b)は、水平方向に1/2でサンプリングされた色差信号の画素の配列を示す。ここで、色差信号のイントラ予測の際に、水平方向に1/2のスケーリングを行わなかった場合、色差信号の画素P1のイントラ予測方向は符号2702で示す矢印の方向となってしまい、色差信号の画素配列において、誤って符号P3の画素を参照することになってしまう。しかし、正しい参照先は符号P2の画素である。そこで、輝度信号のイントラ予測方向を水平方向に1/2倍のスケーリングを行い、色差信号のイントラ予測方向とすることで、符号2703に示すように、色差信号の配列における正しいイントラ予測方向を導出し、そのイントラ予測方向上の正しい参照先である上側に隣接している画素(実際にはフィルタリングされるのでその隣の画素も参照する)を取得する。
図21(a)、(b)では予測ブロックの上側に隣接する画素を参照している場合を説明したが、左側に隣接する画素を参照している場合でも同様である。左側に隣接する画素の場合は、輝度信号のイントラ予測方向を垂直方向に2倍にスケーリングする(これは水平方向に1/2倍にスケーリングすることとイントラ予測の方向を求める意味では等価である)ことで、色差信号の配列における正しいイントラ予測方向を導出し、そのイントラ予測方向上の正しい参照先である左側に隣接している画素(一部上側に隣接している画素も含む)を取得する。
したがって、図15及び図16の変換テーブルでは、それぞれ図18及び図19の点線の矢印に示すように、水平方向(水平軸上)に並ぶイントラ輝度予測モードまたは図14のテーブルにより導出された第1のイントラ色差予測モードの値が18、19、20、21、22、23、24、25、26、27、28、29、30、31、32、33、34のとき、予測方向の角度を垂直予測(イントラ予測モード26)を中心に水平方向に2分の1倍にスケーリングすることにより導出した予測方向に近い予測方向のイントラ予測モードの値を第2のイントラ色差予測モードの値として選択し、第2のイントラ色差予測モードの値をそれぞれ、21、22、23、23、24、24、25、25、26、27、27、28、28、29、29、30、31とする。また、イントラ予測の予測方向を水平方向に2分の1倍にスケーリングすることは、垂直方向に2倍にスケーリングすることと等価である。したがって、イントラ輝度予測モードまたは第1のイントラ色差予測モードのそれぞれの予測方向に対して、水平予測(イントラ予測モード10)を中心に垂直方向に2倍にスケーリングした予測方向、またはその近傍の予測方向で色差信号のイントラ予測を行うと、色差信号の予測ブロックと同じ位置の予測ブロックの輝度信号のイントラ予測と等価、または等価に近くなる。したがって、図15及び図16の変換テーブルでは、それぞれ図18及び図19に示すように、垂直方向(垂直軸上)に並ぶイントラ予測モード(イントラ輝度予測モードまたは第1のイントラ色差予測モード)の値が2、3、4、5、6、7、8、9、10、11、12、13、14、15、16、17のとき、予測方向の角度を水平予測(イントラ予測モード10)を中心に垂直方向に2倍にスケーリングすることにより導出した予測方向に近い予測方向のイントラ予測モードの値を第2のイントラ色差予測モードの値として選択し、第2のイントラ色差予測モードの値をそれぞれ、2、2、2、2、3、5、7、8、10、12、13,15,17、18、18、18、18、及び2、2、2、2、3、5、7、8、10、12、13,15,17、18、18、19、20とする。
また、図17の変換テーブルを用いてイントラ予測モード(イントラ輝度予測モードまたは第1のイントラ色差予測モード)から第2のイントラ色差予測モードに変換することもできる。図17の変換テーブルでは、図20の点線の矢印に示すように、参照先が水平方向(水平軸上)に並ぶイントラ輝度予測モードまたは図14のテーブルにより導出された第1のイントラ色差予測モードの値が18、19、20、21、22、23、24、25、26、27、28、29、30、31、32、33、34のとき、イントラ輝度予測モードまたは第1のイントラ色差予測モードを垂直予測(イントラ予測モード26)を中心に水平方向に2分の1倍にスケーリングすることにより導出した値を第2のイントラ色差予測モードの値とし、第2のイントラ色差予測モードの値をそれぞれ、22、22、23、23、24、24、25、25、26、27、27、28、28、29、29、30、30とする。また、イントラ予測の予測方向を水平方向に2分の1倍にスケーリングすることは、垂直方向に2倍にスケーリングすることと等価である。したがって、イントラ輝度予測モードまたは第1のイントラ色差予測モードのそれぞれの予測方向に対して、水平予測(イントラ予測モード10)を中心に垂直方向に2倍にスケーリングした予測方向、またはその近傍の予測方向で色差信号のイントラ予測を行うと、色差信号の予測ブロックと同じ位置の予測ブロックの輝度信号のイントラ予測と等価、または等価に近くなる。したがって、図17の変換テーブルでは、図20の点線の矢印に示すように、参照先が垂直方向(垂直軸上)に並ぶイントラ輝度予測モードまたは第1のイントラ色差予測モードの値が2、3、4、5、6、7、8、9、10、11、12、13、14、15、16、17のとき、イントラ輝度予測モードまたは第1のイントラ色差予測モードを水平予測(イントラ予測モード10)を中心に垂直方向に2倍にスケーリングし、2以上18以下に制限することにより導出した値をイントラ色差予測モードの値とし、第2のイントラ色差予測モードの値を2、2、2、2、2、4、6、8、10、12、14,16,18、18、18、18とする。
また、図30の変換テーブルを用いてイントラ予測モード(イントラ輝度予測モードまたは第1のイントラ色差予測モード)から第2のイントラ色差予測モードに変換することもできる。図30の変換テーブルでは、図31の点線の矢印に示すように、イントラ輝度予測モードまたは図14のテーブルにより導出された第1のイントラ色差予測モードの値が16、17、18、19、20、21、22、23、24、25、26、27、28、29、30、31、32、33、34のとき、イントラ輝度予測モードまたは第1のイントラ色差予測モードを垂直予測(イントラ予測モード26)を中心に水平方向に2分の1倍にスケーリングすることにより導出した値を第2のイントラ色差予測モードの値とし、第2のイントラ色差予測モードの値をそれぞれ、21、21、22、22、23、23、24、24、25、25、26、27、27、28、28、29、29、30、30とする。また、イントラ輝度予測モードまたは第1のイントラ色差予測モードの値が2、3、4、5、6、7、8、9、10、11、12、13、14、15のとき、イントラ輝度予測モードまたは第1のイントラ色差予測モードを水平予測(イントラ予測モード10)を中心に垂直方向に2倍にスケーリングし、2以上に制限することにより導出した値を第2のイントラ色差予測モードの値とし、第2のイントラ色差予測モードの値を2、2、2、2、2、4、6、8、10、12、14,16,18、20とする。
また、図33の変換テーブルを用いてイントラ予測モード(イントラ輝度予測モードまたは第1のイントラ色差予測モード)から第2のイントラ色差予測モードに変換することもできる。図33の変換テーブルでは、図34の点線の矢印に示すように、イントラ輝度予測モードまたは図14のテーブルにより導出された第1のイントラ色差予測モードの値が21、22、23、24、25、26、27、28、29、30、31のとき、イントラ輝度予測モードまたは第1のイントラ色差予測モードを垂直予測(イントラ予測モード26)を中心に水平方向に2分の1倍にスケーリングすることにより導出した値を第2のイントラ色差予測モードの値とし、第2のイントラ色差予測モードの値をそれぞれ、23、24、24、25、25、26、27、27、28、28、29とする。また、イントラ輝度予測モードまたは第1のイントラ色差予測モードの値が7、8、9、10、11、12、13のとき、イントラ輝度予測モードまたは第1のイントラ色差予測モードを水平予測(イントラ予測モード10)を中心に垂直方向に2倍にスケーリングすることにより導出した値を第2のイントラ色差予測モードの値とし、第2のイントラ色差予測モードの値を4、6、8、10、12、14、16とする。さらに、イントラ輝度予測モードまたは第1のイントラ色差予測モードの値が2、3、4、5、6のとき、イントラ輝度予測モードまたは第1のイントラ色差予測モードから3を減算し、2以上に制限することにより導出した値を第2のイントラ色差予測モードの値とし、第2のイントラ色差予測モードの値を2、2、2、2、3とする。さらに、イントラ輝度予測モードまたは第1のイントラ色差予測モードの値が14、15、16、17、18、19、20のとき、イントラ輝度予測モードまたは第1のイントラ色差予測モードに3を加算することにより導出した値を第2のイントラ色差予測モードの値とし、第2のイントラ色差予測モードの値を17、18、19、20、21、22とする。さらに、イントラ輝度予測モードまたは第1のイントラ色差予測モードの値が32、33、34のとき、イントラ輝度予測モードまたは第1のイントラ色差予測モードから3を減算することにより導出した値を第2のイントラ色差予測モードの値とし、第2のイントラ色差予測モードの値を29、30、31とする。
色差フォーマットが4:2:2において、第1のイントラ色差予測モードから第2のイントラ色差予測モードに変換する際の図15及び図16の変換テーブルに対応する第1のイントラ色差予測モードから第2のイントラ色差予測モードに変換する際の導出処理手順について図23のフローチャートを用いて説明する。
第1のイントラ予測モードIntraPredMode1の0から34までの各値において、図23のフローチャートの手順により、第2のイントラ予測モードIntraPredMode2を導出する。
まず、角度予測ではない場合、即ち第1のイントラ予測モードIntraPredMode1が1以下の場合(図23のステップS3001のNO)、第1のイントラ予測モードIntraPredMode1の値をそのまま第2のイントラ色差予測モードIntraPredMode2として(図23のステップS3002)、本導出処理を終了する。第1のイントラ予測モードIntraPredMode1が1以下なのは周囲の復号済みのブロックから画素値を内挿することにより予測する平面予測(イントラ予測モードintraPredMode1=0)、周囲の復号済みのブロックから平均値を導出することにより予測する平均値予測(イントラ予測モードintraPredMode1=1)である。
一方、第1のイントラ色差予測モードIntraPredMode1が角度予測の場合、即ち1より大きい場合(図23のステップS3001のYES)、ステップS3003以降の第1のイントラ色差予測モードから第2のイントラ色差予測モードへの変換処理を行う。
イントラ色差予測モードIntraPredMode1が18より小さい場合(図23のステップS3003のYES)、第1のイントラ色差予測モードIntraPredMode1に対応する第1のイントラ予測の角度IntraPredAngle1を2倍して、イントラ予測の角度IntraPredAngle2'とする(図23のステップS3004)。さらに、イントラ予測の角度IntraPredAngle2'に近い第1のイントラ予測の角度IntraPredAngle1に対応するイントラ輝度予測モードまたは第1のイントラ色差予測モードIntraPredMode1の値を第2のイントラ予測モードIntraPredMode2に設定し(図23のステップS3005)、本導出処理を終了する。ただし、第1のイントラ予測モードが2、3、4及び5の場合、イントラ予測の角度IntraPredAngle2'の値が−32以下となるが、その際のイントラ予測の角度は−32とし、第2のイントラ色差予測モードは2とする。第1のイントラ予測モードが15、16及び17の場合、イントラ予測の角度IntraPredAngle2'の値が32以上となるが、その際のイントラ予測の角度は32とし、第2のイントラ色差予測モードは18とする。なお、図19に示すように、第1のイントラ予測モードが16に対応するイントラ予測の角度を縦方向に2倍すると、イントラ予測モードが19に対応するイントラ予測の角度に近い値をとり、第1のイントラ予測モードが17に対応するイントラ予測の角度を縦方向に2倍すると、イントラ予測モードが20に対応するイントラ予測の角度に近い値をとる。そこで、図19に示すように、第1のイントラ予測モードが16の場合、第2のイントラ予測モードを19とし、第1のイントラ予測モードが17の場合、第2のイントラ予測モードを20とすることもできる。
一方、イントラ色差予測モードIntraPredMode1が18より小さくない場合、即ち18以上の場合(図23のステップS3003のNO)、第1のイントラ色差予測モードIntraPredMode1に対応する第1のイントラ予測の角度IntraPredAngle1を1/2倍して、イントラ予測の角度IntraPredAngle2'とする(図23のステップS3006〜S3007)。本実施例では、第1のイントラ色差予測モードIntraPredMode1に対応する第1のイントラ予測の角度IntraPredAngle1の正負符号に応じて、負の場合−1、正または変数aが0の場合1の値を持つ変数SignIntraPredAngleに値を設定し(図23のステップS3006)、第1のイントラ色差予測モードIntraPredMode1の絶対値に1/2倍と等価の1ビット右シフト演算を行った結果に変数SignIntraPredAngleを乗算し、イントラ予測の角度IntraPredAngle2'に設定する(図23のステップS3007)。なお、第1のイントラ色差予測モードIntraPredMode1の絶対値に1を加えてから1/2倍と等価の1ビット右シフト演算を行った結果に変数SignIntraPredAngleを乗算し、イントラ予測の角度IntraPredAngle2'に設定してもよい。さらに、イントラ予測の角度IntraPredAngle2'に近いイントラ輝度予測モード及び第1のイントラ色差予測モードで用意されているイントラ予測の角度(図8の下段)に対応するイントラ予測モード(図8の上段)の値を第2のイントラ予測モードIntraPredMode2に設定し(図23のステップS3008)、本導出処理を終了する。イントラ予測の角度IntraPredAngle2'をイントラ輝度予測モード及び第1のイントラ色差予測モードで用意されているイントラ予測の角度に値を丸める際には、イントラ予測の角度IntraPredAngle2'に最も近い値に丸めてもよいし、四捨五入しても、切り上げても、切り下げてもよい。また、イントラ予測の角度IntraPredAngle2'の絶対値を四捨五入するか切り上げるか切り下げて得られた値にイントラ予測の角度IntraPredAngle2'と同じ正負の符号を設定してもよい。
なお、第1のイントラ色差予測モードが25のイントラ予測の角度を1/2倍すると−1となり、−1はイントラ予測モードの値が25に対応する−2とイントラ予測モードの値が26に対応する0のどちらの値にも丸めこむ(変換する)ことができるが、垂直予測を示す26は常に符号化することができるので、第1のイントラ色差予測モードが25を第2のイントラ色差予測モードに変換する際には25とする。第1のイントラ色差予測モードが27のイントラ予測の角度を1/2倍すると1となり、イントラ予測モードの値が26に対応する0とイントラ予測モードの値が27に対応する2のどちらの値に丸めこむ(変換する)ことができるが、垂直予測を示す26は常に符号化することができるので、第1のイントラ色差予測モードが27を第2のイントラ色差予測モードに変換する際には27とする。つまり、図15、図16、図17、図30及び図33に示す変換テーブルを用いて第1のイントラ色差予測モードから第2のイントラ色差予測モードに変換する際には、第1のイントラ色差予測モードが垂直予測である26でない場合には、垂直予測である26を回避した値に変換することにより、第1イントラ色差予測モードから第2イントラ色差予測モードを導出する。即ち、イントラ輝度予測モードの値とイントラ色差予測モードの値が一致しないときにおいて選択されるイントラ色差予測モードのシンタックス要素(図14、図25の0、1、2、3)から導出可能な値(0、1、10、26、34)を回避するように変換する。この様に設定することで、イントラ色差予測モードの選択の幅が広がり、符号化効率を向上させることができる。
なお、ステップS3005、及びS3008において、イントラ予測の角度IntraPredAngle2'に近い第1のイントラ予測の角度IntraPredAngle1に対応するイントラ輝度予測モードまたは第1のイントラ色差予測モードIntraPredMode1の値を第2のイントラ予測モードIntraPredMode2に設定することで、色差フォーマット4:2:2での色差信号のイントラ予測演算をハードウェアで実装する場合、第2のイントラ色差予測モードを用いたイントラ予測演算を、イントラ輝度予測モードまたは第1のイントラ色差予測モードIntraPredMode1に対応したイントラ予測の角度のみで実現できるので、新たなイントラ予測の角度によるハードウェアを追加することなく行うことができる。
なお、この角度予測には上の復号済みのブロックから垂直方向に予測する垂直予測(イントラ予測モードintraPredMode1=26)、左の復号済みのブロックから水平方向に予測する水平予測(イントラ予測モードintraPredMode1=10)も含まれる。ただし、垂直予測、及び水平予測はステップS3003以降の第1のイントラ色差予測モードから第2のイントラ色差予測モードへの変換処理を行っても値は変わらない。したがって、ステップS3001の条件判断において、垂直予測、及び水平予測の場合もステップS3002に進んでもよい。
色差フォーマットが4:2:2において、図17の変換テーブルに対応する第1のイントラ色差予測モードから第2のイントラ色差予測モードに変換する際の導出処理手順について図24のフローチャートを用いて説明する。
角度予測ではない場合、即ち第1のイントラ予測モードIntraPredMode1が1以下の場合(図24のステップS3101のNO)、第1のイントラ予測モードIntraPredMode1の値をそのまま第2のイントラ色差予測モードIntraPredMode2として(図24のステップS3102)、本導出処理を終了する。
一方、第1のイントラ色差予測モードIntraPredMode1が角度予測の場合、即ち1より大きい場合(図24のステップS3101のYES)、ステップS3103以降の第1のイントラ色差予測モードから第2のイントラ色差予測モードへの変換処理を行う。
第1のイントラ色差予測モードIntraPredMode1が18より小さい場合(図24のステップS3103のYES)、図14のテーブルにより導出された第1のイントラ色差予測モードを水平予測(イントラ予測モード10)を中心に垂直方向に2倍にスケーリングすることにより導出した値を第2のイントラ色差予測モードの値とする(図32のステップS3304〜S3307)。第1のイントラ色差予測モードIntraPredMode1から水平予測を示す10を減算して得られる値を変数aに設定する(図24のステップS3104)。続いて、変数aを2倍して得られる値を変数bに設定する(図24のステップS3105)。続いて、bに水平予測を示す10を加算して得られる値を変数cに設定する(図24のステップS3106)。続いて、変数cの値を2以上18以下に制限して得られる値を第2のイントラ予測モードIntraPredMode2に設定し(図24のステップS3107)、本導出処理を終了する。具体的には、変数cが2以上18未満の場合、イントラ予測モードIntraPredMode2の値に変数cをそのまま設定し、変数cが2未満の場合、イントラ予測モードIntraPredMode2に2を設定し、変数cが18を超える場合、イントラ予測モードIntraPredMode2に18を設定する。即ち、第1のイントラ色差予測モードの角度予測のモード番号をスケーリングして導出された値が、イントラ予測モードで規定される角度予測のモード番号の範囲外になったとき、導出された値をその範囲内の値にする。これにより、色差フォーマット4:2:2での色差信号のイントラ予測演算をハードウェアで実装する場合、第2のイントラ色差予測モードを用いたイントラ予測演算を、ハードウェアを追加することなく行うことができる。
一方、第1のイントラ色差予測モードIntraPredMode1が18より小さくない場合、即ち18以上の場合(図24のステップS3103のNO)、図14のテーブルにより導出された第1のイントラ色差予測モードを垂直予測(イントラ予測モード26)を中心に水平方向に2分の1倍にスケーリングすることにより導出した値を第2のイントラ色差予測モードの値とする(図24のステップS3108〜S3112)。第1のイントラ色差予測モードIntraPredMode1から垂直予測を示す26を減算して得られる値を変数aに設定する(図24のステップS3108)。続いて、変数aの正負符号に応じて、負の場合−1、正または変数aが0の場合1の値を持つ変数SignIntraPredModeに値を設定する(図24のステップS3109)。続いて変数aの絶対値に1/2倍と等価の1ビット右シフト演算を行った結果に変数SignIntraPredModeを乗算して得られる値を変数bに設定する(図24のステップS3110)。なお、変数aの絶対値に1を加えてから1/2倍と等価の1ビット右シフト演算を行った結果に変数SignIntraPredModeを乗算してえられる値を変数bに設定してもよい。続いて、bに垂直予測を示す26を加算して得られる値を変数cに設定する(図24のステップS3111)。続いて、変数cの値を第2のイントラ予測モードIntraPredMode2に設定し(図24のステップS3112)、本導出処理を終了する。なお、第1のイントラ色差予測モードが25に対応する変数cの値が26になる場合においては、常に符号化することができる垂直予測を示す26を避けて、第1のイントラ色差予測モードが25を第2のイントラ色差予測モードに変換する際には25とする。第1のイントラ色差予測モードが27に対応する変数cの値が26になる場合においては、常に符号化することができる垂直予測を示す26を避けて、第1のイントラ色差予測モードが27を第2のイントラ色差予測モードに変換する際には27とする。即ち、イントラ輝度予測モードの値とイントラ色差予測モードの値が一致しないときにおいて選択されるイントラ色差予測モードのシンタックス要素(図14、図25の0、1、2、3)から導出可能な値(0、1、10、26、34)を回避するように丸める(変換する)。
この様に設定することで、イントラ色差予測モードの選択の幅が広がり、符号化効率を向上させることができる。本導出処理手順においては、イントラ輝度予測モードの値とイントラ色差予測モードの値が一致しないときにおいて選択されるイントラ色差予測モードのシンタックス要素(図14、図25の1)から導出可能な値26を回避するように変換するために、ステップS3110において、変数aの絶対値に1ビット右シフト演算を行う前に、変数aの絶対値に1を加える。
色差フォーマットが4:2:2において、図30の変換テーブルに対応する第1のイントラ色差予測モードから第2のイントラ色差予測モードに変換する際の導出処理手順について図32のフローチャートを用いて説明する。
角度予測ではない場合、即ち第1のイントラ予測モードIntraPredMode1が1以下の場合(図32のステップS3301のNO)、第1のイントラ予測モードIntraPredMode1の値をそのまま第2のイントラ色差予測モードIntraPredMode2として(図32のステップS3302)、本導出処理を終了する。
一方、第1のイントラ色差予測モードIntraPredMode1が角度予測の場合、即ち1より大きい場合(図32のステップS3301のYES)、ステップS3303以降の第1のイントラ色差予測モードから第2のイントラ色差予測モードへの変換処理を行う。
第1のイントラ色差予測モードIntraPredMode1が16より小さい場合、即ち15以下の場合(図32のステップS3303のYES)、図14のテーブルにより導出された第1のイントラ色差予測モードを水平予測(イントラ予測モード10)を中心に垂直方向に2倍にスケーリングし、2以上に制限することにより導出した値を第2のイントラ色差予測モードの値とする(図32のステップS3304〜S3307)。第1のイントラ色差予測モードIntraPredMode1から水平予測を示す10を減算して得られる値を変数aに設定する(図32のステップS3304)。続いて、変数aを2倍して得られる値を変数bに設定する(図32のステップS3305)。続いて、bに水平予測を示す10を加算して得られる値を変数cに設定する(図32のステップS3306)。続いて、変数cの値を2以上に制限して得られる値を第2のイントラ予測モードIntraPredMode2に設定し(図32のステップS3307)、本導出処理を終了する。具体的には、変数cが2以下の場合、イントラ予測モードIntraPredMode2の値を2とする。即ち、第1のイントラ色差予測モードの角度予測のモード番号をスケーリングして導出された値が、イントラ予測モードで規定される角度予測のモード番号の範囲外になったとき、導出された値をその範囲内の値にする。これにより、色差フォーマット4:2:2での色差信号のイントラ予測演算をハードウェアで実装する場合、第2のイントラ色差予測モードを用いたイントラ予測演算を、ハードウェアを追加することなく行うことができる。
一方、第1のイントラ色差予測モードIntraPredMode1が16より小さくない場合、即ち16以上の場合(図32のステップS3303のNO)、図14のテーブルにより導出された第1のイントラ色差予測モードを垂直予測(イントラ予測モード26)を中心に水平方向に2分の1倍にスケーリングすることにより導出した値を第2のイントラ色差予測モードの値とする(図32のステップS3308〜S3312)。第1のイントラ色差予測モードIntraPredMode1から垂直予測を示す26を減算して得られる値を変数aに設定する(図32のステップS3308)。続いて、変数aの正負符号に応じて、負の場合−1、正または変数aが0の場合1の値を持つ変数SignIntraPredModeに値を設定する(図32のステップS3309)。続いて変数aの絶対値に2分の1倍と等価の1ビット右シフト演算を行った結果に変数SignIntraPredModeを乗算して得られる値を変数bに設定する(図32のステップS3310)。なお、変数aの絶対値に1を加えてから2分の1倍と等価の1ビット右シフト演算を行った結果に変数SignIntraPredModeを乗算してえられる値を変数bに設定してもよい。続いて、bに垂直予測を示す26を加算して得られる値を変数cに設定する(図32のステップS3311)。続いて、変数cの値を第2のイントラ予測モードIntraPredMode2に設定し(図32のステップS3312)、本導出処理を終了する。なお、第1のイントラ色差予測モードが25に対応する変数cの値が26になる場合においては、常に符号化することができる垂直予測を示す26を避けて、第1のイントラ色差予測モードが25を第2のイントラ色差予測モードに変換する際には25とする。第1のイントラ色差予測モードが27に対応する変数cの値が26になる場合においては、常に符号化することができる垂直予測を示す26を避けて、第1のイントラ色差予測モードが27を第2のイントラ色差予測モードに変換する際には27とする。つまり、図15、図16、図17、図30及び図33に示す変換テーブルを用いて第1のイントラ色差予測モードから第2のイントラ色差予測モードに変換する際には、第1のイントラ色差予測モードが垂直予測である26でない場合には、垂直予測である26を回避した値に変換することにより、第1イントラ色差予測モードから第2イントラ色差予測モードを導出する。即ち、イントラ輝度予測モードの値とイントラ色差予測モードの値が一致しないときにおいて選択されるイントラ色差予測モードのシンタックス要素(図14、図25の0、1、2、3)から導出可能な値(0、1、10、26、34)を回避するように丸める(変換する)。本導出処理手順においては、イントラ輝度予測モードの値とイントラ色差予測モードの値が一致しないときにおいて選択されるイントラ色差予測モードのシンタックス要素(図14、図25の1)から導出可能な値26を回避するように変換するために、ステップS3310において、変数aの絶対値に1ビット右シフト演算を行う前に、変数aの絶対値に1を加える。
なお、本導出処理手順のステップS3303において、イントラ色差予測モードIntraPredMode1が16より小さい場合、即ち15以下の場合、第1のイントラ色差予測モードを水平予測(イントラ予測モード10)を中心に垂直方向に2倍にスケーリングし、2以上に制限することにより導出した値を第2のイントラ色差予測モードの値とし(図32のステップS3304〜S3307)、イントラ色差予測モードIntraPredMode1が16より小さくない場合、即ち16以上の場合、第1のイントラ色差予測モードを垂直予測(イントラ予測モード26)を中心に水平方向に2分の1倍にスケーリングすることにより導出した値を第2のイントラ色差予測モードの値としたが(図32のステップS3308〜S3312)、イントラ色差予測モードIntraPredMode1が15より小さい場合、即ち14以下の場合、第1のイントラ色差予測モードを水平予測(イントラ予測モード10)を中心に垂直方向に2倍にスケーリングすることにより導出した値を第2のイントラ色差予測モードの値とし(図32のステップS3304〜S3307)、イントラ色差予測モードIntraPredMode1が15より小さくない場合、即ち15以上の場合、第1のイントラ色差予測モードを垂直予測(イントラ予測モード26)を中心に水平方向に2分の1倍にスケーリングすることにより導出した値を第2のイントラ色差予測モードの値としてもよく(図32のステップS3308〜S3312)、変換結果は結果は同じである。なぜなら、イントラ色差予測モードIntraPredMode1が15の場合、第1のイントラ色差予測モードを水平予測(イントラ予測モード10)を中心に垂直方向に2倍にスケーリングして導出した値と、第1のイントラ色差予測モードを垂直予測(イントラ予測モード26)を中心に水平方向に2分の1倍にスケーリングすることにより導出した値が等しいからである。
次に、色差フォーマットが4:2:2において、図33の変換テーブルに対応する第1のイントラ色差予測モードから第2のイントラ色差予測モードに変換する際の導出処理手順について図35のフローチャートを用いて説明する。
角度予測ではない場合、即ち第1のイントラ予測モードIntraPredMode1が1以下の場合(図35のステップS3401のNO)、第1のイントラ予測モードIntraPredMode1の値をそのまま第2のイントラ色差予測モードIntraPredMode2として(図35のステップS3402)、本導出処理を終了する。
一方、第1のイントラ色差予測モードIntraPredMode1が角度予測の場合、即ち1より大きい場合(図35のステップS3401のYES)、ステップS3403以降の第1のイントラ色差予測モードから第2のイントラ色差予測モードへの変換処理を行う。
第1のイントラ色差予測モードIntraPredMode1が7より小さい場合、即ち6以下の場合(図35のステップS3403のYES)、第1のイントラ色差予測モードIntraPredMode1から水平予測を示す3を減算して得られる値を変数cに設定する(図35のステップS3407)。続いて、変数cの値を2以上に制限して得られる値を第2のイントラ予測モードIntraPredMode2に設定し(図35のステップS3408)、本導出処理を終了する。具体的には、変数cが2以上の場合、イントラ予測モードIntraPredMode2に変数cをそのまま設定し、変数cが2未満の場合、イントラ予測モードIntraPredMode2に2を設定する。即ち、第1のイントラ色差予測モードの角度予測のモード番号をスケーリングして導出された値が、イントラ予測モードで規定される角度予測のモード番号の範囲外になったとき、導出された値をその範囲内の値にする。これにより、色差フォーマット4:2:2での色差信号のイントラ予測演算をハードウェアで実装する場合、第2のイントラ色差予測モードを用いたイントラ予測演算を、ハードウェアを追加することなく行うことができる。
一方、第1のイントラ色差予測モードIntraPredMode1が7より小さくなく、第1のイントラ色差予測モードIntraPredMode1が14より小さい場合、即ち7以上13以下の場合(図35のステップS3403のNOでステップS3404のYES)、図14のテーブルにより導出された第1のイントラ色差予測モードを水平予測(イントラ予測モード10)を中心に垂直方向に2倍にスケーリングすることにより導出した値を第2のイントラ色差予測モードの値とする(図35のステップS3409〜S3412)。第1のイントラ色差予測モードIntraPredMode1から水平予測を示す10を減算して得られる値を変数aに設定する(図35のステップS3409)。続いて、変数aを2倍して得られる値を変数bに設定する(図35のステップS3410)。続いて、bに水平予測を示す10を加算して得られる値を変数cに設定する(図35のステップS3411)。続いて、変数cの値を第2のイントラ予測モードIntraPredMode2に設定し(図35のステップS3412)、本導出処理を終了する。
一方、第1のイントラ色差予測モードIntraPredMode1が14より小さくなく、21より小さい場合、即ち14以上20以下の場合(図35のステップS3404のNOでステップS3405のYES)、第1のイントラ色差予測モードIntraPredMode1に3を加算して得られる値を変数cに設定する(図35のステップS3413)。続いて、変数cの値を第2のイントラ予測モードIntraPredMode2に設定し(図35のステップS3414)、本導出処理を終了する。
一方、第1のイントラ色差予測モードIntraPredMode1が21より小さくなく、32より小さい場合、即ち21以上31以下の場合(図35のステップS3405のNOでステップS3406のYES)、図14のテーブルにより導出された第1のイントラ色差予測モードを垂直予測(イントラ予測モード26)を中心に水平方向に2分の1倍にスケーリングすることにより導出した値を第2のイントラ色差予測モードの値とする(図35のステップS3415〜S3419)。第1のイントラ色差予測モードIntraPredMode1から垂直予測を示す26を減算して得られる値を変数aに設定する(図35のステップS3415)。続いて、変数aの正負符号に応じて、負の場合−1、正または変数aが0の場合1の値を持つ変数SignIntraPredModeに値を設定する(図35のステップS3416)。続いて変数aの絶対値に2分の1倍と等価の1ビット右シフト演算を行った結果に変数SignIntraPredModeを乗算して得られる値を変数bに設定する(図35のステップS3417)。なお、変数aの絶対値に1を加えてから2分の1倍と等価の1ビット右シフト演算を行った結果に変数SignIntraPredModeを乗算してえられる値を変数bに設定してもよい。続いて、bに垂直予測を示す26を加算して得られる値を変数cに設定する(図35のステップS3418)。続いて、変数cの値を第2のイントラ予測モードIntraPredMode2に設定し(図35のステップS3419)、本導出処理を終了する。なお、第1のイントラ色差予測モードが25に対応する変数cの値が26になる場合においては、常に符号化することができる垂直予測を示す26を避けて、第1のイントラ色差予測モードが25を第2のイントラ色差予測モードに変換する際には25とする。第1のイントラ色差予測モードが27に対応する変数cの値が26になる場合においては、常に符号化することができる垂直予測を示す26を避けて、第1のイントラ色差予測モードが27を第2のイントラ色差予測モードに変換する際には27とする。即ち、イントラ輝度予測モードの値とイントラ色差予測モードの値が一致しないときにおいて選択されるイントラ色差予測モードのシンタックス要素(図14、図25の0、1、2、3)から導出可能な値(0、1、10、26、34)を回避するように丸める(変換する)。本導出処理手順においては、イントラ輝度予測モードの値とイントラ色差予測モードの値が一致しないときにおいて選択されるイントラ色差予測モードのシンタックス要素(図14、図25の1)から導出可能な値26を回避するように変換するために、ステップS3417において、変数aの絶対値に1ビット右シフト演算を行う前に、変数aの絶対値に1を加える。
一方、第1のイントラ色差予測モードIntraPredMode1が32より小さくない場合、即ち32以上の場合(図35のステップS3416のNO)、第1のイントラ色差予測モードIntraPredMode1から3を減算して得られる値を変数cに設定する(図35のステップS3420)。続いて、変数cの値を第2のイントラ予測モードIntraPredMode2に設定し(図35のステップS3421)、本導出処理を終了する。
なお、本導出処理手順のステップS3403において、イントラ色差予測モードIntraPredMode1が6以下の場合、第1のイントラ色差予測モードから3を減算して得られる値を2以上に制限して第2のイントラ色差予測モードとしたが、簡略化のために、ステップS3403の条件判断を省略して、イントラ色差予測モードIntraPredMode1が7以上13以下の場合と同様に、イントラ色差予測モードIntraPredMode1が6以下の場合においても、第1のイントラ色差予測モードを水平予測(イントラ予測モード10)を中心に垂直方向に2倍にスケーリングすることにより導出した値を第2のイントラ色差予測モードの値とすることもできる(図35のステップS3409〜S3412)。ただし、ステップS3412では、S3408と同様にステップS3411で導出される変数cを2以上に制限して第2のイントラ色差予測モードとする。
さらに、本導出処理手順のステップS3406において、イントラ色差予測モードIntraPredMode1が32以上の場合、第1のイントラ色差予測モードから3を減算して得られる値を第2のイントラ色差予測モードとしたが、簡略化のために、ステップS3406の条件判断を省略して、イントラ色差予測モードIntraPredMode1が21以上31以下の場合と同様に、イントラ色差予測モードIntraPredMode1が32以上の場合においても、第1のイントラ色差予測モードを垂直予測(イントラ予測モード26)を中心に水平方向に2分の1倍にスケーリングすることにより導出した値を第2のイントラ色差予測モードの値とすることもできる(図35のステップS3415〜S3419)。
一方、色差フォーマットが4:2:0または4:4:4の場合は、輝度信号のイントラ予測方向と色差信号の水平方向と垂直方向の標本化の比率が一致するので、図14のテーブルにより導出された第1のイントラ色差予測モードを第2のイントラ色差予測モードに変換する必要はない。このことを図22を参照して説明する。図22は色差フォーマットが4:2:0の場合の輝度信号、及び色差信号のイントラ予測の予測方向の対応関係を説明する図である。図22(a)は、色差フォーマットが4:2:0の場合の輝度信号と色差信号の配置を示すものであり、色差信号は輝度信号に対して水平、垂直ともに1/2で標本化(サンプリング)されており、輝度信号と色差信号の画素のアスペクト比が同じである。符号2704に示す画素P4から画素P5への矢印は、輝度信号の画素P4のイントラ予測方向を示す。符号2705に示す画素P1から画素P2への矢印は、色差信号の画素P1のイントラ予測方向を示す。符号2704に示す画素P4から画素P5への矢印と符号2705に示す画素P1から画素P2への矢印は同じ方向を向いており、イントラ予測方向は同一である。この場合、図22(b)に示す色差信号の配列においても、輝度信号のイントラ予測方向はそのまま、符号2706に示すように、色差信号のイントラ予測方向であり、色差信号の画素P1の参照先の画素P2を正しく参照することができる。
なお、イントラ予測部103でも以上の点を考慮して、イントラ色差予測モードの値を予測する場合、色差フォーマットに応じて、色差信号の予測ブロックと同じ位置の予測ブロックのイントラ輝度予測モードの値からイントラ色差予測モードの値を予測する。即ち、輝度信号と色差信号の画素のアスペクト比が同じである色差フォーマットが4:2:0または4:4:4でイントラ色差予測モードの値を予測する場合、図14のテーブルから得られたイントラ色差予測モードの値をそのまま、色差フォーマット4:2:0または4:4:4用のイントラ色差予測モードの値とし、このイントラ色差予測モードに応じて色差信号のイントラ予測を行う。色差フォーマットが4:2:2でイントラ色差予測モードの値を予測する場合、図15、図16、図17、図30、または図33に示す変換テーブルにより、図14のテーブルから得られたイントラ色差予測モードの値から色差フォーマット4:2:2用のイントラ色差予測モードの値を導出し、このイントラ色差予測モードに応じて色差信号のイントラ予測を行う。
図25はイントラ色差予測モードの値と色差信号の予測ブロックと同じ位置の輝度信号の予測ブロックのイントラ輝度予測モードの値からイントラ色差予測モードに関するシンタックス要素intra_chroma_pred_mode[ x0 ][ y0 ]の値を導出するテーブルであり、符号化側で用いる図25のテーブルは復号側で用いる図14のテーブルに対応している。この図25に示すテーブルを用いて、符号化側では、シンタックス要素intra_chroma_pred_mode[ x0 ][ y0 ]の値を導出する。
第1または第2のイントラ色差予測モードの値が0の場合、色差信号の予測ブロックと同じ位置の予測ブロックのイントラ輝度予測モードの値が0でなければ、シンタックス要素intra_chroma_pred_mode[ x0 ][ y0 ]の値は0の値をとり、イントラ輝度予測モードの値が0であれば、シンタックス要素intra_chroma_pred_mode[ x0 ][ y0 ]の値は4の値をとる。
第1または第2のイントラ色差予測モードの値が26の場合、色差信号の予測ブロックと同じ位置の予測ブロックのイントラ輝度予測モードの値が26でなければ、シンタックス要素intra_chroma_pred_mode[ x0 ][ y0 ]の値は1の値をとり、イントラ輝度予測モードの値が26であれば、シンタックス要素intra_chroma_pred_mode[ x0 ][ y0 ]の値は4の値をとる。
第1または第2のイントラ色差予測モードの値が10の場合、色差信号の予測ブロックと同じ位置の予測ブロックのイントラ輝度予測モードの値が10でなければ、シンタックス要素intra_chroma_pred_mode[ x0 ][ y0 ]の値は2の値をとり、イントラ輝度予測モードの値が10であれば、シンタックス要素intra_chroma_pred_mode[ x0 ][ y0 ]の値は4の値をとる。
第1または第2のイントラ色差予測モードの値が1の場合、色差信号の予測ブロックと同じ位置の予測ブロックのイントラ輝度予測モードの値が10でなければ、シンタックス要素intra_chroma_pred_mode[ x0 ][ y0 ]の値は3の値をとり、イントラ輝度予測モードの値が10であれば、シンタックス要素intra_chroma_pred_mode[ x0 ][ y0 ]の値は4の値をとる。
第1のイントラ色差予測モードの値が34の場合、色差信号の予測ブロックと同じ位置の予測ブロックのイントラ輝度予測モードの値が0でなければ、シンタックス要素intra_chroma_pred_mode[ x0 ][ y0 ]の値は0の値をとり、イントラ輝度予測モードの値が1であれば、シンタックス要素intra_chroma_pred_mode[ x0 ][ y0 ]の値は1の値をとり、イントラ輝度予測モードの値が2であれば、シンタックス要素intra_chroma_pred_mode[ x0 ][ y0 ]の値は2の値をとり、イントラ輝度予測モードの値が3であれば、シンタックス要素intra_chroma_pred_mode[ x0 ][ y0 ]の値は3の値をとり、イントラ輝度予測モードの値が34であれば、シンタックス要素intra_chroma_pred_mode[ x0 ][ y0 ]の値は4の値をとる。
第1のイントラ色差予測モードの値が色差信号の予測ブロックと同じ位置の予測ブロックのイントラ輝度予測モードの値と同じ場合、シンタックス要素intra_chroma_pred_mode[ x0 ][ y0 ]の値は4の値をとる。ただし、色差フォーマットが4:2:2でイントラ色差予測モードの値を予測する場合、イントラ予測部103では、図15、図16、図17、図30、または図33に示す変換テーブルにより、色差フォーマット4:2:0または4:4:4用の第1のイントラ色差予測モードから色差フォーマット4:2:2用の第2のイントラ色差予測モードが導出され、第2のイントラ色差予測モードが色差フォーマット4:2:2用の色差信号のイントラ予測に用いられる。
なお、色差信号の予測ブロックと同じ位置の輝度信号の予測ブロックを特定する際には、それぞれの予測ブロックを特定する分割インデックスPartIdxを参照することにより特定してもよいし、それぞれの予測ブロックの位置を示す座標を参照することにより特定してもよい。
なお、色差フォーマット設定部101から供給される分割モードと色差フォーマットの組み合わせ応じて符号化ブロック内の予測ブロックのイントラ色差予測モードの数が異なる。分割モードが2N×2N分割の場合、色差フォーマットの種類にかかわらず、符号化ブロック毎に1個の予測ブロックのイントラ色差予測モードに関するシンタックス要素の値を導出する。
分割モードがN×N分割で色差フォーマットが4:2:0の場合、符号化ブロック毎に1個の予測ブロックのイントラ色差予測モードに関するシンタックス要素の値を導出する。分割モードがN×N分割で色差フォーマットが4:2:2の場合、符号化ブロック毎に2個の予測ブロックのイントラ色差予測モードに関するシンタックス要素の値を導出する。分割モードがN×N分割で色差フォーマットが4:4:4の場合、符号化ブロック毎に4個の予測ブロックのイントラ色差予測モードに関するシンタックス要素の値を導出する。図11はイントラ予測の際のN×N分割での符号化ブロックの色差信号の予測ブロックへの分割方法を説明する図である。図11(a)は、N×N分割での輝度信号を示し、図11(b)は、色差フォーマットが4:2:0の場合のN×N分割での色差信号を示し、図11(c)は、色差フォーマットが4:2:2の場合のN×N分割での色差信号を示し、図11(d)は、色差フォーマットが4:4:4の場合のN×N分割での色差信号を示す。色差フォーマットが4:2:0、4:4:4の場合、輝度信号の符号化ブロックと色差信号の符号化ブロックが相似し、両ブロックのアスペクト比が一致する。色差フォーマットが4:2:2の場合、輝度信号の符号化ブロックと色差信号の符号化ブロックが相似せず、両符号化ブロックのアスペクト比が異なる。なお、色差フォーマットが4:2:0の場合と同様に、色差フォーマットが4:2:2や4:4:4の場合においても、分割モードがN×N分割の色差信号において符号化ブロックを分割せずに1個の予測ブロックとすることもできる。なお、色差フォーマットが4:0:0の場合と同様に、色差フォーマットが4:2:2や4:4:4の場合においても、分割モードがN×N分割の色差信号において符号化ブロックを分割せずに1個の予測ブロックとすることもできる。
インター予測情報に関するシンタックス要素導出部124は、符号化ブロックの予測モード(PredMode)がインター予測(MODE_INTER)の場合に、予測ブロック単位のインター予測情報に関するシンタックス要素の値を導出し、導出した各シンタックス要素の値をエントロピー符号化部126に供給する。予測ブロック単位のインター予測情報には、インター予測モード(L0予測、L1予測、両予測)、複数の参照画像を特定するインデックス、動きベクトル等の情報が含まれる。
エントロピー符号化部126は、符号化ブロック単位の符号化情報に関するシンタックス要素導出部121から供給される符号化ブロック単位の符号化情報に関するシンタックス要素の値、イントラ輝度予測モードに関するシンタックス要素導出部122から供給される輝度信号の予測ブロックのイントラ輝度予測モードに関するシンタックス要素の値、イントラ色差予測モードに関するシンタックス要素導出部123から供給される色差信号の予測ブロックのイントラ色差予測モードに関するシンタックス要素の値、及びインター予測情報に関するシンタックス要素導出部124から供給される予測ブロック単位のインター予測情報に関するシンタックス要素の値を既定のシンタックス規則に従ってエントロピー符号化する。その際、イントラ予測モード符号化制御部125は分割モードと色差フォーマットに応じて、イントラ輝度予測モードとイントラ色差予測モードのエントロピー符号化の順序を制御し、エントロピー符号化部126はそのイントラ予測モード符号化制御部125で指示された順序で、イントラ輝度予測モードとイントラ色差予測モードのエントロピー符号化処理を行う。
次に、図2の第2の符号化ストリーム復号部203で行われる符号化ブロック、及び予測ブロック単位での符号化情報の復号処理について実施の形態の特徴であるイントラ予測モードに係わるポイントを中心に説明する。図13は図2の第2の符号化ストリーム復号部203の構成を示すブロック図である。
図13に示すように、図2の第2の符号化ストリーム復号部203は、イントラ予測モード復号制御部221、エントロピー復号部222、符号化ブロック単位の符号化情報導出部223、イントラ輝度予測モード導出部224、イントラ色差予測モード導出部225、インター予測情報導出部226から構成されている。第2の符号化ストリーム復号部203を構成する各部においては、色差フォーマット管理部205から供給される色差フォーマット情報に応じた処理が行われるとともに、符号化ブロック単位の予測モード、分割モード等の符号化情報に応じた処理が行われる。
エントロピー復号部222は、符号化ストリーム分離部201から供給される符号化ブロック、及び予測ブロック単位の符号化情報を含む第2の符号化ストリームを既定のシンタックス規則に従ってエントロピー復号して、符号化ブロック単位の符号化情報に関するシンタックス要素の値、輝度信号の予測ブロックのイントラ輝度予測モードに関するシンタックス要素の値、色差信号の予測ブロックのイントラ色差予測モードに関するシンタックス要素の値、及び予測ブロック単位のインター予測情報に関するシンタックス要素の値を得る。その際、イントラ予測モード復号制御部221は分割モードと色差フォーマットに応じて、イントラ輝度予測モードとイントラ色差予測モードのエントロピー復号の順序を制御し、エントロピー復号部222はそのイントラ予測モード復号制御部221で指示された順序で、イントラ輝度予測モードとイントラ色差予測モードのエントロピー復号処理を行う。イントラ予測モード復号制御部221は符号化側のイントラ予測モード符号化制御部125に対応する制御部であり、分割モードと色差フォーマットに応じてイントラ予測モード符号化制御部125で設定するイントラ予測モードの符号化順序と同じイントラ予測モードの復号順序を設定し、エントロピー復号部222のイントラ予測モードの復号順序を制御する。エントロピー復号部222は符号化側のエントロピー符号化部126に対応する復号部であり、エントロピー符号化部126で用いたシンタックス規則と同一の規則でエントロピー復号処理を行う。
復号されて得た符号化ブロック単位の符号化情報に関するシンタックス要素の値は符号化ブロック単位の符号化情報導出部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 ]の値とイントラ輝度予測モード導出部224から供給されるイントラ輝度予測モードの値から図14のテーブルに従い、第1のイントラ色差予測モードの値を導出する。色差フォーマットが4:2:0または4:4:4の場合には第1のイントラ色差予測モードを色差信号のイントラ予測モードとしてスイッチ212を介してイントラ予測部206に供給する。また、色差フォーマットが4:2:2の場合には図15、図16、図17、図30、または図33の変換テーブルにより、第1のイントラ色差予測モードから第2のイントラ色差予測モードを導出し、第2のイントラ色差予測モードを色差信号のイントラ予測モードとしてスイッチ212を介してイントラ予測部206に供給する。イントラ色差予測モード導出部225は符号化側のイントラ色差予測モードに関するシンタックス要素導出部123に対応する符号化情報導出部であり、符号化側と復号側で共通の規則に従って導出する。符号化側では、イントラ色差予測モードの符号化においては、色差信号の予測ブロックと同じ位置の輝度信号の予測ブロックのイントラ輝度予測モードとの相関性を利用し、符号化側で、イントラ色差予測モードが色差信号の予測ブロックと同じ位置の輝度信号の予測ブロックのイントラ輝度予測モードからの予測値が最も適していると判断された場合はイントラ輝度予測モードの値からイントラ色差予測モードの値が予測され、イントラ輝度予測モードから予測するよりもイントラ色差予測モードに独自の値を設定した方が良いと判断された場合に、イントラ色差予測モードに代表的なイントラ予測モードである0(平面予測)、1(平均値予測)、10(水平予測)、26(垂直予測)、34(斜め予測)のいずれかの値を設定する仕組みを用いることにより、符号量が削減されている。
インター予測情報導出部226は、符号化ブロックの予測モード(PredMode)がインター予測(MODE_INTER)の場合に、予測ブロック単位のインター予測情報に関するシンタックス要素の値からインター予測情報を導出し、導出したインター予測情報の値をスイッチ212を介してインター予測部207に供給する。インター予測情報導出部226は符号化側のインター予測情報に関するシンタックス要素導出部124に対応するインター予測情報導出部であり、符号化側と復号側で共通の規則に従って導出する。導出される予測ブロック単位のインター予測情報には、インター予測モード(L0予測、L1予測、両予測)、複数の参照画像を特定するインデックス、動きベクトル等の情報が含まれる。
次に、復号側でのイントラ予測モードの復号及びイントラ予測の処理手順について説明する。図26は復号側の第2の符号化ストリーム復号部203及びイントラ予測部206で実施されるイントラ予測モードの復号及びイントラ予測の処理手順を説明する図である。まず、第2の符号化ストリーム復号部203のイントラ輝度予測モード導出部224でイントラ輝度予測モードが復号される(図26のステップS4001)。続いて、第2の符号化ストリーム復号部203のイントラ色差予測モード導出部225で図14のテーブルに従い、第1のイントラ色差予測モードが復号される(図26のステップS4002)。続いて、色差フォーマットが4:2:2でない場合(図26のステップS4003のNO)、ステップS4004に進み、色差フォーマットが4:2:2の場合(図26のステップS4003のYES)、第2の符号化ストリーム復号部203のイントラ色差予測モード導出部225で図15、図16、図17、図30、または図33の変換テーブルにより、第1のイントラ色差予測モードから第2のイントラ色差予測モードを導出する(図26のステップS4004)。続いて、イントラ予測部206で、輝度信号、及び色差信号のイントラ予測を行う(図26のステップS4004)。なお、図26のステップS4004の第1のイントラ色差予測モードから第2のイントラ色差予測モードを導出する処理は第2の符号化ストリーム復号部203のイントラ色差予測モード導出部225の代わりにイントラ予測部206で実施してもよい。
なお、平面予測のイントラ予測モードが0及び平均値予測のイントラ予測モードが1においては、色差フォーマット4:2:0、色差フォーマット4:4:4と同様に、色差フォーマット4:2:2の際にも、それぞれ平面予測のイントラ予測モードが0及び平均値予測のイントラ予測モードが1としてイントラ予測を実施するので、図15、図16、図17、図30、または図33の変換テーブルにおいて、第1のイントラ色差予測モードから第2のイントラ色差予測モードに変換しても値は同じとしている。したがって、角度予測でないイントラ予測モード0及び1の際は、図15、図16、図17、図30、または図33の変換テーブルを用いて第1のイントラ色差予測モードの値から第2のイントラ色差予測モードの値を導出してからイントラ予測を実施してもよいし、図15、図16、図17、図30、または図33の変換テーブルを用いて第2のイントラ色差予測モードを導出せずに、第1のイントラ色差予測モードに従ってそのままイントラ予測を実施してもよい。
本実施の形態の画像符号化装置、及び画像復号装置においては、色差フォーマットが4:2:2の場合には、図15、図16、図17、図30、または図33の変換テーブルを用いて第1のイントラ色差予測モードの値から第2のイントラ色差予測モードの値を導出するものとして説明したが、変換テーブルの代わりに計算式により、第1のイントラ色差予測モードの値から第2のイントラ色差予測モードの値を導出してもよい。
本実施の形態の画像符号化装置、及び画像復号装置においては、輝度信号と色差信号の画素のアスペクト比が異なる色差フォーマットが4:2:2の場合には、図15、図16、図17、図30、または図33の変換テーブルを用いて第1のイントラ色差予測モードの値から第2のイントラ色差予測モードの値を導出するものとして説明したが、符号化装置のイントラ予測部103及び復号装置のイントラ予測部206において、第2のイントラ色差予測モードに変換する代わりに、図27、または図28に示すイントラ予測モードから色差フォーマット4:2:2の色差信号以外のイントラ予測の角度(輝度信号用のイントラ予測の角度、及び色差フォーマット4:2:0、4:4:4の色差信号用のイントラ予測の角度)に加えて、色差フォーマット4:2:2の色差信号用のイントラ予測の角度に対応づけるテーブルを用意して、色差フォーマットが4:2:2の際にはこのテーブルを用いて第1のイントラ色差予測モードから色差フォーマット4:2:2の色差信号用のイントラ予測の角度を導出し、この角度を用いて色差信号のイントラ予測を行うこともできる。図27、及び図28はイントラ予測モードから色差フォーマット4:2:2の色差信号以外のイントラ予測の角度(輝度信号用のイントラ予測の角度、及び色差フォーマット4:2:0、4:4:4の色差信号用のイントラ予測の角度)に加えて色差フォーマット4:2:2用の色差信号のイントラ予測の角度を導出する際に用いるテーブルである。図27は、図15の変換テーブルを用いて第1のイントラ色差予測モードの値から第2のイントラ色差予測モードの値を導出して色差信号のイントラ予測を行ったのと同じ結果となるように色差フォーマット4:2:2の色差信号用のイントラ予測の角度を設定したテーブルである。色差フォーマットが4:2:2において、図27のテーブルに従って色差信号用のイントラ予測の角度を導出し、イントラ予測を行うことにより、図15の変換テーブルを用いて第1のイントラ色差予測モードの値から第2のイントラ色差予測モードの値を導出して色差信号のイントラ予測を行ったのと同じ結果となる。
また、図28は、イントラ予測の角度を垂直方向に2倍、水平方向に2分の1倍にした結果を設定したテーブルである。色差フォーマットが4:2:2において、第1のイントラ色差予測の角度から第2のイントラ色差予測の角度に変換する際の図28テーブルの導出処理手順について図29のフローチャートを用いて説明する。
第1のイントラ予測モードIntraPredMode1の0から34までの各値において、図29のフローチャートの手順により、色差フォーマット4:2:2の色差信号のイントラ予測に用いる第2のイントラ予測の角度IntraPredMode2を導出する。
まず、角度予測ではない場合、即ち第1のイントラ予測モードIntraPredMode1が1以下の場合(図29のステップS3201のNO)、本導出処理を終了する。第1のイントラ予測モードIntraPredMode1が1以下なのは周囲の復号済みのブロックから画素値を内挿することにより予測する平面予測(イントラ予測モードintraPredMode1=0)、周囲の復号済みのブロックから平均値を導出することにより予測する平均値予測(イントラ予測モードintraPredMode1=1)である。
一方、第1のイントラ色差予測モードIntraPredMode1が角度予測の場合、即ち1より大きい場合(図29のステップS3201のYES)、ステップS3202以降の第1のイントラ予測の角度から第2のイントラ予測の角度への変換処理を行う。
イントラ色差予測モードIntraPredMode1が18より小さい場合(図29のステップS3202のYES)、第1のイントラ色差予測モードIntraPredMode1に対応する第1のイントラ予測の角度IntraPredAngle1を2倍して、第2のイントラ予測の角度IntraPredAngle2とする(図29のステップS3203)。さらに、第2のイントラ予測の角度IntraPredAngle2を−32以上32以下に制限し(図29のステップS3204)、本導出処理を終了する。具体的には、第2のイントラ予測の角度IntraPredAngle2が−32よりも小さい場合は、第2のイントラ予測の角度IntraPredAngle2に−32を設定し、第2のイントラ予測の角度IntraPredAngle2が32よりも大きい場合は、第2のイントラ予測の角度IntraPredAngle2に32を設定する。イントラ予測モードIntraPredMode2が2以上18未満の場合、イントラ予測モードIntraPredMode2はそのままとなる。
一方、イントラ色差予測モードIntraPredMode1が18より小さくない場合、即ち18以上の場合(図29のステップS3202のNO)、第1のイントラ色差予測モードIntraPredMode1に対応する第1のイントラ予測の角度IntraPredAngle1を2分の1倍して、第2のイントラ予測の角度IntraPredAngle2とし(図29のステップS3205)、本導出処理を終了する。本実施例では、第1のイントラ予測の角度IntraPredAngle1に2分の1倍と等価の1ビット右シフト演算を行った結果を第2のイントラ予測の角度IntraPredAngle2に設定する。
以上においては、色差フォーマットが4:2:2の場合に、図28のテーブルを用いて第1のイントラ予測の角度から第2のイントラ予測の角度を導出するものとして説明したが、符号化装置のイントラ予測部103及び復号装置のイントラ予測部206において、図28のテーブルの代わりに図29の処理手順による導出方法により、第1のイントラ色差予測モードの値から第2のイントラ予測の角度を導出してもよい。
以上述べた実施の形態の画像符号化装置が出力する動画像の符号化ストリームは、実施の形態で用いられた符号化方法に応じて復号することができるように特定のデータフォーマットを有しており、画像符号化装置に対応する画像復号装置がこの特定のデータフォーマットの符号化ストリームを復号することができる。
画像符号化装置と画像復号装置の間で符号化ストリームをやりとりするために、有線または無線のネットワークが用いられる場合、符号化ストリームを通信路の伝送形態に適したデータ形式に変換して伝送してもよい。その場合、画像符号化装置が出力する符号化ストリームを通信路の伝送形態に適したデータ形式の符号化データに変換してネットワークに送信する画像送信装置と、ネットワークから符号化データを受信して符号化ストリームに復元して画像復号装置に供給する画像受信装置とが設けられる。
画像送信装置は、画像符号化装置が出力する符号化ストリームをバッファするメモリと、符号化ストリームをパケット化するパケット処理部と、パケット化された符号化データをネットワークを介して送信する送信部とを含む。画像受信装置は、パケット化された符号化データをネットワークを介して受信する受信部と、受信された符号化データをバッファするメモリと、符号化データをパケット処理して符号化ストリームを生成し、画像復号装置に提供するパケット処理部とを含む。
以上の符号化及び復号に関する処理は、ハードウェアを用いた伝送、蓄積、受信装置として実現することができるのは勿論のこと、ROM(リード・オンリ・メモリ)やフラッシュメモリ等に記憶されているファームウェアや、コンピュータ等のソフトウェアによっても実現することができる。そのファームウェアプログラム、ソフトウェアプログラムをコンピュータ等で読み取り可能な記録媒体に記録して提供することも、有線あるいは無線のネットワークを通してサーバから提供することも、地上波あるいは衛星ディジタル放送のデータ放送として提供することも可能である。
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。