(57)【要約】【課題】動画像のフレーム間予測技術に用いる動きベクトル検出装置において、予測誤差の抑制と参照フレームからの画像データの読み出し量の抑制とを両立させる。【解決手段】  符号化対象フレームの画像を縮小した縮小画像と、参照フレームの画像を縮小した縮小参照画像との比較結果に基づいて、符号化対象フレームの画像に含まれる各マクロブロックについて縮小動きベクトルを検出する縮小動きベクトル検出部と、各マクロブロックに対応して検出された縮小動きベクトルに基づいて、参照フレームの画像において各マクロブロックの類似度計算の対象となる探索範囲の画像データの総量を算出する参照データ量算出部と、探索範囲の画像データの総量が所定の閾値を超えている場合に、所定の条件を満たすマクロブロックに対応する探索範囲を変更して、再度、参照データ量算出部による算出処理を実行させる制御を繰り返す適応制御部とを備える。【選択図】      図１
2011182356.tif 000002
【特許請求の範囲】
【請求項１】
動画像データに含まれる各フレームの画像データを、直前のフレームの画像に相当する参照フレームに基づくフレーム間予測を利用して符号化する動画像符号化処理に用いる動きベクトル検出装置であって、
所定の縮小率で符号化対象のフレームの画像データを縮小して得られる第１の解像度の縮小画像と、前記所定の縮小率で参照フレームの画像を縮小して得られる縮小参照画像との比較結果に基づいて、前記符号化対象フレームの画像に含まれる各マクロブロックについて前記第１の解像度に対応する縮小動きベクトルを検出する縮小動きベクトル検出部と、
前記各マクロブロックに対応して検出された縮小動きベクトルに基づいて、前記参照フレームの画像において前記各マクロブロックとの類似度計算の対象となる探索範囲の画像データの総量を算出する参照データ量算出部と、
前記参照データ量算出部によって得られた算出結果が所定の閾値を超えている場合に、所定の条件を満たすマクロブロックに対応する探索範囲を変更して、再度、前記参照データ量算出部による算出処理を実行させる制御を繰り返す適応制御部と
を備えたことを特徴とする動きベクトル検出装置。
【請求項２】
請求項１に記載の動きベクトル検出装置において、
前記適応制御部は、
前記探索範囲の画像データの総量が所定の閾値を超えている場合に、前記所定の条件を満たすマクロブロックに対応する探索範囲と前記マクロブロックに隣接するマクロブロックに対応する探索範囲とが重複する領域が増加するように、前記所定の条件を満たすマクロブロックの縮小動きベクトルを変更するベクトル変更部を備えた
ことを特徴とする動きベクトル検出装置。
【請求項３】
請求項２に記載の動きベクトル検出装置において、
前記ベクトル変更部は、前記所定の条件を満たすマクロブロックに対応する縮小動きベクトルを、前記マクロブロックに隣接するマクロブロックに対応して検出された縮小動きベクトルで置き換える
ことを特徴とする動きベクトル検出装置。
【請求項４】
請求項３に記載の動きベクトル検出装置において、
前記適応制御部は、
前記符号化対象のフレームに含まれるマクロブロックの中から、当該マクロブロックとこれに対応して検出された縮小動きベクトルで示される探索範囲との間の類似度と、当該マクロブロックに隣接するマクロブロックの縮小動きベクトルで示される探索範囲と当該マクロブロックとの間の類似度との差が最小であるマクロブロックを、前記所定の条件を満たすマクロブロックとして選択するブロック選択部を備えた
ことを特徴とする動きベクトル検出装置。
【請求項５】
請求項１に記載の動きベクトル検出装置において、
前記適応制御部は、
前記探索範囲の画像データの総量が所定の閾値を超えている場合に、所定の条件を満たすマクロブロックについて動きベクトル検出のために類似度計算の対象となる探索範囲を縮小する範囲制限部を備えた
ことを特徴とする動きベクトル検出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画像を符号化する動画像符号化装置に用いられる動きベクトル検出装置に関する。
【背景技術】
【０００２】
動画像情報の符号化方式には、ＭＰＥＧ(Moving Picture Experts Group)やＨ．２６４／ＡＶＣ(Advanced Video Coding)、ＳＭＰＴＥによるＶＣ−１などがある。これらは、いずれも、動き補償フレーム間予測と直交変換とを組み合わせたハイブリッド符号化方式である。
【０００３】
例えば、Ｈ．２６４／ＡＶＣでは、画像フレームを、１６×１６画素のマクロブロックに分割し、このマクロブロックを処理単位として符号化処理が行われる。また、フレーム間予測に用いる動きベクトルの検出処理に、階層的な検出手法が用いられる場合がある(特許文献１参照)。
【０００４】
動きベクトルの階層的な検出方法では、まず、符号化対象のフレームおよび参照フレームをそれぞれ縮小した縮小画像を用いて、各マクロブロックについて低解像度画像における縮小動きベクトルが検出される。次いで、元の解像度の参照フレームにおいて、符号化対象フレームの各マクロブロックに対応して検出された縮小動きベクトルで示される範囲を参照して、元の解像度での動きベクトルを検出する処理が行われる。
【０００５】
動きベクトルの階層的な検出方法では、元の解像度での動きベクトルを検出する際に参照する参照フレームの画像の範囲は、符号化対象のマクロブロックの位置を縮小動きベクトルに従って移動させた位置を中心とする範囲に制限される。これにより、参照フレーム全体を参照して動きベクトルを検出する場合に比べて、参照フレームが格納されているメモリから読み出される画像データの量の削減が図られている。
【０００６】
また、複数のフレームが同一のフレームを参照する場合に、これらのフレームの符号化処理を同時に実行する方法(特許文献２)も提案されている。この方法では、参照フレームを読み出す回数を削減することにより、参照フレームが格納されているメモリから読み出される画像データの量の削減が図られている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００９−２７２７６５号公報
【特許文献２】特開２００９−１１１７９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ところで、上述した階層的な動きベクトル検出方法を適用した場合に、元の解像度での動きベクトル検出の際には、参照フレームの画像データから、各マクロブロックとの相関を算出する対象となる参照範囲の画像データが読み出される。このとき、動きベクトルを高い精度で検出するために、参照画像において参照する範囲を大きくすると、読み出すべき画像データの量が増大する。逆に、参照フレームから読み出すデータ量を抑制しようとすると、検出された動きベクトルで示される予測画像と符号化対象フレームのマクロブロックとの誤差が大きくなってしまう。このように、動きベクトル検出を用いたフレーム間予測技術では、動きベクトルに基づく予測誤差の抑制と動きベクトル検出のために参照フレームから読み出す画像データ量の抑制とはトレードオフの関係にある。
【０００９】
本件開示の装置は、動画像のフレーム間予測技術に用いる動きベクトル検出装置であって、予測誤差の抑制と参照フレームからの画像データの読み出し量の抑制とを両立可能な動きベクトル検出装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上述した目的は、以下に開示する動きベクトル検出装置によって達成することができる。
【００１１】
一つの観点による動きベクトル検出装置は、動画像データに含まれる各フレームの画像データを、直前のフレームの画像に相当する参照フレームに基づくフレーム間予測を利用して符号化する動画像符号化処理に用いる動きベクトル検出装置であって、所定の縮小率で符号化対象のフレームの画像データを縮小して得られる第１の解像度の縮小画像と、所定の縮小率で参照フレームの画像を縮小して得られる縮小参照画像との比較結果に基づいて、符号化対象フレームの画像に含まれる各マクロブロックについて第１の解像度に対応する縮小動きベクトルを検出する縮小動きベクトル検出部と、各マクロブロックに対応して検出された縮小動きベクトルに基づいて、参照フレームの画像において各マクロブロックとの類似度計算の対象となる探索範囲の画像データの総量を算出する参照データ量算出部と、参照データ量算出部によって得られた算出結果が所定の閾値を超えている場合に、所定の条件を満たすマクロブロックに対応する探索範囲を変更して、再度、参照データ量算出部による算出処理を実行させる制御を繰り返す適応制御部とを備える。  
【発明の効果】
【００１２】
本件開示の装置によれば、動画像のフレーム間予測技術に用いる際に、予測誤差の抑制と参照フレームからの画像データの読み出し量の抑制とを両立することが可能である。
【図面の簡単な説明】
【００１３】
【図１】動きベクトル検出装置の一実施形態を示す図である。
【図２】縮小動きベクトルと探索範囲の関係を説明する図である。
【図３】動きベクトル検出装置の別実施形態を示す図である。
【図４】縮小動きベクトル検出処理を説明する図である。
【図５】縮小動きベクトル検出動作を表す流れ図である。
【図６】コスト管理テーブルの例を示す図である。
【図７】読出画素数の算出動作を説明する図である。
【図８】適応制御部の動作を表す流れ図である。
【図９】動きベクトル検出装置の別実施形態を示す図である。
【図１０】探索範囲のサイズの変更を説明する図である。
【図１１】動き検出装置の別実施形態を示す図である。
【図１２】コスト管理テーブルの例を示す図である。
【図１３】適応制御部の動作を表す流れ図である。
【発明を実施するための形態】
【００１４】
以下、図面に基づいて、本発明の実施形態について詳細に説明する。
(実施形態１)
図１に、動きベクトル検出装置の一実施形態を示す。
【００１５】
図１に示した動きベクトル検出装置１１１は、動画像符号化装置１００に備えられたフレーム間予測部１１０に含まれている。この動画像符号化装置１００では、符号化対象フレームの原画像の入力に応じて、誤差画像生成部１０１により、原画像と予測画像との間の誤差画像が生成される。そして、この誤差画像は、直交変換／量子化部１０２による処理を経て、エントロピー符号化部１０３によって符号化される。動画像符号化装置１００に含まれる各部の処理は、マクロブロック単位に行われる。マクロブロックは、撮像部(図示せず)によって撮像された動画像に含まれる各フレームを、例えば、１６画素×１６画素ごとに分割して生成される。なお、これらのマクロブロックには、例えば、フレームの左上から走査順に従ってマクロブロック番号が与えられている。
【００１６】
誤差画像生成部１０１に入力される予測画像は、予測画像選択部１０９により、フレーム間予測部１１０によって得られるフレーム間予測画像と、画面内予測部１０８によって得られるフレーム内予測画像とから選択される。
【００１７】
また、図１に示した再構成画像生成部１０５は、直交変換／量子化部１０２の出力に対して逆量子化処理および逆変換処理を行って誤差画像を生成し、この誤差画像と予測画像とから再構成画像を生成する。この再構成画像は、ラインメモリ１０６を介して、デブロッキングフィルタ１０７と画面内予測部１０８に入力される。
【００１８】
画面内予測部１０８は、ラインメモリ１０６に保持されている再構成画像に基づいて、誤差画像生成部１０１に入力されるマクロブロックに対応する画面内予測画像を生成する。このとき得られる画面内予測情報は、エントロピー符号化部１０３に入力される。
【００１９】
一方、デブロッキングフィルタ１０７は、入力される再構成画像に対してブロック歪を除去する処理を行う。そして、ブロック歪除去後の再構成画像は、再構成画像フレームメモリ１０４に保持される。この再構成画像フレームメモリ１０４に保持された１フレーム分の再構成画像は、次のフレームの符号化処理に用いる参照フレームの画像として、フレーム間予測部１１０の処理に供される。
【００２０】
フレーム間予測部１１０では、動きベクトル検出装置１１１により、再構成画像フレームメモリ１０４から読み出される参照フレームの再構成画像と原画像との比較に基づいて、マクロブロックごとに動きベクトルが検出される。また、動き補償部１１２は、再構成画像の各マクロブロックと検出された動きベクトルとに基づいて、誤差画像生成部１０１に入力されるマクロブロックに対応するフレーム間予測画像を生成する。また、このフレーム間予測画像の生成に用いられた動きベクトルは、エントロピー符号化部１０３に入力される。
【００２１】
動きベクトル検出装置１１１は、縮小動きベクトル検出部１１３と、参照データ量算出部１１４と、適応制御部１１５と、動きベクトル探索部１１６とを備えている。縮小動きベクトル検出部１１３は、原画像を縮小して得られる第１の解像度の縮小画像と参照フレームの画像を同様に縮小した縮小参照画像とを比較することにより、縮小動きベクトルを検出する。図１に示した縮小動きベクトル検出部１１３では、符号化対象である原画像を例えば面積比１／１６で縮小した縮小画像と、再構成画像フレームメモリ１０４に保持された再構成画像を同様に縮小した縮小参照画像とが比較される。そして、縮小画像において、原画像の各マクロブロックに相当する縮小マクロブロックに対応して、縮小画像の解像度に対応する縮小動きベクトルが検出される。検出された縮小動きベクトルに基づいて、参照データ量算出部１１４は、動きベクトル探索部１１６が、参照フレームの再構成画像において各マクロブロックと類似度計算を行う対象となる探索範囲の画像データの総量を算出する。適応制御部１１５は、算出された探索範囲の画像データの総量Ｓが所定の閾値Ｔｈ以下となるまで、所定の条件を満たすマクロブロックの探索範囲を変更する処理を繰り返す。また、適応制御部１１５は、このような変更を経て決定された各マクロブロックの探索範囲に従って、動きベクトル探索部１１６が、動きベクトル検出のために再構成画像フレームメモリ１０４から読み出す画像データの範囲を制御する。
【００２２】
階層的な動きベクトル検出処理では、動きベクトル探索部１１６が各マクロブロックについて動きベクトルを探索する範囲は、そのマクロブロックについて検出された縮小動きベクトルによって指定される。
【００２３】
図２に、縮小動きベクトルと探索範囲の関係を説明する図を示す。図２(ａ)，(ｂ)に示した例では、ｉ番目のマクロブロックＭｂｉとｉ＋１番目のマクロブロックＭｂｉ＋１とに対応して検出された縮小動きベクトルが矢印で示されている。また、図２(ａ)，(ｂ)に示した例では、マクロブロックＭｂｉ、Ｍｂｉ＋１をそれぞれについて検出された縮小動きベクトルに従って移動させた範囲を点線の矩形で示した。
【００２４】
図２に示したように、各マクロブロックに対応する探索範囲は、縮小動きベクトルに従ってマクロブロックを移動させた範囲を拡張させた範囲となっている。拡張させる範囲は、縮小画像および縮小参照画像の解像度に対応して決められる。例えば、縮小画像および縮小参照画像の縮小率が、原画像に対して面積比で１／１６である場合は、上述した拡張幅は３画素分とすることができる。
【００２５】
図２(ａ)に示したように、マクロブロックＭｂｉ、Ｍｂｉ＋１の縮小動きベクトルが異なっている場合には、これらのマクロブロックに対応する探索範囲は、重複する部分を持たない。この場合は、マクロブロックＭｂｉ、Ｍｂｉ＋１の動きベクトル探索のために、これらの探索範囲に含まれる再構成画像の画像データがそれぞれ読み込まれる。
【００２６】
これに対して、図２(ｂ)に示したように、マクロブロックＭｂｉ、Ｍｂｉ＋１の縮小動きベクトルが一致している場合には、これらのマクロブロックに対応する探索範囲の一部は重複している。この場合は、マクロブロックＭｂｉに続いて、マクロブロックＭｂｉ＋１の動きベクトルを探索する際に、追加して読み込む必要がある画像データは、マクロブロックＭｂｉ＋１に対応する探索範囲から重複部分を除いた領域の画像データとなる。
【００２７】
したがって、隣接するマクロブロックに対応して検出された縮小動きベクトルが異なっているマクロブロックが多いほど、動きベクトルの探索の際に、再構成画像フレームメモリ１０４から読み出される画像データの総量が増大する。逆に、隣接するマクロブロックに対応して検出された縮小動きベクトルが一致しているマクロブロックが多いほど、動きベクトルの探索の際に、再構成画像フレームメモリ１０４から読み出される画像データの総量は減少する。
【００２８】
故に、適応制御部１１５により、隣接するマクロブロックに対応して検出された縮小動きベクトルが一致しているマクロブロックを増やすような制御を行うことにより、再構成画像フレームメモリ１０４から読み出される画像データの総量を抑制することができる。
【００２９】
以下の実施形態では、マクロブロックの一部に対応して検出された縮小動きベクトルを隣接するマクロブロックの縮小動きベクトルで置き換えることにより、再構成画像フレームメモリ１０４から読み出される画像データ総量を抑制する構成について説明する。
(実施形態２)
図３に、動きベクトル検出装置の別実施形態を示す。なお、図３に示した構成要素のうち、図１に示した構成要素と同等のものについては、同一の符号を付して示し、その説明は省略する。
【００３０】
縮小動きベクトル検出部１１３は、縮小画像生成部２１１と、縮小画像メモリ２１２と、縮小参照画像メモリ２１３と、類似度算出部２１４と、縮小ベクトル特定部２１５とを備えている。また、参照データ量算出部１１４は、コスト管理テーブル２１６と、読出画素数算出部２１７と、総和算出部２１８とを備えている。適応制御部１１５は、再計算制御部２２１と、ブロック選択部２２２と、ベクトル変更部２２３と、参照画像読出制御部２２４とを備えている。また、動きベクトル探索部１１６は、類似度計算処理部２２５と、動きベクトル特定部２２６とを備えている。
【００３１】
縮小動きベクトル検出部１１３の縮小画像生成部２１１は、符号化対象フレームの原画像を所定の縮小率で縮小して、原画像の解像度よりも粗い第１の解像度の縮小画像を生成し、縮小画像メモリ２１２に格納する。また、縮小画像生成部２１１は、再構成画像フレームメモリ１０４から参照フレームの再構成画像を読み出し、この参照フレームの再構成画像を同じように縮小して縮小参照画像を生成する。生成された縮小参照画像は、縮小参照画像メモリ２１３に格納される。
【００３２】
縮小画像生成部２１１は、例えば、以下のようにして、原画像および参照フレームの再構成画像を縮小する。
【００３３】
まず、縮小画像生成部２１１は、原画像あるいは参照フレームの再構成画像において座標(ｘ、ｙ)で示される各画素Ｐ(x,y)について、式(１)に示すような平滑化処理を行い、平滑化後の各画素Ｐ’(x,y)を求める。なお、式(１)において、係数ａ(ｉ，ｊ)は、低周波通過フィルタとなる値を用いることができる。また、変数ｉ，ｊの変域は、平滑化の際に参照される範囲を示している。式(１)に示した例では、変数ｉ，ｊは、それぞれ数値「−３」から「＋３」の範囲で変化するので、各画素Ｐ(x,y)の平滑化処理では、画素Ｐ(x,y)を中心とする７画素×７画素の範囲に含まれる各画素が参照される。
【００３４】
【数１】
2011182356.tif 000003
次いで、縮小画像生成部２１１は、平滑化後の各画素Ｐ’(ｘ,ｙ)から、座標(４ｍ＋ａ，４ｎ＋ｂ)の画素をサンプリングすることにより、原画像および再構成画像を縦横両方向に１／４に縮小する。なお、サンプル画素のｘ座標を表す整数ｍの変域は、原画像および再構成画像の横方向の画素数Ｍを用いて、ｍ＝０〜(Ｍ／４)−１のように表すことができる。同様に、サンプル画素のｙ座標を表す整数ｎの変域は、原画像および再構成画像の縦方向の画素数Ｎを用いて、ｎ＝０〜(Ｎ／４)−１のように表すことができる。また、定数ａ，ｂの値は、数値０〜数値３までの整数から任意に選ぶことができる。
【００３５】
このようにして、符号化対象フレームの原画像および参照フレームの再構成画像をそれぞれ面積比１／１６に縮小した縮小原画像および縮小参照画像が得られる。次に、生成された縮小原画像と縮小参照画像とを比較して縮小動きベクトルを検出する処理について説明する。
【００３６】
図４に、縮小動きベクトル検出処理を説明する図を示す。また、図５に、縮小動きベクトル検出動作を表す流れ図を示す。図４(ａ)に示した例では、縮小画像は、原画像におけるマクロブロックに対応してＫ×Ｌ個の縮小マクロブロックに分割されている。これらの縮小マクロブロックには、左上から走査順に従って、番号１から番号(Ｋ×Ｌ)が与えられている。なお、図４において、各縮小マクロブロックを縮小ＭＢとして示した。
【００３７】
図３に示した類似度算出部２１４は、縮小画像メモリ２１２から上述した番号順に従って、縮小マクロブロックを読み出す(図５のステップ３０１)。例えば、図４(ａ)の例では、類似度算出部２１４によって読み出される番号ｉの縮小マクロブロックは、網掛けを付して示される。
【００３８】
次いで、類似度算出部２１４は、読み出した縮小マクロブロックの位置に対応して、縮小参照画像において類似度算出対象の探索範囲を設定し、この探索範囲に含まれる縮小参照画像を縮小参照画像メモリ２１３から読み込む(ステップ３０２)。この探索範囲は、図４(ｂ)に示すように、読み出した縮小マクロブロックに対応する縮小参照画像の範囲を上下左右にそれぞれ所定の画素幅分拡張した矩形領域に設定される。
【００３９】
そして、類似度算出部２１４は、設定された探索範囲に含まれる各画素の座標(ｘ、ｙ)を基準位置とする矩形領域と読み出した縮小マクロブロックとについて、それぞれ差分絶対値和ＳＡＤ(ｘ、ｙ)を算出する(ステップ３０３)。なお、縮小マクロブロックとの類似時計産の対象となる矩形領域は、縮小マクロブロックと同一の形状となるように設定される。また、このとき、類似度算出部２１４は、各画素の座標(ｘ、ｙ)を探索範囲の中心を原点として表すことができる。
【００４０】
上述したようにして各画素の座標(ｘ、ｙ)に対応して算出された差分絶対値和ＳＡＤ(ｘ、ｙ)は、座標(ｘ、ｙ)で示される矩形領域と注目している縮小マクロブロックとが類似している度合いを示している。つまり、算出された差分絶対値和ＳＡＤ(ｘ、ｙ)が小さいほど、座標(ｘ、ｙ)で示される矩形領域と縮小マクロブロックとが類似している度合いが大きく、逆に、差分絶対値和ＳＡＤ(ｘ、ｙ)が小さいほど、類似度は小さくなる。
【００４１】
図５のステップ３０３において各座標に対応する矩形領域について算出された差分絶対値和は、縮小ベクトル特定部２１５に渡される。縮小ベクトル特定部２１５は、各座標に対応する差分絶対値和の中から最小のものを検出する。そして、検出した最小の差分絶対値和に対応する座標で示されるベクトルを、注目する縮小マクロブロックに対応する縮小動きベクトルとする(ステップ３０４)。
【００４２】
このようにして検出された縮小動きベクトルとこれに対応する差分絶対値和は、後述するようにして、コスト管理テーブル２１６に、注目している縮小マクロブロックのブロック番号に対応して保存される(ステップ３０５)。
【００４３】
図６に、コスト管理テーブルの例を示す。図６に示した例では、各縮小マクロブロックに対応して、検出された縮小動きベクトルと類似コスト１と類似コスト２とが保持される。また、各縮小マクロブロックに対応する縮小動きベクトルは、それぞれに対応する探索範囲の中心を原点とした座標として表される。なお、図６に示した例では、個々の座標値を対応する縮小マクロブロックのブロック番号を示す添え字を付して示している。
【００４４】
ここで、縮小マクロブロックＭＢｉの縮小動きベクトルを検出する際の処理を例として、コスト管理テーブル２１６に格納される情報を説明する。
【００４５】
図４(ｂ)に示した例では、縮小マクロブロックＭＢｉと符号Ａで示した矩形領域との差分絶対値和が最小であったことから、この矩形領域の位置を示すベクトルが縮小動きベクトルとして検出されている。なお、図４(ｂ)において、縮小マクロブロックＭＢｉについて検出された縮小動きベクトルは、符号ＭＶ(ＭＢｉ)を付した矢印で示されている。また、この縮小マクロブロックＭＢｉの左側に隣接している縮小マクロブロックＭＢｉ−１について検出された縮小動きベクトルは、符号ＭＶ(ＭＢｉ−１)を付した矢印で示されている。
【００４６】
この例では、図５に示したステップ３０５において、縮小ベクトル特定部２１５により、縮小マクロブロックＭＢｉについて検出した縮小動きベクトルが、コスト管理テーブル２１６に、ブロック番号ｉに対応して格納される。また、このとき、検出された縮小動きベクトルに対応する差分絶対値和が、類似コスト１として、コスト管理テーブル２１６に格納される。
【００４７】
次いで、縮小ベクトル特定部２１５は、コスト管理テーブル２１６を参照して、注目している縮小マクロブロックの左側に隣接する縮小マクロブロックに対応して検出された縮小動きベクトルを取得する(ステップ３０６)。例えば、縮小マクロブロックＭＢｉに注目している場合に、縮小ベクトル特定部２１５は、ブロック番号ｉ−１に対応して検出された縮小動きベクトルを取得する。なお、縮小ベクトル検出処理は、左上の縮小マクロブロックから走査順に従って実行されるので、縮小マクロブロックＭＢｉ−１の縮小動きベクトルは、縮小マクロブロックＭＢｉに先立ってコスト管理テーブル２１６に格納されている。
【００４８】
そして、縮小ベクトル特定部２１５は、類似度算出部２１４によって算出された差分絶対値和の中から、左隣の縮小マクロブロックの縮小動きベクトルと同じ座標値で示される矩形領域に対応するものを検出し、これを類似コスト２として格納する(ステップ３０７)。
【００４９】
図４(ｂ)に示した例では、縮小マクロブロックＭＢｉの探索範囲において、縮小マクロブロックＭＢｉ−１の縮小動きベクトルＶ１(ＭＢｉ−１)と同じ座標値で示される矩形領域は、符号Ｂを付して示されている。類似度算出部２１４は、縮小マクロブロックＭＢｉについての処理過程で、この探索範囲に含まれる全ての画素の座標で示される矩形領域について、差分絶対値和を算出している。したがって、縮小ベクトル特定部２１５は、これらの差分絶対値和の中から、図４(ｂ)に符号Ｂで示した矩形領域について算出された差分絶対値和を見つけ、これを類似コスト２としてコスト管理テーブル２１６に格納することができる。
【００５０】
ステップ３０１からステップ３０７の処理は、符号化対象フレームの原画像に対応する縮小画像に含まれる全ての縮小マクロブロックについて繰り返して行われる。そして、全ての縮小マクロブロックについての処理が完了したときに、ステップ３０８の肯定判定として、縮小動きベクトル検出処理が終了する。このとき、コスト管理テーブル２１６には、全ての縮小マクロブロックに対応して、検出された縮小動きベクトルとこれに対応する類似コスト１および上述した類似コスト２が格納されている。
【００５１】
次に、コスト管理テーブル２１６に格納された情報に基づいて、原画像の解像度に対応する動きベクトルを検出する処理のために、再構成画像フレームメモリ１０４から読み出される画像データ量を所定の閾値を上限として適応制御する方法について説明する。
【００５２】
図７に、読出画素数の算出動作を説明する図を示す。図７に示した例では、１６画素×１６画素のマクロブロックの動きベクトルを検出するための探索範囲として、マクロブロックと同じ形状の矩形を上下左右に３画素ずつ拡張した領域が設定されている。
【００５３】
図７に示した例では、ブロック番号ｉのマクロブロックＭＢｉの縮小動きベクトルとこれに隣接するブロック番号ｉ＋１のマクロブロックＭＢｉ＋１の縮小動きベクトルとが一致している場合の探索範囲が示されている。この場合に、マクロブロックＭＢｉの探索範囲として読み込まれた領域の一部は、マクロブロックＭＢｉ＋１の探索範囲の一部と重複している。
【００５４】
このような重複部分がある場合は、新たなマクロブロックに対応する探索範囲のうち、重複しない部分を追加して読み込むことで、新たなマクロブロックに対応する探索範囲を用意することができる。図７に示した例では、網掛けを付して示した２２画素×１６画素の領域が、マクロブロックＭＢｉ＋１の処理のために追加して読み出される追加読出領域となる。一方、上述したような重複部分がない場合は、新たなマクロブロックの処理に際して、２２画素×２２画素の探索範囲に含まれる全ての画素の画像データが新たに読み出される。
【００５５】
したがって、図３に示した読出画素数算出部２１７は、次のようにして、各マクロブロックの処理のために再構成画像フレームメモリ１０４から読み出す画素数を算出することができる。
【００５６】
まず、読出画素数算出部２１７は、コスト管理テーブル２１６を参照して、注目するマクロブロックに対応して保持された縮小動きベクトルと、左隣のマクロブロックに対応する縮小動きベクトルとを取得する。そして、これらの縮小動きベクトルに基づいて、読出画素数算出部２１７は、注目するマクロブロックに対応する探索範囲と、左隣のマクロブロックに対応する探索範囲との重複部分を検出する。次いで、読出画素数算出部２１７は、探索範囲に含まれる総画素数から、検出した重複部分に含まれる画素数を差し引いて、追加読出領域に含まれる画素数を求める。
【００５７】
読出画素数算出部２１７が各マクロブロックについて算出した画素数は、総和算出部２１８によって順次に加算されていく。そして、全てのマクロブロックに対応する読出画素数の加算が完了したときに、総和算出部２１８によって算出された読出画素数の総和Ｓは、適応制御部１１５に渡され、後述する適応制御処理に供される。
【００５８】
図８に、適応制御部の動作を表す流れ図を示す。
【００５９】
図３に示した適応制御部１１５の再計算制御部２２１は、まず、総和算出部２１８から総和Ｓを受け取り(ステップ３１１)、この総和Ｓと所定の閾値Ｔｈとを比較する(ステップ３１２)。そして、総和Ｓが閾値Ｔｈを超えている場合に、ステップ３１２の否定判定となり、ステップ３１３以下の処理が実行される。
【００６０】
ステップ３１２の否定判定の場合に、再計算制御部２２１は、ブロック選択部２２２に探索範囲の変更を適用するマクロブロックを選択する処理の実行を指示する。これに応じて、ブロック選択部２２２は、まず、コスト管理テーブル２１６を参照して、縮小動きベクトルが左隣のマクロブロックの縮小動きベクトルと異なる座標値で表されているマクロブロックを検索する(ステップ３１３)。
【００６１】
次いで、ブロック選択部２２２は、ステップ３１３で検索されたマクロブロックの中から、類似コスト１と類似コスト２との差が最小であるものを検出する(ステップ３１４)。例えば、ブロック番号ｉに対応してコスト管理テーブル２１６に保持された類似コスト１，２の差が最小であった場合は、このブロック番号ｉに対応するマクロブロックが探索範囲を変更する対象として選択される。
【００６２】
ここで、図４(ｂ)に示した例を参照して、縮小動きベクトルを検出する際に求められた類似コスト１と類似コスト２との差が小さいマクロブロックを検出する意味を説明する。図４(ｂ)に示した例では、検出された縮小動きベクトルＭＶ(ＭＢｉ)に対応する矩形領域Ａと縮小マクロブロックＭＢｉとの差分絶対値和が類似コスト１として保持される。そして、左隣に位置するマクロブロックＭＢｉ−１の縮小動きベクトルＭＶ(ＭＢｉ−１)と同じ座標値で示される矩形領域Ｂと縮小マクロブロックＭＢｉとの差分絶対値和が類似コスト２として保持される。したがって、類似コスト１と類似コスト２との差が小さいということは、矩形領域Ａと縮小マクロブロックＭＢｉとの類似度が、矩形領域Ｂと縮小マクロブロックＭＢｉとの類似度と同程度であることを示している。この場合に、検出された縮小動きベクトルＭＶ(ＭＢｉ)の代わりに、左隣の縮小動きベクトルＭＶ(ＭＢｉ−１)を適用して予測画像を生成しても、予測画像と原画像との間の予測誤差が大きく変化しない。このように、「類似コスト１と類似コスト２との差が小さい」旨の条件に基づく選択により、縮小動きベクトルを左隣のマクロブロックについて検出された縮小動きベクトルに変更したことによる予測誤差の変動が小さいマクロブロックを選択することができる。
【００６３】
再計算制御部２２１は、ブロック選択部２２２によって選択されたマクロブロックを読出画素数算出部２１７に指定して、再計算を指示する。これに応じて、読出画素数算出部２１７により、変更前の縮小動きベクトルに基づいて、縮小前の原画像の解像度で詳細な動きベクトルを探索する際の読出画素数ｎｏｌｄが算出される(ステップ３１５)。
【００６４】
次いで、再計算制御部２２１は、ベクトル変更部２２３を介して、選択されたマクロブロックに対応してコスト管理テーブル２１６に保持された縮小動きベクトルを左隣の縮小動きベクトルに置き換える(ステップ３１６)。そして、再計算制御部２２１は、再び、選択されたマクロブロックを読出画素数算出部２１７に指定して、再計算を指示する。これに応じて、読出画素数算出部２１７により、置換後の縮小動きベクトルに基づいて、詳細な動きベクトルを探索する際の読出画素数ｎｎｅｗが算出される(ステップ３１７)。
【００６５】
図４(ｂ)に示した例のように、選択されたマクロブロックについて検出された縮小動きベクトルが、左隣の縮小動きベクトルと大きく異なっている場合は、ステップ３１５で算出される読出画素数ｎｏｌｄは、探索範囲全体に対応する画素数となる。そして、ステップ３１６で縮小動きベクトルを左隣に合わせて置き換えた後に、ステップ３１７で算出される読出画素数ｎｎｅｗは、図７に網掛けを付して示した追加読出領域に含まれる画素数となる。
【００６６】
再計算制御部２２１は、次に、上述した変更前の読出画素数ｎｏｌｄと置換後の読出画素数ｎｎｅｗとの差分を画素数の総和Ｓから差し引いた値を新たな総和Ｓとする処理を行う(ステップ３１８)。その後、ステップ３１２に戻って、新たな総和Ｓと閾値Ｔｈとを比較し、否定判定の場合は、上述したステップ３１３からステップ３１８を繰り返す。
【００６７】
このようにして、適応制御部１１５では、類似コスト１と類似コスト２との差が小さい順に縮小動きベクトルを左隣の縮小動きベクトルに揃える処理を行っていく。図８に示した流れ図では、ステップ３１５、ステップ３１７およびステップ３１８の処理によって、動きベクトルの探索のために参照される画像データの総量を再計算する処理が実現されている。
【００６８】
そして、読出画素数の総和Ｓが閾値Ｔｈ以下となったときに、再計算制御部２２１は、ステップ３１２の肯定判定として、探索範囲を適応的に変更する処理を終了する。
【００６９】
そして、このような変更が反映されたコスト管理テーブル２１６に基づいて、参照画像読出制御部２２４は、各マクロブロックに対応して、参照フレームの再構成画像の探索範囲に含まれる画像データを、再構成画像フレームメモリ１０４から読み出す。そして、この参照画像読出制御部２２４によって読み出された画像データが、動きベクトル探索部２１６の類似度計算処理部２２５に入力され、得られた類似度計算結果に基づいて、動きベクトル特定部２２６により、詳細な動きベクトルが求められる。
【００７０】
上述した構成では、符号化対象フレームに含まれる各マクロブロックについて予測画像を生成する際に、再構成画像フレームメモリ１０４から動きベクトル探索のために読み出される画素数は、所定の閾値Ｔｈ以下に抑制されている。つまり、上述したように構成された動きベクトル検出装置では、動きベクトルの探索のために再構成画像フレームメモリ１０４から読み出される画像データの総量の抑制が実現されている。
【００７１】
そして、上述したように、適応制御部１１５による適応制御の過程で、縮小動きベクトルの置き換えは、置き換えを行ったことよる予測誤差の変動が小さい縮小マクロブロックについて選択的に行われている。したがって、このような縮小動きベクトルの置き換えを行ったことにより、符号化対象フレームの各マクロブロックとそれぞれについて得られた予測画像との間の予測誤差が大きく増大することはない。個々のマクロブロックの特徴によっては、上述したような縮小ベクトルの置き換えを行うことによって、むしろ、置き換えを行う前の縮小動きベクトルに基づいて探索を行った場合よりも、予測誤差が抑制される場合もある。例えば、画像の中で変化の少ない部分に含まれるマクロブロックでは、ノイズの影響のために、被写体の動きとは異なる動きベクトルが検出される場合がある。このような場合に、上述したようにして、隣接するマクロブロックと動きベクトルを揃える方向の制御を行うことにより、かえって、予測誤差の抑制を図ることができる。
【００７２】
このように、上述した構成の動きベクトル検出装置によれば、フレーム間予測誤差を増大させることなく、動きベクトル探索のために再構成画像フレームメモリ１０４から読み出される画像データの総量の抑制を図ることができる。
【００７３】
動きベクトル探索のために参照される画像データの総量を所定の閾値を上限として適応的に制御する構成の動きベクトル検出装置は、動画像符号化装置の小型化・低価格化を図る上で、非常に有用である。
【００７４】
動画像符号化装置の小型化・低価格化を図るために、符号化対象フレームの画像データや動きベクトル検出のための参照フレームの画像データおよび符号化処理で得られたビットストリームを一つの記憶素子に集約する場合がある。
【００７５】
図９に、動きベクトル検出装置の別実施形態を示す。なお、図９に示した構成要素のうち、図１に示した構成要素と同等のものについては、同一の符号を付して示し、その説明は省略する。図９に示した構成では、原画像フレームメモリ２０２と、ビットストリームメモリ２０３と、再構成画像フレームメモリ１０４とが、ＳＤＲＡＭに集約されている。
【００７６】
ここで、ＳＤＲＡＭなどの記憶素子に対して単位時間内に書き込みあるいは読み出しが可能なデータの量は、記憶素子のデータ転送速度によって制限される。したがって、一つの記憶素子を共用するそれぞれの処理が、単位時間内に記憶素子に対してアクセスすることが可能なデータ量もまた制限される。つまり、図９に示したＳＤＲＡＭに集約された原画像フレームメモリ２０２、ビットストリームメモリ、再構成画像フレームメモリ１０４に対するアクセスを行う処理に対して、それぞれ割り当て可能な帯域が制限される。
【００７７】
上述したように、動きベクトル検出装置１１１を構成した場合は、動きベクトル探索のために参照される画像データの総量が一定量を上限として制御される。したがって、例えば、動きベクトル探索のために割り当てられた帯域に基づいて、適応制御部１１５において読み出し画素数の総和Ｓを適応制御する際の閾値Ｔｈを設定することができる。これにより、割り当てられた帯域内で、動きベクトル探索処理を実現することができる。
【００７８】
ところで、縮小動きベクトル検出部１１３において検出された縮小動きベクトルに対応する差分絶対値和の値の大小は、検出された縮小動きベクトルと動きベクトル探索部１１６で特定される詳細な動きベクトルとの差異の大きさにも対応している。したがって、縮小動きベクトルの検出の際に得られた差分絶対値和の値が小さい場合には、縮小動きベクトルとこの縮小動きベクトルに基づいて設定された探索範囲から求められた詳細な動きベクトルとがほぼ一致する場合もある。このような場合には、詳細な動きベクトルの探索のために設定する探索範囲のサイズを、マクロブロックと同等の大きさに縮小しても、縮小前の探索範囲を適用した場合と同等の動きベクトルが得られる。
【００７９】
図１０に、探索範囲のサイズ変更を説明する図を示す。図１０に示した例では、二つのマクロブロックＭＢｉ，ＭＢｉ＋１に対応して検出された縮小動きベクトルが一致している。そして、マクロブロックＭＢｉ＋１にサイズが縮小された探索範囲が適用されている。この場合に、マクロブロックＭＢｉ＋１の動きベクトル探索のために、新たに読み込まれる追加読出領域を、図１０に網掛けを付して示した。この追加読出領域のサイズは、１６画素×１３画素となり、図７に示した追加読出領域に含まれる各画素を読み出す場合に比べて、画像データの読出量を更に削減することができる。
【００８０】
以下の実施形態では、後述する条件を満たすマクロブロックについて探索範囲のサイズを縮小することにより、再構成画像フレームメモリ１０４から読み出される画像データ総量を抑制する構成について説明する。
(実施形態３)
図１１に、動きベクトル検出装置の別実施形態を示す。なお、図１１に示した構成要素のうち、図３に示した構成要素と同等のものについては、同一の符号を付して示し、その説明は省略する。
【００８１】
参照データ量算出部１１４は、図３に示したコスト管理テーブル２１６に代えて、コスト管理テーブル２３１を備えている。また、適応制御部１１５は、再計算制御部２３２と、ブロック選択部２３３と、フラグ設定部２３４と、参照画像読出制御部２３５とを備えている。
【００８２】
図１２に、コスト管理テーブルの例を示す。図１２に示した例では、各マクロブロックを示すブロック番号に対応して、検出された縮小動きベクトルと、その検出の際に得られた差分絶対値和とに加えて、後述する縮小フラグが、コスト管理テーブル２３１に格納されている。
【００８３】
コスト管理テーブル２３１に保持される各マクロブロックの縮小動きベクトルおよび差分絶対値和は、上述した実施形態２と同様にして、縮小ベクトル特定部２１５によって格納される。一方、各ブロック番号に対応する縮小フラグは、適応制御部１１５による処理の過程で設定される。
【００８４】
図１３に、適応制御部の動作を表す流れ図を示す。なお、図１３に示したステップのうち、図８に示したステップと同等のものについては、同一の符号を付して示し、その説明は省略する。
【００８５】
適応制御部１１５の再計算制御部２３２は、図８に示した流れ図と同様に、総和算出部２１８から受け取った読出画素数の総和Ｓが所定の閾値Ｔｈ以下であるか否かを判定する(ステップ３１１，３１２)。そして、ステップ３１２の否定判定の場合に、ブロック選択部２３３およびフラグ設定部２３４を制御して、以下に述べるステップ３２１〜ステップ３２６の処理を行う。
【００８６】
ブロック選択部２３３は、再計算制御部２３２からの指示に応じて、まず、コスト管理テーブル２３１を参照し、縮小フラグが未設定となっているマクロブロックを検索する(ステップ３２１)。次いで、ブロック選択部２３３は、検索したマクロブロックの中から、差分絶対値和が最小のものを検出し、検出したマクロブロックのブロック番号を再計算制御部２３２に通知する(ステップ３２２)。
【００８７】
再計算制御部２２１は、ブロック選択部２３３から通知されたブロック番号を読出画素数算出部２１７に指定して、再計算を指示する。これに応じて、読出画素数算出部２１７により、指定されたマクロブロックについて、詳細な動きベクトルを探索するために通常のサイズの探索範囲を適用した場合の読出画素数ｎｏｌｄが算出される(ステップ３２３)。
【００８８】
次いで、再計算制御部２２１は、フラグ設定部２３４を介して、コスト管理テーブル２１６に、このマクロブロックに対応して、詳細な動きベクトル探索のために縮小サイズの探索範囲を適用する旨の縮小フラグを設定する(ステップ３２４)。そして、再計算制御部２２１は、再び、ステップ３２２で通知されたブロック番号を指定して、読出画素数算出部２１７に再計算を指示する。これに応じて、読出画素数算出部２１７により、縮小サイズの探索範囲を適用した場合の読出画素数ｎｎｅｗが算出される(ステップ３２５)。
【００８９】
図１０の例では、指定されたマクロブロックＭＢｉ＋１について検出された縮小動きベクトルと、左隣の縮小動きベクトルとが一致している。この場合に、ステップ３２３で算出される読出画素数ｎｏｌｄは、図７に示した追加読出領域と同様に、マクロブロックＭＢｉ＋１の探索範囲から左隣のマクロブロックの探索範囲との重複部分を除いた部分の画素数となる。そして、このマクロブロックＭＢｉ＋１について縮小サイズの探索範囲を適用する旨の縮小フラグが設定された場合に、図１０に網掛けを付して示した追加読出領域に含まれる画素数が、ステップ３２５において読出画素数ｎｎｅｗとして算出される。
【００９０】
再計算制御部２２１は、次に、上述した通常サイズの探索範囲を適用した場合の読出画素数ｎｏｌｄと縮小サイズの探索範囲を適用した場合の読出画素数ｎｎｅｗとの差分を画素数の総和Ｓから差し引いた値を新たな総和Ｓとする処理を行う(ステップ３２６)。その後、ステップ３１２に戻って、新たな総和Ｓと閾値Ｔｈとを比較し、否定判定の場合は、上述したステップ３２１からステップ３２６を繰り返す。
【００９１】
このようにして、適応制御部１１５では、縮小動きベクトルを検出した際に得られた差分絶対値和が小さい順に、詳細な動きベクトルの探索に縮小サイズの探索範囲を適用させる旨のフラグを設定する処理を行っていく。
【００９２】
そして、読出画素数の総和Ｓが閾値Ｔｈ以下となったときに、再計算制御部２３２は、ステップ３１２の肯定判定として、探索範囲を適応的に変更する処理を終了する。
【００９３】
このような変更が反映されたコスト管理テーブル２３１に基づいて、参照画像読出制御部２３５は、各マクロブロックに対応する参照フレームの再構成画像の探索範囲に含まれる画像データを、再構成画像フレームメモリ１０４から読み出す。
【００９４】
このとき、参照画像読出制御部２３５は、コスト管理テーブル２３１に縮小フラグが設定されていないマクロブロックについては、隣接するマクロブロックの探索範囲との重複を考慮した通常サイズの探索範囲に含まれる画像データが読み出される(図７参照)。一方、コスト管理テーブル２３１に縮小フラグが設定されているマクロブロックについては、縮小サイズの探索範囲から隣接するマクロブロックの探索範囲との重複部分を除いた追加読出領域の画像データが読み出される(図１０参照)。
【００９５】
つまり、図１１に示した構成では、コスト管理テーブル２３１に縮小フラグを付したマクロブロックについて、参照画像読出制御部２３５が縮小された探索範囲を適用して読出を行うことにより、探索範囲を縮小する範囲制限部の機能が果たされている。
【００９６】
また、この参照画像読出制御部２２４によって読み出された画像データが、動きベクトル探索部２１６の類似度計算処理部２２５に入力され、得られた類似度計算結果に基づいて、動きベクトル特定部２２６により、詳細な動きベクトルが求められる。
【００９７】
上述した構成では、符号化対象フレームに含まれる各マクロブロックについて予測画像を生成する際に、再構成画像フレームメモリ１０４から動きベクトル探索のために読み出される画素数は、所定の閾値Ｔｈ以下に抑制されている。つまり、上述したように構成された動きベクトル検出装置では、動きベクトルの探索のために再構成画像フレームメモリ１０４から読み出される画像データの総量の抑制が実現されている。
【００９８】
そして、上述したように、適応制御部１１５による適応制御の過程で、縮小サイズの探索範囲の適用は、探索範囲の縮小による予測誤差の変動が小さい縮小マクロブロックについて選択的に行われている。したがって、このような探索範囲の制限を行ったことにより、符号化対象フレームの各マクロブロックとそれぞれについて得られた予測画像との間の予測誤差が大きく増大することはない。
【００９９】
このように、実施形態３で説明したように構成された動きベクトル検出装置によっても、動画像符号化の際の予測誤差を増大させることなく、動きベクトルの探索のために読み出される画像データの総量を抑制することができる。
【０１００】
なお、動きベクトル検出装置に、実施形態２と実施形態３で説明した構成を組み合わせて適用することもできる。例えば、縮小動きベクトルの置き換えを許可する類似コストの差に上限を設け、その後、個々の縮小マクロブロックについて得られた類似コストに基づいて、探索範囲のサイズの縮小を適用することもできる。
【０１０１】
また、上述したような動きベクトル検出装置の各部は、それぞれの機能を実現するための処理をコンピュータに実行させるソフトウェアによって実現することも可能である。
【符号の説明】
【０１０２】
１００  動画像符号化装置
１０１  誤差画像生成部
１０２  直交変換／量子化部
１０３  エントロピー符号化部
１０４  再構成画像フレームメモリ
１０５  再構成画像生成部
１０６  ラインメモリ
１０７  デブロッキングフィルタ
１０８  画面内予測部
１０９  予測画像選択部
１１０  フレーム間予測部
１１１  動きベクトル検出装置
１１２  動き補償部
１１３  縮小動きベクトル検出部
１１４  参照データ量算出部
１１５  適応制御部
１１６  動きベクトル探索部
２０１  撮像部
２０２  原画像フレームメモリ
２０３  ビットストリームメモリ
２１１  縮小画像生成部
２１２  縮小画像メモリ
２１３  縮小参照画像メモリ
２１４  類似度算出部
２１５  縮小ベクトル特定部
２１６，２３１  コスト管理テーブル
２１７  読出画素数算出部
２１８  総和算出部
２２１，２３２  再計算制御部
２２２，２３３  ブロック選択部
２２３  ベクトル変更部
２２４，２３５  参照画像読出制御部
２２５  類似度計算処理部
２２６  動きベクトル特定部
２３４  フラグ設定部
【図１】
2011182356.tif 000004
【図２】
2011182356.tif 000005
【図３】
2011182356.tif 000006
【図４】
2011182356.tif 000007
【図５】
2011182356.tif 000008
【図６】
2011182356.tif 000009
【図７】
2011182356.tif 000010
【図８】
2011182356.tif 000011
【図９】
2011182356.tif 000012
【図１０】
2011182356.tif 000013
【図１１】
2011182356.tif 000014
【図１２】
2011182356.tif 000015
【図１３】
2011182356.tif 000016