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

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

▶ ベイジン バイトダンス ネットワーク テクノロジー カンパニー リミテッドの特許一覧 ▶ バイトダンス インコーポレイテッドの特許一覧

特許7418478クロマ残差スケーリングのためのシンタックス要素
<>
  • 特許-クロマ残差スケーリングのためのシンタックス要素 図1
  • 特許-クロマ残差スケーリングのためのシンタックス要素 図2
  • 特許-クロマ残差スケーリングのためのシンタックス要素 図3
  • 特許-クロマ残差スケーリングのためのシンタックス要素 図4
  • 特許-クロマ残差スケーリングのためのシンタックス要素 図5
  • 特許-クロマ残差スケーリングのためのシンタックス要素 図6
  • 特許-クロマ残差スケーリングのためのシンタックス要素 図7
  • 特許-クロマ残差スケーリングのためのシンタックス要素 図8
  • 特許-クロマ残差スケーリングのためのシンタックス要素 図9
  • 特許-クロマ残差スケーリングのためのシンタックス要素 図10
  • 特許-クロマ残差スケーリングのためのシンタックス要素 図11
  • 特許-クロマ残差スケーリングのためのシンタックス要素 図12
  • 特許-クロマ残差スケーリングのためのシンタックス要素 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-11
(45)【発行日】2024-01-19
(54)【発明の名称】クロマ残差スケーリングのためのシンタックス要素
(51)【国際特許分類】
   H04N 19/70 20140101AFI20240112BHJP
   H04N 19/186 20140101ALI20240112BHJP
   H04N 19/593 20140101ALI20240112BHJP
【FI】
H04N19/70
H04N19/186
H04N19/593
【請求項の数】 13
(21)【出願番号】P 2021576244
(86)(22)【出願日】2020-06-22
(65)【公表番号】
(43)【公表日】2022-09-07
(86)【国際出願番号】 CN2020097374
(87)【国際公開番号】W WO2020259427
(87)【国際公開日】2020-12-30
【審査請求日】2021-12-21
(31)【優先権主張番号】PCT/CN2019/092433
(32)【優先日】2019-06-22
(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)【参考文献】
【文献】LU, Taoran et al.,"CE12:Mapping functions Test CE12-1 and CE12-2",[JVET-M0427-v3](version 3),Joint Video Experts Team(JVET),2019年01月15日,pp.1-24
【文献】Benjamin Bross et al.,”Versatile Video Coding (Draft 5)”,[JVET-N 1001-v8] (version 8),Joint Video Experts Team (JVET),2019年06月11日,pp. 24,40-43,47,80,85-86,102,268-269,271
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00 - 19/98
H04N 7/12
(57)【特許請求の範囲】
【請求項1】
ビデオデータを処理する方法であって、
ビデオの現在クロマビデオブロックと前記ビデオのビットストリームとの間の変換の最中に、前記現在クロマビデオブロックのクロマ残差サンプルにスケーリングプロセスが適用されることを決定するステップと、
前記クロマ残差サンプルに前記スケーリングプロセスを適用することにより、前記変換を実行するステップと、を含み、
前記スケーリングプロセスにおいて、前記クロマ残差サンプルは、前記現在クロマビデオブロックを再構成するために使用される前に、少なくとも1つのスケーリング因子に基づいてスケーリングされ、
1つ以上のシンタックス要素、および、区分線形モデルのピースを識別するビンインデックスが、前記少なくとも1つのスケーリング因子を導出するために使用され、かつ、前記1つ以上のシンタックス要素は、条件付きで前記ビットストリーム内に含まれ、
前記1つ以上のシンタックス要素は、前記ビットストリームにおける適応パラメータセットに含まれており、
前記ビンインデックスは、
前記現在クロマビデオブロックの左上サンプルに対応するルマサンプル基づいて決定される、ビデオユニットの1つ以上の隣接するルマブロックの利用可能性を検査するステップと、
前記1つ以上の隣接するルマブロックの利用可能性に基づいて、前記ビデオユニットの隣接するルマサンプルを検索するか否かを決定するステップであり、前記1つ以上の隣接するルマブロックは前記隣接するルマサンプルを構成する、ステップと、
前記隣接するサンプルが利用可能な場合に、端数処理ベースの平均演算によって、前記隣接するルマサンプルを使用して、計算された平均ルマ変数に基づいてビンインデックスを導出するステップと、
によって導出される、
方法。
【請求項2】
前記ビンインデックスの値は、k0からk1までの範囲内にあり、
k0およびk1は整数である、
請求項1に記載の方法。
【請求項3】
前記ビンインデックスの値は、0から15までの範囲内にある、
請求項2に記載の方法。
【請求項4】
前記ビデオユニットの前記1つ以上の隣接するルマブロックの利用可能性を検査する際に、
前記1つ以上の隣接するルマブロックの第1の隣接するルマブロック、および、異なるビデオ領域に配置されている前記ビデオユニットに応答して、
前記第1の隣接するルマブロックは利用不可として扱われ、かつ、前記ビデオ領域は、コードツリーユニットまたはコーディングツリーユニット行のうち少なくとも1つを含む、
請求項1に記載の方法。
【請求項5】
前記スケーリングプロセスを選択的にイネーブルまたはディセーブルすることを示すシンタックス要素は、前記ビットストリームに含まれる場合に、現在クロマビデオブロックに関連する画像レベルに含まれる、
請求項1に記載の方法。
【請求項6】
前記1つ以上のシンタックス要素は、前記区分線形モデルの各ピースに対するルマ値を表すために使用される、
請求項1乃至5いずれか一項に記載の方法。
【請求項7】
前記1つ以上のシンタックス要素は、前記区分線形モデルの各ピースの表現に加えられたルマ値を表すに使用される、
請求項1乃至6いずれか一項に記載の方法。
【請求項8】
前記ビデオのカラーフォーマットが4:0:0でない場合に、前記1つ以上のシンタックス要素は、前記ビットストリームに含まれている、
請求項1乃至7いずれか一項に記載の方法。
【請求項9】
前記変換は、前記現在クロマビデオブロックを前記ビットストリームへエンコーディングすること、を含む、
請求項1乃至8いずれか一項に記載の方法。
【請求項10】
前記変換は、前記ビットストリームから前記現在クロマビデオブロックをデコーディングすることを含む、
請求項1乃至8いずれか一項に記載の方法。
【請求項11】
プロセッサ、および、命令を含む非一的な時メモリを備えるビデオデータを処理するための装置であって、前記命令が前記プロセッサによって実行されると、前記プロセッサに、
ビデオの現在クロマビデオブロックと前記ビデオのビットストリームとの間の変換の最中に、前記現在クロマビデオブロックのクロマ残差サンプルにスケーリングプロセスが適用されることを決定し、かつ、
前記クロマ残差サンプルに前記スケーリングプロセスを適用することにより、前記変換を実行する、ようにさせ、
前記スケーリングプロセスにおいて、前記クロマ残差サンプルは、前記現在クロマビデオブロックを再構成するために使用される前に、少なくとも1つのスケーリング因子に基づいてスケーリングされ、
1つ以上のシンタックス要素、および、区分線形モデルのピースを識別するビンインデックスが、前記少なくとも1つのスケーリング因子を導出するために使用され、かつ、前記1つ以上のシンタックス要素は、条件付きで前記ビットストリーム内に含まれ、
前記1つ以上のシンタックス要素は、前記ビットストリームにおける適応パラメータセットに含まれており、
前記ビンインデックスは、
前記現在クロマビデオブロックの左上サンプルに対応するルマサンプル基づいて決定される、ビデオユニットの1つ以上の隣接するルマブロックの利用可能性を検査するステップと、
前記1つ以上の隣接するルマブロックの利用可能性に基づいて、前記ビデオユニットの隣接するルマサンプルを検索するか否かを決定するステップであり、前記1つ以上の隣接するルマブロックは前記隣接するルマサンプルを構成する、ステップと、
前記隣接するサンプルが利用可能な場合に、端数処理ベースの平均演算によって、前記隣接するルマサンプルを使用して、計算された平均ルマ変数に基づいてビンインデックスを導出するステップと、
によって導出される、
装置。
【請求項12】
命令を保管している非一時的なコンピュータで読取り可能な記憶媒体であって、前記命令が実行されると、プロセッサに、
ビデオの現在クロマビデオブロックと前記ビデオのビットストリームとの間の変換の最中に、前記現在クロマビデオブロックのクロマ残差サンプルにスケーリングプロセスが適用されることを決定し、かつ、
前記クロマ残差サンプルに前記スケーリングプロセスを適用することにより、前記変換を実行する、ようにさせ、
前記スケーリングプロセスにおいて、前記クロマ残差サンプルは、前記現在クロマビデオブロックを再構成するために使用される前に、少なくとも1つのスケーリング因子に基づいてスケーリングされ、
1つ以上のシンタックス要素、および、区分線形モデルのピースを識別するビンインデックスが、前記少なくとも1つのスケーリング因子を導出するために使用され、かつ、前記1つ以上のシンタックス要素は、条件付きで前記ビットストリーム内に含まれ、
前記1つ以上のシンタックス要素は、前記ビットストリームにおける適応パラメータセットに含まれており、
前記ビンインデックスは、
前記現在クロマビデオブロックの左上サンプルに対応するルマサンプル基づいて決定される、ビデオユニットの1つ以上の隣接するルマブロックの利用可能性を検査するステップと、
前記1つ以上の隣接するルマブロックの利用可能性に基づいて、前記ビデオユニットの隣接するルマサンプルを検索するか否かを決定するステップであり、前記1つ以上の隣接するルマブロックは前記隣接するルマサンプルを構成する、ステップと、
前記隣接するサンプルが利用可能な場合に、端数処理ベースの平均演算によって、前記隣接するルマサンプルを使用して、計算された平均ルマ変数に基づいてビンインデックスを導出するステップと、
によって導出される、
非一時的なコンピュータで読取り可能な記憶媒体。
【請求項13】
ビデオ処理装置によって実行される方法であって、前記方法は、
ビデオの現在クロマビデオブロックについて、前記現在クロマビデオブロックのクロマ残差サンプルにスケーリングプロセスが適用されることを決定するステップと、
前記クロマ残差サンプルに前記スケーリングプロセスを適用することにより、ビットストリームを生成するステップと、を含み、
前記スケーリングプロセスにおいて、前記クロマ残差サンプルは、前記現在クロマビデオブロックを再構成するために使用される前に、少なくとも1つのスケーリング因子に基づいてスケーリングされ、
1つ以上のシンタックス要素、および、区分線形モデルのピースを識別するビンインデックスが、前記少なくとも1つのスケーリング因子を導出するために使用され、かつ、前記1つ以上のシンタックス要素は、条件付きで前記ビットストリーム内に含まれ、
前記1つ以上のシンタックス要素は、前記ビットストリームにおける適応パラメータセットに含まれており、
前記ビンインデックスは、
前記現在クロマビデオブロックの左上サンプルに対応するルマサンプル基づいて決定される、ビデオユニットの1つ以上の隣接するルマブロックの利用可能性を検査するステップと、
前記1つ以上の隣接するルマブロックの利用可能性に基づいて、前記ビデオユニットの隣接するルマサンプルを検索するか否かを決定するステップであり、前記1つ以上の隣接するルマブロックは前記隣接するルマサンプルを構成する、ステップと、
前記隣接するサンプルが利用可能な場合に、端数処理ベースの平均演算によって、前記隣接するルマサンプルを使用して、計算された平均ルマ変数に基づいてビンインデックスを導出するステップと、
によって導出される、
方法。
【発明の詳細な説明】
【技術分野】
【0001】
本特許文献は、ビデオの符号化/復号化技術、装置、およびシステムに関する。
【0002】
関連出願の相互参照
出願は、2019年6月22日に出願された国際特許出願第PCT/CN2019/092433号の優先権および利益を主張する、2020年6月22日に出願された国際特許出願第PCT/CN2020/097374号に基づくものである。全ての上記の特許出願は、その全体が、ここにおいて参照により包含されている。
【背景技術】
【0003】
ビデオ圧縮の進歩にもかかわらず、デジタルビデオは、依然として、インターネットおよび他のデジタル通信ネットワークにおける最大の帯域幅使用を占めている。ビデオの受信および表示が可能な接続されたユーザデバイスの数が増加するにつれて、デジタルビデオの使用のための帯域幅需要は増加し続けることが予想される。
【発明の概要】
【0004】
デジタルビデオの符号化/復号化に関連する装置、システム、および方法、そして、具体的には、ビデオコーディングにおけるクロスコンポーネント線形モデル(cross-component linear model、CCLM)予測モードのための単純化された線形モデル導出について説明される。説明される方法は、既存のビデオコーディング標準(例えば、高効率ビデオコーディング(High Efficiency Video Coding、HEVC))および将来のビデオコーディング標準(例えば、バーサタイルビデオコーディング(Versatile Video Coding、VVC))、または、コーデックの両方に対して適用され得る。
【0005】
一つの代表的な態様において、開示された技術は、ビジュアルメディア処理のための方法を提供するために使用され得る。本方法は、ビジュアルメディアデータのビデオ領域における現在ビデオブロックとビットストリーム表現との間の変換のためのビットストリーム表現を処理するステップを含む。ここで、前記ビットストリーム表現は、ルマ依存(luma-dependent)クロマ残差スケーリングステップにおいて使用される1つ以上のシンタックス要素が前記ビットストリーム表現に選択的に含まれるということを指定するルールに基づいている。ここで、前記ルマ依存クロマ残差スケーリングステップは、前記変換の最中に隣接する再構成されたルマサンプルに基づいてクロマサンプルをスケーリングするステップを含む。そして、ここで、前記1つ以上のシンタックス要素は、前記スケーリングのために使用されるクロマ残差スケーリング因子(factor)を導出するために使用可能である。
【0006】
さらに別の代表的な態様において、上述の方法は、プロセッサ実行可能コードの形態で具体化され、そして、コンピュータで読取り可能なプログラム媒体に保管される。
【0007】
さらに別の代表的な態様においては、上述の方法を実行するように構成された、または、動作可能なデバイスが開示される。本装置は、この方法を実装するようにプログラムされたプロセッサを含み得る。
【0008】
さらに別の例示的な態様においては、上述の方法を実装するように構成されたプロセッサを備えるビデオの符号化及び/又は復号化装置が開示される。
【0009】
さらに別の例示的な態様においては、コンピュータで読取り可能な媒体が開示されている。コンピュータで読取り可能な媒体は、上述の方法のうち1つを具体化するプロセッサ実行可能コードを保管する。
【0010】
開示された技術の上記の態様および特徴は、図面、明細書、および特許請求の範囲において、より詳細に説明されている。
【図面の簡単な説明】
【0011】
図1図1は、HEVCにおける角度イントラ予測モードの一つの実施例を示す。
図2図2は、HEVCではない方向モードの一つの実施例を示す。
図3図3は、CCLMモードに関連する一つの実施例を示す。
図4図4は、クロマスケーリングアーキテクチャによるルママッピングの一つの実施例を示す。
図5図5は、異なるカラーフォーマットにおけるルマ(luma)ブロックおよびクロマ(chroma)ブロックの一つの実施例を示す。
図6図6は、同じカラーフォーマットにおけるルマブロックおよびクロマブロックの一つの実施例を示す。
図7図7は、複数のフォーマットをカバーしている共に配置(collocated)されたルマブロックの一つの実施例を示す。
図8図8は、より大きなルマブロック内のルマブロックの一つの実施例を示す。
図9図9は、より大きなルマブロック内および境界ボックス内のルマブロックの一つの実施例を示す。
図10図10は、本明細書で説明されるビジュアルメディア復号化またはビジュアルメディアコーディング技術を実装するためのハードウェアプラットフォームの一つの実施例に係るブロック図である。
図11図11は、開示された技術に従った、クロスコンポーネント予測について線形モデル導出のための一つの例示的な方法に係るフローチャートを示す。
図12図12は、開示された技術を実施することができる一つの例示的なビデオ処理システムに係るブロック図である。
図13図13は、ビジュアルメディア処理の一つの例示的な方法のためのフローチャートである。
【発明を実施するための形態】
【0012】
2.1 HEVCに関する簡単なレビュー
2.1.1 HEVC/H.265におけるイントラ予測
イントラ予測では、事前に考慮されたカラーチャネルで再構成されたサンプルを用いて、所与のトランスフォームブロック(transform block、TB)サンプルを作成する。イントラ予測モードはルマチャンネルとクロマチャンネルに対して別々に信号化(signaled)され、クロマチャンネルイントラ予測モードは'DM_CHROMA'モードを介してルマチャンネルイントラ予測モードに任意的に依存している。イントラ予測モードは、予測ブロック(prediction block、PB)レベルで信号化されるが、CUについて残差クワッドツリー階層に従って、イントラ予測プロセスがTBレベルで適用され、それにより、1つのTBのコード化がCU内の次のTBのコード化に影響することができ、そして、従って、基準値(reference values)として使用されるサンプルまでの距離を短縮している。
【0013】
HEVCは35個のイントラ予測モードを含む。-DCモード、平面モード、および、33個の方向または「角度(‘angular’)」イントラ予測モードである。33個の角度イントラ予測モードが図1に示されている。
【0014】
クロマカラーチャネルに関連するPBに対して、イントラ予測モードは、平面、DC、水平、垂直、'DM_CHROMA'モード、または、ときどき、対角モード'34'のいずれかとして指定される。
【0015】
クロマフォーマット4:2:2および4:2:0について、クロマPBは、(それぞれに)2個または4個のルマPBとオーバーラップすることがある。この場合、DM_CHROMAに対するルマ方向は、これらのルマPBの左上から取得される。
【0016】
DM_CHROMAモードは、ルマカラーチャネルPBのイントラ予測モードがクロマカラーチャネルPBに対して適用されることを示す。このことは比較的に一般的なので、intra_croma_pred_modeの最確モード(most-probable-mode)コーディング方式は、選択されているこのモードに有利にバイアスされている。
【0017】
2.2 バーサタイルビデオコーディング(VVC)アルゴリズムの説明
2.2.1 VVCコーディングアーキテクチャ
HEVCを超える将来のビデオコーディング技術を探求するため、共同ビデオ探査チーム(joint video explore team、JVET)が、2015年にVCEGとMPEGの共同によって設立された。JVETミーティングは、現在、四半期に1回開催されており、そして、新たなコーディング標準は、HEVCと比較して50%のビットレート低減を目指している。新たなビデオコーディング標準は、2018年4月のJVET会議でバーサタイルビデオコーディング(Versatile Video Coding、VVC)として正式に命名され、そして、VVCテストモデル(VTM)の最初のバージョンが、その時にリリースされた。VVC標準化に寄与する継続的な努力が行われているため、JVET会議のたびに新たなコーディング技術がVVC標準に採用されている。VVC作業原案(working draft)および試験モデルVTMが、次いで、毎回会議後に更新されている。VVCプロジェクトは、現在、2020年7月の会議で技術的完成(FDIS)を目指している。
【0018】
先行するほとんどの標準と同様に、VVCは、インターピクチャ(inter-picture)予測およびイントラピクチャ(intra-picture)予測を組み合わせた、ブロックベースのハイブリッド・コーディングアーキテクチャを有しており、そして、エントロピー符号化でコーディングを変換する。画像パーティション(partitioning)構造は、入力ビデオをコーディングツリーユニット(coding tree unit、CTU)と呼ばれるブロックへと分割する。CTUは、ネスト化マルチタイプツリー構造を有する四分木(quadtree)を使用してコーディングユニット(coding unit、CU)へと分割され、リーフコーディングユニット(CU)は、同じ予測モード(例えば、イントラまたはインター)を共有する領域を定義している。この文書において、用語「ユニット(‘unit’)」は、全ての色コンポーネントをカバーする画像の領域を定義し、用語「ブロック(‘block’)」は、特定の色コンポーネント(例えば、ルマ)をカバーする領域を定義するために使用され、そして、4:2:0といったクロマサンプリング形式を考慮する場合には、空間位置が異なってよい。
【0019】
2.2.2 VVCにおけるデュアル/分離ツリーパーティション
ルマ成分(luma component)およびクロマ成分(chroma component)は、Iスライスに対して別々のパーティションツリーを有し得る。別々のツリーパーティションは、CTUレベルではなく、64×64ブロックレベル未満である。VTMソフトウェアでは、デュアルツリーのオンとオフを制御するSPSフラグが存在している。
【0020】
2.2.3 VVCにおけるイントラ予測
2.2.3.1 67個のイントラ予測モード
自然のビデオにおいて提示された任意のエッジ方向をキャプチャするために、VTM4における方向イントラモードの数は、HEVCで使用されるように、33個から65個に拡張されている。HEVCには無い新たな方向モードは、図2において赤い点線の矢印として示されており、そして、平面モードおよびDCモードは同じままである。これらのより密度が高い方向イントラ予測モードは、全てのブロックサイズについて、および、ルマとクロマイントラ予測の両方について適用される。
【0021】
2.2.3.2 クロスコンポーネント線形モデル予測(CCLM)
クロスコンポーネント冗長性を低減するために、クロスコンポーネント線形モデル(CCLM)予測モードがVTM4において使用され、以下の線形モデルを使用することによって、同じCUの再構成ルマサンプルに基づいて、クロマサンプルが予測される。

