(57)【要約】      （修正有）【課題】シーンの動き補償ビデオ符号化に使用される２つの画像ブロック間の差分を表すメトリック決定のための方法及びシステムを提供する。【解決手段】メトリックは参照フレームに含まれる第１画像ブロックと現在のフレームに含まれる第２画像ブロックとの差分を表し、第１画像ブロック及び第２画像ブロックは、同じ行数及び列数のピクセルを含み、当該方法は、（ａ１）第１画像ブロック及び第２画像ブロックにおけるピクセルサブセットを選択するために、第１及び第２画像ブロックと同じ行数及び列数を有するパターン行列を生成する段階と、（ｂ１）前記（ａ１）段階で生成されたピクセルサブセットにおけるピクセルそれぞれの特徴を取得する段階と、（ｃ１）ピクセルサブセットの特徴を処理して、メトリックを決定する段階とを備える。【選択図】図４ｃ
2014239497.tif 000002
【特許請求の範囲】
【請求項１】
複数のピクセルを有する複数のブロックを含むシーンの動き補償ビデオ符号化における動き推定に使用され、参照フレームに含まれる第１画像ブロックと現在フレームに含まれる第２画像ブロックとの間の差分を表すメトリックを決定する方法であって、
（ａ１）前記第１画像ブロックおよび前記第２画像ブロックと同一の行数および列数を有し、前記第１画像ブロック及び前記第２画像ブロックにおけるピクセルサブセットを選択するためのパターン行列を提供する段階であって、前記ピクセルサブセットは連続した複数のピクセルを有する複数のグループに分割され、前記複数のグループのそれぞれは、１つの行に２つ以上のピクセルを含み、前記複数のグループのそれぞれにおけるピクセルの数は、単一命令複数データ（ＳＩＭＤ）プロセッサの単一命令で動作できるように選択される段階と、
（ｂ１）前記第１画像ブロックおよび前記第２画像ブロックに対し、前記ピクセルサブセットにおける複数のピクセルについて、前記メトリックの決定に適した特徴を取得する段階と、
（ｃ１）取得された前記特徴を処理して、前記第１画像ブロックと前記第２画像ブロックとの間の前記差分を表す前記メトリックを決定する段階と
を備える方法。
【請求項２】
前記（ａ１）段階は、
（ａ２）前記シーンにおける物体の動きの方向を示す前記シーンのグローバル動き特徴を生成する段階と、
（ｂ２）前記動き補償ビデオ符号化に使用される単一命令複数データプロセッサアーキテクチャ及び前記グローバル動き特徴に対応している前記パターン行列を生成する段階とをさらに有する請求項１に記載の方法。
【請求項３】
前記（ａ１）段階は、
予め定められた固定値であるピクセルバジェットに基づいて、前記パターン行列を生成する段階をさらに含む請求項１に記載の方法。
【請求項４】
前記（ａ１）段階は、
（ａ４）動き補償を行う前に生成される複数のパターン行列のリポジトリから前記パターン行列を選択する段階をさらに含み、
前記リポジトリのパターン行列それぞれは、前記動き補償ビデオ符号化に使用される単一命令複数データプロセッサアーキテクチャ、前記シーンのグローバル動き特徴及び予め定められた固定値であるピクセルバジェットに対応している請求項１に記載の方法。
【請求項５】
前記（ａ２）段階は、
（ａ３）前記シーンについて、振幅及び方向を持つ平均動きベクトルを決定する段階と、
（ｂ３）前記平均動きベクトルの前記振幅を、動き無しとする予め定められた閾値と比較する段階と、
（ｃ３）前記平均動きベクトルの前記振幅が前記閾値よりも小さい場合に、前記グローバル動き特徴を、物体の動きが無いことを示す静止状態であると決定する段階と、
（ｄ３）前記平均動きベクトルの前記振幅が前記閾値以上である場合は、前記（ａ３）段階において決定された前記平均動きベクトルの前記方向に基づいて、前記グローバル動き特徴が、水平方向運動、垂直方向運動又は斜め方向運動のうちいずれか１つであると判断する段階とをさらに含む請求項２に記載の方法。
【請求項６】
前記（ａ４）段階は、前記リポジトリの前記複数のパターン行列のそれぞれについて、
（ａ６）前記パターン行列は、前記第１画像ブロック及び前記第２画像ブロックにおいて同じ位置に位置するピクセルにそれぞれ対応する複数のセルを含み、前記パターン行列の前記セルにブール値を記憶する段階と、
（ｂ６）前記第１画像ブロック及び前記第２画像ブロックのピクセルが前記メトリックの計算に含まれることに対応する"真"のブール値又は"偽"のブール値の一方を、前記パターン行列の前記セルに記憶し、前記第１画像ブロック及び前記第２画像ブロックのピクセルが前記メトリックの計算から除外されることに対応する前記"真"のブール値又は"偽"のブール値の他方を、前記パターン行列の前記セルに記憶する段階とをさらに含む請求項４に記載の方法。
【請求項７】
前記（ｂ１）段階は、
（ａ７）輝度値である前記特徴を取得する段階と、
（ｂ７）前記第１画像ブロックの複数のピクセルの輝度値を、第１行列の複数のセルに記憶する段階と、
（ｃ７）前記第２画像ブロックの複数のピクセルの輝度値を、第２行列の複数のセルに記憶する段階とをさらに有する請求項１から６のいずれか一項に記載の方法。
【請求項８】
前記（ｃ１）段階は、
（ａ８）前記パターン行列を使用して前記第１行列及び前記第２行列の複数のセルを選択する段階と、
（ｂ８）前記（ａ８）段階で選択された前記複数のセルに記憶された前記輝度値に、差分絶対値和関数又は平均自乗誤差関数のいずれか一方を適用する段階とをさらに有する請求項７に記載の方法。
【請求項９】
前記第１画像ブロック及び前記第２画像ブロックにおいて、前記連続した複数のピクセルを有する前記複数のグループの位置は、隣接する任意の２つのグループ間の垂直方向の距離が実質的に等しく、隣接する任意の２つのグループ間の水平方向の距離も実質的に等しくなることにより、ブロックをカバーする範囲が最大となるように選択される請求項１から８のいずれか一項に記載の方法。
【請求項１０】
複数のピクセルを有する複数のブロックを含むシーンの動き補償ビデオ符号化における動き推定に使用され、参照フレームに含まれる第１画像ブロックと現在フレームに含まれる第２画像ブロックとの間の差分を表すメトリックを決定するためのシステムであって、
（ａ１０）前記第１画像ブロックおよび前記第２画像ブロックと同一の行数および列数を有し、前記第１画像ブロック及び前記第２画像ブロックにおけるピクセルサブセットを選択するためのパターン行列を提供する手段であって、前記ピクセルサブセットは連続した複数のピクセルを有する複数のグループに分割され、前記複数のグループのそれぞれは、１つの行に２つ以上のピクセルを含み、前記複数のグループのそれぞれにおけるピクセルの数は、単一命令複数データ（ＳＩＭＤ）プロセッサの単一命令で動作できるように選択される手段と、
（ｂ１０）前記第１画像ブロックおよび前記第２画像ブロックに対し、前記ピクセルサブセットにおける複数のピクセルについて、前記メトリックの決定に適した特徴を読み出す手段と、
（ｃ１０）読み出された前記特徴を処理し、前記第１画像ブロックと前記第２画像ブロックとの間の前記差分を表す前記メトリックを決定する手段とを備えるシステム。
【請求項１１】
前記提供する手段は、
（ａ１１）前記シーンにおける物体の動きの方向を示す前記シーンのグローバル動き特徴を計算するグローバル動き特徴決定ユニットと、
（ｂ１１）前記シーンの前記グローバル動き特徴、前記動き補償ビデオ符号化に使用される単一命令複数データプロセッサアーキテクチャ及び予め定められた固定値であるピクセルバジェットに基づいて、前記パターン行列を生成する行列決定ユニットとをさらに有する請求項１０に記載のシステム。
【請求項１２】
前記提供する手段は、
（ａ１２）一連の所定の複数のパターン行列を記憶するパターン行列リポジトリと、
（ｂ１２）前記パターン行列リポジトリから前記パターン行列を選択するパターン行列選択ユニットとを含み、
前記パターン行列リポジトリのパターン行列はそれぞれ、前記動き補償ビデオ符号化に使用される単一命令複数データプロセッサアーキテクチャ、前記シーンのグローバル動き特徴及び予め定められた固有値であるピクセルバジェットに対応している請求項１０に記載のシステム。
【請求項１３】
前記処理する手段は、差分絶対値和関数又は平均自乗誤差関数を前記ピクセルサブセットの前記特徴の値に適用する請求項１０から１２のいずれか一項に記載のシステム。
【請求項１４】
前記第１画像ブロック及び前記第２画像ブロックにおいて、前記連続した複数のピクセルを有する前記複数のグループの位置は、隣接する任意の２つのグループ間の垂直方向の距離が実質的に等しく、隣接する任意の２つのグループ間の水平方向の距離も実質的に等しくなることにより、ブロックをカバーする範囲が最大となるように選択される請求項１０から１３のいずれか一項に記載のシステム。
【請求項１５】
コンピュータに、請求項１から９のいずれか一項に記載の方法の段階を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動き補償ビデオ符号化に関し、特に、動き補償ビデオ符号化において画像ブロックを比較するのに使用されるメトリックを決定するための改善された方法及びシステムに関する。
【背景技術】
【０００２】
マルチメディアは、テキスト、音声、動画等の様々な種類のコンテンツを含み、ネットワークオペレーターにビジネス好機を提供している。より高い帯域幅での通信が可能となり、またパケット交換方式のインターネット・プロトコル（ＩＰ）技術の利用により、テキスト、音声、静止及び動画グラフィックス、写真、ビデオクリップ及び音楽といった豊富なコンテンツを送信することが可能となった。ネットワークオペレーターが、この市場において利益を得るためには、品質及び信頼性について顧客の期待に応えなければならない。サーバーレベルでのメディアのトランスコーディングは、今日の携帯端末、携帯電話、コンピュータ、その他の電子機器等から構成される異機種ネットワーク環境下でマルチメディアアプリケーションをレンダリングするのに、重要な技術である。個々のデバイスのリソースは制限されており、多くの場合、メディアを自身で適応化させることができないので、サービスプロバイダ側でメディアの適応化及びトランスコーディングを行う必要がある。これは、サービスプロバイダにとって非常に重要な問題である。なぜなら、今後数年で非常に急激なトラフィックの増加が見込まれており、プロバイダが新しいハードウェアを導入するだけではその急激な増加に追いつかない可能性があるからである。サーバーの数を増やすという総当り的な解決方法は、効率的でない。また、サーバーの数を増やすとそれに比例して消費電力が増加し、放熱や必要とする空間も増加する。システム性能を改善し、トラフィックの大幅な増加に対処する別の方法として、ビデオ符号化のスマート化を図る技術を考案することが挙げられ、マルチメディア適応化におけるリソース集約化に重要な段階となる。
【０００３】
動き補償ビデオ符号化では、複数ブロックからなるシーンの処理を行い、各ブロックは、複数のピクセルからなる。基本的に、現在のビデオコーデックは、動き補償符号化を採用しており、フレームが幾つかの先行フレームに対して符号化され、時間的依存性を利用してより良い補償を行うことを目指している。動き補償ビデオ符号化において最も労力を要する段階は、動き推定段階である。この段階は、シーンに存在する物体のあるフレームから次のフレームへの移動を推定する動き推定アルゴリズムを通じて実行される。この動き推定を使用して合成フレームを生成するが、シーンは、推定された物体の動きに合わせて変形されたものとなる。合成フレームは、差動符号化される現在のフレームに対する予測子として使用される。このような動き推定アルゴリズムは、非常に多くの計算を行う必要があり、したがってエンコーダの実行時間の大部分を占め、解像度が高くなるに従いその割合が大きくなることから、最適化を図るべき対象となっている。
【０００４】
今日まで、ブロックベースの動き推定の問題に対処するために様々な努力がなされており、一般的な問題として、予測フレームが参照フレームからコピーされた複数の小さな四角形の領域から構築されるのをより単純化することを目標としてきた。次に、ブロックベースの動き推定について述べる。本明細における説明では、基本ブロックを１６×１６ピクセルとしている。しかしながら、本発明と同じ理念を、異なる大きさのブロックに適用可能である。システムの目的は、符号化される現在のフレームに対する予測フレームを生成することである。予測フレームは、所与の参照フレームから現在のフレームを差動符号化することによって生成される。システムは、現在のフレームにおける各１６×１６ブロックに対して、参照フレームにおける最もマッチングするブロックを探す。探索では、参照フレーム内の幾つかのブロック（１６×１６の境界に必ずしも合っていなくてもよい）を調べ、現在のブロックとの差が最も小さいブロックを選択する。動き補償プロセスにおいて鍵となる要素である動きベクトルとは、単順に（現在のフレームにおける）現在のブロック部分と比較して（参照フレームにおける）最もマッチングするブロックに対するオフセット（補正値）であると言うことができる。そして、最もマッチングするブロックが参照フレーム又は予測フレームの現在のブロック位置にコピーされる。ブロックのコピーのみが許される状況を考慮すれば、このプロセスの後の予測フレームは、参照フレームから構築できる（画像ブロック間の差分を表す選択されたメトリックによれば）最良の近似となると言える。参照フレームは、現在のフレームを差動符号化するための予測子として使用されている。
【０００５】
以下に、従来技術の参照文献とその内容を簡単に記す。様々な方向に研究がなされている。S. Borman, M. Robertson, R.L Stevenson著「Block Matching Sub-Pixel Motion Estimation from Noisy, Undersampled Frames（多ノイズのアンダーサンプルされたフレームからのサブピクセル動き推定におけるブロックマッチング）」SPIE Visual Communications and Image Processing Conference，１９９９年には、ＳＡＤ、ＭＳＥ及びＮＣＦにおけるサンプリング誤差又はノイズ誤差の影響の実証的研究について記載されている。また、W. Li, E. Salari著「Successive Elimination Algorithm for Motion Estimation（動き補償のための逐次削除アルゴリズム）」IEEE Transactions on Image Processing, Volume 4, Issue 1, １９９５年１月, １０５‐１０７頁では、高速動き補償のための動的プログラミングのような方法を考案すべくＳＡＤ及びＭＳＥの特性について研究をおこなっている。著者は、解空間の包括的探索を必要としないアルゴリズムに注目し、存在するメトリックの特性について述べているが、新たなメトリックを提案してはいない。F. Tombari, S.Mattocia, L. di Stefano著 「Template Matching Based on Lp Norm Using Sufficient Conditions with Incremental Approximation（増分近似の十分条件を使用したｌｐノルムに基づくテンプレートマッチング」IEEE International Conference on Video and Signal Based Surveillance, ２００６年１１月, ２０頁は、上記の著者Li及びSalari氏の研究を発展させたものである。メトリックの高速バージョンを計算するのに、同様な動的プログラミング手法を使用している。
【０００６】
U. Koc, K.J.R. Liu著「Interpolation-free Subpixel Motion Estimation Technique in DCT Domain（ＤＣＴ領域における補間なしサブピクセル動き推定技術）」IEEE Transactions on Circuits and Systems for Video Technology, Volume 8, Issue 4, １９９８年８月, ４６０‐４８７頁では、サブピクセルレベルに注目し、ＤＣＴ領域における技術を使用して空間領域におけるサブピクセル補間を避けることを試みており、使用される技術は少なくとも空間領域で使用される技術と同等程度に複雑である。メトリックは、ＤＣＴ領域へのシフトに対応して適切に拡張されている。S.Lee, Soo-lk Chae,著「Two-step Motion Estimation Algorithm using Low Resolution Quantization（低解像度量子化を使用した２段階動き推定アルゴリズム）」International Conference on Image Processing, Volume 3, １９９６年９月, ７９５‐７９８頁は、動き推定技術に注目している。この論文では、ＳＡＤマッチングに"ｆａｉｌ  ｆａｓｔ"という手法を用いている。まず、画像を量子化して各ピクセルの精度を、例えば、８ビット／ピクセルから４ビット／ピクセルへと落とす。精度を落としたバージョンを使用して、第１関数が２つのブロックを比較する。比較結果が許容範囲にある場合は、最大精度のメトリックを使用してプロセスを続行する。また論文では、ハードウェアへの実装を考慮してはいるものの、プロセッサが実行するコードにＳＡＤを含むＳｉｎｇｌｅ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ｄａｔａ（ＳＩＭＤ）命令セットが存在する場合において、このＳＩＭＤを有効活用することについては検討していない。本発明の重要な側面は、今日の商業プロセッサの市場において利用可能な性能を最適化するＳＩＭＤ命令セットのようなものを使用して、メトリックの計算に必要な時間を削減することである。
【０００７】
C.-K. Cheung, L.-M. Po著「A Hierarchical Block Motion Estimation Algorithm using Partial Distortion Measure（部分歪測度を用いた階層的ブロックマッチングアルゴリズム）」International Conference on Image Processing, Volume 3, １９９７年１０月, ６０６‐６０９頁に報告されている研究では、通常のサブサンプリングと厳密に等価である通常のグリッドサンプリングを使用したピクセルのサンプリングを行っている。この論文では、ＳＡＤ及びＭＳＥを、ピクセル全数の１／２又は１／４（５の目形、２列に１列、又は２行に１行の割合のいずれか）のピクセルを使用して計算している。また、ブロックを、１／４グリッドのＳＡＤと比較する。ｎ個の優れたものに入る場合には、１／２グリッド密度が使用される次の回に持ち越される。前の回で取得されたｎ個の優れたもののうち、ｍ個が持ち越されて、完全なＳＡＤとの比較を行う。残念ながら、このCheung氏及びPo氏によって提案された手法では、ＳＩＭＤのような型の並列操作を有効活用できない。
【０００８】
Y.-L.Chan, W.-C.Siu著「New Adaptive Pixel Decimation for Block Motion Vector Estimation（ブロック動きベクトル探索のための新しい適応ピクセルデシメーション）」IEEE Transactions on Circuits and Systems for Video Technology, Volume 6, Issue 1, １９９６年２月, １１３‐１１８頁では、Cheung氏及びPo氏の論文と同様な研究を報告している。しかしながら、Chan氏及びSiu氏の論文では、５の目形を除く通常使用されるような様々なサンプリングパターンを検討している。ピクセル密度が１／４及び１／９となるような（２×２ピクセルにつき１ピクセル、又は３×３ピクセルにつき１ピクセル）パターンについて検討しているが、サブピクセル推定については触れていない。
【０００９】
以上のように、画像ブロックの差分を計測するのに様々なタイプのメトリックが、ブロック補償のための現在のコーデックで使用されており、これらを以下の説明でもメトリックと称する。的確なメトリックを使用したとしても、これらを算出するのは、計算コストの高いプロセスである。
【００１０】
したがって、この分野において、画像ブロック間の差分を表すメトリックを速く計算できる有効で改良された方法及びシステムが求められている。
【発明の概要】
【発明が解決しようとする課題】
【００１１】
以上のような点を鑑み、本発明は、動き補償ビデオ符号化のブロック比較に使用される２つの画像ブロック間の差分を表すメトリックを計算するための改良された方法及びシステムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記課題を解決するために、本発明の１つの態様においては、フレームによって構成されるシーンの動き補償ビデオ符号化において使用されるメトリックを決定する方法であって、メトリックは参照フレームに含まれる第１画像ブロックと現在のフレームに含まれる第２画像ブロックとの差分を表し、第１画像ブロック及び第２画像ブロックは、同じ行数及び列数のピクセルを含み、当該方法は、（ａ１）第１画像ブロック及び第２画像ブロックにおけるピクセルサブセットを選択するために、第１及び第２画像ブロックと同じ行数及び列数を有するパターン行列を生成する段階と、（ｂ１）前記（ａ１）段階で生成されたピクセルサブセットにおけるピクセルそれぞれの特徴を取得する段階と、（ｃ１）ピクセルサブセットの特徴を処理して、メトリックを決定する段階とを備える。
【００１３】
前記（ａ１）段階は、（ａ２）シーンにおける物体の動きの方向を示すシーンのグローバル動き特徴を生成する段階と、（ｂ２）動き補償ビデオ符号化に使用されるＣＰＵアーキテクチャ、（ａ２）段階で生成されたグローバル動き特徴及びピクセルサブセット内のピクセル数の推定値であるピクセルバジェットに対応するパターン行列を生成する段階とをさらに有する。
【００１４】
前記（ａ２）段階は、（ａ３）シーンについて、振幅及び方向を持つ平均動きベクトルを決定する段階と、（ｂ３）平均動きベクトルの振幅を、所定の動き無しとする閾値と比較する段階と、（ｃ３）平均動きベクトルの振幅が閾値よりも小さい場合に、グローバル動き特徴を、物体の動きが無いことを示す静止状態であると判断する段階と、（ｄ３）平均動きベクトルの振幅が閾値以上である場合は、（ａ３）段階において決定された平均動きベクトルの方向に基づいて、グローバル動き特徴が、水平方向運動、垂直方向運動又は斜め方向運動のうちいずれか１つであると判断する段階とをさらに含む。
【００１５】
前記（ｂ２）段階は、（ａ４）動き補償ビデオ符号化に使用されるＣＰＵアーキテクチャ、グローバル動き特徴及びピクセルバジェットに基づいて、一連の所定の複数のパターン行列からパターン行列を選択する段階をさらに含む。
【００１６】
前記（ａ４）段階は、（ａ５）動き補償を行う前にパターン行列のリポジトリを生成し、リポジトリのパターン行列はそれぞれ、動き補償ビデオ符号化に使用されるＣＰＵアーキテクチャ、グローバル動き特徴及びピクセルバジェットに対応している。
【００１７】
前記（ａ５）段階は、リポジトリの複数のパターン行列のそれぞれについて、（ａ６）第１画像ブロック及び第２画像ブロックにおいて同じ位置を占めるピクセルに対応しているセルであって、パターン行列の複数のセルに複数のブール値を記憶する段階と、（ｂ６）第１画像ブロック及び第２画像ブロックからのピクセルがメトリックの計算に含まれることに対応する"真"又は"偽"のいずれか一方のブール値を、パターン行列の複数のセルに記憶し、第１画像ブロック及び第２画像ブロックからのピクセルがメトリックの計算から除外されることに対応する"真"又は"偽"の他方のブール値を、パターン行列の複数のセルに記憶する段階とをさらに含む。
【００１８】
前記（ｂ１）段階は、（ａ７）輝度値である特徴を取得する段階と、（ｂ７）第１画像ブロックの複数のピクセルの輝度値を、第１行列の複数のセルに記憶する段階と、（ｃ７）第２画像ブロックの複数のピクセルの輝度値を、第２行列の複数のセルに記憶する段階とをさらに有する。
【００１９】
前記（ｃ１）段階は、（ａ８）パターン行列を使用して第１行列及び第２行列のセルを選択する段階と、（ｂ８）（ａ８）段階で選択したセルに記憶された輝度値に、差分絶対値和関数を適用する段階とをさらに有する。前記（ｃ１）段階は、（ａ９）パターン行列を使用して第１行列及び第２行列のセルを選択する段階と、（ｂ９）（ａ９）段階で選択したセルに記憶された輝度値に、平均自乗誤差関数を適用する段階とをさらに有する。
【００２０】
本発明の他の側面に係るコンピュータ可読プログラムコード手段を記憶するコンピュータ可読媒体は、コンピュータよって実行された場合に、上述の方法の段階を実行させるコンピュータ可読媒体。
【００２１】
本発明の他の側面に係る方法は、複数のピクセルを有する複数のブロックを含むシーンを動き補償ビデオ符号化するのに使用され、第１画像ブロックと第２画像ブロックとの間の差分を表すメトリックを迅速に計算する方法であって、（ａ１７）第１画像ブロック及び第２画像ブロックにおけるピクセルサブセットを選択するためのパターン行列を生成する段階と、（ｂ１７）ピクセルサブセットにおけるピクセルそれぞれの特徴を取得する段階と、（ｃ１７）ピクセルサブセットの特徴を処理して、メトリックを決定する段階とを備える。
【００２２】
前記（ａ１７）段階は、（ａ１８）シーンにおける物体の動きの方向を示すシーンのグローバル動き特徴を生成する段階と、（ｂ１８）動き補償ビデオ符号化に使用されるＣＰＵアーキテクチャ及びグローバル動き特徴に対応するパターン行列を生成する段階をさらに有する。
【００２３】
前記（ａ１８）段階は、（ａ１９）シーンについて、振幅及び方向を持つ平均動きベクトルを決定する段階と、（ｂ１９）平均動きベクトルの振幅を、所定の動き無しとする閾値と比較する段階と、（ｃ１９）平均動きベクトルの振幅が閾値よりも小さい場合に、グローバル動き特徴を、物体の動きが無いことを示す静止状態であると判断する段階と、（ｄ１９）平均動きベクトルの振幅が閾値以上である場合は、平均動きベクトルの方向に基づいて、グローバル動き特徴が、水平方向運動、垂直方向運動又は斜め方向運動のうちのいずれか１つであると判断する段階とをさらに含む。
【００２４】
前記（ｂ１８）段階は、（ａ２０）一連の所定の複数のパターン行列から、パターン行列を選択する段階をさらに含む。前記（ｂ１７）段階は、（ａ２１）輝度値である特徴を取得する段階と、（ｂ２１）第１画像ブロックの複数のピクセルの輝度値を、第１行列の複数のセルに記憶する段階と、（ｃ２１）第２画像ブロックの複数のピクセルの輝度値を、第２行列の複数のセルに記憶する段階とをさらに有する。例えば、前記（ｃ１７）段階は、（ａ２２）パターン行列を使用して第１行列及び第２行列のセルを選択する段階と、（ｂ２２）（ａ２２）段階で選択したセルに記憶された輝度値に、差分絶対値和関数を適用する段階とをさらに有してもよい。あるいは、前記（ｃ１７）段階は、（ａ２３）パターン行列を使用して第１行列及び第２行列のセルを選択する段階と、（ｂ２３）（ａ８）段階で選択したセルに記憶された輝度値に、平均自乗誤差関数を適用する段階とをさらに有してもよい。
【００２５】
ピクセルサブセットは、複数のグループを含み、第１画像ブロック及び第２画像ブロックにおいて、複数のグループは、ブロックをカバーする範囲が最大となるように位置している。これらのグループは、好ましくは等間隔に配置され、各グループ内の複数のピクセルは、ピクセルの複数の行のうちの１つに連続して位置している。
【００２６】
本発明の他の態様では、プロセッサ及びメモリ有し、フレームによって構成されるシーンの動き補償ビデオ符号化において使用されるメトリックを決定するシステムであって、メトリックは参照フレームに含まれる第１画像ブロックと現在のフレームに含まれる第２画像ブロックとの差分を表し、第１画像ブロック及び第２画像ブロックは、同じピクセル行数及びピクセル列数を含み、（ａ１０）第１画像ブロック及び第２画像ブロックにおけるピクセルサブセットを選択するために、第１及び第２画像ブロックと同数の行及び列を有するパターン行列を生成するパターン行列生成ユニットと、（ｂ１０）ピクセルそれぞれの特徴を読み出す画像読み出しユニットと、（ｃ１０）ピクセルサブセットの特徴を処理することによりメトリックを決定するメトリック計算ユニットとを備えるシステムを提供する。
【００２７】
パターン行列生成ユニット（ａ１０）は、（ａ１１）シーンにおける物体の動きの方向を示すシーンのグローバル動き特徴を計算するグローバル動き特徴決定ユニットと、（ｂ１１）シーンのグローバル動き特徴、動き補償ビデオ符号化に使用されるＣＰＵアーキテクチャ及びピクセルサブセット内のピクセル数の推定値であるピクセルバジェットに基づいて、パターン行列を生成する行列決定ユニットとをさらに有する。
【００２８】
行列決定ユニット（ｂ１１）は、（ａ１２）一連の所定の複数のパターン行列を記憶するパターン行列リポジトリと、（ｂ１２）パターン行列リポジトリからパターン行列を選択するパターン行列選択ユニットとを含み、パターン行列リポジトリのパターン行列はそれぞれ、動き補償ビデオ符号化に使用されるＣＰＵアーキテクチャ、グローバル動き特徴及びピクセルバジェットに対応している。このようなシステムにおいて、特徴は、輝度値である。
【００２９】
メトリック計算ユニット（ｃ１０）は、差分絶対値和関数をピクセルサブセットの輝度値に適用する差分絶対値和計算ユニットを含む。または、メトリック計算ユニット（ｃ１０）は、平均自乗誤差関数をピクセルサブセットの輝度値に適用する平均自乗誤差計算ユニットを含む。
【００３０】
ピクセルサブセットは複数のグループを含み、複数のグループは、第１画像ブロック及び第２画像ブロックにおいてブロックをカバーする範囲が最大となるように位置している。
【００３１】
以上のように、動き補償ビデオ符号化で使用されるメトリックを決定するための改良されたシステム及び方法が提供される。
【００３２】
本発明のさらなる特徴及び利点は、添付の図面を参照して説明され、例示することのみを目的として以下に記載される実施形態を通じて明らかになる。
【図面の簡単な説明】
【００３３】
【図１】動き補償ビデオ符号化のための従来のシステムを示した図である。
【図２】図１のコアサブシステム１０２ａをより詳細に示した図である。
【図３】動き補償ビデオ符号化における動き推定を行う従来の方法の段階を示したフローチャートである。
【図４ａ】本発明の実施形態に係るメトリック決定に掛かる計算コストを削減するＣＰＵアーキテクチャに基づく、連続ピクセル選択の例を示した図である。
【図４ｂ】本発明の実施形態の改良されたコアサブシステム１０２ｂを示した図である。
【図４ｃ】図４ｂの改良されたメトリック決定モジュール２１４ｂ内のユニットを示した図である。
【図５】画像ブロック間の差分を表すメトリックを決定するための本発明の実施形態によって実行される方法の段階を示したフローチャートである。
【図６】本発明の実施形態において、シーンのグローバル動き特徴を決定するのに使用される方法を示した図である。
【図７】図５の"Ｐ‐ＳＡＤを計算する"段階を示したフローチャートである。
【発明を実施するための形態】
【００３４】
ブロックベースの動き推定アルゴリズムは、２つの画像ブロック間の差分（文献ではしばしば、誤差と称される）を表すメトリックが、最適化領域周辺では最小になるというほぼ正しい仮定に基づいているので、実際のメトリックに対する依存性は緩く、アルゴリズムは、効率的で低コストの近似メトリックに対して弾力的であると考えられる。本発明は、比較されるブロックにおいて選択されたピクセルのみを考慮することにより、画像ブロック間の差分を表すメトリックを決定するのに掛かる計算コストを削減するものである。メトリックを決定するのに掛かる時間が大幅に削減でき、画像の明らかな品質低下が生じない。
【００３５】
本発明の詳細を説明する前に、図１に示すシステム１００を参照して、動き補償符号化の概略を説明する。コアシステム１０２ａは、動き推定モジュール１０６に接続されたフレームバッファモジュール１０４、及び動き補償モジュール１０８を含む。動き推定モジュール１０６は、動き補償モジュール１０８に接続される。フレームバッファモジュール１０４は、他のモジュールが動き補償フレームを生成するのに必要とする幾つかの前（ｐｒｅｖｉｏｕｓ）フレームを格納し、生成された動き補償フレームは、処理中の現在の（ｃｕｒｒｅｎｔ）フレームの予測子として使用される。動き補償された画像を生成するコアサブシステム１０２ａについては、図２を参照して詳細に説明する。
【００３６】
動き補償モジュール１０８からの動き補償されたフレームを、現在の画像から差し引き（図１ではマイナス"−"の演算子１１４で表されている）、残り（画像の差分）が、符号化のために変換ステップへ送られる。
【００３７】
フレームはフレームソース１１０によって生成されるが、フレームソースは画像フレームをエンコーダに提供しさえすればどのような装置であってもよい（例えば、カメラ又はファイル）。フレームソース１１０に記憶されたフレームの処理は、選択されたモードに依存する。モード選択モジュール１１２は、コーデックに入力されるフレームを、動き補償で符号化するべきか、又は"フレーム内予測モード（イントラモード）"を使用して符号化するべきかを示す。フレーム内予測（イントラ）モードは、他のフレームに対して復号化ができないフレーム（例えば、キー（ｋｅｙ）フレーム）に対して使用される。このようなフレームには、その画像内に完全包含されるデータに限定して行われるスタンドアローンの符号化を適用する。モード選択モジュールは、ストリームレベルのポリシーに基づく構成であるので、動き補償構成の外部に設けられる。モード選択モジュールは、補間されたフレーム（動き補償されたフレーム）、若しくは、補償又は他のフレームを参照することなくそのフレーム自身で復号化を行うことのできる"キーフレーム"のいずれかを選択する。とりわけ、前フレームの復号化をせずに動画の特定の位置を探す場合には、キーフレームが使用される。また、伸長（解凍）は、キーフレームでのみ開始することができ、動き補償されたフレームは他のフレームに依存するため、伸長の初期点とすることはできない。モード選択モジュール１１２が、イントラ予測モジュール１１６を選択した場合は、このモジュール１１６が、他のフレームの助けを借りることなく現在のフレーム内でピクセルの予測を行う。このとき、符号化のためのキーフレームが準備される。先に述べたように、Ｉフレーム（ｉｎｔｒａ‐ｃｏｄｅｄ  ｆｒａｍｅ）の圧縮／伸長は、他のフレームに依存しない。フレーム内予測の詳細については、本発明の議論すべき範囲を超えるため、ここでは記載しない。モード選択モジュール１１２が、変換オペレーションを行うよう選択した場合は、動き補償モジュール１０８の出力に従って処理された後のフレームが、変換モジュール１１８に入力される。変換は、コーデックに固有のステップであり、画像が、空間（ピクセル）領域から周波数領域に変換される。変換は、通常、離散コサイン変換（ＤＣＴ）又は同類（ｋｉｎ）変換である。変換符号化はよく知られた技術であり、本発明の原理に関してこれ以上詳細に説明する必要はないため、省略する。ピクセルを周波数領域に変換した後、得られたデータを量子化モジュール１２８の助けを借りて量子化する。量子化は、基本的に精度低下（したがって、不可逆な）を伴うステップであり、実際のデータの表示に使用されるビットの数が少なくなっていることを意味する。量子化の種類及び粗さはそれぞれ、コーデック及びユーザーが指定する目標とする品質／ビットレートに依存する。そして、量子化モジュール１２８からの出力は、逆量子化モジュール１２６、及び動き推定モジュール１０６から動きベクトルを受信するエントロピー符号化モジュール１３０によって処理される。エントロピー符号化は、コーデック固有のステップであり、量子化モジュール１２８からの精度が落とされたデータは、可変長コード及び他の補償技術を使用して符号化される。このレベルでは、精度は失われておらず、より効率的なデータ表示が使用されているだけである。典型的には、ハフマン符号化を変化させたものであって、事前に計算される静的符号、又はデータの符号化に従って展開される適応符号のいずれかを使用する。より高度なコーデックには、Ｈ．２６４のような高度な技術を使用する。
【００３８】
エントロピー符号化モジュール１３０の出力は、トランスポート符号化モジュール１３２によって処理される。このモジュールは、出力がファイルとしてストレージモジュール１３６に格納されるのか又は送信モジュール１３４によってデータとして送信されるのかに基づいて、エントロピー符号化されたデータをトランスポート形式に"ラッピング"する。典型的なトラスンポートファイル形式としては、MPEG TS、AVI、3GP等が挙げられる。送信は、インターネットで動画をストリームするのに使用されるリアルタイム・トランスポート・プロトコル、すなわちＲＴＰ／ＲＴＳＰを使用して行うことができる。
【００３９】
逆量子化モジュール１２６は、量子化モジュール１２８の出力を受信し、量子化モジュール１２８が行ったステップを元に戻す。これは、しかしながら、量子化の段階で情報が回復不可能に失われてしまうため、完全に元に戻すプロセスとはならない。したがって、逆量子化は、精度を落とした元のデータの近似値を生成するプロセスである。次に、逆量子化されたデータが、逆変換モジュール１２４により処理される。このモジュールでは、変換ステップの逆が行われ、周波数領域のデータを、ピクセル領域のデータへと変換する。この時点で、データは、変換モジュール１１８に入力された画像よりも精度が落とされた近似データとなっている。
【００４０】
図１の上部中央に示されている第２のモード選択スイッチ１２０（スイッチ１１２の反転構成）は、フレームバッファモジュール１０４に追加する画像を、イントラフレームのものにするか動き補償フレームのものにするかを決定する。イントラフレームの場合、逆変換モジュール１２４の出力は、すでに完全な画像になっていることから、そのままフレームバッファモジュール１０４に追加される。動き補償フレームの場合、逆変換からの差分を動き補償フレームに加算し戻し（このオペレーションは、図ではプラス"＋"の演算子１２２で表されている）、フレームバッファモジュール１０４に追加される最終的な符号化された画像となる。
【００４１】
コアサブシステム１０２ａを、図２を参照して説明する。最終符号化画像２０２とは、図１の逆変換モジュール１２４により生成された画像のことであり、幾つかのフレームを格納するフレームバッファモジュール１０４に挿入される。典型的なフレームバッファモジュール１０４では、一般的に、最後に符号化された１つ又は２つの画像を含む少数のバッファされたフレーム２０８の格納に限定される。新たなフレームが追加される時には、最も古いフレーム（最も長い時間バッファに留まっていたフレーム）が廃棄され、バッファが無制限に増加してしまうのを防いでいる。Ｈ．２６４のような特定のコーデックでは、格納されるフレームの数が１６と多くなるが、通常は、前フレームのみに限定される。フレーム選択モジュール２１０は、動き推定アルゴリズム２１６から出力されたフレーム選択に応じて、次のモジュールに適したフレームを選択する。
【００４２】
符号化すべき現在の画像２１２及びフレーム選択モジュール２１０によって選択されたフレームは、実際に動き推定を実行する動き推定アルゴリズム２１６を備える動き推定モジュール１０６によって処理される。また、メトリック決定モジュール２１４ａを使用して、２つの画像ブロック間の差分を測るのに使われるメトリックを生成する。動き推定アルゴリズム２１６の複雑さに応じて、単純に"最後のフレームを取得する"フレーム選択にするか、インタレース方式で複数のハーフ・フレームを選択するといったより複雑なフレーム選択をするかが決まる。また、フレーム選択は、特定のコーデックがサポートされているか否かにも依存する。あるコーデックでは、最後のフレームのみが参照フレームとしてサポートされており、Ｈ．２６４のような別のコーデックでは、多数の画像（この場合、１６個まで）から複数の画像の切り取りをサポートしている場合もある。そして動き推定モジュールは、動きベクトルを返す（複数の前フレームの参照を含む場合もある）。
【００４３】
動き推定アルゴリズム２１６の出力は、動き補償モジュール１０８によって使用される。動き補償モジュールは、動きベクトル（及び前フレームの参照）によって記述された変換を適用する。動き補償モジュール１０８は、動きベクトルによって規定されるように、参照フレームのパーツから予測画像を構成する。
【００４４】
典型的な動き推定アルゴリズムによって実行される方法の各ステップについて、図３に示すフローチャート３００を参照して説明する。プロセス３００が開始される（ボックス３０２）と、最適メトリック変数は任意の大きい値に設定され（ボックス３０４）、探索位置は初期値に設定される（ボックス３０６）。探索位置は、処理されている現在フレームを補償するための、現在のブロックと比較される参照フレーム内のブロックの位置である。動き推定アルゴリズムは、このような幾つかの参照フレームにおける位置を生成し、これらの位置におけるブロックを現在フレームにおける現在のブロックと比較することにより検証する。プロセス３００は、探索位置を検証する（ボックス３０８）。差分絶対値和（ＳＡＤ）関数を、２つの行列ａ及びｂの対応するセルに格納された各ピクセルの輝度値に適用することにより、探索位置の検証が行われる。検証される参照フレームからのブロックは第１ブロックと称され、当該ブロックのピクセルの輝度値は第１行列に格納されて、以下に示す式において"ａ"として表されている。また、処理される現在フレームからのブロックは第２ブロックと称され、当該ブロックのピクセルの輝度値は第２行列に格納されて、以下に示す式において"ｂ"として表されている。行ｉ、列ｊのセルにおけるこれら２つの行列をそれぞれ、ａ［ｉ，ｊ］、ｂ［ｉ，ｊ］と表すことにする。すなわち、
【００４５】
2014239497.tif 000003
【００４６】
このＳＡＤ関数によって計算される２つのブロック間の差分の大きさは、メトリックと呼ばれ、このメトリックと最適メトリックとを比較する（ボックス３１０）。プロセス３００において、メトリックが最適メトリックよりも小さい場合は、ボックス３１０にて"Ｙｅｓ"が選択され、この探索位置から動きベクトルが計算される（ボックス３１４）。プロセス３００において、反対にメトリックが最適メトリックよりも小さくない場合には、ボックス３１０において"Ｎｏ"が選択されて、追加の探索位置を生成する必要があるか否かを検証する（ボックス３１２）。必要でない場合は、ボックス３１２において"Ｎｏ"が選択され、プロセス３００は終了する（ボックス３２２）。必要がある場合は、新たな探索位置が生成され（ボックス３１５）、プロセス３００はボックス３０８に再び戻る。ボックス３１４において、動きベクトルを計算した後、プロセス３００は、このメトリックの値を最適メトリックに記憶し、ボックス３１４において計算された動きベクトルを最適ベクトルと呼ばれる変数に記憶する（ボックス３１６）。次いで、最適メトリックが所定の閾値よりも小さいか否かを検証する（ボックス３１８）。小さくない場合、ボックス３１８において"Ｎｏ"が選択され、プロセス３００はボックス３１２に戻る。小さい場合は、ボックス３１８において"Ｙｅｓ"が選択され、最適ベクトルを動きベクトルバッファに追加し（ボックス３２０）、プロセス３００は終了する（ボックス３２２）。
【００４７】
例えばＳＡＤ関数を使用した、２つの画像ブロック間の差分を表すメトリックの計算は、２つのブロック内の各ピクセルに基づいて行われるため、非常に時間が掛かるプロセスである。本発明は、２つの異なる技術を採用して、この計算の複雑さを大幅に低減する。選択されたピクセルのサブセット（部分集合）のみが、メトリックの計算に使用される。
【００４８】
2014239497.tif 000004
【００４９】
Ｐ‐ＳＡＤは、ＳＡＤ関数に基づく最適化されたパターンであり、Ｐに含まれるピクセルのサブセットのみを使用し、このピクセルのサブセットの選択に使用されるパターン行列に基づいている。Ｐ‐ＳＡＤの計算の複雑さは、計算されるｉ，ｊの組の数に直接比例する。（ｉ，ｊによって特定される）ピクセルは、構成される画像における歪みが無視できる程度に小さくなるように選択される。Ｐ‐ＳＡＤプロセスは、ａ行列、ｂ行列及びパターン行列という３つの独立変数を持つ。パターン行列は、ブール行列であり、あるｉ及びｊの組み合わせについて、あるピクセル輝度値のセット、ａ［ｉ，ｊ］及びｂ［ｉ，ｊ］がＰ‐ＳＡＤの計算に含まれるか否かを示す"真（ｔｒｕｅ）"又は"偽（ｆａｌｓｅ）"の値を含む。パターン行列［ｉ，ｊ］おける"真"の値は、対応するａ［ｉ，ｊ］及びｂ［ｉ，ｊ］の組がＰ‐ＳＡＤの計算に含まれることを意味し、反対に値が"偽"であるとは、対応するａ［ｉ，ｊ］及びｂ［ｉ，ｊ］の組が計算から除外されていることを意味する。Ｐ‐ＳＡＤの計算に使用される項の数を減らすことにより、計算の複雑さが大幅に低下する。Ｐ‐ＳＡＤの計算の実行時間は、グループと称する、同じ行に位置する連続した複数のピクセルを選択することにより、さらに最適化することができる。使用可能な複数のＣＰＵが、１つのＣＰＵ命令でこのようなグループの演算を実行できる。市場に存在する幾つかのＣＰＵは、このような演算を行うための単一命令複数データ（Ｓｉｎｇｌｅ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ｄａｔａ：ＳＩＭＤ）命令を備える。例えば、インテル（登録商標）のPentium（登録商標）IIIシリーズプロセッサは、ｘ８６アーキテクチャを拡張したストリーミングＳＩＭＤ拡張命令（ＳＳＥ）を備える。また、3DNow!は、ＰＳＡＤＢＷ（packed SAD from byte summed to word）命令を提供するAMDのK６プロセッサのマルチメディア拡張である。
【００５０】
５つのグループを選択した例が図４ａの略図３５０に示されており、灰色のセルは、例示された１６×１６のブロックから選択されたＰ‐ＳＡＤの計算に使用されるピクセルを表している。この例では、各グループが８つのピクセルを含んでいる。パターン行列は、これらのグループが可能な限り（水平方向及び垂直方向の両方において）等間隔に配置され、ブロックをカバーする範囲の長さが最大となるように構築される（図４ａ参照）。図４ａの例において、任意の隣接する２つのグループ間の垂直方向の距離はおよそ等しくなっており、任意の隣接する２つのグループ間の水平方向の距離は互いに等しくなっている。ブロック内においてこのようにグループを位置させることにより、ブロックをカバーする範囲が最大になる。すなわち、図４ａに示されるように、グループは、ブロックの一領域に密集しないように配置され、可能な限りブロックの大部分をカバーするように配置される。ＳＳＥを備えるインテルのPentium（登録商標）IIIプロセッサは、例えば、１つのＣＰＵ命令につき、同じ行に位置する８つの連続した灰色のセルのセットで表されるグループの演算を行うことができる。
【００５１】
パターン行列における"真"の値の数（又は、"偽"の値の数）により、Ｐ‐ＳＡＤの計算に伴うコストを直接制御でき、また、ピクセルバジェットに基づく。ピクセルバジェットは、選択されたピクセルのサブセットにおいてＰ‐ＳＡＤにより処理されるピクセル数の推定値である。ピクセルバジェットは、予め定められる固定値であってもよいし、ユーザーによって指定される値であってもよい。パターン行列は、このピクセルバジェット、ＣＰＵアーキテクチャ及び処理されるシーンのグローバル動き特性に基づいて選択される。図４ａの例は、ピクセルバジェットが４０の場合に対応する。ＳＳＥを備えるインテルのPentium（登録商標）IIIプロセッサを使用して、１つの命令につき、８つのピクセルからなる１グループの演算を行うとすると、グループの数は、４０／８＝５となり、図４ａの例では、５つのグループが使用されることになる。
【００５２】
本発明の実施形態では、メトリックを決定するための計算の複雑さを、メトリック決定モジュール２１４ａを改良することにより軽減する。Ｐ‐ＳＡＤ関数を実装する改良されたメトリック決定モジュール２１４ｂを組み込んだ改良されたコアサブシステム１０２ｂが、本発明の実施形態を示す図４ｂのシステム３７０に示されている。２１４ｂを除いた、改良されたコアサブシステムの全て要素は、図２のコアサブシステム１０２ａに示されたものと同じである。本発明の実施形態に係るシステム３７０は、１つのＣＰＵ及び１つのコンピュータ可読媒体を有する汎用コンピュータ又は専用コンピュータを含み、コンピュータ可読媒体の例としては、メモリ、ＤＶＤ、ＣＤ‐ＲＯＭ及びＣＰＵによって実行されるコンピュータ可読命令を記録するその他の媒体が挙げられる。あるいは、システムを、ファームウェア又はファームウェアと専用コンピュータの組み合わせに実装してもよい。改良されたメトリック決定モジュール２１４ｂを含め、システム３７０の様々なモジュールが、コンピュータ可読媒体に記憶されＣＰＵによって実行されるコンピュータ可読命令として実装される。
【００５３】
改良されたメトリック決定モジュール２１４ｂを、図４ｃに示す略図２１４ｂを参照して説明する。上述したように、改良されたメトリック決定モジュール２１４ｂは、ファームウェア、又はコンピュータ可読媒体に記憶されたコンピュータソフトウェアコードにより実装可能である。
【００５４】
改良されたメトリック決定モジュール２１４ｂは、画像読み出しユニット４０４、パターン行列生成ユニット４０２及びメトリック計算ユニット４０６の３つのユニットを含み、コンピュータ可読媒体に記憶されたコンピュータ可読命令によって構成される。１つのシーン内の全ピクセルの輝度値のような特徴は、動き補償ビデオ符号化を実行するために画像読み出しユニット４０４によって読み出される。これらの特徴は、パターン行列生成ユニット４０２が適切なパターン行列を生成するのに使用され、また、メトリック計算ユニット４０６が、参照フレームに含まれる第１画像ブロックと処理される現在フレームに含まれる第２画像ブロックとの間の差分を表すメトリックを決定するのに使用される。本発明の一実施形態では、メトリック計算ユニットは、先に説明したＰ‐ＳＡＤ関数を実装する差分絶対値和計算ユニットを含む。パターン行列生成ユニット４０２は、グローバル動き特徴決定ユニット４０８及びパターン行列決定ユニット４０９の２つのユニットを含み、コンピュータ可読媒体に記憶されたコンピュータ可読命令によって構成される。グローバル動き特徴決定ユニット４０８は、シーンにおいて物体が動く方向を示す、シーンのグローバル動き特徴を計算する。この情報は、パターン行列決定ユニット４０９が、このシーンの動き補償ビデオ符号化に使用するパターン行列を選択するのに使用される。パターン行列決定ユニット４０９は、行列選択ユニット４１０及びコンピュータ可読媒体に記憶されているパターン行列リポジトリ４１２の２つのユニットを含む。パターン行列リポジトリ４１２は、予め定められた一連のパターン行列を記憶しており、パターン行列のそれぞれが、ＣＰＵアーキテクチャ及びシーンのグローバル動き特徴に対応している。パターン行列決定ユニット４１０は、動き補償ビデオ符号化で使用されるＣＰＵアーキテクチャ、処理されるシーンのグローバル動き特徴及びピクセルバジェットに基づいて、パターン行列リポジトリ４１２からパターン行列を選択する役割を担っている。パターン行列リポジトリは、複数のパターン行列を含み、各パターン行列は、動き補償ビデオ符号化で使用されるＣＰＵアーキテクチャ、処理されるシーンのグローバル動き特徴及びピクセルバジェットの特定の組み合わせに対応している。図４ａに示された例の場合、パターン行列リポジトリは、ＳＳＥ拡張を備えるインテルのPentium（登録商標）IIIプロセッサ及びピクセルバジェット４０に対応する４つの特定のパターン行列を含む。これら４つのパターン行列はそれぞれ、シーンの特定のグローバル動き特性である、静止状態、水平方向運動、垂直方向運動及び斜め方向運動に対応している。３つの因数の全てについて値が既知となると、特定のパターン行列の位置が特定され、リポジトリから読み出される。これらのユニットを実現する方法を、次に説明する。
【００５５】
メトリック計算ユニット４０６によって実行されるＰ‐ＳＡＤ値の計算方法のステップを、図５に示すフローチャート５００を参照して説明する。方法が開始される（ボックス５０２）と、ＣＰＵアーキテクチャに基づいて、１グループのピクセルの数ｌｎ＿ｇｒｏｕｐを選択する（ボックス５０４）。ここで、先に述べたように、グループとは、１つの行に連続して位置し、１つのＣＰＵ命令によって処理される複数ピクセルのことを指す。例えば、ＣＰＵが、一度にｎ個のピクセルを処理できる命令をサポートしている場合には、ｌｎ＿ｇｒｏｕｐはｎに設定される。使用されるグループの数は、ｎｏ＿ｇｒｏｕｐと表され、これを計算する（ボックス５０６）。床関数（ｆｌｏｏｒ  ｆｕｎｃｔｉｏｎ）は、変数に対して、変数以下の最大の整数を生成する関数である。シーンのｌｎ＿ｇｒｏｕｐ、ｎｏ＿ｇｒｏｕｐ及びグローバル動き特徴に基づいて、使用するパターン行列を決定する（ボックス５０８）。本発明の一実施形態では、パターン行列は、記憶された複数の行列のセットから選択される。パターン行列が決定した後、Ｐ‐ＳＡＤ値が計算され（ボックス５１０）、プロセス５００が終了する（ボックス５１２）。様々なパターン行列の記憶及びボックス５０８で行われる選択について、次に説明する。そして、Ｐ‐ＳＡＤの計算方法について説明する。
【００５６】
パターン行列は、パターン行列生成ユニット４０２により生成される。パターン行列の選択について、簡単に説明する。シーンは、多様な方法で特徴づけることができる。本発明の一実施形態では、シーンのグローバル動き特徴を使用して、静止状態、垂直方向運動、斜め方向運動又は水平方向運動としてシーンを特徴づける。この特徴づけは、物体の動きのおよその方向を捉えることによって行われ、静止状態は、動きが僅かである又は全くない特別な場合である。図６に示す図表６００は、１つのシーンのグローバル動き特徴を決定するのに使用されるプロセスを説明する図である。あるシーンに対する、振幅と方向を持つ平均動きベクトルは、そのシーンにおける異なる複数ブロックに対する動きベクトルを足し合わせ、この合計をブロックの数で割ることにより計算される。平均動きベクトルの振幅（又は長さ）は、ユーザーが設定する所定の"動き無しとする閾値"６０２と比較される。ベクトルの振幅が、この閾値よりも小さい場合には、シーンは静止状態であると分類される。例えば、平均動きベクトル６０４の振幅が、動き無しとする閾値よりも小さい場合は、静止状態であると判断される。平均動きベクトル６０６の振幅が、動き無しとする閾値よりも大きい場合には、ベクトルの方向を考慮する。
【００５７】
図６の例では、シーンの特徴づけ空間が８つの領域に分割される。領域６１２及び６２０は水平方向運動に対応し、領域６０８及び６１６は垂直方向運動に対応し、領域６１０、６１４、６１８及び６２２は斜め方向運動に対応している。平均動きベクトルがどの領域に属するかに応じて、シーンが、水平方向運動、垂直方向運動又は斜め方向運動として分類される（図６参照）。図６では、平均動きベクトル６０６の振幅は動き無しの閾値よりも大きく、図表の垂直方向運動領域６０８に位置するので、シーンは垂直方向運動として分類される。本発明の一実施形態では、動き補償ビデオ符号化が行われる前に、Ｐ‐ＳＡＤの計算に使用されるパターン行列が複数生成され、リポジトリに記憶される。各パターン行列は、シーンのｌｎ＿ｇｒｏｕｐ、ｎｏ＿ｇｒｏｕｐ及びグローバル動き特徴のある特定の組み合わせに対応する。実行時には、処理されるべきシーンの平均動きベクトルを分析して、適切なパターン行列をパターン行列のリポジトリから読み出し（ボックス５０８）、次に説明するＰ‐ＳＡＤの計算に使用する。
【００５８】
図５のボックス５１０で実行される本発明の方法の段階を、図７に示すフローチャート７００を参照して説明する。１６×１６ピクセルの画像ブロックを使用するシステムを例として説明するが、本発明の方法は、他のブロックサイズにも容易に拡張可能である。プロセス７００が開始すると（ボックス７０２）、初期化ステップが実行される（ボックス７０４）。このステップでは、現在の行及び列を表すインデックスを記憶するｉ及びｊの初期値をそれぞれ１に設定し、変数の合計（ｓｕｍ）は０に設定される。プロセス７００では、初期化段階の後、パターン行列のｉ番目の行及びｊ番目の列に位置するセルに記憶されているブール値を確認する（ボックス７０６）。確認の結果、値が"真"である場合は、プロセス７００のボックス７０６において"Ｙｅｓ"が選択され、ボックス７０８に示すようにＰ‐ＳＡＤの計算にａ［ｉ，ｊ］、ｂ［ｉ，ｊ］が使用される。偽である場合は、プロセス７００のボックス７０６において"Ｎｏ"が選択され、Ｐ‐ＳＡＤの計算からａ［ｉ，ｊ］、ｂ［ｉ，ｊ］の値が除外される。したがって、プロセス７００のボックス７０８のオペレーションはスキップされ、現在の行に対する全ての列が対象となっているか否かを検証する（ボックス７１０）。全ての列が対象となっていない場合、プロセス７００のボックス７１０において"Ｎｏ"が選択され、ｊの値をインクリメントして（ボックス７１２）次の列に進み、ボックス７０６に戻る。全ての列が対象となっている場合、プロセス７００のボックス７１０において"Ｙｅｓ"が選択され、全ての行がカバーされたか否かを検証する（ボックス７１６）。全ての行がカバーされた場合は、ボックス７１６において"Ｙｅｓ"が選択され、値を合計に返し（ボックス７１８）、プロセス７００が終了となる（ボックス７２０）。全ての行がカバーされていない場合は、プロセス７００のボックス７１６において"Ｎｏ"が選択され、ｉの値をインクリメントし、ｊの値を１に設定して（ボックス７１４）次の行に進み、ボックス７０６に戻る。
【００５９】
本発明の特定の実施形態が詳細に記載されたが、記載された実施形態は、本発明を例示するために示したものであり、限定することを意図していない。本発明の広範な側面における範囲を逸脱することなく、図及び明細書に示された実施形態について、様々な変更及び改良が可能である。例えば、メトリックの決定のためにＰ‐ＳＡＤ関数ではなく、平均自乗誤差関数に基づく最適化されたパターン（Ｐ‐ＭＳＥ）を使用してもよい。
【００６０】
2014239497.tif 000005
【００６１】
Ｐ‐ＳＡＤの場合と同様、メトリックの計算には、選択されたピクセルの特徴のみが使用される。必要であれば、例えば、デシベルのようなメトリックの決定に、他の関数を使用することもできる。また、ピクセルバジットで規定されるピクセルの数よりも僅かに多いピクセル数の使用がユーザーに許容される場合には、床関数の替わりに、天井関数をｎｏ＿ｇｒｏｕｐ（図５参照）の決定に使用してもよい。別の実施形態では、所望の機能を達成するよう、図４ｃに示されたものとは異なるユニットを改良されたメトリック決定モジュール２１４ｂで使用してもよい。さらに、このようなユニットを、１つのコンピュータで実行してもよいし、複数のコンピュータ間に分配して実行してもよい。
【００６２】
また、本発明の実施形態に係る方法の段階を実行する命令を記憶するコンピュータメモリ、ＤＶＤ、ＣＤ−ＲＯＭ、フロッピー（登録商標）ディスク等のコンピュータ可読媒体が提供される。
【００６３】
必要に応じて、様々な変形例が考えられる。記載されたシステムの特徴の範囲内で、ここに特に記載された以外の態様でも発明を実行することができる。
【００６４】
本発明の特定の実施形態が詳細に記載されたが、記載された実施形態は、本発明を例示するために示したものであり、限定することを意図していない。本発明の広範な側面における範囲を逸脱することなく、添付の図及び明細書に示された実施形態について、様々な変更及び改良が可能である。
【図１】
2014239497.tif 000006
【図２】
2014239497.tif 000007
【図３】
2014239497.tif 000008
【図４ａ】
2014239497.tif 000009
【図４ｂ】
2014239497.tif 000010
【図４ｃ】
2014239497.tif 000011
【図５】
2014239497.tif 000012
【図６】
2014239497.tif 000013
【図７】
2014239497.tif 000014
【手続補正書】
【提出日】平成26年7月28日(2014.7.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数のフレームを含むシーンの動き補償ビデオ符号化における動き推定に使用されるメトリックを決定する方法であって、
参照フレームに含まれる第１画像ブロックと現在フレームに含まれる第２画像ブロックとを比較し、少なくとも１つの単一命令複数データ（ＳＩＭＤ）プロセッサを用いて前記メトリックを決定する段階を備え、
（ａ）前記第１画像ブロックおよび前記第２画像ブロックと同一の行数および列数を有し、前記第１画像ブロックおよび前記第２画像ブロックにおいて選択されるべきピクセルサブセットを特定するパターン行列を生成する段階と、
（ｂ）前記ピクセルサブセットを連続した複数のピクセルの複数のグループに分割する段階であって、連続した複数のピクセルの各グループは、１つの行に二またはそれよりも多くのピクセルの連続した配列を含み、連続した複数のピクセルの前記各グループにおけるピクセルの数は、前記ＳＩＭＤプロセッサの単一命令で動作できるように選択される段階と、
（ｃ）ブロックをカバーする範囲が最大となるように、前記第１画像ブロックおよび前記第２画像ブロックにおいて、連続した複数のピクセルの前記複数のグループの位置を選択する段階であって、
隣接する任意の２つのグループ間の垂直方向の距離が実質的に等しく、
隣接する任意の２つのグループ間の水平方向の距離も実質的に等しい段階と、
（ｄ）前記第１画像ブロックおよび前記第２画像ブロックに対し、前記ピクセルサブセットにおける複数のピクセルの特徴を取得する段階と、
（ｅ）前記取得された特徴に基づいて、前記メトリックを決定する段階と
を備える方法。
【請求項２】
前記段階（ａ）は、予め定められた固定値であるピクセルバジェットに基づいて、前記パターン行列を生成する段階をさらに有する請求項１に記載の方法。
【請求項３】
前記パターン行列を生成する段階は、動き補償を行う前に生成される複数のパターン行列のリポジトリから前記パターン行列を選択する段階をさらに有し、前記リポジトリのパターン行列それぞれは、前記ＳＩＭＤプロセッサアーキテクチャに対応している請求項１または２に記載の方法。
【請求項４】
複数のパターン行列の前記リポジトリにおける各パターン行列について、
前記パターン行列の複数のセルにブール値を記憶する段階であって、各セルは前記第１画像ブロックおよび前記第２画像ブロックにおいて同じ位置に位置する複数のピクセルにそれぞれ対応する段階と、
前記第１画像ブロックおよび前記第２画像ブロックの前記複数のピクセルが前記メトリックの計算に含まれることに対応する"真"又は"偽"の前記ブール値の一方を前記パターン行列の前記複数のセルに記憶し、前記第１画像ブロックおよび前記第２画像ブロックの前記複数のピクセルが前記メトリックの前記計算から除外されることに対応する"真"又は"偽"の前記ブール値の他方を前記パターン行列の前記複数のセルに記憶する段階とをさらに備える請求項３に記載の方法。
【請求項５】
前記段階（ｄ）は、
輝度値である前記特徴を取得する段階と、
前記第１画像ブロックの複数のピクセルの輝度値を、第１行列の複数のセルに記憶する段階と、
前記第２画像ブロックの複数のピクセルの輝度値を、第２行列の複数のセルに記憶する段階とを有する請求項１から請求項４のいずれか一項に記載の方法。
【請求項６】
前記段階（ｅ）は、前記ピクセルサブセットにおける前記取得された複数のピクセルの特徴に、差分絶対値和関数又は平均自乗誤差関数のいずれか一方を適用する段階を有する請求項１から請求項５のいずれか１項に記載の方法。
【請求項７】
複数のフレームを含むシーンの動き補償ビデオ符号化における動き推定に使用されるメトリックを決定するためのシステムであって、
参照フレームに含まれる第１画像ブロックと現在フレームに含まれる第２画像ブロックとの間の差分を表す前記メトリックを決定する手段を備え、
（ａ）前記第１画像ブロックおよび前記第２画像ブロックと同一の行数および列数を有し、前記第１画像ブロックおよび前記第２画像ブロックにおけるピクセルサブセットを選択するためのパターン行列を提供する手段であって、
前記ピクセルサブセットは連続した複数のピクセルの複数のグループに分割され、前記複数のグループのそれぞれは、１つの行に二またはそれよりも多くのピクセルを含み、前記複数のグループのそれぞれにおけるピクセルの数は、単一命令複数データ（ＳＩＭＤ）プロセッサの単一命令で動作できるように選択され、
ブロックをカバーする範囲が最大となるように、前記第１画像ブロックおよび前記第２画像ブロックにおいて、連続した複数のピクセルの前記複数のグループの位置が選択され、
隣接する任意の２つのグループ間の垂直方向の距離が実質的に等しく、
隣接する任意の２つのグループ間の水平方向の距離も実質的に等しい手段と、
（ｂ）前記第１画像ブロックおよび前記第２画像ブロックに対し、前記ピクセルサブセットにおける複数のピクセルについて、前記メトリックの決定に適した特徴を読み出す手段と、
（ｃ）前記読み出された特徴を処理し、前記メトリックを決定する手段とを備えるシステム。
【請求項８】
前記提供する手段は、前記ＳＩＭＤプロセッサアーキテクチャに対応する前記パターン行列を生成する行列決定ユニットをさらに有する請求項７に記載のシステム。
【請求項９】
前記行列決定ユニットは、予め定められた固定値であるピクセルバジェットに基づいて前記パターン行列を生成するようにさらに構成される請求項８に記載のシステム。
【請求項１０】
前記提供する手段は、
一連の所定の複数のパターン行列を記憶するパターン行列リポジトリと、
前記パターン行列リポジトリから前記パターン行列を選択するパターン行列選択ユニットとをさらに有し、
前記パターン行列リポジトリのパターン行列はそれぞれ、前記動き補償ビデオ符号化に使用される前記ＳＩＭＤプロセッサアーキテクチャに対応している請求項７から請求項９のいずれか１項に記載のシステム。
【請求項１１】
前記処理する手段は、差分絶対値和関数又は平均自乗誤差関数を前記ピクセルサブセットの前記読み出された特徴の値に適用するよう構成される請求項７から１０のいずれか一項に記載のシステム。
【請求項１２】
コンピュータに、請求項１から請求項６のいずれか一項に記載の方法の段階を実行させるためのプログラム。