添付の図面を参照して、この出願の技術的解決策を以下に説明する。
この出願において、"少なくとも1つ"とは、1つ以上を意味し、"複数"とは、2つ以上を意味する。用語"及び/又は"とは、関連する物の間の関連性を表し、3つの関連性が存在してもよいことを述べる。例えば、次の3つの場合、即ち、A及び/又はBは、Aのみが存在し、A及びBの両方が存在し、Bのみが存在するという場合を表してもよい。AとBとは、単数又は複数であってよい。文字記号"/"は、通常、関連する物の間の"又は"関係を表す。"次の項目(個)のうち少なくとも1つ"又は類似の表現は、これらの項目の任意の組み合わせを意味し、単一の項目(個)又は複数の項目(個)の任意の組み合わせを含む。例えば、a、b又はcのうちの少なくとも1つとは、a,b,c,a-b,a-c,b-c又はa-b-cを表してもよい。a,b及びcは、単数又は単数であってよい。これに加え、この出願の実施形態において、"第1の"及び"第2の"のような用語は、数量又は実行シーケンスを限定しない。
なお、この出願においては、"例"又は"例えば"のような用語は、例、図示又は説明を示すために用いられることに注意するものとする。この出願において"例"又は"例えば"のように記載されている任意の実施形態又は設計の方式は、他の実施形態又は設計の方式よりも、一層好ましく、又は一層の利点を有するとして説明されないものとする。具体的には、"例"又は"例えば"の使用は、相対的な概念を特定の方法で提示することを意図している。
この出願の実施形態におけるコンピュータデバイスは、ビデオ符号化及び/又はビデオ復号化を実行することができる任意のコンピュータデバイスである。例えば、コンピュータデバイスは、コンピュータ、ノートブックコンピュータ、移動端末又はタブレットコンピュータであってよい。
この出願の実施形態では、コンピュータデバイスは、ハードウェア層、ハードウェア層上で動作するオペレーティングシステム層、及びオペレーティングシステム層上で動作するアプリケーション層を含んでよい。ハードウェア層は、中央処理装置(central processing unit, CPU)、メモリ管理装置(memory management unit, MMU)、及びメモリ(メインメモリとも呼ばれる)などのハードウェアを含む。オペレーティングシステムは、プロセス(process)を介してサービス処理を実施する、任意の1つ又は複数のコンピュータオペレーティングシステム、例えば、Linuxオペレーティングシステム、Unixオペレーティングシステム、Androidオペレーティングシステム、iOSオペレーティングシステム、又はWindowsオペレーティングシステムであってよい。アプリケーション層は、ブラウザ、アドレスブック、ワードプロセッサソフトウェア、及びインスタント通信ソフトウェアのようなアプリケーションを含む。さらに、この出願の実施形態に提供される方法のコードを記録するプログラムが、この出願の実施形態に提供される方法に従って通信を行うために実行され得る限り、この出願の実施形態に提供される方法の実行主体の特定の構造は、この出願の実施形態に特に限定されない。例えば、この出願の実施形態において提供される方法は、端末装置、ネットワーク装置、又は、端末装置又はネットワーク装置内にあり、プログラムを起動し実行することができる機能モジュールによって、実行されてもよい。
さらに、この出願の態様又は特徴は、標準的なプログラミング及び/又はエンジニアリング技術を使用する方法、装置、又は製品として実装してもよい。この出願において使用される「製品」という用語は、任意のコンピュータ読み取り可能な構成要素、キャリア又は媒体からアクセス可能な、コンピュータプログラムを包含する。例えば、コンピュータ読み取り可能な媒体は、磁気記憶構成要素(例えば、ハードディスク、フロッピーディスク、又は磁気テープ)、光ディスク(例えば、コンパクトディスク(compact disc, CD)又はデジタル多用途ディスク(digital versatile disc, DVD))、スマートカード、及びフラッシュメモリ構成要素(例えば、消去可能プログラマブル読取り専用メモリ(erasable programmable read-only memory, EPROM)、カード、スティック、又はキードライブ)を含んでよいが、これらに限定されない。さらに、本明細書に記載される種々の記憶媒体は、情報を記憶するように構成される1つ又は複数の装置及び/又は他の機械読み取り可能な媒体を表してもよい。用語「機械読み取り可能な媒体」は、限定されるものではないが、無線チャネル、及び命令及び/又はデータを記憶、収容及び/又は掲載することができる種々の他の媒体を含んでよい。
当業者がこの出願の技術的解決策をよりよく理解するのを助けるために、最初に、この出願の実施形態におけるいくつかの鍵の概念を述べる。
画像ブロック: ビデオコーディングプロセスにおいて、画像ブロックは、種々のタイプの符号化動作、例えば、ブロックベースでの予測と、変換と、エントロピー符号化とのための基本ユニットとして使用される。さらに画像ブロックは、画像ユニット、コーディングユニットなどと称されてもよい。画像ブロックは、2次元サンプルアレイであり、正方形アレイであってよく、又は矩形アレイであってよい。例えば、4×4サイズの画像ブロックは、合計4×4=16サンプルで構成される正方形サンプルアレイとみなされてもよい。
画像ブロックの中の信号は、画像ブロックの中のサンプルのサンプル値である。さらにサンプルは、画素又はペルと称されてもよい。対応して、試料の値はまた、画素値と称されてもよい。
(処理されるべき画像ブロック、現在の画像ブロック、又は現在のコーディングユニットとも称されてもよい)現在のブロックは、現在処理されつつある画像ブロックを指す。例えば、符号化の間、現在のブロックは現在符号化されつつあるブロックであり、復号化の間、現在のブロックは復号化されつつあるブロックである。
(基準画像ブロック又は基準コーディングユニットとも称されてもよい)基準ブロックは、現在のブロックに対して参照信号を提供する画像ブロックである。サーチプロセスでは、複数の基準ブロックが、最適な基準ブロックを見つけるために横断される必要がある。
(予測画像ブロック又は予測コーディングユニットとも称されてもよい)予測ブロックは、現在のブロックに対して予測を提供するブロックである。例えば、複数の基準ブロックが横断された後、最適な基準ブロックが見つかる。最適基準ブロックは、現在のブロックに対して予測を提供し、このブロックは予測ブロックと呼ばれる。
予測モードには、フレーム内予測とフレーム間予測の2つがある。
フレーム間予測: フレーム間予測は、現在の画像の現在のコーディングブロックの整合基準ブロックのために再構成した画像をサーチするプロセスであり、基準ブロックの画素の画素値を、現在のコーディングブロックの画素値の予測値として用いる(このプロセスは、動き推定(motion estimation, ME)と称されてもよい)。
高度な動きベクトル予測(Advanced Motion Vector Prediction、AMVP)モードとマージ(Merge)モードとの、2つのフレーム間予測モードがある。
予測方向: 一方向予測又は双方向予測があってよい。より具体的には、一方向予測は、第1の方向の予測と第2の方向の予測とを含み、第1の方向の予測は第2の方向の予測とは異なる。選択的に、いくつかの実施形態において、第1の方向の予測は順方向予測であってよく、第2の方向の予測は逆方向予測であってよい。選択的に、いくつかの他の実施形態において、第1の方向の予測は、逆方向予測であってよい。
順方向予測は、現在の画像ブロックのための基準ブロックを得るために、第1の基準画像セットから1つの基準画像を選択する。逆方向予測は、現在の画像ブロックのための基準ブロックを得るために、第2の基準画像セットから1つの基準画像を選択する。
第1の基準画像セットは、基準画像リスト0(reference picture list 0、略してlist0)であり、第2の基準画像セットは、基準画像リスト1(reference picture list 1、略してlist1)である。あるいは、第1の基準画像セットはlist1であり、第2の基準画像セットはlist0である。
双方向予測は、基準ブロックを得るために、第1の基準画像セットから基準画像を選択し、第2の基準画像セットから基準画像を選択する。双方向予測方式を用いた場合、現在の画像ブロックには2つの基準ブロックがある。各基準ブロックは、動きベクトルと参照フレームインデックスによって示される。次に、現在の画素ブロック内の画素の画素値の予測値が、2つの基準ブロック内の画素の画素値に基づいて決定される。
図1は、この出願の実施形態で提供されるフレーム間予測方法が適用可能なシステムアーキテクチャの概略的な図である。図1に示されているように、既存のビデオ送信システムは、典型的には、収集、符号化、送信、受信、復号化及び表示を含む。収集モジュールは、カメラ又はカメラモジュール及び前処理部を含み、光信号をデジタルビデオシーケンスに変換する。次いで、ビデオシーケンスはエンコーダによって符号化され、ビットストリームに変換される。次いで、ビットストリームは、送信モジュールによって受信モジュールにネットワークを介して送信され、受信モジュールによって変換され、デコーダによってビデオシーケンスに復号化及び再構成される。最後に、再構成されたビデオシーケンスはレンダリングのような後処理を受け、表示装置に送られて表示される。この出願の実施形態において提供されるフレーム間予測方法は、ビデオ符号化プロセス及びビデオ復号化プロセスに適用されてもよい。説明を容易にするために、ビデオ送信システムでは、ビデオビットストリームを生成し、ビットストリームを送信するコンピュータデバイスを、ソースデバイス、符号化デバイス、符号化装置などと称し、ビデオビットストリームを受信し、ビットストリームを復号するコンピュータデバイスを、宛先デバイス、復号化デバイス、復号化装置などと称されてもよい。
図2は、この出願のある1つの実施形態にしたがったフレーム間予測方法の概略的なフローチャートである。図2に示されている方法は、宛先デバイスによって実行されてもよい。
201: ビットストリームを取得する。
202: ビットストリームを解析して、処理されるべき画像ブロックの予測情報を決定する。
処理されるべき画像ブロックの予測情報は、その処理されるべき画像ブロックの予測モードを含んでもよい。図2に示されている実施形態は、フレーム間予測方法の実施形態であるため、予測情報のうちでその処理されるべき画像ブロックに関するステップ202において取得する予測モードは、フレーム間予測であるというということを理解することが可能である。
処理されるべき画像ブロックの予測情報は、処理されるべき画像ブロックの予測方向をさらに含んでもよい。予測情報が、処理されるべき画像ブロックの予測方向が双方向予測であるということを示しているときに、ビットストリームは、ターゲット識別情報を含まず、そのターゲット識別情報は、処理されるべき画像ブロックに対してLICを実行することを指示するのに使用される。予測情報が、処理されるべき画像ブロックの予測方向が一方向予測であるということを示しているときに、ビットストリームは、ターゲット識別情報を含む。
203: 予測情報に基づいて、処理されるべき画像ブロックの予測値を取得する。
予測情報に基づいてその処理されるべき画像ブロックの予測値を取得する特定の実装、及び、予測値を取得した後にその処理されるべき画像ブロックを処理する特定の操作は、この出願のこの実施形態においては限定されない。
選択的に、複数の実施形態のうちのいくつかにおいて、予測情報は、さらに、予測モードがマージモードであるということを示してもよい。この状況においては、ステップ203を実行する前に、さらに、マージ候補リストを構成してもよい。
図3は、この出願のある1つの実施形態にしたがったマージ候補リストの構築の概略的な図である。
301: 少なくとも1つの第1の情報グループを決定し、各々の第1の情報グループは、動きベクトル、予測方向、及びLIC識別子を含む。各々の第1の情報グループは、基準フレームインデックスをさらに含んでもよい。
少なくとも1つの第1の情報グループは、その処理されるべき画像ブロックに空間的に隣接する画像ブロックの画像ブロック情報及びその処理されるべき画像ブロックに時間的に隣接する画像ブロックの画像ブロック情報に基づいて決定されてもよい。画像ブロック情報は、動きベクトル、予測方向、LIC識別子、及び基準フレームインデックスを含んでもよい。
具体的には、少なくとも1つの第1の情報グループの決定は、以下のステップに基づいて実装されてもよい。
ステップ1: N個の画像ブロック情報を取得し、それらのN個の画像ブロック情報に基づいて、マージ候補リストの中の画像ブロック情報を決定する。それらのN個の画像ブロック情報は、処理されるべき画像ブロックにN個の空間的に隣接する画像ブロックの画像ブロック情報であり、Nは、1以上の正の整数である。説明を容易にするために、処理されるべき画像ブロックに空間的に隣接する画像ブロックは、以下では、簡単に、空間的に隣接する画像ブロックと称される。N個の空間的に隣接する画像ブロックは、同じサイズを有してもよく又は異なるサイズを有してもよい。N個の空間的に隣接する画像ブロックのサイズは、処理されるべき画像ブロックのサイズと同じであってもよく、又は、処理されるべき画像ブロックのサイズとは異なるサイズであってもよい。例えば、処理されるべき画像ブロックのサイズは、空間的に隣接する画像ブロックのサイズよりも大きくてもよい。
例えば、図4は、その処理されるべき画像ブロックと複数の隣接する画像ブロックとの間の位置関係を示す。Nの値は、4であってもよく、それらのN個の空間的に隣接する画像ブロックはA0、A1、B0、及びB1であってもよい。図4は、当業者が、その処理されるべき画像ブロックと複数の空間的に隣接する画像ブロックとの間の位置関係をより良く理解するのを支援することを意図しているにすぎず、空間的に隣接する画像ブロックの数、及び、その処理されるべき画像ブロックと複数の空間的に隣接する画像ブロックとの間の位置関係を制限するものではないということを理解することが可能である。例えば、複数の実施形態のうちのいくつかにおいて、Nの値は、4よりも大きくてもよい。いくつかの他の実施形態においては、Nの値は、4よりも小さくてもよい。例えば、図4において、A0は、処理されるべき画像ブロックの左下に位置する。複数の実施形態のうちのいくつかにおいて、A0は、代替的に、処理されるべき画像ブロックの上左側(すなわち、図4におけるB2の位置)に位置していてもよい。
反復する画像ブロック情報は、N個の画像ブロック情報から削除される。選択的に、複数の実施形態のうちいくつかにおいて、2つ又はそれ以上の画像ブロック情報の内容が完全に同じである場合には、画像ブロック情報は反復する画像ブロック情報であるということを決定してもよい。この場合には、反復する画像ブロック情報のうち1つのみを保持してもよい。選択的に、いくつかの他の実施形態において、2つ又はそれ以上の画像ブロック情報の中に反復する内容存在する場合に、画像ブロック情報は反復する画像ブロック情報であるということを決定してもよい。この場合には、反復する画像ブロック情報のうちの1つの画像ブロック情報をランダムに保存してもよい。
利用可能ではない画像ブロック情報は、N個の画像ブロック情報から削除される。利用可能ではない画像ブロック情報は、画像ブロック情報の中に含まれる情報のすべてがヌル(null)であるということを意味してもよい。さらに、ある1つの例として、図4を使用する。処理されるべき画像ブロックは、画像の左上に位置していると仮定する。この場合には、隣接する画像ブロックA0及びA1の場所には画素は存在しない。この場合には、画像ブロックA0と画像ブロックA1の双方の画像ブロック情報をヌルに設定してもよい。
反復する画像ブロック情報及び利用可能ではない画像ブロック情報を削除するときに、マージ候補リストの中の画像ブロック情報として、残りの画像ブロック情報を使用する。説明を容易にするために、残りの画像ブロック情報の数がN1であり、N1は、1以上の正の整数であってもよいということを仮定してもよい。
ステップ2: N1がNよりも小さいか否かを決定する。
N1がNに等しい場合には、直接的にステップ3を実行する。
N1がNよりも小さい場合に、さらに、処理されるべき画像ブロックに空間的に隣接する他の画像ブロックの画像ブロック情報を取得してもよい。画像ブロック情報が利用可能な画像ブロック情報であり、反復する画像ブロック情報ではない場合(すなわち、画像ブロック情報が、N1個の画像ブロック情報のうちのいずれの画像ブロック情報とも異なる場合)には、マージ候補リストの中の1つの画像ブロック情報として、画像ブロック情報を使用する。
ステップ3: 処理されるべき画像ブロックに時間的に隣接する再構成された画像フレームの中のターゲット画像ブロックを取得し、そのターゲット画像ブロックに対応する画像ブロック情報を決定し、そして、マージ候補リストの中の1つの画像ブロック情報として、ターゲット画像ブロックに対応する画像ブロック情報を使用する。
選択的に、複数の実施形態のうちいくつかにおいて、処理されるべき画像ブロックに時間的に隣接する再構成された画像フレームは、(説明を容易にするために、以下で、略称を用いて、順方向の再構成された画像フレームと称される)順方向の時間的に隣接する再構成された画像フレーム及び(説明を容易にするために、以下で、略称を用いて、逆方向の再構成された画像フレームと称される)逆方向の時間的に隣接する再構成された画像フレームを含んでもよい。この場合に、順方向の再構成された画像フレームから、(以下で、略称を用いて、順方向のターゲット画像ブロックと称される)ターゲット画像ブロックを決定してもよく、逆方向の再構成された画像フレームから、(以下で、略称を用いて、逆方向のターゲット画像ブロックと略す)ターゲット画像ブロックを決定してもよい。言い換えると、ステップ3において決定されるターゲット画像ブロックは、順方向のターゲット画像ブロック及び逆方向のターゲット画像ブロックを含んでもよい
選択的に、いくつかの他の実施形態において、処理されるべき画像ブロックに時間的に隣接する再構成された画像フレームは、順方向の再構成された画像フレームのみを含んでもよい。それに対応して、ステップ3において決定されるターゲット画像ブロックは、順方向のターゲット画像ブロックである。
選択的に、いくつかの他の実施形態において、処理されるべき画像ブロックに時間的に隣接する再構成された画像フレームは、逆方向の再構成された画像フレームのみを含んでもよい。それに対応して、ステップ3において決定されるターゲット画像ブロックは、逆方向のターゲット画像ブロックである。
ターゲット画像ブロックに対応する画像ブロック情報と、ターゲット画像ブロックの画像ブロック情報とを区別するために、以下ではターゲット画像ブロックに対応する画像ブロック情報を第5の選択情報グループと呼ぶ。
第5の選択情報グループにおける予測方向はターゲット画像ブロックに基づいて決定されてもよい。
例えば、ターゲット画像ブロックが順方向ターゲット画像ブロック及び逆方向ターゲット画像ブロックを含む場合、第5の選択情報グループにおける予測方向は双方向予測である。第5の選択情報グループ内のLIC識別子は第2の値である。処理すべき画像ブロックに対してLICが実行される場合、処理すべき画像ブロックのLIC識別子は第1の値に設定される。処理すべき画像ブロックに対してLICが実行されない場合、処理すべき画像ブロックのLIC識別子は第2の値に設定される。第5の選択グループ情報における基準フレームインデックスは、順方向ターゲット画像ブロックの画像ブロック情報における基準フレームインデックスと同じであってもよいし、逆方向ターゲット画像ブロックの画像ブロック情報における基準フレームインデックスと同じであってもよい。同様に、第5の選択グループ情報における動きベクトルは、順方向ターゲット画像ブロックの画像ブロック情報における動きベクトルと同じであってもよいし、逆方向ターゲット画像ブロックの画像ブロック情報における動きベクトルと同じであってもよい。
他の例では、ターゲット画像ブロックが順方向ターゲット画像ブロックの場合、第5の選択情報グループにおける予測方向は順方向予測である。第5の選択情報グループにおけるLIC識別子は第2の値である。第5の選択グループ情報における基準フレームインデックスは順方向ターゲット画像ブロックの画像ブロック情報における基準フレームインデックスと同じであってもよい。第5の選択グループ情報における動きベクトルは順方向ターゲット画像ブロックの画像ブロック情報における動きベクトルと同じであってもよい。
他の例では、ターゲット画像ブロックが逆方向ターゲット画像ブロックの場合、第5の選択情報グループにおける予測方向は逆方向予測である。第5の選択情報グループにおけるLIC識別子は第2の値である。第5の選択グループ情報の基準フレームインデックスは逆方向ターゲット画像ブロックの画像ブロック情報における基準フレームインデックスと同じであってもよい。第5の選択グループ情報における動きベクトルは逆方向ターゲット画像ブロックの画像ブロック情報における動きベクトルと同字であってもよい。
図4は、ターゲット画像ブロックと処理すべき画像ブロックとの間の位置関係をさらに示されている。図4に示されているターゲット画像ブロックは順方向ターゲット画像ブロックでもあってよいし、逆方向ターゲット画像ブロックであってもよい。図4に示されているように、画像ブロックTがターゲット画像ブロックである。図4に示されているように、画像ブロックTは、再構成された画像ブロック内にある画像ブロックと空間的に隣接し、処理すべき画像ブロックの位置と位置が同じである画像ブロックであり、再構成された画像フレームは処理される画像ブロックに時間的に隣接している。説明を容易にするために、再構成された画像フレーム内にあり、処理すべき画像ブロックの位置と位置が同じである画像ブロックは、以下では略して配列された処理すべき画像ブロック(collocated to-be-processed block)という。
複数の実施形態のうちのいくつかにおいて、画像ブロックTは存在しない場合がある。例えば、配列された処理すべき画像ブロックは画像フレームの右下に位置してもよい。この場合、配列された処理すべき画像ブロックにおける1つの画像ブロックがターゲット画像ブロックとして使用されてもよい。例えば、ターゲット画像ブロックは図4に示されている画像ブロックCであってもよい。配列された処理すべき画像ブロックの範囲内にターゲット画像ブロックが配置される限り、図4に示されている画像ブロックCの位置以外の位置にある画像ブロックであってもよいということを理解することが可能である。
説明を容易にするため、以下では、前述したステップ1~ステップ3が実行された後に、マージ候補リストは合計でN2個の画像ブロック情報を含むと想定する(N2は1以上の整数)。N2個の画像ブロック情報は、ステップ301で決定される少なくとも1つの第1の情報グループである。すなわち、マージ候補リスト内にあり且つ上記のステップ1~3を行うことにより決定される画像ブロック情報が第1の情報グループと呼ばれ得る。
表1は、ステップ301で決定されるマージ候補リストを概略的に列挙する。
表1は、計3つの第1の情報グループを列挙する。説明を容易にするために、表1では、MV1、MV2、及びMV3は、3つの第1の情報グループにおける動きベクトルを表し、PRED1、PRED2及びPRED3は、3つの第1の情報グループにおける予測方向を表し、RI1、RI2及びRI3は、3つの第1の情報グループにおける基準フレームインデックスを表す。表1から分かるように、第1の情報グループ0(すなわち、表1の1番目の第1の情報グループ)におけるLIC識別子は0であり、第1の情報グループ1(すなわち、表1の2番目の第1の情報グループ)におけるLIC識別子は1であり、第1の情報グループ2(すなわち、表1の3番目の第1の情報グループ)におけるLIC識別子は0である。選択的に、複数の実施形態のうちのいくつかにおいて、0であるLIC識別子(LICフラグ)はLICモードが用いられていないことを特定してもよく、1であるLIC識別子はLICモードが用いられていることを特定してもよい。選択的に、いくつかの他の実施形態において、1であるLIC識別子(LICフラグ)はLICモードが用いられていないことを特定してもよく、0であるLIC識別子はLICモードが用いられていることを特定してもよい。さらに、表1に列挙されているように、3つの第1の情報グループの各々はインデックスを有する。
選択的に、いくつかの他の実施形態において、マージ候補リストはインデックスを含まなくてもよい。すなわち、マージ候補リストは表1に列挙したインデックス列を含まない場合がある。
302: 少なくとも1つの第1の情報グループの数があらかじめ設定された目標値より小さいか否かを決定する。説明を容易にするために、以下では、あらかじめ設定された目標値はNmaxであると仮定する。
上述したように、ステップ301が実行された後、マージ候補リストには合計でN2個の第1の情報グループがある。したがって、ステップ302は、N2がNmaxよりも小さいか否かを決定するものとして記載されてもよい。
N2がNmaxと等しい場合、ステップ301にしたがって決定されたマージ候補リストは最終的なマージ候補リストである。
N2がNmaxよりも小さい場合、ステップ303が実行される。
303: 少なくとも1つの第1の情報グループに基づいて少なくとも1つの第2の情報グループを決定する。第2の情報グループの各々は、動きベクトル、予測方向及びLIC識別子を含み、第2の情報グループの各々は基準フレームインデックスをさらに含んでもよい。
少なくとも1つの第2の情報グループのうちの1つは、少なくとも1つの第1の情報グループのうちの2つの第1の情報グループに基づいて決定される。説明を容易にするために、以下では、どのように第2の情報グループを決定するかを手短に説明するために、1つの第2の情報グループを一例として用いる。説明を容易にするために、第2の情報グループの例を第1の合成情報グループともいう。第1の合成情報グループを決定するのに用いられる2つの第1の情報グループを第1の選択情報グループ及び第2の選択情報グループという。
選択的に、複数の実施形態のうちのいくつかにおいて、第1の選択情報グループ及び第2の選択情報グループはあらかじめ設定されたインデックスの組み合わせに基づいて、少なくとも1つの第1の情報グループから決定されてもよい。例えば、表2はインデックスの組み合わせのリストである。
表2に列挙したインデックスの組み合わせリストは合計6つのインデックスの組み合わせを含む。例えば、第1のインデックスの組み合わせでは、(0、1)は少なくとも1つの第1の情報グループにおけるインデックス値が0及び1である2つの第1の情報グループに基づいて1つの第2の情報グループが決定されることを示す。第2の情報グループを決定するのに使用される2つの第1の情報グループは、表2の上から下への順序で決定されてもよい。例えば、少なくとも1つの第2の情報グループのうちの1番目の第2の情報グループは、少なくとも1つの第1の情報グループにおけるインデックス値が0及び1である2つの第1の情報グループに基づいて決定され、少なくとも1つの第2の情報グループのうちの2番目の第2の情報グループは、少なくとも1つの第1の情報グループにおけるインデックス値が0及び2である2つの第1の情報グループに基づいて決定され、少なくとも1つの第2の情報グループのうちの3番目の第2の情報グループは、少なくとも1つの第1の情報グループにおけるインデックス値が1及び2である2つの第1の情報グループに基づいて決定される。
表2は、あらかじめ設定されたインデックスの組み合わせを概略的に列挙しているにすぎないことが分かる。インデックスの組み合わせリストにおけるインデックスの組み合わせの順番、数及び組み合せモードは別の順番、別の数及び別の組み合わせモードであってもよい。これらは、ここでは1つずつ列挙されていない。
選択的に、いくつかの他の実施形態において、第1の選択情報グループ及び第2の選択情報グループは、代替的に任意の2つの決定された第1の情報グループであってもよい。例えば、NmaxとN2との差が1であると仮定した場合、2つの第1の情報グループは、少なくとも1つの第1の情報グループから第1の選択情報グループ及び第2の選択情報グループとしてランダムに決定されてもよい。
選択的に、いくつかの他の実施形態において、第1の選択情報グループ及び第2の選択情報グループは、あらかじめ設定されたインデックスの組み合わせリスト以外に、あらかじめ設定された規則にしたがって決定されてもよい。この場合、宛先デバイスはインデックスの組み合わせリストを記憶する必要がなくてもよい。例えば、上述したように、少なくとも1つの第1の情報グループが合計でN2個の第1の情報グループを含む場合、少なくとも1つの第2の情報グループのうちの1番目の第2の情報グループは、N2個の第1の情報グループのうちの1番目の第1の情報グループ及び2番目の第1の情報グループに基づいて決定され、2番目の第2の情報グループは、N2個の第1の情報グループのうちの1番目の第1の情報グループ及び3番目の第1の情報グループに基づいて決定され、(N2-1)番目の第2の情報グループは、N2個の第1の情報グループのうちの1番目の第1の情報グループ及びN2番目の第1の情報グループに基づいて決定され、N2番目の第2の情報グループは、N2個の第1の情報グループのうちの2番目の第1の情報グループ及び3番目の第1の情報グループに基づいて決定されてもよい。
選択的に、複数の実施形態のうちのいくつかにおいて、第1の合成情報グループ内の動きベクトルは、第1の選択情報グループ内の動きベクトル及び第2の選択情報グループ内の動きベクトルの平均値であってもよい。より具体的には、平均値は算術平均値であってもよい。
選択的に、複数の実施形態のうちのいくつかにおいて、第1の合成情報グループにおける予測方向は、第1の選択情報グループにおける予測方向及び第2の選択情報グループにおける予測方向に基づいて決定されてもよい。
選択的に、いくつかの他の実施形態において、第1の選択情報グループにおける予測方向が第2の選択情報グループにおける予測方向と一致する場合、第1の合成情報グループにおける予測方向は第1の選択情報グループにおける予測方向と同じである。
例えば、第1の選択情報グループにおける予測方向が順方向予測であり、第2の選択情報グループにおける予測方向が順方向予測である場合、第1の合成情報グループにおける予測方向は順方向予測である。
他の例として、第1の選択情報グループにおける予測方向が逆方向予測であり、第2の選択情報グループにおける予測方向が逆方向予測である場合、第1の合成情報グループにおける予測方向は逆方向予測である。
他の例として、第1の選択情報グループにおける予測方向が双方向予測であり、第2の選択情報グループにおける予測方向が双方向予測である場合、第1の合成情報グループにおける予測方向は双方向予測である。
選択的に、いくつかの他の実施形態において、第1の選択情報グループにおける予測方向が第2の選択情報グループにおける予測方向と異なる場合、第1の合成情報グループにおける予測方向は第1の選択情報グループにおける予測方向と同じである。
例えば、第1の選択情報グループにおける予測方向が順方向予測であり、第2の選択情報グループにおける予測方向が逆方向予測である場合、第1の合成情報グループにおける予測方向は順方向予測である。
他の例として、第1の選択情報グループにおける予測方向が逆方向予測であり、第2の選択情報グループにおける予測方向が順方向予測である場合、第1の合成情報グループにおける予測方向は逆方向予測である。
他の例として、第1の選択情報グループにおける予測方向が双方向予測であり、第2の選択情報グループにおける予測方向が順方向予測又は逆方向予測である場合、第1の合成情報グループにおける予測方向は双方向予測である。
選択的に、いくつかの他の実施形態において、第1の選択情報グループにおける予測方向が第2の選択情報グループにおける予測方向と異なる場合、第2の合成情報グループにおける予測方向は第2の選択情報グループにおける予測方向と同じである。
例えば、第1の選択情報グループにおける予測方向が順方向予測であり、第2の選択情報グループにおける予測方向が逆方向予測である場合、第1の合成情報グループにおける予測方向は逆方向予測である。
他の例として、第1の選択情報グループにおける予測方向が逆方向予測であり、第2の選択情報グループにおける予測方向が順方向予測である場合、第1の合成情報グループにおける予測方向は順方向予測である。
他の例として、第1の選択情報グループにおける予測方向が双方向予測であり、第2の選択情報グループにおける予測方向が順方向予測である場合、第1の合成情報グループにおける予測方向は順方向予測である。
他の例として、第1の選択情報グループにおける予測方向が双方向予測であり、第2の選択情報グループにおける予測方向が逆方向予測である場合、第1の合成情報グループにおける予測方向は逆方向予測である。
選択的に、いくつかの他の実施形態において、第1の選択情報グループにおける予測方向が第2の選択情報グループにおける予測方向と異なる場合、第2の合成情報グループにおける予測方向は双方向予測である。
例えば、第1の選択情報グループにおける予測方向が順方向予測であり、第2の選択情報グループにおける予測方向が逆方向予測である場合、第1の合成情報グループにおける予測方向は双方向予測である。
他の例として、第1の選択情報グループにおける予測方向が逆方向予測であり、第2の選択情報グループにおける予測方向が順方向予測である場合、第1の合成情報グループにおける予測方向は双方向予測である。
他の例として、第1の選択情報グループにおける予測方向が双方向予測であり、第2の選択情報グループにおける予測方向が順方向予測又は逆方向予測である場合、第1の合成情報グループにおける予測方向は双方向予測である。
他の例として、第1の選択情報グループにおける予測方向が順方向予測又は逆方向予測であり、第2の選択情報グループにおける予測方向が双方向予測である場合、第1の合成情報グループにおける予測方向は双方向予測である。
選択的に、複数の実施形態のうちのいくつかにおいて、処理すべき画像ブロックに対してLICが実行される場合、処理すべき画像ブロックのLIC識別子は第1の値であり、処理すべき画像ブロックに対してLICが実行されない場合、処理すべき画像ブロックのLIC識別子は第2の値であり、少なくとも1つの第1の情報グループに基づいて少なくとも1つの第2の情報グループを決定することは、第1の合成情報グループにおける予測方向が双方向予測である場合、第1の合成情報グループにおけるLIC識別子が第2の値であると決定することと、第1の合成情報グループにおける予測方向が一方向予測であり、第1の選択情報グループにおけるLIC識別子及び第2の選択情報グループにおけるLIC識別子がそれぞれ第2の値である場合、第1の合成情報グループにおけるLIC識別子が第2の値であると決定することと、第1の合成情報グループにおける予測方向が一方向予測であり、第1の選択情報グループにおけるLIC識別子及び/又は第2の選択情報グループにおけるLIC識別子が第1の値である場合、第1の合成情報グループにおけるLIC識別子が第1の値であると判断することとを含む。
第1の値は1であり、第2の値は0であると仮定する。第1の合成情報グループにおける予測方向が双方向予測である場合、第1の合成情報グループにおけるLIC識別子が0であると判定されてもよい。第1の合成情報グループにおける予測方向が一方向予測であり、第1の選択情報グループにおけるLIC識別子及び第2の選択情報グループにおけるLIC識別子のそれぞれが0である場合、第1の合成情報グループにおけるLIC識別子は0であるということを決定する。第1の合成情報グループにおける予測方向が一方向予測であり、第1の選択情報グループにおけるLIC識別子及び/又は第2の選択情報グループにおけるLIC識別子が1である場合、第1の合成情報グループにおけるLIC識別子は1であるということを決定する。
すなわち、少なくとも1つの第2の情報グループにおける1つ又は複数の第2の情報グループにおける予測方向が双方向予測である場合、1つ又は複数の第2の情報グループにおける1つ又は複数のLIC識別子の各々は第2の値である。
第1の合成情報グループにおける基準フレームインデックスは、第1の選択情報グループにおける基準フレームインデックス及び第2の選択情報グループにおける基準フレームインデックスに基づいて決定されてもよい。
例えば、第1の合成情報における順方向基準フレームインデックスは、以下のように決定されてもよい。第1の選択情報グループ及び第2の選択情報グループの双方が順方向(すなわち、予測方向が順方向予測又は双方向予測である)を含む場合、第1の合成情報における順方向基準フレームインデックスは、第1の選択情報グループにおける順方向基準フレームインデックスである。第1の選択情報グループが順方向を含み、第2の選択情報グループが順方向を含まない場合(すなわち、予測方向が逆方向予測である場合)、第1の合成情報における順方向基準フレームインデックスは、第1の選択情報グループにおける順方向基準フレームインデックスである。第1の選択情報グループが順方向を含まず、第2の選択情報グループが順方向を含む場合、第1の合成情報における順方向基準フレームインデックスは、第2の選択情報グループにおける順方向基準フレームインデックスである。第1の選択情報グループ及び第2の選択情報グループの両方が逆方向(すなわち、予測方向が逆方向予測又は双方向予測)を含む場合、第1の合成情報における逆方向基準フレームインデックスは、第1の選択情報グループにおける逆方向基準フレームインデックスである。第1の選択情報グループが逆方向を含み、第2の選択情報グループが逆方向を含まない場合(すなわち、予測方向が順方向予測である場合)、第1の合成情報における逆方向基準フレームインデックスは第1の選択情報グループにおける逆方向基準フレームインデックスである。第1の選択情報グループが逆方向を含まず、第2の選択情報グループが逆方向を含む場合、第1の合成情報における逆方向基準フレームインデックスは、第2の選択情報グループにおける逆方向基準フレームインデックスである。
少なくとも1つの第2の情報グループが決定された後、少なくとも1つの第2の情報グループがマージ候補リストに挿入されてもよい。説明を容易にするために、以下では、少なくとも1つの第2の情報グループの数はN3であると仮定する。加えて、説明を容易にするため、候補情報リスト内の第1の情報グループ及び第2の情報グループをまとめて画像ブロック情報という。ステップ303が実行された後、マージ候補リストは、合計でN2+N3個の画像ブロック情報を含む。
選択的に、複数の実施形態のうちのいくつかにおいて、2つの第1の情報グループに基づいて決定された1つの第2の情報グループが、候補情報リストに既に存在する画像ブロック情報と同じである場合、第2の情報グループは削除されてもよく、他の第1の情報グループに基づく新たな第2の情報グループの決定が続けられる。
304: 少なくとも1つの第1の情報グループの数及び少なくとも1つの第2の情報グループの数の和があらかじめ設定されている目標値よりも小さいか否かを決定する。すなわち、N2+N3がNmaxよりも小さいか否かを決定する。
N2+N3がNmaxと等しい場合、マージ候補リストは最終マージ候補リストである。
N2+N3がNmaxよりも小さい場合、ステップ305が実行される。
ステップ304及びステップ303は同時に実行されてもよいということを理解することが可能である。すなわち、少なくとも1つの第2の情報グループを決定するプロセスにおいて、決定された第2の情報グループの数及び少なくとも1つの第1の情報グループの数の和があらかじめ設定されている目標値と等しい場合、さらに、新たな第2の情報グループを決定する必要がない場合がある。決定された少なくとも1つの第2の情報グループ及び少なくとも1つの情報グループは最終的なマージ候補リストを構成する。
305: 少なくとも1つの第5の情報グループを決定する。第5の情報グループの各々は、LIC識別子、予測方向、基準フレームインデックス及び動きベクトルを含み、少なくとも1つの第5の情報グループの各々の中のLIC識別子は、第2の値である。
少なくとも1つの第1の情報グループの数、少なくとも1つの第2の情報グループの数及び少なくとも1つの第5の情報グループの数の和はあらかじめ設定されている目標値と等しい。したがって、少なくとも1つの第5の情報グループが決定される前に、決定される必要がある少なくとも1つの第5の情報グループの数が先ずさらに決定されてもよい。少なくとも1つの第5の情報グループの数はN3であり、N1+N2+N3はNmaxであると仮定する。
選択的に、第5の情報グループにおけるLIC識別子以外の情報はあらかじめ設定されたやり方で決定されてもよい。
例えば、N3が1と等しい場合、第5の情報グループにおける動きベクトルは0であり、基準フレームインデックスは-1であり、予測方向は双方向予測であるということを決定する。
他の例として、N3が1と等しい場合、第5の情報グループにおける動きベクトルは0であり、基準フレームインデックスは1であり、予測方向は順方向予測であるということを決定する。
他の例として、N3が1と等しい場合、第5の情報グループにおける動きベクトルは0であり、基準フレームインデックスは1であり、予測方向は双方向予測であるということを決定する。
他の例として、N3が2と等しい場合、少なくとも1つの第5の情報グループのうちの1番目の第5の情報グループにおける動きベクトルは0であり、基準フレームインデックスは-1であり、予測方向は双方向予測であるということを決定する。2番目の第5の情報グループの動きベクトルは0であり、基準フレームインデックスは1であり、予測方向は順方向予測である。
他の例として、N3が2と等しい場合、少なくとも1つの第5の情報グループのうちの1番目の第5の情報グループにおける動きベクトルは0であり、基準フレームインデックスは1であり、予測方向は双方向予測であるということを決定する。2番目の第5の情報グループにおける動きベクトルは0であり、基準フレームインデックスは1であり、予測方向は順方向予測である。
他の例として、N3が2と等しい場合、少なくとも1つの第5の情報グループのうちの1番目の第5の情報グループにおける動きベクトルは0であり、基準フレームインデックスは1であり、予測方向は双方向予測であるということを決定する。2番目の第5の情報グループにおける動きベクトルは0であり、基準フレームインデックスは1であり、予測方向は双方向予測である。
N3が3以上である場合、対応する第5の情報グループもあらかじめ設定されたやり方で決定されてもよい。ここでは詳細について記載しない。
ステップ305が実行された後、決定された少なくとも1つの第5の情報グループがマージ候補リストに挿入されてもよい。加えて、説明を容易にするために、候補情報リスト内の第1の情報グループ、第2の情報グループ及び第5の情報グループをまとめて画像ブロック情報という。ステップ305が完了した後、マージ候補リストに含まれる画像ブロック情報の数はあらかじめ設定されている目標値であることが分かる。この場合、マージ候補リストは最終的なマージ候補リストである。
マージ候補リストを構築する場合、予測情報に基づいて処理すべき画像ブロックの予測値を得ることは、予測情報及びマージ候補リストに基づいて処理すべき画像ブロックの予測値を得ることを含む。すなわち、予測情報に基づいて処理すべき画像ブロックの予測値を得ることは、予測情報、少なくとも1つの第1の情報グループ、少なくとも1つの第2の情報グループ及び少なくとも1つの第5の情報グループに基づいて、処理すべき画像ブロックの予測値を得ることを含む。予測情報及びマージ候補リストに基づいて処理すべき画像ブロックの予測値を得る具体的な実施は、従来技術における実装と同じである。ここでは詳細について記載しない。
図5は、この出願のある1つの実施形態にしたがったマージ候補リストを構築する他の概略的な図である。
501: 少なくとも1つの第3の情報グループを決定する。第3の情報グループの各々は動きベクトル及びLIC識別子を含み、第3の情報グループの各々は予測方向及び基準フレーム識別子をさらに含んでもよい。
ステップ501の特定の実施はステップ301のものと同じであり、ステップ301の説明が参照されてもよい。ここでは、詳細についての説明は繰り返さない。
502: 少なくとも1つの第3の情報グループの数があらかじめ設定されている目標値よりも小さいか否かを決定する。説明を容易にするために、以下では、あらかじめ設定されている目標値はNmaxであると仮定する。
上記のように、ステップ501を行った後、マージ候補リスト内には合計でN2個の第3の情報グループが存在する。したがって、ステップ502は、N2がNmaxよりも小さいか否かを決定することとしても記載されてもよい。
N2がNmaxと等しい場合、ステップ501にしたがって決定されたマージ候補リストは最終的なマージ候補リストである。
N2がNmax未満の場合、ステップ503が実行される。
503: 少なくとも1つの第3の情報グループに基づいて少なくとも1つの第4の情報グループを決定する。第4の情報グループの各々は動きベクトル及びLIC識別子を含み、第4の情報グループの各々は予測方向及び基準フレームインデックスをさらに含んでもよい。
少なくとも1つの第4の情報グループのうちの1つは、少なくとも1つの第3の情報グループのうちの2つの第3の情報グループに基づいて決定される。説明を容易にするために、以下では、どのように第4の情報グループを決定するかを手短に説明するために、1つの第4の情報グループを例として用いる。説明を容易にするために、第4の情報グループの例を第2の合成情報グループということがある。第2の合成情報グループを決定するのに用いられる2つの第3の情報グループを第3の選択情報グループ及び第4の選択情報グループという。
第3の選択情報及び第4の選択情報を決定するある1つの実装については、図3に示されている実施形態における第1の選択情報及び第2の選択情報を決定する実施を参照されたい。ここでは、詳細については説明を繰り返さない。
選択的に、複数の実施形態のうちのいくつかにおいて、第2の合成情報グループにおける動きベクトルは、第1の方向予測であり且つ第2の合成情報グループに対応する動きベクトルとして、第1の方向予測であり且つ第3の選択情報グループに対応する動きベクトルを用い、第2の方向の予測であり且つ第2の合成情報グループに対応する動きベクトルとして、第2の方向予測であり且つ第4の選択情報グループに対応する動きベクトルを用いることにより決定されてもよい。選択的に、複数の実施形態のうちのいくつかにおいて、第1の方向予測は順方向予測であり、第2の方向予測は逆方向予測である。選択的に、いくつかの他の実施形態において、第1の方向予測は逆方向予測であり、第2の方向予測は順方向予測である。
選択的に、いくつかの他の実施形態において、第2の合成情報グループにおける動きベクトルは、第1の方向予測であり且つ第2の合成情報グループに対応する動きベクトルとして、第2の方向予測であり且つ第3の選択情報グループに対応する動きベクトルを用い、第2の方向の予測であり且つ第2の合成情報グループに対応する動きベクトルとして、第1の方向予測であり且つ第4の選択情報グループに対応する動きベクトルを用いることにより決定されてもよい。選択的に、複数の実施形態のうちのいくつかにおいて、第1の方向予測は順方向予測であり、第2の方向予測は逆方向予測である。選択的に、いくつかの他の実施形態において、第1の方向予測は逆方向予測であり、第2の方向予測は順方向予測である。
処理すべき画像ブロックに対してLICが実行される場合、処理すべき画像ブロックのLIC識別子は第1の値に設定される。処理すべき画像ブロックに対してLICが実行されない場合、処理すべき画像ブロックのLIC識別子は第2の値に設定される。この場合、少なくとも1つの第3の情報グループに基づいて少なくとも1つの第4の情報グループを決定することは、少なくとも1つの第4の情報グループの各々の中のLIC識別子が第2の値であると決定することを含む。すなわち、少なくとも1つの第4の情報グループの各々の中のLIC識別子は第2の値である。
選択的に、複数の実施形態のうちのいくつかにおいて、第2の合成情報グループにおける予測方向は、第3の合成情報グループにおける予測方向及び第4の合成情報グループにおける予測方向に基づいて決定されてもよい。
選択的に、複数の実施形態のうちのいくつかにおいて、第3の合成情報グループにおける予測方向が第4の合成情報グループにおける予測方向と一致する場合、第2の合成情報グループにおける予測方向は、第3の合成情報グループにおける予測方向と同じである。
例えば、第3の合成情報グループにおける予測方向が順方向予測であり、第4の合成情報グループにおける予測方向が順方向予測である場合、第2の合成情報グループにおける予測方向は順方向予測である。
他の例として、第3の合成情報グループにおける予測方向が逆方向予測であり、第4の合成情報グループにおける予測方向が逆方向予測である場合、第2の合成情報グループにおける予測方向は逆方向予測である。
他の例として、第3の合成情報グループにおける予測方向が双方向予測であり、第4の合成情報グループにおける予測方向が双方向予測である場合、第2の合成情報グループにおける予測方向は双方向予測である。
選択的に、いくつかの他の実施形態において、第3の合成情報グループにおける予測方向が第4の合成情報グループにおける予測方向と異なる場合、第2の合成情報グループにおける予測方向は第3の合成情報グループにおける予測方向と同じである。
例えば、第3の合成情報グループにおける予測方向が順方向予測であり、第4の合成情報グループにおける予測方向が逆方向予測である場合、第2の合成情報グループにおける予測方向は順方向予測である。
他の例として、第3の合成情報グループにおける予測方向が逆方向予測であり、第4の合成情報グループにおける予測方向が順方向予測である場合、第2の合成情報グループにおける予測方向は逆方向予測である。
他の例として、第3の合成情報グループにおける予測方向が双方向予測であり、第4の合成情報グループにおける予測方向が順方向予測又は逆方向予測である場合、第2の合成情報グループにおける予測方向は双方向予測である。
選択的に、いくつかの他の実施形態において、第3の合成情報グループにおける予測方向が第4の合成情報グループにおける予測方向と異なる場合、第2の合成情報グループにおける予測方向は、第4の合成情報グループにおける予測方向と同じである。
例えば、第3の合成情報グループにおける予測方向が順方向予測であり、第4の合成情報グループにおける予測方向が逆方向予測である場合、第2の合成情報グループにおける予測方向は逆方向予測である。
他の例として、第3の合成情報グループにおける予測方向が逆方向予測であり、第4の合成情報グループにおける予測方向が順方向予測である場合、第2の合成情報グループにおける予測方向は順方向予測である。
他の例として、第3の合成情報グループにおける予測方向が双方向予測であり、第4の合成情報グループにおける予測方向が順方向予測である場合、第2の合成情報グループにおける予測方向は順方向予測である。
他の例として、第3の合成情報グループにおける予測方向が双方向予測であり、第4の合成情報グループにおける予測方向が逆方向の予測である場合、第2の合成情報グループにおける予測方向は逆方向予測である。
選択的に、いくつかの他の実施形態において、第3の合成情報グループにおける予測方向が第4の合成情報グループにおける予測方向と異なる場合、第2の合成情報グループにおける予測方向は双方向予測である。
例えば、第3の合成情報グループにおける予測方向が順方向予測であり、第4の合成情報グループにおける予測方向が逆方向予測である場合、第2の合成情報グループにおける予測方向は双方向予測である。
他の例として、第3の合成情報グループにおける予測方向が逆方向予測であり、第4の合成情報グループにおける予測方向が順方向予測である場合、第2の合成情報グループにおける予測方向は双方向予測である。
他の例として、第3の合成情報グループにおける予測方向が双方向予測であり、第4の合成情報グループにおける予測方向が順方向予測又は逆方向予測である場合、第2の合成情報グループにおける予測方向は双方向予測である。
他の例として、第3の合成情報グループにおける予測方向が順方向予測又は逆方向予測であり、第4の合成情報グループにおける予測方向が双方向予測である場合、第2の合成情報グループにおける予測方向は双方向予測である。
第2の合成情報グループにおける基準フレームインデックスは、第3の選択情報グループにおける基準フレームインデックス及び第4の選択情報グループにおける基準フレームインデックスに基づいて決定されてもよい。
例えば、第2の合成情報における順方向基準フレームインデックスは第3の選択情報グループにおける順方向基準フレームインデックスであり、第2の合成情報における逆方向基準フレームインデックスは第4の選択情報グループにおける逆方向基準フレームインデックスである。
他の例として、第2の合成情報における順方向基準フレームインデックスは、第4の選択情報グループにおける順方向基準フレームインデックスであり、第2の合成情報における逆方向基準フレームインデックスは第3の選択情報グループにおける逆方向基準フレームインデックスである。
少なくとも1つの第4の情報グループが決定された後、少なくとも1つの第4の情報グループがマージ候補リストに挿入されてもよい。説明を容易にするために、以下では、少なくとも1つの第4の情報グループの数はN3であると仮定する。加えて、説明を容易にするために、候補情報リスト内の第3の情報グループ及び第4の情報グループをまとめて画像ブロック情報という。ステップ503を行った後、マージ候補リストは合計でN2+N3個の画像ブロック情報を含む。
選択的に、複数の実施形態のうちのいくつかにおいて、2つの第4の情報グループに基づいて決定された1つの第4の情報グループが、候補情報リストに既に存在する画像ブロック情報と同じである場合、第4の情報グループは削除されてもよく、他の第3の情報グループに基づく新たな第4の情報グループの決定が続けられる。
504: 少なくとも1つの第3の情報グループの数及び少なくとも1つの第4の情報グループの数の和があらかじめ設定されている目標値よりも小さいか否かを決定する。すなわち、N2+N3がNmaxよりも小さいか否かが決定される。
N2+N3がNmaxと等しい場合、マージ候補リストは最終的なマージ候補リストである。
N2+N3がNmaxよりも小さい場合、ステップ505が実行される。
ステップ504及びステップ503は同時に実行されてもよいということを理解することが可能である。すなわち、少なくとも1つの第4の情報グループを決定するプロセスにおいて、決定された第4の情報グループの数及び少なくとも1つの第3の情報グループの数の和があらかじめ設定されている目標値と等しい場合、新たな第4の情報グループをさらに決定する必要はなくてもよい。決定された少なくとも1つの第4の情報グループ及び少なくとも1つの情報グループは最終的なマージ候補リストを構成する。
505: 少なくとも1つの第6の情報グループを決定する。第6の情報グループの各々はLIC識別子、予測方向、基準フレームインデックス及び動きベクトルを含んでもよく、少なくとも1つの第6の情報グループの各々の中のLIC識別子は第2の値である。
少なくとも1つの第3の情報グループの数、少なくとも1つの第4の情報グループの数及び少なくとも1つの第6の情報グループの数の和はあらかじめ設定されている目標値と等しい。したがって、少なくとも1つの第6の情報グループが決定される前に、決定される必要がある少なくとも1つの第6の情報グループの数が先ずさらに決定されてもよい。少なくとも1つの第6の情報グループの数はN3であり、N1+N2+N3はNmaxであると仮定する。
少なくとも1つの第6の情報グループを決定する実施は、図3に示されている実施形態における少なくとも1つの第5の情報グループを決定する実装と同じである。ここでは、詳細についての説明は繰り返さない。
ステップ505が実行された後、決定された少なくとも1つの第6の情報グループがマージ候補リストに挿入されてもよい。加えて、説明を容易にするために、候補情報リスト内の第3の情報グループ、第4の情報グループ及び第6の情報グループをまとめて画像ブロック情報という。ステップ505が完了した後、マージ候補リストに含まれる画像ブロック情報の数はあらかじめ設定されている目標値であることが分かる。この場合、マージ候補リストは最終的なマージ候補リストである。
マージ候補リストが構築される場合、予測情報に基づいて処理すべき画像ブロックの予測子を得ることは、予測情報及びマージ候補リストに基づいて処理すべき画像ブロックの予測値を得ることを含む。すなわち、予測情報に基づいて処理すべき画像ブロックの予測値を得ることは、予測情報、少なくとも1つの第3の情報グループ、少なくとも1つの第4の情報グループ及び少なくとも1つの第6の情報グループに基づいて処理すべき画像ブロックの予測値を得ることを含む。予測情報及びマージ候補リストに基づいて処理すべき画像ブロックの予測値を得る具体的な実施は、従来技術における実装と同じである。ここでは、詳細については説明しない。
図3に示されているマージ候補リストを構築する方法と、図5に示されているマージ候補リストを構築する方法との違いは、第1/第3の情報グループに基づいてどのように第2/第4の情報グループを決定するかにあることが分かる。図3に示されている第2の情報グループを決定するの方法は、ペアワイズ(PairWise)充填法と呼ばれ得る。図5に示されている第4の情報グループを決定する方法は組み合わせ(Combination)充填法と呼ばれ得る。
選択的に、複数の実施形態のうちのいくつかにおいて、宛先デバイスは、ビットストリーム内のコードバージョン情報に基づいて、図3に示されている方法又は図5に示されている方法を用いてマージ候補リストを構築するか否かを決定してもよい。具体的には、ビットストリームはコードバージョン情報を含んでもよい。コードバージョン情報がVVCテストモデル(Versatile video coding Test Model、VTM)3.0又はVTM3.0より後のバージョンである場合、マージ候補リストは、図3に示されている方法(具体的には、マージ候補リストに挿入する必要のある画像ブロック情報はペアワイズ充填法を使用することにより決定される)を用いることにより構築される。コードバージョン情報が他のバージョン(すなわち、VTM3.0以外のバージョン又はVTM3.0以降のバージョン)についての情報である場合、マージ候補リストは図5に示されている方法(具体的には、マージ候補リストに挿入する必要のある画像ブロック情報は、組み合わせ充填方法を用いることにより決定される)を用いることによって構築される。
図6は、この出願のある1つの実施形態にしたがったフレーム間予測方法の概略的なフローチャートである。図6に示されている方法はソース装置によって実装されてもよい。
601: 処理すべき画像ブロックの予測情報を決定する。
処理すべき画像ブロックの予測情報は処理すべき画像ブロックの予測モードを含んでもよい。図6に示されている実施形態はフレーム間予測方法の実施形態であるため、処理すべき画像ブロックの予測情報におけるステップ601で決定される処理すべき画像ブロックの予測モードはフレーム間予測であるということを理解することが可能である。
処理すべき画像ブロックの予測情報は、処理すべき画像ブロックの予測方向をさらに含んでもよい。
予測情報を決定する特定のプロセスは従来の技術における予測情報を決定するプロセスと同じである。ここでは、詳細については説明しない。
602: 処理すべき画像ブロックの予測情報に基づいてビットストリームを決定する。
処理すべき画像ブロックの予測方向が双方向予測であると予測情報が示す場合、ビットストリームはターゲット識別情報を含まず、ターゲット識別情報は処理すべき画像ブロックに対してLICを行うことを示すのに用いられる。予測情報が、処理すべき画像ブロックの予測方向が一方向予測であり、予測モードがマージモードでないことを示す場合、ビットストリームはターゲット識別情報を含む。
選択的に、複数の実施形態のうちのいくつかにおいて、予測表示は、予測モードがマージモードであることをさらに示してもよい。この場合、ソース装置は候補動き情報リストをさらに構築してもよい。候補動き情報リストを構築する具体的な実施はマージ候補リストを構築する実装と同じである。したがって、図3及び図5に示されている実施形態を参照されたい。
候補動き情報リストの構築はステップ602の前に実行されてもよい。候補動き情報リストが構築される場合、処理すべき画像ブロックの予測情報に基づいてビットストリームを決定することは、処理すべき画像ブロックの予測情報及び候補動き情報リストに基づいてビットストリームを決定することを含む。
選択的に、複数の実施形態のうちのいくつかにおいて、候補動き情報リストが構築された後、最適な画像ブロック情報が候補動き情報リストから決定されてもよく、最適な画像ブロック情報のインデックス値(以下では略して最適インデックス値という)が宛先デバイスに転送される。上述したように、宛先デバイスも同様な形でマージ候補リストを構築してもよい。マージ候補リストが構築された後、宛先デバイスは最適なインデックス値に基づいてマージ候補リストから1つの画像ブロック情報を選択してもよい。
図7は、この出願のある1つの実施形態にしたがった復号化装置の概略的な構成ブロック図である。図7に示されている復号化装置は、コンピュータデバイスであってよく、又はコンピュータデバイスの(例えば、チップ又は回路等の)構成要素であってよい。
図7に示されているように、復号化装置700は、取得ユニット701及び処理ユニット702を含んでよい。取得ユニット701は、ビットストリームを取得するように構成される。
処理ユニット702は、処理されるべき画像ブロックの予測情報を決定するためにビットストリームを解析するように構成される。処理されるべき画像ブロックの予測モードがフレーム間予測であり、処理されるべき画像ブロックの予測方向が双方向予測であることを、予測情報が示す場合、ビットストリームは、ターゲット識別情報を含まない。ここで、ターゲット識別情報は、処理されるべき画像ブロック上で局所的な輝度補償LICを実行するために使用される。
処理ユニット702は、さらに、予測情報に基づいて、処理されるべき画像ブロックの予測値を得るように構成される。
図7に示されている復号化装置は、図2、図3及び図5に示されている方法のステップを実装してもよい。取得ユニット701は、受信機によって実装されてよく、処理ユニット702は、プロセッサによって実装されてもよい。なお、取得ユニット701及び処理ユニット702の具体的な機能、効果については、図2、図3、図5に示されている方法を参照するものとする。詳細は、ここでは再度説明しない。
図8は、本発明のある1つの実施形態にしたがったコンピュータデバイスの構造ブロック図である。図8に示されているように、コンピュータデバイス800は、プロセッサ801と、メモリ802と、トランシーバ803とを含む。プロセッサ801は、コンピュータデバイスを制御し、ソフトウェアプログラムを実行し、ソフトウェアプログラムのデータを処理するなどするように構成してもよい。メモリ802は、主に、ソフトウェアプログラム及びデータを記憶するように構成される。トランシーバ803は、他のコンピュータデバイスと通信するように構成されてもよい。例えば、コンピュータデバイスが無線通信機能を有する装置(例えば、移動端末又はタブレットコンピュータ)である場合、トランシーバ803は、無線周波数回路及びアンテナを含んでよい。無線周波数回路は、主にベースバンド信号と無線周波数信号との間の変換を行い、無線周波数信号を処理するように構成されている。アンテナは、主に、電磁波の形態で無線周波数信号を送受信するように構成されている。図8に示されているプロセッサ、メモリ、トランシーバに加えて、タッチスクリーン、ディスプレイスクリーン、キーボードなどのコンピュータデバイスの入出力装置は、主に、ユーザから入力されたデータを受信し、ビデオ、データなどをユーザに出力するように構成されている。
説明を容易にするために、図8は、1つのメモリと1つのプロセッサのみを示す。実際のコンピュータデバイス製品は、1つ又は複数のプロセッサ及び1つ又は複数のメモリを含んでよい。メモリはさらに、記憶媒体、記憶装置などと称されてもよい。メモリは、プロセッサから独立して配置されてもよいし、プロセッサと一体化されてもよい。これは、この出願のこの実施形態において限定されない。
この出願のこの実施形態では、トランシーバ機能を有する回路をコンピュータデバイスのトランシーバ803とみなし、処理機能を有するプロセッサをコンピュータデバイスの処理ユニットとみなしてもよい。トランシーバはまた、トランシーバユニット、トランシーバマシン、トランシーバ装置などと称されてもよい。処理ユニットはまた、プロセッサ、処理ボード、処理モジュール、処理装置などと称されてもよい。選択的に、トランシーバ803内にあり、受信機能を実施するように構成された構成要素は、受信ユニットとみなされてよく、トランシーバ803内にあり、送信機能を実施するように構成された構成要素は、送信ユニットとみなされてもよい。換言すれば、トランシーバ803は、受信ユニット及び送信ユニットを含む。ときには、受信ユニットはまた、受信機マシン、受信機、受信機回路などと称されてもよい。ときには、送信ユニットはまた、送信機マシン、送信機、送信機回路などと称されてもよい。
プロセッサ801、メモリ802及びトランシーバ803は、制御及び/又はデータ信号を転送するために、内部接続経路を介して互いに通信する。
本発明の上記の実施形態において開示された方法は、プロセッサ801に適用されてよく、又はプロセッサ801によって実装されてもよい。プロセッサ801は、集積回路チップであってよく、信号処理能力を有する。実装プロセスにおいて、プロセッサ801内のハードウェア集積論理回路を使用することによって、又はソフトウェアの形式の命令を使用することによって、上記の方法におけるステップを実装してもよい。
この出願の実施形態におけるプロセッサは、汎用プロセッサ、デジタル信号プロセッサ(digital signal processor, DSP)、特定用途向け集積回路(application specific integrated circuit, ASIC)、フィールドプログラマブルゲートアレイ(field programmable gate array, FPGA)又は他のプログラマブル論理デバイス、個別ゲート又はトランジスタ論理デバイス、又は個別ハードウェア構成要素であってよい。プロセッサは、本発明の実施形態で開示される方法、ステップ、及び論理ブロック図を実施又は実行してもよい。汎用プロセッサは、マイクロプロセッサであってよく、任意の従来のプロセッサ等であってよい。本発明の実施形態を参照して開示される方法のステップは、ハードウェア復号化プロセッサによって直接実行されてよく、又は復号化プロセッサ内のハードウェアモジュール及びソフトウェアモジュールの組み合わせを使用して実行されてもよい。ソフトウェアモジュールは、ランダムアクセスメモリ(random access memory, RAM)、フラッシュメモリ、リードオンリーメモリ(read-only memory, ROM)、プログラマブルリードオンリーメモリ、電気的に消去可能なプログラマブルメモリ、レジスタ等のような、当該技術分野における成熟した記憶媒体内に配置してもよい。記憶媒体はメモリ内に配置され、プロセッサはメモリから命令を読み出し、プロセッサ内のハードウェアと組み合わせて上記の方法のステップを完了する。
選択的に、いくつかの実施形態では、メモリ802は、図2に示されている方法を実行するために使用される命令を格納してもよい。プロセッサ801は、他のハードウェア(例えば、トランシーバ803)と組み合わせてメモリ802に格納された命令を実行することによって、図2に示されている方法のステップを完了してもよい。特定の作業プロセス及び有益な効果については、図2に示されている実施形態の説明を参照するものとする。
選択的に、いくつかの実施形態では、メモリ802は、図3に示されている方法を実行するために使用される命令を格納してもよい。プロセッサ801は、他のハードウェア(例えば、トランシーバ803)と組み合わせてメモリ802に格納された命令を実行することによって、図3に示されている方法のステップを完了してもよい。特定の作業プロセス及び有益な効果については、図3に示されている実施形態の説明を参照するものとする。
選択的に、いくつかの実施形態では、メモリ802は、図5に示されている方法を実行するために使用される命令を格納してもよい。プロセッサ801は、他のハードウェア(例えば、トランシーバ803)と組み合わせてメモリ802に格納された命令を実行することによって、図5に示されている方法のステップを完了してもよい。特定の作業プロセス及び有益な効果については、図5に示されている実施形態の説明を参照するものとする。
この出願のある1つの実施形態は、コンピュータ読み取り可能な記憶媒体をさらに提供する。コンピュータ読み取り可能な記憶媒体は、命令を記憶する。命令が実行されると、上記の方法の実施形態におけるデコーダ側の方法が実行される。
この出願のある1つの実施形態は、命令を含むコンピュータプログラム製品をさらに提供する。命令が実行されると、上記の方法の実施形態におけるデコーダ側の方法が実行される。
図9は、この出願のある1つの実施形態にしたがった符号化装置の概略的な構成ブロック図である。図9に示されている符号化装置は、コンピュータデバイスであってよく、又はコンピュータデバイスの(例えば、チップ又は回路等の)構成要素であってよい。
図9に示されているように、符号化装置900は、処理ユニット901と送信ユニット902とを含んでよい。
処理ユニット901は、処理されるべき画像ブロックの予測情報を決定するように構成される。
処理ユニット901はさらに、処理されるべき画像ブロックの予測情報に基づいてビットストリームを決定するように構成される。
送信ユニット902は、処理ユニット901によって決定されたビットストリームを、復号化装置に送信するように構成されている。
図9に示されている符号化装置は、図6に示されている方法のステップを実装してもよい。また、図9に示されている符号化装置は、図3及び/又は図5に示されている方法に基づいて、候補動き情報リストを構築するステップを実装してもよい。
処理ユニット901は、プロセッサによって実装されてよく、送信ユニット902は、送信機によって実装されてもよい。処理ユニット901及び送信ユニット902の具体的な機能及び効果については、図6、図3及び図5に示されている方法を参照するものとする。詳細は、ここでは再度説明しない。
図10は、本発明のある1つの実施形態にしたがったコンピュータデバイスの構造ブロック図である。図10に示されているように、コンピュータデバイス1000は、プロセッサ1001、メモリ1002及びトランシーバ1003を含む。プロセッサ1001は、コンピュータデバイスを制御し、ソフトウェアプログラムを実行し、ソフトウェアプログラムのデータを処理するなどするように構成してもよい。メモリ1002は主に、ソフトウェアプログラム及びデータを記憶するように構成される。トランシーバ1003は、他のコンピュータデバイスと通信するように構成されてもよい。例えば、コンピュータデバイスが無線通信機能を有する装置(例えば、移動端末又はタブレットコンピュータ)である場合、トランシーバ1003は、無線周波数回路及びアンテナを含んでよい。無線周波数回路は主に、ベースバンド信号と無線周波数信号との変換を行い、無線周波数信号を処理するように構成されている。アンテナは主に、電磁波の形態で無線周波数信号を送受信するように構成されている。図10に示されているプロセッサ、メモリ及びトランシーバに加えて、タッチスクリーン、ディスプレイスクリーン及びキーボードのようなコンピュータデバイスの入出力装置は、主に、ユーザから入力されたデータを受け取り、ビデオ、データなどをユーザに出力するように構成される。
説明を容易にするために、図10は、1つのメモリと1つのプロセッサのみを示す。実際のコンピュータデバイス製品は、1つ又は複数のプロセッサ及び1つ又は複数のメモリを含んでよい。メモリは、記憶媒体、記憶装置などとも称されてもよい。メモリは、プロセッサから独立して配置されてよく、又はプロセッサと一体化されてもよい。これは、この出願のこの実施態様において限定されない。
この出願のこの実施形態では、トランシーバ機能を有する回路をコンピュータデバイスのトランシーバ1003とみなしてよく、処理機能を有するプロセッサを端末の処理ユニットとみなしてもよい。トランシーバはまた、トランシーバユニット、トランシーバマシン、トランシーバ装置などと称されてもよい。処理ユニットはまた、プロセッサ、処理ボード、処理モジュール、処理装置などと称されてもよい。任意に、トランシーバ1003内にあり、受信機能を実施するように構成された構成要素は、受信ユニットとみなされてよく、トランシーバ1003内にあり、送信機能を実施するように構成された構成要素は、送信ユニットとみなされてもよい。換言すれば、トランシーバ1003は、受信部と送信部とを含む。ときには、受信ユニットはまた、受信機マシン、受信機、受信機回路などと称されてもよい。ときには、送信ユニットはまた、送信機マシン、送信機、送信機回路などと称されてもよい。
プロセッサ1001、メモリ1002及びトランシーバ1003は、制御及び/又はデータ信号を転送するために、内部接続経路を介して互いに通信する。
本発明の上記の実施形態で開示された方法は、プロセッサ1001に適用されてよく、又はプロセッサ1001によって実装されてもよい。プロセッサ1001は、集積回路チップであってよく、信号処理能力を有する。実装プロセスにおいて、上記の方法におけるステップは、プロセッサ1001内のハードウェア集積論理回路を使用することによって、又はソフトウェアの形式で命令を使用することによって、実装されてもよい。
この出願の実施形態におけるプロセッサは、汎用プロセッサ、デジタル信号プロセッサ(digital signal processor, DSP)、特定用途向け集積回路(application specific integrated circuit, ASIC)、フィールドプログラマブルゲートアレイ(field programmable gate array, FPGA)又は他のプログラマブル論理デバイス、個別ゲート又はトランジスタ論理デバイス、又は個別ハードウェア構成要素であってよい。プロセッサは、本発明の実施形態で開示される方法、ステップ、及び論理ブロック図を実施又は実行してもよい。汎用プロセッサは、マイクロプロセッサであってよく、任意の従来のプロセッサ等であってよい。本発明の実施形態を参照して開示される方法のステップは、ハードウェア復号化プロセッサによって直接実行されてよく、又は復号化プロセッサ内のハードウェアモジュール及びソフトウェアモジュールの組み合わせを使用して実行されてもよい。ソフトウェアモジュールは、ランダムアクセスメモリ(random access memory, RAM)、フラッシュメモリ、リードオンリーメモリ(read-only memory, ROM)、プログラマブルリードオンリーメモリ、電気的に消去可能なプログラマブルメモリ、レジスタ等のような、当該技術分野における成熟した記憶媒体内に配置してもよい。記憶媒体はメモリ内に配置され、プロセッサはメモリから命令を読み出し、プロセッサ内のハードウェアと組み合わせて上記の方法のステップを完了する。
選択的に、いくつかの実施形態では、メモリ1002は、図6に示されている方法を実行するために使用される命令を記憶してもよい。プロセッサ1001は、他のハードウェア(例えば、トランシーバ1003)と組み合わせてメモリ1002に記憶された命令を実行することによって、図6に示されている方法のステップを完了してもよい。特定の作業プロセス及び有益な効果については、図6に示されている実施形態の説明を参照するものとする。
選択的に、いくつかの実施形態では、メモリ1002は、図3に示されている方法を実行するために使用される命令を記憶してもよい。プロセッサ1001は、他のハードウェア(例えば、トランシーバ1003)と組み合わせてメモリ1002に記憶された命令を実行することによって、図3に示されている方法のステップを完了してもよい。特定の作業プロセス及び有益な効果については、図3に示されている実施形態の説明を参照するものとする。理解できることは、図3に示されている方法は、ここでは、図3に示されている方法に基づいて候補動き情報リストを構築するために実行されることである。
選択的に、いくつかの実施形態では、メモリ1002は、図5に示されている方法を実行するために使用される命令を記憶してもよい。プロセッサ1001は、他のハードウェア(例えば、トランシーバ1003)と組み合わせてメモリ1002に記憶された命令を実行することによって、図5に示されている方法のステップを完了してもよい。特定の作業プロセス及び有益な効果については、図5に示されている実施形態の説明を参照するものとする。理解できることは、図5に示されている方法は、ここでは、図5に示されている方法に基づいて候補動き情報リストを構築するために実行されることである。
この出願のある1つの実施形態は、コンピュータ読み取り可能な記憶媒体をさらに提供する。コンピュータ読み取り可能な記憶媒体は命令を記憶する。命令が実行されると、上記の方法の実施形態におけるエンコーダ側の方法が実行される。
この出願のある1つの実施形態は、命令を含むコンピュータプログラム製品をさらに提供する。命令が実行されると、上記の方法の実施形態におけるエンコーダ側の方法が実行される。
例えば、この出願の実施形態は、図11から図13に示されているビデオコーディングシステムに適用できることが理解されるものとする。
図11は、この出願のある1つの実施形態にしたがった例示的なビデオコーディングシステムのブロック図である。本明細書で使用される"ビデオコーデック"という用語は、一般に、ビデオエンコーダ及びビデオデコーダを指す。この出願では、"ビデオコーディング"又は"コーディング"という用語は通常、ビデオ符号化又はビデオ復号化を指してもよい。ビデオコーディングシステムにおけるビデオエンコーダ100及びビデオデコーダ200は、この出願に提供される複数の新しいフレーム間予測モードのうちの任意の1つに述べられる種々の方法例に従って、現在のコーディングされた画像ブロックの動き情報、例えば、動きベクトル、又は現在のコーディングされた画像ブロックのサブブロックを予測するように構成される。その結果、予測された動きベクトルは、動き推定方法を用いて得られた動きベクトルに最大限近くなる。このように、動きベクトル差は符号化の間に伝送される必要がなく、それによってコーディング性能がさらに改善される。
図11に示されているように、ビデオコーディングシステムは、ソース装置10と宛先デバイス20とを含む。ソース装置10は、符号化されたビデオデータを生成する。従って、ソース装置10は、ビデオ符号化装置と称されてもよい。宛先デバイス20は、ソース装置10によって生成された符号化されたビデオデータを復号化してもよい。従って、宛先デバイス20は、ビデオ復号化装置と称されてもよい。様々な実施方法において、ソース装置10、宛先デバイス20、又はソース装置10と宛先デバイス20との両方は、1つ又は複数のプロセッサと、1つ又は複数のプロセッサに結合されたメモリとを含んでよい。メモリは、これらに限定されないが、RAM、ROM、EEPROM、フラッシュメモリ、又は本明細書に記載されるように、コンピュータによってアクセス可能な命令又はデータ構造の形式で所望のプログラムコードを記憶するために使用できる他の任意の媒体を含んでよい。
ソース装置10と宛先デバイス20とは、デスクトップコンピュータ、モバイルコンピューティング装置、ノートブック(例えば、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、"スマート"電話機のような電話ハンドセット、テレビジョンセット、カメラ、表示装置、デジタルメディアプレーヤ、ビデオゲーム機、車載コンピュータ、及び同様の装置を含む種々の装置を含んでよい。
宛先デバイス20は、符号化されたビデオデータを、ソース装置10からリンク30を介して受信してもよい。リンク30は、符号化されたビデオデータをソース装置10から宛先デバイス20に転送することができる1つ又は複数の媒体又は装置を含んでよい。一例では、リンク30は、符号化されたビデオデータをソース装置10が宛先デバイス20にリアルタイムで直接送信することを可能にする1つ又は複数の通信媒体を含んでよい。この例では、ソース装置10は、符号化されたビデオデータを通信標準(例えば、無線通信プロトコル)に従って変調してよく、変調されたビデオデータを宛先デバイス20に送信してもよい。1つ又は複数の通信媒体は、無線通信媒体及び/又は有線通信媒体、例えば、無線周波数(radio frequency、RF)スペクトル、又は1つ又は複数の物理的伝送線を含んでよい。1つ又は複数の通信媒体は、パケットベースのネットワークの一部を構成してよく、パケットベースのネットワークは、例えば、ローカルエリアネットワーク、ワイドエリアネットワーク、又はグローバルネットワーク(例えば、インターネット)である。1つ又は複数の通信媒体は、ルータ、スイッチ、基地局、又はソース装置10から宛先デバイス20への通信を容易にする他の装置を含んでよい。
他の例では、符号化されたデータは、出力インターフェース140を介して記憶装置40に出力されてもよい。同様に、符号化されたデータは、記憶装置40から入力インターフェース240を介してアクセスしてもよい。記憶装置40は、複数の分散されたデータ記憶媒体又はローカルにアクセスされたデータ記憶媒体、例えば、ハードドライブ、ブルーレイ、デジタル多用途ディスク(digital versatile disc、DVD)、コンパクトディスク読取り専用メモリ(compact disc read-only memory、CD-ROM)、フラッシュメモリ、揮発性又は不揮発性メモリ、又は符号化されたビデオデータを記憶するように構成された任意の他の適切なデジタル記憶媒体のうちの任意の1つを含んでよい。
他の例では、記憶装置40は、ソース装置10によって生成された符号化されたビデオの維持ができるファイルサーバ又は別の中間記憶装置に対応してもよい。宛先デバイス20は、ストリーミング送信又はダウンロードを介して記憶装置40から記憶されたビデオデータにアクセスしてもよい。ファイルサーバは、符号化されたビデオデータを記憶し、符号化されたビデオデータを宛先デバイス20に送信することができる任意のタイプのサーバであってよい。例えば、ファイルサーバは、ネットワークサーバ(例えば、ウェブサイトで使用される)、ファイル転送プロトコル(file transfer protocol、FTP)サーバ、ネットワーク接続記憶(network attached storage、NAS)装置、又はローカル磁気ディスクドライブを含む。宛先デバイス20は、任意の標準的なデータ接続(インターネット接続を含む)を介して符号化されたビデオデータにアクセスしてもよい。標準的なデータ接続は、無線チャネル(例えば、ワイヤレス・フィデリティ(wireless-fidelity、Wi-Fi)接続)、有線接続(例えば、デジタル加入者回線(digital subscriber line、DSL)又はケーブルモデム)、又はファイルサーバに記憶された符号化されたビデオデータにアクセスするのに適しているそれらの組み合わせを含んでよい。記憶装置40からの符号化されたビデオデータの送信は、ストリーミング送信、ダウンロード送信、又はそれらの組み合わせであってよい。
複数のマルチメディアの用途、例えば、無線テレビ放送、ケーブルテレビ送信、衛星テレビ送信、ストリーミングビデオ送信(例えばインターネットで)、データ記憶媒体に記憶されたビデオデータの符号化、データ記憶媒体に記憶されたビデオデータの復号化、又は他の用途をサポートするために、この出願における動きベクトル予測技術はビデオコーディングに使用されてもよい。いくつかの例では、ビデオコーディングシステムは、ストリーミングビデオ送信、ビデオ再生、ビデオ放送、及び/又はビデオ電話などの用途をサポートするために、一方向又は双方向ビデオ送信をサポートするように構成されてもよい。
図11に記載されたビデオコーディングシステムは、単なる一例に過ぎず、この出願の技術は、必ずしも符号化装置と復号化装置との間のデータ通信を含まないビデオコーディング設定(例えば、ビデオ符号化又はビデオ復号化)に適用可能である。別の例では、データはローカルメモリから検索され、ストリーミング方式でネットワーク上で送信されるなどする。ビデオ符号化装置は、データを符号化し、そのデータをメモリに記憶してよく、及び/又はビデオ復号化装置は、メモリからデータを検索し、そのデータを復号化してもよい。多くの例においては、データを符号化してメモリにデータを格納することのみ行い、及び/又はメモリからデータを検索してデータを復号化することのみ行い、かつ、互いに通信しない装置が、符号化及び復号化を行う。
図11の例では、ソース装置10は、ビデオソース120と、ビデオエンコーダ100と、出力インターフェース140とを含む。いくつかの例では、出力インターフェース140は、変調器/復調器(モデム)、及び/又は送信機を含んでよい。ビデオソース120は、ビデオキャプチャ装置(例えば、カメラ)、前にキャプチャされたビデオデータを含むビデオアーカイブ、ビデオコンテンツプロバイダーからビデオデータを受信するビデオフィードインインターフェース、及び/又はビデオデータを生成するコンピュータグラフィックスシステム、又はここに述べたビデオデータソースの組み合わせを、含んでよい。
ビデオエンコーダ100は、ビデオソース120からのビデオデータを符号化してもよい。いくつかの例では、ソース装置10は、出力インターフェース140を介して、符号化されたビデオデータを宛先デバイス20に直接送信する。別の例では、符号化されたビデオデータは、その代わりに、記憶装置40に記憶されてもよい。これにより、宛先デバイス20は後に、復号化及び/又は再生するために、符号化されたビデオデータにアクセスする。
図11の例では、宛先デバイス20は、入力インターフェース240と、ビデオデコーダ200と、表示装置220とを含む。いくつかの例では、入力インターフェース240は、受信機及び/又はモデムを含む。入力インターフェース240は符号化されたビデオデータを、リンク30を介して及び/又は記憶装置40から、受信してもよい。表示装置220は、宛先デバイス20と一体化されてよく、又は宛先デバイス20の外側に配置されてもよい。通常、表示装置220は、復号化されたビデオデータを表示する。表示装置220は、複数のタイプの表示装置、例えば、液晶ディスプレイ(liquid crystal display, LCD)、プラズマディスプレイ、有機発光ダイオード(organic light-emitting diode, OLED)ディスプレイ、又は他のタイプの表示装置を含んでよい。
図11には示されていないが、いくつかの態様では、ビデオエンコーダ100及びビデオデコーダ200は、オーディオエンコーダ及びオーディオデコーダとそれぞれ一体化されてもよい。適切なマルチプレクサ・デマルチプレクサユニット又は他のハードウェア及びソフトウェアを含んで、結合されたデータストリーム又は別個のデータストリーム内のオーディオ及びビデオを符号化してもよい。いくつかの例において、もし適用可能であれば、デマルチプレクサ(MUX-DEMUX)ユニットは、国際電気通信連合(international telecommunication union、ITU) H.223マルチプレクサプロトコル、又はユーザデータグラムプロトコル(user datagram protocol、UDP)のような別のプロトコルに準拠してもよい。
例えば、ビデオエンコーダ100及びビデオデコーダ200は、それぞれ、1つ又は複数のマイクロプロセッサ、デジタル信号処理(digital signal processor、DSP)、特定用途向け集積回路(application-specific integrated circuit、ASIC)、及びフィールドプログラマブルゲートアレイ(field programmable gate array、FPGA)、離散論理、ハードウェアなどの複数の回路、又はそれらの任意の組み合わせのうちの任意の1つとして実装してもよい。この出願が部分的にソフトウェアを介して実装される場合、装置は、適切な不揮発性のコンピュータ読み取り可能な記憶媒体に、ソフトウェアに使用される命令を記憶してよく、この出願の技術を実施するために、ハードウェアで命令を実行するために1つ又は複数のプロセッサを使用してもよい。上記の内容(ハードウェア、ソフトウェア、ハードウェアとソフトウェアの組み合わせなどを含む)の任意の1つが、1つ又は複数のプロセッサとみなされてもよい。ビデオエンコーダ100及びビデオデコーダ200は、それぞれ、1つ又は複数のエンコーダ又はデコーダに含まれてよく、エンコーダ又はデコーダは、対応する装置内の組み合わされたエンコーダ/デコーダ(コーデック)の一部として統合されてもよい。
この出願では、ビデオエンコーダ100は、通常、例えばビデオデコーダ200に何らかの情報を"信号で通知"又は"送信"する別の装置と称されてもよい。用語"信号で通知"又は"送信"は、圧縮されたビデオデータを復号化するのに使用される、シンタックス要素及び/又は他のデータの転送をおおまかに意味してもよい。送信は、リアルタイムで、又はほとんどリアルタイムで発生してもよい。これに代えて、通信は、一定期間後に生じてよい。例えば、符号化されたビットストリーム中のシンタックス要素が、符号化の間にコンピュータ読み取り可能な記憶媒体中に記憶されたときに、通信が生じてよく、復号化装置は、そのシンタックス要素が媒体中に記憶された後の任意の時点で、そのシンタックス要素を検索してもよい。
JCT-VCは、H.265高効率ビデオコーディング(high efficiency video coding, HEVC)標準を開発している。HEVC標準化はビデオ復号化装置の進化モデルに基づいていて、このモデルはHEVCテストモデル(HEVC model, HM)と呼ばれる。最新のH.265標準文書が、http://www.itu.int/rec/T-REC-H.265で入手可能である。標準文書の最新版はH.265(12/16)であり、標準文書は参照によりその全体が本明細書に組み込まれる。HMでは、ビデオ復号化装置は、ITU-T H.264/AVCの既存のアルゴリズムに関連するいくつかの付加的な能力を有すると仮定する。例えば、H.264は9つのフレーム内予測コーディングモードを提供するが、HMは最大35のフレーム内予測コーディングモードが提供できる。
JVETは、H.266標準の開発に取り組んでいる。H.266標準化プロセスは、ビデオ復号化装置の進化モデルに基づいていて、このモデルはH.266テストモデルと呼ばれる。H.266アルゴリズムの説明はhttp://phenix.int-evry.fr/jvetで入手可能であり、最新のアルゴリズムの説明はJVET-F1001-v2に含まれている。アルゴリズムの説明の文書は、その全体が参照により本明細書に組み込まれる。さらに、JEMテストモデルのための参照ソフトウエアは、https://jvet.hhi.fraunhofer.de/svn/svn_HMJEMSoftware/で入手可能であり、その全体が参照により本明細書に組み込まれる。
一般に、HM作業モデルの説明では、ビデオフレーム又は画像は、ツリーブロックのシーケンス又は最大コーディングユニット(largest coding unit、LCU)に分割されてよく、ここで、ツリーブロック又は最大コーディングユニットは、ルマサンプル及びクロマサンプルの両方を含み、LCUは、コーディングツリーユニット(coding tree unit、CTU)とも呼ばれる。ツリーブロックは、H.264標準のマクロブロックと同様の機能を持つ。スライスは、復号化の順序でいくつかの連続するツリーブロックを含む。ビデオフレーム又は画像は、1つ又は複数のスライスに分割されてもよい。各ツリーブロックは、四分木分割を使用することによってコーディングユニットに分割してもよい。例えば、四分木のルートノードとして機能するツリーブロックは、4つの子ノードに分割されてよく、各子ノードは、親ノードとなり、他の4つの子ノードに分割されてもよい。四分木のリーフノードとして機能する最後の分割不可能な子ノードは、復号化ノード、例えば、復号化されたビデオブロックを含む。復号化されたビットストリームに関連する構文データでは、ツリーブロックが分割され得る最大回数と、復号化ノードの最小サイズとが定義されてもよい。
コーディングユニットは、復号化ノードと、予測ブロック(prediction unit, PU)と、復号化ノードに関連する変換ユニット(transform unit, TU)とを含む。CUのサイズは復号化ノードのサイズに対応し、CUは正方形である必要がある。CUのサイズは、8×8画素から最大64×64画素までの範囲であってよく、又は一層大きなツリーブロックサイズであってよい。各CUは、1つ又は複数のPU及び1つ又は複数のTUを含んでよい。例えば、CUに関連する構文データは、1つ又は複数のPUへのCUの分割を記述してもよい。分割パターンは、CUがスキップモード、直接モード、フレーム内予測モード、及びフレーム間予測モードで符号化される場合に変化してもよい。分割によって得られるPUは、正方形であってよい。例えば、CUに関連する構文データは、四分木に基づいた1つ又は複数のTUへのCUの分割についても記述してもよい。TUは、正方形又は非正方形の形状であってよい。
HEVC標準はTUベースの変換を可能にし、異なるCUは異なるTUを含んでよい。TUのサイズは、通常、区分されたLCUに対して定義された所与のCU内のPUのサイズに基づいて設定される。しかし、ある場合は必ずしもこのようではないことがある。TUの大きさは通常、PUと同じかそれ以下である。いくつかの実現可能な実装では、"残差四分木"(residual quadtree, RQT)と呼ばれる四分木構造が、CUに対応する残差サンプルをより小さなユニットに分割するために使用されてもよい。RQTのリーフノードは、TUと称されてもよい。TUに関連する画素差は、変換係数を生成するために変換されてよく、変換係数は量子化されてもよい。
一般に、PUは、予測プロセスに関連するデータを含む。例えば、PUがイントラモードで符号化される場合、PUは、PUのフレーム内予測モードを記述するデータを含んでよい。別の実現可能な実施では、PUがインターモードで符号化される場合、PUは、PUのための動きベクトルを定義するデータを含んでよい。例えば、PUのための動きベクトルを定義するデータは、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度(例えば、1/4画素精度又は1/8画素精度)、動きベクトルが指し示す基準画像、及び/又は動きベクトルの基準画像リスト(例えば、リスト0、リスト1、又はリストC)を記述してもよい。
一般的に、変換及び量子化プロセスがTUに使用される。1つ又は複数のPUを含む所与のCUは、さらに、1つ又は複数のTUを含んでよい。予測の後、ビデオエンコーダ100は、PUに対応する残留値を計算してもよい。残留値には、画素差が含まれる。画素差は、変換係数に変換されてよく、変換係数は、TUを使用して量子化及び走査され、エントロピー復号化のためのシリアル化された変換係数を生成する。この出願では、用語"ビデオブロック"は、通常、CUの復号化ノードを示すために使用される。この出願で、いくつかの特定の用途では、用語"ビデオブロック"は、復号化ノード、PU、及びTUを含むツリーブロックを示すためにも使用されてもよい。例えば、ツリーブロックはLCU又はCUである。
ビデオシーケンスには通常、一連のビデオフレーム又は画像が含まれている。例えば、画像のグループ(group of picture, GOP)には、一連のビデオ画像、又は1つ又は複数のビデオ画像が含まれる。GOPは、GOPのヘッダ情報、1つ又は複数の画像のヘッダ情報、又は他の場所に、構文データを含んでよい。構文データは、GOPに含まれる画像の量を記述する。画像の各スライスは、対応する画像のコーディングモードを記述するスライス構文データを含んでよい。ビデオエンコーダ100は通常、ビデオデータを符号化するために、いくつかのビデオスライス内のビデオブロックに対して演算を実行する。ビデオブロックは、CU内の復号化ノードに対応してもよい。ビデオブロックのサイズは、固定又は変更可能であってよく、指定された復号化標準によって変化してもよい。
実現可能な実施では、HMは様々なPUサイズの予測をサポートする。所与のCUのサイズが2N×2Nであると仮定すると、2N×2N又はN×NのPUサイズに対して、フレーム内予測、2N×2N、2N×N、N×2N、又はN×Nの対称PUサイズに対して、フレーム間予測を、HMはサポートする。さらに、2N×nU、2N×nD、nL×2N、及びnR×2NのPUサイズに対して、フレーム間予測の非対称分割をHMはサポートする。非対称分割では、CUは一方向に分割されず、別の方向に2つの部分に分割されるのであり、一方の部分はCUの25%を占め、他方の部分はCUの75%を占める。CUの25%を占める部分は、"n"の後に"U(Up)"、"D(Down)"、"L(Left)"又は"R(Right)"を含む指標で示されている。従って例えば、"2N×nU"のモードで分割されたCUは、2N×0.5NのPUを上に、2N×1.5NのPUを下に有する、水平分割された2N×2NのCUを指す。
この出願において、"N×N"及び"Nを乗じたN"は、例えば16×16画素又は16を乗じた16画素のように、垂直方向の次元及び水平方向の次元におけるビデオブロックの画素サイズを示すために、互換的に使用されてもよい。通常、16×16ブロックは、垂直方向(y=16)に16画素、水平方向(x=16)に16画素を有する。同様に、N×Nブロックは、通常、垂直方向にN画素、水平方向にN画素を有する。ここで、Nは負でない整数である。ブロックの中の画素は、行及び列の中に配列されてもよい。また、ブロックにおいては、水平方向の画素数と垂直方向の画素数が必ずしも同一でなくてよい。例えば、ブロックは、N×M画素を含んでよく、ここで、Mは、必ずしもNに等しくない。
CU内のPUのフレーム内予測又はフレーム間予測復号化の後、ビデオエンコーダ100は、CU内のTUの残差データを計算してもよい。PUは、空間ドメイン(画素ドメインとも呼ばれる)内の画素データを含んでよい。残差ビデオデータに変換(例えば、離散コサイン変換(discrete cosine transform, DCT)、整数変換、ウェーブレット変換、又は概念的に類似した変換)を施した後の変換ドメインに、TUは係数を含んでよい。残差データは、符号化されていない画像の画素と、PUに対応する予測値との間の画素差に対応してもよい。ビデオエンコーダ100は、CUの残差データを含むTUを生成し、TUを変換してCUの変換係数を生成してもよい。
変換係数を生成するために任意の変換を実行した後、ビデオエンコーダ100は、変換係数を量子化してもよい。量子化とは、例えば、係数を表すために使用されるデータの量を減らし、一層の圧縮を実行するために、係数を量子化するプロセスを指す。量子化プロセスは、係数のいくつか又は全てに関連するビット深さを低減してもよい。例えば、量子化の間に、nビット値は、丸めを通してmビット値に低減されてもよい。ここで、nは、mより大きい。
JEMモデルは、さらにビデオ画像コーディング構造を改善する。具体的には、"四分木プラス二分木" (QTBT)構造と呼ばれるブロックコーディング構造が導入される。HEVCでCU、PU及びTUなどの概念を使用せずに、QTBT構造は、より柔軟なCU分割形状をサポートする。CUは、正方形又は長方形であってよい。最初にCTU上で四分木分割を実行し、次に二分木分割を四分木のリーフノード上で実行する。さらに、二分木分割モードが、対称水平分割と対称垂直分割の、2つある。二分木のリーフノードをCUと呼ぶ。JEMモデルのCUは、予測と変換を行う間に、さらに分割することはできない。言い換えれば、JEMモデルのCU、PU及びTUは同じブロックサイズを持つ。既存のJEMモデルでは、最大CTUサイズは256×256ルマ画素である。
いくつかの実現可能な実施では、ビデオエンコーダ100は、エントロピー符号化可能なシリアライズされたベクトルを生成するために、量子化された変換係数を所定の走査順序で走査してもよい。他の実現可能な実施では、ビデオエンコーダ100は、適応走査を実行してもよい。量子化された変換係数を走査して一次元ベクトルを形成した後、ビデオエンコーダ100は、コンテキストベースの適応可変長コーディング(context-based adaptive variable-length code、CAVLC)、コンテキストベースの適応二進算術演算コーディング(context-based adaptive binary arithmetic coding、CABAC)、シンタックスベースの適応二進算術演算コーディング(syntax-based adaptive binary arithmetic coding、SBAC)、確率間隔分割エントロピー(probability interval partitioning entropy、PIPE)復号化、又は他のエントロピー復号化方法を介して、一次元ベクトルをエントロピー復号化してもよい。ビデオデコーダ200がビデオデータを復号化できるようにするために、ビデオエンコーダ100はさらに、符号化されたビデオデータに関連付けられたシンタックス要素上でエントロピーコーディングを実行してもよい。
CABACを実行するために、ビデオエンコーダ100は、コンテキストモデル内のコンテキストを、送信されるべきシンボルに割り当ててよい。コンテキストは、シンボルの隣接する値が非ゼロであるかどうかに関係してもよい。CAVLCを実行するために、ビデオエンコーダ100は、送信されるべきシンボルの可変長コードを選択してもよい。可変長コーディング(variable-length code、VLC)における符号語は、より短い符号語がより可能性の高いシンボルに対応し、より長い符号語がより可能性の低いシンボルに対応するように構築されてもよい。このようにして、全ての送信されるべきシンボルに対して等しい長さの符号語を使用するのと比較して、VLCを使用することはビットレートを低減することができる。CABACの確率は、シンボルに割り当てられたコンテキストに基づいて決定されてもよい。
この出願の実施形態では、ビデオエンコーダは、画像間の時間的な冗長性を低減するためにフレーム間予測を実行してもよい。上記のように、CUは、異なるビデオ圧縮コーディング標準に応じて、1つ又は複数の予測ユニットPUを含んでよい。言い換えれば、複数のPUが1つのCUに属している場合もあれば、PUとCUとが同じサイズを有する場合もある。本明細書では、CUとPUとが同じサイズの場合、CUは分割されないか、CUは1つのPUに分割され、PUは一様に記述のために使用される。ビデオエンコーダがフレーム間予測を実行するとき、ビデオエンコーダは、PUのための動き情報を、ビデオデコーダに信号で通知してもよい。例えば、PUのための動き情報は、基準画像インデックス、動きベクトル、及び予測方向識別子を含んでよい。動きベクトルは、PUの画像ブロック(ビデオブロック、画素ブロック、画素セットなどとも呼ばれる)とPUの基準ブロックとの間の変位を示してもよい。PUの基準ブロックは、PUの画像ブロックに類似した基準画像の一部であってよい。基準ブロックは、基準画像インデックスと予測方向識別子とによって示される基準画像内に配置されてもよい。
PUの動き情報を表すために必要なコーディングされたビットの量を減らすために、ビデオエンコーダは、マージ予測モード又は高度な動きベクトル予測モードに従って、各々のPUのための候補予測動きベクトル(Motion Vector, MV)リストを生成してもよい。PUのための候補予測動きベクトルリストにおける各候補予測動きベクトルは、動き情報を示してもよい。候補予測動きベクトルリスト内のいくつかの候補予測動きベクトルによって示される動き情報は、他のPUに対する動き情報に基づいてよい。特定の空間候補予測動きベクトル位置又は特定の時間候補予測動きベクトル位置のうちの1つの動き情報を、候補予測動きベクトルが示す場合、候補予測動きベクトルは、この出願では"元の"候補予測動きベクトルと称されてもよい。例えば、本明細書でマージ予測モードとも呼ばれるマージモードでは、5つの元の空間候補予測動きベクトル位置と1つの元の時間候補予測動きベクトル位置とがあってよい。いくつかの例では、異なる元の候補予測動きベクトルからのいくつかの動きベクトルを組み合わせること、元の候補予測動きベクトルを修正すること、又は候補予測動きベクトルとしてゼロの動きベクトルのみを挿入することによって、ビデオエンコーダは、追加の候補予測動きベクトルを生成してもよい。追加の候補予測動きベクトルは、元の候補予測動きベクトルとみなされないのであり、この出願では人工的に生成された候補予測動きベクトルと称されてもよい。
この出願の技術は、通常、ビデオエンコーダ上の候補予測動きベクトルリストを生成する技術と、ビデオデコーダ上の同じ候補予測動きベクトルリストを生成する技術とを含む。ビデオエンコーダ及びビデオデコーダは、候補予測動きベクトルリストを構築するために同じ技術を実施することによって、同じ候補予測動きベクトルリストを生成してもよい。例えば、ビデオエンコーダ及びビデオデコーダは、同数の候補予測動きベクトル(例えば、5つの候補予測動きベクトル)を有するリストを構築してもよい。ビデオエンコーダ及びビデオデコーダは、まず、空間候補予測動きベクトル(例えば、同じ画像内の隣接するブロック)を考慮し、次に、時間候補予測動きベクトル(例えば、異なる画像内の候補予測動きベクトル)を考慮してよく、最後に、必要な量の候補予測動きベクトルがリストに追加されるまで、人工的に生成された候補予測動きベクトルを考慮してもよい。この出願の技術によれば、候補予測動きベクトルリストの構築中に、候補予測動きベクトルリストから反復候補予測動きベクトルを除去するために、いくつかのタイプの候補予測動きベクトルに対して剪定操作を実行してよく、デコーダの複雑さを低減するために、他のタイプの候補予測動きベクトルに対しては実行しなくてよい。例えば、空間候補予測動きベクトルの集合と、時間候補予測動きベクトルとに対して、剪定操作を実行して、反復動き情報を有する候補予測動きベクトルを、候補予測動きベクトルリストから除去してもよい。しかしながら、人工的に生成された候補予測動きベクトルは、人工的に生成された候補予測動きベクトルに対して剪定操作が実行されない場合に、候補予測動きベクトルリストに追加されてもよい。
CUのPUに対する候補予測動きベクトルリストを生成した後、ビデオエンコーダは候補予測動きベクトルリストから候補予測動きベクトルを選択し、ビットストリーム中の候補予測動きベクトルインデックスを出力してもよい。選択された候補予測動きベクトルは、復号化されつつあるターゲットPUの予測値に最も近く一致する動きベクトルを生成する候補予測動きベクトルであってよい。候補予測動きベクトルインデックスは、候補予測動きベクトルリスト内の選択された候補予測動きベクトルの位置を示してもよい。ビデオエンコーダは、さらに、PUの動き情報によって示される基準ブロックに基づいて、PUの予測画像ブロックを生成してもよい。PUの動き情報は、選択された候補予測動きベクトルによって示される動き情報に基づいて決定されてもよい。例えば、マージモードでは、PUの動き情報は、選択された候補予測動きベクトルによって示される動き情報と同じであってよい。AMVPモードでは、PUの動き情報は、PUの動きベクトル差と、選択された候補予測動きベクトルによって示される動き情報とに基づいて決定されてもよい。ビデオエンコーダは、CUのPUに対する予測画像ブロックと、CUに対する元の画像ブロックとに基づいて、CUに対する1つ又は複数の残差画像ブロックを生成してもよい。次に、ビデオエンコーダは、1つ又は複数の残差画像ブロックを符号化し、ビットストリーム内の1つ又は複数の残差画像ブロックを出力してもよい。
ビットストリームは、PUのための候補予測動きベクトルリスト内の選択された候補予測動きベクトルを識別するデータを含んでよい。ビデオデコーダは、PUのための候補予測動きベクトルリスト内の選択された候補予測動きベクトルによって示される動き情報に基づいて、PUの動き情報を決定してもよい。ビデオデコーダは、PUの動き情報に基づいて、PUのための1つ又は複数の基準ブロックを識別してもよい。PUに対する1つ又は複数の基準ブロックを識別した後、ビデオデコーダは、PUに対する1つ又は複数の基準ブロックに基づいて、PUに対する予測画像ブロックを生成してもよい。ビデオデコーダは、CUのPUに対する予測画像ブロックと、CUに対する1つ又は複数の残差画像ブロックとに基づいて、CUに対する画像ブロックを再構成してもよい。
説明を容易にするために、この出願では、位置又は画像ブロックは、CU又はPUに対して様々な空間的関係を有するものとして記述されてもよい。この記述は下記のように説明されてもよい。即ち、位置又は画像ブロックが、CU又はPUに関連する画像ブロックに対して様々な空間的関係を有する。これに加えて、この出願では、ビデオデコーダによって現在復号化されつつあるPUを、現在のPUと呼んでよく、又は現在処理されるべき画像ブロックと呼んでよい。この出願では、ビデオデコーダによって現在復号化されつつあるCUを、現在のCUと呼んでよい。この出願では、ビデオデコーダによって現在復号化されつつある画像を、現在の画像と呼んでよい。この出願は、PUとCUが同じサイズを有する場合、又はPUがCUである場合にも適用可能であることが理解されるものとする。PUは記述のために一様に使用される。
上記で簡単に説明したように、ビデオエンコーダ100は、フレーム間予測によってCUのPUに対する予測画像ブロック及び動き情報を生成してもよい。多くの例において、所与のPUの動き情報は、1つ又は複数の隣接するPU(即ち、画像ブロックが所与のPUの画像ブロックに空間的又は時間的に隣接しているPU)の動き情報と同一であるか又は類似してもよい。隣接PUはしばしば同様の動き情報を有するので、ビデオエンコーダ100は、隣接PUの動き情報に基づいて所与のPUの動き情報を符号化してもよい。隣接PUの動き情報に基づいて所与のPUの動き情報を符号化することにより、所与のPUの動き情報を示すためにビットストリームにおいて必要とされるコーディングされたビットの量を減らしてもよい。
ビデオエンコーダ100は、種々の方法で隣接PUの動き情報に基づいて、所与のPUの動き情報を符号化してもよい。例えば、ビデオエンコーダ100は、所与のPUに対する動き情報が隣接PUに対する動き情報と同じであることを示してもよい。この出願では、マージモードは、所与のPUに対する動き情報が、隣接PUに対する動き情報と同じであることを示すために使用されてよく、又は隣接PUに対する動き情報から導出されてもよい。別の実現可能な実施では、ビデオエンコーダ100は、所与のPUに対する動きベクトル差(Motion Vector Difference、MVD)を計算してもよい。MVDは、所与のPUの動きベクトルと、隣接するPUの動きベクトルとの間の差を示す。ビデオエンコーダ100は、所与のPUの動き情報の中で、所与のPUの動きベクトルの代わりにMVDを含んでよい。ビットストリームでは、MVDを表現するために必要とされるコーディングされたビットの量は、所与のPUに対する動きベクトルを表現するために必要とされるコーディングされたビットの量よりも少ない。この出願では、MVDと、候補動きベクトルを識別するために使用されるインデックス値とを使用することによって、所与のPUの動き情報がデコーダ側に信号で通知されることを示すために、高度な動きベクトル予測モードが使用されてもよい。
マージモード又はAMVPモードにおいて、所定のPUの動き情報をデコーダ側に信号で通知するために、ビデオエンコーダ100は、所定のPUについての候補予測動作ベクトルリストを生成してもよい。候補予測動作ベクトルリストは、1つ又は複数の候補予測動作ベクトルを含んでよい。所与のPUのための候補予測動作ベクトルリスト中の候補予測動作ベクトルの各々は、動き情報を指定してもよい。各候補予測動きベクトルによって示される動き情報は、動きベクトル、基準画像インデックス、及び予測方向識別子を含んでよい。候補予測動作ベクトルリスト内の候補予測動作ベクトルは、"元の"候補予測動作ベクトルを含んでよく、各"元の"候補予測動作ベクトルは、所与のPUとは異なるPU内での、特定の候補予測動作ベクトル位置のうちの1つの動き情報を示す。
PUのための候補予測動きベクトルリストを生成した後、ビデオエンコーダ100は、PUのための候補予測動きベクトルリストから1つの候補予測動きベクトルを選択してもよい。例えば、ビデオエンコーダは、復号化されるPUと各候補予測動きベクトルを比較し、所望のレート歪みコストを有する候補予測動きベクトルを選択してもよい。ビデオエンコーダ100は、PUのための候補予測動作ベクトルインデックスを出力してもよい。候補予測動きベクトルインデックスは、候補予測動きベクトルリスト中の選択された候補予測動きベクトルの位置を特定してもよい。
これに加えて、ビデオエンコーダ100は、PUの動き情報によって示される基準ブロックに基づいて、PUの予測画像ブロックを生成してもよい。PUのための動き情報は、PUのための候補予測動きベクトルリスト内の選択された候補予測動きベクトルによって示される動き情報に基づいて、決定されてもよい。例えば、マージモードでは、PUの動き情報は、選択された候補予測動きベクトルによって示される動き情報と同じであってよい。AMVPモードでは、PUの動きベクトル差と、選択された候補予測動きベクトルによって示される動き情報とに基づいて、PUの動き情報が決定されてもよい。上記のように、ビデオエンコーダ100は、PUの予測画像ブロックを処理してもよい。
ビデオデコーダ200がビットストリームを受信すると、ビデオデコーダ200は、CUの各々のPUについての候補予測動きベクトルリストを生成してもよい。PUについてビデオデコーダ200によって生成される候補予測動きベクトルリストは、PUについてビデオエンコーダ100によって生成される候補予測動きベクトルリストと同じであってよい。ビットストリームを解析することによって得られるシンタックス要素は、PUのための候補予測動きベクトルリスト内の選択された候補予測動きベクトルの位置を示してもよい。PUのための候補予測動きベクトルリストを生成した後、ビデオデコーダ200は、PUのための動き情報によって示される1つ又は複数の基準ブロックに基づいて、PUのための予測画像ブロックを生成してもよい。ビデオデコーダ200は、PUのための候補予測動きベクトルリスト内の選択された候補予測動きベクトルによって示される動き情報に基づいて、PUの動き情報を決定してもよい。ビデオデコーダ200は、PUの予測画像ブロックとCUの残差画像ブロックに基づいてCUの画像ブロックを再構成してもよい。
実行可能な実施では、デコーダ側において、候補予測動きベクトルリストを構築し、候補予測動きベクトルリスト内の選択された候補予測動きベクトルの位置を得るためにビットストリームを解析することは、互いに独立しているのであり、任意の順序で、又は並列に実行されてもよい、ということが、理解されるものとする。
別の実現可能な実施では、デコーダ側で、候補予測動きベクトルリスト内の選択された候補予測動きベクトルの位置が、まずビットストリームを解析することによって得られ、次に、候補予測動きベクトルリストが、解析によって得られた位置に基づいて構築される。この実施では、全ての候補予測動きベクトルリストを構築する必要はなく、もしこの位置の中で候補予測動きベクトルが決定できるならば、解析によって得られた位置の中で候補予測動きベクトルリストを構築する必要があるだけである。例えば、ビットストリームを解析することにより、選択された候補予測動きベクトルが候補予測動きベクトルであり、そのインデックスが候補予測動きベクトルリストの中で3であることが得られた場合、インデックス0からインデックス3までの候補予測動きベクトルリストを構築する必要があるだけであり、インデックスが3である候補予測動きベクトルが決定できる。これは、複雑さを低減し、復号化効率を改善することができる。
図12は、この出願のある1つの実施形態にしたがった例示的なビデオエンコーダ100のブロック図である。ビデオエンコーダ100は、後処理エンティティ41にビデオを出力するように構成される。後処理エンティティ41は、ビデオエンコーダ100からの符号化されたビデオデータを処理することができるビデオエンティティの例を表す。例えば、ビデオエンティティは、メディア認識ネットワーク要素(MANE)又はステッチ装置/編集装置である。場合によっては、後処理エンティティ41は、ネットワークエンティティの一例であってよい。いくつかのビデオ符号化システムでは、後処理エンティティ41とビデオエンコーダ100とは、別個の装置の構成要素であってよい。別の場合には、後処理エンティティ41に関して説明した機能は、ビデオエンコーダ100を含む同じ装置によって実装してもよい。ある1つの実施形態では、後処理エンティティ41は、図11の記憶装置40のある1つの実施形態である。
図12の例では、ビデオエンコーダ100は、予測処理ユニット108と、フィルタユニット106と、復号化された画像バッファ(decoded picture buffer、DPB)107と、加算器112と、変換器101と、量子化器102と、エントロピーエンコーダ103とを含む。予測処理ユニット108は、フレーム間予測値110及びフレーム内予測値109を含む。画像ブロック再構成のために、ビデオエンコーダ100は、さらに、逆量子化器104、逆変換器105及び加算器111を含む。フィルタユニット106は、1つ又は複数のループフィルタ、例えば、デブロッキングフィルタ、適応ループフィルタ(adaptive loop filter、ALF)、及びサンプル適応オフセット(sample adaptive offset、SAO)フィルタを表すことを意図している。フィルタユニット106は、図12ではループ内フィルタとして示されているが、フィルタユニット106は、別の実施ではループ後フィルタとして実装されてもよい。ある1つの実施形態では、ビデオエンコーダ100は、さらに、ビデオデータメモリ及び分割ユニットを含んでよい(図面には図示しない)。
ビデオデータメモリは、ビデオエンコーダ100の構成要素によって符号化されたビデオデータを格納してもよい。ビデオデータメモリに記憶されたビデオデータは、ビデオソース120から得られてよい。DPB107は、ビデオエンコーダ100がビデオデータをイントラ又はインターコーディングモードで符号化するために使用する、参照ビデオデータを記憶する基準画像メモリであってよい。ビデオデータメモリとDPB107とは、複数のタイプのメモリ装置、例えば、ダイナミックランダムアクセスメモリ(dynamic random access memory, DRAM)、同期ダイナミックランダムアクセスメモリ(synchronous dynamic random access memory, SDRAM)、磁気RAM(magnetic random access memory, MRAM)、抵抗RAM(resistive random access memory, RRAM)、又は別のタイプのメモリ装置のうち、任意の1つを含んでよい。ビデオデータメモリとDPB107とは、同一のメモリ装置又は別個のメモリ装置によって提供されてもよい。種々の例において、ビデオデータメモリは、ビデオエンコーダ100の他の構成要素と共にチップ上に集積されてよく、又はこれらの構成要素に対してチップの外側に配置されてもよい。
図12に示されているように、ビデオエンコーダ100は、ビデオデータを受信し、ビデオデータをビデオデータメモリに記憶する。分割ユニットは、ビデオデータをいくつかの画像ブロックに分割し、これらの画像ブロックは、例えば、四分木構造又は二分木構造に基づいて分割された、より小さなブロックにさらに分割されてもよい。分割は、スライス(slice)、タイル(tile)、又は他のより大きなユニットに分割することをさらに含んでよい。ビデオエンコーダ100は、通常、符号化されるべきビデオスライス内の画像ブロックを符号化するための構成要素である。スライスは、複数の画像ブロックに分割されてもよい(また、タイルと呼ばれる画像ブロックセットに分割されてもよい)。予測処理ユニット108は、現在の画像ブロックに使用される複数の可能なコーディングモード、例えば、複数のイントラコーディングモードのうちの1つ、又は複数のインターコーディングモードのうちの1つを選択してもよい。予測処理ユニット108は、得られたイントラコーディング/復号化されたブロック、及びインターコーディング/復号化されたブロックを、加算器112に供給して残留ブロックを生成し、加算器111に供給して、基準画像として使用される符号化ブロックを再構成してもよい。
空間的冗長性を除去するために、予測処理ユニット108内のフレーム内予測値109は、現在の画像ブロックと同じフレーム又はスライス内にある1つ又は複数の隣接するブロックに対して、符号化されるべき現在のブロックに対してフレーム内予測符号化を実行してもよい。時間的冗長性を除去するために、予測処理ユニット108におけるフレーム間予測値110は、1つ又は複数の基準画像における1つ又は複数の予測ブロックに対して、現在の画像ブロックに対してフレーム間予測符号化を実行してもよい。
具体的には、フレーム間予測値110は、現在の画像ブロックを符号化するために使用されるフレーム間予測モードを決定するように構成されてもよい。例えば、フレーム間予測値110は、候補フレーム間予測モードセットにおける種々のフレーム間予測モードのレート歪み値を、レート歪み解析を通して計算し、最適レート歪み特徴を有するフレーム間予測モードを、フレーム間予測モードから選択してもよい。符号化されたブロックと、まだ符号化されていないが符号化されたブロックを生成するために符号化されるべき元のブロックとの間の歪み(又は誤差)の量、また、符号化されたブロックを生成するために使用されるビットレート(即ち、ビット数)を、決定するために、レート歪分析は通常、使用される。例えば、現在の画像ブロックに対してフレーム間予測を実行するために使用されるフレーム間予測モードとして、フレーム間予測値110は、候補フレーム間予測モードセットにおいて、最小レート歪みコストを有して現在の画像ブロックを符号化するのに使用されるフレーム間予測モードを、決定してもよい。
フレーム間予測値110は、決定されたフレーム間予測モードに基づいて、現在の画像ブロックの中の1つ又は複数のサブブロックの動き情報(例えば、動きベクトル)を予測し、現在の画像ブロックの中の1つ又は複数のサブブロックの動き情報(例えば、動きベクトル)を用いて、現在の画像ブロックの予測ブロックを取得又は生成するように構成される。フレーム間予測値110は、基準画像リスト内の1つの基準画像内に、動きベクトルが指し示す予測ブロックを位置させてよい。フレーム間予測値110は、さらに、画像ブロック及びビデオスライスに関連するシンタックス要素を生成してよく、これにより、ビデオデコーダ200は、シンタックス要素を使用して、ビデオスライスの画像ブロックを復号化する。これに代えて、一例では、フレーム間予測値110は、各サブブロックの動き情報を使用して、サブブロックの予測ブロックを生成するように、運動補償プロセスを実行し、それによって、現在の画像ブロックの予測ブロックを得る。ここで、フレーム間予測値110は、運動推定プロセス及び運動補償プロセスを実行することが理解されるものとする。
具体的には、現在の画像ブロックに対してフレーム間予測モードを選択した後、フレーム間予測値110は、エントロピーエンコーダ103に、現在の画像ブロックの選択されたフレーム間予測モードを示す情報を提供してよく、これにより、エントロピーエンコーダ103が選択されたフレーム間予測モードを示す情報を符号化する。
フレーム内予測値109は、現在の画像ブロックに対してフレーム内予測を実行してもよい。具体的には、フレーム内予測値109は、現在のブロックを符号化するために使用されるフレーム内予測モードを決定してもよい。例えば、フレーム内予測値109は、ビットレート歪み解析を通して、テストされるべき様々なフレーム内予測モードについてビットレート歪み値を計算し、テストされるべきモードから最適なビットレート歪み特性を有するフレーム内予測モードを選択してもよい。いずれの場合も、画像ブロックに対してフレーム内予測モードを選択した後、フレーム内予測値109は、エントロピーエンコーダ103に、現在の画像ブロックの選択されたフレーム内予測モードを示す情報を提供してよく、これにより、エントロピーエンコーダ103は、選択されたフレーム内予測モードを示す情報を符号化する。
予測処理ユニット108は、現在の画像ブロックの予測ブロックをフレーム間予測及びフレーム内予測により生成した後、ビデオエンコーダ100は、現在の符号化するべき画像ブロックから予測ブロックを減算し、残差画像ブロックを形成する。加算器112は、減算演算を実行する1つ又は複数の構成要素を表す。残留ブロック内の残差ビデオデータは、1つ又は複数のTUに含まれ、変換器101に適用されてもよい。変換器101は、離散コサイン変換(DCT)又は概念的に類似した変換などの変換を介して、残差ビデオデータを残留変換係数に変換する。変換器101は、残差ビデオデータを画素値ドメインから、変換ドメイン、例えば周波数ドメインへ変換してもよい。
変換器101は、得られた変換係数を量子化器102に送ってよい。量子化器102は、変換係数を量子化し、ビットレートをさらに低下させる。いくつかの例では、量子化器102は、量子化された変換係数を含む行列をさらに走査してもよい。あるいは、エントロピーエンコーダ103が、走査を実行してもよい。
量子化の後、エントロピーエンコーダ103は、量子化された変換係数に対してエントロピー符号化を実行する。例えば、エントロピーエンコーダ103は、コンテキスト適応可変長コーディング(CAVLC)、コンテキスト適応バイナリ演算コーディング(CABAC)、シンタックスベースのコンテキスト適応バイナリ演算コーディング(SBAC)、確率間隔分割エントロピー(PIPE)コーディング、又は他のエントロピー符号化方法又は技術を、実行してもよい。エントロピーエンコーダ103がエントロピー符号化を実行した後、符号化されたビットストリームは、ビデオデコーダ200に送信されてもよいし、後の送信のためにアーカイブとされてよく、又はビデオデコーダ200によって検索されてもよい。エントロピーエンコーダ103は、さらに、符号化されるべき現在の画像ブロックのシンタックス要素上でエントロピー符号化を実行してもよい。
逆量子化器104及び逆変換器105はそれぞれ逆量子化及び逆変換を適用して、例えば後で基準画像の基準ブロックとして使用されるべき画素ドメイン内の残留ブロックを再構成する。加算器111は、フレーム間予測値110又はフレーム内予測値109によって生成された予測ブロックに再構成された残差ブロックを加えて再構成された画像ブロックを生成する。フィルタユニット106は、ブロッキングアーチファクト(ブロックアーチファクト)等の歪みを低減するために再構成された画像ブロックに適用可能である。次いで、再構成された画像ブロックは、復号化画像バッファ107内に基準ブロックとして記憶され、後続のビデオフレーム又は画像におけるブロックに対してフレーム間予測を行うためにフレーム間予測値110により基準ブロックとして使用されてもよい。
ビデオストリームを符号化するためにビデオエンコーダ100の別の構造変種を用いてもよいことが分かる。例えば、一部の画像ブロック又は画像フレームに対して、ビデオエンコーダ100は残差信号を直接量子化してもよく、これに対応して変換器101及び逆変換器105によって実行される処理は必要とされない。あるいは、一部の画像ブロック又は画像フレームに対して、ビデオエンコーダ100は残差データを生成せず、それに対応して変換器101、量子化器102、逆量子化器104及び逆変換器105による処理は必要とされない。あるいは、ビデオエンコーダ100は、再構成された画像ブロックをフィルタユニット106による処理なしに基準ブロックとして直接記憶してもよい。あるいは、ビデオエンコーダ100内の量子化器102及び逆量子化器104が合体されてもよい。
図13は、この出願のある1つの実施形態にしたがった例示のビデオデコーダ200のブロック図である。図13の例では、ビデオデコーダ200は、エントロピーデコーダ203、予測処理ユニット208、逆量子化器204、逆変換器205、加算器211、フィルタユニット206及びDPB207を含む。予測処理ユニット208は、フレーム間予測値210及びフレーム内予測値209を含んでもよい。一部の例では、ビデオデコーダ200は、図12のビデオエンコーダ100に関して説明した符号化プロセスと実質的に逆の復号化プロセスを実行してもよい。
復号化の間、ビデオデコーダ200は、符号化されたビデオスライスの画像ブロック及び関連する構文要素を表す符号化されたビデオビットストリームをビデオエンコーダ100から受信する。ビデオデコーダ200はネットワークエンティティ42からビデオデータを受信してもよく、選択的にビデオデータをビデオデータメモリ(図示せず)にさらに記憶してもよい。ビデオデータメモリは、ビデオデコーダ200の構成要素によって復号化されるべきビデオデータを、例えば符号化ビデオビットストリームを記憶してもよい。ビデオデータメモリに記憶されたビデオデータは、例えばビデオデータの有線又は無線ネットワーク通信を介して記憶装置40又はカメラ等のローカルビデオソースから又は物理的なデータ記憶媒体にアクセスすることによって取得されてもよい。ビデオデータメモリは、符号化ビデオビットストリームからの符号化ビデオデータを記憶するように構成される復号化画像バッファ(DPB)として使用されてもよい。したがって、図13にはビデオデータメモリが示されていないが、ビデオデータメモリ及びDPB207は同一のメモリであってもいいし、別個に配置されるメモリであってもよい。ビデオデータメモリ及びDPB207の各々は複数の種類のメモリ装置、例えば、同期DRAM(SDRAM)、磁気RAM(MRAM)、抵抗RAM(RRAM)を含むダイナミックランダムアクセスメモリ(DRAM)又は別の種類のメモリ装置のいずれか1つを含んでもよい。様々な例では、ビデオデータメモリは、ビデオデコーダ200の他の構成要素と共にチップ上に統合されていいし、それらの構成要素に対してチップの外に配置されてもよい。
ネットワークエンティティ42は、例えば、サーバ、MANE、ビデオエディタ/クリッパ又は上述の技術の1つ以上を実施するように構成された別の装置であってもよい。ネットワークエンティティ42はビデオエンコーダ、例えばビデオエンコーダ100を含んでもよいし含まなくてもよい。ネットワークエンティティ42が符号化ビデオビットストリームをビデオデコーダ200に送信する前に、ネットワークエンティティ42はこの出願で説明した技術の一部を実装してもよい。一部のビデオ復号化システムでは、ネットワークエンティティ42及びビデオデコーダ200は別個の装置の構成要素であってもよい。別の場合では、ネットワークエンティティ42に関して説明した機能は、ビデオデコーダ200を含む同じ装置によって実装されてもよい。場合によっては、ネットワークエンティティ42は図11の記憶装置40の一例であってもよい。
ビデオデコーダ200のエントロピーデコーダ203は、量子化された係数及びいくつかの構文要素を生成するためにビットストリームに対してエントロピー復号化を行う。エントロピーデコーダ203は構文要素を予測処理ユニット208に送る。ビデオデコーダ200は複数の構文要素/1つの構文要素をビデオスライスレベルで及び/又は画像ブロックレベルで受信してもよい。
ビデオスライスがイントラ復号化(I)スライスに復号化されると、予測処理ユニット208のフレーム内予測値209は、現在のフレーム又は画像の先に復号化されたブロックの伝達されたフレーム内予測モード及びデータに基づいて、現在のビデオスライスの画像ブロックの予測ブロックを生成してもよい。ビデオスライスがフレーム間復号化(すなわち、B又はP)スライスに復号化された場合、予測処理ユニット208のフレーム間予測値210は、エントロピーデコーダ203から受信した構文要素に基づいて、現在のビデオスライスの現在の画像ブロックを復号化するのに用いられるフレーム間予測モードを決定し、決定されたフレーム間予測モードに基づいて現在の画像ブロックを復号化してもよい(例えば、フレーム間予測を行う)。具体的には、フレーム間予測値210は、現在のビデオスライスの現在の画像ブロックを予測するために新たなフレーム間予測モードを用いるか否かを決定してもよい。構文要素が現在の画像ブロックを予測するために新たなフレーム間予測モードを用いることを示す場合、フレーム間予測値210は、新たなフレーム間予測モード(例えば、構文要素によって示される新たなフレーム間予測モード又はデフォルトの新たなフレーム間予測モード)に基づいて現在のビデオスライスの現在の画像ブロックの動き情報又は現在の画像ブロックのサブブロックの動き情報を予測し、現在の画像ブロックの予測動き情報又は現在の画像ブロックのサブブロックの予測動き情報に基づいて現在の画像ブロック又は現在の画像ブロックのサブブロックのための予測ブロックを動き補償プロセスも用いることにより取得するか又は生成する。ここでの動き情報は基準画像情報及び動きベクトルを含んでもよい。基準画像情報は、限定されないが一方向/双方向予測情報、基準画像リスト番号及び基準画像リストに対応する基準画像インデックスを含んでもよい。フレーム間予測の場合、予測ブロックは、基準画像リストのうちの1つにおける基準画像のうちの1つから生成されてもよい。ビデオデコーダ200は、DPB207に記憶された基準画像に基づいて基準画像リストを、すなわちリスト0及びリスト1を構築してもよい。現在の画像の基準フレームインデックスは、基準フレームリスト0及び基準フレームリスト1のうちの一方又は両方に含まれ得る。一部の例では、ビデオエンコーダ100は、新たなフレーム間予測モードを用いることにより特定ブロックの特定の構文要素を復号化するか否かを示すために信号を送り得るか又は新たなフレーム間予測モードを用いるか否かを示すために又は特定のブロックの特定の構文要素を復号化するのにどの新たなフレーム間予測モードを具体的に用いるかを示すために信号を送り得る。ここでは、フレーム間予測値210は動き補償プロセスを行うものと理解されるべきである。
逆量子化器204は、ビットストリーム内に提供され且つエントロピー復号器203によって復号される量子化変換係数を逆量子化、すなわち逆量子化する。逆量子化プロセスは、ビデオスライス内の各画像ブロックについてビデオエンコーダ100によって計算された量子化パラメータを用いることにより適用されるべき量子化の度合いを決定することと、適用されるべき逆量子化の程度を同様に決定することとを含んでもよい。逆変換器205は、画素領域残差ブロックを生成するために変換係数に対して逆変換、例えば、逆DCT、逆整数変換又は概念的に同様の逆変換プロセスを適用する。
フレーム間予測値210が現在の画像ブロック又は現在の画像ブロックのサブブロックに使用される予測ブロックを生成した後、ビデオデコーダ200は、逆変換器205からの残差ブロックと、フレーム間予測値210により生成された対応する予測ブロックとを加算して再構成ブロックを、すなわち復号化画像ブロックを得る。加算器211は加算動作を行う構成要素を表す。必要に応じて、画素を平滑化するために(復号化ループ内で又は後に)ループフィルタをさらに用いてもいいし又はビデオ品質が他の方法で改善されてもよい。フィルタユニット206は1つ上記のループフィルタ、例えばデブロックフィルタ、適応ループフィルタ(ALF)及びサンプル適応オフセット(SAO)フィルタを表してもよい。図13ではフィルタユニット206をインループフィルタとして示されているが、フィルタユニット206は別の実施ではポストループフィルタとして実装されてもよい。1つの例では、フィルタユニット206はブロック歪みを低減するために再構成をブロックするために適用可能であり、この結果は復号化ビデオストリームとして出力される。加えて、特定のフレーム又は画像内の復号化画像ブロックがDPB207に記憶されてもよく、DPB207は、後続の動き補償のために用いられる基準画像を記憶する。DPB207はメモリの構成要素であっていいし、表示装置(たとえば、図11の表示装置220)上に後で提示するために復号化ビデオをさらに記憶してもよいか又はそのような種類のメモリとは別個であってもよい。
符号化ビデオストリームを復号化するためにビデオデコーダ200の別の構造変種を用いてもよいことが分かる。例えば、ビデオデコーダ200は、フィルタユニット206による処理なしに出力ビデオストリームを生成してもよい。あるいは、一部の画像ブロック又は画像フレームに対して、ビデオデコーダ200のエントロピーデコーダ203は復号化を通して量子化された係数を取得せず、これに対応して逆量子化器204及び逆変換器205による処理は必要とされない。
上述したように、この出願における技術は、例えば、フレーム間復号化に関する。この出願における技術は、この出願に記載の任意のビデオデコーダによって行われてもよく、ビデオデコーダは、(例えば)図11~図3で図示説明するビデオエンコーダ100及びビデオデコーダ200を含むことを理解すべきである。すなわち、実現可能な実施では、図12を参照して説明したフレーム間予測値110は、ビデオデータのブロックに対する符号化の間にフレーム間予測を行う場合に、以下で説明する特定の技術を実行してもよい。別の実現可能な実施では、図13を参照して説明したフレーム間予測値210は、ビデオデータのブロックに対する復号化の間にフレーム間予測を行う場合に、以下で説明する特定の技術を実行してもよい。したがって、一般的な"ビデオエンコーダ"又は"ビデオデコーダ"への参照は、ビデオエンコーダ100、ビデオデコーダ200又は別のビデオ符号化ユニット又は復号化ユニットを含んでもよい。
この出願におけるエンコーダ100及びデコーダ200では、手順の処理結果が、さらに処理された後に次の手順に出力されてもよいことを理解すべきである。例えば、補間フィルタ処理、動きベクトル導出又はループフィルタ処理等の手順の後に、対応する手順の処理結果に対してクリップ又はシフトシフト等の動作がさらに実行される。
例えば、動きベクトルの値は、特定のビット幅範囲内にあるように制約される。動きベクトルの許容されるビット幅がビット深度(bitDepth)であると仮定した場合、動きベクトルの値は、-2^(bitDepth-1)~2^(bitDepth-1)-1の範囲であり、符号"^"は指数を表す。bitDepthが16の場合、値の範囲は-32768~32767である。bitDepthが18の場合、値の範囲は-131072~131071である。動きベクトルの値は次の2つの方法のいずれかに制約されてもよい。
方法1:動きベクトルのオーバーフローした最上位ビットが取り除かれる。
ux=(vx+2bitDepth)%2bitDepth
vx=(ux≧2bitDepth-1)?(ux-2bitDepth):ux
uy=(vy+2bitDepth)%2bitDepth
vy=(uy≧2bitDepth-1)?(uy-2bitDepth):uy
例えば、vxの値は-32769であり、上記の式にしたがって32767が導かれる。値は2の補数表現でコンピュータに記憶され、-32769の2の補数表現は1,0111,1111,1111(17ビット)であり、オーバーフローのためにコンピュータによって実行される処理は最上位ビットを破棄する。したがって、vxの値は0111,1111,1111,1111、すなわち32767である。この値は上記式に従った処理を通じて導かれる結果と一致する。
方法2:動きベクトルにクリッピングが行われ、以下の式が用いられる。
vx=Clip3(-2bitDepth-1,2bitDepth-1-1,vx)
vy=Clip3(-2bitDepth-1,2bitDepth-1-1,vy)
上記の数式では、Clip3は、zの値を[x,y]の範囲にクリップするものと定義される。
例えば、フレーム間予測モジュール121は動き推定ユニット及び動き補償ユニットを含んでもよい。PUとCUとの間の関係はビデオ圧縮符号化標準によって変化する。フレーム間予測モジュール121は、現在のCUを複数の分割パターンにしたがってPUに分割してもよい。例えば、フレーム間予測モジュール121は、2N×2N、2N×N、N×2N及びN×Nの分割パターンにしたがって現在のCUをPUに分割してもよい。別の実施形態において、現在のCUは現在のPUである。これに限定されない。
フレーム間予測モジュール121は、各々のPUに対して整数動き推定(Integer Motion Estimation, IME)を、次いで分数動き推定(Fraction Motion Estimation, FME)を実行してもよい。フレーム間予測モジュール121がPUに対してIMEを実行する場合、フレーム間予測モジュール121は、PUのための基準ブロックについて1つ又は複数の基準画像を検索してもよい。PUのための基準ブロックを見つけた後、フレーム間予測モジュール121は、PUと、PUのための基準ブロックとの間の空間的変位を整数精度で示す動きベクトルを生成してもよい。フレーム間予測モジュール121がPUに対してFMEを実行する場合、フレーム間予測モジュール121は、PUに対してIMEを実行することによって生成される動きベクトルを改善してもよい。PUに対してFMEを実行することによって生成される動きベクトルは、サブ整数精度(例えば、1/2サンプル制度又は1/4サンプル制度)を有してもよい。PUのための動きベクトルを生成した後、フレーム間予測モジュール121は、PUのための動きベクトルを用いることによりPUのための予測画像ブロックを生成してもよい。
フレーム間予測モジュール121がPUのための動き情報をAMVPモードのデコーダ側に伝達する一部の実現可能な実施では、フレーム間予測モジュール121は、PUのための候補予測動きベクトルリストを生成してもよい。候補予測動きベクトルリストは、1つ又は複数の元の候補予測動きベクトルと、1つ又は複数の元の候補予測動きベクトルから導出された1つ又は複数の追加候補予測動きベクトルとを含んでもよい。PUのための候補予測動きベクトルリストを生成した後、フレーム間予測モジュール121は、候補予測動きベクトルリストから候補予測動きベクトルを選択し、PUのための動きベクトル差分(MVD)を生成してもよい。PUのためのMVDは、選択された候補予測動きベクトルによって示される動きベクトルと、IME及びFMEを通してPUのために生成された動きベクトルとの差分を示してもよい。これらの実現可能な実施では、フレーム間予測モジュール121は、候補予測動きベクトルリスト内の選択された候補予測動きベクトルの位置を特定する候補予測動きベクトルインデックスを出力してもよい。フレーム間予測モジュール121は、PUのためにMVDをさらに出力してもよい。
PUのための動き情報を生成するためにPUに対してIME及びFMEを実行することに加えて、フレーム間予測モジュール121はPUに対してマージ操作をさらに実行してもよい。フレーム間予測モジュール121がPUに対してマージ操作を行う場合、フレーム間予測モジュール121はPUのための候補予測動きベクトルリストを生成してもよい。PUのための候補予測動きベクトルリストは、1つ又は複数の元の候補予測動きベクトルと、1つ又は複数の元の候補予測動きベクトルから導出された1つ又は複数の追加候補予測動きベクトルとを含んでもよい。候補予測動きベクトルリスト内の元の候補予測動きベクトルは1つ上以上の空間候補予測動きベクトル及び時間候補予測動きベクトルを含んでもよい。空間候補予測動きベクトルは、現在の画像内の別のPUのための動き情報を示してもよい。時間候補予測動きベクトルは、現在の画像とは異なる画像内の対応するPUのための動き情報に基づき得る。時間候補予測動きベクトルは時間動きベクトル予測(TMVP)とも呼ばれ得る。
候補予測動きベクトルリストを生成した後、フレーム間予測モジュール121は、候補予測動きベクトルリストから1つの候補予測動きベクトルを選択してもよい。次に、フレーム間予測モジュール121は、PUのための動き情報によって示される基準ブロックに基づいて、PUのための予測画像ブロックを生成してもよい。マージモードでは、PUのための動き情報は選択された候補予測動きベクトルによって示される動き情報と同じであってもよい。
IME及びFMEを通じてPUのための予測画像ブロックを生成し、マージ操作を通じてPUのための予測画像ブロックを生成した後、フレーム間予測モジュール121は、FME操作を行うことによって生成された予測画像ブロック又はマージ操作を行うことによって生成された予測画像ブロックを選択してもよい。一部の実行可能な実施では、フレーム間予測モジュール121はFME操作を行うことによって生成された予測画像ブロックと、マージ操作を行うことによって生成された予測画像ブロックとのレート歪みコストを分析することによってPUのための予測画像ブロックを選択してもよい。
フレーム間予測モジュール121が、各分割パターンに従って現在のCUを分割することによって生成されたPUの予測画像ブロックを選択した後(一部の実施では、符号化ツリーユニットCTUがCUに分割された後、CUはより小さなPUに分割されず、この場合、PUはCUと等しい)、フレーム間予測モジュール121は、現在のCUのための分割パターンを選択してもよい。一部の実施では、フレーム間予測モジュール121は、各分割パターンに従って現在のCUを分割することにより生成されたPUの選択された予測画像ブロックのレート歪みコストを分析することにより現在のCUのための分割パターンを選択してもよい。フレーム間予測モジュール121は、選択された分割パターンに属するPUに関連する予測画像ブロックを残差生成モジュール102に出力してもよい。フレーム間予測モジュール121は、選択された分割パターンに属するPUのための動き情報の構文要素をエントロピー符号化モジュールに出力してもよい。
当業者であれば、本明細書に開示の実施形態で記載された例と組み合わせて、ユニット及びアルゴリズムステップは、電子ハードウェア又はコンピュータソフトウェアと電子ハードウェアとの組み合わせにより実装されてもよいことを認識するであろう。機能がハードウェア又はソフトウェアによって実行されるかは、技術的解決方法の特定の用途及び設計制約条件に依存する。当業者であれば、説明した機能を特定の用途のために実施するために異なる方法を用いり得るが、係る実施はこの出願の範囲を超えると考えるべきではない。
当業者であれば、簡易で簡潔な説明のために、上記のシステム、装置及びユニットの詳細な作業プロセスについては上記の方法の実施形態における対応するプロセスを参照することが明確に理解されてもよい。ここでは詳細については繰り返さない。
この出願において提供されるいくつかの実施形態において、開示のシステム、装置及び方法は他のやり方で実装されてもよいことを理解すべきである。例えば、説明した装置の実施形態は一例にすぎない。例えば、ユニットへの分割は単なる論理関数的な分割であり、実際の実施では他の分割であってもよい。例えば、複数のユニット又は構成要素は別のシステムと組み合わされるか又は統合されてもよく、一部の特徴は無視されるか又は行われなくてもよい。加えて、表示又は説明された相互連結、直接連結又は通信接続はいくつかのインターフェースを介して実装されてもよい。装置又はユニット間の間接的な連結又は通信接続は電子形態、機械形態又は別の形態で実装されてもよい。
別個の部品として説明したユニットは物理的に分離されていてもされていなくてもよく、ユニットとして表示される部品は物理的ユニットであってもなくてもよく、1つの位置に位置してもよいか又は複数のネットワークユニット上に分散されてもよい。ユニットの一部又は全て、実施形態の解決方法の目的を実現するために実際の要件に基づいて選択されてもよい。
加えて、この出願の実施形態における機能ユニットは1つの処理ユニットに統合されてもいいし、各ユニットは物理的に単独で存在してもよく、2つ以上のユニットが1つのユニットに統合される。
ソフトウェア機能ユニットの形態で機能が実装され、独立した製品として販売又は使用される場合、機能はコンピュータ読み取り可能記憶媒体に記憶されてもよい。このような理解に基づいて、本質的にこの出願の技術的解決方法、従来の技術に寄与する部分又は技術的解決方法の一部はソフトウェア製品の形態で実装されてもよい。コンピュータソフトウェア製品は記憶媒体に記憶され、(パーソナルコンピュータ、サーバ、ネットワーク装置等であってもよい)コンピュータ装置に、この出願の実施形態で説明した方法のステップの全て又は一部を行うよう指示するためのいくつかの命令を含む。記憶媒体はUSBフラッシュドライブ、リムーバブルハードディスク、読み出し専用メモリ(読み出し専用メモリ、ROM)、ランダムアクセスメモリ(ランダムアクセスメモリ、RAM)、磁気ディスク又は光ディスク等のプログラムコードを記憶可能な任意の媒体を含む。
上記の説明はこの出願の具体的な実施にすぎず、この出願の保護範囲を制限することを意図していない。当業者によってこの出願に開示の技術的範囲内で容易に考え付く変更又は代替は、この出願の保護範囲に含まれるべきである。したがって、この出願の保護範囲は特許請求の範囲の保護範囲に従うものとする。