(57)【要約】動画像の動き探索において、並列に処理できるブロック数が多く且つ高精度の動きベクトルを算出することを可能とする。  動き推定装置は、周囲のブロックの動きベクトルを参照してベクトル予測を行う動き推定装置であって、複数の動き推定部が隣接ブロックを並列に処理する。前記各動き推定部は、処理が終了しているブロック群の動きベクトルを用いて擬似的な予測ベクトルを算出する擬似予測ベクトル算出部と、算出された擬似的な予測ベクトルを使用して処理対象ブロックの動きベクトルを探索する動きベクトル探索部と、を備える。
2012086829.tif 000002
【特許請求の範囲】
【請求項１】
周囲のブロックの動きベクトルを参照してベクトル予測を行う動き推定装置であって、
複数の動き推定手段が隣接ブロックを並列に処理し、
前記各動き推定手段は、
処理が終了しているブロック群の動きベクトルを用いて擬似的な予測ベクトルを算出する擬似予測ベクトル算出手段と、
算出された擬似的な予測ベクトルを使用して処理対象ブロックの動きベクトルを探索する動きベクトル探索手段と
を備えることを特徴とする動き推定装置。
【請求項２】
前記擬似予測ベクトル算出手段は、
処理の終了したブロックのうち、処理対象ブロック位置（ｘ、ｙ）に対して、ブロック位置にｘ、ｘ−ｓ、ｘ＋ｔ、ｙ、ｙ−ｕ（ｓ、ｔ、ｕは任意の正の整数）の座標を持つブロックをそれぞれ１つ以上含むブロック群の動きベクトルを参照して擬似的な予測ベクトルを算出する
ことを特徴とする請求項１に記載の動き推定装置。
【請求項３】
前記隣接ブロックは斜め方向に隣接するブロックであり、
前記擬似予測ベクトル算出手段は、当該処理ブロック位置が（ｘ、ｙ）のブロックに対して、（ｘ−１、ｙ）、（ｘ、ｙ−１）、（ｘ＋１、ｙ−２）の位置のブロックの動きベクトルを参照して擬似的な予測ベクトルを算出する
ことを特徴とする請求項２に記載の動き推定装置。
【請求項４】
前記擬似予測ベクトル算出手段は、
参照するブロック位置のパターンを複数持ち、
処理ブロック位置により前記参照ブロックパターンを切り替える
ことを特徴とする請求項１または２に記載の動き推定装置。
【請求項５】
前記動き推定手段は、
参照ブロック選択手段を備え、
前記参照ブロック選択手段は、処理が終了したブロックの中から何れのブロックを使用するかをブロックの情報に基づいて判断する
ことを特徴とする請求項１または２に記載の動き推定装置。
【請求項６】
周囲のブロックの動きベクトルを参照してベクトル予測を行う動き推定方法であって、
複数の動き推定手段が隣接ブロックを並列に処理し、
前記各動き推定手段において、処理が終了しているブロック群の動きベクトルを用いて擬似的な予測ベクトルを算出し、算出された擬似的な予測ベクトルを使用して処理対象ブロックの動きベクトルを探索する
ことを特徴とする動き推定方法。
【請求項７】
周囲のブロックの動きベクトルを参照してベクトル予測を行う動き推定装置のコンピュータに、
複数の動き推定手段が隣接ブロックを並列に処理する機能と、
前記各動き推定手段において、処理が終了しているブロック群の動きベクトルを用いて擬似的な予測ベクトルを算出し、算出された擬似的な予測ベクトルを使用して処理対象ブロックの動きベクトルを探索する機能と
を実行させることを特徴とする動き推定プログラム。
【請求項８】
複数のブロック符号化手段が斜めに隣接するブロックを並列に処理し、
各ブロック符号化手段は、
請求項２、３、５のいずれか１項に記載の動き推定手段と、
左と上のブロックの処理結果を参照する画像処理手段と
を備えることを特徴とする動画像符号化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動き推定装置、動き推定方法、動き推定プログラム、および動画像符号化装置に関する。
【背景技術】
【０００２】
近年、動画像の画像サイズ拡大要求は年々高まっており、それに伴って、符号化技術もＭＰＥＧ−２、ＭＰＥＧ−４、Ｈ．２６４／ＭＰＥＧ−４ＡＶＣ（以下、Ｈ．２６４）と圧縮効率を向上させるように進歩してきた。なお、上記において、ＭＰＥＧは、Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐの略である。ＡＶＣは、Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇの略である。これらの符号化方式は、フレーム間の動き補償を用いて情報を圧縮することで高い符号化効率を達成している。例えば、非特許文献１には、Ｈ．２６４の規格に基づく処理の内容が記載されている。また非特許文献２には、Ｈ．２６４の規格に基づいた動画像符号化装置の実装の詳細が記載されている。
ここで、動き補償とは、次のような方法で動画像情報を圧縮する技術である。即ち符号化対象フレームと参照フレームの間の動き情報を用いて、参照フレームの画像に動き補正を行った予測画像を生成し、符号化対象フレームと予測画像との差分と動きベクトルと呼ばれる動き情報のみを符号化する。動き補償を含む、例えば、Ｈ．２６４における動画像符号化の処理は、１６×１６画素のマクロブロック単位で行われる。動き情報を算出する処理を動き推定といい、マクロブロック内の１６×１６画素や８×８画素などのブロック毎に参照フレームの中から符号化対象ブロックと類似度が高いブロックを探索する。参照フレームの最も類似度が高いブロックと符号化対象ブロックの位置差を表したのが動きベクトルである。
さらに、近接する動きベクトル同士は相関性が高いため、すでに処理された周辺のブロックの動きベクトルから予測ベクトルを算出し、予測ベクトルと当該動きベクトルの差分のみを符号化することで、動きベクトルの符号量も削減することができる。符号化効率の良い動きベクトルを探索するためのレート歪最適化方式が非特許文献３に開示されている。
図３０は、非特許文献１に記載の動画像符号化装置５０００の構成を示すブロック図である。図３１は、動画像符号化装置５０００の動作を示すフローチャートである。動画像符号化装置５０００の動き推定部５０１１０は、周辺のブロックの動きベクトルから符号化対象ブロックの予測ベクトルＰＭＶを算出し（ステップＳ１０２）、ＰＭＶを使用してレート歪最適化した動きベクトル探索を行う（ステップＳ１０３）。動き補償部５０２０は、動きベクトルを使用して予測画像を生成する。
また、Ｈ．２６４などの近年の符号化方式は演算量が多いため並列処理によって高速化を図ることも多い。動き推定処理の並列化方式の一つにブロック単位の並列化がある。動き推定は、ブロックごとにほぼ独立であり並列化しやすいが、予測ベクトルの算出には周囲のブロックの処理結果を使用するため、処理順序に制約が生じる。
また、非特許文献２に示されるように、Ｈ．２６４における動き推定では図３２に示すブロックＸの予測ベクトルとしてブロックＡ、Ｂ、Ｃの動きベクトルのメディアンを用いる。動きベクトル探索では、予測ベクトルと各候補ベクトルの差分の符号量（ベクトルコスト）と、各候補ベクトルで動き補償した画像ブロックと符号化対象ブロックの差分絶対値和などによる類似度評価値との合計をコストとし、コストが最小になるベクトルを探索する。符号化時には、予測ベクトルと動きベクトルの差分、予測画像と原画像の差分のみを符号化するため、ベクトル予測により符号化効率が向上する。
前述したように、予測ベクトルを用いる場合、動き推定時に正確なベクトルコストを得るためにはブロックＡ、Ｂ、Ｃにおける処理が終了し動きベクトルが決定しなければ符号化対象ブロックＸの動き推定を開始できない。この制約を満たすように並列処理を行う例が非特許文献４に記載されている。
図３４は、非特許文献４に記載の並列動き推定装置７００の構成を示すブロック図である。動きベクトル探索部１１２が決定した動きベクトルは動きベクトルバッファ１２０に格納され、予測ベクトル算出部７１１は動きベクトルバッファ１２０に格納されている他のブロックの動きベクトルを用いて予測ベクトルを算出する。図３３は、非特許文献４に記載の並列動き推定装置７００における並列処理順を示す。図３３において、同一番号が付与されているブロックが並列に処理可能なブロックである。
一方、ベクトル予測を行わない並列動き推定装置の一例が非特許文献５に記載されている。図３５は、非特許文献５に記載の並列動き推定装置５００の構成を示すブロック図である。この並列動き推定装置５００と、図３４に示す並列動き推定装置７００との違いは、動き推定部５１０が予測ベクトル算出部７１１を有していない点にある。非特許文献５のようにベクトル予測を行わずに動きベクトル探索をすると、ブロック間に依存関係はなく全てのブロックを並列に処理できる。
また、特許文献１には、図３２のブロックＡ、Ｂ、Ｃの処理結果が決定していない場合にその近傍ブロックの処理結果を用いて処理を行う並列動画像符号化装置についての記載がある。図３６は、特許文献１に記載の並列動き推定装置６００の構成を示すブロック図である。並列動き推定装置６００は、動き推定部６１０を備える。動き推定部６１０は、予測ベクトル算出部６１と、動きベクトル探索部６２と、擬似予測ベクトル算出部６３と、ダイレクトモード・スキップモードコスト算出部６４と、モード判定部６５とを含む。予測ベクトルを算出するのに用いる規定のブロックＡ、Ｂ、Ｃの動きベクトルが決定していない場合、動き推定部６１０は以下のように動作する。即ち、その近傍ブロックを用いて擬似的な予測ベクトルを算出し、擬似的な予測ベクトルを用いてダイレクトモード・スキップモードのコストを算出する。また動きベクトル探索部６２は、予測ベクトルは用いずに探索する。モード判定部６５は、各モードのコストを比較し出力する。動き推定部６１０内の各処理はパイプライン処理により並列動作する。図３７は、この並列動き推定装置６００の動作を説明するためのフローチャートである。動きベクトル探索部６２は、予測ベクトルを使用せずに動きベクトルを探索する（ステップＳ３０１）。擬似予測ベクトル算出部６３は、規定のブロックの近傍ブロックから擬似予測ベクトルＰＭＶｘを算出する（ステップＳ３０２）。ダイレクトモード・スキップモードコスト算出部６４は、擬似予測ベクトルＰＭＶｘを用いてダイレクトモードとスキップモードのコストを評価する（ステップＳ３０３）。モード判定部６５は、規定のブロックＡ、Ｂ、Ｃの動きベクトルが確定するのを待って（ステップＳ３０４）、規定のブロックの動きベクトルから予測ベクトルＰＭＶを算出する（ステップＳ３０５）。ＰＭＶｘとＰＭＶが等しくなければステップＳ３０３で算出した結果は廃棄し（ステップＳ３０８）、等しければ、ステップＳ３０３で算出した結果を使用して（ステップＳ３０７）、モードの判定を行う（ステップＳ３０９）。
非特許文献１に記載のように、Ｈ．２６４などの動画像符号化は逐次処理を前提としており、マクロブロックは左上からラスタスキャン順に処理される。そのため、逐次処理では先に処理が終了している上や左のマクロブロックの情報を用いて処理する部分が多い。非特許文献２に記載のように、動き推定部は左と上と右上のマクロブロックの情報を使用し、画面内予測部やデブロッキングフィルタでも左と上のマクロブロックの情報を使用することで高い符号化効率を達成する。
近年、並列処理演算装置として３Ｄグラフィックス処理プロセッサであるＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）の性能向上が著しい。ＧＰＵは数十から数百コアと非常に多くのコアを集積したメニコアプロセッサであり、性能を引き出すためには、処理アプリケーションの充分な並列性が必要となる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−２４４５０３号公報
【非特許文献】
【０００４】
【非特許文献１】ＩＴＵ−Ｔ  Ｒｅｃｏｍｍｅｎｄａｔｉｏｎ  Ｈ．２６４“Ａｄｖａｎｃｅｄ  ｖｉｄｅｏ  ｃｏｄｉｎｇ  ｆｏｒ  ｇｅｎｅｒｉｃ  ａｕｄｉｏｖｉｓｕａｌ  ｓｅｒｖｉｃｅｓ、”Ｍａｙ  ２００３．
【非特許文献２】Ｋ．Ｐ．Ｌｉｍ、Ｇ．Ｓｕｌｌｉｖａｎ  ａｎｄ  Ｔ．Ｗｉｅｇａｎｄ、“Ｔｅｘｔ  Ｄｅｓｃｒｉｐｔｉｏｎ  ｏｆ  Ｊｏｉｎｔ  Ｍｏｄｅｌ  Ｒｅｆｅｒｅｎｃｅ  Ｅｎｃｏｄｉｎｇ  Ｍｅｔｈｏｄｓ  ａｎｄ  Ｄｅｃｏｄｉｎｇ  Ｃｏｎｃｅａｌｍｅｎｔ  Ｍｅｔｈｏｄｓ”、Ｊｏｉｎｔ  Ｖｉｄｅｏ  Ｔｅａｍ（ＪＶＴ）ｏｆ  ＩＳＯ／ＩＥＣ  ＭＰＥＧ  ａｎｄ  ＩＴＵ−Ｔ  ＶＣＥＧ、Ｂｕｓａｎ、Ｋｏｒｅａ、Ａｐｒ．２００５
【非特許文献３】Ｓｕｌｌｉｖａｎ、Ｇ．Ｊ．；Ｗｉｅｇａｎｄ、Ｔ．；、“Ｒａｔｅ−ｄｉｓｔｏｒｔｉｏｎ  ｏｐｔｉｍｉｚａｔｉｏｎ  ｆｏｒ  ｖｉｄｅｏ  ｃｏｍｐｒｅｓｓｉｏｎ、”Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｍａｇａｚｉｎｅ、ＩＥＥＥ、ｖｏｌ．１５、ｎｏ．６、ｐｐ．７４−９０、Ｎｏｖ  １９９８
【非特許文献４】Ｎａｇａｉ−Ｍａｎ  Ｃｈｅｕｎｇ；Ｘｉａｏｐｅｎｇ  Ｆａｎ；Ａｕ、Ｏ．Ｃ．；Ｍａｎ−Ｃｈｅｕｎｇ  Ｋｕｎｇ；“Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  ｏｎ  Ｍｕｌｔｉｃｏｒｅ  Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｏｒｓ、”Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｍａｇａｚｉｎｅ、ＩＥＥＥ、ｖｏｌ．２７、ｎｏ．２、ｐｐ．７９−８９、Ｍａｒｃｈ  ２０１０
【非特許文献５】Ｗｅｉ−Ｎｉｅｎ  Ｃｈｅｎ１  ａｎｄ  Ｈｓｕｅｈ−Ｍｉｎｇ  Ｈａｎｇ１、“Ｈ．２６４／ＡＶＣ  Ｍｏｔｉｏｎ  Ｅｓｔｉｍａｔｉｏｎ  Ｉｍｐｌｅｍｅｎｔａｔｉｏｎ  ｏｎ  Ｃｏｍｐｕｔｅ  Ｕｎｉｆｉｅｄ  Ｄｅｖｉｃｅ  Ａｒｃｈｔｅｃｔｕｒｅｒ（ＣＵＤＡ）”、Ｍｕｌｔｉｍｅｄｉａ  ａｎｄ  Ｅｘｐｏ、２００８  ＩＥＥＥ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ、ｐｐ．６９７−７００、Ｊｕｎｅ  ２３  ２００８−Ａｐｒｉｌ  ２６  ２００８
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上述した背景技術では、並列に処理できるブロック数が少ない、もしくは動きベクトル探索結果の精度が悪いという課題がある。
非特許文献４に記載の手法では、並列に処理できるブロック数が少ない。並列に処理できるブロック数が少ないと、特にＧＰＵなどのプロセッサが多数あるメニコアプロセッサを使用して並列処理する場合には並列化効率が低く充分な処理速度を得られない。特許文献１に記載の手法も並列に処理できるブロック数は少なく、また予測ベクトルを用いて動きベクトルを探索しないためベクトルコストの精度が低く動きベクトル探索結果の精度が悪い。非特許文献５に記載の手法では全てのブロックを並列に処理することが可能なため並列に処理できるブロック数は多いが、予測ベクトルを用いないためベクトルコストの精度が低く動きベクトル探索結果の精度が悪い。
（発明の目的）
本発明は、動画像の動き探索において、並列に処理できるブロック数が多く、且つ高精度の動きベクトルを算出することが可能な、動き推定装置、動き推定方法、動き推定プログラム、および動画像符号化装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の動き推定装置は、周囲のブロックの動きベクトルを参照してベクトル予測を行う動き推定装置であって、複数の動き推定部が隣接ブロックを並列に処理し、前記各動き推定部は、処理が終了しているブロック群の動きベクトルを用いて擬似的な予測ベクトルを算出する擬似予測ベクトル算出部と、算出された擬似的な予測ベクトルを使用して処理対象ブロックの動きベクトルを探索する動きベクトル探索部と、を備える。
本発明の動き推定方法は、周囲のブロックの動きベクトルを参照してベクトル予測を行う動き推定方法であって、複数の動き推定部が隣接ブロックを並列に処理し、前記各動き推定部において、処理が終了しているブロック群の動きベクトルを用いて擬似的な予測ベクトルを算出し、算出された擬似的な予測ベクトルを使用して処理対象ブロックの動きベクトルを探索する。
本発明の動き推定プログラムは、周囲のブロックの動きベクトルを参照してベクトル予測を行う動き推定装置のコンピュータに、複数の動き推定部が隣接ブロックを並列に処理する機能と、前記各動き推定部において、処理が終了しているブロック群の動きベクトルを用いて擬似的な予測ベクトルを算出し、算出された擬似的な予測ベクトルを使用して処理対象ブロックの動きベクトルを探索する機能と、を実行させる。
【発明の効果】
【０００７】
本発明によれば、並列に処理できるブロック数が多く、且つ高精度の動きベクトルを算出することが可能となる。
【図面の簡単な説明】
【０００８】
【図１】本発明の第１の実施の形態における並列動き推定装置の構成例を示すブロック図である。
【図２】第１の実施の形態における並列動き推定装置の動作例を示すフローチャートである。
【図３】第１の実施の形態における並列動き推定装置がベクトル予測に用いる第１のブロック位置例である。
【図４】第１の実施の形態における並列動き推定装置の第１の並列処理順例である。
【図５】第１の実施の形態における並列動き推定装置がベクトル予測に用いる第２のブロック位置例である。
【図６】第１の実施の形態における並列動き推定装置の第２の並列処理順例である。
【図７】第１の実施の形態における並列動き推定装置がベクトル予測に用いることのできるブロック位置を示すための参考図である。
【図８】第１の実施の形態における並列動き推定装置がベクトル予測に用いることのできないブロック位置の例である。
【図９】第２の実施の形態における並列動き推定装置がベクトル予測に用いるブロック位置が存在する範囲の例である。
【図１０】第２の実施の形態における並列動き推定装置がベクトル予測に用いるブロック位置例である。
【図１１】第２の実施の形態における並列動き推定装置の並列処理順例である。
【図１２】第２の実施の形態における並列動き推定装置の動作例を示すフローチャートである。
【図１３】第２の実施の形態における並列動き推定装置の擬似動きベクトルの例である。
【図１４】第３の実施の形態における並列動き推定装置の動作例を示すフローチャートである。
【図１５】第３の実施の形態における並列動き推定装置の並列処理順例である。
【図１６】第３の実施の形態における並列動き推定装置がベクトル予測に用いるブロック位置例である。
【図１７】第３の実施の形態における並列動き推定装置の並列処理順例である。
【図１８】第４の実施の形態における並列動き推定装置の動作例を示すフローチャートである。
【図１９】第４の実施の形態における並列動き推定装置がベクトル予測に用いるブロック位置例である。
【図２０】第４の実施の形態における並列動き推定装置の並列処理順例である。
【図２１】第５の実施の形態における並列動き推定装置の構成例を示すブロック図である。
【図２２】第５の実施の形態における並列動き推定装置の動作例を示すフローチャートである。
【図２３】第６の実施の形態における並列動き推定装置の構成例を示すブロック図である。
【図２４】第６の実施の形態における並列動き推定装置の動作例を示すフローチャートである。
【図２５】第７の実施の形態における並列動画像符号化装置の構成例を示すブロック図である。
【図２６】動き推定と左と上を参照する処理を別の並列処理順で処理した場合の図である。
【図２７】動き推定と左と上を参照する処理を同じ並列処理順で処理した場合の図である。
【図２８】本発明の実施例における並列動画像符号化装置の動き推定部の動作例を示すフローチャートである。
【図２９】非特許文献４と本実施例の処理回数の差を表すグラフである。
【図３０】非特許文献１に記載の動画像符号化装置の構成を説明するためのブロック図である。
【図３１】非特許文献１に記載の動画像符号化装置の動作を説明するためのフローチャートである。
【図３２】非特許文献２に記載の動画像符号化装置におけるベクトル予測に用いるブロックである。
【図３３】図３４に示す並列動き推定装置における並列処理順である。
【図３４】非特許文献４に記載の並列動き推定装置の構成を説明するためのブロック図である。
【図３５】非特許文献５に記載の並列動き推定装置の構成を説明するためのブロック図である。
【図３６】特許文献１に記載の並列動き推定装置の構成を説明するためのブロック図である。
【図３７】図３６に示す並列動き推定装置の動作を説明するためのフローチャートである。
【発明を実施するための形態】
【０００９】
以下、本発明の実施の形態について、図面を参照して詳細に説明する。
［第１の実施の形態］
図１は、本発明の第１の実施の形態における並列動き推定装置１００の構成例を示すブロック図である。図１に示されるように、並列動き推定装置１００において、擬似予測ベクトル算出部１１１と動きベクトル探索部１１２とからなる動き推定部１１０が、隣接するブロックを並列処理するように構成される。なお、図１では、４並列処理の場合を例に挙げるが、これはあくまで一例であって、並列数は５以上でも４未満でもかまわない。また、動き推定部１１０には、特許文献１のようにダイレクトモードやスキップモードのコストを算出し、モードを判定する機能が追加されても構わない。
擬似予測ベクトル算出部１１１は、処理の終了している任意のブロックの動きベクトルを動きベクトルバッファ１２０から取得し、擬似予測ベクトルを、例えばベクトルのメディアンにより算出し出力する。動きベクトル探索部１１２は、擬似予測ベクトルと現フレームと参照フレームとを入力とし、最も評価コストの良い動きベクトルを出力する。
ここで、本発明の第１の実施の形態におけるベクトル予測（擬似ベクトル予測）の原理について説明する。第１の実施の形態では、図３２に示す処理対象ブロックＸの位置（ｘ、ｙ）に対して、ブロックＡ（ｘ−１、ｙ）、Ｂ（ｘ、ｙ−１）、Ｃ（ｘ＋１、ｙ−１）の動きベクトルから算出される本来の予測ベクトルを参照して動きベクトル探索を行うのではない。第１の実施の形態では、ブロックＡ、Ｂ、Ｃ以外を含んでも良いブロックセットの動きベクトルを参照して、擬似的な予測ベクトルを、例えば動きベクトルのメディアンによって算出する。算出された擬似的な予測ベクトルを用いて処理対象ブロックの動きベクトルを探索することで、隣接するブロック同士の動き推定処理を並列に行う。擬似的な予測ベクトルを算出するために参照するブロックは、先に処理が終了したブロックのセットを用いる。
図３は、第１の実施の形態における並列動き推定装置がベクトル予測に用いる第１のブロック位置例である。例えば、図３に示すＤ（ｘ−１、ｙ−１）、Ｇ（ｘ、ｙ−２）、Ｅ（ｘ＋１、ｙ−２）のブロックを参照する（つまり、Ｄ、Ｇ、Ｅのブロックが終了してからＸ（ｘ、ｙ）のブロックを処理する）と、図４に示すように横に隣接するブロック同士を並列に処理することができる。
また、図５は、第１の実施の形態における並列動き推定装置がベクトル予測に用いる第２のブロック位置例である。図５に示すＤ（ｘ−１、ｙ−１）、Ａ（ｘ−１、ｙ）、Ｐ（ｘ−１、ｙ＋１）のブロックを参照する（つまり、Ｄ、Ａ、Ｐのブロックが終了してからＸ（ｘ、ｙ）のブロックを処理する）と、図６に示すように縦に隣接するブロック同士を並列に処理することができる。
隣接するブロック同士を並列に処理するためには、図７に示す縦（１）、横（２）、右斜め（３）、左斜め（４）方向のいずれか１つには参照するブロックが存在しない必要がある。参照しない方向に位置するブロックが並列に処理される。例えば、図５に示すＤ（ｘ−１、ｙ−１）、Ａ（ｘ−１、ｙ）、Ｐ（ｘ−１、ｙ＋１）のブロックを参照するとすると、ブロックＡは横（２）、ブロックＰは右斜め（３）、ブロックＤは左斜め（４）方向に位置しているため、並列に処理できるのは縦（１）方向のブロックのみである。図３に示すブロックＤ（ｘ−１、ｙ−１）、Ｇ（ｘ、ｙ−２）、Ｅ（ｘ＋１、ｙ−２）を参照すると、ブロックＧは縦（１）、ブロックＤは左斜め（４）に位置しているため、横方向か右斜め方向のブロックが並列処理できる。そして、縦（１）に隣接するブロックを並列処理するなら横（２）方向、右斜め（３）に隣接するブロックを並列処理するなら左斜め（４）方向というように、並列に処理されるブロック群に対して垂直方向に処理が進む。そのため並列処理されるのが横方向に隣接するブロックであれば処理対象ブロックの上側と下側、縦方向に隣接するブロックであれば処理対象ブロックの右側と左側のそれぞれどちらかの処理のみ終了していることになる。
右斜め方向に隣接するブロックであれば処理対象ブロックの左側か上側か左上側と右側か下側か右下側のそれぞれどちらかの処理のみ終了していることになる。
左斜め方向に隣接するブロックであれば処理対象ブロックの左側か下側か左下側と右側か上側か右上側のそれぞれどちらかの処理のみ終了していることになる。図４に示すような順で処理が行われている場合には、処理対象よりも下のブロックの処理は開始していない。処理対象ブロックの処理は参照するブロックの処理が終了しないと行えないため、上側と下側、右側と左側の両側に参照するブロックがあると、参照するいずれかのブロックの処理は先に終了することがないため、対象ブロックの処理が行えない。例えば並列に処理されるブロックが縦（１）方向に隣接するなら右側と左側、並列に処理されるブロックが左斜め（４）方向に隣接するなら右上側と左下側の両側に参照するブロックがあると処理できない。以上のことより、本実施の形態で予測ベクトル算出に用いるブロックセットは、本来の予測ベクトルを算出するために参照するブロックＡ（ｘ−１、ｙ）、Ｂ（ｘ、ｙ−１）、Ｃ（ｘ＋１、ｙ−１）の全てを同時に含むことはない。ブロックＡは処理対象ブロックＸと横（２）に隣接し、ブロックＢは処理対象ブロックＸと縦（１）に隣接し、ブロックＣは処理対象ブロックＸと右斜め（３）に隣接している。そのため、並列に処理できるのは左斜め（４）方向に隣接するブロック同士のみだが、図８のようにブロックＡはブロックＸの左、ブロックＣはブロックＸの右上に位置するため、ブロックＡかブロックＣのどちらかの処理は先には終了せず参照できない。よって、全てのブロックの処理でブロックＡ、Ｂ、Ｃの全てを参照すると隣接するブロック同士を並列処理できない。後述する第３の実施の形態のように、参照ブロックセットにブロックＡ、Ｂ、Ｃの一部を含む場合や、後述する第４の実施の形態のように一部のブロックで参照ブロックセットにＡ、Ｂ、Ｃの全てを含み、隣接するブロックを並列処理することは可能である。
図２は、第１の実施の形態における並列動き推定装置１００の動作例を示すフローチャートである。擬似予測ベクトル算出部１１１は、処理の終了しているブロック、例えば図３のブロックＤ、Ｇ、Ｅの動きベクトルを動きベクトルバッファ１２０から取得する（ステップＳ１１）。擬似予測ベクトル算出部１１１は、取得した動きベクトルを用いて、例えばベクトルのメディアンから擬似予測ベクトルＰＭＶｘを算出する（ステップＳ１２）。動きベクトル探索部１１２は、擬似予測ベクトルＰＭＶｘを用いて動きベクトルを探索する（ステップＳ１３）。動き推定部１１０において、ステップＳ１１、Ｓ１２、Ｓ１３は、隣接するブロック同士で並列処理される。
次に本実施の形態と背景技術の違いによる効果について説明する。
図１に示す本実施の形態の並列動き推定装置１００の、図３４に示す非特許文献４の並列動き推定装置７００に対する違いは以下の通りである。即ち、並列動き推定装置１００では、並列動き推定装置７００における予測ベクトル算出部７１１の代わりに擬似予測ベクトル算出部１１１が動きベクトル探索部１１２に接続されている点にある。これにより、隣接するブロック同士を並列処理できるため、より多くのブロックを並列処理することができる。例えば、１９２０×１０８０画素のフルＨＤ画像を１６×１６画素のブロックに分けて処理する場合、並列に処理できるブロック数は、並列動き推定装置７００（非特許文献４）では６０であるのに対して、並列動き推定装置１００（本実施の形態）では１２０と２倍となる。よって、６０より多くのプロセッサにより並列処理可能な環境において、本実施の形態は、背景技術（例えば、非特許文献４）に比べて、全体の処理時間を短縮することができる。
図１に示す本実施の形態の並列動き推定装置１００の、図３５に示す非特許文献５の並列動き推定装置５００に対する違いは以下の通りである。即ち、並列動き推定装置１００では、動きベクトル探索部１１２に、並列動き推定装置５００には存在しない擬似予測ベクトル算出部１１１が接続されている点にある。これにより、動きベクトル探索部１１２は擬似的では有るが予測ベクトルを用いて動きベクトルを探索することができるため、精度の高い動きベクトルを算出することができる。
図１に示す本実施の形態の並列動き推定装置１００の、図３６に示す特許文献１の並列動き推定装置６００に対する違いは以下の通りである。即ち、並列動き推定装置１００では、並列動き推定装置６００における予測ベクトル算出部６１がなく且つ擬似予測ベクトル算出部１１１が動きベクトル探索部１１２に接続されている点にある。図３６の動き推定部６１０において、予測ベクトル算出部６１はブロックＡ、Ｂ、Ｃの全ての動き推定終了を待つ必要があるが、本実施の形態ではブロックＡ、Ｂ、Ｃの処理全てを待ってから予測ベクトルを算出する必要はない。従って、隣接するブロックを並列処理することができるため、より多くのブロックを並列処理することができる。
以上を纏めると、以上説明した第１の実施の形態によれば、並列に処理できるブロック数が多く、且つ高精度の動きベクトルを算出することが可能となる。
［第２の実施の形態］
図９は、第２の実施の形態における並列動き推定装置がベクトル予測に用いるブロック位置が存在する範囲の例である。
第２の実施の形態では、処理が終了したブロックのうち、処理対象ブロックＸの位置（ｘ、ｙ）に対して、次のような処理を行う。即ち、処理対象ブロックと同行、同列、上方向、左方向、右方向の各エリアに属するブロックをそれぞれ１つ以上全て含むブロックセット（ｓ、ｔ、ｕは任意の正の整数）を用いて予測ベクトルを擬似的に算出し、隣接するブロック同士を並列に処理する。ここで同行とはｘ座標ｘ、図９のＫ、同列とはｙ座標ｙ、図９のＭ、上方向とはｙ座標ｙ−ｕ、図９のＪ、左方向とはｘ座標ｘ−ｓ、図９のＬ、右方向とはｘ座標ｘ＋ｔ、図９のＮ、である。
例えば、図１０に示すＦ（ｘ−２、ｙ）（図９のＫ、Ｌエリア）、Ｇ（ｘ、ｙ−２）（図９のＪ、Ｍエリア）、Ｈ（ｘ＋１、ｙ−３）（図９のＪ、Ｎエリア）のブロックセットから擬似的な予測ベクトルを算出し、図１１に示すように斜めに隣接するブロックを並列処理する。
本実施の形態における動き推定部の構成は、第１の実施の形態の動き推定部１１０（図１）と同じ構成とすることができる。
図１２は、第２の実施の形態における並列動き推定装置の動作例を示すフローチャートである。第１の実施の形態におけるフローチャート例（図２）との違いはステップＳ１１に替えてステップＳ２１を設ける点にある。ステップＳ２１は、擬似予測ベクトル算出部１１１が、処理の終了しているブロックのうちブロック位置がｘ、ｘ−ｓ、ｘ＋ｔ、ｙ、ｙ−ｕ（ｓ、ｔ、ｕは任意の正の整数）であるブロックをそれぞれ１つ以上含むブロックセットの動きベクトルを取得する。
本実施の形態では、本来の予測ベクトルの算出法と同様に、符号化対象ブロックと同行、同列、上方向、左方向、右方向の座標を全て持つブロックセットを使用して擬似的な予測ベクトルを算出する。そのため、擬似的に予測されるベクトルは本来の予測ベクトルと近似している、つまりベクトルコストの精度がより高い。例えば、同行のブロックを参照しないと、図１３のように符号化対象ブロックＸの上の横方向にオブジェクトの境界があり境界を跨いだブロック間で動きが大きく異なっている場合に擬似予測ベクトルの精度が悪くなることがある。図１３の例では処理対象ブロック（ｘ２、ｙ２）はオブジェクトの境界の下に位置し、上の行のブロックのみを参照すると処理対象ブロックと異なるオブジェクトの動きの影響が大きく、実際の被写体の動きとは異なる擬似予測ベクトルを算出してしまう。本実施の形態のように（ｘ１、ｙ２）のような同行のブロックも参照することで処理対象ブロックと同じオブジェクトの動きの影響を大きくでき、実際の被写体の動きに近いつまり精度の高い擬似予測ベクトルを算出できる。
［第３の実施の形態］
本発明の第３の実施の形態について説明する。本実施の形態では、第２の実施の形態で参照することができるブロックの中から、符号化対象ブロックＸの位置（ｘ、ｙ）に対して次のように動作する。即ち、図１６に示すブロックＡ（ｘ−１、ｙ）、Ｂ（ｘ、ｙ−１）、Ｅ（ｘ＋１、ｙ−２）からなるブロックセットの動きベクトルを用いて動きベクトルを算出する。さらに図１５のように左上に近いブロックから、斜めに隣接するブロック同士で並列に処理を行う。すなわち、まずステップ１で最も左上である処理順が１のブロックを処理する。次にステップ２として処理されていないブロックの中で最も左上に近く斜めに隣接する２つの処理順２のブロックを処理する。このとき処理順１のブロックの処理は終了している。そして、処理順２のブロックの処理が終わると、ステップ３として処理されていないブロックの中で最も左上に近く斜めに隣接する３つの処理順３のブロックを処理するというような順で処理が行われる。これにより、参照ブロックＡ（ｘ−１、ｙ）、Ｂ（ｘ、ｙ−１）、Ｅ（ｘ＋１、ｙ−２）は常に処理対象ブロックＸよりも先に処理が終了していることになる。
本実施の形態における動き推定部の構成は、第１の実施の形態の動き推定部１１０（図１）と同じ構成とすることができる。
図１４は、第３の実施の形態における並列動き推定装置の動作例を示すフローチャートである。図１４の、第２の実施の形態におけるフローチャート例（図１２）との違いは、ステップＳ２１に替えて、ブロックＡ（ｘ−１、ｙ）、Ｂ（ｘ、ｙ−１）、Ｅ（ｘ＋１、ｙ−２）の動きベクトルを取得するステップＳ３１を設ける点にある。
本実施の形態では、ブロックＡ（ｘ−１、ｙ）、Ｂ（ｘ、ｙ−１）、Ｅ（ｘ＋１、ｙ−２）の動きベクトルを用いて擬似的な予測ベクトルを算出する。動画像は一般的に動きベクトルに空間的な相関性があり、より距離が近いブロックの動きベクトルを用いることで精度の高い擬似予測ベクトルを算出することができる。よって処理対象ブロックに近い位置のブロックを参照することで精度の高い擬似予測ベクトルを使用できるため高精度の動きベクトルを算出することができる。
［第４の実施の形態］
本発明の第４の実施の形態について説明する。本実施の形態では、参照ブロックセットのパターンを複数持ち、ブロックごとに異なる相対位置のブロックセットパターンの動きベクトルを用いて擬似予測ベクトルを算出する。例として、図１９のように偶数（２ｎ）列目のブロック（２ｎ、ｙ）は（２ｎ−１、ｙ）、（２ｎ、ｙ−１）、（２ｎ＋１、ｙ−１）の３ブロックを参照して擬似予測ベクトルを算出する。奇数（２ｎ＋１）列目のブロック（２ｎ＋１、ｙ）は（２ｎ−１、ｙ）、（２ｎ＋１、ｙ−１）、（２ｎ＋２、ｙ＋２）の３ブロックを参照して擬似予測ベクトルを算出する。偶数列ブロックの擬似予測ベクトルは本来の予測ベクトルと等しい。本例で並列に処理できるブロック同士は、図２０に示すように偶数列と奇数列間は横に隣接しており奇数列と偶数列は斜めに隣接している。
本実施の形態における動き推定部の構成は、第１の実施の形態の動き推定部１１０（図１）と同じ構成とすることができる。
図１８は、第４の実施の形態における並列動き推定装置の動作例を示すフローチャートである。本実施の形態では、擬似予測ベクトル算出部１１１は、処理対象ブロックＸが偶数列か奇数列かを判断する（ステップＳ４２）。偶数列であれば、擬似予測ベクトル算出部１１１は、ブロックＡ（ｘ−１、ｙ）、Ｂ（ｘ、ｙ−１）、Ｃ（ｘ＋１、ｙ−１）の動きベクトルを取得する（ステップＳ１００）。一方、奇数列であれば、擬似予測ベクトル算出部１１１は、ブロックＦ（ｘ−２、ｙ）、Ｂ（ｘ、ｙ−１）、Ｅ（ｘ＋１、ｙ−２）の動きベクトルを取得する（ステップＳ４１）。擬似予測ベクトル算出部１１１は、取得した動きベクトルを用いて処理対象ブロックＸの擬似予測ベクトルＰＭＶｘを算出する（ステップＳ１２）。動きベクトル探索部１１２は、擬似予測ベクトルＰＭＶｘを使用して動きベクトルを探索する（ステップＳ１３）。
本実施の形態では、隣接するブロックを並列処理しながら、一部のブロックでは本来の予測ベクトルと等しい擬似予測ベクトルを使用することができる。そのため、算出される動きベクトルの精度が向上できる。
［第５の実施の形態］
本発明の第５の実施の形態について説明する。本実施の形態では、擬似的な予測ベクトルを算出するのに参照する動きベクトルを適応的に選択する。より詳細に説明する。動画像圧縮符号化ではブロックは画面内予測を用いて圧縮符号化されることもあり、その場合にはそのブロックの動きベクトルはない。そこで、本実施の形態では、擬似予測ベクトルを算出するのに参照するブロックが画面内予測されていた場合は他のブロックの動きベクトルを用いる。
図２１は、第５の実施の形態における並列動き推定装置５５０の構成例を示すブロック図である。並列動き推定装置５５０を構成する動き推定部５１０は、参照ブロック選択部５１１を更に備え、参照ブロック選択部５１１は、ブロックの符号化情報を入力とする。
図２２は、並列動き推定装置５５０の動作例を示すフローチャートである。参照ブロック選択部５１１は、予測に用いるブロック、例えばブロックＡ（ｘ−１、ｙ）、Ｂ（ｘ、ｙ−１）、Ｅ（ｘ＋１、ｙ−２）の符号化情報を取得する（ステップＳ５１）。参照ブロック選択部５１１は、ブロックＡ、Ｂ、Ｅのいずれかが画面内予測により圧縮符号化されているか判断する（ステップＳ５２）。画面内予測であった場合、参照ブロック選択部５１１は、画面内予測されていたブロックの代わりにその周囲のブロック例えば上のブロックを選択する（ステップＳ５３）。これらの処理を全てのブロックが画面内予測ブロックでなくなるまで続ける。擬似予測ベクトル算出部１１１は、参照ブロック選択部５１１が選択したブロックの動きベクトルを取得し（ステップＳ５４）、予測ベクトルを算出する（ステップＳ１２）。動きベクトル探索部１１２は、擬似予測ベクトルＰＭＶｘを使用して動きベクトルを探索する（ステップＳ１３）。
本実施の形態では、擬似予測ベクトル算出時に参照するブロックが画面内予測であった場合に、周囲のブロックを用いて擬似予測ベクトルを算出する。従って、擬似ベクトル予測に用いる動きベクトルの数が減少せず、より精度の高い擬似予測ベクトルを算出することができる。
［第６の実施の形態］
本発明の第６の実施の形態について説明する。本実施の形態では、第５の実施の形態と同様に擬似的な予測ベクトルを算出するのに用いる動きベクトルを適応的に選択する。さらに、本実施の形態では、動きベクトル探索前に擬似的な予測ベクトルの精度を検討し、充分な精度が得られなそうな場合には参照ブロックを追加する。例えば、参照ブロックが画面内予測であり動きベクトルがない場合や参照ブロックの各動きベクトルの向きや大きさが大きく異なっている場合などは精度の高い擬似予測ベクトルが得られにくい。
図２３は、第６の実施の形態における並列動き推定装置６５０の構成例を示すブロック図である。並列動き推定装置６５０を構成する動き推定部６１０は、擬似予測ベクトル精度判定部６１１を更に備える。擬似予測ベクトル精度判定部６１１は、参照ベクトル選択部６１２と接続される。
図２４は、第６の実施の形態における並列動き推定装置６５０の動作例を示すフローチャートである。まず、擬似予測ベクトル精度判定部６１１は、例えばブロックＡ（ｘ−１、ｙ）、Ｂ（ｘ、ｙ−１）、Ｅ（ｘ＋１、ｙ−２）から得られる擬似予測ベクトルの精度が十分かどうかを判断する（ステップＳ６２）。例えば、３つの動きベクトルの向きが全て大きく異なるなど、得られる擬似予測ベクトルの精度が十分でなさそうであれば、参照ブロック選択部は周辺のブロックの中から例えば左上のブロックなどを参照ブロックに追加する（ステップＳ６３）。これらの処理を、擬似予測ベクトル精度判定部６１１が各ベクトルの方向が集中するなど十分な精度を得られると判断するまで繰り返す。擬似予測ベクトル算出部１１１は、参照ブロック選択部６１２が選択したブロックの動きベクトルを取得し擬似予測ベクトルを算出する。
本実施の形態では、擬似的な予測ベクトルの精度が充分であることを確認してから擬似的な予測ベクトルを算出するため、常に精度の高い擬似予測ベクトルを算出することができる。
［第７の実施の形態］
本発明の第７の実施の形態について説明する。本実施の形態は、第３の実施の形態の動き推定部を含む並列動画像符号化装置である。Ｈ．２６４などによる動画像符号化では、動き推定の他に画面内予測やデブロッキングフィルタなどの画像処理でも、左や上など他のブロックの処理結果を用いる。そのため、画面内予測やデブロッキングフィルタも左と上のブロックの処理が先に終了してから処理を行う必要がある。第３の実施の形態の動き推定部は左と上のブロックの処理が終了してから処理対象ブロックの処理を行うため、画面内予測やデブロッキングフィルタも同様の処理順で並列処理することができる。動き推定処理に加え、画面内予測やデブロッキングフィルタなどの左と上のブロックの処理結果を参照する画像処理、および直交変換などを含めたブロック単位で並列処理できる処理群をブロック符号化処理とする。
図２５は、第７の実施の形態における並列動画像符号化装置１０００の構成例を示すブロック図である。並列動画像符号化装置１０００は、複数のブロック符号化部１１００と、可変長符号化部１３と、フレームバッファ１７と、動きベクトルバッファ１２０とを少なくとも備える。各ブロック符号化部１１００は、直交変換部１１と、量子化部１２と、逆量子化部１４と、逆直交変換部１５と、デブロッキングフィルタ部１６と、画面内予測部１８と、動き推定部１１０と、動き補償部２０と、を備える。動き推定部１１０は、擬似予測ベクトル算出部１１１と、動きベクトル探索部１１２と、を備える。動き推定部１１０は、第５の実施の形態の動き推定部５１０や第６の実施の形態の動き推定部６１０とすることができる。画面内予測部１８とデブロッキングフィルタ部１６は、左と上のブロックを参照する処理である。ブロック符号化部１１００は、図１７に示すように左上のブロックから斜めに隣接するブロック同士を並列に処理する。直交変換部１１と量子化部１２と逆量子化部１４と逆直交変換部１５と動き補償部２０とは他のブロックの処理結果を必要としないが、デブロッキングフィルタ部１６と画面内予測部１８とは左と上のブロックの処理結果が必要となる。
直交変換部１１は、入力画像と予測画像の差分値に離散コサイン変換などの直交変換を行う。量子化部１２は、直交変換が施された変換係数の量子化を行う。逆量子化部１４は、量子化部１２で量子化された変換係数を逆量子化する。逆直交変換部１５は、逆量子化された変換係数を逆直交変換する。デブロッキングフィルタ部１６は、復号されたフレームのブロック間の歪を除去する。このとき、左と上のブロックの画像を使用するため、逆直交変換された画像をフレームバッファ１７に格納しておき、左と上のブロックの画像はフレームバッファから取り出してデブロッキングフィルタ部１６の処理を行う。そして、ブロック間の歪が除去された画像もフレームバッファ１７に格納する。動きベクトル探索部１１２は、擬似予測ベクトル算出部１１１が算出した擬似的な予測ベクトルと、入力画像（現フレーム）と、フレームバッファ１７に格納されたブロック歪が除去された参照フレーム画像を入力して動きベクトルを探索する。動きベクトル探索部１１２の算出した動きベクトルは動きベクトルバッファ１２０に送られ、他のブロックを処理する擬似予測ベクトル算出部１１１が動きベクトルバッファ１２０に格納された動きベクトルを用いて擬似予測ベクトルを算出する。動き補償部２０は、探索された動きベクトルとフレームバッファに格納されたブロック歪が除去済みの復号画像から予測画像を生成する。画面内予測部１８は、逆直交変換された復号画像をフレームバッファ１７に格納された同一フレームの左と上のブロックの復号画像を用いて予測処理を行う。可変長符号化部１３は、量子化部１２によって量子化された変換係数を符号化し出力する。
本実施の形態における動き推定部のフローチャート例は、第３の実施の形態の図１４と同じフローチャート例で示すことができる。
動き推定を、例えば図４に示すように横に隣接するブロック同士で並列に処理すると、左のブロックの処理が先に終了している必要のある画面内予測部とデブロッキングフィルタ部は、同じ処理順では並列処理できない。そのため、図２６のように例えば動き推定の処理を１フレーム分行ってから、画面内予測とデブロッキングフィルタの処理を別の並列処理順で行う必要がある。本実施の形態では、動き推定部を図１７のように斜めに隣接するブロック同士で並列処理することで、図２７のように、同じブロックの動き推定と画面内予測とデブロッキングフィルタの処理を連続して同じ並列処理順で行うことができる。これにより並列処理を開始するための初期オーバヘッドや同期処理、処理間のデータ転送などを低減することが可能になる。
以上、これまで述べてきた第１から第７の各実施の形態は、本発明の好適な実施形態であり、前記実施の形態のみに本発明の範囲を限定するものではなく、本発明の要旨を逸脱しない範囲において種々の変更を施した形態での実施が可能である。
前記の擬似予測ベクトルは３ブロックのベクトルより算出しているが、２ブロック以下、４ブロック以上の動きベクトルを用いてベクトル予測を行っても良い。複数のブロックをまとめて一つの並列処理単位とし、隣接する処理単位同士を並列処理するのでもかまわない。ＭＢＡＦＦ（Ｍａｃｒｏｂｌｏｃｋ−ａｄａｐｔｉｖｅ  ｆｒａｍｅ−ｆｉｅｌｄ：マクロブロック適応型フレーム／フィールド）符号化の場合も２ブロックまとめて一つの並列処理単位とすることで本発明を適用可能である。
【実施例】
【００１０】
次に、具体的な実施例を用いて本発明を実施するための形態の動作を説明する。本実施例では、Ｈ．２６４エンコーディングの動き推定をＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を用いて並列処理し、１６×１６画素のマクロブロックの動き推定を並列処理単位とする。本実施例では斜めに隣接するマクロブロックの処理を並列に行い、図１０に示すブロックＡ、Ｂ、Ｅの動きベクトルを用いて処理対象ブロックの擬似的な予測ベクトルを算出する。
本実施例の構成は、図１に示す構成と同等であるとする。実施例における動き推定装置１１０は、ＧＰＵ上で並列に動作する。ＧＰＵは３次元グラフィックス処理プロセッサであり、数コアから数十コアのマルチコアＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）に比べて、数十から数百と多くのコアを搭載していることを特徴とする。
次に、１フレームの動き推定処理を行う場合の、本実施例の処理のフローチャートを図２８に示す。ここで、各マクロブロックには図１７の番号１−１１のような処理順番号が付与されているとする。まず、動き推定部１１０は、変数ｉを１に初期化し（ステップＳ５１）、処理順番号がｉのブロックの中からブロックＸを選択する（ステップＳ５２）。擬似予測ベクトル算出部１１１は、図１６のブロックＡ、Ｂ、Ｅから予測ベクトルを算出する（ステップＳ５３）。動きベクトル探索部１１２は、算出された擬似的な予測ベクトルを用いて動きベクトルを探索する（ステップＳ５４）。ここで、ステップＳ５２からステップＳ５４までは複数のコア上で並列に動作する。そして、すべての処理順番号ｉのブロックの処理が終わるのを待つ（ステップＳ５５）。動き推定部１１０は、変数ｉをインクリメントし（ステップＳ５６）、すべてのブロックの処理が終了していなければ（ステップＳ５７においてＮｏ判定）、ステップＳ５２からＳ５７を繰り返す。
本実施例の効果の例として、１９２０×１０８０画素のフルＨＤサイズ画像を並列処理する例を示す。図２９には、非特許文献４と本実施例における並列に処理できるブロック数と、処理回数（図２８における処理順番号ｉ）を示す。処理回数は非特許文献４に記載の並列動画像符号化装置の２５４回に対して本実施例では１８７回と２６％も処理回数が削減している。つまり、もしマクロブロックあたりの処理時間が全て同じであり、使用する並列計算機すなわち本例ではＧＰＵが１２０以上の並列処理能力を持っていれば、本実施例では動き推定の処理時間を非特許文献４の手法に比べて２６％削減することができる。
以上、本発明の好適な実施例を説明した。本発明は、前記実施例のみに範囲を限定するものではなく、本発明の要旨を逸脱しない範囲において種々の変更を施した実施が可能である。前記実施例は、動き推定処理をマクロブロック毎に並列処理を行っているが、並列処理単位は１マクロブロックの処理に限定されることはなく、マクロブロック以外の領域範囲で分割された画像の処理にも本発明を適用することができる。さらに、本実施例では並列演算装置としてＧＰＵを用いているが、これは、複数のＣＰＵが集積されたマルチコアプロセッサや、複数のコンピュータが接続されたコンピュータクラスタなど、他の並列計算機での実施も可能である。
なお、以上説明した第１〜７の実施形態および実施例は、所定のハードウェア、例えば、回路として具現化することもできる。
また、以上説明した第１〜７の実施形態および実施例は、制御プログラムに基づいて図示しないコンピュータ回路（例えば、ＣＰＵ）によって制御され、動作するようにすることができる。その場合、これらの制御プログラムは、例えば、動き推定装置あるいは動画像符号化装置内部の記憶媒体、あるいは、外部の記憶媒体に記憶され、上記コンピュータ回路によって読み出され実行される。内部の記憶媒体としては、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やハードディスク等を挙げることができる。また、外部の記憶媒体としては、例えば、リムーバブルメディアやリムーバブルディスク等を挙げることができる。
また、以上の実施形態は各々他の実施形態と組み合わせることができる。
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
この出願は、２０１０年１２月２１日に出願された日本出願特願２０１０−２８４６１３を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用可能性】
【００１１】
本発明は、動き推定装置、動き推定方法、動き推定プログラム、および動画像符号化装置に関するものであり、産業上の利用可能性を有する。
【符号の説明】
【００１２】
１１  直交変換部
１２  量子化部
１４  逆量子化部
１５  逆直交変換部
１６  デブロッキングフィルタ部
１８  画面内予測部
２０  動き補償部
１００  並列動き推定装置
１１０  動き推定部
１１１  擬似予測ベクトル算出部
１１２  動きベクトル探索部
１２０  動きベクトルバッファ
５５０  並列動き推定装置
５１０  動き推定部
５１１  参照ブロック選択部
６５０  並列動き推定装置
６１０  動き推定部
６１１  擬似予測ベクトル精度判定部
６１２  参照ベクトル選択部
１０００  並列動画像符号化装置
１１００  ブロック符号化部
【図１】
2012086829.tif 000003
【図２】
2012086829.tif 000004
【図３】
2012086829.tif 000005
【図４】
2012086829.tif 000006
【図５】
2012086829.tif 000007
【図６】
2012086829.tif 000008
【図７】
2012086829.tif 000009
【図８】
2012086829.tif 000010
【図９】
2012086829.tif 000011
【図１０】
2012086829.tif 000012
【図１１】
2012086829.tif 000013
【図１２】
2012086829.tif 000014
【図１３】
2012086829.tif 000015
【図１４】
2012086829.tif 000016
【図１５】
2012086829.tif 000017
【図１６】
2012086829.tif 000018
【図１７】
2012086829.tif 000019
【図１８】
2012086829.tif 000020
【図１９】
2012086829.tif 000021
【図２０】
2012086829.tif 000022
【図２１】
2012086829.tif 000023
【図２２】
2012086829.tif 000024
【図２３】
2012086829.tif 000025
【図２４】
2012086829.tif 000026
【図２５】
2012086829.tif 000027
【図２６】
2012086829.tif 000028
【図２７】
2012086829.tif 000029
【図２８】
2012086829.tif 000030
【図２９】
2012086829.tif 000031
【図３０】
2012086829.tif 000032
【図３１】
2012086829.tif 000033
【図３２】
2012086829.tif 000034
【図３３】
2012086829.tif 000035
【図３４】
2012086829.tif 000036
【図３５】
2012086829.tif 000037
【図３６】
2012086829.tif 000038
【図３７】
2012086829.tif 000039
【手続補正書】
【提出日】平成25年6月13日(2013.6.13)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
周囲のブロックの動きベクトルを参照してベクトル予測を行う動き推定装置であって、
複数の動き推定手段が隣接ブロックを並列に処理し、
前記各動き推定手段は、
処理が終了しているブロック群の動きベクトルを用いて擬似的な予測ベクトルを算出する擬似予測ベクトル算出手段と、
算出された擬似的な予測ベクトルを使用して処理対象ブロックの動きベクトルを探索する動きベクトル探索手段と
を備え、
前記擬似予測ベクトル算出手段は、
処理の終了したブロックのうち、処理対象ブロック位置（ｘ、ｙ）に対して、ブロック位置にｘ、ｘ−ｓ、ｘ＋ｔ、ｙ、ｙ−ｕ（ｓ、ｔ、ｕは任意の正の整数）の座標を持つブロックをそれぞれ１つ以上含むブロック群の動きベクトルを参照して擬似的な予測ベクトルを算出する
ことを特徴とする動き推定装置。
【請求項２】
前記隣接ブロックは斜め方向に隣接するブロックであり、
前記擬似予測ベクトル算出手段は、当該処理ブロック位置が（ｘ、ｙ）のブロックに対して、（ｘ−１、ｙ）、（ｘ、ｙ−１）、（ｘ＋１、ｙ−２）の位置のブロックの動きベクトルを参照して擬似的な予測ベクトルを算出する
ことを特徴とする請求項１に記載の動き推定装置。
【請求項３】
前記擬似予測ベクトル算出手段は、
参照するブロック位置のパターンを複数持ち、
処理ブロック位置により前記参照ブロックパターンを切り替える
ことを特徴とする請求項１に記載の動き推定装置。
【請求項４】
前記動き推定手段は、
参照ブロック選択手段を備え、
前記参照ブロック選択手段は、処理が終了したブロックの中から何れのブロックを使用するかをブロックの情報に基づいて判断する
ことを特徴とする請求項１に記載の動き推定装置。
【請求項５】
周囲のブロックの動きベクトルを参照してベクトル予測を行う動き推定方法であって、
複数の動き推定手段が隣接ブロックを並列に処理し、
前記各動き推定手段において、処理が終了しているブロック群の動きベクトルを用いて擬似的な予測ベクトルを算出し、算出された擬似的な予測ベクトルを使用して処理対象ブロックの動きベクトルを探索し、
処理の終了したブロックのうち、処理対象ブロック位置（ｘ、ｙ）に対して、ブロック位置にｘ、ｘ−ｓ、ｘ＋ｔ、ｙ、ｙ−ｕ（ｓ、ｔ、ｕは任意の正の整数）の座標を持つブロックをそれぞれ１つ以上含むブロック群の動きベクトルを参照して擬似的な予測ベクトルを算出する
ことを特徴とする動き推定方法。
【請求項６】
周囲のブロックの動きベクトルを参照してベクトル予測を行う動き推定装置のコンピュータに、
複数の動き推定手段が隣接ブロックを並列に処理する機能と、
前記各動き推定手段において、処理が終了しているブロック群の動きベクトルを用いて擬似的な予測ベクトルを算出し、算出された擬似的な予測ベクトルを使用して処理対象ブロックの動きベクトルを探索する機能と
処理の終了したブロックのうち、処理対象ブロック位置（ｘ、ｙ）に対して、ブロック位置にｘ、ｘ−ｓ、ｘ＋ｔ、ｙ、ｙ−ｕ（ｓ、ｔ、ｕは任意の正の整数）の座標を持つブロックをそれぞれ１つ以上含むブロック群の動きベクトルを参照して擬似的な予測ベクトルを算出する機能と
を実行させることを特徴とする動き推定プログラム。
【請求項７】
複数のブロック符号化手段が斜めに隣接するブロックを並列に処理し、
各ブロック符号化手段は、
請求項１、２、４のいずれか１項に記載の動き推定手段と、
左と上のブロックの処理結果を参照する画像処理手段と
を備えることを特徴とする動画像符号化装置。
【国際調査報告】
2012086829.tif 000040
2012086829.tif 000041
2012086829.tif 000042
2012086829.tif 000043