(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-07-21
(45)【発行日】2023-07-31
(54)【発明の名称】クロスコンポーネント依存性を低減するための方法
(51)【国際特許分類】
H04N 19/186 20140101AFI20230724BHJP
H04N 19/105 20140101ALI20230724BHJP
H04N 19/176 20140101ALI20230724BHJP
H04N 19/593 20140101ALI20230724BHJP
H04N 19/70 20140101ALI20230724BHJP
【FI】
H04N19/186
H04N19/105
H04N19/176
H04N19/593
H04N19/70
(21)【出願番号】P 2021560242
(86)(22)【出願日】2020-04-22
(86)【国際出願番号】 CN2020086111
(87)【国際公開番号】W WO2020216246
(87)【国際公開日】2020-10-29
【審査請求日】2021-10-12
(31)【優先権主張番号】PCT/CN2019/083846
(32)【優先日】2019-04-23
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】520476341
【氏名又は名称】北京字節跳動網絡技術有限公司
【氏名又は名称原語表記】Beijing Bytedance Network Technology Co., Ltd.
【住所又は居所原語表記】Room B-0035, 2/F, No.3 Building, No.30, Shixing Road, Shijingshan District Beijing 100041 China
(73)【特許権者】
【識別番号】520477474
【氏名又は名称】バイトダンス インコーポレイテッド
【氏名又は名称原語表記】BYTEDANCE INC.
【住所又は居所原語表記】12655 West Jefferson Boulevard, Sixth Floor, Suite No. 137 Los Angeles, California 90066 United States of America
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】デン,ジピン
(72)【発明者】
【氏名】ザン,リー
(72)【発明者】
【氏名】リュウ,ホンビン
(72)【発明者】
【氏名】ザン,カイ
(72)【発明者】
【氏名】シュイ,ジィジォン
【審査官】大濱 宏之
(56)【参考文献】
【文献】Jianle Chen Yan Ye Seung Hwan Kim,Algorithm description for Versatile Video Coding and Test Model 4 (VTM 4) [online], JVET-M JVET-M1002-v2,ITU-T インターネット<URL:http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/13_Marrakech/wg11/JVET-M1002-v2.zip>,2019年03月19日,pp.1, 54-56
【文献】Edouard Francois, Christophe Chevance,Chroma residual scaling with separate luma/chroma tree [online], JVET-N JVET-N0389r2,ITU-T インターネット<URL:http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/14_Geneva/wg11/JVET-N0389-v4.zip>,2019年03月23日,pp.1-3
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00-19/98
(57)【特許請求の範囲】
【請求項1】
ビデオデータを処理する方法であって、
ビデオの現在クロマビデオブロックと、前記ビデオのビットストリームとの間の変換中に、前記現在クロマビデオブロックのクロマ残差サンプルについてスケーリングプロセスが適用されることを決定するステップと、
前記クロマ残差サンプルについて前記スケーリングプロセスを適用することによって前記変換を実行するステップであり、
前記スケーリングプロセスにおいて、前記クロマ残差サンプルは、前記現在クロマビデオブロックを再構成するために使用される前に、少なくとも1つのスケーリング因子に基づいてスケーリングされ、
前記少なくとも1つのスケーリング因子は、前記現在クロマビデオブロックの左上サンプルに対応するルマサンプル
に基づいて決定された前記ビデオのビデオユニットに係る少なくとも1つの隣接ルマブロックに基づいて計算された、平均ルマ変数に基づいて導出され、かつ、
前記少なくとも1つの隣接ルマブロックに
属する第1の隣接ルマブロック
、および、前記ビデオユニットが、異なるビデオ領域に配置されていることに応答して、前記第1の隣接ルマブロックは、使用不可として扱われ、前記
異なるビデオ領域は、
異なるスライスまたは
異なるタイルのうち少なくとも1つを含む、
ステップと、
を
含み、
前記少なくとも1つの隣接ルマブロックが使用不可であることに応答して、前記平均ルマ変数は、デフォルト固定値に設定され、
前記デフォルト固定値は、前記デフォルト固定値が属するピースを識別するインデックスを見つけるために使用され、かつ、
前記少なくとも1つのスケーリング因子は、前記見つけられたインデックスから計算される、
方法。
【請求項2】
前記スケーリングプロセスは区分的線形モデルに基づいて実行され、
インデックスは、前記平均ルマ変数が属するピースを識別しており、かつ、前記少なくとも1つのスケーリング因子は、前記インデックスに基づいて導出される、
請求項1に記載の方法。
【請求項3】
前記デフォルト固定値は、前記ビデオのビット深度に依存している、
請求項
1に記載の方法。
【請求項4】
前記デフォルト固定値は、1<<(bitDepth-1)として表現され、
bitDepthは、前記ビデオのビット深度を示している、
請求項
1乃至3いずれか一項に記載の方法。
【請求項5】
前記少なくとも1つの隣接ルミナンスブロックは、前記ビデオユニットに隣接している、
請求項1乃至
4いずれか一項に記載の方法。
【請求項6】
前記ビデオユニットの位置は、前記現在クロマビデオブロックまたは前記ビデオユニットの1つ以上の特徴に基づいて導出される、
請求項1乃至
5いずれか一項に記載の方法。
【請求項7】
前記1つ以上の特徴は、ブロックサイズおよび位置情報のうち少なくとも1つを含む、
請求項
6に記載の方法。
【請求項8】
前記1つ以上の特徴は、ラインバッファ内に保管されるように控えている、
請求項
6または7に記載の方法。
【請求項9】
前記現在クロマビデオブロックおよび前記ビデオユニットは、同じコーディングツリーユニットの中に配置されている、
請求項1乃至
8いずれか一項に記載の方法。
【請求項10】
前記現在クロマビデオブロックおよび前記ビデオユニットは、同じコーディングツリーユニット行の中に配置されている、
請求項1乃至
9いずれか一項に記載の方法。
【請求項11】
前記変換は、前記現在クロマビデオブロックを前記ビットストリームへと符号化すること、を含む、
請求項1乃至
10いずれか一項に記載の方法。
【請求項12】
前記変換は、前記ビットストリームから前記現在クロマビデオブロックを復号すること、を含む、
請求項1乃至
10いずれか一項に記載の方法。
【請求項13】
プロセッサ、および、命令を含む非一時的なメモリを備える、ビデオデータを処理するための装置であって、前記プロセッサによって実行されると、前記命令は、前記プロセッサに、
ビデオの現在クロマビデオブロックと、前記ビデオのビットストリームとの間の変換中に、前記現在クロマビデオブロックのクロマ残差サンプルについてスケーリングプロセスが適用されることを決定し、かつ、
前記クロマ残差サンプルについて前記スケーリングプロセスを適用することによって前記変換を実行する、
ようにさせ、
前記スケーリングプロセスにおいて、前記クロマ残差サンプルは、前記現在クロマビデオブロックを再構成するために使用される前に、少なくとも1つのスケーリング因子に基づいてスケーリングされ、
前記少なくとも1つのスケーリング因子は、前記現在クロマビデオブロックの左上サンプルに対応するルマサンプル
に基づいて決定された前記ビデオのビデオユニットに係る少なくとも1つの隣接ルマブロックに基づいて計算された、平均ルマ変数に基づいて導出され、かつ、
前記少なくとも1つの隣接ルマブロックに
属する第1の隣接ルマブロック
、および、前記ビデオユニットが、異なるビデオ領域に配置されていることに応答して、前記第1の隣接ルマブロックは、使用不可として扱われ、前記
異なるビデオ領域は、
異なるスライスまたは
異なるタイルのうち少なくとも1つを
含み、
前記少なくとも1つの隣接ルマブロックが使用不可であることに応答して、前記平均ルマ変数は、デフォルト固定値に設定され、
前記デフォルト固定値は、前記デフォルト固定値が属するピースを識別するインデックスを見つけるために使用され、かつ、
前記少なくとも1つのスケーリング因子は、前記見つけられたインデックスから計算される、
装置。
【請求項14】
命令を保管している非一時的なコンピュータ読取り可能記憶媒体であって、前記命令は、プロセッサに、
ビデオの現在クロマビデオブロックと、前記ビデオのビットストリームとの間の変換中に、前記現在クロマビデオブロックのクロマ残差サンプルについてスケーリングプロセスが適用されることを決定し、かつ、
前記クロマ残差サンプルについて前記スケーリングプロセスを適用することによって前記変換を実行する、
ようにさせ、
前記スケーリングプロセスにおいて、前記クロマ残差サンプルは、前記現在クロマビデオブロックを再構成するために使用される前に、少なくとも1つのスケーリング因子に基づいてスケーリングされ、
前記少なくとも1つのスケーリング因子は、前記現在クロマビデオブロックの左上サンプルに対応するルマサンプル
に基づいて決定された前記ビデオのビデオユニットに係る少なくとも1つの隣接ルマブロックに基づいて計算された、平均ルマ変数に基づいて導出され、かつ、
前記少なくとも1つの隣接ルマブロックに
属する第1の隣接ルマブロック
、および、前記ビデオユニットが、異なるビデオ領域に配置されていることに応答して、前記第1の隣接ルマブロックは、使用不可として扱われ、前記
異なるビデオ領域は、
異なるスライスまたは
異なるタイルのうち少なくとも1つを
含み、
前記少なくとも1つの隣接ルマブロックが使用不可であることに応答して、前記平均ルマ変数は、デフォルト固定値に設定され、
前記デフォルト固定値は、前記デフォルト固定値が属するピースを識別するインデックスを見つけるために使用され、かつ、
前記少なくとも1つのスケーリング因子は、前記見つけられたインデックスから計算される、
非一時的なコンピュータ読取り可能記憶媒体。
【請求項15】
ビデオのビットストリームを保管
するための方法であって、前記方法は、
ビデオの現在クロマビデオブロックと、前記ビデオのビットストリームとの間の変換中に、前記現在クロマビデオブロックのクロマ残差サンプルについてスケーリングプロセスが適用されることを決定するステップと、
前記クロマ残差サンプルについて前記スケーリングプロセスを適用することによって前記変換を実行するステップであり、
前記スケーリングプロセスにおいて、前記クロマ残差サンプルは、前記現在クロマビデオブロックを再構成するために使用される前に、少なくとも1つのスケーリング因子に基づいてスケーリングされ、
前記少なくとも1つのスケーリング因子は、前記現在クロマビデオブロックの左上サンプルに対応するルマサンプル
に基づいて決定された前記ビデオのビデオユニットに係る少なくとも1つの隣接ルマブロックに基づいて計算された、平均ルマ変数に基づいて導出され、かつ、
前記少なくとも1つの隣接ルマブロックに
属する第1の隣接ルマブロック
、および、前記ビデオユニットが、異なるビデオ領域に配置されていることに応答して、前記第1の隣接ルマブロックは、使用不可として扱われ、前記
異なるビデオ領域は、
異なるスライスまたは
異なるタイルのうち少なくとも1つを含む、
ステップと、
前記ビットストリームを非一時的なコンピュータ読取り可能記憶媒体に保管するステップと、
を
含み、
前記少なくとも1つの隣接ルマブロックが使用不可であることに応答して、前記平均ルマ変数は、デフォルト固定値に設定され、
前記デフォルト固定値は、前記デフォルト固定値が属するピースを識別するインデックスを見つけるために使用され、かつ、
前記少なくとも1つのスケーリング因子は、前記見つけられたインデックスから計算される、
方法。
【発明の詳細な説明】
【技術分野】
【0001】
本特許文書は、ビデオコーディングおよびデコーディング技術、装置、およびシステムに関する。
【0002】
関連出願の相互参照
本出願は、2019年4月23日に出願された国際特許出願第PCT/CN2019/083846号の優先権および利益を主張する、2020年4月22日に出願された国際特許出願第PCT/CN2020/086111号に基づくものである。上記の全ての特許出願は、その全体が、参照によりここにおいて包含されている。
【背景技術】
【0003】
ビデオ圧縮の進歩にもかかわらず、デジタルビデオは、依然として、インターネットおよび他のデジタル通信ネットワークにおける最大の帯域幅使用を占めている。ビデオの受信および表示が可能な接続されたユーザ機器の数が増加するにつれて、デジタルビデオの利用に対する帯域幅需要は増加し続けることが予想される。
【発明の概要】
【0004】
デジタルビデオコーディング/デコーディングに関連する装置、システム、および方法、そして、具体的には、ビデオコーディング/デコーディングにおけるクロスコンポーネント線形モデル(cross-component linear model、CCLM)予測モードのための単純化された線形モデル導出が説明される。説明される方法は、既存のビデオコーディング標準(例えば、高効率ビデオコーディング(HEVC))、および、将来のビデオコーディング標準(例えば、バーサタイルビデオコーディング(VVC))またはコーデックの両方に適用され得る。
【0005】
一つの代表的な態様において、ビジュアルメディア処理のための方法が開示される。本方法は、ビジュアルメディアデータの現在ビデオブロックと、前記現在ビデオブロックのビットストリーム表現との間の変換中に、前記現在ビデオブロックに関連する併置されたルマブロックの左上サンプルをカバーする対応するルマブロックの隣接サンプルに、少なくとも部分的に、基づいて、前記現在ビデオブロックについてクロスコンポーネント線形モデル(CCLM)、及び/又は、クロマ残差スケーリング(CRS)因子を計算するステップを含む。ここで、前記現在ビデオブロックの1つ以上の特徴が、前記対応するルマブロックを識別するために使用される。
【0006】
別の代表的な態様において、ビジュアルメディア処理のための方法が開示される。本方法は、ビジュアルメディアデータの現在ビデオブロックに係る色成分についてクロマ残差スケーリング(CRS)を選択的にイネーブルするか、または、ディセーブルするかを決定するためにルールを使用するステップであり、前記ルールは、現在ビデオブロックのコード化モード情報、及び/又は、1つ以上の隣接ビデオブロックのコード化モード情報に基づいている、ステップ、および、前記決定に基づいて、前記現在ビデオブロックとビットストリーム表現との間で変換を実行するステップを含む。
【0007】
さらに別の代表的な態様において、ビジュアルメディア処理のための方法が開示される。本方法は、ビジュアルメディアデータの現在ビデオブロックに関連付けられたスライスまたはタイル群におけるビデオブロックに関連付けられた少なくとも1つのクロマブロックに対して、単一クロマ残差スケーリング因子を使用するステップと、前記現在ビデオブロックと、前記現在ビデオブロックのビットストリーム表現との間の変換を実行するステップと、を含む。
【0008】
別の代表的な態様において、ビジュアルメディア処理のための方法が開示される。本方法は、ビジュアルメディアデータの現在ビデオブロックと、前記現在ビデオブロックのビットストリーム表現との間の変換中に、クロマ残差スケーリング因子を導出するステップと、前記ビジュアルメディアデータの他のビデオブロックと共に使用するために、前記クロマ残差スケーリング因子を保管するステップと、前記現在ビデオブロックおよび他のビデオブロックを前記ビットストリーム表現へと変換するために前記クロマ残差因子を適用するステップと、を含む。
【0009】
別の代表的な態様において、ビジュアルメディア処理のための方法が開示される。本方法は、ビジュアルメディアデータの現在ビデオブロックと、前記ビジュアルメディアデータのビットストリーム表現との間の変換中に、前記現在ビデオブロックのクロマ残差因子を計算するステップと、前記ビジュアルメディアデータの第2のビデオブロックと共に使用するために、バッファ内に、前記クロマ残差因子を保管するステップと、前記使用に続いて、前記バッファから前記クロマ残差因子を除去するステップと、を含む。
【0010】
さらに別の例示的な態様では、上述の方法を実施するように構成されたプロセッサを備えるビデオエンコーダまたはデコーダ装置が開示されている。
【0011】
別の例示的な態様では、コンピュータ読取り可能プログラム媒体が開示されている。媒体は、開示された方法のうち1つを実装するためにプロセッサで実行可能な命令を具現化するコードを保管している。
【0012】
さらに別の代表的な態様では、上述の方法は、プロセッサで実行可能なコードの形態で具体化され、そして、コンピュータ読取り可能プログラム媒体に保管されている。
【図面の簡単な説明】
【0013】
【
図1】
図1は、HEVCにおける角度イントラ予測(angular intra prediction)モードの一つの例を示している。
【
図2】
図2は、HEVCではない方向(directional)モードの一つの例を示している。
【
図3】
図3は、CCLMモードに関連する一つの例を示している。
【
図4】
図4は、クロマ(chroma)スケーリングアーキテクチャによるルマ(luma)マッピングの一つの例を示している。
【
図5】
図5は、異なるカラーフォーマットにおけるルマブロックとクロマブロックの一つの例を示している。
【
図6】
図6は、同じカラーフォーマットにおけるルマブロックとクロマブロックの一つの例を示している。
【
図7】
図7は、複数のフォーマットをカバーする併置された(collocated)ルマブロックの一つの例を示している。
【
図8】
図8は、より大きなルマブロック内のルマブロックの一つの例を示している。
【
図9】
図9は、より大きなルマブロック内および境界ボックス内のルマブロックの一つの例を示している。
【
図10】
図10は、本文書において説明されるビジュアルメディア(visual media)
デコーディングまたはビジュアルメディア
エンコーディング技術を実装するためのハードウェアプラットフォームの一つの例に係るブロック図である。
【
図11】
図11は、開示される技術に従ったクロスコンポーネント予測について線形モデル導出のための一つの例示的な方法に係るフローチャートを示している。
【
図12】
図12は、開示される技術を実施することができる一つの例示的なビデオ処理システムのブロック図である。
【
図13】
図13は、ビジュアルメディア処理のための一つの例示的な方法に係るフローチャートを示している。
【
図14】
図14は、ビジュアルメディア処理のための一つの例示的な方法に係るフローチャートを示している。
【
図15】
図15は、ビジュアルメディア処理のための一つの例示的な方法に係るフローチャートを示している。
【
図16】
図16は、ビジュアルメディア処理のための一つの例示的な方法に係るフローチャートを示している。
【
図17】
図17は、ビジュアルメディア処理のための一つの例示的な方法に係るフローチャートを示している。
【発明を実施するための形態】
【0014】
2.1 HEVCに関する簡潔なレビュー
2.1.1 HEVC/H.265におけるイントラ予測
イントラ予測は、考慮されるカラーチャネルにおいて以前に再構成されたサンプルを使用して、所与のTB(変換ブロック(transform block))のサンプルを生成することを含む。イントラ予測モードは、ルマ(luma)チャンネルおよびクロマ(chroma)チャンネルに対して別々に信号化され、クロマチャンネルイントラ予測モードは「DM_CHROMA」モードを介してルマチャンネルイントラ予測モードに任意的に依存している。イントラ予測モードはPB(予測ブロック(prediction block))レベルで信号化されるが、CUの残りのクワッドツリー階層に従って、イントラ予測プロセスがTBレベルで適用され、それにより、1つのTBのコード化がCU内の次のTBのコード化に影響することができ、そして、従って、基準値として使用されるサンプルまでの距離が短縮している。
【0015】
HEVCは、35のイントラ予測モードを含んでいる。DCモード、平面モード(planar mode)モード、および33の方向性(directional)または「角度(angular)」イントラ予測モードである。33の角度イントラ予測モードが
図1に示されている。
【0016】
クロマカラーチャネルに関連するPBについて、イントラ予測モードは、平面、DC、水平、垂直、「DM_CHROMA」モード、または、ときどき対角モード「34」のいずれかで指定される。
【0017】
クロマフォーマット4:2:2および4:2:0について、クロマPBはそれぞれ2つまたは4つのルマPBと(それぞれに)オーバーラップすることがあり、この場合に、DM_CHROMAのルマ方向は、これらのルマPBの左上から取得される。
【0018】
DM_CHROMAモードは、ルマカラーチャネルPBのイントラ予測モードがクロマカラーチャネルPBに適用されることを示している。これのことは比較的に一般的なので、intra_croma_pred_modeの最確モード(most probable mode)符号化方式は、選択さているこのモードを指示してバイアスされている。
【0019】
2.2 汎用性ビデオコーディング(Versatile Video Coding、VVC)アルゴリズムの説明
2.2.1 VVCコーディングアーキテクチャ
HEVCを越える将来のビデオコーディング技術を探求するため、共同ビデオ探求チーム(Joint Video Exploration Team、JVET)が、VCEGおよびMPEGの共同で2015年に設立された。JVETミーティングは、現在、四半期に1回開催されており、そして、新たなコーディング標準は、HEVCと比較して50%のビットレート低減を目指している。新たなビデオコーディング標準は、2018年4月のJVETミーティングにおいてVersatile Video Coding(VVC)として正式に命名され、そして、その時にVVCテストモデル(VTM)の第1のバージョンがリリースされた。VVC標準化に寄与する継続的な努力が行われているため、JVETミーティング毎に新たなコーディング技術がVVC標準に採用されている。VVC作業原案(working draft)および試験モデルVTMは、次いで、毎回ミーティング後に更新される。VVCプロジェクトは、現在、2020年7月のミーティングでの技術的完成(FDIS)を目指している。
【0020】
先行するほとんどの標準と同様に、VVCは、ブロックベースのハイブリッドコーディングアーキテクチャを有しており、画像間(inter-picture)と画像内(intra-picture)予測、および、変換コーディングを、エントロピー符号化を組み合わせている。画像分割構造(partitioning structure)は、入力ビデオをコーディングツリーユニット(coding tree unit、CTU)と呼ばれるブロックへと分割する。CTUは、同じ予測モード(例えば、イントラまたはインター)を共有する領域を定義しているリーフ(leaf)コーディングユニット(CU)を用いて、ネスト化(nested)マルチタイプツリー構造を有する四分木を使用して、コーディングユニット(CU)へと分割される。本文書では、用語「ユニット(“unit”)」は、全ての色成分をカバーする画像の領域を定義する。用語「ブロック(“block”)」は、
特定の色成分(例えば、ルマ)をカバーする領域を定義するために用いられ、そして、4:2:0といったクロマサンプリング形式を考慮する場合には、空間位置が異なることがある。
【0021】
2.2.2 VVCのデュアル/分離ツリー分割
ルマ成分(luma component)およびクロマ成分(chroma component)は、Iスライスについて別個のパーティションツリーを有することができる。別個のツリー分割は、CTUレベルの代わりに、64×64ブロックレベルの下である。VTMソフトウェアでは、デュアルツリーのオンとオフを制御するSPSフラグが存在する。
【0022】
2.2.3 VVCにおけるイントラ予測
2.2.3.1 67のイントラ予測モード
ナチュラルビデオで提示される任意のエッジ方向をキャプチャするために、方向性イントラモードの数は、HEVCで使用されるように、33から65に拡張される。新たな方向性モードは、
図2において赤色の点線の矢印として描かれており、そして、平面(planar)モードおよびDCモードは、同じままである。これらのより高密度の方向性イントラ予測モードは、全てのブロックサイズについて、および、ルマとクロマイントラ予測の両方について適用される。
【0023】
2.2.3.2 クロスコンポーネント線形モデル予測(CCLM)
クロスコンポーネント冗長性を縮小するために、クロスコンポーネント線形モデル(CCLM)予測モードが、JEMにおいて使用される。そのため、クロマサンプルは、以下のような線形モデルを使用することによって、同じCUの再構成ルマサンプルに基づいて予測される。
predc(i,j)=α・recL′(i,j)+β
ここで、predc(i,j)は、CU内の予測クロマサンプルを表し、そして、recL′(i,j)は、同じCUのダウンサンプリングされた再構成ルマサンプルを表している。線形モデルパラメータであるαおよびβは、2つのサンプルからのルマ値とクロマ値との間の関係から導出される。それらは、ダウンサンプリングされた隣接ルマサンプルのセット内で最小サンプル値および最大サンプルを持つルマサンプルであり、そして、対応するクロマサンプルである。
図3は、左上サンプルの位置、および、CCLMモードに関与する現在ブロック(current block)のサンプルの一つの例を示している。線形モデルパラメータであるαおよびβは、以下の式に従って得られる。
【数1】
【数2】
【0024】
ここで、YaおよびXaは、最大のルマサンプル値を有するルマサンプルに係るルマ値およびクロマ値を表している。そして、XbおよびYbは、それぞれに、最小のルマサンプルを有するルマサンプルに係るルマ値およびクロマ値を表している。
図3は、左(left)サンプルおよび上(above)サンプルの位置と、CCLMモードに関与する現在ブロックのサンプルに係る一つの例を示している。
【0025】
パラメータαを計算するための除算操作(division operation)は、ルックアップテーブルを用いて実行される。テーブルを保管するために必要なメモリを低減するために、diff値(最大値と最小値との間の差異)とパラメータαは、指数表記によって表現される。例えば、diffは4ビットの有効部分と指数で近似される。従って、1/diffに対する表は、以下のように、仮数(significand)の16の値について16個の要素へと分割される
DivTable[]={0、7、6、5、5、4、4、3、2、2、1、1、1、1、0}
【0026】
このことは、計算の複雑さ、並びに、必要なテーブルを保管するために必要とされるメモリサイズの両方を低減する利点を有するだろう。
【0027】
なお、上テンプレートおよび左テンプレートは、線形モデル係数を計算すために一緒に使用することができ、それらは、また、LM_AモードおよびLM_Lモードと呼ばれる、他の2つのLMモードにおいても代替的に使用できる。
【0028】
LM_Aモードでは、線形モデル係数を計算するために上テンプレートのみが使用される。より多くのサンプルを得るために、上テンプレートが(W+H)まで拡張される。LM_Lモードでは、線形モデル係数を計算するために左テンプレートのみが使用され。より多くのサンプルを得るために、左テンプレートが(H+W)まで拡張される。
【0029】
非四角ブロックの場合、上テンプレートはW+Wまで拡張され、左テンプレートはH+Hまで拡張される。
【0030】
4:2:0ビデオシーケンスのためのクロマサンプル位置に合わせるために、2種類のダウンサンプリングフィルタをルマサンプルに適用され、水平方向および垂直方向の両方において2対1のダウンサンプリング比率を達成する。ダウンサンプリングフィルタの選択は、SPSレベルフラグによって指定されている。2個のダウンサンプリングフィルタは、以下のとおりであり、それぞれに、「タイプ0(“type-0”)」および「タイプ2(“type-2”)」のコンテンツに対応している。
【数3】
【数4】
【0031】
上基準線(upper reference line)がCTU境界にある場合、ダウンサンプリングされたルマサンプルを作成するためには、1個のルマライン(イントラ予測における一般的なラインバッファ)のみが使用されることに留意すること。
【0032】
このパラメータ計算は、デコーディング処理の一部として実行されるものであり、そして、単なるエンコーダ探索操作としてのものではない。その結果として、αおよびβの値をデコーダに伝達するためにシンタックスは使用されない。
【0033】
クロマ・イントラモードコーディングでは、クロマ・イントラモードコーディングについて合計8つのイントラモードが許可されている。これらのモードは、5個の従来のイントラモード、および、3個のクロスコンポーネント線形モデルモード(CCLM、LM_A、およびLM_L)を含んでいる。クロマモードコーディングは、対応するルマブロックのイントラ予測モードに直接的に依存する。Iスライスにおいては、ルマ成分とクロマ成分について別個のブロック分割構造がイネーブルされているため、1個のクロマブロックが複数のルマブロックに対応し得る。従って、クロマDMモードにつて、現在クロマブロックの中心位置をカバーしている対応するルマブロックのイントラ予測モードが、直接的に継承される。
【0034】
2.2.3.2.1 対応する修正作業原案(JVET-N0271)
以下の仕様は、JVET-M1001の修正作業原案(working draft)およびJVET-N0271における採択に基づいている。採択されたJVET-N0220の変更点が太字と下線で示されている。
【表1】
【0035】
2.2.3.3 その他のイントラ予測の態様
VTM4は、HEVCとは異なる多くのイントラコーディングツールを含んでおり、例えば、以下の特徴が、ボックツリー構造(bock tree structure)の上におけるVVCテストモデル3に含まれている。
・ワイドアングルモード拡張を伴う67イントラモード
・ブロックサイズおよびモード依存4タップ補間フィルタ
・位置依存イントラ予測結合(PDPC)
・クロスコンポーネント線形モデルイントラ予測
・マルチ基準線イントラ予測
・イントラサブパーティション
【0036】
2.2.4 VVCにおけるインター予測
2.2.4.1 結合インターおよびイントラ予測(combined inter and intra prediction、CIIP)
VTM4では、CUがマージモードでコード化され、かつ、CUが少なくとも64ルマサンプルを含む(すなわち、CU幅×CU高さが64以上である)場合に、現在CUに対して結合インター/イントラ予測(CIIP)モードが適用されるか否かを示すために追加フラグが信号化される。
【0037】
CIIP予測を形成するために、イントラ予測モードが、2個の追加シンタックス要素から最初に導出される。4個までのイントラ予測モードが使用され得る。DC、プレーナ、水平、垂直である。次いで、正規の(regular)イントラおよびインター復号化プロセスを使用して、インター予測およびイントラ予測信号が導出される。最終的に、CIIP予測を得るために、インターおよびイントラ予測信号の加重平均が実行される。
【0038】
2.2.4.2 その他のインター予測の態様
VTM4は、HEVCとは異なる多くのコーディングツールを含んでおり、例えば、以下の特徴が、ボックツリー構造の上おけるVVCテストモデル3に含まれている。
・アフィン動作インター予測
・サブブロックベースの時間的動きベクトル予測
・適応動きベクトル分解能
・時間的動作予測のための8×8ブロックベースの動作圧縮(motion compression)
・高精度(1/16 pel)動きベクトルのストレージ、および、ルマ成分について8タップ補間フィルタおよびクロマ成分について4タップ補間フィルタを用いる動き補正
・三角形のパーティション
・結合イントラおよびインター予測
・MVDと合併(MMVD)
・対称MVDコーディング
・双方向の光学フロー
・デコーダ側動きベクトル精緻化
・両予測(bi-predictive)加重平均
【0039】
2.2.5 インループ(in-loop)フィルタ
VTM4には、合計で3個のインループフィルタが存在する。デブロッキングフィルタおよびSAO(HEVCにおける2個のループフィルタ)の他に、VTM4においては適応ループフィルタ(ALF)が適用される。VTM4におけるフィルタリングプロセスの順序は、デブロッキングフィルタ、SAO、そして、ALFである。
【0040】
VTM4において、SAOおよびとデブロッキング・フィルタリングプロセスは、HEVCにおけるものと大部分が同じである。
【0041】
VTM4では、クロマスケーリングを伴うルママッピングと呼ばれる新たなプロセスが追加された(このプロセスは、以前は、適応インループ再形成(reshaper)として知られていた)。この新たなプロセスは、デブロッキングの前に実行される。
【0042】
2.2.6 クロマスケーリングを伴うルママッピング(LMCS、別名、インループ再形成)
VTM4では、クロマスケーリングを伴うルママッピング(luma mapping with chroma scaling、LMCS)と呼ばれる
コーディングツールが、ループフィルタの前に新たな処理ブロックとして追加されている。LMCSは、2個の主要な構成要素を有している。1)適応区分的(piecewise)線形モデルに基づくルマ成分のインループマッピング、2)クロマ成分に対してルマ依存クロマ残差スケーリングが適用される、ことである。
図4は、デコーダの視点からのLMCSアーキテクチャを示している。
図4の明るい青色でシェーディングされたブロックは、マップされたドメインにおいて処理が適用される場所を示しており、そして、これらは、逆量子化、逆変換、ルマ・イントラ予測、および、ルマ残差と一緒にルマ予測を加算すること、を含んでいる。
図4のシェーディングされていないブロックは、元の(すなわち、マップされていない) ドメインにおいて処理が適用される場所を示しており、そして、これらは、デブロッキング、ALF、およびSAOといったループフィルタ、動き補償予測、クロマイントラ予測、クロマ残差と一緒にクロマ予測を加算すること、および、参照ピクチャとしての
デコーディングされた画像のストレージ、を含んでいる。
図4の淡黄色でシェーディングされたブロックは、ルマ信号の前方および逆マッピング、並びに、ルマ依存クロマスケーリングプロセスを含む、新たなLMCS機能ブロックである。VVCの他の大部分のツールと同様に、LMCSは、SPSフラグを使用してシーケンスレベルでイネーブル/ディセーブルすることができる。
【0043】
2.2.6.1 区分的線形モデルを伴うルママッピング
ルマ成分のインループマッピングは、圧縮効率を改善するようにダイナミックレンジにわたりコードワードを再分配することによって入力信号のダイナミックレンジを調整する。ルママッピングは、フォワードマッピング関数FwdMap、および、対応する逆マッピング関数、InvMap、を利用する。FwdMap関数は、16等分の区分的線形モデルを使用して信号化される。InvMap関数は、信号化される必要はなく、そして、代わりに、FwdMap関数から導出される。
【0044】
ルマ・マッピングモデルは、タイル群レベルで信号化される。プレゼンスフラグ(presence flag)が最初に信号化される。ルマ・マッピングモデルが現在のタイル群内に存在する場合、対応する区分的線形モデルパラメータが信号化される。区分的線形モデルは、入力信号のダイナミックレンジを16個のピースへと等分し、そして、各ピースに対して、その線形マッピングパラメータが、そのピースに割り当てられたコードワードの数を使用して表現される。10ビット入力を一つの例にとる。16個のピースそれぞれは、デフォルトで割り当てられた64個のコードワードを有する。コードワードの信号化された数は、スケーリング因子を計算し、そして、ピースについて、それに応じてマッピング関数を調整するために使用される。タイル群レベルでは、別のLMCSイネーブルフラグが、
図4に示されるようなLMCSプロセスが現在のタイル群に適用されるか否かを示すために信号化される。
【0045】
FwdMap区分的線形モデルの各i番目のピース、i=0...15は、2個の入力ピボット点であるInputPivot[]、および、2個の出力(マップされた)ピボット点MappedPivot[]によって定義される。
【0046】
InputPivot[]およびMappedPivot[]は、(10ビットビデオを想定して)以下のように計算される。
1)OrgCW=64
2)i=0:16の場合、InputPivot[i]=i*OrgCW
3)i=0:16の場合、MappedPivot[i]は以下のように計算される。
MappedPivot[0]=0;
for(i=0;i<16;i++)
MappedPivot[i+1]=MappedPivot[i]+SignalledCW[i]
ここで、SignalledCW[i]は、i番目のピースについて信号化されたコードワードの数である。
【0047】
図4に示すように、インター
コード化(inter-coded)ブロックに対して、動き補償予測がマップされたドメインにおいて実行される。言い換えると、DPBにおける参照信号に基づいて動き補償型予測ブロックYpredが計算された後で、FwdMap関数を適用して、元のドメインにおけるルマ予測ブロックをマップされたドメインにマップする、Y’pred=FwdMap(Ypred)。イントラ
コード化(intra-coded)ブロックに対しては、マップされたドメインでイントラ予測が実行されるため、FwdMap関数は適用されない。再構成ブロックYrが計算された後で、InvMap関数を適用して、マップされたドメイン内の再構成されたルマ値を元のドメイン内の再構成されたルマ値に戻すように変換する(Y^i=InvMap(Yr))。InvMap関数は、インター
コード化およびイントラ
コード化ルマブロックの両方に適用される。
【0048】
ルマ・マッピングプロセス(前方及び/又は逆マッピング)は、ルックアップテーブル(LUT)を使用するか、または、オンザフライ計算を使用するかのいずれかで実装することができる。LUTが使用される場合、FwdMapLUTおよびInvMapLUTは、タイル群レベルで使用するために事前に計算され、かつ、事前に保管され得る。そして、順方向および逆マッピングは、それぞれ、FwdMap(Ypred)=FwdMapLUT[Ypred]およびInvMap(Yr)=InvMapLUT[Yr]として簡潔に実装することができる。代替的に、オンザフライ計算が使用されてよい。前方マッピング関数FwdMapを例にとる。ルマサンプルが属するピースを推定するために、サンプル値が6ビット右シフトされる(16等分に相当する)。次いで、そのピースの線形モデルパラメータが検索され、そして、オンザフライで適用して、マップされたルマ値を計算する。iをピースインデックス、a1およびa2を、それぞれに、InputPivot[i]およびInputPivot[i+1]とし、そして、b1およびb2を、それぞれに、MappedPivot[i]およびMappedPivot[i+1]とする。FwdMap関数は、以下のように評価される。
FwdMap(Ypred)=((b2-b1)/(a2-a1))*(Ypred-9a1)+b1
【0049】
InvMap関数は、マップされたドメイン内のピースが等しいサイズではないので、サンプル値が属するピースを決定するときに、簡潔な右ビットシフトの代わりに条件付きチェックが適用されることを要することを除いて、同様の方法でオンザフライで計算することができる。
【0050】
2.2.6.2 ルマ依存クロマ残差スケーリング
クロマ残差スケーリングは、ルマ信号と、対応するクロマ信号との間の相互作用を補償するように設計されている。クロマ残差スケーリングがイネーブルされているか否かも、また、タイル群レベルで信号化される。ルママッピングがイネーブルされており、かつ、デュアルツリーパーティション(分離クロマツリーとしても知られているもの)が現在のタイル群に適用されていない場合には、ルマ依存クロマ残差スケーリングがイネーブルされているか否かを示すために、追加のフラグが信号化される。ルママッピングが使用されない場合、または、現在のタイル群でデュアルツリーパーティションが使用される場合、ルマ依存クロマ残差スケーリングはディセーブルされる。さらに、ルマ依存クロマ残差スケーリングは、面積が4以下のクロマブロックに対して常にディセーブルされている。
【0051】
クロマ残差スケーリングは、対応するルマ予測ブロックの平均値に(イントラ符号化およびインター
コード化ブロックの両方について)依存する。avgY’をルマ予測ブロックの平均として表す。CScaleinvの値は、以下のステップで計算される。
1)InvMap関数に基づいて、avgY’が属する区分的線形モデルのインデックスYIdxを求める。
2)CScaleinv=cScaleInv[YIdx] ここで、cScaleInv[]は事前に計算された16ピースのLUTである。
現在ブロックが、イントラ、CIIP、または、イントラブロックコピー(IBC、別名、現在の画像参照またはCPR)モードとしてコード化される場合、avgY’は、イントラ、CIIP、または、IBC予測ルマ値の平均として計算され、そうでなければ、前方マッピングされたインター予測ルマ値の平均として計算される(
図4におけるY’pred)。サンプルベースで実行されるルママッピングとは異なり、。CScaleinvは、クロマブロック全体について定数値である。CScaleinvを用いて、クロマ残差スケーリングは、以下のように適用される。
エンコーダ側:CResScale=CRes*CScale=CRes/CScaleInv
デコーダ側:CRes=CResScale/CScale=CResScale*CScaleInv
【0052】
2.2.6.3 JVET-N0220での採択を伴うJVET-M1001_v7の対応する作業原案
以下の仕様は、JVET-M1001の修正作業原案およびJVET-N0220における採択に基づいている。採択されたJVET-N0220の変更点が太字と下線で示されている。
【表2】
【0053】
3. 既存の実装の欠点
LMCS/CCLMの現在の設計は、以下の問題を有し得る。
1. LMCSコーディングツールでは、クロマ残差スケーリング因子(factor)は、併置されたルマ予測ブロックの平均値によって導出され、これは、LMCSクロマ残差スケーリングにおけるクロマサンプルの処理のためのレイテンシ(latency)となる。
a)シングル/共有ツリーの場合、レイテンシは、(a)利用可能な全ルマブロックの全ての予測サンプルを待つこと、および、(b)(a)によって得られた全てのルマ予測サンプルを平均化することによって引き起こされる。
b)デュアル/分離ツリーの場合、Iスライスではルマとクロマ成分の分離ブロック分割構造がイネーブルされているため、レイテンシはさらに悪くなる。従って、1つのクロマブロックが複数のルマブロックに対応し、1個の4×4クロマブロックが64×64ルマブロックに対応する可能性がある。従って、最悪の場合は、64×64ルマブロック全体の全ての予測サンプルが利用可能になるまで、現在の4×4クロマブロックのクロマ残差スケーリング因子を待つ必要があり得る。一言で言えば、デュアル/分離ツリーにおけるレイテンシの問題は、はるかに深刻である。
2. CCLMコーディングツールでは、イントラクロマ予測のためのCCLMモデル計算はルマブロックとクロマブロックの両方の左と上の参照サンプルに依存する。また、クロマブロックに対するCCLM予測は、同一CUの並列ルマ再構成サンプルに依存する。このことは、デュアル/分離ツリーでの高いレイテンシを生じるだろう。
・デュアル/分離ツリーの場合、1個の4×4クロマブロックは、64×64ルマブロックに対応し得る。従って、最悪の場合、現在クロマブロックのCCLMプロセスは、対応する64×64ルマブロック全体が再構成されるまで待つ必要があり得る。このレイテンシの問題は、デュアル/分離ツリーにおけるLMCSクロマスケーリングと同様である。
【0054】
4. 例示的な技術および実施形態
この問題に取り組むために、ルマ依存クロマ残差スケーリング、CCLM、および、異なる色成分からの情報に依存する他のコーディングツールにおけるクロスコンポーネント依存性を除去/低減/制限するためのいくつかの方法が提案されたている。
【0055】
以下で説明される詳細な実施形態は、一般的な概念を説明するための例として考慮されるべきである。これらの実施形態は、狭義に解釈されるべきではない。さらに、これらの実施形態は、任意の方法で組み合わせることができる。
【0056】
以下に記載される箇条書き(bullets)は、明示的にLMCS/CCLMに言及しているが、本方法は、異なる色成分からの情報に依存する他のコーディングツールにも適用可能であることに留意されたい。さらに、下記の用語「ルマ(“luma”)」および「クロマ(“chroma”)」は、それぞれRGBカラーフォーマットの「G成分」や「B/R成分」といった、「第1色成分」および「第2色成分」に置き換えることができる。
【0057】
以下の説明において、「併置されたサンプル/ブロック(“collocated sample/block”)」の定義は、VVC作業原案JVET-M1001における併置されたサンプル/ブロックの定義と一致している。より具体的には、4:2:0のカラーフォーマットにおいて、クロマブロックの左上(top-left)サンプルが位置(xTbC,yTbC)にあると仮定すると、併置されたルマブロックの位置の左上サンプル(xTbY,yTbY)は、(xTbY,yTbY)=(xTbC<<1,yTbC<<1)となる。
図5に示すように、現在クロマブロックの左上サンプルは、クロマピクチャの(x=16,y=16)に位置し、その併置されたルマブロックの左上サンプルは、ルマピクチャの併置されたルマブロックのブロック分割にかかわらず、ルマピクチャの(x=32,y=32)に位置する。別の例として、同じ色成分を用いて、
図6に示すように、現在フレーム内の現在ブロックの左上サンプルの位置と、参照フレーム内の併置されたブロックの左上サンプルの位置は同じであるべきであり、現在ブロックの左上サンプルが現在フレーム内の(x,y)であり、現在ブロックの併置されたブロックの左上サンプルが参照フレーム内の同じ位置(x,y)であると仮定する。
【0058】
以下の説明において、「対応するブロック(“corresponding block”)」は、現在ブロックとは異なる場所を有し得る。例えば、現在ブロックと参照フレーム内の対応するブロックとの間にモーションシフト(motion shift)が存在し得る。
図6に示されるように、現在ブロックが現在フレーム内の(x,y)に位置し、かつ、それが動きベクトル(mvx,mvy)を有すると仮定すると、現在ブロックの対応するブロックは、参照フレーム内の(x+mvx,y+mvy)に位置し得る。また、IBC
コード化ブロックでは、併置されたルマブロック(ゼロベクトルで示される)および対応するルマブロック(非ゼロBVで示される)が、現在フレームの異なる場所に配置され得る。別の例では、ルマブロックのパーティションがクロマブロックのパーティション(Iスライスのデュアルツリーパーティション)と整合しない場合、現在クロマブロックの併置されたルマブロックは、併置されたルマブロックの左上サンプルをカバーするオーバーラップしたルマコーディングブロックのパーティションサイズに依存する、より大きなルマブロックに属してよい。
図5に示すように、太字の四角形がブロックのパーティションを示していると仮定すると、64×64ルマブロックは、最初にBTによって分割され、そして、次いで、64×64ルマブロックの右部分がTTによってさらに分割され、それぞれ32×16、32×32、32×16と等しいサイズの3個のルマブロックが得られる。従って、現在クロマブロックの併置されたルマブロックの左上サンプル(x=32,y=32)を見ると、TTパーティションの中央の32×32ルマブロックに属している。この場合、併置されたルマブロックの左上サンプルをカバーする対応するルマブロックを「対応するルマブロック(“corresponding luma block”)」と呼ぶ。従って、この例では、対応するルマブロックの左上サンプルは(x=32,y=16)に配置される。
【0059】
これ以降、DMVD(decoder-side motion vector derivation、デコーダ側動きベクトル導出)は、BDOF(別名BIO)、及び/又は、DMVR(decoder-side motion vector refinement、デコーダ側動きベクトル精緻化)、及び/又は、FRUC(frame rate up-conversion、フレームレートアップコンバージョン)、及び/又は、デコーダにおける動きベクトル及び/又は予測サンプル値を精緻化する他の方法、を表すために使用されている。
LMCSのクロマスケーリングレイテンシの除去およびCCLMのモデル計算
1.
インターコード化ブロックに対して、参照フレーム内の現在ブロックの1個または複数の参照サンプルを用いて、LMCSモードにおけるクロマ残差スケーリング因子を導出することができることが提案されている。
a) 一つの例において、参照ルマサンプルは、クロマ残差スケーリング因子を導出するために直接使用され得る。
i. あるいは、補間は、最初に、参照サンプルに適用され、そして、補間されたサンプルは、クロマ残差スケーリング因子を導出するために使用され得る。
ii. あるいは、異なる参照フレーム内の参照サンプルを使用して、クロマ残差スケーリング因子の導出に使用される最終参照サンプルを導出することができる。
1) 一つの例では、両予測(bi-prediction)コード化ブロックに対して、上記の方法が適用されてよい。
iii. 一つの例において、参照サンプルの強度は、クロマ残差スケーリング因子を導出するために使用される前に、再成形ドメインに変換されてよい。
iv. 一つの例では、参照サンプルの線形結合を使用して、クロマ残差スケーリング因子を導出することができる。
1) 例えば、a×S+bを使用してクロマ残差スケーリング因子を導出することができる。ここで、Sは参照サンプル、aおよびbはパラメータである。一つの例において、aおよびbは、局所照明補償(Localized Illuminate Compensation、LIC)によって導出され得る。
b) 一つの例において、参照フレーム内の参照ルマサンプルの位置は、現在ブロックの動きベクトルに依存し得る。
i. 一つの例では、参照サンプルは、参照ピクチャ内にあり、現在ルマブロックと同じ幅と高さを持つ参照ルマブロックに属する。参照ピクチャ内の参照ルマサンプルの位置は、現在ピクチャ内の対応するルマサンプルの位置として計算され、動きベクトルが加算される。
ii. 一つの例では、参照ルマサンプルの位置は、参照フレーム内の対応するルマサンプルと呼ばれる、現在ルマブロックと現在ブロックの動きベクトルの左上(または中央、または右下(bottom-right))サンプルの位置によって導出される。
1) 一つの例では、整数(integer)動きベクトルを使用して、参照フレーム内の対応するルマサンプルを導出することができる。一つの例では、1個のブロックに関連する動きベクトルは、ゼロに近づくように丸められるか、または、整数の動きベクトルを導出するためにゼロから丸められる。
2) あるいは、分数(fractional)動きベクトルを使用して、参照フレーム内の対応するルマサンプルを導出することができ、その結果、補間プロセスが、分数参照サンプルを導出するために必要とされ得る。
iii. あるいは、参照ルマサンプルの位置は、現在ルマブロックの左上(または中央、または右下)サンプルの位置によって導出される。
iv. あるいは、参照フレーム内の予め定義された位置で複数の対応するルマサンプルを選択して、クロマ残差スケーリング因子を計算され得る。
c) 一つの例では、複数参照ルマサンプルの中央値または平均値を使用して、クロマ残差スケーリング因子を導出することができる。
d) 一つの例では、事前に定義された参照フレーム内の参照ルマサンプルを使用して、クロマ残差スケーリング因子を導出することができる。
i. 一つの例において、予め定義された参照フレームは、参照ピクチャリスト0の0に等しい参照インデックスを有するフレームであってよい。
ii. あるいは、予め定義された参照フレームの参照インデックス及び/又は参照ピクチャリストは、シーケンス/ピクチャ/タイル群/スライス/タイル/CTU行(row)/ビデオユニットレベルで信号化され得る。
iii. あるいは、複数の参照フレーム内の参照ルマサンプルを導出し、平均値または重み付け平均値を使用して、クロマ残差スケーリング因子を得ることができる。
2. LMCSモードにおけるルマサンプルからクロマ残差スケーリング因子を導出するか否か、および導出する方法は、現在ブロックが両予測を適用するか否かに依存し得ることが提案されている。
a) 一つの例では、クロマ残差スケーリング因子は、各予測方向に対して個別に導出される。
3. LMCSモードにおけるルマサンプルからクロマ残差スケーリング因子を導出するか否か、および導出する方法は、現在ブロックがサブブロックベースの予測を適用するか否かに依存し得ることが提案されている。
a) 一つの例では、サブブロックベースの予測はアフィン予測である。
b) 一つの例では、サブブロックベースの予測は代替時間動きベクトル予測(Alternative Temporal Motion Vector Prediction、ATMVP)である。
c) 一つの例では、クロマ残差スケーリング因子は、各サブブロックに対して個別に導出される。
d) 一つの例では、クロマ残差スケーリング因子は、たとえそれがサブブロックによって予測されるとしても、ブロック全体に対して導出される。
i. 一つの例では、1個の選択されたサブブロック(例えば、左上サブブロック)の動きベクトルを使用して、箇条書き1に記載されているように、現在ブロックの参照サンプルを識別することができる。
4. クロマ残差スケーリング因子を導出するために使用されるルマ予測値は、最終ルマ予測値の代わりに中間ルマ予測値であり得ることが提案されている。
a)一つの例では、双方向光学フロー(Bi-Directional Optical Flow(BDOF)、別名BIO)のプロセス前のルマ予測値を使用して、クロマ残差スケーリング因子を導出することができる。
b)一つの例では、デコーダ側動きベクトル精緻化(DMVR)のプロセス前のルマ予測値を使用して、クロマ残差スケーリング因子を導出することができる。
c)一つの例では、LICのプロセス前のルマ予測値を使用して、クロマ残差スケーリング因子を導出することができる。
d)一つの例では、JVET-N0236で提案されているように、予測精緻化光学フロー(Prediction Refinement Optical Flow、PROF)のプロセス前のルマ予測値を用いて、クロマ残差スケーリング因子を導出することができる。
5. 中間動きベクトルは、参照サンプルを識別するために使用され得る。
a)一つの例では、BDOF及び/又はDMVR、及び/又は、他のDMVD法のプロセス前の動きベクトルを使用して、参照サンプルを識別することができる。
b)一つの例では、JVET-N0236で提案されているように、予測精緻化光学フロー(PROF)のプロセスの前の動きベクトルを、参照サンプルを識別するために使用することができる。
6. 現在ブロックがインターモードでコード化されている場合は、上記の方法が適用可能である。
7. IBC
コード化(IBC-coded)ブロックに対して、現在フレームの参照ブロックにおける1個または複数の参照サンプルが、LMCSモードにおけるクロマ残差スケーリング因子を導出するために使用され得ることが提案されている。ブロックIBC
コード化の場合、用語「動きベクトル(“motion vector”)」は、参照ピクチャが現在ピクチャとして設定される、「ブロックベクトル(“block vector”)」とも呼ばれ得る。
a)一つの例では、参照サンプルは、現在ピクチャ内にあり、現在ブロックと同じ幅および高さを有する参照ブロックに属する。参照サンプルの位置は、その対応するサンプルの位置として、動きベクトルを加算して計算され得る。
b)一つの例では、参照ルマサンプルの位置は、動きベクトルを加算する現在ルマブロックの左上(または中央、または右下)サンプルの位置によって導出される。
c)あるいは、参照ルマサンプルの位置は、現在ブロックのブロックベクトルを加算する現在ルマブロックの左上(または中央、または右下)サンプルの位置によって導出されてよい。
d)あるいは、現在ルマブロックの参照領域内の予め定義された位置で複数の対応するルマサンプルを選択して、クロマ残差スケーリング因子を計算してよい。
e)一つの例では、複数の対応するルマサンプルを、クロマ残差スケーリング因子を導出する関数を用いて計算することができる。
i. 例えば、複数の対応するルマサンプルの中央値または平均値を計算して、クロマ残差スケーリング因子を導出することができる。
f) 一つの例において、参照サンプルの強度は、クロマ残差スケーリング因子を導出するために使用される前に、再成形ドメインに変換されてよい。
i. あるいは、参照サンプルの強度は、クロマ残差スケーリング因子を導出するために使用される前に、元のドメインに変換されてよい
8. 現在フレーム内の現在ルマブロックの特定された位置に置かれた1個または複数の予測/再構成されたサンプルが、LMCSモードにおける現在クロマブロックに対するクロマ残差スケーリング因子を導出するために使用できることが提案されている。
a) 一つの例において、現在ブロックがインター
コード化(inter-coded)される場合、現在ルマブロックの中心に位置するルマ予測(または再構成)サンプルが、クロマ残差スケーリング因子を導出するために選択(picked)され得る。
b) 一つの例では、第1のM×Nルマ予測(または再構成)サンプルの平均値は、クロマ残差スケーリング因子を導出するために選択されてよく、ここで、M×Nは、併置されたルマブロックサイズの幅×高さより小さくてよい。
9. CCLMモデルを計算するために使用される手順の全部または一部は、LMCSモードにおける現在クロマブロックのクロマ残差スケーリング因子の導出に使用できることが提案されている。
a) 一つの例では、CCLMモデルパラメータ導出プロセスにおける併置されたルマブロックの隣接ルマサンプルの識別された位置に置かれた参照サンプルが、クロマ残差スケーリング因子を導出するために利用され得る。
i. 一つの例では、これらの参照サンプルが直接的に使用され得る。
ii. あるいは、ダウンサンプリングをこれらの参照サンプルに適用してよく、そして、ダウンサンプリングした参照サンプルを適用してよい。
b) 一つの例では、CCLMモデル計算のために選択されたS個の参照サンプルのうちK個を、LMCSモードにおけるクロマ残差スケーリング因子の導出のために使用することができる。例えば、Kは1、Sは4である。
c) 一つの例では、CCLMモードにおける併置されたルマブロックの参照サンプルの平均/最小/最大値を、LMCSモードにおけるクロマ残差スケーリング因子の導出に使用することができる。
10. クロマ残差スケーリング因子の導出のためのサンプルの選択方法は、現在ブロックの
コード化情報に依存する。
a)
コード化情報は、QP、
コーディングモード、POC、イントラ予測モード、運動情報などを含み得る。
b) 一つの例として、IBC
コード化ブロックまたは非IBC
コード化ブロックでは、サンプルの選択方法が異なることがある。
c) 一つの例において、サンプルの選択方法は、参照ピクチャと現在ピクチャとの間のPOC距離といった、参照ピクチャ情報に基づいて異なることがある。
11. CCLMのクロマ残差スケーリング因子及び/又はモデル計算は、併置されたルマブロックの左上サンプルをカバーする、対応するルマブロックの隣接サンプルに依存し得ることが提案されている。本発明において、「
コーディングブロック(“coding block”)」とは、HEVC仕様書またはVVC作業原案に規定されるCU/TU/PUといったビデオ
コーディング領域を指すことができる。
a)「対応するルマ
コーディングブロック(“corresponding luma coding block”)」は、併置されたルマ
コーディングブロックの左上の位置をカバーする
コーディングブロックとして定義され得る。
i.
図5は、デュアルツリーの場合のイントラ
コード化クロマブロックについて、クロマ成分のCTUパーティションが、ルマ成分のCTUパーティションとは異なることがある、一つの例を示している。最初に、現在クロマブロックの併置されたルマブロックの左上サンプルをカバーする「対応するルマ
コーディングブロック」が検索される。次いで、「対応するルマ
コーディングブロック」のブロックサイズ情報を使用することにより、「対応するルマ
コーディングブロック」の左上サンプルが導出され得る。併置されたルマブロックの左上サンプルをカバーする「対応するルマ
コーディングブロック」の左上サンプルが(x=32,y=16)に配置される。
b) 一つの例では、ブロックサイズ/パーティション/位置/調整は、併置されたルマコーディングブロックの左上サンプルをカバーする「対応するルマ
コーディングブロック」の位置を導出するために必要とされ得る。
i. 一つの例では、ブロックサイズ、及び/又はブロック分割、及び/又はブロック協調は、ルマ成分などの特定の色成分の各ブロックに対して保管されてよい。
ii. 一つの例では、「対応するルマ
コーディングブロック」と現在ブロックは、常に同一のCTUまたはCTU行内にあってよく、従って、ブロックサイズ/パーティション/位置/調整のストレージがラインバッファ内に無いことがある。
c) 一つの例では、「対応するルマ
コーディングブロック」に無い再構成されたサンプルを使用して、CCLMのクロマ残差スケーリング因子及び/又はモデル計算を導出することができる。
i. 一つの例では、「対応するルマ
コーディングブロック」に隣接する再構成されたサンプルを使用して、CCLMのクロマ残差スケーリング因子及び/又はモデル計算を導出することができる。
1) 一つの例では、「対応するルマ
コーディングブロック」の左隣接する列(column)及び/又は上隣接する行(row)に位置するN個のサンプルを使用して、クロマ残差スケーリング因子及び/又はCCLMのモデル計算を導出することができる。ここで、N=1...2W+2H、WおよびHは「対応するルマ
コーディングブロック」の幅および高さである。
a) 「対応するルマ
コーディングブロック」の左上サンプルが(xCb,yCb)であると仮定すると、一つの例では、上隣接するルマサンプルは(xCb+W/2,yCb-1)または(xCb-1,yCb-1)に置かれてよい。別の例では、左隣接するルマサンプルが(xCb+W-1,yCb-1)に置かれてよい。
b) 一つの例において、隣接サンプル位置は、固定されてよく、かつ/あるいは、予め定義されたチェック順序であってよい。
2) 一つの例において、N個の隣接サンプルのうちの1個を選択して、クロマ残差スケーリング因子及び/又はCCLMのモデル計算を導出することができる。N=3、および、3個の隣接サンプル(xCb-1、yCb-H-1)、(xCb+W/2、yCb-1)、(xCb-1、yCb-1)のチェック順序を仮定すると、チェックリストにおける最初の利用可能な隣接サンプルが、クロマ残差スケーリング因子を導出するために選択され得る。
3) 一つの例において、「対応するルマ
コーディングブロック」の左隣接する列、及び/又は、上隣接する行に置かれたN個のサンプルの中央値または平均値を使用して、クロマ残差スケーリング因子及び/又はCCLMのモデル計算を導出することができる。ここで、N=1...2W+2H、WおよびHは「対応するルマ
コーディングブロック」の幅および高さである。
d) 一つの例において、クロマ残差スケーリングを実行するか否かは、対応するルマブロックの「利用可能な(“available”)」隣接サンプルに依存し得る。
i. 一つの例において、隣接サンプルの「利用可能性」は、現在ブロック/サブブロックの符号化モード、及び/又は、隣接サンプルの符号化モードに依存し得る。
1) 一つの例では、インターモードで
コード化されたブロックについて、イントラモード、及び/又はIBCモード、及び/又はCIIPモード、及び/又はLICモードで
コード化された隣接サンプルは、「使用不可(“unavailable”)」とみなされ得る。
2) 一つの例では、インターモードで
コード化されたブロックについて、拡散フィルタ、及び/又は双方向(bilateral)フィルタ、及び/又はアマダール変換(Hadamard transform)フィルタを採用する、隣接サンプルは「使用不可」とみなされ得る。
ii. 一つの例において、隣接サンプルの「利用可能性」は、現在の画像/タイル/タイル群/VPDU/スライスの幅及び/又は高さに依存し得る。
1) 一つの例では、隣接ブロックが現在ピクチャの外側に位置する場合には、「使用不可」として扱われる。
iii. 一つの例では、「利用可能」な隣接サンプルが無い場合、クロマ残差スケーリングを禁止してよい。
iv. 一つの例において、「利用可能」な隣接サンプルの数がK(K>=1)より小さい場合、クロマ残差スケーリングは許容されなくてよい。
v. あるいは、利用できない隣接サンプルは、クロマ残差スケーリングが常に適用され得るように、デフォルトの固定値、またはパディング、または置換によって満たされてよい。
1) 一つの例では、隣接サンプルが利用できない場合、1<<(bitDepth-1)により埋めることができる。ここで、bitDepthはルマ/クロマ成分のサンプルのビット深度を指定する。
2) あるいは、隣接サンプルが利用できない場合、左/右/上/下隣接に位置する周囲サンプルからパディングすることによって満たすことができる。
3) あるいは、隣接サンプルが利用できない場合、予め定義されたチェック順序で、最初の利用可能な隣接サンプルによって置き換えられてよい。
4) あるいは、隣接サンプルが利用できない場合、事前に定義されたフィルタリングされ/マップされた値の(例えば、1<<(bitDepth-1)フィルタリングされ/マップされた値、ここでbitDepthはルマ/クロマ成分のサンプルのビット深度を指定する)によって満たされてよい。
a) 一つの例において、フィルタリング/マッピングプロセスは、LMCSの前方マッピングのLUTインデックス化であり得る。
e) 一つの例において、クロマ残差スケーリングを実行するか否か、および、どのように実行するかは、現在ブロックの
コーディングモード、及び/又は、近隣ブロックの
コーディングモードに依存し得る。
i. 「現在ブロック(“current block”)」は、現在クロマブロック、または併置されたルマブロック、または併置されたクロマブロックの少なくとも1つのサンプルをカバーする対応するルマブロックを指すことができる。「隣接ブロック(“neighbour blocks”)」(近接(adjacent)または非近接)は、現在クロマブロックに隣接するクロマブロック、または、現在ルマブロックに隣接するルマブロックを指すことができる。
ii. 一つの例において、1個のルマ隣接ブロックの
コーディングモードは、現在ブロックの左上座標に対して相対的に(-1,-1)といった所与の位置をカバーする。
iii. 一つの例において、複数の隣接ブロックの
コーディングモードは、(x,-1)(例えば、xが0...ブロックの幅から1を引いたものまで)現在ブロックの左上座標に対して相対的に複数の位置をカバーする、かつ/あるいは、(-1,y)(例えば、yが-1...ブロックの高さから1を引いたものまで)現在ブロックの左上座標に対して相対的に複数の位置をカバーするように利用することができる。
iv. 一つの例において、隣接ブロックの再構成が、X
コード化(x-coded)されるように、現在のスライス/タイル群のサンプルにアクセスすることを必要とする場合、クロマ残差スケーリングはディセーブルされる。
1) 例えば、モードXはイントラモードであってよい。
2) 例えば、モードXはCIIPモードであってよい。
3) 例えば、モードXはIBCモードであってよい。
4) 一つの例では、現在ブロックがCIIP
コード化ではなくインター
コード化であり、かつ、対応するルマブロックに隣接する隣接ブロックがモードXで
コード化されている場合、クロマ残差スケーリングはディセーブルされる。
v. 一つの例において、1個の隣接ブロックの再構成が、X
コード化されるように、現在のスライス/タイル群のサンプルにアクセスすることを必要とする場合、デフォルト値を使用して、クロマ残差スケーリング因子を導出することができる。
1) 例えば、モードXはイントラモードであってよい。
2) 例えば、モードXはCIIPモードであってよい。
3) 例えば、モードXはIBCモードであってよい。
4) 一つの例では、現在ブロックが、CIIP
コード化ではなく、インター
コード化であり、かつ、対応するルマブロックの近隣ブロックがモードXで
コード化されている場合、デフォルト値を使用して、クロマ残差スケーリング因子を導出することができる。
5) 一つの例では、デフォルト値は、ルマ/クロマサンプルのビット深度に依存し得る。
6) 一つの例では、デフォルト値をフィルタリングされ/マッピングされた値1<<(bitDepth-1)に設定することができる。ここで、bitDepthは、ルマ/クロマ成分のサンプルのビット深度を指定する。一つの例において、フィルタリング/マッピングプロセスは、LMCSの前方マッピングのLUTインデックス化であり得る。
f) 一つの例において、「対応するルマ
コーディングブロック」に隣接するフィルタリングされ/マッピングされた再構成されたサンプルは、CCLMのクロマ残差スケーリング因子及び/又はモデル計算を導出するために使用され得る。
i. 一つの例において、フィルタリング/マッピングプロセスは、イントラブロックのための参照平滑化フィルタリング(reference smoothing filtering)、双方向フィルタといったポストフィルタリング、アマダール変換ベースのフィルタ、再成形ドメインの前方マッピング、などを含んでよい。
12. 固定値を用いて、現在のスライス/タイル群におけるクロマブロック数(CUまたはTUといったもの)についてクロマ残差スケーリング因子を導出することが提案されている。
a) 一つの例では、N個クロマブロックのクロマ残差スケーリング因子は、固定値によって導出され得る。ここで、Nは、1...現在のスライス/タイル群におけるクロマブロックの総数である。
b) 一つの例では、固定値を使用して、その値が属する区分的線形モデルのインデックスを見つけることができる。そして、次いで、クロマ残差スケーリング因子が、導出された区分的インデックスから計算され得る。一つの例において、固定値は、ルマサンプルの内部ビット深度に依存し得る。
c) 一つの例において、固定値は、クロマ残差スケーリング因子を表すために直接的に使用されてよい。
クロマ残差スケーリング及び/又はCCLMを適用するか否かに対する制限
13. クロマ残差スケーリングまたはCCLMが適用されるか否かは、対応するルマブロック及び/又は併置されたルマブロックのパーティションに依存することが提案されている。
a) 一つの例では、クロスコンポーネント情報でツールをイネーブルまたはディセーブルにするかは、併置されたルマ(例えば、YまたはGコンポーネント)ブロック内のCU/PU/TUの数に依存し得る。
i. 一つの例では、併置されたルマ(例えば、YまたはGコンポーネント)ブロック内のCU/PU/TUの数が数の閾値を超える場合、そうしたツールはディセーブルされ得る。
ii. あるいは、クロスコンポーネント情報でツールをイネーブルまたはディセーブルにするかは、パーティションツリーの深さに依存し得る。
1) 一つの例では、併置されたルマブロック内のCUの最大(または最小、平均、または、他の変動)四分木深さが閾値を超える場合、そうしたツールはディセーブルされ得る。
2) 一つの例では、併置されたルマブロック内のCUの最大(または最小、平均、または他の変動)BT及び/又はTT深さが閾値を超える場合、そうしたツールはディセーブルされ得る。
iii. あるいは、さらに、クロスコンポーネント情報でツールをイネーブルまたはディセーブルにするかは、クロマブロックのブロック・ディメンション(dimension)に依存し得る。
iv. また、クロスコンポーネント情報でツールをイネーブルまたはディセーブルにするかは、併置されたルマが複数のVPDU/事前に定義された領域サイズを横断するか否かに依存し得る。
v. 上述の説明における閾値は、固定数であってよく、または、信号化されてよく、もしくは、標準的なプロファイル/レベル/層に依存し得る。
b) 一つの例において、現在クロマブロックの併置されたルマブロックが複数のパーティションによって(例えば、
図7において)分割される場合、クロマ残差スケーリング及び/又はCCLMが禁止され得る。
i. あるいは、現在クロマブロックの併置されたルマブロックが分割されていない場合(例えば、1つのCU/TU/PU内)、クロマ残差スケーリング及び/又はCCLMが適用され得る。
c). 一つの例では、現在クロマブロックの併置されたルマブロックがM個以上のCU/PU/TUを含む場合、クロマ残差スケーリング及び/又はCCLMが禁止され得る。
i. 一つの例において、Mは、1より大きい整数であり得る。
ii. 一つの例において、Mは、CCLMであるか、または、クロマ残差スケーリングプロセスであるかに依存し得る。
iii. Mは、固定数であってよく、信号化でされてよく、もしくは、標準的なプロファイル/レベル/階層に依存し得る。
d) 併置されたルマブロック内の上述のCUは、併置されたルマブロック内の全てのCUと解釈されてよい。あるいは、併置されたルマブロック内のCUは、併置されたルマブロックの境界に沿ったCUといった、併置されたルマブロック内の部分的なCUと解釈されてよい。
e) 連結ルマブロック内の上述のCUは、サブCUまたはサブブロックと解釈されてよい。
i. 例えば、サブCUまたはサブブロックは、ATMVPで使用され得る。
ii. 例えば、サブCUまたはサブブロックは、アフィン予測で使用され得る。
iii. 例えば、サブCUまたはサブブロックは、イントラ・サブパーティション(Intra Sub-Partitions、ISP)モードで使用され得る。
f) 一つの例では、併置されたルマブロックの左上のルマサンプルをカバーするCU/PU/TUが事前に定義されたルマブロックサイズより大きい場合、クロマ残差スケーリング及び/又はCCLMが禁止され得る。
i. 一つの例が
図8に示されており、併置されたルマブロックは32×32であるが、64×64に等しいサイズの対応するルマブロック内にある。そして、事前に定義されたルマブロックサイズが32×64であれば、この場合、クロマ残差スケーリング及び/又はCCLMは禁止される。
ii. あるいは、現在クロマブロックの併置が分割されておらず、そして、併置されたルマブロックの左上のルマサンプルをカバーする対応するルマブロックが、事前に定義された境界ボックス内に完全に含まれている場合、現在クロマブロックのクロマ残差スケーリング及び/又はCCLMが適用され得る。境界ボックスは、
図9に示されるように、W×Hで示される幅Wおよび高さHを有する長方形として定義され得る。ここで、対応するルマブロックは、幅32および高さ64を有し、そして、境界ボックスは、幅40および高さ70を有する。
1) 一つの例において、境界ボックスのサイズW×Hは、CTU幅及び/又は高さに従って、または、CU幅及び/又は高さに従って、もしくは、任意の値に従って定義され得る。
g) 一つの例では、現在クロマブロックの併置されたルマブロックが複数のパーティションで分割されている場合、LMCSモードでクロマ残差スケーリング因子を導出するためには、併置されたルマブロックの事前に定義されたパーティション内の予測サンプル(または再構成されたサンプル)のみが使用される。
i. 一つの例では、併置されたルマブロックの第1パーティションにおける全ての予測サンプル(または再構成サンプル)の平均が使用され、LMCSモードにおけるクロマ残差スケーリング因子を導出する。
ii. あるいは、併置されたルマブロックの第1パーティションにおける左上の予測サンプル(または再構成サンプル)が使用され、LMCSモードにおけるクロマ残差スケーリング因子を導出する。
iii. あるいは、併置されたルマブロックの第1パーティションにおける中心予測サンプル(または再構成サンプル)が使用され、LMCSモードにおけるクロマ残差スケーリング因子を導出する。
h) CCLMやLMCSといったクロスコンポーネントツールを適用するか否か、そして、どのように適用するかは、併置されたルマブロックの少なくとも1個のサンプルをカバーする1個または複数のルマCUのコーディングモードに依存することが提案されている。
i. 例えば、併置されたルマブロックの少なくとも1個のサンプルをカバーする1個または複数のルマCUがアフィンモードでコード化される場合、クロスコンポーネントツールはディセーブルされる。
ii. 例えば、併置されたルマブロックの少なくとも1個のサンプルをカバーする1個または複数のルマCUが両予測でコード化される場合、クロスコンポーネントツールはディセーブルされる。
iii. 例えば、併置されたルマブロックの少なくとも1個のサンプルをカバーする1個または複数のルマCUがBDOFでコード化されている場合、クロスコンポーネントツールはディセーブルされる。
iv. 例えば、併置されたルマブロックの少なくとも1個のサンプルをカバーする1個または複数のルマCUがDMVRでコード化されている場合、クロスコンポーネントツールはディセーブルされる。
v. 例えば、併置されたルマブロックの少なくとも1個のサンプルをカバーする1個または複数のルマCUがJVET-N0217で提案されているマトリックスアフィン予測モードでコード化されている場合、クロスコンポーネントツールはディセーブルされる。
vi. 例えば、併置されたルマブロックの少なくとも1個のサンプルをカバーする1個または複数のルマCUがインターモードでコード化された場合、クロスコンポーネントツールはディセーブルされる。
vii. 例えば、併置されたルマブロックの少なくとも1個のサンプルをカバーする1個または複数のルマCUがISPモードでコード化されている場合、クロスコンポーネントツールはディセーブルされる。
viii. 一つの例において、「併置されたルマブロックの少なくとも1個のサンプルをカバーする1個または複数のルマCU」は、対応するルマブロックを参照し得る。
i) CCLM/LMCSが禁止されている場合は、CCLM/LMCSの使用の指示を信号化することが省略されてよい。
j) 本開示において、CCLMは、LMモード、LM-Tモード、およびLM-Lモードを含む、CCLMの任意のバリアントモードを参照し得る。
14. CCLMおよびLMCSといったクロスコンポーネントツールをクロマブロックの一部に適用するか否か、および適用する方法が提案されている。
a) 一つの例では、クロマサブブロックレベルでCCLMやLMCSといったクロスコンポーネントツールを適用するか否か、および適用する方法である。
i. 一つの例では、クロマサブブロックは、クロマCU内の2×2または4×4ブロックとして定義される。
ii. 一つの例では、クロマサブブロックについて、現在クロマCUの対応するルマ
コーディングブロックがサブブロックの対応するブロックの全てのサンプルをカバーする場合、CCLMが適用され得る。
iii. 一つの例では、クロマサブブロックについて、対応するブロックの全てのサンプルが現在クロマCUの対応するルマ
コーディングブロックによってカバーされていない場合、CCLMは適用されない。
iv. 一つの例では、CCLMまたはLMCSのパラメータは、サブブロックをクロマCUとして扱うように、各クロマサブブロックに対して導出される。
v. 一つの例では、CCLMまたはLMCSがクロマサブブロックに適用される場合、併置されたブロックのサンプルが使用され得る。
LMCSモードにおけるクロマ残差スケーリングの適用性
15. ルマ依存クロマ残差スケーリングを適用できるか否かは、JVET-M1001で指定されるタイル群ヘッダに加えて、他のシンタックスレベルで信号化され得ることが提案されている。
a) 例えば、chroma_residual_scale_flagは、シーケンスレベルで(例えば、SPS)、画像レベルで(例えば、PPSまたはピクチャヘッダ)、スライスレベルで(例えば、スライスヘッダ)、タイルレベルで、CTU行レベルで、CTUレベルで、CUレベルで信号化され得る。chroma_residual_scale_flagが1に等しいことは、信号化されたシンタックスレベル以下のCUに対してクロマ残差スケーリングがイネーブルされることを指定する。chroma_residual_scale_flagが0等しいことは、信号化されたシンタックスレベル以下についてクロマ残差スケーリングがイネーブルされないことを指定する。chroma_residual_scale_flagが存在しない場合は、0に等しいものと推定される。
b) 一つの例では、クロマ残差スケーリングがパーティションノードレベルで制約されている場合。chroma_residual_scale_flagは、パーティションノードでカバーされているCUについて信号化されず、そして、0であると推定され得る。一つの例において、パーティションノードは、CTUであってよい(CTUは、四分木パーティションのルートノードとして扱われる)。
c) 一つの例では、32×32以下のクロマブロックサイズについてクロマ残差スケーリングが制約されている場合に、chroma_residual_scale_flagは、32×32以下のクロマブロックサイズについて信号化されず、そして、0であると推定され得る。
CCLMモードの適用性
16. CCLMモードを適用できるか否かは、JVET-M1001で指定されるspsレベルに加えて、他のシンタックスレベルで信号化され得ることが提案されている。
a) 例えば、画像レベルで(例えば、PPSまたは画像ヘッダ)、スライスレベルで(例えば、スライスヘッダ)、タイル群レベルで(例えば、タイル群ヘッダ)、タイルレベルで、CTU行レベルで、CTUレベルで、CUレベルで信号化され得る。
b) 一つの例では、CCLMが適用できない場合、cclm_flagは信号化されず、そして、0であると推定され得る。
i. 一つの例では、8×8以下のクロマブロックサイズについてでクロマ残差スケーリングが制約されている場合、cclm_flagは、8×8以下のクロマブロックサイズについて信号化されず、そして、0であると推定され得る。
イントラモードおよびインターモードに対するクロマ残差スケーリング因子の導出の統一
17. クロマ残差スケーリング因子は、ルマブロックを
エンコーディング/デコーディングした後に導出され、記憶され、次の
コード化ブロックのために使用されるかもしれない。
a) 一つの例では、ルマブロック内の、所定の予測サンプル、及び/又は中間予測サンプル、及び/又は再構成サンプル、及び/又はループフィルタリング前(例えば、デブロッキングフィルタ、及び/又はSAOフィルタ、及び/又は双方向フィルタ、及び/又はアマダール変換フィルタ、及び/又はALFフィルタによって処理される前)の再構成サンプルが、クロマ残差スケーリング因子の導出のために使用され得る。
i. 例えば、ルマブロックの下の行(bottom row)及び/又は右の列(right column)の部分的サンプルが、クロマ残差スケーリング因子の導出のために使用され得る。
b) シングルツリーの場合、イントラモード、及び/又はIBCモード、及び/又はインターモードでコード化されたブロックを
エンコーディングする場合、隣接ブロックの導出されたクロマ残差スケーリング因子が、現在ブロックのスケーリング因子を導出するために使用され得る。
i. 一つの例では、所定の隣接ブロックが順番にチェックされ、そして、第1の利用可能なクロマ残差スケーリング因子が現在ブロックに使用され得る。
ii. 一つの例では、所定の隣接ブロックが順番にチェックされ、そして、スケーリング因子が第1のK個の利用可能な隣接クロマ残差スケーリング因子に基づいて導出され得る。
iii. 一つの例では、インターモード及び/又はCIIPモードで
コード化されたブロックについて、隣接ブロックがイントラモード、及び/又はIBCモード、及び/又はCIIPモードで
コード化された場合、隣接ブロックのクロマ残差スケーリング因子は「利用不可能(“unavailable”)」とみなされ得る。
iv. 一つの例では、隣接ブロックは、左(または左上)->上(または右上)の順序でチェックされ得る。
1) あるいは、隣接ブロックは、上(または右上)->左(または左上)の順序でチェックされ得る。
c) 別個のツリーの場合、クロマブロックを
エンコーディングするとき、対応するルマブロックが最初に識別され得る。次いで、導出された隣接ブロックのクロマ残差スケーリング因子(例えば、対応するルマブロック)が、現在ブロックのスケーリング因子を導出するために使用され得る。
i. 一つの例では、所定の隣接ブロックが順番にチェックされ、第1の利用可能なクロマ残差スケーリング因子が現在ブロックに使用され得る。
ii. 一つの例では、所定の隣接ブロックが順番にチェックされ、そして、スケーリング因子が第1のK個の利用可能な隣接クロマ残差スケーリング因子に基づいて導出され得る。
d) 隣接ブロックは事前に定義された順序でチェックされ得る。
i. 一つの例では、隣接ブロックは、左(または左上)->右(または右上)の順序でチェックされ得る。
ii. 一つの例では、隣接ブロックは、上(または右上) ->左(または左上)の順序でチェックされ得る。
iii. 一つの例では、隣接ブロックは、左下->左->右上->上->左上の順序でチェックされ得る。
iv. 一つの例では、隣接ブロックは、左->上->右上->左下->左上の順序でチェックされ得る。
e) 一つの例では、クロマ残差スケーリングを適用するか否かは、隣接ブロックの「可用性(“availability”)」に依存し得る。
i. 一つの例では、「利用可能な(“available”)」隣接ブロックが存在しない場合、クロマ残差スケーリングが禁止(disallowed)され得る。
ii. 一つの例では、「利用可能な」隣接ブロックの数がK(K>=1)より小さい場合、クロマ残差スケーリングが禁止され得る。
iii. あるいは、「利用可能な」隣接ブロックが存在しない場合、クロマ残差スケーリング因子はデフォルト値によって導出され得る。
1) 一つの例では、クロマ残差スケーリング因子を導出するために、デフォルト値1<<(BitDepth-1)が使用され得る。
f) 一つの例では、現在クロマブロックのクロマ残差スケーリング因子が、保管され、そして、次の
コード化ブロックについて使用され得る。
g) 一つの例では、クロマ残差スケーリング因子のストレージは、ラインバッファから除去されてよい。
i. 一つの例において、現在ブロックおよびアクセスされる隣接(近接または非近接)ブロックが異なる領域内にある場合、そのクロマ残差スケーリング因子は「利用不可能」とみなされ得る。そして、現在ブロックのクロマ残差スケーリング因子の導出に使用されなくてよい。
1) 領域は、スライス、タイル、タイル群、CTU行、またはCTUであり得る。
2) あるいは、そのクロマ残差スケーリング因子は、そうした場合にデフォルト値として考慮され得る。
3) あるいは、クロマ残差スケーリングは、そうした場合に適用できない。
h) 一つの例では、現在クロマブロックのクロマ残差スケーリング因子がオンザフライで更新され、そして、次のブロックのスケーリング因子導出のために履歴テーブルに保存され得る。
i. 履歴テーブルは、FIFO(first-in first-out、先入れ先出し)方式で更新され得る。
ii. クロマブロックを
デコーディング/エンコーディングした後で、クロマ残差スケーリングファクタが導出され(例えば、ルマ値に従って)、そして、FIFO履歴テーブル内に保管され得る。
iii. 一つの例では、FIFO履歴テーブルは、多くても1エントリーを含み得る。この場合、最新の
デコーディングされたブロックの導出されたクロマ残差スケーリング因子が、現在ブロックに使用される。
iv. 一つの例では、履歴テーブルは、画像、及び/又はスライス、及び/又はタイル群、及び/又はタイル、及び/又はCTU行、及び/又はCTUを
エンコーディング/デコーディングする前にリフレッシュされる。
1) 一つの例では、デフォルトのクロマ残差スケーリング因子は、履歴テーブルがリフレッシュされるときに履歴テーブルの中へ置かれてよい。
2) 一つの例では、FIFO履歴テーブルがリフレッシュされるとき、履歴テーブルはエンプティに設定される。
【0060】
5. 実施形態
5.1 実施例1
以下の実施形態は、本文書のセクション4における例示的な実施形態に係るアイテム11における方法のためのものである。
新たに追加された部分は太字、下線、イタリック体で強調表示されており、そして、VVC作業原案から削除された部分は大文字で強調表示されている。修正は、最新のVVC作業原案(JVET-M1007-v7)およびJVET-N220-v3での新たな採用に基づいている。
【表3】
【0061】
5.2 実施例2
以下の実施形態は、本文書のセクション4における例示的な実施形態に係るアイテム11における方法のためのものである。
新たに追加された部分は太字、下線、イタリック体で強調表示されており、そして、VVC作業原案から削除された部分は大文字で強調表示されている。修正は、最新のVVC作業原案(JVET-M1007-v7)およびJVET-N220-v3での新たな採用に基づいている。
実施例2と実施例1との間の相違は、以下のとおりである。
- クロマ残差スケーリング因子を導出するために、複数の隣接ルマサンプルがチェックされること。
- 隣接ルミネータのサンプルが利用可能でない場合、または、隣接ルマがINTRA/CIIP/IBCモードでコード化され、一方で、現在はINTERモードでコード化されている場合、実施例2は、クロマ残差スケーリング因子の導出のためにデフォルト値を使用すること。
【表4】
【0062】
6. 開示される技術の実施例
図10は、ビデオ処理装置1000のブロック図である。装置1000は、ここにおいて説明される1つ以上の方法を実装するために使用され得る。装置1000は、スマートフォン、タブレット、コンピュータ、モノのインターネット(Internet of Things、IoT)受信器、などで具体化することができる。装置1000は、1つ以上のプロセッサ1002、1つ以上のメモリ1004、および、ビデオ処理ハードウェア1006を含み得る。プロセッサ1002は、本文書に記載される1つ以上の方法(方法800および900を含むが、これらに限定されない)を実装するように構成され得る。メモリ1004は、ここにおいて説明される方法および技術を実施するために使用されるデータおよびコードを保管するために使用され得る。ビデオ処理ハードウェア1006は、ハードウェア回路において、本文書で説明されるいくつかの技術を実装するために使用され得る。
【0063】
いくつかの実施形態において、ビデオ
コーディング方法は、
図10に関して説明されるようにハードウェアプラットフォーム上に実装される装置を使用して実装され得る。
【0064】
図11は、開示される技術に従った、クロスコンポーネント予測について線形モデル導出のための一つの例示的方法1100のフローチャートを示している。本方法1100は、ステップ1110において、現在ビデオブロックと現在ビデオブロックのビットストリーム表現との間の変換を実行するステップを含む。ここで、本変換の最中に、現在ビデオブロックの色成分値の第2のセットは、1つ以上の参照フレームに含まれる色成分値の第1のセットから導出され、色成分値の第1のセットは、ビデオ
コーディングステップの線形モデルにおいて使用可能である。
【0065】
いくつかの実施形態は、以下の条項ベースの(clause-based)フォーマットを使用して説明され得る。
【0066】
1. ビデオ処理のための方法であって、以下を含む。
【0067】
現在ビデオブロックと現在ビデオブロックのビットストリーム表現との間で変換を実行するステップであり、前記変換の間に、前記現在ビデオブロックの色成分値の第2のセットは、1つ以上の参照フレームに含まれる色成分値の第1のセットから導出され、ここで、前記色成分値の第1のセットは、ビデオコーディングステップの線形モデルにおいて使用可能である、ステップ。
【0068】
2. 前記色成分値の第1のセットは、前記ビデオコーディングステップの線形モデルにおいて使用する前に補間される、第1条項に記載の方法。
【0069】
3. 前記色成分値の第1のセットの線形結合が、前記線形モデルのパラメータとして使用可能である、第1条項または第2条項に記載の方法。
【0070】
4. 前記1つ以上の参照フレームに含まれる前記色成分値の第1のセットの位置は、少なくとも部分的に、前記現在ビデオブロックの運動情報に基づいて選択される、第1条項に記載の方法。
【0071】
5. 前記1つ以上の参照フレーム内のルマ成分値の位置は、前記現在ビデオブロック内の対応するルマ成分値の位置と、前記現在ビデオブロックの運動情報とから計算される、第4条項に記載の方法。
【0072】
6. 前記対応するルマ成分値の位置は、現在ビデオブロック内の左上サンプル、中央サンプル、または右下サンプルである、第5条項に記載の方法。
【0073】
7. 前記現在ビデオブロックの運動情報は、整数動きベクトルまたは分数動きベクトルに対応している、第6条項に記載の方法。
【0074】
8. 前記運動分数ベクトルは、前記1つ以上の参照フレームにおける分数ルマ成分値を使用して導出される、第7条項に記載の方法。
【0075】
9. 前記整数動きベクトルは、ゼロに近づくか、または、ゼロから離れるように丸めることによって導出される、第7条項に記載の方法。
【0076】
10. 前記1つ以上の参照フレームに含まれる前記色成分値の第1のセットの位置は、予め定義された位置である、第1条項に記載の方法。
【0077】
11. 前記色成分値の第1のセットの中央値又は平均値が、前記現在ビデオブロックの色成分値の第2のセットを導出するために使用される、第1条項乃至第10条項のいずれかに記載の方法。
【0078】
12. 1つ以上の参照フレームは、予め定義された参照フレームである、第1条項乃至第11条項のいずれかに記載の方法。
【0079】
13. 前記予め定義された参照フレームは、参照ピクチャリストの参照インデックスを有するフレームを含む、第12条項に記載の方法。
【0080】
14. 前記参照インデックスはゼロであり、前記参照ピクチャリストはゼロである、第13条項に記載の方法。
【0081】
15. 参照インデックス及び/又は参照ピクチャリストは、シーケンス、ピクチャ、タイル、グループ、スライス、タイル、コーディングツリーユニット、またはビデオブロックのうち1つ以上に関連するビットストリーム表現において信号化される、第13条項に記載の方法。
【0082】
16. 現在ビデオブロックの前記色成分値の第2のセットは、1つ以上の参照フレームに含まれる前記色成分値の第1のセットの算術平均または加重平均から導出される、第1条項に記載の方法。
【0083】
17. 現在ビデオブロックの前記色成分値の第2のセットは、前記現在ビデオブロックが両予測コード化ブロックであるか否かに基づいて、前記1つ以上の参照フレームに含まれる色成分値の第1のセットから選択的に導出される、第1条項に記載の方法。
【0084】
18. 現在ビデオブロックの前記色成分値の第2のセットは、前記色成分値の第1のセットの各予測方向に対して個別に導出される、第17条項に記載の方法。
【0085】
19. 現在ビデオブロックの前記色成分値の第2のセットは、前記現在ビデオブロックがサブブロックベースの予測に関連するか否かに基づいて、前記1つ以上の参照フレームに含まれる色成分値の第1のセットから選択的に導出される、第1条項に記載の方法。
【0086】
20. サブブロックベースの予測は、アフィン予測または代替時間動きベクトル予測(ATMVP)に対応する、第1条項に記載の方法。
【0087】
21. 現在ビデオブロックの前記色成分値の第2のセットは、個々のサブブロックについて導出される、第19条項または第20条項に記載の方法。
【0088】
22. 現在ビデオブロックの前記色成分値の第2のセットは、前記サブブロックベースの予測にかかわらず、前記現在ビデオブロック全体に対して導出される、第19条項乃至第21条項のいずれかに記載の方法。
【0089】
23. 1つ以上の参照フレームに含まれる前記色成分値の第1のセットは、少なくとも部分的に、現在ビデオブロックのサブブロックの動きベクトルに基づいて選択される、第19条項乃至第22条項のいずれかに記載の方法。
【0090】
24. 1つ以上の参照フレームに含まれる前記色成分値の第1のセットは、中間色成分値である、第1条項乃至第23条項のいずれかに記載の方法。
【0091】
25. 前記ビデオコーディングステップは、別のビデオコーディングステップに先行する、第1条項乃至第24条項のいずれかに記載の方法。
【0092】
26. 1つ以上の参照フレームに含まれる前記色成分値の第1のセットは、前記現在ビデオブロックの中間動きベクトルまたは前記現在ビデオブロックのサブブロックに少なくとも部分的に基づいて選択され、前記中間動きベクトルは、前記別のビデオコーディングステップの前に計算される、第1条項に記載の方法。
【0093】
27. 前記別のビデオコーディングステップは、双方向光学フロー(BDOF)ステップ、デコーダ側動きベクトル精緻化(DMVR)ステップ、予測精緻化光学フロー(PROF)ステップのうち1つ以上を含む、第24条項乃至第26条項のいずれかに記載の方法。
【0094】
28. 1つ以上の参照フレームに含まれる前記色成分値の第1のセットが、対応するルマブロックに関連するM×Nルマ成分値に対応する、第1条項乃至第27条項のいずれかに記載の方法。
【0095】
29. 前記対応するルマブロックは、現在ビデオブロックの併置されたルマブロックである、第28条項に記載の方法。
【0096】
30. MとNの積が、現在ビデオブロックの併置されたルマブロックのブロック幅とブロック高さの積よりも小さい、第28条項に記載の方法。
【0097】
31. 1つ以上の参照フレームに含まれる前記色成分値の第1のセットが、併置されたルマブロックの隣接ルマサンプルの位置で識別された参照サンプルの少なくとも一部に対応する、第27条項乃至第30条項のいずれかに記載の方法。
【0098】
32. 前記色成分値の第1のセットは、前記ビデオコーディングステップの線形モデルにおいて使用する前に、ダウンサンプリングされる、第1条項乃至第31条項のいずれかに記載の方法。
【0099】
33. 現在ビデオブロックの前記色成分値の第2のセットは、量子化パラメータ、コーディングモード、またはピクチャオーダカウント(POC)のうち1つ以上の情報に少なくとも部分的に基づいて選択される、第1条項に記載の方法。
【0100】
34. 前記隣接ルマサンプルの位置は、併置されたルマブロックの左上サンプルがカバーされるものである、第31条項に記載の方法。
【0101】
35. 1つ以上の参照フレームに含まれる前記色成分値の第1のセットは、前記対応するルマブロックの外部の位置で識別された参照サンプルの少なくとも一部に対応する、第28条項に記載の方法。
【0102】
36. 現在ビデオブロックの前記色成分値の第2のセットは、前記対応するルマブロックの隣接サンプルの利用可能性に基づいて、前記1つ以上の参照フレームに含まれる色成分値の第1のセットから選択的に導出される、第28条項に記載の方法。
【0103】
37. 対応するルマブロックの隣接サンプルの利用可能性は、現在ビデオブロックのコーディングモードの使用、対応するルマブロックの隣接サンプルのコーディングモードの使用、対応するルマブロックのコーディングモードの使用、1つ以上の隣接するビデオブロックのコーディングモードの使用、対応するルマブロックの隣接サンプルに関連するフィルタのタイプの使用、または、現在ビデオブロックまたはそのサブブロックに関して対応するルマブロックの隣接サンプルの位置の1つ以上に基づいている、第28条項に記載。
【0104】
38. さらに、以下を含む、第28条項に記載の方法。
【0105】
前記対応するルマブロックの隣接サンプルが利用できないことに対応して、利用できないサンプルを、他のサンプルを用いて、置き換え、埋め、または、パディングするステップ。
【0106】
39. さらに、以下を含む、第28条項に記載の方法。
【0107】
前記対応するルマブロックに隣接するサンプルに平滑化フィルタを適用するステップ。
【0108】
40. ビデオ処理のための方法であって、以下を含む。
【0109】
現在ビデオブロックと現在ビデオブロックのビットストリーム表現との間で変換を実行するステップであり、前記変換の間に、前記現在ビデオブロックの色成分値の第2のセットは、1つ以上の参照フレームに含まれる色成分値の第1のセットから導出され、ここで、前記色成分値の第1のセットは、ビデオコーディングステップの線形モデルにおいて使用可能である、ステップ。および、
【0110】
1つ以上の参照フレームに含まれる前記色成分値の第1のセットが現在ビデオブロックの併置されたルマブロックであることを決定することに応答して、現在ビデオブロックの併置されたルマブロックに関連する1つ以上の条件に基づいて、現在ビデオブロックの色成分値の第2のセットの導出を選択的にイネーブルまたはディセーブルする、ステップ。
【0111】
41. 現在ビデオブロックの併置されたルマブロックに関連する1つ以上の条件は、以下を含む、第40条項に記載の方法。併置されたルマブロックのパーティションサイズ、閾値数量を達成している併置されたルマブロックのコーディングユニットの数、閾値サイズを達成している併置されたルマブロックの左上ルマサンプル、併置されたルマブロックのパーティションツリーの深さ、併置されたルマブロックの左上ルマサンプルをカバーしている対応するルマブロック、併置されたルマブロックまたは現在ビデオブロックのディメンション、または、併置されたルマブロックの左上ルマサンプルをカバーしており、かつ、事前に定義されたサイズのバウンディングボックス内に追加的に含まれる、対応するルマブロック、である。
【0112】
42. 前記導出を選択的にイネーブルまたはディセーブルすることを示している情報は、前記ビットストリーム表現に含まれている、第40条項に記載の方法。
【0113】
43. 対応するルマブロックの隣接サンプルの利用可能性は、予め定義された順序に従って隣接サンプルをチェックすることに関連する、第28条項に記載の方法。
【0114】
44. 併置されたルマブロックおよび現在ビデオブロックは、同じコーディングツリーユニットまたはコーディングツリーユニットの同じ行に関連付けられる、第41条項に記載の方法。
【0115】
45. ビデオ処理のための方法であって、以下を含む。
【0116】
現在ビデオブロックと現在ビデオブロックのビットストリーム表現との間で変換を実行するステップであり、前記変換の間に、前記現在ビデオブロックの色成分値の第2のセットは、1つ以上の参照フレームに含まれる色成分値の第1のセットから導出され、ここで、前記色成分値の第1のセットは、ビデオコーディングステップの線形モデルにおいて使用可能である、ステップ。および、
【0117】
現在ビデオブロックまたは現在ビデオブロックの隣接ビデオブロックの1つ以上のプロパティが満たされることを決定するステップ応答して、現在ビデオブロックの色成分値の第2のセットの導出を選択的にイネーブルまたディセーブルするステップ。
【0118】
46. 現在ビデオブロックまたは現在ビデオブロックの隣接ビデオブロックの1つ以上のプロパティは、現在ビデオブロックの空間位置に関する空間位置をカバーしている隣接ルマブロックに対応している、第45条項に記載の方法。
【0119】
47. 現在ビデオブロックまたは現在ビデオブロックの隣接ビデオブロックの1つ以上のプロパティは、現在ビデオブロックの空間位置に関する現在ビデオブロックの隣接ビデオブロックの空間位置に対応している、第45条項に記載の方法
【0120】
48. さらに、以下を含む、第45条項に記載の方法。
【0121】
隣接ビデオブロックの再構成が、少なくとも部分的に、現在ビデオブロックのコーディングモードに基づいていることを決定するステップに応答して、現在ビデオブロックの前記色成分値の第2のセットの導出をディセーブルするステップ。
【0122】
49 さらに、以下を含む、第45条項に記載の方法。
【0123】
現在ビデオブロックがインターコード化ブロックであり、かつ、結合インターおよびイントラ予測コード化ブロックでないこと、および、現在ビデオブロックの対応するルマブロックに隣接ブロックが、イントラコード化ブロック、結合インターおよびイントラ予測(CIIP)ブロック、または、イントラブロックコピー(IBC)コード化ブロックであることに応答して、現在ビデオブロックの前記色成分値の第2のセットの導出をディセーブルするステップ。
【0124】
50. さらに、以下を含む、第45条項に記載の方法。
【0125】
現在ビデオブロックがインターコード化ブロックであり、かつ、結合インターおよびイントラ予測コード化ブロックでないこと、および、現在ビデオブロックの対応するルマブロックに隣接ブロックが、イントラコード化ブロック、結合インターおよびイントラ予測(CIIP)ブロック、または、イントラブロックコピー(IBC)コード化ブロックであることに応答して、現在ビデオブロックの前記色成分値の第2のセットの導出をイネーブルするステップであり、ここで、前記色成分値の第1のセットは固定値である。
【0126】
51. 前記色成分値の第1のセットは固定値である、第45条項に記載の方法。
【0127】
52. 前記固定値は、前記ビデオコーディングステップの前記線形モデルの区分的インデックスに対応している、第51条項に記載の方法。
【0128】
53. 前記隣接サンプルは、前記現在ビデオブロックに近接(adjacent)しても、また、非近接(non-adjacent)でもよい、第1条項乃至第52条項のいずれかに記載の方法。
【0129】
54. 前記隣接サンプルは、前記現在ビデオブロックに隣接するクロマブロックまたは前記現在ビデオブロックに隣接するクロマブロックに関連付けられ得る、第1条項乃至第52条項のいずれかに記載の方法。
【0130】
55. 現在ビデオブロックが、クロマブロック、併置されたルマブロック、または、併置されたクロマブロックの左上ルマサンプルをカバーしている対応するルマブロックに対応する、第1条項乃至第54条項のいずれかに記載の方法。
【0131】
56. 現在ビデオブロックの前記色成分値の第2のセットは、1つ以上の他のビデオブロックと関連して使用するために保管される、第1条項乃至第54条項のいずれかに記載の方法。
【0132】
57. 前記線形モデルがクロスコンポーネント線形モデル(CCLM)に対応し、かつ、ビデオコード化ステップがクロマスケーリングを伴うルママッピング(LMCS)モードに対応している、第1条項乃至第56条項のいずれかに記載の方法。
【0133】
58. 前記現在ビデオブロックが、インターコード化ブロック、両予測コード化ブロック、結合インターおよびイントラ予測(CIIP)ブロック、または、イントラブロックコピー(IBC)コード化ブロックである、第1条項乃至第57条項のいずれかに記載の方法。
【0134】
59. 現在ビデオブロックの前記色成分値の第2のセットは、ビットストリーム表現における他のビデオブロックと関連付けられた使用のために保管される、第1条項乃至第58条項のいずれかに記載の方法。
【0135】
60. 現在ビデオブロックの前記色成分値の前記第2のセットは、前記他のビデオブロックに含まれる隣接するビデオブロックによる選択的な可用性または非可用性のためのラインバッファに保管され、ここで、前記現在ビデオブロックおよび前記隣接するビデオブロックは、異なるスライス、タイル、タイル群、コーディングツリーユニット、または、コーディングツリーユニットの行に関連付けられる、第59条項に記載の方法。
【0136】
61. 現在ビデオブロックの前記色成分値の第2のセットは、固定値である、第60条項に記載の方法。
【0137】
62. 現在ビデオブロックの前記色成分値の第2のセットは、導出が妨げられる、第60条項に記載の方法。
【0138】
63. 現在ビデオブロックの前記色成分値の第2のセットの導出が防止される、第59条項に記載の方法。
【0139】
64. 現在ビデオブロックの前記色成分値の第2のセットは、前記他のビデオブロックに含まれる隣接するビデオブロックによる選択的な可用性または非可用性のためのテーブルに保管される、第59条項に記載の方法。
【0140】
65. 現在ビデオブロックの前記色成分値の第2のセットは、動的に更新される、第64条項に記載の方法。
【0141】
66. 現在ビデオブロックの前記色成分値の第2のセットは、前記他のビデオブロックにおける以前のビデオブロックと同じである、第65条項に記載の方法。
【0142】
67. 現在ビデオブロックの前記色成分値の第2のセットは、先入れ先出し(FIFO)方式で動的に更新される、第64条項に記載の方法。
【0143】
68. 前記色成分値の第1のセットは、ルマサンプル値に対応し、前記色成分値の第2のセットは、クロマスケーリング因子に対応する、第1条項乃至第67条項のいずれかに記載の方法。
【0144】
69. プロセッサと、命令を有する非一時的メモリとを含むビデオシステム内の装置であって、前記プロセッサによる実行の際に、前記命令は、前記プロセッサに、第1条項乃至第68条項のいずれかにおける前記方法を実行させる、装置。
【0145】
70. 非一時的コンピュータ読取り可能媒体に保管されたコンピュータプログラム製品であって、第1条項乃至第68条項のいずれかに記載の方法を実行するためのプログラムコードを含む、コンピュータプログラム製品。
【0146】
図12は、ここにおいて開示される様々な技術が実装され得る例示的なビデオ処理システム1200を示しているブロック図である。種々の実装は、システム1200のコンポーネントの一部または全部を含んでよい。システム1200は、ビデオコンテンツを受信するための入力1202を含んでよい。ビデオコンテンツは、生で(raw)または非圧縮フォーマット、例えば、8または10ビットのマルチコンポーネント画素値で受信されてよく、または、圧縮または符号化フォーマットで受信されてもよい。入力1202は、ネットワークインターフェイス、ペリフェラルバスインターフェイス、またはストレージインターフェイスを表すことができる。ネットワークインターフェイスの例は、イーサネット、受動光ネットワーク(PON)といった有線インターフェイス、および、Wi-Fiまたはセルラーインターフェイスといった無線インターフェイスを含む。
【0147】
システム1200は、本文書において説明される種々のコーディングまたはエンコーディング方法を実装し得るコーディングコンポーネント1204を含んでよい。コーディングコンポーネント1204は、入力1202からコーディングコンポーネント1204の出力までのビデオの平均ビットレートを縮小することができ、ビデオのコード化表現を生成する。従って、コード化技術は、ときどき、ビデオ圧縮またはビデオトランスコーディング技術と呼ばれる。コード化コンポーネント1204の出力は、コンポーネント1206によって表されるように、保管されるか、または、接続された通信を介して送信されてよい。入力1202で受信されたビデオに係る保管され、または、通信されたビットストリーム(または、コード化された)表現は、ディスプレイインターフェイス1210に送信される、画素値または表示可能なビデオを生成するために、コンポーネント1208によって使用されてよい。ビットストリーム表現からユーザが閲覧可能な(user-viewable)ビデオを生成するプロセスは、ときどき、ビデオ解凍(decompression)と呼ばれる。さらに、所定のビデオ処理操作は、「コーディング」操作またはツールと称されるが、コーディングツールまたは操作は、エンコーダで使用され、コーディングの結果を反転する、対応するデコーディングツールまたは操作は、デコーダで実行されることが理解されるだろう。
【0148】
ペリフェラルバスインターフェイスまたはディスプレイインターフェイスの例は、ユニバーサルシリアルバス(USB)または高精細度マルチメディアインターフェイス(HDMI(登録商標))、もしくはディスプレイポート、などを含んでよい。ストレージインターフェイスの例は、SATA(serial advanced technology attachment)、PCI、IDEインターフェイス、などを含んでよい。ここにおいて説明される技術は、移動電話、ラップトップ、スマートフォン、または、デジタルデータ処理及び/又はビデオ表示を実行することができる他の装置といった、種々の電子装置において具体化することができる。
【0149】
図13は、ビジュアルメディア処理のための例示的な方法のフローチャートを示している。このフローチャートのステップは、この文書のセクション4の例11bに関連して説明される。ステップ1302で、プロセスは、現在ビデオブロックと現在ビデオブロックのビットストリーム表現との間の変換中に、クロスコンポーネント線形モデル及び/又はクロマ残差スケーリング因子を、少なくとも部分的に、現在ビデオブロックに関連する併置されたルマブロックの左上サンプルをカバーしている対応するルマブロックの隣接サンプルに基づいて計算する。ここで、現在ビデオブロックの1つ以上の特徴が、対応するルマブロックを識別するために使用される。
【0150】
図14は、ビジュアルメディア処理のための例示的な方法のフローチャートを示している。このフローチャートのステップは、この文書のセクション4の例11eに関連して説明される。ステップ1402で、プロセスは、現在ビデオブロックのビジュアルメディアデータの色成分上のクロマ残差スケーリングを選択的にイネーブルまたはディセーブルする決定を行うためにルールを使用する。ここで、ルールは、現在ビデオブロックの
コーディングモード情報及び/又は1つ以上の隣接するビデオブロックの
コーディングモード情報に基づいている。ステップ1404で、プロセスは、決定に基づいて、現在ビデオブロックとビットストリーム表現との間の変換を実行する。
【0151】
図15は、ビジュアルメディア処理のための例示的な方法のフローチャートを示している。このフローチャートのステップは、この文書のセクション4の例12に関連して説明される。ステップ1502で、プロセスは、ビジュアルメディアデータの現在ビデオブロックに関連するスライスまたはタイル群内のビデオブロックに関連する少なくとも1つのクロマブロックについて、単一のクロマ残差スケーリング因子を使用する。ステップ1504で、プロセスは、現在ビデオブロックと現在ビデオブロックのビットストリーム表現との間の変換を実行する。
【0152】
図16は、ビジュアルメディア処理のための例示的な方法のフローチャートを示している。このフローチャートのステップは、この文書のセクション4の例17fに関連して説明される。ステップ1602で、プロセスは、ビジュアルメディアデータの現在ビデオブロックと現在ビデオブロックのビットストリーム表現との間の変換中に、クロマ残差スケーリング因子を導出する。ステップ1604で、プロセスは、ビジュアルメディアデータの他のビデオブロックと共に使用するために、クロマ残差スケーリング因子を保管する。ステップ1606で、プロセスは、現在ビデオブロックおよび他のビデオブロックをビットストリーム表現に変換するためにクロマ残差因子を適用する。
【0153】
図17は、ビジュアルメディア処理のための例示的な方法のフローチャートを示している。このフローチャートのステップは、この文書のセクション4の例17gに関連して説明される。ステップ1702において、ビジュアルメディアデータの現在ビデオブロックとビジュアルメディアデータのビットストリーム表現との間の変換中に、プロセスは、現在ビデオブロックのクロマ残差因子を計算する。ステップ1704で、プロセスは、ビジュアルメディアデータの第2のビデオブロックと共に使用するためのクロマ残差スケーリング因子を、バッファ内に保管する。ステップ1706において、プロセスは、使用の後に続いて、クロマ残差スケーリング因子をバッファから除去する。
【0154】
この文書で説明されるいくつかの実施態様が、以下の条項ベースの(clause-based)フォーマットで、これから提示される。
【0155】
A1. ビデオ処理のための方法であって、以下を含む。
【0156】
ビジュアルメディアデータの現在ビデオブロックと、現在ビデオブロックのビットストリーム表現との間の変換中に、少なくとも部分的に、現在ビデオブロックに関連する併置されたルマブロックの左上サンプルをカバーする対応するルマブロックの隣接サンプルに基づいて、現在ビデオブロックに対するクロスコンポーネント線形モデ(CCLM)ル及び/又はクロマ残差スケーリング(CRS)因子を計算するステップである。ここで、現在ビデオブロックの1つ以上の特徴は、対応するルマブロックを識別するために使用される。
【0157】
A2. 現在ビデオブロックの1つ以上の特徴が、サイズ、パーティションタイプ、位置、または、コーディネーションを含む、条項A1に記載の方法。
【0158】
A3. 現在ビデオブロックの1つ以上の特徴が、現在ビデオブロックの色成分に関連付けられている、条項A1またはA2に記載の方法。
【0159】
A4. 現在ビデオブロックの1つ以上の特徴が、後続の使用のためにバッファ内に保管されている、条項A3に記載の方法。
【0160】
A5. 現在ビデオブロックおよび対応するルマブロックが、同じコーディングツリーユニット(CTU)、または、同じコーディングツリーユニット(CTU)行の中に配置されている、条項A1乃至A3のいずれかに記載の方法。
【0161】
A6. 現在ビデオブロックおよび対応するルマブロックが、同じコーディングツリーユニット(CTU)、または、同じコーディングツリーユニット(CTU)行の中に配置されている場合、現在ビデオブロックの1つ以上の特徴は保管されない、条項A5に記載の方法。
【0162】
A7. 対応するルマブロックの隣接サンプルは、1つ以上の条件が満たされたときに利用可能であり、そうでなければ、隣接サンプルは利用不可能である、条項A1に記載の方法。
【0163】
A8. 1つ以上の条件は、現在ビデオブロックのコーディングモードの使用、対応するルマブロックの隣接サンプルのコーディングモードの使用、対応するルマブロックの隣接サンプルに関連するフィルタのタイプの使用、現在ビデオブロック又はそのサブブロックに関して対応するルマブロックの隣接サンプルの位置、現在ピクチャ/サブピクチャ/タイル/タイル群/VPDU/スライスの幅、及び/又は、現在ピクチャ/サブピクチャ/タイル/タイル群/PDU/スライス/コーディングツリーユニット(CTU)行の高さ、を含む、条項A7に記載の方法。
【0164】
A9. 隣接サンプルが利用不可能である場合、隣接サンプルは、最初に利用可能な隣接サンプルによって置換される、条項A7またはA8に記載の方法。
【0165】
A10. 前記最初の利用可能な隣接サンプルが、チェック順序に従って識別される、条項A9に記載の方法。
【0166】
A11. 前記チェック順序は、予め定義されている、条項A10に記載の方法。
【0167】
A12. 前記チェック順序は、ビットストリーム表現において信号化されている、条項A10に記載の方法。
【0168】
A13. 隣接サンプルが利用不可能である場合、隣接サンプルは、予め決定された値またはマッピングされた値によって満たされる、条項A8またはA9に記載の方法。
【0169】
A14. 事前に決定された値またはマッピングされた値は、1<<(bitDepth-1)として表現され、bitDepthは、前記併置されたルマブロック内のサンプルのビット深度を示している、条項A13に記載の方法。
【0170】
A15. 前記予め決定された値またはマッピングされた値は、ルックアップテーブル(LUT)に基づいている、条項A13に記載の方法。
【0171】
B1. ビジュアルメディア処理のための方法であって、以下を含む。
【0172】
ビジュアルメディアデータの現在ビデオブロックに係る色成分についてクロマ残差スケーリング(CRS)を選択的にイネーブルするか、または、ディセーブルするかを決定するためにルールを使用するステップである。ここで、前記ルールは、現在ビデオブロックのコーディングモード情報、及び/又は、1つ以上の隣接ビデオブロックのコーディングモード情報に基づいている。および、
【0173】
前記決定に基づいて、前記現在ビデオブロックとビットストリーム表現との間で変換を実行するステップ、である。
【0174】
B2. 現在ビデオブロックは、併置されたビデオブロックである、条項B1に記載の方法。
【0175】
B3. 現在ビデオブロックは、現在クロマブロックである、条項B1に記載の方法。
【0176】
B4. 現在ビデオブロックは、併置されたクロマブロックの少なくとも1つのサンプルをカバーする対応するルマブロックである、条項B1に記載の方法。
【0177】
B5. 1つ以上の隣接するビデオブロックは、近接(adjacent)ビデオブロックである、条項B1乃至B4のいずれかに記載の方法。
【0178】
B6. 1つ以上の隣接するビデオブロックは、非近接(non-adjacent)ビデオブロックである、条項B1乃至B4のいずれかに記載の方法。
【0179】
B7. 1つ以上の隣接するビデオブロックは、現在ビデオブロックに関して複数のサンプルをカバーする複数の隣接ブロックである、条項B1乃至B6のいずれかに記載の方法。
【0180】
B8. 隣接するビデオブロックの再構成が、現在ビデオブロックに関連するスライス/タイル群のサンプルを使用する場合、ルールは、前記CRSをディセーブルすることを規定している、条項B1乃至B6のいずれかに記載の方法。
【0181】
B9. ルールは、前記隣接ビデオブロックのコーディングモード情報が、イントラモード、結合インターおよびイントラ予測モード(CIIP)、またはイントラブロックコピー(IBC)モードのうち1つである場合に、前記CRSをディセーブルすることを規定している、条項B8に記載の方法。
【0182】
B10. CRSを適用するためにクロマ残差因子のデフォルト値が使用される、条項B8またはB9に記載の方法。
【0183】
B11. デフォルト値は、1<<(bitDepth-1)として表され、bitDepthは、前記現在ビデオブロックにおけるルマサンプルまたはクロマサンプルのビット深度を示している、条項B10に記載の方法。
【0184】
B12. デフォルト値は、ルックアップテーブル(LUT)に基づいている、条項B10に記載の方法。
【0185】
B13. デフォルト値は、予め定義されている、条項B10に記載の方法。
【0186】
C1. ビジュアルメディア処理の方法であって、以下を含む。
【0187】
ビジュアルメディアデータの現在ビデオブロックに関連付けられたスライスまたはタイル群におけるビデオブロックに関連付けられた少なくとも1つのクロマブロックに対して、単一クロマ残差スケーリング因子を使用するステップ。および、
【0188】
前記現在ビデオブロックと、前記現在ビデオブロックのビットストリーム表現との間の変換を実行するステップ、である。
【0189】
C2. 少なくとも1つのクロマブロックに対する単一クロマ残差スケーリング因子は、固定値である、条項C1に記載の方法。
【0190】
C3. 単一クロマ残差因子は、クロマ残差因子を導出する際に使用される線形モデルのインデックスに基づいている、条項C1またはC2に記載の方法。
【0191】
C4. 前記線形モデルは、区分的線形である、条項C3に記載の方法。
【0192】
C5. 少なくとも1つのクロマブロックに対する単一クロマ残差スケーリング因子は、予め定義されている、条項C1に記載の方法。
【0193】
C6. 少なくとも1つのクロマブロックに対する単一クロマ残差スケーリング因子は、現在ビデオブロックにおけるルマサンプルまたはクロマサンプルのビット深度に基づいている、条項C1に記載の方法。
【0194】
C7. 線形モデルのインデックスは、現在ビデオブロックにおけるルマサンプルまたはクロマサンプルのビット深度に基づいて導出される、条項C3に記載の方法。
【0195】
D1. ビジュアルメディア処理の方法であって、以下を含む。
【0196】
ビジュアルメディアデータの現在ビデオブロックと、前記現在ビデオブロックのビットストリーム表現との間の変換中に、クロマ残差スケーリング因子を導出するステップ。
【0197】
前記ビジュアルメディアデータの他のビデオブロックと共に使用するために、前記クロマ残差スケーリング因子を保管するステップ。および、
【0198】
前記現在ビデオブロックおよび他のビデオブロックを前記ビットストリーム表現へと変換するために前記クロマ残差因子を適用するステップ、である。
【0199】
D2. クロマ残差スケーリング因子は、ラインバッファに保管されている、条項D1に記載の方法。
【0200】
D3. ビジュアルメディア処理の方法であって、以下を含む。
【0201】
ビジュアルメディアデータの現在ビデオブロックと、前記ビジュアルメディアデータのビットストリーム表現との間の変換中のステップである。
【0202】
前記現在ビデオブロックのクロマ残差因子を計算するステップ。
【0203】
前記ビジュアルメディアデータの第2のビデオブロックと共に使用するために、バッファ内に、前記クロマ残差因子を保管するステップ。および、
【0204】
使用に続いて、前記バッファから前記クロマ残差因子を除去するステップ、である。
【0205】
D4. 前記ビジュアルメディアデータ内の前記現在ビデオブロックおよび前記第2のビデオブロックが異なるビデオ領域に属する場合に、前記第2のビデオブロックのクロマ残差スケーリング因子は、前記現在ビデオブロックにおける使用のために利用不可能であると判断される、条項D3に記載の方法。
【0206】
D5. 前記ビデオ領域が、スライス、タイル、タイル群、仮想パイプラインデータユニット(VPDU)、コーディングツリーユニット(CTU)、または、CTU行のうち1つを含む、条項D4に記載の方法。
【0207】
D6. 前記第2のビデオブロックは、前記現在ビデオブロックの隣接するビデオブロックである、条項D4に記載の方法。
【0208】
D7. 前記隣接ビデオブロックは、前記現在ビデオブロックに近接(adjacent)している、条項D6に記載の方法。
【0209】
D8. 前記隣接するビデオブロックは、前記現在ビデオブロックに非近接(non-adjacent)である、条項D6に記載の方法。
【0210】
D9. 前記クロマ残差スケーリング因子は、前記変換中に動的に更新される、条項D1乃至D8のいずれかに記載の方法。
【0211】
D10. 前記クロマ残差スケーリング因子は、テーブルに保管されており、かつ、前記テーブルに保管されたクロマ残差スケーリング因子を動的に更新することは、先入れ先出し(FIFO)順序に従う、条項D9に記載の方法。
【0212】
D11. 前記クロマ残差スケーリング因子は、クロマブロックをデコーディング/エンコーディングした後で、前記テーブルに保管される、条項D10に記載の方法。
【0213】
D12. テーブルは、瞬時に、前記クロマ残差スケーリング因子のエントリーを保管する、条項D10に記載の方法。
【0214】
D13. 画像、スライス、タイル、タイル群、仮想パイプラインデータユニット(VPDU)、CTU、または、CTU行をデコーディング/エンコーディングする以前に、前記クロマ残差スケーリング因子は、前記テーブルに保管される、条項D10に記載の方法。
【0215】
D14. 前記テーブルにデフォルトのクロマ残差スケーリングファクタを保管することは、前記テーブルをリフレッシュすることを結果として生じる、条項D13に記載の方法。
【0216】
D15. 前記デフォルトのクロマ残差スケーリング因子は、前記テーブルがリフレッシュされるときにはヌル値である、条項D14に記載の方法。
【0217】
D16. 前記変換は、現在ビデオブロックからビットストリーム表現を生成することを含む、条項A1乃至D15のいずれかに記載の方法。
【0218】
D17. 前記変換は、前記ビットストリーム表現から前記現在ビデオブロックの画素値を生成することを含む、条項A1乃至D15のいずれかに記載の方法。
【0219】
D18. 条項A1乃至D15のいずれかに記載の方法を実施するように構成されたプロセッサを含む、ビデオエンコーダ装置。
【0220】
D19. 条項A1乃至D15のいずれかに記載の方法を実施するように構成されたプロセッサを含む、ビデオデコーダ装置。
【0221】
D20. コードが保管されているコンピュータ読取り可能媒体であって、前記コードは、条項A1乃至D15のいずれかに記載の方法を実施するためのプロセッサで実行可能な命令を具現化する、読取り可能媒体。
【0222】
本文書において、「ビデオ処理(“video processing”)」または「変換(“conversion”)」という用語は、ビデオエンコーディング、ビデオデコーディング、ビデオ圧縮、またはビデオ解凍を参照することができる。例えば、ビデオ圧縮アルゴリズムは、ビデオの画素表現から対応するビットストリーム表現への変換の最中に適用されてよく、その逆もまた同様である。現在ビデオブロックのビットストリーム表現は、例えば、シンタックスによって定義されるように、ビットストリーム内の異なる場所に同時配置され、または、拡散されるビットに対応し得る。例えば、マクロブロックは、変換され、かつ、コード化されたエラー残差値の観点から、また、ビットストリーム内のヘッダおよび他のフィールド内のビットを使用してエンコーディングされてもよい。さらに、変換の最中に、デコーダは、上述のソリューションで説明されるように、決定に基づいて、いくつかのフィールドが存在し得るか、または存在しないかの知識を用いて、ビットストリームを解析することができる。同様に、エンコーダは、特定のシンタックスフィールドが含まれているか、または含まれないかを決定し、そして、それに応じて、コード化表現にシンタックスフィールドを含めるか、または除外することによって、コード化表現を生成することができる。
【0223】
以上から、説明の目的で、本開示の技術の特定の実施形態をここにおいて説明してきたが、本発明の範囲を逸脱することなく、種々の修正を行うことができることが理解されるだろう。従って、現在開示されている技術は、添付の請求項によるものを除いて、限定されるものではない。
【0224】
この特許文献で説明されている技術的事項(subject matter)の実装および機能動作は、ここにおいて開示されている構造およびそれらの構造的等価物を含む、種々のシステム、デジタル電子回路、またはコンピュータソフトウェア、ファームウェア、もしくはハードウェアにおいて、または、それらの1つ以上の組み合わせにおいて実施することができる。ここにおいて説明される技術的事項の実装は、1つ以上のコンピュータプログラム製品、すなわち、データ処理装置による、またはデータ処理装置の動作を制御するための、有形および非一時的なコンピュータ読取り可能な媒体上にエンコーディングされたコンピュータプログラム命令の1つ以上のモジュールとして実装することができる。コンピュータ読取り可能な媒体は、マシンで読取り可能なストレージ装置、マシンで読取り可能なストレージ基板、メモリ装置、マシンで読取り可能な伝搬信号に影響を与える事項の組成、または、それらの1つ以上の組み合わせであり得る。用語「データ処理ユニット(“data processing unit”)」または「データ処理装置(“data processing apparatus”)」は、例えば、プログラマブルプロセッサ、コンピュータ、または、複数のプロセッサまたはコンピュータを含む、データを処理するための全ての装置、デバイス、およびマシンを包含する。装置は、ハードウェアに加えて、問題のコンピュータプログラムの実行環境を生成するコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、または、それらの1つ以上の組み合わせを構成するコードを含み得る。
【0225】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られるもの)は、コンパイルまたは解釈された言語を含む、任意の形態のプログラミング言語で書くことができる。そして、それは、スタンドアロンプログラムとして、または、コンピューティング環境での使用に適したモジュール、コンポーネント、サブルーチン、または他のユニットとしてを含む、任意の形態で展開することができる。コンピュータプログラムは、必ずしもファイルシステム内のファイルに対応するものではない。プログラムは、他のプログラムまたはデータを保持するファイルの一部分(例えば、マークアップ言語文書に保管される1つ以上のスクリプト)、問題のプログラム専用の単一ファイル、または、複数の調整されたファイル(例えば、1つ以上のモジュール、サブプログラム、またはコードの一部分を保管するファイル)に保管することができる。コンピュータプログラムは、1つのコンピュータまたは1つのサイトに配置されるか、または、複数のサイトに分散され、通信ネットワークによって相互接続される複数のコンピュータ上で実行されるように展開され得る。
【0226】
この明細書において説明されるプロセスおよび論理フローは、入力データ上で動作し、出力を生成することによって機能を実行するために、1つ以上のコンピュータプログラムを実行する1つ以上のプログラマブルプロセッサによって実行することができる。プロセスおよび論理フローは、また、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)のような特殊目的論理回路によって実行することができ、装置も、また、実行することができる。
【0227】
コンピュータプログラムの実行に適したプロセッサは、例えば、汎用および専用マイクロプロセッサの両方、および、任意の種類のデジタルコンピュータの任意の1つ以上のプロセッサを含む。一般的に、プロセッサは、読出し専用メモリまたはランダムアクセスメモリ、またはその両方から命令およびデータを受信する。コンピュータの必須要素は、命令を実行するためのプロセッサと、命令およびデータを保管するための1つ以上のメモリデバイスである。一般的に、コンピュータは、また、データを保管するための1つ以上の大容量ストレージ装置、例えば、磁気ディスク、磁気光ディスク、または光ディスクからデータを受信し、または、データを転送するために動作可能に結合される。しかし、コンピュータは、そのような装置を有する必要はない。コンピュータプログラム命令及びデータを保管するのに適したコンピュータ読取り可能な媒体は、例えば、EPROM、EEPROM、及びフラッシュメモリデバイスのような半導体メモリデバイスを含む、あらゆる形態の不揮発性メモリ、媒体、およびメモリデバイスを含む。プロセッサおよびメモリは、特殊目的論理回路によって補足されるか、または内蔵され得る。
【0228】
明細書は、図面と共に、単に例示的なものとみなされる。ここで、例示的は、一つの例を意味するものである。ここにおいて使用されるように、「または(“or”)」の使用は、コンテキストが他のことを明確に示さない限り、「及び/又は(“and/or”)」を含むように意図されている。
【0229】
この特許文献には多くの詳細が含まれているが、これらは、いずれかの発明の範囲または特許請求されることができるものを限定するものではなく、特定の発明の特定の実施形態に特有な特徴の説明として解釈されるべきである。別個の実施形態のコンテキストでこの特許文献に記載されている特定の特徴は、単一の実施形態で組み合わせて実施することもできる。逆に、単一の実施形態のコンテキストにおいて説明される種々の特徴は、複数の実施形態において別々に、または、任意の適切なサブコンビネーションで実施することもできる。さらに、特徴は、特定の組み合わせにおいて作用するものとして上述され、最初にそのように請求されてよいが、請求された組み合わせからの1つ以上の特徴は、場合によって、組み合わせから切り出されてよく、請求された組み合わせは、サブコンビネーション又はサブコンビネーションのバリエーションに向けられてよい。
【0230】
同様に、図面には特定の順序で動作が示されているが、これは、所望の結果を達成するために、このような動作を特定の順序で、または、連続的な順序で実行すること、もしくは、例示された全ての動作を実行することを要求するものとして理解されるべきではない。さらに、この特許文献において説明されている実施形態における種々のシステムコンポーネントの分離は、そうした分離を全ての実施形態において必要とするものとして理解されるべきではない。
【0231】
少数の実施形態および実施例のみが記述されており、この特許文献に記載され、かつ、説明されている内容に基づいて、他の実施形態、拡張、およびバリエーションが行われ得る。