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

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

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

特表2023-553996成分間変換係数レベル復元におけるオフセットの導出
<>
  • 特表-成分間変換係数レベル復元におけるオフセットの導出 図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)【公表日】2023-12-26
(54)【発明の名称】成分間変換係数レベル復元におけるオフセットの導出
(51)【国際特許分類】
   H04N 19/61 20140101AFI20231219BHJP
   H04N 19/12 20140101ALI20231219BHJP
   H04N 19/157 20140101ALI20231219BHJP
   H04N 19/176 20140101ALI20231219BHJP
   H04N 19/186 20140101ALI20231219BHJP
   H04N 19/70 20140101ALI20231219BHJP
【FI】
H04N19/61
H04N19/12
H04N19/157
H04N19/176
H04N19/186
H04N19/70
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023535770
(86)(22)【出願日】2022-09-09
(85)【翻訳文提出日】2023-06-12
(86)【国際出願番号】 US2022043007
(87)【国際公開番号】W WO2023055548
(87)【国際公開日】2023-04-06
(31)【優先権主張番号】63/250,832
(32)【優先日】2021-09-30
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/939,199
(32)【優先日】2022-09-07
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【弁理士】
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】マドゥー・ペリンガーサリー・クリシュナン
(72)【発明者】
【氏名】シン・ジャオ
(72)【発明者】
【氏名】シャン・リュウ
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159MC11
5C159PP16
5C159RB09
5C159RC12
5C159TA41
5C159TB08
5C159TC04
5C159TC28
5C159TD15
5C159UA02
5C159UA05
(57)【要約】
本開示は、一般に、ビデオコーディングに関し、詳細には、成分間変換係数レベル復元においてオフセットを導出するための方法およびシステムに関する。ビデオストリームの現在のビデオブロックを復号するための例示的な方法が開示される。方法は、コード化ビデオビットストリームを受信するステップと、コード化ビデオビットストリームから、現在のビデオブロックについての第1の色成分の第1の変換係数を抽出するステップと、現在のビデオブロックについての第2の色成分の第2の変換係数を決定するステップと、以下の量子化ステップサイズ、または第1の変換係数のうちの少なくとも1つに基づいてオフセット値を導出するステップと、第2の色成分用の修正された第2の変換係数を生成するために、第2の変換係数にオフセット値を加算するステップと、第1の変換係数および第2の色成分の修正された第2の変換係数に基づいて現在のビデオブロックを復号するステップとを含む。
【特許請求の範囲】
【請求項1】
ビデオビットストリームの現在のビデオブロックを復号するための方法であって、
命令を記憶するメモリおよび前記メモリと通信するプロセッサを備えるデバイスにより、コード化ビデオビットストリームを受信するステップと、
前記デバイスにより、前記コード化ビデオビットストリームから、現在のビデオブロックについての第1の色成分の第1の変換係数を抽出するステップと、
前記デバイスにより、前記現在のビデオブロックについての第2の色成分の第2の変換係数を決定するステップと、
前記デバイスにより、以下の量子化ステップサイズ、または前記第1の変換係数のうちの少なくとも1つに基づいてオフセット値を導出するステップと、
前記デバイスにより、前記第2の色成分用の修正された第2の変換係数を生成するために、前記第2の変換係数に前記オフセット値を加算するステップと、
前記デバイスにより、前記第1の色成分の前記第1の変換係数および前記第2の色成分の前記修正された第2の変換係数に基づいて前記現在のビデオブロックを復号するステップと
を含む、方法。
【請求項2】
前記オフセット値を導出する前記ステップが、
前記量子化ステップサイズに基づいて前記オフセット値を導出するステップであって、前記オフセット値の大きさが前記量子化ステップサイズに単調に依存する、ステップ
を含む、請求項1に記載の方法。
【請求項3】
前記オフセット値の前記大きさが、単調関数による前記量子化ステップサイズに依存し、
前記単調関数が、前記第1の変換係数の符号または大きさに基づいて選択される、
請求項2に記載の方法。
【請求項4】
前記オフセット値を導出する前記ステップが、
前記量子化ステップサイズおよび前記第1の変換係数の符号または大きさの値に基づいて前記オフセット値を導出するステップ
を含む、請求項1に記載の方法。
【請求項5】
前記オフセット値を導出する前記ステップが、
直流(DC)係数に対応する前記オフセット値に応答して、前記DC係数に対応する前記量子化ステップサイズに基づいて前記オフセット値を導出するステップと、
交流(AC)係数に対応する前記オフセット値に応答して、前記AC係数に対応する前記量子化ステップサイズに基づいて前記オフセット値を導出するステップと
を含む、請求項1に記載の方法。
【請求項6】
前記オフセット値を導出する前記ステップが、
前記量子化ステップサイズに基づいて、ルックアップテーブル(LUT)内のインデックスをマッピングするステップと、
前記インデックスによって示された前記LUT内の要素を前記オフセット値として取得するステップと
を含む、請求項1に記載の方法。
【請求項7】
前記LUTが、以下の
固定テーブル、
前記コード化ビデオビットストリーム内でシグナリングされる動的テーブル、または
前記コード化ビデオビットストリームに従って導出される動的テーブル
のうちの1つを含む、
請求項6に記載の方法。
【請求項8】
前記LUTが、前記第1の変換係数の符号または大きさに基づいて選択される、
請求項6に記載の方法。
【請求項9】
前記LUTが、以下のビデオパラメータセット(VPS)、ピクチャパラメータセット(PPS)、シーケンスパラメータセット(SPS)、ピクチャヘッダ、フレームヘッダ、スライスヘッダ、タイルヘッダ、またはコーディングツリーユニット(CTU)ヘッダのうちの少なくとも1つを含む高レベル構文から取得される、
請求項6に記載の方法。
【請求項10】
前記オフセット値を導出する前記ステップが、
前記コード化ビデオビットストリームのビット深度および前記量子化ステップサイズに基づいて前記オフセット値を導出するステップ
を含む、請求項1に記載の方法。
【請求項11】
前記コード化ビデオビットストリームの前記ビット深度が、8ビット、10ビット、または12ビットのうちの1つを含み、
前記オフセット値が前記コード化ビデオビットストリームの前記ビット深度に単調に依存する、
請求項10に記載の方法。
【請求項12】
ビデオビットストリームの現在のビデオブロックを復号するための装置であって、前記装置が、
命令を記憶するメモリと、
前記メモリと通信するプロセッサであって、前記プロセッサが前記命令を実行すると、前記プロセッサが、請求項1から11のいずれか一項に記載の方法を前記装置に実行させるように構成される、プロセッサと
を備える、装置。
【請求項13】
命令を記憶する非一時的コンピュータ可読記憶媒体であって、前記命令がプロセッサによって実行されると、前記命令が、請求項1から11のいずれか一項を前記プロセッサに実行させるように構成される、非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、その全体が参照により本明細書に組み込まれる、2021年9月30日に出願された米国仮特許出願第63/250,832号に基づき、それに対する優先権の利益を主張する。本出願はまた、その全体が参照により本明細書に組み込まれる、2022年9月7日に出願された米国非仮特許出願第17/939,199号に基づき、それに対する優先権の利益を主張する。
【0002】
本開示は、一般に、ビデオコーディング/復号に関し、詳細には、成分間変換係数レベル復元においてオフセットを導出するための方法およびシステムに関する。
【背景技術】
【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】
多くの異なる形式のイントラ予測があり得る。そのような技法のうちの2つ以上が所与のビデオコーディング技術において利用可能であるとき、使用中の技法はイントラ予測モードと呼ぶことができる。1つまたは複数のイントラ予測モードが特定のコーデックで提供されてもよい。特定の場合には、モードは、サブモードを有することができ、かつ/または様々なパラメータと関連付けられてもよく、モード/サブモード情報およびビデオのブロック用のイントラコーディングパラメータは、個別にコード化されるか、またはまとめてモードのコードワードに含めることができる。所与のモード、下位モード、および/またはパラメータの組合せにどのコードワードを使用するかは、イントラ予測によるコーディング効率の向上に影響を及ぼす可能性があるので、コードワードをビットストリームに変換するために使用されるエントロピーコーディング技術に影響を及ぼす可能性がある。
【0010】
イントラ予測の特定のモードは、H.264から導入され、H.265において改良され、共同探索モデル(JEM)、多用途ビデオコーディング(VVC)、およびベンチマークセット(BMS)などのより新しいコーディング技術においてさらに改良された。一般に、イントラ予測では、利用可能になった隣接サンプル値を使用して予測器ブロックを形成することができる。例えば、特定の方向および/または線に沿った隣接サンプルの特定のセットの利用可能な値が、予測器ブロックにコピーされてもよい。使用中の方向への参照は、ビットストリーム内でコード化され得るか、またはそれ自体が予測されてもよい。
【0011】
図1Aを参照すると、右下に描写されているのは、(H.265において指定された35個のイントラモードのうちの33個の角度モードに対応する)H.265の33個の可能な予測器方向の中で指定された9つの予測器方向のサブセットである。矢印が収束する点(101)は、予測されているサンプルを表す。矢印は、101にあるサンプルを予測するために隣接サンプルがそこから使用される方向を表す。例えば、矢印(102)は、サンプル(101)が水平方向から45度の角度で右上に1つまたは複数の隣接サンプルから予測されることを示す。同様に、矢印(103)は、サンプル(101)が水平方向から22.5度の角度でサンプル(101)の左下に1つまたは複数の隣接サンプルから予測されることを示す。
【0012】
さらに図1Aを参照すると、左上には、(太い破線によって示された)4×4サンプルの正方形ブロック(104)が描写されている。正方形ブロック(104)は16個のサンプルを含み、各々、「S」、Y次元のその位置(例えば、行インデックス)、およびX次元のその位置(例えば、列インデックス)でラベル付けされている。例えば、サンプルS21は、Y次元の(上から)2番目のサンプルであり、X次元の(左から)1番目のサンプルである。同様に、サンプルS44は、ブロック(104)内のY次元およびX次元の両方の4番目のサンプルである。ブロックはサイズが4×4サンプルなので、S44は右下にある。同様の番号付け方式に従う例示的な参照サンプルがさらに示されている。参照サンプルは、ブロック(104)に対してR、そのY位置(例えば、行インデックス)、およびX位置(列インデックス)でラベル付けされている。H.264およびH.265の両方において、復元中のブロックに隣接する予測サンプルが使用される。
【0013】
ブロック104のイントラピクチャ予測は、シグナリングされた予測方向に従って隣接サンプルから参照サンプル値をコピーすることから開始することができる。例えば、コード化ビデオビットストリームが、このブロック104について、矢印(102)の予測方向を示すシグナリングを含む、すなわち、サンプルが水平方向から45度の角度で右上に1つまたは複数の予測サンプルから予測されると仮定する。そのような場合、同じ参照サンプルR05からサンプルS41、S32、S23、およびS14が予測される。次いで、参照サンプルR08からサンプルS44が予測される。
【0014】
特定の場合には、参照サンプルを計算するために、特に方向が45度によって均等に割り切れないとき、複数の参照サンプルの値は、例えば補間によって組み合わされてもよい。
【0015】
可能な方向の数は、ビデオコーディング技術が発展し続けるにつれて増加している。H.264(2003年)では、例えば、9つの異なる方向がイントラ予測に利用可能である。それがH.265(2013年)では33に増加し、本開示の時点では、JEM/VVC/BMSは最大65個の方向をサポートすることができる。最も適切なイントラ予測方向を識別するのに役立つ実験研究が行われており、エントロピーコーディングにおける特定の技法は、それらの最も適切な方向を少数のビットで符号化するために使用されてもよく、方向に関しては一定のビットペナルティを受け入れている。さらに、方向自体は、時々、復号された隣接ブロックのイントラ予測において使用された隣接方向から予測することができる。
【0016】
図1Bは、時とともに発展した様々な符号化技術における増加する数の予測方向を例示するために、JEMによる65個のイントラ予測方向を描写する概略図(180)を示す。
【0017】
コード化ビデオビットストリーム内でイントラ予測方向を表すビットを予測方向にマッピングするための方式は、ビデオコーディング技術ごとに異なる場合があり、例えば、イントラ予測モードへの予測方向の単純な直接マッピングから、コードワード、最確モードを含む複雑な適応方式、および同様の技法にまで及ぶ可能性がある。しかしながら、すべての場合において、特定の他の方向よりもビデオコンテンツ内で発生する可能性が統計的に低いイントラ予測用の特定の方向が存在する可能性がある。ビデオ圧縮の目的は冗長性の低減であるため、うまく設計されたビデオコーディング技術においては、それらのより可能性が低い方向は、より可能性が高い方向よりも多くの数のビットによって表される場合がある。
【0018】
インターピクチャ予測、またはインター予測は、動き補償に基づく場合がある。動き補償では、以前に復元されたピクチャまたはその一部(参照ピクチャ)からのサンプルデータが、動きベクトル(以降、MV)によって示された方向に空間的にシフトされた後に、新しく復元されるピクチャまたはピクチャの一部(例えば、ブロック)の予測に使用される場合がある。場合によっては、参照ピクチャは現在復元中のピクチャと同じであり得る。MVは、2つの次元XおよびY、または3つの次元を有することができ、3番目の次元は、(時間次元と類似する)使用中の参照ピクチャの指示である。
【0019】
いくつかのビデオ圧縮技法では、サンプルデータの特定の領域に適用可能な現在のMVは、他のMVから、例えば、復元中の領域に空間的に隣接し、復号順序で現在のMVに先行するサンプルデータの他の領域に関連する他のMVから予測することができる。そうすることにより、相関するMVにおける冗長性の排除に依存することにより、MVのコーディングに必要なデータ量全体を大幅に削減することができ、それによって圧縮効率が向上する。例えば、(ナチュラルビデオとして知られている)カメラから導出された入力ビデオ信号をコーディングするとき、単一のMVが適用可能な領域よりも大きい領域がビデオシーケンス内の同様の方向に移動する統計的な可能性が存在するので、MV予測は効果的に機能することができ、したがって、場合によっては、隣接する領域のMVから導出された同様の動きベクトルを使用して予測することができる。その結果、所与の領域についての実際のMVは、周囲のMVから予測されたMVと同様または同一になる。そのようなMVは次に、エントロピーコーディング後、MVが隣接するMVから予測されるのではなく直接コード化される場合に使用されることになるビット数よりも少ないビット数で表されてもよい。場合によっては、MV予測は、元の信号(すなわち、サンプルストリーム)から導出された信号(すなわち、MV)の可逆圧縮の一例であり得る。他の場合には、例えば、いくつかの周囲のMVから予測器を計算するときの丸め誤差のために、MV予測自体は非可逆であり得る。
【0020】
様々なMV予測メカニズムが、H.265/HEVC(ITU-T Rec.H.265、「High Efficiency Video Coding」、2016年12月)に記載されている。H.265が指定する多くのMV予測メカニズムのうち、以下に記載されるのは、以降「空間マージ」と呼ばれる技法である。
【0021】
具体的には、図2を参照すると、現在ブロック(201)は、空間的にシフトされた同じサイズの以前のブロックから予測可能であることが、動き検索プロセス中にエンコーダによって見出されたサンプルを含む。直接そのMVをコーディングする代わりに、MVは、A0、A1、およびB0、B1、B2(それぞれ、202~206)と表記された5つの周囲サンプルのいずれか1つに関連付けられたMVを使用して、1つまたは複数の参照ピクチャに関連付けられたメタデータから、例えば、(復号順序で)最新の参照ピクチャから導出することができる。H.265では、MV予測は、隣接ブロックが使用する同じ参照ピクチャからの予測器を使用することができる。
【発明の概要】
【課題を解決するための手段】
【0022】
本開示は、成分間変換係数レベル復元においてオフセットを導出するための方法、装置、およびコンピュータ可読記憶媒体の様々な実施形態を記載する。
【0023】
一態様によれば、本開示の一実施形態は、成分間変換係数レベル復元においてオフセットを導出するための方法を提供する。方法は、デバイスにより、コード化ビデオビットストリームを受信するステップを含む。デバイスは、命令を記憶するメモリと、メモリと通信するプロセッサとを含む。方法はまた、デバイスにより、コード化ビデオビットストリームから、現在のビデオブロックについての第1の色成分の第1の変換係数を抽出するステップと、デバイスにより、現在のビデオブロックについての第2の色成分の第2の変換係数を決定するステップと、デバイスにより、以下の量子化ステップサイズ、または第1の変換係数のうちの少なくとも1つに基づいてオフセット値を導出するステップと、デバイスにより、第2の色成分用の修正された第2の変換係数を生成するために、第2の変換係数にオフセット値を加算するステップと、デバイスにより、第1の色成分の第1の変換係数および第2の色成分の修正された第2の変換係数に基づいて現在のビデオブロックを復号するステップとを含む。
【0024】
別の態様によれば、本開示の一実施形態は、成分間変換係数レベル復元においてオフセットを導出するための装置を提供する。装置は、命令を記憶するメモリと、メモリと通信するプロセッサとを含む。プロセッサが命令を実行すると、プロセッサは、ビデオの復号および/または符号化のための上記の方法を装置に実行させるように構成される。
【0025】
別の態様では、本開示の一実施形態は、ビデオの復号および/または符号化のためにコンピュータによって実行されると、ビデオの復号および/または符号化のための上記の方法をコンピュータに実行させる命令を記憶する非一時的コンピュータ可読媒体を提供する。
【0026】
上記その他の態様およびそれらの実装形態が、図面、明細書、および特許請求の範囲においてさらに詳細に記載される。
【0027】
開示された主題のさらなる特徴、性質、および様々な利点は、以下の発明を実施するための形態および添付の図面からより明らかになる。
【図面の簡単な説明】
【0028】
図1A】イントラ予測方向モードの例示的なサブセットの概略図である。
図1B】例示的なイントラ予測方向の図である。
図2】一例における現在ブロックおよび動きベクトル予測のためのその周囲の空間マージ候補の概略図である。
図3】例示的な実施形態による、通信システム(300)の簡略化されたブロック図の概略図である。
図4】例示的な実施形態による、通信システム(400)の簡略化されたブロック図の概略図である。
図5】例示的な実施形態による、ビデオデコーダの簡略化されたブロック図の概略図である。
図6】例示的な実施形態による、ビデオエンコーダの簡略化されたブロック図の概略図である。
図7】別の例示的な実施形態による、ビデオエンコーダのブロック図である。
図8】別の例示的な実施形態による、ビデオデコーダのブロック図である。
図9】本開示の例示的な実施形態による、コーディングブロック分割の方式を示す図である。
図10】本開示の例示的な実施形態による、コーディングブロック分割の別の方式を示す図である。
図11】本開示の例示的な実施形態による、コーディングブロック分割の別の方式を示す図である。
図12】例示的な分割方式による、ベースブロックのコーディングブロックへの例示的な分割を示す図である。
図13】例示的な三分割方式を示す図である。
図14】例示的な四分木二分木コーディングブロック分割方式を示す図である。
図15】本開示の例示的な実施形態による、コーディングブロックを複数の変換ブロックに分割するための方式および変換ブロックのコーディング順序を示す図である。
図16】本開示の例示的な実施形態による、コーディングブロックを複数の変換ブロックに分割するための別の方式および変換ブロックのコーディング順序を示す図である。
図17】本開示の例示的な実施形態による、コーディングブロックを複数の変換ブロックに分割するための別の方式を示す図である。
図18】本開示の例示的な実施形態による、方法のフローチャートを示す図である。
図19】本開示の例示的な実施形態による、コンピュータシステムの概略図である。
【発明を実施するための形態】
【0029】
本明細書および特許請求の範囲全体を通して、用語は、明示的に記載される意味を超えて文脈内で示唆または暗示される微妙な意味を有する場合がある。本明細書で使用される「一実施形態では」または「いくつかの実施形態では」という語句は、必ずしも同じ実施形態を指すものではなく、本明細書で使用される「別の実施形態では」または「他の実施形態では」という語句は、必ずしも異なる実施形態を指すものではない。同様に、本明細書で使用される「一実装形態では」または「いくつかの実装形態では」という語句は、必ずしも同じ実装形態を指すものではなく、本明細書で使用される「別の実装形態では」または「他の実装形態では」という語句は、必ずしも異なる実装形態を指すものではない。例えば、特許請求される主題は、例示的な実施形態/実装形態の全部または一部の組合せを含むことが意図される。
【0030】
一般に、用語は、文脈における使用法から少なくとも部分的に理解される場合がある。例えば、本明細書で使用される「および」、「または」、または「および/または」などの用語は、そのような用語が使用される文脈に少なくとも部分的に依存する場合がある様々な意味を含んでもよい。通常、A、B、またはCなどのリストを関連付けるために使用される場合の「または」は、本明細書では包括的な意味で使用されるA、B、およびC、ならびに本明細書では排他的な意味で使用されるA、B、またはCを意味することが意図されている。加えて、本明細書で使用される「1つまたは複数」または「少なくとも1つ」という用語は、文脈に少なくとも部分的に依存して、単数の意味で任意の特徴、構造、もしくは特性を記述するために使用されてもよく、複数の意味で特徴、構造、もしくは特性の組合せを記述するために使用されてもよい。同様に、「a」、「an」、または「the」などの用語もやはり、文脈に少なくとも部分的に依存して、単数形の用法を伝えるか、または複数形の用法を伝えると理解されてもよい。加えて、「に基づいて」または「によって決定される」という用語は、必ずしも排他的な要因のセットを伝えることが意図されていないと理解されてもよく、代わりに、やはり文脈に少なくとも部分的に依存して、必ずしも明示的に記述されていないさらなる要因の存在を可能にする場合もある。図3は、本開示の一実施形態による、通信システム(300)の簡略化されたブロック図を示す。通信システム(300)は、例えば、ネットワーク(350)を介して互いに通信することができる複数の端末デバイスを含む。例えば、通信システム(300)は、ネットワーク(350)を介して相互接続された端末デバイス(310)および(320)の第1のペアを含む。図3の例では、端末デバイス(310)および(320)の第1のペアは、データの単方向送信を実行することができる。例えば、端末デバイス(310)は、ネットワーク(350)を介して他の端末デバイス(320)に送信するための(例えば、端末デバイス(310)によって取り込まれたビデオピクチャのストリームの)ビデオデータをコード化することができる。符号化ビデオデータは、1つまたは複数のコード化ビデオビットストリームの形式で送信することができる。端末デバイス(320)は、ネットワーク(350)からコード化ビデオデータを受信し、コード化ビデオデータを復号してビデオピクチャを復元し、復元されたビデオデータに従ってビデオピクチャを表示することができる。単方向データ送信は、メディアサービングアプリケーションなどで実施されてもよい。
【0031】
別の例では、通信システム(300)は、例えばビデオ会議アプリケーション中に実施される場合があるコード化ビデオデータの双方向送信を実行する端末デバイス(330)および(340)の第2のペアを含む。データの双方向送信の場合、一例では、端末デバイス(330)および(340)の各端末デバイスは、ネットワーク(350)を介して端末デバイス(330)および(340)のうちの他の端末デバイスに送信するための(例えば、端末デバイスによって取り込まれたビデオピクチャのストリームの)ビデオデータをコード化することができる。端末デバイス(330)および(340)の各端末デバイスはまた、端末デバイス(330)および(340)のうちの他の端末デバイスによって送信されたコード化ビデオデータを受信することができ、コード化ビデオデータを復号してビデオピクチャを復元することができ、復元されたビデオデータに従ってアクセス可能な表示デバイスにビデオピクチャを表示することができる。
【0032】
図3の例では、端末デバイス(310)、(320)、(330)、および(340)は、サーバ、パーソナルコンピュータ、およびスマートフォンとして実装されてもよいが、本開示の基礎となる原理の適用はそのように限定されなくてもよい。本開示の実施形態は、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤ、ウェアラブルコンピュータ、専用のビデオ会議機器などに実装されてもよい。ネットワーク(350)は、例えば、電線(有線)および/またはワイヤレスの通信ネットワークを含む、端末デバイス(310)、(320)、(330)、および(340)の間でコード化ビデオデータを伝達する任意の数またはタイプのネットワークを表す。通信ネットワーク(350)9は、回線交換、パケット交換、および/または他のタイプのチャネルでデータを交換することができる。代表的なネットワークには、電気通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、および/またはインターネットが含まれる。本説明の目的のために、ネットワーク(350)のアーキテクチャおよびトポロジーは、本明細書で明確に説明されない限り、本開示の動作にとって重要でない可能性がある。
【0033】
図4は、開示された主題についてのアプリケーション用の一例として、ビデオストリーミング環境内のビデオエンコーダおよびビデオデコーダの配置を示す。開示された主題は、例えば、ビデオ会議、デジタルテレビ放送、ゲーム、仮想現実、CD、DVD、メモリスティックなどを含むデジタル媒体上の圧縮ビデオの記憶などを含む、他のビデオアプリケーションに等しく適用可能であってもよい。
【0034】
ビデオストリーミングシステムは、例えば、圧縮されていないビデオピクチャまたは画像のストリーム(402)を作成するためのビデオソース(401)、例えば、デジタルカメラを含むことができるビデオキャプチャサブシステム(413)を含んでもよい。一例では、ビデオピクチャのストリーム(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が含まれる。一例では、開発中のビデオコーディング規格は、多用途ビデオコーディング(VVC)として非公式に知られている。開示された主題は、VVC、および他のビデオコーディング規格の文脈で使用されてもよい。
【0035】
電子デバイス(420)および(430)は、他の構成要素(図示せず)を含むことができることに留意されたい。例えば、電子デバイス(420)はビデオデコーダ(図示せず)を含むことができ、電子デバイス(430)もビデオエンコーダ(図示せず)を含むことができる。
【0036】
図5は、以下の本開示の任意の実施形態による、ビデオデコーダ(510)のブロック図を示す。ビデオデコーダ(510)は、電子デバイス(530)に含まれ得る。電子デバイス(530)は、受信機(531)(例えば、受信回路)を含むことができる。ビデオデコーダ(510)は、図4の例のビデオデコーダ(410)の代わりに使用することができる。
【0037】
受信機(531)は、ビデオデコーダ(510)によって復号されるべき1つまたは複数のコード化ビデオシーケンスを受信することができる。同じかまたは別の実施形態では、一度に1つのコード化ビデオシーケンスが復号されてもよく、各コード化ビデオシーケンスの復号は、他のコード化ビデオシーケンスから独立している。各ビデオシーケンスは、複数のビデオフレームまたは画像と関連付けられてもよい。コード化ビデオシーケンスはチャネル(501)から受信されてもよく、チャネル(501)は、符号化ビデオデータを記憶する記憶デバイスまたは符号化ビデオデータを送信するストリーミングソースへのハードウェア/ソフトウェアリンクであってもよい。受信機(531)は、それぞれの処理回路(描写せず)に転送され得るコード化オーディオデータおよび/または補助データストリームなどの他のデータとともに、符号化ビデオデータを受信することができる。受信機(531)は、コード化ビデオシーケンスを他のデータから分離することができる。ネットワークジッタに対抗するために、受信機(531)とエントロピーデコーダ/パーサー(520)(以降「パーサー(520)」)との間に、バッファメモリ(515)が配置されてもよい。特定の用途では、バッファメモリ(515)は、ビデオデコーダ(510)の一部として実装されてもよい。他の用途では、バッファメモリ(515)は、ビデオデコーダ(510)から分離されて外部にあり得る(描写せず)。さらに他の用途では、例えば、ネットワークジッタに対抗する目的でビデオデコーダ(510)の外部にバッファメモリが存在してもよく(描写せず)、例えば、再生タイミングを処理するためにビデオデコーダ(510)の内部に別のさらなるバッファメモリ(515)が存在してもよい。受信機(531)が十分な帯域幅および可制御性の記憶/転送デバイスから、または等同期ネットワークからデータを受信しているとき、バッファメモリ(515)は必要でなくてもよいか、または小さい可能性がある。インターネットなどのベストエフォートパケットネットワークで使用するために、十分なサイズのバッファメモリ(515)が必要とされる場合があり、そのサイズは比較的大きい可能性がある。そのようなバッファメモリは、適応サイズで実装されてもよく、ビデオデコーダ(510)の外部のオペレーティングシステムまたは同様の要素(描写せず)に少なくとも部分的に実装されてもよい。
【0038】
ビデオデコーダ(510)は、コード化ビデオシーケンスからシンボル(521)を復元するためにパーサー(520)を含んでもよい。それらのシンボルのカテゴリには、ビデオデコーダ(510)の動作を管理するために使用される情報、および潜在的に、電子デバイス(530)の不可欠な部分であってもなくてもよいが、図5に示されたように、電子デバイス(530)に結合することができるデバイス(512)(例えば、表示画面)などのレンダリングデバイスを制御するための情報が含まれる。レンダリングデバイスのための制御情報は、補足拡張情報(SEIメッセージ)またはビデオユーザビリティ情報(VUI)パラメータセットフラグメント(描写せず)の形式であってもよい。パーサー(520)は、パーサー(520)によって受け取られたコード化ビデオシーケンスを構文解析/エントロピー復号することができる。コード化ビデオシーケンスのエントロピーコーディングは、ビデオコーディング技術または規格に従うことができ、可変長コーディング、ハフマンコーディング、文脈依存性の有無にかかわらない算術コーディングなどを含む様々な原理に従うことができる。パーサー(520)は、コード化ビデオシーケンスから、サブグループに対応する少なくとも1つのパラメータに基づいて、ビデオデコーダ内のピクセルのサブグループのうちの少なくとも1つについてのサブグループパラメータのセットを抽出することができる。サブグループは、ピクチャグループ(GOP)、ピクチャ、タイル、スライス、マクロブロック、コーディングユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)などを含むことができる。パーサー(520)はまた、コード化ビデオシーケンスから、変換係数(例えば、フーリエ変換係数)、量子化パラメータ値、動きベクトルなどの情報を抽出することができる。
【0039】
パーサー(520)は、シンボル(521)を作成するために、バッファメモリ(515)から受け取られたビデオシーケンスに対してエントロピー復号/構文解析動作を実行することができる。
【0040】
シンボル(521)の復元は、(インターピクチャおよびイントラピクチャ、インターブロックおよびイントラブロックなどの)コード化ビデオピクチャまたはその部分のタイプ、ならびに他の要因に応じて、複数の異なる処理ユニットまたは機能ユニットを含むことができる。含まれるユニットおよびユニットがどのように含まれるかは、パーサー(520)によってコード化ビデオシーケンスから構文解析されたサブグループ制御情報によって制御されてもよい。パーサー(520)と以下の複数の処理ユニットまたは機能ユニットとの間のそのようなサブグループ制御情報の流れは、簡潔にするために描写されていない。
【0041】
すでに述べられた機能ブロック以外に、ビデオデコーダ(510)は、以下に記載されるように、概念的にいくつかの機能ユニットに細分化することができる。商業的制約の下で動作する実際の実装形態では、これらの機能ユニットの多くは互いに密接に相互作用し、少なくとも部分的に互いに統合され得る。しかしながら、開示された主題の様々な機能を明確に記載する目的で、以下の開示において機能ユニットへの概念的細分化が採用される。
【0042】
第1のユニットはスケーラ/逆変換ユニット(551)を含んでもよい。スケーラ/逆変換ユニット(551)は、量子化変換係数、ならびにどのタイプの逆変換を使用するかを示す情報、ブロックサイズ、量子化係数/パラメータ、量子化スケーリング行列などを含む制御情報を、パーサー(520)からシンボル(521)として受け取ることができる。スケーラ/逆変換ユニット(551)は、アグリゲータ(555)に入力することができるサンプル値を含むブロックを出力することができる。
【0043】
場合によっては、スケーラ/逆変換(551)の出力サンプルは、イントラコード化ブロック、すなわち、以前に復元されたピクチャからの予測情報を使用しないが、現在ピクチャの以前に復元された部分からの予測情報を使用することができるブロックに関連する可能性がある。そのような予測情報は、イントラピクチャ予測ユニット(552)によって提供することができる。場合によっては、イントラピクチャ予測ユニット(552)は、現在ピクチャバッファ(558)内のすでに復元され記憶された周囲ブロック情報を使用して、復元中のブロックの同じサイズおよび形状のブロックを生成することができる。現在ピクチャバッファ(558)は、例えば、部分的に復元された現在ピクチャおよび/または完全に復元された現在ピクチャをバッファリングする。アグリゲータ(555)は、いくつかの実装形態では、サンプルごとに、イントラ予測ユニット(552)が生成した予測情報を、スケーラ/逆変換ユニット(551)によって提供される出力サンプル情報に追加することができる。
【0044】
他の場合には、スケーラ/逆変換ユニット(551)の出力サンプルは、インターコード化され、潜在的に動き補償されたブロックに関連する可能性がある。そのような場合、動き補償予測ユニット(553)は、参照ピクチャメモリ(557)にアクセスして、インターピクチャ予測に使用されるサンプルをフェッチすることができる。ブロックに関連するシンボル(521)に従ってフェッチされたサンプルを動き補償した後、これらのサンプルは、出力サンプル情報を生成するために、アグリゲータ(555)によってスケーラ/逆変換ユニット(551)の出力に追加することができる(ユニット551の出力は、残差サンプルまたは残差信号と呼ばれる場合がある)。動き補償予測ユニット(553)がそこから予測サンプルをフェッチする参照ピクチャメモリ(557)内のアドレスは、例えば、X、Y成分(シフト)、および参照ピクチャ成分(時間)を有することができるシンボル(521)の形式で動き補償予測ユニット(553)に利用可能な動きベクトルによって制御することができる。動き補償はまた、サブサンプルの正確な動きベクトルが使用されているときに参照ピクチャメモリ(557)からフェッチされたサンプル値の補間を含んでもよく、また、動きベクトル予測メカニズムなどと関連付けられてもよい。
【0045】
アグリゲータ(555)の出力サンプルは、ループフィルタユニット(556)において様々なループフィルタリング技法を受けることができる。ビデオ圧縮技術は、(コード化ビデオビットストリームとも呼ばれる)コード化ビデオシーケンスに含まれるパラメータによって制御され、パーサー(520)からのシンボル(521)としてループフィルタユニット(556)に利用可能にされるインループフィルタ技術を含むことができるが、コード化ピクチャまたはコード化ビデオシーケンスの(復号順序で)前の部分の復号中に取得されたメタ情報に応答するだけでなく、以前に復元およびループフィルタリングされたサンプル値に応答することもできる。以下でさらに詳細に記載されるように、いくつかのタイプのループフィルタは、様々な順序でループフィルタユニット556の一部として含まれてもよい。
【0046】
ループフィルタユニット(556)の出力は、レンダリングデバイス(512)に出力されるだけでなく、将来のインターピクチャ予測で使用するために参照ピクチャメモリ(557)に記憶することもできるサンプルストリームであり得る。
【0047】
特定のコード化ピクチャは、完全に復元されると、将来のインターピクチャ予測のための参照ピクチャとして使用することができる。例えば、現在ピクチャに対応するコード化ピクチャが完全に復元され、コード化ピクチャが参照ピクチャとして(例えば、パーサー(520)によって)識別されると、現在ピクチャバッファ(558)は、参照ピクチャメモリ(557)の一部になることができ、未使用の現在ピクチャバッファは、次のコード化ピクチャの復元を開始する前に再割当てすることができる。
【0048】
ビデオデコーダ(510)は、ITU-T Rec.H.265などの規格で採用された所定のビデオ圧縮技術に従って復号動作を実行することができる。コード化ビデオシーケンスがビデオ圧縮技術または規格の構文とビデオ圧縮技術または規格において文書化されたプロファイルの両方を順守するという意味で、コード化ビデオシーケンスは、使用されているビデオ圧縮技術または規格によって指定された構文に準拠することができる。具体的には、プロファイルは、ビデオ圧縮技術または規格で利用可能なすべてのツールから、そのプロファイル下で使用するために利用可能な唯一のツールとしていくつかのツールを選択することができる。規格に準拠するために、コード化ビデオシーケンスの複雑さは、ビデオ圧縮技術または規格のレベルによって定義される範囲内にあってもよい。場合によっては、レベルは、最大ピクチャサイズ、最大フレームレート、(例えば、1秒あたりのメガサンプル数で測定される)最大復元サンプルレート、最大参照ピクチャサイズなどを制限する。レベルによって設定される制限は、場合によっては、仮想参照デコーダ(HRD)の仕様、およびコード化ビデオシーケンス内でシグナリングされるHRDバッファ管理用のメタデータによってさらに制限され得る。
【0049】
いくつかの例示的な実施形態では、受信機(531)は、符号化ビデオとともに追加の(冗長な)データを受信することができる。追加のデータは、コード化ビデオシーケンスの一部として含まれてもよい。追加のデータは、データを適切に復号するために、かつ/または元のビデオデータをより正確に復元するために、ビデオデコーダ(510)によって使用されてもよい。追加のデータは、例えば、時間、空間、または信号対雑音比(SNR)の拡張層、冗長スライス、冗長ピクチャ、順方向誤り訂正コードなどの形式であり得る。
【0050】
図6は、本開示の例示的実施形態による、ビデオエンコーダ(603)のブロック図を示す。ビデオエンコーダ(603)は電子デバイス(620)に含まれてもよい。電子デバイス(620)は、送信機(640)(例えば、送信回路)をさらに含んでもよい。ビデオエンコーダ(603)は、図4の例のビデオエンコーダ(403)の代わりに使用することができる。
【0051】
ビデオエンコーダ(603)は、ビデオエンコーダ(603)によってコード化されるべきビデオ画像を取り込むことができる(図6の例では電子デバイス(620)の一部ではない)ビデオソース(601)からビデオサンプルを受信することができる。別の例では、ビデオソース(601)は電子デバイス(620)の一部分として実装されてもよい。
【0052】
ビデオソース(601)は、任意の適切なビット深度(例えば、8ビット、10ビット、12ビット、…)、任意の色空間(例えば、BT.601 YCrCb、RGB、XYZ…)、および任意の適切なサンプリング構造(例えば、YCrCb 4:2:0、YCrCb 4:4:4)であり得るデジタルビデオサンプルストリームの形式で、ビデオエンコーダ(603)によってコード化されるべきソースビデオシーケンスを提供することができる。メディアサービングシステムでは、ビデオソース(601)は、以前に準備されたビデオを記憶することが可能なストレージデバイスであってもよい。ビデオ会議システムでは、ビデオソース(601)は、ビデオシーケンスとしてローカル画像情報を取り込むカメラであってもよい。ビデオデータは、順番に見たときに動きを伝える複数の個別のピクチャまたは画像として提供されてもよい。ピクチャ自体は、ピクセルの空間配列として編成されてもよく、各ピクセルは、使用中のサンプリング構造、色空間などに応じて、1つまたは複数のサンプルを含むことができる。当業者は、ピクセルとサンプルとの間の関係を容易に理解することができる。以下の説明はサンプルに焦点を当てる。
【0053】
いくつかの例示的な実施形態によれば、ビデオエンコーダ(603)は、リアルタイムで、またはアプリケーションによって必要とされる任意の他の時間制約の下で、ソースビデオシーケンスのピクチャをコード化ビデオシーケンス(643)にコード化し圧縮することができる。適切なコーディング速度を強制することは、コントローラ(650)の1つの機能を構成する。いくつかの実施形態では、コントローラ(650)は、以下で記載される他の機能ユニットに機能的に結合され、他の機能ユニットを制御することができる。簡潔にするために、結合は描写されていない。コントローラ(650)によって設定されるパラメータは、レート制御関連パラメータ(ピクチャスキップ、量子化器、レート歪み最適化技法のラムダ値、…)、ピクチャサイズ、ピクチャグループ(GOP)のレイアウト、最大動きベクトル検索範囲などを含むことができる。コントローラ(650)は、特定のシステム設計のために最適化されたビデオエンコーダ(603)に関連する他の適切な機能を有するように構成することができる。
【0054】
いくつかの例示的な実施形態では、ビデオエンコーダ(603)は、コーディングループで動作するように構成されてもよい。単純化しすぎた説明として、一例では、コーディングループは、(例えば、コード化されるべき入力ピクチャ、および参照ピクチャに基づいて、シンボルストリームなどのシンボルを作成することに関与する)ソースコーダ(630)、ならびにビデオエンコーダ(603)に組み込まれた(ローカル)デコーダ(633)を含むことができる。デコーダ(633)は、シンボルを復元して、(開示された主題で考慮されるビデオ圧縮技術では、エントロピーコーディングにおいてシンボルとコード化ビデオビットストリームとの間の任意の圧縮が可逆であり得るので)組み込まれたデコーダ633がエントロピーコーディングなしにソースコーダ630によってコード化ビデオストリームを処理する場合でも(リモート)デコーダが作成することになるのと同様の方式でサンプルデータを作成する。復元されたサンプルストリーム(サンプルデータ)は、参照ピクチャメモリ(634)に入力される。シンボルストリームの復号は、デコーダの場所(ローカルまたはリモート)に関係なくビット正確な結果につながるので、参照ピクチャメモリ(634)内のコンテンツも、ローカルエンコーダとリモートエンコーダとの間でビット正確である。言い換えれば、エンコーダの予測部分は、復号中に予測を使用するときにデコーダが「見る」ことになるのとまったく同じサンプル値を参照ピクチャサンプルとして「見る」。参照ピクチャ同期性のこの基本原理(および、例えばチャネル誤差が原因で同期性を維持することができない場合に結果として生じるドリフト)は、コーディング品質を向上させるために使用される。
【0055】
「ローカル」デコーダ(633)の動作は、図5とともに上記で詳細にすでに記載されている、ビデオデコーダ(510)などの「リモート」デコーダの動作と同じであり得る。しかしながら、また図5を簡単に参照すると、シンボルが利用可能であり、エントロピーコーダ(645)およびパーサー(520)によるコード化ビデオシーケンスへのシンボルの符号化/復号は可逆であり得るので、バッファメモリ(515)を含むビデオデコーダ(510)のエントロピー復号部分およびパーサー(520)は、エンコーダ内のローカルデコーダ(633)内に完全に実装されなくてもよい。
【0056】
この時点で言えることは、デコーダ内にのみ存在してもよい構文解析/エントロピー復号を除く任意のデコーダ技術もまた必然的に、対応するエンコーダ内に実質的に同一の機能形態で存在する必要があり得るということである。このため、開示された主題はデコーダ動作に時々焦点を当てる場合があり、この動作はエンコーダの復号部分と同様である。したがって、エンコーダ技術の説明は、包括的に記載されたデコーダ技術の逆であるので、省略することができる。特定の領域または態様においてのみ、エンコーダのより詳細な説明が以下に提供される。
【0057】
動作中、いくつかの例示的な実装形態では、ソースコーダ(630)は、「参照ピクチャ」として指定されたビデオシーケンスからの1つまたは複数の以前にコード化されたピクチャを参照して入力ピクチャを予測的にコーディングする、動き補償予測コーディングを実行することができる。このようにして、コーディングエンジン(632)は、入力ピクチャのピクセルブロックと入力ピクチャに対する予測参照として選択され得る参照ピクチャのピクセルブロックとの間の色チャネルの差分(または残差)をコード化する。「残差」という用語およびその形容詞形「残差の」は、互換的に使用されてもよい。
【0058】
ローカルビデオデコーダ(633)は、ソースコーダ(630)によって作成されたシンボルに基づいて、参照ピクチャとして指定され得るピクチャのコード化ビデオデータを復号することができる。コーディングエンジン(632)の動作は、有利なことに非可逆プロセスであってもよい。コード化ビデオデータが(図6に示されていない)ビデオデコーダで復号され得るとき、復元されたビデオシーケンスは、通常、いくつかの誤差を伴うソースビデオシーケンスのレプリカであってもよい。ローカルビデオデコーダ(633)は、参照ピクチャに対してビデオデコーダによって実行され得る復号プロセスを複製し、復元された参照ピクチャが参照ピクチャキャッシュ(634)に記憶されるようにすることができる。このようにして、ビデオエンコーダ(603)は、(伝送誤差なしで)遠端(リモート)ビデオデコーダによって取得される復元された参照ピクチャと共通の内容を有する復元された参照ピクチャのコピーをローカルに記憶することができる。
【0059】
予測器(635)は、コーディングエンジン(632)のための予測検索を実行することができる。すなわち、コード化されるべき新しいピクチャの場合、予測器(635)は、新しいピクチャのための適切な予測参照として役立つことができる、(候補参照ピクセルブロックとしての)サンプルデータまたは参照ピクチャ動きベクトル、ブロック形状などの特定のメタデータを求めて、参照ピクチャメモリ(634)を検索することができる。予測器(635)は、適切な予測参照を見つけるために、ピクセルブロックごとにサンプルブロックに対して動作することができる。場合によっては、予測器(635)によって取得された検索結果によって決定されるように、入力ピクチャは、参照ピクチャメモリ(634)に記憶された複数の参照ピクチャから引き出された予測参照を有することができる。
【0060】
コントローラ(650)は、例えば、ビデオデータを符号化するために使用されるパラメータおよびサブグループパラメータの設定を含む、ソースコーダ(630)のコーディング動作を管理することができる。
【0061】
すべての前述の機能ユニットの出力は、エントロピーコーダ(645)内でエントロピーコーディングを受けることができる。エントロピーコーダ(645)は、ハフマンコーディング、可変長コーディング、算術コーディングなどの技術に従うシンボルの可逆圧縮により、様々な機能ユニットによって生成されたシンボルをコード化ビデオシーケンスに変換する。
【0062】
送信機(640)は、エントロピーコーダ(645)によって作成されたコード化ビデオシーケンスをバッファリングして、通信チャネル(660)を介した送信の準備をすることができ、通信チャネル(660)は、符号化ビデオデータを記憶するストレージデバイスへのハードウェア/ソフトウェアリンクであってもよい。送信機(640)は、ビデオコーダ(603)からのコード化ビデオデータを、送信されるべき他のデータ、例えば、コード化オーディオデータおよび/または補助データストリーム(ソースは図示されていない)とマージすることができる。
【0063】
コントローラ(650)は、ビデオエンコーダ(603)の動作を管理することができる。コーディング中に、コントローラ(650)は、各コード化ピクチャに特定のコード化ピクチャタイプを割り当てることができ、それは、それぞれのピクチャに適用され得るコーディング技法に影響を及ぼす場合がある。例えば、ピクチャは、しばしば、以下のピクチャタイプのうちの1つとして割り当てられてもよい。
【0064】
イントラピクチャ(Iピクチャ)は、予測のソースとしてシーケンス内のいかなる他のピクチャも使用せずにコード化および復号され得るピクチャであり得る。いくつかのビデオコーデックは、例えば、独立デコーダリフレッシュ(「IDR」)ピクチャを含む、異なるタイプのイントラピクチャを可能にする。当業者は、Iピクチャのそれらの変形形態、ならびにそれらのそれぞれの用途および特徴を認識している。
【0065】
予測ピクチャ(Pピクチャ)は、各ブロックのサンプル値を予測するために、多くとも1つの動きベクトルおよび参照インデックスを使用するイントラ予測またはインター予測を使用して、コード化および復号され得るピクチャであり得る。
【0066】
双方向予測ピクチャ(Bピクチャ)は、各ブロックのサンプル値を予測するために、多くとも2つの動きベクトルおよび参照インデックスを使用するイントラ予測またはインター予測を使用して、コード化および復号され得るピクチャであり得る。同様に、複数の予測ピクチャは、単一ブロックの復元のために3つ以上の参照ピクチャおよび関連するメタデータを使用することができる。
【0067】
ソースピクチャは、通常、複数のサンプルコーディングブロック(例えば、各々4×4、8×8、4×8、または16×16サンプルのブロック)に空間的に細分化され、ブロックごとにコード化されてもよい。ブロックは、ブロックのそれぞれのピクチャに適用されるコーディング割当てによって決定されるように、他の(すでにコード化された)ブロックを参照して予測的にコード化されてもよい。例えば、Iピクチャのブロックは、非予測的にコード化されてもよいか、またはそれらは、同じピクチャのすでにコード化されたブロックを参照して予測的にコード化されてもよい(空間予測もしくはイントラ予測)。Pピクチャのピクセルブロックは、1つの以前にコード化された参照ピクチャを参照して、空間予測を介してまたは時間予測を介して予測的にコード化されてもよい。Bピクチャのブロックは、1つまたは2つの以前にコード化された参照ピクチャを参照して、空間予測を介してまたは時間予測を介して予測的にコード化されてもよい。ソースピクチャまたは中間処理されたピクチャは、他の目的で他のタイプのブロックに細分化されてもよい。コーディングブロックおよび他のタイプのブロックの分割は、以下でさらに詳細に記載されるように、同じ方法に従ってもよく、従わなくてもよい。
【0068】
ビデオエンコーダ(603)は、ITU-T Rec.H.265などの所定のビデオコーディング技術または規格に従ってコーディング動作を実行することができる。その動作において、ビデオエンコーダ(603)は、入力ビデオシーケンスにおける時間および空間の冗長性を利用する予測コーディング動作を含む、様々な圧縮動作を実行することができる。したがって、コード化ビデオデータは、使用されているビデオコーディング技術または規格によって指定された構文に準拠することができる。
【0069】
いくつかの例示的な実施形態では、送信機(640)は、符号化されたビデオとともに追加のデータを送信することができる。ソースコーダ(630)は、コード化ビデオシーケンスの一部としてそのようなデータを含んでもよい。追加のデータは、時間/空間/SNR拡張層、冗長なピクチャおよびスライスなどの他の形式の冗長データ、SEIメッセージ、VUIパラメータセットフラグメントなどを含んでもよい。
【0070】
ビデオは、時系列で複数のソースピクチャ(ビデオピクチャ)として取り込まれてもよい。(しばしば、イントラ予測と省略される)イントラピクチャ予測は、所与のピクチャ内の空間の相関関係を利用し、インターピクチャ予測は、ピクチャ間の時間または他の相関関係を利用する。例えば、現在ピクチャと呼ばれる、符号化/復号中の特定のピクチャがブロックに分割されてもよい。現在ピクチャ内のブロックは、以前にコード化され、ビデオ内にまだバッファリングされている参照ピクチャ内の参照ブロックに類似しているとき、動きベクトルと呼ばれるベクトルによってコード化されてもよい。動きベクトルは、参照ピクチャ内の参照ブロックを指し、複数の参照ピクチャが使用されている場合、参照ピクチャを識別する第3の次元を有することができる。
【0071】
いくつかの例示的な実施形態では、インターピクチャ予測に双予測技法を使用することができる。そのような双予測技法によれば、第1の参照ピクチャおよび第2の参照ピクチャなどの2つの参照ピクチャが使用され、それらは両方ともビデオ内の現在のピクチャを復号順序で進める(ただし、表示順序では、それぞれ、過去または未来にあり得る)。現在ピクチャ内のブロックは、第1の参照ピクチャ内の第1の参照ブロックを指す第1の動きベクトル、および第2の参照ピクチャ内の第2の参照ブロックを指す第2の動きベクトルによってコード化することができる。ブロックは、第1の参照ブロックと第2の参照ブロックの組合せによって一緒に予測することができる。
【0072】
さらに、コーディング効率を改善するために、インターピクチャ予測においてマージモード技法が使用されてもよい。
【0073】
本開示のいくつかの例示的な実施形態によれば、インターピクチャ予測およびイントラピクチャ予測などの予測は、ブロック単位で実行される。例えば、ビデオピクチャのシーケンス内のピクチャは、圧縮のためにコーディングツリーユニット(CTU)に分割され、ピクチャ内のCTUは、64×64ピクセル、32×32ピクセル、または16×16ピクセルなどの同じサイズを有してもよい。一般に、CTUは、3つの並列のコーディングツリーブロック(CTB)、すなわち、1つ輝度CTBおよび2つの彩度CTBを含んでもよい。各CTUは、1つまたは複数のコーディングユニット(CU)に再帰的に四分木分割することができる。例えば、64×64ピクセルのCTUは、1つの64×64ピクセルのCU、または4つの32×32ピクセルのCUに分割することができる。32×32ブロックのうちの1つまたは複数の各々は、4つの16×16ピクセルのCUにさらに分割されてもよい。いくつかの例示的な実施形態では、各CUは、インター予測タイプまたはイントラ予測タイプなどの様々な予測タイプの中からそのCU用の予測タイプを決定するために符号化中に分析されてもよい。CUは、時間および/または空間の予測可能性に応じて、1つまたは複数の予測ユニット(PU)に分割されてもよい。一般に、各PUは、1つの輝度予測ブロック(PB)および2つの彩度PBを含む。一実施形態では、コーディング(符号化/復号)における予測動作は、予測ブロック単位で実行される。CUのPU(または異なる色チャネルのPB)への分割は、様々な空間パターンで実行されてもよい。輝度PBまたは彩度PBは、例えば、8×8ピクセル、16×16ピクセル、8×16ピクセル、16×8ピクセルなどのサンプルの値(例えば、輝度値)の行列を含んでもよい。
【0074】
図7は、本開示の別の例示的な実施形態による、ビデオエンコーダ(703)の図を示す。ビデオエンコーダ(703)は、ビデオピクチャのシーケンスにおける現在ビデオピクチャ内のサンプル値の処理ブロック(例えば、予測ブロック)を受け取り、処理ブロックをコード化ビデオシーケンスの一部であるコード化ピクチャに符号化するように構成される。例示的なビデオエンコーダ(703)は、図4の例のビデオエンコーダ(403)の代わりに使用されてもよい。
【0075】
例えば、ビデオエンコーダ(703)は、8×8サンプルの予測ブロックなどの処理ブロックについてのサンプル値の行列を受け取る。次いで、ビデオエンコーダ(703)は、処理ブロックが、例えば、レート歪み最適化(RDO)を使用して、イントラモード、インターモード、または双予測モードのどれを使用して最良にコード化されるかを判定する。処理ブロックがイントラモードでコード化されるべきと判定されると、ビデオエンコーダ(703)は、イントラ予測技法を使用して、処理ブロックをコード化ピクチャに符号化することができ、処理ブロックがインターモードまたは双予測モードでコード化されるべきと判定されると、ビデオエンコーダ(703)は、それぞれ、インター予測技法または双予測技法を使用して、処理ブロックをコード化ピクチャに符号化することができる。いくつかの例示的な実施形態では、動きベクトルが予測器の外側のコード化された動きベクトル成分の恩恵を受けずに1つまたは複数の動きベクトル予測器から導出されるインターピクチャ予測のサブモードとして、マージモードが使用されてもよい。いくつかの他の例示的な実施形態では、対象ブロックに適用可能な動きベクトル成分が存在してもよい。したがって、ビデオエンコーダ(703)は、処理ブロックの予測モードを決定するために、モード決定モジュールなどの、図7に明示的に示されていない構成要素を含んでもよい。
【0076】
図7の例では、ビデオエンコーダ(703)は、図7の例示的な配置に示されたように互いに結合されたインターエンコーダ(730)、イントラエンコーダ(722)、残差計算器(723)、スイッチ(726)、残差エンコーダ(724)、汎用コントローラ(721)、およびエントロピーエンコーダ(725)を含む。
【0077】
インターエンコーダ(730)は、現在ブロック(例えば、処理ブロック)のサンプルを受け取り、ブロックを参照ピクチャ内の1つまたは複数の参照ブロック(例えば、表示順序で前のピクチャおよび後のピクチャ内のブロック)と比較し、インター予測情報(例えば、インター符号化技法による冗長情報、動きベクトル、マージモード情報の記述)を生成し、任意の適切な技法を使用して、インター予測情報に基づいてインター予測結果(例えば、予測ブロック)を計算するように構成される。いくつかの例では、参照ピクチャは、(以下でさらに詳細に記載されるように、図7の残差デコーダ728として示された)図6の例示的なエンコーダ620に組み込まれた復号ユニット633を使用して、符号化ビデオ情報に基づいて復号された復号参照ピクチャである。
【0078】
イントラエンコーダ(722)は、現在ブロック(例えば、処理ブロック)のサンプルを受け取り、ブロックを同じピクチャ内のすでにコード化されたブロックと比較し、変換後に量子化係数を生成し、場合によっては、イントラ予測情報(例えば、1つまたは複数のイントラ符号化技法によるイントラ予測方向情報)も生成するように構成される。イントラエンコーダ(722)は、イントラ予測情報および同じピクチャ内の参照ブロックに基づいて、イントラ予測結果(例えば、予測ブロック)を計算することができる。
【0079】
汎用コントローラ(721)は、汎用制御データを決定し、汎用制御データに基づいてビデオエンコーダ(703)の他の構成要素を制御するように構成されてもよい。一例では、汎用コントローラ(721)は、ブロックの予測モードを決定し、予測モードに基づいてスイッチ(726)に制御信号を提供する。例えば、予測モードがイントラモードであるとき、汎用コントローラ(721)は、スイッチ(726)を制御して残差計算器(723)が使用するためのイントラモード結果を選択し、エントロピーエンコーダ(725)を制御してイントラ予測情報を選択し、ビットストリームにイントラ予測情報を含め、ブロック用の予測モードがインターモードであるとき、汎用コントローラ(721)は、スイッチ(726)を制御して残差計算器(723)が使用するためのインター予測結果を選択し、エントロピーエンコーダ(725)を制御してインター予測情報を選択し、ビットストリームにインター予測情報を含める。
【0080】
残差計算器(723)は、受け取ったブロックと、イントラエンコーダ(722)またはインターエンコーダ(730)から選択されたブロックについての予測結果との間の差分(残差データ)を計算するように構成されてもよい。残差エンコーダ(724)は、残差データを符号化して変換係数を生成するように構成されてもよい。例えば、残差エンコーダ(724)は、残差データを空間領域から周波数領域に変換して変換係数を生成するように構成されてもよい。次いで、変換係数は、量子化変換係数を取得するために量子化処理を受ける。様々な例示的な実施形態では、ビデオエンコーダ(703)は残差デコーダ(728)も含む。残差デコーダ(728)は、逆変換を実行し、復号された残差データを生成するように構成される。復号された残差データは、イントラエンコーダ(722)およびインターエンコーダ(730)によって適切に使用することができる。例えば、インターエンコーダ(730)は、復号された残差データおよびインター予測情報に基づいて復号されたブロックを生成することができ、イントラエンコーダ(722)は、復号された残差データおよびイントラ予測情報に基づいて復号されたブロックを生成することができる。復号されたブロックは、復号されたピクチャを生成するために適切に処理され、復号されたピクチャは、メモリ回路(図示せず)にバッファリングされ、参照ピクチャとして使用することができる。
【0081】
エントロピーエンコーダ(725)は、符号化されたブロックを含むようにビットストリームをフォーマットし、エントロピーコーディングを実行するように構成されてもよい。エントロピーエンコーダ(725)は、ビットストリームに様々な情報を含めるように構成される。例えば、エントロピーエンコーダ(725)は、汎用制御データ、選択された予測情報(例えば、イントラ予測情報またはインター予測情報)、残差情報、および他の適切な情報をビットストリームに含めるように構成されてもよい。インターモードまたは双予測モードのいずれかのマージサブモードでブロックをコーディングするとき、残差情報は存在しなくてもよい。
【0082】
図8は、本開示の別の実施形態による、例示的なビデオデコーダ(810)の図を示す。ビデオデコーダ(810)は、コード化ビデオシーケンスの一部であるコード化ピクチャを受け取り、コード化ピクチャを復号して復元されたピクチャを生成するように構成される。一例では、ビデオデコーダ(810)は、図4の例のビデオデコーダ(410)の代わりに使用されてもよい。
【0083】
図8の例では、ビデオデコーダ(810)は、図8の例示的な配置に示されたように、互いに結合されたエントロピーデコーダ(871)、インターデコーダ(880)、残差デコーダ(873)、復元モジュール(874)、およびイントラデコーダ(872)を含む。
【0084】
エントロピーデコーダ(871)は、コード化ピクチャから、コード化ピクチャが構成されるその構文要素を表す特定のシンボルを復元するように構成することができる。そのようなシンボルは、例えば、ブロックがコード化されるモード(例えば、イントラモード、インターモード、双予測モード、マージサブモードまたは別のサブモード)、イントラデコーダ(872)またはインターデコーダ(880)による予測に使用される特定のサンプルまたはメタデータを識別することができる予測情報(例えば、イントラ予測情報またはインター予測情報)、例えば、量子化変換係数の形態の残差情報などを含むことができる。一例では、予測モードがインターモードまたは双予測モードであるとき、インター予測情報はインターデコーダ(880)に提供され、予測タイプがイントラ予測タイプであるとき、イントラ予測情報はイントラデコーダ(872)に提供される。残差情報は、逆量子化を受けることができ、残差デコーダ(873)に提供される。
【0085】
インターデコーダ(880)は、インター予測情報を受け取り、インター予測情報に基づいてインター予測結果を生成するように構成されてもよい。
【0086】
イントラデコーダ(872)は、イントラ予測情報を受け取り、イントラ予測情報に基づいて予測結果を生成するように構成されてもよい。
【0087】
残差デコーダ(873)は、逆量子化を実行して逆量子化変換係数を抽出し、逆量子化変換係数を処理して、残差を周波数領域から空間領域に変換するように構成されてもよい。残差デコーダ(873)はまた、(量子化器パラメータ(QP)を含めるために)特定の制御情報を利用することができ、その情報は、エントロピーデコーダ(871)によって提供されてもよい(これは小さいデータ量の制御情報のみであり得るので、データパスは描写されていない)。
【0088】
復元モジュール(874)は、空間領域において、残差デコーダ(873)による出力としての残差と(場合によってはインター予測モジュールまたはイントラ予測モジュールによる出力としての)予測結果を組み合わせて、復元されたビデオの一部としての復元されたピクチャの一部を形成する復元されたブロックを形成するように構成されてもよい。見栄えを改善するために、デブロッキング動作などの他の適切な動作も実行されてもよいことに留意されたい。
【0089】
ビデオエンコーダ(403)、(603)、および(703)、ならびにビデオデコーダ(410)、(510)、および(810)は、任意の適切な技法を使用して実装することができることに留意されたい。いくつかの例示的な実施形態では、ビデオエンコーダ(403)、(603)、および(703)、ならびにビデオデコーダ(410)、(510)、および(810)は、1つまたは複数の集積回路を使用して実装することができる。別の実施形態では、ビデオエンコーダ(403)、(603)、および(603)、ならびにビデオデコーダ(410)、(510)、および(810)は、ソフトウェア命令を実行する1つまたは複数のプロセッサを使用して実装することができる。
【0090】
コーディングおよび復号のためのブロック分割に目を向けると、一般的な分割は、ベースブロックから開始することができ、事前定義されたルールセット、特定のパターン、分割ツリー、または任意の分割構造もしくは方式に従うことができる。分割は、階層的かつ再帰的であってもよい。以下に記載される例示的な分割手順もしくは他の手順、またはそれらの組合せのいずれかに従ってベースブロックを分離または分割した後に、パーティションまたはコーディングブロックの最終セットが取得されてもよい。これらのパーティションの各々は、分割階層内の様々な分割レベルのうちの1つにあってもよく、様々な形状のパーティションであってもよい。パーティションの各々は、コーディングブロック(CB)と呼ばれる場合がある。以下にさらに記載される様々な例示的な分割実装形態では、結果として得られる各CBは、許容されるサイズおよび分割レベルのいずれかのCBであってもよい。そのようなパーティションは、そのためにいくつかの基本的なコーディング/復号決定が行われ得、コーディング/復号パラメータが、最適化され、決定され、符号化ビデオビットストリームにおいてシグナリングされ得るユニットを形成することができるので、コーディングブロックと呼ばれる。最終パーティションにおける最高または最深のレベルは、コーディングブロック分割ツリー構造の深度を表す。コーディングブロックは、輝度コーディングブロックまたは彩度コーディングブロックであってもよい。各色のCBツリー構造は、コーディングブロックツリー(CBT)と呼ばれる場合がある。
【0091】
すべての色チャネルのコーディングブロックは、まとめてコーディングユニット(CU)と呼ばれる場合がある。すべての色チャネルの階層構造は、まとめてコーディングツリーユニット(CTU)と呼ばれる場合がある。CTU内の様々な色チャネルの分割パターンまたは分割構造は、同じであってもなくてもよい。
【0092】
いくつかの実装形態では、輝度チャネルおよび彩度チャネルに使用される分割ツリー方式または構造は、同じである必要はなくてもよい。言い換えれば、輝度チャネルおよび彩度チャネルは、別個のコーディングツリー構造またはパターンを有してもよい。さらに、輝度チャネルおよび彩度チャネルが同じコーディング分割ツリー構造を使用するか、異なるコーディング分割ツリー構造を使用するか、および使用されるべき実際のコーディング分割ツリー構造は、コーディングされているスライスがPスライスか、Bスライスか、Iスライスかに依存する場合がある。例えば、Iスライスの場合、彩度チャネルおよび輝度チャネルは、別個のコーディング分割ツリー構造またはコーディング分割ツリー構造モードを有してもよいが、PスライスまたはBスライスの場合、輝度チャネルおよび彩度チャネルは、同じコーディング分割ツリー方式を共有してもよい。別個のコーディング分割ツリー構造またはモードが適用されるとき、輝度チャネルは、1つのコーディング分割ツリー構造によってCBに分割されてもよく、彩度チャネルは、別のコーディング分割ツリー構造によって彩度CBに分割されてもよい。
【0093】
いくつかの例示的な実装形態では、所定の分割パターンがベースブロックに適用されてもよい。図9に示されたように、例示的な4方向分割ツリーは、第1の事前定義されたレベル(例えば、ベースブロックサイズとして、64×64ブロックレベルまたは他のサイズ)から開始してもよく、ベースブロックは、事前定義された最下位レベル(例えば、4×4レベル)まで階層的に分割されてもよい。例えば、ベースブロックは、902、904、906、および908によって示された4つの事前定義された分割オプションまたはパターンに従うことができ、Rとして指定されたパーティションは、図9に示された同じ分割オプションが最下位レベル(例えば、4×4レベル)まで下位スケールで繰り返され得るという点で、再帰分割が可能である。いくつかの実装形態では、図9の分割方式に追加の制限が加えられてもよい。図9の実装形態では、長方形パーティション(例えば、1:2/2:1の長方形パーティション)が可能であるが、それらは繰り返して用いることができない場合があり、一方、正方形パーティションは繰り返して用いることができる。必要に応じて、再帰による図9の後に続く分割により、コーディングブロックの最終セットが生成される。ルートノードまたはルートブロックからの分割深度を示すために、コーディングツリー深度がさらに定義されてもよい。例えば、64×64ブロックのルートノードまたはルートブロックに対するコーディングツリー深度は0に設定されてもよく、ルートブロックが図9に従ってさらに1回分割された後、コーディングツリー深度は1だけ増加する。64×64のベースブロックから4×4の最小パーティションまでの最大または最深のレベルは、上記の方式では(レベル0から開始して)4である。そのような分割方式が、色チャネルのうちの1つまたは複数に適用されてもよい。各色チャネルは、図9の方式に従って別々に分割されてもよい(例えば、各階層レベルにおける色チャネルの各々に対して、事前定義されたパターンの中の分割パターンまたはオプションが別々に決定されてもよい)。あるいは、2つ以上の色チャネルが図9の同じ階層パターンツリーを共有してもよい(例えば、各階層レベルにおける2つ以上の色チャネルに対して、事前定義されたパターンの中の同じ分割パターンまたはオプションが選択されてもよい)。
【0094】
図10は、再帰分割が分割ツリーを形成することを可能にする別の例示的な事前定義された分割パターンを示す。図10に示されたように、例示的な10通りの分割構造またはパターンが事前定義されてもよい。ルートブロックは、事前定義されたレベルから(例えば、128×128レベルまたは64×64レベルのベースブロックから)開始することができる。図10の例示的な分割構造は、様々な2:1/1:2および4:1/1:4の長方形パーティションを含む。図10の2列目の1002、1004、1006、および1008と示された3つのサブパーティションを有するパーティションタイプは、「T型」パーティションと呼ばれる場合がある。「T型」パーティション1002、1004、1006、および1008は、左T型、上T型、右T型、および下T型と呼ばれる場合がある。いくつかの例示的な実装形態では、図10の長方形パーティションのどれもこれ以上細分されることは可能でない。ルートノードまたはルートブロックからの分割深度を示すために、コーディングツリー深度がさらに定義されてもよい。例えば、128×128ブロックのルートノードまたはルートブラックに対するコーディングツリー深度は0に設定されてもよく、ルートブロックが図10に従ってさらに1回分割された後、コーディングツリー深度は1だけ増加する。いくつかの実装形態では、1010のすべて正方形のパーティションのみが、図10のパターンの後に続く分割ツリーの次のレベルへの再帰分割を可能とすることができる。言い換えれば、再帰分割は、T型パターン1002、1004、1006、および1008内の正方形パーティションでは可能でない場合がある。必要に応じて、再帰による図10の後に続く分割手順により、コーディングブロックの最終セットが生成される。そのような方式が、色チャネルのうちの1つまたは複数に適用されてもよい。いくつかの実装形態では、8×8レベル未満のパーティションの使用に、より多くの柔軟性が加えられてもよい。例えば、場合によっては、2×2の彩度インター予測が使用されてもよい。
【0095】
コーディングブロック分割についてのいくつかの他の例示的な実装形態では、ベースブロックまたは中間ブロックを四分木パーティションに分割するために四分木構造が使用されてもよい。そのような四分木分割は、任意の正方形パーティションに階層的かつ再帰的に適用されてもよい。ベースブロックまたは中間ブロックまたはパーティションがさらに四分木分割されるかどうかは、ベースブロックまたは中間ブロック/パーティションの様々なローカル特性に適合してもよい。ピクチャ境界における四分木分割がさらに適合してもよい。例えば、サイズがピクチャ境界に収まるまでブロックが四分木分割を続けるように、ピクチャ境界で暗黙の四分木分割が実行されてもよい。
【0096】
いくつかの他の例示的な実装形態では、ベースブロックからの階層バイナリ分割が使用されてもよい。そのような方式の場合、ベースブロックまたは中間レベルブロックは、2つのパーティションに分割されてもよい。二分割は、水平または垂直のいずれかであってもよい。例えば、水平二分割は、ベースブロックまたは中間ブロックを等しい左右のパーティションに分割することができる。同様に、垂直二分割は、ベースブロックまたは中間ブロックを等しい上下のパーティションに分割することができる。そのような二分割は、階層的かつ再帰的であってもよい。二分割方式を続けるべきかどうか、および方式がさらに続く場合に、水平二分割が使用されるべきか、垂直二分割が使用されるべきかは、ベースブロックまたは中間ブロックの各々において判断されてもよい。いくつかの実装形態では、さらなる分割は、(一方または両方の次元の)事前定義された最低パーティションサイズで停止することができる。あるいは、ベースブロックから事前定義された分割レベルまたは深度に達すると、さらなる分割を停止することができる。いくつかの実装形態では、パーティションのアスペクト比は制限されてもよい。例えば、パーティションのアスペクト比は、1:4より小さく(または4:1より大きく)なくてもよい。そのため、4:1の垂直対水平アスペクト比を有する垂直ストリップパーティションは、各々が2:1の垂直対水平アスペクト比を有する上下のパーティションに垂直にさらに二分割され得るのみである。
【0097】
さらにいくつかの他の例では、図13に示されたように、ベースブロックまたは任意の中間ブロックを分割するために、三分割方式が使用されてもよい。三元パターンは、図13の1302に示されたように垂直に、または図13の1304に示されたように水平に実装されてもよい。図13の例示的な分割比は、垂直または水平のいずれかで1:2:1として示されているが、他の比が事前定義されてもよい。いくつかの実装形態では、2つ以上の異なる比が事前定義されてもよい。そのような三分木分割が1つの連続するパーティション内のブロック中心に位置するオブジェクトを捕捉することが可能であるが、四分木および二分木が常にブロック中心に沿って分割しており、したがって、オブジェクトを別々のパーティションに分割するという点で、そのような三分割方式は四分木または二分割構造を補完するために使用されてもよい。いくつかの実装形態では、例示的な三分木のパーティションの幅および高さは、さらなる変換を回避するために常に2の累乗である。
【0098】
上記の分割方式は、異なる分割レベルにおいて任意の方式で組み合わされてもよい。一例として、上述された四分木および二分割方式は、ベースブロックを四分木-二分木(QTBT)構造に分割するために組み合わされてもよい。そのような方式では、ベースブロックまたは中間ブロック/パーティションは、指定された場合、事前定義された条件のセットに従う、四分木分割または二分割のいずれかであってもよい。特定の例が図14に示されている。図14の例では、ベースブロックは、1402、1404、1406、および1408によって示されたように、最初に4つのパーティションに四分木分割される。その後、結果として得られたパーティションの各々は、(1408などの)4つのさらなるパーティションに四分木分割されるか、または次のレベルで(例えば両方とも対称である1402もしくは1406などの水平もしくは垂直のいずれかの)2つのさらなるパーティションに二分割されるか、または(1404などの)分割されないかのいずれかである。二分割または四分木分割は、1410の全体的な例示的な分割パターンおよび1420の対応するツリー構造/表現によって示されたように、正方形のパーティションに対して再帰的に可能にされてもよく、実線は四分木分割を表し、破線は二分割を表す。二分割が水平か垂直かを示すために、二分割ノード(非リーフバイナリパーティション)ごとにフラグが使用されてもよい。例えば、1410の分割構造と一致する1420に示されたように、フラグ「0」は水平二分割を表すことができ、フラグ「1」は垂直二分割を表すことができる。四分木分割パーティションの場合、四分木分割は常にブロックまたはパーティションを水平と垂直の両方に分割して、等しいサイズの4つのサブブロック/パーティションを生成するので、分割タイプを指定する必要はない。いくつかの実装形態では、フラグ「1」は水平二分割を表すことができ、フラグ「0」は垂直二分割を表すことができる。
【0099】
QTBTのいくつかの例示的な実装形態では、四分木および二分割ルールセットは、以下の事前定義されたパラメータおよびそれらに関連付けられた対応する関数によって表されてもよい。
-CTU size:四分木のルートノードサイズ(ベースブロックのサイズ)
-MinQTSize:最小許容四分木リーフノードサイズ
-MaxBTSize:最大許容二分木ルートノードサイズ
-MaxBTDepth:最大許容二分木深度
-MinBTSize:最小許容二分木リーフノードサイズ
QTBT分割構造のいくつかの例示的な実装形態では、CTU sizeは、(例示的な彩度サブサンプリングが考慮され使用されるときに)彩度サンプルの2つの対応する64×64ブロックを有する128×128輝度サンプルとして設定されてもよく、MinQTSizeは16×16として設定されてもよく、MaxBTSizeは64×64として設定されてもよく、(幅および高さの両方について)MinBTSizeは4×4として設定されてもよく、MaxBTDepthは4として設定されてもよい。四分木分割は、四分木リーフノードを生成するために、最初にCTUに適用されてもよい。四分木リーフノードは、16×16のその最小許容サイズ(すなわち、MinQTSize)から128×128(すなわち、CTU size)までのサイズを有することができる。ノードが128×128である場合、サイズがMaxBTSize(すなわち、64×64)を超えるので、二分木によって最初に分割されることはない。そうでない場合、MaxBTSizeを超えないノードは、二分木によって分割される可能性がある。図14の例では、ベースブロックは128×128である。ベースブロックは、事前定義されたルールセットに従って、四分木分割のみが可能である。ベースブロックは0の分割深度を有する。結果として得られた4つのパーティションの各々は、MaxBTSizeを超えない64×64であり、レベル1でさらに四分木分割または二分木分割されてもよい。プロセスは続く。二分木深度がMaxBTDepth(すなわち、4)に達すると、それ以上の分割は考慮されなくてもよい。二分木ノードの幅がMinBTSize(すなわち、4)に等しいとき、それ以上の水平分割は考慮されなくてもよい。同様に、二分木ノードの高さがMinBTSizeに等しいとき、それ以上の垂直分割は考慮されない。
【0100】
いくつかの例示的な実装形態では、上記のQTBT方式は、輝度および彩度が同じQTBT構造または別々のQTBT構造を有するための柔軟性をサポートするように構成されてもよい。例えば、PスライスおよびBスライスの場合、1つのCTU内の輝度CTBおよび彩度CTBは同じQTBT構造を共有することができる。しかしながら、Iスライスの場合、輝度CTBはQTBT構造によってCBに分割されてもよく、彩度CTBは別のQTBT構造によって彩度CBに分割されてもよい。これは、CUがIスライス内の異なる色チャネルを参照するために使用されてもよく、例えば、Iスライスが、輝度成分のコーディングブロックまたは2つの彩度成分のコーディングブロックから構成されてもよく、PスライスまたはBスライス内のCUが、3つの色成分すべてのコーディングブロックから構成されてもよいことを意味する。
【0101】
いくつかの他の実装形態では、QTBT方式は、上述された三元方式で補完されてもよい。そのような実装形態は、マルチタイプツリー(MTT)構造と呼ばれる場合がある。例えば、ノードの二分割に加えて、図13の三分割パターンのうちの1つが選択されてもよい。いくつかの実装形態では、正方形ノードのみが三分割を受けることができる。三分割が水平であるか垂直であるかを示すために、追加のフラグが使用されてもよい。
【0102】
QTBT実装形態および三分割によって補完されたQTBT実装形態などの2レベルツリーまたはマルチレベルツリーの設計は、主に複雑性の低減によって動機付けられてもよい。理論的には、ツリーをトラバースする複雑性はTDであり、ここで、Tは分割タイプの数を表し、Dはツリーの深度である。深度(D)を低減しながらマルチタイプ(T)を使用することによって、トレードオフが行われてもよい。
【0103】
いくつかの実装形態では、CBはさらに分割されてもよい。例えば、CBは、コーディングプロセスおよび復号プロセス中のイントラフレーム予測またはインターフレーム予測の目的で、複数の予測ブロック(PB)にさらに分割されてもよい。言い換えれば、CBは異なるサブパーティションにさらに分割されてもよく、そこで個々の予測決定/構成が行われてもよい。並行して、CBは、ビデオデータの変換または逆変換が実行されるレベルを記述する目的で、複数の変換ブロック(TB)にさらに分割されてもよい。CBのPBおよびTBへの分割方式は、同じであってもなくてもよい。例えば、各分割方式は、例えば、ビデオデータの様々な特性に基づいて独自の手順を使用して実行されてもよい。PBおよびTBの分割方式は、いくつかの例示的な実装形態では独立していてもよい。PBおよびTBの分割方式および境界は、いくつかの他の例示的な実装形態では相関されていてもよい。いくつかの実装形態では、例えば、TBは、PB分割後に分割されてもよく、詳細には、各PBは、コーディングブロックの分割の後に続いて決定された後に、次いで1つまたは複数のTBにさらに分割されてもよい。例えば、いくつかの実装形態では、PBは、1つ、2つ、4つ、または他の数のTBに分割されてもよい。
【0104】
いくつかの実装形態では、ベースブロックをコーディングブロックに分割し、さらに予測ブロックおよび/または変換ブロックに分割するために、輝度チャネルおよび彩度チャネルは異なって処理されてもよい。例えば、いくつかの実装形態では、コーディングブロックの予測ブロックおよび/または変換ブロックへの分割は、輝度チャネルに対して許容されてもよいが、コーディングブロックの予測ブロックおよび/または変換ブロックへのそのような分割は、彩度チャネルに対して許容されない場合がある。そのような実装形態では、したがって、輝度ブロックの変換および/または予測は、コーディングブロックレベルでのみ実行されてもよい。別の例では、輝度チャネルおよび彩度チャネルについての最小変換ブロックサイズは異なっていてもよく、例えば、輝度チャネル用のコーディングブロックは、彩度チャネルよりも小さい変換ブロックおよび/または予測ブロックに分割されることが許容されてもよい。さらに別の例では、コーディングブロックの変換ブロックおよび/または予測ブロックへの分割の最大深度は、輝度チャネルと彩度チャネルとの間で異なっていてもよく、例えば、輝度チャネル用のコーディングブロックは、彩度チャネルよりも深い変換ブロックおよび/または予測ブロックに分割されることが許容されてもよい。具体例では、輝度コーディングブロックは、最大2レベルだけ下がる再帰分割によって表すことができる複数のサイズの変換ブロックに分割されてもよく、正方形、2:1/1:2、および4:1/1:4などの変換ブロック形状、ならびに4×4から64×64までの変換ブロックサイズが許容されてもよい。しかしながら、彩度ブロックの場合、輝度ブロックに指定された可能な最大の変換ブロックのみが許容されてもよい。
【0105】
コーディングブロックをPBに分割するためのいくつかの例示的な実装形態では、PB分割の深度、形状、および/または他の特性は、PBがイントラコーディングされるかインターコーディングされるかに依存してもよい。
【0106】
コーディングブロック(または予測ブロック)の変換ブロックへの分割は、四分木分割および事前定義されたパターン分割を含むがそれらに限定されない様々な例示的な方式で、再帰的または非再帰的に、コーディングブロックまたは予測ブロックの境界での変換ブロックをさらに考慮して実施されてもよい。一般に、結果として得られた変換ブロックは、異なる分割レベルにあってもよく、同じサイズでなくてもよく、形状が正方形である必要がなくてもよい(例えば、それらはいくつかの許容されたサイズおよびアスペクト比を有する長方形であり得る)。図15図16、および図17に関して、さらなる例が以下でさらに詳細に記載される。
【0107】
しかしながら、いくつかの他の実装形態では、上記の分割方式のいずれかを介して取得されたCBは、予測および/または変換のための基本または最小のコーディングブロックとして使用されてもよい。言い換えれば、インター予測/イントラ予測を実行する目的で、かつ/または変換の目的で、これ以上の分割は実行されない。例えば、上記のQTBT方式から取得されたCBは、予測を実行するための単位としてそのまま使用されてもよい。具体的には、そのようなQTBT構造は、複数の分割タイプの概念を取り除く、すなわち、CU、PU、およびTUの分離を取り除き、上述されたように、CU/CB分割形状についてのさらなる柔軟性をサポートする。そのようなQTBTブロック構造では、CU/CBは正方形または長方形のいずれかの形状を有することができる。そのようなQTBTのリーフノードは、これ以上の分割なしに予測および変換処理のための単位として使用される。これは、CU、PU、およびTUがそのような例示的なQTBTコーディングブロック構造において同じブロックサイズを有することを意味する。
【0108】
上記の様々なCB分割方式、ならびに(PB/TB分割なしを含む)PBおよび/またはTBへのCBのさらなる分割は、任意の方式で組み合わされてもよい。以下の特定の実装態様は、非限定的な例として提供される。
【0109】
コーディングブロックおよび変換ブロックの分割の具体的で例示的な実装形態が以下に記載される。そのような例示的な実装形態では、ベースブロックは、再帰的四分木分割、または(図9および図10の分割パターンなどの)上述された事前定義された分割パターンを使用して、コーディングブロックに分割されてもよい。各レベルにおいて、特定のパーティションのさらなる四分木分割を続けるべきかどうかが、ローカルビデオデータ特性によって判定されてもよい。結果として得られたCBは、様々な四分木分割レベルにあり、様々なサイズのCBであってもよい。ピクチャエリアをインターピクチャ(時間)予測を使用してコード化するか、イントラピクチャ(空間)予測を使用してコード化するかの判断は、CBレベル(または、すべての3色チャネルの場合CUレベル)で行われてもよい。各CBは、事前定義されたPB分割タイプに従って、1つ、2つ、4つ、または他の数のPBにさらに分割されてもよい。1つのPB内部で、同じ予測プロセスが適用されてもよく、関連情報はPBベースでデコーダに送信されてもよい。PB分割タイプに基づいて予測プロセスを適用することによって残差ブロックを取得した後、CBは、CB用のコーディングツリーと同様の別の四分木構造に従ってTBに分割することができる。この特定の実装形態では、CBまたはTBは、正方形の形状に限定される場合があるが、その必要はない。さらにこの特定の例では、PBは、インター予測では正方形または長方形の形状であってもよく、イントラ予測では正方形のみであってもよい。コーディングブロックは、例えば4つの正方形の形状のTBにさらに分割されてもよい。各TBは、(四分木分割を使用して)再帰的に、残差四分木(RQT)と呼ばれるより小さいTBにさらに分割されてもよい。
【0110】
ベースブロックを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のネストされたパターンは、四分木分割をさらに含んでもよい。
【0111】
1つのベースブロックに対する(四分木分割、二分割、および三分割のオプションを含む)ブロック分割のネストされたマルチタイプツリーコーディングブロック構造を有する四分木についての1つの具体例が図12に示されている。より詳細には、図12は、ベースブロック1200が4つの正方形パーティション1202、1204、1206、および1208に四分木分割されることを示している。さらなる分割のために図11のマルチタイプツリー構造および四分木をさらに使用する判断は、四分木分割されたパーティションの各々について行われる。図12の例では、パーティション1204はこれ以上分割されない。パーティション1202および1208は、各々別の四分木分割を採用する。パーティション1202では、第2レベルの四分木分割された左上、右上、左下、および右下のパーティションは、それぞれ、四分木、図11の水平二分割1104、非分割、および図11の水平三分割1108の第3レベルの分割を採用する。パーティション1208は別の四分木分割を採用し、第2レベルの四分木分割された左上、右上、左下、および右下のパーティションは、それぞれ、図11の垂直三分割1106、非分割、非分割、および図11の水平二分割1104の第3レベルの分割を採用する。1208の第3レベルの左上パーティションのサブパーティションのうちの2つは、それぞれ、図11の水平二分割1104および水平三分割1108に従ってさらに分割される。パーティション1206は、図11の垂直二分割1102の後に続く、2つのパーティションへの第2レベルの分割パターンを採用し、2つのパーティションは図11の水平三分割1108および垂直二分割1102に従って第3レベルでさらに分割される。図11の水平二分割1104に従って、それらのうちの1つに第4レベルの分割がさらに適用される。
【0112】
上記の具体例では、最大輝度変換サイズは64×64であってもよく、サポートされる最大彩度変換サイズを、輝度とは異なる、例えば32×32であり得る。図12の上記の例示的なCBが、一般に、より小さいPBおよび/またはTBにこれ以上分割されない場合でも、輝度コーディングブロックまたは彩度コーディングブロックの幅または高さが最大変換幅または最大変換高さよりも大きいとき、輝度コーディングブロックまたは彩度コーディングブロックは、水平方向および/または垂直方向の変換サイズ制限を満たすように、その方向に自動的に分割されてもよい。
【0113】
上記のベースブロックのCBへの分割についての具体例では、上述されたように、コーディングツリー方式は、輝度および彩度が別個のブロックツリー構造を有するための能力をサポートすることができる。例えば、PスライスおよびBスライスの場合、1つのCTU内の輝度CTBおよび彩度CTBは、同じコーディングツリー構造を共有することができる。Iスライスの場合、例えば、輝度および彩度は、別個のコーディングブロックツリー構造を有してもよい。別個のブロックツリー構造が適用されるとき、輝度CTBは1つのコーディングツリー構造によって輝度CBに分割されてもよく、彩度CTBは別のコーディングツリー構造によって彩度CBに分割される。これは、Iスライス内のCUが輝度成分のコーディングブロックまたは2つの彩度成分のコーディングブロックから構成されてもよく、PスライスまたはBスライス内のCUが常に、ビデオがモノクロでない限り3つの色成分すべてのコーディングブロックから構成されることを意味する。
【0114】
コーディングブロックが複数の変換ブロックにさらに分割されるとき、その中の変換ブロックは、様々な順序または走査方式に従ってビットストリーム内で順序付けされてもよい。コーディングブロックまたは予測ブロックを変換ブロックに分割するための例示的な実装形態、および変換ブロックのコーディング順序が、以下でさらに詳細に記載される。いくつかの例示的な実装形態では、上述されたように、変換分割は、例えば、4×4から64×64までの範囲の変換ブロックサイズを有する、複数の形状、例えば、1:1(正方形)、1:2/2:1、および1:4/4:1の変換ブロックをサポートすることができる。いくつかの実装形態では、コーディングブロックが64×64より小さいか等しい場合、変換ブロック分割は、彩度ブロックの場合、変換ブロックサイズがコーディングブロックサイズと同一であるように、輝度成分にのみ適用されてもよい。そうではなく、コーディングブロックの幅または高さが64より大きい場合、輝度コーディングブロックと彩度コーディングブロックの両方は、それぞれ、min(W,64)×min(H,64)およびmin(W,32)×min(H,32)の倍数の変換ブロックに暗黙的に分割されてもよい。
【0115】
変換ブロック分割のいくつかの例示的な実装形態では、イントラコード化ブロックとインターコード化ブロックの両方について、コーディングブロックは、事前定義された数のレベル(例えば、2レベル)までの分割深度を有する複数の変換ブロックにさらに分割されてもよい。変換ブロックの分割深度およびサイズは、関連してもよい。いくつかの例示的な実装形態の場合、現在の深度の変換サイズから次の深度の変換サイズへのマッピングが以下で表1に示されている。
【0116】
【表1】
【0117】
表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サブ変換ブロックを作成することができる。
【0118】
いくつかの例示的な実装形態では、イントラコード化ブロックの輝度成分の場合、変換ブロック分割に関してさらなる制限が加えられてもよい。例えば、変換分割のレベルごとに、すべてのサブ変換ブロックは、等しいサイズを有するように制限されてもよい。例えば、32×16のコーディングブロックの場合、レベル1の変換分割は、2つの16×16のサブ変換ブロックを作成し、レベル2の変換分割は、8つの8×8のサブ変換ブロックを作成する。言い換えれば、変換ユニットを等しいサイズに保つために、すべての第1レベルのサブブロックに第2レベルの分割が適用されなければならない。表1に従ってイントラコード化された正方形ブロックに対する変換ブロック分割の一例が、矢印によって示されたコーディング順序とともに図15に示されている。具体的には、1502は正方形のコーディングブロックを示す。表1による4つの等しいサイズの変換ブロックへの第1レベルの分割が、矢印によって示されたコーディング順序とともに1504に示されている。表1によるすべての第1レベルの等しいサイズのブロックの16個の等しいサイズの変換ブロックへの第2レベルの分割が、矢印によって示されたコーディング順序とともに1506に示されている。
【0119】
いくつかの例示的な実装形態では、インターコード化ブロックの輝度成分の場合、イントラコーディングに対する上記の制限が適用されなくてもよい。例えば、第1レベルの変換分割の後に、サブ変換ブロックのいずれか1つが、もう1つのレベルで独立してさらに分割されてもよい。したがって、結果として得られた変換ブロックは、同じサイズのブロックであってもなくてもよい。インターコード化ブロックのそれらのコーディング順序による変換ブロックへの例示的分割が図16に示されている。図16の例では、インターコード化ブロック1602は、表1に従って2つのレベルで変換ブロックに分割される。第1レベルで、インターコード化ブロックは、等しいサイズの4つの変換ブロックに分割される。次いで、4つの変換ブロックのうちの(それらのすべてではない)1つのみが4つのサブ変換ブロックにさらに分割され、1604によって示されたように、2つの異なるサイズを有する合計7つの変換ブロックがもたらされる。これらの7つの変換ブロックの例示的なコーディング順序が、図16の1604に矢印によって示されている。
【0120】
いくつかの例示的な実装形態では、彩度成分の場合、変換ブロックに対する何らかのさらなる制限が加えられてもよい。例えば、彩度成分の場合、変換ブロックサイズは、コーディングブロックサイズと同じ大きさであり得るが、事前定義されたサイズ、例えば8×8より小さくすることはできない。
【0121】
いくつかの他の例示的な実装形態では、幅(W)または高さ(H)のいずれかが64より大きいコーディングブロックの場合、輝度コーディングブロックと彩度コーディングブロックの両方は、それぞれ、min(W,64)×min(H,64)およびmin(W,32)×min(H,32)の倍数の変換ユニットに暗黙的に分割されてもよい。ここで、本開示では、「min(a,b)」は、aとbとの間で小さい方の値を返すことができる。
【0122】
図17は、コーディングブロックまたは予測ブロックを変換ブロックに分割するための別の代替の例示的な方式をさらに示す。図17に示されたように、再帰変換分割を使用する代わりに、コーディングブロックの変換タイプに従って、事前定義された分割タイプのセットがコーディングブロックに適用されてもよい。図17に示された特定の例では、6つの例示的な分割タイプのうちの1つが、コーディングブロックを様々な数の変換ブロックに分割するために適用されてもよい。変換ブロック分割を生成するそのような方式は、コーディングブロックまたは予測ブロックのいずれかに適用されてもよい。
【0123】
より詳細には、図17の分割方式は、任意の所与の変換タイプ(変換タイプは、例えば、ADSTなどのプライマリ変換のタイプを指す)に対して最大6つの例示的な分割タイプを提供する。この方式では、すべてのコーディングブロックまたは予測ブロックは、例えば、レート歪みコストに基づいて変換分割タイプが割り当てられてもよい。一例では、コーディングブロックまたは予測ブロックに割り当てられる変換分割タイプは、コーディングブロックまたは予測ブロックの変換タイプに基づいて決定されてもよい。図17に例示された6つの変換分割タイプによって示されたように、特定の変換分割タイプが、変換ブロックの分割サイズおよびパターンに対応することができる。様々な変換タイプと様々な分割タイプとの間の対応関係が事前定義されてもよい。レート歪みコストに基づいてコーディングブロックまたは予測ブロックに割り当てられ得る変換分割タイプを大文字のラベルが示す一例が以下に示されている。
【0124】
・PARTITION_NONE:ブロックサイズに等しい変換サイズを割り当てる。
【0125】
・PARTITION_SPLIT:ブロックサイズの1/2の幅およびブロックサイズの1/2の高さの変換サイズを割り当てる。
【0126】
・PARTITION_HORZ:ブロックサイズと同じ幅およびブロックサイズの1/2の高さの変換サイズを割り当てる。
【0127】
・PARTITION_VERT:ブロックサイズの1/2の幅およびブロックサイズと同じ高さの変換サイズを割り当てる。
【0128】
・PARTITION_HORZ4:ブロックサイズと同じ幅およびブロックサイズの1/4の高さの変換サイズを割り当てる。
【0129】
・PARTITION_VERT4:ブロックサイズの1/4の幅およびブロックサイズと同じ高さの変換サイズを割り当てる。
【0130】
上記の例では、図17に示された変換分割タイプは、すべて分割された変換ブロックについての均一な変換サイズを含む。これは限定ではなく単なる例である。いくつかの他の実装形態では、特定の分割タイプ(またはパターン)における分割された変換ブロックに混合変換ブロックサイズが使用されてもよい。
【0131】
上記の区分方式のいずれかから取得されたPB(または、予測ブロックにこれ以上分割されないときはPBとも呼ばれるCB)は、次いで、イントラ予測またはインター予測のいずれかを介してコード化するための個々のブロックになることができる。現在PBに対するインター予測の場合、現在ブロックと予測ブロックとの間の残差が生成され、コード化され、コード化ビットストリームに含まれてもよい。
【0132】
ブロック/ユニットをコード化するための特定のタイプのシグナリングのいくつかの例示的な実装形態に目を向けると、イントラコーディングユニットおよびインターコーディングユニットごとに、フラグ、すなわちskip_txfmフラグは、表2-4の例示的な構文に示され、ビットストリームからこれらのフラグを取り出すためのread_skip()関数によって表されるように、コード化ビットストリーム内でシグナリングされてもよい。このフラグは、変換係数が現在コード化ユニット内ですべてゼロであるかどうかを示すことができる。いくつかの例示的な実装形態では、このフラグが例えば値1でシグナリングされた場合、別の変換係数関連構文、例えばEOB(End of Block)は、コーディングユニット内の色コーディングブロックのいずれに対してもシグナリングされる必要はなく、ゼロ変換係数ブロックに対して事前定義され、それに関連付けられた値またはデータ構造として導出することができる。インターコーディングブロックの場合、表2-4の例によって示されたように、このフラグは、様々な理由でコーディングユニットがスキップされ得ることを示すskip_modeフラグの後にシグナリングされてもよい。skip_modeが真であるとき、コーディングユニットはスキップされるべきであり、skip_txfmフラグをシグナリングする必要はなく、skip_txfmフラグは1と推測される。そうではなく、skip_modeが偽である場合、コーディングユニットに関するさらなる情報がビットストリームに含まれ、skip_txfmフラグは、コーディングユニットがすべてゼロであるか否かを示すためにさらにシグナリングされる。
【0133】
【表2】
【0134】
【表3】
【0135】
【表4】
【0136】
以下の例示的な実装形態では、彩度チャネルという用語は、概して、CbとCrの両方の色成分(もしくはチャネル)、またはUとVの両方の色成分(もしくはチャネル)を指すことができる。輝度チャネルという用語は、輝度成分またはY成分を含んでもよい。輝度成分またはチャネルは、輝度色成分またはチャネルと呼ばれる場合がある。Y、U、およびVは、3つの色成分を表記するために以下で使用される。さらに、「コード化ブロック」および「コーディング」ブロックという用語は、コード化されるべきブロックまたはすでにコード化されたブロックのいずれかを意味するために交換可能に使用される。それらは、3つの色成分のうちのいずれかのブロックであってもよい。3つの対応する色コード化/コーディングブロックは、コード化/コーディングユニット用であってもよい。
【0137】
各色成分における残差の変換係数のコーディングおよび復号(エントロピーコーディング)に目を向けると、変換ブロックごとに、変換係数コーディングは、スキップサインのシグナリングから開始することができ、スキップサインが0である(非ゼロ係数が存在することを示す)ときに変換カーネルタイプおよびブロック終了(EOB)位置が後に続く。次いで、各係数値は、複数のレベルマップ(振幅マップ)および符号にマッピングされる。
【0138】
EOB位置がコード化された後、下位レベルマップおよび中位レベルマップは逆の走査順序でコード化されてもよく、前者は係数の大きさが下位レベル内(例えば、0と2との間)にあるかどうかを示し、後者は範囲が中位レベル内(例えば、3と14との間)にあるかどうかを示す。次のステップは、例えば、Exp-Golombコードにより、係数の符号、ならびに高位レベル(例えば、14)より大きい係数の残差値を順方向走査順序でコード化する。
【0139】
コンテキストモデリングの使用に関して、下位レベルのマップコーディングは、変換のサイズおよび方向、ならびに最大5つの隣接係数情報を組み込むことができる。一方、中位レベルのマップコーディングは、隣接係数の数がより小さい数(例えば、2)に減少することを除き、低位レベルの振幅コーディングと同様の手法に従うことができる。残差レベル用の例示的なExp-GolombコードならびにAC係数の符号は、コンテキストモデルなしにコード化され、DC係数の符号は、その隣接する変換ブロックのdc符号を使用してコード化される。
【0140】
いくつかの例示的な実装形態では、彩度残差は一緒にコード化されてもよい。そのようなコーディング方式は、彩度チャネル間の何らかの統計的な相関関係に基づいてもよい。例えば、多くの場合、CrおよびCbの彩度係数は、振幅が類似し、符号が反対であってもよく、したがって、例えば、変換係数がシグナリングされる変換ブロックレベルは、小さい色歪みを導入するだけでコーディング効率を改善するために結合符号化されてもよい。結合彩度コーディングモードの使用(起動)は、例えば、結合彩度コーディングフラグ(例えば、TUレベルフラグtu_joint_cbcr_residual_flag)によって示されてもよく、選択された結合モードは、彩度コード化/コーディングブロックフラグ(CBF)によって暗黙的に示されてもよい。
【0141】
具体的には、TU(変換ブロック)用の彩度CBFのいずれかまたは両方が1に等しい場合、フラグtu_joint_cbcr_residual_flagが存在してもよい。PPSおよびスライスヘッダ内で、彩度量子化パラメータ(QP)オフセット値は、通常の彩度残差コーディングモードについてシグナリングされる彩度QPオフセット値と区別するために、結合彩度残差コーディングモードについてシグナリングされてもよい。これらの彩度QPオフセット値は、結合彩度残差コーディングモードを使用してコード化されたそれらのブロックについての彩度QP値を導出するために使用されてもよい。対応する結合彩度コーディングモード(表5のモード2)がTU内でアクティブであるとき、この彩度QPオフセットは、そのTUの量子化および復号中に適用された輝度由来の彩度QPに加算されてもよい。他のモード(表5のモード1および3)の場合、彩度QPは、従来のCbブロックまたはCrブロックの場合と同じ方法で導出されてもよい。送信された変換ブロックからの彩度残差(resCbおよびresCr)の復元プロセスが表5に描写されている。このモードが起動されると(モード2)、1つの単一の結合彩度残差ブロック(表5のresJointC[x][y])がシグナリングされてもよく、変換ブロックレベルではなく、tu_cbf_cb、tu_cbf_cr、および例えばスライスヘッダ内で指定された符号値であるCSignなどの情報を考慮して、Cb用の残差ブロック(resCb)およびCr用の残差ブロック(resCr)が導出されてもよい。いくつかの実装形態では、CSignはほとんどの時間-1であってもよい。表5において、値CSignは、スライスヘッダ内で指定され得る符号値(+1または-1)であり、resJointC[][]は送信された残差である。
【0142】
上述されたた3つの例示的な結合彩度コーディングモードは、イントラコード化されたCUにおいてのみサポートされてもよい。インターコード化されたCUでは、モード2のみがサポートされてもよい。したがって、インターコード化されたCUの場合、構文要素tu_joint_cbcr_residual_flagは、両方の彩度CBFが1である場合にのみ存在する。
【0143】
【表5】
【0144】
上記の結合彩度コーディング方式は、コロケートされたCr変換ブロックとCb変換ブロックとの間の変換係数間の何らかの相関関係を想定する。これらの想定は、通常統計的であり、したがって、いくつかの状況では歪みをもたらす場合がある。詳細には、変換ブロック内の色係数のうちの1つが非ゼロであるが、別の色成分がゼロ係数を有するとき、結合彩度コーディング方式で行われた想定の一部は確かにオフになり、そのようなコーディングは、(彩度係数のうちの1つはいずれにせよゼロであるので)いずれのコード化ビットも保存しない。
【0145】
以下の様々な例示的な実装形態では、色成分のコロケートされた(周波数領域内でコロケートされた)変換係数間の何らかの相関関係を利用する係数レベル(すなわち、変換係数ごとの)成分間コーディング方式が記載される。そのような方式は、1つの色成分の係数がゼロであるが、別の色成分の対応する変換係数が非ゼロである変換ブロック(またはユニット)に特に有用である。逆量子化の前または後のいずれかの、ゼロおよび非ゼロの色係数のそれらのペアに対して、非ゼロの色係数は、(コーディングプロセスにおける量子化の前には小さい値であるが、元々は非ゼロであり得る)他の色成分のゼロのコード化係数の元の小さい値を推定するために使用されてもよく、それにより、場合によっては、例えば、符号化中の量子化プロセス内で失われたい何らかの情報が復元される。統計的に存在する色間相関関係のために、ゼロへの量子化中の何らかの失われた情報が復元されてもよい。そのような成分間コーディングは、(ゼロ係数の)著しいコーディングコストなしに、失われた情報をある程度復元する。
【0146】
詳細には、第1の色成分の係数符号値を利用して第2の色成分の係数符号をコード化する成分間係数符号コーディング方法が実施されてもよい。より具体的な一例では、Cb変換係数の符号値は、他のCr変換係数の符号をコード化するためのコンテキストとして使用されてもよい。そのような成分間コーディングは、係数ごとに、色成分の変換係数ペアに対して実施されてもよい。以下でさらに詳細に記載されるそのような実装形態および他の実装形態の基礎となる原理は、Cr成分およびCb成分に限定されない。それらは、3つの色成分のうちの任意の2つの間に適用可能である。この点において、輝度チャネルは色成分の1つと見なされる。
【0147】
いくつかの実装形態では、成分間係数符号コーディング方法は、第1の色成分の係数符号値を利用して第2の色成分の係数符号をコード化することを含んでもよい。非限定的な例では、Cb変換係数の符号値は、Cr変換係数の符号値をコード化するためのコンテキストとして使用されてもよい。
【0148】
いくつかの実装形態では、方法は、第1の色成分の変換係数のレベル値および/または符号値を使用して、第2の色成分の変換係数レベル値に加算されるオフセット値を導出することを含んでもよい。この方法は、成分間レベル復元(CCLR)と呼ばれる。
【0149】
以下の例示的な実装形態は、別々に使用されてもよく、任意の順序で組み合わされてもよい。ブロックサイズという用語は、ブロックの幅もしくは高さ、または幅および高さの最大値、または幅および高さの最小値、または領域のサイズ(幅*高さ)、またはアスペクト比(幅:高さもしくは高さ:幅)のいずれかを指すことができる。「レベル値」または「レベル」という用語は、変換係数値の大きさを指すことができる。
【0150】
いくつかの実装形態に関連付けられたいくつかの争点/問題があり得る。例えば、より効率的な係数符号コーディングのための成分間係数符号コーディング方法では、いくつかの実装形態における成分間係数コーディング方法は、符号コーディングがゼロ係数にとって必要ないので、同じ周波数に位置する複数の色成分用の非ゼロ係数のペアが存在する場合に限定されてもよい。
【0151】
Cb変換係数およびCr変換係数の1つのみが非ゼロであるいくつかの実装形態では、方法は、第1の色成分の変換係数のレベル値および/または符号値を使用して、第2の色成分の変換係数レベル値に加算されるオフセット値を導出することができる。本開示における様々な実装形態は、オフセット値を導出するための方法を記載する。
【0152】
図18は、成分間変換係数レベル復元においてオフセット値を導出するための上記の実装形態の基礎となる原理に従う例示的な方法のフローチャート1800を示す。例示的な復号方法フローは1801において始まり、以下のS1810:コード化ビデオビットストリームを受信するステップ、S1820:コード化ビデオビットストリームから、現在のビデオブロックについての第1の色成分の第1の変換係数を抽出するステップ、S1830:現在のビデオブロックについての第2の色成分の第2の変換係数を決定するステップ、S1840:以下の量子化ステップサイズ、または第1の変換係数のうちの少なくとも1つに基づいてオフセット値を導出するステップ、S1850:第2の色成分用の修正された第2の変換係数を生成するために、第2の変換係数にオフセット値を加算するステップ、ならびに/またはS1860:第1の色成分の第1の変換係数および第2の色成分の修正された第2の変換係数に基づいて現在のビデオブロックを復号するステップのうちの一部またはすべてを含んでもよい。例示的な方法はS1899において停止する。
【0153】
いくつかの実装形態では、図18のS1840は、量子化ステップサイズに基づいてオフセット値を導出するステップを含んでもよく、オフセット値の大きさは量子化ステップサイズに単調に依存する。第2の色成分の変換係数用のオフセット値は、量子化ステップサイズに基づいて導出されてもよい。
【0154】
非限定的な例では、量子化ステップサイズは、第1の色成分および第2の色成分(例えば、CrおよびCb)について同じであってもよい。別の非限定的な例では、量子化ステップサイズは、第1の色成分および第2の色成分(例えば、1つの彩度チャネルおよび1つの輝度チャネル)について異なっていてもよく、第2の色成分の量子化ステップサイズは、第2の色成分用のオフセット値を決定するために選択されてもよい。
【0155】
いくつかの実装形態では、オフセット値の大きさは、量子化ステップサイズとの単調な関係を有し、量子化ステップサイズは、オフセット値を導出するための単調関数によって表されてもよい。一例では、オフセット値の大きさは、量子化ステップサイズに対する線形関係を有する(例えば、offset=k*quantization_step_size+offset_zero)。別の例では、オフセット値の大きさは、量子化ステップサイズに対する多項式関係を有する。いくつかの実装形態では、関係(または関係を表す関数)は、第1の変換係数の符号または大きさに基づいて選択されてもよい。
【0156】
いくつかの実装形態では、図18のS1840は、量子化ステップサイズおよび第1の変換係数の符号または大きさの値に基づいてオフセット値を導出するステップを含んでもよい。
【0157】
いくつかの実装形態では、図18のS1840は、直流(DC)係数に対応するオフセット値に応答して、DC係数に対応する量子化ステップサイズに基づいてオフセット値を導出するステップ、および/または交流(AC)係数に対応するオフセット値に応答して、AC係数に対応する量子化ステップサイズに基づいてオフセット値を導出するステップを含んでもよい。非限定的な例では、量子化ステップサイズはDC係数およびAC係数について異なっていてもよく、DC係数およびAC係数用のオフセット値は、それぞれ、DC係数およびAC係数用の量子化ステップサイズに基づいて導出されてもよい。単調な関係が使用されるとき、量子化ステップサイズが大きいほど、大きいオフセット値が導出される。
【0158】
いくつかの実装形態では、図18のS1840は、量子化ステップサイズに基づいて、ルックアップテーブル(LUT)内のインデックスをマッピングするステップと、インデックスによって示されたLUT内の要素を前記オフセット値として取得するステップとを含んでもよい。
【0159】
いくつかの実装形態では、LUTは、以下の固定テーブル、コード化ビデオビットストリーム内でシグナリングされる動的テーブル、および/またはコード化ビデオビットストリームに従って導出される動的テーブルのうちの1つを含む。
【0160】
非限定的な例では、オフセット値の大きさはルックアップテーブル(LUT)から取得され、量子化ステップサイズはルックアップテーブル内のインデックスにマッピングされ、関連するオフセットが使用される。いくつかの状況下では、LUTはハードコーディングされた固定テーブルであってもよく、いくつかの他の状況下では、LUTは明示的にシグナリングされる動的テーブルであってもよく、かつ/またはいくつかの他の状況下では、LUTはコード化された情報を使用して暗黙的に導出される動的テーブルであってもよい。
【0161】
いくつかの実装形態では、LUTは、第1の変換係数の符号または大きさに基づいて選択される。別個の単調関数および/またはLUTは、第1の色成分の変換係数の符号値および/または大きさに応じて使用される。
【0162】
いくつかの実装形態では、LUTは、以下のビデオパラメータセット(VPS)、ピクチャパラメータセット(PPS)、シーケンスパラメータセット(SPS)、ピクチャヘッダ、フレームヘッダ、スライスヘッダ、タイルヘッダ、またはコーディングツリーユニット(CTU)ヘッダのうちの少なくとも1つを含む高レベル構文から取得される。
【0163】
いくつかの実装形態では、図18のS1840は、コード化ビデオビットストリームのビット深度および量子化ステップサイズに基づいてオフセット値を導出するステップを含んでもよく、コード化ビデオビットストリームのビット深度は、8ビット、10ビット、または12ビットのうちの1つを含み、オフセット値はコード化ビデオビットストリームのビット深度に単調に依存する。例えば、コード化ビデオビットストリームのビット深度が大きいほど、大きいオフセット値が考案される。
【0164】
本開示の実施形態および実装形態では、所望により、任意のステップおよび/または動作は、任意の量または順序で組み合わされるか、または配置されてもよい。ステップおよび/または動作のうちの2つ以上が並列に実行されてもよい。本開示の実施形態および実装形態は、別々に使用されてもよく、任意の順序で組み合わされてもよい。さらに、方法(または実施形態)の各々、エンコーダ、およびデコーダは、処理回路(例えば、1つもしくは複数のプロセッサまたは1つもしくは複数の集積回路)によって実装されてもよい。一例では、1つまたは複数のプロセッサは、非一時的コンピュータ可読媒体に記憶されたプログラムを実行する。本開示の実施形態は、輝度ブロックまたは彩度ブロックに適用されてもよい。ブロックという用語は、予測ブロック、コーディングブロック、またはコーディングユニット、すなわちCUとして解釈されてもよい。ここでのブロックという用語はまた、変換ブロックを指すために使用されてもよい。以下の項目では、ブロックサイズと言うとき、それは、ブロックの幅もしくは高さ、または幅および高さの最大値、または幅および高さの最小値、または領域のサイズ(幅*高さ)、またはブロックのアスペクト比(幅:高さもしくは高さ:幅)のいずれかを指すことができる。
【0165】
上述された技法は、コンピュータ可読命令を使用するコンピュータソフトウェアとして実装され、1つまたは複数のコンピュータ可読媒体に物理的に記憶することができる。例えば、図19は、開示された主題の特定の実施形態を実装するのに適したコンピュータシステム(1900)を示す。
【0166】
コンピュータソフトウェアは、1つまたは複数のコンピュータ中央処理装置(CPU)、グラフィックス処理装置(GPU)などによる、直接、または解釈、マイクロコード実行などを介して実行することができる命令を含むコードを作成するために、アセンブル、コンパイル、リンク、または同様のメカニズムを受けることができる任意の適切な機械語またはコンピュータ言語を使用してコード化することができる。
【0167】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、モノのインターネットデバイスなどを含む、様々なタイプのコンピュータまたはその構成要素上で実行することができる。
【0168】
コンピュータシステム(1900)に関して図19に示された構成要素は、本質的に例示的なものであり、本開示の実施形態を実装するコンピュータソフトウェアの使用または機能の範囲に関するいかなる制限も示唆するものではない。構成要素の構成は、コンピュータシステム(1900)の例示的な実施形態に示された構成要素のいずれか1つまたは組合せに関するいかなる依存性または要件も有すると解釈されるべきでない。
【0169】
コンピュータシステム(1900)は、特定のヒューマンインターフェース入力デバイスを含んでもよい。そのようなヒューマンインターフェース入力デバイスは、例えば、(キーストローク、スワイプ、データグローブの動きなどの)触覚入力、(音声、拍手などの)オーディオ入力、(ジェスチャなどの)視覚入力、(描写されていない)嗅覚入力を介して、1人または複数の人間のユーザによる入力に応答することができる。ヒューマンインターフェースデバイスは、(音声、音楽、周囲の音などの)オーディオ、(走査画像、静止画カメラから取得された写真画像などの)画像、(2次元ビデオ、立体ビデオを含む3次元ビデオなどの)ビデオなどの、人間による意識的な入力に必ずしも直接関連しない特定の媒体を取り込むために使用することもできる。
【0170】
入力ヒューマンインターフェースデバイスには、キーボード(1901)、マウス(1902)、トラックパッド(1903)、タッチスクリーン(1910)、データグローブ(図示せず)、ジョイスティック(1905)、マイクロフォン(1906)、スキャナ(1907)、カメラ(1908)のうちの1つまたは複数が含まれてもよい(各々の1つのみが描写されている)。
【0171】
コンピュータシステム(1900)はまた、特定のヒューマンインターフェース出力デバイスを含んでもよい。そのようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音、光、および嗅覚/味覚を介して、1人または複数の人間のユーザの感覚を刺激している場合がある。そのようなヒューマンインターフェース出力デバイスには、触覚出力デバイス(例えば、タッチスクリーン(1910)、データグローブ(図示せず)、またはジョイスティック(1905)による触覚フィードバック、しかし入力デバイスとして機能しない触覚フィードバックデバイスが存在する可能性もある)、(スピーカ(1909)、ヘッドフォン(描写せず)などの)オーディオ出力デバイス、(CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含むスクリーン(1910)など、各々タッチスクリーン入力機能の有無にかかわらず、各々触覚フィードバック機能の有無にかかわらず、それらのうちのいくつかは、ステレオグラフィック出力、仮想現実眼鏡(描写せず)、ホログラフィックディスプレイおよびスモークタンク(描写せず)などの手段を介して2次元視覚出力または3次元以上の出力を出力することが可能な場合がある)視覚出力デバイス、ならびにプリンタ(描写せず)が含まれてもよい。
【0172】
コンピュータシステム(1900)は、CD/DVDまたは同様の媒体(1921)を有するCD/DVD ROM/RW(1920)を含む光学媒体、サムドライブ(1922)、リムーバブルハードドライブまたはソリッドステートドライブ(1923)、テープおよびフロッピーディスクなどのレガシー磁気媒体(描写せず)、セキュリティドングルなどの特殊なROM/ASIC/PLDベースのデバイス(描写せず)などの、人間がアクセス可能なストレージデバイスおよびそれらに関連する媒体を含むこともできる。
【0173】
当業者はまた、現在開示されている主題に関連して使用される「コンピュータ可読媒体」という用語が、伝送媒体、搬送波、または他の一時的な信号を包含しないことを理解するべきである。
【0174】
コンピュータシステム(1900)は、1つまたは複数の通信ネットワーク(1955)へのインターフェース(1954)を含むこともできる。ネットワークは、例えば、ワイヤレス、有線、光であり得る。ネットワークはさらに、ローカル、広域、メトロポリタン、車両および産業用、リアルタイム、遅延耐性などであり得る。ネットワークの例には、イーサネット、ワイヤレスLANなどのローカルエリアネットワーク、GSM、3G、4G、5G、LTEなどを含むセルラーネットワーク、ケーブルTV、衛星TV、および地上波ブロードキャストTVを含むTVの有線またはワイヤレスの広域デジタルネットワーク、CANbusを含む車両および産業用などが含まれる。特定のネットワークは、通常、(例えば、コンピュータシステム(1900)のUSBポートなどの)特定の汎用データポートまたは周辺バス(1949)に取り付けられた外部ネットワークインターフェースアダプタを必要とし、他のネットワークは、通常、以下に記載されるシステムバスに取り付けることによってコンピュータシステム(1900)のコアに統合される(例えば、PCコンピュータシステムへのイーサネットインターフェースまたはスマートフォンコンピュータシステムへのセルラーネットワークインターフェース)。これらのネットワークのいずれかを使用して、コンピュータシステム(1900)は他のエンティティと通信することができる。そのような通信は、単方向受信のみ(例えば、ブロードキャストTV)、単方向送信のみ(例えば、特定のCANbusデバイスへのCANbus)、または、例えば、ローカルもしくは広域のデジタルネットワークを使用する他のコンピュータシステムとの双方向であり得る。特定のプロトコルおよびプロトコルスタックは、上述されたこれらのネットワークおよびネットワークインターフェースの各々で使用することができる。
【0175】
前述のヒューマンインターフェースデバイス、人間がアクセス可能なストレージデバイス、およびネットワークインターフェースは、コンピュータシステム(1900)のコア(1940)に取り付けることができる。
【0176】
コア(1940)は、1つまたは複数の中央処理装置(CPU)(1941)、グラフィックス処理装置(GPU)(1942)、フィールドプログラマブルゲートエリア(FPGA)(1943)、特定のタスク用のハードウェアアクセラレータ(1944)、グラフィックスアダプタ(1950)などの形態の特殊なプログラマブル処理装置を含むことができる。これらのデバイスは、読取り専用メモリ(ROM)(1945)、ランダムアクセスメモリ(1946)、ユーザがアクセスできない内部ハードドライブ、SSDなどの内部大容量ストレージ(1947)とともに、システムバス(1948)を介して接続されてもよい。いくつかのコンピュータシステムでは、システムバス(1948)は、追加のCPU、GPUなどによる拡張を可能にするために、1つまたは複数の物理プラグの形態でアクセス可能であり得る。周辺機器は、コアのシステムバス(1948)に直接取り付けることも、周辺バス(1949)を介して取り付けることもできる。一例では、スクリーン(1910)は、グラフィックスアダプタ(1950)に接続することができる。周辺バス用のアーキテクチャには、PCI、USBなどが含まれる。
【0177】
CPU(1941)、GPU(1942)、FPGA(1943)、およびアクセラレータ(1944)は、組み合わせて、前述のコンピュータコードを構成することができる特定の命令を実行することができる。そのコンピュータコードは、ROM(1945)またはRAM(1946)に記憶することができる。移行データもRAM(1946)に記憶することができるが、永続データは、例えば、内部大容量ストレージ(1947)に記憶することができる。メモリデバイスのいずれかに対する高速の記憶および検索は、1つまたは複数のCPU(1941)、GPU(1942)、大容量ストレージ(1947)、ROM(1945)、RAM(1946)などと密接に関連付けることができるキャッシュメモリを使用して可能にすることができる。
【0178】
コンピュータ可読媒体は、様々なコンピュータ実装動作を実行するためのコンピュータコードをそこに有することができる。媒体およびコンピュータコードは、本開示の目的のために特別に設計および構築されたものであり得るか、またはそれらは、コンピュータソフトウェア技術のスキルを有する人々に周知かつ利用可能な種類であり得る。
【0179】
非限定的な例として、アーキテクチャを有するコンピュータシステム(1900)、具体的にはコア(1940)は、1つまたは複数の有形のコンピュータ可読媒体内に具現化されたソフトウェアを(CPU、GPU、FPGA、アクセラレータなどを含む)プロセッサが実行する結果としての機能を提供することができる。そのようなコンピュータ可読媒体は、上記で紹介されたユーザアクセス可能大容量ストレージ、ならびにコア内部大容量ストレージ(1947)またはROM(1945)などの非一時的な性質のコア(1940)の特定のストレージに関連付けられた媒体であり得る。本開示の様々な実施形態を実装するソフトウェアは、そのようなデバイスに記憶され、コア(1940)によって実行することができる。コンピュータ可読媒体は、特定のニーズに応じて、1つまたは複数のメモリデバイスまたはチップを含むことができる。ソフトウェアは、コア(1940)および具体的にはその中の(CPU、GPU、FPGAなどを含む)プロセッサに、RAM(1946)に記憶されたデータ構造を定義すること、およびソフトウェアによって定義されたプロセスに従ってそのようなデータ構造を修正することを含む、本明細書に記載された特定のプロセスまたは特定のプロセスの特定の部分を実行させることができる。加えて、または代替として、コンピュータシステムは、本明細書に記載された特定のプロセスまたは特定のプロセスの特定の部分を実行するために、ソフトウェアの代わりに、またはソフトウェアと一緒に動作することができる、回路(例えば、アクセラレータ(1944))内にハードワイヤリングされた、またはさもなければ具現化されたロジックの結果として、機能を提供することができる。必要に応じて、ソフトウェアへの参照はロジックを包含することができ、その逆も同様である。必要に応じて、コンピュータ可読媒体への参照は、実行のためのソフトウェアを記憶する(集積回路(IC)などの)回路、実行のためのロジックを具現化する回路、または両方を包含することができる。本開示は、ハードウェアとソフトウェアの任意の適切な組合せを包含する。
【0180】
本開示はいくつかの例示的な実施形態を記載しているが、本開示の範囲内に入る変更、置換、および様々な代替の均等物が存在する。したがって、当業者は、本明細書に明示的に図示または記載されていないが、本開示の原理を具現化し、したがって、その趣旨および範囲内にある多数のシステムおよび方法を考案できることが諒解されよう。
付記A:頭字語
JEM:共同探索モデル
VVC:多用途ビデオコーディング
BMS:ベンチマークセット
MV:動きベクトル
HEVC:高効率ビデオコーディング
SEI:補足拡張情報
VUI:ビデオユーザビリティ情報
GOP:ピクチャグループ
TU:変換ユニット
PU:予測ユニット
CTU:コーディングツリーユニット
CTB:コーディングツリーブロック
PB:予測ブロック
HRD:仮想参照デコーダ
SNR:信号対雑音比
CPU:中央処理装置
GPU:グラフィックス処理装置
CRT:陰極線管
LCD:液晶ディスプレイ
OLED:有機発光ダイオード
CD:コンパクトディスク
DVD:デジタルビデオディスク
ROM:読取り専用メモリ
RAM:ランダムアクセスメモリ
ASIC:特定用途向け集積回路
PLD:プログラマブル論理デバイス
LAN:ローカルエリアネットワーク
GSM:モバイル通信用グローバルシステム
LTE:ロングタームエボリューション
CANBus:コントローラエリアネットワークバス
USB:ユニバーサルシリアルバス
PCI:周辺構成要素相互接続
FPGA:フィールドプログラマブルゲートエリア
SSD:ソリッドステートドライブ
IC:集積回路
HDR:高ダイナミックレンジ
SDR:標準ダイナミックレンジ
JVET:共同ビデオ探索チーム
MPM:最確モード
WAIP:広角イントラ予測
CU:コーディングユニット
PU:予測ユニット
TU:変換ユニット
CTU:コーディングツリーユニット
PDPC:位置依存予測結合
ISP:イントラサブパーティション
SPS:シーケンスパラメータ設定
PPS:ピクチャパラメータセット
APS:適応パラメータセット
VPS:ビデオパラメータセット
DPS:復号パラメータセット
ALF:適応ループフィルタ
SAO:サンプル適応オフセット
CC-ALF:成分間適応ループフィルタ
CDEF:制約付き指向性強化フィルタ
CCSO:成分間サンプルオフセット
LSO:ローカルサンプルオフセット
LR:ループ復元フィルタ
AV1:AOMedia Video 1
AV2:AOMedia Video 2
MVD:動きベクトル差
CfL:輝度からの彩度
SDT:半分離ツリー
SDP:半分離分割
SST:半分離ツリー
SB:スーパーブロック
IBC(またはIntraBC):イントラブロックコピー
CDF:累積密度関数
SCC:スクリーンコンテンツコーディング
GBI:一般化双予測
BCW:CUレベル重みによる双予測
CIIP:結合されたイントラ-インター予測
POC:ピクチャ順序カウント
RPS:参照ピクチャセット
DPB:復号ピクチャバッファ
CBF:コード化ブロックフラグ
CCLR:成分間レベル復元
【符号の説明】
【0181】
101 サンプル
102 矢印
103 矢印
104 正方形ブロック
180 概略図
201 現在ブロック
202 周囲サンプル
203 周囲サンプル
204 周囲サンプル
205 周囲サンプル
206 周囲サンプル
300 通信システム
310 端末デバイス
320 端末デバイス
330 端末デバイス
340 端末デバイス
350 ネットワーク
400 通信システム
401 ビデオソース
402 ビデオピクチャのストリーム
403 ビデオエンコーダ
404 ビデオデータ
405 ストリーミングサーバ
406 クライアントサブシステム
407 ビデオデータのコピー
408 クライアントサブシステム
409 ビデオデータのコピー
410 ビデオデコーダ
411 ビデオピクチャの出力ストリーム
412 ディスプレイ
413 キャプチャサブシステム
420 電子デバイス
430 電子デバイス
501 チャネル
510 ビデオデコーダ
512 レンダリングデバイス
515 バッファメモリ
520 パーサー
521 シンボル
530 電子デバイス
531 受信機
551 スケーラ/逆変換ユニット
552 イントラピクチャ予測ユニット
553 動き補償予測ユニット
555 アグリゲータ
556 ループフィルタユニット
557 参照ピクチャメモリ
558 現在ピクチャバッファ
601 ビデオソース
603 ビデオエンコーダ
620 電子デバイス
630 ソースコーダ
632 コーディングエンジン
633 ローカルデコーダ
634 参照ピクチャメモリ
635 予測器
640 送信機
643 コード化ビデオシーケンス
645 エントロピーコーダ
650 コントローラ
660 通信チャネル
703 ビデオエンコーダ
721 汎用コントローラ
722 イントラエンコーダ
723 残差計算器
724 残差エンコーダ
725 エントロピーエンコーダ
726 スイッチ
728 残差デコーダ
730 インターエンコーダ
810 ビデオデコーダ
871 エントロピーデコーダ
872 イントラデコーダ
873 残差デコーダ
874 復元モジュール
880 インターデコーダ
902 分割オプションまたはパターン
904 分割オプションまたはパターン
906 分割オプションまたはパターン
908 分割オプションまたはパターン
1002 左T型パーティション
1004 上T型パーティション
1006 右T型パーティション
1008 下T型パーティション
1010 すべて正方形のパーティション
1102 垂直二分割(SPLIT_BT_VER)
1104 水平二分割(SPLIT_BT_HOR)
1106 垂直三分割(SPLIT_TT_VER)
1108 水平三分割(SPLIT_TT_HOR)
1200 ベースブロック
1202 正方形パーティション
1204 正方形パーティション
1206 正方形パーティション
1208 正方形パーティション
1302 三元パターン
1304 三元パターン
1402 パーティション
1404 パーティション
1406 パーティション
1408 パーティション
1410 分割パターン
1420 ツリー構造/表現
1502 正方形のコーディングブロック
1504 第1レベルの分割
1506 第2レベルの分割
1602 インターコード化ブロック
1604 変換ブロック
1800 フローチャート
1900 コンピュータシステム
1901 キーボード
1902 マウス
1903 トラックパッド
1905 ジョイスティック
1906 マイクロフォン
1907 スキャナ
1908 カメラ
1909 スピーカ
1910 タッチスクリーン
1920 CD/DVD ROM/RW
1921 CD/DVDまたは同様の媒体
1922 サムドライブ
1923 リムーバブルハードドライブまたはソリッドステートドライブ
1940 コア
1941 中央処理装置(CPU)
1942 グラフィックス処理装置(GPU)
1943 フィールドプログラマブルゲートエリア(FPGA)
1944 ハードウェアアクセラレータ
1945 読取り専用メモリ(ROM)
1946 ランダムアクセスメモリ(RAM)
1947 内部大容量ストレージ
1948 システムバス
1949 周辺バス
1950 グラフィックスアダプタ
1954 ネットワークインターフェース
1955 ネットワーク
図1A
図1B
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
【手続補正書】
【提出日】2023-06-12
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
ビデオビットストリームの現在のビデオブロックを復号するための方法であって、
命令を記憶するメモリおよび前記メモリと通信するプロセッサを備えるデバイスにより、コード化ビデオビットストリームを受信するステップと、
前記デバイスにより、前記コード化ビデオビットストリームから、現在のビデオブロックについての第1の色成分の第1の変換係数を抽出するステップと、
前記デバイスにより、前記現在のビデオブロックについての第2の色成分の第2の変換係数を決定するステップと、
前記デバイスにより、以下の量子化ステップサイズ、または前記第1の変換係数のうちの少なくとも1つに基づいてオフセット値を導出するステップと、
前記デバイスにより、前記第2の色成分用の修正された第2の変換係数を生成するために、前記第2の変換係数に前記オフセット値を加算するステップと、
前記デバイスにより、前記第1の色成分の前記第1の変換係数および前記第2の色成分の前記修正された第2の変換係数に基づいて前記現在のビデオブロックを復号するステップと
を含む、方法。
【請求項2】
前記オフセット値を導出する前記ステップが、
前記量子化ステップサイズに基づいて前記オフセット値を導出するステップであって、前記オフセット値の大きさが前記量子化ステップサイズに単調に依存する、ステップ
を含む、請求項1に記載の方法。
【請求項3】
前記オフセット値の前記大きさが、単調関数による前記量子化ステップサイズに依存し、
前記単調関数が、前記第1の変換係数の符号または大きさに基づいて選択される、
請求項2に記載の方法。
【請求項4】
前記オフセット値を導出する前記ステップが、
前記量子化ステップサイズおよび前記第1の変換係数の符号または大きさの値に基づいて前記オフセット値を導出するステップ
を含む、請求項1に記載の方法。
【請求項5】
前記オフセット値を導出する前記ステップが、
直流(DC)係数に対応する前記オフセット値に応答して、前記DC係数に対応する前記量子化ステップサイズに基づいて前記オフセット値を導出するステップと、
交流(AC)係数に対応する前記オフセット値に応答して、前記AC係数に対応する前記量子化ステップサイズに基づいて前記オフセット値を導出するステップと
を含む、請求項1に記載の方法。
【請求項6】
前記オフセット値を導出する前記ステップが、
前記量子化ステップサイズに基づいて、ルックアップテーブル(LUT)内のインデックスをマッピングするステップと、
前記インデックスによって示された前記LUT内の要素を前記オフセット値として取得するステップと
を含む、請求項1に記載の方法。
【請求項7】
前記LUTが、以下の
固定テーブル、
前記コード化ビデオビットストリーム内でシグナリングされる動的テーブル、または
前記コード化ビデオビットストリームに従って導出される動的テーブル
のうちの1つを含む、
請求項6に記載の方法。
【請求項8】
前記LUTが、前記第1の変換係数の符号または大きさに基づいて選択される、
請求項6に記載の方法。
【請求項9】
前記LUTが、以下のビデオパラメータセット(VPS)、ピクチャパラメータセット(PPS)、シーケンスパラメータセット(SPS)、ピクチャヘッダ、フレームヘッダ、スライスヘッダ、タイルヘッダ、またはコーディングツリーユニット(CTU)ヘッダのうちの少なくとも1つを含む高レベル構文から取得される、
請求項6に記載の方法。
【請求項10】
前記オフセット値を導出する前記ステップが、
前記コード化ビデオビットストリームのビット深度および前記量子化ステップサイズに基づいて前記オフセット値を導出するステップ
を含む、請求項1に記載の方法。
【請求項11】
前記コード化ビデオビットストリームの前記ビット深度が、8ビット、10ビット、または12ビットのうちの1つを含み、
前記オフセット値が前記コード化ビデオビットストリームの前記ビット深度に単調に依存する、
請求項10に記載の方法。
【請求項12】
ビデオビットストリームの現在のビデオブロックを復号するための装置であって、前記装置が、
命令を記憶するメモリと、
前記メモリと通信するプロセッサであって、前記プロセッサが前記命令を実行すると、前記プロセッサが、請求項1から11のいずれか一項に記載の方法を前記装置に実行させるように構成される、プロセッサと
を備える、装置。
【請求項13】
ロセッサに請求項1から11のいずれか一項を実行させるコンピュータプログラム
【国際調査報告】