IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ テンセント・アメリカ・エルエルシーの特許一覧

特表2024-539787動きベクトル差分のジョイント・シグナリング方法
<>
  • 特表-動きベクトル差分のジョイント・シグナリング方法 図1A
  • 特表-動きベクトル差分のジョイント・シグナリング方法 図1B
  • 特表-動きベクトル差分のジョイント・シグナリング方法 図2
  • 特表-動きベクトル差分のジョイント・シグナリング方法 図3
  • 特表-動きベクトル差分のジョイント・シグナリング方法 図4
  • 特表-動きベクトル差分のジョイント・シグナリング方法 図5
  • 特表-動きベクトル差分のジョイント・シグナリング方法 図6
  • 特表-動きベクトル差分のジョイント・シグナリング方法 図7
  • 特表-動きベクトル差分のジョイント・シグナリング方法 図8
  • 特表-動きベクトル差分のジョイント・シグナリング方法 図9
  • 特表-動きベクトル差分のジョイント・シグナリング方法 図10
  • 特表-動きベクトル差分のジョイント・シグナリング方法 図11
  • 特表-動きベクトル差分のジョイント・シグナリング方法 図12
  • 特表-動きベクトル差分のジョイント・シグナリング方法 図13
  • 特表-動きベクトル差分のジョイント・シグナリング方法 図14
  • 特表-動きベクトル差分のジョイント・シグナリング方法 図15
  • 特表-動きベクトル差分のジョイント・シグナリング方法 図16
  • 特表-動きベクトル差分のジョイント・シグナリング方法 図17
  • 特表-動きベクトル差分のジョイント・シグナリング方法 図18
  • 特表-動きベクトル差分のジョイント・シグナリング方法 図19
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-10-31
(54)【発明の名称】動きベクトル差分のジョイント・シグナリング方法
(51)【国際特許分類】
   H04N 19/517 20140101AFI20241024BHJP
   H04N 19/46 20140101ALI20241024BHJP
【FI】
H04N19/517
H04N19/46
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023558312
(86)(22)【出願日】2022-04-13
(85)【翻訳文提出日】2023-09-22
(86)【国際出願番号】 US2022024534
(87)【国際公開番号】W WO2023091181
(87)【国際公開日】2023-05-25
(31)【優先権主張番号】63/280,506
(32)【優先日】2021-11-17
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】63/289,140
(32)【優先日】2021-12-14
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/700,729
(32)【優先日】2022-03-22
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ジャオ,リアン
(72)【発明者】
【氏名】ジャオ,シン
(72)【発明者】
【氏名】リウ,シャン
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159LC09
5C159MA04
5C159MA05
5C159MA21
5C159MC11
5C159ME01
5C159NN19
5C159RC12
5C159TB08
5C159TC12
5C159UA02
5C159UA05
5C159UA16
5C159UA33
(57)【要約】
本開示は、ビデオ・ブロックをインター予測するための動きベクトル差分の符号化及び復号化に関連している。本方法は:コーディングされたビデオ・ビットストリームを受信するステップ;現在のフレームの現在のブロックに関し、インター予測モードはJOINT_NEWMVモードであるかどうかを示すフラグを、コーディングされたビデオ・ビットストリームから取り出すステップであって、JOINT_NEWMVモードは、参照リスト0からの第1の参照フレームに対する第1のデルタ動きベクトル(MV)と参照リスト1からの第2の参照フレームに対する第2のデルタMVとが一緒にシグナリングされることを示す、ステップ;インター予測モードはJOINT_NEWMVモードであることを、フラグが示していることに応じて:現在のブロックに対するジョイント・デルタ動きベクトル(MV)を取り出し;ジョイント・デルタMVに基づいて、第1のデルタMVと第2のデルタMVとを導出するステップ;及び第1のデルタMVと第2のデルタMVとに基づいて現在のブロックを復号化するステップを含む。
【特許請求の範囲】
【請求項1】
インター予測されたビデオ・ブロックを復号化する方法であって:
命令を記憶するメモリ及び前記メモリと通信するプロセッサを含むデバイスが、コーディングされたビデオ・ビットストリームを受信するステップ;
現在のフレームの現在のブロックに関し、インター予測モードはJOINT_NEWMVモードであるかどうかを示すフラグを、前記デバイスが、前記コーディングされたビデオ・ビットストリームから取り出すステップであって、前記JOINT_NEWMVモードは、参照リスト0からの第1の参照フレームに対する第1のデルタ動きベクトル(MV)と参照リスト1からの第2の参照フレームに対する第2のデルタMVとが一緒にシグナリングされることを示す、ステップ;
前記インター予測モードはJOINT_NEWMVモードであることを、前記フラグが示していることに応答して:
前記デバイスが、前記現在のブロックに対するジョイント・デルタMVを、前記コーディングされたビデオ/ビットストリームから取り出し;且つ
前記デバイスが、前記ジョイント・デルタMVに基づいて、前記第1のデルタMVと前記第2のデルタMVとを導出するステップ;及び
前記デバイスが、前記第1のデルタMVと前記第2のデルタMVとに基づいて、前記現在のフレームの前記現在のブロックを復号化するステップ;
を含む方法。
【請求項2】
請求項1に記載の方法において:
モードは複合参照モードのうちの1つであり;及び
前記コーディングされたビデオ・ビットストリームから取り出されたシンタックス要素は、前記インター予測モードを示す、方法。
【請求項3】
請求項1に記載の方法において:
前記JOINT_NEWMVモードは、NEAR_NEARMVモード、NEAR_NEWMVモード、NEW_NEARMVモード、NEW_NEWMVモード、及びGLOBAL_GLOBALMVモードのうちの1つとともに一緒にシグナリングされる、方法。
【請求項4】
請求項1に記載の方法において:
前記インター予測モードはJOINT_NEWMVモードであるかどうかは:
前記第1の参照フレームと前記現在のフレームとの間の第1のピクチャ・オーダー・カウント(POC)距離、
前記第2の参照フレームと前記現在のフレームとの間の第2のPOC距離、又は
前記第1の参照フレーム及び前記第2の参照フレームの前記現在のフレームに対する方向関係、のうちの少なくとも1つに基づいている、方法。
【請求項5】
請求項4に記載の方法において:
前記方向関係が反対方向を示しているか、又は、前記第1のPOC距離が前記第2のPOC距離に等しいことに応じて、前記インター予測モードは前記JOINT_NEWMVモードである、方法。
【請求項6】
請求項4に記載の方法において:
前記方向関係が反対方向を示し、且つ、前記第1のPOC距離が前記第2のPOC距離に等しいことに応じて、前記インター予測モードは前記JOINT_NEWMVモードである、方法。
【請求項7】
請求項1に記載の方法において、更に:
前記デバイスが、前記インター予測モードを導出するためのコンテキストを:
前記第1の参照フレームと前記現在のフレームとの間の第1のピクチャ・オーダー・カウント(POC)距離、
前記第2の参照フレームと前記現在のフレームとの間の第2のPOC距離、又は
前記第1の参照フレーム及び前記第2の参照フレームの前記現在のフレームに対する方向関係、のうちの少なくとも1つに基づいて導出するステップを含む方法。
【請求項8】
請求項1に記載の方法において、更に:
前記インター予測モードが前記JOINT_NEWMVモードであることに応じて、前記デバイスが、前記現在のブロックに対してオプティカル・フロー動き精密化を実行するステップを含む方法。
【請求項9】
請求項1に記載の方法において、更に:
オプティカル・フロー動き精密化が前記JOINT_NEWMVモードに対して実行されるかどうかを示すフラグを、前記デバイスが、前記コーディングされたビデオ・ビットストリームから取り出すステップ;及び
前記オプティカル・フロー動き精密化が前記JOINT_NEWMVモードに対して実行されることを前記フラグが示していることに応じて、前記デバイスが、前記オプティカル・フロー動き精密化を前記現在のブロックに対して実行するステップ;
を含む方法。
【請求項10】
請求項1に記載の方法において、更に:
前記JOINT_NEWMVモードが前記現在のブロックに適用可能であるかどうかを示すフラグを、前記デバイスが、前記コーディングされたビデオ・ビットストリームから取り出すステップ;
を含む方法。
【請求項11】
請求項9に記載の方法において:
前記フラグは、シーケンス・パラメータ・セット(SPS)、ビデオ・パラメータ・セット(VPS)、ピクチャ・パラメータ・セット(PPS)、ピクチャ・ヘッダ、タイル・ヘッダ、スライス・ヘッダ、フレーム・ヘッダ、コーディング・ツリー・ユニット(CTU)ヘッダ、又はスーパーブロック・ヘッダのうちの少なくとも1つを含むハイ・レベル・シンタックス要素においてシグナリングされる、方法。
【請求項12】
インター予測されたビデオ・ブロックを復号化する装置であって:
命令を記憶するメモリ;及び
前記メモリと通信するプロセッサ;
を含み、前記プロセッサが前記命令を実行すると、前記プロセッサは、請求項1ないし11のうちの何れか1項に記載の方法を前記装置に実行させるように構成されている、装置。
【請求項13】
命令を記憶する非一時的なコンピュータ読み取り可能な記憶媒体であって、前記命令がプロセッサにより実行されると、前記命令は、請求項1ないし11のうちの何れか1項に記載の方法を前記プロセッサに実行させるように構成されている、記憶媒体。
【請求項14】
請求項1ないし11のうちの何れか1項に記載の方法をプロセッサに実行させるコンピュータ・プログラム。

