(57)【要約】【課題】複数の参照画像を利用した動き補償を用いる符号化をリアルタイムで実現する映像符号化装置を低コストで実現する。【解決手段】複数の前処理エンコーダ１１の各動きベクトル探索部１２は，同じ入力映像に対して，それぞれ異なるタイミングで予測の種類を変えながら動き予測を行なう。メインエンコーダ１３の動きベクトル決定部１４は，各動きベクトル探索部１２から受け取った複数の動きベクトルの中から，片方向予測または両方向予測に関して，符号化効率が最適となる動きベクトルを選択する。メインエンコーダ１３は，選択された符号化効率が最適な動きベクトルを用いて入力画像の符号化を行う。【選択図】        図１
2004336522.tif 000002
【特許請求の範囲】
【請求項１】
複数の参照画像を用いた動き補償を伴う符号化を行なう映像符号化方法であって，
同一の入力映像に対して，Ｍ個（Ｍは２以上の整数）の符号化器がそれぞれ異なるタイミングで予測の種類を変えながら動き予測を行なう過程と，
これらの符号化器から得られる動きベクトルを用いて，複数の参照画像を用いた動き補償を伴う符号化を行なう過程とを有する
ことを特徴とする映像符号化方法。
【請求項２】
複数の参照画像を用いた動き補償を伴う符号化を行なう映像符号化方法であって，
同一の入力映像に対し，Ｍ個（Ｍは２以上の整数）の符号化器がそれぞれ異なるタイミングで，Ｍフレームに１フレームの間隔でＭフレーム前のフレームを参照フレームとする片方向予測を行ない，２つの片方向予測フレームにはさまれるＭ−１枚のフレームについてはその２つのフレームを参照フレームとする両方向予測を行なう過程と，
これらＭ個の符号化器から各動き補償単位ごとに得られる最大Ｍ本の前方向予測動きベクトルと最大Ｍ−１本の後方向予測動きベクトルを用いて，前方向予測参照フレームを最大Ｍ枚，後方向予測参照フレームを最大Ｍ−１枚用いた動き補償を伴う符号化を行なう過程とを有する
ことを特徴とする映像符号化方法。
【請求項３】
請求項１または請求項２記載の映像符号化方法において，
前記動き補償を伴う符号化を行なう過程では，前記Ｍ個の符号化器から得られる動きベクトルの近傍に関して再度動きベクトル探索を行ない，動き補償に用いる動きベクトルを決定する
ことを特徴とする映像符号化方法。
【請求項４】
請求項１または請求項２記載の映像符号化方法において，
前記動き補償を伴う符号化を行なう過程では，前記Ｍ個の符号化器から動きベクトルの情報とともに，それぞれの動きベクトル探索時に得られた予測誤差値の情報を得て，その予測誤差値の大きさに基づいて動き補償に用いる動きベクトルを決定する
ことを特徴とする映像符号化方法。
【請求項５】
請求項１または請求項２記載の映像符号化方法において，
前記動き補償を伴う符号化を行なう過程では，前記Ｍ個の符号化器が生成するビットストリームから，動きベクトルの情報，それぞれの動きベクトルに対応する予測誤差を符号化するのに用いた符号量，およびその符号化に用いた量子化ステップ値の情報を得て，それらの情報を用いて動き補償に用いる動きベクトルを決定する
ことを特徴とする映像符号化方法。
【請求項６】
複数の参照画像を用いた動き補償を伴う符号化を行なう映像符号化装置であって，
同一の入力映像に対して，それぞれ異なるタイミングで予測の種類を変えながら動き予測を行なうＭ個（Ｍは２以上の整数）の符号化器と，
前記Ｍ個の符号化器から得られる動きベクトルを用いて，複数の参照画像を用いた動き補償を伴う符号化を行なう符号化手段とを備える
ことを特徴とする映像符号化装置。
【請求項７】
複数の参照画像を用いた動き補償を伴う符号化を行なう映像符号化装置であって，
同一の入力映像に対し，それぞれ異なるタイミングで，Ｍ（Ｍは２以上の整数）フレームに１フレームの間隔でＭフレーム前のフレームを参照フレームとする片方向予測を行ない，２つの片方向予測フレームにはさまれるＭ−１枚のフレームについてはその２つのフレームを参照フレームとする両方向予測を行なうＭ個の符号化器と，
前記Ｍ個の符号化器から各動き補償単位ごとに得られる最大Ｍ本の前方向予測動きベクトルと最大Ｍ−１本の後方向予測動きベクトルを用いて，前方向予測参照フレームを最大Ｍ枚，後方向予測参照フレームを最大Ｍ−１枚用いた動き補償を行なう符号化手段と備える
ことを特徴とする映像符号化装置。
【請求項８】
請求項６または請求項７記載の映像符号化装置において，
前記符号化手段は，前記Ｍ個の符号化器から得られる動きベクトルの近傍に関して再度動きベクトル探索を行ない，動き補償に用いる動きベクトルを決定する手段を備える
ことを特徴とする映像符号化装置。
【請求項９】
請求項６または請求項７記載の映像符号化装置において，
前記符号化手段は，前記Ｍ個の符号化器から動きベクトルの情報とともに，それぞれの動きベクトル探索時に得られた予測誤差値の情報を得て，その予測誤差値の大きさに基づいて動き補償に用いる動きベクトルを決定する手段を備える
ことを特徴とする映像符号化装置。
【請求項１０】
請求項６または請求項７記載の映像符号化装置において，前記符号化手段は，前記Ｍ個の符号化器が生成するビットストリームから，動きベクトルの情報，それぞれの動きベクトルに対応する予測誤差を符号化するのに用いた符号量，およびその符号化に用いた量子化ステップ値の情報を得て，それらの情報を用いて動き補償に用いる動きベクトルを決定する手段を備える
ことを特徴とする映像符号化装置。
【請求項１１】
請求項１から請求項５までのいずれか１項に記載された映像符号化方法を，コンピュータに実行させるための映像符号化プログラム。
【請求項１２】
請求項１から請求項５までのいずれか１項に記載された映像符号化方法を，コンピュータに実行させるためのプログラムを記録した映像符号化プログラムの記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は，符号化器前段で複数の符号化器を用いて動き予測を行ない，その結果を利用して複数の参照画像を用いた動き補償を行なう映像符号化方法，映像符号化装置，映像符号化プログラムおよび映像符号化プログラムの記録媒体に関するものである。
【０００２】
【従来の技術】
動画像符号化の国際標準であるＭＰＥＧ−１，ＭＰＥＧ−２などでは，ピクチャごとにＩピクチャ，Ｐピクチャ，Ｂピクチャなどのピクチャタイプが定義されている。Ｉピクチャは，イントラ符号化を行なう。Ｐピクチャは，最も近い過去のＩピクチャまたはＰピクチャを参照フレームとする片方向予測による動き補償を行なう。Ｂピクチャは，最も近い過去のＰピクチャを参照フレームとする前方向予測と，最も近い未来のＰピクチャを参照フレームとする後方向予測とを組み合わせた両方向予測による動き補償を行なう。
【０００３】
ここで，ピクチャとは，ＭＰＥＧ−１ではフレームに対応しており，ＭＰＥＧ−２ではフレームまたはフィールドに対応した符号化単位である。ピクチャがフレームに対応しているときには，ＩピクチャをＩフレーム，ＰピクチャをＰフレーム，ＢピクチャをＢフレームとも呼ぶ。また，Ｐフレームを片方向予測フレーム，Ｂフレームを両方向予測フレームとも呼ぶ。
【０００４】
Ｉフレーム，Ｐフレーム，Ｂフレームを用いて符号化を行なう符号化器は，ハードウェアおよびソフトウェア実装上の制約などから，ＰフレームおよびＩフレームの間隔（以下，この間隔をＭとする）を３フレーム程度に固定して用いられることが多い。また，このような動き予測を行なうハードウェアは比較的安価であり，多く普及している。
【０００５】
一方，最近の国際標準でもあるＨ．２６４などでは，前方向および後方向予測において，２フレーム以上の参照フレームの中から各動き補償単位ごとに最も効率のよいものを選択して動き補償を行なうことができる。これにより，選択可能な参照画像を増やすことでより一致度の高い予測画像を生成し，符号化効率を高めることができる。
【０００６】
このような符号化方法を実現する符号化器としては，主にソフトウェアベースの非リアルタイムの符号化が可能なものが存在する。
【０００７】
なお，ＭＰＥＧ−１の符号化に関する参考文献として，下記の非特許文献１がある。また，ＭＰＥＧ−２の符号化に関する参考文献として，下記の非特許文献２がある。Ｈ．２６４の符号化に関する参考文献として，下記の非特許文献３がある。
【０００８】
【非特許文献１】
ＩＳＯ／ＩＥＣ  １１１７２，  ”Ｉｎｆｏｒｍａｔｉｏｎ  Ｔｅｃｈｎｏｌｏｇｙ  −  Ｃｏｄｉｎｇ  ｏｆ  Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  ａｎｄ  Ａｓｓｏｃｉａｔｅｄ  Ａｕｄｉｏ  ｆｏｒ  Ｄｉｇｉｔａｌ  Ｓｔｏｒａｇｅ  Ｍｅｄｉａ  ａｔ  Ｕｐ  ｔｏ  ａｂｏｕｔ  １．５Ｍｂｉｔ／ｓ”（１９９２）
【非特許文献２】
ＩＴＵ−Ｔ  Ｒｅｃ．Ｈ．２６２／ＩＳＯ／ＩＥＣ  １３８１８−２  ＭＰＥＧ−２  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｓｔａｎｄａｒｄ：  Ｖｉｄｅｏ  ｐａｒｔ
【非特許文献３】
ＩＴＵ−Ｔ  Ｒｅｃ．Ｈ．２６４／ＩＳＯ／ＩＥＣ  １１４９６−１０，  ”Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ”，  Ｆｉｎａｌ  Ｃｏｍｍｉｔｔｅｅ  Ｄｒａｆｔ，  Ｄｏｃｕｍｅｎｔ  ＪＶＴ−Ｅ０２２，  Ｓｅｐｔｅｍｂｅｒ  ２００２
【０００９】
【発明が解決しようとする課題】
一方，ＭＰＥＧ−１，ＭＰＥＧ−２などの従来の符号化方法よりも多くの参照画像を利用した動き補償を用いる符号化器は，その動きベクトル探索により大きな計算量を必要とするため，リアルタイムでの符号化を実現させるためには，ハードウェアおよびソフトウェアの実装が従来の符号化方法に比べ困難でありコストが高くなるという問題があった。
【００１０】
本発明は上記問題点の解決を図り，従来よりあるＭＰＥＧ−１，ＭＰＥＧ−２などの符号化器を用いて複数参照画像を用いた動き補償を伴う符号化器を安価に効率よく実現することができるようにすることを目的とする。
【００１１】
【課題を解決するための手段】
本発明は，上記課題を解決するため，ＭＰＥＧ−１，ＭＰＥＧ−２などの従来の動画像符号化標準で行なわれる一つの前方向参照フレームを利用した前方向予測および一つの後方向参照フレームを利用した後方向予測を行なう符号化器を複数個用い，同じ入力映像に対してそれぞれの符号化器のピクチャタイプのタイミングが異なるように動作させることにより，複数の前方向参照フレームを利用した前方向予測および複数の後方向参照フレームを利用した後方向予測を行なうのに必要な動きベクトル情報を得て，複数参照フレームを用いた動き補償を伴う符号化を実現する。
【００１２】
同一の入力動画像に対してＭ個の前段の符号化器が，Ｍフレームに１枚の間隔でＭフレーム前のフレームを参照フレームとする片方向予測を行ない，２つの片方向予測フレームにはさまれるフレームは，その２つのフレームを参照フレームとする両方向予測を行ない，かつ片方向予測は，各符号化器で全て異なったタイミングで行なう。
【００１３】
これらＭ個の符号化器から各フレームの動き補償単位ごとに得られる最大Ｍ本の前方向予測動きベクトルと最大Ｍ−１本の後方向予測動きベクトルの情報をもとに，符号化器は前方向予測参照フレームを最大Ｍ枚，後方向予測参照フレームを最大Ｍ−１枚用いた動き補償を行なう。
【００１４】
以上の符号化処理は，コンピュータとソフトウェアプログラムとを用いて実現することもでき，そのプログラムをコンピュータ読み取り可能な記録媒体に記録して提供することも，ネットワークを通して提供することも可能である。
【００１５】
これにより，従来よりあるＭＰＥＧ−１，ＭＰＥＧ−２などの符号化器を用いて，複数参照画像を用いた動き補償を伴う符号化装置を，安価に効率よく実現することができる。
【００１６】
【発明の実施の形態】
〔実施の形態１〕
図１は，本発明の実施の形態における映像符号化装置の構成例（１）を示す図である。映像符号化装置１０は，３つの前処理エンコーダ１１（前処理エンコーダＡ１１ａ，前処理エンコーダＢ１１ｂ，前処理エンコーダＣ１１ｃ）と，メインエンコーダ１３と，遅延バッファ１５とを備える。遅延バッファ１５は，入力画像を一時的に格納し保持する。
【００１７】
また，３つの前処理エンコーダ１１はそれぞれ動きベクトル探索部１２（動きベクトル探索部Ａ１２ａ，動きベクトル探索部Ｂ１２ｂ，動きベクトル探索部Ｃ１２ｃ）を備え，メインエンコーダ１３は動きベクトル決定部１４を備える。
【００１８】
映像符号化装置１０における前処理エンコーダＡ１１ａ，前処理エンコーダＢ１１ｂ，前処理エンコーダＣ１１ｃは，ＭＰＥＧ−２のエンコーダである。入力映像は，これら３つの前処理エンコーダ１１に入力され，それぞれの前処理エンコーダ１１において，Ｍ＝３で符号化が行なわれる。
【００１９】
ここで，Ｍ＝３とはＰフレームの間隔が３フレームであり，ＰフレームとＰフレームの間の２フレームがＢフレームであることを意味する。また，Ｐフレーム数枚に１回の割合で，Ｐフレームの代わりにＩフレームが挿入されてもよいが，動き探索はＰフレームの動き探索と同じように行なうものとする。
【００２０】
前処理エンコーダＡ１１ａ，前処理エンコーダＢ１１ｂ，前処理エンコーダＣ１１ｃは，同じ入力映像に対して，互いにピクチャタイプが異なるように符号化を行なう。以下，各前処理エンコーダ１１による符号化について，図を用いて詳細に説明する。
【００２１】
図２は，各前処理エンコーダ１１による符号化を説明する図である。図２において，フレーム番号ｎのフレームが，現在符号化対象となっているフレームである。
【００２２】
前処理エンコーダＡ１１ａは，フレーム番号ｎ＋３ｘ（ｎ，ｘは整数）のフレームをＰフレームまたはＩフレームとして入力画像の符号化を実行する。図２（Ａ）では，フレーム番号ｎ−３のフレームを参照フレームとしてフレーム番号ｎのフレームを符号化している。動きベクトル探索部Ａ１２ａにより，各マクロブロックごとにフレーム番号ｎの現在符号化対象のフレームを起点とし，フレーム番号ｎ−３のフレームを終点とする動きベクトルを得ることができる。
【００２３】
前処理エンコーダＢ１１ｂは，フレーム番号ｎ＋３ｘ＋１をＰフレームまたはＩフレームとして入力映像の符号化を実行する。図２（Ｂ）では，フレーム番号ｎ−２およびｎ＋１のフレームを参照フレームとしてフレーム番号ｎのフレームを符号化している。動きベクトル探索部Ｂ１２ｂにより，各マクロブロックごとにフレーム番号ｎのフレームを起点とし，フレーム番号ｎ−２のフレームを終点とする動きベクトルと，フレーム番号ｎ＋１のフレームを終点とする動きベクトルとを得ることができる。
【００２４】
前処理エンコーダＣ１１ｃは，フレーム番号ｎ＋３ｘ＋２をＰフレームまたはＩフレームとして入力画像の符号化を実行する。図２（Ｃ）では，フレーム番号ｎ−１およびｎ＋２のフレームを参照フレームとしてフレーム番号ｎのフレームを符号化している。動きベクトル探索部Ｃ１２ｃにより，各マクロブロックごとにフレーム番号ｎのフレームを起点とし，フレーム番号ｎ−１のフレームを終点とする動きベクトルと，フレーム番号ｎ＋２のフレームを終点とする動きベクトルとを得ることができる。
【００２５】
このように，３つの前処理エンコーダ１１によって，各フレームの各マクロブロックごとに，現在符号化対象となっているフレーム番号ｎのフレームを起点とし，フレーム番号ｎ−３，フレーム番号ｎ−２，フレーム番号ｎ−１，フレーム番号ｎ＋１，フレーム番号ｎ＋２のフレームを終点とする動きベクトルを得ることができる。
【００２６】
ここで，マクロブロックとは，ＭＰＥＧ−１，ＭＰＥＧ−２において動き補償の単位となっている１６画素四方の矩形領域を表す。また，フレームピクチャにおけるフィールド予測などの場合には，各マクロブロックごとに１つの参照フレームに対して２つのベクトルを用いるが，本実施の形態１では，フレーム予測だけを行なっているものとする。
【００２７】
また，動きベクトルは，局所復号画像に対して，０．５  画素精度で探索を行なった結果が得られるものとする。また，各前処理エンコーダ１１では，探索の結果得られた動きベクトルと予測誤差値などをもとに，マクロブロックごとにイントラ符号化，片方向予測，両方向予測などのモード判定を行なうため，必ずしもすべての探索結果の動きベクトルが用いられるわけではないが，本実施の形態１では，探索の結果得られたすべての動きベクトルを得られるものとする。
【００２８】
得られた動きベクトル情報とそれに対応する予測誤差値は，各前処理エンコーダ１１の各動きベクトル探索部１２から，メインエンコーダ１３の動きベクトル決定部１４に伝達される。
【００２９】
メインエンコーダ１３の動きベクトル決定部１４において，得られた動きベクトル情報の中から，現在のフレームから参照可能なフレームを参照フレームとする動きベクトル情報だけを選び出す。
【００３０】
各ピクチャタイプにおける参照可能なフレームの例を図３〜図５に示す。図３は，複数参照フレームを用いた動き補償において，Ｍ＝１の場合に参照可能なフレームの例を示している。図３では，メインエンコーダ１３はＭ＝１で動作しており，ピクチャタイプはＰＰＰＰ・・・の順となる。また，図３において，フレーム番号ｎのフレーム（処理順がｋのフレーム）が，現在符号化対象となっているフレームである。
【００３１】
図３に示すように，フレーム番号ｎのフレームの前に符号化され，フレーム番号ｎのフレームが参照可能なフレームは，フレーム番号ｎ−３（処理順ｋ−３），フレーム番号ｎ−２（処理順ｋ−２），フレーム番号ｎ−１（処理順ｋ−１）のフレームである。フレーム番号ｎのフレームを起点とし，フレーム番号ｎ−３，フレーム番号ｎ−２，フレーム番号ｎ−１のフレームを終点とする動きベクトルを選び出す。
【００３２】
図４は，Ｍ＝２の場合に参照可能なフレームの例を示している。図４では，メインエンコーダ１３はＭ＝２で動作しており，ピクチャタイプはＰＢＰＢ・・・の順となる。また，図４において，フレーム番号ｎのフレーム（処理順がｋのフレーム）が，現在符号化対象となっているフレームである。図４（Ａ）は，フレーム番号ｎのフレームがＰピクチャである場合の例であり，図４（Ｂ）は，フレーム番号ｎのフレームがＢピクチャである場合の例である。
【００３３】
図４（Ａ）に示すように，フレーム番号ｎのフレームがＰピクチャである場合に，フレーム番号ｎのフレームの前に符号化され，フレーム番号ｎのフレームが参照可能なフレームは，フレーム番号ｎ−３（処理順ｋ−１），フレーム番号ｎ−２（処理順ｋ−２）のフレームである。フレーム番号ｎのフレームを起点とし，フレーム番号ｎ−３，フレーム番号ｎ−２のフレームを終点とする動きベクトルを選び出す。
【００３４】
図４（Ｂ）に示すように，フレーム番号ｎのフレームがＢピクチャである場合に，フレーム番号ｎのフレームの前に符号化され，フレーム番号ｎのフレームが参照可能なフレームは，フレーム番号ｎ−３（処理順ｋ−５），フレーム番号ｎ−２（処理順ｋ−２），フレーム番号ｎ−１（処理順ｋ−３），フレーム番号ｎ＋１（処理順ｋ−１）のフレームである。フレーム番号ｎのフレームを起点とし，フレーム番号ｎ−３，フレーム番号ｎ−２，フレーム番号ｎ−１，フレーム番号ｎ＋１のフレームを終点とする動きベクトルを選び出す。
【００３５】
図５は，Ｍ＝３の場合に参照可能なフレームの例を示している。図５では，メインエンコーダ１３はＭ＝３で動作しており，ピクチャタイプはＰＢＢＰＢＢ・・・の順となる。また，図５において，フレーム番号ｎのフレーム（処理順がｋのフレーム）が，現在符号化対象となっているフレームである。図５（Ａ）は，フレーム番号ｎのフレームがＰピクチャである場合の例であり，図５（Ｂ）は，フレーム番号ｎのフレームがＰピクチャ直後のＢピクチャ（以下，Ｂ１ピクチャという）である場合の例であり，図５（Ｃ）は，フレーム番号ｎのフレームがＰピクチャの２フレーム後のＢピクチャ（以下，Ｂ２ピクチャという）である場合の例である。
【００３６】
図５（Ａ）に示すように，フレーム番号ｎのフレームがＰピクチャである場合に，フレーム番号ｎのフレームの前に符号化され，フレーム番号ｎのフレームが参照可能なフレームは，フレーム番号ｎ−３（処理順ｋ−３）のフレームである。フレーム番号ｎのフレームを起点とし，フレーム番号ｎ−３のフレームを終点とする動きベクトルを選び出す。
【００３７】
図５（Ｂ）に示すように，フレーム番号ｎのフレームがＢ１ピクチャである場合に，フレーム番号ｎのフレームの前に符号化され，フレーム番号ｎのフレームが参照可能なフレームは，フレーム番号ｎ−３（処理順ｋ−３），フレーム番号ｎ−２（処理順ｋ−２），フレーム番号ｎ−１（処理順ｋ−４），フレーム番号ｎ＋２（処理順ｋ−１）のフレームである。フレーム番号ｎのフレームを起点とし，フレーム番号ｎ−３，フレーム番号ｎ−２，フレーム番号ｎ−１，フレーム番号ｎ＋２のフレームを終点とする動きベクトルを選び出す。
【００３８】
図５（Ｃ）に示すように，フレーム番号ｎのフレームがＢ２ピクチャである場合に，フレーム番号ｎのフレームの前に符号化され，フレーム番号ｎのフレームが参照可能なフレームは，フレーム番号ｎ−３（処理順ｋ−３），フレーム番号ｎ−２（処理順ｋ−５），フレーム番号ｎ−１（処理順ｋ−１），フレーム番号ｎ＋１（処理順ｋ−２）のフレームである。フレーム番号ｎのフレームを起点とし，フレーム番号ｎ−３，フレーム番号ｎ−２，フレーム番号ｎ−１，フレーム番号ｎ＋１のフレームを終点とする動きベクトルを選び出す。
【００３９】
動きベクトル決定部１４は，以上のように選び出された動きベクトル情報の中から最も効率のよい動きベクトルを選択する。
【００４０】
このとき，動きベクトル決定部１４は，各マクロブロックごとに片方向予測に関しては，選び出された動きベクトル情報の中から，予測誤差値および動きベクトルの符号化に必要な符号量などから判定して最も効率のよい動きベクトルを選択する。この判定方法は一般の動きベクトルの予測モード判定方式に基づくものであり，本発明の範囲ではないが，一例としては，以下の式（１）により求められる評価関数の値が最も小さくなる動きベクトルを選択する。
【００４１】
2004336522.tif 000003
また，両方向予測に関しては，選ばれた動きベクトル情報の中から，最も効率のよい動きベクトル上位２本を選択する。
【００４２】
メインエンコーダ１３は，このようにして決定された動きベクトルを用いて，複数の参照フレームを用いる動き補償を伴う符号化を行ない，ビットストリームを出力する。
【００４３】
以上のように，ＭＰＥＧ−２などの符号化器を複数用いて，複数参照画像を用いた動き補償を伴う符号化装置を安価に実現することができる。また，本実施の形態１では，動きベクトルの探索をメインエンコーダ１３で行なわないため，メインエンコーダ１３における計算処理量を大幅に削減することができる。
【００４４】
〔実施の形態２〕
本実施の形態２における映像符号化装置の構成は，図１に示す実施の形態１の映像符号化装置１０と同じ構成である。
【００４５】
映像符号化装置１０における前処理エンコーダＡ１１ａ，前処理エンコーダＢ１１ｂ，前処理エンコーダＣ１１ｃはＭＰＥＧ−２のエンコーダであるが，必ずしもエンコーダのすべての機能が必要なわけではなく，原画像を対象とした動きベクトル探索機能（動きベクトル探索部１２）が動作すればよい。入力映像は，これら３つの前処理エンコーダ１１に入力され，それぞれの前処理エンコーダ１１において，Ｍ＝３で符号化が行なわれる。
【００４６】
ここで，Ｍ＝３とはＰフレームの間隔が３フレームであり，ＰフレームとＰフレームの間の２フレームがＢフレームであることを意味する。また，Ｐフレーム数枚に１回の割合で，Ｐフレームの代わりにＩフレームが挿入されてもよいが，動き探索はＰフレームの動き探索と同じように行なうものとする。
【００４７】
前処理エンコーダＡ１１ａ，前処理エンコーダＢ１１ｂ，前処理エンコーダＣ１１ｃは，前述の実施の形態１と同様に，同じ入力映像に対して，互いにピクチャタイプが異なるように符号化を行なう。
【００４８】
すなわち，図２に示すように，前処理エンコーダＡ１１ａがフレーム番号ｎ＋３ｘ（ｎ，ｘは整数）のフレームをＰフレームまたはＩフレームとしてベクトル動き探索を行ない，前処理エンコーダＢ１１ｂがフレーム番号ｎ＋３ｘ＋１のフレームをＰフレームまたはＩフレームとしてベクトル動き探索を行ない，前処理エンコーダＣ１１ｃがフレーム番号ｎ＋３ｘ＋２のフレームをＰフレームまたはＩフレームとしてベクトル動き探索を行なう。
【００４９】
このように，３つの前処理エンコーダ１１によって，各フレームの各マクロブロックごとに，現在符号化対象となっているフレーム番号ｎのフレームを起点とし，フレーム番号ｎ−３，フレーム番号ｎ−２，フレーム番号ｎ−１，フレーム番号ｎ＋１，フレーム番号ｎ＋２のフレームを終点とする動きベクトルを得ることができる。
【００５０】
ここで，マクロブロックとはＭＰＥＧ−１，ＭＰＥＧ−２において，１６画素四方の矩形領域を表す。フレームピクチャにおいてフレーム予測が行なわれた場合には，このマクロブロック単位で動き補償が行なわれる。また，フレームピクチャにおいてフィールド予測を行なわれた場合には，各マクロブロックを２つのフィールドに分け，水平１６画素×垂直８画素を単位として，それぞれのフィールドの動き補償を行なう。
【００５１】
また，本実施の形態２では，各前処理エンコーダ１１から，原画像に対して１画素精度で探索を行なった結果の動きベクトル情報が得られるものとする。また，各前処理エンコーダ１１では，探索の結果得られた動きベクトルと予測誤差値などをもとに，マクロブロックごとにイントラ符号化，片方向予測，両方向予測などのモード判定を行なうため，必ずしもすべての探索結果の動きベクトルが用いられるわけではないが，本実施の形態２では，探索の結果得られたすべての動きベクトルを得られるものとする。
【００５２】
メインエンコーダ１３の動きベクトル決定部１４において，前述の実施の形態１と同様に，得られた動きベクトル情報の中から，現在のフレームから参照可能なフレームを参照フレームとする動きベクトル情報だけを選び出す。
【００５３】
メインエンコーダ１３がＭ＝１で動作する場合には，図３に示すように，フレーム番号ｎのフレームを起点とし，フレーム番号ｎ−３，フレーム番号ｎ−２，フレーム番号ｎ−１のフレームを終点とする動きベクトルを選び出す。
【００５４】
メインエンコーダ１３がＭ＝２で動作する場合には，Ｐピクチャであれば，図４（Ａ）に示すように，フレーム番号ｎのフレームを起点とし，フレーム番号ｎ−３，フレーム番号ｎ−２を終点とする動きベクトルを選び出す。また，Ｂピクチャであれば，図４（Ｂ）に示すように，フレーム番号ｎのフレームを起点とし，フレーム番号ｎ−３，フレーム番号ｎ−２，フレーム番号ｎ−１，フレーム番号ｎ＋１のフレームを終点とする動きベクトルを選び出す。
【００５５】
メインエンコーダ１３がＭ＝３で動作する場合には，Ｐピクチャであれば，図５（Ａ）に示すように，フレーム番号ｎのフレームを起点とし，フレーム番号ｎ−３を終点とする動きベクトルを選び出す。また，Ｂ１ピクチャであれば，フレーム番号ｎのフレームを起点とし，フレーム番号ｎ−３，フレーム番号ｎ−２，フレーム番号ｎ−１，フレーム番号ｎ＋２のフレームを終点とする動きベクトルを選び出す。また，Ｂ２ピクチャであれば，フレーム番号ｎのフレームを起点とし，フレーム番号ｎ−３，フレーム番号ｎ−２，フレーム番号ｎ−１，フレーム番号ｎ＋１のフレームを終点とする動きベクトルを選び出す。
【００５６】
動きベクトル決定部１４は，各マクロブロックごとに選び出された動きベクトルについてその周辺を探索し，その予測誤差値を求める。本実施の形態２の場合には，局所復号画像に対して，０．２５画素精度の動きベクトルを求める。例えば，選ばれた動きベクトルの成分が（ｍｖｘ，ｍｖｙ）＝（ａ×０．２５，ｂ×０．２５）（ａ，ｂは整数）であるとすると，ｍｖｘ＝（ａ−２）×０．２５〜（ａ＋２）×０．２５，ｍｖｙ＝（ｂ−２）×０．２５〜（ｂ＋２）×０．２５の範囲について動きベクトルの探索を実行するものとする。
【００５７】
また，フィールド予測などにおいて，各前処理エンコーダ１１の動き補償の単位が１６画素×８画素などであり，かつ，メインエンコーダ１３の動き補償の単位の大きさを１６画素×１６画素とする場合には，一つの動き補償単位に対して２つの動きベクトル情報が対応しているため，対応する２つのベクトルに関して同様に動きベクトル探索をするものとする。
【００５８】
メインエンコーダ１３は，このようにして決定された動きベクトルを用いて，複数の参照フレームを用いる動き補償を伴う符号化を行ない，ビットストリームを出力する。
【００５９】
以上のように，ＭＰＥＧ−２などの符号化器を複数用いて，複数参照画像を用いた動き補償を伴う符号化装置を安価に実現することができる。
【００６０】
また，本実施の形態２では，メインエンコーダ１３において動きベクトルの再探索を行なうが，その探索範囲が狭いため，動きベクトルの再探索は比較的計算量が少なくてすむ。そのため，再探索を行なっても従来の複数参照画像を用いる符号化器に比べて大幅に計算量が少ない。しかも，局所画像を用いた高精度のベクトル探索を行なうことができ，符号化効率の面で優れた符号化を行なうことができる。
【００６１】
〔実施の形態３〕
図６は，本発明の実施の形態における映像符号化装置の構成例（２）を示す図である。映像符号化装置２０は，３つの前処理エンコーダ２１（前処理エンコーダＡ２１ａ，前処理エンコーダＢ２１ｂ，前処理エンコーダＣ２１ｃ），３つの動きベクトル情報抽出部２２（動きベクトル情報抽出部Ａ２２ａ，動きベクトル情報抽出部Ｂ２２ｂ，動きベクトル情報抽出部Ｃ２２ｃ），メインエンコーダ２３，遅延バッファ２５を備える。また，メインエンコーダ２３は，動きベクトル決定部２４を備える。遅延バッファ２５は，入力画像を一時的に格納し保持する。
【００６２】
映像符号化装置２０における前処理エンコーダＡ２１ａ，前処理エンコーダＢ２１ｂ，前処理エンコーダＣ２１ｃは，ＭＰＥＧ−２のエンコーダである。入力映像は，これら３つの前処理エンコーダ２１に入力され，それぞれの前処理エンコーダ２１において，Ｍ＝３で符号化が行なわれる。
【００６３】
ここで，Ｍ＝３とはＰフレームの間隔が３フレームであり，ＰフレームとＰフレームの間の２フレームがＢフレームであることを意味する。また，Ｐフレーム数枚に１回の割合で，Ｐフレームの代わりにＩフレームが挿入されてもよいが，動き探索はＰフレームの動き探索と同じように行なうものとする。
【００６４】
前処理エンコーダＡ２１ａ，前処理エンコーダＢ２１ｂ，前処理エンコーダＣ２１ｃは，同じ入力映像に対して互いにピクチャタイプが異なるように符号化を行なう。
【００６５】
すなわち，図２に示すように，前処理エンコーダＡ２１ａがフレーム番号ｎ＋３ｘ（ｎ，ｘは整数）のフレームをＰフレームまたはＩフレームとしてベクトル動き探索を行ない，前処理エンコーダＢ２１ｂがフレーム番号ｎ＋３ｘ＋１のフレームをＰフレームまたはＩフレームとしてベクトル動き探索を行ない，前処理エンコーダＣ２１ｃがフレーム番号ｎ＋３ｘ＋２のフレームをＰフレームまたはＩフレームとしてベクトル動き探索を行なう。
【００６６】
前処理エンコーダＡ２１ａ，前処理エンコーダＢ２１ｂ，前処理エンコーダＣ２１ｃから，それぞれビットストリームＡ，ビットストリームＢ，ビットストリームＣが出力され，それぞれ動きベクトル情報抽出部Ａ２２ａ，動きベクトル情報抽出部Ｂ２２ｂ，動きベクトル情報抽出部Ｃ２２ｃに入力される。
【００６７】
各動きベクトル情報抽出部２２は，それぞれ入力されたビットストリームから，各フレームの各マクロブロックごとに，現在符号化対象となっているフレーム番号ｎのフレームを起点とし，フレーム番号ｎ−３，フレーム番号ｎ−２，フレーム番号ｎ−１，フレーム番号ｎ＋１，フレーム番号ｎ＋２のフレームを終点とする動きベクトルと，その予測誤差を符号化した際のＤＣＴ符号量（予測誤差符号量）と，その予測誤差を符号化した際の量子化パラメータ（量子化ステップ値）とを抽出し，メインエンコーダ２３の動きベクトル決定部２４に伝達する。
【００６８】
ここで，マクロブロックとは，ＭＰＥＧ−１，ＭＰＥＧ−２において，動き補償の単位となっている１６画素四方の矩形領域を表す。また，フレームピクチャにおけるフィールド予測などの場合には，各マクロブロックごとに１つの参照フレームに対して２つのベクトルを用いるが，本実施の形態３では，フレーム予測だけを行なっているものとする。また，動きベクトルは，局所復号画像に対して０．５  画素精度で探索を行なった結果が得られるものとする。
【００６９】
メインエンコーダ２３の動きベクトル決定部２４において，得られた動きベクトル情報の中から，現在のフレームから参照可能なフレームを参照フレームとする動きベクトル情報だけを選び出す。
【００７０】
メインエンコーダ２３がＭ＝１で動作する場合には，図３に示すように，フレーム番号ｎのフレームを起点とし，フレーム番号ｎ−３，フレーム番号ｎ−２，フレーム番号ｎ−１のフレームを終点とする動きベクトルを選び出す。
【００７１】
メインエンコーダ２３がＭ＝２で動作する場合には，Ｐピクチャであれば，図４（Ａ）に示すように，フレーム番号ｎのフレームを起点とし，フレーム番号ｎ−３，フレーム番号ｎ−２を終点とする動きベクトルを選び出す。また，Ｂピクチャであれば，図４（Ｂ）に示すように，フレーム番号ｎのフレームを起点とし，フレーム番号ｎ−３，フレーム番号ｎ−２，フレーム番号ｎ−１，フレーム番号ｎ＋１のフレームを終点とする動きベクトルを選び出す。
【００７２】
メインエンコーダ２３がＭ＝３で動作する場合には，Ｐピクチャであれば，図５（Ａ）に示すように，フレーム番号ｎのフレームを起点とし，フレーム番号ｎ−３を終点とする動きベクトルを選び出す。また，Ｂ１ピクチャであれば，フレーム番号ｎのフレームを起点とし，フレーム番号ｎ−３，フレーム番号ｎ−２，フレーム番号ｎ−１，フレーム番号ｎ＋２のフレームを終点とする動きベクトルを選び出す。また，Ｂ２ピクチャであれば，フレーム番号ｎのフレームを起点とし，フレーム番号ｎ−３，フレーム番号ｎ−２，フレーム番号ｎ−１，フレーム番号ｎ＋１のフレームを終点とする動きベクトルを選び出す。
【００７３】
各マクロブロックごとに片方向予測に関しては，選び出された動きベクトル情報の中から，予測誤差符号量，量子化パラメータおよび動きベクトルの符号化に必要な符号量などから判定して最も効率のよい動きベクトルを選択する。この判定方法は，本発明の範囲ではないが，一例としては，以下の式（２）により求められる評価関数の値が最も小さくなる動きベクトルを選択する。
【００７４】
2004336522.tif 000004
また，両方向予測に関しては，選ばれた動きベクトル情報の中から，最も効率のよい動きベクトル上位２本を選択する。
【００７５】
また，各動きベクトル情報抽出部２２から得られた動きベクトル情報が両方向予測のベクトルであり，その片方のベクトルがメインエンコーダ２３において参照可能でない参照フレームを用いている場合には，残りの片方のベクトルについて，実際より予測効率が低下することを見込んで，それに対応する予測誤差符号量を定数倍してから評価する。
【００７６】
メインエンコーダ２３は，このようにして決定された動きベクトルを用いて，複数の参照フレームを用いる動き補償を伴う符号化を行ない，ビットストリームを出力する。
【００７７】
以上のように，ＭＰＥＧ−２などの符号化器を複数用いて，複数参照画像を用いた動き補償を伴う符号化装置を安価に実現することができる。
【００７８】
また，本実施の形態３では，各前処理エンコーダ２１の内部情報である動きベクトル情報や予測誤差値などを外部に出力する必要がないため，前処理エンコーダ２１として通常のエンコーダをほとんどそのまま使用できる長所がある。また，動きベクトルの探索をメインエンコーダ２３では行なわないため，メインエンコーダにおける計算処理量を大幅に削減することができる。
【００７９】
以下では，前述した各実施の形態１〜３の処理の流れを，図７〜図１６に従って説明する。
【００８０】
〔実施の形態１の処理フロー〕
実施の形態１では，まず図７のステップＳ１ａ，Ｓ１ｂ，Ｓ１ｃにおいて，それぞれ図１に示す前処理エンコーダＡ１１ａによる符号化処理（図８参照），前処理エンコーダＢ１１ｂによる符号化処理（図９参照），前処理エンコーダＣ１１ｃによる符号化処理（図１０参照）を行い，ステップＳ２ａ，Ｓ２ｂ，Ｓ２ｃにおいて，各前処理エンコーダＡ１１ａの動きベクトル探索部Ａ１２ａ，前処理エンコーダＢ１１ｂの動きベクトル探索部Ｂ１２ｂ，前処理エンコーダＣ１１ｃの動きベクトル探索部Ｃ１２ｃでそれぞれ探索したフレームａ，ｂ，ｃの動きベクトルを記憶する。
【００８１】
次に，ステップＳ３において，メインエンコーダ１３で符号化するフレーム番号ｎ（ただし，ｎはａ，ｂ，ｃより大）を決定し，ステップＳ４〜Ｓ７でフレーム番号ｎのフレームの全マクロブロックについての符号化を実行する。
【００８２】
そのため，まず，ステップＳ４では，メインエンコーダ１３で次に符号化するマクロブロックを順次決定する。ステップＳ５では，ステップＳ２ａ〜Ｓ２ｃで記憶した動きベクトルの読み出し処理（図１１参照）を実行し，ステップＳ６では，読み出した動きベクトルを利用して，マクロブロック符号化処理（図１２参照）を実行する。ステップＳ７の判定によりフレーム番号ｎのフレームの全マクロブロックについての符号化終了を検出するまで，ステップＳ４〜Ｓ６を繰り返し，全マクロブロックの符号化が終了したならばステップＳ８へ進む。
【００８３】
ステップＳ８では，全フレームの符号化が終了したかどうかを判定し，全フレームの符号化が終了するまで上記処理を繰り返す。
【００８４】
図８は，前処理エンコーダＡ１１ａによる符号化処理（図７のステップＳ１ａ）のフローチャートである。ステップＳ１０では，前処理エンコーダＡ１１ａが次に符号化を行なう画像フレーム番号ａを決定する。ステップＳ１１では，ａが３の倍数であるかどうかを判定する。ここで，「ｘ％ｙ」はｘをｙで割ったときの剰余を表す（以下，同様）。ａが３の倍数である場合，前処理エンコーダＡ１１ａは，ステップＳ１２を実行し，フレームａ−３を参照フレームとし，フレームａをＩフレームまたはＰフレームとして動き探索および符号化を行なう。
【００８５】
フレーム番号ａを３で割った剰余が１の場合（ステップＳ１３），前処理エンコーダＡ１１ａは，ステップＳ１４を実行し，フレームａ−２，フレームａ＋１を参照フレームとし，フレームａをＢフレームとして動き探索および符号化を行なう。
【００８６】
また，フレーム番号ａを３で割った剰余が２の場合（ステップＳ１５（判定処理は省略可能）），前処理エンコーダＡ１１ａは，ステップＳ１６を実行し，フレームａ−１，フレームａ＋２を参照フレームとし，フレームａをＢフレームとして動き探索および符号化を行なう。
【００８７】
図９は，前処理エンコーダＢ１１ｂによる符号化処理（図７のステップＳ１ｂ）のフローチャートである。基本的な処理内容は，前処理エンコーダＡ１１ａと同様である。ただし，符号化するピクチャタイプのタイミングが異なる。ステップＳ２０では，前処理エンコーダＢ１１ｂが次に符号化を行なう画像フレーム番号ｂを決定する。ステップＳ２１では，フレーム番号ｂを３で割った剰余が１であるかどうかを判定する。剰余が１である場合，前処理エンコーダＢ１１ｂは，ステップＳ２２を実行し，フレームｂ−３を参照フレームとし，フレームｂをＩフレームまたはＰフレームとして動き探索および符号化を行なう。
【００８８】
フレーム番号ｂを３で割った剰余が２の場合（ステップＳ２３），前処理エンコーダＢ１１ｂは，ステップＳ２４を実行し，フレームｂ−２，フレームｂ＋１を参照フレームとし，フレームｂをＢフレームとして動き探索および符号化を行なう。
【００８９】
また，フレーム番号ｂを３で割った剰余が０の場合（ステップＳ２５），前処理エンコーダＢ１１ｂは，ステップＳ２６を実行し，フレームｂ−１，フレームｂ＋２を参照フレームとし，フレームｂをＢフレームとして動き探索および符号化を行なう。
【００９０】
図１０は，前処理エンコーダＣ１１ｃによる符号化処理（図７のステップＳ１ｃ）のフローチャートである。基本的な処理内容は，前処理エンコーダＡ１１ａと同様である。ただし，符号化するピクチャタイプのタイミングが異なる。ステップＳ３０では，前処理エンコーダＣ１１ｃが次に符号化を行なう画像フレーム番号ｃを決定する。ステップＳ３１では，フレーム番号ｃを３で割った剰余が２であるかどうかを判定する。剰余が２である場合，前処理エンコーダＣ１１ｃは，ステップＳ３２を実行し，フレームｃ−３を参照フレームとし，フレームｃをＩフレームまたはＰフレームとして動き探索および符号化を行なう。
【００９１】
フレーム番号ｃを３で割った剰余が０の場合（ステップＳ３３），前処理エンコーダＣ１１ｃは，ステップＳ３４を実行し，フレームｃ−２，フレームｃ＋１を参照フレームとし，フレームｃをＢフレームとして動き探索および符号化を行なう。
【００９２】
また，フレーム番号ｃを３で割った剰余が１の場合（ステップＳ３５），前処理エンコーダＣ１１ｃは，ステップＳ３６を実行し，フレームｃ−１，フレームｃ＋２を参照フレームとし，フレームｃをＢフレームとして動き探索および符号化を行なう。
【００９３】
以上の前処理エンコーダＡ１１ａ，Ｂ１１ｂ，Ｃ１１ｃが行う処理は，ハードウェアによって実現してもよく，また符号化処理を行うソフトウェアプログラムをマイクロコンピュータ等のプロセッサに実行させることによって実現してもよい。ソフトウェアプログラムを用いて前処理エンコーダ１１を実現する場合，各前処理エンコーダ１１のプロセッサは，メインエンコーダ１３のプロセッサとは異なるプロセッサであることが望ましい。
【００９４】
図１１は，メインエンコーダ１３における動きベクトル読み出し処理（図７のステップＳ５）のフローチャートである。
【００９５】
まず，ステップＳ４０では，Ｐフレームの間隔Ｍが３かどうかを判定する。Ｍ＝３でない場合，ステップＳ４７へ進む。Ｍ＝３の場合，現在の符号化対象フレームのピクチャタイプに応じて以下の処理を行う。符号化対象フレームがＰフレームの場合（ステップＳ４１），同位置マクロブロックのフレームｎ−３を参照画像とする動きベクトルを読み出す（ステップＳ４２）。符号化対象フレームがＰ直後のＢフレームの場合（ステップＳ４３），同位置マクロブロックのフレームｎ−３，ｎ−２，ｎ−１，ｎ＋２を参照画像とする動きベクトルを読み出す（ステップＳ４４）。また，符号化対象フレームがＰ直前のＢフレームの場合（ステップＳ４５），同位置マクロブロックのフレームｎ−３，ｎ−２，ｎ−１，ｎ＋１を参照画像とする動きベクトルを読み出す（ステップＳ４６）。
【００９６】
ステップＳ４７の判定で，Ｍ＝２である場合，現在の符号化対象フレームのピクチャタイプを判定し，Ｐフレームである場合には（ステップＳ４８），同位置マクロブロックのフレームｎ−３，ｎ−２を参照画像とする動きベクトルを読み出す（ステップＳ４９）。また，現在の符号化対象フレームがＢフレームである場合には（ステップＳ５０），同位置マクロブロックのフレームｎ−３，ｎ−２，ｎ−１，ｎ＋１を参照画像とする動きベクトルを読み出す（ステップＳ５１）。
【００９７】
Ｐフレームの間隔Ｍが１の場合には，すべてＰフレームとして符号化を行うので，同位置マクロブロックのフレームｎ−３，ｎ−２，ｎ−１を参照画像とする動きベクトルを読み出す（ステップＳ５２〜Ｓ５４）。その後，図７に示すステップＳ６に進む。
【００９８】
図１２は，メインエンコーダ１３におけるマクロブロック符号化処理（図７のステップＳ６）のフローチャートである。現在の符号化対象フレームのピクチャタイプを判定し，Ｉフレームである場合には（ステップＳ６０），現在処理しているマクロブロックのイントラ符号化を行なう（ステップＳ６１）。
【００９９】
Ｐフレームである場合には（ステップＳ６２），図１１の動きベクトル読み出し処理で読み出した動きベクトルに対する予測誤差値および動きベクトル符号量を求める（ステップＳ６３）。続くステップＳ６４では，
（評価値）＝（予測誤差値）＋（係数）×（動きベクトル符号量）
を計算し，計算結果の評価値が最小となる動きベクトルを選ぶ。ステップＳ６５では，イントラ符号化か，選択した動きベクトルを用いた片方向予測符号化を行なう。
【０１００】
Ｂフレームである場合には（ステップＳ６６），図１１の動きベクトル読み出し処理で読み出した動きベクトルに対する予測誤差値および動きベクトル符号量を求める（ステップＳ６７）。続くステップＳ６８では，
（評価値）＝（予測誤差値）＋（係数）×（動きベクトル符号量）
を計算し，計算結果の評価値が小さい方から２つの動きベクトルを選ぶ。ステップＳ６９では，イントラ符号化か，選択した動きベクトルを２つ用いた両方向予測符号化か，どちらかを用いた片方向予測符号化を行なう。
【０１０１】
〔実施の形態２の処理フロー〕
実施の形態２の処理フローの概要は，図７で説明した実施の形態１の処理フローと同様である。また，前処理エンコーダＡ１１ａによる符号化処理，前処理エンコーダＢ１１ｂによる符号化処理，前処理エンコーダＣ１１ｃによる符号化処理についても，図８〜図１０で説明した実施の形態１と同様である。また，メインエンコーダ１３における動きベクトル読み出し処理も図１１に示すとおりであり，実施の形態１と同様である。
【０１０２】
実施の形態２では，図７のステップＳ６におけるマクロブロック符号化処理が実施の形態１と異なり，マクロブロック符号化処理は，図１３に示すように行なわれる。図１３に従って，実施の形態２におけるマクロブロック符号化処理を説明する。
【０１０３】
現在の符号化対象フレームのピクチャタイプを判定し，Ｉフレームである場合には（ステップＳ７０），現在処理しているマクロブロックのイントラ符号化を行なう（ステップＳ７１）。
【０１０４】
Ｐフレームである場合には（ステップＳ７２），図１１の動きベクトル読み出し処理で読み出した各動きベクトルの周辺近傍の動きベクトル探索を行う（ステップＳ７３）。次に，ステップＳ７４では，各探索結果の動きベクトルに対する予測誤差値および動きベクトル符号量を求める。続くステップＳ７５では，
（評価値）＝（予測誤差値）＋（係数）×（動きベクトル符号量）
を計算し，計算結果の評価値が最小となる動きベクトルを選ぶ。ステップＳ７６では，イントラ符号化か，選択した動きベクトルを用いた片方向予測符号化を行なう。
【０１０５】
Ｂフレームである場合には（ステップＳ７７），図１１の動きベクトル読み出し処理で読み出した各動きベクトルの周辺近傍の動きベクトル探索を行う（ステップＳ７８）。次に，ステップＳ７９では，動きベクトルに対する予測誤差値および動きベクトル符号量を求める。続くステップＳ８０では，
（評価値）＝（予測誤差値）＋（係数）×（動きベクトル符号量）
を計算し，計算結果の評価値が小さい方から２つの動きベクトルを選ぶ。ステップＳ８１では，イントラ符号化か，選択した動きベクトルを２つ用いた両方向予測符号化か，どちらかを用いた片方向予測符号化を行なう。
【０１０６】
〔実施の形態３の処理フロー〕
実施の形態３では，まずステップＳ１０１ａ，Ｓ１０１ｂ，Ｓ１０１ｃにおいて，それぞれ図６に示す前処理エンコーダＡ２１ａによる符号化処理（図８参照），前処理エンコーダＢ２１ｂによる符号化処理（図９参照），前処理エンコーダＣ２１ｃによる符号化処理（図１０参照）を行い，ステップＳ１０２ａ，Ｓ１０２ｂ，Ｓ１０２ｃにおいて，前処理エンコーダＡ２１ａで符号化したビットストリームＡのフレームａ相当分，前処理エンコーダＢ２１ｂで符号化したビットストリームＢのフレームｂ相当分，前処理エンコーダＣ２１ｃで符号化したビットストリームＣのフレームｃ相当分をそれぞれ出力する。以上の処理を，全フレームの符号化が終了するまで繰り返す（ステップＳ１０３ａ，Ｓ１０３ｂ，Ｓ１０３ｃ）。
【０１０７】
次に，ステップＳ１０４では，メインエンコーダ２３で符号化するフレーム番号ｎ（ただし，ｎはａ，ｂ，ｃより小さいか等しい）を決定し，ステップＳ１０５〜Ｓ１０８で，フレーム番号ｎのフレームの全マクロブロックについての符号化を実行する。そのため，まず，ステップＳ１０５では，メインエンコーダ２３で次に符号化するマクロブロックを順次決定する。ステップＳ１０６では，ビットストリームＡ，Ｂ，Ｃからマクロブロックの符号化において参照するための符号化参照情報読み出し処理（図１５参照）を実行し，ステップＳ１０７では，符号化参照情報を利用して，マクロブロック符号化処理（図１６参照）を実行する。ステップＳ１０８の判定によりフレーム番号ｎのフレームの全マクロブロックについての符号化終了を検出するまで，ステップＳ１０５〜Ｓ１０７を繰り返し，全マクロブロックの符号化が終了したならばステップＳ１０９へ進む。
【０１０８】
ステップＳ１０９では，全フレームの符号化が終了したかどうかを判定し，全フレームの符号化が終了するまでステップＳ１０４〜Ｓ１０８の処理を繰り返す。
【０１０９】
ステップＳ１０１ａにおける前処理エンコーダＡ２１ａによる符号化処理，ステップＳ１０１ｂにおける前処理エンコーダＢ２１ｂによる符号化処理，ステップＳ１０１ｃにおける前処理エンコーダＣ２１ｃによる符号化処理は，それぞれ図８〜図１０で説明した実施の形態１の場合の処理と同様である。
【０１１０】
図１４のステップＳ１０６における符号化参照情報読み出し処理は，図１５に示すように行なわれる。
【０１１１】
まず，ステップＳ１１０では，Ｐフレームの間隔Ｍが３かどうかを判定する。Ｍ＝３でない場合，ステップＳ１１７へ進む。Ｍ＝３の場合，現在の符号化対象フレームのピクチャタイプに応じて以下の処理を行う。符号化対象フレームがＰフレームの場合（ステップＳ１１１），ビットストリームＡ，Ｂ，Ｃから同位置マクロブロックのフレームｎ−３を参照画像とする動きベクトル，予測誤差符号量，量子化パラメータを読み出す（ステップＳ１１２）。符号化対象フレームがＰ直後のＢフレームの場合（ステップＳ１１３），ビットストリームＡ，Ｂ，Ｃから同位置マクロブロックのフレームｎ−３，ｎ−２，ｎ−１，ｎ＋２を参照画像とする動きベクトル，予測誤差符号量，量子化パラメータを読み出す（ステップＳ１１４）。また，符号化対象フレームがＰ直前のＢフレームの場合（ステップＳ１１５），ビットストリームＡ，Ｂ，Ｃから同位置マクロブロックのフレームｎ−３，ｎ−２，ｎ−１，ｎ＋１を参照画像とする動きベクトル，予測誤差符号量，量子化パラメータを読み出す（ステップＳ１１６）。
【０１１２】
ステップＳ１１７の判定で，Ｍ＝２である場合，現在の符号化対象フレームのピクチャタイプを判定し，Ｐフレームである場合には（ステップＳ１１８），ビットストリームＡ，Ｂ，Ｃから同位置マクロブロックのフレームｎ−３，ｎ−２を参照画像とする動きベクトル，予測誤差符号量，量子化パラメータを読み出す（ステップＳ１１９）。現在の符号化対象フレームがＢフレームである場合には（ステップＳ１２０），ビットストリームＡ，Ｂ，Ｃから同位置マクロブロックのフレームｎ−３，ｎ−２，ｎ−１，ｎ＋１を参照画像とする動きベクトル，予測誤差符号量，量子化パラメータを読み出す（ステップＳ１２１）。
【０１１３】
Ｐフレームの間隔Ｍが１の場合には，すべてＰフレームとして符号化を行うので，ビットストリームＡ，Ｂ，Ｃから同位置マクロブロックのフレームｎ−３，ｎ−２，ｎ−１を参照画像とする動きベクトル，予測誤差符号量，量子化パラメータを読み出す（ステップＳ１２２〜Ｓ１２４）。その後，図１４に示すステップＳ１０７に進む。
【０１１４】
図１６は，メインエンコーダ２３におけるマクロブロック符号化処理（図１４のステップＳ１０７）のフローチャートである。現在の符号化対象フレームのピクチャタイプを判定し，ピクチャタイプがＩフレームである場合には（ステップＳ１３０），現在処理しているマクロブロックのイントラ符号化を行なう（ステップＳ１３１）。
【０１１５】
Ｐフレームである場合には（ステップＳ１３２），図１５の符号化参照情報読み出し処理で読み出した動きベクトルに対する動きベクトル符号量を求める（ステップＳ１３３）。続くステップＳ１３４では，
（評価値）＝（予測誤差値）×（用いた量子化パラメータ）／（これから用いる量子化パラメータ）＋（係数）×（動きベクトル符号量）
を計算し，計算結果の評価値が最小となる動きベクトルを選ぶ。ステップＳ１３５では，イントラ符号化か，選択した動きベクトルを用いた片方向予測符号化を行なう。
【０１１６】
Ｂフレームである場合には（ステップＳ１３６），図１５の符号化参照情報読み出し処理で読み出した動きベクトルに対する動きベクトル符号量を求める（ステップＳ１３７）。続くステップＳ１３８では，
（評価値）＝（予測誤差値）×（用いた量子化パラメータ）／（これから用いる量子化パラメータ）＋（係数）×（動きベクトル符号量）
を計算し，計算結果の評価値が小さい方から２つの動きベクトルを選ぶ。ステップＳ１３９では，イントラ符号化か，選択した動きベクトルを２つ用いた両方向予測符号化か，どちらかを用いた片方向予測符号化を行なう。
【０１１７】
【発明の効果】
以上の説明したように，本発明によって，ＭＰＥＧ−１，ＭＰＥＧ−２などの符号化器を複数用いて，複数参照画像を用いた動き補償を伴う符号化装置を安価に実現することができる。
【図面の簡単な説明】
【図１】実施の形態１，２における映像符号化装置の構成例を示す図である。
【図２】各前処理エンコーダによる符号化を説明する図である。
【図３】Ｍ＝１の場合に参照可能なフレームの例を示す図である。
【図４】Ｍ＝２の場合に参照可能なフレームの例を示す図である。
【図５】Ｍ＝３の場合に参照可能なフレームの例を示す図である。
【図６】実施の形態３における映像符号化装置の構成例を示す図である。
【図７】実施の形態１，２の処理フローチャートである。
【図８】実施の形態１〜３の前処理エンコーダＡによる符号化処理のフローチャートである。
【図９】実施の形態１〜３の前処理エンコーダＢによる符号化処理のフローチャートである。
【図１０】実施の形態１〜３の前処理エンコーダＣによる符号化処理のフローチャートである。
【図１１】実施の形態１，２の動きベクトル読み出し処理のフローチャートである。
【図１２】実施の形態１のマクロブロック符号化処理のフローチャートである。
【図１３】実施の形態２のマクロブロック符号化処理のフローチャートである。
【図１４】実施の形態３の処理フローチャートである。
【図１５】実施の形態３の符号化参照情報読み出し処理のフローチャートである。
【図１６】実施の形態３のマクロブロック符号化処理のフローチャートである。
【符号の説明】
１０  映像符号化装置
１１  前処理エンコーダ
１２  動きベクトル探索部
１３  メインエンコーダ
１４  動きベクトル決定部
１５  遅延バッファ
２０  映像符号化装置
２１  前処理エンコーダ
２２  動きベクトル情報抽出部
２３  メインエンコーダ
２４  動きベクトル決定部
２５  遅延バッファ
【図１】
2004336522.tif 000005
【図２】
2004336522.tif 000006
【図３】
2004336522.tif 000007
【図４】
2004336522.tif 000008
【図５】
2004336522.tif 000009
【図６】
2004336522.tif 000010
【図７】
2004336522.tif 000011
【図８】
2004336522.tif 000012
【図９】
2004336522.tif 000013
【図１０】
2004336522.tif 000014
【図１１】
2004336522.tif 000015
【図１２】
2004336522.tif 000016
【図１３】
2004336522.tif 000017
【図１４】
2004336522.tif 000018
【図１５】
2004336522.tif 000019
【図１６】
2004336522.tif 000020