(57)【要約】      （修正有）【課題】可変ブロックサイズ動き補償を用いた動きベクトル探索を行う際に、画像及び動きベクトルの両方について符号量を低減し、動画像全体として良好な符号化効率を実現するような、動き補償の単位ブロックサイズを決定する動きベクトル探索装置及びその制御方法を提供する。【解決手段】複数種類のブロックサイズに対し、現処理対象ブロックと予測ブロックについて、ＳＡＤ値による第１の相関値と、ＳＡＴＤによる第２の相関値を求める（１０１）。各ブロックサイズに対し、現処理対象ブロックに対応する予測動きベクトルを算出し（１０３）、第１及び第２の相関値と予測動きベクトルに基づいて符号化コストを算出する（１０４）。得られた符号化コストに基づいて動き補償の単位ブロックサイズを決定する（１０６）。【選択図】図１
2009272702.tif 000002
【特許請求の範囲】
【請求項１】
可変ブロックサイズ動き補償を用いた動きベクトル探索を行う際に、予め用意された複数種類のブロックサイズから動き補償を行う単位ブロックサイズを決定する動きベクトル探索装置であって、
現処理対象ブロックと予測ブロックとの相関を、前記複数種類のブロックサイズのそれぞれについて第１及び第２の相関値算出方法により求め、第１及び第２の相関値として出力する相関値算出手段と、
前記ブロックサイズのそれぞれについて、動きベクトルの予測値としての予測動きベクトルを算出する予測動きベクトル算出手段と、
前記ブロックサイズのそれぞれについて、前記第１及び第２の相関値と、前記予測動きベクトルに基づいて、動き補償を行った場合の符号化コストを算出する符号化コスト算出手段と、
前記ブロックサイズそれぞれの前記符号化コストに基き、前記単位ブロックサイズを決定するブロックサイズ決定手段と、
を有することを特徴とする動きベクトル探索装置。
【請求項２】
前記第１の相関値算出方法は、現処理対象ブロックと予測ブロックとの差分の絶対値和をとることによって前記第１の相関値を求める方法であり、
前記第２の相関値算出方法は、現処理対象ブロックと予測ブロックとの差分に対して直交変換を施した後、得られた直交変換係数の絶対値和をとることによって前記第２の相関値を求める方法である
ことを特徴とする請求項１に記載の動きベクトル探索装置。
【請求項３】
前記符号化コスト算出手段は、前記ブロックサイズのそれぞれについて、
前記第１の相関値と前記予測動きベクトルに基づいて第１の符号化コスト候補を算出する第１の符号化コスト候補の算出手段と、
前記第２の相関値と前記予測動きベクトルに基づいて第２の符号化コスト候補を算出する第２の符号化コスト候補の算出手段と、
前記第１及び第２の符号化コスト候補のいずれかを前記符号化コストとして選択する符号化コスト候補の選択手段と、
を有することを特徴とする請求項１または２に記載の動きベクトル探索装置。
【請求項４】
前記第１の符号化コスト候補の算出手段は、
複数の探索ポイントのうち、前記第１の相関値が最も高い相関を示すポイントに対応する第１の動きベクトルを求め
前記第２の相関値のうち、前記第１の動きベクトルの示す探索ポイントに対応する第３の相関値を求め、
前記第３の相関値と、前記予測動きベクトルと前記第１の動きベクトルとの差分である第１の差分ベクトルと、に基づいて前記第１の符号化コスト候補を決定し、
前記第２の符号化コスト候補の算出手段は、
複数の探索ポイントのうち、前記第２の相関値が最も高い相関を示すポイントに対応する第２の動きベクトルを求め、
前記第２の相関値のうち、前記第２の動きベクトルの示す探索ポイントに対応する第４の相関値を求め、
前記第４の相関値と、前記予測動きベクトルと前記第２の動きベクトルとの差分である第２の差分ベクトルと、に基づいて前記第２の符号化コスト候補を決定する
ことを特徴とする請求項３に記載の動きベクトル探索装置。
【請求項５】
前記第１の符号化コスト候補の算出手段は、前記第１の差分ベクトルに係数αを乗じて前記第３の相関値を加えることによって、前記第１の符号化コスト候補を決定し、
前記第２の符号化コスト候補の算出手段は、前記第２の差分ベクトルに前記係数αを乗じて前記第４の相関値を加えることによって、前記第２の符号化コスト候補を決定する
ことを特徴とする請求項４に記載の動きベクトル探索装置。
【請求項６】
前記第１の符号化コスト候補の算出手段は、
複数の探索ポイントのうち、前記第１の相関値が最も高い相関を示すポイントに対応する第１の動きベクトルを求め
前記第１の相関値のうち、前記第１の動きベクトルの示す探索ポイントに対応する第５の相関値を求め、
前記第５の相関値と、前記予測動きベクトルと前記第１の動きベクトルとの差分である第１の差分ベクトルと、に基づいて前記第１の符号化コスト候補を決定し、
前記第２の符号化コスト候補の算出手段は、
複数の探索ポイントのうち、前記第２の相関値が最も高い相関を示すポイントに対応する第２の動きベクトルを求め、
前記第２の相関値のうち、前記第２の動きベクトルの示す探索ポイントに対応する第６の相関値を求め、
前記第６の相関値と、前記予測動きベクトルと前記第２の動きベクトルとの差分である第２の差分ベクトルと、に基づいて前記第２の符号化コスト候補を決定する
ことを特徴とする請求項３に記載の動きベクトル探索装置。
【請求項７】
前記第１の符号化コスト候補の算出手段は、前記第１の差分ベクトルに係数αを乗じた値と、前記第５の相関値に係数βを乗じた値との和として、前記第１の符号化コスト候補を決定し、
前記第２の符号化コスト候補の算出手段は、前記第２の差分ベクトルに前記係数αを乗じた値と、前記第６の相関値との和として、前記第２の符号化コスト候補を決定する
ことを特徴とする請求項６に記載の動きベクトル探索装置。
【請求項８】
前記係数αは、量子化スケール値が大きいほど大きくなるように、予め設定された値であることを特徴とする請求項５または７に記載の動きベクトル探索装置。
【請求項９】
前記符号化コスト候補の選択手段は、
前記第１の符号化コスト候補が、前記第２の符号化コスト候補に係数γを乗じて係数δを加えた値よりも小さい場合は、前記第１の符号化コスト候補を前記符号化コストとして選択し、そうでない場合は、前記第２の符号化コスト候補を前記符号化コストとして選択する
ことを特徴とする請求項３乃至８のいずれか１項に記載の動きベクトル探索装置。
【請求項１０】
前記予め用意された複数種類のブロックサイズは、第１のサイズと、該第１のサイズを分割して得られる第２のサイズと、を含み、
前記相関値算出手段と前記予測動きベクトル算出手段、及び前記符号化コスト算出手段は、前記第１のサイズのブロックと、該第１のサイズを構成する複数の前記第２のサイズのブロック群と、について、それぞれの処理を行うことを特徴とする請求項１乃至９のいずれか１項に記載の動きベクトル探索装置。
【請求項１１】
前記ブロックサイズ決定手段は、
前記第１のサイズを構成する複数の前記第２のサイズのブロック群について、その前記符号化コストの総和を第２の符号化コスト総和ＣＯＳＴ_s_allとして算出し、
前記第１のサイズのブロックに対応する第１の符号化コストＣＯＳＴ0と、前記第２の符号化コスト総和ＣＯＳＴ_s_allと、に基づいて、前記第１のサイズと前記第２のサイズのいずれかを前記単位ブロックとして決定する
ことを特徴とする請求項１０に記載の動きベクトル探索装置。
【請求項１２】
前記ブロックサイズ決定手段は、
条件式：ＣＯＳＴ0＜（λ・ＣＯＳＴ_s_all＋μ）
が真であれば前記第１のサイズを前記単位ブロックサイズとして決定し、偽であれば前記第２のサイズを前記単位ブロックサイズとして決定する
ことを特徴とする請求項１１に記載の動きベクトル探索装置。
【請求項１３】
前記条件式における係数λ及びμは、前記現処理対象ブロックに対して設定された最大処理時間に応じて決定されることを特徴とする請求項１２に記載の動きベクトル探索装置。
【請求項１４】
可変ブロックサイズ動き補償を用いた動きベクトル探索を行う際に、予め用意された複数種類のブロックサイズから動き補償を行う単位ブロックサイズを決定する動きベクトル探索装置の制御方法であって、
現処理対象ブロックと予測ブロックとの相関を、前記複数種類のブロックサイズのそれぞれについて第１及び第２の相関値算出方法により求め、第１及び第２の相関値として出力する相関値算出ステップと、
前記ブロックサイズのそれぞれについて、動きベクトルの予測値としての予測動きベクトルを算出する予測動きベクトル算出ステップと、
前記ブロックサイズのそれぞれについて、前記第１及び第２の相関値と、前記予測動きベクトルに基づいて、動き補償を行った場合の符号化コストを算出する符号化コスト算出ステップと、
前記ブロックサイズそれぞれの前記符号化コストに基き、前記単位ブロックサイズを決定するブロックサイズ決定ステップと、
を有することを特徴とする動きベクトル探索装置の制御方法。
【請求項１５】
前記第１の相関値算出方法は、現処理対象ブロックと予測ブロックとの差分の絶対値和をとることによって前記第１の相関値を求める方法であり、
前記第２の相関値算出方法は、現処理対象ブロックと予測ブロックとの差分に対して直交変換を施した後、得られた直交変換係数の絶対値和をとることによって前記第２の相関値を求める方法である
ことを特徴とする請求項１４に記載の動きベクトル探索装置の制御方法。
【請求項１６】
コンピュータを請求項１乃至１３のいずれか１項に記載の動きベクトル探索装置として機能させるためのプログラム。
【請求項１７】
請求項１６に記載のプログラムを記録したコンピュータ可読な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デジタル動画像における動きベクトルを探索する動きベクトル探索装置及びその制御方法に関する。
【背景技術】
【０００２】
従来、ディジタル動画像を圧縮符号化する手法として、動き補償符号化と呼ばれる方法が一般的に知られている。これは、符号化対象画像を矩形ブロックに分割し、該ブロック単位に動きベクトルを検出して、該動きベクトルに基いて動き補償による予測画像を生成し、符号化対象画像との差分をとって符号化を行うというものである。さらに、当該差分画像に対してブロック単位によるＤＣＴ(Discrete Cosine Transform)を施し、量子化してエントロピー符号化を施す方法が一般的に利用されている。さらに、ブロックを単位とする動きベクトルの探索には、ブロックマッチングとよばれる方法が一般的によく利用される。ブロックマッチングにおいては、入力画像と参照画像とのマッチングの度合いを表す相関値や周囲ブロックの動き情報等から、符号化時の符号消費量（以下、符号化コスト）を予測し、これが最小となると予想されたベクトルを動きベクトルとして定める。
【０００３】
また、分割するブロックをさらにサブブロックに分割し、該ブロックの単位あるいは該サブブロックの単位で、上述した動き補償を行う方法がある。これは可変ブロックサイズ動き補償などと呼ばれ、動き補償の単位となるブロックサイズを固定したやり方より、より高い符号化効率が期待できる方法として知られる（例えば、特許文献１参照）。
【０００４】
ここで図３に、可変ブロックサイズの概念を示す。同図ではその一例として、まず（ａ)に、１６×１６のブロックサイズを基準サイズとして、それを８×１６，１６×８，８×８のサブブロックに分割する例を示す。そして(ｂ)に、上記（ａ）において８×８に分割されたサブブロックに対してさらに４×８，８×４，４×４のサイズにまで分割できる場合を示す。そして(ｃ)に、最終的に決定されたブロック分割の例を示している。(ｃ)に示す最終的なブロック領域のそれぞれに対して、動きベクトル情報が発生する。
【０００５】
かかる可変ブロックサイズ動き補償においては、入力画像と参照画像とのマッチングの度合いを表す相関値として予測誤差の平均値あるいは絶対値平均を用いて、ブロックサイズを決定する方法が一般的に使用されてきた。
【０００６】
しかしながら、上述したような予測誤差の平均値あるいは絶対値平均による相関値を使用すると、以下のような問題があった。すなわち、差分画像をＤＣＴした際にＤＣＴ係数の一部に電力が集中してしまうような場合には、符号量としては小さくなるにもかかわらず、相関値としては相関が低い値として算出されてしまう。
【０００７】
このような問題を解決するための技術として、入力画像と参照画像との予測誤差に対してアダマール変換等の直交変換（または簡易的な直交変換）を施し、得られた直交変換係数の絶対値和を相関値として用いる方法がある（例えば、特許文献２参照）。かかる相関値を用いれば、ＤＣＴ係数の一部に電力が集中してしまうような場合においても、相関が高い値として算出されやすい傾向があるため、画像情報の符号量が低減されるという効果が得られる。
【特許文献１】特登録02716703号
【特許文献２】特開2004-241957号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、上述したように直交変換係数の絶対値和を相関値として用いた場合には、画像情報の符号量を低減する傾向がある一方、動き情報の符号量が増加してしまうという傾向があるため、動画像全体の符号化効率としては大きな向上は望めなかった。特に、可変ブロックサイズ動き補償においては、固定ブロックサイズ動き補償に比べ、より動き補償の単位となるブロックが細分化されるため、全体の符号量における動き情報の符号量の占める割合が大きくなる傾向がある。そのため、こうした動き情報の符号量は無視できず、たとえ画像情報の符号量が低減されたとしても、動き情報の符号量を加えた全体的な符号量としての効果は小さく、符号化効率の向上は望めなかった。
【０００９】
ここで図４に、相関値として、差分の絶対値和を用いて符号化を行った場合と、アダマール変換係数の絶対値和を用いて符号化を行った場合と、のそれぞれにおける１フレーム当たりの符号量を、画像情報（インターフレームのみ）と動き情報とに分けて示す。以下、差分の絶対値和をＳＡＤ（Sum of Absolute Difference）と称し、アダマール変換係数の絶対値和をＳＡＴＤ（Sum of Absolute Transformed Difference）と称する。同図に示す棒グラフのうち、左半分は相関値としてＳＡＤを用いた場合を、右半分は相関値としてＳＡＴＤを用いた場合を表しており、それぞれ量子化スケール値を変えて表している。同図によれば、相関値としてＳＡＴＤを用いた場合には、ＳＡＤを用いた場合に比べて画像情報の符号量（グラフの白い部分）は低減されるものの、動き情報の符号量（グラフの網掛けの部分）は逆に増加していることが分かる。したがって、符号量全体として両者は大差のないものとなっている。
【００１０】
本発明は上述したような問題を解決するためになされたものであり、以下のような機能を有する動きベクトル探索装置及びその制御方法を提供することを目的とする。すなわち、可変ブロックサイズ動き補償を用いた動きベクトル探索を行う際に、画像及び動きベクトルの両方について符号量を低減し、動画像全体として良好な符号化効率を実現するような、動き補償の単位ブロックサイズを決定する。
【課題を解決するための手段】
【００１１】
上記目的を達成するための一手段として、本発明の動きベクトル探索装置は以下の構成を備える。
【００１２】
すなわち、可変ブロックサイズ動き補償を用いた動きベクトル探索を行う際に、予め用意された複数種類のブロックサイズから動き補償を行う単位ブロックサイズを決定する動きベクトル探索装置であって、現処理対象ブロックと予測ブロックとの相関を、前記複数種類のブロックサイズのそれぞれについて第１及び第２の相関値算出方法により求め、第１及び第２の相関値として出力する相関値算出手段と、前記ブロックサイズのそれぞれについて、動きベクトルの予測値としての予測動きベクトルを算出する予測動きベクトル算出手段と、前記ブロックサイズのそれぞれについて、前記第１及び第２の相関値と、前記予測動きベクトルに基づいて、動き補償を行った場合の符号化コストを算出する符号化コスト算出手段と、前記ブロックサイズそれぞれの前記符号化コストに基き、前記単位ブロックサイズを決定するブロックサイズ決定手段と、を有することを特徴とする。
【００１３】
例えば、前記第１の相関値算出方法は、現処理対象ブロックと予測ブロックとの差分の絶対値和をとることによって前記第１の相関値を求める方法であり、前記第２の相関値算出方法は、現処理対象ブロックと予測ブロックとの差分に対して直交変換を施した後、得られた直交変換係数の絶対値和をとることによって前記第２の相関値を求める方法であることを特徴とする。
【発明の効果】
【００１４】
上記構成からなる本発明によれば、可変ブロックサイズ動き補償を用いた動きベクトル探索を行う際に、画像及び動きベクトルの両方について符号量を低減し、動画像全体として良好な符号化効率を実現するような、動き補償の単位ブロックサイズが決定される。
【発明を実施するための最良の形態】
【００１５】
以下、添付の図面を参照して、本発明をその好適な実施形態に基づいて詳細に説明する。なお、以下の実施形態において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
【００１６】
＜第１実施形態＞
●システム構成
図１は、本実施形態における動きベクトル探索装置の構成を示すブロック図である。本実施形態の動きベクトル探索装置においては、複数種類のブロックサイズによる可変ブロックサイズ動き補償を行うが、許容される可変ブロックサイズの候補として、１６×１６画素サイズと８×８画素サイズのみに対応する例として説明する。しかしながら、例えば図３で示したような、より多くのブロックサイズにも対応するように、本実施形態を変形することも可能であり、１６×１６画素サイズと８×８画素サイズに限定されるものではない。
【００１７】
図１において、相関値算出部１０１は、現フレーム中の処理対象ブロックと、動き補償部１０２より出力される参照フレームから切り出された参照ブロックを入力し、該入力ブロックと参照ブロックとの相関値を算出する。該相関値は、複数の探索ポイントに対応する複数回のブロックマッチング毎に出力されるものであり、性質の異なる２種類の相関値が含まれることを特徴とする。該２種類の相関値のうち、第１の相関値としてここではＳＡＤを用いるものとする。ＳＡＤを算出するための第１の相関値算出方法としては、現処理対象ブロックと参照ブロックとの差分の絶対値和をとることを特徴とする。
【００１８】
ここで図５に、ｘ画素×ｙ画素からなる処理対象ブロックの各画素値'Ｏrg0,0'〜'Ｏrgx-1,y-1'と、ｘ画素×ｙ画素からなる予測ブロックの各画素値'Ｒef0,0'〜'Ｒefx-1,y-1'の位置関係を示す。図５によれば、処理対象ブロック及び予測ブロックに対するＳＡＤは次式(1)より得られる。
【００１９】
2009272702.tif 000003
【００２０】
また、２種類の相関値のうちの第２の相関値としてここではＳＡＴＤを用いるものとする。ＳＡＴＤを算出するための第２の相関値算出方法としては、現処理対象ブロックと予測ブロックとの差分に対して直交変換を施した後、得られた直交変換係数の絶対値和をとることを特徴とする。以下に、ブロックサイズが４画素×４画素である場合のＳＡＴＤの算出処理を示す。
【００２１】
処理対象ブロック'Ｏrg0,0'〜'Ｏrg3,3'を行列Ｏとして表現すると、次式(2)のようになる。
【００２２】
2009272702.tif 000004
【００２３】
同様に、予測ブロック'Ｒef0,0'〜'Ｒef3,3'を行列Ｒとして表現すると、次式(3)のようになる。
【００２４】
2009272702.tif 000005
【００２５】
また、処理対象ブロックと予測ブロックの差分ブロックを行列Ｄとして表現すると、次式(4)のようになる。
【００２６】
Ｄ＝Ｏ−Ｒ      ・・・(4)
差分ブロックＤに対し、次式(5)に示される４次アダマール行列Ｈ4x4を用いてアダマール変換を施し、変換係数行列ＴＤを得る。
【００２７】
2009272702.tif 000006
【００２８】
上記変換係数行列ＴＤは、次式(6)で得られる。
【００２９】
ＴＤ＝Ｈ4x4・Ｄ・Ｈ4x4      ・・・(6)
これにより、変換係数行列ＴＤの各要素は次式(7)のように表される。
【００３０】
2009272702.tif 000007
【００３１】
以上を踏まえて、処理対象ブロック及び予測ブロックに対するＳＡＴＤは、次式(8)より得られる。
【００３２】
2009272702.tif 000008
【００３３】
なお、以上では４画素×４画素ブロックサイズのＳＡＴＤの算出方法を示したが、８画素×８画素、１６画素×１６画素ブロックサイズのＳＡＴＤにおいても、行列の要素を拡張して、同様に算出することができる。また、ブロックサイズが正方形でない場合（４画素×８画素、１６画素×８画素等）には、例えば４画素×４画素または８画素×８画素ブロックサイズで算出したＳＡＴＤの和をとることによって代用してもよい。同様に、８画素×８画素、１６画素×１６画素ブロックサイズのＳＡＴＤにおいても、４画素×４画素または８画素×８画素ブロックサイズで算出したＳＡＴＤの和をとることで代用してもよい。
【００３４】
相関値算出部１０１からは、上述したような方法で得られた相関値ＳＡＤ及びＳＡＴＤが、各ブロックサイズに対応する、単位ブロックサイズの候補となる候補ブロックの数分、それぞれ出力される。本実施形態の場合、後述する暫定値保持部＃０に対応する１６画素×１６画素サイズの１ブロックと、暫定値保持部＃１〜＃４に対応する８画素×８画素サイズの４ブロックで、合計５つのＳＡＤ及びＳＡＴＤが、それぞれ出力される。すなわち、本実施形態における候補ブロックとしては、第１のサイズ（この場合１６画素×１６画素）のブロックと、該第１のサイズのブロックを分割する、より小さい第２のサイズ（この場合８画素×８画素）のブロック群を用意する。
【００３５】
図１に示すように、相関値算出部１０１から符号化コスト算出部１０４へは、ＳＡＤ0〜ＳＡＤ4及びＳＡＴＤ0〜ＳＡＴＤ4が出力される。このＳＡＤ0及びＳＡＴＤ0は、一つの１６画素×１６画素サイズブロックに対応する相関値を表し、ＳＡＤ1〜ＳＡＤ4及びＳＡＴＤ1〜ＳＡＴＤ4は、４つの８画素×８画素サイズブロックに対応する相関値を表す。
【００３６】
動き補償部１０２は、後述する動きベクトル決定部１０６が随時出力する探索ＭＶが示すベクトルに対応する参照ブロックを、参照フレームより切り出して相関値算出部１０１へと出力する。すなわち、複数の探索ポイントに対応する複数回のブロックマッチング毎に探索ＭＶを受け取り、その都度対応する参照ブロックを出力するものである。
【００３７】
予測動きベクトル算出部１０３は、複数の候補ブロックのそれぞれに対応する動きベクトルの予測値として、予測動きベクトルＭＶ0pred〜ＭＶ4predを算出し、符号化コスト算出部１０４へ出力する。以下、これら複数の予測動きベクトルＭＶ0pred〜ＭＶ4predをまとめて、ＭＶnpredと表記する。予測動きベクトルの算出方法としては、例えば、既に動き探索処理が終了した周辺ブロックの動き情報に基づき、その中間値を予測動きベクトルとして算出してもよい。また、現処理対象フレームの一枚前のフレームにおける同位置のブロックの動き情報を、予測動きベクトルとして算出してもよい。
【００３８】
符号化コスト算出部１０４は、相関値算出部１０１より出力される相関値と、予測動きベクトル算出部１０３より出力される予測動きベクトルＭＶnpredを入力とする。さらに、動きベクトル決定部１０６より出力される探索ＭＶと初期化要求信号も入力される。そして、各ブロックサイズに対応する複数の候補ブロックの符号化コストＣＯＳＴ0〜ＣＯＳＴ4を計算して、ブロックサイズ決定部１０５及び動きベクトル決定部１０６へと出力する。以下、これら複数の符号化コストＣＯＳＴ0〜ＣＯＳＴ4をまとめて、ＣＯＳＴnと表記する。また、各ブロックサイズに対応する複数の候補ブロックそれぞれの仮の動きベクトルＭＶ0〜ＭＶ4を決定し、動きベクトル決定部１０６へと出力する。以下、これら複数の仮の動きベクトルＭＶ0〜ＭＶ4をまとめて、ＭＶnと表記する。なお、符号化コスト算出部１０４における詳細な処理については後述する。
【００３９】
ブロックサイズ決定部１０５は、符号化コスト算出部１０４より出力される、各ブロックサイズに対応する複数の候補ブロックの符号化コストＣＯＳＴnを入力とする。そして、これら符号化コストＣＯＳＴnに基づいてブロック分割を決定し、ブロック分割情報として動きベクトル決定部１０６及び外部の構成へと出力する。
【００４０】
ここで、符号化コストＣＯＳＴnを用いてブロックサイズを決定する方法について説明する。この決定は、１６画素×１６画素サイズの１ブロックに対応する第１の符号化コストＣＯＳＴ0と、８画素×８画素サイズの４ブロックに対応する符号化コストの総和である、第２の符号化コスト総和ＣＯＳＴ_s_allとを比較することにより行われる。まず、第２の符号化コスト総和ＣＯＳＴ_s_allは、次式(9)のように求める。
【００４１】
ＣＯＳＴ_s_all＝ＣＯＳＴ1＋ＣＯＳＴ2＋ＣＯＳＴ3＋ＣＯＳＴ4    ・・・(9)
実際の比較としては、例えば次式(10)の示す条件式が成り立つ場合には、ブロックサイズを１６画素×１６画素サイズに決定し、成り立たない場合には８画素×８画素サイズに決定する。
【００４２】
ＣＯＳＴ0＜λ・ＣＯＳＴ_s_all＋μ      ・・・(10)
(10)式において、λ及びμは、予め定められた係数である。
【００４３】
一般に、小さいブロックサイズを選択する場合は大きいブロックサイズを選択する場合に比べて処理負荷が大きいため、処理に必要なリソースに余裕がない場合には、なるべく大きいブロックサイズを選ぶように設定するのが望ましい。例えば、処理時間に余裕がない場合には、λを１より大きめの値に設定し、μを０より十分大きい値に設定すれば良い。反対に、処理時間に十分余裕があり、符号化効率を優先させたい場合には、λを１若しくは１より少し大きい値に設定し、μを０若しくは０より少し大きい値に設定すれば、限られた処理時間内で最大の符号化効率が実現される。該設定は、当該処理ブロック毎に割り当てられた処理の許容時間すなわち、許容される最大処理時間の情報に応じて適応的に行なわれるようにすれば、好適な符号化結果を得ることができる。
【００４４】
動きベクトル決定部１０６には、符号化コスト算出部１０４より出力される符号化コストＣＯＳＴn及び、仮の動きベクトルＭＶn及び、ブロックサイズ決定部１０５より出力されるブロック分割情報が入力される。該入力された各信号に基き、所定の探索アルゴリズムに従って次の探索ポイントを計算し、該探索ポイントに対応する探索ＭＶを順次、動き補償部１０２及び符号化コスト算出部１０４へと出力する。また、現処理対象ブロックにおける探索処理が終了する際に、上記各入力信号に基づいて最も符号化コストが小さくなるような動きベクトルを最終的な動きベクトルとして決定し、これをＭＶ情報として外部構成へと出力する。そしてさらに、次の処理対象ブロックの探索を開始するために、初期化要求信号を符号化コスト算出部１０４へ与える。
【００４５】
●符号化コスト算出処理
以下、符号化コスト算出部１０４における処理について詳細に説明する。
【００４６】
符号化コスト算出部１０４は図１に示されるように、暫定値保持部＃０〜＃４及びコスト計算部１０４１とで構成される。暫定値保持部＃０〜＃４は、それぞれＳＡＤ0〜ＳＡＤ4及びＳＡＴＤ0〜ＳＡＴＤ4を入力し、また、動きベクトル決定部１０６より出力される探索ＭＶならびに初期化要求信号を入力する。
【００４７】
以下、暫定値保持部＃０〜＃４のそれぞれに対応する各信号について、添え字ｎ（ｎ＝０〜４）を付すことによってまとめて表記する。
【００４８】
暫定値保持部＃０〜＃４はそれぞれ、複数の探索ポイントに対応する複数のＳＡＤnのうち、最も値の小さいＳＡＤnに対応する、第１の動きベクトルＭＶn_SADを保持・出力する。言い換えれば、第１の相関値が最も高い相関を示すポイントに対応する、第１の動きベクトルＭＶn_SADを保持・出力する。この第１の動きベクトルＭＶn_SADは、動きベクトル決定部１０６から出力されたＭＶ情報より検出される。さらに、第１の動きベクトルＭＶn_SADに対応するＳＡＴＤ値を、それぞれ相関値ＳＡＴＤn(ＭＶn_SAD)として算出する。このＳＡＴＤn(ＭＶn_SAD)が、本実施形態における第３の相関値となる。
【００４９】
尚、本実施形態においては、上記第１の動きベクトルＭＶn_SADを、最も値の小さいＳＡＤnに対応するベクトルとして決定する例を示したが、本発明はこの決定方法に限定されるものではない。例えば、ＳＡＤnだけでなく、予測動きベクトルＭＶnpredと上記探索ポイントに対応する動きベクトルとのそれぞれの差分情報も併せて考慮する。すなわち、ＳＡＤ及び動き情報の両方から求められる符号化コストを逐一求め、該符号化コストが最も低い探索ポイントに対応する動きベクトルとして、第１の動きベクトルＭＶn_SADを求めても良い。
【００５０】
符号化コスト算出部１０４においてはまた、複数の探索ポイントに対応する複数のＳＡＴＤnの中から、最も値の小さいＳＡＴＤnに対応する第２の動きベクトルＭＶn_SATDをそれぞれ検出して保持・出力する。言い換えれば、第２の相関値が最も高い相関を示すポイントに対応する、第２の動きベクトルＭＶn_SADを保持・出力する。さらに、第２の動きベクトル該ＭＶn_SATDに対応するＳＡＴＤ値を、それぞれＳＡＴＤn(ＭＶn_SATD)として算出する。このＳＡＴＤn(ＭＶn_SATD)が、本実施形態における第４の相関値となる。
【００５１】
尚、第２の動きベクトルＭＶn_SATDの決定方法についても、上述した第１の動きベクトルＭＶn_SADと同様に、予測動きベクトルＭＶnと探索ポイントに対応する動きベクトルとのそれぞれの差分情報もあわせて考慮することが有効である。すなわち、ＳＡＴＤ及び動き情報両方から求められる符号化コストを逐一求め、該符号化コストが最も低い探索ポイントに対応する動きベクトルとして、第２の動きベクトルＭＶn_SATDを求めても良い。
【００５２】
次に、コスト計算部１０４１では、予測動きベクトル算出部１０３から出力される予測動きベクトルＭＶnpredと、暫定値保持部＃０〜＃４より出力される第１の動きベクトルＭＶn_SADとの差分情報ＭＶＤn_SAD（不図示）を算出する。これが本実施形態における第１の差分ベクトルとなる。さらに、予測動きベクトルＭＶnpredと、暫定値保持部＃０〜＃４より出力される第２の動きベクトルＭＶn_SATDとの差分情報ＭＶＤn_SATD（不図示）もあわせて算出する。これが本実施形態における第２の差分ベクトルとなる。
【００５３】
コスト計算部１０４１ではまた、暫定値保持部＃０〜＃４より出力される第３の相関値ＳＡＴＤn(ＭＶn_SAD)と、上記のように算出した第１の差分ベクトルＭＶＤn_SADより、ＳＡＤに基く第１の符号化コスト候補ＣＯＳＴn_SADを算出する。同様に、暫定値保持部＃０〜＃４より出力される第４の相関値ＳＡＴＤn(ＭＶn_SATD)と、上記のように算出した第２の差分ベクトルＭＶＤn_SATDより、ＳＡＴＤに基く第２の符号化コスト候補ＣＯＳＴn_SATDを算出する。
【００５４】
第１及び第２の符号化コスト候補ＣＯＳＴn_SAD，ＣＯＳＴn_SATDは例えば、次式(11)、(12)によってそれぞれ計算するのが望ましい。
【００５５】
ＣＯＳＴn_SAD＝ＳＡＴＤn(ＭＶn_SAD)＋α・ＭＶＤn_SAD      ・・・(11)
ＣＯＳＴn_SATD＝ＳＡＴＤn(ＭＶn_SATD)＋α・ＭＶＤn_SATD      ・・・(12)
なお、上記式(11)、(12)において、n=0，1，2，3、であるとする。また、αは所定の係数であり、固定値であってもよいが、量子化スケール値によって画像情報の符号化コストと動き情報の符号化コストの比が変化するため、量子化スケール値に応じてαの値を変化させるようにしてもよい。例えば、量子化スケール値が大きいほど、αの値が大きくなるように設定することが有効である。
【００５６】
コスト計算部１０４１は、上記のように算出した第１の符号化コスト候補ＣＯＳＴn_SADと第２の符号化コスト候補ＣＯＳＴn_SATDとを比較し、それぞれいずれか一方を符号化コストＣＯＳＴnとして選択する。また、該選択結果に基いて、第１及び第２の動きベクトルＭＶn_SAD，ＭＶn_SATDのいずれか一方をそれぞれ選択し、仮の動きベクトル情報ＭＶnとして動きベクトル決定部１０６へ出力する。
【００５７】
なお、第１及び第２の符号化コスト候補同士の比較は、それぞれの値をそのまま比較するものであってもよいし、次式(13)のような条件式を用いても良い。例えば、式(13)の条件が成り立つときにはＳＡＤに基くコスト情報を、そうでないときはＳＡＴＤに基くコスト情報を選択する。
【００５８】
ＣＯＳＴn_SAD＜γ・ＣＯＳＴn_SATD＋δ      ・・・(13)
なお、上記式(13)において、n=0，1，2，3、であるとする。また、γ及びδは所定の係数であり、これらの値は通常、γ=１，δ=０である。しかしながら、そのときどきの符号量の情報を参照して、動き情報の占める割合が比較的大きくなってきた場合に、係数γを１より大きくするか、係数δを０より大きくするように調整しても良い。このように調整することによって、動き情報の増加をより抑えることができる。
【００５９】
符号化コスト算出部１０４はまた、動きベクトル決定部１０６より出力される初期化要求信号に従い、初期化要求がなされたときは直ちに内部状態を初期化する。
【００６０】
以上説明したように本実施形態によれば、ブロックマッチングの相関値としてＳＡＤのみ、若しくはＳＡＴＤのみを用いるのではなく、それぞれ性質の異なる両方の相関値を用いて、動き補償の単位ブロックサイズを決定する。すなわち、ＳＡＤとＳＡＴＤのそれぞれの性質を利用して、より符号化コストが低くなる方の相関値に基く情報を選択的に用いることにより、従来に比べて動き情報の符号量増加を抑えつつ、効率的に画像情報の符号量を低減させることができる。結果として、動画像全体としての符号化効率を向上させることが可能となる。このような本実施形態の効果は、差分画像をＤＣＴした際にＤＣＴ係数の一部に電力が集中してしまうような画像において顕著である。
【００６１】
＜第２実施形態＞
以下、本発明に係る第２実施形態について説明する。
【００６２】
図２は、第２実施形態における動きベクトル探索装置の構成を示すブロック図である。図２において、上述した第１実施形態の図１と同様の構成には同一番号を付し、説明を省略する。
【００６３】
同図において、符号化コスト算出部２０４が第２実施形態における特徴的な構成であり、上述した第１実施形態の符号化コスト算出部１０４とは符号化コストの算出方法が異なる。以下、符号化コスト算出部２０４における符号化コスト算出処理について、詳細に説明する。
【００６４】
符号化コスト算出部２０４は、相関値算出部１０１より出力される相関値と、予測動きベクトル算出部１０３より出力される予測動きベクトルＭＶnpredを入力とする。さらに、動きベクトル決定部１０６より出力される探索ＭＶと初期化要求信号も入力される。そして、各ブロックサイズに対応する複数の候補ブロックの符号化コストＣＯＳＴnを計算して、ブロックサイズ決定部１０５及び動きベクトル決定部１０６へと出力する。また、各ブロックサイズに対応する複数の候補ブロックそれぞれの仮の動きベクトルＭＶnを決定し、動きベクトル決定部１０６へと出力する。
【００６５】
符号化コスト算出部２０４は図２に示されるように、暫定値保持部＃０〜＃４及びコスト計算部２０４１とで構成される。暫定値保持部＃０〜＃４は、それぞれＳＡＤn及びＳＡＴＤnを入力し、また、動きベクトル決定部１０６より出力される探索ＭＶならびに初期化要求信号を入力する。
【００６６】
暫定値保持部＃０〜＃４はそれぞれ、複数の探索ポイントに対応する複数のＳＡＤnの中から、最も値の小さいＳＡＤnに対応する第１の動きベクトルＭＶn_SADを検出して保持・出力する。さらに、第１の動きベクトルＭＶn_SADに対応するＳＡＤ値を、それぞれＳＡＤn(ＭＶn_SAD)として算出する。このＳＡＤn(ＭＶn_SAD)が、第２実施形態における第５の相関値となる。第２実施形態においては、この第５の相関値として、第１実施形態の第３の相関値のようなＳＡＴＤ値ではなく、ＳＡＤ値を算出することを特徴とする。
【００６７】
尚、第２実施形態においても、第１の動きベクトルＭＶn_SADを、最も値の小さいＳＡＤnに対応するベクトルとして決定する例を示したが、本発明はこの決定方法に限定されるものではない。例えば、ＳＡＤnだけでなく、予測動きベクトルＭＶnpredと上記探索ポイントに対応する動きベクトルとのそれぞれの差分情報も併せて考慮する。すなわち、ＳＡＤ及び動き情報の両方から求められる符号化コストを逐一求め、該符号化コストが最も低い探索ポイントに対応する動きベクトルとして、第１の動きベクトルＭＶn_SADを求めても良い。
【００６８】
符号化コスト算出部２０４においてはまた、複数の探索ポイントに対応する複数のＳＡＴＤnの中から、最も値の小さいＳＡＴＤnに対応する第２の動きベクトルＭＶn_SATDをそれぞれ検出して保持・出力する。さらに、第２の動きベクトルＭＶn_SATDに対応するＳＡＴＤ値を、それぞれＳＡＴＤn(ＭＶn_SATD)として算出する。のＳＡＴＤn(ＭＶn_SAD)が、第２実施形態における第６の相関値となる。
【００６９】
尚、第２の動きベクトルＭＶn_SATDの決定方法についても、第１の動きベクトルＭＶn_SADと同様に、予測動きベクトルＭＶnpredと探索ポイントに対応する動きベクトルとのそれぞれの差分情報もあわせて考慮することが有効である。すなわち、ＳＡＴＤ及び動き情報両方から求められる符号化コストを逐一求め、該符号化コストが最も低い探索ポイントに対応する動きベクトルとして、上記ＭＶn_SATDを求めても良い。
【００７０】
次に、コスト計算部２０４１では、予測動きベクトル算出部１０３より出力された予測動きベクトルＭＶnpredと、暫定値保持部＃０〜＃４より出力される第１の動きベクトルＭＶn_SADとの差分情報ＭＶＤn_SAD（不図示）を算出する。これが第２実施形態における第１の差分ベクトルとなる。さらに、予測動きベクトルＭＶnpredと、暫定値保持部＃０〜＃４より出力される第２の動きベクトルＭＶn_SATDとの差分情報ＭＶＤn_SATD（不図示）もあわせて算出する。これが第２実施形態における第２の差分ベクトルとなる。
【００７１】
コスト計算部２０４１ではまた、暫定値保持部＃０〜＃４より出力される第５の相関値ＳＡＤn(ＭＶn_SAD)と、第１の差分ベクトルＭＶＤn_SADより、ＳＡＤに基く第１の符号化コスト候補ＣＯＳＴn_SADを算出する。同様に、暫定値保持部＃０〜＃４より出力される第６の相関値ＳＡＴＤn(ＭＶn_SATD)と、上記のように算出したＭＶＤn_SATDより、ＳＡＴＤに基く第２の符号化コスト候補ＣＯＳＴn_SATDを算出する。
【００７２】
第１及び第２の符号化コスト候補ＣＯＳＴn_SAD，ＣＯＳＴn_SATDは例えば、次式(14)、(15)によってそれぞれ計算するのが望ましい。
【００７３】
ＣＯＳＴn_SAD＝β・ＳＡＤn(ＭＶn_SAD)＋α・ＭＶＤn_SAD      ・・・(14)
ＣＯＳＴn_SATD＝ＳＡＴＤn(ＭＶn_SATD)＋α・ＭＶＤn_SATD      ・・・(15)
なお、上記式(14)、(15)において、n=0，1，2，3、であるとする。また、α，βは所定の係数である。係数αは固定値であってもよいが、量子化スケール値によって画像情報の符号化コストと動き情報の符号化コストの比が変化するため、量子化スケール値に応じてαの値を変化させるようにしてもよい。例えば、量子化スケール値が大きいほど、αの値が大きくなるように設定することが有効である。また係数βは、ＳＡＤ値をＳＡＴＤ値と比較できるように正規化するための、正規化係数として用いる。
【００７４】
コスト計算部２０４１は、上記のように算出した第１の符号化コスト候補ＣＯＳＴn_SADと、第２の符号化コスト候補ＣＯＳＴn_SATDとを比較し、それぞれいずれか一方を符号化コストＣＯＳＴnとして選択する。また、該選択結果に基いて、第１及び第２の動きベクトルＭＶn_SAD，ＭＶn_SATDのそれぞれいずれか一方を選択し、仮の動きベクトル情報ＭＶnとして動きベクトル決定部１０６へ出力する。
【００７５】
なお、第１及び第２の符号化コスト候補同士の比較は、上述した第１実施形態と同様の方法によって行えばよい。
【００７６】
符号化コスト算出部２０４はまた、動きベクトル決定部１０６より出力される初期化要求信号に従い、初期化要求がなされたときは直ちに内部状態を初期化する。
【００７７】
以上説明した様に第２実施形態の構成によっても、上述した第１実施形態と同様に、動き情報の符号量増加を抑えつつ、効率的に画像情報の符号量を低減させ、動画像全体として符号化効率を向上させることが可能となる。
【００７８】
＜他の実施形態＞
本発明は例えば、システム、装置、方法、プログラム若しくは記憶媒体(記録媒体)等としての実施態様をとることが可能である。具体的には、複数の機器（例えば、ホストコンピュータ、インタフェース機器、撮影装置、webアプリケーション等）から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【００７９】
本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システムあるいは装置に直接あるいは遠隔から供給し、そのシステムあるいは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される。なお、この場合のプログラムとは、実施形態において図に示したフローチャートに対応したコンピュータ可読のプログラムである。
【００８０】
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【００８１】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であっても良い。
【００８２】
プログラムを供給するための記録媒体としては、以下に示す媒体がある。例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD-ROM、CD-R、CD-RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD-ROM，DVD-R)などである。
【００８３】
プログラムの供給方法としては、以下に示す方法も可能である。すなわち、クライアントコンピュータのブラウザからインターネットのホームページに接続し、そこから本発明のコンピュータプログラムそのもの(又は圧縮され自動インストール機能を含むファイル)をハードディスク等の記録媒体にダウンロードする。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
【００８４】
また、本発明のプログラムを暗号化してCD-ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせることも可能である。すなわち該ユーザは、その鍵情報を使用することによって暗号化されたプログラムを実行し、コンピュータにインストールさせることができる。
【００８５】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。さらに、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【００８６】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、実行されることによっても、前述した実施形態の機能が実現される。すなわち、該プログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行うことが可能である。
【図面の簡単な説明】
【００８７】
【図１】本発明に係る一実施形態における動き探索装置の構成を示すブロック図である。
【図２】第２実施形態における動き探索装置の構成を示すブロック図である。
【図３】一般的な可変ブロックサイズの概念を示す図である。
【図４】ＳＡＤを用いた場合とＳＡＴＤを用いた場合における１フレーム当たりの符号量を比較した図である。
【図５】処理対象ブロックと予測ブロックのそれぞれにおける画素の位置関係を示す図である。
【図１】
2009272702.tif 000009
【図２】
2009272702.tif 000010
【図３】
2009272702.tif 000011
【図４】
2009272702.tif 000012
【図５】
2009272702.tif 000013