(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-10-04
(54)【発明の名称】サンプル・パディングを用いたイントラブロックコピー予測のための方法および装置
(51)【国際特許分類】
H04N 19/70 20140101AFI20240927BHJP
H04N 19/593 20140101ALI20240927BHJP
H04N 19/563 20140101ALI20240927BHJP
【FI】
H04N19/70
H04N19/593
H04N19/563
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023548253
(86)(22)【出願日】2022-09-16
(85)【翻訳文提出日】2023-08-09
(86)【国際出願番号】 US2022043770
(87)【国際公開番号】W WO2023059433
(87)【国際公開日】2023-04-13
(32)【優先日】2021-10-04
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2022-09-13
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】シュー,シャオジョン
(72)【発明者】
【氏名】ジャオ,シン
(72)【発明者】
【氏名】リウ,シャン
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159LC09
5C159LC10
5C159MA04
5C159MA05
5C159MC11
5C159ME01
5C159PP04
5C159PP30
5C159RC12
5C159UA02
5C159UA05
(57)【要約】
本開示は、概括的にはビデオ符号化に、詳細にはイントラブロックコピー(IBC)パディング・モードに関する。IBCパディングを実行するための方法が開示される。この方法は、符号化ビデオ・ビットストリームを受領する段階と;符号化ビットストリームから、第1の構文要素を抽出する段階であって、前記第1の構文要素は、現在のビデオ・ブロックについてIBCパディングが利用可能であることを示す、段階と;符号化ビデオ・ビットストリームから第2の構文要素を抽出する段階であって、前記第2の構文要素は、現在のビデオ・ブロックがIBCパディングを使用して予測されることを示す、段階と;符号化ビデオ・ビットストリームから、少なくとも1つの構文要素を抽出する段階と;前記少なくとも1つの構文要素に基づいて、現在のビデオ・ブロックを少なくとも2つのサブパーティションに分割する段階であって、前記少なくとも2つのサブパーティションは、パディング・サブパーティションとIBCサブパーティションとを含む、段階と;あらかじめ定義されたパディング規則に基づいて前記パディング・サブパーティションを予測する段階と;あらかじめ定義されたIBC規則に基づいて前記IBCサブパーティションを予測する段階とを含む。
【特許請求の範囲】
【請求項1】
ビデオ・ビットストリームの現在のビデオ・ブロックにおいてイントラブロックコピー(IBC)パディングを実行するための方法であって、当該方法は:
命令を記憶しているメモリおよび該メモリと通信するプロセッサを含む装置によって、
符号化ビデオ・ビットストリーム内の現在のビデオ・ブロックを受領する段階であって、それぞれの参照ブロックが現在のビデオ・ブロックに部分的に一致する、段階と;
前記装置によって、前記符号化ビデオ・ビットストリームから、第1の構文要素を抽出する段階であって、前記第1の構文要素は、現在のビデオ・ブロックのためにIBCパディングが利用可能であることを示す、段階と;
前記装置によって、前記符号化ビデオ・ビットストリームから、第2の構文要素を抽出する段階であって、前記第2の構文要素は、現在のビデオ・ブロックがIBCパディングを用いて予測されることを示す、段階と;
前記装置によって、前記符号化ビデオ・ビットストリームから、少なくとも1つの構文要素を抽出する段階と;
前記装置によって、現在のビデオ・ブロックを、前記少なくとも1つの構文要素に基づいて少なくとも2つのサブパーティションに分割する段階であって、前記少なくとも2つのサブパーティションは、パディング・サブパーティションとIBCサブパーティションとを含む、段階と;
前記装置によって、事前に定義されたパディング規則に基づいて前記パディング・サブパーティションを予測する段階と;
前記装置によって、事前に定義されたIBC規則に基づいて前記IBCサブパーティションを予測する段階とを含む、
方法。
【請求項2】
前記少なくとも1つの構文要素は、第1の構文要素および第2の構文要素を含み;
現在のビデオ・ブロックを、前記少なくとも1つの構文要素に基づいて前記少なくとも2つのサブパーティションに分割することは:
前記第1の構文要素に基づいて、現在のビデオ・ブロックを、水平分割または垂直分割を用いて前記少なくとも2つのサブパーティションに分割し;
前記第2の構文要素に基づいて、前記パディング・サブパーティションが現在のビデオ・ブロックの第1のサブパーティションであるか第2のサブパーティションであるかを決定することを含む、
請求項1に記載の方法。
【請求項3】
前記少なくとも1つの構文要素は、第3の構文要素を含み;
前記第3の構文要素は、現在のビデオ・ブロックに対する前記パディング・サブパーティションのサイズの割合を示す、
請求項2に記載の方法。
【請求項4】
前記割合は、1/4、1/2、または3/4のうちの少なくとも1つを含む、
請求項3に記載の方法。
【請求項5】
現在のビデオ・ブロックを、前記少なくとも1つの構文要素に基づいて前記少なくとも2つのサブパーティションに分割することは:
前記少なくとも1つの構文要素に基づいて、現在のビデオ・ブロックを、水平または垂直方向以外の定義された方向に沿って前記少なくとも2つのサブパーティションに分割することを含む、
請求項1に記載の方法。
【請求項6】
前記事前に定義されたパディング規則に基づいて前記パディング・サブパーティションを予測することが:
すでに再構成された近傍サブパーティションに基づいて、前記パディング・サブパーティションを予測することを含む、
請求項1ないし5のうちいずれか一項に記載の方法。
【請求項7】
前記すでに再構成された近傍サブパーティションに基づいて、前記パディング・サブパーティションを予測することが:
前記パディング・サブパーティションの左の近傍サブパーティション内の最も右の列のサンプルを水平方向に延長すること;または
前記パディング・サブパーティションの上の近傍サブパーティション内の最も下の行のサンプルを垂直方向に延長することを含む、
請求項6に記載の方法。
【請求項8】
前記すでに再構成された近傍サブパーティションに基づいて、前記パディング・サブパーティションを予測することが:
前記パディング・サブパーティションを、前記パディング・サブパーティションの左の近傍サブパーティションにおける最も右の列の最も上のサンプルでパディングすること;または、
前記パディング・サブパーティションを、前記パディング・サブパーティションの上の近傍サブパーティションにおける最も下の行の最も左のサンプルでパディングすることを含む、
請求項6に記載の方法。
【請求項9】
前記事前に定義されたパディング規則に基づいて前記パディング・サブパーティションを予測することが:
すでに再構成された近傍ビデオ・ブロックに基づいて前記パディング・サブパーティションを予測することを含む、
請求項1ないし5のうちいずれか一項に記載の方法。
【請求項10】
前記すでに再構成された近傍ビデオ・ブロックに基づいて前記パディング・サブパーティションを予測することが:
前記パディング・サブパーティションの上の近傍ビデオ・ブロックにおける対応するサブパーティションにおける最も下の行のサンプルを垂直方向に延長すること;または、
前記パディング・サブパーティションの左の近傍ビデオ・ブロックにおける対応するサブパーティションにおける最も右の列のサンプルを水平方向に延長することを含む、
請求項9に記載の方法。
【請求項11】
前記すでに再構成された近傍ビデオ・ブロックに基づいて前記パディング・サブパーティションを予測することが:
上の近傍ビデオ・ブロックにおける対応するサブパーティションにおける最も下の行の最も左のサンプルで前記パディング・サブパーティションをパディングすること;または、
左の近傍ビデオ・ブロックにおける対応するサブパーティションにおける最も右の列の最も上のサンプルで前記パディング・サブパーティションをパディングすることを含む、
請求項9に記載の方法。
【請求項12】
前記符号化ビデオ・ビットストリームから、インデックスを抽出する段階であって、前記インデックスは、サンプル・バッファ内のサンプル値を示す、段階をさらに含み、
前記事前に定義されたパディング規則に基づいて前記パディング・サブパーティションを予測することが:
前記インデックスによって示される前記サンプル値で前記パディング・サブパーティションをパディングすることを含む、
請求項1ないし5のうちいずれか一項に記載の方法。
【請求項13】
前記サンプル・バッファは、履歴ベースのバッファまたは空間ベースのバッファの少なくとも1つを含む、
請求項12に記載の方法。
【請求項14】
前記事前に定義されたパディング規則についてのイントラ予測モードを決定する段階をさらに含み;
前記事前に定義されたパディング規則に基づいて前記パディング・サブパーティションを予測することが:
前記イントラ予測モードに従って、少なくとも1つのすでに再構成された近傍サンプルに基づいて、前記パディング・サブパーティションをパディングすることを含む、
請求項1ないし5のうちいずれか一項に記載の方法。
【請求項15】
前記イントラ予測モードは:
前記符号化ビデオ・ビットストリームによって信号伝達されること、
近傍の符号化された情報から導出されること、または
少なくとも1つの事前に定義されたイントラ予測モードから選択されること
のうちの少なくとも1つに基づいて決定される、請求項14に記載の方法。
【請求項16】
前記事前に定義されたパディング規則に基づいて前記パディング・サブパーティションを予測することが:
上の近傍ビデオ・ブロックがすでに再構成されていることに応答して、前記パディング・サブパーティションの上の近傍ビデオ・ブロックにおける対応するサブパーティションにおける最も下の行のサンプルを垂直方向に延長すること;
左の近傍ビデオ・ブロックがすでに再構成されていることに応答して、前記パディング・サブパーティションの左の近傍ビデオ・ブロックにおける対応するサブパーティションにおける最も右の列のサンプルを水平方向に延長すること;または
上の近傍ビデオ・ブロックおよび左の近傍ビデオ・ブロックがすでに再構成されていることに応答して:
前記符号化ビデオ・ビットストリームから、第3の構文要素を抽出する段階であって、前記第3の構文要素は、前記パディング・サブパーティションを予測するために上の近傍ビデオ・ブロックが使用されるか左の近傍ビデオ・ブロックが使用されるかを示す、段階;
前記第3の構文要素が、前記パディング・サブパーティションを予測するために上の近傍ビデオ・ブロックが使用されることを示すことに応答して、前記パディング・サブパーティションの上の近傍ビデオ・ブロックにおける対応するサブパーティションにおける最も下の行のサンプルを垂直方向に延長する、段階;および
前記第3の構文要素が、前記パディング・サブパーティションを予測するために左の近傍ビデオ・ブロックが使用されることを示すことに応答して、前記パディング・サブパーティションの左の近傍ビデオ・ブロックにおける対応するサブパーティションにおける最も右の列のサンプルを水平方向に延長する段階を実行することを含む、
請求項1ないし5のうちいずれか一項に記載の方法。
【請求項17】
ビデオ・ビットストリームの現在のビデオ・ブロックをデコードするための装置であって、当該装置は:
命令を記憶しているメモリと;
前記メモリと通信するプロセッサとを有しており、前記プロセッサが前記命令を実行すると、前記プロセッサは、請求項1ないし16のうちいずれか一項に記載の方法を当該装置に実行させるように構成される、
装置。
【請求項18】
命令を記憶している非一時的なコンピュータ読み取り可能な記憶媒体であって、前記命令が前記プロセッサによって実行されると、前記命令は、請求項1ないし16のうちいずれか一項に記載の方法を前記プロセッサに実行させるように構成される、
記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
参照による組み込み
本願は、その全体が参照により本明細書に組み込まれる2021年10月4日に出願された米国仮出願第63/252,079号に基づくものであり、その優先権を主張する。本願はまた、その全体が参照により本明細書に組み込まれる2022年9月13日に出願された米国非仮特許出願第17/943,449号に基づくものであり、その優先権を主張する。
【0002】
技術分野
本開示は、一組の先進的なビデオ符号化技術を記載する。より具体的には、開示された技術は、ビデオ・エンコードおよびデコードにおけるサンプル・パディングを用いたイントラブロックコピー(IntraBCまたはIBC)の実装および向上に関わる。
【背景技術】
【0003】
本明細書で提供されるこの背景説明は、本開示の文脈を概括的に提示するためのものである。本願で名前が挙がっている発明者の仕事であってその仕事がこの背景セクションに記載されている範囲におけるもの、また、他の意味で本願の出願時に先行技術として適格でないことがありうる本記述の諸側面は、明示的にも暗黙的にも本開示に対する先行技術として認められない。
【0004】
ビデオ符号化および復号は、動き補償を伴うピクチャー間予測を用いて実行できる。非圧縮デジタル・ビデオは、一連のピクチャーを含むことができ、各ピクチャーは、たとえば1920×1080のルミナンス・サンプルおよび関連するフルのまたはサブサンプリングされたクロミナンス・サンプルの空間的寸法を有する。一連のピクチャーは、固定または可変のピクチャー・レート(代替的にフレーム・レートとも称される)、たとえば、60ピクチャー毎秒または60フレーム毎秒を有することができる。非圧縮ビデオは、ストリーミングまたはデータ処理のために、特定のビットレート要件を有する。たとえば、1920×1080のピクセル解像度、60フレーム毎秒のフレーム・レートおよび色チャネル当たりピクセル当たり8ビットでの4:2:0のクロマ・サブサンプリングのビデオは、1.5Gbit/sに近い帯域幅を必要とする。そのようなビデオの1時間は、600Gバイトを超える記憶スペースを必要とする。
【0005】
ビデオ符号化および復号の1つの目的は、圧縮により、非圧縮の入力ビデオ信号の冗長性を低減することでありうる。圧縮は、前述の帯域幅および/または記憶スペースの要求を、場合によっては2桁以上も低減するのに役立つことがある。可逆圧縮および不可逆圧縮の両方、ならびにそれらの組み合わせを用いることができる。可逆圧縮とは、圧縮されたもとの信号から、復号プロセスを介して、もとの信号の正確なコピーが再構成できる技術をいう。不可逆圧縮は、もとのビデオ情報が符号化の際に完全には保持されず、復号の際に完全には復元可能でない符号化/復号プロセスをいう。不可逆圧縮を使用する場合、再構成された信号は、もとの信号と同一ではないことがありうるが、もとの信号と再構成された信号との間の歪みは、再構成された信号を、若干の情報損失があるにしても、意図された用途のために有用にするのに十分小さくする。ビデオの場合、多くのアプリケーションにおいて不可逆圧縮が広く用いられている。許容できる歪みの量はアプリケーションに依存する。たとえば、ある種の消費者ビデオ・ストリーミング・アプリケーションのユーザーは、映画館またはテレビ放送アプリケーションのユーザーよりも高い歪みを許容することがある。特定の符号化アルゴリズムによって達成可能な圧縮比は、さまざまな歪み許容度を反映するように選択または調整されることができる:より高い許容可能な歪みは一般に、より高い損失およびより高い圧縮比をもたらす符号化アルゴリズムを許容する。
【0006】
ビデオ・エンコーダおよびデコーダは、たとえば動き補償、フーリエ変換、量子化、およびエントロピー符号化を含むいくつかの広範なカテゴリーおよび段階からの技術を利用することができる。
【0007】
ビデオ・コーデック技術は、イントラ符号化として知られる技術を含むことができる。イントラ符号化では、サンプル値は、以前に再構成された参照ピクチャーからのサンプルまたは他のデータを参照することなく表現される。いくつかのビデオ・コーデックでは、ピクチャーは空間的にサンプルのブロックに分割される。サンプルのすべてのブロックがイントラモードで符号化される場合、そのピクチャーはイントラ・ピクチャーと称することができる。イントラ・ピクチャーと、独立デコーダ・リフレッシュ・ピクチャーのようなその派生物は、デコーダ状態をリセットするために使用でき、よって、符号化ビデオ・ビットストリームおよびビデオセッションにおける最初のピクチャーとして、または静止画像として使用できる。イントラ予測後のブロックのサンプルを周波数領域への変換にかけることができ、そうして生成された変換係数は、エントロピー符号化の前に量子化されることができる。イントラ予測は、変換前領域におけるサンプル値を最小化する技術を表す。場合によっては、変換後のDC値が小さく、AC係数が小さいほど、エントロピー符号化後のブロックを表わすために所与の量子化ステップサイズで必要とされるビット数が少なくなる。
【0008】
たとえばMPEG-2世代の符号化技術から知られているもののような伝統的なイントラ符号化は、イントラ予測を使用しない。しかしながら、いくつかのより新しいビデオ圧縮技術は、たとえば、空間的近傍のエンコードおよび/またはデコードの間に得られる、デコード順で先行する周囲のサンプル・データおよび/またはメタデータに基づいて、イントラ符号化または復号対象のブロックの符号化/復号を試みる技術を含む。そのような技法は、以下では「イントラ予測」技法と呼ばれる。少なくともいくつかの場合には、イントラ予測は再構成中の現在ピクチャーからの参照データのみを使用し、他の参照ピクチャーからの参照データは使用しないことに注意されたい。
【0009】
さまざまな形のイントラ予測がありうる。所与のビデオ符号化技術において、そのような技法の二つ以上が利用可能である場合、使用される技法は、イントラ予測モードと称されることができる。特定のコーデックにおいて一つまたは複数のイントラ予測モードが提供されることがありうる。ある種の場合には、モードは、サブモードを有することができ、および/またはさまざまなパラメータに関連付けられることができ、ビデオのブロックについてのモード/サブモード情報およびイントラ符号化パラメータは、個別に符号化されることができ、またはまとめてモード符号語に含められることができる。所与のモード、サブモード、および/またはパラメータの組み合わせのためにどの符号語を使用するかは、イントラ予測を通して符号化効率利得に影響を与える可能性があり、符号語をビットストリームに変換するために使用されるエントロピー符号化技術も同様に影響を与える可能性がある。
【0010】
イントラ予測のあるモードがH.264で導入され、H.265で洗練され、共同探査モデル(JEM)、多用途ビデオ符号化(VVC)、およびベンチマークセット(BMS)のようなより新しい符号化技術においてさらに洗練された。一般に、イントラ予測については、予測子ブロックは、すでに利用可能になった近傍サンプル値を使用して形成されることができる。たとえば、ある方向および/または線に沿った近傍サンプルの特定の集合の利用可能な値が、予測子ブロックにコピーされてもよい。使用される方向への参照は、ビットストリームにおいて符号化されることができ、またはそれ自身予測されてもよい。
【0011】
図1Aを参照すると、右下に、H.265の33個の可能なイントラ予測子方向(H.265において指定されている35個のイントラモードのうち33個の角度モードに対応する)において指定されている9個の予測子方向のサブセットが描かれている。矢印が収束する点(101)は、予測されるサンプルを表わす。矢印は、101にあるサンプルを予測するためにどの方向からの近傍サンプルが使用されるかを表わす。たとえば、矢印(102)は、サンプル(101)が、水平方向から45度の角度の右上の近傍サンプル(単数または複数)から予測されることを示す。同様に、矢印(103)は、サンプル(101)が、水平方向から22.5度の角度の、サンプル(101)の左下の近傍サンプル(単数または複数)から予測されることを示す。
【0012】
引き続き
図1Aを参照すると、左上には、4×4サンプルの正方形ブロック(104)が描かれている(太い破線で示されている)。正方形ブロック(104)は、16個のサンプルを含み、各サンプルは「S」とY次元におけるその位置(たとえば、行インデックス)およびX次元におけるその位置(たとえば、列インデックス)でラベル付けされている。たとえば、サンプルS21は、Y次元の(上から)2番目のサンプルであり、X次元の(左から)最初のサンプルである。同様に、サンプルS44は、YおよびX次元の両方においてブロック(104)内の第4のサンプルである。ブロックが4×4サンプルのサイズなので、S44は右下にある。さらに、同様の番号付けスキームに従う例示的な参照サンプルが示されている。参照サンプルは、Rと、ブロック(104)に対するそのY位置(たとえば、行インデックス)およびX位置(列インデックス)でラベル付けされる。H.264とH.265の両方において、再構成中のブロックに隣接する近傍の予測サンプルが使用される。
【0013】
ブロック104のピクチャー内予測は、信号伝達される予測方向に応じて近傍サンプルから参照サンプル値をコピーすることによって始まってもよい。たとえば、符号化ビデオ・ビットストリームは、このブロック104について、矢印(102)の予測方向を示す信号伝達を含むと想定する。すなわち、サンプルは、水平方向から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は、XおよびYの2次元、または3次元を有することができ、第3の次元は、使用される参照ピクチャーの指示である(時間次元のようなもの)。
【0019】
いくつかのビデオ圧縮技術では、サンプル・データのある領域に適用可能な現在のMVは、他のMVから、たとえば、再構成中の領域に空間的に隣接し、デコード順で現在のMVに先行するサンプル・データの他の領域に関連する他のMVから、予測されることができる。そうすることは、相関のあるMVにおける冗長性を除去することに依拠することによりMVを符号化するために要求される全体的なデータ量を大幅に削減することができ、それにより圧縮効率を増すことができる。MV予測が有向に機能できるのは、たとえば、カメラから導出される入力ビデオ信号(ナチュラルビデオとして知られる)を符号化する際に、単一のMVが適用可能である領域よりも大きな領域がビデオ・シーケンスにおいて同様の方向に移動し、よって、ある種の場合には、近傍領域のMVから導出された同様の動きベクトルを用いて予測できるという、統計的確からしさがあるからである。その結果、所与の領域についての実際のMVが、周囲のMVから予測されるMVと同様または同一であることになる。そのようなMVはひいては、エントロピー符号化の後、MVが近傍MV(単数または複数)から予測されるのではなく直接符号化される場合に使用されるであろうものよりも少数のビットで表現できる。いくつかの場合には、MV予測は、もとの信号(すなわち、サンプルストリーム)から導出された信号(すなわち、MV)の可逆圧縮の例でありうる。他の場合には、MV予測自身が、たとえば、いくつかの周囲のMVから予測子を計算する際の丸め誤差のために、不可逆であることがある。
【0020】
H.265/HEVC(ITU-T Rec. H.265、「高効率ビデオ符号化」(High Efficiency Video Coding)、December 2016)には、さまざまなMV予測機構が記述されている。H.265が規定する多くのMV予測機構のうち、下記では、以後、「空間マージ(spatial merge)」と呼ばれる技法が記載される。
【0021】
具体的には、
図2を参照すると、現在ブロック(201)は、空間的にシフトされた同じサイズの前のブロックから予測可能であることが動き探索プロセスの間にエンコーダによって見出されたサンプルを含む。そのMVを直接符号化する代わりに、MVは、一つまたは複数の参照ピクチャーに関連付けられたメタデータから、たとえば(デコード順で)最新の参照ピクチャーから、A0、A1、およびB0、B1、B2(それぞれ202ないし206)と記される5つの周囲のサンプルのいずれかに関連付けられたMVを使用して、導出できる。H.265では、MV予測は、近傍ブロックが使用するのと同じ参照ピクチャーからの予測子を使用することができる。
【発明の概要】
【発明が解決しようとする課題】
【0022】
本開示は、現在のビデオ・ブロックにおいてイントラブロックコピー(IBC)パディングを実行するための方法、装置、およびコンピュータ読み取り可能な記憶媒体のさまざまな実施形態を記載する。
【課題を解決するための手段】
【0023】
ある側面によれば、本開示のある実施形態は、現在のビデオ・ブロックにおいてイントラブロックコピー(IBC)パディングを実行するための方法を提供する。この方法は、符号化ビデオ・ビットストリーム内の現在のビデオ・ブロックを装置によって受領することを含み、それぞれの参照ブロックは、現在のビデオ・ブロックに部分的に一致する。装置は、命令を記憶しているメモリと、前記メモリと通信するプロセッサとを含む。この方法はまた、前記装置によって、符号化ビデオ・ビットストリームから、第1の構文要素を抽出する段階であって、前記第1の構文要素は、現在のビデオ・ブロックについてIBCパディングが利用可能であることを示す、段階と;前記装置によって、符号化ビデオ・ビットストリームから第2の構文要素を抽出する段階であって、前記第2の構文要素は、現在のビデオ・ブロックがIBCパディングを使用して予測されることを示す、段階と;前記装置によって、符号化ビデオ・ビットストリームから、少なくとも1つの構文要素を抽出する段階と;前記少なくとも1つの構文要素に基づいて、現在のビデオ・ブロックを少なくとも2つのサブパーティションに分割する段階であって、前記少なくとも2つのサブパーティションは、パディング・サブパーティションとIBCサブパーティションとを含む、段階と;前記装置によって、あらかじめ定義されたパディング規則に基づいて前記パディング・サブパーティションを予測する段階と;前記装置によって、あらかじめ定義されたIBC規則に基づいて前記IBCサブパーティションを予測する段階とを含む。
【0024】
別の側面によれば、本開示のある実施形態は、現在のビデオ・ブロックにおいてイントラブロックコピー(IBC)パディングを実施するための装置を提供する。この装置は、命令を記憶しているメモリと、該メモリと通信するプロセッサとを含む。プロセッサが命令を実行すると、プロセッサは、当該装置に、ビデオ・デコードおよび/またはエンコードのための上記方法を実行させるように構成される。
【0025】
別の側面では、本開示のある実施形態は、ビデオ・デコードおよび/またはエンコードのためのコンピュータによって実行されたときに、該コンピュータに、ビデオ・デコードおよび/またはエンコードのための上記方法を実行させる命令を記憶している非一時的なコンピュータ読み取り可能な媒体を提供する。
【0026】
上記の側面および他の側面およびそれらの実装は、図面、説明、および特許請求の範囲において、より詳細に記載される。
【図面の簡単な説明】
【0027】
開示された主題のさらなる特徴、性質、およびさまざまな利点は、以下の詳細な説明および添付の図面からより明白になるであろう。
【0028】
【
図1A】イントラ予測方向性モードの例示的なサブセットの概略的な図解を示す。
【0029】
【0030】
【
図2】一例における動きベクトル予測のための現在ブロックおよびその周囲の空間的マージ候補の概略的な図解を示す。
【0031】
【
図3】ある例示的実施形態による通信システムの簡略化されたブロック図の概略的な図解を示す。
【0032】
【
図4】ある例示的実施形態による通信システム(400)の簡略化されたブロック図の概略的な図解を示す。
【0033】
【
図5】ある例示的実施形態によるビデオ・デコーダの簡略化されたブロック図の概略的な図解を示す。
【0034】
【
図6】ある例示的実施形態によるビデオ・エンコーダの簡略化されたブロック図の概略的な図解を示す。
【0035】
【
図7】別の例示的実施形態によるビデオ・エンコーダのブロック図を示す。
【0036】
【
図8】別の例示的実施形態によるビデオ・デコーダのブロック図を示す。
【0037】
【
図9】本開示の例示的実施形態による符号化ブロック・パーティション分割方式を示す。
【0038】
【
図10】本開示の例示的実施形態による別の符号化ブロック・パーティション分割方式を示す。
【0039】
【
図11】本開示の例示的実施形態による別の符号化ブロック・パーティション分割方式を示す。
【0040】
【
図12】ある例示的な分割方式による、ベース・ブロックの符号化ブロックへの例示的なパーティション分割を示す。
【0041】
【
図13】例示的な三元パーティション分割方式を示す。
【0042】
【
図14】例示的な四分木二分木符号化ブロック・パーティション分割方式を示す。
【0043】
【
図15】本開示の例示的実施形態による、符号化ブロックを複数の変換ブロックにパーティション分割する方式および該変換ブロックの符号化順を示す。
【0044】
【
図16】本開示の例示的実施形態による、符号化ブロックを複数の変換ブロックにパーティション分割する別の方式および該変換ブロックの符号化順を示す。
【0045】
【
図17】本開示の例示的実施形態による、符号化ブロックを複数の変換ブロックにパーティション分割する別の方式を示す。
【0046】
【
図18】現在の符号化ブロックを予測するために同じフレーム内の再構成された符号化ブロックを使用するイントラブロックコピー(IBC)の概念を示す。
【0047】
【
図19】IBCのための参照サンプルとして利用可能な例示的な再構成されたサンプルを示す。
【0048】
【
図20】いくつかの例示的な制約がある場合の、IBCのための参照サンプルとして利用可能な、例示的な再構成されたサンプルを示す。
【0049】
【
図21】IBCのための例示的なオンチップ参照サンプル・メモリ(RSM)更新機構を示す。
【0050】
【
図22】
図21の例示的なオンチップRSM更新機構の空間図を示す。
【0051】
【
図23】IBCのためのオンチップ参照サンプル・メモリ(RSM)更新機構の別の例を示す。
【0052】
【
図24】水平に分割されたスーパーブロックと垂直に分割されたスーパーブロックについての、IBCのための例示的なRSM更新機構の空間図の比較を示す。
【0053】
【
図25】本開示の例示的実施形態による方法のフローチャートを示す。
【0054】
【
図26A】部分的IBC予測のいくつかの例を示す。
【0055】
【
図26B】部分的IBC予測のいくつかの例を示す。
【0056】
【
図27】ビデオ・ブロックにおけるパディング領域の例を示す。
【0057】
【
図28】本開示の例示的な実施形態によるコンピュータ・システムの概略的な図解を示す。
【発明を実施するための形態】
【0058】
ここで、本発明の一部を形成し、実施形態の具体例を例として示す添付の図面を参照して、本発明を以下に詳細に説明する。しかしながら、本発明は、多様な異なる形で具現でき、よって、カバーされるまたは特許請求される主題事項は、以下に記載される実施形態のいずれにも限定されないものと解釈されることが意図されていることに留意されたい。また、本発明は、方法、装置、コンポーネントまたはシステムとして具現されうることに留意されたい。よって、本発明の実施形態は、たとえば、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組み合わせの形をとることができる。
【0059】
明細書および請求項を通して、用語は、明示的に記述された意味を超えて、文脈において示唆されまたは暗示されたニュアンス付きの意味を有することがある。本明細書で使用される句「ある実施形態において」または「いくつかの実施形態において」は、必ずしも同じ実施形態を指すわけではなく、本明細書で使用される句「別の実施形態において」または「他の実施形態において」は、必ずしも異なる実施形態を指すわけではない。同様に、本明細書中で使用される「ある実装において」または「いくつかの実装において」という句は、必ずしも同じ実装を指すわけではなく、本明細書中で使用される「別の実装において」または「他の実装において」という句は、必ずしも異なる実装を指すわけではない。たとえば、請求される主題事項は、例示的な諸実施形態/実装の全体または一部の組み合わせを含むことが意図されている。
【0060】
一般に、用語は、少なくとも部分的には、文脈における使用から理解されうる。たとえば、「および」、「または」または「および/または」などの用語は、本明細書中で使用される場合、そのような用語が使用される文脈に少なくとも部分的に依存しうる多様な意味を含みうる。典型的には、「または」は、A、BまたはCのようなリストを関連付けるために使用される場合、ここで包括的な意味で使用されるA、BおよびC、ならびにここで排他的な意味で使用されるA、BまたはCを意味することが意図される。さらに、本明細書で使用される用語「一つまたは複数」または「少なくとも1つ」は、少なくとも部分的に文脈に依存して、単数の意味で任意の特徴、構造、または特性を記述するために使用されてもよく、複数の意味で特徴、構造、または特性の組み合わせを記述するために使用されてもよい。同様に、「a」、「an」、または「the」のような用語は、少なくとも部分的には文脈に依存して、単数の用法を伝えるか、または複数の用法を伝えると理解されうる。さらに、「…に基づいて」または「…によって決定される」という用語は、必ずしも要因の排他的な集合を伝えることは意図されておらず、その代わりに、やはり少なくとも部分的には文脈に依存して、必ずしも明示的に記述されていない追加の要因の存在を許容しうる。
【0061】
図3は、本開示のある実施形態による通信システム(300)の簡略化されたブロック図を示す。通信システム(300)は、たとえばネットワーク(350)を介して互いに通信することができる複数の端末装置を含む。たとえば、通信システム(300)は、ネットワーク(350)を介して相互接続された第1の対の端末装置(310)および(320)を含む。
図3の例では、第1の対の端末装置(310)および(320)は、データの一方向伝送を実行しうる。たとえば、端末装置(310)は、ネットワーク(350)を介した他方の端末装置(320)への伝送のために、ビデオ・データ(たとえば、端末装置(310)によって捕捉されたビデオ・ピクチャーのストリームのビデオ・データ)を符号化してもよい。エンコードされたビデオ・データは、一つまたは複数の符号化ビデオ・ビットストリームの形で伝送されることができる。端末装置(320)は、ネットワーク(350)から、符号化ビデオ・データを受信し、符号化ビデオ・データをデコードしてビデオ・ピクチャーを復元し、復元されたビデオ・データに従ってビデオ・ピクチャーを表示してもよい。一方向データ伝送は、メディア・サービス・アプリケーション等において実装されることがある。
【0062】
別の例では、通信システム(300)は、たとえばビデオ会議アプリケーションの間に実装されうる符号化されたビデオ・データの双方向伝送を実行する第2の対の端末装置(330)および(340)を含む。データの双方向伝送のために、一例では、端末装置(330)および(340)の各端末装置は、ネットワーク(350)を介した、端末装置(330)および(340)のうちの他方の端末装置への伝送のために、ビデオ・データ(たとえば、端末装置によって捕捉されたビデオ・ピクチャーのストリームのビデオ・データ)を符号化してもよい。端末装置(330)および(340)の各端末装置は、端末装置(330)および(340)のうちの他方の端末装置によって送信された符号化されたビデオ・データを受信してもよく、符号化されたビデオ・データをデコードして、ビデオ・ピクチャーを復元し、復元されたビデオ・データに従って、アクセス可能な表示装置においてビデオ・ピクチャーを表示してもよい。
【0063】
図3の例では、端末装置(310)、(320)、(330)および(340)は、サーバー、パーソナルコンピュータおよびスマートフォンとして実装されてもよいが、本開示の基礎となる原理の適用可能性は、それに限定されなくてもよい。本開示の実施形態は、デスクトップ・コンピュータ、ラップトップ・コンピュータ、タブレット・コンピュータ、メディア・プレーヤー、ウェアラブル・コンピュータ、専用のビデオ会議設備および/またはその他において実装されうる。ネットワーク(350)は、たとえば有線(ワイヤード)および/または無線〔ワイヤレス〕通信ネットワークを含む、端末装置(310)、(320)、(330)および(340)の間で符号化されたビデオ・データを伝達する任意の数またはタイプのネットワークを表わす。通信ネットワーク(350)9は、回線交換、パケット交換および/または他のタイプのチャネルにおいてデータを交換してもよい。代表的なネットワークは、遠隔通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワークおよび/またはインターネットを含む。今の議論の目的のために、ネットワーク(350)のアーキテクチャーおよびトポロジーは、明示的に説明しない限り、本開示の動作には重要ではないことがある。
【0064】
図4は、開示される主題のためのアプリケーションの例として、ビデオ・ストリーミング環境におけるビデオ・エンコーダおよびビデオ・デコーダの配置を示す。開示される主題は、たとえば、ビデオ会議、デジタルTV、放送、ゲーム、仮想現実、CD、DVD、メモリースティックなどを含むデジタル媒体上の圧縮ビデオの記憶などを含む、他のビデオ対応アプリケーションにも等しく適用可能でありうる。
【0065】
ビデオ・ストリーミング・システムは、ビデオ源(401)、たとえばデジタル・カメラを含むことができ、非圧縮のビデオ・ピクチャーまたは画像のストリーム(402)を生成するビデオ捕捉サブシステム(413)を含んでいてもよい。一例では、ビデオ・ピクチャーのストリーム(402)は、ビデオ源401のデジタル・カメラによってエンコードされたサンプルを含む。エンコードされたビデオ・データ(404)(または符号化されたビデオ・ビットストリーム)と比較した場合の高いデータ・ボリュームを強調するために太線として描かれているビデオ・ピクチャーのストリーム(402)は、ビデオ源(401)に結合されたビデオ・エンコーダ(403)を含む電子装置(420)によって処理されることができる。ビデオ・エンコーダ(403)は、以下により詳細に説明されるように、開示される主題の諸側面を可能にし、または実現するためのハードウェア、ソフトウェア、またはそれらの組み合わせを含むことができる。非圧縮のビデオ・ピクチャーのストリーム(402)と比較した場合の、より低いデータ・ボリュームを強調するために細い線として描かれている、エンコードされたビデオ・データ(404)(またはエンコードされたビデオ・ビットストリーム(404))は、将来の使用のためにストリーミング・サーバー(405)に記憶されることができ、または下流のビデオ装置(図示せず)に直接記憶されることができる。
図4のクライアント・サブシステム(406)および(408)のような一つまたは複数のストリーミング・クライアント・サブシステムは、ストリーミング・サーバー(405)にアクセスして、エンコードされたビデオ・データ(404)のコピー(407)および(409)を取り出すことができる。クライアント・サブシステム(406)は、たとえば電子装置(430)内にビデオ・デコーダ(410)を含むことができる。ビデオ・デコーダ(410)は、エンコードされたビデオ・データの入来コピー(407)をデコードし、ディスプレイ(412)(たとえば表示画面)または他のレンダリング装置(図示せず)上にレンダリングできる、非圧縮のビデオ・ピクチャーの出ていくストリーム(411)を生成する。ビデオ・デコーダ410は、本開示に記載されるさまざまな機能の一部または全部を実行するように構成されうる。いくつかのストリーミング・システムでは、エンコードされたビデオ・データ(404)、(407)、および(409)(たとえば、ビデオ・ビットストリーム)は、ある種のビデオ符号化/圧縮標準に従ってエンコードされることができる。これらの標準の例は、ITU-T勧告H.265を含む。一例では、開発中のビデオ符号化規格は、非公式に多用途ビデオ符号化(VVC)として知られている。開示される主題は、VVCまたは他のビデオ符号化標準の文脈で使用されてもよい。
【0066】
電子装置(420)および(430)は、他の構成要素(図示せず)を含むことができることを注意しておく。たとえば、電子装置(420)は、ビデオ・デコーダ(図示せず)を含むことができ、電子装置(430)は、ビデオ・エンコーダ(図示せず)も含むことができる。
【0067】
図5は、後述する本開示のいずれかの実施形態によるビデオ・デコーダ(510)のブロック図を示す。ビデオ・デコーダ(510)は、電子装置(530)に含まれることができる。電子装置(530)は、受領器(531)(たとえば、受領回路)を含むことができる。ビデオ・デコーダ(510)は、
図4の例におけるビデオ・デコーダ(310)の代わりに使用できる。
【0068】
受領器(531)は、ビデオ・デコーダ(510)によってデコードされるべき一つまたは複数の符号化ビデオ・シーケンスを受領してもよい。同じまたは別の実施形態において、一度に1つの符号化ビデオ・シーケンスがデコードされてもよく、各符号化ビデオ・シーケンスのデコードは、他の符号化ビデオ・シーケンスから独立である。各ビデオ・シーケンスは、複数のビデオ・フレームまたは画像と関連していてもよい。符号化ビデオ・シーケンスは、チャネル(501)から受信されてもよく、該チャネルは、エンコードされたビデオ・データを記憶する記憶装置またはエンコードされたビデオ・データを送信するストリーミング源へのハードウェア/ソフトウェア・リンクであってもよい。受領器(531)は、エンコードされたビデオ・データを、他のデータ、たとえば符号化されたオーディオ・データおよび/または補助データ・ストリームと一緒に受領してもよく、これらのデータは、それぞれの処理回路(図示せず)を転送されてもよい。受領器(531)は、符号化ビデオ・シーケンスを他のデータから分離することができる。ネットワーク・ジッタ対策として、バッファメモリ(515)が、受領器(531)とエントロピー・デコーダ/パーサー(520)(以下「パーサー」)との間に配置されてもよい。ある種のアプリケーションでは、バッファメモリ(515)はビデオ・デコーダ(510)の一部として実装されてもよい。他のアプリケーションでは、ビデオ・デコーダ(510)の外部にあって、ビデオ・デコーダとは別個であることができる(図示せず)。さらに他のアプリケーションでは、たとえばネットワーク・ジッタに対抗するために、ビデオ・デコーダ(510)の外部にバッファメモリ(図示せず)があってもよく、さらに、たとえば再生タイミングを扱うために、ビデオ・デコーダ(510)の内部に別の追加的なバッファメモリ(515)があってもよい。受領器(531)が、十分な帯域幅および制御可能性の記憶/転送装置から、またはアイソクロナス・ネットワークからデータを受領している場合は、バッファメモリ(515)は、必要とされなくてもよく、または小さくてもよい。インターネットのようなベストエフォート型のパケット・ネットワークでの使用のためには、十分なサイズのバッファメモリ(515)が要求されることがあり、そのサイズは比較的大きいことがある。そのようなバッファ・メモリは適応的なサイズで実装されてもよく、少なくとも部分的に、ビデオ・デコーダ(510)の外部でオペレーティング・システムまたは同様の要素(図示せず)において実装されてもよい。
【0069】
ビデオ・デコーダ(510)は、符号化ビデオ・シーケンスからシンボル(521)を再構成するためのパーサー(520)を含んでいてもよい。これらのシンボルのカテゴリーは、ビデオ・デコーダ(510)の動作を管理するために使用される情報と、潜在的には、ディスプレイ(512)(たとえば表示画面)のようなレンダリング装置を制御するための情報とを含む。レンダー装置は、
図5に示されるように、電子装置(530)の一体的な部分であっても、一体的な部分ではなく電子装置(530)に結合されることもできる。レンダリング装置(単数または複数)のための制御情報は、補足向上情報(Supplementary Enhancement Information)(SEIメッセージ)またはビデオユーザビリティ情報(Video Usability Information、VUI)パラメータセット・フラグメント(図示せず)の形であってもよい。パーサー(520)は、パーサー(520)によって受領された符号化ビデオ・シーケンスをパースする/エントロピー復号することができる。符号化ビデオ・シーケンスのエントロピー符号化は、ビデオ符号化技術または標準に従うことができ、可変長符号化、ハフマン符号化、コンテキスト感受性ありまたはなしの算術符号化などを含む、さまざまな原理に従うことができる。パーサー(520)は、符号化ビデオ・シーケンスから、ビデオ・デコーダ内のピクセルのサブグループのうちの少なくとも1つについてのサブグループ・パラメータのセットを、サブグループに対応する少なくとも1つのパラメータに基づいて、抽出することができる。サブグループは、ピクチャーグループ(Group of Pictures、GOP)、ピクチャー、タイル、スライス、マクロブロック、符号化単位(Coding Unit、CU)、ブロック、変換単位(Transform Unit、TU)、予測単位(Prediction Unit、PU)などを含むことができる。パーサー(520)はまた、符号化ビデオ・シーケンスから、変換係数(たとえば、フーリエ変換係数)、量子化器パラメータ値、動きベクトル等の情報を抽出することができる。
【0070】
パーサー(520)は、バッファメモリ(515)から受領されたビデオ・シーケンスに対してエントロピー復号/パース動作を実行し、それによりシンボル(521)を生成することができる。
【0071】
シンボル(521)の再構成は、符号化されたビデオ・ピクチャーまたはその諸部分のタイプ(たとえば、インターおよびイントラ・ピクチャー、インターおよびイントラ・ブロック)および他の要因に依存して、複数の異なる処理または機能ユニットに関わることができる。関わるユニットおよびそれらがどのように関わるかは、符号化ビデオ・シーケンスからパーサー(520)によってパースされたサブグループ制御情報によって制御されうる。パーサー(520)と下記の複数の処理または機能ユニットとの間のそのようなサブグループ制御情報の流れは、簡単のため、描かれていない。
【0072】
すでに述べた機能ブロックのほかに、ビデオ・デコーダ(510)は、以下に説明するように、概念的に、いくつかの機能ユニットに分割できる。商業的制約の下で機能する実際的な実装では、これらの機能ユニットの多くは互いに密接に相互作用し、少なくとも部分的に互いに統合されることができる。しかしながら、開示される主題のさまざまな機能を明確に記述する目的のために、本開示では下記において、機能単位への概念的な細分が採用される。
【0073】
第1のユニットは、スケーラー/逆変換ユニット(551)を含んでいてもよい。スケーラー/逆変換ユニット(551)は、パーサー(520)から、量子化された変換係数および制御情報をシンボル(単数または複数)(521)として受領する。制御情報は、どのタイプの逆変換を使用するか、ブロック・サイズ、量子化因子/パラメータ、量子化スケーリング行列などを示す情報を含む。スケーラー/逆変換ユニット(551)は、集計器(555)に入力できるサンプル値を含むブロックを出力することができる。
【0074】
場合によっては、スケーラー/逆変換(551)の出力サンプルは、イントラ符号化されたブロック、すなわち、以前に再構成されたピクチャーからの予測情報を使用しないが、現在ピクチャーの、以前に再構成された部分からの予測情報を使用することができるブロックに関することができる。そのような予測情報は、イントラ・ピクチャー予測ユニット(552)によって提供されることができる。場合によっては、イントラ・ピクチャー予測ユニット(552)は、現在ピクチャー・バッファ(558)に記憶されている、すでに再構成された周囲ブロック情報を使用して、再構成中のブロックと同じサイズおよび形状のブロックを生成してもよい。現在ピクチャー・バッファ(558)は、たとえば、部分的に再構成された現在ピクチャーおよび/または完全に再構成された現在ピクチャーをバッファリングする。集計器(555)は、実装によっては、サンプル毎に、イントラ予測ユニット(552)が生成した予測情報を、スケーラー/逆変換ユニット(551)によって提供される出力サンプル情報に加算してもよい。
【0075】
他の場合には、スケーラー/逆変換ユニット(551)の出力サンプルは、インター符号化され、潜在的には動き補償されたブロックに関することができる。そのような場合、動き補償予測ユニット(553)は、ピクチャー間予測のために使用されるサンプルを取ってくるために参照ピクチャー・メモリ(557)にアクセスすることができる。取ってきたサンプルを、ブロックに関するシンボル(521)に従って動き補償した後、これらのサンプルは、集計器(555)によってスケーラー/逆変換ユニットの出力(ユニット551の出力は、残差サンプルまたは残差信号と呼ばれることもある)に加算されて、それにより出力サンプル情報を生成することができる。動き補償ユニット(553)が予測サンプルを取ってくる参照ピクチャー・メモリ(557)内のアドレスは、シンボル(521)の形で動き補償ユニット(553)に利用可能な動きベクトルによって制御できる。該シンボルは、たとえばX、Y成分(シフト)、および参照ピクチャー成分(時間)を有することができる。動き補償は、サンプル以下の正確な動きベクトルが使用されるときの参照ピクチャー・メモリ(557)から取ってこられるサンプル値の補間を含んでいてもよく、動きベクトル予測機構などに関連付けられていてもよい。
【0076】
集計器(555)の出力サンプルは、ループ・フィルタ・ユニット(556)内でさまざまなループ・フィルタリング技法にかけられることができる。ビデオ圧縮技術は、ループ内フィルタ技術を含むことができる。ループ内フィルタ技術は、符号化ビデオ・シーケンス(符号化されたビデオ・ビットストリームとも呼ばれる)に含まれるパラメータによって制御され、パーサー(520)からのシンボル(521)としてループ・フィルタ・ユニット(556)に利用可能にされるが、符号化されたピクチャーまたは符号化されたビデオ・シーケンスの(デコード順で)前の部分のデコード中に得られたメタ情報に応答するとともに、以前に再構成されループ・フィルタリングされたサンプル値に応答することもできる。ループ・フィルタのいくつかのタイプがループ・フィルタ・ユニット556の一部としてさまざまな順序で含まれてもよい。これについては、下記でさらに詳細に述べる。
【0077】
ループ・フィルタ・ユニット(556)の出力はサンプル・ストリームであることができ、これは、レンダリング装置(512)に出力されることができ、また将来のインターピクチャー予測において使用するために参照ピクチャー・メモリ(557)に記憶されることができる。
【0078】
符号化された画像は、いったん完全に再構成されると、将来のピクチャー間予測のための参照ピクチャーとして使用できる。たとえば、現在ピクチャーに対応する符号化されたピクチャーが完全に再構成され、該符号化されたピクチャーが(たとえば、パーサー(520)によって)参照ピクチャーとして同定されると、現在ピクチャー・バッファ(558)は参照ピクチャーメモリ(557)の一部となることができ、後続の符号化されたピクチャーの再構成を開始する前に、新鮮な現在ピクチャー・バッファが再割当てされることができる。
【0079】
ビデオ・デコーダ(510)は、ITU-T勧告H.265のような標準において採用された所定のビデオ圧縮技術に従ってデコード動作を実行することができる。符号化ビデオ・シーケンスはビデオ圧縮技術または標準のシンタックスおよびビデオ圧縮技術または標準において文書化されているプロファイルに従うという意味で、符号化されたビデオ・シーケンスは、使用されているビデオ圧縮技術または標準によって規定されたシンタックスに準拠することができる。具体的には、プロファイルはビデオ圧縮技術または標準において利用可能なすべてのツールから、そのプロファイルのもとでの使用のためにそれだけが利用可能なツールとして、ある種のツールを選択することができる。標準に準拠するために、符号化ビデオ・シーケンスの複雑さが、ビデオ圧縮技術または標準のレベルによって定義される範囲内にあってもよい。いくつかの場合には、レベルは、最大ピクチャー・サイズ、最大フレーム・レート、最大再構成サンプル・レート(たとえば、毎秒メガサンプルの単位で測られる)、最大参照ピクチャー・サイズなどを制約する。レベルによって設定された限界は、場合によっては、符号化ビデオ・シーケンスにおいて信号伝達される、HRDバッファ管理のための仮設参照デコーダ(Hypothetical Reference Decoder、HRD)仕様およびメタデータを通じてさらに制約されることができる。
【0080】
いくつかの例示的実施形態では、受領器(531)は、エンコードされたビデオとともに追加の(冗長な)データを受領してもよい。追加データは、符号化されたビデオ・シーケンス(単数または複数)の一部として含まれていてもよい。追加データは、データを適正にデコードするため、および/またはもとのビデオ・データをより正確に再構成するために、ビデオ・デコーダ(510)によって使用されてもよい。追加データは、たとえば、時間的、空間的、または信号対雑音比(SNR)の向上層、冗長スライス、冗長ピクチャー、前方誤り訂正符号などの形でありうる。
【0081】
図6は、本開示のある例示的実施形態によるビデオ・エンコーダ(603)のブロック図を示している。ビデオ・エンコーダ(603)は、電子装置(620)に含まれていてもよい。電子装置(620)は、送信器(640)(たとえば、送信回路)をさらに含んでいてもよい。ビデオ・エンコーダ(603)は、
図4の例におけるビデオ・エンコーダ(403)の代わりに使用できる。
【0082】
ビデオ・エンコーダ(603)は、ビデオ・エンコーダ(603)によって符号化されるべきビデオ画像を捕捉することができるビデオ源(601)(これは
図6の例では電子装置(620)の一部ではない)からビデオ・サンプルを受領することができる。別の例では、ビデオ源(601)は、電子装置(620)の一部として実装されてもよい。
【0083】
ビデオ源(601)は、任意の好適なビット深さ(たとえば、8ビット、10ビット、12ビット、…)、任意の色空間(たとえば、BT.601 YCrCB、RGB、XYZ…)および任意の好適なサンプリング構造(たとえば、YCrCb 4:2:0、YCrCb 4:4:4)でありうるデジタル・ビデオ・サンプル・ストリームの形で、ビデオ・エンコーダ(603)によって符号化されるべき源ビデオ・シーケンスを提供することができる。メディア・サービス・システムにおいては、ビデオ源(601)は、事前に準備されたビデオを記憶することができる記憶装置であってもよい。ビデオ会議システムにおいては、ビデオ源(601)は、ローカルでの画像情報をビデオ・シーケンスとして捕捉するカメラであってもよい。ビデオ・データは、シーケンスで見たときに動きを付与する複数の個々のピクチャーまたは画像として提供されてもよい。ピクチャー自体は、ピクセルの空間的アレイとして編成されてもよく、各ピクセルは、使用中のサンプリング構造、色空間などに依存して、一つまたは複数のサンプルを含むことができる。当業者は、ピクセルとサンプルとの間の関係を容易に理解することができる。下記の説明は、サンプルに焦点を当てる。
【0084】
いくつかの例示的実施形態によれば、ビデオ・エンコーダ(603)は、源ビデオ・シーケンスのピクチャーを、リアルタイムで、またはアプリケーションによって要求される任意の他の時間的制約の下で、符号化および圧縮して、符号化ビデオ・シーケンス(643)にすることができる。適切な符号化速度を施行することは、コントローラ(650)の一つの機能をなす。いくつかの実施形態では、コントローラ(650)は、以下に記載されるような他の機能ユニットに機能的に結合され、該他の機能ユニットを制御してもよい。かかる結合は、簡単のために描かれていない。コントローラ(650)によって設定されるパラメータは、レート制御に関連するパラメータ(ピクチャー・スキップ、量子化器、レート‐歪み最適化技法のラムダ値、…)、ピクチャー・サイズ、ピクチャーグループ(GOP)レイアウト、最大動きベクトル探索範囲などを含むことができる。コントローラ(650)は、ある種のシステム設計のために最適化されたビデオ・エンコーダ(603)に関する他の好適な機能を有するように構成できる。
【0085】
いくつかの例示的実施形態では、ビデオ・エンコーダ(603)は、符号化ループにおいて動作するように構成されてもよい。思い切って単純化した説明として、一例では、符号化ループは、源符号化器(630)(たとえば、符号化されるべき入力ピクチャーと参照ピクチャー(算数または複数)に基づいてシンボル・ストリームのようなシンボルを生成することを受け持つ)と、ビデオ・エンコーダ(603)に埋め込まれた(ローカル)デコーダ(633)とを含むことができる。埋め込まれたデコーダ633はエントロピー符号化なしに源符号化器630によって符号化ビデオ・ストリームを処理するが、デコーダ(633)は、(リモートの)デコーダが生成するであろうのと同様の仕方でサンプル・データを生成するよう前記シンボルを再構成する(開示される主題において考慮されるビデオ圧縮技術では、エントロピー符号化における、シンボルと符号化ビデオ・ビットストリームとの間のどの圧縮も無損失でありうる)。再構成されたサンプル・ストリーム(サンプル・データ)は、参照ピクチャー・メモリ(634)に入力される。シンボル・ストリームのデコードは、デコーダ位置(ローカルかリモートか)によらずビット正確な結果をもたらすので、参照ピクチャー・メモリ(634)の内容もローカル・エンコーダとリモート・エンコーダの間でビット正確である。言い換えると、エンコーダの予測部は、デコーダがデコード中に予測を使用するときに「見る」のとまったく同じサンプル値を参照ピクチャー・サンプルとして「見る」。参照ピクチャー同期性のこの基本原理(および、たとえば、チャネルエラーのために同期性が維持できない場合の結果として生じるドリフト)は、符号化品質を改善するために使用される。
【0086】
「ローカル」デコーダ(633)の動作は、
図5との関連ですでに上記で詳細に述べた「リモート」デコーダ、たとえばビデオ・デコーダ(410)の動作と同じであってよい。しかしながら、暫時
図5も参照すると、シンボルが利用可能であり、エントロピー符号化器(645)およびパーサー(420)による、シンボルの符号化ビデオ・シーケンスへのエンコード/デコードが可逆でありうるので、バッファ・メモリ(415)およびパーサー(420)を含むビデオ・デコーダ(410)のエントロピー復号部は、エンコーダにおけるローカル・デコーダ(633)においては完全には実装されなくてもよい。
【0087】
この時点で行なうことができる観察は、デコーダ内にのみ存在してもよいパース/エントロピー復号を除くどのデコーダ技術も、対応するエンコーダ内で実質的に同一の機能的形態で存在する必要がありうることである。このため、開示される主題は時にデコーダ動作に焦点を当てることがあるが、これはエンコーダのデコード部分にも当てはまる。このように、エンコーダ技術の記述は、包括的に記述されるデコーダ技術の逆であるため、短縮することができる。ある種の領域または側面においてのみ、エンコーダの、より詳細な説明が以下で与えられる。
【0088】
動作中、いくつかの例示的実装では、源符号化器(630)は、「参照ピクチャー」として指定された、ビデオ・シーケンスからの一つまたは複数の以前に符号化されたピクチャーを参照して、入力ピクチャーを予測的に符号化する、動き補償された予測符号化を実行することができる。このようにして、符号化エンジン(632)は、入力ピクチャーのピクセル・ブロックと、入力ピクチャーに対する予測参照として選択されうる参照ピクチャー(単数または複数)のピクセル・ブロックとの間の、色チャネルにおける差分(または残差)を符号化する。用語「残差」およびその連体形「残差の」は交換可能に使用されうる。
【0089】
ローカル・ビデオ・デコーダ(633)は、源符号化器(630)によって生成されたシンボルに基づいて、参照ピクチャーとして指定されうるピクチャーの符号化されたビデオ・データをデコードすることができる。符号化エンジン(632)の動作は、有利には、損失のあるプロセスでありうる。符号化されたビデオ・データがビデオ・デコーダ(
図6には示さず)でデコードされうるとき、再構成されたビデオ・シーケンスは、典型的には、いくつかのエラーを伴う源ビデオ・シーケンスの複製でありうる。ローカル・ビデオ・デコーダ(633)は、ビデオ・デコーダによって参照ピクチャーに対して実行されうるデコード・プロセスを複製し、再構成された参照ピクチャーを参照ピクチャー・キャッシュ(634)に格納させることができる。このようにして、ビデオ・エンコーダ(603)は、遠端(リモート)のビデオ・デコーダによって得られるであろう再構成された参照ピクチャーとしての共通の内容を(伝送エラーがなければ)有する再構成された参照ピクチャーのコピーを、ローカルに記憶することができる。
【0090】
予測器(635)は、符号化エンジン(632)について予測探索を実行することができる。すなわち、符号化されるべき新しいピクチャーについて、予測器(635)は、新しいピクチャーのための適切な予測参照のはたらきをしうるサンプル・データ(候補参照ピクセル・ブロックとして)またはある種のメタデータ、たとえば参照ピクチャー動きベクトル、ブロック形状などを求めて、参照ピクチャー・メモリ(634)を探索することができる。予測器(635)は、適切な予測参照を見出すために、サンプル・ブロック/ピクセル・ブロック毎に(on a sample block-by-pixel block basis)動作しうる。場合によっては、予測器(635)によって得られた検索結果によって決定されるところにより、入力ピクチャーは、参照ピクチャー・メモリ(634)に記憶された複数の参照ピクチャーから引き出された予測参照を有することができる。
【0091】
コントローラ(650)は、たとえば、ビデオ・データをエンコードするために使用されるパラメータおよびサブグループ・パラメータの設定を含め、源符号化器(630)の符号化動作を管理してもよい。
【0092】
上記の機能ユニットすべての出力は、エントロピー符号化器(645)におけるエントロピー符号化を受けることができる。エントロピー符号化器(645)は、ハフマン符号化、可変長符号化、算術符号化などといった技術に従ったシンボルの無損失圧縮によって、さまざまな機能ユニットによって生成されたシンボルを符号化ビデオ・シーケンスに変換する。
【0093】
送信器(640)は、エントロピー符号化器(645)によって生成される符号化ビデオ・シーケンスをバッファに入れて、通信チャネル(660)を介した送信のために準備することができる。通信チャネル(660)は、エンコードされたビデオ・データを記憶する記憶装置へのハードウェア/ソフトウェア・リンクであってもよい。送信器(640)は、ビデオ符号化器(630)からの符号化されたビデオ・データを、送信されるべき他のデータ、たとえば符号化されたオーディオ・データおよび/または補助データ・ストリーム(源は図示せず)とマージすることができる。
【0094】
コントローラ(650)は、ビデオ・エンコーダ(603)の動作を管理してもよい。符号化の間、コントローラ(650)は、それぞれの符号化されたピクチャーに、ある符号化ピクチャー・タイプを割り当てることができる。符号化ピクチャー・タイプは、それぞれのピクチャーに適用されうる符号化技術に影響しうる。たとえば、ピクチャーはしばしば、以下のピクチャー・タイプのうちの1つとして割り当てられることがある。
【0095】
イントラピクチャー(Iピクチャー)は、予測の源としてシーケンス内の他のピクチャーを使用せずに、符号化され、デコードされうるものでありうる。いくつかのビデオ・コーデックは、たとえば、独立デコーダ・リフレッシュ(Independent Decoder Refresh、「IDR」)・ピクチャーを含む、異なるタイプのイントラ・ピクチャーを許容する。当業者は、Iピクチャーのこれらの変形、ならびにそれらのそれぞれの用途および特徴を認識する。
【0096】
予測ピクチャー(Pピクチャー)は、各ブロックのサンプル値を予測するために、最大で1つの動きベクトルおよび参照インデックスを用いるイントラ予測またはインター予測を用いて符号化およびデコードされうるものでありうる。
【0097】
双方向予測ピクチャー(Bピクチャー)は、各ブロックのサンプル値を予測するために、最大で2つの動きベクトルおよび参照インデックスを用いるイントラ予測またはインター予測を用いて符号化およびデコードされうるものでありうる。同様に、マルチ予測ピクチャーは、単一のブロックの再構成のために、3つ以上の参照ピクチャーおよび関連するメタデータを使用することができる。
【0098】
源ピクチャーは、普通、空間的に複数のサンプル・ブロック(たとえば、それぞれ4×4、8×8、4×8、または16×16サンプルのブロック)に分割され、ブロック毎に符号化されうる。ブロックは、ブロックのそれぞれのピクチャーに適用される符号化割り当てによって決定されるところにより、他の(すでに符号化された)ブロックを参照して予測的に符号化されうる。たとえば、Iピクチャーのブロックは、非予測的に符号化されてもよく、または、同じピクチャーのすでに符号化されたブロックを参照して予測的に符号化されてもよい(空間的予測またはイントラ予測)。Pピクチャーのピクセル・ブロックは、以前に符号化された一つの参照ピクチャーを参照して、空間的予測を介してまたは時間的予測を介して予測的に符号化されてもよい。Bピクチャーのブロックは、1つまたは2つの以前に符号化された参照ピクチャーを参照して、空間的予測を介して、または時間的予測を介して予測的に符号化されてもよい。源ピクチャーまたは中間処理されたピクチャーは、他の目的のために他のタイプのブロックに細分されてもよい。符号化ブロックの分割および他のタイプのブロックは、下記でさらに詳述されるのと同じ仕方に従っても従わなくてもよい。
【0099】
ビデオ・エンコーダ(603)は、ITU-T勧告H.265などの所定のビデオ符号化技術または標準に従って符号化動作を実行することができる。その動作において、ビデオ・エンコーダ(603)は、入力ビデオ・シーケンスにおける時間的および空間的冗長性を活用する予測符号化動作を含む、さまざまな圧縮動作を実行することができる。よって、符号化されたビデオ・データは、使用されるビデオ符号化技術または標準によって指定されるシンタックスに準拠しうる。
【0100】
いくつかの例示的実施形態では、送信器(640)は、エンコードされたビデオと一緒に追加データを送信してもよい。源符号化器(630)は、符号化ビデオ・シーケンスの一部としてそのようなデータを含めてもよい。追加データは、時間的/空間的/SNR向上層、冗長ピクチャーおよびスライスのような他の形の冗長データ、SEIメッセージ、VUIパラメータ・セット・フラグメントなどを含んでいてもよい。
【0101】
ビデオは、時間的シーケンスにおいて複数の源ピクチャー(ビデオ・ピクチャー)として捕捉されてもよい。ピクチャー内予測(しばしば、イントラ予測と略される)は、所与のピクチャーにおける空間的相関を利用し、ピクチャー間予測は、ピクチャー間の(時間的または他の)相関を利用する。たとえば、現在ピクチャーと呼ばれるエンコード/デコード対象の特定のピクチャーは、ブロックに分割されてもよい。現在ピクチャー内のブロックは、ビデオにおける、前に符号化され、かつ、まだバッファに入れられている参照ピクチャー内の参照ブロックに類似する場合、動きベクトルと呼ばれるベクトルによって符号化できる。動きベクトルは、参照ピクチャー内の参照ブロックをポイントし、複数の参照ピクチャーが使用される場合には、参照ピクチャーを同定する第3の次元を有することができる。
【0102】
いくつかの例示的実施形態では、ピクチャー間予測のために双予測技術が使用できる。そのような双予測技術によれば、いずれもデコード順でビデオにおいて現在ピクチャーに先行する(ただし、表示順では、それぞれ過去または将来であってもよい)第1の参照ピクチャーおよび第2の参照ピクチャーのような2つの参照ピクチャーが使用される。現在ピクチャー内のブロックは、第1の参照ピクチャー内の第1の参照ブロックをポイントする第1 動きベクトルと、第2の参照ピクチャー内の第2の参照ブロックをポイントする第2 動きベクトルとによって符号化できる。ブロックは、第1の参照ブロックと第2の参照ブロックの組み合わせによって合同的に予測できる。
【0103】
さらに、符号化効率を改善するために、ピクチャー間予測においてマージモード技法が使用されてもよい。
【0104】
本開示のいくつかの例示的実施形態によれば、ピクチャー間予測およびピクチャー内予測などの予測は、ブロックの単位で実行される。たとえば、ビデオ・ピクチャーのシーケンスにおけるピクチャーは、圧縮のために符号化ツリー単位(CTU)に分割され、ピクチャーにおけるそれらのCTUは、128×128ピクセル、64×64ピクセル、32×32ピクセル、または16×16ピクセルなどの同じサイズを有していてもよい。一般に、CTUは、1つのルーマCTBおよび2つのクロマCTBという3つの並列な符号化ツリーブロック(CTB)を含みうる。各CTUは、再帰的に、一つまたは複数の符号化単位(CU)に四分木分割されていくことができる。たとえば、64×64ピクセルのCTUは、64×64ピクセルの1つのCU、または32×32ピクセルの4つのCUに分割できる。32×32のブロックの前記一つまたは複数のそれぞれは、16×16ピクセルの4つのCUにさらに分割されてもよい。いくつかの例示的実施形態では、各CUは、エンコードの際に、インター予測タイプまたはイントラ予測タイプのような、そのCUについての予測タイプを、さまざまな予測タイプのうちで決定するために解析される。CUは時間的および/または空間的予測可能性に依存して、一つまたは複数の予測単位(PU)に分割されてもよい。一般に、各PUはルーマ予測ブロック(PB)および2つのクロマPBを含む。ある実施形態では、符号化(エンコード/デコード)における予測動作は、予測ブロックの単位で実行される。CUのPU(または異なる色チャネルのPB)への分割は、さまざまな空間的パターンで実行されうる。たとえば、ルーマまたはクロマPBは、8×8ピクセル、16×16ピクセル、8×16ピクセル、16×8サンプルなど、サンプルについての値(たとえば、ルーマ値)の行列を含みうる。
【0105】
図7は、本開示の別の例示的実施形態によるビデオ・エンコーダ(703)の図を示す。ビデオ・エンコーダ(703)は、ビデオ・ピクチャーのシーケンス内の現在ビデオ・ピクチャー内のサンプル値の処理ブロック(たとえば、予測ブロック)を受領し、処理ブロックを、符号化ビデオ・シーケンスの一部である符号化されたピクチャーにエンコードするように構成される。この例示的なビデオ・エンコーダ(703)は、
図4の例におけるビデオ・エンコーダ(403)の代わりに使用されてもよい。
【0106】
たとえば、ビデオ・エンコーダ(703)は、8×8サンプルなどの予測ブロックのような処理ブロックについてサンプル値の行列を受領する。次いで、ビデオ・エンコーダ(703)は、処理ブロックが、イントラモード、インターモード、または双予測モードのどれを使用して、最もよく符号化されるかを、たとえばレート‐歪み最適化(rate-distortion optimization、RDO)を使用して、判別する。処理ブロックがイントラモードで符号化されると決定される場合、ビデオ・エンコーダ(703)は、処理ブロックを符号化されたピクチャーにエンコードするためにイントラ予測技法を使用してもよく;処理ブロックがインターモードまたは双予測モードで符号化されると決定される場合、ビデオ・エンコーダ(703)は、処理ブロックを符号化されたピクチャーにエンコードするために、それぞれ、インター予測技法または双予測技法を使用してもよい。いくつかの例示的実施形態では、マージモード(merge mode)が、動きベクトルが一つまたは複数の動きベクトル予測子から導出されるが前記予測子の外の符号化された動きベクトル成分の利益のない、ピクチャー間予測のサブモードとして使用されてもよい。いくつかの他の例示的実施形態では、対象ブロックに適用可能な動きベクトル成分が存在してもよい。よって、ビデオ・エンコーダ(703)は、処理ブロックの予測モードを決定するためのモード決定モジュールなどの、
図7に明示的に示されていないコンポーネントを含んでいてもよい。
【0107】
図7の例では、ビデオ・エンコーダ(703)は、インター・エンコーダ(730)、イントラ・エンコーダ(722)、残差計算器(723)、スイッチ(726)、残差エンコーダ(724)、全般コントローラ(721)、およびエントロピー符号化器(725)を、
図7における例示的配置に示されるように一緒に結合されて含む。
【0108】
インター・エンコーダ(730)は、現在ブロック(たとえば、処理ブロック)のサンプルを受領し、該ブロックを参照ピクチャー内の一つまたは複数の参照ブロック(たとえば、表示順で以前のピクチャーおよび後のピクチャー内のブロック)と比較し、インター予測情報(たとえば、インター・エンコード技術による冗長情報の記述、動きベクトル、マージモード情報)を生成し、該インター予測情報に基づいて、任意の好適な技法を使用してインター予測結果(たとえば、予測されたブロック)を計算するように構成される。いくつかの例では、前記参照ピクチャーは、
図6の例示的エンコーダ620に埋め込まれたデコード・ユニット633(
図7の残差デコーダ728として示される;これについてはのちにさらに詳述する)を使って、エンコードされたビデオ情報に基づいてデコードされた、デコードされた参照ピクチャーである。
【0109】
イントラ・エンコーダ(722)は、現在ブロック(たとえば、処理ブロック)のサンプルを受領し、該ブロックを、同じピクチャー内ですでに符号化されているブロックと比較し、変換後の量子化された係数を生成し、場合によっては、イントラ予測情報(たとえば、一つまたは複数のイントラ・エンコード技法によるイントラ予測方向情報)も生成するように構成される。イントラ・エンコーダ(722)は、該イントラ予測情報および同じピクチャー内の参照ブロックに基づいて、イントラ予測結果(たとえば、予測されたブロック)を計算してもよい。
【0110】
全般コントローラ(721)は、全般制御データを決定し、全般制御データに基づいてビデオ・エンコーダ(703)の他のコンポーネントを制御するように構成されてもよい。一例では、全般コントローラ(721)は、ブロックの予測モードを決定し、その予測モードに基づいて制御信号をスイッチ(726)に提供する。たとえば、予測モードがイントラモードである場合、全般コントローラ(721)は、残差計算器(723)による使用のためにイントラモードの結果を選択するようスイッチ(726)を制御し、イントラ予測情報を選択し、イントラ予測情報をビットストリームに含めるようエントロピー・エンコーダ(725)を制御する;ブロックについての予測モードがインターモードである場合、全般コントローラ(721)は、残差計算器(723)による使用のためにインター予測の結果を選択するようスイッチ(726)を制御し、インター予測情報を選択し、インター予測情報をビットストリームに含めるようエントロピー・エンコーダ(725)を制御する。
【0111】
残差計算器(723)は、受領されたブロックと、イントラ・エンコーダ(722)またはインター・エンコーダ(730)から選択された、そのブロックについての予測結果との差(残差データ)を計算するように構成されてもよい。残差エンコーダ(724)は、残差データをエンコードして変換係数を生成するように構成されてもよい。たとえば、残差エンコーダ(724)は、残差データを空間領域から周波数領域に変換して、変換係数を生成するように構成されてもよい。次いで、変換係数は、量子化処理にかけられ、量子化された変換係数を得る。さまざまな例示的実施形態において、ビデオ・エンコーダ(703)は、残差デコーダ(728)をも含む。残差デコーダ(728)は、逆変換を実行して、デコードされた残差データを生成するように構成される。デコードされた残差データは、イントラ・エンコーダ(722)およびインター・エンコーダ(730)によって好適に使用されることができる。たとえば、インター・エンコーダ(730)は、デコードされた残差データおよびインター予測情報に基づいて、デコードされたブロックを生成することができ、イントラ・エンコーダ(722)は、デコードされた残差データおよびイントラ予測情報に基づいて、デコードされたブロックを生成することができる。デコードされたブロックは、デコードされたピクチャーを生成するために好適に処理され、デコードされたピクチャーは、メモリ回路(図示せず)内でバッファリングされ、参照ピクチャーとして使用されることができる。
【0112】
エントロピー・エンコーダ(725)は、エンコードされたブロックを含むようにビットストリームをフォーマットして、エントロピー符号化を実行するように構成されてもよい。エントロピー・エンコーダ(725)は、さまざまな情報をビットストリームに含めるように構成される。たとえば、エントロピー・エンコーダ(725)は、全般制御データ、選択された予測情報(たとえば、イントラ予測情報またはインター予測情報)、残差情報、および他の好適な情報をビットストリーム内に含めるように構成されてもよい。インターモードまたは双予測モードのいずれかのマージ・サブモードにおいてブロックを符号化する場合は、残差情報は存在しなくてもよい。
【0113】
図8は、本開示の別の実施形態による例示的なビデオ・デコーダ(810)の図を示す。ビデオ・デコーダ(810)は、符号化されたビデオ・シーケンスの一部である符号化されたピクチャーを受領し、符号化されたピクチャーをデコードして、再構成されたピクチャーを生成するように構成される。一例では、ビデオ・デコーダ(810)は、
図4の例におけるビデオ・デコーダ(410)の代わりに使用されてもよい。
【0114】
図8の例では、ビデオ・デコーダ(810)は、エントロピー・デコーダ(871)、インター・デコーダ(880)、残差デコーダ(873)、再構成モジュール(874)、およびイントラ・デコーダ(872)が
図8の例示的配置に示されるように一緒に結合されたものを含む。
【0115】
エントロピー・デコーダ(871)は、符号化されたピクチャーから、その符号化されたピクチャーが構成されるシンタックス要素を表わすある種のシンボルを再構成するように構成されることができる。そのようなシンボルは、たとえば、ブロックが符号化されるモード(たとえば、イントラモード、インターモード、双予測モード、マージ・サブモードまたは別のサブモード)、イントラ・デコーダ(872)またはインター・デコーダ(880)によって予測のために使用されるある種のサンプルまたはメタデータを同定することができる予測情報(たとえば、イントラ予測情報またはインター予測情報など)、たとえば量子化された変換係数の形の残差情報などを含むことができる。一例では、予測モードがインターまたは双予測モードである場合、インター予測情報がインター・デコーダ(880)に提供され;予測タイプがイントラ予測タイプである場合には、イントラ予測情報がイントラ・デコーダ(872)に提供される。残差情報は、逆量子化を受けることができ、残差デコーダ(873)に提供される。
【0116】
インター・デコーダ(880)は、インター予測情報を受領し、該インター予測情報に基づいてインター予測結果を生成するように構成されてもよい。
【0117】
イントラ・デコーダ(872)は、イントラ予測情報を受領し、該イントラ予測情報に基づいて予測結果を生成するように構成されてもよい。
【0118】
残差デコーダ(873)は、逆量子化を実行して量子化解除された変換係数を抽出し、量子化解除された変換係数を処理して、残差を周波数領域から空間領域に変換するように構成されてもよい。残差デコーダ(873)はまた、ある種の制御情報(量子化器パラメータ(QP)を含む)をも利用してもよく、該制御情報は、エントロピー・デコーダ(871)によって提供されてもよい(これは、低データ・ボリュームの制御情報のみであるため、データ経路は描かれていない)。
【0119】
再構成モジュール(874)は、空間領域において、残差デコーダ(873)によって出力される残差と、予測結果(場合に応じてイントラまたはインター予測モジュールによって出力される)とを組み合わせて、再構成されたブロックを形成するように構成されてもよく、該再構成されたブロックは再構成されたビデオの一部としての再構成されたピクチャーの一部をなす。視覚的品質を改善するためにブロッキング解除動作などの他の好適な動作が実行されてもよいことを注意しておく。
【0120】
なお、ビデオ・エンコーダ(403)、(603)、(703)、およびビデオ・デコーダ(410)、(510)、(810)は、任意の好適な技法を用いて実装できる。いくつかの例示的実施形態では、ビデオ・エンコーダ(403)、(603)、(703)およびビデオ・デコーダ(410)、(510)、(810)は、一つまたは複数の集積回路を使用して実装できる。別の実施形態では、ビデオ・エンコーダ(403)、(603)、(603)、およびビデオ・デコーダ(410)、(510)、(810)は、ソフトウェア命令を実行する一つまたは複数のプロセッサを使用して実装できる。
【0121】
符号化および復号化のためのブロック・パーティション分割に目を向けると、一般的なパーティション分割は、ベース・ブロックから始まり、事前に定義された規則集合、特定の諸パターン、パーティション・ツリー、または任意のパーティション構造または方式に従うことができる。パーティション分割は、階層的かつ再帰的でありうる。以下に記載される例示的なパーティション分割手順または他の手順のいずれか、またはそれらの組み合わせに従ってベース・ブロックを分割またはパーティション分割した後、パーティションまたは符号化ブロックの最終的な集合が得られてもよい。これらのパーティションのそれぞれは、パーティション分割階層構造におけるさまざまなパーティション分割レベルの一つであってもよく、さまざまな形でありうる。各パーティションは、符号化ブロック(CB)と称されることがある。以下にさらに記載されるさまざまな例示的なパーティション分割実装については、結果として得られる各CBは、許容されるサイズおよびパーティション分割レベルの任意のものでありうる。そのようなパーティションが符号化ブロックと呼ばれるのは、そのようなパーティションは、いくつかの基本的な符号化/復号の決定がなされることができ、符号化/復号パラメータが最適化され、決定され、エンコードされたビデオ・ビットストリームにおいて信号伝達されうる単位をなしうるからである。最後の諸パーティションにおける最上位または最も深いレベルは、ツリーの符号化ブロック・パーティション分割構造の深さを表す。符号化ブロックは、ルーマ符号化ブロックまたはクロマ符号化ブロックでありうる。各色のCBツリー構造は、符号化ブロックツリー(CBT)と称されることがある。
【0122】
すべての色チャネルの符号化ブロックは、まとめて符号化単位(CU)と称されることがある。すべての色チャネルの階層構造は、符号化ツリー単位(CTU)と総称されることがある。CTU内のさまざまな色チャネルについてのパーティション分割パターンまたは構造は、同じであってもなくてもよい。
【0123】
いくつかの実装では、ルーマ・チャネルとクロマ・チャネルについて使用されるパーティション・ツリーの方式または構造は、同じである必要はなくてもよい。言い換えると、ルーマ・チャネルとクロマ・チャネルは、別個の符号化ツリー構造またはパターンを有してもよい。さらに、ルーマ・チャネルおよびクロマ・チャネルが、同じ符号化パーティション・ツリー構造を使用するか異なる符号化パーティション・ツリー構造を使用するかと、使用される実際の符号化パーティション・ツリー構造は、符号化されるスライスがPスライスであるか、Bスライスであるか、またはIスライスであるかに依存しうる。たとえば、Iスライスについては、クロマ・チャネルとルーマ・チャネルは、別個の符号化パーティション・ツリー構造または符号化パーティション・ツリー構造モードを有することができるが、PまたはBスライスについては、ルーマ・チャネルとクロマ・チャネルは、同じ符号化パーティション・ツリー方式を共有してもよい。別個の符号化パーティション・ツリー構造またはモードが適用される場合、ルーマ・チャネルは、1つの符号化パーティション・ツリー構造によってCBにパーティション分割されてもよく、クロマ・チャネルは、別の符号化パーティション・ツリー構造によってクロマCBにパーティション分割されてもよい。
【0124】
いくつかの例示的実装では、所定のパーティション分割パターンがベース・ブロックに適用されてもよい。
図9に示されるように、例示的な4路(4-way)パーティション・ツリーは、第1の事前に定義されたレベル(たとえば、ベース・ブロック・サイズとしての64×64ブロック・レベルまたは他のサイズ)から開始してもよく、ベース・ブロックは、事前に定義された最低レベル(たとえば、4×4レベル)まで階層的に分割されてもよい。たとえば、ベース・ブロックは、902、904、906、および908によって示される4つの事前に定義されたパーティション分割オプションまたはパターンに従ってもよく、
図9に示されるのと同じパーティション分割オプションが、最低レベル(たとえば、4×4レベル)まで、より低いスケールで繰り返されてもよい。いくつかの実装では、
図9のパーティション分割方式に追加的な制約が適用されてもよい。
図9の実装では、長方形パーティション(たとえば、1:2/2:1の長方形パーティション)が許容されてもよいが、長方形パーティションは再帰的であることが許容されなくてもよい。一方、正方形パーティションは再帰的であることが許容される。必要であれば再帰を伴う、
図9に従うパーティション分割は、符号化ブロックの最終集合を生成する。ルート・ノードまたはルート・ブロックからの分割深さを示すために、さらに符号化ツリーの深さが定義されてもよい。たとえば、ルート・ノードまたはルート・ブロック、たとえば、64×64ブロックについての符号化ツリーの深さは、0に設定されてもよく、ひとたびルート・ブロックが
図9に従ってさらに分割された後には、符号化ツリーの深さは、1だけ増される。64×64ベース・ブロックから4×4の最小パーティションまでの最大のまたは最も深いレベルは、上記の方式については4となる(レベル0から始めて)。そのようなパーティション分割方式は、色チャネルのうちの一つまたは複数に適用されてもよい。各色チャネルは、
図9の方式に従って独立してパーティション分割されてもよい(たとえば、事前に定義されたパターンのうちのパーティション分割パターンまたはオプションが、各階層レベルで色チャネルのそれぞれについて独立して決定されてもよい)。あるいはまた、色チャネルのうちの2つ以上が、
図9の同じ階層式パターン・ツリーを共有してもよい(たとえば、各階層レベルで2つ以上の色チャネルについて、事前に定義されたパターンのうちの同じパーティション・パターンまたはオプションが選択されてもよい)。
【0125】
図10は、パーティション分割ツリーを形成するために再帰的なパーティション分割を許容する、別の例示的な事前に定義されたパーティション分割パターンを示している。
図10に示されるように、例示的な10路(10-way)パーティション分割構造またはパターンを事前に定義されてもよい。ルート・ブロックは、事前に定義されたレベルで(たとえば、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だけ増される。いくつかの実装では、1010におけるすべて正方形のパーティションのみが、
図10のパターンに従ったパーティション分割ツリーの次のレベルへの再帰的な分割を許容されてもよい。換言すれば、T型パターン1002、1004、1006、および1008内の正方形パーティションについては、再帰的パーティション分割は許容されなくてもよい。必要であれば再帰を伴う、
図10に従ったパーティション分割手順は、符号化ブロックの最終集合を生成する。そのような方式は、色チャネルのうちの一つまたは複数に適用されうる。いくつかの実装では、8×8レベルより下のパーティションの使用に、さらなる柔軟性が加えられてもよい。たとえば、2×2クロマのインター予測が、ある種の場合に使用されうる。
【0126】
符号化ブロック・パーティション分割のためのいくつかの他の例示的実装では、四分木構造が、ベース・ブロックまたは中間ブロックを四分木パーティションに分割するために使用されてもよい。そのような四分木分割は、階層的に、かつ再帰的に、任意の正方形のパーティションに適用されうる。ベース・ブロックまたは中間ブロックまたはパーティションがさらに四分木分割されるかどうかは、そのベース・ブロックまたは中間ブロック/パーティションのさまざまなローカル特性に合わせて適応されてもよい。ピクチャー境界での四分木分割は、さらに適応されてもよい。たとえば、暗黙的な四分木分割が、ピクチャー境界において実行されてもよく、それにより、サイズがピクチャー境界に適合するまで、ブロックは四分木分割を続けてもよい。
【0127】
いくつかの他の例示的実装では、ベース・ブロックからの階層的な二分パーティション分割が使用されてもよい。そのような方式については、ベース・ブロックまたは中間レベル・ブロックは2つのパーティションに分割されうる。二分パーティション分割は、水平または垂直でありうる。たとえば、水平二分パーティション分割は、ベース・ブロックまたは中間ブロックを等しい左右のパーティションに分割することができる。同様に、垂直二分分割は、ベース・ブロックまたは中間ブロックを等しい上下のパーティションに分割することができる。そのような二分分割は、階層的かつ再帰的でありうる。ベース・ブロックまたは中間ブロックのそれぞれにおいて、二分パーティション分割方式が続行されるべきかどうか、および該方式がさらに続行される場合、水平または垂直二分パーティション分割のどちらが使用されるべきかの決定がなされてもよい。いくつかの実装では、さらなるパーティション分割は、(一方または両方の次元方向における)事前に定義された最低パーティション・サイズで停止してもよい。あるいはまた、ひとたび事前に定義されたパーティション分割レベルまたはベース・ブロックからの深さに到達すると、さらなるパーティション分割が停止してもよい。いくつかの実装では、パーティションのアスペクト比が制約されてもよい。たとえば、パーティションのアスペクト比は1:4より小さくない(または4:1より大きくない)。よって、垂直対水平のアスペクト比が4:1の垂直ストリップ・パーティションは、さらに、垂直対水平のアスペクト比がそれぞれ2:1の上側および下側パーティションに垂直に二分パーティション分割されることができるだけである。
【0128】
さらに他のいくつかの例では、
図13に示されるように、ベース・ブロックまたは任意の中間ブロックをパーティション分割するために三分パーティション分割方式が使用されてもよい。三分パターンは、
図13の1302に示されるように垂直に、または
図13の1304に示されるように水平に実装されてもよい。
図13における例示的な分割比は、垂直方向でも水平方向でも、1:2:1として示されているが、他の比が事前に定義されてもよい。いくつかの実装では、2つ以上の異なる比が事前に定義されてもよい。そのような三分パーティション分割方式は、四分木または二分パーティション分割構造を補完するために使用されてもよく、そのような三分木パーティション分割は、ブロック中心に位置するオブジェクトを1つの連続的なパーティション内に捕捉することができ、一方、四分木および二分木は常にブロック中心に沿って分割し、よって、該オブジェクトを別々のパーティションに分割することになる。いくつかの実装では、例示的な三分木のパーティションの幅および高さは、追加的な変換を回避するために、常に2の冪乗である。
【0129】
上記のパーティション分割方式は、異なるパーティション分割レベルで任意の仕方で組み合わされてもよい。一例として、上述の四分木および二分パーティション分割方式を組み合わせて、ベース・ブロックを四分木二分木(quadtree-binary-tree、QTBT)構造にパーティション分割してもよい。そのような方式では、ベース・ブロックまたは中間ブロック/パーティションは、指定されていれば一組の事前定義された条件に従って、四分木分割または二分分割されてもよい。特定の例が
図14に示される。
図14の例では、ベース・ブロックは、1402、1404、1406、および1408によって示されるように、まず4つのパーティションに四分木分割される。その後、結果として得られる各パーティションは、次のレベルで4つのさらなるパーティション(1408など)に四分木分割されるか、2つのさらなるパーティション(1402または1406など;いずれもたとえば対称的)に(水平または垂直に)二分分割されるか、または分割されない(1404など)。1410の全体的な例示的なパーティション・パターンおよび1420における対応するツリー構造/表現によって示されるように、正方形のパーティションについては、二分または四分木分割が再帰的に許容されてもよく、ここで、実線は四進分割を表し、破線は二分分割を表す。各二分分割ノード(リーフでない二分パーティション)について、二分分割が水平か垂直かを示すために、フラグが使用されてもよい。たとえば、1420に示されるように、1410のパーティション分割構造と整合して、フラグ「0」は水平二分分割を表してもよく、フラグ「1」は垂直二分分割を表してもよい。四分木分割されたパーティションについては、分割タイプを示す必要はない。四分木分割は常にブロックまたはパーティションを水平方向と垂直方向の両方で分割し、同じサイズの4つのサブブロック/パーティションを生成するからである。いくつかの実装では、フラグ「1」が水平二分分割を表してもよく、フラグ「0」が垂直二分分割を表してもよい。
【0130】
QTBTのいくつかの例示的実装では、四分木および二分分割規則集合は、以下の事前定義されたパラメータおよびそれに関連する対応する関数によって表現されてもよい:
・CTUサイズ:四分木のルート・ノード・サイズ(ベース・ブロックのサイズ)
・MinQTSize:最小の許容される四分木リーフ・ノード・サイズ
・MaxBTSize:最大の許容される二分木ルート・ノード・サイズ
・MaxBTDepth:最大の許容される二分木の深さ
・MinBTSize:最小の許容される二分木リーフ・ノード・サイズ
QTBTパーティション分割構造のいくつかの例示的実装では、CTUサイズは128×128ルーマ・サンプルとして設定されて、2つの対応する64×64ブロックのクロマサンプル(例示的なクロマ・サブサンプリングが考慮され使用される場合)があってもよく、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に等しい高さをもつ場合、それ以上の垂直分割は考慮されない。
【0131】
いくつかの例示的な実装では、上記のQTBT方式は、ルーマとクロマが同じQTBT構造または別々のQTBT構造をもつ柔軟性をサポートするように構成されてもよい。たとえば、PスライスとBスライスについては、1つのCTUにおけるルーマCTBとクロマCTBは同じQTBT構造を共有してもよい。しかしながら、Iスライスについては、ルーマCTBはQTBT構造によってCBにパーティション分割されてもよく、クロマCTBは別のQTB構造によってクロマCBにパーティション分割されてもよい。これは、CUが、Iスライス内の異なる色チャネルを参照するために使用されうることを意味する。たとえば、Iスライスは、ルーマ成分の符号化ブロック、または2つのクロマ成分の符号化ブロックから構成されてもよく、PまたはBスライス内のCUは、3つの色成分すべての符号化ブロックから構成されてもよい。
【0132】
いくつかの他の実装では、QTBT方式は、上述の三分方式で補足されてもよい。そのような実装は、マルチタイプ・ツリー構造(multi-type-tree、MTT)と称されてもよい。たとえば、ノードの二分分割に加えて、
図13の三分パーティション・パターンの1つが選択されてもよい。いくつかの実装では、正方形ノードのみが三分分割を受けてもよい。三分パーティション分割が水平か垂直かを示すために、追加的なフラグが使用されてもよい。
【0133】
QTBT実装および三分分割によって補足されたQTBT実装のような2レベルまたはマルチレベル・ツリーの設計は、主に複雑性の低減によって動機づけられうる。理論的には、ツリーをたどる複雑さはTDであり、ここで、Tは分割型の数を表し、Dはツリーの深さである。深さ(D)を小さくしつつ複数の型(T)を使用することによってトレードオフを行うことができる。
【0134】
いくつかの実装では、CBはさらにパーティション分割されてもよい。たとえば、CBは、符号化および復号プロセスの間のフレーム内またはフレーム間予測の目的のために、複数の予測ブロック(PB)にさらにパーティション分割されてもよい。言い換えれば、CBはさらに、異なるサブパーティションに分割されてもよく、そこで、個々の予測決定/構成がなされてもよい。並行して、CBは、ビデオ・データの変換または逆変換が実行されるレベルを描写するために、複数の変換ブロック(TB)にさらにパーティション分割されてもよい。CBのPBおよびTBへのパーティション分割方式は、同じであってもなくてもよい。たとえば、各パーティション分割方式は、たとえば、ビデオ・データのさまざまな特性に基づいて、それ自身の手順を用いて実行されてもよい。PBおよびTBのパーティション分割方式は、いくつかの例示的実装では独立であってもよい。PBおよびTBのパーティション分割方式および境界は、いくつかの他の例示的実装では、相関していてもよい。いくつかの実装では、たとえば、TBは、PBパーティションの後にパーティション分割されてもよく、特に、符号化ブロックのパーティション分割の後に決定された後の各PBは、さらに、一つまたは複数のTBにパーティション分割されてもよい。たとえば、いくつかの実装では、PBは1つ、2つ、4つ、または他の数のTBに分割されてもよい。
【0135】
いくつかの実装では、ベース・ブロックを符号化ブロックに、さらに予測ブロックおよび/または変換ブロックにパーティション分割するために、ルーマ・チャネルおよびクロマ・チャネルは、異なるように扱われてもよい。たとえば、いくつかの実装では、符号化ブロックの予測ブロックおよび/または変換ブロックへのパーティション分割は、ルーマ・チャネルについては許容されてもよいが、一方、符号化ブロックの予測ブロックおよび/または変換ブロックへのそのようなパーティション分割は、クロマ・チャネル(単数または複数)については許容されなくてもよい。そのような実装では、ルーマ・ブロックの変換および/または予測は、符号化ブロック・レベルでのみ実行されてもよい。別の例では、ルーマ・チャネルおよびクロマチャネル(単数または複数)についての最小変換ブロック・サイズが異なっていてもよい。たとえば、ルーマ・チャネルについての符号化ブロックは、クロマ・チャネルよりも小さな変換ブロックおよび/または予測ブロックにパーティション分割されることが許容されてもよい。さらに別の例では、符号化ブロックの変換ブロックおよび/または予測ブロックへのパーティション分割の最大深さは、ルーマ・チャネルとクロマ・チャネルとの間で異なっていてもよく、たとえば、ルーマ・チャネルについての符号化ブロックは、クロマ・チャネル(単数または複数)よりも深い変換および/または予測ブロックにパーティション分割されることが許容されてもよい。具体例では、ルーマ符号化ブロックは、最大2レベルまで下がる再帰的パーティションによって表すことができる複数のサイズの変換ブロックにパーティション分割されてもよく、正方形、2:1/1:2、4:1/1:4などの変換ブロック形状、および4×4から64×64への変換ブロック・サイズが許容されてもよい。しかしながら、クロマ・ブロックについては、ルーマ・ブロックについて指定された最大の可能な変換ブロックのみが許容されてもよい。
【0136】
符号化ブロックのPBへのパーティション分割のためのいくつかの例示的実装では、PBパーティション分割の深さ、形状、および/または他の特性は、PBがイントラ符号化されるかインター符号化されるかに依存してもよい。
【0137】
符号化ブロック(または予測ブロック)の変換ブロックへのパーティション分割は、さまざまな例示的方式で実現されうる。そのような方式は、これに限定されるものではないが、再帰的または非再帰的な、四分木分割および事前定義されたパターンの分割を含み、符号化ブロックまたは予測ブロックの境界での変換ブロックについて追加的な考慮をしてもよい。一般に、結果として得られる変換ブロックは、異なる分割レベルにあってもよく、同じサイズでなくてもよく、また、正方形の形状である必要がなくてもよい(たとえば、許容されるサイズおよびアスペクト比をもつ長方形であってもよい)。さらなる例は、
図15、
図16、および
図17に関連して以下でさらに詳細に記載される。
【0138】
しかしながら、いくつかの他の実装では、上記のパーティション分割方式のいずれかを介して得られたCBが、予測および/または変換のための基本的または最小の符号化ブロックとして使用されてもよい。言い換えれば、インター予測/イントラ予測の目的および/または変換目的のために、さらなる分割は実行されない。たとえば、上記のQTBT方式から得られたCBは、予測を実行するための単位として直接使用されてもよい。具体的には、そのようなQTBT構造は、複数のパーティション型の概念を除去する、すなわち、CU、PUおよびTUの分離を除去し、上述のように、CU/CBのパーティション形状について、より多くの柔軟性をサポートする。そのようなQTBTブロック構造では、CU/CBは正方形または長方形のいずれかの形状を有することができる。そのようなQTBTのリーフ・ノードは、それ以上パーティション分割することなく、予測および変換処理のための単位として使用される。これは、そのような例示的なQTBT符号化ブロック構造では、CU、PU、TUが同じブロック・サイズを持つことを意味する。
【0139】
上記のさまざまなCBパーティション分割方式およびCBのPBおよび/またはTBへのさらなるパーティション分割(PB/TBパーティション分割なしを含む)は、任意の仕方で組み合わされうる。下記の具体的な諸実装は、限定しない例として提供される。
【0140】
符号化ブロックおよび変換ブロック・パーティション分割の具体的な例示的実装が下記で記載される。そのような例示的実装では、ベース・ブロックは、上記の(
図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に分割されてもよい。
【0141】
ベース・ブロックをCB、PB、および/またはTBにパーティション分割するための別の例示的な実装が、以下にさらに記載される。たとえば、
図9または
図10に示されるような複数のパーティション単位型を使用するのではなく、二分および三分分割セグメンテーション構造を使用する、ネストされたマルチタイプ・ツリーを有する四分木(たとえば、上記のような、QTBT、または、三分分割を伴うQTBT)が使用されてもよい。CB、PB、TBの分離(すなわち、CBをPBおよび/またはTBにパーティション分割し、PBをTBにパーティション分割すること)は、最大変換長について大きすぎるサイズをもつ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のネストされたパターンは、さらに四分木分割を含んでいてもよい。
【0142】
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は、
図11の垂直二分分割1102に従った2つのパーティションへの第2レベルの分割パターンを採用し、該2つのパーティションはさらに、
図11の水平三分分割1108および垂直二分分割1102に従って第3レベルにおいてさらに分割される。さらに、
図11の水平二分分割1104に従って、それらのうちの1つに第4レベルの分割が適用される。
【0143】
上記の特定の例については、最大ルーマ変換サイズは64×64であってもよく、最大のサポートされるクロマ変換サイズはルーマとは異なっていて、たとえば32×32であってもよい。
図12における上記の例示的なCBは、一般には、より小さなPBおよび/またはTBにさらに分割されないが、ルーマ符号化ブロックまたはクロマ符号化ブロックの幅または高さが、最大変換幅または高さよりも大きい場合には、ルーマ符号化ブロックまたはクロマ符号化ブロックは、水平および/または垂直方向における変換サイズ制約を満たすために、水平方向および/または垂直方向において自動的に分割されてもよい。
【0144】
上記の、ベース・ブロックをCBにパーティション分割する特定の例では、上述のように、符号化ツリー方式は、ルーマとクロマが別個のブロックツリー構造をもてることをサポートすることができる。たとえば、PおよびBスライスについて、1つのCTUにおけるルーマCTBおよびクロマCTBは、同じ符号化ツリー構造を共有してもよい。Iスライスについては、たとえば、ルーマとクロマは、別個の符号化ブロックツリー構造を持つことができる。別個のブロックツリー構造が適用されると、ルーマCTBは1つの符号化ツリー構造によってルーマCBにパーティション分割され、クロマCTBは別の符号化ツリー構造によってクロマCBにパーティション分割される。これは、IスライスにおけるCUはルーマ成分の符号化ブロック、または2つのクロマ成分の符号化ブロックで構成されている可能性があり、PスライスまたはBスライスにおけるCUは、ビデオがモノクロでない限り、常に3つの色成分すべての符号化ブロックで構成されていることを意味する。
【0145】
符号化ブロックがさらに複数の変換ブロックに分割される場合、その中の変換ブロックは、さまざまな順序または走査態様に従って、ビットストリーム内で順序付けられてもよい。符号化ブロックまたは予測ブロックを変換ブロックにパーティション分割するための例示的な実装、および変換ブロックの符号化順序は、以下にさらに詳細に説明される。いくつかの例示的な実装では、上述したように、変換パーティション分割は、複数の形状のブロック、たとえば、1:1(正方形)、1:2/2:1、および1:4/4:1をサポートしてもよく、変換ブロックのサイズは、たとえば、4×4~64×64の範囲である。いくつかの実装では、符号化ブロックが64×64以下であれば、変換ブロック・パーティション分割はルーマ成分にのみ適用されてもよく、クロマ・ブロックについては、変換ブロック・サイズは符号化ブロック・サイズと同一である。そうではなく、符号化ブロックの幅または高さが64より大きい場合には、ルーマおよびクロマ符号化ブロックは、それぞれ、暗黙的に、min(W,64)×min(H,64)およびmin(W,32)×min(H,32)の変換ブロックの複数個に分割されうる。
【0146】
変換ブロック・パーティション分割のいくつかの例示的実装では、イントラおよびインター符号化ブロックの両方について、符号化ブロックは、事前に定義された数のレベル(たとえば、2つのレベル)までのパーティション分割深さで、複数の変換ブロックにさらにパーティション分割されてもよい。変換ブロック・パーティション分割の深さおよびサイズは、関連してもよい。いくつかの例示的実装について、現在の深さの変換サイズから次の深さの変換サイズへのマッピングが下記で表1に示される。
【表1】
【0147】
表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のサブ変換ブロックを生成することができる。
【0148】
いくつかの例示的実装では、イントラ符号化されたブロックのルーマ成分について、変換ブロック・パーティション分割に関して、追加的な制約が適用されてもよい。たとえば、変換パーティション分割の各レベルについて、すべてのサブ変換ブロックは、等しいサイズを有するように制約されてもよい。たとえば、32×16の符号化ブロックについては、レベル1の変換分割が16×16のサブ変換ブロックを2つ作成し、レベル2の変換分割が8×8のサブ変換ブロックを8つ作成する。換言すれば、第2レベルの分割は、変換単位を等しいサイズに維持するために、すべての第1レベルのサブブロックに適用されなければならない。表1に従ったイントラ符号化された正方形ブロックについての変換ブロック分割の例は、矢印によって示される符号化順序とともに、
図15に示されている。具体的には、1502は、正方形符号化ブロックを示す。表1に従った4つの等しいサイズの変換ブロックへの第1レベルの分割が1504に示されており、符号化順序は矢印で示されている。表1に従った、すべての第1レベルの等しいサイズのブロックの、16個の等しいサイズの変換ブロックへの第2レベルの分割が1506に示されており、符号化順序は矢印で示されている。
【0149】
いくつかの例示的実装では、インター符号化ブロックのルーマ成分について、イントラ符号化についての上記の制約は適用されなくてもよい。たとえば、変換分割の第1レベルの後、サブ変換ブロックのいずれか1つが、もう1レベル、独立してさらに分割されてもよい。よって、結果として得られる変換ブロックは、同じサイズであってもなくてもよい。変換ブロックへのインター符号化ブロックの例示的な分割が、符号化順序とともに、
図16に示されている。
図16の例では、インター符号化ブロック1602は、表1に従って2レベルで変換ブロックに分割される。第1レベルでは、インター符号化ブロックは等しいサイズの4つの変換ブロックに分割される。次いで、4つの変換ブロックのうちの1つだけ(すべてではない)がさらに4つのサブ変換ブロックに分割され、1604によって示されるように、2つの異なるサイズをもつ合計7つの変換ブロックを生じる。これら7つの変換ブロックの例示的な符号化順序は、
図16の1604における矢印によって示される。
【0150】
いくつかの例示的な実装では、クロマ成分(単数または複数)について、変換ブロックについてのいくつかの追加的な制約が適用されてもよい。たとえば、クロマ成分(単数または複数)について、変換ブロック・サイズは、符号化ブロック・サイズと同じ大きさであってもよいが、事前に定義されたサイズ、たとえば8×8より小さくはない。
【0151】
いくつかの他の例示的実装では、幅(W)または高さ(H)のいずれかが64より大きい符号化ブロックについては、ルーマおよびクロマの両方の符号化ブロックは、暗黙的に、それぞれmin(W,64)×min(H,64)およびmin(W,32)×min(H,32)の変換単位の複数個に分割されてもよい。ここで、本開示において、「min(a,b)」は、aとbの間の、小さいほうの値を返すことができる。
【0152】
図17はさらに、符号化ブロックまたは予測ブロックを変換ブロックにパーティション分割するための別の代替的な例示的方式を示す。
図17に示されるように、再帰的変換パーティション分割を使用する代わりに、パーティション分割タイプ〔分割型〕の事前に定義された集合が、符号化ブロックの変換タイプ〔変換型〕に従って符号化ブロックに適用されてもよい。
図17に示される特定の例では、6つの例示的なパーティション分割タイプのうちの1つが、符号化ブロックをさまざまな数の変換ブロックに分割するために適用されうる。変換ブロック・パーティション分割を生成するそのような方式は、符号化ブロックまたは予測ブロックのいずれにも適用されうる。
【0153】
より詳細には、
図17のパーティション分割方式は、任意の与えられた変換タイプ(変換タイプは、たとえば、ADSTおよびその他のような一次変換(primary transform)のタイプを指す)について、最大6つの例示的なパーティション・タイプを提供する。この方式では、すべての符号化ブロックまたは予測ブロックは、たとえば、レート歪みコストに基づいて変換パーティション・タイプを割り当てられてもよい。一例では、符号化ブロックまたは予測ブロックに割り当てられる変換パーティション・タイプは、符号化ブロックまたは予測ブロックの変換タイプに基づいて決定されてもよい。特定の変換パーティション・タイプは、
図17に示される6つの変換パーティション・タイプによって示されるように、変換ブロック分割サイズおよびパターンに対応しうる。さまざまな変換タイプとさまざまな変換パーティション・タイプとの間の対応関係は、事前に定義されていてもよい。以下に例が示される。英大文字のラベルは、レート歪みコストに基づいて符号化ブロックまたは予測ブロックに割り当てられうる変換パーティション・タイプを示す。
【0154】
・PARTITION_NONE:ブロック・サイズに等しい変換サイズを割り当てる。
【0155】
・PARTITION_SPLIT:ブロック・サイズの幅の1/2、ブロック・サイズの高さの1/2の変換サイズを割り当てる。
【0156】
・PARTITION_HORZ:ブロック・サイズと同じ幅、ブロック・サイズの1/2の高さの変換サイズを割り当てる。
【0157】
・PARTITION_VERT:ブロック・サイズの幅の1/2、ブロック・サイズと同じ高さの変換サイズを割り当てる。
【0158】
・PARTITION_HORZ4:ブロック・サイズと同じ幅、ブロック・サイズの1/4の高さの変換サイズを割り当てる。
【0159】
・PARTITION_VERT4:ブロック・サイズの幅の1/4、ブロック・サイズと同じ高さの変換サイズを割り当てる。
【0160】
上述の例では、
図17に示されるような変換パーティション・タイプはすべて、パーティション分割された変換ブロックについて均一な変換サイズを含む。これは単なる例であって、限定ではない。いくつかの他の実装では、混合された変換ブロック・サイズが、特定のパーティションタイプ(またはパターン)で、パーティション分割された変換ブロックのために使用されてもよい。
【0161】
ビデオ・ブロック(PBまたはCB;複数の予測ブロックにさらにパーティション分割されない場合にはCBがPBとも呼ばれる)は、直接エンコードされるのではなく、さまざまな仕方で予測され、それにより、圧縮効率を改善するために、ビデオ・データ内のさまざまな相関および冗長性を利用する。対応して、そのような予測は、さまざまなモードで行うことができる。たとえば、ビデオ・ブロックは、イントラ予測またはインター予測を介して予測されうる。特に、インター予測モードでは、ビデオ・ブロックは、単一参照または複合参照のインター予測のいずれかを介して、一つまたは複数の他のフレームからの一つまたは複数の他の参照ブロックまたはインター予測子ブロックによって予測されうる。インター予測の実装のために、参照ブロックは、そのフレーム識別子(参照ブロックの時間的位置)と、エンコードまたはデコードされている現在ブロックと参照ブロックとの間の空間的オフセット(参照ブロックの空間的位置)を示す動きベクトルとによって指定されてもよい。参照フレーム識別情報および動きベクトルは、ビットストリーム内で信号伝達されてもよい。空間的なブロック・オフセットとしての動きベクトルは、直接信号伝達されてもよく、あるいはそれ自体、別の参照動きベクトルまたは予測子動きベクトルによって予測されてもよい。たとえば、現在動きベクトルは、(たとえば、候補近傍ブロックの)参照動きベクトルによって直接的に、または、現在の動きベクトルと参照動きベクトルとの間の動きベクトル差分(motion vector difference、MVD)と参照動きベクトルとの組み合わせによって、予測されうる。後者は、動きベクトル差分を用いるマージモード(merge mode with motion vector difference、MMVD)と呼ばれることがある。参照動きベクトルは、たとえば、現在ブロックの空間的に近傍のブロックまたは時間的に近傍だが空間的に共位置のブロックへのポインタとして、ビットストリームにおいて識別されうる。
【0162】
いくつかの他の例示的実装では、イントラブロックコピー(intra-block copy、IBC)予測を用いることができる。IBCでは、現在のフレーム内の現在ブロックは、現在のフレーム(時間的に異なるフレームではなく;「イントラ」という用語はこのことによる)内の別のブロックを、ブロックベクトル(BV)と組み合わせて使用して、予測されうる。ブロック・ベクトルは、予測されるブロックの位置に対するイントラ予測子または参照ブロックの位置のオフセットを示す。符号化ブロックの位置は、たとえば、左上コーナーの、現在のフレーム(またはスライス)の左上コーナーに対するピクセル座標によって表されてもよい。よって、IBCモードは、現在のフレーム内で同様のインター予測の概念を使用する。BVは、たとえば、他の参照BVによって直接的に、または、インター予測において参照MVとMV差分を用いてMVを予測するのと同様に、現在のBVと参照BVとの間のBV差分を組み合わせて、予測されうる。IBCは、たとえばかなりの数のテキスト情報のような反復パターンがあるスクリーン・コンテンツを有するビデオ・フレームをエンコードおよびデコードするために特に、改善された符号化効率を提供するのに有用である。テキスト情報では、同一のテキストセグメント(文字、記号、単語、句など)が同じフレームの異なる部分に現れ、互いを予測するために使用できる。
【0163】
いくつかの実装では、IBCは、通常のイントラ予測モードおよび通常のインター予測モードのほかに、別個の予測モードとして扱われてもよい。よって、3つの異なる予測モード、すなわち、イントラ予測、インター予測、およびIBCモードの間で、特定のブロックの予測モードの選択が行われ、信号伝達されうる。これらの実装では、これらのモードのそれぞれにおける符号化効率を最適化するよう、これらのモードのそれぞれにおいて柔軟性が構築されうる。いくつかの他の実装では、IBCは、同様の動きベクトル決定、参照および符号化機構を使用することで、インター予測モード内のサブモードまたはブランチとして扱われてもよい。そのような実装(統合されたインター予測モードおよびIBCモード)では、一般的なインター予測モードとIBCモードを調和させるために、IBCの柔軟性はいくぶん制約されてもよい。しかしながら、そのような実装はそれほど複雑ではないが、それでも、たとえばスクリーン内容によって特徴付けられるビデオ・フレームのための符号化効率を改善するためにIBCを利用することができる。いくつかの例示的な実装では、別々のインター予測モードおよびイントラ予測モードのための既存の事前に指定された機構を用いて、インター予測モードが、IBCをサポートするために拡張されてもよい。
【0164】
これらの予測モードの選択は、シーケンス・レベル、フレーム・レベル、ピクチャー・レベル、スライス・レベル、CTUレベル、CTレベル、CUレベル、CBレベル、またはPBレベルを含むが、これらに限定されないさまざまなレベルで行うことができる。たとえば、IBCの目的のために、IBCモードが採用されるかどうかの決定が、CTUレベルでなされ、信号伝達されてもよい。CTUがIBCモードを採用するものとして信号伝達される場合、CTU全体におけるすべての符号化ブロックがIBCによって予測されうる。いくつかの他の実装では、IBC予測は、スーパーブロック(SBまたはスーパーブロック)レベルで決定されてもよい。各SBは、さまざまな仕方(たとえば、四分木分割)で複数のCTUまたは区分に分割されうる。例は、以下にさらに提供される。
【0165】
図18は、デコーダの観点から複数のCTUを含む現在のフレームのセクションの例示的なスナップショットを示す。1802のような各正方形ブロックは、CTUを表す。CTUは、SBのような、上記で詳細に説明したようなさまざまな事前に定義されたサイズの1つであってもよい。各CTUは、一つまたは複数の符号化ブロック(または特定の色チャネルについて、予測ブロック)を含んでいてもよい。横縞で影を付けたCTUは、すでに再構成されたCTUを表す。CTU 1804は、現在再構成されているCTUを表す。現在のCTU 1804内では、横縞で影を付けた符号化ブロックは、現在のCTU内ですでに再構成されているブロックを表し、斜線で影を付けた符号化ブロック1806は、現在再構成されているものであり、一方、現在のCTU 1804内の影を付けていないブロックは、再構成を待っている。他の影を付けていないCTUは、これから処理されるものである。
【0166】
IBCにおける現在の符号化ブロックを予測するために使用される参照ブロックの(現在ブロックに対する)位置またはオフセットは、
図18において例示的な矢印によって示されるようなBVによって示されてもよい。たとえば、BVは、参照ブロック(
図18では「Ref」とラベル付けされている)と現在ブロックの左上隅〔コーナー〕の間のベクトルの形の位置差を示すことができる。
図18は、基本的なIBC単位としてCTUを使用して示されているが、基礎となる原理は、基本的なIBC単位としてSBが使用される実装に当てはまる。そのような実装では、以下でより詳細に説明するように、各スーパーブロックは複数のCTUに分割されてもよく、各CTUはさらに複数の符号化ブロックに分割されてもよい。
【0167】
以下でより詳細に開示されるように、IBCについての現在のCTU/SBに対する参照CTU/SBの位置に依存して、参照CTU/SBは、ローカルCTU/SBまたは非ローカルCTU/SBと呼ばれうる。ローカルCTU/SBは、現在のCTU/SBと一致するCTU/SB、または現在のCTU/SBに近い、再構成されたCTU/SB(たとえば、現在のCTU/SBの左隣のCTU/SB)を指しうる。非ローカルCTU/SBは、現在のCTU/SBからさらに離れたCTU/SBを指しうる。現在の符号化ブロックのIBC予測を行うとき、ローカルCTU/SBおよび非ローカルCTU/SBのいずれかまたは両方が、参照ブロックを求めて探索されうる。IBCが実装される具体的な態様は、参照CTU/SBがローカルであるか非ローカルであるかに依存しうる。これは、ローカルまたは非ローカルCTU/SB参照のための再構成されたサンプルのオンチップおよびオフチップ記憶管理(たとえば、オフチップ・ピクチャー・バッファ(DPB)および/またはオンチップ・メモリ)が異なる可能性があるためである。たとえば、再構成されたローカルCTU/SBサンプルは、IBCのために、エンコーダまたはデコーダのオンチップ・メモリに記憶するのに好適でありうる。たとえば、再構成された非ローカルCTU/SBサンプルは、オフチップDPBメモリまたは外部メモリに格納されてもよい。
【0168】
いくつかの実装では、現在の符号化ブロック1804のための参照ブロックとして使用されうる再構成されたブロックの位置は、制約されてもよい。そのような制約は、さまざまな要因の結果である可能性があり、IBCが、一般的なインター予測モードの統合された部分として実装されるか、インター予測モードの特別な拡張として実装されるか、または別個の独立したIBCモードとして実装されるかに依存する可能性がある。いくつかの例では、現在の再構成されたCTU/SBサンプルのみが、IBC参照ブロックを識別するために探索されてもよい。いくつかの他の例では、現在の再構成されたCTU/SBサンプルおよび別の近傍の再構成されたCTU/SBサンプル(たとえば、左隣のCTU/SB)が、
図18の太い点線枠1808によって示されるように、参照ブロックの探索および選択のために利用可能でありうる。そのような実装については、IBC参照ブロック探索および選択のために、ローカルな再構成されたCTU/SBサンプルのみが使用されてもよい。他のいくつかの例では、ある種のCTU/SBは、さまざまな他の理由により、IBC参照ブロック探索および選択に利用可能でないことがある。たとえば、
図18において×印でマークされたCTU/SB 1810は、以下でさらに説明される特殊な目的(たとえば、波面並列処理)のために使用されうるので、現在ブロック1804のための参照ブロックの探索および選択のために利用可能でなくてもよい。
【0169】
いくつかの実装では、
図18に示されるように、太い点線の枠1808によって形成される領域は、ローカル探索領域と称されてもよい。ローカル探索領域内のサンプルは、オンチップ・メモリに格納されてもよい。
【0170】
いくつかの実装では、イントラブロックコピー(IntraBC、またはIBC)が許容されるときは、ループ・フィルタが無効にされる。ループ・フィルタは、ブロッキング解除フィルタ、制約された方向性向上フィルタ(Constrained Directional Enhancement Filter、CDEF)、およびループ復元(Loop Restoration、LR)を含む。これを行うことによって、IntraBCを可能にする/サポートするために専用の第2のピクチャー・バッファが回避されうる。
【0171】
いくつかの実装では、IBC参照ブロックまたは参照サンプルを提供するために使用されることが許容されるすでに再構成されたCTU/SBに関する制約は、並列デコードの採用から生じうる。並列デコードでは、複数の符号化ブロックが同時にデコードされる。一例が
図19に示されている。ここで、各正方形はCTU/SBを表す。並列デコードが実装されうる。ここでは、いくつかの連続する行内の1列おきの(2列ごとの)複数のCTU/SBが、
図19において斜線で影を付けたCTU/SBによって示されるように、並列処理において再構成されうる。横縞で影を付けた他のCTU/SBはすでに再構成されており、影を付けていないCTU/SBはこれから構築されるものである。そのような並列処理では、左上座標が(x
0,y
0)である現在並列処理されているCTU/SBについて、(x,y)にある再構成されたサンプルは、垂直座標yがy
0未満であり、水平座標xがx
0+2(y
0-y)未満である場合にのみ、IBCにおいて現在のCTU/SBを予測するためにアクセスされることができ、よって、横縞で影を付けたすでに構築されているCTU/SBが、並列処理される諸現在ブロックのための参照として利用可能でありうる。(x
0,y
0)および(x,y)のような座標の単位は、ピクセル、ブロック(たとえば、SB)などを含んでいてもよいことに留意されたい。
【0172】
いくつかの実装では、オフチップDPBへの直近に再構成されたサンプルのライトバック〔書き戻し〕遅延が、現在ブロックのためのIBC参照サンプルを提供するために使用されうるCTU/SBにさらなる制限を課すことがありうる。オフチップDPBがIBC参照サンプルを保持するために使用される場合には特にそうである。一例が
図20に示されており、ここでは、
図19に示されたものに加えて、追加的な制約が適用されうる。具体的には、ハードウェア・ライトバック遅延を許容するために、直近に再構成された領域は、参照ブロックの探索および選択のためにIBC予測によってアクセスされない可能性がある。制約または禁止された直近の再構成された領域の数は、1~n個のCTU/SBでありうる。ここで、nは正の数であり、nは、ライトバック遅延の継続時間と正に相関しうる。よって、
図19の特定の並列処理制約に加えて、現在のCTU/SB(斜線で影を付けてある)について、1つの現在のCTU/SBの1つの左上位置の座標が(x
0,y
0)である場合、位置(x,y)における予測は、垂直座標yがy
0より小さく、水平座標がx
0+2(y
0-y)-Dより小さい場合に、IBCによってアクセス可能であり、ここで、Dは、IBC参照としての使用を制約/禁止される直近再構成領域の数(たとえば、現在のCTU/SBの左側)を示す。
図20は、D=2(ブロックの単位で、または各ブロックが128×128のSBである場合にはピクセルの単位では2×128ピクセル)について、IBC参照サンプルとして制限・除外されるそのような追加的なCTU/SBを示している。IBC参照として利用可能でないこれらの追加的なCTU/SBは、白黒反転した斜線の影によって示される。
【0173】
いくつかの実装では、
図20に示されるように、横縞で影を付けたブロックによって形成される領域が非ローカル探索領域と称されてもよく、この領域内のサンプルが外部メモリに記憶されてもよい。
【0174】
いくつかの実装では、IBCアーキテクチャーは、専用の符号化モードを形成してもよく、ここで、IBCモードは、イントラおよびインター予測モード以外の第3の予測モードである。ビットストリームは、ブロック・サイズが64×64以下である場合、符号化単位についてのIBCモードを示すIBC構文要素を運ぶ。よって、参照サンプル・メモリ(reference sample memory、RSM)の連続的メモリ更新機構を実現するために、IBCを利用できる最大のCUサイズは64×64である。しかしながら、参照サンプル・アドレッシング機構は、二次元オフセットを示し、インター予測のベクトル符号化プロセスを再利用することによって、HEVC SCC拡張と同じままである。
【0175】
いくつかの実装では、クロマ分離ツリー(chroma separate tree、CST)がアクティブである場合、別の特殊ケースが発生する。そのケースでは、符号化器がルーマBVからクロマBVを導出することができず、ルーマ符号化ブロックについてのみIBCを使用することになる。
【0176】
以下にもさらに詳細に説明されるいくつかの実装では、ローカルCTU/SBおよび非ローカルCTU/SB探索領域の両方がIBC参照ブロック探索および選択のために使用されてもよい。さらに、オンチップ・メモリが使用される場合、ライトバック遅延に関しての、すでに構築されたCTU/SBの、IBC参照としての利用可能性に関する制約のいくつかは、緩和または除去されうる。いくつかのさらなる実装では、ローカルCTU/SBおよび非ローカルCTU/SBが、共存している場合に、使用される仕方は、たとえば、オンチップ・メモリまたはオフチップ・メモリのいずれかを使用する参照ブロックのバッファリングの管理の違いのために、異なることがある。これらの実装は、以下の開示においてさらに詳細に説明される。
【0177】
いくつかの実装では、IBCは、現在のフレームをインター予測モードにおける参照フレームとして扱う、インター予測モードの拡張として実装されてもよく、それにより、現在のフレーム内のブロックが予測参照として使用されうる。そのようなIBC実装は、IBCプロセスが現在のフレームのみに関わるものではあるが、インター予測のための符号化経路に従うことができる。そのような実装では、インター予測モードの参照構造は、IBCに適合されてもよい。IBCでは、BVを使用する参照サンプルへのアドレッシング機構の表現が、インター予測における動きベクトル(MV)に類似することができる。よって、IBCは、参照フレームとしての現在のフレームに基づいて、インター予測モードと類似または同一の構文構造およびデコード・プロセスに頼る特別なインター予測モードとして実装されてもよい。
【0178】
そのような実装では、IBCはインター予測モードとして扱われてもよいので、イントラのみで予測されるスライスは、IBCの使用を許容するための予測されたスライスとならなければならない。言い換えれば、イントラのみの予測スライスは、インター予測されず(イントラ予測モードは、いかなるインター予測処理経路も呼び出さないため)、よって、IBCは、そのようなイントラのみのスライスでの予測については許容されない。IBCが適用可能である場合、符号化器は、現在ピクチャーへのポインタについての一つのエントリーによって、参照ピクチャー・リストを拡張する。よって、現在のピクチャーは、最大で、共有されるデコードピクチャーバッファ(DPB)の1ピクチャー・サイズのバッファをとることができる。IBCの使用のための信号伝達は、インター予測モードにおける参照フレームの選択において暗黙的であってもよい。たとえば、選択された参照ピクチャーが現在のピクチャーをポイントする場合、符号化ユニットは、必要かつ利用可能であれば、特別なIBC拡張をもつインター予測のような符号化経路をもつIBCを用いる。いくつかの特定の実装では、IBCプロセス内の参照サンプルは、通常のインター予測とは対照的に、予測のために使用される前にループ・フィルタリングされなくてもよい。さらに、対応する参照現在ピクチャーは、エンコードまたはデコードされる次の諸フレームの近くにあるので、長期的な参照フレームでありうる。いくつかの実装では、メモリ要求を最小化するために、符号化器は、現在のピクチャーを再構築した後、すぐにバッファを解放してもよい。符号化器は、再構成されたピクチャーのフィルタリングされたバージョンを、短期参照としてDPBに戻してもよい。すると、それは、IBCのために使用されるときにはフィルタリングされなくてもよいが、真のインター予測において、のちのフレームのための参照画像となる。
【0179】
上記の例示的実装では、たとえIBCがインター予測モードの単なる拡張であっても、IBCは、通常のインター予測から逸脱しうるいくつかの特別な手順で処理されることがある。たとえば、IBC参照サンプルは、やはり、フィルタリングされなくてもよい。換言すれば、ブロッキング解除フィルタリング(DBF)、サンプル適応オフセット(SAO)フィルタリング、成分横断サンプルオフセット(CCSO)フィルタリングなどを含む、ループ内フィルタリング・プロセス前の再構成されたサンプルが、IBC予測のために使用されてもよく、一方、通常のインター予測モードは、予測のためにフィルタリングされたサンプルを使用する。別の例では、IBCについてのルーマ・サンプル補間は実行されなくてもよく、クロマサンプル補間は、ルーマBVから導出されたときにクロマBVが非整数である場合に必要となるだけであってもよい。さらに別の例では、クロマBVが非整数であり、IBCについての参照ブロックがIBC参照のための利用可能な領域の境界付近にある場合、周囲の再構成されたサンプルは、クロマ補間を行うために、境界の外側にあることがある。そのようなケースを避けるために、境界に隣接する単一の線をポイントするBVは可能でない。
【0180】
そのような実装では、IBCによる現在ブロックの予測は、現在のBVを予測するための参照BVおよびたとえば追加的なBV差分を含む、インター予測プロセスの予測および符号化機構を再利用することができる。しかしながら、いくつかの特定の実装では、ルーマBVは、通常のインター予測のためのMVにおけるように、分数精度ではなく、整数分解能で実装されてもよい。
【0181】
いくつかの実装では、
図18において1810として示されている、波面並列処理(Wavefront Parallel Processing、WPP)を許容するための、現在のCTUの右上にある2つのCTU(
図18において×印によって示されている)を除いて、
図18において横縞の影で示されているすべてのCTUおよびSBが、IBC参照ブロックの探索および選択のために使用されうる。よって、並列処理のためのいくつかの例外を除いて、現在のピクチャーのすでに再構成された領域のほぼ全体である。
【0182】
いくつかの他の実装では、IBC参照ブロックがそこから検索され、選択されうる領域は、ローカルCTU/SBに制約されてもよい。一例が、
図18の太い点線の枠1808によって示される。そのような例では、現在のCTUの左側のCTU/SBが、現在のCTUの再構成プロセスの開始時に、IBCのための参照サンプル領域のはたらきをしうる。そのようなローカル参照領域を使用する場合、DPB内の追加的な外部メモリ空間を割り当てる代わりに、IBC参照のためにローカルCTU/SBを維持するためにオンチップ・メモリ空間が割り当てられてもよい。いくつかの実装では、固定したオンチップ・メモリがIBCのために使用されてもよく、それにより、ハードウェア・アーキテクチャーにおいてIBCを実装する複雑さを低減する。よって、単なるインター予測モードの拡張として実装されるのではなく、通常のインター予測とは独立した専用のIBCモードが、オンチップ・メモリの利用のために実装されてもよい。
【0183】
たとえば、ローカルIBC参照サンプル、たとえば左のCTUまたはSBを格納するための固定したオンチップ・メモリ・サイズは、各色成分について128×128であってもよい。いくつかの実装では、最大CTUサイズは128×128であってもよい。そのような場合、参照サンプルメモリ(RSM)は、単一のCTUのサイズの諸サンプルを保持することができる。いくつかの他の代替的な実装では、CTUサイズはより小さくてもよい。たとえば、CTUサイズは64×64であってもよい。このように、RSMは複数の(この事例では4つの)CTUを同時に保持することができる。さらに他の実装では、RSMは複数のSBを保持してもよく、各SBは一つまたは複数のCTUを含んでいてもよく、各CTUは複数の符号化ブロックを含んでいてもよい。
【0184】
ローカル・オンチップIBC参照のいくつかの実装では、オンチップRSMは、1つのCTUを保持し、左隣のCTUの再構成されたサンプルを現在のCTUの再構成されたサンプルで置き換えるための連続的更新機構を実装してもよい。
図21は、再構成プロセスの間の4つの中間的な時刻における、そのような連続的RSM更新機構の簡略化された例を示す。
図21の例では、RSMは、1つのCTUを保持する固定サイズを有する。CTUは暗黙的な分割を含みうる。たとえば、CTUは、暗黙的に4つの分離した領域に分割されてもよい(たとえば、四分木分割)。各領域は、複数の符号化ブロックを含んでいてもよい。CTUは、128×128のサイズであってもよいが、例示的な領域または区分のそれぞれは、例示的な四分木分割について、64×64のサイズであってもよい。中間的な時刻のそれぞれにおける、横縞で影を付けたRSMの領域/区分は、左隣のCTUの対応する再構成された参照サンプルを保持し、縦縞グレーで影を付けた領域/区分は、現在のCTUの対応する再構成された参照サンプルを保持する。斜線で影を付けたRSMの符号化ブロックは、符号化/復号/再構成される現在の領域内の現在の符号化ブロックを表す。
【0185】
現在のCTU再構成の開始を表す第1の中間時刻において、RSMは、2102によって示されるように、4つの例示的な領域のそれぞれについてのみ、左隣のCTUの再構成された参照サンプルを含んでいてもよい。残りの3回の中間時刻では、再構成プロセスは次第に左隣のCTUの再構成された参照サンプルを現在のCTUの再構成されたサンプルに置き換えている。符号化器がその領域/区分の最初の符号化ブロックを処理するときに、RSMにおける64×64の領域/区分のリセットが行われる。RSMの領域のリセット時には、その領域は空白とみなされ、IBCのための再構成された参照サンプルを保持していないとみなされる(言い換えると、RSMのその領域はIBC参照サンプルとして使用する準備ができていない)。その領域内の対応する現在の符号化ブロックが処理されるにつれて、RSM内の対応するブロックは、中間時刻2104、2106、および2108について
図21に示されるように、次の諸現在ブロックのためのIBCのための参照サンプルとして使用されるように、現在のCTUの対応するブロックの再構成されたサンプルで満たされる。ひとたびRSMのある領域/区分に対応するすべての符号化ブロックが処理されると、その領域全体が、IBC参照サンプルとしての、これらの現在の符号化ブロックの再構成されたサンプルで満たされる。このことは、さまざまな中間時刻において
図21において、縦縞で完全に影を付けた領域によって示される。よって、中間時刻2104および2106では、RSM内のいくつかの領域/区分は、隣接するCTUからのIBC参照サンプルを保持し、いくつかの他の領域/区分は完全に、現在のCTUからの参照サンプルを保持し、一方、いくつかの領域/区分は、現在のCTUからの参照サンプルを部分的に保持し、部分的にブランクである(上述のリセット・プロセスの結果として、IBC参照のために使用されない)。最後の領域(たとえば、右下の領域)が処理されている間、他の3つの領域はすべて、IBCのための参照サンプルとして、現在のCTUの再構成されたサンプルを保持し、一方、最後の領域/区分は、CTUの最後の符号化ブロックが再構成されるまでは、部分的には、現在のCTUにおける対応する符号化ブロックの再構成されたサンプルを保持し、部分的にはブランクである。CTUの最後の符号化ブロックが再構成された時点で、RSM全体が現在のCTUの再構成されたサンプルを保持し、RSMは、次のCTUのために使用する(次のCTUもIBCモードで符号化される場合)準備が整う。
【0186】
図22は、特に中間の時刻において、RSMの上記の連続的更新実装を空間的に示している。すなわち、左隣のCTUと、現在の符号化ブロック(斜線で影を付けたブロック)をもつ現在のCTUが両方とも示されている。RSM内にあり、現在の符号化ブロックについてのIBC参照サンプルとして有効な、これらの2つのCTUについての対応する再構成されたサンプルは、横縞および縦縞の影付きによって示される。この例における特定の再構成時刻においては、処理は、RSMにおいて、左隣のCTU内の非影付き領域によってカバーされたサンプルを、縦縞によって影を付けた現在のCTUの領域で置き換えている。隣のCTUからの残りの効果サンプルは、横縞の影付きとして示されている。
【0187】
上記の例示的実装では、固定したRSMサイズがCTUサイズと同じである場合、RSMは1つのCTUを含むように実装される。いくつかの他の実装では、CTUサイズがより小さい場合、RSMは、単一のCTUよりも多くを含んでいてもよい。たとえば、CTUのサイズは32×32であってもよく、固定したRSMサイズは128×128であってもよい。よって、RSMは16個のCTUのサンプルを保持することができる。上述の同じ基礎となるRSM更新の原理に従って、RSMは、再構成される前に、現在の128×128パッチの16個の近傍のCTUを保持することができる。現在の128×128パッチの第1の符号化ブロックの処理が開始されるとすぐに、初期に1つの近傍CTUの再構成されたサンプルで満たされたRSMの第1の32×32領域が、単一のCTUを保持するRSMについて上述したように更新されうる。残りの15個の32×32領域は、IBCのための参照サンプルとして、15個の近傍のCTUを含む。ひとたびデコードされている現在の128×128パッチの第1の32×32領域に対応するCTUが再構成されると、RSMの第1の32×32領域がこのCTUの再構成されたサンプルで更新される。次いで、現在の128×128パッチの第2の32×32領域に対応するCTUが処理され、最終的には再構成されたサンプルで更新されてもよい。このプロセスは、RSMの16個の32×32領域が、現在の128×128パッチの再構成されたサンプルを含むまで続く(15個のCTUすべて)。次いで、復号プロセスは、次の128×128パッチに移行する。
【0188】
いくつかの他の実装では、BV符号化は、インター予測のために指定されたプロセスを採用してもよいが、候補リスト構築のためには、より単純な規則を使用する。具体的には、インター予測のための候補リスト構築は、5つの空間的候補、1つの時間的候補、および6つの履歴ベースの候補から構成されてもよい。複数の候補の比較は、履歴ベースの候補について必要であり、最終的な候補リスト内の重複エントリーを回避する。さらに、リスト構築は、対ごとの平均化された候補を含んでいてもよい。それとは対照的に、IBCリスト構築プロセスは、2つの空間的近傍のBVと5つの履歴ベースのBV予測子(history-based BVs Predictor、HBVP)のみを考慮してもよく、ここで、最初のHBVPのみが、候補リストに追加されるときに、空間的候補と比較される。通常のインター予測は、マージモードのための一方と通常モードのための他方の、2つの異なる候補リストを使用するが、IBCにおける候補リストは両方の場合のためである。しかしながら、マージモードはリストの最大6つの候補を使用することができるが、通常モードは最初の2つの候補のみを使用する。ブロック・ベクトル差分(block vector difference、BVD)符号化は、動きベクトル差分(motion vector difference、MVD)プロセスを採用し、その結果、任意の大きさの最終的なBVを生じる。これはまた、再構成されたBVは、参照サンプル領域の外側の領域をポイントしてもよく、RSMの幅および高さを用いたモジュロ演算を使用して各方向についての絶対オフセットを除去することによる補正を必要とすることを意味する。
【0189】
いくつかの他の実装では、
図21および
図22の拡張として、RSMは、近傍CTUの集合を保持してもよい。一度に1つの現在のCTUが処理され、最も遠い近傍CTUを保持するRSM部分は、再構成された現在のCTUを用いて上述の仕方で更新される。次の現在のCTUについても、RSM内の最も遠い近傍CTUが更新され、置き換えられる。このように、固定サイズのRSMにおいて保持される複数のCTUは、IBSのために近傍のCTUの移動窓として更新される。
【0190】
オンチップRSMを使用するローカルIBCのさらなる具体的な例示的実装が
図23に示されている。この例では、IBCモードについての最大ブロック・サイズが制限されることがある。たとえば、最大IBCブロックは64×64であってもよい。オンチップRSMは、スーパーブロック(SB)に対応する固定サイズ、たとえば128×128で構成されてもよい。
図23のRSM実装は、
図21および
図22の実装と類似の基礎となる原理を使用する。
図23において、RSMは、複数の近傍のおよび/または現在のCTUをIBC参照サンプルとして保持することができる。
図23の例において、SBは、四分木分割であってもよい。対応して、RSMは、それぞれが64×64である4つの領域または単位への四分木分割であってもよい。これらの領域のそれぞれは、一つまたは複数の符号化ブロックを保持することができる。あるいはまた、これらの領域のそれぞれは、一つまたは複数のCTUを保持することができ、各CTUは、一つまたは複数のコードブロックを保持することができる。四分木領域の符号化順序は、慈善に定義されていてもよい。たとえば、符号化順序は、左上、右上、左下、右下であってもよい。
図23のSBの四分木分割は、単に一例である。いくつかの他の代替的な実装では、SBは、他の方式に従って分割されてもよい。本明細書に記載されるローカルIBCのためのRSM更新実装は、それらの代替的な分割方式に適用される。
【0191】
そのようなローカルIBC実装では、IBC予測のために使用されうるローカル参照ブロックは制限される可能性がある。たとえば、参照ブロックと現在ブロックが同じSB行にあることが要求されるかもしれない。具体的には、ローカル参照ブロックは、現在のSBまたは現在のSBの左側の1つのSBにのみ配置されうる。別の許容される符号化ブロックによってIBCにおいて予測されるような例示的な現在ブロックは、
図23において破線の矢印によって示されている。現在のSBまたは左のSBがIBC参照のために使用される場合、RSMにおける参照サンプル更新手順は、上記のリセット手順に従うことができる。たとえば、64×64単位参照サンプル・メモリのいずれかが、現在のSBからの再構成されたサンプルで更新を開始する場合、64×64単位全体における以前の保存された参照サンプル(左のSBからのもの)は、IBC予測サンプルを生成するために利用可能でないものとしてマークされ、それは、現在の諸ブロックの再構成されたサンプルで徐々に更新される。
【0192】
図23は、パネル2302において、現在のSBのローカルIBC復号の際のRSMの5つの例示的状態を示す。ここでもまた、例示的状態のそれぞれにおける横縞で影を付けたRSMの領域は、左隣のSBの対応する四分木領域の対応する参照サンプルを保持し、縦縞グレーで影を付けた領域/区分は、現在のSBの対応する参照サンプルを保持する。斜線で影を付けたRSMの符号化ブロックは、符号/復号されている現在の四分木領域内の現在の符号化ブロックを表す。それぞれの現在のSBの符号化の開始時に、RSMは、以前の符号化されたSB(
図23のRSM状態(0))のサンプルを格納している。現在ブロックが現在のSBにおける4つの64×64の四分木領域のうちの1つに位置する場合、RSM内の対応する領域がリセットされ、現在の64×64の符号化領域のサンプルを格納するために使用される。このようにして、RSMの各64×64四分木領域におけるサンプルは、現在のSBのサンプルによって徐々に更新される(状態(1)~状態(3))。現在のSBが完全に符号化されると、RSM全体が現在のSBのすべてのサンプルで満たされる(状態(4))。
【0193】
図23のパネル2302における64×64領域のそれぞれは、空間的な符号化シーケンス番号でラベル付けされる。シーケンス0~3は、左隣SBの4つの64×64四分木領域を表し、シーケンス4~7は、現在のSBパネルの4つの64×64四分木領域を表す。
図23において、パネル2304は、
図23のパネル2302のRSM状態(1)、状態(2)、および状態(3)について、128×28 RSMにおける参照サンプルの左隣のおよび現在のSBにおける対応する空間分布をさらに示す。×印のない影付きの領域は、RSMにおける再構成されたサンプルをもつ領域を表す。×印のある影付きの領域は、RSM内の左側SBの再構成されたサンプルがリセットされている(したがって、ローカルIBCのための参照サンプルとして利用可能でない)領域を示している。
【0194】
64×64領域の符号化順序および対応するRSM更新順序は、水平走査(
図23において上に示したような)または垂直走査のいずれかに従うことができる。水平走査は、左上から始まり、右上、左下、右下に進む。垂直走査は、左上から始まり、左下、右上、左下に進む。水平走査および垂直走査についての左隣のSBおよび現在のSBの参照サンプル更新プロセスが、それぞれ
図24のパネル2402および2404に、現在のSBの4つの64×64領域のそれぞれが再構成されている場合の比較のために示されている。
図24において、×印のない横縞で影を付けた64×64の領域は、IBCのために利用可能なサンプルをもつ領域を表す。×印のある横縞で影を付けた領域は、現在のSBの対応する再構成されたサンプルに更新された左隣SBの領域を表す。影を付けていない領域は、現在のSBの未処理領域を表す。斜線で影を付けたブロックは、処理中の現在の符号化ブロックを表す。
【0195】
図24に示されるように、現在のSBに対する現在の符号化ブロックの位置に依存して、IBCのための参照ブロックに関して以下の制約が適用されうる。
【0196】
現在ブロックが、現在のSBの左上の64×64領域に当たる場合、現在のSB内のすでに再構成されたサンプルに加えて、
図24の2412(水平走査の場合)および2422(垂直走査の場合)において示されるように、左SBの右下、左下および右上の64×64ブロック内の参照サンプルも参照することができる。
【0197】
現在ブロックが現在のSBの右上の64×64ブロックに当たる場合、現在のSB内のすでに再構成されたサンプルに加えて、現在のSBに対して(0,64)に位置するルーマ・サンプルがまだ再構成されていない場合、現在ブロックは、左SBの左下の64×64ブロックおよび右下の64×64ブロック内の参照サンプルも参照することができる(
図24の2414)。それ以外の場合、現在ブロックは、IBCのために左SBの右下の64×64ブロックの参照サンプルも参照することができる(
図24の2426)。
【0198】
現在ブロックが現在のSBの左下の64×64ブロックに当たる場合、現在のSB内のすでに再構成されたサンプルに加えて、現在のSBに対するルーマ位置(64,0)がまだ再構成されていない場合、現在ブロックは、左SBの右上の64×64ブロックおよび右下の64×64ブロック内の参照サンプルも参照することができる(
図24の2424)。それ以外の場合、現在ブロックは、IBCのために左SBの右下の64×64ブロック内の参照サンプルも参照することができる(
図24の2416)。
【0199】
現在ブロックが現在のSBの右下の64×64ブロックに当たる場合、IBCのために現在のSBにおけるすでに再構成されたサンプルのみを参照することができる(
図24の2418および2428)。
【0200】
上述したように、いくつかの例示的な実装では、ローカルおよび非ローカル・ベースのCTU/SBの一方または両方が、IBC参照ブロックの検索および選択のために使用されてもよい。さらに、オンチップRSMがローカル参照のために使用されるとき、ライトバック遅延に関して、IBC参照としての、すでに構築されたCTU/SBの利用可能性に関する制約のいくつかは、緩和または除去されうる。そのような実装は、並列復号が採用されるか否かにかかわらず適用されうる。
【0201】
従来のIntraBC予測を用いるいくつかの実装では、問題/論点の一つは次のようなものでありうる:現在の符号化ブロックは、現在のピクチャー内で同じサイズをもつ参照ブロックを見つける必要がある。参照ブロックの一部が現在ブロックのテキスチュアル・パターン(textual pattern)と一致しない場合、エンコーダは、現在ブロックをより小さなブロックに分割して、それぞれのより小さなブロックが良好な参照ブロックを見つけることができうるようにしなければならないことがある。または、エンコーダは、既存の参照ブロックを使用し続けて、それにより予測効率が損なわれることがありうる。
【0202】
本開示に記載されるさまざまな実施形態および/または実装は、別個に、または任意の順序で組み合わされて実行されうる。さらに、方法(または実施形態)、エンコーダ、およびデコーダのそれぞれは、処理回路(たとえば、一つまたは複数のプロセッサ、または一つまたは複数の集積回路)によって実装されてもよい。一つまたは複数のプロセッサは、非一時的なコンピュータ読み取り可能媒体に記憶されたプログラムを実行する。本開示において、ブロックという用語は、予測ブロック、符号化ブロック、または符号化単位(CU)として解釈されうる。
【0203】
本開示におけるさまざまな実施形態は、IntraBC符号化ブロックが2つ以上のサブパーティションにパーティション分割されることを含む。そのサブパーティションのいくつかは、関連するブロック・ベクトルによって示される従来の参照ブロックを使用して予測され;ブロックの少なくとも1つのサブパーティションは、パディング方法を使用して予測され、ここで、パディングのサンプル値は、コンテキストに基づいて導出されるか、または事前に定義された方法で信号伝達されうる。IntraBC符号化ブロックにおける、パディング方法を用いて予測されるそのようなサブパーティションは、パディング領域(またはパディング・サブパーティション)と称されてもよい。
【0204】
本開示におけるさまざまな実施形態において、IntraBC符号化ブロック内の2つのサブパーティションは、単に非限定的な例として使用されており、本開示におけるさまざまな実施形態の範囲は、2つのサブパーティションに限定されず、IntraBC符号化ブロックは、2つより多くのサブパーティションに分割される/2つより多くのサブパーティションを含むことができる。
【0205】
図25は、サンプル・パディングを用いたIBC予測のための上記の実装の基礎となる原理に従う例示的方法のフローチャート2500を示している。例示的なデコード方法のフローは、2501で始まり、以下の段階の一部または全部を含むことができる。S2510:符号化ビデオ・ビットストリーム内の現在のビデオ・ブロックを受信する。それぞれの参照ブロックが現在のビデオ・ブロックに部分的に一致する;S2520:符号化ビデオ・ビットストリームから、第1の構文要素を抽出する。第1の構文要素は、現在のビデオ・ブロックのためにIBCパディングが利用可能であることを示す;S2530:符号化ビデオ・ビットストリームから、第2の構文要素を抽出する。第2の構文要素は、現在のビデオ・ブロックがIBCパディングを用いて予測されることを示す;S2540:符号化ビデオ・ビットストリームから、少なくとも1つの構文要素を抽出する;S2550は:現在のビデオ・ブロックを、前記少なくとも1つの構文要素に基づいて少なくとも2つのサブパーティションに分割する。前記少なくとも2つのサブパーティションは、パディング・サブパーティションとIBCサブパーティションとを含む;S2560:事前に定義されたパディング規則に基づいて前記パディング・サブパーティションを予測する;および/またはS2570:事前に定義されたIBC規則に基づいてIBCサブパーティションを予測する。例示的な方法はS2599で停止する。
【0206】
本開示におけるさまざまな実装において、構文要素は、フラグと称されることがある。
【0207】
いくつかの実装では、前記少なくとも1つの構文要素は、第1の構文要素および第2の構文要素を含み;および/またはS2550は、第1の構文要素に基づいて、現在のビデオ・ブロックを、水平分割または垂直分割を用いて前記少なくとも2つのサブパーティションに分割すること、および/または、第2の構文要素に基づいて、前記パディング・サブパーティションが現在のビデオ・ブロックの第1のサブパーティションであるか第2のサブパーティションであるかを決定することを含んでいてもよい。
【0208】
いくつかの実装では、前記少なくとも1つの構文要素は、第3の構文要素を含む;および/または第3の構文要素は、現在のビデオ・ブロックに対する前記パディング・サブパーティションのサイズの割合を示す。
【0209】
いくつかの実装では、割合は、1/4、1/2、または3/4のうちの少なくとも1つを含む。
【0210】
いくつかの実装では、S2550は、前記少なくとも1つの構文要素に基づいて、現在のビデオ・ブロックを、他の水平または垂直方向 定義された方向に沿って前記少なくとも2つのサブパーティションに分割することを含んでいてもよい。
【0211】
いくつかの実装では、S2560は、すでに再構成された近傍サブパーティションに基づいて、パディング・サブパーティションを予測することを含んでいてもよい。
【0212】
1つの非限定的な例として、すでに再構成された近傍サブパーティションに基づいてパディング・サブパーティションを予測することは、パディング・サブパーティションの左の近傍サブパーティション内の最も右の列のサンプルを水平方向に延長すること;またはパディング・サブパーティションの上の近傍サブパーティション内の最も下の行のサンプルを垂直方向に延長することを含む。
【0213】
別の非限定的な例として、すでに再構成された近傍サブパーティションに基づいてパディング・サブパーティションを予測することは、パディング・サブパーティションを、パディング・サブパーティションの左の近傍サブパーティションにおける最も右の列の最も上のサンプルでパディングすること;または、パディング・サブパーティションを、パディング・サブパーティションの上の近傍サブパーティションにおける最も下の行の最も左のサンプルでパディングすることを含む。
【0214】
いくつかの実装では、S2560は、すでに再構成された近傍ビデオ・ブロックに基づいてパディング・サブパーティションを予測することを含んでいてもよい。
【0215】
1つの非限定的な例として、すでに再構成された近傍ビデオ・ブロックに基づいてパディング・サブパーティションを予測することは、パディング・サブパーティションの上の近傍ビデオ・ブロックにおける対応するサブパーティションにおける最も下の行のサンプルを垂直に延長すること;または、パディング・サブパーティションの左の近傍ビデオ・ブロックにおける対応するサブパーティションにおける最も右の列のサンプルを水平に延長することを含む。
【0216】
別の非限定的な例として、すでに再構成された近傍ビデオ・ブロックに基づいてパディング・サブパーティションを予測することは、上の近傍ビデオ・ブロックにおける対応するサブパーティションにおける最も下の行の最も左のサンプルでパディング・サブパーティションをパディングすること;または、左の近傍ビデオ・ブロックにおける対応するサブパーティションにおける最も右の列の最も上のサンプルでパディング・サブパーティションをパディングすることを含む。
【0217】
いくつかの実装では、方法2500は、符号化されたビデオ・ビットストリームから、インデックスを抽出することであって、前記インデックスは、サンプル・バッファ内のサンプル値を示す、ことをさらに含んでいてもよく、および/またはS2560は、該インデックスによって示されるサンプル値でパディング・サブパーティションをパディングすることを含んでいてもよい。
【0218】
いくつかの実装では、サンプル・バッファは、履歴ベースのバッファまたは空間ベースのバッファの少なくとも1つを含む。
【0219】
いくつかの実装では、方法2500は、事前に定義されたパディング規則についてのイントラ予測モードを決定することをさらに含んでいてもよく;および/またはS2560は、イントラ予測モードに従って、少なくとも1つのすでに再構成された近傍サンプルに基づいて、パディング・サブパーティションをパディングすることを含んでいてもよい。
【0220】
いくつかの実装では、イントラ予測モードは、符号化ビデオ・ビットストリームによって信号伝達されること、近傍の符号化された情報から導出されること、および/または少なくとも1つの事前に定義されたイントラ予測モードから選択されることの少なくとも1つに基づいて決定される。
【0221】
いくつかの実装では、S2560は、すでに再構成されている上の近傍ビデオ・ブロックに応答して、パディング・サブパーティションの上の近傍ビデオ・ブロックにおける対応するサブパーティションにおける最も下の行のサンプルを垂直方向に延長すること;すでに再構成されている左の近傍ビデオ・ブロックに応答して、パディング・サブパーティションの左の近傍ビデオ・ブロックにおける対応するサブパーティションにおける最も右の列のサンプルを水平方向に延長すること;および/またはすでに再構成されている上の近傍ビデオ・ブロックに応答および左の近傍ビデオ・ブロックして、符号化されたビデオ・ビットストリームから、第3の構文要素を抽出する段階であって、前記第3の構文要素は、パディング・サブパーティションを予測するために上の近傍ビデオ・ブロックが使用されるか左の近傍ビデオ・ブロックが使用されるかを示す、段階;前記第3の構文要素が、パディング・サブパーティションを予測するために上の近傍ビデオ・ブロックが使用されることを示すことに応答して、パディング・サブパーティションの上の近傍ビデオ・ブロックにおける対応するサブパーティションにおける最も下の行のサンプルを垂直方向に延長する、段階;および/または前記第3の構文要素が、パディング・サブパーティションを予測するために左の近傍ビデオ・ブロックが使用されることを示すことに応答して、パディング・サブパーティションの左の近傍ビデオ・ブロックにおける対応するサブパーティションにおける最も右の列のサンプルを水平方向に延長する段階を実行することを含んでいてもよい。
【0222】
さまざまな実施形態では、IntraBC符号化ブロックは、2つ以上のサブパーティションにパーティション分割されてもよい。
【0223】
いくつかの実装については、符号化ブロックの分割は水平に行われる。これらのサブパーティションの少なくとも1つは、サンプル値をパディングすることによって予測される。分割は、対称的または非対称的でありうる。
【0224】
いくつかの実装では、符号化ブロックの分割は垂直に行われる。これらのサブパーティションの少なくとも1つは、サンプル値をパディングすることによって予測される。分割は、対称的または非対称的でありうる。
【0225】
いくつかの実装については、符号化ブロックの分割は、水平または垂直以外の定義された方向に沿って行われる。たとえば、定義された方向は、対角方向(45度の対角方向または135度の対角方向)であってもよい。これらのサブパーティションの少なくとも1つは、サンプル値をパディングすることによって予測される。分割は、対称的または非対称的でありうる。
【0226】
さまざまな実施形態では、IntraBC符号化ブロックの少なくとも1つのサブパーティションは、以下のパディング方法の少なくとも1つによってパディングされてもよい。
【0227】
一つの方法では、パディング領域はすでに再構成された近傍サブパーティションを用いて予測される。たとえば、
図26Aを参照すると、現在ブロック(2610)の第1のパーティション(または左のサブパーティション)(2612)内の最も右の列(2613)のサンプルを使用して水平方向に延長することによって、現在ブロック(2610)の第2のパーティション(または右のサブパーティション)(2616)がパディングされる。第2のパーティション(2616)の各行は、最も右の列(2613)の対応するサンプルと同じ値によって予測されうる。第1のパーティション(2612)は、参照ブロック(2670)に従って、IBCで予測されてもよい。
【0228】
本開示におけるさまざまな実施形態/実装において、第1(または第2)のパーティション/サブパーティションは、単に「ある」パーティション/サブパーティションを指すのではなくてもよく;第1(または第2)のパーティション/サブパーティションは、具体的に、それら2つのパーティション/サブパーティションが左右の配置にある場合には、左(または右)のパーティション/サブパーティションを指してもよく、それら2つのパーティション/サブパーティションが上下の配置にある場合には、上(または下)のパーティション/サブパーティションを指してもよい。
【0229】
別の方法では、パディング領域は、現在符号化ブロック外のすでに再構成された近傍サンプルを用いて予測される。たとえば、
図26Bを参照すると、現在ブロック(2610)の第2のパーティション(または右のサブパーティション)(2616)は、上の近傍の再構成された領域内の最も下の行(2620)のサンプルを使用して垂直に延長することによってパディングされる。最も下の行(2620)は、第2のパーティション(2616)に対応してもよく、第2のパーティション(2616)の幅(または水平方向に沿って)と同じ数のサンプル値を有してもよい。第2パーティション(2616)の各列は、最も下の行(2620)の対応するサンプルと同じ値によって予測されうる。第1のパーティション(2612)は、参照ブロック(2670)に従って、IBCで予測されうる。
【0230】
第3の方法では、近傍サブパーティションのすでに再構成されたサンプルを用いて、パディング領域が予測される。可能な候補集合からのサンプル値の選択は、同じ規則を使用してエンコーダとデコーダの両方によって信号伝達または導出される。たとえば、
図26Aを参照すると、現在ブロック(2610)の第1のパーティション(または左のサブパーティション)(2612)内の最も右の列(2613)の最も上のサンプル値(2614)を使用することによって、現在ブロック(2610)の第2のパーティション(または右のサブパーティション)(2616)がパディングされる。第2のパーティション(2616)は、サンプル(2614)と同じ値によって予測されうる。第1のパーティション(2612)は、参照ブロック(2670)に従って、IBCで予測されうる。
【0231】
第4の方法では、パディング領域は、現在符号化ブロックの外側の、すでに再構成された近傍サンプル値を用いて予測される。可能な候補集合からのサンプル値の選択は、同じ規則を使用してエンコーダとデコーダの両方によって信号伝達または導出される。たとえば、
図26Bを参照すると、現在ブロック(2610)の第2のパーティション(または右のサブパーティション)(2616)は、上の近傍の再構成された領域における最も下の行(2620)の最も左のサンプル(2621)を使用することによってパディングされる。最も下の行(2620)は、第2のパーティション(2616)に対応してもよく、第2のパーティション(2616)の幅(または水平方向に沿って)と同じ数のサンプル値を有してもよい。第2のパーティション(2616)は、サンプル(2621)と同じ値によって予測されうる。第1のパーティション(2612)は、参照ブロック(2670)に従って、IBCで予測されうる。
【0232】
いくつかの実装では、現在ブロックの第1のパーティションがパディングされてもよく、第2のパーティションは参照ブロックに従ってIBCで予測されてもよく、同様に、本開示に記載されているさまざまな実装/実施形態と同様に、たとえば、垂直ブロック・パーティションでは、垂直パディングが第1のパーティションについて使用されてもよい。
【0233】
いくつかの実装では、現在ブロックは、水平ブロック・パーティションでパーティション分割されてもよく、第1のパーティションは、上のパーティションを指してもよく、第2のパーティションは、下のパーティションを指してもよい。水平ブロック・パーティションで、現在ブロックの第2のパーティションがパディングされてもよく、第1のパーティションが参照ブロックに従ってIBCで予測されてもよい。これは、本開示に記載されるさまざまな実装/実施形態と同様である。あるいはまた、現在ブロックの第1のパーティションがパディングされてもよく、第2のパーティションは、参照ブロックに従ってIBCで予測されてもよく、本開示に記載されるさまざまな実装/実施形態と同様である。たとえば、水平ブロック・パーティションでは、第1のパーティションが水平パディングについて使用されてもよい。
【0234】
第5の方法では、パディング領域は、履歴ベースのバッファに記憶される既存のサンプル値を使用して予測される。バッファ内のエントリーをポイントするインデックスが、バッファ内のどのサンプルが現在のパディング領域を予測するために使用されるかを示すために使用されうる。履歴ベースのバッファは固定サイズであり、先入れ先出し法を用いて維持されてもよい。履歴バッファにサンプルを入れる規則は変わりうる。たとえば、現在のCTUまたは最近符号化されたサンプルの他の窓サイズにおいて頻繁に発生するサンプル値は、履歴バッファに入れられる資格があってもよい。別の例では、近傍の再構成された領域から生じるサンプル値のみが考慮されてもよい。たとえば、左隣の右端の列、上隣の下端の行などである。
【0235】
第6の方法では、パディング領域は、すでに再構成された近傍サンプルを用いて予測される。予測は、入力参照サンプルとして近傍の再構成されたサンプルを用いたイントラ予測プロセスを使って実行される。イントラ予測モードは、明示的に信号伝達される、近傍の符号化された情報を用いて暗黙的に導出される、または一つまたは複数の事前に定義されたイントラ予測モード(たとえば、DC、SMOOTH、SMOOTH-H、SMOOTH-V)から選択されることができる。
【0236】
本開示におけるさまざまな実施形態は、パーティションの信号伝達またはサンプル値のパディングを含んでいてもよい。
【0237】
ある方法では、高レベルの構文(スライスヘッダ、ピクチャーヘッダ、シーケンスヘッダ、VPS、PPS、SPSなど)での一つの構文要素が、提案される方法がIntraBC予測において使用されうることを示すために使用される。この構文要素はフラグ、たとえばibc_padding_enable_flagと呼ばれてもよい。
【0238】
ibc_padding_enable_flagが真の場合、ブロック・レベルで、現在ブロックが(それがIntraBC符号化されるとして)従来のIntraBC予測を使用して予測されるか、またはパディングされた領域を用いて予測されるかを示すために、別の構文要素が使用されてもよい。この構文要素は、別のフラグ、たとえばibc_padding_use_flagと称されてもよい。
【0239】
ibc_padding_use_flagが真の場合、ブロックのどの部分がパディング動作によって予測されるかを示すために、追加の構文要素が使用されてもよい。
図27を参照すると、水平または垂直分割のいずれかを有する4つの選択肢の例が示されており、パディングされた領域は、ブロック・サイズ全体の1/4に等しい。符号化ブロック内部のパディングされた領域の他の分割も可能である。
【0240】
いくつかの実装では、ある構文要素は、水平分割が使用されるか垂直分割が使用されるかを示すために使用され;別の構文要素は、パディングされる領域がブロックの第1のサブパーティションか第2のサブパーティションか(左から右へ、上から下へ)を示すために使用される。
【0241】
いくつかの実装では、パディング・サブパーティションのサイズを示すためにインデックスが使用される。一例では、ブロック全体の3/4、1/2、1/4、…からそのサイズを選択することができる。
【0242】
さまざまな実施形態において、パディング領域が決定されるとき、パディング領域を予測するために使用される値(単数または複数)は、以下の非限定的な例のうちの1つにおいて決定されうる。
【0243】
1つの非限定的な例として、近傍サンプルの延長を使用して現在の符号化ブロックの外部からパディングするために、上の近傍および左の近傍の両方のサンプルが利用可能である場合、上(または左)の近傍が常に使用のために選択されてもよい。あるいはまた、どちらの側が使われているかを示すために、構文要素が使われてもよい。1つの側のみが利用可能である場合は、常にこの側が使用される。現在ブロックがピクチャー、タイルまたはスライスにおける最初のブロックである場合のように、近傍サンプルが利用可能でない場合、パディングは全く使用されなくてもよい。
【0244】
別の非限定的な例として、現在ブロックの近傍ブロックまたは近傍サブパーティションの再構成された列または行内のいくつかのサンプルが、パディング領域を予測するための候補であるとラベル付けされてもよい。たとえば、最も右の近傍列からのいちばん上のサンプル、中央サンプル、およびいちばん下のサンプルが、選択のための候補集合でありうる。ブロック・レベルの選択のために、それらのうちの1つをポイントするインデックスが信号伝達されてもよい。
【0245】
本開示の実施形態および実装において、任意の段階および/または動作は、所望により、任意の量または順序で組み合わせられてもよく、または配置されてもよい。段階および/または動作のうちの2つ以上が並列に実行されてもよい。本開示の実施形態および実装は、別個に、または任意の順序で組み合わされて使用されてもよい。さらに、方法(または実施形態)、エンコーダ、およびデコーダのそれぞれは、処理回路(たとえば、一つまたは複数のプロセッサ、または一つまたは複数の集積回路)によって実装されてもよい。一例では、前記一つまたは複数のプロセッサは、非一時的なコンピュータ読み取り可能媒体に格納されたプログラムを実行する。本開示の実施形態は、ルーマ・ブロックまたはクロマ・ブロックに適用されうる。ブロックという用語は、予測ブロック、符号化ブロック、または符号化単位、すなわちCUとして解釈されうる。ここでのブロックという用語は、変換ブロックを指すためにも使用されうる。以下の項目において、ブロック・サイズと言うときは、ブロックの幅または高さ、または幅と高さの最大値、または幅と高さの最小値、または面積サイズ(幅*高さ)、アスペクト比(幅:高さまたは高さ:幅)のいずれかを指しうる。
【0246】
上述の技法は、コンピュータ読み取り可能な命令を用いてコンピュータ・ソフトウェアとして実装することができ、一つまたは複数のコンピュータ読み取り可能な媒体に物理的に記憶されることができる。たとえば、
図28は、開示された主題のある種の実施形態を実装するのに好適なコンピュータ・システム(2800)を示す。
【0247】
コンピュータ・ソフトウェアは、任意の好適な機械コードまたはコンピュータ言語を用いてコーディングされることができ、アセンブリ、コンパイル、リンク、または同様の機構の対象とされて、一つまたは複数のコンピュータ中央処理ユニット(CPU)、グラフィックス処理ユニット(GPU)などによって、直接的に、またはインタープリット、マイクロコード実行などを通じて実行可能な命令を含むコードを作成することができる。
【0248】
命令は、たとえば、パーソナルコンピュータ、タブレット・コンピュータ、サーバー、スマートフォン、ゲーム装置、モノのインターネット装置等を含むさまざまなタイプのコンピュータまたはそのコンポーネント上で実行されることができる。
【0249】
コンピュータ・システム(2800)について
図28に示されるコンポーネントは、例としての性質であり、本開示の実施形態を実装するコンピュータ・ソフトウェアの使用または機能の範囲に関する制限を示唆することを意図したものではない。コンポーネントの構成も、コンピュータ・システム(2800)の例示的実施形態において示されているコンポーネントの任意の1つまたは組み合わせに関する何らかの依存性または要件を有するものとして解釈されるべきではない。
【0250】
コンピュータ・システム(2800)は、ある種のヒューマン・インターフェース入力装置を含むことができる。そのようなヒューマン・インターフェース入力装置は、たとえば、触覚入力(たとえば、キーストローク、スワイプ、データグローブの動き)、音声入力(たとえば、声、拍手)、視覚入力(たとえば、ジェスチャー)、嗅覚入力(図示せず)を通じた一または複数の人間ユーザーによる入力に応答することができる。また、ヒューマン・インターフェース装置は、音声(たとえば、発話、音楽、周囲の音)、画像(たとえば、スキャンされた画像、スチール画像カメラから得られる写真画像)、ビデオ(たとえば、2次元ビデオ、立体視ビデオを含む3次元ビデオ)のような、人間による意識的入力に必ずしも直接関係しないある種のメディアを捕捉するために使用できる。
【0251】
入力ヒューマン・インターフェース装置は、キーボード(2801)、マウス(2802)、トラックパッド(2803)、タッチスクリーン(2810)、データグローブ(図示せず)、ジョイスティック(2805)、マイクロフォン(2806)、スキャナ(2807)、カメラ(2808)の一つまたは複数(それぞれの一つしか図示していない)を含んでいてもよい。
【0252】
コンピュータ・システム(2800)はまた、ある種のヒューマン・インターフェース出力装置を含んでいてもよい。そのようなヒューマン・インターフェース出力装置は、たとえば、触覚出力、音、光、および臭い/味を通じて、一または複数の人間ユーザーの感覚を刺激するものであってもよい。そのようなヒューマン・インターフェース出力装置は、触覚出力装置(たとえば、タッチスクリーン(2810)、データグローブ(図示せず)、またはジョイスティック(2805)による触覚フィードバック;ただし、入力装置のはたらきをしない触覚フィードバック装置もありうる)、音声出力装置(たとえば、スピーカー(2809)、ヘッドフォン(図示せず))、視覚出力装置(たとえば、CRT画面、LCD画面、プラズマスクリーン、OLED画面を含む画面(2810);それぞれはタッチスクリーン入力機能があってもなくてもよく、それぞれは触覚フィードバック機能があってもなくてもよく、そのうちのいくつかは、2次元の視覚出力または立体視出力のような手段を通じた3次元より高い出力を出力することができる;仮想現実感眼鏡(図示せず)、ホログラフィーディスプレイおよび煙タンク(図示せず))、およびプリンタ(図示せず)を含んでいてもよい。
【0253】
コンピュータ・システム(2800)はまた、人間がアクセス可能な記憶装置および関連する媒体、たとえば、CD/DVDまたは類似の媒体(2821)とともにCD/DVD ROM/RW(2820)を含む光学式媒体、サムドライブ(2822)、取り外し可能なハードドライブまたはソリッドステートドライブ(2823)、テープおよびフロッピーディスクといったレガシー磁気媒体(図示せず)、セキュリティ・ドングルのような特化したROM/ASIC/PLDベースの装置(図示せず)などを含むことができる。
【0254】
当業者はまた、現在開示されている主題に関連して使用される用語「コンピュータ読み取り可能な媒体」は、伝送媒体、搬送波、または他の一時的な信号を包含しないことを理解すべきである。
【0255】
コンピュータ・システム(2800)はまた、一つまたは複数の通信ネットワーク(2855)へのインターフェース(2854)を含むことができる。ネットワークは、たとえば、無線、有線、光学式でありうる。ネットワークは、さらに、ローカル、広域、都市圏、車載および工業用、リアルタイム、遅延耐性などでありうる。ネットワークの例は、イーサネット〔登録商標〕、無線LAN、GSM、3G、4G、5G、LTEなどを含むセルラー・ネットワーク、ケーブルテレビ、衛星テレビ、地上放送テレビを含むTV有線または無線の広域デジタルネットワーク、CANBusを含む車載および工業用などを含む。ある種のネットワークは、普通、ある種の汎用データ・ポートまたは周辺バス(2849)(たとえば、コンピュータ・システム(2800)のUSBポートなど)に取り付けられる外部ネットワーク・インターフェース・アダプターを必要とする。他は、普通、後述するようなシステム・バスへの取り付けによって、コンピュータ・システム(2800)のコアに統合される(たとえば、PCコンピュータ・システムへのイーサネット・インターフェースまたはスマートフォン・コンピュータ・システムへのセルラー・ネットワーク・インターフェース)。これらのネットワークのいずれかを使用して、コンピュータ・システム(2800)は、他のエンティティと通信することができる。そのような通信は、一方向性、受信のみ(たとえば、放送テレビ)、一方向性送信専用(たとえば、ある種のCANbus装置へのCANbus)、または、たとえば、ローカルまたは広域デジタルネットワークを使用する他のコンピュータ・システムへの双方向性であってもよい。上述のようなそれらのネットワークおよびネットワークインターフェースのそれぞれで、ある種のプロトコルおよびプロトコルスタックが使用できる。
【0256】
前述のヒューマン・インターフェース装置、人間がアクセス可能な記憶装置、およびネットワークインターフェースは、コンピュータ・システム(2800)のコア(2840)に取り付けることができる。
【0257】
コア(2840)は、一つまたは複数の中央処理装置(CPU)(2841)、グラフィックス処理装置(GPU)(2842)、フィールドプログラマブルゲートアレイ(FPGA)(2843)の形の特化したプログラマブル処理装置、ある種のタスクのためのハードウェアアクセラレータ(2844)、グラフィック・アダプター(2850)などを含むことができる。これらの装置は、読み出し専用メモリ(ROM)(2845)、ランダムアクセスメモリ(2846)、内部のユーザー・アクセス可能でないハードドライブ、ソリッドステートドライブ(SSD)などの内部大容量記憶装置(2847)とともに、システム・バス(2848)を通じて接続されうる。いくつかのコンピュータ・システムでは、追加のCPU、GPUなどによる拡張を可能にするために、システム・バス(2848)は、一つまたは複数の物理プラグの形でアクセス可能であってもよい。周辺装置は、コアのシステム・バス(2848)に直接取り付けられることも、周辺バス(2849)を通じて取り付けられることもできる。一例では、グラフィック・アダプター(2850)にスクリーン(2810)が接続されることができる。周辺バスのためのアーキテクチャーは、PCI、USBなどを含む。
【0258】
CPU(2841)、GPU(2842)、FPGA(2843)、およびアクセラレータ(2844)は、組み合わせて上述のコンピュータコードを構成することができるある種の命令を、実行することができる。そのコンピュータコードは、ROM(2845)またはRAM(2846)に記憶できる。一時的データも、RAM(2846)に記憶されることができ、一方、持続的データは、たとえば、内部大容量記憶装置(2847)に記憶されることができる。一つまたは複数のCPU(2841)、GPU(2842)、大容量記憶装置(2847)、ROM(2845)、RAM(2846)などと密接に関連付けることができるキャッシュメモリを使用することを通じて、メモリデバイスのいずれかへの高速な記憶および取り出しを可能にすることができる。
【0259】
コンピュータ読み取り可能な媒体は、さまざまなコンピュータ実装された動作を実行するためのコンピュータコードをその上に有することができる。媒体およびコンピュータコードは、本開示の目的のために特別に設計および構築されたものであってもよく、または、コンピュータ・ソフトウェア分野の技術を有する者に周知であり利用可能な種類のものであってもよい。
【0260】
非限定的な例として、アーキテクチャー(2800)、具体的にはコア(2840)を有するコンピュータ・システムは、プロセッサ(CPU、GPU、FPGA、アクセラレータ等を含む)が一つまたは複数の有形のコンピュータ可読媒体に具現化されたソフトウェアを実行することの結果として、機能性を提供することができる。そのようなコンピュータ読み取り可能媒体は、上記で紹介したようなユーザー・アクセス可能な大容量記憶ならびにコア内部の大容量記憶装置(2847)またはROM(2845)のような非一時的な性質のコア(2840)のある種の記憶に関連する媒体であることができる。本開示のさまざまな実施形態を実装するソフトウェアは、そのような装置に記憶され、コア(2840)によって実行されることができる。コンピュータ読み取り可能媒体は、特定のニーズに応じて、一つまたは複数のメモリデバイスまたはチップを含むことができる。ソフトウェアは、RAM(2846)に記憶されたデータ構造を定義し、ソフトウェアによって定義されたプロセスに従ってそのようなデータ構造を修正することを含む、本明細書に記載された特定のプロセスまたは特定の特定部分を、コア(2840)および具体的にはその中のプロセッサ(CPU、GPU、FPGAなどを含む)に実行させることができる。追加的または代替的に、コンピュータ・システムは、回路(たとえば、アクセラレータ(2844))内に配線された、または他の仕方で具現された論理の結果として機能性を提供することができ、これは、本明細書に記載される特定のプロセスまたは特定のプロセスの特定部分を実行するためのソフトウェアの代わりに、またはそれと一緒に動作することができる。ソフトウェアへの言及は、論理を含み、適宜その逆も可能である。コンピュータ読み取り可能媒体への言及は、適宜、実行のためのソフトウェアを記憶する回路(たとえば集積回路(IC))、実行のための論理を具現する回路、またはその両方を包含することができる。本開示は、ハードウェアおよびソフトウェアの任意の好適な組み合わせを包含する。
【0261】
本開示は、いくつかの例示的実施形態を記載してきたが、変更、置換、およびさまざまな代替等価物があり、それらは本開示の範囲内にはいる。よって、当業者は、本明細書に明示的に示されていないかまたは記載されていないが、本開示の原理を具現し、よって、本開示の精神および範囲内にある多くのシステムおよび方法を考案することができることが理解されるであろう。
【0262】
付録A:頭字語
IBC: Intra-Block Copy(イントラブロックコピー)
IntraBC: Intra-Block Copy(イントラブロックコピー)
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(ビデオ操作性情報)
GOP: Group of Pictures(ピクチャーグループ)
TU: Transform Unit(変換単位)
PU: Prediction Unit(予測単位)
CTU: Coding Tree Unit(符号化ツリー単位)
CTB: Coding Tree Block(符号化ツリーブロック)
PB: Prediction Block(予測ブロック)
HRD: Hypothetical Reference Decoder(仮設参照デコーダ)
SNR: Signal Noise Ratio(信号雑音比)
CPU: Central Processing Unit(中央処理装置)
GPU: Graphics Processing Unit(グラフィックス処理ユニット)
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-Partition(イントラサブパーティション)
SPS: Sequence Parameter Setting(シーケンスパラメータ設定)
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(AOメディアビデオ1)
AV2: AOMedia Video 2(AOメディアビデオ2)
RPS: Reference Picture Set(参照ピクチャーセット)
DPB: Decoded Picture Buffer(デコードピクチャーバッファ)
MMVD: Merge Mode with Motion Vector Difference(動きベクトル差分を用いるマージモード)
IntraBCまたはIBC: Intra Block Copy(イントラブロックコピー)
BV: Block Vector(ブロック・ベクトル)
BVD: Block Vector Difference(ブロック・ベクトル差分)
RSM: Reference Sample Memory(参照サンプル・メモリ)
【国際調査報告】