pred(i,j)=α・rec’(i,j)+β

ここで、pred(i,j)は、CU内の予測クロマサンプルを表し、そして、rec’(i,j)は、ダウンサンプリングされた同じCUの再構成ルマサンプルを表す。線形モデルパラメータであるαおよびβは、2個のサンプルからのルマ値とクロマ値との間の関係から導出され、それらは、ダウンサンプリングされた隣接するルマサンプルのセット内で最小サンプル値および最大サンプルを有するルマサンプルであり、そして、それらに対応するクロマサンプルである。線形モデルパラメータαおよびβは、以下の式に従って獲得される。
【数1】
【数2】
【0022】
ここで、YとXは、最大ルマサンプル値を有するルマサンプルのルマ値およびクロマ値を表している。そして、XとYは、それぞれに、最小ルマサンプル値を有するクロマサンプルのルマ値およびクロマ値を表している。図3は、左および上のサンプルの位置、および、CCLMモードに関わる現在ブロックのサンプルの一つの例を示している。
【0023】
パラメータαを計算するための除算演算は、ルックアップテーブルを用いて実行される。テーブルを保管するために必要なメモリを削減するために、diff値(最大値と最小値との間の差異)およびパラメータαは、指数表記によって表される。例えば、diffは4ビットの有効部分(significant part)と指数で近似される。従って、1/diffの表は、以下のように、仮数(significand)の16個の値について16個の要素へと削減される。
DivTable[]={0、7、6、5、5、4、4、3、2、2、1、1、1、1、0}
【0024】
これは、計算の複雑さ、並びに、必要なテーブルを保管するために必要なメモリサイズの両方を低減する利点を有している。
【0025】
上のテンプレートおよび左のテンプレートは、線形モデル係数を計算するために一緒に使用され得るほかに、また、LM_AモードとLM_Lモードと呼ばれる、他の2個のLMモードにおいても代替的に使用され得る。
【0026】
LM_Aモードでは、線形モデル係数を計算するために、上のテンプレートのみが使用される。より多くのサンプルを得るために、上のテンプレートは(W+H)まで拡張される。LM_Lモードでは、線形モデル係数を計算するために、左のテンプレートのみが使用される。より多くのサンプルを得るためには、左のテンプレートは(H+W)まで拡張される。
【0027】
非正方形ブロックについて、上のテンプレートはW+Wに拡張され、そして、左のテンプレートはH+Hに拡張される。
【0028】
4:2:0のビデオシーケンスについてクロマサンプル位置と合わせるために、2種類のダウンサンプリングフィルタがルマサンプルに対して適用され、水平方向と垂直方向の両方において2対1(2 to 1)のダウンサンプリング比率を達成する。ダウンサンプリングフィルタの選択は、SPSレベルフラグによって指定される。2個のダウンサンプリングフィルタは以下のとおりであり、それぞれに、“type-0”と“type-2”のコンテンツに対応している。
【数3】
【数4】
【0029】
上限基準線がCTU境界にある場合、ダウンサンプリングされたルマサンプルを作成するためには、1つのルマライン(イントラ予測における一般的なラインバッファ)のみが使用されることに留意する。
【0030】
このパラメータ計算は、デコーディング処理の一部として実行されるものであり、そして、単にエンコーダ探索操作として実行されるだけではない。その結果として、αおよびβの値をデコーダに伝達するためにシンタックスは使用されない。
【0031】
クロマイントラモードコーディングについては、合計8つのイントラモードがクロマイントラモードコーディングのために許可されている。これらのモードは、5個の従来のイントラモードおよび3個のクロスコンポーネント線形モデルモード(CCLM、LM_A、およびLM_L)を含む。クロマモードコーディングは、対応するルマブロックのイントラ予測モードに直接的に依存する。Iスライスではルマ成分とクロマ成分について別個のブロックパーティション構造がイネーブルされているので、1つのクロマブロックが複数のルマブロックに対応し得る。従って、クロマDMモードについて、現在クロマブロックの中心位置をカバーする対応するルマブロックのイントラ予測モードが直接的に継承される。
【0032】
2.2.3.2.1 対応する修正作業原案(JVET-N0271)
以下の仕様は、JVET-M1001の修正作業原案およびJVET-N0271における採択に基づくものである。採用されたJVET-N0220の変更点は、太字および下線で示されている。
【表1】
【0033】
2.2.3.3 その他のイントラ予測の側面
VTM4は、HEVCとは異なる多くのイントラコーディングツールを含む。例えば、以下の特徴が、ブロックツリー構造の上のVVCテストモデル3に含まれている。
・ワイドアングルモード拡張を伴う67個のイントラモード
・ブロックサイズおよびモード依存4タップ補間フィルタ
・位置依存型イントラ予測結合(position dependent intra prediction combination、PDPC)
・クロスコンポーネント線形モデルイントラ予測
・多基準線(multi-reference line)イントラ予測
・イントラサブパーティション
【0034】
2.2.4 VVCにおけるインター予測
2.2.4.1 インター予測とイントラ予測の結合(combined inter and intra prediction、CIIP)
VTM4では、CUがマージモードでコード化されるとき、かつ、CUが少なくとも64個のルマサンプル(すなわち、CU幅×CU高さが64以上)を含む場合、現在CUに結合された結合インター/イントラ予測(CIIP)モードが適用されるかを示すために追加フラグが信号化される。
【0035】
CIIP予測を形成するために、イントラ予測モードが最初に2個の追加シンタックス要素から導出される。4個までの可能なイントラ予測モードを使用できる。DC、平面、水平、または垂直である。次いで、通常のイントラおよびインターデコーディングプロセスを使用して、インター予測およびイントラ予測信号が導出される。最後に、CIIP予測を得るために、インター予測信号およびイントラ予測信号の加重平均が実行される。
【0036】
2.2.4.2 その他のインター予測の側面
VTM4は、HEVCとは異なる多くのコーディングツールを含んでいる。例えば、以下の特徴が、ブロックツリー構造の上のVVCテストモデル3に含まれている。
・アフィン運動インター予測
・サブブロックベースの時間的動きベクトル予測
・適応動きベクトル分解能(resolution)
・時間的動き予測のための8×8ブロックベースの動き圧縮
・高精度(1/16 pel)動きベクトルストレージ、および、ルマ成分について8タップ補間フィルタとクロマ成分について4タップ補間フィルタも用いた動き補正
・三角形パーティション
・イントラ予測とインター予測の結合
・MVDとのマージ(MMVD)
・対称MVDコーディング
・双方向の光学的フロー
・デコーダ側の動きベクトル精緻化
・双予測(bi-predictive)加重平均
【0037】
2.2.5 ループ内フィルタ
VTM4には、合計3個のループ内フィルタ(in-loop filter)が存在する。デブロッキングフィルタおよびSAO(HEVCにおける2つのループフィルタ)の他に、適応ループフィルタ(adaptive loop filter、ALF)がVTM4において適用される。VTM4におけるフィルタリングプロセスの順序は、デブロッキングフィルタ、SAO、そしてALFである。
【0038】
VTM4において、SAOおよびデブロッキングフィルタリングプロセスは、HEVCにおけるものとほぼ同じである。
【0039】
VTM4では、クロマスケーリングを用いたルママッピングと呼ばれる新しいプロセスが追加されている(このプロセスは、以前は適応ループ内再形成(reshaper)として知られていた)。この新しいプロセスは、デブロッキングの前に実行される。
【0040】
2.2.6 クロマスケーリングを用いたルママッピング(LMCS、別名 ループ内再形成)
VTM4では、クロマスケーリングを用いたルママッピング(LMCS)と呼ばれるコーディングツールが、ループフィルタの前に新たな処理ブロックとして追加されている。LMCSは2個の主要なコンポーネントを有している。1)適応区分(piecewise)線形モデルに基づくルマ成分のループ内マッピング、2)クロマ成分に対して、ルマ依存クロマ残差スケーリングが適用されること、である。図4は、デコーダの視点からのLMCSアーキテクチャを示している。図4における点線のブロックは、マップされたドメイン内で処理が適用されるところを示しており、そして、これらは、逆量子化、逆変換、ルマ・イントラ予測、および、ルマ予測をルマ残差と共に加算すること、を含む。図におけるシェーディングされていないブロックは、処理が元の(すなわち、マップされていない)ドメインにおいて適用されるところを示しており、そして、これらは、デブロッキング、ALF、およびSAOといったループフィルタ、動き補償予測、クロマ・イントラ予測、クロマ予測をクロマ残差と共に加算すること、および、参照ピクチャとしてデコードされた画像のストレージ、を含む。図4においてクロスハッチでシェーディングされたブロックは、新たなLMCS機能ブロックであり、ルマ信号の順方向(forward)および逆方向(inverse)マッピング、並びに、ルマ依存クロマスケーリングプロセスを含んでいる。VVCにおける他のツールと同様に、LMCSは、SPSフラグを使用してシーケンスレベルでイネーブル/ディセーブルされ得る。
【0041】
2.2.6.1 区分線形モデルによるルママッピング
ルマ成分のループ内マッピングは、圧縮効率を改善するために、ダイナミックレンジにわたりコードワードを再配分することによって入力信号のダイナミックレンジを調整する。ルママッピングは、フォワードマッピング関数、FwdMap、および、対応する逆マッピング関数、InvMapを利用する。FwdMap関数は、16個の等しい区分を有する区分線形モデル(piecewise linear model)を使用して信号化される。InvMap関数は、信号化される必要はなく、そして、代わりにFwdMap関数から派生する。
【0042】
ルマ・マッピングモデルは、タイルグループレベルでシグナリングされる。プレゼンスフラグが、最初に信号化される。ルマ・マッピングモデルが現在のタイルグループに存在する場合、対応する区分線形モデルパラメータが信号化される。区分線形モデルは、入力信号のダイナミックレンジを16等分に分割し、各ピースに対して、その線形マッピングパラメータは、そのピースに割り当てられたコードワードの数を使用して表現される。10ビット入力を例にとる。16個の各部分には、デフォルトで64個のコードワードが割り当てられる。コードワードの信号数は、スケーリング因子を計算し、それに応じてマッピング関数を調整するために使用される。タイルグループレベルでは、図4に示されるようなLMCSプロセスが現在タイルグループに適用されるかを示すために、別のLMCSイネーブルフラグが信号化される。
【0043】
FwdMap区分線形モデルの各i番目のピース、i=0...15は、2個の入力ピボット点InputPivot[]および2個の出力(マップされた)ピボット点MappedPivot[]によって定義される。
【0044】
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]
ここで、SignaledCW[i]は、i番目のピースについて信号化されたコードワードの数である。
【0045】
図4に示されるように、インターコード化(inter-coded)ブロックに対して、動き補償予測がマップされたドメインにおいて実行される。別の言葉で言えば、DPBにおける参照信号(reference value)に基づいて動き補償予測ブロックYpredを計算した後で、元のドメインのルマ予測ブロックをマップされたドメインにマップするために、FwdMap関数が適用される、Y’pred=FwdMap(Ypred)。イントラコード化(intra-coded)ブロックでは、マップされたドメインでイントラ予測が実行されるため、FwdMap関数は適用されない。再構成ブロックYrが計算された後で、マップされたドメインにおける再構成されたルマ値を元のドメインにおける再構成されたルマ値に戻すために、InvMap関数が適用される(Y^i=InvMap(Yr))。InvMap関数は、イントラコード化およびインターコード化ブロックの両方に適用される。
【0046】
ルママッピングプロセス(順方向及び/又は逆方向マッピング)は、ルックアップテーブル(LUT)またはオンザフライ計算のいずれかを使用して実装することができる。LUTが使用される場合、タイルグループレベルで使用するために、FwdMapLUTおよびInvMapLUTが事前に計算され、かつ、事前に保管され得る。そして、順方向および逆方向のマッピングは、それぞれ、FwdMap(Ypred)=FwdMapLUT[Ypred]およびInvMap(Ypred)=InvMapLUT[Ypred]として単純に実装することができる。代替的に、オンザフライ計算が使用され得る。マッピング関数FwdMapを例にとる。ルマサンプルが属するピースを探し出すために、サンプル値が6ビットだけ右シフトされる(16等分に相当)。次に、そのピースに対する線形モデルパラメータが検索され、そして、マップされたルマ値を計算するためにオンザフライで適用される。iをピースインデックス、a1、a2を、それぞれに、InputPivot[i]とInputPivot[i+1]、b1、b2を、それぞれに、MappedPivot[i]とMappedPivot[i+1]とする。FwdMap関数は、以下のように評価される。
FwdMap(Ypred)=((b2-b1)/(a1-a2))*(Ypred-a1)+b1
【0047】
InvMap関数は同様の方法においてオンザフライで計算され得る。ただし、マップされたドメイン内のピースが等しいサイズではないので、サンプル値が属するピースを決定するときに、単純な右ビットシフトの代わりに条件付きチェックを適用する必要があること、を除く。
【0048】
2.2.6.2 ルマ依存クロマ残差スケーリング
クロマ残差スケーリングは、ルマ信号と対応するクロマ信号との間の相互作用を補償するように設計されている。クロマ残差スケーリングがイネーブルであるか否かは、また、タイルグループレベルでも信号化される。ルママッピングがイネーブルされており、かつ、デュアルツリーパーティション(分離クロマツリーとしても知られている)が現在タイルグループに適用されていない場合、ルマ依存クロマ残差スケーリングがイネーブルされているか否かを示すために、追加的なフラグが信号化される。ルママッピングが使用されない場合、または、デュアルツリーパーティションが現在タイルグループで使用される場合、ルマ依存クロマ残差スケーリングはディセーブルされる。さらに、ルマ依存クロマ残差スケーリングは、面積が4以下のクロマブロックについて、常にディスプレイされている。
【0049】
クロマ残差スケーリングは、(イントラコード化ブロックとインターコード化ブロックの両方について)対応するルマ予測ブロックの平均値に依存する。avgY’をルマ予測ブロックの平均として表す。CScaleinvの値が、以下のステップで計算される。
1)InvMap関数に基づいて、avgY’が属する区分線形モデルのインデックスを求める。
2)CScaleinv=cScaleInv[YIdx] ここで、cScaleInv[]は、事前に計算された16ピースのLUTである。
現在ブロックが、イントラ、CIIP、またはイントラブロックコピー(IBC、別名、現在参照ピクチャ(current picture referencing)またはCPR)モードとしてコード化される場合、avgY’は、イントラ、CIIP、または、IBC予測ルマ値の平均として計算され、そうでなければ、avgY’は、フォワードマッピングされたインター予測ルマ値の平均として計算される(図4)。サンプルベースで実行される、ルママッピングとは異なり、CScaleinvは、クロマブロック全体について定数値である。クロマ残差スケーリングは、以下のように適用される。
エンコーダ側:CResScale=CRes*CScale=CRes/CScaleInv
デコーダ側:CRes=CResScale/CScale=CResScale*CScaleInv
【0050】
2.2.6.3 JVET-M1001_v7における作業原案とJVET-N0220での採択
以下の仕様は、JVET-M1001の修正作業原案およびJVET-N0220の採択に基づくものである。採用されたJVET-N0220の変更点は、太字および下線で示されている。
【表2】
【0051】
3. 既存の実装の欠点
現在のLMCS/CCLMの設計には、以下といった問題があり得る。
1.LMCSコーディングツールにおいて、クロマ残差スケーリング因子は、共配置されたルマ予測ブロックの平均値によって導出され、これは、LMCSクロマ残差スケーリングにおけるクロマサンプルの処理のための待ち時間(latency)となる。
a)シングル/共有ツリーの場合、待ち時間は、(a)利用可能なルマブロック全体の全ての予測サンプルを待つこと、および、(b)(a)によって得られた全てのルマ予測サンプルを平均化すること、によって引き起こされる。
b)デュアル/分離ツリーの場合、Iスライスではルマ成分とクロマ成分の分離ブロックパーティション構造がイネーブルになっているため、待ち時間はさらに悪くなる。従って、1個のクロマブロックが複数のルマブロックに対応し、1個の4×4クロマブロックが64×64ルマブロックに対応し得る。従って、最悪の場合は、64×64ルマブロック全体の全ての予測サンプルが利用可能になるまで、現在の4×4クロマブロックのクロマ残差スケーリング因子を待つ必要があり得る。一言で言えば、デュアル/分離ツリーにおける待ち時間の問題は、はるかに深刻であろう。

