(57)【特許請求の範囲】
【請求項１】
現在のピクチャにおいて符号化されるターゲットブロックの候補となる動きベクトルを決定する段階と、
それぞれの候補となる動きベクトルについて、関連する画素の位置を最も近い整数の画素に丸めて、丸められた候補となる動きベクトルを生成する段階と、
最も低い関連される絶対差分の合計（SAD）を有する、丸められた候補となる動きベクトルを決定する段階とを含む方法であって、
当該方法は、ビデオデコーダにおける適切にプログラムされたプロセッサにより実行され、
最も低いSADを持つ丸められた候補の周りの定義された範囲においてサーチを行い、前記定義された範囲において最も低いSADをもつ整数の動きベクトルを発見する段階を更に含む、
方法。
【請求項２】
決定された最も低いSADをもつ丸められた候補となる動きベクトルを、ビデオ伸張のための最終的に導出された動きベクトルとして使用する段階を更に含む、請求項１記載の方法。
【請求項３】
前記最も低いSADをもつ丸められた候補となる動きベクトルに対応する候補となるMVを、ビデオ伸張のための最終的に導出された動きベクトルとして使用する段階を更に含む、請求項１記載の方法。
【請求項４】
前記定義された範囲において最も低いSADをもつ整数の動きベクトルを、ビデオ伸張のための最終的に導出された動きベクトルとして使用する段階を更に含む、請求項１記載の方法。
【請求項５】
前記最も低いSADをもつ丸められた候補となる動きベクトルと、前記定義された範囲において前記最も低いSADをもつ整数の動きベクトルとの間で、中央の位置の整数の動きベクトルを決定する段階と、
決定された中央の位置の整数の動きベクトルを、ビデオ伸張のための最終的に導出された動きベクトルとして使用する段階と、
を更に含む請求項１記載の方法。
【請求項６】
前記候補となる動きベクトルは、前記ターゲットブロックに空間的に隣接する符号化されたブロックの動きベクトルから導出される、請求項１記載の方法。
【請求項７】
前記候補となる動きベクトルは、前記ターゲットブロックに時間的に隣接する符号化されたブロックの動きベクトルから導出される、請求項１記載の方法。
【請求項８】
プロセッサと、
前記プロセッサと結合されるメモリとを備えるシステムであって、
前記メモリは、
現在のピクチャにおいて符号化されるターゲットブロックの候補となる動きベクトルを決定し、
それぞれの候補となる動きベクトルについて、関連する画素の位置を最も近い整数の画素に丸めて、丸められた候補となる動きベクトルを生成し、
最も低い関連される絶対差分の合計（SAD）を有する、丸められた候補となる動きベクトルを決定する、
ように前記プロセッサに指示する複数の処理命令を記憶し、
前記メモリは、最も低いSADをもつ丸められた候補の周りの定義された範囲においてサーチを行い、前記定義された範囲において最も低いSADをもつ整数の動きベクトルを発見するように前記プロセッサに指示する処理命令を更に記憶する、
システム。
【請求項９】
前記メモリは、
決定された最も低いSADをもつ丸められた候補となる動きベクトルを、ビデオ伸張のための最終的に導出された動きベクトルとして使用する、
ように前記プロセッサに指示する処理命令を更に記憶する、
請求項８記載のシステム。
【請求項１０】
前記メモリは、
前記最も低いSADをもつ丸められた候補となる動きベクトルに対応する候補となるMVを、ビデオ伸張のための最終的に導出された動きベクトルとして使用する、
ように前記プロセッサに指示する処理命令を更に記憶する、
請求項８記載のシステム。
【請求項１１】
前記メモリは、
前記定義された範囲において最も低いSADをもつ整数の動きベクトルを、ビデオ伸張のための最終的に導出された動きベクトルとして使用する、
ように前記プロセッサに指示する処理命令を更に記憶する、
請求項８記載のシステム。
【請求項１２】
メモリは、
前記最も低いSADをもつ丸められた候補となる動きベクトルと、前記定義された範囲において前記最も低いSADをもつ整数の動きベクトルとの間で、中央の位置の整数の動きベクトルを決定し、
決定された中央の位置の整数の動きベクトルを、ビデオ伸張のための最終的に導出された動きベクトルとして使用する、
ように前記プロセッサに指示する処理命令を更に記憶する、
請求項８記載のシステム。
【請求項１３】
前記候補となる動きベクトルは、前記ターゲットブロックに空間的に隣接する符号化されたブロックの動きベクトルから導出される、請求項８記載のシステム。
【請求項１４】
前記候補となる動きベクトルは、前記ターゲットブロックに時間的に隣接する符号化されたブロックの動きベクトルから導出される、請求項８記載のシステム。
【請求項１５】
コンピュータプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記コンピュータプログラムは、プロセッサに、
現在のピクチャにおいて符号化されるターゲットブロックの候補となる動きベクトルを決定する段階と、
それぞれの候補となる動きベクトルについて、関連する画素の位置を最も近い整数の画素に丸めて、丸められた候補となる動きベクトルを生成する段階と、
最も低い関連される絶対差分の合計（SAD）を有する、丸められた候補となる動きベクトルを決定する段階と、
を含む方法を実行させるための命令を含み、
前記命令は、前記プロセッサに、
最も低いSADを持つ丸められた候補の周りの定義された範囲においてサーチを行い、前記定義された範囲において最も低いSADをもつ整数の動きベクトルを発見する段階を実行させる命令を更に含む、
コンピュータ読み取り可能な記録媒体。
【請求項１６】
前記命令は、前記プロセッサに、
決定された最も低いSADをもつ丸められた候補となる動きベクトルを、ビデオ伸張のための最終的に導出された動きベクトルとして使用する段階を実行させる命令を更に含む、
請求項１５記載のコンピュータ読み取り可能な記録媒体。
【請求項１７】
前記命令は、前記プロセッサに、
前記最も低いSADをもつ丸められた候補となる動きベクトルに対応する候補となるMVを、ビデオ伸張のための最終的に導出された動きベクトルとして使用する段階を実行させる命令を更に含む、
請求項１５記載のコンピュータ読み取り可能な記録媒体。
【請求項１８】
前記命令は、前記プロセッサに、
前記定義された範囲において最も低いSADをもつ整数の動きベクトルを、ビデオ伸張のための最終的に導出された動きベクトルとして使用する段階を実行させる命令を更に含む、
請求項１５記載のコンピュータ読み取り可能な記録媒体。
【請求項１９】
前記命令は、前記プロセッサに、
前記最も低いSADをもつ丸められた候補となる動きベクトルと、前記定義された範囲において前記最も低いSADをもつ整数の動きベクトルとの間で、中央の位置の整数の動きベクトルを決定する段階と、
決定された中央の位置の整数の動きベクトルを、ビデオ伸張のための最終的に導出された動きベクトルとして使用する段階と、
を実行させる命令を更に含む請求項１５記載のコンピュータ読み取り可能な記録媒体。
【請求項２０】
前記候補となる動きベクトルは、前記ターゲットブロックに空間的に隣接する符号化されたブロックの動きベクトルから導出される、請求項１５記載のコンピュータ読み取り可能な記録媒体。
【請求項２１】
前記候補となる動きベクトルは、前記ターゲットブロックに時間的に隣接する符号化されたブロックの動きベクトルから導出される、請求項１５記載のコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、低複雑度の動きベクトルを導出するシステム及び方法に関する。
本出願は、2010年10月6日に出願された米国特許仮出願第61/390,461号の利益を特許請求するものであり、その内容は、引用によりその完全な形で本明細書に盛り込まれる。
また、本出願は、以下の特許文献に関連する。
2010年1月14日に出願された米国特許出願第12/657,168号，
2009年9月25日に出願された米国特許出願第12/567,540号，
2009年9月25日に出願された米国特許出願第12/566,823号，
2009年10月20日に出願された米国特許出願第12/582,061号，及び
2010年7月15日に出願された米国特許出願第61/364,565号。
【背景技術】
【０００２】
従来の映像符号化システムでは、動き予測（ME）がエンコーダで行われ、現在の符号化ブロックについて動きの予測のための動きベクトルが取得される。次いで、動きベクトルは、バイナリストリームに符号化され、デコーダに送信される。これにより、デコーダは、現在の復号化ブロックについて動き補償を実行することができる。例えばH.264/AVCといった幾つかの高度な映像符号化規格では、マクロブロック（MB）は符号化のために小さなブロックに分割され、それぞれ小分割されたブロックに動きベクトルが割り当てられる。結果として、MBが4×4ブロックに分割される場合、予測符号化MBについて最大で16個の動きベクトルが存在し、双方向予測符号化MBについて最大で32個の動きベクトルが存在することになり、これは、著しいオーバヘッドになる場合がある。動き符号化ブロックが非常に強い時間的及び空間的相関を執することを考慮して、動き予測は、再構成された参照ピクチャ又は再構成された空間的に隣接するブロックに基づいてデコーダ側で実行される。これは、エンコーダから動きベクトルを受信する代わりに、現在のブロックについて動きベクトル自身をデコーダに導出させる。このデコーダ側の動きベクトルの導出（DMVD:  Decoder-side  Motion  Vector  Derivation）方法は、デコーダの計算上の複雑度を増加させるが、帯域幅を節約することで、既存のビデオコーデックシステムの効率を改善することができる。
【特許文献１】CN1450809A
【特許文献２】US20030063671A1
【特許文献３】EP1981281A2
【発明の概要】
【発明が解決しようとする課題】
【０００３】
デコーダ側での動き予測は、サーチウィンドウにおける可能性のある動きベクトルの候補の間でサーチを行うことを必要とする場合がある。このサーチは、包括的なサーチであるか、又は高速サーチアルゴリズムに依存する場合がある。高速サーチアルゴリズムは使用される場合でさえ、最良の候補が発見される前に、かなりの数の候補が評価される必要がある。これは、デコーダ側での処理において非効率さを表す。シミュレーション結果は、候補に基づくDMDVが使用される場合でさえ、DMDVの複雑度はデコーダ側でなお非常に高いことを示す。
【図面の簡単な説明】
【０００４】
【図１】実施の形態に係るビデオエンコーダシステムのブロック図である。
【図２】実施の形態に係るビデオデコーダシステムのブロック図である。
【図３】実施の形態に係るデコーダでのミラー動き予測（ME）を例示する図である。
【図４】実施の形態に係るデコーダでの投影MEを例示する図である。
【図５】実施の形態に係るデコーダでの空間的に隣接するブロックMEを例示するブロック図である。
【図６】実施の形態に係るデコーダで時間的に同一場所に位置するブロックMEを例示する図である。
【図７】実施の形態に係る動きベクトル予測の空間的に隣接するブロックを例示する図である。
【図８】実施の形態に係る画素補間の使用を例示するフローチャートである。
【図９】実施の形態に係る動きベクトルの導出を例示するフローチャートである。
【図１０】更なる実施の形態に係る動きベクトルの導出を例示するフローチャートである。
【図１１】更なる実施の形態に係る動きベクトルの導出を例示するフローチャートである。
【図１２】更なる実施の形態に係る動きベクトルの導出を例示するフローチャートである。
【図１３】ソフトウェア又はファームウェアのコンピューティング環境を例示するブロック図である。
【発明を実施するための形態】
【０００５】
以下、添付図面を参照して本発明の実施の形態が記載される。特定のコンフィギュレーション及びアレンジメントが説明されるが、これは例示を目的として行われていることを理解されたい。当業者であれば、本発明の精神及び範囲から逸脱することなしに、他のコンフィギュレーション及びアレンジメントを使用することができることを認識されるであろう。また、これは、本明細書で記載される以外のさまざまな他のシステム及びアプリケーションで採用することができることは、当業者にとって明らかであろう。
【０００６】
本明細書で開示されるものは、映像圧縮／伸張システムにおいて、デコーダでの処理を向上する方法及びシステムである。
【０００７】
本明細書で開示される向上された処理は、映像圧縮及び伸張をそれぞれ実現するビデオエンコーダ／デコーダシステムの環境で行われる場合がある。図１は、自己MV導出モジュール１４０を含む例示的なH.264ビデオエンコーダアーキテクチャ１００を例示する。H,264は、ビデオコーデックアーキテクチャである。現在のビデオ情報は、複数のフレームの形式で現在のビデオブロック１１０から供給される。現在のビデオは、差分ユニット１１１に通過される。差分ユニット１１１は、差分パルスコード変調（DPCM:  Differential  Pulse  Code  Modulation）（コアビデオエンコーディングとも呼ぶ）ループの一部であり、このループは、動き補償ステージ１２２及び動き予測ステージ１１８を含む。また、このループは、イントラ予測ステージ１２０及びイントラ補間ステージ１２４を含む幾つかのケースでは、このループにおいて、インループ・デブロッキングフィルタ１２６が使用される場合がある。
【０００８】
現在のビデオは、差分ユニット１１１及び動き予測ステージ１１８に供給される。動き補償ステージ１２２又はイントラ補間ステージ１２４は、残差を生成するために現在のビデオ１１０から減算される出力を（スイッチ１２３を介して）生成する。次いで、残差は、変換／量子化ステージ１１２で変換及び量子化され、ブロック１１４におけるエントロピー符号化に向けられる。ブロック１１６で、チャネル出力が得られる。
【０００９】
動き補償ステージ１２２又はイントラ補間ステージ１２４の出力は、加算器１３３に供給され、この加算器は、逆量子化ユニット１３０及び逆変換ユニット１３２からの入力を受ける。後者の２つのユニットは、変換／量子化ステージ１１２の変換及び量子化を元に戻す。逆変換ユニット１３２は、逆量子化及び逆変換された情報をループに供給する。
【００１０】
自己MV導出モジュール１４０は、前に復号化された画素から動きベクトルの導出の処理を実現する。自己MV導出モジュール１４０は、インループ・デブロッキングフィルタ１２６の出力を受け、出力を動き補償ステージ１２２に供給する。
【００１１】
図２は、自己MV導出モジュール２１０をもつH.264ビデオデコーダ２００を例示する。ここで、図１のエンコーダ１００に関連するデコーダ２００は、エントロピー復号化ユニット２４０に結合されるチャネル入力２３８を含む。復号化ユニット２４０からの出力は、逆量子化ユニット２４２及び逆変換ユニット２４４に供給され、自己MV導出モジュール２１０に供給される。自己MV導出モジュール２１０は、動き補償ユニット２４８に結合される。また、エントロピー復号化ユニット２４０の出力は、イントラ補間ユニット２５２に供給され、このイントラ補間ユニットは、セレクタスイッチ２２３に供給する。
【００１２】
逆変換ユニット２４４からの情報、及び、スイッチ２２３により選択されたときに動き補償ユニット２４８又はイントラ補間ユニット２５４の何れかからの情報は、加算され、インループ・デブロッキングユニット２４６に供給され、イントラ補間ユニット２５４に供給される。
【００１３】
エンコーダでの自己MV導出モジュールは、ビデオデコーダ側と同期する。自己MV導出モジュールは、一般的なビデオコーデックアーキテクチャに代替的に適用され、H.264コーディングアーキテクチャに限定されない。
【００１４】
上述されたエンコーダ及びデコーダ、並びに上述されたエンコーダ及びデコーダにより実効される処理は、ハードウェア、ファームウェア、又はソフトウェア、或いはこれらの組み合わせで実現される場合がある。さらに、本明細書で開示される１以上の機能は、ディスクリート回路及び集積回路ロジック、特定用途向け集積回路（ASIC）ロジック、及びマイクロコントローラを含めて、ハードウェア、ソフトウェア、ファームウェア、及びこれらの組み合わせで実現され、ドメインに固有の集積回路パッケージの一部として、又は集積回路パッケージの組み合わせとして実現される場合がある。本明細書で使用されるとき、用語「ソフトウェア」は、コンピュータシステムに、本明細書で開示された１以上の機能及び／又は機能の組み合わせを実行させるため、コンピュータ読み取り可能な記録媒体に記憶されるコンピュータプログラムロジックを含むコンピュータ読み取り可能な記録媒体を含むコンピュータプログラムプロダクトを示す。
【００１５】
デコーダ側の動き予測（ME）は、現在の符号化ブロックの動きがその空間的な隣接するブロックの動き、及び参照ピクチャにおけるその時間的に隣接するブロックの動きと強い相関を有するという想定に基づく場合がある。図３〜図６は、異なる種類の相関を採用した異なるデコーダ側のME方法を示す。
【００１６】
図３におけるミラーME及び図４における投影MEは、時間的な動きの相関を採用することで、２つの参照フレーム間で実行される。図３の実施の形態では、前方参照フレーム３２０と後方参照フレーム３３０との間で、２つの双予測（bi-predictive）フレーム（Bフレーム）３１０及び３１５が存在する。フレーム３１０は、現在の符号化フレームである。現在のブロック３４０を符号化するとき、ミラーMEが実行され、参照フレーム３２０及び３３０のそれぞれにおけるサーチウィンドウ３６０及び３７０においてサーチを実行することで、動きベクトルが取得される。上述されたように、現在の入力ブロックがデコーダで利用可能でない場合、ミラーMEが２つの参照フレームにより実行される。
【００１７】
図４は、（参照フレーム４２０として示される）前方向（FW）Ref0及び（参照フレーム４３０として示される）FW  Ref1である２つの前方参照フレームを使用する例示的な投影MEプロセス４００を示す。これらの参照フレームは、（フレーム４１０として示される）現在のフレームＰにおける現在のターゲットブロック４４０の動きベクトルを導出するために使用される。サーチウィンドウ４７０は、参照フレーム４２０において特定され、サーチパスは、サーチウィンドウ４７０において特定される。サーチパスにおけるそれぞれの動きベクトルMV0について、その投影動きベクトルMV1は、参照フレーム４３０のサーチウィンドウ４６０において決定される。動きベクトルMV0とその関連する動きベクトルMV1のそれぞれのペアについて、（１）参照フレーム４２０においてMV0により示される参照ブロック４８０と（２）参照フレーム４３０においてMV1により示される参照ブロック４５０との間で、絶対差分値（SAD）の合計のようなメトリックが計算される。例えば最小のSADのようなメトリックの最適な値を生じさせる動きベクトルMV0が、ターゲットブロック４４０の動きベクトルとして選択される。
【００１８】
現在のブロックの出力動きベクトルの精度を改善するため、幾つかの実現は、デコーダ側のMEの測定メトリックにおける空間的に隣接する再構成された画素を含む。図５において、デコーダ側のMEは、空間的な動きの相関を利用することで、空間的に隣接するブロックで実行される。図５は、現在のピクチャ（又はフレーム）５１０において（ターゲットブロック５３０の上及び左にあるブロックとして示される）１以上の隣接するブロック５４０を利用する実施の形態５００を示す。これは、前の参照フレーム５２０及び後続する参照フレーム５６０のそれぞれにおける１以上の対応するブロック５５０及び５５５に基づいて、動きベクトルの生成を可能にする。ここで、用語「前“previous”」及び「後続の“subsequent”」は、時間的な順序を示す。次いで、動きベクトルは、ターゲットブロック５３０に適用される。実施の形態では、ターゲットブロックの上、左、上及び左、上及び右、にある空間的に隣接するブロックを決定するため、ラスタスキャンの符号化順序が使用される。このアプローチは、Bフレームについて使用され、復号化のために先行するフレーム及び後続するフレームの両者を使用する。
【００１９】
図５により例示されるアプローチは、隣接するブロックがシーケンシャルスキャンの符号化順序でターゲットブロックの前に復号化される限り、現在のフレームにおける空間的に隣接するブロックの利用可能な画素に適用される場合がある。さらに、このアプローチは、現在のフレームについて、参照フレームリストにおける参照フレームに関して動きサーチを適用する場合がある。
【００２０】
図５により例示されるアプローチは、空間的に隣接しているブロックがシーケンシャルスキャンの符号化順序においてターゲットブロックの前に符号化される限り、現在のフレームにおいて空間的に隣接しているブロックの利用可能な画素に適用される場合がある。
さらに、このアプローチは、現在のフレームの参照フレームリストにおける参照フレームに関して動きサーチを適用する場合がある。
【００２１】
図５の実施の形態の処理は、以下のように行われる。１以上の画素ブロックは、現在のフレームにおいて識別され、識別されたブロックは、現在のフレームのターゲットブロックに隣接する。識別されたブロックの動きサーチは、時間的に後続する参照フレームにおける対応するブロック、及び前の参照フレームにおける対応するブロックに基づいて実行される。動きサーチにより、識別されたブロックの動きベクトルが得られる。代替的に、隣接するブロックの動きベクトルは、それらのブロックの識別の前に決定される。次いで、動きベクトルは、ターゲットブロックの動きベクトルを導出するために使用され、次いで、この動きベクトルは、ターゲットブロックの動き補償のために使用される。この導出は、当業者にとって知られている適切なプロセスを使用して実行される。係るプロセスは、例えば限定されるものではないが、加重平均又はメディアンフィルタリングである場合がある。
【００２２】
現在のピクチャがリファレンスバッファにおいて後方参照ピクチャ及び前方参照ピクチャの両者を有する場合、ピクチャレベル及びブロックレベルの適応サーチレンジベクトルを取得するため、ミラーMEについて使用されたのと同じ方法が使用される。さもなければ、前方参照ピクチャのみが利用される場合、ピクチャレベル及びブロックレベルの適応サーチレンジを取得するため、投影MEについて上述された方法が使用される。
【００２３】
時間的な順序において、前及び続いて起こる再構成されたフレームの対応するブロックは、動きベクトルを導出するために使用される。このアプローチは、図６で例示されている。現在のフレーム６１０におけるターゲットブロック６３０を符号化するため、既にデコードされた画素が使用され、この場合、これらの画素は、フレーム６１５として示される前のピクチャの対応するブロック６４０、ピクチャ６５５として示される次のフレームの対応するブロック６６５において発見される。第一の動きベクトルは、参照フレーム、ピクチャ６２０の１以上のブロック６５０を通して動きサーチを行うことで、対応するブロック６４０について導出される。ブロック６５０は、前のピクチャ６１５のブロック６４０に対応する参照フレーム６２０におけるブロックに隣接する。第二の動きベクトルは、参照ピクチャ、すなわちフレーム６６０の１以上のブロック６７０を通して動きサーチを行うことで、次のフレーム６５５の対応するブロック６６５について導出される。ブロック６７０は、次のフレーム６５５のブロック６６５に対応する参照ピクチャ６６０におけるブロックに隣接する。第一及び第二の動きベクトルに基づいて、ターゲットブロック６３０の前方及び／又は後方の動きベクトルが決定される。次いで、これら後者の動きベクトルは、ターゲットブロックの動き補償のために使用される。
【００２４】
係る状況のME処理は、以下の通りである。はじめに、ブロックは、前のフレームにおいて識別され、この場合、この識別されたブロックは、現在のフレームのターゲットブロックに対応する。第一の動きベクトルは、前のフレームのこの識別されたブロックについて決定され、この場合、第一の動きベクトルは、第一の参照フレームの対応するブロックに関して定義される。ブロックは、続いて起こるフレームにおいて識別され、この場合、このブロックは、現在のフレームのターゲットブロックに対応する。第二の動きベクトルは、続いて起こるフレームのこの識別されたブロックについて決定され、この場合、第二の動きベクトルは、第二の参照フレームの対応するブロックに関して定義される。それぞれ第一及び第二の動きベクトルを使用して、ターゲットブロックについて、１又は２の動きベクトルが決定される。類似の処理がデコーダで行われる場合がある。
【００２５】
現在のピクチャを符号化／復号化するとき、前のフレーム６１５と参照フレーム６２０との間のブロック動きベクトルが利用可能な場合がある。これらの動きベクトルを使用して、投影MEについて上述されたやり方で、ピクチャレベルの適応サーチレンジを決定することができる。ミラーMEのケースにおけるように、ブロックレベルの適応サーチレンジを導出するため、対応するブロックの動きベクトル及び対応するブロックに空間的に隣接するブロックの動きベクトルを使用することができる。
【００２６】
候補に基づくMEは、デコーダ側でMEの複雑度を低減するために実行することができ、エンコーダ及びデコーダは、ミスマッチを回避するために同じ候補を使用するべきである。候補となる動きベクトルは、ゼロMV及び符号化された空間的に隣接しているブロック及び符号化された時間的に隣接しているブロックの動きベクトルから導出されたMVとすることができる。例えば、図７に示されるように、空間的に隣接しているブロックA-EのMVは、これらが利用可能である場合に候補として使用することができ、ブロックA-Eのメディアンフィルタリングが施されたMVを候補として使用することもできる。より正確なMVを取得するため、候補となる動きベクトルは、それらの周りで小範囲の動きサーチを行うことでリファインすることができ、エンコーダ及びデコーダは、同じリファインスキームを使用すべきである。次いで、リファインメントが適用される。例えば、全ての候補となる動きベクトルがチェックされる。最小の絶対差分の合計（SAD:  Sum  of  Absolute  Differences）をもつ候補となる動きベクトルが選択される。次いで、小範囲の動きサーチは、最終的な動きベクトルを決定するため、この最良の候補の周りで実行される。代替的に、小範囲の動きサーチは、それぞれの候補となる動きベクトルの周りで実行される。これは、対応するリファインされた候補のセットに繋がる。次いで、参照のSADを有するリファインされた候補は、最終的な動きベクトルとして使用される。
【００２７】
候補に基づくDMVDについて更なるバリエーションが存在する。実施の形態では、全ての候補となる動きベクトルがチェックされ、最小のSADをもつ候補となる動きベクトルが最終的に導出されるMVとして使用される。このように、後続するリファインプロセスが実行されない場合がある。結果として得られる動きベクトルは、フラクショナルピクセル（fractional  pixel）を示す場合があり、画素の補間は、SADを計算するための画素の値を生成することが必要とされる。これは、図８に例示される。ステップ８１０で、候補となる動きベクトルのグループが決定される。ステップ８２０で、最小のSADを有する候補が選択される。選択された候補となる動きベクトルがフラクショナルピクセルを示すかに関して判定が行われる。選択された候補となる動きベクトルがフラクショナルピクセルを示す場合、ステップ８４０で、画素の補間が行われる。
【００２８】
画素の補間の複雑度は、実施の形態において回避され、この場合、候補となる動きベクトルは、それらを最も近い整数の画素（whole  pixel）に丸めることで、整数の画素の位置に強制することである。次いで、丸められた候補となる動きベクトルがチェックされ、最小のSADをもつ動きベクトルが最終的に導出されたMVとして使用される。このように、画素の補間は、必要ではなく、復号化の複雑度を低減することができる。これは、実施の形態に従って、図９において例示されている。ステップ９１０で、候補となる動きベクトルが決定される。ステップ９２０で、これらの候補となる動きベクトルにより識別された画素は、最も近い整数の画素に丸められる。係る画素は、フラクショナルピクセルの丸めから生じた場合に、整数の画素として見られる場合がある。結果として得られる動きベクトルは、丸められた候補となる動きベクトルとして記載される。ステップ９３０で、最も低いSADを有する丸められた候補となる動きベクトルが決定される。ステップ９４０で、この最も低いSADの丸められた候補となる動きベクトルは、最終的に導出された動きベクトルとして使用される。
【００２９】
代替的な実施の形態では、候補となる動きベクトルは、それらを最も近い整数の画素に丸めることで、整数の画素の位置に強制される場合がある。次いで、全ての丸められた動きベクトルがチェックされ、最良の（すなわち最も低い）SADを有する丸められた候補となる動きベクトルが識別される。この最小の丸められた候補となるMVに対応するオリジナルの丸められていないMVは、最終的に導出されたMVとして使用される。この代替は、MEの複雑度を増加せず、より高いMVの精度を提供する。係る実施の形態は、図１０に例示されている。ステップ１０１０で、候補となる動きベクトルが決定される。ステップ１０２０で、候補となる動きベクトルに対応する画素は、最も近い整数の画素に丸められ、結果として丸められた候補となる動きベクトルが得られる。ステップ１０３０で、最も低いSADを有する丸められた候補となる動きベクトルが決定される。ステップ１０４０で、最も低いSADの丸められた候補となる動きベクトルに対応するオリジナルの丸められていない候補となる動きベクトルは、最終的に導出された動きベクトルとして使用される。
【００３０】
別の代替として、最小の丸められた候補を識別した後、最良の丸められた候補の周りの小範囲の整数の画素のリファインメントMEが行われる。このサーチから得られる最良のリファインされた整数のMVは、最終的に導出されたMVとして使用される。リファインメントMEは整数の画素に行われるので、補間処理が必要とされず、復号化の複雑度の増加は、大きな影響を及ぼすものではない。係る実施の形態は、図１１に例示される。ステップ１１１０で、候補となる動きベクトルが決定される。ステップ１１２０で、候補となる動きベクトルに対応する画素は、最も近い整数の画素に丸められ、結果として丸められた候補となる動きベクトルが得られる。ステップ１１３０で、最も低いSADを有する丸められた候補となる動きベクトルが決定される。ステップ１１４０で、最も低いSADの丸められた候補の周りで定義された小範囲においてサーチが行われる。ステップ１１５０で、このサーチレンジにおいて、最小のSADをもつ整数の動きベクトルが決定される。ステップ１１６０で、この決定された整数の動きベクトルは、最終的に導出された動きベクトルとして使用される。
【００３１】
代替的な実施の形態では、小範囲の整数の画素のリファインメントMEを実行し、前の実施の形態で述べたように最良のリファインされた整数のMVを取得した後、例えば中央位置といった、最良のリファインされた整数のMVと最良の丸められた候補との間で、中間的な位置が使用される場合がある。次いで、この中間位置に対応するベクトルは、最終的に導出されたMVとして使用される。この実施の形態は、MEの複雑度を増加しないが、改善された精度を提供することができる。
【００３２】
この実施の形態は、図１２に例示される。ステップ１２１０で、候補となる動きベクトルが決定される。ステップ１２２０で、候補となる動きベクトルに対応する画素は、最も近い整数の画素に丸められ、結果として丸められた候補となる動きベクトルが得られる。ステップ１２３０で、最も低いSADを有する丸められた候補となる動きベクトルが決定される。ステップ１２４０で、最も低いSADの丸められた候補の周りで定義された小範囲においてサーチが行われる。ステップ１２５０で、このサーチレンジにおいて、最小のSADをもつ整数の動きベクトルが決定される。ステップ１２６０で、最も低いSADをもつ丸められた候補と、ステップ１２５０で識別された、サーチレンジで最も低いSADをもつ整数の動きベクトルとの間で、中央位置の整数の動きベクトルが決定される。この中央位置の整数の動きベクトルは、実施の形態において、２つの平均に最も近い整数の動きベクトルである場合がある。代替的に、中央位置の動きベクトルは、最も低いSADの丸められた候補と、サーチレンジにおいて最も低いSADをもつ整数の動きベクトルとの平均であり、この場合、この中央位置の動きベクトルは、フラクショナルピクセルを示す。
【００３３】
本明細書で開示される１以上の機能は、ディスクリート回路及び集積回路ロジック、特定用途向け集積回路（ASIC）ロジック、マイクロコントローラを含めて、ハードウェア、ソフトウェア、ファームウェア及びこれらの組み合わせで実現され、ドメインに固有の集積回路パッケージ、又は集積回路パッケージの組み合わせの一部として実現される場合がある。用語「ソフトウェア」は、本明細書で使用されたとき、コンピュータシステムに、本明細書で開示された１以上の機能及び／又は機能の組み合わせを実行させるコンピュータプログラムロジックを記憶したコンピュータ読み取り可能な記録媒体を含むコンピュータプログラムプロダクトを示す。
【００３４】
本明細書で記載される処理のソフトウェア又はファームウェアの実施の形態は、図１３に例示される。この図では、システム１３００は、プロセッサ１３２０、及びコンピュータプログラムロジック１３４０を記憶する１以上のコンピュータ読み取り可能な記録媒体を含むメモリのボディ１３１０を含む。メモリ１３１０は、ハードディスク及びドライブ、例えばコンパクトディスク、リードオンリメモリ（ROM）又はランダムアクセスメモリ（RAM）デバイスのような取り外し可能な記録媒体、或いはこれらの幾つかの組み合わせとして実現される。プロセッサ１２０及びメモリ１３１０は、バスのような当業者にとって知られている幾つかの技術の何れかを使用して接続される。メモリ１３１０に含まれるコンピュータプログラムロジック１３４０は、プロセッサ１３２０により読み取られて実行される。I/O１３３０として集合的に示されている、１以上のI/Oポート及び／又はI/Oデバイスは、プロセッサ１３２０及びメモリ１３１０に接続される。実施の形態では、システム１３００は、ビデオエンコーダ又はデコーダに組み込まれる。
【００３５】
コンピュータプログラムロジック１３４０は、ラウンディングロジック１３５０を含む、ラウンディングロジック１３５０は、候補となるMVを取得して、最も近い整数のMVに丸める役割を果たす。また、コンピュータロジック１３４０は、小領域のサーチロジック１３６０を含み、このロジックは、その領域において最良のMVを発見するため、識別された丸められた候補となるMVの周りで局所的に集中した領域をサーチする役割を果たす。実施の形態では、最良のMVは、SADのようなメトリックに基づいて決定される。また、コンピュータロジック１３４０は、中央位置の決定ロジック１３７０を含む。このロジックのボディは、最も低いSADの丸められた候補と、サーチレンジおいて最も低いSADをもつ整数の動きベクトルとの間で、中央の位置の動きベクトルを決定する役割を果たす。代替的な実施の形態では、当業者により理解されるように、動きベクトルを導出するために使用される他のプロセスを指示するために更なるロジックモジュールが使用される場合がある。
【００３６】
機能、特徴及びそれらの関係を例示する機能的なビルディングブロックにより、本方法及びシステムが開示された。これらの機能的なビルディングブロックの境界の少なくとも幾つかは、説明の便宜のために本明細書で任意に定義された。特定された機能及びその関係が適切に行われる限りにおいて、代替的な境界が定義される場合がある。
【００３７】
本明細書において様々な実施の形態が開示されたが、これらの実施の形態は例示するものであって、限定するものではないことを理解されたい。形式及び詳細における様々な変形は本明細書で開示された方法及びシステムの精神及び範囲から逸脱することなしに行われることは、当業者にとって明らかであろう。従って、特許請求の範囲の幅及び範囲は、本明細書で開示された例示的な実施の形態の何れかにより制限されるべきではない。
【図１】
0005579937.tif 000002
【図２】
0005579937.tif 000003
【図３】
0005579937.tif 000004
【図４】
0005579937.tif 000005
【図５】
0005579937.tif 000006
【図６】
0005579937.tif 000007
【図７】
0005579937.tif 000008
【図８】
0005579937.tif 000009
【図９】
0005579937.tif 000010
【図１０】
0005579937.tif 000011
【図１１】
0005579937.tif 000012
【図１２】
0005579937.tif 000013
【図１３】
0005579937.tif 000014