まず、本発明の実施の形態の前提となる技術を説明する。
現在、MPEG(Moving Picture Experts Group)などの符号化方式に準拠した装置およびシステムが普及している。そのような符号化方式では、時間軸上に連続する複数の画像をデジタル信号の情報として取り扱う。その際、効率の高い情報の放送、伝送または蓄積などを目的とし、画像を複数のブロックに分割して時間方向の冗長性を利用した動き補償予測、および空間方向の冗長性を利用した離散コサイン変換などの直交変換を用いて圧縮符号化する。
2003年に、国際標準化機構(ISO)と国際電気標準会議(IEC)のジョイント技術委員会(ISO/IEC)と、国際電気通信連合電気通信標準化部門(ITU−T)の共同作業によってMPEG−4 AVC/H.264と呼ばれる符号化方式(ISO/IECでは14496−10、ITU−TではH.264の規格番号がつけられている。以下、これをMPEG−4AVCと呼ぶ)が国際標準として制定された。MPEG−4AVCでは、基本的に処理対象ブロックの複数の隣接ブロックの動きベクトルの中央値を予測ベクトルとする。予測ブロックサイズが正方形でない場合で処理対象ブロックの特定の隣接ブロックの参照インデックスと処理対象ブロックの参照インデックスが一致する場合には、その特定の隣接ブロックの動きベクトルを予測ベクトルとする。
現在、国際標準化機構(ISO)と国際電気標準会議(IEC)のジョイント技術委員会(ISO/IEC)と、国際電気通信連合電気通信標準化部門(ITU−T)の共同作業によってHEVCと呼ばれる符号化方式の標準化が検討されている。
HEVCの標準化では、複数の隣接ブロックと復号済みの別の画像のブロックを候補ブロックとして、これら候補ブロックで構成される候補ブロック群から1つの候補ブロックが選択されて、選択された候補ブロックの情報が符号化および復号されるマージモードが検討されている。
[実施の形態1]
(符号化ブロック)
本実施の形態では、入力された画像信号は最大符号化ブロック単位に分割され、分割された最大符号化ブロックをラスタースキャン順序で処理する。符号化ブロックは階層構造となっており、符号化効率などを考慮して順次4分割することでより小さい符号化ブロックにすることができる。なお、4分割された符号化ブロックはジグザグスキャン順で符号化される。これ以上小さくすることのできない符号化ブロックを最小符号化ブロックと呼ぶ。符号化ブロックは符号化の単位となり、最大符号化ブロックも分割回数が0である場合は符号化ブロックとなる。本実施の形態では、最大符号化ブロックを64画素×64画素、最小符号化ブロックを8画素×8画素とする。
図1(a)、(b)は、符号化ブロックを説明するための図である。図1(a)の例では、符号化ブロックが10個に分割されている。CU0、CU1およびCU9は32画素×32画素の符号化ブロック、CU2、CU3およびCU8は16画素×16画素の符号化ブロック、ならびにCU4、CU5、CU6およびCU7は8画素×8画素の符号化ブロックとなっている。図1(b)の例では、符号化ブロックが1個に分割されている。
(予測ブロック)
本実施の形態では、符号化ブロックはさらに予測ブロック(パーティションともいう)に分割される。符号化ブロックは予測ブロックサイズタイプ(「分割タイプ」やパーティションタイプともいう)によって1以上の予測ブロックに分割される。図2(a)〜(d)は、予測ブロックサイズタイプを説明するための図である。図2(a)は符号化ブロックを分割しない2N×2N、図2(b)は水平に2分割する2N×N、図2(c)は垂直に2分割するN×2N、および図2(d)は水平と垂直に4分割するN×Nを示す。2N×2Nは1個の予測ブロック0、2N×NとN×2Nは2個の予測ブロック0と予測ブロック1、N×Nは4個の予測ブロック0、予測ブロック1、予測ブロック2、予測ブロック3からなる。予測ブロック0、予測ブロック1、予測ブロック2、予測ブロック3の順に符号化される。
図3は、符号化ブロックの分割回数と予測ブロックサイズタイプによる予測ブロックサイズを説明するための図である。本実施の形態における予測ブロックサイズは、CU分割回数が0であって予測ブロックサイズタイプが2N×2Nである64画素×64画素からCU分割回数が3であって予測ブロックサイズタイプN×Nである4画素×4画素までの13の予測ブロックサイズが存在することになる。例えば、符号化ブロックを非対称に水平や垂直に2分割することもできる。
本実施の形態では、最大符号化ブロックを64画素×64画素、最小符号化ブロックを8画素×8画素とするが、この組み合わせに限定されない。また、予測ブロックの分割のパターンを図2(a)〜(d)としたが、1以上に分割される組み合わせであればよくこれに限定されない。
(予測符号化モード)
本実施の形態では、動き補償予測や符号化ベクトル数を予測ブロック毎に切り替えることが可能となっている。ここで、動き補償予測と符号化ベクトル数を関連付けた予測符号化モードの一例について図4を用いて簡単に説明する。図4は、予測符号化モードを説明するための図である。
図4に示す予測符号化モードには、動き補償予測の予測方向が単予測(L0予測)であって符号化ベクトル数が1であるPredL0、動き補償予測の予測方向が単予測(L1予測)であって符号化ベクトル数が1であるPredL1、動き補償予測の予測方向が双予測(BI予測)であって符号化ベクトル数が2であるPredBI、および動き補償予測の予測方向が単予測(L0予測/L1予測)または双予測(BI予測)であって符号化ベクトル数が0であるマージモード(MERGE)がある。また、動き補償予測を実施しない予測符号化モードであるイントラモード(Intra)もある。ここで、PredL0、PredL1、およびPredBIが予測ベクトルモードとなる。
マージモードでは予測方向がL0予測/L1予測/BI予測のいずれにもなるが、それは、マージモードの予測方向は候補ブロック群から選択された候補ブロックの予測方向をそのまま引き継ぐか、復号済みの情報から導出されるためである。また、マージモードでは符号化ベクトルが符号化されない。これは、マージモードの符号化ベクトルは候補ブロック群から選択された候補ブロックの動きベクトルをそのまま引き継ぐか、あらかじめ定められた規則によって導出されるためである。
(参照インデックス)
本実施の形態では、動き補償予測の精度向上のために、動き補償予測において複数の参照画像の中から最適な参照画像を選択することを可能とする。そのため、動き補償予測で利用した参照画像を参照画像インデックスとして符号化ベクトルとともに符号化する。動き補償予測で利用される参照画像インデックスは0以上の数値となる。動き補償予測が単予測であれば、参照インデックスは1つ利用され、動き補償予測が双予測であれば、2つの参照インデックスが利用される(図4)。
マージモードでは参照インデックスは符号化されない。これは、マージモードの参照インデックスは候補ブロック群から選択された候補ブロックの参照インデックスをそのまま引き継ぐか、あらかじめ定められた規則によって導出されるためである。
(参照インデックスリスト)
本実施の形態では、動き補償予測で利用できる1以上の参照画像を参照インデックスリスト内に登録しておき、参照インデックスリスト内に登録された参照画像を参照インデックスで示すことによって参照画像を確定させて動き補償予測で利用する。参照インデックスリストには、参照インデックスリストL0(L0予測の参照インデックスリストともいう)と参照インデックスリストL1(L1予測の参照インデックスリストともいう)がある。動き補償予測が単予測の場合は、参照インデックスリストL0の中の参照画像を用いたL0予測、または参照インデックスリストL1の中の参照画像を用いたL1予測のいずれかを利用する。双予測の場合は参照インデックスリストL0と参照インデックスリストL1の2つを利用したBI予測を利用する。各参照インデックスリストに登録できる参照画像の最大数は16とする。
(マージインデックス)
本実施の形態では、マージモードの場合には、処理対象画像内の複数の隣接ブロックおよび符号化済みの別の画像内の処理対象の予測ブロックと同一位置にある同一位置予測ブロック内と同一位置予測ブロックの周辺にあるブロックを候補ブロック群として、候補ブロック群の中から最適な予測符号化モード、動きベクトル、及び参照インデックスを持つ候補ブロックを選択し、選択した候補ブロックを示すためのマージインデックスを符号化および復号する。マージモードのときのみマージインデックスが1つ利用される(図4)。マージインデックスの最大個数(マージ候補最大数ともいう)は5であり、マージインデックスは0から4までの整数となる。ここでは、マージインデックスの最大数を5としたが、2以上であればよく、これに限定されない。
以降、マージインデックスの対象となる候補ブロックの動き情報を結合動き情報候補と呼び、結合動き情報候補の集合体を結合動き情報候補リストと呼ぶ。以降、動き情報とは予測方向、動きベクトル、及び参照インデックスを含む。
次に、マージインデックスと符号列の関係について説明する。図5はマージインデックスと符号列の関係を説明するための図である。マージインデックスが0の場合の符号列は'0'、マージインデックスが1の場合の符号列は'10'、マージインデックスが2の場合の符号列は'110'、マージインデックスが3の場合の符号列は'1110'、マージインデックスが4の場合の符号列は'1111'となり、マージインデックスが大きくなるほど符号列が長くなるように設定される。そのため、選択率の高い候補ブロックに小さいマージインデックスを割り当てることで、符号化効率を向上させることができる。
次に、結合動き情報候補リストとマージインデックスの関係について説明する。マージインデックス0は結合動き情報候補リストの最初(0番目)の結合動き情報候補を示す。以下、マージインデックスmは結合動き情報候補リストのm番目の結合動き情報候補を示す。ここで、mは0から(マージ候補最大数−1)の整数となる。
(予測ベクトルインデックス)
本実施の形態では、予測ベクトルの精度を向上させるために、処理対象画像内の複数の隣接ブロックおよび符号化済みの別の画像の処理対象ブロックと同一位置にある同一位置予測ブロック内と同一位置予測ブロックの周辺にあるブロックを候補ブロック群として、候補ブロック群から予測ベクトルとして最適な動きベクトルを持つ候補ブロックを選択し、選択した候補ブロックを示すための予測ベクトルインデックスを符号化および復号する。動き補償予測が単予測であれば、予測ベクトルインデックスは1つ利用され、動き補償予測が双予測であれば、2つの予測ベクトルインデックスが利用される(図4)。予測ベクトルインデックスの最大数(予測ベクトル候補最大数ともいう)は2であり、予測ベクトルインデックスは0または1の整数となる。ここでは、予測ベクトル候補最大数を2としたが、2以上であればよく、これに限定されない。
次に、予測ベクトルインデックスと符号列の関係について説明する。予測ベクトルインデックスの符号列は予測ベクトルインデックスが0の場合の符号列は'0'、予測ベクトルインデックスが1の場合の符号列は'1'とする。なお、予測ベクトル候補最大数が3以上である場合にはマージインデックスと同様な規則(インデックスが大きくなるほど符号列が長くなる)で符号列が割り当てることができる。
以降、予測ベクトルインデックスの対象となる候補ブロックの動きベクトルを予測ベクトル候補と呼び、予測ベクトル候補の集合体を予測ベクトル候補リストと呼ぶ。
(シンタックス)
本実施の形態による予測ブロックのシンタックスの一例について説明する。図6は本実施の形態に係るシンタックスを説明する図である。図6は符号化木(Coding Tree)、符号化ブロック(Coding Unit)、及び予測ブロック(Prediction Unit)のシンタックス構成の一例を示す。符号化木では符号化ブロックの分割情報が管理される。符号化木にはsplit_coding_unit_flagが設置され、split_coding_unit_flagが1であれば符号化木は4個の符号化木に分割される。split_coding_unit_flagが0であれば符号化木は符号化ブロック(Coding Unit)となる。符号化ブロックには、スキップモードフラグ(skip_flag)、予測モード(pred_mode)と予測ブロックサイズタイプ(part_mode)が設置され、スキップモードフラグと予測ブロックサイズタイプに応じて1個または2個または4個の予測ブロックに分割される。予測モードはイントラ予測(画面内予測)を行う符号化ブロックであるかインター予測(動き補償予測)を行う符号化ブロックであるかを示す。スキップモードフラグが1である場合はスキップモードとなる。スキップモードは1個の予測ブロックを持つ。符号化ブロック(符号化木)の分割回数は符号化ブロック(符号化木)の深さともいう。
予測ブロックには、マージフラグ(merge_flag)、マージインデックス(merge_idx)、インター予測タイプ(inter_pred_type)、L0予測の参照インデックス(ref_idx_l0)、L0予測の差分ベクトル(mvd_l0[0]、mvd_l0[1])、L0予測の予測ベクトルインデックス(mvp_idx_l0)、L1予測の参照インデックス(ref_idx_l1)、L1予測の差分ベクトル(mvd_l1[0]、mvd_l1[1])、及びL1予測の予測ベクトルインデックス(mvp_idx_l1)が設置されている。差分ベクトルの[0]は水平成分、[1]は垂直成分を示す。
ここで、inter_pred_typeは動き補償予測の予測方向(インター予測タイプとも呼ぶ)を示し、Pred_L0(L0予測の単予測)、Pred_L1(L1予測の単予測)およびPred_BI(BI予測の双予測)の3種類がある。inter_pred_typeがPred_L0またはPred_BIの場合は、L0予測に関する情報が設置されて、inter_pred_typeがPred_L1またはPred_BIの場合は、L1予測に関する情報が設置される。Pピクチャ(Pスライス)ではinter_pred_typeは一意にPred_L0となるため、inter_pred_typeは省略される。
また、スキップモードの場合、予測ブロックはインター予測を行う符号化ブロックであって、予測符号化モードとしてはマージモードとなる。そのため、スキップモードの場合はマージインデックスが設置される。
なお、本実施の形態に係るシンタックスを図6のように設定したが、符号化ブロックや予測ブロックが複数のブロックサイズを有し、マージモードと予測ベクトルモードが利用できればよく、これに限定されない。
以下、図面とともに本発明の好適な実施の形態に係る動画像符号化装置、動画像符号化方法および動画像符号化プログラム、ならびに動画像復号装置、動画像復号方法および動画像復号プログラムの詳細について説明する。なお、図面の説明において同一要素には同一符号を付与して重複する説明を省略する。
(動画像符号化装置100の構成)
図7は、本実施の形態1に係る動画像符号化装置100の構成を示す。動画像符号化装置100は、動画像信号を、動き補償予測を実施する予測ブロック単位で符号化する装置である。符号化ブロックの分割、スキップモードの決定、予測ブロックサイズタイプの決定、予測ブロックサイズと予測ブロックの符号化ブロック内の位置(予測ブロックの位置情報や予測ブロック番号ともいう)の決定、予測符号化モードがイントラであるかの決定は図示しない上位の符号化制御部で決定されているものとし、実施の形態1では予測符号化モードがイントラでない場合について説明する。また、実施の形態1では双予測に対応したBピクチャ(Bスライス)について説明するが、双予測に対応しないPピクチャ(Pスライス)についてはL1予測を省略すればよい。
動画像符号化装置100は、CPU(Central Processing Unit)、フレームメモリ、ハードディスクなどを備える情報処理装置などのハードウェアにより実現される。動画像符号化装置100は、上記の構成要素が動作することにより、以下に説明する機能的な構成要素を実現する。なお、処理対象の予測ブロックの位置情報、予測ブロックサイズおよび動き補償予測の予測方向に関しては動画像符号化装置100内で共有していることとし、図示しない。
実施の形態1の動画像符号化装置100は、予測ブロック画像取得部101、減算部102、予測誤差符号化部103、符号列生成部104、予測誤差復号部105、動き補償部106、加算部107、動きベクトル検出部108、動き情報生成部109、フレームメモリ110、および動き情報メモリ111を含む。
(動画像符号化装置100の機能と動作)
以下、各部の機能と動作について説明する。予測ブロック画像取得部101は、予測ブロックの位置情報と予測ブロックサイズに基づいて、端子10より供給される画像信号から処理対象の予測ブロックの画像信号を取得し、予測ブロックの画像信号を減算部102、動きベクトル検出部108および動き情報生成部109に供給する。
動きベクトル検出部108は、予測ブロック画像取得部101より供給される画像信号および内部に記憶している複数の参照画像に相当する画像信号から、L0予測とL1予測それぞれの動きベクトルと参照画像を示す参照インデックスを検出する。当該L0予測とL1予測の動きベクトル、および当該L0予測とL1予測の参照インデックスを動き情報生成部109に供給する。ここでは、動きベクトル検出部108は参照画像として内部に記憶している複数の参照画像に相当する画像信号を利用するとしたが、フレームメモリ110に記憶されている参照画像を利用することもできる。
一般的な動きベクトルの検出方法は、対象画像の画像信号と、同一位置より所定の移動量だけ移動させた参照画像の予測信号について誤差評価値を算出し、誤差評価値が最小となる移動量を動きベクトルとする。参照画像が複数ある場合には各参照画像について動きベクトルを検出し、誤差評価値が最小となる参照画像を選択する。誤差評価値としては、絶対差分和を示すSAD(Sum of Absolute Difference)や二乗誤差平均を示すMSE(Mean Square Error)などを利用することが可能である。また、動きベクトル符号量を誤差評価値に加算して評価することも可能である。
動き情報生成部109は、動きベクトル検出部108より供給されるL0予測とL1予測の動きベクトルおよびL0予測とL1予測の参照インデックス、動き情報メモリ111より供給される候補ブロック群、参照インデックスで示されるフレームメモリ110内の参照画像、および予測ブロック画像取得部101より供給される画像信号から、予測符号化モードを決定する。
決定された予測符号化モードに基づいて、マージフラグ、マージインデックス、動き補償予測の予測方向、L0予測とL1予測の参照インデックス、L0予測とL1予測の差分ベクトルおよびL0予測とL1予測の予測ベクトルインデックスを必要に応じて、符号列生成部104に供給する。動き補償予測の予測方向、L0予測とL1予測の参照インデックス、およびL0予測とL1予測の動きベクトルを動き補償部106および動き情報メモリ111に供給する。動き情報生成部109の詳細については後述する。
動き補償部106は、動き情報生成部109より供給される動き補償予測の予測方向がLN予測であれば、動き情報生成部109より供給されるLN予測の参照インデックスで示されるフレームメモリ110内の参照画像を、動き情報生成部109より供給されるLN予測の動きベクトルに基づき動き補償してLN予測の予測信号を生成する。Nは0または1である。ここで、動き補償予測の予測方向が双予測であれば、L0予測とL1予測の予測信号の平均値が予測信号となる。なお、L0予測とL1予測の予測信号を重みづけしてもよい。動き補償部106は、当該予測信号を減算部102に供給する。
減算部102は、予測ブロック画像取得部101より供給される画像信号と動き補償部106より供給される予測信号を減算して予測誤差信号を算出し、当該予測誤差信号を予測誤差符号化部103に供給する。
予測誤差符号化部103は、減算部102より供給される予測誤差信号に対して、直交変換や量子化などの処理を行って予測誤差符号化データを生成し、当該予測誤差符号化データを符号列生成部104および予測誤差復号部105に供給する。
符号列生成部104は、予測誤差符号化部103より供給される予測誤差符号化データ、ならびに動き情報生成部109より供給されるマージフラグ、マージインデックス、動き補償予測の予測方向(インター予測タイプ)、L0予測とL1予測の参照インデックス、L0予測とL1予測の差分ベクトルおよびL0予測とL1予測の予測ベクトルインデックスを図6に示すシンタックスの順序に従ってエントロピー符号化して符号列を生成し、当該符号列を符号化ストリームとして端子11に供給する。エントロピー符号化は算術符号化やハフマン符号化などの可変長符号化を含む方法によって実施される。
また、符号列生成部104は、動画像符号化装置100で利用された符号化ブロックの分割情報、予測ブロックサイズタイプ、及び予測符号化モードを、符号化ストリームの特性を決定するためのパラメータ群を定義したSPS(Sequence Parameter Set)、ピクチャの特性を決定するためのパラメータ群を定義したPPS(Picture Parameter Set)、やスライスの特性を決定するためのパラメータ群を定義したスライスヘッダなどと共に符号化ストリーム中に多重化する。
予測誤差復号部105は、予測誤差符号化部103より供給される予測誤差符号化データに対して、逆量子化や逆直交変換などの処理を行って予測誤差信号を生成し、当該予測誤差信号を加算部107に供給する。加算部107は、予測誤差復号部105より供給される予測誤差信号と、動き補償部106より供給される予測信号を加算して復号画像信号を生成し、当該復号画像信号をフレームメモリ110に供給する。
フレームメモリ110は、加算部107より供給される復号画像信号を記憶する。また、画像全体の復号が完了した復号画像については参照画像として、1以上の所定の画像数を記憶する。フレームメモリ110は、記憶した参照画像信号を動き補償部106および動き情報生成部109に供給する。参照画像を記憶する記憶領域はFIFO(First In First Out)方式で制御される。
動き情報メモリ111は、動き情報生成部109より供給される動き情報を最小の予測ブロックサイズ単位で所定の画像数、記憶する。処理対象の予測ブロックの隣接ブロックの動き情報を空間候補ブロック群とする。
また、動き情報メモリ111は、処理対象の予測ブロックと同一位置にあるColPic上の同一位置予測ブロック内とその周辺ブロックの動き情報を時間候補ブロック群とする。動き情報メモリ111は、空間候補ブロック群と時間候補ブロック群を候補ブロック群として動き情報生成部109に供給する。動き情報メモリ111は、フレームメモリ110と同期しており、FIFO(First In First Out)方式で制御される。
ここで、ColPicとは、処理対象の予測ブロックのある画像とは別の復号済みの画像であって、フレームメモリ110に参照画像として記憶されている。実施の形態1では、ColPicは処理対象画像の直前に復号した参照画像とする。なお、実施の形態1では、ColPicは処理対象画像の直前に復号した参照画像としたが、復号済みの画像であればよく、例えば、表示順で直前の参照画像や表示順で直後の参照画像でもよく、符号化ストリーム中で指定することも可能である。
ここで、動き情報メモリ111における動き情報の管理方法について説明する。動き情報は最小の予測ブロック単位で各メモリエリアに記憶される。各メモリエリアには、少なくとも予測方向、L0予測の動きベクトル、L0予測の参照インデックス、L1予測の動きベクトル、およびL1予測の参照インデックスが記憶される。
なお、予測符号化モードがイントラモードである場合、L0予測とL1予測の動きベクトルとして(0,0)が記憶され、L0予測とL予測の参照インデックスとして「−1」が記憶される。これ以降、動きベクトルの(H、V)は、Hが水平成分、Vが垂直成分を表すこととする。なお、参照インデックスの「−1」は動き補償予測を実施しないモードであることが判定できればどのような値でもよい。これ以降は特に断らない限り単にブロックと表現する場合には、最小の予測ブロック単位のことを示すこととする。また、領域外のブロックである場合もイントラモードと同様に、L0予測とL1予測の動きベクトルとして(0,0)が記憶され、L0予測とL1予測の参照インデックスとして「−1」が記憶される。LX方向(Xは0または1)が有効であるとはLX方向の参照インデックスが0以上であることで、LX方向が無効である(有効でない)とはLX方向の参照インデックスが「−1」であることである。
(動き情報生成部109の構成)
続いて、動き情報生成部109の詳細な構成について説明する。図8は、動き情報生成部109の構成を示す。動き情報生成部109は、予測ベクトルモード決定部120、マージモード決定部121および予測符号化モード決定部122を含む。端子12は動き情報メモリ111に、端子13は動きベクトル検出部108に、端子14はフレームメモリ110に、端子15は予測ブロック画像取得部101に、端子16は符号列生成部104に、端子50は動き補償部106に、および端子51は動き情報メモリ111にそれぞれ接続されている。
(動き情報生成部109の機能と動作)
以下、各部の機能と動作について説明する。予測ベクトルモード決定部120は、端子12より供給される候補ブロック群、端子13より供給されるL0予測とL1予測の動きベクトルおよびL0予測とL1予測の参照インデックス、端子14より供給される参照インデックスで示される参照画像、および端子15より供給される画像信号から、インター予測タイプを決定し、インター予測タイプに従って、L0予測とL1予測の予測ベクトルインデックスを選択してL0予測とL1予測の差分ベクトルを算出するとともに、予測誤差を算出し、レート歪み評価値を算出する。そして、当該インター予測タイプに基づいた動き情報、差分ベクトル、予測ベクトルインデックス、およびレート歪み評価値を予測符号化モード決定部122に供給する。
マージモード決定部121は、端子12より供給される候補ブロック群、端子14より供給される参照画像、および端子15より供給される画像信号から、結合動き情報候補リストを生成し、当該結合動き情報候補リストの中から1つの結合動き情報候補を選択してマージインデックスを決定し、レート歪み評価値を算出する。そして、当該結合動き情報候補の動き情報、当該マージインデックスおよび当該レート歪み評価値を予測符号化モード決定部122に供給する。マージモード決定部121の詳細については後述する。
予測符号化モード決定部122は、予測ベクトルモード決定部120より供給されるレート歪み評価値と、マージモード決定部121より供給されるレート歪み評価値とを比較してマージフラグを決定する。
予測ベクトルモードレート歪み評価値がマージモードレート歪み評価値未満の場合は、マージフラグを「0」に設定する。予測符号化モード決定部122は、当該マージフラグ、予測ベクトルモード決定部120より供給されるインター予測タイプ、参照インデックス、差分ベクトルと予測ベクトルインデックスを端子16に供給し、予測ベクトルモード決定部120より供給される動き情報を端子50および端子51に供給する。
マージモードレート歪み評価値が予測ベクトルモードレート歪み評価値以下の場合は、マージフラグを「1」に設定する。予測符号化モード決定部122は、当該マージフラグおよびマージモード決定部121より供給されるマージインデックスを端子16に供給し、マージモード決定部121より供給される動き情報を端子50および端子51に供給する。なお、レート歪み評価値の具体的な算出方法は本発明の主眼ではないため詳細な説明は省略するが、予測誤差と符号量から符号量当たりの予測誤差量を算出し、レート歪み評価値が小さいほど符号化効率は高くなる特性を持つ評価値である。そのため、レート歪み評価値が小さい予測符号化モードを選択することで符号化効率を向上させることができる。
(マージモード決定部121の構成)
続いて、マージモード決定部121の詳細な構成について説明する。図9は、マージモード決定部121の構成を説明するための図である。マージモード決定部121は、結合動き情報候補リスト生成部140および結合動き情報選択部141を含む。結合動き情報候補リスト生成部140は、実施の形態1に係る動画像符号化装置100により生成された符号列を復号する動画像復号装置200にも同様に設置されて、動画像符号化装置100と動画像復号装置200にて同一の結合動き情報リストが生成される。
(マージモード決定部121の機能と動作)
以下、各部の機能と動作について説明する。結合動き情報候補リスト生成部140は、端子12より供給される候補ブロック群からマージ候補最大数の結合動き情報候補を含む結合動き情報候補リストを生成し、当該結合動き情報候補リストを結合動き情報選択部141に供給する。結合動き情報候補リスト生成部140の詳細な構成については後述する。
結合動き情報選択部141は、結合動き情報候補リスト生成部140より供給される結合動き情報候補リストの中から、最適な結合動き情報候補を選択し、選択された結合動き情報候補を示す情報であるマージインデックスを決定して、当該マージインデックスを端子17に供給する。
ここで、最適な結合動き情報候補の選択方法について説明する。結合動き情報候補の予測方向、動きベクトルおよび参照インデックスに基づいて動き補償予測されて得られる端子14より供給される参照画像と、端子15より供給される画像信号とから予測誤差量が算出される。マージインデックスの符号量と、当該予測誤差量とからレート歪み評価値が算出されて、レート歪み評価値が最小となる結合動き情報候補が最適な結合動き情報候補として選択される。
(結合動き情報候補リスト生成部140の構成)
続いて、結合動き情報候補リスト生成部140の詳細な構成について説明する。図10は、結合動き情報候補リスト生成部140の構成を説明するための図である。端子19は結合動き情報選択部141に接続されている。結合動き情報候補リスト生成部140は、空間結合動き情報候補生成部160、時間結合動き情報候補生成部161、冗長結合動き情報候補削除部162、第1結合動き情報候補補充部163、および第2結合動き情報候補補充部164を含む。以降、結合動き情報候補を生成すると表記するが、導出すると言い換えてもよい。
(結合動き情報候補リスト生成部140の機能と動作)
以下、各部の機能と動作について説明する。図11は、結合動き情報候補リスト生成部140の動作を説明するためのフローチャートである。まず、結合動き情報候補リスト生成部140は、結合動き情報候補リストを初期化する(S100)。初期化された結合動き情報候補リストには結合動き情報候補は存在しない。
次に、空間結合動き情報候補生成部160は、端子12より供給される候補ブロック群から0個から空間結合動き情報候補最大数の空間結合動き情報候補を生成して結合動き情報候補リストに追加し(S101)、当該結合動き情報候補リストと候補ブロック群を時間結合動き情報候補生成部161に供給する。空間結合動き情報候補生成部160の詳細な動作については後述する。また、空間結合動き情報候補最大数についても後述する。
次に、時間結合動き情報候補生成部161は、空間結合動き情報候補生成部160より供給される候補ブロック群から0個から時間結合動き情報候補最大数の時間結合動き情報候補を生成して空間結合動き情報候補生成部160より供給される結合動き情報候補リストに追加し(S102)、当該結合動き情報候補リストを冗長結合動き情報候補削除部162に供給する。時間結合動き情報候補生成部161の詳細な動作については後述する。また、時間結合動き情報候補最大数についても後述する。
次に、冗長結合動き情報候補削除部162は、時間結合動き情報候補生成部161より供給される結合動き情報候補リストに登録されている結合動き情報候補を検査し、同一の動き情報を有する結合動き情報候補が複数存在する場合には1つの結合動き情報候補を残してその他の結合動き情報候補を削除し(S103)、当該結合動き情報候補リストを第1結合動き情報候補補充部163に供給する。ここで、当該結合動き情報候補リストに登録されている結合動き情報候補は全てが異なる結合動き情報候補となる。
次に、第1結合動き情報候補補充部163は、冗長結合動き情報候補削除部162より供給される結合動き情報候補リストに登録された結合動き情報候補から0個から2個の第1補充結合動き情報候補を生成して結合動き情報候補リストに追加し(S104)、当該結合動き情報候補リストを第2結合動き情報候補補充部164に供給する。第1結合動き情報候補補充部163の詳細な動作については後述する。
次に、第2結合動き情報候補補充部164は、第1結合動き情報候補補充部163より供給される結合動き情報候補リストに登録された結合動き情報候補の数がマージ候補最大数に達するまで第2補充結合動き情報候補を生成して当該結合動き情報候補リストに追加し(S105)、当該結合動き情報候補リストを端子19に供給する。第2結合動き情報候補補充部164の詳細な動作については後述する。
ここでは、空間結合動き情報候補生成部160と時間結合動き情報候補生成部161はそれぞれ空間結合動き情報候補と時間結合動き情報候補を生成して結合動き情報候補リストに追加するとしたが、空間結合動き情報候補生成部160と時間結合動き情報候補生成部161はそれぞれ空間結合動き情報候補と時間結合動き情報候補を生成するのみで、冗長結合動き情報候補削除部162の直前に生成した候補から結合動き情報候補リストを生成するようにしてもよい。
(2N×2N候補ブロック群について)
以降、予測ブロックの候補ブロック群について説明する。最初に、予測ブロックサイズタイプが2N×2Nである予測ブロックについて説明する。図12は予測ブロックサイズタイプが2N×2Nである予測ブロックの候補ブロック群について説明する図である。図12では予測ブロックサイズが16画素×16画素である例を示す。なお、後述する時間候補ブロックH及びIは、同じく後述する空間候補ブロックA〜Eが存在するピクチャとは別の復号済みのピクチャとは別のピクチャに存在するが、理解及び説明の容易のため、図12中では空間候補ブロックA〜Eとあわせて図示されている。
空間候補ブロック群は、予測ブロックの左下の画素の左に位置するブロックA、予測ブロックの右上の画素の上に位置するブロックB、予測ブロックの右上の画素の右斜め上に位置するブロックC、予測ブロックの左下の画素の左斜め下に位置するブロックE、及び予測ブロックの左上の画素の左斜め上に位置するブロックDとする。このように、空間候補ブロック群は予測ブロックの位置と大きさに基づいて決定される。時間候補ブロック群は、ColPicの所定領域の代表ブロックであるブロックHとブロックIの2つとする。処理対象の予測ブロックの左上の画素の位置を ( x , y )、処理対象の予測ブロックの幅と高さをそれぞれPUW、PUHとすると、 ((((x+PUW)>>4)<<4), (((y+PUH)>>4)<<4))となる画素の位置をブロックの左上の画素の位置として含むColPic上のブロックを時間候補ブロックHとする。ここで、>>は右方向のビットシフト、<<は左方向のビットシフトである。
同様に、(x+(PUW>>1),y+(PUH>>1))となる画素の位置をブロックの左上の画素の位置として含むColPic上のブロックを時間候補ブロックIとする。このように、時間候補ブロック群は予測ブロックの位置と大きさに基づいて決定される。このように、時間候補ブロックをColPicの所定領域(ここでは16画素×16画素)の代表ブロックとすることで、ColPicが記憶すべき動きベクトルや参照インデックスを削減できる。1画像で記憶する動きベクトルと参照インデックスを削減することで、複数の復号済み画像をColPicの対象とすることが可能となるため、予測効率を向上させる効果がある。
ここで、予測ブロックサイズタイプが2N×2Nである符号化ブロックは1個の予測ブロックで構成されているため、予測ブロックサイズタイプが2N×2Nである予測ブロックに対する候補ブロックの位置は符号化ブロックに対する候補ブロックの位置に等しくなり、候補ブロックの位置は符号化ブロックの外となる。
ここでは、ブロックAを予測ブロックの左下としたが、予測ブロックの左辺に接していればよく、これに限定されない。また、ブロックBを予測ブロックの右上としたが、予測ブロックの上辺に接していればよく、これに限定されない。また、時間候補ブロック群をブロックHとブロックIの2個としたが、これに限定されない。
(2N×2N以外の候補ブロック群のへの2N×2Nと同じ位置関係の適用例)
次に、予測ブロックサイズタイプが2N×2Nではない符号化ブロックにおける予測ブロックについて、予測ブロックサイズタイプが2N×2Nである符号化ブロックの予測ブロックと同じ位置関係を適用した例について説明する。図13は予測ブロックサイズタイプが2N×2Nではない符号化ブロックにおける予測ブロックについて、予測ブロックサイズタイプが2N×2Nである符号化ブロックの予測ブロックと同じ位置関係を適用した場合の候補ブロック群を示す図である。図13では図12と同様、時間候補ブロックH及びIは、空間候補ブロックA〜Eが存在するピクチャとは別の復号済みのピクチャとは別のピクチャに存在するが、理解及び説明の容易のため、空間候補ブロックA〜Eとあわせて図示されている。図13(a)から(h)はそれぞれ予測ブロックサイズタイプがN×2Nの予測ブロック0、予測ブロックサイズタイプがN×2Nの予測ブロック1、予測ブロックサイズタイプが2N×Nの予測ブロック0、予測ブロックサイズタイプが2N×Nの予測ブロック1、予測ブロックサイズタイプがN×Nの予測ブロック0、予測ブロックサイズタイプがN×Nの予測ブロック1、予測ブロックサイズタイプがN×Nの予測ブロック2、予測ブロックサイズタイプがN×Nの予測ブロック3の場合の候補ブロック群を示す。図13では予測ブロックサイズが16画素×16画素である例を示す。なお、時間候補ブロック群は予測ブロックサイズタイプが2N×2Nの場合と同様に導出され、図13にブロックHの位置を示す。このように、予測ブロックサイズタイプが2N×2Nではない符号化ブロックに含まれる予測ブロックでは、予測ブロックごとに予測ブロックの位置と大きさに基づいて候補ブロック群が決定される。
ここで、予測ブロックサイズタイプがN×2Nの予測ブロック1の場合(図13(b))、ブロックAは同一の符号化ブロックの予測ブロック0の内部にあり、ブロックAの動き情報を得るためには予測ブロック1を処理する前に予測ブロック0の動き情報が確定している必要があるため、予測ブロック1の候補ブロックとしてブロックAを利用した場合、予測ブロック0と予測ブロック1を同時に処理することはできない。また、最大符号化ブロックがラスタースキャン順、符号化ブロックがジグザグスキャン順で行われるため、ブロックEは必ず未処理ブロックとなる。同様に、予測ブロックサイズタイプが2N×Nの予測ブロック1の場合(図13(d))、ブロックBは同一の符号化ブロックの予測ブロック0の内部にあり、ブロックCは必ず未処理ブロックとなる。予測ブロックサイズタイプがN×Nの予測ブロック1(図13(f))、予測ブロック2(図13(g))、予測ブロック3(図13(h))についても、同一の符号化ブロックの内部にあるブロックと必ず未処理となるブロックについて図13の中にそれぞれ示す。
予測ブロックサイズタイプがN×2Nの予測ブロック1、予測ブロックサイズタイプが2N×Nの予測ブロック1、予測ブロックサイズタイプがN×Nの予測ブロック1、予測ブロックサイズタイプがN×Nの予測ブロック2については同一の符号化ブロック内になく且つ必ず未処理とならない候補ブロックの数が3となり、予測ブロックサイズタイプがN×Nの予測ブロック3については同一の符号化ブロック内になく且つ必ず未処理とならない候補ブロックの数が0となる。候補ブロックが減じることは予測効率の低下に繋がる。
(候補ブロックの位置関係)
図14は実施の形態1における予測ブロックサイズタイプが2N×2N以外の予測ブロックと空間候補ブロック群の位置関係の一例を説明する図である。時間候補ブロック群については図13と同じである。図14(a)から(h)はそれぞれ予測ブロックサイズタイプがN×2Nの予測ブロック0、予測ブロックサイズタイプがN×2Nの予測ブロック1、予測ブロックサイズタイプが2N×Nの予測ブロック0、予測ブロックサイズタイプが2N×Nの予測ブロック1、予測ブロックサイズタイプがN×Nの予測ブロック0、予測ブロックサイズタイプがN×Nの予測ブロック1、予測ブロックサイズタイプがN×Nの予測ブロック2、予測ブロックサイズタイプがN×Nの予測ブロック3の場合の空間候補ブロック群を示す。図14では予測ブロックサイズが16画素×16画素である例を示す。
ここでは、同一の符号化ブロックの他の予測ブロックの内部にあるブロックを予測ブロックサイズタイプが2N×2Nである予測ブロックの候補ブロックに置き換える。つまり、予測ブロックサイズタイプがN×2Nの予測ブロック1の場合(図14(b))、ブロックAを予測ブロックサイズタイプが2N×2Nである予測ブロックの候補ブロックのブロックAとする。予測ブロックサイズタイプが2N×Nの予測ブロック1の場合(図14(d))、ブロックBを予測ブロックサイズタイプが2N×2Nである予測ブロックの候補ブロックのブロックBとする。予測ブロックサイズタイプがN×Nの予測ブロック1の場合(図14(f))、ブロックAとブロックEを予測ブロックサイズタイプが2N×2Nである予測ブロックの候補ブロックのブロックAとブロックEとする。予測ブロックサイズタイプがN×Nの予測ブロック2の場合(図14(g))、ブロックBとブロックCを予測ブロックサイズタイプが2N×2Nである予測ブロックの候補ブロックのブロックBとブロックCとする。予測ブロックサイズタイプがN×Nの予測ブロック3の場合(図14(h))、ブロックA、ブロックBとブロックDを予測ブロックサイズタイプが2N×2Nである予測ブロックの候補ブロックのブロックA、ブロックBとブロックDとする。
予測ブロックサイズタイプがN×2Nの予測ブロック1、予測ブロックサイズタイプが2N×Nの予測ブロック1、予測ブロックサイズタイプがN×Nの予測ブロック1、予測ブロックサイズタイプがN×Nの予測ブロック2、予測ブロックサイズタイプがN×Nの予測ブロック3について有効な候補ブロックの数が5となる。
以上のように、同一の符号化ブロックの他の予測ブロックに含まれる候補ブロックを、符号化ブロックが有する予測ブロックサイズの中で予測ブロックサイズが最大となる予測ブロックサイズタイプが2N×2Nである予測ブロックの候補ブロックにすることで、符号化ブロックに含まれる予測ブロック間における動き情報の依存関係がなくなり、符号化ブロックに含まれる複数の予測ブロックを同時に処理することが可能となる。
(空間結合動き情報候補生成部160の詳細な動作)
続いて、空間結合動き情報候補生成部160の詳細な動作について説明する。図15は、空間結合動き情報候補生成部160の動作を説明するためのフローチャートである。空間結合動き情報候補生成部160は、候補ブロック群の空間候補ブロック群に含まれる候補ブロックであるブロックA、ブロックB、ブロックC、ブロックE、ブロックDの順に以下の処理を繰り返し行う(S110からS114)。
最初に、候補ブロックが有効であるか検査する(S111)。候補ブロックが有効であるとは、候補ブロックのL0予測とL1予測の参照インデックスの少なくとも一方が0以上であることである。候補ブロックが有効であれば(S111のY)、候補ブロックの動き情報を空間結合動き情報候補として結合動き情報候補リストに追加する(S112)。候補ブロックが有効でなければ(S111のN)、次の候補ブロックを検査する(S114)。ステップS112に続いて、結合動き情報候補リストに追加された空間結合動き情報候補の数が空間結合動き情報候補最大数であるか検査する(S113)。ここでは、空間結合動き情報候補最大数を4とする。結合動き情報候補リストに追加された空間結合動き情報候補の数が空間結合動き情報候補最大数でなければ(S113のN)、次の候補ブロックを検査する(S114)。結合動き情報候補リストに追加された空間結合動き情報候補の数が空間結合動き情報候補最大数であれば(S113のY)、処理を終了する。
ここでは、処理対象ブロックとの接線の長く一般的に処理対象ブロックとの相関性の高いと考えられるブロックAとブロックBの動き情報を優先して結合動き情報候補リストに登録できるように処理の順序をブロックA、ブロックB、ブロックC、ブロックE、ブロックDとしたが、処理対象ブロックと相関性の高い順序または候補ブロックとして選択確率の高い順序で結合動き情報候補が結合動き情報候補リストに登録されればよく、これに限定されない。例えば、予測ブロックサイズタイプがN×2Nの予測ブロック1の場合は、ブロックB、ブロックC、ブロックE、ブロックD、ブロックAの順に、予測ブロックサイズタイプが2N×Nの予測ブロック1の場合は、ブロックA、ブロックC、ブロックE、ブロックD、ブロックBの順に、予測ブロックサイズタイプがN×Nの予測ブロック1の場合は、ブロックB、ブロックC、ブロックD、ブロックA、ブロックEの順に、予測ブロックサイズタイプがN×Nの予測ブロック2の場合は、ブロックA、ブロックE、ブロックD、ブロックB、ブロックCの順に、予測ブロックサイズタイプがN×Nの予測ブロック3の場合は、ブロックC、ブロックE、ブロックA、ブロックB、ブロックDの順にすることもできる。このように、処理対象の予測ブロックに近い順に結合動き情報候補リストに追加することで、処理対象の予測ブロックに近いブロックに大きなマージインデックスが割り当てられることを防止することができ、符号化効率を向上させることができる。また、空間結合動き情報候補最大数を4としたが、空間結合動き情報候補最大数は1以上でマージ候補最大数以下であればよく、これに限定されない。
(時間結合動き情報候補生成部161の詳細な動作)
続いて、時間結合動き情報候補生成部161の詳細な動作について説明する。図16は、時間結合動き情報候補生成部161の動作を説明するためのフローチャートである。L0予測とL1予測の各予測方向LXについて以下の処理を繰り返し行う(S120からS127)。ここで、Xは0または1である。また、候補ブロック群の時間候補ブロック群に含まれる候補ブロックであるブロックH、ブロックIの順に以下の処理を繰り返し行う(S121からS126)。
時間結合動き情報候補生成部161は、候補ブロックのLN予測が有効であるか検査する(S122)。ここで、Nは0または1である。ここでは、NはXと同じであるとする。候補ブロックのLN予測が有効であるとは、候補ブロックのLN予測の参照インデックスが0以上であることである。候補ブロックのLN予測が有効であれば(S122のY)、候補ブロックのLN予測の動きベクトルを基準動きベクトルとする(S123)。候補ブロックのLN予測が有効でなければ(S122のN)、ステップ123からステップ126をスキップして次の候補ブロックを検査する(S126)。
ステップS123に続いて、時間結合動き情報候補のLX予測の参照画像を決定する(S124)。ここでは、時間結合動き情報候補のLX予測の参照画像は、LX予測の参照インデックス0の参照画像とする。ここでは、時間結合動き情報候補のLX予測の参照画像をLX予測の参照インデックス0の参照画像としたが、符号化ブロック内の他の予測ブロックの値に依存しなければよく、これに限定されない。次に、基準動きベクトルを処理対象画像と時間結合動き情報候補のLX予測の参照画像の距離に合うようにスケーリングして時間結合動き情報候補のLX予測の動きベクトルを算出し(S125)、次の予測方向を処理する(S127)。時間結合動き情報候補のLX予測の動きベクトルの具体的な算出式については、後述する。L0予測とL1予測について処理が終了したステップS127に続いて、時間結合動き情報候補のL0予測とL1予測の少なくとも一方の予測が有効であるか検査する(S128)。時間結合動き情報候補のL0予測とL1予測の少なくとも一方の予測が有効であれば(S128のY)、時間結合動き情報候補のインター予測タイプを決定して、当該時間結合動き情報候補を結合動き情報候補リストに追加する(S129)。ここでは、インター予測タイプの決定は、L0予測だけが有効であれば、時間結合動き情報候補のインター予測タイプをPred_L0とし、L1予測だけが有効であれば、時間結合動き情報候補のインター予測タイプをPred_L1とし、L0予測とL1予測の両方が有効であれば、時間結合動き情報候補のインター予測タイプをPred_BIとする。
続いて、時間結合動き情報候補のLX予測の動きベクトルの算出式について説明する。時間候補ブロックを有するColPicと時間候補ブロックがLX予測の動き補償予測で参照するピクチャであるColRefLXPicの画像間距離をtd、時間結合動き情報候補のLX予測の参照画像RefLXPicと処理対象画像CurPicの画像間距離をtb、LX予測の基準動きベクトルをmvLXとすると、時間結合動き情報候補のLX予測の動きベクトルmvLXColは式1より算出される。式1より時間結合動き情報候補のLX予測の動きベクトルの算出にはtbとtdを算出するための減算と、除算、及び乗算が必要となることがわかる。
mvLXCol = tb / td * mvLX; 式1
式1は浮動小数点演算の簡略化のために整数演算とする場合には、例えば、式2から式4のように展開して利用してもよい。Abs(v)は値vの絶対値を算出する関数、Clip3(uv,lv,v)は値vを下限lvから上限uvまでに制限する関数、Sign(v)は値vが0以上であれば1を値vが0より小さい場合は−1を返す関数である。
tx = (16384+Abs(td/2) ) / td; 式2
DistScaleFactor = Clip3( -1024, 1023, ( tb * tx + 32 ) >> 6 ); 式3
mvLXCol=Sign(DistScaleFactor*mvLX)*((Abs(DistScaleFactor*mvLX)+127)>>8); 式4
ここでは、結合動き情報候補リストに登録できる時間結合動き情報候の最大数である時間結合動き情報候補最大数を1とした。そのため、図16には空間結合動き情報候補生成部160の動作を説明するフローチャートである図14で示したステップS115に相当する処理を省略したが、時間結合動き情報候補最大数が2以上である場合にはステップS129の後にステップS115に相当する処理を追加することもできる。
ここでは、NはXと同じであるとしたが、NはXと異なっていても良く、これに限定されない。
(第1結合動き情報候補補充部163の詳細な動作)
続いて、第1結合動き情報候補補充部163の詳細な動作について説明する。図17は、第1結合動き情報候補補充部163の動作を説明するためのフローチャートである。最初に、より供給される結合動き情報候補リストに登録された結合動き情報候補の数(NumCandList)とマージ候補最大数(MaxNumMergeCand)から、第1補充結合動き情報候補を生成する最大数であるMaxNumGenCandを式5より算出する(S170)。
MaxNumGenCand=MaxNumMergeCand-NumCandList; (NumCandList>1)
MaxNumGenCand=0; (NumCandList<=1) 式5
次に、MaxNumGenCandが0より大きいか検査する(S171)。MaxNumGenCandが0より大きくなければ(S171のN)、処理を終了する。MaxNumGenCandが0より大きければ(S171のY)、以下の処理を行う。まず、組み合わせ検査回数であるloopTimesを決定する。loopTimesはNumCandList×NumCandListに設定する。ただし、loopTimesが8を超える場合にはloopTimesは8に制限する(S172)。ここで、loopTimesは0から7までの整数となる。loopTimesだけ以下の処理を繰り返し行う(S172からS180)。結合動き情報候補Mと結合動き情報候補Nの組み合わせを決定する(S173)。ここで、組み合わせ検査回数と結合動き情報候補Mと結合動き情報候補Nの関係について説明する。図18は組み合わせ検査回数と結合動き情報候補Mと結合動き情報候補Nの関係を説明するための図である。図18のようにMとNは異なる値であって、MとNの合計値が小さくなる順に設定される。結合動き情報候補MのL0予測が有効で且つ結合動き情報候補NのL1予測が有効であるか検査する(S174)。結合動き情報候補MのL0予測が有効で且つ結合動き情報候補NのL1予測が有効であれば(S174のY)、結合動き情報候補MのL0予測の参照画像と動きベクトルが結合動き情報候補NのL1予測の参照画像と動きベクトルと異なるか検査する(S175)。結合動き情報候補MのL0予測が有効で且つ結合動き情報候補NのL1予測が有効でなければ(S174のN)、次の組み合わせを処理する。結合動き情報候補MのL0予測の参照画像と結合動き情報候補NのL1予測の参照画像が異なれば(S175のY)、結合動き情報候補MのL0予測の動きベクトルと参照画像を結合動き情報候補NのL1予測の動きベクトルと参照画像と組み合わせてインター予測タイプがPred_BIである双結合動き情報候補を生成する(S176)。ここでは、第1補充結合動き情報候補として、ある結合動き情報候補のL0予測とそれとは異なる結合動き情報候補のL1予測の動き情報を組み合わせた双結合動き情報を生成する。結合動き情報候補MのL0予測の参照画像と結合動き情報候補NのL1予測の参照画像が同じであれば(S175のN)、次の組み合わせを処理する。ステップS176に続いて、双結合動き情報候補を結合動き情報候補リストに追加する(S178)。ステップS178に続いて、生成した双結合動き情報の数がMaxNumGenCandであるか検査する(S179)。生成された双結合動き情報の数がMaxNumGenCandであれば(S179のY)、処理を終了する。生成された双結合動き情報の数がMaxNumGenCandでなければ(S179のN)、次の組み合わせを処理する。
ここでは、第1補充結合動き情報候補を、結合動き情報候補リストに登録されたある結合動き情報候補のL0予測の動きベクトルと参照画像を、別の結合動き情報候補のL1予測の動きベクトルと参照画像と組み合わせて、動き補償予測の方向が双方向である双結合動き情報候補としたが、これに限定されない。例えば、結合動き情報候補リストに登録されたある結合動き情報候補のL0予測の動きベクトルとL1予測の動きベクトルに+1などのオフセット値を加えた動き補償予測の方向が双方向である結合動き情報候補、結合動き情報候補リストに登録されたある結合動き情報候補のL0予測の動きベクトルまたはL1予測の動きベクトルに+1などのオフセット値を加えた動き補償予測の方向が単方向である結合動き情報候補としてもよい。第1補充結合動き情報候補の別の例として、結合動き情報候補リストに登録されたある結合動き情報候補のL0予測の動きベクトルを基準としてL1予測の動きベクトルをスケーリングにより求め、それらを組み合わせて動き補償予測の方向が双方向である新たな結合動き情報候補を生成してもよい。また、それらを任意に組み合わせてもよい。
ここで、第1補充結合動き情報候補は、結合動き情報候補リストに登録された結合動き情報候補の動き情報と処理対象の動き情報候補の動きに微妙にずれがある場合に、結合動き情報候補リストに登録された結合動き情報候補の動き情報を修正して新たな有効となる結合動き情報候補を生成することで、符号化効率を高めることができる。
(第2結合動き情報候補補充部164の詳細な動作)
続いて、第2結合動き情報候補補充部164の詳細な動作について説明する。図19は、第2結合動き情報候補補充部164の動作を説明するためのフローチャートである。最初に、第1結合動き情報候補補充部163より供給される結合動き情報候補リストに登録された結合動き情報候補の数(NumCandList)とマージ候補最大数(MaxNumMergeCand)から、第1補充結合動き情報候補を生成する最大数であるMaxNumGenCandを式6より算出する(S190)。
MaxNumGenCand=MaxNumMergeCand-NumCandList; 式6
次に、以下の処理をiについてMaxNumGenCand回繰り返し行う(S191からS195)。ここで、iは0からMaxNumGenCand−1の整数となる。L0予測の動きベクトルが(0,0)、参照インデックスがiであって、L1予測の動きベクトルが(0,0)、参照インデックスがiであるインター予測タイプがPred_BIである第2補充結合動き情報候補を生成する(S192)。第2補充結合動き情報候補を結合動き情報候補リストに追加する(S194)。次のiについて処理する(S195)。
ここでは、第2補充結合動き情報候補を、L0予測の動きベクトルが(0,0)、参照インデックスがiであって、L1予測の動きベクトルが(0,0)、参照インデックスがiであるインター予測タイプがPred_BIである結合動き情報候補とした。これは、一般的な動画像において、L0予測の動きベクトルとL1予測の動きベクトルが(0,0)である結合動き情報候補の発生頻度が統計的に高いためである。結合動き情報候補リストに登録された結合動き情報候補の動き情報に依存せず、統計的に利用頻度が高い結合動き情報候補であれば、これに限定されない。例えば、L0予測やL1予測の動きベクトルはそれぞれ(0,0)以外のベクトル値でもよく、L0予測とL1予測の参照インデックスが異なるように設定してもよい。また、第2補充結合動き情報候補を符号化済みの画像や符号化済みの画像の一部の発生頻度の高い動き情報とし、符号化ストリームに符号化して伝送して設定することもできる。なお、ここではBピクチャについて説明したが、Pピクチャの場合は、L0予測の動きベクトルが(0,0)で、インター予測タイプがPred_L0である第2補充結合動き情報候補を生成する。
ここで、第2補充結合動き情報候補として結合動き情報候補リストに登録された結合動き情報候補に依存しない結合動き情報候補を設定することで、結合動き情報候補リストに登録された結合動き情報候補が0個である場合に、マージモードを利用することを可能とし、符号化効率を向上させることができる。また、結合動き情報候補リストに登録された結合動き情報候補の動き情報と処理対象の動き情報候補の動きが異なる場合に、新たな結合動き情報候補を生成して選択肢の幅を広げることで、符号化効率を向上させることができる。
(動画像復号装置200の構成)
次に、実施の形態1の動画像復号装置を説明する。図20は、実施の形態1に係る動画像復号装置200の構成を示す図である。動画像復号装置200は、動画像符号化装置100により符号化された符号列を復号して再生画像を生成する装置である。
動画像復号装置200は、CPU(Central Processing Unit)、フレームメモリ、ハードディスクなどを備える情報処理装置などのハードウェアにより実現される。動画像復号装置200は、上記の構成要素が動作することにより、以下に説明する機能的な構成要素を実現する。符号化ブロックの分割、スキップモードの決定、予測ブロックサイズタイプの決定、予測ブロックサイズと予測ブロックの符号化ブロック内の位置(予測ブロックの位置情報)の決定、予測符号化モードがイントラであるかの決定は図示しない上位の制御部で決定されているものとし、ここでは予測符号化モードがイントラでない場合について説明する。なお、復号対象の予測ブロックの位置情報、予測ブロックサイズに関しては動画像復号装置200内で共有していることとし、図示しない。
実施の形態1の動画像復号装置200は、符号列解析部201、予測誤差復号部202、加算部203、動き情報再生部204、動き補償部205、フレームメモリ206および動き情報メモリ207を備える。
(動画像復号装置200の動作)
以下、各部の機能と動作について説明する。符号列解析部201は、端子30より供給された符号列を解析して予測誤差符号化データ、マージフラグ、マージインデックス、動き補償予測の予測方向(インター予測タイプ)、参照インデックス、差分ベクトル、および予測ベクトルインデックスをシンタックスに従ってエントロピー復号する。エントロピー復号は算術符号化やハフマン符号化などの可変長符号化を含む方法によって実施される。そして、当該予測誤差符号化データを予測誤差復号部202に、当該マージフラグ、当該マージインデックス、当該インター予測タイプ、当該参照インデックス、当該差分ベクトル、および当該予測ベクトルインデックスを動き情報再生部204に供給する。
また、符号列解析部201は、動画像復号装置200で利用される符号化ブロックの分割情報、予測ブロックサイズタイプ、及び予測符号化モードを、符号化ストリームの特性を決定するためのパラメータ群を定義したSPS(Sequence Parameter Set)、ピクチャの特性を決定するためのパラメータ群を定義したPPS(Picture Parameter Set)、やスライスの特性を決定するためのパラメータ群を定義したスライスヘッダなどと共に符号化ストリームから復号する。
動き情報再生部204は、符号列解析部201より供給されるマージフラグ、マージインデックス、インター予測タイプ、参照インデックス、差分ベクトル、および予測ベクトルインデックスと、動き情報メモリ207より供給される候補ブロック群から、動き情報を再生し、当該動き情報を動き補償部205および動き情報メモリ207に供給する。動き情報再生部204の詳細な構成については後述する。
動き補償部205は、動き情報再生部204より供給される動き情報に基づいて、フレームメモリ206内の参照インデックスが示す参照画像を、動きベクトルに基づき動き補償して予測信号を生成する。予測方向が双予測であれば、L0予測とL1予測の予測信号を平均したものを予測信号として生成し、当該予測信号を加算部203に供給する。
予測誤差復号部202は、符号列解析部201より供給される予測誤差符号化データに対して、逆量子化や逆直交変換などの処理を行って予測誤差信号を生成し、当該予測誤差信号を加算部203に供給する。
加算部203は、予測誤差復号部202より供給される予測誤差信号と、動き補償部205より供給される予測信号とを加算して復号画像信号を生成し、当該復号画像信号をフレームメモリ206および端子31に供給する。
フレームメモリ206および動き情報メモリ207は、動画像符号化装置100のフレームメモリ110および動き情報メモリ111と同一の機能を有する。フレームメモリ206は、加算部203より供給される復号画像信号を記憶する。動き情報メモリ207は、動き情報再生部204より供給される動き情報を最小の予測ブロックサイズ単位で記憶する。
(動き情報再生部204の詳細な構成)
続いて、動き情報再生部204の詳細な構成について説明する。図21は、動き情報再生部204の構成を示す。動き情報再生部204は、符号化モード判定部210、動きベクトル再生部211および結合動き情報再生部212を含む。端子32は符号列解析部201に、端子33は動き情報メモリ207に、端子34は動き補償部205に、端子36は動き情報メモリ207にそれぞれ接続されている。
(動き情報再生部204の詳細な動作)
以下、各部の機能と動作について説明する。符号化モード判定部210は、符号列解析部201より供給されるマージフラグが「0」であるか「1」であるか判定する。マージフラグが「0」であれば、符号列解析部201より供給されるインター予測タイプ、参照インデックス、差分ベクトル、および予測ベクトルインデックスを動きベクトル再生部211に供給する。マージフラグが「1」であれば、符号列解析部201より供給されるマージインデックスを結合動き情報再生部212に供給する。
動きベクトル再生部211は、符号化モード判定部210より供給されるインター予測タイプ、参照インデックス、差分ベクトル、および予測ベクトルインデックスと、端子33より供給される候補ブロック群から、動きベクトルを再生して動き情報を生成し、端子34及び端子36に供給する。
結合動き情報再生部212は、端子33より供給される候補ブロック群から結合動き情報候補リストを生成し、当該結合動き情報候補リストから符号化モード判定部210より供給されるマージインデックスによって示される結合動き情報候補の動き情報を選択して端子34及び端子36に供給する。
(結合動き情報再生部212の詳細な構成)
続いて、結合動き情報再生部212の詳細な構成について説明する。図22は、結合動き情報再生部212の構成を示す。結合動き情報再生部212は、結合動き情報候補リスト生成部230および結合動き情報選択部231を含む。端子35は符号化モード判定部210に接続されている。
(結合動き情報再生部212の詳細な動作)
以下、各部の機能と動作について説明する。結合動き情報候補リスト生成部230は動画像符号化装置100の結合動き情報候補リスト生成部140と同一の機能を有し、動画像符号化装置100の結合動き情報候補リスト生成部140と同一の動作によって結合動き情報候補リストを生成し、当該結合動き情報候補リストを結合動き情報選択部231に供給する。
結合動き情報選択部231は、結合動き情報候補リスト生成部230より供給される結合動き情報候補リストの中から、端子35より供給されるマージインデックスで示される結合動き情報候補を選択して結合動き情報を決定し、当該結合動き情報の動き情報を端子34及び端子36に供給する。
以上のように、動画像復号装置200は、動画像符号化装置100により符号化された符号列を復号して再生画像を生成することができる。
[実施の形態2]
以下、実施の形態2について説明する。実施の形態1とは予測ブロックサイズタイプが2N×2N以外の予測ブロックについて空間結合動き情報候補生成部160において利用する空間候補ブロック群が異なる。以下、実施の形態2の予測ブロックサイズタイプが2N×2N以外の予測ブロックの空間候補ブロック群について説明する。
図23は実施の形態2における予測ブロックサイズタイプが2N×2N以外の予測ブロックと空間候補ブロック群の位置関係を説明する図である。図23(a)から(h)はそれぞれ予測ブロックサイズタイプがN×2Nの予測ブロック0、予測ブロックサイズタイプがN×2Nの予測ブロック1、予測ブロックサイズタイプが2N×Nの予測ブロック0、予測ブロックサイズタイプが2N×Nの予測ブロック1、予測ブロックサイズタイプがN×Nの予測ブロック0、予測ブロックサイズタイプがN×Nの予測ブロック1、予測ブロックサイズタイプがN×Nの予測ブロック2、予測ブロックサイズタイプがN×Nの予測ブロック3の場合の空間候補ブロック群を示す。図23では予測ブロックサイズが16画素×16画素である例を示す。このように、予測ブロックサイズタイプが2N×2Nではない符号化ブロックに含まれる予測ブロックでは、予測ブロックごとに予測ブロックの位置と大きさに基づいて候補ブロック群が決定される。
ここでは、前記の第1の例に加えて、必ず未処理となるブロックも予測ブロックサイズタイプが2N×2Nである予測ブロックの候補ブロックに置き換える。つまり、予測ブロックサイズタイプがN×2Nの予測ブロック1の場合(図23(b))、ブロックEを予測ブロックサイズタイプが2N×2Nである予測ブロックの候補ブロックのブロックEとする。予測ブロックサイズタイプが2N×Nの予測ブロック1の場合(図23(d))、ブロックCを予測ブロックサイズタイプが2N×2Nである予測ブロックの候補ブロックのブロックCとする。予測ブロックサイズタイプがN×Nの予測ブロック3の場合(図23(h))、ブロックCとブロックEを予測ブロックサイズタイプが2N×2Nである予測ブロックの候補ブロックのブロックCとブロックEとする。
以上のように、必ず未処理となる候補ブロックを予測ブロックサイズタイプが2N×2Nである予測ブロックの候補ブロックにすることで、必ず未処理となる候補ブロックを有効となる可能性のある候補ブロックとすることができ、マージモードの選択肢を増加させることでマージモードの選択率が上がり、符号化効率を向上させることができる。入れ替えた候補ブロックの動き情報を他の結合動き情報候補の動き情報と組み合わせて新たな動き情報を生成したり、入れ替えた候補ブロックの動き情報を修正して、第2補充結合動き情報候補よりも相対的に選択率の高い第1補充結合動き情報候補を結合動き情報候補リストに追加することで、符号化効率を高めることができる。特に、双結合動き情報候補を利用する場合には少なくとも2つの結合動き情報候補が必要となるため、結合動き情報候補リストに入れ替えた候補ブロック以外の結合動き情報候補が1個しか登録されていない場合に、入れ替えた候補ブロックの動き情報が効果的に作用する。
また、空間結合動き情報候補生成部160の動作において、結合動き情報候補リストへの登録順序をブロックA、ブロックB、ブロックC、ブロックE、ブロックDとしたが、以下のように変形することもできる。
予測ブロックサイズタイプがN×2Nの予測ブロック1の場合は、ブロックB、ブロックC、ブロックD、ブロックA、ブロックEの順に、予測ブロックサイズタイプが2N×Nの予測ブロック1の場合は、ブロックA、ブロックE、ブロックD、ブロックB、ブロックCの順に、予測ブロックサイズタイプがN×Nの予測ブロック1の場合は、ブロックB、ブロックC、ブロックD、ブロックA、ブロックEの順に、予測ブロックサイズタイプがN×Nの予測ブロック2の場合は、ブロックA、ブロックE、ブロックD、ブロックB、ブロックCの順にすることもできる。このように、処理対象の予測ブロックに近い順に結合動き情報候補リストに追加することで、処理対象の予測ブロックに近いブロックに大きなマージインデックスが割り当てられることを防止することができ、符号化効率を向上させることができる。
[実施の形態3]
最初に、予測ブロックサイズタイプに依存せずに符号化ブロック内の予測ブロックの候補ブロックを共通とする一例について説明する。実施の形態1とは予測ブロックサイズタイプが2N×2N以外の予測ブロックと空間候補ブロック群と時間候補ブロック群が異なる。以下、予測ブロックサイズタイプに依存せずに符号化ブロック内の予測ブロックの候補ブロックを共通とする一例の予測ブロックサイズタイプが2N×2N以外の予測ブロックの空間候補ブロック群と時間候補ブロック群について説明する。本例では、予測ブロックサイズタイプに依存せずに符号化ブロック内の予測ブロックの候補ブロックを予測ブロックサイズタイプが2N×2Nである予測ブロックの候補ブロックとする。
図24は予測ブロックサイズタイプに依存せずに符号化ブロック内の予測ブロックの候補ブロックを共通とする一例における予測ブロックサイズタイプが2N×2N以外の予測ブロックと候補ブロック群の位置関係を説明する図である。図24では、時間候補ブロックH及びIは、空間候補ブロックA〜Eが存在するピクチャとは別の復号済みのピクチャとは別のピクチャに存在するが、理解及び説明の容易のため、空間候補ブロックA〜Eとあわせて図示されている。図24(a)から(h)はそれぞれ予測ブロックサイズタイプがN×2Nの予測ブロック0、予測ブロックサイズタイプがN×2Nの予測ブロック1、予測ブロックサイズタイプが2N×Nの予測ブロック0、予測ブロックサイズタイプが2N×Nの予測ブロック1、予測ブロックサイズタイプがN×Nの予測ブロック0、予測ブロックサイズタイプがN×Nの予測ブロック1、予測ブロックサイズタイプがN×Nの予測ブロック2、予測ブロックサイズタイプがN×Nの予測ブロック3の場合の空間候補ブロック群を示す。図24では予測ブロックサイズが16画素×16画素である例を示す。予測ブロックサイズタイプが2N×2N以外の予測ブロックの時間候補ブロック群として、図24に示すように予測ブロックサイズタイプが2N×2Nの予測ブロックとして導出した時間候補ブロック群を利用する。
以上のように、予測ブロックサイズタイプに依存せず、候補ブロックが予測サイズタイプが2N×2Nである予測ブロックの候補ブロックとなる。換言すると、予測ブロックサイズタイプに依存せず、予測ブロックサイズタイプが2N×2Nである場合の候補ブロックが、符号化ブロックの全ての予測ブロックにおいて、共通に利用される。すなわち、結合動き情報候補リスト生成部140及び230によれば、候補ブロックが同一であれば同一の結合動き情報候補リストが生成されるため、予測ブロックサイズタイプに依存せず、予測ブロックサイズタイプが2N×2Nである場合に導出される結合動き情報候補リストを、符号化ブロックの全ての予測ブロックにおいて、共通に利用することができる。これにより、予測ブロックタイプサイズが確定する前に候補ブロックを確定し、結合動き情報候補リストを確定することができる。また、符号化ブロックが複数の予測ブロックに分割される場合、予測ブロック毎に候補ブロックを導出する必要がなくなるため、図11に示した結合動き情報候補リストを生成する回数を1/2(2分割の場合)または1/4(4分割の場合)に削減することができる。また、符号化ブロックの予測ブロックを並列に処理することができる。
以下、実施の形態3の別の一例について説明する。実施の形態1とは予測ブロックサイズタイプが2N×2N以外の予測ブロックについて空間結合動き情報候補生成部160において利用する空間候補ブロック群と時間候補ブロック群と結合動き情報候補リスト生成部140の動作が異なる。以下、実施の形態3の予測ブロックサイズタイプが2N×2N以外の予測ブロックの空間候補ブロック群と時間候補ブロック群について説明する。
ここでは、予測ブロックが複数に分割される場合は、符号化ブロック内の全ての予測ブロックの候補ブロックとして予測ブロック0の候補ブロックを利用する。
図25は実施の形態3における予測ブロックサイズタイプが2N×2N以外の予測ブロックと候補ブロック群の位置関係を説明する図である。図25では、時間候補ブロックH及びIは、空間候補ブロックA〜Eが存在するピクチャとは別の復号済みのピクチャとは別のピクチャに存在するが、理解及び説明の容易のため、空間候補ブロックA〜Eとあわせて図示されている。図25(a)から(h)はそれぞれ予測ブロックサイズタイプがN×2Nの予測ブロック0、予測ブロックサイズタイプがN×2Nの予測ブロック1、予測ブロックサイズタイプが2N×Nの予測ブロック0、予測ブロックサイズタイプが2N×Nの予測ブロック1、予測ブロックサイズタイプがN×Nの予測ブロック0、予測ブロックサイズタイプがN×Nの予測ブロック1、予測ブロックサイズタイプがN×Nの予測ブロック2、予測ブロックサイズタイプがN×Nの予測ブロック3の場合の空間候補ブロック群と時間候補ブロック群を示す。図25では予測ブロックサイズが16画素×16画素である例を示す。予測ブロックサイズタイプが2N×2N以外の予測ブロックの時間候補ブロック群として、図25に示すように予測ブロック0として導出した時間候補ブロック群を利用する。
次に、結合動き情報候補リスト生成部140の動作について説明する。図26は実施の形態3の結合動き情報候補リスト生成部140の動作を説明するフローチャートである。実施の形態1の結合動き情報候補リスト生成部140の動作である図11とは、ステップS106及びステップS107が追加されていることが異なる。実施の形態1とは異なるステップS106とステップS107について説明する。予測ブロック0であるか検査する(S106)。予測ブロック0であれば(S106のY)、ステップS100からS105の処理を行って処理を終了する。予測ブロック0でなければ(S106のN)、処理対象の予測ブロックの結合動き情報候補リストとして予測ブロック0の結合動き情報候補リストを利用し(S107)、処理を終了する。
以上のように、符号化ブロックが複数に分割される場合は、符号化ブロック内の全ての予測ブロックの候補ブロックとして予測ブロック0の候補ブロックを利用することで、符号化ブロックが複数の予測ブロックに分割される場合、予測ブロック0以外の予測ブロックの結合動き情報候補リストを生成する必要がなくなるため、図11に示した結合動き情報候補リストを生成する回数を1/2(2分割の場合)または1/4(4分割の場合)に削減することができる。すなわち、予測ブロック0で導出される結合動き情報候補リストを、符号化ブロックのいずれの予測ブロックにおいても、共通に利用することができる。また、結合動き情報候補リストを予測ブロックサイズタイプが確定すれば、予測ブロックの位置が確定する前に生成することができるため、回路設計やソフトウェア設計を柔軟にし、回路規模やソフトウェア規模を削減することが可能となる。また、符号化ブロックの予測ブロックを並列に処理することができる。
さらに、予測ブロックサイズタイプが2N×2N以外の予測ブロックの候補ブロックの位置を、予測ブロックサイズタイプが2N×2Nの予測ブロックとは異なる候補ブロックの位置とすることで、予測ブロックサイズタイプが2N×2N以外の予測ブロックとなる選択確率を高めることができ、上記の予測ブロックサイズタイプに依存せずに符号化ブロック内の予測ブロックの候補ブロックを共通とする一例よりも符号化効率を向上させることができる。さらに、予測ブロック0は同一の符号化ブロックの他の予測ブロックに含まれる候補ブロック及び必ず未処理となる候補ブロックが含まれないため、結合動き情報候補が有効となる確率を上げて予測効率を向上させることができる。なお、最も符号化効率の高いスキップモードは予測ブロックサイズタイプが2N×2Nと同等であるため、本実施の形態による影響を受けない。
実施の形態3では符号化ブロックの代表ブロックとして符号化ブロック内の最初の予測ブロックである予測ブロック0を利用したが、それに限定されない。例えば、符号化ブロック内で最初にマージモードを利用する予測ブロックとすることもできる。この場合、S106とS107は以下のようになる。符号化ブロック内で結合動き情報候補リストが既に生成されていないか検査する(S106)。符号化ブロック内で結合動き情報候補リストが既に生成されていなければ(S106のY)、ステップS100からS105の処理を行って処理を終了する。符号化ブロック内で結合動き情報候補リストが既に生成されていれば(S106のN)、符号化ブロック内で結合動き情報候補リストが既に生成された結合動き情報候補リストを利用し(S107)、処理を終了する。
以上のように、符号化ブロック内で最初にマージモードを利用する予測ブロックの結合動き情報候補リストを符号化ブロック内の他の予測ブロックでも利用することで、少なくとも最初にマージモードを利用する予測ブロックの予測効率を向上させることができる。また、符号化ブロックの代表ブロックとして符号化ブロック内の最後の予測ブロック(2分割の場合は予測ブロック1、4分割の場合は予測ブロック3)を利用することもできる。この場合、時間候補ブロック群の位置を、予測ブロックサイズタイプが2N×2Nの予測ブロックとは異なる候補ブロックの位置とすることで、予測ブロックサイズタイプが2N×2N以外の予測ブロックとなる選択確率を高めることができ、予測効率を向上させることができる。
また、実施の形態2のように、結合動き情報候補リストへの追加順を処理対象の予測ブロックに近い順とすることもできる。
[実施の形態3の変形例1]
以下、実施の形態3の変形例1について説明する。実施の形態3とは最大符号化ブロック下限ラインで時間候補ブロック群が制限されることが異なる。最大符号化ブロック下限ラインでの時間候補ブロック群の制限について説明する。図27は最大符号化ブロック下限ラインと時間候補ブロック群を説明する図である。図27のように最大符号化ブロック下限ラインは最大符号化ブロックの最下部の画素が含まれるラインである。最大符号化ブロック下限ラインより下にあるブロックは利用しないように制限することで、動画像符号化装置100及び動画像復号装置200において、時間候補ブロック群のための一時記憶領域の容量を削減することができる。
予測ブロックサイズタイプが2N×2Nではない符号化ブロックにおける予測ブロックについて予測ブロックサイズタイプが2N×2Nである符号化ブロックの予測ブロックと同じ位置関係を適用した場合、最大符号化ブロック下限ラインが設置されている場合、図27の最大符号化ブロック下限ラインに接する予測ブロックサイズタイプが2N×Nの予測ブロック1の時間候補ブロック(H1)の位置は利用できなくなる。
ところが、実施の形態3のように、予測ブロックが複数に分割される場合は符号化ブロック内の全ての予測ブロックの候補ブロックとして予測ブロック0の候補ブロックを利用することで、時間候補ブロック群として時間候補ブロック(H0)を利用することになるため、時間候補ブロックを有効とすることができ、予測効率を向上させることができる。これは、予測ブロックサイズタイプがN×Nの予測ブロック2と予測ブロック3についても同様である。
[実施の形態4]
以下、実施の形態4について説明する。実施の形態1とは予測ブロックサイズタイプが2N×2N以外の予測ブロックの空間候補ブロック群と時間候補ブロック群と結合動き情報候補リスト生成部140の構成と動作が異なる。以下、実施の形態4の予測ブロックサイズタイプが2N×2N以外の予測ブロックと空間候補ブロック群と時間候補ブロック群について説明する。
ここでは、空間候補ブロック群を予測ブロックサイズタイプが2N×2Nである符号化ブロックの予測ブロックと同じ位置関係を適用したものとする。時間候補ブロック群として、予測ブロック0として導出した時間候補ブロック群を利用する。
図28は実施の形態4における予測ブロックサイズタイプが2N×2N以外の予測ブロックと候補ブロック群の位置関係を説明する図である。図28では、時間候補ブロックH及びIは、空間候補ブロックA〜Eが存在するピクチャとは別の復号済みのピクチャとは別のピクチャに存在するが、理解及び説明の容易のため、空間候補ブロックA〜Eとあわせて図示されている。図28(a)から(h)はそれぞれ予測ブロックサイズタイプがN×2Nの予測ブロック0、予測ブロックサイズタイプがN×2Nの予測ブロック1、予測ブロックサイズタイプが2N×Nの予測ブロック0、予測ブロックサイズタイプが2N×Nの予測ブロック1、予測ブロックサイズタイプがN×Nの予測ブロック0、予測ブロックサイズタイプがN×Nの予測ブロック1、予測ブロックサイズタイプがN×Nの予測ブロック2、予測ブロックサイズタイプがN×Nの予測ブロック3の場合の空間候補ブロック群を示す。図28では予測ブロックサイズが16画素×16画素である例を示す。予測ブロックサイズタイプが2N×2N以外の予測ブロックの時間候補ブロック群として、図28に示すように予測ブロック0として導出した時間候補ブロック群を利用する。勿論、予測ブロックサイズタイプが2N×2N以外の予測ブロックの時間候補ブロック群として、予測ブロックサイズタイプが2N×2Nの予測ブロックとして導出した時間候補ブロック群を利用することもできる。
次に、結合動き情報候補リスト生成部140の構成と動作について説明する。図29は実施の形態4の結合動き情報候補リスト生成部140の構成を説明する図である。実施の形態1とは時間結合動き情報候補生成部161の位置が第1結合動き情報候補補充部163の後段に設置されていることが異なる。図30は実施の形態4の結合動き情報候補リスト生成部140の動作を説明するフローチャートである。実施の形態1の結合動き情報候補リスト生成部140の動作である図11とは、ステップS106及びステップS108が追加されていること、ステップS102の位置が異なる。実施の形態1とは異なる点について説明する。
空間結合動き情報候補生成部160は、端子12より供給される候補ブロック群から0個から空間結合動き情報候補最大数の空間結合動き情報候補を生成して結合動き情報候補リストに追加し(S101)、当該結合動き情報候補リストと候補ブロック群を冗長結合動き情報候補削除部162に供給する。
次に、冗長結合動き情報候補削除部162は、空間結合動き情報候補生成部160より供給される結合動き情報候補リストに登録されている結合動き情報候補を検査し、同一の動き情報を有する結合動き情報候補が複数存在する場合には1つの結合動き情報候補を残してその他の結合動き情報候補を削除し(S103)、当該結合動き情報候補リストを第1結合動き情報候補補充部163に供給する。
次に、第1結合動き情報候補補充部163は、冗長結合動き情報候補削除部162より供給される結合動き情報候補リストに登録された結合動き情報候補から0個から2個の第1補充結合動き情報候補を生成して結合動き情報候補リストに追加し(S104)、当該結合動き情報候補リストと候補ブロック群を時間結合動き情報候補生成部161に供給する。
次に、時間結合動き情報候補生成部161は、処理対象の予測ブロックが予測ブロック0であるか検査する(S106)。処理対象の予測ブロックが予測ブロック0であれば(S106のY)、冗長結合動き情報候補削除部162より供給される候補ブロック群から0個から時間結合動き情報候補最大数の時間結合動き情報候補を生成して冗長結合動き情報候補削除部162より供給される結合動き情報候補リストに追加し(S102)、当該結合動き情報候補リストを第2結合動き情報候補補充部164に供給する。処理対象の予測ブロックが予測ブロック0でなければ(S106のN)、候補ブロック0の時間結合動き情報候補を結合動き情報候補リストに追加し(S108)、当該結合動き情報候補リストを第2結合動き情報候補補充部164に供給する。
次に、第2結合動き情報候補補充部164は、時間結合動き情報候補生成部161より供給される結合動き情報候補リストに登録された結合動き情報候補の数がマージ候補最大数に達するまで第2補充結合動き情報候補を生成して当該結合動き情報候補リストに追加し(S105)、当該結合動き情報候補リストを端子19に供給する。
以上のように、予測ブロックサイズタイプが2N×2N以外の予測ブロックの空間候補ブロック群を予測ブロックサイズタイプが2N×2Nである符号化ブロックの予測ブロックと同じ位置関係を適用したものとし、時間候補ブロック群を予測ブロック0の時間候補ブロック群とすることで、予測ブロックサイズタイプが確定すれば、時間候補ブロック群を確定することができる。すなわち、予測ブロック0で導出される時間結合動き情報候補を、符号化ブロックのいずれの予測ブロックにおいても、共通に利用するこができる。一方、空間候補ブロック群は、予測ブロックごとに予測ブロックの位置と大きさに基づいて決定される。空間結合動き情報候補の導出には候補ブロックの動き情報がそのまま利用されるため演算は不要であって処理時間は短いが、時間結合動き情報候補の導出には式1または式2から式4のようなベクトルを演算する処理が必要となること、インター予測タイプを決定する処理があることから処理時間が長くなる。
そこで、結合動き情報候補リストを生成するための処理において最も処理時間を要する時間結合動き情報候補の導出を符号化ブロックで1回とすることで、予測ブロックが複数に分割される場合の処理時間を短縮することができる。
さらに、空間結合動き情報候補として処理対象の予測ブロックに隣接したブロックを利用することで、予測ブロックサイズタイプが2N×2N以外の予測ブロックとなる選択確率を高めることができ、上記の予測ブロックサイズタイプに依存せずに符号化ブロック内の予測ブロックの候補ブロックを共通とする一例よりも符号化効率を向上させることができる。また、時間候補ブロック群としてColPicの所定領域の代表ブロックを利用していることから、空間候補ブロック群と比較して時間候補ブロック群の精度は相対的に低くなるため、時間候補ブロック群の精度を落としても予測効率の低下を抑制できる。
ここでは、時間結合動き情報候補を導出する時間が空間結合動き情報候補の導出、冗長結合動き情報候補削除部162の動作、第1結合動き情報候補補充部163の動作よりも十分に長いとして、結合動き情報候補リスト生成部140の動作を図30としたが、例えば、予測効率を優先してS106、S102、及びS108をS101やS103の後段に移動させてもよく、処理効率を優先してS106、S102、及びS108をS105の後段に設置することもできる。S106、S102、及びS108をS105の後段に設置する場合には、第2結合動き情報候補補充部164から出力される結合動き情報候補リストに登録された結合動き情報候補の数がマージ候補最大数より1小さい数とする。
ここでは、予測効率を重視して空間候補ブロック群を予測ブロックサイズタイプが2N×2Nである符号化ブロックの予測ブロックと同じ位置関係を適用したものとしたが、符号化ブロック内の予測ブロックの並列処理を実現するために同一の符号化ブロックの他の予測ブロックに含まれる候補ブロックは候補ブロックとして利用しないとしたり、空間候補ブロック群を他の実施の形態と組み合わせたりして、時間候補ブロック群として予測ブロック0として導出した時間候補ブロック群を利用してもよい。
また、ここでは、予測ブロックサイズタイプが2N×2N以外の予測ブロックの時間候補ブロック群を、符号化ブロック内の最初の予測ブロックである予測ブロック0で導出した時間候補ブロック群であるとしたが、これに限定されない。例えば、予測ブロックサイズタイプが2N×2Nである場合の予測ブロックの時間候補ブロック群としてもよく、符号化ブロック内の最後の予測ブロック(2分割の場合は予測ブロック1、4分割の場合は予測ブロック3)の時間候補ブロック群としてもよい。予測ブロックサイズタイプが2N×2Nである場合の予測ブロックの時間候補ブロック群とした場合には、時間候補ブロック群を予測ブロックサイズタイプや予測ブロックの位置が確定する前に生成することができるため、回路設計やソフトウェア設計を柔軟にし、回路規模やソフトウェア規模を削減することが可能となる。
[実施の形態5]
以下、実施の形態5について説明する。実施の形態1とは結合動き情報候補リスト生成部140の構成と動作が異なり、符号列生成部104と符号列解析部201の動作が異なる。
最初に、結合動き情報候補リスト生成部140の構成について説明する。図31は実施の形態5の結合動き情報候補リスト生成部140の構成を説明する図である。図10の実施の形態1の結合動き情報候補リスト生成部140とは、候補ブロック設定部165が空間結合動き情報候補生成部160の前段に追加されていることが異なる。ここでは、予測効率を優先した候補ブロック配置であるか並列処理や処理時間短縮などの処理効率を優先した候補ブロック配置であるかをフラグなどで切り替える。
次に、結合動き情報候補リスト生成部140の動作について説明する。図32は実施の形態5の結合動き情報候補リスト生成部140の動作を説明するフローチャートである。図11の実施の形態1の結合動き情報候補リスト生成部140の動作とは、ステップS100の前段に、ステップS106からS108が追加されていることが異なる。ステップS106からステップS108について説明する。最初に、cu_dependent_flagが1であるか判定する(S106)。cu_dependent_flagが1であれば(S106のY)、予測効率を優先するブロック配置とする(S107)。予測効率を優先するブロック配置とは、例えば、予測ブロックサイズタイプが2N×2N以外の予測ブロックの候補ブロック群を予測ブロックサイズタイプが2N×2Nの予測ブロックと同じ位置関係を適用した図12のような処理対象の予測ブロックに隣接する候補ブロックだけからなるブロック配置となる。cu_dependent_flagが0であれば(S106のN)、処理効率を優先するブロック配置とする(S108)。処理効率を優先するブロック配置とは、例えば、図14、図23、図24、図25、または図28のような処理対象の予測ブロックに隣接しない候補ブロックを含むブロック配置となる。ステップS107またはステップS108に引き続いて、ステップS100以降の処理が実施される。ここで、本実施の形態では、例えば図12に示すような予測効率を優先するブロック配置に基づき、符号化ブロックの予測ブロックごとに、その位置と大きさに基づいて候補ブロック群の決定および結合動き情報候補リストの生成を行う、又は例えば図24若しくは図25に示すような処理効率を優先するブロック配置に基づき、符号化ブロックの全ての予測ブロックにおいて共通に利用される候補ブロックから結合動き情報候補リストの生成を行うかが切り替えられる。
動画像符号化装置100では、enable_cu_parallel_flagが0であるか1であるかは動画像符号化装置100よりも上位で設定されているものとする。ここでは、図32に示す動作を結合動き情報候補リスト生成部140で実施するとしたが、動画像符号化装置100よりも上位で設定することもできる。
符号列生成部104は、cu_dependent_flagをSPS、PPS、スライスヘッダなど符号化ブロック以外の位置に多重化する。符号列解析部201は、SPS、PPS、スライスヘッダなど符号化ブロック以外の位置に多重化されたcu_dependent_flagを復号して動き情報再生部204に供給する。
cu_dependent_flagを符号化ストリーム中に多重化することで、予測効率を優先した符号化ストリームであるかどうかを容易に判断できる。また、予測効率を優先したブロック配置による符号化ストリームと処理効率を優先したブロック配置による符号化ストリームを共通の復号装置で復号できる。cu_dependent_flagが0または1のいずれかしか復号しない復号装置については、例えば、運用規定やMPEG−4AVCのような符号化ツールを分類したプロファイルなどでcu_dependent_flagを0または1のいずれかに固定して符号化ストリームを生成し、cu_dependent_flagを無視または暗示的に設定することで符号化ストリームを正しく復号することができる。また、cu_dependent_flagを符号化ブロックのより上位のヘッダに多重化することで、図32に示す動作を削減することができる。
ここでは、cu_dependent_flagによって予測効率を優先したブロック配置と処理効率を優先したブロック配置とを切り替えたが、例えば、符号化ブロックの分割回数が所定回数以上の場合には処理効率を優先したブロック配置とし、符号化ブロックが所定閾サイズ以上でない場合には予測効率を優先したブロック配置としたり、符号化ブロックが所定閾サイズ以下の場合には処理効率を優先したブロック配置とし、符号化ブロックが所定閾サイズ以下でない場合には予測効率を優先したブロック配置としたりすることもできる。また、所定閾サイズを最小の符号化ブロックサイズである8×8とすることで、最も処理量が増加する場合のみに適用することができ、処理量と予測効率を最適にバランスさせることができる。この場合、ステップS108において、符号化ブロックが所定閾サイズであるか判定することになる。符号化ブロックが符号化ブロックの分割回数が所定回数以上(または所定閾サイズ以下)の場合には処理効率を優先したブロック配置とし、符号化ブロックが符号化ブロックの分割回数が所定回数以上(または所定閾サイズ以下)でない場合には予測効率を優先したブロック配置とすることで、予測効率と処理量を容易に調節することが可能となる。なお、所定閾サイズまたは所定回数をSPS、PPS、スライスヘッダなど符号化ブロック以外の位置に多重化するもできる。また、enable_cu_parallel_flagが1である場合には所定閾サイズまたは所定回数を定義し、enable_cu_parallel_flagが0である場合には所定閾サイズまたは所定回数を定義しないような意味としてenable_cu_parallel_flagを利用して符号化ストリーム中に多重化することで、より柔軟に処理量と予測効率を調節することが可能となる。すなわち、enable_cu_parallel_flagを0とすることで、所定閾サイズまたは所定回数によらず、常に予測効率を優先したブロック配置とし、enable_cu_parallel_flagを1とすることで、所定閾サイズまたは所定回数によって、予測効率と処理効率を切り替えて、処理量と予測効率を最適にバランスさせることを可能とする。
[実施の形態6]
以下、実施の形態6について説明する。実施の形態3の動画像符号化装置100の予測ベクトルモード決定部120の構成と動きベクトル再生部211の動作について詳細に説明する。以下、予測ベクトルモード決定部120の詳細な構成について説明する。
(予測ベクトルモード決定部120の構成)
続いて、予測ベクトルモード決定部120の詳細な構成について説明する。図33は、予測ベクトルモード決定部120の構成を示す。予測ベクトルモード決定部120は、予測ベクトル候補リスト生成部130および予測ベクトル決定部131を含む。端子17は予測符号化モード決定部122に接続されている。
予測ベクトル候補リスト生成部130は、実施の形態6に係る動画像符号化装置100により生成された符号列を復号する動画像復号装置200内の動きベクトル再生部211の中にも同様に設置されて、動画像符号化装置100と動画像復号装置200にて同一の予測ベクトル候補リストが生成される。
(予測ベクトルモード決定部120の動作)
以下、予測ベクトルモード決定部120の動作について説明する。
最初に、L0予測について以下の処理を行う。以下、Xは0とする。予測ベクトル候補リスト生成部130は、端子13より供給されるLX予測の参照インデックスを取得する。端子12より供給される候補ブロック群とLX予測の参照インデックスから予測ベクトル候補最大数の予測ベクトル候補を含むLX予測の予測ベクトル候補リストを生成する。予測ベクトル候補リスト生成部130は、当該LX予測の予測ベクトル候補リストを予測ベクトル決定部131に供給する。
予測ベクトル決定部131は、予測ベクトル候補リスト生成部130より供給されるLX予測の予測ベクトル候補リストから1つの予測ベクトル候補をLX予測の予測ベクトルとして選択して、当該LX予測の予測ベクトルインデックスを決定する。
予測ベクトル決定部131は、端子13より供給されるLX予測の動きベクトルからLX予測の予測ベクトルを減算してLX予測の差分ベクトルを算出し、当該LX予測の差分ベクトルと当該LX予測の予測ベクトルインデックスを出力する。
予測ベクトル決定部131は、端子15より供給される画像信号と、端子14より供給される参照画像を端子13より供給されるLX予測の動きベクトルおよびLX予測の参照インデックスに基づいて動き補償予測したLX予測の予測信号とから予測誤差量を算出し、当該予測誤差量と、LX予測の差分ベクトル、LX予測の参照インデックス、およびLX予測の予測ベクトルインデックスの符号量とからPred_LXのレート歪評価値を算出する。
次に、Xを1としてL1予測についてL0予測と同じ処理を行う。
続いて、予測ベクトル決定部131は、端子15より供給される画像信号と、L0予測の予測信号およびL1予測の予測信号を平均したBI予測の予測信号とから予測誤差量を算出し、当該予測誤差量と、L0予測とL1予測の差分ベクトル、L0予測とL1予測の参照インデックス、およびL0予測とL1予測の予測ベクトルインデックスの符号量とからPred_BIのレート歪評価値を算出する。
予測ベクトル決定部131は、Pred_L0のレート歪評価値、Pred_L1のレート歪評価値、およびPred_BIのレート歪評価値を比較して、最小のレート歪評価値である予測符号化モードを1つ選択する。そして、予測符号化モードに基づいた動き情報、差分ベクトル、予測ベクトルインデックス、およびレート歪み評価値を予測符号化モード決定部122に供給する。なお、予測符号化モードがPred_L0であれば、L1予測の動きベクトルは(0,0)、L1予測の参照インデックスは「−1」となり、予測符号化モードがPred_L1であれば、L0予測の動きベクトルは(0,0)、L0予測の参照インデックスは「−1」となる。
(予測ベクトル候補リスト生成部130の構成)
続いて、予測ベクトル候補リスト生成部130の詳細な構成について説明する。図34は、予測ベクトル候補リスト生成部130の構成を説明するための図である。端子18は予測ベクトル決定部131に接続されている。予測ベクトル候補リスト生成部130は、空間予測ベクトル候補生成部150、時間予測ベクトル候補生成部151、冗長予測ベクトル候補削除部152、及び予測ベクトル候補補充部153を含む。
(予測ベクトル候補リスト生成部130の動作)
以下、各部の機能と動作について説明する。予測ベクトル候補リスト生成部130は必要に応じてL0予測の予測ベクトル候補リストとL1予測の予測ベクトル候補リストを生成する。以下、LX予測として説明する。Xは0または1とする。図35は、予測ベクトル候補リスト生成部130の動作を説明するためのフローチャートである。
まず、予測ベクトル候補リスト生成部130は、LX予測の予測ベクトル報候補リストを初期化する(S200)。初期化されたLX予測の予測ベクトル候補リストには予測ベクトル候補は存在しない。
端子12より供給される空間候補ブロック群に含まれる候補ブロックを第1グループであるブロックEとブロックA、第2グループであるブロックC、ブロックB、及びブロックDの2グループに分け、第1グループ、第2グループの順に以下の処理を繰り返す(S201からS203)。
ここで、端子12より供給される候補ブロック群は2N×2Nの候補ブロック群についてはマージモードと同一とし、2N×2N以外の候補ブロック群については2N×2Nと同じ位置関係の適用した候補ブロック群とする。また、端子13より供給されるLX予測の参照インデックス、端子12より供給される候補ブロック群、及びLX予測の予測ベクトル報候補リストは予測ベクトル候補リスト生成部130内部で共有されているものとして説明する。
空間予測ベクトル候補生成部150は、第iグループ(iは1または2)の候補ブロック群からLX予測の空間予測ベクトル候補を0個または1個生成し、当該LX予測の空間予測ベクトル候補をLX予測の予測ベクトル候補リストに追加し(S202)、当該LX予測の予測ベクトル候補リストと候補ブロック群を時間予測ベクトル候補生成部151に供給する。
ここで、空間予測ベクトル候補の具体的な導出方法について説明する。第1グループ及び第2グループについて以下の処理を繰り返す。第1グループは候補ブロックとしてブロックE、ブロックAを順に検査し、第2グループは候補ブロックとしてブロックC、ブロックB、ブロックDの順に検査する。
各候補ブロックについて、L0予測、L1予測の順に以下の処理を行う。以降、各候補ブロックのL0予測、L1予測をLN予測として説明する。
候補ブロックのLN予測の参照インデックスが示す参照画像が端子13より供給されるLX予測の参照インデックスが示す参照画像と同一であるか検査する。
候補ブロックのLN予測の参照インデックスが示す参照画像が端子13より供給されるLX予測の参照インデックスが示す参照画像と同一であれば、候補ブロックのLN予測の動きベクトルを空間予測ベクトル候補として処理を終了する。
候補ブロックのLN予測の参照インデックスが示す参照画像が端子13より供給されるLX予測の参照インデックスが示す参照画像と同一でなければ、次のLN予測または次の候補ブロックを検査する。
全ての候補ブロックの検査が完了すれば、処理を終了する。
以上のように、各グループから0個または1個の空間予測ベクトル候補が導出され、LX予測としては0個から2個の空間予測ベクトル候補が導出される。
次に、時間予測ベクトル候補生成部151は、時間候補ブロック群からLX予測の時間予測ベクトル候補を0個または1個生成し、当該LX予測の時間予測ベクトル候補をLX予測の予測ベクトル候補リストに追加し(S204)、当該LX予測の予測ベクトル候補リストと候補ブロック群を予測ベクトル候補補充部153に供給する。
ここで、時間予測ベクトル候補の具体的な導出方法について説明する。
時間候補ブロック群を候補ブロックとしてブロックH、ブロックIの順に検査する。
各候補ブロックについて、L0予測、L1予測の順に以下の処理を行う。以降、各候補ブロックのL0予測、L1予測をLN予測として説明する。
候補ブロックのLN予測が有効であるか検査する。候補ブロックのLN予測が有効であるとは参照インデックスが0以上であることである。
候補ブロックのLN予測が有効であれば、候補ブロックのLN予測の動きベクトルを基準動きベクトルとして時間予測ベクトル候補を導出して処理を終了する。時間予測ベクトル候補の導出方法については後述する。
候補ブロックのLN予測が有効でなければ、次の候補ブロックを検査する。
全ての候補ブロックの検査が完了すれば、処理を終了する。
ここで、時間予測ベクトル候補の導出方法について説明する。時間候補ブロックのあるColPicと時間候補ブロックがLN予測の動き補償予測で参照するピクチャであるColRefLXPicの画像間距離をtd、LX予測の参照インデックスが示す参照画像RefLXPicと処理対象画像CurPicの画像間距離をtb、LX予測の基準動きベクトルをmvLXとして、時間予測ベクトル候補mvLXColは式1より算出される。
冗長予測ベクトル候補削除部152は、時間予測ベクトル候補生成部151より供給されるLX予測の予測ベクトル候補リストに登録されている予測ベクトル候補を検査し、同一のベクトルを有する予測ベクトル候補が複数存在する場合には1つの予測ベクトル候補を残してその他の予測ベクトル候補を削除し、LX予測の予測ベクトル候補リストに登録されている予測ベクトル候補数が予測ベクトル候補最大数を超えている場合はLX予測の予測ベクトル候補リストに登録されている予測ベクトル候補数が予測ベクトル候補最大数以下となるようにLX予測の予測ベクトル候補リストの後方の予測ベクトル候補を削除して(S205)、当該LX予測の予測ベクトル候補リストを予測ベクトル候補補充部153に供給する。ここで、当該LX予測の予測ベクトル候補リストに登録されている結合動き情報候補は全てが異なる結合動き情報候補となる。
予測ベクトル候補補充部153は、予測ベクトル補充候補を生成し、冗長予測ベクトル候補削除部152より供給されるLX予測の予測ベクトル候補リストに登録された予測ベクトル候補数が予測ベクトル候補最大数になるように当該予測ベクトル補充候補をLX予測の予測ベクトル候補リストに追加し(S206)、端子18に供給する。予測ベクトル補充候補は動きベクトル(0,0)とする。ここでは、予測ベクトル補充候補を動きベクトル(0,0)としたが、(1,1)などの所定値でもよく、空間予測ベクトル候補の水平成分や垂直成分を+1や−1などした動きベクトルでもよい。
ここでは、端子12より供給される空間候補ブロック群に含まれる候補ブロックを2グループに分けて、各グループから1個ずつ空間予測動きベクトル候補を選択できるようにしたが、1グループにして2個の空間予測動きベクトル候補を選択してもよい。
以下、動きベクトル再生部211の詳細な構成について説明する。
(動きベクトル再生部211の詳細な構成)
続いて、動きベクトル再生部211の詳細な構成について説明する。図36は、動きベクトル再生部211の構成を説明する図である。動きベクトル再生部211は、予測ベクトル候補リスト生成部220、予測ベクトル選択部221および加算部222を含む。端子35は符号化モード判定部210に接続されている。
(動きベクトル再生部211の詳細な動作)
以下、各部の機能と動作について説明する。動きベクトル再生部211は、端子35より供給されるインター予測タイプがL0予測であれば、L0予測について動きベクトルの算出を行い、インター予測タイプがL1予測であれば、L1予測について動きベクトルの算出を行い、インター予測タイプがBI予測であれば、L0予測とL1予測について動きベクトルの算出を行う。各LX予測の動きベクトルの算出は以下のように行われる。
動きベクトル再生部211は、端子35より供給されるLX予測の参照インデックス及び端子33より供給される候補ブロック群からLX予測の予測ベクトル候補リストを生成する。当該LX予測の予測ベクトルリストからLX予測の予測ベクトルインデックスによって示される予測ベクトル候補をLX予測の予測ベクトルとして選択し、LX予測の予測ベクトルとLX予測の差分ベクトルを加算してLX予測の動きベクトルを算出する。
当該LX予測の動きベクトルとインター予測タイプとが組み合わされて動き情報が生成され、端子34及び端子36に供給される。
以上のように、マージ候補最大数が5であって相対的に候補数の多いマージモードでは、2N×2N以外の候補ブロック群については符号化ブロック内の全ての予測ブロックの候補ブロックとして予測ブロック0の候補ブロックを利用することで、結合動き情報候補リストを符号化ブロック内で共通化して候補選択に要する処理を並列化可能とし、予測ベクトル候補最大数が2であって相対的に候補数の少ない予測ベクトルモードでは、2N×2N以外の候補ブロック群については2N×2Nと同じ位置関係の適用した候補ブロックを利用し、予測効率を最適化することで、処理効率と予測効率を好適にすることができる。
以上述べた実施の形態の動画像符号化装置が出力する動画像の符号化ストリームは、実施の形態で用いられた符号化方法に応じて復号することができるように特定のデータフォーマットを有しており、動画像符号化装置に対応する動画像復号装置がこの特定のデータフォーマットの符号化ストリームを復号することができる。
動画像符号化装置と動画像復号装置の間で符号化ストリームをやりとりするために、有線または無線のネットワークが用いられる場合、符号化ストリームを通信路の伝送形態に適したデータ形式に変換して伝送してもよい。その場合、動画像符号化装置が出力する符号化ストリームを通信路の伝送形態に適したデータ形式の符号化データに変換してネットワークに送信する動画像送信装置と、ネットワークから符号化データを受信して符号化ストリームに復元して動画像復号装置に供給する動画像受信装置とが設けられる。
動画像送信装置は、動画像符号化装置が出力する符号化ストリームをバッファするメモリと、符号化ストリームをパケット化するパケット処理部と、パケット化された符号化データをネットワークを介して送信する送信部とを含む。動画像受信装置は、パケット化された符号化データをネットワークを介して受信する受信部と、受信された符号化データをバッファするメモリと、符号化データをパケット処理して符号化ストリームを生成し、動画像復号装置に提供するパケット処理部とを含む。
以上の符号化及び復号に関する処理は、ハードウェアを用いた伝送、蓄積、受信装置として実現することができるのは勿論のこと、ROM(リード・オンリ・メモリ)やフラッシュメモリ等に記憶されているファームウェアや、コンピュータ等のソフトウェアによっても実現することができる。そのファームウェアプログラム、ソフトウェアプログラムをコンピュータ等で読み取り可能な記録媒体に記録して提供することも、有線あるいは無線のネットワークを通してサーバから提供することも、地上波あるいは衛星ディジタル放送のデータ放送として提供することも可能である。
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。