2.CCLMコーディングツールにおいて、イントラクロマ予測のためのCCLMモデル計算はルマブロックおよびクロマブロックの両方の左と上の参照サンプルに依存する。そして、クロマブロックに対するCCLM予測は、同一CUに係る共に配置(collocated)されたルマ再構成サンプルに依存する。これは、デュアル/分離ツリーにおいて高い待ち時間を引き起こす。
・デュアル/分離ツリーの場合、1個の4×4クロマブロックは、64×64ルマブロックに対応し得る。従って、最悪の場合、現在クロマブロックのCCLMプロセスは、対応する64×64ルマブロック全体が再構成されるまで待つ必要がり得る。この待ち時間の問題は、デュアル/分離ツリーにおけるLMCSクロマスケーリングと同様である。
【0052】
4.例示的な技術および実施形態
この問題に取り組むために、ルマ依存クロマ残差スケーリング、CCLM、および、異なる色成分からの情報に依存する他のコーディングツールにおけるクロスコンポーネント依存性を除去/低減/制限するためのいくつかの方法が提案されている。
【0053】
以下に記載される詳細な実施形態は、一般的な概念を説明するための例として考慮されるべきである。これらの実施形態は、狭義に解釈されるべきではない。さらに、これらの実施形態は、任意の方法で組み合わせることができる。
【0054】
以下に説明される黒丸(bullet)は、明示的にLMCS/CCLMに言及しているが、この方法は、異なる色成分からの情報に依存する他のコーディングツールにも適用可能であり得ることに留意する。加えて、以下で言及される用語「ルマ(‘luma’)」および「ルマ(‘chroma’)」は、RGBカラーフォーマットにおける「G成分(‘G component’)」や「B/R成分(‘B/R component’)」といった「第1色成分」と「第2色成分」に置き換えることができる。
【0055】
以下の説明では、「共に配置されたサンプル/ブロック(“collocated sample/block”)」の定義は、VVC作業原案JVET-M1001のcollocated sample/blockの定義と一致している。より具体的には、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)を有する。
【0056】
以下の説明において、「対応するブロック“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)に配置される。
【0057】
以下では、デコーダ側動きベクトル導出(decoder-side motion vector derivation、DMVD)が、BDOF(別名、BIO)、及び/又は、デコード側動きベクトル精緻化(decoder-side motion vector refinement、DMVR)、及び/又は、フレームレートアップコンバージョン(frame rate up-conversion、FRUC)、及び/又は、デコーダにおける動きベクトル及び/又は予測サンプル値を精緻化する他の方法を表すために使用される。
LMCSのクロマスケーリング待ち時間の除去およびCCLMのモデル計算
1.インターコード化ブロックに対して、参照フレーム内の現在ブロックの1つまたは複数の参照サンプルを用いて、LMCSモードにおけるクロマ残差スケーリング因子を導出することができることが提案されている。
a)一例において、参照ルマサンプルは、クロマ残差スケーリング因子を導出するために直接使用され得る。
i.代替的に、補間は、まず、参照サンプルに適用され得る。そして、補間されたサンプルは、クロマ残差スケーリング因子を導出するために使用され得る。
ii.代替的に、異なる参照フレーム内の参照サンプルを使用して、クロマ残差スケーリング因子の導出に使用される最終参照サンプルを導出することができる。
1)一例において、双予測コード化ブロックに対して、上記の方法が適用されてよい。
iii.一例において、参照サンプルの強度は、クロマ残差スケーリング因子を導出するために使用される前に、再形成ドメインに変換されてよい。
iv.一例において、基準サンプルの線形結合を使用して、クロマ残差スケーリング因子を導出することができる。
1)例えば、a×S+bを用いてクロマ残差スケーリング因子を導出することができる。ここで、Sは参照サンプル、aおよびbはパラメータである。一例において、aおよびbは、局所照明補償(localized illuminate compensation)によって導出されてよい。
b)一例において、参照フレーム内の参照ルマサンプルの位置は、現在ブロックの動きベクトルに依存し得る。
i.一例において、参照サンプルは、参照ピクチャ内にあり、現在ルマブロックと同じ幅および高さを持つ参照ルマブロックに属する。参照ピクチャ内の参照ルマサンプルの位置は、現在ピクチャ内の対応するルマサンプルの位置として計算され、動きベクトルが加算される。
ii.一例において、参照ルマサンプルの位置は、参照フレーム内の対応するルマサンプルと呼ばれる、現在ルマブロックおよび現在ブロックの動きベクトルの左上(または中央、または右下)サンプルの位置によって導出される。
1)一例において、整数(integer)動きベクトルを使用して、参照フレーム内の対応するルマサンプルを導出することができる。一例において、1個のブロックに関連する動きベクトルは、ゼロに近づくように丸められるか、または、整数の動きベクトルを導出するためにゼロから丸められる。
2)代替的に、分数(fractional)動きベクトルを使用して、参照フレーム内の対応するルマサンプルを導出することができ、その結果、補間プロセスは、分数参照サンプルを導出するために必要とされ得る。
iii.代替的に、参照ルマサンプルの位置は、現在ルマブロックの左上(または中央、または右下)サンプルの位置によって導出される。
iv.代替的に、クロマ残差スケーリング因子を計算するために、参照フレーム内の事前に定義された位置で複数の対応するルマサンプルが選択(picked)されてよい。
c)一例において、複数参照ルマサンプルの中央値または平均値を使用して、クロマ残差スケーリング因子を導出することができる。
d)一例において、事前に定義された参照フレーム内の参照ルマサンプルを使用して、クロマ残差スケーリング因子を導出することができる。
i.一例において、事前に定義された参照フレームは、参照ピクチャリスト0の0に等しい参照インデックスを有するフレームであってよい。
ii.代替的に、事前に定義された参照フレームの参照インデックス及び/又は参照ピクチャリストは、シーケンス/ピクチャ/タイルグループ/スライス/タイル/CTU行/ビデオユニットレベルで信号化することができる。
iii.代替的に、複数の参照フレーム内の参照ルマサンプルを導出し、平均値または重み付け平均値を使用して、クロマ残差スケーリング因子を得ることができる。
2.LMCSモードにおけるルマサンプルからクロマ残差スケーリング因子を導出するか否か、および、導出する方法は、現在ブロックが双予測を適用するか否かに依存し得ることが提案されている。
a)一例において、クロマ残差スケーリング因子は、各予測方向に対して個別に導出される。
3.LMCSモードにおけるルマサンプルからクロマ残差スケーリング因子を導出するか否か、および、導出する方法は、現在ブロックがサブブロックベースの予測を適用するか否かに依存し得ることが提案されている。
a)一例において、サブブロックベースの予測はアフィン予測である。
b)一例において、サブブロックベースの予測は代替時間動きベクトル予測(Alternative Temporal Motion Vector Prediction、ATMVP)である。
c)一例において、クロマ残差スケーリング因子は、各サブブロックに対して個別に導出される。
d)一例において、クロマ残差スケーリング因子は、たとえそれがサブブロックによって予測されるとしても、ブロック全体に対して導出される。
i.一例において、1個の選択されたサブブロック(例えば、左上のサブブロック)の動きベクトルを使用して、黒丸(bullet)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コーディングブロックに対して、現在フレームの参照ブロックにおける1つまたは複数の参照サンプルが、LMCSモードにおけるクロマ残差スケーリング因子を導出するために使用され得ることが提案されている。ブロックIBCコード化される場合、用語「動きベクトル(“motion vector”)」は、参照ピクチャが現在ピクチャとして設定されている、「ブロックベクトル(“block vector”)」とも呼ばれる。
a)一例において、参照サンプルは、現在ピクチャ内にあり、現在ブロックと同じ幅および高さを有する参照ブロックに属する。参照サンプルの位置は、その対応するサンプルの位置として、動きベクトルを加算して計算され得る。
b)一例において、参照ルマサンプルの位置は、動きベクトルを加算する現在ルマブロックの左上(または中央、または右下)サンプルの位置によって導出される。
c)代替的に、参照ルマサンプルの位置は、現在ブロックのブロックベクトルを加算する現在ルマブロックの左上(または中央、または右下)サンプルの位置によって導出され得る。
d)代替的に、現在ルマブロックの参照領域内の事前に定義された位置で複数の対応するルマサンプルを選択(pick)して、クロマ残差スケーリング因子を計算しすることができる。
e)一例において、複数の対応するルマサンプルが、クロマ残差スケーリング因子を導出する関数を用いて計算されてよい。
i.例えば、複数の対応するルマサンプルの中央値または平均値を計算して、クロマ残差スケーリング因子を導出することができる。
f)一例において、参照サンプルの強度は、クロマ残差スケーリング因子を導出するために使用される前に、再形成ドメインに変換されてよい。
i.代替的に、参照サンプルの強度は、クロマ残差スケーリング因子を導出するために使用される前に、元のドメインに変換されてよい
8.現在フレーム内の現在ルマブロックの特定された位置に置かれた1つまたは複数の予測/再構成されたサンプルが、LMCSモードにおける現在クロマブロックに対するクロマ残差スケーリング因子を導出するために使用され得ることが提案されている。
a)一例において、現在ブロックがインターコード化される場合、現在ルマブロックの中心に位置するルマ予測(または再構成)サンプルが、クロマ残差スケーリング因子を導出するために選択され得る。
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)一例において、左に隣接する列及び/又は「対応するルマ・コーディングブロック」の上の隣接する行に位置する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.一例において、隣接するサンプルの「利用可能性“availability”」は、現在ブロック/サブブロックのコーディングモード、及び/又は、隣接するサンプルのコーディングモードに依存し得る。
1)一例において、インターモードでコード化されたブロックについて、イントラモード、又は/及びIBCモード、又は/及びCIIPモード、又は/及びLICモードでコード化された隣接するサンプルは、「利用不可(“unavailable”)」とみなされ得る。
2)一例において、インターモードでコード化されたブロックについて、隣接するサンプルは、拡散フィルタ、又は/及び双方向フィルタ、又は/及びアダマール変換(Hadamard transform)フィルタを使用し、「利用不可」とみなされ得る。
ii.一例において、隣接するサンプルの「利用可能性」は、現在ピクチャ/タイル/タイルグループ/VPDU/スライスの幅及び/又は高さに依存し得る。
1)一例において、隣接するブロックが現在ピクチャの外側に位置する場合、それは「利用不可」として扱われる。
iii.一例において、「利用可能な」隣接するサンプルがない場合、クロマ残差スケーリングが禁止され得る。
iv.一例において、「利用可能な」隣接するサンプルの数がK個(K>=1)より小さい場合、クロマ残差スケーリングが禁止され得る。
v.代替的に、利用不可の隣接するサンプルは、クロマ残差スケーリングが常に適用され得るように、デフォルトの固定値、またはパディング、または置換によって満たされ(filled)得る。
1)一例において、隣接するサンプルが利用可能でない場合、1<<(bitDepth-1)によって満たされ得る。ここで、bitDepthはルマ/クロマ成分のサンプルのビット深度を指定する。
2)代替的に、隣接するサンプルが利用可能でない場合は、左/右/上/下の隣接に位置する周囲のサンプルからパディングすることによって満たされ得る。
3)代替的に、隣接するサンプルが利用可能でない場合、事前に定義されたチェック順序で最初に利用可能な隣接するサンプルによって置き換えられてよい。
4)代替的に、隣接するサンプルが利用可能でない場合、事前に定義されたフィルタされ/マップされた値によって満たされ得る(例えば、1<<(bitDepth-1)のフィルタされ/マップされた値であり、ここで、bitDepthは、ルマ/クロマ成分のサンプルのビット深度を指定する)。
a)一例において、フィルタリング/マッピングプロセスは、LMCSのフォワードマッピングのLUTインデックス化であってよい。
e)一例において、クロマ残差スケーリングを実行するか否か、および、どのように実行するかは、現在ブロックのコーディングモード、及び/又は、隣接ブロックのコーディングモードに依存し得る。
i.「現在ブロック(“current block”)」は、現在クロマブロック、または共配置されたルマブロック、または共配置されたクロマブロックの少なくとも1つのサンプルをカバーする対応するルマブロックを指し得る。「隣接ブロック(“neighbor blocks”)」(隣接または非隣接)は、現在クロマブロックに隣接するクロマブロック、または現在ルマブロックに隣接するルマブロックを指し得る。
ii.一例において、1個のルマ隣接ブロックのコーディングモードは、現在ブロックの左上の座標に対して相対的に(-1,-1)といった所与の位置をカバーするように利用され得る。
iii.一例において、複数の隣接ブロックのコーディングモードが利用され、現在ブロックの左上の座標に対する(x,-1)(例えば、xが、0...ブロックの幅マイナス1)、及び/又は、現在ブロックの左上の座標に対する(-1,y)(例えば、yが-1...ブロックの高さマイナス1)といった、複数の位置をカバーする。
iv.一例において、隣接するブロックの再構成が、X-コード化されるように、現在のスライス/タイルグループのサンプルにアクセスすることを必要とする場合、クロマ残差スケーリングはディセーブルにされる。
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.一例において、フィルタリング/マッピングプロセスは、イントラブロックのための参照スムージング(smoothing)フィルタリング、双方向フィルタといったポストフィルタリング、アダマール変換ベースのフィルタ、再形成ドメインのフォワードマッピング、などを含み得る。
12.固定値を用いて、現在のスライス/タイルグループにおけるクロマブロック数(CUまたはTUといったもの)のクロマ残差スケーリング因子を導出することが提案されている。
a)一例において、N個のクロマブロックについてクロマ残差スケーリング因子は、固定値によって導出することができる。ここで、Nは、1...現在スライス/タイルグループにおけるクロマブロックの総数、である。
b)一例において、固定値を使用して、その値が属する区分線形モデルのインデックスを見つけることができ、そして、次いで、クロマ残差スケーリング因子を導出された区分インデックスから計算することができる。一例において、固定値はルマサンプルの内部ビット深度に依存し得る。
c)一例において、固定値は、クロマ残差スケーリング因子を表すために直接使用されてよい。
d)一例において、固定値及び/又は固定クロマ残差スケーリング因子は、画像/スライス/タイルグループのタイプ(例えば、I、またはP、またはBスライス)、及び/又は、ブロックのコード化モード(例えば、イントラモードまたはインターモード)に依存し得る。
e)一例において、固定値は、異なる画像/スライス/タイルグループ/タイルに対して異なってよい。
f)一例において、固定クロマ残差スケーリング因子を用いて、LMCS中のクロマ残差を直接スケーリングすることができる。
i.一例において、固定クロマ残差スケーリング因子は、DPS/SPS/PPS/VPS/APS/スライスヘッダ/タイルグループヘッダといったビデオユニットで信号化することができる。
ii.一例において、画像/スライス/タイルグループ/タイルの固定クロマ残差スケーリング因子は、画像/スライス/タイルグループ/タイルにおけるルマサンプルの再形成のためのマッピング関数(例えば、区分線形関数)に依存し得る。
1)一例において、固定クロマ残差スケーリング因子は、JVET-M1001-v7で定義されているアレイInvScaleCoeff[]及び/又はアレイScaleCoeff[]に依存し得る。
a)例えば、画像/スライス/タイルグループ/タイルの固定クロマ残差スケーリング因子によって依存されるアレイInvScaleCoeff[]及び/又はアレイScaleCoeff[]を使用して、画像/スライス/タイルグループ/タイルのルマサンプルを再形成することができる。
2)一例において、固定クロマ残差スケーリング因子は、ルマサンプルを再形成するために使用される区分線形関数の全てのスケーリング因子の中の最小/最大/中央/平均値によって導出され得る。
a)例えば、固定クロマ残差スケーリング因子は、InvascaleCoeff[i]の最小/最大/中央/平均値によって導出され得る。ここで、iは、最小インデックス(JVET-M1001-v7のlmcs_min_bin_idxといったもの)から最大インデックス(JVET-M1001-v7のLmcsMaxBinIdxといったもの)までである。
i.例えば、固定クロマ残差スケーリング因子は、InvascaleCoeff[i]の最小/最大/中央/平均値と等しくてよい。ここで、iは、最小インデックス(JVET-M1001-v7で定義されるlmcs_min_bin_idxといったもの)から最大インデックス(JVET-M1001-v7で定義されるLmcsMaxBinIdxといったもの)までである。
ii.代替的に、固定クロマ残差スケーリング因子は、InvascaleCoeff[i]の最小/最大/中央/平均値によって導出され得る。ここで、iは、最小インデックス(例えば、0)から最大インデックス(例えば、15)までであり、そして、JVET-M1001-v7で定義されるlmcsCW[i]は、0に等しくない。
g)一例において、固定値が、クロマスケーリング因子を導出するために区分関数インデックスを表すために使用され得る。
i.一例において、固定値は、DPS/SPS/PPS/VPS/APS/スライスヘッダ/タイルグループヘッダといった、ビデオユニットで信号化され得る。
ii.一例において、固定値は、区分関数インデックスを識別するために使用される、ルマサンプル強度を表すことができ、そして、識別された区分関数インデックスは、クロマスケーリング因子を見つけるためにさらに使用される。一例において、固定値は0、または(1<<lumaBitDepth)-1、または1<<(lumaBitDepth-1)に等しくてよく、ここで、lumaBitDepthはルマサンプルのビット深度を示す。
1)一例において、固定値が区分関数の入力範囲にあれば、区分関数が識別される。
2)一例において、固定値が区分関数の出力範囲にあれば、区分関数が識別される。
iii.一例において、固定値は、クロマスケーリング因子を見つけるために使用され得る、固定区分関数インデックスを表すことができる。
1)一例において、固定値は、LMCS構築プロセスで使用される最小ビンインデックス(例えば、lmcs_min_bin_idx)と等しくてよい。
2)一例において、固定値は、LMCS構築プロセスで使用される最大ビンインデックス(例えば、LmcsMaxBinIdx)と等しくてよい。
3)一例において、固定値は、LMCS構築プロセスで使用される最大ビンインデックスおよび最小ビンインデックスの平均と等しくてよい。

