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

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

▶ アリババ グループ ホウルディング リミテッドの特許一覧

特表2023-507270ピクチャ境界におけるブロック区分のための方法及び装置
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-02-22
(54)【発明の名称】ピクチャ境界におけるブロック区分のための方法及び装置
(51)【国際特許分類】
   H04N 19/119 20140101AFI20230215BHJP
   H04N 19/70 20140101ALI20230215BHJP
   H04N 19/167 20140101ALI20230215BHJP
   H04N 19/96 20140101ALI20230215BHJP
【FI】
H04N19/119
H04N19/70
H04N19/167
H04N19/96
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2022534413
(86)(22)【出願日】2020-11-24
(85)【翻訳文提出日】2022-08-01
(86)【国際出願番号】 US2020061970
(87)【国際公開番号】W WO2021126487
(87)【国際公開日】2021-06-24
(31)【優先権主張番号】62/948,856
(32)【優先日】2019-12-17
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】511050697
【氏名又は名称】アリババ グループ ホウルディング リミテッド
(74)【代理人】
【識別番号】100079108
【弁理士】
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【弁理士】
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【弁理士】
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【弁理士】
【氏名又は名称】内藤 和彦
(72)【発明者】
【氏名】リャオ,ル-リン
(72)【発明者】
【氏名】イエ,ヤン
(72)【発明者】
【氏名】チェン,ジエ
(72)【発明者】
【氏名】ルオ,ジャンコン
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159LC09
5C159MA04
5C159MA05
5C159MA21
5C159MC11
5C159ME01
5C159PP05
5C159PP06
5C159PP07
5C159RC12
5C159TA12
5C159TB08
5C159TC32
5C159UA16
5C159UA33
(57)【要約】
本開示は、映像処理方法及び装置を提供する。例示的方法は、符号化ブロックがピクチャ境界の外側にサンプルを含むかどうかを決定することと、符号化ブロックがピクチャ境界の外側にサンプルを含むと決定されることに応じて、第1のパラメータの値に関わらず符号化ブロックの4分木分割を実行することであって、第1のパラメータが、符号化ブロックを分割するために4分木を用いることを許可されるかどうかを示すことと、を含む。
【特許請求の範囲】
【請求項1】
映像処理方法であって、
符号化ブロックがピクチャ境界の外側にサンプルを含むかどうかを決定することと、
前記符号化ブロックがピクチャ境界の外側にサンプルを含むと決定されることに応じて、第1のパラメータの値に関わらず前記符号化ブロックの4分木分割を実行することであって、前記第1のパラメータが、前記符号化ブロックを分割するために前記4分木を用いることを許可されるかどうかを示す、実行することと、
を含む、方法。
【請求項2】
前記符号化ブロックの第1のフラグの値を決定することであって、前記第1のフラグが、前記符号化ブロックが複数のサブブロックに分割されるかどうかを示すことと、
前記符号化ブロックの第2のパラメータ、第3のパラメータ、第4のパラメータ、及び第5のパラメータの値を決定することであって、前記第2のパラメータ、前記第3のパラメータ、前記第4のパラメータ、及び前記第5のパラメータが、前記符号化ブロックを分割するために水平2分木、垂直2分木、水平3分木、及び垂直3分木を用いることを許可されるかどうかをそれぞれ示すことと、
をさらに含む、請求項1に記載の方法。
【請求項3】
前記第1のフラグの前記値が1に等しいこと、並びに前記第1のパラメータ、前記第2のパラメータ、前記第3のパラメータ、前記第4のパラメータ、及び前記第5のパラメータの前記値が0に等しいことに応じて、前記符号化ブロックの第2のフラグの値を1に設定することであって、前記第2のフラグが、前記符号化ブロックが前記4分木を用いて分割されるかどうかを示すことをさらに含む、請求項2に記載の方法。
【請求項4】
前記第1のパラメータの前記値が1に等しいことに応じて、前記符号化ブロックの第2のフラグの値を1に設定することであって、前記第2のフラグが、前記符号化ブロックが前記4分木を用いて分割されるかどうかを示すことをさらに含む、請求項2に記載の方法。
【請求項5】
前記符号化ブロックがピクチャ境界の外側にサンプルを含むと決定されるとき、前記第1のフラグの前記値が1であるように設定することをさらに含む、請求項2に記載の方法。
【請求項6】
前記符号化ブロックのサイズと、
マルチタイプツリー深さと、
前記符号化ブロックを分割するためにシングルツリーが用いられるか又はデュアルツリーが用いられるかを示す、第2のパラメータと、
イントラモード、インターモード、及びIBCモードのうちの1つ以上が前記符号化ブロックを符号化することを許可されるかどうかを示す、第3のパラメータと、
のうちの1つ以上に基づいて前記第1のパラメータの前記値を決定することをさらに含む、請求項1に記載の方法。
【請求項7】
前記符号化ブロックがピクチャ境界の外側にサンプルを含むと決定されることに応じて、第1のパラメータの値に関わらず前記符号化ブロックの4分木分割を実行することが、
前記符号化ブロックに関連付けられたビットストリーム適合性に関わらず前記符号化ブロックの4分木分割を実行することを含む、請求項1に記載の方法。
【請求項8】
前記ビットストリーム適合性が、前記4分木分割が適用されることを許可される最小ブロックサイズを設定する、請求項7に記載の方法。
【請求項9】
前記最小ブロックサイズが、64以下であるように設定される、請求項8に記載の方法。
【請求項10】
前記ビットストリーム適合性が、最大2分木深さ又は最大3分木深さを設定する、請求項7に記載の方法。
【請求項11】
映像処理装置であって、
命令を記憶するための少なくとも1つのメモリと、
少なくとも1つのプロセッサとを備え、前記少なくとも1つのプロセッサは、
符号化ブロックがピクチャ境界の外側にサンプルを含むかどうかを決定することと、
前記符号化ブロックがピクチャ境界の外側にサンプルを含むと決定されることに応じて、第1のパラメータの値に関わらず前記符号化ブロックの4分木分割を実行することであって、前記第1のパラメータが、前記符号化ブロックを分割するために前記4分木を用いることを許可されるかどうかを示すことと、
を前記装置に実行させるために、前記命令を実行するように構成される、装置。
【請求項12】
前記少なくとも1つのプロセッサが、
前記符号化ブロックの第1のフラグの値を決定することであって、前記第1のフラグが、前記符号化ブロックが複数のサブブロックに分割されるかどうかを示すことと、
前記符号化ブロックの第2のパラメータ、第3のパラメータ、第4のパラメータ、及び第5のパラメータの値を決定することであって、前記第2のパラメータ、前記第3のパラメータ、前記第4のパラメータ、及び前記第5のパラメータが、前記符号化ブロックを分割するために水平2分木、垂直2分木、水平3分木、及び垂直3分木を用いることを許可されるかどうかをそれぞれ示すことと、
を前記装置に実行させるために、前記命令を実行するように構成される、請求項11に記載の装置。
【請求項13】
前記少なくとも1つのプロセッサが、
前記第1のフラグの前記値が1に等しいこと、並びに前記第1のパラメータ、前記第2のパラメータ、前記第3のパラメータ、前記第4のパラメータ、及び前記第5のパラメータの前記値が0に等しいことに応じて、前記符号化ブロックの第2のフラグの値を1に設定することであって、前記第2のフラグが、前記符号化ブロックが前記4分木を用いて分割されるかどうかを示すこと
を前記装置に実行させるために、前記命令を実行するように構成される、請求項12に記載の装置。
【請求項14】
前記少なくとも1つのプロセッサが、
前記第1のパラメータの前記値が1に等しいことに応じて、前記符号化ブロックの第2のフラグの値を1に設定することであって、前記第2のフラグが、前記符号化ブロックが前記4分木を用いて分割されるかどうかを示すこと
を前記装置に実行させるために、前記命令を実行するように構成される、請求項12に記載の装置。
【請求項15】
前記少なくとも1つのプロセッサが、
前記符号化ブロックがピクチャ境界の外側にサンプルを含むと決定されるとき、前記第1のフラグの前記値が1であるように設定すること
を前記装置に実行させるために、前記命令を実行するように構成される、請求項12に記載の装置。
【請求項16】
命令のセットを記憶する非一時的コンピュータ可読記憶媒体であって、前記命令のセットは、
符号化ブロックがピクチャ境界の外側にサンプルを含むかどうかを決定することと、
前記符号化ブロックがピクチャ境界の外側にサンプルを含むと決定されることに応じて、第1のパラメータの値に関わらず前記符号化ブロックの4分木分割を実行することであって、前記第1のパラメータが、前記符号化ブロックを分割するために前記4分木を用いることを許可されるかどうかを示すことと、
を映像処理装置に実行させるために、1つ以上の処理デバイスによって実行可能である、非一時的コンピュータ可読記憶媒体。
【請求項17】
前記命令のセットが、
前記符号化ブロックの第1のフラグの値を決定することであって、前記第1のフラグが、前記符号化ブロックが複数のサブブロックに分割されるかどうかを示すことと、
前記符号化ブロックの第2のパラメータ、第3のパラメータ、第4のパラメータ、及び第5のパラメータの値を決定することであって、前記第2のパラメータ、前記第3のパラメータ、前記第4のパラメータ、及び前記第5のパラメータが、前記符号化ブロックを分割するために水平2分木、垂直2分木、水平3分木、及び垂直3分木を用いることを許可されるかどうかをそれぞれ示すことと、
を前記映像処理装置に実行させるために、前記1つ以上の処理デバイスによって実行可能である、請求項16に記載の非一時的コンピュータ可読記憶媒体。
【請求項18】
前記命令のセットが、
前記第1のフラグの前記値が1に等しいこと、並びに前記第1のパラメータ、前記第2のパラメータ、前記第3のパラメータ、前記第4のパラメータ、及び前記第5のパラメータの前記値が0に等しいことに応じて、前記符号化ブロックの第2のフラグの値を1に設定することであって、前記第2のフラグが、前記符号化ブロックが前記4分木を用いて分割されるかどうかを示すこと
を前記映像処理装置に実行させるために、前記1つ以上の処理デバイスによって実行可能である、請求項17に記載の非一時的コンピュータ可読記憶媒体。
【請求項19】
前記命令のセットが、
前記第1のパラメータの前記値が1に等しいことに応じて、前記符号化ブロックの第2のフラグの値を1に設定することであって、前記第2のフラグが、前記符号化ブロックが前記4分木を用いて分割されるかどうかを示すこと
を前記映像処理装置に実行させるために、前記1つ以上の処理デバイスによって実行可能である、請求項17に記載の非一時的コンピュータ可読記憶媒体。
【請求項20】
前記符号化ブロックがピクチャ境界の外側にサンプルを含むと決定されることに応じて、QTモードを用いて前記符号化ブロックを分割することが、
前記符号化ブロックがピクチャ境界の外側にサンプルを含むと決定されるとき、前記第1のフラグの前記値が1であるように設定することを含む、請求項17に記載の非一時コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
[0001] 本開示は、全体が本明細書において参照により組み込まれる、2019年12月17日に出願された、米国仮特許出願第62/948,856号に対する優先権を主張する。
【0002】
技術分野
[0002] 本開示は、概して、映像処理に関し、より詳細には、ピクチャ境界においてブロック区分を実行するための方法及び装置に関する。
【背景技術】
【0003】
背景
[0003] 映像は、視覚情報を取り込んだ静的ピクチャ(又は「フレーム」)のセットである。記憶メモリ及び伝送帯域幅を低減するために、映像を記憶又は伝送前に圧縮し、表示前に復元することができる。圧縮プロセスは通常、符号化と称され、復元プロセスは通常、復号化と称される。最も一般的には、予測、変換、量子化、エントロピー符号化、及びインループフィルタリングに基づく、標準化映像符号化技術を用いる様々な映像符号化フォーマットが存在する。特定の映像符号化フォーマットを指定する、高効率ビデオコーディング(High Efficiency Video Coding)(HEVC/H.265)規格、多用途ビデオコーディング(Versatile Video Coding)(VVC/H.266)、及び標準AVS規格などの、映像符号化規格が標準化機関によって開発されている。進化した映像符号化技術が映像規格に次々と採用されるに従って、新たな映像符号化規格の符号化効率はますます高くなる。
【発明の概要】
【課題を解決するための手段】
【0004】
開示の概要
[0004] 実施形態によっては、例示的な映像処理方法は、符号化ブロックがピクチャ境界の外側にサンプルを含むかどうかを決定することと、符号化ブロックがピクチャ境界の外側にサンプルを含むと決定されることに応じて、第1のパラメータの値に関わらず符号化ブロックの4分木分割を実行することであって、第1のパラメータが、符号化ブロックを分割するために4分木を用いることを許可されるかどうかを示すことと、を含む。
【0005】
[0005] 実施形態によっては、例示的な映像処理装置は、命令を記憶するための少なくとも1つのメモリと、少なくとも1つのプロセッサと、を含む。少なくとも1つのプロセッサは、符号化ブロックがピクチャ境界の外側にサンプルを含むかどうかを決定することと、符号化ブロックがピクチャ境界の外側にサンプルを含むと決定されることに応じて、第1のパラメータの値に関わらず符号化ブロックの4分木分割を実行することであって、第1のパラメータが、符号化ブロックを分割するために4分木を用いることを許可されるかどうかを示すことと、を装置に実行させるために、命令を実行するように構成される。
【0006】
[0006] 実施形態によっては、例示的な非一時的コンピュータ可読記憶媒体は、命令のセットを記憶する。命令のセットは、符号化ブロックがピクチャ境界の外側にサンプルを含むかどうかを決定することと、符号化ブロックがピクチャ境界の外側にサンプルを含むと決定されることに応じて、第1のパラメータの値に関わらず符号化ブロックの4分木分割を実行することであって、第1のパラメータが、符号化ブロックを分割するために4分木を用いることを許可されるかどうかを示すことと、を映像処理装置に実行させるために、1つ以上の処理デバイスによって実行可能である。
【0007】
図面の簡単な説明
[0007] 本開示の実施形態及び様々な態様が以下の詳細な説明及び添付の図面において例示される。図に示される様々な特徴は、原寸に比例して描かれていない。
【図面の簡単な説明】
【0008】
図1】[0008]図1は、本開示のいくつかの実施形態に係る、例示的な映像シーケンスの構造を示す概略図である。
図2A】[0009]図2Aは、本開示の実施形態に従う、ハイブリッド映像符号化システムの例示的な符号化プロセスを示す概略図である。
図2B】[0010]図2Bは、本開示の実施形態に従う、ハイブリッド映像符号化システムの別の例示的な符号化プロセスを示す概略図である。
図3A】[0011]図3Aは、本開示の実施形態に従う、ハイブリッド映像符号化システムの例示的な復号化プロセスを示す概略図である。
図3B】[0012]図3Bは、本開示の実施形態に従う、ハイブリッド映像符号化システムの別の例示的な復号化プロセスを示す概略図である。
図4】[0013]図4は、本開示のいくつかの実施形態に係る、映像を符号化又は復号化するための例示的な装置のブロック図である。
図5】[0014]本開示のいくつかの実施形態に係る、マルチタイプツリー分割モードの例を示す概略図である。
図6】[0015]本開示のいくつかの実施形態に係る、ネスト型マルチタイプツリー符号化ツリー構造を有する4分木(QT)における区分分割情報のための例示的シグナリング機構を示す概略図である。
図7】[0016]本開示のいくつかの実施形態に係る、マルチタイプツリー構文要素に基づく例示的なマルチタイプツリー分割モード(MttSplitMode)導出を示す、例示的な表1を示す。
図8】[0017]本開示のいくつかの実施形態に係る、許可されない3分木(TT)及び2分木(BT)区分の例を示す概略図である。
図9】[0018]本開示のいくつかの実施形態に係る、ピクチャ境界上の例示的ブロック区分を示す概略図である。
図10】[0019]本開示のいくつかの実施形態に係る、2分割モード(btSplit)に基づく平行3分木分割(parallelTtSplit)及び符号化ブロックサイズ(cbSize)の例示的仕様を示す例示的な表2を示す。
図11】[0020]本開示のいくつかの実施形態に係る、3分木分割モード(ttSplit)に基づくcbSizeの例示的仕様を示す例示的な表3を示す。
図12A】[0021]本開示のいくつかの実施形態に係る、例示的な符号化ツリー構文を示す例示的な表4を示す。
図12B】[0021]本開示のいくつかの実施形態に係る、例示的な符号化ツリー構文を示す例示的な表4を示す。
図12C】[0021]本開示のいくつかの実施形態に係る、例示的な符号化ツリー構文を示す例示的な表4を示す。
図13】[0022]本開示のいくつかの実施形態に係る、MttSplitModeによって示されるマルチタイプツリー分割モードの例を示す概略図である。
図14】[0023]本開示のいくつかの実施形態に係る、MttSplitModeの例示的仕様を示す例示的な表5を示す。
図15】[0024]本開示のいくつかの実施形態に係る、例示的なシーケンスパラメータセットRBSP構文を示す例示的な表6を示す。
図16】[0025]本開示のいくつかの実施形態に係る、例示的なピクチャヘッダRBSP構文を示す例示的な表7を示す。
図17】[0026]本開示のいくつかの実施形態に係る、QT、TT、又はBT分割のいずれもピクチャ境界で許可されない例示的ブロックを示す概略図である。
図18】[0027]本開示のいくつかの実施形態に係る、QT、TT、又はBT分割のいずれもピクチャ境界で許可されない例示的ブロックを示す概略図である。
図19】[0028]本開示のいくつかの実施形態に係る、BT及びTT分割を用いる例を示す概略図である。
図20】[0029]本開示のいくつかの実施形態に係る、例示的映像処理方法のフローチャートを示す。
【発明を実施するための形態】
【0009】
詳細な説明
[0030] 次に、添付の図面に例が示された、例示的な実施形態を詳細に参照する。以下の説明は添付の図面を参照し、図面において、異なる図面における同じ符号は、別途示されない限り、同じ又は同様の要素を表す。例示的な実施形態の以下の説明において示される実装形態は、本発明に従う全ての実装形態を表すものではない。むしろ、それらは、添付の請求項において列挙されるとおりの本発明に関連する態様に従う装置及び方法の単なる例にすぎない。本開示の特定の態様が以下においてより詳細に説明される。参照により組み込まれる用語及び/又は定義と矛盾する場合には、本明細書において提供される用語及び定義が優先する。
【0010】
[0031] ITU-Tビデオコーディングエキスパートグループ(ITU-T VCEG(ITU-T Video Coding Expert Group))及びISO/IECムービングピクチャエクスパートグループ(ISO/IECMPEG(ISO/IEC Moving Picture Expert))のジョイントビデオエクスパーツチーム(JVET(Joint Video Experts Team))は、現在、多用途ビデオコーディング(VVC/H.266)規格を開発している。VVC規格は、その前身、高効率ビデオコーディング(HEVC/H.265)規格の圧縮効率を2倍にすることを目指している。換言すれば、VVCの目標は、半分の帯域幅を用いてHEVC/H.265と同じ主観的品質を達成することである。
【0011】
[0032] 半分の帯域幅を用いてHEVC/H.265と同じ主観的品質を達成するために、JVETは、共同探索モデル(JEM(joint exploration model))参照ソフトウェアを用いてHEVCを超える技術を開発している。符号化技術がJEMに組み込まれたため、JEMはHEVCよりも実質的に高い符号化性能を達成した。
【0012】
[0033] VVC規格は最近開発されたものであり、より優れた圧縮性能をもたらすより多くの符号化技術を組み込み続けている。VVCは、HEVC、H.264/AVC、MPEG2、H.263等などの現代的な映像圧縮規格において用いられてきた同じハイブリッド映像符号化システムに基づく。
【0013】
[0034] 映像は、視覚情報を記憶するために時系列で配列された静的ピクチャ(又は「フレーム」)のセットである。映像取り込みデバイス(例えば、カメラ)を、それらのピクチャを時系列で取り込んで記憶するために用いることができ、映像再生デバイス(例えば、テレビ、コンピュータ、スマートフォン、タブレットコンピュータ、ビデオプレーヤ、又は表示機能を有する任意のエンドユーザ端末)を、このようなピクチャを時系列で表示するために用いることができる。また、用途によっては、映像取り込みデバイスが、取り込まれた映像を、監督、会議開催、又は生放送などのために、映像再生デバイス(例えば、モニタを有するコンピュータ)へリアルタイムに伝送することができる。
【0014】
[0035] このような用途によって必要とされる記憶空間及び伝送帯域幅を低減するために、映像を記憶及び伝送前に圧縮し、表示前に復元することができる。圧縮及び復元は、プロセッサ(例えば、汎用コンピュータのプロセッサ)によって実行されるソフトウェア、又は特殊ハードウェアによって実施され得る。圧縮のためのモジュールは一般的に「符号器」と称され、復元のためのモジュールは一般的に「復号器」と称される。符号器及び復号器はまとめて「コーデック」と称され得る。符号器及び復号器は、種々の好適なハードウェア、ソフトウェア、又はこれらの組み合わせのうちの任意のものとして実施することができる。例えば、符号器及び復号器のハードウェア実装形態は、1つ以上のマイクロプロセッサ、デジタル信号プロセッサ(DSP(digital signal processor))、特定用途向け集積回路(ASIC(application-specific integrated circuit))、フィールドプログラマブルゲートアレイ(FPGA(field-programmable gate array))、個別論理、又はこれらの任意の組み合わせなどの、回路機構を含むことができる。符号器及び復号器のソフトウェア実装形態は、プログラムコード、コンピュータ実行可能命令、ファームウェア、又はコンピュータ可読媒体内に固定された任意の好適なコンピュータ実施アルゴリズム若しくはプロセスを含むことができる。映像圧縮及び復元は、MPEG-1、MPEG-2、MPEG-4、H.26xシリーズ、又は同様のものなどの、様々なアルゴリズム又は規格によって実施され得る。用途によっては、コーデックは映像を第1の符号化規格から復元し、復元された映像を、第2の符号化規格を用いて再圧縮することができる。この場合には、コーデックは「トランスコーダ」と称され得る。
【0015】
[0036] 映像符号化プロセスは、ピクチャを再構成するために用いることができる有用な情報を識別して維持し、再構成のために重要でない情報を無視することができる。無視された重要でない情報を完全に再構成することができない場合には、このような符号化プロセスは「非可逆」と称され得る。さもなければ、それは「可逆」と称され得る。大抵の符号化プロセスは非可逆であり、これは、必要とされる記憶空間及び伝送帯域幅を低減するためのトレードオフである。
【0016】
[0037] 符号化中のピクチャ(「現在のピクチャ」と称される)の有用な情報は、参照ピクチャ(例えば、以前に符号化され、再構成されたピクチャ)に対する変化を含む。このような変化は、ピクセルの位置の変化、明るさの変化、又は色の変化を含むことができ、これらの中でも、位置の変化に最も重要である。オブジェクトを表現するピクセルのグループの位置の変化は、参照ピクチャと現在のピクチャとの間のオブジェクトの動きを反映することができる。
【0017】
[0038] 別のピクチャを参照することなく符号化されたピクチャ(すなわち、それがそれ自身の参照ピクチャである)は「Iピクチャ」と称される。以前のピクチャを参照ピクチャとして用いて符号化されたピクチャは「Pピクチャ」と称される。以前のピクチャ及び将来のピクチャの両方を参照ピクチャとして用いて符号化されたピクチャ(すなわち、参照は「双方向性」である)は「Bピクチャ」と称される。
【0018】
[0039] 図1は、本開示のいくつかの実施形態に係る、例示的な映像シーケンス100の構造を示す。映像シーケンス100は、ライブ映像、又は取り込まれ、アーカイブされた映像であることができる。映像100は、現実の映像、コンピュータ生成映像(例えば、コンピュータゲーム映像)、又はこれらの組み合わせ(例えば、拡張現実感効果を伴う現実の映像)であることができる。映像シーケンス100は、映像取り込みデバイス(例えば、カメラ)、以前に取り込まれた映像を包含する映像アーカイブ(例えば、記憶デバイス内に記憶された映像ファイル)、又は映像コンテンツプロバイダからの映像を受信するための映像供給インターフェース(例えば、映像放送トランシーバ)から入力され得る。
【0019】
[0040] 図1に示されるように、映像シーケンス100は、ピクチャ102、104、106、及び108を含む、タイムラインに沿って時間的に配列された一連のピクチャを含むことができる。ピクチャ102~106は連続しており、ピクチャ106及び108の間にはさらなるピクチャが存在する。図1において、ピクチャ102はIピクチャであり、その参照ピクチャはピクチャ102自身である。ピクチャ104はPピクチャであり、その参照ピクチャは、矢印によって指示されるように、ピクチャ102である。ピクチャ106はBピクチャであり、その参照ピクチャは、矢印によって指示されるように、ピクチャ104及び108である。実施形態によっては、ピクチャ(例えば、ピクチャ104)の参照ピクチャは当該ピクチャの直前又は直後になくてもよい。例えば、ピクチャ104の参照ピクチャはピクチャ102の前のピクチャであることができる。ピクチャ102~106の参照ピクチャは単なる例にすぎず、本開示は参照ピクチャの実施形態を、図1に示される例として限定しないことに留意されたい。
【0020】
[0041] 典型的に、映像コーデックは、このようなタスクの計算の複雑性のゆえに、ピクチャ全体を一度に符号化又は復号化しない。むしろ、それらはピクチャを基本セグメントに分割し、ピクチャをセグメントごとに符号化又は復号化することができる。このような基本セグメントは本開示において基本処理ユニット(「BPU(basic processing unit)」)と称される。例えば、図1における構造110は、映像シーケンス100のピクチャ(例えば、ピクチャ102~108のうちの任意のもの)の例示的な構造を示す。構造110においては、ピクチャが4×4基本処理ユニットに分割され、それらの境界は破線として示されている。実施形態によっては、基本処理ユニットは、いくつかの映像符号化規格(例えば、MPEGファミリー、H.261、H.263、又はH.264/AVC)では、「マクロブロック」と、或いはいくつかの他の映像符号化規格(例えば、H.265/HEVC又はH.266/VVC)では、「符号化ツリーユニット」(「CTU(coding tree unit)」)と称され得る。基本処理ユニットは、128×128、64×64、32×32、16×16、4×8、16×32などの、ピクチャにおける可変サイズ、或いはピクセルの任意の形状及びサイズを有することができる。基本処理ユニットのサイズ及び形状は、ピクチャのために、符号化効率と、基本処理ユニットにおいて維持されるべき詳細さのレベルとのバランスに基づいて選択することができる。
【0021】
[0042] 基本処理ユニットは、コンピュータメモリ内に(例えば、映像フレームバッファ内に)記憶された異なる種類の映像データのグループを含むことができる、論理ユニットであることができる。例えば、カラーピクチャの基本処理ユニットは、無色の輝度情報を表現するルマ成分(Y)、色情報を表現する1つ以上のクロマ成分(例えば、Cb及びCr)、並びに関連構文要素を含むことができ、ここで、ルマ及びクロマ成分は基本処理ユニットの同じサイズを有することができる。ルマ及びクロマ成分は、いくつかの映像符号化規格(例えば、H.265/HEVC又はH.266/VVC)では、「符号化ツリーブロック」(「CTB(coding tree block)」)と称され得る。基本処理ユニットに対して遂行される任意の演算は、そのルマ及びクロマ成分の各々に対して繰り返し遂行され得る。
【0022】
[0043] 映像符号化は複数の演算段階を有し、図2A図2B及び図3A図3Bにその例が示されている。段階ごとに、基本処理ユニットのサイズは依然として処理のために大きすぎるものになり得、それゆえ、本開示において「基本処理サブユニット」と称されるセグメントにさらに分割され得る。実施形態によっては、基本処理サブユニットは、いくつかの映像符号化規格(例えば、MPEGファミリー、H.261、H.263、又はH.264/AVC)では、「ブロック」と、或いはいくつかの他の映像符号化規格(例えば、H.265/HEVC又はH.266/VVC)では、「符号化ユニット」(「CU」)と称され得る。基本処理サブユニットは、基本処理ユニットと同じ、又はそれよりも小さいサイズを有することができる。基本処理ユニットと同様に、基本処理サブユニットもまた、コンピュータメモリ内に(例えば、映像フレームバッファ内に)記憶された異なる種類の映像データ(例えば、Y、Cb、Cr、及び関連構文要素)のグループを含むことができる、論理ユニットである。基本処理サブユニットに対して遂行される任意の動作は、そのルマ及びクロマ成分の各々に対して繰り返し遂行され得る。このような分割は処理の必要に応じてさらなるレベルまで遂行され得ることに留意されたい。また、異なる段階は、異なる方式を用いて基本処理ユニットを分割することができることにも留意されたい。
【0023】
[0044] 例えば、モード決定段階(図2Bにその一例が示されている)において、符号器は、どのような予測モード(例えば、イントラピクチャ予測又はインターピクチャ予測)を基本処理ユニットのために用いるかを決定することができるが、基本処理ユニットは、このような決定を行うには大きすぎるものになり得る。符号器は、基本処理ユニットを複数の基本処理サブユニット(例えば、H.265/HEVC又はH.266/VVCの場合のように、CU)に分割し、個々の基本処理サブユニットごとに予測の種類を決めることができる。
【0024】
[0045] 別の例として、予測段階(図2A図2Bにその例が示されている)において、符号器は、基本処理サブユニット(例えば、CU)のレベルで予測演算を遂行することができる。しかし、場合によっては、基本処理サブユニットは、依然として、処理するには大きすぎるものになり得る。符号器は、基本処理サブユニットをより小さいセグメント(例えば、H.265/HEVC又はH.266/VVCでは「予測ブロック(prediction block)」又は「PB」と称される)にさらに分割することができ、そのレベルで予測演算が遂行され得る。
【0025】
[0046] 別の例として、変換段階(図2A図2Bにその例が示されている)において、符号器は、残差基本処理サブユニット(例えば、CU)のための変換演算を遂行することができる。しかし、場合によっては、基本処理サブユニットは、依然として、処理するには大きすぎるものになり得る。符号器は、基本処理サブユニットをより小さいセグメント(例えば、H.265/HEVC又はH.266/VVCでは「変換ブロック(transform block)」又は「TB」と称される)にさらに分割することができ、そのレベルで変換演算が遂行され得る。同じ基本処理サブユニットの分割方式が、予測段階及び変換段階において異なってもよいことに留意されたい。例えば、H.265/HEVC又はH.266/VVCでは、同じCUの予測ブロック及び変換ブロックが異なるサイズ及び数を有してもよい。
【0026】
[0047] 図1の構造110においては、基本処理ユニット112は、3×3基本処理サブユニットにさらに分割され、それらの境界は点線として示されている。同じピクチャの異なる基本処理ユニットは異なる方式で基本処理サブユニットに分割されてもよい。
【0027】
[0048] 実装形態によっては、並列処理及び誤り耐性の能力を映像符号化及び復号化にもたらすために、ピクチャを処理のための領域に分割することができ、これにより、符号化又は復号化プロセスは、ピクチャの領域に関して、ピクチャのいかなる他の領域からの情報にも依存しなくてすむ。換言すれば、ピクチャの各領域は独立して処理され得る。そうすることによって、コーデックはピクチャの異なる領域を並行して処理することができ、それゆえ、符号化効率を増大させる。また、領域のデータが処理中に破損したか、又はネットワーク伝送中に失われたときには、コーデックは、破損した、又は失われたデータを頼ることなく、同じピクチャの他の領域を正しく符号化又は復号化することもでき、それゆえ、誤り耐性の能力をもたらす。いくつかの映像符号化規格では、ピクチャを異なる種類の領域に分割することができる。例えば、H.265/HEVC及びH.266/VVCは2種類の領域:「スライス」及び「タイル」を提供する。また、映像シーケンス100の異なるピクチャは、ピクチャを領域に分割するための異なる区分方式を有することができることにも留意されたい。
【0028】
[0049] 例えば、図1では、構造110は、3つの領域114、116、及び118に分割され、それらの境界は構造110の内部の実線として示されている。領域114は4つの基本処理ユニットを含む。領域116及び118の各々は6つの基本処理ユニットを含む。図1における構造110の基本処理ユニット、基本処理サブユニット、及び領域は単なる例に過ぎず、本開示はその実施形態を限定しないことに留意されたい。
【0029】
[0050] 図2Aは、本開示の実施形態に従う、例示的な符号化プロセス200Aの概略図を示す。例えば、符号化プロセス200Aは符号器によって遂行され得る。図2Aに示されるように、符号器は、プロセス200Aに従って映像シーケンス202を映像ビットストリーム228に符号化することができる。図1における映像シーケンス100と同様に、映像シーケンス202は、時間的順序で配列されたピクチャ(「原ピクチャ」と称される)のセットを含むことができる。図1における構造110と同様に、映像シーケンス202の各原ピクチャは、符号器によって処理のために基本処理ユニット、基本処理サブユニット、又は領域に分割され得る。実施形態によっては、符号器は、映像シーケンス202の原ピクチャごとに基本処理ユニットのレベルでプロセス200Aを遂行することができる。例えば、符号器はプロセス200Aを反復的な仕方で遂行することができ、その場合、符号器は基本処理ユニットをプロセス200Aの1回の反復において符号化することができる。実施形態によっては、符号器は、プロセス200Aを映像シーケンス202の各原ピクチャの領域(例えば、領域114~118)のために並行して遂行することができる。
【0030】
[0051] 図2Aにおいて、符号器は、映像シーケンス202の原ピクチャの基本処理ユニット(「原BPU」と称される)を予測段階204に供給し、予測データ206及び予測BPU208を生成することができる。符号器は、予測BPU208を原BPUから減算し、残差BPU210を生成することができる。符号器は、残差BPU210を変換段階212及び量子化段階214に供給し、量子化変換係数216を生成することができる。符号器は、予測データ206及び量子化変換係数216を2値符号化段階226に供給し、映像ビットストリーム228を生成することができる。構成要素202、204、206、208、210、212、214、216、226、及び228は「順方向経路」と称され得る。プロセス200Aの間、量子化段階214の後に、符号器は、量子化変換係数216を逆量子化段階218及び逆変換段階220に供給し、再構成残差BPU222を生成することができる。符号器は、再構成残差BPU222を予測BPU208に加算し、プロセス200Aの次の反復のために予測段階204において用いられる、予測基準224を生成することができる。プロセス200Aの構成要素218、220、222、及び224は「再構成経路」と称され得る。再構成経路は、符号器及び復号器の両方が同じ参照データを予測のために用いることを確実にするために用いられ得る。
【0031】
[0052] 符号器は、原ピクチャの各原BPUを(順方向経路内で)符号化し、原ピクチャの次の原BPUを符号化するための予測基準224を(再構成経路内で)生成するために、プロセス200Aを反復的に遂行することができる。原ピクチャの全ての原BPUを符号化した後に、符号器は、映像シーケンス202内の次のピクチャを符号化するために進むことができる。
【0032】
[0053] プロセス200Aを参照すると、符号器は、映像取り込みデバイス(例えば、カメラ)によって生成された映像シーケンス202を受信することができる。本明細書において用いられる用語「受信する」は、受信すること、入力すること、獲得すること、取得すること、得ること、読み込むこと、アクセスすること、又はデータを入力するための任意の仕方による任意の行為を指すことができる。
【0033】
[0054] 予測段階204において、現在の反復において、符号器は原BPU及び予測基準224を受信し、予測演算を遂行し、予測データ206及び予測BPU208を生成することができる。予測基準224は、プロセス200Aの以前の反復の再構成経路から生成され得る。予測段階204の目的は、予測データ206を抽出することによって、情報冗長性を低減することであり、予測データ206は、予測データ206及び予測基準224から原BPUを予測BPU208として再構成するために用いることができる。
【0034】
[0055] 理想的には、予測BPU208は原BPUと同一であることができる。しかし、非理想的な予測及び再構成演算のゆえに、予測BPU208は、概して、原BPUとは若干異なる。このような差を記録するために、予測BPU208を生成した後に、符号器はそれを原BPUから減算し、残差BPU210を生成することができる。例えば、符号器は、予測BPU208のピクセルの値(例えば、グレースケール値又はRGB値)を原BPUの対応するピクセルの値から減算することができる。残差BPU210の各ピクセルは、原BPU及び予測BPU208の対応するピクセルの間のこのような減算の結果としての残差値を有することができる。原BPUと比べて、予測データ206及び残差BPU210はより少数のビットを有することができるが、それらは、著しい品質劣化を伴うことなく原BPUを再構成するために用いられ得る。それゆえ、原BPUは圧縮される。
【0035】
[0056] 残差BPU210をさらに圧縮するために、変換段階212において、符号器は、それを2次元「基底パターン」のセットに分解することによって、残差BPU210の空間的冗長性を低減することができ、各基底パターンは「変換係数」に関連付けられている。基底パターンは同じサイズ(例えば、残差BPU210のサイズ)を有することができる。各基底パターンは残差BPU210の変化周波数(例えば、輝度変化の周波数)成分を表現することができる。基底パターンはいずれも、いかなる他の基底パターンのいかなる結合(例えば、線形結合)からも再現することができない。換言すれば、分解は残差BPU210の変化を周波数領域に分解することができる。このような分解は関数の離散フーリエ変換と類似しており、この場合、基底パターンは離散フーリエ変換の基底関数(例えば、三角関数)と類似しており、変換係数は、基底関数に関連付けられた係数と類似している。
【0036】
[0057] 異なる変換アルゴリズムは異なる基底パターンを用いることができる。例えば、離散余弦変換、離散正弦変換、又は同様のものなどの、様々な変換アルゴリズムを変換段階212において用いることができる。変換段階212における変換は逆演算可能である。すなわち、符号器は、変換の逆演算(「逆変換」と称される)によって残差BPU210を回復することができる。例えば、残差BPU210のピクセルを回復するために、逆変換は、基底パターンの対応するピクセルの値にそれぞれの関連係数を乗算し、積を加算していき、加重和を生成することができる。映像符号化規格のために、符号器及び復号器は両方とも同じ変換アルゴリズム(それゆえ、同じ基底パターン)を用いることができる。それゆえ、符号器は変換係数のみを記録することができ、復号器は、基底パターンを符号器から受信することなく、変換係数から残差BPU210を再構成することができる。残差BPU210と比べて、変換係数はより少数のビットを有することができるが、それらは、著しい品質劣化を伴うことなく残差BPU210を再構成するために用いられ得る。それゆえ、残差BPU210はさらに圧縮される。
【0037】
[0058] 符号器は、量子化段階214において変換係数をさらに圧縮することができる。変換プロセスにおいて、異なる基底パターンは異なる変化周波数(例えば、輝度変化周波数)を表現することができる。人間の眼は、概して、低周波数変化を認識することがより得意であるため、符号器は、復号化において著しい品質劣化を生じさせることなく高周波数変化の情報を無視することができる。例えば、量子化段階214において、符号器は、各変換係数を整数値(「量子化パラメータ」と称される)で除算し、商をその最近傍の整数に丸めることによって、量子化変換係数216を生成することができる。このような演算の後に、高周波数基底パターンの一部の変換係数は0に変換され得、低周波数基底パターンの変換係数はより小さい整数に変換され得る。符号器は0値の量子化変換係数216を無視することができ、これによって変換係数はさらに圧縮される。量子化プロセスもまた逆演算可能であり、この場合、量子化変換係数216は量子化の逆演算(「逆量子化」と称される)において変換係数に再構成され得る。
【0038】
[0059] 符号器はこのような除算の剰余を丸め演算において無視するため、量子化段階214は非可逆になり得る。典型的に、量子化段階214はプロセス200Aにおいて最大の情報損失に寄与し得る。情報損失が大きいほど、量子化変換係数216に必要なビットは少なくなる。異なる情報損失レベルを得るために、符号器は、量子化パラメータ又は量子化プロセスの任意の他のパラメータの異なる値を用いることができる。
【0039】
[0060] 2値符号化段階226において、符号器は、例えば、エントロピー符号化、可変長符号化、算術符号化、ハフマン符号化、コンテキスト適応2値算術符号化、又は任意の他の可逆若しくは非可逆圧縮アルゴリズムなどの、2値符号化技法を用いて、予測データ206及び量子化変換係数216を符号化することができる。実施形態によっては、予測データ206及び量子化変換係数216のほかに、符号器は、例えば、予測段階204において用いられる予測モード、予測演算のパラメータ、変換段階212における変換の種類、量子化プロセスのパラメータ(例えば、量子化パラメータ)、符号器制御パラメータ(例えば、ビットレート制御パラメータ)、又は同様のものなどの、他の情報を2値符号化段階226において符号化することができる。符号器は、2値符号化段階226の出力データを用いて映像ビットストリーム228を生成することができる。実施形態によっては、映像ビットストリーム228をネットワーク伝送のためにさらにパケット化することができる。
【0040】
[0061] プロセス200Aの再構成経路を参照すると、逆量子化段階218において、符号器は、量子化変換係数216に対して逆量子化を遂行し、再構成変換係数を生成することができる。逆変換段階220において、符号器は、再構成変換係数に基づいて再構成残差BPU222を生成することができる。符号器は、再構成残差BPU222を予測BPU208に加算し、プロセス200Aの次の反復において用いられることになる予測基準224を生成することができる。
【0041】
[0062] プロセス200Aの他の変形を、映像シーケンス202を符号化するために用いることもできることに留意されたい。実施形態によっては、プロセス200Aの段階は符号器によって、異なる順序で遂行され得る。実施形態によっては、プロセス200Aの1つ以上の段階を単一の段階に組み合わせることができる。実施形態によっては、プロセス200Aの単一の段階を複数の段階に分割することができる。例えば、変換段階212及び量子化段階214を単一の段階に組み合わせることができる。実施形態によっては、プロセス200Aは追加の段階を含むことができる。実施形態によっては、プロセス200Aは図2Aにおける1つ以上の段階を省略することができる。
【0042】
[0063] 図2Bは、本開示の実施形態に従う、別の例示的な符号化プロセス200Bの概略図を示す。プロセス200Bはプロセス200Aから変更され得る。例えば、プロセス200Bは、ハイブリッド映像符号化規格(例えば、H.26xシリーズ)に準拠した符号器によって用いられ得る。プロセス200Aと比べて、プロセス200Bの順方向経路はモード決定段階230を追加的に含み、予測段階204を空間的予測段階2042及び時間的予測段階2044に分割する。プロセス200Bの再構成経路はループフィルタ段階232及びバッファ234を追加的に含む。
【0043】
[0064] 概して、予測技法は2つの種類:空間的予測及び時間的予測に分類することができる。空間的予測(例えば、イントラピクチャ予測又は「イントラ予測」)は、現在のBPUを予測するために、同じピクチャ内の1つ以上のすでに符号化された隣接BPUからのピクセルを用いることができる。すなわち、空間的予測における予測基準224は隣接BPUを含むことができる。空間的予測はピクチャの固有の空間的冗長性を低減することができる。時間的予測(例えば、インターピクチャ予測又は「インター予測」)は、現在のBPUを予測するために、1つ以上のすでに符号化されたピクチャからの領域を用いることができる。すなわち、時間的予測における予測基準224は符号化ピクチャを含むことができる。時間的予測はピクチャの固有の時間的冗長性を低減することができる。
【0044】
[0065] プロセス200Bを参照すると、順方向経路内において、符号器は、予測演算を空間的予測段階2042及び時間的予測段階2044において遂行する。例えば、空間的予測段階2042において、符号器はイントラ予測を遂行することができる。符号化中のピクチャの原BPUのために、予測基準224は、(順方向経路内で)符号化され、(再構成経路内で)再構成された1つ以上の隣接BPUを同じピクチャ内に含むことができる。符号器は、隣接BPUを外挿することによって予測BPU208を生成することができる。外挿技法は、例えば、線形外挿若しくは補間、多項式外挿若しくは補間、又は同様のものを含むことができる。実施形態によっては、符号器は、予測BPU208のピクセルごとに、対応するピクセルの値を外挿することによるなどして、外挿をピクセルレベルで遂行することができる。外挿のために用いられる隣接BPUは、(例えば、原BPUの上の)鉛直方向、(例えば、原BPUの左の)水平方向、(例えば、原BPUの左下、右下、左上、若しくは右上の)対角方向、又は用いられる映像符号化規格において定義される任意の方向などの、様々な方向から原BPUに対して位置することができる。イントラ予測のために、予測データ206は、例えば、用いられる隣接BPUの場所(例えば、座標)、用いられる隣接BPUのサイズ、外挿のパラメータ、原BPUに対する用いられる隣接BPUの方向、又は同様のものを含むことができる。
【0045】
[0066] 別の例として、時間的予測段階2044において、符号器はインター予測を遂行することができる。現在のピクチャの原BPUのために、予測基準224は、(順方向経路内で)符号化され、(再構成経路内で)再構成された1つ以上のピクチャ(「参照ピクチャ」と称される)を含むことができる。実施形態によっては、参照ピクチャはBPUごとに符号化され、再構成され得る。例えば、符号器は、再構成残差BPU222を予測BPU208に加算し、再構成BPUを生成することができる。同じピクチャの全ての再構成BPUが生成されたとき、符号器は再構成ピクチャを参照ピクチャとして生成することができる。符号器は、参照ピクチャの範囲(「探索窓」と称される)内のマッチング領域を探索するために「動き推定」の演算を遂行することができる。参照ピクチャ内の探索窓の場所は、現在のピクチャの原BPUの場所に基づいて決定することができる。例えば、探索窓は、参照ピクチャ内の、現在のピクチャ内の原BPUと同じ座標を有する場所に中心を有することができ、所定の距離にわたって外へ拡張され得る。符号器が(例えば、画素再帰(pel-recursive)アルゴリズム、ブロックマッチングアルゴリズム、又は同様のものを用いることによって)探索窓内の原BPUと同様の領域を識別したとき、符号器はこのような領域をマッチング領域と決定することができる。マッチング領域は、原BPUとは異なる(例えば、原BPUよりも小さい、それに等しい、それよりも大きい、又は異なる形状の)寸法を有することができる。参照ピクチャ及び現在のピクチャが(例えば、図1に示されるように)タイムライン内で時間的に分離されているため、時間が経過するにつれてマッチング領域は原BPUの場所へ「移動する」と見なすことができる。符号器はこのような動きの方向及び距離を「動きベクトル」として記録することができる。複数の参照ピクチャが(例えば、図1におけるピクチャ106として)用いられるときには、符号器は、参照ピクチャごとにマッチング領域を探索し、その関連動きベクトルを決定することができる。実施形態によっては、符号器は、それぞれのマッチング参照ピクチャのマッチング領域のピクセル値に重みを付与することができる。
【0046】
[0067] 動き推定は、例えば、並進、回転、ズーミング、又は同様のものなどの、様々な種類の動きを識別するために用いることができる。インター予測のために、予測データ206は、例えば、マッチング領域の場所(例えば、座標)、マッチング領域に関連付けられた動きベクトル、参照ピクチャの数、参照ピクチャに関連付けられた重み、又は同様のものを含むことができる。
【0047】
[0068] 予測BPU208を生成するために、符号器は「動き補償」の演算を遂行することができる。動き補償は、予測データ206(例えば、動きベクトル)及び予測基準224に基づいて予測BPU208を再構成するために用いることができる。例えば、符号器は、動きベクトルに従って参照ピクチャのマッチング領域を移動させることができ、その場合、符号器は現在のピクチャの原BPUを予測することができる。複数の参照ピクチャが(例えば、図1におけるピクチャ106として)用いられるときには、符号器は、それぞれの動きベクトルに従って参照ピクチャのマッチング領域を移動させ、マッチング領域のピクセル値を平均することができる。実施形態によっては、符号器がそれぞれのマッチング参照ピクチャのマッチング領域のピクセル値に重みを付与した場合には、符号器はピクセル値の加重和を、移動させられたマッチング領域に加算することができる。
【0048】
[0069] 実施形態によっては、インター予測は一方向性又は双方向性であることができる。一方向性インター予測は現在のピクチャに対して同じ時間方向の1つ以上の参照ピクチャを用いることができる。例えば、図1におけるピクチャ104は、参照ピクチャ(すなわち、ピクチャ102)がピクチャ104に先行する、一方向インター予測ピクチャである。双方向インター予測は、現在のピクチャに対して両方の時間方向にある1つ以上の参照ピクチャを用いることができる。例えば、図1におけるピクチャ106は、参照ピクチャ(すなわち、ピクチャ104及び108)がピクチャ104に対して両方の時間方向にある、双方向インター予測ピクチャである。
【0049】
[0070] プロセス200Bの順方向経路をなおも参照すると、空間的予測2042及び時間的予測段階2044の後に、モード決定段階230において、符号器は、予測モード(例えば、イントラ予測又はインター予測のうちの一方)をプロセス200Bの現在の反復のために選択することができる。例えば、符号器は、レート-歪み最適化技法を遂行することができる。本技法では、符号器は、候補予測モード下での候補予測モードのビットレート及び再構成参照ピクチャの歪みに依存するコスト関数の値を最小化するための予測モードを選択することができる。選択された予測モードに応じて、符号器は、対応する予測BPU208及び予測データ206を生成することができる。
【0050】
[0071] プロセス200Bの再構成経路内において、イントラ予測モードが順方向経路内で選択された場合には、予測基準224(例えば、現在のピクチャにおいて符号化され、再構成された現在のBPU)を生成した後に、符号器は、予測基準224を後の使用のために(例えば、現在のピクチャの次のBPUの外挿のために)空間的予測段階2042に直接供給することができる。インター予測モードが順方向経路内で選択された場合には、予測基準224(例えば、全てのBPUが符号化され、再構成された現在のピクチャ)を生成した後に、符号器は、予測基準224をループフィルタ段階232に供給することができ、そこで、符号器は、ループフィルタを予測基準224に適用し、インター予測によって導入された歪み(例えば、ブロッキングアーチファクト)を低減又は解消することができる。符号器は、例えば、デブロッキング、サンプル適応オフセット、適応ループフィルタ、又は同様のものなどの、様々なループフィルタ技法をループフィルタ段階232において適用することができる。ループフィルタリングされた参照ピクチャは、後の使用のために(例えば、映像シーケンス202の将来のピクチャのためのインター予測基準ピクチャとして用いられるために)バッファ234(又は「復号化ピクチャバッファ」)内に記憶され得る。符号器は、1つ以上の参照ピクチャを、時間的予測段階2044において用いられるためにバッファ234内に記憶することができる。実施形態によっては、符号器は、ループフィルタのパラメータ(例えば、ループフィルタ強度)を、量子化変換係数216、予測データ206、及び他の情報と共に、2値符号化段階226において符号化することができる。
【0051】
[0072] 図3Aは、本開示の実施形態に従う、例示的な復号化プロセス300Aの概略図を示す。プロセス300Aは、図2Aにおける圧縮プロセス200Aに対応する復元プロセスであることができる。実施形態によっては、プロセス300Aはプロセス200Aの再構成経路と似たものであることができる。復号器は、プロセス300Aに従って映像ビットストリーム228を映像ストリーム304に復号化することができる。映像ストリーム304は映像シーケンス202とよく似たものであることができる。しかし、圧縮及び復元プロセス(例えば、図2A図2Bにおける量子化段階214)における情報損失のゆえに、概して、映像ストリーム304は映像シーケンス202と同一ではない。図2A図2Bにおけるプロセス200A及び200Bと同様に、復号器は、映像ビットストリーム228内に符号化されたピクチャごとに基本処理ユニット(BPU)のレベルでプロセス300Aを遂行することができる。例えば、復号器はプロセス300Aを反復的な仕方で遂行することができ、その場合、復号器は基本処理ユニットをプロセス300Aの1回の反復において復号化することができる。実施形態によっては、復号器は、プロセス300Aを、映像ビットストリーム228内に符号化された各ピクチャの領域(例えば、領域114~118)のために並行して遂行することができる。
【0052】
[0073] 図3Aにおいて、復号器は、符号化ピクチャの基本処理ユニット(「符号化BPU」と称される)に関連付けられた映像ビットストリーム228の部分を2値復号化段階302に供給することができる。2値復号化段階302において、復号器は、当該部分を予測データ206及び量子化変換係数216に復号化することができる。復号器は、量子化変換係数216を逆量子化段階218及び逆変換段階220に供給し、再構成残差BPU222を生成することができる。復号器は、予測データ206を予測段階204に供給し、予測BPU208を生成することができる。復号器は、再構成残差BPU222を予測BPU208に加算し、予測基準224を生成することができる。実施形態によっては、予測基準224をバッファ(例えば、コンピュータメモリ内の復号化ピクチャバッファ)内に記憶することができる。復号器は、予測演算をプロセス300Aの次の反復において遂行するために、予測基準224を予測段階204に供給することができる。
【0053】
[0074] 復号器は、符号化ピクチャの各符号化BPUを復号化し、符号化ピクチャの次の符号化BPUを符号化するための予測基準224を生成するために、プロセス300Aを反復的に遂行することができる。符号化ピクチャの全ての符号化BPUを復号化した後に、復号器は、ピクチャを表示のために映像ストリーム304に出力し、映像ビットストリーム228内の次の符号化ピクチャを復号化するために進むことができる。
【0054】
[0075] 2値復号化段階302において、復号器は、符号器によって用いられた2値符号化技法(例えば、エントロピー符号化、可変長符号化、算術符号化、ハフマン符号化、コンテキスト適応2値算術符号化、又は任意の他の可逆圧縮アルゴリズム)の逆演算を遂行することができる。実施形態によっては、予測データ206及び量子化変換係数216のほかに、復号器は、例えば、予測モード、予測演算のパラメータ、変換の種類、量子化プロセスのパラメータ(例えば、量子化パラメータ)、符号器制御パラメータ(例えば、ビットレート制御パラメータ)、又は同様のものなどの、他の情報を2値復号化段階302において復号化することができる。実施形態によっては、映像ビットストリーム228がネットワークを通じてパケットの形で伝送される場合には、復号器は、映像ビットストリーム228を、それを2値復号化段階302に供給する前にデパケット化することができる。
【0055】
[0076] 図3Bは、本開示の実施形態に従う、別の例示的な復号化プロセス300Bの概略図を示す。プロセス300Bはプロセス300Aから変更され得る。例えば、プロセス300Bは、ハイブリッド映像符号化規格(例えば、H.26xシリーズ)に準拠した復号器によって用いられ得る。プロセス300Aと比べて、プロセス300Bは、予測段階204を空間的予測段階2042及び時間的予測段階2044に追加的に分割し、ループフィルタ段階232及びバッファ234を追加的に含む。
【0056】
[0077] プロセス300Bにおいて、復号化中の符号化ピクチャ(「現在のピクチャ」と称される)の符号化基本処理ユニット(「現在のBPU」と称される)のために、復号器によって2値復号化段階302から復号化された予測データ206は、いかなる予測モードが符号器によって現在のBPUを符号化するために用いられたのかに依存して、様々な種類のデータを含むことができる。例えば、イントラ予測が符号器によって、現在のBPUを符号化するために用いられた場合には、予測データ206は、イントラ予測、イントラ予測演算のパラメータ、又は同様のものを指示する予測モードインジケータ(例えば、フラグ値)を含むことができる。イントラ予測演算のパラメータは、例えば、参照として用いられる1つ以上の隣接BPUの場所(例えば、座標)、隣接BPUのサイズ、外挿のパラメータ、原BPUに対する隣接BPUの方向、又は同様のものを含むことができる。別の例として、インター予測が符号器によって、現在のBPUを符号化するために用いられた場合には、予測データ206は、インター予測、インター予測演算のパラメータ、又は同様のものを指示する予測モードインジケータ(例えば、フラグ値)を含むことができる。インター予測演算のパラメータは、例えば、現在のBPUに関連付けられた参照ピクチャの数、参照ピクチャにそれぞれ関連付けられた重み、それぞれの参照ピクチャ内の1つ以上のマッチング領域の場所(例えば、座標)、マッチング領域にそれぞれ関連付けられた1つ以上の動きベクトル、又は同様のものを含むことができる。
【0057】
[0078] 予測モードインジケータに基づいて、復号器は、空間的予測段階2042において空間的予測(例えば、イントラ予測)を遂行するべきか、又は時間的予測段階2044において時間的予測(例えば、インター予測)を遂行するべきかを決定することができる。このような空間的予測又は時間的予測を遂行することの詳細は図2Bにおいて説明されており、以下、繰り返されない。このような空間的予測又は時間的予測を遂行した後に、復号器は予測BPU208を生成することができる。復号器は、図3Aにおいて説明されたように、予測BPU208及び再構成残差BPU222を加算し、予測基準224を生成することができる。
【0058】
[0079] プロセス300Bにおいて、復号器は、予測演算をプロセス300Bの次の反復において遂行するために、予測基準224を空間的予測段階2042又は時間的予測段階2044に供給することができる。例えば、現在のBPUが空間的予測段階2042においてイントラ予測を用いて復号化される場合には、予測基準224(例えば、復号化された現在のBPU)を生成した後に、復号器は、予測基準224を後の使用のために(例えば、現在のピクチャの次のBPUの外挿のために)空間的予測段階2042に直接供給することができる。現在のBPUが時間的予測段階2044においてインター予測を用いて復号化される場合には、予測基準224(例えば、全てのBPUが復号化された参照ピクチャ)を生成した後に、符号器は、予測基準224をループフィルタ段階232に供給し、歪み(例えば、ブロッキングアーチファクト)を低減又は解消することができる。復号器は、図2Bにおいて説明されたとおりの仕方でループフィルタを予測基準224に適用することができる。ループフィルタリングされた参照ピクチャは、後の使用のために(例えば、映像ビットストリーム228の将来の符号化ピクチャのためのインター予測基準ピクチャとして用いられるために)バッファ234(例えば、コンピュータメモリ内の復号化ピクチャバッファ)内に記憶され得る。復号器は、1つ以上の参照ピクチャを、時間的予測段階2044において用いられるためにバッファ234内に記憶することができる。実施形態によっては、予測データ206の予測モードインジケータが、インター予測が現在のBPUを符号化するために用いられたことを指示するときには、予測データはループフィルタのパラメータ(例えば、ループフィルタ強度)をさらに含むことができる。
【0059】
[0080] 図4は、本開示の実施形態に従う、映像を符号化又は復号化するための例示的な装置400のブロック図である。図4に示されるように、装置400はプロセッサ402を含むことができる。プロセッサ402が、本明細書において説明される命令を実行したとき、装置400は映像符号化又は復号化のための特殊機械になることができる。プロセッサ402は、情報を操作又は処理する能力を有する任意の種類の回路機構であることができる。例えば、プロセッサ402は、中央処理装置(又は「CPU(central processing unit)」)、グラフィック処理装置(又は「GPU(graphics processing unit)」)、ニューラル処理装置(「NPU(neural processing unit)」)、マイクロコントローラユニット(「MCU(microcontroller unit)」)、光プロセッサ、プログラマブル論理コントローラ、マイクロコントローラ、マイクロプロセッサ、デジタル信号プロセッサ、知的財産(IP(intellectual property))コア、プログラマブル論理アレイ(PLA(Programmable Logic Array))、プログラマブルアレイ論理(PAL(Programmable Array Logic))、ジェネリックアレイ論理(GAL(Generic Array Logic))、複合プログラマブル論理装置(CPLD(Complex Programmable Logic Device))、フィールドプログラマブルゲートアレイ(FPGA(Field-Programmable Gate Array))、システムオンチップ(SoC(System On Chip))、特定用途向け集積回路(ASIC(Application-Specific Integrated Circuit))、又は同様のもののうちの任意の数の任意の組み合わせを含むことができる。実施形態によっては、プロセッサ402はまた、単一の論理構成要素としてグループ化されたプロセッサのセットであることもできる。例えば、図4に示されるように、プロセッサ402は、プロセッサ402a、プロセッサ402b、及びプロセッサ402nを含む、複数のプロセッサを含むことができる。
【0060】
[0081] 装置400はまた、データ(例えば、命令のセット、コンピュータコード、中間データ、又は同様のもの)を記憶するように構成されたメモリ404を含むことができる。例えば、図4に示されるように、記憶されるデータは、プログラム命令(例えば、プロセス200A、200B、300A、又は300Bにおける段階を実施するためのプログラム命令)、並びに処理のためのデータ(例えば、映像シーケンス202、映像ビットストリーム228、又は映像ストリーム304)を含むことができる。プロセッサ402は、(例えば、バス410を介して)プログラム命令、及び処理のためのデータにアクセスし、プログラム命令を実行し、処理のためのデータに対する演算又は操作を遂行することができる。メモリ404は、高速ランダムアクセス記憶デバイス又は不揮発性記憶デバイスを含むことができる。実施形態によっては、メモリ404は、ランダムアクセスメモリ(RAM(random-access memory))、リードオンリーメモリ(ROM(read-only memory))、光ディスク、磁気ディスク、ハードドライブ、ソリッドステートドライブ、フラッシュドライブ、セキュリティデジタル(SD(security digital))カード、メモリスティック、コンパクトフラッシュ(登録商標)(CF(compact flash))カード、又は同様のもののうちの任意の数の任意の組み合わせを含むことができる。メモリ404はまた、単一の論理構成要素としてグループ化されたメモリのグループ(図4には示されていない)であることもできる。
【0061】
[0082] バス410は、内部バス(例えば、CPU-メモリバス)、外部バス(例えば、ユニバーサルシリアルバスポート、ペリフェラルコンポーネントインターコネクトエクスプレスポート)、又は同様のものなどの、装置400の内部の構成要素の間でデータを転送する通信デバイスであることができる。
【0062】
[0083] 曖昧さを生じさせることなく説明を容易にするために、プロセッサ402及び他のデータ処理回路は本開示においてまとめて「データ処理回路」と称される。データ処理回路は、完全にハードウェアとして、或いはソフトウェア、ハードウェア、又はファームウェアの組み合わせとして実施され得る。加えて、データ処理回路は、単一の独立モジュールであることができるか、或いは装置400の任意の他の構成要素に完全に、又は部分的に組み合わせられ得る。
【0063】
[0084] 装置400は、ネットワーク(例えば、インターネット、イントラネット、ローカルエリアネットワーク、移動通信ネットワーク、又は同様のもの)との有線又は無線通信を提供するためのネットワークインターフェース406をさらに含むことができる。実施形態によっては、ネットワークインターフェース406は、ネットワークインターフェースコントローラ(NIC(network interface controller))、無線周波数(RF(radio frequency))モジュール、トランスポンダ、トランシーバ、モデム、ルータ、ゲートウェイ、有線ネットワークアダプタ、無線ネットワークアダプタ、Bluetooth(登録商標)アダプタ、赤外線アダプタ、近距離無線通信(「NFC(near-field communication)」)アダプタ、セルラーネットワークチップ、又は同様のもののうちの任意の数の任意の組み合わせを含むことができる。
【0064】
[0085] 実施形態によっては、任意選択的に、装置400は、1つ以上の周辺デバイスへの接続を提供するための周辺インターフェース408をさらに含むことができる。図4に示されるように、周辺デバイスは、限定するものではないが、カーソル制御デバイス(例えば、マウス、タッチパッド、又はタッチスクリーン)、キーボード、ディスプレイ(例えば、陰極線管ディスプレイ、液晶ディスプレイ、又は発光ダイオードディスプレイ)、映像入力デバイス(例えば、カメラ、又は映像アーカイブに結合された入力インターフェース)、或いは同様のものを含むことができる。
【0065】
[0086] 映像コーデック(例えば、プロセス200A、200B、300A、又は300Bを遂行するコーデック)は、装置400内の任意のソフトウェア又はハードウェアモジュールの任意の組み合わせとして実施され得ることに留意されたい。例えば、プロセス200A、200B、300A、又は300Bの一部又は全ての段階は、メモリ404内にロードされ得るプログラム命令などの、装置400の1つ以上のソフトウェアモジュールとして実施され得る。別の例として、プロセス200A、200B、300A、又は300Bの一部又は全ての段階は、特殊データ処理回路(例えば、FPGA、ASIC、NPU、又は同様のもの)などの、装置400の1つ以上のハードウェアモジュールとして実施され得る。
【0066】
[0087] 量子化及び逆量子化機能ブロック(例えば、図2A又は図2Bの量子化214及び逆量子化218、図3A又は図3Bの逆量子化218)では、量子化パラメータ(QP(quantization parameter))が、予測残差に適用される量子化(及び逆量子化)の量を決定するために用いられる。ピクチャ又はスライスの符号化のために用いられる初期QP値は、例えば、ピクチャパラメータセット(PPS(Picture Parameter Set))内のinit_qp_minus26構文要素を用いて、及びスライスヘッダ内のslice_qp_delta構文要素を用いて、高レベルでシグナリングされ得る。さらに、QP値は、量子化グループの細分性で送信されたデルタQP値を用いて、CUごとに局所レベルで適応され得る。
【0067】
[0088] 実施形態によっては、ピクチャは、複数の符号化ツリーユニット(CTU)に分割され得る。次いで、CTUは、2分割及び3分割セグメンテーション構造を用いたネスト型マルチタイプツリーを有する4分木(SPLIT_QT)を用いて1つ以上の符号化ユニット(CU)にさらに分割される。図5は、本開示のいくつかの実施形態に係る、マルチタイプツリー分割モードの例を示す概略図である。図5に示されるように、マルチタイプツリー構造における分割タイプは、4分木分割(SPLIT_QT)501、垂直2分割(SPLIT_BT_VER)502、水平2分割(SPLIT_BT_HOR)503、垂直3分割(SPLIT_TT_VER)504、及び水平3分割(SPLIT_TT_HOR)505を含み得る。マルチタイプツリーのリーフノードは、符号化ユニット(CU)と称され、正方形又は長方形のいずれかを有し得る。
【0068】
[0089] 図6は、本開示のいくつかの実施形態に係る、ネスト型マルチタイプツリー符号化ツリー構造を有する4分木における区分分割情報のための例示的シグナリング機構を示す概略図である。図6に示されるように、CTUは、4分木のルートとして扱われ、4分木構造によって最初に区分される。各4分木リーフノード(それを可能にするのに十分大きいとき)は、マルチタイプツリー構造によってさらに区分される。マルチタイプツリー構造において、ノードがさらに区分されるかどうかを示すために、第1のフラグ(例えば、mtt_split_cu_flag)がシグナリングされる。ノードがさらに区分されるとき、第2のフラグ(例えば、mtt_split_cu_vertical_flag)が分割方向を示すためにシグナリングされ、次いで、第3のフラグ(例えば、mtt_split_cu_binary_flag)は、分割が2分割であるか又は3分割であるかを示すためにシグナリングされる。第2のフラグmtt_split_cu_vertical_flag及び第3のフラグmtt_split_cu_binary_flagの値に基づいて、CUのマルチタイプツリー分割モード(MttSplitMode)が導出され得る。図7は、本開示のいくつかの実施形態に係る、マルチタイプツリー構文要素に基づく例示的なMttSplitMode導出を示す、例示的な表1を示す。
【0069】
[0090] 垂直パイプラインデータユニット(VPDU)は、ピクチャ内の非オーバラップユニットとして定義される。ハードウェア復号器において、連続するVPDUは、同時に複数のパイプライン段階によって処理される。VPDUサイズは、大抵のパイプライン段階においてバッファサイズに大まかに比例し、したがって、VPDUサイズを小さく保つことが重要である。大抵のハードウェア復号器では、VPDUサイズは、64×64ルマサンプルに設定され得る。しかしながら、実施形態によっては、3分木(TT)及び2分木(BT)の区分は、VPDUサイズの増加につながり得る。本開示に従って、VPDUサイズを64×64ルマサンプルとして維持するために、ある標準的な区分制限が適用され得る。図8は、本開示のいくつかの実施形態に係る、許可されないTT及びBT分割の例を示す。図8に示されるように、TT分割は、128に等しい幅若しくは高さのいずれか又は128に等しい幅及び高さの両方を有するブロックに対しては許可されない。N≦64で128×NのCU(例えば、128に等しい幅及び128より小さな高さ)について、水平BTは許可されない。N≦64でN×128のCU(例えば、128に等しい高さ及び128より小さな幅)について、垂直BTは許可されない。
【0070】
[0091] HEVCにおいて必要に応じて、ツリーノードブロックの一部が下又は右ピクチャ境界を超えるとき、ツリーノードブロックは、あらゆる符号化CUの全てのサンプルがピクチャ境界の内側に位置するまで強制分割される。以下の分割規則が、VVCドラフト7において適用される。
- ツリーノードブロックの一部が、下及び右ピクチャ境界の両方を超える場合、
- ブロックがQTノードであり、且つブロックのサイズが最小QTサイズより大きい場合、ブロックは、QT分割モードで強制分割される。
- それ以外の場合、ブロックは、SPLIT_BT_HORモードで強制分割される。
- それ以外の場合で、ツリーノードブロックの一部が下ピクチャ境界を超える場合、
- ブロックがQTノードであり、ブロックのサイズが最小QTサイズより大きく、且つブロックのサイズが最大BTサイズより大きい場合、ブロックは、QT分割モードで強制分割される。
- それ以外の場合で、ブロックがQTノードであり、ブロックのサイズが最小QTサイズより大きく、且つブロックのサイズが最大BTサイズ以下である場合、ブロックは、QT分割モード又はSPLIT_BT_HORモードで強制分割される。
- それ以外の(ブロックがBTノードであるか又はブロックのサイズが最小QTサイズ以下である)場合、ブロックは、SPLIT_BT_HORモードで強制分割される。
- それ以外の場合で、ツリーノードブロックの一部が右ピクチャ境界を超える場合、
- ブロックがQTノードであり、ブロックのサイズが最小QTサイズより大きく、且つブロックのサイズが最大BTサイズより大きい場合、ブロックは、QT分割モードで強制分割される。
- それ以外の場合で、ブロックがQTノードであり、ブロックのサイズが最小QTサイズより大きく、且つブロックのサイズが最大BTサイズ以下である場合、ブロックは、QT分割モード又はSPLIT_BT_VERモードで強制分割される。
- それ以外の(例えば、ブロックがBTノードであるか又はブロックのサイズが最小QTサイズ以下である)場合、ブロックは、SPLIT_BT_VERモードで強制分割される。
【0071】
[0092] 図9は、本開示のいくつかの実施形態に係る、ピクチャ境界上の例示的ブロック区分を示す。図9に示されるように、CTU911について、SPLIT_QT又はSPLIT_BT_VERのいずれかが実行され得る。CTU913について、SPLIT_QTが許可される場合、SPLIT_QTが実行され得る。SPLIT_QTが許可されない場合、SPLIT_BT_HORが実行され得る。CTU915については、SPLIT_QT又はSPLIT_BT_HORのいずれかが実行され得る。
【0072】
[0093] VVCドラフト7には、ブロック区分に関連する2つの節がある。第1は、6.4節であり、ブロックが4分木、2分木、又は3分木を用いて分割され得るかどうかを定義する。6.4節の出力は、変数allowSplitQt、allowSplitBtHor、allowSplitBtVer、allowSplitTtHor、及びallowSplitTtVerである。これらの変数は、7.3.9.4節において図12の表4に示されるように、対応するCUレベル分割フラグ(図12の表4中のボックス1201~1204によって示される)がシグナリングされるか否かを決定するために用いられる。
【0073】
[0094] VVCドラフト7の6.4.1節は、以下のように記載されている。
6.4 可用性プロセス
6.4.1 許可される4分割プロセス
本プロセスへの入力は、以下の通りである。
- ルマサンプル内の符号化ブロックサイズcbSize
- マルチタイプツリー深さmttDepth
- 符号化ツリーノードを区分するためにシングルツリー(SINGLE_TREE)が用いられるか、又はデュアルツリーが用いられるか、及びデュアルツリーが用いられるときに、ルマ成分(DUAL_TREE_LUMA)が現在処理されるか又はクロマ成分(DUAL_TREE_CHROMA)が現在処理されるかを指定する、変数treeType
- 符号化ツリーノードの内側の符号化ユニットに対して、イントラ符号化モード(MODE_INTRA)、IBC符号化モード(MODE_IBC)、及びインター符号化モードが用いられ得るか(MODE_TYPE_ALL)、又はイントラ符号化モード及びIBC符号化モードのみが用いられ得るか(MODE_TYPE_INTRA)、又はインター符号化モードのみが用いられ得るか(MODE_TYPE_INTER)を指定する、変数modeType
【0074】
[0095] 本プロセスの出力は、変数allowSplitQtである。変数allowSplitQtは、以下のように導出される。
- 以下の条件のうちの1つ以上が真である場合、allowSplitQtは、FALSEに等しく設定される。
- treeTypeが、SINGLE_TREE又はDUAL_TREE_LUMAに等しく、且つcbSizeが、MinQtSizeY以下である。
- treeTypeが、DUAL_TREE_CHROMAに等しく、且つcbSize/SubWidthCが、MinQtSizeC以下である。
- mttDepthが、0に等しくない。
- treeTypeが、DUAL_TREE_CHROMAに等しく、且つ(cbSize/SubWidthC)が、4以下である。
- treeTypeが、DUAL_TREE_CHROMAに等しく、且つmodeTypeが、MODE_TYPE_INTRAに等しい。
- それ以外の場合、allowSplitQtは、TRUEに等しく設定される。
【0075】
[0096] VVCドラフト7の6.4.2節は、以下のように記載されている。
6.4.2 許可される2分割プロセス
本プロセスへの入力は、以下の通りである。
- 2分割モードbtSplit
- ルマサンプル内の符号化ブロック幅cbWidth
- ルマサンプル内の符号化ブロック高さcbHeight
- ピクチャの左上ルマサンプルに対する、考えられる符号化ブロックの左上ルマサンプルの位置(x0,y0)
- マルチタイプツリー深さmttDepth
- オフセット付き最大マルチタイプツリー深さmaxMttDepth
- 最大2分木サイズmaxBtSize
- 最小4分木サイズminQtSize
- 区分インデックスpartIdx
- 符号化ツリーノードを区分するためにシングルツリー(SINGLE_TREE)が用いられるか、又はデュアルツリーが用いられるか、及びデュアルツリーが用いられるときに、ルマ成分(DUAL_TREE_LUMA)が現在処理されるか又はクロマ成分(DUAL_TREE_CHROMA)が現在処理されるかを指定する、変数treeType
- 符号化ツリーノードの内側の符号化ユニットに対して、イントラ符号化モード(MODE_INTRA)、IBC符号化モード(MODE_IBC)、及びインター符号化モードが用いられ得るか(MODE_TYPE_ALL)、又はイントラ符号化モード及びIBC符号化モードのみが用いられ得るか(MODE_TYPE_INTRA)、又はインター符号化モードのみが用いられ得るか(MODE_TYPE_INTER)を指定する、変数modeType
【0076】
[0097] 本プロセスの出力は、変数allowBtSplitである。図10は、本開示のいくつかの実施形態に係る、btSplitに基づく変数parallelTtSplit及びcbSizeの例示的仕様を示す例示的な表2を示す。
【0077】
[0098] 変数allowBtSplitは、以下のように導出される。
- 以下の条件のうちの1つ以上が真である場合、allowBtSplitは、FALSEに等しく設定される。
- cbSizeが、MinBtSizeY以下である。
- cbWidthが、maxBtSizeより大きい。
- cbHeightが、maxBtSizeより大きい。
- mttDepthが、maxMttDepth以上である。
- treeTypeが、DUAL_TREE_CHROMAに等しく、且つ(cbWidth/SubWidthC)×(cbHeight/SubHeightC)が、16以下である。
- treeTypeが、DUAL_TREE_CHROMAに等しく、(cbWidth/SubWidthC)が、4に等しく、且つbtSplitが、SPLIT_BT_VERに等しい。
- treeTypeが、DUAL_TREE_CHROMAに等しく、且つmodeTypeが、MODE_TYPE_INTRAに等しい。
- cbWidth×cbHeightが、32に等しく、且つmodeTypeが、MODE_TYPE_INTERに等しい。
- それ以外の場合で、以下の条件の全てが真である場合、allowBtSplitは、FALSEに等しく設定される。
- btSplitが、SPLIT_BT_VERに等しい。
- y0+cbHeightが、pic_height_in_luma_samplesより大きい。
- それ以外の場合で、以下の条件の全てが真である場合、allowBtSplitは、FALSEに等しく設定される。
- btSplitが、SPLIT_BT_VERに等しい。
- cbHeightが、64より大きい。
- x0+cbWidthが、pic_width_in_luma_samplesより大きい。
- それ以外の場合で、以下の条件の全てが真である場合、allowBtSplitは、FALSEに等しく設定される。
- btSplitが、SPLIT_BT_HORに等しい。
- cbWidthが、64より大きい。
- y0+cbHeightが、pic_height_in_luma_samplesより大きい。
- それ以外の場合で、以下の条件の全てが真である場合、allowBtSplitは、FALSEに等しく設定される。
- x0+cbWidthが、pic_width_in_luma_samplesより大きい。
- y0+cbHeightが、pic_height_in_luma_samplesより大きい。
- cbWidthが、minQtSizeより大きい。
- それ以外の場合で、以下の条件の全てが真である場合、allowBtSplitは、FALSEに等しく設定される。
- btSplitが、SPLIT_BT_HORに等しい。
- x0+cbWidthが、pic_width_in_luma_samplesより大きい。
- y0+cbHeightが、pic_height_in_luma_samples以下である。
- それ以外の場合で、以下の条件の全てが真である場合、allowBtSplitは、FALSEに等しく設定される。
- mttDepthが、0より大きい。
- partIdxは、1に等しい。
- MttSplitMode[x0][y0][mttDepth-1]が、parallelTtSplitに等しい。
- それ以外の場合で、以下の条件の全てが真である場合、allowBtSplitは、FALSEに等しく設定される。
- btSplitが、SPLIT_BT_VERに等しい。
- cbWidthが、64以下である。
- cbHeightが、64より大きい。
- それ以外の場合で、以下の条件の全てが真である場合、allowBtSplitは、FALSEに等しく設定される。
- btSplitが、SPLIT_BT_HORに等しい。
- cbWidthが、64より大きい。
- cbHeightが、64以下である。
- それ以外の場合、allowBtSplitは、TRUEに等しく設定される。
【0078】
[0099] VVCドラフト7の6.4.3節は、以下のように記載される。
6.4.3 許可される3分割プロセス
本プロセスへの入力は、以下の通りである。
- 3分割モードttSplit
- ルマサンプル内の符号化ブロック幅cbWidth
- ルマサンプル内の符号化ブロック高さcbHeight
- ピクチャの左上ルマサンプルに対する、考えられる符号化ブロックの左上ルマサンプルの位置(x0,y0)
- マルチタイプツリー深さmttDepth
- オフセット付き最大マルチタイプツリー深さmaxMttDepth
- 最大3分木サイズmaxTtSize
- 符号化ツリーノードを区分するためにシングルツリー(SINGLE_TREE)が用いられるか、又はデュアルツリーが用いられるか、及びデュアルツリーが用いられるときに、ルマ成分(DUAL_TREE_LUMA)が現在処理されるか又はクロマ成分(DUAL_TREE_CHROMA)が現在処理されるかを指定する、変数treeType
- 符号化ツリーノードの内側の符号化ユニットに対して、イントラ符号化モード(MODE_INTRA)、IBC符号化モード(MODE_IBC)、及びインター符号化モードが用いられ得るか(MODE_TYPE_ALL)、又はイントラ符号化モード及びIBC符号化モードのみが用いられ得るか(MODE_TYPE_INTRA)、又はインター符号化モードのみが用いられ得るか(MODE_TYPE_INTER)を指定する、変数modeType
【0079】
[00100] 本プロセスの出力は、変数allowTtSplitである。図11は、本開示のいくつかの実施形態に係る、ttSplitに基づく変数cbSizeの例示的仕様を示す例示的な表3を示す。
【0080】
[00101] 変数allowTtSplitは、以下のように導出される。
- 以下の条件のうちの1つ以上が真である場合、allowTtSplitは、FALSEに等しく設定される。
- cbSizeが、2×MinTtSizeY以下である。
- cbWidthが、Min(64,maxTtSize)より大きい。
- cbHeightが、Min(64,maxTtSize)より大きい。
- mttDepthが、maxMttDepth以上である。
- x0+cbWidthが、pic_width_in_luma_samplesより大きい。
- y0+cbHeightが、pic_height_in_luma_samplesより大きい。
- treeTypeが、DUAL_TREE_CHROMAに等しく、且つ(cbWidth/SubWidthC)×(cbHeight/SubHeightC)が、32以下である。
- treeTypeが、DUAL_TREE_CHROMAに等しく、(cbWidth/SubWidthC)が、8に等しく、且つttSplitが、SPLIT_TT_VERに等しい。
- treeTypeが、DUAL_TREE_CHROMAに等しく、且つmodeTypeが、MODE_TYPE_INTRAに等しい。
- cbWidth×cbHeightが、64に等しく、且つmodeTypeが、MODE_TYPE_INTERに等しい。
- それ以外の場合、allowTtSplitは、TRUEに等しく設定される。
【0081】
[00102] 図12は、本開示のいくつかの実施形態に係る、VVCドラフト7の例示的な7.3.9.4節の符号化ツリー構文(斜体及び影を加えて強調)を示す例示的な表4を示す。
【0082】
[00103] 変数allowSplitQt、allowSplitBtVer、allowSplitBtHor、allowSplitTtVer、及びallowSplitTtHorは、以下のように導出される。
- 条項6.4.1に指定されるように許可される4分割プロセスは、cbWidthに等しく設定された符号化ブロックサイズcbSize、現在のマルチタイプツリー深さmttDepth、treeTypeCurr、及びmodeTypeCurrを入力として用いて呼び出され、出力は、allowSplitQtに割り当てる。
- 変数minQtSize、maxBtSize、maxTtSize、及びmaxMttDepthは、以下のように導出される。
- treeTypeがDUAL_TREE_CHROMAに等しい場合、minQtSize、maxBtSize、maxTtSize、及びmaxMttDepthは、それぞれMinQtSizeC、MaxBtSizeC、MaxTtSizeC、及びMaxMttDepthC+depthOffsetに等しく設定される。
- それ以外の場合、minQtSize、maxBtSize、maxTtSize、及びmaxMttDepthは、それぞれMinQtSizeY、MaxBtSizeY、MaxTtSizeY、及びMaxMttDepthY+depthOffsetに等しく設定される。
- 条項6.4.2に指定されるように許可される2分割プロセスは、2分割モードSPLIT_BT_VER、符号化ブロック幅cbWidth、符号化ブロック高さcbHeight、位置(x0,y0)、現在のマルチタイプツリー深さmttDepth、オフセット付き最大マルチタイプツリー深さmaxMttDepth、最大2分木サイズmaxBtSize、最小4分木サイズminQtSize、現在の区分インデックスpartIdx、treeTypeCurr、及びmodeTypeCurrを入力として用いて呼び出され、出力がallowSplitBtVerに割り当てられる。
- 条項6.4.2に指定されるように許可される2分割プロセスは、2分割モードSPLIT_BT_HOR、符号化ブロック高さcbHeight、符号化ブロック幅cbWidth、位置(x0,y0)、現在のマルチタイプツリー深さmttDepth、オフセット付き最大マルチタイプツリー深さmaxMttDepth、最大2分木サイズmaxBtSize、最小4分木サイズminQtSize、現在の区分インデックスpartIdx、treeTypeCurr、及びmodeTypeCurrを入力として用いて呼び出され、出力がallowSplitBtHorに割り当てられる。
- 条項6.4.3に指定されるように許可される3分割プロセスは、3分割モードSPLIT_TT_VER、符号化ブロック幅cbWidth、符号化ブロック高さcbHeight、位置(x0,y0)、現在のマルチタイプツリー深さmttDepth、オフセット付き最大マルチタイプツリー深さmaxMttDepth、最大3分木サイズmaxTtSize、treeTypeCurr、及びmodeTypeCurrを入力として用いて呼び出され、出力がallowSplitTtVerに割り当てられる。
- 条項6.4.3に指定されるように許可される3分割プロセスは、3分割モードSPLIT_TT_HOR、符号化ブロック高さcbHeight、符号化ブロック幅cbWidth、位置(x0,y0)、現在のマルチタイプツリー深さmttDepth、オフセット付き最大マルチタイプツリー深さmaxMttDepth、最大3分木サイズmaxTtSize、treeTypeCurr、及びmodeTypeCurrを入力として用いて呼び出され、出力がallowSplitTtHorに割り当てられる。
【0083】
[00104] 0に等しい構文要素split_cu_flagは、符号化ユニットは分割されないことを指定する。1に等しい構文要素split_cu_flagは、符号化ユニットが、構文要素split_qt_flagによって示されるように4分割を用いて4つの符号化ユニットに、又は構文要素mtt_split_cu_binary_flagによって示されるように2分割を用いて2つの符号化ユニットに、若しくは3分割を用いて3つの符号化ユニットに分割されることを指定する。2分割又は3分割は、構文要素mtt_split_cu_vertical_flagによって示されるように、垂直又は水平のいずれかであり得る。
【0084】
[00105] 構文要素split_cu_flagが存在しないとき、split_cu_flagの値は、以下のように推定される。
- 以下の条件のうちの1つ以上が真である場合、split_cu_flagの値は、1に等しいと推定される。
- x0+cbWidthが、pic_width_in_luma_samplesより大きい。
- y0+cbHeightが、pic_height_in_luma_samplesより大きい。
- それ以外の場合、split_cu_flagの値は、0に等しいと推定される。
【0085】
[00106] 構文要素split_qt_flagは、符号化ユニットが半分の水平及び垂直サイズを有する符号化ユニットに分割されるかどうかを指定する。
【0086】
[00107] 構文要素split_qt_flagが存在しないとき、以下を適用する。
- allowSplitQtがTRUEに等しい場合、split_qt_flagの値は、1に等しいと推定される。
- それ以外の場合、split_qt_flagの値は、0に等しいと推定される。
【0087】
[00108] 0に等しい構文要素mtt_split_cu_vertical_flagは、符号化ユニットが水平方向に分割されることを指定する。1に等しい構文要素mtt_split_cu_vertical_flagは、符号化ユニットが垂直方向に分割されることを指定する。
【0088】
[00109] 構文要素mtt_split_cu_vertical_flagが存在しないとき、以下のように推定される。
- allowSplitBtHorがTRUEに等しいか又はallowSplitTtHorがTRUEに等しい場合、mtt_split_cu_vertical_flagの値は、0に等しいと推定される。
- それ以外の場合、mtt_split_cu_vertical_flagの値は、1に等しいと推定される。
【0089】
[00110] 0に等しい構文要素mtt_split_cu_binary_flagは、符号化ユニットが3分割を用いて3つの符号化ユニットに分割されることを指定する。1に等しい構文要素mtt_split_cu_binary_flagは、符号化ユニットが2分割を用いて2つの符号化ユニットに分割されることを指定する。
【0090】
[00111] 構文要素mtt_split_cu_binary_flagが存在しないとき、以下のように推定される。
- allowSplitBtVerがFALSEに等しく、且つallowSplitBtHorがFALSEに等しい場合、mtt_split_cu_binary_flagの値は、0に等しいと推定される。
- それ以外の場合に、allowSplitTtVerがFALSEに等しく、且つallowSplitTtHorがFALSEに等しい場合、mtt_split_cu_binary_flagの値は、1に等しいと推定される。
- それ以外の場合に、allowSplitBtHorがTRUEに等しく、且つallowSplitTtVerがTRUEに等しい場合、mtt_split_cu_binary_flagの値は、!mtt_split_cu_vertical_flagに等しいと推定される。
- それ以外の(allowSplitBtVerがTRUEに等しく、且つallowSplitTtHorがTRUEに等しい)場合、mtt_split_cu_binary_flagの値は、mtt_split_cu_vertical_flagに等しいと推定される。
【0091】
[00112] 図14は、本開示のいくつかの実施形態に係る、MttSplitModeの例示的仕様を示す例示的な表5を示す。変数MttSplitMode[x][y][mttDepth]は、x=x0..x0+cbWidth-1及びy=y0..y0+cbHeight-1について表4に定義されるように、構文要素mtt_split_cu_vertical_flagの値から、且つ構文要素mtt_split_cu_binary_flagの値から導出される。
【0092】
[00113] MttSplitMode[x0][y0][mttDepth]は、マルチタイプツリー内の符号化ユニットの水平2分割、垂直2分割、水平3分割、及び垂直3分割を表す。アレイインデックスx0、y0は、ピクチャの左上ルマサンプルに対する、考えられる符号化ブロックの左上ルマサンプルの位置(x0,y0)を指定する。図13は、本開示のいくつかの実施形態に係る、MttSplitModeによって示されるマルチタイプツリー分割モードの例を示す。図13に示されるように、マルチタイプツリー分割モードは、垂直2分割(SPLIT_BT_VER)1301、水平2分割(SPLIT_BT_HOR)1302、垂直3分割(SPLIT_TT_VER)1303、及び水平3分割(SPLIT_TT_HOR)1304を含み得る。
【0093】
[00114] 4分木分割、2分木分割、及び3分木分割についてのCTUサイズ、最小ブロックサイズ、及びブロックサイズ制限は、シーケンスパラメータセット又はピクチャヘッダのいずれかにおいてシグナリングされることに留意されたい。
【0094】
[00115] 図15は、本開示のいくつかの実施形態に係る、VVCドラフト7の例示的な7.3.2.3節のシーケンスパラメータセットRBSP構文を示す例示的な表6を示す。図16は、本開示のいくつかの実施形態に係る、VVCドラフト7の例示的な7.3.2.6節のピクチャヘッダRBSP構文を示す例示的な表7を示す。
【0095】
[00116] いくつかの実施形態によれば、ツリーノードブロックの一部が下又は右ピクチャ境界を超えるとき、ツリーノードブロックは、あらゆる符号化ブロックの全てのサンプルがピクチャ境界の内側に位置するまで強制分割される。しかしながら、ピクチャ境界に位置し、且つピクチャ境界を超えるサンプルを含むブロックに対して全てのツリー分割モードが許可されない場合がある。図17は、本開示のいくつかの実施形態に係る、QT、TT、又はBT分割のいずれもピクチャ境界で許可されない例示的ブロックを示す。例えば、図17は、QT、TT、又はBT分割のいずれも許可されないピクチャ境界におけるCTU1701、CTU1703、及びCTU1705を示す。
【0096】
[00117] 全てのツリー分割モードが許可されない第1の例示的な場合として、CTUサイズ及び最小QTサイズの両方が128に設定されるとき、変数allowSplitQt、allowSplitBtHor、allowSplitBtVer、allowSplitTtHor、及びallowSplitTtVerの全てが偽に設定される。
【0097】
[00118] 変数allowSplitQtは、以下の条件(斜体で強調)に起因して偽に設定される。
6.4.1 許可される4分割プロセス
...
- 以下の条件のうちの1つ以上が真である場合、allowSplitQtは、FALSEに等しく設定される。
- treeTypeが、SINGLE_TREE又はDUAL_TREE_LUMAに等しく、且つcbSizeが、MinQtSizeY以下である。
- treeTypeが、DUAL_TREE_CHROMAに等しく、且つcbSize/SubWidthCが、MinQtSizeC以下である。
...
【0098】
[00119] 変数allowSplitBtHorは、以下の条件(斜体で強調)に起因して偽であるように設定される。
6.4.2 許可される2分割プロセス
...
- それ以外の場合に、以下の条件の全てが真である場合、allowBtSplitは、FALSEに等しく設定される。
- btSplitが、SPLIT_BT_HORに等しい。
- cbWidthが、64より大きい。
- y0+cbHeightが、pic_height_in_luma_samplesより大きい。
- それ以外の場合に、以下の条件の全てが真である場合、allowBtSplitは、FALSEに等しく設定される。
- x0+cbWidthが、pic_width_in_luma_samplesより大きい。
- y0+cbHeightが、pic_height_in_luma_samplesより大きい。
- cbWidthが、minQtSizeより大きい。
- それ以外の場合に、以下の条件の全てが真である場合、allowBtSplitは、FALSEに等しく設定される。
- btSplitが、SPLIT_BT_HORに等しい。
- x0+cbWidthが、pic_width_in_luma_samplesより大きい。
- y0+cbHeightが、pic_height_in_luma_samples以下である。
...
【0099】
[00120] 変数allowSplitBtVerは、以下の条件(斜体で強調)に起因して偽であるように設定される。
6.4.2 許可される2分割プロセス
...
- それ以外の場合に、以下の条件の全てが真である場合、allowBtSplitは、FALSEに等しく設定される。
- btSplitが、SPLIT_BT_VERに等しい。
- y0+cbHeightが、pic_height_in_luma_samplesより大きい。
- それ以外の場合に、以下の条件の全てが真である場合、allowBtSplitは、FALSEに等しく設定される。
- btSplitが、SPLIT_BT_VERに等しい。
- cbHeightが、64より大きい。
- x0+cbWidthが、pic_width_in_luma_samplesより大きい。
...
【0100】
[00121] 変数allowSplitTtHor及びallowSplitTtVerは、以下の条件(斜体で強調)に起因して、偽であるように設定される。
6.4.3 許可される3分割プロセス
...
- 以下の条件のうちの1つ以上が真である場合、allowTtSplitは、FALSEに等しく設定される。
- cbSizeが、2×MinTtSizeY以下である。
- cbWidthが、Min(64,maxTtSize)より大きい。
- cbHeightが、Min(64,maxTtSize)より大きい。
- mttDepthが、maxMttDepth以上である。
- x0+cbWidthが、pic_width_in_luma_samplesより大きい。
- y0+cbHeightが、pic_height_in_luma_samplesより大きい。
...
【0101】
[00122] これらの変数全てが偽に設定されるとき、CUレベルにおいて分割フラグがシグナリングされないことがある。構文要素split_cu_flagが、1であると推定され、構文要素split_qt_flagが0であると推定され、構文要素mtt_split_cu_vertical_flagが1であると推定され、構文要素mtt_split_cu_binary_flagが0であると推定される。この場合、ブロックは、SPLIT_TT_VERを用いて分割されてもよく、それは、VPDUの制約に違反し得る。
【0102】
[00123] 全てのツリー分割モードが許可されない第2の例示的な場合として、ピクチャ境界に位置し、且つピクチャ境界を超えるサンプルを含むブロックに対して全てのツリー分割が許可されない。最小QTサイズが最小CUサイズ(前の表の構文要素log2_min_luma_coding_block_size_minus2)より大きく、最大BT/TT深さ(前の表の構文要素sps_max_mtt_hierarchy_depth_inter_slice、sps_max_mtt_hierarchy_depth_intra_slice_luma、sps_max_mtt_hierarchy_depth_intra_slice_chroma、pic_max_mtt_hierarchy_depth_inter_slice、pic_max_mtt_hierarchy_depth_intra_slice_luma、及びpic_max_mtt_hierarchy_depth_intra_slice_chroma)が0に等しいとき、変数allowSplitQt、allowSplitBtHor、allowSplitBtVer、allowSplitTtHor、及びallowSplitTtVerの全てが偽に設定される。
【0103】
[00124] 図18は、本開示のいくつかの実施形態に係る、QT、BT、又はBT分割のいずれもピクチャ境界で許可されない例示的ブロックを示す。CTU(例えば、CTU1801、CTU1803、又はCTU1805)が、4つの64×64ブロックに分割する4分木を用いた第1の分割である。次いで、64×64ブロックのそれぞれは、さらに分割することができない。しかしながら、灰色で示されたブロックの部分は、右及び/又は下のピクチャ境界を超え、それはVVC設計において許可されない。灰色で示されたブロックについて、変数allowSplitQtは、以下の条件(斜体で強調)に起因して偽に設定される。
6.4.1 許可される4分割プロセス
...
- 以下の条件のうちの1つ以上が真である場合、allowSplitQtは、FALSEに等しく設定される。
- treeTypeが、SINGLE_TREE又はDUAL_TREE_LUMAに等しく、且つcbSizeが、MinQtSizeY以下である。
- treeTypeが、DUAL_TREE_CHROMAに等しく、且つcbSize/SubWidthCが、MinQtSizeC以下である。
...
【0104】
[00125] 灰色で示されたブロックについて、変数allowSplitBtHor及びallowSplitBtVerは、以下の条件(斜体で強調)に起因して偽に設定される。
6.4.2 許可される2分割プロセス
...
【0105】
[00126] 変数allowBtSplitは、以下のように導出される。
- 以下の条件の1つ以上が真である場合、allowBtSplitは、FALSEに等しく設定される。
- cbSizeが、MinBtSizeY以下である。
- cbWidthが、maxBtSizeより大きい。
- cbHeightが、maxBtSizeより大きい。
- mttDepthが、maxMttDepth以上である。
...
【0106】
[00127] 灰色で示されたブロックについて、変数allowSplitTtHor及びallowSplitTtVerは、以下の条件(斜体で強調)に起因して偽に設定される。
6.4.3 許可される3分割プロセス
...
【0107】
[00128] 変数allowTtSplitは、以下のように導出される。
- 以下の条件のうちの1つ以上が真である場合、allowTtSplitは、FALSEに等しく設定される。
- cbSizeが、2×MinTtSizeY以下である。
- cbWidthが、Min(64,maxTtSize)より大きい。
- cbHeightが、Min(64,maxTtSize)より大きい。
- mttDepthが、maxMttDepth以上である。
...
【0108】
[00129] 全てのツリー分割モードが許可されない第1の例示的な場合において説明されるように、現在のVVCドラフト7において、CUはピクチャ境界の外にサンプルを含み得るが、いくつかの条件下ではそれ以上CUを分割できない。本開示の実施形態によっては、VVCにおけるQT分割条件は変更され得る。ある態様では、ピクチャ境界の外にサンプルを含み、その幅又は高さがN(例えば、N=128)に等しいブロックについて、最小QTサイズがN(例えば128)より小さいときにQT分割が用いられる。加えて、実施形態によっては、最小QTサイズがN(例えば128)に等しいときにも、QT分割が用いられ得る。別の態様では、QT分割を用いることは、BT又はTT分割を用いることよりも簡単であり得る。図19は、本開示のいくつかの実施形態に係る、BT及びTT分割を用いる例を示す概略図である。ブロックを分割するために複数のステップを必要とし得る。さらに、異なる位置に位置するブロックに対して分割が異なることがあり、それによって複雑になり得る。例えば、ブロック1903について、SPLIT_BT_HOR、SPLIT_BT_HOR、SPLIT_TT_VER、SPLIT_TT_VER、及びSPLIT_TT_VERが、順次実行される。
【0109】
[00130] 実施形態によっては、ブロック区分のいずれも許可されないときに、4分木分割を用いることができ、構文要素split_qt_flagは1であると推定され得る。構文要素split_qt_flagは、符号化ユニットが半分の水平及び垂直サイズを有する符号化ユニットに分割されるかどうかを指定する。
【0110】
[00131] 構文要素split_qt_flagが存在しないとき、以下(斜体で強調)を適用する。
- 以下の条件の全てが真である場合、split_qt_flagは、1に等しいと推定される。
- split_cu_flagが、1に等しい。
- allowSplitQt、allowSplitBtHor、allowSplitBtVer、allowSplitTtHor、及びallowSplitTtVerがFALSEに等しい。
- それ以外の場合に、allowSplitQtがTRUEに等しい場合、split_qt_flagの値は、1に等しいと推定される。
- それ以外の場合、split_qt_flagの値は、0に等しいと推定される。
【0111】
[00132] 実施形態によっては、最小QTサイズ制約は、ピクチャ境界に位置するブロックに適用することができない。ブロックの一部が下又は右ピクチャ境界を超えるとき、ブロックは、4分木を用いて分割され得る。許可される4分割プロセスが、以下のように記載される。
6.4.1 許可される4分割プロセス
本プロセスへの入力は、以下の通りである。
- ルマサンプル内の符号化ブロックサイズcbSize
- マルチタイプツリー深さmttDepth
- 符号化ツリーノードを区分するためにシングルツリー(SINGLE_TREE)が用いられるか、又はデュアルツリーが用いられるか、及びデュアルツリーが用いられるときに、ルマ成分(DUAL_TREE_LUMA)が現在処理されるか又はクロマ成分(DUAL_TREE_CHROMA)が現在処理されるかを指定する、変数treeType
- 符号化ツリーノードの内側の符号化ユニットに対して、イントラ符号化モード(MODE_INTRA)、IBC符号化モード(MODE_IBC)、及びインター符号化モードが用いられ得るか(MODE_TYPE_ALL)、又はイントラ符号化モード及びIBC符号化モードのみが用いられ得るか(MODE_TYPE_INTRA)、又はインター符号化モードのみが用いられ得るか(MODE_TYPE_INTER)を指定する、変数modeType
本プロセスの出力は、変数allowSplitQtである。
【0112】
[00133] 変数allowSplitQtは、以下(斜体で強調)のように導出される。
- 以下の条件の全てが真である場合、allowSplitQtは、TRUEに等しく設定される。
- treeTypeが、SINGLE_TREE又はDUAL_TREE_LUMAに等しい。
- cbSizeが、128に等しい。
- MinQtSizeYが、128に等しい。
- x0+cbWidthが、pic_width_in_luma_samplesより大きいか、又はy0+cbHeightが、pic_height_in_luma_samplesより大きい。
- それ以外の場合に、以下の条件の全てが真である場合、allowSplitQtは、TRUEに等しく設定される。
- treeTypeが、DUAL_TREE_CHROMAに等しい。
- CbSize/SubWidthCが、128に等しい。
- MinQtSizeCが、128に等しい。
- x0+cbWidthが、pic_width_in_luma_samplesより大きいか、又はy0+cbHeightが、pic_height_in_luma_samplesより大きい。
- それ以外の場合に、以下の条件のうちの1つ以上が真である場合、allowSplitQtは、FALSEに等しく設定される。
- treeTypeが、SINGLE_TREE又はDUAL_TREE_LUMAに等しく、且つcbSizeが、MinQtSizeY以下である。
- treeTypeが、DUAL_TREE_CHROMAに等しく、且つcbSize/SubWidthCが、MinQtSizeC以下である。
- mttDepthが、0に等しくない。
- treeTypeが、DUAL_TREE_CHROMAに等しく、且つ(cbSize/SubWidthC)が、4以下である。
- treeTypeが、DUAL_TREE_CHROMAに等しく、且つmodeTypeが、MODE_TYPE_INTRAに等しい。
- それ以外の場合、allowSplitQtは、TRUEに等しく設定される。
【0113】
[00134] 実施形態によっては、ビットストリーム適合性が、最小QTサイズの構文に追加され得る。最小QTサイズが64以下である必要があることを要し得る。
【0114】
[00135] 構文要素sps_log2_diff_min_qt_min_cb_intra_slice_lumaは、CTUの4分木分割から生じるルマリーフブロックのルマサンプルにおける最小サイズの底を2とする対数と、SPSを参照する2(I)に等しいslice_typeを有するスライスのルマCUについてのルマサンプルにおける最小符号化ブロックサイズの底を2とする対数との間の、デフォルト差を指定する。構文要素partition_constraints_override_enabled_flagが1に等しいとき、デフォルト差は、SPSを参照するPHに存在する構文要素pic_log2_diff_min_qt_min_cb_lumaによってオーバーライドされ得る。構文要素sps_log2_diff_min_qt_min_cb_intra_slice_lumaの値は、0からCtbLog2SizeY-MinCbLog2SizeYの範囲(両端を含む)にある。CTUの4分木分割から生じるルマリーフブロックのルマサンプルにおける最小サイズの底を2とする対数は、以下のように(斜体で強調)導出される。
MinQtLog2SizeIntraY=sps_log2_diff_min_qt_min_cb_intra_slice_luma+MinCbLog2SizeY
VSize=Min(64,CtbSizeY)
【0115】
[00136] 実施形態によっては、(1<<MinQtLog2SizeIntraY)の値がVSize以下であることが、ビットストリーム適合性の要件であり得る。
【0116】
[00137] 構文要素sps_log2_diff_min_qt_min_cb_inter_sliceは、CTUの4分木分割から生じるルマリーフブロックのルマサンプルにおける最小サイズの底を2とする対数と、SPSを参照する0(B)又は1(P)に等しいslice_typeを有するスライスのルマCUについてのルマサンプルにおける最小ルマ符号化ブロックサイズの底を2とする対数との間のデフォルト差を指定する。構文要素partition_constraints_override_enabled_flagが1に等しいとき、デフォルト差は、SPSを参照するPHに存在する構文要素pic_log2_diff_min_qt_min_cb_lumaによってオーバーライドされ得る。構文要素sps_log2_diff_min_qt_min_cb_inter_sliceの値は、0からCtbLog2SizeY-MinCbLog2SizeYの範囲(両端を含む)にある。CTUの4分木分割から生じるルマリーフブロックのルマサンプルにおける最小サイズの底を2とする対数は、以下のように(斜体で強調)導出される。
MinQtLog2SizeInterY=sps_log2_diff_min_qt_min_cb_inter_slice+MinCbLog2SizeY
VSize=Min(64,CtbSizeY)
【0117】
[00138] 実施形態によっては、(1<<MinQtLog2SizeInterY)の値がVSize以下であることが、ビットストリーム適合性の要件であり得る。
【0118】
[00139] 構文要素sps_log2_diff_min_qt_min_cb_intra_slice_chromaは、DUAL_TREE_CHROMAに等しいtreeTypeを有するクロマCTUの4分木分割から生じるクロマリーフブロックのルマサンプルにおける最小サイズの底を2とする対数と、SPSを参照する2(I)に等しいslice_typeを有するスライスにおけるDUAL_TREE_CHROMAに等しいtreeTypeを有するクロマCUについてのルマサンプルにおける最小符号化ブロックサイズの底を2とする対数との間のデフォルト差を指定する。構文要素partition_constraints_override_enabled_flagが1に等しいとき、デフォルト差は、SPSを参照するPHに存在する構文要素pic_log2_diff_min_qt_min_cb_chromaによってオーバーライドされ得る。構文要素sps_log2_diff_min_qt_min_cb_intra_slice_chromaの値は、0からCtbLog2SizeY-MinCbLog2SizeYの範囲(両端を含む)にある。存在しない場合、構文要素sps_log2_diff_min_qt_min_cb_intra_slice_chromaの値は、0に等しいと推定される。DUAL_TREE_CHROMAに等しいtreeTypeを有するCTUの4分木分割から生じるルマリーフブロックのルマサンプルにおける最小サイズの底を2とする対数は、以下(斜体で強調)のように導出される。
MinQtLog2SizeIntraC=sps_log2_diff_min_qt_min_cb_intra_slice_chroma+MinCbLog2SizeY
VSize=Min(64,CtbSizeY)
【0119】
[00140] 実施形態によっては、(1<<MinQtLog2SizeIntraC)の値がVSize以下であることが、ビットストリーム適合性の要件であり得る。
【0120】
[00141] 構文要素pic_log2_diff_min_qt_min_cb_intra_slice_lumaは、CTUの4分木分割から生じるルマリーフブロックのルマサンプルにおける最小サイズの底を2とする対数と、PHに関連付けられた2(I)に等しいslice_typeを有するスライスのルマCUについてのルマサンプルにおける最小符号化ブロックサイズの底を2とする対数との間の差を指定する。構文要素pic_log2_diff_min_qt_min_cb_intra_slice_lumaの値は、0からCtbLog2SizeY-MinCbLog2SizeYの範囲(両端を含む)にある。存在しない場合、構文要素pic_log2_diff_min_qt_min_cb_lumaの値は、構文要素sps_log2_diff_min_qt_min_cb_intra_slice_lumaに等しいと推定される。実施形態によっては、(1<<(pic_log2_diff_min_qt_min_cb_intra_slice_luma+MinCbLog2SizeY))の値がMin(64,CtbSizeY)以下であることが、ビットストリーム適合性の要件であり得る。
【0121】
[00142] 構文要素pic_log2_diff_min_qt_min_cb_inter_sliceは、CTUの4分木分割から生じるルマリーフブロックのルマサンプルにおける最小サイズの底を2とする対数と、PHに関連付けられた0(B)又は1(P)に等しいslice_typeを有するスライスのルマCUについてのルマサンプルにおける最小ルマ符号化ブロックサイズの底を2とする対数との間の差を指定する。構文要素pic_log2_diff_min_qt_min_cb_inter_sliceの値は、0からCtbLog2SizeY-MinCbLog2SizeYの範囲(両端を含む)にある。存在しない場合、構文要素pic_log2_diff_min_qt_min_cb_lumaの値は、構文要素sps_log2_diff_min_qt_min_cb_inter_sliceに等しいと推定される。実施形態によっては、(1<<(pic_log2_diff_min_qt_min_cb_inter_slice+MinCbLog2SizeY))の値がMin(64,CtbSizeY)以下であることが、ビットストリーム適合性の要件であり得る。
【0122】
[00143] 構文要素pic_log2_diff_min_qt_min_cb_intra_slice_chromaは、DUAL_TREE_CHROMAに等しいtreeTypeを有するクロマCTUの4分木分割から生じるクロマリーフブロックのルマサンプルにおける最小サイズの底を2とする対数と、PHに関連付けられた2(I)に等しいslice_typeを有するスライスにおけるDUAL_TREE_CHROMAに等しいtreeTypeを有するクロマCUについてのルマサンプルにおける最小符号化ブロックサイズの底を2とする対数との間の差を指定する。構文要素pic_log2_diff_min_qt_min_cb_intra_slice_chromaの値は、0からCtbLog2SizeY-MinCbLog2SizeYの範囲(両端を含む)にある。存在しない場合、構文要素pic_log2_diff_min_qt_min_cb_intra_slice_chromaの値は、構文要素sps_log2_diff_min_qt_min_cb_intra_slice_chromaに等しいと推定される。実施形態によっては、(1<<(pic_log2_diff_min_qt_min_cb_intra_slice_chroma+MinCbLog2SizeY))の値がMin(64,CtbSizeY)以下であることが、ビットストリーム適合性の要件であり得る。
【0123】
[00144] 実施形態によっては、全てのツリー分割モードが許可されない上記第2の例示的な場合において、ブロック区分のいずれも許可されないとき、4分木分割が用いられてもよく、構文要素split_qt_flagが1であると推定され得る。
【0124】
[00145] 構文要素split_qt_flagは、符号化ユニットが、半分の水平及び垂直サイズを有する符号化ユニットに分割されるかどうかを指定する。構文要素split_qt_flagが存在しないとき、以下(斜体で強調)を適用する。
- 以下の条件の全てが真である場合、split_qt_flagは、1に等しいと推定される。
- split_cu_flagが、1に等しい。
- allowSplitQt、allowSplitBtHor、allowSplitBtVer、allowSplitTtHor、及びallowSplitTtVerがFALSEに等しい。
- それ以外の場合に、allowSplitQtがTRUEに等しい場合、split_qt_flagの値は、1に等しいと推定される。
- それ以外の場合、split_qt_flagの値は、0に等しいと推定される。
【0125】
[00146] 実施形態によっては、全てのツリー分割モードが許可されない、上記第2の例示的な場合において、ビットストリーム適合性が、最小QTサイズ及び最大BT/TT深さの構文に追加され得る。
【0126】
[00147] 構文要素sps_log2_diff_min_qt_min_cb_intra_slice_lumaは、CTUの4分木分割から生じるルマリーフブロックのルマサンプルにおける最小サイズの底を2とする対数と、SPSを参照する2(I)に等しいslice_typeを有するスライスのルマCUについてのルマサンプルにおける最小符号化ブロックサイズの底を2とする対数との間のデフォルト差を指定する。構文要素partition_constraints_override_enabled_flagが1に等しいとき、デフォルト差は、SPSを参照するPHに存在する構文要素pic_log2_diff_min_qt_min_cb_lumaによってオーバーライドされ得る。構文要素sps_log2_diff_min_qt_min_cb_intra_slice_lumaの値は、0からCtbLog2SizeY-MinCbLog2SizeYの範囲(両端を含む)にある。CTUの4分木分割から生じるルマリーフブロックのルマサンプルにおける最小サイズの底を2とする対数は、以下のように(斜体で強調)導出される。
MinQtLog2SizeIntraY=sps_log2_diff_min_qt_min_cb_intra_slice_luma+MinCbLog2SizeY
【0127】
[00148] 構文要素sps_max_mtt_hierarchy_depth_intra_slice_lumaは、SPSを参照する2(I)に等しいslice_typeを有するスライスにおける4分木リーフのマルチタイプツリー分割から生じる符号化ユニットについてのデフォルト最大階層深さを指定する。構文要素partition_constraints_override_enabled_flagが1に等しいとき、デフォルト最大階層深さは、SPSを参照するPHに存在する構文要素pic_max_mtt_hierarchy_depth_intra_slice_lumaによってオーバーライドされ得る。構文要素sps_max_mtt_hierarchy_depth_intra_slice_lumaの値は、0から2×(CtbLog2SizeY-MinCbLog2SizeY)の範囲(両端を含む)にある。実施形態によっては、(MinQtLog2SizeIntraY-sps_max_mtt_hierachy_depth_intra_slice_luma/2)の値がMinCbLog2SizeY以下であることが、ビットストリーム適合性の要件であり得る。
【0128】
[00149] 構文要素sps_log2_diff_min_qt_min_cb_inter_sliceは、CTUの4分木分割から生じるルマリーフブロックのルマサンプルにおける最小サイズの底を2とする対数と、SPSを参照する0(B)又は1(P)に等しいslice_typeを有するスライスのルマCUについてのルマサンプルにおける最小ルマ符号化ブロックサイズの底を2とする対数との間のデフォルト差を指定する。構文要素partition_constraints_override_enabled_flagが1に等しいとき、デフォルト差は、SPSを参照するPHに存在する構文要素pic_log2_diff_min_qt_min_cb_lumaによってオーバーライドされ得る。構文要素sps_log2_diff_min_qt_min_cb_inter_sliceの値は、0からCtbLog2SizeY-MinCbLog2SizeYの範囲(両端を含む)にある。CTUの4分木分割から生じるルマリーフブロックのルマサンプルにおける最小サイズの底を2とする対数は、以下のように導出される。
MinQtLog2SizeInterY=sps_log2_diff_min_qt_min_cb_inter_slice+MinCbLog2SizeY
【0129】
[00150] 構文要素sps_max_mtt_hierarchy_depth_inter_sliceは、SPSを参照する0(B)又は1(P)に等しいslice_typeを有するスライスにおける4分木リーフのマルチタイプツリー分割から生じる符号化ユニットについてのデフォルト最大階層深さを指定する。構文要素partition_constraints_override_enabled_flagが1に等しいとき、デフォルト最大階層深さは、SPSを参照するPHに存在する構文要素pic_max_mtt_hierarchy_depth_inter_sliceによってオーバーライドされ得る。構文要素sps_max_mtt_hierarchy_depth_inter_sliceの値は、0から2×(CtbLog2SizeY-MinCbLog2SizeY)の範囲(両端を含む)にある。実施形態によっては、(MinQtLog2SizeInterY-sps_max_mtt_hierachy_depth_inter_slice/2)の値がMinCbLog2SizeY以下であることが、ビットストリーム適合性の要件であり得る。
【0130】
[00151] 構文要素sps_log2_diff_min_qt_min_cb_intra_slice_chromaは、DUAL_TREE_CHROMAに等しいtreeTypeを有するクロマCTUの4分木分割から生じるクロマリーフブロックのルマサンプルにおける最小サイズの底を2とする対数と、SPSを参照する2(I)に等しいslice_typeを有するスライスのDUAL_TREE_CHROMAに等しいtreeTypeを有するクロマCUについてのルマサンプルにおける最小符号化ブロックサイズの底を2とする対数との間のデフォルト差を指定する。構文要素partition_constraints_override_enabled_flagが1に等しいとき、デフォルト差は、SPSを参照するPHに存在する構文要素pic_log2_diff_min_qt_min_cb_chromaによってオーバーライドされ得る。構文要素sps_log2_diff_min_qt_min_cb_intra_slice_chromaの値は、0からCtbLog2SizeY-MinCbLog2SizeYの範囲(両端を含む)にある。存在しない場合、構文要素sps_log2_diff_min_qt_min_cb_intra_slice_chromaの値は、0に等しいと推定される。DUAL_TREE_CHROMAに等しいtreeTypeを有するCTUの4分木分割から生じるルマリーフブロックのルマサンプルにおける最小サイズの底を2とする対数は、以下のように導出される。
MinQtLog2SizeIntraC=sps_log2_diff_min_qt_min_cb_intra_slice_chroma+MinCbLog2SizeY
【0131】
[00152] 構文要素sps_max_mtt_hierarchy_depth_intra_slice_chromaは、SPSを参照する2(I)に等しいslice_typeを有するスライスにおける、DUAL_TREE_CHROMAに等しいtreeTypeを有するクロマ4分木リーフのマルチタイプツリー分割から生じるクロマ符号化ユニットについてのデフォルト最大階層深さを指定する。構文要素partition_constraints_override_enabled_flagが1に等しいとき、デフォルト最大階層深さは、SPSを参照するPHに存在する構文要素pic_max_mtt_hierarchy_depth_chromaによってオーバーライドされ得る。構文要素sps_max_mtt_hierarchy_depth_intra_slice_chromaの値は、0から2×(CtbLog2SizeY-MinCbLog2SizeY)の範囲(両端を含む)にある。存在しない場合、構文要素sps_max_mtt_hierarchy_depth_intra_slice_chromaの値は、0に等しいと推定される。実施形態によっては、(MinQtLog2SizeIntraC-sps_max_mtt_hierachy_depth_intra_slice_chroma/2)の値がMinCbLog2SizeY以下であることが、ビットストリーム適合性の要件であり得る。
【0132】
[00153] 構文要素pic_log2_diff_min_qt_min_cb_intra_slice_lumaは、CTUの4分木分割から生じるルマリーフブロックのルマサンプルにおける最小サイズの底を2とする対数と、PHに関連付けられた2(I)に等しいslice_typeを有するスライスにおけるルマCUについてのルマサンプルにおける最小符号化ブロックサイズの底を2とする対数との間の差を指定する。構文要素pic_log2_diff_min_qt_min_cb_intra_slice_lumaの値は、0からCtbLog2SizeY-MinCbLog2SizeYの範囲(両端を含む)にある。存在しない場合、構文要素pic_log2_diff_min_qt_min_cb_lumaの値は、構文要素sps_log2_diff_min_qt_min_cb_intra_slice_lumaに等しいと推定される。
【0133】
[00154] 構文要素pic_max_mtt_hierarchy_depth_intra_slice_lumaは、PHに関連付けられた2(I)に等しいslice_typeを有するスライスにおける4分木リーフのマルチタイプツリー分割から生じる符号化ユニットについての最大階層深さを指定する。構文要素pic_max_mtt_hierarchy_depth_intra_slice_lumaの値は、0から2×(CtbLog2SizeY-MinCbLog2SizeY)の範囲(両端を含む)にある。存在しない場合、構文要素pic_max_mtt_hierarchy_depth_intra_slice_lumaの値は、構文要素sps_max_mtt_hierarchy_depth_intra_slice_lumaに等しいと推定される。実施形態によっては、(pic_log2_diff_min_qt_min_cb_intra_slice_luma+MinCbLog2SizeY-pic_max_mtt_hierarchy_depth_intra_slice_luma/2)の値がMinCbLog2SizeY以下であることが、ビットストリーム適合性の要件であり得る。
【0134】
[00155] 構文要素pic_log2_diff_min_qt_min_cb_inter_sliceは、CTUの4分木分割から生じるルマリーフブロックのルマサンプルにおける最小サイズの底を2とする対数と、PHに関連付けられた0(B)又は1(P)に等しいslice_typeを有するスライスのルマCUについてのルマサンプルにおける最小ルマ符号化ブロックサイズの底を2とする対数との間の差を指定する。構文要素pic_log2_diff_min_qt_min_cb_inter_sliceの値は、0からCtbLog2SizeY-MinCbLog2SizeYの範囲(両端を含む)にある。存在しない場合、構文要素pic_log2_diff_min_qt_min_cb_lumaの値は、構文要素sps_log2_diff_min_qt_min_cb_inter_sliceに等しいと推定される。
【0135】
[00156] 構文要素pic_max_mtt_hierarchy_depth_inter_sliceは、PHに関連付けられた0(B)又は1(P)に等しいslice_typeを有するスライスにおける4分木リーフのマルチタイプツリー分割から生じる符号化ユニットについての最大階層深さを指定する。構文要素pic_max_mtt_hierarchy_depth_inter_sliceの値は、0から2×(CtbLog2SizeY-MinCbLog2SizeY)の範囲(両端を含む)にある。存在しない場合、構文要素pic_max_mtt_hierarchy_depth_inter_sliceの値は、構文要素sps_max_mtt_hierarchy_depth_inter_sliceに等しいと推定される。実施形態によっては、(pic_log2_diff_min_qt_min_cb_inter_slice+MinCbLog2SizeY-pic_max_mtt_hierarchy_depth_inter_slice/2)の値がMinCbLog2SizeY以下であることが、ビットストリーム適合性の要件であり得る。
【0136】
[00157] 構文要素pic_log2_diff_min_qt_min_cb_intra_slice_chromaは、DUAL_TREE_CHROMAに等しいtreeTypeを有するクロマCTUの4分木分割から生じるクロマリーフブロックのルマサンプルにおける最小サイズの底を2とする対数と、PHに関連付けられた2(I)に等しいslice_typeを有するスライスにおけるDUAL_TREE_CHROMAに等しいtreeTypeを有するクロマCUについてのルマサンプルにおける最小符号化ブロックサイズの底を2とする対数との間の差を指定する。構文要素pic_log2_diff_min_qt_min_cb_intra_slice_chromaの値は、0からCtbLog2SizeY-MinCbLog2SizeYの範囲(両端を含む)にある。存在しない場合、構文要素pic_log2_diff_min_qt_min_cb_intra_slice_chromaの値は、構文要素sps_log2_diff_min_qt_min_cb_intra_slice_chromaに等しいと推定される。
【0137】
[00158] 構文要素pic_max_mtt_hierarchy_depth_intra_slice_chromaは、PHに関連付けられた2(I)に等しいslice_typeを有するスライスにおける、DUAL_TREE_CHROMAに等しいtreeTypeを有するクロマ4分木リーフのマルチタイプツリー分割から生じるクロマ符号化ユニットについての最大階層深さを指定する。構文要素pic_max_mtt_hierarchy_depth_intra_slice_chromaの値は、0から2×(CtbLog2SizeY-MinCbLog2SizeY)の範囲(両端を含む)にある。存在しない場合、構文要素pic_max_mtt_hierarchy_depth_intra_slice_chromaの値は、構文要素sps_max_mtt_hierarchy_depth_intra_slice_chromaに等しいと推定される。実施形態によっては、(pic_log2_diff_min_qt_min_cb_intra_slice_chroma+MinCbLog2SizeY-pic_max_mtt_hierarchy_depth_intra_slice_chroma/2)の値がMinCbLog2SizeY以下であることが、ビットストリーム適合性の要件であり得る。
【0138】
[00159] 図20は、本開示のいくつかの実施形態に係る、例示的映像処理方法2000のフローチャートを示す。方法2000は、符号器(例えば、図2Aのプロセス200A又は図2Bのプロセス200Bによる)、復号器(例えば、図3Aのプロセス300A又は図3Bのプロセス300Bによる)によって実行されてもよく、装置(例えば、図4の装置400)の1つ以上のソフトウェア又はハードウェアコンポーネントによって実行されてもよい。例えば、プロセッサ(例えば、図4のプロセッサ402)は、方法2000を実行し得る。実施形態によっては、方法2000は、コンピュータ(例えば、図4の装置400)によって実行される、プログラムコードなどのコンピュータ実行可能命令を含むコンピュータ可読媒体において具現化される、コンピュータプログラム製品によって実施され得る。
【0139】
[00160] ステップ2001において、符号化ブロックがピクチャ境界の外側にサンプルを含むかどうかについての決定が行われ得る。実施形態によっては、ピクチャ境界が、下ピクチャ境界又は右ピクチャ境界であってもよい。ピクチャ境界の外側にサンプルを含む符号化ブロックについての例として、図17を参照すると、符号化ブロック1701は、ピクチャ1700の右ピクチャ境界を超え、符号化ブロック1705は、ピクチャ1700の下ピクチャ境界を超え、符号化ブロック1703は、ピクチャ1700の下及び右ピクチャ境界の両方を超える。
【0140】
[00161] ステップ2003において、符号化ブロックがピクチャ境界の外側にサンプルを含むと決定されることに応じて、符号化ブロックは、QTモードを用いて分割され得る。実施形態によっては、符号化ブロックがピクチャ境界の外側にサンプルを含むと決定されることに応じて、方法2000は、符号化ブロックを分割するためにBTモード及びTTモードが用いられることを許可されないと決定し得る。例えば、変数allowSplitBtHor、allowSplitBtVer、allowSplitTtHor、及びallowSplitTtVerは、FALSEに等しいと決定され得る。
【0141】
[00162] 実施形態によっては、符号化ブロックがピクチャ境界の外側にサンプルを含むと決定されることに応じて、方法2000は、符号化ブロックを含むビットストリームにQTフラグが存在するかどうかに関わらず、符号化ブロックがQTモードを用いて分割されるべきであると決定し得る。QTフラグは、符号化ブロックがQTモードを用いて分割されるべきであるかどうかを示す。例えば、構文要素split_qt_flagが存在しないとき、符号化ブロックがピクチャ境界の外側にサンプルを含み、且つ変数allowSplitQt、allowSplitBtHor、allowSplitBtVer、allowSplitTtHor、及びallowSplitTtVerがFALSEに等しいか、又はallowSplitQtがTRUEに等しい場合に、split_qt_flagの値が1に等しいと推定され得る。
【0142】
[00163] 実施形態によっては、符号化ブロックがピクチャ境界の外側にサンプルを含むと決定されることに応じて、方法2000は、QTモードが適用を許可される最小ブロックサイズに対するプリセット制約に関わらず、符号化ブロックを分割するためにQTモードが用いられることを許可されると決定し得る。例えば、最小QTサイズ制約をピクチャ境界に位置する符号化ブロックに適用することはできない。
【0143】
[00164] 実施形態によっては、プリセット制約が、符号化ブロックに対するビットストリーム適合性を含み得る。ビットストリーム適合性は、QTモードが適用を許可される最小ブロックサイズを設定し得る。例えば、最小ブロックサイズは、64以下であるように設定され得る。ビットストリーム適合性は、最大BT深さ又は最大TT深さも設定し得る。
【0144】
[00165] 実施形態によっては、方法2000は、符号化ブロックが分割されるべきであると決定することを含み得る。例えば、構文要素split_cu_flagは、符号化ブロックが分割されるべきであるかどうかを示すために用いられ得る。構文要素split_cu_flagが存在しないとき、それは、符号化ブロックが分割されるべきであることを示す1に等しいと推定され得る。
【0145】
[00166] 本開示の実施形態は、別の実施形態又はいくつかの他の実施形態と組み合わせ得ることを理解されたい。
【0146】
[00167] 実施形態は、以下の条項を用いてさらに記述することができる。
1.映像処理方法であって、
符号化ブロックがピクチャ境界の外側にサンプルを含むかどうかを決定することと、
符号化ブロックがピクチャ境界の外側にサンプルを含むと決定されることに応じて、第1のパラメータの値に関わらず符号化ブロックの4分木分割を実行することであって、第1のパラメータが、符号化ブロックを分割するために4分木を用いることを許可されるかどうかを示すことと、
を含む、方法。
2.符号化ブロックの第1のフラグの値を決定することであって、第1のフラグが、符号化ブロックが複数のサブブロックに分割されるかどうかを示すことと、
符号化ブロックの第2のパラメータ、第3のパラメータ、第4のパラメータ、及び第5のパラメータの値を決定することであって、第2のパラメータ、第3のパラメータ、第4のパラメータ、及び第5のパラメータが、符号化ブロックを分割するために水平2分木、垂直2分木、水平3分木、及び垂直3分木を用いることを許可されるかどうかをそれぞれ示すことと、
をさらに含む、条項1に記載の方法。
3.第1のフラグの値が1に等しいこと、並びに第1のパラメータ、第2のパラメータ、第3のパラメータ、第4のパラメータ、及び第5のパラメータの値が0に等しいことに応じて、符号化ブロックの第2のフラグの値を1に設定することであって、第2のフラグが、符号化ブロックが4分木を用いて分割されるかどうかを示すことをさらに含む、条項2に記載の方法。
4.第1のパラメータの値が1に等しいことに応じて、符号化ブロックの第2のフラグの値を1に設定することであって、第2のフラグが、符号化ブロックが4分木を用いて分割されるかどうかを示すことをさらに含む、条項2に記載の方法。
5.符号化ブロックがピクチャ境界の外側にサンプルを含むと決定されるとき、第1のフラグの値が1であるように設定することをさらに含む、条項2~4のいずれか一項に記載の方法。
6.映像処理装置であって、
命令を記憶するための少なくとも1つのメモリと、
少なくとも1つのプロセッサとを備え、少なくとも1つのプロセッサは、
符号化ブロックがピクチャ境界の外側にサンプルを含むかどうかを決定すること、及び
符号化ブロックがピクチャ境界の外側にサンプルを含むと決定されることに応じて、第1のパラメータの値に関わらず符号化ブロックの4分木分割を実行することであって、第1のパラメータが、符号化ブロックを分割するために4分木を用いることを許可されるかどうかを示すことと、
を装置に実行させるために、命令を実行するように構成される、装置。
7.少なくとも1つのプロセッサが、
符号化ブロックの第1のフラグの値を決定することであって、第1のフラグが、符号化ブロックが複数のサブブロックに分割されるかどうかを示すことと、
符号化ブロックの第2のパラメータ、第3のパラメータ、第4のパラメータ、及び第5のパラメータの値を決定することであって、第2のパラメータ、第3のパラメータ、第4のパラメータ、及び第5のパラメータが、符号化ブロックを分割するために水平2分木、垂直2分木、水平3分木、及び垂直3分木を用いることを許可されるかどうかをそれぞれ示すことと、
を装置に実行させるために、命令を実行するように構成される、条項6に記載の装置。
8.少なくとも1つのプロセッサが、
第1のフラグの値が1に等しいこと、並びに第1のパラメータ、第2のパラメータ、第3のパラメータ、第4のパラメータ、及び第5のパラメータの値が0に等しいことに応じて、符号化ブロックの第2のフラグの値を1に設定することであって、第2のフラグが、符号化ブロックが4分木を用いて分割されるかどうかを示すこと
を装置に実行させるために、命令を実行するように構成される、条項7に記載の装置。
9.少なくとも1つのプロセッサが、
第1のパラメータの値が1に等しいことに応じて、符号化ブロックの第2のフラグの値を1に設定することであって、第2のフラグが、符号化ブロックが4分木を用いて分割されるかどうかを示すこと
を装置に実行させるために、命令を実行するように構成される、条項7に記載の装置。
10.少なくとも1つのプロセッサが、
符号化ブロックがピクチャ境界の外側にサンプルを含むと決定されるとき、第1のフラグの値が1であるように設定すること
を装置に実行させるために、命令を実行するように構成される、条項7~9のいずれか一項に記載の装置。
11.命令のセットを記憶する非一時的コンピュータ可読記憶媒体であって、命令のセットが、
符号化ブロックがピクチャ境界の外側にサンプルを含むかどうかを決定することと、
符号化ブロックがピクチャ境界の外側にサンプルを含むと決定されることに応じて、第1のパラメータの値に関わらず符号化ブロックの4分木分割を実行することであって、第1のパラメータが、符号化ブロックを分割するために4分木を用いることを許可されるかどうかを示すことと、
を映像処理装置に実行させるために、1つ以上の処理デバイスによって実行可能である、非一時的コンピュータ可読記憶媒体。
12.命令のセットが、
符号化ブロックの第1のフラグの値を決定することであって、第1のフラグが、符号化ブロックが複数のサブブロックに分割されるかどうかを示す、決定することと、
符号化ブロックの第2のパラメータ、第3のパラメータ、第4のパラメータ、及び第5のパラメータの値を決定することであって、第2のパラメータ、第3のパラメータ、第4のパラメータ、及び第5のパラメータが、符号化ブロックを分割するために水平2分木、垂直2分木、水平3分木、及び垂直3分木を用いることを許可されるかどうかをそれぞれ示す、決定することと、
を映像処理装置に実行させるために1つ以上の処理デバイスによって実行可能である、条項11に記載の非一時的コンピュータ可読記憶媒体。
13.命令のセットが、
第1のフラグの値が1に等しいこと、並びに第1のパラメータ、第2のパラメータ、第3のパラメータ、第4のパラメータ、及び第5のパラメータの値が0に等しいことに応じて、符号化ブロックの第2のフラグの値を1に設定することであって、第2のフラグが、符号化ブロックが4分木を用いて分割されるかどうかを示すこと
を映像処理装置に実行させるために、1つ以上の処理デバイスによって実行可能である、条項12に記載の非一時的コンピュータ可読記憶媒体。
14.命令のセットが、
第1のパラメータの値が1に等しいことに応じて、符号化ブロックの第2のフラグの値を1に設定することであって、第2のフラグが、符号化ブロックが4分木を用いて分割されるかどうかを示すこと
を映像処理装置に実行させるために、1つ以上の処理デバイスによって実行可能である、条項12に記載の非一時的コンピュータ可読記憶媒体。
15.符号化ブロックがピクチャ境界の外側にサンプルを含むと決定されることに応じて、QTモードを用いて符号化ブロックを分割することが、
符号化ブロックがピクチャ境界の外側にサンプルを含むと決定されるとき、第1のフラグの値が1であるように設定することを含む、条項12~14のいずれか一項に記載の非一時的コンピュータ可読記憶媒体。
16.映像処理方法であって、
符号化ブロックがピクチャ境界の外側にサンプルを含むかどうかを決定することと、
符号化ブロックがピクチャ境界の外側にサンプルを含むと決定されることに応じて、4分木(QT)モードを用いて符号化ブロックを分割することと、を含む、方法。
17.
符号化ブロックがピクチャ境界の外側にサンプルを含むと決定されることに応じて、2分木(BT)モード及び3分木(TT)モードは、符号化ブロックを分割するために用いられることを許可されないと決定することをさらに含む、条項16に記載の方法。
18.符号化ブロックがピクチャ境界の外側にサンプルを含むと決定されることに応じて、4分木(QT)モードを用いて符号化ブロックを分割することが、
QTフラグが符号化ブロックを含むビットストリーム内に存在するかどうかに関わらず、QTモードを用いて符号化ブロックを分割することであって、QTフラグが、符号化ブロックがQTモードを用いて分割されるべきかどうかを示すことを含む、条項16及び17のいずれか一項に記載の方法。
19.符号化ブロックがピクチャ境界の外側にサンプルを含むと決定されることに応じて、4分木(QT)モードを用いて符号化ブロックを分割することが、
QTモードの適用が許可される最小ブロックサイズに対するプリセット制約に関わらず、QTモードを用いて符号化ブロックを分割することを含む、条項16に記載の方法。
20.プリセット制約が、符号化ブロックに関連付けられたビットストリーム適合性を含み、ビットストリーム適合性が、QTモードの適用が許可される最小ブロックサイズを設定する、条項19に記載の方法。
21.最小ブロックサイズが、64以下であるように設定される、条項20に記載の方法。
22.ビットストリーム適合性が、最大BT深さ又は最大TT深さを設定する、条項20及び21のいずれか一項に記載の方法。
23.ピクチャ境界が、下ピクチャ境界又は右ピクチャ境界である、条項16~22のいずれか一項に記載の方法。
24.映像処理装置であって、
命令を記憶するための少なくとも1つのメモリと、
少なくとも1つのプロセッサとを備え、少なくとも1つのプロセッサは、
符号化ブロックがピクチャ境界の外側にサンプルを含むかどうかを決定することと、
符号化ブロックがピクチャ境界の外側にサンプルを含むと決定されることに応じて、4分木(QT)モードを用いて符号化ブロックを分割することと、
を装置に実行させるために、命令を実行するように構成される、装置。
25.少なくとも1つのプロセッサが、
符号化ブロックがピクチャ境界の外側にサンプルを含むと決定されることに応じて、2分木(BT)モード及び3分木(TT)モードは、符号化ブロックを分割するために用いられることを許可されないと決定すること
を装置に実行させるために、命令を実行するように構成される、条項24に記載の装置。
26.少なくとも1つのプロセッサが、
QTフラグが符号化ブロックを含むビットストリーム内に存在するかどうかに関わらず、QTモードを用いて符号化ブロックを分割することであって、QTフラグが、符号化ブロックがQTモードを用いて分割されるかどうかを示すこと
を装置に実行させるために、命令を実行するように構成される、条項24及び25のいずれか一項に記載の装置。
27.少なくとも1つのプロセッサが、
QTモードの適用が許可される最小ブロックサイズに対するプリセット制約に関わらず、QTモードを用いて符号化ブロックを分割すること
を装置に実行させるために、命令を実行するように構成される、条項24に記載の装置。
28.プリセット制約が、符号化ブロックに関連付けられたビットストリーム適合性を含み、ビットストリーム適合性が、QTモードの適用が許可される最小ブロックサイズを設定する、条項27に記載の装置。
29.最小ブロックサイズが、64以下であるように設定される、条項28に記載の装置。
30.ビットストリーム適合性が、最大BT深さ又は最大TT深さを設定する、条項28及び29のいずれか一項に記載の装置。
31.ピクチャ境界が、下ピクチャ境界又は右ピクチャ境界である、条項24~30のいずれか一項に記載の装置。
32.命令のセットを記憶する非一時的コンピュータ可読記憶媒体であって、命令のセットが、
符号化ブロックがピクチャ境界の外側にサンプルを含むかどうかを決定することと、
符号化ブロックがピクチャ境界の外側にサンプルを含むと決定されることに応じて、4分木(QT)モードを用いて符号化ブロックを分割することと、
を映像処理装置に実行させるために、1つ以上の処理デバイスによって実行可能である、非一時的コンピュータ可読記憶媒体。
33.命令のセットが、
符号化ブロックがピクチャ境界の外側にサンプルを含むと決定されることに応じて、2分木(BT)モード及び3分木(TT)モードは、符号化ブロックを分割するために用いられることを許可されないと決定すること
を映像処理装置に実行させるために、1つ以上の処理デバイスによって実行可能である、条項32に記載の非一時的コンピュータ可読記憶媒体。
34.命令のセットが、
QTフラグが符号化ブロックを含むビットストリーム内に存在するかどうかに関わらず、QTモードを用いて符号化ブロックを分割することであって、QTフラグが、符号化ブロックがQTモードを用いて分割されるべきかどうかを示すこと
を映像処理装置に実行させるためにに、1つ以上の処理デバイスによって実行可能である、条項32及び33のいずれか一項に記載の非一時的コンピュータ可読記憶媒体。
35.命令のセットが、
QTモードの適用が許可される最小ブロックサイズに対するプリセット制約に関わらず、QTモードを用いて符号化ブロックを分割すること
を映像処理装置に実行させるために、1つ以上の処理デバイスによって実行可能である、条項32に記載の非一時的コンピュータ可読記憶媒体。
36.プリセット制約が、符号化ブロックに関連付けられたビットストリーム適合性を含み、ビットストリーム適合性が、QTモードの適用が許可される最小ブロックサイズを設定する、条項35に記載の非一時的コンピュータ可読記憶媒体。
37.最小ブロックサイズが、64以下であるように設定される、条項36に記載の非一時的コンピュータ可読記憶媒体。
38.ビットストリーム適合性が、最大BT深さ又は最大TT深さを設定する、条項36及び37のいずれか一項に記載の非一時的コンピュータ可読記憶媒体。
39.ピクチャ境界が、下ピクチャ境界又は右ピクチャ境界である、条項32~38のいずれか一項に記載の非一時的コンピュータ可読記憶媒体。
【0147】
[00168] 実施形態によっては、また、命令を含む非一時的コンピュータ可読記憶媒体が提供され、命令はデバイス(本開示の符号器及び復号器など)によって、上述の方法を遂行するために実行され得る。一般的な形態の非一時的媒体としては、例えば、フロッピー(登録商標)ディスク、フレキシブルディスク、ハードディスク、ソリッドステートドライブ、磁気テープ、又は任意の他の磁気データ記憶媒体、CD-ROM、任意の他の光学データ記憶媒体、孔のパターンを有する任意の物理媒体、RAM、PROM、及びEPROM、FLASH(登録商標)-EPROM又は任意の他のフラッシュメモリ、NVRAM、キャッシュ、レジスタ、任意の他のメモリチップ又はカートリッジ、並びにこれらのネットワーク化バージョンが挙げられる。デバイスは、1つ以上のプロセッサ(CPU)、入力/出力インターフェース、ネットワークインターフェース、及び/又はメモリを含み得る。
【0148】
[00169] 「第1(first)」及び「第2(second)」などの本明細書における関係語は、単に、実体又は動作を別の実体又は動作と区別するために使用されるにすぎず、これらの実体又は動作の間のいかなる実際の関係又は順序も必要とせず、暗示もしないことに留意されたい。さらに、単語「備える(comprising)」、「有する(having)」、「包含する(containing)」、及び「含む(including)」、並びに他の同様の形式は、意味が同等であり、これらの単語のうちの任意のものに続く要素若しくは要素群は、このような要素若しくは要素群の限定列挙であることを意味されない、又は列挙された要素若しくは要素群のみに限定されることを意味されないという点で、オープンエンドなものであることを意図される。
【0149】
[00170] 本明細書において使用するとき、別途特に断りのない限り、用語「又は(or)」は、実行不可能な場合を除き、全ての可能な組み合わせを包含する。例えば、データベースがA又はBを含み得ると述べられた場合には、このとき、別途特に断りのない限り、又は実行不可能でない限り、データベースは、A、或いはB、或いはA及びBを含み得る。第2の例として、データベースがA、B、又はCを含み得ると述べられた場合には、このとき、別途特に断りのない限り、又は実行不可能でない限り、データベースは、A、B、若しくはC、又はA及びB、A及びC、若しくはB及びC、又はA及びB及びCを含み得る。
【0150】
[00171] 上述の実施形態は、ハードウェア、又はソフトウェア(プログラムコード)、或いはハードウェア及びソフトウェアの組み合わせによって実施され得ることが理解される。ソフトウェアによって実施される場合には、それは上述のコンピュータ可読媒体内に記憶され得る。ソフトウェアは、プロセッサによって実行されたときに、本開示の方法を遂行することができる。本開示において説明される計算ユニット及び他の機能ユニットは、ハードウェア、又はソフトウェア、或いはハードウェア及びソフトウェアの組み合わせによって実施され得る。当業者は、上述のモジュール/ユニットのうちの複数のものを1つのモジュール/ユニットとして組み合わせてもよく、上述のモジュール/ユニットの各々を複数のサブモジュール/サブユニットにさらに分割してもよいことも理解するであろう。
【0151】
[00172] 上述の明細書において、実施形態は、実装形態ごとに異なり得る数多くの特定の詳細を参照して説明された。上述の実施形態の特定の適応及び変更を行うことができる。本明細書の考慮及び本明細書において開示された本発明の実施から、他の実施形態が当業者に明らかになり得る。明細書及び実施例は例としてのみ考慮されることが意図されており、本発明の真の範囲及び趣旨は添付の請求項によって指示される。また、図に示されるステップの配列は単に例示目的のためのものにすぎず、ステップのいかなる特定の配列にも限定されることを意図されないことも意図される。それゆえ、当業者は、これらのステップは、同じ方法を実施しながらも、異なる順序で遂行され得ることを理解することができる。
【0152】
[00173] 図面及び明細書において、例示的な実施形態が開示された。しかし、これらの実施形態に対して多くの変形及び変更を行うことができる。したがって、特定の用語が採用されていても、これらは単に、一般的な説明の意味で使用されているにすぎず、限定を目的として使用されているものではない。
図1
図2A
図2B
図3A
図3B
図4
図5
図6
図7
図8
図9
図10
図11
図12A
図12B
図12C
図13
図14
図15
図16
図17
図18
図19
図20
【国際調査報告】