(57)【要約】【課題】誤検出等によって近隣のブロック間で動きベクトルにばらつきが生じた場合でも、動きベクトルを補正して復号後の映像のばたつきを低減し、映像品質の低下を防止し得る動き検出装置を実現する。【解決手段】画像を所定の大きさの複数のブロックに分割し、相前後する少なくとも２つの画像のブロックの相関に基づいて、複数のブロックそれぞれの動きベクトルを検出する動きベクトル検出手段と、複数の動きベクトルそれぞれに対し、その周囲の所定範囲内の動きベクトルを加味した補正を行う動きベクトル補正手段とを動き検出装置に設けた。そして、複数の動きベクトルそれぞれについて、対応する所定範囲内の動きベクトルの偏差を算出し、当該偏差と所定の閾値との比較結果に基づいて各動きベクトルに対する補正の可否を判断するようにした。【選択図】        図２
2004274628.tif 000002
【特許請求の範囲】
【請求項１】
画像を所定の大きさの複数のブロックに分割し、相前後する少なくとも２つの上記画像の上記ブロックの相関に基づいて、複数の上記ブロックそれぞれの動きベクトルを検出する動きベクトル検出手段と、
複数の上記動きベクトルそれぞれに対し、その周囲の所定範囲内の上記動きベクトルを加味した補正を行う動きベクトル補正手段と
を具えることを特徴とする動き検出装置。
【請求項２】
上記動きベクトル補正手段は、上記所定範囲内の上記動きベクトルの平均値を算出し、上記補正対象の動きベクトルを当該算出した平均値で置き換えることにより、当該補正対象の動きベクトルを補正する
ことを特徴とする請求項１に記載の動き検出装置。
【請求項３】
上記動きベクトル補正手段は、上記所定範囲内の上記動きベクトルを重み付け平均して上記平均値を算出する
ことを特徴とする請求項２に記載の動き検出装置。
【請求項４】
上記動きベクトル補正手段は、複数の上記動きベクトルそれぞれについて、対応する上記所定範囲内の上記動きベクトルの偏差を算出し、当該偏差が所定の閾値以上の上記動きベクトルに対して上記補正を行う
ことを特徴とする請求項１に記載の動き検出装置。
【請求項５】
上記動きベクトル補正手段は、複数の上記動きベクトルそれぞれについて、対応する上記所定範囲内の上記動きベクトルの偏差を算出し、当該偏差が所定の閾値未満の上記動きベクトルに対して上記補正を行う
ことを特徴とする請求項１に記載の動き検出装置。
【請求項６】
画像を所定の大きさの複数のブロックに分割し、相前後する少なくとも２つの上記画像の上記ブロックの相関に基づいて、複数の上記ブロックそれぞれの動きベクトルを検出する動きベクトル検出ステップと、
複数の上記動きベクトルそれぞれに対し、その周囲の所定範囲内の上記動きベクトルを加味した補正を行う動きベクトル補正ステップと
を具えることを特徴とする動き検出方法。
【請求項７】
上記動きベクトル補正ステップは、上記所定範囲内の上記動きベクトルの平均値を算出し、上記補正対象の動きベクトルを当該算出した平均値で置き換えることにより、当該補正対象の動きベクトルを補正する
ことを特徴とする請求項６に記載の動き検出方法。
【請求項８】
上記動きベクトル補正ステップは、上記所定範囲内の上記動きベクトルを重み付け平均して上記平均値を算出する
ことを特徴とする請求項７に記載の動き検出方法。
【請求項９】
複数の上記動きベクトルそれぞれについて、対応する上記所定範囲内の上記動きベクトルの偏差を算出する偏差算出ステップ
を具え、
上記動きベクトル補正ステップは、算出した上記偏差が所定の閾値以上の上記動きベクトルに対して上記補正を行う
ことを特徴とする請求項６に記載の動き検出方法。
【請求項１０】
複数の上記動きベクトルそれぞれについて、対応する上記所定範囲内の上記動きベクトルの偏差を算出する偏差算出ステップ
を具え、
上記動きベクトル補正ステップは、算出した上記偏差が所定の閾値未満の上記動きベクトルに対して上記補正を行う
ことを特徴とする請求項６に記載の動き検出方法。
【請求項１１】
画像を所定の大きさの複数のブロックに分割し、相前後する少なくとも２つの上記画像の上記ブロックの相関に基づいて、複数の上記ブロックそれぞれの動きベクトルを検出する動きベクトル検出ステップと、
複数の上記動きベクトルそれぞれに対し、その周囲の所定範囲内の上記動きベクトルを加味した補正を行う動きベクトル補正ステップと
を具えることを特徴とする動き検出プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は動き検出装置、動き検出方法及びプログラムに関し、例えば映像信号の符号化に用いる動き検出装置に適用して好適なものである。
【０００２】
【従来の技術】
従来、ＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）２方式等の映像信号高能率符号化方法において、相前後する少なくとも２つの画像間の相関を利用した動き補償予測処理に用いる動きベクトルの検出方法として、ブロックマッチング法が用いられている（例えば、特許文献１参照）。
【０００３】
かかるブロックマッチング法においては、画像を所定サイズのブロックに分割し、現フレームのブロックと、前フレームにおける所定の探索範囲内の複数の候補ブロックとをパターン照合して誤差（これをＭＥ（Ｍｏｔｉｏｎ  Ｅｓｔｉｍａｔｉｏｎ  ）残差と呼ぶ）を求める。そしてブロックマッチング法においては、ＭＥ残差が最小となる候補ブロックを選択し、当該選択した候補ブロックと現フレームのブロックとのずれを、当該現フレームのブロックの動きベクトルとして検出する。
【０００４】
【特許文献１】
特開２００１−２８５８７３公報
【０００５】
【発明が解決しようとする課題】
上述したようにブロックマッチング法では、単にＭＥ残差が最小となるブロックに基づいて、各ブロック毎に局所的に動きベクトルを検出している。このため、画面全体で偏った動きがある場合（パニング等）や画面全体の動きが少ない場合等において、本来ならば近隣のブロック間で動きベクトルが揃うべきところが、互いにばらついた動きベクトルを誤検出してしまうことがある。
【０００６】
このように、誤検出によって近隣のブロック間で動きベクトルにばらつきが生じた場合、復号後の映像にばたつきが発生して映像品質が低下してしまうという問題があった。
【０００７】
本発明は以上の点を考慮してなされたもので、検出した動きベクトルを補正して復号後の映像のばたつきを低減し、映像品質の低下を防止し得る動き検出装置を提案しようとするものである。
【０００８】
【課題を解決するための手段】
かかる課題を解決するため本発明においては、画像を所定の大きさの複数のブロックに分割し、相前後する少なくとも２つの画像のブロックの相関に基づいて、複数のブロックそれぞれの動きベクトルを検出する動きベクトル検出手段と、複数の動きベクトルそれぞれに対し、その周囲の所定範囲内の動きベクトルを加味した補正を行う動きベクトル補正手段とを動き検出装置に設けた。
【０００９】
そして動きベクトル補正手段は、所定範囲内の動きベクトルの平均値を算出し、補正対象の動きベクトルを当該算出した平均値で置き換えることにより、動きベクトルを補正するようにした。
【００１０】
さらに動きベクトル補正手段は、複数の動きベクトルそれぞれについて、対応する所定範囲内の動きベクトルの偏差を算出し、当該偏差と所定の閾値との比較結果に基づいて各動きベクトルに対する補正の可否を判断するようにした。
【００１１】
周囲の動きベクトルを加味して動きベクトルを補正することにより、誤検出等によって近隣のブロック間で動きベクトルにばらつきが生じた場合でも、動きベクトルを平均化して、復号後の映像のばたつきを回避して映像品質の低下を防止することができる。
【００１２】
【発明の実施の形態】
以下図面について、本発明の一実施の形態を詳述する。
【００１３】
（１）映像信号符号化装置の構成
図１は全体として映像信号符号化装置１を示し、外部から入力されるアナログ映像信号Ｓ１をＭＰＥＧ２方式を用いて高能率圧縮符号化し、符号化データＤ７として出力するようになされている。すなわち映像信号符号化装置１のアナログ／ディジタル変換部２は、ビデオテープレコーダ等の映像信号供給装置（図示せず）から入力されるアナログ映像信号Ｓ１をディジタル変換してディジタル映像信号Ｄ１を生成し、これを画面並替部３に送出する。
【００１４】
画面並替部３は所定の符号化シーケンスに従い、ディジタル映像信号Ｄ１の各フレーム画像に対し、Ｉピクチャ（イントラ符号化フレーム）、Ｐピクチャ（順方向予測符号化フレーム）又はＢピクチャ（双方向予測符号化フレーム）のうちのどのピクチャタイプとして処理するかを指定する。そして画面並替部３は、ディジタル映像信号Ｄ１の各フレーム画像をそのピクチャタイプに応じた符号化順に並び替え、さらに当該フレーム画像を１６画素×１６ラインのマクロブロックに分割し、これを画像データＤ２として演算回路４及び動きベクトル検出部１５に送出する。
【００１５】
このとき演算回路４には、画像データＤ２のピクチャタイプに応じた予測画像データＤ３（後述）が動き補償部１５から供給されている。演算回路４は、画像データＤ２から予測画像データＤ３を減算することにより予測残差としての演算データＤ４を生成し、これをＤＣＴ（Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ  、離散コサイン変換）部５に送出する（Ｉピクチャは予測符号化を行わないので予測画像データＤ３は供給されず、演算回路４は画像データＤ２をそのまま演算データＤ４としてＤＣＴ部５に送出する）。
【００１６】
ＤＣＴ部５は演算データＤ４に対し、マクロブロックを４分割した８画素×８ラインのブロック単位でＤＣＴ変換処理を施してＤＣＴ係数化し、これをＤＣＴ係数データＤ５として量子化部６に送出する。量子化部６はＤＣＴ係数データＤ５に対して量子化処理を施して量子化ＤＣＴ係数データＤ６を生成し、これを可変長符号化部７及び逆量子化部１０に送出する。
【００１７】
可変長符号化部７は、量子化ＤＣＴ係数データＤ６に対して可変長符号化処理を施すことによりそのデータ量を削減し、これを符号化データＤ７としてバッファメモリ８を介して外部に出力する。このときレート制御部９はバッファメモリ８内における符号化データＤ７の蓄積量を常に監視しており、当該蓄積量の増減に応じて量子化部６におけるＤＣＴ係数データＤ５の量子化ステップを可変することにより、符号化データＤ７のデータレートを所定範囲内に制御する。
【００１８】
一方、逆量子化部１０は量子化ＤＣＴ係数データＤ６を逆量子化処理してＤＣＴ係数データＤ８に復元し、これを逆ＤＣＴ部１１に送出する。逆ＤＣＴ部１１は、ＤＣＴ係数データＤ８に対して逆ＤＣＴ変換処理を施して予測残差に相当する演算データＤ９を生成し、これを演算回路１２に送出する。
【００１９】
このとき演算回路１２には演算回路４と同様に、演算データＤ９のピクチャタイプに応じた予測画像データＤ３が動き補償部１５から供給されている。演算回路１２は、予測画像データＤ３に予測残差としての演算データＤ９を加算することにより画像データを再生し、これを参照画像データＤ１０としてフレームメモリ１３に格納する（Ｉピクチャは予測符号化を行わないので予測画像データＤ３は供給されず、演算回路２２は演算データＤ９をそのまま参照画像データＤ１０としてフレームメモリ１３に格納する）。
【００２０】
一方動き検出部１４は、画像データＤ２とフレームメモリ１３に記憶されている参照画像データＤ１０のマクロブロックとの間でブロックマッチングを行い動きベクトルを検出する。実際上この動きベクトルは、画像における水平方向成分及び垂直方向成分で表される直交座標データである。
【００２１】
さらに動き検出部１４は、検出した動きベクトルを本願発明の特徴である動きベクトル補正処理（後述）に従って適宜補正して動きベクトルデータＤ１２を生成し、これを動き補償部１５に供給する。上述したように動き補償部１５は、フレームメモリ１３に記憶されている参照画像データＤ１０を動きベクトルデータＤ１２を用いて動き補償することにより、画像データＤ２に対する予測画像データＤ３を生成し、これを演算回路４及び１２に供給する。
【００２２】
そして画像信号符号化装置１は、演算回路４において画像データＤ２から予測画像データＤ３を減算し、その予測残差としての演算データＤ４に対して上述したようにＤＣＴ、量子化及び可変長符号化処理を施すことにより、アナログ映像信号Ｓ１を高能率圧縮符号化して符号化データＤ７を生成する。
【００２３】
（２）動きベクトル検出及び補正処理
次に、動き検出部１４による動きベクトル検出及び補正処理を説明する。図２に示すように動き検出部１４は、動きベクトル検出回路２１、動きベクトル保存メモリ２２及び動きベクトル補正回路２３で構成される。
【００２４】
動きベクトル検出回路２１は、画面並替部３（図１）から供給される画像データＤ２の各マクロブロックについて、フレームメモリ１３（図１）に記憶されている参照画像データＤ１０のマクロブロックとの間でブロックマッチングを行い、ＭＥ残差が最小となるマクロブロックへの動きベクトルを検出し、これを仮動きベクトルデータＤ１１として動きベクトル保存メモリ２２に格納する。
【００２５】
動きベクトル補正回路２３は、動きベクトル保存メモリ２２に格納されている仮動きベクトルデータＤ１１の各動きベクトルに対し、その周囲の動きベクトルを加味した補正を行う。すなわち動きベクトル補正回路２３は、図３に示すように、補正対象となるマクロブロックの動きベクトルである対象ベクトルｘ及びその周囲のマクロブロックの動きベクトルである参照ベクトルａ〜ｈの、計９個の動きベクトルを補正参照範囲と設定し、当該補正参照範囲内の対象ベクトルｘ及び参照ベクトルａ〜ｈに対する偏差σを算出する。この偏差σは、対象ベクトルｘ自身を含む周囲の動きベクトルのばらつき度合いに相当する。
【００２６】
そして動きベクトル補正回路２３は、算出した偏差σが所定の閾値以上の場合、対象ベクトルｘ周辺における動きベクトルのばらつきが大きいとして、式（１）に示す補正式を用いて対象ベクトルｘ及びその周囲の参照ベクトルａ〜ｈの平均を取ることにより、対象ベクトルｘに対して周囲の影響を加味した補正を行い、補正ベクトルＸを生成する。
【００２７】
【数１】
2004274628.tif 000003
【００２８】
このとき動きベクトル補正回路２３は、ベクトル値が「０」の参照ベクトルが存在する場合、当該ベクトル値「０」の参照ベクトルを上述の補正式に組み込まず、分母の値もその分小さくして補正を行う。
【００２９】
これに対して偏差σが閾値未満の場合は、対象ベクトルｘ周辺における動きベクトルのばらつきが小さいとして、動きベクトル補正回路２３は上述した補正を行うことなく、対象ベクトルｘをそのまま補正ベクトルＸとする。
【００３０】
そして動きベクトル補正回路２３は、このようにして補正した補正ベクトルＸを、動きベクトルデータＤ１２として動き補償部１５（図１）に供給する。
【００３１】
次に、上述した動き検出部１４による動きベクトル検出及び補正処理を、図４に示すフローチャートを用いて詳細に説明する。すなわち動き検出部１４は、ルーチンＲＴ１の開始ステップから入ってステップＳＰ１に移る。
【００３２】
ステップＳＰ１において、動き検出部１４の動きベクトル検出回路２１は、画面並替部３から供給される画像データＤ２とフレームメモリ１３に記憶されている参照画像データＤ１０との間でブロックマッチングを行うことにより、各マクロブロックの動きベクトルを検出し、次のステップＳＰ２に移る。
【００３３】
ステップＳＰ２において、動き検出部１４の動きベクトル検出回路２１は、検出した各マクロブロックの動きベクトルを仮動きベクトルデータＤ１１として動きベクトル保存メモリ２２に格納し、次のステップＳＰ３に移る。
【００３４】
ステップＳＰ３において、動き検出部１４の動きベクトル補正回路２３は、動きベクトル保存メモリ２２に格納されている仮動きベクトルデータＤ１１の各動きベクトル（すなわち対象ベクトルｘ）について、その補正参照範囲内の動きベクトル（対象ベクトルｘ及び参照ベクトルａ〜ｈ）に対する偏差σを算出し、次のステップＳＰ４に移る。
【００３５】
ステップＳＰ４において、動き検出部１４の動きベクトル補正回路２３は、算出した各対象ベクトルｘについての偏差σと所定の閾値とを比較して、対象ベクトルｘそれぞれに対する補正の可否を判断する。
【００３６】
すなわちステップＳＰ４において、偏差σが閾値以上の場合、このことは対象ベクトルｘ周辺の動きベクトルのばらつきが大きいことを表しており、このとき動きベクトル補正回路２３はステップＳＰ５に移り、上述した式（１）に示す補正式を用いて対象ベクトルｘ及びその周囲の参照ベクトルａ〜ｈの平均を取ることにより、対象ベクトルｘを補正して補正ベクトルＸを生成し、ステップＳＰ７に移る。
【００３７】
これに対してステップＳＰ４において、偏差σが閾値未満の場合、このことは対象ベクトルｘ周辺の動きベクトルのばらつきが小さいことを表しており、このとき動きベクトル補正回路２３はステップＳＰ５に移り、対象ベクトルｘを補正することなく、対象ベクトルｘをそのまま補正ベクトルＸとし、ステップＳＰ７に移る。
【００３８】
そして、ステップＳＰ７において動きベクトル補正回路２３は、このようにして補正した補正ベクトルＸを動きベクトルデータＤ１２として動き補償部１５に出力し、ステップＳＰ１に戻って再度ステップＳＰ１〜ＳＰ７を繰り返す。
【００３９】
（３）動作及び効果
以上の構成において、動き検出部１４の動きベクトル検出回路２１は、画面並替部３から供給される画像データＤ２の各マクロブロックについて、フレームメモリ１３に記憶されている参照画像データＤ１０との間でブロックマッチングを行い、ＭＥ残差が最小となるマクロブロックへの動きベクトルを検出して仮動きベクトルデータＤ１１を生成し、動きベクトルメモリ２２に格納する。
【００４０】
動き検出部１４の動きベクトル補正回路２３は、動きベクトルメモリ２２から仮動きベクトルデータＤ１１を読み出し、当該動きベクトルデータＤ１１の各動きベクトルそれぞれを対象ベクトルｘとして、当該対象ベクトルｘを中心とした補正参照範囲内における動きベクトルの偏差σを算出する。
【００４１】
そして動きベクトル補正回路２３は、算出した偏差σが閾値以上の場合、補正参照範囲内の動きベクトルのばらつきが大きいものとして、補正参照範囲内の動きベクトルの平均を取ることにより、対象ベクトルｘに対し周囲の影響を加味した補正を施して補正ベクトルＸを生成する。
【００４２】
以上の構成によれば、検出した各マクロブロックの動きベクトルについて、その補正参照範囲内の動きベクトルの偏差をそれぞれ算出し、偏差が閾値以上の場合、当該補正参照範囲内の動きベクトルを加味した補正を行うようにしたことにより、誤検出等によって近隣のブロック間で動きベクトルにばらつきが生じた場合でも、動きベクトルを平均化して、復号後の映像のばたつきを回避して映像品質の低下を防止することができる。
【００４３】
（４）他の実施の形態
なお上述の実施の形態においては、対象ベクトルｘ及びその周囲の参照ベクトルａ〜ｈを単純平均して対象ベクトルｘを補正するようにしたが、本発明はこれに限らず、対象ベクトルｘ及びその周囲の参照ベクトルａ〜ｈを重み付け平均して当該対象ベクトルｘを補正するようにしてもよい。
【００４４】
例えば次式に示すように、対象ベクトルｘ自身の重み付けを大きくし、当該対象ベクトルｘからの距離が離れるにつれて重み付けを小さくするようにすれば、対象ベクトルｘの影響を残した弱い補正を施すことができる。
【００４５】
【数２】
2004274628.tif 000004
【００４６】
さらには、算出した偏差σの大小に応じて、補正の強弱を調整することも考えられる。例えば、偏差σが閾値以上でばらつきが大きいと判断した場合は、（１）式を用いて強い補正を施し、偏差σが閾値未満でばらつきが小さいと判断した場合は、（２）式を用いて弱い補正を施すようにすれば、動きベクトルのばらつき度合いに応じた適応的な補正を行うことができる。
【００４７】
また、パニングやチルト等によって画像全体で特定方向の動きが生じている場合に、これに応じて重み付けを変化させることも考えられる。例えば、パニングによって画像全体で水平方向の動きが生じている場合、次式に示すように水平方向に関する動きベクトルの重み付けを大きくすることにより、画像全体の動きを考慮した適応的な補正を行うことができる。
【００４８】
【数３】
2004274628.tif 000005
【００４９】
この場合、上述した特定方向の動きを検出する方法としては、例えば画面全体の動きベクトルの平均値を用いることができる。また、ユーザが視覚的判断によって上述した特定方向の動きを検出し、当該検出した特定方向の動きをユーザが動きベクトル補正回路２３に指定するようにしてもよい。
【００５０】
さらに上述の実施の形態においては、補正参照範囲内の動きベクトルの偏差が閾値以上の場合に補正を行うようにしたが、本発明はこれに限らず、逆に偏差が閾値未満の場合に補正を行うようにしてもよい。
【００５１】
さらに上述の実施の形態においては、補正参照範囲内の動きベクトルの偏差の大小に基づいて補正の実行を判断するようにしたが、本発明はこれに限らず、補正を行うマクロブロックをユーザが任意に指定するようにしてもよい。
【００５２】
さらに上述の実施の形態においては、対象ベクトルｘを中心とした９個の動きベクトルを参照範囲としてベクトル補正を行うようにしたが、本発明はこれに限らず、例えば図５に示すように、対象ベクトルｘを中心とした５×５＝２５個の動きベクトルを参照範囲としてベクトル補正を行う等、様々な参照範囲でベクトル補正を行ってもよい。この場合、参照範囲が大きいほど参照ベクトルの影響が大きくなって強い補正が施され、画像全体の動きベクトルが均一化されるのに対し、参照範囲が小さいほど周囲の動きベクトルの影響が小さくなって弱い補正が施される。
【００５３】
【発明の効果】
上述のように本発明によれば、検出した動きベクトルに対して、周囲の動きベクトルを加味した補正を施すことにより、誤検出等によって近隣のブロック間で動きベクトルにばらつきが生じた場合でも、動きベクトルを平均化して、復号後の映像のばたつきを回避して映像品質の低下を防止することができる。
【図面の簡単な説明】
【図１】映像信号符号化装置の全体構成を示すブロック図である。
【図２】本発明による動き検出部の構成を示すブロック図である。
【図３】補正参照範囲の説明に供する略線図である。
【図４】動きベクトル検出・補正処理手順を示すフローチャートである。
【図５】他の実施の形態の補正参照範囲の説明に供する略線図である。
【符号の説明】
１……映像信号符号化装置、２……Ａ／Ｄ変換部、３……画面並替部、４、１２……演算器、５……ＤＣＴ変換部、６……量子化部、７……可変長符号化部、８……バッファメモリ、９……レート制御部、１０……逆量子化部、１１……逆ＤＣＴ変換部、１３……フレームメモリ、１４……動き検出部、１５……動き補償部、２１……動きベクトル検出回路、２２……動きベクトル保存メモリ、２３……動きベクトル補正回路。
【図１】
2004274628.tif 000006
【図２】
2004274628.tif 000007
【図３】
2004274628.tif 000008
【図４】
2004274628.tif 000009
【図５】
2004274628.tif 000010