クロマ残差スケーリング及び/又はCCLMが適用されるか否かの制限(restriction)
13.クロマ残差スケーリングまたはCCLMが適用されるか否かは、対応するルマブロック及び/又は共配置されたルマブロックのパーティションに依存し得ることが提案されている。
a)一例において、クロスコンポーネント情報でツールをイネーブルまたはディセーブルするか否かは、共配置されたルマ(例えば、Y成分またはG成分)ブロック内のCU/PU/TUの数に依存し得る。
i.一例において、連結されたルマ(例えば、Y成分またはG成分)ブロック内のCU/PU/TUの数が数の閾値を超える場合、そうしたツールはディセーブルされることがある。
ii.代替的に、クロスコンポーネント情報でツールをイネーブルするか、または、ディセーブルするかは、パーティションツリーの深さに依存し得る。
1)一例において、共配置されたルマブロック内のCUの四分木深さ最大値(または最小、または平均、または他のバリエーション)が閾値を超える場合、そうしたツールはディセーブルされ得る。
2)一例において、共配置されたルマブロック内のCUのBT及び/又はTT深さの最大値(または最小、平均、または他のバリエーション)が閾値を超える場合、そうしたツールはディセーブルされ得る。
iii.代替的に、さらに、クロスコンポーネント情報を有するツールをイネーブルまたはディセーブルするか否かは、クロマブロックのブロックディメンション(block 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に示されるように、WxHで示される幅Wおよび高さHを有する長方形として定義され得る。ここで、対応するルマブロックは幅32および高さ64を有し、境界ボックスは幅40および高さ70を有する。
1)一例において、境界ボックスのサイズW×Hは、CTU幅及び/又は高さに従って、または、CU幅及び/又は高さに従って、もしくは、任意の値に従って定義され得る。
g)一例において、現在クロマブロックの共配置されたルマブロックが複数のパーティションで分割されている場合、LMCSモードでクロマ残差スケーリング因子を導出するためには、共配置されたルマブロックの事前に定義されたパーティション内の予測サンプル(または再構成されたサンプル)のみが使用される。
i.一例において、共配置されたルマブロックの最初のパーティションにおける全ての予測サンプル(または再構成サンプル)の平均が、LMCSモードにおけるクロマ残差スケーリング因子を導出するために使用される。
ii.代替的に、共配置されたルマブロックの最初のパーティションにおける左上の予測サンプル(または再構成サンプル)を用いて、LMCSモードにおけるクロマ残差スケーリング因子を導出する。
iii.代替的に、共配置されたルマブロックの最初のパーティションにおける中心予測サンプル(または再構成サンプル)を用いて、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がクロマサブブロックに適用される場合、共配置されたブロックのサンプルが使用され得る。
15.CCLMといったクロスコンポーネントツールを適用するか否か、および、どのように適用するかは、ブロックディメンション、及び/又はパーティション情報、及び/又はパーティション構造タイプ(例えば、デュアルツリーまたはシングルツリー)に依存することが提案されている。
a)一例において、CCLM、はクロマデュアルツリーパーティションに対してディセーブルされ得る。
b)一例において、CCLMは、ブロックディメンションに応じて条件的にディセーブルされ得る。
i.一例として、現在ブロックディメンションがWB×HBであるとすると、WB、HB、と、2個の整数T1およびT2との間の関係に応じて、以下のCCLMがディセーブルされ得る。
1)一例において、WB≧T1かつHB≧T2の場合、CCLMがディセーブルされ得る。例えば、T1=T2=8。
2)一例において、WB* HB>=T1の場合、CCLMがディセーブルされ得る。例えば、T1=64。
3)一例において、Min(WB,HB)>=T1の場合、CCLMがディセーブルされ得る。例えば、T1=8。
4)一例において、Max(WB,HB)>=T1の場合、CCLMがディセーブルされ得る。例えば、T1=8。
5)一例において、WB<=T1かつB<=T2の場合、CCLMがディセーブルされ得る。例えば、T1=T2=16。
6)一例において、WB*HB<=T1の場合、CCLMがディセーブルされ得る。例えば、T1=4096。
7)一例において、Min(WB,HB)<=T1の場合、CCLMがディセーブルされ得る。例えば、T1=64。
8)一例において、Max(WB,HB)<=T1の場合、CCLMがディセーブルされ得る。例えば、T1=64。
c)一例において、CCLMは、ブロックディメンション及び/又はパーティション情報によって制限され得る。
i.一例において、ディメンションがWB×HBのクロマブロックについて、以下の条件の1つまたは複数が満たされる場合、CCLMはディセーブルされる。例えば、WB=HB=32である。以下の黒丸(bullet)では、共配置されたルマブロックディメンションは(sh×WB)×(sv×HB)であり得る。ここで、shおよびsvは、スケーリング因子(factor)である。例えば、カラーフォーマットが4:2:0の場合、sh=sv=2である。
1)現在クロマブロックは水平分割を伴うリーフノードにあり、そして、共配置されたルマブロックは垂直分割を伴うリーフノードにある
a)一例において、現在クロマブロックはSPLIT_TT_HORモードで分割され、そして、共配置されたルマブロックはSPLIT_TT_VERモードで分割される。
b)一例において、現在クロマブロックはSPLIT_TT_HORモードで分割され、そして、共配置されたルマブロックはSPLIT_BT_VERモードで分割される。
c)一例において、現在クロマブロックはSPLIT_BT_HORモードで分割され、そして、共配置されたルマブロックはSPLIT_TT_VERモードで分割される。
d)一例において、現在クロマブロックはSPLIT_BT_HORモードで分割され、そして、共配置されたルマブロックはSPLIT_BT_VERモードで分割される。
2)現在クロマブロックは垂直分割を伴うリーフノードにあり、そして、共配置されたルマブロックは水平分割を伴うリーフノードにある
a)一例において、現在クロマブロックはSPLIT_TT_VERモードで分割され、そして、共配置されたルマブロックはSPLIT_TT_HORモードで分割される。
b)一例において、現在クロマブロックはSPLIT_TT_VERモードで分割され、そして、共配置されたルマブロックはSPLIT_BT_HORモードで分割される。
c)一例において、現在クロマブロックはSPLIT_BT_VERモードで分割され、そして、共配置されたルマブロックはSPLIT_TT_HORモードで分割される。
d)一例において、現在クロマブロックはSPLIT_BT_VERモードで分割され、そして、共配置されたルマブロックはSPLIT_BT_HORモードで分割される。
d)一例において、ブロックに対してCCLMがディセーブルされている場合、CCLMに関連するシンタックス要素は、ブロック内で信号化されなくてよい。
i.代替的に、ブロックに対してCCLMがディセーブルされている場合、CCLMに関連するシンタックス要素は信号化されてよいが、CCLMモードは、適合ビットストリームでブロック内で使用されるべきではない。
ii.代替的に、ブロックに対してCCLMがディセーブルされている場合、CCLMに関連するシンタックス要素は信号化されてよい。CCLMモードが信号化される場合、プレーナまたはDCといったデフォルトモードが適用され得る。

