(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための最良の形態】
【0019】
本発明の原理は動き情報の適応型符号化のための方法及び装置を対象としている。
【0020】
本明細書は本発明の原理を説明している。従って、当業者はここには明示的に記述または表示されていなくとも、本発明の原理を実体化し、その精神及び範囲に含まれる種々の構成を作り出すことが可能であることが理解される。
【0021】
ここで記述された全ての例及び条件付きの表現は読者が本発明の原理及び発明者が技術を深めるために貢献した概念を理解するのを補助するための教育的な目的を意図したものであり、そのような個別的に記述された例や条件に限定を加えるものではないと解釈されるべきである。
【0022】
更に、本発明の原理の原理、態様、及び実施形態、同様に特定の実例を記述する本明細書内の全ての解説は、構造的及び機能的均等物の両方を包含することが意図されている。追加的に、そのような均等物は現在知られている均等物と将来開発される均等物の両方、即ち構造に依らずに同一の機能を行う開発された如何なる要素をも含むものであることが意図されている。
【0023】
従って、例えば、ここに示されたブロック図は本発明の原理を実体化する説明的な回路の概念図を表すものであることが当業者によって理解されるであろう。同様に、フローチャート、フロー図、状態遷移図、擬似コード等は、コンピュータによって読取り可能な媒体において実質的に表され、コンピュータ又はプロセッサが明示的に示されていなくともコンピュータ又はプロセッサによって実行可能である種々のプロセスを表していることが理解される。
【0024】
図において示された種々の要素の機能は、専用のハードウェアや適切なソフトウェアと連携してソフトウェアを実行することが可能なハードウェアを使用することによって提供することができる。プロセッサによって提供される場合、その機能は単一の専用のプロセッサ、単一の共有されたプロセッサ、又はその内の幾つかが共有されても良い複数の個々のプロセッサによって提供されることができる。更に、「プロセッサ」または「制御装置」という用語の明示的な使用はソフトウェアを実行することが可能なハードウェアを排他的に指していると解釈されてはならず、非明示的に、限定無しに、ディジタル信号プロセッサ(「DSP」)ハードウェア、ソフトウェアを格納するリードオンリーメモリ(「ROM」)、ランダムアクセスメモリ(「RAM」)、及び不揮発性記憶装置を含むことができる。
【0025】
従来及び/又は慣用の他のハードウェアもまた含まれ得る。同様に、図に示されるどのスイッチもただ概念的なものである。それらの機能はプログラムロジック、専用のロジックの動作、プログラム制御と専用のロジックの相互作用、更には手動操作によって実行でき、前後関係からより詳細に理解できるように、特定の技術は実装担当者によって選択可能である。
【0026】
本明細書の請求項において、特定の機能を実行するための手段として表現される如何なる要素も、例えばa)その機能を実行する回路の組み合わせ、b)機能を実行するための適切な回路と組み合わされる如何なる形式のソフトウェア、従って、ファームウェア、マイクロコード、またはその他同種のものを含むソフトウェアを含む、その機能を実行する如何なる方法も含むものであることが意図されている。そのような請求項において定義される本発明の原理は、請求項が要求する方法で組み合わされ、共に提供されるという事実のうえに、種々の記述された手段によって提供される機能が存在している。
【0027】
従って、それらの機能を提供できる如何なる手段もここで示された手段と同等であること見なされる。
【0028】
明細書における本発明の原理の「一実施形態」又は「実施形態」、同様にその変形例について言及するときは、実施形態と関連して記述される特定の特徴、構造、特性、等が本発明の原理の少なくとも1つの実施形態に含まれることを意味している。従って、「一実施形態において」又は「実施形態において」という句、同様に明細書全体の種々の場所で出現する句の他の変形例は、必ずしも全てが同一の実施形態について言及しているわけではない。
【0029】
例えば、「A/B」、「A及び/又はB]、「A及びBの少なくとも1つ」等の場合における「/」、「及び/又は」、「の少なくとも1つ」の使用は、記述された第1の選択肢(A)のみの選択、又は記述された第2の選択肢(B)のみの選択、又は両方の選択肢(A及びB)の選択を含むことが理解されるべきである。更に他の例として、「A/B及び/又はC」、「A、B及びCの少なくとも1つ」の場合、そのような表現法は記述された第1の選択肢(A)のみの選択、記述された第2の選択肢(B)のみの選択、又は記述された選択肢(C)のみの選択、又は記述された第1及び第2の選択肢(A及びB)のみの選択、記述された第1及び第3の選択肢(A及びC)のみの選択、記述された第2及び第3の選択肢(B及びC)のみの選択、または3つの選択肢(A及びB及びC)の全ての選択を含むことを意図したものである。
【0030】
このことは、この技術分野及び関係した技術分野の当業者に容易に理解されるように、記述された項目の数だけ拡張できる。
【0031】
更に、MPEG−4 AVC標準に関して本発明の原理の1つ以上の実施形態が記述されているが、本発明の原理はこの標準規格のみに限定されるものではなく、従って、本発明の原理は本発明の原理の精神を保ちつつMPEG−4 AVC標準規格の拡張規格を含む他の動画像符号化標準規格、勧告、及びその拡張規格、同様に、所有権の有る標準規格または方式、将来の標準規格または方式に使用できることが理解されるべきである。
【0032】
同様に、ここで使用されたように、「画像(picture)」及び「像(image)」という語は相互交換可能に使用されており、動画像(video)シーケンスからの静止画像又はピクチャを指している。周知のように、画像はフレーム又はフィールドであって良い。
【0033】
更に、ここで使用されているように「信号」(signal)という語は対応するデコーダへ何かを示すことを表している。例えば、エンコーダはエンコーダ側でどの特定の動きベクトル精度が使用されたかをデコーダに認識させるために所定の動きベクトル精度について信号を送ることができる。この方法により、エンコーダ側及びデコーダ側の両方で同一の動きベクトル精度を用いることができる。従って、例えば、エンコーダはデコーダに特定の動きベクトル精度を伝送し、デコーダが同一の特定の動きベクトル精度を使用するか又は、デコーダが既に他の動きベクトル精度と共に特定の動きベクトル精度を有する場合、信号は(伝送せずに)単にデコーダが特定の動きベクトル精度を知って選択することを可能にするために使用される。実際の動きベクトル精度を伝送することを避けることによってビットの節約が実現される。信号送出は、種々の方法で達成されることが理解されるべきである。例えば、1以上の構文要素、フラグ等は、情報を対応するデコーダに信号伝達するために使用することができる。
【0034】
更に、ここで使用されているように、「ローカル画像領域」という句は、動画像シーケンスのサブセット信号を指している。ローカル画像領域は、多数の連続したフレーム、単一のフレーム、多数の時間的及び/又は空間的に隣接したブロック、並びに/又は多数の時間的及び/もしくは空間的に隣接した画素であって良い。
【0035】
また、ここで使用されているように、「グローバル動き情報」という句は、「画像領域」内の主な動きを指している。ここで使用されているように、「画像領域」は、同一のシーンに属する多数のフレーム、単一のフレーム及び/又は単一のフレームの部分を指している。グローバル動き情報の幾つかの例を以下に示す。一例において、我々は特定の画像領域内の各ブロックについて動きを推測し、グローバル動き情報はこれらのブロック内で最も一般的な動きである。他の例では、我々は特定の画像領域内の各ブロックについて動きを推測し、グローバル動き情報はこれらのブロックの全てについて平均をとった動きである。他の例では、我々は特定の画像領域内の各ブロックについて動きを推測し、グローバル動き情報はこれらのブロックの全ての中での中央値の動きである。
【0036】
図1を参照すると、本発明の原理を適用することができる模範的なビデオエンコーダが参照番号100で一般的に示されている。ビデオエンコーダ100は、結合器185の非反転入力と信号通信する出力を有するフレーム順序付けバッファ110を含む。結合器185の出力は、信号通信によって変換及び量子化器125の第1の入力に接続されている。変換及び量子化器125の出力は、信号通信によってエントロピー符号化器145の第1の入力及び逆変換及び逆量子化器150の第1の入力に接続されている。エントロピー符号化器145の出力は、信号通信によって結合器190の第1の非反転入力に接続されている。結合器190の出力は、信号通信によって出力バッファ135の第1の入力に接続されている。
【0037】
エンコーダ制御装置105の第1の出力は、信号通信によってフレーム順序付けバッファ110の第2の入力、逆変換及び逆量子化器150の第2の入力、ピクチャータイプ判定モジュール115の入力、マクロブロックタイプ(MBタイプ)判定モジュール120の第1の入力、イントラ予測モジュール160の第2の入力、デブロッキングフィルタ165の第2の入力、動き補償器170の第1の入力、動き推定器175の第1の入力及び基準ピクチャバッファ180の第2の入力に接続されている。
【0038】
エンコーダ制御装置105の第2の出力は、信号通信によって補足的拡張情報(SEI)挿入器130の第1の入力、変換及び量子化器125の第2の入力、エントロピー符号化器145の第2の入力、出力バッファ135の第2の入力、シーケンスパラメータセット(SPS)及びピクチャーパラメータセット(PPS)挿入器140の入力に接続されている。
【0039】
SEI挿入器130の出力は、信号通信によって結合器190の第2の非反転入力に接続されている。
【0040】
ピクチャータイプモジュール115の第1の出力は、信号通信によってフレーム順序付けバッファ110の第3の入力に接続されている。
【0041】
ピクチャータイプ判定モジュール115の第2の出力は、信号通信によってマクロブロックタイプ判定モジュール120の第2の入力に接続されている。
【0042】
シーケンスパラメータセット(SPS)及びピクチャーパラメータセット(PPS)挿入器140の出力は、信号通信によって結合器190の第3の非反転入力に接続されている。
【0043】
逆量子化及び逆変換器150の出力は、信号通信によって結合器119の第1の非反転入力に接続されている。結合器119の出力は、信号通信によってイントラ予測モジュール160の第1の入力及びデブロッキングフィルタ165の第1の入力に接続されている。デブロッキングフィルタ165の出力は、信号通信によって基準ピクチャバッファ180の第1の入力に接続されている。基準ピクチャバッファ180の出力は、信号通信によって動き推測器175の第2の入力及び動き補償器170の第3の入力に接続されている。
【0044】
動き推測器175の第1の出力は、信号通信によって動き補償器170の第2の入力に接続されている。動き推測器175の第2の出力は、信号通信によってエントロピー符号化器145の第3の入力に接続されている。
【0045】
動き補償器170の出力は、信号通信によってスイッチ197の第1の入力に接続されている。イントラ予測モジュール160の出力は、信号通信によってスイッチ197の第2の入力に接続されている。マクロブロックタイプ判定モジュール120の出力は、信号通信によってスイッチ197の第3の入力に接続されている。スイッチ197の第3の入力は、スイッチの「データ」入力(制御入力、すなわち第3の入力と対比して)が動き補償器170によって提供されるか又はイントラ予測モジュール160によって提供されるか否かを判定する。スイッチ197の出力は、信号通信によって結合器119の第2の非反転入力に及び結合器185の反転入力接続されている。
【0046】
フレーム順序付けバッファ110の第1の入力及びエンコーダ制御装置105の入力は、入力画像を受け取るためにエンコーダ100の入力として利用可能である。
【0047】
更に、補足的拡張情報(SEI)挿入器130の第2の入力は、メタデータを受け取るためにエンコーダ100の入力として利用可能である。出力バッファ135の出力は、ビットストリームを出力するためにエンコーダ100の出力として利用可能である。
【0048】
次に
図2を参照すると、本発明の原理を適用することができる模範的なビデオデコーダが参照番号200で一般的に示されている。ビデオデコーダ200は、信号通信によってエントロピーデコーダ245の第1の入力に接続される出力を有する入力バッファ210を含む。エントロピーデコーダ245の第1の出力は、信号通信によって逆変換及び逆量子化器250の第1の入力に接続されている。逆変換及び逆量子化器250の出力は、信号通信によって結合器225の第2の非反転入力に接続されている。結合器225の出力は、信号通信によってデブロッキングフィルタ265の第2の入力及びイントラ予測モジュール260の第1の入力に接続されている。デブロッキングフィルタ265の第2の出力は、信号通信によって基準ピクチャバッファ280の第1の入力に接続されている。基準ピクチャバッファ280の出力は、信号通信によって動き補償器270の第2の入力に接続されている。
【0049】
エントロピーデコーダ245の第2の出力は、信号通信によって動き補償器270の第3の入力、デブロッキングフィルタ265の第1の入力及びイントラ予測器260の第3の入力に接続されている。エントロピーデコーダ245の第3の出力は、信号通信によってデコーダ制御装置205の入力に接続されている。デコーダ制御装置205の第1の出力は、信号通信によってエントロピーデコーダ245の第2の入力に接続されている。デコーダ制御装置205の第2の出力は、信号通信によって逆変換及び逆量子化器250の第2の入力に接続されている。デコーダ制御装置205の第3の出力は、信号通信によってデブロッキングフィルタ265の第3の入力に接続されている。デコーダ制御装置205の第4の出力は、信号通信によってイントラ予測モジュール260の第2の入力、動き補償器270の第1の入力及び基準ピクチャバッファ280の第2の入力に接続されている。
【0050】
動き補償器270の出力は、信号通信によってスイッチ297の第1の入力に接続されている。イントラ予測モジュール260の出力は、信号通信によってスイッチ297の第2の入力に接続されている。スイッチ297の出力は、信号通信によって結合器225の第1の非反転入力に接続されている。
【0051】
入力バッファ210の入力は、入力ビットストリームを受け取るためにデコーダ200の入力として利用可能である。デブロッキングフィルタ265の第1の出力は出力画像を出力するためにデコーダ200の出力として利用可能である。
【0052】
上述のように、本発明の原理は、動き情報の適応型符号化のための方法及び装置を対象としている。従って、本発明の原理に応じて動き情報と動画像のコンテンツとの相互関係をより良く利用することによって動画像符号化の性能を向上させるために適応型動き情報表現及び圧縮の方法が用いられている。この方法は、動きフィールド、動画像コンテンツ、符号化モード及び符号化効率を考慮することによって、適応化のための追加ビットのオーバーヘッドを負担することなく(又は少なくとも追加ビットのオーバーヘッドを制限することにより)異なる精度レベルで動きベクトルを適応して表現するものである。
【0053】
[パーティションサイズ適応化]
典型的なブロック単位動画像符号化方式においては、画像は多数の互いに重ならないブロックに分割される。最良のブロック形状及びサイズは、動画像のコンテンツ及び符号化方式に依存している。MPEG−4 AVC標準は、16×16、16×8、8×16、8×8、8×4、4×8及び4×4ブロックをサポートしている。分かるように、大きなブロックは小さなブロックに比較してより多くの画素を有している。動き補償の誤差は各画素からの誤差が原因である。ブロックがより多くの画素を含む場合、各画素からの誤差が均一であると仮定してそのブロックがより大きな補償誤差を持つ可能性が比較的高くなる。それ故、我々は大きなブロックに対しては小さなブロックに比較して高精度の動きベクトルを使用するようにしている。従って、我々は、実施形態において、パーティションサイズに対して動きベクトル精度を適応化させている。
【0054】
一般的に、大きなブロックは動画像においてより広い面積をカバーしており、正しく補償されなければ大きな量の歪みを生じる可能性が高くなるため、大きなブロックの動きベクトルに対してはより高い精度を用いることができる。表1は、本発明の原理の実施形態に応じて異なるブロックサイズを異なる精度レベルに分類したものを示している。勿論、本発明の原理は上述の分類に限定されるものではなく、従って本発明の原理の精神を保ちつつ本発明の原理の教示に従って他の分類もまた使用することができることが理解されねばならない。
【0055】
【表1】
【0056】
各ブロックの動きベクトルは、そのレベルの対応する精度をもって表されることになる。既に伝送されているパーティションサイズに基づくため、動きベクトル精度の適応化のための追加的なビットレートの消費が発生することはない。
【0057】
次に、
図3を参照すると、パーティションサイズに基づいた動き情報の適応型符号化を用いた画像データを符号化するための模範的な方法が参照番号300で一般的に示されている。この方法300は、機能ブロック310に制御を受け渡す開始ブロック305を含む。機能ブロック310は、motion_accuracy_adaptive_flagを1に設定し、mv_accuracy_adaptation_modeを0に設定し、motion_accuracy_adaptive_flagとmv_accuracy_adaptation_modeをビットストリームに書き込み、ループリミットブロック312に制御を受け渡す。ループリミットブロック312は、1から数(#)のブロックの範囲を有する変数Iを使用してループを開始し、機能ブロック315に制御を受け渡す。機能ブロック315は、動き推測を実行し、機能ブロック320に制御を受け渡す。機能ブロック320は、動き推測(機能ブロック315によって実行される)の結果の動きベクトルをパーティションサイズに基づいて以下のように量子化し、その後、機能ブロック325に制御を受け渡す:16×16、16×8、8×16パーティションサイズは1/8画素精度を使用し、8×8パーティションサイズは1/4画素精度を使用し、8×4、4×8、4×4パーティションサイズは1/2画素精度を使用する。機能ブロック325は、動き補償を実行し、機能ブロック330に制御を受け渡す。機能ブロック330は、エントロピー符号化を実行し、ループリミットブロック332に制御を受け渡す。ループリミットブロックは、ループを終了し、エンドブロック399に制御を受け渡す。
【0058】
次に、
図4を参照すると、分割サイズに基づく動き情報の適応型符号化を使用してピクチャーデータを復号化するための模範的な方法が参照番号400で一般的に示されている。方法400は、機能ブロック410に制御を受け渡すスタートブロック405を含む。機能ブロック410は、motion_accuracy_adaptive_flag及びmv_accuracy_adaptation_modeを解析し、ループリミットブロック412に制御を受け渡す。ループリミットブロック412は、1から数(#)ブロックの範囲を有する変数Iを使用してループを開始し、機能ブロック413に制御を受け渡す。機能ブロック413は、動きベクトル(MV)構文を解析し、判定ブロック415に制御を受け渡す。判定ブロック415は、motion_accuracy_adaptive_flag==1及びmv_accuracy_adaptation_mode==0であるか否かを判別する。そうである場合、次に制御は機能ブロック420に受け渡される。そうでない場合、制御は機能ブロック417に受け渡される。機能ブロック420は、以下のパーティションサイズに基づいて決定された精度で動きベクトルを復号化し、その後制御を機能ブロック425に受け渡す:16×16、16×8、8×16のパーティションサイズは1/8画素精度を使用し、8×8のパーティションサイズは1/4画素精度を使用し、8×4、4×8及び4×4のパーティションサイズは1/2画素精度を使用する。機能ブロック425は、動き補償を実行し、ループリミットブロック427に制御を受け渡す。ループリミットブロック427は、ループを終了し、エンドブロック499に制御を受け渡す。機能ブロック417は、均一精度又は他の適応型精度の方法を使用して動きベクトルを再構成し、機能ブロック425に制御を受け渡す。
【0059】
[動きベクトルの方向適応化]
多くの動きベクトル表現において、動きベクトルは動きを水平及び垂直方向の両方で記述する2次元ベクトルである。通常、動きベクトルは両方の方向で同一の精度を有する。しかしながら、特に、動きについてなんらかの事前情報が有る場合、異なる方向で同一の精度を有していることは要求されていない。例えば、動画像が主な水平方向の動き(カメラのパン操作のように)を有する場合、我々は動き情報をより良く表現するために水平方向内で高い精度を提供することができる。また、高精度の動き方向を信号で知らせるために整数型の動き振幅、パーティション形状、動きベクトル予測変数、又はグローバル動き情報を利用することもできる。従って、一実施形態において、動きベクトルの1以上の特定の方向について動きベクトル精度を適応化させる。
【0060】
一実施形態において、我々は主な動き方向を導出するために動きベクトル予測変数を利用する。我々は主な動き方向に、より高い動きベクトル精度(主ではない動き方向に対して)を割り当てる。動きベクトル予測変数mvp=[mvp_x,mvp_y]は、隣接ブロックの動きベクトルをチェックすることによりMPEG−4 AVC標準に記述されたようにして得ることができる。我々は、以下のパラメータを定義する:
【0061】
【数1】
【0062】
θ(mvp)をチェックすることにより、我々はどの方向がより高い精度を使用するのかについて以下のように決定することができる:
【0063】
【数2】
【0064】
ここで、res(mv_x)及びres(mv_y)はmv_x及びmv_yそれぞれの解像度(すなわち、精度)であり、thl及びth2は二つの異なる方向での動きベクトルの精度を決定するための閾値である。
【0065】
これらの方法を用いることにより、我々は追加のオーバーヘッドを負担することなしに異なる方向での動きベクトルの精度を適応化することができる。
【0066】
次に、
図5を参照すると、動きベクトルの方向に基づいた動き情報の適応型符号化を使用してピクチャーデータをコード化するための模範的な方法が、参照番号500で一般的に示されている。方法500は、機能ブロック510に制御を受け渡すスタートブロック505を含む。機能ブロック510はmotion_accuracy_adaptive_flag=1に設定し、mv_accuracy_adaptation_mode=1に設定し、motion_accuracy_adaptive_flag及びmv_accuracy_adaptation_modeをビットストリームに書き込み、ループリミットブロック512に制御を受け渡す。ループリミットブロック512は1から数(#)ブロックの範囲を有する変数Iを使用してループを開始し、機能ブロック515に制御を受け渡す。機能ブロック515は動き推測を実行し、機能ブロック520に制御を受け渡す。機能ブロック520は主成分(dominant component)を導出し、以下の1以上のものに基づいてres_x及びres_yを設定し、その後機能ブロック525に制御を受け渡す:動きベクトル予測変数;隣接動きベクトル;パーティション形状;整数型動き振幅;グローバル動き;及び/又はレート歪みコスト。機能ブロック525はres_x及びres_yに基づいて動きベクトル成分を量子化し、機能ブロック530に制御を受け渡す。機能ブロック530は動き補償を実行し、機能ブロック535に制御を受け渡す。機能ブロック535はエントロピー符号化を実行し、ループリミットブロック537に制御を受け渡す。ループリミットブロック537はループを終了し、エンドブロック599に制御を受け渡す。
【0067】
次に、
図6を参照すると、動きベクトルの方向に基づいた動き情報の適応型符号化を使用してピクチャーデータを復号化するための模範的な方法が、参照番号600で一般的に示されている。方法600は機能ブロック610に制御を受け渡すスタートブロック605を含む。機能ブロック610はmotion_accuracy_adaptive_flagandmv_accuracy_adaptation_modeを解析し、ループリミットブロック612に制御を受け渡す。ループリミットブロック612は1から数(#)ブロックの範囲を有する変数を使用してをループを開始し、機能ブロック613に制御を受け渡す。機能ブロック613は動きベクトル(MV)の構文を解析し、判定ブロック615に制御を受け渡す。判定ブロック615はmotion_accuracy_adaptive_flag==1及びmv_accuracy_adaptation_mode==1であるか否かを判別する。そうである場合、制御は機能ブロック620に受け渡される。そうでない場合、制御は機能ブロック617に受け渡される。機能ブロック620は主成分を導出し、以下の1つ以上に基づいてres_xandres_yを設定し、その後機能ブロック625に制御を受け渡す:動きベクトル予測変数;隣接動きベクトル;パーティション形状部分;整数型動き振幅;グローバル動き;及び/又はレート歪みコスト。機能ブロック625はres_x及びres_yに基づいて動きベクトルを復号化し、機能ブロック630に制御を受け渡す。機能ブロック630は動き補償を実行し、ループリミットブロック632に制御を受け渡す。ループリミットブロック632はループを終了し、エンドブロック699に制御を受け渡す。機能ブロック617は均一精度又は他の適応型精度の方法を使用して動きベクトルを再構成し、機能ブロック630に制御を受け渡す。
【0068】
[QP適応型動きベクトル精度]
動画像エンコーダは、符号化された動画像の品質を制御するために量子化パラメータQPを使用する。量子化パラメータが大きいとき、基準フレーム(前に符号化されたフレームの再構成である)の品質は低い。特に、殆どの詳細部が符号化処理で除去されているため、基準フレームは滑らかになりがちである。従って、差異の少ない動きベクトルは非常に似た予測値を与える可能性が有り、高精度動きベクトルは不要である。従って、一実施形態においては、我々は動きベクトル精度を1つ以上の量子化パラメータに適応化させている。
【0069】
一実施形態において、動きベクトル精度は符号化量子化パラメータ(QP)又は量子化ステップサイズに適応化されている。mvが動き推測によって発見された動きベクトルであり、mvpが予測された動きベクトルであると仮定しよう。差はmvdと称され、mvd=mv−mvpである。mvqを復号器に伝送される量子化されたmvdとしよう。ここで、mvq=Q(mvd,q_mv)であり、Qはmvq量子化処理であり、q_mvは量子化ステップサイズ(例えば、q_mv=0.5は1/2画素精度を意味し、q_mv=0.25は4分の1画素精度を意味する等)である。動きベクトル精度を符号化QPの関数であるとすると、q_mv=f(QP)である。例えば、QPが閾値より小さいとき、小さい値のq_mvが選択される。そうでなく、QPが閾値より大きいとき、大きな値のq_mvが選択される。
【0070】
ここで、
図7を参照すると、量子化パラメータに基づいた動き情報の適応型符号化を使用してピクチャーデータを符号化するための模範的な方法が、参照番号700で一般的に示されている。方法700は機能ブロック710に制御を受け渡すスタートブロック705を含む。機能ブロック710はmotion_accuracy_adaptive_flag=1に設定しmv_accuracy_adaptation_mode=2に設定し、motion_accuracy_adaptive_flag及びmv_accuracy_adaptation_modeをビットストリームに書き込んで、ループリミットブロック712に制御を受け渡す。ループリミットブロック712は1から数(#)ブロックの範囲を有する変数Iを使用してループを開始し、機能ブロック715に制御を受け渡す。機能ブロック715は動き推測を実行し、機能ブロック720に制御を受け渡す。機能ブロック720は符号化量子化パラメータ(QP)に基づいて動きベクトル精度を選択し、選択された動きベクトル精度を使用して動き推測からの結果の動きベクトル(機能ブロック715によって実行された)を量子化し、機能ブロック725に制御を受け渡す。機能ブロック725は動き補償を実行し、機能ブロック730に制御を受け渡す。機能ブロック730はエントロピー符号化を実行し、ループリミットブロック732に制御を受け渡す。ループリミットブロック732はループを終了し、エンドブロック799に制御を受け渡す。
【0071】
ここで、
図8を参照すると、量子化パラメータに基づいた動き情報の適応型符号化を使用してピクチャーデータを復号化するための模範的な方法が、参照番号800で一般的に示されている。方法800は機能ブロック810に制御を受け渡すスタートブロック805を含む。機能ブロック810はmotion_accuracy_adaptive_flag及びmv_accuracy_adaptation_modeを解析し、ループリミットブロック812に制御を受け渡す。ループリミットブロック812は1から数(#)ブロックの範囲を有する変数Iを使用してループを開始し、機能ブロック813に制御を受け渡す。機能ブロック813は動きベクトル(MV)を構文解析し、判定ブロック815に制御を受け渡す。判定ブロック815はmotion_accuracy_adaptive_flag==1及びmv_accuracy_adaptation_mode==2であるか否かを判別する。そうである場合、機能ブロック820に制御が受け渡される。そうでない場合、機能ブロック817に制御が受け渡される。機能ブロック820は量子化パラメータ(QP)から動きベクトル精度を得て、受け取った動きベクトルインデックスから動きベクトルを再構成し、機能ブロック825に制御を受け渡す。機能ブロック825は動き補償を実行し、ループリミットブロック827に制御を受け渡す。ループリミットブロックはループを終了し、エンドブロック899に制御を受け渡す。機能ブロック817は均一精度又は他の適応型精度の方法を使用して動きベクトルを再構成し、機能ブロック825に制御を受け渡す。
【0072】
[コンテンツ(content)適応型動きベクトル精度]
画像信号内の滑らかな領域については、差が少ない動きベクトルは非常に似た予測値を提供する可能性が有る。従って、高精度動きベクトルによる利益は限定される。一方、目的とするエッジ及び質感の有る領域に対しては、予測値と現信号との間の僅かな不一致が予測誤差を大きく増やす可能性が有り、正確な動きベクトルが大きく必要とされる。このような関係を考慮して、実施形態において、我々は画像(またはシーケンス)コンテンツに対して動きベクトル精度を適用化している。
【0073】
一実施形態において、動きベクトル精度が画像コンテンツに応じて適応化される。動画像シーケンスのサブセット信号をSとしよう。Sは多数の連続したフレーム、単一のフレーム、又は多数の隣接したブロックであり得る。h(S)がSの複雑性関数であると定義する。例えば、h(S)はS内の画素の分散、再構成された残余の分散、又はS内のエッジの方向及び強度で有り得る。Sに対する動きベクトル値の精度q_mvはh(S)に基づいて選択される。例えば、コンテンツの複雑性が高くh(S)が大きい場合、q_mvの値は小さくなる。一方、コンテンツの複雑性が低くh(S)が小さい場合、q_mvの値は大きくなる。この実施形態に対しては、q_mvはエンコーダによって送出されてもよく(明示的なシグナリング(信号送出))、デコーダにおいて推測されてもよい(非明示的なシグナリング)。
【0074】
ここで、
図9を参照すると、明示的なシグナリングを有する動画像コンテンツに基づいた動き情報の適応型符号化を使用してピクチャーデータを符号化するための模範的な方法が、参照番号900で一般的に示されている。この方法900は機能ブロック910に制御を受け渡すスタートブロック905を含む。機能ブロック910はmotion_accuracy_adaptive_flag=1に設定し、mv_accuracy_adaptation_mode=3に設定し、motion_accuracy_adaptive_flagandmv_accuracy_adaptation_modeをビットストリームに書き込み、ループリミットブロック912に制御を受け渡す。ループリミットブロック912は1から数(#)ブロックの範囲を有する変数Iを使用してループを開始し、機能ブロック915に制御を受け渡す。機能ブロック915は動き推測を実行し、機能ブロック920に制御を受け渡す。機能ブロック920はローカル画像領域の統計、例えば画素の分散、エッジの方向、強度、等に基づいて動きベクトル精度を選択し、機能ブロック925に制御を受け渡す。機能ブロック925は選択された精度に基づいて動きベクトルを量子化し、機能ブロック930に制御を受け渡す。機能ブロック930は動きベクトル精度を(例えば、対応するデコーダに)送出し、機能ブロック935に制御を受け渡す。機能ブロック935は動き補償を実行し、機能ブロック940に制御を受け渡す。機能ブロック940はエントロピー符号化を実行し、ループリミットブロック942に制御を受け渡す。ループリミットブロック942はループを終了し、エンドブロック999に制御を受け渡す。
【0075】
ここで、
図10を参照すると、明示的シグナリングを有する動画像コンテンツに基づいた動き情報の適応型符号化を使用するピクチャーデータを復号化するための模範的な方法が、参照番号1000で一般的に示されている。この方法1000は機能ブロック1010に制御を受け渡すスタートブロック1005を含む。機能ブロック1010はmotion_accuracy_adaptive_flag及びmv_accuracy_adaptation_modeを解析し、ループリミットブロック1012に制御を受け渡す。ループリミットブロック1012は1から数(#)ブロックの範囲の変数Iを使用してループを開始し、機能ブロック1013に制御を受け渡す。機能ブロック1013は動きベクトル(MV)構文を解析し、判定ブロック1015に制御を受け渡す。判定ブロック1015はmotion_accuracy_adaptive_flag==1及びmv_accuracy_adaptation_mode==3であるか否かを判別する。そうである場合、制御は機能ブロック1020に受け渡される。そうでない場合、制御は機能ブロック1017に受け渡される。機能ブロック1020は動きベクトル精度を解析し、機能ブロック1025に制御を受け渡す。機能ブロック1025は受け取った動きベクトルインデックスから動きベクトルを再構成し、機能ブロック1030に制御を受け渡す。機能ブロック1030は動き補償を実行し、ループリミットブロック1032に制御を受け渡す。ループリミットブロック1032はループを終了し、エンドブロック1099に制御を受け渡す。機能ブロック1017は均一精度又は他の適応型精度の方法を使用して動きベクトルを再構成し、機能ブロック1030に制御を受け渡す。
【0076】
ここで、
図11を参照すると、非明示的なシグナリングを有する動画像コンテンツに基づいた動き情報の適応型符号化を使用したはピクチャーデータを符号化するための模範的な方法が、参照番号1100で一般的に示されている。この方法1100は機能ブロック1110に制御を受け渡すスタートブロック1105を含む。機能ブロック1110はmotion_accuracy_adaptive_flag=1に設定し、mv_accuracy_adaptation_mode=4に設定し、motion_accuracy_adaptive_flag及びmv_accuracy_adaptation_modeをビットストリームに書き込み、ループリミットブロック1112に制御を受け渡す。ループリミットブロック1112は1から数(#)ブロックの範囲を有する変数Iを使用してループを開始し、機能ブロック1115に制御を受け渡す。機能ブロック1115は動き推測を実行し、機能ブロック1120に制御を受け渡す。機能ブロック1120はローカル画像領域の統計、例えば再構成された画像の分散などに基づいて動きベクトル精度を選択し、制御を機能ブロック1125に受け渡す。機能ブロック1125は選択された精度に基づいて動きベクトル成分を量子化し、機能ブロック1130に制御を受け渡す。機能ブロック1130は動き補償を実行し、機能ブロック1135に制御を受け渡す。機能ブロック1135はエントロピー符号化を実行し、ループリミットブロック1137に制御を受け渡す。ループリミットブロック1137はループを終了し、エンドブロック1199に制御を受け渡す。
【0077】
ここで、
図12を参照すると、非明示的シグナリングを有する動画像コンテンツに基づいた動き情報の適応型符号化を使用してピクチャーデータを復号化するための模範的な方法が参照番号1200で一般的に示されている。方法1200は機能ブロック1210に制御を受け渡すスタートブロック1205を含む。
機能ブロック1210はmotion_accuracy_adaptive_flag及びmv_accuracy_adaptation_modeを解析し、ループリミットブロック1212に制御を受け渡す。ループリミットブロック1212は1から数(#)ブロックの範囲の変数Iを使用してループを開始し、機能ブロック1213に制御を受け渡す。機能ブロック1213は動きベクトル(MV)構文を解析し、判定ブロック1215に制御を受け渡す。判定ブロック1215はmotion_accuracy_adaptive_flag==1及びmv_accuracy_adaptation_mode==4であるか否かを判別する。そうである場合、制御は機能ブロック1220に受け渡される。そうでない場合、制御は機能ブロック1217に受け渡される。機能ブロック1220はローカル画像領域の統計から動きベクトル精度を取得し、機能ブロック1225に制御を受け渡す。機能ブロック1225は受け取った動きベクトルインデックスから動きベクトルを再構成し、機能ブロック1230に制御を受け渡す。機能ブロック1230は動き補償を実行し、ループリミットブロック1232に制御を受け渡す。ループリミットブロック1232はループを終了し、エンドブロック1299に制御を受け渡す。機能ブロック1217は均一精度又は他の適応型の精度方法を使用して動きベクトルを再構成し、機能ブロック1230に制御を受け渡す。
【0078】
[動きベクトル振幅適応化]
動画像符号化において、検索された動きベクトルと予測された動きベクトルの間の差が符号化され、それは上で定義したようにmvdである。ビデオエンコーダにおいて利用される実効的動き推測により、殆どの時点でmvdの値は非常に小さい。しかしながら、動画像ブロックが動き検索のために良い特徴を有していなければ、検索されたmvは信頼度が低く、いくらかの不規則性を示す。この場合には、mvdの振幅は非常に大きくなり得る。検索されたmvは信頼性が低いため、mvd符号化のために多すぎるビットは必要とされない。我々はmvdが大きな振幅を有するとき、ビットを節約するために、粗く量子化(低い動きベクトル精度)すべきであるとの選択をした。
【0079】
一実施形態において、動きベクトル精度q_mvは動きベクトル差の振幅mvdの関数であり、|q_mv|=f(|mvd|)である。fの1つの例示的な精度関数は、Tをしきい値として、x<=Tのとき、f(x)=0.25であり、x>Tのとき0.5である。
【0080】
この例において、mvdの量子化は以下の通りである:
【0081】
【数3】
【0082】
ここで、Idx_mvdはmvdの量子化インデックスである。
【0083】
mvd、mvqの再構成は、以下の通りである:
【0084】
【数4】
【0085】
ここで、
図13を参照すると、動きベクトル振幅に基づいた動き情報の適応型符号化を使用してピクチャーデータを符号化するための模範的な方法が、参照番号1300で一般的に示されている。この方法1300は機能ブロック1310に制御を受け渡すスタートブロック1305を含む。機能ブロック1310はmotion_accuracy_adaptive_flag=1に設定し、mv_accuracy_adaptation_mode=5に設定し、ループリミットブロック1312に制御を受け渡す。ループリミットブロック1312は1から数(#)ブロックの範囲を有する変数Iを使用してループを開始し、機能ブロック1315に制御を受け渡す。機能ブロック1315は動き推測を実行し、機能ブロック1320に制御を受け渡す。機能ブロック1320は動きベクトルの振幅に基づいて精度関数を選択し、機能ブロック1325に制御を受け渡す。機能ブロック1325は選択された関数に基づいて動きベクトル成分を量子化し、機能ブロック1330に制御を受け渡す。機能ブロック1330は動き補償を実行し、機能ブロック1335に制御を受け渡す。機能ブロック1335はエントロピー符号化を実行し、ループリミットブロック1337に制御を受け渡す。ループリミットブロック1337はループを終了し、エンドブロック1399に制御を受け渡す。
【0086】
ここで、
図14を参照すると、非明示的シグナリングを有する動きベクトル振幅に基づいた動き情報の適応型符号化を使用してピクチャーデータを復号化するための例示的な方法が、参照番号1400で一般的に示されている。方法1400は機能ブロック1410に制御を受け渡すスタートブロック1405を有している。機能ブロック1410はmotion_accuracy_adaptive_flag及びmv_accuracy_adaptation_modeを解析し、ループリミットブロック1412に制御を受け渡す。ループリミットブロック1412は1から数(#)ブロックの範囲を有する変数Iを使用してループを開始し、機能ブロック1413に制御を受け渡す。機能ブロック1413は動きベクトル(MV)の構文を解析し、判定ブロック1415に制御を受け渡す。判定ブロック1415はmotion_accuracy_adaptive_flag==1かつmv_accuracy_adaptation_mode==5であるか否かを判別する。そうである場合、制御が機能ブロック1420に受け渡される。そうでない場合、制御は機能ブロック1417に受け渡される。機能ブロック1420は受信した動きベクトルインデックスの値から動きベクトル精度を取得し、機能ブロック1425に制御を受け渡す。機能ブロック1425は動きベクトル(受信した動きベクトルインデックス)を再構成し、機能ブロック1430に制御を受け渡す。機能ブロック1430は動き補償を実行し、ループリミットブロック1432に制御を受け渡す。ループリミットブロック1432はループを終了し、エンドブロック1499に制御を受け渡す。機能ブロック1417は均一精度又は、他の精度の方法を使用して動きベクトルを再構成し、機能ブロック1430に制御を受け渡す。
【0087】
[構文]
表2は、本発明の原理の実施形態に応じた模範的な画像とスライスヘッダー構文を示している。
【0088】
【表2】
【0089】
表2の構文要素の幾つかの意味は次の通りである。
【0090】
motion_accuracy_adaptive_flagは画像に対して動きベクトル精度適応化が用いられたか否かを特定する。motion_accuracy_adaptive_flagが1に等しいことは動き精度適応化の方式(scheme)が画像において使用されたことを表している。motion_accuracy_adaptive_flagが0に等しいことは画像において動き精度適応化方式が用いられていないことを表している。
【0091】
mv_accuracy_adaptation_modeは、スライスのために用いられた動きベクトル精度適応化アプローチを特定する。mv_accuracy_adaptation_modeが0に等しいことは、パーティションサイズに基づいた動きベクトル精度適応化を可能にしていることを示している。mv_accuracy_adaptation_modeが1に等しいことは、方向に基づいた動きベクトル精度適応化を可能にしていることを表している。mv_accuracy_adaptation_modeが2に等しいことはQPに基づいた動きベクトル精度適応化を可能にしていることを表している。mv_accuracy_adaptation_modeが3に等しいことは、明示的シグナリングを伴うコンテンツに基づいた動きベクトル精度適応化を可能にしていることを表している。mv_accuracy_adaptation_modeが4に等しいことは、非明示的シグナリングを伴うコンテンツに基づいた動きベクトル精度適応化を可能にしていることを表している。mv_accuracy_adaptation_modeが5に等しいことは、振幅に基づいた動きベクトル精度適応化を可能にしていることを表している。
【0092】
q_mvは標準仕様の量子化ステップサイズに加えて動きベクトルを量子化するために使用される量子化ステップを特定する。
【0093】
res_xは動きベクトルの水平成分の精度を特定する。
【0094】
res_yは動きベクトルの垂直成分の精度を特定する。
【0095】
q_mv_signalingは明示的又は非明示的シグナリングを特定している。q_mv_signalingが1に等しいことはq_mv明示的にシグナリングされることを表している。q_mv_signalingが0に等しいことはq_mvが明示的にシグナリングされないことを表している。
【0096】
res_mv_signalingはres_x及びres_yの明示的又は非明示的シグナリングを特定する。res_mv_signalingが1に等しいことはres_x及びres_yが明示的にシグナリングされることを表している。res_mv_signalingが0に等しいことはres_x及びres_yが明示的にシグナリングされないことを表している。
【0097】
ここで、その内の幾つかが上で言及された本発明の多くの付帯的な利点/特徴について記述する。例えば、利点/特徴は少なくとも画像内のブロックを動きベクトルを使用して符号化するためのエンコーダを有する装置である。適応型動きベクトル精度の方式がブロックを符号化するために使用される動きベクトルの精度を選択するために用いられる。動きベクトルのために精度を選択する選択判定基準には非レート歪みに基づく判定基準が含まれる。
【0098】
他の利点/特徴は上述のエンコーダを含む装置であり、選択判定基準が動き補償パーティションサイズを含む。
【0099】
更に他の利点/特徴は上述のエンコーダを含む装置であり、選択判定基準が動きベクトル成分の方向を含み、ブロックを符号化するのに用いられる動きベクトルの精度が動きベクトルの水平成分と比較したときに垂直成分において異なるように選択され、垂直成分と水平成分の内で最大の精度を有する成分が主成分として選択される。
【0100】
更に他の利点/特徴はエンコーダを有する装置であり、選択判定基準が動きベクトル成分の方向を含み、ブロックを符号化するために用いられる動きベクトルの精度は、動きベクトルの水平成分と比較したとき、垂直成分で異なるように選択され、上述のように、垂直成分及び水平成分の間で最大精度を有する成分が主成分として選択され、主成分が以下の少なくとも1つに応じて決められる。
(i)動きベクトルが整数型動きベクトルであるときの動きベクトルの振幅、
(ii)ブロックのための動き補償パーティションの形状、
(iii)ブロックのための予測された動きベクトル、
(iv)ブロックに対して隣接したブロックの動きベクトル、及び
(v)画像と1以上の他の画像とであり、同一の動画像シーケンスに含まれる画像と1以上の他の画像との内の少なくとも1つに関するグローバル動き情報。
【0101】
更に他の利点/特徴は上述のエンコーダを有する装置であり、選択判定基準がブロックの符号化量子化パラメータを含む。
【0102】
更に、利点/特徴は上述のエンコーダを有する装置であり、選択判定基準がローカル画像領域の統計を含み、ローカル画像領域は画像の一部分、画像及び1以上の他の画像であり、同一の動画像シーケンスに含まれている画像と1以上の他の画像との少なくとも1つに対応している。
【0103】
また、他の利点/特徴はエンコーダを有する装置であり、選択判定基準がローカル画像領域の統計を含み、ローカル画像領域は画像の部分、画像及び1以上の他の画像の少なくとも1つに対応するのであり、上述のように、画像及び1以上の他の画像は同一の動画像シーケンスに含まれ、ローカル画像領域の統計は以下の少なくとも1つから選択される。
(i)ローカル領域内の画素の分散、
(ii)ローカル領域内の復号化された残余の係数の分散、
(iii)ローカル領域内のエッジの方向の分散、及び、
(iv)ローカル領域内のエッジ強度の分散。
【0104】
更に、他の利点の特徴は上述のエンコーダを有する装置であって、選択判定基準が検索された動きベクトルの振幅を含む。
【0105】
更に、他の利点/特徴は上述のエンコーダを有する装置であって、ブロックを符号化する動きベクトルの精度が符号化されたビットストリームにおいて明示的にシグナリングされる。
【0106】
更に、他の利点/特徴は上述のエンコーダを有する装置であって、ブロックを符号化するために用いられる動きベクトルの精度が画像又は画像を含むシーケンス内の予め復号化された動画像から推測される。
【0107】
本発明の原理のこれらの特徴及び利点及び他の特徴及び利点は本明細書における教示に基づいて関係する分野の当業者によって容易に確かめることができる。本発明の原理の教示は種々の形のハードウェア、ソフトウェア、ファームウェア、特定目的のプロセッサ、又はそれらの組み合わせとして実現され得ることが理解されるべきである。最も好ましくは、本発明の原理の教示はハードウェアとソフトウェアの組合わせとして実現される。
【0108】
更に、ソフトウェアはプログラム記憶ユニット上に目に見える方法で実体化されるアプリケーションプログラムとして実現されても良い。アプリケーションプログラムはまた、適当なアーキテクチャを含むマシーンにアップロードされ、それによって実行されても良い。
【0109】
好ましくは、マシーンは、例えば1以上のセントラルプロセッシングユニット(「CPU」)、ランダムアクセスメモリ(「RAM」)、及び入力/出力(「I/O」)インターフェース等のハードウェアを有するコンピュータプラットフォーム上に実現される。
【0110】
コンピュータプラットフォームはまたオペレーティングシステム及びマイクロインストラクションコードを含んでいても良い。
【0111】
ここで記述された種々のプロセス及び機能は、CPUによって実行することが可能なマイクロインストラクションコードの一部分又はアプリケーションプログラムの一部分の何れか、またはそれらの組み合わせであっても良い。
【0112】
更に、追加のデータ記憶ユニット及び印刷ユニット等の種々の他の周辺ユニットがコンピュータプラットフォームに接続されても良い。
【0113】
添付図面に示されたシステムの構成要素及び方法の幾つかは好ましくはソフトウェアにおいて実現されるため、システム構成要素又はプロセス機能ブロック間の実際の接続は本発明の原理がプログラムされる方法に応じて変わることが更に理解されるべきである。
【0114】
本明細書中の教示を得て、関係する技術分野の当業者は本発明の原理のこれらの及び同様の実現例又は構成を企図することができる。
【0115】
ここでは説明的な実施形態が添付図面を参照しつつ記述されてきたが、本発明の原理はそれらの詳細な実施形態に限定されるものではなく、種々の変形及び変更が関連する技術分野の当業者によって本発明の原理の範囲及び精神から逸脱することなく実現され得ることが理解されるべきである。
【0116】
そのような変形及び変更の全てが添付の請求項に記述された本発明の原理の範囲に含まれることが意図されている。
[付記1]
動きベクトルを使用して画像内のブロックを符号化するためのエンコーダ(100)を含む装置であって、ブロックを符号化するために使用される動きベクトルの精度を選択するために適応型動きベクトル精度の方式が用いられ、動きベクトルのための精度を選択するための選択判定基準はレート歪みに基づかない判定基準を含む、上記装置。
[付記2]
ビデオエンコーダにおける方法であって、
動きベクトルを使用して画像内のブロックを符号化するステップを含み、
ブロックを符号化するために使用される動きベクトルの精度を選択するために適応型動きベクトル精度の方式が用いられ、動きベクトルのための精度を選択するための選択判定基準はレート歪みに基づかない判定基準(320、520、525、720、920、925、1120、1320、1325)を含む、上記方法。
[付記3]
前記選択判定基準は動き補償パーティションサイズ(320)を含む、付記2に上記記載の方法。
[付記4]
前記選択判定基準が動きベクトル成分の方向を含み、ブロックを符号化するために用いられる動きベクトルの精度が動きベクトルの水平成分と比較したとき垂直成分において異なるように選択されており、垂直成分と水平成分との間で最高の精度を有する成分が主成分(520)として選択される、付記2に記載の上記方法。
[付記5]
前記主成分は、
(i)動きベクトルが整数型動きベクトル(520)であるとき、動きベクトルの振幅、
(ii)ブロックのための動き補償パーティションの形状(520)、
(iii)ブロックのための予測動きベクトル(520)、
(iv)ブロックに対して隣接するブロックの動きベクトル(520)、及び
(v)画像と1以上の他の画像であり、同一の動画像シーケンスに含まれる前記画像と前記1以上の他の画像の少なくとも1つに関するグローバル動き情報(520)、
の少なくとも1つに応じて決定される、付記4に記載の上記方法。
[付記6]
ブロックの符号化量子化パラメータ(720)を含む、付記2に記載の上記方法。
[付記7]
前記選択判定基準はローカル画像領域の統計を含んでおり、前記ローカル画像領域は画像の一部分、画像、1以上の他の画像、の少なくとも1つに対応しており、前記画像と前記1以上の他の画像は同一の動画像シーケンス(920、1120)に含まれる、付記2に記載の上記方法。
[付記8]
前記ローカル画像領域の統計は、
(i)ローカル領域内の画素の分散(920、1120)、
(ii)ローカル領域の符号化残余係数の分散(920、1120)、
(iii)ローカル領域内のエッジの方向の分散(920、1120)、及び
(iv)ローカル領域内のエッジの強度の分散(920、1120)、
の少なくとも1つから選択されている、付記7に記載の上記方法。
[付記9]
前記選択判定基準は検索された動きベクトルの振幅(1320)を含む、付記2に記載の上記方法。
[付記10]
ブロックを符号化するために用いられる動きベクトルの精度はビットストリームにおいて明示的に信号送出されている、付記2に記載の上記方法。
[付記11]
ブロックを符号化するために用いられる動きベクトルの精度は画像又は画像を含むシーケンス内の予め復号化された動画像(1120)から推測されることを特徴とする付記2に記載の方法。
[付記12]
動きベクトルを使用して画像内のブロックを復号化するためのデコーダ(200)を含む装置であって、ブロックを復号化するために使用される動きベクトルの精度を選択するために適応型動きベクトル精度の方式が用いられ、動きベクトルのための精度を選択するための選択判定基準はレート歪みに基づかない判定基準を含む、上記装置。
[付記13]
動画像デコーダにおける方法であって、
動きベクトルを使用して画像内のブロックを復号化するステップを含み、
ブロックを復号化するために用いられる動きベクトルの精度を選択するために適応型動きベクトル精度方式が選択され、動きベクトルのための精度を選択するための選択判定基準はレート歪みに基づかない判定基準(420、620、625、820、1020、1025、1220、1225、1420、1425)を含む、上記方法。
[付記14]
前記選択判定基準は動き補償パーティションサイズ(420)を含む、付記13に記載の上記方法。
[付記15]
前記選択判定基準は動きベクトル成分の方向を含み、ブロックを復号化するために用いられる動きベクトルの精度は動きベクトルの水平成分と比較したとき垂直成分において異なるように選択されており、垂直成分と水平成分の内最高の精度を有する成分が主成分(620)として選択される、付記13に記載の上記方法。
[付記16]
(i)動きベクトルが整数型動きベクトル(620)であるとき、動きベクトルの振幅、
(ii)ブロックのための動き補償パーティションの形状(620)、
(iii)ブロックのための予測動きベクトル(620)、
(iv)ブロックに対して隣接するブロックの動きベクトル(620)、及び
(v)画像と1以上の他の画像であり、同一の動画像シーケンスに含まれる前記画像と前記1以上の他の画像の少なくとも1つに関するグローバル動き情報(620)、
の少なくとも1つに応じて決定される、付記15に記載の上記方法。
[付記17]
前記選択判定基準はブロックの符号化量子化パラメータ(820)を含む、付記13に記載の上記方法。
[付記18]
前記選択判定基準はローカル画像領域の統計を含み、ローカル画像領域は画像の一部分、画像、及び1以上の他の画像の少なくとも1つに対応し、画像と1以上の他の画像は同一の動画像シーケンス(1220)に含まれる、付記13に記載の上記方法。
[付記19]
ローカル画像領域の統計は、
(i)ローカル領域内の画素の分散(1220)、
(ii)ローカル領域における復号化された残余係数の分散(1220)、
(iii)ローカル領域におけるエッジ方向の分散(1220)、及び
(iv)ローカル領域におけるエッジ強度の分散(1220)、
の少なくとも1つから選択される、付記18に記載の上記方法。
[付記20]
前記判定基準は検索された動きベクトルの振幅(1420)を含む、付記13に記載の上記方法。
[付記21]
ブロックを復号化するために用いられる動きベクトルの精度は符号化されたビットストリームにおいて明示的に受信される、付記13に記載の上記方法。
[付記22]
ブロックを復号化するために使用される動きベクトルの精度は予め画像又は画像を含むシーケンス(1220)における復号化された動画像から推測される、付記13に記載の上記方法。
[付記23]
動きベクトルを使用して符号化されている画像内のブロックを含み、ブロックを符号化するために使用される動きベクトルの精度を選択するために適応型動きベクトル精度の方式が用いられ、動きベクトルのための精度を選択するための選択判定基準はレート歪みに基づかない判定基準を含むことを特徴とする符号化されている画像信号データを有する、コンピュータ可読記憶媒体。