(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-09-14
(45)【発行日】2023-09-25
(54)【発明の名称】ピクチャの符号化及び復号のための方法及び装置
(51)【国際特許分類】
H04N 19/126 20140101AFI20230915BHJP
H04N 19/11 20140101ALI20230915BHJP
H04N 19/186 20140101ALI20230915BHJP
H04N 19/176 20140101ALI20230915BHJP
【FI】
H04N19/126
H04N19/11
H04N19/186
H04N19/176
(21)【出願番号】P 2021539373
(86)(22)【出願日】2020-02-25
(86)【国際出願番号】 US2020019626
(87)【国際公開番号】W WO2020176459
(87)【国際公開日】2020-09-03
【審査請求日】2022-03-02
(32)【優先日】2019-02-28
(33)【優先権主張国・地域又は機関】EP
(32)【優先日】2019-03-11
(33)【優先権主張国・地域又は機関】EP
(32)【優先日】2019-03-18
(33)【優先権主張国・地域又は機関】EP
(32)【優先日】2019-03-25
(33)【優先権主張国・地域又は機関】EP
(32)【優先日】2019-04-10
(33)【優先権主張国・地域又は機関】EP
(32)【優先日】2019-05-09
(33)【優先権主張国・地域又は機関】EP
(32)【優先日】2019-05-17
(33)【優先権主張国・地域又は機関】EP
(32)【優先日】2019-05-29
(33)【優先権主張国・地域又は機関】EP
(32)【優先日】2019-07-02
(33)【優先権主張国・地域又は機関】EP
(73)【特許権者】
【識別番号】518338149
【氏名又は名称】インターデジタル ヴイシー ホールディングス, インコーポレイテッド
(74)【代理人】
【識別番号】100079108
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【氏名又は名称】内藤 和彦
(74)【代理人】
【識別番号】100108213
【氏名又は名称】阿部 豊隆
(72)【発明者】
【氏名】フランソワ,エドワール
(72)【発明者】
【氏名】ルリアネック,ファブリス
(72)【発明者】
【氏名】ポワリエ,タンギ
【審査官】間宮 嘉誉
(56)【参考文献】
【文献】米国特許出願公開第2018/0176594(US,A1)
【文献】特表2020-502925(JP,A)
【文献】特表2021-513284(JP,A)
【文献】特表2021-518088(JP,A)
【文献】LU, Taoran et al.,CE12: Mapping Functions (Test CE12-1 and CE12-2),JVET-M0427 (version 3),ITU,2019年01月15日,pp.1-15,[online],[retrieved on 2023-04-25],Retrieved from the Internet: <URL: https://jvet-experts.org/doc_end_user/documents/13_Marrakech/wg11/JVET-M0427-v3.zip>,JVET-M0427_CE12-1_CE12-2_v3.docx
【文献】FRANCOIS, Edouard et al.,Chroma Residual Scaling with Separate Luma/Chroma Tree,JVET-N0389 (version 4),ITU,2019年03月23日,pp.1-12,[online],[retrieved on 2023-04-25],Retrieved from the Internet: <URL: https://jvet-experts.org/doc_end_user/documents/14_Geneva/wg11/JVET-N0389-v4.zip>,JVET-N0389r2.docx
(58)【調査した分野】(Int.Cl.,DB名)
H04N 7/12
H04N 19/00-19/98
(57)【特許請求の範囲】
【請求項1】
許可矩形領域のグリッドを形成する非重複矩形領域へと分割されるピクチャのクロマブロックに対するクロマ残差スケーリングツールの使用を制御するための方法であって、前記クロマブロックが単一のクロマ許可矩形領域の中にあり、前記クロマブロックとコロケートす
るルマブロックが前記クロマ許可矩形領域とコロケートする単一のルマ許可矩形領域の中にあるという条件で、
-前記クロマ残差スケーリングツールを有効化すること、及び
-現在のクロマブロックを含む前記許可矩形領域の上部の及び左側の隣接許可矩形領域にそれぞれ属するルマサンプルの下部のライン及び/又は右側のカラムに属する1つ又は複数の再構築済みルマサンプルに基づいて前記クロマ残差スケーリングツールのためのスケール因子を決定すること
を含む、方法。
【請求項2】
前記クロマ残差スケーリングツールが、コロケーテッドクロマブロック及びルマブロックのサイズ及び位置の制約に応じて有効化される、請求項1に記載の方法。
【請求項3】
前記クロマブロックのサイズの前記制約が32x32ピクセルであり、前記クロマブロックとコロケートする少なくとも1つのルマブロックのサイズの前記制約が64x64ピクセルである、請求項2に記載の方法。
【請求項4】
ピクチャのクロマブロックに関して、
-クロマブロック内の所与のサンプル位置の前記ピクチャ内の位置を決定すること、
-前記クロマブロック内の前記位置とコロケートするルマサンプルを含むルマブロックであるコロケーテッドルマブロックを決定すること、
-請求項1乃至3の何れか一項に従ってクロマ残差スケーリングツールの使用を決定すること、
-前記クロマ残差スケーリングツールが有効化される条件で、請求項1に従って決定したスケール因子に従って前記クロマブロックの残差のスケーリングを適用すること、及び
-前記クロマブロックを復号すること
を含む、復号方法。
【請求項5】
ピクチャのクロマブロックに関して、
-クロマブロック内の所与のサンプル位置の前記ピクチャ内の位置を決定すること、
-前記クロマブロック内の前記位置とコロケートするルマサンプルを含むルマブロックであるコロケーテッドルマブロックを決定すること、
-請求項1乃至3の何れか一項に従ってクロマ残差スケーリングツールの使用を決定すること、
-前記クロマ残差スケーリングツールが有効化される条件で、請求項1に従って決定したスケール因子に従って前記クロマブロックの残差のスケーリングを適用すること、及び
-前記クロマブロックを符号化すること
を含む、符号化方法。
【請求項6】
ピクチャのクロマブロックに関して、
-クロマブロック内の所与のサンプル位置の前記ピクチャ内の位置を決定すること、
-前記クロマブロック内の前記位置とコロケートするルマサンプルを含むルマブロックであるコロケーテッドルマブロックを決定すること、
-請求項1乃至3の何れか一項に従ってクロマ残差スケーリングツールの使用を決定すること、
-前記クロマ残差スケーリングツールが有効化される条件で、請求項1に従って決定したスケール因子に従って前記クロマブロックの残差のスケーリングを適用すること、及び
-前記クロマブロックを復号すること
を含む復号方法を行うように構成される1つ又は複数のプロセッサを含む、復号機器。
【請求項7】
ピクチャのクロマブロックに関して、
-クロマブロック内の所与のサンプル位置の前記ピクチャ内の位置を決定すること、
-前記クロマブロック内の前記位置とコロケートするルマサンプルを含むルマブロックであるコロケーテッドルマブロックを決定すること、
-請求項1乃至3の何れか一項に従ってクロマ残差スケーリングツールの使用を決定すること、
-前記クロマ残差スケーリングツールが有効化される条件で、請求項1に従って決定したスケール因子に従って前記クロマブロックの残差のスケーリングを適用すること、及び
-前記クロマブロックを符号化すること
を含む符号化方法を行うように構成される1つ又は複数のプロセッサを含む、符号化機器。
【請求項8】
更に多くのプロセッサのうちの1つによって実行されるとき請求項1乃至
4の何れか一項に記載の方法を実行するための命令を含む、コンピュータプログラム。
【請求項9】
更に多くのプロセッサのうちの1つによって実行されるとき請求項1乃至
4の何れか一項に記載の方法を実行するための命令を含むコンピュータプログラムを含む、非一時的コンピュータ可読媒体。
【請求項10】
更に多くのプロセッサのうちの1つによって実行されるとき請求項5に記載の方法を実行するための命令を含む、コンピュータプログラム。
【請求項11】
更に多くのプロセッサのうちの1つによって実行されるとき請求項5に記載の方法を実行するための命令を含むコンピュータプログラムを含む、非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
1.技術分野
本発明の実施形態の少なくとも1つは一般にピクチャの符号化及び復号のための方法及び装置に関し、より詳細には、独立したルマ及びクロマ分割を伴うピクチャの符号化及び復号のための方法及び装置に関する。
【背景技術】
【0002】
2.背景技術
高い圧縮効率を実現するために、画像及びビデオのコード化方式は通常、予測及び変換を使用してビデオコンテンツ内の空間的及び時間的な冗長性を活用する。概して、フレーム内の又はフレーム間の相関を利用するためにイントラ予測又はインタ予測が使用され、その後、予測誤差又は予測残差として示されることが多い元の画像ブロックと予測画像ブロックとの差が変換され、量子化され、エントロピコード化される。符号化の間、元の画像ブロックがことによると4分木分割を使用してサブブロックへと通常は分割され/分けられる。ビデオを再構築するために、予測、変換、量子化、及びエントロピコード化に対応する逆のプロセスによって圧縮データが復号される。
【発明の概要】
【0003】
3.簡潔な概要
少なくとも1つの実施形態の全般的な側面によれば、
-クロマブロックのサイズに応じて、及びクロマブロックとコロケートする少なくとも1つのルマブロックのサイズに応じてピクチャの前述のクロマブロックに使用するための成分間依存ツールを有効化すること、
-前述の成分間依存ツールの前述の有効化に応じて前述のクロマブロックを復号すること
を含む、ビデオデータを復号するための方法が提示される。
【0004】
少なくとも1つの実施形態の全般的な側面によれば、
-クロマブロックのサイズに応じて、及びクロマブロックとコロケートする少なくとも1つのルマブロックのサイズに応じてピクチャの前述のクロマブロックに使用するための成分間依存ツールを有効化すること、及び
-前述の成分間依存ツールの前述の有効化に応じて前述のクロマブロックを復号すること
を行うように構成される1つ又は複数のプロセッサを含む、ビデオデータを復号するための機器が提示される。
【0005】
少なくとも1つの実施形態の別の全般的な側面によれば、上記の符号化方法に従って生成される信号を含むようにビットストリームがフォーマットされる。
【0006】
少なくとも1つの実施形態の全般的な側面によれば、
-クロマブロックのサイズに応じて、及びクロマブロックとコロケートする少なくとも1つのルマブロックのサイズに応じてピクチャの前述のクロマブロックに使用するための成分間依存ツールを有効化すること、
-前述の成分間依存ツールの前述の有効化に応じて前述のクロマブロックを符号化すること
を含む、ビデオデータを符号化するための方法が提示される。
【0007】
少なくとも1つの実施形態の全般的な側面によれば、
-クロマブロックのサイズに応じて、及びクロマブロックとコロケートする少なくとも1つのルマブロックのサイズに応じてピクチャの前述のクロマブロックに使用するための成分間依存ツールを有効化すること、及び
-前述の成分間依存ツールの前述の有効化に応じて前述のクロマブロックを符号化すること
を行うように構成される1つ又は複数のプロセッサを含む、ビデオデータを符号化するための機器が提示される。
【0008】
少なくとも1つの実施形態の別の全般的な側面によれば、上記の符号化方法に従って生成される信号を含むようにビットストリームがフォーマットされる。
【0009】
別の全般的な側面によれば、ビデオを復号し若しくは符号化するための方法、又はビデオを復号し若しくは符号化するための機器が、クロマブロック内の所与のサンプル位置のピクチャ内の位置を決定すること、クロマブロック内の位置とコロケートするルマサンプルを含むルマブロックであるコロケーテッドルマブロックを決定すること、コロケーテッドルマブロックの隣接ルマサンプルを決定すること、決定した隣接ルマサンプルからルマ値を決定すること、決定したルマ値に基づいてスケール因子を決定すること、及びスケール因子に従ってクロマブロックの残差のスケーリングを適用することを更に含む。
【0010】
本発明の実施形態の1つ又は複数は、上記の方法の何れかの少なくとも一部に従ってビデオデータを符号化し又は復号するための命令を記憶しているコンピュータ可読記憶媒体も提供する。1つ又は複数の実施形態は、上記の符号化方法に従って生成されるビットストリームを記憶しているコンピュータ可読記憶媒体も提供する。1つ又は複数の実施形態は、上記の符号化方法に従って生成されるビットストリームを伝送し又は受信するための方法及び機器も提供する。1つ又は複数の実施形態は、上記の方法の何れかの少なくとも一部を実行するための命令を含むコンピュータプログラム製品も提供する。
【図面の簡単な説明】
【0011】
4.図面の簡潔な概要
【
図2】コード化単位、予測単位、及び変換単位へと分割したコード化ツリー単位を示す。
【
図3】Quad-Tree Plus Binary-Tree(QTBT)を使用してコード化単位へと分割したCTUを示す。
【
図4】Quad-Tree Plus Binary-Tree(QTBT)を使用してコード化単位へと分割したCTUを示す。
【
図5】Quad-Tree plus Binary-Treeコード化ツールによって定められるコード化単位の分割モードを示す。
【
図6】コード化単位の更なる分割モード、例えば非対称2元分割モード及び3分木分割モードを示す。
【
図7】一実施形態による成分間依存コード化ツールを有効化又は無効化するための方法の流れ図を示す。
【
図8A】
図7の実施形態による成分間依存コード化ツールを有効化/無効化する原理を示す。
【
図8B】
図7の実施形態による成分間依存コード化ツールを有効化/無効化する原理を示す。
【
図8C】
図7の実施形態による成分間依存コード化ツールを有効化/無効化する原理を示す。
【
図8D】
図7の実施形態による成分間依存コード化ツールを有効化/無効化する原理を示す。
【
図9】一実施形態による成分間依存コード化ツールを有効化又は無効化するための方法の流れ図を示す。
【
図10】一例によるクロマブロック及びそのコロケーテッドルマブロックを示す。
【
図11】
図9の実施形態による成分間依存コード化ツールを有効化/無効化する原理を示す。
【
図11A】CCLMプロセスの活性化の単純化したブロック図を示す。
【
図11B】履歴一覧からのインデックス選択プロセスの一例の単純化したブロック図を示す。
【
図11C】サイズ32x32のルマARA及びサイズ16x16のクロマARAを検討するプロセスを示す。
【
図11D】例えばサイズ32x32のルマARA及びサイズ16x16のクロマARAを検討し、サイズ64x64の正方形のルマブロックが分割されていない場合、(4:2:0フォーマットにあるサイズ32x32の)対応するクロマブロックはことによると更に分割可能な(図中の点線)又は全く分割することができない4つの16x16のブロックにのみQT分割によって分割することができる。それらの制約に従う事例を示す。
【
図11E】例えばサイズ32x32のルマARA及びサイズ16x16のクロマARAを検討し、サイズ64x64の正方形のルマブロックが4つの32x32のブロックに分割される場合、(4:2:0フォーマットにあるサイズ32x32の)対応するクロマブロックはことによると更に分割可能な(図中の点線)又は全く分割することができない4つの16x16のブロックにのみQT分割によって分割することができる。それらの制約に従う事例を示す。
【
図11F】例えばサイズ32x32のルマARA及びサイズ16x16のクロマARAを検討し、サイズ64x64の正方形のルマブロックが32ライン及び64カラムの2つのブロックに分割される場合、(4:2:0フォーマットにあるサイズ32x32の)対応するクロマブロックは水平BT分割によって16ライン及び32カラムの2つのブロックに、又はQT分割によって4つの16x16のブロックにのみ分割することができる。それらの制約に従う事例を示す。
【
図11G】例えばサイズ32x32のルマARA及びサイズ16x16のクロマARAを検討し、サイズ64x64の正方形のルマブロックが64ライン及び32カラムの2つのブロックに分割される場合、対応するクロマブロックは32ライン及び16カラムの2つのブロックにのみ分割することができる。それらの制約に従う事例を示す。
【
図12】一実施形態による成分間依存コード化ツールを有効化又は無効化するための方法の流れ図を示す。
【
図13】
図12の実施形態による成分間依存コード化ツールを有効化/無効化する原理を示す。
【
図14】
図12の実施形態による成分間依存コード化ツールを有効化/無効化する原理を示す。
【
図15】一実施形態による成分間依存コード化ツールを有効化又は無効化するための方法の流れ図を示す。
【
図16】
図15の実施形態による成分間依存コード化ツールを有効化/無効化する原理を示す。
【
図17】一実施形態による、クロマブロックに関するスケール因子又はスケール因子インデックスを得るための方法の流れ図を示す。
【
図18】現在のクロマブロック及び幾つかの隣接クロマブロックを示す。
【
図19】一実施形態による成分間依存コード化ツールを有効化/無効化する原理を示す。
【
図20】一実施形態による成分間依存コード化ツールを有効化/無効化する原理を示す。
【
図21】一実施形態による成分間依存コード化ツールを有効化/無効化する原理を示す。
【
図22】一実施形態による、クロマ残差スケーリングにおいて使用されるスケール因子を決定するための方法の流れ図を示す。
【
図23A】クロマブロック及びコロケーテッドルマブロックを示す。
【
図23B】クロマブロック及びコロケーテッドルマブロックを示す。
【
図23C】クロマブロック及びコロケーテッドルマブロックを示す。
【
図23D】クロマブロック及びコロケーテッドルマブロックを示す。
【
図24A】左上の隣接ルマサンプルと隣接クロマサンプルとの間の距離の一例を示す。
【
図24B】左上の隣接ルマサンプルと隣接クロマサンプルとの間の距離の一例を示す。
【
図25】自らのコロケーテッドクロマサンプルに基づいて、及び現在のブロックのクロマサンプルに基づいてルマサンプルの可用性を検査するための方法の流れ図を示す。
【
図26】一実施形態によるビデオ符号器のブロック図を示す。
【
図27】一実施形態によるビデオ復号器のブロック図を示す。
【
図28】様々な態様及び実施形態が実装されるシステムの一例のブロック図を示す。
【発明を実施するための形態】
【0012】
5.詳細な説明
HEVCのコード化では、構成可能なサイズ、典型的には64x64、128x128、又は256x256を有する正方形のCTUへとピクチャが分割される。
図1に示すように、CTUは等サイズの、即ち親ブロックの幅及び高さの半分のサイズの4つの正方形のコード化単位(CU)への4分木分割の根である。4分木は親ノードを4つの子ノードに分割できるツリーであり、子ノードのそれぞれは4つの子ノードへの別の分割の親ノードになり得る。HEVCではコード化ブロック(CB)が1つ又は複数の予測ブロック(PB)へと分割され、変換ブロック(TB)への4分木分割の根を形成する。
図2に示すように、コード化ブロック、予測ブロック、及び変換ブロックに対応して、コード化単位(CU)は予測単位(PU)及び1組の木構造の変換単位(TU)を含み、PUは全ての色成分に関する予測情報(例えばイントラ又はインタ予測パラメータ)を含み、TUは色成分ごとの残差コード化構文構造を含む。イントラ又はインタコード化モードがCUに指定される。ルマ成分のCB、PB、及びTBのサイズは対応するCU、PU、及びTUに当てはまる。
【0013】
より最近の符号化システムでは、CTUはコード化単位(CU)へのコード化ツリー分割の根である。コード化ツリーは、(通常はブロックに対応する)親ノードを子ノードに(例えば2個、3個、又は4つの子ノードに)分割することができるツリーであり、子ノードのそれぞれは子ノードへの別の分割の親ノードになり得る。4分木分割モードに加えて、可能な分割モードの総数を増やす新たな分割モード(2分木対称分割モード、2分木非対称分割モード、及び3分木分割モード)も定められる。コード化ツリーは固有の根ノード、例えばCTUを有する。コード化ツリーの葉はツリーの終端ノードである。コード化ツリーの各ノードは、サブブロックとも命名されるより小さいブロックへと更に分割され得るブロックを表す。CUへのCTUの分割が決定されると、コード化ツリーの葉に対応するCUが符号化される。CUへのCTUの分割及び(コード化ツリーの葉に対応する)各CUを符号化するために使用されるコード化パラメータはレート歪み最適化手続きによって符号器側で決定され得る。
【0014】
図3は、4分木分割モード及び対称2分木分割モードの両方に従ってコード化単位を分けることができるCUへのCTUの分割を表す。この種の分割はQTBT(Quad-Tree plus Binary-Tree)として知られている。対称2分木分割モードは、等サイズの2つのコード化単位へとCUを水平に又は垂直に分割できるようにするために定められる。
図3では実線が4分木分割を示し、点線が対称CUへのCUの2分木分割を示す。
図4は関連するコード化ツリーを表す。
図4では実線が4分木分割を表し、点線が4分木の葉の中に空間的に埋め込まれる2元分割を表す。
図5は、
図3で使用される4つの分割モードを示す。NO_SPLITモードはCUをそれ以上分けないことを示す。QT_SPLITモードはCUが4分木に従って4象限に分けられることを示し、象限が2本の分割線によって分けられている。HORモードは、CUが1本の分割線によって分けられる等サイズの2つのCUへと水平に分けられることを示す。VERは、CUが1本の分割線によって分けられる等サイズの2つのCUへと垂直に分けられることを示す。
図5では分割線を破線によって表している。
【0015】
QTBT分割では、CUが正方形又は矩形の形状を有する。コード化単位のサイズは2のべき乗であり、典型的には両方向(水平及び垂直)に4から128に及ぶ。QTBTはHEVCの分割と幾つかの違いを有する。第1に、CTUのQTBT分割は2つの段階で構成される。CTUはまず4分木式に分割される。次いで4分木のそれぞれの葉を2分木式に更に分割することができる。
図3の右側にこれを示しており、
図3では実線が4分木分解の段階を示し、点線が4分木の葉の中に空間的に埋め込まれる2元分解を表す。
【0016】
第2に、とりわけスライス内でルマ及びクロマブロックの分割構造を分け、独立に決定することができる。
【0017】
更なる分割の種類も使用することができる。
図6に示すように、非対称2分木(ABT)分割モードは、それぞれの矩形サイズ(w,h/4)及び(w,3h/4)を有する2つのコード化単位へとCUを水平に分けることを可能にするために、又はそれぞれの矩形サイズ(w/4,h)及び(3w/4,h)を有する2つのコード化単位へとCUを垂直に分けることを可能にするために定められる。2つのコード化単位は、
図6の破線によって表す1本の分割線によって分けられる。
【0018】
図6は、垂直方向及び水平方向の両方に1つのコード化単位を3つのコード化単位へと分ける3分木分割モードも示す。水平方向では、それぞれのサイズ(w,h/4)、(w,h/2)、及び(w,h/4)の3つのコード化単位へとCUを分ける。垂直方向では、それぞれのサイズ(w/4,h)、(w/2,h)、及び(w/4,h)の3つのコード化単位へとCUを分ける。
【0019】
コード化単位の分割はレート歪み最適化によって符号器側で決定され、レート歪み最適化は最小限のレート歪みコストを有するCTUの表現を決定することを含む。
【0020】
本願では「ブロック」又は「ピクチャブロック」という用語はCTU、CU、PU、TU、CB、PB、及びTBの何れか1つを指すために使用され得る。加えて「ブロック」又は「ピクチャブロック」という用語は、H.264/AVC又は他のビデオコード化規格内で規定されるマクロブロック、パーティション、及びサブブロックを指すために、より広くは様々なサイズのサンプルのアレイを指すために使用され得る。
【0021】
本願では「再構築する」という用語と「復号する」という用語を区別なく使用する場合があり、「ピクセル」という用語と「サンプル」という用語を区別なく使用する場合があり、「画像」、「スライス」、「タイル」、「ピクチャ」、及び「フレーム」という用語を区別なく使用する場合がある。必ずではないが通常、「再構築する」という用語は符号器側で使用されるのに対し「復号する」は復号器側で使用される。
【0022】
これらの新たなトポロジを使用することはコード化の効率を著しく改善できるようにする。具体的には、クロマ成分に関して大幅な利得が得られる。この利得はルマ及びクロマコード化ツリー(又は分割)の分離/独立性から生じる。
【0023】
しかし、CTUレベルでのルマ及びクロマコード化ツリーのこの分離はハードウェア実装に関して幾らかの問題を有する。CTUのサイズは典型的には128x128又は256x256である。ルマ及びクロマ成分のコード化ツリーを完全に分けることはそれらのルマ及びクロマが圧縮領域内でも完全に分けられ、従ってコード化ビットストリーム内でも別様に現れることを含意する。このことは、CTUのサイズよりも小さい可能性がある最大復号単位サイズに基づいて復号パイプラインを実現できることを確実にしたい復号器の実装で幾らかの問題を引き起こす。典型的には、一部の復号器の実装では64x64ベースの復号器のパイプラインが望ましい。それを行うために、Versatile Video Coding Test Modelにおいて64x64に等しい最大変換ブロックサイズが選ばれている。
【0024】
別個のルマ/クロマコード化ツリーの使用をクロマ及びそのコロケーテッドルマサンプル間の相互依存性を伴うコード化ツール(例えばルマ依存クロマ残差スケーリング)と組み合わせることは問題をはらむ可能性がある。実際、クロマブロックを処理するために、検討するクロマブロックとコロケートするルマブロックのルマサンプルをクロマブロックよりも前に処理する必要がある。ルマブロックが大きいサイズのものである場合、そのことはクロマブロックを処理できるようになる前に大きな構造上のパイプライン遅延を発生させる場合がある。
【0025】
少なくとも1つの実施形態は、クロマコード化ブロックとコロケートする少なくとも1つのルマコード化ブロックのサイズに応じて、別個のルマ/クロマコード化ツリーとクロマ及びそのコロケーテッドルマサンプル間の相互依存性を伴うコード化ツール(例えばクロマ残差スケーリング、CCLMとして知られている成分間線形モデル)とを組み合わせて使用することに対して制約を適用する。
【0026】
少なくとも1つの実施形態は、クロマコード化ブロックのサイズ(又は水平/垂直の寸法)に応じて、及び検討するクロマコード化ブロックのサンプルとコロケートするルマコード化ブロックのサイズ(又は水平/垂直の寸法)に応じて成分相互依存コード化ツール(例えばクロマコード化ブロックのためのルマ依存クロマ残差スケーリング)を有効化又は無効化する。
【0027】
少なくとも1つの実施形態は、別個のルマ/クロマコード化ツリーとクロマ残差スケーリングとを組み合わせて使用することに対する上述の制約によってクロマ残差スケーリングが無効化される場合にクロマブロックに対する解決策を提供する。
【0028】
ルマ依存クロマ残差スケーリングは、クロマ及びそのコロケーテッドルマサンプル間の相互依存性を伴うコード化ツールの一例である。ルマ依存クロマ残差スケーリングはLuらの「CE12: Mapping functions (test CE12-1 and CE12-2)」と題されたJVET-M0427内で開示されている。ルマ依存クロマ残差スケーリングは、ルマ値によってインデックス付けされるスケーリング又は逆スケーリングテーブルを使用することを含む。このテーブルはストリーム内で明示的にシグナリングされ、又はストリーム内にコード化されるテーブルから推論される。
【0029】
符号器側ではこのプロセスは以下のように機能する。クロマブロックを符号化するとき、コロケーテッドルマブロックを表すルマ値を計算する。これは典型的には、検討するクロマブロックとコロケートするルマ予測(又は再構築)ブロック内のルマサンプルの平均である。計算したルマ値から、スケール値をスケールテーブルから獲得する。スケール値は、クロマ残差信号に変換を、次いで量子化を適用する前に、クロマ予測の残差に対する乗法因子として適用される。
【0030】
復号器側ではこのプロセスは以下のように機能する。クロマブロックを復号するとき、検討中のクロマブロックとコロケートするルマブロックを表すルマ値を計算する。これは典型的には、検討するクロマブロックとコロケートするルマ予測(又は再構築)ブロック内のルマサンプルの平均である。計算したルマ値から、ストリーム内でシグナリングされ又はストリーム内でシグナリングされるデータから推論される逆スケーリングテーブルから逆スケール値を獲得する。逆スケール値は、逆量子化、次いで逆変換を適用した後にクロマ予測の残差に適用される。
【0031】
JVET-M0427は、ルマ/クロマの別個のコード化ツリーを使用する場合にクロマ残差スケーリングを無効化することを提案する。この解決策はクロマ成分に対するコード化損失を発生させる。
【0032】
様々な実施形態において、別個のルマ/クロマツリー分割が有効化され、即ちルマ及びクロマの分割を独立に実現することができる。提案する実施形態は、とりわけクロマ成分に関してコード化効率を改善する。以下、クロマフォーマットを4:2:0だと考え、即ちクロマ成分の寸法はルマ成分の寸法の半分である。但し、本発明の実施形態はこの特定のクロマフォーマットに限定されないことが理解されよう。ルマの寸法とクロマの寸法との間の比率を修正することによって他のクロマフォーマットを使用することができる。
【0033】
単純にそして読み易くするために、例えば4:2:0のクロマフォーマットの場合のように、たとえ実際の解像度が異なっても以下の図面ではルマ成分及びクロマ成分に関して同じ解像度を示す。かかる事例では単純なスケーリングをクロマピクチャに適用すべきである。
【0034】
別個のルマ/クロマツリー分割が有効化される場合、所与のコード化クロマブロックに対するルマ依存クロマ残差スケーリングの使用を制約する最大水平/垂直寸法Wmax/Hmaxが指定される。ピクチャは、ルマではWmax/Hmaxのサイズの、クロマではWmaxC/HmaxCのサイズの非重複矩形領域に分けられ(典型的にはルマではWmax=Hmax=32であり、又はクロマではWmaxC=HmaxC=16である)、それらの領域を以下「許可矩形領域」(ARA:authorized rectangular area)と名付ける。複数の異形の実施形態では、ARAのグリッドに関係するクロマブロック及びクロマブロックとコロケートするルマブロックの位置及びサイズに対してルマ依存クロマ残差スケーリング(以下LDCRSと示す)の活性化を条件付けする。
【0035】
様々な実施形態は、検討するクロマブロックとコロケートするルマブロックに言及する。クロマブロックとコロケートするルマブロックは下記の通り定義することができる:
-ルマブロックが以下のようなクロマブロック内の所与の位置とコロケートするピクセルを含む
〇例えばクロマブロック内の相対位置((x0+Wc)/2, (y0+Hc)/2)として定められるクロマブロックの中心であって、(x0, y0)はクロマブロックの左上サンプルのクロマピクチャ内の相対位置に対応し、(Wc, Hc)はクロマブロックの水平/垂直寸法である、クロマブロックの中心、
〇クロマピクチャ内の相対位置(x0, y0)として定められるクロマブロック内の左上の位置、
〇クロマピクチャ内の相対位置(x0+Wc-1, y0+Hc-1)として定められるクロマブロック内の右下の位置、
〇クロマピクチャ内の相対位置(x0+Wc-1, y0)として定められるクロマブロック内の右上の位置、
〇クロマピクチャ内の相対位置(x0, y0+Hc-1)として定められるクロマブロック内の左下の位置、
〇上述したようなクロマブロック内の幾つかの所与の位置とコロケートするルマブロックであって、例えば左上、右上、左下、右下という4つのクロマブロック位置とコロケートするルマブロックを検討する(
図10参照)、又は
〇検討するクロマブロックの全てのクロマサンプル位置とコロケートするルマブロック。
【0036】
実施形態1-クロマブロックがARAの境界を横断する場合に無効化されるLDCRS
少なくとも1つの実施形態では、検討するクロマブロックが単一のクロマARA内に完全に含まれない場合はLDCRSが無効化される。これは以下の等式に対応する:
((x0/WmaxC) !=((x0+Wc-1)/WmaxC))||((y0/HmaxC) !=((y0+Hc-1)/HmaxC))が成立する場合はLDCRSを無効化し、
但し、x||yはx及びyのブール論理「or」であり、「!=」は「不等」を意味する。
【0037】
このプロセスの単純化したブロック図を
図7に示す。ステップ300は、クロマブロックが単一のクロマARA内にあるかどうかを確認する。この条件が真である場合はLDCRSを有効化する(ステップ303)。この条件が偽である場合はLDCRSを無効化する(ステップ302)。
【0038】
図8A、
図8B、
図8C、
図8Dはクロマ分割の一部の事例を示し、灰色のブロックはLDCRSが有効化されたクロマブロックに対応し、白色のブロックはLDCRSが無効化されたクロマブロックに対応する。クロマブロックの輪郭を太い黒線によって示している。WmaxC及びHmaxCによって画定するグリッドを破線で示している。
【0039】
-
図8Aでは2つのクロマブロックが幾つかのARAを横断し、本発明の実施形態によればLDCRSが両方のクロマブロックについて無効化される。
-
図8Bでは2つのクロマブロックが1つのクロマARA内にあり、本発明の実施形態によればLDCRSが両方のクロマブロックについて有効化される。
-
図8Cでは1つの矩形の垂直のクロマブロックが2つのクロマARAを横断し、本発明の実施形態によればLDCRSがこのクロマブロックについて無効化される。他の全てのクロマブロックは1つのクロマARA内にあり、従ってそれらのクロマブロックではLDCRSを有効化することができる。
-
図8Dでは1つの水平のクロマブロックが2つのクロマARAを横断し、本発明の実施形態によればLDCRSがこのクロマブロックについて無効化される。他の全てのクロマブロックは1つのクロマARA内にあり、従ってそれらのクロマブロックではLDCRSを有効化することができる。
【0040】
実施形態2-クロマブロックがクロマARAの境界を横断する場合、又はコロケーテッドルマブロックの少なくとも1つがコロケーテッドルマARAの境界を横断する場合に無効化されるLDCRS
一実施形態では、以下の条件の少なくとも1つが真である場合にLDCRSが無効化される:
・検討するクロマブロックが単一のクロマARA内に完全に含まれない
・検討するクロマブロックとコロケートするルマブロックの少なくとも1つがクロマARAとコロケートするルマARA内に完全に含まれない、即ちコロケーテッドルマARAの境界を横断する
【0041】
このプロセスの単純化したブロック図を
図9に示す。ステップ400は、クロマブロックが単一のクロマARA内にあるかどうかを確認する。この条件が偽である場合はLDCRSを無効化する(ステップ401)。この条件が真である場合、検討するクロマブロックとコロケートするルマブロックを識別する(ステップ402)。ステップ403は、全てのコロケーテッドルマブロックがクロマARAとコロケートするルマARA内にあるかどうかを確認する。この条件が偽である場合はLDCRSを無効化する(ステップ404)。この条件が真である場合はLDCRSを有効化する(ステップ405)。
【0042】
図11は、本発明の実施形態の2つの例を示す。図面の上部では、クロマブロックが単一のクロマARA内に含まれ(左上)、3つのコロケーテッドルマブロック(colocルマブロック1、2、及び3、右上)を有する。それらのうちの2つ(破線ブロック内のcolocルマブロック1及び2)がコロケーテッドルマARA内にある一方、第3のもの(colocルマブロック3)はコロケーテッドルマARAの外側にある。この第3のルマブロックはコロケーテッドルマARAの外側にあるので、本発明の実施形態によればLDCRSが無効化される。
【0043】
図面の下部では、クロマブロックが単一のクロマARA内に含まれ、3つのコロケーテッドルマブロック(colocルマブロック1、2、及び3)を有する。それらのうちの3つがコロケーテッドルマARA内にある。本発明の実施形態によればLDCRSが有効化される。
【0044】
図5及び
図6に示すように、現行のVVC仕様は4分木(QT)、2分木(BT、水平又は垂直)、及び3分木(TT、水平又は垂直)という3種類の分割をサポートする。改変形態では、BT分割及びTT分割が所与のARA寸法(例えば4:2:0のクロマフォーマットを検討する場合はルマで32x32、クロマの16x16)から有効化される。この寸法を超えるとQT分割又は分割なしだけが有効化される。従って、ルマARA/クロマARAの寸法よりも大きいブロックの「分割なし」の事例(例えばルマブロックに関して64x64が4つのブロック32x32に分割されない)を除き、実施形態1及び2内で提示される条件が系統的に満たされる。
【0045】
少なくとも1つの実施形態では、BT分割及びTT分割が、32x32以下のルマブロックのサイズ又は16x16以下のクロマブロックのサイズに対してのみ有効化される(4:2:0のクロマフォーマットを使用する場合)。このサイズを超えるとQT分割(又は分割なし)だけが有効化される。制限はモードLDCRS又はモードCCLMに関する。サイズ32x32のルマARA及びサイズ16x16のクロマARAを検討する
図11Cにこのプロセスを示す。ステップ1300で、検討するブロックが64x64以上のサイズのルマブロック又は32x32以上のサイズのクロマブロックかどうかを確認する。この試験が真である場合、ステップ1301が分割なし及びQT分割を有効化しながらBT分割及びTT分割を無効化する。この試験が偽である場合、ステップ1302は分割なし、QT分割、BT分割、及びTT分割を有効化する。
【0046】
少なくとも1つの実施形態では、モードLDCRS又はCCLMの事例でクロマを処理する遅延を減らすために、ルマARAよりも大きい正方形のルマブロックが分割されていない場合、対応するクロマブロックはことによると更に分割可能な又は全く分割することができない4つのブロックにのみQT分割によって分割することができる。例えばサイズ32x32のルマARA及びサイズ16x16のクロマARAを検討し、サイズ64x64の正方形のルマブロックが分割されていない場合、(4:2:0フォーマットにあるサイズ32x32の)対応するクロマブロックはことによると更に分割可能な(図中の点線)又は全く分割することができない4つの16x16のブロックにのみQT分割によって分割することができる。それらの制約に従う事例を
図11Dに示す。
【0047】
少なくとも1つの実施形態では、モードLDCRS又はCCLMの事例でクロマを処理する遅延を減らすために、ルマARAよりも大きい正方形のルマブロックがQT分割によって4つのブロックに分割される場合、対応するクロマブロックはことによると更に分割可能な又は全く分割することができない4つのブロックにのみQT分割によって分割することができる。例えばサイズ32x32のルマARA及びサイズ16x16のクロマARAを検討し、サイズ64x64の正方形のルマブロックが4つの32x32のブロックに分割される場合、(4:2:0フォーマットにあるサイズ32x32の)対応するクロマブロックはことによると更に分割可能な(図中の点線)又は全く分割することができない4つの16x16のブロックにのみQT分割によって分割することができる。それらの制約に従う事例を
図11Eに示す。
【0048】
少なくとも1つの実施形態では、モードLDCRS又はCCLMの事例でクロマを処理する遅延を減らすために、ルマARAよりも大きい正方形のルマブロックが水平BT分割によって2つのブロックに分割される場合、対応するクロマブロックは水平BT分割によって2つのブロックに、又はQT分割によって4つのブロックにのみ分割することができる。例えばサイズ32x32のルマARA及びサイズ16x16のクロマARAを検討し、サイズ64x64の正方形のルマブロックが32ライン及び64カラムの2つのブロックに分割される場合、(4:2:0フォーマットにあるサイズ32x32の)対応するクロマブロックは水平BT分割によって16ライン及び32カラムの2つのブロックに、又はQT分割によって4つの16x16のブロックにのみ分割することができる。それらの制約に従う事例を
図11Fに示す。
【0049】
少なくとも1つの実施形態では、モードLDCRS又はCCLMの事例でクロマを処理する遅延を減らすために、ルマARAよりも大きい正方形のルマブロックが分割されない、又はQT分割によって4つのブロックに分割される、又は水平QT分割によって2つのブロックに分割される場合、対応するクロマブロックは垂直2元分割によって2つのブロックに分割できないが、QT分割によって4つのブロックに分割でき、又は水平BT分割によって2つのブロックに分割でき、又は分割されなくてもよい。
【0050】
少なくとも1つの実施形態では、モードLDCRS又はCCLMの事例でクロマを処理する遅延を減らすために、ルマARAよりも大きい正方形のルマブロックが垂直BT分割によって2つのブロックに分割される場合、対応するクロマブロックは垂直BT分割によって2つのブロックにのみ分割することができる。例えばサイズ32x32のルマARA及びサイズ16x16のクロマARAを検討し、サイズ64x64の正方形のルマブロックが64ライン及び32カラムの2つのブロックに分割される場合、対応するクロマブロックは32ライン及び16カラムの2つのブロックにのみ分割することができる。それらの制約に従う事例を
図11Gに示す。
【0051】
文献JVET-N1001 (version 9 - date 2019-06-25 13:45:21)に記載のVTM5.0構文に基づく構文の例
以下の小さいフォントのテキストは、文献JVET-N1001 version 9内に記載の構文に基づく、上記の実施形態の実装例に対応する構文の一例に対応する。節の番号付けはJVET-N1001 version 9の中で使用されている番号付けに対応する。
【0052】
VDPUよりも大きいブロックについてBT/TT分割が禁止されるバージョン
以下の構文の説明は上記のように分割を制限する実施形態に対応する。VTM5 v9仕様に対する変更を灰色で強調表示してある。
【0053】
6.4.2 許可された2元分割プロセス
このプロセスへの入力は以下の通りである:
-2元分割モードbtSplit、
-ルマサンプル内のコード化ブロックの幅cbWidth、
-ルマサンプル内のコード化ブロックの高さcbHeight、
-ピクチャの左上のルマサンプルに対する、検討するコード化ブロックの左上のルマサンプルの位置(x0, y0)、
-マルチタイプツリー深度mttDepth、
-オフセットを伴う最大マルチタイプツリー深度maxMttDepth、
-最大2分木サイズmaxBtSize、
-パーティションインデックスpartIdx、
-CTUを分割するためにシングルツリー(SINGLE_TREE)又はデュアルツリーが使用されるのか、及びデュアルツリーが使用される場合はルマ(DUAL_TREE_LUMA)又はクロマ成分(DUAL_TREE_CHROMA)が現在処理されているかどうかを指定する変数treeType。
このプロセスの出力は変数allowBtSplitである。
【0054】
【0055】
変数parallelTtSplit及びcbSizeは表6-2の中で規定されている通りに導出される。
【0056】
変数allowBtSplitは以下のように導出される:
-以下の条件の1つ又は複数が真である場合はallowBtSplitを偽に等しく設定する:
-cbSizeがMinBtSizeY以下である
-cbWidthがmaxBtSizeよりも大きい
-cbHeightがmaxBtSizeよりも大きい
-treeTypeがSINGLE_TREEに等しくなく、cbWidthが32よりも大きい
-treeTypeがSINGLE_TREEに等しくなく、cbHeightが32よりも大きい
-mttDepthがmaxMttDepth以上である
-treeTypeがDUAL_TREE_CHROMAに等しく、(cbWidth / SubWidthC)*(cbHeight / SubHeightC)が16以下である[Ed.(SL):「~以下である」はここでは必要か?]
-そうではなく以下の条件の全てが真である場合はallowBtSplitを偽に等しく設定する
...
-さもなければallowBtSplitを真に等しく設定する。
【0057】
6.4.3 許可された3元分割プロセス
このプロセスへの入力は以下の通りである:
-3元分割モードttSplit、
-ルマサンプル内のコード化ブロックの幅cbWidth、
-ルマサンプル内のコード化ブロックの高さcbHeight、
-ピクチャの左上のルマサンプルに対する、検討するコード化ブロックの左上のルマサンプルの位置(x0, y0)、
-マルチタイプツリー深度mttDepth、
-オフセットを伴う最大マルチタイプツリー深度maxMttDepth、
-最大3分木サイズmaxTtSize、
-CTUを分割するためにシングルツリー(SINGLE_TREE)又はデュアルツリーが使用されるのか、及びデュアルツリーが使用される場合はルマ(DUAL_TREE_LUMA)又はクロマ成分(DUAL_TREE_CHROMA)が現在処理されているかどうかを指定する変数treeType。
このプロセスの出力は変数allowTtSplitである。
【0058】
【0059】
変数cbSizeは表6-3の中で規定されている通りに導出される。
【0060】
変数allowTtSplitは以下のように導出される:
-以下の条件の1つ又は複数が真である場合はallowTtSplitを偽に等しく設定する:
-cbSizeが2*MinTtSizeY以下である
-cbWidthがMin(MaxTbSizeY, maxTtSize)よりも大きい
-cbHeightがMin(MaxTbSizeY, maxTtSize)よりも大きい
-treeTypeがSINGLE_TREEに等しくなく、cbWidthが32よりも大きい
-treeTypeがSINGLE_TREEに等しくなく、cbHeightが32よりも大きい
-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以下である
-さもなければallowTtSplitを真に等しく設定する。
【0061】
VDPUがBT又はTTに分割される場合にCCLMが禁止されるバージョン
以下の構文の説明は、CCLM(又はCRS)が有効化されない実施形態に対応する、上記の分割の制限を守らないパーティション。例えばクロマブロックがサイズ32x16のものである場合、又はそのコロケーテッドルマブロックが64x32若しくは32x64のものである場合はCCLMが無効化される。他の事例ではCCLM(又はCRS)が有効化される。VTM5 v9仕様に対する変更を灰色で強調表示してある。
【0062】
1.1.1 クロマイントラ予測モードの導出プロセス
このプロセスへの入力は以下の通りである:
-現在のピクチャの左上のルマサンプルに対する現在のクロマコード化ブロックの左上サンプルを指定するルマ位置(xCb, yCb)、
-ルマサンプル内の現在のコード化ブロックの幅を指定する変数cbWidth、
-ルマサンプル内の現在のコード化ブロックの高さを指定する変数cbHeight。
-CTUを分割するためにシングルツリー(SINGLE_TREE)又はデュアルツリーが使用されるのかを指定する変数treeType。
【0063】
このプロセスでクロマイントラ予測モードIntraPredModeC[xCb][yCb]が導出される。
【0064】
対応するルマイントラ予測モードlumaIntraPredModeが以下のように導出される:
-intra_mip_flag[xCb][yCb]が1に等しい場合、表8-4の中で規定されている通りlumaIntraPredModeがIntraPredModeY[xCb+cbWidth/2][yCb+cbHeight/2]、及びMipSizeId[xCb][yCb]に等しく設定されるsizeIdを使用して導出される。
-さもなければ、lumaIntraPredModeがIntraPredModeY[xCb+cbWidth/2][yCb+cbHeight/2]に等しく設定される。
-従属節x.x.x[Ed.(SL):従属節の番号は未定]の成分間クロマイントラ予測モード検査プロセスを呼び出すことによって変数cclmEnabledが導出される。
【0065】
表8-5及び表8-6の中で規定されている通り、クロマイントラ予測モードIntraPredModeC[xCb][yCb]がintra_chroma_pred_mode[xCb][yCb]及びlumaIntraPredModeを使用して導出される。
【0066】
【0067】
【0068】
chroma_format_idcが2に等しい場合、表8-7の中で規定されている通り、クロマイントラ予測モードYが表8-5及び表8-6の中のクロマイントラ予測モードXを使用して導出され、クロマイントラ予測モードXが後でクロマイントラ予測モードYに等しく設定される。
【0069】
【0070】
x.x.x 成分間クロマイントラ予測モード検査プロセス
このプロセスへの入力は以下の通りである:
-現在のピクチャの左上のルマサンプルに対する現在のクロマコード化ブロックの左上サンプルを指定するルマ位置(xCb, yCb)
-ルマサンプル内の現在のコード化ブロックの幅を指定する変数cbWidth
-ルマサンプル内の現在のコード化ブロックの高さを指定する変数cbHeight
このプロセスへの出力は以下の通りである:
-現在のクロマコード化ブロックに関して成分間クロマイントラ予測モードが有効化されているかどうかを指定するフラグlmEnabled。
このプロセスでは、cclmEnabledが以下のように導出される。
-wColoc及びhColocを(xCB<<1, yCb<<1))によって与えられる位置をカバーするコロケーテッドルマコード化ブロックの幅及び高さに等しく設定する。
-cclmEnabledを1に等しく設定する。
-sps_cclm_enabled_flagが0に等しい場合、cclmEnabledを0に等しく設定する。
-さもなければtreeTypeがSINGLE_TREEに等しい場合、cclmEnabledを1に等しく設定する。
-さもなければ、以下の条件の1つが偽である場合にcclmEnabledを0に等しく設定する。
-cbWidth又はcbHeightが32以上であり、cbWidthがcbHeightに等しくない。
-wColoc又はhColocが64以上であり、wColocがhColocに等しくない。
【0071】
実施形態2a-ルマARAに関して推論有効化フラグ(inferred enabling flag)を使用する改変形態;CCLMへの一般化
上記の概念はCCLM等の他のluma-to-chromaモードにも適用することができる。
【0072】
実施形態2の改変形態では、以下の条件の少なくとも1つが真である場合にCCLM(又はLDCRS)が無効化される:
・検討するクロマブロックが単一のクロマARA内に完全に含まれない。
・クロマARAとコロケートするルマARAがルマARA内に完全に含まれない少なくとも1つのルマブロック、つまりコロケーテッドルマARAの境界を横断する1つのルマブロックを含む。
【0073】
これは各ルマARAに指定される推論フラグを使用することによって実装することができ、かかる推論フラグを以下luma_blocks_inside_flagと名付ける。ルマARAごとに、(符号器内で選択され又は復号器内で構文解析される)ルマ分割木からフラグを推論する。ルマ分割木がCTU(又はVDPU)について生成されると、CTU(又はVDPU)のルマARAごとのフラグが以下のように推論される。所与のルマARAの全てのルマブロックが厳密に含まれる場合、ルマARA、フラグが真に設定される。そうではなく、少なくとも1つのルマブロックがルマARAの境界の1つ又は複数を横断する場合はフラグが偽に設定される。
【0074】
次いでフラグを以下のように使用することができる。(上述の)条件:
・クロマARAとコロケートするルマARAがルマARA内に完全に含まれない少なくとも1つのルマブロック、つまりコロケーテッドルマARAの境界を横断する1つのルマブロックを含む。
以下のように等価に系統立てて表すことができる:
・クロマARAとコロケートするルマARAのフラグluma_blocks_inside_flagが偽である。
【0075】
実施形態2b-クロマブロックが自らのコロケーテッドルマブロック内にある場合に有効化されるLDCRS又はCCLM
別の改変形態では、クロマブロックが自らのコロケーテッドルマブロック内に完全にない場合、ルマ依存モード(LDCRS又はCCLM)が無効化される。
【0076】
これを以下のように表すことができる。LDCRS又はCCLMは以下の条件の1つが偽である場合に無効化される:
・(位置(x0, y0)にあり、サイズ(Wc, Hc)の)クロマブロックの左上サンプルとコロケートするルマブロックが32x32のクロマARA内にある
・xColocY<=2*x0
・xColocY+wColocY-1>=2*(x0+Wc-1)
・yColocY<=2*y0
・yColocY+hColocY-1>=2*(y0+Hc-1)
(xColocY, yColocY)はクロマブロックの左上サンプルとコロケートするルマブロックの左上サンプルの位置であり、(wColocY, hColocY)はこのルマブロックの寸法である。
【0077】
実施形態2c-LDCRS又はCCLMが無効化される場合のフォールバックモードの使用
少なくとも1つの実施形態はCCLMモード(及びその改変形態であるMDLM)に関係する。この実施形態では、従来のCCLMモードとフォールバックCCLMモードとがあると考える。フォールバックCCLMは、本願に記載の制約によって従来のCCLMモードが有効化されない場合に使用することができる。
【0078】
図11Aのブロック図は、CCLMプロセスの活性化の単純化したブロック図を示す。ステップ112で、所与のクロマブロックに対して従来のCCLMモードを活性化するための条件を確認する(かかる条件は本願の様々な実施形態の中で記載している)。所与のクロマブロックについて全ての有効化条件が満たされる場合、従来のCCLMモードが有効化され、符号器/復号器によって使用され得る(113)。所与のクロマブロックについて有効化条件の1つが満たされない場合、従来のCCLMモードが無効化され、フォールバックCCLMモードが有効化され、符号器/復号器によって使用され得る(114)。
【0079】
少なくとも1つの実施形態では、従来のCCLMモードは、検討するクロマブロックの近隣のルマ及びクロマサンプル(例えばクロマブロックの上部の1つ又は複数のラインに属するクロマサンプル及びそのコロケーテッドルマサンプル、及び/又はクロマブロックの左側の1つ若しくは2つのカラムに属するクロマサンプル及びそのコロケーテッドルマサンプル)からCCLMパラメータが導出されるモードに対応する。
【0080】
可能なフォールバックCCLMモード
少なくとも1つの実施形態では、フォールバックCCLMモードが現在のCTUに隣接するクロマ及びルマサンプルから導出されるCCLMパラメータを使用する。例えばCTUの上部の1つ若しくは2つのライン、及び/又はCTUの左側の1つ若しくは2つのカラムが使用される。
【0081】
少なくとも1つの実施形態では、フォールバックCCLMモードが現在のVDPUに隣接するクロマ及びルマサンプルから導出されるCCLMパラメータを使用する。例えばVDPUの上部の1つ若しくは2つのライン、及び/又はVDPUの左側の1つ若しくは2つのカラムが使用される。
【0082】
少なくとも1つの実施形態では、フォールバックCCLMモードが、現在の16x16のクロマARA及びその対応する32x32のルマARAに隣接するクロマ及びルマサンプルから導出されるCCLMパラメータを使用する。例えば現在の16x16のクロマARA及びその対応する32x32のルマARAの上部の1つ若しくは2つのライン、及び/又は現在の16x16のクロマARA及びその対応する32x32のルマARAの左側の1つ若しくは2つのカラムが使用される。
【0083】
少なくとも1つの実施形態では、フォールバックCCLMモードが、クロマブロックの左上サンプルとコロケートするルマブロックに隣接するルマサンプルから、及びそれらのルマサンプルとコロケートするクロマサンプルから導出されるCCLMパラメータを使用する。
【0084】
少なくとも1つの実施形態では、フォールバックCCLMモードが前回使用されたCCLMパラメータを使用する。
【0085】
CCLMパラメータの履歴一覧の使用
少なくとも1つの実施形態では、フォールバックCCLMモードが符号器及び復号器において構築されるCCLMパラメータの履歴一覧からのCCLMパラメータを使用する。履歴一覧について最大サイズNhが指定される。履歴一覧は前回使用されたCCLMパラメータでデータ投入される。クロマブロックがCCLMモードを使用する場合、そのCCLMパラメータが履歴一覧に追加される。履歴一覧が既に満杯である場合、最も古いCCLMパラメータを除去し、新たなものを履歴一覧内に挿入する。
・或る改変形態では、新たなCCLMパラメータが履歴一覧内に既に存在するCCLMパラメータと異なる場合にのみその新たなCCLMパラメータを履歴一覧に追加する。
・或る改変形態では、クロマブロックがフォールバックCCLMモードを使用してコード化される場合、CCLMパラメータの履歴一覧からのCCLMパラメータのインデックスをクロマブロックのためにコード化する。
・或る改変形態では、クロマブロック内の又はクロマブロックを取り囲むルマ及び/又はクロマサンプルの類似性検査に基づいて履歴一覧からのCCLMパラメータのインデックスを推論し、ルマ及び/又はクロマサンプルは一覧のCCLMパラメータを計算するために使用されている。
【0086】
後者の改変形態の1つの可能な実装は次の通りである。CCLMパラメータが履歴一覧内に挿入される場合、パラメータを導出するために使用されるルマサンプルの平均値を計算して一覧内に記憶する。それをavg_Ref_Y[idx]で示し、idxはCCLMパラメータの履歴一覧内のインデックスである(idx=0からNh-1であり、Nhは履歴一覧のサイズである)。
【0087】
CCLMモードがクロマブロックに使用される場合、クロマブロックに隣接するルマサンプル(利用可能なルマサンプルだけを検討する)の平均値を計算する。それをavg_Cur_Yで示す。
【0088】
一覧内のCCLMパラメータインデックスidx0、クロマブロックのCCLM予測を実行したに使用されるのを、avg_Ref_Y[i]とavg_Cur_Yとの差の絶対値を最小化するインデックスとして識別する:
idx0=argmin(|avg_Cur_Y-avg_Ref_Y[idx]|)
【0089】
類似性メトリクは或いはクロマサンプルに基づくことができる。CCLMパラメータが履歴一覧内に挿入される場合、パラメータを導出するために使用されるクロマサンプルの平均値を計算して一覧内に記憶する。それをavg_Ref_Cb[idx]、avg_Ref_Cr[idx]で示す。
【0090】
CCLMモードがクロマブロックに使用される場合、クロマブロックに隣接するクロマサンプルの平均値を計算する。それをavg_Cur_Cb及びavg_Cur_Crで示す。
【0091】
一覧内のCCLMパラメータインデックスidx0、クロマブロックのCCLM予測を実行したに使用されるを、avg_Ref_Cb[idx]、avg_Ref_Cr[idx]とavg_Cur_Cb、avg_Cur_Crとの差の絶対値を最小化するインデックスとして識別する:
idx0=argmin(|avg_Cur_Cb-avg_Ref_Cb[idx]|+|avg_Cur_Cr-avg_Ref_Cr[idx]|)
【0092】
図11Bは、履歴一覧からのインデックス選択プロセスの一例の単純化したブロック図を示す。このプロセスの入力は、検討するクロマブロックに隣接するルマ及び/又はクロマサンプル並びに履歴一覧である。履歴一覧は、CCLMパラメータ及びCCLMパラメータを導出するために使用されるルマ又はクロマサンプルに関係する参照値(例えばavg_Ref_Y[i]、avg_Ref_Cb[i]、avg_Ref_Cr[i])をインデックスiごとに含む。ステップ1200で、クロマブロックに隣接する隣接ルマ又はクロマサンプルからローカル値を計算する(例えばavg_Cur_Y、avg_Cur_Cb、avg_Cur_Cr)。ステップ1201で、パラメータdistMinを大きい値に設定する。ステップ1202で、インデックス=0からNh-1にわたるループ。ステップ1203で、ステップ1200で計算したローカル値とインデックスiの参照値との間の歪み「dist」。ステップ1204は、distがminDist未満かどうかを確認する。これが真である場合、ステップ1205でidx0及びminDistの値を更新し、このプロセスはステップ1206に進む。そうではない(distがminDist未満ではない)場合、このプロセスはステップ1206に進む。ステップ1206は、履歴一覧インデックスにわたるループの終わりが完了しているかどうかを確認する。完了している場合はidx0が出力インデックス値である。完了していない場合、次のインデックスを検査するためにこのプロセスはステップ1202に戻る。
【0093】
実施形態3-クロマブロックがARAの境界を横断しない場合、及びコロケーテッドルマブロックの少なくとも1つがコロケーテッドルマARAの境界を横断しない場合に有効化されるLDCRS
一実施形態では、以下の全ての条件の真である場合はLDCRSが有効化される:
・検討するクロマブロックが単一のクロマARA内に完全に含まれる
・検討するクロマブロックとコロケートするルマブロックの少なくとも1つが、クロマARAとコロケートするルマARA内に完全に含まれる。以下、かかるルマブロックを「コロケーテッド有効化ルマブロック」と名付ける。
【0094】
このプロセスの単純化したブロック図を
図12に示す。ステップ500は、クロマブロックが単一のクロマARA内にあるかどうかを確認する。この条件が偽である場合はLDCRSを無効化する(ステップ501)。この条件が真である場合、検討するクロマブロックとコロケートするルマブロックを識別する(ステップ502)。ステップ503は、コロケーテッドルマブロックの少なくとも1つがクロマARAとコロケートするルマARA内にあるかどうかを確認する。この条件が偽である場合はLDCRSを無効化する(ステップ504)。この条件が真である場合はLDCRSを有効化する(ステップ505)。
【0095】
(
図11の上部の図と同じ分割を示す)
図13を参照し、クロマブロックが単一のクロマARA内にあり、コロケーテッドルマブロック1及び2がコロケーテッドルマARA内にある、即ち検討するクロマブロックとコロケートするルマブロックの少なくとも1つがクロマARAとコロケートするルマARA内に完全に含まれるので、LDCRSが有効化される。
【0096】
図14を参照し、クロマブロックが2つのクロマARA(第1のクロマARA及び第2のクロマARA)をカバーするので、たとえそのコロケーテッドルマブロックの2つ(colocルマブロック1及び2)が第1のクロマARAとコロケートするルマARA内にあってもLDCRSが無効化される。
【0097】
実施形態4-コロケーテッドルマブロックの少なくとも1つがコロケーテッドルマARAの境界を横断しない場合に有効化されるLDCRS
一実施形態では、検討するクロマブロックが単一のクロマARA内に完全に含まれなくても、検討するクロマブロックとコロケートするルマブロックの少なくとも1つが、検討するクロマブロックの第1のクロマARAとコロケートするルマARA内に完全に含まれる場合はLDCRSを有効化することができる。この実施形態では、検討するクロマブロックが単一のクロマARAよりも大きい場合がある。
【0098】
このプロセスの単純化したブロック図を
図15に示す。検討するクロマブロックとコロケートするルマブロックを識別する(ステップ600)。ステップ601は、コロケーテッドルマブロックの少なくとも1つが第1のクロマARAとコロケートするルマARA内にあるかどうかを確認する。この条件が偽である場合はLDCRSを無効化する(ステップ602)。この条件が真である場合はLDCRSを有効化する(ステップ603)。
【0099】
図16は、
図14と同じ分割を示す。たとえクロマブロックが2つのクロマARA(第1の及び第2のクロマARA)をカバーしても、そのコロケーテッドルマブロックの一部(ブロック1及び2)がクロマブロックの第1のクロマARAとコロケートするルマARA内にあるのでLDCRSが有効化される。
【0100】
この実施形態の改変形態では、LDCRSが有効化され、クロマブロックに対して活性化される場合、クロマ残差をスケーリングするために使用されるスケール因子はコロケーテッド有効化ルマブロックに属するルマサンプルからのみ導出される。全てのクロマサンプルは、コロケーテッドルマサンプルの一部だけから導出される同じスケール因子を使用する。
【0101】
例えば
図16の事例を検討し、colocルマブロック1及び2からのルマサンプルの平均を計算する。この平均ルマ値を使用して、全体のクロマブロックの残差に適用されるスケール因子を識別する。従ってルマブロック3のルマサンプルは使用しない。
【0102】
実施形態5:LDCRSが無効化されたクロマブロックに関するスケール因子のシグナリング
一実施形態では、ルマベースのクロマ残差スケーリングの利益をクロマブロックが享受しない場合、クロマスケール因子がビットストリーム内でシグナリングされる。クロマブロックが幾つかの変換単位で作られる場合、クロマスケール因子は各TUの残差に適用される。
【0103】
このプロセスの単純化したブロック図を
図17に示す。ステップ700は、検討するクロマブロックについてLDCRSが有効化されるかどうかを確認する。この条件が偽である場合、スケール因子又はスケール因子インデックスをコード化/復号する(ステップ701)。この条件が真である場合、スケール因子又はスケール因子インデックスをコロケーテッドルマブロックから導出する(ステップ702)。
【0104】
一実施形態では、クロマスケール因子のインデックスがシグナリングされる。一実施形態では、過去にコード化/復号された1つ又は幾つかの隣接クロマブロックのスケール因子又はスケール因子インデックスからスケール因子又はスケール因子のインデックスが予測される。例えば
図18に示すように、ブロックA、ブロックAが利用できない場合はブロックB、ブロックA及びブロックBが利用できない場合はブロックC、ブロックA及びブロックB及びブロックCが利用できない場合はブロックDを含むクロマブロックからのスケール因子又はスケール因子インデックスが予測因子として使用される。さもなければ、スケール因子又はスケール因子インデックスが予測されない。
【0105】
改変形態では、既に処理されている隣接クロマブロックを使用し、スケール因子が予測プロセスによって推論される。追加のシグナリングは使用されず、推論されるスケール値だけが検討するクロマブロックに使用される。
【0106】
実施形態6:LDCRSが無効化されたクロマブロックに関するデルタQPシグナリング
一実施形態では、ルマベースのクロマ残差スケーリングの利益をクロマブロックが享受しない場合、ビットストリーム内でシグナリングされるデルタQPパラメータがそのクロマブロックに使用され得る。クロマブロックが幾つかの変換単位で作られる場合、デルタQPパラメータは各TUの残差に適用される。
【0107】
一実施形態では、デルタQPパラメータがクロマブロックのためにシグナリングされる。
【0108】
一実施形態では、デルタQPパラメータがクロマブロックを含む量子化グループのためにシグナリングされる。
【0109】
一実施形態では、デルタQPパラメータがクロマブロックを含むCTUのためにシグナリングされる。
【0110】
一実施形態では、過去にコード化/復号された1つ又は幾つかの隣接クロマブロックからのQP値又はスケール因子に基づいてクロマQPパラメータが予測される。例えば
図18に示すように、ブロックA、ブロックAが利用できない場合はブロックB、ブロックA及びブロックBが利用できない場合はブロックC、ブロックA及びブロックB及びブロックCが利用できない場合はブロックDを含むクロマブロックからのQP値又はスケール因子が予測因子として使用される。
【0111】
予測因子がスケール因子scである場合、クロマQPを予測するために使用されるこのスケール因子が等式:
QPpred=-6*Log2(Sc)
を使用してQPpredで示すQPのような値にまず変換され、但しLog2は底が2の対数関数である。
【0112】
予測因子がQP値である場合、このQP値を予測因子QPpredとして使用する。
【0113】
改変形態では、既に処理されている隣接クロマブロックを使用し、QP値が予測プロセスによって推論される。追加のシグナリングは使用されず、推論されるQP値だけが検討するクロマブロックに使用される。
【0114】
実施形態7:他のルマ依存クロマコード化モードへの拡張
ルマベースのクロマ残差スケーリングに関して開示する実施形態は他のルマ依存クロマコード化モードと共に使用することができ、又はより広くは成分間の依存性を含むコード化ツール、例えばchroma-from-lumaイントラ予測(CCLM又はLMモードとしても知られる、及びその異体のMDLMとしても知られる多方向線形モデル(Multiple Direction Linear Model))に使用することができる。
【0115】
更なる実施形態では、WmaxL及びHmaxLよりも大きい寸法WL及びHLを有するルマブロックの場合、最大寸法WmaxL及びHmaxLの変換単位にルマブロックが分割される場合にのみCCLMを有効化することができる。
【0116】
同様に、WmaxL及びHmaxLよりも大きい寸法WL及びHLを有するルマブロックの場合、最大寸法WmaxL及びHmaxLの変換単位にルマブロックが分割される場合にのみクロマ残差スケーリングを有効化することができる。
【0117】
更なる実施形態では、WmaxL及びHmaxLよりも大きい寸法WL及びHLを有するルマブロックの場合、最大サイズWmaxL及びHmaxLの変換単位にルマブロックが系統的に分割される。このようにして、クロマブロックを処理するために再構築済みコロケーテッドルマブロックが利用可能である必要性によって含意される構造上の遅延に悩まされることなしに、クロマ成分内でクロマ残差スケーリング及び/又はCCLMモードを使用することができる。
【0118】
更なる改変形態では、WmaxC及びHmaxCよりも大きい寸法Wc及びHcを有するクロマブロックの場合、最大サイズWmaxC及びHmaxCの変換単位にクロマブロックが系統的に分割される。このようにして、クロマコード化単位のサイズがどうであろうと、クロマ成分内でクロマ残差スケーリング及び/又はCCLMモードを使用することができる。
【0119】
図19の例では、ルマブロックを2つのTUに分割すること(左側)又は4つのTUに分割すること(右側)を示す。
【0120】
改変形態では、よってクロマブロックがWmaxC及びHmaxCよりも大きい寸法Wc及びHcを有する場合、最大寸法WmaxC及びHmaxCの変換単位にクロマブロックが分割される場合にのみCCLMを有効化することができる。
【0121】
同様に、クロマブロックがWmaxC及びHmaxCよりも大きい寸法Wc及びHcを有する場合、最大寸法WmaxC及びHmaxCの変換単位にクロマブロックが分割される場合にのみクロマ残差スケーリングを有効化することができる。
【0122】
実施形態8:CCLMに関する参照サンプルの可用性を用いたCTUのための別個のルマ/クロマツリーの非活性化
CCLMモードは参照ルマ及びクロマサンプルを使用して、クロマブロックサンプルをそのコロケーテッドルマサンプルから予測するために更に使用されるパラメータを決定する。参照ルマ及びクロマサンプルは典型的には以下の場所に位置する:
・クロマ/コロケーテッドルマブロックに隣接する上部のライン、
・クロマ/コロケーテッドルマブロックに隣接する左側のカラム、
・ことによるとクロマ/コロケーテッドルマブロックに隣接する左上の位置。検討するCCLMモードに応じてこれらの3つの位置の組み合わせを使用することができる。
【0123】
一実施形態では、CCLMモードに使用されるクロマ参照サンプルは、検討中のクロマブロックを含むクロマARA(
図20)の上部/左側/右上の隣接クロマARA内に含まれるクロマブロックに属する場合に利用可能だと見なされる。上部/左側/右上の隣接クロマARA内にクロマ参照サンプルが含まれない場合、それらは利用不能と見なされる。
【0124】
図21は、クロマブロックに使用される(クロマブロックの上の斜線で網掛けしてある矩形内の)上部の参照クロマサンプルが異なるルマブロック(ブロック1、3、及び4)に属し、それらのルマブロックの一部(ブロック3及び4)が隣接する上部のクロマARA内にない事例を示す。この実施形態によれば、ブロック1に属する参照サンプルだけが利用可能だと見なされる。ブロック3及びブロック4からの他の参照サンプルはCCLMモードに利用することができない。
【0125】
改変形態では、CCLM予測に使用されるクロマ参照サンプルの所与の比率(例えば30%)が隣接する上部/左側/右上のクロマARA内に含まれない場合CCLMモードが無効化される。
【0126】
図21では、利用可能な参照サンプルの数が参照サンプルの総数の25%に等しい。従ってCCLMが無効化される。
【0127】
改変形態では、CCLM予測に使用される少なくとも1つのクロマ参照サンプルが隣接する上部/左側/右上のクロマARA内に含まれなければすぐCCLMモードが無効化される。
【0128】
図21を参照し、この説明図では少なくとも1つの参照サンプルが利用できないのでCCLMが無効化される。
【0129】
同様に、CCLMに使用されるルマ参照サンプルでは以下の実施形態を提案する。CCLMモードに使用されるルマ参照サンプルは、検討中のクロマブロックを含むクロマARA(
図20)の上部/左側/右上の隣接クロマARAとコロケートするルマARA内に含まれるルマブロックに属する場合に利用可能だと見なされる。隣接する上部/左側/右上の隣接クロマARAとコロケートする、隣接する上部/左側/右上のルマARA内にルマ参照サンプルが含まれない場合、それらは利用不能と見なされる。
【0130】
改変形態では、ルマ参照サンプルの所与の比率(例えば30%)が、上部/左側/右上の隣接クロマARAとコロケートする、隣接する上部/左側/右上のルマARA内に含まれない場合CCLMモードが無効化される。
【0131】
改変形態では、少なくとも1つのルマ参照サンプルが、隣接する上部/左側/右上のクロマARAとコロケートする、隣接する上部/左側/右上のルマARA内に含まれない場合CCLMモードが無効化される。
【0132】
実施形態9:CCLMを用いたCTUのための別個のルマ/クロマツリーの非活性化
一実施形態では、CTU内の少なくとも1つのクロマブロックがCCLM(又はLDCRS)を使用する場合、別個のルマ/クロマツリーが無効化され、CTUのためのクロマ分割がルマ分割から推論される。
【0133】
改変形態では、CTU内でCCLM(又はLDCRS)が使用されるかどうかを示すためにCTUレベルでフラグがシグナリングされる。
【0134】
この概念はCTUと異なるブロックの種類(例えばVDPUとしても知られるビデオ復号処理単位)に一般化することができる。
【0135】
実施形態10:クロマブロックの左上角とコロケートするルマブロックの隣接サンプルに基づくクロマ残差スケーリング
別の実施形態では、クロマブロック内の所与の位置とコロケートするルマブロックの近隣にある既に処理されている予測又は再構築済みルマサンプルから、クロマブロックのクロマ残差スケーリングに使用されるスケール因子を決定することによって潜在的なハードウェアの遅延問題を更に減らす。以下、それらのサンプルを「隣接ルマサンプル」と呼ぶ。
【0136】
図22は、クロマブロックのクロマ残差スケーリングに使用されるスケール因子を決定するための方法の流れ図を示す。
【0137】
ステップ800で、クロマブロック内の所与のサンプル位置のピクチャ内の位置を識別する。ステップ801で、クロマブロック内の位置とコロケートするルマサンプルを含むルマブロックを識別する。ステップ802で、ルマブロックに隣接する既に処理されているルマサンプルを識別する。ステップ803で、それらの識別済みの隣接ルマサンプルからルマ値、例えば識別済みの隣接ルマサンプルの平均値を決定する。ステップ804で、クロマブロックのためのスケール因子をルマ値に基づいて決定する。ステップ805で、スケール因子を使用してクロマブロックの残差をスケーリングする。
【0138】
一実施形態では、クロマブロック内の所与のサンプル位置がクロマブロックの左上角である。これを
図23Aに示す。クロマブロック(矩形)を太線で示す。クロマブロックの左上サンプルに対するコロケーテッドルマブロック(正方形)は細線の中にある。その隣接サンプルを灰色で示す。改変形態では、クロマブロック内の所与のサンプル位置がクロマブロックの中心である。
【0139】
一実施形態では、1つの隣接ルマサンプルだけが使用され、コロケーテッドルマブロックの左上サンプルの上部の又は左側のサンプルに対応する。これを
図23Bに示す。改変形態では、上部のサンプル及び左側のサンプルの両方を使用する。
【0140】
別の実施形態では、隣接ルマサンプルがサイズWLの隣接する上部のライン及びサイズHLの隣接する左側のカラムのラインで作られ、WL及びHLはルマブロックの水平及び垂直の寸法である。これを
図23Cに示す。
【0141】
別の実施形態では、隣接ルマサンプルがサイズminSの隣接する上部のライン及びサイズminSの隣接する左側のカラムのラインで作られ、minSはWL及びHLの中の最小値である。
【0142】
別の実施形態では、隣接ルマサンプルがサイズWc*2の隣接する上部のライン及びサイズHc*2の隣接する左側のカラムのラインで作られ、Wc及びHcはクロマブロックの水平及び垂直の寸法であり、クロマフォーマットは4:2:0だと考える。
【0143】
別の実施形態では、隣接ルマサンプルがサイズminSC*2の隣接する上部のライン及びサイズminSC*2の隣接する左側のカラムのラインで作られ、minSCはWc及びHcの中の最小値である。
【0144】
改変形態では、
図23Dに示すように、サイズminSC*2の隣接する上部のラインがクロマの左上角と同じ相対水平位置から始まり、サイズminSC*2の隣接する左側のカラムのラインがクロマの左上角と同じ相対垂直位置から始まる。例えばクロマブロック内の左上角がクロマピクチャ内の位置(xc, yc)にあり、クロマフォーマットが4:2:0である場合、隣接ルマサンプルの上部のライン内の最初のサンプルは水平位置2*xcにあり、隣接ルマサンプルの左側のカラム内の最初のサンプルは垂直位置2*ycにある。
【0145】
更なる改変形態によれば、残差の現在のクロマブロックに適用されるスケール因子を決定するために使用される隣接サンプルが、現在のクロマブロックを含むARAの上部の及び左側の隣接ARAにそれぞれ属するルマサンプルの下部のライン及び/又は右側のカラムに属する1つ又は複数の再構築済みルマサンプルで作られる。
【0146】
別の実施形態では、隣接ルマサンプルの所与の比率が利用できない場合はクロマブロックの残差のスケーリングが適用されない。
【0147】
別の実施形態では、隣接ルマサンプルがクロマブロックと同じCTU内にない場合、その隣接ルマサンプルを利用できないと見なす。
【0148】
別の実施形態では、隣接ルマサンプルがクロマブロックと同じVDPU内にない場合、その隣接ルマサンプルを利用できないと見なす。
【0149】
別の実施形態では、隣接ルマサンプルが第1のクロマブロックARAとコロケートする同じルマARA内にない場合、その隣接ルマサンプルを利用できないと見なす。
【0150】
別の実施形態では、検討する近隣の中のクロマサンプルの所与の比率が利用できない場合はクロマブロックの残差のスケーリングが適用されない。これは現在のクロマブロックが処理されている時点において隣接クロマブロックがその再構築済み状態でまだ利用できない場合に生じ得る。
【0151】
一実施形態では、クロマ残差スケール因子を導出するために使用される隣接ルマサンプルが、コロケーテッドルマブロックを予測するために使用されるサンプル(イントラ予測参照サンプルとしてもしばしば知られる)である。2分木の事例では、それぞれの所与の領域(例えばVDPU)について所与の領域のルマブロックを最初に処理し、次いで所与の領域のクロマブロックを処理するのが一般的である。本発明の実施形態が適用される場合、それは所与の領域のルマブロックごとにその隣接ルマサンプルを記憶する必要があることを意味し、そのことは更なるメモリ記憶域を要求し、ブロックのサイズに応じて参照サンプルの数が変わるのでプロセスを複雑にする。これらのマイナスの影響を減らすために、一実施形態では隣接ルマサンプルからステップ803で導出されるルマ値だけをルマブロックごとに記憶する。別の実施形態では、隣接ルマサンプルからステップ803で導出されるルマ値からステップ804で導出されるスケール因子だけをルマブロックごとに記憶する。これにより記憶域が1つのルマブロックごとに単一値に限定される。この原理はLMCS以外のモード、例えばCCLMに拡張することができ、CCLMでは各ブロックのルマ及びクロマサンプルを記憶する代わりに、ブロックのCCLMパラメータを導出するために使用されるルマ及びクロマサンプルの最小値及び最大値だけを記憶する。
【0152】
実施形態10の概念はCCLMモードに一般化することができる。この事例では、クロマブロック内の所与の位置とコロケートするルマブロックの近隣にある既に処理されている予測又は再構築済みルマサンプル(隣接ルマサンプル)及び予測又は再構築済みクロマサンプル(隣接クロマサンプル)から、クロマブロックの予測に使用されるCCLM線形パラメータを決定することでこの実施形態が構成される。
図23Aから
図23Dはこの概念を示す。灰色で埋められている矩形領域は、ことによるとCCLMパラメータを導出するために使用される現在のクロマブロックの左上サンプルとコロケートするルマブロックの隣接サンプル(ルマ及びクロマ)に対応する。
【0153】
改変形態によれば、現在のクロマブロックのCCLM予測を行うために使用される線形モデルを決定するために使用されるルマ及び/又はクロマ隣接サンプルが、現在のクロマブロックを含むARAの上部の及び/又は左側の隣接ルマ及び/又はクロマARAにそれぞれ属するルマ及び/又はクロマサンプルの下部のライン及び/又は右側のカラムに属する、少なくとも1つの再構築済みの又は予測済みのルマ及び/又はクロマサンプルで作られる。この概念は、現在のクロマブロックを含むARAの右上の隣接ルマ及び/又はクロマARAの下部のラインに、及び現在のクロマブロックを含むARAの左下の隣接ルマ及び/又はクロマARAの右側のカラムに拡張することができる。この概念は、現在のクロマブロックを含むARAの右上の隣接ルマ及び/又はクロマARAの下部のラインに、及び現在のクロマブロックを含むARAの左下の隣接ルマ及び/又はクロマARAの右側のカラムに拡張することができる。
【0154】
実施形態11:クロマブロックに対する位置に基づくルマサンプルの可用性検査
別の実施形態では、位置(xL, yL)にある隣接ルマサンプルと検討するクロマブロックの左上サンプルの位置(xC, yC)との間の距離が所与の値を上回る場合、その隣接ルマサンプルは利用できないと見なす。換言すれば、隣接ルマサンプルは以下の条件が真である場合に利用できないと見なされる:
((xC*2)-xL)>TH、又は((yC*2)-yL)>TV
又は同等に
(xC-(xL/2))>TH/2、又は(yC-(yL/2))>TV/2
但しTH及びTVは既定の値又はビットストリーム内でシグナリングされる値である。典型的には、TH=TC=16である。改変形態では、TH及びTCがピクチャの解像度に依存する。例えばTH及びTHは以下の条件に従って定められる:
-ピクチャの解像度が832x480ルマサンプル以下の場合、TH=TC=8、
-そうではなくピクチャの解像度が1920x1080ルマサンプル以下の場合、TH=TC=16、
-さもなければTH=TC=32。
【0155】
図24A及び
図24Bは、左上の隣接ルマサンプルと隣接クロマサンプル(4:2:0のクロマフォーマットの場合は2でスケーリングされる)との間の距離の例を示す。
図24Aは、左上のクロマサンプルとコロケーテッドルマブロックの左上の隣接クロマサンプルとの間の距離を示す。
図24Bは、左上のクロマサンプルと上部のライン又は左側のカラムとの間の距離を示す。
【0156】
改変形態では、左上のクロマサンプルから離れ過ぎているサンプルを厳密に無効化する代わりに、隣接クロマサンプルと左上のクロマサンプルとの間の距離に応じた重み付けを検討する参照サンプルに適用する。
【0157】
改変形態では、左上のクロマサンプルから離れ過ぎているサンプルを厳密に無効化する代わりに、隣接クロマサンプルと左上のクロマサンプルとの間の距離に応じた重み付けを検討する参照サンプルに適用する。
【0158】
実施形態12:現在のブロックのクロマサンプルの値との関連における、自らのコロケーテッドクロマサンプルの値に基づくルマサンプルの可用性検査
別の実施形態では、隣接ルマサンプルneighborYの可用性が、そのコロケーテッドCb及びCrクロマサンプルneighborCb、neighborCrの値、及び現在のクロマブロックの予測Cb及びCrクロマサンプルの値に基づく。例えば以下の条件が真である場合、隣接ルマサンプルneighborは利用できないと見なす:
-Abs(topLeftCb-neighborCb)>Th_Ch、又は
Abs(topLeftCr-neighborCr)>Th_Ch
が成立することであり、但しTh_Chは既定の値又はビットストリーム内でシグナリングされる値であり、Absは絶対値関数である。Th_Chはクロマサンプルのビット深度に依存し得る。典型的には10ビットコンテンツではTh_Ch=64であり、8ビットコンテンツではTh_Ch=32である。
【0159】
改変形態では、隣接ルマサンプルとコロケートするクロマサンプルの平均Cb及びCr値avgNeighCb、avgNeighCrが、現在のクロマブロックのクロマサンプルの平均Cb及びCr値avgCurrCb、avgCurrCrから離れ過ぎていない場合にのみクロマ残差スケーリングが適用される。
【0160】
例えば以下の条件が真である場合、隣接ルマサンプルは利用できないと見なす:
-Abs(avgCurrCb-avgNeighCb)>Th_Ch、又は
Abs(avgCurrCr-avgNeighCr)>Th_Ch
が成立すること。
【0161】
改変形態では、左上のクロマサンプルと異なり過ぎているサンプルを厳密に無効化する代わりに、隣接クロマサンプルと左上のクロマサンプルとの間の差に応じた重み付けを検討する参照サンプルに適用する。
【0162】
改変形態では、左上のクロマサンプルと異なり過ぎているサンプルを厳密に無効化する代わりに、隣接クロマサンプルと左上のクロマサンプルとの間の差に応じた重み付けを検討する参照サンプルに適用する。
【0163】
図25は、自らのコロケーテッドクロマサンプル及び現在のブロックのクロマサンプルに基づいてルマサンプルの可用性を検査するための方法の流れ図を示す。ステップ800から802は、
図22の対応するステップと同様である。隣接ルマサンプルとコロケートする隣接クロマサンプルを識別するために、ステップ900をステップ802の後に挿入している。ステップ901で、隣接クロマサンプルと現在のブロックのクロマサンプルとの類似性を検査する。クロマサンプルが同様である場合、現在のクロマブロックに対してクロマ残差スケーリングを有効化する(903)。サンプルが同様ではないと見なされる場合、現在のクロマブロックに対してクロマ残差スケーリングを無効化する(902)。
【0164】
実施形態12a:MDLMに関する参照サンプルの可用性
MDLMモードは、ルマサンプルからクロマサンプルを予測するための線形パラメータを導出するために、上部の隣接するルマ及びクロマサンプル(MDLM上)又は左側の隣接するルマ及びクロマサンプル(MDLM左)を参照サンプルとして使用するCCLMモードの改変形態である。
【0165】
少なくとも1つの実施形態では、分割プロセスが、VDPUの幅/高さの半分の幅/高さの2つの上部の正方形ブロックを含むルマVDPUの分割をもたらす場合、又はVDPUの幅/高さクロマVDPUの半分の幅/高さの2つの上部の正方形ブロックを含むクロマVDPUの分割をもたらす場合、第2の正方形ブロック(
図25Aの「2」で示す)のMDLM左のための参照サンプルはブロック2の左側の境界に隣接するサンプルだけである。それらの参照サンプルの下のサンプルは利用できないと見なされる。MDLMパラメータを導出するためにブロック2の下のブロックは不要なので、このことはブロック2を処理する遅延を有利に限定する。
【0166】
この実施形態は、
図25Aのルマ又はクロマブロック1をより小さな区画に更に分ける事例に対して一般化することもできる。
【0167】
実施形態13:クロマ残差スケーリングを活性化又は非活性化するための低レベルフラグ
別の実施形態では、スライス又はタイルグループよりも低いレベルにおいてクロマ残差スケーリングツールを有効化又は無効化するためにビットストリーム構文内に低レベルフラグを挿入する。この実施形態は、別個のルマ/クロマ分割木の事例の場合にのみ適用され得る。この実施形態は、別個のルマ/クロマ分割木が使用されない事例にも拡張することができる。
【0168】
以下の表は、文献JVET-N0220のVTM仕様と比較した(灰色で強調表示されている)構文変更の一例を示す。この表ではシグナリングがCTUレベルで行われ、シグナリングは(構文要素qtbtt_dual_tree_intra_flagによって識別される)別個のルマ/クロマ分割木の事例でのみ行われる。
【0169】
【0170】
以下の表は、文献JVET-N0220のVTM仕様と比較した(灰色で強調表示されている)構文変更の別の例を示す。この表ではシグナリングがCTUレベルで行われ、シグナリングは何らかの別個のルマ/クロマ分割木が使用されようとされまいと行われる。
【0171】
【0172】
これらの改変形態によれば、クロマ残差スケーリングのCTUにおける活性化がフラグctu_chroma_residual_scale_flagの値によって条件付けられる。
【0173】
実施形態2による仕様構文の適応例
実施形態2による現行のVVCドラフト仕様(Benjamin Bross et al. “Versatile Video Coding (Draft 4)”, JVET 13th Meeting: Marrakech, MA, 9-18 Jan. 2019, JVET-M1001-v7参照)における構文変更の例を以下に示す。JVET-M1001と比較した変更が灰色で強調表示されている。
【0174】
8.4.3 クロマイントラ予測モードのための導出プロセス
このプロセスへの入力は以下の通りである:
-現在のピクチャの左上のルマサンプルに対する現在のクロマコード化ブロックの左上サンプルを指定するルマ位置(xCb, yCb)、
-ルマサンプル内の現在のコード化ブロックの幅を指定する変数cbWidth、
-ルマサンプル内の現在のコード化ブロックの高さを指定する変数cbHeight。
【0175】
このプロセスでクロマイントラ予測モードIntraPredModeC[xCb][yCb]が導出される。
-変数lmEnabledをsps_cclm_enabled_flagと等しく設定する。
-以下の条件が真である場合、成分間クロマイントラ予測モード検査プロセスのプロセスを呼び出すことによってlmEnabledが導出される。
-lmEnabledが1に等しい、
-tile_group_typeが2に等しい(Iタイルグループ)、
-qtbtt_dual_tree_intra_flagが1に等しい。
【0176】
表8-2及び表8-3の中で規定されている通り、クロマイントラ予測モードIntraPredModeC[xCb][yCb]がintra_chroma_pred_mode[xCb][yCb]、及びIntraPredModeY[xCb+cbWidth/2][yCb+cbHeight/2]を使用して導出される。
【0177】
【0178】
【0179】
成分間クロマイントラ予測モード検査プロセス
このプロセスへの入力は以下の通りである:
-現在のピクチャの左上のルマサンプルに対する現在のクロマコード化ブロックの左上サンプルを指定するルマ位置(xCb, yCb)、
-ルマサンプル内の現在のコード化ブロックの幅を指定する変数cbWidth、
-ルマサンプル内の現在のコード化ブロックの高さを指定する変数cbHeight。
【0180】
このプロセスへの出力は以下の通りである:
-現在のクロマコード化ブロックに関して成分間クロマイントラ予測モードが有効化されているかどうかを指定するフラグlmEnabled。
このプロセスではlmEnabledが以下のように導出される。
-((16+xCb)/16)が((16+xCb+cbWidth-1)/16)、又は((16+yCb)/16)が((16+yCb+cbHeight-1)/16)と等しくない場合、cclmEnabledを0に等しく設定する
-さもなければ以下が適用される。
-i=0, (cbHeight-1)及びj=0..(cbWidth-1)に関して以下が適用される。
-(xTL, yTL)は、((xCb+j)<<1, (yCb+i)<<1))によって与えられる位置をカバーするコロケーテッドルマコード化ブロックColLumaBlockの現在のピクチャの左上のルマサンプルに対する左上のサンプル位置に等しく設定する。
-wColoc及びhColocをColLumaBlockの幅及び高さに等しく設定する。
-以下の条件の1つが偽である場合はcclmEnabledを0に等しく設定し、i及びjにわたるループを停止する。
-((32+xTL)/32)が((32+xTL+wColoc-1)/32)に等しい
-((32+yTL)/32)が((32+yTL+hColoc-1)/32)に等しい
-cclmEnabledが1に等しい場合、i=1..(cbHeight-2)及びj=0, (cbWidth-1)に関して以下が適用される。
-(xTL, yTL)は、((xCb+j)<<1, (yCb+i)<<1))によって与えられる位置をカバーするコロケーテッドルマコード化ブロックColLumaBlockの現在のピクチャの左上のルマサンプルに対する左上のサンプル位置に等しく設定する。
-wColoc及びhColocをColLumaBlockの幅及び高さに等しく設定する。
-以下の条件の1つが偽である場合はcclmEnabledを0に等しく設定し、i及びjにわたるループを停止する。
-((32+xTL)/32)が((32+xTL+wColoc-1)/32)に等しい
-((32+yTL)/32)が((32+yTL+hColoc-1)/32)に等しい
【0181】
実施形態10による仕様構文の適応例
実施形態10による、現行のVVCドラフト仕様(例えば文献JVET-M1001)に含めるための構文の例を以下に示す。
【0182】
クロマサンプル値のためのマッピングプロセスを伴うピクチャ再構築
このプロセスへの入力は以下の通りである:
-現在のブロックのマップされたルマ予測サンプルを指定する、(nCurrSwx2)x(nCurrShx2)アレイがマップされたpredMapSamples、
-tile_group_typeが2に等しく(Iタイルグループ)、qtbtt_dual_tree_intra_flagが1に等しい場合、現在のピクチャの再構築済みルマを指定するアレイrecSamples、
-現在のブロックのクロマ予測サンプルを指定する(nCurrSw)x(nCurrSh)アレイpredSamples、
-現在のブロックのクロマ残差サンプルを指定する(nCurrSw)x(nCurrSh)アレイresSamples。
-iが0からMaxBinIdx+1までの範囲内にあり、7.4.4.1内で導出されるアレイInputPivot[i]及びReshapePivot[i]
-iが0からMaxBinIdxまでの範囲内にあり、7.4.4.1内で導出されるアレイInvScaleCoeff[i]及びChromaScaleCoef[i]
【0183】
このプロセスの出力は再構築済みクロマサンプルアレイrecSamplesである。
【0184】
recSamplesは以下のように導出される:
-(!tile_group_reshaper_chroma_residual_scale_flag||((nCurrSw)x(nCurrSh)<=4))が成立する場合
recSamples[xCurr+i][yCurr+j]=Clip1c(predSamples[i][j]+resSamples[i][j])
i=0..nCurrSw-1, j=0..nCurrSh-1
-そうではなく、(tile_group_reshaper_chroma_residual_scale_flag&&((nCurrSw)x(nCurrSh)>4))が成立し、以下が適用される:
【0185】
変数varScaleは以下のように導出される:
-invAvgLumaが以下のように導出される:
-tile_group_typeが2に等しく(Iタイルグループ)、qtbtt_dual_tree_intra_flagが1に等しい場合、以下が適用される。
-現在のピクチャの左上のクロマサンプルに対するクロマの現在のブロックの左上サンプルのクロマ位置(xCh, yCh)を識別する。
-ルマ位置(xTL, yTL)は、現在のピクチャの左上のルマサンプルに対する(xCh<<1, yCh<<1)によって与えられる位置をカバーするコロケーテッドルマコード化ブロックColLumaBlockの左上のサンプル位置に等しく設定し、wColoc及びhColocをColLumaBlockの幅及び高さに等しく設定する。
-((32+yCh)/32)が((64+yTL-1)/64)に等しい場合、invAvgLumaをrecSamples[yTL-1][xTL]に等しく設定する
-そうではなく((32+xCh)/32)が((64+xTL-1)/64)に等しい場合、invAvgLumaをrecSamples[yTL][xTL-1]に等しく設定する
-さもなければinvAvgLumaを-1に等しく設定する。
-それ以外の場合は以下が適用される:
invAvgLuma=Clip1Y((ΣiΣjpredMapSamples[i][j]+nCurrSw*nCurrSh*2)/(nCurrSw*nCurrSh*4))
-invAvgLumaが-1に等しくない場合は以下が適用される:
-節8.5.6.2の中で規定されている通り区分関数インデックスの識別をサンプル値invAvgLumaの入力と関わらせることによって変数idxYInvが導出される。
-varScaleをChromaScaleCoef[idxYInv]と等しく設定する
-さもなければvarScaleを(1<<shiftC)と等しく設定する
【0186】
recSamplesは以下のように導出される:
-tu_cbf_cIdx[xCurr][yCurr]が1に等しい場合は以下が適用される:
shiftC=11
recSamples[xCurr+i][yCurr+j]=ClipCidx1(predSamples[i][j]+Sign(resSamples[i][j])
*((Abs(resSamples[i][j])*varScale+(1<<(shiftC-1)))>>shiftC))
i=0..nCurrSw-1, j=0..nCurrSh-1
-さもなければ(tu_cbf_cIdx[xCurr][yCurr]が0に等しい)
recSamples[xCurr+i][yCurr+j]=ClipCidx1(predSamples[i][j])
i=0..nCurrSw-1, j=0..nCurrSh-1
【0187】
本願は、ツール、特徴、実施形態、モデル、手法等を含む様々な態様を記載する。これらの態様の多くは特定的に記載されており、少なくとも個々の特性を示すために限定的であるように思われ得る方法でしばしば説明されている。しかしそれは説明を明瞭にすることを目的としており、それらの態様の応用又は範囲を限定するものではない。実際、様々な態様の全てを組み合わせ交換して更なる態様をもたらすことができる。更に態様は、先の出願に記載した態様と組み合わせ交換することもできる。
【0188】
本願に記載し本願で予期する態様は多くの異なる形態で実装することができる。以下の
図26、
図27、及び
図28は一部の実施形態を示すが、他の実施形態も予期され、
図26、
図27、及び
図28の解説は実装の範囲を限定するものではない。態様の少なくとも1つは概してビデオを符号化し復号することに関し、少なくとも1つの他の態様は概して生成され又は符号化されたビットストリームを伝送することに関する。これらの及び他の態様は、方法、機器、記載した方法の何れかに従ってビデオデータを符号化し又は復号するための命令を記憶しているコンピュータ可読記憶媒体、及び/又は記載した方法の何れかに従って生成されるビットストリームを記憶しているコンピュータ可読記憶媒体として実装することができる。
【0189】
本明細書では様々な方法を記載し、方法のそれぞれは記載した方法を実現するための1つ又は複数のステップ又はアクションを含む。方法が適切に動作するのにステップ又はアクションの特定の順序が要求されない限り、特定のステップ及び/又はアクションの順序及び/又は使用は修正し又は組み合わせることができる。
【0190】
本願に記載の様々な方法及び他の態様を使用してモジュール、例えば
図26及び
図27に示すビデオ符号器100及び復号器200の画像分割及びスケーリングモジュール(102、151、235、及び251)を修正することができる。更に、本発明の態様はVVC又はHEVCに限定されず、例えば既存の又は将来開発される他の規格及び勧告、並びにそのような任意の規格及び勧告(VVC及びHEVCを含む)の拡張に適用することができる。別段の定めがない限り、又は技術的に除外されない限り、本願に記載の態様は個別に又は組み合わせて使用することができる。
【0191】
本願では様々な数値、例えばWmax、Hmax、WmaxC、及びHmaxCを使用する。具体的な値は例示目的であり、記載する態様はそれらの具体的な値に限定されない。
【0192】
図26は符号器100を示す。この符号器100の改変形態が考えられるが、符号器100は予期される全ての改変形態を記載することなしに明瞭にすることを目的に以下に記載する。
【0193】
符号化される前に、ビデオシーケンスは例えば入力カラーピクチャに色変換(例えばRGB4:4:4からYCbCr4:2:0への変換)を適用する、又は圧縮に対してより回復性がある信号分布を得るために入力ピクチャ成分の再マッピングを行う(例えば色成分の1つのヒストグラム平坦化を使用する)符号化前の処理(101)にかけることができる。メタデータが前処理に関連することができ、ビットストリームに付加され得る。
【0194】
符号器100では、以下で説明するようにピクチャが符号器の要素によって符号化される。符号化されるピクチャは、例えばCU単位で分割され(102)処理される。各単位は例えばイントラモード又はインタモードを使用して符号化される。単位がイントラモードによって符号化される場合、符号器はイントラ予測(160)を行う。インタモードでは、動き推定(175)及び動き補償(170)が行われる。符号器は、単位を符号化するためにイントラモード又はインタモードのどちらを使用するのかを決定し(105)、イントラ/インタの決定を例えば予測モードフラグによって示す。符号器は予測済みルマブロックを得るためにルマサンプルに適用されるフォワードマッピング(191)を行うことができる。クロマサンプルではフォワードマッピングは該当しない。例えば元の画像ブロックから予測済みブロックを減算すること(110)によって予測残差を計算する。クロマサンプルでは、クロマ残差スケーリングがクロマ残差に適用され得る(111)。
【0195】
次いで予測残差を変換し(125)、量子化する(130)。量子化した変換係数、並びに動きベクトル及び他の構文要素をエントロピコード化して(145)ビットストリームを出力する。符号器は変換をスキップし、非変換残差信号に対して量子化を直接適用することができる。符号器は変換及び量子化の両方をバイパスすることができ、即ち変換プロセス又は量子化プロセスを適用することなしに残差が直接コード化される。
【0196】
符号器は符号化済みブロックを復号して更なる予測のための参照を提供する。予測残差を復号するために量子化済みの変換係数を逆量子化し(140)、逆変換する(150)。次いで、スケーリングプロセス(111)の逆のプロセスを行う逆スケーリング(151)によってクロマ残差を処理する。復号済みの予測残差と予測済みブロックとを結合し(155)、画像ブロックを再構築する。ルマサンプルでは、フォワードマッピングステップ(191)の逆である逆マッピング(190)が適用され得る。例えばデブロッキング/SAO(サンプル適応オフセット)、適応ループフィルタ(ALF)フィルタリングを実行して符号化アーティファクトを減らすために、再構築したピクチャにインループフィルタ(165)を適用する。フィルタ済みの画像を参照ピクチャバッファ(180)に記憶する。
【0197】
図27はビデオ復号器200のブロック図を示す。復号器200では、以下で説明するようにビットストリームが復号器の要素によって復号される。ビデオ復号器200は、
図26に記載した符号化パスと逆の復号パスを概して実行する。符号器100も、ビデオデータを符号化する一環としてビデオの復号を概して実行する。
【0198】
具体的には、復号器の入力はビデオ符号器100によって生成され得るビデオビットストリームを含む。変換係数、動きベクトル、及び他のコード化情報を得るためにビットストリームを最初にエントロピ復号する(230)。ピクチャがどのように分割されるのかをピクチャ分割情報が示す。従って復号器は、復号したピクチャ分割情報に従ってピクチャを分けることができる(235)。予測残差を復号するために変換係数を逆量子化し(240)逆変換する(250)。クロマサンプルでは、符号器の逆スケーリング(151)と同様である逆スケーリング(251)によってクロマ残差がプロセス。復号した予測残差と予測済みブロックとを結合して(255)画像ブロックを再構築する。予測済みブロックはイントラ予測(260)又は動き補償予測(即ちインタ予測)(275)から得ることができる(270)。予測後にルマサンプルに対してフォワードマッピング(295)を適用することができる。符号器の逆マッピング(190)と同様の逆マッピング(296)を再構築済みルマサンプルに適用することができる。次いで再構築済み画像にインループフィルタ(265)を適用する。フィルタ済み画像を参照ピクチャバッファ(280)に記憶する。
【0199】
復号済みピクチャは復号後の処理(285)、例えば逆色変換(例えばYCbCr4:2:0からRGB4:4:4への変換)又は符号化前の処理(101)で行われた再マッピングプロセスの逆を行う逆再マッピングに更にかけることができる。復号後の処理は、符号化前の処理において導出され、ビットストリーム内でシグナリングされるメタデータを使用することができる。
【0200】
図28は、様々な態様及び実施形態が実装されるシステムの一例のブロック図を示す。システム1000は、以下に記載の様々なコンポーネントを含む装置として実装することができ、本明細書に記載の態様の1つ又は複数を実行するように構成される。かかる装置の例は、これだけに限定されないが、パーソナルコンピュータ、ラップトップコンピュータ、スマートフォン、タブレットコンピュータ、デジタルマルチメディアセットトップボックス、デジタルテレビ受信機、パーソナルビデオ録画システム、接続された家庭用電化製品、及びサーバ等の様々な電子装置を含む。システム1000の要素は、単一の集積回路(IC)、複数のIC、及び/又は個別コンポーネント内に単独で又は組み合わせて実装することができる。例えば少なくとも1つの実施形態では、システム1000の処理及び符号器/復号器の要素が複数のIC及び/又は個別コンポーネントにわたって分散される。様々な実施形態において、システム1000は、例えば通信バスを介して又は専用の入力及び/又は出力ポートによって1つ又は複数の他のシステムに又は他の電子装置に通信可能に結合される。様々な実施形態において、システム1000は本明細書に記載の態様の1つ又は複数を実装するように構成される。
【0201】
システム1000は、例えば本明細書に記載の様々な態様を実装するために自らの中にロードされた命令を実行するように構成される少なくとも1つのプロセッサ1010を含む。プロセッサ1010は、埋め込みメモリ、入出力インタフェース、及び当技術分野で知られている他の様々な回路を含み得る。システム1000は、少なくとも1つのメモリ1020(例えば揮発性メモリ装置及び/又は不揮発性メモリ装置)を含む。システム1000は、これだけに限定されないが、電気的消去プログラム可能読取専用メモリ(EEPROM)、読取専用メモリ(ROM)、プログラム可能読取専用メモリ(PROM)、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)、スタティックランダムアクセスメモリ(SRAM)、フラッシュ、磁気ディスクドライブ、及び/又は光ディスクドライブを含む不揮発性メモリ及び/又は揮発性メモリを含み得る記憶装置1040を含む。記憶装置1040は、非限定的な例として内蔵記憶装置、付加記憶装置(着脱可能記憶装置及び着脱不能記憶装置を含む)、及び/又はネットワークアクセス可能記憶装置を含み得る。
【0202】
システム1000は、例えば符号化済みビデオ又は復号済みビデオを提供するためにデータを処理するように構成される符号器/復号器モジュール1030を含み、符号器/復号器モジュール1030は独自のプロセッサ及びメモリを含み得る。符号器/復号器モジュール1030は、符号化及び/又は復号機能を実行するために装置内に含まれ得るモジュールを表す。知られているように、装置は符号化モジュール及び復号モジュールの一方又は両方を含み得る。加えて、符号器/復号器モジュール1030はシステム1000の別個の要素として実装することができ、又は当業者に知られているようにハードウェアとソフトウェアとの組み合わせとしてプロセッサ1010内に組み込まれ得る。
【0203】
本明細書に記載の様々な態様を実行するためにプロセッサ1010又は符号器/復号器1030上にロードされるプログラムコードは記憶装置1040内に記憶され、その後プロセッサ1010によって実行するためにメモリ1020上にロードされ得る。様々な実施形態によれば、プロセッサ1010、メモリ1020、記憶装置1040、及び符号器/復号器モジュール1030の1つ又は複数が、本明細書に記載のプロセスの実行中に様々なアイテムの1つ又は複数を記憶し得る。記憶されるかかるアイテムは、これだけに限定されないが入力ビデオ、復号済みビデオ又は復号済みビデオの一部、ビットストリーム、行列、変数、並びに等式、公式、演算、及び演算ロジックの処理の中間結果又は最終結果を含み得る。
【0204】
一部の実施形態では、プロセッサ1010及び/又は符号器/復号器モジュール1030の内部のメモリを使用して命令を記憶し、符号化又は復号中に必要な処理用のワーキングメモリを提供する。しかし他の実施形態では、これらの機能の1つ又は複数のために処理装置(例えば処理装置はプロセッサ1010又は符号器/復号器モジュール1030であり得る)の外部のメモリが使用される。外部メモリはメモリ1020及び/又は記憶装置1040、例えばダイナミック揮発性メモリ及び/又は不揮発性フラッシュメモリとすることができる。幾つかの実施形態では、例えばテレビのオペレーティングシステムを記憶するために外部の不揮発性フラッシュメモリが使用される。少なくとも1つの実施形態では、MPEG-2(MPEGはMoving Picture Experts Groupを指し、MPEG-2はISO/IEC13818とも呼ばれ、13818-1はH.222としても知られ、13818-2はH.262としても知られる)、HEVC(HEVCはH.265及びMPEG-H Part2としても知られる高効率ビデオコーディングを指す)、又はVVC(JVET、Joint Video Experts Teamによって策定されている新たな規格である多用途ビデオコーディング)等のビデオのコード化及び復号操作用のワーキングメモリとしてRAM等の高速な外部のダイナミック揮発性メモリが使用される。
【0205】
システム1000の要素への入力は、ブロック1130内に示す様々な入力装置によって提供され得る。かかる入力装置は、これだけに限定されないが(i)例えばブロードキャスタによって無線で伝送されるRF(無線周波数)信号を受信するRF部分、(ii)コンポーネント(COMP)入力端子(又は1組のCOMP入力端子)、(iii)ユニバーサルシリアルバス(USB)入力端子、及び/又は(iv)高精細度マルチメディアインタフェース(HDMI)入力端子を含む。
図28に不図示の他の例は複合ビデオを含む。
【0206】
様々な実施形態において、ブロック1130の入力装置は当技術分野で知られている関連する個々の入力処理要素を有する。例えばRF部分は、(i)所望の周波数を選択する(信号を選択する又は信号を或る周波数帯域に帯域制限するとも言う)、(ii)選択した信号をダウンコンバートする、(iii)(例えば)特定の実施形態においてチャネルと呼ばれ得る信号周波数帯域を選択するために、より狭い周波数帯域へと再び帯域制限する、(iv)ダウンコンバート及び帯域制限済みの信号を復調する、(v)誤り訂正を行う、及び(vi)データパケットの所望のストリームを選択するために逆多重化するのに適した要素に関連し得る。様々な実施形態のRF部分はこれらの機能を実行するための1つ又は複数の要素、例えば周波数セレクタ、信号セレクタ、帯域制限器、チャネルセレクタ、フィルタ、ダウンコンバータ、復調器、誤り訂正器、及びデマルチプレクサを含む。RF部分は、例えば受信した信号をより低い周波数(例えば中間周波数又は基底帯域に近い周波数)又は基底帯域にダウンコンバートすることを含む、これらの機能の様々なものを行うチューナを含むことができる。或るセットトップボックスの実施形態では、RF部分及びその関連する入力処理要素が有線(例えばケーブル)媒体上で伝送されるRF信号を受信し、所望の周波数帯域へとフィルタリングし、ダウンコンバートし、再びフィルタリングすることによって周波数の選択を行う。様々な実施形態は上記の(及び他の)要素の順序を並べ替え、それらの要素の一部を除去し、及び/又は同様の若しくは異なる機能を実行する他の要素を追加する。要素を追加することは既存の要素の間に要素を挿入すること、例えば増幅器及びアナログ-デジタル変換器を挿入することを含み得る。様々な実施形態においてRF部分はアンテナを含む。
【0207】
加えて、USB及び/又はHDMI端子は、USB及び/又はHDMI接続の両端間でシステム1000を他の電子装置に接続するための個々のインタフェースプロセッサを含み得る。例えば別個の入力処理IC内で又はプロセッサ1010内で入力処理、例えばリードソロモン誤り訂正の様々な側面を必要に応じて実装できることを理解すべきである。同様に、USB又はHDMIインタフェース処理の側面を別個のインタフェースIC内で又はプロセッサ1010内で必要に応じて実装することができる。出力装置上で提示するためにデータストリームを必要に応じて処理するために、復調済みの、誤り訂正済みの、及び逆多重化済みのストリームが、例えばメモリ及び記憶要素と組み合わせて動作するプロセッサ1010及び符号器/復号器1030を含む様々な処理要素に与えられる。
【0208】
システム1000の様々な要素を一体型ハウジング内に設けることができる。一体型ハウジングの中では様々な要素が相互接続され、適切な接続構成1140、例えばInter-IC(I2C)バス、配線、及びプリント回路基板を含む当技術分野で知られている内部バスを使用してそれらの間でデータを伝送し得る。システム1000は、通信チャネル1060を介して他の装置と通信することを可能にする通信インタフェース1050を含む。通信インタフェース1050は、これだけに限定されないが、通信チャネル1060上でデータを送受信するように構成されるトランシーバを含み得る。通信インタフェース1050は、これだけに限定されないがモデム又はネットワークカードを含むことができ、通信チャネル1060は例えば有線媒体及び/又は無線媒体内に実装することができる。
【0209】
様々な実施形態において、Wi-Fiネットワーク、例えばIEEE 802.11(IEEEはInstitute of Electrical and Electronics Engineersを指す)等の無線ネットワークを使用してデータがシステム1000にストリームされ或いは与えられる。これらの実施形態のWi-Fi信号は、Wi-Fi通信に適合される通信チャネル1060及び通信インタフェース1050上で受信される。これらの実施形態の通信チャネル1060は、ストリーミングアプリケーション及び他のオーバーザトップ通信を可能にするためにインターネットを含む外部ネットワークへのアクセスを提供するアクセスポイント又はルータに典型的には接続される。他の実施形態は、入力ブロック1130のHDMI接続上でデータを届けるセットトップボックスを使用してストリームデータをシステム1000に与える。更に他の実施形態は、入力ブロック1130のRF接続を使用してストリームデータをシステム1000に与える。上記で示したように、様々な実施形態がデータを非ストリーミング式に提供する。加えて、様々な実施形態はWi-Fi以外の無線ネットワーク、例えばセルラネットワーク又はBluetoothネットワークを使用する。
【0210】
システム1000は、ディスプレイ1100、スピーカ1110、及び他の周辺装置1120を含む様々な出力装置に出力信号を与えることができる。様々な実施形態のディスプレイ1100は、例えばタッチスクリーンディスプレイ、有機発光ダイオード(OLED)ディスプレイ、湾曲ディスプレイ、及び/又は折り畳み式ディスプレイの1つ又は複数を含む。ディスプレイ1100は、テレビ、タブレット、ラップトップ、セルホン(携帯電話)、又は他の装置用とすることができる。ディスプレイ1100は(例えばスマートフォンにあるように)他のコンポーネントに統合されてもよく、又は別個(例えばラップトップ用の外部モニタ)であり得る。実施形態の様々な例において、他の周辺装置1120は、独立型デジタルビデオディスク(又はデジタル多用途ディスク)(両方の用語でDVR)、ディスクプレーヤ、ステレオシステム、及び/又は照明システムの1つ又は複数を含む。様々な実施形態は、システム1000の出力に基づく機能を提供する1つ又は複数の周辺装置1120を使用する。例えばディスクプレーヤはシステム1000の出力を再生する機能を実行する。
【0211】
様々な実施形態において、AV.Link、Consumer Electronics Control(CEC)、又はユーザの介入ありの若しくはなしの装置間制御を可能にする他の通信プロトコル等のシグナリングを使用し、システム1000とディスプレイ1100、スピーカ1110、又は他の周辺装置1120との間で制御信号が通信される。出力装置が、個々のインタフェース1070、1080、及び1090による専用接続を介してシステム1000に通信可能に結合され得る。或いは出力装置は、通信インタフェース1050を介して通信チャネル1060を使用してシステム1000に接続され得る。ディスプレイ1100及びスピーカ1110は、例えばテレビ等の電子装置の中でシステム1000の他のコンポーネントと共に単一のユニットに一体化することができる。様々な実施形態において、ディスプレイインタフェース1070は例えばタイミングコントローラ(T Con)チップ等のディスプレイドライバを含む。
【0212】
例えば入力1130のRF部分が別個のセットトップボックスの一部である場合、ディスプレイ1100及びスピーカ1110は他のコンポーネントの1つ又は複数から代わりに切り離すことができる。ディスプレイ1100及びスピーカ1110が外部コンポーネントである様々な実施形態において、出力信号は例えばHDMIポート、USBポート、又はCOMP出力を含む専用出力接続によって与えることができる。
【0213】
実施形態は、プロセッサ1010によって実装されるコンピュータソフトウェアによって、又はハードウェアによって、又はハードウェアとソフトウェアとの組み合わせによって実行することができる。非限定的な例として、実施形態は1つ又は複数の集積回路によって実装され得る。メモリ1020は技術的環境に適した任意の種類のものとすることができ、非限定的な例として光メモリ装置、磁気メモリ装置、半導体ベースのメモリ装置、固定メモリ、及び着脱可能メモリ等、任意の適切なデータ記憶技術を使用して実装することができる。プロセッサ1010は技術的環境に適した任意の種類のものとすることができ、非限定的な例としてマイクロプロセッサ、汎用コンピュータ、専用コンピュータ、及びマルチコアアーキテクチャに基づくプロセッサのうちの1つ又は複数を包含し得る。
【0214】
様々な実装が復号することを含む。本願で使用するとき、「復号する」は、例えば表示に適した最終出力をもたらすために受信済みの符号化シーケンスに対して実行されるプロセスの全て又は一部を包含し得る。様々な実施形態において、かかるプロセスは復号器によって典型的に行われるプロセス、例えばエントロピ復号、逆量子化、逆変換、及び差分復号の1つ又は複数を含む。様々な実施形態において、かかるプロセスは例えばクロマブロックのサイズに応じて、及びクロマブロックの少なくとも1つのサンプルとコロケートする少なくとも1つのルマブロックのサイズに応じて成分間依存ツールをクロマブロックに使用できるようにする、本願に記載の様々な実装の復号器によって実行されるプロセスを更に又は代わりに含む。
【0215】
更なる例として、或る実施形態では「復号」がエントロピ復号だけを指し、別の実施形態では「復号」が差分復号だけを指し、別の実施形態では「復号」がエントロピ復号と差分復号との組み合わせを指す。「復号プロセス」という語句が操作のサブセットを具体的に指すことを意図するのか、又はより広範な復号プロセスを概して指すことを意図するのかは具体的な説明の脈絡に基づいて明らかになり、当業者によって十分理解されると考える。
【0216】
様々な実装が符号化することを含む。「復号」に関する上記の解説と同様に、本願で使用するとき「符号化する」は、例えば符号化ビットストリームをもたらすために入力ビデオシーケンスに対して実行されるプロセスの全て又は一部を包含し得る。様々な実施形態において、かかるプロセスは符号器によって典型的に行われるプロセス、例えば分割、差分符号化、変換、量子化、及びエントロピ符号化の1つ又は複数を含む。様々な実施形態において、かかるプロセスは例えばクロマブロックのサイズに応じて、及びクロマブロックの少なくとも1つのサンプルとコロケートする少なくとも1つのルマブロックのサイズに応じて成分間依存ツールを前述のクロマブロックに使用できるようにする、本願に記載の様々な実装の符号器によって実行されるプロセスを更に又は代わりに含む。
【0217】
更なる例として、或る実施形態では「符号化」がエントロピ符号化だけを指し、別の実施形態では「符号化」が差分符号化だけを指し、別の実施形態では「符号化」が差分符号化とエントロピ符号化との組み合わせを指す。「符号化プロセス」という語句が操作のサブセットを具体的に指すことを意図するのか、又はより広範な符号化プロセスを概して指すことを意図するのかは具体的な説明の脈絡に基づいて明らかになり、当業者によって十分理解されると考える。
【0218】
本明細書で使用した構文要素、例えばクロマスケール因子のインデックスは記述用語であることに留意されたい。そのため、それらは他の構文要素名の使用を排除しない。
【0219】
図面が流れ図として示されている場合、その図面は対応する機器のブロック図も提供することを理解すべきである。同様に図面がブロック図として示されている場合、その図面は対応する方法/プロセスの流れ図も提供することを理解すべきである。
【0220】
様々な実施形態がレート歪み最適化に言及した。具体的には符号化プロセスの間、多くの場合計算の複雑さの制約を所与としてレートと歪みとの間のバランス又はトレードオフが通常検討される。レート歪み最適化は通常、レート及び歪みの加重和であるレート歪み関数を最小化するものとして公式化される。レート歪み最適化問題を解く様々な手法がある。例えばそれらの手法は、コード化のコスト並びにコード化及び復号後の再構築済み信号の関係する歪みを完全に評価することを伴い、検討される全てのモード又はコード化パラメータ値を含む符号化の全ての選択肢を広く試験することに基づき得る。とりわけ再構築されるものではなく、予測又は予測残差信号に基づいておおよその歪みを計算することにより、より高速の手法を使用して符号化の複雑さを省くこともできる。符号化のあり得る選択肢の一部にだけおおよその歪みを使用し、符号化の他の選択肢には完全な歪みを使用すること等により、これらの2つの手法の混合を使用することもできる。他の手法は、符号化のあり得る選択肢のサブセットだけを評価する。より全般的に、多くの手法は最適化を行うために様々な技法の何れかを使用するが、最適化は必ずしもコード化のコスト及び関係する歪みの両方の完全な評価ではない。
【0221】
本明細書に記載した実装及び態様は、例えば方法若しくはプロセス、機器、ソフトウェアプログラム、データストリーム、又は信号によって実装することができる。単一形式の実装の脈絡でしか論じられていなくても(例えば方法としてしか論じられていなくても)、論じられた特徴の実装は他の形(例えば機器又はプログラム)でも実装することができる。機器は例えば適切なハードウェア、ソフトウェア、及びファームウェアによって実装することができる。方法は例えばプロセッサによって実装することができ、プロセッサは例えばコンピュータ、マイクロプロセッサ、集積回路、又はプログラム可能論理装置を含む処理装置全般を指す。プロセッサは、例えばコンピュータ、セルホン、ポータブル/携帯情報端末(「PDA」)、及びエンドユーザ間の情報の通信を助ける他の装置等の通信装置も含む。
【0222】
「一実施形態」、又は「或る実施形態」、又は「一実装」、又は「或る実装」並びにそれらの他の異体に言及することは、実施形態に関連して記載される特定の特徴、構造、特性等が少なくとも1つの実施形態に含まれることを意味する。従って、本願の全体を通して様々な箇所で登場する「一実施形態では」、又は「或る実施形態では」、又は「一実装では」、又は「或る実装では」という語句並びに他の任意の異体の登場は必ずしも全て同じ実施形態を指すものではない。
【0223】
加えて、本願は様々な情報片を「決定すること」に言及する場合がある。情報を決定することは、例えば情報を推定すること、情報を計算すること、情報を予測すること、又は情報をメモリから取り出すことの1つ又は複数を含み得る。
【0224】
更に本願は様々な情報片に「アクセスすること」に言及する場合がある。情報にアクセスすることは、例えば情報を受信すること、情報を(例えばメモリから)取り出すこと、情報を記憶すること、情報を移動すること、情報を複製すること、情報を計算すること、情報を決定すること、情報を予測すること、又は情報を推定することの1つ又は複数を含み得る。
【0225】
加えて本願は様々な情報片を「受信すること」に言及する場合がある。受信することは「アクセスすること」と同様に広義語であることを意図する。情報を受信することは、例えば情報にアクセスすること、又は情報を(例えばメモリから)取り出すことの1つ又は複数を含み得る。更に、「受信すること」は典型的には例えば情報を記憶する操作、情報を処理する操作、情報を伝送する操作、情報を移動する操作、情報を複製する操作、情報を消去する操作、情報を計算する操作、情報を決定する操作、情報を予測する操作、又は情報を推定する操作等の操作中に何らかの形で関与する。
【0226】
例えば「A/B」、「A及び/又はB」、並びに「A及びBの少なくとも1つ」の場合に「/」、「及び/又は」、並びに「~の少なくとも1つ」の何れかを使用することは、最初に挙げられる(A)の選択肢だけを選択すること、又は2番目に挙げられる(B)の選択肢だけを選択すること、又は(A及びB)の両方の選択肢を選択することを包含することを意図する。更なる例として、「A、B、及び/又はC」並びに「A、B、及びCの少なくとも1つ」の場合、かかる表現法は最初に挙げられる(A)の選択肢だけを選択すること、又は2番目に挙げられる(B)の選択肢だけを選択すること、又は3番目に挙げられる(C)の選択肢だけを選択すること、又は最初に挙げられる選択肢及び2番目に挙げられる選択肢(A及びB)だけを選択すること、又は最初に挙げられる選択肢及び3番目に挙げられる選択肢(A及びC)だけを選択すること、又は2番目に挙げられる選択肢及び3番目に挙げられる選択肢(B及びC)だけを選択すること、又は3つ全ての選択肢(A及びB及びC)を選択することを包含することを意図する。当業者及び関連する業者に明らかであるように、この表現法は挙げられているアイテムの数だけ拡張することができる。
【0227】
更に本明細書で使用するとき、「シグナリング」という用語は、とりわけ対応する復号器に何かを示すことを指す。例えば特定の実施形態では、クロマスケール因子インデックスの特定のものを符号器がシグナリングする。このようにして、一実施形態では符号器側及び復号器側の両方において同じパラメータが使用される。従って、例えば符号器は特定のパラメータを復号器に伝送することができ(明確なシグナリング)、それにより復号器は同じ特定のパラメータを使用することができる。逆に、復号器が他のパラメータと共にその特定のパラメータを既に有する場合、単にその特定のパラメータを復号器が知り、選択できるようにするためにシグナリングを伝送なしで使用することができる(暗黙のシグナリング)。任意の実際の機能を伝送することを回避することにより、様々な実施形態においてビットの節約が実現される。シグナリングは様々なやり方で実現できることを理解すべきである。例えば様々な実施形態において対応する復号器に情報をシグナリングするために、1つ又は複数の構文要素、フラグ等が使用される。上記の内容は「signal」という単語の動詞の形態に関するが、「signal」という単語は本明細書では名詞としても使用することができる。
【0228】
当業者に明白であるように、実装は、例えば記憶され又は伝送され得る情報を運ぶようにフォーマットされる様々な信号をもたらすことができる。情報は例えば方法を実行するための命令、又は記載した実装の1つによって作り出されるデータを含み得る。例えば信号は、記載した実施形態のビットストリームを運ぶようにフォーマットされ得る。かかる信号は、例えば電磁波として(例えばスペクトルの無線周波数部分を用いて)、又はベースバンド信号としてフォーマットされ得る。フォーマットすることは、例えばデータストリームを符号化し、符号化データストリームで搬送波を変調することを含み得る。信号が運ぶ情報は、例えばアナログ情報又はデジタル情報とすることができる。信号は、知られているように様々な異なる有線リンク又は無線リンク上で伝送され得る。信号はプロセッサ可読媒体上に記憶され得る。
【0229】
幾つかの実施形態を記載してきた。これらの実施形態の特徴は、様々な特許請求の範囲のカテゴリ及び種類にわたって単独で又は任意の組み合わせで提供することができる。更に、実施形態は様々な特許請求の範囲のカテゴリ及び種類にわたって以下の特徴、装置、又は態様の1つ又は複数を単独で又は任意の組み合わせで含み得る:
・クロマブロックのサイズに応じて、及びことによるとクロマブロックとコロケートする少なくとも1つのルマブロックのサイズに応じて成分間依存ツールを有効化すること。
・単一のクロマ矩形領域の中にクロマブロックがある場合であって、クロマ矩形領域はピクチャのクロマ成分を非重複矩形領域へと分割することによって画定される、クロマブロックがある場合に成分間依存ツールを有効化すること、
・第1のクロマ矩形領域とコロケートするルマ矩形領域の中に少なくとも1つのコロケーテッドルマブロックがある場合であって、前述のルマ矩形領域は前述のピクチャのルマを非重複矩形領域へと分割することによって画定される、少なくとも1つのコロケーテッドルマブロックがある場合に成分間依存ツールを有効化すること、
・記載した構文要素又はその改変形態の1つ又は複数を含むビットストリーム又は信号。
・記載した実施形態の何れかに従って生成される情報を伝える構文を含むビットストリーム又は信号。
・符号器が使用したのと対応するやり方で復号器が成分間依存ツールを有効化/無効化できるようにする構文要素をシグナリング内に挿入すること。
・記載した構文要素又はその改変形態の1つ又は複数を含むビットストリーム又は信号を作成し及び/又は伝送すること、及び/又は受信し及び/又は復号すること。
・記載した実施形態の何れかによる作成及び/又は伝送、及び/又は受信及び/又は復号。
・記載した実施形態の何れかによる方法、プロセス、機器、命令を記憶する媒体、データを記憶する媒体、又は信号。
・記載した実施形態の何れかによる成分間依存ツールの有効化/無効化を行うTV、セットトップボックス、携帯電話、タブレット、又は他の電子装置。
・記載した実施形態の何れかによる成分間依存ツールの有効化/無効化を行い、結果として生じる画像を(例えばモニタ、画面、又は他の種類のディスプレイを使用して)表示するTV、セットトップボックス、携帯電話、タブレット、又は他の電子装置。
・符号化画像を含む信号を受信するために(例えばチューナを使用して)チャネルを選択し、記載した実施形態の何れかによる成分間依存ツールの有効化/無効化を行うTV、セットトップボックス、携帯電話、タブレット、又は他の電子装置。
・符号化画像を含む信号を(例えばアンテナを使用して)無線で受信し、記載した実施形態の何れかによる成分間依存ツールの有効化/無効化を行うTV、セットトップボックス、携帯電話、タブレット、又は他の電子装置。
【0230】
更に、実施形態は様々な特許請求の範囲のカテゴリ及び種類にわたって以下の特徴、装置、又は態様の1つ又は複数を単独で又は任意の組み合わせで含み得る。
【0231】
少なくとも1つの実施形態の全般的な側面によれば、
-クロマブロックのサイズに応じて、及びクロマブロックとコロケートする少なくとも1つのルマブロックのサイズに応じてピクチャの前述のクロマブロックに使用するための成分間依存ツールを有効化すること、
-前述の成分間依存ツールの前述の有効化に応じて前述のクロマブロックを復号すること
を含む、復号方法が提示される。
【0232】
少なくとも1つの実施形態の全般的な側面によれば、
-クロマブロックのサイズに応じて、及びクロマブロックとコロケートする少なくとも1つのルマブロックのサイズに応じてピクチャの前述のクロマブロックに使用するための成分間依存ツールを有効化すること、及び
-前述の成分間依存ツールの前述の有効化に応じて前述のクロマブロックを復号すること
を行うように構成される1つ又は複数のプロセッサを含む、復号機器が提示される。
【0233】
少なくとも1つの実施形態の全般的な側面によれば、
-クロマブロックのサイズに応じて、及びクロマブロックとコロケートする少なくとも1つのルマブロックのサイズに応じてピクチャの前述のクロマブロックに使用するための成分間依存ツールを有効化すること、
-前述の成分間依存ツールの前述の有効化に応じて前述のクロマブロックを符号化すること
を含む、符号化方法が提示される。
【0234】
少なくとも1つの実施形態の全般的な側面によれば、
-クロマブロックのサイズに応じて、及びクロマブロックとコロケートする少なくとも1つのルマブロックのサイズに応じてピクチャの前述のクロマブロックに使用するための成分間依存ツールを有効化すること、及び
-前述の成分間依存ツールの前述の有効化に応じて前述のクロマブロックを符号化すること
を行うように構成される1つ又は複数のプロセッサを含む、符号化機器が提示される。
【0235】
本発明の実施形態の1つ又は複数は、上記の方法の何れかの少なくとも一部に従ってビデオデータを符号化し又は復号するための命令を記憶しているコンピュータ可読記憶媒体も提供する。1つ又は複数の実施形態は、上記の符号化方法に従って生成されるビットストリームを記憶しているコンピュータ可読記憶媒体も提供する。1つ又は複数の実施形態は、上記の符号化方法に従って生成されるビットストリームを伝送し又は受信するための方法及び機器も提供する。1つ又は複数の実施形態は、上記の方法の何れかの少なくとも一部を実行するための命令を含むコンピュータプログラム製品も提供する。
【0236】
一実施形態では、前述の成分間依存ツールがルマ依存クロマ残差スケーリングである。
【0237】
一実施形態では、クロマブロックのサイズに応じて、及びクロマブロックとコロケートする少なくとも1つのルマブロックのサイズに応じてピクチャの前述のクロマブロックに使用するために前述のルマ依存クロマ残差スケーリングを有効化することが、
-前述のルマ依存クロマ残差スケーリングを
・単一のクロマ矩形領域の中にクロマブロックがある場合であって、前述のクロマ矩形領域は前述のピクチャのクロマ成分を非重複矩形領域へと分割することによって画定される、単一のクロマ矩形領域の中にクロマブロックがある場合、及び
・前述のクロマ矩形領域とコロケートする単一のルマ矩形領域の中にクロマブロックとコロケートする少なくとも1つのルマブロックがある場合であって、前述のルマ矩形領域は前述のピクチャのルマを非重複矩形領域へと分割することによって画定される、クロマブロックとコロケートする少なくとも1つのルマブロックがある場合
に有効化すること、並びに
-さもなければ前述のルマ依存クロマ残差スケーリングを無効化すること
を含む。
【0238】
一実施形態では、クロマブロックのサイズに応じて、及びクロマブロックとコロケートする少なくとも1つのルマブロックのサイズに応じてピクチャの前述のクロマブロックに使用するために前述のルマ依存クロマ残差スケーリングを有効化することが、
-前述のルマ依存クロマ残差スケーリングを
・単一のクロマ矩形領域の中にクロマブロックがある場合であって、前述のクロマ矩形領域は前述のピクチャのクロマ成分を非重複矩形領域へと分割することによって画定される、単一のクロマ矩形領域の中にクロマブロックがある場合、及び
・前述のクロマ矩形領域とコロケートする単一のルマ矩形領域の中にクロマブロックとコロケートする全てのルマブロックがある場合であって、前述のルマ矩形領域は前述のピクチャのルマを非重複矩形領域へと分割することによって画定される、クロマブロックとコロケートする全てのルマブロックがある場合
に有効化すること、並びに
-さもなければ前述のルマ依存クロマ残差スケーリングを無効化すること
を含む。
【0239】
一実施形態では、クロマブロックのサイズに応じて、及びクロマブロックとコロケートする少なくとも1つのルマブロックのサイズに応じてピクチャの前述のクロマブロックに使用するために前述のルマ依存クロマ残差スケーリングを有効化することが、
-第1のクロマ矩形領域とコロケートする単一のルマ矩形領域の中にクロマブロックとコロケートする少なくとも1つのルマブロックがある場合であって、前述のクロマ矩形領域は前述のピクチャのクロマ成分を非重複矩形領域へと分割することによって画定され、前述のルマ矩形領域は前述のピクチャのルマを非重複矩形領域へと分割することによって画定される、クロマブロックとコロケートする少なくとも1つのルマブロックがある場合に前述のルマ依存クロマ残差スケーリングを有効化すること、及び
-さもなければ前述のルマ依存クロマ残差スケーリングを無効化すること
を含む。
【0240】
一実施形態では、前述のルマ依存クロマ残差スケーリングが無効化される場合、前述のクロマブロックに隣接する少なくとも1つの復号済み(符号化済みそれぞれの)クロマブロックに関連するクロマスケール因子から、又はかかるクロマスケール因子を識別するインデックスから予測を行うことによって前述のクロマブロックに関するスケール因子が決定される。
【0241】
一実施形態では、前述のルマ依存クロマ残差スケーリングが無効化される場合、前述のクロマブロックに関してビットストリームからデルタ量子化パラメータが復号される(かかるビットストリーム内にそれぞれ符号化される)。
【0242】
別の実施形態では、成分間依存ツールが成分間線形モデル予測である。