(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-02-27
(45)【発行日】2023-03-07
(54)【発明の名称】ビデオ処理における非線形適応ループフィルタリング
(51)【国際特許分類】
H04N 19/117 20140101AFI20230228BHJP
H04N 19/157 20140101ALI20230228BHJP
H04N 19/176 20140101ALI20230228BHJP
H04N 19/82 20140101ALI20230228BHJP
H04N 19/70 20140101ALI20230228BHJP
【FI】
H04N19/117
H04N19/157
H04N19/176
H04N19/82
H04N19/70
(21)【出願番号】P 2021556952
(86)(22)【出願日】2020-03-24
(86)【国際出願番号】 CN2020080827
(87)【国際公開番号】W WO2020192644
(87)【国際公開日】2020-10-01
【審査請求日】2021-09-22
(31)【優先権主張番号】PCT/CN2019/079395
(32)【優先日】2019-03-24
(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)【発明者】
【氏名】ワン,ユエ
【審査官】岩井 健二
(56)【参考文献】
【文献】Jonathan Taquet, Christophe Gisquet, Guillaume Laroche, and Patrice Onno,Non-Linear Adaptive Loop Filter,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-M0385,13th Meeting: Marrakech, MA,2019年01月,pp.1-5
【文献】Jonathan Taquet, Patrice Onno, Christophe Gisquet, and Guillaume Laroche,CE5: Results of tests CE5-3.1 to CE5-3.4 on Non-Linear Adaptive Loop Filter.,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-N0242,14th Meeting: Geneva, CH,2019年03月19日,pp.1-10
【文献】Sergey Ikonin, Victor Stepin, and Elena Alshina,Non-CE5: Non-linear ALF simplifications,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-O0188-v2,15th Meeting: Gothenburg, SE,2019年07月,pp.1-9
【文献】Kyohei Unno, and Kei Kawamura,Non-CE5: A simplification of clipping thresholds for Non-Linear ALF,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-O0386-v2,15th Meeting: Gothenburg, SE,2019年07月,pp.1-6
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
ビデオデータを処理する方法であって、
非線形
適応ループフィルタリング動作がビデオの現在のビデオ領域に適用されることを決定するステップと、
前記現在のビデオ領域に対する少なくとも1つの第1フィルタリングインデックスを導出するステップと、
前記少なくとも1つの第1フィルタリングインデックスに基づいて、クリッピングパラメータセットから1つ以上の第1クリッピングパラメータを導出するステップと、
前記非線形
適応ループフィルタリング動作の一部であるクリッピング動作を実行するステップと、
前記
非線形適応ループフィルタリング動作に基づいて、前記現在のビデオ領域と前記ビデオのビットストリームとの間で変換を実行するステップと、を含み、
前記クリッピングパラメータセットは、ビット深度に基づいて構成されている、
方法。
【請求項2】
シフト動作は、前記クリッピングパラメータセットのクリッピングパラメータ値を導出するために使用される、
請求項1に記載の方法。
【請求項3】
前記クリッピングパラメータセットは、さらに、クリッピングインデックスに基づいて構成される、
請求項1または2に記載の方法。
【請求項4】
前記クリッピングインデックスは、前記ビットストリーム内のフィールドと関連付けられている、
請求項3に記載の方法。
【請求項5】
前記クリッピングインデックスは、既定の規則を使用して決定される、
請求項3または4に記載の方法。
【請求項6】
前記クリッピングパラメータセットに対して、前記クリッピングインデックスの所与の値の下で、異なるクリッピングパラメータ値が、異なるビット深度に対して使用される、
請求項3乃至5いずれか一項に記載の方法。
【請求項7】
所与のビット深度に対する第1クリッピングインデックスに対応する第1クリッピングパラメータ値は、別のビット深度に対する前記第1クリッピングインデックスに対応する第2クリッピングパラメータ値に基づいて導出される、
請求項3乃至6いずれか一項に記載の方法。
【請求項8】
前記第1クリッピングパラメータ値は、前記第2クリッピングパラメータ値にシフト動作を適用することに基づいて導出される、
請求項7に記載の方法。
【請求項9】
前記少なくとも1つの第1フィルタリングインデックスは、異なる方向における複数のサンプルの差異に基づいて導出される、
請求項1乃至8いずれか一項に記載の方法。
【請求項10】
前記現在のビデオ領域は、複数のM×M個のビデオ領域へ分割され、
異なる方向における前記複数のサンプルの差異は、M×M個のビデオサブ領域毎に導出され、
Mは、2または4に等しく、かつ、前記現在のビデオ領域は、コーディングツリーブロックまたはスライスである、
請求項9に記載の方法。
【請求項11】
異なる方向における前記複数のサンプルの差異は、1:Nのサブサンプリングレートに基づいて導出され、
Nは、1より大きい、
請求項10に記載の方法。
【請求項12】
1つ以上の第1フィルタリングパラメータ
が、さらに、
前記少なくとも1つの第1フィルタリングインデックスに基づいて導出される、
請求項1乃至11いずれか一項に記載の方法。
【請求項13】
前記1つ以上の第1フィルタリングパラメータおよび前記1つ以上の第1クリッピングパラメータは、同一の適応パラメータセットの特定に基づいて導出される、
請求項12に記載の方法。
【請求項14】
前記変換は、前記現在のビデオ領域を前記ビットストリームへと符号化することを含む、
請求項1乃至13いずれか一項に記載の方法。
【請求項15】
前記変換は、前記ビットストリームから前記現在のビデオ領域を復号することを含む、
請求項1乃至13いずれか一項に記載の方法。
【請求項16】
ビデオデータを処理するための装置であって、
プロセッサ、および、命令を含む非一時的なメモリ、を含み、
前記プロセッサによって前記命令が実行されると、前記プロセッサに、
非線形
適応ループフィルタリング動作がビデオの現在のビデオ領域に適用されることを決定し、
前記現在のビデオ領域に対する少なくとも1つの第1フィルタリングインデックスを導出し、
前記少なくとも1つの第1フィルタリングインデックスに基づいて、クリッピングパラメータセットから1つ以上の第1クリッピングパラメータを導出し、
前記非線形
適応ループフィルタリング動作の一部であるクリッピング動作を実行し、
前記
非線形適応ループフィルタリング動作に基づいて、前記現在のビデオ領域と前記ビデオのビットストリームとの間で変換を実行する、
ようにさせ、
前記クリッピングパラメータセットは、ビット深度に基づいて構成されている、
装置。
【請求項17】
命令を保管する非一時的なコンピュータ読取り可能な記憶媒体であって、
プロセッサに、
非線形
適応ループフィルタリング動作がビデオの現在のビデオ領域に適用されることを決定し、
前記現在のビデオ領域に対する少なくとも1つの第1フィルタリングインデックスを導出し、
前記少なくとも1つの第1フィルタリングインデックスに基づいて、クリッピングパラメータセットから1つ以上の第1クリッピングパラメータを導出し、
前記非線形
適応ループフィルタリング動作の一部であるクリッピング動作を実行し、
前記
非線形適応ループフィルタリング動作に基づいて、前記現在のビデオ領域と前記ビデオのビットストリームとの間で変換を実行する、
ようにさせ、
前記クリッピングパラメータセットは、ビット深度に基づいて構成されている、
非一時的なコンピュータ読取り可能な記憶媒体。
【請求項18】
ビデオのビットストリームを保管する
ための方法であって、
前記方法は、
非線形
適応ループフィルタリング動作がビデオの現在のビデオ領域に適用されることを決定するステップと、
前記現在のビデオ領域に対する少なくとも1つの第1フィルタリングインデックスを導出するステップと、
前記少なくとも1つの第1フィルタリングインデックスに基づいて、クリッピングパラメータセットから1つ以上の第1クリッピングパラメータを導出するステップと、
前記非線形
適応ループフィルタリング動作の一部であるクリッピング動作を実行するステップと、
前記
非線形適応ループフィルタリング動作に基づいて、前記現在のビデオ領域と前記ビデオのビットストリームとの間で変換を実行するステップと、
および、
前記ビットストリームを、非一時的なコンピュータ読取り可能な記憶媒体に保管するステップ、を含み、
前記クリッピングパラメータセットは、ビット深度に基づいて構成されている、
方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ビデオ処理技術、装置、およびシステムに関する。
【0002】
関連出願の相互参照
本出願は、2020年3月24日に出願された国際特許出願第PCT/CN2020/080827号の国内移行であり、2019年3月24日に出願された国際特許出願第PCT/CN2019/079395号について優先権及び利益を主張するものである。法に基づく全ての目的のために、前述の全ての出願は、ここにおいて、本出願の開示の一部として引用により援用されている。
【背景技術】
【0003】
ビデオ圧縮の進歩にもかかわらず、デジタルビデオは、依然として、インターネットおよび他のデジタル通信ネットワークにおける最大の帯域幅使用を占めている。映像の受信および表示が可能な接続ユーザデバイスの数が増加するにつれて、デジタル映像の利用に対する帯域幅需要は増加し続けることが予想されている。
【発明の概要】
【0004】
デジタルビデオ処理、および、例えば、ビデオ処理のための非線形適応ループフィルタリング(non-linear adaptive loop filtering)に関連する装置、システムおよび、方法が説明ついてされる。説明される方法は、既存のビデオコーディング標準(例えば、高効率ビデオコーディング(High Efficiency Video Coding、HEVC))および、将来のビデオコーディング標準(例えば、汎用ビデオコーディング(Versatile Video Coding、VVC))またはコーデックの両方に対して適用され得る。
【0005】
1つの代表的な態様において、開示される技術は、ビデオ処理方法を提供するために使用され得る。この方法は、ビデオのビデオユニットを符号化ビデオユニットとして符号化するステップと、前記符号化ビデオユニットから再構成サンプルを生成するステップと、前記再構成サンプルに対してクリッピング動作を実行するステップであり、前記クリッピング動作で使用されるクリッピングパラメータは、クリッピングインデックス、および、前記再構成サンプルのビット深度または前記ビデオユニットのサンプルのビット深度に係る関数である、ステップと、前記クリッピング動作の出力に対して非線形適応ループフィルタを適用するステップと、前記符号化ビデオユニットを使用して、前記ビデオのコード化表現を生成するステップと、を含む。
【0006】
別の態様において、開示される技術は、ビデオ処理方法を提供するために使用され得る。この方法は、前記ビデオのビデオユニットを表す符号化ビデオユニットについてビデオのコード化表現を解析するステップと、前記符号化ビデオユニットから前記ビデオユニットの再構成サンプルを生成するステップと、前記再構成サンプルに対してクリッピング動作を実行するステップであり、前記クリッピング動作で使用されるクリッピングパラメータは、クリッピングインデックス、および、前記再構成サンプルのビット深度または前記ビデオユニットのビット深度に係る関数である、ステップと、最終的な復号ビデオユニットを生成するように、前記クリッピング動作の出力に対して非線形適応ループフィルタを適用するステップと、を含む。
【0007】
別の態様において、開示される技術は、ビデオ処理方法を提供するために使用され得る。この方法は、1つ以上のビデオ領域を含むビデオのコード化表現と、前記ビデオとの間の変換を実行するステップと、非線形適応ループフィルタを使用して、ビデオ領域のビデオユニットの再構成をフィルタリングするためのクリッピングパラメータを決定するステップと、を含む。そして、ここで、前記決定は、前記ビデオ、及び/又は、前記ビデオ領域、及び/又は、前記ビデオユニットのコード化情報に基づいている。
【0008】
別の態様において、開示される技術は、ビデオ処理方法を提供するために使用され得る。この方法は、1つ以上のビデオ領域を含むビデオのコード化表現と、前記ビデオとの間の変換を実行するステップと、非線形適応ループフィルタを使用して、ビデオ領域のビデオユニットの再構成をフィルタリングするためのクリッピングパラメータを決定するステップと、を含む。そして、ここで、前記クリッピングパラメータは、色表現フォーマットの関数である。
【0009】
別の態様において、開示される技術は、ビデオ処理方法を提供するために使用され得る。この方法は、1つ以上のビデオ領域を含むビデオのコード化表現と、前記ビデオとの間の変換を実行するステップと、非線形適応ループフィルタを使用して、ビデオ領域のビデオユニットの再構成をフィルタリングするためのクリッピングパラメータを決定するステップと、を含む。そして、ここで、前記クリッピングパラメータは、第1ドメインおよび第2ドメインにおけるビデオユニットの表現、及び/又は、クロマビデオユニットのクロマ残余のスケーリングに基づいて、前記ビデオユニットを再構成するためにループ内再形成(ILR)が適用されるか否かに依存する。
【0010】
別の態様において、開示される技術は、ビデオ処理方法を提供するために使用され得る。この方法は、この方法は、1つ以上のビデオ領域を含むビデオのコード化表現とビデオとの間の変換を実行することを含む。ここで、前記コード化表現は、非線形適応ループフィルタを使用してビデオ領域のビデオユニットの再構成をフィルタリングするためのクリッピングパラメータを提供する第1側面情報を含む。ここで、前記第1側面情報は、前記非線形適応ループフィルタにおいて使用されるフィルタ係数を示している第2側面情報と共に信号化される。
【0011】
別の態様において、開示される技術は、ビデオ処理方法を提供するために使用され得る。この方法は、1つ以上のビデオ領域を含むビデオのコード化表現とビデオとの間で変換を実行することを含む。ここで、コード化表現は、非線形適応ループフィルタを使用してビデオ領域のビデオユニットの再構成をフィルタリングするためのクリッピングパラメータの複数のセットを示す、側面情報を含む。
【0012】
別の態様において、開示される技術は、ビデオ処理方法を提供するために使用され得る。この方法は、1つ以上のビデオ領域を含むビデオのコード化表現とビデオとの間の変換を実行することを含む。ここで、前記コード化表現は、非線形適応ループフィルタを使用してビデオ領域のクロマビデオユニットの再構成をフィルタリングするための1つ以上のクリッピングパラメータを提供するサイド情報を含む。ここで、前記1つ以上のクリッピングパラメータはカラーフォーマットに依存している。
【0013】
別の態様において、開示される技術は、ビデオ処理方法を提供するために使用され得る。この方法は、、1つ以上のビデオ領域を含むビデオのコード化表現と前記ビデオとの間で変換を実行することを含む。ここで、前記コード化表現は、適応ループフィルタを使用してビデオ領域のビデオユニットの再構成をフィルタリングするためのクリッピングパラメータを提供する側面情報を含む。ここで、前記実行することは、ビデオ領域レベルでの差異をサンプリングするためにクリッピング動作を適用することによってフィルタリングされたビデオユニットを生成することを含む。
【0014】
さらに別の代表的な態様において、上述の方法は、プロセッサ実行可能コードの形態で具体化され、かつ、コンピュータ読取り可能プログラム媒体に保管される。
【0015】
さらに別の代表的な態様においては、上述の方法を実行するように構成され、または、動作可能な装置が開示される。本装置は、この方法を実装するようにプログラムされたプロセッサを含み得る。
【0016】
さらに別の代表的な態様において、上記に開示された方法の1つ以上は、エンコーダ側の実装またはデコーダ側の実装であり得る。
【0017】
開示される技術の上記の態様および特徴は、図面、明細書、および請求項において、より詳細に記載されている。
【図面の簡単な説明】
【0018】
【
図1】
図1は、一つの例示的な
ビデオコーディングのためのエンコーダブロック図を示している。
【
図2A】
図2Aは、幾何学的変換に基づく適応ループフィルタ(geometry transformation-based adaptive loop filter、GALF)のフィルタ形状の例を示している。
【
図2B】
図2Bは、幾何学的変換に基づく適応ループフィルタ(GALF)のフィルタ形状の例を示している。
【
図2C】
図2Cは、幾何学的変換に基づく適応ループフィルタ(GALF)のフィルタ形状の例を示している。
【
図3】
図3は、一つの例示的なGALFエンコーダ決定のためのフローチャートを示している。
【
図4A】
図4Aは、適応ループフィルタ(adaptive loop filter、ALF)分類のためのサブサンプリングされたラプラシアン(Laplacian)計算の例を示している。
【
図4B】
図4Bは、適応ループフィルタ分類のためのサブサンプリングされたラプラシアン計算の例を示している。
【
図4C】
図4Cは、適応ループフィルタ分類のためのサブサンプリングされたラプラシアン計算の例を示している。
【
図4D】
図4Dは、適応ループフィルタ分類のためのサブサンプリングされたラプラシアン計算の例を示している。
【
図5】
図5は、一つの例示的なルマ(luma)フィルタ形状を示している。
【
図6】
図6は、一つの例示的なワイドビデオグラフィックアレイ(Wide Video Graphic Array、WVGA)シーケンスの領域分割を示している。
【
図7】
図7は、一つの例示的な再形成(reshaping)を伴うフローの復号化のフローチャートを示している。
【
図8A】
図8Aは、開示される技術のいくつかの実装に従った、ビデオ処理のための例示的な方法のフローチャートを示している。
【
図8B】
図8Bは、開示される技術のいくつかの実装に従った、ビデオ処理のための例示的な方法のフローチャートを示している。
【
図8C】
図8Cは、開示される技術のいくつかの実装に従った、ビデオ処理のための例示的な方法のフローチャートを示している。
【
図9】
図9は、開示される技術のいくつかの実装に従った、ビデオ処理のための例示的な方法のフローチャートを示している。
【
図10A】
図10Aは、本開示において説明されるビデオ処理技術を実装するためのハードウェアプラットフォームの例示的なブロック図である。
【
図10B】
図10Bは、本開示において説明されるビデオ処理技術を実装するためのハードウェアプラットフォームの例示的なブロック図である。
【発明を実施するための形態】
【0019】
より高解像度のビデオに対する要求が高まっているため、ビデオコーディング(video coding)方法および技術は、現代の技術においてユビキタス(ubiquitous)なものである。ビデオコーデック(video codec)は、典型的に、デジタルビデオを圧縮または解凍する電子回路またはソフトウェアを含み、そして、より高いコード化効率を提供するために継続的に改良されている。ビデオコーデックは、圧縮されていないビデオを圧縮形式に変換し、または、その逆も同様である。ビデオ品質、ビデオを表現するために使用されるデータ量(ビットレート(bit rate)によって決定される)、符号化および復号化アルゴリズムの複雑性、データ損失およびエラーに対するセンシティビティ、編集の容易さ、ランダムアクセス、および、エンドツーエンド遅延(レイテンシ(latency))の間には、複雑な関係性が存在している。圧縮フォーマットは、たいてい、標準的なビデオ圧縮仕様、例えば、高効率ビデオコーディング(HEVS)標準(H.265またはMPEG-H Part2としても知られている)、最終化されるバーサタイルビデオコーディング(VVC)標準、または、他の現在及び/又は将来のビデオコーディング標準に準拠している。
【0020】
いくつかの実施態様においては、Joint Exploration Model(JEM)として知られる参照ソフトウェアを用いて、将来のビデオコーディング技術が探索されている。JEMでは、サブブロックベースの予測が、いくつかのコード化ツールに採用されている。アフィン予測、代替時間的動きベクトル予測(alternative temporal motion vector prediction、ATMVP)、空間時間的動きベクトル予測(spatial-temporal motion vector prediction、STMVP)、双方向光学フロー(bi-directional optical flow、BIO)、フレームレートアップ変換(FRUC)、ローカル適応動きベクトル解像度(Locally Adaptive Motion Vector Resolution、LAMVR)、オーバーラップブロック運動補償(Overlapped Block Motion Compensation、OBMC)、局所照明補償(Local Illumination Compensation、LIC)、および、デコーダ側動きベクトル精緻化(Decoder-side Motion Vector Refinement、DMVR)といったものである。
【0021】
開示される技術の実施形態は、ランタイム性能を改善するために、既存のビデオコーディング標準(例えば、HEVC、H.265)、および、将来の標準に対して適用され得る。本文書では、説明の可読性を向上させるためにセクション見出しを使用しており、そして、いかなる場合も、説明または実施形態(及び/又は、実装)を各セクションのみに限定するものではない。
【0022】
1 色空間およびクロマサブサンプリングの例
色空間(color space)、カラーモデル(または、カラーシステム)としても知られているものは、色の範囲を数字のタプル(tuple)として、典型的には、3個または4個の値、もしくは、色成分(例えば、RGB)として、簡単に記述する抽象的な数学モデルである。基本的に言えば、色空間は、座標系とサブ空間の精緻化(elaboration)である。
【0023】
ビデオ圧縮について、最も頻繁に使用される色空間は、YCbCrおよびRGBである。
【0024】
YCbCr、Y'CbCr、または、Y Pb/Cb Pr/Cr、YCBCRまたはY'CBCRとしても記載されるものは、ビデオおよびデジタル写真システムにおけるカラー画像パイプラインの一部として使用される色空間のファミリーである。Y’はルマ成分(luma component)であり、そして、CBおよびCRは、青色差(blue-difference)および赤色差(red-difference)クロマ(chroma)成分である。Y’(プライムあり)は、ルミナンス(luminance)であるYと区別されており、これは、光強度(light intensity)が、ガンマ補正RGB原色(gamma corrected RGB primaries)に基づいて非線形に符号化されることを意味している。
【0025】
クロマサブサンプリング(chroma subsampling)は、ルミナンスよりも色の違いについてヒトの視覚系の視力が低いことを利用して、ルミナンス情報よりもクロマ情報についてより低い解像度を実装することによる、画像を符号化する実践である。
【0026】
1.1 4:4:4カラーフォーマット
3個のY'CbCr成分それぞれは、同じサンプルレートを有するので、クロマサブサンプリングは存在しない。このスキームは、ときどき、ハイエンドのフィルムスキャナおよび映画のポストプロダクションにおいて使用されている。
【0027】
1.2 4:2:2カラーフォーマット
2個のクロマ成分はルマのサンプルレートの半分でサンプリングされる。例えば、水平クロマ解像度が半分になる。このことは、視覚的な差異がほとんどないか全くない状態で非圧縮ビデオ信号の帯域幅を3分の1に低減する。
【0028】
1.3 4:2:0カラーフォーマット
4:2:0において、水平方向のサンプリングは4:1:1に比べて2倍になるが、このスキームにおいてはCbおよびCrチャンネルが各代替ラインでのみサンプリングされるため、垂直方向の解像度は半分になる。従って、データレートは同じである。CbとCrは、それぞれ水平方向と垂直方向の2倍でサブサンプリングされる。4:2:0スキームの3つのバリエーションが存在し、異なる水平および垂直位置(sitting)を有している。
【0029】
- MPEG-2においては、CbおよびCrは、共に配置(cosited)されている。CbおよびCrは、垂直方向のピクセル間に位置する(隙間(interstitially)に置かれている)。
【0030】
- JPEG/JFIF、H.261、およびMPEG-1において、CbおよびCrは、交互の(alternate)ルマサンプルの中間で隙間に配置されている。
【0031】
- 4:2:0 DVにおいて、CbおよびCrは、水平方向に共に配置されている。垂直方向において、それらは交互の線上に共に配置されている。
【0032】
2 典型的なビデオコーデックの
コード化フローの例
図1は、一つの例示的なVCのCエンコーダブロック図を示している。
図1に示されるように、
ビデオエンコーディングのフローは、イントラ予測、及び/又は、動き推定/動き補償(motion estimation/motion compensation、ME/MC)を受ける、入力ビデオを用いて開始し得る。これらの動作(operation)は、ビデオの以前にコード化された部分の再構成されたコピーからのフィードバックを使用する。イントラ予測及び/又はME/MCの出力は、変換演算(T)を通じて差動的に処理され、量子化動作(Q)が後に続き、出力コード化表現へとエントロピー符号化(entropy coded)される。フィードバックループにおいて、コード化表現(Qブロックの出力)は、逆量子化演算(IQ)、続いて逆変換演算を経て、符号化されたビデオブロックの再構成サンプルを生成することができる。
【0033】
再構成されたサンプルは、さらに、参照サンプル、または、参照ブロック、もしくは、さらなる符号化のために使用される参照画像を生成するために、種々の「ループ内(“in loop”)」フィルタリング動作を通して処理され得る。ループ内フィルタリングプロセスチェーンは、3つのループ内フィルタリングブロック、即ち、デブロッキングフィルタ(DF)、サンプル適応オフセット(SAO)、およびALFを含む。予め定義されたフィルタを使用する、DFとは異なり、SAOおよびALFは、オフセットおよびフィルタ係数を信号化しているコード化された側面情報(side information)を用いて、オフセットを追加し、かつ、有限インパルス応答(finite impulse response、FIR)フィルタをそれぞれ適用することによって、元のサンプルと再構成されたサンプルとの間の平均二乗誤差を減少させるために、現在画像の元のサンプルを使用する。ALFは、各画像の最終処理ステージに配置されており、そして、以前のステージで生成されたアーチファクトを捕捉し、かつ、修復しようとするツールとして見なすことができる。
【0034】
デコーダ側では、復号され、かつ、再構成されたビデオサンプルを生成するために、符号化動作のうちいくつかが逆の順序で実行される。例えば、
図1を参照すると、デコーダは、エントロピー符号化の出力であるコード化表現を解析し、かつ、ビデオの符号化ユニットまたはブロックを取得する。これらは、次いで、ビデオユニットの再構成サンプルを生成するために、逆量子化演算(IQ)および逆変換演算を(IT)通過する。最終的な復号されたビデオユニットは、ビデオエンコーダのフィードバックループに関して上述したようなループ内フィルタリング動作を適用することによって生成され得る。
【0035】
3 JEMにおける幾何学的変換ベースの適応ループフィルタの例
JEMでは、ブロックベースフィルタ適応を有する幾何学的変換ベースの適応ループフィルタ(GALF)が適用される。ルマ成分では、ローカルグラデーションの方向とアクティビティに基づいて、2×2ブロックごとに25個のフィルタのうちの1つが選択される。
【0036】
3.1 フィルタ形状の例
JEMでは、ルマ成分に対して、最大3個のダイヤモンドフィルタ形状を(5×5ダイヤモンド、7×7ダイヤモンド、および9×9ダイヤモンドについて、それぞれ
図2A、2B、および2Cに示されるように)選択することができる。インデックスは、ルマ成分について使用されるフィルタの形状を示すために、画像レベルで信号化される。画像におけるクロマ成分については、5×5のダイヤモンド形状が常に使用される。
【0037】
3.1.1 ブロック分類
各ブロックは、25個のクラスのうち1つへと分類される。分類インデックスCは、その方向性(directionality)Dと活動の量子化値A^に基づいて、次のように導出される。
C=5D+A^ (1)
DおよびA^を計算するために、水平方向、垂直方向、および2つの対角方向の勾配(gradients)が、1-Dラプラシアン(Laplacian)使用して、まず、計算される。
【数1】
(2)
【数2】
(3)
【数3】
(4)
【数4】
(5)
インデックスiおよびjは2×2ブロック内の左上のサンプルの座標を指し、そして、r(i,j)は座標(I,j)における再構成されたサンプルを示している。
次に、水平方向と垂直方向の勾配の最大値と最小値Dが次のように設定される。
g
h,v
max=max(g
h,g
v)、g
h,v
min=min(g
h,g
v) (6)
そして、2つの対角方向の勾配の最大値と最小値が次のように設定される。
g
d0,d1
max=max(g
d0,g
d1)、g
d0,d1
min=min(g
d0,g
d1) (7)
方向性Dの値を導出するために、これらの値が相互に、および、2個の閾値t
1およびt
2を用いて比較される。
ステップ1.g
h,v
max≦t
1・g
h,v
min、かつ、g
d0,d1
max≦t
1・g
d0,d1
minが真である場合に、Dは0に設定される。
ステップ2.g
h,v
max/g
h,v
min>g
d0,d1
max/g
d0,d1
minである場合には、ステップ3から継続し、そうでなければ、ステップ4から継続する。
ステップ3.g
h,v
max>t
2・g
h,v
minである場合に、Dは2に設定され、そうでなければ、Dは1に設定される。
ステップ4.g
d0,d1
max>t
2・g
d0,d1
minである場合に、Dは4に設定され、そうでなければ、Dは3に設定される。活性値(activity value)Aは、次のように計算される。
【数5】
(8)
Aは、包括的に、さらに0から4の範囲に量子化され、そして、量子化された値はA^として示される。画像内の両方のクロマ成分について、分類方法は適用されない。すなわち、各クロマ成分に対してALF係数の単一セットが適用される。
【0038】
3.1.2 フィルタ係数の幾何学的変換
各2×2ブロックをフィルタリングする前に、そのブロックについて計算された勾配値に応じて、回転、または、対角および垂直フリッピング(flipping)といった幾何学的変換が、フィルタ係数f(k,l)に対して適用される。これは、フィルタ支持領域(support region)内のサンプルに対してこれらの変換を適用することと等価である。このアイデアは、ALFが適用される異なるブロックを、それらの方向性を整列させることによって、より類似させることである。
【0039】
対角、垂直フリップ、および回転を含む3つの幾何学的変換が導入される。
対角線(Diagonal) :fD(k,l)=f(l,k)、
垂直反転(Vertical flip):fV(k,l)=f(k,K-l-1)、
回転(Rotation) :fR(k,l)=f(K-l-,k)
(9)
【0040】
ここでは、位置(0,0)が左上隅にあり、かつ、位置(K-1,K-1)が右下隅にあるように、Kはフィルタのサイズであり、そして、0≦k、l≦K-1は係数座標である。変換は、そのブロックについて計算された勾配値に依存して、フィルタ係数f(k,l)に対して適用される。変換と4方向の4個の勾配の関係が表1にまとめられている。
【表1】
表1:1ブロックについて計算された勾配のマッピングおよび変換
【0041】
3.1.3 フィルタパラメータのシグナル伝達
JEMにおいて、GALFフィルタパラメータは、第1CTU、すなわち、スライスヘッダの後で、かつ、第1CTUのSAOパラメータの前に信号化される。最大25セットのルマフィルタ係数がシグナル化され得る。ビットオーバーヘッドを低減するために、異なる分類のフィルタ係数をマージすることができる。また、参照画像のGALF係数が保管され、そして、現在画像のGALF係数として再利用される。現在画像は、参照画像のために保管されたGALF係数を使用し、GALF係数信号をバイパスすることを選択することができる。この場合、参照画像の1つへのインデックスのみが信号化され、示された参照画像の保管されたGALF係数が現在画像に対して継承される。
【0042】
GALF時間的予測(temporal prediction)をサポートするために、GALFフィルタセットの候補リストが維持される。新しいシーケンスの複合の開始時に、候補リストは空である。1つの画像をデコードした後で、対応するフィルタのセットが候補リストに追加されてよい。候補リストのサイズが最大許容値(すなわち、現在のJEMでは6)に達すると、新しいフィルタのセットが復号順に最も古いセットを上書きする。っそいて、すなわち、先入れ先出し(FIFO)ルールが候補リストを更新するために適用される。重複を避けるために、対応するピクチャがGALF時間的予測を使用しない場合にのみ、セットをリストに追加できる。時間的スケーラビリティをサポートするために、フィルタセットの複数の候補リストが存在し、そして、各候補リストは時間的レイヤに関連付けられる。より具体的には、時間層インデックス(temporal layer index、TempIdx)によって割り当てられた各アレイは、より低いTempIdxと等しい以前に復号された画像のフィルタセットを構成することができる。例えば、k番目のアレイは、kに等しいTempIdxに関連付けられるように割り当てられ、そして、k以下のTempIdxを持つ画像からのフィルタセットのみを含む。所定のピクチャをコード化した後で、ピクチャに関連付けられたフィルタセットは、等しい又はより高いTempIdxに関連付けられたそれらのアレイを更新するために使用される。
【0043】
信号オーバヘッドを最小化するために、コード化フレーム間のためにGALF係数の時間的予測が使用される。イントラフレームについて、時間的予測は利用可能ではなく、そして、16個の固定フィルタのセットが各クラスに割り当てられる。固定フィルタの使用を示すために、各クラスに対するフラグが信号化され、そして、必要であれば、選択された固定フィルタのインデックスが示される。固定フィルタが与えられたクラスに対して選択された場合でも、適応フィルタf(k,l)の係数は、依然として、このクラスに対して送られ得る。この場合、再構成された画像に適用されるフィルタの係数は、係数の両方のセットの合計である。
【0044】
ルマ成分のフィルタリングプロセスは、CUレベルで制御できる。GALFがCUのルマ成分に適用されるか否かを示すためにフラグが信号化される。クロマ成分について、GALFが適用されるか否かは、画像レベルのみでしめされる。
【0045】
3.1.4 フィルタリングプロセス
デコーダ側では、ブロックについてGALFがイネーブル(enabled)されると、ブロック内の各サンプルR(i,j)がフィルタリングされ、以下に示されるようにサンプル値R’(i,j)を結果として生じる。ここで、Lはフィルタ長を表し、f
m,nはフィルタ係数を表し、そして、f(k,l)は復号されたフィルタ係数を表す。
【数6】
(10)
【0046】
3.1.5 エンコーダ側フィルタパラメータの決定プロセス
GALFについて全体的なエンコーダ決定プロセスが
図3に示されている。各CUのルマサンプルについて、エンコーダは、GALFが適用されるか否かを決定し、そして、適切な信号フラグがスライスヘッダに含まれる。クロマサンプルについて、フィルタを適用するか否かの決定は、CUレベルではなく、画像レベルに基づいて行われる。さらに、画像のクロマGALFは、画像についてルマGALFがイネーブルされている場合にだけチェックされる。
【0047】
4 VVCにおける幾何学的変換ベースの適応ループフィルタの例
VVCにおけるGALFの現在の設計は、JEMにおけるものと比較して、以下の主要な変化を有している。
1)適応フィルタの形状が除去される。ルマ成分については7×7のフィルタ形状だけが許可され、かつ、クロマ成分については5×5のフィルタ形状が許可される。
2)ALFパラメータの時間的予測および固定フィルタからの予測は、両方とも除去される。
3)各CTUに対して、ALFがイネーブルまたはディセーブルであろうとも、1ビットのフラグが信号化される。
4)分類インデックスの計算は、2×2ではなく、4×4レベルで行われる。加えて、JVET-L0147で提案されるように、ALF分類のためのサブサンプル・ラプラシアン計算法が利用される。より具体的には、1つのブロック内の各サンプルについて、水平/垂直/対角/135度勾配を計算する必要はない。代わりに、1:2サブサンプリングが利用される。
【0048】
5 AVS2における領域ベースの適応ループフィルタの例
ALFは、ループ内フィルタリングの最終段階である。このプロセスには、2つの段階(stages)がある。第1段階はフィルタ係数の導出である。フィルタ係数を訓練(train)するために、エンコーダは、ルマ成分の再構成されたピクセルを16領域へと分類し、そして、1セットのフィルタ係数が、各カテゴリについて、ウィナー-ホップ(wiener-hopf)方程式を使用し訓練され、元のフレームと再構成されたフレームとの間の平均二乗誤差を最小化する。これら16セットのフィルタ係数の間の冗長性を低減するために、エンコーダは、レート歪み性能(rate-distortion performance)に基づいて、それらを適応的にマージする。最大で、ルマ成分について16個の異なるフィルタセットが割り当てられ、そして、クロマ成分については1個だけが割り当てられ得る。第2段階は、フレームレベルおよびLCUレベルの両方を含む、フィルタ決定である。最初に、エンコーダは、フレームレベル適応ループフィルタリングが実行されるか否かを決定する。フレームレベルALFがオンである場合には、エンコーダは、さらに、LCUレベルALFが実行されるか否かを決定する。
【0049】
5.1 フィルタ形状
AVS-2で採用されるフィルタ形状は、ルマ成分とクロマ成分の両方について
図5にちょうど示されるように、3×3の正方形を重ね合わせた7×7の十字形である。
図5における各正方形は、サンプルに対応している。従って、位置C8のサンプルに対するフィルタ値を導出するために、合計17個のサンプルが使用される。係数を伝送するオーバヘッドを考慮して、点対称フィルタを、残された9個の係数{C0,C1,...,C8}だけに使用され、フィルタリングにおける乗算の数と同様に、フィルタ係数の数を半分まで削減する。点対称フィルタは、また、1つのフィルタリングされたサンプルに対する計算の半分を低減することができる。例えば、1つのフィルタリングされたサンプルについて9個の乗算および14個の加算だけである。
【0050】
5.2 領域ベースの適応型マージ
異なる
コード化誤差を適応させるために、AVS-2は、ルマ成分について領域ベースの複数適応ループフィルタを採用する。ルマ成分は、ほぼ等しいサイズの16個の基本領域に分割され、そこで、各基本領域は、
図6に示されるように、最大
コーディングユニット(largest coding unit、LCU)の境界と整列され、そして、各領域について1つのウィナーフィルタが導出される。より多くのフィルタを使用すると、より多くの歪みが低減されるが、これらの係数を符号化するために使用されるビットは、フィルタの数と共に増加する。最善のレート歪み性能を達成するために、これらの領域は、同じフィルタ係数を共有する、より少ない、より大きな領域へとマージすることができる。マージプロセスを単純化するために、画像の以前の相関に基づく修正ヒルベルト(Hilbert)順序に従って、各領域にインデックスを割り当てる。連続したインデックスを持つ2つの領域は、レート歪みコストに基づいてマージされ得る。
【0051】
領域間のマッピング情報はデコーダに対して信号化されるべきである。AVS-2では、基本領域の数がマージ結果を表すために使用され、そして、フィルタ係数は、その領域の順序に従って順次圧縮される。例えば、{0,1}、{2,3,4}、{5,6,7,8,9}、および左側の基本領域が、1つの領域へとそれぞれにマージされた場合、3つの整数だけがこのマージマップを表すようにコード化される。すなわち、2,3,5である。
【0052】
5.3 サイド情報のシグナル伝達
複数のスイッチフラグも、また、使用される。シーケンススイッチフラグ、adptive_loop_filter_enableは、適応ループフィルタがシーケンス全体について適用されるか否かを制御するために使用される。画像スイッチフラグ、picture_alf_enble[i]は、対応するi番目の画像コンポーネントについてALFが適用されるか否かを制御する。picture_alf_enble[i]が有効になっている場合にのみ、対応するLCUレベルのフラグ、および、その色成分のフィルタ係数が送信される。LCUレベルフラグ、lcu_alf_enable[k]は、対応するk番目のLCUについてALFがイネーブルであるか否かを制御し、そして、スライスデータへとインタリーブされる。異なるレベルで調整されるフラグの決定は、全て、レート歪みコストに基づいている。さらに、高いフレキシビリティにより、ALFは、コード化効率を大幅に改善する。
【0053】
いくつかの実施形態において、および、ルマ成分について、最大16セットのフィルタ係数が存在し得る。
【0054】
いくつかの実施形態において、および、各クロマ成分(CbおよびCr)について、1セットのフィルタ係数が伝送され得る。
【0055】
6 VTM-4におけるGALF
VTM4.0において、適応ループフィルタ(Adaptive Loop Filter)のフィルタリングプロセスは、以下のように実行される。
【数7】
(11)
【0056】
ここで、サンプルI(x+i,y+i)は入力サンプルであり、O(x,y)はフィルタリングされた出力サンプル(すなわち、フィルタ結果)であり、そして、w(i,j)はフィルタ係数を示している。実際に、VTM4.0では、固定小数点精度計算のために整数演算を使用して実装されている。
【数8】
(12)
【0057】
ここで、Lはフィルタ長を表し、そして、w(i,j)は固定小数点精度でのフィルタ係数である。
【0058】
7 非線形適応ループフィルタリング(ALF)
7.1 フィルタリング組成変更
式(11)は、コード化効率に影響を与えることなく、以下の式で組成変更され得る。
【数9】
(13)
【0059】
ここで、w(i,j)は、式(11)と同じフィルタ係数である[期待されるw(0,0)は式(13)における1に等しいが、一方で、式(11)における
【数10】
に等しい]。
【0060】
7.2 修正フィルタ
上記のフィルタ等式(13)を使用して、ALFをより効率的にするために、非線形性を容易に導入することができる。簡単なクリッピング関数を使用することによるものであり、フィルタリングされる現在のサンプル値(I(x,y))とあまりにも異なる場合に、隣接サンプル値(I(x+i,y+i))の影響を低減する。
【0061】
本提案では、ALFフィルタが以下のように修正される。
【数11】
(14)
【0062】
ここで、K(d,b)=min(b,max(-b,d))はクリッピング関数であり、そして、k(i,j)はクリッピングパラメータであり、(i,j)フィルタ係数に依存する。エンコーダは、最良のk(i,j)を見つけるために最適化を実行する。
【0063】
JVET-N0242実装では、各ALFフィルタについてクリッピングパラメータk(i,j)が指定され、フィルタ係数ごとに1つのクリッピング値が信号化される。これは、12個までのクリッピング値が、ルマフィルタごとにビットストリームで信号化され、かつ、クロマフィルタについて6個までのクリッピング値が信号化され得ることを意味する。
【0064】
信号化コストおよびエンコーダの複雑さを制限するために、筆者らはクリッピング値の評価を可能な値の小さなセットに制限した。提案では、インター(INTER)およびイントラ(INTRA)タイル群について同じである、4個の固定値のみを使用した。
【0065】
ローカル差異(local differences)の分散は、しばしば、クロマよりも、ルマについて大きいので、ルマフィルタおよびクロマフィルタについて2個の異なるセットを使用する。また、各セットに最大サンプル値(ここでは、10ビットのビット深度(bit-depth)について1024)を含め、これにより、必要がなければ、クリッピングはディセーブルされ得る。
【0066】
JVET-N0242試験で使用されたクリッピング値のセットが表2で提供されている。4個の値は、対数領域において、ルマについてはサンプル値の全範囲(10ビットで符号化)、そして、クロマについては4から1024の範囲を、ほぼ等しく分割することによって選択されている。
【0067】
より正確には、クリッピング値のルマテーブルは、以下の等式によって獲得される。
AlfClip
L=
【数12】
ここで、M=2
10、かつ、N=4
【0068】
同様に、クリッピング値のクロマテーブルは、以下の等式に従って獲得される。
AlfClip
L=
【数13】
ここで、M=2
10、N=4、かつ、A=4
【表2】
表2:許可されたクリッピング値
【0069】
選択されたクリッピング値は、上記表2のクリッピング値のインデックスに対応するゴロム(Golomb)符号化スキームを使用することによって、“alf_data”シンタック要素でコード化される。この符号化スキームは、フィルタインデックスのための符号化方式と同一である。
【0070】
8 JVET-M0427におけるループ内再形成(ILR)
ループ内再形成(in-loop reshaping、ILR)は、クロマスケーリングによるルママッピング(Luma Mapping with Chroma Scaling、LMCS)としても知られている。
【0071】
ループ内再形成(ILR)の基本的なアイデアは、元の(第1ドメインの)信号(予測/再構成信号)を第2ドメイン(再形成ドメイン)に変換することである。
【0072】
ループ内ルマ再形成は、ルックアップテーブル(LUT)のペアとして実装されるが、他方は信号化されたLUTから計算できるので、2個のLUTのうちの1個だけが信号化される必要がある。各LUTは一次元、10ビット、1024エントリマッピングテーブル(1D-LUT)である。一方のLUTは、前方(forward)LUT、FwdLUT、であり、入力ルマコード値Yiを変更された値Yr、すなわちYr=FwdLUT[Yi]にマッピングする。他方のLUTは、逆LUT、InvLUTであり、変更されたコード値YrをYi^、すなわちYi^=InvLUT[Yr]にマッピングする。(Yi^は、Yiの再構成値を表している。)
【0073】
8.1 PWLモデル
概念的には、区分ごとの(piece-wise)線形(PWL)は、以下のように実装される。
【0074】
x1、x2を2個の入力ピボット点とし、かつ、y1、y2を1個のピースについて対応する出力ピボット点とする。x1とx2との間の任意の入力値xに対する出力値yは、以下の等式によって補間され得る。
y=((y2-y1)/(x2-x1))*(x-x1)+y1
【0075】
固定小数点実装において、等式は、次のように書き換えることができる。
y=((m*x+2FP_PREC-1)>>FP_PREC)+c
【0076】
ここで、mはスカラー、cはオフセット、そして、FP_PRECは精度を指定するための定数値である。
【0077】
CE-12ソフトウェアにおいて、PWLモデルは1024エントリのFwdLUTおよびInvLUTマッピングテーブルを予め計算するために使用されるが、また、PWLモデルにより、LUTを予め計算することなく、実装がオンザフライで同一のマッピング値を計算することもできることに留意する。
【0078】
8.2 第4回VVC会議における試験CE12-2
8.2.1 ルマ再形成
ループ内ルマ再形成のテスト2(すなわち、提案におけるCE12-2)は、より複雑性の低いパイプラインを提供し、また、インタースライス再構成におけるブロックごとのイントラ予測のための復号化待ち時間(latency)も排除する。イントラ予測は、インタースライスおよびイントラスライスの両方について再形成ドメインにおいて実行される。
【0079】
イントラ予測は、スライスのタイプに関係なく、常に、再形成ドメインで実行される。そうした構成では、以前のTU再構成が行われた直後にイントラ予測を開始できる。そうした構成は、また、スライス依存である代わりに、イントラモードに対して統一されたプロセスを提供することもできる。
図7は、モードに基づくCE12-2復号プロセスのブロック図を示している。
【0080】
CE12-2は、また、CE12-1の32ピースPWLモデルの代わりに、ルマおよびクロマ残余(residue)スケーリングについて16ピースの区分ごとの線形(PWL)モデルも試験する。
【0081】
CE12-2におけるループ内ルマ再形成を用いたインタースライス再構成である(明るい影付きのブロックは、再形成されたドメインにおける信号を示している。ルマ残余、イントラルマ予測、およびイントラルマ再構成である。)
【0082】
8.2.2 ルマ依存クロマ残余スケーリング
ルマ依存クロマ残余スケーリング(luma-dependent chroma residue scaling)は、固定小数点整数演算を用いて実装される乗法プロセスである。クロマ残余スケーリングは、クロマ信号とのルマ信号の相互作用を補償する。クロマ残余スケーリングはTUレベルで適用される。具体的には、以下の通りである。
-イントラについて、再構成ルマが平均化される。
-インターについて、予測ルマが平均化される。
【0083】
平均値は、PWLモデルのインデックスを識別するために使用される。インデックスは、スケーリング係数cScaleInvを識別する。クロマ残余にその数を掛け算する。
【0084】
クロマスケーリング係数は、再構成されたルマ値ではなく、前方マップ(forward-mapped)で予測されたルマ値から計算されることに留意する。
【0085】
8.2.3 ILR側情報のシグナル伝達
パラメータは、(現在)タイル群ヘッダ(ALFと同様)において送信される。これらは40-100ビットを要すると言われている。以下の仕様は、JVET-L1001のバージョン9に基づいている。追加されたシンタックスは、イタリック体で以下に強調表示されている。
【表3】
【表4】
【表5】
一般シーケンスパラメータセットRBSPセマンティクス(General sequence parameter set RBSP semantics)において、以下のセマンティクスを追加する。
1に等しいsps_reshaper_enabled_flagは、コード化されたビデオシーケンス(CVS)においてリシェイパ(reshaper)が使用されることを指定する。
0に等しいsps_reshaper_enabled_flagは、CVSにおいてリシェイパが使用されないことを指定する。
タイル群・ヘッダシンタックス(tile group header syntax)において、以下のセマンティクスを追加する。
1に等しいtile_group_reshaper_model_present_flagは、tile_group_reshaper_model()がタイル群ヘッダ内に存在することを指定する。0に等しいtile_group_reshaper_model_present_flagは、tile_group_reshaper_model()がタイル群ヘッダ内に存在しないことを指定する。tile_group_reshaper_model_present_flagが存在しない場合は、0に等しいものと推定される。
1に等しいtile_group_reshaper_enabled_flagは、現在のタイル群についてリシェイパがイネーブルされていることを指定する。0に等しいtile_group_reshaper_enabled_flagは、現在のタイル群についてリシェイパがイネーブルされていないことを指定する。tile_group_resharper_enable_flagが存在しない場合は、0に等しいものと推定される。
1に等しいtile_group_reshaper_chroma_residual_scale_flagは、現在のタイル群についてクロマ残余スケーリングイネーブルされていることを指定する。0に等しいtile_group_reshaper_chroma_residual_scale_flagは、現在のタイル群でクロマ残余スケーリングがイネーブルされていないことを指定する。tile_group_reshaper_chroma_residual_scale_flagが存在しない場合は、0に等しいものと推定される。
tile_group_reshaper_model()シンタックスの追加
reshape_model_min_bin_idxは、リシェイパ構築プロセス(reshaper construction process)において使用される最小のビン(または、ピース)インデックスを指定する。reshape_model_min_bin_idxの値は、0からMaxBinIdxの範囲とする。MaxBinIdxの値は15に等しい。
reshape_model_delta_max_bin_idxは、リシェイパ構築プロセスにおいて使用される、最大許容ビン(または、ピース)であるインデックスMaxBinIdxから最大ビンインデックスを引いたものを指定する。reshape_model_max_bin_idxの値はMaxBinIdxマイナスreshape_model_delta_max_bin_idxに等しく設定される。
reshaper_model_bin_delta_abs_cw_pre_minus1プラス1は、シンタックスreshape_model_bin_delta_abs_CW[i]の表現について使用されるビット数を指定する。
reshape_model_bin_delta_abs_CW[i]は、i番目のビンについて絶対デルタコードワード値(absolute delta codeword value)を指定する。
reshaper_model_bin_delta_sign_CW_flag[i]は、reshape_model_bin_delta_abs_CW[i]の符号を以下のように指定する。
-reshape_model_bin_delta_sign_CW_flag[i]が0に等しい場合、対応する変数RspDeltaCW[i]は正の値である。
-それ以外の場合(reshape_model_bin_delta_sign_CW_flag[i]が0に等しくない)、対応する変数RspDeltaCW[i]は負の値である。
reshape_model_bin_delta_sign_CW_flag[i]が存在しない場合は、0に等しいものと推定される。
変数RspDeltaCW[i]=(1 2*reshape_model_bin_delta_sign_CW[i])*reshape_model_bin_delta_abs_CW[i];
変数RspCW[i]は、以下のステップのように導出される。
変数OrgCWは、(1<<BitDepthY)/(MaxBinIdx+1)に等しく設定される。
-reshaper_model_min_bin_idx<=i<=reshaper_model_max_bin_idxの場合
RspCW[i]=OrgCW+RspDeltaCW[i]
-それ以外の場合、RspCW[i]=0
RspCW[i]の値は、BitDepthYの値が10に等しい場合、32から2×OrgCW-1の範囲である。
0からMaxBinIdx+1の範囲のiを持つ変数InputPivot[i]は、次のように導出される。
InputPivot[i]=i*OrgCW
0からMaxBinIdx+1の範囲のiを持つ変数ReshapePivot[i]と、0からMaxBinIdxの範囲のiを持つ変数ScaleCoef[i]およびInvScaleCoeff[i]は、次のように導出される。
shiftY=4
ReshapePivot[0]=0;
for(i=0;i<=MaxBinIdx;i++){
ReshapePivot[i+1]=ReshapePivot[i]+RspCW[i]
ScaleCoef[i]=(RspCW[i]*(1<<shiftY)+(1<<(Log2(OrgCW)-1)))>>(Log2(OrgCW))
if(RspCW[i]==0)
InvScaleCoeff[i]=0
else
InvScaleCoeff[i]=OrgCW*(1<<shiftY)/RspCW[i]
}
0からBinIdxの範囲のiを持つ変数ChromaScaleCoef[i]は、次のように導出される。
ChromaResidualScaleLut[64]={16384,16384,16384,16384,16384,16384,16384,8192,8192,8192,8192,5461,5461,5461,5461,4096,4096,4096,4096,3277,3277,3277,3277,2731,2731,2731,2731,2341,2341,2341,2048,2048,2048,1820,1820,1820,1638,1638,1638,1638,1489,1489,1489,1489,1365,1365,1365,1365,1260,1260,1260,1260,1170,1170,1170,1170,1092,1092,1092,1092,1024,1024,1024,1024};
shiftC=11
-if(RspCW[i]==0)
ChromaScaleCoef[i]=(1<<shiftC)
-Otherwise(RspCW[i]!=0),ChromaScaleCoef[i]=ChromaResidualScaleLut[RspCW[i]>>1]
【0086】
8.2.4 ILRの使用
エンコーダ側では、各画像(または、タイル群)が最初に再形成ドメインへ変換される。そして、全てのコード化プロセスは、再形成されたドメインで実行される。イントラ予測について、隣接ブロックは再形成ドメイン内にあり、インター予測について、参照ブロック(復号された画像バッファからの元のドメインから生成されたもの)が、最初に再形成ドメインへ変換される。次いで、残余が生成され、そして、ビットストリームへコード化される。
【0087】
全体画像(または、タイル群)の符号化/復号化が終了した後で、再形成ドメイン内のサンプルは、元のドメインへ変換され、次いで、非ブロック化(deblocking)フィルタおよび他のフィルタが適用される。
【0088】
予測信号に対する前方再形成(forward reshaping)は、以下の場合についてディセーブルされる。
-現在ブロックがイントラコード化されている。
-現在ブロックがCPR(現在画像参照、別名イントラブロックコピー、IBC)としてコード化されている。
-現在のブロックが、結合インター-イントラモード(CIIP)としてコード化されており、かつ、イントラ予測ブロックについて前方再形成がディセーブルされている。
【0089】
9 既存の実装の欠点
JVET-N0242における非線形ALF(NLALF)設計は、以下の問題を有している。
(1)4:2:0カラーフォーマット用に設計されたものであること。4:4:4カラーフォーマットについて、ルマ成分とクロマ成分が同様に重要であり得ること。どのようにNLALFをより良好に適用するか不明であること。
(2)クリッピング値が10ビットの場合について設計されていること。他のビット深度について、どのようにNLALFを定義するか未だ研究されていないこと。
(3)ループ内再形成法とNLALFの相互作用は、研究されてきていないこと。
【0090】
10 非線形適応ループフィルタリングにおける改善のための例示的方法
ここで開示される技術の実施形態は、既存の実施形態の欠点を克服し、それによって、より高いコード化効率を有するビデオコーディングを提供する。非線形適応ループフィルタリングは、開示される技術に基づいて、既存の及び将来のビデオコーディング規格の両方を強化知るものであり、種々の実装について説明される以降の実施例において解明される。以下に提供される開示された技術の例は、一般的概念を説明するものであり、そして、限定的なものとして解釈されるように意図されたものではない。一つの例において、明示的に反対に示されない限り、これらの実施例において説明される種々の特徴を組み合わせることができる。
1.NLALFで使用されるパラメータ(例えば、表2で定義されたクリッピングパラメータ)は、コード化された情報に依存し得ることが提案されている。
a.NLALFで使用されるパラメータ(例えば、表2で定義されたクリッピングパラメータ)は、時間層インデックス/低遅延チェックフラグ/参照画像に依存し得ることが提案されている。
2.複数セットのNLALFパラメータが定義され、または、信号化され得る。
a.代替的に、さらに、複数セットのNLALFパラメータが信号化される場合、それらは適応パラメータセット(APS)/タイル群ヘッダ/ビデオデータユニットといった、データユニット(data unit)で信号化され得る。
b.一つの例では、NLALFパラメータは、予測的な方法で信号化される。
i.例えば、1つのデータユニット(APSまたはタイル群、もしくはスライス、といったもの)で信号化されたNLALFパラメータの1つのセットは、同じデータユニットで信号化された別のNLALFパラメータのセットによって予測される。
ii.例えば、1つのデータユニット(APSまたはタイル群、もしくはスライス、といったもの)で信号化されたNLALFパラメータの1つのセットは、別のデータユニットで信号化された別のNLALFパラメータのセットによって予測される。
3.NLALFで使用されるパラメータ(例えば、表2で定義されたクリッピングパラメータ)は、NLALFを適用する前に、再構成されたサンプルのビット深度に依存し得ることが提案される。
a.代替的に、NLALFで使用されるパラメータ(例えば、表2で定義されたクリッピングパラメータ)は、符号化/復号化される前に、サンプルの入力ビット深度に依存し得ることが提案されている。
b.一つの例では、所与のビット深度に対するパラメータは、他のビット深度に対して割り当てられたものから導出され得る。
i.一つの例では、1つの所与のビット深度に対するパラメータを導出するために、ビット深度に従ったシフト動作(shifting operation)が適用され得る。
4.NLALFで使用されるパラメータ(例えば、表2で定義されたクリッピングパラメータ)は、色表現フォーマット(color representation format)に依存し得ることが提案されている。
a.一つの例では、RGBの場合、G色成分について、および、B/R色成分について、同じインデックスを持つパラメータである。
5.NLALFで使用されるパラメータ(例えば、表2で定義されたクリッピングパラメータ)は、ループ内再形成(ILR)法が適用されるか否かに依存し得ることが提案されている。
a.一つの例では、ILRがイネーブルまたはディセーブルされている場合、パラメータが異なり得る。
6.フィルタパラメータ(フィルタ係数といったもの)およびNLALFパラメータ(クリッピングパラメータといったもの)を一緒に保管することが提案されている。
a.一つの例では、それらの両方がAPSに保管され得る。
b.一つの例では、1つのビデオデータユニット(例えば、CTU/領域/タイル群)が1つのAPSに関連するフィルタ係数を使用する場合、関連するNLALFパラメータも、また、使用され得る。
c.代替的に、1つのビデオデータユニット(例えば、CTU/領域/タイル群)に符号化/復号化について、1つのAPSに関連するフィルタ係数からの予測がイネーブルされている場合、関連するNLALFパラメータは、また、同じAPSからの1つのビデオデータユニットに対するNLALFパラメータを予測するためにも利用され得る。
7.クロマ色成分についてNLALFの扱い方は、カラーフォーマットに依存し得る。
a.1つの例では、(4:4:4といった)所与のカラーフォーマットについて、2つのクロマ成分が異なるNLALFパラメータを使用し得る。
8.ALFでのクリッピングは、シーケンスレベル、ピクチャレベル、スライスレベル、タイル群レベル、タイルレベル、CTUレベル、CUレベル、またはブロックレベルでオンまたはオフにされ得ることが提案されている。
a.例えば、ALFでクリッピングをオンにするか否かは、デコーダに信号化され得る。SPS、PPS、スライスヘッダ、タイル群ヘッダ、タイル、CTU、CU、またはブロックといったものである。
【0091】
上述の例は、以下に記載される方法、例えば、方法810から840、のコンテキストに組み込むことができ、ビデオデコーダまたはビデオエンコーダで実装され得る。
【0092】
図8Aは、ビデオ処理のための例示的な方法のフローチャートを示している。方法810は、ステップ812において、ビデオのビデオユニットを符号化ビデオユニットとして符号化するステップを含む。方法810は、さらに、ステップ813において、符号化ビデオユニットから再構成サンプルを生成するステップを含む。方法810は、さらに、ステップ814において、再構成サンプルに対してクリッピング動作を実行するステップを含む。ここで、クリッピング動作で使用されるクリッピングパラメータは、クリッピングインデックス、および、再構成サンプルのビット深度またはビデオユニットのサンプルのビット深度に係る関数である。方法810は、さらに、ステップ815において、クリッピング動作の出力に対して非線形適応ループフィルタを適用するステップを含む。方法810は、さらに、ステップ816において、符号化ビデオユニットを使用して、ビデオのコード化表現を生成するステップを含む。
【0093】
図8Bは、ビデオ処理のための例示的な方法のフローチャートを示している。この方法820は、ステップ822において、ビデオのビデオユニットを表す
符号化ビデオユニットのためのビデオのコード化表現を解析するステップを含む。方法820は、ステップ823において、符号化ビデオユニットからビデオユニットの再構成サンプルを生成することをさらに含む。方法820は、ステップ824において、再構成サンプルに対してクリッピング動作を実行するステップを含み、クリッピング動作で使用されるクリッピングパラメータは、クリッピングインデックスおよび再構成サンプルのビット深度またはビデオユニットのビット深度の関数である。この方法820はさらに、ステップ825において、非線形適応ループフィルタをクリッピング動作の出力に適用して、最終的な復号ビデオユニットを生成するステップを含む。
【0094】
図8Cは、ビデオ処理のための例示的な方法のフローチャートを示している。方法830は、ステップ832において、1つ以上のビデオ領域を含むビデオのコード化表現と、ビデオとの間の変換を実行するステップを含む。方法830は、さらに、ステップ834において、非線形適応ループフィルタを使用して、ビデオ領域のビデオユニットの再構成をフィルタリングするためのクリッピングパラメータを決定するステップを含む。いくつかの実施態様において、決定は、ビデオ、及び/又は、ビデオ領域、及び/又は、ビデオユニットのコード化情報に基づいている。いくつかの実装において、クリッピングパラメータは色表現フォーマットの関数である。いくつかの実装において、クリッピングパラメータは、第1ドメインおよび第2ドメインにおけるビデオユニットの表現、及び/又は、クロマビデオユニットのクロマ残余のスケーリングに基づいて、前記ビデオユニットを再構成するためにループ内再形成(ILR)が適用されるか否かに依存する。
【0095】
図9は、ビデオ処理のための例示的方法のフローチャートを示している。方法840は、1つ以上のビデオ領域を含むビデオのコード化表現と、ビデオとの間の変換を実行するステップを含む。いくつかの実装において、コード化表現は、非線形適応ループフィルタを使用してビデオ領域のビデオユニットの再構成をフィルタリングするためのクリッピングパラメータを提供する第1側面情報を含み、第1側面情報は、非線形適応ループフィルタにおいて使用されるフィルタ係数を示している第2側面情報と共に信号化される。いくつかの実装において、コード化表現は、非線形適応ループフィルタを使用して、ビデオ領域のビデオユニットの再構成をフィルタリングするためのクリッピングパラメータの複数のセットを示している側面情報を含む。いくつかの実装において、コード化表現は、非線形適応ループフィルタを使用して、ビデオ領域のクロマビデオユニットの再構成をフィルタリングするための1つ以上のクリッピングパラメータを提供する側面情報を含み、1つ以上のクリッピングパラメータはカラーフォーマットに依存する。いくつかの実装において、コード化表現は、適応ループフィルタを使用してビデオ領域のビデオユニットの再構成をフィルタリングするためのクリッピングパラメータを提供する側面情報を含む。ここで、実行するステップは、ビデオ領域レベルでの差異をサンプリングするためにクリッピング動作を適用することによって、フィルタリングされたビデオユニットを生成するステップを含む。
【0096】
11 開示される技術の実施例
図10Aは、ビデオ処理装置900のブロック図である。装置900は、ここにおいて記載される1つ以上の方法を実装するために使用され得る。装置900は、スマートフォン、タブレット、コンピュータ、モノのインターネット(Internet of Things、IoT)受信器、などで具体化することができる。装置900は、1つ以上のプロセッサ902、1つ以上のメモリ904、および、ビデオ処理ハードウェア906を含み得る。プロセッサ902は、本文書に記載される1つ以上の方法(方法800を含むが、これに限定されない)を実装するように構成され得る。メモリ(メモリ)904は、ここにおいて記載される方法および技術を実施するために使用されるデータおよびコードを保管するために使用され得る。ビデオ処理ハードウェア906は、ハードウェア回路において、本文書に記載されるいくつかの技術を実装するために使用され得る。
【0097】
図10Bは、開示される技術を実装することができるビデオ処理システムのブロック図の別の例である。
図10Bは、ここにおいて開示される様々な技術が実装され得る例示的なビデオ処理システム4100を示しているブロック図である。様々な実装は、システム4100の構成要素の一部または全部を含み得る。システム4100は、ビデオコンテンツを受信するための入力4102を含み得る。ビデオコンテンツは、生または非圧縮フォーマット、例えば、8または10ビットの多成分画素値で受信されてよく、または、圧縮または符号化フォーマットで受信されてもよい。入力4102は、ネットワークインターフェイス、周辺バスインターフェイス、または、ストレージインターフェイスを表すことができる。ネットワークインターフェイスの例は、イーサネット、受動光ネットワーク(PON)、等といった有線インターフェイス、および、Wi-Fiまたはセルラーインターフェイスといった無線インターフェイスを含む。
【0098】
システム4100は、本文書に記載される種々のコード化または符号化方法を実装し得るコード化構成要素4104を含んでよい。コード化構成要素4104は、入力4102からコード化構成要素4104の出力へのビデオの平均ビットレートを低減して、ビデオのコード化表現を生成し得る。従って、コード化技術は、ときどき、ビデオ圧縮またはビデオトランスコード化(video transcoding)技術と呼ばれている。コード化構成要素4104の出力は、構成要素4106によって表されるように、保管されるか、または、接続された通信を介して送信されてよい。入力4102で受信されたビデオの保管または通信されたビットストリーム(またはコード化された)表現は、ディスプレイインターフェイス4110に送信される画素値または表示可能なビデオを生成するために、構成要素4108によって使用されてもよい。ビットストリーム表現からユーザが見ることができるビデオを生成するプロセスは、ビデオ解凍(video decompression)と呼ばれ得る。さらに、特定のビデオ処理動作は、「コード化(“coding”)」動作またはツールと称され、一方で、コード化ツールまたは動作は、エンコーダで使用され、そして、コード化の結果を反転する対応する復号化ツールまたは動作は、デコーダで実行されることが理解されるだろう。
【0099】
ペリフェラルバスインターフェイスまたはディスプレイインターフェイスの例は、ユニバーサルシリアルバス(USB)、または、高精細度マルチメディアインターフェイス(HDMI(登録商標))、もしくは、ディスプレイポート、などを含み得る。ストレージインターフェイスの例は、SATA(serial advanced technology attachment)、PCI、IDEインターフェイス、などを含み得る。ここにおいて記載される技術は、携帯電話、ラップトップ、スマートフォン、または、デジタルデータ処理及び/又はビデオ表示を実行することができる他の装置といった、種々の電子装置において具体化され得る。
【0100】
開示される技術のいくつかの実施形態は、ビデオ処理ツールまたはモードを可能にする決定または判定を行うことを含む。一つの例では、ビデオ処理ツールまたはモードがイネーブルされている場合、エンコーダは、ビデオのブロックの処理においてツールまたはモードを使用または実装するが、必ずしもツールまたはモードの使用に基づいて結果として生じるビットストリームを修正しなくてよい。すなわち、ビデオのブロックからビデオのビットストリーム表現への変換は、決定または判定に基づいて可能にされたとき、ビデオ処理ツールまたはモードを使用する。別の例では、ビデオ処理ツールまたはモードがイネーブルされている場合、デコーダは、ビットストリームがビデオ処理ツールまたはモードに基づいて修正されたことを知って、ビットストリームを処理する。すなわち、ビデオのビットストリーム表現からビデオのブロックへの変換は、決定または判定に基づいてイネーブルされたビデオ処理ツールまたはモードを使用して実行される。
【0101】
開示される技術のいくつかの実施形態は、ビデオ処理ツールまたはモードをディセーブルにする決定または判定を行うことを含む。一つの例では、ビデオ処理ツールまたはモードがディセーブルされている場合に、エンコーダは、ビデオのブロックをビデオのビットストリーム表現に変換する際に、ツールまたはモードを使用しない。別の例では、ビデオ処理ツールまたはモードがディセーブルされている場合、デコーダは、ビットストリームが、決定または判定に基づいてディセーブルされたビデオ処理ツールまたはモードを使用して修正されていないこと知って、ビットストリームを処理する。
【0102】
本文書において、「ビデオ処理(“video processing”)という用語は、ビデオエンコーディング、ビデオデコーディング、ビデオ圧縮またはビデオ解凍を指すことができる。例えば、ビデオ圧縮アルゴリズムは、ビデオの画素表現から対応するビットストリーム表現への変換の最中に適用されてよく、また、その逆も同様である。現在ビデオブロックのビットストリーム表現は、例えば、シンタックスによって定義されるように、ビットストリーム内の異なる場所に同時配置されるか、または、拡散されるビットに対応し得る。例えば、マクロブロックは、変換され、かつ、コード化されたエラー残余値の観点から符号化され、かつ、ビットストリーム内のヘッダおよび他のフィールド内のビットを使用してコード化されてよい。
【0103】
いくつかの実施形態において、
ビデオコーディング方法は、
図10Aまたは10Bに関して説明したようなハードウェアプラットフォーム上に実装される装置を使用して、実装され得る。
【0104】
様々な技術および実施形態が、以下の条項ベースの(clause-based)フォーマットを使用して説明され得る。
【0105】
条項の第1セットは、以前のセクションで列挙された開示される技術に係る所定の特徴および態様を記述する。
【0106】
1.現在のビデオブロックのコード化情報に基づいて、前記現在のビデオブロックのためのパラメータのセットを決定するステップと、前記パラメータのセットを使用して非線形フィルタリング動作を実行するステップに基づいて、前記現在のビデオブロックを対応するビットストリーム表現から再構成するステップとを含む、ビデオ処理のための方法。
【0107】
2.前記非線形フィルタリング動作は、非線形適応ループフィルタリングを含む、第1条項に記載の方法。
【0108】
3.前記パラメータのセットは、現在のビデオブロックのルマ成分またはクロマ成分に対する少なくとも1つのクリッピング値を含む、第1条項または第2条項に記載の方法。
【0109】
4.前記非線形フィルタリング動作は、前記クロマ成分のカラーフォーマットに基づく、第3条項に記載の方法。
【0110】
5.前記コード化情報は、時間層インデックス、低遅延チェックフラグ、または1つ以上の参照画像を含む、第1条項乃至第3条項のいずれかに記載の方法。
【0111】
6.前記コード化情報は、前記非線形フィルタリング動作の前のビット深度の再構成されたサンプルを含む、第1条項乃至第3条項のいずれかに記載の方法。
【0112】
7.前記コード化情報が、カラー表現形式を含む、第1条項乃至第3条項のいずれかに記載の方法。
【0113】
8.前記コード化情報が、ループ内再形成法を適用する表示を含む、第1条項乃至第3条項のいずれかに記載の方法。
【0114】
9.前記対応するビットストリーム表現は、前記パラメータセットを含む複数セットのパラメータを含み、前記複数セットのパラメータは、適応パラメータセット(APS)、タイル群ヘッダ、または1つ以上のビデオデータユニットで信号化される、第1条項乃至第3条項のいずれかに記載の方法。
【0115】
10.前記対応するビットストリーム表現は、前記パラメータのセットと、前記非線形フィルタリング動作に関連する1つ以上のフィルタ係数とを含む適応パラメータセットを含む、第1条項乃至第3条項のいずれかに記載の方法。
【0116】
11.前記パラメータのセットは、1つ以上のクリッピング値を含み、前記非線形フィルタリング動作は、シーケンスレベル、ピクチャレベル、スライスレベル、タイル群レベル、タイルレベル、コーディングツリーユニットレベル、コーディングユニットレベル、またはブロックレベルで実行される、第1条項または第2条項に記載の方法。
【0117】
12.プロセッサと、その上に命令を有する非一時的メモリとを備えるビデオシステム内の装置であって、前記プロセッサによる実行の際に、前記命令によって、前記プロセッサは、第1条項から第11条項までのいずれか1つにおいて前記方法を実行させる、装置。
【0118】
13.非一時的なコンピュータ読取り可能媒体に保管されたコンピュータプログラム製品であって、第1条項から第11条項までのいずれかに記載の方法を実行するためのプログラムコードを含むコンピュータプログラム製品。
【0119】
条項の第2セットは、以前のセクションで列挙された開示される技術に係る所定の特徴および態様を記述する。例えば、実施例1および実施例3-5を含んでいる。
【0120】
1.ビデオのビデオユニットを符号化ビデオユニットとして符号化するステップと、前記符号化ビデオユニットから再構成サンプルを生成するステップと、前記再構成サンプルに対してクリッピング演算を行うステップであって、前記クリッピング演算に使用されるクリッピングパラメータは、クリッピング指数及び前記再構成サンプルのビット深度又は前記ビデオユニットのサンプルのビット深度の関数である、ステップと、非線形適応ループフィルタを前記クリッピング演算の出力に適用するステップと、前記符号化ビデオユニットを使用して前記ビデオのコード化表現を生成するステップと、を含む、ビデオ処理方法。
【0121】
2.第1条項に記載の方法であって、前記クリッピングインデックスは、前記コード化表現において信号化されることを特徴とする方法。
【0122】
3.ビデオのビデオユニットを表す符号化ビデオユニットに対するビデオのコード化表現を解析するステップと、前記符号化ビデオユニットから前記ビデオユニットの再構成サンプルを生成するステップと、前記再構成サンプルに対するクリッピング演算を実行するステップであって、前記クリッピング演算で使用されるクリッピングパラメータは、クリッピングインデックス及び前記再構成サンプルのビット深度又は前記ビデオユニットのビット深度の関数である、ステップと、最終的な復号化ビデオユニットを生成するために、前記クリッピング演算の出力に非線形適応ループフィルタを適用するステップと、を含むビデオ処理方法。
【0123】
4.第3条項に記載の方法であって、前記クリッピングインデックスは、少なくとも、前記コード化表現におけるフィールドに基づいて決定される、方法。
【0124】
5.前記クリッピングインデックスは、事前に定義されたルールを使用して決定される、第3条項に記載の方法。
【0125】
6.前記クリッピングインデックス及び前記再構成サンプルのビット深度又は前記ビデオユニットのビット深度の関数は、前記再構成サンプルのビット深度又は前記ビデオユニットのビット深度に基づいて、前記クリッピングインデックスの所与の値に対して異なる値を返すようなものである、第1条項または第3条項に記載の方法。
【0126】
7.クリッピングインデックスとクリッピングパラメータとの間のマッピングは、再構成サンプルのビット深度またはビデオユニットのビット深度に依存する、第1条項または第3条項に記載の方法。
【0127】
8.所与のビット深度に対する第1のクリッピングインデックスに対応する第1のクリッピング値は、別のビット深度に対する第2のクリッピングインデックスに対応する第2のクリッピング値に基づいて導出される、第1条項または第3条項に記載の方法。
【0128】
9.別のビット深度を使用するシフト演算が、与えられたビット深度に対するクリッピングパラメータを導出するために適用される、第8条項に記載の方法。
【0129】
10.前記コード化表現は、前記非線形適応ループフィルタにおいて使用される2つのサンプル差の上限又は下限を制御するクリッピングパラメータを含む、第1条項乃至第9条項のいずれかに記載の方法。
【0130】
11.1つ以上のビデオ領域を含むビデオのコード化表現と前記ビデオとの間の変換を実行するステップと、非線形適応ループフィルタを使用して、ビデオ領域のビデオユニットの再構成をフィルタリングするためのクリッピングパラメータを決定するステップとを含み、前記決定は、前記ビデオ及び/又は前記ビデオ領域及び/又は前記ビデオユニットのコード化情報に基づいて行われることを特徴とするビデオ処理方法。
【0131】
12.前記コード化情報は、時間層インデックスを含む、第11条項に記載の方法。
【0132】
13.前記コード化情報は、低遅延チェックフラグを含む、第11条項に記載の方法。
【0133】
14.前記コード化情報は、1つ以上の参照画像を含む、第11条項に記載の方法。
【0134】
15.前記ビデオ領域は、ビデオ画像を含む、第11条項乃至第14条項のいずれかに記載の方法。
【0135】
16.前記ビデオユニットが符号化ユニットを備える、第11条項乃至第14条項のいずれかに記載の方法。
【0136】
17.クリッピングパラメータが、非線形適応ループフィルタで使用される2つのサンプル差の上限または下限を制御する、第11条項乃至第16条項のいずれかに記載の方法。
【0137】
18.1つ以上のビデオ領域を含むビデオのコード化表現と前記ビデオとの間の変換を実行するステップと、非線形適応ループフィルタを使用して、ビデオ領域のビデオユニットの再構成をフィルタリングするためのクリッピングパラメータを決定するステップとを含み、前記クリッピングパラメータは、カラー表現形式の関数である、ビデオ処理方法。
【0138】
19.RGBカラーフォーマットについて、クリッピングパラメータは、緑色成分および青色または赤色成分について同じインデックスを有する、第18条項に記載の方法。
【0139】
20.1つ以上のビデオ領域を含むビデオのコード化表現と前記ビデオとの間の変換を実行するステップと、非線形適応ループフィルタを使用して、ビデオ領域のビデオユニットの再構成をフィルタリングするためのクリッピングパラメータを決定するステップとを含み、前記クリッピングパラメータは、第1のドメインおよび第2のドメインにおける前記ビデオユニットの表現、及び/又は、クロマビデオユニットのクロマ残余に基づいて、前記ビデオユニットを再構成するためにループ内再形成が適用されるか否かに依存する、ビデオ処理方法。
【0140】
21.クリッピングパラメータが、ビデオユニットのルマ成分またはクロマ成分のクリッピング値に対応する、第1条項乃至第21条項のいずれかに記載の方法。
【0141】
22.前記方法は、前記変換中に、前記非線形適応ループフィルタを前記ビデオユニットの再構成に適用し、前記フィルタリングされたビデオユニットを前記ビデオの別のビデオユニットの予測を決定するために使用することによって、フィルタリングされたビデオユニットを生成することをさらに含む、第1条項乃至第21条項のいずれかに記載の方法。
【0142】
23.前記変換の実行は、前記ビデオから前記コード化表現を生成することを含む、第1条項乃至第22条項のいずれかに記載の方法。
【0143】
24.前記変換の実行は、前記コード化表現から前記ビデオを生成することを含む、第1条項乃至第22条項のいずれかに記載の方法。
【0144】
25.プロセッサと、その上に命令を有する非一時的メモリとを備えるビデオシステム内の装置であって、前記プロセッサによる実行の際に、前記命令は、前記プロセッサに、第1条項乃至第24条項のいずれかに記載の方法を実行させる、装置。
【0145】
26.非一時的なコンピュータ読取り可能媒体に保管されたコンピュータプログラム製品であって、第1条項乃至第24条項のいずれかに記載の方法を実行するためのプログラムコードを含むコンピュータプログラム製品。
【0146】
条項の第3セットは、以前のセクションで列挙された開示される技術に係る所定の特徴および態様を記述する。例えば、実施例2および実施例6-8を含んでいる。
【0147】
1つ以上のビデオ領域を含むビデオのコード化表現と前記ビデオとの間で変換を実行するステップを含み、前記コード化表現は、非線形適応ループフィルタを使用してビデオ領域のビデオユニットの再構成をフィルタリングするためのクリッピングパラメータを提供する第1側面情報を含み、前記第1側面情報は、前記非線形適応ループフィルタにおいて使用されるフィルタ係数を示している第2側面情報と共に信号化されることを特徴とするビデオ処理方法。
【0148】
2.前記第1側面情報及び前記第2側面情報は、同一の適応パラメータセット内で信号化される、第1条項に記載の方法。
【0149】
3.適応パラメータセットに関連する前記フィルタ係数の少なくとも一部がビデオデータユニットによって使用される場合、前記適応パラメータセットに関連するクリッピングパラメータもまた、前記ビデオデータユニットによって使用される、第1条項に記載の方法。
【0150】
4.適応パラメータセットに関連する前記フィルタ係数のうちの少なくともいくつかからの予測がビデオデータユニットの変換のために有効である場合、前記適応パラメータセットに関連する前記パラメータが、前記適応パラメータセットから別のビデオデータユニットのための別のパラメータを予測するために使用される、第1条項に記載の方法。
【0151】
5.前記ビデオデータユニットは、コーディングツリーユニット、ビデオ領域、またはタイル群である、第3条項または第4条項に記載の方法。
【0152】
6.前記パラメータが、前記ビデオユニットのルマ成分またはクロマ成分のクリッピング値に対応する、第1条項乃至第5条項のいずれかに記載の方法。
【0153】
7.1つ以上のビデオ領域を含むビデオのコード化表現と前記ビデオとの間で変換を実行するステップを含み、前記コード化表現は、非線形適応ループフィルタを使用してビデオ領域のビデオユニットの再構成をフィルタリングするためのクリッピングパラメータの複数のセットを示している側面情報を含む、ビデオ処理方法。
【0154】
8.前側面情報は、前記複数セットのクリッピングパラメータを含む、第7条項に記載の方法。
【0155】
9.前記クリッピングパラメータの複数セットは、エンコーダ及びデコーダに知られており、前記サイド情報は、前記クリッピングパラメータの複数セットのうちの1つ又は複数のインデックスを含む、第7条項に記載の方法。
【0156】
10.前記クリッピングパラメータの前記複数のセットは、ビデオデータユニットまたは前記ビデオユニットのヘッダに含まれる、第7条項に記載の方法。
【0157】
11.前記ビデオデータユニットは、適応パラメータセット、タイル群、またはスライスを含む、第10条項に記載の方法。
【0158】
12.第8条に記載の方法であって、データユニット内で信号化されるクリッピングパラメータの複数の組のうちの1組は、データユニット内で信号化されるクリッピングパラメータの別の組によって予測される方法。
【0159】
13.第7条項に記載の方法であって、データユニット内で信号化されるクリッピングパラメータの複数のセットのうちの1つのセットは、別のデータユニット内で信号化されるクリッピングパラメータの別のセットによって予測される方法。
【0160】
14.1つ以上のビデオ領域を含むビデオのコード化表現と前記ビデオとの間で変換を実行するステップを含み、前記コード化表現は、非線形適応ループフィルタを使用して、ビデオ領域のクロマビデオユニットの再構成をフィルタリングするための1つ以上のクリッピングパラメータを提供するサイド情報を含み、前記1つ以上のクリッピングパラメータは、カラーフォーマットに依存する、ビデオ処理方法。
【0161】
15.特定のカラーフォーマットに対して、2つのクロマ成分が異なるクリッピングパラメータを使用する、第14条項に記載の方法。
【0162】
16.特定のカラーフォーマットが4:4:4である、第15条項に記載の方法。
【0163】
17.前記方法は、前記変換中に、前記非線形適応ループフィルタを前記ビデオユニットの再構成に適用し、前記フィルタリングされたビデオユニットを前記ビデオユニットの別のビデオユニットの予測を決定するために使用することによって、フィルタリングされたビデオユニットを生成することをさらに含む、第1条項乃至第16条項のいずれかに記載の方法。
【0164】
18.1つ以上のビデオ領域を含むビデオのコード化表現と前記ビデオとの間で変換を実行するステップを含み、前記コード化表現は、適応ループフィルタを使用してビデオ領域のビデオユニットの再構成をフィルタリングするためのクリッピングパラメータを提供する側面情報を含み、前記実行するステップは、ビデオ領域レベルでの差異をサンプリングするためにクリッピング動作を適用することによってフィルタリングされたビデオユニットを生成するステップを含むビデオ処理方法。
【0165】
19.前記ビデオ領域レベルは、シーケンスレベル、ピクチャレベル、スライスレベル、タイル群レベル、タイルレベル、コーディングツリーユニットレベル、コーディングユニットレベル、またはブロックレベルである、第18条項に記載の方法。
【0166】
20.前記クリッピング動作を可能にするための表示は、シーケンスパラメータセット、画像パラメータセット、スライスヘッダ、タイル群ヘッダ、タイル、コーディングツリーユニット、コーディングユニット、またはブロック内で信号化される、第18条項に記載の方法。
【0167】
21.前記ビデオ領域は、ビデオ画像である、第1条項乃至第20条項のいずれかに記載の方法。
【0168】
22.前記ビデオユニットが、コーディングユニット、変換ユニット、スライス、コーディングツリー、またはコーディングツリー行である、第1条項乃至第20条項のいずれかに記載の方法。
【0169】
23.前記変換の実行は、前記現在のブロックから前記コード化表現を生成することを含む、第1条項乃至第22条項のいずれかに記載の方法。
【0170】
24.前記変換の実行は、前記コード化表現から前記現在のブロックを生成することを含む、第1条項乃至第22条項のいずれかに記載の方法。
【0171】
25.プロセッサと、その上に命令を有する非一時的メモリとを備えるビデオシステム内の装置であって、前記プロセッサによる実行の際に、前記命令は、前記プロセッサに、第1条項乃至第24条項のいずれかに記載の方法を実行させる、装置。
【0172】
26.非一時的なコンピュータ読取り可能媒体に保管されたコンピュータプログラム製品であって、第1条項乃至第24条項のいずれかに記載の方法を実行するためのプログラムコードを含むコンピュータプログラム製品。
【0173】
以上から、ここにおいて、説明の目的で、本開示の技術の特定の実施形態を説明したが、本発明の範囲を逸脱することなく、種々の修正を行うことができることが理解されるだろう。従って、現在開示されている技術は、添付の特許請求の範囲による場合を除き、限定されない。
【0174】
この特許文献に記載されている技術的事項の実装および機能動作は、ここにおいて開示されている構造およびそれらの構造的等価物を含む、種々のシステム、デジタル電子回路、またはコンピュータソフトウェア、ファームウェア、もしくはハードウェアにおいて、または、それらの1つ以上の組み合わせにおいて実施することができる。ここにおいて説明される技術的事項の実装は、1つ以上のコンピュータプログラム製品、すなわち、データ処理装置による、または、データ処理装置の動作を制御するための、有形および非一時的なコンピュータ読取り可能媒体上に符号化されたコンピュータプログラム命令の1つ以上のモジュールとして実装することができる。コンピュータ読取可能媒体は、マシンで読取可能ストレージ装置、マシンで読取可能ストレージ基板、メモリ装置、マシンで読取可能伝搬信号に影響を与える事項の組成、または、それらの1つ以上の組み合わせであり得る。用語「データ処理ユニット」または「データ処理装置」は、例えば、プログラマブルプロセッサ、コンピュータ、もしくは、複数のプロセッサまたはコンピュータを含む、データを処理するための全ての装置、装置、およびマシンを包含する。装置は、ハードウェアに加えて、問題のコンピュータプログラムの実行環境を生成するコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、または、それらの1つ以上の組み合わせを構成するコードを含むことができる。
【0175】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、または、コードとしても知られるもの)は、コンパイルまたは解釈された言語を含む、任意の形態のプログラミング言語で書くことができ、それは、スタンドアロンプログラムとして、またはコンピューティング環境での使用に適したモジュール、コンポーネント、サブルーチン、または他のユニットとしてのものを含む、任意の形態で展開することができる。コンピュータプログラムは、必ずしもファイルシステム内のファイルに対応するものではない。プログラムは、他のプログラムまたはデータを保持するファイルの一部分(例えば、マークアップ言語文書に保管される1つ以上のスクリプト)、問題のプログラム専用の単一ファイル、または、複数の調整されたファイル(例えば、1つ以上のモジュール、サブプログラム、またはコードの一部分を保管するファイル)に保管することができる。コンピュータプログラムは、1つのコンピュータまたは1つのサイトに配置されるか、または、複数のサイトに分散され、通信ネットワークによって相互接続される複数のコンピュータ上で実行されるように展開することができる。
【0176】
ここにおいて説明されるプロセスおよび論理フローは、入力データ上で動作し、出力を生成することによって機能を実行するために、1つ以上のコンピュータプログラムを実行する1つ以上のプログラマブルプロセッサによって実行することができる。プロセスおよび論理フローは、また、フィールドプログラマブルゲートアレイ(FPGA)または特定用途向け集積回路(ASIC)のような特殊目的論理回路によって実行することができ、装置も、また、実行することができる。
【0177】
コンピュータプログラムの実行に適したプロセッサは、例えば、汎用および専用マイクロプロセッサの両方、および、任意の種類のデジタルコンピュータの任意の1つ以上のプロセッサを含む。一般的に、プロセッサは、読み出し専用メモリまたはランダムアクセスメモリ、もしくは、その両方から命令およびデータを受信する。コンピュータの必須要素は、命令を実行するためのプロセッサと、命令およびデータを保管するための1つ以上のメモリデバイスである。一般的に、コンピュータは、また、データを保管するための1つ以上の大容量ストレージ装置、例えば、磁気ディスク、磁気光ディスク、または、光ディスクにデータを受信したり、データを転送したりするために動作可能に結合される。しかし、コンピュータは、そのような装置を有する必要はない。コンピュータプログラム命令およびデータを保管するのに適したコンピュータ読取可能媒体は、例えば、EPROM、EEPROM、および、フラッシュメモリデバイスのような半導体メモリデバイスを含む、あらゆる形態の不揮発性メモリ、媒体、または、メモリデバイスを含む。プロセッサおよびメモリは、特殊目的論理回路によって補足されるか、または、内蔵され得る。
【0178】
本明細書は、図面と共に、単なる例示であるみなされるように意図されており、ここで、例示は実施例を意味する。ここにおいて使用されるように、単数形「a」、「an、」および「the」は、コンテキストが他に明確に示さない限り、複数形も含むように意図されている。さらに、「or」の使用は、コンテキストが他に明確に示さない限り、「and/or」を含むように意図されている。
【0179】
この特許文献には多くの詳細が含まれているが、これらは、いずれかの発明の範囲または特許請求されることができるものを限定するものではなく、特定の発明の特定の実施形態に特有の特徴の説明として解釈されるべきである。別々の実施形態のコンテキストでこの特許文献に記載されている特定の特徴は、単一の実施形態で組み合わせて実施され得る。反対に、単一の実施形態のコンテキストにおいて説明される種々の特徴は、複数の実施形態において別々に、または、任意の適切なサブコンビネーションで実施され得る。さらに、特徴は、特定の組み合わせにおいて作用するものとして上述され、最初にそのように請求され得るが、請求された組み合わせからの1つ以上の特徴は、場合によって、組み合わせから切り取られてよく、請求された組み合わせは、サブコンビネーションまたはサブコンビネーションのバリエーションに向けられ得る。
【0180】
同様に、図面には特定の順序で動作が示されているが、これは、所望の結果を達成するために、このような動作を特定の順序または連続的な順序で実行すること、もしくは、例示された全ての動作を実行することを要求するものとして理解されるべきではない。さらに、この特許文献に記載されている実施形態における種々のシステム構成要素の分離は、全ての実施形態においてそうした分離を必要とするものとして理解されるべきではない。
【0181】
少数の実装および実施例のみが記述されており、そして、他の実施形態、拡張、および変形が、この特許文献に記載され、説明されている内容に基づいて行われ得る。