以下、本発明の実施の形態について図面を参照して説明する。
(実施の形態1)
まず、実施の形態1の動画像符号化装置を説明する。図1は、実施の形態1の動画像符号化装置の構成を示すブロック図である。
図1に示すように、実施の形態1の動画像符号化装置は、入力端子100、入力画像バッファ101、ブロック分割部102、フレーム内予測部103、動きベクトル検出部104、動き補償予測部105、動きベクトル予測部106、複数参照画像合成部107、予測モード判定部109、減算器110、直交変換部111、量子化部112、逆量子化部113、逆直交変換部114、加算器115、フレーム内復号画像メモリ116、復号参照画像メモリ117、エントロピー符号化部118、ストリームバッファ119、出力端子120、及び符号量制御部121を備える。
複数参照画像合成部107を設けた点と、この処理ブロック及び動き補償予測部105における動作が、本発明の実施の形態1における特徴であり、他の処理ブロックに関してはMPEG4−AVC等の動画像符号化装置における符号化処理を構成する処理ブロックと同一処理が適用できる。
入力端子100より入力されたデジタル画像信号は、入力画像バッファ101に格納される。入力画像バッファ101に格納されたデジタル画像信号は、ブロック分割部102に供給され、16×16画素で構成されるマクロブロック単位で符号化対象ブロックとして切り出される。ブロック分割部102は、切り出した符号化対象ブロックを、フレーム内予測部103、動きベクトル検出部104、動き補償予測部105、及び減算器110に供給する。
フレーム内予測部103では、ブロック分割部102より入力された符号化対象ブロックと、フレーム内復号画像メモリ116に格納された、符号化対象ブロックの周辺に対して符号化が完了した領域の復号画像が入力され、フレーム内の相関性を用いた予測が行われる。例えば、符号化対象ブロックに対して、4×4画素単位、8×8画素単位、16×16画素単位で、複数の所定の方向に対して画素値を予測し、予測処理の単位と選択した方向を示す情報(イントラ予測モード)と共に予測画像を生成するイントラ予測という手法を用いて、画面内の隣接画素の相関を用いた予測を行う。予測画像及び選択したイントラ予測モードは、フレーム内予測部103より予測モード判定部109に出力される。
動きベクトル検出部104では、ブロック分割部102より入力された符号化対象ブロックと、復号参照画像メモリ117に格納された、画面全体の符号化が完了したフレームの復号画像が参照画像として入力されて、符号化対象ブロックと参照画像との間での動き推定を行う。一般的な動き推定処理としては、画面内の同一位置より所定の移動量だけ移動させた位置の参照画像を切り出し、その画像を予測ブロックとした際の予測誤差が最も少なくなる移動量を動きベクトル値として、移動量を変化させながら求めるブロックマッチング処理が用いられる。検出された動きベクトル値は、動き補償予測部105及び複数参照画像合成部107に出力される。
動き補償予測部105は、動きベクトル検出部104によって求められた動きベクトル値を入力し、16×16以下の複数のブロックサイズ及び複数の参照画像に対する、動き補償予測画像を生成し、ブロック分割部102より入力された符号化対象ブロックに対して、最も符号化する差分情報が少ない予測信号を選択すると共に、複数参照画像合成部107より入力された合成した参照画像信号も同様に予測信号の候補として、最も符号化する差分情報が少ない予測信号を選択する。動き補償予測部105は、選択された動き補償予測モードと予測信号を予測モード判定部109に出力する。動き補償予測モードには、合成した参照画像を用いた動き補償であるか否かを示すモード情報が含まれる。
動きベクトル予測部106は、周辺の符号化済みブロックの動きベクトルを用いて、予測動きベクトル値を算出し、動きベクトル検出部104、動き補償予測部105に供給する。
予測動きベクトル値を用いる事で、動きベクトル検出部104は、動きベクトル予測値と動きベクトル値との差分を符号化する際に必要となる符号量を加味して、最適な動きベクトル値を検出する。同様に、動き補償予測部105は、動きベクトル予測値と動きベクトル値との差分を符号化する際に必要となる符号量を加味して、最適な動き補償予測のブロック単位と用いる参照画像及び動きベクトル値を選択する。
複数参照画像合成部107は、動きベクトル検出部104より出力された1つの参照画像に対する動きベクトル値と、復号参照画像メモリ117に格納された複数の参照画像を入力し、複数参照画像を用いた参照画像の合成処理が行なわれる。合成した参照画像信号は、動き補償予測部105に出力される。複数参照画像合成部107の詳細動作に関しては後述する。
予測モード判定部109は、フレーム内予測部103、動き補償予測部105より入力された各予測手法に対する予測モードと予測画像より、ブロック分割部102より入力された符号化対象ブロックに対して、最も符号化する差分情報が少ない予測信号を選択し、選択された予測手法に対する予測画像ブロックを減算器110及び加算器115に出力すると共に、エントロピー符号化部に118に対して、付加情報としての予測モード情報と、予測モードに応じた符号化を要する情報を出力する。
減算器110は、ブロック分割部102から供給された符号化対象ブロックと、予測モード判定部109より供給された予測画像ブロックとの差分を演算し、結果を差分ブロックとして直交変換部111に供給する。
直交変換部111では、差分ブロックに対して4×4画素もしくは8×8画素単位にDCT変換を行うことで、直交変換された周波数成分信号に相当するDCT係数を生成する。また、直交変換部111では、生成したDCT係数をマクロブロック単位に纏めて、量子化部112に出力する。
量子化部112においては、DCT係数を周波数成分毎に異なった値で除算することにより量子化処理を施す。量子化部112は、量子化処理されたDCT係数を、逆量子化部113及びエントロピー符号化部118に供給する。
逆量子化部113は、量子化部112より入力した量子化処理されたDCT係数に対して、量子化時に除算された値を乗算することで逆量子化を行い、逆量子化された結果を復号されたDCT係数として、逆直交変換部114に出力する。
逆直交変換部114においては逆DCT処理が行われ、復号された差分ブロックを生成する。逆直交変換部114は、復号された差分ブロックを加算器115に供給する。
加算器115は、予測モード判定部109より供給された予測画像ブロックと、逆直交変換部114より供給される復号された差分ブロックを加算し、局部復号ブロックを生成する。加算器115で生成された局部復号ブロックは、フレーム内復号画像メモリ116及び復号参照画像メモリ117に逆ブロック変換された形で格納される。MPEG−4 AVCの場合には、局部復号ブロックが復号参照画像メモリ117に入力される手前で、ブロック毎での符号化歪が境界となって現れやすいブロック境界に対して、適応的にフィルタリングを行う処理が施される場合もある。
エントロピー符号化部118は、量子化部112より供給された量子化処理されたDCT係数と、予測モード判定部109より供給された、予測モード情報と、予測モードに応じた符号化を要する情報に対して、それぞれの情報の可変長符号化を行う。具体的には、フレーム内予測の場合にはイントラ予測モードと予測ブロックサイズ情報が、動き補償予測及び合成画像動き補償予測の場合には、予測ブロックサイズ、参照画像の指定情報、及び動きベクトルと予測動きベクトル値との差分値が、符号化を要する情報となる。可変長符号化を施した情報は符号化ビットストリームとして、エントロピー符号化部118よりストリームバッファ119に出力される。
ストリームバッファ119に蓄えられた符号化ビットストリームは、出力端子120を介して、記録媒体もしくは伝送路に出力される。符号化ビットストリームの符号量制御に関しては、符号量制御部121に、ストリームバッファ119に蓄えられている符号化ビットストリームの符号量が供給され、目標とする符号量との間で比較がとられ、目標符号量に近づけるために量子化部112の量子化の細かさ(量子化スケール)が制御される。
続いて、実施の形態1の動画像符号化装置により生成された符号化ビットストリームを復号する、動画像復号装置を説明する。図2は、実施の形態1の動画像復号装置の構成図である。
図2に示すように、実施の形態1の動画像復号装置は、入力端子200、ストリームバッファ201、エントロピー復号部202、予測モード復号部203、予測画像選択部204、逆量子化部205、逆直交変換部206、加算器207、フレーム内復号画像メモリ208、復号参照画像メモリ209、出力端子210、フレーム内予測部211、動きベクトル予測復号部212、動き補償予測部213、及び複数参照画像合成部215を備える。
複数参照画像合成部215を設けた点と、この処理ブロック及び動き補償予測部213における動作が、本発明の実施の形態1における特徴であり、他の処理ブロックに関してはMPEG4−AVC等の動画像復号装置における復号処理を構成する処理ブロックと同一処理が適用できる。
入力端子200より入力された符号化ビットストリームは、ストリームバッファ201に供給され、ストリームバッファ201で符号化ビットストリームの符号量変動を吸収して、フレーム等の所定単位でエントロピー復号部202に供給される。エントロピー復号部202は、ストリームバッファ201を介して入力された符号化ビットストリームより、符号化された予測モード情報と予測モードに応じた付加情報、及び量子化されたDCT係数に関して可変長復号を行い、逆量子化部205に量子化されたDCT係数を、予測モード復号部203に予測モード情報と予測モードに応じた付加情報を出力する。
逆量子化部205、逆直交変換部206、加算器207、フレーム内復号画像メモリ208、及び復号参照画像メモリ209に関しては、本発明の実施の形態1の動画像符号化装置の局部復号処理である逆量子化部113、逆直交変換部114、加算器115、フレーム内復号画像メモリ116、復号参照画像メモリ117と同様の処理が行われる。フレーム内復号画像メモリ208に蓄えられた復号画像は、出力端子210を介して、表示装置に復号画像信号として表示される。
予測モード復号部203では、エントロピー復号部202より入力された予測モード情報と予測モードに応じた付加情報より、予測モードとして動き補償予測もしくは合成動き補償予測が選択された場合に、動きベクトル予測復号部212に対して、予測したブロック単位を示す情報である動き補償予測モードもしくは合成画像動き補償予測モードと、復号した差分ベクトル値を出力すると共に、予測画像選択部204に対して予測モード情報を出力する。また、予測モード復号部203は、復号した予測モード情報に応じて、フレーム内予測部211、動き補償予測部213に対して、選択されたことを示す情報及び予測モードに応じた付加情報を出力する。
予測画像選択部204は、予測モード復号部203より入力された予測モード情報に応じて、フレーム内予測部211、動き補償予測部213の何れかより出力された、復号対象ブロックに対する予測画像を選択し、加算器207に出力する。
フレーム内予測部211は、復号した予測モードがフレーム内予測を示している場合に、予測モード復号部203より予測モードに応じた付加情報として、イントラ予測モードが入力され、イントラ予測モードに応じてフレーム内復号画像メモリ208に格納された、復号対象ブロックの周辺に対して復号が完了した領域の復号画像が入力され、符号化装置と同じイントラ予測モードでフレーム内の相関性を用いた予測が行なわれる。フレーム内予測部211は、予測により生成したフレーム内予測画像を、予測画像選択部204に出力する。
動きベクトル予測復号部212は、予測モード復号部203より入力された復号した差分ベクトル値に対して、周辺の復号済みブロックの動きベクトルを用いて、符号化装置で行う方式と同じ方法で予測動きベクトル値を算出し、差分ベクトル値と予測動きベクトル値を加算した値を、復号対象ブロックの動きベクトル値として動き補償予測部213及び複数参照画像合成部215に出力する。動きベクトルは、動き補償予測モードもしくは合成画像動き補償予測モードで示される、予測処理のブロック単位に従って符号化された数だけ復号される。
動き補償予測部213は、動きベクトル予測復号部212より入力された動きベクトル値と、複数参照画像合成部215より入力された合成した参照画像信号と、予測モード復号部203より入力された予測モードに応じた付加情報としての動き補償予測モード及び合成画像動き補償予測であるか否かを示す情報により動き補償予測画像を生成し、生成した動き補償予測画像を、予測画像選択部204に出力する。
複数参照画像合成部215では、動きベクトル予測復号部212より出力された合成画像動き補償予測モードで示される1つの参照画像に対する動きベクトル値と、復号参照画像メモリ209に格納された複数の参照画像を入力し、複数参照画像を用いた参照画像の合成処理が行なわれる。合成した参照画像信号は、動き補償予測部213に出力される。
複数参照画像合成部215は、本発明の実施の形態1の動画像符号化装置における、複数参照画像合成部107と対をなすものであり、このブロックの詳細動作に関しては後述する。
以下、実施の形態1の動画像符号化装置と動画像復号装置において動作する、合成した参照画像による動き補償予測の予測画像生成方法を、図3を用いて説明を行う。
図3(c)が、本発明における合成画像動き補償予測手法を示す概念図である。図3(a)と図3(b)は、MPEG4−AVCにおいて用いられている複数参照画像を用いた動き補償予測の概念図となる。
図3(a)は、双方向予測と呼ばれている2つの参照画像に対して符号化対象ブロックとの間で動きベクトルを検出し、それぞれの参照画像に対する動きベクトルを伝送すると共に、2つの動きベクトルで示される参照ブロックの平均値を予測画像とする手法である。2つの参照画像を合成することで、時間方向の動き適応フィルタとしての符号化劣化成分の除去機能と、符号化対象物の微少な輝度変化を平均化により参照画像で構成する予測画像を生成できる。
図3(b)は、時間ダイレクトモードと呼ばれている動きベクトルの伝送なしに、2つの参照画像を用いた予測を行う手法である。参照画像2の符号化対象ブロックと同位置にあるブロックが参照画像1からの動き補償予測で生成されている場合に、その動きが時間的に連続していることを想定して、符号化対象ブロックと参照画像1と参照画像2の間の動きベクトル値を生成し、その動きベクトルにより双方向予測を行なう構成となる。動きベクトルを伝送することなく、2つの参照画像を合成した予測画像を生成できるが、図3(b)で示されるように、参照画像1と参照画像2の間の動きベクトル値が大きい場合に、その動きベクトル値で表される動きが符号化対象ブロックから空間的に離れた位置の動きを示し、且つ時間的かつ連続している場合の動きに限定して暗黙に生成されており、空間的に時間的に動きベクトル値の連続性が少ない場合には、時間ダイレクトモードは有効に機能しない。
特許文献1に示される方法は、上記時間ダイレクトモードの品質を向上させる目的で、符号化側と復号側が共に参照画像間で符号化対象ブロックを中心に対称位置に存在するブロックでの動きを検出することで、符号化対象ブロックを跨ぐ時間連続性のある動きベクトルを生成する手法であるが、空間的に連続性のない条件に対しては有効に機能できるが、時間的に連続性の少ない場合には、時間ダイレクトモードと同様に有効に機能しない。
本発明の合成動き補償予測の予測構成は、図3(c)で示されるように、参照画像1における動きベクトルは検出し符号化するとともに、参照画像1の動きベクトルで示された参照ブロックに対して、参照画像2に対する参照画像間での動きベクトル検出を符号化側と復号側で共に行い、参照画像1に対する動きベクトル値のみを伝送し、2つの参照画像を用いた合成参照画像を生成する事で、空間的・時間的に連続性が保たれていない画像に対して良好な双方向予測を可能とし、従来の双方向予測よりも少ない動きベクトル情報で動き補償予測処理が実現出来る。
続いて、図4に実施の形態1の動画像符号化装置における複数参照画像合成部の構成図を示し、参照画像の合成処理の動作を説明する。図4に示すように、複数参照画像合成部107は、基準参照画像取得部400、動きベクトル検出範囲設定部401、参照画像間動きベクトル検出部402、合成参照画像取得部403、参照画像合成部404、及び合成画像メモリ405を備える。
最初に動きベクトル検出部104より、基準参照画像取得部400及び動きベクトル検出範囲設定部401に、第1参照画像と符号化対象ブロックとの間の動きベクトル値MV1が入力される。基準参照画像取得部400では、入力されたMV1を用いて復号参照画像メモリ117から、第1参照画像の参照ブロックを取得する。基準参照画像取得部400は、取得した第1の参照ブロックを参照画像間動きベクトル検出部402及び参照画像合成部404に出力する。
続いて動きベクトル検出範囲設定部401では、第1の参照ブロックに対して第2参照画像の間での動きベクトルを検出する範囲を設定する。参照画像間の動きベクトルの検出範囲に関しては、符号化装置と復号装置において同じ検出範囲設定を暗黙に行う手法を適用可能であるが、フレーム単位や用いられる参照画像毎の検出範囲設定を符号化情報として伝送する手法を用いることも可能である。実施の形態1においては、検出範囲の設定を暗黙に設定し(例:±32画素)、動きベクトルの検出範囲の中心を、参照画像における符号化対象ブロックの位置と同じ位置とするものとする。
参照画像間動きベクトル検出部402は、基準参照画像取得部400より入力された第1の参照ブロックに対して、動きベクトル検出範囲設定部401より指定された動きベクトルの検出範囲における第2参照画像の参照ブロックを、合成参照画像取得部403を介して復号参照画像メモリ117より取得し、ブロックマッチング等の誤差値を算出し、その値が小さな動きベクトルを参照画像間動きベクトルとして算出する。参照画像間動きベクトルの検出精度に関しても同様に、符号化装置と復号装置において同じ検出精度の動きベクトル検出を暗黙に行う手法を適用可能であるが、フレーム単位や用いられる参照画像毎に動きベクトルの検出精度を符号化情報として伝送する手法を用いることも可能である。ここでは、暗黙の設定として1/4画素精度の検出精度とする。参照画像間動きベクトル検出部402は、算出した参照画像間動きベクトルを参照画像合成部404に出力する。
参照画像合成部404では、基準参照画像取得部400より第1の参照ブロックを入力すると共に、参照画像間動きベクトル検出部402より参照画像間動きベクトルを入力し、参照画像間動きベクトルによって示される第2参照画像の参照ブロックを、合成参照画像取得部403を介して復号参照画像メモリ117より取得することで、第2の参照ブロックを得る。参照画像合成部404では、第1の参照ブロックと第2の参照ブロックとの間での合成処理を行う。実施の形態1における合成処理は、例えば第1の参照ブロックと第2の参照ブロックの画素毎の平均を取ることで合成した参照ブロックとして生成する手法をとる。参照画像合成部404は、合成した参照ブロックを、合成画像メモリ405を介して動き補償予測部105に出力する。
次に、実施の形態1の動画像復号装置における複数参照画像合成部215の構成を図5に示し動作を説明する。図5に示すように、複数参照画像合成部215は、基準参照画像取得部1000、動きベクトル検出範囲設定部1001、参照画像間動きベクトル検出部1002、合成参照画像取得部1003、参照画像合成部1004、及び合成画像メモリ1005から構成され、それぞれの動作は、図4に示した、基準参照画像取得部400、動きベクトル検出範囲設定部401、参照画像間動きベクトル検出部402、合成参照画像取得部403、参照画像合成部404、及び合成画像メモリ405と同様の動作を行う。
最初に動きベクトル予測復号部212より、基準参照画像取得部1000及び動きベクトル検出範囲設定部1001に、復号した動きベクトル値MV1が入力される。基準参照画像取得部1000では、入力されたMV1を用いて復号参照画像メモリ209から、第1参照画像の参照ブロックを取得する。基準参照画像取得部1000は、取得した第1の参照ブロックを参照画像間動きベクトル検出部1002及び参照画像合成部1004に出力する。
続いて動きベクトル検出範囲設定部1001では、第1の参照ブロックに対して第2参照画像の間での動きベクトルを検出する範囲を設定する。検出する範囲に関しては、実施の形態1においては暗黙の設定で1/4画素精度の検出精度、動きベクトルの検出範囲の中心が参照画像における符号化対象ブロックの位置と同じ位置で±32画素の検出範囲としている。動きベクトル検出範囲設定部1001は、設定した動きベクトル検出範囲の情報を参照画像間動きベクトル検出部1002に出力する。
参照画像間動きベクトル検出部1002は、基準参照画像取得部1000より入力された第1の参照ブロックに対して、動きベクトル検出範囲設定部1001より指定された動きベクトルの検出範囲における第2参照画像の参照ブロックを、合成参照画像取得部1003を介して復号参照画像メモリ209より取得し、ブロックマッチング等の誤差値を算出し、その値が小さな動きベクトルを参照画像間動きベクトルとして算出する。参照画像間動きベクトル検出部1002は、算出した参照画像間動きベクトルを参照画像合成部1004に出力する。
参照画像合成部1004では、基準参照画像取得部1000より第1の参照ブロックを入力すると共に、参照画像間動きベクトル検出部1002より参照画像間動きベクトルを入力し、参照画像間動きベクトルによって示される第2参照画像の参照ブロックを、合成参照画像取得部1003を介して復号参照画像メモリ209より取得することで、第2の参照ブロックを得る。参照画像合成部1004では、第1の参照ブロックと第2の参照ブロックとの間での合成処理を行う。参照画像合成部1004は、合成した参照ブロックを、合成画像メモリ1005を介して動き補償予測部213に出力する。
本発明の実施の形態1の動画像符号化装置及び動画像復号装置により、符号化対象ブロックと第1の参照画像の間で動きベクトルを求めて動き補償予測した参照画像に対して、他の参照画像を合成するとことで、予測残差の少ない動き補償予測画像を1つの動きベクトルを伝送するだけの少ない付加情報で実現できる。
尚、参照画像間動きベクトルの値と動きベクトル値MV1を用いることで、符号化対象ブロックと第2参照画像の間の動きベクトル値を生成することができ、その値を動きベクトル予測部106、動きベクトル予測復号部212に格納し、後続する符号化対象ブロックに対する予測動きベクトル値に用いることが可能である。これにより、復号装置が認識できる動きベクトル値が増えて動きベクトルの予測精度が向上することで、より少ない情報で動きベクトルが伝送できるという新たな効果を有する。
(実施の形態2)
続いて、実施の形態2にについて説明を行う。実施の形態2においては、参照画像の合成処理に用いる動きベクトルの精度を荒くして、合成後の参照画像に対して細かい精度の位相合わせを行う構成を取る。図6は、実施の形態2の動画像符号化装置の構成を示すブロック図である。
図6に示すように、実施の形態2の動画像符号化装置は、入力端子100、入力画像バッファ101、ブロック分割部102、フレーム内予測部103、動きベクトル検出部104、動き補償予測部105、動きベクトル予測部106、複数参照画像合成部107、合成画像動き補償予測部108、予測モード判定部109、減算器110、直交変換部111、量子化部112、逆量子化部113、逆直交変換部114、加算器115、フレーム内復号画像メモリ116、復号参照画像メモリ117、エントロピー符号化部118、ストリームバッファ119、出力端子120、及び符号量制御部121を備える。実施の形態1に対して、合成画像動き補償予測部108の機能が加わると共に、複数参照画像合成部107の動作が異なる構成となる。追加された合成画像動き補償予測部108に関連する機能ブロックの動作のみ説明を加える。
動き補償予測部105は、動きベクトル検出部104によって求められた動きベクトル値を入力し、実施の形態1と同様に16×16以下の複数のブロックサイズ及び複数の参照画像に対する、動き補償予測画像を生成し、ブロック分割部102より入力された符号化対象ブロックに対して、最も符号化する差分情報が少ない予測信号を選択し、選択された動き補償予測モードと予測信号を予測モード判定部109に出力する。
動きベクトル予測部106は、周辺の符号化済みブロックの動きベクトルを用いて、実施の形態1と同様に手法で予測動きベクトル値を算出し、動きベクトル検出部104、動き補償予測部105及び合成画像動き補償予測部108に供給する。
複数参照画像合成部107は、動きベクトル検出部104より出力された1つの参照画像に対する動きベクトル値と、復号参照画像メモリ117に格納された複数の参照画像を入力し、複数参照画像を用いた参照画像の合成処理が行なわれる。合成した参照画像信号は、合成画像動き補償予測部108に出力される。
合成画像動き補償予測部108は、複数参照画像合成部107より入力された合成した参照画像信号と、動きベクトル予測部106より入力された予測動きベクトル値を用いて、ブロック分割部102より入力された符号化対象ブロックに対して、最も符号化する差分情報が少ない予測信号を選択し、選択された合成画像動き補償予測モードと予測信号を予測モード判定部109に出力する。複数参照画像合成部107及び合成画像動き補償予測部108の詳細動作に関しては後述する。
続いて、実施の形態2の動画像符号化装置により生成された符号化ビットストリームを復号する、動画像復号装置を説明する。図7は、実施の形態2の動画像復号装置の構成図である。
図7に示すように、実施の形態2の動画像復号装置は、入力端子200、ストリームバッファ201、エントロピー復号部202、予測モード復号部203、予測画像選択部204、逆量子化部205、逆直交変換部206、加算器207、フレーム内復号画像メモリ208、復号参照画像メモリ209、出力端子210、フレーム内予測部211、動きベクトル予測復号部212、動き補償予測部213、動きベクトル分離部214、複数参照画像合成部215、及び合成画像動き補償予測部216を備える。実施の形態1に対して、動きベクトル分離部214、合成画像動き補償予測部216の機能が加わると共に、複数参照画像合成部215の動作が異なる構成となる。追加された動きベクトル分離部214及び合成画像動き補償予測部216に関連する機能ブロックの動作のみ説明を加える。
予測モード復号部203では、実施の形態1と同様の処理を行うが、復号した予測モード情報に応じて、フレーム内予測部211、動き補償予測部213、及び合成動き補償予測部216に対して、選択されたことを示す情報及び予測モードに応じた付加情報を出力する部分が動作として異なる。
予測画像選択部204は、予測モード復号部203より入力された予測モード情報に応じて、選択する予測画像の選択が、フレーム内予測部211、動き補償予測部213に加えて、合成動き補償予測部216を含めた何れかより出力された、復号対象ブロックを入力し選択処理が行われ、加算器207に出力する。
動きベクトル予測復号部212は、実施の形態1と同様の方法で復号対象ブロックの動きベクトル値を算出し、動きベクトル値を動き補償予測部213及び合成画像動き補償予測部216に出力する。動きベクトルは、動き補償予測モードもしくは合成画像動き補償予測モードで示される、予測処理のブロック単位に従って符号化された数だけ復号される。
動き補償予測部213は、動きベクトル予測復号部212より入力された動きベクトル値と、予測モード復号部203より入力された予測モードに応じた付加情報としての動き補償予測モードより動き補償予測画像を生成し、生成した動き補償予測画像を、予測画像選択部204に出力する。
動きベクトル分離部214は、動きベクトル予測復号部212より入力された動きベクトル値に対して、所定の画素精度に変換された動きベクトル値(以降、基準動きベクトル値と記す)と、動きベクトル値と基準動きベクトル値との差分ベクトル値(以降、補正ベクトル値と記す)に分離し、基準動きベクトル値を複数参照画像合成部215に出力し、補正ベクトル値を合成画像動き補償予測部216に出力する。基準動きベクトル値及び補正ベクトル値は、合成画像動き補償予測モードで示される、予測処理のブロック単位に従って符号化された数だけ復号される。
複数参照画像合成部215では、動きベクトル分離部214より出力された合成画像動き補償予測モードで示される1つの参照画像に対する基準動きベクトル値と、復号参照画像メモリ209に格納された複数の参照画像を入力し、複数参照画像を用いた参照画像の合成処理が行なわれる。合成した参照画像信号は、合成画像動き補償予測部216に出力される。
合成画像動き補償予測部216は、複数参照画像合成部215より入力された合成した参照画像信号と、動きベクトル分離部214より出力された合成画像動き補償予測モードで示される1つの参照画像に対する補正ベクトル値を用いて、合成した参照画像信号より復号対象ブロックに対する予測ブロックを切り出す。合成画像動き補償予測部216は、合成画像動き補償予測モードで示された全てのブロックに対して、切り出された予測ブロックを合わることで生成した合成動き補償予測画像を、予測画像選択部204に出力する。
複数参照画像合成部215及び合成画像動き補償予測部216は、本発明の実施の形態2の動画像符号化装置における、複数参照画像合成部107及び合成画像動き補償予測部108と対をなすものであり、これらのブロック及び動きベクトル分離部214の詳細動作に関しては後述する。
以下、実施の形態2の動画像符号化装置と動画像復号装置において動作する、合成画像動き補償予測の予測画像生成方法の全体としての仕組みを、図8を用いて説明を行い、続いて詳細動作を説明する。
図8は、本発明の実施の形態2における、合成画像動き補償予測処理の動作を示す概念図である。符号化装置側では、最初に符号化対象フレームと、基準にする参照画像を第1参照画像として、符号化対象フレームと第1参照画像間の動きベクトルの検出を行い、第1の動きベクトル値MV1を生成する。図6の構成においては、MV1は動きベクトル検出部104により求める。ここでは、MV1の精度をN画素とする(例:1画素)。動きベクトル検出部104により検出された動きベクトル値が、N画素精度よりも細かい精度である場合には、検出された動きベクトル値をN画素精度に丸めることで、MV1を生成する。
次にMV1により第1参照画像から切り出された参照ブロックを第1の参照ブロックとして、第1の参照ブロックと第2参照画像との間の参照画像間動きベクトルを検出する。検出した動きを元に、第1の参照ブロックとその周囲に対して、M<NであるM画素(例:1/4画素)精度の予測画像をフィルタリング等の手段で生成し、第2参照画像より参照画像間動きベクトルを用いて切り出した第2の参照ブロックとその周囲に対して、同様の精度の予測画像を生成し、これらを用いて周囲を含む合成した予測画像を生成する。
最後に生成した周囲を含む予測画像に対して、符号化対象ブロックとの間でブロックマッチング等の手段でM画素精度の動きベクトル検出を行い、その結果検出された第2の動きベクトル値MV2を、符号化対象ブロックと第1参照画像との間の動きベクトルとして符号化・伝送すると共に、MV2で指定された合成した予測画像を、合成動き補償予測ブロックとして、符号化対象ブロックより減算し、差分ブロックを符号化・伝送する。
一方、復号装置側では、最初に受信した第2の動きベクトル値MV2をN画素精度に丸めることで、第1の動きベクトル値MV1を復元する。次にMV1により第1参照画像から切り出された参照ブロックを第1の参照ブロックとして、第1の参照ブロックと第2参照画像との間の参照画像間動きベクトルを検出する。検出した動きを元に、第1の参照ブロックとその周囲に対して、M画素精度の予測画像を符号化側で規定したフィルタリング等の手段で生成し、第2参照画像より参照画像間動きベクトルを用いて切り出した第2の参照ブロックとその周囲に対して、同様の精度の予測画像を生成し、これらを用いて周囲を含む合成した予測画像を生成する。
最後に生成した周囲を含む予測画像に対して、第2の動きベクトル値MV2で指定され位置の合成した予測画像を切り出すことにより、符号化装置側で生成したものと同じ合成動き補償予測ブロックが生成できる。
この仕組みにおいては、第1の参照ブロックを符号化対象ブロックに近い情報を持つブロックとしてテンプレートとして、他の参照画像との間での動き補償を伴う画像合成を行う事で、MPEG−4 AVC等の動き補償予測における、2つの参照画像を用いた予測(双方向予測)に近い特性を持つ予測信号を生成できるという実施の形態1と同様の効果が得られる。そしてそれと共に、符号化装置側で1/4精度レベルの細かい精度毎の合成処理による動きベクトル値確定を行う必要がなく、1画素精度レベルの荒い精度の動きベクトル値を基準にして動きベクトル値の細かい精度(M画素精度)での補正を、合成した参照画像に対して行うことが出来るため、少ない処理で合成処理において微少に移動した位相の補正や、合成処理において参照画像のノイズ成分が除去された結果を加味した、動きベクトル値が得られ、精度の高い予測画像ブロックが生成できる。
また、復号装置において、1画素精度レベルの参照画像の画素を直接取得することで生成できる画像を合成処理における参照画像間の動きベクトル検出に用いることが可能となり、小数画素精度のフィルタリング処理と、動きベクトル検出処理を並列動作することが可能になるという効果もある。
次に、図8で示した仕組みを実現する、符号化装置における複数参照画像合成部107の構成を図9に、複数参照画像合成部107及び合成画像動き補償予測部108において動作する、合成画像動き補償予測処理のフローチャートを図10に示し、その詳細動作を説明する。
図9に示すように、複数参照画像合成部107は、基準参照画像取得部400、動きベクトル検出範囲設定部401、参照画像間動きベクトル検出部402、合成参照画像取得部403、参照画像合成部404、及び合成画像メモリ405を備える。
最初に動きベクトル検出部104より、基準参照画像取得部400及び動きベクトル検出範囲設定部401に、第1参照画像と符号化対象ブロックとの間の動きベクトル値MV1が入力される。基準参照画像取得部400では、入力されたMV1を用いて復号参照画像メモリ117から、第1参照画像の参照ブロックを取得する。参照ブロックの取得領域は、符号化対象ブロックに対して、MV1の値だけ移動した第1参照画像の位置を基準に、対象ブロック±N/2画素以上のM画素精度(M<N)の参照画像を作成する為に必要な領域をとる。例えば、Nが1画素、Mが1/4画素で、1/4画素精度画像を生成するために必要な拡大フィルタをMPEG−4 AVCで用いている6タップのフィルタを用いる場合では、符号化対象ブロックサイズに加えて±3画素の領域の参照画像を、第1の参照ブロックとして取得する。基準参照画像取得部400は、取得した第1の参照ブロックを参照画像間動きベクトル検出部402及び参照画像合成部404に出力する。
続いて動きベクトル検出範囲設定部401では、第1の参照ブロックに対して第2参照画像の間での動きベクトルを検出する範囲を設定する。参照画像間の動きベクトルの検出範囲に関しては、符号化装置と復号装置において同じ検出範囲設定を暗黙に行う手法を適用可能であるが、フレーム単位や用いられる参照画像毎の検出範囲設定を符号化情報として伝送する手法を用いることも可能である。実施の形態2における、検出範囲の設定アルゴリズムに関しては、図10を用いて後で説明する。動きベクトル検出範囲設定部401は、設定した動きベクトル検出範囲の情報を参照画像間動きベクトル検出部402に出力する。
参照画像間動きベクトル検出部402は、基準参照画像取得部400より入力された第1の参照ブロックに対して、動きベクトル検出範囲設定部401より指定された動きベクトルの検出範囲における第2参照画像の参照ブロックを、合成参照画像取得部403を介して復号参照画像メモリ117より取得し、ブロックマッチング等の誤差値を算出し、その値が小さな動きベクトルを参照画像間動きベクトルとして算出する。参照画像間動きベクトルの検出精度に関しても同様に、符号化装置と復号装置において同じ検出精度の動きベクトル検出を暗黙に行う手法を適用可能であるが、フレーム単位や用いられる参照画像毎に動きベクトルの検出精度を符号化情報として伝送する手法を用いることも可能である。参照画像間動きベクトル検出部402は、算出した参照画像間動きベクトルを参照画像合成部404に出力する。
参照画像合成部404では、基準参照画像取得部400より第1の参照ブロックを入力すると共に、参照画像間動きベクトル検出部402より参照画像間動きベクトルを入力し、参照画像間動きベクトルによって示される第2参照画像の参照ブロックを、合成参照画像取得部403を介して復号参照画像メモリ117より取得することで、第2の参照ブロックを得る。参照画像合成部404では、第1の参照ブロックと第2の参照ブロックとの間での合成処理を行う。実施の形態2における合成処理は、例えば第1の参照ブロックと第2の参照ブロックの画素毎の平均を取ることで合成した参照ブロックとして生成する手法をとる。参照画像合成部404は、合成した参照ブロックを、合成画像メモリ405を介して合成画像動き補償予測部108に出力する。
続いて、これらの構成を用いた合成画像動き補償予測処理の動作を、図10のフローチャートを用いて説明する。図10においては、1フレームの符号化処理における合成画像動き補償予測の動作の流れを示している。他の処理部の動作に関しては、MPEG−4 AVC等の従来の動画像符号化処理を用いることが可能である。
1フレームの処理開始時に、最初に参照画像毎の合成対象参照画像を確定する(S500)。実施の形態2における動き補償予測の参照画像は複数毎から選択して用いることが可能である。図11に実施の形態2における符号化処理の処理順と参照画像管理の一例を示し、説明する。
Iスライスと呼ばれる動き補償予測を用いない符号化を行う処理が、最初のフレームや完結的に行われる。Iスライスで符号化された復号画像は復号参照画像メモリ117に蓄えられ、続いて符号化するフレームの参照画像となる。
Pスライスは、時間的に前のフレームの復号画像を参照画像とし、動き補償予測を用いた時間相関による圧縮を可能とするフレームである。図11における、実施の形態2の符号化処理順の一例においては、Pスライスの復号画像はすべて参照画像として用いられる。追加された参照画像は、復号参照画像メモリ117に蓄えられ、予め定義された参照画像の枚数まで格納する。
Bスライスは、2つの参照画像を加算して動き補償予測を行うことが可能なフレームで、時間的に前後の参照画像を用いて予測精度の高い動き補償予測が可能となるが、2つの参照画像を用いる場合には、2つの動きベクトルを符号化する必要がある。図11における、実施の形態2の符号化処理順の一例においては、Bスライスの復号画像は参照画像として用いない。
図11に示している例のように、Bスライスが1フレーム毎に設定された符号化処理で、参照画像を4枚格納できる場合には、Iフレーム、Pフレームの符号化後に新たな参照画像を格納し、4枚以上になる場合には1枚の参照画像を廃棄することで新しい復号画像を参照画像として用いる。図11における、実施の形態2の参照画像管理の一例においては、廃棄する参照画像は時間的に最も古いフレームを選択している。
このように、符号化対象フレームに対して複数毎の参照画像を選択的に用いることが出来るため、最初に参照画像毎に合成の対象とする参照画像を確定させる処理を行う。暗黙の規定を定めて、符号化装置・復号装置で同様の判断を行うことで、正しい合成処理が可能となる。
例えば、符号化対象フレームがBスライスの場合には、基本の参照画像となる第1参照画像に対して、符号化対象フレームを跨いだ時間関係にある、符号化対象フレームに最も近い参照画像を、合成するために用いる参照画像である第2参照画像とする。符号化対象がPスライスの場合には、第1参照画像が符号化対象フレームに最も近い参照画像である場合には、2番目に近い参照画像を第2参照画像とし、それ以外の場合には第2参照画像を符号化対象フレームに最も近い参照画像とする。
全ての参照画像に対して合成対象となる参照画像を確定されたら、続いて参照画像間の動きベクトル検出精度を確定する(S501)。ここでは、動きベクトル検出精度は、最終的な合成動き補償予測で伝送する検出精度である1/4画素を設定するが、たとえば1/8画素精度など、より細かい精度での動きを求めることで、伝送する動きベクトルの精度を上げることなく、細かい精度での合成処理を行うことも可能である。
続いて、参照画像間の動きベクトル検出範囲を確定する(S502)。検出範囲に関しては、全ての第1の参照ブロックに対して、第2参照画像の全領域を動きベクトル検出範囲にとることも可能であり、復号装置と同じ定義で検出処理を行うことで、実施の形態2における符号化装置は機能するが、参照画像間の動きベクトル検出における演算量を減らすために、図12で示すような検出範囲の設定を行う。
図12は、実施の形態2における参照画像間の動きベクトル検出範囲の一例である。符号化対象画像の入力時刻をPoc_Cur、第1参照画像の入力時刻をPoc_Ref1、第2参照画像の入力時刻をPoc_Ref2とすると、符号化対象ブロックに対する第1参照画像からの動きベクトルMV1に対して、第2参照画像の探索範囲を符号化対象ブロックの位置を基準にすると、探索中心位置を
α=MV1×(Poc_Cur -Poc_Ref2)/(Poc_Cur -Poc_Ref1)
で表されるように、時間的に動きが連続していることを想定した場合の符号化対象ブロックと第2参照画像の間の動きベクトル予測値に設定する。
しかしながら、カメラの動きや物体の動き等、時間的に連続な変化ではない状況も多いため、探索位置を中心として特定の領域に関して動きベクトルを探索することで、合成処理に適切な第2参照画像の参照ブロックを取得できるようにする。図12に示した一例においては、特定の領域として、±4画素の領域を指定している。
具体的には、S502においては、上記±4画素の定義を確定させる処理を行うのみで、各符号化対象ブロックに対しての合成参照画像を取得するための探索中心位置の算出は、対象ブロック毎に計算される。
続いて、フレーム単位での処理定義の内で符号化ビットストリームとして伝送することで、復号装置に同様の処理を機能させる情報を、フレーム単位の情報を伝送するスライスヘッダにおいて伝送する。図13に実施の形態2におけるスライスヘッダへの追加情報の一例を示す。
図13のスライスヘッダは、MPEG−4 AVCにおけるスライスヘッダを基本としているため、記述している部分は追加した情報に関するものだけである。合成動き補償予測はフレーム間の予測方式であるIスライスでは使用しないため、Iスライス以外の場合に追加した情報を伝送する。
最初に合成動き補償予測を行うか否かをスライス単位で制御する情報であるrefinement_mc_enableを1ビット伝送する。更に、refinement_mc_enableが1である(合成動き補償予測を行う)場合に、以下の3つの情報を伝送する。
1つは、従来の動き補償予測と適応的に切り替えるか、従来の動き補償予測と合成動き補償予測を置き換えるかを示す情報であり、refinement_mc_adaptiveとして1ビット伝送する。
2つ目は、参照画像間の動きベクトル検出範囲を示す情報として2ビットのデータをrefinement_mc_matching_range_fullとして伝送する。一例としては、2ビットのデータが、以下の検出範囲が定義されたことを示すようにする。
00 ±1画素
01 ±2画素
10 ±4画素
11 ±8画素
3つ目は、参照画像間の動きベクトル検出精度を示す情報として2ビットのデータをrefinement_mc_matching_subpelとして伝送する。一例としては、2ビットのデータが、以下の検出精度が定義されたことを示すようにする。
00 1画素精度(小数精度の検出を行わない)
01 1/2画素精度
10 1/4画素精度
11 1/8画素精度
このようにして、フレーム単位での設定確定後に、符号化対象フレーム内の符号化対象ブロックであるマクロブロックに対する、合成動き補償予測処理が施される。各マクロブロックに対して(S504)、全ての参照画像に対して(S505)、最初に選択した参照画像を第1参照画像とした第1の動きベクトル検出を行う(S506)。
上記検出処理は、従来の動き補償予測において用いられている動きベクトル検出部104により動作できるが、従来の動き補償予測を用いない場合には同様の動きベクトル検出処理を合成動き補償予測に加えるか、もしくは常に第1の動きベクトル値として、動きベクトル予測部106から出力する予測動きベクトル値を第1の動きベクトル値とすることも可能である。
第1の動きベクトル値として、予測動きベクトル値を用いた場合には、差分動きベクトル値が参照画像を合成した後の、微少範囲に対する検索結果としての中心位置からのずれ量となり、伝送する差分動きベクトル情報が少なくなるメリットがある。
第1の動きベクトルは1画素精度とし、動きベクトル検出部104又は動きベクトル予測部106から入力される動きベクトル値が1画素未満の精度の動きベクトルであった場合には、1画素精度に丸める動作を施す。例えば、入力された動きベクトル値MV1orgが1/4画素精度であった場合には、第1の動きベクトル値MV1を以下のように計算で求める。
MV1=(MV1org +2)>>2
続いて、第1の動きベクトルより第1の参照ブロックを取得する(S507)。図9の説明において記述したように、第1の参照ブロックは、符号化対象ブロックに対して、MV1の値だけ移動した第1参照画像の位置を基準に、対象ブロック±1/2画素以上の1/4画素精度の参照画像を作成する為に必要な領域として、符号化対象ブロックサイズに加えて±3画素の領域の参照画像を取得する。
次に、第1の動きベクトルより第2参照画像の検出範囲を設定する(S508)。第2参照画像にどの参照画像を用いるかを、S500によって決めた定義により確定する。検出範囲に関しては、S502において説明した図12に示される検出範囲が設定される。設定された検出範囲に対して、第1の参照ブロックと第2参照画像との間で参照画像間の動きベクトル検出が施される(S509)。
続いて、検出された参照画像間動きベクトルを用いて、第2の参照ブロックを取得する(S510)。第2の参照ブロックは、第1の参照ブロックに対して参照画像間の動きベクトル値だけ移動した第2参照画像の位置を基準に、第1の参照ブロックと同様の符号化ブロックサイズ±3画素の領域の参照画像を取得する。
次に、第1の参照ブロックと第2の参照ブロックを合成し、合成参照画像ブロックを生成する(S511)。合成するアルゴリズムとしては、第1の参照ブロックと第2の参照ブロックの画素毎の平均値を算出することで合成参照画像ブロックを生成する。尚、合成参照画像ブロックにおいて、MPEG−4 AVCにおいて用いられる重み付け予測(Weighted Prediction)に対応することも可能であり、合成参照画像ブロックに対して重みを付けることや、第1の参照ブロックと第2の参照ブロックの加算比率を、符号化対象画像からの距離に反比例させて重み付け加算平均を取ることも可能であり、これらを切り替える場合には加算方法を指定するための情報をフレーム単位やマクロブロック単位で伝送する。
続いて、合成参照画像ブロック内と符号化対象ブロックとの間で、微少範囲の動きベクトル検出を行い、第2の動きベクトル値を生成する(S512)。具体的には、第1の動きベクトル値が1画素精度で、1/4画素精度の動きベクトルを検出する場合には、第1の参照ブロックに対して、第1の動きベクトルMV1で示される位置を基準に±1/2画素の範囲内を1/4画素単位で水平・垂直に移動させながら、合成参照画像ブロックの同位置より符号化対象ブロックと同じサイズのブロックを切り出し、符号化対象ブロックとのブロックマッチングを行う。
ブロックマッチングの結果、符号化対象ブロックとの誤差評価値が最も小さいものを第2動きベクトル値MV2として算出する。上記移動させた範囲を示す移動量をMVdeltaとすると、
MV2=(MV1<<2)+MVdelta
として出力される。
ここで、MVdeltaは、1/4画素精度で水平・垂直共に−2≦MVdelta<2で算出されるため、MV2に対して、復号側でMV1=(MV2+2)>>2の処理を行う事で、第1の動きベクトルが復元できる。
続いて、求められた第2の動きベクトル値MV2で示される位置を基準に、合成参照画像ブロックより合成動き補償予測ブロックを切り出し、誤差評価値を算出する。誤差評価値は、ブロックマッチング等による誤差の総和だけでなく、動きベクトル等の伝送に必要な符号量や、求められた合成動き補償予測ブロックを用いて、符号化対象ブロックより減算した予測差分ブロックを符号化した際に要する符号量を加味して、符号量と復号後の入力画像との歪量を計算した値として算出することも可能である。
S506からS513までの処理は、すべての参照画像に対して施され、参照画像が最後の参照画像でない場合(S514:NO)には、次の参照画像を第1の参照画像として選択し(S515)、S506に戻る。参照画像が最後の参照画像である場合(S514:YES)には、すべての参照画像に対して求められた第2の動きベクトル値より、誤差評価値の最も小さなものを選択し、選択した第2の動きベクトル値と第2の動きベクトル値を算出する際に用いた第1参照画像を示す情報を、誤差評価値と共に予測モード判定部109に出力する(S516)。
予測モード判定部109では、他の予測モードとの間で誤差評価値が比較され、最適な予測モードを決定する(S517)。
決定した予測モードの予測画像と符号化対象ブロックの差分である、予測差分ブロックと、予測モードに関連する付加情報が符号化される(S518)ことで、1つのマクロブロックに対する符号化処理が終了する。
動きベクトル値に関しては、従来の動き補償予測が選択された場合と、合成動き補償予測が選択された場合で同様に、続くマクロブロックの動きベクトル予測に用いるために、動きベクトル予測部106に格納される。合成動き補償予測において伝送する第2の動きベクトル値は、合成処理を施さない場合の第1参照画像の動きベクトル値としては、従来の動き補償予測と同様の相関性があるため、別々に管理せずに同一に取り扱うことで、周辺ブロックの参照可能な動きベクトル値を増やし、従来と同等の動きベクトルの予測精度を保つことが可能となる。
また、図10のフローチャートにおいては、マクロブロック内の符号化対象ブロックサイズを1つとして説明しているが、MPEG−4 AVCと同様に16×16、16×8、8×16、8×8、8×4、4×8、4×4等のブロックサイズ単位で合成動き補償予測を施すことが可能であり、その場合にはブロックサイズ別の合成動き補償予測の誤差評価値を算出し、最も誤差評価値の小さなブロックサイズが選択され、予測モードを伝送することで選択結果を復号装置が認識できる。
図13に示したスライスヘッダ情報として、refinement_mc_adaptive=1を伝送した場合には、通常の動き補償予測と合成動き補償予測とを適応的に切り替える処理が行われる。
図14に実施の形態2における動き補償予測モードへの追加情報の一例を示す。切り替え情報は、動きベクトルを使用しないフレーム内予測(Intra)と予測した動きベクトル値だけを用いるダイレクトモード(Direct)以外の場合に、適用されたモードにしたがって動きベクトルを伝送する参照画像単位で、1ビットのON/OFF情報として伝送する。図14における、refmc_on_l0[ mbPartIdx ]及びrefmc_on_l1[ mbPartIdx ]が、該当する情報となる。
Bスライスにおける双方向予測(2つの参照画像を用いて加算予測を行う)において、1つずつの参照画像に対して合成参照画像を予測画像として用いるか否かを選択することも可能であり、参照画像の選択と併せると、2つの動きベクトルで最大4つの参照画像から合成動き補償予測を行うことができ、予測画像の品質を更に向上することが可能である。
マクロブロックの符号化が終了したら、最後のマクロブロックでない場合(S519:NO)には、次のマクロブロックを指定し(S520)、S504に移動する。最後のマクロブロックである場合には(S519:YES)、1フレームの符号化処理を終了する。
次に、図8の仕組みを実現する復号装置における複数参照画像合成部215の構成を図15に、動きベクトル分離部214、複数参照画像合成部215及び合成画像動き補償予測部216において動作する、合成画像動き補償予測処理のフローチャートを図16に示し、その詳細動作を説明する。
図15に示すように、複数参照画像合成部215は、基準参照画像取得部1000、動きベクトル検出範囲設定部1001、参照画像間動きベクトル検出部1002、合成参照画像取得部1003、参照画像合成部1004、及び合成画像メモリ1005から構成され、それぞれの動作は、図9に示した、基準参照画像取得部400、動きベクトル検出範囲設定部401、参照画像間動きベクトル検出部402、合成参照画像取得部403、参照画像合成部404、及び合成画像メモリ405と同様の動作を行う。
最初に動きベクトル分離部214より、基準参照画像取得部1000及び動きベクトル検出範囲設定部1001に、復号した動きベクトル値MV2より動きベクトル分離部214で生成された、動きベクトル値MV1が入力される。
具体的には、MV1は、MV1=(MV2+2)>>2の演算で生成され、符号化装置における第1参照画像と符号化対象ブロックとの間の動きベクトル値が取得できる。基準参照画像取得部1000では、入力されたMV1を用いて復号参照画像メモリ209から、第1参照画像の参照ブロックを取得する。基準参照画像取得部1000は、取得した第1の参照ブロックを参照画像間動きベクトル検出部1002及び参照画像合成部1004に出力する。
続いて動きベクトル検出範囲設定部1001では、第1の参照ブロックに対して第2参照画像の間での動きベクトルを検出する範囲を設定する。動きベクトル検出範囲設定部1001は、設定した動きベクトル検出範囲の情報を参照画像間動きベクトル検出部1002に出力する。
参照画像間動きベクトル検出部1002は、基準参照画像取得部1000より入力された第1の参照ブロックに対して、動きベクトル検出範囲設定部1001より指定された動きベクトルの検出範囲における第2参照画像の参照ブロックを、合成参照画像取得部1003を介して復号参照画像メモリ209より取得し、ブロックマッチング等の誤差値を算出し、その値が小さな動きベクトルを参照画像間動きベクトルとして算出する。参照画像間動きベクトル検出部1002は、算出した参照画像間動きベクトルを参照画像合成部1004に出力する。
参照画像合成部1004では、基準参照画像取得部1000より第1の参照ブロックを入力すると共に、参照画像間動きベクトル検出部1002より参照画像間動きベクトルを入力し、参照画像間動きベクトルによって示される第2参照画像の参照ブロックを、合成参照画像取得部1003を介して復号参照画像メモリ209より取得することで、第2の参照ブロックを得る。参照画像合成部1004では、第1の参照ブロックと第2の参照ブロックとの間での合成処理を行う。参照画像合成部1004は、合成した参照ブロックを、合成画像メモリ1005を介して合成画像動き補償予測部216に出力する。
続いて、これらの構成を用いた復号装置側での合成画像動き補償予測処理の動作を、図16のフローチャートを用いて説明する。図16においても、図10と同様に1フレームの復号処理における合成画像動き補償予測の動作の流れを示している。他の処理部の動作に関しては、MPEG−4 AVC等の従来の動画像復号処理を用いることが可能である。
1フレームの復号処理開始時に、最初にスライスヘッダを復号して参照画像に関連する情報を取得する(S1100)。図11において示したような、符号化順を示す情報や、参照画像を特定する情報がスライスヘッダにおいて伝送されていると共に、図13に示したような合成動き補償予測に関する情報も復号される。
次に、参照画像毎に合成の対象とする参照画像を確定させる処理を行う(S1101)。実施の形態2においては、符号化装置の動作で示した処理と同様の判断を復号装置において行う。
全ての参照画像に対して合成対象となる参照画像を確定されたら、続いて参照画像間の動きベクトル検出精度を復号したrefinement_mc_matching_subpelを用いて設定する(S1102)。
同様に、参照画像間の動きベクトル検出範囲に対して、スライスヘッダより復号したrefinement_mc_matching_range_fullを用いて設定する(S1103)。
フレーム単位での設定を確定した後に、復号対象フレーム内の復号対象ブロックであるマクロブロックに対して、合成動き補償予測が用いられている場合に、合成動き補償予測ブロックを生成する処理が施される。
各マクロブロックに対して(S1104)、最初に予測モードが合成動き補償予測モードでない場合(S1105:NO)には、他の予測モードで予測処理を行い、生成された予測画像を用いて復号処理を施す(S1106)。
予測モードが合成動き補償予測モードである場合には(S1105:YES)、第1参照画像を示す情報を取得する(S1107)。参照画像を示す情報はMPEG−4 AVCと同様に予測モードと一緒に符号化されており、復号したマクロブロックの予測モード情報と共に取得することが出来る。
続いて、動きベクトル予測復号部212において復号された動きベクトル値MV2を取得する(S1108)。MV2は動きベクトル分離部214において、分離処理が施されMV1を生成する(S1109)。具体的には、上述したようにMV1=(MV2+2)>>2の演算がなされる。
続いて、MV1を用いて第1の参照ブロックを取得する(S1110)。図9の説明において記述したように、第1の参照ブロックは、MV1の値だけ移動した第1参照画像の位置を基準に、対象ブロック±1/2画素以上の1/4画素精度の参照画像を作成する為に必要な領域として、符号化対象ブロックサイズに加えて±3画素の領域の参照画像を取得する。
次に、第1の動きベクトルより第2参照画像の検出範囲を設定する(S1111)。第2参照画像にどの参照画像を用いるかは、S1101によって決めた定義により符号化装置と同じ選択がなされる。検出範囲に関しては、S1103において設定された検出範囲が用いられる。設定された検出範囲に対して、第1の参照ブロックと第2参照画像との間で参照画像間の動きベクトル検出が施される(S1112)。
続いて、検出された参照画像間動きベクトルを用いて、第2の参照ブロックを取得する(S1113)。第2の参照ブロックは、第1の参照ブロックに対して参照画像間の動きベクトル値だけ移動した第2参照画像の位置を基準に、第1の参照ブロックと同様の符号化ブロックサイズ±3画素の領域の参照画像を取得する。
次に、第1の参照ブロックと第2の参照ブロックを合成し、合成参照画像ブロックを生成する(S1114)。
続いて、合成した参照画像ブロックに対して、MV1で指定された位置に対してMV2−MV1移動させた領域、即ちMV2で指定される位置に相当する領域の画像ブロックを抽出する(S1115)。移動する1/4画素成分は、MV1は1画素精度、MV2は1/4画素精度となるため、MV2−(MV1<<2)の演算で生成される。抽出した画像ブロックは、合成動き補償予測ブロックとして、予測画像選択部204に出力される(S1116)。
続いて、上記合成動き補償予測ブロックを用いて、差分情報の復号処理が施される(S1117)ことで、1つのマクロブロックの復号処理が終了する。復号処理を行ったマクロブロックが1フレームの最後のマクロブロックでない場合(S1118:NO)には、次に復号するマクロブロックを指定して(S1119)、S1105に戻る。
1フレームの最後のマクロブロックを復号した場合には(S1118:YES)、1フレームの処理を完了する。
尚、実施の形態2における復号装置における合成画像動き補償予測処理では、最終的なMV2の値が予めわかっているため、第1の参照ブロックに関しては、符号化対象ブロックサイズの1画素単位の参照画像ブロックのみを取得し、参照画像間の動きベクトル検出を行い、合成参照画像生成時に必要になる1/4画素単位の参照画像を生成して、合成処理を行うことも可能であり、復号時のフィルタ処理による演算量増加を減らしつつ、符号化装置と同じ合成参照画像を生成することができる。
本発明の実施の形態2の動画像符号化装置及び動画像復号装置により、符号化対象ブロックと第1の参照画像の間で動きベクトルを求めて動き補償予測した参照画像に対して、他の参照画像を合成するとともに、合成した予測画像に対して微少範囲の動きベクトル検出(補正)を行うことで、予測画像の品質を向上した上で向上後のエッジ部分等の位相変化を加味して動きを補正した、予測残差の少ない動き補償予測画像を生成できた。
更に、第1の参照画像に対して求めた動きベクトルの精度をN画素精度とすると、合成した予測画像に対して施す動きベクトル検出(補正)の範囲を±N/2画素とし、N画素よりも細かい精度で補正を行い、補正結果の動きベクトル値を伝送することで、1つの動きベクトル値で、復号装置側での第1の参照画像からの動き補償予測画像取得と、合成した予測画像の位相変化を補正した動き補償予測画像の取得を可能とし、付加情報を増やすことなく、予測残差の少ない動き補償予測画像を符号化・復号可能とした。
また、第1の予測画像に対する動きベクトル値を、復号済みの周辺ブロックの動きベクトル値より予測した場合に、復号する動きベクトル値として合成した予測画像に対する補正値のみを受信すればよく、更に動きベクトルの情報量を削減できた。
本発明の実施の形態2においては、第1の参照画像を用いて予測した動き補償予測画像に対して、他の参照画像との間の動きベクトル値を求め、他の参照画像から取得した動き補償予測画像と加算平均をとることで、符号化劣化成分の除去と復号対象物の微少な輝度変化に対応した予測画像を生成することが出来、符号化効率を向上できた。
尚、第2の動きベクトルに関しては、符号化装置において1つの確定した結果を用いて合成参照画像を生成し、合成動き補償予測をおこなっているが、複数の第1の動きベクトルを用意して、それぞれの動きベクトルを基準に合成動き補償予測を同じ手法で行い、最適な第2の動きベクトルを符号化した場合においても、復号装置は実施の形態2において説明した処理で、演算量の増加なく復号が可能であり、符号化装置においてもN画素単位での判断でM画素精度の最適な合成動き補償予測が可能となり、実施の形態1に対して符号化処理の増加を抑えて、適した合成動き補償予測が可能となる。
(実施の形態3)
次に、実施の形態3の動画像符号化装置及び動画像復号装置を説明する。実施の形態3においては、動画像符号化装置及び動画像復号装置の構成は実施の形態2と同様の構成を取り、複数参照画像合成部における参照画像の合成処理のみが異なる動作を行う。具体的には、実施の形態2の説明における、参照画像合成部404、1004及びフローチャートのS511、S1114で行う演算処理のみが異なる。
実施の形態3における、参照画像の合成処理の動作を示す概念図を図17に示し、演算処理の説明を行う。実施の形態2においては、合成処理においてブロック内の全ての画素値において、一様の加算平均処理を施す平均化が行われていたが、実施の形態3においては、合成処理において、第1の参照ブロックと第2の参照ブロックとの間で、画素毎に誤差値を算出し、誤差の絶対値に応じて画素毎での第2の参照ブロックと前記第1の参照ブロックとの重み付けを変化させて重み付け平均値を算出する。
具体的には、誤差が少ない場合には均等の重み付けを行い、閾値以上は第2の参照ブロックの画素を加算しない、動き適応フィルタの構成を取る。第1の参照ブロックの画素値をP1、第2の参照ブロックの画素値をP2とすると、図17に示したような関数にて、画素誤差絶対値|P1−P2|より、加算比率値であるαを算出する。算出したαを用いた、画素毎の合成画素値PMは、
PM=P1×(1−α)+P2×α
で計算される。
これらの合成処理は、符号化装置・復号装置で暗黙に同じ動作をさせることも可能であるが、スライスヘッダ等に単純平均化を行うか、画素毎での適応加算を行うかを示す情報を送って選択することも可能である。
実施の形態2における単純平均化を行った場合は2つの参照画像からの平均値予測に相当する特性の予測画像を1つの動きベクトルで生成することが可能であるのに対して、実施の形態3における適応加算を行った場合には、第1の参照ブロックを基準として、第1の参照ブロックが符号化劣化等で生じた歪を除去しつつ、エッジ成分などの変化が大きい部分に関しては信号特性を保存することで、第1の参照画像ブロックの品質を向上した予測画像を符号化・復号共通の処理において生成する。これにより、実施の形態3における動画像符号化装置・動画像復号装置においては、実施の形態1における効果に加えて、エッジ成分などの特徴部分の信号特性を保ちつつ、符号化劣化成分の除去を行った高品質な予測画像を生成することが出来、符号化効率を向上した。
尚、参照画像が図11で示すような符号化構造において、1枚のみの状態である場合においても、第2の参照画像として第1の参照画像を指定し、第1の参照画像内でのテクスチャ成分をブロックマッチングさせて適応的に加算することにより、劣化成分の除去は可能となり、本発明の構成を持って、良好な効果を発揮させることができる。
(実施の形態4)
次に、実施の形態4の動画像符号化装置及び動画像復号装置を説明する。実施の形態4においては、複数参照画像合成部における第2の参照画像を複数用いる構成をとると共に、第1の参照ブロックに対する第2の参照画像からの動きベクトル検出のブロック単位が符号化対象ブロックよりも小さなブロック単位で構成されることを特徴とする。
図18は、本発明の実施の形態4における、合成画像動き補償予測処理の動作を示す概念図である。符号化装置側と復号装置側の関係は、図8に示した実施の形態2と同様の関係であるため、符号化装置側の動作を示す概念図のみ記している。
符号化装置側では、符号化対象フレームと、基準にする参照画像を第1参照画像として動きベクトルの検出を行い、MV1を生成する処理を、実施の形態1と同様に行う。
次にMV1により第1参照画像から切り出された参照ブロックを、符号化対象ブロックよりも小さなブロック単位に分割し、小さなブロック単位で第2参照画像との間の参照画像間動きベクトルを検出する。一例としては、符号化対象ブロックがマクロブロックと同じサイズである16×16画素の場合に、参照画像間動きベクトルを求める単位を8×8画素にする。そして、検出された複数(一例の場合は4つ)の第2参照画像との間の参照画像間動きベクトルを用いて、対象となる第1の参照ブロックの領域に対して合成対象となる小さなブロック単位の複数の参照ブロックを生成する。
第2の参照ブロックを生成する際の対象ブロック周辺の画像に対しては、図18に示しているように、分割した他のブロックに含まれない領域のみを、各小ブロック単位で取得することも可能であるが、全ての小ブロックにおいて実施の形態1と同様に±3画素の周辺領域を取得し、合成処理に用いることも可能であり、小ブロックの境界を滑らかに接続する合成画像を生成することが可能である。上記小ブロックの複数の参照ブロックを用いて、第1の参照ブロックに対応する第2の参照ブロックが生成される。
続いて、第2の参照画像とは異なる第3の参照画像に対して、同様に参照画像間の動きベクトルを検出する。第3の参照画像に対しても同様に小さなブロック単位で第1の参照ブロックとの間の参照画像間動きベクトルを検出する。検出した参照画像間動きベクトルにより、複数の参照ブロックを生成し、複数の参照ブロックを用いて、第1の参照ブロックに対応する第3の参照ブロックを生成する。
合成処理においては、第1の参照ブロックに対して画素毎もしくは小さいブロック毎に第2の参照ブロックを合成させるか、第3の参照ブロックを合成させるか、第2、第3の参照ブロックの両方を用いて合成させるかを、第1の参照ブロックの画素値と第2及び第3の参照ブロックの画素値を用いて判断する。
このようにして合成された周囲を含む予測画像に対しては、実施の形態1と同様に符号化対象ブロックとの間でブロックマッチング等の手段でM画素精度の動きベクトル検出を行い、その結果検出された第2の動きベクトル値MV2を、符号化対象ブロックと第1参照画像との間の動きベクトルとして符号化・伝送すると共に、MV2で指定された合成した予測画像を、合成動き補償予測ブロックとして、符号化対象ブロックより減算し、差分ブロックを符号化・伝送する。
実施の形態4における動画像符号化装置及び動画像復号装置の構成も、実施の形態2と同様の構成を取るが、複数参照画像合成部における構成及び処理が異なる。実施の形態4における複数参照画像合成部の構成を示すブロック図を図19に、動作を説明するフローチャートを図20に示し、実施の形態4の説明を行う。符号化装置と復号装置における複数参照画像合成部の構成及び動作は、複数参照画像合成部に繋がる処理ブロックの動作が異なるのみで、同様の動作を行うため、符号化装置における振る舞いを示し説明する。
図19に示すように、実施の形態4における複数参照画像合成部は、基準参照画像取得部1400、動きベクトル検出範囲設定部1401、第2参照画像間動きベクトル検出部1402、第2参照画像取得部1403、参照画像合成部1404、及び合成画像メモリ1405、第3参照画像取得部1406、第3参照画像間動きベクトル検出部1407、及び合成判定部1408を備える。実施の形態1の複数参照画像合成部に対して、第3参照画像取得部1406、第3参照画像間動きベクトル検出部1407、及び合成判定部1408における動作が、実施の形態4における新たな効果をもたらす構成であるが、第3参照画像取得部1406、第3参照画像間動きベクトル検出部1407に関しては、第2参照画像間動きベクトル検出部1402及び第2参照画像取得部1403と統合して、実施の形態2における構成のように、参照画像間動きベクトル検出部402、合成参照画像取得部403の構成で動作させることも可能である。図19においては、動作説明を行うために別々のブロックとして記述している。
最初に動きベクトル検出部104より、基準参照画像取得部1400及び動きベクトル検出範囲設定部1401に、第1参照画像と符号化対象ブロックとの間の動きベクトル値MV1が入力される。基準参照画像取得部1400では、入力されたMV1を用いて復号参照画像メモリ117から、第1参照画像の参照ブロックを取得する。参照ブロックの取得領域は、符号化対象ブロックに対して、MV1の値だけ移動した第1参照画像の位置を基準に、対象ブロック±N/2画素以上のM画素精度(M<N)の参照画像を作成する為に必要な領域をとる。基準参照画像取得部1400は、取得した第1の参照ブロックを第2参照画像間動きベクトル検出部1402、合成判定部1408、及び第3参照画像間動きベクトル検出部1407に出力する。
続いて動きベクトル検出範囲設定部1401では、第1の参照ブロックに対して第2参照画像の間での動きベクトルを検出する範囲、及び第3参照画像の間での動きベクトルを検出する範囲を設定する。検出範囲の設定アルゴリズムに関しては、実施の形態1における検出範囲設定と同様の処理が、第2参照画像との参照画像間動きベクトル検出に対してと、第2参照画像との参照画像間動きベクトル検出に対して、個別に行われ範囲を確定させる。動きベクトル検出範囲設定部1401は、設定した動きベクトル検出範囲の情報を第2参照画像間動きベクトル検出部1402及び第3参照画像間動きベクトル検出部1407に出力する。
第2参照画像間動きベクトル検出部1402は、基準参照画像取得部1400より入力された第1の参照ブロックに対して、動きベクトル検出範囲設定部1401より指定された動きベクトルの検出範囲における第2参照画像の参照ブロックを、第2参照画像取得部1403を介して復号参照画像メモリ117より取得し、符号化対象ブロックに対して1/4の大きさである8×8ブロックサイズ毎に、ブロックマッチング等の誤差値を算出し、その値が小さな動きベクトルを第2参照画像間動きベクトルとして算出する。第2参照画像間動きベクトル検出部1402は、算出した4つの第2参照画像間動きベクトルを合成判定部1408に出力する。
同様に第3参照画像間動きベクトル検出部1407は、基準参照画像取得部1400より入力された第1の参照ブロックに対して、動きベクトル検出範囲設定部1401より指定された動きベクトルの検出範囲における第3参照画像の参照ブロックを、第3参照画像取得部1406を介して復号参照画像メモリ117より取得し、符号化対象ブロックに対して1/4の大きさである8×8ブロックサイズ毎に、ブロックマッチング等の誤差値を算出し、その値が小さな動きベクトルを第3参照画像間動きベクトルとして算出する。第3参照画像間動きベクトル検出部1407は、算出した4つの第3参照画像間動きベクトルを合成判定部1408に出力する。
合成判定部1408では、基準参照画像取得部1400より入力された第1の参照ブロックに対して、第2参照画像間動きベクトル検出部1402より入力された4つの第2参照画像間動きベクトルによって示される、複数の第2参照画像の参照ブロックを用いて、第2参照画像取得部1403を介して復号参照画像メモリ117より、第1の参照ブロックに対応する第2の参照ブロックを生成する。
合成判定部1408は、同様に第3参照画像間動きベクトル検出部1407より入力された4つの第3参照画像間動きベクトルによって示される、複数の第3参照画像の参照ブロックを用いて、第3参照画像取得部1406を介して復号参照画像メモリ117より、第1の参照ブロックに対応する第3の参照ブロックを生成する。
合成判定部1408は、続いて生成した第2の参照ブロック、第3の参照ブロックと、第1の参照ブロックの間で誤差値を算出し、誤差値の関係を用いて第1の参照ブロックに対して、合成する第2の参照ブロック及び第3の参照ブロックの選択及び、加算比率を確定する。確定アルゴリズムに関しては、後述する。
合成判定部1408は、確定した加算比率を用いて第1の参照ブロックに対して、第2の参照ブロック及び第3の参照ブロックを合成することで、合成した参照ブロックを生成し、合成した参照ブロックを、合成画像メモリ1405を介して合成画像動き補償予測部108に出力する。
続いて、図20に合成判定部1408における判定処理の動作を説明するためのフローチャートを示し、詳細動作を説明する。符号化対象ブロック単位で、最初に第1の参照ブロックを入力する(S1500)。参照画像ブロックは、符号化対象ブロックの大きさに対して±1/2画素の範囲内での1/4画素単位での動き量移動を、合成動き補償予測部で行うために、フィルタ係数を加味して±3画素の領域を取得する(符号化対象ブロックが16×16画素の場合、22×22画素の領域を取得)。
続いて、第2参照画像間動きベクトル検出部1402により算出された4つの第2参照画像間動きベクトルを入力する(S1501)。入力されたそれぞれの動きベクトルを用いて、8×8画素単位での小参照画像ブロックを第2参照画像より取得する(S1502)。小参照画像ブロックの取得領域は14×14画素となる。
小参照画像ブロックの隣接部分に関しては、隣接する参照画像ブロックのオーバーラップ部分の画素を反映させるか否かの判断を行う(S1503)。具体的には、隣接する取得した動きベクトルの差分値が±1画素以内の場合には、オーバーラップさせてブロック隣接部分を滑らかに接続する。±1画素より大きい場合には、異なる物体に対して求められた参照ブロックであると判断し、オーバーラップ部分は反映させず、該当する小参照ブロックの画素をそのまま設定する。上記判断に従って、小参照画像ブロックを重ね合わせ、22×22画素で構成される第2の参照ブロックを生成する(S1504)。
続いて、第3参照画像間動きベクトル検出部1407により算出された4つの第3参照画像間動きベクトルを入力する(S1505)。第2参照画像の場合と同様に、それぞれの動きベクトルを用いて小参照画像ブロックを第3参照画像より取得し(S1506)、小参照画像ブロックの隣接境界部分の処理を確定させ(S1507)、小参照画像ブロックを重ね合わせて第3の参照ブロックを生成する(S1508)。
次に、第1の参照ブロック、第2の参照ブロック、第3の参照ブロックを用いて合成処理を画素単位に行う。参照ブロック内の画素単位に(S1509)、第1の参照ブロックの画素値P1と第2の参照ブロックの画素値P2との誤差絶対値|P1−P2|を算出する(S1510)。同様にP1と第3の参照ブロックの画素値P3との絶対誤差値|P1−P3|を算出し(S1511)、P2とP3の絶対誤差値|P2−P3|を算出する(S1512)。
実施の形態3における合成処理の判断は、|P1−P2|、|P1−P3|、|P3−P2|の3つの値を用いて、P1、P2、P3の加算比率を確定させる(S1513)ことで行われる。
先ず、|P1−P2|と|P1−P3|が共に閾値β(例:8)よりも小さい場合には、P1、P2、P3を同じ重み付けで加算平均する。即ち、P1、P2、P3の比率が1:1:1となる。
次に、|P1―P2|が閾値βより小さく、|P1−P3|が閾値γ(例:16)よりも大きい場合には、P2のみをP1に加算する。即ち、P1、P2、P3の比率を1:1:0とする。P2とP3の関係が逆の場合、即ち|P1―P3|が閾値βより小さく、|P1−P2|が閾値γ(例:16)よりも大きい場合には、P1、P2、P3の比率が1:0:1になる。
|P1―P2|と|P1―P3|が共に閾値γよりも大きい場合には、|P2−P3|の値を調査する。|P2−P3|が閾値δ(例:4)よりも小さい場合には、P1の画素値が劣化等の要因で誤差を生じていると判断し、P2、P3を用いて画素値を更新する方向に加算処理を行う。具体的には、P1、P2、P3の比率を1:2:2にする。
また、|P2−P3|が閾値γよりも大きい場合には、P2及びP3は合成対象から外し、加算比率がP1、P2、P3の比率が1:0:0になる。
上記の条件以外の場合には、P1に対して、P2とP3の平均値を加算平均する。即ち、P1、P2、P3の比率が2:1:1となる。このようにして確定した比率に応じて、P1、P2、P3の重み付け加算平均を取り、合成した参照ブロックの画素値PMを生成する(S1514)。
参照ブロック内の全ての画素に対して同様の処理を施す。参照ブロック内の最後の画素でない(S1515:NO)場合には、次の画素を設定し(S1516)、S1510に戻る。参照ブロック内の最後の画素である(S1515:YES)場合には、符号化対象ブロックに対する参照画像の合成処理を終了する。
実施の形態4の動画像符号化装置及び動画像復号装置においては、第1の参照画像を用いて予測した動き補償予測画像に対して、他の参照画像との間で対象としている動き補償予測画像よりも細かい単位の動きベクトル値を求め、それぞれの動きベクトルに応じて細かい単位で取得した動き補償予測画像と合成処理を行うことで、伝送する動きベクトルを増加せずに、符号化対象物の物体の時間的な微少な変形に対応した予測画像を生成し、符号化効率を向上させた。また、第1の参照画像を用いて予測した動き補償予測画像に対して、他の参照画像との間の相関性を求め合成に適した参照画像を複数選択し合成処理を行うことで、付加情報を送らずに、複数の参照画像からの適切な合成画像の生成を行うことが出来、更に符号化効率を向上させた。
(実施の形態5)
次に、実施の形態5の動画像符号化装置及び動画像復号装置を説明する。実施の形態5においては、複数参照画像合成部において、第1の参照画像に対して複数の参照画像を用いて超解像拡大処理を行い、超解像拡大を施した結果の拡大画像を合成参照画像として動き補償予測に用いる構成をとることが特徴である。
最初に、実施の形態5における合成画像動き補償予測処理の動作を示す概念図を図21に示し説明する。実施の形態1から4までの構成においては、1画素未満の小数画素精度の画素値を、それぞれの参照画像に対するフィルタリングにより生成し、生成後の参照画像を用いて合成参照画像を生成していたが、実施の形態4においては、第1の参照画像を拡大した1画素未満の小数画素精度の画素値を、他の参照画像からの貼り付けにより生成し、貼り付け後の周波数帯域を整えることで、高精細かつ符号化劣化の影響を低減した参照画像を生成する。
図21に示すように、符号化対象ブロックに対して、第1の参照画像との間で検出した第1の動きベクトルを元に取得した第1の参照ブロックに対して、特定範囲の第2の参照画像及び第3の参照画像を設定し、特定範囲内の画素に対して第1の参照ブロックに対する動き検出を行い、画素貼り付けを行う(レジストレーション)事で小数画素精度の拡大参照ブロックを生成し、所定の帯域に整えるためのフィルタを施し、その成分を反映させる。
上記処理を複数回繰り返すことで、第1の参照ブロックにおける符号化劣化を除去し、小数画素精度の高精細参照画像を生成する。このようにして生成された高精細参照信号を合成画像動き補償予測に用いることで、予測残差の高周波成分が少ない予測画像を生成する。
図22に実施の形態5の動画像符号化装置及び動画像復号装置における、複数参照画像合成部の構成を示すブロック図を示し、その動作を説明する。実施の形態4と同様に、実施の形態5においても符号化装置と復号装置における複数参照画像合成部の構成及び動作は、複数参照画像合成部に繋がる処理ブロックの動作が異なるのみで、同様の動作を行うため、符号化装置における振る舞いを示し説明する。
図22に示すように、実施の形態5における複数参照画像合成部は、基準参照画像取得部1700、レジストレーション対象範囲設定部1701、レジストレーション部1702、合成参照画像取得部1703、帯域制限フィルタ部1704、合成画像メモリ1705、及び再構成終了判定部1706を備える。
最初に動きベクトル検出部104より、基準参照画像取得部1700、レジストレーション対象範囲設定部1701に、第1参照画像と符号化対象ブロックとの間の動きベクトル値MV1が入力される。基準参照画像取得部1700では、入力されたMV1を用いて復号参照画像メモリ117から、第1参照画像の参照ブロックを取得する。基準参照画像取得部1700は、取得した第1の参照ブロックをレジストレーション部1702に出力する。
続いてレジストレーション対象範囲設定部1701では、第1の参照ブロックに対して他の参照画像のからレジストレーションを行う対象となるエリアを設定する。具体的には、
図12で示した実施の形態1における参照画像間の動きベクトル検出範囲と同様に、符号化対象画像との距離に応じて、MV1を延長もしくは縮小した動き量で示される位置を中心に、±L画素の範囲をレジストレーションを行う対象エリアとして設定する。Lの値は、実施の形態1における参照画像間の動きベクトル検出範囲よりも広い範囲を必要とし、例えばL=32と設定される。
レジストレーション対象範囲設定部1701において設定された対象エリアは、レジストレーション部1702に送られ、レジストレーション処理が施される。レジストレーション部1702では、最初に第1の参照ブロックに対して水平・垂直X倍の拡大処理を施す。本実施の形態においては、X=4とすることで1/4画素単位の動き補償に用いることを可能とする拡大画像を生成する。
拡大画像において、画素値が存在している1画素単位の画素と、拡大処理により生成された画素は、レジストレーション処理において異なる処理が施される。レジストレーションは図21に示したように、所定画素単位(例:4×4画素)で第1の拡大された参照ブロックと、合成参照画像取得部1703を介して復号参照画像メモリ117より取得した他の参照画像の1画素単位で構成された参照ブロックとの間で、1画素間隔でのブロックマッチングを行うことで動きベクトルを算出する。算出された動きベクトルが1画素精度の位置を示していない場合には、他の参照画像からの画素貼り付けが従来存在していなかった画素に対して行われるため、貼り付けた画素値がフィルタにより生成された画素値と置き換わる。1画素精度の位置を示していた場合、及び複数の参照画像より同じ場所に画素が張り付く場合には、レジストレーション終了後にそれぞれの画素位置に張り付いた画素値の分布や頻度を元に、最も該当位置にあるべき値を算出しその値で画素値を置き換える。
レジストレーションを施された参照ブロックは、レジストレーション部1702より帯域制限フィルタ部1704に出力される。帯域制限フィルタ部1704においては、本来拡大した参照画像が有する周波数特性を想定した帯域制限フィルタを、入力したレジストレーション後の参照ブロックに対して施す。
レジストレーション時に張り付くことがなかった1画素精度以外の画素位置の値に関しては、最初に拡大した際に生成した値を用いずに、周囲のレジストレーションされた画素値を用いて、帯域制限フィルタによりフィルタリングされる。これにより、張り付かなかった位置の画素値にもレジストレーションの影響が反映される。
帯域制限フィルタが掛けられた結果の参照ブロックは、帯域制限フィルタ部1704より合成画像メモリ1705に格納される。合成画像メモリ1705は、格納した参照ブロックを再構成終了判定部1706に送る。
再構成終了判定部1706においては、帯域制限フィルタ部1704より送られた1回前の帯域制限フィルタが掛けられた参照ブロックを内部に確保しておき、入力された参照ブロックとの比較を行う。比較結果として変化が少なくなった場合(1回前の変化よりも変化量が少ない)で且つ、今回の変化が少ない場合に、超解像化を行うための再構成処理が完了したと判断し、再構成終了判定部1706は現在の符号化対象ブロックに対する、複数参照画像からの合成処理を終了する。
終了時には、合成画像メモリ1705より合成画像動き補償予測部108に対して、格納された参照ブロックが出力される。終了しない場合には、1回前の帯域制限フィルタが掛けられた参照ブロックに対して、格納された参照ブロックと1回前の帯域制限フィルタが掛けられた参照ブロックの差分に対して、帯域制限フィルタの逆特性を持つフィルタを施し高域成分を抽出し、生成された高域成分情報を反映させた参照ブロックの更新画像が再度レジストレーション部1702に入力され、再度他の参照画像からのレジストレーション処理が施される。複数回レジストレーション処理が繰り返されることで、段階的に高精細成分が参照ブロック上で再構成され、高品質な参照ブロックが生成される。
具体的なレジストレーション及びその反映を含む超解像処理に関しては、実施の形態5の構成以外にも方法が存在し、その手法を適用する場合においても超解像処理を施した合成参照画像による動き補償予測を、追加の動きベクトルを伝送せずに実現できる効果がある。
実施の形態5における動画像符号化装置及び動画像復号装置によれば、第1の参照画像を用いて予測した動き補償予測画像に対して、他の参照画像を用いて超解像化処理を施した画像を予測画像とすることで、参照画像が消失した高周波成分を復元した予測画像を生成すると共に、超解像化した参照画像に対して細かい位相調整を行う動きベクトル検出を施して高周波成分の位相を加味した動きベクトルを伝送できることで、付加情報の増加無しに、高周波成分の予測残差を大幅に削減できる、新たな効果が加わる。
尚、第1、第2、第3、第4、第5の実施の形態として提示した、動画像符号化装置、及び動画像復号装置は、物理的にはCPU(中央処理装置)、メモリなどの記録装置、ディスプレイ等の表示装置、及び伝送路への通信手段を具備したコンピュータで実現することが可能であり、提示した各々の機能を具備する手段を、コンピュータ上のプログラムとして実現し、実行することが可能である。また、プログラムをコンピュータ等で読み取り可能な記録媒体に記録して提供することも、有線あるいは無線のネットワークを通してサーバから提供することも、地上波あるいは衛星デジタル放送のデータ放送として提供することも可能である。
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。