関連出願
[0001]本願は、2016年8月15日に出願された米国仮特許出願第62/375,383号および2016年10月5日に出願された米国仮特許出願第62/404,572号の利益を主張し、これら各々の内容全体が参照によってここに組み込まれている。
[0002]本開示は、ビデオコーディングに関する。
[0003]デジタルビデオ能力は、デジタルテレビ、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末(PDA)、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲーム機、セルラ式または衛星無線電話、いわゆる「スマートフォン」、ビデオテレビ会議デバイス、ビデオストリーミングデバイス、および同様のものを含む、広範囲のデバイスに組み込まれることができる。デジタルビデオデバイスは、様々なビデオコーディング規格によって定義されている規格において説明されるもののようなビデオコーディング技法をインプリメントする。ビデオコーディング規格には、ITU−T H.261、ISO/IEC MPEG−1ビジュアル、ITU−T H.262またはISO/IEC MPEG−2ビジュアル、ITU−T H.263、ISO/IEC MPEG−4ビジュアル、および(ISO/IEC MPEG−4 AVCとしても知られている)ITU−T H.264に加え、そのSVC(Scalable Video Coding)およびMVC(Multiview Video Coding)拡張が含まれる。
[0004]加えて、新たなビデオコーディング規格、すなわち高効率ビデオコーディング(HEVC)、が、ITU−T VCEG(Video Coding Experts Group)とISO/IEC MPEG(Motion Picture Experts Group)とからなるJCT−VC(Joint Collaboration Team on Video Coding)によって最近開発された。以降「HEVC WD」と呼ばれる最新のHEVCドラフト仕様は、http://phenix.int-evry.fr/jct/doc_end_user/documents/14_Vienna/wg11/JCTVC-N1003-v1.zipから入手可能である。HEVCと、RExt(Format Range)、SHVC(Scalability)、並びにMV(Multi-View)(MV−HEVC)拡張およびスクリーンコンテンツ拡張を含むその拡張との仕様は、http://phenix.int-evry.fr/jct/doc_end_user/current_document.php?id=10481から入手可能である。ITU−T VCEG(Q6/16)およびISO/IEC MPEG(JTC 1/SC 29/WG 11)は、現在、(スクリーンコンテンツコーディングおよび高ダイナミックレンジコーディングのための現在の拡張および近々の拡張を含む)現在のHEVC規格のものを大幅に上回る圧縮能力を有した将来のビデオコーディング技術の標準化に対する潜在的な必要性を研究している。
[0005]グループは、この分野の専門家が提案する圧縮技術設計を評価するために、JVET(Joint Video Exploration Team)として知られている共同研究の取組みにおいてこの探査活動に一緒に取り組んでいる。JVETは、2015年10月19−21日の間に初めて開かれた。最新バージョンの参照ソフトウェア、すなわちJEM3(Joint Exploration Model 3)は、https://jvet.hhi.fraunhofer.de/svn/svn_HMJEMSoftware/tags/HM-16.6-JEM-3.0/.からダウンロード可能である。JEM3についてのアルゴリズム記述は、J.Chen,E.Alshina,G.J.Sullivan,J.−R.Ohm,およびJ.Boyceによる「Algorithm description of Joint Exploration Test Model 3」,JVET−C1001,ジュネーブ、2016年6月、においてさらに説明されている。
[0006]ビデオデバイスは、そのようなビデオコーディング技法をインプリメントすることでより効率的にデジタルビデオ情報を送信、受信、符号化、復号、および/または記憶し得る。ビデオコーディング技法は、ビデオシーケンスに内在する冗長性を低減または取り除くために、空間(イントラピクチャ)予測および/または時間(インターピクチャ)予測を含む。ブロックベースのビデオコード化の場合、ビデオスライス(例えば、ビデオフレームまたはビデオフレームの一部)は、いくつかの技法では、ツリーブロック、コード化単位(CU)、および/またはコード化ノードとも呼ばれ得るビデオブロックへと区分化され得る。ピクチャのイントラコード化された(I)スライス中のビデオブロックは、同じピクチャにおける隣接ブロック中の基準サンプルに対して空間予測を使用して符号化される。ピクチャのインターコード化された(PまたはB)スライス中のビデオブロックは、同じピクチャにおける隣接ブロック中の基準サンプルに対して空間予測を使用するかまたは他の参照ピクチャ中の基準サンプルに対して時間予測を使用し得る。ピクチャは、フレームと呼ばれ得、参照ピクチャは、参照フレームと呼ばれ得る。
[0007]空間または時間予測は、コード化されることとなるブロックについての予測ブロックをもたらす。残差データは、コード化されることとなる元のブロックと予測ブロックとの間の画素差を表す。インターコード化されたブロックは、予測ブロックを形成する基準サンプルのブロックを指し示す動きベクトルと、コード化されたブロックと予測ブロックとの間の差分を示す残差データとにしたがって符号化される。イントラコード化されたブロックは、イントラコード化モードと残差データとにしたがって符号化される。さらなる圧縮のために、残差データは、画素ドメインから変換ドメインに変換され得、これは、残差変換係数をもたらし、これはその後量子化され得る。最初は二次元アレイで配置されている、量子化変換係数(quantized transform coefficient)が、一次元ベクトルの変換係数を作り出すために走査され得、エントロピーコード化が、さらなる圧縮を達成するために適用され得る。
[0008]一般に、本開示は、いくつかのケースでは、ルーマ成分およびクロマ成分に対して異なる分割情報を提供するツリー構造にしたがったイントラ予測を使用したビデオデータのコード化(例えば、復号または符号化)に関する技法を説明する。すなわち、説明される技法が互換性を有する様々な区分化スキームによれば、ルーマ区分化ツリー構造は、対応するクロマ区分化ツリー構造から分離され得る。説明される技法は、HEVCの拡張または次世代のビデオコーディング規格のような、アドバンスドビデオコーデックのコンテキストにおいて使用され得る。
[0009]一例では、ビデオデータをコード化するためのデバイスは、メモリと、このメモリと通信する処理回路とを含む。デバイスのメモリは、ビデオデータを記憶するように構成される。処理回路は、メモリに記憶されたビデオデータのルーマブロックを予測するのに利用可能な複数の導出モード(DM)が、メモリに記憶されたビデオデータのクロマブロックを予測するのにも利用可能であると決定するように構成され、クロマブロックはルーマブロックに対応する。処理回路は、クロマブロックに関して予測モードの候補リストを作成するようにさらに構成され、候補リストは、クロマブロックを予測するのに利用可能な複数のDMのうちの1つまたは複数のDMを含む。処理回路は、候補リストの1つまたは複数のDMのうちの任意のDMを使用してクロマブロックをコード化すると決定することと、候補リストの1つまたは複数のDMのうちの任意のDMを使用してクロマブロックをコード化するとの決定に基づいて、クロマブロックをコード化するために使用されるべき、候補リストの選択されたDMを識別するインジケーションをコード化することとを行うようにさらに構成される。処理回路は、候補リストの選択されたDMにしたがってクロマブロックをコード化するようにさらに構成される。
[0010]別の例では、ビデオデータをコード化する方法は、ビデオデータのルーマブロックを予測するのに利用可能な複数の導出モード(DM)がルーマブロックに対応するビデオデータのクロマブロックを予測するのにも利用可能であると決定することを含む。方法は、クロマブロックに関して予測モードの候補リストを作成すること、ここで、候補リストは、クロマブロックを予測するのに利用可能な複数のDMのうちの1つまたは複数のDMを含む、と、候補リストの1つまたは複数のDMのうちの任意のDMを使用してクロマブロックをコード化すると決定することとをさらに含む。方法は、候補リストの1つまたは複数のDMのうちの任意のDMを使用してクロマブロックをコード化するとの決定に基づいて、クロマブロックをコード化するために使用されるべき、候補リストの選択されたDMを識別するインジケーションをコード化することと、候補リストの選択されたDMにしたがってクロマブロックをコード化することとをさらに含む。
[0011]別の例では、装置は、ビデオデータのルーマブロックを予測するのに利用可能な複数の導出モード(DM)がルーマブロックに対応するビデオデータのクロマブロックを予測するのにも利用可能であると決定するための手段を含む。方法は、クロマブロックに関して予測モードの候補リストを作成すること、ここで、候補リストは、クロマブロックを予測するのに利用可能な複数のDMのうちの1つまたは複数のDMを含む、と、候補リストの1つまたは複数のDMのうちの任意のDMを使用してクロマブロックをコード化すると決定することとをさらに含む。装置は、クロマブロックに関して予測モードの候補リストを作成するための手段、ここで、候補リストは、クロマブロックを予測するのに利用可能な複数のDMのうちの1つまたは複数のDMを含む、と、候補リストの1つまたは複数のDMのうちの任意のDMを使用してクロマブロックをコード化すると決定するための手段とをさらに含む。装置は、候補リストの1つまたは複数のDMのうちの任意のDMを使用してクロマブロックをコード化するとの決定に基づいて、クロマブロックをコード化するために使用されるべき、候補リストの選択されたDMを識別するインジケーションをコード化するための手段と、候補リストの選択されたDMにしたがってクロマブロックをコード化するための手段とをさらに含む。
[0012]別の例では、非一時的なコンピュータ読取可能な記憶媒体は、命令で符号化され、これら命令は、実行されると、コンピューティングデバイスのプロセッサに、ビデオデータのルーマブロックを予測するのに利用可能な複数の導出モード(DM)がルーマブロックに対応するビデオデータのクロマブロックを予測するのにも利用可能であると決定させる。命令は、実行されると、プロセッサに、クロマブロックに関して予測モードの候補リストを作成すること、ここで、候補リストは、クロマブロックを予測するのに利用可能な複数のDMのうちの1つまたは複数のDMを含む、と、候補リストの1つまたは複数のDMのうちの任意のDMを使用してクロマブロックをコード化すると決定することとをさらに行わせる。命令は、実行されると、プロセッサに、クロマブロックに関して予測モードの候補リストを作成すること、ここで、候補リストは、クロマブロックを予測するのに利用可能な複数のDMのうちの1つまたは複数のDMを含む、と、候補リストの1つまたは複数のDMのうちの任意のDMを使用してクロマブロックをコード化すると決定することとをさらに行わせる。命令は、実行されると、プロセッサに、候補リストの1つまたは複数のDMのうちの任意のDMを使用してクロマブロックをコード化するとの決定に基づいて、クロマブロックをコード化するために使用されるべき、候補リストの選択されたDMを識別するインジケーションをコード化することと、候補リストの選択されたDMにしたがってクロマブロックをコード化することとをさらに行わせる。
[0013]別の例では、ビデオデータをコード化するためのデバイスは、メモリと、このメモリと通信する処理回路とを含む。デバイスのメモリは、ビデオデータを記憶するように構成される。処理回路は、メモリに記憶されたビデオデータのクロマブロックについての最確モード(MPM)候補リストを、このMPM候補リストが、クロマブロックに関連するビデオデータのルーマブロックに関連する1つまたは複数の導出モード(DM)と、ビデオデータの輝度成分をコード化するために使用可能な複数のルーマ予測モードとを含むように作成するように構成される。処理回路は、MPM候補リストからモードを選択することと、MPM候補リストから選択されたモードにしたがってクロマブロックをコード化することとを行うようにさらに構成される。
[0014]別の例では、ビデオデータのクロマブロックについての最確モード(MPM)候補リストを、このMPM候補リストが、クロマブロックに関連するビデオデータのルーマブロックに関連する1つまたは複数の導出モード(DM)と、ビデオデータの輝度成分をコード化するために使用可能な複数のルーマ予測モードとを含むように作成することを含む。方法は、MPM候補リストからモードを選択することと、MPM候補リストから選択されたモードにしたがってクロマブロックをコード化することとをさらに含む。
[0015]別の例では、装置は、ビデオデータのクロマブロックについての最確モード(MPM)候補リストを、このMPM候補リストが、クロマブロックに関連するビデオデータのルーマブロックに関連する1つまたは複数の導出モード(DM)と、ビデオデータの輝度成分をコード化するために使用可能な複数のルーマ予測モードとを含むように作成するための手段を含む。装置は、MPM候補リストからモードを選択するための手段と、MPM候補リストから選択されたモードにしたがってクロマブロックをコード化するための手段とをさらに含む。
[0016]別の例では、非一時的なコンピュータ読取可能な記憶媒体は、命令で符号化され、これら命令は、実行されると、コンピューティングデバイスのプロセッサに、ビデオデータのクロマブロックについての最確モード(MPM)候補リストを、このMPM候補リストが、クロマブロックに関連するビデオデータのルーマブロックに関連する1つまたは複数の導出モード(DM)と、ビデオデータの輝度成分をコード化するために使用可能な複数のルーマ予測モードとを含むように作成させる。命令は、実行されると、コンピューティングデバイスのプロセッサに、MPM候補リストからモードを選択することと、MPM候補リストから選択されたモードにしたがってクロマブロックをコード化することとをさらに行わせる。
[0017]1つまたは複数の例の詳細は、添付の図面および以下の説明で明記される。他の特徴、目的、および利点は、本説明および図面からおよび特許請求の範囲から明らかになるであろう。
図1は、本開示の技法を実行するように構成され得る例となるビデオ符号化および復号システムを例示するブロック図である。
図2は、本開示の技法を実行するように構成され得るビデオエンコーダの例を例示するブロック図である。
図3は、本開示の技法を実行するように構成され得るビデオデコーダの例を例示するブロック図である。
図4は、イントラ予測の態様を例示する概念図である。
図5は、ルーマブロックについてのイントラ予測モードを例示する概念図である。
図6は、平面モードの態様を例示する概念図である。
図7は、HEVCに係る角度モードの態様を例示する概念図である。
図8は、ピクチャにおけるルーマおよびクロマサンプルの公称の垂直および水平ロケーションの例を例示する概念図である。
図9は、線形モデル(LM)モードに係る予測において使用されるパラメータの導出に使用されるサンプルのロケーションを例示する概念図である。
図10は、四分木二分木(QTBT)構造を例示する概念図である。
図11Aは、QTBT区分化スキームに係る、対応するルーマおよびクロマブロックについての別個の区分化構造の例を例示する。
図11Bは、QTBT区分化スキームに係る、対応するルーマおよびクロマブロックについての別個の区分化構造の例を例示する。
図12Aは、本開示の1つまたは複数の態様に係る、クロマ予測モードの適応順序付けのための隣接ブロックセクションを例示する。
図12Bは、本開示の1つまたは複数の態様に係る、クロマ予測モードの適応順序付けのための隣接ブロックセクションを例示する。
図13Aは、上述した複数のDMモード選択ベース技法にしたがってクロマイントラ予測モードを選択するためにビデオ符号化および復号デバイスが使用し得るブロック位置の例を例示する概念図である。
図13Bは、上述した複数のDMモード選択ベース技法にしたがってクロマイントラ予測モードを選択するためにビデオ符号化および復号デバイスが使用し得るブロック位置の例を例示する概念図である。
図14は、本開示の態様に係る、ビデオ復号デバイスの処理回路が実行し得る例となるプロセスを例示するフローチャートである。
図15は、本開示の態様に係る、ビデオ符号化デバイスの処理回路が実行し得る例となるプロセスを例示するフローチャートである。
図16は、本開示の態様に係る、ビデオ復号デバイスの処理回路が実行し得る例となるプロセスを例示するフローチャートである。
図17は、本開示の態様に係る、ビデオ符号化デバイスの処理回路が実行し得る例となるプロセスを例示するフローチャートである。
詳細な説明
[0035]図1は、動きベクトル予測のための本開示の技法を実行するように構成され得る例となるビデオ符号化および復号システム10を例示するブロック図である。図1に示されるように、システム10は、宛先デバイス14によって後の時間に復号されることとなる符号化済みビデオデータを供給するソースデバイス12を含む。特に、ソースデバイス12は、コンピュータ読取可能な媒体16を介して宛先デバイス14にビデオデータを供給する。ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンのような電話ハンドセット、いわゆる「スマート」パッド、テレビ、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲーム機、ビデオストリーミングデバイス、または同様のものを含む、広範囲のデバイスのうちの任意のものを備え得る。いくつかのケースでは、ソースデバイス12および宛先デバイス14は、ワイヤレス通信のために装備され得る。
[0036]宛先デバイス14は、コンピュータ読取可能な媒体16を介して、復号されることとなる符号化済みビデオデータを受信し得る。コンピュータ読取可能な媒体16は、符号化済みビデオデータをソースデバイス12から宛先デバイス14に移動させる能力がある任意のタイプの媒体またはデバイスを備え得る。一例では、コンピュータ読取可能な媒体16は、ソースデバイス12が符号化済みビデオデータをリアルタイムに直接宛先デバイス14に送信することを可能にするための通信媒体を備え得る。符号化済みビデオデータは、ワイヤレス通信プロトコルのような通信規格にしたがって変調され、宛先デバイス14に送信され得る。通信媒体は、無線周波数(RF)スペクトルまたは1つまたは複数の物理伝送線のような任意のワイヤレスまたはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、広域ネットワーク、またはインターネットのようなグローバルネットワークといった、パケットベースのネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス12から宛先デバイス14への通信を容易にするのに有用であり得る任意の他の機器を含み得る。
[0037]いくつかの例では、符号化済みデータは、出力インターフェース22から記憶デバイスに出力され得る。同様に、符号化済みデータは、入力インターフェースによって記憶デバイスからアクセスされ得る。記憶デバイスは、ハードドライブ、ブルーレイディスク、DVD、CD−ROM、フラッシュメモリ、揮発性または非揮発性メモリ、または符号化済みビデオデータを記憶するための任意の他の適切なデジタル記憶媒体のような様々な分散型または局所的にアクセスされるデータ記憶媒体のうちの任意のものを含み得る。さらなる例では、記憶デバイスは、ファイルサーバ、またはソースデバイス12によって生成される符号化済みビデオを記憶し得る別の中間記憶デバイスに対応し得る。宛先デバイス14は、ストリーミングまたはダウンロードを介して、記憶デバイスからの記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化済みビデオデータを記憶するおよび符号化済みビデオデータを宛先デバイス14に送信する能力がある任意のタイプのサーバであり得る。例となるファイルサーバには、(例えば、ウェブサイトのための)ウェブサーバ、FTPサーバ、ネットワーク接続記憶(NAS)デバイス、またはローカルディスクドライブが含まれる。宛先デバイス14は、インターネット接続を含む、任意の標準データ接続を通して符号化済みビデオデータにアクセスし得る。これは、ファイルサーバに記憶されている符号化済みビデオデータにアクセスするのに適したワイヤレスチャネル(例えば、Wi−Fi接続)、ワイヤード接続(例えば、DSL、ケーブルモデム、等)または両方の組合せを含み得る。記憶デバイスからの符号化済みビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはそれらの組合せであり得る。
[0038]本開示の技法は、必ずしも、ワイヤレスアプリケーションまたはセッティングに制限されるわけではない。本技法は、無線テレビ放送、ケーブルテレビ送信、衛星テレビ送信、DASH(dynamic adaptive streaming over HTTP)のようなインターネットストリーミングビデオ送信、データ記憶媒体上で符号化されるデジタルビデオ、データ記憶媒体上に記憶されたデジタルビデオの復号、または他のアプリケーションのような、様々なマルチメディアアプリケーションのうちの任意のものをサポートして、ビデオコード化に適用され得る。いくつかの例では、システム10は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスト、および/またはビデオ電話のようなアプリケーションをサポートするために、単方向または双方向のビデオ送信をサポートするように構成され得る。
[0039]図1の例では、ソースデバイス12は、ビデオソース18と、ビデオエンコーダ20と、出力インターフェース22とを含む。宛先デバイス14は、入力インターフェース28と、ビデオデコーダ30と、ディスプレイデバイス32とを含む。本開示にしたがって、ソースデバイス12のビデオエンコーダ20は、本開示の技法を動きベクトル予測に適用するように構成され得る。他の例では、ソースデバイスおよび宛先デバイスは、他の構成要素または配置を含み得る。例えば、ソースデバイス12は、外部カメラのような外部ビデオソース18からビデオデータを受信し得る。同様に、宛先デバイス14は、統合されたディスプレイデバイスを含むよりむしろ外部ディスプレイデバイスとインターフェース接続し得る。
[0040]図1の例示されるシステム10は一例に過ぎない。動きベクトル予測のための本開示の技法は、任意のデジタルビデオ符号化および/または復号デバイスによって実行され得る。一般に、本開示の技法は、ビデオ符号化デバイスによって実行されるが、本技法は、典型的に「CODEC」と呼ばれるビデオエンコーダ/デコーダによっても実行され得る。さらに、本開示の技法は、ビデオプレプロセッサによっても実行され得る。ソースデバイス12および宛先デバイス14は、ソースデバイス12が宛先デバイス14への送信のためのコード化済みビデオデータを生成するそのようなコード化デバイスの例に過ぎない。いくつかの例では、デバイス12、14は、デバイス12、14の各々がビデオ符号化および復号構成要素を含むような略対称的に動作し得る。そのため、システム10は、例えば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、またはビデオ電話のために、ビデオデバイス12、14の間の単方向または双方向のビデオ送信をサポートし得る。
[0041]ソースデバイス12のビデオソース18は、ビデオカメラのようなビデオキャプチャデバイス、前にキャプチャされたビデオを含むビデオアーカイブ、および/またはビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェースを含み得る。さらなる代替として、ビデオソース18は、ライブビデオ、アーカイブされたビデオ、およびコンピュータ生成されたビデオの組合せ、またはソースビデオとしてコンピュータグラフィックベースのデータを生成し得る。いくつかのケースでは、ビデオソース18がビデオカメラである場合、ソースデバイス12および宛先デバイス14は、いわゆるカメラ電話またはビデオ電話を形成し得る。しかしながら、上述したように、本開示で説明される技法は、一般にビデオコード化に適用可能であり得、ワイヤレスおよび/またはワイヤードアプリケーションに適用され得る。いずれのケースでも、キャプチャされた、前にキャプチャされた、またはコンピュータ生成されたビデオは、ビデオエンコーダ20によって符号化され得る。その後、符号化済みビデオ情報は、コンピュータ読取可能な媒体16上に出力インターフェース22によって出力され得る。
[0042]コンピュータ読取可能な媒体16は、ワイヤレスブロードキャストまたはワイヤードネットワーク送信のような一時的な媒体、またはハードディスク、フラッシュドライブ、コンパクトディスク、デジタルビデオディスク、ブルーレイディスク、または他のコンピュータ読取可能な媒体のような記憶媒体(すなわち、非一時的な記憶媒体)を含み得る。いくつかの例では、ネットワークサーバ(図示されない)は、符号化済みビデオデータをソースデバイス12から受信し、例えば、ネットワーク送信を介して、符号化済みビデオデータを宛先デバイス14に供給し得る。同様に、ディスクスタンピング設備のような媒体製造設備(medium production facility)のコンピューティングデバイスは、符号化済みビデオデータをソースデバイス12から受信し、符号化済みビデオデータを含むディスクを作り出し得る。したがって、コンピュータ読取可能な媒体16は、様々な例では、様々な形式の1つまたは複数のコンピュータ読取可能な媒体を含むと理解され得る。
[0043]宛先デバイス14の入力インターフェース28は、コンピュータ読取可能な媒体16から情報を受信する。コンピュータ読取可能な媒体16の情報は、ブロックおよび他のコード化された単位、例えばGOP、の処理および/または特性を説明するシンタックス要素を含む、ビデオエンコーダ20によって定義され、そしてまたビデオデコーダ30によっても使用されるシンタックス情報を含み得る。ディスプレイデバイス32は、復号済みビデオデータをユーザに表示し、ブラウン管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスのような様々なディスプレイデバイスのうちの任意のものを備え得る。
[0044]ビデオエンコーダ20およびビデオデコーダ30は、高効率ビデオコーディング(HEVC)規格、HEVC規格への拡張、またはITU−T H.266といった後続の規格のようなビデオコーディング規格にしたがって動作し得る。代替的に、ビデオエンコーダ20およびビデオデコーダ30は、別名、MPEG−4,パート10,アドバンスドビデオコーディング(AVC)と呼ばれるITU−T H.264規格またはそのような規格の拡張のような他の専有規格または業界規格にしたがって動作し得る。しかしながら、本開示の技法は、いずれの特定のコーディング規格にも限定されない。ビデオコーディング規格の他の例は、MPEG−2およびITU−T H.263を含む。図1には示されていないが、いくつかの態様では、ビデオエンコーダ20およびビデオデコーダ30は、各々、オーディオエンコーダおよびデコーダと統合され得、共通データストリームまたは別個のデータストリームにおけるオーディオおよびビデオの両方の符号化に対処するために、好適なMUX−DEMUXユニットまたは他のハードウェアおよびソフトウェアを含み得る。適用可能な場合、MUX−DEMUXユニットは、ITU H.223マルチプレクサプロトコルに、またはユーザデータグラムプロトコル(UDP)のような他のプロトコルに準拠し得る。
[0045]ビデオエンコーダ20およびビデオデコーダ30は各々、1つまたは複数のマイクロプロセッサ、デジタルシグナルプロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理回路、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せのような、様々な適切なエンコーダ回路のうちの任意のものとしてインプリメントされ得る。本技法が部分的にソフトウェアでインプリメントされる場合、デバイスは、本開示の技法を実行するために、このソフトウェアのための命令を、適切で非一時的なコンピュータ読取可能な媒体に記憶し、1つまたは複数のプロセッサを使用してハードウェアで命令を実行し得る。ビデオエンコーダ20およびビデオデコーダ30の各々は、1つまたは複数のエンコーダまたはデコーダに含まれ得、それらのうちのどちらも、それぞれのデバイスにおいて複合エンコーダ/デコーダ(CODEC)の一部として統合され得る。
[0046]ビデオコーディング規格には、ITU−T H.261、ISO/IEC MPEG−1ビジュアル、ITU−T H.262またはISO/IEC MPEG−2ビジュアル、ITU−T H.263、ISO/IEC MPEG−4ビジュアル、および(ISO/IEC MPEG−4 AVCとしても知られている)ITU−T H.264に加え、そのSVC(Scalable Video Coding)およびMVC(Multiview Video Coding)拡張が含まれる。MVCの1つの共同ドラフトは、「Advanced video coding for generic audiovisual services」,ITU−T Recommendation H.264,2010年3月、に記載されている。
[0047]加えて、ITU−T VCEG(Video Coding Experts Group)とISO/IEC MPEG(Motion Picture Experts Group)とからなるJCT−VC(Joint Collaboration Team on Video Coding)によって開発された、新たに開発されたビデオコーディング規格、すなわち高効率ビデオコーディング(HEVC)が存在する。HEVCの最新のドラフトは、http://phenix.int-evry.fr/jct/doc_end_user/documents/12_Geneva/wg11/JCTVC-L1003-v34.zipから入手可能である。HEVC規格はまた、いずれも「High efficiency video coding」と題し、いずれも2014年10月に発行されたRecommendation ITU−T H.265および国際規格ISO/IEC23008−2において共同で提示されている。
[0048]JCT−VCは、HEVC規格を開発した。HEVC規格化の取組みは、HEVCテストモデル(HM)と呼ばれる、ビデオコード化デバイスの発展型モデルに基づいている。HMは、例えば、ITU−T H.264/AVCにしたがって、既存のデバイスに対してビデオコード化デバイスのいくつかの追加の能力を仮定する。例えば、H.264が、9つのイントラ予測符号化モードを提供するのに対し、HEVC HMは、33個ものイントラ予測符号化モードを提供し得る。
[0049]一般に、HMのワーキングモデルは、ビデオフレームまたはピクチャがルーマおよびクロマサンプルの両方を含む最大コード化単位(LCU)またはツリーブロックのシーケンスに分割され得ることを説明する。ビットストリーム内のシンタックスデータは、画素数の観点から最大コード化単位であるLCUについてのサイズを定義し得る。スライスは、コード化順序で連続した多数のツリーブロックを含む。ビデオフレームまたはピクチャは、1つまたは複数のスライスへと区分化され得る。各ツリーブロックは四分木にしたがってコード化単位(CU)に分割され得る。一般に、四分木データ構造は、ルートノードがツリーブロックに対応する状態で1つのCUにつき1つのノードを含む。CUが4つのサブCUへと分割される場合、CUに対応するノードは、4つのリーフノードを含み、それらの各々がサブCUのうちの1つに対応する。
[0050]四分木データ構造の各ノードは、対応するCUにシンタックスデータを供給し得る。例えば、四分木におけるノードは、このノードに対応するCUがサブCUへと分割されるかどうかを示す分割フラグを含み得る。CUに関するシンタックス要素は再帰的に定義され得、CUがサブCUへと分割されるかどうかに依存し得る。CUがこれ以上分割されない場合、それはリーフCUと呼ばれる。本開示では、たとえ元のリーフCUの明示的分割が存在しないとしても、リーフCUの4つのサブCUもまたリーフCUと呼ばれるであろう。例えば、16×16のサイズのCUがこれ以上分割されない場合、16×16のCUは分割されたことがないが、4つの8×8のサブCUもまたリーフCUと呼ばれるであろう。
[0051]CUは、CUがサイズ区別(size distinction)を有さないことを除いて、H.264規格のマクロブロックと同様の目的を有する。例えば、ツリーブロックは、(サブCUとも呼ばれる)4つの子ノードへと分割され得、各子ノードが次に親ノードになり、別の4つの子ノードへと分割され得る。四分木のリーフノードと呼ばれる、最終の分割されない子ノードは、リーフCUとも呼ばれるコード化ノードを備える。コード化されたビットストリームに関連するシンタックスデータは、最大CU深度と呼ばれる、ツリーブロックが分割され得る最大回数を定義し得、コード化ノードの最小サイズも定義し得る。したがって、ビットストリームもまた、最小コード化単位(SCU)を定義し得る。本開示は、HEVCのコンテキストにおけるCU、PU、またはTUのうちの任意のもの、または、他の規格のコンテキストにおける同様のデータ構造(例えば、H.264/AVCにおけるそれのマクロブロックおよびサブブロック)を指すために「ブロック」という用語を使用する。
[0052]CUは、コード化ノードと、このコード化ノードに関連する変換単位(TU)および予測単位(PU)とを含む。CUのサイズはコード化ノードのサイズに対応し、形状が正方形でなければならない。CUのサイズは、8×8画素から、最大64×64画素またはそれ以上のツリーブロックのサイズに及び得る。各CUは、1つまたは複数のPUおよび1つまたは複数のTUを含み得る。CUに関連するシンタックスデータは、例えば、1つまたは複数のPUへのCUの区分化を説明し得る。区分化モードは、CUが、スキップまたはダイレクトモード符号化されるか、イントラ予測モード符号化されるか、インター予測モード符号化されるかで異なり得る。PUは、形状が非正方形になるように区分化され得る。CUに関連するシンタックスデータはまた、例えば、四分木にしたがった1つまたは複数のTUへのCUの区分化を説明し得る。TUは、形状が正方形または非正方形(例えば、長方形)であることができる。
[0053]HEVC規格は、CUごとに異なり得るTUにしたがった変換を許容する。TUは典型的に、区分化されたLCUについて定義された所与のCU中のPUのサイズに基づいてサイズ変更されるが、これは、常に当てはまるわけではないであろう。TUは典型的に、PUと同じサイズであるかそれより小さい。いくつかの例では、CUに対応する残差サンプルは、「残差四分木」(RQT)として知られている四分木構造を使用して、より小さい単位へと細分され得る。RQTのリーフノードは、変換単位(TU)と呼ばれ得る。TUに関連する画素差値は、量子化され得る変換係数を作り出すために変換され得る。
[0054]リーフCUは、1つまたは複数の予測単位(PU)を含み得る。一般に、PUは、対応するCUの全体または一部に対応する空間エリアを表し、このPUについての基準サンプルを取り出すためのデータを含み得る。さらに、PUは、予測に関連するデータを含む。例えば、PUがイントラモード符号化されるとき、このPUについてのデータが残差四分木(RQT)に含まれ得、これは、このPUに対応するTUについてのイントラ予測モードを説明するデータを含み得る。別の例として、PUがインターモード符号化されるとき、PUは、このPUについての1つまたは複数の動きベクトルを定義するデータを含み得る。PUについての動きベクトルを定義するデータは、例えば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルについての解像度(例えば、4分の1画素精度または8分の1画素精度)、動きベクトルが指し示す参照ピクチャ、および/または動きベクトルについての参照ピクチャリスト(例えば、リスト0、リスト1、またはリストC)を説明し得る。
[0055]1つまたは複数のPUを有するリーフCUもまた、1つまたは複数の変換単位(TU)を含み得る。変換単位は、上述したように、(TU四分木構造とも呼ばれる)RQTを使用して指定され得る。例えば、分割フラグは、リーフCUが4つの変換単位へと分割されるかを示し得る。次いで、各変換単位は、さらなるサブTUへとさらに分割され得る。TUがこれ以上分割されないとき、それはリーフTUと呼ばれ得る。一般に、イントラコード化の場合、リーフCUに属するすべてのリーフTUが、同じイントラ予測モードを共有する。すなわち、リーフCUのすべてのTUの予測値を算出するために、同じイントラ予測モードが一般に適用される。イントラコード化の場合、ビデオエンコーダは、TUに対応するCUの部分と元のブロックとの間の差分として、イントラ予測モードを使用して各リーフTUの残差値を算出し得る。TUは、必ずしもPUのサイズに制限されるわけではない。ゆえに、TUは、PUより大きい場合も小さい場合もある。イントラコード化の場合、PUは、同じCUについて対応するリーフTUとコロケートされ得る。いくつかの例では、リーフTUの最大サイズは、対応するリーフCUのサイズに対応し得る。
[0056]さらに、リーフCUのTUはまた、残差四分木(RQT)と呼ばれるそれぞれの四分木データ構造に関連付けられ得る。すなわち、リーフCUは、リーフCUがどのようにTUへと区分化されるかを示す四分木を含み得る。TU四分木のルートノードは一般に、リーフCUに対応し、CU四分木のルートノードは一般に、ツリーブロック(または、LCU)に対応する。分割されないRQTのTUは、リーフTUと呼ばれる。一般に、本開示は、別途明記されていない限り、それぞれリーフCUおよびリーフTUを指すためにCUおよびTUという用語を使用する。
[0057]ビデオシーケンスは典型的に、一連のビデオフレームまたはピクチャを含む。GOP(group of pictures)は一般に、ビデオピクチャのうちの一連の1つまたは複数を備える。GOPは、GOPのヘッダ、ピクチャのうちの1つまたは複数のピクチャのヘッダ、またはその他の場所に、GOPに含まれるピクチャの数を説明するシンタックスデータを含み得る。ピクチャの各スライスは、それぞれのスライスについての符号化モードを説明するスライスシンタックスデータを含み得る。ビデオエンコーダ20は典型的に、ビデオデータを符号化するために、個々のビデオスライス内のビデオブロックに対して動作する。ビデオブロックは、CU内のコード化ノードに対応し得る。ビデオブロックは、一定のサイズまたは可変のサイズを有し得、指定のコーディング規格によってサイズが異なり得る。
[0058]例として、HMは、様々なPUサイズにおける予測をサポートする。特定のCUのサイズが2N×2Nであると想定すると、HMは、(8×8CUのケースでは)2N×2NまたはN×NというPUサイズでのイントラ予測と、2N×2N、2N×N、N×2N、またはN×Nという対称的なPUサイズでのインター予測とをサポートする。HMはまた、2N×nU、2N×nD、nL×2N、およびnR×2NというPUサイズでのインター予測について非対称的な区分化をサポートする。非対称な区分化では、CUの一方の方向は区分化されないが、もう一方の方向は25%および75%へと区分化される。25%区分に対応するCUの部分は、「n」と、それに続く「上(U:Up)」、「下(D:Down)」、「左(L:Left)」又は「右(R:Right)」というインジケーションとによって示される。ゆえに、例えば、「2N×nU」は、上には2N×0.5N PUが、下には2N×1.5N PUがくるように水平に区分化された2N×2N CUを指す。
[0059]本開示では、「N×N(NxN)」および「N×N(N by N)」は、垂直次元および水平次元の観点からビデオブロックの画素次元、例えば、16×16(16x16)画素または16×16(16 by 16)画素、を指すために、交換可能に使用され得る。一般に、16×16ブロックは、垂直方向に16画素(y=16)を、水平方向に16画素(x=16)を有するであろう。同様に、N×Nブロックは一般に、垂直方向にN画素を、水平方向にN画素を有し、ここで、Nは、自然数を表す。ブロック中の画素は、行と列に配置され得る。さらに、ブロックは、水平方向において、必ずしも、垂直方向と同じ数の画素を有する必要はない。例えば、ブロックは、N×M画素を備え得、ここで、Mは必ずしもNと等しいとは限らない。
[0060]CUのPUを使用するイントラ予測またはインター予測コード化に続いて、ビデオエンコーダ20は、CUのTUについて残差データを算出し得る。PUは、(画素ドメインとも呼ばれる)空間ドメインにおける予測画素データを生成する方法またはモードを説明するシンタックスデータを備え得、TUは、例えば、残差ビデオデータへの離散コサイン変換(DCT)、整数変換、ウェーブレット変換、または概念的に類似した変換のような変換の適用の後の変換ドメインにおける係数を備え得る。残差データは、PUに対応する予測値および符号化されていないピクチャの画素間の画素差に対応し得る。ビデオエンコーダ20は、CUについての残差データを含むTUを形成し、次いでTUを変換して、CUについての変換係数を作り出し得る。
[0061]変換係数を作り出すための任意の変換に続いて、ビデオエンコーダ20は、変換係数の量子化を実行し得る。量子化は一般に、変換係数を表すために使用されるデータ量をできる限り低減させためにそれら係数が量子化されるプロセスを指し、これは、さらなる圧縮を提供する。量子化プロセスは、これら係数のうちのいくつかまたはすべてに関連するビット深度を低減し得る。例えば、nビット値は、量子化中、mビット値へと端数が切り捨てられ得、ここで、nはmより大きい。
[0062]量子化に続いて、ビデオエンコーダは、変換係数を走査し得、量子化変換係数を含む二次元マトリックスから一次元ベクトルを作り出す。走査は、より高いエネルギー(そのため、より低い周波数)の係数をアレイの前方に置き、より低いエネルギー(そのため、より高い周波数)の係数をアレイの後方に置くように設計され得る。いくつかの例では、ビデオエンコーダ20は、予め定義された走査順序を利用して、量子化変換係数を走査し、エントロピー符号化されることができる直列ベクトルを作り出し得る。別の例では、ビデオエンコーダ20は、適応走査を実行し得る。一次元ベクトルを形成するために量子化変換係数を走査した後、ビデオエンコーダ20は、例えば、コンテキスト適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)、確率区間区分化エントロピー(PIPE)コーディング、または別のエントロピー符号化方法にしたがって、一次元のベクトルをエントロピー符号化し得る。ビデオエンコーダ20はまた、ビデオデータを復号する際に、ビデオデコーダ30による使用のために符号化済みビデオデータに関連するシンタックス要素をエントロピー符号化し得る。
[0063]CABACを実行するために、ビデオエンコーダ20は、送信されることとなるシンボルに、コンテキストモデル内のコンテキストを割り当て得る。コンテキストは、例えば、シンボルの隣接値が非ゼロであるか否かに関連し得る。CAVLCを実行するために、ビデオエンコーダ20は、送信されることとなるシンボルのための可変長コードを選択し得る。
[0064]VLCにおけるコードワードは、比較的短いコードがより可能性の高いシンボルに対応する一方で、より長いコードがより可能性の低いシンボルに対応するように構築され得る。このように、VLCの使用は、例えば、送信されることとなる各シンボルに対して等しい長さのコードワードを使用するよりもビット節約を達成し得る。確率の決定は、シンボルに割り当てられたコンテキストに基づき得る。
[0065]本開示の1つまたは複数の技法にしたがって、ビデオエンコーダ20および/またはビデオデコーダ30は、本開示の技法のうちの1つまたは複数をインプリメントし得る。例えば、ビデオエンコーダ20および/またはビデオデコーダ30は、動き推定および補償においてアフィンモデルを使用し得る。
[0066]図2は、動きベクトル予測のために本開示の技法を実行するように構成され得るビデオエンコーダ20の例を例示するブロック図である。ビデオエンコーダ20は、ビデオスライス内のビデオブロックのイントラおよびインターコード化を実行し得る。イントラコード化は、所与のビデオフレームまたはピクチャ内のビデオにおける空間冗長性を低減または取り除くために空間予測に依拠する。インターコード化は、ビデオシーケンスの隣接フレームまたはピクチャ内のビデオにおける時間冗長性を低減または取り除くために時間予測に依拠する。イントラモード(Iモード)は、いくつかの空間ベースのコード化モードのうちの任意のものを指し得る。単方向予測(Pモード)または双方向予測(Bモード)のようなインターモードは、いくつかの時間ベースのコード化モードのうちの任意のものを指し得る。
[0067]図2に示されるように、ビデオエンコーダ20は、符号化されることとなるビデオフレーム内の現在のビデオブロックを受け取る。図2の例では、ビデオエンコーダ20は、モード選択ユニット40と、参照ピクチャメモリ64と、加算器50と、変換処理ユニット52と、量子化ユニット54と、エントロピー符号化ユニット56とを含む。次に、モード選択ユニット40は、動き補償ユニット44と、動き推定ユニット42と、イントラ予測ユニット46と、区分ユニット48とを含む。ビデオブロックの再構築のために、ビデオエンコーダ20はまた、逆量子化ユニット58と、逆変換ユニット60と、加算器62とを含む。ブロック境界をフィルタ処理して、再構築されたビデオからブロッキネスアーティファクト(blockiness artifact)を取り除くためのデブロッキングフィルタ(図2には示されない)も含まれ得る。望まれる場合、デブロッキングフィルタは典型的に、加算器62の出力をフィルタ処理するであろう。(ループ中またはループ後の)追加のフィルタもまた、デブロッキングフィルタに加えて使用され得る。そのようなフィルタは、簡潔さのために示されないが、望まれる場合、(ループフ内フィルタとして)加算器50の出力をフィルタ処理し得る。
[0068]符号化プロセス中、ビデオエンコーダ20は、コード化されることとなるビデオフレームまたはスライスを受け取る。フレームまたはスライスは、複数のビデオブロックへと分割され得る。動き推定ユニット42および動き補償ユニット44は、時間予測を提供するために、1つまたは複数の参照フレーム中の1つまたは複数のブロックに対して、受け取ったビデオブロックのインター予測コード化を実行する。代替的に、イントラ予測ユニット46は、空間的予測を提供するために、コード化されることとなるブロックと同じフレームまたはスライス中の1つまたは複数の隣接ブロックに対して、受け取ったビデオブロックのイントラ予測コード化を実行し得る。ビデオエンコーダ20は、例えば、ビデオデータの各ブロックについて、好適なコード化モードを選択するために、複数のコード化パスを実行し得る。
[0069]さらに、区分ユニット48は、前のコード化パスにおける前の区分化スキームの評価に基づいて、ビデオデータのブロックをサブブロックへと区分化し得る。例えば、区分ユニット48は、レート−歪み分析(例えば、レート−歪み最適化)に基づいて、最初にフレームまたはスライスをLCUへと区分化し、LCUの各々をサブCUへと区分化し得る。モード選択ユニット40はさらに、サブCUへのLCUの区分化を示す四分木データ構造を作り出し得る。四分木のリーフノードCUは、1つまたは複数のPUおよび1つまたは複数のTUを含み得る。
[0070]モード選択ユニット40は、例えば、誤差結果に基づいて、コード化モード、イントラまたはインター、のうちの1つを選択し得、結果として得られたイントラまたはインターコード化されたブロックを、残差ブロックデータを生成するために加算器50におよび参照フレームとして使用される符号化済みブロックを再構築するために加算器62に提供する。モード選択ユニット40はまた、動きベクトル、イントラモードインジケータ、区分化情報、および他のそのようなシンタックス情報のようなシンタックス要素をエントロピー符号化ユニット56に提供する。
[0071]動き推定ユニット42および動き補償ユニット44は、高度に統合され得るが、概念的な目的のために別個に例示されている。動き推定ユニット42によって実行される動き推定は、ビデオブロックについての動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、例えば、現在のビデオフレームまたはピクチャ内のビデオブロックのPUの、現在のフレーム(または他のコード化された単位)内のコード化されている現在のブロックに関連した参照フレーム(または他のコード化された単位)内の予測ブロックに対する変位を示し得る。予測ブロックは、画素差の観点から、コード化されることとなるブロックに厳密に一致すると認められるブロックであり、これは、差分絶対値和(SAD)、差分二乗和(SSD)、または他の差分メトリックによって決定され得る。いくつかの例では、ビデオエンコーダ20は、参照ピクチャメモリ64に記憶された参照ピクチャのサブ整数画素位置の値を算出し得る。例えば、ビデオエンコーダ20は、参照ピクチャの4分の1画素位置、8分の1画素位置、または他の分数画素位置の値を補間し得る。したがって、動き推定ユニット42は、全画素位置および分数画素位置に対して動き探索を実行し、分数画素精度で動きベクトルを出力し得る。
[0072]動き推定ユニット42は、PUの位置を参照ピクチャの予測ブロックの位置と比較することで、インターコード化されたスライス中のビデオブロックのPUについての動きベクトルを算出する。参照ピクチャは、第1の参照ピクチャリスト(リスト0)または第2の参照ピクチャリスト(リスト1)から選択され得、それらは各々、参照ピクチャメモリ64に記憶された1つまたは複数の参照ピクチャを識別する。動き推定ユニット42は、算出された動きベクトルを、エントロピー符号化ユニット56および動き補償ユニット44に送る。
[0073]動き補償ユニット44によって実行される動き補償は、動き推定ユニット42によって決定された動きベクトルに基づいて、予測ブロックをフェッチすることまたは生成することを伴い得る。この場合も同様に、動き推定ユニット42および動き補償ユニット44は、いくつかの例では、機能的に統合され得る。現在のビデオブロックのPUについての動きベクトルを受け取ると、動き補償ユニット44は、動きベクトルが指し示す予測ブロックを参照ピクチャリストのうちの1つに位置付け得る。加算器50は、後述されるように、コード化されている現在のビデオブロックの画素値から予測ブロックの画素値を差し引き、画素差値を形成することで、残差ビデオブロックを形成する。一般に、動き推定ユニット42は、ルーマ成分に対して動き推定を実行し、動き補償ユニット44は、ルーマ成分とクロマ成分の両方に関して、ルーマ成分に基づいて算出された動きベクトルを使用する。モード選択ユニット40はまた、ビデオスライスのビデオブロックを復号する際にビデオデコーダ30が使用するためのビデオブロックおよびビデオスライスに関連するシンタックス要素を生成し得る。
[0074]ビデオエンコーダ20は、図1に関して上述され、以下により詳細に説明されるような本開示の様々な技法のうちの任意のものを実行するように構成され得る。例えば、動き補償ユニット44は、本開示の技法にしたがってAMVPまたはマージモードを使用してビデオデータのブロックについての動き情報をコード化するように構成され得る。
[0075]動き補償ユニット44がマージモードを実行することを選択すると想定すると、動き補償ユニット44は、マージ候補のセットを含む候補リストを作成し得る。動き補償ユニット44は、特定の所定の順序に基づいて候補リストに候補を加え得る。動き補償ユニット44はまた、上述したように、追加候補を加え、候補リストのプルーニングを実行し得る。最終的に、モード選択ユニット40は、現在のブロックの動き情報を符号化するために候補のうちのどれが使用されるべきかを決定し、選択された候補を表すマージインデックスを符号化し得る。
[0076]イントラ予測ユニット46は、上で説明されたように、動き推定ユニット42および動き補償ユニット44によって実行されるインター予測の代わりとして、現在のブロックをイントラ予測し得る。特に、イントラ予測ユニット46は、現在のブロックを符号化するために使用すべきイントラ予測モードを決定し得る。いくつかの例では、イントラ予測ユニット46は、例えば、別個の符号化パス中に、様々なイントラ予測モードを使用して現在のブロックを符号化し得、イントラ予測ユニット46(または、いくつかの例では、モード選択ユニット40)は、テストされたモードから、使用すべき好適なイントラ予測モードを選択し得る。
[0077]例えば、イントラ予測ユニット46は、様々なテストされたイントラ予測モードに対してレート−歪み分析を使用してレート−歪み値を算出し、テストされたモードのうち、最良のレート−歪み特性を有するイントラ予測モードを選択し得る。レート−歪み分析は一般に、符号化済みブロックと、この符号化済みブロックを作り出すために符号化された元の符号化されていないブロックとの間の歪み(または誤差)の量、および、この符号化済みブロックを作り出すために使用されるビットレート(すなわち、ビットの数)を決定する。イントラ予測ユニット46は、様々な符号化済みブロックについてレートおよび歪みから比を算出して、どのイントラ予測モードがブロックに対して最良のレート−歪み値を示すかを決定し得る。
[0078]ブロックについてイントラ予測モードを選択した後、イントラ予測ユニット46は、このブロックについての選択されたイントラ予測モードを示す情報をエントロピー符号化ユニット56に提供し得る。エントロピー符号化ユニット56は、選択されたイントラ予測モードを示す情報を符号化し得る。ビデオエンコーダ20は、複数のイントラ予測モードインデックス表および(コードワードマッピング表とも呼ばれる)複数の修正されたイントラ予測モードインデックス表、様々なブロックについての符号化コンテキストの定義、ならびに、これらコンテキストの各々に使用すべき最も可能性の高い1つのイントラ予測モード、1つのイントラ予測モードインデックス表、および1つの修正されたイントラ予測モードインデックス表を示すインジケーション、を含み得る構成データを、送信されるビットストリーム中に含め得る。
[0079]ビデオエンコーダ20は、コード化されている元のビデオブロックから、モード選択ユニット40からの予測データを差し引くことで残差ビデオブロックを形成する。加算器50は、この減算演算を実行する1つまたは複数の構成要素を表す。変換処理ユニット52は、離散コサイン変換(DCT)または概念的に類似した変換のような変換を残差ブロックに適用し、残差変換係数値を備えるビデオブロックを作り出す。変換処理ユニット52は、DCTと概念的に類似した他の変換を実行し得る。ウェーブレット変換、整数変換、サブバンド変換、または他のタイプの変換もまた使用され得る。
[0080]いずれのケースでも、変換処理ユニット52は、変換を残差ブロックに適用し、残差変換係数のブロックを作り出す。変換は、残差情報を画素値ドメインから周波数ドメインのような変換ドメインに変換し得る。変換処理ユニット52は、結果として得られた変換係数を量子化ユニット54に送り得る。量子化ユニット54は、ビットレートをさらに低減するために、変換係数を量子化する。量子化プロセスは、これら係数のうちのいくつかまたはすべてに関連するビット深度を低減し得る。量子化の程度は、量子化パラメータを調整することで修正され得る。次いで、いくつかの例では、量子化ユニット54は、量子化変換係数を含む行列の走査を実行し得る。代替的に、エントロピー符号化ユニット56が走査を実行し得る。
[0081]量子化に続いて、エントロピー符号化ユニット56は、量子化変換係数をエントロピーコード化する。例えば、エントロピー符号化ユニット56は、コンテキスト適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)、確率区間区分化エントロピー(PIPE)コーディング、または別のエントロピーコーディング技法を実行し得る。コンテキストベースのエントロピーコード化のケースでは、コンテキストは隣接ブロックに基づき得る。エントロピー符号化ユニット56によるエントロピーコード化に続いて、符号化されたビットストリームは、別のデバイス(例えば、ビデオデコーダ30)に送信されるか、または後の送信または取出しのためにアーカイブされ得る。
[0082]逆量子化ユニット58および逆変換ユニット60は、それぞれ、逆量子化および逆変換を適用して、例えば、参照ブロックとしての後の使用のために、画素ドメインにおける残差ブロックを再構築する。動き補償ユニット44は、参照ピクチャメモリ64のフレームのうちの1つのフレームの予測ブロックに残差ブロックを加えることによって、参照ブロックを算出し得る。動き補償ユニット44はまた、再構築された残差ブロックに1つまたは複数の補間フィルタを適用して、動き推定で用いるサブ整数画素値を算出し得る。加算器62は、動き補償ユニット44によって作り出された動き補償された予測ブロックに、再構築された残差ブロックを加えて、参照ピクチャメモリ64への記憶のための再構築されたビデオブロックを作り出す。再構築されたビデオブロックは、後続のビデオフレーム中のブロックをインターコード化するために、参照ブロックとして動き推定ユニット42および動き補償ユニット44によって使用され得る。
[0083]図3は、本開示の動きベクトル予測技法を実行するように構成され得るビデオデコーダ30の例を例示するブロック図である。図3の例では、ビデオデコーダ30は、エントロピー復号ユニット70と、動き補償ユニット72と、イントラ予測ユニット74と、逆量子化ユニット76と、逆変換ユニット78と、参照ピクチャメモリ82と、加算器80とを含む。ビデオデコーダ30は、いくつかの例では、ビデオエンコーダ20(図2)に関して説明された符号化パスのほぼ反転である復号パスを実行し得る。動き補償ユニット72は、エントロピー復号ユニット70から受け取った動きベクトルに基づいて予測データを生成し得、イントラ予測ユニット74は、エントロピー復号ユニット70から受け取ったイントラ予測モードインジケータに基づいて予測データを生成し得る。
[0084]復号プロセス中、ビデオデコーダ30は、ビデオエンコーダ20から、符号化されたビデオスライスのビデオブロックおよび関連するシンタックス要素を表す符号化済みビデオビットストリームを受け取る。ビデオデコーダ30のエントロピー復号ユニット70は、量子化された係数、動きベクトルまたはイントラ予測モードインジケータ、および他のシンタックス要素を生成するために、ビットストリームをエントロピー復号する。エントロピー復号ユニット70は、動きベクトルおよび他のシンタックス要素を動き補償ユニット72に転送する。ビデオデコーダ30は、ビデオスライスレベルおよび/またはビデオブロックレベルでシンタックス要素を受け取り得る。
[0085]ビデオスライスがイントラコード化された(I)スライスとしてコード化されるとき、イントラ予測ユニット74は、シグナリングされたイントラ予測モードと、現在のフレームまたはピクチャの前に復号されたブロックからのデータとに基づいて、現在のビデオスライスのビデオブロックについての予測データを生成し得る。ビデオフレームがインターコード化された(すなわち、B、P、またはGPB)スライスとしてコード化されるとき、動き補償ユニット72は、動きベクトルと、エントロピー復号ユニット70から受け取った他のシンタックス要素とに基づいて、現在のビデオスライスのビデオブロックについての予測ブロックを作り出す。予測ブロックは、参照ピクチャリストのうちの1つ内の参照ピクチャのうちの1つから作り出され得る。ビデオデコーダ30は、参照ピクチャメモリ82に記憶された参照ピクチャに基づいてデフォルト構築技法を使用して参照フレームリスト、リスト0およびリスト1を、構築し得る。
[0086]動き補償ユニット72は、動きベクトルおよび他のシンタックス要素を解析することで現在のビデオスライスのビデオブロックについての予測情報を決定し、この予測情報を使用して、復号されている現在のビデオブロックについての予測ブロックを作り出す。例えば、動き補償ユニット72は、受け取ったシンタックス要素のうちのいくつかを使用して、ビデオスライスのビデオブロックをコード化するために使用される予測モード(例えば、イントラまたはインター予測)、インター予測スライスタイプ(例えば、Bスライス、Pスライス)、スライスのための参照ピクチャリストのうちの1つまたは複数についての構築情報、スライスの各インター符号化されたビデオブロックについての動きベクトル、スライスの各インターコード化されたビデオブロックについてのインター予測ステータス、および現在のビデオスライス中のビデオブロックを復号するための他の情報を決定する。
[0087]動き補償ユニット72はまた、補間フィルタに基づいて補間を実行し得る。動き補償ユニット72は、参照ブロックのサブ整数画素の補間値を算出するために、ビデオブロックの符号化中、ビデオエンコーダ20によって使用されるように補間フィルタを使用し得る。このケースでは、動き補償ユニット72は、受け取ったシンタックス要素からビデオエンコーダ20によって使用される補間フィルタを決定し、この補間フィルタを使用して予測ブロックを作り出し得る。
[0088]ビデオデコーダ30は、図1に関して上述され、以下により詳細に説明されるような本開示の様々な技法のうちの任意のものを実行するように構成され得る。例えば、動き補償ユニット72は、本開示の技法にしたがってAMVPまたはマージモードを使用して動きベクトル予測を実行すると決定するように構成され得る。エントロピー復号ユニット70は、どのように動き情報が現在のブロックについてコード化されるかを表す1つまたは複数のシンタックス要素を復号し得る。
[0089]マージモードが実行されることをシンタックス要素が示すと想定すると、動き補償ユニット72は、マージ候補のセットを含む候補リストを作成し得る。動き補償ユニット72は、特定の所定の順序に基づいて候補リストに候補を加え得る。動き補償ユニット72はまた、上述したように、追加候補を加え、候補リストのプルーニングを実行し得る。最終的に、動き補償ユニット72は、現在のブロックについての動き情報をコード化するために候補のうちのどれが使用されるかを表すマージインデックスを復号し得る。
[0090]逆量子化ユニット76は、ビットストリームにおいて提供され、かつ、エントロピー復号ユニット70によってエントロピー復号された量子化変換係数を逆量子化(inverse quantize)、すなわち、逆量子化(de-quantize)する。逆量子化プロセスは、適用されるべき量子化の程度および同じく逆量子化の程度を決定するために、ビデオスライス中の各ビデオブロックについて、ビデオデコーダ30によって算出される量子化パラメータQPYの使用を含み得る。
[0091]逆変換ユニット78は、画素ドメインにおいて残差ブロックを作り出すために、逆変換、例えば、逆DCT、逆整数変換、または概念的に類似した逆変換プロセスを変換係数に適用する。
[0092]動き補償ユニット72が動きベクトルと他のシンタックス要素とに基づいて現在のビデオブロックについての予測ブロックを生成した後、ビデオデコーダ30は、逆変換ユニット78からの残差ブロックを動き補償ユニット72によって生成された対応する予測ブロックと合計することで、復号されたビデオブロックを形成する。加算器80は、この加算演算を実行する1つまたは複数の構成要素を表す。望まれる場合、ブロッキネスアーティファクトを取り除くために、復号されたブロックをフィルタ処理するため、デブロッキングフィルタが適用され得る。(コード化ループ中またはコード化ループ後のどちらかの)他のループフィルタもまた、画素遷移を滑らかにするためにまたは別の方法でビデオ品質を改善するために使用され得る。次いで、所与のフレームまたはピクチャ内の復号されたビデオブロックは、後の動き補償のために使用される参照ピクチャを記憶する参照ピクチャメモリ82に記憶される。参照ピクチャメモリ82はまた、図1のディスプレイデバイス32のようなディスプレイデバイス上での後の提示のために、復号されたビデオを記憶する。
[0093]図4は、イントラ予測の態様を例示する概念図である。ビデオエンコーダ20および/またはビデオデコーダ30は、ブロックの空間的に隣接する再構築画像サンプルを使用することで、画像ブロック予測を実行するためにイントラ予測をインプリメントし得る。16×16画像ブロックに対するイントラ予測の典型的な例が図4に示される。図4に例示されるように、イントラ予測を用いて、(実線の正方形の)16×16画像ブロックは、(矢印で示される)選択された予測方向に沿って左の列およびすぐ上の行に位置する左上の隣接する再構築サンプル(基準サンプル)によって予測される。HEVCでは、ルーマブロックのイントラ予測について、35個のモードが含まれる。
[0094]図5は、ルーマブロックについてのイントラ予測モードを例示する概念図である。モードは、図5に示されるように、1つの平面モードと、1つのDCモードと、33個の角度モードとを含む。HEVCにおいて定義されるイントラ予測の35個のモードは、以下の表1において示されるようにインデックス化される:
[0095]図6は、平面モードの態様を例示する概念図である。平面モード、これは典型的に最も最近使用されるイントラ予測モードである、の場合、予測サンプルは、図6に示されるように生成される。N×Nブロックについて平面予測を実行するために、(x、y)に位置するサンプルpxyごとに、ビデオエンコーダ20および/またはビデオデコーダ30は、バイリニアフィルタを用いて、4つの特定の隣接する再構築サンプル、すなわち基準サンプル、を使用して予測値を算出し得る。4つの基準サンプルは、右上の再構築サンプルTRと、左下の再構築サンプルBLと、Tで表される現在のサンプルの同じ列(rx,−1)およびLで表される現在のサンプルの同じ行(r−1,y)に位置する2つの再構築サンプルとを含む。平面モードは、以下の式で示されるように公式化されることができる:pxy=(N−x−1)・L+(N−y−1)・T+x・TR+y・BL
[0096]DCモードの場合、予測ブロックは、単に、隣接する再構築サンプルの平均値で満たされる。一般に、平面モードおよびDCモードの両方が、滑らかに変化する画像領域および一定の画像領域をモデリングするために適用される。
[0097]図7は、HEVCに係る角度モードの態様を例示する概念図である。合計33個の異なる予測方向を含む、HEVCにおける角度イントラ予測モードの場合、イントラ予測プロセスは、以下のように説明される。所与の角度イントラ予測ごとに、イントラ予測方向は、相応して識別されることができる。例えば、図5によれば、イントラモード18は、純水平予測方向に対応し、イントラモード26は、純垂直予測方向に対応する。所与のイントラ予測方向を前提として、予測ブロックのサンプルごとに、サンプルの座標(x,y)は最初に、図7の例に示されるように、予測方向に沿って、隣接する再構築サンプルの行/列に投影される。(x,y)のペアが、2つの隣接する再構築サンプルLとRとの間の分数位置αに投影されると仮定して、(x,y)の予測値は、2タップのバイリニア補間フィルタを使用して算出され、以下の式で示されるように公式化される:pxy=(1−α)・L+α・R。浮動小数点演算を回避するために、HEVCでは、上の算出は実際、pxy=((32−a)・L+a・R+16)>>5のような整数演算を使用して近似され、ここで、aは、32×αに等しい整数である。
[0098]クロマ符号化および復号の態様が一般に以下に説明される。かなり頻繁に、クロマ信号の構造は、対応するルーマ信号のものに追従する。説明したように、各ルーマブロックは、1つのクロマブロックに対応し、各クロマ予測ブロックは、HEVCにしたがって、2N×2NまたはN×Nに等しいルーマ予測ブロックの区分サイズに基づいて、1つまたは4つのルーマ予測ブロックに対応し得る。クロマ信号構造のこれらの特性および一般的傾向を利用して、HEVCは、クロマPUが、対応する選択されたルーマPUと同じ予測モードを使用して予測されるケースまたは事例をビデオエンコーダ20がビデオデコーダ30に示し得るメカニズムを提供する。以下の表2は、クロマPUについてのクロマモードをシグナリングするためにビデオエンコーダ20が使用し得るモード配列を指定する。例えば、1つのイントラコード化されたクロマPUは、平面モード(INTRA_PLANAR)、垂直モード(INTRA_ANGULAR26)、水平モード(INTRA_ANGULAR10)、DCモード(INTRA_DC)、および導出モード(DM)を含む5つのモードのうちの1つから選択されたモードを使用して予測されることができる。DMは、対応する選択されたルーマPUを予測するために使用されるイントラ予測モードになるように設定される。例えば、対応する選択されたルーマPUが、11に等しいインデックスを有するイントラモードでコード化される場合、DMは、11に等しいインデックスを有するイントラモードに設定される。
[0099]導出モードが、符号化済みビデオビットストリームにおけるPUについて示される場合、ビデオデコーダ30は、対応するルーマPUに使用された予測モードを使用してクロマPUに対して予測を実行し得る。導出モードが、常に存在する予測モードのうちの1つを参照するときに生じる可能性のある.問題を緩和するために、ビデオエンコーダ20およびビデオデコーダ30は、重複モードの代わりとして、指定された代替モードを使用し得る。上の表2に示されるように、ビデオエンコーダ20およびビデオデコーダ30は、冗長性を取り除くために、「角度(34)モード」とも呼ばれる「INTRA_ANGULAR34」クロマ代替モードを代わりとして使用し得る。例えば、クロマPUとルーマPUとの間の関係性は、1対1または多数対1であり、ビデオエンコーダ20およびビデオデコーダ30は、単一の対応するルーマPUに適用可能な予測モードを選択することで、クロマPUについての予測モードを決定し得る。
[0100]しかしながら、いくつかの事例では、1つのクロマPUは、複数のルーマPUに対応し得る。単一のクロマPUが複数のルーマPUに対応するシナリオは、クロマ符号化および復号に関して、例外または「特別なケース」と考えられる。例えば、これらの特別なケースのうちのいくつかでは、1つのクロマPUが、4つのルーマPUに対応し得る。クロマとルーマの関係性が1対多数である特別なケースでは、ビデオエンコーダ20およびビデオデコーダ30は、対応する左上ルーマPUに使用される予測モードを選択することで、クロマPUについての予測モードを決定し得る。
[0101]ビデオエンコーダ20およびビデオデコーダ30は、ビデオデータのブロックについてクロマ予測モードを示すデータをエントロピーコード化(それぞれ、エントロピー符号化およびエントロピー復号)し得る。クロマモードコード化にしたがって、ビデオエンコーダ20は、1−bシンタックス要素(0)を単一の最も頻繁に生じる導出モードに割り当て、3−bシンタックス要素(それぞれ100、101、110、および111)を残りの4つのモードの各々に割り当て得る。ビデオエンコーダ20およびビデオデコーダ3は、1つのコンテキストモデルを有する最初のビンだけをコード化し得、(必要であれば)残りの2つのビンをバイパスコード化し得る。
[0102]ビデオエンコーダ20およびビデオデコーダ30は、コンテキスト適応型バイナリ算術コーディング(CABAC)にしたがってビデオデータをエントロピーコード化(それぞれエントロピー符号化およびエントロピー復号)し得る。CABACは、H.264/AVCにおいて最初に導入されたエントロピーコード化の方法であり、D.Marpe,H.Schwarz、およびT.Wiegandによる「Context-based adaptive binary arithmetic coding in the H.264/AVC video compression standard」,IEEE Trans. Circuits Syst Video Technol.,vol. 13,no. 7,pp. 620-636,2003年7月、に記載されている。CABACは現在、高効率ビデオコーディング(HEVC)ビデオコーディング規格において使用されている。ビデオエンコーダ20メイビデオデコーダ30は、HEVCに対して実行されようなCABACと類似した方法でエントロピーコード化のためにCABACを使用し得る。
[0103]CABACは、二値化、コンテキストモデリング、および算術コーディングという3つの主要の機能を含む。二値化機能は、ビンストリングと呼ばれるバイナリシンボル(ビン)にシンタックス要素をマッピングする。コンテキストモデリング機能は、ビンの確率を推定する。(バイナリ算術コーディングとも呼ばれる)算術コーディング機能は、推定された確率に基づいてビンをビットに圧縮する。
[0104]ビデオエンコーダ20およびビデオデコーダ30は、HEVCにおいて提供されるいくつかの異なる二値化プロセスのうちの1つまたは複数を使用してCABACのために二値化を実行し得る。HEVCにおいて提供される二値化プロセスは、単項(U)、短縮単項(TU)、EGk(kth-order Exp-Golomb)、および固定長(FL)技法を含む。これらの二値化プロセスの詳細は、V.SzeおよびM.Budagaviによる「High throughput CABAC entropy coding in HEVC」,IEEE Transactions on Circuits and Systems for Video Technology(TCSVT),vol. 22,no. 12,pp. 1778-1791,2012年12月、に記載されている。
[0105]単項ベースの符号化にしたがって、ビデオエンコーダ20は、長さN+1のビンストリングをシグナリングし得、ここで、「N」は、整数値を表し、最初のN個のビンは(値が)1であり、最後のビンは(値が)0である。単項ベース復号にしたがって、ビデオデコーダ30は、ビンの0値をサーチし得る。0値のビンを検出すると、ビデオデコーダ30は、シンタックス要素が完結したと決定し得る。
[0106]短縮単項コード化によれば、ビデオエンコーダ20は、単項コード化のケースより1つ少ないビンを符号化有し得る。例えば、ビデオエンコーダ20は、シンタックス要素の最大の可能な値に最大値を設定し得る。最大値は、ここでは、「cMax」と表される。(N+1)<cMaxであるとき、ビデオエンコーダ20は、単項コード化と同じシグナリングをインプリメントし得る。しかしながら、(N+1)=cMaxであるとき、ビデオエンコーダ20は、すべてのビンをそれぞれの値1に設定し得る。ビデオデコーダ30は、いつシンタックス要素が完結するかを決定するために、cMax数のビンが検査されるまで、0値のビンをサーチし得る。単項および短縮単項コード化において使用されるビンストリングの態様と、それらの対比が以下の表3に例示されている。表3に例示されている対照的なビン値は、太字の斜体を使用して表される(called out)。
[0107]ビデオエンコーダ20およびビデオエンコーダ30はまた、CABACのコンテキストモデリング態様を実行し得る。コンテキストモデリングは、比較的正確な確率推定を提供し、これは、高効率コード化を達成する態様である。したがって、コンテキストモデリングは、適応プロセスであり、「高度に適応する」と説明されることがある。異なるコンテキストモデルが、異なるビンに対して使用されることができ、ここで、コンテキストモデルの確率は、前にコード化されたビンの値に基づいて更新される。同様の分配を有するビンは、同じコンテキストモデルを共有することが多い。ビデオエンコーダ20および/またはビデオデコーダ30は、シンタックス要素のタイプ、シンタックス要素におけるビン位置(binIdx)、ルーマ/クロマ、隣接情報、等を含む1つまたは複数の要因に基づいて、ビンごとにコンテキストモデルを選択し得る。
[0108]ビデオエンコーダ20およびビデオデコーダ30は、ビンコーデイング(場合によっては、ビン符号化またはビン復号)の各インスタンス後にコンテキストスイッチを実行し得る。ビデオエンコーダ20およびビデオデコーダ30は、コンテキストメモリに7ビットのエントリ(確率状態についての6ビットとMPS(most probable symbol)についての1ビット)として確率モデルを記憶し得、コンテキスト選択論理によって計算されるコンテキストインデックスを使用して確率モデルをアドレス指定し得る。HEVCは、H.264/AVCと同じ確率更新方法を提供する。しかしながら、HEVCベースのコンテキスト選択論理は、スループットを改善するために、H.264/AVCコンテキスト選択論理に対して修正される。ビデオエンコーダ20およびビデオデコーダ30はまた、それぞれ、CABACエントロピー符号化および復号に対して確率表現を使用し得る。CABACの場合、64個の代表的な確率値pσ∈[0.01875,0.5]が、以下の再帰方程式によって、LPS(least probable symbol)に対して導出された:
すべてのσ=1,...,63について、pσ=α*pσ−1
ここで、α=(0.01875/0.5)1/63
[0109]上の式では、確率のセットの選択されたスケーリング係数α≒0.9492および濃度N=64の両方が、確率表現の精度と適応速度との間の妥協を表す。上の式において使用されるパラメータは、確率表現の精度とより高速な適用に対する要望との間の比較的良好な妥協を示している。MPSの確率は、1からLPSを差し引いた確率(すなわち、(1−LPS))に等しい。したがって、CABACによって表されることができる確率範囲は、[0.01875,0.98125]である。この範囲の上界(MPS確率)は、1から下限を差し引いたもの(すなわち、1−LPS確率)に等しい。すなわち、1−0.01875=0.98125である。
[0110]特定のスライスを符号化また復号する前に、ビデオエンコーダ20およびビデオデコーダ30は、いくつかの予め定義された値に基づいて確率モデルを初期化し得る。例えば、「qp」で表される入力量子化パラメータと「initVal」で表される予め定義された値とを前提として、ビデオエンコーダ20および/またはビデオデコーダ30は、次のように(「状態」および「MPS」で表される)確率モデルの7ビットのエントリを導出し得る:
qp = Clip3(0, 51, qp);
slope = ( initVal >>4)*5 - 45;
offset = ((initVal &15)<<3)-16;
initState= min( max( 1, ( ( ( slope * qp ) >> 4 ) + offset ) ), 126 );
MPS = (initState >= 64 );
state index = ( (mpState? (initState - 64) : (63 - initState)) <<1) + MPS;
[0111]導出された状態インデックスは、MPS情報を暗黙的に含む。すなわち、状態インデックスが偶数の値であるとき、MPS値は0に等しい。逆に、状態インデックスが奇数の値であるとき、MPS値は1に等しい。initValの値は、8ビット精度で[0,255]の範囲内である。
[0112]予め定義されたinitValは、スライス依存型である。すなわち、ビデオエンコーダ20は、特に、それぞれ、Iスライス、Pスライス、およびBスライスのコード化のために使用される確率モデルのためにコンテキスト初期化パラメータの3つのセットを使用し得る。このように、ビデオエンコーダ20は、異なるコード化シナリオおよび/または異なるタイプのビデオコンテンツへのより良好な適合が潜在的に達成されることができるように、これら3つのスライスタイプについて3つの初期化テーブルから選ぶことが可能にされる。
[0113]最近のJEM3.0の進歩は、イントラモードコード化に関する開発を含む。JEM3.0のこれらの最近の開発にしたがって、ビデオエンコーダ20およびビデオデコーダ30は、6つの最確モード(MPM)でイントラモードコード化を実行し得る。V.Seregin,X.Zhao,A.Said,およびM.Karczewiczによる「Neighbor based intra most probable modes list derivation」,JVET−C0055,ジュネーブ,2016年5月、記載されているように、HEVCにおける33個の角度モードは、65個の角度モードに加え、6つの最確モード(MPM)を有するDCモードよび平面モードに拡張される。ビデオエンコーダ20は、イントラルーマモードが、(上で挙げたJVET−C0055に記載されているように)6つのモードを含むMPM候補リストに含まれているかどうかを示すために1ビットフラグ(例えば、「MPMフラグ」)を符号化し得る。イントラルーマモードがMPM候補リストに含まれている(それによって、ビデオエンコーダ20に、MPMフラグを正の値に設定させる)場合、ビデオエンコーダ20は、リスト中のMPM候補のうちのどれがイントラルーマモードであるかを示すために、MPM候補のインデックスをさらに符号化し、シグナリングし得る。そうでない場合(すなわち、ビデオエンコーダ20がMPMフラグを負の値に設定する場合)、ビデオエンコーダ20は、残りのイントラルーマモードのインデックスをさらにシグナリグし得る。
[0114]JEM3.0アドバンスメントのこれらの態様によれば、ビデオデコーダ30は、イントラルーマモードがMPM候補リストに含まれているかどうかを決定するために、シグナリングされた符号化済みビデオビットストリームを受信すると、MPMフラグを復号し得る。MPMフラグが正の値に設定されるとビデオデコーダ30が決定する場合、ビデオデコーダ30は、MPM候補リストからイントラルーマモードを識別するために、受信したインデックスを復号し得る。逆に、MPMフラグが負の値に設定されるとビデオデコーダ30が決定すると、ビデオデコーダ30は、残りのイントラルーマモードのインデックスを受信および復号し得る。
[0115]最近のJEM3.0の進歩また、適応型マルチコア変換に関してもなされている。HEVCで用いられるDCT−IIおよび4×4DST−VIIに加えて、AMT(Adaptive Multiple Transform)スキームが、インターコード化されたブロックおよびイントラコード化されたブロックの両方についての残差コード化のために使用される。AMTは、HEVCにおいて現在定義されている変換以外のDCT/DSTファミリからの複数の選択された変換を利用する。JEM3.0の新たに導入された変換マトリックは、DST−VII、DCT−VIII、DST−I、およびDCT−Vである。
[0116]イントラ残差コード化の場合、異なるイントラ予測モードの異なる残差統計値により、ビデオエンコーダ20およびビデオデコーダ30は、モード依存型変換候補選択プロセスを使用し得る。3つの変換サブセットは、以下の表4に示されるように定義されており、ビデオエンコーダ20および/またはビデオデコーダ30は、以下の表5において指定されているように、イントラ予測モードに基づいて、変換サブセットを選択し得る。
[0117]サブセットの概念では、ビデオデコーダ30は、最初に、以下の表6に基づいて、変換サブセットを識別し得る。例えば、変換サブセットを識別するために、ビデオデコーダ30は、1の値に設定されたCUレベルのAMTフラグでシグナリングされるCUのイントラ予測モードを使用し得る。その後、水平変換および垂直変換の各々について、ビデオデコーダ30は、以下の表7にしたがって、識別された変換サブセット中の2つの変換候補のうちの1つを選択し得る。水平変換および垂直変換の各々についての選択される変換候補は、フラグで明示的にシグナリングされるデータに基づいて選択される。しかしながら、インター予測残差について、ビデオデコーダ30は、すべてのインターモードに対してならびに水平変換および垂直変換の両方に対して、DST−VIIおよびDCT−VIIIから構成される1つの変換セットだけを使用し得る。
[0118]最近のJEM3.0の進歩は、ビデオコード化のためのLM(線形モデル)予測モードに関してなされている。ビデオエンコーダ20およびビデオデコーダ30のような本開示のビデオコード化デバイスは、ビデオ符号化およびビデオ復号の際に色フォーマットおよび色空間の態様を処理し得る。カラービデオは、マルチメディアシステムにおいて本来の役割を果たし、ここで、様々な色空間が、色を効率的に表すために使用される。色空間は、複数の成分を使用して数値で色を指定する。一般的な色空間は「RGB」色空間であり、ここでは、色が、3つの原色成分値(すなわち、赤、緑、青)の組合せとして表される。カラービデオ圧縮の場合、A.FordおよびA.Robertsによる「Colour space conversions」,ウェストミンスタ大学,ロンドン,Tech. Rep.,1998年8月、に記載されているように、YCbCr色空間が広く用されている。YCbCrは、線形変換を介して、RGB色空間から比較的容易に変換されることができる。RGBからYCbCrへの変換では、異なる成分間の冗長性、すなわち、成分間冗長性、は、結果として得られるYCbCr色変換において大幅に低減される。
[0119]YCbCrの1つの利点は、Y信号が輝度情報を伝達するため、白黒TVとの後位互換性である。加えて、クロミナンス帯域幅は、RGBでのサブサンプリングより大幅に少ない主観的インパクトにより、4:2:0クロマサンプルフィーマットでCbおよびCr成分をサブサンプリングすることで低減されることができる。これらの利点により、YCbCrは、ビデオ圧縮における主要の色空間である。ビデオ圧縮において使用されるYCoCgのような他の色空間も存在する。例示を目的として、使用される実際の色空間に関わらず、Y、Cb、Cr信号は、本開示全体にわたって、ビデオ圧縮スキームにおける3つの色成分を表すために使用される。4:2:0サンプリングでは、2つのクロマアレイ(CbおよびCr)の各々は、ルーマアレイ(Y)の半分の高さおよび半分の幅を有する。
[0120]図8は、ピクチャにおけるルーマおよびクロマサンプルの公称の垂直および水平ロケーションの例を例示する概念図である。図8に示される、ピクチャにおけるルーマおよびクロマサンプルの公称の垂直および水平相対ロケーションは、一般に、4:2:0サンプリングフォーマットによって提供されるようなロケーションに対応する。
[0121]ビデオコード化のためのLM予測モードの態様が以下の段落で述べられる。YCbCr色空間において成分間冗長性は大幅に低減されるが、3つの色成分間の相関は、依然としてYCbCr色空間に存在する。色成分間の相関をさらに低減することでビデオコーディング性能を改善するために、様々な技法が研究されている。4:2:0クロマビデオコード化に関して、HEVC規格の開発中に、線形モデル(LM)予測モードが研究された。LM予測モードの態様は、J.Chen,V.Seregin,W.−J.Han,J.−S.Kim、およびB.−M.Joenによる「CE6.a.4: Chroma intra prediction by reconstructed luma samples」、ITU−T SG16 WP3とISO/IEC JTC1/SC29/WG11とからなるJCT−VC(Joint Collaborative Team on Video Coding),JCTVC−E266,第5回会合:ジュネーブ,2011年3月16−23日、に記載されている。
[0122]LM予測モードにしたがって予測を実行するとき、ビデオエンコーダ20およびビデオデコーダ30は、以下の式(1)に示される線形モデルを使用することで、同じブロックのダウンサンプリングされた再構築ルーマサンプルに基づいてクロマサンプルを予測し得る。
ここで、predC(i,j)は、ブロック中のクロマサンプルの予測を表し、recL(i,j)は、同じブロックのダウンサンプリングされた再構築ルーマサンプルを表す。パラメータαおよびβは、現在のブロックの周りの因果的再構築サンプルから導出される。
[0123]図9は、線形モデル(LM)モードにしたがった予測において使用されるパラメータの導出のために使用されるサンプルのロケーションを例示する概念図である。図9に描写される選択された基準サンプルの例は、上の式(1)において使用されるようなαおよびβの導出に関する。クロマブロックのサイズがN×Nと表され、ここでNが整数である場合、iおよびjは両方とも、[0,N]の範囲内にある。
[0124]ビデオエンコーダ20およびビデオデコーダ30は、以下の式(2)にしたがって、現在のブロックの周りの隣接する再構築ルーマおよびクロマサンプル間の回帰誤差を低減するかまたは潜在的に最小化することで、式(1)中のパラメータαおよびβを導出し得る。
パラメータαおよびβは、以下のように解かれる:
ここで、xiは、ダウンサンプリングされた再構築ルーマ基準サンプルを表し、yiは、再構築されたクロマ基準サンプルを表し、Iは、基準サンプルの量(例えば、カウント)を表す。ターゲットのN×Nクロマブロックの場合、左および上の両方の因果的サンプルが利用可能なとき、合計の関連サンプルの数(I)は2Nに等しい。左または上の因果的サンプルのみが利用可能なとき、合計の関連サンプルの数(I)はNに等しい。
[0125]要約すれば、LM予測モードが適用されるとき、ビデオエンコーダ20および/またはビデオデコーダ30は、以下にリストされた順序で以下のステップを呼び出し得る:
a)隣接するルーマサンプルをダウンサンプリングする;
b)線形パラメータ(すなわち、αおよびβ)を導出する;
c)現在のルーマブロックをダウンサンプリングし、ダウンサンプリングされたルーマブロックと線形パラメータとから予測を導出する。
[0126]コード化効率をさらに改善するために、ビデオエンコーダ20および/またはビデオデコーダ30は、隣接するサンプルxiおよび対応するルーマブロック内のダウンサンプリングされたルーアサンプルrecL(I,j)を導出するために、(1,2,1)および(1,1)というダウンサンプリングフィルタを利用し得る。
[0127]最近のJEM3.0の進歩はまた、クロマ成分間の予測に関してもなされている。JEMでは、LM予測モードは、2つのクロマ成分間の予測に拡張される。例えば、Cr成分は、Cb成分から予測される得る。再構築サンプル信号を使用する代わりに、ビデオエンコーダ20および/またはビデオデコーダ30は、残差ドメインにおいて成分間予測を適用し得る。例えば、ビデオエンコーダ20および/またはビデオデコーダ30は、最終のCr予測を形成するために、加重された再構築Cb残差を元のCrイントラ予測に加えることで、成分間予測の残差ドメイン適用をインプリメントし得る。この動作の例は、以下の式(3)に示される:
[0128]ビデオエンコーダ20および/またはビデオデコーダ30は、LMモードで導出されるように、スケーリング係数αを導出し得る。しかしながら、1つの相違点は、導出されたスケーリング係数がデフォルト値(−0.5)に向かってバイアスがかけられるような、誤差関数におけるデフォルトのα値に対する回帰コストの加算である。LM予測モードは、1つの追加のクロマイントラ予測モードとして加えられる。この点において、ビデオエンコーダ20は、クロマイントラ予測モードを選択するためにクロマ成分についてのもう1つのRDコストチェックを加え得る。
[0129]四分木二分木(QTBT)構造の態様が以下の段落に説明されている。VCEG proposal COM16−C966(J.An,Y.−W.Chen,K.Zhang,H.Huang,Y.−W.Huang,およびS.Leiによる「Block partitioning structure for next generation video coding」,国際電気通信連合,COM16−C966,2015年9月)において、QTBT区分化スキームが、HEVCを超える将来的なビデオコーディング規格のために提案された。シミュレーションは、COM16−C966で提案されたQTBT構造が、HEVCにおいて使用される四分木構造より効率的であることを示した。COM16−C966の提案されたQTBT構造では、コード化ツリーブロック(CTB)は、最初に、四分木構造にしたがって区分化され、ここでは、1つのノードの四分木分割は、このノードが最小許容四分木リーフノードサイズ(MinQTSize)に達するまで反復されることができる。
[0130]QTBT構造によれば、四分木リーフノードサイズが、最大許容二分木ルートノードサイズ(MaxBTSize)より大きくない場合、四分木リーフノードは、二分木構造にしたがってさらに区分化されることができる。所与のノードの二分木分割は、このノードが最小許容二分木リーフノードサイズ(MinBTSize)に達するまでまたは反復分割が最大許容二分木深度(MaxBTDepth)に達するまで反復されることができる。二分木リーフノードは、すなわち、これ以上の区分化なしに予測(例えば、イントラピクチャまたはインターピクチャ予測)および変換に使用されることができるCUである。
[0131]二分木分割にしたがって、ビデオエンコーダ20および/またはビデオデコーダ30は、対称水平分割および対称垂直分割という2つの分割タイプをインプリメントし得る。QTBT区分化構造の一例では、CTUサイズは、128×128(すなわち、128×128のルーマサンプルと2つの対応する64×64のクロマサンプル)に設定され、MinQTSizeは、16×16に設定され、MaxBTSizeは、64×64に設定され、(幅と高さの両方についての)MinBTSizeは、4に設定され、MaxBTDepthは、4に設定される。ビデオエンコーダ20および/またはビデオデコーダ30は、四分木リーフノードを生成するために、最初にQTBTスキームの四分木区分化部分をCTUに適用し得る。四分木リーフノードは、16×16(すなわち、MinQTSize)から128×128(すなわち、CTUサイズ)までのサイズを有し得る。
[0132]四分木リーフノードが128×128である場合、ビデオエンコーダ20および/またはビデオデコーダ30は、このノードがMaxBTSize(このケースでは、64×64)を超えるため、QTBTスキームの二分木部分を使用して四分木リーフノードをこれ以上分割しないであろう。そうでない場合(すなわち、ノードサイズが64×64のMaxBTSizeを超えない場合)、ビデオエンコーダ20および/またはビデオデコーダ30、QTBT構造の二分木区分化部分を使用して四分木リーフノードをさらに区分化し得る。したがって、四分木リーフノードはまた、QTBTスキームの二分木部分のためのルートノードでもあり、ゆえに、0の二分木深度を有する。反復二分木区分化により、二分木深度がMaxBTDepth(すなわち、4)に達すると、ビデオエンコーダ20および/またはビデオデコーダ30は、このリーフノードに対してあらゆる種類のこれ以上の分割を実行しない。QTBTスキームの二分木部分が、MinBTSize(すなわち、4)に等しい幅を有する二分木ノードに帰着するとき、ビデオエンコーダ20および/またはビデオデコーダ30は、このノードのこれ以上の水平分割を実行しないであろう。同様に、QTBTスキームの二分木部分が、MinBTSize(すなわち4)に等しい高さを有する二分木ノードに帰着するとき、ビデオエンコーダ20および/またはビデオデコーダ30は、このノードのこれ以上の垂直分割を実行しないであろう。(仮にも区分化が二分木区分化に達すると)QTBTスキームの二分木部分のリーフノードは、すなわち、これ以上の区分化なしに予測および変換によってさらに処理されるCUである。
[0133]図10は、QTBT区分化スキームの態様を例示する概念図である。図10の左側にあるブロック図は、QTBT区分化構造にしたがったブロック162の区分化の例を例示する。QTBT区分化スキームの四分木区分化態様は、ブロック162において実線を使用して例示され、QTBT区分化スキームの二分木区分化態様は、ブロック162において破線を使用して例示される。ブロック162は、QTBTスキームの四分木部分のみ呼び出されるケースでは正方形のリーフノードへと区分化され、(四分木区分化部分と組み合わせて呼び出されても呼び出されなくても)QTBTスキームの二分木部分が呼び出されるケースでは非正方形の長方形のリーフノードへと区分化される。複数の変換が可能であるHEVCの区分化技法とは対照的に、QTBT区分化スキームは、PUサイズが常にCUサイズに等しくなるシステムを提供する。
[0134]図10の右側にある概略図は、ツリー構造164を例示する。ツリー構造164は、図10のブロック162に関して例示される区分化に関する対応するツリー構造である。ツリー構造164のケースでもまた、図10のQTBT区分化スキームの後援(auspices)内で、実線は四分木分割を示し、破線は二分木分割を示す。ツリー構造164において破線を使用して例示される二分木部分の分割(すなわち、非リーフ)ノードごとに、ビデオエンコーダ20は、どの分割タイプ(すなわち、水平または垂直)が使用されるかを示すためにそれぞれの1ビットフラグをシグナリングし得る。QTBT区分化のいくつかのインプリメンテーションによれば、ビデオエンコーダ20は、フラグを、水平分割を示すためにゼロ(0)の値におよび垂直分割を示すために1の値に設定し得る。QTBT区分化構造の四分木分割部分については、四分木分割が常にブロックを同じサイズの4つのサブブロックへと水平および垂直に分割するため、分割タイプを示す必要はないことは認識されるであろう。
[0135]図11Aおよび11Bは、QTBT区分化スキームにしたがった、対応するルーマおよびクロマブロックについての別個の区分化構造の例を例示する。QTBTブロック区分化技術は、対応するルーマおよびクロマブロックが別個のQTBTベースの区分化構造を有するという特徴を可能にするおよびサポートする。QTBT区分化スキームに基づいて、PスライスおよびBスライスの場合は、1つのCTU中の対応するルーマおよびクロマCTUは、同じQTBTベースの区分化構造を共有する。しかしながら、Iスライスの場合は、ルーマCTUは、第1のQTBTベースの区分化構造によってCUへと区分化されることができ、クロマCTUは、第1のQTBTベースの区分化構造とは異なる場合も異ならない場合もある第2のQTBTベースの区分化構造によってクロマCUへと区分化される。ゆえに、Iスライス中のCUは、1つのルーマ成分のコード化ブロックまたは2つのクロマ成分のコード化ブロックから構成され得、PおよびBスライス中のCUの場合、このCUは、すべての3つの色成分のコード化ブロックから構成され得る。
[0136]IスライスのためにQTBTによってサポートされる別個のツリー構造は、クロマコード化に関する態様を含む。例えば、JEMは、1つのPUにつき6つのクロマモードを可能にする。DMモードの使用は、ビデオエンコーダ20および/またはビデオデコーダ30が、クロマPUについて、対応するルーマPUについての予測モードと同じ予測モードを利用することを示す。上述したように、Iスライスの場合、ルーマブロックおよび対応するクロマのためのQTBTベースの区分化構造は異なり得る。そのため、DMモードがIスライスにおいて使用されるとき、ビデオエンコーダ20および/またはビデオデコーダ30は、クロマPUについての予測を実行するために、左上位置をカバーするPUのルーマ予測モードを継承し得る。ルーマブロックおよびその対応するクロマブロックが常に同じツリー構造を共有するHEVCの区分化技法とは対照的に、JEM3.0のQTBTベースの区分化は、図11Aおよび11Bに示されるようなルーマツリー構造とクロマツリー構造との間の起こり得る差分を可能にする。
[0137]図11Aおよび11Bは、Iスライス中の1つのCTUのQTBT区分化構造の例を例示する。図11Aは、ルーマブロック172を例示し、ここで、左区分174は、上下で挟み込む中括弧(upper and lower bookending braces)を使用して表されている。図11Bは、対応するクロマブロック176を例示し、ここで、左区分178が、上下で挟み込む中括弧を使用して表されている。それぞれの左区分174および178は、図11Aおよび11Bに示されるように、より微細な区分を含む。L(i)、ここで、「i」は、それぞれの区分内で例示されるそれぞれの整数値を表す、は、それぞれの区分のためのルーマイントラ予測モードがiに等しいインデックスを有することを示す。図11Aおよび11Bに例示される例では、ビデオエンコーダ20および/またはビデオデコーダ30は、DMモードでクロマブロック176の左区分を符号化/復号し得る。ゆえに、ビデオエンコーダ20および/またはビデオデコーダ30は、クロマブロック176の左区分178を予測するために、左上の対応するルーマブロック区分からLMモードを選び得る。図11Aおよび11Bに例示される使用事例シナリオでは、ビデオエンコーダ20および/またはビデオデコーダ30は、「i」がルーマブロック172の左上区分において1の値を有するため、クロマブロック176の左区分178を符号化/復号するために、1に等しいインデックスを有するイントラ予測モードを選択し得る。
[0138]上の表7は、ビデオエンコーダ20がクロマモードをシグナリングするために使用し得るモード配列を指定する。導出モード(DM)が常に存在するモードのうちの1つを指すときに生じ得るクロマモードシグナリングにおける起こり得る冗長性を取り除くために、ビデオエンコーダ20は、以下の表7.1に示されるように、重複モードの代わりになるために、角度(合計で67個のイントラモードが存在する場合66個の)モードを使用し得る。以下の表7.1に例示される使用事例シナリオでは、(INTRA_ANGULAR66と表される)角度モードは、「代替モード」と呼ばれる。
[0139]上述したように、ビデオエンコーダ20およびビデオデコーダ30は、クロマ予測モードのエントロピーコード化を実行し得る。クロマモードコード化では、1−bシンタックス要素(0)が、最も頻繁に生じる導出モードに割り当てられ、2つのビン(10)が、LMモードに割り当てられ、4−bシンタックス要素(1100、1101,1110,1111)が残りの4つのモードに割り当てられる。最初の2つのビンは、1つのコンテキストモデルでコード化され、(必要であれば)残りの2つのビンは、バイパスコード化される。
[0140]本開示の技法は、上述した様々な技法の性能を改善することを対象としている。上述したように、JEM3.0は、同じCTUのためのクロマブロック区分化およびルーマブロック区分化に対して別個のツリー構造をサポートする。しかしながら、1つのクロマPUは、複数のルーマPUに対応し得る。JEM3.0のQTBT区分化態様にしたがって、クロマコード化のために複数のルーマPUからルーマイントラ予測モードのうちの1つだけを継承することは、準最適結果を提供し得、これは、本開示の様々な技法によって改善されることまたはできる限り最適化されることができる。追加的に、JEMにおける所与のPUにつての可能なクロマモードの総数は6である。しかしながら、ルーマコード化の場合、可能なモードの総数は、67である。本開示の様々な技法は、クロマモードの総数を増加させることでコード化効率を改善し得る。
[0141]本開示の様々な技法は、以下に個条書きでリストされる。ビデオエンコーダ20および/またはビデオデコーダ30が、後述される様々な技法を、単独でまたは説明される技法の2つ以上の様々な組合せで適用し得ることは認識されるであろう。ビデオエンコーダ20および/またはビデオデコーダ30によって実行されるとして説明されているが、図2に例示されたビデオエンコーダ20の1つまたは複数の構成要素および/または図3に例示されたビデオデコーダ30の1つまたは複数の構成要素が本開示の様々な技法を実行し得ることは認識されるであろう。
[0142]以下の説明は、1つのクロマブロックのサイズをW×Hとして表す(ここで、「W」は、クロマブロックの幅であり、「H」は高さである)。スライス全体に対するクロマブロック中の左上画素の位置は、タプル(x,y)で表され、ここで、「x」および「y」は、それぞれ水平オフセットおよび垂直オフセットである。所与のクロマブロックに対応するルーマブロックは、(4:2:0色フォーマットのための)2W×2Hまたは(4:4:4色フォーマットのための)W×Hに等しいサイズを有する。スライス全体に対する対応するルーマブロック中の左上画素の位置は、(4:2:0のための)タプル(2x,2y)または(4:4:4のための)(x,y)で表される。以下に与えられる例は、4:2:0色フォーマットに関して説明される。本明細書で説明される技法が他の色フォーマットにも拡張可能であることは認識されるであろう。
[0143]本開示の特定の態様によれば、複数のDMモードが、クロマコード化に関して加えられ得、それによって、ビデオエンコーダ20およびビデオデコーダ30に利用可能な(ルーマブロックからの)利用可能なクロマ符号化および復号モードの数を増加させる。すなわち、本開示のこれらの態様によれば、ビデオエンコーダ20およびビデオデコーダ30は、対応するルーマブロックのために使用されるコード化モードを継承するために、単一のオプションより多くの数のDMオプションを有し得る。例えば、本開示の技法によれば、ビデオエンコーダ20および/またはビデオデコーダ30は、対応するルーマブロックにおいて使用されるイントラ予測モードに基づいて、クロマブロックについてのDMイントラ予測モードを含む候補リストを生成し得る。DM候補リストにおける可能なクロマモードの総数を同じに維持することでコード化および帯域幅効率を保ちつつ、複数のDMを適用することを対象とした本開示の技法は、DMが、既存の技法において使用されるデフォルトモードより良好な精度を提供するため、潜在的な精度の向上を提供する。
[0144]この例では、ビデオエンコーダ20は、JEM3.0において現在明記されているクロマモードをシグナリングし得る。しかしながら、ビデオエンコーダ20が、クロマブロックのクロマコード化のためにDMモードを選択する場合、ビデオエンコーダ20は、追加のシグナリングをインプリメントし得る。より具体的には、この例によれば、ビデオエンコーダ20は、DMモードがクロマブロックの符号化のために選択されたことを示すフラグを符号化し、シグナリングし得る。クロマブロックがDMモードで符号化されていることに基づいて、ビデオエンコーダ20は、候補リストのどのモードがDMモードとして使用されたかを示すために、インデックス値を符号化し、シグナリングし得る。ビデオエンコーダ20は、候補リストのサイズに基づいて、0と5との間のインデックス値を符号化し、シグナリングし得る。すなわち、ビデオエンコーダ20は、合計で6つの候補を含むクロマ予測モードの候補リストを生成し得、すなわち、6という候補リストサイズに帰着する。
[0145]符号化されたクロマブロックがDMモードを使用して符号化されたことを示す値に設定されたフラグを受信することに基づいて、ビデオデコーダ30は、クロマブロックについての復号モードが候補リストに含まれていると決定し得る。次に、ビデオデコーダ30は、クロマモード候補リスト中のエントリを識別するインデックスを受信し、復号し得る。符号化されたクロマブロックがDMモードを使用しておよび符号化されたクロマブロックのために受信されたインデックス値を使用して符号化されたことを示すフラグに基づいて、ビデオデコーダ30は、クロマモード候補リストから、クロマブロックの復号に使用するために特有のモードを選択し得る。このように、ビデオエンコーダ20およびビデオデコーダ30は、DMモードがクロマブロックのコード化に選択される事例において、クロマブロックの符号化および復号に使用されることができる候補モードの数を増加させ得る。ビデオデコーダ30は、候補リストのサイズに基づいて、0と5との間のインデックス値を復号し得る。すなわち、ビデオデコーダ30は、合計で6つの候補を含むクロマ予測モードの候補リストを生成し得、すなわち、6という候補リストサイズに帰着する。
[0146]いくつかの例では、ビデオエンコーダ20は、クロマブロックが線形モデル(LM)モードで符号化されるかどうかを示すために、最初に、フラグを符号化し、シグナリングし得る。これらの例では、ビデオエンコーダ20は、候補リスト中のDM候補のすべてを示すデータを用いて、(クロマブロックがLM符号化されるか否かを示すための)シグナリングされたフラグに従い得る。このインプリメンテーションによれば、ビデオデコーダ30は、符号化済みビデオビットストリームにおいて、クロマブロックがLMモードで符号化されるか否かを示す符号化されたフラグを受信し得る。ビデオデコーダ30は、候補リスト中のDM候補のすべてを示すデータを、符号化済みビデオビットストリーム中のLMフラグに続いて開始する位置から、解釈し得る。ゆえに、本開示の様々な例にしたがって、ビデオデコーダ30が、DM候補リストを構築し得るか、または代替的に、符号化済みビデオビットストリーム中の全DM候補リストを受信し得るかのいずれかを行うことは認識されるであろう。ビデオデコーダ30は、いずれのシナリオにおいても、候補リストから好適なDMモードを選択するために、シグナリングされたインデックスを使用し得る。
[0147]ビデオエンコーダ20はまた、DM候補リストのDMに関してプルーニングをインプリメントし得る。すなわち、ビデオエンコーダ20は、リストに含まれているDMのうちの2つが同一であるか否かを決定し得る。ビデオエンコーダ20が、単一のDMの複数のインスタンス(すなわち、複数の同一のDM)が候補リストに含まれていると決定する場合、ビデオエンコーダ20は、同じDMの1つのインスタンスを除きすべてを取り除くことで冗長性を取り除き得る。すなわち、ビデオエンコーダ20は、そのような同一のDMの厳密に1つのインスタンスが候補リストに残るようにリストをプルーニングし得る。
[0148]本開示のDM候補リストベースの技法のいくつかの例では、ビデオエンコーダ20は、デフォルトモードのうちの1つまたは複数に対して候補リスト中のDM候補をプルーニングし得る。本開示のプルーニング技法にしたがって、デフォルトモードのうちの1つ(例えば、デフォルトモードリスト中の第Kのモード)がDM候補リスト中のDMモードのうちの1つと同一であるとビデオエンコーダ20が決定する場合、ビデオエンコーダ20は、候補リスト中のそのようなDMモードを代替モードと置き換え得る。候補リスト中のプルーニングされたDMモードを置き換えることに加えて、ビデオエンコーダ20は、((max Intra Mode Index)−1−K)の値に等しいインデックスを有するモードに代替モードを設定し得る。ビデオエンコーダ20が、候補リストに含まれるDMモードのすべてを示すデータをシグナリングするいくつかのインプリメンテーションでは、ビデオエンコーダ20は、プルーニングされたDM候補リストを反映するデータをシグナリングし得る。
[0149]ビデオデコーダ30もまたDM候補リスト構築を実行するいくつかの例では、ビデオデコーダ30もまた、DM候補リストを確定するためにプルーニングを実行する。例えば、デフォルトモードのうちの1つ(例えば、デフォルトモードリスト中の第Kのモード)がDM候補リスト中のDMモードのうちの1つと同一であるとビデオデコーダ30が決定する場合、ビデオデコーダ30は、候補リスト中のそのようなDMモードを代替モードと置き換え得る。候補リスト中のプルーニングされたDMモードを置き換えることに加えて、ビデオデコーダ30は、((max Intra Mode Index)−1−K)の値に等しいインデックスを有するモードに代替モードを設定し得る。
[0150]上で説明したDM候補リストベースの技法のうちの1つまたは複数をインプリメントすることで、ビデオエンコーダ20およびビデオデコーダ30は、可能なクロマ予測モードの数を増加させ得る。上で説明したDM候補リストベースの技法を介して利用可能なクロマモードの数の増加は、精確さを維持しつつコード化効率を向上させ得る。上で説明したように、様々な例では、ビデオデコーダ30は、符号化済みビデオビットストリームを介してDM候補リスト全体を受信し得る。また代替的に、DM候補リストを構築し、クロマブロックに関してDM候補リストから予測モードを選択するためにシグナリングされたインデックスを使用し得る。ビデオデコーダ30は、明示的にシグナリングされたDM候補リストを受信するか、または代替的に、DM候補リストを構築するかのいずれかを行い得るため、様々なDM候補リストベースの技法は、本明細書では、ビデオエンコーダ20によって、そしてオプションでビデオデコーダ30によって実行されていると説明される。
[0151]いくつかの例では、ビデオエンコーダ20は、特定の領域(universe)内に、例えば、タイル内、スライス内、ピクチャ内、またはシーケンス内に、DM候補リストのサイズ(すなわち、DM候補リストに含まれる候補の総数)を固定し得る。いくつかのそのような例では、ビデオデコーダ30が、DM候補リストを構築し、候補を選択するためにシグナリングされたインデックスを使用するように構成される場合、ビデオデコーダ30はまた、特定の領域内に、例えば、タイル内、スライス内、ピクチャ内、またはシーケンス内に、DM候補リストのサイズ(すなわち、DM候補リストに含まれる候補の総数)を固定し得る。
[0152]いくつかの例では、ビデオエンコーダ20は、対応する符号化されたビデオデータに関して帯域外でシグナリングされることができるメタデータ包含データ構造(metadata-containing data structure)において候補リストのサイズをシグナリングし得る。いくつかの非限定的な例として、ビデオエンコーダ20は、スライスヘッダ、ピクチャパラメータセット(PPS)、またはシーケンスパラメータセット(SPS)のうちの任意のものにおいて候補リストのサイズをシグナリングし得る。いくつかの例によれば、ビデオエンコーダ20(およびオプションで、ビデオデコーダ30)は、候補リストのサイズがすべてのブロックサイズに対して同じになるように候補リストのサイズを予め定義するように構成され得る。代替的に、ビデオエンコーダ20(およびオプションで、ビデオデコーダ30)は、候補リストのサイズがブロックのサイズに依存して異なるように候補リストのサイズを予め定義するように構成され得る。
[0153]いくつかの例によれば、ビデオエンコーダ20(およびオプションで、ビデオデコーダ30)は、最大で3つの部分を含む(例えば、包含する)ようにDM候補リストを構築し得る。これらの例では、DM候補リストの3つの部分は、以下を含む:(i)対応するルーマブロックに対する特定の位置に関連するルーマイントラ予測モードの候補を含む第1の部分、(ii)対応するルーマブロック内のすべてのルーマブロックの関数から導出される候補を含む第2の部分、例えば、上の1つの例で説明するような、最も頻繁に使用されるルーマイントラ予測モード、および(iii)モードインデックスの特定のオフセットを有する、選択されたルーマイントラ予測モードから導出される候補を含む第3の部分。
[0154]一例では、ビデオエンコーダ20(およびオプションで、ビデオデコーダ30)は、候補の総数が、予め定義されたリストサイズ(すなわち、DMモードの予め定義された総数)と等しくなるまで、最初の2つの部分からの候補をDM候補リストに順番に挿入し得る。DM候補リストに含まれるモードに関してプルーニングプロセスを実行した後、候補リストのサイズが、依然として、DMモードの予め定義された総数より小さい場合、ビデオエンコーダ20(およびオプションで、ビデオデコーダ30)は、リストの第3の部分から候補を挿入し得る。1つのそのような例では、ビデオエンコーダ20(およびオプションで、ビデオデコーダ30)は、第1の部分、それに続く第2の部分、そしてそれに続く第3の部分という順番に、3つの部分(または、プルーニングの結果に依存して2つの部分)からの候補を候補リストに挿入し得る。別の代替的な例では、ビデオエンコーダ20(およびオプションで、ビデオデコーダ30)は、第1の部分からの候補の前に第2の部分からの候補を挿入し得る。さらに別の代替的な例では、ビデオエンコーダ20(およびオプションで、ビデオデコーダ30)は、(例えば、第1の部分および第2の部分の候補をインターリーブまたは混ぜ合わさることで)第1の部分からの候補中に第2の部分からの候補を挿入し得る。
[0155]いくつかの例によれば、DM候補リストの第1の部分の候補は、対応するルーマブロックのコード化のために特定の位置から継承されたモードである。例えば、候補リストの第1の部分は、対応するルーマブロック中の次の位置から継承されたモードを含み得る:中央位置、左上位置、右上位置、左下位置、および右下位置。すなわち、この例では、候補リストの第1の部分は、対応するルーマブロックの4つのコーナーから継承されたモードを含み得る。1つのそのような例では、ビデオエンコーダ20(およびオプションで、ビデオデコーダ30)は、次の順序で、対応するルーマブロックの4つのコーナー位置から継承されたモードをDM候補リストに挿入し得る:中央、左上、右上、左下、右下。別のそのような例では、ビデオエンコーダ20(およびオプションで、ビデオデコーダ30)は、次の順序で、対応するルーマブロックの4つのコーナー位置から継承されたモードをDM候補リストに挿入し得る:中央、左上、右下、左下、右上。他の例では、順序は異なり得、上で説明した順序が非限定的な例であることは認識されるであろう。
[0156]一例では、ビデオエンコーダ20(およびオプションで、ビデオデコーダ30)は、対応するルーマブロックのすべての位置のイントラ予測モードを含むようにDM候補リストの第1の部分を作成し得る。この例では、第1の部分が、対応するルーマブロックのイントラ予測モードのすべてを含むため、第2の部分は必要なくなり得る。追加的に、ビデオエンコーダ20(およびオプションで、ビデオデコーダ30)は、特定の順序で、対応するルーマブロック内のすべての単位をトラバースし得る。代替的に、または加えて、ビデオエンコーダ20(およびオプションで、ビデオデコーダ30)は、対応するルーマブロック内の出現の降順に基づく順序で追加モードをDM候補リストに加え得る。
[0157]一例では、ビデオエンコーダ20(およびオプションで、ビデオデコーダ30)は、第3の部分を作成するために、リストに挿入される最初の1つまたは複数の候補にオフセットを適用し得る。加えて、第3の部分を作成する際、ビデオエンコーダ20(およびオプションで、ビデオデコーダ30)は、挿入された候補のプルーニングをさらに適用または実行し得る。1つの代替的な例では、ビデオエンコーダ20(およびオプションで、ビデオデコーダ30)は、隣接ブロックからの1つまたは複数のイントラクロマモードを含むように第3の部分を作成し得る。
[0158]本明細書で説明される技法のいくつかのインプリメンテーションによれば、ビデオエンコーダ20(およびオプションで、ビデオデコーダ30)は、CUからCUに、PUからPUに、またはTUからTUに、候補リストのサイズを適応的に変更し得る。一例では、ビデオエンコーダ20(およびオプションで、ビデオデコーダ30)は、3部分からなるDM候補リスト作成インプリメンテーションに関して説明したように、第1の部分からの候補だけを加え得る。代替的に、ビデオエンコーダ20(およびオプションで、ビデオデコーダ30)は、第1および第2の部分からの候補だけをDM候補リストに加え得る。いくつかの例では、ビデオエンコーダ20(およびオプションで、ビデオデコーダ30)は、同一のイントラ予測モードを取り除くために、プルーニングを実行し得る。III.
[0159]ビデオエンコーダ20がDM候補リストをプルーニングする例では、最終のプルーニング後のDM候補リスト中の候補の数が1に等しい場合、ビデオエンコーダ20は、DMインデックスをシグナリングしなであろう。いくつかの例では、ビデオエンコーダ20(およびオプションで、ビデオデコーダ30)は、短縮単項二値化を使用してDM候補リスト内のDMインデックス値を二値化し得る。代替的に、ビデオエンコーダ20(およびオプションで、ビデオデコーダ30)は、単項二値化を使用してDM候補リスト内のDMインデックス値を二値化し得る。
[0160]いくつかの例では、ビデオエンコーダ20(およびオプションで、ビデオデコーダ30)は、コンテキストモデルインデックスをビンインデックスに等しく設定し得る。代替的に、DMインデックス値をコード化するためのコンテキストモデルの総数は、最大候補の数より小さいであろう。このケースでは、ビデオエンコーダ20は、コンテキストモデルインデックスをmin(K,ビンインデックス)に等しく設定し得、ここで、Kは、正の整数を表す。代替的に、ビデオエンコーダ20は、コンテキストモデルで最初の数ビンだけを符号化し得、残りのビンをバイパスモードで符号化し得る。この例では、ビデオデコーダ30は、コンテキストモデルで最初の数ビンだけを復号し得、残りのビンをバイパスモードで復号し得る。
[0161]代替的に、ビデオエンコーダ20(およびオプションで、ビデオデコーダ30)は、DM候補の総数、またはCU、PU、またはTUサイズのうちの1つまたは複数に依存して、コンテキストコード化されるビンの数を決め得る。代替的に、最初のM個のビン(例えば、Mは1に等しい)の場合、コンテキストモデリングは、最終の(例えば、プルーニング後の)DM候補リスト中のDM候補の総数、またはCU/PU/TUサイズ、または対応するルーマブロックの分割情報にさらに依存し得る。
[0162]いくつかの例では、ビデオエンコーダ20(およびオプションで、ビデオデコーダ30)は、二値化の前に候補リスト中の候補をさらに再順序付けし得る。一例では、CU/PU/TUの幅がCU/PU/TUの高さより大きいとき、再順序付けは、候補のためのリアルイントラモードと水平イントラ予測モードとの間のイントラ予測モードインデックス差分に基づき得る。差分が小さいほど、DM候補リスト中の候補に割り当てられることとなるインデックスは小さくなり、割り当てられることとなる。別の例では、CU/PU/TUの高さがCU/PU/TUの幅より大きいとき、再順序付けは、候補のためのリアルイントラモードと垂直イントラ予測モードとの間のイントラ予測モードインデックス差分に基づき得る。この例ではまた、差分が小さいほど、DM候補リスト中の候補に割り当てられることとなるインデックスは小さくなる。
[0163]代替的に、さらに、ビデオエンコーダ20(およびオプションで、ビデオデコーダ30)は、デフォルトモードに対してリスト中のすべてのDM候補のプルーニングを実行し得る。デフォルトモードのうちの1つ(例えば、デフォルトモードリスト中の第Kのモード)がDM候補リスト中のDMモードのうちの1つと同一である場合、ビデオエンコーダ20(およびオプションで、ビデオデコーダ30)は、DM候補リスト中のそのようなDMモードを、代替モードと置き換え得る。候補リスト中のプルーニングされたDMモードを置き換えることに加えて、ビデオエンコーダ20(およびオプションで、ビデオデコーダ30)は、((max Intra Mode Index)−1−K)の値に等しいインデックスを有するモードに代替モードを設定し得る。
[0164]本開示のいくつかの技法によれば、ビデオエンコーダ20およびビデオデコーダ30は、ルーマイントラ予測モードとクロマイントラ予測モードとを単一化し得る。すなわち、各クロマブロックについて、ビデオエンコーダ20および/またはビデオデコーダ30は、線形モデル(LM)モードおよびクロマ成分のコード化に特有の他のモードに加え、利用可能なルーマ予測モードのプール(pool)から予測モードを選択し得る。利用可能なルーマ予測モードのプールは、本明細書では、合計「N」個の予測モードを含むと説明されており、ここで、「N」は、正の整数値を表す。いくつかの例では、「N」の値は、67個の異なる利用可能なルーマ予測モードに対応する67に等しい。
[0165]追加的に、ビデオエンコーダ20はまた、最確モード(MPM)フラグを、そしてこのMPMフラグの値に依存して、クロマイントラ予測モードの符号化およびシグナリングに関する(MPM候補リスト中のMPM候補のインデックスに対応する)MPMインデックスをシグナリングし得る。例えば、ビデオエンコーダ20は、クロマブロックについての1つまたは複数のDMモードをMPM候補リストに最初に加えることで、MPM候補リストを構築し得る。上述したように、ビデオエンコーダ20は、クロマブロックについての複数のDMモードを識別し得る。しかしながら、いくつかのシナリオでは、ビデオエンコーダ20が、クロマブロックについて単一のDMモードを識別し得ることは認識されるであろう。DMモードをMPM候補リストに加えた後、ビデオエンコーダ20は、隣接ブロックからの他のクロマモードをMPM候補リストに加え得る。代替的に、または加えて、ビデオエンコーダ20は、例えば、V.Seregin,X.Zhao,A.Said,M.Karczewiczによる「Neighbor based intra most probable modes list derivation」,JVET−C0055,ジュネーブ,2016年5月(以降「Seregin」)に記載されているルーマMPM候補リスト構築プロセスを使用することで、デフォルトモードを加え得る。
[0166]代替的に、ビデオエンコーダ20は、ルーマモードMPM候補リストの場合と同様にクロマMPM候補リストを構築し得る。例えば、ビデオエンコーダ20は、Sereginに記載されている順序でいくつかの隣接ブロックをチェックし得る。これらのインプリメンテーションでは、ビデオエンコーダ20は、 LMモードおよび/または他のクロマ固有のイントラ予測モードを、ビデオエンコーダ20が他のイントラ予測モードを処理するのと同様に処理し得る。さらに、ビデオエンコーダ20は、同一のイントラ予測モードが複数のソースから加えられることから生じる冗長性を取り除くためにMPM候補リストをプルーニングし得る。
[0167]一例では、ビデオエンコーダ20は、LMモードおよび/またはクロマ成分のコード化にのみ使用される他の予測モードのような、クロマ成分にのみ適用される1つまたは複数のクロマ固有のモードの使用量(usage)を示すためにフラグを最初にシグナリングし得る。選択された予測モードがクロマ固有のモードでない(すなわち、ビデオエンコーダ20が、上述したフラグを無効状態に設定する)場合、ビデオエンコーダ20は、MPMフラグをさらにシグナリグし得る。この例となるインプリメンテーションでは、隣接ブロックから継承されたクロマ予測モードをMPMリストに加えるとき、ビデオエンコーダ20は、クロマ固有のモード(例えば、LMモード)が隣接ブロックから得られる場合、そのようなクロマ固有のモードを考慮しないであろう。
[0168]このインプリメンテーションの例となる使用事例が以下に説明される。ビデオエンコーダ20は、LMモードを使用してクロマブロックをイントラ予測し得、そのため、有効状態に設定されたLMフラグをシグナリングし得る。クロマブロックがLM予測モードを使用して符号化されていることに基づいて、ビデオエンコーダ20は、クロマブロックについてのMPM候補リスト内の位置を示すMPMインデックスをシグナリングし得る。この例となる使用事例は、クロマブロックについての予測モードがMPM候補リスト中の候補であるか全く候補でないかを示すインジケーションをビデオデコーダ30に最初に提供するためにビデオエンコーダ20が1ビットフラグを使用し得ることを例示する。クロマブロックに対して使用される予測モードがMPM候補リストからの候補である場合かつその場合に限り、ビデオエンコーダ20は、クロマブロックを予測するためにMPM候補リストのどのモードが使用されるかをビデオデコーダ30に示すためにインデックスをシグナリングし得る。このように、ビデオエンコーダ20は、最初に1ビットフラグを使用し、その後このフラグの値に基づいて、インデックス値をシグナリングするか全くしないかを決定することで帯域幅を節約し得る。
[0169]上述した技法のデコーダ側の態様が後述される。ビデオデコーダ30は、符号化済みビデオビットストリームにおいてMPMフラグを受信し得る。MPMフラグの値が有効状態に設定されている場合、ビデオデコーダ30もまた、適切なクロマブロックに関して、MPM候補リスト中の特定のMPM候補のインデックスに対応するMPMインデックスを受信し得る。例えば、ビデオデコーダ30は、クロマブロックについての1つまたは複数のDMモードをMPM候補リストに最初に加えることで、MPM候補リストを構築し得る。上述したように、ビデオデコーダ30は、クロマブロックの再構築について複数のDMモードを識別し得る。しかしながら、いくつかのシナリオでは、ビデオデコーダ30が、クロマブロックについて単一のDMモードを識別し得ることは認識されるであろう。DMモードをMPM候補リストに加えた後、ビデオデコーダ30は、隣接ブロックからの他のクロマモードをMPM候補リストに加え得る。代替的に、または加えて、ビデオデコーダ30は、例えば、Sereginに記載されているルーマMPM候補リスト構築プロセスを使用することで、デフォルトモードを加え得る。
[0170]代替的に、ビデオデコーダ30は、ルーマモードMPM候補リストに関する方法と同じ方法でクロマMPM候補リストを構築し得る。例えば、ビデオデコーダ30は、Sereginに記載されている順序でいくつかの隣接ブロックをチェックし得る。これらのインプリメンテーションでは、ビデオデコーダ30は、LMモードおよび/または他のクロマ固有のイントラ予測モードを、ビデオデコーダ30が他のイントラ予測モードを処理するのと同様に処理し得る。さらに、ビデオデコーダ30は、同一のイントラ予測モードが複数のソースから加えられることから生じる冗長性を取り除くためにMPM候補リストをプルーニングし得る。
[0171]一例では、ビデオエンコーダ20は、LMモードおよび/またはクロマ成分のコード化にのみ使用される他の予測モードのような、クロマ成分にのみ適用される1つまたは複数のクロマ固有のモードの使用量を示すためにフラグを最初にシグナリングし得る。選択された予測モードがクロマ固有のモードでない(すなわち、上述したフラグが無効状態に設定されているとビデオデコーダ30が決定する)場合、ビデオデコーダ30は、MPMフラグをさらに受信し得る。この例となるインプリメンテーションでは、隣接ブロックから継承されるクロマ予測モードをMPMリストに加えるとき、ビデオデコーダ30は、クロマ固有のモード(例えば、LMモード)が隣接ブロックから得られる場合、そのようなクロマ固有のモードを考慮しないであろう。
[0172]このインプリメンテーションの例となる使用事例が以下に説明される。ビデオデコーダ30は、有効状態に設定されているLMフラグを受信し得、したがって、LMモードイントラ予測を使用してクロマブロックを再構築し得る。クロマブロックがLM予測モードを使用して符号化されていることに基づいて、ビデオデコーダ30は、クロマブロックについてMPM候補リスト内の位置を示すMPMインデックスを受信し得る。この例となる使用事例は、クロマブロックについての予測モードがMPM候補リスト中の候補であるか全く候補でないかを最初に決定するためにビデオデコーダ30が1ビットフラグを使用し得ることを例示する。予測モードが、MPM候補リストからの候補でない場合、ビデオデコーダ30は、クロマブロックを予測するためにMPM候補リストのどのモードが使用されるかを示すインデックスをビデオエンコーダ20がシグナリングする必要性を除去する。このように、ビデオデコーダ30は、ビデオエンコーダ20がインデックス値をシグナリングすることを必要とされるインスタンスの数を低減することで帯域幅を節約し得、これは、1ビットフラグをシグナリングするより帯域幅集約型であり得る。
[0173]いくつかの例では、LMモードに加えて、ビデオエンコーダ20および/またはビデオデコーダ30は、他のクロマ特有のまたはクロマ固有のイントラ予測モードをMPMリストに加え得、残りのイントラ予測モードをリストのデフォルトモードとして加え得る。代替的に、ビデオエンコーダ20は、MPMフラグを最初にシグナリングし得、MPMリストを構築する際に、ビデオエンコーダ20および/またはビデオデコーダ30は、隣接ブロックがLMモードを使用して予測されるか否かにかかわらず、隣接ブロックのクロマ予測モードを常に考慮し得る。別の例では、LMモードがMPMリストに加えられないる場合、ビデオエンコーダ20および/またはビデオデコーダ30は、LMモードを第1のデフォルトモードとして加え得る。別の例では、ビデオエンコーダ20および/またはビデオデコーダ30は、MPM候補リストからのLMおよびモードだけを使用し得、デフォルトモードを完全に取り除き得る。いくつかの例では、ビデオエンコーダ20(およびオプションで、ビデオデコーダ30)は、加えられるデフォルトモードの総数が「K」で表される所定の整数値より少ない場合にのみ、既存のデフォルトモードを加え得る。1つのそのような例では、Kは、4の値に設定される。
[0174]いくつかの例では、1つのDMのみ許容されるとき、対応するルーマブロックを有する左上コーナーからルーマイントラ予測モードを得る代わりに、ビデオエンコーダ20および/またはビデオデコーダ30は、ルーマイントラ予測モードをDMモードとして選択するために、以下のルールのうちの1つまたは複数を使用し得る。そのようなルールの一例では、ルーマイントラ予測モードは、対応するルーマブロック内で最も頻繁に使用されるモードである。一例では、特定の走査順序に基づいて、ビデオエンコーダ20および/またはビデオデコーダ30は、対応するルーマブロック内の各単位のイントラ予測モードをトラバースし、既存のルーマ予測モードの出現数を記録し得る。ビデオエンコーダ20および/またはビデオデコーダ30は、最大の出現数を有するモードを選択し得る。すなわち、ビデオエンコーダ20および/またはビデオデコーダ30は、対応するルーマブロックのサイズ(すなわち、エリア)の大部分をカバーするルーマイントラ予測モードを選択し得る。2つの予測モードが、対応するルーマブロックにおいて同じ量の使用量を有するとき、ビデオエンコーダ20および/またはビデオデコーダ30は、走査順序に基づいて、最初に検出される予測モードを選択し得る。ここで、単位は、ルーマ/クロマイントラ予測についての最小PU/TUサイズとして定義される。いくつかの例では、走査順序は、ラスタ/ジグザグ/対角/ジグザグ走査順序またはコード化順序であり得る。
[0175]代替的に、ビデオエンコーダ20および/またはビデオデコーダ30は、ルーマブロックの中央位置から走査を開始し、特定の順序で境界へとトラバースし得る。代替的に、または加えて、走査/単位は、PU/TUサイズに依存し得る。代替的に、特定の走査順序に基づいて、ビデオエンコーダ20および/またはビデオデコーダ30は、対応するルーマブロック内の各PU/TU/CUのイントラ予測モードをトラバースし、既存のルーマ予測モードの出現数を記録し得る。ビデオエンコーダ20および/またはビデオデコーダ30は、最大の出現数を有するモードを選択し得る。2つのモードが、ルーマブロックにおいて同じ量の使用量を有するとき、ビデオエンコーダ20および/またはビデオデコーダ30は、走査順序に基づいて最初に現れる(すなわち、最初に検出される)予測モードを選択し得る。いくつかの例では、走査順序は、ラスタ/ジグザグ/対角/ジグザグ走査順序またはコード化順序であり得る。代替的に、走査は、PU/TUサイズに依存し得る。
[0176]別の代替例では、単一の許容されるDMモードに関して上で説明した例について、2つ以上のモードが、対応するルーマブロックにおいて等しい数の出現数を有するとビデオエンコーダ20および/またはビデオデコーダ30が決定する場合、ビデオエンコーダ20および/またはビデオデコーダ30は、ルーマブロックにおいて等しい数の出現を有するモードのうちの1つを選択し得る。選択は、PU/TUサイズのおよび/またはこれらの複数のルーマモードのモードインデックスに依存し得る。代替的に、32×32より大きいブロックサイズのような特定のブロックサイズについて、ビデオエンコーダ20および/またはビデオデコーダ30は、この単一DMベースのルールにしたがって、対応するルーマブロックのルーマイントラ予測モードの部分(例えば、部分的なサブセット)だけを評価し得る。
[0177]単一DMモードシナリオに関するそのようなルールの別の例として、ビデオエンコーダ20および/またはビデオデコーダ30は、対応するルーマブロックの中央位置に関連するルーマイントラ予測モードを選択し得る。一例では、ビデオエンコーダ20および/またはビデオデコーダ30は、4:2:0色フォーマットのための座標タプル(2x+W−1,2y+H−1)にしたがって中央位置を定義し得る。代替的に、ビデオエンコーダ20および/またはビデオデコーダ30は、中央位置が次のように定義されることを定義し得る:
−WおよびHの両方が2に等しい場合、ビデオエンコーダ20および/またはビデオデコーダ30は、位置(2x,2y)を中央位置として使用し得る。
−上記以外の場合で、Hが2に等しい場合、ビデオエンコーダ20および/またはビデオデコーダ30は、位置(2x+(2*W/4/2−1)*4,2y)を中央位置として使用し得る。
−上記以外の場合で、Wが2に等しい場合、ビデオエンコーダ20および/またはビデオデコーダ30は、位置(2x,2y+(2*H/4/2−1)*4)を中央位置として使用し得る。
−上記以外の場合(例えば、HおよびWの両方が4に等しくない場合)、(2x+(2*W/4/2−1)*4,2y+(2*H/4/2−1)*4)が中央位置として使用される。
[0178]本開示の技法のいくつかの例によれば、すべてのブロックに対して同じデフォルトモードを使用する代わりに、ビデオエンコーダ20および/またはビデオデコーダ30は、対応するルーマブロックから導出されたモードをデフォルトモードとみなし得る。一例では、デフォルトモードの総数は、対応するルーマブロックから導出されるモードをより多く含むために増やされる。別の例では、既存のデフォルトモードは、加えられたデフォルトモードの総数がK(1つ非限定的な例では、Kは4に設定される)より少ないときにのみ加えられる。
[0179]図12Aおよび12Bは、本開示の1つまたは複数の態様に係る、クロマ予測モードの適応型順序付けのための隣接ブロックセクションを例示する。本開示の技法のいくつかの例によれば、ビデオエンコーダ20および/またはビデオデコーダ30は、順序が隣接ブロックのクロマモードに依存し得るように、クロマモードの適応型順序付けを適用し得る。一例では、ビデオエンコーダ20および/またはビデオデコーダ30は、DMおよび/またはLMモードのような特有のモードにのみ適応型順序付けを適用し得る。別の例では、隣接ブロックは、図12Aに描写されるように、5つの隣接ブロックである。代替的に、ビデオエンコーダ20および/またはビデオデコーダ30は、2つの隣接ブロック、例えば、図12Aに示されるようなA1およびB1または図12Bに示される上(A)および左(L)のブロック、だけを使用し得る。一例では、ビデオエンコーダ20および/またはビデオデコーダ30は、すべての利用可能な隣接するイントラコード化されたブロックがLMモードでコード化されるとき、LMモードをDMモードの前に置き得る。代替的に、ビデオエンコーダ20および/またはビデオデコーダ30は、利用可能な隣接するイントラコード化されたブロックのうちの少なくとも1つがLMモードでコード化されるとき、LMモードをDMモードの前に置き得る。
[0180]本開示のいくつかの例によれば、ビデオエンコーダ20および/またはビデオデコーダ30は、エントロピーコード化の前にクロマシンタックス値を再順序付けするためにルーマ情報を使用し得る。一例では、ルーマブロックのNSSTインデックスは、クロマNSSTインデックスのコード化順序を更新するために使用され得る。このケースでは、ビデオエンコーダ20および/またはビデオデコーダ30は、クロマブロックのインデックスが、対応するルーマブロックのNSSTインデックスと同じであるかどうかを示すビンを最初に符号化/復号し得る。別の例では、ビデオエンコーダ20および/またはビデオデコーダ30は、クロマAMT(adaptive multiple transform)インデックスのコード化順序を更新するために、ルーマブロックのAMTインデックスを使用し得る。このケースでは、ビデオエンコーダ20および/またはビデオデコーダ30は、クロマブロックのインデックスが、対応するルーマブロックのAMTインデックスと同じであるかどうかを示すために、ビンを最初に符号化/復号し得る。ビデオエンコーダ20および/またはビデオデコーダ30は、インデックス/モードがルーマ成分とクロマ成分とで異なり得るが、方法がルーマ成分およびクロマ成分の両方に適用可能である任意の他のシンタックスに対して別の(例えば、類似した)やり方を使用し得る。
[0181]本開示のいくつかの例によれば、ビデオエンコーダ20および/またはビデオデコーダ30は、導出が、対応するルーマブロックのルーマイントラ予測モードに基づくように、1つのクロマブロックに対してLMパラメータの複数のセットを導出し得る。一例では、ビデオエンコーダ20および/またはビデオデコーダ30は、最大でK個のセットのパラメータを導出し得、ここで、「K」は整数値を表す。一例では、「K」は、2の値に設定される。別の例では、ビデオエンコーダ20および/またはビデオデコーダ30は、対応するルーマブロックに位置するサンプルのイントラ予測モードに基づいて、隣接ルーマ/クロマサンプルをK個のセットに分類し得る。ビデオエンコーダ20および/またはビデオデコーダ30は、対応するルーマブロックに位置するサンプルのイントラ予測モードに基づいて、対応するルーマブロック内のルーマサンプルをK個のセットに分類し得る。別の例では、2つのイントラ予測モードが「離れている」と考えられるとき、例えば、モードインデクスの絶対値が閾値より大きい場合、ビデオエンコーダ20および/またはビデオデコーダ30は、異なるパラメータを使用するものとして、対応するサブブロックおよび隣接サンプルとをみなし得る。
[0182]本開示のいくつかの例によれば、ビデオエンコーダ20および/またはビデオデコーダ30は、現在のクロマブロックを符号化/復号するために複合DMモードを使用し得る。本開示の複合DMモードによれば、ビデオエンコーダ20は、2つ以上の識別されたイントラ予測モードから生成された予測ブロックの加重和を使用して予測ブロックを生成し得る。ビデオエンコーダ20は、2つ以上のイントラ予測モードを識別し得、これらは、コロケートされているルーマブロックを符号化するために使用されるか、隣接クロマブロックを符号化するために使用されるか、対応するルーマブロックの隣接を符号化するために使用される。次いで、ビデオエンコーダは、識別されたイントラ予測モードの各々の予測ブロックを生成し得、2つ以上の生成された予測ブロックの加重和をこの複合DMモードの予測ブロックとして導出し得る。
[0183]一例では、この複合DMモードの予測ブロックを生成するための重みは、対応するルーマブロックに適用される各識別されたイントラ予測モードのエリアサイズに依存する。代替的に、識別された各イントラ予測モードについての予測ブロックの重みは、現在の画素の位置と、現在の識別されたイントラ予測モードが現在の画素をカバーしているかどうかとに依存し得る。別の代替例では、重みは、識別された各イントラ予測モードについて同一である。別の代替例では依然として、ビデオエンコーダ20および/またはビデオデコーダ30は、予め定義された重みのセットを利用し得る。さらに別の代替例では、または加えて、ビデオエンコーダ20は、各CTU/CU/PU/TUについての重みのインデックスをシグナリングし得る。デフォルトモード(表7.1に示されるような非DMおよび非LMモード)をシグナリングするとき、デフォルトモードが、複合DMモードを生成するために識別されている場合、ビデオエンコーダ20は、デフォルトモードを、複合DMモードを生成するために識別されない他のイントラ予測モードと置き換え得る。
[0184]図13Aおよび13Bは、上述した複数のDMモード選択ベースの技法にしたがってクロマイントラ予測モードを選択するためにビデオエンコーダ20およびビデオデコーダ30が使用し得るブロック位置の例を例示する概念図である。クロマコード化のための複数のDMモードベースの選択に関する1つの例となるインプリメンテーションが以下に説明される。上で説明したように、本開示の態様にしたがって、ビデオエンコーダ20(およびオプションで、ビデオデコーダ30)は、DMモードの選択を実行し得る。すなわち、いくつかの例では、ビデオエンコーダ20は、DM候補リストを明示的にシグナリングし得、ビデオデコーダ30が同じくDM候補リストを作成する必要性がなくす。他の例では、ビデオエンコーダ20は、DM候補リストから、選択された候補のインデックスだけをシグナリングし得、ビデオデコーダ30が、ビデオデコーダ30が同じく作成するDM候補リストから候補を選択することを可能にする。
[0185]図13Aは、ルーマ成分(ルーマブロック202)のサブブロックにおいて使用される予測モードを例示する。図13Bは、HEVC技法にしたがった、クロマブロック204に関するルーマモード継承を例示する。示されるように、ルーマブロック202の左上サブブロックからの予測モード(すなわち、モードL(1))は、HEVC技法にしたがって、クロマブロック204の左領域に関して継承される。図13Aに示されるように、中央(C0)、左上(TL)、右上(TR)、左下(BL)、および右下(BR)に位置しているサブブロックに使用されるルーマモードが、(例えば、ビデオエンコーダ20およびオプションでビデオデコーダ30によって)取得される。これらのモードは、頭文字語DMC、DMTL、DMTR、DMBL、DMBRで表される。いくつかの代替例では、ビデオエンコーダ20(およびオプションで、ビデオデコーダ30)は、C0選択を、位置C1および/またはC2および/またはC3において使用されたモードの選択と置き換え得る。加えて、ビデオエンコーダ20(およびオプションで、ビデオデコーダ30)は、ルーマブロック202の大部分のエリアをカバーするルーマモードを候補DMモードとしてDM候補リストに加え得る。ルーマブロック202の最大のエリアをカバーするルーマモードは、頭文字「DMM」で表される。
[0186]ビデオエンコーダ20(およびオプションで、ビデオデコーダ30)は、後述される1つまたは複数の技法を使用してDM候補リストを構築し得る。DMC、DMTL、DMTR、DMBL、およびDMBLを含む候補のグループからの候補の数(「N」で表される)は、所定の順序にしたがって、DM候補リストに加えられ得る。一例では、「N」は、6に設定され、順序は、次の通りであり得る:DMC,DMM,DMTL,DMTR,DMBL,DMBR。1つの代替例では、「N」は、5に設定され、順序は、次の通りであり得る:DMC,DMTL,DMTR,DMBL,DMBR。候補リストを作成する際、ビデオエンコーダ20(およびオプションで、ビデオデコーダ30)は、各そのような候補をDM候補リストに加える前に、前に加えられた候補の部分的なサブセット(例えば、真のサブセット)またはすべての候補に対して各候補をプルーニングし得る。2つの例となる順序が上述されているが、ビデオエンコーダ20(およびオプションで、ビデオデコーダ30)が、本開示の態様に係る、様々な他の順序も使用し得ることは認識されるべきである。候補リスト中のDMモードの総数が「M」であると仮定すると(ここで、「M」は正の整数である)、デフォルトモードの総数は、「F」で表され、DM候補リストの特定の候補は、DMiで表される。この表記法では、下付き文字「i」は、0〜M−1の範囲の整数値を表す。
[0187]ビデオエンコーダ20(およびオプションで、ビデオデコーダ30)は、DM候補およびデフォルトモードの間でプルーニングを使用適用し得る。すなわち、DM候補リストを作成する際、ビデオエンコーダ20(およびオプションで、ビデオデコーダ30)は、デフォルトモードに対してDM候補をプルーニングし得る。1つの代替例では、DMiごとに、ビデオエンコーダ20(およびオプションで、ビデオデコーダ30)は、DMiをデフォルトモードの各々と比較し得る。任意のデフォルトモードがDMiと同一であることが分かると、ビデオエンコーダ20(およびオプションで、ビデオデコーダ30)は、(DMiと同一であることが分かった)第1のそのようなデフォルトモードを代替モードと置き換え得る。例えば、ビデオエンコーダ20(およびオプションで、ビデオデコーダ30)は、プルーニングされたデフォルトモードを、(K−1−i)に等しいインデックス値を有するモードと置き換え得、ここで、「K」は、対応するルーマブロックについてのルーマ予測モードの総数である。これらの動作のための例となる疑似コードは次の通りである:
for ( i = 0; i < M; i++)
{
DMIdx = DMi;
for ( j = 0; j < F; j ++) //suppose 4 default modes
{
if( DMIdx == j-th default mode )
{
j-th default mode = Mode (K-1-i)
}
}
}
[0188]例えば、デフォルトモードは、モード0(平面)モード50(垂直方向)、モード18(水平方向)、およびモード1(DC)であり得、DM候補リストは、{モード0,モード63,モード50,モード1}でありる。プルーニングプロセスの後、デフォルトモードは、次のセットと置き換えられる:{モード66,モード64,モード18,モード63}。別の代替例では、ビデオエンコーダ20(およびオプションで、ビデオデコーダ30)は、フルプルーニングを適用し得、ここで、各デフォルトモードは、すべてのDMモードに対してプルーニングされる。すなわち、デフォルトモードごとに、デフォルトモードは、すべてのDMモードと比較される。DMモードのうちの1つが、現在調査されているデフォルトモードと同一であることをステップバイステップ比較が示す場合、デフォルトモードは、最後の非DMモードと置き換えられる。この例についての例となる疑似コードは以下の通りである:
Bool ModeAdded [K];
memset ( ModeAdded, false, K*sizeof(Bool)); //initialized to be false
for ( i = 0; i < M; i++)
{
ModeAdded [DMi] = true; //set the flag to be true when the corresponding intra mode is added as DM
}
Set variable LastAvailModeIdx = K-1;
for ( i = 0; i < F; i ++) //loop each default mode
{
if( ModeAdded [i-th default mode] == true) //has been added to the chroma mode
//list
{
for( j= LastAvailModeIdx; j >=0; j--)
{
if( ModeAdded [j] == true) //hasn’t been added to the chroma mode list {
i-th default mode = mode j; //default mode is replaced by the last
// available mode
LastAvailModeIdx = j - 1; //update the variable to record the last
// index that may be not added
break;
}
}
}
}
[0189]ビデオエンコーダ20は、クロマモードのシグナリングをインプリメントするために、本開示の複数のDMモードベースの技法の様々な態様をインプリメントし得る。ビデオエンコーダ20は、以下の部分を含むプロセスにしたがってクロマモードを符号化し得る。1つの部分として、ビデオエンコーダ20は、クロマ成分にのみ適用可能な予測モード(例えば、LM、これはクロマ符号化に特有である)のうちの任意のものの使用量を示すために、1ビットフラグを符号化し、シグナリングし得る。クロマブロックが、そのようなクロマ固有のモードにしたがって符号化される場合(それによって、ビデオエンコーダ20に、フラグを有効状態に設定させる)、ビデオエンコーダ20は、追加的に、その特有のモードについてのインデックスを符号化し、シグナリングし得る。
[0190]追加的に、ビデオエンコーダ20は、対応するルーマブロックから導出されるモードの使用量を示すためにフラグを符号化し、シグナリングし得る。すなわち、ビデオエンコーダ20が、対応するルーマブロックに使用される予測モードに基づいてクロマブロックを符号化するための予測モードを選択した場合、ビデオエンコーダ20は、フラグを有効状態に設定し得る。次に、クロマブロックが、対応するルーマブロックから継承された予測モードを使用して符号化される場合、ビデオエンコーダ20は、追加的に、対応するルーマブロックから選択されたモードについてのインデックスを符号化し、シグナリングし得る。
[0191]クロマブロックがクロマ固有の予測モードにしたがってもルーマブロック導出された予測モードにしたがっても符号化されないとビデオエンコーダ20が決定する場合、ビデオエンコーダ20は、残りのモードを識別する情報を符号化し、シグナリングし得る。ビデオエンコーダ20は、異なる順序にしたがって、クロマ符号化の上にリストされた部分/オプションをインプリメントし得る。異なる順序の例は、以下の表7.3および表7.4または表8の通りである。
[0192]上で説明したように、本開示の態様は、ルーマモードとクロマモードの単一化を対象としている。ルーマモードとクロマモードの単一化の例となるインプリメンテーションが以下に説明される。最確モード(MPM)候補の許容される総数は、以下にNmpmで表される。ビデオエンコーダ20および/またはビデオデコーダ30は、以下の部分を含むようにクロマイントラモードのモードリストを構築し得る:
−LMモード、および
−MPMモード。
[0193]MPMモード部分は、DM候補リストとクロマモード部分とを含み得る。ビデオエンコーダ20(およびオプションで、ビデオデコーダ30)は、DMca複数のDMモードを用いて上で説明したものと同じ技法を使用して、単一化された候補リストのDM候補リスト部分を作成し得る。MPMモードのクロマモード部分に関して、ビデオエンコーダ20(およびオプションで、ビデオデコーダ30)は、現在コード化されているクロマブロックの隣接ブロックからクロマモードを導出し得る。例えば、隣接ブロックからクロマモードを導出するために、ビデオエンコーダ20(およびオプションで、ビデオデコーダ30)は、ルーマモードのために使用されるMPM構築プロセスを再使用し得る。上で説明したリスト構築プロセスを実行した後に、MPM候補の総数が依然としてNmpmより小さい場合、ビデオエンコーダ20(およびオプションで、ビデオデコーダ30)は、上で挙げたJVET−C0055のように、様々なステップをインプリメントし得る。
[0194]例えば、上に明記されたリスト構築プロセスを実行した後に、MPM候補の総数がNmpmの値より少ない場合、ビデオエンコーダ20(およびオプションで、ビデオデコーダ30)は、次のモードを加え得る:左(L)、上(A)、平面、DC、左下(BL)、右上(AR)、および左上(AL)モード。MPM候補リストが依然として完結していない場合(すなわち、MPM候補の総数がNmpmの値より少ない場合)、ビデオエンコーダ20(およびオプションで、ビデオデコーダ30)は、すでに含まれている角度モードに−1および+1を加え得る。MPMリストが依然として完結しておらず、MPM候補リストが依然として完結していない場合(すなわち、MPM候補の総数がNmpmの値より少ない場合)、ビデオエンコーダ20(およびオプションで、ビデオデコーダ30)は、デフォルトモード、すなわち、垂直、水平、2、および対対角モード、を加え得る。
[0195]ビデオエンコーダ20および/またはビデオデコーダ30が識別し得る非MPMモードは、上で説明したMPM候補リスト構築プロセスに含まれない任意の残りのイントラ予測モードを含む。上で(例えば、JVET−C0055を参照する部分で)説明したルーマベースのMPMリスト構築プロセスとの違いは、1つの候補が加えられるとき、加えられる候補がLMモードでないことである。代替的または加えて、平面モードおよびDCモードは、すべての空間隣接(spatial neighbor)の後に加えられ得る。代替的に、ビデオエンコーダ20および/またはビデオデコーダ30は、JVET−C0055の技法に置き換わるために1つまたは複数の他のMPMリスト構築技法をインプリメントし得る。
[0196]ルーマモードとクロマモードの単一化に関して、ビデオエンコーダ20は、本開示の様々なクロマモードシグナリング技法をインプリメントし得る。ビデオエンコーダ20は、以下の部分を含むプロセスにしたがってクロマモードを符号化し得る。1つの部分として、ビデオエンコーダ20は、クロマ成分にのみ適用可能な予測モード(例えば、LMモード、これはクロマ符号化に特有である)のうちの任意のものの使用量を示すために、1ビットフラグを符号化し、シグナリングし得る。クロマブロックが、そのようなクロマ固有のモードにしたがって符号化される場合(それによって、ビデオエンコーダ20に、フラグを有効状態に設定させる)、ビデオエンコーダ20は、追加的に、その特有のモードについてのインデックスを符号化し、シグナリングし得る。
[0197]追加的に、ビデオエンコーダ20は、MPM候補リストに含まれるモードの使用量を示すために、フラグを符号化し、シグナリングし得る。すなわち、ビデオエンコーダ20が、クロマブロックを符号化するための予測モードを選択し、かつ、選択された予測モードがMPM候補リストに含まれる場合、ビデオエンコーダ20は、フラグを有効状態に設定し得る。次に、クロマブロックが、MPM候補リストに含まれる予測モードを使用して符号化される場合、ビデオエンコーダ20は、追加的に、MPM候補リストにおけるこのモードの位置を示す、このモードについてのインデックスを符号化し、シグナリングし得る。
[0198]クロマブロックがクロマ固有の予測モードにしたがってもMPM候補リストに含まれる予測モードにしたがっても符号化されないとビデオエンコーダ20が決定する場合、ビデオエンコーダ20は、残りのモードを識別する情報を符号化し、シグナリングし得る。ビデオエンコーダ20は、異なる順序にしたがって、クロマ符号化の上にリストされた部分/オプションをインプリメントし得る。異なる順序の例は、以下の表8.1または表9の通りである。
[0199]クロマイントラモードのモードリストが、(ルーマMPMと同じように複数のDMモードおよび空間隣接からのモードを含む)LMおよびMPM部分だけを含む場合、ビデオエンコーダ20は、以下の表9に示されるように、さらに修正された方法でクロマモードのシグナリングをインプリメントし得る:
[0200]別の代替例では、ビデオエンコーダ20(およびオプションで、ビデオデコーダ30)は、常に、(平面、DC、水平、垂直モードのような)デフォルトモードをMPM候補リストに加え得る。一例では、MPM候補リストのNmpm個の候補が、上で説明した技法のうちの1つまたは複数を用いて最初に構築され得る。次いで、デフォルトモードのうちの不足しているモードが、最後の1つまたは複数のMPM候補に置き換わり得る。
[0201]図14は、本開示の態様に係る、ビデオデコーダ30の処理回路が実行し得る例となるプロセス220を例示するフローチャートである。プロセス220は、ビデオデータのルーマブロックを予測するのに利用可能な複数の導出モード(DM)がビデオデータのクロマブロックを予測するのにも利用可能であるとビデオデコーダ30の処理回路が決定するときに開始し得、クロマブロックは、ルーマブロックに対応し得る(222)。ビデオデコーダ30は、クロマブロックに関して予測モードの候補リストを作成し得、候補リストは、クロマブロックを予測するのに利用可能な複数のDMのうちの1つまたは複数のDMを含む(224)。いくつかの非限定的な例では、ビデオデコーダ30の処理回路は、候補リストの1つまたは複数のDMの各それぞれのDMを示すデータを、符号化済みビデオビットストリームにおいて、受信し、候補リストを作成するために1つまたは複数のDMの各それぞれのDMを示す受信したデータを再構築し得る。他の例では、ビデオデコーダ30の処理回路は、候補リストを構築し得る。
[0202]ビデオデコーダ30の処理回路は、候補リストの1つまたは複数のDMのうちの任意のDMを使用してクロマブロックを復号すると決定し得る(226)。いくつかの非限定的な例では、ビデオデコーダ30の処理回路は、クロマブロックがDMのうちの1つを使用して符号化されることを示す1ビットフラグを、符号化済みビデオビットストリームにおいて、受信し得る。候補リストの1つまたは複数のDMのうちの任意のDMを使用してクロマブロックを復号するとの決定に基づいて、ビデオデコーダ30の処理回路は、クロマブロックを復号するために使用されるべき、候補リストの選択されたDMを識別するインジケーションを復号し得る(228)。例えば、ビデオデコーダ30の処理回路は、候補リストにおける選択されたDMの位置を識別するインデックス値を示す(符号化済みビデオビットストリームにおいて受信された)データを再構築し得る。次に、ビデオデコーダ30の処理回路は、選択されたDMにしたがってクロマブロックを復号し得る(230)。様々な例では、ルーマおよびクロマブロックを含むビデオデータは、ビデオデコーダ30のメモリに記憶され得る。
[0203]いくつかの例では、候補リストに含まれる1つまたは複数のDMは、対応するルーマブロックの中央位置に関連する第1の予測モード、対応するルーマブロックの左上位置に関連する第2の予測モード、対応するルーマブロックの右上位置に関連する第3の予測モード、対応するルーマブロックの左下位置に関連する第4の予測モード、または対応するルーマブロックの右下位置に関連する第5の予測モードのうちの1つまたは複数を含み得る。いくつかの例では、候補リストは、1つまたは複数のDMの各々とは異なる1つまたは複数のクロマイントラ予測モードをさらに含み得る。いくつかのそのような例では、クロマイントラ予測モードの各々は、クロマブロックの隣接クロマブロックを予測するために使用されるモードに対応する。いくつかの例では、候補リストの少なくとも1つのそれぞれのクロマイントラ予測モードは、クロミナンスデータを予測するためにのみ使用されるクロマ固有の予測モードである。
[0204]図15は、本開示の態様に係る、ビデオエンコーダ20の処理回路が実行し得る例となるプロセス240を例示するフローチャートである。プロセス240は、ビデオデータのルーマブロックを予測するのに利用可能な複数の導出モード(DM)がビデオデータのクロマブロックの予測するのにも利用可能であるとビデオエンコーダ20の処理回路が決定するときに開始し得、クロマブロックは、ルーマブロックに対応する(242)。様々な例では、ルーマおよびクロマブロックを含むビデオデータは、ビデオエンコーダ20のメモリに記憶され得る。ビデオエンコーダ20は、クロマブロックに関して予測モードの候補リストを作成し得、候補リストは、クロマブロックを予測するのに利用可能な複数のDMのうちの1つまたは複数のDMを含む(244)。
[0205]ビデオエンコーダ20の処理回路は、候補リストの1つまたは複数のDMのうちの任意のDMを使用してクロマブロックを符号化すると決定し得る(246)。候補リストの1つまたは複数のDMのうちの任意のDMを使用してクロマブロックを符号化するとの決定に基づいて、ビデオエンコーダ20の処理回路は、クロマブロックを復号するために使用されるべき、候補リストの選択されたDMを識別するインジケーションを符号化し得る(248)。例えば、ビデオエンコーダ20の処理回路は、候補リストにおける選択されたDMの位置を識別するインデックス値を示すデータを符号化し、符号化済みビデオビットストリームにおいて符号化済みデータをシグナリングし得る。次に、ビデオエンコーダ20の処理回路は、選択されたDMにしたがってクロマブロックを符号化し得る(250)。いくつかの例では、ビデオエンコーダ20の処理回路は、クロマブロックが線形モデル(LM)モードを使用して符号化されるかどうかを示す1ビットフラグを、符号化済みビデオビットストリームにおいて、シグナリングし得る。これらの例では、ビデオエンコーダ20の処理回路は、候補リストの1つまたは複数のDMの各それぞれのDMを示すデータを、符号化済みビデオビットストリームにおいて、シグナリングし得る。
[0206]いくつかの例では、候補リストに含まれる1つまたは複数のDMは、対応するルーマブロックの中央位置に関連する第1の予測モード、対応するルーマブロックの左上位置に関連する第2の予測モード、対応するルーマブロックの右上位置に関連する第3の予測モード、対応するルーマブロックの左下位置に関連する第4の予測モード、または対応するルーマブロックの右下位置に関連する第5の予測モードのうちの1つまたは複数を含み得る。いくつかの例では、候補リストは、1つまたは複数のDMの各々とは異なる1つまたは複数のクロマイントラ予測モードをさらに含み得る。いくつかのそのような例では、クロマイントラ予測モードの各々は、クロマブロックの隣接クロマブロックを予測するために使用されるモードに対応する。いくつかの例では、候補リストの少なくとも1つのそれぞれのクロマイントラ予測モードは、クロミナンスデータを予測するためにのみ使用されるクロマ固有の予測モードである。いくつかの例では、ビデオエンコーダ20の処理回路は、1つまたは複数のDMのうちの少なくとも2つのDMが同一であると決定し得、少なくとも2つの同一のDMのうちの厳密に1つのDMを候補リストに含め得る。
[0207]図16は、本開示の態様に係る、ビデオデコーダ30の処理回路が実行し得る例となるプロセス260を例示するフローチャートである。プロセス260は、ビデオデコーダ30の処理回路が、ビデオデコーダ30のメモリに記憶されたビデオデータのクロマブロックについての最確モード(MPM)候補リストを、このMPM候補リストが、クロマブロックに関連するビデオデータのルーマブロックに関連する1つまたは複数の導出モード(DM)と、ビデオデータの輝度成分を復号するために使用可能な複数のルーマ予測モードとを含むように作成するときに開始し得る(262)。いくつかの例では、ビデオデコーダ30の処理回路は、1つまたは複数のDMをMPM候補リストに加え得、MPM候補リスト中の1つまたは複数のDMのすべての位置の後に生じるMPM候補リストの位置に、クロマブロックの隣接クロマブロックから継承される1つまたは複数のクロマモードを加え得る。
[0208]いくつかの例では、ビデオデコーダ30の処理回路は、クロマブロックの1つまたは複数の隣接クロマブロックを予測するためにLMモードが使用されたとの決定に応答して、MPM候補リストからLMモードの任意の追加のインスタンスを省略し得る。いくつかの例では、ビデオデコーダ30の処理回路は、クロマブロックがLMモードを使用して符号化されるかどうかを示す1ビットフラグを、符号化済みビデオビットストリームにおいて、受信し得る。1つのシナリオでは、ビデオデコーダ30の処理回路は、受信した1ビットフラグが無効状態に設定されると決定し得、MPM候補リストの特有のモードに対応するMPMインデックスを受信し得、受信した1ビットフラグが無効状態に設定されていることに基づいて、受信したMPMインデックスに対応する特有のモードを選択し得る。別のシナリオでは、ビデオデコーダ30の処理回路は、受信した1ビットフラグが有効状態に設定されていると決定し得、受信した1ビットフラグが有効状態に設定されていることに基づいて、MPM候補リストからLMモードを選択し得る。
[0209]いくつかの例では、ビデオデコーダ30の処理回路は、クロマブロックに関連するデフォルトモードの数が所定の閾値を満たすかどうかを決定し得る。デフォルトモードの数が所定の閾値を満たすとの決定に基づいて、ビデオデコーダ30の処理回路は、デフォルトモードの各デフォルトモードをMPM候補リストに加え得、MPM候補リストからデフォルトモードのすべてを省略し得る。ビデオデコーダ30の処理回路は、MPM候補リストからモードを選択し得る(264)。次に、ビデオデコーダ30の処理回路は、MPM候補リストから選択されたモードにしたがってクロマブロックを復号し得る(266)。
[0210]いくつかの例では、MPM候補リストを作成するために、ビデオデコーダ30の処理回路は、1つまたは複数のDMをMPM候補リストに加え得、MPM候補リスト中の1つまたは複数のDMのすべての位置の後に生じるMPM候補リストの位置に、クロマブロックの隣接クロマブロックから継承される1つまたは複数のクロマモードを加え得る。いくつかの例では、MPM候補リストを作成するために、ビデオデコーダ30の処理回路は、1つまたは複数の線形モデル(LM)モードをMPM候補リストに加え得る。1つのそのような例では、ビデオデコーダ30の処理回路は、1つまたは複数のLMモードが、第1のLMモードの第1のインスタンスおよび第1のLMモードの1つまたは複数の追加のインスタンスを備えると決定し得、第1のLMモードがクロマブロックの1つまたは複数の隣接クロマブロックを予測するために使用されたとの決定に応答して、MPM候補リストからLMモードの1つまたは複数の追加のインスタンスを省略し得る。
[0211]いくつかの例では、ビデオデコーダ30の処理回路は、クロマブロックがLMモードを使用して符号化されるかどうかを示す1ビットフラグを、符号化済みビデオビットストリームにおいて、受信し得、ここにおいて、MPM候補リストからモードを選択することは、1ビットフラグの値に基づく。いくつかのそのような例では、ビデオデコーダ30の処理回路は、1つまたは複数のLMモードが複数のLMモードを含むと決定し得、受信した1ビットフラグが有効状態に設定されていると決定し得る。いくつかのそのような例では、ビデオデコーダ30の処理回路は、MPM候補リスト中の複数のLMモードのうちの特定のLMモードの位置に対応するLMインデックスを受信し得、受信した1ビットフラグが有効状態に設定されていることに基づいて、クロマブロックをコード化するために、受信したLMインデックスに対応する特定のLMモードを選択し得る。いくつかの例では、MPM候補リストからモードを選択するために、ビデオデコーダ30の処理回路は、受信した1ビットフラグが無効状態に設定されていると決定し得、MPM候補リストの特有のモードに対応するMPMインデックスを受信し得、受信した1ビットフラグが無効状態に設定されていることに基づいて、受信したMPMインデックスに対応する特有のモードを選択し得る。
[0212]いくつかの例では、ビデオデコーダ30の処理回路は、クロマブロックに関連するデフォルトモードの数が所定の閾値を満たすかどうかを決定し得る。これらの例では、ビデオデコーダ30の処理回路は、(i)デフォルトモードの数が所定の閾値を満たさないとの決定に基づいて、デフォルトモードの各デフォルトモードをMPM候補リストに加えること、または(ii)デフォルトモードの数が所定の閾値を満たすとの決定に基づいて、MPM候補リストからのデフォルトモードのすべてを省略すること、のうちの1つを実行し得る。
[0213]図17は、本開示の態様に係る、ビデオエンコーダ20の処理回路が実行し得る例となるプロセス280を例示するフローチャートである。プロセス280は、ビデオエンコーダ20の処理回路が、ビデオエンコーダ20のメモリに記憶されたビデオデータのクロマブロックについての最確モード(MPM)候補リストを、このMPM候補リストが、線形モデル(LM)モードと、クロマブロックに関連するビデオデータのルーマブロックに関連する1つまたは複数の導出モード(DM)と、ルーマブロックを復号するために使用可能な複数のルーマ予測モードとを含むように作成するときに開始し得る(282)。いくつかの例では、ビデオエンコーダ20の処理回路は、1つまたは複数のDMをMPM候補リストに加え得、MPM候補リスト中の1つまたは複数のDMのすべての位置の後に生じるMPM候補リストの位置に、クロマブロックの隣接クロマブロックから継承される1つまたは複数のクロマモードを加え得る。
[0214]いくつかの例では、ビデオエンコーダ20の処理回路は、クロマブロックの1つまたは複数の隣接クロマブロックを予測するためにLMモードが使用されたとの決定に応答して、MPM候補リストからLMモードの任意の追加のインスタンスを省略し得る。いくつかの例では、ビデオエンコーダ20の処理回路は、クロマブロックがLMモードを使用して符号化されるかどうかを示す1ビットフラグを、符号化済みビデオビットストリームにおいて、シグナリングし得る。1つのシナリオでは、ビデオエンコーダ20の処理回路は、クロマブロックがLMモードを使用して符号化されないとの決定に基づいて、1ビットフラグを無効状態に設定し得る。このシナリオでは、クロマブロックがLMモードを使用して符号化されないとの決定、および、クロマブロックがMPM候補リストの特有のモードを使用して符号化されるとの決定に基づいて、ビデオエンコーダ20の処理回路は、MPM候補リストの特有のモードに対応するMPMインデックスを、符号化済みビデオビットストリームにおいて、シグナリングし得る。別のシナリオでは、ビデオエンコーダ20の処理回路は、クロマブロックがLMモードを使用して符号化されるとの決定に基づいて、1ビットフラグを有効状態に設定し得る。
[0215]いくつかの例では、ビデオエンコーダ20の処理回路は、クロマブロックに関連するデフォルトモードの数が所定の閾値を満たすと決定し得る。デフォルトモードの数が所定の閾値を満たすとの決定に基づいて、ビデオエンコーダ20の処理回路は、デフォルトモードの各デフォルトモードをMPM候補リストに加え得、MPM候補リストからデフォルトモードのすべてを省略し得る。ビデオエンコーダ20の処理回路は、MPM候補リストからモードを選択し得る(284)。次に、ビデオエンコーダ20の処理回路は、MPM候補リストから選択されたモードにしたがってクロマブロックを符号化し得る。
[0216]いくつかの例では、MPM候補リストを作成するために、ビデオエンコーダ20の処理回路は、1つまたは複数の線形モデル(LM)モードをMPM候補リストに加え得る。いくつかの例では、ビデオエンコーダ20の処理回路は、クロマブロックがMPM候補リストの1つまたは複数のLMモードのうちの任意のものを使用して符号化されるかどうかを示す1ビットフラグを、符号化済みビデオビットストリームにおいて、シグナリングし得る。いくつかの例では、ビデオエンコーダ20の処理回路は、クロマブロックが候補リストのどのLMモードを使用しても符号化されないとの決定に基づいて、1ビットフラグを無効状態に設定し得、クロマブロックがMPM候補リストのどのLMモードを使用しても符号化されないとの決定に基づいて、かつ、クロマブロックがMPM候補リストの特有のモードを使用して符号化されるとの決定に基づいて、MPM候補リストの特有のモードに対応するMPMインデックスを、符号化済みビデオビットストリームにおいて、シグナリングし得る。いくつかの例では、ビデオエンコーダ20の処理回路は、クロマブロックがMPM候補リストの1つまたは複数のLMモードのうちの特定のLMモードを使用して符号化されるとの決定に基づいて、1ビットフラグを有効状態に設定し得る。
[0217]いくつかの例では、ビデオエンコーダ20の処理回路は、クロマブロックに関連するデフォルトモードの数が所定の閾値を満たすかどうかを決定し得る。次に、ビデオエンコーダ20の処理回路は、次のうちの1つを実行し得る:(i)デフォルトモードの数が所定の閾値を満たさないとの決定に基づいて、デフォルトモードの各デフォルトモードをMPM候補リストに加えること、または(ii)デフォルトモードの数が所定の閾値を満たすとの決定に基づいて、MPM候補リストからデフォルトモードのすべてを省略すること。
[0218]例によっては、本明細書で説明した技法のうちの任意のものの特定の動作(act)またはイベントが、異なる順序で実行されることができ、追加、混合、または完全に省略され得る(例えば、説明したすべての動作またはイベントが本技法の実施に必要なわけではない)ことは認識されるべきである。さらに、特定の例では、動作またはイベントは、連続というよりはむしろ、例えば、マルチスレッド処理、割込み処理、または複数のプロセッサを通して、同時に実行され得る。
[0219]1つまたは複数の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはこれらの任意の組合せでインプリメントされ得る。ソフトウェアでインプリメントされる場合、これらの機能は、1つまたは複数の命令またはコードとして、コンピュータ読取可能な媒体に記憶されるか、またはコンピュータ読取可能な媒体を通して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ読取可能な媒体は、例えば、通信プロトコルにしたがって、ある場所から別の場所へのコンピュータプログラムの移送を容易にする任意の媒体を含む通信媒体、またはデータ記憶媒体のような有体の媒体に対応するコンピュータ読取可能な記憶媒体を含み得る。このように、コンピュータ読取可能な媒体は一般に、(1)非一時的である有形のコンピュータ読取可能な記憶媒体または(2)信号または搬送波のような通信媒体に対応し得る。データ記憶媒体は、本開示で説明した技法のインプリメンテーションのための命令、コード、および/またはデータ構造を取り出すために、1つまたは複数のコンピュータまたは1つまたは複数のプロセッサによってアクセス可能な任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ読取可能な媒体を含み得る。
[0220]限定ではなく例として、このようなコンピュータ読取可能な記憶媒体は、RAM、ROM、EEPROM(登録商標)、CD−ROMもしくは他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、フラッシュメモリ、またはデータ構造もしくは命令の形式で所望のプログラムコードを記憶もしくは搬送するために使用可能でありかつコンピュータによってアクセス可能な任意の他の媒体を備えることができる。また、任意の接続は、厳密にはコンピュータ読取可能な媒体と称される。例えば、命令が、ウェブサイト、サーバ、または他のリモートソースから、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、電波、およびマイクロ波のようなワイヤレス技術を使用して送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、電波、およびマイクロ波のようなワイヤレス技術は、媒体の定義に含まれる。しかしながら、コンピュータ読取可能な記憶媒体およびデータ記憶媒体が、接続、搬送波、信号、または他の一時的な媒体を含むのではなく、代わりに、非一時的な有形の記憶媒体を対象としていることは理解されるべきである。本明細書で使用される場合、ディスク(disk)およびディスク(disc)は、コンパクトディスク(CD)、レーザーディスク(登録商標)、光ディスク、デジタル多用途ディスク(DVD)、フロッピー(登録商標)ディスク、およびブルーレイディスクを含み、ここで、ディスク(disk)は、通常磁気的にデータを再生し、ディスク(disc)は、レーザーを用いて光学的にデータを再生する。上の組合せもまた、コンピュータ読取可能な媒体の範囲内に含まれるべきである。
[0221]命令は、1つまたは複数のデジタルシグナルプロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、または他の同等の集積またはディスクリート論理回路のような1つまたは複数のプロセッサによって実行され得る。したがって、「プロセッサ」という用語は、本明細書で使用される場合、前述の構造または本明細書で説明された技法のインプリメンテーションに適した任意の他の構造のうちの任意のものを指し得る。加えて、いくつかの態様では、本明細書で説明した機能性は、符号化および復号のために構成された専用ハードウェアおよび/またはソフトウェアモジュール内に提供され得るか、複合コーデックに組み込まれ得る。また、本技法は、1つまたは複数の回路または論理要素において完全にインプリメントされることができる。
[0222]本開示の技法は、ワイヤレスハンドセット、集積回路(IC)またはICのセット(例えば、チップセット)を含む、幅広い種類のデバイスまたは装置においてインプリメントされ得る。様々な構成要素、モジュール、またはユニットは、本開示では、開示された技法を実行するように構成されたデバイスの機能的な態様を強調するために説明されているが、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上で説明したように、様々なユニットは、コーデックハードウェアユニットへと組み合わせられるか、適切なソフトウェアおよび/またはファームウェアと併せて、上で説明した1つまたは複数のプロセッサを含む、相互動作するハードウェアユニットの集合によって提供され得る。
[0223]様々な例が説明されている。これらの例および他の例は、以下の特許請求の範囲の範囲内である。
[0223]様々な例が説明されている。これらの例および他の例は、以下の特許請求の範囲の範囲内である。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[C1]
ビデオデータをコード化する方法であって、
前記ビデオデータのクロマブロックについての最確モード(MPM)候補リストを、前記MPM候補リストが、前記クロマブロックに関連する前記ビデオデータのルーマブロックに関連する1つまたは複数の導出モード(DM)と、前記ビデオデータの輝度成分をコード化するために使用可能な複数のルーマ予測モードとを含むように作成することと、
前記MPM候補リストからモードを選択することと、
前記MPM候補リストから選択された前記モードにしたがって前記クロマブロックをコード化することと
を備える方法。
[C2]
前記MPM候補リストを作成することは、
前記1つまたは複数のDMを前記MPM候補リストに加えることと、
前記MPM候補リスト中の前記1つまたは複数のDMのすべて、の位置の後に生じる前記MPM候補リストの位置に、前記クロマブロックの隣接クロマブロックから継承される1つまたは複数のクロマモードを加えることと
を備える、[C1]に記載の方法。
[C3]
前記MPM候補リストを作成することは、
1つまたは複数の線形モデル(LM)モードを前記MPM候補リストに加えることを備える、
[C1]に記載の方法。
[C4]
前記MPM候補リストを作成することは、
前記1つまたは複数のLMモードが第1のLMモードの第1のインスタンスおよび前記第1のLMモードの1つまたは複数の追加のインスタンスを備えると決定することと、
前記クロマブロックの1つまたは複数の隣接クロマブロックを予測するために前記第1のLMモードが使用されたとの決定に応答して、前記MPM候補リストから前記LMモードの前記1つまたは複数の追加のインスタンスを省略することと
を備える、[C3]に記載の方法。
[C5]
前記クロマブロックをコード化することは、前記クロマブロックを復号することを備え、前記方法は、前記クロマブロックが前記LMモードを使用して符号化されるかどうかを示す1ビットフラグを、符号化済みビデオビットストリームにおいて、受信することをさらに備え、ここにおいて、前記MPM候補リストから前記モードを選択することは、前記1ビットフラグの値に基づく、
[C1]に記載の方法。
[C6]
前記1つまたは複数のLMモードが複数のLMモード含むと決定することと、
前記受信した1ビットフラグが有効状態に設定されていると決定することと、
前記MPM候補リスト中の前記複数のLMモードのうちの特定のLMモードの位置に対応するLMインデックスを受信することと、
前記受信した1ビットフラグが前記有効状態に設定されていることに基づいて、前記クロマブロックをコード化するために、前記受信したLMインデックスに対応する前記特定のLMモードを選択することと
をさらに備える、[C5]に記載の方法。
[C7]
前記MPM候補リストから前記モードを選択することは、
前記受信した1ビットフラグが無効状態に設定されていると決定することと、
前記MPM候補リストの特有のモードに対応するMPMインデックスを受信することと、
前記受信した1ビットフラグが前記無効状態に設定されていることに基づいて、前記受信したMPMインデックスに対応する前記特有のモードを選択することと
を備える、[C5]に記載の方法。
[C8]
前記クロマブロックをコード化することは、前記クロマブロックを符号化することを備え、前記方法は、
1つまたは複数の線形モデル(LM)モードを前記MPM候補リストに加えることと、
前記クロマブロックが前記MPM候補リストの前記1つまたは複数のLMモードのうちの任意のものを使用して符号化されるかどうかを示す1ビットフラグを、符号化済みビデオビットストリームにおいて、シグナリングすることと
をさらに備える、[C1]に記載の方法。
[C9]
前記クロマブロックが前記候補リストのどのLMモードを使用しても符号化されないとの決定に基づいて、前記1ビットフラグを無効状態に設定することと、
前記クロマブロックが前記MPM候補リストのどのLMモードを使用しても符号化されないとの前記決定に基づいて、かつ、前記クロマブロックが前記MPM候補リストの特有のモードを使用して符号化されるとの決定に基づいて、前記MPM候補リストの前記特有のモードに対応するMPMインデックスを、前記符号化済みビデオビットストリームにおいて、シグナリングすることと
をさらに備える、[C8]に記載の方法。
[C10]
前記クロマブロックが前記MPM候補リストの前記1つまたは複数のLMモードのうちの特定のLMモードを使用して符号化されるとの決定に基づいて、前記1ビットフラグを有効状態に設定することをさらに備える、
[C8]に記載の方法。
[C11]
前記クロマブロックに関連するデフォルトモードの数が所定の閾値を満たすかどうかを決定することと、
前記デフォルトモードの数が前記所定の閾値を満たさないとの決定に基づいて、前記デフォルトモードの各デフォルトモードを前記MPM候補リストに加えること、または
前記デフォルトモードの数が前記所定の閾値を満たすとの決定に基づいて、前記MPM候補リストから前記デフォルトモードのすべてを省略すること
のうちの1つを実行することと
をさらに備える、[C1]に記載の方法。
[C12]
デバイスであって、
ビデオデータを記憶するように構成されたメモリと、
前記メモリと通信する処理回路と
を備え、前記処理回路は、
前記メモリデバイスに記憶された前記ビデオデータのクロマブロックについての最確モード(MPM)候補リストを、前記MPM候補リストが、前記クロマブロックに関連する前記ビデオデータのルーマブロックに関連する1つまたは複数の導出モード(DM)と、前記ビデオデータの輝度成分をコード化するために使用可能な複数のルーマ予測モードとを含むように作成することと、
前記MPM候補リストからモードを選択することと、
前記MPM候補リストから選択された前記モードにしたがって前記クロマブロックをコード化することと
を行うように構成される、デバイス。
[C13]
前記MPM候補リストを作成するために、前記処理回路は、
前記1つまたは複数のDMを前記MPM候補リストに加えることと、
前記MPM候補リスト中の前記1つまたは複数のDMのすべて、の位置の後に生じる前記MPM候補リストの位置に、前記クロマブロックの隣接クロマブロックから継承される1つまたは複数のクロマモードを加えることと
を行うように構成される、[C12]に記載のデバイス。
[C14]
前記MPM候補リストを作成するために、前記処理回路は、
1つまたは複数の線形モデル(LM)モードを前記MPM候補リストに加える
ように構成される、[C12]に記載のデバイス。
[C15]
前記1つまたは複数のLMモードを加えるために、前記処理回路は、
前記1つまたは複数のLMモードが第1のLMモードの第1のインスタンスおよび前記第1のLMモードの1つまたは複数の追加のインスタンスを備えると決定することと、
前記クロマブロックの1つまたは複数の隣接クロマブロックを予測するために前記第1のLMモードが使用されたとの決定に応答して、前記MPM候補リストから前記LMモードの前記1つまたは複数の追加のインスタンスを省略することと
を行うように構成される、[C14]に記載のデバイス。
[C16]
前記クロマブロックをコード化するために、前記処理回路は、前記クロマブロックを復号するように構成され、前記処理回路は、前記クロマブロックが前記LMモードを使用して符号化されるかどうかを示す1ビットフラグを、符号化済みビデオビットストリームにおいて、受信するようにさらに構成され、前記MPM候補リストから前記モードを選択するために、前記処理回路は、前記1ビットフラグの値に基づいて前記モードを選択するように構成される、
[C12]に記載のデバイス。
[C17]
前記処理回路は、
前記1つまたは複数のLMモードが複数のLMモード含むと決定することと、
前記受信した1ビットフラグが有効状態に設定されていると決定することと、
前記MPM候補リスト中の前記複数のLMモードのうちの特定のLMモードの位置に対応するLMインデックスを受信することと、
前記受信した1ビットフラグが前記有効状態に設定されていることに基づいて、前記クロマブロックをコード化するために、前記受信したLMインデックスに対応する前記特定のLMモードを選択することと
を行うようにさらに構成される、[C16]に記載のデバイス。
[C18]
前記MPM候補リストから前記モードを選択するために、前記処理回路は、
前記受信した1ビットフラグが無効状態に設定されていると決定することと、
前記MPM候補リストの特有のモードに対応するMPMインデックスを受信することと、
前記受信した1ビットフラグが前記無効状態に設定されていることに基づいて、前記受信したMPMインデックスに対応する前記特有のモードを選択することと
を行うように構成される、[C16]に記載のデバイス。
[C19]
前記クロマブロックをコード化するために、前記処理回路は、前記クロマブロックを符号化するように構成され、前記処理回路は、前記クロマブロックが前記LMモードを使用して符号化されるかどうかを示す1ビットフラグを、符号化済みビデオビットストリームにおいて、シグナリングするようにさらに構成される、
[C12]に記載のデバイス。
[C20]
前記処理回路は、
前記クロマブロックが前記LMモードを使用して符号化されないとの決定に基づいて、前記1ビットフラグを無効状態に設定することと、
前記クロマブロックが前記LMモードを使用して符号化されないとの前記決定に基づいて、かつ、前記クロマブロックが前記MPM候補リストの特有のモードを使用して符号化されるとの決定に基づいて、前記MPM候補リストの前記特有のモードに対応するMPMインデックスを、前記符号化済みビデオビットストリームにおいて、シグナリングすることと
を行うようにさらに構成される、[C19]に記載のデバイス。
[C21]
前記処理回路は、
前記クロマブロックが前記LMモードを使用して符号化されるとの決定に基づいて、前記1ビットフラグを有効状態に設定する
ようにさらに構成される、[C19]に記載のデバイス。
[C22]
前記処理回路は、
前記クロマブロックに関連するデフォルトモードの数が所定の閾値を満たすかどうかを決定することと、
前記デフォルトモードの数が前記所定の閾値を満たさないとの決定に基づいて、前記デフォルトモードの各デフォルトモードを前記MPM候補リストに加えることと、
前記デフォルトモードの数が前記所定の閾値を満たすとの決定に基づいて、前記MPM候補リストから前記デフォルトモードのすべてを省略することと
を行うようにさらに構成される、[C12]に記載のデバイス。