【発明の詳細な説明】
【技術分野】
【0001】
[0001] 参照による援用
本件出願は、2021年11月17日付で出願された米国仮出願第63/280,506号及び2021年12月14日付けで出願された米国仮出願第63/289,140号に基づいて優先権を主張するものであり、両出願全体は参照により本件に援用される。また、本件出願は2022年3月22日付けで出願された仮出願ではない米国出願第17/700,729号に基づいて優先権を主張するものであり、同出願全体は参照により本件に援用される。
【0002】
[0002] 技術分野
本開示は、ビデオ・コーディング及び/又はデコーディング技術に関連し、特に、コーディング及び/又はデコーディングのためのジョイント動きベクトル差分(joint motion vector difference)のシグナリング及び改善された設計に関連する。
【背景技術】
【0003】
[0003] 本件で行われるこの背景の説明は、本開示の状況を一般的に提示するためのものである。目下の発明者の名の下になされる仕事は、その仕事がこの背景のセクションだけでなく、別の方法で本件の出願時点における先行技術としての適格性を有しない可能性のある記述の態様で説明される範囲において、本開示に対する先行技術として、明示的にも暗示的にも認められていない。
【0004】
[0004] ビデオのコーディング及びデコーディングは、動き補償を伴うインター・ピクチャ予測を用いて実行されることが可能である。非圧縮化されたデジタル・ビデオは一連のピクチャを含むことが可能であり、各ピクチャは、例えば1920x1080のルミナンス・サンプル及び関連する完全な又はサブサンプリングされたクロミナンス・サンプルの空間次元を有する。一連のピクチャは、例えば60ピクチャ/秒又は60フレーム毎秒の固定された又は可変のピクチャ・レート(代替的に、フレーム・レートと呼ばれる)を有することが可能である。非圧縮化されたビデオは、ストリーミング又はデータ処理に対する特定のビットレート要件を有する。例えば、8ビット/ピクセル/カラー・チャネルにおける、1920x1080のピクセル解像度、60フレーム/秒のフレーム・レート、及び4:2:0のクロマ・サブサンプリングによるビデオは、1.5 Gbit/sに近い帯域幅を必要とする。このようなビデオの1時間は、600 Gバイトを超える記憶スペースを必要とする。
【0005】
[0005] ビデオのコーディング及びデコーディングの目的の1つは、圧縮による、非圧縮入力ビデオ信号の冗長性低減であるということができる。圧縮は、場合によっては、2桁以上の大きさで、前述の帯域幅及び/又は記憶スペース要件を低減するのに役立つ可能性がある。ロスレス圧縮及び非ロスレス圧縮の両方、並びにそれらの組み合わせを用いることが可能である。ロスレス圧縮とは、元の信号の正確なコピーが、復号化プロセスにより、圧縮された元の信号から再構成することができる技術をいう。非ロスレス圧縮は、元のビデオ情報がコーディングの際に完全には維持されず、デコーディングの際に完全には回復可能でないコーディング/デコーディング・プロセスをいう。非ロスレス圧縮を使用する場合、再構成された信号は、元の信号と同一ではないかもしれないが、元の信号と再構成された信号との間の歪は、再構成された信号を、幾らかの情報損失があるにもかかわらず、意図された用途にとって有用となる程度に十分に小さい。ビデオの場合、非ロスレス圧縮が多くの用途で広く使用されている。許容される歪の量は、用途に依存する。例えば、特定の消費者ビデオ・ストリーミング・アプリケーションのユーザーは、映画又はテレビ放送アプリケーションのユーザーよりも高い歪に耐え得る可能性がある。特定のコーディング・アルゴリズムにより達成可能な圧縮比は、種々の歪み許容度を反映するように選択又は調整されることが可能であり:より高い許容可能な歪は、一般に、より高い損失及びより高い圧縮比をもたらすコーディング・アルゴリズムを可能にする。
【0006】
[0006] ビデオ・エンコーダ及びデコーダは、例えば、動き補償、フーリエ変換、量子化、及びエントロピー・コーディングを含む幾つもの広範なカテゴリ及びステップのうちの技術を利用することができる。
【0007】
[0007] ビデオ・コーデック技術は、イントラ・コーディングとして知られる技術を含むことが可能である。イントラ・コーディングでは、サンプル値は、以前に再構成された参照ピクチャからのサンプル又はその他のデータを参照することなく表現される。幾つかのビデオ・コーデックでは、ピクチャはサンプルのブロックに空間的に細分される。サンプルの全てのブロックがイントラ・モードでコーディングされる場合、そのピクチャはイントラ・ピクチャと言及されることが可能である。イントラ・ピクチャ及びそれらの派生物(例えば、独立なデコーダ・リフレッシュ・ピクチャ)は、デコーダ状態をリセットするために使用することが可能であり、従って、コーディングされたビデオ・ビットストリーム及びビデオ・セッションにおける最初のピクチャとして、又は静止画像として使用することができる。イントラ予測後のブロックのサンプルは、周波数ドメインへの変換に委ねられる可能性があり、そのように生成される変換係数は、エントロピー・コーディングの前に量子化されることが可能である。イントラ予測は、変換前のドメインにおけるサンプル値を最小化する技術を表す。場合によっては、変換後のDC値が小さいほど、及びAC係数が小さいほど、エントロピー・コーディング後にブロックを表現するために、所与の量子化ステップ・サイズで必要とされるビット数は少なくなる。
【0008】
[0008] 例えばMPEG-2世代のコーディング技術などで知られているような伝統的なイントラ・コーディングは、イントラ予測を使用していない。しかしながら、幾つかのより新しいビデオ圧縮技術は、例えば、空間的に隣接する、符号化/復号化する際に得られる周囲のサンプル・データ及び/又はメタデータであってコーディング又はデコーディングされるデータのブロックに復号化順で先行しているもの、に基づいて、ブロックのコーディング/デコーディングを試みる技術を含む。このような技術は、以後「イントラ予測」技術と呼ばれる。少なくとも幾つかのケースでは、イントラ予測は、他の参照ピクチャからではなく、再構成中の現在のピクチャからの、参照データのみを使用することに留意されたい。
【0009】
[0009] 多くの様々な形式のイントラ予測が存在する可能性がある。1つより多くのそのような技術が所与のビデオ・コーディング技術で使用されることが可能である場合、使用されるその技術は、イントラ予測モードとして言及されることが可能である。1つ以上のイントラ予測モードが、特定のコーデックで提供されてもよい。ある場合には、モードは、サブモードを有することが可能であり、及び/又は様々なパラメータに関連付けられることが可能であり、ビデオのブロックに対するモード/サブモード情報及びイントラ・コーディング・パラメータは、個別にコーディングされることが可能であり、又は集合的にモード・コードワードに含めることが可能である。所与のモード、サブモード、及び/又はパラメータの組み合わせに使用するコードワードは、イントラ予測によるコーディング効率利得に影響を与える可能性があり、従って、コードワードをビットストリームに変換するために使用されるエントロピー・コーディング技術にも同様に影響を与える可能性がある。
【0010】
[0010] イントラ予測の所定のモードがH.264で導入され、H.265で改良され、共同探索モデル(JEM)、多用途ビデオ・コーディング(VVC)、ベンチマーク・セット(BMS)のような新たなコーディング技術で更に改良されている。一般に、イントラ予測の場合、予測ブロックは、利用可能になっている近辺のサンプル値(neighboring sample value)を使用して形成されることが可能である。例えば、特定の方向及び/又はラインに沿った近辺のサンプルの特定のセットのうちの利用可能な値は、予測子ブロック(predictor block)にコピーされることが可能である。使用する方向に対する参照(reference)はビットストリームにおいてコーディングされることが可能であるし、或いはそれ自体が予測されてもよい。
【0011】
[0011] 図1Aを参照すると、右下に示されているものは、H.265の33個の可能なイントラ予測子方向(H.265で指定されている35個のイントラ・モードのうちの33個の角度モードに対応するもの)の中で指定される9個の予測子方向のサブセットである。矢印が収束する点(101)は、予測されるサンプルを表す。矢印は方向を示し、その方向からの近辺のサンプルが、101におけるサンプルを予測するために使用される。例えば、矢印(102)は、サンプル(101)が、水平方向から45度の角度で右上に向かう1つ又は複数の近辺のサンプルから、予測されることを示す。同様に、矢印(103)は、サンプル(101)が、水平方向から22.5度の角度でサンプル(101)の左下に向かう1つ又は複数の近辺のサンプルから、予測されることを示す。
【0012】
[0012] 図1Aを更に参照すると、左上に、4x4サンプルの正方形ブロック(104)が示されている(太い破線で示されている)。正方形ブロック(104)は16個のサンプルを含み、その各々は、「S」と、Y次元におけるその位置(例えば、行インデックス)と、X次元におけるその位置(例えば、列インデックス)とでラベル付けされている。例えば、サンプルS21は、Y次元で(上から)2番目のサンプルであって、X次元で(左から)1番目のサンプルである。同様に、サンプルS44は、Y及びX次元の両方においてブロック(104)内で4番目のサンプルである。ブロックは4x4サンプルのサイズであるので、S44は右下にある。更に、同様の番号付け方式に従った例示的な参照サンプルが示されている。参照サンプルは、Rと、ブロック(104)に対するそのY位置(例えば、行インデックス)と、X位置(列インデックス)とでラベル付けされている。H.264とH.265の両方において、再構成中のブロックに隣接している予測サンプルが使用される。
【0013】
[0013] ブロック104のイントラ・ピクチャ予測は、シグナリングされた予測方向に従って、近辺のサンプルから参照サンプル値をコピーすることによって開始してもよい。例えば、コーディングされたビデオ・ビットストリームが、このブロック104に関し、矢印(102)の予測方向を示すシグナリングを含んでいると仮定する-即ち、サンプルは、水平方向から45度の角度で右上に向かう1つ又は複数の予測サンプルから予測される。その場合、サンプルS41,S32,S23,及びS14は、同じ参照サンプルR05から予測される。そして、サンプルS44は、参照サンプルR08から予測される。
【0014】
[0014] 場合によっては、参照サンプルを計算するために、複数の参照サンプルの値が、例えば補間によって組み合わせられてもよい;特に、方向が45度で均等に割り切れない場合である。
【0015】
[0015] 可能な方向の数は、ビデオ・コーディング技術が発達し続けるにつれて増えている。例えば、H.264(2003年)では、9つの異なる方向がイントラ予測に利用可能であった。これは、H.265(2013年)で33まで増加し、本開示の時点におけるJEM/VVC/BMSは、65個までの方向をサポートすることができる。最も相応しいイントラ予測方向を同定することを支援するために実験研究が行われており、エントロピー・コーディングにおける特定の技術を使用して、方向に対して特定のビット・ペナルティを受け入れながら、最も相応しい方向を少ないビット数で符号化することができる。更に、方向それ自体は、復号化されている近辺のブロックのイントラ予測で使用された近辺の方向から、しばしば予測されることが可能である。
【0016】
[0016] 図1BはJEMに従う65個のイントラ予測方向を示す概略図(180)を示し、時を経て発展している様々な符号化技術において、増加しつつある予測方向の数を示している。
【0017】
[0017] コーディングされたビデオ・ビットストリームにおける予測方向に対する、イントラ予測方向を表現するビットのマッピングの仕方は、ビデオ・コーディング技術ごとに異なる可能性があり;例えば、予測方向の単純な直接的なマッピングから、イントラ予測モード、コードワード、最確モードを含む複雑な適応スキーム、及び類似の技術へと、多岐にわたる可能性がある。しかしながら、どのような場合でも、ビデオ・コンテンツにおいて、特定の他の方向よりも統計的に起こりにくい、イントラ予測の特定の方向が存在する可能性がある。ビデオ圧縮のゴールは、冗長性の低減であるので、これらの起こりそうにない方向は、良好に設計されたビデオ・コーディング技術では、より可能性の高い方向よりも多くのビット数で表現されることが可能である。
【0018】
[0018] インター・ピクチャ予測又はインター予測は、動き補償に基づくことが可能である。動き補償では、動きベクトル(以下、MVとする)で示される方向に空間的にシフトさせた後に、以前に再構成されたピクチャ又はその一部(参照ピクチャ)からのサンプル・データが、新たに再構成されるピクチャ又はピクチャの一部分(例えば、ブロック)の予測に使用されることが可能である。場合によっては、参照ピクチャは、現在再構成中のピクチャと同じである可能性がある。MVは、2つの次元X及びY、又は3次元を有する可能性があり、第3の次元は、使用中の参照ピクチャの指示である(後者は、時間次元に類似している)。
【0019】
[0019] 一部のビデオ圧縮技術では、サンプル・データの特定のエリアに適用可能な現在のMVは、他のMVから、例えば、再構成中のエリアに空間的に隣接するサンプル・データの他のエリアに関連するものであって復号化の順番で現在のMVに先行しているものから、予測することが可能である。このようにすると、相互関連するMVにおける冗長性の削減を当てにすることによって、MVをコーディングするために必要なデータ量全体を大幅に削減し、それによって圧縮効率を高めることができる。MV予測は効果的に機能する可能性があり、なぜなら、例えば、カメラ(ナチュラル・ビデオとして知られる)から導出される入力ビデオ信号をコーディングする際に、単一のMVが適用可能であるエリアよりも大きなエリアが、ビデオ・シーケンスの中で同様な方向に移動する統計的な尤度が存在し、従って場合によっては、隣接するエリアのMVから導出される同様な動きベクトルを用いて予測できるからである。これは、与えられたエリアに対して、周囲のMVから予測されるMVに類似する又は同一である実際のMVをもたらす。このようなMVは、エントロピー・コーディングの後に、近辺のMVから予測されるのではなく、MVが直接的にコーディングされる場合に使用されるものよりも少ないビット数で表現されることが可能である。場合によっては、MV予測は、元の信号(即ち、サンプル・ストリーム)から導出された信号(即ち、MV)のロスレス圧縮の一例である可能性がある。他の場合に、MV予測それ自体は、例えば、幾つかの周囲のMVから予測子を計算する際に、丸め誤差に起因して非ロスレスとなる可能性がある。
【0020】
[0020] 様々なMV予測メカニズムは、H.265/HEVC(ITU-T Rec.H.265,“High Efficiency Video Coding”,December 2016)に記載されている。H.265が指定する多くのMV予測メカニズムのうち、以下で説明されるものは、今後「空間マージ(spatial merge)」と呼ばれる技術である。
【0021】
[0021] 具体的には、図2を参照すると、現在のブロック(201)は、空間的にシフトされた同じサイズの以前のブロックから予測可能であるように動き探索プロセス中にエンコーダによって発見されているサンプルを含む。そのMVを直接的にコーディングする代わりに、MVは、1つ以上の参照ピクチャに関連付けられたメタデータから、例えばA0,A1,及びB0,B1,B2とされる5つの周辺サンプル(それぞれ202ないし206)の何れかに関連付けられたMVを使用して、(復号化の順序で)最新の参照ピクチャから、導出されることが可能である。H.265では、MV予測は、隣接ブロックが使用しているのと同じ参照ピクチャからの予測子を使用することができる。
【発明の概要】
【0022】
[0022] 本開示は、ビデオの符号化及び/又は復号化のための方法、装置、及びコンピュータ読み取り可能な記憶媒体の様々な実施形態を説明している。
【0023】
[0023] 一態様によれば、本開示の実施形態は、インター予測されたビデオ・ブロックを復号化する方法を提供する。本方法は:命令を記憶するメモリ及びメモリと通信するプロセッサを含むデバイスが、コーディングされたビデオ・ビットストリームを受信するステップ;現在のフレームの現在のブロックに関し、インター予測モードはJOINT_NEWMVモードであるかどうかを示すフラグを、デバイスが、コーディングされたビデオ・ビットストリームから取り出すステップであって、JOINT_NEWMVモードは、参照リスト0からの第1の参照フレームに対する第1のデルタ動きベクトル(a first delta motion vector (MV))と参照リスト1からの第2の参照フレームに対する第2のデルタMVとが一緒にシグナリングされることを示す、ステップ;ステップ1830において、インター予測モードはJOINT_NEWMVモードであることを、フラグが示していることに応答して:デバイスが、現在のブロックに対するジョイント・デルタ動きベクトル(MV)を、コーディングされたビデオ/ビットストリームから取り出し;且つ、デバイスが、ジョイント・デルタMVに基づいて、第1のデルタMVと第2のデルタMVとを導出するステップ;及び/又はステップ1840において、デバイスが、第1のデルタMVと第2のデルタMVとに基づいて、現在のフレームの現在のブロックを復号化するステップを含む。
【0024】
[0024] 別の態様によれば、本開示の実施形態は、ビデオ符号化及び/又は復号化のための装置を提供する。装置は、命令を記憶するメモリ、及びメモリと通信するプロセッサを含む。プロセッサが命令を実行すると、プロセッサは、ビデオ符号化及び/又は復号化のための上記方法を装置に実行させるように構成されている。
【0025】
[0025] また、本開示の態様は、上記の方法の実装形態のうちの何れかを実行するように構成された回路を含むビデオ符号化又は復号化デバイス又は装置を提供する。
【0026】
[0026] 別の態様において、本開示の実施形態は、命令を記憶する非一時的なコンピュータ読み取り可能な記憶媒体を提供し、命令は、ビデオ符号化及び/又は復号化のためのコンピュータにより実行されると、ビデオ符号化及び/又は復号化のための上記方法をコンピュータに実行させる。
【0027】
[0027] 上記及びその他の態様並びにそれらの実装は、図面、明細書、及び特許請求の範囲においてより詳細に記載されている。
【図面の簡単な説明】
【0028】
[0028] 開示される対象事項の更なる特徴、性質、及び様々な利点は、以下の詳細な説明及び添付の図面からより明らかになるであろう。
図1A】[0029] 図1Aは、イントラ予測方向モードの例示的なサブセットの概略図である。
図1B】[0030] 図1Bは、例示的なイントラ予測方向の例を示す。
図2】[0031] 図2は、一例における現在のブロックと動きベクトル予測のための周辺空間マージ候補との概略図を示す。
図3】[0032] 図3は、例示的な実施形態による通信システム(300)の簡略化されたブロック図の概略図を示す。
図4】[0033] 図4は、例示的な実施形態による通信システム(400)の簡略化されたブロック図の概略図を示す。
図5】[0034] 図5は、例示的な実施形態によるビデオ・デコーダの簡略化されたブロック図の概略図を示す。
図6】[0035] 図6は、例示的な実施形態によるビデオ・エンコーダの簡略化されたブロック図の概略図を示す。
図7】[0036] 図7は、他の例示的な実施形態によるビデオ・エンコーダのブロック図を示す。
図8】[0037] 図8は、他の例示的な実施形態によるビデオ・デコーダのブロック図を示す。
図9】[0038] 図9は、本開示の例示的な実施形態によるコーディング・ブロック・パーティショニングの方式を示す。
図10】[0039] 図10は、本開示の例示的な実施形態によるコーディング・ブロック・パーティショニングの他の方式を示す。
図11】[0040] 図11は、本開示の例示的な実施形態によるコーディング・ブロック・パーティショニングの他の方式を示す。
図12】[0041] 図12は、例示的なパーティショニング方式による、ベース・ブロックのコーディング・ブロックへの例示的なパーティショニングを示す。
図13】[0042] 図13は、例示的なターナリー・パーティショニング方式を示す。
図14】[0043] 図14は、例示的な4分木バイナリ・ツリー・コーディング・ブロック・パーティショニング方式を示す。
図15】[0044] 図15は、本開示の例示的な実施形態による、コーディング・ブロックを複数の変換ブロックにパーティション化するための方式、及び変換ブロックのコーディング順序を示す。
図16】[0045] 図16は、本開示の例示的な実施形態による、コーディング・ブロックを複数の変換ブロックにパーティション化するための他の方式、及び変換ブロックのコーディング順序を示す。
図17】[0046] 図17は、本開示の例示的な実施形態による、コーディング・ブロックを複数の変換ブロックにパーティション化するための他の方式を示す。
図18】[0047] 図18は、本開示の例示的な実施形態による方法のフローチャートを示す。
図19】[0048] 図16は、本開示の実施形態によるコンピュータ・システムの概略図を示す。
【発明を実施するための形態】
【0029】
[0049] 以下、本発明は、添付図面を参照しながら詳細に説明され、図面は本発明の一部を成すものであり且つ実施形態の特定の具体例を例示的に示している。しかしながら、本発明は、様々な異なる形態で実施することが可能であり、従って、カバーされる又はクレームされる対象事項は、以下で説明される如何なる実施形態にも限定されないものと解釈されるように意図されていることに留意されたい。また、本発明は、方法、デバイス、構成要素又はシステムとして実施されることが可能であることにも留意されたい。従って、本発明の実施形態は、例えば、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組み合わせの形態をとることが可能である。
【0030】
[0050] 明細書及び特許請求の範囲を通じて、用語は、明示的に述べられている意味を超えて、文脈で示唆又は暗示されるニュアンスの意味を有する可能性がある。本件で使用されるフレーズ「ある実施形態において」又は「一部の実施形態において」は、必ずしも同じ実施形態を指すわけではなく、本件で使用されるフレーズ「別の実施形態において」又は「他の実施形態において」は、必ずしも異なる実施形態を指すわけではない。同様に、本件で使用される「ある実装において」又は「一部の実装において」というフレーズは、必ずしも同じ実装を指すわけではなく、本件で使用される「別の実装において」又は「他の実装において」というフレーズは、必ずしも異なる実装を指すわけではない。例えば、クレームされる対象事項は、例示的な実施形態/実装の組み合わせを全体的又は部分的に含む、ということが意図されている。
【0031】
[0051] 一般に、用語は、少なくとも部分的には、文脈における用法から理解される可能性がある。例えば、「及び」、「又は」又は「及び/又は」のような用語は、本件で使用される場合、そのような用語が使用される文脈に少なくとも部分的に依存する可能性のある様々な意味を含む可能性がある。典型的には、A、B又はCのようなリストを関連付けるために使用される場合に「又は」は、包括的な意味で使用される「A、B及びC」に加えて排他的な意味で使用される「A、B又はC」を意味するように意図されている。更に、本件で使用される用語「1つ以上」又は「少なくとも1つ」は、少なくとも部分的に文脈に依存して、単数の意味で何らかの特徴、構造、又は特性を述べるために使用される可能性があり、あるいは、複数の意味で特徴、構造、又は特性の組み合わせを述べるために使用される可能性がある。同様に、「ある(a)」、「或る(an)」、又は「その(the)」のような用語もまた、少なくとも部分的には文脈に依存して、単数の用法を伝えているか、又は複数の用法を伝えていると理解される場合がある。更に、「~に基づいて」又は「~によって決定される」という用語は、必ずしも排他的な一組の要因を伝えるように意図されているわけではなく、むしろここでも、少なくとも部分的に文脈に依存して、必ずしも明示的には述べられていない追加の要因の存在を許容する可能性がある。
【0032】
[0052] 図3は、本開示の実施形態による通信システム(300)の簡略化されたブロック図を示す。通信システム(300)は、例えばネットワーク(350)を介して互いに通信することが可能な複数の端末デバイスを含む。例えば、通信システム(300)は、ネットワーク(350)を介して相互接続された第1ペアの端末デバイス(310)及び(320)を含む。図3の例では、第1ペアの端末デバイス(310)及び(320)は、データの一方向伝送を行うことが可能である。例えば、端末デバイス(310)は、ネットワーク(350)を介する他の端末デバイス(320)への伝送のために、ビデオ・データ(例えば、端末デバイス(310)によって捕捉されたビデオ・ピクチャのストリームのビデオ・データ)をコーディングすることができる。符号化されたビデオ・データは、1つ以上のコーディングされたビデオ・ビットストリームの形態で伝送されることが可能である。端末デバイス(320)は、コーディングされたビデオ・データをネットワーク(350)から受信し、コーディングされたビデオ・データを復号化して、ビデオ・ピクチャを復元し、復元されたビデオ・データに従ってビデオ・ピクチャを表示することができる。一方向性データ伝送は、媒体サービング・アプリケーション等において実現されてもよい。
【0033】
[0053] 別の例では、通信システム(300)は、例えば、ビデオ・カンファレンス・アプリケーションの際に発生する可能性があるコーディングされたビデオ・データの双方向伝送を行う第2ペアの端末デバイス(330)及び(340)を含む。データの双方向伝送に関し、例えば、端末デバイス(330)及び(340)の各端末デバイスは、ネットワーク(350)を介して端末デバイス(330)及び(340)のうちの他方の端末デバイスへ伝送するために、ビデオ・データ(例えば、端末デバイスによって捕捉されたビデオ・ピクチャのストリームのビデオ・データ)をコーディングすることができる。端末デバイス(330)及び(340)の各端末デバイスもまた、端末デバイス(330)及び(340)のうちの他方の端末デバイスによって伝送されたコーディングされたビデオ・データを受信することが可能であり、コーディングされたビデオ・データを復号化してビデオ・ピクチャを復元することが可能であり、復元されたビデオ・データに従って、アクセス可能なディスプレイ・デバイスでビデオ・ピクチャを表示することが可能である。
【0034】
[0054] 図3の例では、端末デバイス(310),(320),(330)及び(340)は、サーバー、パーソナル・コンピュータ、及びスマートフォンとして実現されているが、本開示の原理に基づく適用可能性はそのように限定されなくてよい。本開示の実施形態は、デスクトップ・コンピュータ、ラップトップ・コンピュータ、タブレット・コンピュータ、メディア・プレーヤ、ウェアラブル・コンピュータ、専用のビデオ・カンファレンス装置、及び/又はこれに類するものにおいて実現されてもよい。ネットワーク(350)は、例えば有線(配線された)及び/又は無線通信ネットワークを含む、コーディングされたビデオ・データを端末デバイス(310),(320),(330)及び(340)の間で運ぶ任意の数又はタイプのネットワークを表現している。通信ネットワーク(350)は、回線交換、パケット交換、及び/又はその他のタイプのチャネルでデータを交換することができる。代表的なネットワークは、テレコミュニケーション・ネットワーク、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、及び/又はインターネットを含む。本開示の目的に関し、ネットワーク(350)のアーキテクチャ及びトポロジーは、以下において明示的に説明されない限り、本開示の動作にとって重要ではない可能性がある。
【0035】
[0055] 図4は、開示される対象事項の適用例として、ビデオ・ストリーミング環境におけるビデオ・エンコーダ及びビデオ・デコーダの配置を示している。開示される対象事項は、例えば、ビデオ・カンファレンス、デジタルTV放送、ゲーミング、仮想現実、圧縮されたビデオのデジタル・メディア(CD、DVD、メモリ・スティック等を含む)への記憶などを含む、他のビデオ・アプリケーションに等しく適用可能なものである可能性がある。
【0036】
[0056] ビデオ・ストリーミング・システムは、ビデオ・ソース(401)、例えばデジタル・カメラを含むことが可能なビデオ・キャプチャ・サブシステム(413)であって、非圧縮のビデオ・ピクチャ又は画像(402)のストリームを生成するためのものを含む可能性がある。一例では、ビデオ・ピクチャのストリーム(402)は、ビデオ・ソース401のデジタル・カメラによって記録されたサンプルを含む。符号化されたビデオ・データ(404)(又はコーディングされたビデオ・ビットストリーム)と比較して、より多くのデータ量を強調するために太い線として描かれているビデオ・ピクチャのストリーム(402)は、ビデオ・ソース(401)に結合されたビデオ・エンコーダ(403)を含む電子デバイス(420)によって処理されることが可能である。ビデオ・エンコーダ(403)は、ハードウェア、ソフトウェア、又はそれらの組み合わせを含み、以下で詳細に説明されるような開示される対象事項の態様を動作可能にする又は実現することが可能である。非圧縮のビデオ・ピクチャ(402)のストリームと比較して、より少ないデータ量を強調するために細い線として描かれている符号化されたビデオ・データ(404)(又は符号化されたビデオ・ビットストリーム(404))は、将来の使用のためにストリーミング・サーバー(405)に、又は下流のビデオ・デバイス(不図示)に直接的に記憶されることが可能である。図4のクライアント・サブシステム(406)及び(408)のような1つ以上のストリーミング・クライアント・サブシステムは、ストリーミング・サーバー(405)にアクセスして、符号化されたビデオ・データ(404)のコピー(407)及び(409)を取り出すことができる。クライアント・サブシステム(406)は、例えば電子デバイス(430)内にビデオ・デコーダ(410)を含むことが可能である。ビデオ・デコーダ(410)は、符号化されたビデオ・データの到来するコピー(407)を復号化し、ディスプレイ(412)(例えば、ディスプレイ・スクリーン)又はその他のレンダリング・デバイス(不図示)でレンダリングすることができる圧縮解除されたビデオ・ピクチャの出力ストリーム(411)を生成する。ビデオ・デコーダ410は、本開示で説明される種々の機能の一部又は全部を実行するように構成されてもよい。幾つかのストリーミング・システムでは、符号化されたビデオ・データ(404),(407),及び(409)(例えば、ビデオ・ビットストリーム)は、特定のビデオ・コーディング/圧縮規格に従って符号化することが可能である。これらの規格の例は、ITU-T勧告H.265を含む。一例において、開発中のビデオ・コーディング規格は、多用途ビデオ・コーディング(Versatile Video Coding,VVC)として非公式に知られている。開示される対象事項はVVC及びその他のビデオ・コーディング規格の状況で使用される可能性がある。
【0037】
[0057] 電子デバイス(420)及び(430)は、他のコンポーネント(図示せず)を含むことが可能である、ということに留意を要する。例えば、電子デバイス(420)は、ビデオ・デコーダ(不図示)を含むことが可能であり、電子デバイス(430)は、ビデオ・エンコーダ(不図示)を含むことも可能である。
【0038】
[0058] 図5は本開示の何らかの実施形態によるビデオ・デコーダ(510)のブロック図を示す。ビデオ・デコーダ(510)は、電子デバイス(530)に含まれることが可能である。電子デバイス(530)は、受信機(531)(例えば、受信回路)を含むことが可能である。ビデオ・デコーダ(510)は、図4の例におけるビデオ・デコーダ(410)の代わりに使用することが可能である。
【0039】
[0059] 受信機(531)は、ビデオ・デコーダ(510)によって復号化されることになっている1つ以上のコーディングされたビデオ・シーケンスを受信することが可能である。同じ又は別の実施形態において、各々のコーディングされたビデオ・シーケンスの復号化が、他のコーディングされたビデオ・シーケンスから独立している場合には、一度に1つのコーディングされたビデオ・シーケンスを受信することが可能である。各々のビデオ・シーケンスは、複数のビデオ・フレーム又は画像に関連していてもよい。コーディングされたビデオ・シーケンスは、チャネル(501)から受信することが可能であり、このチャネルは、符号化されたビデオ・データを記憶するストレージ・デバイス、又は符号化されたビデオ・データを伝送するストリーミング・ソースへの、ハードウェア/ソフトウェア・リンクであってもよい。受信機(531)は、符号化されたビデオ・データを、他のデータ、例えばコーディングされたオーディオ・データ及び/又は補助的なデータ・ストリームとともに受信することが可能であり、これらのデータは、それら各自の処理回路(不図示)へ転送されることが可能である。受信機(531)は、コーディングされたビデオ・シーケンスを他のデータから分離することができる。ネットワーク・ジッタに対処するために、バッファ・メモリ(515)は、受信機(531)とエントロピー・デコーダ/パーサー(520)(以後「パーサー(520)」と言及する)との間に配置されてもよい。特定のアプリケーションでは、バッファ・メモリ(515)はビデオ・デコーダ(510)の一部として実現されてもよい。他のアプリケーションにおいて、それはビデオ・デコーダ(510)とは別個で外側にある可能性がある(不図示)。更に別のアプリケーションでは、例えばネットワーク・ジッタに対処するために、ビデオ・デコーダ(510)の外側にバッファ・メモリ(不図示)が存在する可能性があり、また、例えば再生タイミングを取り扱うためにビデオ・デコーダ(510)の内側に別の追加的なバッファ・メモリ(515)が存在する可能性がある。受信機(531)が、十分な帯域幅及び制御可能性を有するストア/フォワード・デバイスから、又はアイソクロナス・ネットワークから、データを受信している場合、バッファ・メモリ(515)は必要とされない可能性があるか、又は小さくすることが可能である。インターネットのようなベスト・エフォート・パケット・ネットワークでの使用のために、十分なサイズのバッファ・メモリ(515)が必要とされる可能性があり、そのサイズは比較的大きい可能性がある。そのようなバッファ・メモリは、適応的なサイズで実現されることが可能であり、また、ビデオ・デコーダ(510)の外側のオペレーティング・システム又は類似の要素(不図示)において少なくとも部分的に実現されてもよい。
【0040】
[0060] ビデオ・デコーダ(510)は、コーディングされたビデオ・シーケンスからシンボル(521)を再構成するためにパーサー(520)を含むことが可能である。これらのシンボルのカテゴリは、ビデオ・デコーダ(510)の動作を管理するために使用される情報、及び潜在的には、ディスプレイ(512)(例えば、ディスプレイ・スクリーン)のようなレンダリング・デバイスを制御するための情報を含み、レンダリング・デバイスは、図5に示されているように、電子デバイス(530)の一体化部分であってもなくてもよいが、電子デバイス(530)に結合されることが可能なものである。レンダリング・デバイスの制御情報は、補足エンハンスメント情報(Supplemental Enhancement Information,SEI)メッセージ又はビデオ・ユーザビリティ情報(Video Usability Information,VUI)パラメータ・セット・フラグメント(不図示)の形態におけるものであってもよい。パーサー(520)は、パーサー(520)により受信されるコーディングされたビデオ・シーケンスを解析/エントロピー復号化することが可能である。コーディングされるビデオ・シーケンスのエントロピー・コーディングは、ビデオ・コーディング技術又は規格に従うことが可能であり、可変長コーディング、ハフマン・コーディング、コンテキストの影響を伴う又は伴わない算術コーディング等を含む種々の原理に従うことが可能である。パーサー(520)は、サブグループに対応する少なくとも1つのパラメータに基づいて、ビデオ・デコーダ内のピクセルのサブグループの少なくとも1つに対するサブグループ・パラメータのセットを、コーディングされたビデオ・シーケンスから抽出することができる。サブグループは、ピクチャ・グループ(Groups of Pictures,GOP)、ピクチャ、タイル、スライス、マクロブロック、コーディング・ユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)等を含むことが可能である。パーサー(520)はまた、変換係数(例えば、フーリエ変換係数)、量子化パラメータ値、動きベクトル等のようなコーディングされたビデオ・シーケンス情報から抽出することも可能である。
【0041】
[0061] パーサー(520)は、シンボル(521)を生成するために、バッファ・メモリ(515)から受信したビデオ・シーケンスに対してエントロピー復号化/解析処理を実行することが可能である。
【0042】
[0062] シンボル(521)の再構成は、コーディングされたビデオ・ピクチャ又はその一部分のタイプ(インター及びイントラ・ピクチャ、インター及びイントラ・ブロック)及びその他の要因に応じて、複数の異なる処理又は機能ユニットを含むことが可能である。どのユニットがどのように包含されるかは、コーディングされたビデオ・シーケンスからパーサー(520)によって解析されたサブグループ制御情報によって制御されることが可能である。パーサー(520)と以下の複数の処理又は機能ユニットとの間のこのようなサブグループ制御情報の流れは、明確性のために描かれていない。
【0043】
[0063] 既に述べた機能ブロックを超えて、ビデオ・デコーダ(510)は、以下に説明するような複数の機能ユニットに概念的に細分されることが可能である。商業的制約の下で動作する実用的な実装では、これらのユニットの多くは互いに密接に相互作用し、少なくとも部分的に互いに統合されることが可能である。しかしながら、開示される対象事項の様々な機能を説明する目的のために、機能ユニットへの概念的な細分が以下の開示で採用されている。
【0044】
[0064] 第1のユニットは、スケーラ/逆変換ユニット(551)であってもよい。スケーラ/逆変換ユニット(551)は、量子化された変換係数だけでなく制御情報(どのタイプの逆変換を使用するか、ブロック・サイズ、量子化因子/パラメータ、量子化スケーリング行列などを含む)も、パーサー(520)からシンボル(521)として受信することができる。スケーラ/逆変換ユニット(551)は、アグリゲータ(555)に入力されることが可能なサンプル値を含むブロックを出力することが可能である。
【0045】
[0065] 場合によっては、スケーラ/逆変換(551)の出力サンプルは、イントラ・コーディングされたブロック、即ち、以前に再構成されたピクチャからの予測情報を使用しないが、現在のピクチャの以前に再構成された部分からの予測情報を使用することは可能であるブロック、に関連する可能性がある。このような予測情報は、イントラ・ピクチャ予測ユニット(552)によって提供することが可能である。場合によっては、イントラ・ピクチャ予測ユニット(552)は、現在ピクチャ・バッファ(558)において既に再構成されて記憶されている周囲のブロックの情報を使用して、再構成中のブロックと同じサイズ及び形状のブロックを生成することができる。現在ピクチャ・バッファ(558)は、例えば、部分的に再構成された現在のピクチャ及び/又は完全に再構成された現在のピクチャをバッファリングする。アグリゲータ(555)は、場合によっては、サンプル毎に、イントラ予測ユニット(552)が生成した予測情報を、スケーラ/逆変換ユニット(551)によって提供されるような出力サンプル情報に加えることができる。
【0046】
[0066] それ以外の場合には、スケーラ/逆変換ユニット(551)の出力サンプルは、インター・コーディングされた、動き補償される可能性のあるブロックに関連する可能性がある。このような場合において、動き補償予測ユニット(553)は、インター・ピックチャ予測に使用されるサンプルを取り出すために、参照ピクチャ・メモリ(557)にアクセスすることが可能である。ブロックに関連するシンボル(521)に従って、取り出されたサンプルを動き補償した後に、これらのサンプルは、アグリゲータ(555)によって、スケーラ/逆変換ユニット(551)の出力に加えられ(ユニット551の出力は、残差サンプル又は残差信号と呼ばれてもよい)、出力サンプル情報を生成する。動き補償予測ユニット(553)が予測サンプルをフェッチする元である参照ピクチャ・メモリ(557)内のアドレスは、例えばX,Y成分(シフト)、及び参照ピクチャ成分(時間)を有することが可能なシンボル(521)の形態で、動き補償予測ユニット(553)にとって利用可能な動きベクトルによって制御されることが可能である。また、動き補償は、サブ・サンプルの正確な動きベクトルが使用される場合に、参照ピクチャ・メモリ(557)から取り出されるようなサンプル値の補間を含む可能性があり、また、動きベクトル予測の仕組み等に関連していてもよい。
【0047】
[0067] アグリゲータ(555)の出力サンプルは、ループ・フィルタ・ユニット(556)内の様々なループ・フィルタリング技術の影響を受けることが可能である。ビデオ圧縮技術は、コーディングされたビデオ・シーケンス(コーディングされたビデオ・ビットストリームとも呼ばれる)に含まれるパラメータであって、パーサー(520)からのシンボル(521)としてループ・フィルタ・ユニット(556)にとって利用可能にされるパラメータ、によって制御されるループ内フィルタ技術を含むことが可能であるが、ループ内フィルタ技術は、コーディングされたピクチャ又はコーディングされたビデオ・シーケンスの(復号化の順番で)以前の部分の復号化の間に取得されたメタ情報に応答することが可能であるとともに、以前に再構成されたループ・フィルタリングされたサンプル値にも応答することが可能である。以下に更に詳細に説明するように、幾つかのタイプのループ・フィルタが、様々な順序でループ・フィルタ・ユニット556の一部として含まれる可能性がある。
【0048】
[0068] ループ・フィルタ・ユニット(556)の出力は、レンダリング・デバイス(512)に出力されることが可能であるだけでなく、将来のインター・ピクチャ予測に使用するために参照ピクチャ・メモリ(557)に格納することも可能なサンプル・ストリームであるとすることが可能である。
【0049】
[0069] 所定のコーディングされたピクチャは、いったん完全に再構成されると、将来のインター・ピクチャ予測のための参照ピクチャとして使用することが可能である。例えば、現在のピクチャに対応するコーディングされたピクチャが完全に再構成され、コーディングされたピクチャが(例えば、パーサー(520)によって)参照ピクチャとして識別されると、現在ピクチャ・バッファ(558)は参照ピクチャ・メモリ(557)の一部となることが可能であり、以後のコーディングされたピクチャの再構成を開始する前に、新鮮な現在ピクチャ・バッファが、再割り当てされることが可能である。
【0050】
[0070] ビデオ・デコーダ(510)は、ITU-T Rec.H.265のような規格で採用されている所定のビデオ圧縮技術に従って復号化動作を実行することが可能である。コーディングされたビデオ・シーケンスが、ビデオ圧縮技術又は規格のシンタックスと、ビデオ圧縮技術又は規格で文書化されているようなプロファイルとの両方に従うという意味で、コーディングされたビデオ・シーケンスは、使用されているビデオ圧縮技術又は規格によって指定されたシンタックスに準拠することが可能である。具体的には、プロファイルは、特定のツールを、そのプロファイルの下で使用できる唯一のツールとして、ビデオ圧縮技術又は規格で使用可能な全てのツールの中から選択することが可能である。また、規格に準拠するために、コーディングされたビデオ・シーケンスの複雑さは、ビデオ圧縮技術又は規格のレベルによって定義される範囲内にある可能性がある。場合によっては、そのレベルは、最大ピクチャ・サイズ、最大フレーム・レート、最大再構成サンプル・レート(例えば、毎秒メガサンプルの単位で測定される)、最大参照ピクチャ・サイズ等を制限する。レベルによって設定される限界は、場合によっては、コーディングされたビデオ・シーケンスでシグナリングされるHRDバッファ管理のための仮想参照デコーダ(Hypothetical Reference Decoder,HRD)仕様及びメタデータによって更に制限される可能性がある。
【0051】
[0071] 一部の例示的な実施形態では、受信機(531)は、符号化されたビデオとともに追加的(冗長的)なデータを受信する可能性がある。追加的なデータは、コーディングされたビデオ・シーケンスの一部として含まれる可能性がある。追加的なデータは、データを適切に復号化するため、及び/又は、元のビデオ・データをより正確に再構成するために、ビデオ・デコーダ(510)によって使用されてもよい。追加的なデータは、例えば、時間、空間、又は信号雑音比(SNR)エンハンスメント・レイヤ、冗長スライス、冗長ピクチャ、前方誤り訂正コード等の形態におけるものとすることが可能である。
【0052】
[0072] 図6は、本開示の例示的な実施形態によるビデオ・エンコーダ(603)のブロック図を示す。ビデオ・エンコーダ(603)は、電子デバイス(620)に含まれていてもよい。電子デバイス(620)は、送信機(640)(例えば、送信回路)を含んでいてもよい。ビデオ・エンコーダ(603)は、図4の例におけるビデオ・エンコーダ(403)の代わりに使用することが可能である。
【0053】
[0073] ビデオ・エンコーダ(603)は、ビデオ・エンコーダ(603)によってコーディングされることになるビデオ画像を捕捉することが可能なビデオ・ソース(601)(図6の例では電子デバイス(620)の一部ではないもの)から、ビデオ・サンプルを受信することが可能である。別の例では、ビデオ・ソース(601)は、電子デバイス(620)の一部として実現されてもよい。
【0054】
[0074] ビデオ・ソース(601)は、任意の適切なビット深度(例えば、8ビット、10ビット、12ビット、...)、任意の色空間(例えば、BT.601 YCrCB、RGB、...)、及び任意の適切なサンプリング構造(例えば、YCrCb 4:2:0、YCrCb 4:4:4)であるとすることが可能なデジタル・ビデオ・サンプル・ストリームの形態で、ビデオ・エンコーダ(603)によってコーディングされることになるソース・ビデオ・シーケンスを提供することが可能である。メディア・サービング・システムにおいて、ビデオ・ソース(601)は、事前に準備されたビデオを記憶することが可能なストレージ・デバイスであってもよい。ビデオ・カンファレンス・システムでは、ビデオ・ソース(601)は、ローカルな画像情報をビデオ・シーケンスとして捕捉するカメラであってもよい。ビデオ・データは、シーケンスで眺めた場合に動きを伝える複数の個々のピクチャ又は画像として提供されてもよい。ピクチャそれ自体は、ピクセルの空間アレイとして組織されることが可能であり、ここで、各ピクセルは、使用中のサンプリング構造、色空間などに応じて、1つ以上のサンプルを含むことが可能である。当業者は、ピクセルとサンプルとの間の関係を容易に理解することが可能である。以下の説明は、サンプルに焦点を当てている。
【0055】
[0075] 一部の例示的な実施形態によれば、ビデオ・エンコーダ(603)は、リアルタイムに、又はアプリケーションによって要求される他の任意の時間制約の下で、ソース・ビデオ・シーケンスのピクチャを、コーディングされたビデオ・シーケンス(643)にコーディングして圧縮することが可能である。適切なコーディング速度を強いることは、コントローラ(650)の1つの機能である。幾つかの実施形態において、コントローラ(650)は、以下で説明されるように他の機能ユニットに機能的に結合されてそれらを制御することが可能である。その結合は明確性のために描かれていない。コントローラ(650)によって設定されるパラメータは、レート制御関連パラメータ(ピクチャ・スキップ、量子化器、レート歪最適化技術のラムダ値、...)、ピクチャ・サイズ、ピクチャ・グループ(GOP)レイアウト、最大動きベクトル探索範囲などを含むことが可能である。コントローラ(650)は、特定のシステム設計のために最適化されたビデオ・エンコーダ(603)に関連する他の適切な機能を有するように構成されることが可能である。
【0056】
[0076] 一部の例示的な実施形態では、ビデオ・エンコーダ(603)は、コーディング・ループで動作するように構成されることが可能である。極端に単純化された説明として、一例では、コーディング・ループは、ソース・コーダ(630)(例えば、コーディングされるべき入力ピクチャ及び参照ピクチャに基づいて、シンボル・ストリームのようなシンボルを生成する責任があるもの)と、ビデオ・エンコーダ(603)に組み込まれた(ローカル)デコーダ(533)とを含むことが可能である。たとえ内蔵デコーダ633がエントロピー・コーディングすることなくソース・コーダ630によって、コーディングされたビデオ・ストリームを処理したとしても、デコーダ(633)は、(リモート)デコーダが生成するのと同様な方法で、サンプル・データを生成するためにシンボルを再構成する(エントロピー・コーディングにおけるシンボルとコーディングされたビデオ・ビットストリームとの間の任意の圧縮は、開示される対象事項で考慮されるビデオ圧縮技術ではロスレスである可能性があるからである)。再構成されたサンプル・ストリーム(サンプル・データ)は、参照ピクチャ・メモリ(634)に入力される。シンボル・ストリームの復号化は、デコーダの位置(ローカル又はリモート)に依存しないビット・イグザクト(bit-exact)な結果をもたらすので、参照ピクチャ・メモリ(634)内の内容もまた、ローカル・エンコーダとリモート・エンコーダとの間でビット・イグザクトである。言い換えると、エンコーダの予測部は、デコーダが復号化中に予測を使用する場合に「見る(see)」と思われるものと厳密に同じサンプル値を、参照ピクチャ・サンプルとして「見る」。参照ピクチャ同期のこの基本原理(例えばチャネル・エラーに起因して同期性が維持できない場合には、結果としてドリフトが生じる)は、コーディング品質を改善するために使用されている。
【0057】
[0077] 「ローカル」デコーダ(633)の動作は、図5に関連して上記で詳細に既に説明されているビデオ・デコーダ(510)のような「リモート」デコーダのものと同じであるとすることが可能である。しかしながら、図5も簡単に参照すると、シンボルが利用可能であり、且つエントロピー・コーダー(645)及びパーサー(520)によるシンボルの、コーディングされたビデオ・シーケンスへの符号化/復号化はロスレスであるとすることが可能であるので、バッファ・メモリ(515)及びパーサー(520)を含むビデオ・デコーダ(510)のエントロピー復号化部は、エンコーダにおけるローカル・デコーダ(633)では完全には実現されない可能性がある。
【0058】
[0078] この時点で行うことができる洞察は、デコーダ内にのみ存在し得る解析/エントロピー復号化を除く任意のデコーダ技術もまた、対応するエンコーダ内に実質的に同一の機能形態で存在する必要があり得るということである。この理由のため、開示される対象事項は、エンコーダのデコーダ部分と関連するデコーダ動作にしばしば焦点を合わせることが可能である。エンコーダ技術の説明は、包括的に説明されたデコーダ技術の逆であるので、省略することが可能である。特定のエリア又は態様においてのみ、エンコーダについてのより詳細な説明が以下で行われる。
【0059】
[0079] 動作中に、幾つかの例示的な実装では、ソース・コーダ(630)は、「参照ピクチャ」として指定されていたビデオ・シーケンスからの1つ以上の以前にコーディングされたピクチャを参照して、入力ピクチャを予測してコーディングする、動き補償された予測コーディングを実行することが可能である。このようにして、コーディング・エンジン(632)は、入力ピクチャのピクセル・ブロックと、入力ピクチャに対する予測参照として選択されることが可能な参照ピクチャのピクセル・ブロックとの間の、クロマ・チャネルにおける差分(又は残差)をコーディングする。用語「残差(residue)」及びその派生形「残余(residual)」は可換に使用されてもよい。
【0060】
[0080] ローカル・ビデオ・デコーダ(633)は、ソース・コーダー(630)によって生成されたシンボルに基づいて、参照ピクチャとして指定されることが可能なピクチャのコーディングされたビデオ・データを復号化することが可能である。コーディング・エンジン(632)の動作は、有利なことに、非ロスレス・プロセスであってもよい。コーディングされたビデオ・データがビデオ・デコーダ(図6には示されていない)で復号化されることが可能である場合、再構成されたビデオ・シーケンスは、典型的には、幾らかのエラーを伴うソース・ビデオ・シーケンスのレプリカである可能性がある。ローカル・ビデオ・デコーダ(633)は、参照ピクチャに関してビデオ・デコーダによって実行されることが可能な復号化プロセスを繰り返し、そのプロセスは、再構成された参照ピクチャが、参照ピクチャ・キャッシュ(634)に記憶されることを引き起こすことが可能である。このように、ビデオ・エンコーダ(603)は、遠方端の(リモート)ビデオ・デコーダによって得られる再構成された参照ピクチャとして、共通の内容を有する再構成された参照ピクチャのコピーを、局所的に記憶することが可能である(伝送エラーはないものとする)。
【0061】
[0081] 予測器(635)は、コーディング・エンジン(632)のために予測検索を行うことが可能である。即ち、コーディングされるべき新しいピクチャについて、予測器(635)は、サンプル・データ(候補の参照ピクセル・ブロックのようなもの)又は所定のメタデータ(参照ピクチャ動きベクトル、ブロック形状など)について、参照ピクチャ・メモリ(534)を検索することが可能であり、これらは、新しいピクチャについての適切な予測参照として役立つ可能性がある。予測器(535)は、適切な予測参照を見出すために、サンプル・ブロック-ピクセル・ブロック・ベースで動作することが可能である。場合によっては、予測器(635)によって得られた探索結果によって決定されるように、入力ピクチャは、参照ピクチャ・メモリ(634)に記憶された複数の参照ピクチャから引き出される予測参照を有する可能性がある。
【0062】
[0082] コントローラ(650)は、例えば、ビデオ・データを符号化するために使用されるパラメータ及びサブグループ・パラメータの設定を含む、ソース・コーダ(630)のコーディング動作を管理することが可能である。
【0063】
[0083] 前述の機能ユニットの全ての出力は、エントロピー・コーダー(645)におけるエントロピー・コーディングを施されることが可能である。エントロピー・コーダー(645)は、ハフマン・コーディング、可変長コーディング、算術コーディング等のような技術に従って、シンボルのロスレス圧縮によって、種々の機能ユニットによって生成されたシンボルを、コーディングされたビデオ・シーケンスに変換する。
【0064】
[0084] 送信機(640)は、エントロピー・コーダー(645)によって作成されるようなコーディングされたビデオ・シーケンスをバッファリングして、通信チャネル(660)を介する伝送のための準備を行うことが可能であり、通信チャネル(660)は、符号化されたビデオ・データを記憶する記憶デバイスへのハードウェア/ソフトウェア・リンクであってもよい。送信機(640)は、ビデオ・エンコーダ(603)からのコーディングされたビデオ・データを、例えばコーディングされたオーディオ・データ及び/又は補助的なデータ・ストリーム(ソースは不図示)のような、伝送されるべき他のデータと併合(マージ)することが可能である。
【0065】
[0085] コントローラ(650)は、ビデオ・エンコーダ(603)の動作を管理することが可能である。コーディングの間に、コントローラ(650)は、コーディングされたピクチャの各々に、特定のコーディングされたピクチャ・タイプを割り当てることが可能であり、これは、各ピクチャに適用されることが可能なコーディング技術に影響を及ぼす可能性がある。例えば、ピクチャはしばしば次のピクチャ・タイプのうちの1つとして割り当てられてもよい。
【0066】
[0086] イントラ・ピクチャ(Iピクチャ)は、シーケンス内の如何なる他のピクチャも予測のソースとして使用せずに、符号化及び復号化されることが可能なものであるとすることが可能である。幾つかのビデオ・コーデックは、例えば、独立デコーダ・リフレッシュ(Independent Decoder Refresh,“IDR”)ピクチャを含む異なるタイプのイントラ・ピクチャを許容する。当業者は、Iピクチャのこれらの変形例、並びにそれら各自の用途及び特徴を認識している。
【0067】
[0087] 予測ピクチャ(Pピクチャ)は、各ブロックのサンプル値を予測するために、高々1つの動きベクトル及び参照インデックスを用いるイントラ予測又はインター予測を用いて符号化及び復号化されることが可能なものであるとすることが可能である。
【0068】
[0088] 双-方向予測ピクチャ(Bピクチャ)は、各ブロックのサンプル値を予測するために、高々2つの動きベクトル及び参照インデックスを用いるイントラ予測又はインター予測を用いて符号化及び復号化されることが可能なものであるとすることが可能である。同様に、複数の予測ピクチャは、1つのブロックの再構成のために、2つより多い参照ピクチャ及び関連するメタデータを使用することが可能である。
【0069】
[0089] ソース・ピクチャは、通常、複数のサンプル・コーディング・ブロックに(例えば、4x4、8x8、4x8、又は16x16サンプルのブロックにそれぞれ)空間的に細分され、ブロック毎にコーディングされることが可能である。ブロックは、ブロックそれぞれのピクチャに適用されるコーディング割り当てによって決定されるように、他の(既にコーディングされた)ブロックを参照して予測的にコーディングされることが可能である。例えば、Iピクチャのブロックは、非予測的にコーディングされてもよいし、又は、それらは同じピクチャの既にコーディングされたブロックを参照して予測的にコーディングされてもよい(空間予測又はイントラ予測)。Pピクチャのピクセル・ブロックは、以前にコーディングされた1つの参照ピクチャを参照して、空間的な予測又は時間的な予測により予測的にコーディングされてもよい。Bピクチャのブロックは、1つ又は2つの以前にコーディングされた参照ピクチャを参照して、空間的な予測又は時間的な予測により予測的にコーディングされてもよい。ソース・ピクチャ又は中間的な処理中のピクチャは、他の目的のために、他のタイプのブロックに細分されてもよい。コーディング・ブロック及びその他のタイプのブロックの分割は、以下で更に詳細に説明されるものと同じ方法に従っても従わなくてもよい。
【0070】
[0090] ビデオ・エンコーダ(603)は、ITU-T Rec.H.265のような所定のビデオ・コーディング技術又は規格に従ってコーディング動作を行うことが可能である。この動作において、ビデオ・エンコーダ(603)は、入力ビデオ・シーケンスにおける時間的及び空間的な冗長性を活用する予測コーディング動作を含む種々の圧縮動作を実行することが可能である。コーディングされたビデオ・データは、使用されるビデオ・コーディング技術又は規格によって指定されるシンタックスに相応に準拠することが可能である。
【0071】
[0091] 一部の例示的な実施形態では、送信機(640)は、符号化されたビデオとともに追加データを伝送することが可能である。ソース・コーダ(630)は、そのようなデータを、コーディングされたビデオ・シーケンスの一部として含むことが可能である。追加データは、時間的/空間的/SNRエンハンスメント・レイヤ、その他の形式の冗長データ(冗長ピクチャ及びスライス、SEIメッセージ、VUIパラメータ・セット・フラグメント等)を含む可能性がある。
【0072】
[0092] ビデオは、時間シーケンスにおける複数のソース・ピクチャ(ビデオ・ピクチャ)として捕捉されることが可能である。イントラ・ピクチャ予測(しばしば、イントラ予測と略される)は、所与のピクチャにおける空間相関を利用しており、インター・ピクチャ予測は、ピクチャ間の時間的又はその他の相関を利用する。例えば、現在のピクチャとして言及される符号化/復号化の下にある特定のピクチャは、ブロックにパーティション化されてもよい。現在のピクチャ内のブロックは、ビデオにおいて以前にコーディングされ且つ依然としてバッファリングされている参照ピクチャの中の参照ブロックに類似する場合、動きベクトルと呼ばれるベクトルによってコーディングされることが可能である。動きベクトルは、参照ピクチャ内の参照ブロックを指し、複数の参照ピクチャが使用される場合には、参照ピクチャを識別する第3の次元を有することが可能である。
【0073】
[0093] 一部の例示的な実施形態では、インター・ピクチャ予測に双-予測技術を用いることが可能である。このような双-予測技術によれば、ビデオ内で現在のピクチャに対して復号化順序で両方とも先行している(ただし、表示順序ではそれぞれ過去及び将来におけるものである可能性がある)第1の参照ピクチャ及び第2の参照ピクチャのような2つの参照ピクチャが使用される。現在のピクチャ内のブロックは、第1の参照ピクチャ内の第1の参照ブロックを指す第1の動きベクトルと、第2の参照ピクチャ内の第2の参照ブロックを指す第2の動きベクトルとによって、コーディングされることが可能である。ブロックは、第1の参照ブロックと第2の参照ブロックとの組み合わせによって一緒に予測されることが可能である。
【0074】
[0094] 更に、コーディング効率を改善するために、インター・ピクチャ予測にマージ・モード技術を用いることが可能である。
【0075】
[0095] 本開示の幾つかの実施形態によれば、インター・ピクチャ予測及びイントラ・ピクチャ予測のような予測は、ブロックの単位で実行される。例えば、ビデオ・ピクチャのシーケンス中のピクチャは、圧縮のためにコーディング・ツリー・ユニット(CTU)にパーティション化され、ピクチャ内のCTUは、64x64ピクセル、32x32ピクセル、又は16x16ピクセルのような同じサイズを有することが可能である。一般に、CTUは、1つのルマCTBと2つのクロマCTBである3つの並列的なコーディング・ツリー・ブロック(CTB)を含むことが可能である。各CTUは、1つ又は複数のコーディング・ユニット(CU)に再帰的に4分木分割されることが可能である。例えば、64x64ピクセルのCTUは、64x64ピクセルのCU1個、32x32ピクセルのCU4個に分割されることが可能である。1つ以上の32x32ブロックの各々は、16x16ピクセルの4個のCUに更に分割されることが可能である。幾つかの例示的な実施形態では、各CUは、インター予測タイプ又はイントラ予測タイプのような種々の予測タイプの中でCUの予測タイプを決定するために、符号化の際に分析されることが可能である。CUは、時間的及び/又は空間的な予測可能性に依存して1つ以上の予測ユニット(PU)に分割されることが可能である。一般に、各PUはルマ予測ブロック(PB)と2つのクロマPBを含む。一実施形態では、コーディング(符号化/復号化)における予測処理は、予測ブロックの単位で実行される。CUのPU(又は異なるカラー・チャネルのPB)への分割は、様々な空間パターンで実行されることが可能である。例えば、ルマ又はクロマPBは、8x8ピクセル、16x16ピクセル、8x16ピクセル、16x8ピクセル等のような、ピクセルに対する値(例えば、ルマ値)のマトリクスを含むことが可能である。
【0076】
[0096] 図7は本開示の別の実施形態によるビデオ・エンコーダ(703)の図を示す。ビデオ・エンコーダ(703)は、ビデオ・ピクチャのシーケンスにおける現在のビデオ・ピクチャ内のサンプル値の処理ブロック(例えば、予測ブロック)を受信し、処理ブロックを、コーディングされたビデオ・シーケンスの一部であるコーディングされたピクチャに符号化するように構成されている。例えばビデオ・エンコーダ(703)は、図4の例のビデオ・エンコーダ(403)の代わりに使用されることが可能である。
【0077】
[0097] 例えば、ビデオ・エンコーダ(703)は、8x8サンプルの予測ブロック等のような処理ブロックのサンプル値のマトリクスを受信する。ビデオ・エンコーダ(703)は、次いで、イントラ・モード、インター・モード、又は双-予測モードを使用して、例えばレート歪最適化(rate-distortion optimization,RDO)を使用して、処理ブロックが最良にコーディングされるかどうかを決定する。処理ブロックがイントラ・モードでコーディングされるべきであると決定された場合、ビデオ・エンコーダ(703)は、処理ブロックを、コーディングされたピクチャに符号化するためにイントラ予測技術を使用することが可能であり;また、処理ブロックがインター・モード又は双-予測モードでコーディングされるべきであると決定された場合、ビデオ・エンコーダ(703)は、処理ブロックを、コーディングされたピクチャに符号化するために、インター予測技術又は双-予測技術をそれぞれ使用することが可能である。一部の例示的な実施形態では、マージ・モードはインター・ピクチャ予測のサブモードとして使用される可能性があり、その場合、動きベクトルは、予測子外部のコーディングされた動きベクトル成分の恩恵なしに、1つ以上の動きベクトル予測子から導出される。一部の他の例示的な実施形態では、対象ブロックに適用可能な動きベクトル成分が存在する可能性がある。従って、ビデオ・エンコーダ(703)は、処理ブロックの予測モードを決定するために、モード決定モジュールのような図7で明示的には示されていないコンポーネントを含む可能性がある。
【0078】
[0098] 図7の例では、ビデオ・エンコーダ(703)は、インター・エンコーダ(730)、イントラ・エンコーダ(722)、残差計算器(723)、スイッチ(726)、残差エンコーダ(724)、汎用コントローラ(721)、及びエントロピー・エンコーダ(725)を、図7の例示的な配置で示されるように共に結合して含んでいる。
【0079】
[0099] インター・エンコーダ(730)は、現在のブロック(例えば、処理ブロック)のサンプルを受信し、そのブロックを、参照ピクチャ内の1つ以上の参照ブロック(例えば、表示の順序で以前のピクチャ及び以後のピクチャ内のブロック)と比較し、インター予測情報(例えば、インター符号化技術による冗長情報の説明、動きベクトル、マージ・モード情報)を生成し、任意の適切な技術を用いてインター予測情報に基づいて、インター予測結果(例えば、予測ブロック)を計算するように構成される。幾つかの例では、参照ピクチャは、図6の例示的なエンコーダ620に組み込まれている復号化ユニット633(以下で更に詳細に説明されるような図7の残差デコーダ728として示されるようなもの)を使用して、符号化されたビデオ情報に基づいて復号化された復号化済み参照ピクチャである。
【0080】
[0100] イントラ・エンコーダ(722)は、現在のブロック(例えば、処理ブロック)のサンプルを受信し、そのブロックを、同じピクチャ内で既にコーディングされたブロックと比較し、量子化された係数を変換後に生成し、場合によってはイントラ予測情報(例えば、1つ以上のイントラ符号化技術に従ったイントラ予測方向情報)も生成するように構成される。イントラ・エンコーダ(722)は、同じピクチャ内のイントラ予測情報及び参照ブロックに基づいて、イントラ予測結果(例えば、予測ブロック)を計算することが可能である。
【0081】
[0101] 汎用コントローラ(721)は、一般的な制御データを決定し、一般的な制御データに基づいてビデオ・エンコーダ(703)の他のコンポーネントを制御するように構成されることが可能である。一例では、汎用コントローラ(721)は、ブロックの予測モードを決定し、その予測モードに基づいてスイッチ(726)に制御信号を提供する。例えば、予測モードがイントラ・モードである場合、汎用コントローラ(721)は、スイッチ(726)を制御して、残差計算器(723)による使用のためにイントラ・モード結果を選択し、且つエントロピー・エンコーダ(725)を制御して、イントラ予測情報を選択し、イントラ予測情報をビットストリームに含め;及び、ブロックの予測モードがインター・モードである場合、汎用コントローラ(721)は、スイッチ(726)を制御して、残差計算器(723)による使用のためにインター予測結果を選択し、且つエントロピー・エンコーダ(725)を制御して、インター予測情報を選択し、インター予測情報をビットストリームに含める。
【0082】
[0102] 残差計算器(723)は、受信ブロックと、イントラ・エンコーダ(722)又はインター・エンコーダ(730)から選択されたブロックに対する予測結果との間の差分(残差データ)を計算するように構成されることが可能である。残差エンコーダ(724)は、残差データを符号化して変換係数を生成するように構成されることが可能である。例えば、残差エンコーダ(724)は、残差データを空間ドメインから周波数ドメインへ変換して、変換係数を生成するように構成されてもよい。次いで、変換係数は、量子化された変換係数を得るために量子化処理を施される。様々な実施形態では、ビデオ・エンコーダ(703)はまた、残差デコーダ(728)も含む。残差デコーダ(728)は、逆変換を実行し、復号化された残差データを生成するように構成される。復号化された残差データは、イントラ・エンコーダ(722)及びインター・エンコーダ(730)によって適切に使用することが可能である。例えば、インター・エンコーダ(730)は、復号化された残差データ及びインター予測情報に基づいて、復号化されたブロックを生成することが可能であり、イントラ・エンコーダ(722)は、復号化された残差データ及びイントラ予測情報に基づいて、復号化されたブロックを生成することが可能である。復号化されたブロックは、復号化されたピクチャを生成するために適切に処理され、復号化されたピクチャは、メモリ回路(不図示)内でバッファリングされ、参照ピクチャとして使用することが可能である。
【0083】
[0103] エントロピー・エンコーダ(725)は、符号化されたブロックを含むようにビットストリームのフォーマットを設定し、エントロピー・コーディングを実行するように構成されることが可能である。エントロピー・エンコーダ(725)は、ビットストリームに様々な情報を含めるように構成される。例えば、エントロピー・エンコーダ(725)は、一般的な制御データ、選択された予測情報(例えば、イントラ予測情報又はインター予測情報)、残差情報、及びその他の適切な情報をビットストリームに含めるように構成されることが可能である。インター・モード又は双-予測モードの何れかのマージ・サブモードにおけるブロックをコーディングする場合に、残差情報は存在しない可能性がある。
【0084】
[0104] 図8は、本開示の別の実施形態による例示的なビデオ・デコーダ(810)の図を示す。ビデオ・デコーダ(810)は、コーディングされたビデオ・シーケンスの一部であるコーディングされたピクチャを受信し、コーディングされたピクチャを復号化して、再構成されたピクチャを生成するように構成される。一例では、ビデオ・デコーダ(810)は、図4の例におけるビデオ・デコーダ(410)の代わりに使用されてもよい。
【0085】
[0105] 図8の例では、ビデオ・デコーダ(810)は、エントロピー・デコーダ(871)、インター・デコーダ(880)、残差デコーダ(873)、再構成モジュール(874)、及びイントラ・デコーダ(872)を、図8の例示的な配置に示されるように共に結合して含んでいる。
【0086】
[0106] エントロピー・デコーダ(871)は、コーディングされたピクチャが構築される際のシンタックス要素を表す特定のシンボルを、コーディングされたピクチャから再構成するように構成されることが可能である。このようなシンボルは、例えば、ブロックがコーディングされるモード(例えば、イントラ・モード、インター・モード、双-予測モード、マージ・サブモード又は別のサブモード)、イントラ・デコーダ(872)又はインター・デコーダ(880)によって予測のために使用される特定のサンプル又はメタデータを識別することが可能な予測情報(例えば、イントラ予測情報又はインター予測情報)、残差情報(例えば、量子化された変換係数の形式におけるもの)等を含むことが可能である。一例において、予測モードがインター又は双-予測モードである場合には、インター予測情報がインター・デコーダ(880)に提供され;予測タイプがイントラ予測タイプである場合には、イントラ予測情報がイントラ・デコーダ(872)に提供される。残差情報は、逆量子化を施されることが可能であり、残差デコーダ(873)に提供される。
【0087】
[0107] インター・デコーダ(880)は、インター予測情報を受信し、インター予測情報に基づいてインター予測結果を生成するように構成されることが可能である。
【0088】
[0108] イントラ・デコーダ(872)は、イントラ予測情報を受信し、イントラ予測情報に基づいて予測結果を生成するように構成されることが可能である。
【0089】
[0109] 残差デコーダ(873)は、逆量子化を実行して非-量子化変換係数を抽出し、非-量子化変換係数を処理して残差を周波数ドメインから空間ドメインへ変換するように構成されることが可能である。残差デコーダ(873)はまた、特定の制御情報(量子化パラメータ(QP)を含む)も使用する可能性があり、その情報は、エントロピー・デコーダ(871)によって提供される可能性がある(これは、僅かな量の制御情報でしかない可能性があるので、データ経路は描かれていない)。
【0090】
[0110] 再構成モジュール(874)は、空間ドメインにおいて、残差デコーダ(873)による出力としての残差と、予測結果(場合によっては、インター又はイントラ予測モジュールによって出力されるもの)とを組み合わせて、再構成されたビデオの一部として、再構成されたピクチャの一部を形成する再構成されたブロックを形成するように構成されることが可能である。デブロッキング処理などのような適切な他の処理が、視覚的な品質を改善するために実行される可能性もあることに留意を要する。
【0091】
[0111] ビデオ・エンコーダ(403),(603),及び(703)、並びにビデオ・デコーダ(410),(510),及び(810)は、任意の適切な技術を用いて実現することが可能である。一部の例示的な実施形態では、ビデオ・エンコーダ(403),(603),及び(703)、並びにビデオ・デコーダ(410),(510),及び(810)は、1つ以上の集積回路を使用して実現することが可能である。別の実施形態では、ビデオ・エンコーダ(403),(603),及び(703)、並びにビデオ・デコーダ(410),(510),及び(810)は、ソフトウェア命令を実行する1つ以上のプロセッサを使用して実現することが可能である。
【0092】
[0112] 符号化及び復号化のためのブロック・パーティショニングに目を向けると、一般的なパーティショニングは、ベース・ブロックから開始する可能性があり、事前に定義されたルールセット、特定のパターン、パーティション・ツリー、又は何らかのパーティション構造若しくは方式に従うことが可能である。パーティショニングは階層的かつ再帰的であってもよい。以下に説明される例示的なパーティショニング手順又は他の手順のうちの何れか、又はそれらの組み合わせに従ってベース・ブロックを分割又はパーティショニン化した後に、パーティション又はコーディング・ブロックの最終的なセットを得ることができる。これらのパーティションの各々は、パーティショニング階層における様々なパーティショニング・レベルのうちの1つである可能性があり、様々な形状によるものである可能性がある。各パーティションは、コーディング・ブロック(CB)と呼ばれてもよい。以下で更に説明される様々な例示的なパーティショニングの実装に関し、結果として生じる各CBは、何らかの許容されるサイズ及びパーティショニング・レベルによるものである可能性がある。このようなパーティションはコーディング・ブロックと呼ばれ、なぜなら、それらは或る単位を形成し、その単位について何らかの基本的なコーディング/デコーディングの決定が行われる可能性があり、コーディング/デコーディング・パラメータは、最適化され、決定され、符号化されたビデオ・ビットストリームにおいてシグナリングされることが可能である。最終的なパーティションにおける最高レベル又は最深レベルは、ツリーのコーディング・ブロック・パーティション構造の深さを表す。コーディング・ブロックは、ルマ・コーディング・ブロック又はクロマ・コーディング・ブロックであってもよい。各カラーのCBツリー構造は、コーディング・ブロック・ツリー(CBT)と呼ばれる可能性がある。
【0093】
[0113] 全てのカラー・チャネルのコーディング・ブロックは、コーディング・ユニット(CU)としてまとめて呼ばれる可能性がある。全てのカラー・チャネルの階層構造は、コーディング・ツリー・ユニット(CTU)としてまとめて呼ばれる可能性がある。CTU内の様々なカラー・チャネルのパーティショニング・パターン又は構造は、同じであってもなくてもよい。
【0094】
[0114] 一部の実装では、ルマ及びクロマ・チャネルに使用されるパーティション・ツリー方式又は構造は、同じである必要はない可能性がある。換言すると、ルマ及びクロマ・チャネルは、別々のコーディング・ツリー構造又はパターンを有する可能性がある。更に、ルマ及びクロマ・チャネルが、同一の又は相違するコーディング・パーティション・ツリー構造及び実際のコーディング・パーティション・ツリー構造を使用するかどうかは、コーディングされるスライスがP、B、又はIスライスであるかどうかに依存する可能性がある。例えば、Iスライスの場合、クロマ・チャネルとルマ・チャネルは、別々のコーディング・パーティション・ツリー構造又はコーディング・パーティション・ツリー構造モードを有する可能性があるが、P又はBスライスの場合、ルマ及びクロマ・チャネルは同じコーディング・パーティション・ツリー方式を共有する可能性がある。 別々のコーディング・パーティション・ツリー構造又はモードが適用される場合、ルマ・チャネルは或るコーディング・パーティション・ツリー構造によって、CBsにパーティション化され、クロマ・チャネルは別のコーディング・パーティション・ツリー構造によって、クロマCBsにパーティション化される可能性がある。
【0095】
[0115] 一部の例示的な実装では、所定のパーティショニング・パターンが、ベース・ブロックに適用される可能性がある。図9に示されるように、例示的な4ウェイ・パーティション・ツリーは、第1の事前に定義されたレベル(例えば、ベース・ブロック・サイズとして、64x64ブロック・レベル又はその他のサイズ)から開始してもよく、ベース・ブロックは、事前に定義された最下位レベル(例えば、4x4レベル)まで階層的に下方にパーティション化されてもよい。例えば、ベース・ブロックは、902,904,906,及び908で示される4つの事前に定義されたパーティショニング・オプション又はパターンに従うことが可能であり、Rとして指定されるパーティションは再帰的なパーティショニングを許容されており、再帰的なパーティショニングでは、図9に示されるような同じパーティション・オプションが、最下位レベル(例えば、4x4レベル)まで、より低いスケールで繰り返される可能性がある。一部の実装では、図9のパーティショニング方式に、追加の制限が適用される可能性がある。図9の実装では、長方形のパーティション(例えば、1:2/2:1の長方形のパーティション)が許容される可能性があるが、それらは再帰的であることを許容されない可能性がある一方、正方形パーティションは再帰的であることを許容される。必要に応じて再帰性を伴う図9に続くパーティショニングは、コーディング・ブロックの最終的なセットを生成する。コーディング・ツリーの深さが、ルート・ノード又はルート・ブロックからの分割深度を示すために、更に 定義されてもよい。例えば、ルート・ノード又はルート・ブロック、例えば64x64ブロックのコーディング・ツリー深度は0に設定されてもよく、ルート・ブロックが図9に従って1回更に分割された後に、コーディング・ツリー深度は1つだけ増やされる。64x64ベース・ブロックから4x4の最小パーティションまでの最大又は最深レベルは、上記の方式については(レベル0から開始して)4となる。このようなパーティショニング方式は、1つ以上のカラー・チャネルに適用されてもよい。各々のカラー・チャネルは、図9の方式に従って独立にパーティショニン化されてもよい(例えば、予め定義されたパターンのうちのパーティショニング・パターン又はオプションが、各々の階層レベルにおける各々のカラー・チャネルに対して独立して決定されてもよい)。代替的に、2つ以上のカラー・チャネルが、図9の同じ階層パターン・ツリーを共有してもよい(例えば、各々の階層レベルでの2つ以上のカラー・チャネルに対して、事前に定義されたパターンのうちの同じパーティショニング・パターン又はオプションが選択されてもよい)。
【0096】
[0116] 図10は、再帰的なパーティショニングを許容してパーティショニング・ツリーを形成する、別の例示的な事前に定義されたパーティショニング・パターンを示す。図10に示されるように、例示的な10ウェイ・パーティショニング構造又はパターンが、事前に定義されていてもよい。ルート・ブロックは、事前に定義されたレベルから(例えば、128x128レベル、又は64s64レベルにおいけるベース・ブロックから)開始してもよい。図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の矩形パーティションは何れも更には細分されるようには許されない。コーディング・ツリー深度は、ルート・ノード又はルート・ブロックからの分割深度を示すために更に定義されてもよい。例えば、ルート・ノード又はルート・ブロック(例えば、128x128ブロック)のコーディング・ツリー深度は0に設定されてもよく、ルート・ブロックが図10に従って1回更に分割された後に、コーディング・ツリー深度は1つだけ増やされる。一部の実装では、1010の全正方形パーティションのみが、図10のパターンに続くパーティショニング・ツリーの次のレベルへの再帰的パーティショニングに許可されてもよい。換言すると、再帰的パーティショニングは、T型パターン1002,1004,1006,及び1008のうちの正方形パーティションには許可されない場合がある。必要に応じて再帰性を伴う図10に続くパーティショニング手順は、コーディング・ブロックの最終的なセットを生成する。このような方式は、1つ以上のカラー・チャネルに適用されてもよい。一部の実装では、8x8レベル以下のパーティションの使用に対して、より多くの柔軟性が追加されてもよい。例えば、2x2クロマ・インター予測が特定の場合に使用されてもよい。
【0097】
[0117] ブロック・パーティショニングをコーディングするための一部の他の例示的な実装では、ベース・ブロック又は中間ブロックを、四分木パーティションに分割するために、四分木構造が使用される可能性がある。このような四分木分割は、任意の正方形状のパーティションに対して階層的かつ再帰的に適用されてもよい。ベース・ブロック又は中間ブロック又はパーティションが更に四分木分割されるかどうかは、ベース・ブロック又は中間ブロック/パーティションの様々な局所的な特性に適合させることが可能である。ピクチャ境界における四分木パーティショニングは、更に適応される可能性がある。例えば、暗黙的な四分木分割がピクチャ境界で実行されて、サイズがピクチャ境界に適合するまでブロックが四分木分割を維持するようにしてもよい。
【0098】
[0118] 一部の他の例示的な実装では、ベース・ブロックからの階層的なバイナリ・パーティショニングが使用される可能性がある。このような方式の場合、ベース・ブロック又は中間レベル・ブロックは、2つのパーティションに分割される可能性がある。バイナリ・パーティショニングは水平方向でも垂直方向でもよい。例えば、水平バイナリ・パーティショニングは、ベース・ブロック又は中間ブロックを、等しい左右のパーティションに分割することが可能である。同様に、垂直バイナリ・パーティショニングは、ベース・ブロック又は中間ブロックを、等しい上下のパーティションに分割することが可能である。このようなバイナリ・パーティショニングは階層的かつ再帰的であってもよい。ベース・ブロック又は中間ブロックの各々において、バイナリ・パーティショニング方式が続くべきであるかどうか、そして、その方式が更に続く場合、水平又は垂直のバイナリ・パーティショニングが使用されるべきかどうかの決定が行われてもよい。一部の実装では、更なるパーティショニングは、(一方又は両方の次元において)予め定義された最小パーティション・サイズで停止してもよい。代替的に、ベース・ブロックからの事前に定義されたパーティショニング・レベル又は深度に到達した場合に、更なるパーティショニングを停止してもよい。一部の実装では、パーティションのアスペクト比が制限される場合がある。例えば、パーティションのアスペクト比は1:4より小さくならない場合がある(又は4:1より大きくならない場合がある)。このように、垂直_対_水平のアスペクト比が4:1である垂直ストリップ・パーティションは、垂直方向に上側パーティションと下側パーティションに更に2分割されるだけであってもよく、それぞれ2:1という垂直_対_水平アスペクト比を有する。
【0099】
[0119] 更に他の一部の例では、図13に示されるように、ベース・ブロック又は何らの中間ブロックをパーティション化するために、ターナリー・パーティショニング方式が使用されてもよい。ターナリー・パターンは、図13の1302に示されるように垂直方向に、又は図13の1304に示されるように水平方向に実現されてもよい。図13の例示的な分割比は、垂直方向又は水平方向の何れについても、1:2:1として示されているが、他の比が事前に定義されていてもよい。一部の実装では、2つ以上の異なる比が事前に定義されてもよい。このようなターナリー・パーティショニング方式は、四分木又はバイナリ・パーティショニング構造を補足するために使用されることが可能であり、このような三分木パーティショニングは、ブロック中心に位置するオブジェクトを切れ目のない1つのパーティション内に取り込むことができる一方、四分木及び二分木は、常に、ブロック中心に沿って分割され、従ってそのようなオブジェクトを分離したパーティションに分割することになる。一部の実装では、追加の変換を避けるために、例示の三分木のパーティションの幅と高さは、常に、2のべき乗である。
【0100】
[0120] 上記のパーティショニング方式は、異なるパーティショニング・レベルで任意の方法で組み合わせることが可能である。一例として、上述の四分木及び二分木方式は、ベース・ブロックを、四分木-二分木(a quadtree-binary-tree,QTBT)構造に分割するように組み合わせられてもよい。このような方式では、ベース・ブロック又は中間ブロック/パーティションは、指定されている場合には事前に定義された条件のセットに従って、四分木分割又は二分木分割の何れであってもよい。特定の例が図14に示されている。図14の例では、先ず、ベース・ブロックが、1402,1404,1406,1408で示されるように、4つのパーティションに四分木分割される。その後、結果として得られる各パーティションは、次のレベルで、(1408のように)4つの更なるパーティションに四分木分割されるか、2つの更なるパーティションに二分木分割されるか(例えば、1402又は1406のように、水平又は垂直に分割され、どちらも対称的である)、又は(1404のように)非分割である。二分木又は四分木分割は、1410の全体的な例示的なパーティション・パターン及び1420の対応するツリー構造/表現(実線は四分木分割を表し、破線は二分木分割を表す)によって示されるように、正方形状のパーティションに対して再帰的に許容される可能性がある。二分木分割が水平であるか又は垂直であるかを示すために、各二分木分割ノード(非リーフ二分木分割)に対してフラグが使用されてもよい。例えば、1420に示すように、1410の分割構造と整合して、フラグ「0」は水平二分割を表し、フラグ「1」は垂直二分割を表すことが可能である。四分木分割パーティションの場合、四分木分割はブロック又はパーティションを常に水平及び垂直の両方に分割して、等しいサイズの4つのサブ・ブロック/パーティションを生成するので、分割タイプを示す必要はない。一部の実装では、フラグ「1」は水平二分割を表し、フラグ「0」は垂直二分割を表してもよい。
【0101】
[0121] QTBTの一部の例示的な実装では、四分木と二分木の分割ルールセット(ruleset)は、以下の事前に設定されたパラメータと、それられ関連する対応する機能によって表現されることが可能である:
- CTUサイズ:四分木のルート・ノード・サイズ(ベース・ブロックのサイズ)
- MinQTSize:最小許容四分木リーフ・ノード
- MaxBTSize:最大許容二分木ルート・ノード・サイズ
- MaxBTDepth:最大許容二分木深度
- MinBTSize:最小許容二分木リーフ・ノード・サイズ

