(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-10-04
(54)【発明の名称】複合インターイントラ予測モードのための二次変換
(51)【国際特許分類】
H04N 19/12 20140101AFI20240927BHJP
H04N 19/157 20140101ALI20240927BHJP
H04N 19/176 20140101ALI20240927BHJP
H04N 19/503 20140101ALI20240927BHJP
H04N 19/593 20140101ALI20240927BHJP
【FI】
H04N19/12
H04N19/157
H04N19/176
H04N19/503
H04N19/593
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023547680
(86)(22)【出願日】2022-09-29
(85)【翻訳文提出日】2023-08-07
(86)【国際出願番号】 US2022045157
(87)【国際公開番号】W WO2023055881
(87)【国際公開日】2023-04-06
(32)【優先日】2021-10-01
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2022-09-21
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】マドゥー・ペリンガーサリー・クリシュナン
(72)【発明者】
【氏名】シン・ジャオ
(72)【発明者】
【氏名】シャン・リュウ
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159MA04
5C159MA05
5C159MA19
5C159MA21
5C159NN11
5C159PP16
5C159RC12
5C159TA17
5C159TA35
5C159TB08
5C159TC27
5C159UA02
5C159UA05
(57)【要約】
本開示は、複合インターイントラ予測モードのための変換構成およびシグナリングに関する。一例では、ビデオストリーム内のビデオブロックをデコーディングするための方法が開示される。方法は、現在のブロックがCIIPモードのもとで予測されたと決定するステップと、ビデオビットストリームから現在のブロックについての二次変換係数のセットを生成するステップと、二次変換係数のセットに対して逆分離可能または分離不可能な二次変換を実行し、現在のブロックの一次変換係数のセットを取得することによって、および一次変換係数のセットに対して逆方向一次変換を実行し、現在のブロックの残差ブロックを取得することによって組み合わされたインターイントラ二次変換を適用するステップと、CIIPモードのもとで、残差ブロックから現在のブロックをデコーディングするステップとを含むことができる。
【特許請求の範囲】
【請求項1】
ビデオビットストリームから現在のブロックをデコーディングするための方法であって、
前記現在のブロックが複合インターイントラ予測(CIIP)モードのもとで予測されたと決定するステップと、
前記ビデオビットストリームから前記現在のブロックについての二次変換係数のセットを生成するステップと、
前記二次変換係数のセットに対して逆分離可能または分離不可能な二次変換を実行して前記現在のブロックの一次変換係数のセットを取得し、
前記一次変換係数のセットに対して逆方向一次変換を実行して前記現在のブロックの残差ブロックを取得する
ことによって組み合わされたインターイントラ二次変換を適用するステップと、
前記CIIPモードのもとで前記残差ブロックから前記現在のブロックをデコーディングするステップと
を含む方法。
【請求項2】
CIIPサブモード候補のセットの中で前記ビデオビットストリームから前記現在のブロックについての前記CIIPモードのCIIPサブモードを決定するステップであって、前記CIIPサブモードは、前記現在のブロックについて前記CIIPモードのもとで使用されるイントラ予測モードのセットの中のイントラ予測モードを示すステップと、
前記イントラ予測モードに基づいて、前記逆分離可能または分離不可能な二次変換における使用のための変換カーネルを決定するステップと
をさらに含む、請求項1に記載の方法。
【請求項3】
前記変換カーネルを決定するステップは、
前記イントラ予測モードに基づいて複数の変換カーネルセットの中から変換カーネルセットを決定するステップと、
前記ビデオビットストリームから、前記現在のブロックに関連付けられたカーネル選択インジケータを抽出するステップと、
前記カーネル選択インジケータに基づいて前記変換カーネルセットから前記変換カーネルを選択するステップと
を含む、請求項2に記載の方法。
【請求項4】
前記イントラ予測モードのセットは、
DC_PREDモード、
V_PREDモード、
H_PREDモード、または
SMOOTH_PREDモード
の1つまたは複数を含む、請求項2に記載の方法。
【請求項5】
前記CIIPサブモード候補のセットは、
II_DC_PREDモード、
II_V_PREDモード、
II_H_PREDモード、または
II_SMOOTH_PREDモード
の少なくとも1つを含む、請求項2から4のいずれか一項に記載の方法。
【請求項6】
前記CIIPサブモードが前記II_DC_PREDモードであることに応答して、前記変換カーネルがDC_PREDイントラ予測モードに事前に関連付けられていると決定し、
前記CIIPサブモードが前記II_V_PREDモードであることに応答して、前記変換カーネルがV_PREDイントラ予測モードに事前に関連付けられていると決定し、
前記CIIPサブモードが前記II_H_PREDモードであることに応答して、前記変換カーネルがH_PREDイントラ予測モードに事前に関連付けられていると決定し、
前記CIIPサブモードが前記II_SMOOTH_PREDモードであることに応答して、前記変換カーネルがSMOOTH_PREDイントラ予測モードに事前に関連付けられていると決定する、請求項5に記載の方法。
【請求項7】
前記イントラ予測モードに基づいて複数の変換カーネルセットの中から変換カーネルセットを決定するステップは、前記現在のブロックのサンプルの前記CIIPモードのもとでのイントラ予測重みが前記サンプルの位置からの定式の導出に基づくと決定したことに応答するのみである、請求項2から4のいずれか一項に記載の方法。
【請求項8】
前記現在のブロックの前記サンプルの前記イントラ予測重みは、前記イントラ予測モードに依存し、前記イントラ予測の予測方向に沿って減少する、請求項7に記載の方法。
【請求項9】
前記CIIPモードのもとでの前記現在のブロックに関連付けられたイントラ予測重みは、所定の空間重み付けパターンのセットの中の空間重み付けパターンを含む、請求項1に記載の方法。
【請求項10】
前記空間重み付けパターンに基づいて、前記逆分離可能な二次変換における使用のための変換カーネルを決定するステップ
をさらに含む、請求項9に記載の方法。
【請求項11】
前記ビデオビットストリームから、前記所定の空間重み付けパターンのセットの中の前記空間重み付けパターンを示す空間重み付けパターンインジケータを抽出するステップと、
前記空間重み付けパターンインジケータに従って前記空間重み付けパターンを決定するステップと
をさらに含む、請求項9に記載の方法。
【請求項12】
ビデオビットストリームから現在のブロックをデコーディングするためのデバイスであって、前記デバイスは、コンピュータ命令を記憶するためのメモリと、前記メモリと通信するプロセッサとを備え、前記プロセッサが前記コンピュータ命令を実行するとき、前記プロセッサは、前記デバイスに、
前記現在のブロックがCIIPモードのもとで予測されたと決定させ、
前記ビデオビットストリームから前記現在のブロックについての二次変換係数のセットを生成させ、
前記二次変換係数のセットに対して逆分離可能または分離不可能な二次変換を実行して前記現在のブロックの一次変換係数のセットを取得し、
前記一次変換係数のセットに対して逆方向一次変換を実行して前記現在のブロックの残差ブロックを取得する
ことによって組み合わされたインターイントラ二次変換を適用させ、
前記CIIPモードのもとで前記残差ブロックから前記現在のブロックをデコーディングさせる
ように構成された、デバイス。
【請求項13】
前記プロセッサが前記コンピュータ命令を実行するとき、前記プロセッサは、さらに前記デバイスに、
CIIPサブモード候補のセットの中で前記ビデオビットストリームから前記現在のブロックについての前記CIIPモードのCIIPサブモードを決定させ、前記CIIPサブモードは、前記現在のブロックについて前記CIIPモードのもとで使用されるイントラ予測モードのセットの中のイントラ予測モードを示し、
前記イントラ予測モードに基づいて、前記逆分離可能または分離不可能な二次変換における使用のための変換カーネルを決定させる
ように構成された、請求項12に記載のデバイス。
【請求項14】
前記プロセッサが、前記デバイスに、前記変換カーネルを決定させるように構成されるとき、
前記イントラ予測モードに基づいて複数の変換カーネルセットの中から変換カーネルセットを決定し、
前記ビデオビットストリームから、前記現在のブロックに関連付けられたカーネル選択インジケータを抽出し、
前記カーネル選択インジケータに基づいて前記変換カーネルセットから前記変換カーネルを選択する
ことを含む、請求項13に記載のデバイス。
【請求項15】
前記イントラ予測モードのセットは、
DC_PREDモード、
V_PREDモード、
H_PREDモード、または
SMOOTH_PREDモード
の1つまたは複数を含む、請求項13に記載のデバイス。
【請求項16】
前記CIIPサブモード候補のセットは、
II_DC_PREDモード、
II_V_PREDモード、
II_H_PREDモード、または
II_SMOOTH_PREDモード
の少なくとも1つを含む、請求項13から15のいずれか一項に記載のデバイス。
【請求項17】
前記CIIPサブモードが前記II_DC_PREDモードであることに応答して、前記プロセッサは、前記デバイスに、前記変換カーネルがDC_PREDイントラ予測モードに事前に関連付けられていると決定させるように構成され、
前記CIIPサブモードが前記II_V_PREDモードであることに応答して、前記プロセッサは、前記デバイスに、前記変換カーネルがV_PREDイントラ予測モードに事前に関連付けられていると決定させるように構成され、
前記CIIPサブモードが前記II_H_PREDモードであることに応答して、前記プロセッサは、前記デバイスに、前記変換カーネルがH_PREDイントラ予測モードに事前に関連付けられていると決定させるように構成され、
前記CIIPサブモードが前記II_SMOOTH_PREDモードであることに応答して、前記プロセッサは、前記デバイスに、前記変換カーネルがSMOOTH_PREDイントラ予測モードに事前に関連付けられていると決定させるように構成された、請求項16に記載のデバイス。
【請求項18】
コンピュータ可読命令を記憶するための非一時的記憶媒体であって、前記コンピュータ可読命令は、プロセッサによって実行されるとき、前記プロセッサに、
ビデオビットストリームから現在のブロックを受信させ、
前記現在のブロックがCIIPモードのもとで予測されたと決定させ、
前記ビデオビットストリームから前記現在のブロックについての二次変換係数のセットを生成させ、
前記二次変換係数のセットに対して逆分離可能または分離不可能な二次変換を実行して前記現在のブロックの一次変換係数のセットを取得し、
前記一次変換係数のセットに対して逆方向一次変換を実行して前記現在のブロックの残差ブロックを取得する
ことによって組み合わされたインターイントラ二次変換を適用させ、
前記CIIPモードのもとで前記残差ブロックから前記現在のブロックをデコーディングさせる、非一時的記憶媒体。
【請求項19】
前記コンピュータ可読命令はさらに、前記プロセッサに、
CIIPサブモード候補のセットの中で前記ビデオビットストリームから前記現在のブロックについての前記CIIPモードのCIIPサブモードを決定させ、前記CIIPサブモードは、前記現在のブロックについて前記CIIPモードのもとで使用されるイントラ予測モードのセットの中のイントラ予測モードを示し、
前記イントラ予測モードに基づいて、前記逆分離可能または分離不可能な二次変換における使用のための変換カーネルを決定させる、請求項18に記載の非一時的記憶媒体。
【請求項20】
前記コンピュータ可読命令が、前記プロセッサに、前記変換カーネルを決定させるとき、前記コンピュータ可読命令は、前記プロセッサに、
前記イントラ予測モードに基づいて複数の変換カーネルセットの中から変換カーネルセットを決定させ、
前記ビデオビットストリームから、前記現在のブロックに関連付けられたカーネル選択インジケータを抽出させ、
前記カーネル選択インジケータに基づいて前記変換カーネルセットから前記変換カーネルを選択させる、請求項19に記載の非一時的記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2022年9月21日に出願された「Secondary Transforms for Compound Inter-Intra Prediction Modes」と題する米国非仮出願第17/949,429号に基づき、それに対する優先権の利益を主張し、この出願は、2021年10月1日に出願された「Secondary Transforms for Compound Inter-Intra Prediction Modes」と題する米国仮出願第63/251,473号に基づき、それに対する優先権の利益を主張するものであり、上記の出願は、その全体が参照により本明細書に組み込まれる。
【0002】
本開示は、一般に、高度なビデオコーディング/デコーディング技術のセットに関し、より具体的には、複合インターイントラ予測モードのための変換技法および構成に関する。
【背景技術】
【0003】
本明細書で提供される背景技術の説明は、本開示の文脈を一般的に提示することを目的としている。本発明者らの研究は、その研究がこの背景技術のセクションに記載されている限りにおいて、またそれ以外の本出願の出願時に先行技術として認められない可能性のある説明の態様と共に、本開示に対する先行技術としては明示的にも暗示的にも認められない。
【0004】
ビデオコーディングおよびデコーディングは、動き補償を伴うインターピクチャ予測を使用して実行され得る。非圧縮デジタルビデオは、一連のピクチャを含むことができ、各ピクチャは、例えば、1920×1080の輝度サンプルおよび関連するフルサンプリングまたはサブサンプリングされた色差サンプルの空間次元を有する。一連のピクチャは、例えば、毎秒60ピクチャまたは毎秒60フレームの固定または可変のピクチャレート(あるいはフレームレートとも呼ばれる)を有することができる。非圧縮ビデオは、ストリーミングまたはデータ処理のための特定のビットレート要件を有する。例えば、1920×1080の画素解像度、60フレーム/秒のフレームレート、および色チャネルあたり画素あたり8ビットで4:2:0のクロマサブサンプリングを有するビデオは、1.5Gbit/sに近い帯域幅を必要とする。1時間分のそのようなビデオは、600GByteを超える記憶空間を必要とする。
【0005】
ビデオコーディングおよびデコーディングの1つの目的は、圧縮による非圧縮入力ビデオ信号の冗長性の低減であり得る。圧縮は、前述の帯域幅および/または記憶空間要件を、場合によっては2桁以上低減させるのに役立ち得る。可逆圧縮と非可逆圧縮の両方、ならびにそれらの組み合わせを採用することができる。可逆圧縮とは、原信号の正確なコピーをデコーディングプロセスを介して圧縮された原信号から再構築することができる技法を指す。非可逆圧縮とは、元のビデオ情報がコーディング時に完全に保持されず、デコーディング時に完全に復元できないコーディング/デコーディングプロセスを指す。非可逆圧縮を使用する場合、再構築された信号は原信号と同一ではない可能性があるが、原信号と再構築された信号との間の歪みは、多少の情報損失はあっても、再構築された信号を意図された用途に役立てるのに十分なほど小さくなる。ビデオの場合、非可逆圧縮が多くの用途で広く採用されている。耐容できる歪みの量は、用途に依存する。例えば、特定の消費者ビデオストリーミング用途のユーザは、映画やテレビ放送用途のユーザよりも高い歪みを容認し得る。特定のコーディングアルゴリズムによって達成可能な圧縮比が、様々な歪み耐性を反映するように選択または調整され得る。すなわち、一般に、歪み耐性が高いほど、高い損失および高い圧縮比をもたらすコーディングアルゴリズムが可能になる。
【0006】
ビデオエンコーダおよびデコーダは、例えば、動き補償、フーリエ変換、量子化、およびエントロピーコーディングを含む、いくつかの広範なカテゴリおよびステップからの技法を利用することができる。
【0007】
ビデオコーデック技術は、イントラコーディングとして知られる技法を含むことができる。イントラコーディングでは、サンプル値は、以前に再構築された参照ピクチャからのサンプルまたは他のデータを参照することなく表される。一部のビデオコーデックでは、ピクチャがサンプルのブロックに空間的に細分される。サンプルのすべてのブロックがイントラモードでコーディングされる場合、そのピクチャをイントラピクチャと呼ぶことができる。イントラピクチャおよび独立したデコーダリフレッシュピクチャなどのそれらの派生ピクチャは、デコーダ状態をリセットするために使用され得、したがって、コーディングされたビデオビットストリームおよびビデオセッション内の最初のピクチャとして、または静止画像として使用され得る。次いで、イントラ予測後のブロックのサンプルに周波数領域への変換を施すことができ、そのように生成された変換係数をエントロピーコーディングの前に量子化することができる。イントラ予測は、変換前領域におけるサンプル値を最小化する技法を表す。場合によっては、変換後のDC値が小さいほど、かつAC係数が小さいほど、エントロピーコーディング後のブロックを表すために所与の量子化ステップのサイズにおいて必要とされるビットは少なくなる。
【0008】
例えば、MPEG-2生成コーディング技術から知られているような従来のイントラコーディングは、イントラ予測を使用しない。しかしながら、いくつかのより新しいビデオ圧縮技術は、例えば、空間的近隣のエンコーディングおよび/またはデコーディング時に取得される、イントラコーディングまたはイントラデコーディングされているデータのブロックにデコーディング順序で先行する、周囲のサンプルデータおよび/またはメタデータに基づいて、ブロックのコーディング/デコーディングを試みる技法を含む。そのような技法は、以後「イントラ予測」技法と呼ばれる。少なくともいくつかの場合において、イントラ予測は、再構築中の現在のピクチャのみからの参照データを使用し、他の参照ピクチャからの参照データは使用しないことに留意されたい。
【0009】
イントラ予測には、多くの異なる形態があり得る。そのような技法のうちの2つ以上が所与のビデオコーディング技術において利用可能である場合、使用される技法を、イントラ予測モードと呼ぶことができる。1つまたは複数のイントラ予測モードが、特定のコーデックで提供され得る。特定の場合には、モードは、サブモードを有することができ、かつ/または様々なパラメータに関連付けられていてもよく、モード/サブモード情報およびビデオのブロックのイントラコーディングパラメータは、個々にコーディングされるか、またはまとめてモードのコードワードに含めることができる。所与のモード、サブモード、および/またはパラメータの組み合わせに、どのコードワードを使用するかは、イントラ予測を介したコーディング効率向上に影響を与える可能性があり、そのため、コードワードをビットストリームに変換するために使用されるエントロピーコーディング技術も影響を与える可能性がある。
【0010】
イントラ予測の特定のモードは、H.264で導入され、H.265において改良され、共同探索モデル(JEM)、多用途ビデオコーディング(VVC)、およびベンチマークセット(BMS)などのより新しいコーディング技術においてさらに改良された。一般に、イントラ予測では、利用可能になった隣接サンプル値を使用して予測子ブロックを形成することができる。例えば、特定の方向および/または線に沿った特定の隣接サンプルセットの利用可能な値が、予測子ブロックにコピーされ得る。使用中の方向への参照は、ビットストリームでコーディングされ得るか、またはそれ自体が予測されてもよい。
【0011】
図1Aを参照すると、右下に示されているのは、(H.265で指定される35個のイントラモードのうちの33個の角度モードに対応する)H.265の33個の可能なイントラ予測子方向で指定される9つの予測子方向のサブセットである。矢印が収束する点(101)は、予測されているサンプルを表す。矢印は、101にあるサンプルを予測するために隣接サンプルがそこから使用される方向を表す。例えば、矢印(102)は、サンプル(101)が水平方向から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)の予測方向を示すシグナリングを含む、すなわち、サンプルは1つまたは複数の予測サンプルから右上へ、水平方向から45度の角度で予測されると仮定する。そのような場合、サンプルS41、S32、S23、およびS14が同じ参照サンプルR05から予測される。次いで、サンプルS44が参照サンプルR08から予測される。
【0014】
特定の場合には、参照サンプルを計算するために、特に方向が45度によって均等に割り切れない場合、複数の参照サンプルの値は、例えば補間によって組み合わされてもよい。
【0015】
可能な方向の数は、ビデオコーディング技術が発展し続けるにつれて増加してきた。H.264(2003年)では、例えば、9つの異なる方向がイントラ予測に利用可能である。これは、H.265(2013年)では33まで増加し、JEM/VVC/BMSは、本開示の時点で、最大65の方向をサポートすることができる。最も適切なイントラ予測方向を識別するのに役立つ実験研究が行われており、エントロピーコーディングの特定の技法を使用して、方向についての特定のビットペナルティを受け入れて、それらの最も適切な方向が少数のビットでエンコーディングされ得る。さらに、方向自体を、デコーディングされた隣接ブロックのイントラ予測で使用された隣接する方向から予測することができる場合もある。
【0016】
図1Bは、時間の経過と共に発展した様々なエンコーディング技術における増加する予測方向の数を例示するために、JEMによる65個のイントラ予測方向を示す概略図(180)を示す。
【0017】
コーディングされたビデオビットストリームにおけるイントラ予測方向を表すビットの予測方向へのマッピングのための方法は、ビデオコーディング技術によって異なる可能性があり、例えば、予測方向対イントラ予測モードの単純な直接マッピングから、コードワード、最確モードを含む複雑な適応方式、および同様の技法に及ぶことができる。しかしながら、すべての場合において、特定の他の方向よりもビデオコンテンツで発生する可能性が統計的に低いイントラ予測の特定の方向が存在し得る。ビデオ圧縮の目的は冗長性の低減であるため、うまく設計されたビデオコーディング技術においては、それらのより可能性の低い方向はより可能性の高い方向よりも多くのビット数で表され得る。
【0018】
インターピクチャ予測、またはインター予測は、動き補償に基づいていてもよい。動き補償では、以前に再構築されたピクチャまたはその一部(参照ピクチャ)からのサンプルデータが、動きベクトル(以後、MV)によって示される方向に空間的にシフトされた後、新たに再構築されたピクチャまたはピクチャ部分(例えば、ブロック)の予測に使用され得る。場合によっては、参照ピクチャは、現在再構築中のピクチャと同じであり得る。MVは、2つの次元XおよびY、または3つの次元を有していてもよく、第3の次元は、(時間次元と類似した)使用中の参照ピクチャの指示である。
【0019】
いくつかのビデオ圧縮技法では、サンプルデータの特定のエリアに適用可能な現在のMVが、他のMVから、例えば再構築中のエリアに空間的に隣接し、デコーディング順序で現在のMVに先行する、サンプルデータの他のエリアに関連する他のMVから予測され得る。そうすることにより、相関するMVの冗長性の除去に依拠することによってMVをコーディングするのに必要とされる全体のデータ量を大幅に削減することができ、それによって圧縮効率が増加する。MV予測が効果的に機能することができるのは、例えば、(自然なビデオとして知られている)カメラから導出された入力ビデオ信号をコーディングするとき、単一のMVが適用可能なエリアよりも大きいエリアは、ビデオシーケンスにおいて同様の方向に移動する統計的尤度があり、したがって、場合によっては、隣接するエリアのMVから導出された同様の動きベクトルを使用して予測することができるからである。その結果として、所与のエリアの実際のMVが周囲のMVから予測されたMVと同様または同一になる。そのようなMVはさらに、エントロピーコーディング後に、MVが隣接するMVから予測されるのではなく直接コーディングされた場合に使用されることになるビット数よりも少ないビット数で表され得る。場合によっては、MV予測は、原信号(すなわち、サンプルストリーム)から導出された信号(すなわち、MV)の可逆圧縮の一例であり得る。他の場合には、MV予測自体は、例えばいくつかの周囲のMVから予測子を計算するときの丸め誤差のために、非可逆であり得る。
【0020】
様々なMV予測メカニズムが、H.265/HEVC(ITU-T勧告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】
いくつかの例示的な実装形態では、ビデオストリーム内のビデオブロックをデコーディングするための方法が開示される。方法は、現在のブロックが複合インターイントラ予測(CIIP)モードのもとで予測されたと決定するステップと、ビデオビットストリームから現在のブロックについての二次変換係数のセットを生成するステップと、二次変換係数のセットに対して逆分離可能または分離不可能な二次変換を実行し、現在のブロックの一次変換係数のセットを取得することによって、および一次変換係数のセットに対して逆方向一次変換を実行し、現在のブロックの残差ブロックを取得することによって組み合わされたインターイントラ二次変換を適用するステップと、CIIPモードのもとで、残差ブロックから現在のブロックをデコーディングするステップとを含むことができる。
【0024】
上記の実装形態では、方法は、候補CIIPサブモードのセットの中からビデオストリームからビデオブロックについてのCIIPモードのCIIPサブモードを決定するステップであって、CIIPサブモードは、ビデオブロックについてのCIIPモードのもとで使用される候補イントラ予測モードのセットの中のイントラ予測モードを示すステップと、イントラ予測モードに基づいて、逆分離可能または分離不可能な二次変換で使用するための変換カーネルを決定するステップとをさらに含むことができる。
【0025】
上記の実装形態のいずれか1つにおいて、方法は、イントラ予測モードに基づいて複数の変換カーネルセットの中から変換カーネルセットを決定するステップと、ビデオビットストリームから、ビデオブロックに関連付けられたカーネル選択インジケータを抽出するステップと、カーネル選択インジケータに基づいて変換カーネルセットから変換カーネルを選択するステップとをさらに含むことができる。
【0026】
いくつかの実装形態では、ビデオデバイスが開示される。ビデオデバイスは、コンピュータ命令を記憶するためのメモリと、コンピュータ命令を実行して上記の方法の各々を実行するように構成された処理回路とを含むことができる。
【0027】
本開示の態様はまた、ビデオデコーディングおよび/またはエンコーディングのためにコンピュータによって実行されるとき、ビデオデコーディングおよび/またはエンコーディングのための上記の方法の実装形態のいずれか1つをコンピュータに実行させる命令を記憶する非一時的コンピュータ可読媒体を提供する。
【0028】
開示された主題のさらなる特徴、性質、および様々な利点は、以下の詳細な説明および添付の図面からより明らかになるであろう。
【図面の簡単な説明】
【0029】
【
図1A】イントラ予測方向性モードの例示的なサブセットの概略図である。
【
図1B】例示的なイントラ予測方向を示す図である。
【
図2】一例における現在のブロックおよび動きベクトル予測のためのその周囲の空間マージ候補を示す概略図である。
【
図3】例示的な実施形態による、通信システム(300)の簡略化されたブロック図の概略図である。
【
図4】例示的な実施形態による、通信システム(400)の簡略化されたブロック図の概略図である。
【
図5】例示的な実施形態による、ビデオデコーダの簡略化されたブロック図の概略図である。
【
図6】例示的な実施形態による、ビデオエンコーダの簡略化されたブロック図の概略図である。
【
図7】別の例示的な実施形態による、ビデオエンコーダのブロック図である。
【
図8】別の例示的な実施形態による、ビデオデコーダのブロック図である。
【
図9】本開示の例示的な実施形態による、コーディングブロック分割の方式を示す図である。
【
図10】本開示の例示的な実施形態による、コーディングブロック分割の別の方式を示す図である。
【
図11】本開示の例示的な実施形態による、コーディングブロック分割の別の方式を示す図である。
【
図12】本開示の例示的な実施形態による、コーディングブロック分割の別の方式を示す図である。
【
図13】本開示の例示的な実施形態による、コーディングブロックを複数の変換ブロックに分割するための方式、および変換ブロックのコーディング順序を示す図である。
【
図14】本開示の例示的な実施形態による、コーディングブロックを複数の変換ブロックに分割するための別の方式、および変換ブロックのコーディング順序を示す図である。
【
図15】本開示の例示的な実施形態による、コーディングブロックを複数の変換ブロックに分割するための別の方式を示す図である。
【
図16】本開示の例示的な実施形態による、様々な参照ラインに基づくイントラ予測方式を示す図である。
【
図17】ブロックにおけるPAETHモードに関する上、左、および左上の位置を示す図である。
【
図18】例示的な再帰的イントラフィルタリングモードを示す図である。
【
図19】本開示の例示的な実施形態による、平面回転変換を示す図である。
【
図20】本開示の例示的な実施形態による、様々なDCT-2、DCT-4部分バタフライルックアップテーブルを示す図である。
【
図21】本開示の例示的な実施形態による、DST-7部分バタフライルックアップテーブルを示す図である。
【
図22】本開示の例示的な実施形態による、低周波数分離不可能な変換プロセスを示す図である。
【
図23】本開示の例示的な実施形態による、方法のフローチャートを示す図である。
【
図24】本開示の例示的な実施形態による、コンピュータシステムの概略図である。
【発明を実施するための形態】
【0030】
図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)は、以下でより詳細に記載されるように、開示された主題の態様を可能にするかまたは実現するために、ハードウェア、ソフトウェア、またはそれらの組み合わせを含むことができる。エンコーディングされたビデオデータ(404)(またはエンコーディングされたビデオビットストリーム(404))は、非圧縮ビデオピクチャのストリーム(402)と比較した場合の低データ量を強調するために細線で示されており、将来の使用のためにストリーミングサーバ(405)に、または下流のビデオデバイス(図示せず)に直接記憶され得る。
図4のクライアントサブシステム(406)および(408)などの1つまたは複数のストリーミングクライアントサブシステムは、ストリーミングサーバ(405)にアクセスして、エンコーディングされたビデオデータ(404)のコピー(407)および(409)を取り出すことができる。クライアントサブシステム(406)は、例えば、電子デバイス(430)内のビデオデコーダ(410)を含むことができる。ビデオデコーダ(410)は、エンコーディングされたビデオデータの入力コピー(407)をデコーディングし、圧縮されていない、ディスプレイ(412)(例えば、表示画面)または他のレンダリングデバイス(図示せず)上にレンダリングすることができるビデオピクチャの出力ストリーム(411)を作成する。ビデオデコーダ410は、本開示に記載される様々な機能の一部または全部を実現するように構成され得る。いくつかのストリーミングシステムでは、エンコーディングされたビデオデータ(404)、(407)、および(409)(例えば、ビデオビットストリーム)は、特定のビデオコーディング/圧縮規格に従ってエンコーディングされ得る。それらの規格の例には、ITU-T勧告H.265が含まれる。一例では、開発中のビデオコーディング規格は、多用途ビデオコーディング(VVC)として非公式に知られている。開示された主題は、VVC、および他のビデオコーディング規格の文脈で使用されてもよい。
【0035】
電子デバイス(420)および(430)は、他の構成要素(図示せず)を含むことができることに留意されたい。例えば、電子デバイス(420)はビデオデコーダ(図示せず)を含むことができ、電子デバイス(430)もビデオエンコーダ(図示せず)を含むことができる。
【0036】
図5は、以下の本開示の任意の実施形態による、ビデオデコーダ(510)のブロック図を示す。ビデオデコーダ(510)は、電子デバイス(530)に含まれ得る。電子デバイス(530)は、受信機(531)(例えば、受信回路)を含むことができる。ビデオデコーダ(510)を、
図4の例のビデオデコーダ(410)の代わりに使用することができる。
【0037】
受信機(531)は、ビデオデコーダ(510)によってデコーディングされるべき1つまたは複数のコーディングされたビデオシーケンスを受信し得る。同じまたは別の実施形態では、一度に1つのコーディングされたビデオシーケンスがデコーディングされ得、各コーディングされたビデオシーケンスのデコーディングは、他のコーディングされたビデオシーケンスから独立している。各ビデオシーケンスは、複数のビデオフレームまたはビデオ画像に関連付けられ得る。コーディングされたビデオシーケンスはチャネル(501)から受信され得、チャネル(501)は、エンコーディングされたビデオデータを記憶するストレージデバイスへのハードウェア/ソフトウェアリンク、またはエンコーディングされたビデオデータを送信するストリーミングソースであり得る。受信機(531)は、エンコーディングされたビデオデータを、それぞれの処理回路(図示せず)に転送され得る、コーディングされたオーディオデータおよび/または補助データストリームなどの他のデータと共に受信し得る。受信機(531)は、コーディングされたビデオシーケンスを他のデータから分離し得る。ネットワークジッタに対抗するために、バッファメモリ(515)が、受信機(531)とエントロピーデコーダ/パーサ(520)(以後、「パーサ(520)」)との間に配置されてもよい。特定の用途では、バッファメモリ(515)は、ビデオデコーダ(510)の一部として実現され得る。他の用途では、バッファメモリ(515)は、ビデオデコーダ(510)から分離されて外部にあり得る(図示せず)。さらに他の用途では、例えば、ネットワークジッタに対抗するためにビデオデコーダ(510)の外部にバッファメモリ(図示せず)があってもよく、例えば再生タイミングを処理するためにビデオデコーダ(510)の内部に別の追加のバッファメモリ(515)があり得る。受信機(531)が十分な帯域幅および可制御性の記憶/転送デバイスから、またはアイソシンクロナスネットワークからデータを受信しているとき、バッファメモリ(515)は不要な場合があり、または小さくすることができる。インターネットなどのベストエフォートパケットネットワークで使用するために、十分なサイズのバッファメモリ(515)が必要とされる場合があり、そのサイズは比較的大きくなり得る。そのようなバッファメモリは、適応サイズで実装されてもよく、ビデオデコーダ(510)の外部のオペレーティングシステムまたは同様の要素(図示せず)に少なくとも部分的に実装されてもよい。
【0038】
ビデオデコーダ(510)は、コーディングされたビデオシーケンスからシンボル(521)を再構築するためにパーサ(520)を含むことができる。それらのシンボルのカテゴリは、ビデオデコーダ(510)の動作を管理するために使用される情報と、潜在的に、
図5に示すように、電子デバイス(530)の不可欠な部分である場合もそうでない場合もあるが、電子デバイス(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勧告H.265などの規格で採用された所定のビデオ圧縮技術に従ってデコーディング動作を実行し得る。コーディングされたビデオシーケンスは、コーディングされたビデオシーケンスがビデオ圧縮技術または規格の構文と、ビデオ圧縮技術または規格に文書化されたプロファイルの両方に忠実であるという意味において、使用されているビデオ圧縮技術または規格によって指定された構文に準拠し得る。具体的には、プロファイルは、ビデオ圧縮技術または規格において使用可能なすべてのツールから、そのプロファイルのもとで使用することができる唯一のツールとして特定のツールを選択することができる。規格に準拠するために、コーディングされたビデオシーケンスの複雑さが、ビデオ圧縮技術または規格のレベルによって定義される範囲内にあり得る。場合によっては、レベルは、最大ピクチャサイズ、最大フレームレート、最大再構築サンプルレート(例えば毎秒メガサンプルで測定される)、最大参照ピクチャサイズなどを制限する。レベルによって設定される制限は、場合によっては、仮想参照デコーダ(HRD)の仕様、およびコーディングされたビデオシーケンス内でシグナリングされるHRDバッファ管理用のメタデータによってさらに制限され得る。
【0049】
いくつかの例示的な実施形態では、受信機(531)は、エンコーディングされたビデオと共に追加の(冗長な)データを受信し得る。追加のデータは、コーディングされたビデオシーケンスの一部として含まれてもよい。追加のデータは、ビデオデコーダ(510)によって、データを適切にデコーディングするために、かつ/または元のビデオデータをより正確に再構築するために使用され得る。追加のデータは、例えば、時間、空間、または信号対雑音比(SNR)の拡張層、冗長スライス、冗長ピクチャ、前方誤り訂正コードなどの形式であり得る。
【0050】
図6は、本開示の例示的な実施形態による、ビデオエンコーダ(603)のブロック図を示す。ビデオエンコーダ(603)は、電子デバイス(620)に含まれ得る。電子デバイス(620)は、送信機(640)(例えば、送信回路)をさらに含み得る。ビデオエンコーダ(603)は、
図4の例のビデオエンコーダ(403)の代わりに使用することができる。
【0051】
ビデオエンコーダ(603)は、ビデオエンコーダ(603)によってコーディングされるべきビデオ画像を取り込み得るビデオソース(601)(
図6の例では電子デバイス(620)の一部ではない)からビデオサンプルを受信し得る。別の例では、ビデオソース(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)およびパーサ(520)を含むビデオデコーダ(510)のエントロピーデコーディング部分は、エンコーダ内のローカルデコーダ(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勧告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を、64×64画素の1つのCU、または32×32画素の4つのCUに分割することができる。32×32ブロックのうちの1つまたは複数の各々は、16×16画素の4つのCUにさらに分割され得る。いくつかの例示的な実施形態では、各CUは、インター予測タイプやイントラ予測タイプなどの様々な予測タイプの中からそのCUの予測タイプを決定するためにエンコーディング中に分析され得る。CUは、時間的および/または空間的予測可能性に応じて、1つまたは複数の予測ユニット(PU)に分割され得る。一般に、各PUは、1つのルマ予測ブロック(PB)および2つのクロマPBを含む。一実施形態では、コーディング(エンコーディング/デコーディング)における予測動作は、予測ブロックの単位で実行される。CUのPU(または異なる色チャネルのPB)への分割は、様々な空間パターンで実施され得る。ルマPBまたはクロマPBは、例えば、8×8画素、16×16画素、8×16画素、16×8画素などといった、サンプルの値(例えば、ルマ値)の行列を含み得る。
【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】
コーディングブロック分割を見ると、いくつかの例示的な実装形態では、所定のパターンが適用され得る。
図9に示すように、第1の事前定義されたレベル(例えば、64×64ブロックレベル)から開始して第2の事前定義されたレベル(例えば、4×4レベル)に至る例示的な4つのやり方の分割ツリーが用いられ得る。例えば、ベースブロックは、902、904、906および908によって示された4つの分割オプションに従うことができ、Rとして指定されたパーティションは、
図9に示された同じ分割ツリーが最下位レベル(例えば、4×4レベル)まで下位スケールで繰り返され得るという点で、再帰分割が可能である。いくつかの実装形態では、
図9の分割方式に追加の制限が加えられてもよい。
図9の実装形態では、長方形パーティション(例えば、1:2/2:1の長方形パーティション)は、許容され得るが、再帰的であることは許容され得ず、一方、正方形分割は再帰的であることが許容される。必要に応じて、再帰による
図9の後に続く分割により、コーディングブロックの最終セットが生成される。そのような方式が、色チャネルのうちの1つまたは複数に適用されてもよい。
【0091】
図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のパターンの後に続く分割ツリーの次のレベルへの再帰分割を可能とすることができる。言い換えれば、再帰分割は、パターン1002、1004、1006、および1006の正方形パーティションでは不可能である。必要に応じて、再帰による
図10の後に続く分割により、コーディングブロックの最終セットが生成される。そのような方式が、色チャネルのうちの1つまたは複数に適用されてもよい。
【0092】
上記の分割手順または他の手順のいずれかに従ってベースブロックを区分または分割した後にやはり、パーティションまたはコーディングブロックの最終セットが取得され得る。これらのパーティションの各々は、様々な分割レベルのうちの1つにあり得る。パーティションの各々は、コーディングブロック(CB)と呼ばれる場合がある。上記の様々な例示的な分割実装形態では、結果として得られる各CBは、許容されるサイズおよび分割レベルのいずれかのものであり得る。それらは、そのためのいくつかの基本的なコーディング/デコーディング決定が行われ得、コーディング/デコーディングパラメータが最適化され、決定され、エンコーディングされたビデオビットストリームにおいてシグナリングされ得るユニットを形成し得るので、コーディングブロックと呼ばれる。最終パーティションにおける最高レベルは、コーディングブロック分割ツリーの深度を表す。コーディングブロックは、ルマコーディングブロックまたはクロマコーディングブロックであり得る。
【0093】
いくつかの他の例示的な実装形態では、ベースルマブロックおよびベースクロマブロックを再帰的にコーディングユニットに分割するために四分木構造が使用され得る。そのような分割構造はコーディングツリーユニット(CTU)と呼ばれる場合があり、CTUは、四分木構造を使用して分割をベースCTUの様々なローカル特性に適合させることによってコーディングユニット(CU)に分割される。そのような実装形態では、サイズがピクチャ境界に収まるまでブロックが四分木分割を続けるように、ピクチャ境界で暗黙的な四分木分割が実行され得る。CUという用語は、ルマコーディングブロック(CB)およびクロマコーディングブロック(CB)のユニットを集合的に指すために使用される。
【0094】
いくつかの実装形態では、CBはさらに分割されてもよい。例えば、CBは、コーディングプロセスおよびデコーディングプロセス中のイントラフレーム予測またはインターフレーム予測を目的として、複数の予測ブロック(PB)にさらに分割され得る。言い換えれば、CBは異なるサブパーティションにさらに区分されてもよく、そこで個々の予測決定/構成が行われ得る。並行して、CBは、ビデオデータの変換または逆変換が実行されるレベルを記述する目的で、複数の変換ブロック(TB)にさらに分割されてもよい。CBのPBおよびTBへの分割方式は、同じである場合もそうでない場合もある。例えば、各分割方式は、例えば、ビデオデータの様々な特性に基づいて独自の手順を使用して実行され得る。PBおよびTBの分割方式は、いくつかの例示的な実装形態では独立していてもよい。PBおよびTBの分割方式および境界は、いくつかの他の例示的な実装形態では相関されていてもよい。いくつかの実装形態では、例えば、TBは、PB分割後に分割されてもよく、特に、各PBは、コーディングブロックの分割の後に続いて決定された後、次いで1つまたは複数のTBにさらに分割されてもよい。例えば、いくつかの実装形態では、PBは、1つ、2つ、4つ、または他の数のTBに分割され得る。
【0095】
いくつかの実装形態では、ベースブロックをコーディングブロックに分割し、さらに予測ブロックおよび/または変換ブロックに分割するために、ルマチャネルおよびクロマチャネルは異なって処理されてもよい。例えば、いくつかの実装形態では、コーディングブロックの予測ブロックおよび/または変換ブロックへの分割は、ルマチャネルに対して許容されてもよいが、コーディングブロックの予測ブロックおよび/または変換ブロックへのそのような分割は、クロマチャネルに対して許容されない場合がある。そのような実装形態では、よって、ルマブロックの変換および/または予測は、コーディングブロックレベルでのみ実行され得る。別の例では、ルマチャネルおよびクロマチャネルの最小変換ブロックサイズが異なっていてもよく、例えば、ルマチャネルのコーディングブロックは、クロマチャネルよりも小さい変換ブロックおよび/または予測ブロックに分割されることが許容され得る。さらに別の例では、コーディングブロックの変換ブロックおよび/または予測ブロックへの分割の最大深度がルマチャネルとクロマチャネルとの間で異なっていてもよく、例えば、ルマチャネルのコーディングブロックは、クロマチャネルよりも深い変換ブロックおよび/または予測ブロックに分割されることが許容され得る。具体例として、ルマコーディングブロックは、最大2レベルだけ下がる再帰分割によって表すことができる複数のサイズの変換ブロックに分割されてもよく、正方形、2:1/1:2、および4:1/1:4などの変換ブロック形状、ならびに4×4から64×64の変換ブロックサイズが許容され得る。しかしながら、クロマブロックの場合、ルマブロックに指定された可能な最大の変換ブロックのみが許容されてもよい。
【0096】
コーディングブロックをPBに分割するためのいくつかの例示的な実装形態では、PB分割の深度、形状、および/または他の特性は、PBがイントラコーディングされるかインターコーディングされるかに依存してもよい。
【0097】
コーディングブロック(または予測ブロック)の変換ブロックへの分割は、四分木分割および事前定義されたパターン分割を含むがそれらに限定されない様々な例示的な方式で、再帰的または非再帰的に、コーディングブロックまたは予測ブロックの境界での変換ブロックをさらに考慮して実行されてもよい。一般に、結果として得られる変換ブロックは、異なる分割レベルにあってもよく、同じサイズでなくてもよく、形状が正方形である必要がなくてもよい(例えば、それらはいくつかの許容されたサイズおよびアスペクト比を有する長方形であり得る)。
【0098】
いくつかの実装形態では、コーディング分割ツリー方式または構造が使用され得る。ルマチャネルおよびクロマチャネルに使用されるコーディング分割ツリー方式は、同じである必要はなくてもよい。言い換えれば、ルマチャネルおよびクロマチャネルは、別々のコーディングツリー構造を有してもよい。さらに、ルマチャネルおよびクロマチャネルが同じコーディング分割ツリー構造を使用するか、異なるコーディング分割ツリー構造を使用するか、および使用されるべき実際のコーディング分割ツリー構造は、コーディングされているスライスがPスライスか、Bスライスか、Iスライスかに依存する場合がある。例えば、Iスライスの場合、クロマチャネルおよびルマチャネルは、別々のコーディング分割ツリー構造またはコーディング分割ツリー構造モードを有してもよいが、PスライスまたはBスライスの場合、ルマチャネルおよびクロマチャネルは、同じコーディング分割ツリー方式を共有してもよい。別々のコーディング分割ツリー構造またはモードが適用されるとき、ルマチャネルは、1つのコーディング分割ツリー構造によってCBに分割されてもよく、クロマチャネルは、別のコーディング分割ツリー構造によってクロマCBに分割されてもよい。
【0099】
コーディングブロックおよび変換ブロックの分割の具体的で例示的な実装形態が、以下に記載される。そのような例示的な実装形態では、ベースコーディングブロックが、上述した再帰的四分木分割を使用してコーディングブロックに分割され得る。各レベルにおいて、特定のパーティションのさらなる四分木分割を続けるべきかどうかが、ローカルビデオデータ特性によって決定されてもよい。結果として得られる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にさらに分割されてもよい。
【0100】
ベースコーディングブロックをCBならびに他のPBおよびまたはTBに分割するための別の具体例を以下で説明する。例えば、
図10に示すような複数のパーティションユニットタイプ使用するのではなく、二分割および三分割のセグメント化構造を使用するネストされたマルチタイプツリーを有する四分木が使用されてもよい。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の色成分の幅または高さよりも小さいときに発生する。
【0101】
1つのCTBのブロック分割のネストされたマルチタイプツリーコーディングブロック構造を有する四分木の一例が、
図12に示されている。より詳細には、
図12は、CTB1200が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つは、1104および1108に従ってさらに分割される。パーティション1206は、2つのパーティションへの
図11の1102による第2のレベルの分割パターンを採用し、2つのパーティションは
図11の1108および1102に従って第3のレベルでさらに分割される。第4のレベルの分割が、
図11の1104に従ってそれらのうちの1つにさらに適用される。
【0102】
上記の具体例では、最大ルマ変換サイズは64×64であってもよく、サポートされる最大クロマ変換サイズは、ルマとは異なる、例えば、32×32であり得る。ルマコーディングブロックまたはクロマコーディングブロックの幅または高さが最大変換幅または最大変換高さよりも大きい場合、ルマコーディングブロックまたはクロマコーディングブロックは、水平方向および/または垂直方向の変換サイズ制限を満たすように水平方向および/または垂直方向に自動的に分割され得る。
【0103】
上記のベースブコーディングロックのCBへの分割についての具体例では、コーディングツリー方式は、ルマおよびクロマが別々のブロックツリー構造を有するための能力をサポートすることができる。例えば、PスライスおよびBスライスの場合、1つのCTU内のルマCTBおよびクロマCTBは、同じコーディングツリー構造を共有することができる。Iスライスの場合、例えば、ルマおよびクロマは、別々のコーディングブロックツリー構造を有してもよい。別々のブロックツリーモードが適用されるとき、ルマCTBは1つのコーディングツリー構造によってルマCBに分割されてもよく、クロマCTBは別のコーディングツリー構造によってクロマCBに分割される。これは、Iスライス内のCUがルマ成分のコーディングブロックまたは2つのクロマ成分のコーディングブロックから構成されてもよく、PスライスまたはBスライス内のCUが常に、ビデオがモノクロでない限り3つの色成分すべてのコーディングブロックから構成されることを意味する。
【0104】
コーディングブロックまたは予測ブロックを変換ブロックに分割するための例示的な実装形態、および変換ブロックのコーディング順序が、以下でさらに詳細に記載される。いくつかの例示的な実装形態では、変換分割は、例えば、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)の倍数の変換ブロックに暗黙的に分割されてもよい。
【0105】
いくつかの例示的な実装形態では、イントラコーディングされたブロックとインターコーディングされたブロックの両方について、コーディングブロックが、事前定義された数のレベル(例えば、2レベル)までの分割深度を有する複数の変換ブロックにさらに分割され得る。変換ブロックの分割深度およびサイズは、関連してもよい。現在の深度の変換サイズから次の深度の変換サイズへの例示的なマッピングが、以下で表1に示されている。
【0106】
【0107】
表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サブ変換ブロックを作成する。
【0108】
いくつかの例示的な実装形態では、イントラコーディングされたブロックのルマ成分に対して、さらなる制限が適用され得る。例えば、変換分割のレベルごとに、すべてのサブ変換ブロックは、等しいサイズを有するように制限されてもよい。例えば、32×16のコーディングブロックの場合、レベル1の変換分割は、2つの16×16のサブ変換ブロックを作成し、レベル2の変換分割は、8つの8×8のサブ変換ブロックを作成する。言い換えれば、変換ユニットを等しいサイズに保つために、すべての第1のレベルのサブブロックに第2のレベルの分割が適用されなければならない。表1に従ってイントラコーディングされた正方形ブロックに対する変換ブロック分割の一例が、矢印によって示されたコーディング順序と共に
図13に示されている。具体的には、1302は、正方形コーディングブロックを示す。表1による4つの等しいサイズの変換ブロックへの第1のレベルの分割が、矢印によって示されたコーディング順序と共に1304に示されている。表1によるすべての第1のレベルの等しいサイズのブロックの16個の等しいサイズの変換ブロックへの第2のレベルの分割が、矢印によって示されたコーディング順序と共に1306に示されている。
【0109】
いくつかの例示的な実装形態では、インターコーディングされたブロックのルマ成分に対して、イントラコーディングに対する上記の制限が適用されない場合がある。例えば、第1のレベルの変換分割の後に、サブ変換ブロックのいずれか1つが、もう1つのレベルでさらに独立して分割され得る。したがって、結果として得られる変換ブロックは、同じサイズのブロックであってもなくてもよい。インターコーディングされたブロックのそれらのコーディング順序による変換ロックへの例示的な分割が、
図14に示されている。
図14の例では、インターコーディングされたブロック1402は、表1に従って2つのレベルで変換ブロックに分割される。第1のレベルで、インターコーディングされたブロックは、等しいサイズの4つの変換ブロックに分割される。次いで、4つの変換ブロックのうちの(それらのすべてではない)1つのみが4つのサブ変換ブロックにさらに分割され、1404によって示すように、2つの異なるサイズを有する合計7つの変換ブロックがもたらされる。これらの7つの変換ブロックの例示的なコーディング順序が、
図14の1404に矢印によって示されている。
【0110】
いくつかの例示的な実装形態では、クロマ成分の場合、変換ブロックに対する何らかのさらなる制限が適用されてもよい。例えば、クロマ成分の場合、変換ブロックサイズは、コーディングブロックサイズと同じ大きさであり得るが、事前定義されたサイズ、例えば、8×8よりも小さくすることはできない。
【0111】
いくつかの他の例示的な実装形態では、幅(W)または高さ(H)のいずれかが64よりも大きいコーディングブロックの場合、ルマコーディングブロックとクロマコーディングブロックの両方は、それぞれ、min(W,64)×min(H,64)およびmin(W,32)×min(H,32)の倍数の変換ユニットに暗黙的に分割されてもよい。
【0112】
図15は、コーディングブロックまたは予測ブロックを変換ブロックに分割するための別の代替の例示的な方式をさらに示す。
図15に示すように、再帰変換分割を使用する代わりに、コーディングブロックの変換タイプに従って、事前定義された分割タイプのセットがコーディングブロックに適用されてもよい。
図15に示す特定の例では、6つの例示的な分割タイプのうちの1つが、コーディングブロックを様々な数の変換ブロックに分割するために適用されてもよい。このような方式が、コーディングブロックまたは予測ブロックのどちらかに適用され得る。
【0113】
より詳細には、
図15の分割方式は、
図15に示すように、任意の所与の変換タイプに対して最大6つの分割タイプを提供する。この方式では、すべてのコーディングブロックまたは予測ブロックは、例えば、レート歪みコストに基づいて変換タイプが割り当てられてもよい。一例では、コーディングブロックまたは予測ブロックに割り当てられる分割タイプは、コーディングブロックまたは予測ブロックの変換分割タイプに基づいて決定され得る。
図15に例示された4つの分割タイプによって示すように、特定の分割タイプが、変換ブロックの分割サイズおよびパターン(または分割タイプ)に対応し得る。様々な変換タイプと様々な分割タイプとの間の対応関係が、事前定義されてもよい。例示的な対応関係が、レート歪みコストに基づいてコーディングブロックまたは予測ブロックに割り当てられ得る変換タイプを示す大文字のラベルと共に以下に示される。
【0114】
・PARTITION_NONE:ブロックサイズに等しい変換サイズを割り当てる。
【0115】
・PARTITION_SPLIT:ブロックサイズの1/2の幅およびブロックサイズの1/2の高さの変換サイズを割り当てる。
【0116】
・PARTITION_HORZ:ブロックサイズと同じ幅およびブロックサイズの1/2の高さの変換サイズを割り当てる。
【0117】
・PARTITION_VERT:ブロックサイズの1/2の幅およびブロックサイズと同じ高さの変換サイズを割り当てる。
【0118】
・PARTITION_HORZ4:ブロックサイズと同じ幅およびブロックサイズの1/4の高さの変換サイズを割り当てる。
【0119】
・PARTITION_VERT4:ブロックサイズの1/4の幅およびブロックサイズと同じ高さの変換サイズを割り当てる。
【0120】
上記の例では、
図15に示す分割タイプは、すべて分割された変換ブロックについての均一な変換サイズを含む。これは限定ではなく単なる例である。いくつかの他の実装形態では、特定の分割タイプ(またはパターン)における分割された変換ブロックに混合変換ブロックサイズが使用されてもよい。
【0121】
上記の分割方式のいずれかから取得されたPB(または、予測ブロックにさらに分割されていない場合はPBとも呼ばれるCB)は、イントラ予測またはインター予測のいずれかを介してコーディングのための個々のブロックになり得る。現在のPBにおけるインター予測のために、現在のブロックと予測ブロックとの間の残差が生成され、コーディングされ、コーディングされたビットストリームに含まれ得る。
【0122】
イントラ予測プロセスに目を向けると、そこではブロック(例えば、ルマまたはクロマ予測ブロック、または予測ブロックにさらに分割されていない場合はコーディングブロック)内のサンプルは、予測ブロックを生成するために、隣接する、次の隣接する、または他の1つまたは複数のライン、またはそれらの組み合わせのサンプルによって予測される。その後、コーディング中の実際のブロックと予測ブロックとの間の残差を量子化後に変換により処理してもよい。様々なイントラ予測モードを利用可能にするすることができ、イントラモードの選択に関連するパラメータおよび他のパラメータをビットストリームでシグナリングすることができる。様々なイントラ予測モードは、例えば、サンプルを予測するための1つまたは複数のライン位置、1つまたは複数のラインを予測することから予測サンプルが選択される方向、および他の特別なイントラ予測モードに関係し得る。
【0123】
例えば、イントラ予測モード(「イントラモード」と互換的に呼ばれる)のセットは、事前定義された数の方向性イントラ予測モードを含み得る。
図1の例示的な実装形態に関して上述されているように、これらのイントラ予測モードは、特定のブロック内の予測中のサンプルの予測先としてブロック外のサンプルを選択する際に進む事前定義された数の方向に対応してもよい。別の特定の例示的な実装形態では、水平軸に対して45度から207度の角度に対応する8つの主な方向モードをサポートし、事前定義することができる。
【0124】
イントラ予測のいくつかの他の実装形態では、方向テクスチャにおけるより多様な空間的冗長性をさらに活用するために、方向性イントラモードは、より細かい粒度を有する角度セットにさらに拡張され得る。例えば、
図16に示されているように、上記の8つの角度の実装形態を、8つの公称角度(V_PRED、H_PRED、D45_PRED、D135_PRED、D113_PRED、D157_PRED、D203_PRED、およびD67_PREDと称する)を提供するように構成してもよく、公称角度ごとに、事前定義された数(例えば、7つ)のより細かい角度を加えてもよい。このように拡張すれば、方向の角度の総数が大きくなり(例えば、本例では56個)、当該総数の方向の角度をイントラ予測に用いることができ、これらはそれと同数の事前定義された方向性イントラモードに対応する。予測角度は、公称イントラ角度+角度デルタによって表され得る。各公称角度に対して7つのより細かい角度方向を有する上記の特定の例では、角度デルタは、3度のステップサイズの-3~3倍であり得る。
【0125】
いくつかの実装形態では、上記の方向性イントラモードの代わりに、またはそれに加えて、事前定義された数の無方向イントラ予測モードも事前定義され、利用可能にされる場合がある。例えば、スムーズイントラ予測モードと呼ばれる5つの無方向イントラモードを指定してもよい。これらの無方向イントラモード予測モードは、具体的には、DCイントラモード、PAETHイントラモード、SMOOTHイントラモード、SMOOTH_Vイントラモード、およびSMOOTH_Hイントラモードと呼ばれる場合がある。これらの例示的な無方向モードを用いた特定のブロックのサンプルの予測が、
図17に示されている。一例として、
図17は、上の隣接ラインおよび/または左の隣接ラインから得られるサンプルによって4×4ブロック2002が予測される様子を示す。ブロック1702内の特定のサンプル1710は、ブロック1702の上の隣接ラインにおいてサンプル1710の真上のサンプル1704と、上の隣接ラインと左の隣接ラインとの交差部分としてサンプル1710の左上のサンプル1706と、ブロック1702の左の隣接ラインにおいてサンプル1710の真左のサンプル1708とに対応してもよい。例示的なDCイントラ予測モードでは、左および上の隣接サンプル1708および1704の平均をサンプル2010の予測子として使用することができる。例示的なPAETHイントラ予測モードでは、上、左、および左上の参照サンプル1704、1708、および1706をフェッチしてもよく、その後、(上+左-左上)に最も近い、これらの3つの参照サンプル間のどのような値でもサンプル1710の予測値として設定してもよい。例示的なSMOOTH_Vイントラ予測モードでは、左上の隣接サンプル1706および左の隣接サンプル1708の垂直方向の二次補間によってサンプル1710を予測してもよい。例示的なSMOOTH_Hイントラ予測モードでは、左上の隣接サンプル1706および上の隣接サンプル1704の水平方向の二次補間によってサンプル1710を予測してもよい。例示的なSMOOTHイントラ予測モードでは、垂直方向および水平方向の二次補間の平均によってサンプル1710を予測してもよい。上記の無方向イントラモードの実装形態は、単に非限定的な例として示されているにすぎない。他の隣接ライン、およびサンプルの他の無方向選択、および予測ブロック内の特定のサンプルを予測するための予測サンプルを組み合わせる方法も考えられる。
【0126】
様々なコーディングレベル(ピクチャ、スライス、ブロック、ユニットなど)における上記の方向モードまたは無方向モードからのエンコーダによる特定のイントラ予測モードの選択は、ビットストリームでシグナリングされ得る。いくつかの例示的な実装形態では、まず、例示的な8つの公称方向モードを、角度を用いない5つのスムーズモードと共に(合計13個の選択肢)シグナリングしてもよい。その後、シグナリングされたモードが、8つの公称角度イントラモードのうちの1つである場合、対応するシグナリングされた公称角度に対して選択された角度デルタを示すインデックスをさらにシグナリングする。いくつかの他の例示的な実装形態では、すべてのイントラ予測モードは、シグナリングのためにすべて一緒に(例えば、56個の方向モードに5個の無方向モードを加えて61個のイントラ予測モードを生成する)インデックス付けされてもよい。
【0127】
いくつかの例示的な実装形態では、例示的な56または他の数の方向性イントラ予測モードは、ブロックの各サンプルを参照サブサンプル位置に投影し、2タップ双線形フィルタによって参照サンプルを補間する統一された方向予測子を用いて実現され得る。
【0128】
いくつかの実装形態では、エッジ上の参照との減少する空間的な相関を取り込むために、FILTER INTRAモードと呼ばれる追加のフィルタモードを設計することができる。これらのモードでは、ブロック外のサンプルに加えてブロック内で予測されるサンプルをイントラ予測参照サンプルとしてブロック内のいくつかのパッチに使用してもよい。これらのモードは、例えば、事前定義され、少なくともルマブロック(またはルマブロックのみ)のイントラ予測に利用可能にされ得る。事前定義された数(例えば、5)のフィルタイントラモードを予め設計することができ、その各々は、例えば、4×2パッチ内のサンプルとそれに隣接するn個の近隣との間の相関を反映するnタップフィルタ(例えば、7タップフィルタ)のセットによって表される。言い換えれば、nタップフィルタの重み係数は、位置に依存し得る。
図18に示すように、一例として8×8ブロック、4×2パッチ、および7タップフィルタリングを用いる場合、8×8ブロック2002を8つの4×2パッチに分割してもよい。これらのパッチは、
図18ではB0、B1、B1、B3、B4、B5、B6、およびB7で示されている。パッチごとに、その7つの近隣(
図18でR0~R7で示されている)を現在のパッチ内のサンプルを予測するのに使用してもよい。パッチB0については、すべての近隣がすでに再構築されている場合がある。一方で他のパッチについては、近隣の一部が現在のブロック内にあるので、再構築されていない場合があり、その際には、間近の近隣の予測値を参照として使用する。例えば、
図18に示されているパッチB7のすべての近隣が再構築されていないので、代わりに近隣の予測サンプルが使用される。
【0129】
イントラ予測のいくつかの実装形態では、1つの色成分は、1つまたは複数の他の色成分を使用して予測され得る。色成分がYCrCb色空間、RGB色空間、XYZ色空間などの成分のいずれか1つであってもよい。例えば、ルマ成分(例えば、ルマ参照サンプル)からクロマ成分(例えば、クロマブロック)を予測する予測、ルマからクロマ、すなわちCfLと呼ばれる)を実行してもよい。いくつかの例示的な実装形態では、クロスカラー予測について多くがルマからクロマにしか許容されない。例えば、クロマブロック内のクロマサンプルは、一致する再構築されたルマサンプルの線形関数としてモデル化することができる。CfL予測は、以下のように実行することができる。
CfL(α)=α×LAC+DC (1)
【0130】
ここで、LACは、ルマ成分のAC寄与を表し、αは、線形モデルのパラメータを表し、DCは、クロマ成分のDC寄与を表す。例えば、AC成分がブロックのサンプルごとに取得されるのに対して、DC成分はブロック全体に対して取得される。さらに言えば、再構築されたルマサンプルにサブサンプリングを行ってクロマ解像度を得てもよく、その後、各ルマ値から平均ルマ値(ルマのDC)を差し引いてルマのAC寄与を形成してもよい。その後、ルマのAC寄与を式(1)の線形モードに使用してクロマ成分のAC値を予測する。ルマAC寄与からクロマAC成分の近似値を得たり予測したりするために、スケーリングパラメータを計算することをデコーダに要求する代わりに、例示的なCfLの実装形態では、元のクロマサンプルに基づいてパラメータαを決定してこれをビットストリームでシグナリングしてもよい。これにより、デコーダの複雑さが低減され、より正確な予測が得られる。クロマ成分のDC寄与に関しては、いくつかの例示的な実装形態では、クロマ成分内のイントラDCモードを使用して計算され得る。
【0131】
イントラ予測の代わりに、PBは、単一参照または複合参照インター予測モードのいずれかでインター予測され得る。特に、インター予測モードでは、ビデオブロックは、単一参照または複合参照インター予測のいずれかを介して、1つまたは複数の他のフレームから1つまたは複数の他の参照ブロックまたはインター予測ブロックによって予測され得る。インター予測を実行するために、参照ブロックは、そのフレーム識別子(参照ブロックの時間位置)と、エンコーディングまたはデコーディングされている現在のブロックと参照ブロックとの間の空間オフセットを示す動きベクトル(参照ブロックの空間位置)とによって指定され得る。参照フレーム識別および動きベクトルは、ビットストリーム内でシグナリングされ得る。空間ブロックオフセットとしての動きベクトルは、直接シグナリングされてもよいし、別の参照動きベクトルまたは予測子動きベクトルによってそれ自体が予測されてもよい。例えば、現在の動きベクトルは、参照動きベクトル(例えば、候補隣接ブロックの)によって直接、または参照動きベクトルと、現在の動きベクトルと参照動きベクトルとの間の動きベクトル差(MVD)の組み合わせによって予測されてもよい。後者は、動きベクトル差を用いたマージモード(MMVD)と呼ばれることがある。参照動きベクトルは、例えば、現在のブロックの空間的に隣接するブロックまたは時間的に隣接するが空間的に一緒に配置されたブロックへのポインタとしてビットストリーム内で識別され得る。
【0132】
いくつかの実装形態では、複合インターイントラ予測(CIIP)モードが実行され得る。CIIPモードでは、予測ブロックは、イントラ予測(またはイントラ予測子)ブロックとインター予測(イントラ予測子)ブロックの組み合わせとして導出され得る。CIIPにおけるインター予測ブロックは、動きベクトルに対応する並進動作を伴う単一の参照インター予測を使用して導出され得るが、CIIPにおけるイントラ予測ブロックは、上述したイントラ予測モードのサブセットに基づいて隣接サンプルから決定され得る。いくつかの例示的な実装形態では、CIIPモードで予測されている現在のブロックのイントラ予測ブロック内の空間サンプルは、上述したDC_PRED、V_PRED、H_PRED、およびSMOOTHモードを含むイントラ予測モードのサブセットのうちの1つに従ってイントラ参照ラインサンプルから導出され得る。イントラ予測ブロックを導出するためのイントラ予測モードのこのサブセットの各々の使用は、表2に示すように、CIIPサブモードインデックスに対応し得る。
【0133】
【0134】
現在のブロックにおける複合インターイントラ予測(または予測子)ブロックは、上記の説明に従って導出されたように、サンプルレベルでイントラ予測ブロックとインター予測ブロックのサンプルレベル重み付け和として生成され得る。したがって、イントラ予測ブロックとインター予測ブロックとの間の相対的な重みは、重み行列によって表され得る。CIIPの様々なインターイントラ重み付けモードに対応して、重み行列が決定される様々な例示的な方法を実行することができる。
【0135】
通常CIIPと呼ばれるCIIPの重み付けモードの1つの例示的な実装形態では、現在のブロック内のサンプルに対応するインターイントラ重み行列の要素は、サンプルの位置との決定論的関係に従うことができる。そのような決定論的関係は、使用されているイントラ予測モードに依存し得る。1つの特定の例では、イントラ予測サンプルP
0(x、y)(xおよびyは、ブロック内のサンプル位置を表す)に適用される重み付けは、以下のように導出され得る。
【数1】
ここで、sizeScaleは、ブロック幅(W)およびブロック高さ(H)を使用して以下のように導出され、
sizeScale=128/max(W,H), (3)
WeightLUTは、一次元ルックアップテーブルを表す。WeightLUT[index]の値は、インデックスによって示される位置でルックアップテーブル内のエントリによって決定される。1つの例示的な一次元重みルックアップテーブルが、以下の表3に示されている。
【0136】
【0137】
上記の通常CIIPの例において、イントラ予測における重み付けは、一般に、DC_PREDモードを除き、サンプルがブロックの左上隅から離れるにつれて(または、イントラ予測参照サンプルから離れるにつれて)減少し、インター予測重み付けは、サンプル位置とは無関係である。言い換えれば、表3に例示された実装形態は、サンプル位置がイントラ参照サンプルから離れるにつれてインター予測重みが増大する方式を反映する。
【0138】
ウェッジCIIPと呼ばれる、CIIPにおけるいくつかの他の例示的なインターイントラ重み付け実装形態では、重みパターンのセットを定義することができ、重みパターンのセットのうちの1つをエンコーダによって現在のブロックに関して選択することができる。重みパターンのセット内の選択されたパターンのインデックスは、ビットストリーム内でシグナリングされ得る。そのようなパターンは、ブロックの各サンプルについてイントラ予測ブロックとインター予測ブロックを結合/加算するために使用される特定の重み行列を決定するために現在のブロックに適用され得る。例えば、16個の異なるパターン(ウェッジパターンとも呼ばれる)を事前定義し、インデックス0~15で表すことができる。ウェッジCIIPでは、パターンのインデックスが指定されると、表3の事前定義されたルックアップテーブルを使用して通常CIIPの手法でサンプルごとにシグナリングされるのではなく、ブロックの重み行列全体が導出される。
【0139】
任意のCIIPにおいて、上記の重み行列が取得されてイントラ予測ブロックとインター予測ブロックを組み合わせるために適用されると、そのような組み合わされたブロックは、残差ブロックを取得するために現在のブロックにおける実際の予測ブロックとして使用され得る。次いで、残差ブロックは、エンコーダの観点から、一次変換、および任意選択的に第2の変換、ならびに量子化およびエントロピーコーディングプロセスの残りを受け得る。デコーダの場合、ビットストリームは、残差ブロックを取得するために解析/デコーディングされ、逆変換される。デコーダが、ビットストリームから、現在のブロックのためにCIIPが使用されると決定する場合、ビットストリームから抽出された情報(上記でシグナリングされたルックアップインデックス、または上記でシグナリングされたウェッジパターンインデックスのいずれか)に基づいて、CIIPの重み行列をさらに取得することができる。次いで、予測ブロックは、重み行列と、現在のフレームまたは参照フレームにおけるすでに再構築されたサンプルからの対応するイントラ予測ブロックおよびインター予測から導出され得る。次いで、元のブロックを残差ブロックおよび予測ブロックから復元することができる。
【0140】
一次変換に目を向けると、例示的な2D変換プロセスは、両方の次元に関して同じ変換カーネルを使用することに加えて、ハイブリッド変換カーネル(これは、例えば、コーディングされた残差ブロックのそれぞれの次元ごとに異なる1D変換から構成されてもよい)の使用を伴うことができる。例示的な一次1D変換カーネルは、a)4ポイント(4p)、8ポイント(8p)、16ポイント(16p)、32ポイント(32p)、および64ポイント(64p)DCT-2、b)4ポイント、8ポイント、16ポイントの非対称DSTおよびそれらの反転されたバージョン、c)4ポイント、8ポイント、16ポイント、または32ポイントの恒等変換(DSTは離散サイン変換を表す)を含み得るが、これらに限定されない。したがって、2D変換プロセスは、ハイブリッド変換または変換カーネル(コーディングされた残差ブロックのそれぞれの次元ごとに異なる変換)の使用を伴うことができ、それぞれの次元ごとに使用されるべき変換または変換カーネルの選択は、レート歪み(RD)基準に基づくことができる。変換カーネルという用語は、代替的に変換基底関数と呼ばれる場合がある。例えば、2D変換のハイブリッドとして実現され得る1D DCT-2、DST-4、およびDST-7の基底関数を表4に列挙する(ここで、DCTは離散コサイン変換を表す)。
【0141】
【0142】
例えば、DCT-2(4p-64p)、DST-4(8p、16p)、およびDST-7(4p)変換は、対称性/逆対称性特性を示し、したがって、いくつかの例示的な実装形態では、(乗算、加算/部分、シフト)演算カウント数を減らすために、「部分バタフライ」実装をサポートすることができる。部分バタフライ実装は、
図19に記載されているように、様々な角度での三角余弦関数および正弦関数を使用した平面回転を伴い得る。例示的な12ビットルックアップテーブルが
図20および
図21に示されており、このテーブルを三角関数の値を生成するために利用することができる。
【0143】
いくつかの実装形態では、一次変換係数に対する二次変換が実行されてもよい。例えば、
図22に示すように、一次変換係数をさらに非相関化するために、低減された二次変換として知られているLFNST(低周波数分離不可能な変換)が、順方向一次変換と量子化との間(エンコーダにおける)、および逆量子化と逆方向一次変換との間(デコーダ側における)に適用され得る。本質的に、LFNSTは、二次変換に進むために、一次変換係数の一部、例えば、低周波数部分(したがって、変換ブロックの一次変換係数の完全なセットから「削減された」部分)を取り得る。例示的なLFNSTでは、変換ブロックサイズに従って、4×4の分離不可能な変換または8×8の分離不可能な変換が適用されてもよい。例えば、小さい変換ブロック(例えば、min(幅、高さ)<8)には4×4 LFNSTが適用され、大きい変換ブロック(例えば、min(幅、高さ)>8)には8×8 LFNSTが適用されてもよい。例えば、8×8変換ブロックが4×4 LFNSTの影響を受ける場合、8×8一次変換係数の低周波数4×4部分のみがさらに二次変換を受ける。
【0144】
図22に具体的に示すように、変換ブロックは、8×8(または16×16)であってもよい。したがって、変換ブロックの順方向一次変換2202は、8×8(または16×16)一次変換係数行列2204を生成し、各正方形ユニットは、2×2(または4×4)部分を表す。順方向LFNSTへの入力は、例えば、8×8(または16×16)一次変換係数全体でなくてもよい。例えば、4×4(または8×8)LFNSTが二次変換に使用され得る。したがって、斜線部分(左上)2206に示されるように、一次変換係数行列2204の4×4(または8×8)低周波数一次変換係数のみが、LFNSTへの入力として使用され得る。一次変換係数行列の残りの部分は、二次変換を受けなくてもよい。したがって、二次変換の後、LFNSTの影響を受ける一次変換係数の部分は、二次変換係数になるが、LFNSTの影響を受けない残りの部分(例えば、行列2204の斜線が付されていない部分)は、対応する一次変換係数を維持する。いくつかの例示的な実装形態では、二次変換の対象ではない残りの部分は、すべて0係数に設定されてもよい。
【0145】
LFNSTで使用される分離不可能な変換の適用の一例が、以下に記載される。一例の4×4 LFNSTを適用するために、4×4入力ブロックX(例えば、
図22の一次変換行列2204の斜線部分2206のような一次変換係数ブロックの4×4低周波数部分を表す)は、以下のように表すことができる。
【数2】
【0146】
この2D入力行列は、最初に線形化されるか、または一例の順序でベクトル
【数3】
に走査されてもよい。
【数4】
【0147】
次いで、4×4 LFNSTの分離不可能な変換を
【数5】
として計算することができ、
【数6】
は出力変換係数ベクトルを示し、Tは16×16変換行列である。結果として得られる16×1係数ベクトル
【数7】
は、続いて、そのブロックの走査順序(例えば、水平、垂直、または斜め)を使用して4×4ブロックとして逆走査される。より小さいインデックスを有する係数は、4×4係数ブロック内のより小さい走査インデックスと共に配置され得る。このようにして、一次変換係数Xの冗長性は、第2の変換Tを介してさらに活用することができ、それによって追加の圧縮強化を提供する。
【0148】
上記の例示的なLFNSTは、分離不可能な変換を適用するための直接行列乗算手法に基づいており、その結果、複数の反復なしに単一パスで実行される。いくつかのさらなる例示的な実装形態では、変換係数を記憶するための計算の複雑さおよびメモリ空間要件を最小限に抑えるために、例4×4 LFNSTの分離不可能な変換行列(T)の次元をさらに低減することができる。このような実装形態は、低減された分離不可能な変換(RST)と呼ばれてもよい。より詳細には、RSTの主な概念は、N(Nは、上記の例では4×4=16であるが、8×8ブロックについては64に等しくてもよい)次元ベクトルを異なる空間内のR次元ベクトルにマッピングすることであり、N/R(R<N)は次元低減係数を表す。したがって、N×N変換行列の代わりに、RST行列は以下のようにR×N行列になり、
【数8】
【0149】
ここで、変換行列のR行は、N次元空間の低減されたR基底である。したがって、変換は、入力ベクトルまたはN次元を、低減されたR次元の出力ベクトルに変換する。したがって、
図22に示すように、一次係数2206から変換された二次変換係数2208は、次元で係数またはN/Rだけ低減される。
図22の2208の周囲の3つの正方形は、ゼロ詰めされてもよい。
【0150】
RTSの逆変換行列は、その順方向変換の転置であり得る。一例の8×8 LFNST(ここでのより多様な説明のために、上記の4×4 LFNSTと対比される)の場合、一例の低減係数4を適用することができ、したがって、64×64の直接の分離不可能な変換行列は、それに応じて16×64の直接行列に低減される。さらに、いくつかの実装形態では、入力一次係数の全体ではなく一部がLFNSTの入力ベクトルに線形化されてもよい。例えば、例示の8×8の入力一次変換係数の一部のみが上記のXベクトルに線形化されてもよい。特定の例では、8×8の一次変換係数行列の4つの4×4象限のうち、右下(高周波数係数)は除外することができ、他の3つの象限のみが、64×1ベクトルではなく事前定義された走査順序を使用して48×1ベクトルに線形化される。そのような実装形態では、分離不可能な変換行列は、16×64から16×48にさらに低減されてもよい。
【0151】
したがって、例示的な低減された48×16の逆RST行列をデコーダ側で使用して、8×8のコア(一次)変換係数の左上、右上、および左下の4×4象限を生成することができる。具体的には、同じ変換セット構成を有する16×64 RSTの代わりに、さらに低減された16×48 RST行列が適用される場合、分離不可能な二次変換は、右下の4×4ブロックを除く8×8の一次係数ブロックの3つの4×4象限ブロックからベクトル化された48個の行列要素を入力として取得する。そのような実装形態では、省略された右下の4×4一次変換係数は、二次変換で無視される。このさらに低減された変換は、48×1のベクトルを16×1の出力ベクトルに変換し、これは
図22の2208を満たすために4×4行列に反対に走査される。2208を囲む二次変換係数の3つの正方形は、ゼロ詰めされてもよい。
【0152】
RSTの寸法のこのような低減の助けを借りて、すべてのLFNST行列を記憶するためのメモリ使用量が削減される。上記の例では、例えば、メモリ使用量は、次元低減のない実装形態と比較して、合理的にわずかな性能低下で10KBから8KBに削減され得る。
【0153】
いくつかの実装形態では、複雑さを低減するために、LFNSTは、LFNSTの対象となる一次変換係数部分の外側のすべての係数(例えば、
図22の2204の2206部分の外側)が有意でない場合にのみ適用可能であるようにさらに制限される場合がある。したがって、LFNSTが適用される場合、すべての一次のみの変換係数(例えば、
図22の一次係数行列2204の斜線が付されていない部分)は0に近くなり得る。そのような制限は、最終有意位置でのLFNSTインデックス信号伝達の調整を可能にし、したがって、この制限が適用されないときに特定の位置で有意係数をチェックするために必要とされ得る追加の係数走査を回避する。いくつかの実装形態では、LFNSTの最悪の場合の処理(画素あたりの乗算に関して)は、4×4および8×8ブロックの分離不可能な変換を、それぞれ8×16および8×48変換に制限することができる。そのような場合、LFNSTが適用される場合、16未満の他のサイズでは、最終有意走査位置は8未満でなければならない。4×NおよびN×4およびN>8の形状を有するブロックの場合、上記の制限は、LFNSTが左上の4×4領域に1回だけ適用されることを意味する。LFNSTが適用されるとき、すべての一次のみの係数は0であるため、そのような場合、一次変換に必要な演算の数は削減される。エンコーダの観点から、係数の量子化は、LFNST変換がテストされるときに単純化され得る。レート歪み最適化量子化(RDO)は、(走査順に)最初の16個の係数について最大で行われなければならず、残りの係数は0になるように強制されてもよい。
【0154】
いくつかの例示的な実装形態では、利用可能なRSTカーネルは、各変換セットがいくつかの分離不可能な変換行列を含むいくつかの変換セットとして指定されてもよい。例えば、LFNSTで使用される変換セットごとに合計4つの変換セットおよび2つの分離不可能な変換行列(カーネル)が存在する可能性がある。これらのカーネルは、オフラインで事前訓練されてもよく、したがってデータ駆動される。オフラインで訓練された変換カーネルは、エンコーディング/デコーディングプロセス中に使用するために、メモリに記憶されるか、またはエンコーディングデバイスもしくはデコーディングデバイスにハードコーディングされてもよい。エンコーディングまたはデコーディングプロセス中の変換セットの選択は、イントラ予測モードによって決定され得る。イントラ予測モードから変換セットへのマッピングは、事前定義されてもよい。そのような事前定義されたマッピングの一例が、表4に示されている。例えば、表4に示すように、3つの交差成分線形モデル(CCLM)モード(INTRA_LT_CCLM、INTRA_T_CCLM、またはINTRA_L_CCLM)のうちの1つが現在のブロック(すなわち、81<=predModeIntra<=83である)に使用される場合、変換セット0が現在のクロマブロックに対して選択され得る。各変換セットについて、選択された分離不可能な二次変換候補は、明示的にシグナリングされたLFNSTインデックスによってさらに指定され得る。例えば、インデックスは、変換係数の後、イントラCUごとに1回、ビットストリームでシグナリングされてもよい。
【0155】
【0156】
LFNSTは、上記の例示的な実装形態において、第1の係数サブグループまたは部分の外側のすべての係数が有意でない場合にのみ適用可能であるように制限されるため、LFNSTインデックスコーディングは、最終有意係数の位置に依存する。加えて、LFNSTインデックスはコンテキストコーディングされてもよいが、イントラ予測モードに依存せず、第1のビンのみがコンテキストコーディングされてもよい。さらに、LFNSTは、イントラおよびインタースライスの両方におけるイントラCU、ならびにルマとクロマの両方に適用され得る。二重ツリーが有効になっている場合、ルマ成分およびクロマ成分のLFNSTインデックスを別々にシグナリングすることができる。インタースライス(二重ツリーが無効にされている)の場合、単一のLFNSTインデックスがシグナリングされ、ルマとクロマの両方に使用される。
【0157】
いくつかの例示的な実装形態では、イントラサブパーティショニング(ISP)モードが選択されると、実行可能なすべてのパーティションブロックにRSTが適用されたとしても性能向上は限界がある可能性が高いため、LFNSTが無効化され、RSTインデックスがシグナリングされない場合がある。さらに、ISP予測残差のRSTを無効にすると、エンコーディングの複雑さを低減することができる。いくつかのさらなる実装形態では、多重線形回帰イントラ予測(MIP)モードが選択されたとき、LFNSTも無効にされ、RSTインデックスはシグナリングされなくてもよい。
【0158】
既存の最大変換サイズ制限(例えば、64×64)に起因して、64×64を超える大きなCU(または最大変換ブロックサイズを表す任意の他の事前定義されたサイズ)が暗黙的に分割(例えば、TUタイリング)されることを考慮すると、LFNSTインデックス検索は、特定の数のデコーディングパイプラインステージについてデータバッファリングを4倍増加させることができる。したがって、いくつかの実装形態では、LFNSTが許容される最大サイズは、例えば、64×64に制限され得る。いくつかの実装形態では、LFNSTは、一次変換としてのみDCT2で有効にすることができる。
【0159】
CIIPモードでは、インター予測とイントラ予測の両方を実行する必要があり、一次変換と二次変換の両方が含まれる。CIIPモードでコーディングされたブロックに対して一次変換を実行するとき、一次変換(または一次変換カーネル)は、例えば、表4に列挙されるように、利用可能な三角変換および恒等変換から選択されなければならない場合がある。CIIPモードにおけるイントラ予測は、DC_PRED、V_PRED、H_PRED、およびSMOOTHモードのうちの1つのもとで実行されてもよく、利用可能な選択は、CIIPモードを使用してイントラ予測を実行するときに残差信号を効率的に非相関化するために理想的ではない場合がある。CIIPには様々なサブモードが存在し、CIIPモードは通常CIIPおよびウェッジCIIPを含むことができるので、特定のCIIP構成(例えば、CIIPサブモード、通常CIIPおよびウェッジCIIPなどのCIIP重み付けモード)に適合する二次変換カーネルを選択するためのメカニズムが重要である。本開示では、少なくともこのタスクを達成することを目的とした様々な実装形態について説明する。
【0160】
本開示では、二次変換セットは、変換カーネル(または候補)オプションのグループを指す。変換セットは、1つまたは複数の変換カーネル(または候補)オプションを含み得る。
【0161】
本開示では、一次変換は、DCT、ADST、反転されたADST(FLIPADST)、LGT、および行-列変換(RCT)の組み合わせを指すことができる例えば、ブロックに対してDCTを水平に適用し、ADSTを垂直に適用することができる。
【0162】
いくつかの実装形態では、CIIPモードのもとで、二次変換は分離不可能であり得る。さらに、分離不可能な二次変換の選択は、CIIPのイントラ予測部分のイントラ予測モードに依存し得る。
【0163】
いくつかの実装形態では、CIIPモードは、CIIPのイントラ予測部分と相関され得る。したがって、分離不可能な二次変換の選択は、直接的または間接的に、CIIPモードに依存し得る。
【0164】
いくつかの実装形態では、CIIPモードを使用してブロックが予測されるとき、残差(または残差ブロック、残差行列)は、分離可能/分離不可能な一次変換を使用してコーディングされ得る。そして、分離不可能な二次変換、すなわち組み合わされたインターイントラ二次変換(CIIST)がさらに適用されてもよい。
【0165】
いくつかの実装形態では、二次変換は、分離不可能であるのみであり得る。
【0166】
いくつかの実装形態では、二次変換は、分離可能であるのみであり得る。
【0167】
いくつかの実装形態では、二次変換は、分離可能または分離不可能であり得る。
【0168】
いくつかの実装形態では、各イントラ予測モードは、複数の変換カーネルを含む変換カーネルセットにマッピングするか、またはそれに対応することができる。CIIPモードを使用して予測を実行する場合、(CIIPのイントラ予測部分の)イントラ予測モードは、CIIPサブモードに基づいて決定されてもよい。例示的なCIIPサブモードは、前のセクションの表2に見出すことができる。一例として、各CIIPサブモードは、イントラ予測モードにマッピングすることができる。イントラ予測モードが決定されると、二次変換カーネルセットは、イントラ予測モードに基づいて導出され得る。二次変換のための変換カーネルは、シグナリングによって、例えば、シグナリングされるカーネルインデックスによって決定され得る。変換カーネルはまた、ブロック自体、例えば、ブロックのパターンに基づいて導出されてもよい。
【0169】
いくつかの実装形態では、CIIPサブモードは、DC_PRED、V_PRED、H_PRED、またはSMOOTH_PREDモードのいずれか1つにマッピングされ得る。
【0170】
いくつかの実装形態では、II_DC_PRED CIIPサブモードは、DC_PREDイントラ予測モードにマッピングすることができる。DC_PREDイントラ予測モードに対応する(または事前に関連付けられた)二次変換カーネルセットが、選択されてもよい。
【0171】
いくつかの実装形態では、CIIPサブモードがII_DC_PREDであるとき、二次変換カーネルは、DC_PREDイントラ予測モードに事前に関連付けられ得る。
【0172】
いくつかの実装形態では、II_SMOOTH_PRED CIIPサブモードは、SMOOTH_PREDイントラ予測モードにマッピングすることができる。SMOOTH_PREDイントラ予測モードに対応する(または事前に関連付けられた)二次変換カーネルセットが、選択されてもよい。
【0173】
いくつかの実装形態では、CIIPサブモードがII_SMOOTH_PREDであるとき、二次変換カーネルは、SMOOTH_PREDイントラ予測モードに事前に関連付けられ得る。
【0174】
いくつかの実装形態では、II_V_PRED CIIPサブモードは、V_PREDイントラ予測モードにマッピングすることができる。V_PREDイントラ予測モードに対応する(または事前に関連付けられた)二次変換カーネルセットが、選択されてもよい。
【0175】
いくつかの実装形態では、CIIPサブモードがII_V_PREDであるとき、二次変換カーネルは、V_PREDイントラ予測モードに事前に関連付けられ得る。
【0176】
いくつかの実装形態では、II_H_PRED CIIPサブモードは、H_PREDイントラ予測モードにマッピングすることができる。H_PREDイントラ予測モードに対応する(または事前に関連付けられた)二次変換カーネルセットが、選択されてもよい。
【0177】
いくつかの実装形態では、CIIPサブモードがII_H_PREDであるとき、二次変換カーネルは、H_PREDイントラ予測モードに事前に関連付けられ得る。いくつかの実装形態では、CIIPサブモードをイントラ予測モードにマッピングするとき、さらなる制限または事前条件が課され得る。例えば、CIIP(例えば、通常CIIP、ウェッジCIIP)の特定の重み付けモードが必要とされ得る。一実装形態では、CIIPサブモードをイントラ予測モードにマッピングするための方式は、CIIPが通常CIIPである場合にのみ適用することができる。例示的な通常CIIPとして、ビデオブロックに関連付けられたイントラ予測重みは、イントラ予測モードに依存し、イントラ予測の予測方向に沿って減少する。
【0178】
いくつかの実装形態では、CIIPサブモードをイントラ予測モードにマッピングするための方式は、CIIPがウェッジCIIPである場合に適用することができる。
【0179】
いくつかの実装形態では、CIIPがウェッジCIIPである場合、二次変換のためのカーネルは、ウェッジパターンに基づいて二次変換カーネルセットから選択され得る(ウェッジパターンの詳細については前のセクションを参照されたい)。一例として、CIIPモードのもとでのビデオブロックに関連付けられたイントラ予測重みは、空間重み付けパターン(ウェッジパターンである)によって特徴付けることができる。
【0180】
いくつかの実装形態では、CIIPがウェッジCIIPである場合、二次変換カーネルは、ウェッジパターンに基づいて直接決定されてもよい。
【0181】
図23は、上記の実装形態の基礎となる原理に従う例示的なビデオデコーディング方法のフローチャート2300を示す。方法2300は、以下のステップの一部または全部を含むことができる。ステップ2310、現在のブロックがCIIPモードのもとで予測されたと決定する、ステップ2320、ビデオビットストリームから現在のブロックについての二次変換係数のセットを生成する、ステップ2330、二次変換係数のセットに対して逆分離可能または分離不可能な二次変換を実行し、現在のブロックの一次変換係数のセットを取得することによって、および一次変換係数のセットに対して逆方向一次変換を実行し、現在のブロックの残差ブロックを取得することによって組み合わされたインターイントラ二次変換を適用する、およびステップ2340、CIIPモードのもとで、残差ブロックから現在のブロックをデコーディングする。
【0182】
本開示の実施形態および実装形態では、所望により、任意のステップおよび/または動作は、任意の量または順序で組み合わされるか、または配置されてもよい。ステップおよび/または動作のうちの2つ以上が、並列に実行されてもよい。本開示の実施形態および実装形態は、別々に使用されてもよく、任意の順序で組み合わされてもよい。さらに、方法(または実施形態)の各々、エンコーダ、およびデコーダは、処理回路(例えば、1つまたは複数のプロセッサまたは1つまたは複数の集積回路)によって実装されてもよい。一例では、1つまたは複数のプロセッサは、非一時的コンピュータ可読媒体に記憶されたプログラムを実行する。本開示の実施形態は、ルマブロックまたはクロマブロックに適用されてもよい。ブロックという用語は、予測ブロック、コーディングブロック、またはコーディングユニット、すなわちCUとして解釈されてもよい。ここでのブロックという用語はまた、変換ブロックを指すために使用されてもよい。以下の項目では、ブロックサイズと言うとき、それは、ブロックの幅もしくは高さ、または幅および高さの最大値、または幅および高さの最小値、またはエリアのサイズ(幅*高さ)、またはブロックのアスペクト比(幅:高さ、もしくは高さ:幅)のいずれかを指すことができる。
【0183】
上述された技法は、コンピュータ可読命令を使用するコンピュータソフトウェアとして実現され、1つまたは複数のコンピュータ可読媒体に物理的に記憶することができる。例えば、
図24は、開示された主題の特定の実施形態を実現するのに適したコンピュータシステム(2500)を示す。
【0184】
コンピュータソフトウェアは、アセンブリ、コンパイル、リンクなどのメカニズムに従うことができる任意の適切な機械コードまたはコンピュータ言語を使用してコーディングされ、1つまたは複数のコンピュータ中央処理装置(CPU)、グラフィックス処理装置(GPU)などによって直接、または解釈、マイクロコード実行などを介して、実行され得る命令を含むコードを作成することができる。
【0185】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲーム機、モノのインターネット・デバイスなどを含む様々なタイプのコンピュータまたはコンピュータの構成要素上で実行することができる。
【0186】
コンピュータシステム(2500)に関して
図24に示す構成要素は、本質的に例示であり、本開示の実施形態を実現するコンピュータソフトウェアの使用または機能の範囲に関する限定を示唆することを意図していない。構成要素の構成は、コンピュータシステム(2500)の例示的な実施形態に示されている構成要素のいずれか1つまたは組み合わせに関して依存性も要件も有していないと解釈されるべきである。
【0187】
コンピュータシステム(2500)は、特定のヒューマンインターフェース入力デバイスを含み得る。そのようなヒューマンインターフェース入力デバイスは、例えば、触覚入力(キーストローク、スワイプ、データグローブの動きなど)、オーディオ入力(音声、拍手など)、視覚入力(ジェスチャなど)、嗅覚入力(図示せず)を通じて、1人または複数の人間ユーザによる入力に応答することができる。ヒューマンインターフェースデバイスは、オーディオ(音声、音楽、環境音など)、画像(走査画像、写真画像は静止画像カメラから取得など)、ビデオ(2次元ビデオ、立体ビデオを含む3次元ビデオなど)など、必ずしも人間による意識的な入力に直接関連しない特定の媒体を取り込むためにも使用され得る。
【0188】
入力ヒューマンインターフェースデバイスは、キーボード(2501)、マウス(2502)、トラックパッド(2503)、タッチスクリーン(2510)、データグローブ(図示せず)、ジョイスティック(2505)、マイクロフォン(2506)、スキャナ(2507)、カメラ(2508)のうち1つまたは複数(各々の1つのみ図示)を含み得る。
【0189】
コンピュータシステム(2500)はまた、特定のヒューマンインターフェース出力デバイスを含んでもよい。そのようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音、光、および嗅覚/味覚を通して、1人または複数の人間ユーザの感覚を刺激していることがある。そのようなヒューマンインターフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン(2510)、データグローブ(図示せず)、またはジョイスティック(2505)による触覚フィードバックを含み得るが、入力デバイスとして機能しない触覚フィードバックデバイスもあり得る)、オーディオ出力デバイス(スピーカ(2509)、ヘッドホン(図示せず)など)、視覚出力デバイス(各々タッチスクリーン入力機能の有無にかかわらず、各々触覚フィードバック機能の有無にかかわらず、ステレオグラフィック出力、仮想現実の眼鏡(図示せず)、ホログラフィックディスプレイ、およびスモークタンク(図示せず)などの手段により、2次元の視覚出力または3次元以上の出力を出力することが可能なものもある、CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含むスクリーン(2510)など)、およびプリンタ(図示せず)を含み得る。
【0190】
コンピュータシステム(2500)はまた、CD/DVDなどの媒体(2521)を伴うCD/DVD ROM/RW(2520)を含む光学媒体、サムドライブ(2522)、リムーバブルハードドライブまたはソリッドステートドライブ(2523)、テープやフロッピーディスクなどのレガシー磁気媒体(図示せず)、ならびにセキュリティドングル(図示せず)などの専用のROM/ASIC/PLDベースのデバイスなど、人間がアクセス可能な記憶デバイスおよびこれに関連する媒体を含むこともできる。
【0191】
当業者はまた、本開示の主題に関連して使用される「コンピュータ可読媒体」という用語が、伝送媒体、搬送波、または他の一時的な信号を包含しないことを理解するべきである。
【0192】
コンピュータシステム(2500)はまた、1つまたは複数の通信ネットワーク(2555)へのインターフェース(2554)を含むことができる。ネットワークは、例えば、無線、有線、光であり得る。ネットワークはさらに、ローカル、ワイドエリア、メトロポリタン、車両用および産業用、リアルタイム、遅延耐性などであり得る。ネットワークの例には、イーサネット、無線LANなどのローカルエリアネットワーク、GSM、3G、4G、5G、LTEなどを含むセルラーネットワーク、ケーブルテレビ、衛星テレビ、および地上波放送テレビを含むテレビ有線または無線ワイドエリアデジタルネットワーク、CAN busを含む車両用および産業用などが含まれる。特定のネットワークは、通常、(例えば、コンピュータシステム(2500)のUSBポートなどの)特定の汎用データポートまたは周辺バス(2549)に取り付けられた外部ネットワークインターフェースアダプタを必要とし、他のネットワークは、通常、以下で説明するようなシステムバスに取り付けることによってコンピュータシステム(2500)のコアに統合される(例えば、PCコンピュータシステムへのイーサネットインターフェース、またはスマートフォンコンピュータシステムへのセルラーネットワークインターフェース)。これらのネットワークのいずれかを使用して、コンピュータシステム(2500)は、他のエンティティと通信することができる。このような通信は、単方向、受信のみ(例えば、テレビ放送)、単方向送信のみ(例えば、特定のCANbusデバイスへのCANbus)、または例えば、ローカルもしくはワイドエリアデジタルネットワークを使用した他のコンピュータシステムに対する双方向のものであり得る。特定のプロトコルおよびプロトコルスタックは、上述したように、それらのネットワークおよびネットワークインターフェースの各々で使用され得る。
【0193】
前述のヒューマンインターフェースデバイス、人間がアクセス可能な記憶デバイス、およびネットワークインターフェースは、コンピュータシステム(2500)のコア(2540)に取り付けることができる。
【0194】
コア(2540)は、1つまたは複数の中央処理装置(CPU)(2541)、グラフィックス処理装置(GPU)(2542)、フィールドプログラマブルゲートエリア(FPGA)(2543)の形式の専用のプログラマブル処理装置、特定のタスク用のハードウェアアクセラレータ(2544)、グラフィックスアダプタ(2550)などを含み得る。これらのデバイスは、読み取り専用メモリ(ROM)(2545)、ランダムアクセスメモリ(2546)、ユーザがアクセスできない内部ハードドライブ、SSDなどの内部大容量ストレージ(2547)と共に、システムバス(2548)を通して接続され得る。いくつかのコンピュータシステムでは、システムバス(2548)は、1つまたは複数の物理プラグの形式でアクセス可能であり、追加のCPU、GPUなどによる拡張を可能にする。周辺デバイスは、コアのシステムバス(2548)に直接取り付けることも、または周辺バス(2549)を通して取り付けることもできる。一例では、スクリーン(2510)は、グラフィックスアダプタ(2550)に接続され得る。周辺バス用のアーキテクチャには、PCI、USBなどが含まれる。
【0195】
CPU(2541)、GPU(2542)、FPGA(2543)、およびアクセラレータ(2544)は、組み合わせて、前述のコンピュータコードを構成することができる特定の命令を実行することができる。そのコンピュータコードは、ROM(2545)またはRAM(2546)に記憶することができる。移行データもRAM(2546)に記憶することができるが、永続データは、例えば、内部大容量ストレージ(2547)に記憶することができる。1つまたは複数のCPU(2541)、GPU(2542)、大容量ストレージ(2547)、ROM(2545)、RAM(2546)などと密接に関連付けられ得るキャッシュメモリを使用することにより、任意のメモリデバイスに対する高速記憶および取り出しが可能になる。
【0196】
コンピュータ可読媒体は、様々なコンピュータ実装動作を実現するためのコンピュータコードを有することができる。媒体およびコンピュータコードは、本開示の目的のために特別に設計および構築されたものであってもよく、またはコンピュータソフトウェア技術の当業者に周知の利用可能な種類のものであってもよい。
【0197】
非限定的な例として、アーキテクチャを有するコンピュータシステム(2500)、具体的にはコア(2540)は、(CPU、GPU、FPGA、アクセラレータなどを含む)プロセッサが1つまたは複数の有形のコンピュータ可読媒体に具現化されたソフトウェアを実行する結果としての機能を提供することができる。そのようなコンピュータ可読媒体は、上記で紹介されたユーザアクセス可能大容量ストレージ、ならびにコア内部大容量ストレージ(2547)またはROM(2545)などの非一時的な性質のコア(2540)の特定のストレージに関連付けられた媒体であり得る。本開示の様々な実施形態を実現するソフトウェアは、そのようなデバイスに記憶され、コア(2540)によって実行され得る。コンピュータ可読媒体は、特定の必要性に応じて、1つまたは複数のメモリデバイスまたはチップを含むことができる。ソフトウェアは、コア(2540)、具体的にはその中の(CPU、GPU、FPGAなどを含む)プロセッサに、RAM(2546)に記憶されたデータ構造を定義すること、およびソフトウェアによって定義されたプロセスに従ってそのようなデータ構造を修正することを含む、本明細書で説明される特定のプロセスまたは特定のプロセスの特定の部分を実行させることができる。加えて、または代替として、コンピュータシステムは、回路(例えば、アクセラレータ(2544))に結線接続または他の方法で具現化されたロジックの結果としての機能を提供することができ、これは、本明細書で説明される特定のプロセスまたは特定のプロセスの特定の部分を実行するためにソフトウェアの代わりに、またはソフトウェアと共に動作し得る。ソフトウェアへの言及は、必要に応じて、ロジックを包含することができ、その逆も同様である。コンピュータ可読媒体への言及は、必要に応じて、実行のためのソフトウェアを記憶する回路(集積回路(IC)など)、実行のためのロジックを具現化する回路、またはその両方を包含することができる。本開示は、ハードウェアとソフトウェアの任意の適切な組み合わせを包含する。
【0198】
本開示はいくつかの例示的な実施形態を記載しているが、本開示の範囲内に入る変更、置換、および様々な代替の等価物が存在する。よって、当業者は、本明細書に明示的に図示または記載されていないが、本開示の原理を具現化する、したがって本開示の趣旨および範囲内にある多数のシステムおよび方法を考案することができることが理解されよう。
付記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
【符号の説明】
【0199】
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 エンコーディングされたビデオデータ
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 CTB
1202 正方形パーティション
1204 正方形パーティション
1206 正方形パーティション
1208 正方形パーティション
1302 正方形コーディングブロック
1304 第1のレベルの分割
1306 第2のレベルの分割
1402 インターコーディングされたブロック
1404 変換ブロック
1702 ブロック
1704 参照サンプル
1706 隣接サンプル
1708 参照サンプル、隣接サンプル
1710 サンプル
2002 4×4ブロック、8×8ブロック
2010 サンプル
2202 順方向一次変換
2204 一次変換係数行列
2206 斜線部分、一次係数
2208 二次変換係数
2300 フローチャート
2500 コンピュータシステム
2501 キーボード
2502 マウス
2503 トラックパッド
2505 ジョイスティック
2506 マイクロフォン
2507 スキャナ
2508 カメラ
2509 スピーカ
2510 タッチスクリーン
2520 CD/DVD ROM/RW
2521 CD/DVDなどの媒体
2522 サムドライブ
2523 リムーバブルハードドライブまたはソリッドステートドライブ
2540 コア
2541 中央処理装置(CPU)
2542 グラフィックス処理装置(GPU)
2543 フィールドプログラマブルゲートエリア(FPGA)
2544 ハードウェアアクセラレータ
2545 読み取り専用メモリ(ROM)
2546 ランダムアクセスメモリ(RAM)
2547 コア内部大容量ストレージ
2548 システムバス
2549 周辺バス
2550 グラフィックスアダプタ
2554 インターフェース
2555 通信ネットワーク
【国際調査報告】