(57)【特許請求の範囲】
【請求項１】
コンピューティングデバイスにおける方法であって、
ビデオのユニットに関する動きベクトル（ＭＶ）精度を決定する決定ステップを含む、前記ビデオを符号化する符号化ステップであって、前記ビデオの前記ユニット内のブロックのＭＶ値は、前記ユニットに関する前記ＭＶ精度を有し、前記決定ステップは、
小数サンプルＭＶ精度を有するＭＶ値のセットを識別するステップと、
前記ＭＶ値のセット内でのゼロである小数部分を有するＭＶ値の優勢率を測定するステップと、
測定された前記優勢率を閾値と比較するステップと、
前記比較の結果に少なくとも部分的に基づいて、前記ユニットに関する前記ＭＶ精度を選択するステップと、
を含む、符号化ステップと、
符号化された前記ビデオを出力するステップと、
を含み、
前記ＭＶ値のセットは、所定のブロックサイズ以上のブロックからのゼロ値でないＭＶのみを含むように制約される、方法。
【請求項２】
測定される前記優勢率は、ゼロである小数部分を有する前記ＭＶ値のセットの割合である、請求項１記載の方法。
【請求項３】
測定された前記優勢率が、前記閾値を超えている場合、前記ユニットに関する選択される前記ＭＶ精度は、整数サンプルＭＶ精度であり、測定された前記優勢率が、前記閾値を超えていない場合、前記ユニットに関する選択される前記ＭＶ精度は、前記小数サンプルＭＶ精度である、請求項２記載の方法。
【請求項４】
前記ユニットに関する選択された前記ＭＶ精度は、整数サンプルＭＶ精度であり、前記ユニットに関する選択された前記ＭＶ精度は、イベントが前記小数サンプルＭＶ精度に再度切り替えさせるまで、前記ビデオの後続ユニットに関しても使用され、前記イベントは、
定められた数のユニットの符号化、又は
シーン変化
である、請求項１記載の方法。
【請求項５】
前記ビデオの前記ユニットは、前記ビデオの現ユニットであり、
前記符号化は、シングルパス符号化であり、前記現ユニットに関する選択される前記ＭＶ精度は、前記ビデオの１以上の以前のユニットに少なくとも部分的に依存する、又は
前記符号化は、マルチパス符号化であり、前記現ユニットに関する選択される前記ＭＶ精度は、前記ビデオの前記現ユニットに少なくとも部分的に依存する、請求項１記載の方法。
【請求項６】
前記ユニットに関する選択される前記ＭＶ精度は、前記ビデオの前記ユニット内のブロックの前記ＭＶ値の水平ＭＶ成分及び／又は垂直ＭＶ成分に関するものである、請求項１記載の方法。
【請求項７】
前記ユニットは、シーケンス、シーン変化間の一連のピクチャ、グループオブピクチャ、ピクチャ、タイル、スライス、符号化ツリーユニット、及び符号化ユニットからなる群から選択され、前記ブロックは、予測ブロック、予測ユニット、マクロブロック、又はサブマクロブロックパーティションである、請求項１記載の方法。
【請求項８】
コンピューティングデバイスであって、
１以上の処理装置と、
命令を記憶しているメモリであって、前記命令は、前記コンピューティングデバイスに、
１以上の小数サンプル動きベクトル（ＭＶ）精度及び整数サンプルＭＶ精度を含む複数のＭＶ精度の中から、ビデオのユニットに関するＭＶ精度を決定する決定動作を含む、前記ビデオを符号化する符号化動作であって、前記ビデオの前記ユニット内のブロックのＭＶ値は、前記ユニットに関する前記ＭＶ精度を有し、前記決定動作は、
前記ビデオに関する情報を収集する収集動作であって、収集された前記情報は、前記１以上の小数サンプルＭＶ精度のうちの１つの小数サンプルＭＶ精度でのＭＶ値のセットを含む、収集動作と、
前記ＭＶ値のセット内でのゼロである小数部分を有するＭＶ値の優勢率を測定する動作と、
測定された前記優勢率を閾値と比較する動作と、
前記比較の結果に少なくとも部分的に基づいて、前記ユニットに関する前記ＭＶ精度を選択する動作と、
を含む、符号化動作と、
出力のために、符号化された前記ビデオをバッファに記憶する動作と、
を含む複数の動作を実行させる、メモリと、
を備え、
前記ＭＶ値のセットは、所定のブロックサイズ以上のブロックからのゼロ値でないＭＶのみを含むように制約される、コンピューティングデバイス。
【請求項９】
収集された前記ＭＶ値は、収集された前記ＭＶ値の小数部分の値に従って編成される、請求項８記載のコンピューティングデバイス。
【請求項１０】
前記ビデオの前記ユニットは、前記ビデオの現ユニットであり、
前記符号化は、シングルパス符号化であり、前記現ユニットに関する選択される前記ＭＶ精度は、前記ビデオの１以上の以前のユニットに少なくとも部分的に依存する、又は
前記符号化は、マルチパス符号化であり、前記現ユニットに関する選択される前記ＭＶ精度は、前記ビデオの前記現ユニットに少なくとも部分的に依存する、請求項８記載のコンピューティングデバイス。
【請求項１１】
請求項１乃至７いずれか一項記載の方法をコンピューティングデバイスに実行させるプログラム。
【発明の詳細な説明】
【背景技術】
【０００１】
エンジニアは、デジタルビデオのビットレートを低減させるために、圧縮（ソース符号化とも呼ばれる）を使用する。圧縮は、ビデオ情報をより低いビットレート形式に変換することにより、ビデオ情報を記憶及び伝送するコストを低減させる。伸張（復号とも呼ばれる）は、圧縮形式からオリジナル情報のバージョンを再構成する。「コーデック」はエンコーダ／デコーダシステムである。
【０００２】
ここ２０年の間、ＩＴＵ−Ｔ  Ｈ．２６１規格、Ｈ．２６２（ＭＰＥＧ−２又はＩＳＯ／ＩＥＣ  １３８１８−２）規格、Ｈ．２６３規格、及びＨ．２６４（ＭＰＥＧ−４  ＡＶＣ又はＩＳＯ／ＩＥＣ  １４４９６−１０）規格、並びに、ＭＰＥＧ−１（ＩＳＯ／ＩＥＣ  １１１７２−２）規格、ＭＰＥＧ−４  Ｖｉｓｕａｌ（ＩＳＯ／ＩＥＣ  １４４９６−２）規格、及びＳＭＰＴＥ  ４２１Ｍ（ＶＣ−１）規格を含む様々なビデオコーデック規格が採用されてきた。より最近では、ＨＥＶＣ（ＩＴＵ−Ｔ  Ｈ．２６５又はＩＳＯ／ＩＥＣ  ２３００８−２）規格が承認されている。ＨＥＶＣ規格に対する拡張（例えば、スケーラブルビデオ符号化／復号に関するもの、サンプルビット深度又はクロマサンプリングレートの観点でのより高い忠実度を伴うビデオの符号化／復号に関するもの、又はマルチビュー符号化／復号に関するもの）を現在策定中である。ビデオコーデック規格は、通常、特定の特徴が符号化及び復号において使用されるときの符号化ビデオビットストリームにおけるパラメータを詳述する、符号化ビデオビットストリームのシンタックスのためのオプションを定義している。多くの場合、ビデオコーデック規格はまた、デコーダが復号において整合する結果を達成するために実行すべき復号オペレーションに関する詳細を提供している。コーデック規格とは別に、様々なプロプライエタリコーデックフォーマット（proprietary  codec  format）が、符号化ビデオビットストリームのシンタックスのための他のオプション及び対応する復号オペレーションを定義している。
【０００３】
一般に、ビデオ圧縮技術は、「イントラピクチャ（ピクチャ内）」圧縮及び「インターピクチャ（ピクチャ間）」圧縮を含む。イントラピクチャ圧縮技術は、個々のピクチャを圧縮するものであり、インターピクチャ圧縮技術は、先行する１以上のピクチャ及び／又は後続の１以上のピクチャ（参照ピクチャ又はアンカピクチャとしばしば呼ばれる）を参照してピクチャを圧縮するものである。
【０００４】
インターピクチャ圧縮技術は、しばしば、動き推定及び動き補償を用いて、ビデオシーケンスにおける時間冗長性を利用することにより、ビットレートを低減させる。動き推定は、ピクチャ間の動きを推定するプロセスである。１つの一般的な技術において、動き推定を用いるエンコーダは、現ピクチャ内のサンプル値の現ブロックを、別のピクチャすなわち参照ピクチャ内の探索領域における同じサイズの候補ブロックと照合する。エンコーダが、参照ピクチャ内の探索領域において、正確な合致又は「十分近い」合致を見つけると、エンコーダは、現ブロックと候補ブロックとの間の位置の変化を、動きデータ（動きベクトル（「ＭＶ」）等）としてパラメータ化する。ＭＶは、慣用的に、左又は右への空間変位を示す水平ＭＶ成分と、上又は下への空間変位を示す垂直ＭＶ成分と、を有する２次元値である。一般に、動き補償は、動きデータを使用して、１以上の参照ピクチャからピクチャを再構成するプロセスである。
【０００５】
ＭＶは、現ブロックのための参照ピクチャ内の同一配置位置（co-located  position）から始まる整数のサンプルグリッド位置の観点での空間変位を示すことができる。例えば、現ピクチャ内の位置（３２，１６）における現ブロックについて、ＭＶ（−３，１）は、参照ピクチャ内の位置（２９，１７）を示す。あるいは、ＭＶは、現ブロックのための参照ピクチャ内の同一配置位置からの小数のサンプルグリッド位置の観点での空間変位を示すことができる。例えば、現ピクチャ内の位置（３２，１６）における現ブロックについて、ＭＶ（−３．５，１．２５）は、参照ピクチャ内の位置（２８．５，１７．２５）を示す。参照ピクチャ内の小数オフセットにおけるサンプル値を決定するために、エンコーダは、通常、整数サンプル位置におけるサンプル値間で内挿を行う。このような内挿は、計算集約的であり得る。動き補償中、デコーダも、必要に応じて内挿を行って、参照ピクチャ内の小数オフセットにおけるサンプル値を算出する。
【０００６】
異なるビデオコーデック規格及びフォーマットは、異なるＭＶ精度を有するＭＶを使用している。整数サンプルＭＶ精度に関して、ＭＶ成分は、空間変位について整数のサンプルグリッド位置を示す。１／２サンプルＭＶ精度又は１／４サンプルＭＶ精度等の小数サンプルＭＶ精度に関して、ＭＶ成分は、空間変位について整数のサンプルグリッド位置又は小数のサンプルグリッド位置を示すことができる。例えば、ＭＶ精度が、１／４サンプルＭＶ精度である場合、ＭＶ成分は、０サンプル、０．２５サンプル、０．５サンプル、０．７５サンプル、１．０サンプル、１．２５サンプル等といった空間変位を示すことができる。いくつかのビデオコーデック規格及びフォーマットは、符号化中のＭＶ精度の切り替えをサポートしている。しかしながら、どのＭＶ精度を使用するかに関するエンコーダ側の決定は、所定の符号化シナリオにおいては、効果的になされていない。
【発明の概要】
【０００７】
要約すると、詳細な説明は、動きベクトル（「ＭＶ」）精度の選択に関するエンコーダ側オペレーションにおけるイノベーションを提示している。例えば、ビデオエンコーダが、ビデオを符号化するとき、ビデオエンコーダは、ビデオのユニットに関するＭＶ精度を決定する。
【０００８】
本明細書に記載のイノベーションの一態様に従うと、ビデオエンコーダが、ユニットに関するＭＶ精度を決定するとき、ビデオエンコーダは、小数サンプルＭＶ精度を有するＭＶ値のセットを識別することができる。ビデオエンコーダは、ＭＶ値のセット内でのゼロである小数部分を有するＭＶ値の優勢率（prevalence）に少なくとも部分的に基づいて、ユニットに関するＭＶ精度を選択することができる。
【０００９】
本明細書に記載のイノベーションの別の態様に従うと、ビデオエンコーダが、ユニットに関するＭＶ精度を決定するとき、ビデオエンコーダは、１以上の小数サンプルＭＶ精度及び整数サンプルＭＶ精度を含む複数のＭＶ精度の間で決定するためにレート歪み分析を実行することができる。レート歪み分析は、（ａ）歪みコストをスケーリングすること（増大低減させること）（scaling）、（ｂ）歪みコストにペナルティ（penalty）を加えること、（ｃ）ビットレートコストをスケーリングすること、（ｄ）ビットレートコストにペナルティを加えること、及び／又は、（ｅ）ラグランジュ乗数係数（Lagrangian  multiplier  factor）を調整すること、により、整数サンプルＭＶ精度を優先するようにバイアス調整される（biased）。
【００１０】
本明細書に記載のイノベーションの別の態様に従うと、ビデオエンコーダが、ユニットに関するＭＶ精度を決定するとき、ビデオエンコーダは、ビデオに関する情報を収集し、収集された情報に少なくとも部分的に基づいて、複数のＭＶ精度の中から、ユニットに関するＭＶ精度を選択することができる。複数のＭＶ精度は、１以上の小数サンプルＭＶ精度及び整数サンプルＭＶ精度を含む。
【００１１】
ＭＶ精度の選択に関するエンコーダ側オプションのためのイノベーションは、方法の一部として、方法を実行するよう適合されたコンピューティングデバイスの一部として、又は、コンピューティングデバイスに方法を実行させるコンピュータ実行可能な命令を記憶した有体のコンピュータ読み取り可能な媒体の一部として実施され得る。様々なイノベーションは、組み合わせて又は別々に、使用され得る。
【００１２】
本発明の前述の目的及び他の目的、特徴、並びに利点が、添付の図面を参照しながら進む以下の詳細な説明からより明らかになるであろう。
【図面の簡単な説明】
【００１３】
【図１】いくつかの説明する実施形態を実装することができる例示的なコンピューティングシステムの図。
【図２ａ】いくつかの説明する実施形態を実装することができる例示的なネットワーク環境の図。
【図２ｂ】いくつかの説明する実施形態を実装することができる例示的なネットワーク環境の図。
【図３】いくつかの説明する実施形態を協働して実装することができる例示的なエンコーダシステムの図。
【図４ａ】いくつかの説明する実施形態を協働して実装することができる例示的なビデオエンコーダを示す図。
【図４ｂ】いくつかの説明する実施形態を協働して実装することができる例示的なビデオエンコーダを示す図。
【図５】スクリーンキャプチャのための入力を提供することができる、コンテンツを含むコンピュータデスクトップ環境を示す図。
【図６】自然ビデオコンテンツ及び人工ビデオコンテンツを含む混合コンテンツビデオを示す図。
【図７ａ】整数サンプル空間変位を有するＭＶ値を用いる動き補償を示す図。
【図７ｂ】小数サンプル空間変位を有するＭＶ値を用いる動き補償を示す図。
【図８】符号化中にＭＶ精度を適応させるための一般化された技術を示すフローチャート。
【図９】低複雑度アプローチを用いて符号化中にＭＶ精度を適応させるための例示的な技術を示すフローチャート。
【図１０】低複雑度アプローチのいくつかの変形形態に従ったピクチャの異なる領域を示す図。
【発明を実施するための形態】
【００１４】
詳細な説明は、符号化中の動きベクトル（「ＭＶ」）精度の選択におけるイノベーションを提示している。これらのアプローチは、レート歪み性能及び／又は計算効率性の観点で有効である圧縮を容易にすることができる。例えば、ビデオエンコーダは、１以上の小数サンプルＭＶ精度及び整数サンプルＭＶ精度を含む複数のＭＶ精度の中から、ビデオのユニットに関するＭＶ精度を決定する。ビデオエンコーダは、小数サンプルＭＶ精度を有するＭＶ値のセットを識別し、次いで、（このセット内での）ゼロである小数部分を有するＭＶ値の優勢率に少なくとも部分的に基づいて、ユニットに関するＭＶ精度を選択することができる。あるいは、ビデオエンコーダは、レート歪み分析を実行することができる。レート歪み分析は、整数サンプルＭＶ精度を優先するようにバイアス調整される。あるいは、ビデオエンコーダは、ビデオに関する情報を収集し、収集された情報に少なくとも部分的に基づいて、ユニットに関するＭＶ精度を選択することができる。あるいは、ビデオエンコーダは、何らかの他の方法により、ビデオのユニットに関するＭＶ精度を決定することができる。
【００１５】
本明細書に記載のオペレーションは、ビデオエンコーダにより実行されるものとして所々で説明されるが、多くの場合、このようなオペレーションは、別のタイプのメディア処理ツールにより実行することができる。
【００１６】
本明細書に記載のイノベーションのうちのいくつかは、ＨＥＶＣ規格に固有のシンタックス要素及びオペレーションを参照して示される。本明細書に記載のイノベーションはまた、他の規格又はフォーマットのためにも実装することができる。
【００１７】
より一般的に、本明細書に記載の例に対する様々な代替例が可能である。例えば、本明細書に記載の方法のうちのいくつかは、例えば、説明する方法動作の順番を変えることにより、所定の方法動作を分けることにより、所定の方法動作を繰り返すことにより、又は所定の方法動作を省略することにより、変更することができる。開示する技術の様々な態様が、組み合わせて又は別々に、使用され得る。様々な実施形態が、説明するイノベーションのうちの１以上を使用する。本明細書に記載のイノベーションのうちのいくつかは、背景技術において記した問題のうちの１以上に対処する。一般的に、所与の技術／ツールが、そのような問題の全てを解決するわけではない。
【００１８】
Ｉ．例示的なコンピューティングシステム
図１は、説明するイノベーションのうちのいくつかを実装することができる適切なコンピューティングシステム（１００）の一般化された例を示している。コンピューティングシステム（１００）は、使用又は機能の範囲に関して限定を示唆するよう意図するものではない。なぜならば、本イノベーションは、ビデオ符号化のために適合された専用コンピューティングシステムを含め、様々なコンピューティングシステムにおいて実施することができるからである。
【００１９】
図１を参照すると、コンピューティングシステム（１００）は、１以上の処理装置（１１０、１１５）及びメモリ（１２０、１２５）を含む。処理装置（１１０、１１５）は、コンピュータ実行可能な命令を実行する。処理装置は、中央処理装置（「ＣＰＵ」）、特定用途向け集積回路（「ＡＳＩＣ」）におけるプロセッサ、又は任意の他のタイプのプロセッサとすることができる。マルチ処理システムにおいては、複数の処理装置が、処理能力を増大させるために、コンピュータ実行可能な命令を実行する。例えば、図１は、中央処理装置（１１０）に加えて、グラフィックス処理装置又は共処理装置（１１５）も示している。有体のメモリ（１２０、１２５）は、１以上の処理装置によりアクセス可能な、揮発性メモリ（例えば、レジスタ、キャッシュ、ＲＡＭ）であってもよいし、不揮発性メモリ（例えば、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ等）であってもよいし、これら２つの何らかの組合せであってもよい。メモリ（１２０、１２５）は、１以上の処理装置による実行に適したコンピュータ実行可能な命令の形態で、符号化中のＭＶ精度の選択のための１以上のイノベーションを実装するソフトウェア（１８０）を記憶する。
【００２０】
コンピューティングシステムは、さらなる特徴を有することができる。例えば、コンピューティングシステム（１００）は、ストレージ（１４０）、１以上の入力デバイス（１５０）、１以上の出力デバイス（１６０）、及び１以上の通信接続（１７０）を含む。バス、コントローラ、又はネットワーク等の相互接続機構（図示せず）が、コンピューティングシステム（１００）のコンポーネントを相互接続する。通常、オペレーティングシステムソフトウェア（図示せず）が、コンピューティングシステム（１００）において実行される他のソフトウェアのための動作環境を提供し、コンピューティングシステム（１００）のコンポーネントの動作を調整する。
【００２１】
有体のストレージ（１４０）は、着脱可能であっても着脱不可能であってもよく、磁気ディスク、磁気テープ、磁気カセット、ＣＤ−ＲＯＭ、ＤＶＤ、又は、情報を記憶するために使用することができ、コンピューティングシステム（１００）内でアクセスされ得る任意の他の媒体を含む。ストレージ（１４０）は、符号化中のＭＶ精度の選択のための１以上のイノベーションを実装するソフトウェア（１８０）の命令を記憶する。
【００２２】
１以上の入力デバイス（１５０）は、キーボード、マウス、ペン、若しくはトラックボール等のタッチ入力デバイス、音声入力デバイス、スキャニングデバイス、又はコンピューティングシステム（１００）への入力を提供する別のデバイスとすることができる。ビデオに関して、１以上の入力デバイス（１５０）は、カメラ、ビデオカード、ＴＶチューナカード、スクリーンキャプチャモジュール、若しくはアナログ形態あるいはデジタル形態のビデオ入力を受け入れる同様のデバイス、又はビデオ入力をコンピューティングシステム（１００）に読み込むＣＤ−ＲＯＭあるいはＣＤ−ＲＷとすることができる。１以上の出力デバイス（１６０）は、ディスプレイ、プリンタ、スピーカ、ＣＤライタ、又はコンピューティングシステム（１００）からの出力を提供する別のデバイスとすることができる。
【００２３】
１以上の通信接続（１７０）は、通信媒体を介した別のコンピューティングエンティティとの通信を可能にする。通信媒体は、変調されたデータ信号により、コンピュータ実行可能な命令、オーディオ入力、ビデオ入力、オーディオ出力、ビデオ出力、又は他のデータ等の情報を伝達する。変調されたデータ信号とは、信号内の情報を符号化するように設定又は変更された特性のうちの１以上を有する信号である。限定ではなく例として、通信媒体は、電気、光、ＲＦ、又は他のキャリアを使用することができる。
【００２４】
本イノベーションは、コンピュータ読み取り可能な媒体の一般的なコンテキストにおいて説明され得る。コンピュータ読み取り可能な媒体は、コンピューティング環境内でアクセスされ得る任意の利用可能な有体の媒体である。限定ではなく例として、コンピューティングシステム（１００）において、コンピュータ読み取り可能な媒体は、メモリ（１２０、１２５）、ストレージ（１４０）、及びこれらの任意の組合せを含む。
【００２５】
本イノベーションは、コンピュータ実行可能な命令の一般的なコンテキストにおいて説明され得る。コンピュータ実行可能な命令は、例えば、プログラムモジュールに含まれ、コンピューティングシステムにおいて、ターゲット実プロセッサ又は仮想プロセッサ上で実行される。一般に、プログラムモジュールは、特定のタスクを実行する又は特定の抽象データ型を実装するルーチン、プログラム、ライブラリ、オブジェクト、クラス、コンポーネント、データ構造等を含む。プログラムモジュールの機能は、様々な実施形態において、必要に応じて、組み合わされてもよいし、プログラムモジュール間で分割されてもよい。プログラムモジュールのコンピュータ実行可能な命令は、ローカルコンピューティングシステム又は分散コンピューティングシステム内で実行され得る。
【００２６】
「システム」及び「デバイス」という用語は、本明細書において置き換え可能に使用される。文脈が別途明確に示さない限り、これらの用語は、コンピューティングシステム又はコンピューティングデバイスのタイプに関していかなる限定も示すものではない。一般に、コンピューティングシステム又はコンピューティングデバイスは、局在することもあるし分散されることもあり、専用ハードウェア及び／又は汎用ハードウェアと、本明細書に記載の機能を実装するソフトウェアと、の任意の組合せを含み得る。
【００２７】
開示する方法は、開示する方法のいずれかを実行するよう構成された専用コンピューティングハードウェアを用いて実装することもできる。例えば、開示する方法は、開示する方法のいずれかを実行するよう特別に設計又は構成された集積回路（例えば、ＡＳＩＣ（ＡＳＩＣデジタル信号プロセッサ（「ＤＳＰ」）等）、グラフィックス処理装置（「ＧＰＵ」）、又はフィールドプログラマブルゲートアレイ（「ＦＰＧＡ」）等のプログラマブルロジックデバイス（「ＰＬＤ」）等）により実装することができる。
【００２８】
提示の目的上、詳細な説明では、コンピューティングシステムにおけるコンピュータオペレーションを説明するための「決定する」及び「使用する」のような用語が使用される。これらの用語は、コンピュータにより実行されるオペレーションの高レベル抽象表現であって、人間により実行される動作と混同すべきではない。これらの用語に対応する実際のコンピュータオペレーションは、実装に応じて変化する。本明細書で使用されるとき、「最適化＊」（最適化及び最適化する等の変形を含む）という用語は、所与の範囲の決定下での複数のオプションのうちの１つの選択を指し、最適化された選択が、拡張範囲の決定についての「最良の」選択又は「最適な」選択であることを示すわけではない。
【００２９】
ＩＩ．例示的なネットワーク環境
図２ａ及び図２ｂは、ビデオエンコーダ（２２０）及びビデオデコーダ（２７０）を含む例示的なネットワーク環境（２０１、２０２）を示している。エンコーダ（２２０）及びデコーダ（２７０）は、適切な通信プロトコルを用いて、ネットワーク（２５０）を介して接続される。ネットワーク（２５０）は、インターネット又は別のコンピュータネットワークを含み得る。
【００３０】
図２ａに示されるネットワーク環境（２０１）において、各リアルタイム通信（「ＲＴＣ」）ツール（２１０）は、双方向通信のためのエンコーダ（２２０）及びデコーダ（２７０）の両方を含む。所与のエンコーダ（２２０）は、ＨＥＶＣ規格（Ｈ．２６５としても知られている）の変形又は拡張、ＳＭＰＴＥ  ４２１Ｍ規格、ＩＳＯ／ＩＥＣ  １４４９６−１０規格（Ｈ．２６４又はＡＶＣとしても知られている）、別の規格、又はプロプライエタリフォーマットに準拠する出力を生成することができ、対応するデコーダ（２７０）は、エンコーダ（２２０）からの符号化データを受け入れることができる。双方向通信は、ビデオ会議、ビデオ通話、又は他の２パーティ若しくはマルチパーティ通信シナリオの一部であり得る。図２ａのネットワーク環境（２０１）は、２つのリアルタイム通信ツール（２１０）を含むが、ネットワーク環境（２０１）は、マルチパーティ通信に参加する３以上のリアルタイム通信ツール（２１０）を含んでもよい。
【００３１】
リアルタイム通信ツール（２１０）は、エンコーダ（２２０）による符号化を管理する。図３は、リアルタイム通信ツール（２１０）に含まれ得る例示的なエンコーダシステム（３００）を示している。代替的に、リアルタイム通信ツール（２１０）は、別のエンコーダシステムを使用してもよい。リアルタイム通信ツール（２１０）はまた、デコーダ（２７０）による復号も管理する。
【００３２】
図２ｂに示されるネットワーク環境（２０２）において、符号化ツール（２１２）は、デコーダ（２７０）を含む複数の再生ツール（２１４）に配信するためのビデオを符号化するエンコーダ（２２０）を含む。単方向通信は、ビデオが符号化されて１つのロケーションから１以上の他のロケーションに送信される、ビデオ監視システム、ウェブカメラモニタリングシステム、スクリーンキャプチャモジュール、リモートデスクトップ会議プレゼンテーション、又は他のシナリオのために提供され得る。図２ｂのネットワーク環境（２０２）は、２つの再生ツール（２１４）を含むが、ネットワーク環境（２０２）は、それより多い又はそれより少ない再生ツール（２１４）を含んでもよい。一般に、再生ツール（２１４）は、再生ツール（２１４）が受信するビデオのストリームを判定するために、符号化ツール（２１２）と通信する。再生ツール（２１４）は、ストリームを受信し、受信した符号化データを適切な期間の間バッファし、復号及び再生を開始する。
【００３３】
図３は、符号化ツール（２１２）に含まれ得る例示的なエンコーダシステム（３００）を示している。代替的に、符号化ツール（２１２）は、別のエンコーダシステムを使用してもよい。符号化ツール（２１２）はまた、１以上の再生ツール（２１４）との接続を管理するためのサーバサイドコントローラロジックも含み得る。再生ツール（２１４）はまた、符号化ツール（２１２）との接続を管理するためのクライアントサイドコントローラロジックも含み得る。
【００３４】
ＩＩＩ．例示的なエンコーダシステム
図３は、いくつかの説明する実施形態を協働して実装することができる例示的なエンコーダシステム（３００）のブロック図である。エンコーダシステム（３００）は、リアルタイム通信のための低遅延符号化モード、トランスコーディングモード、及びファイル又はストリームからの再生のためのメディアを生成するためのより高遅延の符号化モード等の複数の符号化モードのうちのいずれかで動作することができる汎用符号化ツールであってもよいし、そのような１つの符号化モードのために適合された専用符号化ツールであってもよい。エンコーダシステム（３００）は、オペレーティングシステムモジュールとして、アプリケーションライブラリの一部として、又はスタンドアロンアプリケーションとして、実装することができる。概して、エンコーダシステム（３００）は、ビデオソース（３１０）から、一連のソースビデオフレーム（３１１）を受信し、チャネル（３９０）への出力として符号化データを生成する。チャネルに出力される符号化データは、選択されたＭＶ精度を使用して符号化されるコンテンツを含み得る。
【００３５】
ビデオソース（３１０）は、カメラ、チューナカード、記憶媒体、スクリーンキャプチャモジュール、又は他のデジタルビデオソースとすることができる。ビデオソース（３１０）は、例えば、毎秒３０フレームといったフレームレートで一連のビデオフレームを生成する。本明細書で使用されるとき、「フレーム」という用語は、一般に、ソースの符号化又は再構成された画像データを指す。プログレッシブスキャンビデオに関して、フレームは、プログレッシブスキャンビデオフレームである。インターレースビデオに関して、例示的な実施形態において、インターレースビデオフレームは、符号化の前にインターレース解除され得る（de-interlaced）。代替的に、２つの相補的インターレースビデオフィールドが、１つのビデオフレームとして一緒に符号化されてもよいし、２つの別々に符号化されるフィールドとして符号化されてもよい。プログレッシブスキャンビデオフレーム又はインターレーススキャンビデオフレームを示すかは別にして、「フレーム」又は「ピクチャ」という用語は、単一の対でないビデオフィールド、相補的な一対のビデオフィールド、所与の時間におけるビデオオブジェクトを表すビデオオブジェクトプレーン、又はより大きな画像における関心領域を示し得る。ビデオオブジェクトプレーン又は領域は、シーンの複数のオブジェクト又は領域を含むより大きな画像の一部であり得る。
【００３６】
到着ソースフレーム（３１１）は、複数のフレームバッファ記憶領域（３２１、３２２、．．．、３２ｎ）を含むソースフレーム一時メモリ記憶領域（３２０）に記憶される。フレームバッファ（３２１、３２２等）は、ソースフレーム記憶領域（３２０）内で１つのソースフレームを保持する。ソースフレーム（３１１）のうちの１以上がフレームバッファ（３２１、３２２等）に記憶された後、フレームセレクタ（３３０）が、ソースフレーム記憶領域（３２０）から個々のソースフレームを選択する。エンコーダ（３４０）への入力のためにフレームセレクタ（３３０）によりフレームが選択される順番は、ビデオソース（３１０）によりフレームが生成される順番とは異なり得る。例えば、いくつかの後続フレームが最初に符号化され、これにより、時間的後方予測を容易にすることを可能にするために、いくつかのフレームの符号化は、順に遅延されることがある。エンコーダ（３４０）の前に、エンコーダシステム（３００）は、符号化の前に選択されたフレーム（３３１）の前処理（例えば、フィルタリング）を実行するプリプロセッサ（図示せず）を含み得る。前処理はまた、符号化のための、プライマリ成分（例えば、ルマ）及びセカンダリ成分（例えば、赤色及び青色に対するクロマ差）への色空間変換及び（例えば、クロマ成分の空間解像度を低減させるための）再サンプリング処理を含み得る。通常、符号化の前に、ビデオは、ＹＵＶ等の色空間に変換されている。ＹＵＶでは、ルマ（Ｙ）成分のサンプル値は、輝度値又は明度値を表し、クロマ（Ｕ、Ｖ）成分のサンプル値は、色差値を表す。クロマサンプル値は、（例えば、ＹＵＶ４：２：０フォーマット又はＹＵＶ４：２：２フォーマットに合わせるために）より低いクロマサンプリングレートにサブサンプリングされ得る、あるいは、クロマサンプル値は、（例えば、ＹＵＶ４：４：４フォーマットに合わせるために）ルマサンプル値と同じ解像度を有し得る。ＹＵＶ４：２：０フォーマットにおいては、クロマ成分は、２の倍数だけ水平方向にダウンサンプリングされ、２の倍数だけ垂直方向にダウンサンプリングされる。ＹＵＶ４：２：２フォーマットにおいては、クロマ成分は、２の倍数だけ水平方向にダウンサンプリングされる。あるいは、ビデオは、（例えば、ＲＧＢ４：４：４フォーマットといった）別のフォーマットで符号化され得る。
【００３７】
エンコーダ（３４０）は、選択されたフレーム（３３１）を符号化して、符号化フレーム（３４１）を生成するとともに、メモリ管理制御操作（「ＭＭＣＯ」）信号（３４２）又は参照ピクチャセット（「ＲＰＳ」）情報を生成する。現フレームが、符号化された最初のフレームではない場合、符号化プロセスを実行するとき、エンコーダ（３４０）は、復号フレーム一時メモリ記憶領域（３６０）に記憶されている１以上の以前に符号化／復号されたフレーム（３６９）を使用することができる。そのような記憶されている復号フレーム（３６９）は、現ソースフレーム（３３１）のコンテンツのインターフレーム予測のための参照フレームとして使用される。ＭＭＣＯ／ＲＰＳ情報（３４２）は、どの再構成フレームが、参照フレームとして使用され得るかを、したがって、フレーム記憶領域に記憶されるべきかを、デコーダに示す。
【００３８】
一般に、エンコーダ（３４０）は、タイルへの分割、イントラ予測推定及び予測、動き推定及び動き補償、周波数変換、量子化、並びにエントロピ符号化等の符号化タスクを実行する複数の符号化モジュールを含む。エンコーダ（３４０）により実行される正確なオペレーションは、圧縮フォーマットに応じて変わり得る。出力される符号化データのフォーマットは、ＨＥＶＣフォーマット（Ｈ．２６５）の変形又は拡張、Ｗｉｎｄｏｗｓ（登録商標）  Ｍｅｄｉａ  Ｖｉｄｅｏフォーマット、ＶＣ−１フォーマット、ＭＰＥＧ−ｘフォーマット（例えば、ＭＰＥＧ−１、ＭＰＥＧ−２、又はＭＰＥＧ−４）、Ｈ．２６ｘフォーマット（例えば、Ｈ．２６１、Ｈ．２６２、Ｈ．２６３、Ｈ．２６４）、又は別のフォーマットであり得る。
【００３９】
エンコーダ（３４０）は、フレームを、同じサイズ又は異なるサイズの複数のタイルに分割することができる。例えば、エンコーダ（３４０）は、フレーム境界を用いてフレーム内のタイルの水平境界及び垂直境界を規定するタイル行及びタイル列に沿って、フレームを分割する。ここで、各タイルは矩形領域である。タイルは、並列処理のためのオプションを提供するために、しばしば使用される。フレームはまた、１以上のスライスとして編成され得る。ここで、スライスは、フレーム全体又はフレームの一領域であり得る。スライスは、フレーム内の他のスライスとは独立して復号することができ、これは、誤り耐性を向上させる。スライス又はタイルのコンテンツは、符号化及び復号のために、ブロック又はサンプルの他のセットにさらに分割される。
【００４０】
ＨＥＶＣ規格に従ったシンタックスに関して、エンコーダは、フレーム（又はスライス若しくはタイル）のコンテンツを、符号化ツリーユニットに分割する。符号化ツリーユニット（「ＣＴＵ」）は、１つのルマ符号化ツリーブロック（「ＣＴＢ」）として編成されるルマサンプル値と、２つのクロマＣＴＢとして編成される対応するクロマサンプル値と、を含む。ＣＴＵ（及びそのＣＴＢ）のサイズは、エンコーダにより選択される。ルマＣＴＢは、例えば、６４×６４ルマサンプル値、３２×３２ルマサンプル値、又は１６×１６ルマサンプル値を含み得る。ＣＴＵは、１以上の符号化ユニットを含む。符号化ユニット（「ＣＵ」）は、１つのルマ符号化ブロック（「ＣＢ」）と２つの対応するクロマＣＢとを有する。例えば、１つの６４×６４ルマＣＴＢと２つの６４×６４クロマＣＴＢとを有するＣＴＵ（ＹＵＶ４：４：４フォーマット）は、４つのＣＵに分割され得る。ここで、各ＣＵは、１つの３２×３２ルマＣＢと２つの３２×３２クロマＣＢとを含み、各ＣＵは、可能であれば、より小さなＣＵにさらに分割される。あるいは、別の例として、１つの６４×６４ルマＣＴＢと２つの３２×３２クロマＣＴＢとを有するＣＴＵ（ＹＵＶ４：２：０フォーマット）は、４つのＣＵに分割され得る。ここで、各ＣＵは、１つの３２×３２ルマＣＢと２つの１６×１６クロマＣＢとを含み、各ＣＵは、可能であれば、より小さなＣＵにさらに分割される。ＣＵの最小許容可能サイズ（例えば、８×８、１６×１６）が、ビットストリームに含められてシグナリングされ得る。
【００４１】
一般に、ＣＵは、インター又はイントラ等の予測モードを有する。ＣＵは、予測情報（例えば、予測モード詳細、変位値等）のシグナリング及び／又は予測処理のために、１以上の予測ユニットを含む。予測ユニット（「ＰＵ」）は、１つのルマ予測ブロック（「ＰＢ」）と２つのクロマＰＢとを有する。イントラ予測ＣＵに関して、ＣＵが最小サイズ（例えば、８×８）を有する場合を除いて、ＰＵは、ＣＵと同じサイズを有する。この場合、ＣＵは、４つのより小さなＰＵ（例えば、最小ＣＵサイズが８×８である場合、それぞれ４×４である）に分割され得る、あるいは、ＰＵは、ＣＵに関してシンタックス要素により示される最小ＣＵサイズを有し得る。ＣＵはまた、残差符号化／復号のために、１以上の変換ユニットを有する。ここで、変換ユニット（「ＴＵ」）は、１つのルマ変換ブロック（「ＴＢ」）と２つのクロマＴＢとを有する。イントラ予測ＣＵ内のＰＵは、１つのＴＵ（ＰＵとサイズが等しい）又は複数のＴＵを含み得る。エンコーダは、ビデオをＣＴＵ、ＣＵ、ＰＵ、ＴＵ等にどのように分割するかを決定する。Ｈ．２６４／ＡＶＣ規格のコンテキストにおいて、「マクロブロック」という用語は、Ｈ．２６５／ＨＥＶＣ規格のＣＴＵのブロック形状領域に類似するブロック形状領域を示し、「サブマクロブロックパーティション」という用語は、ＣＵ又はＰＵのブロック形状領域に類似するブロック形状領域を示す。本明細書で使用されるとき、「ブロック」という用語は、文脈に応じて、ＣＢ、ＰＢ、ＴＢ、ＣＴＵ、ＣＵ、ＰＵ、ＴＵ、マクロブロック、サブマクロブロックパーティション、又はサンプル値の他のセットを示し得る。
【００４２】
図３に戻ると、エンコーダは、ソースフレーム（３３１）内の他の以前に再構成されたサンプル値の観点でそのソースフレーム（３３１）のイントラ符号化ブロックを表現する。イントラブロックコピー（「ＢＣ」）予測に関して、イントラピクチャ推定部が、他の以前に再構成されたサンプル値に対するブロックの変位を推定する。イントラフレーム予測参照領域（又は、省略してイントラ予測領域）とは、ブロックのためのＢＣ予測値を生成するために使用される、フレーム内のサンプルの領域である。イントラフレーム予測領域は、（ブロックベクトル（「ＢＶ」）推定において決定された）ＢＶ値を用いて示され得る。ブロックのためのイントラ空間予測に関して、イントラピクチャ推定部は、ブロックへの、隣接する再構成されたサンプル値の外挿（extrapolation）を推定する。イントラピクチャ推定部は、予測情報（イントラＢＣ予測のためのＢＶ値やイントラ空間予測のための予測モード（方向）等）を出力することができ、この予測情報が、エントロピ符号化される。イントラフレーム予測予測部は、イントラ予測値を決定するために、予測情報を適用する。
【００４３】
エンコーダ（３４０）は、参照フレームからの予測の観点でソースフレーム（３３１）のインターフレーム符号化予測ブロックを表現する。動き推定部は、１以上の参照フレーム（３６９）に対するブロックの動きを推定する。動き推定部は、本明細書で説明するように、動きベクトル（「ＭＶ」）精度（例えば、整数サンプルＭＶ精度、１／２サンプルＭＶ精度、又は１／４サンプルＭＶ精度）を選択し、次いで、動き推定中、選択されたＭＶ精度を使用することができる。複数の参照フレームが使用される場合、複数の参照フレームは、異なる時間的方向からのものであってもよいし、同じ時間的方向からのものであってもよい。動き補償予測参照領域とは、現フレームのブロックのサンプルのための動き補償予測値を生成するために使用される、１以上の参照フレーム内のサンプルの領域である。動き推定部は、ＭＶ情報等の動き情報を出力し、この動き情報が、エントロピ符号化される。動き補償部は、インターフレーム予測のための動き補償予測値を決定するために、選択されたＭＶ精度を有するＭＶ値を、参照フレーム（３６９）に適用する。
【００４４】
エンコーダは、ブロックの予測値（イントラ又はインター）と対応するオリジナルの値との間の差（あれば）を決定することができる。このような予測残差値が、周波数変換（周波数変換がスキップされない場合）、量子化、及びエントロピ符号化を用いて、さらに符号化される。例えば、エンコーダ（３４０）は、ピクチャ、タイル、スライス、及び／又はビデオの他の部分のための量子化パラメータ（「ＱＰ」）の値を設定し、それに従って変換係数を量子化する。エンコーダ（３４０）のエントロピ符号化部が、量子化された変換係数値に加えて、所定のサイド情報（例えば、ＭＶ情報、選択されたＭＶ精度、ＢＶ値、ＱＰ値、モード決定、パラメータ選択）も圧縮する。一般的なエントロピ符号化技術は、指数ゴロム符号化、ゴロムライス符号化、算術符号化、差分符号化、ハフマン符号化、ランレングス符号化、「Ｖ２Ｖ（variable-length-to-variable-length）」符号化、「Ｖ２Ｆ（variable-length-to-fixed-length）」符号化、「ＬＺ（Lempel-Ziv）」符号化、辞書符号化、「ＰＩＰＥ（probability  interval  partitioning  entropy）」符号化、及びこれらの組合せを含む。エントロピ符号化部は、様々な種類の情報のための様々な符号化技術を使用することができ、複数の技術を組み合わせて適用することができ（例えば、ゴロムライス符号化を適用した後に算術符号化を適用することにより）、特定の符号化技術における複数の符号テーブルの中から選択することができる。いくつかの実装において、周波数変換は、スキップされ得る。この場合、予測残差値は、量子化されてエントロピ符号化され得る。
【００４５】
復号フレーム内のブロック境界行及び／又はブロック境界列にわたる不連続さを平滑化するために、適応デブロッキングフィルタが、エンコーダ（３４０）における動き補償ループ内に含まれる（すなわち、「ループ内」フィルタリング）。代替的又は追加的に、他のフィルタリング（デリンギングフィルタリング、適応ループフィルタリング（「ＡＬＦ」）、又はサンプル適応オフセット（「ＳＡＯ」）フィルタリング等；図示せず）が、ループ内フィルタリングオペレーションとして、適用されてもよい。
【００４６】
符号化フレーム（３４１）及びＭＭＣＯ／ＲＰＳ情報（３４２）（又は、フレームに関する依存関係及び順番構造がエンコーダ（３４０）において既に知られているため、ＭＭＣＯ／ＲＰＳ情報（３４２）と同等の情報）が、復号プロセスエミュレータ（３５０）により処理される。復号プロセスエミュレータ（３５０）は、例えば、参照フレームを再構成する復号タスク等のデコーダの機能の一部を実装している。復号プロセスエミュレータ（３５０）は、ＭＭＣＯ／ＲＰＳ情報（３４２）と整合するように、所与の符号化フレーム（３４１）が、符号化される後続フレームのインターフレーム予測において参照フレームとして使用するために再構成されて記憶される必要があるかどうかを判定する。符号化フレーム（３４１）が記憶される必要がある場合、復号プロセスエミュレータ（３５０）は、符号化フレーム（３４１）を受信して対応する復号フレーム（３５１）を生成するデコーダにより行われるであろう復号プロセスを模擬する。そうする際に、エンコーダ（３４０）が、復号フレーム記憶領域（３６０）に記憶されている１以上の復号フレーム（３６９）を使用したとき、復号プロセスエミュレータ（３５０）は、復号プロセスの一部として、記憶領域（３６０）から１以上の復号フレーム（３６９）を使用する。
【００４７】
復号フレーム一時メモリ記憶領域（３６０）は、複数のフレームバッファ記憶領域（３６１、３６２、．．．、３６ｎ）を含む。復号プロセスエミュレータ（３５０）は、ＭＭＣＯ／ＲＰＳ情報（３４２）と整合するように、参照フレームとして使用するためにエンコーダ（３４０）によりもはや必要とされなくなったフレームを有する任意のフレームバッファ（３６１、３６２等）を識別するために、記憶領域（３６０）のコンテンツを管理する。復号プロセスを模擬した後、復号プロセスエミュレータ（３５０）は、このように識別されるフレームバッファ（３６１、３６２等）に、新たに復号されたフレーム（３５１）を記憶する。
【００４８】
符号化フレーム（３４１）及びＭＭＣＯ／ＲＰＳ情報（３４２）は、一時符号化データ領域（３７０）にバッファされる。符号化データ領域（３７０）に収集される符号化データは、エレメンタリ符号化ビデオビットストリームのシンタックスの一部として、１以上のピクチャの符号化データを含む。符号化データ領域（３７０）に収集される符号化データはまた、（例えば、１以上の付加拡張情報（「ＳＥＩ」）メッセージ又はビデオユーザビリティ情報（「ＶＵＩ」）メッセージにおける１以上のパラメータとして、）符号化ビデオデータに関連するメディアメタデータを含み得る。
【００４９】
一時符号化データ領域（３７０）からの収集されたデータ（３７１）は、チャネルエンコーダ（３８０）により処理される。チャネルエンコーダ（３８０）は、（例えば、ＩＴＵ−Ｔ  Ｈ．２２２．０｜ＩＳＯ／ＩＥＣ  １３８１８−１等のメディアプログラムストリーム若しくはトランスポートストリームフォーマット、又は、ＩＥＴＦ  ＲＦＣ  ３５５０等のインターネットリアルタイムトランスポートプロトコルフォーマットに従って）メディアストリームとして伝送又は記憶するために、収集されたデータをパケット化及び／又は多重化することができる。そのような場合、チャネルエンコーダ（３８０）は、メディア伝送ストリームのシンタックスの一部として、シンタックス要素を付加することができる。あるいは、チャネルエンコーダ（３８０）は、（例えば、ＩＳＯ／ＩＥＣ  １４４９６−１２等のメディアコンテナフォーマットに従って）ファイルとして記憶するために、収集されたデータを編成することができる。そのような場合、チャネルエンコーダ（３８０）は、メディア記憶ファイルのシンタックスの一部として、シンタックス要素を付加することができる。あるいは、より一般的に、チャネルエンコーダ（３８０）は、１以上のメディアシステム多重化プロトコル又はトランスポートプロトコルを実装することができる。そのような場合、チャネルエンコーダ（３８０）は、１以上のプロトコルのシンタックスの一部として、シンタックス要素を付加することができる。チャネルエンコーダ（３８０）は、チャネル（３９０）への出力を提供する。チャネル（３９０）は、ストレージ、通信接続、又は出力のための別のチャネルを表す。チャネルエンコーダ（３８０）又はチャネル（３９０）はまた、例えば、前方誤り訂正（「ＦＥＣ」）符号化及びアナログ信号変調のための他の要素（図示せず）を含み得る。
【００５０】
ＩＶ．例示的なビデオエンコーダ
図４ａ及び図４ｂは、いくつかの説明する実施形態を協働して実装することができる一般化されたビデオエンコーダ（４００）のブロック図である。エンコーダ（４００）は、現ピクチャを含む一連のビデオピクチャを、入力ビデオ信号（４０５）として受信し、符号化ビデオビットストリーム（４９５）内の符号化データを、出力として生成する。
【００５１】
エンコーダ（４００）は、ブロックベースであり、実装に依存するブロックフォーマットを使用する。ブロックは、例えば、予測段階、周波数変換段階、及び／又はエントロピ符号化段階において等の様々な段階において、さらに細分割され得る。例えば、ピクチャは、６４×６４ブロック、３２×３２ブロック、又は１６×１６ブロックに分割され得、今度は、それらのブロックが、符号化及び復号のために、サンプル値のより小さなブロックに分割され得る。ＨＥＶＣ規格のための符号化の実装において、エンコーダは、ピクチャを、ＣＴＵ（ＣＴＢ）、ＣＵ（ＣＢ）、ＰＵ（ＰＢ）、及びＴＵ（ＴＢ）に分割する。
【００５２】
エンコーダ（４００）は、イントラピクチャ符号化及び／又はインターピクチャ符号化を用いて、ピクチャを圧縮する。エンコーダ（４００）のコンポーネントの多くが、イントラピクチャ符号化及びインターピクチャ符号化の両方のために使用される。これらのコンポーネントにより実行される正確なオペレーションは、圧縮される情報のタイプに応じて変わり得る。
【００５３】
タイル化モジュール（４１０）は、任意的に、ピクチャを、同じサイズ又は異なるサイズの複数のタイルに分割する。例えば、タイル化モジュール（４１０）は、ピクチャ境界を用いてピクチャ内のタイルの水平境界及び垂直境界を規定するタイル行及びタイル列に沿って、ピクチャを分割する。ここで、各タイルは矩形領域である。
【００５４】
一般符号化制御部（４２０）は、入力ビデオ信号（４０５）のピクチャに加えて、エンコーダ（４００）の様々なモジュールからのフィードバック（図示せず）を受信する。概して、一般符号化制御部（４２０）は、符号化中に符号化パラメータを設定及び変更するために、他のモジュール（タイル化モジュール（４１０）、変換部／スケーリング部／量子化部（４３０）、スケーリング部／逆変換部（４３５）、イントラピクチャ推定部（４４０）、動き推定部（４５０）、及びイントラ／インタースイッチ等）に制御信号（図示せず）を供給する。詳細には、一般符号化制御部（４２０）は、動き推定部（４５０）と協働して、符号化中にＭＶ精度を決定することができる。一般符号化制御部（４２０）はまた、例えば、レート歪み分析を実行して、符号化中に中間結果を評価することができる。一般符号化制御部（４２０）は、符号化中になされた決定を示す一般制御データ（４２２）を生成するので、対応するデコーダは、整合する決定を行うことができる。一般制御データ（４２２）は、ヘッダフォーマット化部／エントロピ符号化部（４９０）に提供される。
【００５５】
現ピクチャが、インターピクチャ予測を用いて予測される場合、動き推定部（４５０）は、１以上の参照ピクチャに対する、入力ビデオ信号（４０５）の現ピクチャのサンプル値のブロックの動きを推定する。動き推定部（４５０）は、本明細書で説明するように、動きベクトル（「ＭＶ」）精度（例えば、整数サンプルＭＶ精度、１／２サンプルＭＶ精度、又は１／４サンプルＭＶ精度）を選択し、次いで、動き推定中、選択されたＭＶ精度を使用することができる。復号ピクチャバッファ（４７０）は、参照ピクチャとして使用するために、１以上の以前に再構成された符号化ピクチャをバッファする。複数の参照ピクチャが使用される場合、複数の参照ピクチャは、異なる時間的方向からのものであってもよいし、同じ時間的方向からのものであってもよい。動き推定部（４５０）は、サイド情報として、ＭＶデータ等の動きデータ（４５２）、マージモードインデックス値、及び参照ピクチャ選択データを生成するとともに、選択されたＭＶ精度を示すサイド情報を生成する。動きデータ（４５２）を含むサイド情報は、ヘッダフォーマット化部／エントロピ符号化部（４９０）及び動き補償部（４５５）に提供される。
【００５６】
動き補償部（４５５）は、選択されたＭＶ精度を有するＭＶ値を、復号ピクチャバッファ（４７０）からの１以上の再構成された参照ピクチャに適用する。ピクチャのクロマデータが、ルマデータと同じ解像度を有する場合（例えば、フォーマットが、ＹＵＶ４：４：４フォーマット又はＲＧＢ４：４：４フォーマットである場合）、クロマブロックに対して適用されるＭＶ値は、ルマブロックに対して適用されるＭＶ値と同じであり得る。一方、ピクチャのクロマデータが、ルマデータより低い解像度を有する場合（例えば、フォーマットが、ＹＵＶ４：２：０フォーマット又はＹＵＶ４：２：２フォーマットである場合）、クロマブロックに対して適用されるＭＶ値は、低減されて、可能であれば、クロマ解像度における差を調整するために丸められたＭＶ値であり得る（例えば、ＹＵＶ４：２：０フォーマットの場合、ＭＶ値の垂直成分及び水平成分を２で除算して、それらを、クロマ動き補償プロセスに関して使用される精度に切り捨てる又は丸めることにより；ＹＵＶ４：２：２フォーマットの場合、ＭＶ値の水平成分を２で除算して、それを、クロマ動き補償プロセスに関して使用される精度に切り捨てる又は丸めることにより）。動き補償部（４５５）は、現ピクチャのための動き補償予測を生成する。
【００５７】
エンコーダ（４００）内の分離パス（separate  path）において、イントラピクチャ推定部（４４０）は、入力ビデオ信号（４０５）の現ピクチャのサンプル値のブロックのためのイントラピクチャ予測をどのように実行するかを決定する。現ピクチャは、イントラピクチャ符号化を用いて、全体又は一部が符号化され得る。イントラ空間予測に関して、イントラピクチャ推定部（４４０）は、現ピクチャの再構成（４３８）の値を用いて、現ピクチャの隣接する以前に再構成されたサンプル値から、現ピクチャの現ブロックのサンプル値をどのように空間的に予測するかを決定する。あるいは、ＢＶ値を使用するイントラＢＣ予測に関して、イントラピクチャ推定部（４４０）は、現ピクチャ内の異なる候補領域への、現ブロックのサンプル値の変位を推定する。
【００５８】
イントラピクチャ推定部（４４０）は、サイド情報として、イントラ予測が空間予測を使用するかイントラＢＣ予測を使用するかを示す情報（例えば、イントラブロックごとのフラグ値）、予測モード方向（イントラ空間予測に関して）、及びＢＶ値（イントラＢＣ予測に関して）等のイントラ予測データ（４４２）を生成する。イントラ予測データ（４４２）は、ヘッダフォーマット化部／エントロピ符号化部（４９０）及びイントラピクチャ予測部（４４５）に提供される。
【００５９】
イントラピクチャ予測部（４４５）は、イントラ予測データ（４４２）に従って、現ピクチャの隣接する以前に再構成されたサンプル値から、現ピクチャの現ブロックのサンプル値を空間的に予測する。あるいは、イントラＢＣ予測に関して、イントラピクチャ予測部（４４５）は、現ブロックのＢＶ値により示されるイントラ予測領域の以前に再構成されたサンプル値を使用して、現ブロックのサンプル値を予測する。
【００６０】
イントラ／インタースイッチは、所与のブロックのための予測（４５８）として使用するために、動き補償予測又はイントラピクチャ予測の値を選択する。残差符号化がスキップされない場合、予測（４５８）のブロックと、入力ビデオ信号（４０５）のオリジナルの現ピクチャの対応する部分と、の間の差（あれば）が、残差（４１８）の値を提供する。残差値が符号化／シグナリングされている場合、現ピクチャの再構成中に、再構成された残差値が、予測（４５８）と結合されて、ビデオ信号（４０５）からのオリジナルのコンテンツの再構成（４３８）が生成される。しかしながら、損失圧縮（lossy  compression）では、それでも、いくつかの情報が、ビデオ信号（４０５）から失われる。
【００６１】
変換部／スケーリング部／量子化部（４３０）において、周波数変換がスキップされない場合、周波数変換部は、空間領域ビデオデータを周波数領域（すなわち、スペクトル変換）データに変換する。ブロックベースのビデオ符号化に関して、周波数変換部は、離散コサイン変換（「ＤＣＴ」）、その整数近似、又は別のタイプの順ブロック変換（例えば、離散サイン変換又はその整数近似）を予測残差データ（又は、予測（４５８）がヌルの場合にはサンプル値データ）のブロックに適用して、周波数変換係数のブロックを生成する。エンコーダ（４００）はまた、そのような変換ステップがスキップされることを指示することができる。スケーリング部／量子化部は、変換係数をスケーリングして量子化する。例えば、量子化部は、フレームごとに、タイルごとに、スライスごとに、ブロックごとに、周波数固有の単位で、又は他の単位で変わる量子化ステップサイズで、デッドゾーン（dead-zone）スカラ量子化を周波数領域データに適用する。量子化された変換係数データ（４３２）は、ヘッダフォーマット化部／エントロピ符号化部（４９０）に提供される。周波数変換がスキップされる場合、スケーリング部／量子化部は、予測残差データ（又は、予測（４５８）がヌルの場合にはサンプル値データ）のブロックをスケーリングして量子化し、ヘッダフォーマット化部／エントロピ符号化部（４９０）に提供される量子化された値を生成することができる。
【００６２】
スケーリング部／逆変換部（４３５）において、スケーリング部／逆量子化部は、量子化された変換係数に対して、逆スケーリング及び逆量子化を実行する。逆周波数変換部は、逆周波数変換を実行して、再構成された予測残差値又はサンプル値のブロックを生成する。周波数変換段階がスキップされた場合には、逆周波数変換もスキップされる。この場合、スケーリング部／逆量子化部は、予測残差データ（又は、サンプル値データ）のブロックに対して、逆スケーリング及び逆量子化を実行して、再構成された値を生成することができる。残差値が符号化／シグナリングされている場合、エンコーダ（４００）は、再構成された残差値を、予測（４５８）の値（例えば、動き補償予測値、イントラピクチャ予測値）と結合して、再構成（４３８）を生成する。残差値が符号化／シグナリングされていない場合、エンコーダ（４００）は、再構成（４３８）として、予測（４５８）の値を使用する。
【００６３】
イントラピクチャ予測に関して、再構成（４３８）の値は、イントラピクチャ推定部（４４０）及びイントラピクチャ予測部（４４５）にフィードバックされ得る。また、再構成（４３８）の値は、後続ピクチャの動き補償予測のためにも使用され得る。再構成（４３８）の値は、さらにフィルタリングされ得る。フィルタリング制御部（４６０）は、ビデオ信号（４０５）の所与のピクチャに関して、再構成（４３８）の値に対して、デブロックフィルタリング及びＳＡＯフィルタリングをどのように実行するかを決定する。フィルタリング制御部（４６０）は、フィルタリング制御データ（４６２）を生成する。フィルタリング制御データ（４６２）は、ヘッダフォーマット化部／エントロピ符号化部（４９０）及びマージ部／１以上のフィルタ（４６５）に提供される。
【００６４】
マージ部／１以上のフィルタ（４６５）において、エンコーダ（４００）は、異なるタイルからのコンテンツを、ピクチャの再構成バージョンにマージする。エンコーダ（４００）は、フレーム内の境界にわたる不連続さを適応的に平滑化するために、フィルタリング制御データ（４６２）に従って、デブロックフィルタリング及びＳＡＯフィルタリングを選択的に実行する。代替的又は追加的に、他のフィルタリング（デリンギングフィルタリング又はＡＬＦ等；図示せず）が、適用されてもよい。タイル境界は、エンコーダ（４００）の設定に応じて、選択的にフィルタリングされ得る又はフィルタリングされず、エンコーダ（４００）は、そのようなフィルタリングが適用されたか否かを示すシンタックスを、符号化ビットストリーム内に提供することができる。復号ピクチャバッファ（４７０）は、後続の動き補償予測において使用するために、再構成された現ピクチャをバッファする。
【００６５】
ヘッダフォーマット化部／エントロピ符号化部（４９０）は、一般制御データ（４２２）、量子化された変換係数データ（４３２）、イントラ予測データ（４４２）、動きデータ（４５２）、及びフィルタリング制御データ（４６２）をフォーマット化及び／又はエントロピ符号化する。ＭＶ値が、予測符号化され得る。例えば、ヘッダフォーマット化部／エントロピ符号化部（４９０）は、ＭＶ予測の後、差分ＭＶ値に関するシンタックス要素等の様々なシンタックス要素のエントロピ符号化のために、指数ゴロム符号化を使用する。
【００６６】
ヘッダフォーマット化部／エントロピ符号化部（４９０）は、符号化データを、符号化ビデオビットストリーム（４９５）内に提供する。符号化ビデオビットストリーム（４９５）のフォーマットは、ＨＥＶＣフォーマットの変形又は拡張、Ｗｉｎｄｏｗｓ（登録商標）  Ｍｅｄｉａ  Ｖｉｄｅｏフォーマット、ＶＣ−１フォーマット、ＭＰＥＧ−ｘフォーマット（例えば、ＭＰＥＧ−１、ＭＰＥＧ−２、又はＭＰＥＧ−４）、Ｈ．２６ｘフォーマット（例えば、Ｈ．２６１、Ｈ．２６２、Ｈ．２６３、Ｈ．２６４）、又は別のフォーマットであり得る。
【００６７】
実装及び所望の圧縮のタイプに応じて、エンコーダのモジュールを追加してもよいし、省略してもよいし、複数のモジュールに分割してもよいし、他のモジュールと結合してもよいし、且つ／又は同様のモジュールと置換してもよい。代替実施形態において、異なるモジュール及び／又はモジュールの他の構成を有するエンコーダは、説明した技術のうちの１以上を実行する。エンコーダの特定の実施形態は、通常、エンコーダ（４００）の変形又は補完バージョンを使用する。エンコーダ（４００）内のモジュール間の示された関係は、エンコーダ内の情報の一般的な流れを示すものである。他の関係は、簡潔さのため示されていない。
【００６８】
Ｖ．符号化中のＭＶ精度の選択
このセクションは、符号化中の動きベクトル（「ＭＶ」）精度の選択の様々なアプローチを提示する。これらのアプローチは、レート歪み性能及び／又は符号化と復号との計算効率性の観点で有効である圧縮を容易にすることができる。
【００６９】
本明細書に記載のＭＶ精度を選択するアプローチは、任意のタイプのビデオを符号化するときに適用することができる。詳細には、本明細書に記載のＭＶ精度の選択は、スクリーンキャプチャコンテンツ等の所定の人工的に作成されたビデオコンテンツを符号化する際の性能を向上させることができる。
【００７０】
Ａ．ビデオのタイプ
一般に、スクリーンキャプチャビデオ（スクリーンコンテンツビデオ又はスクリーンキャプチャコンテンツとも呼ばれる）は、コンピュータスクリーン又は他のディスプレイのためのコンテンツを生成するグラフィックスレンダリングプロセスの出力を表す。スクリーンキャプチャビデオは、実世界オブジェクトのカメラセンサビューからキャプチャされたビデオ画像又は類似する特性を有するビデオを指す自然ビデオ（natural  video）とは対照的である。スクリーンキャプチャビデオは、通常、カメラによりキャプチャされたビデオコンテンツではない（又は、カメラによりキャプチャされたビデオコンテンツに加えて）、レンダリングされたテキスト、コンピュータグラフィックス、アニメーション生成コンテンツ、又は、コンピュータディスプレイのためのレンダリングプロセスの出力からキャプチャされた他の同様のタイプのコンテンツを含む。スクリーンキャプチャコンテンツの符号化／復号に関する一般的シナリオは、リモートデスクトップ会議、及び、自然ビデオ上へのグラフィカルオーバーレイ若しくはテキストオーバーレイ又は他の「混合コンテンツ」ビデオの符号化／復号を含む。本明細書に記載のイノベーションのうちのいくつかは、スクリーンキャプチャビデオ又は他の人工的に作成されたビデオの符号化のために適合されている。これらのイノベーションは、自然ビデオのために使用することもできるが、それほど有効ではない場合もある。本明細書に記載の他のイノベーションは、自然ビデオ又は人工的に作成されたビデオの符号化において有効である。
【００７１】
図５は、スクリーンキャプチャのための入力を提供することができる、コンテンツを含むコンピュータデスクトップ環境（５１０）を示している。例えば、スクリーンキャプチャビデオは、コンピュータデスクトップ（５１１）全体の一連の画像を表すことができる。あるいは、スクリーンキャプチャビデオは、ゲームコンテンツを含むアプリケーションウィンドウ（５１３）、ウェブページコンテンツを含むブラウザウィンドウ（５１２）、又はワードプロセッサコンテンツを含むウィンドウ（５１４）等の、コンピュータデスクトップ環境のウィンドウのうちの１つのウィンドウに関する一連の画像を表すことができる。
【００７２】
コンピュータにより生成される人工的に作成されるビデオコンテンツであるので、スクリーンキャプチャコンテンツは、ビデオカメラを使用してキャプチャされる自然ビデオコンテンツと比較して、相対的に少ない離散サンプル値を有する傾向にある。例えば、スクリーンキャプチャコンテンツの領域は、しばしば、単一の均一な色を含むのに対し、自然ビデオコンテンツ内の領域は、徐々に変化する色を含む可能性がより高い。また、スクリーンキャプチャコンテンツは、通常、当該コンテンツが空間的に移動され得るとしても、（例えば、スクロールに起因して）フレームからフレームへと正確に繰り返される異なる構造（例えば、グラフィックス、テキスト文字）を含む。スクリーンキャプチャコンテンツは、通常、高クロマサンプリング解像度を有するフォーマット（例えば、ＹＵＶ４：４：４又はＲＧＢ４：４：４）で符号化されるが、より低いクロマサンプリング解像度を有するフォーマット（例えば、ＹＵＶ４：２：０、ＹＵＶ４：２：２）で符号化されてもよい。
【００７３】
図６は、何らかの自然ビデオ（６２１）及び何らかの人工的に作成されたビデオコンテンツを含む混合コンテンツビデオ（６２０）を示している。人工的に作成されたビデオコンテンツは、自然ビデオ（６２１）の横にあるグラフィック（６２２）及び自然ビデオ（６２１）の下を横断するティッカー（ticker）（６２３）を含む。図５に示されるスクリーンキャプチャコンテンツと同様に、図６に示される人工的に作成されたビデオコンテンツは、相対的に少ない離散サンプル値を有する傾向にある。この人工的に作成されたビデオコンテンツはまた、（例えば、スクロールに起因して）フレームからフレームへと正確に繰り返される異なる構造（例えば、グラフィックス、テキスト文字）を有する傾向にある。
【００７４】
スクリーンキャプチャビデオ又は混合コンテンツビデオは、ディスプレイデバイスのための出力バッファから、又は、フレームを記憶している１以上の他のバッファから、周期的に読み出され得る。あるいは、スクリーンキャプチャビデオは、（ディスプレイデバイスのための出力バッファから値を周期的に読み出すことができる、オペレーティングシステムモジュールからのディスプレイコマンドをインターセプトすることができる、又は、表示されるサンプル値をキャプチャすることができる）スクリーンキャプチャモジュールから提供されてもよい。スクリーンキャプチャビデオ又は混合コンテンツビデオは、「ライブ」ストリームからのものであってもよいし、ストレージ内の以前に記録されたストリームからのものであってもよい。
【００７５】
Ｂ．異なるＭＶ精度
多くの符号化シナリオにおいて、スクリーンキャプチャビデオ又は他の人工的に作成されたビデオコンテンツを符号化するとき、ほとんどのＭＶ値が、整数サンプル空間変位を表し、非常に少ないＭＶ値が、小数サンプル空間変位を表す。これは、ＭＶ精度を低減させて全体性能を向上させる機会を与える。
【００７６】
図７ａは、整数サンプル空間変位を有するＭＶ（７２０）を用いる動き補償を示している。ＭＶ（７２０）は、現ブロックのための参照ピクチャ内の同一配置位置（７１０）に対して、左への４サンプル及び上への１サンプルである空間変位を示す。例えば、現ピクチャ内の位置（６４，９６）における４×４の現ブロックに関して、ＭＶ（７２０）は、参照ピクチャ内で位置（６０，９５）を有する４×４の予測領域（７３０）を示す。予測領域（７３０）は、参照ピクチャ内の整数サンプル位置における再構成されたサンプル値を含む。エンコーダ又はデコーダは、予測領域（７３０）のサンプル値を決定するための内挿を実行する必要がない。
【００７７】
図７ｂは、小数サンプル空間変位を有するＭＶ（７２１）を用いる動き補償を示している。ＭＶ（７２１）は、現ブロックのための参照ピクチャ内の同一配置位置（７１０）に対して、左への３．７５サンプル及び上への０．５サンプルである空間変位を示す。例えば、現ピクチャ内の位置（６４，９６）における４×４の現ブロックに関して、ＭＶ（７２１）は、参照ピクチャ内で位置（６０．２５，９５．５）を有する４×４の予測領域（７３１）を示す。予測領域（７３１）は、参照ピクチャ内の小数サンプル位置における内挿されたサンプル値を含む。エンコーダ又はデコーダは、予測領域（７３１）のサンプル値を決定するための内挿を実行する。小数サンプル空間変位が許容される場合、現ブロックに合致し得るより多くの候補領域が存在し、したがって、動き補償予測の質は、少なくともいくつかのタイプのビデオコンテンツ（例えば、自然ビデオ）に関して向上する。
【００７８】
ＭＶ精度が、ビデオのユニットに関して整数サンプル精度である場合、このユニット内のブロックの全てのＭＶ値は、整数サンプル空間変位を示す。ＭＶ精度が、ビデオのユニットに関して小数サンプル精度である場合、このユニット内のブロックのＭＶ値は、小数サンプル空間変位を示すこともあるし、整数サンプル空間変位を示すこともある。すなわち、ＭＶ精度が、ビデオのユニットに関して小数サンプル精度である場合、このユニット内のブロックのいくつかのＭＶ値は、小数サンプル空間変位を示すことがあるのに対し、このユニット内のブロックの他のＭＶ値は、整数サンプル空間変位を示すことがある。
【００７９】
動き推定及び動き補償を用いてブロックを符号化するとき、エンコーダは、しばしば、ブロックのサンプル値とその動き補償予測との間のサンプルごとの差（残差値又は誤差値とも呼ばれる）を算出する。次いで、残差値が符号化され得る。残差値に関して、符号化効率は、残差値の複雑度と、圧縮プロセスの一部としてどれだけの損失又は歪みがもたらされるかと、に依存する。一般に、良好な動き補償予測は、残差値が、効率的に符号化することができる小さな幅（amplitude）差であるように、ブロックをより良く近似する。一方、良好でない動き補償予測は、しばしば、効率的に符号化するのがより難しいより大きな幅値を含む残差値をもたらす。エンコーダは、通常、動き推定を実行し、良好な合致を見つけることを試み、それにより、レート歪み性能を向上させるのに、符号化時間の大部分を費やす。
【００８０】
コーデックが、整数サンプルＭＶ精度を有するＭＶ値を使用する場合、エンコーダ及びデコーダは、動き補償のための参照ピクチャのサンプル値間の内挿演算を実行する必要がない。なぜならば、ＭＶ値は、整数サンプル空間変位を示すからである。コーデックが、小数サンプルＭＶ精度を有するＭＶ値を使用する場合、エンコーダ及びデコーダは、動き補償のための参照ピクチャのサンプル値間の内挿演算を実行することがある（これは、少なくとも小数サンプル空間変位を示すＭＶ値に関しては計算複雑度を増大させる）が、動き補償予測は、整数サンプルＭＶ精度と比較して、ブロックをより良く近似する傾向にある（これは、より少ない大きな値（幅）を伴う残差値をもたらす）。
【００８１】
Ｃ．ＭＶ値の表現
ＭＶ値は、通常、整数値を使用して表現される。この整数値の意味は、関連付けられているＭＶ精度に依存する。整数サンプルＭＶ精度に関して、例えば、１という整数値は、１サンプルである空間変位を示し、２という整数値は、２サンプルである空間変位を示す、等である。１／４サンプルＭＶ精度に関して、例えば、１という整数値は、０．２５サンプルである空間変位を示す。２、３、４、及び５という整数値はそれぞれ、０．５サンプル、０．７５サンプル、１．０サンプル、及び１．２５サンプルである空間変位を示す。ＭＶ精度にかかわらず、整数値は、空間変位の大きさを示すことができ、セパレートフラグ値（separate  flag  value）は、変位が負であるか又は正であるかを示すことができる。所与のＭＶ値の水平ＭＶ成分及び垂直ＭＶ成分は、２つの整数値を使用して表現され得る。したがって、ＭＶ値を表現する２つの整数値の意味は、ＭＶ精度に依存する。例えば、２サンプルである水平変位を有し垂直変位を有さないＭＶ値に関して、ＭＶ精度が、１／４サンプルＭＶ精度である場合、このＭＶ値は、（８，０）として表現されるのに対し、ＭＶ精度が、整数サンプルＭＶ精度である場合、このＭＶ値は、（２，０）として表現される。
【００８２】
符号化ビデオデータのビットストリーム内のＭＶ値は、通常、（例えば、ＭＶ成分ごとに）エントロピ符号化される。ＭＶ値はまた、予測ＭＶ値に対して、（例えば、ＭＶ成分ごとに）差分符号化され得る。多くの場合、ＭＶ値は、予測ＭＶ値と等しいので、差分ＭＶ値はゼロであり、これは、非常に効率的に符号化することができる。差分ＭＶ値（又は、ＭＶ予測が用いられない場合にはＭＶ値）は、指数ゴロム符号化、コンテキスト適応バイナリ算術符号化、又は別の形態のエントロピ符号化を用いて、エントロピ符号化され得る。ＭＶ値（又は、差分ＭＶ値）と符号化ビットとの間の正確な関係は、使用されるエントロピ符号化の形態に依存するが、一般に、より小さな値は、より多く出現するため、より効率的に符号化され（すなわち、より少ないビットを用いて符号化され）、より大きな値は、あまり多く出現しないため、それほど効率的には符号化されない（すなわち、より多くのビットを用いて符号化される）。
【００８３】
Ｄ．適応的ＭＶ精度−序論
前述の３つのセクションをまとめると、整数サンプルＭＶ精度を有するＭＶ値を使用することは、ＭＶ値をシグナリングすることに関連するビットレートを低減させるとともに、（参照ピクチャ内の小数サンプル位置におけるサンプル値の内挿を回避することにより）符号化及び復号の計算複雑度を低減させる傾向にあるが、動き補償予測の質を低減させ、したがって、少なくともいくつかのビデオコンテンツに関しては残差値の幅を増大させ得る。一方、小数サンプルＭＶ精度を有するＭＶ値を使用することは、ＭＶ値をシグナリングすることに関連するビットレートを増大させるとともに、（参照ピクチャ内の小数サンプル位置におけるサンプル値の内挿を含むことにより）符号化及び復号の計算複雑度を増大させる傾向にあるが、動き補償予測の質を向上させ、少なくともいくつかのビデオコンテンツに関しては残差値の幅を低減させ得る。一般に、計算複雑度、ＭＶ値をシグナリングするためのビットレート、及び動き補償予測の質は、ＭＶ精度が増大すると（例えば、整数サンプルから１／２サンプルに増大すると、又は、１／２サンプルから１／４サンプルに増大すると）、最大で限界効用逓減（diminishing  returns）のポイントまで増大する。同時に、増大したＭＶ精度は、ＭＶ値をシグナリングするのに必要とされるビットレートを増大させる傾向にあるが、自然コンテンツを符号化するときには、動き補償予測の質の関連付けられた向上は、残差値の十分な近似を送信するのに必要とされるビットレートを低減させ、それにより、十分なピクチャ品質を有するビデオコンテンツを符号化するのに必要とされる総ビットレートを低減させ得る。
【００８４】
スクリーンキャプチャビデオ又は他の人工的に作成されたビデオコンテンツを符号化するとき、（ビットレート及び計算複雑度の観点での）小数サンプルＭＶ精度の増大したコストは、不当（unjustified）であり得る。例えば、ほとんどのＭＶ値が、整数サンプル空間変位を表し、非常に少ないＭＶ値が、小数サンプル空間変位を表す場合、小数サンプルＭＶ精度の増大したコストは、正当でない。エンコーダは、動き推定中、小数サンプル位置における探索をスキップすることができる（且つ、小数サンプル位置におけるサンプル値を決定するための内挿演算をスキップすることができる）。そのようなコンテンツに関して、ビットレート及び計算複雑度は、整数サンプルＭＶ精度を有するＭＶ値を使用することにより、動き補償予測の質への著しいペナルティなく、低減させることができる。
【００８５】
小数サンプルＭＶ精度は、他のタイプのビデオコンテンツ（例えば、カメラによりキャプチャされた自然ビデオ）に関してはそれでも有用であり得るので、エンコーダ及びデコーダは、ＭＶ精度を切り替えるよう適応され得る。例えば、エンコーダ及びデコーダは、スクリーンキャプチャビデオに関しては整数サンプルＭＶ精度を使用することができ、自然ビデオに関しては小数サンプルＭＶ精度（１／４サンプルＭＶ精度）を使用することができる。ＭＶ精度を選択するときにエンコーダが従い得るアプローチについて、次のセクションで説明する。エンコーダは、ビットストリーム内の１以上のシンタックス要素を使用して、選択されたＭＶ精度をデコーダにシグナリングすることができる。
【００８６】
ＭＶ精度をシグナリングする１つのアプローチにおいて、ＭＶ精度の適応的選択が有効にされている場合、エンコーダは、スライスごとにＭＶ精度を選択する。シーケンスパラメータセット（「ＳＰＳ」）、ピクチャパラメータセット（「ＰＰＳ」）、又は他のシンタックス構造内のフラグ値が、ＭＶ精度の適応的選択が有効にされているかどうかを示す。そうである場合、所与のスライスに関するスライスヘッダ内の１以上のシンタックス要素が、そのスライスのブロックに関する選択されたＭＶ精度を示す。例えば、０というフラグ値は、１／４サンプルＭＶ精度を示し、１というフラグ値は、整数サンプルＭＶ精度を示す。
【００８７】
ＭＶ精度をシグナリングする別のアプローチにおいて、エンコーダは、ピクチャごとに又はスライスごとにＭＶ精度を選択する。ＰＰＳ内のシンタックス要素は、次の３つのＭＶ精度モードのうちの１つを示す：（０）ＰＰＳに関連付けられているピクチャの１以上のスライスのＭＶ値に関して１／４サンプルＭＶ精度、（１）ＰＰＳに関連付けられているピクチャの１以上のスライスのＭＶ値に関して整数サンプルＭＶ精度、又は（２）スライスヘッダごとにシグナリングされるフラグ値に応じたスライス適応的ＭＶ精度（ここで、スライスのこのスライスヘッダ内のこのフラグ値は、スライスのＭＶ値に関して１／４サンプルＭＶ精度又は整数サンプルＭＶ精度を示すことができる）。一実装におけるこのアプローチに関するさらなる詳細については、ＪＣＴＶＣ−Ｐ０２７７を参照されたい。
【００８８】
ＭＶ精度をシグナリングするさらに別のアプローチにおいて、ＭＶ精度の適応的選択が有効にされている場合、エンコーダは、ＣＵごとにＭＶ精度を選択する。所与のＣＵに関する構造内の１以上のシンタックス要素が、そのＣＵのブロックに関する選択されたＭＶ精度を示す。例えば、ＣＵに関するＣＵシンタックス構造内のフラグ値は、ＣＵに関連付けられている全てのＰＵのＭＶ値が、整数サンプルＭＶ精度を有するか又は１／４サンプルＭＶ精度を有するかを示す。一実装におけるこのアプローチに関するさらなる詳細については、ＪＣＴＶＣ−Ｐ０２８３を参照されたい。
【００８９】
これらのアプローチのうちのいずれにおいても、エンコーダ及びデコーダは、水平ＭＶ成分及び垂直ＭＶ成分に関して異なるＭＶ精度を使用することができる。これは、水平方向又は垂直方向にスケーリングされているスクリーンキャプチャビデオを符号化するときに有用であり得る（例えば、スケーリングされていない次元では整数サンプルＭＶ精度を使用し、スケーリングされている次元では小数サンプルＭＶ精度を使用する）。いくつかの実装において、ＱＰ値の調整を介してだけではレート制御を達成できない場合、エンコーダは、ビットレートを低減させるために、水平方向又は垂直方向にスクリーンキャプチャビデオをリサイズし、次いで、リサイズされたビデオを符号化することがある。デコーダ側では、ビデオが、復号の後、その元の寸法に戻るようスケーリングされる。エンコーダは、（例えば、第１のフラグ値又は第１のシンタックス要素を使用して）水平ＭＶ成分に関するＭＶ精度をデコーダにシグナリングすることができ、（例えば、第２のフラグ値又は第２のシンタックス要素を使用して）垂直ＭＶ成分に関するＭＶ精度をデコーダにシグナリングすることができる。
【００９０】
より一般的に、ＭＶ精度の適応的選択が有効にされている場合、エンコーダは、ＭＶ精度を選択し、何らかの方法で、選択されたＭＶ精度をシグナリングする。例えば、ＳＰＳ、ＰＰＳ、又は他のシンタックス構造内のフラグ値は、ＭＶ精度の適応的選択が有効にされているかどうかを示すことができる。適応的ＭＶ精度が有効にされている場合、シーケンスレイヤシンタックス、グループオブピクチャレイヤシンタックス（「ＧＯＰレイヤシンタックス」）、ピクチャレイヤシンタックス、スライスレイヤシンタックス、タイルレイヤシンタックス、ブロックレイヤシンタックス、又は別のシンタックス構造内の１以上のシンタックス要素は、ＭＶ値に関する選択されたＭＶ精度を示すことができる。あるいは、シーケンスレイヤシンタックス、ＧＯＰレイヤシンタックス、ピクチャレイヤシンタックス、スライスヘッダレイヤシンタックス、スライスデータレイヤシンタックス、タイルレイヤシンタックス、ブロックレイヤシンタックス、又は別のシンタックス構造内の１以上のシンタックス要素は、異なるＭＶ成分に関するＭＶ精度を示すことができる。２つの利用可能なＭＶ精度が存在する場合、フラグ値は、これら２つのＭＶ精度の間の選択を示すことができる。さらに多くの利用可能なＭＶ精度が存在する場合、整数値は、これらＭＶ精度の間の選択を示すことができる。
【００９１】
１以上の選択されたＭＶ精度を示すシンタックス要素をシグナリングする／解析する変更とは別に、復号は、選択されたＭＶ精度に応じて、シグナリングされたＭＶ値がどのように解釈されるかを変えるように変更され得る。ＭＶ値がどのように符号化され再構成されるかの詳細は、ＭＶ精度に応じて変わり得る。例えば、ＭＶ精度が、整数サンプル精度である場合、予測ＭＶ値は、最も近い整数に丸められ得、差分ＭＶ値は、整数サンプルオフセットを示し得る。あるいは、ＭＶ精度が、１／４サンプル精度である場合、予測ＭＶ値は、最も近い１／４サンプルオフセットに丸められ得、差分ＭＶ値は、１／４サンプルオフセットを示し得る。あるいは、ＭＶ値は、何らかの他の方法でシグナリングされ得る。ＭＶ値が、整数サンプルＭＶ精度を有し、ビデオが、４：２：２クロマサンプリング又は４：２：０クロマサンプリングを使用している場合、クロマＭＶ値は、スケーリングすること等により導出され得、これは、クロマに関して１／２サンプル変位をもたらし得る。あるいは、クロマＭＶ値は、整数値に丸められ得る。
【００９２】
Ｅ．ＭＶ精度を選択するアプローチ
ＭＶ精度が、ビデオ符号化中に適応され得る場合、エンコーダは、ビデオのユニットに関するＭＶ精度を選択する。エンコーダは、ビデオソースからの暗示（hint）に基づいて、使用する１以上のＭＶ精度を選択することができる（以下のアプローチ１を参照されたい）。例えば、ビデオソースは、ビデオが、スクリーンキャプチャビデオ又は（カメラからキャプチャされた）自然ビデオであることを示すことができる。あるいは、エンコーダは、様々なＭＶ精度の包括的評価（exhaustive  evaluation）に基づいて、１以上のＭＶ精度を選択することができる（以下のアプローチ２を参照されたい）。あるいは、エンコーダは、以前のユニットからの統計データ及び／又は符号化されている現ユニットに関する統計データの解析に基づいて、１以上のＭＶ精度を選択することができる（以下のアプローチ３〜４を参照されたい）。
【００９３】
ＭＶ精度を選択するこれらのアプローチのうちのいくつかは、スクリーンキャプチャ符号化シナリオに適応され得る。他のアプローチは、より一般的に、任意のタイプのビデオコンテンツを符号化するときに適用される。
【００９４】
このセクションに記載のいくつかの例において、エンコーダは、１／４サンプルＭＶ精度を使用することと整数サンプルＭＶ精度を使用することとの間で選択する。より一般的に、エンコーダは、整数サンプルＭＶ精度、１／２サンプルＭＶ精度、１／４サンプルＭＶ精度、及び／又は別のＭＶ精度を含み得る複数の利用可能なＭＶ精度の間で選択する。
【００９５】
エンコーダが、ビデオのユニットに関するＭＶ精度を選択するとき、ビデオのユニットは、シーケンス、ＧＯＰ、ピクチャ、スライス、タイル、ＣＵ、ＰＵ、他のブロック、又は他のタイプのビデオのユニットであり得る。複雑度と柔軟性との間の所望されるトレードオフに応じて、より高い局所的な単位で（例えば、ＣＵごとに）、より大きな領域の単位で（例えば、タイルごとに又はスライスごとに）、ピクチャ全体単位で、又は、より大域的な単位で（例えば、符号化セッションごとに、シーケンスごとに、ＧＯＰごとに、又は、検出されたシーン変化の間の一連のピクチャごとに）ＭＶ精度を選択することが、適切であり得る。
【００９６】
１．アプリケーション、オペレーティングシステム、又はビデオシーケンスからの暗示を用いるアプローチ
エンコーダは、アプリケーション、オペレーティングシステム、又はビデオシーケンスによりシグナリングされた暗示に基づいて、ＭＶ精度を選択することができる。例えば、暗示は、符号化されるビデオコンテンツが、ワードプロセッサ、スプレッドシートアプリケーション、又はウェブブラウザにより、（自然ビデオコンテンツであり得る埋め込みビデオ領域なく）レンダリングされた、ということを示すことができる。そのようなアプリケーションによるレンダリングは、コンテンツの整数サンプル空間変位のみをもたらす傾向にある。エンコーダは、そのような暗示に基づいて、整数サンプルＭＶ精度を選択することができる。ワードプロセッサ、スプレッドシートアプリケーション、ウェブブラウザ、又は、自然ビデオコンテンツを通常レンダリングしない他のアプリケーションによりレンダリングされたコンテンツに関して、整数サンプルＭＶ精度は、小数サンプルＭＶ精度より適切である可能性が高い（しかしながら、ビデオがリサイズされている場合、小数サンプルＭＶ精度が適切であることもある）。
【００９７】
あるいは、暗示は、ビデオコンテンツが、スクリーンキャプチャモジュール、又は、人工的に作成されたビデオコンテンツを通常供給する他のビデオソースにより供給された、ということを示すことができる。そのようなコンテンツに関して、整数サンプルＭＶ精度は、小数サンプルＭＶ精度より適切である可能性が高いので、エンコーダは、整数サンプルＭＶ精度を選択する（しかしながら、ビデオがリサイズされている場合、小数サンプルＭＶ精度が適切であることもある）。
【００９８】
一方、ビデオコンテンツが、カメラ、ＤＶＤ若しくは他のディスク、又はチューナカードにより供給された、あるいは、ビデオプレーヤによりレンダリングされた、ということを暗示が示す場合、エンコーダは、小数サンプルＭＶ精度を選択することができる。そのようなコンテンツに関して、小数サンプルＭＶ精度は、整数サンプルＭＶ精度より適切である可能性が高い。
【００９９】
暗示は、符号化セッション、一連のフレーム、１つのビデオフレーム、又はビデオフレームの一部（アプリケーションに関連付けられているウィンドウに対応する領域等）に適用することができる。
【０１００】
いくつかの場合において、エンコーダは、ビデオソース、オペレーティングシステム、又はアプリケーションにより提供される、ビデオコンテンツの性質に関する暗示を受信しないことがある、あるいは、エンコーダは、ビデオソース、オペレーティングシステム、又はアプリケーションにより提供された、ビデオコンテンツの性質に関する暗示を解釈できないことがある。あるいは、暗示は、誤っている又は誤らせることがある（例えば、自然ビデオコンテンツ及び人工的に作成されたビデオコンテンツを含む混合コンテンツビデオに関して、又は、リサイズされているビデオに関して）。そのような場合、エンコーダは、どの１以上のＭＶ精度が選択されるべきかを決定する別のアプローチを使用することができる。
【０１０１】
２．総当たり符号化アプローチ
ＭＶ精度を選択する別のセットのアプローチにおいて、エンコーダは、異なるＭＶ精度を使用して、ビデオのユニットを複数回符号化する（例えば、整数サンプルＭＶ精度を使用して１回符号化し、１／４サンプルＭＶ精度を使用して１回符号化する）。エンコーダは、最良性能を提供するＭＶ精度を選択し、出力のためにユニットを符号化するとき、選択されたＭＶ精度を使用する。ビデオのユニットは、ブロック、ＰＵ、ＣＵ、スライス、タイル、ピクチャ、ＧＯＰ、シーケンス、又は他のタイプのブロックのユニットであり得る。通常、エンコーダは、そのようなアプローチにおいて、複数のパス（pass）の符号化を実行する。
【０１０２】
どのＭＶ精度が最良性能を提供するかを評価するために、エンコーダは、異なるＭＶ精度が、ユニットの符号化中に使用されたときのレート歪みコストを決定し、最小レート歪みコストを有するオプションを選択することができる。レート歪みコストは、歪みコストＤ及びビットレートコストＲを有し、歪みコストに対してビットレートコストを重み付けする係数λ（すなわち、レート歪みコストはＤ＋λＲである）、又は、ビットレートコストに対して歪みコストを重み付けする係数λ（すなわち、レート歪みコストはＲ＋λＤである）を伴う（係数λは、しばしば、ラグランジュ乗数と呼ばれる）。ビットレートコストは、推定されたビットレートコスト又は実際のビットレートコストであり得る。一般に、歪みコストは、オリジナルのサンプルと再構成されたサンプルとの比較に基づく。歪みコストは、絶対差分和（「ＳＡＤ」）、絶対アダマール変換差分和（「ＳＡＨＤ（sum  of  absolute  Hadamard-transformed  differences）」）、若しくは他の絶対変換差分和（「ＳＡＴＤ（sum  of  absolute  transformed  differences）」）、誤差二乗和（「ＳＳＥ」）、平均二乗誤差（「ＭＳＥ」）、平均分散、又は別の歪みメトリックとして測定され得る。係数λは、符号化中に変化し得る（例えば、量子化ステップサイズがより大きいときには、ビットレートコストの相対重みを増大させる）。レート歪みコストは、通常、異なるＭＶ精度オプションの性能の最も正確な評価を提供するが、最大計算複雑度を有する。
【０１０３】
エンコーダは、レート歪みコスト関数の項のうちの１以上の項を変えて、整数サンプルＭＶ精度オプションを優先するようにレート歪み分析をバイアス調整することができる。例えば、複数のＭＶ精度の間で決定するためにレート歪み分析を用いてビデオのユニットに関するＭＶ精度を決定するとき、レート歪み分析は、歪みコストをスケーリングすること、歪みコストにペナルティを加えること、ビットレートコストをスケーリングすること、ビットレートコストにペナルティを加えること、及び／又は、ラグランジュ乗数係数を調整すること、により、整数サンプルＭＶ精度を優先するようにバイアス調整される。小数サンプルＭＶ精度を評価するとき、エンコーダは、（１より大きい係数の分だけ）歪みコストを増大させることができる、（１より大きい係数の分だけ）ビットレートコストを増大させることができる、歪みペナルティを加えることができる、ビットレートペナルティを加えることができる、且つ／又は、より大きなラグランジュ乗数係数を使用することができる。あるいは、整数サンプルＭＶ精度を評価するとき、エンコーダは、（１より大きい係数の分だけ）歪みコストを低減させることができる、（１より大きい係数の分だけ）ビットレートコストを低減させることができる、且つ／又は、より小さなラグランジュ乗数係数を使用することができる。
【０１０４】
エンコーダは、符号化中、整数サンプルＭＶ精度を優先するように又は優先しないように、バイアスの程度を変えることができる。例えば、エンコーダは、整数サンプルＭＶ値がビデオコンテンツを符号化するのにより適切である可能性が高い信頼度に応じて、整数サンプルＭＶ精度を優先するように、バイアスを調整することができる（例えば、ビデオコンテンツが、人工的に作成されたコンテンツである可能性が高い場合、整数サンプルＭＶ精度を優先するように、バイアスを増大させる）。あるいは、エンコーダは、符号化及び／又は復号の計算能力に応じて、整数サンプルＭＶ精度を優先するように、バイアスを調整することができる（例えば、利用可能な計算能力がより低い場合、整数サンプルＭＶ精度を優先するように、バイアスを増大させる）。
【０１０５】
代替的に、エンコーダは、どのＭＶ精度が最良性能を提供するかを評価する別のアプローチを使用してもよい。例えば、エンコーダは、所与の量子化ステップサイズに関して、どのＭＶ精度が符号化データの最少ビットをもたらすかを測定する。あるいは、エンコーダは、異なるＭＶ精度を使用する符号化に関する歪みのみを評価する。あるいは、エンコーダは、整数サンプルＭＶ精度と比較した小数サンプルＭＶ精度の歪み低減便益（benefit）等のより単純な測定を用いてもよい。これは、単一のパスの符号化において決定するのに十分単純であり得る。例えば、エンコーダは、小数サンプルＭＶ精度が使用されたときと、整数サンプルＭＶ精度が使用されたときと、を比較して、（ＳＡＤ、ＳＡＴＤ、ＴＳＥ、ＭＳＥ、又は別の歪みメトリックの観点で）歪み低減の量を調べる。
【０１０６】
総当たり符号化アプローチは、計算集約的であり得る。総当たり符号化アプローチは、固定ＭＶ精度を使用する符号化と比較して、著しいさらなる演算、さらなるメモリストレージ、並びにさらなるメモリ読み出し操作及びメモリ書き込み操作を潜在的に伴う。
【０１０７】
３．コンテンツ解析を用いるアプローチ
ＭＶ精度を選択する別のセットのアプローチにおいて、エンコーダは、入力ビデオコンテンツ及び／又は符号化ビデオコンテンツの解析に基づいて、ビデオのユニットに関するＭＶ精度を選択する。ビデオのユニットは、ブロック、ＰＢ、ＰＵ、ＣＵ、ＣＴＵ、サブマクロブロックパーティション、マクロブロック、スライス、タイル、ピクチャ、ＧＯＰ、シーケンス、又は他のタイプのビデオのユニットであり得る。
【０１０８】
図８は、符号化中にＭＶ精度を適応させるための技術（８００）を示している。技術（８００）は、図３若しくは図４ａ及び図４ｂを参照して説明したエンコーダ等のエンコーダにより、又は別のエンコーダにより、実行され得る。技術（８００）に従って、エンコーダは、ビデオの符号化中に、ビデオのユニットに関する複数のＭＶ精度の中から、ＭＶ精度を決定する。複数のＭＶ精度は、１以上の小数サンプルＭＶ精度及び整数サンプルＭＶ精度を含み得る。例えば、複数のＭＶ精度は、整数サンプルＭＶ精度及び１／４サンプルＭＶ精度を含み得る。あるいは、複数のＭＶ精度は、整数サンプルＭＶ精度、１／２サンプルＭＶ精度、及び１／４サンプルＭＶ精度を含み得る。
【０１０９】
詳細には、ビデオのユニットを符号化するとき、エンコーダは、ＭＶ精度を変更するかどうかを決定する（８１０）。符号化の始めにおいて、エンコーダは、デフォルト値に従って、ＭＶ精度を初期設定することができる、又は、ＭＶ精度を変更するかどうかに進むことができる。ビデオの後続ユニットに関して、エンコーダは、（１以上の以前に符号化されたユニットに関して使用された）現ＭＶ精度を使用することもあるし、ＭＶ精度を変更することもある。例えば、エンコーダは、定められたイベントが発生すると（例えば、閾値数のユニットの符号化の後、シーン変化の後、ビデオのタイプが変わったという判定の後）、ＭＶ精度を変更することを決定することができる。
【０１１０】
ＭＶ精度を変更するために、エンコーダは、ビデオに関する情報を収集する（８２０）。一般に、収集される情報は、入力ビデオの特性又は符号化ビデオの特性であり得る。収集される情報は、符号化されている現ユニットに関連し得る、且つ／又は、ビデオの１以上の以前に符号化されたユニットに関連し得る。（収集される情報が、ビデオの１以上の以前に符号化されたユニットに関連する場合、そのような情報の収集（８２０）は、１以上の以前のユニットの符号化前、符号化中、又は符号化後に生じ得る。この収集（８２０）は、図８に示されるタイミングとは異なり、ＭＶ精度の変更に関する決定（８１０）にかかわらず生じる。）次いで、エンコーダは、収集された情報に少なくとも部分的に基づいて、ビデオのユニットに関するＭＶ精度を選択する（８３０）。
【０１１１】
一例として、エンコーダは、現ユニットのサンプル値を収集することができる。少数の離散サンプル値の存在は、スクリーンキャプチャコンテンツを示す傾向にあり、したがって、整数サンプルＭＶ精度が選択されるべきであることを示す。一方、多数の離散サンプル値の存在は、自然ビデオを示す傾向にあり、したがって、小数サンプルＭＶ精度が選択されるべきであることを示す。サンプル値は、ヒストグラムとして編成され得る。サンプル値は、ＹＵＶ色空間におけるルマ（Ｙ）サンプルのみから、ＹＵＶ色空間におけるルマサンプル及びクロマ（Ｕ、Ｖ）サンプルから、ＲＧＢ色空間におけるＲサンプル、Ｇサンプル、及びＢサンプルから、又は、ＲＧＢ色空間におけるＧサンプル（又はＲサンプル若しくはＢサンプル）のみから収集され得る。例えば、ＭＶ精度を選択するとき、エンコーダは、収集されたサンプル値から、異なるサンプル値の総数を決定する。エンコーダは、総数を閾数と比較する。総数が、閾数より少ない場合、エンコーダは、整数サンプルＭＶ精度を選択する。総数が、閾数より多い場合、エンコーダは、小数サンプルＭＶ精度を選択する。境界条件（総数が閾数と等しい場合）は、実装に応じて、いずれかのオプションを使用するよう処理され得る。あるいは、エンコーダは、収集されたサンプル値からの統計量を別の形で考慮に入れる。例えば、エンコーダは、ｘの最も頻繁に出現した収集されたサンプル値が、サンプル値のうちのｙ％を超えているかどうかを判定する。そうである場合、エンコーダは、整数サンプルＭＶ精度を選択し、そうでない場合、エンコーダは、小数サンプルＭＶ精度を選択する。ｘ及びｙの値は、実装に依存する。ｘの値は、１０又は何らかの他の数とすることができる。ｙの値は、８０、９０、又は１００未満の何らかの他のパーセンテージとすることができる。
【０１１２】
別の例として、エンコーダは、それぞれのＭＶ精度を使用して符号化された現ユニットのブロックの歪み測定値（distortion  measures）を収集することができる。例えば、エンコーダは、整数サンプルＭＶ精度と比較した小数サンプルＭＶ精度を使用したときの歪みの改善（低減）を記録する。ＭＶ精度を選択するとき、エンコーダは、歪みの低減が、ＭＶ精度の増大を正当化する（justify）ものであるかどうかを判定する。
【０１１３】
別の例として、エンコーダは、１以上の以前のユニットのＭＶ値（小数サンプルＭＶ精度を有するもの）を収集することができる。収集されたＭＶ値は、小数部分の値に従って編成され得る。例えば、１／４サンプルＭＶ精度のＭＶ値に関して、収集されたＭＶ値は、ゼロである小数部分を有するＭＶ値のビンと、０．２５である小数部分を有するＭＶ値のビンと、０．５である小数部分を有するＭＶ値のビンと、０．７５である小数部分を有するＭＶ値のビンと、を含むヒストグラムにおいて編成され得る。このアプローチの低複雑度の変形形態については、次のセクションで説明する。
【０１１４】
別の例として、エンコーダは、小数サンプルＭＶ精度を使用して符号化されたブロックのＭＶデータ（差分ＭＶ値）に関する符号化ビットの数に関する情報を収集することができる。差分ＭＶ値に関する低平均数のビットは、規則的な（予測可能な）動きを示し、整数サンプルＭＶ精度が適切であろうときにより一般的である。差分ＭＶ値に関して使用された高平均数のビットは、小数サンプルＭＶ精度が適切であろうときにより一般的である。ＭＶ精度を選択するとき、エンコーダは、差分ＭＶ値に関する符号化ビットの数の間で、ビットの平均数（又は、中央数）を測定する。エンコーダは、この測定した数を閾数と比較する。測定した数が、閾数より少ない場合、エンコーダは、整数サンプルＭＶ精度を選択する。測定した数が、閾数より多い場合、エンコーダは、小数サンプルＭＶ精度を選択する。境界条件（測定した数が閾数と等しい場合）は、実装に応じて、いずれかのオプションを使用するよう処理され得る。
【０１１５】
別の例として、ユニットを符号化するとき、エンコーダは、ユニットのブロック（例えば、ＰＵ）ごとに、複数のＭＶ精度を評価し、どのＭＶ精度が当該ブロックに関して最良性能を提供するかを示す、ブロックごとの情報を収集する。エンコーダは、ブロックが整数サンプルＭＶ精度を使用して符号化されたときのレート歪みコスト（例えば、Ｄ＋λＲ）を決定することができ、また、ブロックが小数サンプルＭＶ精度を使用して符号化されたときのレート歪みコスト（例えば、Ｄ＋λＲ）を決定することができる。エンコーダは、複数のＭＶ精度の各ＭＶ精度が、ユニット内のそれぞれのブロックに関して何回最良であったかを判定し、最大回数であったＭＶ精度を選択する。例えば、ピクチャ内のブロックの各々について、エンコーダは、ブロックが整数サンプルＭＶ精度を使用して符号化されたときのレート歪みコストを決定し、また、ブロックが１／４サンプルＭＶ精度を使用して符号化されたときのレート歪みコストを決定する。エンコーダは、整数サンプルＭＶ精度の方が良かったであろう回数と、１／４サンプルＭＶ精度の方が良かったであろう回数と、を計数し、次いで、これらの回数のうち多い方を選択する。代替的に、エンコーダは、整数サンプルＭＶ精度が、ユニットのブロックに関して何回最良であったかの数を決定し、次いで、この数が、ユニット内のブロックの数の閾パーセンテージの数より多い場合に限り、整数サンプルＭＶ精度を選択する。いくつかの実装において、エンコーダは、あらゆる値であるＭＶを有するブロックを考慮に入れる。他の実装において、エンコーダは、ゼロ値でないＭＶを有するブロックのみを考慮に入れる。複数のＭＶ精度のブロックごとのこの評価は、所与のユニットに関して使用されるＭＶ精度モードにかかわらず、１以上の後続ユニットに関するＭＶ精度を選択するために、所与のユニットのブロックに対して実行され得る。あるいは、複数のＭＶ精度のブロックごとのこの評価は、所与のユニットに関するＭＶ精度を選択するために、所与のユニットに対して実行され得る。
【０１１６】
代替的に、エンコーダは、情報を収集し、収集された情報に少なくとも部分的に基づいてＭＶ精度を選択する別のアプローチを使用してもよい。
【０１１７】
図８に戻ると、エンコーダは、ＭＶ精度を変更したか否かにかかわらず、選択されたＭＶ精度を使用して、ユニットを符号化する（８４０）。ビデオのユニット内のブロック（例えば、ＰＵ、マクロブロック、又は他のブロック）のＭＶ値は、選択されたＭＶ精度を有する。エンコーダは、例えばビットストリーム内に、現ユニットの符号化されたデータを出力する。符号化されたデータは、選択されたＭＶ精度を示すシンタックス要素を含み得る。
【０１１８】
エンコーダは、次のユニットに対して継続するかどうかを決定する（８５０）。そうである場合、エンコーダは、次のユニットに関してＭＶ精度を変更するかどうかを決定する（８１０）。したがって、ＭＶ精度は、ユニットごとに（例えば、セグメントごとに、ＧＯＰごとに、ピクチャごとに、スライスごとに、ＣＴＵごとに、ＣＵごとに、ＰＵごとに、ＰＢごとに、マクロブロックごとに、サブマクロブロックパーティションごとに）選択され得る。あるいは、複雑度を低減させるために、ユニットに関するＭＶ精度は、適宜に（例えば、周期的に、又は、定められたイベントが発生すると）変更され、次いで、１以上の後続ユニットに対して繰り返され得る。
【０１１９】
エンコーダが、ピクチャからピクチャへと同じパターンのタイルを使用する場合、エンコーダは、ピクチャからピクチャへと、タイルごとのＭＶ精度を繰り返すことができる。ピクチャからピクチャへ同一配置のタイルは、同じＭＶ精度を使用することができる。同様に、ピクチャからピクチャへ同一配置のスライスは、同じＭＶ精度を使用することができる。例えば、ビデオが、コンピュータデスクトップを表し、コンピュータデスクトップの一部が、自然ビデオコンテンツを表示するウィンドウを有すると仮定する。コンピュータデスクトップのその領域内では、ピクチャからピクチャへと小数サンプルＭＶ精度が使用され得るのに対し、テキスト又は他のレンダリングされたコンテンツを表示する他の領域は、整数サンプルＭＶ精度を使用して符号化される。
【０１２０】
このセットのアプローチにおいて、エンコーダは、シングルパス符号化を使用することができる。ビデオの符号化されている現ユニットに関して、現ユニットに関する選択されるＭＶ精度は、ビデオの１以上の以前のユニット（時間順とも呼ばれる入力順、出力順、又は表示順ではなく、復号順とも呼ばれる符号化順又はビットストリーム順）からの収集された情報に少なくとも部分的に依存する。
【０１２１】
代替的に、このセットのアプローチにおいて、エンコーダは、マルチパス符号化又はショートルックアヘッドウィンドウ（short  look-ahead  window）を用いた符号化（時として１．５パス符号化とも呼ばれる）を使用してもよい。ビデオの符号化されている現ユニットに関して、選択されるＭＶ精度は、現ユニットからの収集された情報に少なくとも部分的に依存する。現ユニットに関する選択されるＭＶ精度はまた、ビデオの１以上の以前のユニット（入力順ではなく、符号化順）からの収集された情報にも少なくとも部分的に依存し得る。
【０１２２】
このセットのアプローチにおいて、エンコーダは、整数サンプルＭＶ精度が適切である信頼度に少なくとも部分的に基づいて、整数サンプルＭＶ精度を優先するように又は優先しないように、バイアスの量を調整することできる。エンコーダはまた、符号化及び／又は復号の計算能力に少なくとも部分的に基づいて、整数サンプルＭＶ精度を優先するように又は優先しないように、バイアスの量を調整することできる（より少ない計算能力しか利用可能でない場合、計算複雑度を低減させるために、整数サンプルＭＶ精度を優先する）。例えば、整数サンプルＭＶ精度の選択を優先するために、エンコーダは、整数サンプルＭＶ精度が選択される可能性をより高くするように、比較演算において使用される閾値を調整することができる。
【０１２３】
このセットのアプローチにおいて、選択されるＭＶ精度は、ビデオのユニット内のブロックのＭＶ値の水平ＭＶ成分及び／又は垂直ＭＶ成分に関するものであり得、この場合、水平ＭＶ成分及び垂直ＭＶ成分は、異なるＭＶ精度を有することが許容される。あるいは、選択されるＭＶ精度は、ビデオのユニット内のブロックのＭＶ値の水平ＭＶ成分及び垂直ＭＶ成分の両方に関するものであり得、この場合、水平ＭＶ成分及び垂直ＭＶ成分は、同じＭＶ精度を有する。
【０１２４】
このセットのアプローチにおいて、（例えば、ビットストリーム内の）符号化されたビデオは、ユニットに関する選択されたＭＶ精度を示す１以上のシンタックス要素を含む。代替的に、符号化されたビデオは、ユニットに関する選択されたＭＶ精度を示すシンタックス要素を含まなくてもよい（以下の非標準的（non-normative）アプローチに関するセクションを参照されたい）。例えば、ビットストリームが、小数サンプルＭＶ精度を有するＭＶ値のシグナリングをサポートしているとしても、エンコーダは、ゼロである小数部分を有するＭＶ値のみを使用するように、ビデオのユニットの動き推定を制約することができる。これは、内挿演算を回避することにより、符号化及び復号の計算複雑度を低減させることができる。
【０１２５】
４．低複雑度コンテンツ解析を用いるアプローチ
決定プロセスを単純化するために、エンコーダは、ＭＶ精度を選択する前に、より小さなセットのデータを考慮に入れて、又は、ＭＶ精度を選択するときにより単純な決定ロジックを使用して、複数のパスの符号化を回避することができる。
【０１２６】
図９は、低複雑度アプローチを用いて符号化中にＭＶ精度を適応させるための技術（９００）を示している。技術（９００）は、図３若しくは図４ａ及び図４ｂを参照して説明したエンコーダ等のエンコーダにより、又は別のエンコーダにより、実行され得る。技術（９００）は、図８を参照して説明した、ビデオに関する情報を収集し、収集された情報に少なくとも部分的に基づいて、ＭＶ精度を選択する１つのアプローチを詳細に示すものである。
【０１２７】
技術（９００）に従って、エンコーダは、ビデオの符号化中に、ビデオのユニットに関するＭＶ精度を決定する。ユニットに関するＭＶ精度を決定するとき、エンコーダは、小数サンプルＭＶ精度を有するＭＶ値のセットを識別する（９１０）。ＭＶ値のこのセットは、ゼロ値であるＭＶ及びゼロ値でないＭＶを含むことが許容され得る。あるいは、ＭＶ値のこのセットは、ゼロ値でないＭＶのみを含むように制約され得る。あるいは、ＭＶ値のこのセットは、所定のブロックサイズ以上のブロックからのゼロ値でないＭＶのみを含むようにさらに制約され得る。
【０１２８】
エンコーダは、ＭＶ値のセット内でのゼロである小数部分を有するＭＶ値の優勢率に少なくとも部分的に基づいて、ユニットに関するＭＶ精度を選択する（９２０）。優勢率は、ゼロである小数部分を有するＭＶ値のセットの割合の観点で、測定され得る。例えば、ピクチャに関して、エンコーダは、ゼロである小数部分を有するＭＶ値のパーセンテージを決定することができる。あるいは、ＭＶ値のセットを使用する領域又は領域のセットに関して、優勢率は、ゼロである小数部分を有するその領域又は領域のセットの割合の観点で、測定され得る。そのような割合が、閾値を超えている場合、ユニットに関する選択されるＭＶ精度は、整数サンプルＭＶ精度である。そのような割合が、閾値を超えていない場合、ユニットに関する選択されるＭＶ精度は、小数サンプルＭＶ精度である。境界条件（割合が閾値と等しい場合）は、実装に応じて、いずれかのオプションを使用するよう処理され得る。
【０１２９】
ユニットに関するＭＶ精度の選択（９２０）はまた、閾量のゼロ値でないＭＶが存在する場合に整数サンプルＭＶ精度への切り替えが許容されるように、ゼロ値でないＭＶの優勢率にも少なくとも部分的に基づき得る。ゼロ値でないＭＶの優勢率は、ゼロ値でないＭＶであるＭＶ値の割合の観点で、ゼロ値でないＭＶを使用するブロックの総数の観点で、又は、ゼロ値でないＭＶを使用する領域又は領域のセットの割合の観点で、測定され得る。この場合、小数サンプルＭＶ精度を有するＭＶ値のセットが、その領域又は領域のセットのゼロ値でないＭＶの中から識別され得る。したがって、エンコーダは、ゼロ値でないＭＶのセット内での、ゼロである小数部分を有する、ゼロ値でないＭＶの優勢率を考慮に入れることができる。例えば、エンコーダは、次の２つの条件が満たされた場合、整数サンプルＭＶ精度に切り替える：（１）十分に大量のゼロ値でないＭＶが検出されたこと、及び（２）ゼロ値でないＭＶのこのセット内に、ゼロである小数部分を有するＭＶ値が十分多く存在すること（又は、代替的に、ゼロでない小数部分を有するＭＶ値が十分少ないこと）。ゼロ値でないＭＶの優勢率及びゼロである小数部分を有するＭＶ値の優勢率は、（関連付けられているブロックサイズにかかわらず）ＭＶ値を計数することにより、又は、ＭＶ値について関連付けられているブロックサイズを考慮に入れることにより（例えば、いくつかのＭＶ値は、他のブロックより大きなブロックに適用されるため）、決定され得る。
【０１３０】
エンコーダは、ユニットに関する選択されたＭＶ精度を使用して、ユニットを符号化する。ビデオのユニット内のブロック（例えば、ＰＵ、マクロブロック、又は他のブロック）のＭＶ値は、ユニットに関する選択されたＭＶ精度を有する。エンコーダは、例えばビットストリーム内に、現ユニットの符号化されたデータを出力する。符号化されたデータは、ユニットに関する選択されたＭＶ精度を示すシンタックス要素を含み得る。
【０１３１】
エンコーダがＭＶ精度を設定するのに費やす時間を短くするために、整数サンプルＭＶ精度が、ユニットに関して選択された後、選択されたＭＶ精度は、イベントがＭＶ精度を小数サンプルＭＶ精度に再度切り替えさせるまで、ビデオの後続ユニットに関しても使用され得る。例えば、イベントは、定められた数のユニットの符号化、シーン変化、又は、符号化中の観測に基づく、小数サンプルＭＶ精度への再度の切り替えが有効であるとの判定であり得る。
【０１３２】
１つの例示的な実装において、エンコーダは、ビデオのユニット（例えば、ピクチャ、タイル、スライス、又はＣＵ）を１回だけ符号化する。最初に、エンコーダは、１／４サンプルＭＶ精度を使用してユニットを符号化する。エンコーダは、符号化中、ＭＶ値の小数部分がゼロであるか否かを判定する。例えば、エンコーダは、ゼロでない小数部分を有するＭＶ値の割合を測定する。あるいは、いくつかのＭＶ値は、他のピクチャ領域より大きなピクチャ領域に影響を及ぼすので、エンコーダは、ゼロでない小数部分を有するＭＶ値を使用した１以上のインターピクチャ予測領域の割合を測定する（ＭＶ値の総数ではなく、面積を測定する）。割合が、閾値（実装に依存するが、例えば７５％である）を超えている場合、エンコーダは、ビデオの１以上の後続ユニットに関して、整数サンプルＭＶ精度に切り替える。
【０１３３】
この例示的な実装において、エンコーダが、整数サンプルＭＶ精度に切り替えた後、エンコードは、無制限に、又は、定められたイベントが小数サンプルＭＶ精度への再度の切り替えをトリガするまで少なくとも一時的に、整数サンプルＭＶ精度を保つことができる。イベントは、例えば、特定の数のユニット（例えば、１００個のユニット）の符号化であり得る。あるいは、イベントは、シーン変化であり得る。あるいは、イベントは、符号化している間に収集された統計量に基づく、小数サンプルＭＶ精度への再度の切り替えが有効である可能性が高いとの判定であり得る。（このような統計量は、小数サンプルＭＶ精度が、何らかの制限された量の領域に対してより良く機能していたであろうかどうかを判定するために、そのような領域の符号化中に収集され、次いで、１以上のユニットに関してＭＶ精度を切り替えるために適用され得る。）
【０１３４】
ビデオコンテンツが、自然ビデオコンテンツであろうが人工的に作成されたビデオコンテンツであろうが、ビデオの大部分は、静止しているものであり得る。例えば、静止している部分は、自然ビデオ内の固定背景又はスクリーンキャプチャコンテンツ内の固定コンテンツであり得る。ビデオの静止している部分は、ゼロ値であるＭＶを有し、これらのゼロ値であるＭＶは、ＭＶ精度が小数サンプルＭＶ精度である場合、ゼロである小数部分を有する。著しい数のゼロ値であるＭＶの存在は、ゼロでない小数部分を有するＭＶ値の割合を考慮に入れる決定ロジックを混乱させ得る。
【０１３５】
したがって、エンコーダは、考慮から、ゼロ値であるＭＶを除外することができる。図１０は、（ほとんどが）ゼロ値であるＭＶである１つの動きのない部分（１００１）と、（ほとんどが）ゼロ値でないＭＶである２つの動きのある部分（１００２、１００３）と、を含むピクチャ（１０００）を示している。エンコーダは、動きのある部分（１００２、１００３）内のゼロ値でないＭＶを考慮に入れるが、動きのない部分（１００１）のＭＶ値を考慮に入れない。エンコーダは、（動きのある部分（１００２、１００３）内の）ゼロである小数部分を有するゼロ値でないＭＶの割合が、閾値を超えている場合（又は、ゼロである小数部分を有するゼロ値でないＭＶを使用したピクチャの（面積の観点での）割合が、閾値を超えている場合）、整数サンプルＭＶ精度に切り替えることができる。
【０１３６】
エンコーダはまた、少数のＭＶ値に基づいて決定がなされないように、ゼロ値でないＭＶの評価された数が、閾数を超えているかをチェックすることができる。これは、決定プロセスをよりロバストなものにすることができる。
【０１３７】
別の例示的な実装において、エンコーダは、１／４サンプルＭＶ精度を使用して、ビデオの所与のユニット（例えば、ピクチャ、タイル、スライス、又はＣＵ）を符号化する。エンコーダは、（１）そのユニットのうちｘ％を超える部分が、ゼロ値でないＭＶを用いたインターピクチャ予測を用いており、（２）そのユニットのゼロ値でないＭＶを用いた部分のうちｙ％を超える部分が、整数値である（ゼロである小数部分を有する）ＭＶを有する場合、ビデオの１以上の後続ユニットに関して整数サンプルＭＶ精度に切り替える。ｘ及びｙの値は、実装に依存し、例えば、それぞれ５及び７５とすることができる。
【０１３８】
類似する例示的な実装において、エンコーダは、１／４サンプルＭＶ精度を使用して、ビデオの所与のユニット（例えば、ピクチャ、タイル、スライス、又はＣＵ）を符号化する。エンコーダは、（１）そのユニットのｚ個を超えるＰＵが、ゼロ値でないＭＶを有し、（２）これらのＰＵのうちｙ％を超えるＰＵが、整数値である（ゼロである小数部分を有する）ＭＶを有する場合、ビデオの１以上の後続ユニットに関して整数サンプルＭＶ精度に切り替える。ｚ及びｙの値は、実装に依存し、例えば、それぞれ１００及び７５とすることができる。
【０１３９】
より大きな領域のＭＶ値は、より小さな領域のＭＶ値より信頼性の高いものであり得る。エンコーダは、どのＭＶ値が評価されるかを限定することができる。例えば、エンコーダは、所定のブロックサイズ以上（例えば、１６×１６以上）のブロックのＭＶ値のみを評価することができる。
【０１４０】
別の例示的な実装において、エンコーダは、１／４サンプルＭＶ精度を使用して、ビデオの所与のユニット（例えば、ピクチャ、タイル、スライス、又はＣＵ）を符号化する。エンコーダは、（１）そのユニットのｚ個を超えるＰＵが、ｗ×ｗ以上であって、且つ、ゼロ値でないＭＶを有し、（２）これらのＰＵのうちｙ％を超えるＰＵが、整数値である（ゼロである小数部分を有する）ＭＶを有する場合、ビデオの１以上の後続ユニットに関して整数サンプルＭＶ精度に切り替える。ｗ、ｚ及びｙの値は、実装に依存し、例えば、それぞれ１６、１００及び７５とすることができる。
【０１４１】
５．非標準的アプローチ
前述の例のうちのほとんどにおいて、エンコーダは、選択されたＭＶ精度を示す１以上のシンタックス要素を、符号化されたデータ、例えば、ビットストリームに含めてシグナリングする。デコーダは、選択されたＭＶ精度を示す１以上のシンタックス要素を解析し、選択されたＭＶ精度に従って、ＭＶ値を解釈する。
【０１４２】
代替的に、非標準的アプローチにおいて、エンコーダは、エンコーダにより選択されたＭＶ精度を示すシンタックス要素をシグナリングしない。例えば、エンコーダは、整数サンプルＭＶ精度と小数サンプルＭＶ精度との間で選択するが、常に、小数サンプルＭＶ精度でＭＶ値を符号化する。デコーダは、小数サンプルＭＶ精度でＭＶ値を再構成して適用する。
【０１４３】
エンコーダが、整数サンプルＭＶ精度を選択した場合、エンコーダは、小数サンプルオフセットにおけるサンプル値の内挿を回避することにより、且つ、整数サンプルオフセットにおける候補予測領域のみを評価することにより、動き推定を単純化することができる。また、ＭＶ予測が、小数値をもたらす（例えば、時間ＭＶ予測を用いて）場合、エンコーダは、ＭＶ差を（例えば、時間ＭＶ予測からの）小数値ＭＶ予測に加えるときに整数値をもたらすであろうＭＶ差のみを考慮に入れることができる。復号中、動き補償は、小数サンプルオフセットにおけるサンプル値の内挿を回避することにより、単純化され得る。
【０１４４】
前述のセクションに記載の所定のアプローチ（例えば、歪みコスト及び／若しくはビットレートコストをスケーリングすること、歪みコストペナルティ若しくはビットレートコストペナルティを加えること、又は、重み係数を調整すること、により、スケーリングされたレート歪みコストを使用するもの）はまた、非標準的アプローチにも適応され得る。エンコーダは、符号化中に、整数サンプルＭＶ精度を優先するように又は優先しないように、バイアスの程度を変えることができる。エンコーダは、スケーリング、ペナルティ、及び／又は重み係数を介して、整数サンプルＭＶ値が、ビデオコンテンツを符号化するのにより適切である可能性が高い信頼度に応じて、又は、符号化又は復号の計算能力に応じて、整数サンプルＭＶ精度を優先するように、バイアスを調整することができる。
【０１４５】
６．代替形態及び変形形態
いくつかの使用シナリオにおいて、ピクチャの符号化順（復号順とも呼ばれる）は、入力／カメラキャプチャにおける時間順及びディスプレイにおける時間順（表示順とも呼ばれる）とは異なる。エンコーダは、ＭＶ精度を選択するとき、そのような順序替えを考慮に入れることができる。例えば、エンコーダは、ピクチャの符号化順に基づいてではなく、ピクチャの時間順に基づいて、１以上のＭＶ精度を選択することができる。
【０１４６】
本明細書に記載の例のうちの多くにおいて、イントラＢＣ予測及び動き補償は、別個のコンポーネント又はプロセスにおいて実装され、ＢＶ推定及び動き推定は、別個のコンポーネント又はプロセスにおいて実装される。代替的に、イントラＢＣ予測は、現ピクチャが参照ピクチャとして使用される動き補償の特別なケースとして実装されてもよく、ＢＶ推定は、現ピクチャが参照ピクチャとして使用される動き推定の特別なケースとして実装されてもよい。そのような実装において、ＢＶ値は、ＭＶ値としてシグナリングされ得るが、インターピクチャ予測ではなく（現ピクチャ内の）イントラＢＣ予測のために使用され得る。本明細書で使用されるとき、「イントラＢＣ予測」という用語は、予測が、イントラピクチャ予測モジュールを使用して提供されるか、動き補償モジュールを使用して提供されるか、又は何らかの他のモジュールを使用して提供されるかにかかわらず、現ピクチャ内の予測を示す。同様に、ＢＶ値は、ＭＶ値を使用して、又は、異なるタイプのパラメータ若しくはシンタックス要素を使用して表現され得、ＢＶ推定は、イントラピクチャ推定モジュール、動き推定モジュール、又は何らかの他のモジュールを使用して提供され得る。本明細書に記載のＭＶ精度を選択するアプローチは、イントラＢＣ予測（すなわち、参照ピクチャとして現ピクチャを用いる）のためのＢＶ値として使用されるＭＶ値の精度を決定するために適用することができる。
【０１４７】
ＶＩ．革新的特徴
提示される請求項に加えて、本明細書に記載の革新的特徴は、以下のものを含むが、以下のものに限定されない。
【表１】
0006498679.tif 000002
【０１４８】
開示した本発明の原理を適用することができる多くの可能な実施形態の観点から、例示した実施形態は、本発明の好ましい例に過ぎないことを認識すべきであり、本発明の範囲を限定するものとして解釈すべきではない。むしろ、本発明の範囲は、請求項により定められる。したがって、我々は、請求項の範囲及び主旨に含まれる全てを、我々の発明として特許請求する。
【図１】
0006498679.tif 000003
【図２ａ】
0006498679.tif 000004
【図２ｂ】
0006498679.tif 000005
【図３】
0006498679.tif 000006
【図４ａ】
0006498679.tif 000007
【図４ｂ】
0006498679.tif 000008
【図５】
0006498679.tif 000009
【図６】
0006498679.tif 000010
【図７ａ】
0006498679.tif 000011
【図７ｂ】
0006498679.tif 000012
【図８】
0006498679.tif 000013
【図９】
0006498679.tif 000014
【図１０】
0006498679.tif 000015