LMCSモードにおけるクロマ残差スケーリングの適用性
16.ルマ依存クロマ残差スケーリングを適用できるか否かは、JVET-M1001で指定されるタイルグループヘッダに加えて、他のシンタックスレベルで信号化され得ることが提案されている。
a)例えば、chroma_residual_scale_flagは、シーケンスレベル(例えば、SPSにおいて)、画像レベル(例えば、PPSまたはピクチャヘッダにおいて)、スライスレベル(例えば、スライスヘッダ)、タイルレベル、CTU行(row)レベル、CTUレベル、CUレベルで信号化され得る。chroma_residual_scale_flagが1に等しいことは、信号化シンタックスレベル以下のCUに対してクロマ残差スケーリングがイネーブルされることを指定する。chroma_residual_scale_flagが0に等しいことは、信号化シンタックスレベル以下でクロマ残差スケーリングがイネーブルされないことを指定する。chroma_residual_scale_flagが存在しない場合、0に等しいと推定される。
b)一例において、クロマ残差スケーリングがパーティションノードレベルで制約(constrained)されている場合の、chroma_residual_scale_flagは、信号化されず、そして、パーティションノードでカバーされているCUに対して0であると推定され得る。一例において、パーティションノードは、CTUであってよい(CTUは、四分木パーティションのルートノードとして扱われる)。
c)一例において、クロマ残差スケーリングが、クロマブロックサイズについて32×32以下に制約されている場合、chroma_residual_scale_flagは、32×32以下であるクロマブロックサイズに対して0であると推定され、そして、信号化されなくてよい。

CCLMモードの適用性
17.CCLMモードを適用できるか否かは、JVET-M1001で指定されるspsレベルに加えて、他のシンタックスレベルで信号化することができることが提案されている。
a)例えば、画像レベル(例えば、PPSまたは画像ヘッダにおいて)、スライスレベル(例えば、スライスヘッダにおいて)、タイルグループレベル(例えば、タイルグループヘッダにおいて)、タイルレベル、CTU行レベル、CTUレベル、CUレベルで、信号化され得る。
b)一例において、CCLMが適用できない場合、cclm_flagは信号化されず、そして、0であると推定され得る。
i.一例において、クロマ残差スケーリングが、クロマブロックサイズについて8×8以下に制約されている場合、cclm_flagは、8×8以下であるクロマブロックサイズに対して0であると推定され、そして、信号化されなくてよい。

イントラモードおよびインターモードに対するクロマ残差スケーリング因子の導出の統一
18.クロマ残差スケーリング因子は、ルマブロックの符号化/復号化の後で導出され、そして、以降のコード化ブロックのために保管され、かつ、使用され得る。
a)一例において、ルマブロック内の、所定の予測サンプル、又は/及び中間予測サンプル、又は/及び再構成サンプル、又は/及びループフィルタリング前(例えば、デブロッキングフィルタ、又は/及びSAOフィルタ、又は/及び双方向フィルタ、又は/及びアダマール変換フィルタ、又は/及びALFフィルタによって処理される前)の再構成サンプルがクロマ残差スケーリング因子の導出のために使用され得る。
i.例えば、ルマブロックの底(bottom)の行又は/及び右(right)の列における部分的サンプルが、クロマ残差スケーリング因子の導出のために使用され得る。
b)シングルツリーの場合、イントラモード、又は/及びIBCモード、又は/及びインターモードでコード化されたブロックを符号化する場合、導出された隣接ブロックのクロマ残差スケーリング因子が、現在ブロックのスケーリング因子を導出するために使用され得る。
i.一例において、所定の隣接するブロックを順番にチェックされ、そして、最初(first)の利用可能なクロマ残差スケーリング因子が現在ブロックに使用され得る。
ii.一例において、所定の隣接するブロックが順番にチェックされてよく、そして、スケーリング因子は、最初のK個の利用可能な隣接クロマ残差スケーリング因子に基づいて導出され得る。
iii.一例において、インターモード又は/及びCIIPモードでコード化されたブロックについて、隣接するブロックが、イントラモード、又は/及びIBCモード、又は/及びCIIPモードでコード化される場合、隣接するブロックのクロマ残差スケーリング因子は「利用不可(“unavailable”)」とみなされ得る。
iv.一例において、隣接するブロックは、左(または左上)→上(または右上)の順序でチェックされ得る。
1)代替的に、隣接するブロックは、上(または右上)→左(または左上)の順序でチェックされ得る。
c)別個のツリーの場合、クロマブロックを符号化するとき、対応するルマブロックが最初に識別され得る。次いで、隣接ブロック(例えば、対応するルマブロック)の導出されたクロマ残差スケーリング因子が、現在ブロックのスケーリング因子を導出するために使用され得る。
i.一例において、所定の隣接するブロックが順番にチェックされ、そして、最初の利用可能なクロマ残差スケーリング因子が現在ブロックに使用され得る。
ii.一例において、所定の隣接するブロックが順番にチェックされてよく、そして、スケーリング因子は、最初のK個の利用可能な隣接クロマ残差スケーリング因子に基づいて導出され得る。
d)隣接ブロックは、事前に定義された順序でチェックされ得る。
i.一例において、隣接するブロックは、左(または左上)→右の上(または右の上)の順序でチェックされ得る。
ii.一例において、隣接するブロックは、上(または右上)→左(または左上)の順序でチェックされ得る。
iii.一例において、隣接するブロックは、左下→左→右上→上→左上の順序でチェックされ得る。
iv.一例において、隣接するブロックは、左→上→右上→左下→左上の順序でチェックされ得る。
e)一例において、クロマ残差スケーリングを適用するか否かは、隣接するブロックの「利用可能性“availability”」に依存し得る。
i.一例において、「利用可能な“available”」隣接ブロックが存在しない場合、クロマ残差スケーリングが禁止され得る。
ii.一例において、「利用可能な」隣接ブロックの数がK個(K>=1)より小さい場合、クロマ残差スケーリングは許容されない。
iii.代替的に、「利用可能な」隣接ブロックが存在しない場合、クロマ残差スケーリング因子はデフォルト値によって導出され得る。
1)一例において、デフォルト値1<<(BitDepth-1)を使用して、クロマ残差スケーリング因子を導出することができる。
f)一例において、現在クロマブロックのクロマ残差スケーリング因子は、保管され、そして、以降のコード化ブロックについて使用され得る。
g)一例において、クロマ残差スケーリング因子のストレージは、ラインバッファから除去されてよい。
i.一例において、現在ブロックおよびアクセスされる隣接する(隣接または非隣接)ブロックが異なる領域内にある場合、そのクロマ残差スケーリング因子は「利用不可」とみなされ、そして、現在ブロックのクロマ残差スケーリング因子の導出のために使用され得ない。
1)領域は、スライス、タイル、タイルグループ、CTU行、またはCTU、であり得る。
2)代替的に、そのクロマ残差スケーリング因子は、そうした場合にデフォルト値として考慮され得る。
3)代替的に、クロマ残差スケーリングは、そうした場合には適用できない。
h)一例において、現在クロマブロックのクロマ残差スケーリング因子は、オンザフライで更新され、そして、以降のブロックのスケーリング因子導出のために履歴テーブルに保管され得る。
i.履歴テーブルは、先入れ先出し(first-in first-out、FIFO)方式で更新され得る。
ii.クロマブロックの復号化/符号化の後で、クロマ残差スケーリング因子が導出され(例えば、ルマ値に従って)、そして、FIFO履歴テーブルに保管され得る。
iii.一例において、FIFO履歴テーブルは、多くとも1項目を含むことができる。この場合、導出された最新の復号化ブロックのクロマ残差スケーリング因子が、現在ブロックに使用される。
iv.一例において、履歴テーブルは、画像、スライス、タイルグループ、タイル、CTU行、CTUの符号化/復号化の前にリフレッシュされる。
1)一例において、デフォルトのクロマ残差スケーリング因子は、履歴テーブルがリフレッシュされるときに履歴テーブルに入力され得る。
2)一例において、FIFO履歴テーブルが更新されるとき、履歴テーブルは空(empty)に設定される。

