(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-02-09
(54)【発明の名称】ジョイント動きベクトル差分コーディング
(51)【国際特許分類】
H04N 19/52 20140101AFI20240202BHJP
H04N 19/46 20140101ALI20240202BHJP
【FI】
H04N19/52
H04N19/46
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023547677
(86)(22)【出願日】2022-04-15
(85)【翻訳文提出日】2023-08-07
(86)【国際出願番号】 US2022025051
(87)【国際公開番号】W WO2023043495
(87)【国際公開日】2023-03-23
(32)【優先日】2022-03-22
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-09-17
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】リアン・ジャオ
(72)【発明者】
【氏名】シン・ジャオ
(72)【発明者】
【氏名】シャン・リュウ
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159MA04
5C159MA05
5C159MC11
5C159ME01
5C159PP04
5C159RB09
5C159RC12
5C159RC16
5C159TA62
5C159TB08
5C159TC12
5C159TC35
5C159UA02
5C159UA05
(57)【要約】
本開示は、ビデオブロックをインター予測するための動きベクトル差のエンコーディングおよびデコーディングに関する。ビデオストリームのインター予測されたビデオブロックをデコーディングするための例が開示される。本方法は、コーディングされたビデオビットストリームを受信するステップと、コーディングされたビデオビットストリームから、現在のフレーム内の現在のブロックのインター予測モードおよびジョイントデルタ動きベクトル(MV)を抽出するステップと、コーディングされたビデオビットストリームから、第1の参照フレームについての第1のデルタMVと第2の参照フレームについての第2のデルタMVとが一緒にシグナリングされるかどうかを示すフラグを抽出するステップと、フラグが第1のデルタMVと第2のデルタMVとが一緒にシグナリングされることを示すことに応じて、ジョイントデルタMVに基づいて第1のデルタMVおよび第2のデルタMVを導出するステップと、第1のデルタMVおよび第2のデルタMVに基づいて現在のフレーム内の現在のブロックをデコーディングするステップとを含む。
【特許請求の範囲】
【請求項1】
インター予測されたビデオブロックをデコーディングするための方法であって、前記方法は、
命令を記憶するメモリと、前記メモリと通信するプロセッサとを備えるデバイスによって、コーディングされたビデオビットストリームを受信するステップと、
前記デバイスによって、前記コーディングされたビデオビットストリームから、現在のフレーム内の現在のブロックのインター予測モードおよびジョイントデルタ動きベクトル(MV)(joint_delta_mv)を抽出するステップと、
前記デバイスによって、前記コーディングされたビデオビットストリームから、参照リスト0内の第1の参照フレームについての第1のデルタMVと参照リスト1内の第2の参照フレームについての第2のデルタMVとが一緒にシグナリングされるかどうかを示すフラグ(joint_mvd_flag)を抽出するステップと、
前記フラグが前記第1のデルタMVと前記第2のデルタMVとが一緒にシグナリングされることを示すことに応じて、前記デバイスによって、前記ジョイントデルタMVに基づいて前記第1のデルタMVおよび前記第2のデルタMVを導出するステップと、
前記デバイスによって、前記第1のデルタMVおよび前記第2のデルタMVに基づいて前記現在のフレーム内の前記現在のブロックをデコーディングするステップとを含む、方法。
【請求項2】
前記現在のブロックの前記インター予測モードはNEW_NEWMVであり、
前記ジョイントデルタMVに基づいて前記第1のデルタMVおよび前記第2のデルタMVを導出する前記ステップは、
前記第1のデルタMVを前記ジョイントデルタMVとして決定するステップと、
以下のもの、すなわち、
前記第1の参照フレームと前記現在のフレームとの間の第1のピクチャ順序カウント(POC)距離、
前記第2の参照フレームと前記現在のフレームとの間の第2のPOC距離、または
前記現在のフレームに対する前記第1の参照フレームおよび前記第2の参照フレームの方向関係、のうちの少なくとも1つに従って前記ジョイントデルタMVをスケーリングすることによって前記第2のデルタMVを決定するステップとを含む、
請求項1に記載の方法。
【請求項3】
前記現在のブロックの前記インター予測モードはNEW_NEWMVであり、
前記ジョイントデルタMVに基づいて前記第1のデルタMVおよび前記第2のデルタMVを導出する前記ステップは、
前記第2のデルタMVを前記ジョイントデルタMVとして決定するステップと、
以下のもの、すなわち、
前記第1の参照フレームと前記現在のフレームとの間の第1のピクチャ順序カウント(POC)距離、
前記第2の参照フレームと前記現在のフレームとの間の第2のPOC距離、または
前記現在のフレームに対する前記第1の参照フレームおよび前記第2の参照フレームの方向関係、のうちの少なくとも1つに従って前記ジョイントデルタMVをスケーリングすることによって前記第1のデルタMVを決定するステップとを含む、
請求項1に記載の方法。
【請求項4】
前記現在のブロックの前記インター予測モードはNEW_NEWMVであり、
前記ジョイントデルタMVに基づいて前記第1のデルタMVおよび前記第2のデルタMVを導出する前記ステップは、
前記第1の参照フレームと前記現在のフレームとの間の第1の絶対POC距離が前記第2の参照フレームと前記現在のフレームとの間の第2の絶対POC距離よりも大きいことに応じて、
前記第1のデルタMVを前記ジョイントデルタMVとして決定するステップと、
以下のもの、すなわち、
前記第1の参照フレームと前記現在のフレームとの間の第1のPOC距離、
前記第2の参照フレームと前記現在のフレームとの間の第2のPOC距離、または
前記現在のフレームに対する前記第1の参照フレームおよび前記第2の参照フレームの方向関係のうちの少なくとも1つに従って前記ジョイントデルタMVをスケーリングすることによって前記第2のデルタMVを決定するステップとを含む、
請求項1に記載の方法。
【請求項5】
前記現在のブロックの前記インター予測モードはNEW_NEWMVであり、
前記ジョイントデルタMVに基づいて前記第1のデルタMVおよび前記第2のデルタMVを導出する前記ステップは、
前記第1の参照フレームと前記現在のフレームとの間の第1の絶対POC距離が前記第2の参照フレームと前記現在のフレームとの間の第2の絶対POC距離よりも小さいことに応じて、
前記第2のデルタMVを前記ジョイントデルタMVとして決定するステップと、
以下のもの、すなわち、
前記第1の参照フレームと前記現在のフレームとの間の第1のPOC距離、
前記第2の参照フレームと前記現在のフレームとの間の第2のPOC距離、または
前記現在のフレームに対する前記第1の参照フレームおよび前記第2の参照フレームの方向関係のうちの少なくとも1つに従って前記ジョイントデルタMVをスケーリングすることによって前記第1のデルタMVを決定するステップとを含む、
請求項1に記載の方法。
【請求項6】
前記現在のブロックの前記インター予測モードはNEW_NEWMVであり、
前記ジョイントデルタMVに基づいて前記第1のデルタMVおよび前記第2のデルタMVを導出する前記ステップは、
前記第1の参照フレームと前記現在のフレームとの間の第1の絶対POC距離が前記第2の参照フレームと前記現在のフレームとの間の第2の絶対POC距離に等しいことに応じて、
前記第1のデルタMVを前記ジョイントデルタMVとして決定するステップと、
前記現在のフレームに対する前記第1の参照フレームおよび前記第2の参照フレームの方向関係が同じであることに応じて、前記第2のデルタMVを前記ジョイントデルタMVとして決定するステップと、
前記現在のフレームに対する前記第1の参照フレームおよび前記第2の参照フレームの前記方向関係が反対であることに応じて、前記第2のデルタMVを前記ジョイントデルタMVに-1を乗じたものとして決定するステップとを含む、
請求項1に記載の方法。
【請求項7】
前記現在のブロックの前記インター予測モードはNEW_NEARMVであり、
前記ジョイントデルタMVに基づいて前記第1のデルタMVおよび前記第2のデルタMVを導出する前記ステップは、
前記第1のデルタMVを前記ジョイントデルタMVとして決定するステップと、
以下のもの、すなわち、
前記第1の参照フレームと前記現在のフレームとの間の第1のPOC距離、
前記第2の参照フレームと前記現在のフレームとの間の第2のPOC距離、
前記現在のフレームに対する前記第1の参照フレームおよび前記第2の参照フレームの方向関係、または
所定の重み付け係数のうちの少なくとも1つに従って前記ジョイントデルタMVをスケーリングすることによって前記第2のデルタMVを決定するステップとを含む、
請求項1に記載の方法。
【請求項8】
前記現在のブロックの前記インター予測モードはNEAR_NEWMVであり、
前記ジョイントデルタMVに基づいて前記第1のデルタMVおよび前記第2のデルタMVを導出する前記ステップは、
前記第2のデルタMVを前記ジョイントデルタMVとして決定するステップと、
以下のもの、すなわち、
前記第1の参照フレームと前記現在のフレームとの間の第1のPOC距離、
前記第2の参照フレームと前記現在のフレームとの間の第2のPOC距離、
前記現在のフレームに対する前記第1の参照フレームおよび前記第2の参照フレームの方向関係、または
所定の重み付け係数のうちの少なくとも1つに従って前記ジョイントデルタMVをスケーリングすることによって前記第1のデルタMVを決定するステップとを含む、
請求項1に記載の方法。
【請求項9】
前記所定の重み付け係数は-1と1の間の分数である、
請求項8に記載の方法。
【請求項10】
前記所定の重み付け係数は、以下のもの、すなわち、シーケンスパラメータセット(SPS)、ビデオパラメータセット(VPS)、ピクチャパラメータセット(PPS)、ピクチャヘッダ、タイルヘッダ、スライスヘッダ、フレームヘッダ、コーディングツリーユニット(CTU)ヘッダ、またはスーパーブロックヘッダのうちの少なくとも1つを含む高水準シンタックスでシグナリングされる、
請求項8に記載の方法。
【請求項11】
前記現在のブロックの前記インター予測モードはNEAR_NEARMVであり、
前記第1の参照フレームについての前記第1のデルタMVと前記第2の参照フレームについての前記第2のデルタMVとが一緒にシグナリングされるかどうかを示す前記フラグを抽出する前記ステップは、
前記フラグをデフォルト値として決定するステップを含む、
請求項1に記載の方法。
【請求項12】
前記デフォルト値は、前記第1の参照フレームについての前記第1のデルタMVと前記第2の参照フレームについての前記第2のデルタMVとが一緒にシグナリングされないことを示す0である、
請求項11に記載の方法。
【請求項13】
インター予測されたビデオブロックをデコーディングするための装置であって、前記装置は、
命令を記憶するメモリと、
前記メモリと通信するプロセッサであって、前記プロセッサが前記命令を実行すると、前記プロセッサは、請求項1から12のいずれか一項に記載の方法を前記装置に実行させるように構成される、プロセッサとを備える、装置。
【請求項14】
命令を記憶する非一時的コンピュータ可読媒体であって、前記命令がプロセッサによって実行されると、前記命令は、請求項1から12のいずれか一項に記載の方法を前記プロセッサに実行させるように構成される、非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2021年9月17日に出願された米国仮特許出願第63/245,655号に基づいており、その優先権の利益を主張し、その全体が参照により本明細書に組み込まれる。本出願はまた、2022年3月22日に出願された米国非仮出願第17/700,745号に基づいており、その優先権の利益を主張し、その全体が参照により本明細書に組み込まれる。
【0002】
本開示は、ビデオコーディングおよび/またはデコーディング技術に関し、特に、コーディングおよび/またはデコーディングのためのジョイント動きベクトル差の改善された設計およびシグナリングに関する。
【背景技術】
【0003】
本明細書で提供される背景技術の説明は、本開示の文脈を一般的に提示することを目的としている。本発明者らの研究は、その研究がこの背景技術の欄に記載されている限りにおいて、またそれ以外の本出願の出願時に先行技術として認められない可能性のある説明の態様とともに、本開示に対する先行技術としては明示的にも暗示的にも認められない。
【0004】
ビデオコーディングおよびデコーディングは、動き補償を伴うインターピクチャ予測を使用して行われ得る。非圧縮デジタルビデオは、一連のピクチャを含むことができ、各ピクチャは、例えば1920×1080の輝度サンプルおよび関連するフルサンプリングまたはサブサンプリングされたクロミナンスサンプルの空間次元を有する。一連のピクチャは、例えば毎秒60ピクチャまたは毎秒60フレームの固定または可変のピクチャレート(あるいはフレームレートとも呼ばれる)を有することができる。非圧縮ビデオは、ストリーミングまたはデータ処理のための特定のビットレート要件を有する。例えば、1920×1080の画素解像度、60フレーム/秒のフレームレート、および色チャネルあたり画素あたり8ビットで4:2:0のクロマサブサンプリングを有するビデオは、1.5Gbit/sに近い帯域幅を必要とする。1時間分のそのようなビデオは、600GByteを超える記憶空間を必要とする。
【0005】
ビデオコーディングおよびデコーディングの1つの目的は、圧縮による非圧縮入力ビデオ信号の冗長性の低減であり得る。圧縮は、前述の帯域幅および/または記憶空間要件を、場合によっては2桁以上低減させるのに役立ち得る。可逆圧縮と非可逆圧縮の両方、およびそれらの組合せが使用され得る。可逆圧縮とは、原信号の正確なコピーがデコーディングプロセスによって圧縮された原信号から再構成され得る技術を指す。非可逆圧縮とは、元のビデオ情報がコーディング時に完全に保持されず、デコーディング時に完全に復元できないコーディング/デコーディングプロセスを指す。非可逆圧縮を使用する場合、再構成された信号は原信号と同一ではない可能性があるが、原信号と再構成された信号との間の歪みは、多少の情報損失はあっても、再構成された信号を意図された用途に役立てるのに十分なほど小さくなる。ビデオの場合、非可逆圧縮が多くの用途で広く採用されている。耐容できる歪みの量は用途に依存する。例えば、ある消費者ビデオストリーミング用途のユーザは、映画やテレビ放送用途のユーザよりも高い歪みを容認し得る。あるコーディングアルゴリズムによって達成可能な圧縮比は、様々な歪み耐性を反映するように選択または調整され得る。すなわち、一般に、歪み耐性が高いほど、高い損失および高い圧縮比をもたらすコーディングアルゴリズムが可能になる。
【0006】
ビデオエンコーダおよびデコーダは、例えば、動き補償、フーリエ変換、量子化、およびエントロピーコーディングを含む、いくつかの広範なカテゴリおよびステップからの技術を利用することができる。
【0007】
ビデオコーデック技術は、イントラコーディングとして知られる技術を含み得る。イントラコーディングでは、サンプル値は、以前に再構成された参照ピクチャからのサンプルまたは他のデータを参照せずに表される。一部のビデオコーデックでは、ピクチャは、サンプルのブロックへと空間的に細分される。サンプルのすべてのブロックがイントラモードでコーディングされる場合、そのピクチャはイントラピクチャと呼ばれ得る。イントラピクチャと、独立したデコーダリフレッシュピクチャといったそれらの派生物とは、デコーダ状態をリセットするために使用されることができ、したがって、コーディングされたビデオビットストリームおよびビデオセッション内の最初のピクチャとして、または静止画像として使用され得る。次いで、イントラ予測後のブロックのサンプルは周波数領域への変換を受けることができ、そのように生成された変換係数はエントロピーコーディングの前に量子化され得る。イントラ予測は、変換前領域におけるサンプル値を最小化する技術を表す。場合によっては、変換後のDC値が小さいほど、およびAC係数が小さいほど、エントロピーコーディング後のブロックを表すために所与の量子化ステップサイズで必要とされるビット数が少なくなる。
【0008】
例えば、MPEG-2世代のコーディング技術から知られているような従来のイントラコーディングは、イントラ予測を使用しない。しかしながら、いくつかのより新しいビデオ圧縮技術は、例えば、空間的隣接のエンコーディングおよび/またはデコーディング時に取得される、イントラコーディングまたはイントラデコーディングされているデータのブロックにデコーディング順序で先行する、周囲のサンプルデータおよび/またはメタデータに基づいて、ブロックのコーディング/デコーディングを試みる技術を含む。そのような技術は、これ以降、「イントラ予測」技術と呼ばれる。少なくともいくつかの場合において、イントラ予測は、再構成中の現在のピクチャのみからの参照データを使用し、他の参照ピクチャからの参照データは使用しないことに留意されたい。
【0009】
イントラ予測には、多くの異なる形態があり得る。そのような技術のうちの2つ以上が所与のビデオコーディング技術において利用可能である場合、使用される技術は、イントラ予測モードと呼ばれ得る。1つまたは複数のイントラ予測モードが特定のコーデックで提供され得る。一定の場合において、モードは、サブモードを有することができ、かつ/または様々なパラメータと関連付けられていてもよく、モード/サブモード情報およびビデオのブロックのイントラコーディングパラメータは、個別にコーディングされるか、またはまとめてモードのコードワードに含められ得る。所与のモード、サブモード、および/またはパラメータの組合せにどのコードワードを使用するかは、イントラ予測を介したコーディング効率向上に影響を与える可能性があり、そのため、コードワードをビットストリームに変換するために使用されるエントロピーコーディング技術も影響を与える可能性がある。
【0010】
イントラ予測のあるモードがH.264において導入され、H.265において改良され、共同探索モデル(JEM)、多用途ビデオコーディング(VVC)、およびベンチマークセット(BMS)などのより新しいコーディング技術においてさらに改良された。一般に、イントラ予測では、利用可能になった隣接サンプル値を使用して予測子ブロックが形成され得る。例えば、ある方向および/または線に沿った特定の隣接サンプルセットの利用可能な値が、予測子ブロックにコピーされ得る。使用される方向への参照は、ビットストリーム内でコーディングされることができるか、またはそれ自体が予測され得る。
【0011】
図1Aを参照すると、右下に示されているのは、(H.265で指定される35のイントラモードのうちの33の角度モードに対応する)H.265の33の可能なイントラ予測子方向で指定される9つの予測子方向のサブセットである。矢印が集中する点(101)は、予測されているサンプルを表す。矢印は、隣接サンプルがそこから101のサンプルを予測するために使用される方向を表す。例えば、矢印(102)は、サンプル(101)が、1つまたは複数の隣接サンプルから右上へ、水平方向から45度の角度で予測されることを示している。同様に、矢印(103)は、サンプル(101)が、1つまたは複数の隣接サンプルからサンプル(101)の左下へ、水平方向から22.5度の角度で予測されることを示している。
【0012】
さらに
図1Aを参照すると、左上には、(太い破線によって示された)4×4サンプルの正方形ブロック(104)が描写されている。正方形ブロック(104)は16個のサンプルを含み、各々、「S」、Y次元のその位置(例えば、行インデックス)、およびX次元のその位置(例えば、列インデックス)でラベル付けされている。例えば、サンプルS21は、Y次元の(上から)2番目のサンプルであり、X次元の(左から)1番目のサンプルである。同様に、サンプルS44は、ブロック(104)内のY次元およびX次元の両方の4番目のサンプルである。ブロックのサイズは4×4サンプルであるため、S44は右下にある。同様の番号付け方式に従う参照サンプルの例がさらに示されている。参照サンプルは、R、ブロック(104)に対するそのY位置(例えば、行インデックス)およびX位置(列インデックス)でラベル付けされている。H.264とH.265の両方で、再構成中のブロックに隣接する予測サンプルが使用される。
【0013】
ブロック104のイントラピクチャ予測は、シグナリングされた予測方向に従って隣接サンプルから参照サンプル値をコピーすることから開始し得る。例えば、コーディングされたビデオビットストリームは、このブロック104について、矢印(102)の予測方向を示すシグナリングを含む、すなわち、サンプルは1つまたは複数の予測サンプルから右上へ、水平方向から45度の角度で予測されると仮定する。そのような場合、サンプルS41、S32、S23、S14が、同じ参照サンプルR05から予測される。次いで、サンプルS44が、参照サンプルR08から予測される。
【0014】
一定の場合には、参照サンプルを計算するために、特に方向が45度によって均等に割り切れないときは、複数の参照サンプルの値は、例えば補間によって組み合わされてもよい。
【0015】
可能な方向の数は、ビデオコーディング技術が発展し続けるにつれて増加してきた。H.264(2003年)では、例えば、9つの異なる方向がイントラ予測に利用可能である。これは、H.265(2013年)では33まで増加し、JEM/VVC/BMSは、本開示の時点で、最大65の方向をサポートすることができる。最も適切なイントラ予測方向を特定するのに役立つ実験研究が行われており、方向についての一定のビットペナルティを受け入れて、それらの最も適切な方向を少数のビットでエンコーディングするために、エントロピーコーディングの一定の技術が使用され得る。さらに、方向自体が、デコーディングされた隣接ブロックのイントラ予測で使用された隣接する方向から予測され得る。
【0016】
図1Bは、時間の経過とともに発展した様々なエンコーディング技術における増加する予測方向の数を例示するために、JEMによる65のイントラ予測方向を示す概略図(180)を示す。
【0017】
コーディングされたビデオビットストリームにおけるイントラ予測方向を表すビットの予測方向へのマッピングのための方法は、ビデオコーディング技術によって異なる可能性があり、例えば、予測方向対イントラ予測モードの単純な直接マッピングから、コードワード、最確モードを含む複雑な適応方式、および同様の技術にまでおよび得る。ただし、すべての場合において、他の特定の方向よりもビデオコンテンツで発生する可能性が統計的に低いイントラ予測の特定の方向が存在し得る。ビデオ圧縮の目的は冗長性の低減であるため、うまく設計されたビデオコーディング技術においては、それらのより可能性の低い方向はより可能性の高い方向よりも多くのビット数で表され得る。
【0018】
インターピクチャ予測、またはインター予測は、動き補償に基づくものあり得る。動き補償では、以前に再構成されたピクチャまたはその一部(参照ピクチャ)からのサンプルデータが、動きベクトル(これ以降はMV)によって示される方向に空間的にシフトされた後、新たに再構成されたピクチャまたはピクチャ部分(例えば、ブロック)の予測に使用され得る。場合によっては、参照ピクチャは、現在再構成中のピクチャと同じであり得る。MVは、2つの次元XおよびY、または3つの次元を有していてもよく、第3の次元は、(時間次元と類似した)使用される参照ピクチャの指示である。
【0019】
いくつかのビデオ圧縮技術では、サンプルデータの特定のエリアに適用可能な現在のMVは、他のMVから、例えば再構成中のエリアに空間的に隣接し、デコーディング順序で現在のMVに先行する、サンプルデータの他のエリアに関連する他のMVから予測され得る。そうすることにより、相関するMVの冗長性の除去に依拠することによってMVをコーディングするのに必要とされる全体のデータ量を大幅に削減することができ、それによって圧縮効率が高まる。MV予測が効果的に機能することができるのは、例えば、(自然なビデオとして知られている)カメラから導出された入力ビデオ信号をコーディングするときに、単一のMVが適用可能なエリアよりも大きいエリアは、ビデオシーケンスにおいて同様の方向に移動する統計的尤度があり、したがって、場合によっては、隣接するエリアのMVから導出された同様の動きベクトルを使用して予測され得るからである。その結果として、所与のエリアの実際のMVが周囲のMVから予測されたMVと同様または同一になる。そのようなMVはさらに、エントロピーコーディング後に、MVが(1つまたは複数の)隣接するMVから予測されるのではなく直接コーディングされた場合に使用されることになるビット数よりも少ないビット数で表され得る。場合によっては、MV予測を、原信号(すなわち、サンプルストリーム)から導出された信号(すなわち、MV)の可逆圧縮の一例とすることができる。他の場合には、例えば、いくつかの周囲のMVから予測子を計算するときの丸め誤差のために、MV予測自体は非可逆であり得る。
【0020】
H.265/HEVC(ITU-T Rec.H.265、「High Efficiency Video Coding」、2016年12月)に様々なMV予測機構が記載されている。H.265が指定する多くのMV予測機構のうち、以下で説明するのは、これ以降「空間マージ」と呼ばれる技術である。
【0021】
具体的には、
図2を参照すると、現在のブロック(201)は、動き探索プロセス中にエンコーダによって、空間的にシフトされた同じサイズの前のブロックから予測可能であると検出されたサンプルを含む。そのMVを直接コーディングする代わりに、MVは、A0、A1、およびB0、B1、B2(それぞれ202から206)で表された5つの周囲のサンプルのいずれか1つと関連付けられたMVを使用して、1つまたは複数の参照ピクチャと関連付けられたメタデータから、例えば、(デコーディング順序で)最後の参照ピクチャから導出され得る。H.265では、MV予測は、隣接ブロックが使用しているのと同じ参照ピクチャからの予測子を使用することができる。
【発明の概要】
【課題を解決するための手段】
【0022】
本開示は、ビデオエンコーディングおよび/またはデコーディングのための方法、装置、およびコンピュータ可読記憶媒体の様々な実施形態を説明する。
【0023】
一態様によれば、本開示の一実施形態は、インター予測されたビデオブロックをデコーディングするための方法を提供する。本方法は、デバイスによって、コーディングされたビデオビットストリームを受信するステップを含む。デバイスは、命令を記憶するメモリと、メモリと通信するプロセッサとを含む。本方法はまた、デバイスによって、コーディングされたビデオビットストリームから、現在のフレーム内の現在のブロックのインター予測モードおよびジョイントデルタ動きベクトル(MV)を抽出するステップと、デバイスによって、コーディングされたビデオビットストリームから、第1の参照フレームについての第1のデルタMVと第2の参照フレームについての第2のデルタMVとが一緒にシグナリングされるかどうかを示すフラグを抽出するステップと、フラグが第1のデルタMVと第2のデルタMVとが一緒にシグナリングされることを示すことに応じて、デバイスによって、ジョイントデルタMVに基づいて第1のデルタMVおよび第2のデルタMVを導出するステップと、デバイスによって、第1のデルタMVおよび第2のデルタMVに基づいて現在のフレーム内の現在のブロックをデコーディングするステップとを含む。
【0024】
他の態様によれば、本開示の一実施形態は、ビデオエンコーディングおよび/またはデコーディングのための装置を提供する。本装置は、命令を記憶するメモリと、メモリと通信するプロセッサとを含む。プロセッサが命令を実行すると、プロセッサは、ビデオデコーディングおよび/またはエンコーディングのための上記の方法を装置に実行させるように構成される。
【0025】
本開示の態様はまた、上記の方法実施態様のいずれかを実行するように構成された回路を含むビデオエンコーディングまたはデコーディングのデバイスまたは装置を提供する。
【0026】
他の態様では、本開示の一実施形態は、ビデオデコーディングおよび/またはエンコーディングのためにコンピュータによって実行されると、ビデオデコーディングおよび/またはエンコーディングのための上記の方法をコンピュータに実行させる命令を記憶する非一時的コンピュータ可読媒体を提供する。
【0027】
上記および他の態様ならびにそれらの実装形態は、図面、明細書、および特許請求の範囲においてさらに詳細に説明される。
【0028】
開示される主題のさらなる特徴、性質、および様々な利点は、以下の詳細な説明および添付の図面からより明らかになるであろう。
【図面の簡単な説明】
【0029】
【
図1A】イントラ予測方向性モードの例示的なサブセットの概略図である。
【
図1B】例示的なイントラ予測方向を示す図である。
【
図2】一例における現在のブロックおよび動きベクトル予測のためのその周囲の空間マージ候補を示す概略図である。
【
図3】一例示的実施形態による通信システム(300)の簡略化されたブロック図を示す概略図である。
【
図4】一例示的実施形態による通信システム(400)の簡略化されたブロック図を示す概略図である。
【
図5】一例示的実施形態によるビデオデコーダの簡略化されたブロック図を示す概略図である。
【
図6】一例示的実施形態によるビデオエンコーダの簡略化されたブロック図を示す概略図である。
【
図7】他の例示的実施形態によるビデオエンコーダのブロック図である。
【
図8】他の例示的実施形態によるビデオデコーダのブロック図である。
【
図9】本開示の例示的実施形態によるコーディングブロック分割の方式を示す図である。
【
図10】本開示の例示的実施形態によるコーディングブロック分割の他の方式を示す図である。
【
図11】本開示の例示的実施形態によるコーディングブロック分割の他の方式を示す図である。
【
図12】例示的な分割方式によるベースブロックのコーディングブロックへの例示的な分割を示す図である。
【
図14】例示的な4分木2分木コーディングブロック分割方式を示す図である。
【
図15】本開示の例示的実施形態による、コーディングブロックを複数の変換ブロックに分割する方式および変換ブロックのコーディング順序を示す図である。
【
図16】本開示の例示的実施形態による、コーディングブロックを複数の変換ブロックに分割する他の方式および変換ブロックのコーディング順序を示す図である。
【
図17】本開示の例示的実施形態による、コーディングブロックを複数の変換ブロックに分割する他の方式を示す図である。
【
図18】本開示の一実施形態による方法のフローチャートを示す図である。
【
図19】本開示の例示的実施形態によるコンピュータシステムの概略図である。
【発明を実施するための形態】
【0030】
次に、本発明の一部を形成し、実施形態の具体例を例示として示す添付の図面を参照して本発明を以下で詳細に説明する。しかしながら、本発明は、様々な異なる形態で具体化されてもよく、したがって、対象として含まれるまたは特許請求される主題は、以下に記載される実施形態のいずれにも限定されないと解釈されることが意図されていることに留意されたい。また本発明は、方法、デバイス、構成要素、またはシステムとして具体化され得ることにも留意されたい。したがって、本発明の実施形態は、例えば、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せの形態をとり得る。
【0031】
本明細書および特許請求の範囲を通して、用語は、明示的に記載される意味を超えて文脈において示唆または暗示される微妙な意味を有し得る。本明細書で使用される「一実施形態では」または「いくつかの実施形態では」という語句は、必ずしも同じ実施形態を指すものではなく、本明細書で使用される「他の実施形態では」または「他のいくつかの実施形態では」という語句は、必ずしも異なる実施形態を指すものではない。同様に、本明細書で使用される「一実装形態では」または「いくつかの実装形態では」という語句は、必ずしも同じ実装形態を指すものではなく、本明細書で使用される「他の実装形態では」または「他のいくつかの実装形態では」という語句は、必ずしも異なる実装形態を指すものではない。例えば、特許請求される主題は、例示的な実施形態/実装形態の全部または一部の組合せを含むことが意図されている。
【0032】
一般に、用語は、文脈における用法から少なくとも部分的に理解され得る。例えば、本明細書で使用される「および」、「または」、または「および/または」などの用語は、そのような用語が使用される文脈に少なくとも部分的に依存し得る様々な意味を含み得る。典型的には、A、BまたはCなどのリストを関連付けるために使用される場合の「または」は、ここでは包括的な意味で使用されるA、BおよびC、ならびにここでは排他的な意味で使用されるA、BまたはCを意味することが意図されている。さらに、本明細書で使用される「1つまたは複数」または「少なくとも1つ」という用語は、文脈に少なくとも部分的に依存して、単数の意味で任意の特徴、構造、もしくは特性を記述するために使用され得るか、または複数の意味で特徴、構造、もしくは特性の組合せを記述するために使用され得る。同様に、「a」、「an」、または「the」などの用語もやはり、文脈に少なくとも部分的に依存して、単数形の用法を伝えるか、または複数形の用法を伝えると理解され得る。さらに、「に基づいて」または「によって決定される」という用語は、必ずしも排他的な要因のセットを伝えることを意図されていないと理解され、代わりに、やはり文脈に少なくとも部分的に依存して、必ずしも明示的に説明されていない追加の要因の存在を許容する場合もある。
【0033】
図3は、本開示の一実施形態による通信システム(300)の簡略化されたブロック図を示す。通信システム(300)は、例えば、ネットワーク(350)を介して互いに通信することができる複数の端末デバイスを含む。例えば、通信システム(300)は、ネットワーク(350)を介して相互接続された第1の対の端末デバイス(310)および(320)を含む。
図3の例では、第1の対の端末デバイス(310)および(320)は、データの単方向伝送を行い得る。例えば、端末デバイス(310)は、ネットワーク(350)を介して他方の端末デバイス(320)に送信するための(例えば、端末デバイス(310)によってキャプチャされたビデオピクチャのストリームの)ビデオデータをコーディングし得る。エンコーディングされたビデオデータは、1つまたは複数のコーディングされたビデオビットストリームの形で送信され得る。端末デバイス(320)は、ネットワーク(350)からコーディングされたビデオデータを受信し、コーディングされたビデオデータをデコーディングしてビデオピクチャを復元し、復元されたビデオデータに従ってビデオピクチャを表示し得る。単方向データ伝送は、メディアサービング用途などにおいて実施され得る。
【0034】
他の例では、通信システム(300)は、例えばビデオ会議用途の間に実施され得るコーディングされたビデオデータの双方向伝送を行う第2の対の端末デバイス(330)および(340)を含む。データの双方向伝送のために、一例では、端末デバイス(330)および(340)の各端末デバイスは、ネットワーク(350)を介して端末デバイス(330)および(340)の他方の端末デバイスに送信するための(例えば、その端末デバイスによってキャプチャされたビデオピクチャのストリームの)ビデオデータをコーディングし得る。端末デバイス(330)および(340)の各端末デバイスはまた、端末デバイス(330)および(340)の他方の端末デバイスによって送信されたコーディングされたビデオデータを受信し、コーディングされたビデオデータをデコーディングしてビデオピクチャを復元し、復元されたビデオデータに従って、アクセス可能な表示デバイスにおいてビデオピクチャを表示し得る。
【0035】
図3の例では、端末デバイス(310)、(320)、(330)、および(340)は、サーバ、パーソナルコンピュータ、およびスマートフォンとして実施され得るが、本開示の基礎となる原理の適用性はそのように限定されない。本開示の実施形態は、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤ、ウェアラブルコンピュータ、専用のビデオ会議機器などにおいて実装され得る。ネットワーク(350)は、例えば配線(有線)および/または無線通信ネットワークを含む、端末デバイス(310)、(320)、(330)および(340)間で、コーディングされたビデオデータを伝達する任意の個数のネットワークやタイプのネットワークを表す。通信ネットワーク(350)9は回線交換チャネル、パケット交換チャネル、および/または他のタイプのチャネルでデータを交換してもよい。代表的なネットワークは、電気通信ネットワーク、ローカルエリアネットワーク、広域ネットワークおよび/またはインターネットを含む。本考察の目的では、ネットワーク(350)のアーキテクチャおよびトポロジーは、本明細書で明示的に説明されない限り、本開示の動作にとって重要ではない場合がある。
【0036】
図4は、本開示の主題の用途の一例として、ビデオストリーミング環境におけるビデオエンコーダおよびビデオデコーダの配置を示す。本開示の主題は、例えば、ビデオ会議、デジタルテレビ放送、ゲーム、仮想現実、CD、DVD、メモリスティックなどを含むデジタルメディア上の圧縮ビデオの記憶などを含む、他のビデオ対応用途に等しく適用され得る。
【0037】
ビデオストリーミングシステムは、圧縮されていないビデオピクチャまたは画像のストリーム(402)を作成するためのビデオソース(401)、例えばデジタルカメラを含むことができるビデオキャプチャサブシステム(413)を含み得る。一例では、ビデオピクチャのストリーム(402)は、ビデオソース401のデジタルカメラによって録画されたサンプルを含む。ビデオピクチャのストリーム(402)は、エンコーディングされたビデオデータ(404)(またはコーディングされたビデオビットストリーム)と比較した場合の高データ量を強調するために太線で示されており、ビデオソース(401)に結合されたビデオエンコーダ(403)を含む電子デバイス(420)によって処理され得る。ビデオエンコーダ(403)は、以下でより詳細に説明されるように本開示の主題の態様を可能にし、または実装するために、ハードウェア、ソフトウェア、またはそれらの組合せを含むことができる。エンコーディングされたビデオデータ(404)(またはエンコーディングされたビデオビットストリーム(404))は、非圧縮ビデオピクチャのストリーム(402)と比較した場合の低データ量を強調するために細線で示されており、将来の使用のためにストリーミングサーバ(405)に、または下流のビデオデバイス(図示せず)に直接記憶され得る。
図4のクライアントサブシステム(406)および(408)などの1つまたは複数のストリーミングクライアントサブシステムは、ストリーミングサーバ(405)にアクセスして、エンコーディングされたビデオデータ(404)のコピー(407)および(409)を取得することができる。クライアントサブシステム(406)は、例えば電子デバイス(430)内のビデオデコーダ(410)を含むことができる。ビデオデコーダ(410)は、エンコーディングされたビデオデータの入力コピー(407)をデコーディングし、圧縮されていない、ディスプレイ(412)(例えば、表示画面)または他のレンダリングデバイス(図示せず)上にレンダリングされ得るビデオピクチャの出力ストリーム(411)を作成する。ビデオデコーダ410は、本開示に記載される様々な機能の一部または全部を実行するように構成され得る。一部のストリーミングシステムでは、エンコーディングされたビデオデータ(404)、(407)、および(409)(例えば、ビデオビットストリーム)は、特定のビデオコーディング/圧縮規格に従ってエンコーディングされ得る。それらの規格の例は、ITU-T勧告H.265を含む。一例では、開発中のビデオコーディング規格は、多用途ビデオコーディング(VVC)として非公式に知られている。本開示の主題は、VVC、および他のビデオコーディング規格の文脈で使用され得る。
【0038】
電子デバイス(420)および(430)は、他の構成要素(図示せず)を含むことができることに留意されたい。例えば、電子デバイス(420)はビデオデコーダ(図示せず)を含むことができ、電子デバイス(430)もビデオエンコーダ(図示せず)を含むことができる。
【0039】
図5は、以下の本開示の任意の実施形態によるビデオデコーダ(510)のブロック図を示す。ビデオデコーダ(510)は、電子デバイス(530)に含まれ得る。電子デバイス(530)は、受信器(531)(例えば、受信回路)を含むことができる。ビデオデコーダ(510)は、
図4の例のビデオデコーダ(410)の代わりに使用され得る。
【0040】
受信器(531)は、ビデオデコーダ(510)によってデコーディングされるべき1つまたは複数のコーディングされたビデオシーケンスを受信し得る。同じまたは他の実施形態では、一度に1つのコーディングされたビデオシーケンスがデコーディングされえ、各コーディングされたビデオシーケンスのデコーディングは、他のコーディングされたビデオシーケンスから独立している。各ビデオシーケンスは、複数のビデオフレームまたは画像と関連付けられ得る。コーディングされたビデオシーケンスはチャネル(501)から受信されることができ、チャネル(501)は、エンコーディングされたビデオデータを記憶する記憶デバイスへのハードウェア/ソフトウェアリンク、またはエンコーディングされたビデオデータを送信するストリーミングソースであり得る。受信器(531)は、エンコーディングされたビデオデータを、それぞれの処理回路(図示せず)に転送され得る、コーディングされたオーディオデータおよび/または補助データストリームなどの他のデータとともに受信し得る。受信器(531)は、コーディングされたビデオシーケンスを他のデータから分離し得る。ネットワークジッタに対抗するために、バッファメモリ(515)が、受信器(531)とエントロピーデコーダ/パーサ(520)(これ以降は「パーサ(520)」)との間に配置されてもよい。一定の用途では、バッファメモリ(515)は、ビデオデコーダ(510)の一部として実装され得る。他の用途では、バッファメモリ(515)は、ビデオデコーダ(510)から分離されて外部にあり得る(図示せず)。さらに他の用途では、例えばネットワークジッタに対抗するためにビデオデコーダ(510)の外部にバッファメモリ(図示せず)があってもよく、例えば再生タイミングを処理するためにビデオデコーダ(510)の内部に他の追加的なバッファメモリ(515)があり得る。受信器(531)が十分な帯域幅および可制御性の記憶/転送デバイスから、またはアイソシンクロナスネットワークからデータを受信しているときには、バッファメモリ(515)は不要であり得るか、または小さくすることができる。インターネットなどのベストエフォートパケットネットワークで使用するために、十分なサイズのバッファメモリ(515)が必要とされる場合があり、そのサイズは比較的大きくなり得る。そのようなバッファメモリは、適応サイズで実装されてもよく、ビデオデコーダ(510)の外部のオペレーティングシステムまたは同様の要素(図示せず)に少なくとも部分的に実装されてもよい。
【0041】
ビデオデコーダ(510)は、コーディングされたビデオシーケンスからシンボル(521)を復元するためにパーサ(520)を含んでもよい。それらのシンボルのカテゴリは、ビデオデコーダ(510)の動作を管理するために使用される情報と、潜在的に、
図5に示されるように、電子デバイス(530)の不可欠な部分である場合もそうでない場合もあるが、電子デバイス(530)に結合され得るディスプレイ(512)(例えば、表示画面)などのレンダリングデバイスを制御するための情報とを含む。(1つまたは複数の)レンダリングデバイスのための制御情報は、補足拡張情報(SEIメッセージ)またはビデオユーザビリティ情報(VUI)パラメータセットフラグメント(図示せず)の形であり得る。パーサ(520)は、パーサ(520)によって受け取られるコーディングされたビデオシーケンスを解析/エントロピーデコーディングし得る。コーディングされたビデオシーケンスのエントロピーコーディングは、ビデオコーディング技術または規格に従ったものとすることができ、可変長コーディング、ハフマンコーディング、文脈依存性ありまたはなしの算術コーディングなどを含む様々な原理に従ったものとすることができる。パーサ(520)は、コーディングされたビデオシーケンスから、サブグループに対応する少なくとも1つのパラメータに基づいて、ビデオデコーダ内の画素のサブグループのうちの少なくとも1つのサブグループパラメータのセットを抽出し得る。サブグループは、Group of Pictures(GOP)、ピクチャ、タイル、スライス、マクロブロック、コーディングユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)などを含み得る。パーサ(520)はまた、コーディングされたビデオシーケンスから、変換係数(例えば、フーリエ変換係数)、量子化パラメータ値、動きベクトルなどの情報も抽出し得る。
【0042】
パーサ(520)は、シンボル(521)を作成するために、バッファメモリ(515)から受け取られたビデオシーケンスに対してエントロピーデコーディング/解析動作を実行することができる。
【0043】
シンボル(521)の再構成は、コーディングされたビデオピクチャまたはその部分のタイプ(インターピクチャおよびイントラピクチャ、インターブロックおよびイントラブロックなど)、ならびに他の要因に応じて、複数の異なる処理ユニットまたは機能ユニットを含むことができる。含まれるユニットおよびユニットがどのように含まれるかは、パーサ(520)によってコーディングされたビデオシーケンスから解析されたサブグループ制御情報によって制御され得る。パーサ(520)と以下の複数の処理ユニットまたは機能ユニットとの間のそのようなサブグループ制御情報の流れは、簡潔にするために図示されていない。
【0044】
すでに述べられた機能ブロック以外に、ビデオデコーダ(510)は、以下に記載されるように、概念的にいくつかの機能ユニットに細分化され得る。商業的制約の下で動作する実際の実装形態では、これらの機能ユニットの多くは互いに密接に相互作用し、少なくとも部分的に、互いに統合され得る。しかしながら、本開示の主題の様々な機能を明確に説明するために、以下の開示においては機能ユニットへの概念的細分が採用される。
【0045】
第1のユニットはスケーラ/逆変換ユニット(551)を含み得る。スケーラ/逆変換ユニット(551)は、量子化変換係数、ならびにどのタイプの逆変換を使用するかを示す情報、ブロックサイズ、量子化係数/パラメータ、量子化スケーリング行列などを含む制御情報を、パーサ(520)から(1つまたは複数の)シンボル(521)として受信し得る。スケーラ/逆変換ユニット(551)は、アグリゲータ(555)に入力され得るサンプル値を含むブロックを出力することができる。
【0046】
場合によっては、スケーラ/逆変換(551)の出力サンプルは、イントラコーディングされたブロック、すなわち、以前に再構成されたピクチャからの予測情報を使用しないが、現在のピクチャの以前に再構成された部分からの予測情報を使用することができるブロックに関係する場合がある。そのような予測情報は、イントラピクチャ予測ユニット(552)によって提供され得る。場合によっては、イントラピクチャ予測ユニット(552)は、すでに再構成され、現在ピクチャバッファ(558)に記憶されている周囲のブロックの情報を使用して、再構成中のブロックと同じサイズおよび形状のブロックを生成してもよい。現在ピクチャバッファ(558)は、例えば、部分的に再構成された現在のピクチャおよび/または完全に再構成された現在のピクチャをバッファリングする。アグリゲータ(555)は、いくつかの実装形態では、サンプルごとに、イントラ予測ユニット(552)が生成した予測情報を、スケーラ/逆変換ユニット(551)によって提供される出力サンプル情報に加えてもよい。
【0047】
他の場合には、スケーラ/逆変換ユニット(551)の出力サンプルは、インターコーディングされ、潜在的に動き補償されたブロックに関連する可能性がある。そのような場合、動き補償予測ユニット(553)は、参照ピクチャメモリ(557)にアクセスして、インターピクチャ予測に使用されるサンプルをフェッチすることができる。ブロックに関連するシンボル(521)に従ってフェッチされたサンプルを動き補償した後、これらのサンプルは、出力サンプル情報を生成するために、アグリゲータ(555)によってスケーラ/逆変換ユニット(551)の出力に加えられ得る(ユニット551の出力は、残差サンプルまたは残差信号と呼ばれ得る)。動き補償予測ユニット(553)がそこから予測サンプルをフェッチする参照ピクチャメモリ(557)内のアドレスは、例えば、X成分、Y成分(シフト)、および参照ピクチャ成分(時間)を有することができるシンボル(521)の形で動き補償予測ユニット(553)が利用可能な、動きベクトルによって制御され得る。動き補償はまた、サブサンプルの正確な動きベクトルが使用されているときに参照ピクチャメモリ(557)からフェッチされたサンプル値の補間も含んでいてもよく、動きベクトル予測機構などと関連付けられてもよい。
【0048】
アグリゲータ(555)の出力サンプルは、ループフィルタユニット(556)において様々なループフィルタリング技法を受けることができる。ビデオ圧縮技術は、(コーディングされたビデオビットストリームとも呼ばれる)コーディングされたビデオシーケンスに含まれるパラメータによって制御され、パーサ(520)からのシンボル(521)としてループフィルタユニット(556)に利用可能にされるインループフィルタ技術を含むことができるが、コーディングされたピクチャまたはコーディングされたビデオシーケンスの(デコーディング順序で)前の部分のデコーディング中に取得されたメタ情報に反応するだけでなく、以前に再構成およびループフィルタリングされたサンプル値に反応することもできる。以下でさらに詳細に説明するように、いくつかのタイプのループフィルタが、様々な順序でループフィルタユニット556の一部として含まれ得る。
【0049】
ループフィルタユニット(556)の出力は、レンダリングデバイス(512)に出力され得るとともに、将来のインターピクチャ予測で使用するために参照ピクチャメモリ(557)に記憶され得るサンプルストリームであり得る。
【0050】
特定のコーディングされたピクチャは、完全に再構成されると、将来のインターピクチャ予測のための参照ピクチャとして使用され得る。例えば、現在のピクチャに対応するコーディングされたピクチャが完全に復元され、コーディングされたピクチャが参照ピクチャとして(例えば、パーサ(520)によって)識別されると、現在ピクチャバッファ(558)は、参照ピクチャメモリ(557)の一部になることができ、未使用の現在ピクチャバッファは、次のコーディングされたピクチャの復元を開始する前に再割当てされ得る。
【0051】
ビデオデコーダ(510)は、例えば、ITU-T Rec.H.265などの規格で採用された所定のビデオ圧縮技術に従ってデコーディング動作を実行し得る。コーディングされたビデオシーケンスがビデオ圧縮技術または規格のシンタックスとビデオ圧縮技術または規格において文書化されたプロファイルの両方を順守するという意味で、コーディングされたビデオシーケンスは、使用されているビデオ圧縮技術または規格によって指定されたシンタックスに準拠し得る。具体的には、プロファイルは、そのプロファイルの下でのみ使用に供されるツールとして、ビデオ圧縮技術または規格で利用可能なすべてのツールの中から特定のツールを選択することができる。規格に準拠するために、コーディングされたビデオシーケンスの複雑さが、ビデオ圧縮技術または規格のレベルによって定義される範囲内にあり得る。場合によっては、レベルは、最大ピクチャサイズ、最大フレームレート、最大再構成サンプルレート(例えば、毎秒メガサンプルで測定される)、最大参照画像サイズなどを制限する。レベルによって設定される制限は、場合によっては、仮想参照デコーダ(HRD)仕様およびコーディングされたビデオシーケンスでシグナリングされたHRDバッファ管理のためのメタデータによってさらに制限され得る。
【0052】
いくつかの例示的実施形態では、受信器(531)は、エンコーディングされたビデオとともに追加の(冗長な)データを受信し得る。追加のデータは、(1つまたは複数の)コーディングされたビデオシーケンスの一部として含まれ得る。追加のデータは、データを適切にデコーディングするために、かつ/または元のビデオデータをより正確に再構成するために、ビデオデコーダ(510)によって使用されてもよい。追加のデータは、例えば、時間、空間、または信号雑音比(SNR)拡張レイヤ、冗長スライス、冗長ピクチャ、前方誤り訂正コードなどの形式であり得る。
【0053】
図6は、本開示の一例示的実施形態によるビデオエンコーダ(603)のブロック図を示す。ビデオエンコーダ(603)は、電子デバイス(620)に含まれ得る。電子デバイス(620)は、送信器(640)(例えば、送信回路)をさらに含み得る。ビデオエンコーダ(603)は、
図4の例のビデオエンコーダ(403)の代わりに使用され得る。
【0054】
ビデオエンコーダ(603)は、ビデオエンコーダ(603)によってコーディングされるべき(1つまたは複数の)ビデオ画像をキャプチャし得るビデオソース(601)(
図6の例では電子デバイス(620)の一部ではない)からビデオサンプルを受信し得る。別の例では、ビデオソース(601)は電子デバイス(620)の一部分として実装され得る。
【0055】
ビデオソース(601)は、ビデオエンコーダ(603)によってコーディングされるべきソースビデオシーケンスを、任意の適切なビット深度(例えば、8ビット、10ビット、12ビット、...)、任意の色空間(例えば、BT.601 YCrCb、RGB、XYZ...)、および任意の適切なサンプリング構造(例えば、YCrCb 4:2:0、YCrCb 4:4:4)のものとすることができるデジタルビデオサンプルストリームの形で提供し得る。メディアサービングシステムでは、ビデオソース(601)は、以前に準備されたビデオを記憶することができる記憶デバイスであり得る。ビデオ会議システムでは、ビデオソース(601)は、ローカル画像情報をビデオシーケンスとしてキャプチャするカメラであり得る。ビデオデータは、順を追って見たときに動きを与える複数の個別のピクチャまたは画像として提供され得る。ピクチャ自体は、画素の空間配列として編成されてもよく、各画素は、使用されているサンプリング構造、色空間などに応じて、1つまたは複数のサンプルを含むことができる。当業者であれば、画素とサンプルとの関係を容易に理解することができる。以下の説明はサンプルに焦点を当てる。
【0056】
いくつかの例示的実施形態によれば、ビデオエンコーダ(603)は、リアルタイムで、または用途によって必要とされる他の任意の時間制約の下で、ソースビデオシーケンスのピクチャをコーディングされたビデオシーケンス(643)にコーディングおよび圧縮し得る。適切なコーディング速度を強制することが、コントローラ(650)の1つの機能を構成する。いくつかの実施形態では、コントローラ(650)は、以下で説明されるように、他の機能ユニットに機能的に結合され、他の機能ユニットを制御し得る。簡潔にするために、結合は図示されていない。コントローラ(650)によって設定されるパラメータは、レート制御関連のパラメータ(ピクチャスキップ、量子化器、レート歪み最適化手法のラムダ値など)、ピクチャサイズ、Group of Pictures(GOP)レイアウト、最大動きベクトル探索範囲などを含み得る。コントローラ(650)は、あるシステム設計のために最適化されたビデオエンコーダ(603)に関連する他の適切な機能を有するように構成され得る。
【0057】
いくつかの例示的実施形態では、ビデオエンコーダ(603)は、コーディングループで動作するように構成され得る。過度に簡略化された説明として、一例では、コーディングループは、ソースコーダ(630)(例えば、コーディングされるべき入力ピクチャと、(1つまたは複数の)参照ピクチャとに基づいて、シンボルストリームなどのシンボルを作成する役割を担う)と、ビデオエンコーダ(603)に組み込まれた(ローカル)デコーダ(633)とを含むことができる。デコーダ(633)は、組み込まれたデコーダ633がエントロピーコーディングなしでソースコーダ630によってコーディングされたビデオストリームを処理するとしても、シンボルを再構成して、(リモート)デコーダが作成することになるのと同様の方法でサンプルデータを作成する(本開示の主題で考慮されるビデオ圧縮技術では、シンボルとコーディングされたビデオビットストリームとの間の任意の圧縮が可逆であり得るため)。再構成されたサンプルストリーム(サンプルデータ)は、参照ピクチャメモリ(634)に入力される。シンボルストリームのデコーディングは、デコーダの場所(ローカルまたはリモート)に関係なくビット正確な結果につながるので、参照ピクチャメモリ(634)内のコンテンツも、ローカルエンコーダとリモートエンコーダとの間でビット正確である。言い換えると、エンコーダの予測部分は、デコーディング中に予測を使用するときにデコーダが「見る」ことになるのとまったく同じサンプル値を参照ピクチャサンプルとして「見る」。参照ピクチャの同期性(および、例えばチャネル誤差が原因で同期性を維持することができない場合には、結果として生じるドリフト)のこの基本原理はコーディング品質を向上させるために使用される。
【0058】
「ローカル」デコーダ(633)の動作は、
図5とともに上記で詳細にすでに記載されている、ビデオデコーダ(510)などの「リモート」デコーダの動作と同じであり得る。
図5も簡単に参照すると、しかしながら、シンボルが利用可能であり、エントロピーコーダ(645)およびパーサ(520)によるコーディングされたビデオシーケンスへのシンボルのエンコーディング/デコーディングが可逆であり得るため、バッファメモリ(515)およびパーサ(520)を含むビデオデコーダ(510)のエントロピーデコーディング部分は、エンコーダ内のローカルデコーダ(633)においては完全に実装されない場合がある。
【0059】
この時点で言えることは、デコーダ内にのみ存在し得る解析/エントロピーデコーディングを除く任意のデコーダ技術もまた必然的に、対応するエンコーダにおいて、実質的に同一の機能形態で存在する必要があり得るということである。このため、本開示の主題はデコーダ動作に焦点を当てる場合があり、この動作はエンコーダのデコーディング部分と同様である。よって、エンコーダ技術の説明は、包括的に説明されるデコーダ技術の逆であるので、省略され得る。一定の領域または態様においてのみ、エンコーダのより詳細な説明が以下に提供される。
【0060】
動作中、いくつかの例示的実装形態では、ソースコーダ(630)は、「参照ピクチャ」として指定されたビデオシーケンスからの1つまたは複数の以前にコーディングされたピクチャを参照して入力ピクチャを予測的にコーディングする、動き補償予測コーディングを実行する場合がある。このようにして、コーディングエンジン(632)は、入力ピクチャの画素ブロックと、入力ピクチャへの(1つまたは複数の)予測参照として選択され得る(1つまたは複数の)参照ピクチャの画素ブロックとの間の色チャネルの差分(または残差)をコーディングする。用語「残差(residue)」およびその形容詞形「残差の(residual)」は、互換的に使用され得る。
【0061】
ローカルビデオデコーダ(633)は、ソースコーダ(630)によって作成されたシンボルに基づいて、参照ピクチャとして指定され得るピクチャのコーディングされたビデオデータをデコーディングすることができる。コーディングエンジン(632)の動作は、有利なことに、非可逆プロセスであってもよい。コーディングされたビデオデータが(
図6には示されていない)ビデオデコーダでデコーディングされ得るとき、再構成されたビデオシーケンスは、通常、いくつかの誤差を伴うソースビデオシーケンスのレプリカであり得る。ローカルビデオデコーダ(633)は、参照ピクチャに対してビデオデコーダによって実行され得るデコーディングプロセスを複製し、再構成された参照ピクチャを参照ピクチャキャッシュ(634)に記憶させ得る。このようにして、ビデオエンコーダ(603)は、遠端(リモート)ビデオデコーダによって取得される再構成された参照ピクチャと共通の内容を有する再構成された参照ピクチャのコピーをローカルに記憶し得る(伝送誤差なしで)。
【0062】
予測器(635)は、コーディングエンジン(632)のための予測検索を実行することができる。すなわち、コーディングされる新しいピクチャの場合、予測器(635)は、新しいピクチャのための適切な予測参照として役立つことができる、(候補参照画素ブロックとしての)サンプルデータまたは参照ピクチャ動きベクトル、ブロック形状などの特定のメタデータを求めて、参照ピクチャメモリ(634)を検索することができる。予測器(635)は、適切な予測参照を見つけるために、画素ブロックごとにサンプルブロックに対して動作することができる。場合によっては、予測器(635)によって取得された検索結果によって決定されるように、入力ピクチャは、参照ピクチャメモリ(634)に記憶された複数の参照ピクチャから引き出された予測参照を有することができる。
【0063】
コントローラ(650)は、例えば、ビデオデータをエンコーディングするために使用されるパラメータおよびサブグループパラメータの設定を含む、ソースコーダ(630)のコーディング動作を管理することができる。
【0064】
すべての前述の機能ユニットの出力は、エントロピーコーダ(645)内でエントロピーコーディングを受けることができる。エントロピーコーダ(645)は、ハフマンコーディング、可変長コーディング、算術コーディングなどといった技術に従ったシンボルの可逆圧縮により、様々な機能ユニットによって生成されたシンボルをコーディングされたビデオシーケンスに変換する。
【0065】
送信器(640)は、エントロピーコーダ(645)によって作成されたコーディングされたビデオシーケンスをバッファリングして、通信チャネル(660)を介した送信の準備をすることができ、通信チャネル(660)は、エンコーディングされたビデオデータを記憶する記憶デバイスへのハードウェア/ソフトウェアリンクであってもよい。送信器(640)は、ビデオコーダ(603)からのコーディングされたビデオデータを、送信される他のデータ、例えば、コーディングされたオーディオデータおよび/または補助データストリーム(ソースは図示されていない)とマージし得る。
【0066】
コントローラ(650)は、ビデオエンコーダ(603)の動作を管理することができる。コーディング中に、コントローラ(650)は、各コーディングされたピクチャに特定のコーディングされたピクチャタイプを割り当てることができ、それは、それぞれのピクチャに適用され得るコーディング技法に影響を及ぼす場合がある。例えば、ピクチャは多くの場合、次のピクチャタイプのいずれかとして割り当てられ得る。
【0067】
イントラピクチャ(Iピクチャ)は、予測のソースとしてシーケンス内の他のピクチャを使用せずにコーディングおよびデコーディングされ得るものであり得る。一部のビデオコーデックは、例えば、独立デコーダリフレッシュ(「IDR」)ピクチャを含む異なるタイプのイントラピクチャを可能にする。当業者であれば、Iピクチャのそれらの変形ならびにそれらそれぞれの用途および特徴を認識している。
【0068】
予測ピクチャ(Pピクチャ)は、各ブロックのサンプル値を予測するために、最大で1つの動きベクトルおよび参照インデックスを使用するイントラ予測またはインター予測を使用して、コーディングおよびデコーディングされ得るピクチャであり得る。
【0069】
双方向予測ピクチャ(Bピクチャ)は、各ブロックのサンプル値を予測するために、最大で2つの動きベクトルおよび参照インデックスを使用するイントラ予測またはインター予測を使用して、コーディングおよびデコーディングされ得るピクチャであり得る。同様に、複数予測ピクチャは、単一ブロックの再構成のために3つ以上の参照ピクチャおよび関連するメタデータを使用し得る。
【0070】
ソースピクチャは、一般に、複数のサンプルコーディングブロック(例えば、各々4×4、8×8、4×8、または16×16サンプルのブロック)に空間的に細分され、ブロックごとにコーディングされ得る。ブロックは、ブロックそれぞれのピクチャに適用されたコーディング割当てによって決定されるように他の(すでにコーディングされた)ブロックを参照して予測的にコーディングされ得る。例えば、Iピクチャのブロックは、非予測的にコーディングされ得るか、または、同じピクチャのすでにコーディングされたブロックを参照して、予測的にコーディングされ得る(空間予測またはイントラ予測)。Pピクチャの画素ブロックは、1つの以前にコーディングされた参照ピクチャを参照して、空間予測を介して、または時間予測を介して、予測的にコーディングされてもよい。Bピクチャのブロックは、1つまたは2つの以前にコーディングされた参照ピクチャを参照して、空間予測によって、または時間予測によって予測的にコーディングされ得る。ソースピクチャまたは中間処理されたピクチャは、他の目的で他のタイプのブロックに細分されてもよい。コーディングブロックおよびその他のタイプのブロックの分割は、以下でさらに詳細に説明するように、同じ方法に従う場合もそうでない場合もある。
【0071】
ビデオエンコーダ(603)は、ITU-T Rec.H.265などの所定のビデオコーディング技術または規格に従ってコーディング動作を実行することができる。その動作において、ビデオエンコーダ(603)は、入力ビデオシーケンスにおける時間および空間の冗長性を利用する予測コーディング動作を含む、様々な圧縮動作を実行することができる。したがって、コーディングされたビデオデータは、使用されているビデオコーディング技術または規格によって指定されたシンタックスに準拠し得る。
【0072】
いくつかの例示的実施形態では、送信器(640)は、エンコーディングされたビデオとともに追加のデータを送信し得る。ソースコーダ(630)は、そのようなデータをコーディングされたビデオシーケンスの一部として含み得る。追加のデータは、時間/空間/SNR増強層、冗長なピクチャやスライスなどの他の形の冗長データ、SEIメッセージ、VUIパラメータセットフラグメントなどを含み得る。
【0073】
ビデオは、複数のソースピクチャ(ビデオピクチャ)として時系列でキャプチャされ得る。イントラピクチャ予測(しばしばイントラ予測と略される)は、所与のピクチャにおける空間相関を利用し、インターピクチャ予測は、ピクチャ間の時間またはその他の相関を利用する。例えば、現在のピクチャと呼ばれる、エンコーディング/デコーディング中の特定のピクチャがブロックに分割され得る。現在のピクチャ内のブロックは、ビデオ内の以前にコーディングされたまだバッファリングされている参照ピクチャ内の参照ブロックに類似している場合、動きベクトルと呼ばれるベクトルによってコーディングされ得る。動きベクトルは、参照ピクチャ内の参照ブロックを指し、複数の参照ピクチャが使用されている場合、参照ピクチャを識別する第3の次元を有することができる。
【0074】
いくつかの例示的実施形態では、双予測技術がインターピクチャ予測に使用され得る。そのような双予測技術によれば、第1の参照ピクチャおよび第2の参照ピクチャなどの2つの参照ピクチャが使用され、これらは両方ともビデオ内の現在のピクチャをデコーディング順序で進める(ただし、表示順序では、それぞれ過去または未来にあり得る)。現在のピクチャ内のブロックは、第1の参照ピクチャ内の第1の参照ブロックを指し示す第1の動きベクトルと、第2の参照ピクチャ内の第2の参照ブロックを指し示す第2の動きベクトルとによってコーディングされ得る。ブロックは、第1の参照ブロックと第2の参照ブロックの組合せによって協調して予測され得る。
【0075】
さらに、マージモード技術が、インターピクチャ予測においてコーディング効率を改善するために使用されてもよい。
【0076】
本開示のいくつかの例示的実施形態によれば、インターピクチャ予測およびイントラピクチャ予測などの予測は、ブロック単位で行われる。例えば、ビデオピクチャのシーケンス内のピクチャは、圧縮のためにコーディングツリーユニット(CTU)に分割され、ピクチャ内のCTUは、64×64画素、32×32画素、または16×16画素などの同じサイズを有し得る。一般に、CTUは、3つの並列のコーディングツリーブロック(CTB)、すなわち、1つのルマCTBおよび2つのクロマCTBを含み得る。各CTUは、1つまたは複数のコーディングユニット(CU)に再帰的に4分木分割され得る。例えば、64×64画素のCTUは、64×64画素の1つのCU、または32×32画素の4つのCUに分割され得る。32×32ブロックのうちの1つまたは複数の各々は、16×16画素の4つのCUにさらに分割され得る。いくつかの例示的実施形態では、各CUは、インター予測タイプやイントラ予測タイプなどの様々な予測タイプの中からそのCUの予測タイプを決定するためにエンコーディング中に分析され得る。CUは、時間的および/または空間的予測可能性に応じて、1つまたは複数の予測ユニット(PU)に分割され得る。一般に、各PUは、1つのルマ予測ブロック(PB)と、2つのクロマPBとを含む。一実施形態では、コーディング(エンコーディング/デコーディング)における予測動作は、予測ブロック単位で行われる。CUのPU(または異なる色チャネルのPB)への分割は、様々な空間パターンで行われ得る。ルマPBまたはクロマPBは、例えば、8×8画素、16×16画素、8×16画素、16×8画素などといった、サンプルの値(例えば、ルマ値)の行列を含み得る。
【0077】
図7は、本開示の他の例示的実施形態によるビデオエンコーダ(703)の図を示す。ビデオエンコーダ(703)は、ビデオピクチャのシーケンスにおける現在のビデオピクチャ内のサンプル値の処理ブロック(例えば、予測ブロック)を受け取り、処理ブロックを、コーディングされたビデオシーケンスの一部であるコーディングされたピクチャにエンコーディングするように構成される。例示的なビデオエンコーダ(703)は、
図4の例のビデオエンコーダ(403)の代わりに使用され得る。
【0078】
例えば、ビデオエンコーダ(703)は、8×8サンプルの予測ブロックなどの処理ブロックのサンプル値の行列を受け取る。次いでビデオエンコーダ(703)は、例えばレート歪み最適化(RDO)を使用して、処理ブロックがそれを使用して最良にコーディングされるのは、イントラモードか、インターモードか、それとも双予測モードかを決定する。処理ブロックがイントラモードでコーディングされると決定された場合、ビデオエンコーダ(703)は、イントラ予測技術を使用して処理ブロックをコーディングされたピクチャにエンコーディングし、処理ブロックがインターモードまたは双予測モードでコーディングされると決定された場合、ビデオエンコーダ(703)は、それぞれインター予測技術または双予測技術を使用して、処理ブロックをコーディングされたピクチャにエンコーディングし得る。いくつかの例示的実施形態では、インターピクチャ予測のサブモードとして、動きベクトルが予測器の外側のコーディングされた動きベクトル成分の恩恵を受けずに1つまたは複数の動きベクトル予測器から導出されるマージモードが使用され得る。いくつかの他の例示的実施形態では、対象ブロックに適用可能な動きベクトル成分が存在し得る。したがって、ビデオエンコーダ(703)は、処理ブロックの予測モードを決定するために、モード決定モジュールなどの、
図7に明示的に示されていない構成要素を含み得る。
【0079】
図7の例では、ビデオエンコーダ(703)は、
図7の例示的な構成に示されるように互いに結合されたインターエンコーダ(730)、イントラエンコーダ(722)、残差計算器(723)、スイッチ(726)、残差エンコーダ(724)、汎用コントローラ(721)、およびエントロピーエンコーダ(725)を含む。
【0080】
インターエンコーダ(730)は、現在のブロック(例えば、処理ブロック)のサンプルを受け取り、そのブロックを参照ピクチャ内の1つまたは複数の参照ブロック(例えば、表示順序で前のピクチャ内および後のピクチャ内のブロック)と比較し、インター予測情報(例えば、インターエンコーディング技術による冗長情報、動きベクトル、マージモード情報の記述)を生成し、任意の適切な技術を使用してインター予測情報に基づいてインター予測結果(例えば、予測されたブロック)を計算するように構成される。いくつかの例では、参照ピクチャは、(以下でさらに詳細に説明するように、
図7の残差デコーダ728として示されている)
図6の例示的なエンコーダ620に組み込まれたデコーディングユニット633を使用して、エンコーディングされたビデオ情報に基づいてデコーディングされた、デコーディングされた参照ピクチャである。
【0081】
イントラエンコーダ(722)は、現在のブロック(例えば、処理ブロック)のサンプルを受け取り、ブロックを同じピクチャ内のすでにコーディングされたブロックと比較し、変換後の量子化係数を生成し、場合によってはイントラ予測情報(例えば、1つまたは複数のイントラエンコーディング技術によるイントラ予測方向情報)も生成するように構成される。イントラエンコーダ(722)は、イントラ予測情報と、同じピクチャ内の参照ブロックとに基づいて、イントラ予測結果(例えば、予測されたブロック)を計算し得る。
【0082】
汎用コントローラ(721)は、汎用制御データを決定し、汎用制御データに基づいてビデオエンコーダ(703)の他の構成要素を制御するように構成され得る。一例では、汎用コントローラ(721)は、ブロックの予測モードを決定し、予測モードに基づいてスイッチ(726)に制御信号を提供する。例えば、予測モードがイントラモードである場合、汎用コントローラ(721)は、スイッチ(726)を制御して、残差計算器(723)が使用するためのイントラモード結果を選択させ、エントロピーエンコーダ(725)を制御して、イントラ予測情報を選択させてそのイントラ予測情報をビットストリームに含めさせ、ブロックの予測モードがインターモードである場合、汎用コントローラ(721)は、スイッチ(726)を制御して、残差計算器(723)が使用するためのインター予測結果を選択させて、エントロピーエンコーダ(725)を制御して、インター予測情報を選択させてそのインター予測情報をビットストリームに含めさせる。
【0083】
残差計算器(723)は、受け取ったブロックと、イントラエンコーダ(722)またはインターエンコーダ(730)から選択されたブロックについての予測結果との差分(残差データ)を計算するように構成され得る。残差エンコーダ(724)は、残差データをエンコーディングして変換係数を生成するように構成され得る。例えば、残差エンコーダ(724)は、残差データを空間領域から周波数領域に変換して変換係数を生成するように構成され得る。次いで、変換係数は、量子化変換係数を取得するために量子化処理を受ける。様々な例示的実施形態において、ビデオエンコーダ(703)は残差デコーダ(728)も含む。残差デコーダ(728)は逆変換を行い、デコーディングされた残差データを生成するように構成される。デコーディングされた残差データは、イントラエンコーダ(722)およびインターエンコーダ(730)によって適切に使用され得る。例えば、インターエンコーダ(730)は、デコーディングされた残差データとインター予測情報とに基づいて、デコーディングされたブロックを生成することができ、イントラエンコーダ(722)は、デコーディングされた残差データとイントラ予測情報とに基づいて、デコーディングされたブロックを生成することができる。デコーディングされたブロックは、デコーディングされたピクチャを生成するために適切に処理され、デコーディングされたピクチャは、メモリ回路(図示せず)にバッファリングされ、参照ピクチャとして使用されることができる。
【0084】
エントロピーエンコーダ(725)は、ビットストリームをエンコーディングされたブロックを含むようにフォーマットし、エントロピーコーディングを行うように構成され得る。エントロピーエンコーダ(725)は、ビットストリームに様々な情報を含めるように構成される。例えば、エントロピーエンコーダ(725)は、汎用制御データ、選択された予測情報(例えば、イントラ予測情報やインター予測情報)、残差情報、および他の適切な情報をビットストリームに含めるように構成され得る。インターモードまたは双予測モードのどちらかのマージサブモードでブロックをコーディングするときには、残差情報が存在しない場合がある。
【0085】
図8は、本開示の他の実施形態による例示的なビデオデコーダ(810)の図を示す。ビデオデコーダ(810)は、コーディングされたビデオシーケンスの一部であるコーディングされたピクチャを受け取り、コーディングされたピクチャをデコーディングして再構成されたピクチャを生成するように構成される。一例では、ビデオデコーダ(810)は、
図4の例のビデオデコーダ(410)の代わりに使用され得る。
【0086】
図8の例では、ビデオデコーダ(810)は、
図8の例示的な構成に示されるように、互いに結合されたエントロピーデコーダ(871)、インターデコーダ(880)、残差デコーダ(873)、再構成モジュール(874)、およびイントラデコーダ(872)を含む。
【0087】
エントロピーデコーダ(871)は、コーディングされたピクチャから、コーディングされたピクチャが構成されるシンタックス要素を表す特定のシンボルを再構成するように構成され得る。そのようなシンボルは、例えば、ブロックがコーディングされているモード(例えば、イントラモード、インターモード、双予測モード、マージサブモードまたは別のサブモード)、イントラデコーダ(872)またはインターデコーダ(880)によって予測に使用される特定のサンプルまたはメタデータを識別することができる予測情報(例えば、イントラ予測情報やインター予測情報)、例えば量子化変換係数の形の残差情報などを含むことができる。一例では、予測モードがインターモードまたは双予測モードである場合、インター予測情報がインターデコーダ(880)に提供され、予測タイプがイントラ予測タイプである場合、イントラ予測情報がイントラデコーダ(872)に提供される。残差情報は、逆量子化を受けることができ、残差デコーダ(873)に提供される。
【0088】
インターデコーダ(880)は、インター予測情報を受け取り、インター予測情報に基づいてインター予測結果を生成するように構成され得る。
【0089】
イントラデコーダ(872)は、イントラ予測情報を受け取り、イントラ予測情報に基づいて予測結果を生成するように構成され得る。
【0090】
残差デコーダ(873)は逆量子化を行って逆量子化変換係数を抽出し、逆量子化変換係数を処理して残差を周波数領域から空間領域に変換するように構成され得る。残差デコーダ(873)はまた(量子化パラメータ(QP)を含めるために)特定の制御情報を利用する場合もあり、その情報はエントロピーデコーダ(871)によって提供され得る(これは少量の制御情報のみであり得るためデータパスは図示されない)。
【0091】
再構成モジュール(874)は、空間領域において、残差デコーダ(873)による出力としての残差と、(場合によって、インター予測モジュールまたはイントラ予測モジュールによる出力としての)予測結果とを組み合わせて、再構成されたビデオの一部としての再構成されたピクチャの一部を形成する再構成されたブロックを形成するように構成され得る。視覚品質を改善するために、非ブロック化動作などの他の適切な動作が行われてもよいことに留意されたい。
【0092】
ビデオエンコーダ(403)、(603)、および(703)、ならびにビデオデコーダ(410)、(510)、および(810)は、任意の適切な技術を使用して実装され得ることに留意されたい。いくつかの例示的実施形態では、ビデオエンコーダ(403)、(603)、および(703)、ならびにビデオデコーダ(410)、(510)、および(810)は、1つまたは複数の集積回路を使用して実装され得る。他の実施形態では、ビデオエンコーダ(403)、(603)、および(603)、ならびにビデオデコーダ(410)、(510)、および(810)は、ソフトウェア命令を実行する1つまたは複数のプロセッサを使用して実装され得る。
【0093】
コーディングおよびデコーディングのためのブロック分割に目を向けると、一般的な分割は、ベースブロックから開始してもよく、所定のルールセット、特定のパターン、分割ツリー、または任意の分割構造もしくは方式に従ってもよい。分割は、階層的かつ再帰的であってもよい。上記の分割手順または他の手順のいずれかに従ってベースブロックを区分または分割した後にやはり、パーティションまたはコーディングブロックの最終セットが取得され得る。これらのパーティションの各々は、パーティション階層内の様々なパーティション化レベルのうちの1つにあってもよく、様々な形状であってもよい。各パーティションは、コーディングブロック(CB)と呼ばれ得る。上記の様々な例示的な分割実装形態では、結果として得られる各CBは、許容されるサイズおよび分割レベルのいずれかのものであり得る。そのようなパーティションは、そのためのいくつかの基本的なコーディング/デコーディング決定が行われることができ、コーディング/デコーディングパラメータが、最適化され、決定され、エンコーディングされたビデオビットストリームにおいてシグナリングされ得るユニットを形成し得るので、コーディングブロックと呼ばれる。最終パーティションにおける最高または最深レベルは、ツリーのコーディングブロック分割の深さを表す。コーディングブロックは、ルマコーディングブロックまたはクロマコーディングブロックであり得る。各色のCBツリー構造は、コーディングブロックツリー(CBT)と呼ばれることがある。
【0094】
すべての色チャネルのコーディングブロックは、まとめてコーディングユニット(CU)と呼ばれる場合がある。すべての色チャネルの階層構造は、コーディングツリーユニット(CTU)と総称される場合がある。CTU内の様々な色チャネルの分割パターンまたは構造は、同じであってもなくてもよい。
【0095】
ルマチャネルとクロマチャネルとに使用されるコーディング分割ツリー方式は、同じでなくてもよい場合がある。言い換えると、ルマチャネルとクロマチャネルとは、別個のコーディングツリー構造を有し得る。さらに、ルマチャネルとクロマチャネルとが同じコーディング分割ツリー構造を使用するか、それとも異なるコーディング分割ツリー構造か、および使用されるべき実際のコーディング分割ツリー構造は、コーディングされているスライスがPスライスか、Bスライスか、それともIスライスかに依存し得る。例えば、Iスライスの場合、クロマチャネルとルマチャネルとは、別個のコーディング分割ツリー構造またはコーディング分割ツリー構造モードを有し得るが、PスライスまたはBスライスの場合、ルマチャネルとクロマチャネルとは、同じコーディング分割ツリー方式を共有し得る。別個のコーディング分割ツリー構造またはモードが適用される場合、ルマチャネルは、あるコーディング分割ツリー構造によってCBに分割されることができ、クロマチャネルは、別のコーディング分割ツリー構造によってクロマCBに分割されることができる。
【0096】
いくつかの例示的実装形態では、所定の分割パターンがベースブロックに適用され得る。
図9に示すように、例示的な4方向パーティションツリーは、第1の所定のレベル(例えば、基本ブロックサイズとして、64×64ブロックレベルまたは他のサイズ)から開始してもよく、ベースブロックは、所定の最下位レベル(例えば、4×4レベル)まで階層的に分割されてもよい。例えば、ベースブロックは、902、904、906および908で示される4つの所定の分割オプションまたはパターンに従うことができ、Rで表されたパーティションは、
図9に示される同じパーティションオプションが最下位レベル(例えば、4×4レベル)まで下位スケールで繰り返され得るという点で、再帰分割が可能である。いくつかの実装形態では、
図9の分割方式に追加の制限が適用され得る。
図9の実装形態では、長方形パーティション(例えば、1:2/2:1の長方形パーティション)は、可能であるが再帰的であることはできず、一方、正方形パーティションは再帰的であることができる。必要に応じて、再帰による
図9の後に続く分割は、コーディングブロックの最終セットを生成する。ルートノードまたはルートブロックからの分割深さを示すために、コーディングツリー深さがさらに定義され得る。例えば、64×64ブロックのルートノードまたはルートブロックのコーディングツリー深さは0に設定されてもよく、ルートブロックが
図9の後に続いてさらに1回分割された後、コーディングツリー深さは1増加する。64×64のベースブロックから4×4の最小パーティションまでの最大レベルまたは最深レベルは、上記方式では(レベル0から開始して)4である。そのような分割方式が、色チャネルのうちの1つまたは複数に適用され得る。各色チャネルは、
図9の方式に従って独立して分割され得る(例えば、所定のパターンのうちの分割パターンまたはオプションは、各階層レベルにおける色チャネルのそれぞれについて独立して決定されてもよい)。あるいは、2つ以上の色チャネルが
図9の同じ階層パターンツリーを共有してもよい(例えば、各階層レベルにおける2つ以上の色チャネルに対して、所定のパターンのうちの同じ分割パターンまたはオプションが選択されてもよい)。
【0097】
図10は、再帰分割により分割ツリーを形成することを可能にする他の例示的な所定の分割パターンを示す。
図10に示すように、例示的な10ウェイ分割構造またはパターンが事前定義され得る。ルートブロックは、所定のレベルから(例えば、128×128レベル、または64×64レベルにおけるベースブロックから)開始し得る。
図10の例示的な分割構造は、様々な2:1/1:2および4:1/1:4の長方形パーティションを含む。
図10の2列目の1002、1004、1006、および1008で示される3つのサブパーティションを有するパーティションタイプは、「T型」パーティションと呼ばれ得る。「T型」パーティション1002、1004、1006、および1008は、左T型、上T型、右T型、および下T型と呼ばれてもよい。いくつかの例示的実装形態では、
図10の長方形パーティションのいずれもさらに細分されることができない。ルートノードまたはルートブロックからの分割深さを示すために、コーディングツリー深さがさらに定義され得る。例えば、128×128ブロックのルートノードまたはルートブロックのコーディングツリー深さは0に設定されてもよく、ルートブロックが
図10の後に続いてさらに1回分割された後、コーディングツリー深さは1増加する。いくつかの実装形態では、1010のすべて正方形のパーティションのみが、
図10のパターンの後に続く分割ツリーの次のレベルへの再帰分割を可能とし得る。言い換えると、再帰分割は、T型パターン1002、1004、1006、および1008の正方形パーティションでは不可能である。必要に応じて、再帰による
図10の後に続く分割手順は、コーディングブロックの最終セットを生成する。そのような方式が、色チャネルのうちの1つまたは複数に適用され得る。いくつかの実装形態では、8×8レベル未満のパーティションの使用により多くの柔軟性が加えられ得る。例えば、場合によっては、2×2のクロマインター予測が使用され得る。
【0098】
コーディングブロック分割のためのいくつかの他の例示的実装形態では、ベースブロックまたは中間ブロックを4分木パーティションに分割するために4分木構造が使用され得る。このような4分木分割は、任意の正方形パーティションに階層的かつ再帰的に適用され得る。ベースブロックまたは中間ブロックもしくはパーティションがさらに4分木分割されるかどうかは、ベースブロックまたは中間ブロック/パーティションの様々なローカル特性に適合させることができる。ピクチャ境界における4分木分割がさらに適合し得る。サイズがピクチャ境界に収まるまでブロックが4分木分割を続けるように、ピクチャ境界で暗黙的な4分木分割が行われ得る。
【0099】
いくつかの他の例示的実装形態では、ベースブロックからの階層2元分割が使用されてもよい。そのような方式の場合、ベースブロックまたは中間レベルブロックは2つのパーティションに分割され得る。2元分割は、水平または垂直のいずれかであり得る。例えば、水平2元分割は、ベースブロックまたは中間ブロックを等しい左右のパーティションに分割することができる。同様に、垂直2元分割は、ベースブロックまたは中間ブロックを等しい上下のパーティションに分割することができる。このような2元分割は、階層的かつ再帰的であってもよい。2元分割方式が継続すべきかどうか、およびその方式がさらに継続する場合、水平または垂直2元分割のいずれが使用されるべきかは、ベースブロックまたは中間ブロックの各々で決定され得る。いくつかの実装形態では、さらなる分割は、(一方または両方の次元の)所定の最低パーティションサイズで停止することができる。あるいは、ベースブロックから所定の分割レベルまたは深さに達すると、さらなる分割を停止することができる。いくつかの実装形態では、パーティションのアスペクト比は制限されてもよい。例えば、パーティションのアスペクト比は、1:4より小さく(または4:1より大きく)なくてもよい。したがって、4:1の垂直対水平アスペクト比を有する垂直ストリップパーティションは、各々が2:1の垂直対水平アスペクト比を有する上部パーティションと下部パーティションとに垂直にさらに2元分割され得るのみである。
【0100】
さらにいくつかの他の例では、
図13に示すように、ベースブロックまたは任意の中間ブロックを分割するために3元分割方式が使用され得る。3元パターンは、
図13の1302に示すように垂直に、または
図13の1304に示すように水平に実装されてもよい。
図13の例示的な分割比は、垂直または水平のいずれかが1:2:1として示されているが、他の比が事前定義されてもよい。いくつかの実装形態では、2つ以上の異なる比が事前定義されてもよい。そのような3元分割方式は、4分木または2分木分割構造を補完するために使用されることができ、そのような3分木分割は、1つの連続したパーティション内のブロック中心に位置するオブジェクトを捕捉することができるが、4分木および2分木は常にブロック中心に沿って分割しており、したがって、オブジェクトを別々のパーティションに分割する。さらに、提案された3分木の分割の幅および高さは常に2の累乗であるため、追加の変換は必要ない。
【0101】
上記の分割方式は、異なる分割レベルで任意の方法で組み合わされ得る。一例として、上述した4分木および2分木分割方式は、ベースブロックを4分木2分木(QTBT)構造に分割するために組み合わされてもよい。そのような方式では、ベースブロックまたは中間ブロック/パーティションは、指定されている場合、所定の条件のセットを条件として、4分木分割または2分木分割のいずれかであってもよい。特定の例が
図14に示される。
図14の例では、ベースブロックは、1402、1404、1406、および1408によって示されるように、最初に4つのパーティションに4分木分割される。その後、結果として得られるパーティションの各々は、(1408などの)4つのさらなるパーティションに4分木分割されるか、または次のレベルで(例えば、水平方向または垂直方向のいずれか、例えば1402または1406であり、両方とも対称である)2つのさらなるパーティションに2元分割されるか、または(1404などの)分割されないかのいずれかである。2分木または4分木分割は、1410の全体的な例示的パーティションパターンおよび1420の対応するツリー構造/表現によって示されるように、正方形のパーティションに対して再帰的に可能とされることができ、実線は4分木分割を表し、破線は2分木分割を表す。2元分割が水平であるか垂直であるかを示すために、フラグが各2元分割ノード(非リーフ2元パーティション)に使用され得る。例えば、1420に示すように、1410の分割構造と一致して、フラグ「0」は水平2元分割を表すことができ、フラグ「1」は垂直2元分割を表すことができる。4分木分割パーティションの場合、4分木分割は常にブロックを水平方向と垂直方向の両方に分割して、同じサイズの4つのサブブロックを生成するため、分割タイプを示す必要はない。いくつかの実装形態では、フラグ「1」は水平2元分割を表すことができ、フラグ「0」は垂直2元分割を表すことができる。
【0102】
QTBTのいくつかの例示的実装形態では、4分木および2元分割ルールセットは、以下の所定のパラメータおよびそれに関連する対応する関数によって表されてもよい。
-CTUサイズ:4分木のルートノードサイズ(ベースブロックのサイズ)
-MinQTSize:最小許容4分木リーフノードサイズ
-MaxBTSize:最大許容2分木ルートノードサイズ
-MaxBTDepth:最大許容2分木深さ
-MinBTSize:最小許容2分木リーフノードサイズ
QTBT分割構造のいくつかの例示的実施態様では、CTUサイズは、クロマサンプルの2つの対応する64×64ブロックを有する128×128個のルマサンプルとして設定されてもよく(例示的なクロマサブサンプリングが考慮され使用される場合)、MinQTSizeは、16×16として設定されてもよく、MaxBTSizeは、64×64として設定されてもよく、MinBTSize(幅および高さの両方について)は、4×4として設定されてもよく、MaxBTDepthは、4として設定されてもよい。4分木分割は、4分木リーフノードを生成するために最初にCTUに適用され得る。4分木リーフノードは、16×16(すなわち、MinQTSize)のその最小許容サイズから128×128(すなわち、CTUサイズ)までのサイズを持つことができる。ノードが128×128の場合、サイズがMaxBTSize(すなわち、64×64)を超えるため、2分木によって最初に分割されることはない。そうでない場合、MaxBTSizeを超えないノードは、2分木によって分割され得る。
図14の例では、ベースブロックは128×128である。基本ブロックは、所定のルールセットに従って、4分木分割のみが可能である。ベースブロックは0の分割深さを有する。結果として得られる4つのパーティションの各々は、MaxBTSizeを超えない64×64であり、レベル1でさらに4分木または2分木分割され得る。プロセスは継続する。2分木深さがMaxBTDepth(すなわち、4)に達すると、それ以上の分割は考慮されなくてよい。2分木ノードの幅がMinBTSize(すなわち、4)に等しい場合、それ以上の水平分割は考慮されなくてよい。同様に、2分木ノードの高さがMinBTSizeに等しい場合、それ以上の垂直分割は考慮されない。
【0103】
いくつかの例示的実装形態では、上記のQTBT方式は、ルマおよびクロマが同じQTBT構造または別個のQTBT構造を有するための柔軟性をサポートするように構成されてもよい。例えば、PスライスおよびBスライスの場合、1つのCTU内のルマCTBとクロマCTBは同じQTBT構造を共有し得る。しかし、Iスライスの場合、ルマCTBはQTBT構造によってCBに分割されることができ、クロマCTBは他のQTBT構造によってクロマCBに分割されることができる。これは、CUがIスライス内の異なる色チャネルを参照するために使用され得ることを意味し、例えば、Iスライスは、ルマ成分のコーディングブロックまたは2つのクロマ成分のコーディングブロックからなることができ、PまたはBスライス内のCUは、3つすべての色成分のコーディングブロックからなり得る。
【0104】
いくつかの他の実装形態では、QTBT方式は、上述した3元方式で補完されてもよい。そのような実装形態は、マルチタイプツリー(MTT)構造と呼ばれることがある。例えば、ノードの2元分割に加えて、
図13の3元パーティションパターンのうちの一方が選択されてもよい。いくつかの実装形態では、正方形ノードのみが3元分割の対象となり得る。3元分割が水平であるか垂直であるかを示すために、追加のフラグが使用され得る。
【0105】
QTBT実装および3元分割によって補完されたQTBT実装などの2レベルまたはマルチレベルツリーの設計は、複雑さの低減によって主に動機付けられ得る。理論的には、ツリーをたどる複雑さはTDであり、ここで、Tは分割タイプの数を表し、Dはツリーの深さである。深さ(D)を低減しながら複数のタイプ(T)を使用することによりトレードオフを行うことができる。
【0106】
いくつかの実装形態では、CBがさらに分割され得る。例えば、CBは、コーディングおよびデコーディングプロセス中のイントラフレーム予測またはインターフレーム予測を目的として、複数の予測ブロック(PB)にさらに分割され得る。言い換えると、CBは異なるサブパーティションにさらに分割されてもよく、そこで個々の予測決定/構成が行われ得る。並行して、CBは、ビデオデータの変換または逆変換が行われるレベルを記述する目的で、複数の変換ブロック(TB)にさらに分割され得る。CBのPBおよびTBへの分割方式は、同じである場合もそうでない場合もある。例えば、各分割方式は、例えば、ビデオデータの様々な特性に基づいて独自の手順を使用して行われ得る。PBおよびTBの分割方式は、いくつかの例示的実装形態では独立していてもよい。PBおよびTBの分割方式および境界は、いくつかの他の例示的実装形態では相関していてもよい。いくつかの実装形態では、例えば、TBは、PB分割後に分割されてもよく、特に、各PBは、コーディングブロックの分割の後に続いて決定された後、次いで1つまたは複数のTBにさらに分割されてもよい。例えば、いくつかの実装形態では、PBは、1つ、2つ、4つ、または他の数のTBに分割され得る。
【0107】
いくつかの実装形態では、ベースブロックをコーディングブロックに分割し、さらに予測ブロックおよび/または変換ブロックに分割するために、ルマチャネルおよびクロマチャネルは異なって処理され得る。例えば、いくつかの実装形態では、ルマチャネルに対してはコーディングブロックの予測ブロックおよび/または変換ブロックへの分割が許容され得るが、(1つまたは複数の)クロマチャネルに対してはコーディングブロックの予測ブロックおよび/または変換ブロックへのそのような分割が許容されない場合がある。そのような実装形態では、よって、ルマブロックの変換および/または予測は、コーディングブロックレベルでのみ行われ得る。別の例では、ルマチャネルおよび(1つまたは複数の)クロマチャネルの最小変換ブロックサイズが異なっていてもよく、例えば、ルマチャネルのコーディングブロックは、クロマチャネルよりも小さい変換ブロックおよび/または予測ブロックに分割されることが許容され得る。さらに別の例では、コーディングブロックの変換ブロックおよび/または予測ブロックへの分割の最大深さがルマチャネルとクロマチャネルとの間で異なっていてもよく、例えば、ルマチャネルのコーディングブロックは、(1つまたは複数の)クロマチャネルよりも深い変換ブロックおよび/または予測ブロックに分割されることが許容され得る。具体例として、ルマコーディングブロックは、最大2レベルだけ下がる再帰分割によって表すことができる複数のサイズの変換ブロックに分割されてもよく、正方形、2:1/1:2、4:1/1:4などの変換ブロック形状、および4×4から64×64の変換ブロックサイズが許容され得る。しかしながら、クロマブロックについては、ルマブロックに指定された可能な最大の変換ブロックのみが許容され得る。
【0108】
コーディングブロックをPBに分割するためのいくつかの例示的実装形態では、PB分割の深さ、形状、および/または他の特性は、PBがイントラコーディングされるかそれともインターコーディングされるかに依存し得る。
【0109】
コーディングブロック(または予測ブロック)の変換ブロックへの分割は、4分木分割および所定のパターン分割を含むがこれらに限定されない様々な例示的な方式で、再帰的または非再帰的に、コーディングブロックまたは予測ブロックの境界の変換ブロックをさらに考慮して実施され得る。一般に、結果として得られる変換ブロックは、異なる分割レベルにあってもよく、同じサイズでない場合もあり、形状が正方形でなくてもよい(例えば、それらのブロックは、いくつかの許容されるサイズおよびアスペクト比を有する長方形とすることができる)。さらなる例は、
図15、
図16および
図17に関連して以下でさらに詳細に説明される。
【0110】
しかしながら、いくつかの他の実装形態では、上記の分割方式のいずれかを介して取得されたCBは、予測および/または変換のための基本または最小のコーディングブロックとして使用され得る。言い換えれば、インター予測/イントラ予測を行うために、および/または変換のために、さらなる分割は行われない。例えば、上記のQTBT方式から得られたCBは、予測を行う単位としてそのまま使用されてもよい。具体的には、そのようなQTBT構造は、複数のパーティションタイプの概念を排除し、すなわち、CU、PUおよびTUの分離を排除し、上述したようにCU/CBパーティション形状のより高い柔軟性をサポートする。そのようなQTBTブロック構造では、CU/CBは正方形または長方形のいずれかの形状にすることができる。そのようなQTBTのリーフノードは、さらなる分割なしに予測および変換処理のための単位として使用される。これは、CU、PU、およびTUがそのようなQTBTコーディングブロック構造で同じブロックサイズを持っていることを意味する。
【0111】
上記の様々なCB分割方式、ならびにPBおよび/またはTBへのCBのさらなる分割(PB/TB分割なしを含む)は、任意の方法で組み合わされ得る。以下の特定の実装形態は、非限定的な例として提供される。
【0112】
コーディングブロックおよび変換ブロックの分割の具体的な例示的実装形態が以下で説明される。そのような例示的実施態様では、再帰的4分木分割、または上記の所定の分割パターン(
図9および
図10のものなど)を使用して、ベースブロックがコーディングブロックに分割され得る。各レベルで、特定のパーティションのさらなる4分木分割を続行すべきかどうかが、ローカルビデオデータ特性によって決定され得る。結果として得られるCBは、様々なサイズの様々な4分木分割レベルにあり得る。ピクチャエリアをインターピクチャ(時間的)予測を使用してコーディングするか、それともイントラピクチャ(空間的)予測を使用してコーディングするかの判断は、CBレベル(または、3色チャネルの場合にはCUレベル)で行われ得る。各CBは、所定のPB分割タイプに従って、1つ、2つ、4つ、または他の数のPBにさらに分割され得る。1つのPB内で、同じ予測プロセスが適用されてもよく、関連情報はPBベースでデコーダに送られ得る。PB分割タイプに基づく予測プロセスを適用することによって残差ブロックを取得した後、CBは、CBのコーディングツリーと同様の他の4分木構造に従ってTBに分割され得る。この特定の実装形態では、CBまたはTBは、正方形状に限定されなくてもよい。さらにこの特定の例では、PBは、インター予測では正方形または長方形の形状であってもよく、イントラ予測では正方形のみであってもよい。コーディングブロックは、例えば4つの正方形形状のTBに分割され得る。各TBは、(4分木分割を使用して)再帰的に、残差4分木(RQT)と呼ばれるよりも小さいTBにさらに分割され得る。
【0113】
ベースブロックをCB、PB、および/またはTBに分割するための他の例示的実装形態が以下でさらに説明される。例えば、
図9または
図10に示されるような複数のパーティションユニットタイプ使用するのではなく、2元および3元分割のセグメント化構造(例えば、上記のようなQTBTまたは3元分割を伴うQTBT)を使用するネストされたマルチタイプツリーを有する4分木が使用されてもよい。CB、PB、およびTBの分離(すなわち、CBのPBおよび/またはTBへの分割、ならびにPBのTBへの分割)は、CBがさらなる分割を必要とし得る、最大変換長には大きすぎるサイズを有するCBに必要な場合を除いて、断念されてもよい。この例示的な分割方式は、予測と変換の両方をさらなる分割なしにCBレベルで行うことができるように、CB分割形状のより高い柔軟性をサポートするように設計され得る。このようなコーディングツリー構造では、CBは正方形または長方形のどちらかの形状を有し得る。具体的には、コーディングツリーブロック(CTB)が、まず4分木構造によって分割され得る。次いで、4分木のリーフノードは、ネスとされたマルチタイプツリー構造によってさらに分割され得る。2元または3元分割を使用するネストされたマルチタイプツリー構造の例が
図11に示される。具体的には、
図11の例示的なマルチタイプツリー構造は、垂直2元分割(SPLIT_BT_VER)(1102)、水平2元分割(SPLIT_BT_HOR)(1104)、垂直3元分割(SPLIT_TT_VER)(1106)、および水平3元分割(SPLIT_TT_HOR)(1108)の4つの分割タイプを含む。CBはその場合、マルチタイプツリーのリーフに対応する。この例示的実装形態では、CBが最大変換長に対して大きすぎない限り、このセグメント化は、さらなる分割なしで予測と変換両方の処理に使用される。これは、ほとんどの場合、CB、PB、およびTBが、ネストされたマルチタイプツリーコーディングブロック構造を有する4分木において同じブロックサイズを有することを意味する。例外が発生するのは、サポートされる最大変換長がCBの色成分の幅または高さよりも小さい場合である。いくつかの実装形態では、2元分割または3元分割に加えて、
図11のネストされたパターンは、4分木分割をさらに含むことができる。
【0114】
1つのベースブロックに対するブロックパーティション(4分木、2元、および3元分割オプションを含む)のネストされたマルチタイプツリーコーディングブロック構造を有する4分木の一具体例が
図12に示される。より詳細には、
図12は、ベースブロック1200が4つの正方形パーティション1202、1204、1206、および1208に4分木分割されることを示している。分割のために
図11のマルチタイプツリー構造および4分木をさらに使用する決定は、4分木分割されたパーティションの各々について行われる。
図12の例では、パーティション1204はこれ以上分割されない。パーティション1202およびパーティション1208は、他の4分木分割を各々採用する。パーティション1202の場合、第2レベルの4分木分割された左上、右上、左下、および右下パーティションは、4分木、
図11の水平2元分割1104、非分割、および
図11の水平3元分割1108の第3レベル分割をそれぞれ採用する。パーティション1208は他の4分木分割を採用し、第2レベルの4分木分割された左上、右上、左下、および右下パーティションは、
図11の垂直3元分割1106、非分割、非分割、および
図11の水平2元分割1104の第3レベルの分割をそれぞれ採用する。1208の第3レベルの左上パーティションのサブパーティションのうちの2つは、それぞれ
図11の水平2元分割1104および水平3元分割1108に従ってさらに分割される。パーティション1206は、
図11の垂直2元分割1102に続く第2レベル分割パターンを採用して、
図11の水平3元分割1108および垂直2元分割1102に従って第3レベルでさらに分割される2つのパーティションになる。第4レベルの分割が、
図11の水平2元分割1104に従ってそれらのうちの1つにさらに適用される。
【0115】
上記の具体例では、最大ルマ変換サイズは64×64であってもよく、サポートされる最大クロマ変換サイズは、ルマとは異なる、例えば32×32とすることもできる。
図12の上記の例示的なCBは一般に、より小さいPBおよび/またはTBにさらに分割されないが、ルマコーディングブロックまたはクロマコーディングブロックの幅または高さが最大変換幅または高さよりも大きいとき、ルマコーディングブロックまたはクロマコーディングブロックは、その方向における変換サイズ制限を満たすために水平および/または垂直方向に自動的に分割され得る。
【0116】
上記のベースブロックをCBに分割するための具体例では、上記のように、コーディングツリー方式は、ルマとクロマとが別個のブロックツリー構造を有する能力をサポートし得る。例えば、PスライスおよびBスライスの場合、1つのCTU内のルマCTBとクロマCTBは同じコーディングツリー構造を共有し得る。Iスライスの場合、例えば、ルマとクロマとは別個のコーディングブロックツリー構造を有し得る。別個のブロックツリー構造が適用される場合、ルマCTBは1つのコーディングツリー構造によってルマCBに分割されてもよく、クロマCTBは別のコーディングツリー構造によってクロマCBに分割される。これは、Iスライス内のCUはルマ成分のコーディングブロックまたは2つのクロマ成分のコーディングブロックからなることができ、PスライスまたはBスライス内のCUは常に、ビデオがモノクロでない限り3つの色成分すべてのコーディングブロックからなることを意味する。
【0117】
コーディングブロックが複数の変換ブロックにさらに分割される場合、その中の変換ブロックは、様々な順序または走査方式に従ってビットストリーム内で順序付けされ得る。コーディングブロックまたは予測ブロックを変換ブロックに分割するための例示的実装形態、および変換ブロックのコーディング順序が、以下でさらに詳細に説明される。いくつかの例示的実装形態では、上記のように、変換分割は、例えば4×4から64×64までの範囲の変換ブロックサイズを有する、複数の形状、例えば1:1(正方形)、1:2/2:1、および1:4/4:1の変換ブロックをサポートし得る。いくつかの実装形態では、コーディングブロックが64×64以下の場合、変換ブロック分割は、クロマブロックについては、変換ブロックサイズがコーディングブロックサイズと同一であるように、ルマ成分にのみ適用され得る。そうではなく、コーディングブロックの幅または高さが64よりも大きい場合には、ルマコーディングブロックとクロマコーディングブロックの両方が、それぞれ、min(W,64)×min(H,64)およびmin(W,32)×min(H,32)の変換ブロックの倍数に暗黙的に分割され得る。
【0118】
変換ブロック分割のいくつかの例示的実装形態では、イントラコーディングされたブロックとインターコーディングされたブロックの両方について、コーディングブロックが、所定の数のレベル(例えば、2レベル)までの分割深さを有する複数の変換ブロックにさらに分割され得る。変換ブロックの分割深さおよびサイズは、関連し得る。いくつかの例示的実装形態について、現在の深さの変換サイズから次の深さの変換サイズへのマッピングが以下で表1に示される。
【0119】
【0120】
表1の例示的なマッピングに基づいて、1:1正方形ブロックの場合、次のレベルの変換分割は、4つの1:1正方形サブ変換ブロックを作成し得る。変換分割は、例えば、4×4で停止し得る。したがって、4×4の現在の深さの変換サイズは、次の深さの4×4の同じサイズに対応する。表1の例では、1:2/2:1の非正方形ブロックの場合、次のレベルの変換分割は2つの1:1の正方形サブ変換ブロックを作成することができ、1:4/4:1の非正方形ブロックの場合、次のレベルの変換分割は2つの1:2/2:1サブ変換ブロックを作成することができる。
【0121】
いくつかの例示的実装形態では、イントラコーディングされたブロックのルマ成分に対して、変換ブロック分割に関してさらなる制限が適用され得る。例えば、変換分割のレベルごとに、すべてのサブ変換ブロックは、等しいサイズを有するように制限され得る。例えば、32×16のコーディングブロックの場合、レベル1の変換分割は、2つの16×16のサブ変換ブロックを作成し、レベル2の変換分割は、8つの8×8のサブ変換ブロックを作成する。言い換えると、変換ユニットを等しいサイズに保つために、第2レベルの分割がすべての第1レベルのサブブロックに適用されなければならない。表1に従ったイントラコーディングされた正方形ブロックのための変換ブロック分割の一例が、矢印で示されたコーディング順序とともに
図15に示される。具体的には、1502は正方形コーディングブロックを示している。表1による4つの等しいサイズの変換ブロックへの第1レベルの分割が、矢印で示されたコーディング順序とともに1504に示されている。表1によるすべての第1レベルの等しいサイズのブロックの16個の等しいサイズの変換ブロックへの第2レベルの分割が、矢印で示されたコーディング順序とともに1506に示されている。
【0122】
いくつかの例示的実装形態では、インターコーディングされたブロックのルマ成分に対して、イントラコーディングに対する上記の制限が適用されない場合がある。例えば、第1レベルの変換分割の後に、サブ変換ブロックのいずれか1つが、もう1つのレベルでさらに独立して分割され得る。よって、結果として得られる変換ブロックは、同じサイズのものである場合もそうでない場合もある。インターコーディングされたブロックのコーディング順序を有する変換ブロックへの例示的分割が
図16に示される。
図16の例では、インターコーディングされたブロック1602は、表1に従って2つのレベルで変換ブロックに分割される。第1レベルで、インターコーディングされたブロックは、等しいサイズの4つの変換ブロックに分割される。次いで、4つの変換ブロックのうちの(それらのすべてではなく)1つのみが4つのサブ変換ブロックにさらに分割され、1604で示されるように、2つの異なるサイズを有する合計7つの変換ブロックが得られる。これらの7つの変換ブロックの例示的なコーディング順序が、
図16の1604に矢印で示されている。
【0123】
いくつかの例示的実装形態では、(1つまたは複数の)クロマ成分に対して、変換ブロックについての何らかの追加の制限が適用され得る。例えば、(1つまたは複数の)クロマ成分について、変換ブロックサイズは、コーディングブロックサイズと同じ大きさとすることができるが、所定のサイズ、例えば8×8より小さくすることはできない。
【0124】
いくつかの他の例示的実装形態では、幅(W)または高さ(H)が64よりも大きいコーディングブロックについて、ルマコーディングブロックとクロマコーディングブロックの両方が、それぞれ、min(W,64)×min(H,64)およびmin(W,32)×min(H,32)の変換ユニットの倍数に暗黙的に分割され得る。ここで、本開示では、「min(a,b)」は、aとbとの間でより小さい値を返すことができる。
【0125】
図17は、コーディングブロックまたは予測ブロックを変換ブロックに分割するための他の代替的な例示的方式をさらに示す。
図17に示すように、再帰変換分割を使用する代わりに、コーディングブロックの変換タイプに従って所定の分割タイプのセットがコーディングブロックに適用され得る。
図17に示す特定の例では、6つの例示的な分割タイプのうちの1つが、コーディングブロックを様々な数の変換ブロックに分割するために適用され得る。このような変換ブロック分割を生成する方式は、コーディングブロックまたは予測ブロックのいずれに適用されてもよい。
【0126】
より詳細には、
図17の分割方式は、任意の所与の変換タイプ(変換タイプは、例えば、ADSTなどのようなプライマリ変換のタイプを指す)に対して最大6つの例示的なパーティションタイプを提供する。この方式では、すべてのコーディングブロックまたは予測ブロックに、例えばレート歪みコストに基づいて変換タイプが割り当てられ得る。一例では、コーディングブロックまたは予測ブロックに割り当てられる変換パーティションタイプは、コーディングブロックまたは予測ブロックの変換タイプに基づいて決定され得る。
図17に例示される6つの変換パーティションタイプによって示されるように、特定の変換パーティションタイプが、変換ブロックの分割サイズおよびパターンに対応し得る。様々な変換タイプと様々な変換パーティションタイプとの間の対応関係が、事前定義され得る。一例が、レート歪みコストに基づいてコーディングブロックまたは予測ブロックに割り当てられ得る変換パーティションタイプを示す大文字のラベルとともに以下に示される。
【0127】
・PARTITION_NONE:ブロックサイズに等しい変換サイズを割り当てる。
【0128】
・PARTITION_SPLIT:ブロックサイズの1/2の幅およびブロックサイズの1/2の高さの変換サイズを割り当てる。
【0129】
・PARTITION_HORZ:ブロックサイズと同じ幅およびブロックサイズの1/2の高さの変換サイズを割り当てる。
【0130】
・PARTITION_VERT:ブロックサイズの1/2の幅およびブロックサイズと同じ高さの変換サイズを割り当てる。
【0131】
・PARTITION_HORZ4:ブロックサイズと同じ幅およびブロックサイズの1/4の高さの変換サイズを割り当てる。
【0132】
・PARTITION_VERT4:ブロックサイズの1/4の幅およびブロックサイズと同じ高さの変換サイズを割り当てる。
【0133】
上記の例では、
図17に示される変換パーティションタイプはすべて、分割された変換ブロックについての均一な変換サイズを含む。これは限定ではなく単なる例である。いくつかの他の実装形態では、混合変換ブロックサイズが、特定の分割タイプ(またはパターン)における分割された変換ブロックについて使用され得る。
【0134】
上記の分割方式のいずれかから得られたPB(または、予測ブロックにさらに分割されていない場合はPBとも呼ばれるCB)は、イントラ予測またはインター予測のいずれかを介してコーディングのための個々のブロックになり得る。現在のPBのインター予測のために、現在のブロックと予測ブロックとの間の残差が生成され、コーディングされ、コーディングされたビットストリームに含まれ得る。
【0135】
インター予測は、例えば、単一参照モードまたは複合参照モードで実施され得る。いくつかの実装形態では、現在のブロックがインターコーディングされており、スキップされないかどうかを示すために、スキップフラグが最初に現在のブロックのビットストリームに(またはより高いレベルで)含まれ得る。現在のブロックがインターコーディングされている場合、現在のブロックに単一参照モードが使用されているか複合参照モードが使用されているかを示す信号として、他のフラグがビットストリームにさらに含まれ得る。単一参照モードの場合、現在ブロックの予測ブロックを生成するために1つの参照ブロックが使用され得る。複合参照モードの場合、例えば加重平均によって予測ブロックを生成するために、2つ以上の参照ブロックが使用され得る。複合参照モードは、複数参照モード、2参照モード、または多重参照モードと呼ばれる場合がある。1つまたは複数の参照ブロックは、1つまたは複数の参照フレームインデックスを使用し、さらに、1つまたは複数の参照ブロックと、例えば水平および垂直画素内の位置における現在ブロックとの間のシフトを示す1つまたは複数の対応する動きベクトルを使用して識別され得る。例えば、現在のブロックのインター予測ブロックは、単一参照モードの予測ブロックとして参照フレーム内の1つの動きベクトルによって識別される単一参照ブロックから生成され得るが、複合参照モードの場合、予測ブロックは、2つの動きベクトルによって示される2つの参照フレーム内の2つの参照ブロックの加重平均によって生成され得る。動きベクトルは、様々な方法でコーディングされ、ビットストリームに含まれ得る。
【0136】
いくつかの実装形態では、エンコーディングまたはデコーディングシステムは、デコーディングされたピクチャバッファ(DPB)を維持することができる。いくつかの画像/ピクチャは、(デコーディングシステムにおいて)表示されるのを待つDPBにおいて維持されてもよく、DPBにおけるいくつかの画像/ピクチャは、インター予測を可能にするための参照フレームとして使用されてもよい。いくつかの実装形態では、DPB内の参照フレームは、エンコーディングまたはデコーディングされている現在の画像の短期参照または長期参照のいずれかとしてタグ付けされ得る。例えば、短期参照フレームは、現在のフレームまたは現在のフレームに最も近い所定数(例えば、2個)の後続ビデオフレーム内のブロックのインター予測に使用されるフレームをデコーディング順に含むことができる。長期参照フレームは、デコーディングの順序で現在のフレームから所定のフレーム数を超えるフレーム内の画像ブロックを予測するために使用することができるDPB内のフレームを含むことができる。短期および長期参照フレームのためのこのようなタグに関する情報は、参照ピクチャセット(RPS)と称され、エンコーディングされたビットストリームにおける各フレームのヘッダに付加され得る。エンコーディングされたビデオストリーム内の各フレームは、ピクチャ順序カウンタ(POC)によって識別されることができ、これは、絶対的な方式で、または例えばIフレームから始まるピクチャグループに関連して、再生シーケンスに従って番号付けされる。
【0137】
いくつかの例示的実装形態では、インター予測のための短期および長期参照フレームの識別を含む1つまたは複数の参照ピクチャリストが、RPS内の情報に基づいて形成され得る。例えば、単一のピクチャ参照リストは、L0参照(または参照リスト0)として示される単方向インター予測のために形成されてもよく、2つのピクチャ参照リストは、2つの予測方向の各々についてL0(または参照リスト0)およびL1(または参照リスト1)として示される双方向インター予測のために形成されてもよい。L0リストおよびL1リストに含まれる参照フレームは、様々な所定の方法で順序付けられてもよい。L0リストおよびL1リストの長さは、ビデオビットストリームにおいてシグナリングされ得る。単方向インター予測は、複合予測モードでの加重平均による予測ブロックの生成のための複数の参照が予測対象ブロックの同じ側にある場合、単一参照モードまたは複合参照モードのいずれかであり得る。双方向インター予測は、双方向インター予測が少なくとも2つの参照ブロックを含むという点で、複合モードのみであり得る。
【0138】
いくつかの実装形態では、インター予測のためのマージモード(MM)が実装されてもよい。一般に、マージモードの場合、現在のPBの単一参照予測における動きベクトルまたは複合参照予測における動きベクトルの1つまたは複数は、独立して計算およびシグナリングされるのではなく、他の動きベクトルから導出されてもよい。例えば、エンコーディングシステムでは、現在のPBの現在の動きベクトルは、現在の動きベクトルと他の1つまたは複数のすでにエンコーディングされた動きベクトル(参照動きベクトルと呼ばれる)との間の差に帰着され得る。現在の動きベクトルの全体ではなく動きベクトルのそのような差は、エンコーディングされてビットストリームに含まれてもよく、参照動きベクトルにリンクされてもよい。これに対応して、デコーディングシステムにおいて、現在のPBに対応する動きベクトルは、デコーディングされた動きベクトルの差およびそれとリンクされたデコーディングされた参照動きベクトルに基づいて導出され得る。一般的なマージモード(MM)インター予測の具体的な形態として、動きベクトルの差に基づくこのようなインター予測は、動きベクトルの差によるマージモード(MMVD)と呼ばれることがある。したがって、一般的なMMまたは特にMMVDは、異なるPBに関連付けられた動きベクトル間の相関を活用してコーディング効率を改善するために実装され得る。例えば、隣接するPBは、同様の動きベクトルを有し得る。他の例では、動きベクトルは、空間内の同様に位置/配置されたブロックについて時間的に(フレーム間で)相関することができる。
【0139】
いくつかの例示的実装形態では、現在のPBがマージモードにあるかどうかを示すために、エンコーディングプロセス中にMMフラグをビットストリームに含めることができる。追加的または代替的に、現在のPBがMMVDモードにあるかどうかを示すために、エンコーディングプロセス中にMMVDフラグが含まれ、ビットストリームでシグナリングされてもよい。MMおよび/またはMMVDフラグまたはインジケータは、PBレベル、CBレベル、CUレベル、CTBレベル、CTUレベル、スライスレベル、ピクチャレベルなどで提供され得る。特定の例では、現在のCUに対してMMフラグおよびMMVDフラグの両方が含まれることができ、MMVDモードが現在のCUに使用されるかどうかを指定するために、MMVDフラグは、スキップフラグおよびMMフラグの直後にシグナリングされ得る。
【0140】
MMVDのいくつかの例示的実装形態では、予測されるブロックに対して動きベクトル予測のためのマージ候補のリストが形成され得る。マージ候補のリストは、その動きベクトルが現在の動きベクトルを予測するために使用され得る所定数(例えば、2個)のMV予測子候補ブロックを含むことができる。MVD候補ブロックは、同じフレーム内の隣接ブロックおよび/または時間ブロック(例えば、現在のフレームの進行中または後続のフレームにおいて同一に位置するブロック)から選択されたブロックを含むことができる。これらのオプションは、現在のブロックと類似または同一の動きベクトルを有する可能性が高い、現在のブロックに対する空間的または時間的位置にあるブロックを表す。MV予測子候補のリストのサイズは予め決定されてもよい。例えば、リストは2つの候補を含むことができる。マージ候補のリスト上にあるために、候補ブロックは、例えば、現在ブロックと同じ参照フレーム(または複数のフレーム)を有する必要があり、存在しなければならず(例えば、現在のブロックがフレームのエッジの近くにある場合、境界チェックが実行される必要がある)、エンコーディングプロセス中にすでにエンコーディングされなければならず、および/またはデコーディングプロセス中にすでにデコーディングされなければならない。いくつかの実装形態では、マージ候補のリストは、利用可能であり、上記の条件を満たす場合、最初に空間的に隣接するブロック(特定の所定の順序でスキャンされる)で埋められ、次いで、リスト内に空間がまだ利用可能である場合、時間ブロックで埋められてもよい。隣接する候補ブロックは、例えば、現在のブロックの左および上のブロックから選択することができる。マージMV予測子候補のリストは、ビットストリーム内でシグナリングされ得る。
【0141】
いくつかの実装形態では、現在のブロックの動きベクトルを予測するための参照動きベクトルとして使用されている実際のマージ候補がシグナリングされ得る。マージ候補リストに2つの候補が含まれる場合、参照マージ候補の選択を示すために、マージ候補フラグと呼ばれる1ビットのフラグが使用されてもよい。複合モードで予測されている現在のブロックについて、MV予測子を使用して予測された複数の動きベクトルの各々は、マージ候補リストからの参照動きベクトルと関連付けられ得る。
【0142】
MMVDのいくつかの例示的実装形態では、マージ候補が選択され、予測される動きベクトルのベース動きベクトル予測子として使用された後、動きベクトル差(予測されるべき動きベクトルと参照候補動きベクトルとの間の差を表すMVDまたはデルタMV)がエンコーディングシステムで計算され得る。そのようなMVDは、MV差の大きさおよびMV差の方向を表す情報を含むことができ、これはビットストリーム内でシグナリングされ得る。動き差の大きさおよび動き差の方向は、様々な方法でシグナリングされ得る。
【0143】
MMVDのいくつかの例示的実装形態では、距離インデックスを使用して、動きベクトル差の大きさ情報を指定し、開始点(参照動きベクトル)からの所定の動きベクトル差を表す所定のオフセットのセットのうちの1つを示すことができる。次いで、シグナリングされたインデックスに応じたMVオフセットが、開始(参照)動きベクトルの水平成分または垂直成分のいずれかに加えられ得る。参照動きベクトルの水平成分または垂直成分のいずれかがオフセットされるべきであることは、MVDの例示的な方向情報によって決定される。距離インデックスと所定のオフセットとの間の例示的な所定の関係は、表2に指定されている。
【0144】
【0145】
MMVDのいくつかの例示的実装形態では、方向インデックスがさらにシグナリングされ、参照動きベクトルに対するMVDの方向を表すために使用され得る。いくつかの実装形態では、方向は水平方向および垂直方向のいずれか一方に制限されてもよい。例示的な2ビット方向インデックスが表3に示される。表3の例では、MVDの解釈は、開始/参照MVの情報に従って変化し得る。例えば、開始/参照MVが単一予測ブロックに対応するか、または両方の参照フレームリストが現在のピクチャの同じ側を指す双予測ブロックに対応する場合(すなわち、2つの参照ピクチャのPOCは両方とも現在のピクチャのPOCより大きいか、または両方とも現在のピクチャのPOCより小さい)、表3の符号は、開始/参照MVに加えられるMVオフセットの符号(方向)を指定することができる。開始/参照MVが、現在のピクチャの異なる側に2つの参照ピクチャを有する双予測ブロックに対応し(すなわち、一方の参照ピクチャのPOCは現在のピクチャのPOCより大きく、他方の参照ピクチャのPOCは現在のピクチャのPOCより小さい)、ピクチャ参照リスト0内の参照POCと現在のフレームとの差が、ピクチャ参照リスト1内の参照POCと現在のフレームとの差よりも大きいとき、表3の符号は、ピクチャ参照リスト0内の参照ピクチャに対応する参照MVに加えられるMVオフセットの符号を指定することができ、ピクチャ参照リスト1内の参照ピクチャに対応するMVのオフセットの符号は、反対の値(オフセットの反対符号)を有することができる。そうではなく、ピクチャ参照リスト1内の参照POCと現在のフレームとの差がピクチャ参照リスト0内の参照POCと現在のフレームとの差よりも大きい場合、表3の符号は、ピクチャ参照リスト1に関連付けられた参照MVに追加されたMVオフセットの符号と、ピクチャ参照リスト0に関連付けられた参照MVへのオフセットの符号とが反対の値を有することを指定することができる。
【0146】
【0147】
いくつかの例示的実装形態では、MVDは、各方向のPOCの差に従ってスケーリングされてもよい。両方のリストにおけるPOCの差が同じである場合、スケーリングは必要とされない。そうではなく、参照リスト0におけるPOCの差が参照リスト1のものよりも大きい場合、参照リスト1のMVDはスケーリングされる。参照リスト1のPOC差分がリスト0より大きい場合、リスト0のMVDも同様にスケーリングされ得る。開始MVが単一予測される場合、MVDは利用可能または参照MVに加えられる。
【0148】
双方向複合予測のためのMVDコーディングおよびシグナリングのいくつかの例示的実装形態では、2つのMVDを別々にコーディングおよびシグナリングすることに加えて、またはその代わりに、1つのMVDのみがシグナリングを必要とし、他のMVDがシグナリングされたMVDから導出され得るように、対称MVDコーディングが実装され得る。そのような実装形態では、リスト0とリスト1の両方の参照ピクチャインデックスを含む動き情報がシグナリングされる。しかしながら、例えば参照リスト0に関連するMVDのみがシグナリングされ、参照リスト1に関連するMVDはシグナリングされず導出される。具体的には、スライスレベルでは、参照リスト1がビットストリーム内でシグナリングされていないかどうかを示すために、「mvd_l1_0_flag」と呼ばれるフラグがビットストリームに含まれ得る。このフラグが1であり、参照リスト1が0に等しい(したがって、シグナリングされない)ことを示す場合、「BiDirPredFlag」と呼ばれる双方向予測フラグは0に設定されてもよく、これは双方向予測がないことを意味する。そうではなく、mvd_l1_0_flagが0である場合、リスト0内の最も近い参照ピクチャおよびリスト1内の最も近い参照ピクチャが参照ピクチャの順方向および逆方向のペアまたは参照ピクチャの逆方向および順方向のペアを形成する場合、BiDirPredFlagは1に設定されてもよく、リスト0およびリスト1の参照ピクチャは両方とも短期参照ピクチャである。そうでなければ、BiDirPredFlagは0に設定される。1のBiDirPredFlagは、対称モードフラグがビットストリーム内で追加的にシグナリングされることを示す。デコーダは、BiDirPredFlagが1である場合、ビットストリームから対称モードフラグを抽出することができる。対称モードフラグは、例えば、(必要であれば)CUレベルでシグナリングされ、対称MVDコーディングモードが対応するCUのために使用されているか否かを示す。対称モードフラグが1であるとき、それは対称MVDコーディングモードの使用を示し、リスト0およびリスト1の両方の参照ピクチャインデックス(「mvp_l0_flag」および「mvp_l1_flag」と呼ばれる)のみが、リスト0に関連付けられたMVD(「MVD0」と呼ばれる)によってシグナリングされ、他の動きベクトル差「MVD1」がシグナリングされるのではなく導出されるべきであることを示す。例えば、MVD1は、-MVD0として導出され得る。したがって、例示的な対称MVDモードでは、1つのMVDのみがシグナリングされる。MV予測のためのいくつかの他の例示的実装形態では、単一参照モードMV予測と複合参照モードMV予測の両方のために、一般的なマージモードMMVD、およびいくつかの他のタイプのMV予測を実装するために、調和方式が使用されてもよい。現在のブロックのMVが予測される方法をシグナリングするために、様々なシンタックス要素が使用され得る。
【0149】
例えば、単一参照モードの場合、以下のMV予測モードがシグナリングされ得る。
【0150】
NEARMV-MVDなしで直接DRL(動的参照リスト)インデックスによって示されるリスト内の動きベクトル予測子(MVP)のうちの1つを使用する。
【0151】
NEWMV-DRLインデックスによって通知されたリスト内の動きベクトル予測子(MVP)のうちの1つを参照として使用し、MVPにデルタを適用する(例えば、MVDを使用する)。
【0152】
GLOBALMV-フレームレベルのグローバル動きパラメータに基づいて動きベクトルを使用する。
【0153】
同様に、予測対象の2つのMVに対応する2つの参照フレームを使用する複合参照インター予測モードの場合、以下のMV予測モードがシグナリングされ得る。
【0154】
NEAR_NEARMV-予測されるべき2つのMVの各々について、MVDなしのDRLインデックスによってシグナリングされたリスト内の動きベクトル予測子(MVP)のうちの1つを使用する。
【0155】
NEAR_NEWMV-2つの動きベクトルのうちの第1の動きベクトルを予測するために、MVDを用いて参照MVとしてDRLインデックスによって通知されたリスト内の動きベクトル予測子(MVP)のうちの1つを使用し、2つの動きベクトルのうちの第2の動きベクトルを予測するために、DRLインデックスによってシグナリングされたリスト内の動きベクトル予測子(MVP)のうちの1つを、追加的にシグナリングされたデルタMV(MVD)とともに参照MVとして使用する。
【0156】
NEW_NEARMV-2つの動きベクトルのうちの第2の動きベクトルを予測するために、MVDを用いて参照MVとしてDRLインデックスによって通知されたリスト内の動きベクトル予測子(MVP)のうちの1つを使用し、2つの動きベクトルのうちの第1の動きベクトルを予測するために、DRLインデックスによってシグナリングされたリスト内の動きベクトル予測子(MVP)のうちの1つを、追加的にシグナリングされたデルタMV(MVD)とともに参照MVとして使用する。
【0157】
NEW_NEWMV-DRLインデックスによってシグナリングされたリスト内の動きベクトル予測子(MVP)のうちの1つを参照MVとして使用し、それを追加でシグナリングされたデルタMVとともに使用して、2つのMVのそれぞれについて予測する。
【0158】
GLOBAL_GLOBALMV-フレームレベルのグローバル動きパラメータに基づいて、各参照からのMVを使用する。
【0159】
したがって、上記の「NEAR」という用語は、一般的なマージモードとしてMVDなしの参照MVを使用するMV予測を指すのに対して、「NEW」という用語は、参照MVを使用し、MMVDモードのようにシグナリングされたMVDでそれをオフセットすることを含むMV予測を指す。複合インター予測の場合、参照ベース動きベクトルと上記の動きベクトルデルタの両方は、それらが相関され、そのような相関が2つの動きベクトルデルタをシグナリングするために必要な情報量を削減するために利用され得るとしても、2つの参照間で一般に異なるか独立していてもよい。そのような状況では、2つのMVDのジョイントシグナリングが実装され、ビットストリームに示され得る。
【0160】
上記の動的参照リスト(DRL)は、動的に維持され、候補動きベクトル予測子とみなされるインデックス付き動きベクトルのセットを保持するために使用され得る。
【0161】
いくつかの例示的実装形態では、複合予測のためにサブブロックごとに動きベクトル(MV)を改良するために、オプティカルフローベースの手法が使用され得る。特に、オプティカルフロー方程式は、最小二乗問題を定式化するために適用されてもよく、そこから、複合インター予測サンプルの勾配から微細な動きが導出されてもよい。これらの微細な動きにより、サブブロックごとのMVは予測ブロック内で改良されることができ、これはインター予測品質を向上させ得る。いくつかのコーディング特徴は、2つの参照ブロックが現在のブロックまでの任意の時間的距離を有するときにMV改良をサポートするので、双方向オプティカルフロー(BDOF)の概念の拡張であり得る。
【0162】
いくつかの実装形態では、以下に列挙される4つの追加のインター複合モードが追加されてもよい:NEAR_NEARMV_OPTFLOW、NEAR_NEWMV_OPTFLOW、NEW_NEARMV_OPTFLOW、および/またはNEW_NEWMV_OPTFLOW。
【0163】
これらのモードはオプティカルフローモードと呼ぶことができ、参照MVタイプは従来の複合モード(例えば、NEAR_NEWMVと同じ参照MVタイプを有するNEAR_NEWMV_OPTFLOW)と同様に定義され得る。複合予測は、元のMVの代わりにサブブロックごとに改良されたMVに基づいて行われてもよい。
【0164】
本開示に記載された様々な実施形態および/または実装形態は、別々に使用されてもよく、任意の順序で組み合わされてもよい。さらに、これらの実施形態および/または実装形態の一部、全部、または任意の部分的または全体的な組合せは、エンコーダおよび/またはデコーダの一部として具現化されてもよく、ハードウェアおよび/またはソフトウェアで実装されてもよい。例えば、それらは専用処理回路(例えば、1つまたは複数の集積回路)でハードコーディングされてもよい。他の一例では、それらは、非一時的コンピュータ可読媒体に記憶されたプログラムを実行する1つまたは複数のプロセッサによって実装されてもよい。
【0165】
例えば、デルタMVがNEW_NEARMVモード、NEAR_NEWMVモード、またはNEW_NEWMVモードでどのようにシグナリングされるかなど、動きベクトル差のためのシグナリング方法のいくつかの実装に関連するいくつかの問題/課題があり得る。問題/課題のうちの1つは、2つの参照リストにおける動きベクトルの差の相関が利用されず、したがってコーディング/デコーディングの効率および性能が低下することであり得る。
【0166】
本開示は、インター予測モードコーディングおよび/またはデコーディングのための動きベクトル差(MVDまたはデルタMV)をシグナリングし、上述の問題/課題のうちの少なくとも1つに対処し、改善されたインター予測モードコーディング/デコーディングのための効率的なソフトウェア/ハードウェア実装を達成するための様々な実施形態を記載する。
【0167】
様々な実施形態において、
図18を参照すると、方法1800は、インター予測されたビデオブロックをデコーディングする。方法1800は、以下のステップの一部または全部を含むことができる:ステップ1810、すなわち、命令を記憶するメモリと、メモリと通信するプロセッサとを備えるデバイスによって、コーディングされたビデオビットストリームを受信するステップ;ステップ1820、すなわち、デバイスによって、コーディングされたビデオビットストリームから、現在のフレーム内の現在のブロックのインター予測モードおよびジョイントデルタ動きベクトル(MV)を抽出するステップ;ステップ1830、すなわち、デバイスによって、コーディングされたビデオビットストリームから、第1の参照フレームについての第1のデルタMVと第2の参照フレームについての第2のデルタMVとが一緒にシグナリングされるかどうかを示すフラグを抽出するステップ;ステップ1840、すなわち、フラグが第1のデルタMVと第2のデルタMVとが一緒にシグナリングされることを示すことに応じて、デバイスによって、ジョイントデルタMVに基づいて第1のデルタMVおよび第2のデルタMVを導出するステップ;および/または、ステップ1850、すなわち、デバイスによって、第1のデルタMVおよび第2のデルタMVに基づいて現在のフレーム内の現在のブロックをデコーディングするステップ。
【0168】
いくつかの実装形態では、ジョイントデルタMVは、ジョイントデルタMVを示す要素であり得るjoint_delta_mvとして表され得る。いくつかの実装形態では、第1の参照フレームについての第1のデルタMVと第2の参照フレームについての第2のデルタMVとが一緒にシグナリングされるかどうかを示すフラグは、joint_mvd_flagと表され得る。いくつかの実装形態では、第1の参照フレームは、参照リスト(参照リスト0)内のフレームであってもよく、および/または第2の参照フレームは、他の参照リスト(参照リスト1)内のフレームであってもよい。
【0169】
いくつかの実装形態では、ステップ1830は、デバイスによって、コーディングされたビデオビットストリームから、参照リスト0内の第1の参照フレームについての第1のデルタMVと参照リスト1内の第2の参照フレームについての第2のデルタMVとが一緒にシグナリングされるかどうかを示すフラグ(joint_mvd_flag)を抽出するステップを含むことができる。
【0170】
本開示の様々な実施形態において、ブロック(例えば、これらに限定されないが、コーディングブロック、予測ブロック、または変換ブロック)のサイズは、ブロックの幅または高さを指し得る。ブロックの幅または高さは、画素単位の整数であり得る。本開示における様々な実施形態において、ブロックのサイズは、ブロックの領域サイズを指すことができる。ブロックの面積サイズは、画素単位でブロックの幅にブロックの高さを乗じて計算された整数であり得る。本開示のいくつかの様々な実施形態において、ブロックのサイズは、ブロックの幅もしくは高さの最大値、ブロックの幅もしくは高さの最小値、またはブロックのアスペクト比を指し得る。ブロックのアスペクト比は、ブロックの幅を高さで割ったものとして計算され得るか、またはブロックの高さを幅で割ったものとして計算され得る。
【0171】
ここで、本開示のいくつかの実施形態では、「第1の」参照フレームは、「1つの」参照フレームを指すだけでなく、複数の参照フレームの中の(例えば、最小のインデックスを有する、またはシーケンス内で最も早く現れる)「第1の」参照フレームを指すことができ、「第2の」参照フレームは、「他の」参照フレームを指すだけでなく、複数の参照フレームの中の(例えば、2番目に小さいインデックスを有するか、またはシーケンス内で2番目に早く現れる)「第2の」参照フレームを指すことができる。
【0172】
ここで、本開示の様々な実施形態において、「XYZがシグナリングされる」とは、エンコーディングプロセス中にXYZがコーディングされたビットストリームにエンコーディングされることを指すことができ、および/または、コーディングされたビットストリームがあるデバイスから別のデバイスへ送信された後、「XYZがシグナリングされる」ことは、XYZがデコーディングプロセス中に、コーディングされたビットストリームからデコーディング/抽出されることを指すことができる。
【0173】
ここで、本開示における様々な実施形態において、参照フレームの方向は、参照フレームが表示順序において現在のフレームの前にあるか、または表示順序において現在のフレームの後にあるかによって決定され得る。複合参照モードのいくつかの実装形態では、1つの動きベクトル対に対する両方の参照フレームのピクチャ順序カウント(POC)が現在のフレームのPOCよりも大きいかまたは小さいとき、2つの参照フレームの方向は同じである。そうではなく、一方の参照フレームのPOCが現在のフレームのPOCよりも大きく、他方の参照フレームのPOCが現在のフレームのPOCよりも小さい場合、2つの参照フレームの方向は異なる。
【0174】
ここで、本開示の様々な実施形態において、「ブロック」は、予測ブロック、コーディングブロック、変換ブロック、またはコーディングユニット(CU)を指すことができる。
【0175】
ステップ1810を参照すると、デバイスは、
図5の電子デバイス(530)または
図8のビデオデコーダ(810)であり得る。いくつかの実装形態では、デバイスは、
図6のエンコーダ(620)内のデコーダ(633)であってもよい。いくつかの実装形態では、デバイスは、
図5の電子デバイス(530)の一部分、
図8のビデオデコーダ(810)の一部分、または
図6のエンコーダ(620)内のデコーダ(633)の一部分であり得る。コーディングされたビデオビットストリームは、
図8のコーディングされたビデオシーケンス、または
図6もしくは
図7の中間のコーディングされたデータであり得る。
【0176】
ステップ1820を参照すると、デバイスは、コーディングされたビデオビットストリームから、現在のフレーム内の現在のブロックのインター予測モードおよびジョイントデルタ動きベクトル(MV)を抽出し得る。現在のブロックは複合参照モードにあってもよい。インター予測モードは、NEAR_NEARモード、NEW_NEARMVモード、NEAR_NEWMVモード、またはNEW_NEWMVモードのうちの1つを含むことができる。ジョイントデルタMVは、MV差(MVD)と呼ばれることがある。
【0177】
ステップ1830を参照すると、デバイスは、コーディングされたビデオビットストリームから、第1の参照フレームについての第1のデルタMVと第2の参照フレームについての第2のデルタMVとが一緒にシグナリングされるかどうかを示すフラグを抽出することができる。
【0178】
いくつかのインター予測モードのいくつかの実装形態では、フラグはコーディングされたビデオビットストリーム内にエンコーディングされ、デバイスはコーディングされたビデオビットストリームからフラグを抽出することができる。
【0179】
特定のインター予測モードのいくつかの実装形態では、フラグはコーディングされたビデオビットストリーム内にエンコーディングされず、デバイスは、デフォルト値に基づいて特定のインター予測モデルに従ってフラグを導出することができる。例えば、現在のブロックのインター予測モードはNEAR_NEARMVであり、ステップ1830は、フラグをデフォルト値として決定することを含むことができる。いくつかの実装形態では、デフォルト値は0であり、第1の参照フレームについての第1のデルタMVと第2の参照フレームについての第2のデルタMVとが一緒にシグナリングされないことを示す。
【0180】
複合参照モードのいくつかの実装形態では、第1の参照リスト(参照リスト0)および第2の参照リスト(参照リスト1)のデルタMVが一緒にシグナリングされるかどうかを示すために、joint_mvd_flagと命名され得るフラグがデバイスに送信され得る。
【0181】
いくつかの他の実装形態では、参照リスト0および参照リスト1のデルタMVが一緒にシグナリングされることを示すフラグ(joint_mvd_flag)の値に応じて、joint_delta_mvと命名され得る1つのジョイントデルタMVのみがシグナリングされてデコーダに送信され、参照リスト0および参照リスト1のデルタMVは、ジョイントデルタMV(joint_delta_mV)から導出され得る。参照リスト0および参照リスト1のデルタMVが一緒にシグナリングされないことを示すフラグ(joint_mvd_flag)の値に応じて、0または1つもしくは2つのデルタMVが、インター予測モードに基づいて参照リスト0および/または参照リスト1に対して別々にシグナリングされ得る。
【0182】
いくつかの実装形態では、フラグの値が0であることは、参照リスト0および参照リスト1のデルタMVが一緒にシグナリングされ、1つのジョイントデルタMVのみがシグナリングされ送信されることを示すことができ、フラグの値が1であることは、参照リスト0および参照リスト1のデルタMVが一緒にシグナリングされず、0(または1つまたは2つ)のジョイントデルタMVがシグナリングされ送信され得ることを示すことができる。逆に、いくつかの他の実装形態では、フラグの値が1であることは、参照リスト0および参照リスト1のデルタMVが一緒にシグナリングされ、1つのジョイントデルタMVのみがシグナリングされ送信されることを示すことができ、フラグの値が0であることは、参照リスト0および参照リスト1のデルタMVが一緒にシグナリングされず、0(または1つまたは2つ)のジョイントデルタMVがシグナリングされ送信され得ることを示すことができる。
【0183】
ステップ1840を参照すると、フラグが第1のデルタMVと第2のデルタMVとが一緒にシグナリングされることを示すことに応じて、デバイスは、ジョイントデルタMVに基づいて第1のデルタMVおよび第2のデルタMVを導出することができる。
【0184】
いくつかの実装形態では、現在のブロックのインター予測モードがNEW_NEWMVであり、フラグ(例えば、joint_mvd_flag)が、参照リスト0および参照リスト1のデルタMVが一緒にシグナリングされることを示す場合、参照リスト0および/または参照リスト1のデルタMVは、現在のフレームに対する第1および第2の参照フレームのPOC距離および2つの参照フレームの方向に基づいてjoint_delta_mvから導出され得る。
【0185】
いくつかの他の実施態様では、現在のブロックのインター予測モードはNEW_NEWMVであり、ステップ1840は、第1のデルタMVをジョイントデルタMVとして決定するステップと、以下のもの、すなわち、第1の参照フレームと現在フレームとの間の第1のピクチャ順序カウント(POC)距離、第2の参照フレームと現在フレームとの間の第2のPOC距離、または現在フレームに対する第1の参照フレームと第2の参照フレームとの方向関係、のうちの少なくとも1つに従ってジョイントデルタMVをスケーリングすることによって第2のデルタMVを決定するステップとを含んでもよい。
【0186】
いくつかの他の実施態様では、現在のブロックのインター予測モードはNEW_NEWMVであり、ステップ1840は、第2のデルタMVをジョイントデルタMVとして決定するステップと、以下のもの、すなわち、第1の参照フレームと現在フレームとの間の第1のピクチャ順序カウント(POC)距離、第2の参照フレームと現在フレームとの間の第2のPOC距離、または現在フレームに対する第1の参照フレームと第2の参照フレームとの方向関係、のうちの少なくとも1つに従ってジョイントデルタMVをスケーリングすることによって第1のデルタMVを決定するステップとを含んでもよい。
【0187】
いくつかの実施形態では、参照リスト0(またはリスト1)内のデルタMVは、常にjoint_delta_mvに等しく設定されてもよく、参照リスト1(またはリスト0)内のデルタMVは、参照フレームの現在のフレームまでのPOC距離および/または2つの参照フレームの方向に従ってjoint_delta_mvからスケーリングされてもよい。
【0188】
いくつかの他の実施態様では、現在のブロックのインター予測モードはNEW_NEWMVであり、ステップ1840は、第1の参照フレームと現在のフレームとの間の第1の絶対POC距離が、第2の参照フレームと現在のフレームとの間の第2の絶対POC距離よりも大きいことに応じて、第1のデルタMVをジョイントデルタMVとして決定するステップと、以下のもの、すなわち、第1の参照フレームと現在のフレームとの間の第1のPOC距離、第2の参照フレームと現在のフレームとの間の第2のPOC距離、または現在のフレームに対する第1の参照フレームと第2の参照フレームの方向関係、のうちの少なくとも1つに従ってジョイントデルタMVをスケーリングすることによって第2のデルタMVを決定するステップとを含むことができる。
【0189】
いくつかの他の実施態様では、現在のブロックのインター予測モードはNEW_NEWMVであり、ステップ1840は、第1の参照フレームと現在のフレームとの間の第1の絶対POC距離が、第2の参照フレームと現在のフレームとの間の第2の絶対POC距離よりも小さいことに応じて、第2のデルタMVをジョイントデルタMVとして決定するステップと、以下のもの、すなわち、第1の参照フレームと現在のフレームとの間の第1のPOC距離、第2の参照フレームと現在のフレームとの間の第2のPOC距離、または現在のフレームに対する第1の参照フレームと第2の参照フレームの方向関係、のうちの少なくとも1つに従ってジョイントデルタMVをスケーリングすることによって第1のデルタMVを決定するステップとを含むことができる。
【0190】
いくつかの実施形態では、参照リスト0(またはリスト1)と現在のフレームとの間の絶対POC距離が、参照リスト1(またはリスト0)と現在のフレームとの間の絶対POC距離よりも大きい場合、より大きい絶対POC距離を有する参照リスト0(またはリスト1)内のデルタMVは、joint_delta_mvに等しく設定され得る。より小さい絶対POC距離を有する他のものである参照リスト1(またはリスト0)内のデルタMVは、参照フレームの現在のフレームまでのPOC距離および/または2つの参照フレームの方向に従ってjoint_delta_mvからスケーリングされ得る。
【0191】
いくつかの他の実施態様では、現在のブロックのインター予測モードはNEW_NEWMVであり、ステップ1840は、第1の参照フレームと現在のフレームとの間の第1の絶対POC距離が、第2の参照フレームと現在のフレームとの間の第2の絶対POC距離に等しいことに応じて、第1のデルタMVをジョイントデルタMVとして決定するステップと、現在のフレームに対する第1の参照フレームおよび第2の参照フレームの方向関係が同じであることに応じて、第2のデルタMVをジョイントデルタMVとして決定するステップと、現在のフレームに対する第1の参照フレームおよび第2の参照フレームの方向関係が反対であることに応じて、第2のデルタMVをジョイントデルタMVに-1を乗じたものとして決定するステップとを含むことができる。
【0192】
いくつかの実施形態では、参照リスト1と現在のフレームとの間の絶対POC距離が、参照リスト0と現在のフレームとの間の絶対POC距離と同じである場合、参照リスト0内のデルタMVは、joint_delta_mvに等しく設定され得る。2つの参照フレームの方向が同じである場合、参照リスト1内のデルタMVは、joint_delta_mvに等しく設定されてもよい。一方、2つの参照フレームの方向が異なる場合、参照リスト1のデルタMVは、joint_delta_mvに-1を乗じたものに設定される。
【0193】
本開示の様々な実施形態/実装形態では、第1の参照フレームと現在のフレームとの間の第1のPOC距離、第2の参照フレームと現在のフレームとの間の第2のPOC距離、または現在のフレームに対する第1の参照フレームと第2の参照フレームの方向関係のうちの少なくとも1つに従って、第2のデルタMVを取得するためにジョイントデルタMVをスケーリングすることは、線形スケーリング方法を含むことができ、すなわち、スケーリングされたデルタMVの絶対値は、第1のPOC距離で除算された第2のPOC距離の比に比例することができ、スケーリングされたデルタMVの符号は、方向関係に従って決定され得る。例えば、第1のPOC距離が4であり、第2のPOC距離が8であり、方向関係が現在のフレームに対して第1の参照フレームと第2の参照フレームとで同じ方向である場合、第2のデルタMVは、ジョイントデルタMVを2(=8/4)倍にスケーリング/乗算することによって得られ、第2のデルタMVは、方向関係が同じ方向であるため、ジョイントデルタMVと同じ符号を有する。他の例では、第1のPOC距離が3であり、第2のPOC距離が-9であり、方向関係が現在のフレームに対して第1および第2の参照フレームに対して反対方向である場合、第2のデルタMVは、ジョイントデルタMVを-3倍(=-9/3)にスケーリング/乗算することによって得られ、第2のデルタMVは、方向関係が反対方向であるため、ジョイントデルタMVと反対の符号を有する。
【0194】
いくつかの他の実装形態では、現在のブロックのインター予測モードはNEW_NEARMVであり、第2のデルタMVは、所定の重みによってわずかに調整されてもよい。ステップ1840は、第1のデルタMVをジョイントデルタMVとして決定するステップと、以下のもの、すなわち、第1の参照フレームと現在のフレームとの間の第1のPOC距離、第2の参照フレームと現在のフレームとの間の第2のPOC距離、現在のフレームに対する第1の参照フレームおよび第2の参照フレームの方向関係、または所定の重み付け係数、のうちの少なくとも1つに従ってジョイントデルタMVをスケーリングすることによって第2のデルタMVを決定するステップとを含むことができる。
【0195】
いくつかの他の実装形態では、現在のブロックのインター予測モードはNEAR_NEWMVであり、第1のデルタMVは、所定の重みによってわずかに調整されてもよい。ステップ1840は、第2のデルタMVをジョイントデルタMVとして決定するステップと、以下のもの、すなわち、第1の参照フレームと現在のフレームとの間の第1のPOC距離、第2の参照フレームと現在のフレームとの間の第2のPOC距離、現在のフレームに対する第1の参照フレームおよび第2の参照フレームの方向関係、または所定の重み付け係数、のうちの少なくとも1つに従ってジョイントデルタMVをスケーリングすることによって第1のデルタMVを決定するステップとを含むことができる。
【0196】
いくつかの他の実施態様では、所定の重み付け係数は、-1と1との間の分数である。
【0197】
いくつかの他の実装形態では、所定の重み付け係数は、シーケンスパラメータセット(SPS)、ビデオパラメータセット(VPS)、ピクチャパラメータセット(PPS)、ピクチャヘッダ、タイルヘッダ、スライスヘッダ、フレームヘッダ、コーディングツリーユニット(CTU)ヘッダ、またはスーパーブロックヘッダのうちの少なくとも1つを含む高水準シンタックスでシグナリングされる。
【0198】
いくつかの実施形態では、現在のブロックがNEW_NEARモード(またはNEAR_NEWモード)であり、joint_mvd_flagが、参照リスト0および参照リスト1のデルタMVが一緒にシグナリングされることを示す場合、参照リスト0(またはリスト1)のデルタMVは、joint_delta_mvに等しく設定されてもよく、リスト1(またはリスト0)のデルタMVは、参照フレームの現在のフレームまでのPOC距離、2つの参照フレームの方向、2つのMVのMV予測子間の差、および/または所定の重み付け係数wを含むがこれらに限定されない1つまたは複数のコーディングされた情報に基づいて、joint_delta_mvからスケーリングされる。いくつかの実装形態では、この所定の重み付け係数は、-1と1との間の1つの数、例えば1/2であってもよい。いくつかの他の実装形態では、この所定の重み付け係数は、SPS、VPS、PPS、ピクチャヘッダ、タイルヘッダ、スライスヘッダ、フレームヘッダ、CTU(またはスーパーブロック)ヘッダを含むがこれらに限定されない高水準シンタックスでシグナリングされてもよい。
【0199】
本開示の様々な実施形態/実施態様では、以下のもの、すなわち、第1の参照フレームと現在のフレームとの間の第1のPOC距離、第2の参照フレームと現在のフレームとの間の第2のPOC距離、現在のフレームに対する第1の参照フレームおよび第2の参照フレームの方向関係、または所定の重み付け係数、のうちの少なくとも1つに従って重み調整されたデルタMVを取得するためにジョイントデルタMVをスケーリングするステップは、線形スケーリング方法を含むことができ、すなわち、スケーリングされたデルタMVの絶対値は、第2のPOC距離を第1のPOC距離で割った比に比例し、次いで所定の重み付け係数を乗じることができる。スケーリングされたデルタMVの符号は、方向関係に従って決定され得る。例えば、第1のPOC距離が4であり、第2のPOC距離が8であり、方向関係が現在のフレームに対して第1および第2の参照フレームについて同じ方向であり、所定の重み付け係数が1/2である場合、重み調整されたデルタMVは、ジョイントデルタMVを全係数1でスケーリング/乗算することによって得られ、これは、係数2(=8/4)に重み係数1/2を乗算することによって計算され、方向関係が同じ方向であるため、重み調整デルタMVはジョイントデルタMVと同じ符号を有する。他の例では、第1のPOC距離が3であり、第2のPOC距離が-9であり、方向関係が現在のフレームに対して第1および第2の参照フレームに対して反対方向であり、所定の重み付け係数が1/2である場合、重み調整されたデルタMVは、ジョイントデルタMVを全係数-3/2でスケーリング/乗算することによって得られ、全係数は、係数-3(=-9/3)に重み係数1/2を乗算することによって計算される。重み調整後のデルタMVは、方向関係が逆方向であるため、ジョイントデルタMVと符号が反対である。
【0200】
本開示の実施形態は、別々に使用されてもよく、任意の順序で組み合わされてもよい。本開示の任意の実施形態における任意のステップおよび/または動作は、必要に応じて、任意の量または順序で組み合わされ、または配置され得る。本開示の任意の実施形態におけるステップおよび/または動作のうちの2つ以上は、並行して行われてもよい。さらに、方法(または実施形態)の各々、エンコーダ、およびデコーダは、処理回路(例えば、1つもしくは複数のプロセッサまたは1つもしくは複数の集積回路)によって実装されてもよい。一例では、1つまたは複数のプロセッサは、非一時的コンピュータ可読媒体に記憶されたプログラムを実行する。本開示の実施形態は、ルマブロックまたはクロマブロックに適用されてもよい。
【0201】
上記で説明した技術は、コンピュータ可読命令を使用するコンピュータソフトウェアとして実装され、1つまたは複数のコンピュータ可読媒体に物理的に記憶され得る。例えば、
図19は、開示された主題の特定の実施形態を実施するために適したコンピュータシステム(2000)を示している。
【0202】
コンピュータソフトウェアは、アセンブリ、コンパイル、リンクなどの機構を受けることができる任意の適切な機械コードまたはコンピュータ言語を使用してコーディングされ、1つまたは複数のコンピュータ中央処理装置(CPU)、グラフィックス処理装置(GPU)などによって直接、または解釈、マイクロコード実行などを介して、実行され得る命令を含むコードを作成することができる。
【0203】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、モノのインターネットデバイスなどを含む様々な種類のコンピュータまたはその構成要素上で実行され得る。
【0204】
コンピュータシステム(2000)に関して
図19に示される構成要素は、本質的に例示であり、本開示の実施形態を実施するコンピュータソフトウェアの使用または機能の範囲に関する限定を示唆することは意図されていない。構成要素の構成は、コンピュータシステム(2000)の例示的な実施形態に示されている構成要素のいずれか1つまたは組合せに関する依存関係または要件を有すると解釈されるべきではない。
【0205】
コンピュータシステム(2000)は、特定のヒューマンインターフェース入力装置を含み得る。そのようなヒューマンインターフェース入力装置は、例えば、触覚入力(例えば、キーストローク、スワイプ、データグローブの動き)、オーディオ入力(例えば、声、拍手)、視覚入力(例えば、ジェスチャ)、嗅覚入力(図示せず)を介した、1人または複数の人間のユーザによる入力に反応し得る。ヒューマンインターフェースデバイスはまた、音声(発話、音楽、周囲音など)、画像(走査画像、静止画像カメラで取得される写真画像など)、ビデオ(2次元ビデオ、立体ビデオを含む3次元ビデオなど)などの人による意識的な入力に必ずしも直接関与しない、特定の媒体をキャプチャするために使用され得る。
【0206】
入力ヒューマンインターフェース装置は、キーボード(2001)、マウス(2002)、トラックパッド(2003)、タッチスクリーン(2010)、データグローブ(図示せず)、ジョイスティック(2005)、マイクロフォン(2006)、スキャナ(2007)、カメラ(2008)のうちの1つまたは複数(図示された各々のうちの1つのみ)を含み得る。
【0207】
コンピュータシステム(2000)はまた、特定のヒューマンインターフェース出力装置も含み得る。そのようなヒューマンインターフェース出力装置は、例えば、触覚出力、音、光、および匂い/味によって1人または複数の人間ユーザの感覚を刺激し得る。そのようなヒューマンインターフェース出力装置は、触覚出力装置(例えば、タッチスクリーン(2010)、データグローブ(図示せず)、またはジョイスティック(2005)による触覚フィードバック、ただし、入力装置として機能しない触覚フィードバック装置もあり得る)、オーディオ出力装置(例えば、スピーカ(2009)、ヘッドホン(図示せず))、視覚出力装置(例えば、各々タッチスクリーン入力機能ありまたはなしの、各々触覚フィードバック機能ありまたはなしの、CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含むスクリーン(2010)など、それらの一部は、2次元視覚出力、または立体画像出力、仮想現実眼鏡(図示せず)、ホログラフィックディスプレイおよびスモークタンク(図示せず)などの手段による4次元以上の出力が可能であり得る)、ならびにプリンタ(図示せず)を含み得る。
【0208】
コンピュータシステム(2000)はまた、人間がアクセス可能な記憶装置およびそれらの関連媒体、例えば、CD/DVDなどの媒体(2021)を有するCD/DVD ROM/RW(2020)を含む光学媒体、サムドライブ(2022)、リムーバブルハードドライブまたはソリッドステートドライブ(2023)、テープやフロッピーディスクなどのレガシー磁気媒体(図示せず)、セキュリティドングルなどの専用ROM/ASIC/PLDベースのデバイス(図示せず)なども含むことができる。
【0209】
当業者はまた、本開示内容に関連して使用される「コンピュータ可読媒体」という用語が、伝送媒体、搬送波、または他の一時的信号を包含しないことを理解すべきである。
【0210】
コンピュータシステム(2000)はまた、1つまたは複数の通信ネットワーク(2055)へのインターフェース(2054)も含むことができる。ネットワークは、例えば、無線、有線、光とすることができる。ネットワークはさらに、ローカル、広域、メトロポリタン、車両および産業、リアルタイム、遅延耐性などとすることができる。ネットワークの例は、Ethernetなどのローカルエリアネットワーク、無線LAN、GSM、3G、4G、5G、LTEなどを含むセルラネットワーク、ケーブルテレビ、衛星テレビおよび地上波テレビを含むテレビの有線または無線広域デジタルネットワーク、CAN busを含む車両用および産業用などを含む。特定のネットワークは通常、特定の汎用データポートまたは周辺バス(2049)(例えば、コンピュータシステム(2000)のUSBポート)に接続された外部ネットワークインターフェースアダプタを必要とし、他のものは一般に、以下に説明するように、システムバスに接続することによってコンピュータシステム(2000)のコアに統合される(例えば、PCコンピュータシステムに対するイーサネットインターフェース、またはスマートフォンコンピュータシステムに対するセルラネットワークインターフェース)。これらのネットワークのいずれかを使用して、コンピュータシステム(2000)は他のエンティティと通信することができる。そのような通信は、例えば、ローカルまたはワイドエリアデジタルネットワークを使用する他のコンピュータシステムに対して、一方向の受信のみ(例えば、テレビ放送)、一方向の送信のみ(例えば、特定のCANbusデバイスへのCANbus)、または双方向とすることができる。特定のプロトコルおよびプロトコルスタックは、上述したように、それらのネットワークおよびネットワークインターフェースのそれぞれで使用され得る。
【0211】
前述のヒューマンインターフェース装置、人間がアクセス可能な記憶装置、およびネットワークインターフェースは、コンピュータシステム(2000)のコア(2040)に取り付けることができる。
【0212】
コア(2040)は、1つまたは複数の中央処理装置(CPU)(2041)、グラフィックス処理装置(GPU)(2042)、フィールドプログラマブルゲートエリア(FPGA)(2043)の形の専用プログラマブル処理装置、特定のタスク用のハードウェアアクセラレータ(2044)、グラフィックスアダプタ(2050)などを含むことができる。これらのデバイスは、読み出し専用メモリ(ROM)(2045)、ランダムアクセスメモリ(2046)、内部非ユーザアクセス可能ハードドライブ、SSDなどの内部大容量ストレージ(2047)とともに、システムバス(2048)を介して接続され得る。一部のコンピュータシステムでは、システムバス(2048)を、追加のCPU、GPUなどによる拡張を可能にするために、1つまたは複数の物理プラグの形でアクセス可能とすることができる。周辺装置は、コアのシステムバス(2048)に直接、または周辺バス(2049)を介して取り付けられ得る。一例では、スクリーン(2010)は、グラフィックスアダプタ(2050)に接続され得る。周辺バスのアーキテクチャは、PCI、USBなどを含む。
【0213】
CPU(2041)、GPU(2042)、FPGA(2043)、およびアクセラレータ(2044)は、組み合わされて前述のコンピュータコードを構成することができる特定の命令を実行することができる。そのコンピュータコードは、ROM(2045)またはRAM(2046)に記憶され得る。また、一時データはRAM(2046)に記憶されることもでき、永続データは、例えば内部大容量ストレージ(2047)に記憶されることができる。メモリデバイスのいずれかへの高速記憶および検索は、1つまたは複数のCPU(2041)、GPU(2042)、大容量ストレージ(2047)、ROM(2045)、RAM(2046)などと密接に関連付けることができるキャッシュメモリの使用によって可能にされ得る。
【0214】
コンピュータ可読媒体は、様々なコンピュータ実装動作を行うためのコンピュータコードを有することができる。媒体およびコンピュータコードは、本開示の目的のために特別に設計および構成されたものであってもよく、またはコンピュータソフトウェア技術の当業者に、良く知られた利用可能な種類のものであってもよい。
【0215】
非限定的な例として、アーキテクチャを有するコンピュータシステム(2000)、特にコア(2040)は、(CPU、GPU、FPGA、アクセラレータなどを含む)(1つまたは複数の)プロセッサが、1つまたは複数の有形のコンピュータ可読媒体において具体化されたソフトウェアを実行した結果として機能を提供することができる。そのようなコンピュータ可読媒体は、上述のようなユーザアクセス可能な大容量ストレージ、ならびにコア内部大容量ストレージ(2047)やROM(2045)などの非一時的な性質のものであるコア(2040)の特定のストレージと関連付けられた媒体とすることができる。本開示の様々な実施形態を実装するソフトウェアは、そのようなデバイスに記憶され、コア(2040)によって実行され得る。コンピュータ可読媒体は、特定の必要性に応じて、1つまたは複数のメモリデバイスまたはチップを含むことができる。ソフトウェアは、コア(2040)、具体的にはその中の(CPU、GPU、FPGAなどを含む)プロセッサに、RAM(2046)に記憶されたデータ構造を定義すること、およびソフトウェアによって定義されたプロセスに従ってそのようなデータ構造を変更することを含む、本明細書に記載される特定のプロセスまたは特定のプロセスの特定の部分を実行させることができる。加えて、または代替として、コンピュータシステムは、回路(例えば、アクセラレータ(2044))にハードワイヤードまたはその他の方法で具現化されたロジックの結果として機能性を提供することができ、それは、本明細書に記載した特定のプロセスまたは特定のプロセスの特定の部分を実行するために、ソフトウェアの代わりに、またはソフトウェアとともに動作し得る。必要に応じて、ソフトウェアへの言及はロジックを包含することができ、その逆も同様である。必要に応じて、コンピュータ可読媒体への言及は、実行のためのソフトウェアを記憶する回路(集積回路(IC)など)、実行のためのロジックを具体化する回路、またはこれらの両方を包含し得る。本開示は、ハードウェアとソフトウェアの任意の適切な組合せを包含する。
【0216】
例示的な実施形態を参照して特定の発明を説明したが、この説明は限定を意図したものではない。この説明を読めば当業者には本発明の例示的な実施形態および追加の実施形態の様々な改変形態が明らかになるであろう。本発明の趣旨および範囲から逸脱することなく、本明細書において図示および説明された例示的実施形態に対して上記その他の様々な改変を行うことができることを、当業者は容易に理解するであろう。したがって、添付の特許請求の範囲は、任意のそのような改変形態および代替の実施形態を包含することが企図されている。図内の特定の部分が誇張されている場合もあり、他の部分が最小化されている場合もある。したがって、本開示および図面は、限定的ではなく例示的であるとみなされるべきである。
【0217】
以下は頭字語のリストであり、そのいくつかが本開示に現れる場合がある。
JEM:共同探索モデル
VVC:多用途ビデオコーディング
BMS:ベンチマークセット
MV:動きベクトル
HEVC:高効率ビデオコーディング
SEI:補足拡張情報
VUI:ビデオユーザビリティ情報
GOP:Group of Pictures
TU:変換ユニット
PU:予測ユニット
CTU:コーディングツリーユニット
CTB:コーディングツリーブロック
PB:予測ブロック
HRD:仮想参照デコーダ
SNR:信号雑音比
CPU:中央処理装置
GPU:グラフィックス処理装置
CRT:陰極線管
LCD:液晶ディスプレイ
OLED:有機発光ダイオード
CD:コンパクトディスク
DVD:デジタルビデオディスク
ROM:読み出し専用メモリ
RAM:ランダムアクセスメモリ
ASIC:特定用途向け集積回路
PLD:プログラマブルロジックデバイス
LAN:ローカルエリアネットワーク
GSM:モバイル通信用グローバルシステム
LTE:ロングタームエボリューション
CANBus:コントローラエリアネットワークバス
USB:ユニバーサルシリアルバス
PCI:周辺構成要素相互接続
FPGA:フィールドプログラマブルゲートエリア
SSD:ソリッドステートドライブ
IC:集積回路
HDR:ハイダイナミックレンジ
SDR:標準ダイナミックレンジ
JVET:共同ビデオ探索チーム
MPM:最確モード
WAIP:広角イントラ予測
CU:コーディングユニット
PU:予測ユニット
TU:変換ユニット
CTU:コーディングツリーユニット
PDPC:位置依存予測組合せ
ISP:イントラサブパーティション
SPS:シーケンスパラメータ設定
PPS:ピクチャパラメータセット
APS:適応パラメータセット
VPS:ビデオパラメータセット
DPS:デコーディングパラメータセット
ALF:適応ループフィルタ
SAO:サンプル適応オフセット
CC-ALF:交差成分適応ループフィルタ
CDEF:制約指向性強調フィルタ
CCSO:交差成分サンプルオフセット
LSO:ローカルサンプルオフセット
LR:ループ復元フィルタ
AV1:AOMediaビデオ1
AV2:AOMediaビデオ2
MVD:動きベクトル差
CfL:ルマからのクロマ
SDT:半分離ツリー
SDP:半分離分割
SST:半分離ツリー
SB:スーパーブロック
IBC(またはIntraBC):イントラブロックコピー
CDF:累積密度関数
SCC:スクリーンコンテンツコーディング
GBI:一般化Bi予測
BCW:CUレベルの重みによるBi予測
CIIP:結合されたイントラ・インター予測
POC:ピクチャ順序カウント
RPS:参照ピクチャセット
DPB:デコーディングされたピクチャバッファ
MMVD:動きベクトル差を伴うマージモード
【符号の説明】
【0218】
101 サンプル
102 矢印
103 矢印
104 ブロック
201 現在のブロック
300 通信システム
310 端末デバイス
320 端末デバイス
330 端末デバイス
340 端末デバイス
350 ネットワーク
400 通信システム
401 ビデオソース
402 ビデオピクチャまたは画像のストリーム
403 ビデオエンコーダ
404 エンコーディングされたビデオデータ
405 ストリーミングサーバ
406 クライアントサブシステム
407 エンコーディングされたビデオデータのコピー
408 クライアントサブシステム
409 エンコーディングされたビデオデータのコピー
410 ビデオデコーダ
411 ビデオピクチャの出力ストリーム
412 ディスプレイ
413 ビデオキャプチャサブシステム
420 電子デバイス
430 電子デバイス
501 チャネル
510 ビデオデコーダ
512 ディスプレイ
515 バッファメモリ
520 エントロピーデコーダ/パーサ
521 シンボル
530 電子デバイス
531 受信器
551 スケーラ/逆変換ユニット
552 イントラピクチャ予測ユニット
553 動き補償予測ユニット
555 アグリゲータ
556 ループフィルタユニット
557 参照ピクチャメモリ
558 現在ピクチャバッファ
601 ビデオソース
603 ビデオエンコーダ
620 電子デバイス
630 ソースコーダ
632 コーディングエンジン
633 デコーダ
634 参照ピクチャメモリ
635 予測器
640 送信器
643 コーディングされたビデオシーケンス
645 エントロピーコーダ
650 コントローラ
660 通信チャネル
703 ビデオエンコーダ
721 汎用コントローラ
722 イントラエンコーダ
723 残差計算器
724 残差エンコーダ
725 エントロピーエンコーダ
726 スイッチ
728 残差デコーダ
730 インターエンコーダ
810 ビデオデコーダ
871 エントロピーデコーダ
872 イントラデコーダ
873 残差デコーダ
874 再構成モジュール
880 インターデコーダ
902 分割オプションまたはパターン
904 分割オプションまたはパターン
906 分割オプションまたはパターン
908 分割オプションまたはパターン
1002 サブパーティション
1004 サブパーティション
1006 サブパーティション
1008 サブパーティション
1200 ベースブロック
1202 正方形パーティション
1204 正方形パーティション
1206 正方形パーティション
1208 正方形パーティション
1402 パーティション
1404 パーティション
1406 パーティション
1408 パーティション
1502 正方形コーディングブロック
1504 変換ブロック
1506 変換ブロック
1602 インターコーディングされたブロック
1604 インターコーディングされたブロック
2000 コンピュータシステム
2001 キーボード
2002 マウス
2003 トラックパッド
2005 ジョイスティック
2006 マイクロフォン
2007 スキャナ
2008 カメラ
2009 スピーカ
2010 タッチスクリーン
2020 CD/DVD ROM/RW
2021 媒体
2022 サムドライブ
2023 リムーバブルハードドライブまたはソリッドステートドライブ
2040 コア
2041 中央処理装置(CPU)
2042 グラフィックス処理装置(GPU)
2043 フィールドプログラマブルゲートエリア(FPGA)
2044 ハードウェアアクセラレータ
2045 読み出し専用メモリ(ROM)
2046 ランダムアクセスメモリ
2047 内部大容量ストレージ
2048 システムバス
2049 汎用データポートまたは周辺バス
2050 グラフィックスアダプタ
2054 インターフェース
2055 通信ネットワーク
【手続補正書】
【提出日】2023-08-07
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
インター予測されたビデオブロックをデコーディングするための方法であって、前記方法は、
命令を記憶するメモリと、前記メモリと通信するプロセッサとを備えるデバイス
が、コーディングされたビデオビットストリームを受信するステップと、
前記デバイス
が、前記コーディングされたビデオビットストリームから、現在のフレーム内の現在のブロックのインター予測モードおよびジョイントデルタ動きベクトル(MV)(joint_delta_mv)を抽出するステップと、
前記デバイス
が、前記コーディングされたビデオビットストリームから、参照リスト0内の第1の参照フレームについての第1のデルタMVと参照リスト1内の第2の参照フレームについての第2のデルタMVとが一緒にシグナリングされるかどうかを示すフラグ(joint_mvd_flag)を抽出するステップと、
前記フラグが前記第1のデルタMVと前記第2のデルタMVとが一緒にシグナリングされることを示すことに応じて、前記デバイス
が、前記ジョイントデルタMVに基づいて前記第1のデルタMVおよび前記第2のデルタMVを導出するステップと、
前記デバイス
が、前記第1のデルタMVおよび前記第2のデルタMVに基づいて前記現在のフレーム内の前記現在のブロックをデコーディングするステップとを含む、方法。
【請求項2】
前記現在のブロックの前記インター予測モードはNEW_NEWMVであり、
前記ジョイントデルタMVに基づいて前記第1のデルタMVおよび前記第2のデルタMVを導出する前記ステップは、
前記第1のデルタMVを前記ジョイントデルタMVとして決定するステップと、
以下のもの、すなわち、
前記第1の参照フレームと前記現在のフレームとの間の第1のピクチャ順序カウント(POC)距離、
前記第2の参照フレームと前記現在のフレームとの間の第2のPOC距離、または
前記現在のフレームに対する前記第1の参照フレームおよび前記第2の参照フレームの方向関係、のうちの少なくとも1つに従って前記ジョイントデルタMVをスケーリングすることによって前記第2のデルタMVを決定するステップとを含む、
請求項1に記載の方法。
【請求項3】
前記現在のブロックの前記インター予測モードはNEW_NEWMVであり、
前記ジョイントデルタMVに基づいて前記第1のデルタMVおよび前記第2のデルタMVを導出する前記ステップは、
前記第2のデルタMVを前記ジョイントデルタMVとして決定するステップと、
以下のもの、すなわち、
前記第1の参照フレームと前記現在のフレームとの間の第1のピクチャ順序カウント(POC)距離、
前記第2の参照フレームと前記現在のフレームとの間の第2のPOC距離、または
前記現在のフレームに対する前記第1の参照フレームおよび前記第2の参照フレームの方向関係、のうちの少なくとも1つに従って前記ジョイントデルタMVをスケーリングすることによって前記第1のデルタMVを決定するステップとを含む、
請求項1に記載の方法。
【請求項4】
前記現在のブロックの前記インター予測モードはNEW_NEWMVであり、
前記ジョイントデルタMVに基づいて前記第1のデルタMVおよび前記第2のデルタMVを導出する前記ステップは、
前記第1の参照フレームと前記現在のフレームとの間の第1の絶対POC距離が前記第2の参照フレームと前記現在のフレームとの間の第2の絶対POC距離よりも大きいことに応じて、
前記第1のデルタMVを前記ジョイントデルタMVとして決定するステップと、
以下のもの、すなわち、
前記第1の参照フレームと前記現在のフレームとの間の第1のPOC距離、
前記第2の参照フレームと前記現在のフレームとの間の第2のPOC距離、または
前記現在のフレームに対する前記第1の参照フレームおよび前記第2の参照フレームの方向関係のうちの少なくとも1つに従って前記ジョイントデルタMVをスケーリングすることによって前記第2のデルタMVを決定するステップとを含む、
請求項1に記載の方法。
【請求項5】
前記現在のブロックの前記インター予測モードはNEW_NEWMVであり、
前記ジョイントデルタMVに基づいて前記第1のデルタMVおよび前記第2のデルタMVを導出する前記ステップは、
前記第1の参照フレームと前記現在のフレームとの間の第1の絶対POC距離が前記第2の参照フレームと前記現在のフレームとの間の第2の絶対POC距離よりも小さいことに応じて、
前記第2のデルタMVを前記ジョイントデルタMVとして決定するステップと、
以下のもの、すなわち、
前記第1の参照フレームと前記現在のフレームとの間の第1のPOC距離、
前記第2の参照フレームと前記現在のフレームとの間の第2のPOC距離、または
前記現在のフレームに対する前記第1の参照フレームおよび前記第2の参照フレームの方向関係のうちの少なくとも1つに従って前記ジョイントデルタMVをスケーリングすることによって前記第1のデルタMVを決定するステップとを含む、
請求項1に記載の方法。
【請求項6】
前記現在のブロックの前記インター予測モードはNEW_NEWMVであり、
前記ジョイントデルタMVに基づいて前記第1のデルタMVおよび前記第2のデルタMVを導出する前記ステップは、
前記第1の参照フレームと前記現在のフレームとの間の第1の絶対POC距離が前記第2の参照フレームと前記現在のフレームとの間の第2の絶対POC距離に等しいことに応じて、
前記第1のデルタMVを前記ジョイントデルタMVとして決定するステップと、
前記現在のフレームに対する前記第1の参照フレームおよび前記第2の参照フレームの方向関係が同じであることに応じて、前記第2のデルタMVを前記ジョイントデルタMVとして決定するステップと、
前記現在のフレームに対する前記第1の参照フレームおよび前記第2の参照フレームの前記方向関係が反対であることに応じて、前記第2のデルタMVを前記ジョイントデルタMVに-1を乗じたものとして決定するステップとを含む、
請求項1に記載の方法。
【請求項7】
前記現在のブロックの前記インター予測モードはNEW_NEARMVであり、
前記ジョイントデルタMVに基づいて前記第1のデルタMVおよび前記第2のデルタMVを導出する前記ステップは、
前記第1のデルタMVを前記ジョイントデルタMVとして決定するステップと、
以下のもの、すなわち、
前記第1の参照フレームと前記現在のフレームとの間の第1のPOC距離、
前記第2の参照フレームと前記現在のフレームとの間の第2のPOC距離、
前記現在のフレームに対する前記第1の参照フレームおよび前記第2の参照フレームの方向関係、または
所定の重み付け係数のうちの少なくとも1つに従って前記ジョイントデルタMVをスケーリングすることによって前記第2のデルタMVを決定するステップとを含む、
請求項1に記載の方法。
【請求項8】
前記現在のブロックの前記インター予測モードはNEAR_NEWMVであり、
前記ジョイントデルタMVに基づいて前記第1のデルタMVおよび前記第2のデルタMVを導出する前記ステップは、
前記第2のデルタMVを前記ジョイントデルタMVとして決定するステップと、
以下のもの、すなわち、
前記第1の参照フレームと前記現在のフレームとの間の第1のPOC距離、
前記第2の参照フレームと前記現在のフレームとの間の第2のPOC距離、
前記現在のフレームに対する前記第1の参照フレームおよび前記第2の参照フレームの方向関係、または
所定の重み付け係数のうちの少なくとも1つに従って前記ジョイントデルタMVをスケーリングすることによって前記第1のデルタMVを決定するステップとを含む、
請求項1に記載の方法。
【請求項9】
前記所定の重み付け係数は-1と1の間の分数である、
請求項8に記載の方法。
【請求項10】
前記所定の重み付け係数は、以下のもの、すなわち、シーケンスパラメータセット(SPS)、ビデオパラメータセット(VPS)、ピクチャパラメータセット(PPS)、ピクチャヘッダ、タイルヘッダ、スライスヘッダ、フレームヘッダ、コーディングツリーユニット(CTU)ヘッダ、またはスーパーブロックヘッダのうちの少なくとも1つを含む高水準シンタックスでシグナリングされる、
請求項8に記載の方法。
【請求項11】
前記現在のブロックの前記インター予測モードはNEAR_NEARMVであり、
前記第1の参照フレームについての前記第1のデルタMVと前記第2の参照フレームについての前記第2のデルタMVとが一緒にシグナリングされるかどうかを示す前記フラグを抽出する前記ステップは、
前記フラグをデフォルト値として決定するステップを含む、
請求項1に記載の方法。
【請求項12】
前記デフォルト値は、前記第1の参照フレームについての前記第1のデルタMVと前記第2の参照フレームについての前記第2のデルタMVとが一緒にシグナリングされないことを示す0である、
請求項11に記載の方法。
【請求項13】
インター予測されたビデオブロックをデコーディングするための装置であって、前記装置は、
命令を記憶するメモリと、
前記メモリと通信するプロセッサであって、前記プロセッサが前記命令を実行すると、前記プロセッサは、請求項1から12のいずれか一項に記載の方法を前記装置に実行させるように構成される、プロセッサとを備える、装置。
【請求項14】
コンピュータに、請求項1から12のいずれか一項に記載の方法
を実行させる
ためのコンピュータプログラム。
【国際調査報告】