(57)【特許請求の範囲】
【請求項１】
マクロブロック毎に、或いは、マクロブロックを構成する複数のサブマクロブロック毎に生成された動きベクトルを用いてフレーム間予測符号化を行う第１の符号化方式によって符号化された第１の画像データを、フレーム内符号化とフレーム間予測符号化とを用いた符号化方式であって、マクロブロック毎に生成された動きベクトルを用いてフレーム間予測符号化を行う第２の符号化方式によって符号化する画像符号化装置であって、
前記第１の画像データを復号して第２の画像データを生成する復号手段と、
前記復号手段により前記第１の画像データを復号することにより得られた第２の画像データにおける符号化対象のマクロブロックに対応した、前記第１の画像データの一つのマクロブロックが複数のサブマクロブロックで構成されていた場合、前記一つのマクロブロックを構成する複数のサブマクロブロックの動きベクトルのうち、前記符号化対象のマクロブロックの参照フレームと異なる参照フレームに対する動きベクトルを内分することにより補正し、前記補正された動きベクトルを含む複数の前記サブマクロブロックの動きベクトルから、前記符号化対象のマクロブロックに対応する動きベクトルを生成する動きベクトル補正手段と、
前記動きベクトル補正手段により生成された動きベクトルを用いて、前記復号手段により前記第１の画像データを復号することにより得られた第２の画像データを前記第２の符号化方式により符号化する符号化手段とを備え、
前記符号化手段は、前記補正された動きベクトルを含む複数の前記サブマクロブロックの動きベクトルの分散値の少なくとも一つが所定の値を上回る場合、前記符号化対象のマクロブロックをフレーム内符号化により符号化することを特徴とする画像符号化装置。
【請求項２】
前記動きベクトル補正手段は、前記補正された動きベクトルを含む複数の前記サブマクロブロックの動きベクトルの平均値、あるいは中央値を用いて、前記符号化対象のマクロブロックの動きベクトルを生成することを特徴とする請求項１に記載の画像符号化装置。
【請求項３】
前記符号化手段は、前記補正された動きベクトルを含む複数の前記サブマクロブロックの動きベクトルの分散値が何れも前記所定の値より小さい場合、前記動きベクトル補正手段により生成された動きベクトルを用いて前記復号手段により前記第１の画像データを復号することにより得られた第２の画像データを符号化することを特徴とする請求項１に記載の画像符号化装置。
【請求項４】
前記第１の符号化方式はＭＰＥＧ−４方式またはＨ．２６４方式であり、前記第２の符号化方式はＭＰＥＧ−２方式であることを特徴とする請求項１から３の何れか１項に記載の画像符号化装置。
【請求項５】
マクロブロック毎に、或いは、マクロブロックを構成する複数のサブマクロブロック毎に生成された動きベクトルを用いてフレーム間予測符号化を行う第１の符号化方式によって符号化された第１の画像データを、フレーム内符号化とフレーム間予測符号化とを用いた符号化方式であって、マクロブロック毎に生成された動きベクトルを用いてフレーム間予測符号化を行う第２の符号化方式によって符号化する画像符号化方法であって、
前記第１の画像データを復号して第２の画像データを生成する復号工程と、
前記復号工程により前記第１の画像データを復号することにより得られた第２の画像データにおける符号化対象のマクロブロックに対応した、前記第１の画像データの一つのマクロブロックが複数のサブマクロブロックで構成されていた場合、前記一つのマクロブロックを構成する複数のサブマクロブロックの動きベクトルのうち、前記符号化対象のマクロブロックの参照フレームと異なる参照フレームに対する動きベクトルを内分することにより補正し、前記補正された動きベクトルを含む複数の前記サブマクロブロックの動きベクトルから、前記符号化対象のマクロブロックに対応する動きベクトルを生成する動きベクトル補正工程と、
前記動きベクトル補正工程において生成された動きベクトルを用いて、前記復号工程により前記第１の画像データを復号することにより得られた第２の画像データを前記第２の符号化方式により符号化する符号化工程とを備え、
前記符号化工程においては、前記補正された動きベクトルを含む複数の前記サブマクロブロックの動きベクトルの分散値の少なくとも一つが所定の値を上回る場合、前記符号化対象のマクロブロックをフレーム内符号化により符号化することを特徴とする画像符号化方法。
【請求項６】
マクロブロック毎に、或いは、マクロブロックを構成する複数のサブマクロブロック毎に生成された動きベクトルを用いてフレーム間予測符号化を行う第１の符号化方式によって符号化された第１の画像データを、フレーム内符号化とフレーム間予測符号化とを用いた符号化方式であって、マクロブロック毎に生成された動きベクトルを用いてフレーム間予測符号化を行う第２の符号化方式によって符号化する画像符号化装置を制御するためのプログラムであって、
前記第１の画像データを復号して第２の画像データを生成する復号工程と、
前記復号工程により前記第１の画像データを復号することにより得られた第２の画像データにおける符号化対象のマクロブロックに対応した、前記第１の画像データの一つのマクロブロックが複数のサブマクロブロックで構成されていた場合、前記一つのマクロブロックを構成する複数のサブマクロブロックの動きベクトルのうち、前記符号化対象のマクロブロックの参照フレームと異なる参照フレームに対する動きベクトルを内分することにより補正し、前記補正された動きベクトルを含む複数の前記サブマクロブロックの動きベクトルから、前記符号化対象のマクロブロックに対応する動きベクトルを生成する動きベクトル補正工程と、
前記動きベクトル補正工程において生成された動きベクトルを用いて、前記復号工程により前記第１の画像データを復号することにより得られた第２の画像データを前記第２の符号化方式により符号化する符号化工程とをコンピュータに実行させ、
前記符号化工程においては、前記補正された動きベクトルを含む複数の前記サブマクロブロックの動きベクトルの分散値の少なくとも一つが所定の値を上回る場合、前記符号化対象のマクロブロックをフレーム内符号化により符号化することを特徴とするプログラム。
【請求項７】
請求項６に記載のプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像符号化装置、画像符号化方法、プログラム及び記録媒体に関し、特に、フォーマットを変換するために用いて好適な技術に関する。
【背景技術】
【０００２】
従来、ディジタル映像の符号化を行う際に、ディジタル放送やハードディスクレコーダ、あるいはカムコーダといった製品においては、ＭＰＥＧ−２方式が広く用いられてきた。ＭＰＥＧ−２方式では、図８に示すように、フレームベースの動き予測の場合、Ｐピクチャ（前方予測ピクチャ）では１つの動きベクトルを指定することができ、Ｂピクチャ（双方向予測ピクチャ）では最大２つの動きベクトルを指定することができる。特に、Ｂピクチャにおいては、前後の参照フレームを用いて、参照データ間の平均との差分を取ることも可能である。
【０００３】
また、最近では、より符号化効率を高めたＭＰＥＧ−４フォーマットや、Ｈ．２６４／ＭＰＥＧ−４  ＡＶＣフォーマットも勧告化され、実用化されている。特に、Ｈ．２６４／ＭＰＥＧ−４  ＡＶＣ方式では、ＭＰＥＧ−２方式と比べて、参照フレームを選択する自由度が上がっている。例えば、図９に示すように、Ｂピクチャの参照フレームとして、直前のＩピクチャではなく、それ以前のＰピクチャなどから参照することも可能になっている。
【０００４】
以上のようにそれぞれの符号化方式において、その方法が異なるため、フォーマット間での相互変換性や、再生互換性が重要になってきている。特に、Ｈ．２６４／ＭＰＥＧ−４  ＡＶＣフォーマットはこれから普及度が高くなると見込まれるが、再生環境がまだ十分とはいえず、第三者への配布用途などにおいては、依然として普及度の高いＭＰＥＧ−２フォーマットに変換する需要がある。そこで、フォーマットを変換する従来の技術としては、例えば、特許文献１には、再符号化（トランスコーディング）の際の動きベクトルの補正についての提案が開示されている。
【０００５】
一方、Ｈ．２６４方式の符号化方法については、例えば特許文献２には、Ｈ．２６４符号化で用いられているダイレクトモード予測精度向上に関する提案が開示されている。
【０００６】
【特許文献１】特開平１０−２７１４９４号公報
【特許文献２】特開２００４−１６５７０３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
前述したように、ＭＰＥＧ−４方式やＨ．２６４方式など各種異なるフォーマット規格が勧告されている中で、規格（フォーマット）によって、参照可能なフレームには制限がある。このため、再符号化（フォーマット変換）の際に、変換前のオリジナルのベクトル情報を使えない場合があった。
【０００８】
また、前記特許文献１に記載の動画符号変換装置は、ＭＰＥＧ−４方式及びＨ．２６４方式には対応していない。したがって、ＭＰＥＧ−４方式またはＨ．２６４方式からＭＰＥＧ−２方式のフォーマットに変換する際には、参照フレームが異なる場合にオリジナルのベクトル情報を使えず、復号化した後に最初から動き検出等を行わなければならない。このため、処理の負荷が大きくなってしまうという問題点があった。
【０００９】
本発明は前述の問題点に鑑み、参照フレームが異なる場合であっても、異なるフォーマットに簡単に変換できるようにすることを目的としている。
【課題を解決するための手段】
【００１０】
本発明の画像符号化装置は、マクロブロック毎に、或いは、マクロブロックを構成する複数のサブマクロブロック毎に生成された動きベクトルを用いてフレーム間予測符号化を行う第１の符号化方式によって符号化された第１の画像データを、フレーム内符号化とフレーム間予測符号化とを用いた符号化方式であって、マクロブロック毎に生成された動きベクトルを用いてフレーム間予測符号化を行う第２の符号化方式によって符号化する画像符号化装置であって、前記第１の画像データを復号して第２の画像データを生成する復号手段と、前記復号手段により前記第１の画像データを復号することにより得られた第２の画像データにおける符号化対象のマクロブロックに対応した、前記第１の画像データの一つのマクロブロックが複数のサブマクロブロックで構成されていた場合、前記一つのマクロブロックを構成する複数のサブマクロブロックの動きベクトルのうち、前記符号化対象のマクロブロックの参照フレームと異なる参照フレームに対する動きベクトルを内分することにより補正し、前記補正された動きベクトルを含む複数の前記サブマクロブロックの動きベクトルから、前記符号化対象のマクロブロックに対応する動きベクトルを生成する動きベクトル補正手段と、前記動きベクトル補正手段により生成された動きベクトルを用いて、前記復号手段により前記第１の画像データを復号することにより得られた第２の画像データを前記第２の符号化方式により符号化する符号化手段とを備え、前記符号化手段は、前記補正された動きベクトルを含む複数の前記サブマクロブロックの動きベクトルの分散値の少なくとも一つが所定の値を上回る場合、前記符号化対象のマクロブロックをフレーム内符号化により符号化することを特徴とする。
【００１１】
本発明の画像符号化方法は、マクロブロック毎に、或いは、マクロブロックを構成する複数のサブマクロブロック毎に生成された動きベクトルを用いてフレーム間予測符号化を行う第１の符号化方式によって符号化された第１の画像データを、フレーム内符号化とフレーム間予測符号化とを用いた符号化方式であって、マクロブロック毎に生成された動きベクトルを用いてフレーム間予測符号化を行う第２の符号化方式によって符号化する画像符号化方法であって、前記第１の画像データを復号して第２の画像データを生成する復号工程と、前記復号工程により前記第１の画像データを復号することにより得られた第２の画像データにおける符号化対象のマクロブロックに対応した、前記第１の画像データの一つのマクロブロックが複数のサブマクロブロックで構成されていた場合、前記一つのマクロブロックを構成する複数のサブマクロブロックの動きベクトルのうち、前記符号化対象のマクロブロックの参照フレームと異なる参照フレームに対する動きベクトルを内分することにより補正し、前記補正された動きベクトルを含む複数の前記サブマクロブロックの動きベクトルから、前記符号化対象のマクロブロックに対応する動きベクトルを生成する動きベクトル補正工程と、前記動きベクトル補正工程において生成された動きベクトルを用いて、前記復号工程により前記第１の画像データを復号することにより得られた第２の画像データを前記第２の符号化方式により符号化する符号化工程とを備え、前記符号化工程においては、前記補正された動きベクトルを含む複数の前記サブマクロブロックの動きベクトルの分散値の少なくとも一つが所定の値を上回る場合、前記符号化対象のマクロブロックをフレーム内符号化により符号化することを特徴とする。
【００１２】
本発明のプログラムは、マクロブロック毎に、或いは、マクロブロックを構成する複数のサブマクロブロック毎に生成された動きベクトルを用いてフレーム間予測符号化を行う第１の符号化方式によって符号化された第１の画像データを、フレーム内符号化とフレーム間予測符号化とを用いた符号化方式であって、マクロブロック毎に生成された動きベクトルを用いてフレーム間予測符号化を行う第２の符号化方式によって符号化する画像符号化装置を制御するためのプログラムであって、前記第１の画像データを復号して第２の画像データを生成する復号工程と、前記復号工程により前記第１の画像データを復号することにより得られた第２の画像データにおける符号化対象のマクロブロックに対応した、前記第１の画像データの一つのマクロブロックが複数のサブマクロブロックで構成されていた場合、前記一つのマクロブロックを構成する複数のサブマクロブロックの動きベクトルのうち、前記符号化対象のマクロブロックの参照フレームと異なる参照フレームに対する動きベクトルを内分することにより補正し、前記補正された動きベクトルを含む複数の前記サブマクロブロックの動きベクトルから、前記符号化対象のマクロブロックに対応する動きベクトルを生成する動きベクトル補正工程と、前記動きベクトル補正工程において生成された動きベクトルを用いて、前記復号工程により前記第１の画像データを復号することにより得られた第２の画像データを前記第２の符号化方式により符号化する符号化工程とをコンピュータに実行させ、前記符号化工程においては、前記補正された動きベクトルを含む複数の前記サブマクロブロックの動きベクトルの分散値の少なくとも一つが所定の値を上回る場合、前記符号化対象のマクロブロックをフレーム内符号化により符号化することを特徴とする。
【００１３】
本発明の記録媒体は、前記に記載のプログラムを記録したことを特徴とする。
【発明の効果】
【００１４】
本発明によれば、異なる符号化方式で再符号化を行う際に、第１の符号化方式で用いられた動きベクトルを内分して、第２の符号化方式に対応する動きベクトルに補正するようにした。これにより、参照フレームが異なる場合であってもオリジナルの動きベクトルの再利用をすることができる。したがって、処理負荷を小さくして異なるフォーマットに変換することができる。
【発明を実施するための最良の形態】
【００１５】
（第１の実施形態）
以下、本発明の実施形態について、図面を参照しながら説明する。
図５は、従来のＭＰＥＧ−２方式を用いた画像符号化装置の機能構成例を示すブロック図である。
図５において、５０１は動き検出部であり、動きベクトルを探索する。５０２は動き補償部であり、検出された動きベクトルを用いて画像間の差分をとり、動き補償を行う。
【００１６】
５０３はＤＣＴ部であり、二次元でＤＣＴ変換を行う。５０４は量子化部であり、予め算出された量子化ステップ値を用い、ＤＣＴ係数に対して量子化処理を行う。５０５は逆量子化部であり、量子化されたＤＣＴ係数の逆量子化処理を行う。５０６はＩＤＣＴ部であり、逆ＤＣＴ変換を行い、動き補償部５０２に出力する。これにより、ローカルデコード画像を生成する。
【００１７】
５０７は可変長符号化部であり、量子化されたＤＣＴ係数情報や、ベクトル情報などを可変長符号化により圧縮する。５０８はフレームメモリであり、符号化対象画像データや、参照画像データを蓄積する。符号化対象画像データは、図１０に示すように、マクロブロックと呼ばれる小さな画像単位で処理が行われる。ＭＰＥＧ−２方式では、図１０（ａ）に示すように、輝度については１６×１６単位のマクロブロックを用い、色差については８×８単位のマクロブロックを用いている。ＭＰＥＧ−２方式では、このマクロブロック単位にて動き補償を行い、時間的な冗長度を削減して圧縮率を高めている。
【００１８】
次に、フレーム間予測における動き検出について説明する。
図６は、動き検出の概要を示す図である。動き検出においては、符号化対象のマクロブロック６０２と、ローカルデコード後の参照フレーム６０１との差分を取って絶対値を演算する方法が一般的に用いられる。具体的には、輝度ブロックに対して、参照フレーム６０１内の任意の位置における１６×１６単位の画素との差分を取り、絶対値和を算出する。そして、参照フレーム６０１の位置をずらしながら、前記絶対値和が最小になるポイントを求める。その結果、この最小ポイントを動きベクトルとして決定する。
【００１９】
すべての参照画像の位置に対して、このような処理によって動きベクトルを決定する方法はフルサーチ法と呼ばれており、最も性能の高い方法ではある。ところが、演算量が膨大となるため、実用上は、実時間のエンコード用途としてはほとんど使用されていない。そこで、実時間エンコーダ用としては、処理を簡略化したステップサーチ法と呼ばれる方法が一般的に使用されている。
【００２０】
図７は、ステップサーチ法による動き検出の概要を示す図である。ステップサーチ法は、まず大域的に動きベクトルを検出し、検出した動きベクトルの周辺に対してより詳細な探索を行って、探索処理を削減する方法である。
【００２１】
図１２は、ステップサーチ法による動きベクトルの探索処理手順の一例を示すフローチャートである。
図７に示す例に沿って説明すると、まずステップＳ１において、フレーム７０１内において、大域的にサーチするサーチエリア７０２を指定する。次に、ステップＳ２において、サーチエリア７０２のエリア内で動きベクトルの候補を求め、その中の候補から絶対値和が最小となるポイントの動きベクトルの候補を選ぶ。
【００２２】
次に、ステップＳ３において、前記候補に対して、１画素単位で再度動きベクトルの探索を行い、絶対値和が最小となるポイントの動きベクトルの候補を求める。そして、ステップＳ４において、１／２画素あるいはそれ以下の精度で再度動きベクトルの探索を行い、最終的な動きベクトルを決定する。以上のように、４段階にわたって処理を行い、動きベクトルの精度を順次高める。
【００２３】
なお、ステップＳ１において、サーチエリア７０２の決定を行っているが、この演算を行う範囲のサーチエリア７０２はサーチウィンドウと呼ばれている。このサーチウィンドウを広くするほうがベクトル探索精度を高くすることができるが、それだけ演算量が多くなってしまう。また、サーチウィンドウを一度定めてしまうと、サーチウィンドウ外のエリアは探索対象から外れる。このため、正確な動きベクトルが検出されない可能性がある。したがって、このステップＳ１におけるサーチウィンドウの設定位置は、正確な動きベクトルを求めるため（高い符号化効率を実現するため）には非常に重要な項目となっている。
【００２４】
ＭＰＥＧ−２方式では、以上のような手順で動きベクトルを求めている。ところが、前述したように、Ｈ．２６４方式では、参照フレームを選択する自由度が上がっているため、Ｈ．２６４方式で求められた動きベクトルをそのままＭＰＥＧ−２方式で用いることができるとは限らない。そこで、本実施形態においては、Ｈ．２６４方式で参照したピクチャの位置とＭＰＥＧ−２方式で参照するピクチャの位置との関係から、ＭＰＥＧ−２方式で用いる動きベクトルを算出するようにした。以下、その手順について詳細に説明する。
【００２５】
図１は、本実施形態における画像符号化装置（Ｈ．２６４／ＭＰＥＧ−２トランスコーダ）の機能構成例を示すブロック図である。
図１に示す画像符号化装置１００において、１２１は、Ｈ．２６４方式に対応のエンコーダ及びデコーダである。１２２は、ＭＰＥＧ−２方式に対応のエンコーダである。
【００２６】
１０１は動き検出部であり、動きベクトルを探索する。１０２は動き補償部であり、検出された動きベクトルを用いて画像間の差分をとり、動き補償を行う。１０３はＤＣＴ部であり、二次元でＤＣＴ変換を行う。１０４は量子化部であり、予め算出された量子化ステップ値を用い、ＤＣＴ係数に対して量子化処理を行う。１０５は逆量子化部であり、量子化されたＤＣＴ係数の逆量子化処理を行う。１０６はＩＤＣＴ部であり、逆ＤＣＴ変換を行い、動き補償部１０２に出力する。これにより、参照画像データを生成する。
【００２７】
１０７は可変長符号化部であり、量子化されたＤＣＴ係数情報や、ベクトル情報などを可変長符号化により圧縮する。なお、Ｈ．２６４方式の場合は、可変長符号化には算術符号が使用される。１０８はフレームメモリであり、符号化対象画像データ、参照画像データ、及び復号化された画像データを蓄積する画像メモリである。復号化された画像データは、ＭＰＥＧ−２方式に対応のエンコーダ１２２において再度符号化を行うために使用される。
【００２８】
また、１０９は可変長復号化部であり、可変長符号化部１０７で符号化された圧縮データの可変長復号化を行う。なお、Ｈ．２６４方式の場合は算術復号を行う。復号結果としてはＤＣＴ係数のほかに、動きベクトル、マクロブロックタイプなどからなるマクロブロック情報があり、このマクロブロック情報は、後述するマクロブロック情報メモリ１１８に出力される。
【００２９】
一方、ＭＰＥＧ−２方式に対応のエンコーダ１２２において、１１２は動き補償部であり、後述する動きベクトル補正部１１９において補正された動きベクトルを用いて画像間の差分をとり、動き補償を行う。１１３はＤＣＴ部であり、二次元でＤＣＴ変換を行う。１１４は量子化部であり、予め算出された量子化ステップ値を用い、ＤＣＴ係数に対して量子化処理を行う。１１５は逆量子化部であり、量子化されたＤＣＴ係数の逆量子化処理を行う。１１６はＩＤＣＴ部であり、逆ＤＣＴ変換を行い、動き補償部１１２に出力する。これにより、参照画像データを生成する。
【００３０】
１１７は可変長符号化部であり再符号化手段として機能し、量子化されたＤＣＴ係数情報や、ベクトル情報などを可変長符号化により圧縮する。１１８はマクロブロック情報メモリであり、可変長復号化部１０９で復号化されたマクロブロック情報を複数フレーム分記録する。１１９は動きベクトル補正部であり、ＭＰＥＧ−２方式で再符号化を行うために、マクロブロック情報に含まれる動きベクトルを補正し、ＭＰＥＧ−２方式に対応した動きベクトルを生成する。
【００３１】
図１３は、本実施形態の動きベクトル補正部１１９による処理手順の一例を示すフローチャートである。
まず、ステップＳ１１において、再符号化の対象となるフレームに相当する動きベクトルをマクロブロック情報メモリ１１８から読み出し、Ｈ．２６４方式の場合と参照フレームが同一であるか否かを判断する。この判断の結果、参照フレームが同一である場合は、動きベクトルを補正する必要はないため、動き補償部１１２にそのまま動きベクトルを送り、処理を終了する。
【００３２】
一方、ステップＳ１１の判断の結果、参照フレームが同一でない場合は、ステップＳ１２において、Ｈ．２６４方式で参照したフレームとの位置関係を調べる。
【００３３】
図３は、復号化された動きベクトルから、再符号を行う場合の動きベクトルの求め方を示す簡略図である。なお、図３に示す例では、オリジナルのマクロブロックサイズも１６×１６単位であったものとする。
３０４は再符号化の対象となっているＢピクチャであり、３０３はＭＰＥＧ−２方式で参照対象となる直前に復号化済みのＰピクチャである。Ｈ．２６４方式で用いられた該当するマクロブロックのオリジナルの動きベクトルが、Ｂピクチャ３０２の前に位置するＩピクチャ３０１を参照していたものとする。
【００３４】
このとき、例えば、フレーム予測モードで、特定のマクロブロックの前方動きベクトルの成分を（３０、２０）とし、後方動きベクトルの成分を（１５、３）とする。この場合、ステップＳ１２で調べたオリジナルの動きベクトルが参照していたＩピクチャ３０１からの距離と、Ｐピクチャ３０３からの距離との関係によって動きベクトルを補正する。図３に示す例では、前方動きベクトルのみを修正する。
【００３５】
次に、ステップＳ１３において、ＭＰＥＧ−２方式で用いる動きベクトルの成分を求める。図３に示す例では、補正された動きベクトルは、前方動きベクトルのＸ成分が３０＊１／３となり、前方動きベクトルのＹ成分が２０＊１／３となる。一方、後方動きベクトルについては、再符号化する際に、同じＰピクチャ３０５を参照するため、このまま同じ動きベクトルを使用するものとする。
【００３６】
以上のように本実施形態においては、オリジナルの動きベクトルが参照するフレームと符号化対象のフレームとのフレーム間隔によって、ベクトル値を内分して動きベクトルを補正する。等速度で移動する物体の映像の場合、動きベクトルの大きさが、フレーム間隔に比例して変化するため、フレーム間距離の比率に応じて修正された動きベクトルは十分な精度が得られる。このような構成にすることにより、元のエンコーダとは異なる参照フレームに対する動きベクトルを容易に算出することができ、処理負荷を小さくすることができる。
【００３７】
（第２の実施形態）
第１の実施形態においては、再符号化を行う場合、オリジナルの動きベクトルを内分した値を動きベクトルとしてそのまま用いた。ところが、符号化の方式によっては、その動きベクトルが必ずしも最適ではない可能性がある。そこで本実施形態では、内分した値（成分）をステップサーチの開始点として設定する例について説明する。
【００３８】
図２は、本実施形態における画像符号化装置の機能構成例を示すブロック図である。なお、図１に示した画像符号化装置と重複する構成については同一の番号を付しており、同一の構成については説明を省略する。
図２において、画像符号化装置２００のＭＰＥＧ−２方式に対応のエンコーダ２２２に動き検出部２１１が含まれている。動き検出部２１１は、動きベクトル補正部１１９で内分したベクトル値を、前述した動き検出法におけるステップサーチの開始点として設定し、動き検出を再度行う。
【００３９】
以上のように本実施形態によれば、内分したベクトル値をステップサーチの開始点として設定し、動き検出を再度行うことにより、より精度の高い動きベクトルを算出することが可能になる。
【００４０】
（第３の実施形態）
従来は、規格（フォーマット）によってマクロブロックのサイズが異なるため、再符号化の際にオリジナルベクトルを使えない場合があった。図１０（ａ）に示すように、ＭＰＥＧ−２方式では、マクロブロックは、１６×１６単位のサイズの輝度ブロックで固定されており、この単位で動きベクトルが設定される。ところが、ＭＰＥＧ−４方式では、図１０（ｂ）に示すように、８×８単位のサイズまで細分化した輝度ブロックで動きベクトルを設定できる。さらに、Ｈ．２６４／ＭＰＥＧ−４  ＡＶＣ方式では、図１０（ｃ）に示すように、４×４単位のサイズまで細分化した輝度ブロック（あるいはサブマクロブロック）で動きベクトルを設定することができる。また、Ｈ．２６４／ＭＰＥＧ−４  ＡＶＣ方式では、図１０（ｄ）に示すような、縦横のサイズの比率が異なるブロックを用いることができる。このようにＨ．２６４／ＭＰＥＧ−４  ＡＶＣ方式では、可変ブロックサイズと呼ばれる動き予測も可能としている。
【００４１】
以上のように、符号化方式によっては、図１０（ｂ）〜図１０（ｄ）に示すように、マクロブロック内が分割されている場合もある。このようなケースでは、単純に元の動きベクトルを内分するだけでは、補正ベクトルを求めることはできない。本実施形態では、各サブマクロブロックが個別の動きベクトルをもっていた場合の例について説明する。
【００４２】
図４は、本実施形態において、復号化された動きベクトルから、再符号を行う場合の動きベクトルの求め方を示す簡略図である。また、図１４は、それぞれのサブマクロブロックの動きベクトルを示す図である。本実施形態では、１６×１６単位のマクロブロックが、８×８単位の４つのサブマクロブロック（Ｓ１、Ｓ２、Ｓ３、Ｓ４）に分割されているものとする。
【００４３】
符号化対象ピクチャがＢピクチャ４０４である場合に、各サブマクロブロックがＰピクチャ４０３を参照していない場合がある。具体的には、例えば、あるサブマクロブロックではＰピクチャ４０３を参照しているが、別のサブマクロブロックではＩピクチャ４０１を参照している場合もある。そこで、まずＢピクチャ４０２の前に位置するＩピクチャ４０１を参照しているベクトルを第１の実施形態と同様に内分して補正したベクトルを算出する。このようにして、各サブマクロブロックにおいてＰピクチャ４０３を参照する前方動きベクトルを算出する。また、同様に、Ｐピクチャ４０５を参照する後方動きベクトルも算出する。次に、この補正済みベクトルから、最終的な補正ベクトルを算出する。
【００４４】
各サブマクロブロックの前方動きベクトルをｆｘ（０＜ｘ＜５）とし、後方動きベクトルをｂｘ（０＜ｘ＜５）とすると、例えば、前方動きベクトルｆ１〜ｆ４、後方動きベクトルｂ１〜ｂ４の成分が以下のとおりであったとする。
ｆ１＝（１０、−５）、
ｆ２＝（８、−３）、
ｆ３＝（５、０）、
ｆ４＝（７，３）、
ｂ１＝（１０、−５）、
ｂ２＝（８、−１）、
ｂ３＝（７、２）、
ｂ４＝（２，３）
【００４５】
次に、最終的な補正ベクトルである代表前方参照ベクトルをＦとし、代表後方参照ベクトルをＢとする。また、水平成分をＦｘとし、垂直成分をＦｙとする。代表前方参照ベクトルＦ及び代表後方参照ベクトルＢを例えばメディアン（中央値）で求める場合には、以下の数１に示す式によって算出される。
【００４６】
【数１】
0005207693.tif 000002
【００４７】
なお、数１に示す例のように、サブマクロブロックの数によっては、演算結果が、ハーフペル（小数点以下＝０．５）やクオーターペル（小数点以下＝０．２５）になるケースもある。この場合、小数点以下をこのまま使用しても、あるいは簡略化のため、切り捨てなどによって処理してもよい。また、メディアン（中央値）ではなく、平均値で計算を行ってもよい。
【００４８】
また、図１１に示すように、サブマクロブロック間でベクトル値のばらつきが激しい場合もある。このようなケースでは、１６×１６単位のマクロブロックで１つのベクトルに補正すると、その信頼性が低くなってしまう。そこで、サブマクロブロックの各ベクトルの分散値を求め、これが特定の値以内になったときのみ、前述した手順で算出した最終的な補正ベクトルを使用するようにする。
【００４９】
具体的には、ベクトルの分散値の水平成分及び垂直成分は、以下の数２に示す式によって算出する。
【００５０】
【数２】
0005207693.tif 000003
【００５１】
このとき、分散値ＤＦｘ、ＤＦｙ、ＤＢｘ、ＤＢｙが全て所定の値以内であることを満たした場合のみ、この最終的な補正ベクトルを採用する。なお、分散値の少なくとも何れか１つが所定の値を上回る場合には、サブマクロブロックのすべてのベクトルを使用して、１つのベクトルを求めることは的確にはないと判断し、例えば、以下のような方法にて代替することが可能である。
【００５２】
（１）マクロブロックのうち、左上に位置するサブマクロブロックの動きベクトルを使用する。
（２）マクロブロックのうち、最大サイズのサブマクロブロックの動きベクトルを使用する。
（３）隣接するマクロブロックの代表ベクトルを使用する。
（４）動き補償自体が最適ではないと判断し、フレーム内符号化を行う。
【００５３】
また、本実施形態では、各サブマクロブロックがＨ．２６４方式で前方＋後方の双方向の予測を行った例について説明した。ところがＨ．２６４方式では、前方＋前方もしくは後方＋後方で予測する場合もある。この場合、例えば、サブマクロブック（Ｓ１）が前方＋前方の予測を行っていた場合は、代表前方参照ベクトルＦは、５つの成分から計算し、代表後方参照ベクトルＢは３つの成分から計算する。
【００５４】
また、前述した手順で求めた補正ベクトルを第２の実施形態と同様にステップサーチの開始点として設定し、動き検出を再度行うようにしてもよい。
【００５５】
以上のように本実施形態においては、ブロックサイズが異なる場合であっても元のエンコーダとは異なる参照フレームに対する動きベクトルを容易に算出することができ、処理負荷を小さくすることができる。
【００５６】
（本発明に係る他の実施形態）
前述した本発明の実施形態における画像符号化装置を構成する各手段、並びに画像符号化方法の各工程は、コンピュータのＲＡＭやＲＯＭなどに記憶されたプログラムが動作することによって実現できる。このプログラム及び前記プログラムを記録したコンピュータ読み取り可能な記録媒体は本発明に含まれる。
【００５７】
また、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。
【００５８】
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム（実施形態では図１２、１３に示すフローチャートに対応したプログラム）を、システムまたは装置に直接、または遠隔から供給する場合も含む。そして、そのシステムまたは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
【００５９】
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【００６０】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であってもよい。
【００６１】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスクなどがある。さらに、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ、ＤＶＤ−Ｒ）などもある。
【００６２】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する方法がある。そして、前記ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
【００６３】
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【００６４】
また、その他の方法として、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記録媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【００６５】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。さらに、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【００６６】
さらに、その他の方法として、まず記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。そして、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現される。
【図面の簡単な説明】
【００６７】
【図１】本発明の第１の実施形態における画像符号化装置の機能構成例を示すブロック図である。
【図２】本発明の第２の実施形態における画像符号化装置の機能構成例を示すブロック図である。
【図３】本発明の第１の実施形態において、ベクトルを補正する概要例を示す図である。
【図４】本発明の第３の実施形態において、ベクトルを補正する概要例を示す図である。
【図５】従来のＭＰＥＧ−２方式の画像符号化装置の機能構成例を示すブロック図である。
【図６】マクロブロックにおける動き検出の方法を示す図である。
【図７】ステップサーチの方法を示す図である。
【図８】ＭＰＥＧ−２による参照フレームの一例を示す図である。
【図９】Ｈ．２６４による参照フレームの一例を示す図である。
【図１０】マクロブロックの構成例を示す図である。
【図１１】本発明の第３の実施形態において、各サブマクロブロック間で分散値の大きい動きベクトルの一例を示す図である。
【図１２】ステップサーチの方法の処理手順の一例を示す図である。
【図１３】本発明の第１の実施形態の動きベクトル補正部による処理手順の一例を示すフローチャートである。
【図１４】本発明の第３の実施形態において、４分割された各サブマクロブロックの動きベクトルの一例を示す図である。
【符号の説明】
【００６８】
１００  画像符号化装置
１０１  動き検出部
１０２  動き補償部
１０３  ＤＣＴ部
１０４  量子化部
１０５  逆量子化部
１０６  ＩＤＣＴ部
１０７  可変長符号化部
１０８  フレームメモリ
１０９  可変長復号化部
１１２  動き補償部
１１３  ＤＣＴ部
１１４  量子化部
１１５  逆量子化部
１１６  ＩＤＣＴ部
１１７  可変長符号化部
１１８  マクロブロック情報メモリ
１１９  動きベクトル補正部
１２１  Ｈ．２６４方式に対応のエンコーダ及びデコーダ
１２２  ＭＰＥＧ−２方式に対応のエンコーダ
【図１】
0005207693.tif 000004
【図２】
0005207693.tif 000005
【図３】
0005207693.tif 000006
【図４】
0005207693.tif 000007
【図５】
0005207693.tif 000008
【図６】
0005207693.tif 000009
【図７】
0005207693.tif 000010
【図８】
0005207693.tif 000011
【図９】
0005207693.tif 000012
【図１０】
0005207693.tif 000013
【図１１】
0005207693.tif 000014
【図１２】
0005207693.tif 000015
【図１３】
0005207693.tif 000016
【図１４】
0005207693.tif 000017