QTBTパーティショニング構造の一部の例示的な実装では、CTUサイズは、(例示的なクロマ・サブサンプリングが考慮され、使用される場合)クロマ・サンプルの2つの対応する64×64ブロックを有する128×128ルマ・サンプルとして設定されてもよく、MinQTSizeは16×16として設定されてもよく、MaxBTSizeは64×64として設定されてもよく、MinBTSize(幅及び高さの両方に対するもの)は4×4として設定されてもよく、MaxBTDepthは4として設定されてもよい。四分木パーティショニングは、四分木リーフ・ノードを生成するために、最初にCTUに適用されてもよい。四分木リーフ・ノードは、その16×16(即ち、MinQTSize)という最小許容サイズから、128×128(即ち、CTUサイズ)までのサイズを有する可能性がある。ノードが128×128である場合、サイズはMaxBTSize(即ち、64×64)を超えるので、二分木によって最初には分割されない。そうではない場合、MaxBTSizeを超えないノードは、二分木によってパーティション化されることが可能である。図14の例では、ベース・ブロックは128×128である。ベース・ブロックは、事前に定義されたルールセットに従って、四分木分割されることが可能であるだけである。ベース・ブロックは0という分割深度を有する。結果として得られる4つのパーティションの各々は、64×64であり、MaxBTSizeを超えてはおらず、レベル1で更に四分木又は二分木分割されることが可能である。プロセスは継続する。二分木深度がMaxBTDepth(即ち、4)に到達すると、それ以上の分割は考慮されなくてよい。二分木ノードがMinBTSize(即ち、4)に等しい幅を有する場合、それ以上の水平分割は考慮されなくてよい。同様に、二分木ノードがMinBTSizeに等しい高さを有する場合、それ以上の垂直分割は考慮されなくてよい。
【0102】
[0122] 一部の例示的な実装では、上記のQTBT方式は、ルマ及びクロマが同じQTBT構造又は別々のQTBT構造を有するための柔軟性をサポートするように構成されることが可能である。例えば、P及びBスライスの場合、1つのCTU内のルマ及びクロマCTBは、同じQTBT構造を共有することが可能である。しかしながら、Iスライスの場合、ルマCTBはQTBT構造によってCBsにパーティション化され、クロマCTBは別のQTBT構造によってクロマCBsにパーティション化されてもよい。これは、CUが、Iスライスの異なるカラー・チャネルを示すために使用される可能性があることを意味し、例えば、Iスライスは、ルマ成分のコーディング・ブロック又は2つのクロマ成分のコーディング・ブロックから構成されてもよく、P又はBスライスのCUは、3つのカラー成分全てのコーディング・ブロックから構成されてもよい。
【0103】
[0123] 一部の他の実装では、QTBT方式は上述のターナリー方式で補足されることが可能である。そのような実装は、マルチ・タイプ・ツリー(multi-type-tree, MTT)構造と呼ばれてもよい。例えば、ノードの二分割に加えて、図13のターナリー・パーティション・パターンのうちの1つが選択されてもよい。一部の実装では、正方形ノードのみが三分割の対象となる可能性がある。ターナリー・パーティショニングが水平であるか又は垂直であるかを示すために、追加のフラグが使用されてもよい。
【0104】
[0124] QTBT実装及び三分割により補足されたQTBT実装のような、2レベル又はマルチ・レベルのツリーの設計は、主に、複雑さの低減によって動機付けられる可能性がある。理論的には、ツリーをトラバースする複雑さはTDであり、ここで、Tは分割タイプの数を表し、Dはツリーの深度である。深度(D)を減らしながら、複数のタイプ(T)を使用することによって、トレードオフが行われてもよい。
【0105】
[0125] 一部の実装では、CBは更にパーティション化される可能性がある。例えば、CBは、コーディング及びデコーディング・プロセス中のイントラ又はインター・フレーム予測を目的として、複数の予測ブロック(PB)に更にパーティション化される可能性がある。換言すると、CBは異なるサブ・パーティションに更に分割される可能性があり、その場合、個々の予測決定/設定が行われる可能性がある。並行して、CBは、ビデオ・データの変換又は逆変換が実行されるレベルを区切る目的で、複数の変換ブロック(TB)に更にパーティション化される可能性がある。CBのPB及びTBへのパーティション化方式は、同じであってもなくてもよい。例えば、各パーティション化方式は、例えば、ビデオ・データの様々な特性に基づいて、独自の手順を用いて実行されてもよい。PBとTBのパーティショニング方式は、一部の例示的な実装では独立していてもよい。PBとTBのパーティショニング方式及び境界は、他の例示的な実装では、相互に関連していてもよい。一部の実装では、例えば、TBは、PBパーティショニングの後にパーティショニングされてもよく、特に、各PBは、コーディング・ブロックのパーティショニングの後に決定された後、1つ以上のTBsに更にパーティション化されてもよい。例えば、一部の実装では、PBは、1つ、2つ、4つ、又はその他の数のTBに分割されてもよい。
【0106】
[0126] 一部の実装では、ベース・ブロックをコーディング・ブロックに分割し、更に予測ブロック及び/又は変換ブロックにパーティション化するために、ルマ・チャネルとクロマ・チャネルは別様に取り扱われてもよい。例えば、一部の実装では、コーディング・ブロックの予測ブロック及び/又は変換ブロックへのパーティション化は、ルマ・チャネルに対して許容される可能性はあるが、クロマ・チャネル(複数可)については、コーディング・ブロックの予測ブロック及び/又は変換ブロックへのそのようなパーティション化は許容されない可能性がある。従って、このような実装では、ルマ・ブロックの変換及び/又は予測は、コーディング・ブロック・レベルにおいてのみ実行される可能性がある。別の例では、ルマ・チャネル及びクロマ・チャネル(複数可)の最小変換ブロック・サイズは異なってもよく、例えば、ルマ・チャネルのコーディング・ブロックは、クロマ・チャネルよりも小さな変換及び/又は予測ブロックにパーティション化されるように許容されていてもよい。更に別の例では、コーディング・ブロックの変換ブロック及び/又は予測ブロックへのパーティション化の最大深度は、ルマ・チャネル及びクロマ・チャネルの間で相違していてもよく、例えば、ルマ・チャネル用のコーディング・ブロックは、クロマ・チャネル(複数可)よりも深い変換及び/又は予測ブロックにパーティション化されるように許容されていてもよい。具体的な例として、ルマ・コーディング・ブロックは、高々2レベルまで下降する再帰的なパーティション化によって表現されることが可能な複数のサイズの変換ブロックにパーティション化されてもよく、正方形、2:1/1:2、及び4:1/1:4のような変換ブロック形状、及び4x4から64x64までの変換ブロック・サイズが許容されてもよい。しかしながら、クロマ・ブロックについては、ルマ・ブロックについて指定される可能な最大変換ブロックのみが許容されてもよい。
【0107】
[0127] コーディング・ブロックのPBへのパーティショニングのための一部の例示的な実装では、PBパーティショニングの深度、形状、及び/又はその他の特性は、PBがイントラ・コーディングされるか又はインター・コーディングされるかに依存する可能性がある。
【0108】
[0128] コーディング・ブロック(又は予測ブロック)の変換ブロックへのパーティション化は、様々な例示的な方式で実施される可能性があり、再帰的又は非再帰的に、また、コーディング・ブロック又は予測ブロックの境界における変換ブロックに対する追加的な考察とともに、四分木分割及び事前に定義されたパターン分割を含むがそれらに限定されない。一般に、結果として生じる変換ブロックは、異なる分割レベルにおけるものである可能性があり、同じサイズのものではない可能性があり、また、正方形の形状におけるものであることを要しない可能性がある(例えば、何らかの許容サイズ及びアスペクト比を有する長方形であるとすることが可能である)。更なる例は、図15図16及び図17に関連して以下で更に詳細に説明される。
【0109】
[0129] しかしながら、一部の他の実装では、上記の何れかのパーティショニング方式により得られるCBが、予測及び/又は変換のための基本又は最小のコーディング・ブロックとして使用されてもよい。換言すれば、インター予測/イントラ予測の目的のため、及び/又は変換の目的のために、更なる分割が実行されることはない。例えば、上記のQTBT方式から得られるCBは、予測を実行するための単位として直接的に使用されてもよい。具体的には、このようなQTBT構造は、複数のパーティション・タイプの概念を取り除き、即ち、CU、PU、及びTUの分離を取り除き、上述のように、CU/CBパーティション形状に対してより多くの柔軟性をサポートする。このようなQTBTブロック構造では、CU/CBは正方形又は長方形の何れかの形状を有することができる。このようなQTBTのリーフ・ノードは、更なる如何なるパーティショニングも伴うことなく、予測及び変換処理の単位として使用される。これは、このような例示的なQTBTコーディング・ブロック構造において、CU、PU及びTUが同じブロック・サイズを有することを意味する。
【0110】
[0130] 上記の様々なCBパーティショニング方式、及びCBのPB及び/又はTBへの更なるパーティショニング(PB/TBパーティショニングを含まない)は、任意の方式で組み合わせられてもよい。以下の特定の実装は、非限定的な例として提供されている。
【0111】
[0131] 以下、コーディング・ブロック及び変換ブロック・パーティショニングの具体的な例を説明する。このような例示的な実装において、ベース・ブロックは、再帰的な四分木分割、又は上述した事前に定義された分割パターン(図9及び図10におけるようなもの)を使用して、コーディング・ブロックに分割される可能性がある。各レベルにおいて、特定のパーティションの更なる四分木分割が継続すべきか否かは、ローカルなビデオ・データ特性によって決定されることが可能である。結果として得られるCBは、様々な四分木分割レベルにおけるものであり、様々なサイズのものである可能性がある。インター・ピクチャ(時間的)予測又はイントラ・ピクチャ(空間的)予測を使用してピクチャ・エリアをコーディングするかどうかを決定することは、CBレベル(又は、3つ全てのカラー・チャネルについて、CUレベル)で行われてもよい。各CBは、事前に定義されたPB分割タイプに従って、1つ、2つ、4つ、又はその他の数のPBに更に分割されてもよい。1つのPBの中で、同じ予測プロセスが適用されてもよく、関連情報はPBベースでデコーダへ伝送されてもよい。PB分割タイプに基づく予測プロセスを適用することにより、残差ブロックを取得した後に、CBは、CB用のコーディング・ツリーに類似する別の四分木構造に従ってTBにパーティション化されることが可能である。この特定の実装では、CB又はTBは正方形の形状であってもよいが、正方形の形状に限定される必要はない。更に、この特定の例において、PBは、インター予測については正方形又は長方形の形状であってもよく、イントラ予測については正方形のみであってもよい。コーディング・ブロックは、例えば、4つの正方形状のTBに分割されてもよい。各TBは、再帰的に(四分木分割を使用して)、残差四分木(Residual Quadtree,RQT)と呼ばれる、より小さなTBに更に分割されてもよい。
【0112】
[0132] ベース・ブロックをCBs、PBs、及び/又はTBsにパーティション化するための別の実装例を以下で更に説明する。例えば、図9図10に示されるもののように複数のパーティション・ユニット・タイプを使用するのではなく、2分割及び3分割セグメンテーション構造を使用する入れ子状になったマルチ・タイプ・ツリーを有する四分木(例えば、上記で説明されたような3分割を行うQTBT又はQTBT)が使用されてもよい。CB、PB及びTBの分離(即ち、CBのPB及び/又はTBへのパーティション化、並びに、PBsのTBsへのパーティション化)は、最大変換長に対して大き過ぎるサイズを有するCBに対して必要とされる場合(そのようなCBは更なる分割を必要とする可能性がある)を除いて、放棄される可能性がある。この例示的なパーティション化方式は、CBパーティション形状に対して、より多くの柔軟性をサポートするように設計されることが可能であり、予測及び変換の両方が、更なるパーティション化を行うことなくCBレベルで実行されることが可能である。このようなコーディング・ツリー構造では、CBは正方形又は長方形の何れの形状も有する可能性がある。具体的には、コーディング・ツリー・ブロック(CTB)は、最初に、四分木構造によってパーティション化されてもよい。次いで、四分木リーフ・ノードは、ネスト化されたマルチ・タイプ・ツリー構造によって更にパーティション化される可能性がある。二分割又は三分割を使用する入れ子状マルチ・タイプ・ツリー構造の例は図11に示されている。具体的には、図11の例示的なマルチ・タイプ・ツリー構造は、
垂直二分割(SPLIT_BT_VER)(1102)、
水平二分割(SPLIT_BT_HOR)(1104)、
垂直三分割(SPLIT_TT_VER)(1106)、及び
水平三分割(SPLIT_TT_HOR)(1108)と言及される4つの分割タイプを含む。
従って、CBはマルチ・タイプ・ツリーのリーフ(葉)に対応する。この実装例では、CBが最大変換長に対して大き過ぎない限り、このセグメンテーションは、何らかの別のパーティション化を伴うことなく、予測処理と変換処理の両方に使用される。これは、ほとんどの場合、ネスト化されたマルチ・タイプ・ツリー・コーディング・ブロック構造を有する四分木において、CB、PB、TBが同じブロック・サイズを有することを意味する。例外は、サポートされる最大変換長が、CBのカラー成分の幅又は高さよりも小さい場合に生じる。一部の実装では、二分割又は三分割に加えて、図11の入れ子状パターンは、四分木分割を更に含んでもよい。
【0113】
[0133] 1つのベース・ブロックに関し、ブロック分割の入れ子状マルチ・タイプ・ツリー・コーディング・ブロック構造を伴う四分木の1つの具体例は、図12に示されている(四分木分割、二分木分割、及び三分木分割のオプションを含んでいる)。より詳細には、図12は、ベース・ブロック1200が、4つの正方形パーティション1202、1204、1206、1208に四分木分割されることを示している。更なる分割のために四分木と図11のマルチ・タイプ・ツリー構造とを更に分割に使用することについての判断は、四分木分割される各パーティションについて行われる。図12の例では、パーティション1204は更には分割されない。パーティション1202と1208はそれぞれ別の四分木分割を採用している。パーティション1202については、第2レベルの四分木分割された左上、右上、左下、及び、右下パーティションはそれぞれ第3レベルの四分木、図11の水平二分木分割1104、非分割、及び、図11の水平三分木分割1108を採用している。パーティション1208は、別の四分木分割を採用し、第2レベルの四分木分割された左上、右上、左下、及び右下パーティションはそれぞれ第3レベルの図11の垂直三分木分割1106、非分割、非分割、及び、図11の水平二分木分割1104を採用している。1208の第3レベルの左上パーティションのサブ・パーティションのうちの2つはそれぞれ図11の水平二分割1104及び水平三分割1108に従って更に分割されている。パーティション1206は、第2レベルの分割パターンの後に、2つのパーティションへの図11の垂直二分割1102に続き、それら2つのパターンは、図11の水平三分割1108と垂直二分割1102に従って、第3レベルで更に分割される。それらのうちの一方について、第4レベルの分割が、図11の水平二分割1104に従って更に適用される。
【0114】
[0134] 上記の具体例の場合、最大ルマ変換サイズは64x64であってもよく、サポートされる最大クロマ変換サイズはルマのものと異なっていてもよく、例えば32x32であってもよい。図12の上記の例示的なCBは、概して、より小さなPBs及び/又はTBsに更に分割されていないが、それでも、ルマ・コーディング・ブロック又はクロマ・コーディング・ブロックの幅又は高さが、最大変換幅又は高さよりも大きい場合、ルマ・コーディング・ブロック又はクロマ・コーディング・ブロックは、その方向における変換サイズ制限を満たすために、水平方向及び/又は垂直方向に自動的に分割される可能性がある。
【0115】
[0135] ベース・ブロックを上記のCBsにパーティション化する具体例において、及び上記で説明したように、コーディング・ツリー方式は、ルマ及びクロマに関し、別個のブロック・ツリー構造を有する能力をサポートすることが可能である。例えば、P及びBスライスの場合、1つのCTU内のルマ及びクロマCTBは同じコーディング・ツリー構造を共有することが可能である。例えば I スライスの場合、ルマとクロマは別々のコーディング・ブロック・ツリー構造を有することが可能である。別々のブロック・ツリー構造が適用される場合、ルマCTBは1つのコーディング・ツリー構造によってルマCBsにパーティション化され、クロマCTBsは別のコーディング・ツリー構造によってクロマCBsにパーティション化される。これは、IスライスのCUは、ルマ成分のコーディング・ブロック、又は2つのクロマ成分のコーディング・ブロックから構成されてもよいこと、及び、P又はBスライスのCUは、ビデオがモノクロでない限り、常に、3つ全てのカラー成分のコーディング・ブロックから構成される、ということを意味する。
【0116】
[0136] コーディング・ブロックが複数の変換ブロックに更にパーティション化される場合、その中の変換ブロックは、様々な順序又はスキャニング方式に従ってビットストリーム内で順序付けられる可能性がある。コーディング・ブロック又は予測ブロックを変換ブロックにパーティション化するための例示的な実装、及び変換ブロックのコーディング順序を、以下、更に詳細に説明する。一部の例示的な実装では、上述したように、変換パーティショニングは、複数の形状の変換ブロック、例えば、1:1(正方形)、1:2/2:1、及び1:4/4:1をサポートすることが可能であり、変換ブロック・サイズは、例えば、4x4から64x64の範囲に及ぶ。一部の実装では、コーディング・ブロックが64x64以下である場合、変換ブロック・パーティション化は、ルマ成分に適用されるだけであってもよく、クロマ・ブロックについては変換ブロック・サイズがコーディング・ブロック・サイズに一致するようにしてもよい。そうでない場合、コーディング・ブロックの幅又は高さが64より大きい場合、ルマ及びクロマ・コーディング・ブロックの両方は、それぞれ、min(W,64)×min(H,64)及びmin(W,32)×min(H,32)の倍数の変換ブロックに暗黙的に分割されてもよい。
【0117】
[0137] 変換ブロック・パーティショニングの一部の例示的な実装では、イントラ及びインター・コーディングされたブロックの両方について、コーディング・ブロックは、予め設定されたレベル数(例えば、2レベル)までのパーティショニング深度とともに複数の変換ブロックに更にパーティション化されることが可能である。変換ブロックのパーティション化深度とサイズは関連付けられていてもよい。一部の例示的な実装について、現在の深度の変換サイズから次の深度の変換サイズへのマッピングは、以下のテーブル1に示されている。
【0118】
テーブル1:変換パーティション・サイズ設定
【0119】
【表1】
[0138] テーブル1のマッピング例に基づくと、1:1の正方形ブロックに対して、次のレベルの変換分割は、4つの1:1の正方形サブ変換ブロックを作成する可能性がある。変換分割は、例えば、4x4で停止してもよい。このように、4x4という現在の深度の変換サイズは、次の深度に関し、4x4の同じサイズに対応する。テーブル1の例では、1:2/2:1の非正方形ブロックの場合、次のレベルの変換分割は、2つの1:1正方形サブ変換ブロックを作成することが可能である一方、1:4/4:1の非正方形ブロックの場合、次のレベルの変換分割は、2つの1:2/2:1サブ変換ブロックを作成することが可能である。
【0120】
[0139] 一部の例示的な実装では、イントラ・コーディングされるブロックのルマ成分に関し、追加的な制限が、変換ブロック・パーティション化に関して適用される可能性がある。例えば、変換パーティショニングの各レベルについて、全てのサブ変換ブロックは、等しいサイズを有するように制限されてもよい。例えば、32x16のコーディング・ブロックに対して、レベル1の変換分割は2つの16x16のサブ変換ブロックを作成し、レベル2の変換分割は8つの8x8のサブ変換ブロックを作成する。換言すると、第2レベル分割は、変換ユニットを等しいサイズに保つために、第1レベル・サブブロック全てに適用されなければならない。テーブル1に従うイントラ・コーディングされた正方形ブロックのための変換ブロック分割の例が、矢印によって示されるコーディング順序とともに、図15に示されている。具体的には、1502 は正方形コーディング・ブロックを示す。テーブル1に従う4つの等しいサイズの変換ブロックへの第1レベルの分割は、矢印によって示されるコーディング順序とともに1504に示されている。全ての第1レベルの等しいサイズのブロックを、テーブル1に従って16個の等しいサイズの変換ブロックにする第2レベルの分割が、矢印によって示されるコーディング順序とともに1506に示されている。
【0121】
[0140] 一部の例示的な実装では、インター・コーディングされたブロックのルマ成分については、イントラ・コーディングに関する上記の制限は適用されない可能性がある。例えば、第1のレベルの変換分割の後、サブ変換ブロックのうちの任意の1つは、もう1つの更なるレベルで独立して更に分割される可能性がある。その結果得られる変換ブロックは、同じサイズによるものであってもなくてもよい。インター・コーディングされたブロックを、それらのコーディング順序で変換ブロックにする分割例が、図16に示されている。図16の例では、インター・コーディングされたブロック1602は、テーブル1に従って2つのレベルで変換ブロックに分割される。第1のレベルでは、インター・コーディングされるブロックは、等しいサイズの4つの変換ブロックに分割される。次いで、(それらのうちの全てではなく)4つの変換ブロックのうちの1つだけが、4つのサブ変換ブロックに更に分割され、その結果、1604で示すように、2つの異なるサイズを有する合計7つの変換ブロックになる。これらの7つの変換ブロックの例示的なコーディング順序は、図16の1604の矢印によって示されている。
【0122】
[0141] 一部の例示的な実装では、クロマ成分(複数可)に対して、変換ブロックに対する何らかの追加的な制限が適用されてもよい。例えば、クロマ成分(複数可)に対して、変換ブロック・サイズは、コーディング・ブロック・サイズと同じ大きさにすることが可能であるが、事前に定義されたサイズ(例えば、8x8)よりも小さくすることはできない。
【0123】
[0142] 一部の他の例示的な実装では、幅(W)又は高さ(H)の何れかが64より大きいコーディング・ブロックに対して、ルマ及びクロマ・コーディング・ブロックの両方は、それぞれ、min(W,64)×min(H,64)及びmin(W,32)×min(H,32)の倍数の変換ユニットの暗黙的に分割されてもよい。ここで、本開示において、「min(a,b)」は、aとbの間で、より小さな値を返すことが可能である。
【0124】
[0143] 図17は、コーディング・ブロック又は予測ブロックを変換ブロックにパーティション化するための別の代替例の方式を更に示している。図17に示すように、再帰的な変換パーティショニングを使用する代わりに、予め定義されたセットのパーティショニング・タイプが、コーディング・ブロックの変換タイプに従って、コーディング・ブロックに適用されてもよい。図17に示される特定の例では、6つの例示的なパーティショニング・タイプのうちの1つが、コーディング・ブロックを様々な数の変換ブロックに分割するために適用される可能性がある。変換ブロック・パーティショニングを生じさせるこのような方式は、コーディング・ブロック又は予測ブロックの何れかに適用されてもよい。
【0125】
[0144] より詳細には、図17のパーティショニング方式は、任意の所与の変換タイプ(変換タイプは、ADSTのような一次変換及びその他のタイプを指す)に対して、最大6つの例示的なパーティション・タイプを提供する。この方式では、全てのコーディング・ブロック又は予測ブロックは、例えば、レート_歪みコストに基づいて、変換パーティション・タイプに割り当てられることが可能である。一例において、コーディング・ブロック又は予測ブロックに割り当てられる変換パーティション・タイプは、コーディング・ブロック又は予測ブロックの変換タイプに基づいて決定されてもよい。特定の変換パーティション・タイプは、図17に示される6つの変換パーティション・タイプによって示されるように、変換ブロック分割サイズ及びパターンに対応していてもよい。様々な変換タイプと様々な変換パーティション・タイプとの間の対応関係は、予め定義されてもよい。以下に示される例では、大文字のラベルは変換パーティション・タイプを示し、これは、レート歪みコストに基づいてコーディング・ブロック又は予測ブロックに割り当てられる可能性がある:
[0145] ・ PARTITION_NONE:ブロック・サイズに等しい変換サイズを割り当てる。
【0126】
[0146] ・ PARTITION_SPLIT:ブロック・サイズの幅の1/2で、ブロック・サイズの高さの1/2の変換サイズを割り当てる。
【0127】
[0147] ・ PARTITION_HORZ:ブロック・サイズと同じ幅で、ブロック・サイズの高さの1/2の変換サイズを割り当てる。
【0128】
[0148] ・ PARTITION_VERT:ブロック・サイズの幅の1/2で、ブロック・サイズと同じ高さの変換サイズを割り当てる。
【0129】
[0149] ・ PARTITION_HORZ4:ブロック・サイズと同じ幅で、ブロック・サイズの高さの1/4の変換サイズを割り当てる。
【0130】
[0150] ・ PARTITION_VERT4:ブロック・サイズの幅の1/4で、ブロック・サイズと同じ高さの変換サイズを割り当てる。
【0131】
[0151] 上記の例では、図17に示されるような変換パーティション・タイプは全て、パーティション化された変換ブロックに関して均一な変換サイズを含む。これは、限定ではなく単なる例であるに過ぎない。一部の他の実装では、混合された変換ブロック・サイズが、特定のパーティション・タイプ(又はパターン)のパーティション化された変換ブロックに使用されることが可能である。
【0132】
[0152] 上記の任意の分割方式から得られるPBs(又はCBs、予測ブロックに更にパーティション化されない場合にはPBsとも呼ばれる)は、次いで、イントラ予測又はインター予測の何れかによりコーディングするための個々のブロックになる可能性がある。現在のPBに対するインター予測の場合に、現在のブロックと予測ブロックとの間の残差が生成され、コーディングされ、コーディングされたビットストリームに含められることが可能である。
[0153] インター予測は、例えば、単一参照モード又は複合参照モードで実現される可能性がある。一部の実装では、先ず、現在のブロックがインター・コーディングされ、スキップされないかどうかを示すためのスキップ・フラグが、現在のブロックのビットストリームに(又はより高いレベルで)含まれる可能性がある。現在のブロックがインター・コーディングされる場合、現在のブロックに対して、単一参照モード又は複合参照モードのどちらが使用されるかを示す信号として、別のフラグがビットストリームに更に含まれてもよい。単一参照モードの場合、1つの参照ブロックを使用して、現在のブロックの予測ブロックを生成することが可能である。複合参照モードの場合、2つ以上の参照ブロックを使用して、例えば加重平均によって、予測ブロックを生成することが可能である。複合参照モードは、1つより多い参照モード、2参照モード、又は複数参照モードと呼ばれてもよい。参照ブロック又は複数の参照ブロックは、参照フレーム・インデックス又はインデックスを使用して、また追加的に、位置における(例えば、水平及び垂直ピクセルにおける)参照ブロック(複数可)と現在のブロックとの間のシフト(複数可)を示す対応する動きベクトル又は動きベクトル(複数可)を使用して、識別されてもよい。例えば、現在のブロックに対するインター予測ブロックは、単一参照モードでは、予測ブロックとして参照フレーム内の1つの動きベクトルによって識別される単一の参照ブロックから生成されることが可能である一方、複合参照モードでは、予測ブロックは、2つの動きベクトルによって示される2つの参照フレームにおける2つの参照ブロックの加重平均によって生成されることが可能である。動きベクトルは、様々な方法でコーディングされ、ビットストリームに含まれることが可能である。
【0133】
[0154] 一部の実装では、コーディング・システム又はデコーディング・システムは、復号化ピクチャ・バッファ(decoded picture buffer,DPB)を維持することが可能である。一部の画像/ピクチャは、(復号化システムにおいて)表示されることを待機するDPBに保持されることが可能であり、DPB内の一部の画像/ピクチャは、インター予測を可能にするための参照フレームとして使用されることが可能である。一部の実装では、DPB内の参照フレームは、符号化又は復号化される現在の画像に対する短期的な参照又は長期的な参照の何れかとしてタグ付けされてもよい。例えば、短期的参照フレームは、現在のフレーム内、又は、復号化順序において現在のフレームに最も近い所定数の(例えば、2つの)後続ビデオ・フレーム内、のブロックに対するインター予測に使用されるフレームを含むことが可能である。長期的な参照フレームは、フレーム内の画像ブロックを予測するために使用することが可能なDPB内のフレームであって、復号化順序において現在のフレームから遠く離れた予め定義されたフレーム数より多いものを含む可能性がある。このような短期的及び長期的な参照フレームのタグに関する情報は、参照ピクチャ・セット(RPS)と呼ばれる場合があり、また、コーディングされたビットストリーム内の各フレームのヘッダに追加される場合がある。符号化されたビデオ・ストリーム内の各フレームは、ピクチャ・オーダー・カウンタ(Picture Order Counter,POC)によって識別されることが可能であり、POCは、絶対的な方法で又は例えばIフレームから始まるピクチャ・グループに対して相対的に、再生シーケンスに従って番号付けされる。
【0134】
[0155] 一部の例示的な実装では、インター予測のための短期的及び長期的な参照フレームの識別を含む1つ以上の参照ピクチャ・リストが、RPS内の情報に基づいて形成されることが可能である。例えば、片-方向インター予測に関し、単一ピクチャ参照リストが、L0参照(又は参照リスト0)として示されるように形成されることが可能である一方、双-方向インター予測に関し、2つのピクチャ参照リストが、2つの予測方向の各々についてL0(又は参照リスト0)及びL1(又は参照リスト1)として示されるように形成されることが可能である。L0及びL1リストに含まれる参照フレームは、様々な所定の方法で順序付けられる可能性がある。L0及びL1リストの長さは、ビデオ・ビットストリームにおいてシグナリングされてもよい。単一方向インター予測は、複合予測モードにおける加重平均による予測ブロックの生成に関する複数の参照が、予測されるブロックの同じ側におけるもの場合に、複合参照モード、又は単一参照モードの何れかである可能性がある。双-方向インター予測は複合モードであるだけであってもよく、その場合、双-方向インター予測が少なくとも2つの参照ブロックを含む。
【0135】
[0156] 一部の実装では、インター予測のためのマージ・モード(merge mode,MM)が実装される可能性がある。一般に、マージ・モードでは、現在のPBについての単一参照予測における動きベクトル又は複合参照予測における1つ以上の動きベクトルが、独立に演算されシグナリングされるのではなく、他の動きベクトル(複数可)から導出されることが可能である。例えば、符号化システムにおいて、現在のPBに対する現在の動きベクトル(複数可)は、現在の動きベクトル(複数可)と他の1つ以上の既に符号化された動きベクトル(参照動きベクトルと呼ばれる)との間の差分(複数可)に換算されてもよい。現在の動きベクトル(複数可)の全体ではない動きベクトル(複数可)のそのような差分(複数可)は、符号化されてビットストリームに含まれることが可能であり、参照動きベクトル(複数可)にリンクされることが可能である。相応に復号化システムにおいて、現在のPBに対応する動きベクトル(複数可)は、復号化された動きベクトル差分と、これにリンクされた復号化された参照動きベクトル(複数可)とに基づいて導出されてもよい。一般的なマージ・モード(MM)インター予測の具体的な形態として、動きベクトル差分に基づくこのようなインター予測は、動きベクトル差分を用いるマージ・モード(Merge Mode with Motion Vector Difference,MMVD)と言及される場合がある。一般的にはMM、又は具体的にはMMVDは、従って、コーディング効率を向上させるために、異なるPBに関連する動きベクトル間の相関を利用するように実装されてもよい。例えば、隣接するPBは類似の動きベクトルを有する可能性がある。別の例では、動きベクトルは、空間内での場合と同様に配置され/位置づけられたブロックについて、時間的に(フレーム間で)相関する可能性がある。
【0136】
[0157] 一部の例示的な実装では、現在のPBはマージ・モードにあるかどうかを示すために、MMフラグが、符号化プロセス中にビットストリームに含められる可能性がある。追加的又は代替的に、MMVDフラグが、符号化プロセス中に含められ、現在のPBがMMVDモードにあるかどうかを示すために、ビットストリームでシグナリングされてもよい。MM及び/又はMMVDフラグ又はインジケータは、PBレベル、CBレベル、CUレベル、CTBレベル、CTUレベル、スライス・レベル、ピクチャ・レベルなどで提供されてもよい。特定の例では、MMフラグとMMVDフラグの両方が現在のCUに対して含まれてもよく、MMVDフラグは、現在のCUに対してMMVDモードが使用されるかどうかを指定するために、スキップ・フラグとMMフラグの直後にシグナリングされてもよい。
【0137】
[0158] MMVDの一部の例示的な実装では、動きベクトル予測のためのマージ候補のリストが、予測されるブロックに対して形成されることが可能である。マージ候補のリストは、所定数(例えば、2つ)のMV予測子・候補ブロックを含む可能性があり、そのブロックの動きベクトルは現在の動きベクトルを予測するために使用されることが可能である。MVD候補ブロックは、同一フレーム内の隣接ブロック及び/又は時間的ブロック(例えば、現在のフレームの進行方向フレーム又は後続フレーム内における同等位置のブロック(identically located blocks))から選択されたブロックを含んでもよい。これらのオプションは、現在のブロックに対する空間的又は時間的な位置におけるブロックであって、現在のブロックと同一又は類似の動きベクトルを有する可能性が高いものを表す。MV予測子候補のリストのサイズは予め決められていてもよい。例えば、リストは2つの候補を含むことが可能である。マージ候補のリストにおけるものとなるように、候補ブロックは、例えば、現在のブロックと同じ参照フレーム(又は複数のフレーム)を有すること、存在しなければならないこと(例えば、現在のブロックがフレームのエッジに近い場合に、境界チェックが実行されることを必要とする)、及び、符号化プロセス中に既に符号化されていなければならないこと、及び/又は、復号化プロセス中に既に復号化されていることが要求される可能性がある。一部の実装では、マージ候補のリストは、利用可能であって上記の条件を満たす場合、先ず、空間的に隣接するブロック(特に、予め定義された順序でスキャンされるもの)から加えられ、次いで、リスト内でスペースがまだ利用可能である場合、時間的なブロックが加えられてもよい。隣接する候補ブロックは、例えば、現在のブロックの左及び上ブロックから選択されてもよい。マージMV予測子候補のリストは、ビットストリーム内でシグナリングされてもよい。
【0138】
[0159] 一部の実装では、現在のブロックの動きベクトルを予測するための参照動きベクトルとして使用される実際のマージ候補がシグナリングされてもよい。マージ候補リストが2つの候補を含む場合、マージ候補フラグと呼ばれる1ビット・フラグが、参照マージ候補の選択を示すために使用されてもよい。複合モードで予測される現在のブロックに対して、MV予測子を用いて予測される複数の動きベクトルの各々は、マージ候補リストからの参照動きベクトルと関連付けられてもよい。
【0139】
[0160] MMVDの一部の例示的な実装では、マージ候補が選択され、予測される動きベクトルに対するベース動きベクトル予測子として使用された後に、動きベクトル差分(MVD又はデルタMVであり、予測される動きベクトルと参照候補動きベクトルとの間の差分を表すもの)が、符号化システムにおいて算出されてもよい。このようなMVDは、MV差分の大きさ及びMV差分の方向を表す情報を含んでもよく、これらはビットストリームにおいてシグナリングされてもよい。動き差分の大きさ及び動き差分の方向は、様々な方法でシグナリングされる可能性がある。
【0140】
[0161] MMVDの一部の例示的な実装では、距離インデックスは、動きベクトル差の大きさ情報を指定し、開始点(参照動きベクトル)からの予め定義された動きベクトル差を表す予め定義されたオフセットのセットのうちの1つを示すために使用されてもよい。次いで、シグナリングされたインデックスによるMVオフセットが、開始(参照)動きベクトルの水平成分又は垂直成分の何れかに加算されてもよい。参照動きベクトルの水平又は垂直成分の何れがオフセットされるべきかは、MVDの例示的な方向情報によって決定される。距離インデックスと予め定義されたオフセットとの間の予め定義された関係の一例はテーブル2に指定されている。
【0141】
テーブル2 - 距離インデックスと事前に定義されたMVオフセットとのの関係例
【0142】
【表2】
[0162] MMVDの一部の例示的な実装では、方向インデックスが更にシグナリングされ、参照動きベクトルに対するMVDの方向を表すために使用される可能性がある。一部の実装では、方向は、水平及び垂直方向のうちの何れか一方に制限されてもよい。テーブル3には、例示的な2ビット方向インデックスが示されている。テーブル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のオフセットの符号は、反対の値を有する可能性がある。
【0143】
テーブル3 - 方向インデックスによって指定されるMVオフセットの符号に関する実装例
【0144】
【表3】
[0163] 一部の例示的な実装では、MVDは、各方向のPOCの差分に従ってスケーリングされてもよい。両方のリストにおけるPOCの差分が同じである場合、スケーリングが必要とされることはない。そうでない場合、参照リスト0のPOCの差分が参照リスト1のものよりも大きい場合、参照リスト1のMVDはスケーリングされる。参照リスト1のPOCの差分が参照リスト0のものよりも大きい場合、参照リスト0のMVDが同様にスケーリングされることが可能である。開始MVが片-予測される場合、MVDは利用可能な又は参照MVに加算される。
【0145】
[0164] 双-方向複合予測のためのMVDコーディング及びシグナリングの一部の例示的な実装では、2つのMVDを別々にコーディングしてシグナリングすることに加えて又はそれに代えて、対称MVDコーディングが実装され、唯1つのMVDがシグナリングされることを必要とし且つ他のMVDはシグナリングされたMVDから導出され得るようにしてもよい。このような実装では、リスト0及びリスト1の両方の参照ピクチャ・インデックスを含む動き情報がシグナリングされる。しかしながら、例えば参照リスト0に関連するMVDのみがシグナリングされ、参照リスト1に関連するMVDはシグナリングされずに導出される。具体的には、スライス・レベルにおいて、フラグがビットストリームに含まれてもよく、フラグは(「mvd_l1_zero_flag」)と呼ばれ、参照リスト1はビットストリームでシグナリングされないかどうかを示す。このフラグが1であり、参照リスト1が0に等しい(従って、シグナリングされない)ことを示す場合、「BiDirPredFlag」と称される双-方向予測フラグは0に設定されてもよく、これは、双-方向予測は存在しないことを意味する。そうではない場合、mvd_l1_zero_flagが0である場合、list-0で最も近い参照ピクチャとlist-1で最も近い参照ピクチャとが、参照ピクチャの前方及び後方ペア、又は参照ピクチャの後方及び前方ペアを形成する場合、BiDirPredFlagは1に設定されてもよく、list-0とlist-1の両方の参照ピクチャは短期的な参照ピクチャである。そうではない場合、BiDirPredFlagは0に設定される。1であるBiDirPredFlagは、対称モード・フラグがビットストリーム内で追加的にシグナリングされていることを示す。デコーダは、BiDirPredFlagが1である場合に、ビットストリームから対称モード・フラグを抽出することが可能である。対称モード・フラグは、例えば、(必要に応じて)CUレベルでシグナリングされる場合があり、それは、対称MVDコーディング・モードが、対応するCUに対して使用されているかどうかを示す。対称モード・フラグが1である場合、それは、対称MVDコーディング・モードの使用を示し、list-0及びlist-1の両方の参照ピクチャ・インデックス(「mvp_l0_flag」及び「mvp_l1_flag」と称される)のみが、list-0に関連付けられるMVD(「MVD0」と称される)でシグナリングされ、他方の動きベクトル差分「MVD1」は、シグナリングされるのではなく、導出されることを示す。例えば、MVD1は、-MVD0として導出されてもよい。このように、例示的な対称MVDモードでは、唯1つのMVDがシグナリングされる。MV予測に関する他の例示的な実装では、単一参照モード及び複合参照モードのMV予測の両方について、一般的なマージ・モード、MMVD、及び何らかの他のタイプのMV予測を実装するために、調和方式(harmonized scheme)が使用されてもよい。様々なシンタックス要素を使用して、現在のブロックのMVが予測される方式をシグナリングすることが可能である。
【0146】
[0165] 例えば、単一参照モードの場合、以下のMV予測モードがシグナリングされてもよい:
[0166] NEARMV - 如何なるMVDも直接的に用いることなく、動的参照リスト(Dynamic Reference List,DRL)インデックスで示されるリスト内の動きベクトル予測子(motion vector predictors,MVP)の1つを使用する。
【0147】
[0167] NEWMV - DRLインデックスによってシグナリングされたリスト内の動きベクトル予測子(MVP)のうちの1つを参照として使用し、(例えば、MVPを用いて)MVPにデルタを適用する。
【0148】
[0168] GLOBALMV - フレーム・レベルのグローバル・モーション・パラメータに基づく動きベクトルを使用する。
【0149】
[0169] 同様に、予測される2つのMVに対応する2つの参照フレームを使用する複合参照インター予測モードに関し、以下のMV予測モードがシグナリングされてもよい:
[0170] NEAR_NEARMV - 予測されるMVの2つのそれぞれについて、MVDを用いることなく、DRLインデックスによってシグナリングされるリスト内の動きベクトル予測子(MVP)のうちの1つを使用する。
【0150】
[0171] NEAR_NEWMV - 2つの動きベクトルのうちの第1のものを予測するために、MVDを用いることなく、参照MVとしてDRLインデックスによってシグナリングされるリスト内の動きベクトル予測子(MVP)のうちの1つを使用し;2つの動きベクトルのうちの第2のものを予測するために、追加的にシグナリングされたデルタMV(MVD)と組み合わせて、参照MVとしてDRLインデックスによりシグナリングされたリスト内の動きベクトル予測子(MVP)のうちの1つを使用する。
【0151】
[0172] NEW_NEARMV - 2つの動きベクトルのうちの第2のものを予測するために、MVDを用いることなく、参照MVとしてDRLインデックスによりシグナリングされるリスト内の動きベクトル予測子(MVP)のうちの1つを使用し;2つの動きベクトルのうちの第1のものを予測するために、追加的にシグナリングされたデルタMV(MVD)と組み合わせて、参照MVとしてDRLインデックスによりシグナリングされたリスト内の動きベクトル予測子(MVP)のうちの1つを使用する。
【0152】
[0173] NEW_NEWMV - 参照MVとしてDRLインデックスによりシグナリングされるリスト内の動きベクトル予測子(MVP)のうちの1つを使用し、2つのMVの各々について予測するために、追加的にシグナリングされたデルタMVと組み合わせて使用する。
【0153】
[0174] GLOBAL_GLOBALMV - フレーム・レベルのグローバル動きパラメータに基づいて、各参照からのMVを使用する。
【0154】
[0175] 従って、上記の「NEAR」という用語は、一般的なマージ・モードとして、MVDを用いることなく参照MVを使用するMV予測を指す一方、「NEW」という用語は、参照MVを使用し、MMVDモードでのようにシグナリングされたMVDで補うことを含むMV予測を指す。複合インター予測の場合、参照ベース動きベクトル及び上記の動きベクトル差分の両方は、それらが相関していたとしても、一般的には、2つの参照間で相違するか又は独立していている可能性があり、そのような相関は、2つの動きベクトル差分をシグナリングするために必要とされる情報量を低減するために利用される可能性がある。このような状況では、2つのMVDのジョイント・シグナリングが実装され、ビットストリームで指定される可能性がある。
【0155】
[0176] 上記の動的参照リスト(DRL)は、インデックス付けされた動きベクトルのセットであって、動的に維持され且つ候補動きベクトル予測子として考慮されるものを保持するために使用されることが可能である。
【0156】
[0177] 一部の例示的な実装では、オプティカル・フロー・ベースのアプローチが、複合予測のためにサブ・ブロック単位で動きベクトル(MV)を洗練するために使用されることが可能である。特に、オプティカル・フロー方程式は、最小二乗問題を定式化するために適用されることが可能であり、そこから、精密な動きが、複合インター予測サンプルの勾配から導出することが可能である。これらの繊細な動きにより、サブ・ブロック毎のMVは予測ブロック内で洗練されることが可能であり、このことはインター予測品質を向上させる可能性がある。一部のコーディング機能は、双方向オプティカル・フロー(bi-directional optical flow,BDOF)の概念を拡張したものである可能性があり、なぜなら2つの参照ブロックは現在のブロックに対して任意の時間的距離を有する場合に、MVの精密化をサポートするからである。
【0157】
[0178] 一部の実装では、次のように列挙される4つの追加的なインター複合モードが追加される可能性がある:
NEAR_NEARMV_OPTFLOW,
NEAR_NEWMV_OPTFLOW,
NEW_NEARMV_OPTFLOW,及び/又は
NEW_NEWMV_OPTFLOW。
【0158】
[0179] これらのモードは、オプティカル・フロー・モードと呼ばれる場合があり、参照MVタイプは、通常の複合モードにおけるものと同様に定義されることが可能である(例えば、NEAR_NEWMV_OPTFLOWは、NEAR_NEWMVと同じ参照MVタイプを有する)。複合予測は、元のMVの代わりに、サブ・ブロックごとに洗練されたMVに基づいて実行されることが可能である。
【0159】
[0180] 本開示において説明される様々な実施形態及び/又は実装は、別々に使用されてもよいし、又は任意の順序で組み合わせられてもよい。更に、これらの実施形態及び/又は実装の一部、全部、或いは、任意の部分的もしくは全体的な組み合わせは、エンコーダ及び/又はデコーダの一部として具体化される可能性があり、ハードウェア及び/又はソフトウェアにおいて実装される可能性がある。例えば、それらは専用処理回路(例えば、1つ以上の集積回路)でハード・コーディングされてもよい。他の一例では、これらは非一時的なコンピュータ読み取り可能な媒体に記憶されたプログラムを実行する1つ以上のプロセッサによって実装されてもよい。
【0160】
[0181] 動きベクトル差分のシグナリング方法の一部の実装に関連して幾つかの課題/問題点、例えば、NEW_NEARMVモード,NEAR_NEWMVモード,又はNEW_NEWMVモードにおいて、デルタMV(複数可)がどのようにシグナリングされるかという問題が存在する可能性がある。課題/問題点のうちの1つは、2つの参照リストにおける動きベクトル差分の相関が活用されておらず、従ってコーディング/デコーディングの効率やパフォーマンスを低下させていることであるかもしれない。
【0161】
[0182] 本開示は、インター予測モード・コーディング及び/又はデコーディングのための動きベクトル差分(MVD又はデルタMV)をシグナリングするための様々な実施形態を説明しており、上述した課題/問題の少なくとも1つに対処し、改善されたインター予測モード・コーディング/デコーディングに関する効率的なソフトウェア/ハードウェア実装を実現する。
【0162】
[0183] 様々な実施形態の中で図18を参照すると、インター予測されたビデオ・ブロックを復号化する方法1800が示されている。方法1800は以下のステップのうちの全部又は一部を含む可能性がある:ステップ1810,命令を記憶するメモリ及びメモリと通信するプロセッサを含むデバイスが、コーディングされたビデオ・ビットストリームを受信するステップ;ステップ1820,現在のフレームの現在のブロックに関し、インター予測モードはJOINT_NEWMVモードであるかどうかを示すフラグを、デバイスが、コーディングされたビデオ・ビットストリームから取り出すステップであって、JOINT_NEWMVモードは、参照リスト0からの第1の参照フレームに対する第1のデルタ動きベクトル(MV)と参照リスト1からの第2の参照フレームに対する第2のデルタMVとが一緒にシグナリングされることを示す、ステップ;ステップ1830,インター予測モードはJOINT_NEWMVモードであることを、フラグが示していることに応答して:デバイスが、現在のブロックに対するジョイント・デルタ動きベクトル(MV)を、コーディングされたビデオ/ビットストリームから取り出し;且つ、デバイスが、ジョイント・デルタMVに基づいて、第1のデルタMVと第2のデルタMVとを導出するステップ;及び/又は1840,デバイスが、第1のデルタMVと第2のデルタMVとに基づいて、現在のフレームの現在のブロックを復号化するステップを含む。
【0163】
[0184] 一部の実装において、ステップ1820は、デバイスが、現在のフレームの現在のブロックに関するインター予測モードを、コーディングされたビデオ・ビットストリームから取り出すステップを含むことが可能であり;及び/又は、ステップ1830は、インター予測モードが、第1の参照フレームのための第1のデルタMVと第2の参照フレームのための第2のデルタMVとが一緒にシグナリングされることを示すモードであることに応答して:デバイスが、現在のブロックに対するジョイント・デルタ動きベクトル(MV)を、コーディングされたビデオ・ビットストリームから抽出し、デバイスが、ジョイント・デルタMVに基づいて、第1のデルタMVと第2のデルタMVを導出するステップを含むことが可能である。第1の参照フレームに対する第1のデルタMVと第2の参照フレームに対する第2のデルタMVとが一緒にシグナリングされることを示すモードは、JOINT_NEWMVモードであってもよい。
【0164】
[0185] 本開示における様々な実施形態において、ブロック(例えば、コーディング・ブロック、予測ブロック、又は変換ブロックであるが、これらに限定されない)のサイズは、ブロックの幅又は高さを指す可能性がある。ブロックの幅又は高さは、ピクセル単位の整数であってもよい。本開示における様々な実施形態において、ブロックのサイズは、ブロックの面積サイズを指す可能性がある。ブロックの面積サイズは、ピクセル単位で、ブロックの幅にブロックの高さを乗算することによって算出される整数であってもよい。本開示における幾つかの様々な実施形態では、ブロックのサイズは、ブロックの幅又は高さの最大値、ブロックの幅又は高さの最小値、又は、ブロックのアスペクト比率を指す可能性がある。ブロックのアスペクト比率は、ブロックの幅を高さで割ったものとして算出されてもよいし、或いは、ブロックの高さを幅で割ったものとして算出されてもよい。
【0165】
[0186] ここで、本開示の一部の実施形態において、「第1の」参照フレームは、「1つの」参照フレームを指す場合があるだけでなく、複数の参照フレームのうちの「第1の」参照フレーム(例えば、最小のインデックスを有するもの、又は、シーケンスの中で最も早く登場するもの)を指す場合もあり、「第2の」参照フレームは、「別の」参照フレームを指す場合があるだけでなく、複数の参照フレームのうちの「第2の」参照フレーム(例えば、2番目に小さいインデックスを有するもの、又は、シーケンスの中で2番目に早く登場するもの)を指す場合もある。
【0166】
[0187] ここで、本開示の様々な実施形態において、「XYZがシグナリングされる」とは、符号化プロセス中に、XYZが、コーディングされたビットストリームに符号化されることを指す場合があり;及び/又は、コーディングされたビットストリームが或るデバイスから別のデバイスへ伝送された後に、「XYZがシグナリングされる」とは、復号化プロセス中に、XYZが、コーディングされたビットストリームから復号化/抽出されることを指す場合がある。
【0167】
[0188] ここで、本開示における様々な実施形態において、参照フレームの方向は、参照フレームが表示順序において現在のフレームより前であるか、又は表示順序において現在のフレームより後であるかによって決定される可能性がある。複合参照モードに対する一部の実装では、1つの動きベクトル・ペアに対する両方の参照フレームのピクチャ・オーダー・カウント(POC)が、現在のフレームのPOCよりも大きいか又は小さい場合、2つの参照フレームの方向は同じである。そうではない場合、一方の参照フレームのPOCが現在のフレームのPOCより大きく、他方の参照フレームのPOCが現在のフレームのPOCより小さい場合、2つの参照フレームの方向は相違している。
【0168】
[0189] ここで、本開示における様々な実施形態において、「ブロック」は、予測ブロック、コーディング・ブロック、変換ブロック、又はコーディング・ユニット(CU)を指す場合がある。
【0169】
[0190] ステップ1810に関し、デバイスは、図5の電子デバイス(530)又は図8のビデオ・デコーダ(810)であってもよい。一部の実装において、デバイスは、図6のエンコーダ(620)内のデコーダ(633)であってもよい。他の実装において、デバイスは、図5の電子デバイス(530)の一部、図8のビデオ・デコーダ(810)の一部、又は図6のエンコーダ(620)内のデコーダ(633)の一部であってもよい。コーディングされたビデオ・ビットストリームは、図8におけるコーディングされたビデオ・シーケンスであってもよいし、或いは、図6又は図7における中間的なコーディングされたデータであってもよい。
【0170】
[0191] ステップ1820に関し、デバイスは、現在のフレームの現在のブロックに関するインター予測モードを、コーディングされたビデオ・ビットストリームから抽出することが可能である。一部の実装では、現在のブロックは、複合参照モードであってもよい。インター予測モードは、新たなインター・コーディングされるモード、例えばJOINT_NEWMVであってもよく、それは、第1の参照フレームのための第1のデルタMVと第2の参照フレームのための第2のデルタMVとが一緒にシグナリングされることを示す。
【0171】
[0192] ステップ1830に関し、インター予測モードが、第1の参照フレームに対する第1のデルタMVと第2の参照フレームに対する第2のデルタMVとが一緒にシグナリングされることを示すモードであることに応答して:デバイスは、現在のブロックに対するジョイント・デルタ動きベクトル(MV)を、コーディングされたビデオ・ビットストリームから取り出し、ジョイント・デルタMVに基づいて、第1のデルタMVと第2のデルタMVを導出することが可能である。
【0172】
[0193] 一部の実装において、モードは、JOINT_NEWMVモードとして名付けられる新たなインター・コーディングされるモードであってもよく、このモードは、複数の参照リスト(例えば、参照リスト0及び参照リスト1)に関するデルタMVが共同でシグナリングされ及び/又は伝送されることを示す。現在のフレームが2つの参照フレームに基づいてインター予測される状況下で、インター予測モードがJOINT_NEWMVモードに等しい場合、第1の参照リスト(参照リスト0)によって示される第1の参照フレーム、及び第2の参照リスト(参照リスト1)によって示される第2の参照フレームに対するデルタMVは、共同でシグナリングされる。従って、例えば、joint_delta_mvと名付けられる唯1つのデルタMVが、現在のブロックを復号化するためにシグナリングされて伝送されることが可能であり、この場合に、参照リスト0及び参照リスト1のためのデルタMVは、ジョイント・デルタMV(joint_delta_mv)から導出されてもよい。ジョイント・デルタMVは、MV差分(MVD)と呼ばれてもよい。
【0173】
[0194] 一部の他の実装では、モードは複合参照モードの1つであり;コーディングされたビデオ・ビットストリームから取り出されるシンタックス・ターム(シンタックスと簡略化される場合がある)が、インター予測モードを示す。
【0174】
[0195] 幾つかの他の実装において、モードは、JOINT_NEWMVであり;予測モードは:
JOINT_NEWMVモード,
NEAR_NEARMVモード,
NEAR_NEWMVモード,
NEW_NEARMVモード,
NEW_NEWMVモード,及び
GLOBAL_GLOBALMVモード

