(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-03-05
(54)【発明の名称】成分間サンプル適応オフセットにおけるコーディングの強化
(51)【国際特許分類】
H04N 19/117 20140101AFI20240227BHJP
H04N 19/136 20140101ALI20240227BHJP
H04N 19/182 20140101ALI20240227BHJP
H04N 19/82 20140101ALI20240227BHJP
【FI】
H04N19/117
H04N19/136
H04N19/182
H04N19/82
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023552481
(86)(22)【出願日】2022-03-16
(85)【翻訳文提出日】2023-08-29
(86)【国際出願番号】 US2022020588
(87)【国際公開番号】W WO2022197828
(87)【国際公開日】2022-09-22
(32)【優先日】2021-03-18
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-03-22
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】521248394
【氏名又は名称】ベイジン、ターチア、インターネット、インフォメーション、テクノロジー、カンパニー、リミテッド
【氏名又は名称原語表記】BEIJING DAJIA INTERNET INFORMATION TECHNOLOGY CO.,LTD.
(74)【代理人】
【識別番号】100120031
【氏名又は名称】宮嶋 学
(74)【代理人】
【識別番号】100107582
【氏名又は名称】関根 毅
(74)【代理人】
【識別番号】100217940
【氏名又は名称】三並 大悟
(72)【発明者】
【氏名】クオ、チョー-ウェイ
(72)【発明者】
【氏名】シウ、シャオユー
(72)【発明者】
【氏名】チェン、ウェイ
(72)【発明者】
【氏名】ワン、シャンリン
(72)【発明者】
【氏名】チェン、イ-ウェン
(72)【発明者】
【氏名】チュー、ホン-チェン
(72)【発明者】
【氏名】ユー、ビン
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159LC09
5C159MA04
5C159MA05
5C159MA21
5C159MC11
5C159ME01
5C159PP15
5C159PP16
5C159RC12
5C159TA68
5C159TB10
5C159TC02
5C159TC06
5C159UA02
5C159UA05
5C159UA16
(57)【要約】
電子装置が、ビデオデータを復号する方法を実行し、この方法は、ビデオ信号から、第1の色空間内に第1の成分および第2の成分を含むピクチャフレームを受信することと、第1の色空間内の第2の成分のそれぞれのサンプルに関連付けられた第1の成分の1組の1つまたは複数のサンプルから、第1の色空間内の第2の成分に対する分類子を決定することであり、1組の1つまたは複数のサンプルが第2の色空間内に位置する、決定することと、分類子に従って、第1の色空間内の第2の成分のそれぞれのサンプルに対するサンプルオフセットを決定することと、決定されたサンプルオフセットに基づいて、第1の色空間内の第2の成分のそれぞれのサンプルの値を修正することと、を含む。
【特許請求の範囲】
【請求項1】
ビデオ信号を復号する方法であって、
前記ビデオ信号から、第1の色空間内に第1の成分および第2の成分を含むピクチャフレームを受信することと、
前記第1の色空間内の前記第2の成分のそれぞれのサンプルに関連付けられた第2の色空間内の前記第1の成分の第1のセットの1つまたは複数のサンプルから、前記第1の色空間内の前記第2の成分に対する分類子を決定することと、
前記分類子に従って、前記第1の色空間内の前記第2の成分の前記それぞれのサンプルに対するサンプルオフセットを決定することと、
決定された前記サンプルオフセットに基づいて、前記第1の色空間内の前記第2の成分の前記それぞれのサンプルの値を修正することと、を含む方法。
【請求項2】
前記第1の成分が、ルマ成分、第1のクロマ成分、および第2のクロマ成分からなるグループから選択された成分であり、
前記第2の成分が、前記ルマ成分、前記第1のクロマ成分、および前記第2のクロマ成分からなるグループから選択された成分である、
請求項1に記載の方法。
【請求項3】
前記第1のセットの1つまたは複数のサンプルが、線形変換を使用して、前記第1の色空間からの前記第2の成分の前記それぞれのサンプルに関連付けられた前記第1の成分の1つまたは複数のサンプルを前記第2の色空間に変換することによって取得される、請求項1に記載の方法。
【請求項4】
前記線形変換が、
O
1=a×I
1+b×I
2+c×I
3
O
2=d×I
1+e×I
2+f×I
3
O
3=g×I
1+h×I
2+i×I
3
によって表され、上式で、a、b、c、d、e、f、g、h、iが、所定の定数であり、I
1、I
2、I
3が、それぞれ前記第1の色空間内の前記第1の成分、前記第2の成分、および第3の成分のサンプルの値であり、O
1、O
2、O
3が、それぞれ前記第2の色空間内の前記第1の成分、前記第2の成分、および前記第3の成分のサンプルの値である、請求項3に記載の方法。
【請求項5】
前記第1の色空間がYUV色空間であり、前記第2の色空間がRGB色空間である、請求項1に記載の方法。
【請求項6】
前記第1の色空間がRGB色空間であり、前記第2の色空間がYUV色空間である、請求項1に記載の方法。
【請求項7】
前記第1のセットの1つまたは複数のサンプルが、非線形変換を使用して、前記第1の色空間からの前記第2の成分の前記それぞれのサンプルに関連付けられた前記第1の成分の1つまたは複数のサンプルを前記第2の色空間に変換することによって取得される、請求項1に記載の方法。
【請求項8】
前記分類子を決定することが、前記第2の成分の前記それぞれのサンプルに関連付けられた前記第2の成分の第2のセットの1つまたは複数のサンプルからさらに、前記第1の色空間内の前記第2の成分に対する前記分類子を決定することをさらに含み、前記第2のセットの1つまたは複数のサンプルが、前記第1の色空間内または前記第2の色空間内に位置する、請求項1に記載の方法。
【請求項9】
前記ピクチャフレームが、第3の成分をさらに含み、前記分類子を決定することが、前記第2の成分の前記それぞれのサンプルに関連付けられた前記第3の成分の第3のセットの1つまたは複数のサンプルからさらに、前記第1の色空間内の前記第2の成分に対する前記分類子を決定することをさらに含み、前記第3の成分が第2のクロマ成分であり、前記第3のセットの1つまたは複数のサンプルが、前記第1の色空間内または前記第2の色空間内に位置する、請求項8に記載の方法。
【請求項10】
前記分類子が、第1のサブ分類子および/または第2のサブ分類子のうちの少なくとも1つによって決定され、前記第1のサブ分類子が、前記第1の成分の前記第1のセットの1つまたは複数のサンプルの値の第1のダイナミックレンジを第1の数のバンドに分割し、前記第1の成分の前記第1のセットの1つまたは複数のサンプルの強度値に基づいて、バンドを選択することによって決定され、前記第2のサブ分類子が、前記第2の成分の前記第2のセットの1つまたは複数のサンプルの第1のサブグループのエッジ情報の方向および強度に基づいて決定される、請求項8に記載の方法。
【請求項11】
前記第1の成分が第1のクロマ成分であり、前記第2の成分がルマ成分であり、前記第2の成分の前記それぞれのサンプルに関連付けられた前記第1の成分の前記第1のセットの1つまたは複数のサンプルが、前記第2の成分の前記それぞれのサンプルに対する前記第1の成分の配列および隣接サンプルのうちの1つまたは複数から選択される、請求項1に記載の方法。
【請求項12】
前記第2の成分の前記それぞれのサンプルに関連付けられた前記第2の成分の前記第2のセットの1つまたは複数のサンプルが、前記第2の成分の前記それぞれのサンプルに対する前記第2の成分の現在のサンプルおよび隣接サンプルのうちの1つまたは複数から選択される、請求項8に記載の方法。
【請求項13】
前記分類子を決定することが、前記第2の成分の前記それぞれのサンプルに関連付けられた前記第1、第2、および第3の成分のうちの1つまたは複数の第4のセットの1つまたは複数のサンプルからさらに、前記第1の色空間内の前記第2の成分に対する前記分類子を決定することをさらに含み、前記第4のセットの1つまたは複数のサンプルが、前記第1の色空間内または前記第2の色空間内に位置する、請求項1に記載の方法。
【請求項14】
前記分類子を決定することが、前記第4のセットの1つまたは複数のサンプルの以前の符号化情報からさらに、前記第1の色空間内の前記第2の成分に対する前記分類子を決定することをさらに含む、請求項13に記載の方法。
【請求項15】
前記分類子を決定することが、前記分類子のクラスインデックスを、
ClassIdx=Index2ClassTable(f(C,P1)+f(C,P2)+...+f(C,P8))
として決定することをさらに含み、上式で、Cは現在のサンプルまたは配列サンプルの値であり、P1,P2,...P8は隣接サンプルの値であり、Index2ClassTableはインデックスクラスの予め規定された表であり、thは閾値であり、x-y>thである場合、f(x,y)=1であり、x-y=thである場合、f(x,y)=0であり、x-y<thである場合、f(x,y)=-1である、請求項13に記載の方法。
【請求項16】
1つまたは複数の処理ユニットと、
前記1つまたは複数の処理ユニットに結合されたメモリと、
前記メモリ内に記憶された複数のプログラムと、を備える電子装置であって、前記複数のプログラムが、前記1つまたは複数の処理ユニットによって実行されたとき、前記電子装置に、請求項1から15のいずれか一項に記載の方法を実行させる、
電子装置。
【請求項17】
ビットストリームが記憶されたコンピュータ可読記憶媒体であって、請求項1から15のいずれか一項に記載のビデオ信号を復号する方法によって生成されたビデオ情報を含むコンピュータ可読記憶媒体。
【請求項18】
1つまたは複数の処理ユニットを有する電子装置による実行のために、複数のプログラムを記憶する非一時的コンピュータ可読記憶媒体であって、前記複数のプログラムが、前記1つまたは複数の処理ユニットによって実行されたとき、前記電子装置に、請求項1から15のいずれか一項に記載の方法を実行させる、非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願
本出願は、全体として参照により組み込まれている、2021年3月18日に出願された「Cross-component Sample Adaptive Offset」という名称の米国仮特許出願第63/200,626号、および2021年3月22日に出願された「Cross-component Sample Adaptive Offset」という名称の米国仮特許出願第63/164,459号に対する優先権を主張する。
【0002】
本出願は、一般に、ビデオのコーディングおよび圧縮に関し、より詳細には、ルマおよびクロマ両方のコーディング効率を改善する方法および装置に関する。
【背景技術】
【0003】
デジタルビデオは、デジタルテレビジョン、ラップトップまたはデスクトップ・コンピュータ、タブレットコンピュータ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲーミングコンソール、スマートフォン、ビデオ遠隔会議デバイス、ビデオストリーミングデバイスなどの様々な電子デバイスによって対応される。電子デバイスは、ビデオ圧縮/解凍規格を実装することによって、デジタルビデオデータの伝送、受信、符号化、復号、および/または記憶を行う。いくつかのよく知られているビデオコーディング規格には、Versatile Video Coding(VVC)、High Efficiency Video Coding(HEVC)(H.265またはMPEG-H Part 2としても知られている)、およびAdvanced Video Coding(AVC)(H.264またはMPEG-4 Part 10としても知られている)が含まれ、これらはISO/IEC MPEGおよびITU-T VCEGによって共同開発されたものである。AOMedia Video 1(AV1)は、先行規格VP9の後継として、Alliance for Open Media(AOM)によって開発された。Audio Video Coding(AVS)は、デジタル音声およびデジタルビデオ圧縮規格を指し、Audio and Video Coding Standard Workgroupによって開発された別のビデオ圧縮規格シリーズである。
【0004】
ビデオ圧縮は、典型的に、ビデオデータに固有の冗長性を低減または除去するために、空間(イントラフレーム)予測および/または時間(インターフレーム)予測を実行することを含む。ブロックベースのビデオコーディングの場合、1つのビデオフレームが1つまたは複数のスライスに分割され、各スライスが複数のビデオブロックを有しており、ビデオブロックは、コーディングツリーユニット(CTU)と呼ばれることもある。各CTUは、1つのコーディングユニット(CU)を含むことができ、または予め規定された最小CUサイズに到達するまで、より小さいCUに再帰的に分割されてもよい。各CU(リーフCUとも呼ばれる)は1つまたは複数の変換ユニット(TU)を含み、各CUはまた、1つまたは複数の予測ユニット(PU)を含む。各CUは、イントラ、インター、またはIBCモードで符号化されうる。ビデオフレームのイントラ符号化(I)スライス内のビデオブロックは、同じビデオフレーム内の隣接ブロックにおける基準サンプルに対する空間予測を使用して符号化される。ビデオフレームのインター符号化(PまたはB)スライス内のビデオブロックは、同じビデオフレーム内の隣接ブロックにおける基準サンプルに対する空間予測、または他の以前および/もしくは将来の基準ビデオフレーム内の基準サンプルに対する時間予測を使用することができる。
【0005】
以前に符号化された基準ブロック、例えば隣接ブロックに基づく空間または時間予測は、符号化されるべき現在のビデオブロックに対する予測ブロックを生じさせる。基準ブロックを発見するプロセスは、ブロックマッチングアルゴリズムによって実現されうる。符号化されるべき現在のブロックと予測ブロックとの間の画素差を表す残留データが、残差ブロックまたは予測誤差と呼ばれる。インター符号化ブロックは、予測ブロックを形成する基準フレーム内の基準ブロックおよび残差ブロックを指す動きベクトルに従って符号化される。動きベクトルを決定するプロセスは、典型的に、動き推定と呼ばれる。イントラ符号化ブロックは、イントラ予測モードおよび残差ブロックに従って符号化される。さらに圧縮する場合、残差ブロックが画素ドメインから変換ドメイン、例えば周波数ドメインに変換されて、残留変換係数を生じさせ、残留変換係数は次いで量子化されてもよい。量子化された変換係数は、最初は2次元アレイで配列されており、走査されて変換係数の1次元ベクトルをもたらすことができ、次いでビデオビットストリームにエントロピー符号化されて、さらなる圧縮を実現することができる。
【0006】
符号化されたビデオビットストリームは次いで、デジタルビデオ能力を有する別の電子デバイスによってアクセスされるようにコンピュータ可読記憶媒体(例えば、フラッシュメモリ)内に保存され、または電子デバイスへ有線もしくは無線で直接伝送される。電子デバイスは次いで、例えば符号化されたビデオビットストリームを解析して、ビットストリームから構文要素を取得し、ビットストリームから取得された構文要素に少なくとも部分的に基づいて、符号化されたビデオビットストリームからデジタルビデオデータをその元の形式に再構成することによって、ビデオの解凍(上述されたビデオ圧縮とは逆のプロセスである)を実行し、再構成されたデジタルビデオデータを電子デバイスのディスプレイ上に描画する。
【発明の概要】
【発明が解決しようとする課題】
【0007】
デジタルビデオの品質が高解像度から4K×2K、またはさらには8K×4Kになるとともに、符号化/復号されるべきビデオデータの量は指数関数的に増加する。復号化ビデオデータの画像品質を維持しながら、ビデオデータがより効率的に符号化/復号されうる方法が、常に課題となっている。
【課題を解決するための手段】
【0008】
本出願は、ビデオデータの符号化および復号、より詳細には、ルマ成分とクロマ成分との間の成分間の関係を探ることによってコーディング効率を改善することを含めて、ルマ成分およびクロマ成分両方のコーディング効率を改善する方法および装置に関係する実装例を記載する。
【0009】
本出願の第1の態様によれば、ビデオ信号を復号する方法が、ビデオ信号から、第1の色空間内に第1の成分および第2の成分を含むピクチャフレームを受信することと、第1の色空間内の第2の成分のそれぞれのサンプルに関連付けられた第1の成分の第1のセットの1つまたは複数のサンプルから、第1の色空間内の第2の成分に対する分類子を決定することであり、第1のセットの1つまたは複数のサンプルが第2の色空間に変換される、決定することと、分類子に従って、第1の色空間内の第2の成分のそれぞれのサンプルに対するサンプルオフセットを決定することと、決定されたサンプルオフセットに基づいて、第1の色空間内の第2の成分のそれぞれのサンプルの値を修正することとを含む。
【0010】
いくつかの実施形態では、第1の成分は、ルマ成分、第1のクロマ成分、および第2のクロマ成分からなるグループから選択された成分であり、第2の成分は、ルマ成分、第1のクロマ成分、および第2のクロマ成分からなるグループから選択された成分である。
【0011】
いくつかの実施形態では、第1のセットの1つまたは複数のサンプルは、線形変換によって、第2の色空間に変換される。
【0012】
本出願の第2の態様によれば、電子装置が、1つまたは複数の処理ユニットと、メモリと、メモリ内に記憶された複数のプログラムとを含む。プログラムは、1つまたは複数の処理ユニットによって実行されたとき、電子装置に、上述されたビデオ信号を符号化する方法を実行させる。
【0013】
本出願の第3の態様によれば、非一時的コンピュータ可読記憶媒体が、1つまたは複数の処理ユニットを有する電子装置による実行のために、複数のプログラムを記憶する。プログラムは、1つまたは複数の処理ユニットによって実行されたとき、電子装置に、上述されたビデオ信号を符号化する方法を実行させる。
【0014】
本出願の第4の態様によれば、コンピュータ可読記憶媒体が、上述されたビデオ・符号化方法によって生成されたビデオ情報を含むビットストリームを記憶する。
【0015】
上記の概略的な説明および以下の詳細な説明はどちらも単なる例であり、本開示を制限するものではないことを理解されたい。
【0016】
添付の図面は、実装例のさらなる理解を提供するために含まれ、本明細書に組み込まれて、本明細書の一部を構成するものであり、記載される実装例を示し、本説明とともに根本的な原理を説明する働きをする。同じ参照番号は、対応する部分を指す。
【図面の簡単な説明】
【0017】
【
図1】本開示のいくつかの実装例に係る例示的なビデオ符号化および復号システムを示すブロック図である。
【
図2】本開示のいくつかの実装例に係る例示的なビデオエンコーダを示すブロック図である。
【
図3】本開示のいくつかの実装例に係る例示的なビデオデコーダを示すブロック図である。
【
図4A】本開示のいくつかの実装例によってフレームが異なるサイズおよび形状の複数のビデオブロックにどのように再帰的に分割されるかを示すブロック図である。
【
図4B】本開示のいくつかの実装例によってフレームが異なるサイズおよび形状の複数のビデオブロックにどのように再帰的に分割されるかを示すブロック図である。
【
図4C】本開示のいくつかの実装例によってフレームが異なるサイズおよび形状の複数のビデオブロックにどのように再帰的に分割されるかを示すブロック図である。
【
図4D】本開示のいくつかの実装例によってフレームが異なるサイズおよび形状の複数のビデオブロックにどのように再帰的に分割されるかを示すブロック図である。
【
図4E】本開示のいくつかの実装例によってフレームが異なるサイズおよび形状の複数のビデオブロックにどのように再帰的に分割されるかを示すブロック図である。
【
図5】本開示のいくつかの実装例に係るサンプル適応オフセット(SAO)で使用される4つの勾配パターンを描くブロック図である。
【
図6A】本開示のいくつかの実装例によってクロマサンプルに適用され、DBF Yを入力として使用するCCSAOシステムおよびプロセスを示すブロック図である。
【
図6B】本開示のいくつかの実装例によってルマサンプルおよびクロマサンプルに適用され、DBF Y/Cb/Crを入力として使用するCCSAOシステムおよびプロセスを示すブロック図である。
【
図6C】本開示のいくつかの実装例によって独立して機能することができるCCSAOシステムおよびプロセスを示すブロック図である。
【
図6D】本開示のいくつかの実装例によって同じまたは異なるオフセットで再帰的に適用(2またはN回)されうるCCSAOシステムおよびプロセスを示すブロック図である。
【
図6E】本開示のいくつかの実装例によってAVS規格において強化されたサンプル適応オフセット(ESAO)に並行して適用されたCCSAOシステムおよびプロセスを示すブロック図である。
【
図6F】本開示のいくつかの実装例によってSAO後に適用されたCCSAOシステムおよびプロセスを示すブロック図である。
【
図6G】本開示のいくつかの実装例によってCCSAOシステムおよびプロセスがCCALFなしで独立して機能することができることを示すブロック図である。
【
図6H】本開示のいくつかの実装例によって成分間適応ループフィルタ(CCALF)に並行して適用されたCCSAOシステムおよびプロセスを示すブロック図である。
【
図7】本開示のいくつかの実装例に係るCCSAOを使用するサンプルプロセスを示すブロック図である。
【
図8】本開示のいくつかの実装例によってCCSAOプロセスが垂直および水平デブロッキング・フィルタ(DBF)にインターリーブされることを示すブロック図である。
【
図9】本開示のいくつかの実装例に係る成分間相関を使用してビデオ信号を復号する例示的なプロセスを示す流れ図である。
【
図10A】本開示のいくつかの実装例に係るC0分類に異なるルマ(またはクロマ)サンプル位置を使用する分類子を示すブロック図である。
【
図10B】本開示のいくつかの実装例に係るルマ候補に対する異なる形状のいくつかの例を示す図である。
【
図11】本開示のいくつかの実装例によって全ての配列および隣接ルマ/クロマサンプルがCCSAO分類に供給されうることを示すサンプルプロセスのブロック図である。
【
図12】本開示のいくつかの実装例によって、配列ルマサンプル値を、配列および隣接ルマサンプルに加重することによって取得された値に交換することによって、例示的な分類子を示す図である。
【
図13A】本開示のいくつかの実装例によって、分類に使用された配列および隣接ルマ(クロマ)サンプルのいずれかが現在のピクチャの外側にある場合に、CCSAOが現在のクロマ(ルマ)サンプルに適用されないことを示すブロック図である。
【
図13B】本開示のいくつかの実装例によって、分類に使用された配列および隣接ルマまたはクロマサンプルのいずれかが現在のピクチャの外側にある場合に、CCSAOが現在のルマまたはクロマサンプルに適用されることを示すブロック図である。
【
図14】本開示のいくつかの実装例によって、分類に使用された対応する選択された配列または隣接ルマサンプルが仮想境界(VB)によって画定された仮想空間の外側にある場合に、CCSAOが現在のクロマサンプルに適用されないことを示すブロック図である。
【
図15】本開示のいくつかの実装例によって、反復またはミラー・パディングが、仮想境界の外側にあるルマサンプルに適用されることを示す図である。
【
図16】本開示のいくつかの実装例によって、9つ全ての配列および隣接ルマサンプルが分類に使用される場合に、追加の1ルマラインバッファが必要とされることを示す図である。
【
図17】本開示のいくつかの実装例によって、AVSにおいて、VBを交差する9つのルマ候補CCSAOが、2つの追加のルマラインバッファだけ増大しうることを示す図である。
【
図18A】本開示のいくつかの実装例によって、VVCにおいて、VBを交差する9つのルマ候補CCSAOが、1つの追加のルマラインバッファだけ増大しうることを示す図である。
【
図18B】本開示のいくつかの実装例によって、配列または隣接クロマサンプルが現在のルマサンプルを分類するために使用されるとき、選択されたクロマ候補がVBを横切り、追加のクロマラインバッファを必要としうることを示す図である。
【
図19A】本開示のいくつかの実装例によって、AVSおよびVVCにおいて、クロマサンプルのルマ候補のいずれかがVBを横切る(現在のクロマサンプルVBの外側にある)場合に、CCSAOがクロマサンプルに対して無効化されることを示す図である。
【
図19B】本開示のいくつかの実装例によって、AVSおよびVVCにおいて、クロマサンプルのルマ候補のいずれかがVBを横切る(現在のクロマサンプルVBの外側にある)場合に、CCSAOがクロマサンプルに対して無効化されることを示す図である。
【
図19C】本開示のいくつかの実装例によって、AVSおよびVVCにおいて、クロマサンプルのルマ候補のいずれかがVBを横切る(現在のクロマサンプルVBの外側にある)場合に、CCSAOがクロマサンプルに対して無効化されることを示す図である。
【
図20A】本開示のいくつかの実装例によって、AVSおよびVVCにおいて、クロマサンプルのルマ候補のいずれかがVBを横切る(現在のクロマサンプルVBの外側にある)場合に、クロマサンプルに反復パディングを使用してCCSAOが有効化されることを示す図である。
【
図20B】本開示のいくつかの実装例によって、AVSおよびVVCにおいて、クロマサンプルのルマ候補のいずれかがVBを横切る(現在のクロマサンプルVBの外側にある)場合に、クロマサンプルに反復パディングを使用してCCSAOが有効化されることを示す図である。
【
図20C】本開示のいくつかの実装例によって、AVSおよびVVCにおいて、クロマサンプルのルマ候補のいずれかがVBを横切る(現在のクロマサンプルVBの外側にある)場合に、クロマサンプルに反復パディングを使用してCCSAOが有効化されることを示す図である。
【
図21A】本開示のいくつかの実装例によって、AVSおよびVVCにおいて、クロマサンプルのルマ候補のいずれかがVBを横切る(現在のクロマサンプルVBの外側にある)場合に、クロマサンプルにミラー・パディングを使用してCCSAOが有効化されることを示す図である。
【
図21B】本開示のいくつかの実装例によって、AVSおよびVVCにおいて、クロマサンプルのルマ候補のいずれかがVBを横切る(現在のクロマサンプルVBの外側にある)場合に、クロマサンプルにミラー・パディングを使用してCCSAOが有効化されることを示す図である。
【
図21C】本開示のいくつかの実装例によって、AVSおよびVVCにおいて、クロマサンプルのルマ候補のいずれかがVBを横切る(現在のクロマサンプルVBの外側にある)場合に、クロマサンプルにミラー・パディングを使用してCCSAOが有効化されることを示す図である。
【
図22A】本開示のいくつかの実装例によって、異なるCCSAOサンプル形状に両面対称パディングを使用してCCSAOが有効化されることを示す図である。
【
図22B】本開示のいくつかの実装例によって、異なるCCSAOサンプル形状に両面対称パディングを使用してCCSAOが有効化されることを示す図である。
【
図23】本開示のいくつかの実装例に係る制限された数のルマ候補を分類に使用するという制限を示す図である。
【
図24】本開示のいくつかの実装例によって、CCSAO適用領域がコーディングツリーブロック(CTB)/コーディングツリーユニット(CTU)境界に位置合わせされていないことを示す図である。
【
図25】本開示のいくつかの実装例によって、CCSAO適用領域フレーム区分がCCSAOパラメータによって固定されうることを示す図である。
【
図26】本開示のいくつかの実装例によって、CCSAO適用領域が、フレーム/スライス/CTBレベルから分割された2分木(BT)/4分木(QT)/3分木(TT)であってよいことを示す図である。
【
図27】本開示のいくつかの実装例に係るピクチャフレーム内の異なるレベルで使用されて切り換えられる複数の分類子を示すブロック図である。
【
図28】本開示のいくつかの実装例によって、CCSAO適用領域区分が動的でありかつピクチャレベルで切り替えられうることを示すブロック図である。
【
図29】本開示のいくつかの実装例によって、CCSAO分類子が現在または成分間の符号化情報を考慮することができることを示す図である。
【
図30】本開示のいくつかの実装例によって、本開示に開示されるSAO分類方法が予測後フィルタとして働くことを示すブロック図である。
【
図31】本開示のいくつかの実装例によって、予測後SAOフィルタのために、各成分が現在のサンプルおよび隣接サンプルを分類に使用することができることを示すブロック図である。
【
図32】本開示のいくつかの実装例に係る成分間相関を使用してビデオ信号を復号する例示的なプロセスを示す流れ図である。
【
図33】本開示のいくつかの実装例に係るユーザインターフェースに結合されたコンピューティング環境を示す図である。
【発明を実施するための形態】
【0018】
次に、添付の図面にその例が示されている特有の実装例を詳細に参照する。以下の詳細な説明において、本明細書に提示されている主題の理解を支援するために、多数の非限定的な特有の詳細について述べる。しかし、特許請求の範囲から逸脱することなく様々な代替手段が使用されてよく、この主題はこれらの特有の詳細がなくても実施されうることが、当業者には明らかであろう。例えば、本明細書に提示されている主題は、デジタルビデオ能力を有する多くのタイプの電子デバイスで実装されうることが、当業者には明らかであろう。
【0019】
第1世代のAVS規格は、中華民国国家標準「Information Technology, Advanced Audio Video Coding, Part 2: Video」(AVS1として知られている)、および「Information Technology, Advanced Audio Video Coding Part 16: Radio Television Video」(AVS+として知られている)を含む。これは、MPEG-2規格と比較すると、同じ知覚品質で約50%のビット速度の節減を提供することができる。第2世代のAVS規格は、一連の中華民国国家標準「Information Technology, Efficient Multimedia Coding」(AVS2として知られている)を含み、これは主に追加のHD TVプログラムの伝送を標的とする。AVS2のコーディング効率は、AVS+のコーディング効率の2倍である。一方、AVS2規格のビデオ部は、Institute of Electrical and Electronics Engineers(IEEE)によって、応用のための1つの国際規格として提出された。AVS3規格は、最新の国際規格HEVCのコーディング効率をしのぐことを目的とするUHDビデオ向けの1つの新世代のビデオコーディング規格であり、HEVC規格に比べて約30%のビット速度の節減を提供する。2019年3月、第68回AVS会議において、AVS3-P2ベースラインが完成され、これはHEVC規格に比べて約30%のビット速度の節減を提供する。現在、高性能モデル(HPM)と呼ばれる1つの基準ソフトウェアは、AVS3規格の基準実装を実証するために、AVSグループによって維持されている。HEVCと同様に、AVS3規格は、ブロックベースのハイブリッド・ビデオコーディング・フレームワークの上に構築されている。
【0020】
図1は、本開示のいくつかの実装例に係るビデオブロックを並行して符号化および復号するための例示的なシステム10を示すブロック図である。
図1に示されているように、システム10はソースデバイス12を含み、ソースデバイス12は、ビデオデータを生成し、後に宛先デバイス14によって復号されるように符号化する。ソースデバイス12および宛先デバイス14は、デスクトップまたはラップトップ・コンピュータ、タブレットコンピュータ、スマートフォン、セットトップ・ボックス、デジタルテレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲーミングコンソール、ビデオストリーミングデバイスなどを含む多種多様な電子デバイスのいずれかを構成することができる。いくつかの実装例では、ソースデバイス12および宛先デバイス14には無線通信能力が装備される。
【0021】
いくつかの実装例では、宛先デバイス14は、リンク16を介して、復号されるべき符号化されたビデオデータを受信することができる。リンク16は、符号化されたビデオデータをソースデバイス12から宛先デバイス14へ移動させることが可能な任意のタイプの通信媒体またはデバイスを備えることができる。一例では、リンク16は、ソースデバイス12が符号化されたビデオデータを直接宛先デバイス14へ実時間で伝送することを有効化するための通信媒体を備えることができる。符号化されたビデオデータは、無線通信プロトコルなどの通信規格に従って変調され、宛先デバイス14へ伝送されうる。通信媒体は、無線周波(RF)スペクトルまたは1つもしくは複数の物理的伝送線など、任意の無線または有線通信媒体を含むことができる。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはグローバルネットワーク、例えばインターネットなど、パケットベースのネットワークの一部を形成することができる。通信媒体は、ソースデバイス12から宛先デバイス14への通信を容易にするのに有用になりうるルータ、スイッチ、基地局、または任意の他の機器を含むことができる。
【0022】
いくつかの他の実装例では、符号化されたビデオデータは、出力インターフェース22からストレージデバイス32へ伝送されうる。その後、ストレージデバイス32内の符号化されたビデオデータは、宛先デバイス14によって入力インターフェース28を介してアクセスされうる。ストレージデバイス32は、符号化されたビデオデータを記憶するためのハードドライブ、Blu-rayディスク、DVD、CD-ROM、フラッシュメモリ、揮発性もしくは不揮発性メモリ、または任意の他の好適なデジタル記憶媒体など、様々な分散型または局所アクセス型のデータ記憶媒体のいずれかを含むことができる。さらなる例では、ストレージデバイス32は、ソースデバイス12によって生成される符号化されたビデオデータを保持することができるファイルサーバまたは別の中間ストレージデバイスに対応することができる。宛先デバイス14は、ストレージデバイス32からストリーミングまたはダウンロードを介して、記憶されたビデオデータにアクセスすることができる。ファイルサーバは、符号化されたビデオデータを記憶し、符号化されたビデオデータを宛先デバイス14へ伝送することが可能な任意のタイプのコンピュータとすることができる。例示的なファイルサーバは、ウェブ・サーバ(例えば、ウェブサイト向け)、FTPサーバ、ネットワークアタッチストレージ(NAS)デバイス、またはローカルディスクドライブを含む。宛先デバイス14は、ファイルサーバ上に記憶されている符号化されたビデオデータにアクセスするのに好適な無線チャネル(例えば、Wi-Fi接続)、有線接続(例えば、DSL、ケーブル・モデムなど)、または両方の組合せを含む任意の規格データ接続を介して、符号化されたビデオデータにアクセスすることができる。ストレージデバイス32からの符号化されたビデオデータの伝送は、ストリーミング伝送、ダウンロード伝送、または両方の組合せとすることができる。
【0023】
図1に示されているように、ソースデバイス12は、ビデオソース18、ビデオエンコーダ20、および出力インターフェース22を含む。ビデオソース18は、ビデオ捕捉デバイス、例えばビデオカメラ、以前に捕捉されたビデオを含むビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、および/もしくはコンピュータグラフィックスデータをソースビデオとして生成するためのコンピュータグラフィックシステムなどのソース、またはそのようなソースの組合せを含むことができる。一例として、ビデオソース18がセキュリティ監視システムのビデオカメラである場合、ソースデバイス12および宛先デバイス14は、カメラ付き電話またはテレビ電話を形成することができる。しかし、本出願に記載されている実装例は、一般のビデオコーディングに該当することができ、無線および/または有線の応用例に適用されうる。
【0024】
捕捉された、予め捕捉された、またはコンピュータで生成されたビデオは、ビデオエンコーダ20によって符号化されうる。符号化されたビデオデータは、ソースデバイス12の出力インターフェース22を介して宛先デバイス14へ直接伝送されうる。符号化されたビデオデータはまた(または別法として)、復号および/または再生のために、宛先デバイス14または他のデバイスによって後にアクセスされるように、ストレージデバイス32上へ記憶されうる。出力インターフェース22は、モデムおよび/またはトランスミッタをさらに含むことができる。
【0025】
宛先デバイス14は、入力インターフェース28、ビデオデコーダ30、およびディスプレイデバイス34を含む。入力インターフェース28は、レシーバおよび/またはモデムを含むことができ、リンク16を介して符号化されたビデオデータを受信することができる。リンク16を介して通信される、またはストレージデバイス32上に提供される、符号化されたビデオデータは、ビデオデータを復号する際にビデオデコーダ30によって使用されるように、ビデオエンコーダ20によって生成された様々な構文要素を含むことができる。そのような構文要素は、通信媒体上で伝送される、記憶媒体上に記憶される、またはファイルサーバに記憶される、符号化されたビデオデータ内に含まれうる。
【0026】
いくつかの実装例では、宛先デバイス14は、ディスプレイデバイス34を含むことができ、ディスプレイデバイス34は、一体化されたディスプレイデバイスであっても、宛先デバイス14と通信するように構成された外部ディスプレイデバイスであってもよい。ディスプレイデバイス34は、復号化ビデオデータを使用者に表示し、液晶ディスプレイ(LCD)、プラズマ・ディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを構成することができる。
【0027】
ビデオエンコーダ20およびビデオデコーダ30は、VVC、HEVC、MPEG-4、Part 10、Advanced Video Coding(AVC)、AVSなどの専有のもしくは業界の規格、またはそのような規格の拡張に従って動作することができる。本出願は、特有のビデオコーディング/復号規格に限定されるものではなく、他のビデオコーディング/復号規格に該当しうることを理解されたい。概して、ソースデバイス12のビデオエンコーダ20は、これらの現在または将来の規格のいずれかに従って、ビデオデータを符号化するように構成されうることが企図される。同様に、概して、宛先デバイス14のビデオデコーダ30は、これらの現在または将来の規格のいずれかに従って、ビデオデータを復号するように構成されうることも企図される。
【0028】
ビデオエンコーダ20およびビデオデコーダ30は各々、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、離散論理、ソフトウェア、ハードウェア、ファームウェア、またはこれらの任意の組合せなど、様々な好適なエンコーダ回路のいずれかとして実装されうる。部分的にソフトウェアで実装されるとき、電子デバイスは、ソフトウェアに対する命令を好適な非一時的コンピュータ可読媒体に記憶し、1つまたは複数のプロセッサを使用してこれらの命令をハードウェアで実行して、本開示に開示されているビデオコーディング/復号動作を実行することができる。ビデオエンコーダ20およびビデオデコーダ30の各々は、1つまたは複数のエンコーダまたはデコーダに含まれてよく、これらはいずれも、それぞれのデバイスにおいて複合エンコーダ/デコーダ(CODEC)の一部として一体化されうる。
【0029】
図2は、本出願に記載されているいくつかの実装例に係る例示的なビデオエンコーダ20を示すブロック図である。ビデオエンコーダ20は、ビデオフレーム内でビデオブロックのイントラおよびインター予測コーディングを実行することができる。イントラ予測コーディングは、所与のビデオフレームまたはピクチャ内のビデオデータの空間冗長性を低減または除去するために、空間予測に依拠する。インター予測コーディングは、ビデオ・シーケンスの隣接するビデオフレームまたはピクチャ内のビデオデータの時間冗長性を低減または除去するために、時間予測に依拠する。
【0030】
図2に示されているように、ビデオエンコーダ20は、ビデオデータメモリ40、予測処理ユニット41、復号化ピクチャバッファ(DPB)64、加算器50、変換処理ユニット52、量子化ユニット54、およびエントロピー符号化ユニット56を含む。予測処理ユニット41は、動き推定ユニット42、動き補償ユニット44、区分ユニット45、イントラ予測処理ユニット46、およびイントラ・ブロック・コピー(BC)ユニット48をさらに含む。いくつかの実装例では、ビデオエンコーダ20はまた、ビデオブロックの再構成のための逆量子化ユニット58、逆変換処理ユニット60、および加算器62を含む。ブロック境界をフィルタリングして再構成されたビデオからブロック・アーティファクトを除去するために、デブロッキング・フィルタなどのループ内フィルタ63が、加算器62とDPB64との間に置かれうる。デブロッキング・フィルタに加えて、加算器62の出力をフィルタリングするために、別のループ内フィルタ63も使用されうる。基準ピクチャ・ストアに入れられ、将来のビデオブロックを符号化するための基準として使用される前に、サンプル適応オフセット(SAO)および適応ループ内フィルタ(ALF)などのさらなるループ内フィルタ63が、再構成されたCU上で適用されうる。ビデオエンコーダ20は、固定されたもしくはプログラム可能なハードウェア・ユニットの形態をとることができ、または示されている固定されたもしくはプログラム可能なハードウェア・ユニットのうちの1つもしくは複数の間で分割されうる。
【0031】
ビデオデータメモリ40は、ビデオエンコーダ20の構成要素によって符号化されるべきビデオデータを記憶することができる。ビデオデータメモリ40内のビデオデータは、例えばビデオソース18から取得されうる。DPB64は、ビデオエンコーダ20(例えば、イントラまたはインター予測コーディング・モード)がビデオデータを符号化する際に使用するための基準ビデオデータを記憶するバッファである。ビデオデータメモリ40およびDPB64は、様々なメモリ・デバイスのいずれかによって形成されうる。様々な例では、ビデオデータメモリ40は、ビデオエンコーダ20の他の構成要素とオンチップであっても、それらの構成要素に対してオフチップであってもよい。
【0032】
図2に示されているように、ビデオデータを受信した後、予測処理ユニット41内の区分ユニット45が、ビデオデータをビデオブロックに分割する。この分割はまた、ビデオデータに関連付けられた4分木構造などの予め規定された分割構造に従って、ビデオフレームをスライス、タイル、または他のより大きいコーディングユニット(CU)に分割することを含むこともできる。ビデオフレームは、複数のビデオブロック(またはタイルと呼ばれる数組のビデオブロック)に分割されうる。予測処理ユニット41は、誤差結果(例えば、符号化速度および歪みレベル)に基づいて、現在のビデオブロックに対して、複数のイントラ予測コーディング・モードのうちの1つ、または複数のインター予測コーディング・モードのうちの1つなど、複数の可能な予測コーディング・モードのうちの1つを選択することができる。予測処理ユニット41は、結果のイントラまたはインター予測符号化ブロックを、残差ブロックを生成するために加算器50に提供することができ、後に基準フレームの一部として使用するための符号化されたブロックを再構成するために加算器62に提供することができる。予測処理ユニット41はまた、動きベクトル、イントラモード・インジケータ、区分情報などの構文要素、および他のそのような構文情報を、エントロピー符号化ユニット56に提供する。
【0033】
現在のビデオブロックに対して適当なイントラ予測コーディング・モードを選択するために、予測処理ユニット41内のイントラ予測処理ユニット46は、空間予測を提供するために、符号化されるべき現在のブロックと同じフレーム内の1つまたは複数の隣接ブロックに対して、現在のビデオブロックのイントラ予測コーディングを実行することができる。予測処理ユニット41内の動き推定ユニット42および動き補償ユニット44は、時間予測を提供するために、1つまたは複数の基準フレーム内の1つまたは複数の予測ブロックに対して、現在のビデオブロックのインター予測コーディングを実行する。ビデオエンコーダ20は、例えばビデオデータの各ブロックに対して適当なコーディング・モードを選択するために、複数のコーディング・パスを実行することができる。
【0034】
いくつかの実装例では、動き推定ユニット42が、ビデオフレームのシーケンス内の所定のパターンに従って、基準ビデオフレーム内の予測ブロックに対する現在のビデオフレーム内のビデオブロックの予測ユニット(PU)の変位を示す動きベクトルを生成することによって、現在のビデオフレームに対するインター予測モードを決定する。動き推定ユニット42によって実行される動き推定は、動きベクトルを生成するプロセスであり、ビデオブロックに対する動きを推定する。動きベクトルは、例えば、現在のフレーム内で符号化されている現在のブロック(または他の符号化ユニット)に対する基準フレーム内の予測ブロック(または他の符号化ユニット)に対する現在のビデオフレームまたはピクチャ内のビデオブロックのPUの変位を示すことができる。所定のパターンは、PフレームまたはBフレームとしてシーケンス内のビデオフレームを指定することができる。イントラBCユニット48は、インター予測のための動き推定ユニット42による動きベクトルの決定と同様に、イントラBCコーディングのために、ベクトル、例えばブロック・ベクトルを決定することができ、またはブロック・ベクトルを決定するために、動き推定ユニット42を利用することができる。
【0035】
予測ブロックは、基準フレームのうち、画素差に関して符号化されるべきビデオブロックのPUに密接に整合すると見なされたブロックであり、これは、絶対差和(SAD)、2乗差和(SSD)、または他の差分計量によって決定されうる。いくつかの実装例では、ビデオエンコーダ20は、DPB64に記憶されている基準フレームの整数未満の画素位置に対する値を計算することができる。例えば、ビデオエンコーダ20は、基準フレームの4分の1画素位置、8分の1画素位置、または他の分数の画素位置の値を補間することができる。したがって、動き推定ユニット42は、完全な画素位置および分数の画素位置に対する動き探索を実行し、分数の画素精度で動きベクトルを出力することができる。
【0036】
動き推定ユニット42は、PUの位置と、第1の基準フレーム・リスト(List0)または第2の基準フレーム・リスト(List1)から選択された基準フレームの予測ブロックの位置とを比較することによって、インター予測符号化フレーム内のビデオブロックのPUに対する動きベクトルを計算し、これらのリストの各々は、DPB64に記憶されている1つまたは複数の基準フレームを識別する。動き推定ユニット42は、計算された動きベクトルを動き補償ユニット44へ送信し、次いでエントロピー符号化ユニット56へ送信する。
【0037】
動き補償ユニット44によって実行される動き補償は、動き推定ユニット42によって決定された動きベクトルに基づいて、予測ブロックをフェッチまたは生成することを伴うことができる。現在のビデオブロックのPUに対する動きベクトルを受信したとき、動き補償ユニット44は、基準フレーム・リストのうちの1つにおいて動きベクトルが指す予測ブロックの位置を特定し、この予測ブロックをDPB64から取り出し、この予測ブロックを加算器50へ転送することができる。加算器50は次いで、符号化されている現在のビデオブロックの画素値から、動き補償ユニット44によって提供された予測ブロックの画素値を引くことによって、画素差値の残留ビデオブロックを形成する。残留ビデオブロックを形成する画素差値は、ルマもしくはクロマ差成分または両方を含むことができる。動き補償ユニット44はまた、ビデオフレームのビデオブロックを復号する際にビデオデコーダ30によって使用されるように、ビデオフレームのビデオブロックに関連付けられた構文要素を生成することができる。構文要素は、例えば、予測ブロックを識別するために使用される動きベクトルを画定する構文要素、予測モードを示す任意のフラグ、または本明細書に記載されている任意の他の構文情報を含むことができる。動き推定ユニット42および動き補償ユニット44は高度に一体化されうるが、概念上の目的で別個に示されていることに留意されたい。
【0038】
いくつかの実装例では、イントラBCユニット48は、動き推定ユニット42および動き補償ユニット44に関連して上述されたものと同様に、ベクトルを生成して予測ブロックをフェッチすることができるが、予測ブロックは、符号化されている現在のブロックと同じフレーム内にあり、ベクトルは、動きベクトルではなくブロック・ベクトルと呼ばれている。特に、イントラBCユニット48は、現在のブロックを符号化するために使用するイントラ予測モードを決定することができる。いくつかの例では、イントラBCユニット48は、例えば別個の符号化パス中に、様々なイントラ予測モードを使用して現在のブロックを符号化することができ、速度歪み分析によってその性能を試験することができる。次に、イントラBCユニット48は、様々な試験されたイントラ予測モードの中から適当なイントラ予測モードを選択し、それに応じてイントラモード・インジケータを使用および生成することができる。例えば、イントラBCユニット48は、様々な試験されたイントラ予測モードに対して速度歪み分析を使用して速度歪み値を計算することができ、試験されたモードの中から最善の速度歪み特性を有するイントラ予測モードを適当なイントラ予測モードとして選択し、使用することができる。速度歪み分析は、概して、符号化されたブロックと、符号化されたブロックをもたらすために符号化された元の符号化されていないブロックとの間で、歪み(または誤差)の量を決定し、ならびに符号化されたブロックをもたらすために使用されるビット速度(すなわち、ビットの数)を決定する。イントラBCユニット48は、様々な符号化されたブロックに対する歪みおよび速度からの比を計算して、どのイントラ予測モードがそのブロックに対して最善の速度歪み値を呈するかを決定することができる。
【0039】
他の例では、イントラBCユニット48は、本明細書に記載されている実装例によって、動き推定ユニット42および動き補償ユニット44を全体的または部分的に使用して、イントラBC予測のためのそのような機能を実行することができる。いずれの場合も、イントラ・ブロック・コピーのために、予測ブロックは、画素差に関して符号化されるべきブロックに密接に整合すると見なされたブロックとすることができ、これは、絶対差和(SAD)、2乗差和(SSD)、または他の差分計量によって決定されてよく、予測ブロックの識別は、整数未満の画素位置に対する値の計算を含むことができる。
【0040】
予測ブロックが、イントラ予測に従って同じフレームからのものであるか、それともインター予測に従って異なるフレームからのものであるかにかかわらず、ビデオエンコーダ20は、符号化されている現在のビデオブロックの画素値から予測ブロックの画素値を引いて画素差値を形成することによって、残留ビデオブロックを形成することができる。残留ビデオブロックを形成する画素差値は、ルマおよびクロマ両方の成分差を含むことができる。
【0041】
イントラ予測処理ユニット46は、上述されているように、動き推定ユニット42および動き補償ユニット44によって実行されるインター予測、またはイントラBCユニット48によって実行されるイントラ・ブロック・コピー予測に対する代替手段として、現在のビデオブロックをイントラ予測することができる。特に、イントラ予測処理ユニット46は、現在のブロックを符号化するために使用するイントラ予測モードを決定することができる。その際、イントラ予測処理ユニット46は、例えば別個の符号化パス中に、様々なイントラ予測モードを使用して現在のブロックを符号化することができ、イントラ予測処理ユニット46(または、いくつかの例ではモード選択ユニット)は、試験されたイントラ予測モードから適当なイントラ予測モードを選択して使用することができる。イントラ予測処理ユニット46は、そのブロックに対する選択されたイントラ予測モードを示す情報を、エントロピー符号化ユニット56に提供することができる。エントロピー符号化ユニット56は、ビットストリーム内の選択されたイントラ予測モードを示す情報を符号化することができる。
【0042】
予測処理ユニット41が、インター予測またはイントラ予測を介して、現在のビデオブロックに対する予測ブロックを決定した後、加算器50は、現在のビデオブロックから予測ブロックを引くことによって、残留ビデオブロックを形成する。残差ブロック内の残留ビデオデータは、1つまたは複数の変換ユニット(TU)に含まれてよく、変換処理ユニット52に提供される。変換処理ユニット52は、離散コサイン変換(DCT)または概念上類似の変換などの変換を使用して、残留ビデオデータを残留変換係数に変換する。
【0043】
変換処理ユニット52は、結果の変換係数を量子化ユニット54へ送信することができる。量子化ユニット54は、変換係数を量子化して、ビット速度をさらに低減させる。量子化プロセスはまた、係数のいくつかまたは全てに関連付けられたビット深さを低減させることができる。量子化度は、量子化パラメータを調整することによって修正されうる。いくつかの例では、量子化ユニット54は次いで、量子化された変換係数を含む行列の走査を実行することができる。別法として、エントロピー符号化ユニット56が走査を実行することができる。
【0044】
量子化に続いて、エントロピー符号化ユニット56は、例えばコンテキスト適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、構文ベースのコンテキスト適応型バイナリ算術コーディング(SBAC)、確率区間分割エントロピー(PIPE)コーディング、または別のエントロピー符号化方法もしくは技法を使用して、量子化された変換係数をビデオビットストリームにエントロピー符号化する。符号化されたビットストリームは次いで、ビデオデコーダ30に伝送されてよく、または後のビデオデコーダ30への伝送もしくはビデオデコーダ30による取出しのために、ストレージデバイス32内に保管されてよい。エントロピー符号化ユニット56はまた、符号化されている現在のビデオフレームに対する動きベクトルおよび他の構文要素をエントロピー符号化することができる。
【0045】
逆量子化ユニット58および逆変換処理ユニット60は、それぞれ逆量子化および逆変換を適用して、画素ドメイン内の残留ビデオブロックを再構成し、他のビデオブロックの予測のための基準ブロックを生成する。上述されているように、動き補償ユニット44は、DPB64に記憶されているフレームの1つまたは複数の基準ブロックから、動き補償予測ブロックを生成することができる。動き補償ユニット44はまた、1つまたは複数の補間フィルタを予測ブロックに適用して、動き推定で使用するための整数未満の画素値を計算することができる。
【0046】
加算器62は、動き補償ユニット44によってもたらされる動き補償予測ブロックに、再構成残差ブロックを加えて、DPB64に記憶するための基準ブロックをもたらす。基準ブロックは次いで、イントラBCユニット48、動き推定ユニット42、および動き補償ユニット44によって、後のビデオフレーム内の別のビデオブロックをインター予測するための予測ブロックとして使用されうる。
【0047】
図3は、本出願のいくつかの実装例に係る例示的なビデオデコーダ30を示すブロック図である。ビデオデコーダ30は、ビデオデータメモリ79、エントロピー復号ユニット80、予測処理ユニット81、逆量子化ユニット86、逆変換処理ユニット88、加算器90、およびDPB92を含む。予測処理ユニット81は、動き補償ユニット82、イントラ予測処理ユニット84、およびイントラBCユニット85をさらに含む。ビデオデコーダ30は、復号プロセスを実行することができ、復号プロセスは概して、
図2に関連してビデオエンコーダ20に関して上述された符号化プロセスとは逆方向である。例えば、動き補償ユニット82は、エントロピー復号ユニット80から受信された動きベクトルに基づいて、予測データを生成することができ、イントラ予測ユニット84は、エントロピー復号ユニット80から受信されたイントラ予測モード・インジケータに基づいて、予測データを生成することができる。
【0048】
いくつかの例では、ビデオデコーダ30のユニットは、本出願の実装例を実行するタスクが与えられうる。また、いくつかの例では、本開示の実装例は、ビデオデコーダ30のユニットの1つまたは複数の間で分割されうる。例えば、イントラBCユニット85は、単独で、または動き補償ユニット82、イントラ予測処理ユニット84、およびエントロピー復号ユニット80などのビデオデコーダ30の他のユニットと組み合わせて、本出願の実装例を実行することができる。いくつかの例では、ビデオデコーダ30は、イントラBCユニット85を含まなくてもよく、イントラBCユニット85の機能は、動き補償ユニット82などの予測処理ユニット81の他の構成要素によって実行されうる。
【0049】
ビデオデータメモリ79は、ビデオデコーダ30の他の構成要素によって復号されるように、符号化されたビデオビットストリームなどのビデオデータを記憶することができる。ビデオデータメモリ79に記憶されているビデオデータは、例えばストレージデバイス32から、カメラなどのローカル・ビデオソースから、ビデオデータの有線もしくは無線ネットワーク通信を介して、または物理的データ記憶媒体(例えば、フラッシュ・ドライブまたはハード・ディスク)にアクセスすることによって、取得されうる。ビデオデータメモリ79は、符号化されたビデオビットストリームからの符号化されたビデオデータを記憶する符号化ピクチャ・バッファ(CPB)を含むことができる。ビデオデコーダ30の復号化ピクチャバッファ(DPB)92は、ビデオデコーダ30(例えば、イントラまたはインター予測コーディング・モード)がビデオデータを復号する際に使用するための基準ビデオデータを記憶する。ビデオデータメモリ79およびDPB92は、同期DRAM(SDRAM)を含むダイナミック・ランダム・アクセス・メモリ(DRAM)、磁気抵抗RAM(MRAM)、抵抗RAM(RRAM)などの様々なメモリ・デバイス、または他のタイプのメモリ・デバイスのいずれかによって形成されうる。例示の目的で、ビデオデータメモリ79およびDPB92は、
図3ではビデオデコーダ30の2つの別個の構成要素として描かれている。しかし、ビデオデータメモリ79およびDPB92は、同じメモリ・デバイスによって提供されても、別個のメモリ・デバイスによって提供されてもよいことが、当業者には明らかであろう。いくつかの例では、ビデオデータメモリ79は、ビデオデコーダ30の他の構成要素とオンチップであっても、それらの構成要素に対してオフチップであってもよい。
【0050】
復号プロセス中、ビデオデコーダ30は、符号化されたビデオフレームのビデオブロックおよび関連付けられた構文要素を表す符号化されたビデオビットストリームを受信する。ビデオデコーダ30は、ビデオフレーム・レベルおよび/またはビデオブロック・レベルで構文要素を受信することができる。ビデオデコーダ30のエントロピー復号ユニット80は、ビットストリームをエントロピー復号して、量子化された係数、動きベクトル、またはイントラ予測モード・インジケータ、および他の構文要素を生成する。エントロピー復号ユニット80は次いで、動きベクトルおよび他の構文要素を予測処理ユニット81へ転送する。
【0051】
ビデオフレームが、イントラ予測符号化(I)フレームとして符号化されるとき、または他のタイプのフレーム内のイントラ符号化予測ブロックに対して符号化されるとき、予測処理ユニット81のイントラ予測処理ユニット84が、信号化されたイントラ予測モード、および現在のフレームの以前に復号されたブロックからの基準データに基づいて、現在のビデオフレームのビデオブロックに対する予測データを生成することができる。
【0052】
ビデオフレームが、インター予測符号化(すなわち、BまたはP)フレームとして符号化されるとき、予測処理ユニット81の動き補償ユニット82が、エントロピー復号ユニット80から受信された動きベクトルおよび他の構文要素に基づいて、現在のビデオフレームのビデオブロックに対する1つまたは複数の予測ブロックをもたらす。予測ブロックの各々は、基準フレーム・リストのうちの1つの基準フレームからもたらされうる。ビデオデコーダ30は、DPB92に記憶されている基準フレームに基づくデフォルト構築技法を使用して、基準フレーム・リストList0およびList1を構築しうる。
【0053】
いくつかの例では、ビデオブロックが、本明細書に記載されているイントラBCモードに従って符号化されるとき、予測処理ユニット81のイントラBCユニット85が、エントロピー復号ユニット80から受信されたブロック・ベクトルおよび他の構文要素に基づいて、現在のビデオブロックに対する予測ブロックをもたらす。予測ブロックは、ビデオエンコーダ20によって画定される現在のビデオブロックと同じピクチャの再構成された領域内に位置することができる。
【0054】
動き補償ユニット82および/またはイントラBCユニット85は、動きベクトルおよび他の構文要素を解析することによって、現在のビデオフレームのビデオブロックに対する予測情報を決定し、次いで予測情報を使用して、復号されている現在のビデオブロックに対する予測ブロックをもたらす。例えば、動き補償ユニット82は、受信された構文要素のうちのいくつかを使用して、ビデオフレームのビデオブロックを符号化するために使用される予測モード(例えば、イントラまたはインター予測)、インター予測フレーム・タイプ(例えば、BまたはP)、フレームの基準フレーム・リストの1つまたは複数に対する構築情報、フレームの各インター予測符号化ビデオブロックに対する動きベクトル、フレームの各インター予測符号化ビデオブロックに対するインター予測状態、および現在のビデオフレーム内のビデオブロックを復号するための他の情報を決定する。
【0055】
同様に、イントラBCユニット85は、受信された構文要素のうちのいくつか、例えばフラグを使用して、現在のビデオブロックがイントラBCモードを使用して予測されたこと、再構成された領域内に位置し、DPB92に記憶されるべきフレームのビデオブロックの構築情報、フレームのイントラBC予測された各ビデオブロックに対するブロック・ベクトル、フレームのイントラBC予測された各ビデオブロックに対するイントラBC予測状態、および現在のビデオフレーム内のビデオブロックを復号するための他の情報を決定することができる。
【0056】
動き補償ユニット82はまた、基準ブロックの整数未満の画素に対する補間値を計算するためにビデオブロックの符号化中にビデオエンコーダ20によって使用される補間フィルタを使用して、補間を実行することができる。この場合、動き補償ユニット82は、受信された構文要素から、ビデオエンコーダ20によって使用される補間フィルタを決定することができ、それらの補間フィルタを使用して、予測ブロックをもたらすことができる。
【0057】
逆量子化ユニット86は、量子化度を決定するためにビデオフレーム内の各ビデオブロックに対してビデオエンコーダ20によって計算された同じ量子化パラメータを使用して、ビットストリーム内に提供されているエントロピー復号ユニット80によってエントロピー復号された量子化された変換係数を逆量子化する。逆変換処理ユニット88は、逆変換、例えば逆DCT、逆整数変換、または概念上類似の逆変換プロセスを変換係数に適用して、画素ドメインにおける残差ブロックを再構成する。
【0058】
動き補償ユニット82またはイントラBCユニット85が、ベクトルおよび他の構文要素に基づいて、現在のビデオブロックに対する予測ブロックを生成した後、加算器90は、逆変換処理ユニット88からの残差ブロックと、動き補償ユニット82およびイントラBCユニット85によって生成された対応する予測ブロックとを加算することによって、現在のビデオブロックに対する復号されたビデオブロックを再構成する。復号されたビデオブロックをさらに処理するために、ループ内フィルタ91が、加算器90とDPB92との間に置かれうる。基準ピクチャ・ストアに入れられる前に、デブロッキング・フィルタ、サンプル適応オフセット(SAO)、および適応ループ内フィルタ(ALF)などのループ内フィルタ91が、再構成されたCU上で適用されうる。所与のフレーム内の復号されたビデオブロックは次いで、DPB92に記憶され、DPB92は、次のビデオブロックの後の動き補償のために使用される基準フレームを記憶する。DPB92、またはDPB92とは別個のメモリ・デバイスが、
図1のディスプレイデバイス34などのディスプレイデバイス上に後に提示するために、復号されたビデオを記憶することもできる。
【0059】
典型的なビデオコーディング・プロセスでは、ビデオ・シーケンスは典型的に、順序付けられた1組のフレームまたはピクチャを含む。各フレームは、SL、SCb、およびSCrで示される3つのサンプル・アレイを含むことができる。SLは、ルマサンプルの2次元アレイである。SCbは、Cbクロマサンプルの2次元アレイである。SCrは、Crクロマサンプルの2次元アレイである。他の事例では、フレームは単色であってよく、したがってルマサンプルの1つの2次元アレイのみを含む。
【0060】
HEVCと同様に、AVS3規格は、ブロックベースのハイブリッド・ビデオコーディング・フレームワークの上に構築されている。入力されたビデオ信号は、ブロック(コーディングユニット(CU)と呼ばれる)ごとに処理される。4分木のみに基づいてブロックを分割するHEVCとは異なり、AVS3では、1つのコーディングツリーユニット(CTU)が、4分木/2分木/拡張4分木に基づいて、変動する局所特性に適応するようにCUに分割される。加えて、HEVCにおける複数の区分ユニット・タイプの概念は除去され、すなわちAVS3には、CU、予測ユニット(PU)、および変換ユニット(TU)の分離が存在しない。代わりに、各CUは常に、さらなる区分なしで、予測および変換の両方のための基本ユニットとして使用される。AVS3の木区分構造では、まず1つのCTUが、4分木構造に基づいて分割される。次いで、各4分木リーフ・ノードが、2分木および拡張4分木構造に基づいてさらに分割されうる。
【0061】
図4Aに示されているように、ビデオエンコーダ20(またはより具体的に、区分ユニット45)が、まずフレームを1組のコーディングツリーユニット(CTU)に分割することによって、フレームの符号化表現を生成する。ビデオフレームは、ラスタ・スキャン順序で左から右および上から下へ連続的に順序付けられた整数のCTUを含むことができる。各CTUは、最も大きい論理コーディングユニットであり、CTUの幅および高さは、ビデオエンコーダ20によってシーケンス・パラメータ・セットで信号化され、ビデオ・シーケンス内の全てのCTUが、128×128、64×64、32×32、および16×16のうちの1つの同じサイズを有する。しかし、本出願は、必ずしも特定のサイズに限定されないことに留意されたい。
図4Bに示されているように、各CTUは、ルマサンプルの1つのコーディングツリーブロック(CTB)と、クロマサンプルの2つの対応するコーディングツリーブロックと、これらのコーディングツリーブロックのサンプルを符号化するために使用される構文要素とを備えることができる。構文要素は、画素の符号化ブロックの異なるタイプのユニットの特性、およびビデオデコーダ30でビデオ・シーケンスが再構成されうる方法を記述し、これはインターまたはイントラ予測、イントラ予測モード、動きベクトル、および他のパラメータを含む。単色のピクチャ、または3つの別個の色平面を有するピクチャでは、CTUは、単一のコーディングツリーブロックと、このコーディングツリーブロックのサンプルを符号化するために使用される構文要素とを備えることができる。コーディングツリーブロックは、サンプルのN×Nブロックとすることができる。
【0062】
より良好な性能を実現するために、ビデオエンコーダ20は、CTUのコーディングツリーブロック上で2分木分割、3分木分割、4分木分割、またはこれらの組合せなどのツリー分割を再帰的に実行し、CTUをより小さいコーディングユニット(CU)に分割することができる。
図4Cに描かれているように、64×64のCTU400がまず、各々32×32のブロック・サイズを有する4つのより小さいCUに分割される。4つのより小さいCUの中で、CU410およびCU420は各々、ブロック・サイズで16×16の4つのCUに分割される。2つの16×16のCU430および440は各々、ブロック・サイズで8×8の4つのCUにさらに分割される。
図4Dは、
図4Cに描かれているCTU400の区分プロセスの終了結果を示す4分木データ構造を描いており、4分木の各リーフ・ノードは、32×32~8×8の範囲のそれぞれのサイズの1つのCUに対応する。
図4Bに描かれているCTUと同様に、各CUは、ルマサンプルの符号化ブロック(CB)と、同じサイズのフレームのクロマサンプルの2つの対応する符号化ブロックと、これらの符号化ブロックのサンプルを符号化するために使用される構文要素とを備えることができる。単色のピクチャ、または3つの別個の色平面を有するピクチャでは、CUは、単一の符号化ブロックと、この符号化ブロックのサンプルを符号化するために使用される構文構造とを備えることができる。
図4Cおよび
図4Dに描かれている4分木分割は、例示のみを目的としており、1つのCTUが、4分木/3分木/2分木区分に基づいて変動する局所特性に適応するように、複数のCUに分割されうることに留意されたい。複数タイプのツリー構造では、1つのCTUが4分木構造によって分割され、各4分木リーフCUが、2分木および3分木構造によってさらに分割されうる。
図4Eに示されているように、AVS3には5つの分割/区分タイプ、すなわち4分割、水平2分割、垂直2分割、水平拡張4分木分割、および垂直拡張4分木分割がある。
【0063】
いくつかの実装例では、ビデオエンコーダ20は、CUの符号化ブロックを1つまたは複数のM×Nの予測ブロック(PB)にさらに分割することができる。予測ブロックは、同じインターまたはイントラ予測が適用されるサンプルの矩形(正方形または非正方形)ブロックである。CUの予測ユニット(PU)は、ルマサンプルの予測ブロックと、クロマサンプルの2つの対応する予測ブロックと、これらの予測ブロックを予測するために使用される構文要素とを備えることができる。単色のピクチャ、または3つの別個の色平面を有するピクチャでは、PUは、単一の予測ブロックと、この予測ブロックを予測するために使用される構文構造とを備えることができる。ビデオエンコーダ20は、CUの各PUのルマ、Cb、およびCr予測ブロックに対して、予測ルマ、Cb、およびCrブロックを生成することができる。
【0064】
ビデオエンコーダ20は、イントラ予測またはインター予測を使用して、PUに対する予測ブロックを生成することができる。ビデオエンコーダ20がPUの予測ブロックを生成するためにイントラ予測を使用する場合、ビデオエンコーダ20は、このPUに関連付けられたフレームの復号されたサンプルに基づいて、PUの予測ブロックを生成することができる。ビデオエンコーダ20がPUの予測ブロックを生成するためにインター予測を使用する場合、ビデオエンコーダ20は、このPUに関連付けられたフレーム以外の1つまたは複数のフレームの復号されたサンプルに基づいて、PUの予測ブロックを生成することができる。
【0065】
ビデオエンコーダ20がCUの1つまたは複数のPUに対する予測ルマ、Cb、およびCrブロックを生成した後、ビデオエンコーダ20は、CUの予測ルマ・ブロックをその元のルマ・符号化ブロックから引くことによって、このCUに対するルマ残差ブロックを生成することができ、CUのルマ残差ブロック内の各サンプルは、CUの予測ルマ・ブロックのうちの1つにおけるルマサンプルと、CUの元のルマ・符号化ブロックにおける対応するサンプルとの間の差を示す。同様に、ビデオエンコーダ20は、それぞれCUに対するCb残差ブロックおよびCr残差ブロックを生成することができ、CUのCb残差ブロック内の各サンプルは、CUの予測Cbブロックのうちの1つにおけるCbサンプルと、CUの元のCb符号化ブロックにおける対応するサンプルとの間の差を示し、CUのCr残差ブロック内の各サンプルは、CUの予測Crブロックのうちの1つにおけるCrサンプルと、CUの元のCr符号化ブロックにおける対応するサンプルとの間の差を示すことができる。
【0066】
さらに、
図4Cに示されているように、ビデオエンコーダ20は、4分木分割を使用して、CUのルマ、Cb、およびCr残差ブロックを1つまたは複数のルマ、Cb、およびCr変換ブロックに分解することができる。変換ブロックは、同じ変換が適用されるサンプルの矩形(正方形または非正方形)ブロックである。CUの変換ユニット(TU)は、ルマサンプルの変換ブロックと、クロマサンプルの2つの対応する変換ブロックと、変換ブロック・サンプルを変換するために使用される構文要素とを備えることができる。したがって、CUの各TUは、ルマ変換ブロック、Cb変換ブロック、およびCr変換ブロックに関連付けられうる。いくつかの例では、TUに関連付けられたルマ変換ブロックは、CUのルマ残差ブロックのサブブロックとなりうる。Cb変換ブロックは、CUのCb残差ブロックのサブブロックとなりうる。Cr変換ブロックは、CUのCr残差ブロックのサブブロックとなりうる。単色のピクチャ、または3つの別個の色平面を有するピクチャでは、TUは、単一の変換ブロックと、変換ブロックのサンプルを変換するために使用される構文構造とを備えることができる。
【0067】
ビデオエンコーダ20は、TUのルマ変換ブロックに1つまたは複数の変換を適用して、このTUに対するルマ係数ブロックを生成することができる。係数ブロックは、変換係数の2次元アレイとなりうる。変換係数は、スカラ量となりうる。ビデオエンコーダ20は、TUのCb変換ブロックに1つまたは複数の変換を適用して、このTUに対するCb係数ブロックを生成することができる。ビデオエンコーダ20は、TUのCr変換ブロックに1つまたは複数の変換を適用して、このTUに対するCr係数ブロックを生成することができる。
【0068】
係数ブロック(例えば、ルマ係数ブロック、Cb係数ブロック、またはCr係数ブロック)を生成した後、ビデオエンコーダ20は、この係数ブロックを量子化することができる。量子化は、概して、場合により変換係数を表すために使用されるデータの量を低減させてさらなる圧縮を提供するために、変換係数が量子化されるプロセスを指す。ビデオエンコーダ20が係数ブロックを量子化した後、ビデオエンコーダ20は、量子化された変換係数を示す構文要素をエントロピー符号化することができる。例えば、ビデオエンコーダ20は、量子化された変換係数を示す構文要素上で、コンテキスト適応型バイナリ算術コーディング(CABAC)を実行することができる。最後に、ビデオエンコーダ20は、符号化フレームの表現を形成するビットのシーケンスおよび関連付けられたデータを含むビットストリームを出力することができ、このビットストリームは、ストレージデバイス32内に保存され、または宛先デバイス14へ伝送される。
【0069】
ビデオエンコーダ20によって生成されたビットストリームを受信した後、ビデオデコーダ30は、ビットストリームを解析して、このビットストリームから構文要素を取得することができる。ビデオデコーダ30は、ビットストリームから取得された構文要素に少なくとも部分的に基づいて、ビデオデータのフレームを再構成することができる。ビデオデータを再構成するプロセスは概して、ビデオエンコーダ20によって実行される符号化プロセスとは逆方向である。例えば、ビデオデコーダ30は、現在のCUのTUに関連付けられた係数ブロック上で逆変換を実行して、現在のCUのTUに関連付けられた残差ブロックを再構成することができる。ビデオデコーダ30はまた、現在のCUのPUに対する予測ブロックのサンプルを、現在のCUのTUの変換ブロックの対応するサンプルに加えることによって、現在のCUの符号化ブロックを再構成する。フレームの各CUに対する符号化ブロックを再構成した後、ビデオデコーダ30は、このフレームを再構成することができる。
【0070】
SAOは、デブロッキング・フィルタの適用後、エンコーダによって伝送されるルックアップ・テーブルの値に基づいて、オフセット値を各サンプルに条件付きで加えることによって、復号されたサンプルを修正するプロセスである。SAOフィルタリングは、構文要素sao-type-idxによってCTBごとに選択されるフィルタリング・タイプに基づいて、領域ごとに実行される。sao-type-idxに対する0の値は、SAOフィルタがCTBに適用されないことを示し、値1および2は、それぞれバンド・オフセットおよびエッジ・オフセットのフィルタリング・タイプの使用を信号化する。1に等しいsao-type-idxによって指定されるバンド・オフセット・モードで、選択されるオフセット値は、サンプル振幅に直接依存する。このモードで、完全なサンプル振幅範囲が、32個のバンドと呼ばれるセグメントに均一に分割され、これらのバンドのうちの4つ(32個のバンド内で連続している)に属するサンプル値が、バンド・オフセットとして示される伝送された値を加えることによって修正され、この値は正または負とすることができる。4つの連続するバンドを使用する主な理由は、バンディング・アーティファクトが現れうる平滑な区域内では、CTBのサンプル振幅がこれらのバンドのいくつかのみに集中される傾向があるからである。加えて、4つのオフセットを使用するという設計上の選択は、同じく4つのオフセット値を使用するエッジ・オフセット動作モードに統一される。2に等しいsao-type-idxによって指定されるエッジ・オフセット・モードで、0~3の値を有する構文要素sao-eo-classは、CTBにおけるエッジ・オフセット分類に水平、垂直、または2つの斜勾配方向のうちの1つが使用されるかどうかを信号化する。
【0071】
図5は、本開示のいくつかの実装例に係るSAOで使用される4つの勾配パターンを描くブロック図である。4つの勾配パターン502、504、506、および508は、エッジ・オフセット・モードにおけるそれぞれのsao-eo-classに対するものである。「p」と表示されるサンプルは、考慮されるべき中心サンプルを示す。「n0」および「n1」と表示される2つのサンプルは、(a)水平(sao-eo-class=0)、(b)垂直(sao-eo-class=1)、(c)斜め135°(sao-eo-class=2)、および(d)45°(sao-eo-class=3)の勾配パターンに沿って、2つの隣接するサンプルを指定する。CTBにおける各サンプルは、
図5に示されているように、ある位置に配置されたサンプル値pを、隣接する位置に配置された2つのサンプルの値n0およびn1と比較することによって、5つのEdgeIdxカテゴリのうちの1つに分類される。この分類は、復号されたサンプル値に基づいて、各サンプルに対して行われ、したがってEdgeIdx分類に対する追加の信号化は必要とされない。1~4のEdgeIdxカテゴリに対して、サンプル位置におけるEdgeIdxカテゴリに応じて、伝送されたルックアップ・テーブルからのオフセット値がサンプル値に加えられる。オフセット値は常に、カテゴリ1および2に対して正であり、カテゴリ3および4に対して負である。したがって、フィルタは概して、エッジ・オフセット・モードで平滑作用を有する。以下の表1は、SAOエッジ・クラスにおけるサンプルEdgeIdxカテゴリを示す。
【0072】
【表1】
SAOタイプ1および2の場合、合計4つの振幅オフセット値が各CTBに対してデコーダへ伝送される。タイプ1の場合、符号も符号化される。オフセット値ならびにsao-type-idxおよびsao-eo-classなどの関係付けられた構文要素は、エンコーダによって、典型的には速度歪み性能を最適化する基準を使用して決定される。SAOパラメータは、信号化を効率的にするために、マージ・フラグを使用して左または上のCTBから継承されるように示されうる。要約すると、SAOは、再構成された信号の追加の改良を可能にする非線形フィルタリング動作であり、平滑な区域およびエッジ周辺の両方において、信号表現を強化することができる。
【0073】
いくつかの実施形態では、成分間情報を導入することによって、コーディング効率を改善し、またはサンプル適応オフセット(SAO)の複雑さを低減させるための方法およびシステムが、本明細書に開示される。SAOは、HEVC、VVC、AVS2、およびAVS3規格で使用される。以下の説明では、HEVC、VVC、AVS2、およびAVS3規格における既存のSAO設計が、ビデオコーディングの当業者に基本的なSAO方法として使用されるが、本開示に記載されている成分間方法は、類似の設計精神を有する他のループフィルタ設計または他のコードディング・ツールにも適用されうる。例えば、AVS3規格では、SAOは、強化されたサンプル適応オフセット(ESAO)と呼ばれるコーディング・ツールに交換される。しかし、本明細書に開示されるCCSAOが、ESAOに並行して適用されてもよい。別の例では、CCSAOは、AV1規格でConstrained Directional Enhancement Filter(CDEF)に並行して適用されてもよい。
【0074】
HEVC、VVC、AVS2、およびAVS3規格における既存のSAO設計の場合、ルマY、クロマCb、およびクロマCrサンプルオフセット値が独立して決定される。すなわち、例えば現在のクロマサンプルオフセットは、現在のクロマサンプル値および隣接するクロマサンプル値のみによって決定され、配列または隣接ルマサンプルを考慮しない。しかし、ルマサンプルは、クロマサンプルより多くの元のピクチャ詳細情報を維持し、現在のクロマサンプルオフセットの決定から利益を得ることができる。さらに、クロマサンプルは通常、RGBからYCbCrへの色変換後、または量子化およびデブロッキング・フィルタ後に、高周波の詳細を失うため、クロマ・オフセット決定のために維持された高周波の詳細を有するルマサンプルを導入することで、クロマサンプルの再構成から利益を得ることができる。したがって、成分間相関を探ることによって、例えば成分間サンプル適応オフセット(CCSAO)の方法およびシステムを使用することによって、さらなる利得が予期されうる。いくつかの実施形態では、この相関は、成分間サンプル値を含むだけでなく、成分間サンプル値からの予測/残留符号化モード、変換タイプ、および量子化/デブロッキング/SAO/ALFパラメータなどのピクチャ/符号化情報も含む。
【0075】
別の例は、SAOの場合に、ルマサンプルオフセットがルマサンプルのみによって決定されることである。しかし例えば、同じバンド・オフセット(BO)分類を有するルマサンプルは、その配列および隣接クロマサンプルによってさらに分類されてよく、それによってより効果的な分類を得ることができる。SAO分類は、元のピクチャと再構成されたピクチャとの間のサンプル差を補償するためのショートカットとして得られうる。したがって、効果的な分類が所望される。
【0076】
図6Aは、本開示のいくつかの実装例によってクロマサンプル上で適用され、DBF Yを入力として使用するCCSAOシステムおよびプロセスを示すブロック図である。ルマ・デブロッキング・フィルタ(DBF Y)後のルマサンプルは、SAO CbおよびSAO Cr後のクロマCbおよびCrに対する追加のオフセットを決定するために使用される。例えば、現在のクロマサンプル602はまず、配列ルマサンプル604および隣接(白色)ルマサンプル606を使用して分類され、対応するクラスの対応するCCSAOオフセット値が、現在のクロマサンプル値に加えられる。
図6Bは、本開示のいくつかの実装例によってルマサンプルおよびクロマサンプル上で適用され、DBF Y/Cb/Crを入力として使用するCCSAOシステムおよびプロセスを示すブロック図である。
図6Cは、本開示のいくつかの実装例によって独立して機能することができるCCSAOシステムおよびプロセスを示すブロック図である。
図6Dは、本開示のいくつかの実装例によって、同じコーデック段階で同じまたは異なるオフセットで再帰的に適用(2またはN回)されても、異なる段階で繰り返されてもよい、CCSAOシステムおよびプロセスを示すブロック図である。要約すると、いくつかの実施形態では、現在のルマサンプルを分類するために、現在のルマサンプルおよび隣接するルマサンプルの情報、配列および隣接クロマサンプル(CbおよびCr)の情報が使用されうる。いくつかの実施形態では、現在のクロマサンプル(CbまたはCr)を分類するために、配列および隣接ルマサンプル、配列および隣接クロス・クロマサンプル、ならびに現在のクロマサンプルおよび隣接するクロマサンプルが使用されうる。いくつかの実施形態では、CCSAOは、(1)DBF Y/Cb/Cr後、(2)DBF前の再構成された画像Y/Cb/Cr後、または(3)SAO Y/Cb/Cr後、または(4)ALF Y/Cb/Cr後に、カスケード接続されうる。
【0077】
いくつかの実施形態では、CCSAOはまた、他のコーディング・ツール、例えばAVS規格におけるESAO、またはAV1規格におけるCDEFに並行して適用されうる。
図6Eは、本開示のいくつかの実装例によってAVS規格におけるESAOに並行して適用されるCCSAOシステムおよびプロセスを示すブロック図である。
【0078】
図6Fは、本開示のいくつかの実装例によってSAO後に適用されるCCSAOシステムおよびプロセスを示すブロック図である。いくつかの実施形態では、
図6Fは、CCSAOの場所がSAO後、すなわちVVC規格における成分間適応ループフィルタ(CCALF)の場所に位置しうることを示す。
図6Gは、本開示のいくつかの実装例によってCCSAOシステムおよびプロセスがCCALFなしで独立して機能しうることを示すブロック図である。いくつかの実施形態では、SAO Y/Cb/Crは、例えばAVS3規格において、ESAOに交換されうる。
【0079】
図6Hは、本開示のいくつかの実装例によってCCALFに並行して適用されるCCSAOシステムおよびプロセスを示すブロック図である。いくつかの実施形態では、
図6Hは、CCSAOがCCALFに並行して適用されうることを示す。いくつかの実施形態では、
図6Hで、CCALFおよびCCSAOの場所が切り替えられうる。いくつかの実施形態では、
図6A~
図6Hで、または本開示全体にわたって、SAO Y/Cb/Crブロックは、ESAO Y/Cb/Cr(AVS3)またはCDEF(AV1)に交換されうる。Y/Cb/Crは、ビデオコーディング領域においてY/U/Vとしても示されうることに留意されたい。
【0080】
いくつかの実施形態では、現在のクロマサンプル分類は、配列ルマサンプルのSAOタイプ(エッジ・オフセット(EO)またはBO)、クラス、およびカテゴリを再利用している。対応するCCSAOオフセットは、デコーダ自体から信号化または導出されうる。例えば、h_Yを配列ルマSAOオフセットとし、h_Cbおよびh_CrをそれぞれCCSAO CbおよびCrオフセットとする。h_Cb(またはh_Cr)=w*h_Yであり、ここでwは、制限された表で選択されうる。例えば、±1/4、±1/2、0、±1、±2、±4...などであり、ここで|w|は2のべき乗の値のみを含む。
【0081】
いくつかの実施形態では、配列ルマサンプル(Y0)および隣接する8つのルマサンプルの比較スコア[-8,8]が使用され、合計17のクラスをもたらす。
【0082】
初期クラス=0
隣接する8つのルマサンプルを介したループ(Yi,i=1~8)
if Y0>Yi Class+=1
else if Y0<Yi Class-=1
いくつかの実施形態では、上述された分類方法が組み合わされうる。例えば、ダイバーシティを増大させるために、SAO BO(32バンドの分類)と組み合わされた比較スコアが使用され、合計17*32のクラスをもたらす。いくつかの実施形態では、CbおよびCrは、複雑さを低減させるため、またはビットを節約するために、同じクラスを使用することができる。
【0083】
図7は、本開示のいくつかの実装例に係るCCSAOを使用するサンプルプロセスを示すブロック図である。具体的には、
図7は、クラス決定を簡略化するため、または柔軟性を増大させるために、CCSAOの入力が垂直および水平DBFの入力を導入することができることを示す。例えば、Y0_DBF_V、Y0_DBF_H、およびY0を、それぞれDBF_V、DBF_H、およびSAOの入力における配列ルマサンプルとする。Yi_DBF_V、Yi_DBF_H、およびYiは、それぞれDBF_V、DBF_H、およびSAOの入力における隣接する8つのルマサンプルであり、ここでi=1~8である。
【0084】
Max Y0=max(Y0_DBF_V,Y0_DBF_H,Y0_DBF)
Max Yi=max(Yi_DBF_V,Yi_DBF_H,Yi_DBF)
max Y0およびmax YiをCCSAO分類に与える。
【0085】
図8は、本開示のいくつかの実装例によって、CCSAOプロセスが垂直および水平DBFにインターリーブされることを示すブロック図である。いくつかの実施形態では、
図6、
図7、および
図8のCCSAOブロックは選択的であってよい。例えば、
図6と同じサンプル処理を適用する第1のCCSAO_Vに対するY0_DBF_VおよびYi_DBF_Vを使用しながら、DBF_Vルマサンプルの入力をCCSAO入力として使用する。
【0086】
いくつかの実施形態では、実装されるCCSAO構文が、以下の表2に示されている。
【0087】
【表2】
いくつかの実施形態では、CCSAO CbおよびCrオフセット値を信号化するために、一方の追加のクロマ・オフセットが信号化される場合、他方のクロマ成分オフセットは、正もしくは負の符号によって、またはビット・オーバーヘッドを節減するために加重によって導出されうる。例えば、h_Cbおよびh_Crを、それぞれCCSAO CbおよびCrのオフセットとする。wを明示的に信号化することによって、w=±|w|であり、|w|候補が制限されるとき、h_Cr自体を明示的に信号化することなく、h_Crはh_Cbから導出されうる。
【0088】
h_Cr=w*h_Cb
図9は、本開示のいくつかの実装例に係る成分間相関を使用してビデオ信号を復号する例示的なプロセス900を示す流れ図である。
【0089】
ビデオデコーダ30は、第1の成分および第2の成分を含むビデオ信号を受信する(910)。いくつかの実施形態では、第1の成分はビデオ信号のルマ成分であり、第2の成分はクロマ成分である。
【0090】
ビデオデコーダ30はまた、第2の成分に関連付けられた複数のオフセットを受信する(920)。
【0091】
ビデオデコーダ30は次いで、第1の成分の特性測定を利用して、第2の成分に関連付けられた分類カテゴリを取得する(930)。例えば、
図6で、現在のクロマサンプル602はまず、配列ルマサンプル604および隣接(白色)ルマサンプル606を使用して分類され、対応するCCSAOオフセット値が、現在のクロマサンプルに加えられる。
【0092】
ビデオデコーダ30は、分類カテゴリに従って、第2の成分に対する複数のオフセットから第1のオフセットをさらに選択する(940)。
【0093】
ビデオデコーダ30は加えて、選択された第1のオフセットに基づいて、第2の成分を修正する(950)。
【0094】
いくつかの実施形態では、第1の成分の特性測定を利用して第2の成分に関連付けられた分類カテゴリを取得すること(930)は、第1の成分のそれぞれのサンプルを利用して、第2の成分のそれぞれの各サンプルのそれぞれの分類カテゴリを取得することを含み、第1の成分のそれぞれのサンプルは、第2の成分のそれぞれの各サンプルに対する第1の成分のそれぞれの配列サンプルである。例えば、現在のクロマサンプル分類は、配列ルマサンプルのSAOタイプ(EOまたはBO)、クラス、およびカテゴリを再利用している。
【0095】
いくつかの実施形態では、第1の成分の特性測定を利用して第2の成分に関連付けられた分類カテゴリを取得すること(930)は、第1の成分のそれぞれのサンプルを利用して、第2の成分のそれぞれの各サンプルのそれぞれの分類カテゴリを取得することを含み、第1の成分のそれぞれのサンプルは、デブロックされる前に再構成され、またはデブロックされた後に再構成される。いくつかの実施形態では、第1の成分は、デブロッキング・フィルタ(DBF)でデブロックされている。いくつかの実施形態では、第1の成分は、ルマ・デブロッキング・フィルタ(DBF Y)でデブロックされている。例えば、
図6または
図7に対する代替手段として、CCSAO入力はDBF Yの前であってもよい。
【0096】
いくつかの実施形態では、特性測定は、第1の成分のサンプル値の範囲をいくつかのバンドに分割し、第1の成分内のサンプルの強度値に基づいてバンドを選択することによって導出される。いくつかの実施形態では、特性測定は、バンド・オフセット(BO)から導出される。
【0097】
いくつかの実施形態では、特性測定は、第1の成分内のサンプルのエッジ情報の方向および強度に基づいて導出される。いくつかの実施形態では、特性測定は、エッジ・オフセット(EO)から導出される。
【0098】
いくつかの実施形態では、第2の成分を修正すること(950)は、選択された第1のオフセットを第2の成分に直接加えることを含む。例えば、対応するCCSAOオフセット値が、現在のクロマ成分サンプルに加えられる。
【0099】
いくつかの実施形態では、第2の成分を修正すること(950)は、選択された第1のオフセットを第2のオフセットにマッピングし、マッピングされた第2のオフセットを第2の成分に加えることを含む。例えば、CCSAO CbおよびCrオフセット値を信号化するために、一方の追加のクロマ・オフセットが信号化される場合、他方のクロマ成分オフセットは、正もしくは負の符号を使用することによって、またはビット・オーバーヘッドを節減するために加重によって導出されうる。
【0100】
いくつかの実施形態では、ビデオ信号を受信すること(910)は、CCSAOを使用してビデオ信号を復号する方法がシーケンス・パラメータ・セット(SPS)内のビデオ信号に対して有効化されるかどうかを示す構文要素を受信することを含む。いくつかの実施形態では、cc_sao_enabled_flagが、シーケンス・レベルでCCSAOが有効化されるかどうかを示す。
【0101】
いくつかの実施形態では、ビデオ信号を受信すること(910)は、CCSAOを使用してビデオ信号を復号する方法がスライス・レベルで第2の成分に対して有効化されるかどうかを示す構文要素を受信することを含む。いくつかの実施形態では、slice_cc_sao_cb_flagまたはslice_cc_sao_cr_flagが、CbまたはCrに対するそれぞれのスライス内でCCSAOが有効化されるかどうかを示す。
【0102】
いくつかの実施形態では、第2の成分に関連付けられた複数のオフセットを受信すること(920)は、異なるコーディングツリーユニット(CTU)に対して異なるオフセットを受信することを含む。いくつかの実施形態では、CTUに対して、cc_sao_offset_sign_flagが、オフセットに対する符号を示し、cc_sao_offset_absが、現在のCTUのCCSAO CbおよびCrオフセット値を示す。
【0103】
いくつかの実施形態では、第2の成分に関連付けられた複数のオフセットを受信すること(920)は、CTUの受信されたオフセットが、CTUの隣接するCTUのうちの1つと同じであるかどうかを示す構文要素を受信することを含み、隣接するCTUは、左または上の隣接するCTUである。例えば、cc_sao_merge_up_flagが、CCSAOオフセットが左または上のCTUからマージされるかどうかを示す。
【0104】
いくつかの実施形態では、ビデオ信号は、第3の成分をさらに含み、CCSAOを使用してビデオ信号を復号する方法は、第3の成分に関連付けられた第2の複数のオフセットを受信することと、第1の成分の特性測定を利用して第3の成分に関連付けられた第2の分類カテゴリを取得することと、第2の分類カテゴリに従って第3の成分に対する第2の複数のオフセットから第3のオフセットを選択することと、選択された第3のオフセットに基づいて第3の成分を修正することとをさらに含む。
【0105】
図11は、本開示のいくつかの実装例によって全ての配列および隣接(白色)ルマ/クロマサンプルがCCSAO分類へ供給されうることを示すサンプルプロセスのブロック図である。
図6A、
図6B、および
図11は、CCSAO分類の入力を示す。
図11で、現在のクロマサンプルは1104であり、成分間配列クロマサンプルは1102であり、配列ルマサンプルは1106である。
【0106】
いくつかの実施形態では、例示的な分類子(C0)が、以下の
図12の配列ルマまたはクロマサンプル値(Y0)(
図6Bおよび
図6CのY4/U4/V4)を分類に使用する。band_numを、ルマまたはクロマ・ダイナミックレンジの等しく分割されたバンドの数とし、bit_depthを、シーケンス・ビット深さとすると、現在のクロマサンプルに対するクラスインデックスの一例は、次のとおりである。
【0107】
クラス(C0)=(Y0*band_num)>>bit_depth
いくつかの実施形態では、この分類は丸めを考慮し、例えば次のとおりである。
【0108】
クラス(C0)=((Y0*band_num)+(1<<bit_depth))>>bit_depth
いくつかのband_numおよびbit_depthの例が、以下の表3に挙げられている。表3は、分類例の各々に対してバンドの数が異なるときの3つの分類例を示す。
【0109】
【表3】
いくつかの実施形態では、分類子は、C0分類に対して異なるルマサンプル位置を使用する。
図10Aは、本開示のいくつかの実装例に係るC0分類に対して異なるルマ(またはクロマ)サンプル位置を使用する、例えばC0分類にY0ではなく隣接するY7を使用する、分類子を示すブロック図である。
【0110】
いくつかの実施形態では、シーケンス・パラメータ・セット(SPS)/適応パラメータ・セット(APS)/ピクチャ・パラメータ・セット(PPS)/ピクチャ・ヘッダ(PH)/スライス・ヘッダ(SH)/領域/コーディングツリーユニット(CTU)/コーディングユニット(CU)/サブブロック/サンプル・レベルにおいて、異なる分類子が切り換えられうる。例えば、
図10では、以下の表4に示されているように、POC0にY0を使用するがPOC1にY7を使用する。
【0111】
【表4】
いくつかの実施形態では、
図10Bは、本開示のいくつかの実装例に係るルマ候補に対する異なる形状のいくつかの例を示す。例えば、形状に制約が適用されうる。いくつかの事例では、
図10B(b)(c)(d)に示されているように、ルマ候補の総数は2のべき乗でなければならない。いくつかの事例では、
図10B(a)(c)(d)(e)に示されているように、ルマ候補の数は、クロマサンプル(中心)に対して水平および垂直対称でなければならない。いくつかの実施形態では、2のべき乗の制約および対称の制約は、クロマ候補にも適用されうる。
図6Bおよび
図6CのU/V部分は、対称の制約に対する一例を示す。いくつかの実施形態では、異なる色形式が、異なる分類子「制約」を有することができる。例えば、420色形式は、
図6Bおよび
図6Cに示されているルマ/クロマ候補選択を使用する(1つの候補が3×3の形状から選択される)が、444色形式は、
図10B(f)をルマおよびクロマ候補選択に使用し、422色形式は、
図10B(g)をルマに使用し(2つのクロマサンプルが4つのルマ候補を共有する)、
図10B(f)をクロマ候補に使用する。
【0112】
いくつかの実施形態では、C0位置およびC0のband_numが組み合わされてよく、SPS/APS/PPS/PH/SH/領域/CTU/CU/サブブロック/サンプル・レベルにおいて切り換えられうる。以下の表5に示されているように、異なる組合せが異なる分類子であってよい。
【0113】
【表5】
いくつかの実施形態では、配列ルマサンプル値(Y0)は、配列および隣接ルマサンプルに加重することによって取得された値(Yp)に交換される。
図12は、本開示のいくつかの実装例によって、配列ルマサンプル値を、配列および隣接ルマサンプルに加重することによって取得された値に交換することによって、例示的な分類子を示す。配列ルマサンプル値(Y0)は、隣接ルマサンプルを加重することによって取得された位相補正値(Yp)に交換されうる。異なるYpが異なる分類子であってよい。
【0114】
いくつかの実施形態では、異なるYpが異なるクロマ形式で適用される。例えば、
図12で、(a)のYpは、420クロマ形式に使用され、(b)のYpは、422クロマ形式に使用され、Y0は、444クロマ形式に使用される。
【0115】
いくつかの実施形態では、別の分類子(C1)は、配列ルマサンプル(Y0)および隣接する8つのルマサンプルの比較スコア[-8,8]であり、以下に示されているように、合計17のクラスをもたらす。
【0116】
初期クラス(C1)=0、隣接する8つのルマサンプルを介したループ(Yi,i=1~8)
if Y0>Yi Class+=1
else if Y0<Yi Class-=1
いくつかの実施形態では、C1の例は以下の関数に等しく、閾値thは0である。
【0117】
ClassIdx=Index2ClassTable(f(C,P1)+f(C,P2)+...+f(C,P8))
if x-y>th,f(x,y)=1;if x-y=th,f(x,y)=0;if x-y<th,f(x,y)=-1
上式で、Index2ClassTableはルックアップ・テーブル(LUT)であり、Cは現在のサンプルまたは配列サンプルであり、P1~P8は隣接サンプルである。
【0118】
いくつかの実施形態では、C4分類子と同様に、差分の分類(量子化)を助けるために、1つまたは複数の閾値が予め規定されてよく(例えば、LUTで維持される)、またはSPS/APS/PPS/PH/SH/領域/CTU/CU/サブブロック/サンプル・レベルで信号化されてよい。
【0119】
いくつかの実施形態では、変動(C1’)が比較スコア[0,8]のみを計数し、これは8つのクラスをもたらす。(C1,C1’)は分類子グループであり、C1およびC1’を切り換えるために、PH/SHレベルフラグが信号化されうる。
【0120】
初期クラス(C1’)=0、隣接する8つのルマサンプルを介したループ(Yi,i=1~8)
if Y0>Yi Class+=1
いくつかの実施形態では、変動(C1)が、比較スコアを計数するために、Mの隣接サンプルから隣接するNを選択的に使用する。比較スコアを計数するためにどの隣接サンプルが選択されたかを示すために、MビットのビットマスクがSPS/APS/PPS/PH/SH/領域/CTU/CU/サブブロック/サンプル・レベルで信号化されてよい。ルマ分類子に対する一例として
図6Bを使用して、8つの隣接ルマサンプルが候補であり、8ビットのビットマスク(01111110)がPHで信号化され、これはY1~Y6の6つのサンプルが選択されたことを示し、したがって比較スコアは[-6,6]であり、13のオフセットをもたらす。選択的な分類子C1は、オーバーヘッドを信号化するオフセットと分類粒度との間のトレードオフのために、より多くの選択肢をエンコーダに与える。
【0121】
C1と同様に、変動(C1’)は比較スコア[0,+N]のみを計数し、前のビットマスク01111110の例が、[0,6]の比較スコアを与え、7のオフセットをもたらす。
【0122】
いくつかの実施形態では、異なる分類子が組み合わされて、汎用分類子をもたらす。例えば、以下の表6-1に示されているように、異なるピクチャ(異なるPOC値)に対して異なる分類子が適用される。
【0123】
【表6】
いくつかの実施形態では、表6-2に示されているように、別の例示的な分類子(C3)が、分類のためにビットマスクを使用している。この分類子を示すために、10ビットのビットマスクがSPS/APS/PPS/PH/SH/領域/CTU/CU/サブブロック/サンプル・レベルで信号化される。例えば、ビットマスク11 1100 0000は、所与の10ビットのルマサンプル値に対して、最上位ビット(MSB):4ビットのみが分類に使用され、合計16のクラスをもたらすことを意味する。別の例示的なビットマスク10 0100 0001は、3ビットのみが分類に使用され、合計8つのクラスをもたらすことを意味する。
【0124】
いくつかの実施形態では、ビットマスク長(N)は固定されてよく、またはSPS/APS/PPS/PH/SH/領域/CTU/CU/サブブロック/サンプル・レベルで切り換えられうる。例えば、10ビットのシーケンスの場合、4ビットのビットマスク1110がピクチャ内にPHで信号化され、MSB3ビットb9、b8、b7が分類に使用される。別の例は、LSB上の4ビットのビットマスク0011であり、b0、b1が分類に使用される。ビットマスク分類子は、ルマまたはクロマ分類に該当することができる。MSBまたはLSBをビットマスクNに使用するかどうかは固定されてよく、またはSPS/APS/PPS/PH/SH/領域/CTU/CU/サブブロック/サンプル・レベルで切り換えられうる。
【0125】
いくつかの実施形態では、ルマ位置およびC3ビットマスクが組み合わされてよく、SPS/APS/PPS/PH/SH/領域/CTU/CU/サブブロック/サンプル・レベルで切り換えられうる。異なる組合せは異なる分類子であってよい。
【0126】
いくつかの実施形態では、ビットマスク制限の「1の最大数」は、対応するオフセットの数を制限するために適用されうる。例えば、SPSでビットマスクの「1の最大数」を4に制限することで、シーケンスの最大オフセットを16にする。異なるPOCのビットマスクは異なってもよいが、「1の最大数」は4を超過しないものとする(全クラスで16を超過しないものとする)。「1の最大数」値が信号化されてよく、SPS/APS/PPS/PH/SH/領域/CTU/CU/サブブロック/サンプル・レベルで切り換えられうる。
【0127】
【表7】
いくつかの実施形態では、
図11に示されているように、他の成分間クロマサンプル、例えばクロマサンプル1102およびその隣接サンプルがまた、例えば現在のクロマサンプル1104のために、CCSAO分類へ供給されうる。例えば、Crクロマサンプルは、CCSAO Cb分類へ供給されうる。Cbクロマサンプルは、CCSAO Cr分類へ供給されうる。成分間クロマサンプルの分類子は、ルマ成分間分類子と同じであってよく、または本開示に記載されているように、独自の分類子を有してもよい。2つの分類子が組み合わされて、現在のクロマサンプルを分類するための共同分類子を形成することができる。例えば、成分間ルマサンプルおよびクロマサンプルを組み合わせた共同分類子は、以下の表6-3に示されているように、合計16のクラスをもたらす。
【0128】
【表8】
全ての上述された分類子(C0、C1、C1’、C2、C3)が組み合わされうる。例えば、以下の表6-4を参照されたい。
【0129】
【表9】
いくつかの実施形態では、例示的な分類子(C2)が、配列および隣接ルマサンプルの差分(Yn)を使用する。
図12(c)は、Ynの一例を示し、Ynは、ビット深さが10であるとき、[-1024,1023]のダイナミックレンジを有する。C2のband_numを、Ynダイナミックレンジの等しく分割されたバンドの数とする。
【0130】
クラス(C2)=(Yn+(1<<bit_depth)*band_num)>>(bit_depth+1)。
【0131】
いくつかの実施形態では、C0およびC2が組み合わされて、汎用分類子をもたらす。例えば、以下の表7に示されているように、異なるピクチャ(異なるPOC)に対して異なる分類子が適用される。
【0132】
【表10】
いくつかの実施形態では、全ての上述された分類子(C0、C1、C1’、C2)が組み合わされる。例えば、以下の表8-1に示されているように、異なるピクチャ(異なるPOC)に対して異なる分類子が適用される。
【0133】
【表11】
いくつかの実施形態では、以下の表8-2に示されているように、例示的な分類子(C4)が、CCSAO入力値と補償されるべきサンプル値との差分を分類に使用する。例えば、CCSAOがALF段階で適用される場合、現在の成分のALF前およびALF後のサンプル値の差分が分類に使用される。差分の分類(量子化)を助けるために、1つまたは複数の閾値が予め規定されてよく(例えば、ルックアップ・テーブル(LUT)で維持される)、またはSPS/APS/PPS/PH/SH/領域/CTU/CU/サブブロック/サンプル・レベルで信号化されてよい。C4分類子は、C0のY/U/VbandNumと組み合わされて、共同分類子(例えば、表8-2に示されているように例示的なPOC1)を形成することができる。
【0134】
【表12】
いくつかの実施形態では、異なる符号化モードが異なる歪み統計を再構成画像に導入しうることから、例示的な分類子(C5)は、サブブロック分類を助けるために、「符号化情報」を使用する。例えば以下の表8-3に示されているように、CCSAOサンプルがそのサンプルの以前の符号化情報によって分類され、符号化情報の組合せが分類子を形成することができる。以下の
図30は、C5に対する符号化情報の異なる段階の別の例を示す。
【0135】
【表13】
符号化情報の組合せが分類子を形成することができる
いくつかの実施形態では、例示的な分類子(C6)が、YUV色変換値を分類に使用する。例えば、現在のY成分を分類するために、1/1/1の配列または隣接Y/U/Vサンプルが、RGBに色変換されるように選択され、C3のbandNumを使用して、現在のY成分分類子になるようにR値を量子化する。
【0136】
いくつかの実施形態では、現在の成分分類に対して現在の成分情報のみを使用する他の例示的な分類子が、成分間分類として使用されうる。例えば、
図5および表1に示されているように、ルマサンプル情報およびeo-classが使用されて、EdgeIdxを導出し、現在のクロマサンプルを分類する。成分間分類子としても使用されうる他の「非成分間」分類子は、エッジ方向、画素強度、画素変動、画素分散、画素のラプラシアンの和、ソーベル演算子、コンパス演算子、ハイパス・フィルタ値、ローパス・フィルタ値などを含む。
【0137】
いくつかの実施形態では、複数分類子が同じPOCで使用される。現在のフレームはいくつかの領域によって分割され、各領域が同じ分類子を使用する。例えば、3つの異なる分類子がPOC0で使用され、以下の表9に示されているように、どの分類子(0、1、または2)が使用されるかが、CTUレベルで信号化される。
【0138】
【表14】
いくつかの実施形態では、複数分類子(複数分類子を代替オフセットセットと呼ぶこともできる)の最大数は固定されてよく、またはSPS/APS/PPS/PH/SH/領域/CTU/CU/サブブロック/サンプル・レベルで信号化されうる。一例では、複数分類子の固定(予め画定)された最大数は4である。その場合、4つの異なる分類子がPOC0で使用され、どの分類子(0、1、または2)が使用されるかが、CTUレベルで信号化される。各ルマまたはクロマCTBに使用される分類子を示すために、短縮単項(TU)コードが使用されうる。例えば、以下の表10に示されているように、TUコードが0であるとき、CCSAOは適用されず、TUコードが10であるとき、set 0が適用され、TUコードが110であるとき、set 1が適用され、TUコードが1110であるとき、set 2が適用され、TUコードが1111であるとき、set 3が適用される。CTBに対する分類子を示すために(オフセットセットインデックス)、固定長コード、ゴロム・ライスコード、および指数ゴロム・コードが使用されてもよい。3つの異なる分類子がPOC1で使用される。
【0139】
【表15】
CbおよびCrのCTBオフセットセットインデックスの一例が、1280×720のシーケンスPOC0で与えられる(CTUサイズが128×128である場合、フレーム内のCTUの数は10×6である)。POC0のCbは4つのオフセットセットを使用し、Crは1つのオフセットセットを使用する。以下の表11-1に示されているように、オフセットセットインデックスが0であるとき、CCSAOは適用されず、オフセットセットインデックスが1であるとき、set 0が適用され、オフセットセットインデックスが2であるとき、set 1が適用され、オフセットセットインデックスが3であるとき、set 2が適用され、オフセットセットインデックスが4であるとき、set 3が適用される。タイプは、選択された配列ルマサンプル(Yi)の位置を意味する。異なるオフセットセットは、異なるタイプ、band_num、および対応するオフセットを有することができる。
【0140】
【表16】
いくつかの実施形態では、配列/現在および隣接Y/U/Vサンプルを分類に共同で使用する一例が、以下の表11-2に挙げられる(各Y/U/V成分に対する3成分共同bandNum分類)。POC0で、{2,4,1}オフセットセットが、それぞれ{Y,U,V}に使用される。各オフセットセットは、SPS/APS/PPS/PH/SH/領域/CTU/CU/サブブロック/サンプル・レベルで適応して切り換えられうる。異なるオフセットセットが、異なる分類子を有することができる。例えば、
図6Bおよび
図6Cに示す候補位置(candPos)として、現在のY4ルマサンプルを分類するために、Y set0が、{現在のY4,配列U4,配列V4}を候補として選択し、それぞれ異なるbandNum{Y,U,V}={16,1,2}である。{candY,candU,candV}を選択された{Y,U,V}候補のサンプル値として使用するとき、全クラスの数は32であり、クラスインデックス導出は次のように示されうる。
【0141】
bandY=(candY*bandNumY)>>BitDepth;
bandU=(candU*bandNumU)>>BitDepth;
bandV=(candV*bandNumV)>>BitDepth;
classIdx=bandY*bandNumU*bandNumV
+bandU*bandNumV
+bandV;
別の例は、POC1において、成分V set1分類である。その例では、bandNum={4,1,2}でcandPos={隣接Y8,隣接U3,隣接V0}が使用され、8つのクラスをもたらす。
【0142】
【表17】
いくつかの実施形態では、例えば以下の表11-3に示されているように、配列および隣接Y/U/Vサンプルを現在のY/U/Vサンプル分類に共同で使用する一例が挙げられる(各Y/U/V成分に対する3成分共同edgeNum(C1)およびbandNum分類)。エッジCandPosは、C1分類子に使用される中心位置であり、エッジbitMaskは、C1隣接サンプル活動化インジケータであり、edgeNumは、対応するC1クラスの数である。この例では、C1はY分類子にのみ適用され(したがって、edgeNumはedgeNumYに等しい)、エッジcandPosは常にY4である(現在/配列サンプル位置)。しかし、C1は、隣接サンプル位置としてエッジcandPosを有するY/U/V分類子に適用されてよい。
【0143】
diffがYのC1比較スコアを示す場合、classIdx導出は次のとおりとなりうる。
【0144】
bandY=(candY*bandNumY)>>BitDepth;
bandU=(candU*bandNumU)>>BitDepth;
bandV=(candV*bandNumV)>>BitDepth;
edgeIdx=diff+(edgeNum>>1);
bandIdx=bandY*bandNumU*bandNumV
+bandU*bandNumV
+bandV;
classIdx=bandIdx*edgeNum+edgeIdx;
【0145】
【0146】
【0147】
【表20】
いくつかの実施形態では、最大band_num(bandNumY、bandNumU、またはbandNumV)が、固定されてよく、またはSPS/APS/PPS/PH/SH/領域/CTU/CU/サブブロック/サンプル・レベルで信号化されうる。例えば、デコーダで各フレームに対してmax band_num=16を固定すると、フレーム内のC0のband_numを示すために、4ビットが信号化される。いくつかの他の最大band_numの例が、以下の表12に挙げられる。
【0148】
【表21】
いくつかの実施形態では、各セット(または加えられた全てのセット)に対するクラスまたはオフセット(複数の分類子を共同で使用する組合せ、例えばC1 edgeNum*C1 bandNumY*bandNumU*bandNumV)の最大数が固定されてよく、またはSPS/APS/PPS/PH/SH/領域/CTU/CU/サブブロック/サンプル・レベルで信号化されうる。例えば、maxは、加えられた全てのセットに対してclass_num=256*4で固定され、制約を確認するために、エンコーダ適合性チェックまたはデコーダ規範チェックが使用されうる。
【0149】
いくつかの実施形態では、制限がC0分類に適用されてよく、例えばband_num(bandNumY、bandNumU、またはbandNumV)を2のべき乗の値のみに制限する。band_numを明示的に信号化する代わりに、構文band_num_shiftが信号化される。デコーダは、乗算を回避するために、シフト演算を使用することができる。異なるband_num_shiftが異なる成分に使用されうる。
【0150】
クラス(C0)=(Y0>>band_num_shift)>>bit_depth
別の演算例は、誤差を低減させるために丸めを考慮する。
【0151】
クラス(C0)=((Y0+(1<<(band_num_shift-1)))>>band_num_shift)>>bit_depth
例えば、band_num_max(Y、U、またはV)が16である場合、表13に示されているように、可能なband_num_shift候補は、band_num=1、2、4、8、16に対応する0、1、2、3、4である。
【0152】
【0153】
【表23】
いくつかの実施形態では、CbおよびCrに適用される分類子は異なる。全てのクラスに対するCbおよびCrオフセットが別個に信号化されうる。例えば、以下の表14に示されているように、信号化された異なるオフセットが、異なるクロマ成分に適用される。
【0154】
【表24】
いくつかの実施形態では、最大オフセット値は固定され、またはシーケンス・パラメータ・セット(SPS)/適応パラメータ・セット(APS)/ピクチャ・パラメータ・セット(PPS)/ピクチャ・ヘッダ(PH)/スライス・ヘッダ(SH)/領域/CTU/CU/サブブロック/サンプル・レベルで信号化される。例えば、最大オフセットは[-15,15]である。異なる成分は異なる最大オフセット値を有することができる。
【0155】
いくつかの実施形態では、オフセットの信号化は、差分パルスコード変調(DPCM)を使用することができる。例えば、オフセット{3,3,2,1,-1}が、{3,0,-1,-1,-2}として信号化されうる。
【0156】
いくつかの実施形態では、オフセットは、次のピクチャ/スライスの再利用のために、APSまたはメモリ・バッファに記憶されうる。どの記憶された以前のフレーム・オフセットが現在のピクチャに使用されるかを示すためにインデックスが信号化されうる。
【0157】
いくつかの実施形態では、CbおよびCrの分類子は同じである。例えば以下の表15に示されているように、全てのクラスに対するCbおよびCrオフセットが共同で信号化されうる。
【0158】
【表25】
いくつかの実施形態では、CbおよびCrの分類子は同じであってよい。例えば以下の表16に示されているように、全てのクラスに対するCbおよびCrオフセットが、符号フラグ差によって共同で信号化されうる。表16によれば、Cbオフセットが(3,3,2,-1)であるとき、導出されるCrオフセットは(-3,-3,-2,1)である。
【0159】
【表26】
同で信号化されうる
いくつかの実施形態では、例えば以下の表17に示されているように、符号フラグは各クラスに対して信号化されうる。表17によれば、Cbオフセットが(3,3,2,-1)であるとき、導出されるCrオフセットは、それぞれの符号フラグに従って、(-3,3,2,1)である。
【0160】
【表27】
いくつかの実施形態では、CbおよびCrの分類子は同じであってよい。例えば以下の表18に示されているように、全てのクラスに対するCbおよびCrオフセットが、重み差によって共同で信号化されうる。重み(w)は、制限された表で、例えば±1/4、±1/2、0、±1、±2、±4...などで選択されてよく、ここで|w|は2のべき乗の値のみを含む。表18によれば、Cbオフセットが(3,3,2,-1)であるとき、それぞれの符号フラグによって、導出されるCrオフセットは(-6,-6,-4,2)である。
【0161】
【表28】
いくつかの実施形態では、例えば以下の表19に示されているように、重みは各クラスに対して信号化されうる。表19によれば、Cbオフセットが(3,3,2,-1)であるとき、導出されるCrオフセットは、それぞれの符号フラグに従って、(-6,12,0,-1)である。
【0162】
【表29】
いくつかの実施形態では、複数分類子が同じPOCで使用される場合、異なるオフセットセットが別個にまたは共同で信号化される。
【0163】
いくつかの実施形態では、前に復号されたオフセットは、将来のフレームの使用のために記憶されうる。オフセットの信号化のオーバーヘッドを低減させるように、どの前に復号されたオフセットセットが現在のフレームに使用されるかを示すために、インデックスが信号化されうる。例えば、以下の表20に示されているように、POC0オフセットは、オフセットset idx=0を信号化することで、POC2によって再利用されうる。
【0164】
【表30】
いくつかの実施形態では、例えば以下の表21に示されているように、CbおよびCrに対する再利用オフセットset idxは異なってよい。
【0165】
【表31】
いくつかの実施形態では、オフセットの信号化は、信号化のオーバーヘッドを低減させるために、startおよびlengthを含む追加の構文を使用することができる。例えば、band_num=256であるとき、band_idx=37~44のオフセットのみが信号化される。以下の表22-1の例では、startおよびlengthの構文はどちらも8ビットの固定長コードであり、band_numビットに整合するべきである。
【0166】
【表32】
いくつかの実施形態では、CCSAOが全てのYUV3成分に適用される場合、配列および隣接YUVサンプルが分類に共同で使用されてよく、Cb/Crに対する全ての上述されたオフセットの信号化方法がY/Cb/Crに拡張されうる。いくつかの実施形態では、異なる成分オフセットセットが別個に記憶されて使用されてよく(各成分が独自の記憶されたセットを有する)、または共同で記憶されて使用されてよい(各成分が同じ記憶されたセットを共有/再利用する)。別個のセットの例が以下の表22-2に示されている。
【0167】
【表33】
いくつかの実施形態では、シーケンス・ビット深さが10(または特定のビット深さ)より大きい場合、オフセットは信号化前に量子化されうる。デコーダ側では、以下の表23に示されているように、復号されたオフセットが適用前に逆量子化される。例えば、12ビットのシーケンスの場合、復号されたオフセットは2だけ左シフト(逆量子化)される。
【0168】
【表34】
いくつかの実施形態では、オフセットは、CcSaoOffsetVal=(1-2*ccsao_offset_sign_flag)*(ccsao_offset_abs<<(BitDepth-Min(10,BitDepth)))として計算されうる。
【0169】
いくつかの実施形態では、サンプル処理が以下に記載される。R(x,y)をCCSAO前の入力ルマまたはクロマサンプル値とし、R’(x,y)をCCSAO後の出力ルマまたはクロマサンプル値とする。
【0170】
offset=ccsao_offset[R(x,y)のclass_index]
R’(x,y)=Clip3(0,(1<<bit_depth)-1,R(x,y)+offset)
上記の方程式によれば、各ルマまたはクロマサンプル値R(x,y)は、現在のピクチャおよび/または現在のオフセットset idxの示されている分類子を使用して分類される。導出されたクラスインデックスの対応するオフセットが、各ルマまたはクロマサンプル値R(x,y)に加えられる。クリップ関数Clip3が(R(x,y)+オフセット)に適用されて、ビット深さダイナミックレンジ、例えば0から(1<<bit_depth)-1の範囲内の出力ルマまたはクロマサンプル値R’(x,y)を作成する。
【0171】
いくつかの実施形態では、境界処理が以下に記載されている。分類に使用される配列および隣接ルマ(クロマ)サンプルのいずれかが現在のピクチャの外側に位置する場合、CCSAOが現在のクロマ(ルマ)サンプルに適用されない。
図13Aは、本開示のいくつかの実装例によって、分類に使用される配列および隣接ルマ(クロマ)サンプルのいずれかが現在のピクチャの外側に位置する場合、CCSAOが現在のクロマ(ルマ)サンプルに適用されないことを示すブロック図である。例えば、
図13A(a)において、分類子が使用される場合、CCSAOは現在のピクチャの左1列のクロマ成分に適用されない。例えば、C1’が使用される場合、
図13A(b)に示されているように、CCSAOは現在のピクチャの左1列および上1行のクロマ成分に適用されない。
【0172】
図13Bは、本開示のいくつかの実装例によって、分類に使用される配列および隣接ルマまたはクロマサンプルのいずれかが現在のピクチャの外側に位置する場合、CCSAOが現在のルマまたはクロマサンプルに適用されることを示すブロック図である。いくつかの実施形態では、変動は、
図13B(b)に示されているように、分類に使用される配列および隣接ルマまたはクロマサンプルのいずれかが現在のピクチャの外側に位置する場合、
図13B(a)に示されているように、失われたサンプルが反復的に使用され、または失われたサンプルがミラー・パディングされて、分類のためのサンプルを作成し、CCSAOは現在のルマまたはクロマサンプルに適用されうる。いくつかの実施形態では、本明細書に開示されている無効化/反復/ミラーによるピクチャ境界処理方法はまた、分類に使用される配列および隣接ルマ(クロマ)サンプルのいずれかが現在のサブピクチャ/スライス/タイル/パッチ/CTU/360仮想境界の外側に位置する場合、サブピクチャ/スライス/タイル/CTU/360仮想境界に適用されうる。
【0173】
例えば、ピクチャが1つまたは複数のタイル行および1つまたは複数のタイル列に分割される。タイルは、ピクチャの矩形領域を覆う一連のCTUである。
【0174】
スライスは、ピクチャのタイル内の整数の完全なタイルまたは整数の連続する完全なCTU行からなる。
【0175】
サブピクチャは、ピクチャの矩形領域を集合的に覆う1つまたは複数のスライスを含む。
【0176】
いくつかの実施形態では、360度のビデオが球体上で捕捉され、これは本質的に「境界」を有しておらず、投影されたドメイン内の基準ピクチャの境界外に位置する基準サンプルが常に、球面ドメイン内の隣接サンプルから取得されうる。複数の面から構成される投影形式の場合、どのような種類の小型フレーム・パッキング配置が使用されても、フレームにパッキングされたピクチャ内の2つまたはそれ以上の隣接する面の間に不連続性が現れる。VVCでは、ループ内フィルタリング動作が無効化される垂直および/または水平仮想境界が導入され、それらの境界の位置がSPSまたはピクチャ・ヘッダで信号化される。連続する面の各組に1つずつ、2つのタイルを使用した場合と比較すると、360仮想境界の使用は、面サイズがCTUサイズの倍数であることを必要としないため、より柔軟である。いくつかの実施形態では、垂直360仮想境界の最大数は3であり、水平360仮想境界の最大数も3である。いくつかの実施形態では、2つの仮想境界間の距離は、CTUサイズより大きくまたはそれに等しく、仮想境界の粒度は8ルマサンプルであり、例えば8×8のサンプル格子である。
【0177】
図14は、本開示のいくつかの実装例によって、分類に使用される対応する選択された配列または隣接ルマサンプルが、仮想境界によって画定される仮想空間の外側である場合、CCSAOが現在のクロマサンプルに適用されないことを示すブロック図である。いくつかの実施形態では、仮想境界(VB)は、ピクチャフレーム内の空間を分離する仮想線である。いくつかの実施形態では、仮想境界(VB)が現在のフレーム内で適用される場合、CCSAOは、仮想境界によって画定される仮想空間の外側にある対応するルマ位置を選択したクロマサンプルに適用されない。
図14は、9のルマ位置候補を有するC0分類子に対する仮想境界の一例を示す。各CTUに対して、CCSAOは、対応する選択されたルマ位置が仮想境界によって取り囲まれた仮想空間の外側にあるクロマサンプルに適用されない。例えば、
図14(a)で、選択されたY7ルマサンプル位置が、フレームの底辺から4画素のラインに位置する水平仮想境界1406の反対側にあるとき、CCSAOはクロマサンプル1402に適用されない。例えば、
図14(b)で、選択されたY5ルマサンプル位置が、フレームの右辺からy画素のラインに位置する垂直仮想境界1408の反対側に位置するとき、CCSAOはクロマサンプル1404に適用されない。
【0178】
図15は、本開示のいくつかの実装例によって、反復またはミラー・パディングが、仮想境界の外側にあるルマサンプルに適用されうることを示す。
図15(a)は、反復パディングの一例を示す。元のY7が、VB1502の底辺に位置する分類子になるように選択された場合、元のY7ルマサンプル値ではなく、Y4ルマサンプル値が分類に使用される(Y7位置にコピーされる)。
図15(b)は、ミラー・パディングの一例を示す。Y7が、VB1504の底辺に位置する分類子になるように選択された場合、元のY7ルマサンプル値ではなく、Y0ルマサンプルに対してY7値に対称のY1ルマサンプル値が分類に使用される。パディング方法は、より多くのクロマサンプルにCCSAOを適用する可能性を与え、したがってより多くのコーディング利得が実現されうる。
【0179】
いくつかの実施形態では、CCSAOによって必要とされるラインバッファを低減させ、境界処理条件チェックを簡略化するために、制限が適用されうる。
図16は、本開示のいくつかの実装例によって、9つ全ての配列および隣接ルマサンプルが分類に使用される場合、追加の1ルマラインバッファ、すなわち現在のVB1602の上の線-5の全線ルマサンプルが必要とされうることを示す。
図10B(a)は、6つのルマ候補のみを分類に使用する一例を示し、これはラインバッファを低減させ、
図13Aおよび
図13Bにおけるいかなる追加の境界チェックも必要としない。
【0180】
いくつかの実施形態では、CCSAO分類にルマサンプルを使用すると、ルマラインバッファを増大させ、したがってデコーダ・ハードウェア実装コストを増大させうる。
図17は、本開示のいくつかの実装例によって、AVSにおいて、VB1702を交差する9つのルマ候補CCSAOが、2つの追加のルマラインバッファを増大させうる図を示す。仮想境界(VB)1702より上のルマサンプルおよびクロマサンプルの場合、DBF/SAO/ALFが現在のCTU行で処理される。VB1702より下のルマサンプルおよびクロマサンプルの場合、DBF/SAO/ALFが次のCTU行で処理される。AVSデコーダ・ハードウェア設計では、ルマ線-4から-1のDBF前サンプル、線-5のSAO前サンプル、およびクロマ線-3から-1のDBF前サンプル、線-4のSAO前サンプルが、次のCTU行のDBF/SAO/ALF処理のためのラインバッファとして記憶される。次のCTU行を処理するとき、ラインバッファ内にないルマサンプルおよびクロマサンプルは利用できない。しかし、例えばクロマ線-3(b)位置において、クロマサンプルは次のCTU行で処理されるが、CCSAOは、SAO前ルマサンプル線-7、-6、および-5を分類に必要とする。SAO前ルマサンプル線-7、-6はラインバッファ内になく、したがって利用できない。SAO前ルマサンプル線-7および-6をラインバッファに加えると、デコーダ・ハードウェア実装コストを増大させる。いくつかの例では、ルマVB(線-4)およびクロマVB(線-3)は異なってよい(位置合わせされない)。
【0181】
図17と同様に、
図18Aは、VVCにおいて、本開示のいくつかの実装例によって、VB1802を交差する9つのルマ候補CCSAOが、1つの追加のルマラインバッファを増大させうる図を示す。VBは、異なる規格で異なってもよい。VVCにおいて、ルマVBは線-4であり、クロマVBは線-2であり、したがって9つの候補CCSAOが、1つのルマラインバッファを増大させうる。
【0182】
いくつかの実施形態では、第1の解において、クロマサンプルのルマ候補のいずれかがVBを横切っている(現在のクロマサンプルVBの外側にある)場合、CCSAOがクロマサンプルに対して無効化される。
図19A~
図19Cは、本開示のいくつかの実装例によって、クロマサンプルのルマ候補のいずれかがVB1902を横切っている(現在のクロマサンプルVBの外側にある)場合、AVSおよびVVCにおいて、CCSAOがクロマサンプルに対して無効化されることを示す。
図14もまた、この実装例のいくつかの例を示す。
【0183】
いくつかの実施形態では、第2の解において、「交差VB」ルマ候補に対して、VBに近くVBの反対側にあるルマ線、例えばルマ線-4から、反復パディングがCCSAOに使用される。いくつかの実施形態では、VBの下の隣接ルマに最も近いルマからの反復パディングが、「交差VB」クロマ候補に対して実装される。
図20A~
図20Cは、本開示のいくつかの実装例によって、AVSおよびVVCにおいて、クロマサンプルのルマ候補のいずれかがVB2002を横切っている(現在のクロマサンプルVBの外側にある)場合、クロマサンプルに対する反復パディングを使用してCCSAOが有効化されることを示す。
図14(a)もまた、この実装例のいくつかの例を示す。
【0184】
いくつかの実施形態では、第3の解において、「交差VB」ルマ候補に対して、ルマVBの下から、ミラー・パディングがCCSAOに使用される。
図21A~
図21Cは、本開示のいくつかの実装例によって、AVSおよびVVCにおいて、クロマサンプルのルマ候補のいずれかがVB2102を横切っている(現在のクロマサンプルVBの外側にある)場合、クロマサンプルに対するミラー・パディングを使用して、CCSAOが有効化されることを示す。
図14(b)および
図13B(b)もまた、この実装例のいくつかの例を示す。いくつかの実施形態では、第4の解において、CCSAOを適用するために「両面対称パディング」が使用される。
図22A~
図22Bは、本開示のいくつかの実装例によって、異なるCCSAO形状(例えば、9つのルマ候補(
図22A)および8つのルマ候補(
図22B))のいくつかの例に対して、両面対称パディングを使用して、CCSAOが有効化されることを示す。クロマサンプルの配列された中心ルマサンプルを有するルマサンプル・セットに対して、ルマサンプル・セットの一方の側がVB2202の外側にある場合、ルマサンプル・セットの両側に対して両面対称パディングが適用される。例えば、
図22Aで、ルマサンプルY0、Y1、およびY2はVB2202の外側にあり、したがってY0、Y1、Y2およびY6、Y7、Y8はどちらも、Y3、Y4、Y5を使用してパディングされる。例えば、
図22Bで、ルマサンプルY0はVB2202の外側にあり、したがってY0はY2を使用してパディングされ、Y7はY5を使用してパディングされる。
【0185】
図18Bは、本開示のいくつかの実装例によって、現在のルマサンプルを分類するために配列または隣接クロマサンプルが使用され、選択されたクロマ候補がVBを横切って、追加のクロマラインバッファを必要としうる図を示す。上述されたものに類似の解1~4が、この問題に対処するために適用されうる。
【0186】
解1は、そのクロマ候補のいずれかがVBを横切りうるとき、ルマサンプルに対するCCSAOを無効化することである。
【0187】
解2は、「交差VB」クロマ候補に対して、VBの下の隣接クロマに最も近いクロマからの反復パディングを使用することである。
【0188】
解3は、「交差VB」クロマ候補に対して、クロマVBの下からのミラー・パディングを使用することである。
【0189】
解4は、「両面対称パディング」を使用することである。CCSAO配列クロマサンプルの中心に位置する候補セットに対して、候補セットの一方の側がVBの外側にある場合、両面対称パディングが両側に適用される。
【0190】
パディング方法は、より多くのルマまたはクロマサンプルにCCSAOを適用する可能性を与え、したがってより多くのコーディング利得が実現されうる。
【0191】
いくつかの実施形態では、底部ピクチャ(またはスライス、タイル、ブリック)境界CTU行において、VBより下のサンプルは現在のCTU行で処理され、したがって上記の特別な取扱い(解1、2、3、4)が、この底部ピクチャ(またはスライス、タイル、ブリック)境界CTU行に適用されない。例えば、1920×1080のフレームが、128×128のCTUで分割される。フレームは、15×9のCTU(端数切り上げ)を含む。底部CTU行は、第15のCTU行である。復号プロセスは、CTU行ごとに行われ、各CTU行に対してCTUごとに行われる。現在のCTU行と次のCTU行との間の水平CTU境界に沿って、デブロッキングが適用される必要がある。1つのCTUの内側では、底部4/2ルマ/クロマ線において、DBFサンプル(VVCの場合)が次のCTU行で処理され、現在のCTU行のCCSAOに利用できないため、CTBのVBが各CTU行に適用される。しかし、ピクチャフレームの底部CTU行では、次のCTU行が残っていないため、底部4/2ルマ/クロマ線DBFサンプルが、現在のCTU行で利用可能であり、現在のCTU行でDBF処理される。
【0192】
いくつかの実施形態では、
図13~
図22に表示されているVBは、サブピクチャ/スライス/タイル/パッチ/CTU/360仮想境界の境界に交換されうる。いくつかの実施形態では、
図13~
図22におけるクロマおよびルマサンプルの位置が切り換えられうる。いくつかの実施形態では、
図13~
図22におけるクロマおよびルマサンプルの位置が、第1のクロマサンプルおよび第2のクロマサンプルの位置に交換されうる。いくつかの実施形態では、CTU内のALFのVBは一般に水平であってよい。いくつかの実施形態では、サブピクチャ/スライス/タイル/パッチ/CTU/360仮想境界の境界は水平でも垂直でもよい。
【0193】
いくつかの実施形態では、
図16に説明されるように、CCSAOによって必要とされるラインバッファを低減させ、境界処理条件チェックを簡略化するために、制限が適用されうる。
図23は、本開示のいくつかの実装例によって、制限された数のルマ候補を分類に使用する制限を示す。
図23(a)は、6つのルマ候補のみを分類に使用する制限を示す。
図23(b)は、4つのルマ候補のみを分類に使用する制限を示す。
【0194】
いくつかの実施形態では、適用領域が実装される。CCSAO適用領域ユニットは、CTBに基づくことができる。すなわち、オン/オフ制御、CCSAOパラメータ(分類オフセットセットインデックスに使用されるオフセット、ルマ候補位置、band_num、ビットマスク...など)は、1つのCTB内で同じである。
【0195】
いくつかの実施形態では、適用領域は、CTB境界に位置合わせされえない。例えば、適用領域は、クロマCTB境界に位置合わせされず、シフトされる。構文(オン/オフ制御、CCSAOパラメータ)が、依然として各CTBに対して示されているが、本当の適用領域はCTB境界に位置合わせされない。
図24は、本開示のいくつかの実装例によって、CCSAO適用領域がCTB/CTU境界2406に位置合わせされないことを示す。例えば、適用領域は、クロマCTB/CTU境界2406に位置合わせされないが、VB2408に対して左上シフト(4,4)されたサンプルである。この位置合わせされていないCTB境界設計は、各8×8のデブロッキング・プロセス領域に対して同じデブロッキング・パラメータが使用されるため、デブロッキング・プロセスに利益をもたらす。
【0196】
いくつかの実施形態では、表24に示されているように、CCSAO適用領域ユニット(マスクサイズ)は可変であってよい(CTBサイズより大きいまたは小さい)。マスクサイズは、異なる成分に対して異なってよい。マスクサイズは、SPS/APS/PPS/PH/SH/領域/CTU/CU/サブブロック/サンプル・レベルで切り換えられうる。例えば、PHにおいて、各CCSAO領域情報を示すために、一連のマスク・オン/オフ・フラグおよびオフセットセットインデックスが示される。
【0197】
【表35】
いくつかの実施形態では、CCSAO適用領域フレーム区分は固定されうる。例えば、フレームをNの領域に分割する。
図25は、本開示のいくつかの実装例によって、CCSAO適用領域フレーム区分がCCSAOパラメータによって固定されうることを示す。
【0198】
いくつかの実施形態では、各領域は、その独自の領域オン/オフ制御フラグおよびCCSAOパラメータを有することができる。また、領域サイズがCTBサイズより大きい場合、CTBオン/オフ制御フラグおよび領域オン/オフ制御フラグの両方を有することができる。
図25(a)および(b)は、フレームをNの領域に分割するいくつかの例を示す。
図25(a)は、4つの領域からなる垂直分割を示す。
図25(b)は、4つの領域からなる正方形分割を示す。いくつかの実施形態では、オール・オン制御フラグ(ph_cc_sao_cb_ctb_control_flag/ph_cc_sao_cr_ctb_control_flag)上のピクチャレベルCTBと同様に、領域オン/オフ制御フラグがオフである場合、CTBオン/オフ・フラグがさらに信号化されうる。そうでない場合、CTBフラグをさらに信号化することなく、この領域内の全てのCTBにCCSAOが適用される。
【0199】
いくつかの実施形態では、異なるCCSAO適用領域が、同じ領域オン/オフ制御およびCCSAOパラメータを共有することができる。例えば、
図25(c)で、領域0~2は同じパラメータを共有し、領域3~15は同じパラメータを共有する。
図25(c)はまた、領域オン/オフ制御フラグおよびCCSAOパラメータが、ヒルベルトスキャン順序で信号化されうることを示す。
【0200】
いくつかの実施形態では、CCSAO適用領域ユニットは、ピクチャ/スライス/CTBレベルから分割された4分木/2分木/3分木になりうる。CTB分割と同様に、CCSAO適用領域区分を示すために、一連の分割されたフラグが信号化される。
図26は、本開示のいくつかの実装例によって、CCSAO適用領域が、フレーム/スライス/CTBレベルから分割された2分木(BT)/4分木(QT)/3分木(TT)になりうることを示す。
【0201】
図27は、本開示のいくつかの実装例によって、ピクチャフレーム内において異なるレベルで使用されて切り換えられる複数の分類子を示すブロック図である。いくつかの実施形態では、複数分類子が1つのフレームで使用される場合、分類子セットインデックスを適用する方法は、SPS/APS/PPS/PH/SH/領域/CTU/CU/サブブロック/サンプル・レベルで切り換えられうる。例えば、以下の表25に示されているように、4つの分類子セットがフレーム内で使用され、PHで切り換えられる。
図27(a)および
図27(c)は、デフォルト固定領域分類子を示す。
図27(b)は、分類子セットインデックスがマスク/CTBレベルで信号化されることを示し、ここで0はこのCTBに対してCCSAOオフを意味し、1~4はセットインデックスを意味する。
【0202】
【表36】
いくつかの実施形態では、デフォルト領域の場合、この領域内のCTBがデフォルト・セットインデックスを使用しない(例えば、領域レベルフラグが0である)が、このフレーム内で他の分類子セットを使用する場合、領域レベルフラグが信号化されうる。例えば、デフォルト・セットインデックスが使用される場合、領域レベルフラグは1になる。例えば、正方形区分の4つの領域において、以下の表26に示されているように、以下の分類子セットが使用される。
【0203】
【表37】
図28は、本開示のいくつかの実装例によって、CCSAO適用領域区分が動的であってよく、ピクチャレベルで切り換えられうることを示すブロック図である。例えば、
図28(a)は、3つのCCSAOオフセットセットがこのPOCで使用され(set_num=3)、したがってピクチャフレームが垂直に3つの領域に分割されることを示す。
図28(b)は、4つのCCSAOオフセットセットがこのPOCで使用され(set_num=4)、したがってピクチャフレームが水平に4つの領域に分割されることを示す。
図28(c)は、3つのCCSAOオフセットセットがこのPOCで使用され(set_num=3)、したがってピクチャフレームが3つの領域にラスタ分割されることを示す。各領域は、CTBオン/オフ制御ビットを節減するために、その独自の領域のオール・オン・フラグを有することができる。領域の数は、信号化されるピクチャset_numに依存する。
【0204】
CCSAO適用領域は、ブロック内の符号化情報(サンプル位置、サンプル符号化モード、ループフィルタ・パラメータなど)に従って、特有の区域とすることができる。例えば、1)CCSAO適用領域は、サンプルがスキップモードで符号化されるときのみ適用されてよく、または2)CCSAO適用領域は、CTU境界に沿ってNのサンプルのみを含み、または3)CCSAO適用領域は、フレーム内の8×8格子上にのみサンプルを含み、または4)CCSAO適用領域は、DBFフィルタ・サンプルのみを含み、または5)CCSAO適用領域は、CU内に上Mおよび左Nの行のみを含む。異なる適用領域は、異なる分類子を使用することができる。異なる適用領域は、異なる分類子を使用することができる。例えば、CTUで、スキップモードはC1を使用し、8×8格子はC2を使用し、スキップモードおよび8×8格子はC3を使用する。例えば、CTUで、スキップモード・符号化サンプルはC1を使用し、CU中心のサンプルはC2を使用し、CU中心においてスキップモードで符号化されたサンプルはC3を使用する。
図29は、本開示のいくつかの実装例によって、CCSAO分類子が現在または成分間の符号化情報を考慮することができることを示す図である。例えば、異なる符号化モード/パラメータ/サンプル位置は、異なる分類子を形成することができる。異なる符号化情報が組み合わされて、共同分類子を形成することができる。異なる区域は、異なる分類子を使用することができる。
図29はまた、適用領域の別の例を示す。
【0205】
いくつかの実施形態では、実装されるCCSAO構文が以下の表27に示されている。いくつかの例では、各構文要素の2値化が変更されてよい。AVS3で、パッチという用語はスライスに類似し、パッチ・ヘッダはスライス・ヘッダに類似している。FLCは固定長コードを表す。TUは短縮単項コードを表す。EGkは、次数kを有する指数ゴロム・コードを表し、ここでkは固定されうる。SVLCは符号ありEG0を表す。UVLCは符号なしEG0を表す。
【0206】
【表38】
高次フラグがオフである場合、低次フラグがフラグのオフ状態から推論されてよく、信号化される必要はない。例えば、このピクチャ内でph_cc_sao_cb_flagが偽である場合、ph_cc_sao_cb_band_num_minus1、ph_cc_sao_cb_luma_type、cc_sao_cb_offset_sign_flag、cc_sao_cb_offset_abs、ctb_cc_sao_cb_flag、cc_sao_cb_merge_left_flag、およびcc_sao_cb_merge_up_flagは存在せず、偽であると推論される。
【0207】
いくつかの実施形態では、以下の表28に示されているように、SPSのccsao_enabled_flagがSPSのSAO有効化フラグで調整される。
【0208】
【表39】
いくつかの実施形態では、ph_cc_sao_cb_ctb_control_flag、ph_cc_sao_cr_ctb_control_flagが、Cb/CrのCTBオン/オフ制御の粒度を有効化するかどうかを示す。ph_cc_sao_cb_ctb_control_flagおよびph_cc_sao_cr_ctb_control_flagが有効化された場合、ctb_cc_sao_cb_flagおよびctb_cc_sao_cr_flagがさらに信号化されうる。そうでない場合、CCSAOが現在のピクチャに適用されるかどうかは、ph_cc_sao_cb_flag、ph_cc_sao_cr_flagに依存し、ctb_cc_sao_cb_flagおよびctb_cc_sao_cr_flagをCTBレベルでさらに信号化しない。
【0209】
いくつかの実施形態では、ph_cc_sao_cb_typeおよびph_cc_sao_cr_typeに対して、ビットのオーバーヘッドを低減させるために、中心配列ルマ位置(
図10のY0位置)がクロマサンプルに対する分類に使用されるかどうかを区別するように、フラグがさらに信号化されうる。同様に、cc_sao_cb_typeおよびcc_sao_cr_typeがCTBレベルで信号化された場合、同じ機構によってフラグがさらに信号化されうる。例えば、C0ルマ位置候補の数が9である場合、以下で表29に示されているように、中心配列ルマ位置が使用されるかどうかを区別するために、cc_sao_cb_type0_flagがさらに信号化される。中心配列ルマ位置が使用されない場合、残り8つの隣接ルマ位置のうちのどれが使用されるかを示すために、cc_sao_cb_type_idcが使用される。
【0210】
【表40】
以下の表30は、AVSにおいて、単一(set_num=1)または複数(set_num>1)の分類子がフレーム内で使用される一例を示す。構文表記は、上記で使用されている表記にマッピングされうる。
【0211】
【0212】
【表42】
各領域が独自のセットを有する
図25または
図27と組み合わされた場合、構文の例は、以下で表31に示されているように、領域オン/オフ制御フラグ(picture_ccsao_lcu_control_flag[compIdx][setIdx])を含むことができる。
【0213】
【表43】
いくつかの実施形態では、イントラおよびインター予測後SAOフィルタへの拡張が、以下でさらに示されている。いくつかの実施形態では、本開示に開示されているSAO分類方法は、予測後フィルタとして働くことができ、予測は、イントラ、インター、または他の予測ツール、例えばイントラ・ブロック・コピーとすることができる。
図30は、本開示に開示されているSAO分類方法が本開示のいくつかの実装例に係る予測後フィルタとして働くことを示すブロック図である。
【0214】
いくつかの実施形態では、各Y、U、およびV成分に対して、対応する分類子が選択される。各成分予測サンプルに対して、対応する分類子がまず分類され、対応するオフセットが加えられる。例えば、各成分は、現在のサンプルおよび隣接するサンプルを分類に使用することができる。以下で表32に示されているように、Yは現在のYサンプルおよび隣接するYサンプルを使用し、U/Vは現在のU/Vサンプルを分類に使用する。
図31は、本開示のいくつかの実装例によって、予測後SAOフィルタに対して、各成分が現在のサンプルおよび隣接するサンプルを分類に使用することができることを示すブロック図である。
【0215】
【表44】
pred’)が、対応するクラス・オフセットを加えることによって更新され、その後、イントラ、インター、または他の予測に使用される。
【0216】
Ypred’=clip3(0,(1<<bit_depth)-1,Ypred+h_Y[i])
Upred’=clip3(0,(1<<bit_depth)-1,Upred+h_U[i])
Vpred’=clip3(0,(1<<bit_depth)-1,Vpred+h_V[i])
いくつかの実施形態では、現在のクロマ成分に加えて、クロマのUおよびV成分に対して、成分間(Y)がさらなるオフセット分類に使用されうる。例えば以下で表33に示されているように、追加の成分間オフセット(h’_U,h’_V)が、現在の成分オフセット(h_U,h_V)で加えられうる。
【0217】
【表45】
いくつかの実施形態では、改良された予測サンプル(Upred”,Vpred”)が、対応するクラス・オフセットを加えることによって更新され、その後、イントラ、インター、または他の予測に使用される。
【0218】
Upred”=clip3(0,(1<<bit_depth)-1,Upred’+h’_U[i])
Vpred”=clip3(0,(1<<bit_depth)-1,Vpred’+h’_V[i])
いくつかの実施形態では、イントラおよびインター予測は、異なるSAOフィルタ・オフセットを使用することができる。
【0219】
図32は、本開示のいくつかの実装例に係る成分間相関を使用してビデオ信号を復号する例示的なプロセス3200を示す流れ図である。
【0220】
ビデオデコーダ30(
図3に示されている)が、ビデオ信号から、第1の色空間内に第1の成分および第2の成分を含むピクチャフレームを受信する(3210)。
【0221】
ビデオデコーダ30は、第1の色空間内の第2の成分のそれぞれのサンプルに関連付けられた第2の色空間内の第1の成分の第1のセットの1つまたは複数のサンプルから、第1の色空間内の第2の成分に対する分類子を決定する(3220)。
【0222】
ビデオデコーダ30は、分類子に従って、第1の色空間内の第2の成分のそれぞれのサンプルに対するサンプルオフセットを決定する(3230)。
【0223】
ビデオデコーダ30は、決定されたサンプルオフセットに基づいて、第1の色空間内の第2の成分のそれぞれのサンプルの値を修正する(3240)。
【0224】
いくつかの実施形態では、第1の成分は、ルマ成分、第1のクロマ成分、および第2のクロマ成分からなるグループから選択された成分であり、第2の成分は、ルマ成分、第1のクロマ成分、および第2のクロマ成分からなるグループから選択された成分である。
【0225】
いくつかの実施形態では、第1のセットの1つまたは複数のサンプルは、線形変換を使用して、第1の色空間からの第2の成分のそれぞれのサンプルに関連付けられた第1の成分の1つまたは複数のサンプルを第2の色空間に変換することによって取得される。
【0226】
いくつかの実施形態では、線形変換は、
O1=a×I1+b×I2+c×I3
O2=d×I1+e×I2+f×I3
O3=g×I1+h×I2+i×I3
によって表され、上式で、a、b、c、d、e、f、g、h、iは、所定の定数であり、I1、I2、I3は、それぞれ第1の色空間内の第1の成分、第2の成分、および第3の成分のサンプルの値であり、O1、O2、O3は、それぞれ第2の色空間内の第1の成分、第2の成分、および第3の成分のサンプルの値である。
【0227】
いくつかの実施形態では、第1の色空間はYUV色空間であり、第2の色空間はRGB色空間である。
【0228】
いくつかの実施形態では、第1の色空間はRGB色空間であり、第2の色空間はYUV色空間である。
【0229】
いくつかの実施形態では、第1のセットの1つまたは複数のサンプルは、非線形変換を使用して、第1の色空間からの第2の成分のそれぞれのサンプルに関連付けられた第1の成分の1つまたは複数のサンプルを第2の色空間に変換することによって取得される。
【0230】
いくつかの実施形態では、分類子を決定すること(3220)は、第2の成分のそれぞれのサンプルに関連付けられた第2の成分の第2のセットの1つまたは複数のサンプルからさらに、第1の色空間内の第2の成分に対する分類子を決定することをさらに含み、第2のセットの1つまたは複数のサンプルは、第1の色空間内または第2の色空間内に位置する。
【0231】
いくつかの実施形態では、ピクチャフレームは、第3の成分をさらに含み、分類子を決定すること(3220)は、第2の成分のそれぞれのサンプルに関連付けられた第3の成分の第3のセットの1つまたは複数のサンプルからさらに、第1の色空間内の第2の成分に対する分類子を決定することをさらに含み、第3の成分は第2のクロマ成分であり、第3のセットの1つまたは複数のサンプルは、第1の色空間内または第2の色空間内に位置する。
【0232】
いくつかの実施形態では、分類子は、第1のサブ分類子および/または第2のサブ分類子のうちの少なくとも1つによって決定され、第1のサブ分類子は、第1の成分の第1のセットの1つまたは複数のサンプルの値の第1のダイナミックレンジを第1の数のバンドに分割し、第1の成分の第1のセットの1つまたは複数のサンプルの強度値に基づいてバンドを選択することによって決定され、第2のサブ分類子は、第2の成分の第2のセットの1つまたは複数のサンプルの第1のサブグループのエッジ情報の方向および強度に基づいて決定される。
【0233】
いくつかの実施形態では、第1の成分は第1のクロマ成分であり、第2の成分はルマ成分であり、第2の成分のそれぞれのサンプルに関連付けられた第1の成分の第1のセットの1つまたは複数のサンプルは、第2の成分のそれぞれのサンプルに対する第1の成分の配列および隣接サンプルのうちの1つまたは複数から選択される。
【0234】
いくつかの実施形態では、第2の成分のそれぞれのサンプルに関連付けられた第2の成分の第2のセットの1つまたは複数のサンプルは、第2の成分のそれぞれのサンプルに対する第2の成分の現在のサンプルおよび隣接サンプルのうちの1つまたは複数から選択される。
【0235】
いくつかの実施形態では、分類子を決定すること(3220)は、第2の成分のそれぞれのサンプルに関連付けられた第1、第2、および第3の成分のうちの1つまたは複数の第4のセットの1つまたは複数のサンプルからさらに、第1の色空間内の第2の成分に対する分類子を決定することをさらに含み、第4のセットの1つまたは複数のサンプルは、第1の色空間内または第2の色空間内に位置する。
【0236】
いくつかの実施形態では、分類子を決定すること(3220)は、第4のセットの1つまたは複数のサンプルの以前の符号化情報からさらに、第1の色空間内の第2の成分に対する分類子を決定することをさらに含む。
【0237】
いくつかの実施形態では、分類子を決定すること(3220)は、分類子のクラスインデックスを、
ClassIdx=Index2ClassTable(f(C,P1)+f(C,P2)+...+f(C,P8))
として決定することをさらに含み、上式で、Cは現在のサンプルまたは配列サンプルの値であり、P1,P2,...P8は隣接サンプルの値であり、Index2ClassTableはインデックスクラスの予め規定された表であり、thは閾値であり、x-y>thである場合、f(x,y)=1であり、x-y=thである場合、f(x,y)=0であり、x-y<thである場合、f(x,y)=-1である。
【0238】
図33は、ユーザインターフェース3350に結合されたコンピューティング環境3310を示す。コンピューティング環境3310は、データ処理サーバの一部とすることができる。コンピューティング環境3310は、プロセッサ3320、メモリ3330、および入出力(I/O)インターフェース3340を含む。
【0239】
プロセッサ3320は、典型的に、表示、データ取得、データ通信、および画像処理に関連付けられた動作など、コンピューティング環境3310の全体的な動作を制御する。プロセッサ3320は、前述の方法におけるステップのうちの全てまたはいくつかを実行するための命令を実行するために、1つまたは複数のプロセッサを含むことができる。さらに、プロセッサ3320は、プロセッサ3320と他の構成要素との間の相互作用を容易にする1つまたは複数のモジュールを含むことができる。プロセッサは、中央処理装置(CPU)、マイクロプロセッサ、単一チップ機械、グラフィカル処理ユニット(GPU)などとすることができる。
【0240】
メモリ3330は、コンピューティング環境3310の動作に対応するために、様々なタイプのデータを記憶するように構成される。メモリ3330は、所定のソフトウェア3332を含むことができる。そのようなデータの例は、コンピューティング環境3310、ビデオデータセット、画像データなどで動作させられる任意のアプリケーションまたはメソッドのための命令を含む。メモリ3330は、任意のタイプの揮発性もしくは不揮発性メモリ・デバイス、またはこれらの組合せ、例えばスタティック・ランダム・アクセス・メモリ(SRAM)、電気的に消去可能なプログラマブル読取り専用メモリ(EEPROM)、消去可能なプログラマブル読取り専用メモリ(EPROM)、プログラマブル読取り専用メモリ(PROM)、読取り専用メモリ(ROM)、磁気メモリ、フラッシュメモリ、磁気または光ディスクを使用することによって実装されうる。
【0241】
I/Oインターフェース3340は、プロセッサ3320と、キーボード、クリック・ホイール、ボタンなどの周辺インターフェース・モジュールとの間のインターフェースを提供する。ボタンは、それだけに限定されるものではないが、ホーム・ボタン、走査開始ボタン、および走査停止ボタンを含むことができる。I/Oインターフェース3340は、エンコーダおよびデコーダに結合されうる。
【0242】
一実施形態では、前述の方法を実行するためにコンピューティング環境3310内でプロセッサ3320によって実行可能な複数のプログラムを例えばメモリ3330内に備える非一時的コンピュータ可読記憶媒体も提供される。別法として、非一時的コンピュータ可読記憶媒体には、符号化されたビデオ情報(例えば、1つまたは複数の構文要素を含むビデオ情報)を含むビットストリームまたはデータストリームが記憶されてよく、このビットストリームまたはデータストリームは、例えばビデオデータを復号する際にデコーダ(例えば、
図3のビデオデコーダ30)によって使用される上述された符号化方法を使用して、エンコーダ(例えば、
図2のビデオエンコーダ20)によって生成される。非一時的コンピュータ可読記憶媒体は、例えば、ROM、ランダム・アクセス・メモリ(RAM)、CD-ROM、磁気テープ、フロッピー・ディスク、光データストレージデバイスなどとすることができる。
【0243】
一実施形態では1つまたは複数のプロセッサ(例えば、プロセッサ3320)と、1つまたは複数のプロセッサによって実行可能な複数のプログラムが記憶された非一時的コンピュータ可読記憶媒体またはメモリ3330とを備えるコンピューティング・デバイスも提供され、1つまたは複数のプロセッサは、複数のプログラムの実行時に、前述の方法を実行するように構成される。
【0244】
一実施形態では、前述の方法を実行するためにコンピューティング環境3310内でプロセッサ3320によって実行可能な複数のプログラムを例えばメモリ3330内に備えるコンピュータ・プログラム製品も提供される。例えば、コンピュータ・プログラム製品は、非一時的コンピュータ可読記憶媒体を含むことができる。
【0245】
一実施形態では、コンピューティング環境3310は、上記の方法を実行するために、1つまたは複数のASIC、DSP、デジタル信号処理デバイス(DSPD)、プログラマブル論理デバイス(PLD)、FPGA、GPU、コントローラ、マイクロコントローラ、マイクロプロセッサ、または他の電子構成要素によって実装されうる。
【0246】
さらなる実施形態はまた、様々な他の実施形態で組み合わされまたは他の方法で再配置された上記の実施形態の様々な部分集合を含む。
【0247】
1つまたは複数の例では、記載されている機能は、ハードウェア、ソフトウェア、ファームウェア、またはこれらの任意の組合せで実装されうる。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとして、コンピュータ可読媒体上に記憶されてよく、またはコンピュータ可読媒体を介して伝送されてよく、ハードウェア・ベースの処理ユニットによって実行されてよい。コンピュータ可読媒体は、データ記憶媒体などの有形の媒体に対応するコンピュータ可読記憶媒体、または例えば通信プロトコルに従ったある場所から別の場所へのコンピュータ・プログラムの伝達を容易にする任意の媒体を含む通信媒体を含むことができる。このようにして、コンピュータ可読媒体は、概して、(1)非一時的である有形のコンピュータ可読記憶媒体、または(2)信号もしくはキャリア波などの通信媒体に対応することができる。データ記憶媒体は、本出願に記載されている実装例の実装のための命令、コード、および/またはデータ構造を取り出すために、1つもしくは複数のコンピュータまたは1つもしくは複数のプロセッサによってアクセスされうる任意の利用可能な媒体とすることができる。コンピュータ・プログラム製品は、コンピュータ可読媒体を含むことができる。
【0248】
本明細書の実装例の説明で使用される術語は、特定の実装例について説明することのみを目的とし、特許請求の範囲を限定することを意図したものではない。実装例の説明および添付の特許請求の範囲で使用されるとき、単数形の「a」、「an」、および「the」は、別途文脈が明白に示さない限り、複数形も同様に含むことが意図される。本明細書では、「および/または」という用語は、挙げられている関連項目のうちの1つまたは複数のあらゆる可能な組合せを指し、包含することも理解されよう。「備える、含む(comprises)」および/または「備える、含む(comprising)」という用語は、本明細書で使用されるとき、記載の特徴、要素、および/または構成要素の存在を指定するが、1つまたは複数の他の特徴、要素、構成要素、および/またはこれらのグループの存在または追加を除外しないことがさらに理解されよう。
【0249】
本明細書では、様々な要素について説明するために、第1、第2などの用語が使用されうるが、これらの要素は、これらの用語によって限定されるべきではないことも理解されよう。これらの用語は、1つの要素を別の要素から区別するためにのみ使用される。例えば、実装例の範囲から逸脱することなく、第1の電極が第2の電極と呼ばれてもよく、同様に第2の電極が第1の電極と呼ばれてもよい。第1の電極および第2の電極はどちらも電極であるが、同じ電極ではない。
【0250】
本明細書全体にわたって、単数または複数の「一例」、「例」、「例示」などの参照は、ある例に関連して記載されている1つまたは複数の特定の特徴、構造、または特性が、本開示の少なくとも1つの例に含まれることを意味する。したがって、本明細書全体にわたって様々な場所での単数または複数の「一例では」または「例では」、「例示では」などの語句は、必ずしも全て同じ例を指すとは限らない。さらに、1つまたは複数の例における特定の特徴、構造、または特性は、任意の好適な方法で組み合わされることを含むことができる。
【0251】
本出願の説明は、例示および説明の目的で提示されており、網羅的であること、または開示される形態で本発明に限定されることが意図されるものではない。多くの修正例、変形例、および代替実装例が、上記の説明および関連する図面に提示される教示に利益を有する当業者には明らかであろう。実施形態は、本発明の原理、実際の応用について最善に説明するために、また当業者であれば様々な実装例に関して本発明を理解し、企図される特定の用途に適した様々な修正例とともに根本的な原理および様々な実装例を最善に利用することを可能にするために、選択および記載されたものである。したがって、特許請求の範囲は、開示される実装例の特有の例に限定されるものではなく、修正例および他の実装例も添付の特許請求の範囲内に含まれることが意図されることを理解されたい。
【手続補正書】
【提出日】2023-08-31
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
ビデオ信号を復号する方法であって、
前記ビデオ信号から、第1の色空間内に第1の成分および第2の成分を含むピクチャフレームを受信することと、
前記第1の色空間内の前記第2の成分のそれぞれのサンプルに関連付けられた第2の色空間内の前記第1の成分の第1のセットの1つまたは複数のサンプルから、前記第1の色空間内の前記第2の成分に対する分類子を決定することと、
前記分類子に従って、前記第1の色空間内の前記第2の成分の前記それぞれのサンプルに対するサンプルオフセットを決定することと、
決定された前記サンプルオフセットに基づいて、前記第1の色空間内の前記第2の成分の前記それぞれのサンプルの値を修正することと、を含む方法。
【請求項2】
前記第1の成分が、ルマ成分、第1のクロマ成分、および第2のクロマ成分からなるグループから選択された成分であり、
前記第2の成分が、前記ルマ成分、前記第1のクロマ成分、および前記第2のクロマ成分からなるグループから選択された成分である、
請求項1に記載の方法。
【請求項3】
前記第1のセットの1つまたは複数のサンプルが、線形変換を使用して、前記第1の色空間からの前記第2の成分の前記それぞれのサンプルに関連付けられた前記第1の成分の1つまたは複数のサンプルを前記第2の色空間に変換することによって取得される、請求項1に記載の方法。
【請求項4】
前記線形変換が、
O
1=a×I
1+b×I
2+c×I
3
O
2=d×I
1+e×I
2+f×I
3
O
3=g×I
1+h×I
2+i×I
3
によって表され、上式で、a、b、c、d、e、f、g、h、iが、所定の定数であり、I
1、I
2、I
3が、それぞれ前記第1の色空間内の前記第1の成分、前記第2の成分、および第3の成分のサンプルの値であり、O
1、O
2、O
3が、それぞれ前記第2の色空間内の前記第1の成分、前記第2の成分、および前記第3の成分のサンプルの値である、請求項3に記載の方法。
【請求項5】
前記第1の色空間がYUV色空間であり、前記第2の色空間がRGB色空間である、請求項1に記載の方法。
【請求項6】
前記第1の色空間がRGB色空間であり、前記第2の色空間がYUV色空間である、請求項1に記載の方法。
【請求項7】
前記第1のセットの1つまたは複数のサンプルが、非線形変換を使用して、前記第1の色空間からの前記第2の成分の前記それぞれのサンプルに関連付けられた前記第1の成分の1つまたは複数のサンプルを前記第2の色空間に変換することによって取得される、請求項1に記載の方法。
【請求項8】
前記分類子を決定することが、前記第2の成分の前記それぞれのサンプルに関連付けられた前記第2の成分の第2のセットの1つまたは複数のサンプルからさらに、前記第1の色空間内の前記第2の成分に対する前記分類子を決定することをさらに含み、前記第2のセットの1つまたは複数のサンプルが、前記第1の色空間内または前記第2の色空間内に位置する、請求項1に記載の方法。
【請求項9】
前記ピクチャフレームが、第3の成分をさらに含み、前記分類子を決定することが、前記第2の成分の前記それぞれのサンプルに関連付けられた前記第3の成分の第3のセットの1つまたは複数のサンプルからさらに、前記第1の色空間内の前記第2の成分に対する前記分類子を決定することをさらに含み、前記第3の成分が第2のクロマ成分であり、前記第3のセットの1つまたは複数のサンプルが、前記第1の色空間内または前記第2の色空間内に位置する、請求項8に記載の方法。
【請求項10】
前記分類子が、第1のサブ分類子および/または第2のサブ分類子のうちの少なくとも1つによって決定され、前記第1のサブ分類子が、前記第1の成分の前記第1のセットの1つまたは複数のサンプルの値の第1のダイナミックレンジを第1の数のバンドに分割し、前記第1の成分の前記第1のセットの1つまたは複数のサンプルの強度値に基づいて、バンドを選択することによって決定され、前記第2のサブ分類子が、前記第2の成分の前記第2のセットの1つまたは複数のサンプルの第1のサブグループのエッジ情報の方向および強度に基づいて決定される、請求項8に記載の方法。
【請求項11】
前記第1の成分が第1のクロマ成分であり、前記第2の成分がルマ成分であり、前記第2の成分の前記それぞれのサンプルに関連付けられた前記第1の成分の前記第1のセットの1つまたは複数のサンプルが、前記第2の成分の前記それぞれのサンプルに対する前記第1の成分の配列および隣接サンプルのうちの1つまたは複数から選択される、請求項1に記載の方法。
【請求項12】
前記第2の成分の前記それぞれのサンプルに関連付けられた前記第2の成分の前記第2のセットの1つまたは複数のサンプルが、前記第2の成分の前記それぞれのサンプルに対する前記第2の成分の現在のサンプルおよび隣接サンプルのうちの1つまたは複数から選択される、請求項8に記載の方法。
【請求項13】
前記分類子を決定することが、前記第2の成分の前記それぞれのサンプルに関連付けられた前記第1、第2、および第3の成分のうちの1つまたは複数の第4のセットの1つまたは複数のサンプルからさらに、前記第1の色空間内の前記第2の成分に対する前記分類子を決定することをさらに含み、前記第4のセットの1つまたは複数のサンプルが、前記第1の色空間内または前記第2の色空間内に位置する、請求項1に記載の方法。
【請求項14】
前記分類子を決定することが、前記第4のセットの1つまたは複数のサンプルの以前の符号化情報からさらに、前記第1の色空間内の前記第2の成分に対する前記分類子を決定することをさらに含む、請求項13に記載の方法。
【請求項15】
前記分類子を決定することが、前記分類子のクラスインデックスを、
ClassIdx=Index2ClassTable(f(C,P1)+f(C,P2)+...+f(C,P8))
として決定することをさらに含み、上式で、Cは現在のサンプルまたは配列サンプルの値であり、P1,P2,...P8は隣接サンプルの値であり、Index2ClassTableはインデックスクラスの予め規定された表であり、thは閾値であり、x-y>thである場合、f(x,y)=1であり、x-y=thである場合、f(x,y)=0であり、x-y<thである場合、f(x,y)=-1である、請求項13に記載の方法。
【請求項16】
1つまたは複数の処理ユニットと、
前記1つまたは複数の処理ユニットに結合されたメモリと、
前記メモリ内に記憶された複数のプログラムと、を備える電子装置であって、前記複数のプログラムが、前記1つまたは複数の処理ユニットによって実行されたとき、前記電子装置に、請求項1から15のいずれか一項に記載の方法を実行させる、
電子装置。
【請求項17】
請求項1から15のいずれか一項に記載のビデオ信号を復号する方法によって復号されたビデオ情報を含むビットストリーム。
【請求項18】
1つまたは複数の処理ユニットを有する電子装置による実行のために、複数のプログラムを記憶する非一時的コンピュータ可読記憶媒体であって、前記複数のプログラムが、前記1つまたは複数の処理ユニットによって実行されたとき、前記電子装置に、請求項1から15のいずれか一項に記載の方法を実行させる、非一時的コンピュータ可読記憶媒体。
【請求項19】
1つまたは複数の処理ユニットを有する電子装置により実行される命令を含み、前記命令が、前記1つまたは複数の処理ユニットにより実行されるとき、前記電子装置に請求項1から15のいずれか一項に記載の方法を実行させる、コンピュータプログラム。
【請求項20】
画像復号装置によって復号されるビットストリームを受信する方法であって、前記画像復号装置は、請求項1から15のいずれか一項に記載の方法を実行するように構成された1つまたは複数の処理ユニットを備える、方法。
【国際調査報告】