(57)【特許請求の範囲】
【請求項１】
符号化対象画像の所定の位置に存在する符号化対象ブロック画像に対して、候補としての複数の動きベクトルから選択される１つの動きベクトルを使用して動き補償予測符号化を行う動画像符号化装置であって、
前記複数の動きベクトルそれぞれについて、前記符号化対象ブロック画像と、前記所定の位置に対応する参照画像内の位置を動きベクトルに従って移動させた位置に存在する参照ブロック画像との差分を算出する算出手段と、
選択される動きベクトルを符号化した場合の符号量が小さくなることと当該選択される動きベクトルに対応する前記差分が小さくなることとが所定のバランスで達成されるように、前記複数の動きベクトルから１つの動きベクトルを選択する選択手段と、
前記選択手段で選択された動きベクトルと、当該動きベクトルについて前記算出手段で算出された差分とを符号化する符号化手段と、
を備え、
前記所定のバランスは、前記算出手段で算出された複数の差分の最小値が小さいほど、前記符号量が小さくなることよりも前記差分が小さくなることを優先し、当該最小値が大きいほど、当該差分が小さくなることよりも当該符号量が小さくなることを優先するバランスである
ことを特徴とする動画像符号化装置。
【請求項２】
前記選択手段は、前記算出手段で算出された複数の差分の最小値が小さいほど小さい値の係数を選択する係数選択手段を含み、
前記選択手段は、選択される動きベクトルを符号化した場合の符号量と前記係数との積と、当該選択される動きベクトルに対応する前記差分と、の和が最小になるように、前記選択を行う
ことを特徴とする請求項１に記載の動画像符号化装置。
【請求項３】
前記符号化対象ブロック画像内の各画素の値のばらつきの度合いを検出する検出手段を更に備え、
前記選択手段は、前記ばらつきの度合いが小さいほど、前記所定のバランスにおける前記優先の傾向を弱めて前記選択を行う
ことを特徴とする請求項１に記載の動画像符号化装置。
【請求項４】
前記選択手段は、
異なる値の複数の係数それぞれについて、選択される動きベクトルを符号化した場合の符号量と係数との積と、当該選択される動きベクトルに対応する前記差分と、の和が最小になるように、前記複数の動きベクトルから１つの動きベクトルを候補ベクトルとして選択する候補選択手段と、
前記算出手段で算出された複数の差分の最小値が小さいほど、前記複数の係数のうちの小さい値の係数について前記候補選択手段で選択された候補ベクトルを、前記選択手段が選択する１つの動きベクトルとして決定する決定手段と、
を含むことを特徴とする請求項１に記載の動画像符号化装置。
【請求項５】
符号化対象画像の所定の位置に存在する符号化対象ブロック画像に対して、候補としての複数の動きベクトルから選択される１つの動きベクトルを使用して動き補償予測符号化を行う動画像符号化装置であって、
前記複数の動きベクトルそれぞれについて、前記符号化対象ブロック画像と、前記所定の位置に対応する参照画像内の位置を動きベクトルに従って移動させた位置に存在する参照ブロック画像とを縮小し、当該縮小されたブロック画像と当該縮小された参照ブロック画像との差分を算出する第１算出手段と、
選択される動きベクトルを符号化した場合の符号量が小さくなることと当該選択される動きベクトルに対応する前記差分が小さくなることとが第１のバランスで達成されるように、前記複数の動きベクトルから１つの動きベクトルを選択する第１選択手段と、
前記複数の動きベクトルのうち、前記第１選択手段で選択された動きベクトルが指す位置からの距離が閾値以下の位置を指す動きベクトルそれぞれについて、前記ブロック画像と前記参照ブロック画像との差分を算出する第２算出手段と、
選択される動きベクトルを符号化した場合の符号量が小さくなることと当該選択される動きベクトルに対応する前記差分が小さくなることとが第２のバランスで達成されるように、前記複数の動きベクトルのうちの、前記第１選択手段で選択された動きベクトルが指す位置からの距離が前記閾値以下の位置を指す動きベクトルから、１つの動きベクトルを選択する第２選択手段と、
前記第２選択手段で選択された動きベクトルと、当該動きベクトルについて前記第２算出手段で算出された差分とを符号化する符号化手段と、
を備え、
前記第１のバランスは、前記第１算出手段で算出された複数の差分の最小値が小さいほど、前記符号量が小さくなることよりも前記差分が小さくなることを優先し、当該最小値が大きいほど、当該差分が小さくなることよりも当該符号量が小さくなることを優先するバランスである
ことを特徴とする動画像符号化装置。
【請求項６】
符号化対象画像の所定の位置に存在する符号化対象ブロック画像に対して、候補としての複数の動きベクトルから選択される１つの動きベクトルを使用して動き補償予測符号化を行う動画像符号化装置の制御方法であって、
算出手段が、前記複数の動きベクトルそれぞれについて、前記符号化対象ブロック画像と、前記所定の位置に対応する参照画像内の位置を動きベクトルに従って移動させた位置に存在する参照ブロック画像との差分を算出する算出工程と、
選択手段が、選択される動きベクトルを符号化した場合の符号量が小さくなることと当該選択される動きベクトルに対応する前記差分が小さくなることとが所定のバランスで達成されるように、前記複数の動きベクトルから１つの動きベクトルを選択する選択工程と、
符号化手段が、前記選択工程で選択された動きベクトルと、当該動きベクトルについて前記算出工程で算出された差分とを符号化する符号化工程と、
を備え、
前記所定のバランスは、前記算出工程で算出された複数の差分の最小値が小さいほど、前記符号量が小さくなることよりも前記差分が小さくなることを優先し、当該最小値が大きいほど、当該差分が小さくなることよりも当該符号量が小さくなることを優先するバランスである
ことを特徴とする制御方法。
【請求項７】
符号化対象画像の所定の位置に存在する符号化対象ブロック画像に対して、候補としての複数の動きベクトルから選択される１つの動きベクトルを使用して動き補償予測符号化を行う動画像符号化装置の制御方法であって、
第１算出手段が、前記複数の動きベクトルそれぞれについて、前記符号化対象ブロック画像と、前記所定の位置に対応する参照画像内の位置を動きベクトルに従って移動させた位置に存在する参照ブロック画像とを縮小し、当該縮小されたブロック画像と当該縮小された参照ブロック画像との差分を算出する第１算出工程と、
第１選択手段が、選択される動きベクトルを符号化した場合の符号量が小さくなることと当該選択される動きベクトルに対応する前記差分が小さくなることとが第１のバランスで達成されるように、前記複数の動きベクトルからの１つの動きベクトルを選択する第１選択工程と、
第２算出手段が、前記複数の動きベクトルのうち、前記第１選択工程で選択された動きベクトルが指す位置からの距離が閾値以下の位置を指す動きベクトルそれぞれについて、前記ブロック画像と前記参照ブロック画像との差分を算出する第２算出工程と、
第２選択手段が、選択される動きベクトルを符号化した場合の符号量が小さくなることと当該選択される動きベクトルに対応する前記差分が小さくなることとが第２のバランスで達成されるように、前記複数の動きベクトルのうちの、前記第１選択工程で選択された動きベクトルが指す位置からの距離が前記閾値以下の位置を指す動きベクトルから、１つの動きベクトルを選択する第２選択工程と、
符号化手段が、前記第２選択工程で選択された動きベクトルと、当該動きベクトルについて前記第２算出工程で算出された差分とを符号化する符号化工程と、
を備え、
前記第１のバランスは、前記第１算出工程で算出された複数の差分の最小値が小さいほど、前記符号量が小さくなることよりも前記差分が小さくなることを優先し、当該最小値が大きいほど、当該差分が小さくなることよりも当該符号量が小さくなることを優先するバランスである
ことを特徴とする制御方法。
【請求項８】
コンピュータに請求項６又は７に記載の制御方法の各工程を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画像符号化装置、及びその制御方法に関する。
【背景技術】
【０００２】
従来、被写体を撮影し、撮影により得られた動画像データを圧縮符号化して記録する動画像符号化装置として、デジタルビデオカメラがよく知られている。近年では、動画像データを記録する記録媒体は、従来の磁気テープからランダムアクセス性などの利便性が高いディスク媒体や半導体メモリなどに移り変わってきている。符号化方式としては、フレーム間での動き予測を用いる符号化（動き補償予測符号化）により動画像データを高い圧縮率で圧縮可能なＭＰＥＧ２方式が普及している。また、近年では、動画像データを更に高い圧縮率で圧縮可能なＨ．２６４方式なども用いられている。
【０００３】
動き補償予測符号化を行う動画像符号化装置は、フレーム画像を分割した符号化単位であるマクロブロック（ＭＣブロック）単位に、フレーム間の動きベクトルを探索し、動き補償を行うことによって情報量を削減する。動きベクトルを探索するときは、符号化対象のマクロブロックの画像（符号化対象画像）と参照ブロックの画像（参照画像）との類似度が考慮される。即ち、情報量を削減するには、符号化対象画像と参照画像との間の類似度を大きくする（符号化すべき差分画像を小さくする）動きベクトルが適している。
【０００４】
しかしながら、動き補償を利用する場合、差分画像に加えて、動きベクトルも符号化して記録する必要がある。従って、全体としての情報量を削減するためには、符号化対象画像と参照画像との間の類似度だけではなく、動きベクトルの符号量も考慮する必要がある。そこで、一般的には以下の評価関数を用いて動きベクトルの探索が行われる。
Ｃ  ＝  Ｄ  ＋  λＲ    （１）
ここで、Ｄは符号化対象画像と参照画像との間の差分、Ｒは動きベクトルの符号量、λは係数である。従って、Ｃは、使用された（候補の）動きベクトルの符号化コストを示す。差分Ｄは、差分二乗和や差分絶対値和などを用いて表現される。係数λとしては、量子化ステップが一般的には使用される。
【０００５】
ところで、動きベクトルの符号量Ｒは、その動きベクトルと、符号化対象のマクロブロックの周囲のマクロブロックの動きベクトルとの差分に基づいて算出される。従って、複数のマクロブロックの動きベクトルを並行して探索する場合、動きベクトルの符号量Ｒを算出する際に周囲のマクロブロックの動きベクトルが選択されておらず、正確な算出を行えない可能性がある。これに対処するための技術が、例えば特許文献１に記載されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００８−１５４０７２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述した式（１）に従って動きベクトルを探索する場合、差分Ｄを最小にしない動きベクトルが選択される可能性がある。即ち、動画像における実際の動き（変化）に最も近い動きベクトルとは異なる動きベクトルが選択され、その結果、符号化された動画像の画質が劣化する可能性がある。
【０００８】
一般的には、画質の劣化は視覚的にそれほど明確には認識されない。しかしながら、変化の小さな動画像（例えば、青空の中を雲が形状を維持したまま移動する動画像）の場合、画質の劣化が視覚的に認識され易い（例えば、復号画像において雲の残像として認識される）。
【０００９】
従来の技術では係数λが固定されているため、どのような動画像に対しても動きベクトルの符号量が同じ重みで考慮される。その結果、画質の劣化が認識され易い動画像に対しても、動画像における実際の動きにそれほど近くない動きベクトルが選択され、画質に対するユーザの満足度を低下させる可能性がある。特許文献１も、このような問題については考慮していない。
【００１０】
本発明はこのような状況に鑑みてなされたものであり、動き補償予測符号化において、変化の小さな動画像における画質の劣化を抑制するように動きベクトルを選択する技術を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記課題を解決するために、第１の本発明は、符号化対象画像の所定の位置に存在する符号化対象ブロック画像に対して、候補としての複数の動きベクトルから選択される１つの動きベクトルを使用して動き補償予測符号化を行う動画像符号化装置であって、前記複数の動きベクトルそれぞれについて、前記符号化対象ブロック画像と、前記所定の位置に対応する参照画像内の位置を動きベクトルに従って移動させた位置に存在する参照ブロック画像との差分を算出する算出手段と、選択される動きベクトルを符号化した場合の符号量が小さくなることと当該選択される動きベクトルに対応する前記差分が小さくなることとが所定のバランスで達成されるように、前記複数の動きベクトルから１つの動きベクトルを選択する選択手段と、前記選択手段で選択された動きベクトルと、当該動きベクトルについて前記算出手段で算出された差分とを符号化する符号化手段と、を備え、前記所定のバランスは、前記算出手段で算出された複数の差分の最小値が小さいほど、前記符号量が小さくなることよりも前記差分が小さくなることを優先し、当該最小値が大きいほど、当該差分が小さくなることよりも当該符号量が小さくなることを優先するバランスであることを特徴とする動画像符号化装置を提供する。
【００１２】
なお、その他の本発明の特徴は、添付図面及び以下の発明を実施するための形態における記載によって更に明らかになるものである。
【発明の効果】
【００１３】
以上の構成により、本発明によれば、動き補償予測符号化において、変化の小さな動画像における画質の劣化を抑制するように動きベクトルを選択することが可能となる。
【図面の簡単な説明】
【００１４】
【図１】本実施形態に係る動画像符号化装置１００の構成例を示すブロック図
【図２】ブロック画像と参照ブロック画像との差分の最小値を検索する処理を示すフローチャート
【図３】係数λの決定処理を示すフローチャート（第１の実施形態）
【図４】図２で算出されたＳＡＤ及び図３で決定された係数λに基づく、動きベクトルの選択処理を示すフローチャート
【図５】係数λの決定処理を示すフローチャート（第２の実施形態）
【図６】動きベクトル選択部１０３の構成を示すブロック図（第３の実施形態）
【図７】動きベクトル選択部１０３の構成を示すブロック図（第４の実施形態）
【発明を実施するための形態】
【００１５】
以下、添付図面を参照して、本発明の実施形態を説明する。なお、本発明の技術的範囲は、特許請求の範囲によって確定されるのであって、以下の個別の実施形態によって限定されるわけではない。また、実施形態の中で説明されている特徴の組み合わせすべてが、本発明に必須とは限らない。
【００１６】
［第１の実施形態］
図１は、本実施形態に係る動画像符号化装置１００の構成例を示すブロック図である。ここでは、レンズやＣＣＤ等のカメラ部を含む撮像部１０１と、フレームメモリ１０２と、動きベクトルを探索する動きベクトル選択部１０３と、動きベクトルに基づきインター予測画像データを生成するフレーム間動き補償部１０４を備える。また、イントラ予測画像データを生成するイントラ予測部１０５、インター予測画像データとイントラ予測画像データとのいずれかを選択する選択部１０６と、減算器１０７と、整数変換部１０８と、量子化部１０９とを備えている。さらに、逆量子化部１１０と、逆整数変換部１１１と、加算器１１２と、ループ内フィルタ１１３と、エントロピー符号化部１１５と、量子化制御部１１６と、符号量制御部１１７と、記録部１１８とを備えている。また、動画像符号化装置１００には記録媒体１１９が装着されており、フレームメモリ１０２は、インター予測に用いる参照画像を記憶する参照画像メモリ１１４を備えている。
【００１７】
図１の動画像符号化装置１００において、各ブロックは専用ロジック回路やメモリを用いてハードウェア的に構成されてもよい。或いは、メモリに記憶されている処理プログラムをＣＰＵが実行することにより、ソフトウェア的に構成されてもよい。
【００１８】
撮像部１０１により撮像して得られた動画像データは、第１フレーム、第２フレーム、第３フレーム、・・・のように生成順序で、フレームメモリ１０２に順次格納される。フレームメモリ１０２からは、例えば、第３フレーム、第１フレーム、第２フレーム、・・・と、符号化を行う順序で画像データを取り出していく。
【００１９】
ここで、符号化方法には、フレーム内の画像データのみで符号化するイントラ予測符号化と、フレーム間での予測も含めて符号化するインター予測符号化とがある。インター予測符号化を行うピクチャは、動き補償の単位（ＭＣブロック）に対して１枚の参照フレームとの予測を行うＰピクチャと、ＭＣブロックに対して２枚までの参照フレームとの予測を行うＢピクチャとがある。一方、イントラ予測符号化を行うピクチャは、Ｉピクチャである。なお、符号化するフレームの順番が入力されたフレームの順番と異なるのは、過去のフレームだけではなく、時間的に未来のフレームとの予測（後方予測）を可能にするためである。
【００２０】
イントラ予測符号化を行う場合、符号化単位となる符号化対象ブロックの画像データがフレームメモリ１０２から読み出されて、イントラ予測部１０５へ入力される。本実施形態では、１つの符号化対象ブロックの単位を横１６画素×縦１６画素とする。また、読み出された符号化対象ブロックに隣接する画素のデータもフレームメモリ１０２から読み出されて、イントラ予測部１０５へ入力される。
【００２１】
イントラ予測部１０５は、符号化対象ブロックと、その符号化対象ブロックに隣接する画素のデータから生成される複数のイントラ予測画像データとのブロックマッチングをそれぞれに行う。そして、最も相関の高いイントラ予測画像データを選択して選択部１０６へ出力する。イントラ予測符号化を行う場合は、選択部１０６は常にイントラ予測部１０５からの出力を選択し、イントラ予測画像データを減算器１０７に出力する。
【００２２】
減算器１０７には、イントラ予測画像データとフレームメモリ１０２から読み出される符号化対象画像のブロック画像データとが入力され、符号化対象画像のブロック画像とイントラ予測画像との画素値の差分画像データを整数変換部１０８へ出力する。整数変換部１０８は、入力された画素値の差分画像データに整数変換を施し、量子化部１０９は、整数変換部１０８により整数変換された信号に対して量子化処理を行う。
【００２３】
エントロピー符号化部１１５は、量子化部１０９により量子化された変換係数をエントロピー符号化し、データストリームとして記録部１１８に出力する。ここで、量子化部１０９における量子化係数は、エントロピー符号化部１１５で発生した符号量や、符号量制御部１１７から設定される目標符号量などから量子化制御部１１６が算出する。記録部１１８は、エントロピー符号化部１１５から出力されたデータストリームを記録媒体１１９に記録する。
【００２４】
また、量子化部１０９により量子化された変換係数は、逆量子化部１１０にも入力される。逆量子化部１１０は、入力された変換係数を逆量子化し、逆整数変換部１１１は、逆量子化された信号に対して逆整数変換処理を施す。
【００２５】
加算器１１２には、逆整数変換されたデータと、イントラ予測部１０５で生成されたイントラ予測画像データとが入力されて加算される。加算後のデータは復号された再構成画像データとなり、イントラ予測部１０５に入力されてイントラ予測画像データの生成に用いられる。また、再構成画像データは、ループ内フィルタ１１３によって符号化歪の軽減処理が施され、後述するインター予測符号化の際に用いる参照画像データとして参照画像メモリ１１４に記憶される。
【００２６】
一方、インター予測符号化を行う場合、符号化単位となる符号化対象画像のブロック画像がフレームメモリ１０２から読み出されて、動きベクトル選択部１０３へ入力される。また、動きベクトル選択部１０３は、参照画像データを参照画像メモリ１１４から読み出し、符号化対象画像のブロック画像と参照画像とから動きベクトルを選択して、フレーム間動き補償部１０４に通知する。
【００２７】
フレーム間動き補償部１０４は、動きベクトル選択部１０３で選択された動きベクトルと、フレームメモリ１０２から得られた参照画像とを用いてインター予測画像データを生成し、動きベクトルと共に選択部１０６に提供する。選択部１０６は、インター予測符号化を行う場合には、インター予測画像データを選択して減算器１０７に提供する。
【００２８】
なお、フレームによっては、符号化対象ブロックごとにインター予測かイントラ予測かを選択することができる。イントラ予測を行う場合は前述のように動作し、イントラ予測の結果を選択部１０６へ通知する。インター予測を行う場合、選択部１０６はフレーム間動き補償部１０４からのインター予測画像データを選択して減算器１０７に出力する。選択部１０６は、動きベクトル選択部１０３におけるインター予測結果とイントラ予測部１０５におけるイントラ予測結果とに基づき、例えば、差分値が小さい方の予測方法を選択することができる。
【００２９】
減算器１０７では、符号化対象画像のブロック画像と予測画像との差分を計算し、差分画像データが生成される。差分画像データは整数変換部１０８に出力され、その後の処理は前述したイントラ予測符号化の場合と同様である。
【００３０】
次に、図２乃至図４を参照して、動きベクトル選択部１０３による動きベクトルの選択処理について詳細に説明する。動きベクトル選択部１０３は、候補としての複数の動きベクトル（候補ベクトル）のうちの１つを選択する。候補ベクトルの集合は、符号化対象のマクロブロックの画像（ブロック画像）の位置を基準として、参照画像の所定の範囲をカバーするように定義される。以下の説明において、符号化対象ブロック画像の位置に対応する参照画像内の位置を動きベクトルに従って移動させた位置に存在するブロック画像を、参照ブロック画像と呼ぶ。なお、マクロブロックは、符号化対象画像を分割して得られる。
【００３１】
図２は、符号化対象画像の所定の位置に存在する符号化対象ブロック画像と参照ブロック画像との差分の最小値を検索する処理を示すフローチャートである。本実施形態では、差分として、差分絶対値和（Ｓｕｍ  ｏｆ  Ａｂｓｏｌｕｔｅ  Ｄｉｆｆｅｒｅｎｃｅｓ（ＳＡＤ））を使用する。
【００３２】
Ｓ２０１で、動きベクトル選択部１０３は、ベクトル探索のための最初のアドレスｉをセットする（例えば、ｉに０が代入され、（ｉ＋１）番目の候補ベクトルが以下のＳ２０２乃至Ｓ２０４において使用される）。また、動きベクトル選択部１０３は、ＳＡＤの最小値を示す変数であるＭｉｎ＿ＳＡＤに、十分に大きな値（ＭＡＸ＿ＤＡＴ）をセットする。
【００３３】
Ｓ２０２で、動きベクトル選択部１０３は、アドレスｉのＳＡＤ（ＳＡＤ［ｉ］）を算出する。具体的には、動きベクトル選択部１０３は、符号化対象ブロック画像と、（ｉ＋１）番目の候補ベクトルに従って選択された参照ブロック画像との間のＳＡＤを算出する。
【００３４】
Ｓ２０３で、動きベクトル選択部１０３は、ＳＡＤ［ｉ］がＭｉｎ＿ＳＡＤより小さいか否かを判定する。ＳＡＤ［ｉ］がＭｉｎ＿ＳＡＤより小さい場合、Ｓ２０４で、動きベクトル選択部１０３は、Ｍｉｎ＿ＳＡＤにＳＡＤ［ｉ］を代入する。ＳＡＤ［ｉ］がＭｉｎ＿ＳＡＤより小さくない場合、処理はＳ２０４をスキップしてＳ２０５に進む。
【００３５】
Ｓ２０５で、動きベクトル選択部１０３は、全ての候補ベクトルについてＳＡＤの算出が完了しているか否かを判定する。完了している場合、本フローチャートの処理は終了する。そうでない場合、Ｓ２０６で、動きベクトル選択部１０３は、アドレスを１つ進め、処理をＳ２０２に戻す。
【００３６】
以上の処理により、候補ベクトルの集合に対する最小ＳＡＤが算出される。最小ＳＡＤが小さいということは、符号化対象の動画像の変化が小さい（例えば、青空の中を雲が形状を維持したまま静止又は移動している）ということを意味する。反対に、最小ＳＡＤが大きいということは、符号化対象の動画像の変化が大きい（例えば、青空の中で雲の形状が変化した、又は、符号化対象が常に変化している水の動画像である）ということを意味する。そこで、動きベクトル選択部１０３は次に、最小ＳＡＤに基づいて、動きベクトルの選択に使用する計算式のための係数λを決定する。
【００３７】
図３は、係数λの決定処理を示すフローチャートである。Ｓ３０１で、動きベクトル選択部１０３は、図２で算出したＭｉｎ＿ＳＡＤをセットする。Ｓ３０２で、動きベクトル選択部１０３は、Ｍｉｎ＿ＳＡＤが閾値Ｔｈ１より小さいか否かを判定する。小さい場合、処理はＳ３０３に進み、そうでない場合、処理はＳ３０４に進む。
【００３８】
Ｓ３０３で、動きベクトル選択部１０３は、係数λに０を代入し、本フローチャートの処理を終了する。後述する式（２）から理解できるように、係数λが０の場合、ベクトルの符号量が考慮されず、ＳＡＤだけに基づいて動きベクトルが選択される。従って、全体としての情報量の削減よりも、画質の向上が優先される。
【００３９】
Ｓ３０４で、動きベクトル選択部１０３は、Ｍｉｎ＿ＳＡＤが閾値Ｔｈ２より小さいか否かを判定する。小さい場合、処理はＳ３０５に進み、そうでない場合、処理はＳ３０６に進む。
【００４０】
Ｓ３０５で、動きベクトル選択部１０３は、係数λにＮ（量子化ステップ）を代入し、本フローチャートの処理を終了する。即ち、Ｔｈ１≦Ｍｉｎ＿ＳＡＤ＜Ｔｈ２の場合、動きベクトルの符号量は係数Ｎを掛けた重みで考慮される。
【００４１】
Ｓ３０６で、動きベクトル選択部１０３は、係数λにＮ＋α（α＞０）を代入し、本フローチャートの処理を終了する。この場合、動きベクトルの符号量は、Ｔｈ１≦Ｍｉｎ＿ＳＡＤ＜Ｔｈ２の場合よりも大きな重みで考慮される。即ち、動きの大きな動画像の場合（Ｍｉｎ＿ＳＡＤ≧Ｔｈ２の場合）、一般的に画質の劣化は認識され難いため、画質の向上よりも全体としての情報量の削減が優先される。
【００４２】
図４は、図２で算出されたＳＡＤ及び図３で決定された係数λに基づく、動きベクトルの選択処理を示すフローチャートである。Ｓ４０１で、動きベクトル選択部１０３は、ベクトル探索のための最初のアドレスｉをセットする（例えば、ｉに０が代入され、（ｉ＋１）番目の候補ベクトルが以下のＳ２０２乃至Ｓ２０４において使用される）。また、動きベクトル選択部１０３は、図３で決定した係数λをセットする。更に、動きベクトル選択部１０３は、符号化コストの最小値を示す変数であるＭｉｎ＿Ｃｏｓｔに、十分に大きな値（ＭＡＸ＿Ｃｏｓｔ）をセットする。
【００４３】
Ｓ４０２で、動きベクトル選択部１０３は、アドレスｉのＳＡＤ（ＳＡＤ［ｉ］）と、アドレスｉの動きベクトルの符号量Ｒと算出する。ＳＡＤ［ｉ］については、図２のＳ２０２で算出したものを再利用できる。
【００４４】
Ｓ４０３で、動きベクトル選択部１０３は、アドレスｉの動きベクトルを選択した場合の符号化コストがＭｉｎ＿Ｃｏｓｔより小さいか否かを判定する。ここで符号化コストは、
Ｃｏｓｔ  ＝  ＳＡＤ［ｉ］  ＋  λＲ    （２）
に従って算出される。符号化コスト＜Ｍｉｎ＿Ｃｏｓｔの場合、処理はＳ４０４に進み、そうでない場合、処理はＳ４０５に進む。
【００４５】
Ｓ４０４で、動きベクトル選択部１０３は、Ｍｉｎ＿Ｃｏｓｔに、式（２）で算出された符号化コストを代入する。また、動きベクトル選択部１０３は、この時のアドレスｉを記憶する（既に記憶されている場合、記憶されているアドレスを、この時のアドレスｉで更新する）。
【００４６】
Ｓ４０５で、動きベクトル選択部１０３は、全ての候補ベクトルについて符号化コストの算出が完了しているか否かを判定する。完了している場合、本フローチャートの処理は終了する。そうでない場合、Ｓ４０６で、動きベクトル選択部１０３は、アドレスを１つ進め、処理をＳ４０２に戻す。
【００４７】
以上の処理により、動き補償予測符号化における符号化対象ブロック画像に対して最終的に使用される動きベクトルが、候補ベクトルの集合から選択される。即ち、図４のフローチャートの処理が終了した時点で記憶されているアドレスｉ（Ｓ４０４で最後に記憶されたもの）に対応する動きベクトルが選択される。
【００４８】
以上の説明においては、ＳＡＤ、Ｔｈ１、Ｔｈ２、及び式（２）のような、具体的な差分の表現、閾値、及び計算式などに言及した。しかしながら、本実施形態は、このような具体的な言及によっては限定されない。本実施形態において重要なことは、符号化対象ブロック画像と参照ブロック画像との差分が小さくなることと動きベクトルの符号量が小さくなることとが所定のバランスで達成されるように、動きベクトルが選択されることである。ここで、所定のバランスは、差分の最小値が小さいほど、動きベクトルの符号量が小さくなることよりも差分が小さくなることを優先し、差分の最小値が大きいほど、差分が小さくなることよりも動きベクトルの符号量が小さくなることを優先するバランスである。
【００４９】
従って、本実施形態においては、例えば、ＳＡＤの代わりにＳＡＴＤ（Ｓｕｍ  ｏｆ  Ａｂｓｏｌｕｔｅ  Ｔｒａｎｓｆｏｒｍｅｄ  Ｄｉｆｆｅｒｅｎｃｅｓ）が使用されてもよい。また、図３においてＴｈ１及びＴｈ２を使用する代わりに、λ＝ｆ（Ｍｉｎ＿ＳＡＤ）という関数（ＳＡＤが小さいほどλが小さくなる）によって係数λを決定してもよい。
【００５０】
以上説明した構成により、本実施形態によれば、動き補償予測符号化において、変化の小さな動画像における画質の劣化を抑制するように動きベクトルを選択することが可能となる。
【００５１】
［第２の実施形態］
第２の実施形態では、係数λを決定する際に、符号化対象ブロック画像の特徴量を利用する。第２の実施形態は、図３に示す処理が図５に示す処理に置き換わること以外は、第１の実施形態と同様である。以下、図５を参照して、第２の実施形態について説明する。図５において、図３と同一又は同様の処理が行われるステップには同一の符号を付し、説明を省略する。
【００５２】
Ｓ５１０で、動きベクトル選択部１０３は、符号化対象ブロック画像の特徴量を検出する。特徴量は、符号化対象ブロック画像内の各画素のばらつきの度合いを示す。本実施形態では、特徴量として、分散値を利用するが、代わりに、輝度値の平均値やダイナミックレンジなどを利用してもよい。Ｓ５１１で、動きベクトル選択部１０３は、分散値に基づいて、閾値Ｔｈ１の値を決定する。
【００５３】
マクロブロックの特徴量として用いた分散値は、符号化難易度に相関があり、複雑な画像であれば数値は大きくなり、平坦な画像であれば数値は小さくなる。分散値が大きい画像は、動き検出で間違った位置のＳＡＤが大きくなる傾向がある。また、分散値の小さい画像は、動き検出で間違った位置のＳＡＤでもそれほど大きくならない。更に、ノイズ等により間違った位置のＳＡＤが最小となる場合がある。
【００５４】
このため、分散値の小さい画像では、Ｔｈ１により小さい数値を代入し、係数λを０以外にする。換言すれば、第１の実施形態において説明した「差分の最小値が小さいほど、動きベクトルの符号量が小さくなることよりも差分が小さくなることを優先し、差分の最小値が大きいほど、差分が小さくなることよりも動きベクトルの符号量が小さくなることを優先するバランス」における、優先の傾向が弱められる。
【００５５】
［第３の実施形態］
第３の実施形態では、処理の一部を並列化することにより動きベクトルの選択を高速化する構成について説明する。
【００５６】
図６は、第３の実施形態に係る動きベクトル選択部１０３の構成を示すブロック図である。図６において、符号化対象ブロック画像取得部６０１、参照ブロック画像取得部６０２、動きベクトル設定部６０３、及び差分算出部６０４は、第１の実施形態と同様に、複数の動きベクトルそれぞれについてＳＡＤを算出する（図２参照）。
【００５７】
具体的には、符号化対象ブロック画像取得部６０１は符号化対象ブロック画像をフレームメモリ１０２から取得する。参照ブロック画像取得部６０２は、動きベクトル設定部６０３が設定した動きベクトルに従って、参照ブロック画像を参照画像メモリ１１４から取得する。動きベクトル設定部６０３は、候補ベクトルの第１の集合から各候補ベクトルを順に参照ブロック画像取得部６０２に設定する。候補ベクトルの第１の集合は、第１の実施形態における候補ベクトルの集合に対応する。差分算出部６０４は、符号化対象ブロック画像取得部６０１が取得したブロック画像と参照ブロック画像取得部６０２が取得した参照ブロック画像との差分（ここでは、ＳＡＤとする）を算出する。差分算出部６０４は、算出したＳＡＤをＮ個の候補ベクトル選択部６０６−１、６０６−２、・・・、６０６−Ｎ（候補選択手段）へ出力する。差分算出部６０４はまた、算出したＳＡＤを、係数選択部６０７に出力する。ここで、差分算出部６０４は、第１の集合の全ての動きベクトルについてのＳＡＤの算出が完了していなくても、算出済みのＳＡＤから順に出力を行う。即ち、差分算出部６０４は、ＳＡＤ［０］が算出された時点でＳＡＤ［０］を出力し、ＳＡＤ［１］が算出された時点でＳＡＤ［１］を出力する。
【００５８】
ＳＡＤの算出と並行して、動きベクトル設定部６０３は、参照ブロック画像取得部６０２に対して設定した動きベクトルを動きベクトル符号量算出部６０５に通知する。動きベクトル符号量算出部６０５は、設定された動きベクトルの符号量を算出し、候補ベクトル選択部６０６−１、６０６−２、・・・、６０６−Ｎへ出力する。差分算出部６０４によるＳＡＤの出力と同様に、動きベクトル符号量算出部６０５は、算出済みの符号量から順に出力を行う。
【００５９】
候補ベクトル選択部６０６−１、６０６−２、・・・、６０６−Ｎそれぞれは、図４を参照して説明した手順で、候補ベクトルの第１の集合から、符号化コストが最小となる動きベクトルを選択する。但し、第１の実施形態とは異なり、係数λは、候補ベクトル選択部６０６−１、６０６−２、・・・、６０６−Ｎそれぞれに対して異なる値（λ１、λ２、・・・、λＮ）が事前に設定されている。候補ベクトル選択部６０６−１、６０６−２、・・・、６０６−Ｎそれぞれが１つの動きベクトルを選択するので、最終的にＮ個の動きベクトルが選択される。このＮ個の動きベクトルを、候補ベクトルの第２の集合と呼ぶ。
【００６０】
係数選択部６０７は、差分算出部６０４が出力したＳＡＤから、Ｍｉｎ＿ＳＡＤを検索する。そして、係数選択部６０７は、Ｍｉｎ＿ＳＡＤに基づいて、係数λ１、λ２、・・・、λＮのうちの１つを選択する。具体的には、λ１＜λ２＜・・・＜λＮとした場合、係数選択部６０７は、Ｍｉｎ＿ＳＡＤが閾値Ｔｈ１より小さいときはλ１を選択し、Ｍｉｎ＿ＳＡＤが閾値Ｔｈ２より小さいときはλ２を選択するというように、Ｎ−１個の閾値に基づいて係数の選択を行う。次に、係数選択部６０７は、候補ベクトルの第２の集合のうち、選択された係数に対応する候補ベクトル選択部が選択した動きベクトルを、最終的に使用する動きベクトルとして選択する。例えば係数λ２が選択された場合、係数選択部６０７は、候補ベクトル選択部６０６−２が選択した動きベクトルを最終的に使用する動きベクトルとして選択する。
【００６１】
前述の通り、候補ベクトル選択部６０６−１、６０６−２、・・・、６０６−Ｎに係数が事前に設定されており、算出済みのＳＡＤ及び符号量が順に出力される。従って、候補ベクトル選択部６０６−１、６０６−２、・・・、６０６−Ｎそれぞれは、ＳＡＤの算出と並行して符号化コストを算出可能である（図４のＳ４０４参照）。換言すれば、第３の実施形態では、動きベクトル選択部１０３が複数の候補ベクトル選択部６０６−１、６０６−２、・・・、６０６−Ｎを備えるので、図２の処理と図４の処理とが並列化される。従って、動きベクトルの選択が高速化される。
【００６２】
［第４の実施形態］
第４の実施形態では、動きベクトルの粗い探索と詳細な探索とを組み合わせることにより処理を高速化する構成について説明する。
【００６３】
図７は、第４の実施形態に係る動きベクトル選択部１０３の構成を示すブロック図である。図７において、図６と同一又は同様の機能を有するブロックには同一の符号を付し、説明を省略する。
【００６４】
符号化対象ブロック画像取得縮小部７０１、参照ブロック画像取得縮小部７０２、動きベクトル設定部７０３、及び差分算出部７０４は、第１算出手段として機能し、第１の実施形態と同様に、複数の動きベクトルそれぞれについてＳＡＤを算出すると共に、Ｍｉｎ＿ＳＡＤを検索する（図２参照）。但し、符号化対象ブロック画像取得縮小部７０１は、取得したブロック画像を縮小する。また、参照ブロック画像取得縮小部７０２は、取得した参照ブロック画像を取得する。処理対象の画像が縮小されているため、ＳＡＤの算出処理が高速化される。
【００６５】
係数決定部７０６は、第１の実施形態と同様に、係数λを決定する（図３参照）。動きベクトル符号量算出部７０５及び動きベクトル仮選択部７０７は、第１選択手段として機能し、第１の実施形態と同様に、所定のバランス（第１のバランス）を考慮して候補ベクトルの集合から１つの動きベクトルを選択する（図４参照）。動きベクトル仮選択部７０７は、選択した動きベクトルを動きベクトル設定部７０８に通知する。
【００６６】
動きベクトル設定部７０８は、候補ベクトルの集合のうち、動きベクトル仮選択部７０７から通知された動きベクトルが指す位置からの距離が閾値以下の位置を指す動きベクトルそれぞれについて、参照ブロック画像取得部６０２に対して動きベクトルの設定を行う。符号化対象ブロック画像取得部６０１、参照ブロック画像取得部６０２、差分算出部６０４、及び動きベクトル設定部７０８は、第２算出手段として機能する。また、動きベクトル設定部７０８は、設定した動きベクトルを動きベクトル符号量算出部６０５に通知する。
【００６７】
動きベクトル符号量算出部６０５及び動きベクトル最終選択部７０９は、第２選択手段として機能し、候補ベクトルの集合のうち、動きベクトル仮選択部７０７から通知された動きベクトルが指す位置からの距離が閾値以下の位置を指す動きベクトルから、動きベクトルを選択する。具体的な処理は、第１の実施形態と同様であるが、第４の実施形態においては、係数λは事前に設定されている値である（係数決定部７０６が決定した値を利用してもよい）。また、符号化対象ブロック画像と参照ブロック画像との差分が小さくなることと動きベクトルの符号量が小さくなることとのバランスは、第１のバランスとは異なる第２のバランスで考慮されてもよい。また、候補ベクトルの集合の全てではなく、動きベクトル仮選択部７０７から通知された動きベクトルが指す位置からの距離が閾値以下の位置を指す動きベクトルが探索対象となる。
【００６８】
このような処理により、縮小されていない画像についての動きベクトルの探索範囲が、ベクトルを動きベクトル設定部７０８によって選択された動きベクトル近傍に制限される。従って、動きベクトルの選択処理が高速化される。
【００６９】
［その他の実施形態］
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0005441812.tif 000002
【図２】
0005441812.tif 000003
【図３】
0005441812.tif 000004
【図４】
0005441812.tif 000005
【図５】
0005441812.tif 000006
【図６】
0005441812.tif 000007
【図７】
0005441812.tif 000008