のうちの1つである。
【0175】
[0196] 一部の他の実装では、インター予測モードがそのモード(JOINT_NEWMVモード)であるかどうかは:第1の参照フレームと現在のフレームとの間の第1のピクチャ・オーダー・カウント(POC)距離、第2の参照フレームと現在のフレームとの間の第2のPOC距離、又は、第1の参照フレーム及び第2の参照フレームの現在のフレームに対する方向関係、のうちの少なくとも1つに基づいている。
【0176】
[0197] 一部の他の実装では、方向関係が反対方向を示しているか、又は、第1のPOC距離が第2のPOC距離に等しいことに応じて、インター予測モードはそのモードである。一部の他の実装では、方向関係が反対方向を示し、且つ、第1のPOC距離が第2のPOC距離に等しい場合に、インター予測モードはそのモードである。
【0177】
[0198] 一部の他の実装では、方法1800は、デバイスが、インター予測モードを導出するためのコンテキストを:第1の参照フレームと現在のフレームとの間の第1のピクチャ・オーダー・カウント(POC)距離、第2の参照フレームと現在のフレームとの間の第2のPOC距離、又は、第1の参照フレーム及び第2の参照フレームの現在のフレームに対する方向関係、のうちの少なくとも1つに基づいて導出するステップを更に含むことが可能である。
【0178】
[0199] 一部の他の実装では、現在のブロックが複合参照モードとしてコーディングされる場合に、1つのシンタックスは、現在のブロックに対してJOINT_NEWMVモードが使用されるか否かを示すためにシグナリングされることが可能である。
【0179】
[0200] 一部の他の実装では、JOINT_NEWMVモードは、複合参照モードのリストに追加される新しいモードである可能性があり、その結果、複合参照モードのリストは、
JOINT_NEWMVモード,
NEAR_NEARMVモード,
NEAR_NEWMVモード,
NEW_NEARMVモード,
NEW_NEWMVモード,及び
GLOBAL_GLOBALMVモード,
を含む可能性がある。従って、JOINT_NEWMVモードは、NEAR_NEARMVモード,NEAR_NEWMVモード,NEW_NEARMVモード,NEW_NEWMV mode,及び/又はGLOBAL_GLOBALMVモードのうちの何れかと同様な方式で(例えば、共通シンタックスを介して)シグナリングされ及び/又は伝送されることが可能である。
【0180】
[0201] 一部の他の実装では、JOINT_NEWMVモードは、2つの参照フレームの方向及び/又は2つの参照フレームの現在のフレームに対する距離に基づいて条件付きでシグナリングされてもよい。例えば、JOINT_NEWMVモードは、2つの参照フレームの方向が異なる場合、及び/又は、現在のフレームに対する2つの参照フレームの距離の絶対値が同じである場合にのみシグナリングされてもよい。
【0181】
[0202] 一部の他の実装では、JOINT_NEWMVモードをシグナリングすることに関するコンテキストは、2つの参照フレームの方向関係及び/又は2つの参照フレームの現在のフレームに対する距離に依存する可能性がある。2つの参照フレームの現在のフレームに対する方向関係は、2つの参照フレームの方向が同じであるか又は反対であるかを指す可能性がある。2つの参照フレームの現在のフレームに対する距離は、2つの参照フレームの現在のフレームに対するPOC距離を指す場合があり、これは:2つの参照フレームの現在のフレームに対するPOC距離の絶対値が同一であるか又は相違するか; 2つの参照フレームの現在のフレームに対するPOC距離の比率;及び/又は、2つの参照フレームにおける第1の参照フレームに対する第1のPOC距離の絶対値が、2つの参照フレームにおける第2の参照フレームに対する第2のPOC距離の絶対値よりも大きいかどうか、のうちの少なくとも1つを含む可能性がある。
【0182】
[0203] 本開示における様々な実施形態/実装では、ステップ1803において、ジョイント・デルタMVに基づいて第1のデルタMV及び第2のデルタMVを導出するステップは、2つのデルタMVのうちの一方をジョイント・デルタMVとして決定するステップと、ジョイント・デルタMVをスケーリングして、以下のもの:
第1の参照フレームと現在のフレームとの間の第1のPOC距離、
第2の参照フレームと現在のフレームとの間の第2のPOC距離、又は
第1の参照フレーム及び第2の参照フレームの現在のフレームに対する方向関係
のうちの少なくとも1つに従ってデルタMVの他方を取得するステップを含む可能性がある。一部の実装では、スケーリングは線形スケーリング方法であってよく、即ち、スケーリングされたデルタMVの絶対値は、第2のPOC距離を第1のPOC距離で除算した比率に比例していてもよく、スケーリングされたデルタMVの符号は、方向関係に従って決定されてもよい。
一例として、第1のPOC距離が4であり、第2のPOC距離が8であり、方向関係は現在のフレームに対して第1及び第2の参照フレームについて同じ方向である場合、第2のデルタMVは、ジョイント・デルタMVに、2(=8/4)という係数によりスケーリング/乗算することによって取得され;第2のデルタMVは、方向関係が同じ方向であるので、ジョイント・デルタMVと同じ符号を有する。
【0183】
別の例として、第1のPOC距離が3であり、第2のPOC距離が-9であり、方向関係は現在のフレームに対して第1及び第2の参照フレームについて反対方向である場合、第2のデルタMVは、ジョイント・デルタMVに、-3(=-9/3)という係数によりスケーリング/乗算することによって取得され;第2のデルタMVは、方向関係が反対方向であるので、ジョイント・デルタMVと反対の符号を有する。
【0184】
[0204] 一部の他の実装では、インター予測モードがそのモードであることに応答して、デバイスは、現在のブロックに対してオプティカル・フロー動き精密化を実行する。
【0185】
[0205] 一部の他の実装では、方法1800は、デバイスが、コーディングされたビデオ・ビットストリームから、オプティカル・フロー動き精密化がそのモードに対して実行されるかどうかを示すフラグを抽出するステップ;及び、オプティカル・フロー動き精密化がそのモードに対して実行されることを、フラグが示していることに応答して、デバイスが、現在のブロックに対してオプティカル・フロー動き精密化を実行するステップを更に含む可能性がある。一部の他の実装では、フラグは、シーケンス・パラメータ・セット(SPS)、ビデオ・パラメータ・セット(VPS)、ピクチャ・パラメータ・セット(PPS)、ピクチャ・ヘッダ、タイル・ヘッダ、スライス・ヘッダ、フレーム・ヘッダ、コーディング・ツリー・ユニット(CTU)ヘッダ、又は、スーパーブロック・ヘッダのうちの少なくとも1つを含むハイ・レベル・シンタックスでシグナリング及び/又は伝送されてもよい。
【0186】
[0206] 一部の他の実装では、方法1800は、モードは現在のブロックに適用可能であるかどうかを示すフラグを、コーディングされたビデオ・ビットストリームから、デバイスが抽出するステップを更に含む可能性がある。
【0187】
[0207] 一部の他の実装では、オプティカル・フロー動き精密化は、常に、JOINT_NEWMVモードに適用される。
【0188】
[0208] 一部の他の実装では、オプティカル・フロー動き精密化がJOINT_NEWMVモードに適用されるか否かを示すために、フラグ/シンタックスがシグナリングされる。
【0189】
[0209] 一部の他の実装では、フラグがハイ・レベル・シンタックスでシグナリングされ、JOINT_NEWMVモードが使用されることが可能であるか否かを示し、フラグは、SPS、VPS、PPS、ピクチャ・ヘッダ、タイル・ヘッダ、スライス・ヘッダ、フレーム・ヘッダ、CTU(又はスーパーブロック)ヘッダを含むがこれらに限定されない。
【0190】
[0210] 複合参照モードに関する一部の実装では、optflow_flagと名付けられてもよい第1のフラグ/シンタックスがデバイスへ伝送されて、オプティカル・フロー動き精密化がJOINT_NEWMVモードに適用されるか否かを示すことが可能である。一部の実装では、第1のフラグの値が0であることは、オプティカル・フロー動き精密化がJOINT_NEWMVモード(例えば、JOINT_NEWMV_OPTFLOWモード)に適用されることを示す可能性があり;第1のフラグの値が1であることは、オプティカル・フロー動き精密化がJOINT_NEWMVモードに適用されないことを示す可能性がある。逆に、一部の他の実装では、第1のフラグの値が1であることは、オプティカル・フロー動き精密化がJOINT_NEWMVモード(例えば、JOINT_NEWMV_OPTFLOWモード)に適用されることを示す可能性があり;第1のフラグの値が0であることは、オプティカル・フロー動き精密化がJOINT_NEWMVモードに適用されないことを示す可能性がある。
【0191】
[0211] 複合参照モードに関する一部の実装では、例えば、joint_mvd_flagと名付けられてもよい第2のフラグ/シンタックスがデバイスへ伝送されて、JOINT_NEWMVモードを使用することが可能であるか否かを示すことが可能である。
【0192】
[0212] 一部の他の実装では、第2のフラグの値(例えば、joint_mvd_flag)がJOINT_NEWMVモードに関するデルタMVが使用され得ることを示すことに応答して、例えば、joint_delta_mvと名付けられてもよい1つのジョイント・デルタMVのみがシグナリングされ、デコーダへ伝送され、参照リスト0及び参照リスト1に関するデルタMVは、ジョイント・デルタMV(例えば、joint_delta_mv)から導出されることが可能である。第2のフラグの値(例えば、joint_mvd_flag)がJOINT_NEWMVモードは使用されない可能性があることを示すことに応答して、ゼロ又は1つ又は2つのデルタMVが、インター予測モードに基づいて、参照リスト0及び/又は参照リスト1に対して別々にシグナリングされてもよい。例えば、単一のインター・モードに対して「NEAR」であるか、又は2つが複合モードに対して「NEAR」である場合、(この場合において、ある状況下では、デルタMVは必要とされることはない可能性がある)、ゼロ個のデルタMVがシグナリング/伝送される可能性があり;単一のインター・モードに対して「NEW」であるか、又は他のインター予測モードに対して1つは「NEW」であり、1つは「NEAR」である場合、1つのデルタMVがシグナリング/伝送される可能性があり;インター予測モードに対して2つの「NEW」である場合、2つのデルタMVがシグナリング/伝送される可能性がある
[0213] 一部の実装では、第2のフラグの値が0であることは、JOINT_NEWMVモードを使用することが可能であることを示す可能性があり、例えば、参照リスト0及び参照リスト1のデルタMVは一緒にシグナリングされ、唯1つのジョイント・デルタMVがシグナリングされ伝送され;第2のフラグの値が1であることは、JOINT_NEWMVモードを使用することはできないことを示す可能性があり、例えば、参照リスト0及び参照リスト1のデルタMVは一緒にはシグナリングされず、ゼロ個(又は1つ又は2つ)のジョイント・デルタMVがシグナリングされて伝送される。逆に、他の一部の実装では、第2のフラグの値が1であることは、JOINT_NEWMVモードを使用できることを示す可能性があり;また、フラグの値が0であることは、JOINT_NEWMVモードを使用できないことを示す可能性がある。
【0193】
[0214] 一部の実装では、現在のブロックのインター予測モードがJOINT_NEWMVモードであり、及び/又は、フラグ(e.g,joint_mvd_flag)が、参照リスト0及び参照リスト1のデルタMVは一緒にシグナリングされることを示す場合、1つの参照リスト(例えば、参照リスト0又は参照リスト1)に対するデルタMVは、joint_delta_mvとして決定されてもよく;また、別の参照リストに対するデルタMVは、第1及び第2の参照フレームの現在のフレームまでのPOC距離と2つの参照フレームの方向とに基づいて、joint_delta_mvから導出されることが可能である。
【0194】
[0215] 一部の他の実装では、現在のブロックのインター予測モードは、JOINT_NEWMVモードであり;ステップ1830は、第1のデルタMVをジョイント・デルタMVとして決定するステップ;及び、
第1の参照フレームと現在のフレームとの間の第1のピクチャ・オーダー・カウント(POC)距離、
第2の参照フレームと現在のフレームとの間の第2のPOC距離、又は
第1の参照フレーム及び第2の参照フレームの現在のフレームに対する方向関係
のうちの少なくとも1つに従って、ジョイント・デルタMVをスケーリングすることによって、第2のデルタMVを決定するステップを含む可能性がある。
【0195】
[0216] 一部の他の実装では、現在のブロックのインター予測モードは、JOINT_NEWMVモードであり;ステップ1830は、第2のデルタMVをジョイント・デルタMVとして決定するステップ;及び、
第1の参照フレームと現在のフレームとの間の第1のピクチャ・オーダー・カウント(POC)距離、
第2の参照フレームと現在のフレームとの間の第2のPOC距離、又は
第1の参照フレーム及び第2の参照フレームの現在のフレームに対する方向関係
のうちの少なくとも1つに従って、ジョイント・デルタMVをスケーリングすることによって、第1のデルタMVを決定するステップを含む可能性がある。
【0196】
[0217] 一部の実施形態では、参照リスト0(又はリスト1)のデルタMVは、joint_delta_mvに常に等しく設定されてもよく、参照リスト1(又はリスト0)のデルタMVは、参照フレームの現在のフレームに対するPOC距離及び/又は2つの参照フレームの方向に従って、joint_delta_mvからスケーリングされてもよい。
【0197】
[0218] 一部の他の実装では、現在のブロックのインター予測モードは、JOINT_NEWMVモードであり;ステップ1830は、第1の参照フレームと現在のフレームとの間の第1の絶対POC距離が、第2の参照フレームと現在のフレームとの間の第2の絶対POC距離よりも大きいことに応答して:
第1のデルタMVを、ジョイント・デルタMVとして決定し;
ジョイント・デルタMVをスケーリングすることによって第2のデルタMVを決定することを:
第1の参照フレームと現在のフレームとの間の第1のPOC距離、
第2の参照フレームと現在のフレームとの間の第2のPOC距離、又は
第1の参照フレーム及び第2の参照フレームの現在のフレームに対する方向関係
のうちの少なくとも1つに従って行うステップを含むことが可能である。
【0198】
[0219] 一部の他の実装では、現在のブロックのインター予測モードは、JOINT_NEWMVモードであり;ステップ1830は、第1の参照フレームと現在のフレームとの間の第1の絶対POC距離が、第2の参照フレームと現在のフレームとの間の第2の絶対POC距離よりも小さいことに応答して:
第2のデルタMVを、ジョイント・デルタMVとして決定し;
ジョイント・デルタMVをスケーリングすることによって第1のデルタMVを決定することを:
第1の参照フレームと現在のフレームとの間の第1のPOC距離、
第2の参照フレームと現在のフレームとの間の第2のPOC距離、又は
第1の参照フレーム及び第2の参照フレームの現在のフレームに対する方向関係
のうちの少なくとも1つに従って行うステップを含むことが可能である。
【0199】
[0220] 一部の実施形態では、参照リスト0(又はリスト1)と現在のフレームとの間の絶対POC距離が、参照リスト1(又はリスト0)と現在のフレームとの間の絶対POC距離よりも大きい場合、参照リスト0(又はリスト1)のうち、より大きな絶対POC距離を有する一方のデルタMVが、joint_delta_mvに等しく設定されることが可能である。参照リスト1(又はリスト0)のうち、より小さな絶対POC距離を有する他方のデルタMVは、参照フレームの現在のフレームに対するPOC距離及び/又は2つの参照フレームの方向に従って、joint_delta_mvからスケーリングされることが可能である。
【0200】
[0221] 一部の他の実装では、現在のブロックのインター予測モードは、JOINT_NEWMVモードであり;ステップ1830は、
第1の参照フレームと現在のフレームとの間の第1の絶対POC距離が、第2の参照フレームと現在のフレームとの間の第2の絶対POC距離に等しいことに応答して:第1のデルタMVをジョイント・デルタMVとして決定し;
第1の参照フレーム及び第2の参照フレームの現在のフレームに対する方向関係が同じであることに応答して:第2のデルタMVをジョイント・デルタMVとして決定し;
第1の参照フレーム及び第2の参照フレームの現在のフレームに対する方向関係が反対であることに応答して:第2のデルタMVを、-1が乗算されたジョイント・デルタMVとして決定するステップを含む可能性がある。
【0201】
[0222] 一部の他の実装では、参照リスト1と現在のフレームとの間の絶対POC距離が、参照リスト0と現在のフレームとの間の絶対POC距離と同じである場合、参照リスト0のデルタMVは、joint_delta_mvに等しく設定されることが可能である。2つの参照フレームの方向が同じである場合、参照リスト1のデルタMVは、joint_delta_mvに等しく同様に設定されてもよい。そうでない場合、2つの参照フレームの方向が相違している場合、参照リスト1のデルタMVは、-1が乗算されたjoint_delta_mvであるように設定される。
【0202】
[0223] 一部の他の実装では、オプティカル・フローに基づくアプローチを使用して、複合予測のためにサブ・ブロック単位で動きベクトル(MV)を洗練することが可能である。特に、オプティカル・フロー方程式は、最小二乗問題を定式化するように適用されてもよく、そこから、精密な動きが、複合インター予測サンプルの勾配から導出されることが可能である。これらの精密な動きにより、サブ・ブロック毎のMVは予測ブロック内で洗練されることが可能であり、これはインター予測品質を向上させる可能性がある。あるコーディング機能は、双-方向オプティカル・フロー(bi-directional optical flow,BDOF)の概念の拡張である可能性があり、なぜなら、それは2つの参照ブロックは現在のブロックに対して任意の時間的距離を有する場合に、MVの精密化をサポートするからである。
【0203】
[0224] BDOFを用いて、現在のブロックの双-予測の予測は、その2つの参照ブロックから導出される、より高精度の動きベクトルを介して強化される。より高精度の動きベクトルを用いて(例えば、オプティカル・フロー精密化を介して)、動きベクトルの予測誤差を低減することが可能であり、その結果、より良いコーディング・パフォーマンスとなる。一部の他の実装では、1つ以上の追加の複合インター・モードが追加されてもよく、これらは、
NEAR_NEARMV_OPTFLOWモード(例えば、オプティカル・フロー動きベクトル精密化を伴うNEAR_NEARMVモード),
NEAR_NEWMV_OPTFLOWモード(例えば、オプティカル・フロー動きベクトル精密化を伴うNEAR_NEWMVモード),
NEW_NEARMV_OPTFLOWモード(例えば、オプティカル・フロー動きベクトル精密化を伴うNEW_NEARMVモード),及び/又は
NEW_NEWMV_OPTFLOWモード(例えば、オプティカル・フロー動きベクトル精密化を伴うNEW_NEWMVモード)を含む可能性がある。
これらのオプティカル・フロー動きベクトル精密化を伴う上記の複合インター・モードは、オプティカル・フロー・モードと呼ばれてもよく、参照MVタイプは、通常の複合モードにおけるものと同様に定義されてもよい(例えば、NEAR_NEWMV_OPTFLOWは、NEAR_NEWMVと同じ参照MVタイプを有する)。複合予測は、本来のMVの代わりに、サブ・ブロックごとに精密化されたMVに基づいて実行される可能性がある。
【0204】
[0225] 本開示における実施形態は、別々に又は任意の順序で組み合わせて使用されてもよい。本開示において、任意の実施形態における任意のステップ又は処理は、望まれるように任意の量又は任意の順序で組み合わされる可能性がある。本開示において、任意の実施形態における2つ以上のステップ又は処理は、並行して実行されてもよい。更に、各方法(又は実施形態)、エンコーダ、及びデコーダは、処理回路(例えば、1つ以上のプロセッサ、又は1つ以上の集積回路)によって実現されてもよい。一例では、1つ以上のプロセッサは、非一時的なコンピュータ読み取り可能な媒体に記憶されたプログラムを実行する。本開示の実施形態は、ルマ・ブロック又はクロマ・ブロックに適用される可能性がある。
【0205】
[0226] 上述した技術は、コンピュータ読み取り可能な命令を用いてコンピュータ・ソフトウェアとして実装することが可能であり、1つ以上のコンピュータ読み取り可能な媒体に物理的に記憶することが可能である。例えば、図19は、開示される対象事項の特定の実施形態を実現するのに適したコンピュータ・システム(2000)を示す。
【0206】
[0227] コンピュータ・ソフトウェアは、アセンブリ、コンパイル、リンク、又は類似の仕組みの対象となり得る任意の適切なマシン・コード又はコンピュータ言語を使用してコーディングされて、1つ以上のコンピュータ中央処理ユニット(CPU)、グラフィックス処理ユニット(GPU)等によって、直接的に実行されることが可能な命令、又は解釈やマイクロコード実行などを経由する命令、を含むコードを作成することが可能である。
【0207】
[0228] 命令は、例えば、パーソナル・コンピュータ、タブレット・コンピュータ、サーバー、スマートフォン、ゲーミング・デバイス、モノのインターネット・デバイス等を含む、種々のタイプのコンピュータ又はそれらのコンポーネント上で実行されることが可能である。
【0208】
[0229] コンピュータ・システム(2000)に関して図19に示されるコンポーネントは、本質的に例示的なものであり、本開示の実施形態を実現するコンピュータ・ソフトウェアの使用範囲又は機能性に関する如何なる制限も示唆するようには意図されていない。また、コンポーネントの構成は、コンピュータ・システム(2000)の例示的な実施形態に示されたコンポーネントの任意の1つ又は組み合わせに関する何らかの従属性や要件を有するものとして解釈されてはならない。
【0209】
[0230] コンピュータ・システム(2000)は、特定のヒューマン・インターフェース入力デバイスを含むことが可能である。このようなヒューマン・インターフェース入力デバイスは、例えば、触覚入力(例えば、キーストローク、スワイプ、データ・グローブの動き)、聴覚的な入力(例えば、声、拍手)、視覚的な入力(例えば、ジェスチャ)、嗅覚的な入力(図示されていない)を介して、1人以上の人間ユーザーによる入力に応答することが可能である。また、ヒューマン・インターフェース・デバイスは、オーディオ(例えば、会話、音楽、周囲音)、画像(例えば、スキャンされた画像、静止画像カメラから得られる写真画像)、ビデオ(例えば、2次元ビデオ、ステレオスコピック・ピクチャを含む3次元ビデオ)のような、人間による意識的な入力に必ずしも直接的に関係しない特定のメディアを捕捉するために使用することも可能である。
【0210】
[0231] 入力ヒューマン・インターフェース・デバイスは、キーボード(2001)、マウス(2002)、トラックパッド(2003)、タッチ・スクリーン(2010)、データ・グローブ(不図示)、ジョイスティック(2005)、マイクロホン(2006)、スキャナ(2007)、カメラ(2008)のうちの(描かれているものはそれぞれ唯1つであるが)1つ以上を含む可能性がある。
【0211】
[0232] コンピュータ・システム(2000)は、特定のヒューマン・インターフェース出力デバイスを含むことも可能である。このようなヒューマン・インターフェース出力デバイスは、例えば、触覚出力、音、光、及び嗅覚/味覚を通じて、1人以上の人間ユーザーの感覚を刺激することが可能である。このようなヒューマン・インターフェース出力デバイスは、触覚出力デバイス(例えば、タッチ・スクリーン(2010)、データ・グローブ(不図示)、ジョイスティック(2005)による触覚フィードバックであるが、入力として機能しない触覚フィードバック・デバイスが存在する可能性もある)、聴覚的な出力デバイス(例えば、スピーカー(2009)、ヘッドフォン(不図示せず))、視覚的な出力デバイス(例えば、CRTスクリーン、LCDスクリーン、プラズマ・スクリーン、OLEDスクリーンを含むスクリーン(2010)であり、各々はタッチ・スクリーン入力機能を備えるか又は備えておらず、各々は触覚フィードバック機能を備えるか又は備えておらず、それらのうちの幾つかは、二次元的な視覚的な出力、立体出力のような手段による三次元以上の出力を出力することが可能であってもよい;仮想現実メガネ(図示せず)、ホログラフィック・ディスプレイ、及びスモーク・タンク(図示せず))、及びプリンタ(図示せず)を含むことが可能である。
【0212】
[0233] コンピュータ・システム(2000)はまた、CD/DVD等の媒体(2021)を使うCD/DVD ROM/RW(2020)を含む光媒体、サム・ドライブ(2022)、リムーバブル・ハード・ドライブ又はソリッド・ステート・ドライブ(2023)、テープ及びフロッピー・ディスク(図示せず)等のレガシー磁気媒体(不図示)、セキュリティ・ドングル(不図示)等の特殊化されたROM/ASIC/PLDベースのデバイスのような、人間のアクセスが可能な記憶デバイス及びそれらに関連する媒体を含むことも可能である。
【0213】
[0234] 当業者は、ここに開示される対象事項に関連して使用される用語「コンピュータ読み取り可能な媒体」は、伝送媒体、搬送波、又はその他の過渡的な信号を包含しない、ということも理解するはずである。
【0214】
[0235] コンピュータ・システム(2000)は、1つ以上の通信ネットワーク(2655)へのネットワーク・インターフェース(2054)を含むことも可能である。ネットワークは、例えば、無線、有線、光であるとすることが可能である。ネットワークは、更に、ローカル、ワイド・エリア、メトロポリタン、車両及びインダストリアル、リアルタイム、遅延耐性などであるとすることが可能である。ネットワークの例は、イーサーネット、無線LAN、セルラー・ネットワーク(GSM、3G、4G、5G、LTE等を含む)、TVの有線又は無線ワイド・エリア・デジタル・ネットワーク(ケーブルTV、衛星TV、及び地上放送TVを含む)、CANBusを含む車両及びインダストリアルなどを含む。特定のネットワークは、一般に、特定の汎用データ・ポート又は周辺バス(2049)に取り付けられる外部ネットワーク・インターフェース・アダプタを必要とする(例えば、コンピュータ・システム(2000)のUSBポート);その他は、一般に、以下に説明するようなシステム・バスに取り付けることによって、コンピュータ・システム(2000)のコアに統合される(例えば、イーサーネット・インターフェースはPCコンピュータ・システム内に、セルラー・ネットワーク・インターフェースはスマートフォン・コンピュータ・システム内に統合される)。これらのうちの任意のネットワークを使用して、コンピュータ・システム(2000)は、他のエンティティと通信することが可能である。このような通信は、片-方向受信専用(例えば、放送テレビ)、片-方向送信専用(例えば、特定のCANbusデバイスに対するCANbus)、又は、双-方向の、例えばローカル又はワイド・エリア・デジタル・ネットワークを使用する他のコンピュータ・システムに対するものであるとすることが可能である。特定のプロトコル及びプロトコル・スタックは、上述のように、それらのネットワーク及びネットワーク・インターフェースの各々で使用されることが可能である。
【0215】
[0236] 前述のヒューマン・インターフェース・デバイス、ヒューマン・アクセシブル・ストレージ・デバイス、及びネットワーク・インターフェースは、コンピュータ・システム(2000)のコア(2040)に取り付けられることが可能である。
【0216】
[0237] コア(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等を含む。
【0217】
[0238] CPU(2041)、GPU(2042)、FPGA(2043)、及びアクセラレータ(2044)は、組み合わされて、前述のコンピュータ・コードを構成することが可能な特定の命令を実行することが可能である。コンピュータ・コードは、ROM(2045)又はRAM(2046)に格納されることが可能である。一時的なデータはRAM(2046)に格納されることが可能である一方、永続的なデータは例えば内的な大容量ストレージ(2047)に格納されることが可能である。任意のメモリ・デバイスに対する高速な記憶及び検索は、キャッシュ・メモリを利用することで可能になる可能性があり、キャッシュ・メモリは、1つ以上のCPU(2041)、GPU(2042)、大容量ストレージ(2047)、ROM(2045)、RAM(2046)等と密接に関連付けることが可能である。
【0218】
[0239] コンピュータ読み取り可能な媒体は、様々なコンピュータ実装動作を実行するためのコンピュータ・コードをそこに有することが可能である。媒体及びコンピュータ・コードは、本開示の目的のために特別に設計及び構築されたものであるとすることが可能であり、又はそれらは、コンピュータ・ソフトウェアの分野における当業者にとって周知であり且つ入手可能な種類のものであるとすることが可能である。
【0219】
[0240] 非限定的な例として、アーキテクチャ(2000)、具体的にはコア(2040)を有するコンピュータ・システムは、プロセッサ(CPU、GPU、FPGA、アクセラレータ等を含む)の結果として、1つ以上の有形のコンピュータ読み取り可能な媒体に具現化されたソフトウェアを実行する機能を提供することが可能である。そのようなコンピュータ読み取り可能な媒体は、コア内部の大容量ストレージ(2047)又はROM(2045)のような非一時的な性質のコア(2040)の特定のストレージと同様に、上述したようなユーザー・アクセシブル大容量ストレージに関連する媒体であるとすることが可能である。本開示の様々な実施形態を実現するソフトウェアは、そのようなデバイスに記憶され、コア(2040)によって実行されることが可能である。コンピュータ読み取り可能な媒体は、特定のニーズに応じて、1つ以上のメモリ・デバイス又はチップを含むことが可能である。ソフトウェアは、RAM(2046)に記憶されたデータ構造を定めること、及びソフトウェアによって定められたプロセスに従ってそのようなデータ構造を修正することを含む、本願で説明された特定のプロセス又は特定のプロセスの特定の部分を、コア(2040)、具体的にはその中のプロセッサ(CPU、GPU、FPGA等を含む)に実行させることが可能である。更に又は代替として、コンピュータ・システムは、回路(例えば、アクセラレータ(2044))内に配線された又はその他の方法で具現化されたロジックの結果として機能を提供することが可能であり、その回路は、本件で説明された特定のプロセス又は特定のプロセスの特定の部分を実行することを、ソフトウェアの代わりに又はソフトウェアと共に実行することが可能である。ソフトウェアに対する言及はロジックを含み、必要に応じて、その逆も可能である。コンピュータ読み取り可能な媒体に対する言及は、実行のためのソフトウェアを記憶する(集積回路(IC)のような)回路、実行のためのロジックを具体化する回路、又は適切な場合にはその両方を包含することが可能である。本開示はハードウェア及びソフトウェアの適切な任意の組み合わせを包含する。
【0220】
[0241] 特定の発明が例示的な実施形態に関連して述べられているが、その記述は限定であるようには意図されていない。本発明の例示的な実施形態及び追加の実施形態の種々の修正は、本説明から当業者には明らかであろう。当業者は、本発明の精神及び範囲から逸脱することなく、本件で例示及び説明されている例示的な実施形態に、これら及び種々の他の修正が施される可能性があることを容易に認めるであろう。従って、添付のクレームは任意のそのような修正及び代替の実施形態をカバーするであろう、ということが想定されている。図中の特定の比率は誇張される一方、他の比率は最小限にされている可能性がある。従って、本開示及び図面は、限定的ではなく例示的であると解釈されるべきである。
【0221】
[0242] 以下は略語のリストであり、そのうちの幾つかは本開示に登場する可能性がある:
JEM:joint exploration model;共同探査モデル
VVC:versatile video coding ;汎用ビデオ・コーディング
BMS:benchmark set;ベンチマーク・セット
MV:Motion Vector;動きベクトル
HEVC:High Efficiency Video Coding:高効率ビデオ・コーディング
SEI:Supplementary Enhancement Information;補足強化情報
VUI:Video Usability Information;ビデオ利用情報
GOPs:Groups of Pictures;ピクチャ・グループ
TUs:Transform Units;変換ユニット
PUs:Prediction Units;予測ユニット
CTUs:Coding Tree Units;コーディング・ツリー・ユニット
CTBs:Coding Tree Blocks;コーディング・ツリー・ブロック
PBs:Prediction Blocks;予測ブロック
HRD:Hypothetical Reference Decoder;仮想参照デコーダ
SNR:Signal Noise Ratio;信号雑音比
CPUs:Central Processing Units;中央処理ユニット
GPUs:Graphics Processing Units;グラフィックス処理ユニット
CRT:Cathode Ray Tube;陰極線管
LCD:Liquid-Crystal Display;液晶ディスプレイ
OLED:Organic Light-Emitting Diode;有機発光ダイオード
CD:Compact Disc;コンパクト・ディスク
DVD:Digital Video Disc;デジタル・ビデオ・ディスク
ROM:Read-Only Memory;リード・オンリー・メモリ
RAM:Random Access Memory;ランダム・アクセス・メモリ
ASIC:Application-Specific Integrated Circuit;特定用途向け集積回路
PLD:Programmable Logic Device;プログラマブル論理デバイス
LAN:Local Area Network;ローカル・エリア・ネットワーク
GSM:Global System for Mobile communications;移動通信用グローバル・システム
LTE:Long-Term Evolution;ロング・ターム・エボリューション
CANBus:Controller Area Network Bus;コントローラ・エリア・ネットワーク・バス
USB:Universal Serial Bus;ユニバーサル・シリアル・バス
PCI:Peripheral Component Interconnect;周辺素子インターコネクト
FPGA:Field Programmable Gate Areas;フィールド・プログラマブル・ゲート・アレイ
SSD:solid-state drive;ソリッド・ステート・デバイス
IC:Integrated Circuit;集積回路
HDR:high dynamic range;ハイ・ダイナミック・レンジ
SDR:standard dynamic range;標準ダイナミック・レンジ
JVET:Joint Video Exploration Team;共同ビデオ探査チーム
MPM:most probable mode;最確モード
WAIP:Wide-Angle Intra Prediction;広角イントラ予測
CU:Coding Unit;コーディング・ユニット
PU:Prediction Unit;予測ユニット
TU:Transform Unit;変換ユニット
CTU:Coding Tree Unit;コーディング・ツリー・ユニット
PDPC:Position Dependent Prediction Combination;位置依存予測コンビネーション
ISP:Intra Sub-Partitions;イントラ・サブ・パーティション
SPS:Sequence Parameter Set;シーケンス・パラメータ・セット
PPS:Picture Parameter Set;ピクチャ・パラメータ・セット
APS:Adaptation Parameter Set;適応パラメータ・セット
VPS:Video Parameter Set;ビデオ・パラメータ・セット
DPS:Decoding Parameter Set;復号化パラメータ・セット
ALF:Adaptive Loop Filter;適応ループ・フィルタ
SAO:Sample Adaptive Offset;サンプル適応オフセット
CC-ALF:Cross-Component Adaptive Loop Filter;クロス・コンポーネント適応ループ・フィルタ
CDEF:Constrained Directional Enhancement Filter;制限付き方向エンハンスメント・フィルタ
CCSO:Cross-Component Sample Offset;クロス・コンポーネント・サンプル・オフセット
LSO:Local Sample Offset;ローカル・サンプル・オフセット
LR:Loop Restoration Filter;ループ復元フィルタ
AV1:AOMedia Video 1;AOMediaビデオ1
AV2:AOMedia Video 2;AOMediaビデオ2
MVD:Motion Vector difference;動きベクトル差分
CfL:Chroma from Luma;クロマ・フロム・ルマ
SDT:Semi Decoupled Tree;準分離型ツリー
SDP:Semi Decoupled Partitioning;準分離型パーティショニング
SST:Semi Separate Tree;準分離ツリー
SB:Super Block;スーパーブロック
IBC (or IntraBC):Intra Block Copy;イントラ・ブロック・コピー
CDF:Cumulative Density Function;累積密度関数
SCC:Screen Content Coding;スクリーン・コンテンツ・コーディング
GBI:Generalized Bi-prediction;一般化された双-予測
BCW:Bi-prediction with CU-level Weights;CUレベル・ウェイトを用いる双-予測
CIIP:Combined intra-inter prediction;イントラ・インター組み合わせ予測
POC:Picture Order Count;ピクチャ・オーダー・カウント
RPS:Reference Picture Set;参照ピクチャ・セット
DPB:Decoded Picture Buffer;復号化ピクチャ・バッファ
MMVD:動きベクトル差分を用いたマージ・モード
図1A
図1B
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
【国際調査報告】