(第一実施形態)
以下、第一実施形態から順に本発明の実施形態について図面を参照して説明する。図1は、本発明の第一実施形態における映像符号化装置1の構成を示すブロック図である。映像符号化装置1は、ブロック構造決定部10、減算器11、直交変換・量子化部12、可変長符号化部13、逆量子化・逆直交変換部14、加算器15、イントラ予測部16、イントラ・インター切替スイッチ17、ループフィルタ部18、復号ピクチャメモリ部19及びインター予測部20を備える。
映像符号化装置1は、符号化対象の映像を構成する符号化対象ピクチャをLCUごとに外部の装置等から受けて、LCUのブロックに対応する符号化データを他の外部の装置等に出力する。符号化対象ピクチャは、外部の装置等によって、LCUのサイズ単位でラスタスキャンされて、映像符号化装置1に入力され、ラスタスキャンされた順に映像符号化装置1が繰り返し処理を行うことで、符号化対象ピクチャの符号化が行われる。映像符号化装置1において、ブロック構造決定部10は、外部の装置等から入力されるLCUのブロック構造を決定、すなわち適切なブロックの組み合わせを選択する。また、ブロック構造決定部10は、決定したブロック構造にしたがって、LCUを再帰的にブロックに分割してCUを生成し、予め定められる所定の順序で繰り返し、生成したCUを減算器11に出力する。
減算器11は、CUの画像データから、イントラ予測部16またはインター予測部20のいずれかが出力する予測画像データを減算し、減算した差分を直交変換・量子化部12に出力する。直交変換・量子化部12は、減算器11が出力する差分の画像データに対して直交変換と量子化を行って、可変長符号化部13と、逆量子化・逆直交変換部14に出力する。可変長符号化部13は、直交変換・量子化部12が出力する量子化係数を可変長符号化し、符号化データとして出力する。逆量子化・逆直交変換部14は、直交変換・量子化部12が出力する量子化係数に対して逆量子化と逆直交変換を行い、加算器15に出力する。加算器15は、逆量子化・逆直交変換部14が出力する画像データに、イントラ予測部16またはインター予測部20のいずれかが出力する予測画像データを加算してイントラ予測部16と、ループフィルタ部18とに出力する。
イントラ予測部16は、加算器15が出力する、画像データに予測画像データを加算した後の画像データを参照画像データとして、符号化対象ブロックのイントラ予測画像データを生成する。ループフィルタ部18は、加算器15が出力する画像データにループフィルタを適用し、フィルタリング後の画像データを復号ピクチャメモリ部19に出力する。復号ピクチャメモリ部19は、ループフィルタが適用された画像データを記憶する。インター予測部20は、復号ピクチャメモリ部19に記憶されている画像データを参照画像データとし、符号化対象ブロックのインター予測画像を生成する。イントラ・インター切替スイッチ17は、符号化対象ブロックの予測モードに応じてイントラ予測部16と、インター予測部20とを切り替えて、各々の予測モードに対応する予測画像データを減算器11と加算器15とに出力する。
図2は、ブロック構造決定部10の内部構成を示すブロック図である。ブロック構造決定部10は、ブロック分割部101、第1候補ブロック判定部102、第2候補ブロック判定部103、ブロックサイズ評価値算出部104及び最終ブロック選択部105を備える。ブロック分割部101は、符号化対象ピクチャのLCUを32×32画素、16×16画素及び8×8画素のブロックに分割する。また、ブロック分割部101は、最大ブロックサイズの64×64画素のLCUと、32×32画素に分割されたLCUと、16×16画素に分割されたLCUと、8×8画素に分割されたLCUとを第1候補ブロック判定部102に出力する。
第1候補ブロック判定部102は、64×64ブロック判定部1021、32×32ブロック判定部1022、16×16ブロック判定部1023及び8×8ブロック判定部1024を備える。第1候補ブロック判定部102の各々の判定部(すなわち、64×64ブロック判定部1021、32×32ブロック判定部1022、16×16ブロック判定部1023、8×8ブロック判定部1024)は、ブロック分割部101が出力する各々のブロックサイズに対応するLCUを受ける。すなわち、64×64ブロック判定部1021は、64×64画素のLCUを受け、32×32ブロック判定部1022は、32×32画素に分割されたLCUを受け、16×16ブロック判定部1023は、16×16画素に分割されたLCUを受け、8×8ブロック判定部1024は、8×8画素に分割されたLCUを受ける。64×64ブロック判定部1021、32×32ブロック判定部1022、16×16ブロック判定部1023、8×8ブロック判定部1024は、LCUの各ブロックが第1の候補ブロックに該当するか否かを判定する。
ここで、第1候補ブロック判定部102の判定部の各々による第1の候補ブロックに該当するか否かの判定は、以下のようにして行われる。64×64ブロック判定部1021の場合は、1個の符号化対象ブロック、32×32ブロック判定部1022の場合は、4個の符号化対象ブロック、16×16ブロック判定部1023の場合は、16個の符号化対象ブロック、8×8ブロック判定部1024の場合は、64個の符号化対象ブロックが判定の対象となる。これらの符号化対象ブロックの各々について、まず、下記の条件(1)を満たすか否かを判定する。
条件(1):符号化対象ブロックのブロックサイズが、参照ブロックのブロックサイズと同一または1段階小さいブロックサイズと同一の場合、条件(1)を満たすと判定する。ここで、参照ブロックとは、図3に示すように、LCUの動きベクトルが指す参照ピクチャにおいて、符号化対象ブロックの中心座標を含むCUのことである。例えば、図4において、符号化対象ブロックが64×64画素のサイズの場合、中心座標が存在する参照ピクチャにおけるCUは、右上の64×64画素の参照ブロックとなる。
また、第1候補ブロック判定部102の各々の判定部は、判定結果を第2候補ブロック判定部103に出力する。第2候補ブロック判定部103は、第1候補ブロック判定部102が出力する判定結果を受けて、以下の条件(2)を満たすか否かを判定する。
条件(2):符号化対象ブロックが最大ブロックサイズ(本実施形態では、64×64画素)の場合、条件(1)を満たしたブロックは、条件(2)を満たすと判定して第2の候補ブロックとする。最大ブロックサイズではない場合、当該ブロックサイズより1段階大きいブロックサイズのブロックを4分割した領域、例えば、当該ブロックサイズが16×16画素の場合、1段階大きい32×32画素のいずれかを4分割した4個の16×16画素の領域に属するブロック群を選択する。当該ブロック群において、条件(1)を満たすブロックが予め定められる所定個数以上である場合、条件(2)を満たすと判定し、当該ブロック群全てを第2の候補ブロックとする。条件(1)を満たすブロックが所定個数未満である場合、条件(2)を満たさないと判定し、当該ブロック群全てを第2の候補ブロックとしない。ただし、符号化対象LCUにおいて一度も第2の候補ブロックとなっていない領域は、少なくとも一度は第2の候補ブロックとなるように小さいブロックサイズから優先的に第2の候補ブロックとする。なお、予め定められる所定個数は、ブロックサイズごとに変更してもよく、本実施形態では、32×32画素以上のブロックサイズについては「2個」、16×16画素以下のブロックサイズについては「3個」とする。
ブロックサイズ評価値算出部104は、第2の候補ブロックとなったブロックの評価値(以下、評価コストという)、すなわち、以下の式(1)に基づいて算出するRDコストを算出する。
RDコスト=D+λR・・・(1)
式(1)において、Dは符号化対象ブロックを符号化した場合の誤差を表し、Rは符号量を表し、λはラグラジアン定数を表す。また、ブロックサイズ評価値算出部104は、予測モードごと、すなわちイントラ予測部16によるイントラ予測モード、及びインター予測部20によるインター予測モードの各予測モードに対してRDコストを算出し、最小のRDコストをブロックの評価コストとする。
最終ブロック選択部105は、ブロックサイズ評価値算出部104が、算出した評価コストが最小となるブロックの組み合わせをブロック構造として選択する。例えば、最終ブロック選択部105は、同一のブロック領域で小さいブロックサイズと大きいブロックサイズを比較する場合、小さいブロックサイズの評価コストの合計と、大きいブロックサイズの評価コストを比較し、評価コストの小さいブロックサイズのブロックをブロック構造を構成するブロックとして選択する。
次に、図5から図8を参照しつつ、第一実施形態の映像符号化装置1のブロック構造決定部10によるブロック構造決定処理について説明する。図5は、ブロック構造決定処理の流れを示すフローチャートである。映像符号化装置1のブロック構造決定部10のブロック分割部101は、外部の装置等から受けた符号化対象ピクチャのLCUを32×32画素、16×16画素、8×8画素のブロックサイズに分割する。ブロック分割部101は、最大ブロックサイズの64×64画素のLCUと、32×32画素に分割されたLCUと、16×16画素に分割されたLCUと、8×8画素に分割されたLCUとを第1候補ブロック判定部102の対応する判定部に出力する(ステップSa1)。
第1候補ブロック判定部102は、符号化対象ブロックが条件(1)を満たす第1の候補ブロックになるか否かを判定し、第1の候補ブロックを選択する処理を行う(ステップSa2)。ステップSa2の処理は、例えば、64×64ブロック判定部1021、32×32ブロック判定部1022、16×16ブロック判定部1023、8×8ブロック判定部1024の順に、各々の判定部によって、各々に対応するブロックサイズのLCUに対して行われる(ループLa1)。また、第1候補ブロック判定部102の各々の判定部は、符号化対象ブロックに含まれるブロックの各々について繰り返しステップSa2の処理を行う(ループLa2)。例えば、8×8ブロック判定部1024の場合、64個のブロックの各々に対してステップSa2を64回繰り返して行う。第1候補ブロック判定部102の各々の判定部によって、符号化対象ブロックに含まれるブロックの各々についてステップSa2の処理が行なわれると、ループLa2が終了する(ループLa3)。また、第1候補ブロック判定部102の各々の判定部によって、各々に対応するブロックサイズのLCUに対してステップSa2の処理が行われると、ループLa1が終了する(ループLa4)。
図6は、第1候補ブロック判定部102によるステップSa2の処理の例を示す図である。図6において「○」が条件(1)を満たすブロックであり、「×」が条件(1)を満たさないブロックであることを示す。例えば、符号化対象LCUの各ブロックと、参照ブロックとの関係が図4に示す関係である場合、64×64ブロック判定部1021は、ブロック分割部101が出力する64×64画素のLCUを受けて、64×64画素のブロックの中心座標が、参照ピクチャのどの参照ブロックに存在しているかを判定する。64×64画素の中心座標は、参照ピクチャの右上の64×64画素の参照ブロックに存在し、当該参照ブロックと同一のブロックサイズとなるため、条件(1)を満たすことになる。したがって、64×64ブロック判定部1021は、図6(a)に示すように「○」、すなわち第1の候補ブロックという判定結果を出力する。
32×32ブロック判定部1022は、ブロック分割部101から、32×32画素に分割されたLCUを受けて、32×32画素の4個のブロックの各々の中心座標が、参照ピクチャのどの参照ブロックに存在しているかを判定する。右上のブロックは、参照ピクチャの64×64画素の参照ブロックに存在し、当該参照ブロックのブロックサイズよりも1段階低いブロックサイズのブロックに該当する。そのため、右上のブロックは、条件(1)を満たすことになる。同様に、左上のブロックは、参照ピクチャの32×32画素のブロックに存在するため、参照ブロックのブロックサイズと同一のブロックサイズのブロックに該当するため条件(1)を満たすことになる。これに対して、右下と、左下のブロックは、参照ピクチャの16×16画素のブロックに存在するため、条件(1)を満たさないことになる。したがって、32×32ブロック判定部1022は、図6(b)に示すように右上と左上のブロックが「○」、すなわち第1の候補ブロックに該当し、右下と左下のブロックが「×」、すなわち第1の候補ブロックに該当しない判定結果を出力する。
同様にして16×16ブロック判定部1023は、ブロック分割部101から、16×16画素に分割されたLCUを受けて、16×16画素の16個のブロックの中心座標が、参照ピクチャのどの参照ブロックに存在しているかを判定する。中心座標が16×16画素のブロック、または32×32画素の参照ブロックに存在する場合、条件(1)を満たし、64×64画素の参照ブロックに存在する場合、条件(1)を満たさないため、16×16ブロック判定部1023は、図6(c)に示すような判定結果を出力する。8×8ブロック判定部1024は、8×8画素については、全て条件(1)を満たさないため、図6(d)に示す「×」、すなわち全てが、第1の候補ブロックに該当しない判定結果を出力する。
図5に戻り、第2候補ブロック判定部103は、第1候補ブロック判定部102の各々の判定部による判定結果を受けて、符号化対象ブロックが条件(2)を満たすか否かを判定する(ステップSa3)。図7は、第2候補ブロック判定部103による判定の結果を示す図であり、図7において「☆」は、第2の候補ブロックとして判定されたブロックを示している。図7において、「†」の意味は、図6において、第1の候補ブロックとなっていなかったブロックが第2の候補ブロックにした場合、または、第1の候補ブロックとなっていたブロックが第2の候補ブロックにしなかった場合を示す記号である。
図6の第1の候補ブロックの判定結果を受けて、64×64画素のLCUについては、第2候補ブロック判定部103は、最大ブロックサイズに該当し、更に、64×64画素のLCUは、第1の候補ブロックにも該当しているため、条件(2)を満たすと判定する。したがって、第2候補ブロック判定部103は、図7(a)に示すように「☆」、すなわち第2の候補ブロックに該当する判定結果を出力する。
32×32画素に分割されたLCUについては、第2候補ブロック判定部103は、最大ブロッサイズではないため、再帰的に4分割された領域に属する各々ブロックの中で第1の候補ブロックとなっているブロックの数を検出する。図6(b)に示すように、32×32画素のLCUについては、第1の候補ブロックは、2個存在するため、第2候補ブロック判定部103は、個数を「2」として検出する。32×32画素については、予め定められる所定個数が「2」となっているため、第2候補ブロック判定部103は、32×32画素に分割されたLCUについては、条件(2)を満たすと判定し、当該4分割の領域に存在するブロックを全て第2の候補ブロックとする判定結果を出力する。したがって、第2候補ブロック判定部103は、図7(b)に示すように、32×32画素のLCUの全てのブロックが「☆」、すなわち第2の候補ブロックに該当する判定結果を出力する。
16×16画素に分割されたLCUについては、第2候補ブロック判定部103は、最大ブロッサイズではないため、32×32画素のブロックから更に再帰的に4分割された領域に属する各々ブロックについて、第1の候補ブロックとなっているブロックの数を検出する。図6(c)に示すように、16×16画素のLCUにおいて、左下の4分割されたブロックには、第1の候補ブロックが3個存在するため、第2候補ブロック判定部103は、個数を「3」として検出する。また、右下の4分割されたブロックには、第1の候補ブロックが2個存在するため、第2候補ブロック判定部103は、個数を「2」として検出する。また、左上の4分割されたブロックには、第1の候補ブロックが2個存在するため、第2候補ブロック判定部103は、個数を「2」として検出する。右上の4分割されたブロックには、第1の候補ブロックは存在しないため、第2候補ブロック判定部103は、個数を「0」として検出する。16×16画素のブロックについては、予め定められる所定数が「3」となっているため、第2候補ブロック判定部103は、左下の4分割された領域については、条件(2)を満たし、それ以外については、条件(2)を満たさないと判定する。したがって、第2候補ブロック判定部103は、条件(2)を満たす左下の4分割された領域に属するブロックについては、「☆」、すなわち第2の候補ブロックに該当し、それ以外のブロックについては、「×」、すなわち第2の候補ブロックに該当しない判定結果を出力する。
第2候補ブロック判定部103は、8×8の画素に分割されたLCUについては、第1の候補ブロックとなっているブロックが存在しないため、全てが条件(2)を満たさないと判定する。
次に、ブロックサイズ評価値算出部104は、第2の候補ブロックとなった各ブロックについて、予測モードごとに、評価コスト、すなわちRDコストを上記の式(1)に基づいて算出する(ステップSa4)。図8(a)に示す各ブロック内の数値が、ブロックサイズ評価値算出部104が算出した評価コストの値である。最終ブロック選択部105は、ブロックサイズ評価値算出部104が算出した評価コストが最小となる組み合わせをブロック構造を構成するブロックとして選択する(ステップSa5)。図8(a)に示すように、まず、最終ブロック選択部105は、32×32画素の左下のブロックの評価コストである「30」と、16×16画素の左下の4分割の領域の評価コストの合計である「25=10+5+5+5」とを比較する。16×16画素の4分割の領域の評価コストの合計の方が小さいので、最終ブロック選択部105は、16×16画素に分割されたブロックを選択する。
次に、最終ブロック選択部105は、64×64画素の評価コストである「100」と、32×32画素の4分割の領域の各ブロックの評価コストの合計とを比較する。この際、32×32画素の左下のブロックの評価コストは、16×16画素の左下の4分割の領域の評価コストの合計である「25=10+5+5+5」が用いられる。すなわち、最終ブロック選択部105は、64×64画素の評価コストである「100」と、32×32画素の4分割の領域の各ブロックの評価コストの合計である「85=25+25+20+15」とを比較する。32×32画素の4分割の領域の評価コストの合計の方が小さいので、最終ブロック選択部105は、32×32画素に分割されたブロックを選択する。この際、最終ブロック選択部105は、32×32画素に分割されたブロックの左下のブロックにおいては16×16画素に分割されたブロックを選択する。選択したブロックに基づいて、最終ブロック選択部105は、図8(b)に示すブロック構造を出力する。
上記の第一実施形態の構成により、第1候補ブロック判定部102は、64×64画素のLCU、32×32画素に分割されたLCU、16×16画素に分割されたLCU、8×8画素に分割されたLCUの各ブロックのブロックサイズと、対応する参照ブロックのブロックサイズとに基づいて、第1の候補ブロックに該当するか否かを判定する。第2候補ブロック判定部103は、1段階ブロックサイズが大きいブロックから4分割された4個のブロックに占める第1の候補ブロックの個数に基づいて、各ブロックが、第2の候補ブロックに該当するか否かを判定する。ブロックサイズ評価値算出部104は、第2の候補ブロックの評価コストを算出し、最終ブロック選択部105は、評価コストが最小となるブロックの組み合わせをブロック構造を構成するブロックとして選択する。これにより、符号化効率の低下を抑えつつ、ブロック構造決定処理の演算量を削減することが可能となる。
上述した従来技術2を図4の例に適用した場合、64×64画素のLCU、32×32画素に分割されたLCU、16×16画素に分割されたLCUの全てのブロックが候補となるため、演算量の削減効果がほとんど得られない。これに対して、本発明の第一実施形態の構成では16×16画素に分割されたLCUについては左下のブロック群のみを候補とするので、演算量を削減することができる。
また、上述した従来技術2’を同様に図4の例に適用した場合、仮に32×32画素に分割されたLCUの左右下の2個のブロックにおいて参照ブロックとの相関が低い場合、従来技術2’では左右下の2個のブロックは候補とならない。そのため、従来技術2’では、この2個のブロックを候補から除外してしまうことで符号化効率を低下させてしまうことになる。これに対し、本発明の第一実施形態の構成では、図21に示す従来技術2’のブロック構造決定部1000には備えられていない第2候補ブロック判定部103を備えている。そのため、第1候補ブロック判定部102により各ブロックで判定した後、更に、第2候補ブロック判定部103により再度周囲のブロック(図6(b)に示す左右の上2個のブロック)を考慮して左右の下2個のブロックを候補に加えるため、符号化効率の低下を抑えることができる。
<変形例>
なお、上記の第一実施形態において、条件(1)に示した条件は、符号化対象ブロックのブロックサイズが、参照ブロックのブロックサイズと同一のサイズになる確率が高いという特徴を利用した条件である。しかしながら、本発明の構成は当該実施の形態に限られず、条件(1)は、上記した条件には限られず、従来技術1に示されている条件や、その他の条件を用いてもよい。
また、条件(2)は、1段階大きいブロックサイズから4分割された4個のブロック群間にブロックサイズの相関があるという特徴を利用した条件である。しかしながら、本発明の構成は当該実施の形態に限られない。条件(2)は、上記した条件に限られず、符号化対象ブロックの周囲の複数のブロックを判定に用いるようにしてもよいし、最大ブロックサイズである64×64画素のLCUにおいても当該LCUの周囲のブロックを判定に用いるようにしてもよい。
(第二実施形態)
図9は、本発明の第二実施形態におけるブロック構造決定部10aの構成を示すブロック図である。第一実施形態における映像符号化装置1は、ブロック構造決定部10を備えている。これに対して、第二実施形態では、当該ブロック構造決定部10がブロック構造決定部10aに置き換えられる構成となる。図9において、第一実施形態と同一の構成については、同一の符号を付し、以下、異なる構成について説明する。ブロック構造決定部10aは、第2候補ブロック判定部103と、ブロックサイズ評価値算出部104との間に、重複領域処理部106を備える。
重複領域処理部106は、第2候補ブロック判定部103によって、第2の候補ブロックであると判定されたブロックの重複領域を検出し、予め定められている所定回数以上重複しているブロックについては、以下の条件(3)を満たすように第2の候補ブロックから除外する。除外された第2の候補ブロックについては、ブロックサイズ評価値算出部104の評価コストの算出対象に含まれない。
条件(3):重複回数が所定回数以上の領域について、条件(1)を満たすブロックの占める割合が最大となるように、第2の候補ブロックから除外する。ただし、占める割合が同じになった場合、小さいブロックサイズを優先的に除外する。なお、本実施形態では、予め定められる所定回数を「2」とする。
図10は、第二実施形態におけるブロック構造決定処理の流れを示すフローチャートである。ステップSb1からSb3までの処理は、第一実施形態におけるブロック構造決定処理のステップSa1からSa3までの処理と同じ処理が行われる。ステップSb3までの処理により、第2候補ブロック判定部103によって、図7に示す判定結果が得られる。重複領域処理部106は、第2候補ブロック判定部103からの判定結果の出力を受けて、各ブロックでの重複回数を検出する。図11(a)は、例えば、32×32画素に分割された領域の各ブロックにおける重複回数を重複領域処理部106が検出した例であり、左右の上のブロックと、右下のブロックについては、64×64画素のブロックの領域のみが重複するため重複回数として「1」を検出する。左下のブロックについては、64×64画素のブロックの領域に加えて、16×16画素に分割されたブロックの領域も重複するため重複回数として「2」を検出する。
2回以上重複している左下の領域は、条件(3)の重複回数が所定回数以上の領域に該当するため、図7(b)に示すように除外対象領域となる。重複領域処理部106は、当該左下の領域について、第1の候補ブロックの占める割合を検出する。64×64画素のブロックにおいて、当該領域における第1の候補ブロックの占める割合は、100%である。16×16画素のブロックにおいて、当該領域における第1の候補ブロックの占める割合は、75%である。これに対して、32×32画素のブロックにおいて、当該領域における第1の候補ブロックの占める割合は、0%である。したがって、割合が低い32×32画素の左下のブロックを除外する。図12は、重複領域処理部106による処理が行われた後の各ブロックの判定結果を示す図であり、図12において「☆」は第2の候補ブロックとして選択されたブロックを示し、「△」は、除外されたブロックを示す。
ブロックサイズ評価値算出部104は、第2の候補ブロックから除外されたブロックを除く、第2の候補ブロックとなった各ブロックについて、予測モードごとに、評価コスト、すなわちRDコストを上記の式(1)に基づいて算出する(ステップSb4)。図13(a)に示す各ブロック内の数値が、ブロックサイズ評価値算出部104が算出した評価コストの値である。最終ブロック選択部105は、ブロックサイズ評価値算出部104が算出した評価コストが最小となる組み合わせをブロック構造を構成するブロックとして選択する(ステップSb5)。
32×32画素に分割されたブロックの左下の領域については、重複領域処理部106によって除外されている。そのため、最終ブロック選択部105は、当該領域に、16×16画素に分割されたブロックの左下の4つの領域の評価コストを適用し、評価コストの合計値を「85=25+20+15+10+5+5+5」として算出する。これに対して、64×64画素のブロックの評価コストは「100」である。したがって、最終ブロック選択部105は、図13(b)に示すような組み合わせ、すなわち左右の上と右下は、32×32画素に分割されたブロックであり、左下は、32×32画素に分割されたブロックを再帰的に分割した4つの16×16画素のブロックである組み合わせを選択する。この組み合わせが、評価コストが最小となるブロック構造を構成するブロックの組み合わせとなる。
上記の第二実施形態の構成では、第一実施形態の構成に加えて、第2候補ブロック判定部103と、ブロックサイズ評価値算出部104の間に重複領域処理部106を備えたことにより、重複領域処理部106が、第2の候補ブロックとして判定されたブロックが符号化対象LCUの同一の領域で予め定められる回数以上重複している場合、重複しているいずれかのブロックを除外する構成とした。これにより、符号化効率の低下を抑え、ブロック構造決定処理の演算量を削減しつつ、ブロックサイズ評価値算出部104による、評価コストの演算量が削減され、演算速度を高めることが可能となる。
上記の第二実施形態の例では、最終ブロック選択部105が出力するブロック構造は第一実施形態と同じであるが、32×32画素に分割されたLCUの1ブロック分の評価コストの演算量が削減されており、当該演算量の削減により演算速度も速くなっている。
また、重複領域処理部106は、第1の候補ブロックの占める割合が最大となるようにすることで、候補として尤もらしいブロックを候補として残すことを可能としている。
なお、上記の第二実施形態では、条件(3)として、重複回数を判定の基準としているが、重複の回数ではなく、符号化対象LCUにおける、重複領域面積や重複領域の占める割合などを用いてもよい。
また、第二実施形態の構成では、重複回数の判定に用いられる予め定められる所定回数の値によって演算量を変えることができており、図4の例では、所定回数を「2」に設定した場合、面積比で2/4=50%の演算量削減効果を得ることができる。例えば、64×64から8×8までの全ブロックが第2の候補ブロックとなった場合について考える。この場合、所定回数を2に設定すると、2LCU分の面積のブロックが除外される。すなわち、4LCUから2LCUになっているため、評価コストを計算する必要のあるブロックが50%削減されていることになる。その結果、最大でも全体の50%(2LCU分)だけしか計算しなくても良くなる。また、重複の回数ではなく、符号化対象LCUにおける、重複領域面積や重複領域の占める割合などを用いれば、より精度の高い演算量の変更を行うことが可能となる。
(第三実施形態)
次に、本発明の第三実施形態について説明する。図14は、本発明の第三実施形態におけるブロック構造決定部10bの構成を示すブロック図である。第一実施形態における映像符号化装置1は、ブロック構造決定部10を備えている。これに対して、第三実施形態では、当該ブロック構造決定部10がブロック構造決定部10bに置き換えられる構成となる。図14において、第一実施形態と同一の構成については、同一の符号を付し、以下、異なる構成について説明する。ブロック構造決定部10bは、第1候補ブロック判定部102b、第2候補ブロック判定部103bを備える。第1候補ブロック判定部102bは、64×64ブロック判定部1021b、32×32ブロック判定部1022b、16×16ブロック判定部1023b、8×8ブロック判定部1024bを備える。第1候補ブロック判定部102bは、ブロック分割部101が出力する各々のブロックサイズに対応するLCUに基づいて、予測モードごとに、各ブロックが第1の候補ブロックに該当するか否かを判定する。本実施形態では、予測モードとして、イントラ予測モードとインター予測モードとが適用される。
第1候補ブロック判定部102の判定部の各々(すなわち、64×64ブロック判定部1021b、32×32ブロック判定部1022b、16×16ブロック判定部1023b、8×8ブロック判定部1024b)による第1の候補ブロックに該当するか否かの判定は、以下のようにして行われる。64×64ブロック判定部1021bの場合は、1個の符号化対象ブロック、32×32ブロック判定部1022bの場合は、4個の符号化対象ブロック、16×16ブロック判定部1023bの場合は、16個の符号化対象ブロック、8×8ブロック判定部1024bの場合は、64個の符号化対象ブロックが判定の対象となる。これらの符号化対象ブロックの各々について、予測モードごとに、下記の条件(4)を満たすか否かを判定する。
条件(4):予測モードが、イントラ予測モードである場合、符号化対象ブロックのブロックサイズが、参照ブロックのブロックサイズと同一、または参照ブロックのブロックサイズよりも1段階小さいサイズと同一の場合、当該符号化対象ブロックをイントラ予測モードにおける第1の候補ブロックとする。予測モードが、インター予測モードである場合、符号化対象ブロックのブロックサイズが参照ブロックのブロックサイズと同一、または参照ブロックのブロックサイズよりも1段階大きいサイズと同一の場合、当該符号化対象ブロックをインター予測モードにおける第1の候補ブロックとする。
また、第1候補ブロック判定部102bの各々の判定部は、判定結果を第2候補ブロック判定部103bに出力する。第2候補ブロック判定部103bは、第1候補ブロック判定部102bが出力する判定結果を受けて、以下の条件(5)を満たすか否かを判定する。
条件(5):符号化対象ブロックが、最大ブロックサイズ(本実施形態では、64×64画素)の場合、条件(4)を満たした、予測モードとブロックの組を、条件(5)を満たすと判定して第2の候補ブロックとする。最大ブロックサイズではない場合、1段階大きいブロックサイズのブロックを4分割した領域に属するブロック群について、第2候補ブロック判定部103bが内部の記憶領域に予め記憶する図15に示す尤度テーブルに基づいて、尤度の合計を算出する。算出した尤度の合計値が、予め定められる所定の尤度閾値以上の場合、該当する予測モードとブロック群の組み合わせを、条件(5)を満たすと判定し、当該ブロック群に含まれるブロックの全てを当該予測モードにおける第2の候補ブロックとする。このとき、複数の予測モードにおいて、算出した尤度の合計値が、予め定められる所定の尤度閾値以上となった場合、予測モードごとの尤度の合計値において、最も大きい合計値の予測モードに対応するブロック群を第2の候補ブロックとする。算出した尤度の合計値が、予め定められる所定の尤度閾値以上でない場合、条件(5)を満たさないと判定し、ブロック群全てを第2の候補ブロックとしない。ただし、符号化対象LCU内で一度も第2の候補ブロックとなっていない領域は少なくとも一度は第2の候補ブロックとなるように小さいブロックサイズで、かつ尤度合計が最も大きい予測モードを優先的に第2の候補ブロックとする。本実施形態では、予め定められる所定の尤度閾値の値を「6」としている。
次に、図16から図20を参照しつつ、第三実施形態におけるブロック構造決定処理について説明する。図16は、ブロック構造決定処理の流れを示すフローチャートである。映像符号化装置1のブロック構造決定部10のブロック分割部101は、外部の装置等から受けた符号化対象ピクチャのLCUを32×32画素、16×16画素、8×8画素のブロックサイズに分割する。ブロック分割部101は、最大ブロックサイズの64×64画素のLCUと、32×32画素に分割されたLCUと、16×16画素に分割されたLCUと、8×8画素に分割されたLCUとを第1候補ブロック判定部102bの対応する判定部に出力する(ステップSc1)。
第1候補ブロック判定部102bは、符号化対象ブロックが条件(4)を満たす第1の候補ブロックになるか否かを判定し、第1の候補ブロックを選択する処理を行う(ステップSc2)。ステップSc2の処理は、例えば、64×64ブロック判定部1021b、32×32ブロック判定部1022b、16×16ブロック判定部1023b、8×8ブロック判定部1024bの順に、各々の判定部によって、各々に対応するブロックサイズのLCUに対して行われる(ループLc1)。また、第1候補ブロック判定部102の各々の判定部は、符号化対象LCUに含まれるブロックの各々について繰り返しステップSc2の処理を行う(ループLc2)。例えば、8×8ブロック判定部1024bの場合、64個のブロックの各々に対してステップSa2を64回繰り返して行う。また、第1候補ブロック判定部102bの各々の判定部は、予測モードごと、すなわち本実施形態ではイントラ予測モードとインター予測モードについて、ステップSc2の処理を行う(ループLc3)。第1候補ブロック判定部102bの各々の判定部によって、予測モードごとについてステップSc2の処理が行なわれると、ループLc3が終了する(ループLc4)。また、第1候補ブロック判定部102bの各々の判定部によって、符号化対象LCUに含まれるブロックの各々についてステップSc2の処理が行なわれると、ループLc2が終了する(ループLc5)。また、第1候補ブロック判定部102bの各々の判定部によって、各々に対応するブロックサイズのLCUに対してステップSc2の処理が行われると、ループLc1が終了する(ループLc6)。
図17は、第1候補ブロック判定部102bによる判定結果を示す図である。図17において、「○」は、条件(4)を満たしていることを示しており、「×」は、条件(4)を満たしていないことを示す。64×64画素のブロックについては、最大ブロックサイズであるため、予測モードに関わらず、条件(4)を満たすことになるため、図17(a)に示すように、第1の候補ブロックとなる。32×32画素に分割されたLCUについては、イントラ予測モードについては、第一実施形態と同じ結果となり、左右上のブロックが、第1の候補ブロックとなり、左右下のブロックは、第1の候補ブロックとはならない。これに対して、インター予測モードについては、右上のブロックに重なる参照ブロックのサイズが64×64画素であるため、条件(4)を満たさない。左上のブロックは、参照ブロックと同じブロックサイズであり、左右の下のブロックは、参照ブロックが16×16画素であるため、条件(4)を満たすことから、第1の候補ブロックとなる。したがって、第1候補ブロック判定部102bによる32×32画素に分割されたLCUの判定結果は、図17(b)のようになる。
16×16画素に分割されたLCUについても、イントラ予測モードについては、第一実施形態と同じブロックが、第1の候補ブロックとなる。これに対して、インター予測モードについては、LCUの4行目の4個のブロックの中心座標が、いずれも16×16画素のブロック、または32×32画素のブロックに存在するため、条件(4)を満たし、第1の候補ブロックとなる。したがって、第1候補ブロック判定部102bによる16×16画素に分割されたLCUの判定結果は、図17(c)のようになる。8×8画素については、全て条件(4)を満たさないと判定される。
次に、第2候補ブロック判定部103bは、第1候補ブロック判定部102bが出力する判定結果を受けて、条件(5)に基づいて第2の候補ブロックの判定を行う(ステップSc3)。第2候補ブロック判定部103bは、32×32画素に4分割されたLCUの4個の領域の尤度の合計値と、32×32画素の各ブロックが更に4分割された16×16画素の4個の領域の尤度の合計値とを、予測モードごとに、図15に示す尤度テーブルを用いて算出する。図18は、第2候補ブロック判定部103bによる尤度の合計値の算出結果である。32×32画素のLCUについては、尤度の合計値が「11」となる。16×16画素の左上の4個の領域の尤度の合計値は、「6」となり、16×16画素の左下の4個の領域の尤度の合計値は、「13」となり、16×16画素の右下の4個の領域の尤度の合計値は、「10」となる。
第2候補ブロック判定部103bは、尤度の合計値が、予め定められる尤度閾値、すなわち「7」以上であるか否かに基づいて、第2の候補ブロックに該当するか否かを判定する。図19(b)に示すように、32×32画素に分割されたLCUは、尤度の合計値が、「11」であるため、第2候補ブロック判定部103bは、条件(5)を満たすと判定する。図19(b)に示すように第2候補ブロック判定部103bは、イントラ予測モードについては、尤度の合計値が「2」であり、インター予測モードについては、尤度の合計値が「9」である。尤度の合計値の大きいのは、インター予測モードであるため、第2候補ブロック判定部103bは、インター予測モードにおいて「×」となっている右上のブロックを第2の候補ブロックとする。
図19(c)に示すように、16×16画素に分割されたLCUの左上の4個のブロックについては、尤度の合計値が「6」であるため、第2候補ブロック判定部103bは、4個のブロック全てを第2の候補ブロックにはしない。
左下の4個のブロックについては、イントラ予測モードの尤度の合計値が「9」であり、インター予測モードの尤度の合計値が「4」であるため、全体としての尤度の合計値は「13」であり、尤度閾値以上となっている。尤度の合計値が大きいのは、イントラ予測モードの方であるため、第2候補ブロック判定部103bは、イントラ予測モードのブロックについて、「×」となっている右上のブロックを第2の候補ブロックとする。
右下の4個のブロックについては、イントラ予測モードの尤度の合計値が「6」であり、インター予測モードの尤度の合計値が「4」であり、全体としての尤度の合計値は「10」であり、尤度閾値以上となっている。尤度の合計値が大きいのは、イントラ予測モードの方であるため、第2候補ブロック判定部103bは、イントラ予測モードのブロックについて、「×」となっている左右上のブロックを第2の候補ブロックとする。最終的に、第2候補ブロック判定部103bによって、図19(c)に同一、示すように、第2の候補ブロックが選択される。
ブロックサイズ評価値算出部104は、第2の候補ブロックとなった各ブロックについて、予測モードごとに、評価コスト、すなわちRDコストを上記の式(1)に基づいて算出する(ステップSc4)。図20(a)に示す各ブロック内の数値が、ブロックサイズ評価値算出部104が算出した評価コストの値である。最終ブロック選択部105は、ブロックサイズ評価値算出部104が算出した評価コストが最小となる組み合わせをブロック構造を構成するブロックとして選択する(ステップSc5)。
図20(a)に示すように、まず、最終ブロック選択部105は、32×32画素の左下のブロックの評価コストである「30」と、16×16画素の左下の4分割の領域の評価コストの合計である「25=10+5+5+5」とを比較する。16×16画素の左下の4分割の領域の評価コストの合計の方が小さいので、最終ブロック選択部105は、16×16画素に分割されたブロックを選択する。また、最終ブロック選択部105は、32×32画素の右下のブロックの評価コストである「15」と、16×16画素の右下の4分割の領域の評価コストの合計である「14=5+3+3+3」とを比較する。16×16画素の左下の4分割の領域の評価コストの合計の方が小さいので、最終ブロック選択部105は、16×16画素に分割されたブロックを選択する。
次に、最終ブロック選択部105は、64×64画素の評価コストである「100」と、32×32画素の4分割の領域の各ブロックの評価コストの合計とを比較する。この際、32×32画素の左下のブロックの評価コストは、16×16画素の左下の4分割の領域の評価コストの合計である「25=10+5+5+5」が用いられる。また、32×32画素の右下のブロックの評価コストは、16×16画素の右下の4分割の領域の評価コストの合計である「14=5+3+3+3」が用いられる。すなわち、最終ブロック選択部105は、64×64画素の評価コストである「100」と、32×32画素の4分割の領域の各ブロックの評価コストの合計である「84=25+20+25+14」とを比較する。
32×32画素の4分割の領域の評価コストの合計の方が小さいので、最終ブロック選択部105は、32×32画素に分割されたブロックを選択する。この際、最終ブロック選択部105は、32×32画素に分割されたブロックの左下のブロックにおいては16×16画素に分割されたブロックを選択する。また、最終ブロック選択部105は、32×32画素に分割されたブロックの右下のブロックにおいては16×16画素に分割されたブロックを選択する。選択したブロックに基づいて、最終ブロック選択部105は、図20(b)に示すブロック構造を出力する。
上記の第三実施形態の構成により、第1候補ブロック判定部102bは、64×64画素のLCU、32×32画素に分割されたLCU、16×16画素に分割されたLCU、8×8画素に分割されたLCUの各ブロックのブロックサイズと、対応する参照ブロックのブロックサイズとに基づいて、予測モードの種類に応じて、第1の候補ブロックに該当するか否かを判定する。第2候補ブロック判定部103は、予測モードとブロックサイズとに応じて予め定められる尤度、及び1段階ブロックサイズが大きいブロックから4分割された4個のブロックに占める第1の候補ブロックの割合に基づいて、4個のブロックの尤度の合計値を算出する。そして、尤度の合計値が、予め定められる尤度閾値以上の場合、当該ブロック群を第2の候補ブロックとする。これにより、符号化効率の低下を抑えつつ、ブロック構造決定処理の演算量を削減することが可能となる。
第一実施形態の構成では、各ブロックについて第1の候補ブロック及び第2の候補ブロックとするか否かを判定していた。そのため、第2候補ブロック判定部103の判定処理により、第1の候補ブロックでないブロックを第2の候補ブロックとして追加した場合、適用される全ての予測モードについて演算を行う必要があった。これに対して、第三実施形態の構成では、予測モードを考慮に加えて判定しているため、判定精度が向上し、更に、第2の候補ブロックを追加する際に、尤度の値が大きい予測モードに対応するブロックのみを第2の候補ブロックとしている。そのため、追加したブロックについては、当該予測モードについて演算するだけでよく、演算量の増加を抑えた上で第2の候補ブロックを追加することができる。例えば、図4の例において、第三実施形態では、第一実施形態では第2の候補ブロックとされていない、16×16画素に分割されたLCUの右下ブロック群を新たに第2の候補ブロックとして追加しているが、4個のブロックの内2つは評価コストをインター予測モードのみで計算しているため、演算量の増加が抑えられた上で第一実施形態とは異なる精度の高いブロック構造を出力することを可能としている。
なお、上記の第三実施形態において、条件(4)は、候補となるブロックサイズにおいて、予測モードによって尤度が異なるという特徴を利用した条件である。しかしながら、本発明の構成は当該実施の形態に限られず、上記した以外の条件を適用するようにしてもよい。
また、条件(5)についても、上記した以外の条件を適用してもよく、例えば、図15に示す尤度テーブルや尤度閾値を符号化結果に応じて適応的に変えるなどしてもよい。また、ブロックの位置関係を考慮し、例えば、新たに第2の候補ブロックとするブロックの予測モードを隣接ブロックの予測モードの候補の中で数が多い予測モードにしてもよい。また、隣接ブロックにおいて同じ予測モードが候補になっている場合、図15に示す尤度テーブルにおいて、尤度の値を大きく設定するようにしてもよい。
上記の第一実施形態から第三実施形態では、HEVCに準拠した構成を対象としているが、HEVCに準拠した構成に限られるものではない。
また、上記の第一実施形態から第三実施形態では、LCUのサイズを64×64画素とし、CUのサイズを64×64画素、32×32画素、16×16画素、8×8画素の4パターンの中からブロック構造を構成するブロックを選択している。しかしながら、本発明の構成は当該実施の形態に限られず、2つ以上のパターンの中からブロック構造を構成するブロックを選択する実施形態等にも適用することが可能である。
また、上記の第一実施形態から第三実施形態では、図3において説明した符号化対象LCUと、参照ブロックとの関係を示す動きベクトルとして、1つの動きベクトルを示しているが、動きベクトルを用いずに、符号化対象LCUと空間的に同位置のブロックを参照ブロックとしてもよいし、符号化対象LCUごとの動きベクトルではなく、符号化対象LCUの各ブロックそれぞれの動きベクトルを用いるようにしてもよい。
また、上記の第一実施形態から第三実施形態において、ブロックサイズ評価値算出部104が算出するRDコストは、評価コストの一例であり、ブロックを評価することのできる指標であればどのようなものでもよく、例えば、評価コストとして、誤差のみ、符号量のみ、輝度値の分散値等の統計値を適用してもよい。
また、上記の第一実施形態から第三実施形態において、予測モードとして、イントラ予測モードとインター予測モードを適用するようにしているが、本発明の実施の形態は、当該実施の形態に限られない。イントラ予測モードやインター予測モードに加えて、Merge予測モードやSkip予測モードを適用してもよく、また、これらの中の任意の2つ以上の予測モードを選択して適用するようにしてもよい。
例えば、Skip予測モードとMerge予測モードを適用する場合、参照ブロックがSkip予測モードの場合、参照ブロックのブロックサイズと同一、または、参照ブロックのブロックサイズより1段階大きいブロックサイズと同一であれば第1の候補ブロックとする。参照ブロックがSkip予測モード以外の場合、参照ブロックのブロックサイズと同一、または、参照ブロックのブロックサイズより1段階小さいブロックサイズと同一であれば第1の候補ブロックとする。
第2の候補ブロックを選択する手法としては、例えば、4分割された4個のブロックにおいて、第1の候補ブロックの割合が50%以上であれば、第1の候補ブロックでない残りのブロックも含めて全てを第2の候補ブロックとする手法がある。また、他の手法として、点数によって第2の候補ブロックを選択する手法もある。例えば、参照ブロックのブロックサイズが32×32画素で、Skipモードである場合、符号化対象ブロックも32×32画素になる確率が高いとして2点、参照ブロックの予測モードがインター予測モードの場合、符号化対象ブロックが32×32画素になる確率は普通であるとして1点、参照ブロックの予測モードがイントラ予測モードの場合、符号化対象ブロックが32×32画素になる確率は低いとして0点というように点数を決めておく。4分割された4個のブロックにおける点数が4点を超えた場合、4個のブロック全てを第2の候補ブロックとして選択する手法もある。
また、上記の第一実施形態から第三実施形態において、第2候補ブロック判定部103、103bは、分割されたブロック群をまとめて第2の候補ブロックとするか否かを判定しており、このように複数のブロックを一度に判定することで、GPU(Graphics Processing Unit)などの並列処理に特化したデバイスなどにおいて、大量のデータをまとめて処理することによる高速化の効果が得られるという利点がある。
また、上記の第一実施形態から第三実施形態において、図5、図10、図16のフローチャートにおけるLa1、La2、Lb1、Lb2、Lc1、Lc2、Lc3のループ処理は、上述したように順番に行われてもよいし、並列に処理を行うようにしてもよい。
また、上記の第一実施形態から第三実施形態において、例えば、第一実施形態における条件(2)の所定個数以上とする判定、第二実施形態における重複回数の判定における所定回数以上とする判定、第三実施形態における尤度閾値以上とする判定の処理は、一例であり、ある値以上、ある値未満とする判定ではなく、ある値を超過、ある値以下とする判定であってもよい。
また、上記の第一実施形態から第三実施形態において、8×8画素についてはすべて条件(1)を満たさないため、8×8画素全てが第1の候補ブロックに該当しないという判定がなされる一例を示したが、以下のような場合には8×8画素の一部が第1の候補ブロックになるケースも想定される。それは、8×8の場合、その中心座標が参照ブロックの16×16画素のブロックに存在している場合である。この場合には、参照ブロックのサイズよりも1段階小さいサイズとなるため、8×8画素の一部が第1の候補ブロックになる。
上述した実施形態におけるブロック構造決定部10、10a、10bをコンピュータで実現するようにしてもよい。その場合、この機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよく、FPGA(Field Programmable Gate Array)等のプログラマブルロジックデバイスを用いて実現されるものであってもよい。
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。