クロマ残差スケーリングのための新たなシンタックス要素
19.クロマ残差スケーリングプロセスで使用されるスケーリング因子を導出するために、1つまたは複数の新しいシンタックス要素が信号化され得ることが提案されている。
a)一例において、シンタックス要素は、LMCSコーディングツールのクロマ残差スケーリングのために、LMCS APSデータ(VVC仕様におけるlmcs_data()といったもの)に追加され得る。
b)一例において、シンタックス要素は、SPS/スライスヘッダ/タイルグループヘッダ/PPS/ピクチャヘッダ/ブリック(brick)/CTU行/CTU/CU、等に追加され得る。
i.シンタックス要素がビデオユニット内で信号化される場合、それらはビデオユニットに関連付けられた全てのブロックにおけるスケーリング因子を制御することができる。例えば、それらがスライスヘッダ内で信号化される場合、それらは、スライス内の全てのブロックにおけるスケーリング因子を制御することができる。
1)代替的に、シンタックス要素がビデオユニット内で信号化される場合、それらは、ビデオユニットに関連するいくつかのブロックにおけるスケーリング因子を制御することができる。
c)一例において、新たなシンタックス要素、すなわち、例えばlmcs_crs_fixed_bin_idxは、クロマ残差スケーリングのためのクロマスケーリング因子を導出するためにコード化され得る。
i.一例において、lmcs_crs_fixed_bin_idxを使用して、スケーリング因子を導出するために使用される代表的なルマ値を提示することができる。
ii.代替的に、ルックアップテーブルChromaScaleCoeffのインデックスであるといった、スケーリング因子を導出するために使用されるインデックスを提示するように、lmcs_crs_fixed_bin_idxが使用され得る。
iii.代替的に、さらに、lmcs_crs_fixed_bin_idxの値は[k0,k1]の範囲内にあるとする。一例において、lmcs_crs_fixed_bin_idxの範囲は、クロマスケーリング構築プロセスを用いたルママッピングにおける最小(例えば、lmcs_min_bin_idx)及び/又は最大ビンインデックスの範囲に等しく設定され得る、例えば[0,15]。
1)一例において、lmcs_crs_fixed_bin_idxは、適合(conformance)ビットストリーム内の有効な範囲にあることを要する。
2)一例において、lmcs_crs_fixed_bin_idxは、有効な範囲になければならないようにコード化される。
iv.代替的に、さらに、lmcs_crs_fixed_bin_idxは、固定長、端数処理された単項(truncated unary)、単項、指数ゴロム(exp-golomb)コードでコード化されてよい。
v.代替的に、さらに、lmcs_crs_fixed_bin_idxは、オフセットが予測として0または1に設定されているクロマスケーリング構築プロセス(例えば、(lmcs_min_bin_idx+lmcs_max_bin_idx+offset)>>1)を伴うルママッピングにおいて使用される最小および最大ビンインデックスの平均を使用するように、予測的にコード化されてよい。代替的に、lmcs_min_bin_idxまたはlmcs_max_bin_idxが、予測として使用されてよい。
vi.代替的に、さらに、lmcs_crs_fixed_bin_idxは条件的にコード化される。
1)一例において、現在のカラーフォーマットが4:0:0でない場合である。
2)一例において、別個の平面コーディングがディセーブルされている場合である。
3)一例において、ChromaArrayTypeが0に等しくない場合である。
4)一例において、クロマ残差スケーリングがイネーブルされている場合である。
d)一例において、新しいシンタックス要素によって導出された固定クロマスケーリング因子が、同じLMCSモデルを共有する全てのクロマ残差スケーリングブロックに使用されてよい。
i.一例において、lmcs_crs_fixed_bin_idxによってインデックス付けされた固定クロマスケーリング因子が、一旦IDR/CRA/IRAPピクチャに計算され、そして、IDR/CRA/IRAPピクチャの全てのブロックに対して使用される。
ii.一例において、lmcs_crs_fixed_bin_idxによってインデックス付けされた固定クロマスケーリング因子が、一旦IDR/CRA/IRAPピクチャに計算され、そして、次のIDR/CRA/IRAPピクチャの前のインターコード化ピクチャの全てのブロックに対して使用される。
【表3】
【0058】
6. 開示された技術の実施例
図10は、ビデオ処理装置1000のブロック図である。装置1000は、ここにおいて記載される1つ以上の方法を実装するために使用され得る。装置1000は、スマートフォン、タブレット、コンピュータ、モノのインターネット(IoT)受信機、などで具体化することができる。装置1000は、1つ以上のプロセッサ1002、1つ以上のメモリ1004、およびビデオ処理ハードウェア1006を含み得る。プロセッサ1002は、本文書に記載される1つ以上の方法(方法800および900を含むが、これらに限定されない)を実装するように構成され得る。メモリ(複数のメモリ)1004は、ここにおいて記載される方法および技術を実施するために使用されるデータおよびコードを保管するために使用され得る。ビデオ処理ハードウェア1006は、ハードウェア回路において、本文書に記載されるいくつかの技術を実装するために使用され得る。
【0059】
いくつかの実施形態において、ビデオコーディング方法は、図10に関して説明したようにハードウェアプラットフォーム上で実装される装置を使用して実施され得る。
【0060】
図11は、開示された技術に従った、クロスコンポーネント予測のための線形モデル導出の例示的な方法1100のフローチャートを示す。本方法1100は、ステップ1110において、現在ビデオブロックと現在ビデオブロックのビットストリーム表現との間の変換を実行するステップを含み、この変換の最中に、現在ビデオブロックの色成分値の第2セットは、1つ以上の参照フレームに含まれる第1セットの色成分値から導出され、色成分値の第1セットは、ビデオコーディングステップの線形モデルにおいて使用可能である。
【0061】
いくつかの実施形態は、以下の条項ベース(clause-based)フォーマットを使用して説明され得る。
【0062】
1.ビデオ処理のための方法であって、以下のものを含む。
【0063】
現在ビデオブロックと現在ビデオブロックのビットストリーム表現との間で変換を実行する段階であって、前記変換の間に、前記現在ビデオブロックの色成分値の第2セットは、1つ以上の参照フレームに含まれる第1セットの色成分値から導出され、前記第1セットの色成分値は、ビデオコーディングステップの線形モデルにおいて使用可能である、段階。
【0064】
2.前記第1セットの色成分値は、前記ビデオコーディングステップの線形モデルにおいて使用する前に補間される、条項1の方法。
【0065】
3.前記色成分値の前記第1セットの線形結合が、前記線形モデルのパラメータとして使用可能である、条項1から2のいずれか1つまたは複数の方法。
【0066】
4.前記1つ以上の参照フレームに含まれる色成分値の前記第1セットの位置は、少なくとも部分的に、前記現在ビデオブロックの動き情報に基づいて選択される、条項1の方法。
【0067】
5.前記1つ以上の参照フレーム内のルマ成分値の位置は、前記現在ビデオブロック内の対応するルマ成分値の位置と、前記現在ビデオブロックの動き情報とから計算される、条項4の方法。
【0068】
6.前記対応するルマ成分値の位置は、現在ビデオブロック内の左上サンプル、中央サンプル、または右下サンプルである、条項5の方法。
【0069】
7.前記現在ビデオブロックの動き情報は、整数(integer)動きベクトルまたは分数(fractional)動きベクトルに対応する、条項6の方法。
【0070】
8.前記分数ベクトルは、前記1つ以上の参照フレームにおける分数ルマ成分値を用いて導出される、条項7の方法。
【0071】
9.前記整数ベクトルは、ゼロに近づくか、ゼロから離れるように丸めることによって導出される、条項7の方法。
【0072】
10.前記1つ以上の参照フレームに含まれる色成分値の前記第1セットの位置は、予め定義された位置である、条項1の方法。
【0073】
11.前記第1セットの色成分値の中央値又は平均値が、前記現在ビデオブロックの色成分値の第2セットを導出するために使用される、条項1~10いずれか1つ以上の方法。
【0074】
12.前記1つ以上の参照フレームが予め定義された参照フレームである、条項1~11いずれか1つ以上の方法。
【0075】
13.前記予め定義された参照フレームは、参照ピクチャリストの参照インデックスを有するフレームを含む、条項12の方法。
【0076】
14.前記参照インデックスはゼロであり、前記参照ピクチャリストはゼロである、条項13の方法。
【0077】
15.参照インデックス及び/又は参照ピクチャリストは、シーケンス、ピクチャ、タイル、グループ、スライス、タイル、コーディングツリーユニット、またはビデオブロックのうちの1つ以上に関連するビットストリーム表現において信号化される、条項13の方法。
【0078】
16.現在ビデオブロックの色成分値の第2セットは、1つ以上の参照フレームに含まれる色成分値の第1セットの数学的平均または加重平均から導出される、条項1の方法。
【0079】
17.前記現在ビデオブロックの色成分値の第2セットは、前記現在ビデオブロックが双予測コード化ブロックである否かに基づいて、前記1つ以上の参照フレームに含まれる色成分値の第1セットから選択的に導出される、条項1の方法。
【0080】
18.現在ビデオブロックの色成分値の第2セットは、色成分値の第1セットの各予測方向に対して個別に導出される、条項17の方法。
【0081】
19.前記現在ビデオブロックの色成分値の第2セットは、前記現在ビデオブロックがサブブロックベースの予測に関連するか否かに基づいて、前記1つ以上の参照フレームに含まれる色成分値の第1セットから選択的に導出される、条項1の方法。
【0082】
20.サブブロックベースの予測は、アフィン予測または代替時間動きベクトル予測(ATMVP)に対応する、条項1の方法。
【0083】
21.現在ビデオブロックの色成分値の第2セットは、個々のサブブロックについて導出される、条項19~20いずれか1つ以上の方法。
【0084】
22.前記現在ビデオブロックの色成分値の第2セットは、前記サブブロックベースの予測にかかわらず、前記現在ビデオブロック全体に対して導出される、条項19~21いずれか1つ以上の方法。
【0085】
23. 前記1つ以上の参照フレームに含まれる色成分値の第1セットは、少なくとも部分的に、現在ビデオブロックのサブブロックの動きベクトルに基づいて選択される、条項19~22いずれか1つ以上の方法。
【0086】
24. 前記1つ以上の参照フレームに含まれる色成分値の第1セット、中間色成分値である、条項19~23いずれか1つ以上の方法。
【0087】
25.前記ビデオコーディングステップは、別のビデオコーディングステップに先行する、条項19~24いずれか1つ以上の方法。
【0088】
26.前記1つ以上の参照フレームに含まれる色成分値の前記第1セットは、前記現在ビデオブロックの中間動きベクトルまたは前記現在ビデオブロックのサブブロックに少なくとも部分的に基づいて選択され、前記中間動きベクトルは、前記別のビデオコーディングステップの前に計算される、条項25の方法。
【0089】
27.前記別のビデオコーディングステップは、双方向の光学的フロー(BDOF)ステップ、デコーダ側動きベクトル精緻化(DMVR)ステップ、予測リ精緻化光学的フロー(PROF)ステップのうち1つまたは組み合わせを含む、条項24~26いずれか1つ以上の方法。
【0090】
28.前記1つ以上の参照フレームに含まれる色成分値の第1セットが、対応するルマブロックに関連するM×Nルマ成分値に対応する、条項1~27いずれか1つ以上の方法。
【0091】
29.前記対応するルマブロックは、現在ビデオブロックの共配置されたルマブロックである、条項28の方法。
【0092】
30.MとNの積が、現在ビデオブロックの共配置されたルマブロックのブロック幅とブロック高さの積よりも小さい、条項29の方法。
【0093】
31.前記1つ以上の参照フレームに含まれる色成分値の第1セットが、共配置されたルマブロックの隣接するルマサンプルの位置で識別された参照サンプルの少なくとも一部に対応する、条項27~30いずれか1つ以上の方法。
【0094】
32.前記第1セットの色成分値は、前記ビデオコーディングステップの線形モデルにおいて使用する前に、ダウンサンプリングされる、条項1~31いずれか1つ以上の方法。
【0095】
33.前記現在ビデオブロックの色成分値の第2セットは、量子化パラメータ、符号化モード、または、ピクチャオーダカウント(POC)のうちの1つ以上の情報に少なくとも部分的に基づいて選択される、条項1の方法。
【0096】
34.共配置されたルマブロックの左上のサンプルがカバーされるように、隣接するルマサンプルの位置が存在する、条項31の方法。
【0097】
35.前記1つ以上の参照フレームに含まれる色成分値の前記第1セットは、前記対応するルマブロックの外部の位置で同定された参照サンプルの少なくとも一部に対応する、条項28の方法。
【0098】
36.前記現在ビデオブロックの色成分値の第2セットは、前記対応するルマブロックの隣接するサンプルの利用可能性に基づいて、前記1つ以上の参照フレームに含まれる色成分値の第1セットから選択的に導出される、条項28の方法。
【0099】
37.対応するルマブロックの隣接するサンプルの利用可能性は、現在ビデオブロックのコーディングモードの使用、対応するルマブロックの隣接するサンプルのコーディングモードの使用、対応するルマブロックのコーディングモードの使用、1つ以上の隣接するビデオブロックのコーディングモードの使用、対応するルマブロックの隣接するサンプルに関連するフィルタのタイプの使用、もしくは、現在ビデオブロックまたはそのサブブロックに対する対応するルマブロックの隣接するサンプルの位置、の1つ以上に基づいている、条項28の方法。
【0100】
38.さらに、以下を含む、条項28の方法。
【0101】
対応するルマブロックの隣接するサンプルの利用可能性が無いことに対応して、利用不可のサンプルを他のサンプルで置き換え、満たし、または、パディングすること。
【0102】
39.さらに、以下を含む、条項28の方法。
【0103】
対応するルマブロックに隣接するサンプルに対してスムージングフィルタを適用すること。
【0104】
40.ビデオ処理のための方法であって、以下のものを含む。
【0105】
現在ビデオブロックと現在ビデオブロックのビットストリーム表現との間で変換を実行する段階であって、前記変換の間に、前記現在ビデオブロックの色成分値の第2セットは、1つ以上の参照フレームに含まれる第1セットの色成分値から導出され、前記第1セットの色成分値は、ビデオコーディングステップの線形モデルにおいて使用可能である、段階。
【0106】
1つ以上の参照フレームに含まれる色成分値の第1セットが現在ビデオブロックの共配置されたルマブロックであることを決定することに応答して、現在ビデオブロックの共配置されたルマブロックに関連する1つ以上の条件に基づいて、現在ビデオブロックの色成分値の第2セットの導出をイネーブルまたはディセーブルする、段階。
【0107】
41.現在ビデオブロックの共配置されたルマブロックに関連する1つ以上の条件は、共配置されたルマブロックのパーティションサイズ、閾値の数を達成している共配置されたルマブロックのコーディングユニットの数、閾値のサイズを達成している共配置されたルマブロックの左上ルマサンプル、共配置されたルマブロックのパーティションツリーの深さ、共配置されたルマブロックの左上ルマサンプルをカバーしている対応するルマブロック、共配置されたルマブロックまたは現在ビデオブロックのディメンション、もしくは、共配置されたルマブロックの左上ルマサンプルをカバーしており、かつ、事前に定義されたサイズの包含ボックス内にさらに含まれる、対応するルマブロック、をむ、条項40の方法。
【0108】
42.前記導出を選択的にイネーブルまたはディセーブルすることを示す情報は、前記ビットストリーム表現に含まれる、条項40の方法。
【0109】
43.対応するルマブロックの隣接するサンプルの利用可能性は、予め定義された順序に従って隣接するサンプルをチェックすることに関連する、条項28の方法。
【0110】
44.共配置されたルマブロックおよび現在ビデオブロックは、同じコーディングツリーユニット、または、コーディングツリーユニットの同じ行に関連付けられる、条項41の方法。
【0111】
45.ビデオ処理のための方法であって、以下のものを含む。
【0112】
現在ビデオブロックと現在ビデオブロックのビットストリーム表現との間で変換を実行する段階であって、前記変換の間に、前記現在ビデオブロックの色成分値の第2セットは、1つ以上の参照フレームに含まれる第1セットの色成分値から導出され、前記第1セットの色成分値は、ビデオコーディングステップの線形モデルにおいて使用可能である、段階。
【0113】
現在ビデオブロックの現在ビデオブロックまたは隣接するビデオブロックの1つ以上のプロパティが満たされていることを決定することに応答して、現在ビデオブロックの色成分値の第2セットの導出を選択的にイネーブルまたはディセーブルにする、段階。
【0114】
46.現在ビデオブロックまたは現在ビデオブロックの隣接するビデオブロックの1つ以上のプロパティは、現在ビデオブロックの空間位置に対する空間位置をカバーしている隣接するルマブロックに対応する、条項45の方法。
【0115】
47.現在ビデオブロックまたは現在ビデオブロックの隣接するビデオブロックの1つ以上のプロパティは、現在ビデオブロックの空間位置に対する現在ビデオブロックの隣接するビデオブロックの空間位置に対応する、条項45の方法。
【0116】
48.さらに、以下を含む、条項45の方法。
【0117】
隣接するビデオブロックの再構成が、少なくとも部分的に、現在ビデオブロックのコーディングモードに基づいていることを決定することに応答して、現在ビデオブロックの色成分値の第2セットの導出をディセーブルすること。
【0118】
49.さらに、以下を含む、条項45の方法。
【0119】
現在ビデオブロックが、インターコード化ブロックであり、かつ、インター予測とイントラ予測の結合ではないこと、および、現在ビデオブロックの対応するルマブロックに隣接するブロックが、イントラコード化ブロック、インター予測とイントラ予測の結合(CIIP)ブロック、または、イントラブロックコピー(IBC)コード化ブロックであること、を決定することに応答して、現在ビデオブロックの色成分値の第2セットの導出をディセーブルすること。
【0120】
50.さらに、以下を含む、条項45条の方法。
【0121】
現在ビデオブロックが、インターコード化ブロックであり、かつ、インター予測とイントラ予測の結合ではないこと、および、現在ビデオブロックの対応するルマブロックに隣接するブロックが、イントラコード化ブロック、インター予測とイントラ予測の結合(CIIP)ブロック、または、イントラブロックコピー(IBC)コード化ブロックであること、を決定することに応答して、現在ビデオブロックの色成分値の第2セットの導出をイネーブルすること。ここで、色成分値の第1セットは固定値である。
【0122】
51.前記色成分値の第1セットは固定値である、条項45の方法。
【0123】
52.前記固定値は、前記ビデオコーディングステップの前記線形モデルの区分インデックスに対応する、条項51の方法。
【0124】
53.前記隣接するサンプルは、前記現在ビデオブロックに隣接しており、または、非隣接であってよい、条項1~52いずれか1つ以上の方法。
【0125】
54.前記隣接するサンプルが、前記現在ビデオブロックに隣接するクロマブロックまたは前記現在ビデオブロックに隣接するクロマブロックに関連付けられ得る、条項1~52いずれか1つ以上の方法。
【0126】
55.現在ビデオブロックが、クロマブロック、共配置されたルマブロック、または、共配置されたクロマブロックの左上のルマサンプルをカバーしている対応するルマブロック、に対応する、条項1~52いずれか1つ以上の方法。
【0127】
56.前記現在ビデオブロックの色成分値の前記第2セットは、1つ以上の他のビデオブロックと関連して使用するために保管される、条項1~54いずれか1つ以上の方法。
【0128】
57.線形モデルがクロスコンポーネント線形モデル(CCLM)に対応し、かつ、ビデオコーディングステップがクロマスケーリングによるルママッピング(LMCS)モードに対応する、条項1~56いずれか1つ以上の方法。
【0129】
58.前記現在ビデオブロックが、インターコード化ブロック、双予測コード化ブロック、インター予測とイントラ予測の結合(CIIP)ブロック、または、イントラブロックコピー(IBC)コード化ブロックである、条項1~57いずれか1つ以上の方法。
【0130】
59.現在ビデオブロックの色成分値の第2セットは、ビットストリーム表現における他のビデオブロックと関連付けられた使用のために保管される、条項1~58いずれか1つ以上の方法。
【0131】
60.前記現在ビデオブロックの色成分値の前記第2セットは、前記他のビデオブロックに含まれる隣接するビデオブロックによる選択的な利用可能性または利用不可性のためにラインバッファに保管され、前記現在ビデオブロックおよび前記隣接するビデオブロックは、異なるスライス、タイル、タイルグループ、コーディングツリーユニット、または、コーディングツリーユニット行に関連付けられる、条項59の方法。
【0132】
61.前記現在ビデオブロックの色成分値の前記第2セットは、固定値である、条項60の方法。
【0133】
62.前記現在ビデオブロックの色成分値の前記第2セットは、導出されない、条項60の方法。
【0134】
63.前記現在ビデオブロックの色成分値の前記第2セットの導出が防止される、条項59の方法。
【0135】
64.前記現在ビデオブロックの色成分値の前記第2セットは、前記他のビデオブロックに含まれる隣接するビデオブロックによる選択的な利用可能性または利用不可性のためのテーブルに保管される、条項59の方法。
【0136】
65.前記現在ビデオブロックの色成分値の前記第2セットは、動的に更新される、条項64の方法。
【0137】
66.前記現在ビデオブロックの色成分値の前記第2セットは、前記他のビデオブロックの前のビデオブロックと同じである、条項65の方法。
【0138】
67.前記現在ビデオブロックの色成分値の前記第2セットは、先入れ先出し(FIFO)方式で動的に更新される、条項64の方法。
【0139】
68.前記第1セットの色成分値はルマサンプル値に対応し、かつ、前記第2セットの色成分値はクロマスケーリング因子に対応する、条項1~67いずれか1つ以上の方法。
【0140】
69.ビデオ処理のための方法であって、ルールに基づいて、少なくとも2個のコンポーネントブロックおよび前記ビデオブロックのビットストリーム表現を含むビデオブロック間の変換のためのクロスコンポーネントコーデックツールの適用可能性を決定すること、および、選択的に前記クロスコンポーネントコーデックツールを使用することによって前記変換を実行すること、を含む。
【0141】
70.前記ルールは、前記現在ビデオブロックのディメンションに基づいている、条項69の方法。
【0142】
71.前記ルールは、前記現在ビデオブロックのパーティション情報に基づいている、条項69~70いずれか1つ以上の方法。
【0143】
72.前記ルールは、前記現在ビデオブロックのパーティションツリー構造に基づいている、条項69~71いずれか1つ以上の方法。
【0144】
73.前記パーティションツリー構造は、デュアルツリーまたはシングルツリーのうち1つである、請求項72に記載の方法。
【0145】
74.前記ルールは、デュアルツリーパーティションツリー構造を有するクロマブロックである現在ビデオブロックのために、クロマ成分コーデックツールをディセーブルすることを指定する、条項72の方法。
【0146】
75.前記ルールは、前記ビットストリーム表現におけるクロスコンポーネントコーデックツールのシンタックス要素の信号化を省略することを指定する、条項69~74いずれか1つ以上の方法。
【0147】
条項69~75の追加的な実施例および側面は、セクション4の項目15に記載されている。
【0148】
76.プロセッサと、その上に命令を有する非一時メモリとを備えるビデオシステムにおける装置であって、前記プロセッサによって実行されると、前記命令は、前記プロセッサに、条項1~75いずれか1つの方法を実施させる、装置。
【0149】
77.非一時的なコンピュータで読取り可能な媒体に保管されたコンピュータプログラム製品であって、条項1~75いずれか1つの方法を実行するためのプログラムコードを含むコンピュータプログラム製品。
【0150】
図12は、ここにおいて開示される様々な技術が実装され得る例示的なビデオ処理システム1200を示すブロック図である。種々の実装は、システム1200のコンポーネントの一部または全部を含み得る。システム1200は、ビデオコンテンツを受信するための入力1202を含み得る。ビデオコンテンツは、生(raw)または非圧縮フォーマット、例えば、8または10ビットのマルチコンポーネント値で受信されてよく、または、圧縮または符号化フォーマットで受信されてもよい。入力1202は、ネットワークインターフェイス、ペリフェラルバスインターフェイス、または、ストレージインターフェイスを表すことができる。ネットワークインターフェイスの例は、イーサネット、受動光ネットワーク(passive optical network、PON)、等といった有線インターフェイス、および、Wi-Fi(登録商標)またはセルラーインターフェイスといった無線インターフェイスを含む。
【0151】
システム1200は、本文書に記載される種々のコーディングまたは符号化方法を実装することができる符号化コンポーネント1204を含み得る。符号化コンポーネント1204は、入力1202から符号化コンポーネント1204の出力までのビデオの平均ビットレートを低減して、ビデオのコード化表現を生成することができる。従って、コーディング技術は、ときどき、ビデオ圧縮またはビデオトランスコーディング技術と呼ばれる。符号化コンポーネント1204の出力は、コンポーネント1206によって表されるように、保管され、または、接続された通信を介して送信され得る。入力1202で受信されたビデオの保管され、または、通信されたビットストリーム(または、コード化)表現は、ディスプレイインターフェイス1210に送られる画素値、または、表示可能なビデオを生成するために、コンポーネント1208によって使用されてよい。ビットストリーム表現からユーザが見ることができるビデオを生成するプロセスは、ときどき、ビデオ解凍(decompression)と呼ばれる。さらに、所定のビデオ処理操作は、「コーディング(“coding”)」操作またはツールと称されるが、コーディングツールまたは操作は、エンコーダで使用され、そして、コーディングの結果を反転する、対応しているデコーディングツールまたは操作は、デコーダで実行されることが理解されるだろう。
【0152】
ペリフェラルバスインターフェイスまたはディスプレイインターフェイスの例は、ユニバーサルシリアルバス(USB)、または高精細度マルチメディアインターフェイス(HDMI(登録商標))、またはディスプレイポート、などを含み得る。ストレージインターフェイスの例は、SATA(serial advanced technology attachment)、PCI、IDEインターフェイス、などを含む。本文書において記載される技術は、携帯電話、ラップトップ、スマートフォン、または、デジタルデータ処理及び/又はビデオ表示を実行することができる他の装置、といった種々の電子装置において具体化され得る。
【0153】
図13は、ビジュアルメディア処理の一つの例示的方法である。このフローチャートのステップは、この文書のセクション4の例19に関連して説明されている。ステップ1302において、ビジュアルメディアデータのビデオ領域内の現在ビデオブロックとビットストリーム表現との間の変換のためのビットストリーム表現を処理する。ここで、ビットストリーム表現は、ルマ依存クロマ残差スケーリングステップで使用される1つ以上のシンタックス要素がビットストリーム表現に選択的に含まれることを指定するルールに基づいており、ここで、ルマ依存クロマ残差スケーリングステップは、変換の間に隣接する再構成されたルマサンプルに基づいてクロマサンプルをスケーリングすることを含む。そして、ここで、1つ以上のシンタックス要素は、クロマ残差スケーリング因子を導出するために使用可能である。
【0154】
本文書のいくつかの実施態様が、これから、条項ベース(clause-based)フォーマットで提示される。
【0155】
1.ビジュアルメディア処理のための方法(例えば、図13に示す方法)であって、ビジュアルメディアデータのビデオ領域における現在ビデオブロックとビットストリーム表現との間の変換のためのビットストリーム表現を処理するステップを含む。ここで、前記ビットストリーム表現は、ルマ依存クロマ残差スケーリングステップにおいて使用される1つ以上のシンタックス要素が前記ビットストリーム表現に選択的に含まれることを指定するルールに基づいており、ルマ依存残差スケーリングステップは、前記変換の最中に隣接する再構成されたルマサンプルに基づいてクロマサンプルをスケーリングするステップを含み、かつ、1つ以上のシンタックス要素は、スケーリングのために使用されるクロマ残差スケーリング因子を導出するために使用可能である。例えば、エンコーディング中に、1つ以上のシンタックス要素は、コーディングに使用されるクロマ残差スケーリング因子から導出されてよく、復号中に使用されるクロマ残差スケーリング因子を導出するために1つ以上のシンタックス要素を使用してよい。ここで、ビジュアルメディアデータという用語は、単一の画像、または、一連の画像またはビデオを意味し得る。
【0156】
2.前記ルールは、含まれる場合に、前記1つ以上のシンタックス要素が前記ビジュアルメディアデータのビットストリーム表現におけるフィールドとして表現されることを指定する、条項1の方法。
【0157】
3.前記ビットストリーム表現に含まれる前記1つ以上のシンタックス要素は、クロマスケーリングによるルママッピング(LMCS)モードの適用に関する適応パラメータセット(APS)データに関連付けられている、条項1~2いずれか1つ以上の方法。
【0158】
4.前記ビットストリーム表現に含まれる前記1つ以上のシンタックス要素は、シーケンスパラメータセット(SPS)、スライスヘッダ、タイルグループヘッダ、ピクチャパラメータセット(PPS)、ピクチャヘッダ、ブリック、コーディングツリーユニット(CTU)行、コーディングツリーユニット(CTU)、または、コーディングユニット(CU)のうちの1つに関連付けられる、条項1~2いずれか1つ以上の方法。
【0159】
5.ビデオユニットは、複数のビデオブロックを含み、前記方法は、さらに、前記1つ以上のシンタックス要素が前記ビデオユニットに関連付けられていることを検出すると、前記1つ以上のシンタックス要素が前記ビデオユニットに含まれる前記複数のビデオブロックに対するルマ依存クロマ残差スケーリングステップで使用されることを決定するステップを含む、条項1~4いずれか1つ以上の方法。
【0160】
6.前記1つ以上のシンタックス要素は、[k0、k1]として表現される事前に定義された間隔に存在する第1のシンタックス要素を含む。ここで、k0、k1は、前記事前に定義された間隔の端点を示し、かつ、k0およびk1は、両方とも前記事前に定義された間隔内に含まれる、条項1~5いずれか1つ以上の方法。
【0161】
7.前記1つ以上のシンタックス要素は、1つ以上の条件を満たすことに基づいて、選択的に前記ビットストリーム表現に含まれる、第2のシンタックス要素を含む、条項1~6いずれか1つ以上の方法。
【0162】
8.前記1つ以上のシンタックス要素は、固定長精度、端数処理された単項精度、単項精度、指数ゴロム精度のうち1つを使用してコード化される、条項1~7いずれか1つ以上の方法。
【0163】
9.前記クロマ残差スケーリングステップがルマ依存クロマ残差スケーリングステップであるように、前記1つ以上のシンタックス要素は、前記クロマ残差スケーリングステップにおける残差スケーリング(CRS)因子を計算するためのルマサンプルを表すインデックスを含む、条項1の方法。
【0164】
10.前記インデックスは固定インデックスであり、かつ、含まれる場合に、前記ルールは、前記固定インデックスが前記ビジュアルメディアデータの前記ビットストリーム表現におけるフィールドとして表現されることを指定する、条項9の方法。
【0165】
11.前記インデックスは、前記ルマ依存クロマ残差スケーリングステップにおいてクロマ残差スケーリング(CRS)因子を導出するために使用されるルックアップテーブルにおけるインデックスを追加的に表す、条項9~10いずれか1つ以上の方法。
【0166】
12.前記インデックスは、[k0、k1]として表現される事前に定義された間隔にあり、ここで、k0、k1は、前記事前に定義された間隔の端点を示し、かつ、k0およびk1は、両方とも前記事前に定義された間隔内に含まれる、条項9~10いずれか1つ以上の方法。
【0167】
13.k0=0、かつ、k1=15である、条項12の方法。
【0168】
14.前記インデックスは、前記ルマ依存クロマ残差スケーリングステップにおいて使用される少なくとも1つの別のインデックスから予測的に導出される、条項12~13いずれか1つ以上の方法。
【0169】
15.前記少なくとも1つ別のインデックスは、前記ルマ依存クロマ残差スケーリングステップで使用される最小インデックスに対応する、条項14の方法。
【0170】
16.前記少なくとも1つの別のインデックスは、前記ルマ依存クロマ残差スケーリングステップにおいて使用される最大インデックスに対応する、条項11~12いずれか1つ以上の方法。
【0171】
17.前記インデックスは、前記ルマ依存クロマ残差スケーリングステップで使用される最大インデックスと、前記ルマ依存クロマ残差スケーリングステップで使用される最小インデックスとの合計に対して、オフセット値を加えることに部分的に基づいて、予測的に導出される、条項11~12いずれか1つ以上の方法。
【0172】
18.前記インデックスは、端数処理演算(rounding operation)を受ける、条項14の方法。
【0173】
19.前記オフセット値は、0または1である、条項14~15いずれか1つ以上の方法。
【0174】
20.前記インデックスの精度は、固定長精度、端数処理された単項精度、単項精度、指数ゴロム精度のうち1つを使用してコード化される、条項6~16いずれか1つ以上の方法。
【0175】
21.前記ルマ依存クロマ残差スケーリングステップにおいて識別される前記インデックスは、1つ以上の条件を満たすことに基づいて、選択的に前記ビットストリーム表現に含まれる、条項6~17いずれか1つ以上の方法。
【0176】
22.前記1つ以上の条件は、以下を含む、条項18の方法。
【0177】
(1)前記現在ビデオブロックのカラーフォーマットが4:0:0フォーマットでないことを検出すること。
【0178】
(2)前記現在ビデオブロックについて別個の平面コーディング技術がディセーブルされていることを検出すること。
【0179】
(3)ChromaArrayTypeが0に等しくないことを検出すること。または、
【0180】
(4)前記現在ビデオブロックについてルマ依存クロマ残差スケーリングステップがイネーブルされていることを検出すること。
【0181】
23.前記ルマ依存クロマ残差スケーリングステップは、クロマスケーリングによるルママッピング(LMCS)モードの適用に関するデータに関連している。前記方法は、さらに、複数のビデオブロックがクロマスケーリングによるルママッピング(LMCS)モードの適用に関する同じデータを共有していることを判断すると、前記ルールは、前記CRS因子を前記インデックスに基づいて固定値として導出することを指定する、条項6~19いずれか1つ以上の方法。
【0182】
24.前記CRS因子は、即時復号リフレッシュ(IDR)ピクチャ、クリーンランダムアクセス(CRA)ピクチャ、または、イントラランダムアクセスピクチャ(IRAP)画像について一度だけ導出される、条項20の方法。
【0183】
25.前記CRS因子は、即時復号リフレッシュ(IDR)ピクチャ、クリーンランダムアクセス(CRA)ピクチャ、または、イントラランダムアクセスピクチャ(IRAP)画像に含まれる全てのビデオブロックに適用可能である、条項21の方法。
【0184】
26.前記CRS因子は、後続の即時復号リフレッシュ(IDR)ピクチャ、後続のクリーンランダムアクセス(CRA)ピクチャ、または、後続のイントラランダムアクセスピクチャ(IRAP)画像の前のインターコード化ピクチャに含まれる全てのビデオブロックに適用可能である、条項20の方法。
【0185】
27.前記変換は、前記現在ビデオブロックから前記ビットストリーム表現を生成することを含む、条項1~23いずれか1つ以上の方法。
【0186】
28.前記インデックスは、ビンインデックスである、条項9~27いずれか1つ以上の方法。例えば、本文書に開示されているように、ビンインデックスをコンテキストコーディングに使用することができる。
【0187】
29.前記インデックスは、整数である、条項9~27いずれか1つ以上の方法。
【0188】
30.前記変換は、前記ビットストリーム表現から前記現在ビデオブロックのピクセル値を生成することを含む、条項1~29いずれか1つ以上の方法。
【0189】
31.条項1~30いずれか1つ以上に記載の方法を実装するように構成されたプロセッサを含む、ビデオエンコーダ装置。
【0190】
32.条項1~30いずれか1つ以上に記載の方法を実装するように構成されたプロセッサを備える、ビデオデコーダ装置。
【0191】
33.保管されたコードを有するコンピュータで読取り可能な媒体であって、前記コードは、条項1~30いずれか1つ以上の方法を実施するためのプロセッサ実行可能命令を具現化する。
【0192】
本文書において、「ビデオ処理(“video processing”)」または「ビジュアルメディア処理(“visual media processing”)」という用語は、ビデオエンコーディング、ビデオデコーディング、ビデオ圧縮、またはビデオ解凍を指すことができる。例えば、ビデオ圧縮アルゴリズムは、ビデオの画素表現から対応するビットストリーム表現へ、または、その逆への変換の最中に適用されてよい。現在ビデオブロックのビットストリーム表現は、例えば、シンタックスによって定義されるように、ビットストリーム内の異なる場所に共配置されるか、または、拡散されるビットに対応し得る。例えば、マクロブロックは、変換され、かつ、コード化されたエラー残差値の観点から、そして、また、ビットストリーム内のヘッダおよび他のフィールド内のビットを使用して符号化されてよい。さらに、変換中に、デコーダは、上記のソリューションで説明されるように、決定に基づいて、いくつかのフィールドが存在し得るか、または存在しないことを知ることで、ビットストリームを解析することができる。同様に、エンコーダは、所定のシンタックスフィールドがあるか、または、含まれないかを決定し、そして、それに応じて、シンタックスフィールドをコード化表現に含めるか、または、除外することによって、コード化表現を生成することができる。開示された技術は、サブブロックベースの動きベクトル精緻化の使用を含む技術を使用して圧縮効率を改善するために、ビデオエンコーダまたはデコーダで実施することができることが理解されよう。
【0193】
以上から、説明の目的で、ここにおいて、本開示の技術の特定の実施形態が説明されてきたが、本発明の範囲を逸脱することなく、種々の修正を行うことができることが理解されるだろう。従って、現在開示されている技術は、添付の請求項による場合を除いて、限定されるものではない。
【0194】
この特許文献に記載されている技術的事項(subject matter)の実装および機能動作は、ここにおいて開示されている構造、および、それらの構造的等価物を含む、種々のシステム、デジタル電子回路、または、コンピュータソフトウェア、ファームウェア、もしくは、ハードウェアにおいて、または、それらの1つ以上の組み合わせにおいて実施することができる。ここにおいて記載された技術的事項の実装は、1つ以上のコンピュータプログラム製品、すなわち、データ処理装置による、または、データ処理装置の動作を制御するための、有形および非一時的なコンピュータで読取り可能な媒体上に符号化されたコンピュータプログラム命令の1つ以上のモジュールとして実装することができる。コンピュータで読取り可能な媒体は、マシンで読取り可能なストレージ装置、マシンで読取り可能なストレージ基板、メモリ装置、マシンで読取り可能な伝搬信号に影響を与える物質の組成、または、それらの1つ以上の組み合わせであり得る。用語「データ処理ユニット(“data processing unit”)」または「データ処理装置(“data processing apparatus”)」は、例えば、プログラマブルプロセッサ、コンピュータ、または、複数のプロセッサまたはコンピュータを含む、データを処理するための全ての装置、デバイス、およびマシンを包含している。装置は、ハードウェアに加えて、問題のコンピュータプログラムの実行環境を生成するコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、または、それらの1つ以上の組み合わせを構成するコードを含み得る。
【0195】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、または、コードとしても、また知られているもの)は、コンパイルまたは解釈(interpreted)された言語を含む、任意の形態のプログラミング言語で書くことができ、それは、スタンドアロンプログラムとして、または、コンピューティング環境での使用に適したモジュール、コンポーネント、サブルーチン、または他のユニットとしてのものを含む、任意の形態で展開することができる。コンピュータプログラムは、必ずしもファイルシステム内のファイルに対応するものではない。プログラムは、他のプログラムまたはデータを保持するファイルの一部分(例えば、マークアップ言語文書に保管される1つ以上のスクリプト)、問題のプログラム専用の単一ファイル、または複数の協調ファイル(例えば、1つ以上のモジュール、サブプログラム、またはコードの一部分を保管するファイル)に保管することができる。コンピュータプログラムは、1つのコンピュータ、もしくは、1つのサイトに配置されるか、または、複数のサイトに分散され、通信ネットワークによって相互接続される複数のコンピュータ上で実行されるように展開することができる。
【0196】
ここにおいて説明されるプロセスおよび論理フローは、入力データ上で動作し、出力を生成することによって機能を実行するために、1つ以上のコンピュータプログラムを実行する1つ以上のプログラマブルプロセッサによって実行することができる。プロセスおよび論理フローは、また、フィールドプログラマブルゲートアレイ(FPGA)または特定用途向け集積回路(ASIC)のような、特殊目的論理回路によって実行することができ、そして、また、装置も実行することができる。
【0197】
コンピュータプログラムの実行に適したプロセッサは、例えば、汎用および専用マイクロプロセッサの両方、および、任意の種類のデジタルコンピュータの任意の1つ以上のプロセッサを含む。一般的に、プロセッサは、リードオンリーメモリまたはランダムアクセスメモリ、または、その両方から命令およびデータを受信する。コンピュータの必須要素は、命令を実行するためのプロセッサ、および、命令とデータを保管するための1つ以上のメモリデバイスである。一般的に、コンピュータは、また、データを保管するための1つ以上の大容量ストレージ装置、例えば、磁気ディスク、磁気光ディスク、または光ディスク、にデータを受信したり、データを転送したりするために動作可能に結合される。しかしながら、コンピュータは、そうした装置を有する必要はない。コンピュータプログラム命令及びデータを保管するのに適したコンピュータで読取り可能な媒体は、例えば、EPROM、EEPROM、およびフラッシュメモリデバイスのような半導体メモリデバイスを含む、あらゆる形態の不揮発性メモリ、媒体、およびメモリデバイスを含む。プロセッサおよびメモリは、特殊目的論理回路によって補足されるか、または、内蔵され得る。
【0198】
明細書は、図面と共に、単なる例示とみなされるが、例示は実施例を意味する。ここにおいて使用されるように、「または(“or”)」の使用は、コンテキストが他のことを明確に示さない限り、「及び/又は(“and/or”)」を含むように意図されている。
【0199】
この特許文献には多くの詳細が含まれているが、これらは、いずれかの発明の範囲または特許請求され得るものを限定するものではなく、むしろ、特定の発明の特定の実施形態に特有な機能の説明として解釈されるべきである。別々の実施形態のコンテキストにおいてこの特許文献に記載されている特定の機能は、単一の実施形態で組み合わせて実施することもできる。逆に、単一の実施形態のコンテキストにおいて説明される種々の機能は、複数の実施形態において別々に、または、任意の適切なサブコンビネーションでも、また、実施することができる。さらに、機能は、特定の組み合わせにおいて作用するものとして上記され、最初にそのように請求されてよいが、請求される組み合わせからの1つ以上の機能は、場合によっては、組み合わせから切り出され得る。そして、請求される組み合わせは、サブコンビネーションまたはサブコンビネーションのバリエーションに向けられてよい
【0200】
同様に、図面には特定の順序で動作が示されているが、このことは、所望の結果を達成するためには、このような動作を示される特定の順序で、または、一連の順序で実行すること、または、例示された全ての動作を実行することを要求するものとして理解されるべきではない。さらに、この特許文献に記載されている実施形態における種々のシステムコンポーネントの分離は、そうした分離が全ての実施形態において必要とされるものとして理解されるべきではない。
【0201】
この特許文献に記載され、説明されている内容に基づいて、少数の実施形態および実施例だけが記述されており、そして、他の実施形態、拡張、およびバリエーションが成され得る。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13