この出願は、映像コーディング技術の分野に関し、特に、ビデオエンコーダ、ビデオデコーダ、及び対応する方法に関する。
デジタルビデオ機能は、デジタルテレビジョン、デジタルライブ放送システム、無線放送システム、携帯情報端末(PDA)、ラップトップ若しくはデスクトップコンピュータ、タブレットコンピュータ、電子書籍リーダ、デジタルカメラ、デジタル記録装置、デジタルメディアプレーヤ、ビデオゲーム装置、ビデオゲームコンソール、セルラ若しくは衛星無線電話(所謂“スマートフォン”)、ビデオ会議装置、ビデオストリーミング装置、及びこれらに類するものを含む広範で多様な装置に組み込まれることができる。デジタルビデオ装置は、例えば、MPEG-2、MPEG-4、ITU-T H.263、及びITU-T H.264/MPEG-4パート10:アドバンストビデオコーディング(AVC)、映像コーディング標準H.265/ハイエフィシェンシビデオコーディング(HEVC)標準、及びこのような標準の拡張、によって規定される標準に記載された映像圧縮技術といった、映像圧縮技術を実装する。ビデオ装置は、そのような映像圧縮技術を実装することによって、より効率的にデジタルビデオ情報を送信、受信、符号化、復号、及び/又は格納することができる。
映像圧縮技術は、映像シーケンスにおける生来的な冗長性を低減又は除去するために、空間(イントラピクチャ)予測及び/又は時間(インターピクチャ)予測を実行するように使用される。ブロックベースの映像コーディングでは、映像スライス(すなわち、映像フレーム、又は映像フレームの一部)が複数のピクチャブロックに分割され、ピクチャブロックは、ツリーブロック、コーディングユニット(CU)、及び/又はコーディングノードと称されることもる。ピクチャのイントラコーディングされる(I)スライス内のピクチャブロックは、同じピクチャ内の隣接ブロック内の参照サンプルに基づいて空間予測を通じてコーディングされる。ピクチャのインターコーディングされる(P又はB)スライス内のピクチャブロックでは、同じピクチャ内の隣接ブロック内の参照サンプルに基づく空間予測、又は別の参照ピクチャ内の参照サンプルに基づく時間予測が使用され得る。ピクチャはフレームと称されることがあり、参照ピクチャは参照フレームと称されることがある。
ハイエフィシェンシビデオコーディング(HEVC)標準を含む様々な映像コーディング標準は、ピクチャブロックに使用される予測コーディングモードを提案している。具体的には、現在コーディング対象ブロックが、コーディングされた映像データブロックに基づいて予測される。イントラ予測モードにおいて、現在ブロックは、現在ブロックと同じピクチャ内の1つ以上の先行して復号された隣接ブロックに基づいて予測される。インター予測モードにおいて、現在ブロックは、異なるピクチャ内の復号されたブロックに基づいて予測される。
予測は、前方予測、後方予測、双方向予測、及びこれらに類するものを含む。双方向予測では、前方予測の動き補償プロセス及び後方予測の動き補償プロセスにおける動き情報に基づいて、前方予測ブロック(例えば、第1リスト内の予測サンプル値に対応する)及び後方予測ブロック(例えば、第2リスト内の予測サンプル値に対応する)をそれぞれ取得する必要があり、そして、これら前方予測ブロックと後方予測ブロックとに基づいて、現在ブロックの予測ブロックが決定される。現在ブロックの予測ブロックの予測精度を向上させながら、どのようにしてコーディングの複雑さを低減させるかは、当業者によって研究されている技術的問題である。
本発明の実施形態は、符号化/復号の複雑さと予測精度とをある程度バランスさせるための、ビデオエンコーダ、ビデオデコーダ、及び対応する方法を開示する。
第1態様によれば、この出願の一実施形態は、映像符号化方法を提供し、当該方法は、
複数のプリセット条件が満足されるときに、現在ピクチャブロックに対して双方向オプティカルフローBDOF(Bi-directional optical flow、略してBIO又はBDOF)処理を実行して現在ピクチャブロックの予測サンプル値を取得し、上記複数のプリセット条件は少なくとも、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することという条件を含む、ことを含む。
現在ピクチャブロックのサイズは、通常、幅及び高さ(短くW×Hと記載される)によって表され、幅及び高さは、サンプル(sample又はpixel)によって測定される。例えば、現在ピクチャブロックのサイズが8×8である場合、1つめの8は、現在ピクチャブロックの幅が8サンプルであることを示し、2つめの8は、現在ピクチャブロックの高さが8サンプルであることを示す。他の一例では、現在ピクチャブロックのサイズが8×16である場合、8は、現在ピクチャブロックの幅が8サンプルであることを示し、16は、現在ピクチャブロックの高さが16サンプルであることを示す。
現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、且つ現在ピクチャブロックの幅Wと高さHとの積が64に等しいときに幅Wが高さHに等しくない、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、且つ現在ピクチャブロックの幅Wが8以上である、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、現在ピクチャブロックの幅Wが8以上であり、且つ現在ピクチャブロックの幅Wと現在ピクチャブロックの高さHとの積が64よりも大きい、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、現在ピクチャブロックの幅Wが8以上であり、且つ現在ピクチャブロックの幅Wと現在ピクチャブロックの高さHとの積が128よりも大きい、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8よりも大きい、ことを含む。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8よりも大きく、且つ現在ピクチャブロックの幅Wが8以上である、ことを含む。
当該方法は更に、少なくとも現在ピクチャブロックの予測サンプル値に基づいて、現在ピクチャブロックを再構成し、
シンタックス要素を送信対象ビットストリームに符号化し、シンタックス要素は少なくとも、双方向予測が適用されることを指し示すために使用される、
ことを含む。
理解されるべきことには、現在ピクチャブロックに対してBDOFを実行するプロセスにおいて、予測はサブブロックによって実行される。具体的には、現在ピクチャブロックに対して双方向オプティカルフローBDOF処理を実行することは具体的に、現在ピクチャブロックの現在サブブロックの予測サンプル値を得るために、現在ピクチャブロックの現在サブブロックに対して双方向オプティカルフローBDOF処理を実行することとし得る。現在ピクチャブロックの予測サンプル値は、1つ以上のサブブロックの予測サンプル値を含み、該1つ以上のサブブロックは現在サブブロックを含む。現在ピクチャブロックが1つのサブブロックのみを含む場合、そのサブブロックのサイズは、現在ピクチャブロックのサイズに等しいとし得る。
なお、BDOF技術に従って現在ピクチャブロックの予測サンプル値を決定する(又は予測を通じて取得する)かが決定される前に、現在ピクチャブロックのサイズに加えて、別の参照条件が存在してもよい。別の参照条件は、ここで限定されるものではない。理解を容易にするために、以下では、説明のための例を用いる。
条件A: 現在映像シーケンスに対してBDOF技術が使用されることが許されることを指し示すハイレベルシンタックス識別子sps_bdof_enabled_flagが存在する。
条件B: 第1リスト(List1)に対応する予測方向指示情報predFlagL0が1に等しく、且つ第2リスト(list0)に対応する予測方向指示情報predFlagL1が1に等しい。
条件C: 第1リスト(list0)に対応する参照フレームのピクチャオーダカウントPOC_L0、第2リスト(list1)に対応する参照フレームのピクチャオーダカウントPOC_L1、及びその中に現在ピクチャブロックが位置するピクチャのピクチャオーダカウントPOC_Curが、(POC_L0-POC_Cur)×(POC_L1-POC_Cur)<0という関係を満足する。換言すれば、現在ピクチャブロックを含むピクチャが、2つの参照ピクチャの間にある。
条件D: MotionModelIdc[xCb][yCb]が0に等しい。MotionModelIdcは、動き補償に関する動きモデルインデックスである。0に等しいMotionModelIdc[xCb][yCb]は、現在ブロックの動き補償のための動きモデルが並進運動(Translational motion)であることを指し示す。
条件E: merge_subblock_flag[x0][y0]が0に等しく、ここで、0に等しいmerge_subblock_flag[x0][y0]は、現在ピクチャブロックに対してサブブロックマージモードが適用されないことを指し示す。
条件F: sym_mvd_flag[x0][y0]が0に等しい。0に等しいsym_mvd_flag[x0][y0]は、現在ブロックに対してmvd_coding(x0,y0,refList,cpIdx)シンタックス構造が存在することを指し示す。
条件G: bcwIdx[xCb][yCb]が0に等しい。bcwIdxは、現在ピクチャブロックに対する双方向予測重みインデックスを示す。
条件H: cIdxが0に等しい。cIdxは、現在ピクチャブロックの色成分インデックスを表す。
条件I: 現在ピクチャブロックのサイズが第1のプリセットサイズである。
条件J: luma_weight_l0_flag[refIdxL0]及びluma_weight_l1_flag[refIdxL1]の両方が0に等しく、ここで、0に等しいluma_weight_l0_flagは、list0予測のluma成分に対する重み付け係数が存在しないことを指し示し、0に等しいluma_weight_l1_flagは、list1予測のluma成分に対する重み付け係数が存在しないことを指し示す。
例えば、条件A乃至Jの全てが満足されるとき、現在ピクチャブロックの予測サンプル値を予測するためにBDOF技術が使用され得ることが決定される。例えば、bdofFlagがtrueに設定される。なお、前述の条件は単なる例であり、別の条件が更に追加されたり、あるいは前述の条件のうちの1つ以上が置き換えられたり、あるいは前述の条件のうちの1つ以上が除去されたりしてもよい。
理解されるべきことには、ここでの現在ピクチャブロック(これは、現在ブロックとも称される)は、処理中のピクチャブロックとして理解され得る。例えば、符号化プロセスにおいて、現在ピクチャブロックは、符号化中のピクチャブロック(encoding block)である。
この出願のこの実施形態において、状態判定動作が更に含められてもよい。例えば、上記複数のプリセット条件が満足されているかが判定される。
理解され得ることには、前述のケースを参考にして、別のケースを更に得ることができ、別のケースもこの出願の保護範囲に入るものである。
理解されるべきことには、この出願のこの実施形態における方法は、ビデオエンコーダ、又は映像符号化機能を持つエレクトロニクス装置によって実行され得る。
具体的には、BDOF技術を有効にする又は使用するための、このソリューションにおける条件は、BDOF技術を有効にする又は使用するための、従来技術における条件とは異なり、特に、現在ピクチャブロックのサイズに関する要件が異なる。第1のプリセットサイズを持つ現在ピクチャブロックに対してBDOF技術を使用することで、元のサンプル値にいっそう近い予測サンプル値を得ることができ、また、コーディングの複雑さを適切に制御することができる。これは、符号化/復号の複雑さと予測精度とをある程度バランスさせ、それによりコーディング効率を向上させる。
オプションの一ソリューションにおいて、シンタックス要素は、ターゲット候補動き情報のインデックス(例えば、merge_idx[xCb][yCb])を含み、ターゲット候補動き情報は、ターゲット候補動きベクトル、参照フレームインデックス、及び予測方向指示情報(例えば、predFlagL0=1及びpredFlagL1=1)を含み、予測方向指示情報は、双方向予測が適用されることを指し示すために使用され、ターゲット候補動きベクトルは、第1リスト(すなわち、list0)に対応する第1動きベクトル、及び第2リスト(すなわち、list1)に対応する第2動きベクトルを含み、参照フレームインデックスは、第1リストに対応する第1参照フレームのインデックス(例えば、refIdxL0)、及び第2リストに対応する第2参照フレームのインデックス(例えば、refIdxL1)を含む。
この出願のこの実施形態において、参照フレームインデックスは、指定された参照ピクチャリスト(第1リストlist0又は第2リストlist1)内の使用される動きベクトル(例えば、第1動きベクトル又は第2動きベクトル)に対応する参照ピクチャを特定するために使用される。ピクチャはフレームと称されることがあり、参照ピクチャは参照フレームと称されることがある。
映像コーディング分野において、インター予測モードは、前方予測、後方予測、及び双方向予測(前方予測及び後方予測を含む)を含み、エンコーダ側で使用される特定の予測モードは、通常、予測方向指示情報によって指し示される。例えば、予測方向指示情報は、シンタックス要素predFlagL0及びpredFlagL1を含み得る。predFlagL0=1且つpredFlagL1=1であるとき、予測方向指示情報は、双方向予測が適用されることを指し示す。predFlagL0=1且つpredFlagL1=0であるとき、予測方向指示情報は、前方予測が使用されることを指し示す。predFlagL0=0且つpredFlagL1=1であるとき、予測方向指示情報は、後方予測が使用されることを指し示す。理解され得ることには、“前方”及び“後方”は、それぞれ、現在ピクチャの参照ピクチャリスト0(list0、すなわち、前述の第1リスト)及び参照ピクチャリスト1(list1、すなわち、前述の第2リスト)に対応する。
オプションの一ソリューションにおいて、シンタックス要素は、第1インデックス、第2インデックス、予測方向指示情報、及び動きベクトル差MVDを含み、第1インデックス(例えば、mvp_lX_flag[xCb][yCb])は、ターゲット候補動きベクトル予測子を指し示すために使用され、ターゲット候補動きベクトル予測子は、第1リスト(例えば、list0)に対応する第1動きベクトル予測子、及び第2リスト(例えば、list1)に対応する第2動きベクトル予測子を含み、動きベクトル差MVDは、第1リストに対応する第1MVD、及び/又は第2リストに対応するMVDを含む(オプションで、MMVD技術が使用されるとき、1つのMVDのみが伝送されてもよく、別方向のものであってデコーダ側によって使用される必要があるMVDは、伝送されたMVDに基づいて導出され得る)。第2インデックス(これらは、参照フレームインデックスとも称される)は、現在ピクチャブロックの参照フレームを指し示すために使用され、参照フレームは、第1リストに対応する第1参照フレーム、及び第2リストに対応する第2参照フレームを含む。例えば、第2インデックスは、refIdxL0及びrefIdxL1であり、refIdxL0は、第1リストに対応する第1参照フレームのインデックスであり、refIdxL1は、第2リストに対応する第2参照フレームのインデックスである。予測方向指示情報(例えば、predFlagL0=1及びpredFlagL1=1)は、双方向予測が適用されることを指し示すために使用される。
第1リストに対応する第1動きベクトル(例えば、Mv0_L0)が、第1リストに対応する第1動きベクトル予測子(例えば、Mvp0_L0)と、第1リストに対応する第1MVD(例えば、MVD0)とに基づいて取得される。例えば、Mv0_L0=Mvp0_L0+MVD0である。
第2リストに対応する第2動きベクトル(例えば、Mv1_L1)が、第2リストに対応する第2動きベクトル予測子(例えば、Mvp1_L1)と、第2リストに対応する第2MVD(例えば、MVD1)とに基づいて取得される。例えば、Mv1_L1=Mvp1_L1+MVD1である。
映像コーディング分野において、インター予測モードは、前方予測、後方予測、及び双方向予測(前方予測及び後方予測を含む)を含み、エンコーダ側で使用される特定の予測モードは、通常、予測方向指示情報によって指し示される。例えば、予測方向指示情報は、シンタックス要素predFlagL0及びpredFlagL1を含み得る。predFlagL0=1且つpredFlagL1=1であるとき、予測方向指示情報は、双方向予測が適用されることを指し示す。predFlagL0=1且つpredFlagL1=0であるとき、予測方向指示情報は、前方予測が使用されることを指し示す。predFlagL0=0且つpredFlagL1=1であるとき、予測方向指示情報は、後方予測が使用されることを指し示す。理解され得ることには、“前方”及び“後方”は、それぞれ、現在ピクチャの参照ピクチャリスト0(list0、すなわち、前述の第1リスト)及び参照ピクチャリスト1(list1、すなわち、前述の第2リスト)に対応する。
オプションの一ソリューションにおいて、当該方法は更に、現在ピクチャブロックのサンプル値と現在ピクチャブロックの予測サンプル値とに基づいて、サンプル残差を決定することを含み、シンタックス要素を送信対象ビットストリームに符号化することは、シンタックス要素及びサンプル残差を送信対象ビットストリームに符号化することを含む。換言すれば、シンタックス要素に加えて、更にサンプル残差が、送信対象ビットストリームに符号化され得る(サンプル残差は、残差計算ユニットを用いることによって計算を通じて取得されることができ、例えば、サンプル残差は0であり、あるいは0でない)。このソリューションは、AMVPモード及びマージモードに適用され得る。また、サンプル残差を送信対象ビットストリームに符号化する必要がない場合も存在する。例えば、スキップモードでは、サンプル残差を送信対象ビットストリームに符号化する必要はない。
第2態様によれば、この出願の一実施形態は、符号化方法を提供し、当該方法は、
現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リスト(すなわち、list0)に対応する参照サンプル値と第2リスト(すなわち、list1)に対応する参照サンプル値とに基づいて、第1の処理方式で現在ピクチャブロックの予測サンプル値(例えば、現在コーディングユニットの予測サンプル)を決定し(又は予測を通じて取得し)、第1の処理方式は、BDOF(あるいは、双方向オプティカルフロー(Bi-directional optical flow、BIO)又は予測精緻化・ウイズ・オプティカルフロー(prediction refinement with optical flow、PROF)と称される)ではない、ことを含む。換言すれば、現在ピクチャブロックのサイズが第2のプリセットサイズであるとき、第1リストに対応する参照サンプル値及び第2リストに対応する参照サンプル値に基づいて現在ピクチャブロックの予測サンプル値を決定するためにBDOFを使用することは許されない。現在ピクチャブロックのサイズは、通常、幅及び高さ(短くW×Hと記載される)によって表され、幅及び高さは、サンプル(sample又はpixel)によって測定される。第2のプリセットサイズは、8×8(1つめの8は、現在ピクチャブロックの幅が8サンプルであることを示し、2つめの8は、現在ピクチャブロックの高さが8サンプルであることを示す)、4×N(4は、現在ピクチャブロックの幅が4サンプルであることを示し、Nは、現在ピクチャブロックの高さがNサンプルであることを示し、類推によって他のサイズが推定される)、8×16、又は16×8を含む。Nは2のべき乗であり、且つ8以上である。例えば、Nの値は、16、32、64などとし得る。
この出願のこの実施形態において、第1リストに対応する参照サンプル値、及び第2リストに対応する参照サンプル値は、それぞれ、第1リスト(すなわち、list0)に対応する第1動きベクトル(例えば、Mv0_L0)、及び第2リスト(すなわち、list1)に対応する第2動きベクトル(例えば、Mv1_L1)に基づく予測を通じて取得される。例えば、第1リスト(すなわち、list0)に対応する参照サンプル値は、第1のリスト(すなわち、list0)に対応する第1動きベクトル(例えば、Mv0_L0)に基づいて決定されることができ、第2リスト(すなわち、list1)に対応する参照サンプル値は、第2リスト(すなわち、list1)に対応する第2動きベクトル(例えば、Mv1_L1)に基づいて決定されることができる。
次いで、当該方法は、少なくとも現在ピクチャブロックの予測サンプル値に基づいて、現在ピクチャブロックを再構成することを含む。ここでの“少なくとも”が示すのは、現在ピクチャブロックを再構成するために現在ピクチャブロックの予測サンプル値が使用される必要があるが、他の情報も使用され得る、ということである。
その後、当該方法は、シンタックス要素を送信対象ビットストリームに符号化することを含み、シンタックス要素は少なくとも、双方向予測が適用されることを指し示すために使用される。
理解されるべきことには、ここでの現在ピクチャブロック(これは、現在ブロックとも称される)は、処理中のピクチャブロックとして理解され得る。例えば、符号化プロセスにおいて、現在ピクチャブロックは、符号化中のピクチャブロック(encoding block)である。
また、第2のプリセットサイズが8×8、4×N、8×16、又は16×8を含む前述のケースは、第2のプリセットサイズが8×8、4×N、8×16、又は16×8であることに限られることもできる。換言すれば、BDOFは、上に列挙された8×8、4×N、8×16、及び16×8なるサイズのうちの1つに対して使用されることが禁止され、あるいは、これらのうちの複数のサイズに対して使用されることが禁止されてもよい。以下では、説明のための例を用いる。
例1: 第2のプリセットサイズは8×8を含む(又は、である)。換言すれば、この出願のこの実施形態において、BDOFは、サイズ8×8に対して使用されることが禁止される。この場合、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下として表現され得る:現在ピクチャブロックのサイズが8×8であるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得する。
例2:第2のプリセットサイズは4×Nを含む(又は、である)。換言すれば、この出願のこの実施形態において、BDOFは、サイズ4×Nに対して使用されることが禁止される。この場合、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下として表現され得る:Nは8以上であるとして、現在ピクチャブロックのサイズが4×Nであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得する。
例3: 第2のプリセットサイズは8×8又は4×Nを含む(又は、である)。換言すれば、この出願のこの実施形態において、BDOFは、サイズ8×8及び4×Nに対して使用されることが禁止される。この場合、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下として表現され得る:Nは8以上であるとして、現在ピクチャブロックのサイズが8×8及び4×Nのいずれかであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得する。
例4: 第2のプリセットサイズは8×8、4×N、8×16、又は16×8を含み(又は、であり)、ここで、Nは8以上である。換言すれば、この出願のこの実施形態において、BDOFは、サイズ8×8、4×N、8×16、及び16×8に対して使用されることが禁止される。この場合、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下として表現され得る:現在ピクチャブロックのサイズが8×8、4×N、8×16、及び16×8のうちのいずれか1つであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得する。
例5: 第2のプリセットサイズはN×8を含み(又は、であり)、ここで、Nは4以上である。換言すれば、この出願のこの実施形態において、BDOFは、サイズN×8に対して使用されることが禁止される。この場合、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下として表現され得る:現在ピクチャブロックのサイズがN×8であるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得する。
例6: 第2のプリセットサイズはN×8又は4×Nを含み(又は、であり)、ここで、Nは4以上である。換言すれば、この出願のこの実施形態において、BDOFは、サイズN×8又は4×Nに対して使用されることが禁止される。この場合、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下として表現され得る:現在ピクチャブロックのサイズがN×8又は4×Nであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得する。さらに、一部のシナリオでは、サイズM×4に対してもBDOFが使用されることが禁止されるので、この出願において、第2のプリセットサイズに対してBDOFが使用されることが禁止されるとき、BDOFは更に、Mは4以上の整数であるとして、サイズM×4に対して使用されることが禁止され得る。
理解され得ることには、前述のケースを参考にして、別のケースを更に得ることができ、別のケースもこの出願の保護範囲に入るものである。
理解されるべきことには、この出願のこの実施形態における方法は、ビデオエンコーダ、又は映像符号化機能を持つエレクトロニクス装置によって実行され得る。
前述の方法によれば、BDOF技術が使用されるときに様々なサイズの現在ピクチャブロックの特徴が十分に考慮される。現在ピクチャブロックのサイズが第2のプリセットサイズであるとき、現在ピクチャブロックの予測サンプル値は、BDOF技術以外の技術に従って決定される。これは、コーディングの複雑さを大幅に低減させるとともに、コーディング効率を向上させる。
オプションの一ソリューションにおいて、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で現在ピクチャブロックの予測サンプル値を決定することは、
第1リストに対応する参照サンプル値及び第2リストに対応する参照サンプル値において同じ位置を持つサンプル値に対して重み付け計算を実行して、現在ピクチャブロックの予測サンプル値を取得すること、又は
マージ・ウイズ・動きベクトル差MMVD技術に従って、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づく予測を通じて、現在ピクチャブロックの予測サンプル値を取得すること、又は
結合インター/イントラ予測CIIP技術に従って、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づく予測を通じて、現在ピクチャブロックの予測サンプル値を取得すること、
を含む。
この出願のこの実施形態において、重み付け計算方式、MMVD技術、CIIP技術、又は他の予測技術が具体的に使用されるかは、対応する条件を用いることによって決定されてもよいし、あるいは、対応する指示情報を用いることによって指し示されてもよい。
理解されるべきことには、BDOF技術は、現在ピクチャブロックの予測サンプル値を予測するための従来技術でのパッチ最適化技術と同等である。BDOF技術によれば、多くのシナリオにおいて、現在ピクチャブロックの実際のサンプル値にいっそう近い予測サンプル値を得ることができる。従って、その予測サンプル値に基づいて得られるサンプル残差はより小さいものとなり、それ故に、コーディング効率を向上させることができる。前述の重み付け計算方式は、現在ピクチャブロックの予測サンプル値を得るための従来技術とみなされてもよく、前述のMMVD技術及びCIIP技術は各々、従来技術でのパッチ最適化技術とみなされてもよい。この出願のこの実施形態において、現在ピクチャブロックのサイズが第2のプリセットサイズであるとき、現在ピクチャブロックの予測サンプル値は、BDOF技術ではなく、従来技術(例えば、重み付け計算方式)又は他のパッチ最適化技術(例えば、MMVD又はCIIP)に従って決定される。これは、コーディングの複雑さを大幅に低減させることができるとともに、コーディング効率を向上させることができる。
オプションの一ソリューションにおいて、当該方法は更に、
複数のプリセット条件が満足されるときに、現在ピクチャブロックに対して双方向オプティカルフローBDOF処理を実行して現在ピクチャブロックの予測サンプル値を取得することを含み、上記複数のプリセット条件は少なくとも、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することという条件を含む。
現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、且つ現在ピクチャブロックの幅Wと高さHとの積が64に等しいときに幅Wが高さHに等しくない、ことを含む。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、且つ現在ピクチャブロックの幅Wが8以上である、ことを含む(又は、である)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、現在ピクチャブロックの幅Wが8以上であり、且つ現在ピクチャブロックの幅Wと現在ピクチャブロックの高さHとの積が64よりも大きい、ことを含む(又は、である)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、現在ピクチャブロックの幅Wが8以上であり、且つ現在ピクチャブロックの幅Wと現在ピクチャブロックの高さHとの積が128よりも大きい、ことを含む(又は、である)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8よりも大きい、ことを含む。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8よりも大きく、且つ現在ピクチャブロックの幅Wが8以上である、ことを含む。
当該方法は更に、少なくとも現在ピクチャブロックの予測サンプル値に基づいて、現在ピクチャブロックを再構成することを含む。
具体的には、BDOF技術を有効にする又は使用するための、このソリューションにおける条件は、BDOF技術を有効にする又は使用するための、従来技術における条件とは異なり、特に、現在ピクチャブロックのサイズに関する要件が異なる。第1のプリセットサイズを持つ現在ピクチャブロックに対してBDOF技術を使用することで、元のサンプル値にいっそう近い予測サンプル値を得ることができ、また、コーディングの複雑さを適切に制御することができる。これは、符号化/復号の複雑さと予測精度とをある程度バランスさせ、それによりコーディング効率を向上させる。
なお、BDOF技術に従って、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて現在ピクチャブロックの現在サブブロックの予測サンプル値を決定する(又は予測を通じて取得する)かが決定される前に、現在ピクチャブロックのサイズに加えて、別の参照条件が存在してもよい。別の参照条件は、ここで限定されるものではない。理解を容易にするために、以下では、説明のための例を用いる。
条件A: 現在映像シーケンスに対してBDOF技術が使用されることが許されることを指し示すハイレベルシンタックス識別子sps_bdof_enabled_flagが存在する。
条件B: 第1リスト(List1)に対応する予測方向指示情報predFlagL0が1に等しく、且つ第2リスト(list0)に対応する予測方向指示情報predFlagL1が1に等しい。
条件C: 第1リスト(list0)に対応する参照フレームのピクチャオーダカウントPOC_L0、第2リスト(list1)に対応する参照フレームのピクチャオーダカウントPOC_L1、及びその中に現在ピクチャブロックが位置するピクチャのピクチャオーダカウントPOC_Curが、(POC_L0-POC_Cur)×(POC_L1-POC_Cur)<0という関係を満足する。換言すれば、現在ピクチャブロックを含むピクチャが、2つの参照ピクチャの間にある。
条件D: MotionModelIdc[xCb][yCb]が0に等しい。MotionModelIdcは、動き補償に関する動きモデルインデックスである。0に等しいMotionModelIdc[xCb][yCb]は、現在ブロックの動き補償のための動きモデルが並進運動(Translational motion)であることを指し示す。
条件E: merge_subblock_flag[x0][y0]が0に等しく、ここで、0に等しいmerge_subblock_flag[x0][y0]は、現在ピクチャブロックに対してサブブロックマージモードが適用されないことを指し示す。
条件F: sym_mvd_flag[x0][y0]が0に等しい。0に等しいsym_mvd_flag[x0][y0]は、現在ブロックに対してmvd_coding(x0,y0,refList,cpIdx)シンタックス構造が存在することを指し示す。
条件G: bcwIdx[xCb][yCb]が0に等しい。bcwIdxは、現在ピクチャブロックに対する双方向予測重みインデックスを示す。
条件H: cIdxが0に等しい。cIdxは、現在ピクチャブロックの色成分インデックスを表す。
条件I: 現在ピクチャブロックのサイズが第1のプリセットサイズである。
条件J: luma_weight_l0_flag[refIdxL0]及びluma_weight_l1_flag[refIdxL1]の両方が0に等しく、ここで、0に等しいluma_weight_l0_flagは、list0予測のluma成分に対する重み付け係数が存在しないことを指し示し、0に等しいluma_weight_l1_flagは、list1予測のluma成分に対する重み付け係数が存在しないことを指し示す。
例えば、条件A乃至Jの全てが満足されるとき、現在ピクチャブロックの予測サンプル値を予測するためにBDOF技術が使用され得ることが決定される。例えば、bdofFlagがtrueに設定される。なお、前述の条件は単なる例であり、別の条件が更に追加されたり、あるいは前述の条件のうちの1つ以上が置き換えられたり、あるいは前述の条件のうちの1つ以上が除去されたりしてもよい。
オプションの一ソリューションにおいて、シンタックス要素は、ターゲット候補動き情報のインデックス(例えば、merge_idx[xCb][yCb])を含み、ターゲット候補動き情報は、ターゲット候補動きベクトル、参照フレームインデックス、及び予測方向指示情報(例えば、predFlagL0=1及びpredFlagL1=1)を含み、予測方向指示情報は、双方向予測が適用されることを指し示すために使用され、ターゲット候補動きベクトルは、第1リスト(すなわち、list0)に対応する第1動きベクトル、及び第2リスト(すなわち、list1)に対応する第2動きベクトルを含み、参照フレームインデックスは、第1リストに対応する第1参照フレームのインデックス(例えば、refIdxL0)、及び第2リストに対応する第2参照フレームのインデックス(例えば、refIdxL1)を含む。
この出願のこの実施形態において、参照フレームインデックスは、指定された参照ピクチャリスト(第1リストlist0又は第2リストlist1)内の使用される動きベクトル(例えば、第1動きベクトル又は第2動きベクトル)に対応する参照ピクチャを特定するために使用される。ピクチャはフレームと称されることがあり、参照ピクチャは参照フレームと称されることがある。
映像コーディング分野において、インター予測モードは、前方予測、後方予測、及び双方向予測(前方予測及び後方予測を含む)を含み、エンコーダ側で使用される特定の予測モードは、通常、予測方向指示情報によって指し示される。例えば、予測方向指示情報は、シンタックス要素predFlagL0及びpredFlagL1を含み得る。predFlagL0=1且つpredFlagL1=1であるとき、予測方向指示情報は、双方向予測が適用されることを指し示す。predFlagL0=1且つpredFlagL1=0であるとき、予測方向指示情報は、前方予測が使用されることを指し示す。predFlagL0=0且つpredFlagL1=1であるとき、予測方向指示情報は、後方予測が使用されることを指し示す。理解され得ることには、“前方”及び“後方”は、それぞれ、現在ピクチャの参照ピクチャリスト0(list0、すなわち、前述の第1リスト)及び参照ピクチャリスト1(list1、すなわち、前述の第2リスト)に対応する。
オプションの一ソリューションにおいて、シンタックス要素は、第1インデックス、第2インデックス、予測方向指示情報、及び動きベクトル差MVDを含み、第1インデックス(例えば、mvp_lX_flag[xCb][yCb])は、ターゲット候補動きベクトル予測子を指し示すために使用され、ターゲット候補動きベクトル予測子は、第1リスト(例えば、list0)に対応する第1動きベクトル予測子、及び第2リスト(例えば、list1)に対応する第2動きベクトル予測子を含み、動きベクトル差MVDは、第1リストに対応する第1MVD、及び/又は第2リストに対応するMVDを含む(オプションで、MMVD技術が使用されるとき、1つのMVDのみが伝送されてもよく、別方向のものであってデコーダ側によって使用される必要があるMVDは、伝送されたMVDに基づいて導出され得る)。第2インデックス(これらは、参照フレームインデックスとも称される)は、現在ピクチャブロックの参照フレームを指し示すために使用され、参照フレームは、第1リストに対応する第1参照フレーム、及び第2リストに対応する第2参照フレームを含む。例えば、第2インデックスは、refIdxL0及びrefIdxL1であり、refIdxL0は、第1リストに対応する第1参照フレームのインデックスであり、refIdxL1は、第2リストに対応する第2参照フレームのインデックスである。予測方向指示情報(例えば、predFlagL0=1及びpredFlagL1=1)は、双方向予測が適用されることを指し示すために使用される。
第1リストに対応する第1動きベクトル(例えば、Mv0_L0)は、第1リストに対応する第1動きベクトル予測子(例えば、Mvp0_L0)と、第1リストに対応する第1MVD(例えば、MVD0)とに基づいて取得される。例えば、Mv0_L0=Mvp0_L0+MVD0である。
第2リストに対応する第2動きベクトル(例えば、Mv1_L1)は、第2リストに対応する第2動きベクトル予測子(例えば、Mvp1_L1)と、第2リストに対応する第2MVD(例えば、MVD1)とに基づいて取得される。例えば、Mv1_L1=Mvp1_L1+MVD1である。
映像コーディング分野において、インター予測モードは、前方予測、後方予測、及び双方向予測(前方予測及び後方予測を含む)を含み、エンコーダ側で使用される特定の予測モードは、通常、予測方向指示情報によって指し示される。例えば、予測方向指示情報は、シンタックス要素predFlagL0及びpredFlagL1を含み得る。predFlagL0=1且つpredFlagL1=1であるとき、予測方向指示情報は、双方向予測が適用されることを指し示す。predFlagL0=1且つpredFlagL1=0であるとき、予測方向指示情報は、前方予測が使用されることを指し示す。predFlagL0=0且つpredFlagL1=1であるとき、予測方向指示情報は、後方予測が使用されることを指し示す。理解され得ることには、“前方”及び“後方”は、それぞれ、現在ピクチャの参照ピクチャリスト0(list0、すなわち、前述の第1リスト)及び参照ピクチャリスト1(list1、すなわち、前述の第2リスト)に対応する。
オプションの一ソリューションにおいて、当該方法は更に、現在ピクチャブロックのサンプル値と現在ピクチャブロックの予測サンプル値とに基づいて、サンプル残差を決定することを含み、シンタックス要素を送信対象ビットストリームに符号化することは、シンタックス要素及びサンプル残差を送信対象ビットストリームに符号化することを含む。
第3態様によれば、この出願の一実施形態は、映像復号方法を提供し、当該方法は、
ビットストリームを解析してシンタックス要素を取得し、シンタックス要素は少なくとも、双方向予測が適用されることを指し示すために使用され、
複数のプリセット条件が満足されるときに、現在ピクチャブロックに対して双方向オプティカルフローBDOF(Bi-directional optical flow、略してBIO又はBDOF、あるいは、双方向オプティカルフロー(Bi-directional optical flow、BIO)又は予測精緻化・ウイズ・オプティカルフロー(prediction refinement with optical flow、PROF)と称される)処理を実行して現在ピクチャブロックの予測サンプル値を取得し、上記複数のプリセット条件は少なくとも、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することという条件を含む、
ことを含む。現在ピクチャブロックのサイズは、通常、幅及び高さ(短くW×Hと記載される)によって表され、幅及び高さは、サンプル(sample又はpixel)によって測定される。例えば、現在ピクチャブロックのサイズが8×8である場合、1つめの8は、現在ピクチャブロックの幅が8サンプルであることを示し、2つめの8は、現在ピクチャブロックの高さが8サンプルであることを示す。他の一例では、現在ピクチャブロックのサイズが8×16である場合、8は、現在ピクチャブロックの幅が8サンプルであることを示し、16は、現在ピクチャブロックの高さが16サンプルであることを示す。
現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、且つ現在ピクチャブロックの幅Wと高さHとの積が64に等しいときに幅Wが高さHに等しくない、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、且つ現在ピクチャブロックの幅Wが8以上である、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、現在ピクチャブロックの幅Wが8以上であり、且つ現在ピクチャブロックの幅Wと現在ピクチャブロックの高さHとの積が64よりも大きい、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、現在ピクチャブロックの幅Wが8以上であり、且つ現在ピクチャブロックの幅Wと現在ピクチャブロックの高さHとの積が128よりも大きい、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8よりも大きい、ことを含む。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8よりも大きく、且つ現在ピクチャブロックの幅Wが8以上である、ことを含む。
当該方法は更に、少なくとも現在ピクチャブロックの予測サンプル値に基づいて、現在ピクチャブロックのサンプル値を決定することを含み、現在ピクチャブロックの予測サンプル値は、1つ以上のサブブロックの予測サンプル値を含む。
なお、BDOF技術に従って、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて現在ピクチャブロックの現在サブブロックの予測サンプル値を決定する(又は予測を通じて取得する)かが決定される前に、現在ピクチャブロックのサイズに加えて、別の参照条件が存在してもよい。別の参照条件は、ここで限定されるものではない。理解を容易にするために、以下では、説明のための例を用いる。
条件A: 現在映像シーケンスに対してBDOF技術が使用されることが許されることを指し示すハイレベルシンタックス識別子sps_bdof_enabled_flagが存在する。
条件B: 第1リスト(List1)に対応する予測方向指示情報predFlagL0が1に等しく、且つ第2リスト(list0)に対応する予測方向指示情報predFlagL1が1に等しい。
条件C: 第1リスト(list0)に対応する参照フレームのピクチャオーダカウントPOC_L0、第2リスト(list1)に対応する参照フレームのピクチャオーダカウントPOC_L1、及びその中に現在ピクチャブロックが位置するピクチャのピクチャオーダカウントPOC_Curが、(POC_L0-POC_Cur)×(POC_L1-POC_Cur)<0という関係を満足する。換言すれば、現在ピクチャブロックを含むピクチャが、2つの参照ピクチャの間にある。
条件D: MotionModelIdc[xCb][yCb]が0に等しい。MotionModelIdcは、動き補償に関する動きモデルインデックスである。0に等しいMotionModelIdc[xCb][yCb]は、現在ブロックの動き補償のための動きモデルが並進運動(Translational motion)であることを指し示す。
条件E: merge_subblock_flag[x0][y0]が0に等しく、ここで、0に等しいmerge_subblock_flag[x0][y0]は、現在ピクチャブロックに対してサブブロックマージモードが適用されないことを指し示す。
条件F: sym_mvd_flag[x0][y0]が0に等しい。0に等しいsym_mvd_flag[x0][y0]は、現在ブロックに対してmvd_coding(x0,y0,refList,cpIdx)シンタックス構造が存在することを指し示す。
条件G: bcwIdx[xCb][yCb]が0に等しい。bcwIdxは、現在ピクチャブロックに対する双方向予測重みインデックスを示す。
条件H: cIdxが0に等しい。cIdxは、現在ピクチャブロックの色成分インデックスを表す。
条件I: 現在ピクチャブロックのサイズが第1のプリセットサイズである。
条件J: luma_weight_l0_flag[refIdxL0]及びluma_weight_l1_flag[refIdxL1]の両方が0に等しく、ここで、0に等しいluma_weight_l0_flagは、list0予測のluma成分に対する重み付け係数が存在しないことを指し示し、0に等しいluma_weight_l1_flagは、list1予測のluma成分に対する重み付け係数が存在しないことを指し示す。
例えば、条件A乃至Jの全てが満足されるとき、現在ピクチャブロックの予測サンプル値を予測するためにBDOF技術が使用され得ることが決定される。例えば、bdofFlagがtrueに設定される。なお、前述の条件は単なる例であり、別の条件が更に追加されたり、あるいは前述の条件のうちの1つ以上が置き換えられたり、あるいは前述の条件のうちの1つ以上が除去されたりしてもよい。
理解されるべきことには、ここでの現在ピクチャブロック(これは、現在ブロックとも称される)は、処理中のピクチャブロックとして理解され得る。例えば、復号プロセスにおいて、現在ピクチャブロックは、復号中のピクチャブロック(decoding block)である。
この出願のこの実施形態において、状態判定動作が更に含められてもよい。例えば、上記複数のプリセット条件が満足されているかが判定される。
理解され得ることには、前述のケースを参考にして、別のケースを更に得ることができ、別のケースもこの出願の保護範囲に入るものである。
理解されるべきことには、この出願のこの実施形態における方法は、ビデオデコーダ、又は映像復号機能を持つエレクトロニクス装置によって実行され得る。
具体的には、BDOF技術を有効にする又は使用するための、このソリューションにおける条件は、BDOF技術を有効にする又は使用するための、従来技術における条件とは異なり、特に、現在ピクチャブロックのサイズに関する要件が異なる。第1のプリセットサイズを持つ現在ピクチャブロックに対してBDOF技術を使用することで、元のサンプル値にいっそう近い予測サンプル値を得ることができ、また、コーディングの複雑さを適切に制御することができる。これは、符号化/復号の複雑さと予測精度とをある程度バランスさせ、それによりコーディング効率を向上させる。
オプションの一ソリューションにおいて、シンタックス要素は、ターゲット候補動き情報のインデックス(例えば、merge_idx[xCb][yCb])を含み、ターゲット候補動き情報は、ターゲット候補動きベクトル、参照フレームインデックス、及び予測方向指示情報(例えば、predFlagL0=1及びpredFlagL1=1)を含み、予測方向指示情報は、双方向予測が適用されることを指し示すために使用され、ターゲット候補動きベクトルは、第1リスト(すなわち、list0)に対応する第1動きベクトル、及び第2リスト(すなわち、list1)に対応する第2動きベクトルを含み、参照フレームインデックスは、第1リストに対応する第1参照フレームのインデックス(例えば、refIdxL0)、及び第2リストに対応する第2参照フレームのインデックス(例えば、refIdxL1)を含む。
この出願のこの実施形態において、参照フレームインデックスは、指定された参照ピクチャリスト(第1リストlist0又は第2リストlist1)内の使用される動きベクトル(例えば、第1動きベクトル又は第2動きベクトル)に対応する参照ピクチャを特定するために使用される。ピクチャはフレームと称されることがあり、参照ピクチャは参照フレームと称されることがある。
映像コーディング分野において、インター予測モードは、前方予測、後方予測、及び双方向予測(前方予測及び後方予測を含む)を含み、エンコーダ側で使用される特定の予測モードは、通常、予測方向指示情報によって指し示される。例えば、予測方向指示情報は、シンタックス要素predFlagL0及びpredFlagL1を含み得る。predFlagL0=1且つpredFlagL1=1であるとき、予測方向指示情報は、双方向予測が適用されることを指し示す。predFlagL0=1且つpredFlagL1=0であるとき、予測方向指示情報は、前方予測が使用されることを指し示す。predFlagL0=0且つpredFlagL1=1であるとき、予測方向指示情報は、後方予測が使用されることを指し示す。理解され得ることには、“前方”及び“後方”は、それぞれ、現在ピクチャの参照ピクチャリスト0(list0、すなわち、前述の第1リスト)及び参照ピクチャリスト1(list1、すなわち、前述の第2リスト)に対応する。
オプションの一ソリューションにおいて、シンタックス要素は、第1インデックス、第2インデックス、予測方向指示情報、及び動きベクトル差MVDを含み、第1インデックス(例えば、mvp_lX_flag[xCb][yCb])は、ターゲット候補動きベクトル予測子を指し示すために使用され、ターゲット候補動きベクトル予測子は、第1リスト(例えば、list0)に対応する第1動きベクトル予測子、及び第2リスト(例えば、list1)に対応する第2動きベクトル予測子を含み、動きベクトル差MVDは、第1リストに対応する第1MVD、及び/又は第2リストに対応するMVDを含む(例えば、1つのMVDのみが含まれるとき、伝送されないMVDは、伝送されたMVDに基づいて導出され得る)。第2インデックス(これらは、参照フレームインデックスとも称される)は、現在ピクチャブロックの参照フレームを指し示すために使用され、参照フレームは、第1リストに対応する第1参照フレーム、及び第2リストに対応する第2参照フレームを含む。例えば、第2インデックスは、refIdxL0及びrefIdxL1であり、refIdxL0は、第1リストに対応する第1参照フレームのインデックスであり、refIdxL1は、第2リストに対応する第2参照フレームのインデックスである。予測方向指示情報(例えば、predFlagL0=1及びpredFlagL1=1)は、双方向予測が適用されることを指し示すために使用される。
第1リストに対応する第1動きベクトル(例えば、Mv0_L0)が、第1リストに対応する第1動きベクトル予測子(例えば、Mvp0_L0)と、第1リストに対応する第1MVD(例えば、MVD0)とに基づいて取得される。例えば、Mv0_L0=Mvp0_L0+MVD0である。
第2リストに対応する第2動きベクトル(例えば、Mv1_L1)が、第2リストに対応する第2動きベクトル予測子(例えば、Mvp1_L1)と、第2リストに対応する第2MVD(例えば、MVD1)とに基づいて取得される。例えば、Mv1_L1=Mvp1_L1+MVD1である。
映像コーディング分野において、インター予測モードは、前方予測、後方予測、及び双方向予測(前方予測及び後方予測を含む)を含み、エンコーダ側で使用される特定の予測モードは、通常、予測方向指示情報によって指し示される。例えば、予測方向指示情報は、シンタックス要素predFlagL0及びpredFlagL1を含み得る。predFlagL0=1且つpredFlagL1=1であるとき、予測方向指示情報は、双方向予測が適用されることを指し示す。predFlagL0=1且つpredFlagL1=0であるとき、予測方向指示情報は、前方予測が使用されることを指し示す。predFlagL0=0且つpredFlagL1=1であるとき、予測方向指示情報は、後方予測が使用されることを指し示す。理解され得ることには、“前方”及び“後方”は、それぞれ、現在ピクチャの参照ピクチャリスト0(list0、すなわち、前述の第1リスト)及び参照ピクチャリスト1(list1、すなわち、前述の第2リスト)に対応する。
オプションの一ソリューションにおいて、ビットストリームを解析してシンタックス要素を取得することは、ビットストリームを解析して、サンプル残差とシンタックス要素とを取得することを含み、少なくとも現在ピクチャブロックの予測サンプル値に基づいて、現在ピクチャブロックのサンプル値を決定することは、サンプル残差と現在ピクチャブロックの予測サンプル値に基づいて、現在ピクチャブロックのサンプル値を決定することを含む。
第4態様によれば、この出願の一実施形態は、復号方法を提供し、当該方法は、
ビットストリームを解析してシンタックス要素を取得し、シンタックス要素は少なくとも、双方向予測が適用されることを指し示すために使用され、
現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リスト(すなわち、list0)に対応する参照サンプル値と第2リスト(すなわち、list1)に対応する参照サンプル値とに基づいて、第1の処理方式で現在ピクチャブロックの予測サンプル値(例えば、現在コーディングユニットの予測サンプル)を決定し(又は予測を通じて取得し)、第1の処理方式は、BDOF(あるいは、双方向オプティカルフロー(Bi-directional optical flow、BIO)又は予測精緻化・ウイズ・オプティカルフロー(prediction refinement with optical flow、PROF)と称される)ではない、ことを含む。換言すれば、現在ピクチャブロックのサイズが第2のプリセットサイズであるとき、第1リストに対応する参照サンプル値及び第2リストに対応する参照サンプル値に基づいて現在ピクチャブロックの予測サンプル値を決定するためにBDOFを使用することは許されない。現在ピクチャブロックのサイズは、通常、幅及び高さ(短くW×Hと記載される)によって表され、幅及び高さは、サンプル(sample又はpixel)によって測定される。第2のプリセットサイズは、8×8(1つめの8は、現在ピクチャブロックの幅が8サンプルであることを示し、2つめの8は、現在ピクチャブロックの高さが8サンプルであることを示す)、4×N(4は、現在ピクチャブロックの幅が4サンプルであることを示し、Nは、現在ピクチャブロックの高さがNサンプルであることを示し、類推によって他のサイズが推定される)、8×16、又は16×8を含む。Nは2のべき乗であり、且つ8以上である。例えば、Nの値は、16、32、64などとし得る。
この出願のこの実施形態において、第1リストに対応する参照サンプル値、及び第2リストに対応する参照サンプル値は、それぞれ、第1リスト(すなわち、list0)に対応する第1動きベクトル(例えば、Mv0_L0)、及び第2リスト(すなわち、list1)に対応する第2動きベクトル(例えば、Mv1_L1)に基づく予測を通じて取得される。例えば、第1リスト(すなわち、list0)に対応する参照サンプル値は、第1のリスト(すなわち、list0)に対応する第1動きベクトル(例えば、Mv0_L0)に基づいて決定されることができ、第2リスト(すなわち、list1)に対応する参照サンプル値は、第2リスト(すなわち、list1)に対応する第2動きベクトル(例えば、Mv1_L1)に基づいて決定されることができる。
当該方法は更に、少なくとも現在ピクチャブロックの予測サンプル値に基づいて、現在ピクチャブロックのサンプル値を決定することを含む。
理解されるべきことには、ここでの現在ピクチャブロック(これは、現在ブロックとも称される)は、処理中のピクチャブロックとして理解され得る。例えば、復号プロセスにおいて、現在ピクチャブロックは、復号中のピクチャブロック(decoding block)である。
また、第2のプリセットサイズが8×8、4×N、8×16、又は16×8を含む前述のケースは、第2のプリセットサイズが8×8、4×N、8×16、又は16×8であることに限られることもできる。換言すれば、BDOFは、上に列挙された8×8、4×N、8×16、及び16×8なるサイズのうちの1つに対して使用されることが禁止され、あるいは、これらのうちの複数のサイズに対して使用されることが禁止されてもよい。以下では、説明のための例を用いる。
例1: 第2のプリセットサイズは8×8を含む(又は、である)。換言すれば、この出願のこの実施形態において、BDOFは、サイズ8×8に対して使用されることが禁止される。この場合、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下として表現され得る:現在ピクチャブロックのサイズが8×8であるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得する。
例2:第2のプリセットサイズは4×Nを含む(又は、である)。換言すれば、この出願のこの実施形態において、BDOFは、サイズ4×Nに対して使用されることが禁止される。この場合、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下として表現され得る:Nは8以上であるとして、現在ピクチャブロックのサイズが4×Nであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得する。
例3: 第2のプリセットサイズは8×8又は4×Nを含む(又は、である)。換言すれば、この出願のこの実施形態において、BDOFは、サイズ8×8及び4×Nに対して使用されることが禁止される。この場合、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下として表現され得る:Nは8以上であるとして、現在ピクチャブロックのサイズが8×8及び4×Nのいずれかであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得する。
例4: 第2のプリセットサイズは8×8、4×N、8×16、又は16×8を含み(又は、であり)、ここで、Nは8以上である。換言すれば、この出願のこの実施形態において、BDOFは、サイズ8×8、4×N、8×16、及び16×8に対して使用されることが禁止される。この場合、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下として表現され得る:Nは8以上であるとして、現在ピクチャブロックのサイズが8×8、4×N、8×16、及び16×8のうちのいずれか1つであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得する。
例5: 第2のプリセットサイズはN×8を含み(又は、であり)、ここで、Nは4以上である。換言すれば、この出願のこの実施形態において、BDOFは、サイズN×8に対して使用されることが禁止される。この場合、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下として表現され得る:現在ピクチャブロックのサイズがN×8であるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得する。
例6: 第2のプリセットサイズはN×8又は4×Nを含み(又は、であり)、ここで、Nは4以上である。換言すれば、この出願のこの実施形態において、BDOFは、サイズN×8又は4×Nに対して使用されることが禁止される。この場合、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下として表現され得る:現在ピクチャブロックのサイズがN×8又は4×Nであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得する。
さらに、一部のシナリオでは、サイズM×4に対してもBDOFが使用されることが禁止されるので、この出願において、第2のプリセットサイズに対してBDOFが使用されることが禁止されるとき、BDOFは更に、Mは4以上の整数であるとして、サイズM×4に対して使用されることが禁止され得る。
理解され得ることには、前述のケースを参考にして、別のケースを更に得ることができ、別のケースもこの出願の保護範囲に入るものである。
理解されるべきことには、この出願のこの実施形態における方法は、ビデオデコーダ、又は映像復号機能を持つエレクトロニクス装置によって実行され得る。
前述の方法によれば、BDOF技術が使用されるときに様々なサイズの現在ピクチャブロックの特徴が十分に考慮される。現在ピクチャブロックのサイズが第2のプリセットサイズであるとき、現在ピクチャブロックの予測サンプル値は、BDOF技術以外の技術に従って決定される。これは、コーディングの複雑さを大幅に低減させるとともに、コーディング効率を向上させる。
オプションの一ソリューションにおいて、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、
第1リストに対応する参照サンプル値及び第2リストに対応する参照サンプル値において同じ位置を持つサンプル値に対して重み付け計算を実行して、現在ピクチャブロックの予測サンプル値を取得すること、又は
マージ・ウイズ・動きベクトル差MMVD技術に従って、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づく予測を通じて、現在ピクチャブロックの予測サンプル値を取得すること、又は
結合インター/イントラ予測CIIP技術に従って、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づく予測を通じて、現在ピクチャブロックの予測サンプル値を取得すること、又は
デコーダ側動きベクトル精緻化DMVR技術に従って、第1リストに対応する参照サンプルと第2リストに対応する参照サンプルとに基づく予測を通じて、現在ピクチャブロックの予測サンプル値を取得すること、
を含む。
この出願のこの実施形態において、重み付け計算方式、MMVD技術、又はCIIP技術が具体的に使用されるかは、対応する条件を用いることによって決定されてもよいし、あるいは、対応する指示情報を用いることによって指し示されてもよい。
理解されるべきことには、BDOF技術は、現在ピクチャブロックの予測サンプル値を予測するための従来技術でのパッチ最適化技術と同等である。BDOF技術によれば、多くのシナリオにおいて、現在ピクチャブロックの実際のサンプル値にいっそう近い予測サンプル値を得ることができる。従って、その予測サンプル値に基づいて得られるサンプル残差はより小さいものとなり、それ故に、コーディング効率を向上させることができる。従って、BDOF技術は、通常、エンコーダ側で使用される。より正確に予測サンプル値を復元するために、BDOF技術は対応してデコーダ側でも使用される。前述の重み付け計算方式は、現在ピクチャブロックの予測サンプル値を得るための従来技術とみなされてもよく、前述のMMVD技術、CIIP技術、及びDMVR技術は各々、従来技術でのパッチ最適化技術とみなされてもよい。この出願のこの実施形態において、現在ピクチャブロックのサイズが第2のプリセットサイズであるとき、現在ピクチャブロックの予測サンプル値は、BDOF技術ではなく、従来技術(例えば、重み付け計算方式)又は他のパッチ最適化技術(例えば、MMVD、CIIP、又はDMVR)に従って決定される。これは、復号の複雑さを大幅に低減させることができるとともに、復号効率を向上させることができる。
オプションの一ソリューションにおいて、当該方法は更に、
複数のプリセット条件が満足されるときに、現在ピクチャブロックに対して双方向オプティカルフローBDOF処理を実行して現在ピクチャブロックの予測サンプル値を取得することを含み、上記複数のプリセット条件は少なくとも、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することという条件を含む。
現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、且つ現在ピクチャブロックの幅Wと高さHとの積が64に等しいときに幅Wが高さHに等しくない、ことを含む(又は、である)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、且つ現在ピクチャブロックの幅Wが8以上である、ことを含む(又は、である)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、現在ピクチャブロックの幅Wが8以上であり、且つ現在ピクチャブロックの幅Wと現在ピクチャブロックの高さHとの積が64よりも大きい、ことを含む(又は、である)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、現在ピクチャブロックの幅Wが8以上であり、且つ現在ピクチャブロックの幅Wと現在ピクチャブロックの高さHとの積が128よりも大きい、ことを含む(又は、である)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8よりも大きい、ことを含む。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8よりも大きく、且つ現在ピクチャブロックの幅Wが8以上である、ことを含む。
当該方法は更に、少なくとも現在ピクチャブロックの予測サンプル値に基づいて、現在ピクチャブロックを再構成することを含む。
具体的には、BDOF技術を有効にする又は使用するための、このソリューションにおける条件は、BDOF技術を有効にする又は使用するための、従来技術における条件とは異なり、特に、現在ピクチャブロックのサイズに関する要件が異なる。第1のプリセットサイズを持つ現在ピクチャブロックに対してBDOF技術を使用することで、元のサンプル値にいっそう近い予測サンプル値を得ることができ、また、コーディングの複雑さを適切に制御することができる。これは、符号化/復号の複雑さと予測精度とをある程度バランスさせ、それによりコーディング効率を向上させる。
なお、BDOF技術に従って、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて現在ピクチャブロックの現在サブブロックの予測サンプル値を決定する(又は予測を通じて取得する)かが決定される前に、現在ピクチャブロックのサイズに加えて、別の参照条件が存在してもよい。別の参照条件は、ここで限定されるものではない。理解を容易にするために、以下では、説明のための例を用いる。
条件A: 現在映像シーケンスに対してBDOF技術が使用されることが許されることを指し示すハイレベルシンタックス識別子sps_bdof_enabled_flagが存在する。
条件B: 第1リスト(List1)に対応する予測方向指示情報predFlagL0が1に等しく、且つ第2リスト(list0)に対応する予測方向指示情報predFlagL1が1に等しい。
条件C: 第1リスト(list0)に対応する参照フレームのピクチャオーダカウントPOC_L0、第2リスト(list1)に対応する参照フレームのピクチャオーダカウントPOC_L1、及びその中に現在ピクチャブロックが位置するピクチャのピクチャオーダカウントPOC_Curが、(POC_L0-POC_Cur)×(POC_L1-POC_Cur)<0という関係を満足する。換言すれば、現在ピクチャブロックを含むピクチャが、2つの参照ピクチャの間にある。
条件D: MotionModelIdc[xCb][yCb]が0に等しい。MotionModelIdcは、動き補償に関する動きモデルインデックスである。0に等しいMotionModelIdc[xCb][yCb]は、現在ブロックの動き補償のための動きモデルが並進運動(Translational motion)であることを指し示す。
条件E: merge_subblock_flag[x0][y0]が0に等しく、ここで、0に等しいmerge_subblock_flag[x0][y0]は、現在ピクチャブロックに対してサブブロックマージモードが適用されないことを指し示す。
条件F: sym_mvd_flag[x0][y0]が0に等しい。0に等しいsym_mvd_flag[x0][y0]は、現在ブロックに対してmvd_coding(x0,y0,refList,cpIdx)シンタックス構造が存在することを指し示す。
条件G: bcwIdx[xCb][yCb]が0に等しい。bcwIdxは、現在ピクチャブロックに対する双方向予測重みインデックスを示す。
条件H: cIdxが0に等しい。cIdxは、現在ピクチャブロックの色成分インデックスを表す。
条件I: 現在ピクチャブロックのサイズが第1のプリセットサイズである。
条件J: luma_weight_l0_flag[refIdxL0]及びluma_weight_l1_flag[refIdxL1]の両方が0に等しく、ここで、0に等しいluma_weight_l0_flagは、list0予測のluma成分に対する重み付け係数が存在しないことを指し示し、0に等しいluma_weight_l1_flagは、list1予測のluma成分に対する重み付け係数が存在しないことを指し示す。
例えば、条件A乃至Jの全てが満足されるとき、現在ピクチャブロックの予測サンプル値を予測するためにBDOF技術が使用され得ることが決定される。例えば、bdofFlagがtrueに設定される。なお、前述の条件は単なる例であり、別の条件が更に追加されたり、あるいは前述の条件のうちの1つ以上が置き換えられたり、あるいは前述の条件のうちの1つ以上が除去されたりしてもよい。
オプションの一ソリューションにおいて、シンタックス要素は、ターゲット候補動き情報のインデックス(例えば、merge_idx[xCb][yCb])を含み、ターゲット候補動き情報は、ターゲット候補動きベクトル、参照フレームインデックス、及び予測方向指示情報(例えば、predFlagL0=1及びpredFlagL1=1)を含み、予測方向指示情報は、双方向予測が適用されることを指し示すために使用され、ターゲット候補動きベクトルは、第1リスト(すなわち、list0)に対応する第1動きベクトル、及び第2リスト(すなわち、list1)に対応する第2動きベクトルを含み、参照フレームインデックスは、第1リストに対応する第1参照フレームのインデックス(例えば、refIdxL0)、及び第2リストに対応する第2参照フレームのインデックス(例えば、refIdxL1)を含む。
この出願のこの実施形態において、参照フレームインデックスは、指定された参照ピクチャリスト(第1リストlist0又は第2リストlist1)内の使用される動きベクトル(例えば、第1動きベクトル又は第2動きベクトル)に対応する参照ピクチャを特定するために使用される。ピクチャはフレームと称されることがあり、参照ピクチャは参照フレームと称されることがある。
映像コーディング分野において、インター予測モードは、前方予測、後方予測、及び双方向予測(前方予測及び後方予測を含む)を含み、エンコーダ側で使用される特定の予測モードは、通常、予測方向指示情報によって指し示される。例えば、予測方向指示情報は、シンタックス要素predFlagL0及びpredFlagL1を含み得る。predFlagL0=1且つpredFlagL1=1であるとき、予測方向指示情報は、双方向予測が適用されることを指し示す。predFlagL0=1且つpredFlagL1=0であるとき、予測方向指示情報は、前方予測が使用されることを指し示す。predFlagL0=0且つpredFlagL1=1であるとき、予測方向指示情報は、後方予測が使用されることを指し示す。理解され得ることには、“前方”及び“後方”は、それぞれ、現在ピクチャの参照ピクチャリスト0(list0、すなわち、前述の第1リスト)及び参照ピクチャリスト1(list1、すなわち、前述の第2リスト)に対応する。
オプションの一ソリューションにおいて、シンタックス要素は、第1インデックス、第2インデックス、予測方向指示情報、及び動きベクトル差MVDを含み、第1インデックス(例えば、mvp_lX_flag[xCb][yCb])は、ターゲット候補動きベクトル予測子を指し示すために使用され、ターゲット候補動きベクトル予測子は、第1リスト(例えば、list0)に対応する第1動きベクトル予測子、及び第2リスト(例えば、list1)に対応する第2動きベクトル予測子を含み、動きベクトル差MVDは、第1リストに対応する第1MVD、及び/又は第2リストに対応するMVDを含む(オプションで、MMVD技術が使用されるとき、1つのMVDのみが伝送されてもよく、別方向のものであってデコーダ側によって使用される必要があるMVDは、伝送されたMVDに基づいて導出され得る)。第2インデックス(これらは、参照フレームインデックスとも称される)は、現在ピクチャブロックの参照フレームを指し示すために使用され、参照フレームは、第1リストに対応する第1参照フレーム、及び第2リストに対応する第2参照フレームを含む。例えば、第2インデックスは、refIdxL0及びrefIdxL1であり、refIdxL0は、第1リストに対応する第1参照フレームのインデックスであり、refIdxL1は、第2リストに対応する第2参照フレームのインデックスである。予測方向指示情報(例えば、predFlagL0=1及びpredFlagL1=1)は、双方向予測が適用されることを指し示すために使用される。
第1リストに対応する第1動きベクトル(例えば、Mv0_L0)は、第1リストに対応する第1動きベクトル予測子(例えば、Mvp0_L0)と、第1リストに対応する第1MVD(例えば、MVD0)とに基づいて取得される。例えば、Mv0_L0=Mvp0_L0+MVD0である。
第2リストに対応する第2動きベクトル(例えば、Mv1_L1)は、第2リストに対応する第2動きベクトル予測子(例えば、Mvp1_L1)と、第2リストに対応する第2MVD(例えば、MVD1)とに基づいて取得される。例えば、Mv1_L1=Mvp1_L1+MVD1である。
映像コーディング分野において、インター予測モードは、前方予測、後方予測、及び双方向予測(前方予測及び後方予測を含む)を含み、エンコーダ側で使用される特定の予測モードは、通常、予測方向指示情報によって指し示される。例えば、予測方向指示情報は、シンタックス要素predFlagL0及びpredFlagL1を含み得る。predFlagL0=1且つpredFlagL1=1であるとき、予測方向指示情報は、双方向予測が適用されることを指し示す。predFlagL0=1且つpredFlagL1=0であるとき、予測方向指示情報は、前方予測が使用されることを指し示す。predFlagL0=0且つpredFlagL1=1であるとき、予測方向指示情報は、後方予測が使用されることを指し示す。理解され得ることには、“前方”及び“後方”は、それぞれ、現在ピクチャの参照ピクチャリスト0(list0、すなわち、前述の第1リスト)及び参照ピクチャリスト1(list1、すなわち、前述の第2リスト)に対応する。
オプションの一ソリューションにおいて、ビットストリームを解析してシンタックス要素を取得することは、ビットストリームを解析して、サンプル残差とシンタックス要素とを取得することを含み、少なくとも現在ピクチャブロックの予測サンプル値に基づいて、現在ピクチャブロックのサンプル値を決定することは、サンプル残差と現在ピクチャブロックの予測サンプル値に基づいて、現在ピクチャブロックのサンプル値を決定することを含む。
第5態様によれば、この出願の一実施形態は、インター予測方法を提供し、当該方法は、
現在ピクチャブロックが複数のプリセット条件を満足するかを判定し、
上記複数のプリセット条件が満足されるときに、現在ピクチャブロックに対して双方向オプティカルフローBDOF(Bi-directional optical flow、略してBIO又はBDOF)処理を実行して現在ピクチャブロックの予測サンプル値を取得し、上記複数のプリセット条件は少なくとも、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することという条件を含む、ことを含む。現在ピクチャブロックのサイズは、通常、幅及び高さ(短くW×Hと記載される)によって表され、幅及び高さは、サンプル(sample又はpixel)によって測定される。例えば、現在ピクチャブロックのサイズが8×8である場合、1つめの8は、現在ピクチャブロックの幅が8サンプルであることを示し、2つめの8は、現在ピクチャブロックの高さが8サンプルであることを示す。他の一例では、現在ピクチャブロックのサイズが8×16である場合、8は、現在ピクチャブロックの幅が8サンプルであることを示し、16は、現在ピクチャブロックの高さが16サンプルであることを示す。
現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、且つ現在ピクチャブロックの幅Wと高さHとの積が64に等しいときに幅Wが高さHに等しくない、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、且つ現在ピクチャブロックの幅Wが8以上である、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、現在ピクチャブロックの幅Wが8以上であり、且つ現在ピクチャブロックの幅Wと現在ピクチャブロックの高さHとの積が64よりも大きい、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、現在ピクチャブロックの幅Wが8以上であり、且つ現在ピクチャブロックの幅Wと現在ピクチャブロックの高さHとの積が128よりも大きい、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8よりも大きい、ことを含む。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8よりも大きく、且つ現在ピクチャブロックの幅Wが8以上である、ことを含む。
なお、BDOF技術に従って、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて現在ピクチャブロックの現在サブブロックの予測サンプル値を決定する(又は予測を通じて取得する)かが決定される前に、現在ピクチャブロックのサイズに加えて、別の参照条件が存在してもよい。別の参照条件は、ここで限定されるものではない。理解を容易にするために、以下では、説明のための例を用いる。
条件A: 現在映像シーケンスに対してBDOF技術が使用されることが許されることを指し示すハイレベルシンタックス識別子sps_bdof_enabled_flagが存在する。
条件B: 第1リスト(List1)に対応する予測方向指示情報predFlagL0が1に等しく、且つ第2リスト(list0)に対応する予測方向指示情報predFlagL1が1に等しい。
条件C: 第1リスト(list0)に対応する参照フレームのピクチャオーダカウントPOC_L0、第2リスト(list1)に対応する参照フレームのピクチャオーダカウントPOC_L1、及びその中に現在ピクチャブロックが位置するピクチャのピクチャオーダカウントPOC_Curが、(POC_L0-POC_Cur)×(POC_L1-POC_Cur)<0という関係を満足する。換言すれば、現在ピクチャブロックを含むピクチャが、2つの参照ピクチャの間にある。
条件D: MotionModelIdc[xCb][yCb]が0に等しい。MotionModelIdcは、動き補償に関する動きモデルインデックスである。0に等しいMotionModelIdc[xCb][yCb]は、現在ブロックの動き補償のための動きモデルが並進運動(Translational motion)であることを指し示す。
条件E: merge_subblock_flag[x0][y0]が0に等しく、ここで、0に等しいmerge_subblock_flag[x0][y0]は、現在ピクチャブロックに対してサブブロックマージモードが適用されないことを指し示す。
条件F: sym_mvd_flag[x0][y0]が0に等しい。0に等しいsym_mvd_flag[x0][y0]は、現在ブロックに対してmvd_coding(x0,y0,refList,cpIdx)シンタックス構造が存在することを指し示す。
条件G: bcwIdx[xCb][yCb]が0に等しい。bcwIdxは、現在ピクチャブロックに対する双方向予測重みインデックスを示す。
条件H: cIdxが0に等しい。cIdxは、現在ピクチャブロックの色成分インデックスを表す。
条件I: 現在ピクチャブロックのサイズが第1のプリセットサイズである。
条件J: luma_weight_l0_flag[refIdxL0]及びluma_weight_l1_flag[refIdxL1]の両方が0に等しく、ここで、0に等しいluma_weight_l0_flagは、list0予測のluma成分に対する重み付け係数が存在しないことを指し示し、0に等しいluma_weight_l1_flagは、list1予測のluma成分に対する重み付け係数が存在しないことを指し示す。
例えば、条件A乃至Jの全てが満足されるとき、現在ピクチャブロックの予測サンプル値を予測するためにBDOF技術が使用され得ることが決定される。例えば、bdofFlagがtrueに設定される。なお、前述の条件は単なる例であり、別の条件が更に追加されたり、あるいは前述の条件のうちの1つ以上が置き換えられたり、あるいは前述の条件のうちの1つ以上が除去されたりしてもよい。
理解されるべきことには、ここでの現在ピクチャブロック(これは、現在ブロックとも称される)は、処理中のピクチャブロックとして理解され得る。例えば、符号化プロセスにおいて、現在ピクチャブロックは、符号化中のピクチャブロック(encoding block)である。確かなことには、ここでの現在ピクチャブロックは代わりに、処理中のピクチャブロックとして理解されてもよい。例えば、復号プロセスにおいて、現在ピクチャブロックは、復号中のピクチャブロック(decoding block)である。
オプションの一ソリューションにおいて、当該方法は更に、上記複数のプリセット条件のうちの少なくとも1つが満足されないときに、現在ピクチャブロックに対して双方向オプティカルフローBDOF(Bi-directional optical flow、略してBIO又はBDOF)処理を実行することをスキップすることを含む。具体的には、現在ピクチャブロックの予測サンプル値は、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて第1の処理方式で予測を通じて取得され得る。第1の処理方式はBDOFではない。詳細については、この明細書中の関連部分を参照されたい。詳細をここで再び説明することはしない。
理解され得ることには、前述のケースを参考にして、別のケースを更に得ることができ、別のケースもこの出願の保護範囲に入るものである。
理解されるべきことには、この出願のこの実施形態における方法は、ビデオエンコーダ、又は映像符号化機能を持つエレクトロニクス装置によって実行されることができ、あるいは、ビデオデコーダ、又は映像復号機能を持つエレクトロニクス装置によって実行されることができる。例えば、当該方法は具体的に、これらの装置内のインター予測ユニットによって実行され得る。
具体的には、BDOF技術を有効にする又は使用するための、このソリューションにおける条件は、BDOF技術を有効にする又は使用するための、従来技術における条件とは異なり、特に、現在ピクチャブロックのサイズに関する要件が異なる。第1のプリセットサイズを持つ現在ピクチャブロックに対してBDOF技術を使用することで、元のサンプル値にいっそう近い予測サンプル値を得ることができ、また、コーディングの複雑さを適切に制御することができる。これは、符号化/復号の複雑さと予測精度とをある程度バランスさせ、それによりコーディング効率を向上させる。
第6態様によれば、この出願の一実施形態は、映像符号化装置を提供し、当該符号化装置は、インター予測ユニット、再構成ユニット、及びエントロピー符号化ユニットを含む。
インター予測ユニットは、複数のプリセット条件が満足されるときに、現在ピクチャブロックに対して双方向オプティカルフローBDOF(Bi-directional optical flow、略してBIO又はBDOF、あるいは予測精緻化・ウイズ・オプティカルフロー(prediction refinement with optical flow、PROF)と称される)処理を実行して現在ピクチャブロックの予測サンプル値を取得するように構成され、上記複数のプリセット条件は少なくとも、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することという条件を含む。現在ピクチャブロックのサイズは、通常、幅及び高さ(短くW×Hと記載される)によって表され、幅及び高さは、サンプル(sample又はpixel)によって測定される。例えば、現在ピクチャブロックのサイズが8×8である場合、1つめの8は、現在ピクチャブロックの幅が8サンプルであることを示し、2つめの8は、現在ピクチャブロックの高さが8サンプルであることを示す。他の一例では、現在ピクチャブロックのサイズが8×16である場合、8は、現在ピクチャブロックの幅が8サンプルであることを示し、16は、現在ピクチャブロックの高さが16サンプルであることを示す。
現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、且つ現在ピクチャブロックの幅Wと高さHとの積が64に等しいときに幅Wが高さHに等しくない、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、且つ現在ピクチャブロックの幅Wが8以上である、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、現在ピクチャブロックの幅Wが8以上であり、且つ現在ピクチャブロックの幅Wと現在ピクチャブロックの高さHとの積が64よりも大きい、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、現在ピクチャブロックの幅Wが8以上であり、且つ現在ピクチャブロックの幅Wと現在ピクチャブロックの高さHとの積が128よりも大きい、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8よりも大きい、ことを含む。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8よりも大きく、且つ現在ピクチャブロックの幅Wが8以上である、ことを含む。
再構成ユニットは、少なくとも現在ピクチャブロックの予測サンプル値に基づいて、現在ピクチャブロックを再構成するように構成される。
エントロピー符号化ユニットは、シンタックス要素を送信対象ビットストリームに符号化するように構成され、シンタックス要素は少なくとも、双方向予測が適用されることを指し示すために使用される。
なお、BDOF技術に従って、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて現在ピクチャブロックの現在サブブロックの予測サンプル値を決定する(又は予測を通じて取得する)かが決定される前に、現在ピクチャブロックのサイズに加えて、別の参照条件が存在してもよい。別の参照条件は、ここで限定されるものではない。理解を容易にするために、以下では、説明のための例を用いる。
条件A: 現在映像シーケンスに対してBDOF技術が使用されることが許されることを指し示すハイレベルシンタックス識別子sps_bdof_enabled_flagが存在する。
条件B: 第1リスト(List1)に対応する予測方向指示情報predFlagL0が1に等しく、且つ第2リスト(list0)に対応する予測方向指示情報predFlagL1が1に等しい。
条件C: 第1リスト(list0)に対応する参照フレームのピクチャオーダカウントPOC_L0、第2リスト(list1)に対応する参照フレームのピクチャオーダカウントPOC_L1、及びその中に現在ピクチャブロックが位置するピクチャのピクチャオーダカウントPOC_Curが、(POC_L0-POC_Cur)×(POC_L1-POC_Cur)<0という関係を満足する。換言すれば、現在ピクチャブロックを含むピクチャが、2つの参照ピクチャの間にある。
条件D: MotionModelIdc[xCb][yCb]が0に等しい。MotionModelIdcは、動き補償に関する動きモデルインデックスである。0に等しいMotionModelIdc[xCb][yCb]は、現在ブロックの動き補償のための動きモデルが並進運動(Translational motion)であることを指し示す。
条件E: merge_subblock_flag[x0][y0]が0に等しく、ここで、0に等しいmerge_subblock_flag[x0][y0]は、現在ピクチャブロックに対してサブブロックマージモードが適用されないことを指し示す。
条件F: sym_mvd_flag[x0][y0]が0に等しい。0に等しいsym_mvd_flag[x0][y0]は、現在ブロックに対してmvd_coding(x0,y0,refList,cpIdx)シンタックス構造が存在することを指し示す。
条件G: bcwIdx[xCb][yCb]が0に等しい。bcwIdxは、現在ピクチャブロックに対する双方向予測重みインデックスを示す。
条件H: cIdxが0に等しい。cIdxは、現在ピクチャブロックの色成分インデックスを表す。
条件I: 現在ピクチャブロックのサイズが第1のプリセットサイズである。
条件J: luma_weight_l0_flag[refIdxL0]及びluma_weight_l1_flag[refIdxL1]の両方が0に等しく、ここで、0に等しいluma_weight_l0_flagは、list0予測のluma成分に対する重み付け係数が存在しないことを指し示し、0に等しいluma_weight_l1_flagは、list1予測のluma成分に対する重み付け係数が存在しないことを指し示す。
例えば、条件A乃至Jの全てが満足されるとき、現在ピクチャブロックの予測サンプル値を予測するためにBDOF技術が使用され得ることが決定される。例えば、bdofFlagがtrueに設定される。なお、前述の条件は単なる例であり、別の条件が更に追加されたり、あるいは前述の条件のうちの1つ以上が置き換えられたり、あるいは前述の条件のうちの1つ以上が除去されたりしてもよい。
理解されるべきことには、ここでの現在ピクチャブロック(これは、現在ブロックとも称される)は、処理中のピクチャブロックとして理解され得る。例えば、符号化プロセスにおいて、現在ピクチャブロックは、符号化中のピクチャブロック(encoding block)である。
この出願のこの実施形態において、状態判定動作が更に含められてもよい。例えば、インター予測ユニットは更に、上記複数のプリセット条件が満足されているかを判定するように構成される。
理解され得ることには、前述のケースを参考にして、別のケースを更に得ることができ、別のケースもこの出願の保護範囲に入るものである。
具体的には、BDOF技術を有効にする又は使用するための、このソリューションにおける条件は、BDOF技術を有効にする又は使用するための、従来技術における条件とは異なり、特に、現在ピクチャブロックのサイズに関する要件が異なる。第1のプリセットサイズを持つ現在ピクチャブロックに対してBDOF技術を使用することで、元のサンプル値にいっそう近い予測サンプル値を得ることができ、また、コーディングの複雑さを適切に制御することができる。これは、符号化/復号の複雑さと予測精度とをある程度バランスさせ、それによりコーディング効率を向上させる。
オプションの一ソリューションにおいて、シンタックス要素は、ターゲット候補動き情報のインデックス(例えば、merge_idx[xCb][yCb])を含み、ターゲット候補動き情報は、ターゲット候補動きベクトル、参照フレームインデックス、及び予測方向指示情報(例えば、predFlagL0=1及びpredFlagL1=1)を含み、予測方向指示情報は、双方向予測が適用されることを指し示すために使用され、ターゲット候補動きベクトルは、第1リスト(すなわち、list0)に対応する第1動きベクトル、及び第2リスト(すなわち、list1)に対応する第2動きベクトルを含み、参照フレームインデックスは、第1リストに対応する第1参照フレームのインデックス(例えば、refIdxL0)、及び第2リストに対応する第2参照フレームのインデックス(例えば、refIdxL1)を含む。
この出願のこの実施形態において、参照フレームインデックスは、指定された参照ピクチャリスト(第1リストlist0又は第2リストlist1)内の使用される動きベクトル(例えば、第1動きベクトル又は第2動きベクトル)に対応する参照ピクチャを特定するために使用される。ピクチャはフレームと称されることがあり、参照ピクチャは参照フレームと称されることがある。
映像コーディング分野において、インター予測モードは、前方予測、後方予測、及び双方向予測(前方予測及び後方予測を含む)を含み、エンコーダ側で使用される特定の予測モードは、通常、予測方向指示情報によって指し示される。例えば、予測方向指示情報は、シンタックス要素predFlagL0及びpredFlagL1を含み得る。predFlagL0=1且つpredFlagL1=1であるとき、予測方向指示情報は、双方向予測が適用されることを指し示す。predFlagL0=1且つpredFlagL1=0であるとき、予測方向指示情報は、前方予測が使用されることを指し示す。predFlagL0=0且つpredFlagL1=1であるとき、予測方向指示情報は、後方予測が使用されることを指し示す。理解され得ることには、“前方”及び“後方”は、それぞれ、現在ピクチャの参照ピクチャリスト0(list0、すなわち、前述の第1リスト)及び参照ピクチャリスト1(list1、すなわち、前述の第2リスト)に対応する。
オプションの一ソリューションにおいて、シンタックス要素は、第1インデックス、第2インデックス、予測方向指示情報、及び動きベクトル差MVDを含み、第1インデックス(例えば、mvp_lX_flag[xCb][yCb])は、ターゲット候補動きベクトル予測子を指し示すために使用され、ターゲット候補動きベクトル予測子は、第1リスト(例えば、list0)に対応する第1動きベクトル予測子、及び第2リスト(例えば、list1)に対応する第2動きベクトル予測子を含み、動きベクトル差MVDは、第1リストに対応する第1MVD、及び/又は第2リストに対応するMVDを含む(オプションで、MMVD技術が使用されるとき、1つのMVDのみが伝送されてもよく、別方向のものであってデコーダ側によって使用される必要があるMVDは、伝送されたMVDに基づいて導出され得る)。第2インデックス(これらは、参照フレームインデックスとも称される)は、現在ピクチャブロックの参照フレームを指し示すために使用され、参照フレームは、第1リストに対応する第1参照フレーム、及び第2リストに対応する第2参照フレームを含む。例えば、第2インデックスは、refIdxL0及びrefIdxL1であり、refIdxL0は、第1リストに対応する第1参照フレームのインデックスであり、refIdxL1は、第2リストに対応する第2参照フレームのインデックスである。予測方向指示情報(例えば、predFlagL0=1及びpredFlagL1=1)は、双方向予測が適用されることを指し示すために使用される。
第1リストに対応する第1動きベクトル(例えば、Mv0_L0)が、第1リストに対応する第1動きベクトル予測子(例えば、Mvp0_L0)と、第1リストに対応する第1MVD(例えば、MVD0)とに基づいて取得される。例えば、Mv0_L0=Mvp0_L0+MVD0である。
第2リストに対応する第2動きベクトル(例えば、Mv1_L1)が、第2リストに対応する第2動きベクトル予測子(例えば、Mvp1_L1)と、第2リストに対応する第2MVD(例えば、MVD1)とに基づいて取得される。例えば、Mv1_L1=Mvp1_L1+MVD1である。
映像コーディング分野において、インター予測モードは、前方予測、後方予測、及び双方向予測(前方予測及び後方予測を含む)を含み、エンコーダ側で使用される特定の予測モードは、通常、予測方向指示情報によって指し示される。例えば、予測方向指示情報は、シンタックス要素predFlagL0及びpredFlagL1を含み得る。predFlagL0=1且つpredFlagL1=1であるとき、予測方向指示情報は、双方向予測が適用されることを指し示す。predFlagL0=1且つpredFlagL1=0であるとき、予測方向指示情報は、前方予測が使用されることを指し示す。predFlagL0=0且つpredFlagL1=1であるとき、予測方向指示情報は、後方予測が使用されることを指し示す。理解され得ることには、“前方”及び“後方”は、それぞれ、現在ピクチャの参照ピクチャリスト0(list0、すなわち、前述の第1リスト)及び参照ピクチャリスト1(list1、すなわち、前述の第2リスト)に対応する。
オプションの一ソリューションにおいて、当該映像符号化装置は更に、現在ピクチャブロックのサンプル値と現在ピクチャブロックの予測サンプル値とに基づいて、サンプル残差を決定するように構成された残差計算ユニットを含み、エントロピー符号化ユニットは具体的に、シンタックス要素及びサンプル残差を送信対象ビットストリームに符号化するように構成される。換言すれば、シンタックス要素に加えて、更にサンプル残差が、送信対象ビットストリームに符号化され得る(サンプル残差は、残差計算ユニットを用いることによって計算を通じて取得され得る)。このソリューションは、AMVPモード及びマージモードに適用され得る。また、サンプル残差を送信対象ビットストリームに符号化する必要がない場合も存在する。例えば、スキップモードでは、サンプル残差を送信対象ビットストリームに符号化する必要はない。
第7態様によれば、この出願の一実施形態は、映像符号化装置を提供し、当該映像符号化装置は、インター予測ユニット、再構成ユニット、及びエントロピー符号化ユニットを含む。
インター予測ユニットは、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リスト(すなわち、list0)に対応する参照サンプル値と第2リスト(すなわち、list1)に対応する参照サンプル値とに基づいて、第1の処理方式で現在ピクチャブロックの予測サンプル値(例えば、現在コーディングユニットの予測サンプル)を決定する(又は予測を通じて取得する)ように構成され、第1の処理方式は、BDOF(あるいは、双方向オプティカルフロー(Bi-directional optical flow、BIO)又は予測精緻化・ウイズ・オプティカルフロー(prediction refinement with optical flow、PROF)と称される)ではない。換言すれば、現在ピクチャブロックのサイズが第2のプリセットサイズであるとき、第1リストに対応する参照サンプル値及び第2リストに対応する参照サンプル値に基づいて現在ピクチャブロックの予測サンプル値を決定するためにBDOFを使用することは許されない。現在ピクチャブロックのサイズは、通常、幅及び高さ(短くW×Hと記載される)によって表され、幅及び高さは、サンプル(sample又はpixel)によって測定される。第2のプリセットサイズは、8×8(1つめの8は、現在ピクチャブロックの幅が8サンプルであることを示し、2つめの8は、現在ピクチャブロックの高さが8サンプルであることを示す)、4×N(4は、現在ピクチャブロックの幅が4サンプルであることを示し、Nは、現在ピクチャブロックの高さがNサンプルであることを示し、類推によって他のサイズが推定される)、8×16、又は16×8を含む。Nは2のべき乗であり、且つ8以上である。例えば、Nの値は、16、32、64などとし得る。
この出願のこの実施形態において、第1リストに対応する参照サンプル値、及び第2リストに対応する参照サンプル値は、それぞれ、第1リスト(すなわち、list0)に対応する第1動きベクトル(例えば、Mv0_L0)、及び第2リスト(すなわち、list1)に対応する第2動きベクトル(例えば、Mv1_L1)に基づく予測を通じて取得される。例えば、第1リスト(すなわち、list0)に対応する参照サンプル値は、第1のリスト(すなわち、list0)に対応する第1動きベクトル(例えば、Mv0_L0)に基づいて決定されることができ、第2リスト(すなわち、list1)に対応する参照サンプル値は、第2リスト(すなわち、list1)に対応する第2動きベクトル(例えば、Mv1_L1)に基づいて決定されることができる。
再構成ユニットは、少なくとも現在ピクチャブロックの予測サンプル値に基づいて、現在ピクチャブロックを再構成するように構成される。ここでの“少なくとも”が示すのは、現在ピクチャブロックを再構成するために現在ピクチャブロックの予測サンプル値が使用される必要があるが、他の情報も使用され得る、ということである。
エントロピー符号化ユニットは、シンタックス要素を送信対象ビットストリームに符号化するように構成され、シンタックス要素は少なくとも、双方向予測が適用されることを指し示すために使用される。
理解されるべきことには、ここでの現在ピクチャブロック(これは、現在ブロックとも称される)は、処理中のピクチャブロックとして理解され得る。例えば、符号化プロセスにおいて、現在ピクチャブロックは、符号化中のピクチャブロック(encoding block)である。
また、第2のプリセットサイズが8×8、4×N、8×16、又は16×8を含む前述のケースは、第2のプリセットサイズが8×8、4×N、8×16、又は16×8であることに限られることもできる。換言すれば、BDOFは、上に列挙された8×8、4×N、8×16、及び16×8なるサイズのうちの1つに対して使用されることが禁止され、あるいは、これらのうちの複数のサイズに対して使用されることが禁止されてもよい。以下では、説明のための例を用いる。
例1: 第2のプリセットサイズは8×8を含む(又は、である)。換言すれば、この出願のこの実施形態において、BDOFは、サイズ8×8に対して使用されることが禁止される。この場合、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下として表現され得る:現在ピクチャブロックのサイズが8×8であるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得する。
例2:第2のプリセットサイズは4×Nを含む(又は、である)。換言すれば、この出願のこの実施形態において、BDOFは、サイズ4×Nに対して使用されることが禁止される。この場合、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下として表現され得る:Nは8以上であるとして、現在ピクチャブロックのサイズが4×Nであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得する。
例3: 第2のプリセットサイズは8×8又は4×Nを含む(又は、である)。換言すれば、この出願のこの実施形態において、BDOFは、サイズ8×8及び4×Nに対して使用されることが禁止される。この場合、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下として表現され得る:Nは8以上であるとして、現在ピクチャブロックのサイズが8×8及び4×Nのいずれかであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得する。
例4: 第2のプリセットサイズは8×8、4×N、8×16、又は16×8を含み(又は、であり)、ここで、Nは8以上である。換言すれば、この出願のこの実施形態において、BDOFは、サイズ8×8、4×N、8×16、及び16×8に対して使用されることが禁止される。この場合、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下として表現され得る:Nは8以上であるとして、現在ピクチャブロックのサイズが8×8、4×N、8×16、及び16×8のうちのいずれか1つであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得する。
例5: 第2のプリセットサイズはN×8を含み(又は、であり)、ここで、Nは4以上である。換言すれば、この出願のこの実施形態において、BDOFは、サイズN×8に対して使用されることが禁止される。この場合、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下として表現され得る:現在ピクチャブロックのサイズがN×8であるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得する。
例6: 第2のプリセットサイズはN×8又は4×Nを含み(又は、であり)、ここで、Nは4以上である。換言すれば、この出願のこの実施形態において、BDOFは、サイズN×8又は4×Nに対して使用されることが禁止される。この場合、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下として表現され得る:現在ピクチャブロックのサイズがN×8又は4×Nであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得する。
さらに、一部のシナリオでは、サイズM×4に対してもBDOFが使用されることが禁止されるので、この出願において、第2のプリセットサイズに対してBDOFが使用されることが禁止されるとき、BDOFは更に、Mは4以上の整数であるとして、サイズM×4に対して使用されることが禁止され得る。
理解され得ることには、前述のケースを参考にして、別のケースを更に得ることができ、別のケースもこの出願の保護範囲に入るものである。
前述の方法によれば、BDOF技術が使用されるときに様々なサイズの現在ピクチャブロックの特徴が十分に考慮される。現在ピクチャブロックのサイズが第2のプリセットサイズであるとき、現在ピクチャブロックの予測サンプル値は、BDOF技術以外の技術に従って決定される。これは、コーディングの複雑さを大幅に低減させるとともに、コーディング効率を向上させる。
オプションの一ソリューションにおいて、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で現在ピクチャブロックの予測サンプル値を決定するプロセスにおいて、インター予測ユニットは具体的に、
第1リストに対応する参照サンプル値及び第2リストに対応する参照サンプル値において同じ位置を持つサンプル値に対して重み付け計算を実行して、現在ピクチャブロックの予測サンプル値を取得する、又は
マージ・ウイズ・動きベクトル差MMVD技術に従って、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づく予測を通じて、現在ピクチャブロックの予測サンプル値を取得する、又は
結合インター/イントラ予測CIIP技術に従って、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づく予測を通じて、現在ピクチャブロックの予測サンプル値を取得する、
ように構成される。
この出願のこの実施形態において、重み付け計算方式、MMVD技術、又はCIIP技術が具体的に使用されるかは、対応する条件を用いることによって決定されてもよいし、あるいは、対応する指示情報を用いることによって指し示されてもよい。
理解されるべきことには、BDOF技術は、現在ピクチャブロックの予測サンプル値を予測するための従来技術でのパッチ最適化技術と同等である。BDOF技術によれば、多くのシナリオにおいて、現在ピクチャブロックの実際のサンプル値にいっそう近い予測サンプル値を得ることができる。従って、その予測サンプル値に基づいて得られるサンプル残差はより小さいものとなり、それ故に、コーディング効率を向上させることができる。前述の重み付け計算方式は、現在ピクチャブロックの予測サンプル値を得るための従来技術とみなされてもよく、前述のMMVD技術及びCIIP技術は各々、従来技術でのパッチ最適化技術とみなされてもよい。この出願のこの実施形態において、現在ピクチャブロックのサイズが第2のプリセットサイズであるとき、現在ピクチャブロックの予測サンプル値は、BDOF技術ではなく、従来技術(例えば、重み付け計算方式)又は他のパッチ最適化技術(例えば、MMVD又はCIIP)に従って決定される。これは、コーディングの複雑さを大幅に低減させることができるとともに、コーディング効率を向上させることができる。
オプションの一ソリューションにおいて、
インター予測ユニットは更に、複数のプリセット条件が満足されるときに、現在ピクチャブロックに対して双方向オプティカルフローBDOF処理を実行して現在ピクチャブロックの予測サンプル値を取得するように構成され、上記複数のプリセット条件は少なくとも、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することという条件を含む。
現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、且つ現在ピクチャブロックの幅Wと高さHとの積が64に等しいときに幅Wが高さHに等しくない、ことを含む。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、且つ現在ピクチャブロックの幅Wが8以上である、ことを含む(又は、である)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、現在ピクチャブロックの幅Wが8以上であり、且つ現在ピクチャブロックの幅Wと現在ピクチャブロックの高さHとの積が64よりも大きい、ことを含む(又は、である)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、現在ピクチャブロックの幅Wが8以上であり、且つ現在ピクチャブロックの幅Wと現在ピクチャブロックの高さHとの積が128よりも大きい、ことを含む(又は、である)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8よりも大きい、ことを含む。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8よりも大きく、且つ現在ピクチャブロックの幅Wが8以上である、ことを含む。
再構成ユニットは更に、少なくとも現在ピクチャブロックの予測サンプル値に基づいて、現在ピクチャブロックを再構成するように構成される。
具体的には、BDOF技術を有効にする又は使用するための、このソリューションにおける条件は、BDOF技術を有効にする又は使用するための、従来技術における条件とは異なり、特に、現在ピクチャブロックのサイズに関する要件が異なる。第1のプリセットサイズを持つ現在ピクチャブロックに対してBDOF技術を使用することで、元のサンプル値にいっそう近い予測サンプル値を得ることができ、また、コーディングの複雑さを適切に制御することができる。これは、符号化/復号の複雑さと予測精度とをある程度バランスさせ、それによりコーディング効率を向上させる。
なお、BDOF技術に従って、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて現在ピクチャブロックの現在サブブロックの予測サンプル値を決定する(又は予測を通じて取得する)かが決定される前に、現在ピクチャブロックのサイズに加えて、別の参照条件が存在してもよい。別の参照条件は、ここで限定されるものではない。理解を容易にするために、以下では、説明のための例を用いる。
条件A: 現在映像シーケンスに対してBDOF技術が使用されることが許されることを指し示すハイレベルシンタックス識別子sps_bdof_enabled_flagが存在する。
条件B: 第1リスト(List1)に対応する予測方向指示情報predFlagL0が1に等しく、且つ第2リスト(list0)に対応する予測方向指示情報predFlagL1が1に等しい。
条件C: 第1リスト(list0)に対応する参照フレームのピクチャオーダカウントPOC_L0、第2リスト(list1)に対応する参照フレームのピクチャオーダカウントPOC_L1、及びその中に現在ピクチャブロックが位置するピクチャのピクチャオーダカウントPOC_Curが、(POC_L0-POC_Cur)×(POC_L1-POC_Cur)<0という関係を満足する。換言すれば、現在ピクチャブロックを含むピクチャが、2つの参照ピクチャの間にある。
条件D: MotionModelIdc[xCb][yCb]が0に等しい。MotionModelIdcは、動き補償に関する動きモデルインデックスである。0に等しいMotionModelIdc[xCb][yCb]は、現在ブロックの動き補償のための動きモデルが並進運動(Translational motion)であることを指し示す。
条件E: merge_subblock_flag[x0][y0]が0に等しく、ここで、0に等しいmerge_subblock_flag[x0][y0]は、現在ピクチャブロックに対してサブブロックマージモードが適用されないことを指し示す。
条件F: sym_mvd_flag[x0][y0]が0に等しい。0に等しいsym_mvd_flag[x0][y0]は、現在ブロックに対してmvd_coding(x0,y0,refList,cpIdx)シンタックス構造が存在することを指し示す。
条件G: bcwIdx[xCb][yCb]が0に等しい。bcwIdxは、現在ピクチャブロックに対する双方向予測重みインデックスを示す。
条件H: cIdxが0に等しい。cIdxは、現在ピクチャブロックの色成分インデックスを表す。
条件I: 現在ピクチャブロックのサイズが第1のプリセットサイズである。
条件J: luma_weight_l0_flag[refIdxL0]及びluma_weight_l1_flag[refIdxL1]の両方が0に等しく、ここで、0に等しいluma_weight_l0_flagは、list0予測のluma成分に対する重み付け係数が存在しないことを指し示し、0に等しいluma_weight_l1_flagは、list1予測のluma成分に対する重み付け係数が存在しないことを指し示す。
例えば、条件A乃至Jの全てが満足されるとき、現在ピクチャブロックの予測サンプル値を予測するためにBDOF技術が使用され得ることが決定される。例えば、bdofFlagがtrueに設定される。なお、前述の条件は単なる例であり、別の条件が更に追加されたり、あるいは前述の条件のうちの1つ以上が置き換えられたり、あるいは前述の条件のうちの1つ以上が除去されたりしてもよい。
オプションの一ソリューションにおいて、シンタックス要素は、ターゲット候補動き情報のインデックス(例えば、merge_idx[xCb][yCb])を含み、ターゲット候補動き情報は、ターゲット候補動きベクトル、参照フレームインデックス、及び予測方向指示情報(例えば、predFlagL0=1及びpredFlagL1=1)を含み、予測方向指示情報は、双方向予測が適用されることを指し示すために使用され、ターゲット候補動きベクトルは、第1リスト(すなわち、list0)に対応する第1動きベクトル、及び第2リスト(すなわち、list1)に対応する第2動きベクトルを含み、参照フレームインデックスは、第1リストに対応する第1参照フレームのインデックス(例えば、refIdxL0)、及び第2リストに対応する第2参照フレームのインデックス(例えば、refIdxL1)を含む。
この出願のこの実施形態において、参照フレームインデックスは、指定された参照ピクチャリスト(第1リストlist0又は第2リストlist1)内の使用される動きベクトル(例えば、第1動きベクトル又は第2動きベクトル)に対応する参照ピクチャを特定するために使用される。ピクチャはフレームと称されることがあり、参照ピクチャは参照フレームと称されることがある。
映像コーディング分野において、インター予測モードは、前方予測、後方予測、及び双方向予測(前方予測及び後方予測を含む)を含み、エンコーダ側で使用される特定の予測モードは、通常、予測方向指示情報によって指し示される。例えば、予測方向指示情報は、シンタックス要素predFlagL0及びpredFlagL1を含み得る。predFlagL0=1且つpredFlagL1=1であるとき、予測方向指示情報は、双方向予測が適用されることを指し示す。predFlagL0=1且つpredFlagL1=0であるとき、予測方向指示情報は、前方予測が使用されることを指し示す。predFlagL0=0且つpredFlagL1=1であるとき、予測方向指示情報は、後方予測が使用されることを指し示す。理解され得ることには、“前方”及び“後方”は、それぞれ、現在ピクチャの参照ピクチャリスト0(list0、すなわち、前述の第1リスト)及び参照ピクチャリスト1(list1、すなわち、前述の第2リスト)に対応する。
オプションの一ソリューションにおいて、シンタックス要素は、第1インデックス、第2インデックス、予測方向指示情報、及び動きベクトル差MVDを含み、第1インデックス(例えば、mvp_lX_flag[xCb][yCb])は、ターゲット候補動きベクトル予測子を指し示すために使用され、ターゲット候補動きベクトル予測子は、第1リスト(例えば、list0)に対応する第1動きベクトル予測子、及び第2リスト(例えば、list1)に対応する第2動きベクトル予測子を含み、動きベクトル差MVDは、第1リストに対応する第1MVD、及び/又は第2リストに対応するMVDを含む(オプションで、MMVD技術が使用されるとき、1つのMVDのみが伝送されてもよく、別方向のものであってデコーダ側によって使用される必要があるMVDは、伝送されたMVDに基づいて導出され得る)。第2インデックス(これらは、参照フレームインデックスとも称される)は、現在ピクチャブロックの参照フレームを指し示すために使用され、参照フレームは、第1リストに対応する第1参照フレーム、及び第2リストに対応する第2参照フレームを含む。例えば、第2インデックスは、refIdxL0及びrefIdxL1であり、refIdxL0は、第1リストに対応する第1参照フレームのインデックスであり、refIdxL1は、第2リストに対応する第2参照フレームのインデックスである。予測方向指示情報(例えば、predFlagL0=1及びpredFlagL1=1)は、双方向予測が適用されることを指し示すために使用される。
第1リストに対応する第1動きベクトル(例えば、Mv0_L0)は、第1リストに対応する第1動きベクトル予測子(例えば、Mvp0_L0)と、第1リストに対応する第1MVD(例えば、MVD0)とに基づいて取得される。例えば、Mv0_L0=Mvp0_L0+MVD0である。
第2リストに対応する第2動きベクトル(例えば、Mv1_L1)は、第2リストに対応する第2動きベクトル予測子(例えば、Mvp1_L1)と、第2リストに対応する第2MVD(例えば、MVD1)とに基づいて取得される。例えば、Mv1_L1=Mvp1_L1+MVD1である。
映像コーディング分野において、インター予測モードは、前方予測、後方予測、及び双方向予測(前方予測及び後方予測を含む)を含み、エンコーダ側で使用される特定の予測モードは、通常、予測方向指示情報によって指し示される。例えば、予測方向指示情報は、シンタックス要素predFlagL0及びpredFlagL1を含み得る。predFlagL0=1且つpredFlagL1=1であるとき、予測方向指示情報は、双方向予測が適用されることを指し示す。predFlagL0=1且つpredFlagL1=0であるとき、予測方向指示情報は、前方予測が使用されることを指し示す。predFlagL0=0且つpredFlagL1=1であるとき、予測方向指示情報は、後方予測が使用されることを指し示す。理解され得ることには、“前方”及び“後方”は、それぞれ、現在ピクチャの参照ピクチャリスト0(list0、すなわち、前述の第1リスト)及び参照ピクチャリスト1(list1、すなわち、前述の第2リスト)に対応する。
オプションの一ソリューションにおいて、当該映像符号化装置は更に、現在ピクチャブロックのサンプル値と現在ピクチャブロックの予測サンプル値とに基づいて、サンプル残差を決定するように構成された残差計算ユニット、を含み、エントロピー符号化ユニットは具体的に、シンタックス要素及びサンプル残差を送信対象ビットストリームに符号化するように構成される。
第8態様によれば、この出願の一実施形態は、映像復号装置を提供し、当該映像復号装置は、エントロピー復号ユニット、インター予測ユニット、及び再構成ユニットを含む。
エントロピー復号ユニットは、ビットストリームを解析してシンタックス要素を取得するように構成され、シンタックス要素は少なくとも、双方向予測が適用されることを指し示すために使用される。
インター予測ユニットは、複数のプリセット条件が満足されるときに、現在ピクチャブロックに対して双方向オプティカルフローBDOF(Bi-directional optical flow、略してBIO又はBDOF)処理を実行して現在ピクチャブロックの予測サンプル値を取得するように構成され、上記複数のプリセット条件は少なくとも、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することという条件を含む。現在ピクチャブロックのサイズは、通常、幅及び高さ(短くW×Hと記載される)によって表され、幅及び高さは、サンプル(sample又はpixel)によって測定される。例えば、現在ピクチャブロックのサイズが8×8である場合、1つめの8は、現在ピクチャブロックの幅が8サンプルであることを示し、2つめの8は、現在ピクチャブロックの高さが8サンプルであることを示す。他の一例では、現在ピクチャブロックのサイズが8×16である場合、8は、現在ピクチャブロックの幅が8サンプルであることを示し、16は、現在ピクチャブロックの高さが16サンプルであることを示す。
現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、且つ現在ピクチャブロックの幅Wと高さHとの積が64に等しいときに幅Wが高さHに等しくない、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、且つ現在ピクチャブロックの幅Wが8以上である、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、現在ピクチャブロックの幅Wが8以上であり、且つ現在ピクチャブロックの幅Wと現在ピクチャブロックの高さHとの積が64よりも大きい、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、現在ピクチャブロックの幅Wが8以上であり、且つ現在ピクチャブロックの幅Wと現在ピクチャブロックの高さHとの積が128よりも大きい、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8よりも大きい、ことを含む。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8よりも大きく、且つ現在ピクチャブロックの幅Wが8以上である、ことを含む。
再構成ユニットは、少なくとも現在ピクチャブロックの予測サンプル値に基づいて、現在ピクチャブロックのサンプル値を決定するように構成される。
なお、BDOF技術に従って、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて現在ピクチャブロックの現在サブブロックの予測サンプル値を決定する(又は予測を通じて取得する)かが決定される前に、現在ピクチャブロックのサイズに加えて、別の参照条件が存在してもよい。別の参照条件は、ここで限定されるものではない。理解を容易にするために、以下では、説明のための例を用いる。
条件A: 現在映像シーケンスに対してBDOF技術が使用されることが許されることを指し示すハイレベルシンタックス識別子sps_bdof_enabled_flagが存在する。
条件B: 第1リスト(List1)に対応する予測方向指示情報predFlagL0が1に等しく、且つ第2リスト(list0)に対応する予測方向指示情報predFlagL1が1に等しい。
条件C: 第1リスト(list0)に対応する参照フレームのピクチャオーダカウントPOC_L0、第2リスト(list1)に対応する参照フレームのピクチャオーダカウントPOC_L1、及びその中に現在ピクチャブロックが位置するピクチャのピクチャオーダカウントPOC_Curが、(POC_L0-POC_Cur)×(POC_L1-POC_Cur)<0という関係を満足する。換言すれば、現在ピクチャブロックを含むピクチャが、2つの参照ピクチャの間にある。
条件D: MotionModelIdc[xCb][yCb]が0に等しい。MotionModelIdcは、動き補償に関する動きモデルインデックスである。0に等しいMotionModelIdc[xCb][yCb]は、現在ブロックの動き補償のための動きモデルが並進運動(Translational motion)であることを指し示す。
条件E: merge_subblock_flag[x0][y0]が0に等しく、ここで、0に等しいmerge_subblock_flag[x0][y0]は、現在ピクチャブロックに対してサブブロックマージモードが適用されないことを指し示す。
条件F: sym_mvd_flag[x0][y0]が0に等しい。0に等しいsym_mvd_flag[x0][y0]は、現在ブロックに対してmvd_coding(x0,y0,refList,cpIdx)シンタックス構造が存在することを指し示す。
条件G: bcwIdx[xCb][yCb]が0に等しい。bcwIdxは、現在ピクチャブロックに対する双方向予測重みインデックスを示す。
条件H: cIdxが0に等しい。cIdxは、現在ピクチャブロックの色成分インデックスを表す。
条件I: 現在ピクチャブロックのサイズが第1のプリセットサイズである。
条件J: luma_weight_l0_flag[refIdxL0]及びluma_weight_l1_flag[refIdxL1]の両方が0に等しく、ここで、0に等しいluma_weight_l0_flagは、list0予測のluma成分に対する重み付け係数が存在しないことを指し示し、0に等しいluma_weight_l1_flagは、list1予測のluma成分に対する重み付け係数が存在しないことを指し示す。
例えば、条件A乃至Jの全てが満足されるとき、現在ピクチャブロックの予測サンプル値を予測するためにBDOF技術が使用され得ることが決定される。例えば、bdofFlagがtrueに設定される。なお、前述の条件は単なる例であり、別の条件が更に追加されたり、あるいは前述の条件のうちの1つ以上が置き換えられたり、あるいは前述の条件のうちの1つ以上が除去されたりしてもよい。
理解されるべきことには、ここでの現在ピクチャブロック(これは、現在ブロックとも称される)は、処理中のピクチャブロックとして理解され得る。例えば、復号プロセスにおいて、現在ピクチャブロックは、復号中のピクチャブロック(decoding block)である。
この出願のこの実施形態において、状態判定動作が更に含められてもよい。例えば、インター予測ユニットは更に、上記複数のプリセット条件が満足されているかを判定するように構成される。
理解され得ることには、前述のケースを参考にして、別のケースを更に得ることができ、別のケースもこの出願の保護範囲に入るものである。
具体的には、BDOF技術を有効にする又は使用するための、このソリューションにおける条件は、BDOF技術を有効にする又は使用するための、従来技術における条件とは異なり、特に、現在ピクチャブロックのサイズに関する要件が異なる。第1のプリセットサイズを持つ現在ピクチャブロックに対してBDOF技術を使用することで、元のサンプル値にいっそう近い予測サンプル値を得ることができ、また、コーディングの複雑さを適切に制御することができる。これは、符号化/復号の複雑さと予測精度とをある程度バランスさせ、それによりコーディング効率を向上させる。
オプションの一ソリューションにおいて、シンタックス要素は、ターゲット候補動き情報のインデックス(例えば、merge_idx[xCb][yCb])を含み、ターゲット候補動き情報は、ターゲット候補動きベクトル、参照フレームインデックス、及び予測方向指示情報(例えば、predFlagL0=1及びpredFlagL1=1)を含み、予測方向指示情報は、双方向予測が適用されることを指し示すために使用され、ターゲット候補動きベクトルは、第1リスト(すなわち、list0)に対応する第1動きベクトル、及び第2リスト(すなわち、list1)に対応する第2動きベクトルを含み、参照フレームインデックスは、第1リストに対応する第1参照フレームのインデックス(例えば、refIdxL0)、及び第2リストに対応する第2参照フレームのインデックス(例えば、refIdxL1)を含む。
この出願のこの実施形態において、参照フレームインデックスは、指定された参照ピクチャリスト(第1リストlist0又は第2リストlist1)内の使用される動きベクトル(例えば、第1動きベクトル又は第2動きベクトル)に対応する参照ピクチャを特定するために使用される。ピクチャはフレームと称されることがあり、参照ピクチャは参照フレームと称されることがある。
映像コーディング分野において、インター予測モードは、前方予測、後方予測、及び双方向予測(前方予測及び後方予測を含む)を含み、エンコーダ側で使用される特定の予測モードは、通常、予測方向指示情報によって指し示される。例えば、予測方向指示情報は、シンタックス要素predFlagL0及びpredFlagL1を含み得る。predFlagL0=1且つpredFlagL1=1であるとき、予測方向指示情報は、双方向予測が適用されることを指し示す。predFlagL0=1且つpredFlagL1=0であるとき、予測方向指示情報は、前方予測が使用されることを指し示す。predFlagL0=0且つpredFlagL1=1であるとき、予測方向指示情報は、後方予測が使用されることを指し示す。理解され得ることには、“前方”及び“後方”は、それぞれ、現在ピクチャの参照ピクチャリスト0(list0、すなわち、前述の第1リスト)及び参照ピクチャリスト1(list1、すなわち、前述の第2リスト)に対応する。
オプションの一ソリューションにおいて、シンタックス要素は、第1インデックス、第2インデックス、予測方向指示情報、及び動きベクトル差MVDを含み、第1インデックス(例えば、mvp_lX_flag[xCb][yCb])は、ターゲット候補動きベクトル予測子を指し示すために使用され、ターゲット候補動きベクトル予測子は、第1リスト(例えば、list0)に対応する第1動きベクトル予測子、及び第2リスト(例えば、list1)に対応する第2動きベクトル予測子を含み、動きベクトル差MVDは、第1リストに対応する第1MVD、及び/又は第2リストに対応するMVDを含む(例えば、1つのMVDのみが含まれるとき、伝送されないMVDは、伝送されたMVDに基づいて導出され得る)。第2インデックス(これらは、参照フレームインデックスとも称される)は、現在ピクチャブロックの参照フレームを指し示すために使用され、参照フレームは、第1リストに対応する第1参照フレーム、及び第2リストに対応する第2参照フレームを含む。例えば、第2インデックスは、refIdxL0及びrefIdxL1であり、refIdxL0は、第1リストに対応する第1参照フレームのインデックスであり、refIdxL1は、第2リストに対応する第2参照フレームのインデックスである。予測方向指示情報(例えば、predFlagL0=1及びpredFlagL1=1)は、双方向予測が適用されることを指し示すために使用される。
第1リストに対応する第1動きベクトル(例えば、Mv0_L0)が、第1リストに対応する第1動きベクトル予測子(例えば、Mvp0_L0)と、第1リストに対応する第1MVD(例えば、MVD0)とに基づいて取得される。例えば、Mv0_L0=Mvp0_L0+MVD0である。
第2リストに対応する第2動きベクトル(例えば、Mv1_L1)が、第2リストに対応する第2動きベクトル予測子(例えば、Mvp1_L1)と、第2リストに対応する第2MVD(例えば、MVD1)とに基づいて取得される。例えば、Mv1_L1=Mvp1_L1+MVD1である。
映像コーディング分野において、インター予測モードは、前方予測、後方予測、及び双方向予測(前方予測及び後方予測を含む)を含み、エンコーダ側で使用される特定の予測モードは、通常、予測方向指示情報によって指し示される。例えば、予測方向指示情報は、シンタックス要素predFlagL0及びpredFlagL1を含み得る。predFlagL0=1且つpredFlagL1=1であるとき、予測方向指示情報は、双方向予測が適用されることを指し示す。predFlagL0=1且つpredFlagL1=0であるとき、予測方向指示情報は、前方予測が使用されることを指し示す。predFlagL0=0且つpredFlagL1=1であるとき、予測方向指示情報は、後方予測が使用されることを指し示す。理解され得ることには、“前方”及び“後方”は、それぞれ、現在ピクチャの参照ピクチャリスト0(list0、すなわち、前述の第1リスト)及び参照ピクチャリスト1(list1、すなわち、前述の第2リスト)に対応する。
オプションの一ソリューションにおいて、エントロピー復号ユニットは具体的に、ビットストリームを解析して、サンプル残差とシンタックス要素とを取得するように構成され、再構成ユニットは具体的に、サンプル残差と現在ピクチャブロックの予測サンプル値に基づいて、現在ピクチャブロックのサンプル値を決定するように構成される。
第9態様によれば、この出願の一実施形態は、映像復号装置を提供し、当該映像復号装置は、エントロピー復号ユニット、インター予測ユニット、及び再構成ユニットを含む。
エントロピー復号ユニットは、ビットストリームを解析してシンタックス要素を取得するように構成され、シンタックス要素は少なくとも、双方向予測が適用されることを指し示すために使用される。
インター予測ユニットは、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リスト(すなわち、list0)に対応する参照サンプル値と第2リスト(すなわち、list1)に対応する参照サンプル値とに基づいて、第1の処理方式で現在ピクチャブロックの予測サンプル値(例えば、現在コーディングユニットの予測サンプル)を決定する(又は予測を通じて取得する)ように構成され、第1の処理方式は、BDOF(あるいは、双方向オプティカルフロー(Bi-directional optical flow、BIO)又は予測精緻化・ウイズ・オプティカルフロー(prediction refinement with optical flow、PROF)と称される)ではない。換言すれば、現在ピクチャブロックのサイズが第2のプリセットサイズであるとき、第1リストに対応する参照サンプル値及び第2リストに対応する参照サンプル値に基づいて現在ピクチャブロックの予測サンプル値を決定するためにBDOFを使用することは許されない。現在ピクチャブロックのサイズは、通常、幅及び高さ(短くW×Hと記載される)によって表され、幅及び高さは、サンプル(sample又はpixel)によって測定される。第2のプリセットサイズは、8×8(1つめの8は、現在ピクチャブロックの幅が8サンプルであることを示し、2つめの8は、現在ピクチャブロックの高さが8サンプルであることを示す)、4×N(4は、現在ピクチャブロックの幅が4サンプルであることを示し、Nは、現在ピクチャブロックの高さがNサンプルであることを示し、類推によって他のサイズが推定される)、8×16、又は16×8を含む。Nは2のべき乗であり、且つ8以上である。例えば、Nの値は、16、32、64などとし得る。
この出願のこの実施形態において、第1リストに対応する参照サンプル値、及び第2リストに対応する参照サンプル値は、それぞれ、第1リスト(すなわち、list0)に対応する第1動きベクトル(例えば、Mv0_L0)、及び第2リスト(すなわち、list1)に対応する第2動きベクトル(例えば、Mv1_L1)に基づく予測を通じて取得される。例えば、第1リスト(すなわち、list0)に対応する参照サンプル値は、第1のリスト(すなわち、list0)に対応する第1動きベクトル(例えば、Mv0_L0)に基づいて決定されることができ、第2リスト(すなわち、list1)に対応する参照サンプル値は、第2リスト(すなわち、list1)に対応する第2動きベクトル(例えば、Mv1_L1)に基づいて決定されることができる。
再構成ユニットは、少なくとも現在ピクチャブロックの予測サンプル値に基づいて、現在ピクチャブロックのサンプル値を決定するように構成される。
理解されるべきことには、ここでの現在ピクチャブロック(これは、現在ブロックとも称される)は、処理中のピクチャブロックとして理解され得る。例えば、復号プロセスにおいて、現在ピクチャブロックは、復号中のピクチャブロック(decoding block)である。
また、第2のプリセットサイズが8×8、4×N、8×16、又は16×8を含む前述のケースは、第2のプリセットサイズが8×8、4×N、8×16、又は16×8であることに限られることもできる。換言すれば、BDOFは、上に列挙された8×8、4×N、8×16、及び16×8なるサイズのうちの1つに対して使用されることが禁止され、あるいは、これらのうちの複数のサイズに対して使用されることが禁止されてもよい。以下では、説明のための例を用いる。
例1: 第2のプリセットサイズは8×8を含む(又は、である)。換言すれば、この出願のこの実施形態において、BDOFは、サイズ8×8に対して使用されることが禁止される。この場合、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下として表現され得る:現在ピクチャブロックのサイズが8×8であるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得する。
例2:第2のプリセットサイズは4×Nを含む(又は、である)。換言すれば、この出願のこの実施形態において、BDOFは、サイズ4×Nに対して使用されることが禁止される。この場合、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下として表現され得る:Nは8以上であるとして、現在ピクチャブロックのサイズが4×Nであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得する。
例3: 第2のプリセットサイズは8×8又は4×Nを含む(又は、である)。換言すれば、この出願のこの実施形態において、BDOFは、サイズ8×8及び4×Nに対して使用されることが禁止される。この場合、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下として表現され得る:Nは8以上であるとして、現在ピクチャブロックのサイズが8×8及び4×Nのいずれかであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得する。
例4: 第2のプリセットサイズは8×8、4×N、8×16、又は16×8を含み(又は、であり)、ここで、Nは8以上である。換言すれば、この出願のこの実施形態において、BDOFは、サイズ8×8、4×N、8×16、及び16×8に対して使用されることが禁止される。この場合、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下として表現され得る:現在ピクチャブロックのサイズが8×8、4×N、8×16、及び16×8のうちのいずれか1つであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得する。
例5: 第2のプリセットサイズはN×8を含み(又は、であり)、ここで、Nは4以上である。換言すれば、この出願のこの実施形態において、BDOFは、サイズN×8に対して使用されることが禁止される。この場合、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下として表現され得る:現在ピクチャブロックのサイズがN×8であるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得する。
例6: 第2のプリセットサイズはN×8又は4×Nを含み(又は、であり)、ここで、Nは4以上である。換言すれば、この出願のこの実施形態において、BDOFは、サイズN×8又は4×Nに対して使用されることが禁止される。この場合、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下として表現され得る:現在ピクチャブロックのサイズがN×8又は4×Nであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得する。
さらに、一部のシナリオでは、サイズM×4に対してもBDOFが使用されることが禁止されるので、この出願において、第2のプリセットサイズに対してBDOFが使用されることが禁止されるとき、BDOFは更に、Mは4以上の整数であるとして、サイズM×4に対して使用されることが禁止され得る。
理解され得ることには、前述のケースを参考にして、別のケースを更に得ることができ、別のケースもこの出願の保護範囲に入るものである。
前述の方法によれば、BDOF技術が使用されるときに様々なサイズの現在ピクチャブロックの特徴が十分に考慮される。現在ピクチャブロックのサイズが第2のプリセットサイズであるとき、現在ピクチャブロックの予測サンプル値は、BDOF技術以外の技術に従って決定される。これは、コーディングの複雑さを大幅に低減させるとともに、コーディング効率を向上させる。
オプションの一ソリューションにおいて、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得するプロセスにおいて、インター予測ユニットは具体的に、
第1リストに対応する参照サンプル値及び第2リストに対応する参照サンプル値において同じ位置を持つサンプル値に対して重み付け計算を実行して、現在ピクチャブロックの予測サンプル値を取得する、又は
マージ・ウイズ・動きベクトル差MMVD技術に従って、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づく予測を通じて、現在ピクチャブロックの予測サンプル値を取得する、又は
結合インター/イントラ予測CIIP技術に従って、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づく予測を通じて、現在ピクチャブロックの予測サンプル値を取得する、又は
デコーダ側動きベクトル精緻化DMVR技術に従って、第1リストに対応する参照サンプルと第2リストに対応する参照サンプルとに基づく予測を通じて、現在ピクチャブロックの予測サンプル値を取得する、
ように構成される。
この出願のこの実施形態において、重み付け計算方式、MMVD技術、又はCIIP技術が具体的に使用されるかは、対応する条件を用いることによって決定されてもよいし、あるいは、対応する指示情報を用いることによって指し示されてもよい。
理解されるべきことには、BDOF技術は、現在ピクチャブロックの予測サンプル値を予測するための従来技術でのパッチ最適化技術と同等である。BDOF技術によれば、多くのシナリオにおいて、現在ピクチャブロックの実際のサンプル値にいっそう近い予測サンプル値を得ることができる。従って、その予測サンプル値に基づいて得られるサンプル残差はより小さいものとなり、それ故に、コーディング効率を向上させることができる。従って、BDOF技術は、通常、エンコーダ側で使用される。より正確に予測サンプル値を復元するために、BDOF技術は対応してデコーダ側でも使用される。前述の重み付け計算方式は、現在ピクチャブロックの予測サンプル値を得るための従来技術とみなされてもよく、前述のMMVD技術、CIIP技術、及びDMVR技術は各々、従来技術でのパッチ最適化技術とみなされてもよい。この出願のこの実施形態において、現在ピクチャブロックのサイズが第2のプリセットサイズであるとき、現在ピクチャブロックの予測サンプル値は、BDOF技術ではなく、従来技術(例えば、重み付け計算方式)又は他のパッチ最適化技術(例えば、MMVD、CIIP、又はDMVR)に従って決定される。これは、復号の複雑さを大幅に低減させることができるとともに、復号効率を向上させることができる。
オプションの一ソリューションにおいて、インター予測ユニットは更に、複数のプリセット条件が満足されるときに、現在ピクチャブロックに対して双方向オプティカルフローBDOF処理を実行して現在ピクチャブロックの予測サンプル値を取得するように構成され、上記複数のプリセット条件は少なくとも、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することという条件を含む。
現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、且つ現在ピクチャブロックの幅Wと高さHとの積が64に等しいときに幅Wが高さHに等しくない、ことを含む(又は、である)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、且つ現在ピクチャブロックの幅Wが8以上である、ことを含む(又は、である)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、現在ピクチャブロックの幅Wが8以上であり、且つ現在ピクチャブロックの幅Wと現在ピクチャブロックの高さHとの積が64よりも大きい、ことを含む(又は、である)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、現在ピクチャブロックの幅Wが8以上であり、且つ現在ピクチャブロックの幅Wと現在ピクチャブロックの高さHとの積が128よりも大きい、ことを含む(又は、である)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8よりも大きい、ことを含む(又は、である)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8よりも大きく、且つ現在ピクチャブロックの幅Wが8以上である、ことを含む(又は、である)。
再構成ユニットは更に、少なくとも現在ピクチャブロックの予測サンプル値に基づいて、現在ピクチャブロックを再構成するように構成される。
具体的には、BDOF技術を有効にする又は使用するための、このソリューションにおける条件は、BDOF技術を有効にする又は使用するための、従来技術における条件とは異なり、特に、現在ピクチャブロックのサイズに関する要件が異なる。第1のプリセットサイズを持つ現在ピクチャブロックに対してBDOF技術を使用することで、元のサンプル値にいっそう近い予測サンプル値を得ることができ、また、コーディングの複雑さを適切に制御することができる。これは、符号化/復号の複雑さと予測精度とをある程度バランスさせ、それによりコーディング効率を向上させる。
なお、BDOF技術に従って、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて現在ピクチャブロックの現在サブブロックの予測サンプル値を決定する(又は予測を通じて取得する)かが決定される前に、現在ピクチャブロックのサイズに加えて、別の参照条件が存在してもよい。別の参照条件は、ここで限定されるものではない。理解を容易にするために、以下では、説明のための例を用いる。
条件A: 現在映像シーケンスに対してBDOF技術が使用されることが許されることを指し示すハイレベルシンタックス識別子sps_bdof_enabled_flagが存在する。
条件B: 第1リスト(List1)に対応する予測方向指示情報predFlagL0が1に等しく、且つ第2リスト(list0)に対応する予測方向指示情報predFlagL1が1に等しい。
条件C: 第1リスト(list0)に対応する参照フレームのピクチャオーダカウントPOC_L0、第2リスト(list1)に対応する参照フレームのピクチャオーダカウントPOC_L1、及びその中に現在ピクチャブロックが位置するピクチャのピクチャオーダカウントPOC_Curが、(POC_L0-POC_Cur)×(POC_L1-POC_Cur)<0という関係を満足する。換言すれば、現在ピクチャブロックを含むピクチャが、2つの参照ピクチャの間にある。
条件D: MotionModelIdc[xCb][yCb]が0に等しい。MotionModelIdcは、動き補償に関する動きモデルインデックスである。0に等しいMotionModelIdc[xCb][yCb]は、現在ブロックの動き補償のための動きモデルが並進運動(Translational motion)であることを指し示す。
条件E: merge_subblock_flag[x0][y0]が0に等しく、ここで、0に等しいmerge_subblock_flag[x0][y0]は、現在ピクチャブロックに対してサブブロックマージモードが適用されないことを指し示す。
条件F: sym_mvd_flag[x0][y0]が0に等しい。0に等しいsym_mvd_flag[x0][y0]は、現在ブロックに対してmvd_coding(x0,y0,refList,cpIdx)シンタックス構造が存在することを指し示す。
条件G: bcwIdx[xCb][yCb]が0に等しい。bcwIdxは、現在ピクチャブロックに対する双方向予測重みインデックスを示す。
条件H: cIdxが0に等しい。cIdxは、現在ピクチャブロックの色成分インデックスを表す。
条件I: 現在ピクチャブロックのサイズが第1のプリセットサイズである。
条件J: luma_weight_l0_flag[refIdxL0]及びluma_weight_l1_flag[refIdxL1]の両方が0に等しく、ここで、0に等しいluma_weight_l0_flagは、list0予測のluma成分に対する重み付け係数が存在しないことを指し示し、0に等しいluma_weight_l1_flagは、list1予測のluma成分に対する重み付け係数が存在しないことを指し示す。
例えば、条件A乃至Jの全てが満足されるとき、現在ピクチャブロックの予測サンプル値を予測するためにBDOF技術が使用され得ることが決定される。例えば、bdofFlagがtrueに設定される。なお、前述の条件は単なる例であり、別の条件が更に追加されたり、あるいは前述の条件のうちの1つ以上が置き換えられたり、あるいは前述の条件のうちの1つ以上が除去されたりしてもよい。
オプションの一ソリューションにおいて、シンタックス要素は、ターゲット候補動き情報のインデックス(例えば、merge_idx[xCb][yCb])を含み、ターゲット候補動き情報は、ターゲット候補動きベクトル、参照フレームインデックス、及び予測方向指示情報(例えば、predFlagL0=1及びpredFlagL1=1)を含み、予測方向指示情報は、双方向予測が適用されることを指し示すために使用され、ターゲット候補動きベクトルは、第1リスト(すなわち、list0)に対応する第1動きベクトル、及び第2リスト(すなわち、list1)に対応する第2動きベクトルを含み、参照フレームインデックスは、第1リストに対応する第1参照フレームのインデックス(例えば、refIdxL0)、及び第2リストに対応する第2参照フレームのインデックス(例えば、refIdxL1)を含む。
この出願のこの実施形態において、参照フレームインデックスは、指定された参照ピクチャリスト(第1リストlist0又は第2リストlist1)内の使用される動きベクトル(例えば、第1動きベクトル又は第2動きベクトル)に対応する参照ピクチャを特定するために使用される。ピクチャはフレームと称されることがあり、参照ピクチャは参照フレームと称されることがある。
映像コーディング分野において、インター予測モードは、前方予測、後方予測、及び双方向予測(前方予測及び後方予測を含む)を含み、エンコーダ側で使用される特定の予測モードは、通常、予測方向指示情報によって指し示される。例えば、予測方向指示情報は、シンタックス要素predFlagL0及びpredFlagL1を含み得る。predFlagL0=1且つpredFlagL1=1であるとき、予測方向指示情報は、双方向予測が適用されることを指し示す。predFlagL0=1且つpredFlagL1=0であるとき、予測方向指示情報は、前方予測が使用されることを指し示す。predFlagL0=0且つpredFlagL1=1であるとき、予測方向指示情報は、後方予測が使用されることを指し示す。理解され得ることには、“前方”及び“後方”は、それぞれ、現在ピクチャの参照ピクチャリスト0(list0、すなわち、前述の第1リスト)及び参照ピクチャリスト1(list1、すなわち、前述の第2リスト)に対応する。
オプションの一ソリューションにおいて、シンタックス要素は、第1インデックス、第2インデックス、予測方向指示情報、及び動きベクトル差MVDを含み、第1インデックス(例えば、mvp_lX_flag[xCb][yCb])は、ターゲット候補動きベクトル予測子を指し示すために使用され、ターゲット候補動きベクトル予測子は、第1リスト(例えば、list0)に対応する第1動きベクトル予測子、及び第2リスト(例えば、list1)に対応する第2動きベクトル予測子を含み、動きベクトル差MVDは、第1リストに対応する第1MVD、及び/又は第2リストに対応するMVDを含む(オプションで、MMVD技術が使用されるとき、1つのMVDのみが伝送されてもよく、別方向のものであってデコーダ側によって使用される必要があるMVDは、伝送されたMVDに基づいて導出され得る)。第2インデックス(これらは、参照フレームインデックスとも称される)は、現在ピクチャブロックの参照フレームを指し示すために使用され、参照フレームは、第1リストに対応する第1参照フレーム、及び第2リストに対応する第2参照フレームを含む。例えば、第2インデックスは、refIdxL0及びrefIdxL1であり、refIdxL0は、第1リストに対応する第1参照フレームのインデックスであり、refIdxL1は、第2リストに対応する第2参照フレームのインデックスである。予測方向指示情報(例えば、predFlagL0=1及びpredFlagL1=1)は、双方向予測が適用されることを指し示すために使用される。
第1リストに対応する第1動きベクトル(例えば、Mv0_L0)は、第1リストに対応する第1動きベクトル予測子(例えば、Mvp0_L0)と、第1リストに対応する第1MVD(例えば、MVD0)とに基づいて取得される。例えば、Mv0_L0=Mvp0_L0+MVD0である。
第2リストに対応する第2動きベクトル(例えば、Mv1_L1)は、第2リストに対応する第2動きベクトル予測子(例えば、Mvp1_L1)と、第2リストに対応する第2MVD(例えば、MVD1)とに基づいて取得される。例えば、Mv1_L1=Mvp1_L1+MVD1である。
映像コーディング分野において、インター予測モードは、前方予測、後方予測、及び双方向予測(前方予測及び後方予測を含む)を含み、エンコーダ側で使用される特定の予測モードは、通常、予測方向指示情報によって指し示される。例えば、予測方向指示情報は、シンタックス要素predFlagL0及びpredFlagL1を含み得る。predFlagL0=1且つpredFlagL1=1であるとき、予測方向指示情報は、双方向予測が適用されることを指し示す。predFlagL0=1且つpredFlagL1=0であるとき、予測方向指示情報は、前方予測が使用されることを指し示す。predFlagL0=0且つpredFlagL1=1であるとき、予測方向指示情報は、後方予測が使用されることを指し示す。理解され得ることには、“前方”及び“後方”は、それぞれ、現在ピクチャの参照ピクチャリスト0(list0、すなわち、前述の第1リスト)及び参照ピクチャリスト1(list1、すなわち、前述の第2リスト)に対応する。
オプションの一ソリューションにおいて、エントロピー復号ユニットは具体的に、ビットストリームを解析して、サンプル残差とシンタックス要素とを取得するように構成され、再構成ユニットは具体的に、サンプル残差と現在ピクチャブロックの予測サンプル値に基づいて、現在ピクチャブロックのサンプル値を決定するように構成される。
第10態様によれば、この出願の一実施形態は、インター予測装置(例えば、インター予測ユニット)を提供し、当該インター予測装置は、
現在ピクチャブロックが複数のプリセット条件を満足するかを判定するように構成された判定ユニットと、
上記複数のプリセット条件が満足されるときに、現在ピクチャブロックに対して双方向オプティカルフローBDOF(Bi-directional optical flow、略してBIO又はBDOF)処理を実行して現在ピクチャブロックの予測サンプル値を取得するように構成されたインター予測処理ユニットであり、上記複数のプリセット条件は少なくとも、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することという条件を含む、インター予測処理ユニットと、を含む。現在ピクチャブロックのサイズは、通常、幅及び高さ(短くW×Hと記載される)によって表され、幅及び高さは、サンプル(sample又はpixel)によって測定される。例えば、現在ピクチャブロックのサイズが8×8である場合、1つめの8は、現在ピクチャブロックの幅が8サンプルであることを示し、2つめの8は、現在ピクチャブロックの高さが8サンプルであることを示す。他の一例では、現在ピクチャブロックのサイズが8×16である場合、8は、現在ピクチャブロックの幅が8サンプルであることを示し、16は、現在ピクチャブロックの高さが16サンプルであることを示す。
現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、且つ現在ピクチャブロックの幅Wと高さHとの積が64に等しいときに幅Wが高さHに等しくない、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、且つ現在ピクチャブロックの幅Wが8以上である、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、現在ピクチャブロックの幅Wが8以上であり、且つ現在ピクチャブロックの幅Wと現在ピクチャブロックの高さHとの積が64よりも大きい、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、現在ピクチャブロックの幅Wが8以上であり、且つ現在ピクチャブロックの幅Wと現在ピクチャブロックの高さHとの積が128よりも大きい、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8よりも大きい、ことを含む。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8よりも大きく、且つ現在ピクチャブロックの幅Wが8以上である、ことを含む。
なお、BDOF技術に従って、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて現在ピクチャブロックの現在サブブロックの予測サンプル値を決定する(又は予測を通じて取得する)かが決定される前に、現在ピクチャブロックのサイズに加えて、別の参照条件が存在してもよい。別の参照条件は、ここで限定されるものではない。理解を容易にするために、以下では、説明のための例を用いる。
条件A: 現在映像シーケンスに対してBDOF技術が使用されることが許されることを指し示すハイレベルシンタックス識別子sps_bdof_enabled_flagが存在する。
条件B: 第1リスト(List1)に対応する予測方向指示情報predFlagL0が1に等しく、且つ第2リスト(list0)に対応する予測方向指示情報predFlagL1が1に等しい。
条件C: 第1リスト(list0)に対応する参照フレームのピクチャオーダカウントPOC_L0、第2リスト(list1)に対応する参照フレームのピクチャオーダカウントPOC_L1、及びその中に現在ピクチャブロックが位置するピクチャのピクチャオーダカウントPOC_Curが、(POC_L0-POC_Cur)×(POC_L1-POC_Cur)<0という関係を満足する。換言すれば、現在ピクチャブロックを含むピクチャが、2つの参照ピクチャの間にある。
条件D: MotionModelIdc[xCb][yCb]が0に等しい。MotionModelIdcは、動き補償に関する動きモデルインデックスである。0に等しいMotionModelIdc[xCb][yCb]は、現在ブロックの動き補償のための動きモデルが並進運動(Translational motion)であることを指し示す。
条件E: merge_subblock_flag[x0][y0]が0に等しく、ここで、0に等しいmerge_subblock_flag[x0][y0]は、現在ピクチャブロックに対してサブブロックマージモードが適用されないことを指し示す。
条件F: sym_mvd_flag[x0][y0]が0に等しい。0に等しいsym_mvd_flag[x0][y0]は、現在ブロックに対してmvd_coding(x0,y0,refList,cpIdx)シンタックス構造が存在することを指し示す。
条件G: bcwIdx[xCb][yCb]が0に等しい。bcwIdxは、現在ピクチャブロックに対する双方向予測重みインデックスを示す。
条件H: cIdxが0に等しい。cIdxは、現在ピクチャブロックの色成分インデックスを表す。
条件I: 現在ピクチャブロックのサイズが第1のプリセットサイズである。
条件J: luma_weight_l0_flag[refIdxL0]及びluma_weight_l1_flag[refIdxL1]の両方が0に等しく、ここで、0に等しいluma_weight_l0_flagは、list0予測のluma成分に対する重み付け係数が存在しないことを指し示し、0に等しいluma_weight_l1_flagは、list1予測のluma成分に対する重み付け係数が存在しないことを指し示す。
例えば、条件A乃至Jの全てが満足されるとき、現在ピクチャブロックの予測サンプル値を予測するためにBDOF技術が使用され得ることが決定される。例えば、bdofFlagがtrueに設定される。なお、前述の条件は単なる例であり、別の条件が更に追加されたり、あるいは前述の条件のうちの1つ以上が置き換えられたり、あるいは前述の条件のうちの1つ以上が除去されたりしてもよい。
理解されるべきことには、ここでの現在ピクチャブロック(これは、現在ブロックとも称される)は、処理中のピクチャブロックとして理解され得る。例えば、符号化プロセスにおいて、現在ピクチャブロックは、符号化中のピクチャブロック(encoding block)である。確かなことには、ここでの現在ピクチャブロックは代わりに、処理中のピクチャブロックとして理解されてもよい。例えば、復号プロセスにおいて、現在ピクチャブロックは、復号中のピクチャブロック(decoding block)である。
オプションの一ソリューションにおいて、インター予測処理ユニットは更に、上記複数のプリセット条件のうちの少なくとも1つが満足されないときに、現在ピクチャブロックに対して双方向オプティカルフローBDOF(Bi-directional optical flow、略してBIO又はBDOF)処理を実行することをスキップするように構成される。
理解され得ることには、前述のケースを参考にして、別のケースを更に得ることができ、別のケースもこの出願の保護範囲に入るものである。
理解されるべきことには、この出願のこの実施形態における方法は、ビデオエンコーダ、又は映像符号化機能を持つエレクトロニクス装置によって実行されることができ、あるいは、ビデオエンコーダ、又は映像符号化機能を持つエレクトロニクス装置によって実行されることができる。例えば、当該方法は具体的に、これらの装置内のインター予測ユニットによって実行され得る。
具体的には、BDOF技術を有効にする又は使用するための、このソリューションにおける条件は、BDOF技術を有効にする又は使用するための、従来技術における条件とは異なり、特に、現在ピクチャブロックのサイズに関する要件が異なる。第1のプリセットサイズを持つ現在ピクチャブロックに対してBDOF技術を使用することで、元のサンプル値にいっそう近い予測サンプル値を得ることができ、また、コーディングの複雑さを適切に制御することができる。これは、符号化/復号の複雑さと予測精度とをある程度バランスさせ、それによりコーディング効率を向上させる。
第11態様によれば、この出願の一実施形態は、映像データ復号装置を提供し、当該装置は、
映像データをビットストリームの形態で格納するように構成されたメモリと、
ビットストリームを復号してシンタックス要素を取得し、シンタックス要素は少なくとも、双方向予測が適用されることを指し示すために使用され、複数のプリセット条件が満足されるときに、現在ピクチャブロックに対して双方向オプティカルフローBDOF処理を実行して現在ピクチャブロックの予測サンプル値を取得する、ように構成されたビデオデコーダであり、上記複数のプリセット条件は少なくとも、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することという条件を含む、ビデオデコーダと、
を含む。
現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、且つ現在ピクチャブロックの幅Wと高さHとの積が64に等しいときに幅Wが高さHに等しくない、ことを含む。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、且つ現在ピクチャブロックの幅Wが8以上である、ことを含む。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、現在ピクチャブロックの幅Wが8以上であり、且つ現在ピクチャブロックの幅Wと現在ピクチャブロックの高さHとの積が64よりも大きい、ことを含む。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、現在ピクチャブロックの幅Wが8以上であり、且つ現在ピクチャブロックの幅Wと現在ピクチャブロックの高さHとの積が128よりも大きい、ことを含む。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8よりも大きい、ことを含む。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8よりも大きく、且つ現在ピクチャブロックの幅Wが8以上である、ことを含む。
第12態様によれば、この出願の一実施形態は、映像データ符号化装置を提供し、当該装置は、
映像データを格納するように構成されたメモリであり、映像データは1つ以上のピクチャブロックを含む、メモリと、
複数のプリセット条件が満足されるときに、現在ピクチャブロックに対して双方向オプティカルフローBDOF処理を実行して現在ピクチャブロックの予測サンプル値を取得するように構成されたビデオエンコーダであり、上記複数のプリセット条件は少なくとも、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することという条件を含む、ビデオエンコーダと、
を含む。
現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、且つ現在ピクチャブロックの幅Wと高さHとの積が64に等しいときに幅Wが高さHに等しくない、ことを含む。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、且つ現在ピクチャブロックの幅Wが8以上である、ことを含む。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、現在ピクチャブロックの幅Wが8以上であり、且つ現在ピクチャブロックの幅Wと現在ピクチャブロックの高さHとの積が64よりも大きい、ことを含む。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、現在ピクチャブロックの幅Wが8以上であり、且つ現在ピクチャブロックの幅Wと現在ピクチャブロックの高さHとの積が128よりも大きい、ことを含む。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8よりも大きい、ことを含む。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8よりも大きく、且つ現在ピクチャブロックの幅Wが8以上である、ことを含む。
ビデオエンコーダは更に、シンタックス要素を送信対象ビットストリームに符号化するように構成され、シンタックス要素は少なくとも、双方向予測が適用されることを指し示すために使用される。
第13態様によれば、この出願の一実施形態は、互いに結合された不揮発性メモリとプロセッサとを含む符号化装置を提供する。プロセッサは、メモリに格納されたプログラムコードを呼び出して、第1態様におけるいずれかの方法の一部又は全てのステップを実行する。
第14態様によれば、この出願の一実施形態は、互いに結合された不揮発性メモリとプロセッサとを含む復号装置を提供する。プロセッサは、メモリに格納されたプログラムコードを呼び出して、第1態様におけるいずれかの方法の一部又は全てのステップを実行する。
第15態様によれば、この出願の一実施形態は、コンピュータ読み取り可能記憶媒体を提供する。当該コンピュータ読み取り可能記憶媒体はプログラムコードを格納し、該プログラムコードは、第1態様におけるいずれかの方法の一部又は全てのステップを実行するために使用される命令を含む。
第16態様によれば、この出願の一実施形態は、コンピュータプログラムプロダクトを提供する。当該コンピュータプログラムプロダクトがコンピュータ上で実行されるとき、該コンピュータは、第1態様におけるいずれかの方法の一部又は全てのステップを実行することを可能にされる。
理解されるべきことには、この出願の第2乃至第16態様における技術的ソリューションは、この出願の第1態様における技術的ソリューションと一致し、これらの態様及び対応する実現可能な実装によって達成される有益な効果は同様である。詳細を再び説明することはしない。
この出願の実施形態又は背景における技術的ソリューションをいっそう明確に説明するために、以下に、この出願の実施形態又は背景を説明するための添付の図面を説明する。
この出願の一実施形態を実装する映像符号化及び復号システム10の一例のブロック図である。
この出願の一実施形態を実装する映像コーディングシステム40の一例のブロック図である。
この出願の一実施形態を実装するエンコーダ20の一構成例のブロック図である。
この出願の一実施形態を実装するデコーダ30の一構成例のブロック図である。
この出願の一実施形態を実装する映像コーディング装置400の一例のブロック図である。
この出願の一実施形態を実装する符号化装置又は復号装置10の他の一例のブロック図である。
この出願の一実施形態に従った現在ピクチャブロック及び参照ブロックの動き情報の概略図である。
この出願の一実施形態に従ったインター予測シナリオの概略図である。
この出願の一実施形態に従ったインター隣接ブロックのシナリオの概略図である。
この出願の一実施形態に従った符号化方法の概略フローチャートである。
この出願の一実施形態を実装する前方参照ピクチャ及び後方参照ピクチャの概略図である。
この出願の一実施形態を実装する動きベクトル精緻化プロセスの概略図である。
この出願の一実施形態に従ったパディングベースの拡張手法のシナリオの概略図である。
この出願の一実施形態に従った復号方法の概略フローチャートである。
この出願の一実施形態に従ったインター予測装置の概略構成図である。
以下、この出願の実施形態における添付の図面を参照して、この出願の実施形態を説明する。以下の説明では、この開示の一部を形成するものであるとともに、この出願の実施形態の特定の態様又はこの出願の実施形態が使用され得る特定の態様を例示によって示すものである添付の図面を参照する。理解されるべきことには、この出願の実施形態は、他の態様で使用されることができ、また、添付の図面に描かれない構造的又は論理的な変更を含むことができる。従って、以下の詳細な説明は、限定的な意味で解釈されるものではなく、この出願の範囲は、添付の請求項によって定められる。例えば、理解されるべきことには、記載される方法と組み合わせて開示される内容は、その方法を実行するように構成される対応する装置又はシステムにも当てはまり得るものであり、その逆もまた然りである。例えば、1つ以上の特定の方法ステップが記載される場合、対応する装置は、たとえそのような1つ以上のユニットが明示的に記載されたり添付の図面に示されたりしていなくても、記載された1つ以上の方法ステップを実行するための、例えば機能ユニットなどの1つ以上のユニット(例えば、該1つ以上のステップを実行する1つのユニット、又は各々がそれら複数のステップのうちの1つ以上を実行する複数のユニット)を含み得る。また、例えば、特定の装置が、例えば機能ユニットなどの1つ以上のユニットに基づいて記載される場合、対応する方法は、たとえそのような1つ以上のステップが明示的に記載されたり添付の図面に示されたりしていなくても、該1つ以上のユニットの機能を実行するのに使用される1つのステップ(例えば、該1つ以上のユニットの機能を実行する1つのステップ、又は各々が複数のユニットのうちの1つ以上の機能を実行するのに使用される複数のステップ)を含み得る。さらに、理解されるべきことには、この明細書に記載される様々な実施形態例及び/又は態様の特徴は、具体的に別段の断りがない限り、互いに組み合わされてもよい。
この出願の実施形態における技術的ソリューションは、既存の映像コーディング標準(例えば、H.264及びHEVCなどの標準)に適用され得るだけでなく、将来の映像コーディング標準(例えば、H.266標準)にも適用され得る。この出願の実装において使用される用語は、単にこの出願の特定の実施形態を説明することを意図したものであり、この出願を限定することを意図したものではない。以下にて先ず、この出願の実施形態において関係する概念を簡単に説明する。
映像コーディングは、通常、映像又は映像シーケンスを構成する一連のピクチャを処理することを指す。映像コーディングの分野において、用語“ピクチャ(picture)”、“フレーム(frame)”及び“画像(image)”は、同義語として使用され得る。この明細書で使用される映像コーディングは、映像符号化及び映像復号を含む。映像符号化は、ソース側で実行され、通常、より効率的なストレージ及び/又は伝送のために、元の映像ピクチャを(例えば、圧縮することによって)処理して、映像ピクチャを表すためのデータの量を減らすことを含む。映像復号は、デスティネーション側で実行され、通常、映像ピクチャを再構成するために、エンコーダに対して逆の処理を含む。実施形態における映像ピクチャの“コーディング”は、映像シーケンスの“符号化”又は“復号”として理解されるべきである。符号化部分と復号部分との組み合わせも、コーディング(符号化及び復号)と呼ばれる。
映像シーケンスは、一連のピクチャ(picture)を含み、ピクチャは更にスライス(slice)に分割され、スライスは更にブロック(block)に分割される。映像コーディングは、ブロックによって行われる。一部の新しい映像コーディング標準では、“ブロック”という概念が更に拡張されている。例えば、マクロブロック(macroblock、MB)がH.264標準で導入されている。マクロブロックは更に、予測コーディング(partition)に用いられることが可能な複数の予測ブロックに分割され得る。ハイエフィシェンシビデオコーディング(high efficiency video coding、HEVC)標準では、例えば“コーディングユニット”(coding unit、CU),“予測ユニット”(prediction、PU)、及び“変換ユニット”(transform unit、TU)などの基本概念が使用されている。複数のブロックユニットが、機能分割を通しって得られ、新しいツリーベースの構造を用いることによって記述される。例えば、CUは、四分木に基づいていっそう小さいCUに分割されることができ、該いっそう小さいCUが更に分割されて、四分木構造を生成し得る。CUは、コーディングされるピクチャを分割及び符号化することの基本単位である。PU及びTUも同様のツリー構造を持つ。PUは予測ブロックに対応することができ、予測コーディングに関する基本単位である。CUは、ある分割モードにて複数のPUに更に分割される。TUは変換ブロックに対応することができ、予測残差を変換するのに使用される基本単位である。しかしながら、実際のところは、CU、PU、及びTUはどれも概念上はブロック(又はピクチャブロック)である。
例えば、HEVCでは、CTUが、コーディングツリーとして表される四分木構造を用いることによって複数のCUに分割される。ピクチャ領域をインターピクチャ(時間)予測を通じて符号化するか、それともイントラピクチャ(空間)予測を通じて符号化するかの決定が、CUレベルで行われる。各CUは更に、PU分割タイプに基づいて、1つ、2つ、又は4つのPUに分割され得る。1つのPU内では、同じ予測プロセスが適用され、関係する情報がPUベースでデコーダに伝送される。PU分割タイプに基づいて予測プロセスを適用することによって残差ブロックを得た後、CUは、CUに使用されたコーディングツリーに似た別の四分木構造に基づいて変換ユニット(transform unit、TU)に分割され得る。映像圧縮技術の最近の開発では、四分木プラス二分木(Quad-tree and binary tree、QTBT)パーティションフレームが、コーディングブロックを分割するのに使用されている。QTBTブロック構造では、CUは正方形又は長方形であるとし得る。
この明細書では、説明及び理解を容易にするために、現在ピクチャ内の処理対象ピクチャブロックを、現在ブロック又は処理対象ピクチャブロックと称することがある。例えば、符号化において、ピクチャブロックは符号化中のブロックであり、復号において、ピクチャブロックは復号中のブロックである。現在ブロックを予測するのに使用される参照ピクチャ内の復号ピクチャブロックは、参照ブロックと称される。具体的には、参照ブロックは、現在ブロックに対して参照信号を提供するブロックであり、参照信号は、ピクチャブロック内のサンプル値を表す。参照ピクチャ内の、現在ブロックに対して予測信号を提供するブロックは、予測ブロックと称され得る。予測信号は、予測ブロック内のピクセル値、サンプリング値、又はサンプリング信号を表す。例えば、複数の参照ブロックが検討された後、最適な参照ブロックが発見される。その最適な参照ブロックが、現在ブロックに対して予測を提供し、そのブロックが予測ブロックと称される。
可逆映像コーディングの場合、元の映像ピクチャを再構成することができる。具体的には、(ストレージ又は伝送中に伝送損失又は他のデータ損失が発生しないと仮定して、)再構成映像ピクチャが元の映像ピクチャと同じ品質を持つ。非可逆映像コーディングの場合、映像ピクチャを表すのに必要とされるデータ量を減らすために、例えば量子化を通じて更なる圧縮が行われ、デコーダ側で映像ピクチャを完全に再構成することはできない。具体的には、再構成映像ピクチャの品質は、元の映像ピクチャの品質よりも低い又は劣る。
一部のH.261映像コーディング標準は、“非可逆ハイブリッド映像コーディング”(具体的には、サンプルドメインでの空間及び時間予測が、変換ドメインで量子化を適用するための2D変換コーディングと組み合わされる)に関するものである。映像シーケンス内の各ピクチャは、通常、一組の重なり合わないブロックに分割され、コーディングは通常、ブロックレベルで実行される。具体的には、エンコーダ側で、通常、映像がブロック(映像ブロック)レベルで処理され、すなわち、符号化される。例えば、空間(イントラピクチャ)予測及び時間(インターピクチャ)予測を通じて予測ブロックが生成され、該予測ブロックが現在ブロック(処理中又は処理対象のブロック)から差し引かれることで残差ブロックが得られ、該残差ブロックが変換ドメインで変換され量子化されて、伝送(圧縮)されることになるデータの量が減少する。デコーダ側で、符号化されたブロック又は圧縮されたブロックに、エンコーダに対して逆の処理部分が適用されて、表現のために現在ブロックが再構成される。さらに、エンコーダは、後続ブロックを処理すなわち符号化するためにエンコーダとデコーダとが同じ予測(例えば、イントラ予測及びインター予測)及び/又は再構成を生成するよう、デコーダ処理ループを複製する。
以下、この出願の実施形態が適用されるシステムアーキテクチャを説明する。図1Aは、この出願の実施形態が適用される映像符号化及び復号システム10の一例の概略ブロック図である。図1Aに示すように、映像符号化及び復号システム10は、ソース装置12及びデスティネーション装置14を含み得る。ソース装置12は符号化映像データを生成し、それ故に、ソース装置12は映像符号化装置として参照され得る。デスティネーション装置14は、ソース装置12によって生成された符号化映像データを復号することができ、それ故に、デスティネーション装置14は、映像復号装置として参照され得る。様々な実装ソリューションにおいて、ソース装置12、デスティネーション装置14、又はソース装置12及びデスティネーション装置14の双方が、1つ以上のプロセッサと、該1つ以上のプロセッサに結合されたメモリとを含み得る。メモリは、以下に限られないが、RAM、ROM、EEPROM、フラッシュメモリ、又はこの明細書で説明されるように、コンピュータにアクセス可能な命令又はデータ構造の形態で所望のプログラムコードを格納するのに使用されることが可能な任意の他の媒体を含み得る。ソース装置12及びデスティネーション装置14は、デスクトップコンピュータ、モバイルコンピューティング装置、ノートブック(例えば、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、例えば所謂“スマート”フォンなどの電話ハンドセット、テレビ、カメラ、表示装置、デジタルメディアプレーヤ、ビデオゲームコンソール、車載コンピュータ、無線通信装置、又はこれらに類するものを含め、様々な装置を含み得る。
図1Aはソース装置12及びデスティネーション装置14を別々の装置として描いているが、装置実施形態は代わりに、ソース装置12及びデスティネーション装置14の両方、又はソース装置12及びデスティネーション装置14の両方の機能、すなわち、ソース装置12若しくは対応する機能とデスティネーション装置14若しくは対応する機能、を含んでもよい。そのような一実施形態において、ソース装置12若しくは対応する機能、及びデスティネーション装置14若しくは対応する機能は、同一のハードウェア及び/又はソフトウェア、別々のハードウェア及び/又はソフトウェア、又はこれらの何らかの組み合わせを用いることによって実装され得る。
ソース装置12とデスティネーション装置14との間の通信接続は、リンク13を介して実装され得る。デスティネーション装置14は、リンク13を介してソース装置12から符号化映像データを受信し得る。リンク13は、符号化映像データをソース装置12からデスティネーション装置14へ移動させることができる1つ以上の媒体又は装置を含み得る。一例において、リンク13は、ソース装置12が符号化映像データをリアルタイムにデスティネーション装置14に直接送信することを可能にする1つ以上の通信媒体を含み得る。この例において、ソース装置12は、通信標準(例えば、無線通信プロトコル)に従って符号化映像データを変調することができ、また、変調した映像データをデスティネーション装置14に送信することができる。上記1つ以上の通信媒体は、例えば無線周波数(RF)スペクトル又は1つ以上の物理的な伝送ケーブルといった、無線通信媒体及び/又は有線通信媒体を含み得る。上記1つ以上の通信媒体は、パケットベースのネットワークの一部であってもよく、パケットベースのネットワークは、例えば、ローカルエリアネットワーク、ワイドエリアネットワーク、又はグローバルネットワーク(例えば、インターネット)である。上記1つ以上の通信媒体は、ソース装置12からデスティネーション装置14への通信を支援するルータ、交換機、基地局、又は他の装置を含んでもよい。
ソース装置12はエンコーダ20を含む。オプションで、ソース装置12は更に、ピクチャ源16、ピクチャプリプロセッサ18、及び通信インタフェース22を含み得る。特定の一実装形態において、エンコーダ20、ピクチャ源16、ピクチャプリプロセッサ18、及び通信インタフェース22は、ソース装置12内のハードウェアコンポーネントであってもよいし、あるいはソース装置12内のソフトウェアプログラムであってもよい。以下の通り、説明を別々に提供する。
ピクチャ源16は、例えば実世界のピクチャをキャプチャするように構成された任意のタイプのピクチャキャプチャデバイス、及び/又は、例えばコンピュータアニメーションピクチャを生成するように構成されたコンピュータグラフィックスプロセッサといった、ピクチャ若しくはコメント(スクリーンコンテンツ符号化のためのものであり、スクリーン上の一部のテキストも符号化対象ピクチャ若しくは画像の一部と考えられる)を生成する任意のタイプのデバイス、又は、実世界のピクチャ若しくはコンピュータアニメーションピクチャ(例えば、スクリーンコンテンツ若しくは仮想現実(virtual reality、VR)ピクチャ)及び/又はこれらの任意の組み合わせ(例えば、拡張現実(augmented reality、AR)ピクチャ)を取得及び/又は提供するように構成された任意のタイプのデバイスを含むことができ、あるいは、それであることができる。ピクチャ源16は、ピクチャをキャプチャするように構成されたカメラ又はピクチャを格納するように構成されたメモリであってもよい。ピクチャ源16は更に、先行してキャプチャ又は生成されたピクチャがそれを介して格納される及び/又はピクチャがそれを介して取得又は受信される任意のタイプの(内部又は外部)インタフェースを含み得る。ピクチャ源16がカメラである場合、ピクチャ源16は、例えば、ローカルなカメラ、又はソース装置に集積された集積カメラとし得る。ピクチャ源16がメモリである場合、ピクチャ源16は、ローカルなメモリ、又は、例えば、ソース装置に集積された集積メモリとし得る。ピクチャ源16がインタフェースを含む場合、インタフェースは、例えば、外部映像源からピクチャを受信するための外部インタフェースとし得る。外部映像源は、例えば、カメラ、外部メモリ、又は外部ピクチャ生成装置などの外部ピクチャキャプチャリング装置である。外部ピクチャ生成装置は、例えば、外部コンピュータグラフィックスプロセッサ、コンピュータ、又はサーバである。インタフェースは、例えば、何らかの独自の又は標準化されたインタフェースプロトコルに従った有線若しくは無線インタフェース又は光インタフェースといった、任意のタイプのインタフェースとし得る。
ピクチャは、ピクチャエレメント(picture element)の二次元アレイ又はマトリクスとみなされ得る。アレイ内のピクチャエレメントはサンプルとも称され得る。アレイ又はピクチャの水平及び垂直方向(又は軸)のサンプルの数が、ピクチャのサイズ及び/又は解像度を定める。色の表現のため、通常、3つのカラーコンポーネントが採用され、具体的には、ピクチャは、3つのサンプルアレイとして表現されることができ、あるいは、それらを含むことができる。例えば、RBGフォーマット又は色空間では、ピクチャは対応する赤、緑、及び青のサンプルアレイを含む。しかしながら、映像コーディングにおいて、各サンプルは、通常、ルミナンス/クロミナンスフォーマット又は色空間で表現される。例えば、YUVフォーマットのピクチャは、Yによって示されるルミナンスコンポーネント(代わりにLによって示されるときもある)と、U及びVによって示される2つのクロミナンスコンポーネントとを含む。ルミナンス(ルマ(luma))コンポーネントYは、輝度又はグレーレベル強度(例えば、グレースケールピクチャではどちらも同じである)を表し、2つのクロミナンス(クロマ(chroma))コンポーネントU及びVは、色度又は色情報コンポーネントを表す。対応して、YUVフォーマットのピクチャは、ルミナンスサンプル値(Y)のルミナンスサンプルアレイと、クロミナンス値(U及びV)の2つのクロミナンスサンプルアレイとを含む。RGBフォーマットのピクチャがYUVフォーマットに変換される(transformed又はconverted)ことがあり、その逆もまた然りである。このプロセスは色変換(color conversion又はtransformation)とも称される。ピクチャがモノクロである場合、そのピクチャはルミナンスサンプルアレイのみを含み得る。この出願のこの実施形態において、ピクチャ源16によってピクチャプロセッサに送られるピクチャを、ロー(raw)ピクチャデータ17と称することもある。
ピクチャプリプロセッサ18は、ローピクチャデータ17を受信してローピクチャデータ17に対して前処理を行うことで、前処理されたピクチャ19又は前処理されたピクチャデータ19を得るように構成される。例えば、ピクチャプリプロセッサ18によって実行される前処理は、トリミング、カラーフォーマット変換(例えば、RGBフォーマットからYUVフォーマットへ)、色補正、又はノイズ除去を含み得る。
エンコーダ20(ビデオエンコーダ20とも称する)は、前処理されたピクチャデータ19を受信し、前処理されたピクチャデータ19を関連する予測モード(例えば、この明細書の実施形態における予測モードなど)で処理することで、符号化ピクチャデータ21を提供するように構成される(エンコーダ20の構成の詳細については、図2、図4、又は図5に基づいて更に後述する)。一部の実施形態において、エンコーダ20は、以下に記載される様々な実施形態を実行して、この出願に記載されるクロマブロック予測方法のエンコーダ側適用を実施するように構成され得る。
通信インタフェース22は、符号化ピクチャデータ21を受信し、符号化ピクチャデータ21を、ストレージ又は直接的な再構成のために、リンク13を介してデスティネーション装置14又は何らかの他の装置(例えば、メモリ)に送信するように構成され得る。該他の装置は、復号又はストレージに使用される任意の装置とし得る。通信インタフェース22は、例えば、符号化ピクチャデータ21を、例えばデータパケットをいった、リンク13上での伝送に適したフォーマットへとカプセル化するように構成され得る。
デスティネーション装置14はデコーダ30を含む。オプションで、デスティネーション装置14は更に、通信インタフェース28、ピクチャポストプロセッサ32、及び表示装置34を含み得る。以下の通り、説明を別々に提供する。
通信インタフェース28は、符号化ピクチャデータ21をソース装置12又は何らかの他のソースから受信するように構成され得る。該何らかの他のソースは、例えば、ストレージ装置である。該ストレージ装置は、例えば、符号化ピクチャデータストレージ装置である。通信インタフェース28は、ソース装置12とデスティネーション装置14との間のリンク13を介して、又は任意のタイプのネットワークを介して、符号化ピクチャデータ21を送信又は受信するように構成され得る。リンク13は、例えば、直接有線又は無線接続である。上記任意のタイプのネットワークは、例えば、有線若しくは無線ネットワーク又はこれらの任意の組み合わせ、又は任意のタイプの私設若しくは公衆ネットワーク又はこれらの任意の組み合わせである。通信インタフェース28は、例えば、通信インタフェース22を介して伝送されたデータパケットのカプセル化を解いて、符号化ピクチャデータ21を得るように構成され得る。
通信インタフェース28及び通信インタフェース22はどちらも、一方向通信インタフェース又は双方向通信インタフェースとして構成されることができ、例えば、接続を確立するためにメッセージを送受信するとともに、通信リンク及び/又は例えば符号化ピクチャデータ伝送などのデータ伝送に関係する何らかの他の情報を確認及び交換するように構成され得る。
デコーダ30(デコーダ30とも称する)は、符号化ピクチャデータ21を受信し、復号ピクチャデータ31又は復号ピクチャ31を提供するように構成される(デコーダ30の構成の詳細については、図3、図4、又は図5に基づいて更に後述する)。一部の実施形態において、デコーダ30は、以下に記載される様々な実施形態を実行して、この出願に記載されるクロマブロック予測方法のデコーダ側適用を実施するように構成され得る。
ピクチャポストプロセッサ32は、復号ピクチャデータ31(再構成ピクチャデータとも称する)を後処理して、後処理されたピクチャデータ33を得るように構成される。ピクチャポストプロセッサ32によって実行される後処理は、カラーフォーマット変換(例えば、YUVフォーマットからRGBフォーマットへ)、色補正、トリミング、リサンプリング、又は何らかの他の処理を含み得る。ピクチャポストプロセッサ32は更に、後処理されたピクチャデータ33を表示装置34に送信するように構成され得る。
表示装置34は、後処理されたピクチャデータ33を受信して、ピクチャを、例えばユーザ又は視聴者に表示するように構成される。表示装置34は、例えば一体化された又は外付けのディスプレイ又はモニタなど、再構成ピクチャを提示するための任意のタイプのディスプレイとすることができ、あるいは、それを含むことができる。例えば、ディスプレイは、液晶ディスプレイ(liquid crystal display、LCD)、有機発光ダイオード(organic light emitting diode、OLED)ディスプレイ、プラズマディスプレイ、プロジェクタ、マイクロLEDディスプレイ、液晶・オン・シリコン(liquid crystal on silicon、LCoS)、デジタル光プロセッサ(digital light processor、DLP)、又は任意のタイプの他のディスプレイを含み得る。
図1Aは、ソース装置12及びデスティネーション装置14を別々の装置として描いているが、装置実施形態は代わりに、ソース装置12及びデスティネーション装置14の両方、又はソース装置12及びデスティネーション装置14の両方の機能、すなわち、ソース装置12若しくは対応する機能とデスティネーション装置14若しくは対応する機能、を含んでもよい。そのような一実施形態において、ソース装置12若しくは対応する機能、及びデスティネーション装置14若しくは対応する機能は、同一のハードウェア及び/又はソフトウェア、別々のハードウェア及び/又はソフトウェア、又はこれらの何らかの組み合わせを用いることによって実装され得る。
これらの説明に基づいて当業者に明らかになるように、図1Aに示したソース装置12及び/又はデスティネーション装置14の異なるユニット又は機能の存在及び(厳密な)機能分割は、実際の装置及び用途に応じて変わり得る。ソース装置12及びデスティネーション装置14は、例えば、ノートブック若しくはラップトップコンピュータ、携帯電話、スマートフォン、タブレット若しくはタブレットコンピュータ、ビデオカメラ、デスクトップコンピュータ、セットトップボックス、テレビ、カメラ、車載装置、表示装置、デジタルメディアプレーヤ、ビデオゲームコンソール、映像ストリーミング装置(例えばコンテンツサービスサーバ又はコンテンツ配信サーバなど)、放送受信器装置、又は放送送信器装置といった、任意のタイプのハンドヘルド装置又は固定装置を含め、広範な装置のうちのいずれを含んでもよく、また、何らかの種類のオペレーティングシステムを使用してもよいし使用しなくてもよい。
エンコーダ20及びデコーダ30は各々、例えば、1つ以上のマイクロプロセッサ、デジタル信号プロセッサ(digital signal processor、DSP)、特定用途向け集積回路(application-specific integrated circuit、ASIC)、フィールドプログラマブルゲートアレイ(field-programmable gate array、FPGA)、ディスクリートロジック、ハードウェア、又はこれらの任意の組み合わせといった、様々な好適な回路のうちのいずれかとして実装され得る。ソフトウェアを用いることによって技術が部分的に実装される場合、装置は、ソフトウェア命令を好適な非一時的コンピュータ読み取り可能記憶媒体に格納し得るとともに、例えば1つ以上のプロセッサなどのハードウェアを用いることによって該命令を実行することで、この開示の技術を実行し得る。上述の内容(ハードウェア、ソフトウェア、ハードウェアとソフトウェアとの組み合わせ、及びこれらに類するものを含む)のいずれも、1つ以上のプロセッサとしてみなされてもよい。
一部のケースにおいて、図1Aに示した映像符号化及び復号システム10は単なる一例に過ぎず、この出願の技術は、符号化装置と復号装置との間に何らかのデータ通信を必ずしも含むものではない映像コーディング設定(例えば、映像符号化又は映像復号)に適用されてもよい。他の一例において、データは、ローカルメモリから取り出されたり、ネットワーク上でストリーミングされたり、などされることができる。映像符号化装置は、データを符号化して該データをメモリに格納することができ、及び/又は映像復号装置は、メモリからデータを取り出して該データを復号することができる。一部の例では、データを符号化して該データをメモリに格納する及び/又はメモリからデータを取り出して該データを復号するだけであって互いに通信しない装置が、符号化及び/又は復号を実行する。
図1Bは、一実施形態例に従った、図2のエンコーダ20及び/又は図3のデコーダ30を含む映像コーディングシステム40の一例の説明図である。映像コーディングシステム40は、この出願の実施形態における様々な技術の組み合わせを実装することができる。図示した実装において、映像コーディングシステム40は、撮像装置41、エンコーダ20、デコーダ30(及び/又は、処理回路46の論理回路47によって実装されるビデオエンコーダ/デコーダ)、アンテナ42、1つ以上のプロセッサ43、1つ以上のメモリ44、及び/又は表示装置45を含み得る。
図1Bに示すように、撮像装置41、アンテナ42、処理回路46、論理回路47、エンコーダ20、デコーダ30、プロセッサ43、メモリ44、及び/又は表示装置45は、互いに通信することができる。説明するように、映像コーディングシステム40は、エンコーダ20及びデコーダ30を有して示されているが、映像コーディングシステム40は、異なる例ではエンコーダ20のみ又はデコーダ30のみを含んでいてもよい。
一部の例において、アンテナ42は、映像データの符号化ビットストリームを送信又は受信するように構成され得る。さらに、一部の例において、表示装置45は、映像データを提示するように構成され得る。一部の例において、論理回路47は、処理回路46によって実装され得る。処理回路46は、特定用途向け集積回路(application-specific integrated circuit、ASIC)ロジック、グラフィックスプロセッサ、汎用プロセッサ、又はこれらに類するものを含み得る。映像コーディングシステム40はまた、オプションのプロセッサ43を含み得る。オプションのプロセッサ43は、同様に、特定用途向け集積回路(application-specific integrated circuit、ASIC)ロジック、グラフィックスプロセッサ、汎用プロセッサ、又はこれらに類するものを含み得る。一部の例において、論理回路47は、例えば映像コーディング用の専用ハードウェアといったハードウェアによって実装されてもよい。プロセッサ43は、汎用ソフトウェア、オペレーティングシステム、又はこれらに類するものによって実装されてもよい。さらに、メモリ44は、例えば、揮発性メモリ(例えば、スタティックランダムアクセスメモリ(Static Random Access Memory、SRAM)若しくはダイナミックランダムアクセスメモリ(Dynamic Random Access Memory、DRAM))又は不揮発性メモリ(例えば、フラッシュメモリ)といった、任意のタイプのメモリとし得る。非限定的な一例において、メモリ44は、キャッシュメモリによって実装され得る。一部の例において、論理回路47は、メモリ44にアクセスし得る(例えば、ピクチャバッファを実装するために)。他の例において、論理回路47及び/又は処理回路46は、ピクチャバッファを実装するためのメモリ(例えば、キャッシュ)を含んでいてもよい。
一部の例において、論理回路を用いることによって実装されるビデオエンコーダ20は、ピクチャバッファ(これは、例えば、処理回路46又はメモリ44によって実装される)及びグラフィックス処理ユニット(これは、例えば、処理回路46によって実装される)を含み得る。グラフィックス処理ユニットは、ピクチャバッファに通信可能に結合され得る。グラフィックス処理ユニットは、図2を参照して説明される様々なモジュール及び/又はこの明細書中で説明される何らかの他のエンコーダシステム若しくはサブシステムを実装するために、論理回路47によって実装されたエンコーダ20を含み得る。論理回路は、この明細書中で説明される様々な動作を実行するように構成され得る。
一部の例において、デコーダ30は、図3のデコーダ30を参照して説明される様々なモジュール及び/又はこの明細書中で説明される何らかの他のデコーダシステム若しくはサブシステムを実装するよう、同様にして論理回路47によって実装され得る。一部の例において、論理回路を用いることによって実装されるデコーダ30は、ピクチャバッファ(これは処理回路44又はメモリ44によって実装される)及びグラフィックス処理ユニット(これは、例えば、処理回路46によって実装される)を含み得る。グラフィックス処理ユニットは、ピクチャバッファに通信可能に結合され得る。グラフィックス処理ユニットは、図3を参照して説明される様々なモジュール及び/又はこの明細書中で説明される何らかの他のデコーダシステム若しくはサブシステムを実装するために、論理回路47によって実装されたデコーダ30を含み得る。
一部の例において、アンテナ42は、映像データの符号化ビットストリームを受信するように構成され得る。説明するように、符号化ビットストリームは、例えば、コーディング分割(例えば、変換係数又は量子化された変換係数、オプションのインジケータ(説明する)、及び/又はコーディング分割を定めるデータ)に関係するデータといった、映像フレーム符号化に関係し且つこの明細書中で説明されるデータ、インジケータ、インデックス値、モード選択データ、又はこれらに類するものを含み得る。映像コーディングシステム40は更に、アンテナ42に結合され且つ符号化ビットストリームを復号するように構成されたデコーダ30を含み得る。表示装置45は、映像フレームを提示するように構成される。
理解されるべきことには、この出願のこの実施形態において、エンコーダ20を参照して説明した例に対し、デコーダ30は逆プロセスを実行するように構成され得る。シンタックス要素をシグナリングすることに関して、デコーダ30は、そのようなシンタックス要素を受信して解析し、それに対応して、関係する映像データを復号するように構成され得る。一部の例において、エンコーダ20は、シンタックス要素を符号化映像ビットストリームにエントロピー符号化し得る。このような例において、デコーダ30は、シンタックス要素を解析し、それに対応して、関係する映像データを復号し得る。
なお、この出願の実施形態に記載される映像ピクチャ符号化方法はエンコーダ20上で実行され、この出願の実施形態に記載される映像ピクチャ復号方法はデコーダ30上で実行される。この出願の実施形態におけるエンコーダ20及びデコーダ30は、例えば、H.263、H.264、HEVV、MPEG-2、MPEG-4、VP8、又はVP9などの映像標準プロトコル、又は次世代映像標準プロトコル(例えばH.266など)に対応するエンコーダ/デコーダとし得る。
図2は、この出願の一実施形態を実装するように構成されたエンコーダ20の一例の概略的/概念的なブロック図である。図2の例において、エンコーダ20は、残差計算ユニット204、変換処理ユニット206、量子化ユニット208、逆量子化ユニット210、逆変換処理ユニット212、再構成ユニット214、バッファ216、ループフィルタ220、復号ピクチャバッファ(decoded picture buffer、DPB)230、予測処理ユニット260、及びエントロピー符号化ユニット270を含んでいる。予測処理ユニット260は、インター予測ユニット244、イントラ予測ユニット254、及びモード選択ユニット262を含み得る。インター予測ユニット244は、動き推定ユニット及び動き補償ユニット(図には示さず)を含み得る。図2に示すエンコーダ20は、ハイブリッドビデオエンコーダ、又はハイブリッドビデオコーデックに基づくビデオエンコーダとも称され得る。
例えば、残差計算ユニット204、変換処理ユニット206、量子化ユニット208、予測処理ユニット260、及びエントロピー符号化ユニット270は、エンコーダ20の前方信号パスを形成し、それに対し、例えば、逆量子化ユニット210、逆変換処理ユニット212、再構成ユニット214、バッファ216、ループフィルタ220、復号ピクチャバッファ(decoded picture buffer、DPB)230、及び予測処理ユニット260は、エンコーダの反転信号パスを形成する。エンコーダの反転信号パスは、デコーダ(図3のデコーダ30を参照)の信号パスに対応する。
エンコーダ20は、例えば入力202を介して、例えば映像又は映像シーケンスを形成する一連のピクチャ内のピクチャといった、ピクチャ201、又はピクチャ201のピクチャブロック203を受信する。ピクチャブロック203は、現在ピクチャブロック又は符号化対象ピクチャブロックと呼ばれることもあり、ピクチャ201は、現在ピクチャ又は符号化対象ピクチャと呼ばれることもある(特に映像コーディングにおいて、現在ピクチャを、例えば、同一の映像シーケンス、すなわち、現在ピクチャも含む映像シーケンスの中の以前に符号化及び/又は復号されたピクチャといった、他のピクチャから区別するため)。
エンコーダ20の一実施形態は、ピクチャ201を例えばピクチャブロック203などの複数のブロックに分割するように構成された分割ユニット(図2には描いていない)を含み得る。ピクチャ201は、通常、重なり合わない複数のブロックに分割される。分割ユニットは、映像シーケンス内の全てのピクチャに対して同じブロックサイズと、該ブロックサイズを定める対応するグリッドとを使用するように構成されてもよいし、あるいは、ピクチャ、又はサブセット、又はグループ・オブ・ピクチャの間でブロックサイズを変化させて、各ピクチャを対応するブロックに分割してもよい。
一例において、エンコーダ20の予測処理ユニット260は、上述の分割技術の任意の組み合わせを実行するように構成され得る。
ピクチャブロック203のサイズはピクチャ201のサイズより小さいものの、ピクチャ201のように、ピクチャブロック203も、サンプル値を持つサンプルの二次元アレイ又はマトリクスであり、あるいは該二次元アレイ又はマトリクスとみなされることができる。換言すれば、ピクチャブロック203は、例えば、1つのサンプルアレイ(例えば、モノクロピクチャ201の場合のルマアレイ)、3つのサンプルアレイ(例えば、カラーピクチャの場合の1つのルマアレイと2つのクロマアレイ)、又は、適用されるカラーフォーマットに応じた何らかの他の数及び/又はタイプのアレイを含み得る。ピクチャブロック203の水平及び垂直方向(又は軸)のサンプルの数が、ピクチャブロック203のサイズを定める。
図2に示すエンコーダ20は、ピクチャ201をブロックごとに符号化するように構成され、例えば、各ピクチャブロック203に対して符号化及び予測を実行するように構成される。
残差計算ユニット204は、ピクチャブロック203及び予測ブロック265(予測ブロック265についての更なる詳細は後で提供する)に基づいて残差ブロック205を計算するように構成され、例えば、サンプルごとに(ピクセルごとに)ピクチャブロック203のサンプル値から予測ブロック265のサンプル値を差し引くことによって、サンプルドメインにおける残差ブロック205を得るように構成される。
変換処理ユニット206は、例えば離散コサイン変換(discrete cosine transform、DCT)又は離散サイン変換(discrete sine transform、DST)といった変換を残差ブロック205のサンプル値に適用して、変換ドメインにおける変換係数207を得るように構成される。変換係数207は、変換残差係数と呼ばれることもあり、変換ドメインにおける残差ブロック205を表す。
変換処理ユニット206は、例えばHEVC/H.265に規定されている変換などの、DCT/DSTの整数近似を適用するように構成されてもよい。直交DCT変換と比較して、このような整数近似は、通常、あるファクタに基づいてスケーリングされる。順変換及び逆変換を用いることによって処理される残差ブロックのノルムを保存するために、変換プロセスの一部として追加のスケールファクタが適用される。該スケールファクタは通常、例えば、シフト演算のために該スケールファクタは2のべき乗であること、変換係数のビット深さ、又は精度と実装コストとの間のトレードオフといった、幾つかの制約に基づいて選択される。例えば、を用いることによって、デコーダ30側での例えば逆変換処理ユニット212による逆変換(及びエンコーダ20側での例えば逆変換処理ユニット212による対応する逆変換)に対して、特定のスケールファクタが指定され、それに対応して、エンコーダ20側での変換処理ユニット206による順変換に対して、対応するスケールファクタが指定され得る。
量子化ユニット208は、例えばスカラー量子化又はベクトル量子化を適用することによって、変換係数207を量子化して、量子化された変換係数209を得るように構成される。量子化された変換係数209は、量子化された残差係数209と呼ばれることもある。量子化プロセスは、変換係数207の一部の又は全てに関するビット深さを減少させ得る。例えば、nはmより大きいとして、nビット変換係数が量子化においてmビット変換係数に切り捨てられ得る。量子化の度合いは、量子化パラメータ(quantization parameter、QP)を調整することによって変更され得る。例えば、スカラー量子化では、より細かい又はより粗い量子化を達成するために複数の異なるスケールが適用され得る。より小さい量子化ステップサイズは、より細かい量子化に対応し、より大きい量子化ステップサイズは、より粗い量子化に対応する。量子化パラメータ(quantization parameter、QP)によって、適切な量子化ステップサイズが指し示され得る。例えば、量子化パラメータは、所定セットの適切な量子化ステップサイズに対するインデックスとし得る。例えば、より小さい量子化パラメータがより細かい量子化(より小さい量子化ステップサイズ)に対応するとともに、より大きい量子化パラメータがより粗い量子化(より大きい量子化ステップサイズ)に対応することができ、その逆もまた然りである。量子化は、量子化ステップサイズによる除算と、対応する量子化又は例えば逆量子化ユニット210によって実行される逆量子化とを含むことができ、あるいは、量子化ステップサイズによる乗算を含んでもよい。例えばHEVCなどの一部の標準に従った実施形態では、量子化パラメータを用いて量子化ステップサイズを決定し得る。一般に、量子化ステップサイズは、除算を含む式の不動点近似を用いることによって、量子化パラメータに基づいて計算され得る。残差ブロックのノルムを復元するために、更なるスケールファクタが量子化及び量子化解除に導入されてもよく、残差ブロックのノルムは、量子化ステップサイズ及び量子化パラメータに関する式の不動点近似に使用されるスケールのために変更され得るものである。一実装例において、逆変換のスケールが量子化解除のスケールと結合されてもよい。あるいは、カスタマイズされた量子化テーブルを使用し、それをエンコーダからデコーダへ例えばビットストリーム内でシグナリングしてもよい。量子化は、損失を伴う演算であり、より大きい量子化ステップは、より大きい損失を示す。
逆量子化ユニット210は、量子化された係数に量子化ユニット208の逆量子化を適用して、量子化解除された係数211を得るように構成され、例えば、量子化ユニット208と同じ量子化ステップサイズに基づいて又はそれを用いて、量子化ユニット208によって適用される量子化スキームの逆を適用するように構成される。量子化解除された係数211は、量子化解除された残差係数211と呼ばれることもあり、変換係数207に対応し得るが、量子化解除された係数211は、通常、量子化によって生じる損失のために変換係数とは異なる。
逆変換処理ユニット212は、例えば逆離散コサイン変換(discrete cosine transform、DCT)又は逆離散サイン変換(discrete sine transform、DST)といった、変換処理ユニット206によって適用される変換の逆変換を適用して、サンプルドメインにおける逆変換ブロック213を得るように構成される。逆変換ブロック213は、逆変換量子化解除ブロック213又は逆変換残差ブロック213と呼ばれることもある。
再構成ユニット214(例えば、加算器214)は、例えば再構成残差ブロック213のサンプル値と予測ブロック265のサンプル値とを足し合わせることによって、逆変換ブロック213(すなわち、再構成残差ブロック213)を予測ブロック265に足し合わせて、サンプルドメインにおける再構成ブロック215を得るように構成される。
オプションで、例えばイントラ予測のために、再構成ブロック215及び対応するサンプル値をバッファリング又は格納するように、例えばラインバッファ216のバッファユニット216(略して“バッファ”216)が構成される。他の実施形態において、エンコーダは、例えばイントラ予測といった何らかのタイプの推定及び/又は予測のためにバッファユニット216に格納された、フィルタリングされていない再構成ブロック及び/又は対応するサンプル値を使用するように構成されてもよい。
例えば、一実施形態において、エンコーダ20は、イントラ予測254のために使用されるだけでなくループフィルタユニット220内のユニット(図2には示さず)にも使用される再構成ブロック215をバッファユニット216が格納するように、及び/又は例えばバッファユニット216及び復号ピクチャバッファ230が1つのバッファを形成するように、構成されてもよい。他の一実施形態では、フィルタリングされたブロック221及び/又は復号ピクチャバッファ230からのブロック若しくはサンプル(図2には示さず)が、イントラ予測ユニット254のための入力又は基礎として使用される。
ループフィルタユニット220(略して“ループフィルタ”220)は、サンプル遷移をスムーズにするように又は映像品質を向上させるように、再構成ブロック215をフィルタリングして、フィルタリングされたブロック221を得るように構成される。ループフィルタユニット220は、例えば、デブロッキングフィルタ、サンプル適応オフセット(sample-adaptive offset、SAO)フィルタ、又は例えばバイラテラルフィルタ、適応ループフィルタ(adaptive loop filter、ALF)、鮮明化若しくは平滑化フィルタ、又は協調フィルタといった他のフィルタなどの、1つ以上のループフィルタを表すことを意図している。ループフィルタユニット220は、図2ではインループフィルタとして示されているが、他の一実装において、ループフィルタユニット220は、ポストループフィルタとして実装されてもよい。フィルタリングされたブロック221は、フィルタリングされた再構成ブロック221と呼ばれることもある。ループフィルタユニット220が再構成符号化ブロックに対してフィルタリング処理を行った後、復号ピクチャバッファ230が再構成符号化ブロックを格納し得る。
一実施形態において、エンコーダ20(対応して、ループフィルタユニット220)は、デコーダ30が同じループフィルタパラメータを受信して復号に適用することができるように、ループフィルタパラメータ(例えば、サンプル適応オフセット情報)を、例えば、直接的に、あるいはエントロピー符号化ユニット270又は何らかの他のエントロピー符号化ユニットによって実行されるエントロピー符号化の後に、出力するように構成され得る。
復号ピクチャバッファ(decoded picture buffer、DPB)230は、エンコーダ20による映像データ符号化における使用のために参照ピクチャデータを格納する参照ピクチャメモリとし得る。DPB230は、例えばダイナミックランダムアクセスメモリ(dynamic random access memory、DRAM)(同期DRAM(synchronous DRAM、SDRAM)、磁気抵抗RAM(magnetoresistive RAM、MRAM)、又は抵抗RAM(resistive RAM、RRAM)を含む)、又は他のタイプのメモリデバイスなどの、多様なメモリデバイスのうちの任意のものを含み得る。DPB230及びバッファ216は、同一のメモリデバイスによって提供されてもよいし、別々のメモリデバイスによって提供されてもよい。一例において、復号ピクチャバッファ(decoded picture buffer、DPB)230は、フィルタリングされたブロック221を格納するように構成される。復号ピクチャバッファ230は更に、同じ現在ピクチャの、又は例えば先行して再構成されたピクチャといった異なるピクチャの、例えば先行して再構成されてフィルタリングされたブロック221といった、他の先行してフィルタリングされたブロックを格納するように構成されてもよく、また、例えばインター予測のために、完全な先行して再構成すなわち復号されたピクチャ(並びに対応する参照ブロック及びサンプル)、及び/又は部分的に再構成された現在ピクチャ(並びに対応する参照ブロック及びサンプル)を提供してもよい。一例において、再構成ブロック215がインループフィルタリングなしで再構成される場合、復号ピクチャバッファ(decoded picture buffer、DPB)230は、再構成ブロック215を格納するように構成される。
ブロック予測処理ユニット260とも称される予測処理ユニット260は、ピクチャブロック203(現在ピクチャ201の現在ピクチャブロック203)と、例えばバッファ216からの同じ(現在)ピクチャの参照サンプル及び/又は復号ピクチャバッファ230からの1つ以上の先行復号ピクチャの参照ピクチャデータ231といった再構成ピクチャデータとを受信又は取得し、そして、そのようなデータを予測のために処理する、具体的には、インター予測ブロック245又はイントラ予測ブロック255とし得る予測ブロック265を提供する、ように構成される。
モード選択ユニット262は、残差ブロック205の計算のため及び再構成ブロック215の再構成のために、予測モード(例えば、イントラ予測モード又はインター予測モード)及び/又は予測ブロック265として使用される対応する予測ブロック245又は255を選択するように構成され得る。
一実施形態において、モード選択ユニット262は、(例えば、予測処理ユニット260によってサポートされる予測モードから)予測モードを選択するように構成されることができ、予測モードは、最良の一致又は換言して最小の残差(最小の残差は、伝送又はストレージにとっていっそう良好な圧縮を意味する)を提供し、あるいは、最小のシグナリングオーバヘッド(最小のシグナリングオーバヘッドは、伝送又はストレージにとっていっそう良好な圧縮を意味する)を提供し、あるいは、これら両方を考慮したりバランスさせたりする。モード選択ユニット262は、レート歪み最適化(rate distortion optimization、RDO)に基づいて予測モードを決定する、具体的には、最小のレート歪み最適化を提供する予測モードを選択する、あるいは、関連するレート歪みが少なくとも予測モード選択基準を満足する予測モードを選択する、ように構成され得る。
以下、エンコーダ20の一例によって実行される予測処理(例えば、予測処理ユニット260によって実行される)及びモード選択(例えば、モード選択ユニット262によって実行される)について詳細に説明する。
上述のように、エンコーダ20は、(所定の)予測モードのセットから最適な又は最善の予測モードを決定又は選択するように構成される。予測モードのセットは、例えば、イントラ予測モード及び/又はインター予測モードを含み得る。
イントラ予測モードのセットは、例えばDC(又は平均)モード及び平面モードなどの非方向モード、又は例えばH.265に規定されるものなどの方向モードといった、35個の異なるイントラ予測モードを含んでもよいし、あるいは、例えばDC(又は平均)モード及び平面モードなどの非方向モード、又は例えば開発中のH.266に規定されるものなどの方向モードといった、67個の異なるイントラ予測モードを含んでもよい。
取り得る一実装において、インター予測モードのセットは、利用可能な参照ピクチャ(すなわち、例えば、上述のように、DBP230に格納された少なくとも一部の復号ピクチャ)及び他のインター予測パラメータに依存し、例えば、参照ピクチャ全体が使用されるのか、それとも、例えば現在ブロックの領域の周囲の探索ウィンドウ領域といった参照ピクチャの一部のみが使用されるのかに依存し、且つ/或いは、例えば、1/2サンプル及び/又は1/4サンプル補間などのサンプル補間が適用されるのかに依存する。インター予測モードのセットは、例えば、スキップ(skip)モード及びマージ(merge)モードを含み得る。特定の実装において、インター予測モードのセットは、この出願の実施形態において、スキップベースのマージ・ウイズ・動きベクトル差(merge with motion vector difference、MMVD)モード又はマージベースのMMVDモードを含み得る。一例において、イントラ予測ユニット254は、後述するインター予測技術の何らかの組み合わせを実行するように構成されてもよい。
上述の予測モードに加えて、この出願の実施形態ではスキップモード及び/又はダイレクトモードも適用され得る。
予測処理ユニット260は更に、ピクチャブロック203を、例えば四分木(quad-tree、QT)分割、二分木(binary-tree、BT)分割、三分木(triple-tree、TT)分割、又はこれらの何らかの組み合わせを繰り返し用いることによって、より小さいブロックパーティション又はサブブロックに分割し、そして、例えば、ブロックパーティション又はサブブロックの各々に対して予測を実行するように構成され得る。モード選択は、分割されるピクチャブロック203のツリー構造の選択と、ブロックパーティション又はサブブロックの各々に使用される予測モードの選択とを含む。
インター予測ユニット244は、動き推定(motion estimation、ME)ユニット(図2には示さず)及び動き補償(motion compensation、MC)ユニット(図2には示さず)を含み得る。動き推定ユニットは、動き推定のために、ピクチャブロック203(現在ピクチャ201の現在ピクチャブロック203)及び復号ピクチャ231、又は例えば他の/異なる先行復号ピクチャ231の1つ以上の再構成ブロックといった少なくとも1つ以上の先行再構成ブロックとを、受信又は取得するように構成される。例えば、映像シーケンスは、現在ピクチャ及び先行復号ピクチャ31を含むことができ、又は換言して、現在ピクチャ及び先行復号ピクチャ31が、映像シーケンスを形成する一連のピクチャの一部であるか形成するかし得る。
例えば、エンコーダ20は、複数の他のピクチャのうちの同一ピクチャ又は複数の異なるピクチャの複数の参照ブロックから参照ブロックを選択し、動き推定ユニット(図2には示さず)に、参照ピクチャを提供し、及び/又は参照ブロックの位置(座標X及びY)と現在ブロックの位置との間のオフセット(空間オフセット)をインター予測パラメータとして提供するように構成され得る。このオフセットは、動きベクトル又は動きベクトル(motion vector、MV)とも呼ばれる。
動き補償ユニットは、インター予測パラメータを取得し、インター予測パラメータに基づいて又はそれを用いることによってインター予測を実行して、インター予測ブロック245を得るように構成される。動き補償ユニット(図2には示さず)によって実行される動き補償は、動き推定を通じて決定された動き/ブロックベクトルに基づいて、予測ブロックをフェッチ又は生成することを含み得る(場合により、サブピクセル精度での補間を実行する)。補間フィルタリングは、既知のサンプルから追加のピクセルサンプルを生成することができ、それにより、ピクチャブロックをコーディングするのに使用され得る候補予測ブロックの数を増やせる可能性がある。現在ピクチャブロックのPUに関する動きベクトルを受信すると、動き補償ユニット246は、動きベクトルが指す予測ブロックを、参照ピクチャリストのうちの1つ内で位置特定し得る。動き補償ユニット246はまた、ブロック及び映像スライスに関連するシンタックス要素を生成することができ、デコーダ30が該シンタックス要素を用いて映像スライス内のピクチャブロックを復号するようにし得る。
具体的には、インター予測ユニット244は、シンタックス要素をエントロピー符号化ユニット270に送信することができ、シンタックス要素は、インター予測パラメータ(例えば、複数のインター予測モードの検討後の、現在ブロックの予測に使用されるインター予測モードの選択のインジケーション情報など)を含む。取り得る一適用シナリオにおいて、1つのインター予測モードのみがある場合、代わりに、インター予測パラメータはシンタックス要素内で運ばれなくてもよい。この場合、デコーダ側30は、デフォルトの予測モードを用いることにより直接的に復号を実行し得る。理解され得ることには、インター予測ユニット244は、複数のインタビュー予測技術の何らかの組み合わせを実行するように構成され得る。
イントラ予測ユニット254は、イントラ推定のために、ピクチャブロック203(現在ピクチャブロック)と、例えば同じピクチャの再構成済みの隣接ブロックといった1つ以上の先行再構成ブロックとを、例えば受信するなどして取得するように構成される。エンコーダ20は、例えば、複数の(所定の)イントラ予測モードからイントラ予測モードを選択するように構成され得る。
一実施形態において、エンコーダ20は、例えば最小残差(例えば、現在ピクチャブロック203に最も類似する予測ブロック255を提供するイントラ予測モード)又は最小レート歪みに基づいてなど、最適化基準に従ってイントラ予測モードを選択するように構成される。
イントラ予測ユニット254は更に、例えば、選択されたイントラ予測モードにおけるイントラ予測パラメータに基づいて、イントラ予測ブロック255を決定するように構成される。いずれにしても、ブロックに対するイントラ予測モードを選択した後、イントラ予測ユニット254は更に、イントラ予測パラメータ、すなわち、そのブロックに対して選択されたイントラ予測モードを指し示す情報を、エントロピー符号化ユニット270に提供するように構成される。一例において、イントラ予測ユニット254は、複数のイントラ予測技術の何らかの組み合わせを実行するように構成され得る。
具体的には、イントラ予測ユニット254は、シンタックス要素をエントロピー符号化ユニット270に送信することができ、シンタックス要素は、イントラ予測パラメータ(例えば、複数のイントラ予測モードの検討後の、現在ブロックの予測に使用されるイントラ予測モードの選択のインジケーション情報など)を含む。取り得る一適用シナリオにおいて、1つのイントラ予測モードのみがある場合、代わりに、イントラ予測パラメータはシンタックス要素内で運ばれなくてもよい。この場合、デコーダ側30は、デフォルトの予測モードにて直接的に復号を実行し得る。
エントロピー符号化ユニット270は、量子化された残差係数209、インター予測パラメータ、イントラ予測パラメータ、及び/又はループフィルタパラメータのうちの1つ又は全てに対して、エントロピー符号化アルゴリズム又はスキーム(例えば、可変長コーディング(variable length coding、VLC)スキーム、コンテキスト適応VLC(context adaptive VLC、CAVLC)スキーム、算術コーディングスキーム、コンテキスト適応バイナリ算術コーディング(context adaptive binary arithmetic coding、CABAC)、シンタックスベースコンテキスト適応バイナリ算術コーディング(syntax-based context-adaptive binary arithmetic coding、SBAC)、確率インターバルパーティショニングエントロピー(probability interval partitioning entropy、PIPE)コーディング、又は他のエントロピー符号化方法若しくは技術)を適用して(又は適用せずに)、出力272を介して出力され得る符号化ピクチャデータ21を例えば符号化ビットストリーム21の形態で得るように構成される。符号化ビットストリームは、ビデオデコーダ30に送信されてもよいし、あるいは、後の送信又はビデオデコーダ30による取り出しのためにアーカイブされてもよい。エントロピー符号化ユニット270は更に、符号化中の現在映像スライスに対して、別のシンタックス要素をエントロピー符号化するように構成されてもよい。
映像ストリームを符号化するために、構造的に少し異なる別のビデオエンコーダ20を使用することができる。例えば、非変換ベースのエンコーダ20は、一部のブロック又はフレームに対して、変換処理ユニット206を用いずに直接的に残差信号を量子化し得る。他の一実装において、エンコーダ20は、単一のユニットへと結合された量子化ユニット208及び逆量子化ユニット210を有していてもよい。
具体的には、この出願の実施形態において、エンコーダ20は、以下の実施形態で説明される映像ピクチャ符号化方法を実装するように構成され得る。
理解されるべきことには、映像ストリームを符号化するために、構造的に少し異なる別のビデオエンコーダ20を使用することができる。例えば、一部のピクチャブロック又はピクチャフレームに対して、ビデオエンコーダ20は、残差信号を直接的に量子化してもよく、変換処理ユニット206による処理は必要とされず、対応して、逆変換処理ユニット212による処理も必要とされない。あるいは、一部のピクチャブロック又はピクチャフレームに対して、ビデオエンコーダ20は残差データを生成せず、対応して、変換処理ユニット206、量子化ユニット208、逆量子化ユニット210、及び逆変換処理ユニット212による処理は必要とされない。あるいは、ビデオエンコーダ20は、再構成ピクチャブロックを直接的に参照ブロックとして格納してもよく、フィルタ220による処理は必要とされない。あるいは、ビデオエンコーダ20内の量子化ユニット208と逆量子化ユニット210とが組み合わされてもよい。ループフィルタ220はオプションである。また、可逆圧縮符号化の場合には、変換処理ユニット206、量子化ユニット208、逆量子化ユニット210、及び逆変換処理ユニット212はオプションである。理解されるべきことには、異なる適用シナリオにおいて、インター予測ユニット244及びイントラ予測ユニット254は選択的に使用され得る。
図3は、この出願の一実施形態を実装するように構成されたデコーダ30の一例の概略的/概念的ブロック図である。ビデオデコーダ30は、例えばエンコーダ20によって符号化された、符号化ピクチャデータ(例えば、符号化ビットストリーム)21を受信して、復号ピクチャ231を得るように構成される。復号プロセスにおいて、ビデオデコーダ30は、ビデオエンコーダ20から、例えば符号化映像スライスのピクチャブロック及び関連するシンタックス要素を表す符号化ビデオビットストリームといった、ビデオデータを受信する。
図3の例において、デコーダ30は、エントロピー復号ユニット304、逆量子化ユニット310、逆変換処理ユニット312、再構成ユニット314(例えば、加算器314)、バッファ316、ループフィルタ320、復号ピクチャバッファ330、及び予測処理ユニット360を含んでいる。予測処理ユニット360は、インター予測ユニット344、イントラ予測ユニット354、及びモード選択ユニット362を含み得る。一部の例において、ビデオデコーダ30は、図2のビデオエンコーダ20に関して説明した符号化プロセスに対して概して逆である復号プロセスを実行し得る。
エントロピー復号ユニット304は、符号化ピクチャデータ21に対してエントロピー復号を実行して、例えば、量子化された係数309、及び/又は例えば(復号された)インター予測パラメータ、イントラ予測パラメータ、ループフィルタパラメータ、及び/又は他のシンタックス要素のうちのいずれか1つ又は全てといった、復号された符号化パラメータ(図3には示さず)、を得るように構成される。エントロピー復号ユニット304は更に、インター予測パラメータ、イントラ予測パラメータ、及び/又は他のシンタックス要素を、予測処理ユニット360に転送するように構成される。ビデオデコーダ30は、映像スライスレベル及び/又は映像ブロックレベルのシンタックス要素を受信し得る。
逆量子化ユニット310は、逆量子化ユニット110と同じ機能を持つとし得る。逆変換処理ユニット312は、逆変換処理ユニット212と同じ機能を持つとし得る。再構成ユニット314は、再構成ユニット214と同じ機能を持つとし得る。バッファ316は、バッファ216と同じ機能を持つとし得る。ループフィルタ320は、ループフィルタ220と同じ機能を持つとし得る。復号ピクチャバッファ330は、復号ピクチャバッファ230と同じ機能を持つとし得る。
予測処理ユニット360は、インター予測ユニット344及びイントラ予測ユニット354を含み得る。インター予測ユニット344は、機能においてインター予測ユニット244に似ているとすることができ、イントラ予測ユニット354は、機能においてイントラ予測ユニット254に似ているとすることができる。予測処理ユニット360は、通常、ブロック予測を実行する及び/又は符号化データ21から予測ブロック365を取得するとともに、例えばエントロピー復号ユニット304から、予測関連パラメータ及び/又は選択された予測モードについての情報を(明示的又は暗黙的に)受信又は取得するように構成される。
また、映像スライスがイントラ符号化(I)スライスへの符号化されるとき、予測処理ユニット360のイントラ予測ユニット354は、シグナリングされたイントラ予測モードと、現在フレーム又はピクチャの先行復号ブロックのデータとに基づいて、現在映像スライスのピクチャブロックに対する予測ブロック365を生成するように構成される。映像フレームが、インター符号化(すなわち、B又はP)スライスへと符号化されるとき、予測処理ユニット360内のインター予測ユニット344(例えば、動き補償ユニット)は、動きベクトル及びエントロピー復号ユニット304から受信される他のシンタックス要素に基づいて、現在映像スライス内の映像ブロックの予測ブロック365を生成するように構成される。インター予測では、1つの参照ピクチャリスト内の参照ピクチャのうちの1つから予測ブロックが生成され得る。ビデオデコーダ30は、デフォルトの構築技術を使用することによって、及びDPB330に格納された参照ピクチャに基づいて、リスト0及びリスト1なる参照フレームリストを構築し得る。
予測処理ユニット360は、動きベクトル及び他のシンタックス要素を解析することによって、現在映像スライスの映像ブロックに対する予測情報を決定し、該予測情報を用いて、復号中の現在映像ブロックに対する予測ブロックを生成するように構成される。この出願の一例において、予測処理ユニット360は、受信した一部のシンタックス要素を用いることによって、映像スライス内の映像ブロックを符号化するための予測モード(例えば、イントラ予測又はインター予測)と、インター予測スライスタイプ(例えば、Bスライス、Pスライス、又はGPBスライス)と、そのスライスに対する参照ピクチャリストのうちの1つ以上の構成情報と、そのスライス内の各インター符号化映像ブロックの動きベクトルと、そのスライス内の各インター符号化映像ブロックのインター予測状態と、他の情報とを決定して、現在映像スライス内の映像ブロックを復号する。この開示の他の一例において、ビデオデコーダ30によってビットストリームから受信されるシンタックス要素は、適応パラメータセット(adaptive parameter set、APS)、シーケンスパラメータセット(sequence parameter set、SPS)、ピクチャパラメータセット(picture parameter set、PPS)、又はスライスヘッダのうちの1つ以上内のシンタックス要素を含む。
逆量子化ユニット310は、ビットストリーム内で提供されてエントロピー復号ユニット304によって復号された、量子化された変換係数に対して、逆量子化(すなわち、量子化解除)を実行するように構成され得る。逆量子化プロセスは、映像スライス内の各映像ブロックに対してビデオエンコーダ20によって計算された量子化パラメータを用いて、適用されるべき量子化の度合いと、適用されるべき逆量子化の度合いとを決定することを含み得る。
逆変換処理ユニット312は、変換係数に逆変換(例えば、逆DCT、逆整数変換、又は概念的に類似した逆変換プロセス)を適用して、サンプルドメインにおける残差ブロックを生成するように構成される。
再構成ユニット314(例えば、加算器314)は、例えば再構成残差ブロック313のサンプル値を予測ブロック365のサンプル値に足し合わせることによって、逆変換ブロック313(すなわち、再構成残差ブロック313)を予測ブロック365に足し合わせて、サンプルドメインにおける再構成ブロック315を得るように構成される。
ループフィルタユニット320(コーディングループの中又はコーディングループの後)は、サンプル遷移をスムーズにするように又は映像品質を向上させるように、再構成ブロック315をフィルタリングして、フィルタリングされたブロック321を得るように構成される。一例において、ループフィルタユニット320は、後述するフィルタリング技術の何らかの組み合わせを実行するように構成され得る。ループフィルタユニット320は、例えば、デブロッキングフィルタ、サンプル適応オフセット(sample-adaptive offset、SAO)フィルタ、又は例えばバイラテラルフィルタ、適応ループフィルタ(adaptive loop filter、ALF)、鮮明化若しくは平滑化フィルタ、又は協調フィルタといった他のフィルタなどの、1つ以上のループフィルタを表すことを意図している。ループフィルタユニット320は、図3ではインループフィルタとして示されているが、他の一実装において、ループフィルタユニット320はポストループフィルタとして実装されてもよい。
そして、所与のフレーム又はピクチャ内の復号映像ブロック321は、後続の動き補償に使用される参照ピクチャを格納する復号ピクチャバッファ330に格納される。
デコーダ30は、例えば、復号ピクチャ31をユーザへの提示又は鑑賞のために出力332を介して出力するように構成される。
圧縮ビットストリームを復号するために、少し異なる別のビデオデコーダ30を使用してもよい。例えば、デコーダ30は、ループフィルタユニット320を用いずに出力ビデオストリームを生成してもよい。例えば、非変換ベースのデコーダ30は、一部のブロック又はフレームに対して、逆変換処理ユニット312を用いずに直接的に残差信号を逆量子化することができる。他の一実装において、ビデオデコーダ30は、単一のユニットへと結合された逆量子化ユニット310及び逆変換処理ユニット312を有していてもよい。
具体的には、この出願の実施形態において、デコーダ30は、以下の実施形態で説明される映像ピクチャ復号方法を実装するように構成される。
理解されるべきことには、符号化映像ビットストリームを復号するために、構造的に少し異なる別のビデオデコーダ30を使用することができる。例えば、ビデオデコーダ30は、フィルタ320による処理なしで出力映像ストリームを生成してもよい。あるいは、一部のピクチャブロック又はピクチャフレームに対して、ビデオデコーダ30のエントロピー復号ユニット304は、復号を通じて量子化された係数を取得せず、それに対応して、逆量子化ユニット310や逆変換処理ユニット312は処理を実行するのに必要でない。ループフィルタ320はオプションである。また、可逆圧縮の場合には、逆量子化ユニット310、逆変換処理ユニット312もオプションである。理解されるべきことには、異なる適用シナリオにおいて、インター予測ユニット及びイントラ予測ユニットは選択的に使用され得る。
理解されるべきことには、この出願におけるエンコーダ20及びデコーダ30上で、ある手順の処理結果は、更に処理された後に次の手順に出力されてもよい。例えば、補間フィルタリング、動きベクトル導出、又はループフィルタリングなどの手順の後に、対応する手順の処理結果に対して、例えばクリップ又はシフトシフトなどの演算が更に実行される。
例えば、現在ピクチャブロックの制御点の動きベクトル、又は隣接するアフィンコーディングブロックの動きベクトルから導出された現在ピクチャブロックのサブブロックの動きベクトルが更に処理されてもよい。これは、この出願において限定されることではない。例えば、動きベクトルの値は、特定のビット幅範囲内にあるように制約される。動きベクトルの許容ビット幅がbitDepthであると仮定すると、動きベクトルの値は、-2^(bitDepth-1)から2^(bitDepth-1)-1までの範囲であり、ここで、記号“^”はべき乗を表す。bitDepthが16である場合、値は-32768から32767までの範囲である。bitDepthが18である場合、値は-131072から131071までの範囲である。他の一例では、動きベクトル(例えば、1つの8×8ピクチャブロック内の4つの4×4サブブロックの動きベクトルMV)の値は、それら4つの4×4サブブロックのMVの整数部の間の最大の差が、例えば1サンプルを超えないなど、Nサンプルを超えないように制約される。
図4は、この出願の一実施形態に従った映像コーディング装置400(例えば、映像符号化装置400又は映像復号装置400)の概略構成図である。映像コーディング装置400は、この明細書に記載される実施形態を実装するのに適している。一実施形態において、映像コーディング装置400は、ビデオデコーダ(例えば、図1Aのデコーダ30)又はビデオエンコーダ(例えば、図1Aのエンコーダ20)とし得る。他の一実施形態において、映像コーディング装置400は、図1Aのデコーダ30又は図1Aのエンコーダ20の中の1つ以上のコンポーネントであってもよい。
映像コーディング装置400は、データを受信するための入口ポート410及び受信ユニット(Rx)420と、データを処理するためのプロセッサ、論理ユニット、又は中央演算処理ユニット(CPU)430と、データを送信するための送信器ユニット(Tx)440(又は短く送信器440と称する)及び出口ポート450と、データを格納するように構成されたメモリ460(例えば、メモリ460)とを含んでいる。映像コーディング装置400は更に、光信号又は電気信号の出入りのために入口ポート410、受信器ユニット420(又は短く受信器420と称する)、送信器ユニット440、及び出口ポート450に結合された、光-電気変換コンポーネント及び電気-光(EO)コンポーネントを含み得る。
プロセッサ430は、ハードウェア及びソフトウェアによって実装される。プロセッサ430は、1つ以上の、CPUチップ、コア(例えば、マルチコアプロセッサ)、FPGA、ASIC、及びDSPとして実装され得る。プロセッサ430は、入口ポート410、受信器ユニット420、送信器ユニット440、出口ポート450、及びメモリ460と通信する。プロセッサ430は、コーディングモジュール470(例えば、符号化モジュール470又は復号モジュール470)を含む。符号化/復号モジュール470は、この出願の実施形態で提供されるクロミナンスブロック予測方法を実施するよう、この明細書で開示される実施形態を実装する。例えば、符号化/復号モジュール470は、様々なコーディング動作を実行し、処理し、又は提供する。従って、符号化/復号モジュール470は、映像コーディング装置400の機能を実質的に向上させ、映像コーディング装置400の複数の異なる状態への変換に影響を与える。あるいは、符号化/復号モジュール470は、メモリ460に格納されてプロセッサ430によって実行される命令として実装される。
メモリ460は、1つ以上のディスク、テープドライブ、及びソリッドステートドライブを含み、オーバーフローデータ記憶デバイスとして使用されて、実行のためにプログラムが選択されるときに該プログラムを格納することができ、また、プログラム実行中に読み出される命令及びデータを格納することができる。メモリ460は、揮発性及び/又は不揮発性とすることができ、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、三値連想メモリ(ternary content-addressable memory、TCAM)、及び/又はスタティックランダムアクセスメモリ(SRAM)とし得る。
図5は、一実施形態例に従った、図1Aのソース装置12及びデスティネーション装置14のうちのいずれか又は2つとして使用され得る装置500の簡略ブロック図である。装置500は、この出願の技術を実装することができる。換言すれば、図5は、この出願の一実施形態に従った符号化装置又は復号装置(略してコーディング装置500)の一実装の概略ブロック図である。コーディング装置500は、プロセッサ510、メモリ530、及びバスシステム550を含み得る。プロセッサとメモリは、バスシステムを介して接続される。メモリは命令を格納するように構成される。プロセッサは、メモリに格納された命令を実行するように構成される。コーディング装置のメモリがプログラムコードを格納し、プロセッサが、メモリに格納されたプログラムコードを呼び出して、この出願で説明される様々な映像ピクチャ符号化又は復号方法、特に、様々なインター予測モード又はイントラ予測モードでの映像符号化又は復号方法を実行し得る。繰り返しを避けるため、詳細をここで再び説明することはしない。
この出願のこの実施形態において、プロセッサ510は、中央演算処理ユニット(Central Processing Unit、略して“CPU”)とし得る。あるいは、プロセッサ510は、他の汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)若しくは他のプログラマブルロジックデバイス、ディスクリートのゲート若しくはトランジスタロジックデバイス、ディスクリートのハードウェアコンポーネント、又はこれらに類するものであってもよい。汎用プロセッサはマイクロプロセッサであってもよく、あるいは、プロセッサは任意の従来プロセッサ又はそれに類するものであってもよい。
メモリ530は、読み出し専用メモリ(ROM)デバイス又はランダムアクセスメモリ(RAM)デバイスを含み得る。代わりに何らかの他の好適タイプの記憶デバイスがメモリ530として使用されてもよい。メモリ530は、バス550を介してプロセッサ510によってアクセスされるコード及びデータ531を含み得る。メモリ530は更に、オペレーティングシステム533及びアプリケーションプログラム535を含み得る。アプリケーションプログラム535は、この出願で説明される映像符号化又は復号方法(特に、この出願で説明される映像ピクチャ予測方法又はインター予測方法)をプロセッサ510が実行することを可能にする少なくとも1つのプログラムを含む。例えば、アプリケーションプログラム535は、アプリケーション1乃至Nを含むことができ、そして更に、この出願で説明される映像符号化又は復号方法を実行する映像符号化又は復号アプリケーション(略して映像コーディングアプリケーションと称する)を含むことができる。
データバスに加えて、バスシステム550は更に、電力バス、制御バス、状態信号バス、及びこれらに類するものを含み得る。しかしながら、明瞭な説明のため、図中の様々なタイプのバスをバスシステム550としてマーキングしている。
オプションで、コーディング装置500は更に、例えばディスプレイ570といった1つ以上の出力装置を含み得る。一例において、ディスプレイ570は、タッチ入力を動作可能に検知するタッチユニットとディスプレイとを組み合わせたタッチディスプレイとし得る。ディスプレイ570は、バス550を介してプロセッサ510に接続され得る。
この出願の実施形態において、インター予測は重要なステップである。エンコーダ側の観点からは、インター予測は、現在ピクチャ内の現在コーディングブロックに対して合致する参照ブロックに関する再構成ピクチャを探索することである。図5Aに示すように、参照ブロック(例えば、参照ブロックFr1又は参照ブロックFr2であり、参照ブロック内のサンプル値をこの出願における参照サンプル値として理解し得る)内のサンプルのサンプル値が、現在コーディングブロック(すなわち、現在ピクチャブロック)Fc内のサンプルのサンプル値の予測情報又は予測値(以下では“情報”と“値”とを区別しない)として使用される。このプロセスを動き推定MEと称する。また、現在コーディングブロックの動き情報は伝送される。デコーダ側の観点からは、インター予測の間に解析を通じて動き情報を得る必要があり、得られた動き情報に基づいて参照ブロックが再構成ピクチャ内で決定され、参照ブロック内のサンプルのサンプル値(すなわち、参照サンプル値)が予測情報として使用される。このプロセスを動き補償MCと称する。予測情報と残差情報とを組み合わせ、そして、組み合わせた情報に対してフィルタリング演算を実行することによって、再構成情報を得ることができる。この出願におけるアイディアは、HEVCにおいて使用されてもよいし、あるいは他の映像コーディング標準において使用されてもよい。以下では、このアイディアをHEVCにおいて使用する例を用いることにより、エンコーダ側でのインター予測モードの取り得るケースを説明する。デコーダ側でのインター予測モードの取り得るケースは同様であり、従って、追加の説明を供することはしない。
HEVCにおいては、アドバンスト動きベクトル予測(Advanced Motion Vector Prediction、AMVP)モードとマージ(Merge)モードとの、2つのモードが存在する。以下では、これら2つのモードについて別々に説明する。
AMVPモードでは、先ず、現在コーディングブロックに空間的又は時間的に隣接する符号化ブロックの動き情報を用いることによって、アフィン候補動きベクトルリストが構築され、次いで、アフィン候補動きベクトルリストから、最適動きベクトルが、現在コーディングブロックの動きベクトル予測子(Motion vector predictor、MVP)として決定される。式(0-1)を用いることによってレート歪みコストが計算され、ここで、Jはレート歪み(rate-distortion)コストRDコストであり、SADは、候補動きベクトル予測子を用いて行われる動き推定を通じて得られた、予測サンプル値と元のサンプル値との間の差分絶対値和(Sum of Absolute Differences、SAD)であり、Rはビットレートであり、λはラグランジュ乗数である。エンコーダ側は、アフィン候補動きベクトルリストにおける選択した動きベクトル予測子のインデックス値、及び参照フレームインデックス値をデコーダ側に伝達する。さらに、現在コーディングブロックの実際の動きベクトルを得るために、MVPを中心とする隣接領域内で動き探索が実行される。エンコーダ側は、MVPと実際の動きベクトルとの間の差(動きベクトル差)をデコーダ側に伝達する。
J=SAD+λR (0-1)
マージモードでは、先ず、現在コーディングブロックに空間的又は時間的に隣接する符号化ブロックの動き情報を用いることによって、候補動き情報リストが構築され、次いで、最適動き情報が、レート歪みコストに基づいて候補動き情報リストから決定されて現在コーディングブロックの動き情報として使用され、そして、候補動き情報リストにおける上記最適動き情報の位置のインデックス値(マージインデックスと表記する、以下同じ)がデコーダ側に伝達される。現在コーディングブロックの空間及び時間候補動き情報を図5Bに示す。空間候補動き情報は、5つの空間的に隣接するブロック(A0,A1,B0,B1,及びB2)からである。ある隣接ブロックが利用可能でない又はイントラコーディングモードにある場合、その隣接ブロックは候補動き情報リストに加えられない。現在コーディングブロックの時間候補動き情報は、参照フレーム及び現在フレームのピクチャオーダカウント(Picture order count、POC)に基づいて参照フレーム内のコロケートブロックのMVがスケーリングされた後に取得される。先ず、参照フレーム内の位置Tにあるブロックが利用可能であるかが決定される。そのブロックが利用可能でない場合、位置Cにあるブロックが選択される。
HEVCにおけるインター予測では、現在コーディングブロック内の全てのサンプルが同じ動き情報を使用し、そして、現在コーディングブロックの予測サンプル値を得るために、その動き情報に基づいて動き補償が行われる。動き情報は、主に以下を含む:(1)コーディングブロックの予測方向であり、前方予測、後方予測、双方向予測を含み、前方予測は、先行符号化フレームに基づく予測を通じてコーディングブロックが得られることを指し示し、後方予測は、後続符号化フレームに基づく予測を通じてコーディングブロックが得られることを指し示し、双方向予測は、先行符号化フレーム及び後続符号化フレームを参照する予測を通じてコーディングブロックが得られることを指し示す;(2)コーディングブロックの参照フレームインデックスであり、その中に現在コーディングブロックの参照ブロックが位置するフレームを指し示す;及び(3)コーディングブロックの動きベクトルMVであり、参照ブロックに対するコーディングブロックの動き変位を指し示し、MVは、水平成分(MVxと表記する)及び垂直成分(MVyと表記する)を含み、これらは、それぞれ、水平方向における参照ブロックに対するコーディングブロックの動き変位、及び垂直方向における参照ブロックに対するコーディングブロックの動き変位を表す。コーディングブロックに対して前方予測又は後方予測が行われるとき、1つのMVのみが存在する。コーディングブロックに対して双方向(すなわち、前方及び後方)予測が行われるとき、2つのMVが存在する。図5Cは、前述の動き情報を説明している。図5C、並びに動き情報及び予測情報についての以下の説明において、0は前方予測を表し、1は後方予測を表す。例えば、Ref0は前方参照フレームを表し、Ref1は後方参照フレームを表し、MV0は前方動きベクトルを表し、MV1は後方動きベクトルを表す。
A、B、及びCは、それぞれ、前方参照ブロック、現在コーディングブロック、及び後方参照ブロックを表す。Curは現在コーディングフレームを表し、破線はBの移動軌跡を表す。
前方予測の基本的な動き補償プロセスは、次の通りである:図5Cに示すように、現在コーディングブロックは図中のブロックBであり、Bの高さ及び幅はそれぞれH及びWである。このケースでは、動き情報に基づいて、現在コーディングブロックBの前方参照フレームがフレームRef0であり且つ現在コーディングブロックBの前方動きベクトルMV0が(MV0x,MV0y)であることが分かる。フレームCur内のコーディングブロックBが符号化されるとき、先ず、フレームCur内のBの左上隅の点の座標(i,j)に基づいてフレームRef0内で同一の座標点が見出され、ブロックBの長さ及び幅に基づいてRef0内のブロックB’を得ることができ、次いで、ブロックB’のMV0に基づいてB’がブロックAに移動される。最後に、ブロックAについて補間が行われて、現在コーディングブロックBの予測ブロックが得られる。現在コーディングブロックBの予測ブロック内の各サンプルのサンプル値が、ブロックB内の対応するサンプルの予測値として参照される。後方予測の動き補償プロセスは前方予測のそれと同じであるが、参照方向が異なる。なお、後方予測及び前方予測での動き補償を通じて得られる予測ブロックが、それぞれ、前方予測ブロック及び後方予測ブロックと称される。コーディングブロックに対して双方向予測が行われないとき、得られた前方予測ブロック及び後方予測ブロックが現在コーディングブロックの予測ブロックである。
双方向予測では、先ず、前方予測の動き補償プロセス及び後方予測の動き補償プロセスにて、動き情報に基づいて前方予測ブロック及び後方予測ブロックが取得され、次いで、前方予測ブロック及び後方予測ブロック内の同じ位置にあるサンプル値に対して重み付け予測又はBDOF(双方向オプティカルフロー(Bi-directional optical flow、BIO)とも称される)が実行されて、コーディングブロックBの予測ブロックが得られる。
BDOF技術では、現在コーディングブロックに対して双方向予測の動き補償が行われた後に、前方予測ブロック及び後方予測ブロックが取得され、次いで、前方予測ブロック及び後方予測ブロックのサンプル値に基づいて、現在コーディングブロック内の各4×4サブブロックの修正動きベクトルが導出される。最後に、現在コーディングブロックの予測値を得るために、現在コーディングブロック内の各サンプルに対して、修正動きベクトルに基づいて補償が再び実行されて、現在コーディングブロックの最終予測ブロックが取得される。この出願の実施形態は、コーディングの複雑さを低減させるとともにコーディング性能を向上させるために、BDOFを用いて動き補償を実行する特定の条件に焦点を当てる。
図6Aは、本発明の一実施形態に従った符号化方法の概略フローチャートである。この符号化手順は、映像符号化装置によって実行され得る。映像符号化装置は、前述のビデオエンコーダ20、又はビデオエンコーダ20を含む装置とし得る。具体的には、当該手順は、ビデオエンコーダ20内の、インター予測ユニット(インター予測器とも称される)244、エントロピー符号化ユニット(エントロピーエンコーダとも称される)270、及びこれらに類するものによって実行され得る。前述の手順は、一連のステップ又は動作として説明される。理解されるべきことには、当該手順のステップは、様々な順序で及び/又は同時に実行されてもよく、図6Aに示す実行順序に限定されるものではない。図6Aに対応する手順の関連説明は、以下の通りである。
符号化装置は、先ず、複数のプリセット条件が満足されるかを判定し、該複数のプリセット条件が満足される場合にS600が実行され、該複数のプリセット条件が満足されない場合にはS601が実行される。複数のプリセット条件が満足されない場合、S601のケースのみがここでの詳細な説明を代表するものとして使用される。従来技術におけるものと同じである他のケースについては、この出願で説明することはしない。
ステップS600: 複数のプリセット条件が満足されるときに、符号化装置は、現在ピクチャブロックに対して双方向オプティカルフローBDOF処理を実行して現在ピクチャブロックの予測サンプル値を取得する。
双方向オプティカルフロー(Bi-directional optical flow、BDOF)は、略してBIO又はBDOFと称され得る。
上記複数のプリセット条件は少なくとも、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することという条件を含む。現在ピクチャブロックのサイズは、通常、幅及び高さ(短くW×Hと記載される)によって表され、幅及び高さは、サンプル(sample又はpixel)によって測定される。例えば、現在ピクチャブロックのサイズが8×8である場合、1つめの8は、現在ピクチャブロックの幅が8サンプルであることを示し、2つめの8は、現在ピクチャブロックの高さが8サンプルであることを示す。他の一例では、現在ピクチャブロックのサイズが8×16である場合、8は、現在ピクチャブロックの幅が8サンプルであることを示し、16は、現在ピクチャブロックの高さが16サンプルであることを示す。
現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、且つ現在ピクチャブロックの幅Wと高さHとの積が64に等しいときに幅Wが高さHに等しくない、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、且つ現在ピクチャブロックの幅Wが8以上である、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、現在ピクチャブロックの幅Wが8以上であり、且つ現在ピクチャブロックの幅Wと現在ピクチャブロックの高さHとの積が64よりも大きい、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、現在ピクチャブロックの幅Wが8以上であり、且つ現在ピクチャブロックの幅Wと現在ピクチャブロックの高さHとの積が128よりも大きい、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8よりも大きい、ことを含む。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8よりも大きく、且つ現在ピクチャブロックの幅Wが8以上である、ことを含む。
なお、BDOF技術に従って、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて現在ピクチャブロックの現在サブブロックの予測サンプル値を決定する(又は予測を通じて取得する)かが決定される前に、現在ピクチャブロックのサイズに加えて、別の参照条件が存在してもよい。別の参照条件は、ここで限定されるものではない。理解を容易にするために、以下では、説明のための例を用いる。
条件A: 現在映像シーケンスに対してBDOF技術が使用されることが許されることを指し示すハイレベルシンタックス識別子sps_bdof_enabled_flagが存在する。
条件B: 第1リスト(List1)に対応する予測方向指示情報predFlagL0が1に等しく、且つ第2リスト(list0)に対応する予測方向指示情報predFlagL1が1に等しい。
条件C: 第1リスト(list0)に対応する参照フレームのピクチャオーダカウントPOC_L0、第2リスト(list1)に対応する参照フレームのピクチャオーダカウントPOC_L1、及びその中に現在ピクチャブロックが位置するピクチャのピクチャオーダカウントPOC_Curが、(POC_L0-POC_Cur)×(POC_L1-POC_Cur)<0という関係を満足する。換言すれば、現在ピクチャブロックを含むピクチャが、2つの参照ピクチャの間にある。
条件D: MotionModelIdc[xCb][yCb]が0に等しい。MotionModelIdcは、動き補償に関する動きモデルインデックスである。0に等しいMotionModelIdc[xCb][yCb]は、現在ブロックの動き補償のための動きモデルが並進運動(Translational motion)であることを指し示す。
条件E: merge_subblock_flag[x0][y0]が0に等しく、ここで、0に等しいmerge_subblock_flag[x0][y0]は、現在ピクチャブロックに対してサブブロックマージモードが適用されないことを指し示す。
条件F: sym_mvd_flag[x0][y0]が0に等しい。0に等しいsym_mvd_flag[x0][y0]は、現在ブロックに対してmvd_coding(x0,y0,refList,cpIdx)シンタックス構造が存在することを指し示す。
条件G: bcwIdx[xCb][yCb]が0に等しい。bcwIdxは、現在ピクチャブロックに対する双方向予測重みインデックスを示す。
条件H: cIdxが0に等しい。cIdxは、現在ピクチャブロックの色成分インデックスを表す。
条件I: 現在ピクチャブロックのサイズが第1のプリセットサイズである。
条件J: luma_weight_l0_flag[refIdxL0]及びluma_weight_l1_flag[refIdxL1]の両方が0に等しく、ここで、0に等しいluma_weight_l0_flagは、list0予測のluma成分に対する重み付け係数が存在しないことを指し示し、0に等しいluma_weight_l1_flagは、list1予測のluma成分に対する重み付け係数が存在しないことを指し示す。
例えば、条件A乃至Jの全てが満足されるとき、現在ピクチャブロックの予測サンプル値を予測するためにBDOF技術が使用され得ることが決定される。例えば、bdofFlagがtrueに設定される。なお、前述の条件は単なる例であり、別の条件が更に追加されたり、あるいは前述の条件のうちの1つ以上が置き換えられたり、あるいは前述の条件のうちの1つ以上が除去されたりしてもよい。
理解されるべきことには、ここでの現在ピクチャブロック(これは、現在ブロックとも称される)は、処理中のピクチャブロックとして理解され得る。例えば、符号化プロセスにおいて、現在ピクチャブロックは、符号化中のピクチャブロック(encoding block)である。
理解され得ることには、前述のケースを参考にして、別のケースを更に得ることができ、別のケースもこの出願の保護範囲に入るものである。
理解されるべきことには、この出願のこの実施形態における方法は、例えばビデオエンコーダ又は映像符号化機能を持つエレクトロニクス装置などの、ピクチャ予測装置によって実行されることができ、具体的に、ビデオエンコーダ内のインター予測ユニットによって実行され得る。
具体的には、BDOF技術を使用するための、このソリューションにおける条件は、BDOF技術を使用するための、従来技術における条件とは異なり、特に、現在ピクチャブロックのサイズに関する要件が異なる。第1のプリセットサイズを持つ現在ピクチャブロックに対してBDOF技術を使用することで、実際のサンプル値にいっそう近い予測サンプル値を得ることができ、コーディングの複雑さを適切に制御することができ、また、コーディング効率を向上させることができる。
この出願のこの実施形態において、複数のプリセット条件が満足されるときに符号化装置が現在ピクチャブロックに対して双方向オプティカルフローBDOF処理を実行することは、具体的に以下とし得る:複数のプリセット条件が満足されるときに、符号化装置は、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプルとに基づいて、現在ピクチャブロックに対して双方向オプティカルフローBDOF処理を実行する。
この出願のこの実施形態において、第1リストに対応する参照サンプル値及び第2リストに対応する参照サンプル値は、それぞれ、第1リスト(すなわち、list0)に対応する第1動きベクトル(例えば、Mv0_L0)及び第2リスト(すなわち、list1)に対応する第2動きベクトル(例えば、Mv1_L1)に基づく予測を通じて取得される。例えば、第1リスト(すなわち、list0)に対応する参照サンプル値は、第1リスト(すなわち、list0)に対応する第1動きベクトル(例えば、Mv0_L0)に基づいて決定されることができ、第2リスト(すなわち、list1)に対応する参照サンプル値は、第2リスト(すなわち、list1)に対応する第2動きベクトル(例えば、Mv1_L1)に基づいて決定されることができる。
理解され得ることには、第1リスト(すなわち、list0)に対応する第1動きベクトル(例えば、Mv0_L0)及び第2リスト(すなわち、list1)に対応する第2動きベクトル(例えば、Mv1_L1)は、異なるインター予測モードでは異なる方式で取得される。使用される具体的なインター予測モードは、モード選択ユニットを用いることによって選択され得る。以下、AMVPモード、マージモード、及びスキップモードにおいて第1動きベクトル及び第2動きベクトルをどのように決定するかを別々に説明する。
取り得るケース1: インター予測モードはAMVPモードである。
符号化装置は、先ず、候補動きベクトル予測子MVPリストを構築する。
具体的には、映像符号化装置は、インター予測ユニット(インター予測モジュールとも称する)を用いることによって、候補動きベクトル予測子MVPリスト(候補動きベクトルリストとも称する)を構築する。構築される候補動きベクトル予測子MVPリストは、三要素の(triplet)候補動きベクトル予測子MVPリスト又は二要素の(2-tuple)候補動きベクトル予測子MVPリストとし得る。この出願のこの実施形態において、映像符号化装置は、双方向予測方式でインター予測を実行する。
次いで、映像符号化装置は、レート歪みコスト基準に従って、MVPリスト内でターゲット候補動き情報を決定する。
具体的には、ターゲット候補動き情報は、最適候補動きベクトルと称されることもあり、あるいは別の名称を持つこともある。結論として、ターゲット候補動き情報は、レート歪みコスト基準(例えば、使用コストが最小化される)に従ってMVPリスト内で決定される最適候補である。ターゲット候補動き情報は、候補動きベクトル予測子MVPリストにおける一意のインデックス番号に対応する。
続いて、ターゲット候補動き情報に基づいて、第1動きベクトル及び第2動きベクトルが決定される。ターゲット候補動き情報は、第1リスト(すなわち、list0)に対応する第1動きベクトル予測子(例えば、Mvp0_L0)、及び第2リスト(すなわち、list1)に対応する予測子(例えば、Mvp1_L1)を含む。例えば、第1リスト(list0)に対応する第1動きベクトルMv0_L0(前方)は、第1動きベクトル予測子Mvp0_L0と動きベクトル差MVD0との和に基づいて取得され得る。同様に、第2動きベクトルMv1_L1は、第2動きベクトル予測子Mvp1_L1と動きベクトル差MVD1との和に基づいて取得され得る。オプションで、ここでの第1リスト(すなわち、list0)に対応する第1動きベクトル(例えば、Mv0_L0)は、第1方向(例えば、前方の方向)に対応する第1動きベクトルとして表現されてもよく、第2リスト(すなわち、list1)に対応する第2動きベクトル(例えば、Mvp_L1)は、第2方向(例えば、後方の方向)に対応する第2動きベクトルとして表現されてもよい。
取り得るケース2: インター予測モードはマージモードである。
符号化装置は、先ず、候補動き情報リストを構築する。
具体的には、映像符号化装置は、インター予測ユニット(インター予測モジュールとも称する)を用いることによって、候補動き情報リスト(候補動きベクトルリストとも称する)を構築する。
次いで、映像符号化装置は、レート歪みコスト基準に従って、候補動き情報リスト内でターゲット候補動き情報を決定する。
具体的に、ターゲット候補動き情報は、ターゲット候補動きベクトル、参照フレームインデックス、及び予測方向指示情報を含み、予測方向指示情報は、双方向予測が適用されることを指し示すために使用され、ターゲット候補動きベクトルは、第1リストに対応する第1動きベクトル、及び第2リストに対応する第2動きベクトルを含み、参照フレームインデックスは、第1リストに対応する第1参照フレームのインデックス、及び第2リストに対応する第2参照フレームのインデックスを含む。
ターゲット候補動き情報は、最適候補動き情報と称されることもあり、あるいは別の名称を持つこともある。結論として、ターゲット候補動き情報は、レート歪みコスト基準(例えば、使用コストが最小化される)に従って候補動き情報リスト内で決定される最適候補である。
取り得るケース3: インター予測モードはスキップモードである。関係する説明については、前述のケース2におけるマージモードの説明を参照されたい。マージモードとの違いは、スキップモードでは残差サンプルを伝送する必要がない点にある。
図6Bを参照するに、この出願のこの実施形態において、現在ピクチャブロックが属する現在ピクチャは、先行参照ピクチャと後続参照ピクチャとの2つの参照ピクチャを持ち、これらは、それぞれ、第1参照ピクチャ(例えば、前方参照ピクチャ又は前方参照フレームであり、ここでの“前方”は第1方向として参照されることもある)及び第2参照ピクチャ(例えば、後方参照ピクチャ又は後方参照フレームであり、ここでの“後方”は第2方向として参照されることもある)である。第1リストに対応する参照サンプルは、第1参照ピクチャ上の参照サンプルであり、第2リストに対応する参照サンプルは、第2参照ピクチャ上の参照サンプルである。
オプションで、BDOF技術に従って、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づく予測を通じて現在ブロックの予測サンプル値を取得することは、現在ブロックの予測サンプル値を取得するために、BDOF技術に従って、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、現在ブロックの各サブブロックの修正動きベクトルを導出し、次いで、修正動きベクトルに基づいて各サブブロックに動き補償を実行して、各サブブロックの予測サンプル値を取得することを含み得る。理解を容易にするために、以下、説明のための例を提供する。
第1リスト(list0)に対応する参照サンプル値のサンプルはI(0)(i,j)と表されることができ、第2リスト(list1)に対応する参照サンプル値のサンプル値はI(1)(i,j)と表されることができる。これら2つの値をまとめて前方及び後方予測値I(k)(i,j)と呼ぶことができ、ここで、i=0..cuW-1、j=0..cuH-1であり、kは0と1であるとし得る。ここでは、I(k)(i,j)は、8タップ補間フィルタを用いて補間を通じて取得されることができ、他の位置のサンプル値(一行及び一列の拡張が行われる)は、双線形補間フィルタを用いて補間を通じて取得される。なお、拡張された領域のサンプル値は、代わりに別の方法を用いることによって取得されてもよく、例えば、8タップ補間フィルタを用いて取得されてもよいし、あるいは、整数サンプル位置にある参照サンプル値そのままとされてもよい。これは、ここで限定されることではない。ここで、cuW及びcuHは、それぞれ、現在ピクチャブロックの幅及び高さである。BDOF技術に従って、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づく予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下のステップを含み得る。
ステップ1: 第1リストに対応する参照サンプル値のサンプル値と第2リストに対応する参照サンプル値のサンプル値との間の差分絶対値和SADを計算し、SADが閾値TH_CU未満であるかを判定し、SADが閾値TH_CU未満である場合、BDOFを実行することをスキップし、SADが閾値TH_CU以上である場合、BDOFを実行する。このステップはオプションである。
閾値TH_CUは、(1<<(BD-8+shift))×cuW×cuHに設定されることができ、shiftはMax(2,14-BD)である。
あるいは、TH_CUは、1<<(BD-3+shift)に設定されてもよい。
オプションで、BDOFを実行するかは、代わりに他の方式で決定されてもよく、それら他の方式をここで一つずつ列挙することはしない。
BDOFを実行すると決定されたとき、ステップ4を実行することに続く。
ステップ2: 現在CUの前方及び後方予測値の水平勾配値及び垂直勾配値を計算する。
現在CUの前方及び後方予測値の水平勾配値∂I
(k)/∂x(i,j)及び垂直勾配値∂I
(k)/∂y(i,j)は、第1リストに対応する参照サンプル値のサンプル位置(i,j)での水平勾配値∂I
(0)/∂x(i,j)及び垂直勾配値∂I
(0)/∂y(i,j)と、第2リストに対応する参照サンプル値のサンプル位置(i,j)での水平勾配値∂I
(1)/∂x(i,j)及び垂直勾配値∂I
(1)/∂y(i,j)とを含み、ここで、kは逐次に0と1とに設定される。水平勾配値∂I
(k)/∂x(i,j)及び垂直勾配値∂I
(k)/∂y(i,j)は、次式を用いて取得され得る:
ここで、i=0..cuW-1、及びj=0..cuH-1である。
このステップで、現在ピクチャブロックに対するcuW×cuH予測行列が取得され得る。
ステップ4: パディングを通じて、現在CUの前方及び後方予測値、水平勾配値、及び垂直勾配値に対して拡張を実行する。
4×4サブブロックの修正動きベクトルを計算することは、その中に該4×4サブブロックが位置する6×6領域の前方及び後方予測値I(k)(x,y)と、前方及び後方予測値の水平勾配値∂I(k)/∂x(i,j)と、前方及び後方予測値の垂直勾配値∂I(k)/∂y(i,j)とを必要とする。6×6領域の勾配値を計算することは、8×8領域の前方及び後方予測値を必要とする。従って、補間フィルタを用いて前方及び後方予測値を得るときに、(W+2)×(H+2)の勾配値を計算するために、周囲に二行及び二列の拡張を行って、そのサイズが(W+4)×(H+4)である予測サンプルブロックを得る必要があり、ここで、Wは現在CUの幅であり、Hは現在CUの高さである。BDOFの複雑さを低減させるために、CUの境界に対して特別な処理を行うことができる。詳細は、次の通りである。
先ず、8タップフィルタを用いてW×H領域の予測値が取得され、領域が周囲に一行及び一列だけ拡張され、拡張した領域の予測値が双線形フィルタを用いて取得されることで、(W+2)×(H+2)領域の予測値が得られる。
次いで、式(5)に従った、(W+2)×(H+2)領域の予測値に基づく計算を通じて、W×H領域の勾配値が取得され得る。
最後に、パディング法に従って、W×H領域の勾配値が周囲に拡張されて、(W+2)×(H+2)領域の水平勾配値及び垂直勾配値が得られる。W×H領域の予測値が周囲に拡張されて、(W+2)×(H+2)領域の予測値が得られる。
パディングを図6Dに示す。i=-1..cuW、及びj=-1..cuHでのI(k)(i,j)、∂I(k)/∂x(i,j)、及び∂I(k)/∂y(i,j)を得るために、図6Dの方法に従ってパディングが行われる。具体的には、(cuW+2)×(cuH+2)の予測行列、水平勾配行列、及び垂直勾配行列が得られる。
ステップ5: 各4×4サブブロックの修正動きベクトルを導出し、次いで、重み付けを実行する。
各4×4サブブロックに対して、式(2-3)に従って修正動きベクトル(v
x,v
y)が取得される。具体的には、各4×4サブブロックの修正動きベクトル(v
x,v
y)は、L0及びL1の予測値を最小化するように該サブブロックの周りの6×6ウィンドウΩにBDOFを適用することによって取得される。具体的には、(v
x,v
y)は、次式に従って導出される:
ここで、
は、フロア関数である(ここで、floor(A)は、A以下である最大の整数を表す)。th’
BIO=2
13-BDであり、これは、過大な修正動きベクトルによって生じる誤差伝達を防止するための閾値である。S
2,m=S
2>>12、及びS
2,s=S
2&(2
12-1)である。BDは現在サンプルビット幅である。
S1、S2、S3、S5、及びS6は、次式に従って計算される:
ここで、I(0)(i,j)は、現在CU内のサンプル位置(i,j)の前方予測値、すなわち、現在CUの参照サンプル値であって第1リストに対応する参照サンプル値におけるサンプル位置(i,j)のサンプル値であり、I(1)(i,j)は、現在CU内のサンプル位置(i,j)の後方予測値、すなわち、現在CUの参照サンプル値であって第2リストに対応する参照サンプル値におけるサンプル位置(i,j)のサンプル値である。
式(2-3)に従って修正動きベクトルが得られた後、現在ピクチャブロック内の各サンプルの最終予測値、すなわち、現在ピクチャブロックの予測ブロック内のサンプル値が、次式に従って決定され得る:
ここで、shift及びoffsetは、15-BD及び1<<(14-BD)+2・(1<<13)である。rnd(.)は丸め関数(四捨五入)である。predBIO(i,j)は、現行ピクチャブロックのサンプル位置(i,j)の予測サンプル値である。
ステップS601: 現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、符号化装置は、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で現在ピクチャブロックの予測サンプル値を決定する。
具体的には、第1の処理方式は、BDOF(あるいは、双方向オプティカルフロー(Bi-directional optical flow、BIO)又は予測精緻化・ウイズ・オプティカルフロー(prediction refinement with optical flow、PROF)と称される)ではない、ことを含む。換言すれば、現在ピクチャブロックのサイズが第2のプリセットサイズであるとき、第1リストに対応する参照サンプル値及び第2リストに対応する参照サンプル値に基づいて現在ピクチャブロックの予測サンプル値を決定するためにBDOFを使用することは許されない。現在ピクチャブロックのサイズは、通常、幅及び高さ(短くW×Hと記載される)によって表され、幅及び高さは、サンプル(sample又はpixel)によって測定される。第2のプリセットサイズは、8×8(1つめの8は、現在ピクチャブロックの幅が8サンプルであることを示し、2つめの8は、現在ピクチャブロックの高さが8サンプルであることを示す)、4×N(4は、現在ピクチャブロックの幅が4サンプルであることを示し、Nは、現在ピクチャブロックの高さがNサンプルであることを示し、類推によって他のサイズが推定される)、8×16、又は16×8を含む。Nは2のべき乗であり、且つ8以上である。例えば、Nの値は、16、32、64などとし得る。
この出願のこの実施形態において、第1リストに対応する参照サンプル値、及び第2リストに対応する参照サンプル値は、それぞれ、第1リスト(すなわち、list0)に対応する第1動きベクトル(例えば、Mv0_L0)、及び第2リスト(すなわち、list1)に対応する第2動きベクトル(例えば、Mv1_L1)に基づく予測を通じて取得される。例えば、第1リスト(すなわち、list0)に対応する参照サンプル値は、第1のリスト(すなわち、list0)に対応する第1動きベクトル(例えば、Mv0_L0)に基づいて決定されることができ、第2リスト(すなわち、list1)に対応する参照サンプル値は、第2リスト(すなわち、list1)に対応する第2動きベクトル(例えば、Mv1_L1)に基づいて決定されることができる。
なお、第1動きベクトル及び第2動きベクトルは、異なるインター予測モードでは異なる方式で決定される。第1動きベクトル及び第2動きベクトルをAMVPモード、マージモード、及びスキップモードにてどのように決定するかの詳細については、ステップS600での説明を参照されたい。詳細をここで再び説明することはしない。
理解されるべきことには、ここでの現在ピクチャブロック(これは、現在ブロックとも称される)は、処理中のピクチャブロックとして理解され得る。例えば、符号化プロセスにおいて、現在ピクチャブロックは、符号化中のピクチャブロック(encoding block)である。
また、第2のプリセットサイズが8×8、4×N、8×16、又は16×8を含む前述のケースは、第2のプリセットサイズが8×8、4×N、8×16、又は16×8であることに限られることもできる。換言すれば、BDOFは、上に列挙された8×8、4×N、8×16、及び16×8なるサイズのうちの1つに対して使用されることが禁止され、あるいは、これらのうちの複数のサイズに対して使用されることが禁止されてもよい。以下では、説明のための例を用いる。
例1: 第2のプリセットサイズは8×8を含む(又は、である)。換言すれば、この出願のこの実施形態において、BDOFは、サイズ8×8に対して使用されることが禁止される。この場合、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下として表現され得る:現在ピクチャブロックのサイズが8×8であるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得する。
例2:第2のプリセットサイズは4×Nを含む(又は、である)。換言すれば、この出願のこの実施形態において、BDOFは、サイズ4×Nに対して使用されることが禁止される。この場合、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下として表現され得る:Nは8以上であるとして、現在ピクチャブロックのサイズが4×Nであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得する。
例3: 第2のプリセットサイズは8×8又は4×Nを含む(又は、である)。換言すれば、この出願のこの実施形態において、BDOFは、サイズ8×8及び4×Nに対して使用されることが禁止される。この場合、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下として表現され得る:Nは8以上であるとして、現在ピクチャブロックのサイズが8×8及び4×Nのいずれかであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得する。
例4: 第2のプリセットサイズは8×8、4×N、8×16、又は16×8を含み(又は、であり)、ここで、Nは8以上である。換言すれば、この出願のこの実施形態において、BDOFは、サイズ8×8、4×N、8×16、及び16×8に対して使用されることが禁止される。この場合、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下として表現され得る:現在ピクチャブロックのサイズが8×8、4×N、8×16、及び16×8のうちのいずれか1つであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得する。
例5: 第2のプリセットサイズはN×8を含み(又は、であり)、ここで、Nは4以上である。換言すれば、この出願のこの実施形態において、BDOFは、サイズN×8に対して使用されることが禁止される。この場合、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下として表現され得る:現在ピクチャブロックのサイズがN×8であるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得する。
例6: 第2のプリセットサイズはN×8又は4×Nを含み(又は、であり)、ここで、Nは4以上である。換言すれば、この出願のこの実施形態において、BDOFは、サイズN×8又は4×Nに対して使用されることが禁止される。この場合、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下として表現され得る:現在ピクチャブロックのサイズがN×8又は4×Nであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得する。
さらに、一部のシナリオでは、サイズM×4に対してもBDOFが使用されることが禁止されるので、この出願において、第2のプリセットサイズに対してBDOFが使用されることが禁止されるとき、BDOFは更に、Mは4以上の整数であるとして、サイズM×4に対して使用されることが禁止され得る。
理解され得ることには、前述のケースを参考にして、別のケースを更に得ることができ、別のケースもこの出願の保護範囲に入るものである。理解されるべきことには、この出願のこの実施形態における方法は、例えばビデオエンコーダ又は映像符号化機能を持つエレクトロニクス装置などの、ピクチャ予測装置によって実行されることができ、具体的に、ビデオエンコーダ内のインター予測ユニットによって実行され得る。
オプションの一ソリューションにおいて、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で現在ピクチャブロックの予測サンプル値を決定することは、
第1リストに対応する参照サンプル値及び第2リストに対応する参照サンプル値において同じ位置を持つサンプル値に対して重み付け計算を実行して、現在ピクチャブロックの予測サンプル値を取得すること、又は
マージ・ウイズ・動きベクトル差MMVD技術に従って、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づく予測を通じて、現在ピクチャブロックの予測サンプル値を取得すること、又は
結合インター/イントラ予測CIIP技術に従って、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づく予測を通じて、現在ピクチャブロックの予測サンプル値を取得すること、
を含む。
この出願のこの実施形態において、重み付け計算方式、MMVD技術、又はCIIP技術が具体的に使用されるかは、対応する条件を用いることによって決定されてもよいし、あるいは、対応する指示情報を用いることによって指し示されてもよい。オプションで、後にビットストリームに符号化される情報は更にターゲット識別子を含むことができ、ターゲット識別子は、現在ブロックの予測サンプル値を予測するのに使用される方式を指し示すために使用される。例えば、ターゲット識別子はmmvd_flag[x0][y0]である。mmvd_flag[x0][y0]がプリセット値(例えば、値1)であるとき、それは、現在ピクチャブロックにMMVD方式が使用されることを指し示す。
オプションで、MMVD実装が以下に提供される。図6Cに示すように、現在ピクチャブロックの予測動き情報が取得される。現在ピクチャブロックの前方動きベクトル予測子及び後方動きベクトル予測子(すなわち、第1リストに対応する前述の動きベクトル予測子及び第2リストに対応する前述の動きベクトル予測子)が、それぞれ、MV0(-22,18)及びMV1(2,12)であり、且つ前方動きベクトル差及び後方動きベクトル差が、それぞれ、MVD0(1,0)及びMVD1(-1,0)であると仮定する。
現在ピクチャブロックに対して前方予測及び後方予測が別々に実行されて、現在ピクチャブロックの前方予測ブロック及び後方予測ブロックが得られる。
MV0(-22,18)及びMV1(2,12)が前方動きベクトル予測子及び後方動きベクトル予測子の基準入力として用いられ、そして、前方参照予測ブロックq0及び後方参照予測ブロックh0に対して第1精度の動き探索が実行される。例えば、第1精度は1サンプルである。
前方参照予測ブロックq0及び後方参照予測ブロックh0が各々、第1精度の動き探索を実行するための開始探索点として用いられ、そして、その都度発見される新たな前方参照予測ブロックと新たな後方参照予測ブロックとの間の差が決定される。例えば、上記前方参照予測ブロック及び上記後方参照予測ブロックの周りの8対の前方参照予測ブロックと後方参照予測ブロックとの間の差が決定され、そして、前方参照予測ブロックq0と後方参照予測ブロックh0との間の差が決定される。最小の差を持つ前方参照予測ブロック及び後方参照予測ブロックの動きベクトル予測子が、それぞれ、(-21,18)及び(1,12)であると仮定する。探索点が、前方参照予測ブロックq1及び後方参照予測ブロックh1にそれぞれ対応する(-21,18)及び(1,12)に更新され、第1精度の動き探索が引き続き実行される。前方参照予測ブロックq1及び後方参照予測ブロックh1が各々、第1精度の動き探索を実行するための開始探索点として用いられ、そして、その都度発見される前方参照予測ブロックと後方参照予測ブロックとの間の差が決定される。例えば、上記前方参照予測ブロック及び上記後方参照予測ブロックの周りの8対の前方参照予測ブロックと後方参照予測ブロックとの間の差が決定され、そして、前方参照予測ブロックq1と後方参照予測ブロックh1との間の差が決定される。最小の差を持つ前方参照予測ブロック及び後方参照予測ブロックの動きベクトル予測子が、それぞれ、(-20,18)及び(0,12)であると仮定する。(-21,18)及び(1,12)が、それぞれ、前方参照予測ブロックq2及び後方参照予測ブロックh2に対応する。
この出願のこの実施形態において、第1精度の動き探索の回数は、例えば、1又は2に設定され得る。あるいは、動き探索範囲が決められる。その範囲外で探索は停止される。
一例として2回を用いると、前方参照予測ブロックq2の動きベクトル予測子(-20,18)とMVD0 (1,0)とを足し合わせて(-19,18)が得られ、後方参照予測ブロックh2の動きベクトル予測子(0,12)とMVD1とを足し合わせて(1,12)が得られる。従って、現在ピクチャブロックは、前方動きベクトル予測子(-19,18)及び後方動きベクトル予測子(1,12)に基づいて予測される。図6Cは、1回の動き探索プロセスのみを示している。
理解されるべきことには、BDOF技術は、現在ピクチャブロックの予測サンプル値を予測するための従来技術でのパッチ最適化技術と同等である。BDOF技術によれば、多くのシナリオにおいて、現在ピクチャブロックの実際のサンプル値にいっそう近い予測サンプル値を得ることができる。従って、その予測サンプル値に基づいて得られるサンプル残差はより小さいものとなり、それ故に、コーディング効率を向上させることができる。前述の重み付け計算方式は、現在ピクチャブロックの予測サンプル値を得るための従来技術とみなされてもよく、前述のMMVD技術及びCIIP技術は各々、従来技術でのパッチ最適化技術とみなされてもよい。この出願のこの実施形態において、現在ピクチャブロックのサイズが第2のプリセットサイズであるとき、現在ピクチャブロックの予測サンプル値は、BDOF技術ではなく、従来技術(例えば、重み付け計算方式)又は他のパッチ最適化技術(例えば、MMVD又はCIIP)に従って決定される。これは、コーディングの複雑さを大幅に低減させることができるとともに、コーディング効率を向上させることができる。
ステップS602: 符号化装置は、少なくとも現在ピクチャブロックの予測サンプル値に基づいて、現在ピクチャブロックを再構成する。
理解され得ることには、現在ピクチャブロックの予測サンプル値は前述のステップS600で取得され得る。そのステップで得られる現在ブロックの予測サンプル値は、1つ以上のサブブロックの予測サンプル値を含み、該1つ以上のサブブロックは、現在ピクチャブロックの現在サブブロックを含む。サブブロックのサイズは、現在ブロックのサイズと等しくてもよい。現在ブロックが1つのサブブロックのみを含む場合、それは、そのサブブロックのサイズが現在ブロックのサイズと等しいとし得ることに相当する。現在ピクチャブロックの予測サンプル値は、代わりに、前述のステップS600で取得されてもよい。
なお、この出願のこの実施形態において、現在ピクチャブロックのサンプル残差を更に取得してもよく、現在ピクチャブロックのサンプル残差は0であってもよい。例えば、マージモード及びAMVPモードの各々ではサンプル残差を取得する必要がある。スキップモードではサンプル残差を考慮する必要はなく、それ故に、デコーダ側にサンプル残差を伝送する必要はない。
ステップS603: 符号化装置は、シンタックス要素を送信対象ビットストリームに符号化し、シンタックス要素は少なくとも、双方向予測が適用されることを指し示すために使用される。
具体的に、異なるインター予測モードでは、異なるシンタックス要素が送信対象ビットストリームに符号化される。例は次の通りである。
インター予測モードがAMVPモードであるとき、シンタックス要素は、第1インデックス、第2インデックス、予測方向指示情報、及び動きベクトル差MVDを含み、第1インデックス(例えば、mvp_lX_flag[xCb][yCb])は、ターゲット候補動きベクトル予測子を指し示すために使用され、ターゲット候補動きベクトル予測子は、第1リスト(例えば、list0)に対応する第1動きベクトル予測子、及び第2リスト(例えば、list1)に対応する第2動きベクトル予測子を含み、動きベクトル差MVDは、第1リストに対応する第1MVD、及び/又は第2リストに対応するMVDを含む。第2インデックス(これらは、参照フレームインデックスとも称される)は、現在ピクチャブロックの参照フレームを指し示すために使用され、参照フレームは、第1リストに対応する第1参照フレーム、及び第2リストに対応する第2参照フレームを含む。例えば、第2インデックスは、refIdxL0及びrefIdxL1であり、refIdxL0は、第1リストに対応する第1参照フレームのインデックスであり、refIdxL1は、第2リストに対応する第2参照フレームのインデックスである。予測方向指示情報(例えば、predFlagL0=1及びpredFlagL1=1)は、双方向予測が適用されることを指し示すために使用される。
第1リストに対応する第1動きベクトル(例えば、Mv0_L0)は、第1リストに対応する第1動きベクトル予測子(例えば、Mvp0_L0)と、第1リストに対応する第1MVD(例えば、MVD0)とに基づいて取得される。例えば、Mv0_L0=Mvp0_L0+MVD0である。
第2リストに対応する第2動きベクトル(例えば、Mv1_L1)は、第2リストに対応する第2動きベクトル予測子(例えば、Mvp1_L1)と、第2リストに対応する第2MVD(例えば、MVD1)とに基づいて取得される。例えば、Mv1_L1=Mvp1_L1+MVD1である。
映像コーディング分野において、インター予測モードは、前方予測、後方予測、及び双方向予測(前方予測及び後方予測を含む)を含み、エンコーダ側で使用される特定の予測モードは、通常、予測方向指示情報によって指し示される。例えば、予測方向指示情報は、シンタックス要素predFlagL0及びpredFlagL1を含み得る。predFlagL0=1且つpredFlagL1=1であるとき、予測方向指示情報は、双方向予測が適用されることを指し示す。predFlagL0=1且つpredFlagL1=0であるとき、予測方向指示情報は、前方予測が使用されることを指し示す。predFlagL0=0且つpredFlagL1=1であるとき、予測方向指示情報は、後方予測が使用されることを指し示す。理解され得ることには、“前方”及び“後方”は、それぞれ、現在ピクチャの参照ピクチャリスト0(list0、すなわち、前述の第1リスト)及び参照ピクチャリスト1(list1、すなわち、前述の第2リスト)に対応する。オプションで、MMVD技術が使用されるとき、1つのMVDのみが伝送されてもよく、別方向のものであってデコーダ側によって使用される必要があるMVDは、伝送されたMVDに基づいて導出され得る。
インター予測モードがマージモードであるとき、 オプションの一ソリューションにおいて、シンタックス要素は、ターゲット候補動き情報のインデックス(例えば、merge_idx[xCb][yCb])を含み、ターゲット候補動き情報は、ターゲット候補動きベクトル、参照フレームインデックス、及び予測方向指示情報(例えば、predFlagL0=1及びpredFlagL1=1)を含み、予測方向指示情報は、双方向予測が適用されることを指し示すために使用され、ターゲット候補動きベクトルは、第1リスト(すなわち、list0)に対応する第1動きベクトル、及び第2リスト(すなわち、list1)に対応する第2動きベクトルを含み、参照フレームインデックスは、第1リストに対応する第1参照フレームのインデックス(例えば、refIdxL0)、及び第2リストに対応する第2参照フレームのインデックス(例えば、refIdxL1)を含む。
この出願のこの実施形態において、参照フレームインデックスは、指定された参照ピクチャリスト(第1リストlist0又は第2リストlist1)内の使用される動きベクトル(例えば、第1動きベクトル又は第2動きベクトル)に対応する参照ピクチャを特定するために使用される。ピクチャはフレームと称されることがあり、参照ピクチャは参照フレームと称されることがある。
映像コーディング分野において、インター予測モードは、前方予測、後方予測、及び双方向予測(前方予測及び後方予測を含む)を含み、エンコーダ側で使用される特定の予測モードは、通常、予測方向指示情報によって指し示される。例えば、予測方向指示情報は、シンタックス要素predFlagL0及びpredFlagL1を含み得る。predFlagL0=1且つpredFlagL1=1であるとき、予測方向指示情報は、双方向予測が適用されることを指し示す。predFlagL0=1且つpredFlagL1=0であるとき、予測方向指示情報は、前方予測が使用されることを指し示す。predFlagL0=0且つpredFlagL1=1であるとき、予測方向指示情報は、後方予測が使用されることを指し示す。理解され得ることには、“前方”及び“後方”は、それぞれ、現在ピクチャの参照ピクチャリスト0(list0、すなわち、前述の第1リスト)及び参照ピクチャリスト1(list1、すなわち、前述の第2リスト)に対応する。
この出願のこの実施形態において、当該方法は更に、現在ピクチャブロックのサンプル値と現在ピクチャブロックの予測サンプル値とに基づいて、サンプル残差を決定することを含み、シンタックス要素を送信対象ビットストリームに符号化することは、シンタックス要素及びサンプル残差を送信対象ビットストリームに符号化することを含む。換言すれば、シンタックス要素に加えて、更にサンプル残差が、送信対象ビットストリームに符号化され得る(サンプル残差は、残差計算ユニットを用いることによって計算を通じて取得され得る)。このソリューションは、AMVPモード及びマージモードに適用され得る。また、サンプル残差を送信対象ビットストリームに符号化する必要がない場合も存在する。例えば、スキップモードでは、サンプル残差を送信対象ビットストリームに符号化する必要はない。
図7は、この出願の一実施形態に従った復号方法のフローチャートである。この手順は、映像復号装置によって実行され得る。映像復号装置は、前述のビデオデコーダ30とすることができ、あるいはビデオデコーダ30を含む装置とすることができる。具体的には、当該手順は、ビデオデコーダ30の、インター予測ユニット(インター予測器とも称される)344、エントロピー復号ユニット(エントロピーデコーダとも称される)304、及びこれらに類するものによって実行され得る。当該手順は、一連のステップ又は動作として説明される。当該手順のステップ又は動作は、様々な順に及び/又は同時に実行されてもよく、図7に示す実行順に限定されるものではない。図7に示す手順の関連説明は、以下の通りである。
ステップS700: 復号装置は、ビットストリームを解析してシンタックス要素を取得し、シンタックス要素は少なくとも、双方向予測が適用されることを指し示すために使用される。
具体的には、エンコーダ側が符号化プロセスにおいて複数の異なるインター予測モードを使用する場合、復号装置は、ビットストリームを解析することによって異なるシンタックス要素を取得し得る。以下、AMVPモード、マージモード、及びスキップモードを参照して詳細な説明を提供する。
AMVPにおいて、シンタックス要素は、第1インデックス、第2インデックス、予測方向指示情報、及び動きベクトル差MVDを含み、第1インデックス(例えば、mvp_lX_flag[xCb][yCb])は、ターゲット候補動きベクトル予測子を指し示すために使用され、ターゲット候補動きベクトル予測子は、第1リスト(例えば、list0)に対応する第1動きベクトル予測子、及び第2リスト(例えば、list1)に対応する第2動きベクトル予測子を含み、動きベクトル差MVDは、第1リストに対応する第1MVD、及び/又は第2リストに対応するMVDを含む(例えば、1つのMVDのみが含まれるとき、伝送されないMVDは、伝送されたMVDに基づいて導出され得る)。第2インデックス(これらは、参照フレームインデックスとも称される)は、現在ピクチャブロックの参照フレームを指し示すために使用され、参照フレームは、第1リストに対応する第1参照フレーム、及び第2リストに対応する第2参照フレームを含む。例えば、第2インデックスは、refIdxL0及びrefIdxL1であり、refIdxL0は、第1リストに対応する第1参照フレームのインデックスであり、refIdxL1は、第2リストに対応する第2参照フレームのインデックスである。予測方向指示情報(例えば、predFlagL0=1及びpredFlagL1=1)は、双方向予測が適用されることを指し示すために使用される。
第1リストに対応する第1動きベクトル(例えば、Mv0_L0)が、第1リストに対応する第1動きベクトル予測子(例えば、Mvp0_L0)と、第1リストに対応する第1MVD(例えば、MVD0)とに基づいて取得される。例えば、Mv0_L0=Mvp0_L0+MVD0である。
第2リストに対応する第2動きベクトル(例えば、Mv1_L1)が、第2リストに対応する第2動きベクトル予測子(例えば、Mvp1_L1)と、第2リストに対応する第2MVD(例えば、MVD1)とに基づいて取得される。例えば、Mv1_L1=Mvp1_L1+MVD1である。
映像コーディング分野において、インター予測モードは、前方予測、後方予測、及び双方向予測(前方予測及び後方予測を含む)を含み、エンコーダ側で使用される特定の予測モードは、通常、予測方向指示情報によって指し示される。例えば、予測方向指示情報は、シンタックス要素predFlagL0及びpredFlagL1を含み得る。predFlagL0=1且つpredFlagL1=1であるとき、予測方向指示情報は、双方向予測が適用されることを指し示す。predFlagL0=1且つpredFlagL1=0であるとき、予測方向指示情報は、前方予測が使用されることを指し示す。predFlagL0=0且つpredFlagL1=1であるとき、予測方向指示情報は、後方予測が使用されることを指し示す。理解され得ることには、“前方”及び“後方”は、それぞれ、現在ピクチャの参照ピクチャリスト0(list0、すなわち、前述の第1リスト)及び参照ピクチャリスト1(list1、すなわち、前述の第2リスト)に対応する。
マージモードにおいて、シンタックス要素は、ターゲット候補動き情報のインデックス(例えば、merge_idx[xCb][yCb])を含み、ターゲット候補動き情報は、ターゲット候補動きベクトル、参照フレームインデックス、及び予測方向指示情報(例えば、predFlagL0=1及びpredFlagL1=1)を含み、予測方向指示情報は、双方向予測が適用されることを指し示すために使用され、ターゲット候補動きベクトルは、第1リスト(すなわち、list0)に対応する第1動きベクトル、及び第2リスト(すなわち、list1)に対応する第2動きベクトルを含み、参照フレームインデックスは、第1リストに対応する第1参照フレームのインデックス(例えば、refIdxL0)、及び第2リストに対応する第2参照フレームのインデックス(例えば、refIdxL1)を含む。
この出願のこの実施形態において、参照フレームインデックスは、指定された参照ピクチャリスト(第1リストlist0又は第2リストlist1)内の使用される動きベクトル(例えば、第1動きベクトル又は第2動きベクトル)に対応する参照ピクチャを特定するために使用される。ピクチャはフレームと称されることがあり、参照ピクチャは参照フレームと称されることがある。
映像コーディング分野において、インター予測モードは、前方予測、後方予測、及び双方向予測(前方予測及び後方予測を含む)を含み、エンコーダ側で使用される特定の予測モードは、通常、予測方向指示情報によって指し示される。例えば、予測方向指示情報は、シンタックス要素predFlagL0及びpredFlagL1を含み得る。predFlagL0=1且つpredFlagL1=1であるとき、予測方向指示情報は、双方向予測が適用されることを指し示す。predFlagL0=1且つpredFlagL1=0であるとき、予測方向指示情報は、前方予測が使用されることを指し示す。predFlagL0=0且つpredFlagL1=1であるとき、予測方向指示情報は、後方予測が使用されることを指し示す。理解され得ることには、“前方”及び“後方”は、それぞれ、現在ピクチャの参照ピクチャリスト0(list0、すなわち、前述の第1リスト)及び参照ピクチャリスト1(list1、すなわち、前述の第2リスト)に対応する。
スキップモードにおいて、シンタックス要素に含まれるコンテンツは、マージモードでのシンタックス要素に含まれるコンテンツと同じであり、違いは、スキップモードでは残差サンプルを伝送する必要がない点にある。
この出願のこの実施形態において、例えばAMVPモード及びマージモードでといった、一ケースでは、ビットストリームを解析することによってシンタックス要素及びサンプル残差が取得される。例えばスキップモードでといった、他の一ケースでは、ビットストリームを解析することによってシンタックス要素は取得されるが、解析を通じて残差サンプルは取得されない。
ビットストリームが解析された後、先ず、複数のプリセット条件が満足されるかが判定され、該複数のプリセット条件又は全てのプリセット条件が満足される場合にS701が実行され、該複数のプリセット条件が満足されない場合にはS702が実行される。複数のプリセット条件が満足されない場合、S702のケースのみがここでの詳細な説明を代表するものとして使用される。従来技術におけるものと同じである他のケースについては、この出願で説明することはしない。
ステップS701: 複数のプリセット条件が満足されるときに、復号装置は、現在ピクチャブロックに対して双方向オプティカルフローBDOF処理を実行して現在ピクチャブロックの予測サンプル値を取得する。
双方向オプティカルフロー(Bi-directional optical flow、BDOF)は、略してBIO又はBDOFと称され得る。
上記複数のプリセット条件は少なくとも、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することという条件を含む。現在ピクチャブロックのサイズは、通常、幅及び高さ(短くW×Hと記載される)によって表され、幅及び高さは、サンプル(sample又はpixel)によって測定される。例えば、現在ピクチャブロックのサイズが8×8である場合、1つめの8は、現在ピクチャブロックの幅が8サンプルであることを示し、2つめの8は、現在ピクチャブロックの高さが8サンプルであることを示す。他の一例では、現在ピクチャブロックのサイズが8×16である場合、8は、現在ピクチャブロックの幅が8サンプルであることを示し、16は、現在ピクチャブロックの高さが16サンプルであることを示す。
現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、且つ現在ピクチャブロックの幅Wと高さHとの積が64に等しいときに幅Wが高さHに等しくない、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、且つ現在ピクチャブロックの幅Wが8以上である、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、現在ピクチャブロックの幅Wが8以上であり、且つ現在ピクチャブロックの幅Wと現在ピクチャブロックの高さHとの積が64よりも大きい、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、現在ピクチャブロックの幅Wが8以上であり、且つ現在ピクチャブロックの幅Wと現在ピクチャブロックの高さHとの積が128よりも大きい、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8よりも大きい、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8よりも大きく、且つ現在ピクチャブロックの幅Wが8以上である、ことを含む(又は、ことである)。
なお、BDOF技術に従って、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて現在ピクチャブロックの現在サブブロックの予測サンプル値を決定する(又は予測を通じて取得する)かが決定される前に、現在ピクチャブロックのサイズに加えて、別の参照条件が存在してもよい。別の参照条件は、ここで限定されるものではない。理解を容易にするために、以下では、説明のための例を用いる。
条件A: 現在映像シーケンスに対してBDOF技術が使用されることが許されることを指し示すハイレベルシンタックス識別子sps_bdof_enabled_flagが存在する。
条件B: 第1リスト(List1)に対応する予測方向指示情報predFlagL0が1に等しく、且つ第2リスト(list0)に対応する予測方向指示情報predFlagL1が1に等しい。
条件C: 第1リスト(list0)に対応する参照フレームのピクチャオーダカウントPOC_L0、第2リスト(list1)に対応する参照フレームのピクチャオーダカウントPOC_L1、及びその中に現在ピクチャブロックが位置するピクチャのピクチャオーダカウントPOC_Curが、(POC_L0-POC_Cur)×(POC_L1-POC_Cur)<0という関係を満足する。換言すれば、現在ピクチャブロックを含むピクチャが、2つの参照ピクチャの間にある。
条件D: MotionModelIdc[xCb][yCb]が0に等しい。MotionModelIdcは、動き補償に関する動きモデルインデックスである。0に等しいMotionModelIdc[xCb][yCb]は、現在ブロックの動き補償のための動きモデルが並進運動(Translational motion)であることを指し示す。
条件E: merge_subblock_flag[x0][y0]が0に等しく、ここで、0に等しいmerge_subblock_flag[x0][y0]は、現在ピクチャブロックに対してサブブロックマージモードが適用されないことを指し示す。
条件F: sym_mvd_flag[x0][y0]が0に等しい。0に等しいsym_mvd_flag[x0][y0]は、現在ブロックに対してmvd_coding(x0,y0,refList,cpIdx)シンタックス構造が存在することを指し示す。
条件G: bcwIdx[xCb][yCb]が0に等しい。bcwIdxは、現在ピクチャブロックに対する双方向予測重みインデックスを示す。
条件H: cIdxが0に等しい。cIdxは、現在ピクチャブロックの色成分インデックスを表す。
条件I: 現在ピクチャブロックのサイズが第1のプリセットサイズである。
条件J: luma_weight_l0_flag[refIdxL0]及びluma_weight_l1_flag[refIdxL1]の両方が0に等しく、ここで、0に等しいluma_weight_l0_flagは、list0予測のluma成分に対する重み付け係数が存在しないことを指し示し、0に等しいluma_weight_l1_flagは、list1予測のluma成分に対する重み付け係数が存在しないことを指し示す。
例えば、条件A乃至Jの全てが満足されるとき、現在ピクチャブロックの予測サンプル値を予測するためにBDOF技術が使用され得ることが決定される。例えば、bdofFlagがtrueに設定される。なお、前述の条件は単なる例であり、別の条件が更に追加されたり、あるいは前述の条件のうちの1つ以上が置き換えられたり、あるいは前述の条件のうちの1つ以上が除去されたりしてもよい。
理解されるべきことには、ここでの現在ピクチャブロック(これは、現在ブロックとも称される)は、処理中のピクチャブロックとして理解され得る。例えば、復号プロセスにおいて、現在ピクチャブロックは、復号中のピクチャブロック(decoding block)である。
理解され得ることには、前述のケースを参考にして、別のケースを更に得ることができ、別のケースもこの出願の保護範囲に入るものである。
理解されるべきことには、この出願のこの実施形態における方法は、例えばビデオデコーダ又は映像復号機能を持つエレクトロニクス装置などの、ピクチャ予測装置によって実行されることができ、具体的に、ビデオデコーダ内の動き補償ユニットによって実行され得る。
具体的には、BDOF技術を使用するための、このソリューションにおける条件は、BDOF技術を使用するための、従来技術における条件とは異なり、特に、現在ピクチャブロックのサイズに関する要件が異なる。第1のプリセットサイズを持つ現在ピクチャブロックに対してBDOF技術を使用することで、実際のサンプル値にいっそう近い予測サンプル値を得ることができ、コーディングの複雑さを適切に制御することができ、また、コーディング効率を向上させることができる。
この出願のこの実施形態において、複数のプリセット条件が満足されるときに復号装置が現在ピクチャブロックに対して双方向オプティカルフローBDOF処理を実行することは、具体的に以下とし得る:複数のプリセット条件が満足されるときに、復号装置は、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプルとに基づいて、現在ピクチャブロックに対して双方向オプティカルフローBDOF処理を実行する。
この出願のこの実施形態において、第1リストに対応する参照サンプル値及び第2リストに対応する参照サンプル値は、それぞれ、第1リスト(すなわち、list0)に対応する第1動きベクトル(例えば、Mv0_L0)及び第2リスト(すなわち、list1)に対応する第2動きベクトル(例えば、Mv1_L1)に基づく予測を通じて取得される。例えば、第1リスト(すなわち、list0)に対応する参照サンプル値は、第1リスト(すなわち、list0)に対応する第1動きベクトル(例えば、Mv0_L0)に基づいて決定されることができ、第2リスト(すなわち、list1)に対応する参照サンプル値は、第2リスト(すなわち、list1)に対応する第2動きベクトル(例えば、Mv1_L1)に基づいて決定されることができる。
理解され得ることには、第1リスト(すなわち、list0)に対応する第1動きベクトル(例えば、Mv0_L0)及び第2リスト(すなわち、list1)に対応する第2動きベクトル(例えば、Mv1_L1)は、異なるインター予測モードでは異なる方式で取得される。使用される具体的なインター予測モードは、モード選択ユニットを用いることによって選択され得る。以下、AMVPモード、マージモード、及びスキップモードにおいて第1動きベクトル及び第2動きベクトルをどのように決定するかを別々に説明する。
取り得るケース1: インター予測モードはAMVPモードである。
復号装置は、先ず、候補動きベクトル予測子MVPリストを構築する。
具体的には、復号装置は、インター予測ユニット(インター予測モジュールとも称する)を用いることによって、候補動きベクトル予測子MVPリスト(候補動きベクトルリストとも称する)を構築する。構築される候補動きベクトル予測子MVPリストは、三要素の(triplet)候補動きベクトル予測子MVPリスト又は二要素の(2-tuple)候補動きベクトル予測子MVPリストとし得る。この出願のこの実施形態において、復号装置は、双方向予測方式でインター予測を実行する。
次いで、復号装置は、ターゲット候補動き情報に対応するインデックスに基づいて、MVPリスト内でターゲット候補動き情報を決定する。
具体的には、ターゲット候補動き情報は、最適候補動きベクトルと称されることもあり、あるいは別の名称を持つこともある。
続いて、ターゲット候補動き情報に基づいて、第1動きベクトル及び第2動きベクトルが決定される。ターゲット候補動き情報は、第1リスト(すなわち、list0)に対応する第1動きベクトル予測子(例えば、Mvp0_L0)、及び第2リスト(すなわち、list1)に対応する予測子(例えば、Mvp1_L1)を含む。例えば、第1リスト(list0)に対応する第1動きベクトルMv0_L0(前方)は、第1動きベクトル予測子Mvp0_L0と動きベクトル差MVD0との和に基づいて取得され得る。同様に、第2動きベクトルMv1_L1は、第2動きベクトル予測子Mvp1_L1と動きベクトル差MVD1との和に基づいて取得され得る。オプションで、ここでの第1リスト(すなわち、list0)に対応する第1動きベクトル(例えば、Mv0_L0)は、第1方向(例えば、前方の方向)に対応する第1動きベクトルとして表現されてもよく、第2リスト(すなわち、list1)に対応する第2動きベクトル(例えば、Mvp_L1)は、第2方向(例えば、後方の方向)に対応する第2動きベクトルとして表現されてもよい。
取り得るケース2: インター予測モードはマージモードである。
復号装置は、先ず、候補動き情報リストを構築する。
具体的には、復号装置は、インター予測ユニット(インター予測モジュールとも称する)を用いることによって、候補動き情報リスト(候補動きベクトルリストとも称する)を構築する。
次いで、復号装置は、ターゲット候補動き情報に対応するインデックスに基づいて、候補動き情報リスト内でターゲット候補動き情報を決定する。
具体的に、ターゲット候補動き情報は、ターゲット候補動きベクトル、参照フレームインデックス、及び予測方向指示情報を含み、予測方向指示情報は、双方向予測が適用されることを指し示すために使用され、ターゲット候補動きベクトルは、第1リストに対応する第1動きベクトル、及び第2リストに対応する第2動きベクトルを含み、参照フレームインデックスは、第1リストに対応する第1参照フレームのインデックス、及び第2リストに対応する第2参照フレームのインデックスを含む。
ターゲット候補動き情報は、最適候補動き情報と称されることもあり、あるいは別の名称を持つこともある。
取り得るケース3: インター予測モードはスキップモードである。関係する説明については、前述のケース2におけるマージモードの説明を参照されたい。マージモードとの違いは、スキップモードでは残差サンプルを伝送する必要がない点にある。
図6Bを参照するに、この出願のこの実施形態において、現在ピクチャブロックが属する現在ピクチャは、先行参照ピクチャと後続参照ピクチャとの2つの参照ピクチャを持ち、これらは、それぞれ、第1参照ピクチャ(例えば、前方参照ピクチャ又は前方参照フレームであり、ここでの“前方”は第1方向として参照されることもある)及び第2参照ピクチャ(例えば、後方参照ピクチャ又は後方参照フレームであり、ここでの“後方”は第1方向として参照されることもある)である。第1リストに対応する参照サンプル値は、第1参照ピクチャ上の参照サンプル値であり、第2リストに対応する参照サンプル値は、第2参照ピクチャ上の参照サンプル値である。
オプションで、BDOF技術に従って、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づく予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、現在ブロックの予測サンプル値を取得するために、BDOF技術に従って、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、現在ピクチャブロックの各サブブロックの修正動きベクトルを導出し、次いで、修正動きベクトルに基づいて各サブブロックに動き補償を実行して、各サブブロックの予測サンプル値を取得することを含み得る。理解を容易にするために、以下、説明のための例を提供する。
第1リスト(list0)に対応する参照サンプル値のサンプルはI(0)(i,j)と表されることができ、第2リスト(list1)に対応する参照サンプル値のサンプル値はI(1)(i,j)と表されることができる。これら2つの値をまとめて前方及び後方予測値I(k)(i,j)と呼ぶことができ、ここで、i=0..cuW-1、j=0..cuH-1であり、kは0と1であるとし得る。ここでは、I(k)(i,j)は、8タップ補間フィルタを用いて補間を通じて取得されることができ、他の位置のサンプル値(一行及び一列の拡張が行われる)は、双線形補間フィルタを用いて補間を通じて取得される。なお、拡張された領域のサンプル値は、代わりに別の方法を用いることによって取得されてもよく、例えば、8タップ補間フィルタを用いて取得されてもよいし、あるいは、整数サンプル位置にある参照サンプル値そのままとされてもよい。これは、ここで限定されることではない。ここで、cuW及びcuHは、それぞれ、現在ピクチャブロックの幅及び高さである。BDOF技術に従って、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づく予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下のステップを含み得る。
ステップ1: 第1リストに対応する参照サンプル値のサンプル値と第2リストに対応する参照サンプル値のサンプル値との間の差分絶対値和SADを計算し、SADが閾値TH_CU未満であるかを判定し、SADが閾値TH_CU未満である場合、BDOFを実行することをスキップし、SADが閾値TH_CU以上である場合、BDOFを実行する。このステップはオプションである。
閾値TH_CUは、(1<<(BD-8+shift))×cuW×cuHに設定されることができ、shiftはMax(2,14-BD)である。
あるいは、TH_CUは、1<<(BD-3+shift)に設定されてもよい。
オプションで、BDOFを実行するかは、代わりに他の方式で決定されてもよく、それら他の方式をここで一つずつ列挙することはしない。
BDOFを実行すると決定されたとき、ステップ4を実行することに続く。
ステップ2: 現在CUの前方及び後方予測値の水平勾配値及び垂直勾配値を計算する。
現在CUの前方及び後方予測値の水平勾配値∂I
(k)/∂x(i,j)及び垂直勾配値∂I
(k)/∂y(i,j)は、第1リストに対応する参照サンプル値のサンプル位置(i,j)での水平勾配値∂I
(0)/∂x(i,j)及び垂直勾配値∂I
(0)/∂y(i,j)と、第2リストに対応する参照サンプル値のサンプル位置(i,j)での水平勾配値∂I
(1)/∂x(i,j)及び垂直勾配値∂I
(1)/∂y(i,j)とを含み、ここで、kは逐次に0と1とに設定される。水平勾配値∂I
(k)/∂x(i,j)及び垂直勾配値∂I
(k)/∂y(i,j)は、次式を用いて取得され得る:
ここで、i=0..cuW-1、及びj=0..cuH-1である。
このステップで、現在ピクチャブロックに対するcuW×cuH予測行列が取得され得る。
ステップ4: パディングを通じて、現在CUの前方及び後方予測値、水平勾配値、及び垂直勾配値に対して拡張を実行する。
4×4サブブロックの修正動きベクトルを計算することは、その中に該4×4サブブロックが位置する6×6領域の前方及び後方予測値I(k)(x,y)と、前方及び後方予測値の水平勾配値∂I(k)/∂x(i,j)と、前方及び後方予測値の垂直勾配値∂I(k)/∂y(i,j)とを必要とする。6×6領域の勾配値を計算することは、8×8領域の前方及び後方予測値を必要とする。従って、補間フィルタを用いて前方及び後方予測値を得るときに、(W+2)×(H+2)の勾配値を計算するために、周囲に二行及び二列の拡張を行って、そのサイズが(W+4)×(H+4)である予測サンプルブロックを得る必要があり、ここで、Wは現在CUの幅であり、Hは現在CUの高さである。BDOFの複雑さを低減させるために、CUの境界に対して特別な処理を行うことができる。詳細は、次の通りである。
先ず、8タップフィルタを用いてW×H領域の予測値が取得され、領域が周囲に一行及び一列だけ拡張され、拡張した領域の予測値が双線形フィルタを用いて取得されることで、(W+2)×(H+2)領域の予測値が得られる。
次いで、式(5)に従った、(W+2)×(H+2)領域の予測値に基づく計算を通じて、W×H領域の勾配値が取得され得る。
最後に、パディング法に従って、W×H領域の勾配値が周囲に拡張されて、(W+2)×(H+2)領域の水平勾配値及び垂直勾配値が得られる。W×H領域の予測値が周囲に拡張されて、(W+2)×(H+2)領域の予測値が得られる。
パディングを図6Dに示す。i=-1..cuW、及びj=-1..cuHでのI(k)(i,j)、∂I(k)/∂x(i,j)、及び∂I(k)/∂y(i,j)を得るために、図6Dの方法に従ってパディングが行われる。具体的には、(cuW+2)×(cuH+2)の予測行列、水平勾配行列、及び垂直勾配行列が得られる。
ステップ5: 各4×4サブブロックの修正動きベクトルを導出し、次いで、重み付けを実行する。
各4×4サブブロックに対して、式(2-3)に従って修正動きベクトル(v
x,v
y)が取得される。具体的には、各4×4サブブロックの修正動きベクトル(v
x,v
y)は、L0及びL1の予測値を最小化するように該サブブロックの周りの6×6ウィンドウΩにBDOFを適用することによって取得される。具体的には、(v
x,v
y)は、次式に従って導出される:
ここで、
は、フロア関数である(ここで、floor(A)は、A以下である最大の整数を表す)。th’
BIO=2
13-BDであり、これは、過大な修正動きベクトルによって生じる誤差伝達を防止するための閾値である。S
2,m=S
2>>12、及びS
2,s=S
2&(2
12-1)である。BDは現在サンプルビット幅である。
S1、S2、S3、S5、及びS6は、次式に従って計算される:
ここで、I(0)(i,j)は、現在CU内のサンプル位置(i,j)の前方予測値、すなわち、現在CUの参照サンプル値であって第1リストに対応する参照サンプル値におけるサンプル位置(i,j)のサンプル値であり、I(1)(i,j)は、現在CU内のサンプル位置(i,j)の後方予測値、すなわち、現在CUの参照サンプル値であって第2リストに対応する参照サンプル値におけるサンプル位置(i,j)のサンプル値である。
式(2-3)に従って修正動きベクトルが得られた後、現在ピクチャブロック内の各サンプルの最終予測値、すなわち、現在ピクチャブロックの予測ブロック内のサンプル値が、次式に従って決定され得る:
ここで、shift及びoffsetは、15-BD及び1<<(14-BD)+2・(1<<13)である。rnd(.)は丸め関数(四捨五入)である。predBIO(i,j)は、予測ブロック内のサンプル位置(i,j)のサンプル値である。
ステップS702: 現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、復号装置は、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で現在ピクチャブロックの予測サンプル値を決定する。
具体的には、第1の処理方式は、BDOF(あるいは、双方向オプティカルフロー(Bi-directional optical flow、BIO)又は予測精緻化・ウイズ・オプティカルフロー(prediction refinement with optical flow、PROF)と称される)ではない、ことを含む。換言すれば、現在ピクチャブロックのサイズが第2のプリセットサイズであるとき、第1リストに対応する参照サンプル値及び第2リストに対応する参照サンプル値に基づいて現在ピクチャブロックの予測サンプル値を決定するためにBDOFを使用することは許されない。現在ピクチャブロックのサイズは、通常、幅及び高さ(短くW×Hと記載される)によって表され、幅及び高さは、サンプル(sample又はpixel)によって測定される。第2のプリセットサイズは、8×8(1つめの8は、現在ピクチャブロックの幅が8サンプルであることを示し、2つめの8は、現在ピクチャブロックの高さが8サンプルであることを示す)、4×N(4は、現在ピクチャブロックの幅が4サンプルであることを示し、Nは、現在ピクチャブロックの高さがNサンプルであることを示し、類推によって他のサイズが推定される)、8×16、又は16×8を含む。Nは2のべき乗であり、且つ8以上である。例えば、Nの値は、16、32、64などとし得る。
この出願のこの実施形態において、第1リストに対応する参照サンプル値、及び第2リストに対応する参照サンプル値は、それぞれ、第1リスト(すなわち、list0)に対応する第1動きベクトル(例えば、Mv0_L0)、及び第2リスト(すなわち、list1)に対応する第2動きベクトル(例えば、Mv1_L1)に基づく予測を通じて取得される。例えば、第1リスト(すなわち、list0)に対応する参照サンプル値は、第1のリスト(すなわち、list0)に対応する第1動きベクトル(例えば、Mv0_L0)に基づいて決定されることができ、第2リスト(すなわち、list1)に対応する参照サンプル値は、第2リスト(すなわち、list1)に対応する第2動きベクトル(例えば、Mv1_L1)に基づいて決定されることができる。
なお、第1動きベクトル及び第2動きベクトルは、異なるインター予測モードでは異なる方式で決定される。第1動きベクトル及び第2動きベクトルをAMVPモード、マージモード、及びスキップモードにてどのように決定するかの詳細については、ステップS701での説明を参照されたい。詳細をここで再び説明することはしない。
理解されるべきことには、ここでの現在ピクチャブロック(これは、現在ブロックとも称される)は、処理中のピクチャブロックとして理解され得る。例えば、符号化プロセスにおいて、現在ピクチャブロックは、符号化中のピクチャブロック(encoding block)である。
また、第2のプリセットサイズが8×8、4×N、8×16、又は16×8を含む前述のケースは、第2のプリセットサイズが8×8、4×N、8×16、又は16×8であることに限られることもできる。換言すれば、BDOFは、上に列挙された8×8、4×N、8×16、及び16×8なるサイズのうちの1つに対して使用されることが禁止され、あるいは、これらのうちの複数のサイズに対して使用されることが禁止されてもよい。以下では、説明のための例を用いる。
例1: 第2のプリセットサイズは8×8を含む(又は、である)。換言すれば、この出願のこの実施形態において、BDOFは、サイズ8×8に対して使用されることが禁止される。この場合、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下として表現され得る:現在ピクチャブロックのサイズが8×8であるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得する。
例2:第2のプリセットサイズは4×Nを含む(又は、である)。換言すれば、この出願のこの実施形態において、BDOFは、サイズ4×Nに対して使用されることが禁止される。この場合、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下として表現され得る:Nは8以上であるとして、現在ピクチャブロックのサイズが4×Nであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得する。
例3: 第2のプリセットサイズは8×8又は4×Nを含む(又は、である)。換言すれば、この出願のこの実施形態において、BDOFは、サイズ8×8及び4×Nに対して使用されることが禁止される。この場合、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下として表現され得る:Nは8以上であるとして、現在ピクチャブロックのサイズが8×8及び4×Nのいずれかであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得する。
例4: 第2のプリセットサイズは8×8、4×N、8×16、又は16×8を含み(又は、であり)、ここで、Nは8以上である。換言すれば、この出願のこの実施形態において、BDOFは、サイズ8×8、4×N、8×16、及び16×8に対して使用されることが禁止される。この場合、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下として表現され得る:現在ピクチャブロックのサイズが8×8、4×N、8×16、及び16×8のうちのいずれか1つであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得する。
例5: 第2のプリセットサイズはN×8を含み(又は、であり)、ここで、Nは4以上である。換言すれば、この出願のこの実施形態において、BDOFは、サイズN×8に対して使用されることが禁止される。この場合、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下として表現され得る:現在ピクチャブロックのサイズがN×8であるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得する。
例6: 第2のプリセットサイズはN×8又は4×Nを含み(又は、であり)、ここで、Nは4以上である。換言すれば、この出願のこの実施形態において、BDOFは、サイズN×8又は4×Nに対して使用されることが禁止される。この場合、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下として表現され得る:現在ピクチャブロックのサイズがN×8又は4×Nであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得する。
さらに、一部のシナリオでは、サイズM×4に対してもBDOFが使用されることが禁止されるので、この出願において、第2のプリセットサイズに対してBDOFが使用されることが禁止されるとき、BDOFは更に、Mは4以上の整数であるとして、サイズM×4に対して使用されることが禁止され得る。
理解され得ることには、前述のケースを参考にして、別のケースを更に得ることができ、別のケースもこの出願の保護範囲に入るものである。理解されるべきことには、この出願のこの実施形態における方法は、例えばビデオエンコーダ又は映像符号化機能を持つエレクトロニクス装置などの、ピクチャ予測装置によって実行されることができ、具体的に、ビデオエンコーダ内のインター予測ユニットによって実行され得る。
オプションの一ソリューションにおいて、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で現在ピクチャブロックの予測サンプル値を決定することは、
第1リストに対応する参照サンプル値及び第2リストに対応する参照サンプル値において同じ位置を持つサンプル値に対して重み付け計算を実行して、現在ピクチャブロックの予測サンプル値を取得すること、又は
マージ・ウイズ・動きベクトル差MMVD技術に従って、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づく予測を通じて、現在ピクチャブロックの予測サンプル値を取得すること、又は
結合インター/イントラ予測CIIP技術に従って、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づく予測を通じて、現在ピクチャブロックの予測サンプル値を取得すること、又は
デコーダ側動きベクトル精緻化DMVR技術に従って、第1リストに対応する参照サンプルと第2リストに対応する参照サンプルとに基づく予測を通じて、現在ピクチャブロックの予測サンプル値を取得すること、
を含む。
この出願のこの実施形態において、重み付け計算方式、MMVD技術、CIIP技術、又はDMVR技術が具体的に使用されるかは、対応する条件を用いることによって決定されてもよいし、あるいは、対応する指示情報を用いることによって指し示されてもよい。
この出願のこの実施形態において、重み付け計算方式、MMVD技術、又はCIIP技術が具体的に使用されるかは、対応する条件を用いることによって決定されてもよいし、あるいは、対応する指示情報を用いることによって指し示されてもよい。オプションで、後にビットストリームに符号化される情報は更にターゲット識別子を含むことができ、ターゲット識別子は、現在ブロックの予測サンプル値を予測するのに使用される方式を指し示すために使用される。例えば、ターゲット識別子はmmvd_flag[x0][y0]である。mmvd_flag[x0][y0]がプリセット値(例えば、値1)であるとき、それは、現在ピクチャブロックにMMVD方式が使用されることを指し示す。
オプションで、MMVD実装が以下に提供される。図6Cに示すように、現在ピクチャブロックの予測動き情報が取得される。現在ピクチャブロックの前方動きベクトル予測子及び後方動きベクトル予測子(すなわち、第1リストに対応する前述の動きベクトル予測子及び第2リストに対応する前述の動きベクトル予測子)が、それぞれ、MV0(-22,18)及びMV1(2,12)であり、且つ前方動きベクトル差及び後方動きベクトル差が、それぞれ、MVD0(1,0)及びMVD1(-1,0)であると仮定する。
現在ピクチャブロックに対して前方予測及び後方予測が別々に実行されて、現在ピクチャブロックの前方予測ブロック及び後方予測ブロックが得られる。
MV0(-22,18)及びMV1(2,12)が前方動きベクトル予測子及び後方動きベクトル予測子の基準入力として用いられ、そして、前方参照予測ブロックq0及び後方参照予測ブロックh0に対して第1精度の動き探索が実行される。例えば、第1精度は1サンプルである。
前方参照予測ブロックq0及び後方参照予測ブロックh0が各々、第1精度の動き探索を実行するための開始探索点として用いられ、そして、その都度発見される新たな前方参照予測ブロックと新たな後方参照予測ブロックとの間の差が決定される。例えば、上記前方参照予測ブロック及び上記後方参照予測ブロックの周りの8対の前方参照予測ブロックと後方参照予測ブロックとの間の差が決定され、そして、前方参照予測ブロックq0と後方参照予測ブロックh0との間の差が決定される。最小の差を持つ前方参照予測ブロック及び後方参照予測ブロックの動きベクトル予測子が、それぞれ、(-21,18)及び(1,12)であると仮定する。探索点が、前方参照予測ブロックq1及び後方参照予測ブロックh1にそれぞれ対応する(-21,18)及び(1,12)に更新され、第1精度の動き探索が引き続き実行される。前方参照予測ブロックq1及び後方参照予測ブロックh1が各々、第1精度の動き探索を実行するための開始探索点として用いられ、そして、その都度発見される前方参照予測ブロックと後方参照予測ブロックとの間の差が決定される。例えば、上記前方参照予測ブロック及び上記後方参照予測ブロックの周りの8対の前方参照予測ブロックと後方参照予測ブロックとの間の差が決定され、そして、前方参照予測ブロックq1と後方参照予測ブロックh1との間の差が決定される。最小の差を持つ前方参照予測ブロック及び後方参照予測ブロックの動きベクトル予測子が、それぞれ、(-20,18)及び(0,12)であると仮定する。(-21,18)及び(1,12)が、それぞれ、前方参照予測ブロックq2及び後方参照予測ブロックh2に対応する。
この出願のこの実施形態において、第1精度の動き探索の回数は、例えば、1又は2に設定され得る。あるいは、動き探索範囲が決められる。その範囲外で探索は停止される。
一例として2回を用いると、前方参照予測ブロックq2の動きベクトル予測子(-20,18)とMVD0 (1,0)とを足し合わせて(-19,18)が得られ、後方参照予測ブロックh2の動きベクトル予測子(0,12)とMVD1とを足し合わせて(1,12)が得られる。従って、現在ピクチャブロックは、前方動きベクトル予測子(-19,18)及び後方動きベクトル予測子(1,12)に基づいて予測される。図6Cは、1回の動き探索プロセスのみを示している。
理解されるべきことには、BDOF技術は、現在ピクチャブロックの予測サンプル値を予測するための従来技術でのパッチ最適化技術と同等である。BDOF技術によれば、多くのシナリオにおいて、現在ピクチャブロックの実際のサンプル値にいっそう近い予測サンプル値を得ることができる。従って、その予測サンプル値に基づいて得られるサンプル残差はより小さいものとなり、それ故に、コーディング効率を向上させることができる。前述の重み付け計算方式は、現在ピクチャブロックの予測サンプル値を得るための従来技術とみなされてもよく、前述のMMVD技術及びCIIP技術は各々、従来技術でのパッチ最適化技術とみなされてもよい。この出願のこの実施形態において、現在ピクチャブロックのサイズが第2のプリセットサイズであるとき、現在ピクチャブロックの予測サンプル値は、BDOF技術ではなく、従来技術(例えば、重み付け計算方式)又は他のパッチ最適化技術(例えば、MMVD又はCIIP)に従って決定される。これは、コーディングの複雑さを大幅に低減させることができるとともに、コーディング効率を向上させることができる。
ステップS703: 復号装置は、少なくとも現在ピクチャブロックの予測サンプル値に基づいて、現在ピクチャブロックのサンプル値を決定する。
例えば、AMVPモード及びマージモードでは、現在ブロックの予測サンプル値にサンプル残差を足し合わせることで現在ブロックのサンプル値が得られる。スキップモードでは、現在ブロックのサンプル値を決定するときにサンプル残差は必要でない。
図8は、この出願の一実施形態に従ったインター予測装置80の概略ブロック図である。なお、インター予測装置80は、映像ピクチャを復号するためのインター予測に適用可能であるだけでなく、映像ピクチャを符号化するためのインター予測にも適用可能である。理解されるべきことには、ここでのインター予測装置80は、図2のインター予測ユニット244に対応することができ、あるいは図3のインター予測ユニット344に対応することができる。インター予測装置80は、判定ユニット801及びインター予測処理ユニット802を含み得る。
判定ユニット801は、現在ピクチャブロックが複数のプリセット条件を満足するかを判定するように構成される。
インター予測処理ユニット802は、上記複数のプリセット条件が満足されるときに、現在ピクチャブロックに対して双方向オプティカルフローBDOF(Bi-directional optical flow、略してBIO又はBDOF)処理を実行して現在ピクチャブロックの予測サンプル値を取得するように構成され、上記複数のプリセット条件は少なくとも、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することという条件を含む。現在ピクチャブロックのサイズは、通常、幅及び高さ(短くW×Hと記載される)によって表され、幅及び高さは、サンプル(sample又はpixel)によって測定される。例えば、現在ピクチャブロックのサイズが8×8である場合、1つめの8は、現在ピクチャブロックの幅が8サンプルであることを示し、2つめの8は、現在ピクチャブロックの高さが8サンプルであることを示す。他の一例では、現在ピクチャブロックのサイズが8×16である場合、8は、現在ピクチャブロックの幅が8サンプルであることを示し、16は、現在ピクチャブロックの高さが16サンプルであることを示す。
現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、且つ現在ピクチャブロックの幅Wと高さHとの積が64に等しいときに幅Wが高さHに等しくない、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、且つ現在ピクチャブロックの幅Wが8以上である、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、現在ピクチャブロックの幅Wが8以上であり、且つ現在ピクチャブロックの幅Wと現在ピクチャブロックの高さHとの積が64よりも大きい、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、現在ピクチャブロックの幅Wが8以上であり、且つ現在ピクチャブロックの幅Wと現在ピクチャブロックの高さHとの積が128よりも大きい、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8よりも大きい、ことを含む。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8よりも大きく、且つ現在ピクチャブロックの幅Wが8以上である、ことを含む。
なお、BDOF技術に従って、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて現在ピクチャブロックの現在サブブロックの予測サンプル値を決定する(又は予測を通じて取得する)かが決定される前に、現在ピクチャブロックのサイズに加えて、別の参照条件が存在してもよい。別の参照条件は、ここで限定されるものではない。理解を容易にするために、以下では、説明のための例を用いる。
条件A: 現在映像シーケンスに対してBDOF技術が使用されることが許されることを指し示すハイレベルシンタックス識別子sps_bdof_enabled_flagが存在する。
条件B: 第1リスト(List1)に対応する予測方向指示情報predFlagL0が1に等しく、且つ第2リスト(list0)に対応する予測方向指示情報predFlagL1が1に等しい。
条件C: 第1リスト(list0)に対応する参照フレームのピクチャオーダカウントPOC_L0、第2リスト(list1)に対応する参照フレームのピクチャオーダカウントPOC_L1、及びその中に現在ピクチャブロックが位置するピクチャのピクチャオーダカウントPOC_Curが、(POC_L0-POC_Cur)×(POC_L1-POC_Cur)<0という関係を満足する。換言すれば、現在ピクチャブロックを含むピクチャが、2つの参照ピクチャの間にある。
条件D: MotionModelIdc[xCb][yCb]が0に等しい。MotionModelIdcは、動き補償に関する動きモデルインデックスである。0に等しいMotionModelIdc[xCb][yCb]は、現在ブロックの動き補償のための動きモデルが並進運動(Translational motion)であることを指し示す。
条件E: merge_subblock_flag[x0][y0]が0に等しく、ここで、0に等しいmerge_subblock_flag[x0][y0]は、現在ピクチャブロックに対してサブブロックマージモードが適用されないことを指し示す。
条件F: sym_mvd_flag[x0][y0]が0に等しい。0に等しいsym_mvd_flag[x0][y0]は、現在ブロックに対してmvd_coding(x0,y0,refList,cpIdx)シンタックス構造が存在することを指し示す。
条件G: bcwIdx[xCb][yCb]が0に等しい。bcwIdxは、現在ピクチャブロックに対する双方向予測重みインデックスを示す。
条件H: cIdxが0に等しい。cIdxは、現在ピクチャブロックの色成分インデックスを表す。
条件I: 現在ピクチャブロックのサイズが第1のプリセットサイズである。
条件J: luma_weight_l0_flag[refIdxL0]及びluma_weight_l1_flag[refIdxL1]の両方が0に等しく、ここで、0に等しいluma_weight_l0_flagは、list0予測のluma成分に対する重み付け係数が存在しないことを指し示し、0に等しいluma_weight_l1_flagは、list1予測のluma成分に対する重み付け係数が存在しないことを指し示す。
例えば、条件A乃至Jの全てが満足されるとき、現在ピクチャブロックの予測サンプル値を予測するためにBDOF技術が使用され得ることが決定される。例えば、bdofFlagがtrueに設定される。なお、前述の条件は単なる例であり、別の条件が更に追加されたり、あるいは前述の条件のうちの1つ以上が置き換えられたり、あるいは前述の条件のうちの1つ以上が除去されたりしてもよい。
理解されるべきことには、ここでの現在ピクチャブロック(これは、現在ブロックとも称される)は、処理中のピクチャブロックとして理解され得る。例えば、符号化プロセスにおいて、現在ピクチャブロックは、符号化中のピクチャブロック(encoding block)である。確かなことには、ここでの現在ピクチャブロックは代わりに、処理中のピクチャブロックとして理解されてもよい。例えば、復号プロセスにおいて、現在ピクチャブロックは、復号中のピクチャブロック(decoding block)である。
理解され得ることには、前述のケースを参考にして、別のケースを更に得ることができ、別のケースもこの出願の保護範囲に入るものである。
理解されるべきことには、この出願の実施形態における方法は、ビデオエンコーダ、又は映像符号化機能を持つエレクトロニクス装置によって実行されることができ、あるいは、ビデオエンコーダ、又は映像符号化機能を持つエレクトロニクス装置によって実行されることができる。例えば、当該方法は具体的に、これらの装置内のインター予測ユニットによって実行され得る。
なお、前述のインター予測装置80内の判定ユニット801及び予測処理ユニット802の具体的な実装については、図6A及び図7に示した方法実施形態における関連説明を参照されたい。
前述の方法手順のステップにおいて、当該ステップの記載順序は当該ステップの実行順序を表すものではない。当該ステップは、前述の記載順序に従って実行されてもよいしされなくてもよい。
当業者が理解し得ることには、この明細書にて開示及び記載された様々な例示的な論理ブロック、モジュール、及びアルゴリズムステップを参照して説明された機能は、ハードウェア、ソフトウェア、ファームウェア、又はこれらの任意の組み合わせによって実装されることができる。ソフトウェアによって実装される場合、それら例示的な論理ブロック、モジュール、及びステップを参照して説明された機能は、1つ以上の命令又はコードとして、コンピュータ読み取り可能媒体に格納され又はそれ上で伝送され、そして、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ読み取り可能媒体は、例えばデータ記憶媒体などの有形媒体に対応するものであるコンピュータ読み取り可能記憶媒体を含むことができ、あるいは、(例えば通信プロトコルに従った)1つの場所から別の場所へのコンピュータプログラムの伝送を支援する任意の通信媒体を含むことができる。斯くして、コンピュータ読み取り可能媒体は、一般に、(1)非一時的な有形のコンピュータ読み取り可能記憶媒体、又は(2)例えば信号又は搬送波などの通信媒体に対応し得る。データ記憶媒体は、この出願に記載された技術を実装するための命令、コード及び/又はデータ構造を取り出すために1つ以上のコンピュータ又は1つ以上のプロセッサによってアクセスされることができる任意の使用可能な媒体とし得る。コンピュータプログラムプロダクトがコンピュータ読み取り可能媒体を含み得る。
例として、限定ではなく、そのようなコンピュータ読み取り可能記憶媒体は、RAM、ROM、EEPROM、CD-ROM若しくは他のコンパクトディスクストレージ装置、磁気ディスクストレージ装置若しくは他の磁気ストレージ装置、フラッシュメモリ、又は、命令若しくはデータ構造の形態で所望のプログラムコードを格納するために使用されることができ且つコンピュータによってアクセスされることができる任意の他の媒体を含み得る。また、任意の接続が適切にコンピュータ読み取り可能媒体として参照される。例えば、命令が、ウェブサイト、サーバ、又は他のリモートソースから、同軸ケーブル、光ファイバ、ツイストペア、デジタル加入者回線(DSL)、又は例えば赤外線、無線、若しくはマイクロ波などの無線技術を介して伝送される場合、その同軸ケーブル、光ファイバ、ツイストペア、DSL、又は例えば赤外線、無線、若しくはマイクロ波などの無線技術は、媒体の定義に含まれる。しかしながら、理解されるべきことには、コンピュータ読み取り可能記憶媒体及びデータ記憶媒体は、接続、搬送波、信号、又は他の一時的媒体を含まず、実際には、非一時的で有形の記憶媒体を意味する。この明細書で使用されるディスク(disk及びdisc)は、コンパクトディスク(CD)、レーザディスク、光ディスク、デジタル多用途ディスク(DVD)、及びBlu-rayディスクを含む。diskは、通常、磁気的にデータを再生し、discはレーザを用いることによって光学的にデータを再生する。上述のアイテムの組み合わせも、コンピュータ読み取り可能媒体の範囲に含まれるべきである。
命令は、例えば1つ以上のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、又は他の同等の集積論理回路若しくはディスクリート論理回路などの、1つ以上のプロセッサによって実行され得る。従って、この明細書で使用される用語“プロセッサ”は、上述の構造のいずれか、又はこの明細書に記載された技術を実装するのに適した任意の他の構造とし得る。さらに、一部の態様において、この明細書に記載された例示的な論理ブロック、モジュール、及びステップを参照して説明された機能は、符号化及び復号のために構成された専用のハードウェア及び/又はソフトウェアモジュール内で提供されてもよいし、あるいは、組み合わされたコーデックに組み込まれてもよい。また、これらの技術は、1つ以上の回路又は論理素子にて完全に実装されてもよい。
この出願における技術は、無線ハンドセット、集積回路(IC)、又は一組のIC(例えば、チップセット)を含め、様々な装置又はデバイスにて実装され得る。この出願では、開示された技術を実行するように構成された装置の機能的側面を強調するために、様々なコンポーネント、モジュール、又はユニットが説明されているが、必ずしも、複数の異なるハードウェアユニットによって実装されるわけではない。実際には、上述のように、様々なユニットが、適切なソフトウェア及び/又はファームウェアと組み合わせてコーデックハードウェアユニットへと結合されてもよいし、あるいは、相互運用可能な複数のハードウェアユニット(上述の1つ以上のプロセッサを含む)によって提供されてもよい。
以上の説明は、単にこの出願の特定の実装の例であり、この出願の保護範囲を限定することを意図するものではない。この出願にて開示された技術的範囲内で当業者が容易に考え付く如何なる変更又は置換もこの出願の保護範囲に入るものである。従って、この出願の保護範囲は請求項の保護範囲に従うものである。
この出願は、映像コーディング技術の分野に関し、特に、ビデオエンコーダ、ビデオデコーダ、及び対応する方法に関する。
デジタルビデオ機能は、デジタルテレビジョン、デジタルライブ放送システム、無線放送システム、携帯情報端末(PDA)、ラップトップ若しくはデスクトップコンピュータ、タブレットコンピュータ、電子書籍リーダ、デジタルカメラ、デジタル記録装置、デジタルメディアプレーヤ、ビデオゲーム装置、ビデオゲームコンソール、セルラ若しくは衛星無線電話(所謂“スマートフォン”)、ビデオ会議装置、ビデオストリーミング装置、及びこれらに類するものを含む広範で多様な装置に組み込まれることができる。デジタルビデオ装置は、例えば、MPEG-2、MPEG-4、ITU-T H.263、及びITU-T H.264/MPEG-4パート10:アドバンストビデオコーディング(AVC)、映像コーディング標準H.265/ハイエフィシェンシビデオコーディング(HEVC)標準、及びこのような標準の拡張、によって規定される標準に記載された映像圧縮技術といった、映像圧縮技術を実装する。ビデオ装置は、そのような映像圧縮技術を実装することによって、より効率的にデジタルビデオ情報を送信、受信、符号化、復号、及び/又は格納することができる。
映像圧縮技術は、映像シーケンスにおける生来的な冗長性を低減又は除去するために、空間(イントラピクチャ)予測及び/又は時間(インターピクチャ)予測を実行するように使用される。ブロックベースの映像コーディングでは、映像スライス(すなわち、映像フレーム、又は映像フレームの一部)が複数のピクチャブロックに分割され、ピクチャブロックは、ツリーブロック、コーディングユニット(CU)、及び/又はコーディングノードと称されることもる。ピクチャのイントラコーディングされる(I)スライス内のピクチャブロックは、同じピクチャ内の隣接ブロック内の参照サンプルに基づいて空間予測を通じてコーディングされる。ピクチャのインターコーディングされる(P又はB)スライス内のピクチャブロックでは、同じピクチャ内の隣接ブロック内の参照サンプルに基づく空間予測、又は別の参照ピクチャ内の参照サンプルに基づく時間予測が使用され得る。ピクチャはフレームと称されることがあり、参照ピクチャは参照フレームと称されることがある。
ハイエフィシェンシビデオコーディング(HEVC)標準を含む様々な映像コーディング標準は、ピクチャブロックに使用される予測コーディングモードを提案している。具体的には、現在コーディング対象ブロックが、コーディングされた映像データブロックに基づいて予測される。イントラ予測モードにおいて、現在ブロックは、現在ブロックと同じピクチャ内の1つ以上の先行して復号された隣接ブロックに基づいて予測される。インター予測モードにおいて、現在ブロックは、異なるピクチャ内の復号されたブロックに基づいて予測される。
予測は、前方予測、後方予測、双方向予測、及びこれらに類するものを含む。双方向予測では、前方予測の動き補償プロセス及び後方予測の動き補償プロセスにおける動き情報に基づいて、前方予測ブロック(例えば、第1リスト内の予測サンプル値に対応する)及び後方予測ブロック(例えば、第2リスト内の予測サンプル値に対応する)をそれぞれ取得する必要があり、そして、これら前方予測ブロックと後方予測ブロックとに基づいて、現在ブロックの予測ブロックが決定される。現在ブロックの予測ブロックの予測精度を向上させながら、どのようにしてコーディングの複雑さを低減させるかは、当業者によって研究されている技術的問題である。
本発明の実施形態は、符号化/復号の複雑さと予測精度とをある程度バランスさせるための、ビデオエンコーダ、ビデオデコーダ、及び対応する方法を開示する。
第1態様によれば、この出願の一実施形態は、映像符号化方法を提供し、当該方法は、
複数のプリセット条件が満足されるときに、現在ピクチャブロックに対して双方向オプティカルフローBDOF(Bi-directional optical flow、略してBIO又はBDOF)処理を実行して現在ピクチャブロックの予測サンプル値を取得し、上記複数のプリセット条件は少なくとも、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することという条件を含む、ことを含む。
現在ピクチャブロックのサイズは、通常、幅及び高さ(短くW×Hと記載される)によって表され、幅及び高さは、サンプル(sample又はpixel)によって測定される。例えば、現在ピクチャブロックのサイズが8×8である場合、1つめの8は、現在ピクチャブロックの幅が8サンプルであることを示し、2つめの8は、現在ピクチャブロックの高さが8サンプルであることを示す。他の一例では、現在ピクチャブロックのサイズが8×16である場合、8は、現在ピクチャブロックの幅が8サンプルであることを示し、16は、現在ピクチャブロックの高さが16サンプルであることを示す。
現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、且つ現在ピクチャブロックの幅Wと高さHとの積が64に等しいときに幅Wが高さHに等しくない、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、且つ現在ピクチャブロックの幅Wが8以上である、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、現在ピクチャブロックの幅Wが8以上であり、且つ現在ピクチャブロックの幅Wと現在ピクチャブロックの高さHとの積が64よりも大きい、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、現在ピクチャブロックの幅Wが8以上であり、且つ現在ピクチャブロックの幅Wと現在ピクチャブロックの高さHとの積が128よりも大きい、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8よりも大きい、ことを含む。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8よりも大きく、且つ現在ピクチャブロックの幅Wが8以上である、ことを含む。
当該方法は更に、少なくとも現在ピクチャブロックの予測サンプル値に基づいて、現在ピクチャブロックを再構成し、
シンタックス要素を送信対象ビットストリームに符号化し、シンタックス要素は少なくとも、双方向予測が適用されることを指し示すために使用される、
ことを含む。
理解されるべきことには、現在ピクチャブロックに対してBDOFを実行するプロセスにおいて、予測はサブブロックによって実行される。具体的には、現在ピクチャブロックに対して双方向オプティカルフローBDOF処理を実行することは具体的に、現在ピクチャブロックの現在サブブロックの予測サンプル値を得るために、現在ピクチャブロックの現在サブブロックに対して双方向オプティカルフローBDOF処理を実行することとし得る。現在ピクチャブロックの予測サンプル値は、1つ以上のサブブロックの予測サンプル値を含み、該1つ以上のサブブロックは現在サブブロックを含む。現在ピクチャブロックが1つのサブブロックのみを含む場合、そのサブブロックのサイズは、現在ピクチャブロックのサイズに等しいとし得る。
なお、BDOF技術に従って現在ピクチャブロックの予測サンプル値を決定する(又は予測を通じて取得する)かが決定される前に、現在ピクチャブロックのサイズに加えて、別の参照条件が存在してもよい。別の参照条件は、ここで限定されるものではない。理解を容易にするために、以下では、説明のための例を用いる。
条件A: 現在映像シーケンスに対してBDOF技術が使用されることが許されることを指し示すハイレベルシンタックス識別子sps_bdof_enabled_flagが存在する。
条件B: 第1リスト(List1)に対応する予測方向指示情報predFlagL0が1に等しく、且つ第2リスト(list0)に対応する予測方向指示情報predFlagL1が1に等しい。
条件C: 第1リスト(list0)に対応する参照フレームのピクチャオーダカウントPOC_L0、第2リスト(list1)に対応する参照フレームのピクチャオーダカウントPOC_L1、及びその中に現在ピクチャブロックが位置するピクチャのピクチャオーダカウントPOC_Curが、(POC_L0-POC_Cur)×(POC_L1-POC_Cur)<0という関係を満足する。換言すれば、現在ピクチャブロックを含むピクチャが、2つの参照ピクチャの間にある。
条件D: MotionModelIdc[xCb][yCb]が0に等しい。MotionModelIdcは、動き補償に関する動きモデルインデックスである。0に等しいMotionModelIdc[xCb][yCb]は、現在ブロックの動き補償のための動きモデルが並進運動(Translational motion)であることを指し示す。
条件E: merge_subblock_flag[x0][y0]が0に等しく、ここで、0に等しいmerge_subblock_flag[x0][y0]は、現在ピクチャブロックに対してサブブロックマージモードが適用されないことを指し示す。
条件F: sym_mvd_flag[x0][y0]が0に等しい。0に等しいsym_mvd_flag[x0][y0]は、現在ブロックに対してmvd_coding(x0,y0,refList,cpIdx)シンタックス構造が存在することを指し示す。
条件G: bcwIdx[xCb][yCb]が0に等しい。bcwIdxは、現在ピクチャブロックに対する双方向予測重みインデックスを示す。
条件H: cIdxが0に等しい。cIdxは、現在ピクチャブロックの色成分インデックスを表す。
条件I: 現在ピクチャブロックのサイズが第1のプリセットサイズである。
条件J: luma_weight_l0_flag[refIdxL0]及びluma_weight_l1_flag[refIdxL1]の両方が0に等しく、ここで、0に等しいluma_weight_l0_flagは、list0予測のルマコンポーネントに対する重み付け係数が存在しないことを指し示し、0に等しいluma_weight_l1_flagは、list1予測のルマコンポーネントに対する重み付け係数が存在しないことを指し示す。
例えば、条件A乃至Jの全てが満足されるとき、現在ピクチャブロックの予測サンプル値を予測するためにBDOF技術が使用され得ることが決定される。例えば、bdofFlagがtrueに設定される。なお、前述の条件は単なる例であり、別の条件が更に追加されたり、あるいは前述の条件のうちの1つ以上が置き換えられたり、あるいは前述の条件のうちの1つ以上が除去されたりしてもよい。
理解されるべきことには、ここでの現在ピクチャブロック(これは、現在ブロックとも称される)は、処理中のピクチャブロックとして理解され得る。例えば、符号化プロセスにおいて、現在ピクチャブロックは、符号化中のピクチャブロック(encoding block)である。
この出願のこの実施形態において、状態判定動作が更に含められてもよい。例えば、上記複数のプリセット条件が満足されているかが判定される。
理解され得ることには、前述のケースを参考にして、別のケースを更に得ることができ、別のケースもこの出願の保護範囲に入るものである。
理解されるべきことには、この出願のこの実施形態における方法は、ビデオエンコーダ、又は映像符号化機能を持つエレクトロニクス装置によって実行され得る。
具体的には、BDOF技術を有効にする又は使用するための、このソリューションにおける条件は、BDOF技術を有効にする又は使用するための、従来技術における条件とは異なり、特に、現在ピクチャブロックのサイズに関する要件が異なる。第1のプリセットサイズを持つ現在ピクチャブロックに対してBDOF技術を使用することで、元のサンプル値にいっそう近い予測サンプル値を得ることができ、また、コーディングの複雑さを適切に制御することができる。これは、符号化/復号の複雑さと予測精度とをある程度バランスさせ、それによりコーディング効率を向上させる。
オプションの一ソリューションにおいて、シンタックス要素は、ターゲット候補動き情報のインデックス(例えば、merge_idx[xCb][yCb])を含み、ターゲット候補動き情報は、ターゲット候補動きベクトル、参照フレームインデックス、及び予測方向指示情報(例えば、predFlagL0=1及びpredFlagL1=1)を含み、予測方向指示情報は、双方向予測が適用されることを指し示すために使用され、ターゲット候補動きベクトルは、第1リスト(すなわち、list0)に対応する第1動きベクトル、及び第2リスト(すなわち、list1)に対応する第2動きベクトルを含み、参照フレームインデックスは、第1リストに対応する第1参照フレームのインデックス(例えば、refIdxL0)、及び第2リストに対応する第2参照フレームのインデックス(例えば、refIdxL1)を含む。
この出願のこの実施形態において、参照フレームインデックスは、指定された参照ピクチャリスト(第1リストlist0又は第2リストlist1)内の使用される動きベクトル(例えば、第1動きベクトル又は第2動きベクトル)に対応する参照ピクチャを特定するために使用される。ピクチャはフレームと称されることがあり、参照ピクチャは参照フレームと称されることがある。
映像コーディング分野において、インター予測モードは、前方予測、後方予測、及び双方向予測(前方予測及び後方予測を含む)を含み、エンコーダ側で使用される特定の予測モードは、通常、予測方向指示情報によって指し示される。例えば、予測方向指示情報は、シンタックス要素predFlagL0及びpredFlagL1を含み得る。predFlagL0=1且つpredFlagL1=1であるとき、予測方向指示情報は、双方向予測が適用されることを指し示す。predFlagL0=1且つpredFlagL1=0であるとき、予測方向指示情報は、前方予測が使用されることを指し示す。predFlagL0=0且つpredFlagL1=1であるとき、予測方向指示情報は、後方予測が使用されることを指し示す。理解され得ることには、“前方”及び“後方”は、それぞれ、現在ピクチャの参照ピクチャリスト0(list0、すなわち、前述の第1リスト)及び参照ピクチャリスト1(list1、すなわち、前述の第2リスト)に対応する。
オプションの一ソリューションにおいて、シンタックス要素は、第1インデックス、第2インデックス、予測方向指示情報、及び動きベクトル差MVDを含み、第1インデックス(例えば、mvp_lX_flag[xCb][yCb])は、ターゲット候補動きベクトル予測子を指し示すために使用され、ターゲット候補動きベクトル予測子は、第1リスト(例えば、list0)に対応する第1動きベクトル予測子、及び第2リスト(例えば、list1)に対応する第2動きベクトル予測子を含み、動きベクトル差MVDは、第1リストに対応する第1MVD、及び/又は第2リストに対応する第2MVDを含む(オプションで、MMVD技術が使用されるとき、1つのMVDのみが伝送されてもよく、別方向のものであってデコーダ側によって使用される必要があるMVDは、伝送されたMVDに基づいて導出され得る)。第2インデックス(これらは、参照フレームインデックスとも称される)は、現在ピクチャブロックの参照フレームを指し示すために使用され、参照フレームは、第1リストに対応する第1参照フレーム、及び第2リストに対応する第2参照フレームを含む。例えば、第2インデックスは、refIdxL0及びrefIdxL1であり、refIdxL0は、第1リストに対応する第1参照フレームのインデックスであり、refIdxL1は、第2リストに対応する第2参照フレームのインデックスである。予測方向指示情報(例えば、predFlagL0=1及びpredFlagL1=1)は、双方向予測が適用されることを指し示すために使用される。
第1リストに対応する第1動きベクトル(例えば、Mv0_L0)が、第1リストに対応する第1動きベクトル予測子(例えば、Mvp0_L0)と、第1リストに対応する第1MVD(例えば、MVD0)とに基づいて取得される。例えば、Mv0_L0=Mvp0_L0+MVD0である。
第2リストに対応する第2動きベクトル(例えば、Mv1_L1)が、第2リストに対応する第2動きベクトル予測子(例えば、Mvp1_L1)と、第2リストに対応する第2MVD(例えば、MVD1)とに基づいて取得される。例えば、Mv1_L1=Mvp1_L1+MVD1である。
映像コーディング分野において、インター予測モードは、前方予測、後方予測、及び双方向予測(前方予測及び後方予測を含む)を含み、エンコーダ側で使用される特定の予測モードは、通常、予測方向指示情報によって指し示される。例えば、予測方向指示情報は、シンタックス要素predFlagL0及びpredFlagL1を含み得る。predFlagL0=1且つpredFlagL1=1であるとき、予測方向指示情報は、双方向予測が適用されることを指し示す。predFlagL0=1且つpredFlagL1=0であるとき、予測方向指示情報は、前方予測が使用されることを指し示す。predFlagL0=0且つpredFlagL1=1であるとき、予測方向指示情報は、後方予測が使用されることを指し示す。理解され得ることには、“前方”及び“後方”は、それぞれ、現在ピクチャの参照ピクチャリスト0(list0、すなわち、前述の第1リスト)及び参照ピクチャリスト1(list1、すなわち、前述の第2リスト)に対応する。
オプションの一ソリューションにおいて、当該方法は更に、現在ピクチャブロックのサンプル値と現在ピクチャブロックの予測サンプル値とに基づいて、サンプル残差を決定することを含み、シンタックス要素を送信対象ビットストリームに符号化することは、シンタックス要素及びサンプル残差を送信対象ビットストリームに符号化することを含む。換言すれば、シンタックス要素に加えて、更にサンプル残差が、送信対象ビットストリームに符号化され得る(サンプル残差は、残差計算ユニットを用いることによって計算を通じて取得されることができ、例えば、サンプル残差は0であり、あるいは0でない)。このソリューションは、AMVPモード及びマージモードに適用され得る。また、サンプル残差を送信対象ビットストリームに符号化する必要がない場合も存在する。例えば、スキップモードでは、サンプル残差を送信対象ビットストリームに符号化する必要はない。
第2態様によれば、この出願の一実施形態は、符号化方法を提供し、当該方法は、
現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リスト(すなわち、list0)に対応する参照サンプル値と第2リスト(すなわち、list1)に対応する参照サンプル値とに基づいて、第1の処理方式で現在ピクチャブロックの予測サンプル値(例えば、現在コーディングユニットの予測サンプル)を決定し(又は予測を通じて取得し)、第1の処理方式は、BDOF(あるいは、双方向オプティカルフロー(Bi-directional optical flow、BIO)と称される)ではない、ことを含む。換言すれば、現在ピクチャブロックのサイズが第2のプリセットサイズであるとき、第1リストに対応する参照サンプル値及び第2リストに対応する参照サンプル値に基づいて現在ピクチャブロックの予測サンプル値を決定するためにBDOFを使用することは許されない。現在ピクチャブロックのサイズは、通常、幅及び高さ(短くW×Hと記載される)によって表され、幅及び高さは、サンプル(sample又はpixel)によって測定される。第2のプリセットサイズは、8×8(1つめの8は、現在ピクチャブロックの幅が8サンプルであることを示し、2つめの8は、現在ピクチャブロックの高さが8サンプルであることを示す)、4×N(4は、現在ピクチャブロックの幅が4サンプルであることを示し、Nは、現在ピクチャブロックの高さがNサンプルであることを示し、類推によって他のサイズが推定される)、8×16、又は16×8を含む。Nは2のべき乗であり、且つ8以上である。例えば、Nの値は、16、32、64などとし得る。
この出願のこの実施形態において、第1リストに対応する参照サンプル値、及び第2リストに対応する参照サンプル値は、それぞれ、第1リスト(すなわち、list0)に対応する第1動きベクトル(例えば、Mv0_L0)、及び第2リスト(すなわち、list1)に対応する第2動きベクトル(例えば、Mv1_L1)に基づく予測を通じて取得される。例えば、第1リスト(すなわち、list0)に対応する参照サンプル値は、第1のリスト(すなわち、list0)に対応する第1動きベクトル(例えば、Mv0_L0)に基づいて決定されることができ、第2リスト(すなわち、list1)に対応する参照サンプル値は、第2リスト(すなわち、list1)に対応する第2動きベクトル(例えば、Mv1_L1)に基づいて決定されることができる。
次いで、当該方法は、少なくとも現在ピクチャブロックの予測サンプル値に基づいて、現在ピクチャブロックを再構成することを含む。ここでの“少なくとも”が示すのは、現在ピクチャブロックを再構成するために現在ピクチャブロックの予測サンプル値が使用される必要があるが、他の情報も使用され得る、ということである。
その後、当該方法は、シンタックス要素を送信対象ビットストリームに符号化することを含み、シンタックス要素は少なくとも、双方向予測が適用されることを指し示すために使用される。
理解されるべきことには、ここでの現在ピクチャブロック(これは、現在ブロックとも称される)は、処理中のピクチャブロックとして理解され得る。例えば、符号化プロセスにおいて、現在ピクチャブロックは、符号化中のピクチャブロック(encoding block)である。
また、第2のプリセットサイズが8×8、4×N、8×16、又は16×8を含む前述のケースは、第2のプリセットサイズが8×8、4×N、8×16、又は16×8であることに限られることもできる。換言すれば、BDOFは、上に列挙された8×8、4×N、8×16、及び16×8なるサイズのうちの1つに対して使用されることが禁止され、あるいは、これらのうちの複数のサイズに対して使用されることが禁止されてもよい。以下では、説明のための例を用いる。
例1: 第2のプリセットサイズは8×8を含む(又は、である)。換言すれば、この出願のこの実施形態において、BDOFは、サイズ8×8に対して使用されることが禁止される。この場合、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下として表現され得る:現在ピクチャブロックのサイズが8×8であるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得する。
例2:第2のプリセットサイズは4×Nを含む(又は、である)。換言すれば、この出願のこの実施形態において、BDOFは、サイズ4×Nに対して使用されることが禁止される。この場合、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下として表現され得る:Nは8以上であるとして、現在ピクチャブロックのサイズが4×Nであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得する。
例3: 第2のプリセットサイズは8×8又は4×Nを含む(又は、である)。換言すれば、この出願のこの実施形態において、BDOFは、サイズ8×8及び4×Nに対して使用されることが禁止される。この場合、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下として表現され得る:Nは8以上であるとして、現在ピクチャブロックのサイズが8×8及び4×Nのいずれかであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得する。
例4: 第2のプリセットサイズは8×8、4×N、8×16、又は16×8を含み(又は、であり)、ここで、Nは8以上である。換言すれば、この出願のこの実施形態において、BDOFは、サイズ8×8、4×N、8×16、及び16×8に対して使用されることが禁止される。この場合、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下として表現され得る:現在ピクチャブロックのサイズが8×8、4×N、8×16、及び16×8のうちのいずれか1つであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得する。
例5: 第2のプリセットサイズはN×8を含み(又は、であり)、ここで、Nは4以上である。換言すれば、この出願のこの実施形態において、BDOFは、サイズN×8に対して使用されることが禁止される。この場合、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下として表現され得る:現在ピクチャブロックのサイズがN×8であるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得する。
例6: 第2のプリセットサイズはN×8又は4×Nを含み(又は、であり)、ここで、Nは4以上である。換言すれば、この出願のこの実施形態において、BDOFは、サイズN×8又は4×Nに対して使用されることが禁止される。この場合、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下として表現され得る:現在ピクチャブロックのサイズがN×8又は4×Nであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得する。さらに、一部のシナリオでは、サイズM×4に対してもBDOFが使用されることが禁止されるので、この出願において、第2のプリセットサイズに対してBDOFが使用されることが禁止されるとき、BDOFは更に、Mは4以上の整数であるとして、サイズM×4に対して使用されることが禁止され得る。
理解され得ることには、前述のケースを参考にして、別のケースを更に得ることができ、別のケースもこの出願の保護範囲に入るものである。
理解されるべきことには、この出願のこの実施形態における方法は、ビデオエンコーダ、又は映像符号化機能を持つエレクトロニクス装置によって実行され得る。
前述の方法によれば、BDOF技術が使用されるときに様々なサイズの現在ピクチャブロックの特徴が十分に考慮される。現在ピクチャブロックのサイズが第2のプリセットサイズであるとき、現在ピクチャブロックの予測サンプル値は、BDOF技術以外の技術に従って決定される。これは、コーディングの複雑さを大幅に低減させるとともに、コーディング効率を向上させる。
オプションの一ソリューションにおいて、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で現在ピクチャブロックの予測サンプル値を決定することは、
第1リストに対応する参照サンプル値及び第2リストに対応する参照サンプル値において同じ位置を持つサンプル値に対して重み付け計算を実行して、現在ピクチャブロックの予測サンプル値を取得すること、又は
マージ・ウイズ・動きベクトル差MMVD技術に従って、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づく予測を通じて、現在ピクチャブロックの予測サンプル値を取得すること、又は
結合インター/イントラ予測CIIP技術に従って、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づく予測を通じて、現在ピクチャブロックの予測サンプル値を取得すること、
を含む。
この出願のこの実施形態において、重み付け計算方式、MMVD技術、CIIP技術、又は他の予測技術が具体的に使用されるかは、対応する条件を用いることによって決定されてもよいし、あるいは、対応する指示情報を用いることによって指し示されてもよい。
理解されるべきことには、BDOF技術は、現在ピクチャブロックの予測サンプル値を予測するための従来技術でのパッチ最適化技術と同等である。BDOF技術によれば、多くのシナリオにおいて、現在ピクチャブロックの実際のサンプル値にいっそう近い予測サンプル値を得ることができる。従って、その予測サンプル値に基づいて得られるサンプル残差はより小さいものとなり、それ故に、コーディング効率を向上させることができる。前述の重み付け計算方式は、現在ピクチャブロックの予測サンプル値を得るための従来技術とみなされてもよく、前述のMMVD技術及びCIIP技術は各々、従来技術でのパッチ最適化技術とみなされてもよい。この出願のこの実施形態において、現在ピクチャブロックのサイズが第2のプリセットサイズであるとき、現在ピクチャブロックの予測サンプル値は、BDOF技術ではなく、従来技術(例えば、重み付け計算方式)又は他のパッチ最適化技術(例えば、MMVD又はCIIP)に従って決定される。これは、コーディングの複雑さを大幅に低減させることができるとともに、コーディング効率を向上させることができる。
オプションの一ソリューションにおいて、当該方法は更に、
複数のプリセット条件が満足されるときに、現在ピクチャブロックに対して双方向オプティカルフローBDOF処理を実行して現在ピクチャブロックの予測サンプル値を取得することを含み、上記複数のプリセット条件は少なくとも、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することという条件を含む。
現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、且つ現在ピクチャブロックの幅Wと高さHとの積が64に等しいときに幅Wが高さHに等しくない、ことを含む。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、且つ現在ピクチャブロックの幅Wが8以上である、ことを含む(又は、である)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、現在ピクチャブロックの幅Wが8以上であり、且つ現在ピクチャブロックの幅Wと現在ピクチャブロックの高さHとの積が64よりも大きい、ことを含む(又は、である)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、現在ピクチャブロックの幅Wが8以上であり、且つ現在ピクチャブロックの幅Wと現在ピクチャブロックの高さHとの積が128よりも大きい、ことを含む(又は、である)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8よりも大きい、ことを含む。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8よりも大きく、且つ現在ピクチャブロックの幅Wが8以上である、ことを含む。
当該方法は更に、少なくとも現在ピクチャブロックの予測サンプル値に基づいて、現在ピクチャブロックを再構成することを含む。
具体的には、BDOF技術を有効にする又は使用するための、このソリューションにおける条件は、BDOF技術を有効にする又は使用するための、従来技術における条件とは異なり、特に、現在ピクチャブロックのサイズに関する要件が異なる。第1のプリセットサイズを持つ現在ピクチャブロックに対してBDOF技術を使用することで、元のサンプル値にいっそう近い予測サンプル値を得ることができ、また、コーディングの複雑さを適切に制御することができる。これは、符号化/復号の複雑さと予測精度とをある程度バランスさせ、それによりコーディング効率を向上させる。
なお、BDOF技術に従って、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて現在ピクチャブロックの予測サンプル値を決定する(又は予測を通じて取得する)かが決定される前に、現在ピクチャブロックのサイズに加えて、別の参照条件が存在してもよい。別の参照条件は、ここで限定されるものではない。理解を容易にするために、以下では、説明のための例を用いる。
条件A: 現在映像シーケンスに対してBDOF技術が使用されることが許されることを指し示すハイレベルシンタックス識別子sps_bdof_enabled_flagが存在する。
条件B: 第1リスト(List1)に対応する予測方向指示情報predFlagL0が1に等しく、且つ第2リスト(list0)に対応する予測方向指示情報predFlagL1が1に等しい。
条件C: 第1リスト(list0)に対応する参照フレームのピクチャオーダカウントPOC_L0、第2リスト(list1)に対応する参照フレームのピクチャオーダカウントPOC_L1、及びその中に現在ピクチャブロックが位置するピクチャのピクチャオーダカウントPOC_Curが、(POC_L0-POC_Cur)×(POC_L1-POC_Cur)<0という関係を満足する。換言すれば、現在ピクチャブロックを含むピクチャが、2つの参照ピクチャの間にある。
条件D: MotionModelIdc[xCb][yCb]が0に等しい。MotionModelIdcは、動き補償に関する動きモデルインデックスである。0に等しいMotionModelIdc[xCb][yCb]は、現在ブロックの動き補償のための動きモデルが並進運動(Translational motion)であることを指し示す。
条件E: merge_subblock_flag[x0][y0]が0に等しく、ここで、0に等しいmerge_subblock_flag[x0][y0]は、現在ピクチャブロックに対してサブブロックマージモードが適用されないことを指し示す。
条件F: sym_mvd_flag[x0][y0]が0に等しい。0に等しいsym_mvd_flag[x0][y0]は、現在ブロックに対してmvd_coding(x0,y0,refList,cpIdx)シンタックス構造が存在することを指し示す。
条件G: bcwIdx[xCb][yCb]が0に等しい。bcwIdxは、現在ピクチャブロックに対する双方向予測重みインデックスを示す。
条件H: cIdxが0に等しい。cIdxは、現在ピクチャブロックの色成分インデックスを表す。
条件I: 現在ピクチャブロックのサイズが第1のプリセットサイズである。
条件J: luma_weight_l0_flag[refIdxL0]及びluma_weight_l1_flag[refIdxL1]の両方が0に等しく、ここで、0に等しいluma_weight_l0_flagは、list0予測のルマコンポーネントに対する重み付け係数が存在しないことを指し示し、0に等しいluma_weight_l1_flagは、list1予測のルマコンポーネントに対する重み付け係数が存在しないことを指し示す。
例えば、条件A乃至Jの全てが満足されるとき、現在ピクチャブロックの予測サンプル値を予測するためにBDOF技術が使用され得ることが決定される。例えば、bdofFlagがtrueに設定される。なお、前述の条件は単なる例であり、別の条件が更に追加されたり、あるいは前述の条件のうちの1つ以上が置き換えられたり、あるいは前述の条件のうちの1つ以上が除去されたりしてもよい。
オプションの一ソリューションにおいて、シンタックス要素は、ターゲット候補動き情報のインデックス(例えば、merge_idx[xCb][yCb])を含み、ターゲット候補動き情報は、ターゲット候補動きベクトル、参照フレームインデックス、及び予測方向指示情報(例えば、predFlagL0=1及びpredFlagL1=1)を含み、予測方向指示情報は、双方向予測が適用されることを指し示すために使用され、ターゲット候補動きベクトルは、第1リスト(すなわち、list0)に対応する第1動きベクトル、及び第2リスト(すなわち、list1)に対応する第2動きベクトルを含み、参照フレームインデックスは、第1リストに対応する第1参照フレームのインデックス(例えば、refIdxL0)、及び第2リストに対応する第2参照フレームのインデックス(例えば、refIdxL1)を含む。
この出願のこの実施形態において、参照フレームインデックスは、指定された参照ピクチャリスト(第1リストlist0又は第2リストlist1)内の使用される動きベクトル(例えば、第1動きベクトル又は第2動きベクトル)に対応する参照ピクチャを特定するために使用される。ピクチャはフレームと称されることがあり、参照ピクチャは参照フレームと称されることがある。
映像コーディング分野において、インター予測モードは、前方予測、後方予測、及び双方向予測(前方予測及び後方予測を含む)を含み、エンコーダ側で使用される特定の予測モードは、通常、予測方向指示情報によって指し示される。例えば、予測方向指示情報は、シンタックス要素predFlagL0及びpredFlagL1を含み得る。predFlagL0=1且つpredFlagL1=1であるとき、予測方向指示情報は、双方向予測が適用されることを指し示す。predFlagL0=1且つpredFlagL1=0であるとき、予測方向指示情報は、前方予測が使用されることを指し示す。predFlagL0=0且つpredFlagL1=1であるとき、予測方向指示情報は、後方予測が使用されることを指し示す。理解され得ることには、“前方”及び“後方”は、それぞれ、現在ピクチャの参照ピクチャリスト0(list0、すなわち、前述の第1リスト)及び参照ピクチャリスト1(list1、すなわち、前述の第2リスト)に対応する。
オプションの一ソリューションにおいて、シンタックス要素は、第1インデックス、第2インデックス、予測方向指示情報、及び動きベクトル差MVDを含み、第1インデックス(例えば、mvp_lX_flag[xCb][yCb])は、ターゲット候補動きベクトル予測子を指し示すために使用され、ターゲット候補動きベクトル予測子は、第1リスト(例えば、list0)に対応する第1動きベクトル予測子、及び第2リスト(例えば、list1)に対応する第2動きベクトル予測子を含み、動きベクトル差MVDは、第1リストに対応する第1MVD、及び/又は第2リストに対応する第2MVDを含む(オプションで、MMVD技術が使用されるとき、1つのMVDのみが伝送されてもよく、別方向のものであってデコーダ側によって使用される必要があるMVDは、伝送されたMVDに基づいて導出され得る)。第2インデックス(これらは、参照フレームインデックスとも称される)は、現在ピクチャブロックの参照フレームを指し示すために使用され、参照フレームは、第1リストに対応する第1参照フレーム、及び第2リストに対応する第2参照フレームを含む。例えば、第2インデックスは、refIdxL0及びrefIdxL1であり、refIdxL0は、第1リストに対応する第1参照フレームのインデックスであり、refIdxL1は、第2リストに対応する第2参照フレームのインデックスである。予測方向指示情報(例えば、predFlagL0=1及びpredFlagL1=1)は、双方向予測が適用されることを指し示すために使用される。
第1リストに対応する第1動きベクトル(例えば、Mv0_L0)は、第1リストに対応する第1動きベクトル予測子(例えば、Mvp0_L0)と、第1リストに対応する第1MVD(例えば、MVD0)とに基づいて取得される。例えば、Mv0_L0=Mvp0_L0+MVD0である。
第2リストに対応する第2動きベクトル(例えば、Mv1_L1)は、第2リストに対応する第2動きベクトル予測子(例えば、Mvp1_L1)と、第2リストに対応する第2MVD(例えば、MVD1)とに基づいて取得される。例えば、Mv1_L1=Mvp1_L1+MVD1である。
映像コーディング分野において、インター予測モードは、前方予測、後方予測、及び双方向予測(前方予測及び後方予測を含む)を含み、エンコーダ側で使用される特定の予測モードは、通常、予測方向指示情報によって指し示される。例えば、予測方向指示情報は、シンタックス要素predFlagL0及びpredFlagL1を含み得る。predFlagL0=1且つpredFlagL1=1であるとき、予測方向指示情報は、双方向予測が適用されることを指し示す。predFlagL0=1且つpredFlagL1=0であるとき、予測方向指示情報は、前方予測が使用されることを指し示す。predFlagL0=0且つpredFlagL1=1であるとき、予測方向指示情報は、後方予測が使用されることを指し示す。理解され得ることには、“前方”及び“後方”は、それぞれ、現在ピクチャの参照ピクチャリスト0(list0、すなわち、前述の第1リスト)及び参照ピクチャリスト1(list1、すなわち、前述の第2リスト)に対応する。
オプションの一ソリューションにおいて、当該方法は更に、現在ピクチャブロックのサンプル値と現在ピクチャブロックの予測サンプル値とに基づいて、サンプル残差を決定することを含み、シンタックス要素を送信対象ビットストリームに符号化することは、シンタックス要素及びサンプル残差を送信対象ビットストリームに符号化することを含む。
第3態様によれば、この出願の一実施形態は、映像復号方法を提供し、当該方法は、
ビットストリームを解析してシンタックス要素を取得し、シンタックス要素は少なくとも、双方向予測が適用されることを指し示すために使用され、
複数のプリセット条件が満足されるときに、現在ピクチャブロックに対して双方向オプティカルフローBDOF(Bi-directional optical flow、又は略してBDOF、あるいは、双方向オプティカルフロー(Bi-directional optical flow、BIO)と称される)処理を実行して現在ピクチャブロックの予測サンプル値を取得し、上記複数のプリセット条件は少なくとも、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することという条件を含む、
ことを含む。現在ピクチャブロックのサイズは、通常、幅及び高さ(短くW×Hと記載される)によって表され、幅及び高さは、サンプル(sample又はpixel)によって測定される。例えば、現在ピクチャブロックのサイズが8×8である場合、1つめの8は、現在ピクチャブロックの幅が8サンプルであることを示し、2つめの8は、現在ピクチャブロックの高さが8サンプルであることを示す。他の一例では、現在ピクチャブロックのサイズが8×16である場合、8は、現在ピクチャブロックの幅が8サンプルであることを示し、16は、現在ピクチャブロックの高さが16サンプルであることを示す。
現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、且つ現在ピクチャブロックの幅Wと高さHとの積が64に等しいときに幅Wが高さHに等しくない、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、且つ現在ピクチャブロックの幅Wが8以上である、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、現在ピクチャブロックの幅Wが8以上であり、且つ現在ピクチャブロックの幅Wと現在ピクチャブロックの高さHとの積が64よりも大きい、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、現在ピクチャブロックの幅Wが8以上であり、且つ現在ピクチャブロックの幅Wと現在ピクチャブロックの高さHとの積が128よりも大きい、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8よりも大きい、ことを含む。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8よりも大きく、且つ現在ピクチャブロックの幅Wが8以上である、ことを含む。
当該方法は更に、少なくとも現在ピクチャブロックの予測サンプル値に基づいて、現在ピクチャブロックのサンプル値を決定することを含み、現在ピクチャブロックの予測サンプル値は、1つ以上のサブブロックの予測サンプル値を含む。
なお、BDOF技術に従って、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて現在ピクチャブロックの予測サンプル値を決定する(又は予測を通じて取得する)かが決定される前に、現在ピクチャブロックのサイズに加えて、別の参照条件が存在してもよい。別の参照条件は、ここで限定されるものではない。理解を容易にするために、以下では、説明のための例を用いる。
条件A: 現在映像シーケンスに対してBDOF技術が使用されることが許されることを指し示すハイレベルシンタックス識別子sps_bdof_enabled_flagが存在する。
条件B: 第1リスト(List1)に対応する予測方向指示情報predFlagL0が1に等しく、且つ第2リスト(list0)に対応する予測方向指示情報predFlagL1が1に等しい。
条件C: 第1リスト(list0)に対応する参照フレームのピクチャオーダカウントPOC_L0、第2リスト(list1)に対応する参照フレームのピクチャオーダカウントPOC_L1、及びその中に現在ピクチャブロックが位置するピクチャのピクチャオーダカウントPOC_Curが、(POC_L0-POC_Cur)×(POC_L1-POC_Cur)<0という関係を満足する。換言すれば、現在ピクチャブロックを含むピクチャが、2つの参照ピクチャの間にある。
条件D: MotionModelIdc[xCb][yCb]が0に等しい。MotionModelIdcは、動き補償に関する動きモデルインデックスである。0に等しいMotionModelIdc[xCb][yCb]は、現在ブロックの動き補償のための動きモデルが並進運動(Translational motion)であることを指し示す。
条件E: merge_subblock_flag[x0][y0]が0に等しく、ここで、0に等しいmerge_subblock_flag[x0][y0]は、現在ピクチャブロックに対してサブブロックマージモードが適用されないことを指し示す。
条件F: sym_mvd_flag[x0][y0]が0に等しい。0に等しいsym_mvd_flag[x0][y0]は、現在ブロックに対してmvd_coding(x0,y0,refList,cpIdx)シンタックス構造が存在することを指し示す。
条件G: bcwIdx[xCb][yCb]が0に等しい。bcwIdxは、現在ピクチャブロックに対する双方向予測重みインデックスを示す。
条件H: cIdxが0に等しい。cIdxは、現在ピクチャブロックの色成分インデックスを表す。
条件I: 現在ピクチャブロックのサイズが第1のプリセットサイズである。
条件J: luma_weight_l0_flag[refIdxL0]及びluma_weight_l1_flag[refIdxL1]の両方が0に等しく、ここで、0に等しいluma_weight_l0_flagは、list0予測のルマコンポーネントに対する重み付け係数が存在しないことを指し示し、0に等しいluma_weight_l1_flagは、list1予測のルマコンポーネントに対する重み付け係数が存在しないことを指し示す。
例えば、条件A乃至Jの全てが満足されるとき、現在ピクチャブロックの予測サンプル値を予測するためにBDOF技術が使用され得ることが決定される。例えば、bdofFlagがtrueに設定される。なお、前述の条件は単なる例であり、別の条件が更に追加されたり、あるいは前述の条件のうちの1つ以上が置き換えられたり、あるいは前述の条件のうちの1つ以上が除去されたりしてもよい。
理解されるべきことには、ここでの現在ピクチャブロック(これは、現在ブロックとも称される)は、処理中のピクチャブロックとして理解され得る。例えば、復号プロセスにおいて、現在ピクチャブロックは、復号中のピクチャブロック(decoding block)である。
この出願のこの実施形態において、状態判定動作が更に含められてもよい。例えば、上記複数のプリセット条件が満足されているかが判定される。
理解され得ることには、前述のケースを参考にして、別のケースを更に得ることができ、別のケースもこの出願の保護範囲に入るものである。
理解されるべきことには、この出願のこの実施形態における方法は、ビデオデコーダ、又は映像復号機能を持つエレクトロニクス装置によって実行され得る。
具体的には、BDOF技術を有効にする又は使用するための、このソリューションにおける条件は、BDOF技術を有効にする又は使用するための、従来技術における条件とは異なり、特に、現在ピクチャブロックのサイズに関する要件が異なる。第1のプリセットサイズを持つ現在ピクチャブロックに対してBDOF技術を使用することで、元のサンプル値にいっそう近い予測サンプル値を得ることができ、また、コーディングの複雑さを適切に制御することができる。これは、符号化/復号の複雑さと予測精度とをある程度バランスさせ、それによりコーディング効率を向上させる。
オプションの一ソリューションにおいて、シンタックス要素は、ターゲット候補動き情報のインデックス(例えば、merge_idx[xCb][yCb])を含み、ターゲット候補動き情報は、ターゲット候補動きベクトル、参照フレームインデックス、及び予測方向指示情報(例えば、predFlagL0=1及びpredFlagL1=1)を含み、予測方向指示情報は、双方向予測が適用されることを指し示すために使用され、ターゲット候補動きベクトルは、第1リスト(すなわち、list0)に対応する第1動きベクトル、及び第2リスト(すなわち、list1)に対応する第2動きベクトルを含み、参照フレームインデックスは、第1リストに対応する第1参照フレームのインデックス(例えば、refIdxL0)、及び第2リストに対応する第2参照フレームのインデックス(例えば、refIdxL1)を含む。
この出願のこの実施形態において、参照フレームインデックスは、指定された参照ピクチャリスト(第1リストlist0又は第2リストlist1)内の使用される動きベクトル(例えば、第1動きベクトル又は第2動きベクトル)に対応する参照ピクチャを特定するために使用される。ピクチャはフレームと称されることがあり、参照ピクチャは参照フレームと称されることがある。
映像コーディング分野において、インター予測モードは、前方予測、後方予測、及び双方向予測(前方予測及び後方予測を含む)を含み、エンコーダ側で使用される特定の予測モードは、通常、予測方向指示情報によって指し示される。例えば、予測方向指示情報は、シンタックス要素predFlagL0及びpredFlagL1を含み得る。predFlagL0=1且つpredFlagL1=1であるとき、予測方向指示情報は、双方向予測が適用されることを指し示す。predFlagL0=1且つpredFlagL1=0であるとき、予測方向指示情報は、前方予測が使用されることを指し示す。predFlagL0=0且つpredFlagL1=1であるとき、予測方向指示情報は、後方予測が使用されることを指し示す。理解され得ることには、“前方”及び“後方”は、それぞれ、現在ピクチャの参照ピクチャリスト0(list0、すなわち、前述の第1リスト)及び参照ピクチャリスト1(list1、すなわち、前述の第2リスト)に対応する。
オプションの一ソリューションにおいて、シンタックス要素は、第1インデックス、第2インデックス、予測方向指示情報、及び動きベクトル差MVDを含み、第1インデックス(例えば、mvp_lX_flag[xCb][yCb])は、ターゲット候補動きベクトル予測子を指し示すために使用され、ターゲット候補動きベクトル予測子は、第1リスト(例えば、list0)に対応する第1動きベクトル予測子、及び第2リスト(例えば、list1)に対応する第2動きベクトル予測子を含み、動きベクトル差MVDは、第1リストに対応する第1MVD、及び/又は第2リストに対応する第2MVDを含む(例えば、1つのMVDのみが含まれるとき、伝送されないMVDは、伝送されたMVDに基づいて導出され得る)。第2インデックス(これらは、参照フレームインデックスとも称される)は、現在ピクチャブロックの参照フレームを指し示すために使用され、参照フレームは、第1リストに対応する第1参照フレーム、及び第2リストに対応する第2参照フレームを含む。例えば、第2インデックスは、refIdxL0及びrefIdxL1であり、refIdxL0は、第1リストに対応する第1参照フレームのインデックスであり、refIdxL1は、第2リストに対応する第2参照フレームのインデックスである。予測方向指示情報(例えば、predFlagL0=1及びpredFlagL1=1)は、双方向予測が適用されることを指し示すために使用される。
第1リストに対応する第1動きベクトル(例えば、Mv0_L0)が、第1リストに対応する第1動きベクトル予測子(例えば、Mvp0_L0)と、第1リストに対応する第1MVD(例えば、MVD0)とに基づいて取得される。例えば、Mv0_L0=Mvp0_L0+MVD0である。
第2リストに対応する第2動きベクトル(例えば、Mv1_L1)が、第2リストに対応する第2動きベクトル予測子(例えば、Mvp1_L1)と、第2リストに対応する第2MVD(例えば、MVD1)とに基づいて取得される。例えば、Mv1_L1=Mvp1_L1+MVD1である。
映像コーディング分野において、インター予測モードは、前方予測、後方予測、及び双方向予測(前方予測及び後方予測を含む)を含み、エンコーダ側で使用される特定の予測モードは、通常、予測方向指示情報によって指し示される。例えば、予測方向指示情報は、シンタックス要素predFlagL0及びpredFlagL1を含み得る。predFlagL0=1且つpredFlagL1=1であるとき、予測方向指示情報は、双方向予測が適用されることを指し示す。predFlagL0=1且つpredFlagL1=0であるとき、予測方向指示情報は、前方予測が使用されることを指し示す。predFlagL0=0且つpredFlagL1=1であるとき、予測方向指示情報は、後方予測が使用されることを指し示す。理解され得ることには、“前方”及び“後方”は、それぞれ、現在ピクチャの参照ピクチャリスト0(list0、すなわち、前述の第1リスト)及び参照ピクチャリスト1(list1、すなわち、前述の第2リスト)に対応する。
オプションの一ソリューションにおいて、ビットストリームを解析してシンタックス要素を取得することは、ビットストリームを解析して、サンプル残差とシンタックス要素とを取得することを含み、少なくとも現在ピクチャブロックの予測サンプル値に基づいて、現在ピクチャブロックのサンプル値を決定することは、サンプル残差と現在ピクチャブロックの予測サンプル値に基づいて、現在ピクチャブロックのサンプル値を決定することを含む。
第4態様によれば、この出願の一実施形態は、復号方法を提供し、当該方法は、
ビットストリームを解析してシンタックス要素を取得し、シンタックス要素は少なくとも、双方向予測が適用されることを指し示すために使用され、
現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リスト(すなわち、list0)に対応する参照サンプル値と第2リスト(すなわち、list1)に対応する参照サンプル値とに基づいて、第1の処理方式で現在ピクチャブロックの予測サンプル値(例えば、現在コーディングユニットの予測サンプル)を決定し(又は予測を通じて取得し)、第1の処理方式は、BDOF(あるいは、双方向オプティカルフロー(Bi-directional optical flow、BIO)と称される)ではない、ことを含む。換言すれば、現在ピクチャブロックのサイズが第2のプリセットサイズであるとき、第1リストに対応する参照サンプル値及び第2リストに対応する参照サンプル値に基づいて現在ピクチャブロックの予測サンプル値を決定するためにBDOFを使用することは許されない。現在ピクチャブロックのサイズは、通常、幅及び高さ(短くW×Hと記載される)によって表され、幅及び高さは、サンプル(sample又はpixel)によって測定される。第2のプリセットサイズは、8×8(1つめの8は、現在ピクチャブロックの幅が8サンプルであることを示し、2つめの8は、現在ピクチャブロックの高さが8サンプルであることを示す)、4×N(4は、現在ピクチャブロックの幅が4サンプルであることを示し、Nは、現在ピクチャブロックの高さがNサンプルであることを示し、類推によって他のサイズが推定される)、8×16、又は16×8を含む。Nは2のべき乗であり、且つ8以上である。例えば、Nの値は、16、32、64などとし得る。
この出願のこの実施形態において、第1リストに対応する参照サンプル値、及び第2リストに対応する参照サンプル値は、それぞれ、第1リスト(すなわち、list0)に対応する第1動きベクトル(例えば、Mv0_L0)、及び第2リスト(すなわち、list1)に対応する第2動きベクトル(例えば、Mv1_L1)に基づく予測を通じて取得される。例えば、第1リスト(すなわち、list0)に対応する参照サンプル値は、第1のリスト(すなわち、list0)に対応する第1動きベクトル(例えば、Mv0_L0)に基づいて決定されることができ、第2リスト(すなわち、list1)に対応する参照サンプル値は、第2リスト(すなわち、list1)に対応する第2動きベクトル(例えば、Mv1_L1)に基づいて決定されることができる。
当該方法は更に、少なくとも現在ピクチャブロックの予測サンプル値に基づいて、現在ピクチャブロックのサンプル値を決定することを含む。
理解されるべきことには、ここでの現在ピクチャブロック(これは、現在ブロックとも称される)は、処理中のピクチャブロックとして理解され得る。例えば、復号プロセスにおいて、現在ピクチャブロックは、復号中のピクチャブロック(decoding block)である。
また、第2のプリセットサイズが8×8、4×N、8×16、又は16×8を含む前述のケースは、第2のプリセットサイズが8×8、4×N、8×16、又は16×8であることに限られることもできる。換言すれば、BDOFは、上に列挙された8×8、4×N、8×16、及び16×8なるサイズのうちの1つに対して使用されることが禁止され、あるいは、これらのうちの複数のサイズに対して使用されることが禁止されてもよい。以下では、説明のための例を用いる。
例1: 第2のプリセットサイズは8×8を含む(又は、である)。換言すれば、この出願のこの実施形態において、BDOFは、サイズ8×8に対して使用されることが禁止される。この場合、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下として表現され得る:現在ピクチャブロックのサイズが8×8であるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得する。
例2:第2のプリセットサイズは4×Nを含む(又は、である)。換言すれば、この出願のこの実施形態において、BDOFは、サイズ4×Nに対して使用されることが禁止される。この場合、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下として表現され得る:Nは8以上であるとして、現在ピクチャブロックのサイズが4×Nであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得する。
例3: 第2のプリセットサイズは8×8又は4×Nを含む(又は、である)。換言すれば、この出願のこの実施形態において、BDOFは、サイズ8×8及び4×Nに対して使用されることが禁止される。この場合、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下として表現され得る:Nは8以上であるとして、現在ピクチャブロックのサイズが8×8及び4×Nのいずれかであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得する。
例4: 第2のプリセットサイズは8×8、4×N、8×16、又は16×8を含み(又は、であり)、ここで、Nは8以上である。換言すれば、この出願のこの実施形態において、BDOFは、サイズ8×8、4×N、8×16、及び16×8に対して使用されることが禁止される。この場合、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下として表現され得る:Nは8以上であるとして、現在ピクチャブロックのサイズが8×8、4×N、8×16、及び16×8のうちのいずれか1つであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得する。
例5: 第2のプリセットサイズはN×8を含み(又は、であり)、ここで、Nは4以上である。換言すれば、この出願のこの実施形態において、BDOFは、サイズN×8に対して使用されることが禁止される。この場合、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下として表現され得る:現在ピクチャブロックのサイズがN×8であるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得する。
例6: 第2のプリセットサイズはN×8又は4×Nを含み(又は、であり)、ここで、Nは4以上である。換言すれば、この出願のこの実施形態において、BDOFは、サイズN×8又は4×Nに対して使用されることが禁止される。この場合、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下として表現され得る:現在ピクチャブロックのサイズがN×8又は4×Nであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得する。
さらに、一部のシナリオでは、サイズM×4に対してもBDOFが使用されることが禁止されるので、この出願において、第2のプリセットサイズに対してBDOFが使用されることが禁止されるとき、BDOFは更に、Mは4以上の整数であるとして、サイズM×4に対して使用されることが禁止され得る。
理解され得ることには、前述のケースを参考にして、別のケースを更に得ることができ、別のケースもこの出願の保護範囲に入るものである。
理解されるべきことには、この出願のこの実施形態における方法は、ビデオデコーダ、又は映像復号機能を持つエレクトロニクス装置によって実行され得る。
前述の方法によれば、BDOF技術が使用されるときに様々なサイズの現在ピクチャブロックの特徴が十分に考慮される。現在ピクチャブロックのサイズが第2のプリセットサイズであるとき、現在ピクチャブロックの予測サンプル値は、BDOF技術以外の技術に従って決定される。これは、コーディングの複雑さを大幅に低減させるとともに、コーディング効率を向上させる。
オプションの一ソリューションにおいて、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、
第1リストに対応する参照サンプル値及び第2リストに対応する参照サンプル値において同じ位置を持つサンプル値に対して重み付け計算を実行して、現在ピクチャブロックの予測サンプル値を取得すること、又は
マージ・ウイズ・動きベクトル差MMVD技術に従って、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づく予測を通じて、現在ピクチャブロックの予測サンプル値を取得すること、又は
結合インター/イントラ予測CIIP技術に従って、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づく予測を通じて、現在ピクチャブロックの予測サンプル値を取得すること、又は
デコーダ側動きベクトル精緻化DMVR技術に従って、第1リストに対応する参照サンプルと第2リストに対応する参照サンプルとに基づく予測を通じて、現在ピクチャブロックの予測サンプル値を取得すること、
を含む。
この出願のこの実施形態において、重み付け計算方式、MMVD技術、又はCIIP技術が具体的に使用されるかは、対応する条件を用いることによって決定されてもよいし、あるいは、対応する指示情報を用いることによって指し示されてもよい。
理解されるべきことには、BDOF技術は、現在ピクチャブロックの予測サンプル値を予測するための従来技術でのパッチ最適化技術と同等である。BDOF技術によれば、多くのシナリオにおいて、現在ピクチャブロックの実際のサンプル値にいっそう近い予測サンプル値を得ることができる。従って、その予測サンプル値に基づいて得られるサンプル残差はより小さいものとなり、それ故に、コーディング効率を向上させることができる。従って、BDOF技術は、通常、エンコーダ側で使用される。より正確に予測サンプル値を復元するために、BDOF技術は対応してデコーダ側でも使用される。前述の重み付け計算方式は、現在ピクチャブロックの予測サンプル値を得るための従来技術とみなされてもよく、前述のMMVD技術、CIIP技術、及びDMVR技術は各々、従来技術でのパッチ最適化技術とみなされてもよい。この出願のこの実施形態において、現在ピクチャブロックのサイズが第2のプリセットサイズであるとき、現在ピクチャブロックの予測サンプル値は、BDOF技術ではなく、従来技術(例えば、重み付け計算方式)又は他のパッチ最適化技術(例えば、MMVD、CIIP、又はDMVR)に従って決定される。これは、復号の複雑さを大幅に低減させることができるとともに、復号効率を向上させることができる。
オプションの一ソリューションにおいて、当該方法は更に、
複数のプリセット条件が満足されるときに、現在ピクチャブロックに対して双方向オプティカルフローBDOF処理を実行して現在ピクチャブロックの予測サンプル値を取得することを含み、上記複数のプリセット条件は少なくとも、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することという条件を含む。
現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、且つ現在ピクチャブロックの幅Wと高さHとの積が64に等しいときに幅Wが高さHに等しくない、ことを含む(又は、である)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、且つ現在ピクチャブロックの幅Wが8以上である、ことを含む(又は、である)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、現在ピクチャブロックの幅Wが8以上であり、且つ現在ピクチャブロックの幅Wと現在ピクチャブロックの高さHとの積が64よりも大きい、ことを含む(又は、である)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、現在ピクチャブロックの幅Wが8以上であり、且つ現在ピクチャブロックの幅Wと現在ピクチャブロックの高さHとの積が128よりも大きい、ことを含む(又は、である)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8よりも大きい、ことを含む。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8よりも大きく、且つ現在ピクチャブロックの幅Wが8以上である、ことを含む。
当該方法は更に、少なくとも現在ピクチャブロックの予測サンプル値に基づいて、現在ピクチャブロックを再構成することを含む。
具体的には、BDOF技術を有効にする又は使用するための、このソリューションにおける条件は、BDOF技術を有効にする又は使用するための、従来技術における条件とは異なり、特に、現在ピクチャブロックのサイズに関する要件が異なる。第1のプリセットサイズを持つ現在ピクチャブロックに対してBDOF技術を使用することで、元のサンプル値にいっそう近い予測サンプル値を得ることができ、また、コーディングの複雑さを適切に制御することができる。これは、符号化/復号の複雑さと予測精度とをある程度バランスさせ、それによりコーディング効率を向上させる。
なお、BDOF技術に従って、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて現在ピクチャブロックの予測サンプル値を決定する(又は予測を通じて取得する)かが決定される前に、現在ピクチャブロックのサイズに加えて、別の参照条件が存在してもよい。別の参照条件は、ここで限定されるものではない。理解を容易にするために、以下では、説明のための例を用いる。
条件A: 現在映像シーケンスに対してBDOF技術が使用されることが許されることを指し示すハイレベルシンタックス識別子sps_bdof_enabled_flagが存在する。
条件B: 第1リスト(List1)に対応する予測方向指示情報predFlagL0が1に等しく、且つ第2リスト(list0)に対応する予測方向指示情報predFlagL1が1に等しい。
条件C: 第1リスト(list0)に対応する参照フレームのピクチャオーダカウントPOC_L0、第2リスト(list1)に対応する参照フレームのピクチャオーダカウントPOC_L1、及びその中に現在ピクチャブロックが位置するピクチャのピクチャオーダカウントPOC_Curが、(POC_L0-POC_Cur)×(POC_L1-POC_Cur)<0という関係を満足する。換言すれば、現在ピクチャブロックを含むピクチャが、2つの参照ピクチャの間にある。
条件D: MotionModelIdc[xCb][yCb]が0に等しい。MotionModelIdcは、動き補償に関する動きモデルインデックスである。0に等しいMotionModelIdc[xCb][yCb]は、現在ブロックの動き補償のための動きモデルが並進運動(Translational motion)であることを指し示す。
条件E: merge_subblock_flag[x0][y0]が0に等しく、ここで、0に等しいmerge_subblock_flag[x0][y0]は、現在ピクチャブロックに対してサブブロックマージモードが適用されないことを指し示す。
条件F: sym_mvd_flag[x0][y0]が0に等しい。0に等しいsym_mvd_flag[x0][y0]は、現在ブロックに対してmvd_coding(x0,y0,refList,cpIdx)シンタックス構造が存在することを指し示す。
条件G: bcwIdx[xCb][yCb]が0に等しい。bcwIdxは、現在ピクチャブロックに対する双方向予測重みインデックスを示す。
条件H: cIdxが0に等しい。cIdxは、現在ピクチャブロックの色成分インデックスを表す。
条件I: 現在ピクチャブロックのサイズが第1のプリセットサイズである。
条件J: luma_weight_l0_flag[refIdxL0]及びluma_weight_l1_flag[refIdxL1]の両方が0に等しく、ここで、0に等しいluma_weight_l0_flagは、list0予測のルマコンポーネントに対する重み付け係数が存在しないことを指し示し、0に等しいluma_weight_l1_flagは、list1予測のルマコンポーネントに対する重み付け係数が存在しないことを指し示す。
例えば、条件A乃至Jの全てが満足されるとき、現在ピクチャブロックの予測サンプル値を予測するためにBDOF技術が使用され得ることが決定される。例えば、bdofFlagがtrueに設定される。なお、前述の条件は単なる例であり、別の条件が更に追加されたり、あるいは前述の条件のうちの1つ以上が置き換えられたり、あるいは前述の条件のうちの1つ以上が除去されたりしてもよい。
オプションの一ソリューションにおいて、シンタックス要素は、ターゲット候補動き情報のインデックス(例えば、merge_idx[xCb][yCb])を含み、ターゲット候補動き情報は、ターゲット候補動きベクトル、参照フレームインデックス、及び予測方向指示情報(例えば、predFlagL0=1及びpredFlagL1=1)を含み、予測方向指示情報は、双方向予測が適用されることを指し示すために使用され、ターゲット候補動きベクトルは、第1リスト(すなわち、list0)に対応する第1動きベクトル、及び第2リスト(すなわち、list1)に対応する第2動きベクトルを含み、参照フレームインデックスは、第1リストに対応する第1参照フレームのインデックス(例えば、refIdxL0)、及び第2リストに対応する第2参照フレームのインデックス(例えば、refIdxL1)を含む。
この出願のこの実施形態において、参照フレームインデックスは、指定された参照ピクチャリスト(第1リストlist0又は第2リストlist1)内の使用される動きベクトル(例えば、第1動きベクトル又は第2動きベクトル)に対応する参照ピクチャを特定するために使用される。ピクチャはフレームと称されることがあり、参照ピクチャは参照フレームと称されることがある。
映像コーディング分野において、インター予測モードは、前方予測、後方予測、及び双方向予測(前方予測及び後方予測を含む)を含み、エンコーダ側で使用される特定の予測モードは、通常、予測方向指示情報によって指し示される。例えば、予測方向指示情報は、シンタックス要素predFlagL0及びpredFlagL1を含み得る。predFlagL0=1且つpredFlagL1=1であるとき、予測方向指示情報は、双方向予測が適用されることを指し示す。predFlagL0=1且つpredFlagL1=0であるとき、予測方向指示情報は、前方予測が使用されることを指し示す。predFlagL0=0且つpredFlagL1=1であるとき、予測方向指示情報は、後方予測が使用されることを指し示す。理解され得ることには、“前方”及び“後方”は、それぞれ、現在ピクチャの参照ピクチャリスト0(list0、すなわち、前述の第1リスト)及び参照ピクチャリスト1(list1、すなわち、前述の第2リスト)に対応する。
オプションの一ソリューションにおいて、シンタックス要素は、第1インデックス、第2インデックス、予測方向指示情報、及び動きベクトル差MVDを含み、第1インデックス(例えば、mvp_lX_flag[xCb][yCb])は、ターゲット候補動きベクトル予測子を指し示すために使用され、ターゲット候補動きベクトル予測子は、第1リスト(例えば、list0)に対応する第1動きベクトル予測子、及び第2リスト(例えば、list1)に対応する第2動きベクトル予測子を含み、動きベクトル差MVDは、第1リストに対応する第1MVD、及び/又は第2リストに対応する第2MVDを含む(オプションで、MMVD技術が使用されるとき、1つのMVDのみが伝送されてもよく、別方向のものであってデコーダ側によって使用される必要があるMVDは、伝送されたMVDに基づいて導出され得る)。第2インデックス(これらは、参照フレームインデックスとも称される)は、現在ピクチャブロックの参照フレームを指し示すために使用され、参照フレームは、第1リストに対応する第1参照フレーム、及び第2リストに対応する第2参照フレームを含む。例えば、第2インデックスは、refIdxL0及びrefIdxL1であり、refIdxL0は、第1リストに対応する第1参照フレームのインデックスであり、refIdxL1は、第2リストに対応する第2参照フレームのインデックスである。予測方向指示情報(例えば、predFlagL0=1及びpredFlagL1=1)は、双方向予測が適用されることを指し示すために使用される。
第1リストに対応する第1動きベクトル(例えば、Mv0_L0)は、第1リストに対応する第1動きベクトル予測子(例えば、Mvp0_L0)と、第1リストに対応する第1MVD(例えば、MVD0)とに基づいて取得される。例えば、Mv0_L0=Mvp0_L0+MVD0である。
第2リストに対応する第2動きベクトル(例えば、Mv1_L1)は、第2リストに対応する第2動きベクトル予測子(例えば、Mvp1_L1)と、第2リストに対応する第2MVD(例えば、MVD1)とに基づいて取得される。例えば、Mv1_L1=Mvp1_L1+MVD1である。
映像コーディング分野において、インター予測モードは、前方予測、後方予測、及び双方向予測(前方予測及び後方予測を含む)を含み、エンコーダ側で使用される特定の予測モードは、通常、予測方向指示情報によって指し示される。例えば、予測方向指示情報は、シンタックス要素predFlagL0及びpredFlagL1を含み得る。predFlagL0=1且つpredFlagL1=1であるとき、予測方向指示情報は、双方向予測が適用されることを指し示す。predFlagL0=1且つpredFlagL1=0であるとき、予測方向指示情報は、前方予測が使用されることを指し示す。predFlagL0=0且つpredFlagL1=1であるとき、予測方向指示情報は、後方予測が使用されることを指し示す。理解され得ることには、“前方”及び“後方”は、それぞれ、現在ピクチャの参照ピクチャリスト0(list0、すなわち、前述の第1リスト)及び参照ピクチャリスト1(list1、すなわち、前述の第2リスト)に対応する。
オプションの一ソリューションにおいて、ビットストリームを解析してシンタックス要素を取得することは、ビットストリームを解析して、サンプル残差とシンタックス要素とを取得することを含み、少なくとも現在ピクチャブロックの予測サンプル値に基づいて、現在ピクチャブロックのサンプル値を決定することは、サンプル残差と現在ピクチャブロックの予測サンプル値に基づいて、現在ピクチャブロックのサンプル値を決定することを含む。
第5態様によれば、この出願の一実施形態は、インター予測方法を提供し、当該方法は、
現在ピクチャブロックが複数のプリセット条件を満足するかを判定し、
上記複数のプリセット条件が満足されるときに、現在ピクチャブロックに対して双方向オプティカルフローBDOF(Bi-directional optical flow、略してBIO又はBDOF)処理を実行して現在ピクチャブロックの予測サンプル値を取得し、上記複数のプリセット条件は少なくとも、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することという条件を含む、ことを含む。現在ピクチャブロックのサイズは、通常、幅及び高さ(短くW×Hと記載される)によって表され、幅及び高さは、サンプル(sample又はpixel)によって測定される。例えば、現在ピクチャブロックのサイズが8×8である場合、1つめの8は、現在ピクチャブロックの幅が8サンプルであることを示し、2つめの8は、現在ピクチャブロックの高さが8サンプルであることを示す。他の一例では、現在ピクチャブロックのサイズが8×16である場合、8は、現在ピクチャブロックの幅が8サンプルであることを示し、16は、現在ピクチャブロックの高さが16サンプルであることを示す。
現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、且つ現在ピクチャブロックの幅Wと高さHとの積が64に等しいときに幅Wが高さHに等しくない、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、且つ現在ピクチャブロックの幅Wが8以上である、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、現在ピクチャブロックの幅Wが8以上であり、且つ現在ピクチャブロックの幅Wと現在ピクチャブロックの高さHとの積が64よりも大きい、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、現在ピクチャブロックの幅Wが8以上であり、且つ現在ピクチャブロックの幅Wと現在ピクチャブロックの高さHとの積が128よりも大きい、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8よりも大きい、ことを含む。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8よりも大きく、且つ現在ピクチャブロックの幅Wが8以上である、ことを含む。
なお、BDOF技術に従って、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて現在ピクチャブロックの予測サンプル値を決定する(又は予測を通じて取得する)かが決定される前に、現在ピクチャブロックのサイズに加えて、別の参照条件が存在してもよい。別の参照条件は、ここで限定されるものではない。理解を容易にするために、以下では、説明のための例を用いる。
条件A: 現在映像シーケンスに対してBDOF技術が使用されることが許されることを指し示すハイレベルシンタックス識別子sps_bdof_enabled_flagが存在する。
条件B: 第1リスト(List1)に対応する予測方向指示情報predFlagL0が1に等しく、且つ第2リスト(list0)に対応する予測方向指示情報predFlagL1が1に等しい。
条件C: 第1リスト(list0)に対応する参照フレームのピクチャオーダカウントPOC_L0、第2リスト(list1)に対応する参照フレームのピクチャオーダカウントPOC_L1、及びその中に現在ピクチャブロックが位置するピクチャのピクチャオーダカウントPOC_Curが、(POC_L0-POC_Cur)×(POC_L1-POC_Cur)<0という関係を満足する。換言すれば、現在ピクチャブロックを含むピクチャが、2つの参照ピクチャの間にある。
条件D: MotionModelIdc[xCb][yCb]が0に等しい。MotionModelIdcは、動き補償に関する動きモデルインデックスである。0に等しいMotionModelIdc[xCb][yCb]は、現在ブロックの動き補償のための動きモデルが並進運動(Translational motion)であることを指し示す。
条件E: merge_subblock_flag[x0][y0]が0に等しく、ここで、0に等しいmerge_subblock_flag[x0][y0]は、現在ピクチャブロックに対してサブブロックマージモードが適用されないことを指し示す。
条件F: sym_mvd_flag[x0][y0]が0に等しい。0に等しいsym_mvd_flag[x0][y0]は、現在ブロックに対してmvd_coding(x0,y0,refList,cpIdx)シンタックス構造が存在することを指し示す。
条件G: bcwIdx[xCb][yCb]が0に等しい。bcwIdxは、現在ピクチャブロックに対する双方向予測重みインデックスを示す。
条件H: cIdxが0に等しい。cIdxは、現在ピクチャブロックの色成分インデックスを表す。
条件I: 現在ピクチャブロックのサイズが第1のプリセットサイズである。
条件J: luma_weight_l0_flag[refIdxL0]及びluma_weight_l1_flag[refIdxL1]の両方が0に等しく、ここで、0に等しいluma_weight_l0_flagは、list0予測のルマコンポーネントに対する重み付け係数が存在しないことを指し示し、0に等しいluma_weight_l1_flagは、list1予測のルマコンポーネントに対する重み付け係数が存在しないことを指し示す。
例えば、条件A乃至Jの全てが満足されるとき、現在ピクチャブロックの予測サンプル値を予測するためにBDOF技術が使用され得ることが決定される。例えば、bdofFlagがtrueに設定される。なお、前述の条件は単なる例であり、別の条件が更に追加されたり、あるいは前述の条件のうちの1つ以上が置き換えられたり、あるいは前述の条件のうちの1つ以上が除去されたりしてもよい。
理解されるべきことには、ここでの現在ピクチャブロック(これは、現在ブロックとも称される)は、処理中のピクチャブロックとして理解され得る。例えば、符号化プロセスにおいて、現在ピクチャブロックは、符号化中のピクチャブロック(encoding block)である。確かなことには、ここでの現在ピクチャブロックは代わりに、処理中のピクチャブロックとして理解されてもよい。例えば、復号プロセスにおいて、現在ピクチャブロックは、復号中のピクチャブロック(decoding block)である。
オプションの一ソリューションにおいて、当該方法は更に、上記複数のプリセット条件のうちの少なくとも1つが満足されないときに、現在ピクチャブロックに対して双方向オプティカルフローBDOF(Bi-directional optical flow、略してBIO又はBDOF)処理を実行することをスキップすることを含む。具体的には、現在ピクチャブロックの予測サンプル値は、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて第1の処理方式で予測を通じて取得され得る。第1の処理方式はBDOFではない。詳細については、この明細書中の関連部分を参照されたい。詳細をここで再び説明することはしない。
理解され得ることには、前述のケースを参考にして、別のケースを更に得ることができ、別のケースもこの出願の保護範囲に入るものである。
理解されるべきことには、この出願のこの実施形態における方法は、ビデオエンコーダ、又は映像符号化機能を持つエレクトロニクス装置によって実行されることができ、あるいは、ビデオデコーダ、又は映像復号機能を持つエレクトロニクス装置によって実行されることができる。例えば、当該方法は具体的に、これらの装置内のインター予測ユニットによって実行され得る。
具体的には、BDOF技術を有効にする又は使用するための、このソリューションにおける条件は、BDOF技術を有効にする又は使用するための、従来技術における条件とは異なり、特に、現在ピクチャブロックのサイズに関する要件が異なる。第1のプリセットサイズを持つ現在ピクチャブロックに対してBDOF技術を使用することで、元のサンプル値にいっそう近い予測サンプル値を得ることができ、また、コーディングの複雑さを適切に制御することができる。これは、符号化/復号の複雑さと予測精度とをある程度バランスさせ、それによりコーディング効率を向上させる。
第6態様によれば、この出願の一実施形態は、映像符号化装置を提供し、当該符号化装置は、インター予測ユニット、再構成ユニット、及びエントロピー符号化ユニットを含む。
インター予測ユニットは、複数のプリセット条件が満足されるときに、現在ピクチャブロックに対して双方向オプティカルフローBDOF(Bi-directional optical flow、略してBIO又はBDOF)処理を実行して現在ピクチャブロックの予測サンプル値を取得するように構成され、上記複数のプリセット条件は少なくとも、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することという条件を含む。現在ピクチャブロックのサイズは、通常、幅及び高さ(短くW×Hと記載される)によって表され、幅及び高さは、サンプル(sample又はpixel)によって測定される。例えば、現在ピクチャブロックのサイズが8×8である場合、1つめの8は、現在ピクチャブロックの幅が8サンプルであることを示し、2つめの8は、現在ピクチャブロックの高さが8サンプルであることを示す。他の一例では、現在ピクチャブロックのサイズが8×16である場合、8は、現在ピクチャブロックの幅が8サンプルであることを示し、16は、現在ピクチャブロックの高さが16サンプルであることを示す。
現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、且つ現在ピクチャブロックの幅Wと高さHとの積が64に等しいときに幅Wが高さHに等しくない、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、且つ現在ピクチャブロックの幅Wが8以上である、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、現在ピクチャブロックの幅Wが8以上であり、且つ現在ピクチャブロックの幅Wと現在ピクチャブロックの高さHとの積が64よりも大きい、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、現在ピクチャブロックの幅Wが8以上であり、且つ現在ピクチャブロックの幅Wと現在ピクチャブロックの高さHとの積が128よりも大きい、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8よりも大きい、ことを含む。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8よりも大きく、且つ現在ピクチャブロックの幅Wが8以上である、ことを含む。
再構成ユニットは、少なくとも現在ピクチャブロックの予測サンプル値に基づいて、現在ピクチャブロックを再構成するように構成される。
エントロピー符号化ユニットは、シンタックス要素を送信対象ビットストリームに符号化するように構成され、シンタックス要素は少なくとも、双方向予測が適用されることを指し示すために使用される。
なお、BDOF技術に従って、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて現在ピクチャブロックの予測サンプル値を決定する(又は予測を通じて取得する)かが決定される前に、現在ピクチャブロックのサイズに加えて、別の参照条件が存在してもよい。別の参照条件は、ここで限定されるものではない。理解を容易にするために、以下では、説明のための例を用いる。
条件A: 現在映像シーケンスに対してBDOF技術が使用されることが許されることを指し示すハイレベルシンタックス識別子sps_bdof_enabled_flagが存在する。
条件B: 第1リスト(List1)に対応する予測方向指示情報predFlagL0が1に等しく、且つ第2リスト(list0)に対応する予測方向指示情報predFlagL1が1に等しい。
条件C: 第1リスト(list0)に対応する参照フレームのピクチャオーダカウントPOC_L0、第2リスト(list1)に対応する参照フレームのピクチャオーダカウントPOC_L1、及びその中に現在ピクチャブロックが位置するピクチャのピクチャオーダカウントPOC_Curが、(POC_L0-POC_Cur)×(POC_L1-POC_Cur)<0という関係を満足する。換言すれば、現在ピクチャブロックを含むピクチャが、2つの参照ピクチャの間にある。
条件D: MotionModelIdc[xCb][yCb]が0に等しい。MotionModelIdcは、動き補償に関する動きモデルインデックスである。0に等しいMotionModelIdc[xCb][yCb]は、現在ブロックの動き補償のための動きモデルが並進運動(Translational motion)であることを指し示す。
条件E: merge_subblock_flag[x0][y0]が0に等しく、ここで、0に等しいmerge_subblock_flag[x0][y0]は、現在ピクチャブロックに対してサブブロックマージモードが適用されないことを指し示す。
条件F: sym_mvd_flag[x0][y0]が0に等しい。0に等しいsym_mvd_flag[x0][y0]は、現在ブロックに対してmvd_coding(x0,y0,refList,cpIdx)シンタックス構造が存在することを指し示す。
条件G: bcwIdx[xCb][yCb]が0に等しい。bcwIdxは、現在ピクチャブロックに対する双方向予測重みインデックスを示す。
条件H: cIdxが0に等しい。cIdxは、現在ピクチャブロックの色成分インデックスを表す。
条件I: 現在ピクチャブロックのサイズが第1のプリセットサイズである。
条件J: luma_weight_l0_flag[refIdxL0]及びluma_weight_l1_flag[refIdxL1]の両方が0に等しく、ここで、0に等しいluma_weight_l0_flagは、list0予測のルマコンポーネントに対する重み付け係数が存在しないことを指し示し、0に等しいluma_weight_l1_flagは、list1予測のルマコンポーネントに対する重み付け係数が存在しないことを指し示す。
例えば、条件A乃至Jの全てが満足されるとき、現在ピクチャブロックの予測サンプル値を予測するためにBDOF技術が使用され得ることが決定される。例えば、bdofFlagがtrueに設定される。なお、前述の条件は単なる例であり、別の条件が更に追加されたり、あるいは前述の条件のうちの1つ以上が置き換えられたり、あるいは前述の条件のうちの1つ以上が除去されたりしてもよい。
理解されるべきことには、ここでの現在ピクチャブロック(これは、現在ブロックとも称される)は、処理中のピクチャブロックとして理解され得る。例えば、符号化プロセスにおいて、現在ピクチャブロックは、符号化中のピクチャブロック(encoding block)である。
この出願のこの実施形態において、状態判定動作が更に含められてもよい。例えば、インター予測ユニットは更に、上記複数のプリセット条件が満足されているかを判定するように構成される。
理解され得ることには、前述のケースを参考にして、別のケースを更に得ることができ、別のケースもこの出願の保護範囲に入るものである。
具体的には、BDOF技術を有効にする又は使用するための、このソリューションにおける条件は、BDOF技術を有効にする又は使用するための、従来技術における条件とは異なり、特に、現在ピクチャブロックのサイズに関する要件が異なる。第1のプリセットサイズを持つ現在ピクチャブロックに対してBDOF技術を使用することで、元のサンプル値にいっそう近い予測サンプル値を得ることができ、また、コーディングの複雑さを適切に制御することができる。これは、符号化/復号の複雑さと予測精度とをある程度バランスさせ、それによりコーディング効率を向上させる。
オプションの一ソリューションにおいて、シンタックス要素は、ターゲット候補動き情報のインデックス(例えば、merge_idx[xCb][yCb])を含み、ターゲット候補動き情報は、ターゲット候補動きベクトル、参照フレームインデックス、及び予測方向指示情報(例えば、predFlagL0=1及びpredFlagL1=1)を含み、予測方向指示情報は、双方向予測が適用されることを指し示すために使用され、ターゲット候補動きベクトルは、第1リスト(すなわち、list0)に対応する第1動きベクトル、及び第2リスト(すなわち、list1)に対応する第2動きベクトルを含み、参照フレームインデックスは、第1リストに対応する第1参照フレームのインデックス(例えば、refIdxL0)、及び第2リストに対応する第2参照フレームのインデックス(例えば、refIdxL1)を含む。
この出願のこの実施形態において、参照フレームインデックスは、指定された参照ピクチャリスト(第1リストlist0又は第2リストlist1)内の使用される動きベクトル(例えば、第1動きベクトル又は第2動きベクトル)に対応する参照ピクチャを特定するために使用される。ピクチャはフレームと称されることがあり、参照ピクチャは参照フレームと称されることがある。
映像コーディング分野において、インター予測モードは、前方予測、後方予測、及び双方向予測(前方予測及び後方予測を含む)を含み、エンコーダ側で使用される特定の予測モードは、通常、予測方向指示情報によって指し示される。例えば、予測方向指示情報は、シンタックス要素predFlagL0及びpredFlagL1を含み得る。predFlagL0=1且つpredFlagL1=1であるとき、予測方向指示情報は、双方向予測が適用されることを指し示す。predFlagL0=1且つpredFlagL1=0であるとき、予測方向指示情報は、前方予測が使用されることを指し示す。predFlagL0=0且つpredFlagL1=1であるとき、予測方向指示情報は、後方予測が使用されることを指し示す。理解され得ることには、“前方”及び“後方”は、それぞれ、現在ピクチャの参照ピクチャリスト0(list0、すなわち、前述の第1リスト)及び参照ピクチャリスト1(list1、すなわち、前述の第2リスト)に対応する。
オプションの一ソリューションにおいて、シンタックス要素は、第1インデックス、第2インデックス、予測方向指示情報、及び動きベクトル差MVDを含み、第1インデックス(例えば、mvp_lX_flag[xCb][yCb])は、ターゲット候補動きベクトル予測子を指し示すために使用され、ターゲット候補動きベクトル予測子は、第1リスト(例えば、list0)に対応する第1動きベクトル予測子、及び第2リスト(例えば、list1)に対応する第2動きベクトル予測子を含み、動きベクトル差MVDは、第1リストに対応する第1MVD、及び/又は第2リストに対応する第2MVDを含む(オプションで、MMVD技術が使用されるとき、1つのMVDのみが伝送されてもよく、別方向のものであってデコーダ側によって使用される必要があるMVDは、伝送されたMVDに基づいて導出され得る)。第2インデックス(これらは、参照フレームインデックスとも称される)は、現在ピクチャブロックの参照フレームを指し示すために使用され、参照フレームは、第1リストに対応する第1参照フレーム、及び第2リストに対応する第2参照フレームを含む。例えば、第2インデックスは、refIdxL0及びrefIdxL1であり、refIdxL0は、第1リストに対応する第1参照フレームのインデックスであり、refIdxL1は、第2リストに対応する第2参照フレームのインデックスである。予測方向指示情報(例えば、predFlagL0=1及びpredFlagL1=1)は、双方向予測が適用されることを指し示すために使用される。
第1リストに対応する第1動きベクトル(例えば、Mv0_L0)が、第1リストに対応する第1動きベクトル予測子(例えば、Mvp0_L0)と、第1リストに対応する第1MVD(例えば、MVD0)とに基づいて取得される。例えば、Mv0_L0=Mvp0_L0+MVD0である。
第2リストに対応する第2動きベクトル(例えば、Mv1_L1)が、第2リストに対応する第2動きベクトル予測子(例えば、Mvp1_L1)と、第2リストに対応する第2MVD(例えば、MVD1)とに基づいて取得される。例えば、Mv1_L1=Mvp1_L1+MVD1である。
映像コーディング分野において、インター予測モードは、前方予測、後方予測、及び双方向予測(前方予測及び後方予測を含む)を含み、エンコーダ側で使用される特定の予測モードは、通常、予測方向指示情報によって指し示される。例えば、予測方向指示情報は、シンタックス要素predFlagL0及びpredFlagL1を含み得る。predFlagL0=1且つpredFlagL1=1であるとき、予測方向指示情報は、双方向予測が適用されることを指し示す。predFlagL0=1且つpredFlagL1=0であるとき、予測方向指示情報は、前方予測が使用されることを指し示す。predFlagL0=0且つpredFlagL1=1であるとき、予測方向指示情報は、後方予測が使用されることを指し示す。理解され得ることには、“前方”及び“後方”は、それぞれ、現在ピクチャの参照ピクチャリスト0(list0、すなわち、前述の第1リスト)及び参照ピクチャリスト1(list1、すなわち、前述の第2リスト)に対応する。
オプションの一ソリューションにおいて、当該映像符号化装置は更に、現在ピクチャブロックのサンプル値と現在ピクチャブロックの予測サンプル値とに基づいて、サンプル残差を決定するように構成された残差計算ユニットを含み、エントロピー符号化ユニットは具体的に、シンタックス要素及びサンプル残差を送信対象ビットストリームに符号化するように構成される。換言すれば、シンタックス要素に加えて、更にサンプル残差が、送信対象ビットストリームに符号化され得る(サンプル残差は、残差計算ユニットを用いることによって計算を通じて取得され得る)。このソリューションは、AMVPモード及びマージモードに適用され得る。また、サンプル残差を送信対象ビットストリームに符号化する必要がない場合も存在する。例えば、スキップモードでは、サンプル残差を送信対象ビットストリームに符号化する必要はない。
第7態様によれば、この出願の一実施形態は、映像符号化装置を提供し、当該映像符号化装置は、インター予測ユニット、再構成ユニット、及びエントロピー符号化ユニットを含む。
インター予測ユニットは、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リスト(すなわち、list0)に対応する参照サンプル値と第2リスト(すなわち、list1)に対応する参照サンプル値とに基づいて、第1の処理方式で現在ピクチャブロックの予測サンプル値(例えば、現在コーディングユニットの予測サンプル)を決定する(又は予測を通じて取得する)ように構成され、第1の処理方式は、BDOF(あるいは、双方向オプティカルフロー(Bi-directional optical flow、BIO)と称される)ではない。換言すれば、現在ピクチャブロックのサイズが第2のプリセットサイズであるとき、第1リストに対応する参照サンプル値及び第2リストに対応する参照サンプル値に基づいて現在ピクチャブロックの予測サンプル値を決定するためにBDOFを使用することは許されない。現在ピクチャブロックのサイズは、通常、幅及び高さ(短くW×Hと記載される)によって表され、幅及び高さは、サンプル(sample又はpixel)によって測定される。第2のプリセットサイズは、8×8(1つめの8は、現在ピクチャブロックの幅が8サンプルであることを示し、2つめの8は、現在ピクチャブロックの高さが8サンプルであることを示す)、4×N(4は、現在ピクチャブロックの幅が4サンプルであることを示し、Nは、現在ピクチャブロックの高さがNサンプルであることを示し、類推によって他のサイズが推定される)、8×16、又は16×8を含む。Nは2のべき乗であり、且つ8以上である。例えば、Nの値は、16、32、64などとし得る。
この出願のこの実施形態において、第1リストに対応する参照サンプル値、及び第2リストに対応する参照サンプル値は、それぞれ、第1リスト(すなわち、list0)に対応する第1動きベクトル(例えば、Mv0_L0)、及び第2リスト(すなわち、list1)に対応する第2動きベクトル(例えば、Mv1_L1)に基づく予測を通じて取得される。例えば、第1リスト(すなわち、list0)に対応する参照サンプル値は、第1のリスト(すなわち、list0)に対応する第1動きベクトル(例えば、Mv0_L0)に基づいて決定されることができ、第2リスト(すなわち、list1)に対応する参照サンプル値は、第2リスト(すなわち、list1)に対応する第2動きベクトル(例えば、Mv1_L1)に基づいて決定されることができる。
再構成ユニットは、少なくとも現在ピクチャブロックの予測サンプル値に基づいて、現在ピクチャブロックを再構成するように構成される。ここでの“少なくとも”が示すのは、現在ピクチャブロックを再構成するために現在ピクチャブロックの予測サンプル値が使用される必要があるが、他の情報も使用され得る、ということである。
エントロピー符号化ユニットは、シンタックス要素を送信対象ビットストリームに符号化するように構成され、シンタックス要素は少なくとも、双方向予測が適用されることを指し示すために使用される。
理解されるべきことには、ここでの現在ピクチャブロック(これは、現在ブロックとも称される)は、処理中のピクチャブロックとして理解され得る。例えば、符号化プロセスにおいて、現在ピクチャブロックは、符号化中のピクチャブロック(encoding block)である。
また、第2のプリセットサイズが8×8、4×N、8×16、又は16×8を含む前述のケースは、第2のプリセットサイズが8×8、4×N、8×16、又は16×8であることに限られることもできる。換言すれば、BDOFは、上に列挙された8×8、4×N、8×16、及び16×8なるサイズのうちの1つに対して使用されることが禁止され、あるいは、これらのうちの複数のサイズに対して使用されることが禁止されてもよい。以下では、説明のための例を用いる。
例1: 第2のプリセットサイズは8×8を含む(又は、である)。換言すれば、この出願のこの実施形態において、BDOFは、サイズ8×8に対して使用されることが禁止される。この場合、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下として表現され得る:現在ピクチャブロックのサイズが8×8であるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得する。
例2:第2のプリセットサイズは4×Nを含む(又は、である)。換言すれば、この出願のこの実施形態において、BDOFは、サイズ4×Nに対して使用されることが禁止される。この場合、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下として表現され得る:Nは8以上であるとして、現在ピクチャブロックのサイズが4×Nであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得する。
例3: 第2のプリセットサイズは8×8又は4×Nを含む(又は、である)。換言すれば、この出願のこの実施形態において、BDOFは、サイズ8×8及び4×Nに対して使用されることが禁止される。この場合、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下として表現され得る:Nは8以上であるとして、現在ピクチャブロックのサイズが8×8及び4×Nのいずれかであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得する。
例4: 第2のプリセットサイズは8×8、4×N、8×16、又は16×8を含み(又は、であり)、ここで、Nは8以上である。換言すれば、この出願のこの実施形態において、BDOFは、サイズ8×8、4×N、8×16、及び16×8に対して使用されることが禁止される。この場合、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下として表現され得る:Nは8以上であるとして、現在ピクチャブロックのサイズが8×8、4×N、8×16、及び16×8のうちのいずれか1つであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得する。
例5: 第2のプリセットサイズはN×8を含み(又は、であり)、ここで、Nは4以上である。換言すれば、この出願のこの実施形態において、BDOFは、サイズN×8に対して使用されることが禁止される。この場合、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下として表現され得る:現在ピクチャブロックのサイズがN×8であるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得する。
例6: 第2のプリセットサイズはN×8又は4×Nを含み(又は、であり)、ここで、Nは4以上である。換言すれば、この出願のこの実施形態において、BDOFは、サイズN×8又は4×Nに対して使用されることが禁止される。この場合、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下として表現され得る:現在ピクチャブロックのサイズがN×8又は4×Nであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得する。
さらに、一部のシナリオでは、サイズM×4に対してもBDOFが使用されることが禁止されるので、この出願において、第2のプリセットサイズに対してBDOFが使用されることが禁止されるとき、BDOFは更に、Mは4以上の整数であるとして、サイズM×4に対して使用されることが禁止され得る。
理解され得ることには、前述のケースを参考にして、別のケースを更に得ることができ、別のケースもこの出願の保護範囲に入るものである。
前述の方法によれば、BDOF技術が使用されるときに様々なサイズの現在ピクチャブロックの特徴が十分に考慮される。現在ピクチャブロックのサイズが第2のプリセットサイズであるとき、現在ピクチャブロックの予測サンプル値は、BDOF技術以外の技術に従って決定される。これは、コーディングの複雑さを大幅に低減させるとともに、コーディング効率を向上させる。
オプションの一ソリューションにおいて、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で現在ピクチャブロックの予測サンプル値を決定するプロセスにおいて、インター予測ユニットは具体的に、
第1リストに対応する参照サンプル値及び第2リストに対応する参照サンプル値において同じ位置を持つサンプル値に対して重み付け計算を実行して、現在ピクチャブロックの予測サンプル値を取得する、又は
マージ・ウイズ・動きベクトル差MMVD技術に従って、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づく予測を通じて、現在ピクチャブロックの予測サンプル値を取得する、又は
結合インター/イントラ予測CIIP技術に従って、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づく予測を通じて、現在ピクチャブロックの予測サンプル値を取得する、
ように構成される。
この出願のこの実施形態において、重み付け計算方式、MMVD技術、又はCIIP技術が具体的に使用されるかは、対応する条件を用いることによって決定されてもよいし、あるいは、対応する指示情報を用いることによって指し示されてもよい。
理解されるべきことには、BDOF技術は、現在ピクチャブロックの予測サンプル値を予測するための従来技術でのパッチ最適化技術と同等である。BDOF技術によれば、多くのシナリオにおいて、現在ピクチャブロックの実際のサンプル値にいっそう近い予測サンプル値を得ることができる。従って、その予測サンプル値に基づいて得られるサンプル残差はより小さいものとなり、それ故に、コーディング効率を向上させることができる。前述の重み付け計算方式は、現在ピクチャブロックの予測サンプル値を得るための従来技術とみなされてもよく、前述のMMVD技術及びCIIP技術は各々、従来技術でのパッチ最適化技術とみなされてもよい。この出願のこの実施形態において、現在ピクチャブロックのサイズが第2のプリセットサイズであるとき、現在ピクチャブロックの予測サンプル値は、BDOF技術ではなく、従来技術(例えば、重み付け計算方式)又は他のパッチ最適化技術(例えば、MMVD又はCIIP)に従って決定される。これは、コーディングの複雑さを大幅に低減させることができるとともに、コーディング効率を向上させることができる。
オプションの一ソリューションにおいて、
インター予測ユニットは更に、複数のプリセット条件が満足されるときに、現在ピクチャブロックに対して双方向オプティカルフローBDOF処理を実行して現在ピクチャブロックの予測サンプル値を取得するように構成され、上記複数のプリセット条件は少なくとも、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することという条件を含む。
現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、且つ現在ピクチャブロックの幅Wと高さHとの積が64に等しいときに幅Wが高さHに等しくない、ことを含む。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、且つ現在ピクチャブロックの幅Wが8以上である、ことを含む(又は、である)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、現在ピクチャブロックの幅Wが8以上であり、且つ現在ピクチャブロックの幅Wと現在ピクチャブロックの高さHとの積が64よりも大きい、ことを含む(又は、である)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、現在ピクチャブロックの幅Wが8以上であり、且つ現在ピクチャブロックの幅Wと現在ピクチャブロックの高さHとの積が128よりも大きい、ことを含む(又は、である)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8よりも大きい、ことを含む。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8よりも大きく、且つ現在ピクチャブロックの幅Wが8以上である、ことを含む。
再構成ユニットは更に、少なくとも現在ピクチャブロックの予測サンプル値に基づいて、現在ピクチャブロックを再構成するように構成される。
具体的には、BDOF技術を有効にする又は使用するための、このソリューションにおける条件は、BDOF技術を有効にする又は使用するための、従来技術における条件とは異なり、特に、現在ピクチャブロックのサイズに関する要件が異なる。第1のプリセットサイズを持つ現在ピクチャブロックに対してBDOF技術を使用することで、元のサンプル値にいっそう近い予測サンプル値を得ることができ、また、コーディングの複雑さを適切に制御することができる。これは、符号化/復号の複雑さと予測精度とをある程度バランスさせ、それによりコーディング効率を向上させる。
なお、BDOF技術に従って、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて現在ピクチャブロックの予測サンプル値を決定する(又は予測を通じて取得する)かが決定される前に、現在ピクチャブロックのサイズに加えて、別の参照条件が存在してもよい。別の参照条件は、ここで限定されるものではない。理解を容易にするために、以下では、説明のための例を用いる。
条件A: 現在映像シーケンスに対してBDOF技術が使用されることが許されることを指し示すハイレベルシンタックス識別子sps_bdof_enabled_flagが存在する。
条件B: 第1リスト(List1)に対応する予測方向指示情報predFlagL0が1に等しく、且つ第2リスト(list0)に対応する予測方向指示情報predFlagL1が1に等しい。
条件C: 第1リスト(list0)に対応する参照フレームのピクチャオーダカウントPOC_L0、第2リスト(list1)に対応する参照フレームのピクチャオーダカウントPOC_L1、及びその中に現在ピクチャブロックが位置するピクチャのピクチャオーダカウントPOC_Curが、(POC_L0-POC_Cur)×(POC_L1-POC_Cur)<0という関係を満足する。換言すれば、現在ピクチャブロックを含むピクチャが、2つの参照ピクチャの間にある。
条件D: MotionModelIdc[xCb][yCb]が0に等しい。MotionModelIdcは、動き補償に関する動きモデルインデックスである。0に等しいMotionModelIdc[xCb][yCb]は、現在ブロックの動き補償のための動きモデルが並進運動(Translational motion)であることを指し示す。
条件E: merge_subblock_flag[x0][y0]が0に等しく、ここで、0に等しいmerge_subblock_flag[x0][y0]は、現在ピクチャブロックに対してサブブロックマージモードが適用されないことを指し示す。
条件F: sym_mvd_flag[x0][y0]が0に等しい。0に等しいsym_mvd_flag[x0][y0]は、現在ブロックに対してmvd_coding(x0,y0,refList,cpIdx)シンタックス構造が存在することを指し示す。
条件G: bcwIdx[xCb][yCb]が0に等しい。bcwIdxは、現在ピクチャブロックに対する双方向予測重みインデックスを示す。
条件H: cIdxが0に等しい。cIdxは、現在ピクチャブロックの色成分インデックスを表す。
条件I: 現在ピクチャブロックのサイズが第1のプリセットサイズである。
条件J: luma_weight_l0_flag[refIdxL0]及びluma_weight_l1_flag[refIdxL1]の両方が0に等しく、ここで、0に等しいluma_weight_l0_flagは、list0予測のルマコンポーネントに対する重み付け係数が存在しないことを指し示し、0に等しいluma_weight_l1_flagは、list1予測のルマコンポーネントに対する重み付け係数が存在しないことを指し示す。
例えば、条件A乃至Jの全てが満足されるとき、現在ピクチャブロックの予測サンプル値を予測するためにBDOF技術が使用され得ることが決定される。例えば、bdofFlagがtrueに設定される。なお、前述の条件は単なる例であり、別の条件が更に追加されたり、あるいは前述の条件のうちの1つ以上が置き換えられたり、あるいは前述の条件のうちの1つ以上が除去されたりしてもよい。
オプションの一ソリューションにおいて、シンタックス要素は、ターゲット候補動き情報のインデックス(例えば、merge_idx[xCb][yCb])を含み、ターゲット候補動き情報は、ターゲット候補動きベクトル、参照フレームインデックス、及び予測方向指示情報(例えば、predFlagL0=1及びpredFlagL1=1)を含み、予測方向指示情報は、双方向予測が適用されることを指し示すために使用され、ターゲット候補動きベクトルは、第1リスト(すなわち、list0)に対応する第1動きベクトル、及び第2リスト(すなわち、list1)に対応する第2動きベクトルを含み、参照フレームインデックスは、第1リストに対応する第1参照フレームのインデックス(例えば、refIdxL0)、及び第2リストに対応する第2参照フレームのインデックス(例えば、refIdxL1)を含む。
この出願のこの実施形態において、参照フレームインデックスは、指定された参照ピクチャリスト(第1リストlist0又は第2リストlist1)内の使用される動きベクトル(例えば、第1動きベクトル又は第2動きベクトル)に対応する参照ピクチャを特定するために使用される。ピクチャはフレームと称されることがあり、参照ピクチャは参照フレームと称されることがある。
映像コーディング分野において、インター予測モードは、前方予測、後方予測、及び双方向予測(前方予測及び後方予測を含む)を含み、エンコーダ側で使用される特定の予測モードは、通常、予測方向指示情報によって指し示される。例えば、予測方向指示情報は、シンタックス要素predFlagL0及びpredFlagL1を含み得る。predFlagL0=1且つpredFlagL1=1であるとき、予測方向指示情報は、双方向予測が適用されることを指し示す。predFlagL0=1且つpredFlagL1=0であるとき、予測方向指示情報は、前方予測が使用されることを指し示す。predFlagL0=0且つpredFlagL1=1であるとき、予測方向指示情報は、後方予測が使用されることを指し示す。理解され得ることには、“前方”及び“後方”は、それぞれ、現在ピクチャの参照ピクチャリスト0(list0、すなわち、前述の第1リスト)及び参照ピクチャリスト1(list1、すなわち、前述の第2リスト)に対応する。
オプションの一ソリューションにおいて、シンタックス要素は、第1インデックス、第2インデックス、予測方向指示情報、及び動きベクトル差MVDを含み、第1インデックス(例えば、mvp_lX_flag[xCb][yCb])は、ターゲット候補動きベクトル予測子を指し示すために使用され、ターゲット候補動きベクトル予測子は、第1リスト(例えば、list0)に対応する第1動きベクトル予測子、及び第2リスト(例えば、list1)に対応する第2動きベクトル予測子を含み、動きベクトル差MVDは、第1リストに対応する第1MVD、及び/又は第2リストに対応する第2MVDを含む(オプションで、MMVD技術が使用されるとき、1つのMVDのみが伝送されてもよく、別方向のものであってデコーダ側によって使用される必要があるMVDは、伝送されたMVDに基づいて導出され得る)。第2インデックス(これらは、参照フレームインデックスとも称される)は、現在ピクチャブロックの参照フレームを指し示すために使用され、参照フレームは、第1リストに対応する第1参照フレーム、及び第2リストに対応する第2参照フレームを含む。例えば、第2インデックスは、refIdxL0及びrefIdxL1であり、refIdxL0は、第1リストに対応する第1参照フレームのインデックスであり、refIdxL1は、第2リストに対応する第2参照フレームのインデックスである。予測方向指示情報(例えば、predFlagL0=1及びpredFlagL1=1)は、双方向予測が適用されることを指し示すために使用される。
第1リストに対応する第1動きベクトル(例えば、Mv0_L0)は、第1リストに対応する第1動きベクトル予測子(例えば、Mvp0_L0)と、第1リストに対応する第1MVD(例えば、MVD0)とに基づいて取得される。例えば、Mv0_L0=Mvp0_L0+MVD0である。
第2リストに対応する第2動きベクトル(例えば、Mv1_L1)は、第2リストに対応する第2動きベクトル予測子(例えば、Mvp1_L1)と、第2リストに対応する第2MVD(例えば、MVD1)とに基づいて取得される。例えば、Mv1_L1=Mvp1_L1+MVD1である。
映像コーディング分野において、インター予測モードは、前方予測、後方予測、及び双方向予測(前方予測及び後方予測を含む)を含み、エンコーダ側で使用される特定の予測モードは、通常、予測方向指示情報によって指し示される。例えば、予測方向指示情報は、シンタックス要素predFlagL0及びpredFlagL1を含み得る。predFlagL0=1且つpredFlagL1=1であるとき、予測方向指示情報は、双方向予測が適用されることを指し示す。predFlagL0=1且つpredFlagL1=0であるとき、予測方向指示情報は、前方予測が使用されることを指し示す。predFlagL0=0且つpredFlagL1=1であるとき、予測方向指示情報は、後方予測が使用されることを指し示す。理解され得ることには、“前方”及び“後方”は、それぞれ、現在ピクチャの参照ピクチャリスト0(list0、すなわち、前述の第1リスト)及び参照ピクチャリスト1(list1、すなわち、前述の第2リスト)に対応する。
オプションの一ソリューションにおいて、当該映像符号化装置は更に、現在ピクチャブロックのサンプル値と現在ピクチャブロックの予測サンプル値とに基づいて、サンプル残差を決定するように構成された残差計算ユニット、を含み、エントロピー符号化ユニットは具体的に、シンタックス要素及びサンプル残差を送信対象ビットストリームに符号化するように構成される。
第8態様によれば、この出願の一実施形態は、映像復号装置を提供し、当該映像復号装置は、エントロピー復号ユニット、インター予測ユニット、及び再構成ユニットを含む。
エントロピー復号ユニットは、ビットストリームを解析してシンタックス要素を取得するように構成され、シンタックス要素は少なくとも、双方向予測が適用されることを指し示すために使用される。
インター予測ユニットは、複数のプリセット条件が満足されるときに、現在ピクチャブロックに対して双方向オプティカルフローBDOF(Bi-directional optical flow、略してBIO又はBDOF)処理を実行して現在ピクチャブロックの予測サンプル値を取得するように構成され、上記複数のプリセット条件は少なくとも、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することという条件を含む。現在ピクチャブロックのサイズは、通常、幅及び高さ(短くW×Hと記載される)によって表され、幅及び高さは、サンプル(sample又はpixel)によって測定される。例えば、現在ピクチャブロックのサイズが8×8である場合、1つめの8は、現在ピクチャブロックの幅が8サンプルであることを示し、2つめの8は、現在ピクチャブロックの高さが8サンプルであることを示す。他の一例では、現在ピクチャブロックのサイズが8×16である場合、8は、現在ピクチャブロックの幅が8サンプルであることを示し、16は、現在ピクチャブロックの高さが16サンプルであることを示す。
現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、且つ現在ピクチャブロックの幅Wと高さHとの積が64に等しいときに幅Wが高さHに等しくない、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、且つ現在ピクチャブロックの幅Wが8以上である、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、現在ピクチャブロックの幅Wが8以上であり、且つ現在ピクチャブロックの幅Wと現在ピクチャブロックの高さHとの積が64よりも大きい、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、現在ピクチャブロックの幅Wが8以上であり、且つ現在ピクチャブロックの幅Wと現在ピクチャブロックの高さHとの積が128よりも大きい、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8よりも大きい、ことを含む。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8よりも大きく、且つ現在ピクチャブロックの幅Wが8以上である、ことを含む。
再構成ユニットは、少なくとも現在ピクチャブロックの予測サンプル値に基づいて、現在ピクチャブロックのサンプル値を決定するように構成される。
なお、BDOF技術に従って、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて現在ピクチャブロックの予測サンプル値を決定する(又は予測を通じて取得する)かが決定される前に、現在ピクチャブロックのサイズに加えて、別の参照条件が存在してもよい。別の参照条件は、ここで限定されるものではない。理解を容易にするために、以下では、説明のための例を用いる。
条件A: 現在映像シーケンスに対してBDOF技術が使用されることが許されることを指し示すハイレベルシンタックス識別子sps_bdof_enabled_flagが存在する。
条件B: 第1リスト(List1)に対応する予測方向指示情報predFlagL0が1に等しく、且つ第2リスト(list0)に対応する予測方向指示情報predFlagL1が1に等しい。
条件C: 第1リスト(list0)に対応する参照フレームのピクチャオーダカウントPOC_L0、第2リスト(list1)に対応する参照フレームのピクチャオーダカウントPOC_L1、及びその中に現在ピクチャブロックが位置するピクチャのピクチャオーダカウントPOC_Curが、(POC_L0-POC_Cur)×(POC_L1-POC_Cur)<0という関係を満足する。換言すれば、現在ピクチャブロックを含むピクチャが、2つの参照ピクチャの間にある。
条件D: MotionModelIdc[xCb][yCb]が0に等しい。MotionModelIdcは、動き補償に関する動きモデルインデックスである。0に等しいMotionModelIdc[xCb][yCb]は、現在ブロックの動き補償のための動きモデルが並進運動(Translational motion)であることを指し示す。
条件E: merge_subblock_flag[x0][y0]が0に等しく、ここで、0に等しいmerge_subblock_flag[x0][y0]は、現在ピクチャブロックに対してサブブロックマージモードが適用されないことを指し示す。
条件F: sym_mvd_flag[x0][y0]が0に等しい。0に等しいsym_mvd_flag[x0][y0]は、現在ブロックに対してmvd_coding(x0,y0,refList,cpIdx)シンタックス構造が存在することを指し示す。
条件G: bcwIdx[xCb][yCb]が0に等しい。bcwIdxは、現在ピクチャブロックに対する双方向予測重みインデックスを示す。
条件H: cIdxが0に等しい。cIdxは、現在ピクチャブロックの色成分インデックスを表す。
条件I: 現在ピクチャブロックのサイズが第1のプリセットサイズである。
条件J: luma_weight_l0_flag[refIdxL0]及びluma_weight_l1_flag[refIdxL1]の両方が0に等しく、ここで、0に等しいluma_weight_l0_flagは、list0予測のルマコンポーネントに対する重み付け係数が存在しないことを指し示し、0に等しいluma_weight_l1_flagは、list1予測のルマコンポーネントに対する重み付け係数が存在しないことを指し示す。
例えば、条件A乃至Jの全てが満足されるとき、現在ピクチャブロックの予測サンプル値を予測するためにBDOF技術が使用され得ることが決定される。例えば、bdofFlagがtrueに設定される。なお、前述の条件は単なる例であり、別の条件が更に追加されたり、あるいは前述の条件のうちの1つ以上が置き換えられたり、あるいは前述の条件のうちの1つ以上が除去されたりしてもよい。
理解されるべきことには、ここでの現在ピクチャブロック(これは、現在ブロックとも称される)は、処理中のピクチャブロックとして理解され得る。例えば、復号プロセスにおいて、現在ピクチャブロックは、復号中のピクチャブロック(decoding block)である。
この出願のこの実施形態において、状態判定動作が更に含められてもよい。例えば、インター予測ユニットは更に、上記複数のプリセット条件が満足されているかを判定するように構成される。
理解され得ることには、前述のケースを参考にして、別のケースを更に得ることができ、別のケースもこの出願の保護範囲に入るものである。
具体的には、BDOF技術を有効にする又は使用するための、このソリューションにおける条件は、BDOF技術を有効にする又は使用するための、従来技術における条件とは異なり、特に、現在ピクチャブロックのサイズに関する要件が異なる。第1のプリセットサイズを持つ現在ピクチャブロックに対してBDOF技術を使用することで、元のサンプル値にいっそう近い予測サンプル値を得ることができ、また、コーディングの複雑さを適切に制御することができる。これは、符号化/復号の複雑さと予測精度とをある程度バランスさせ、それによりコーディング効率を向上させる。
オプションの一ソリューションにおいて、シンタックス要素は、ターゲット候補動き情報のインデックス(例えば、merge_idx[xCb][yCb])を含み、ターゲット候補動き情報は、ターゲット候補動きベクトル、参照フレームインデックス、及び予測方向指示情報(例えば、predFlagL0=1及びpredFlagL1=1)を含み、予測方向指示情報は、双方向予測が適用されることを指し示すために使用され、ターゲット候補動きベクトルは、第1リスト(すなわち、list0)に対応する第1動きベクトル、及び第2リスト(すなわち、list1)に対応する第2動きベクトルを含み、参照フレームインデックスは、第1リストに対応する第1参照フレームのインデックス(例えば、refIdxL0)、及び第2リストに対応する第2参照フレームのインデックス(例えば、refIdxL1)を含む。
この出願のこの実施形態において、参照フレームインデックスは、指定された参照ピクチャリスト(第1リストlist0又は第2リストlist1)内の使用される動きベクトル(例えば、第1動きベクトル又は第2動きベクトル)に対応する参照ピクチャを特定するために使用される。ピクチャはフレームと称されることがあり、参照ピクチャは参照フレームと称されることがある。
映像コーディング分野において、インター予測モードは、前方予測、後方予測、及び双方向予測(前方予測及び後方予測を含む)を含み、エンコーダ側で使用される特定の予測モードは、通常、予測方向指示情報によって指し示される。例えば、予測方向指示情報は、シンタックス要素predFlagL0及びpredFlagL1を含み得る。predFlagL0=1且つpredFlagL1=1であるとき、予測方向指示情報は、双方向予測が適用されることを指し示す。predFlagL0=1且つpredFlagL1=0であるとき、予測方向指示情報は、前方予測が使用されることを指し示す。predFlagL0=0且つpredFlagL1=1であるとき、予測方向指示情報は、後方予測が使用されることを指し示す。理解され得ることには、“前方”及び“後方”は、それぞれ、現在ピクチャの参照ピクチャリスト0(list0、すなわち、前述の第1リスト)及び参照ピクチャリスト1(list1、すなわち、前述の第2リスト)に対応する。
オプションの一ソリューションにおいて、シンタックス要素は、第1インデックス、第2インデックス、予測方向指示情報、及び動きベクトル差MVDを含み、第1インデックス(例えば、mvp_lX_flag[xCb][yCb])は、ターゲット候補動きベクトル予測子を指し示すために使用され、ターゲット候補動きベクトル予測子は、第1リスト(例えば、list0)に対応する第1動きベクトル予測子、及び第2リスト(例えば、list1)に対応する第2動きベクトル予測子を含み、動きベクトル差MVDは、第1リストに対応する第1MVD、及び/又は第2リストに対応する第2MVDを含む(例えば、1つのMVDのみが含まれるとき、伝送されないMVDは、伝送されたMVDに基づいて導出され得る)。第2インデックス(これらは、参照フレームインデックスとも称される)は、現在ピクチャブロックの参照フレームを指し示すために使用され、参照フレームは、第1リストに対応する第1参照フレーム、及び第2リストに対応する第2参照フレームを含む。例えば、第2インデックスは、refIdxL0及びrefIdxL1であり、refIdxL0は、第1リストに対応する第1参照フレームのインデックスであり、refIdxL1は、第2リストに対応する第2参照フレームのインデックスである。予測方向指示情報(例えば、predFlagL0=1及びpredFlagL1=1)は、双方向予測が適用されることを指し示すために使用される。
第1リストに対応する第1動きベクトル(例えば、Mv0_L0)が、第1リストに対応する第1動きベクトル予測子(例えば、Mvp0_L0)と、第1リストに対応する第1MVD(例えば、MVD0)とに基づいて取得される。例えば、Mv0_L0=Mvp0_L0+MVD0である。
第2リストに対応する第2動きベクトル(例えば、Mv1_L1)が、第2リストに対応する第2動きベクトル予測子(例えば、Mvp1_L1)と、第2リストに対応する第2MVD(例えば、MVD1)とに基づいて取得される。例えば、Mv1_L1=Mvp1_L1+MVD1である。
映像コーディング分野において、インター予測モードは、前方予測、後方予測、及び双方向予測(前方予測及び後方予測を含む)を含み、エンコーダ側で使用される特定の予測モードは、通常、予測方向指示情報によって指し示される。例えば、予測方向指示情報は、シンタックス要素predFlagL0及びpredFlagL1を含み得る。predFlagL0=1且つpredFlagL1=1であるとき、予測方向指示情報は、双方向予測が適用されることを指し示す。predFlagL0=1且つpredFlagL1=0であるとき、予測方向指示情報は、前方予測が使用されることを指し示す。predFlagL0=0且つpredFlagL1=1であるとき、予測方向指示情報は、後方予測が使用されることを指し示す。理解され得ることには、“前方”及び“後方”は、それぞれ、現在ピクチャの参照ピクチャリスト0(list0、すなわち、前述の第1リスト)及び参照ピクチャリスト1(list1、すなわち、前述の第2リスト)に対応する。
オプションの一ソリューションにおいて、エントロピー復号ユニットは具体的に、ビットストリームを解析して、サンプル残差とシンタックス要素とを取得するように構成され、再構成ユニットは具体的に、サンプル残差と現在ピクチャブロックの予測サンプル値に基づいて、現在ピクチャブロックのサンプル値を決定するように構成される。
第9態様によれば、この出願の一実施形態は、映像復号装置を提供し、当該映像復号装置は、エントロピー復号ユニット、インター予測ユニット、及び再構成ユニットを含む。
エントロピー復号ユニットは、ビットストリームを解析してシンタックス要素を取得するように構成され、シンタックス要素は少なくとも、双方向予測が適用されることを指し示すために使用される。
インター予測ユニットは、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リスト(すなわち、list0)に対応する参照サンプル値と第2リスト(すなわち、list1)に対応する参照サンプル値とに基づいて、第1の処理方式で現在ピクチャブロックの予測サンプル値(例えば、現在コーディングユニットの予測サンプル)を決定する(又は予測を通じて取得する)ように構成され、第1の処理方式は、BDOF(あるいは、双方向オプティカルフロー(Bi-directional optical flow、BIO)と称される)ではない。換言すれば、現在ピクチャブロックのサイズが第2のプリセットサイズであるとき、第1リストに対応する参照サンプル値及び第2リストに対応する参照サンプル値に基づいて現在ピクチャブロックの予測サンプル値を決定するためにBDOFを使用することは許されない。現在ピクチャブロックのサイズは、通常、幅及び高さ(短くW×Hと記載される)によって表され、幅及び高さは、サンプル(sample又はpixel)によって測定される。第2のプリセットサイズは、8×8(1つめの8は、現在ピクチャブロックの幅が8サンプルであることを示し、2つめの8は、現在ピクチャブロックの高さが8サンプルであることを示す)、4×N(4は、現在ピクチャブロックの幅が4サンプルであることを示し、Nは、現在ピクチャブロックの高さがNサンプルであることを示し、類推によって他のサイズが推定される)、8×16、又は16×8を含む。Nは2のべき乗であり、且つ8以上である。例えば、Nの値は、16、32、64などとし得る。
この出願のこの実施形態において、第1リストに対応する参照サンプル値、及び第2リストに対応する参照サンプル値は、それぞれ、第1リスト(すなわち、list0)に対応する第1動きベクトル(例えば、Mv0_L0)、及び第2リスト(すなわち、list1)に対応する第2動きベクトル(例えば、Mv1_L1)に基づく予測を通じて取得される。例えば、第1リスト(すなわち、list0)に対応する参照サンプル値は、第1のリスト(すなわち、list0)に対応する第1動きベクトル(例えば、Mv0_L0)に基づいて決定されることができ、第2リスト(すなわち、list1)に対応する参照サンプル値は、第2リスト(すなわち、list1)に対応する第2動きベクトル(例えば、Mv1_L1)に基づいて決定されることができる。
再構成ユニットは、少なくとも現在ピクチャブロックの予測サンプル値に基づいて、現在ピクチャブロックのサンプル値を決定するように構成される。
理解されるべきことには、ここでの現在ピクチャブロック(これは、現在ブロックとも称される)は、処理中のピクチャブロックとして理解され得る。例えば、復号プロセスにおいて、現在ピクチャブロックは、復号中のピクチャブロック(decoding block)である。
また、第2のプリセットサイズが8×8、4×N、8×16、又は16×8を含む前述のケースは、第2のプリセットサイズが8×8、4×N、8×16、又は16×8であることに限られることもできる。換言すれば、BDOFは、上に列挙された8×8、4×N、8×16、及び16×8なるサイズのうちの1つに対して使用されることが禁止され、あるいは、これらのうちの複数のサイズに対して使用されることが禁止されてもよい。以下では、説明のための例を用いる。
例1: 第2のプリセットサイズは8×8を含む(又は、である)。換言すれば、この出願のこの実施形態において、BDOFは、サイズ8×8に対して使用されることが禁止される。この場合、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下として表現され得る:現在ピクチャブロックのサイズが8×8であるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得する。
例2:第2のプリセットサイズは4×Nを含む(又は、である)。換言すれば、この出願のこの実施形態において、BDOFは、サイズ4×Nに対して使用されることが禁止される。この場合、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下として表現され得る:Nは8以上であるとして、現在ピクチャブロックのサイズが4×Nであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得する。
例3: 第2のプリセットサイズは8×8又は4×Nを含む(又は、である)。換言すれば、この出願のこの実施形態において、BDOFは、サイズ8×8及び4×Nに対して使用されることが禁止される。この場合、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下として表現され得る:Nは8以上であるとして、現在ピクチャブロックのサイズが8×8及び4×Nのいずれかであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得する。
例4: 第2のプリセットサイズは8×8、4×N、8×16、又は16×8を含み(又は、であり)、ここで、Nは8以上である。換言すれば、この出願のこの実施形態において、BDOFは、サイズ8×8、4×N、8×16、及び16×8に対して使用されることが禁止される。この場合、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下として表現され得る:現在ピクチャブロックのサイズが8×8、4×N、8×16、及び16×8のうちのいずれか1つであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得する。
例5: 第2のプリセットサイズはN×8を含み(又は、であり)、ここで、Nは4以上である。換言すれば、この出願のこの実施形態において、BDOFは、サイズN×8に対して使用されることが禁止される。この場合、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下として表現され得る:現在ピクチャブロックのサイズがN×8であるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得する。
例6: 第2のプリセットサイズはN×8又は4×Nを含み(又は、であり)、ここで、Nは4以上である。換言すれば、この出願のこの実施形態において、BDOFは、サイズN×8又は4×Nに対して使用されることが禁止される。この場合、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下として表現され得る:現在ピクチャブロックのサイズがN×8又は4×Nであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得する。
さらに、一部のシナリオでは、サイズM×4に対してもBDOFが使用されることが禁止されるので、この出願において、第2のプリセットサイズに対してBDOFが使用されることが禁止されるとき、BDOFは更に、Mは4以上の整数であるとして、サイズM×4に対して使用されることが禁止され得る。
理解され得ることには、前述のケースを参考にして、別のケースを更に得ることができ、別のケースもこの出願の保護範囲に入るものである。
前述の方法によれば、BDOF技術が使用されるときに様々なサイズの現在ピクチャブロックの特徴が十分に考慮される。現在ピクチャブロックのサイズが第2のプリセットサイズであるとき、現在ピクチャブロックの予測サンプル値は、BDOF技術以外の技術に従って決定される。これは、コーディングの複雑さを大幅に低減させるとともに、コーディング効率を向上させる。
オプションの一ソリューションにおいて、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得するプロセスにおいて、インター予測ユニットは具体的に、
第1リストに対応する参照サンプル値及び第2リストに対応する参照サンプル値において同じ位置を持つサンプル値に対して重み付け計算を実行して、現在ピクチャブロックの予測サンプル値を取得する、又は
マージ・ウイズ・動きベクトル差MMVD技術に従って、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づく予測を通じて、現在ピクチャブロックの予測サンプル値を取得する、又は
結合インター/イントラ予測CIIP技術に従って、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づく予測を通じて、現在ピクチャブロックの予測サンプル値を取得する、又は
デコーダ側動きベクトル精緻化DMVR技術に従って、第1リストに対応する参照サンプルと第2リストに対応する参照サンプルとに基づく予測を通じて、現在ピクチャブロックの予測サンプル値を取得する、
ように構成される。
この出願のこの実施形態において、重み付け計算方式、MMVD技術、又はCIIP技術が具体的に使用されるかは、対応する条件を用いることによって決定されてもよいし、あるいは、対応する指示情報を用いることによって指し示されてもよい。
理解されるべきことには、BDOF技術は、現在ピクチャブロックの予測サンプル値を予測するための従来技術でのパッチ最適化技術と同等である。BDOF技術によれば、多くのシナリオにおいて、現在ピクチャブロックの実際のサンプル値にいっそう近い予測サンプル値を得ることができる。従って、その予測サンプル値に基づいて得られるサンプル残差はより小さいものとなり、それ故に、コーディング効率を向上させることができる。従って、BDOF技術は、通常、エンコーダ側で使用される。より正確に予測サンプル値を復元するために、BDOF技術は対応してデコーダ側でも使用される。前述の重み付け計算方式は、現在ピクチャブロックの予測サンプル値を得るための従来技術とみなされてもよく、前述のMMVD技術、CIIP技術、及びDMVR技術は各々、従来技術でのパッチ最適化技術とみなされてもよい。この出願のこの実施形態において、現在ピクチャブロックのサイズが第2のプリセットサイズであるとき、現在ピクチャブロックの予測サンプル値は、BDOF技術ではなく、従来技術(例えば、重み付け計算方式)又は他のパッチ最適化技術(例えば、MMVD、CIIP、又はDMVR)に従って決定される。これは、復号の複雑さを大幅に低減させることができるとともに、復号効率を向上させることができる。
オプションの一ソリューションにおいて、インター予測ユニットは更に、複数のプリセット条件が満足されるときに、現在ピクチャブロックに対して双方向オプティカルフローBDOF処理を実行して現在ピクチャブロックの予測サンプル値を取得するように構成され、上記複数のプリセット条件は少なくとも、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することという条件を含む。
現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、且つ現在ピクチャブロックの幅Wと高さHとの積が64に等しいときに幅Wが高さHに等しくない、ことを含む(又は、である)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、且つ現在ピクチャブロックの幅Wが8以上である、ことを含む(又は、である)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、現在ピクチャブロックの幅Wが8以上であり、且つ現在ピクチャブロックの幅Wと現在ピクチャブロックの高さHとの積が64よりも大きい、ことを含む(又は、である)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、現在ピクチャブロックの幅Wが8以上であり、且つ現在ピクチャブロックの幅Wと現在ピクチャブロックの高さHとの積が128よりも大きい、ことを含む(又は、である)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8よりも大きい、ことを含む(又は、である)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8よりも大きく、且つ現在ピクチャブロックの幅Wが8以上である、ことを含む(又は、である)。
再構成ユニットは更に、少なくとも現在ピクチャブロックの予測サンプル値に基づいて、現在ピクチャブロックを再構成するように構成される。
具体的には、BDOF技術を有効にする又は使用するための、このソリューションにおける条件は、BDOF技術を有効にする又は使用するための、従来技術における条件とは異なり、特に、現在ピクチャブロックのサイズに関する要件が異なる。第1のプリセットサイズを持つ現在ピクチャブロックに対してBDOF技術を使用することで、元のサンプル値にいっそう近い予測サンプル値を得ることができ、また、コーディングの複雑さを適切に制御することができる。これは、符号化/復号の複雑さと予測精度とをある程度バランスさせ、それによりコーディング効率を向上させる。
なお、BDOF技術に従って、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて現在ピクチャブロックの予測サンプル値を決定する(又は予測を通じて取得する)かが決定される前に、現在ピクチャブロックのサイズに加えて、別の参照条件が存在してもよい。別の参照条件は、ここで限定されるものではない。理解を容易にするために、以下では、説明のための例を用いる。
条件A: 現在映像シーケンスに対してBDOF技術が使用されることが許されることを指し示すハイレベルシンタックス識別子sps_bdof_enabled_flagが存在する。
条件B: 第1リスト(List1)に対応する予測方向指示情報predFlagL0が1に等しく、且つ第2リスト(list0)に対応する予測方向指示情報predFlagL1が1に等しい。
条件C: 第1リスト(list0)に対応する参照フレームのピクチャオーダカウントPOC_L0、第2リスト(list1)に対応する参照フレームのピクチャオーダカウントPOC_L1、及びその中に現在ピクチャブロックが位置するピクチャのピクチャオーダカウントPOC_Curが、(POC_L0-POC_Cur)×(POC_L1-POC_Cur)<0という関係を満足する。換言すれば、現在ピクチャブロックを含むピクチャが、2つの参照ピクチャの間にある。
条件D: MotionModelIdc[xCb][yCb]が0に等しい。MotionModelIdcは、動き補償に関する動きモデルインデックスである。0に等しいMotionModelIdc[xCb][yCb]は、現在ブロックの動き補償のための動きモデルが並進運動(Translational motion)であることを指し示す。
条件E: merge_subblock_flag[x0][y0]が0に等しく、ここで、0に等しいmerge_subblock_flag[x0][y0]は、現在ピクチャブロックに対してサブブロックマージモードが適用されないことを指し示す。
条件F: sym_mvd_flag[x0][y0]が0に等しい。0に等しいsym_mvd_flag[x0][y0]は、現在ブロックに対してmvd_coding(x0,y0,refList,cpIdx)シンタックス構造が存在することを指し示す。
条件G: bcwIdx[xCb][yCb]が0に等しい。bcwIdxは、現在ピクチャブロックに対する双方向予測重みインデックスを示す。
条件H: cIdxが0に等しい。cIdxは、現在ピクチャブロックの色成分インデックスを表す。
条件I: 現在ピクチャブロックのサイズが第1のプリセットサイズである。
条件J: luma_weight_l0_flag[refIdxL0]及びluma_weight_l1_flag[refIdxL1]の両方が0に等しく、ここで、0に等しいluma_weight_l0_flagは、list0予測のルマコンポーネントに対する重み付け係数が存在しないことを指し示し、0に等しいluma_weight_l1_flagは、list1予測のルマコンポーネントに対する重み付け係数が存在しないことを指し示す。
例えば、条件A乃至Jの全てが満足されるとき、現在ピクチャブロックの予測サンプル値を予測するためにBDOF技術が使用され得ることが決定される。例えば、bdofFlagがtrueに設定される。なお、前述の条件は単なる例であり、別の条件が更に追加されたり、あるいは前述の条件のうちの1つ以上が置き換えられたり、あるいは前述の条件のうちの1つ以上が除去されたりしてもよい。
オプションの一ソリューションにおいて、シンタックス要素は、ターゲット候補動き情報のインデックス(例えば、merge_idx[xCb][yCb])を含み、ターゲット候補動き情報は、ターゲット候補動きベクトル、参照フレームインデックス、及び予測方向指示情報(例えば、predFlagL0=1及びpredFlagL1=1)を含み、予測方向指示情報は、双方向予測が適用されることを指し示すために使用され、ターゲット候補動きベクトルは、第1リスト(すなわち、list0)に対応する第1動きベクトル、及び第2リスト(すなわち、list1)に対応する第2動きベクトルを含み、参照フレームインデックスは、第1リストに対応する第1参照フレームのインデックス(例えば、refIdxL0)、及び第2リストに対応する第2参照フレームのインデックス(例えば、refIdxL1)を含む。
この出願のこの実施形態において、参照フレームインデックスは、指定された参照ピクチャリスト(第1リストlist0又は第2リストlist1)内の使用される動きベクトル(例えば、第1動きベクトル又は第2動きベクトル)に対応する参照ピクチャを特定するために使用される。ピクチャはフレームと称されることがあり、参照ピクチャは参照フレームと称されることがある。
映像コーディング分野において、インター予測モードは、前方予測、後方予測、及び双方向予測(前方予測及び後方予測を含む)を含み、エンコーダ側で使用される特定の予測モードは、通常、予測方向指示情報によって指し示される。例えば、予測方向指示情報は、シンタックス要素predFlagL0及びpredFlagL1を含み得る。predFlagL0=1且つpredFlagL1=1であるとき、予測方向指示情報は、双方向予測が適用されることを指し示す。predFlagL0=1且つpredFlagL1=0であるとき、予測方向指示情報は、前方予測が使用されることを指し示す。predFlagL0=0且つpredFlagL1=1であるとき、予測方向指示情報は、後方予測が使用されることを指し示す。理解され得ることには、“前方”及び“後方”は、それぞれ、現在ピクチャの参照ピクチャリスト0(list0、すなわち、前述の第1リスト)及び参照ピクチャリスト1(list1、すなわち、前述の第2リスト)に対応する。
オプションの一ソリューションにおいて、シンタックス要素は、第1インデックス、第2インデックス、予測方向指示情報、及び動きベクトル差MVDを含み、第1インデックス(例えば、mvp_lX_flag[xCb][yCb])は、ターゲット候補動きベクトル予測子を指し示すために使用され、ターゲット候補動きベクトル予測子は、第1リスト(例えば、list0)に対応する第1動きベクトル予測子、及び第2リスト(例えば、list1)に対応する第2動きベクトル予測子を含み、動きベクトル差MVDは、第1リストに対応する第1MVD、及び/又は第2リストに対応する第2MVDを含む(オプションで、MMVD技術が使用されるとき、1つのMVDのみが伝送されてもよく、別方向のものであってデコーダ側によって使用される必要があるMVDは、伝送されたMVDに基づいて導出され得る)。第2インデックス(これらは、参照フレームインデックスとも称される)は、現在ピクチャブロックの参照フレームを指し示すために使用され、参照フレームは、第1リストに対応する第1参照フレーム、及び第2リストに対応する第2参照フレームを含む。例えば、第2インデックスは、refIdxL0及びrefIdxL1であり、refIdxL0は、第1リストに対応する第1参照フレームのインデックスであり、refIdxL1は、第2リストに対応する第2参照フレームのインデックスである。予測方向指示情報(例えば、predFlagL0=1及びpredFlagL1=1)は、双方向予測が適用されることを指し示すために使用される。
第1リストに対応する第1動きベクトル(例えば、Mv0_L0)は、第1リストに対応する第1動きベクトル予測子(例えば、Mvp0_L0)と、第1リストに対応する第1MVD(例えば、MVD0)とに基づいて取得される。例えば、Mv0_L0=Mvp0_L0+MVD0である。
第2リストに対応する第2動きベクトル(例えば、Mv1_L1)は、第2リストに対応する第2動きベクトル予測子(例えば、Mvp1_L1)と、第2リストに対応する第2MVD(例えば、MVD1)とに基づいて取得される。例えば、Mv1_L1=Mvp1_L1+MVD1である。
映像コーディング分野において、インター予測モードは、前方予測、後方予測、及び双方向予測(前方予測及び後方予測を含む)を含み、エンコーダ側で使用される特定の予測モードは、通常、予測方向指示情報によって指し示される。例えば、予測方向指示情報は、シンタックス要素predFlagL0及びpredFlagL1を含み得る。predFlagL0=1且つpredFlagL1=1であるとき、予測方向指示情報は、双方向予測が適用されることを指し示す。predFlagL0=1且つpredFlagL1=0であるとき、予測方向指示情報は、前方予測が使用されることを指し示す。predFlagL0=0且つpredFlagL1=1であるとき、予測方向指示情報は、後方予測が使用されることを指し示す。理解され得ることには、“前方”及び“後方”は、それぞれ、現在ピクチャの参照ピクチャリスト0(list0、すなわち、前述の第1リスト)及び参照ピクチャリスト1(list1、すなわち、前述の第2リスト)に対応する。
オプションの一ソリューションにおいて、エントロピー復号ユニットは具体的に、ビットストリームを解析して、サンプル残差とシンタックス要素とを取得するように構成され、再構成ユニットは具体的に、サンプル残差と現在ピクチャブロックの予測サンプル値に基づいて、現在ピクチャブロックのサンプル値を決定するように構成される。
第10態様によれば、この出願の一実施形態は、インター予測装置(例えば、インター予測ユニット)を提供し、当該インター予測装置は、
現在ピクチャブロックが複数のプリセット条件を満足するかを判定するように構成された判定ユニットと、
上記複数のプリセット条件が満足されるときに、現在ピクチャブロックに対して双方向オプティカルフローBDOF(Bi-directional optical flow、略してBIO又はBDOF)処理を実行して現在ピクチャブロックの予測サンプル値を取得するように構成されたインター予測処理ユニットであり、上記複数のプリセット条件は少なくとも、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することという条件を含む、インター予測処理ユニットと、を含む。現在ピクチャブロックのサイズは、通常、幅及び高さ(短くW×Hと記載される)によって表され、幅及び高さは、サンプル(sample又はpixel)によって測定される。例えば、現在ピクチャブロックのサイズが8×8である場合、1つめの8は、現在ピクチャブロックの幅が8サンプルであることを示し、2つめの8は、現在ピクチャブロックの高さが8サンプルであることを示す。他の一例では、現在ピクチャブロックのサイズが8×16である場合、8は、現在ピクチャブロックの幅が8サンプルであることを示し、16は、現在ピクチャブロックの高さが16サンプルであることを示す。
現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、且つ現在ピクチャブロックの幅Wと高さHとの積が64に等しいときに幅Wが高さHに等しくない、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、且つ現在ピクチャブロックの幅Wが8以上である、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、現在ピクチャブロックの幅Wが8以上であり、且つ現在ピクチャブロックの幅Wと現在ピクチャブロックの高さHとの積が64よりも大きい、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、現在ピクチャブロックの幅Wが8以上であり、且つ現在ピクチャブロックの幅Wと現在ピクチャブロックの高さHとの積が128よりも大きい、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8よりも大きい、ことを含む。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8よりも大きく、且つ現在ピクチャブロックの幅Wが8以上である、ことを含む。
なお、BDOF技術に従って、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて現在ピクチャブロックの予測サンプル値を決定する(又は予測を通じて取得する)かが決定される前に、現在ピクチャブロックのサイズに加えて、別の参照条件が存在してもよい。別の参照条件は、ここで限定されるものではない。理解を容易にするために、以下では、説明のための例を用いる。
条件A: 現在映像シーケンスに対してBDOF技術が使用されることが許されることを指し示すハイレベルシンタックス識別子sps_bdof_enabled_flagが存在する。
条件B: 第1リスト(List1)に対応する予測方向指示情報predFlagL0が1に等しく、且つ第2リスト(list0)に対応する予測方向指示情報predFlagL1が1に等しい。
条件C: 第1リスト(list0)に対応する参照フレームのピクチャオーダカウントPOC_L0、第2リスト(list1)に対応する参照フレームのピクチャオーダカウントPOC_L1、及びその中に現在ピクチャブロックが位置するピクチャのピクチャオーダカウントPOC_Curが、(POC_L0-POC_Cur)×(POC_L1-POC_Cur)<0という関係を満足する。換言すれば、現在ピクチャブロックを含むピクチャが、2つの参照ピクチャの間にある。
条件D: MotionModelIdc[xCb][yCb]が0に等しい。MotionModelIdcは、動き補償に関する動きモデルインデックスである。0に等しいMotionModelIdc[xCb][yCb]は、現在ブロックの動き補償のための動きモデルが並進運動(Translational motion)であることを指し示す。
条件E: merge_subblock_flag[x0][y0]が0に等しく、ここで、0に等しいmerge_subblock_flag[x0][y0]は、現在ピクチャブロックに対してサブブロックマージモードが適用されないことを指し示す。
条件F: sym_mvd_flag[x0][y0]が0に等しい。0に等しいsym_mvd_flag[x0][y0]は、現在ブロックに対してmvd_coding(x0,y0,refList,cpIdx)シンタックス構造が存在することを指し示す。
条件G: bcwIdx[xCb][yCb]が0に等しい。bcwIdxは、現在ピクチャブロックに対する双方向予測重みインデックスを示す。
条件H: cIdxが0に等しい。cIdxは、現在ピクチャブロックの色成分インデックスを表す。
条件I: 現在ピクチャブロックのサイズが第1のプリセットサイズである。
条件J: luma_weight_l0_flag[refIdxL0]及びluma_weight_l1_flag[refIdxL1]の両方が0に等しく、ここで、0に等しいluma_weight_l0_flagは、list0予測のルマコンポーネントに対する重み付け係数が存在しないことを指し示し、0に等しいluma_weight_l1_flagは、list1予測のルマコンポーネントに対する重み付け係数が存在しないことを指し示す。
例えば、条件A乃至Jの全てが満足されるとき、現在ピクチャブロックの予測サンプル値を予測するためにBDOF技術が使用され得ることが決定される。例えば、bdofFlagがtrueに設定される。なお、前述の条件は単なる例であり、別の条件が更に追加されたり、あるいは前述の条件のうちの1つ以上が置き換えられたり、あるいは前述の条件のうちの1つ以上が除去されたりしてもよい。
理解されるべきことには、ここでの現在ピクチャブロック(これは、現在ブロックとも称される)は、処理中のピクチャブロックとして理解され得る。例えば、符号化プロセスにおいて、現在ピクチャブロックは、符号化中のピクチャブロック(encoding block)である。確かなことには、ここでの現在ピクチャブロックは代わりに、処理中のピクチャブロックとして理解されてもよい。例えば、復号プロセスにおいて、現在ピクチャブロックは、復号中のピクチャブロック(decoding block)である。
オプションの一ソリューションにおいて、インター予測処理ユニットは更に、上記複数のプリセット条件のうちの少なくとも1つが満足されないときに、現在ピクチャブロックに対して双方向オプティカルフローBDOF(Bi-directional optical flow、略してBIO又はBDOF)処理を実行することをスキップするように構成される。
理解され得ることには、前述のケースを参考にして、別のケースを更に得ることができ、別のケースもこの出願の保護範囲に入るものである。
理解されるべきことには、この出願のこの実施形態における方法は、ビデオエンコーダ、又は映像符号化機能を持つエレクトロニクス装置によって実行されることができ、あるいは、ビデオデコーダ、又は映像復号機能を持つエレクトロニクス装置によって実行されることができる。例えば、当該方法は具体的に、これらの装置内のインター予測ユニットによって実行され得る。
具体的には、BDOF技術を有効にする又は使用するための、このソリューションにおける条件は、BDOF技術を有効にする又は使用するための、従来技術における条件とは異なり、特に、現在ピクチャブロックのサイズに関する要件が異なる。第1のプリセットサイズを持つ現在ピクチャブロックに対してBDOF技術を使用することで、元のサンプル値にいっそう近い予測サンプル値を得ることができ、また、コーディングの複雑さを適切に制御することができる。これは、符号化/復号の複雑さと予測精度とをある程度バランスさせ、それによりコーディング効率を向上させる。
第11態様によれば、この出願の一実施形態は、映像データ復号装置を提供し、当該装置は、
映像データをビットストリームの形態で格納するように構成されたメモリと、
ビットストリームを復号してシンタックス要素を取得し、シンタックス要素は少なくとも、双方向予測が適用されることを指し示すために使用され、複数のプリセット条件が満足されるときに、現在ピクチャブロックに対して双方向オプティカルフローBDOF処理を実行して現在ピクチャブロックの予測サンプル値を取得する、ように構成されたビデオデコーダであり、上記複数のプリセット条件は少なくとも、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することという条件を含む、ビデオデコーダと、
を含む。
現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、且つ現在ピクチャブロックの幅Wと高さHとの積が64に等しいときに幅Wが高さHに等しくない、ことを含む。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、且つ現在ピクチャブロックの幅Wが8以上である、ことを含む。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、現在ピクチャブロックの幅Wが8以上であり、且つ現在ピクチャブロックの幅Wと現在ピクチャブロックの高さHとの積が64よりも大きい、ことを含む。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、現在ピクチャブロックの幅Wが8以上であり、且つ現在ピクチャブロックの幅Wと現在ピクチャブロックの高さHとの積が128よりも大きい、ことを含む。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8よりも大きい、ことを含む。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8よりも大きく、且つ現在ピクチャブロックの幅Wが8以上である、ことを含む。
第12態様によれば、この出願の一実施形態は、映像データ符号化装置を提供し、当該装置は、
映像データを格納するように構成されたメモリであり、映像データは1つ以上のピクチャブロックを含む、メモリと、
複数のプリセット条件が満足されるときに、現在ピクチャブロックに対して双方向オプティカルフローBDOF処理を実行して現在ピクチャブロックの予測サンプル値を取得するように構成されたビデオエンコーダであり、上記複数のプリセット条件は少なくとも、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することという条件を含む、ビデオエンコーダと、
を含む。
現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、且つ現在ピクチャブロックの幅Wと高さHとの積が64に等しいときに幅Wが高さHに等しくない、ことを含む。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、且つ現在ピクチャブロックの幅Wが8以上である、ことを含む。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、現在ピクチャブロックの幅Wが8以上であり、且つ現在ピクチャブロックの幅Wと現在ピクチャブロックの高さHとの積が64よりも大きい、ことを含む。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、現在ピクチャブロックの幅Wが8以上であり、且つ現在ピクチャブロックの幅Wと現在ピクチャブロックの高さHとの積が128よりも大きい、ことを含む。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8よりも大きい、ことを含む。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8よりも大きく、且つ現在ピクチャブロックの幅Wが8以上である、ことを含む。
ビデオエンコーダは更に、シンタックス要素を送信対象ビットストリームに符号化するように構成され、シンタックス要素は少なくとも、双方向予測が適用されることを指し示すために使用される。
第13態様によれば、この出願の一実施形態は、互いに結合された不揮発性メモリとプロセッサとを含む符号化装置を提供する。プロセッサは、メモリに格納されたプログラムコードを呼び出して、第1態様におけるいずれかの方法の一部又は全てのステップを実行する。
第14態様によれば、この出願の一実施形態は、互いに結合された不揮発性メモリとプロセッサとを含む復号装置を提供する。プロセッサは、メモリに格納されたプログラムコードを呼び出して、第3態様におけるいずれかの方法の一部又は全てのステップを実行する。
第15態様によれば、この出願の一実施形態は、コンピュータ読み取り可能記憶媒体を提供する。当該コンピュータ読み取り可能記憶媒体はプログラムコードを格納し、該プログラムコードは、第1態様におけるいずれかの方法の一部又は全てのステップを実行するために使用される命令を含む。
第16態様によれば、この出願の一実施形態は、コンピュータプログラムプロダクトを提供する。当該コンピュータプログラムプロダクトがコンピュータ上で実行されるとき、該コンピュータは、第1態様におけるいずれかの方法の一部又は全てのステップを実行することを可能にされる。
理解されるべきことには、この出願の第2乃至第16態様における技術的ソリューションは、この出願の第1態様における技術的ソリューションと一致し、これらの態様及び対応する実現可能な実装によって達成される有益な効果は同様である。詳細を再び説明することはしない。
この出願の実施形態又は背景における技術的ソリューションをいっそう明確に説明するために、以下に、この出願の実施形態又は背景を説明するための添付の図面を説明する。
この出願の一実施形態を実装する映像符号化及び復号システム10の一例のブロック図である。
この出願の一実施形態を実装する映像コーディングシステム40の一例のブロック図である。
この出願の一実施形態を実装するエンコーダ20の一構成例のブロック図である。
この出願の一実施形態を実装するデコーダ30の一構成例のブロック図である。
この出願の一実施形態を実装する映像コーディング装置400の一例のブロック図である。
この出願の一実施形態を実装する符号化装置又は復号装置10の他の一例のブロック図である。
この出願の一実施形態に従った現在ピクチャブロック及び参照ブロックの動き情報の概略図である。
この出願の一実施形態に従ったインター予測シナリオの概略図である。
この出願の一実施形態に従ったインター隣接ブロックのシナリオの概略図である。
この出願の一実施形態に従った符号化方法の概略フローチャートである。
この出願の一実施形態を実装する前方参照ピクチャ及び後方参照ピクチャの概略図である。
この出願の一実施形態を実装する動きベクトル精緻化プロセスの概略図である。
この出願の一実施形態に従ったパディングベースの拡張手法のシナリオの概略図である。
この出願の一実施形態に従った復号方法の概略フローチャートである。
この出願の一実施形態に従ったインター予測装置の概略構成図である。
以下、この出願の実施形態における添付の図面を参照して、この出願の実施形態を説明する。以下の説明では、この開示の一部を形成するものであるとともに、この出願の実施形態の特定の態様又はこの出願の実施形態が使用され得る特定の態様を例示によって示すものである添付の図面を参照する。理解されるべきことには、この出願の実施形態は、他の態様で使用されることができ、また、添付の図面に描かれない構造的又は論理的な変更を含むことができる。従って、以下の詳細な説明は、限定的な意味で解釈されるものではなく、この出願の範囲は、添付の請求項によって定められる。例えば、理解されるべきことには、記載される方法と組み合わせて開示される内容は、その方法を実行するように構成される対応する装置又はシステムにも当てはまり得るものであり、その逆もまた然りである。例えば、1つ以上の特定の方法ステップが記載される場合、対応する装置は、たとえそのような1つ以上のユニットが明示的に記載されたり添付の図面に示されたりしていなくても、記載された1つ以上の方法ステップを実行するための、例えば機能ユニットなどの1つ以上のユニット(例えば、該1つ以上のステップを実行する1つのユニット、又は各々がそれら複数のステップのうちの1つ以上を実行する複数のユニット)を含み得る。また、例えば、特定の装置が、例えば機能ユニットなどの1つ以上のユニットに基づいて記載される場合、対応する方法は、たとえそのような1つ以上のステップが明示的に記載されたり添付の図面に示されたりしていなくても、該1つ以上のユニットの機能を実行するのに使用される1つのステップ(例えば、該1つ以上のユニットの機能を実行する1つのステップ、又は各々が複数のユニットのうちの1つ以上の機能を実行するのに使用される複数のステップ)を含み得る。さらに、理解されるべきことには、この明細書に記載される様々な実施形態例及び/又は態様の特徴は、具体的に別段の断りがない限り、互いに組み合わされてもよい。
この出願の実施形態における技術的ソリューションは、既存の映像コーディング標準(例えば、H.264及びHEVCなどの標準)に適用され得るだけでなく、将来の映像コーディング標準(例えば、H.266標準)にも適用され得る。この出願の実装において使用される用語は、単にこの出願の特定の実施形態を説明することを意図したものであり、この出願を限定することを意図したものではない。以下にて先ず、この出願の実施形態において関係する概念を簡単に説明する。
映像コーディングは、通常、映像又は映像シーケンスを構成する一連のピクチャを処理することを指す。映像コーディングの分野において、用語“ピクチャ(picture)”、“フレーム(frame)”及び“画像(image)”は、同義語として使用され得る。この明細書で使用される映像コーディングは、映像符号化及び映像復号を含む。映像符号化は、ソース側で実行され、通常、より効率的なストレージ及び/又は伝送のために、元の映像ピクチャを(例えば、圧縮することによって)処理して、映像ピクチャを表すためのデータの量を減らすことを含む。映像復号は、デスティネーション側で実行され、通常、映像ピクチャを再構成するために、エンコーダに対して逆の処理を含む。実施形態における映像ピクチャの“コーディング”は、映像シーケンスの“符号化”又は“復号”として理解されるべきである。符号化部分と復号部分との組み合わせも、コーディング(符号化及び復号)と呼ばれる。
映像シーケンスは、一連のピクチャ(picture)を含み、ピクチャは更にスライス(slice)に分割され、スライスは更にブロック(block)に分割される。映像コーディングは、ブロックによって行われる。一部の新しい映像コーディング標準では、“ブロック”という概念が更に拡張されている。例えば、マクロブロック(macroblock、MB)がH.264標準で導入されている。マクロブロックは更に、予測コーディングに用いられることが可能な複数の予測ブロックに分割され得る(partition)。ハイエフィシェンシビデオコーディング(high efficiency video coding、HEVC)標準では、例えば“コーディングユニット”(coding unit、CU),“予測ユニット”(prediction、PU)、及び“変換ユニット”(transform unit、TU)などの基本概念が使用されている。複数のブロックユニットが、機能分割を通じて得られ、新しいツリーベースの構造を用いることによって記述される。例えば、CUは、四分木に基づいていっそう小さいCUに分割されることができ、該いっそう小さいCUが更に分割されて、四分木構造を生成し得る。CUは、コーディングされるピクチャを分割及び符号化することの基本単位である。PU及びTUも同様のツリー構造を持つ。PUは予測ブロックに対応することができ、予測コーディングに関する基本単位である。CUは、ある分割モードにて複数のPUに更に分割される。TUは変換ブロックに対応することができ、予測残差を変換するのに使用される基本単位である。しかしながら、実際のところは、CU、PU、及びTUはどれも概念上はブロック(又はピクチャブロック)である。
例えば、HEVCでは、CTUが、コーディングツリーとして表される四分木構造を用いることによって複数のCUに分割される。ピクチャ領域をインターピクチャ(時間)予測を通じて符号化するか、それともイントラピクチャ(空間)予測を通じて符号化するかの決定が、CUレベルで行われる。各CUは更に、PU分割タイプに基づいて、1つ、2つ、又は4つのPUに分割され得る。1つのPU内では、同じ予測プロセスが適用され、関係する情報がPUベースでデコーダに伝送される。PU分割タイプに基づいて予測プロセスを適用することによって残差ブロックを得た後、CUは、CUに使用されたコーディングツリーに似た別の四分木構造に基づいて変換ユニット(transform unit、TU)に分割され得る。映像圧縮技術の最近の開発では、四分木プラス二分木(quadtree plus binary tree、QTBT)パーティションフレームが、コーディングブロックを分割するのに使用されている。QTBTブロック構造では、CUは正方形又は長方形であるとし得る。
この明細書では、説明及び理解を容易にするために、現在ピクチャ内の処理対象ピクチャブロックを、現在ブロック又は処理対象ピクチャブロックと称することがある。例えば、符号化において、ピクチャブロックは符号化中のブロックであり、復号において、ピクチャブロックは復号中のブロックである。現在ブロックを予測するのに使用される参照ピクチャ内の復号ピクチャブロックは、参照ブロックと称される。具体的には、参照ブロックは、現在ブロックに対して参照信号を提供するブロックであり、参照信号は、ピクチャブロック内のサンプル値を表す。参照ピクチャ内の、現在ブロックに対して予測信号を提供するブロックは、予測ブロックと称され得る。予測信号は、予測ブロック内のピクセル値、サンプリング値、又はサンプリング信号を表す。例えば、複数の参照ブロックが検討された後、最適な参照ブロックが発見される。その最適な参照ブロックが、現在ブロックに対して予測を提供し、そのブロックが予測ブロックと称される。
可逆映像コーディングの場合、元の映像ピクチャを再構成することができる。具体的には、(ストレージ又は伝送中に伝送損失又は他のデータ損失が発生しないと仮定して、)再構成映像ピクチャが元の映像ピクチャと同じ品質を持つ。非可逆映像コーディングの場合、映像ピクチャを表すのに必要とされるデータ量を減らすために、例えば量子化を通じて更なる圧縮が行われ、デコーダ側で映像ピクチャを完全に再構成することはできない。具体的には、再構成映像ピクチャの品質は、元の映像ピクチャの品質よりも低い又は劣る。
一部のH.261映像コーディング標準は、“非可逆ハイブリッド映像コーディング”(具体的には、サンプルドメインでの空間及び時間予測が、変換ドメインで量子化を適用するための2D変換コーディングと組み合わされる)に関するものである。映像シーケンス内の各ピクチャは、通常、一組の重なり合わないブロックに分割され、コーディングは通常、ブロックレベルで実行される。具体的には、エンコーダ側で、通常、映像がブロック(映像ブロック)レベルで処理され、すなわち、符号化される。例えば、空間(イントラピクチャ)予測及び時間(インターピクチャ)予測を通じて予測ブロックが生成され、該予測ブロックが現在ブロック(処理中又は処理対象のブロック)から差し引かれることで残差ブロックが得られ、該残差ブロックが変換ドメインで変換され量子化されて、伝送(圧縮)されることになるデータの量が減少する。デコーダ側で、符号化されたブロック又は圧縮されたブロックに、エンコーダに対して逆の処理部分が適用されて、表現のために現在ブロックが再構成される。さらに、エンコーダは、後続ブロックを処理すなわち符号化するためにエンコーダとデコーダとが同じ予測(例えば、イントラ予測及びインター予測)及び/又は再構成を生成するよう、デコーダ処理ループを複製する。
以下、この出願の実施形態が適用されるシステムアーキテクチャを説明する。図1Aは、この出願の実施形態が適用される映像符号化及び復号システム10の一例の概略ブロック図である。図1Aに示すように、映像符号化及び復号システム10は、ソース装置12及びデスティネーション装置14を含み得る。ソース装置12は符号化映像データを生成し、それ故に、ソース装置12は映像符号化装置として参照され得る。デスティネーション装置14は、ソース装置12によって生成された符号化映像データを復号することができ、それ故に、デスティネーション装置14は、映像復号装置として参照され得る。様々な実装ソリューションにおいて、ソース装置12、デスティネーション装置14、又はソース装置12及びデスティネーション装置14の双方が、1つ以上のプロセッサと、該1つ以上のプロセッサに結合されたメモリとを含み得る。メモリは、以下に限られないが、RAM、ROM、EEPROM、フラッシュメモリ、又はこの明細書で説明されるように、コンピュータにアクセス可能な命令又はデータ構造の形態で所望のプログラムコードを格納するのに使用されることが可能な任意の他の媒体を含み得る。ソース装置12及びデスティネーション装置14は、デスクトップコンピュータ、モバイルコンピューティング装置、ノートブック(例えば、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、例えば所謂“スマート”フォンなどの電話ハンドセット、テレビ、カメラ、表示装置、デジタルメディアプレーヤ、ビデオゲームコンソール、車載コンピュータ、無線通信装置、又はこれらに類するものを含め、様々な装置を含み得る。
図1Aはソース装置12及びデスティネーション装置14を別々の装置として描いているが、装置実施形態は代わりに、ソース装置12及びデスティネーション装置14の両方、又はソース装置12及びデスティネーション装置14の両方の機能、すなわち、ソース装置12若しくは対応する機能とデスティネーション装置14若しくは対応する機能、を含んでもよい。そのような一実施形態において、ソース装置12若しくは対応する機能、及びデスティネーション装置14若しくは対応する機能は、同一のハードウェア及び/又はソフトウェア、別々のハードウェア及び/又はソフトウェア、又はこれらの何らかの組み合わせを用いることによって実装され得る。
ソース装置12とデスティネーション装置14との間の通信接続は、リンク13を介して実装され得る。デスティネーション装置14は、リンク13を介してソース装置12から符号化映像データを受信し得る。リンク13は、符号化映像データをソース装置12からデスティネーション装置14へ移動させることができる1つ以上の媒体又は装置を含み得る。一例において、リンク13は、ソース装置12が符号化映像データをリアルタイムにデスティネーション装置14に直接送信することを可能にする1つ以上の通信媒体を含み得る。この例において、ソース装置12は、通信標準(例えば、無線通信プロトコル)に従って符号化映像データを変調することができ、また、変調した映像データをデスティネーション装置14に送信することができる。上記1つ以上の通信媒体は、例えば無線周波数(RF)スペクトル又は1つ以上の物理的な伝送ケーブルといった、無線通信媒体及び/又は有線通信媒体を含み得る。上記1つ以上の通信媒体は、パケットベースのネットワークの一部であってもよく、パケットベースのネットワークは、例えば、ローカルエリアネットワーク、ワイドエリアネットワーク、又はグローバルネットワーク(例えば、インターネット)である。上記1つ以上の通信媒体は、ソース装置12からデスティネーション装置14への通信を支援するルータ、交換機、基地局、又は他の装置を含んでもよい。
ソース装置12はエンコーダ20を含む。オプションで、ソース装置12は更に、ピクチャ源16、ピクチャプリプロセッサ18、及び通信インタフェース22を含み得る。特定の一実装形態において、エンコーダ20、ピクチャ源16、ピクチャプリプロセッサ18、及び通信インタフェース22は、ソース装置12内のハードウェアコンポーネントであってもよいし、あるいはソース装置12内のソフトウェアプログラムであってもよい。以下の通り、説明を別々に提供する。
ピクチャ源16は、例えば実世界のピクチャをキャプチャするように構成された任意のタイプのピクチャキャプチャデバイス、及び/又は、例えばコンピュータアニメーションピクチャを生成するように構成されたコンピュータグラフィックスプロセッサといった、ピクチャ若しくはコメント(スクリーンコンテンツ符号化のためのものであり、スクリーン上の一部のテキストも符号化対象ピクチャ若しくは画像の一部と考えられる)を生成する任意のタイプのデバイス、又は、実世界のピクチャ若しくはコンピュータアニメーションピクチャ(例えば、スクリーンコンテンツ若しくは仮想現実(virtual reality、VR)ピクチャ)及び/又はこれらの任意の組み合わせ(例えば、拡張現実(augmented reality、AR)ピクチャ)を取得及び/又は提供するように構成された任意のタイプのデバイスを含むことができ、あるいは、それであることができる。ピクチャ源16は、ピクチャをキャプチャするように構成されたカメラ又はピクチャを格納するように構成されたメモリであってもよい。ピクチャ源16は更に、先行してキャプチャ又は生成されたピクチャがそれを介して格納される及び/又はピクチャがそれを介して取得又は受信される任意のタイプの(内部又は外部)インタフェースを含み得る。ピクチャ源16がカメラである場合、ピクチャ源16は、例えば、ローカルなカメラ、又はソース装置に集積された集積カメラとし得る。ピクチャ源16がメモリである場合、ピクチャ源16は、ローカルなメモリ、又は、例えば、ソース装置に集積された集積メモリとし得る。ピクチャ源16がインタフェースを含む場合、インタフェースは、例えば、外部映像源からピクチャを受信するための外部インタフェースとし得る。外部映像源は、例えば、カメラ、外部メモリ、又は外部ピクチャ生成装置などの外部ピクチャキャプチャリング装置である。外部ピクチャ生成装置は、例えば、外部コンピュータグラフィックスプロセッサ、コンピュータ、又はサーバである。インタフェースは、例えば、何らかの独自の又は標準化されたインタフェースプロトコルに従った有線若しくは無線インタフェース又は光インタフェースといった、任意のタイプのインタフェースとし得る。
ピクチャは、ピクチャエレメント(picture element)の二次元アレイ又はマトリクスとみなされ得る。アレイ内のピクチャエレメントはサンプルとも称され得る。アレイ又はピクチャの水平及び垂直方向(又は軸)のサンプルの数が、ピクチャのサイズ及び/又は解像度を定める。色の表現のため、通常、3つのカラーコンポーネントが採用され、具体的には、ピクチャは、3つのサンプルアレイとして表現されることができ、あるいは、それらを含むことができる。例えば、RBGフォーマット又は色空間では、ピクチャは対応する赤、緑、及び青のサンプルアレイを含む。しかしながら、映像コーディングにおいて、各サンプルは、通常、ルミナンス/クロミナンスフォーマット又は色空間で表現される。例えば、YUVフォーマットのピクチャは、Yによって示されるルミナンスコンポーネント(代わりにLによって示されるときもある)と、U及びVによって示される2つのクロミナンスコンポーネントとを含む。ルミナンス(ルマ(luma))コンポーネントYは、輝度又はグレーレベル強度(例えば、グレースケールピクチャではどちらも同じである)を表し、2つのクロミナンス(クロマ(chroma))コンポーネントU及びVは、色度又は色情報コンポーネントを表す。対応して、YUVフォーマットのピクチャは、ルミナンスサンプル値(Y)のルミナンスサンプルアレイと、クロミナンス値(U及びV)の2つのクロミナンスサンプルアレイとを含む。RGBフォーマットのピクチャがYUVフォーマットに変換される(transformed又はconverted)ことがあり、その逆もまた然りである。このプロセスは色変換(color conversion又はtransformation)とも称される。ピクチャがモノクロである場合、そのピクチャはルミナンスサンプルアレイのみを含み得る。この出願のこの実施形態において、ピクチャ源16によってピクチャプロセッサに送られるピクチャを、ロー(raw)ピクチャデータ17と称することもある。
ピクチャプリプロセッサ18は、ローピクチャデータ17を受信してローピクチャデータ17に対して前処理を行うことで、前処理されたピクチャ19又は前処理されたピクチャデータ19を得るように構成される。例えば、ピクチャプリプロセッサ18によって実行される前処理は、トリミング、カラーフォーマット変換(例えば、RGBフォーマットからYUVフォーマットへ)、色補正、又はノイズ除去を含み得る。
エンコーダ20(ビデオエンコーダ20とも称する)は、前処理されたピクチャデータ19を受信し、前処理されたピクチャデータ19を関連する予測モード(例えば、この明細書の実施形態における予測モードなど)で処理することで、符号化ピクチャデータ21を提供するように構成される(エンコーダ20の構成の詳細については、図2、図4、又は図5に基づいて更に後述する)。一部の実施形態において、エンコーダ20は、以下に記載される様々な実施形態を実行して、この出願に記載されるクロマブロック予測方法のエンコーダ側適用を実施するように構成され得る。
通信インタフェース22は、符号化ピクチャデータ21を受信し、符号化ピクチャデータ21を、ストレージ又は直接的な再構成のために、リンク13を介してデスティネーション装置14又は何らかの他の装置(例えば、メモリ)に送信するように構成され得る。該他の装置は、復号又はストレージに使用される任意の装置とし得る。通信インタフェース22は、例えば、符号化ピクチャデータ21を、例えばデータパケットをいった、リンク13上での伝送に適したフォーマットへとカプセル化するように構成され得る。
デスティネーション装置14はデコーダ30を含む。オプションで、デスティネーション装置14は更に、通信インタフェース28、ピクチャポストプロセッサ32、及び表示装置34を含み得る。以下の通り、説明を別々に提供する。
通信インタフェース28は、符号化ピクチャデータ21をソース装置12又は何らかの他のソースから受信するように構成され得る。該何らかの他のソースは、例えば、ストレージ装置である。該ストレージ装置は、例えば、符号化ピクチャデータストレージ装置である。通信インタフェース28は、ソース装置12とデスティネーション装置14との間のリンク13を介して、又は任意のタイプのネットワークを介して、符号化ピクチャデータ21を送信又は受信するように構成され得る。リンク13は、例えば、直接有線又は無線接続である。上記任意のタイプのネットワークは、例えば、有線若しくは無線ネットワーク又はこれらの任意の組み合わせ、又は任意のタイプの私設若しくは公衆ネットワーク又はこれらの任意の組み合わせである。通信インタフェース28は、例えば、通信インタフェース22を介して伝送されたデータパケットのカプセル化を解いて、符号化ピクチャデータ21を得るように構成され得る。
通信インタフェース28及び通信インタフェース22はどちらも、一方向通信インタフェース又は双方向通信インタフェースとして構成されることができ、例えば、接続を確立するためにメッセージを送受信するとともに、通信リンク及び/又は例えば符号化ピクチャデータ伝送などのデータ伝送に関係する何らかの他の情報を確認及び交換するように構成され得る。
デコーダ30は、符号化ピクチャデータ21を受信し、復号ピクチャデータ31又は復号ピクチャ31を提供するように構成される(デコーダ30の構成の詳細については、図3、図4、又は図5に基づいて更に後述する)。一部の実施形態において、デコーダ30は、以下に記載される様々な実施形態を実行して、この出願に記載されるクロマブロック予測方法のデコーダ側適用を実施するように構成され得る。
ピクチャポストプロセッサ32は、復号ピクチャデータ31(再構成ピクチャデータとも称する)を後処理して、後処理されたピクチャデータ33を得るように構成される。ピクチャポストプロセッサ32によって実行される後処理は、カラーフォーマット変換(例えば、YUVフォーマットからRGBフォーマットへ)、色補正、トリミング、リサンプリング、又は何らかの他の処理を含み得る。ピクチャポストプロセッサ32は更に、後処理されたピクチャデータ33を表示装置34に送信するように構成され得る。
表示装置34は、後処理されたピクチャデータ33を受信して、ピクチャを、例えばユーザ又は視聴者に表示するように構成される。表示装置34は、例えば一体化された又は外付けのディスプレイ又はモニタなど、再構成ピクチャを提示するための任意のタイプのディスプレイとすることができ、あるいは、それを含むことができる。例えば、ディスプレイは、液晶ディスプレイ(liquid crystal display、LCD)、有機発光ダイオード(organic light emitting diode、OLED)ディスプレイ、プラズマディスプレイ、プロジェクタ、マイクロLEDディスプレイ、液晶・オン・シリコン(liquid crystal on silicon、LCoS)、デジタル光プロセッサ(digital light processor、DLP)、又は任意のタイプの他のディスプレイを含み得る。
図1Aは、ソース装置12及びデスティネーション装置14を別々の装置として描いているが、装置実施形態は代わりに、ソース装置12及びデスティネーション装置14の両方、又はソース装置12及びデスティネーション装置14の両方の機能、すなわち、ソース装置12若しくは対応する機能とデスティネーション装置14若しくは対応する機能、を含んでもよい。そのような一実施形態において、ソース装置12若しくは対応する機能、及びデスティネーション装置14若しくは対応する機能は、同一のハードウェア及び/又はソフトウェア、別々のハードウェア及び/又はソフトウェア、又はこれらの何らかの組み合わせを用いることによって実装され得る。
これらの説明に基づいて当業者に明らかになるように、図1Aに示したソース装置12及び/又はデスティネーション装置14の異なるユニット又は機能の存在及び(厳密な)機能分割は、実際の装置及び用途に応じて変わり得る。ソース装置12及びデスティネーション装置14は、例えば、ノートブック若しくはラップトップコンピュータ、携帯電話、スマートフォン、タブレット若しくはタブレットコンピュータ、ビデオカメラ、デスクトップコンピュータ、セットトップボックス、テレビ、カメラ、車載装置、表示装置、デジタルメディアプレーヤ、ビデオゲームコンソール、映像ストリーミング装置(例えばコンテンツサービスサーバ又はコンテンツ配信サーバなど)、放送受信器装置、又は放送送信器装置といった、任意のタイプのハンドヘルド装置又は固定装置を含め、広範な装置のうちのいずれを含んでもよく、また、何らかの種類のオペレーティングシステムを使用してもよいし使用しなくてもよい。
エンコーダ20及びデコーダ30は各々、例えば、1つ以上のマイクロプロセッサ、デジタル信号プロセッサ(digital signal processor、DSP)、特定用途向け集積回路(application-specific integrated circuit、ASIC)、フィールドプログラマブルゲートアレイ(field-programmable gate array、FPGA)、ディスクリートロジック、ハードウェア、又はこれらの任意の組み合わせといった、様々な好適な回路のうちのいずれかとして実装され得る。ソフトウェアを用いることによって技術が部分的に実装される場合、装置は、ソフトウェア命令を好適な非一時的コンピュータ読み取り可能記憶媒体に格納し得るとともに、例えば1つ以上のプロセッサなどのハードウェアを用いることによって該命令を実行することで、この開示の技術を実行し得る。上述の内容(ハードウェア、ソフトウェア、ハードウェアとソフトウェアとの組み合わせ、及びこれらに類するものを含む)のいずれも、1つ以上のプロセッサとしてみなされてもよい。
一部のケースにおいて、図1Aに示した映像符号化及び復号システム10は単なる一例に過ぎず、この出願の技術は、符号化装置と復号装置との間に何らかのデータ通信を必ずしも含むものではない映像コーディング設定(例えば、映像符号化又は映像復号)に適用されてもよい。他の一例において、データは、ローカルメモリから取り出されたり、ネットワーク上でストリーミングされたり、などされることができる。映像符号化装置は、データを符号化して該データをメモリに格納することができ、及び/又は映像復号装置は、メモリからデータを取り出して該データを復号することができる。一部の例では、データを符号化して該データをメモリに格納する及び/又はメモリからデータを取り出して該データを復号するだけであって互いに通信しない装置が、符号化及び/又は復号を実行する。
図1Bは、一実施形態例に従った、図2のエンコーダ20及び/又は図3のデコーダ30を含む映像コーディングシステム40の一例の説明図である。映像コーディングシステム40は、この出願の実施形態における様々な技術の組み合わせを実装することができる。図示した実装において、映像コーディングシステム40は、撮像装置41、エンコーダ20、デコーダ30(及び/又は、処理回路46の論理回路47によって実装されるビデオエンコーダ/デコーダ)、アンテナ42、1つ以上のプロセッサ43、1つ以上のメモリ44、及び/又は表示装置45を含み得る。
図1Bに示すように、撮像装置41、アンテナ42、処理回路46、論理回路47、エンコーダ20、デコーダ30、プロセッサ43、メモリ44、及び/又は表示装置45は、互いに通信することができる。説明するように、映像コーディングシステム40は、エンコーダ20及びデコーダ30を有して示されているが、映像コーディングシステム40は、異なる例ではエンコーダ20のみ又はデコーダ30のみを含んでいてもよい。
一部の例において、アンテナ42は、映像データの符号化ビットストリームを送信又は受信するように構成され得る。さらに、一部の例において、表示装置45は、映像データを提示するように構成され得る。一部の例において、論理回路47は、処理回路46によって実装され得る。処理回路46は、特定用途向け集積回路(application-specific integrated circuit、ASIC)ロジック、グラフィックスプロセッサ、汎用プロセッサ、又はこれらに類するものを含み得る。映像コーディングシステム40はまた、オプションのプロセッサ43を含み得る。オプションのプロセッサ43は、同様に、特定用途向け集積回路(application-specific integrated circuit、ASIC)ロジック、グラフィックスプロセッサ、汎用プロセッサ、又はこれらに類するものを含み得る。一部の例において、論理回路47は、例えば映像コーディング用の専用ハードウェアといったハードウェアによって実装されてもよい。プロセッサ43は、汎用ソフトウェア、オペレーティングシステム、又はこれらに類するものによって実装されてもよい。さらに、メモリ44は、例えば、揮発性メモリ(例えば、スタティックランダムアクセスメモリ(Static Random Access Memory、SRAM)若しくはダイナミックランダムアクセスメモリ(Dynamic Random Access Memory、DRAM))又は不揮発性メモリ(例えば、フラッシュメモリ)といった、任意のタイプのメモリとし得る。非限定的な一例において、メモリ44は、キャッシュメモリによって実装され得る。一部の例において、論理回路47は、メモリ44にアクセスし得る(例えば、ピクチャバッファを実装するために)。他の例において、論理回路47及び/又は処理回路46は、ピクチャバッファを実装するためのメモリ(例えば、キャッシュ)を含んでいてもよい。
一部の例において、論理回路を用いることによって実装されるビデオエンコーダ20は、ピクチャバッファ(これは、例えば、処理回路46又はメモリ44によって実装される)及びグラフィックス処理ユニット(これは、例えば、処理回路46によって実装される)を含み得る。グラフィックス処理ユニットは、ピクチャバッファに通信可能に結合され得る。グラフィックス処理ユニットは、図2を参照して説明される様々なモジュール及び/又はこの明細書中で説明される何らかの他のエンコーダシステム若しくはサブシステムを実装するために、論理回路47によって実装されたエンコーダ20を含み得る。論理回路は、この明細書中で説明される様々な動作を実行するように構成され得る。
一部の例において、デコーダ30は、図3のデコーダ30を参照して説明される様々なモジュール及び/又はこの明細書中で説明される何らかの他のデコーダシステム若しくはサブシステムを実装するよう、同様にして論理回路47によって実装され得る。一部の例において、論理回路を用いることによって実装されるデコーダ30は、ピクチャバッファ(これは処理回路46又はメモリ44によって実装される)及びグラフィックス処理ユニット(これは、例えば、処理回路46によって実装される)を含み得る。グラフィックス処理ユニットは、ピクチャバッファに通信可能に結合され得る。グラフィックス処理ユニットは、図3を参照して説明される様々なモジュール及び/又はこの明細書中で説明される何らかの他のデコーダシステム若しくはサブシステムを実装するために、論理回路47によって実装されたデコーダ30を含み得る。
一部の例において、アンテナ42は、映像データの符号化ビットストリームを受信するように構成され得る。説明するように、符号化ビットストリームは、例えば、コーディング分割(例えば、変換係数又は量子化された変換係数、オプションのインジケータ(説明する)、及び/又はコーディング分割を定めるデータ)に関係するデータといった、映像フレーム符号化に関係し且つこの明細書中で説明されるデータ、インジケータ、インデックス値、モード選択データ、又はこれらに類するものを含み得る。映像コーディングシステム40は更に、アンテナ42に結合され且つ符号化ビットストリームを復号するように構成されたデコーダ30を含み得る。表示装置45は、映像フレームを提示するように構成される。
理解されるべきことには、この出願のこの実施形態において、エンコーダ20を参照して説明した例に対し、デコーダ30は逆プロセスを実行するように構成され得る。シンタックス要素をシグナリングすることに関して、デコーダ30は、そのようなシンタックス要素を受信して解析し、それに対応して、関係する映像データを復号するように構成され得る。一部の例において、エンコーダ20は、シンタックス要素を符号化映像ビットストリームにエントロピー符号化し得る。このような例において、デコーダ30は、シンタックス要素を解析し、それに対応して、関係する映像データを復号し得る。
なお、この出願の実施形態に記載される映像ピクチャ符号化方法はエンコーダ20上で実行され、この出願の実施形態に記載される映像ピクチャ復号方法はデコーダ30上で実行される。この出願の実施形態におけるエンコーダ20及びデコーダ30は、例えば、H.263、H.264、HEVC、MPEG-2、MPEG-4、VP8、又はVP9などの映像標準プロトコル、又は次世代映像標準プロトコル(例えばH.266など)に対応するエンコーダ/デコーダとし得る。
図2は、この出願の一実施形態を実装するように構成されたエンコーダ20の一例の概略的/概念的なブロック図である。図2の例において、エンコーダ20は、残差計算ユニット204、変換処理ユニット206、量子化ユニット208、逆量子化ユニット210、逆変換処理ユニット212、再構成ユニット214、バッファ216、ループフィルタ220、復号ピクチャバッファ(decoded picture buffer、DPB)230、予測処理ユニット260、及びエントロピー符号化ユニット270を含んでいる。予測処理ユニット260は、インター予測ユニット244、イントラ予測ユニット254、及びモード選択ユニット262を含み得る。インター予測ユニット244は、動き推定ユニット及び動き補償ユニット(図には示さず)を含み得る。図2に示すエンコーダ20は、ハイブリッドビデオエンコーダ、又はハイブリッドビデオコーデックに基づくビデオエンコーダとも称され得る。
例えば、残差計算ユニット204、変換処理ユニット206、量子化ユニット208、予測処理ユニット260、及びエントロピー符号化ユニット270は、エンコーダ20の前方信号パスを形成し、それに対し、例えば、逆量子化ユニット210、逆変換処理ユニット212、再構成ユニット214、バッファ216、ループフィルタ220、復号ピクチャバッファ(decoded picture buffer、DPB)230、及び予測処理ユニット260は、エンコーダの反転信号パスを形成する。エンコーダの反転信号パスは、デコーダ(図3のデコーダ30を参照)の信号パスに対応する。
エンコーダ20は、例えば入力202を介して、例えば映像又は映像シーケンスを形成する一連のピクチャ内のピクチャといった、ピクチャ201、又はピクチャ201のピクチャブロック203を受信する。ピクチャブロック203は、現在ピクチャブロック又は符号化対象ピクチャブロックと呼ばれることもあり、ピクチャ201は、現在ピクチャ又は符号化対象ピクチャと呼ばれることもある(特に映像コーディングにおいて、現在ピクチャを、例えば、同一の映像シーケンス、すなわち、現在ピクチャも含む映像シーケンスの中の以前に符号化及び/又は復号されたピクチャといった、他のピクチャから区別するため)。
エンコーダ20の一実施形態は、ピクチャ201を例えばピクチャブロック203などの複数のブロックに分割するように構成された分割ユニット(図2には描いていない)を含み得る。ピクチャ201は、通常、重なり合わない複数のブロックに分割される。分割ユニットは、映像シーケンス内の全てのピクチャに対して同じブロックサイズと、該ブロックサイズを定める対応するグリッドとを使用するように構成されてもよいし、あるいは、ピクチャ、又はサブセット、又はグループ・オブ・ピクチャの間でブロックサイズを変化させて、各ピクチャを対応するブロックに分割してもよい。
一例において、エンコーダ20の予測処理ユニット260は、上述の分割技術の任意の組み合わせを実行するように構成され得る。
ピクチャブロック203のサイズはピクチャ201のサイズより小さいものの、ピクチャ201のように、ピクチャブロック203も、サンプル値を持つサンプルの二次元アレイ又はマトリクスであり、あるいは該二次元アレイ又はマトリクスとみなされることができる。換言すれば、ピクチャブロック203は、例えば、1つのサンプルアレイ(例えば、モノクロピクチャ201の場合のルマアレイ)、3つのサンプルアレイ(例えば、カラーピクチャの場合の1つのルマアレイと2つのクロマアレイ)、又は、適用されるカラーフォーマットに応じた何らかの他の数及び/又はタイプのアレイを含み得る。ピクチャブロック203の水平及び垂直方向(又は軸)のサンプルの数が、ピクチャブロック203のサイズを定める。
図2に示すエンコーダ20は、ピクチャ201をブロックごとに符号化するように構成され、例えば、各ピクチャブロック203に対して符号化及び予測を実行するように構成される。
残差計算ユニット204は、ピクチャブロック203及び予測ブロック265(予測ブロック265についての更なる詳細は後で提供する)に基づいて残差ブロック205を計算するように構成され、例えば、サンプルごとに(ピクセルごとに)ピクチャブロック203のサンプル値から予測ブロック265のサンプル値を差し引くことによって、サンプルドメインにおける残差ブロック205を得るように構成される。
変換処理ユニット206は、例えば離散コサイン変換(discrete cosine transform、DCT)又は離散サイン変換(discrete sine transform、DST)といった変換を残差ブロック205のサンプル値に適用して、変換ドメインにおける変換係数207を得るように構成される。変換係数207は、変換残差係数と呼ばれることもあり、変換ドメインにおける残差ブロック205を表す。
変換処理ユニット206は、例えばHEVC/H.265に規定されている変換などの、DCT/DSTの整数近似を適用するように構成されてもよい。直交DCT変換と比較して、このような整数近似は、通常、あるファクタに基づいてスケーリングされる。順変換及び逆変換を用いることによって処理される残差ブロックのノルムを保存するために、変換プロセスの一部として追加のスケールファクタが適用される。該スケールファクタは通常、例えば、シフト演算のために該スケールファクタは2のべき乗であること、変換係数のビット深さ、又は精度と実装コストとの間のトレードオフといった、幾つかの制約に基づいて選択される。例えば、を用いることによって、デコーダ30側での例えば逆変換処理ユニット212による逆変換(及びエンコーダ20側での例えば逆変換処理ユニット212による対応する逆変換)に対して、特定のスケールファクタが指定され、それに対応して、エンコーダ20側での変換処理ユニット206による順変換に対して、対応するスケールファクタが指定され得る。
量子化ユニット208は、例えばスカラー量子化又はベクトル量子化を適用することによって、変換係数207を量子化して、量子化された変換係数209を得るように構成される。量子化された変換係数209は、量子化された残差係数209と呼ばれることもある。量子化プロセスは、変換係数207の一部の又は全てに関するビット深さを減少させ得る。例えば、nはmより大きいとして、nビット変換係数が量子化においてmビット変換係数に切り捨てられ得る。量子化の度合いは、量子化パラメータ(quantization parameter、QP)を調整することによって変更され得る。例えば、スカラー量子化では、より細かい又はより粗い量子化を達成するために複数の異なるスケールが適用され得る。より小さい量子化ステップサイズは、より細かい量子化に対応し、より大きい量子化ステップサイズは、より粗い量子化に対応する。量子化パラメータ(quantization parameter、QP)によって、適切な量子化ステップサイズが指し示され得る。例えば、量子化パラメータは、所定セットの適切な量子化ステップサイズに対するインデックスとし得る。例えば、より小さい量子化パラメータがより細かい量子化(より小さい量子化ステップサイズ)に対応するとともに、より大きい量子化パラメータがより粗い量子化(より大きい量子化ステップサイズ)に対応することができ、その逆もまた然りである。量子化は、量子化ステップサイズによる除算と、対応する量子化又は例えば逆量子化ユニット210によって実行される逆量子化とを含むことができ、あるいは、量子化ステップサイズによる乗算を含んでもよい。例えばHEVCなどの一部の標準に従った実施形態では、量子化パラメータを用いて量子化ステップサイズを決定し得る。一般に、量子化ステップサイズは、除算を含む式の不動点近似を用いることによって、量子化パラメータに基づいて計算され得る。残差ブロックのノルムを復元するために、更なるスケールファクタが量子化及び量子化解除に導入されてもよく、残差ブロックのノルムは、量子化ステップサイズ及び量子化パラメータに関する式の不動点近似に使用されるスケールのために変更され得るものである。一実装例において、逆変換のスケールが量子化解除のスケールと結合されてもよい。あるいは、カスタマイズされた量子化テーブルを使用し、それをエンコーダからデコーダへ例えばビットストリーム内でシグナリングしてもよい。量子化は、損失を伴う演算であり、より大きい量子化ステップは、より大きい損失を示す。
逆量子化ユニット210は、量子化された係数に量子化ユニット208の逆量子化を適用して、量子化解除された係数211を得るように構成され、例えば、量子化ユニット208と同じ量子化ステップサイズに基づいて又はそれを用いて、量子化ユニット208によって適用される量子化スキームの逆を適用するように構成される。量子化解除された係数211は、量子化解除された残差係数211と呼ばれることもあり、変換係数207に対応し得るが、量子化解除された係数211は、通常、量子化によって生じる損失のために変換係数とは異なる。
逆変換処理ユニット212は、例えば逆離散コサイン変換(discrete cosine transform、DCT)又は逆離散サイン変換(discrete sine transform、DST)といった、変換処理ユニット206によって適用される変換の逆変換を適用して、サンプルドメインにおける逆変換ブロック213を得るように構成される。逆変換ブロック213は、逆変換量子化解除ブロック213又は逆変換残差ブロック213と呼ばれることもある。
再構成ユニット214(例えば、加算器214)は、例えば再構成残差ブロック213のサンプル値と予測ブロック265のサンプル値とを足し合わせることによって、逆変換ブロック213(すなわち、再構成残差ブロック213)を予測ブロック265に足し合わせて、サンプルドメインにおける再構成ブロック215を得るように構成される。
オプションで、例えばイントラ予測のために、再構成ブロック215及び対応するサンプル値をバッファリング又は格納するように、例えばラインバッファ216のバッファユニット216(略して“バッファ”216)が構成される。他の実施形態において、エンコーダは、例えばイントラ予測といった何らかのタイプの推定及び/又は予測のためにバッファユニット216に格納された、フィルタリングされていない再構成ブロック及び/又は対応するサンプル値を使用するように構成されてもよい。
例えば、一実施形態において、エンコーダ20は、イントラ予測254のために使用されるだけでなくループフィルタユニット220内のユニット(図2には示さず)にも使用される再構成ブロック215をバッファユニット216が格納するように、及び/又は例えばバッファユニット216及び復号ピクチャバッファ230が1つのバッファを形成するように、構成されてもよい。他の一実施形態では、フィルタリングされたブロック221及び/又は復号ピクチャバッファ230からのブロック若しくはサンプル(図2には示さず)が、イントラ予測ユニット254のための入力又は基礎として使用される。
ループフィルタユニット220(略して“ループフィルタ”220)は、サンプル遷移をスムーズにするように又は映像品質を向上させるように、再構成ブロック215をフィルタリングして、フィルタリングされたブロック221を得るように構成される。ループフィルタユニット220は、例えば、デブロッキングフィルタ、サンプル適応オフセット(sample-adaptive offset、SAO)フィルタ、又は例えばバイラテラルフィルタ、適応ループフィルタ(adaptive loop filter、ALF)、鮮明化若しくは平滑化フィルタ、又は協調フィルタといった他のフィルタなどの、1つ以上のループフィルタを表すことを意図している。ループフィルタユニット220は、図2ではインループフィルタとして示されているが、他の一実装において、ループフィルタユニット220は、ポストループフィルタとして実装されてもよい。フィルタリングされたブロック221は、フィルタリングされた再構成ブロック221と呼ばれることもある。ループフィルタユニット220が再構成符号化ブロックに対してフィルタリング処理を行った後、復号ピクチャバッファ230が再構成符号化ブロックを格納し得る。
一実施形態において、エンコーダ20(対応して、ループフィルタユニット220)は、デコーダ30が同じループフィルタパラメータを受信して復号に適用することができるように、ループフィルタパラメータ(例えば、サンプル適応オフセット情報)を、例えば、直接的に、あるいはエントロピー符号化ユニット270又は何らかの他のエントロピー符号化ユニットによって実行されるエントロピー符号化の後に、出力するように構成され得る。
復号ピクチャバッファ(decoded picture buffer、DPB)230は、エンコーダ20による映像データ符号化における使用のために参照ピクチャデータを格納する参照ピクチャメモリとし得る。DPB230は、例えばダイナミックランダムアクセスメモリ(dynamic random access memory、DRAM)(同期DRAM(synchronous DRAM、SDRAM)、磁気抵抗RAM(magnetoresistive RAM、MRAM)、又は抵抗RAM(resistive RAM、RRAM)を含む)、又は他のタイプのメモリデバイスなどの、多様なメモリデバイスのうちの任意のものを含み得る。DPB230及びバッファ216は、同一のメモリデバイスによって提供されてもよいし、別々のメモリデバイスによって提供されてもよい。一例において、復号ピクチャバッファ(decoded picture buffer、DPB)230は、フィルタリングされたブロック221を格納するように構成される。復号ピクチャバッファ230は更に、同じ現在ピクチャの、又は例えば先行して再構成されたピクチャといった異なるピクチャの、例えば先行して再構成されてフィルタリングされたブロック221といった、他の先行してフィルタリングされたブロックを格納するように構成されてもよく、また、例えばインター予測のために、完全な先行して再構成すなわち復号されたピクチャ(並びに対応する参照ブロック及びサンプル)、及び/又は部分的に再構成された現在ピクチャ(並びに対応する参照ブロック及びサンプル)を提供してもよい。一例において、再構成ブロック215がインループフィルタリングなしで再構成される場合、復号ピクチャバッファ(decoded picture buffer、DPB)230は、再構成ブロック215を格納するように構成される。
ブロック予測処理ユニット260とも称される予測処理ユニット260は、ピクチャブロック203(現在ピクチャ201の現在ピクチャブロック203)と、例えばバッファ216からの同じ(現在)ピクチャの参照サンプル及び/又は復号ピクチャバッファ230からの1つ以上の先行復号ピクチャの参照ピクチャデータ231といった再構成ピクチャデータとを受信又は取得し、そして、そのようなデータを予測のために処理する、具体的には、インター予測ブロック245又はイントラ予測ブロック255とし得る予測ブロック265を提供する、ように構成される。
モード選択ユニット262は、残差ブロック205の計算のため及び再構成ブロック215の再構成のために、予測モード(例えば、イントラ予測モード又はインター予測モード)及び/又は予測ブロック265として使用される対応する予測ブロック245又は255を選択するように構成され得る。
一実施形態において、モード選択ユニット262は、(例えば、予測処理ユニット260によってサポートされる予測モードから)予測モードを選択するように構成されることができ、予測モードは、最良の一致又は換言して最小の残差(最小の残差は、伝送又はストレージにとっていっそう良好な圧縮を意味する)を提供し、あるいは、最小のシグナリングオーバヘッド(最小のシグナリングオーバヘッドは、伝送又はストレージにとっていっそう良好な圧縮を意味する)を提供し、あるいは、これら両方を考慮したりバランスさせたりする。モード選択ユニット262は、レート歪み最適化(rate distortion optimization、RDO)に基づいて予測モードを決定する、具体的には、最小のレート歪み最適化を提供する予測モードを選択する、あるいは、関連するレート歪みが少なくとも予測モード選択基準を満足する予測モードを選択する、ように構成され得る。
以下、エンコーダ20の一例によって実行される予測処理(例えば、予測処理ユニット260によって実行される)及びモード選択(例えば、モード選択ユニット262によって実行される)について詳細に説明する。
上述のように、エンコーダ20は、(所定の)予測モードのセットから最適な又は最善の予測モードを決定又は選択するように構成される。予測モードのセットは、例えば、イントラ予測モード及び/又はインター予測モードを含み得る。
イントラ予測モードのセットは、例えばDC(又は平均)モード及び平面モードなどの非方向モード、又は例えばH.265に規定されるものなどの方向モードといった、35個の異なるイントラ予測モードを含んでもよいし、あるいは、例えばDC(又は平均)モード及び平面モードなどの非方向モード、又は例えば開発中のH.266に規定されるものなどの方向モードといった、67個の異なるイントラ予測モードを含んでもよい。
取り得る一実装において、インター予測モードのセットは、利用可能な参照ピクチャ(すなわち、例えば、上述のように、DBP230に格納された少なくとも一部の復号ピクチャ)及び他のインター予測パラメータに依存し、例えば、参照ピクチャ全体が使用されるのか、それとも、例えば現在ブロックの領域の周囲の探索ウィンドウ領域といった参照ピクチャの一部のみが使用されるのかに依存し、且つ/或いは、例えば、1/2サンプル及び/又は1/4サンプル補間などのサンプル補間が適用されるのかに依存する。インター予測モードのセットは、例えば、スキップ(skip)モード及びマージ(merge)モードを含み得る。特定の実装において、インター予測モードのセットは、この出願の実施形態において、スキップベースのマージ・ウイズ・動きベクトル差(merge with motion vector difference、MMVD)モード又はマージベースのMMVDモードを含み得る。一例において、イントラ予測ユニット254は、後述するインター予測技術の何らかの組み合わせを実行するように構成されてもよい。
上述の予測モードに加えて、この出願の実施形態ではスキップモード及び/又はダイレクトモードも適用され得る。
予測処理ユニット260は更に、ピクチャブロック203を、例えば四分木(quad-tree、QT)分割、二分木(binary-tree、BT)分割、三分木(ternary-tree、TT)分割、又はこれらの何らかの組み合わせを繰り返し用いることによって、より小さいブロックパーティション又はサブブロックに分割し、そして、例えば、ブロックパーティション又はサブブロックの各々に対して予測を実行するように構成され得る。モード選択は、分割されるピクチャブロック203のツリー構造の選択と、ブロックパーティション又はサブブロックの各々に使用される予測モードの選択とを含む。
インター予測ユニット244は、動き推定(motion estimation、ME)ユニット(図2には示さず)及び動き補償(motion compensation、MC)ユニット(図2には示さず)を含み得る。動き推定ユニットは、動き推定のために、ピクチャブロック203(現在ピクチャ201の現在ピクチャブロック203)及び復号ピクチャ231、又は例えば他の/異なる先行復号ピクチャ231の1つ以上の再構成ブロックといった少なくとも1つ以上の先行再構成ブロックとを、受信又は取得するように構成される。例えば、映像シーケンスは、現在ピクチャ及び先行復号ピクチャ231を含むことができ、又は換言して、現在ピクチャ及び先行復号ピクチャ231が、映像シーケンスを形成する一連のピクチャの一部であるか形成するかし得る。
例えば、エンコーダ20は、複数の他のピクチャのうちの同一ピクチャ又は複数の異なるピクチャの複数の参照ブロックから参照ブロックを選択し、動き推定ユニット(図2には示さず)に、参照ピクチャを提供し、及び/又は参照ブロックの位置(座標X及びY)と現在ブロックの位置との間のオフセット(空間オフセット)をインター予測パラメータとして提供するように構成され得る。このオフセットは、動きベクトル(motion vector、MV)とも呼ばれる。
動き補償ユニットは、インター予測パラメータを取得し、インター予測パラメータに基づいて又はそれを用いることによってインター予測を実行して、インター予測ブロック245を得るように構成される。動き補償ユニット(図2には示さず)によって実行される動き補償は、動き推定を通じて決定された動き/ブロックベクトルに基づいて、予測ブロックをフェッチ又は生成することを含み得る(場合により、サブピクセル精度での補間を実行する)。補間フィルタリングは、既知のサンプルから追加のピクセルサンプルを生成することができ、それにより、ピクチャブロックをコーディングするのに使用され得る候補予測ブロックの数を増やせる可能性がある。現在ピクチャブロックのPUに関する動きベクトルを受信すると、動き補償ユニット246は、動きベクトルが指す予測ブロックを、参照ピクチャリストのうちの1つ内で位置特定し得る。動き補償ユニット246はまた、ブロック及び映像スライスに関連するシンタックス要素を生成することができ、デコーダ30が該シンタックス要素を用いて映像スライス内のピクチャブロックを復号するようにし得る。
具体的には、インター予測ユニット244は、シンタックス要素をエントロピー符号化ユニット270に送信することができ、シンタックス要素は、インター予測パラメータ(例えば、複数のインター予測モードの検討後の、現在ブロックの予測に使用されるインター予測モードの選択のインジケーション情報など)を含む。取り得る一適用シナリオにおいて、1つのインター予測モードのみがある場合、代わりに、インター予測パラメータはシンタックス要素内で運ばれなくてもよい。この場合、デコーダ側30は、デフォルトの予測モードを用いることにより直接的に復号を実行し得る。理解され得ることには、インター予測ユニット244は、複数のインター予測技術の何らかの組み合わせを実行するように構成され得る。
イントラ予測ユニット254は、イントラ推定のために、ピクチャブロック203(現在ピクチャブロック)と、例えば同じピクチャの再構成済みの隣接ブロックといった1つ以上の先行再構成ブロックとを、例えば受信するなどして取得するように構成される。エンコーダ20は、例えば、複数の(所定の)イントラ予測モードからイントラ予測モードを選択するように構成され得る。
一実施形態において、エンコーダ20は、例えば最小残差(例えば、現在ピクチャブロック203に最も類似する予測ブロック255を提供するイントラ予測モード)又は最小レート歪みに基づいてなど、最適化基準に従ってイントラ予測モードを選択するように構成される。
イントラ予測ユニット254は更に、例えば、選択されたイントラ予測モードにおけるイントラ予測パラメータに基づいて、イントラ予測ブロック255を決定するように構成される。いずれにしても、ブロックに対するイントラ予測モードを選択した後、イントラ予測ユニット254は更に、イントラ予測パラメータ、すなわち、そのブロックに対して選択されたイントラ予測モードを指し示す情報を、エントロピー符号化ユニット270に提供するように構成される。一例において、イントラ予測ユニット254は、複数のイントラ予測技術の何らかの組み合わせを実行するように構成され得る。
具体的には、イントラ予測ユニット254は、シンタックス要素をエントロピー符号化ユニット270に送信することができ、シンタックス要素は、イントラ予測パラメータ(例えば、複数のイントラ予測モードの検討後の、現在ブロックの予測に使用されるイントラ予測モードの選択のインジケーション情報など)を含む。取り得る一適用シナリオにおいて、1つのイントラ予測モードのみがある場合、代わりに、イントラ予測パラメータはシンタックス要素内で運ばれなくてもよい。この場合、デコーダ側30は、デフォルトの予測モードにて直接的に復号を実行し得る。
エントロピー符号化ユニット270は、量子化された残差係数209、インター予測パラメータ、イントラ予測パラメータ、及び/又はループフィルタパラメータのうちの1つ又は全てに対して、エントロピー符号化アルゴリズム又はスキーム(例えば、可変長コーディング(variable length coding、VLC)スキーム、コンテキスト適応VLC(context adaptive VLC、CAVLC)スキーム、算術コーディングスキーム、コンテキスト適応バイナリ算術コーディング(context adaptive binary arithmetic coding、CABAC)、シンタックスベースコンテキスト適応バイナリ算術コーディング(syntax-based context-adaptive binary arithmetic coding、SBAC)、確率インターバルパーティショニングエントロピー(probability interval partitioning entropy、PIPE)コーディング、又は他のエントロピー符号化方法若しくは技術)を適用して(又は適用せずに)、出力272を介して出力され得る符号化ピクチャデータ21を例えば符号化ビットストリーム21の形態で得るように構成される。符号化ビットストリームは、ビデオデコーダ30に送信されてもよいし、あるいは、後の送信又はビデオデコーダ30による取り出しのためにアーカイブされてもよい。エントロピー符号化ユニット270は更に、符号化中の現在映像スライスに対して、別のシンタックス要素をエントロピー符号化するように構成されてもよい。
映像ストリームを符号化するために、構造的に少し異なる別のビデオエンコーダ20を使用することができる。例えば、非変換ベースのエンコーダ20は、一部のブロック又はフレームに対して、変換処理ユニット206を用いずに直接的に残差信号を量子化し得る。他の一実装において、エンコーダ20は、単一のユニットへと結合された量子化ユニット208及び逆量子化ユニット210を有していてもよい。
具体的には、この出願の実施形態において、エンコーダ20は、以下の実施形態で説明される映像ピクチャ符号化方法を実装するように構成され得る。
理解されるべきことには、映像ストリームを符号化するために、構造的に少し異なる別のビデオエンコーダ20を使用することができる。例えば、一部のピクチャブロック又はピクチャフレームに対して、ビデオエンコーダ20は、残差信号を直接的に量子化してもよく、変換処理ユニット206による処理は必要とされず、対応して、逆変換処理ユニット212による処理も必要とされない。あるいは、一部のピクチャブロック又はピクチャフレームに対して、ビデオエンコーダ20は残差データを生成せず、対応して、変換処理ユニット206、量子化ユニット208、逆量子化ユニット210、及び逆変換処理ユニット212による処理は必要とされない。あるいは、ビデオエンコーダ20は、再構成ピクチャブロックを直接的に参照ブロックとして格納してもよく、フィルタ220による処理は必要とされない。あるいは、ビデオエンコーダ20内の量子化ユニット208と逆量子化ユニット210とが組み合わされてもよい。ループフィルタ220はオプションである。また、可逆圧縮符号化の場合には、変換処理ユニット206、量子化ユニット208、逆量子化ユニット210、及び逆変換処理ユニット212はオプションである。理解されるべきことには、異なる適用シナリオにおいて、インター予測ユニット244及びイントラ予測ユニット254は選択的に使用され得る。
図3は、この出願の一実施形態を実装するように構成されたデコーダ30の一例の概略的/概念的ブロック図である。ビデオデコーダ30は、例えばエンコーダ20によって符号化された、符号化ピクチャデータ(例えば、符号化ビットストリーム)21を受信して、復号ピクチャ231を得るように構成される。復号プロセスにおいて、ビデオデコーダ30は、ビデオエンコーダ20から、例えば符号化映像スライスのピクチャブロック及び関連するシンタックス要素を表す符号化ビデオビットストリームといった、ビデオデータを受信する。
図3の例において、デコーダ30は、エントロピー復号ユニット304、逆量子化ユニット310、逆変換処理ユニット312、再構成ユニット314(例えば、加算器314)、バッファ316、ループフィルタ320、復号ピクチャバッファ330、及び予測処理ユニット360を含んでいる。予測処理ユニット360は、インター予測ユニット344、イントラ予測ユニット354、及びモード選択ユニット362を含み得る。一部の例において、ビデオデコーダ30は、図2のビデオエンコーダ20に関して説明した符号化プロセスに対して概して逆である復号プロセスを実行し得る。
エントロピー復号ユニット304は、符号化ピクチャデータ21に対してエントロピー復号を実行して、例えば、量子化された係数309、及び/又は例えば(復号された)インター予測パラメータ、イントラ予測パラメータ、ループフィルタパラメータ、及び/又は他のシンタックス要素のうちのいずれか1つ又は全てといった、復号された符号化パラメータ(図3には示さず)、を得るように構成される。エントロピー復号ユニット304は更に、インター予測パラメータ、イントラ予測パラメータ、及び/又は他のシンタックス要素を、予測処理ユニット360に転送するように構成される。ビデオデコーダ30は、映像スライスレベル及び/又は映像ブロックレベルのシンタックス要素を受信し得る。
逆量子化ユニット310は、逆量子化ユニット210と同じ機能を持つとし得る。逆変換処理ユニット312は、逆変換処理ユニット212と同じ機能を持つとし得る。再構成ユニット314は、再構成ユニット214と同じ機能を持つとし得る。バッファ316は、バッファ216と同じ機能を持つとし得る。ループフィルタ320は、ループフィルタ220と同じ機能を持つとし得る。復号ピクチャバッファ330は、復号ピクチャバッファ230と同じ機能を持つとし得る。
予測処理ユニット360は、インター予測ユニット344及びイントラ予測ユニット354を含み得る。インター予測ユニット344は、機能においてインター予測ユニット244に似ているとすることができ、イントラ予測ユニット354は、機能においてイントラ予測ユニット254に似ているとすることができる。予測処理ユニット360は、通常、ブロック予測を実行する及び/又は符号化データ21から予測ブロック365を取得するとともに、例えばエントロピー復号ユニット304から、予測関連パラメータ及び/又は選択された予測モードについての情報を(明示的又は暗黙的に)受信又は取得するように構成される。
また、映像スライスがイントラ符号化(I)スライスへの符号化されるとき、予測処理ユニット360のイントラ予測ユニット354は、シグナリングされたイントラ予測モードと、現在フレーム又はピクチャの先行復号ブロックのデータとに基づいて、現在映像スライスのピクチャブロックに対する予測ブロック365を生成するように構成される。映像フレームが、インター符号化(すなわち、B又はP)スライスへと符号化されるとき、予測処理ユニット360内のインター予測ユニット344(例えば、動き補償ユニット)は、動きベクトル及びエントロピー復号ユニット304から受信される他のシンタックス要素に基づいて、現在映像スライス内の映像ブロックの予測ブロック365を生成するように構成される。インター予測では、1つの参照ピクチャリスト内の参照ピクチャのうちの1つから予測ブロックが生成され得る。ビデオデコーダ30は、デフォルトの構築技術を使用することによって、及びDPB330に格納された参照ピクチャに基づいて、リスト0及びリスト1なる参照フレームリストを構築し得る。
予測処理ユニット360は、動きベクトル及び他のシンタックス要素を解析することによって、現在映像スライスの映像ブロックに対する予測情報を決定し、該予測情報を用いて、復号中の現在映像ブロックに対する予測ブロックを生成するように構成される。この出願の一例において、予測処理ユニット360は、受信した一部のシンタックス要素を用いることによって、映像スライス内の映像ブロックを符号化するための予測モード(例えば、イントラ予測又はインター予測)と、インター予測スライスタイプ(例えば、Bスライス、Pスライス、又はGPBスライス)と、そのスライスに対する参照ピクチャリストのうちの1つ以上の構成情報と、そのスライス内の各インター符号化映像ブロックの動きベクトルと、そのスライス内の各インター符号化映像ブロックのインター予測状態と、他の情報とを決定して、現在映像スライス内の映像ブロックを復号する。この開示の他の一例において、ビデオデコーダ30によってビットストリームから受信されるシンタックス要素は、適応パラメータセット(adaptive parameter set、APS)、シーケンスパラメータセット(sequence parameter set、SPS)、ピクチャパラメータセット(picture parameter set、PPS)、又はスライスヘッダのうちの1つ以上内のシンタックス要素を含む。
逆量子化ユニット310は、ビットストリーム内で提供されてエントロピー復号ユニット304によって復号された、量子化された変換係数に対して、逆量子化(すなわち、量子化解除)を実行するように構成され得る。逆量子化プロセスは、映像スライス内の各映像ブロックに対してビデオエンコーダ20によって計算された量子化パラメータを用いて、適用されるべき量子化の度合いと、適用されるべき逆量子化の度合いとを決定することを含み得る。
逆変換処理ユニット312は、変換係数に逆変換(例えば、逆DCT、逆整数変換、又は概念的に類似した逆変換プロセス)を適用して、サンプルドメインにおける残差ブロックを生成するように構成される。
再構成ユニット314(例えば、加算器314)は、例えば再構成残差ブロック313のサンプル値を予測ブロック365のサンプル値に足し合わせることによって、逆変換ブロック313(すなわち、再構成残差ブロック313)を予測ブロック365に足し合わせて、サンプルドメインにおける再構成ブロック315を得るように構成される。
ループフィルタユニット320(コーディングループの中又はコーディングループの後)は、サンプル遷移をスムーズにするように又は映像品質を向上させるように、再構成ブロック315をフィルタリングして、フィルタリングされたブロック321を得るように構成される。一例において、ループフィルタユニット320は、後述するフィルタリング技術の何らかの組み合わせを実行するように構成され得る。ループフィルタユニット320は、例えば、デブロッキングフィルタ、サンプル適応オフセット(sample-adaptive offset、SAO)フィルタ、又は例えばバイラテラルフィルタ、適応ループフィルタ(adaptive loop filter、ALF)、鮮明化若しくは平滑化フィルタ、又は協調フィルタといった他のフィルタなどの、1つ以上のループフィルタを表すことを意図している。ループフィルタユニット320は、図3ではインループフィルタとして示されているが、他の一実装において、ループフィルタユニット320はポストループフィルタとして実装されてもよい。
そして、所与のフレーム又はピクチャ内の復号映像ブロック321は、後続の動き補償に使用される参照ピクチャを格納する復号ピクチャバッファ330に格納される。
デコーダ30は、例えば、復号ピクチャ331をユーザへの提示又は鑑賞のために出力332を介して出力するように構成される。
圧縮ビットストリームを復号するために、少し異なる別のビデオデコーダ30を使用してもよい。例えば、デコーダ30は、ループフィルタユニット320を用いずに出力ビデオストリームを生成してもよい。例えば、非変換ベースのデコーダ30は、一部のブロック又はフレームに対して、逆変換処理ユニット312を用いずに直接的に残差信号を逆量子化することができる。他の一実装において、ビデオデコーダ30は、単一のユニットへと結合された逆量子化ユニット310及び逆変換処理ユニット312を有していてもよい。
具体的には、この出願の実施形態において、デコーダ30は、以下の実施形態で説明される映像ピクチャ復号方法を実装するように構成される。
理解されるべきことには、符号化映像ビットストリームを復号するために、構造的に少し異なる別のビデオデコーダ30を使用することができる。例えば、ビデオデコーダ30は、フィルタ320による処理なしで出力映像ストリームを生成してもよい。あるいは、一部のピクチャブロック又はピクチャフレームに対して、ビデオデコーダ30のエントロピー復号ユニット304は、復号を通じて量子化された係数を取得せず、それに対応して、逆量子化ユニット310や逆変換処理ユニット312は処理を実行するのに必要でない。ループフィルタ320はオプションである。また、可逆圧縮の場合には、逆量子化ユニット310、逆変換処理ユニット312もオプションである。理解されるべきことには、異なる適用シナリオにおいて、インター予測ユニット及びイントラ予測ユニットは選択的に使用され得る。
理解されるべきことには、この出願におけるエンコーダ20及びデコーダ30上で、ある手順の処理結果は、更に処理された後に次の手順に出力されてもよい。例えば、補間フィルタリング、動きベクトル導出、又はループフィルタリングなどの手順の後に、対応する手順の処理結果に対して、例えばクリップ又はシフトなどの演算が更に実行される。
例えば、現在ピクチャブロックの制御点の動きベクトル、又は隣接するアフィンコーディングブロックの動きベクトルから導出された現在ピクチャブロックのサブブロックの動きベクトルが更に処理されてもよい。これは、この出願において限定されることではない。例えば、動きベクトルの値は、特定のビット幅範囲内にあるように制約される。動きベクトルの許容ビット幅がbitDepthであると仮定すると、動きベクトルの値は、-2^(bitDepth-1)から2^(bitDepth-1)-1までの範囲であり、ここで、記号“^”はべき乗を表す。bitDepthが16である場合、値は-32768から32767までの範囲である。bitDepthが18である場合、値は-131072から131071までの範囲である。他の一例では、動きベクトル(例えば、1つの8×8ピクチャブロック内の4つの4×4サブブロックの動きベクトルMV)の値は、それら4つの4×4サブブロックのMVの整数部の間の最大の差が、例えば1サンプルを超えないなど、Nサンプルを超えないように制約される。
図4は、この出願の一実施形態に従った映像コーディング装置400(例えば、映像符号化装置400又は映像復号装置400)の概略構成図である。映像コーディング装置400は、この明細書に記載される実施形態を実装するのに適している。一実施形態において、映像コーディング装置400は、ビデオデコーダ(例えば、図1Aのデコーダ30)又はビデオエンコーダ(例えば、図1Aのエンコーダ20)とし得る。他の一実施形態において、映像コーディング装置400は、図1Aのデコーダ30又は図1Aのエンコーダ20の中の1つ以上のコンポーネントであってもよい。
映像コーディング装置400は、データを受信するための入口ポート410及び受信ユニット(Rx)420と、データを処理するためのプロセッサ、論理ユニット、又は中央演算処理ユニット(CPU)430と、データを送信するための送信器ユニット(Tx)440(又は短く送信器440と称する)及び出口ポート450と、データを格納するように構成されたメモリ460(例えば、メモリ460)とを含んでいる。映像コーディング装置400は更に、光信号又は電気信号の出入りのために入口ポート410、受信器ユニット420(又は短く受信器420と称する)、送信器ユニット440、及び出口ポート450に結合された、光-電気変換コンポーネント及び電気-光(EO)コンポーネントを含み得る。
プロセッサ430は、ハードウェア及びソフトウェアによって実装される。プロセッサ430は、1つ以上の、CPUチップ、コア(例えば、マルチコアプロセッサ)、FPGA、ASIC、及びDSPとして実装され得る。プロセッサ430は、入口ポート410、受信器ユニット420、送信器ユニット440、出口ポート450、及びメモリ460と通信する。プロセッサ430は、コーディングモジュール470(例えば、符号化モジュール470又は復号モジュール470)を含む。符号化/復号モジュール470は、この出願の実施形態で提供されるクロミナンスブロック予測方法を実施するよう、この明細書で開示される実施形態を実装する。例えば、符号化/復号モジュール470は、様々なコーディング動作を実行し、処理し、又は提供する。従って、符号化/復号モジュール470は、映像コーディング装置400の機能を実質的に向上させ、映像コーディング装置400の複数の異なる状態への変換に影響を与える。あるいは、符号化/復号モジュール470は、メモリ460に格納されてプロセッサ430によって実行される命令として実装される。
メモリ460は、1つ以上のディスク、テープドライブ、及びソリッドステートドライブを含み、オーバーフローデータ記憶デバイスとして使用されて、実行のためにプログラムが選択されるときに該プログラムを格納することができ、また、プログラム実行中に読み出される命令及びデータを格納することができる。メモリ460は、揮発性及び/又は不揮発性とすることができ、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、三値連想メモリ(ternary content-addressable memory、TCAM)、及び/又はスタティックランダムアクセスメモリ(SRAM)とし得る。
図5は、一実施形態例に従った、図1Aのソース装置12及びデスティネーション装置14のうちのいずれか又は2つとして使用され得る装置500の簡略ブロック図である。装置500は、この出願の技術を実装することができる。換言すれば、図5は、この出願の一実施形態に従った符号化装置又は復号装置(略してコーディング装置500)の一実装の概略ブロック図である。コーディング装置500は、プロセッサ510、メモリ530、及びバスシステム550を含み得る。プロセッサとメモリは、バスシステムを介して接続される。メモリは命令を格納するように構成される。プロセッサは、メモリに格納された命令を実行するように構成される。コーディング装置のメモリがプログラムコードを格納し、プロセッサが、メモリに格納されたプログラムコードを呼び出して、この出願で説明される様々な映像ピクチャ符号化又は復号方法、特に、様々なインター予測モード又はイントラ予測モードでの映像符号化又は復号方法を実行し得る。繰り返しを避けるため、詳細をここで再び説明することはしない。
この出願のこの実施形態において、プロセッサ510は、中央演算処理ユニット(Central Processing Unit、略して“CPU”)とし得る。あるいは、プロセッサ510は、他の汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)若しくは他のプログラマブルロジックデバイス、ディスクリートのゲート若しくはトランジスタロジックデバイス、ディスクリートのハードウェアコンポーネント、又はこれらに類するものであってもよい。汎用プロセッサはマイクロプロセッサであってもよく、あるいは、プロセッサは任意の従来プロセッサ又はそれに類するものであってもよい。
メモリ530は、読み出し専用メモリ(ROM)デバイス又はランダムアクセスメモリ(RAM)デバイスを含み得る。代わりに何らかの他の好適タイプの記憶デバイスがメモリ530として使用されてもよい。メモリ530は、バス550を介してプロセッサ510によってアクセスされるコード及びデータ531を含み得る。メモリ530は更に、オペレーティングシステム533及びアプリケーションプログラム535を含み得る。アプリケーションプログラム535は、この出願で説明される映像符号化又は復号方法(特に、この出願で説明される映像ピクチャ予測方法又はインター予測方法)をプロセッサ510が実行することを可能にする少なくとも1つのプログラムを含む。例えば、アプリケーションプログラム535は、アプリケーション1乃至Nを含むことができ、そして更に、この出願で説明される映像符号化又は復号方法を実行する映像符号化又は復号アプリケーション(略して映像コーディングアプリケーションと称する)を含むことができる。
データバスに加えて、バスシステム550は更に、電力バス、制御バス、状態信号バス、及びこれらに類するものを含み得る。しかしながら、明瞭な説明のため、図中の様々なタイプのバスをバスシステム550としてマーキングしている。
オプションで、コーディング装置500は更に、例えばディスプレイ570といった1つ以上の出力装置を含み得る。一例において、ディスプレイ570は、タッチ入力を動作可能に検知するタッチユニットとディスプレイとを組み合わせたタッチディスプレイとし得る。ディスプレイ570は、バス550を介してプロセッサ510に接続され得る。
この出願の実施形態において、インター予測は重要なステップである。エンコーダ側の観点からは、インター予測は、現在ピクチャ内の現在コーディングブロックに対して合致する参照ブロックに関する再構成ピクチャを探索することである。図5Aに示すように、参照ブロック(例えば、参照ブロックFr1又は参照ブロックFr2であり、参照ブロック内のサンプル値をこの出願における参照サンプル値として理解し得る)内のサンプルのサンプル値が、現在コーディングブロック(すなわち、現在ピクチャブロック)Fc内のサンプルのサンプル値の予測情報又は予測値(以下では“情報”と“値”とを区別しない)として使用される。このプロセスを動き推定MEと称する。また、現在コーディングブロックの動き情報は伝送される。デコーダ側の観点からは、インター予測の間に解析を通じて動き情報を得る必要があり、得られた動き情報に基づいて参照ブロックが再構成ピクチャ内で決定され、参照ブロック内のサンプルのサンプル値(すなわち、参照サンプル値)が予測情報として使用される。このプロセスを動き補償MCと称する。予測情報と残差情報とを組み合わせ、そして、組み合わせた情報に対してフィルタリング演算を実行することによって、再構成情報を得ることができる。この出願におけるアイディアは、HEVCにおいて使用されてもよいし、あるいは他の映像コーディング標準において使用されてもよい。以下では、このアイディアをHEVCにおいて使用する例を用いることにより、エンコーダ側でのインター予測モードの取り得るケースを説明する。デコーダ側でのインター予測モードの取り得るケースは同様であり、従って、追加の説明を供することはしない。
HEVCにおいては、アドバンスト動きベクトル予測(Advanced Motion Vector Prediction、AMVP)モードとマージ(Merge)モードとの、2つのモードが存在する。以下では、これら2つのモードについて別々に説明する。
AMVPモードでは、先ず、現在コーディングブロックに空間的又は時間的に隣接する符号化ブロックの動き情報を用いることによって、アフィン候補動きベクトルリストが構築され、次いで、アフィン候補動きベクトルリストから、最適動きベクトルが、現在コーディングブロックの動きベクトル予測子(Motion vector predictor、MVP)として決定される。式(0-1)を用いることによってレート歪みコストが計算され、ここで、Jはレート歪み(rate-distortion)コストRDコストであり、SADは、候補動きベクトル予測子を用いて行われる動き推定を通じて得られた、予測サンプル値と元のサンプル値との間の差分絶対値和(Sum of Absolute Differences、SAD)であり、Rはビットレートであり、λはラグランジュ乗数である。エンコーダ側は、アフィン候補動きベクトルリストにおける選択した動きベクトル予測子のインデックス値、及び参照フレームインデックス値をデコーダ側に伝達する。さらに、現在コーディングブロックの実際の動きベクトルを得るために、MVPを中心とする隣接領域内で動き探索が実行される。エンコーダ側は、MVPと実際の動きベクトルとの間の差(動きベクトル差)をデコーダ側に伝達する。
J=SAD+λR (0-1)
マージモードでは、先ず、現在コーディングブロックに空間的又は時間的に隣接する符号化ブロックの動き情報を用いることによって、候補動き情報リストが構築され、次いで、最適動き情報が、レート歪みコストに基づいて候補動き情報リストから決定されて現在コーディングブロックの動き情報として使用され、そして、候補動き情報リストにおける上記最適動き情報の位置のインデックス値(マージインデックスと表記する、以下同じ)がデコーダ側に伝達される。現在コーディングブロックの空間及び時間候補動き情報を図5Bに示す。空間候補動き情報は、5つの空間的に隣接するブロック(A0,A1,B0,B1,及びB2)からである。ある隣接ブロックが利用可能でない又はイントラコーディングモードにある場合、その隣接ブロックは候補動き情報リストに加えられない。現在コーディングブロックの時間候補動き情報は、参照フレーム及び現在フレームのピクチャオーダカウント(Picture order count、POC)に基づいて参照フレーム内のコロケートブロックのMVがスケーリングされた後に取得される。先ず、参照フレーム内の位置Tにあるブロックが利用可能であるかが決定される。そのブロックが利用可能でない場合、位置Cにあるブロックが選択される。
HEVCにおけるインター予測では、現在コーディングブロック内の全てのサンプルが同じ動き情報を使用し、そして、現在コーディングブロックの予測サンプル値を得るために、その動き情報に基づいて動き補償が行われる。動き情報は、主に以下を含む:(1)コーディングブロックの予測方向であり、前方予測、後方予測、双方向予測を含み、前方予測は、先行符号化フレームに基づく予測を通じてコーディングブロックが得られることを指し示し、後方予測は、後続符号化フレームに基づく予測を通じてコーディングブロックが得られることを指し示し、双方向予測は、先行符号化フレーム及び後続符号化フレームを参照する予測を通じてコーディングブロックが得られることを指し示す;(2)コーディングブロックの参照フレームインデックスであり、その中に現在コーディングブロックの参照ブロックが位置するフレームを指し示す;及び(3)コーディングブロックの動きベクトルMVであり、参照ブロックに対するコーディングブロックの動き変位を指し示し、MVは、水平成分(MVxと表記する)及び垂直成分(MVyと表記する)を含み、これらは、それぞれ、水平方向における参照ブロックに対するコーディングブロックの動き変位、及び垂直方向における参照ブロックに対するコーディングブロックの動き変位を表す。コーディングブロックに対して前方予測又は後方予測が行われるとき、1つのMVのみが存在する。コーディングブロックに対して双方向(すなわち、前方及び後方)予測が行われるとき、2つのMVが存在する。図5Cは、前述の動き情報を説明している。図5C、並びに動き情報及び予測情報についての以下の説明において、0は前方予測を表し、1は後方予測を表す。例えば、Ref0は前方参照フレームを表し、Ref1は後方参照フレームを表し、MV0は前方動きベクトルを表し、MV1は後方動きベクトルを表す。
A、B、及びCは、それぞれ、前方参照ブロック、現在コーディングブロック、及び後方参照ブロックを表す。Curは現在コーディングフレームを表し、破線はBの移動軌跡を表す。
前方予測の基本的な動き補償プロセスは、次の通りである:図5Cに示すように、現在コーディングブロックは図中のブロックBであり、Bの高さ及び幅はそれぞれH及びWである。このケースでは、動き情報に基づいて、現在コーディングブロックBの前方参照フレームがフレームRef0であり且つ現在コーディングブロックBの前方動きベクトルMV0が(MV0x,MV0y)であることが分かる。フレームCur内のコーディングブロックBが符号化されるとき、先ず、フレームCur内のBの左上隅の点の座標(i,j)に基づいてフレームRef0内で同一の座標点が見出され、ブロックBの長さ及び幅に基づいてRef0内のブロックB’を得ることができ、次いで、ブロックB’のMV0に基づいてB’がブロックAに移動される。最後に、ブロックAについて補間が行われて、現在コーディングブロックBの予測ブロックが得られる。現在コーディングブロックBの予測ブロック内の各サンプルのサンプル値が、ブロックB内の対応するサンプルの予測値として参照される。後方予測の動き補償プロセスは前方予測のそれと同じであるが、参照方向が異なる。なお、後方予測及び前方予測での動き補償を通じて得られる予測ブロックが、それぞれ、前方予測ブロック及び後方予測ブロックと称される。コーディングブロックに対して双方向予測が行われないとき、得られた前方予測ブロック及び後方予測ブロックが現在コーディングブロックの予測ブロックである。
双方向予測では、先ず、前方予測の動き補償プロセス及び後方予測の動き補償プロセスにて、動き情報に基づいて前方予測ブロック及び後方予測ブロックが取得され、次いで、前方予測ブロック及び後方予測ブロック内の同じ位置にあるサンプル値に対して重み付け予測又はBDOF(双方向オプティカルフロー(Bi-directional optical flow、BIO)とも称される)が実行されて、コーディングブロックBの予測ブロックが得られる。
BDOF技術では、現在コーディングブロックに対して双方向予測の動き補償が行われた後に、前方予測ブロック及び後方予測ブロックが取得され、次いで、前方予測ブロック及び後方予測ブロックのサンプル値に基づいて、現在コーディングブロック内の各4×4サブブロックの修正動きベクトルが導出される。最後に、現在コーディングブロックの予測値を得るために、現在コーディングブロック内の各サンプルに対して、修正動きベクトルに基づいて補償が再び実行されて、現在コーディングブロックの最終予測ブロックが取得される。この出願の実施形態は、コーディングの複雑さを低減させるとともにコーディング性能を向上させるために、BDOFを用いて動き補償を実行する特定の条件に焦点を当てる。
図6Aは、本発明の一実施形態に従った符号化方法の概略フローチャートである。この符号化手順は、映像符号化装置によって実行され得る。映像符号化装置は、前述のビデオエンコーダ20、又はビデオエンコーダ20を含む装置とし得る。具体的には、当該手順は、ビデオエンコーダ20内の、インター予測ユニット(インター予測器とも称される)244、エントロピー符号化ユニット(エントロピーエンコーダとも称される)270、及びこれらに類するものによって実行され得る。前述の手順は、一連のステップ又は動作として説明される。理解されるべきことには、当該手順のステップは、様々な順序で及び/又は同時に実行されてもよく、図6Aに示す実行順序に限定されるものではない。図6Aに対応する手順の関連説明は、以下の通りである。
符号化装置は、先ず、複数のプリセット条件が満足されるかを判定し、該複数のプリセット条件が満足される場合にS600が実行され、該複数のプリセット条件が満足されない場合にはS601が実行される。複数のプリセット条件が満足されない場合、S601のケースのみがここでの詳細な説明を代表するものとして使用される。従来技術におけるものと同じである他のケースについては、この出願で説明することはしない。
ステップS600: 複数のプリセット条件が満足されるときに、符号化装置は、現在ピクチャブロックに対して双方向オプティカルフローBDOF処理を実行して現在ピクチャブロックの予測サンプル値を取得する。
双方向オプティカルフロー(Bi-directional optical flow、BDOF)は、略してBIO又はBDOFと称され得る。
上記複数のプリセット条件は少なくとも、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することという条件を含む。現在ピクチャブロックのサイズは、通常、幅及び高さ(短くW×Hと記載される)によって表され、幅及び高さは、サンプル(sample又はpixel)によって測定される。例えば、現在ピクチャブロックのサイズが8×8である場合、1つめの8は、現在ピクチャブロックの幅が8サンプルであることを示し、2つめの8は、現在ピクチャブロックの高さが8サンプルであることを示す。他の一例では、現在ピクチャブロックのサイズが8×16である場合、8は、現在ピクチャブロックの幅が8サンプルであることを示し、16は、現在ピクチャブロックの高さが16サンプルであることを示す。
現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、且つ現在ピクチャブロックの幅Wと高さHとの積が64に等しいときに幅Wが高さHに等しくない、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、且つ現在ピクチャブロックの幅Wが8以上である、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、現在ピクチャブロックの幅Wが8以上であり、且つ現在ピクチャブロックの幅Wと現在ピクチャブロックの高さHとの積が64よりも大きい、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、現在ピクチャブロックの幅Wが8以上であり、且つ現在ピクチャブロックの幅Wと現在ピクチャブロックの高さHとの積が128よりも大きい、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8よりも大きい、ことを含む。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8よりも大きく、且つ現在ピクチャブロックの幅Wが8以上である、ことを含む。
なお、BDOF技術に従って、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて現在ピクチャブロックの予測サンプル値を決定する(又は予測を通じて取得する)かが決定される前に、現在ピクチャブロックのサイズに加えて、別の参照条件が存在してもよい。別の参照条件は、ここで限定されるものではない。理解を容易にするために、以下では、説明のための例を用いる。
条件A: 現在映像シーケンスに対してBDOF技術が使用されることが許されることを指し示すハイレベルシンタックス識別子sps_bdof_enabled_flagが存在する。
条件B: 第1リスト(List1)に対応する予測方向指示情報predFlagL0が1に等しく、且つ第2リスト(list0)に対応する予測方向指示情報predFlagL1が1に等しい。
条件C: 第1リスト(list0)に対応する参照フレームのピクチャオーダカウントPOC_L0、第2リスト(list1)に対応する参照フレームのピクチャオーダカウントPOC_L1、及びその中に現在ピクチャブロックが位置するピクチャのピクチャオーダカウントPOC_Curが、(POC_L0-POC_Cur)×(POC_L1-POC_Cur)<0という関係を満足する。換言すれば、現在ピクチャブロックを含むピクチャが、2つの参照ピクチャの間にある。
条件D: MotionModelIdc[xCb][yCb]が0に等しい。MotionModelIdcは、動き補償に関する動きモデルインデックスである。0に等しいMotionModelIdc[xCb][yCb]は、現在ブロックの動き補償のための動きモデルが並進運動(Translational motion)であることを指し示す。
条件E: merge_subblock_flag[x0][y0]が0に等しく、ここで、0に等しいmerge_subblock_flag[x0][y0]は、現在ピクチャブロックに対してサブブロックマージモードが適用されないことを指し示す。
条件F: sym_mvd_flag[x0][y0]が0に等しい。0に等しいsym_mvd_flag[x0][y0]は、現在ブロックに対してmvd_coding(x0,y0,refList,cpIdx)シンタックス構造が存在することを指し示す。
条件G: bcwIdx[xCb][yCb]が0に等しい。bcwIdxは、現在ピクチャブロックに対する双方向予測重みインデックスを示す。
条件H: cIdxが0に等しい。cIdxは、現在ピクチャブロックの色成分インデックスを表す。
条件I: 現在ピクチャブロックのサイズが第1のプリセットサイズである。
条件J: luma_weight_l0_flag[refIdxL0]及びluma_weight_l1_flag[refIdxL1]の両方が0に等しく、ここで、0に等しいluma_weight_l0_flagは、list0予測のルマコンポーネントに対する重み付け係数が存在しないことを指し示し、0に等しいluma_weight_l1_flagは、list1予測のルマコンポーネントに対する重み付け係数が存在しないことを指し示す。
例えば、条件A乃至Jの全てが満足されるとき、現在ピクチャブロックの予測サンプル値を予測するためにBDOF技術が使用され得ることが決定される。例えば、bdofFlagがtrueに設定される。なお、前述の条件は単なる例であり、別の条件が更に追加されたり、あるいは前述の条件のうちの1つ以上が置き換えられたり、あるいは前述の条件のうちの1つ以上が除去されたりしてもよい。
理解されるべきことには、ここでの現在ピクチャブロック(これは、現在ブロックとも称される)は、処理中のピクチャブロックとして理解され得る。例えば、符号化プロセスにおいて、現在ピクチャブロックは、符号化中のピクチャブロック(encoding block)である。
理解され得ることには、前述のケースを参考にして、別のケースを更に得ることができ、別のケースもこの出願の保護範囲に入るものである。
理解されるべきことには、この出願のこの実施形態における方法は、例えばビデオエンコーダ又は映像符号化機能を持つエレクトロニクス装置などの、ピクチャ予測装置によって実行されることができ、具体的に、ビデオエンコーダ内のインター予測ユニットによって実行され得る。
具体的には、BDOF技術を使用するための、このソリューションにおける条件は、BDOF技術を使用するための、従来技術における条件とは異なり、特に、現在ピクチャブロックのサイズに関する要件が異なる。第1のプリセットサイズを持つ現在ピクチャブロックに対してBDOF技術を使用することで、実際のサンプル値にいっそう近い予測サンプル値を得ることができ、コーディングの複雑さを適切に制御することができ、また、コーディング効率を向上させることができる。
この出願のこの実施形態において、複数のプリセット条件が満足されるときに符号化装置が現在ピクチャブロックに対して双方向オプティカルフローBDOF処理を実行することは、具体的に以下とし得る:複数のプリセット条件が満足されるときに、符号化装置は、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプルとに基づいて、現在ピクチャブロックに対して双方向オプティカルフローBDOF処理を実行する。
この出願のこの実施形態において、第1リストに対応する参照サンプル値及び第2リストに対応する参照サンプル値は、それぞれ、第1リスト(すなわち、list0)に対応する第1動きベクトル(例えば、Mv0_L0)及び第2リスト(すなわち、list1)に対応する第2動きベクトル(例えば、Mv1_L1)に基づく予測を通じて取得される。例えば、第1リスト(すなわち、list0)に対応する参照サンプル値は、第1リスト(すなわち、list0)に対応する第1動きベクトル(例えば、Mv0_L0)に基づいて決定されることができ、第2リスト(すなわち、list1)に対応する参照サンプル値は、第2リスト(すなわち、list1)に対応する第2動きベクトル(例えば、Mv1_L1)に基づいて決定されることができる。
理解され得ることには、第1リスト(すなわち、list0)に対応する第1動きベクトル(例えば、Mv0_L0)及び第2リスト(すなわち、list1)に対応する第2動きベクトル(例えば、Mv1_L1)は、異なるインター予測モードでは異なる方式で取得される。使用される具体的なインター予測モードは、モード選択ユニットを用いることによって選択され得る。以下、AMVPモード、マージモード、及びスキップモードにおいて第1動きベクトル及び第2動きベクトルをどのように決定するかを別々に説明する。
取り得るケース1: インター予測モードはAMVPモードである。
符号化装置は、先ず、候補動きベクトル予測子MVPリストを構築する。
具体的には、映像符号化装置は、インター予測ユニット(インター予測モジュールとも称する)を用いることによって、候補動きベクトル予測子MVPリスト(候補動きベクトルリストとも称する)を構築する。構築される候補動きベクトル予測子MVPリストは、三要素の(triplet)候補動きベクトル予測子MVPリスト又は二要素の(2-tuple)候補動きベクトル予測子MVPリストとし得る。この出願のこの実施形態において、映像符号化装置は、双方向予測方式でインター予測を実行する。
次いで、映像符号化装置は、レート歪みコスト基準に従って、MVPリスト内でターゲット候補動き情報を決定する。
具体的には、ターゲット候補動き情報は、最適候補動きベクトルと称されることもあり、あるいは別の名称を持つこともある。結論として、ターゲット候補動き情報は、レート歪みコスト基準(例えば、使用コストが最小化される)に従ってMVPリスト内で決定される最適候補である。ターゲット候補動き情報は、候補動きベクトル予測子MVPリストにおける一意のインデックス番号に対応する。
続いて、ターゲット候補動き情報に基づいて、第1動きベクトル及び第2動きベクトルが決定される。ターゲット候補動き情報は、第1リスト(すなわち、list0)に対応する第1動きベクトル予測子(例えば、Mvp0_L0)、及び第2リスト(すなわち、list1)に対応する第2動きベクトル予測子(例えば、Mvp1_L1)を含む。例えば、第1リスト(list0)に対応する第1動きベクトルMv0_L0(前方)は、第1動きベクトル予測子Mvp0_L0と動きベクトル差MVD0との和に基づいて取得され得る。同様に、第2動きベクトルMv1_L1は、第2動きベクトル予測子Mvp1_L1と動きベクトル差MVD1との和に基づいて取得され得る。オプションで、ここでの第1リスト(すなわち、list0)に対応する第1動きベクトル(例えば、Mv0_L0)は、第1方向(例えば、前方の方向)に対応する第1動きベクトルとして表現されてもよく、第2リスト(すなわち、list1)に対応する第2動きベクトル(例えば、Mv1_L1)は、第2方向(例えば、後方の方向)に対応する第2動きベクトルとして表現されてもよい。
取り得るケース2: インター予測モードはマージモードである。
符号化装置は、先ず、候補動き情報リストを構築する。
具体的には、映像符号化装置は、インター予測ユニット(インター予測モジュールとも称する)を用いることによって、候補動き情報リスト(候補動きベクトルリストとも称する)を構築する。
次いで、映像符号化装置は、レート歪みコスト基準に従って、候補動き情報リスト内でターゲット候補動き情報を決定する。
具体的に、ターゲット候補動き情報は、ターゲット候補動きベクトル、参照フレームインデックス、及び予測方向指示情報を含み、予測方向指示情報は、双方向予測が適用されることを指し示すために使用され、ターゲット候補動きベクトルは、第1リストに対応する第1動きベクトル、及び第2リストに対応する第2動きベクトルを含み、参照フレームインデックスは、第1リストに対応する第1参照フレームのインデックス、及び第2リストに対応する第2参照フレームのインデックスを含む。
ターゲット候補動き情報は、最適候補動き情報と称されることもあり、あるいは別の名称を持つこともある。結論として、ターゲット候補動き情報は、レート歪みコスト基準(例えば、使用コストが最小化される)に従って候補動き情報リスト内で決定される最適候補である。
取り得るケース3: インター予測モードはスキップモードである。関係する説明については、前述のケース2におけるマージモードの説明を参照されたい。マージモードとの違いは、スキップモードでは残差サンプルを伝送する必要がない点にある。
図6Bを参照するに、この出願のこの実施形態において、現在ピクチャブロックが属する現在ピクチャは、先行参照ピクチャと後続参照ピクチャとの2つの参照ピクチャを持ち、これらは、それぞれ、第1参照ピクチャ(例えば、前方参照ピクチャ又は前方参照フレームであり、ここでの“前方”は第1方向として参照されることもある)及び第2参照ピクチャ(例えば、後方参照ピクチャ又は後方参照フレームであり、ここでの“後方”は第2方向として参照されることもある)である。第1リストに対応する参照サンプルは、第1参照ピクチャ上の参照サンプルであり、第2リストに対応する参照サンプルは、第2参照ピクチャ上の参照サンプルである。
オプションで、BDOF技術に従って、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づく予測を通じて現在ブロックの予測サンプル値を取得することは、現在ブロックの予測サンプル値を取得するために、BDOF技術に従って、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、現在ブロックの各サブブロックの修正動きベクトルを導出し、次いで、修正動きベクトルに基づいて各サブブロックに動き補償を実行して、各サブブロックの予測サンプル値を取得することを含み得る。理解を容易にするために、以下、説明のための例を提供する。
第1リスト(list0)に対応する参照サンプル値のサンプル値はI(0)(i,j)と表されることができ、第2リスト(list1)に対応する参照サンプル値のサンプル値はI(1)(i,j)と表されることができる。これら2つの値をまとめて前方及び後方予測値I(k)(i,j)と呼ぶことができ、ここで、i=0..cuW-1、j=0..cuH-1であり、kは0と1であるとし得る。ここでは、I(k)(i,j)は、8タップ補間フィルタを用いて補間を通じて取得されることができ、他の位置のサンプル値(一行及び一列の拡張が行われる)は、双線形補間フィルタを用いて補間を通じて取得される。なお、拡張された領域のサンプル値は、代わりに別の方法を用いることによって取得されてもよく、例えば、8タップ補間フィルタを用いて取得されてもよいし、あるいは、整数サンプル位置にある参照サンプル値そのままとされてもよい。これは、ここで限定されることではない。ここで、cuW及びcuHは、それぞれ、現在ピクチャブロックの幅及び高さである。BDOF技術に従って、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づく予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下のステップを含み得る。
ステップ1: 第1リストに対応する参照サンプル値のサンプル値と第2リストに対応する参照サンプル値のサンプル値との間の差分絶対値和SADを計算し、SADが閾値TH_CU未満であるかを判定し、SADが閾値TH_CU未満である場合、BDOFを実行することをスキップし、SADが閾値TH_CU以上である場合、BDOFを実行する。このステップはオプションである。
閾値TH_CUは、(1<<(BD-8+shift))×cuW×cuHに設定されることができ、shiftはMax(2,14-BD)である。
あるいは、TH_CUは、1<<(BD-3+shift)に設定されてもよい。
オプションで、BDOFを実行するかは、代わりに他の方式で決定されてもよく、それら他の方式をここで一つずつ列挙することはしない。
BDOFを実行すると決定されたとき、ステップ4を実行することに続く。
ステップ2: 現在CUの前方及び後方予測値の水平勾配値及び垂直勾配値を計算する。
現在CUの前方及び後方予測値の水平勾配値∂I
(k)/∂x(i,j)及び垂直勾配値∂I
(k)/∂y(i,j)は、第1リストに対応する参照サンプル値のサンプル位置(i,j)での水平勾配値∂I
(0)/∂x(i,j)及び垂直勾配値∂I
(0)/∂y(i,j)と、第2リストに対応する参照サンプル値のサンプル位置(i,j)での水平勾配値∂I
(1)/∂x(i,j)及び垂直勾配値∂I
(1)/∂y(i,j)とを含み、ここで、kは逐次に0と1とに設定される。水平勾配値∂I
(k)/∂x(i,j)及び垂直勾配値∂I
(k)/∂y(i,j)は、次式を用いて取得され得る:
ここで、i=0..cuW-1、及びj=0..cuH-1である。
このステップで、現在ピクチャブロックに対するcuW×cuH予測行列が取得され得る。
ステップ4: パディングを通じて、現在CUの前方及び後方予測値、水平勾配値、及び垂直勾配値に対して拡張を実行する。
4×4サブブロックの修正動きベクトルを計算することは、その中に該4×4サブブロックが位置する6×6領域の前方及び後方予測値I(k)(x,y)と、前方及び後方予測値の水平勾配値∂I(k)/∂x(i,j)と、前方及び後方予測値の垂直勾配値∂I(k)/∂y(i,j)とを必要とする。6×6領域の勾配値を計算することは、8×8領域の前方及び後方予測値を必要とする。従って、補間フィルタを用いて前方及び後方予測値を得るときに、(W+2)×(H+2)の勾配値を計算するために、周囲に二行及び二列の拡張を行って、そのサイズが(W+4)×(H+4)である予測サンプルブロックを得る必要があり、ここで、Wは現在CUの幅であり、Hは現在CUの高さである。BDOFの複雑さを低減させるために、CUの境界に対して特別な処理を行うことができる。詳細は、次の通りである。
先ず、8タップフィルタを用いてW×H領域の予測値が取得され、領域が周囲に一行及び一列だけ拡張され、拡張した領域の予測値が双線形フィルタを用いて取得されることで、(W+2)×(H+2)領域の予測値が得られる。
次いで、式に従った、(W+2)×(H+2)領域の予測値に基づく計算を通じて、W×H領域の勾配値が取得され得る。
最後に、パディング法に従って、W×H領域の勾配値が周囲に拡張されて、(W+2)×(H+2)領域の水平勾配値及び垂直勾配値が得られる。W×H領域の予測値が周囲に拡張されて、(W+2)×(H+2)領域の予測値が得られる。
パディングを図6Dに示す。i=-1..cuW、及びj=-1..cuHでのI(k)(i,j)、∂I(k)/∂x(i,j)、及び∂I(k)/∂y(i,j)を得るために、図6Dの方法に従ってパディングが行われる。具体的には、(cuW+2)×(cuH+2)の予測行列、水平勾配行列、及び垂直勾配行列が得られる。
ステップ5: 各4×4サブブロックの修正動きベクトルを導出し、次いで、重み付けを実行する。
各4×4サブブロックに対して、式(2-3)に従って修正動きベクトル(v
x,v
y)が取得される。具体的には、各4×4サブブロックの修正動きベクトル(v
x,v
y)は、L0及びL1の予測値を最小化するように該サブブロックの周りの6×6ウィンドウΩにBDOFを適用することによって取得される。具体的には、(v
x,v
y)は、次式に従って導出される:
ここで、
は、フロア関数である(ここで、floor(A)は、A以下である最大の整数を表す)。th’
BIO=2
13-BDであり、これは、過大な修正動きベクトルによって生じる誤差伝達を防止するための閾値である。S
2,m=S
2>>12、及びS
2,s=S
2&(2
12-1)である。BDは現在サンプルビット幅である。
S1、S2、S3、S5、及びS6は、次式に従って計算される:
ここで、I(0)(i,j)は、現在CU内のサンプル位置(i,j)の前方予測値、すなわち、現在CUの参照サンプル値であって第1リストに対応する参照サンプル値におけるサンプル位置(i,j)のサンプル値であり、I(1)(i,j)は、現在CU内のサンプル位置(i,j)の後方予測値、すなわち、現在CUの参照サンプル値であって第2リストに対応する参照サンプル値におけるサンプル位置(i,j)のサンプル値である。
式(2-3)に従って修正動きベクトルが得られた後、現在ピクチャブロック内の各サンプルの最終予測値、すなわち、現在ピクチャブロックの予測ブロック内のサンプル値が、次式に従って決定され得る:
ここで、shift及びoffsetは、15-BD及び1<<(14-BD)+2・(1<<13)である。rnd(.)は丸め関数(四捨五入)である。predBIO(i,j)は、現行ピクチャブロックのサンプル位置(i,j)の予測サンプル値である。
ステップS601: 現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、符号化装置は、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で現在ピクチャブロックの予測サンプル値を決定する。
具体的には、第1の処理方式は、BDOF(あるいは、双方向オプティカルフロー(Bi-directional optical flow、BIO)と称される)ではない、ことを含む。換言すれば、現在ピクチャブロックのサイズが第2のプリセットサイズであるとき、第1リストに対応する参照サンプル値及び第2リストに対応する参照サンプル値に基づいて現在ピクチャブロックの予測サンプル値を決定するためにBDOFを使用することは許されない。現在ピクチャブロックのサイズは、通常、幅及び高さ(短くW×Hと記載される)によって表され、幅及び高さは、サンプル(sample又はpixel)によって測定される。第2のプリセットサイズは、8×8(1つめの8は、現在ピクチャブロックの幅が8サンプルであることを示し、2つめの8は、現在ピクチャブロックの高さが8サンプルであることを示す)、4×N(4は、現在ピクチャブロックの幅が4サンプルであることを示し、Nは、現在ピクチャブロックの高さがNサンプルであることを示し、類推によって他のサイズが推定される)、8×16、又は16×8を含む。Nは2のべき乗であり、且つ8以上である。例えば、Nの値は、16、32、64などとし得る。
この出願のこの実施形態において、第1リストに対応する参照サンプル値、及び第2リストに対応する参照サンプル値は、それぞれ、第1リスト(すなわち、list0)に対応する第1動きベクトル(例えば、Mv0_L0)、及び第2リスト(すなわち、list1)に対応する第2動きベクトル(例えば、Mv1_L1)に基づく予測を通じて取得される。例えば、第1リスト(すなわち、list0)に対応する参照サンプル値は、第1のリスト(すなわち、list0)に対応する第1動きベクトル(例えば、Mv0_L0)に基づいて決定されることができ、第2リスト(すなわち、list1)に対応する参照サンプル値は、第2リスト(すなわち、list1)に対応する第2動きベクトル(例えば、Mv1_L1)に基づいて決定されることができる。
なお、第1動きベクトル及び第2動きベクトルは、異なるインター予測モードでは異なる方式で決定される。第1動きベクトル及び第2動きベクトルをAMVPモード、マージモード、及びスキップモードにてどのように決定するかの詳細については、ステップS600での説明を参照されたい。詳細をここで再び説明することはしない。
理解されるべきことには、ここでの現在ピクチャブロック(これは、現在ブロックとも称される)は、処理中のピクチャブロックとして理解され得る。例えば、符号化プロセスにおいて、現在ピクチャブロックは、符号化中のピクチャブロック(encoding block)である。
また、第2のプリセットサイズが8×8、4×N、8×16、又は16×8を含む前述のケースは、第2のプリセットサイズが8×8、4×N、8×16、又は16×8であることに限られることもできる。換言すれば、BDOFは、上に列挙された8×8、4×N、8×16、及び16×8なるサイズのうちの1つに対して使用されることが禁止され、あるいは、これらのうちの複数のサイズに対して使用されることが禁止されてもよい。以下では、説明のための例を用いる。
例1: 第2のプリセットサイズは8×8を含む(又は、である)。換言すれば、この出願のこの実施形態において、BDOFは、サイズ8×8に対して使用されることが禁止される。この場合、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下として表現され得る:現在ピクチャブロックのサイズが8×8であるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得する。
例2:第2のプリセットサイズは4×Nを含む(又は、である)。換言すれば、この出願のこの実施形態において、BDOFは、サイズ4×Nに対して使用されることが禁止される。この場合、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下として表現され得る:Nは8以上であるとして、現在ピクチャブロックのサイズが4×Nであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得する。
例3: 第2のプリセットサイズは8×8又は4×Nを含む(又は、である)。換言すれば、この出願のこの実施形態において、BDOFは、サイズ8×8及び4×Nに対して使用されることが禁止される。この場合、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下として表現され得る:Nは8以上であるとして、現在ピクチャブロックのサイズが8×8及び4×Nのいずれかであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得する。
例4: 第2のプリセットサイズは8×8、4×N、8×16、又は16×8を含み(又は、であり)、ここで、Nは8以上である。換言すれば、この出願のこの実施形態において、BDOFは、サイズ8×8、4×N、8×16、及び16×8に対して使用されることが禁止される。この場合、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下として表現され得る:現在ピクチャブロックのサイズが8×8、4×N、8×16、及び16×8のうちのいずれか1つであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得する。
例5: 第2のプリセットサイズはN×8を含み(又は、であり)、ここで、Nは4以上である。換言すれば、この出願のこの実施形態において、BDOFは、サイズN×8に対して使用されることが禁止される。この場合、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下として表現され得る:現在ピクチャブロックのサイズがN×8であるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得する。
例6: 第2のプリセットサイズはN×8又は4×Nを含み(又は、であり)、ここで、Nは4以上である。換言すれば、この出願のこの実施形態において、BDOFは、サイズN×8又は4×Nに対して使用されることが禁止される。この場合、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下として表現され得る:現在ピクチャブロックのサイズがN×8又は4×Nであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得する。
さらに、一部のシナリオでは、サイズM×4に対してもBDOFが使用されることが禁止されるので、この出願において、第2のプリセットサイズに対してBDOFが使用されることが禁止されるとき、BDOFは更に、Mは4以上の整数であるとして、サイズM×4に対して使用されることが禁止され得る。
理解され得ることには、前述のケースを参考にして、別のケースを更に得ることができ、別のケースもこの出願の保護範囲に入るものである。理解されるべきことには、この出願のこの実施形態における方法は、例えばビデオエンコーダ又は映像符号化機能を持つエレクトロニクス装置などの、ピクチャ予測装置によって実行されることができ、具体的に、ビデオエンコーダ内のインター予測ユニットによって実行され得る。
オプションの一ソリューションにおいて、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で現在ピクチャブロックの予測サンプル値を決定することは、
第1リストに対応する参照サンプル値及び第2リストに対応する参照サンプル値において同じ位置を持つサンプル値に対して重み付け計算を実行して、現在ピクチャブロックの予測サンプル値を取得すること、又は
マージ・ウイズ・動きベクトル差MMVD技術に従って、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づく予測を通じて、現在ピクチャブロックの予測サンプル値を取得すること、又は
結合インター/イントラ予測CIIP技術に従って、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づく予測を通じて、現在ピクチャブロックの予測サンプル値を取得すること、
を含む。
この出願のこの実施形態において、重み付け計算方式、MMVD技術、又はCIIP技術が具体的に使用されるかは、対応する条件を用いることによって決定されてもよいし、あるいは、対応する指示情報を用いることによって指し示されてもよい。オプションで、後にビットストリームに符号化される情報は更にターゲット識別子を含むことができ、ターゲット識別子は、現在ブロックの予測サンプル値を予測するのに使用される方式を指し示すために使用される。例えば、ターゲット識別子はmmvd_flag[x0][y0]である。mmvd_flag[x0][y0]がプリセット値(例えば、値1)であるとき、それは、現在ピクチャブロックにMMVD方式が使用されることを指し示す。
オプションで、MMVD実装が以下に提供される。図6Cに示すように、現在ピクチャブロックの予測動き情報が取得される。現在ピクチャブロックの前方動きベクトル予測子及び後方動きベクトル予測子(すなわち、第1リストに対応する前述の動きベクトル予測子及び第2リストに対応する前述の動きベクトル予測子)が、それぞれ、MV0(-22,18)及びMV1(2,12)であり、且つ前方動きベクトル差及び後方動きベクトル差が、それぞれ、MVD0(1,0)及びMVD1(-1,0)であると仮定する。
現在ピクチャブロックに対して前方予測及び後方予測が別々に実行されて、現在ピクチャブロックの前方予測ブロック及び後方予測ブロックが得られる。
MV0(-22,18)及びMV1(2,12)が前方動きベクトル予測子及び後方動きベクトル予測子の基準入力として用いられ、そして、前方参照予測ブロックq0及び後方参照予測ブロックh0に対して第1精度の動き探索が実行される。例えば、第1精度は1サンプルである。
前方参照予測ブロックq0及び後方参照予測ブロックh0が各々、第1精度の動き探索を実行するための開始探索点として用いられ、そして、その都度発見される新たな前方参照予測ブロックと新たな後方参照予測ブロックとの間の差が決定される。例えば、上記前方参照予測ブロック及び上記後方参照予測ブロックの周りの8対の前方参照予測ブロックと後方参照予測ブロックとの間の差が決定され、そして、前方参照予測ブロックq0と後方参照予測ブロックh0との間の差が決定される。最小の差を持つ前方参照予測ブロック及び後方参照予測ブロックの動きベクトル予測子が、それぞれ、(-21,18)及び(1,12)であると仮定する。探索点が、前方参照予測ブロックq1及び後方参照予測ブロックh1にそれぞれ対応する(-21,18)及び(1,12)に更新され、第1精度の動き探索が引き続き実行される。前方参照予測ブロックq1及び後方参照予測ブロックh1が各々、第1精度の動き探索を実行するための開始探索点として用いられ、そして、その都度発見される前方参照予測ブロックと後方参照予測ブロックとの間の差が決定される。例えば、上記前方参照予測ブロック及び上記後方参照予測ブロックの周りの8対の前方参照予測ブロックと後方参照予測ブロックとの間の差が決定され、そして、前方参照予測ブロックq1と後方参照予測ブロックh1との間の差が決定される。最小の差を持つ前方参照予測ブロック及び後方参照予測ブロックの動きベクトル予測子が、それぞれ、(-20,18)及び(0,12)であると仮定する。(-20,18)及び(0,12)が、それぞれ、前方参照予測ブロックq2及び後方参照予測ブロックh2に対応する。
この出願のこの実施形態において、第1精度の動き探索の回数は、例えば、1又は2に設定され得る。あるいは、動き探索範囲が決められる。その範囲外で探索は停止される。
一例として2回を用いると、前方参照予測ブロックq2の動きベクトル予測子(-20,18)とMVD0 (1,0)とを足し合わせて(-19,18)が得られ、後方参照予測ブロックh2の動きベクトル予測子(0,12)とMVD1とを足し合わせて(1,12)が得られる。従って、現在ピクチャブロックは、前方動きベクトル予測子(-19,18)及び後方動きベクトル予測子(1,12)に基づいて予測される。図6Cは、1回の動き探索プロセスのみを示している。
理解されるべきことには、BDOF技術は、現在ピクチャブロックの予測サンプル値を予測するための従来技術でのパッチ最適化技術と同等である。BDOF技術によれば、多くのシナリオにおいて、現在ピクチャブロックの実際のサンプル値にいっそう近い予測サンプル値を得ることができる。従って、その予測サンプル値に基づいて得られるサンプル残差はより小さいものとなり、それ故に、コーディング効率を向上させることができる。前述の重み付け計算方式は、現在ピクチャブロックの予測サンプル値を得るための従来技術とみなされてもよく、前述のMMVD技術及びCIIP技術は各々、従来技術でのパッチ最適化技術とみなされてもよい。この出願のこの実施形態において、現在ピクチャブロックのサイズが第2のプリセットサイズであるとき、現在ピクチャブロックの予測サンプル値は、BDOF技術ではなく、従来技術(例えば、重み付け計算方式)又は他のパッチ最適化技術(例えば、MMVD又はCIIP)に従って決定される。これは、コーディングの複雑さを大幅に低減させることができるとともに、コーディング効率を向上させることができる。
ステップS602: 符号化装置は、少なくとも現在ピクチャブロックの予測サンプル値に基づいて、現在ピクチャブロックを再構成する。
理解され得ることには、現在ピクチャブロックの予測サンプル値は前述のステップS600で取得され得る。そのステップで得られる現在ブロックの予測サンプル値は、1つ以上のサブブロックの予測サンプル値を含み、該1つ以上のサブブロックは、現在ピクチャブロックの現在サブブロックを含む。サブブロックのサイズは、現在ブロックのサイズと等しくてもよい。現在ブロックが1つのサブブロックのみを含む場合、それは、そのサブブロックのサイズが現在ブロックのサイズと等しいとし得ることに相当する。現在ピクチャブロックの予測サンプル値は、代わりに、前述のステップS601で取得されてもよい。
なお、この出願のこの実施形態において、現在ピクチャブロックのサンプル残差を更に取得してもよく、現在ピクチャブロックのサンプル残差は0であってもよい。例えば、マージモード及びAMVPモードの各々ではサンプル残差を取得する必要がある。スキップモードではサンプル残差を考慮する必要はなく、それ故に、デコーダ側にサンプル残差を伝送する必要はない。
ステップS603: 符号化装置は、シンタックス要素を送信対象ビットストリームに符号化し、シンタックス要素は少なくとも、双方向予測が適用されることを指し示すために使用される。
具体的に、異なるインター予測モードでは、異なるシンタックス要素が送信対象ビットストリームに符号化される。例は次の通りである。
インター予測モードがAMVPモードであるとき、シンタックス要素は、第1インデックス、第2インデックス、予測方向指示情報、及び動きベクトル差MVDを含み、第1インデックス(例えば、mvp_lX_flag[xCb][yCb])は、ターゲット候補動きベクトル予測子を指し示すために使用され、ターゲット候補動きベクトル予測子は、第1リスト(例えば、list0)に対応する第1動きベクトル予測子、及び第2リスト(例えば、list1)に対応する第2動きベクトル予測子を含み、動きベクトル差MVDは、第1リストに対応する第1MVD、及び/又は第2リストに対応する第2MVDを含む。第2インデックス(これらは、参照フレームインデックスとも称される)は、現在ピクチャブロックの参照フレームを指し示すために使用され、参照フレームは、第1リストに対応する第1参照フレーム、及び第2リストに対応する第2参照フレームを含む。例えば、第2インデックスは、refIdxL0及びrefIdxL1であり、refIdxL0は、第1リストに対応する第1参照フレームのインデックスであり、refIdxL1は、第2リストに対応する第2参照フレームのインデックスである。予測方向指示情報(例えば、predFlagL0=1及びpredFlagL1=1)は、双方向予測が適用されることを指し示すために使用される。
第1リストに対応する第1動きベクトル(例えば、Mv0_L0)は、第1リストに対応する第1動きベクトル予測子(例えば、Mvp0_L0)と、第1リストに対応する第1MVD(例えば、MVD0)とに基づいて取得される。例えば、Mv0_L0=Mvp0_L0+MVD0である。
第2リストに対応する第2動きベクトル(例えば、Mv1_L1)は、第2リストに対応する第2動きベクトル予測子(例えば、Mvp1_L1)と、第2リストに対応する第2MVD(例えば、MVD1)とに基づいて取得される。例えば、Mv1_L1=Mvp1_L1+MVD1である。
映像コーディング分野において、インター予測モードは、前方予測、後方予測、及び双方向予測(前方予測及び後方予測を含む)を含み、エンコーダ側で使用される特定の予測モードは、通常、予測方向指示情報によって指し示される。例えば、予測方向指示情報は、シンタックス要素predFlagL0及びpredFlagL1を含み得る。predFlagL0=1且つpredFlagL1=1であるとき、予測方向指示情報は、双方向予測が適用されることを指し示す。predFlagL0=1且つpredFlagL1=0であるとき、予測方向指示情報は、前方予測が使用されることを指し示す。predFlagL0=0且つpredFlagL1=1であるとき、予測方向指示情報は、後方予測が使用されることを指し示す。理解され得ることには、“前方”及び“後方”は、それぞれ、現在ピクチャの参照ピクチャリスト0(list0、すなわち、前述の第1リスト)及び参照ピクチャリスト1(list1、すなわち、前述の第2リスト)に対応する。オプションで、MMVD技術が使用されるとき、1つのMVDのみが伝送されてもよく、別方向のものであってデコーダ側によって使用される必要があるMVDは、伝送されたMVDに基づいて導出され得る。
インター予測モードがマージモードであるとき、 オプションの一ソリューションにおいて、シンタックス要素は、ターゲット候補動き情報のインデックス(例えば、merge_idx[xCb][yCb])を含み、ターゲット候補動き情報は、ターゲット候補動きベクトル、参照フレームインデックス、及び予測方向指示情報(例えば、predFlagL0=1及びpredFlagL1=1)を含み、予測方向指示情報は、双方向予測が適用されることを指し示すために使用され、ターゲット候補動きベクトルは、第1リスト(すなわち、list0)に対応する第1動きベクトル、及び第2リスト(すなわち、list1)に対応する第2動きベクトルを含み、参照フレームインデックスは、第1リストに対応する第1参照フレームのインデックス(例えば、refIdxL0)、及び第2リストに対応する第2参照フレームのインデックス(例えば、refIdxL1)を含む。
この出願のこの実施形態において、参照フレームインデックスは、指定された参照ピクチャリスト(第1リストlist0又は第2リストlist1)内の使用される動きベクトル(例えば、第1動きベクトル又は第2動きベクトル)に対応する参照ピクチャを特定するために使用される。ピクチャはフレームと称されることがあり、参照ピクチャは参照フレームと称されることがある。
映像コーディング分野において、インター予測モードは、前方予測、後方予測、及び双方向予測(前方予測及び後方予測を含む)を含み、エンコーダ側で使用される特定の予測モードは、通常、予測方向指示情報によって指し示される。例えば、予測方向指示情報は、シンタックス要素predFlagL0及びpredFlagL1を含み得る。predFlagL0=1且つpredFlagL1=1であるとき、予測方向指示情報は、双方向予測が適用されることを指し示す。predFlagL0=1且つpredFlagL1=0であるとき、予測方向指示情報は、前方予測が使用されることを指し示す。predFlagL0=0且つpredFlagL1=1であるとき、予測方向指示情報は、後方予測が使用されることを指し示す。理解され得ることには、“前方”及び“後方”は、それぞれ、現在ピクチャの参照ピクチャリスト0(list0、すなわち、前述の第1リスト)及び参照ピクチャリスト1(list1、すなわち、前述の第2リスト)に対応する。
この出願のこの実施形態において、当該方法は更に、現在ピクチャブロックのサンプル値と現在ピクチャブロックの予測サンプル値とに基づいて、サンプル残差を決定することを含み、シンタックス要素を送信対象ビットストリームに符号化することは、シンタックス要素及びサンプル残差を送信対象ビットストリームに符号化することを含む。換言すれば、シンタックス要素に加えて、更にサンプル残差が、送信対象ビットストリームに符号化され得る(サンプル残差は、残差計算ユニットを用いることによって計算を通じて取得され得る)。このソリューションは、AMVPモード及びマージモードに適用され得る。また、サンプル残差を送信対象ビットストリームに符号化する必要がない場合も存在する。例えば、スキップモードでは、サンプル残差を送信対象ビットストリームに符号化する必要はない。
図7は、この出願の一実施形態に従った復号方法のフローチャートである。この手順は、映像復号装置によって実行され得る。映像復号装置は、前述のビデオデコーダ30とすることができ、あるいはビデオデコーダ30を含む装置とすることができる。具体的には、当該手順は、ビデオデコーダ30の、インター予測ユニット(インター予測器とも称される)344、エントロピー復号ユニット(エントロピーデコーダとも称される)304、及びこれらに類するものによって実行され得る。当該手順は、一連のステップ又は動作として説明される。当該手順のステップ又は動作は、様々な順に及び/又は同時に実行されてもよく、図7に示す実行順に限定されるものではない。図7に示す手順の関連説明は、以下の通りである。
ステップS700: 復号装置は、ビットストリームを解析してシンタックス要素を取得し、シンタックス要素は少なくとも、双方向予測が適用されることを指し示すために使用される。
具体的には、エンコーダ側が符号化プロセスにおいて複数の異なるインター予測モードを使用する場合、復号装置は、ビットストリームを解析することによって異なるシンタックス要素を取得し得る。以下、AMVPモード、マージモード、及びスキップモードを参照して詳細な説明を提供する。
AMVPにおいて、シンタックス要素は、第1インデックス、第2インデックス、予測方向指示情報、及び動きベクトル差MVDを含み、第1インデックス(例えば、mvp_lX_flag[xCb][yCb])は、ターゲット候補動きベクトル予測子を指し示すために使用され、ターゲット候補動きベクトル予測子は、第1リスト(例えば、list0)に対応する第1動きベクトル予測子、及び第2リスト(例えば、list1)に対応する第2動きベクトル予測子を含み、動きベクトル差MVDは、第1リストに対応する第1MVD、及び/又は第2リストに対応する第2MVDを含む(例えば、1つのMVDのみが含まれるとき、伝送されないMVDは、伝送されたMVDに基づいて導出され得る)。第2インデックス(これらは、参照フレームインデックスとも称される)は、現在ピクチャブロックの参照フレームを指し示すために使用され、参照フレームは、第1リストに対応する第1参照フレーム、及び第2リストに対応する第2参照フレームを含む。例えば、第2インデックスは、refIdxL0及びrefIdxL1であり、refIdxL0は、第1リストに対応する第1参照フレームのインデックスであり、refIdxL1は、第2リストに対応する第2参照フレームのインデックスである。予測方向指示情報(例えば、predFlagL0=1及びpredFlagL1=1)は、双方向予測が適用されることを指し示すために使用される。
第1リストに対応する第1動きベクトル(例えば、Mv0_L0)が、第1リストに対応する第1動きベクトル予測子(例えば、Mvp0_L0)と、第1リストに対応する第1MVD(例えば、MVD0)とに基づいて取得される。例えば、Mv0_L0=Mvp0_L0+MVD0である。
第2リストに対応する第2動きベクトル(例えば、Mv1_L1)が、第2リストに対応する第2動きベクトル予測子(例えば、Mvp1_L1)と、第2リストに対応する第2MVD(例えば、MVD1)とに基づいて取得される。例えば、Mv1_L1=Mvp1_L1+MVD1である。
映像コーディング分野において、インター予測モードは、前方予測、後方予測、及び双方向予測(前方予測及び後方予測を含む)を含み、エンコーダ側で使用される特定の予測モードは、通常、予測方向指示情報によって指し示される。例えば、予測方向指示情報は、シンタックス要素predFlagL0及びpredFlagL1を含み得る。predFlagL0=1且つpredFlagL1=1であるとき、予測方向指示情報は、双方向予測が適用されることを指し示す。predFlagL0=1且つpredFlagL1=0であるとき、予測方向指示情報は、前方予測が使用されることを指し示す。predFlagL0=0且つpredFlagL1=1であるとき、予測方向指示情報は、後方予測が使用されることを指し示す。理解され得ることには、“前方”及び“後方”は、それぞれ、現在ピクチャの参照ピクチャリスト0(list0、すなわち、前述の第1リスト)及び参照ピクチャリスト1(list1、すなわち、前述の第2リスト)に対応する。
マージモードにおいて、シンタックス要素は、ターゲット候補動き情報のインデックス(例えば、merge_idx[xCb][yCb])を含み、ターゲット候補動き情報は、ターゲット候補動きベクトル、参照フレームインデックス、及び予測方向指示情報(例えば、predFlagL0=1及びpredFlagL1=1)を含み、予測方向指示情報は、双方向予測が適用されることを指し示すために使用され、ターゲット候補動きベクトルは、第1リスト(すなわち、list0)に対応する第1動きベクトル、及び第2リスト(すなわち、list1)に対応する第2動きベクトルを含み、参照フレームインデックスは、第1リストに対応する第1参照フレームのインデックス(例えば、refIdxL0)、及び第2リストに対応する第2参照フレームのインデックス(例えば、refIdxL1)を含む。
この出願のこの実施形態において、参照フレームインデックスは、指定された参照ピクチャリスト(第1リストlist0又は第2リストlist1)内の使用される動きベクトル(例えば、第1動きベクトル又は第2動きベクトル)に対応する参照ピクチャを特定するために使用される。ピクチャはフレームと称されることがあり、参照ピクチャは参照フレームと称されることがある。
映像コーディング分野において、インター予測モードは、前方予測、後方予測、及び双方向予測(前方予測及び後方予測を含む)を含み、エンコーダ側で使用される特定の予測モードは、通常、予測方向指示情報によって指し示される。例えば、予測方向指示情報は、シンタックス要素predFlagL0及びpredFlagL1を含み得る。predFlagL0=1且つpredFlagL1=1であるとき、予測方向指示情報は、双方向予測が適用されることを指し示す。predFlagL0=1且つpredFlagL1=0であるとき、予測方向指示情報は、前方予測が使用されることを指し示す。predFlagL0=0且つpredFlagL1=1であるとき、予測方向指示情報は、後方予測が使用されることを指し示す。理解され得ることには、“前方”及び“後方”は、それぞれ、現在ピクチャの参照ピクチャリスト0(list0、すなわち、前述の第1リスト)及び参照ピクチャリスト1(list1、すなわち、前述の第2リスト)に対応する。
スキップモードにおいて、シンタックス要素に含まれるコンテンツは、マージモードでのシンタックス要素に含まれるコンテンツと同じであり、違いは、スキップモードでは残差サンプルを伝送する必要がない点にある。
この出願のこの実施形態において、例えばAMVPモード及びマージモードでといった、一ケースでは、ビットストリームを解析することによってシンタックス要素及びサンプル残差が取得される。例えばスキップモードでといった、他の一ケースでは、ビットストリームを解析することによってシンタックス要素は取得されるが、解析を通じて残差サンプルは取得されない。
ビットストリームが解析された後、先ず、複数のプリセット条件が満足されるかが判定され、該複数のプリセット条件又は全てのプリセット条件が満足される場合にS701が実行され、該複数のプリセット条件が満足されない場合にはS702が実行される。複数のプリセット条件が満足されない場合、S702のケースのみがここでの詳細な説明を代表するものとして使用される。従来技術におけるものと同じである他のケースについては、この出願で説明することはしない。
ステップS701: 複数のプリセット条件が満足されるときに、復号装置は、現在ピクチャブロックに対して双方向オプティカルフローBDOF処理を実行して現在ピクチャブロックの予測サンプル値を取得する。
双方向オプティカルフロー(Bi-directional optical flow、BDOF)は、略してBIO又はBDOFと称され得る。
上記複数のプリセット条件は少なくとも、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することという条件を含む。現在ピクチャブロックのサイズは、通常、幅及び高さ(短くW×Hと記載される)によって表され、幅及び高さは、サンプル(sample又はpixel)によって測定される。例えば、現在ピクチャブロックのサイズが8×8である場合、1つめの8は、現在ピクチャブロックの幅が8サンプルであることを示し、2つめの8は、現在ピクチャブロックの高さが8サンプルであることを示す。他の一例では、現在ピクチャブロックのサイズが8×16である場合、8は、現在ピクチャブロックの幅が8サンプルであることを示し、16は、現在ピクチャブロックの高さが16サンプルであることを示す。
現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、且つ現在ピクチャブロックの幅Wと高さHとの積が64に等しいときに幅Wが高さHに等しくない、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、且つ現在ピクチャブロックの幅Wが8以上である、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、現在ピクチャブロックの幅Wが8以上であり、且つ現在ピクチャブロックの幅Wと現在ピクチャブロックの高さHとの積が64よりも大きい、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、現在ピクチャブロックの幅Wが8以上であり、且つ現在ピクチャブロックの幅Wと現在ピクチャブロックの高さHとの積が128よりも大きい、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8よりも大きい、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8よりも大きく、且つ現在ピクチャブロックの幅Wが8以上である、ことを含む(又は、ことである)。
なお、BDOF技術に従って、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて現在ピクチャブロックの予測サンプル値を決定する(又は予測を通じて取得する)かが決定される前に、現在ピクチャブロックのサイズに加えて、別の参照条件が存在してもよい。別の参照条件は、ここで限定されるものではない。理解を容易にするために、以下では、説明のための例を用いる。
条件A: 現在映像シーケンスに対してBDOF技術が使用されることが許されることを指し示すハイレベルシンタックス識別子sps_bdof_enabled_flagが存在する。
条件B: 第1リスト(List1)に対応する予測方向指示情報predFlagL0が1に等しく、且つ第2リスト(list0)に対応する予測方向指示情報predFlagL1が1に等しい。
条件C: 第1リスト(list0)に対応する参照フレームのピクチャオーダカウントPOC_L0、第2リスト(list1)に対応する参照フレームのピクチャオーダカウントPOC_L1、及びその中に現在ピクチャブロックが位置するピクチャのピクチャオーダカウントPOC_Curが、(POC_L0-POC_Cur)×(POC_L1-POC_Cur)<0という関係を満足する。換言すれば、現在ピクチャブロックを含むピクチャが、2つの参照ピクチャの間にある。
条件D: MotionModelIdc[xCb][yCb]が0に等しい。MotionModelIdcは、動き補償に関する動きモデルインデックスである。0に等しいMotionModelIdc[xCb][yCb]は、現在ブロックの動き補償のための動きモデルが並進運動(Translational motion)であることを指し示す。
条件E: merge_subblock_flag[x0][y0]が0に等しく、ここで、0に等しいmerge_subblock_flag[x0][y0]は、現在ピクチャブロックに対してサブブロックマージモードが適用されないことを指し示す。
条件F: sym_mvd_flag[x0][y0]が0に等しい。0に等しいsym_mvd_flag[x0][y0]は、現在ブロックに対してmvd_coding(x0,y0,refList,cpIdx)シンタックス構造が存在することを指し示す。
条件G: bcwIdx[xCb][yCb]が0に等しい。bcwIdxは、現在ピクチャブロックに対する双方向予測重みインデックスを示す。
条件H: cIdxが0に等しい。cIdxは、現在ピクチャブロックの色成分インデックスを表す。
条件I: 現在ピクチャブロックのサイズが第1のプリセットサイズである。
条件J: luma_weight_l0_flag[refIdxL0]及びluma_weight_l1_flag[refIdxL1]の両方が0に等しく、ここで、0に等しいluma_weight_l0_flagは、list0予測のルマコンポーネントに対する重み付け係数が存在しないことを指し示し、0に等しいluma_weight_l1_flagは、list1予測のルマコンポーネントに対する重み付け係数が存在しないことを指し示す。
例えば、条件A乃至Jの全てが満足されるとき、現在ピクチャブロックの予測サンプル値を予測するためにBDOF技術が使用され得ることが決定される。例えば、bdofFlagがtrueに設定される。なお、前述の条件は単なる例であり、別の条件が更に追加されたり、あるいは前述の条件のうちの1つ以上が置き換えられたり、あるいは前述の条件のうちの1つ以上が除去されたりしてもよい。
理解されるべきことには、ここでの現在ピクチャブロック(これは、現在ブロックとも称される)は、処理中のピクチャブロックとして理解され得る。例えば、復号プロセスにおいて、現在ピクチャブロックは、復号中のピクチャブロック(decoding block)である。
理解され得ることには、前述のケースを参考にして、別のケースを更に得ることができ、別のケースもこの出願の保護範囲に入るものである。
理解されるべきことには、この出願のこの実施形態における方法は、例えばビデオデコーダ又は映像復号機能を持つエレクトロニクス装置などの、ピクチャ予測装置によって実行されることができ、具体的に、ビデオデコーダ内の動き補償ユニットによって実行され得る。
具体的には、BDOF技術を使用するための、このソリューションにおける条件は、BDOF技術を使用するための、従来技術における条件とは異なり、特に、現在ピクチャブロックのサイズに関する要件が異なる。第1のプリセットサイズを持つ現在ピクチャブロックに対してBDOF技術を使用することで、実際のサンプル値にいっそう近い予測サンプル値を得ることができ、コーディングの複雑さを適切に制御することができ、また、コーディング効率を向上させることができる。
この出願のこの実施形態において、複数のプリセット条件が満足されるときに復号装置が現在ピクチャブロックに対して双方向オプティカルフローBDOF処理を実行することは、具体的に以下とし得る:複数のプリセット条件が満足されるときに、復号装置は、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプルとに基づいて、現在ピクチャブロックに対して双方向オプティカルフローBDOF処理を実行する。
この出願のこの実施形態において、第1リストに対応する参照サンプル値及び第2リストに対応する参照サンプル値は、それぞれ、第1リスト(すなわち、list0)に対応する第1動きベクトル(例えば、Mv0_L0)及び第2リスト(すなわち、list1)に対応する第2動きベクトル(例えば、Mv1_L1)に基づく予測を通じて取得される。例えば、第1リスト(すなわち、list0)に対応する参照サンプル値は、第1リスト(すなわち、list0)に対応する第1動きベクトル(例えば、Mv0_L0)に基づいて決定されることができ、第2リスト(すなわち、list1)に対応する参照サンプル値は、第2リスト(すなわち、list1)に対応する第2動きベクトル(例えば、Mv1_L1)に基づいて決定されることができる。
理解され得ることには、第1リスト(すなわち、list0)に対応する第1動きベクトル(例えば、Mv0_L0)及び第2リスト(すなわち、list1)に対応する第2動きベクトル(例えば、Mv1_L1)は、異なるインター予測モードでは異なる方式で取得される。使用される具体的なインター予測モードは、モード選択ユニットを用いることによって選択され得る。以下、AMVPモード、マージモード、及びスキップモードにおいて第1動きベクトル及び第2動きベクトルをどのように決定するかを別々に説明する。
取り得るケース1: インター予測モードはAMVPモードである。
復号装置は、先ず、候補動きベクトル予測子MVPリストを構築する。
具体的には、復号装置は、インター予測ユニット(インター予測モジュールとも称する)を用いることによって、候補動きベクトル予測子MVPリスト(候補動きベクトルリストとも称する)を構築する。構築される候補動きベクトル予測子MVPリストは、三要素の(triplet)候補動きベクトル予測子MVPリスト又は二要素の(2-tuple)候補動きベクトル予測子MVPリストとし得る。この出願のこの実施形態において、復号装置は、双方向予測方式でインター予測を実行する。
次いで、復号装置は、ターゲット候補動き情報に対応するインデックスに基づいて、MVPリスト内でターゲット候補動き情報を決定する。
具体的には、ターゲット候補動き情報は、最適候補動きベクトルと称されることもあり、あるいは別の名称を持つこともある。
続いて、ターゲット候補動き情報に基づいて、第1動きベクトル及び第2動きベクトルが決定される。ターゲット候補動き情報は、第1リスト(すなわち、list0)に対応する第1動きベクトル予測子(例えば、Mvp0_L0)、及び第2リスト(すなわち、list1)に対応する予測子(例えば、Mvp1_L1)を含む。例えば、第1リスト(list0)に対応する第1動きベクトルMv0_L0(前方)は、第1動きベクトル予測子Mvp0_L0と動きベクトル差MVD0との和に基づいて取得され得る。同様に、第2動きベクトルMv1_L1は、第2動きベクトル予測子Mvp1_L1と動きベクトル差MVD1との和に基づいて取得され得る。オプションで、ここでの第1リスト(すなわち、list0)に対応する第1動きベクトル(例えば、Mv0_L0)は、第1方向(例えば、前方の方向)に対応する第1動きベクトルとして表現されてもよく、第2リスト(すなわち、list1)に対応する第2動きベクトル(例えば、Mvp_L1)は、第2方向(例えば、後方の方向)に対応する第2動きベクトルとして表現されてもよい。
取り得るケース2: インター予測モードはマージモードである。
復号装置は、先ず、候補動き情報リストを構築する。
具体的には、復号装置は、インター予測ユニット(インター予測モジュールとも称する)を用いることによって、候補動き情報リスト(候補動きベクトルリストとも称する)を構築する。
次いで、復号装置は、ターゲット候補動き情報に対応するインデックスに基づいて、候補動き情報リスト内でターゲット候補動き情報を決定する。
具体的に、ターゲット候補動き情報は、ターゲット候補動きベクトル、参照フレームインデックス、及び予測方向指示情報を含み、予測方向指示情報は、双方向予測が適用されることを指し示すために使用され、ターゲット候補動きベクトルは、第1リストに対応する第1動きベクトル、及び第2リストに対応する第2動きベクトルを含み、参照フレームインデックスは、第1リストに対応する第1参照フレームのインデックス、及び第2リストに対応する第2参照フレームのインデックスを含む。
ターゲット候補動き情報は、最適候補動き情報と称されることもあり、あるいは別の名称を持つこともある。
取り得るケース3: インター予測モードはスキップモードである。関係する説明については、前述のケース2におけるマージモードの説明を参照されたい。マージモードとの違いは、スキップモードでは残差サンプルを伝送する必要がない点にある。
図6Bを参照するに、この出願のこの実施形態において、現在ピクチャブロックが属する現在ピクチャは、先行参照ピクチャと後続参照ピクチャとの2つの参照ピクチャを持ち、これらは、それぞれ、第1参照ピクチャ(例えば、前方参照ピクチャ又は前方参照フレームであり、ここでの“前方”は第1方向として参照されることもある)及び第2参照ピクチャ(例えば、後方参照ピクチャ又は後方参照フレームであり、ここでの“後方”は第2方向として参照されることもある)である。第1リストに対応する参照サンプル値は、第1参照ピクチャ上の参照サンプル値であり、第2リストに対応する参照サンプル値は、第2参照ピクチャ上の参照サンプル値である。
オプションで、BDOF技術に従って、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づく予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、現在ブロックの予測サンプル値を取得するために、BDOF技術に従って、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、現在ピクチャブロックの各サブブロックの修正動きベクトルを導出し、次いで、修正動きベクトルに基づいて各サブブロックに動き補償を実行して、各サブブロックの予測サンプル値を取得することを含み得る。理解を容易にするために、以下、説明のための例を提供する。
第1リスト(list0)に対応する参照サンプル値のサンプル値はI(0)(i,j)と表されることができ、第2リスト(list1)に対応する参照サンプル値のサンプル値はI(1)(i,j)と表されることができる。これら2つの値をまとめて前方及び後方予測値I(k)(i,j)と呼ぶことができ、ここで、i=0..cuW-1、j=0..cuH-1であり、kは0と1であるとし得る。ここでは、I(k)(i,j)は、8タップ補間フィルタを用いて補間を通じて取得されることができ、他の位置のサンプル値(一行及び一列の拡張が行われる)は、双線形補間フィルタを用いて補間を通じて取得される。なお、拡張された領域のサンプル値は、代わりに別の方法を用いることによって取得されてもよく、例えば、8タップ補間フィルタを用いて取得されてもよいし、あるいは、整数サンプル位置にある参照サンプル値そのままとされてもよい。これは、ここで限定されることではない。ここで、cuW及びcuHは、それぞれ、現在ピクチャブロックの幅及び高さである。BDOF技術に従って、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づく予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下のステップを含み得る。
ステップ1: 第1リストに対応する参照サンプル値のサンプル値と第2リストに対応する参照サンプル値のサンプル値との間の差分絶対値和SADを計算し、SADが閾値TH_CU未満であるかを判定し、SADが閾値TH_CU未満である場合、BDOFを実行することをスキップし、SADが閾値TH_CU以上である場合、BDOFを実行する。このステップはオプションである。
閾値TH_CUは、(1<<(BD-8+shift))×cuW×cuHに設定されることができ、shiftはMax(2,14-BD)である。
あるいは、TH_CUは、1<<(BD-3+shift)に設定されてもよい。
オプションで、BDOFを実行するかは、代わりに他の方式で決定されてもよく、それら他の方式をここで一つずつ列挙することはしない。
BDOFを実行すると決定されたとき、ステップ4を実行することに続く。
ステップ2: 現在CUの前方及び後方予測値の水平勾配値及び垂直勾配値を計算する。
現在CUの前方及び後方予測値の水平勾配値∂I
(k)/∂x(i,j)及び垂直勾配値∂I
(k)/∂y(i,j)は、第1リストに対応する参照サンプル値のサンプル位置(i,j)での水平勾配値∂I
(0)/∂x(i,j)及び垂直勾配値∂I
(0)/∂y(i,j)と、第2リストに対応する参照サンプル値のサンプル位置(i,j)での水平勾配値∂I
(1)/∂x(i,j)及び垂直勾配値∂I
(1)/∂y(i,j)とを含み、ここで、kは逐次に0と1とに設定される。水平勾配値∂I
(k)/∂x(i,j)及び垂直勾配値∂I
(k)/∂y(i,j)は、次式を用いて取得され得る:
ここで、i=0..cuW-1、及びj=0..cuH-1である。
このステップで、現在ピクチャブロックに対するcuW×cuH予測行列が取得され得る。
ステップ4: パディングを通じて、現在CUの前方及び後方予測値、水平勾配値、及び垂直勾配値に対して拡張を実行する。
4×4サブブロックの修正動きベクトルを計算することは、その中に該4×4サブブロックが位置する6×6領域の前方及び後方予測値I(k)(x,y)と、前方及び後方予測値の水平勾配値∂I(k)/∂x(i,j)と、前方及び後方予測値の垂直勾配値∂I(k)/∂y(i,j)とを必要とする。6×6領域の勾配値を計算することは、8×8領域の前方及び後方予測値を必要とする。従って、補間フィルタを用いて前方及び後方予測値を得るときに、(W+2)×(H+2)の勾配値を計算するために、周囲に二行及び二列の拡張を行って、そのサイズが(W+4)×(H+4)である予測サンプルブロックを得る必要があり、ここで、Wは現在CUの幅であり、Hは現在CUの高さである。BDOFの複雑さを低減させるために、CUの境界に対して特別な処理を行うことができる。詳細は、次の通りである。
先ず、8タップフィルタを用いてW×H領域の予測値が取得され、領域が周囲に一行及び一列だけ拡張され、拡張した領域の予測値が双線形フィルタを用いて取得されることで、(W+2)×(H+2)領域の予測値が得られる。
次いで、式に従った、(W+2)×(H+2)領域の予測値に基づく計算を通じて、W×H領域の勾配値が取得され得る。
最後に、パディング法に従って、W×H領域の勾配値が周囲に拡張されて、(W+2)×(H+2)領域の水平勾配値及び垂直勾配値が得られる。W×H領域の予測値が周囲に拡張されて、(W+2)×(H+2)領域の予測値が得られる。
パディングを図6Dに示す。i=-1..cuW、及びj=-1..cuHでのI(k)(i,j)、∂I(k)/∂x(i,j)、及び∂I(k)/∂y(i,j)を得るために、図6Dの方法に従ってパディングが行われる。具体的には、(cuW+2)×(cuH+2)の予測行列、水平勾配行列、及び垂直勾配行列が得られる。
ステップ5: 各4×4サブブロックの修正動きベクトルを導出し、次いで、重み付けを実行する。
各4×4サブブロックに対して、式(2-3)に従って修正動きベクトル(v
x,v
y)が取得される。具体的には、各4×4サブブロックの修正動きベクトル(v
x,v
y)は、L0及びL1の予測値を最小化するように該サブブロックの周りの6×6ウィンドウΩにBDOFを適用することによって取得される。具体的には、(v
x,v
y)は、次式に従って導出される:
ここで、
は、フロア関数である(ここで、floor(A)は、A以下である最大の整数を表す)。th’
BIO=2
13-BDであり、これは、過大な修正動きベクトルによって生じる誤差伝達を防止するための閾値である。S
2,m=S
2>>12、及びS
2,s=S
2&(2
12-1)である。BDは現在サンプルビット幅である。
S1、S2、S3、S5、及びS6は、次式に従って計算される:
ここで、I(0)(i,j)は、現在CU内のサンプル位置(i,j)の前方予測値、すなわち、現在CUの参照サンプル値であって第1リストに対応する参照サンプル値におけるサンプル位置(i,j)のサンプル値であり、I(1)(i,j)は、現在CU内のサンプル位置(i,j)の後方予測値、すなわち、現在CUの参照サンプル値であって第2リストに対応する参照サンプル値におけるサンプル位置(i,j)のサンプル値である。
式(2-3)に従って修正動きベクトルが得られた後、現在ピクチャブロック内の各サンプルの最終予測値、すなわち、現在ピクチャブロックの予測ブロック内のサンプル値が、次式に従って決定され得る:
ここで、shift及びoffsetは、15-BD及び1<<(14-BD)+2・(1<<13)である。rnd(.)は丸め関数(四捨五入)である。predBIO(i,j)は、予測ブロック内のサンプル位置(i,j)のサンプル値である。
ステップS702: 現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、復号装置は、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で現在ピクチャブロックの予測サンプル値を決定する。
具体的には、第1の処理方式は、BDOF(あるいは、双方向オプティカルフロー(Bi-directional optical flow、BIO)と称される)ではない、ことを含む。換言すれば、現在ピクチャブロックのサイズが第2のプリセットサイズであるとき、第1リストに対応する参照サンプル値及び第2リストに対応する参照サンプル値に基づいて現在ピクチャブロックの予測サンプル値を決定するためにBDOFを使用することは許されない。現在ピクチャブロックのサイズは、通常、幅及び高さ(短くW×Hと記載される)によって表され、幅及び高さは、サンプル(sample又はpixel)によって測定される。第2のプリセットサイズは、8×8(1つめの8は、現在ピクチャブロックの幅が8サンプルであることを示し、2つめの8は、現在ピクチャブロックの高さが8サンプルであることを示す)、4×N(4は、現在ピクチャブロックの幅が4サンプルであることを示し、Nは、現在ピクチャブロックの高さがNサンプルであることを示し、類推によって他のサイズが推定される)、8×16、又は16×8を含む。Nは2のべき乗であり、且つ8以上である。例えば、Nの値は、16、32、64などとし得る。
この出願のこの実施形態において、第1リストに対応する参照サンプル値、及び第2リストに対応する参照サンプル値は、それぞれ、第1リスト(すなわち、list0)に対応する第1動きベクトル(例えば、Mv0_L0)、及び第2リスト(すなわち、list1)に対応する第2動きベクトル(例えば、Mv1_L1)に基づく予測を通じて取得される。例えば、第1リスト(すなわち、list0)に対応する参照サンプル値は、第1のリスト(すなわち、list0)に対応する第1動きベクトル(例えば、Mv0_L0)に基づいて決定されることができ、第2リスト(すなわち、list1)に対応する参照サンプル値は、第2リスト(すなわち、list1)に対応する第2動きベクトル(例えば、Mv1_L1)に基づいて決定されることができる。
なお、第1動きベクトル及び第2動きベクトルは、異なるインター予測モードでは異なる方式で決定される。第1動きベクトル及び第2動きベクトルをAMVPモード、マージモード、及びスキップモードにてどのように決定するかの詳細については、ステップS701での説明を参照されたい。詳細をここで再び説明することはしない。
理解されるべきことには、ここでの現在ピクチャブロック(これは、現在ブロックとも称される)は、処理中のピクチャブロックとして理解され得る。例えば、符号化プロセスにおいて、現在ピクチャブロックは、符号化中のピクチャブロック(encoding block)である。
また、第2のプリセットサイズが8×8、4×N、8×16、又は16×8を含む前述のケースは、第2のプリセットサイズが8×8、4×N、8×16、又は16×8であることに限られることもできる。換言すれば、BDOFは、上に列挙された8×8、4×N、8×16、及び16×8なるサイズのうちの1つに対して使用されることが禁止され、あるいは、これらのうちの複数のサイズに対して使用されることが禁止されてもよい。以下では、説明のための例を用いる。
例1: 第2のプリセットサイズは8×8を含む(又は、である)。換言すれば、この出願のこの実施形態において、BDOFは、サイズ8×8に対して使用されることが禁止される。この場合、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下として表現され得る:現在ピクチャブロックのサイズが8×8であるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得する。
例2:第2のプリセットサイズは4×Nを含む(又は、である)。換言すれば、この出願のこの実施形態において、BDOFは、サイズ4×Nに対して使用されることが禁止される。この場合、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下として表現され得る:Nは8以上であるとして、現在ピクチャブロックのサイズが4×Nであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得する。
例3: 第2のプリセットサイズは8×8又は4×Nを含む(又は、である)。換言すれば、この出願のこの実施形態において、BDOFは、サイズ8×8及び4×Nに対して使用されることが禁止される。この場合、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下として表現され得る:Nは8以上であるとして、現在ピクチャブロックのサイズが8×8及び4×Nのいずれかであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得する。
例4: 第2のプリセットサイズは8×8、4×N、8×16、又は16×8を含み(又は、であり)、ここで、Nは8以上である。換言すれば、この出願のこの実施形態において、BDOFは、サイズ8×8、4×N、8×16、及び16×8に対して使用されることが禁止される。この場合、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下として表現され得る:現在ピクチャブロックのサイズが8×8、4×N、8×16、及び16×8のうちのいずれか1つであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得する。
例5: 第2のプリセットサイズはN×8を含み(又は、であり)、ここで、Nは4以上である。換言すれば、この出願のこの実施形態において、BDOFは、サイズN×8に対して使用されることが禁止される。この場合、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下として表現され得る:現在ピクチャブロックのサイズがN×8であるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得する。
例6: 第2のプリセットサイズはN×8又は4×Nを含み(又は、であり)、ここで、Nは4以上である。換言すれば、この出願のこの実施形態において、BDOFは、サイズN×8又は4×Nに対して使用されることが禁止される。この場合、現在ピクチャブロックのサイズが第2のプリセットサイズであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得することは、具体的に、以下として表現され得る:現在ピクチャブロックのサイズがN×8又は4×Nであるときに、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で予測を通じて現在ピクチャブロックの予測サンプル値を取得する。
さらに、一部のシナリオでは、サイズM×4に対してもBDOFが使用されることが禁止されるので、この出願において、第2のプリセットサイズに対してBDOFが使用されることが禁止されるとき、BDOFは更に、Mは4以上の整数であるとして、サイズM×4に対して使用されることが禁止され得る。
理解され得ることには、前述のケースを参考にして、別のケースを更に得ることができ、別のケースもこの出願の保護範囲に入るものである。理解されるべきことには、この出願のこの実施形態における方法は、例えばビデオデコーダ又は映像復号機能を持つエレクトロニクス装置などの、ピクチャ予測装置によって実行されることができ、具体的に、ビデオデコーダ内のインター予測ユニットによって実行され得る。
オプションの一ソリューションにおいて、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて、第1の処理方式で現在ピクチャブロックの予測サンプル値を決定することは、
第1リストに対応する参照サンプル値及び第2リストに対応する参照サンプル値において同じ位置を持つサンプル値に対して重み付け計算を実行して、現在ピクチャブロックの予測サンプル値を取得すること、又は
マージ・ウイズ・動きベクトル差MMVD技術に従って、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づく予測を通じて、現在ピクチャブロックの予測サンプル値を取得すること、又は
結合インター/イントラ予測CIIP技術に従って、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づく予測を通じて、現在ピクチャブロックの予測サンプル値を取得すること、又は
デコーダ側動きベクトル精緻化DMVR技術に従って、第1リストに対応する参照サンプルと第2リストに対応する参照サンプルとに基づく予測を通じて、現在ピクチャブロックの予測サンプル値を取得すること、
を含む。
この出願のこの実施形態において、重み付け計算方式、MMVD技術、CIIP技術、又はDMVR技術が具体的に使用されるかは、対応する条件を用いることによって決定されてもよいし、あるいは、対応する指示情報を用いることによって指し示されてもよい。
この出願のこの実施形態において、重み付け計算方式、MMVD技術、又はCIIP技術が具体的に使用されるかは、対応する条件を用いることによって決定されてもよいし、あるいは、対応する指示情報を用いることによって指し示されてもよい。オプションで、後にビットストリームに符号化される情報は更にターゲット識別子を含むことができ、ターゲット識別子は、現在ブロックの予測サンプル値を予測するのに使用される方式を指し示すために使用される。例えば、ターゲット識別子はmmvd_flag[x0][y0]である。mmvd_flag[x0][y0]がプリセット値(例えば、値1)であるとき、それは、現在ピクチャブロックにMMVD方式が使用されることを指し示す。
オプションで、MMVD実装が以下に提供される。図6Cに示すように、現在ピクチャブロックの予測動き情報が取得される。現在ピクチャブロックの前方動きベクトル予測子及び後方動きベクトル予測子(すなわち、第1リストに対応する前述の動きベクトル予測子及び第2リストに対応する前述の動きベクトル予測子)が、それぞれ、MV0(-22,18)及びMV1(2,12)であり、且つ前方動きベクトル差及び後方動きベクトル差が、それぞれ、MVD0(1,0)及びMVD1(-1,0)であると仮定する。
現在ピクチャブロックに対して前方予測及び後方予測が別々に実行されて、現在ピクチャブロックの前方予測ブロック及び後方予測ブロックが得られる。
MV0(-22,18)及びMV1(2,12)が前方動きベクトル予測子及び後方動きベクトル予測子の基準入力として用いられ、そして、前方参照予測ブロックq0及び後方参照予測ブロックh0に対して第1精度の動き探索が実行される。例えば、第1精度は1サンプルである。
前方参照予測ブロックq0及び後方参照予測ブロックh0が各々、第1精度の動き探索を実行するための開始探索点として用いられ、そして、その都度発見される新たな前方参照予測ブロックと新たな後方参照予測ブロックとの間の差が決定される。例えば、上記前方参照予測ブロック及び上記後方参照予測ブロックの周りの8対の前方参照予測ブロックと後方参照予測ブロックとの間の差が決定され、そして、前方参照予測ブロックq0と後方参照予測ブロックh0との間の差が決定される。最小の差を持つ前方参照予測ブロック及び後方参照予測ブロックの動きベクトル予測子が、それぞれ、(-21,18)及び(1,12)であると仮定する。探索点が、前方参照予測ブロックq1及び後方参照予測ブロックh1にそれぞれ対応する(-21,18)及び(1,12)に更新され、第1精度の動き探索が引き続き実行される。前方参照予測ブロックq1及び後方参照予測ブロックh1が各々、第1精度の動き探索を実行するための開始探索点として用いられ、そして、その都度発見される前方参照予測ブロックと後方参照予測ブロックとの間の差が決定される。例えば、上記前方参照予測ブロック及び上記後方参照予測ブロックの周りの8対の前方参照予測ブロックと後方参照予測ブロックとの間の差が決定され、そして、前方参照予測ブロックq1と後方参照予測ブロックh1との間の差が決定される。最小の差を持つ前方参照予測ブロック及び後方参照予測ブロックの動きベクトル予測子が、それぞれ、(-20,18)及び(0,12)であると仮定する。(-20,18)及び(0,12)が、それぞれ、前方参照予測ブロックq2及び後方参照予測ブロックh2に対応する。
この出願のこの実施形態において、第1精度の動き探索の回数は、例えば、1又は2に設定され得る。あるいは、動き探索範囲が決められる。その範囲外で探索は停止される。
一例として2回を用いると、前方参照予測ブロックq2の動きベクトル予測子(-20,18)とMVD0 (1,0)とを足し合わせて(-19,18)が得られ、後方参照予測ブロックh2の動きベクトル予測子(0,12)とMVD1とを足し合わせて(1,12)が得られる。従って、現在ピクチャブロックは、前方動きベクトル予測子(-19,18)及び後方動きベクトル予測子(1,12)に基づいて予測される。図6Cは、1回の動き探索プロセスのみを示している。
理解されるべきことには、BDOF技術は、現在ピクチャブロックの予測サンプル値を予測するための従来技術でのパッチ最適化技術と同等である。BDOF技術によれば、多くのシナリオにおいて、現在ピクチャブロックの実際のサンプル値にいっそう近い予測サンプル値を得ることができる。従って、その予測サンプル値に基づいて得られるサンプル残差はより小さいものとなり、それ故に、コーディング効率を向上させることができる。前述の重み付け計算方式は、現在ピクチャブロックの予測サンプル値を得るための従来技術とみなされてもよく、前述のMMVD技術及びCIIP技術は各々、従来技術でのパッチ最適化技術とみなされてもよい。この出願のこの実施形態において、現在ピクチャブロックのサイズが第2のプリセットサイズであるとき、現在ピクチャブロックの予測サンプル値は、BDOF技術ではなく、従来技術(例えば、重み付け計算方式)又は他のパッチ最適化技術(例えば、MMVD又はCIIP)に従って決定される。これは、コーディングの複雑さを大幅に低減させることができるとともに、コーディング効率を向上させることができる。
ステップS703: 復号装置は、少なくとも現在ピクチャブロックの予測サンプル値に基づいて、現在ピクチャブロックのサンプル値を決定する。
例えば、AMVPモード及びマージモードでは、現在ブロックの予測サンプル値にサンプル残差を足し合わせることで現在ブロックのサンプル値が得られる。スキップモードでは、現在ブロックのサンプル値を決定するときにサンプル残差は必要でない。
図8は、この出願の一実施形態に従ったインター予測装置80の概略ブロック図である。なお、インター予測装置80は、映像ピクチャを復号するためのインター予測に適用可能であるだけでなく、映像ピクチャを符号化するためのインター予測にも適用可能である。理解されるべきことには、ここでのインター予測装置80は、図2のインター予測ユニット244に対応することができ、あるいは図3のインター予測ユニット344に対応することができる。インター予測装置80は、判定ユニット801及びインター予測処理ユニット802を含み得る。
判定ユニット801は、現在ピクチャブロックが複数のプリセット条件を満足するかを判定するように構成される。
インター予測処理ユニット802は、上記複数のプリセット条件が満足されるときに、現在ピクチャブロックに対して双方向オプティカルフローBDOF(Bi-directional optical flow、略してBIO又はBDOF)処理を実行して現在ピクチャブロックの予測サンプル値を取得するように構成され、上記複数のプリセット条件は少なくとも、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することという条件を含む。現在ピクチャブロックのサイズは、通常、幅及び高さ(短くW×Hと記載される)によって表され、幅及び高さは、サンプル(sample又はpixel)によって測定される。例えば、現在ピクチャブロックのサイズが8×8である場合、1つめの8は、現在ピクチャブロックの幅が8サンプルであることを示し、2つめの8は、現在ピクチャブロックの高さが8サンプルであることを示す。他の一例では、現在ピクチャブロックのサイズが8×16である場合、8は、現在ピクチャブロックの幅が8サンプルであることを示し、16は、現在ピクチャブロックの高さが16サンプルであることを示す。
現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、且つ現在ピクチャブロックの幅Wと高さHとの積が64に等しいときに幅Wが高さHに等しくない、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、且つ現在ピクチャブロックの幅Wが8以上である、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、現在ピクチャブロックの幅Wが8以上であり、且つ現在ピクチャブロックの幅Wと現在ピクチャブロックの高さHとの積が64よりも大きい、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8以上であり、現在ピクチャブロックの幅Wが8以上であり、且つ現在ピクチャブロックの幅Wと現在ピクチャブロックの高さHとの積が128よりも大きい、ことを含む(又は、ことである)。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8よりも大きい、ことを含む。
あるいは、現在ピクチャブロックのサイズが第1のプリセットサイズを満足することは、現在ピクチャブロックの高さHが8よりも大きく、且つ現在ピクチャブロックの幅Wが8以上である、ことを含む。
なお、BDOF技術に従って、第1リストに対応する参照サンプル値と第2リストに対応する参照サンプル値とに基づいて現在ピクチャブロックの予測サンプル値を決定する(又は予測を通じて取得する)かが決定される前に、現在ピクチャブロックのサイズに加えて、別の参照条件が存在してもよい。別の参照条件は、ここで限定されるものではない。理解を容易にするために、以下では、説明のための例を用いる。
条件A: 現在映像シーケンスに対してBDOF技術が使用されることが許されることを指し示すハイレベルシンタックス識別子sps_bdof_enabled_flagが存在する。
条件B: 第1リスト(List1)に対応する予測方向指示情報predFlagL0が1に等しく、且つ第2リスト(list0)に対応する予測方向指示情報predFlagL1が1に等しい。
条件C: 第1リスト(list0)に対応する参照フレームのピクチャオーダカウントPOC_L0、第2リスト(list1)に対応する参照フレームのピクチャオーダカウントPOC_L1、及びその中に現在ピクチャブロックが位置するピクチャのピクチャオーダカウントPOC_Curが、(POC_L0-POC_Cur)×(POC_L1-POC_Cur)<0という関係を満足する。換言すれば、現在ピクチャブロックを含むピクチャが、2つの参照ピクチャの間にある。
条件D: MotionModelIdc[xCb][yCb]が0に等しい。MotionModelIdcは、動き補償に関する動きモデルインデックスである。0に等しいMotionModelIdc[xCb][yCb]は、現在ブロックの動き補償のための動きモデルが並進運動(Translational motion)であることを指し示す。
条件E: merge_subblock_flag[x0][y0]が0に等しく、ここで、0に等しいmerge_subblock_flag[x0][y0]は、現在ピクチャブロックに対してサブブロックマージモードが適用されないことを指し示す。
条件F: sym_mvd_flag[x0][y0]が0に等しい。0に等しいsym_mvd_flag[x0][y0]は、現在ブロックに対してmvd_coding(x0,y0,refList,cpIdx)シンタックス構造が存在することを指し示す。
条件G: bcwIdx[xCb][yCb]が0に等しい。bcwIdxは、現在ピクチャブロックに対する双方向予測重みインデックスを示す。
条件H: cIdxが0に等しい。cIdxは、現在ピクチャブロックの色成分インデックスを表す。
条件I: 現在ピクチャブロックのサイズが第1のプリセットサイズである。
条件J: luma_weight_l0_flag[refIdxL0]及びluma_weight_l1_flag[refIdxL1]の両方が0に等しく、ここで、0に等しいluma_weight_l0_flagは、list0予測のルマコンポーネントに対する重み付け係数が存在しないことを指し示し、0に等しいluma_weight_l1_flagは、list1予測のルマコンポーネントに対する重み付け係数が存在しないことを指し示す。
例えば、条件A乃至Jの全てが満足されるとき、現在ピクチャブロックの予測サンプル値を予測するためにBDOF技術が使用され得ることが決定される。例えば、bdofFlagがtrueに設定される。なお、前述の条件は単なる例であり、別の条件が更に追加されたり、あるいは前述の条件のうちの1つ以上が置き換えられたり、あるいは前述の条件のうちの1つ以上が除去されたりしてもよい。
理解されるべきことには、ここでの現在ピクチャブロック(これは、現在ブロックとも称される)は、処理中のピクチャブロックとして理解され得る。例えば、符号化プロセスにおいて、現在ピクチャブロックは、符号化中のピクチャブロック(encoding block)である。確かなことには、ここでの現在ピクチャブロックは代わりに、処理中のピクチャブロックとして理解されてもよい。例えば、復号プロセスにおいて、現在ピクチャブロックは、復号中のピクチャブロック(decoding block)である。
理解され得ることには、前述のケースを参考にして、別のケースを更に得ることができ、別のケースもこの出願の保護範囲に入るものである。
理解されるべきことには、この出願の実施形態における方法は、ビデオエンコーダ、又は映像符号化機能を持つエレクトロニクス装置によって実行されることができ、あるいは、ビデオエンコーダ、又は映像符号化機能を持つエレクトロニクス装置によって実行されることができる。例えば、当該方法は具体的に、これらの装置内のインター予測ユニットによって実行され得る。
なお、前述のインター予測装置80内の判定ユニット801及び予測処理ユニット802の具体的な実装については、図6A及び図7に示した方法実施形態における関連説明を参照されたい。
前述の方法手順のステップにおいて、当該ステップの記載順序は当該ステップの実行順序を表すものではない。当該ステップは、前述の記載順序に従って実行されてもよいしされなくてもよい。
当業者が理解し得ることには、この明細書にて開示及び記載された様々な例示的な論理ブロック、モジュール、及びアルゴリズムステップを参照して説明された機能は、ハードウェア、ソフトウェア、ファームウェア、又はこれらの任意の組み合わせによって実装されることができる。ソフトウェアによって実装される場合、それら例示的な論理ブロック、モジュール、及びステップを参照して説明された機能は、1つ以上の命令又はコードとして、コンピュータ読み取り可能媒体に格納され又はそれ上で伝送され、そして、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ読み取り可能媒体は、例えばデータ記憶媒体などの有形媒体に対応するものであるコンピュータ読み取り可能記憶媒体を含むことができ、あるいは、(例えば通信プロトコルに従った)1つの場所から別の場所へのコンピュータプログラムの伝送を支援する任意の通信媒体を含むことができる。斯くして、コンピュータ読み取り可能媒体は、一般に、(1)非一時的な有形のコンピュータ読み取り可能記憶媒体、又は(2)例えば信号又は搬送波などの通信媒体に対応し得る。データ記憶媒体は、この出願に記載された技術を実装するための命令、コード及び/又はデータ構造を取り出すために1つ以上のコンピュータ又は1つ以上のプロセッサによってアクセスされることができる任意の使用可能な媒体とし得る。コンピュータプログラムプロダクトがコンピュータ読み取り可能媒体を含み得る。
例として、限定ではなく、そのようなコンピュータ読み取り可能記憶媒体は、RAM、ROM、EEPROM、CD-ROM若しくは他のコンパクトディスクストレージ装置、磁気ディスクストレージ装置若しくは他の磁気ストレージ装置、フラッシュメモリ、又は、命令若しくはデータ構造の形態で所望のプログラムコードを格納するために使用されることができ且つコンピュータによってアクセスされることができる任意の他の媒体を含み得る。また、任意の接続が適切にコンピュータ読み取り可能媒体として参照される。例えば、命令が、ウェブサイト、サーバ、又は他のリモートソースから、同軸ケーブル、光ファイバ、ツイストペア、デジタル加入者回線(DSL)、又は例えば赤外線、無線、若しくはマイクロ波などの無線技術を介して伝送される場合、その同軸ケーブル、光ファイバ、ツイストペア、DSL、又は例えば赤外線、無線、若しくはマイクロ波などの無線技術は、媒体の定義に含まれる。しかしながら、理解されるべきことには、コンピュータ読み取り可能記憶媒体及びデータ記憶媒体は、接続、搬送波、信号、又は他の一時的媒体を含まず、実際には、非一時的で有形の記憶媒体を意味する。この明細書で使用されるディスク(disk及びdisc)は、コンパクトディスク(CD)、レーザディスク、光ディスク、デジタル多用途ディスク(DVD)、及びBlu-rayディスクを含む。diskは、通常、磁気的にデータを再生し、discはレーザを用いることによって光学的にデータを再生する。上述のアイテムの組み合わせも、コンピュータ読み取り可能媒体の範囲に含まれるべきである。
命令は、例えば1つ以上のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、又は他の同等の集積論理回路若しくはディスクリート論理回路などの、1つ以上のプロセッサによって実行され得る。従って、この明細書で使用される用語“プロセッサ”は、上述の構造のいずれか、又はこの明細書に記載された技術を実装するのに適した任意の他の構造とし得る。さらに、一部の態様において、この明細書に記載された例示的な論理ブロック、モジュール、及びステップを参照して説明された機能は、符号化及び復号のために構成された専用のハードウェア及び/又はソフトウェアモジュール内で提供されてもよいし、あるいは、組み合わされたコーデックに組み込まれてもよい。また、これらの技術は、1つ以上の回路又は論理素子にて完全に実装されてもよい。
この出願における技術は、無線ハンドセット、集積回路(IC)、又は一組のIC(例えば、チップセット)を含め、様々な装置又はデバイスにて実装され得る。この出願では、開示された技術を実行するように構成された装置の機能的側面を強調するために、様々なコンポーネント、モジュール、又はユニットが説明されているが、必ずしも、複数の異なるハードウェアユニットによって実装されるわけではない。実際には、上述のように、様々なユニットが、適切なソフトウェア及び/又はファームウェアと組み合わせてコーデックハードウェアユニットへと結合されてもよいし、あるいは、相互運用可能な複数のハードウェアユニット(上述の1つ以上のプロセッサを含む)によって提供されてもよい。
以上の説明は、単にこの出願の特定の実装の例であり、この出願の保護範囲を限定することを意図するものではない。この出願にて開示された技術的範囲内で当業者が容易に考え付く如何なる変更又は置換もこの出願の保護範囲に入るものである。従って、この出願の保護範囲は請求項の保護範囲に従うものである。