JP2024507857A - 成分間サンプル適応オフセットにおけるコーディングの強化 - Google Patents

成分間サンプル適応オフセットにおけるコーディングの強化 Download PDF

Info

Publication number
JP2024507857A
JP2024507857A JP2023550329A JP2023550329A JP2024507857A JP 2024507857 A JP2024507857 A JP 2024507857A JP 2023550329 A JP2023550329 A JP 2023550329A JP 2023550329 A JP2023550329 A JP 2023550329A JP 2024507857 A JP2024507857 A JP 2024507857A
Authority
JP
Japan
Prior art keywords
component
samples
sample
classifier
video
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2023550329A
Other languages
English (en)
Inventor
クオ、チョー-ウェイ
シウ、シャオユー
チェン、ウェイ
ワン、シャンリン
チェン、イ-ウェン
チュー、ホン-チェン
ユー、ビン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Dajia Internet Information Technology Co Ltd
Original Assignee
Beijing Dajia Internet Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Dajia Internet Information Technology Co Ltd filed Critical Beijing Dajia Internet Information Technology Co Ltd
Publication of JP2024507857A publication Critical patent/JP2024507857A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

電子装置が、ビデオデータを復号する方法を実行し、この方法は、ビデオ信号から、第1の成分および第2の成分を含むピクチャフレームを受信することと、第1の成分のそれぞれのサンプルに関連付けられた第2の成分の第1のセットの1つまたは複数のサンプル、および第1の成分のそれぞれのサンプルに関連付けられた第1の成分の第2のセットの1つまたは複数のサンプルに基づいて、第1の成分に対する分類子を決定することと、分類子に従って、第1の成分のそれぞれのサンプルに対するサンプルオフセットを決定することと、決定されたサンプルオフセットに基づいて、第1の成分のそれぞれのサンプルの値を修正することとを含む。いくつかの実施形態では、第1の成分はルマ成分であり、第2の成分はクロマ成分であり、分類子は、バンド・オフセット分類子およびエッジ・オフセット分類子の組合せによって決定される。

Description

関連出願
本出願は、全体として参照により組み込まれている、2021年2月22日に出願された「Cross-component Sample Adaptive Offset」という名称の米国仮特許出願第63/152,324号に対する優先権を主張するものである。
本出願は、一般に、ビデオのコーディングおよび圧縮に関し、より詳細には、ルマおよびクロマ両方のコーディング効率を改善する方法および装置に関する。
デジタルビデオは、デジタルテレビジョン、ラップトップまたはデスクトップ・コンピュータ、タブレットコンピュータ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲーミングコンソール、スマートフォン、ビデオ遠隔会議デバイス、ビデオストリーミングデバイスなどの様々な電子デバイスによって対応される。電子デバイスは、ビデオ圧縮/解凍規格を実装することによって、デジタルビデオデータの伝送、受信、符号化、復号、および/または記憶を行う。いくつかのよく知られているビデオコーディング規格には、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によって開発された別のビデオ圧縮規格シリーズである。
ビデオ圧縮は、典型的に、ビデオデータに固有の冗長性を低減または除去するために、空間(イントラフレーム)予測および/または時間(インターフレーム)予測を実行することを含む。ブロックベースのビデオコーディングの場合、1つのビデオフレームが1つまたは複数のスライスに分割され、各スライスが複数のビデオブロックを有しており、ビデオブロックは、コーディングツリーユニット(CTU)と呼ばれることもある。各CTUは、1つのコーディングユニット(CU)を含むことができ、または事前定義された最小CUサイズに到達するまで、より小さいCUに再帰的に分割されてもよい。各CU(リーフCUとも呼ばれる)は1つまたは複数の変換ユニット(TU)を含み、各CUはまた、1つまたは複数の予測ユニット(PU)を含む。各CUは、イントラ、インター、またはIBCモードでコード化されうる。ビデオフレームのイントラ符号化(I)スライス内のビデオブロックは、同じビデオフレーム内の隣接ブロックにおける基準サンプルに対する空間予測を使用して符号化される。ビデオフレームのインター・コード化(PまたはB)スライス内のビデオブロックは、同じビデオフレーム内の隣接ブロックにおける基準サンプルに対する空間予測、または他の以前および/もしくは将来の基準ビデオフレーム内の基準サンプルに対する時間予測を使用することができる。
前に符号化された基準ブロック、たとえば隣接ブロックに基づく空間または時間予測は、コード化されるべき現在のビデオブロックに対する予測ブロックを生じさせる。基準ブロックを発見するプロセスは、ブロック・マッチング・アルゴリズムによって実現されうる。コード化されるべき現在のブロックと予測ブロックとの間の画素差を表す残差データが、残差ブロックまたは予測誤差と呼ばれる。インター・コード化ブロックは、予測ブロックを形成する基準フレーム内の基準ブロックおよび残差ブロックを指す動きベクトルに従って符号化される。動きベクトルを決定するプロセスは、典型的に、動き推定と呼ばれる。イントラ符号化ブロックは、イントラ予測モードおよび残差ブロックに従って符号化される。さらに圧縮する場合、残差ブロックが画素ドメインから変換ドメイン、たとえば周波数ドメインに変換されて、残差変換係数を生じさせ、残差変換係数は次いで量子化されてもよい。量子化された変換係数は、最初は2次元アレイで配列されており、走査されて変換係数の1次元ベクトルをもたらすことができ、次いでビデオビットストリームにエントロピー符号化されて、さらなる圧縮を実現することができる。
符号化されたビデオビットストリームは次いで、デジタルビデオ能力を有する別の電子デバイスによってアクセスされるようにコンピュータ可読記憶媒体(たとえば、フラッシュ・メモリ)内に保存され、または電子デバイスへ有線もしくは無線で直接伝送される。電子デバイスは次いで、たとえば符号化されたビデオビットストリームを解析して、ビットストリームから構文要素を取得し、ビットストリームから取得された構文要素に少なくとも部分的に基づいて、符号化されたビデオビットストリームからデジタルビデオデータをその元の形式に再構築することによって、ビデオの解凍(上述されたビデオ圧縮とは逆のプロセスである)を実行し、再構成デジタルビデオデータを電子デバイスのディスプレイ上に描画する。
デジタルビデオの品質が高解像度から4K×2K、またはさらには8K×4Kになるとともに、符号化/復号されるべきビデオデータの量は指数関数的に増加する。復号されたビデオデータの画像品質を維持しながら、ビデオデータがより効率的に符号化/復号されうる方法が、常に課題となっている。
本出願は、ビデオデータの符号化および復号、より詳細には、ルマ成分とクロマ成分との間の成分間の関係を探ることによってコーディング効率を改善することを含めて、ルマ成分およびクロマ成分両方のコーディング効率を改善する方法および装置に関係する実装例を記載する。
本出願の第1の態様によれば、ビデオ信号を復号する方法が、ビデオ信号から、第1の成分および第2の成分を含むピクチャフレームを受信することと、第1の成分のそれぞれのサンプルに関連付けられた第2の成分の第1のセットの1つまたは複数のサンプル、および第1の成分のそれぞれのサンプルに関連付けられた第1の成分の第2のセットの1つまたは複数のサンプルに基づいて、第1の成分に対する分類子を決定することと、分類子に従って、第1の成分のそれぞれのサンプルに対するサンプルオフセットを決定することと、決定されたサンプルオフセットに基づいて、第1の成分のそれぞれのサンプルの値を修正することとを含む。
本出願の第2の態様によれば、電子装置が、1つまたは複数の処理ユニットと、メモリと、メモリ内に記憶された複数のプログラムとを含む。プログラムは、1つまたは複数の処理ユニットによって実行されたとき、電子装置に、上述されたビデオ信号をコード化する方法を実行させる。
本出願の第3の態様によれば、非一時的コンピュータ可読記憶媒体が、1つまたは複数の処理ユニットを有する電子装置による実行のために、複数のプログラムを記憶する。プログラムは、1つまたは複数の処理ユニットによって実行されたとき、電子装置に、上述されたビデオ信号をコード化する方法を実行させる。
本出願の第4の態様によれば、コンピュータ可読記憶媒体が、上述されたビデオ復号方法によって生成されたビデオ情報を含むビットストリームを記憶する。
上記の概略的な説明および以下の詳細な説明はどちらも単なる例であり、本開示を制限するものではないことを理解されたい。
添付の図面は、実装例のさらなる理解を提供するために含まれ、本明細書に組み込まれて、本明細書の一部を構成するものであり、記載される実装例を示し、本説明とともに根本的な原理を説明する働きをする。同じ参照番号は、対応する部分を指す。
本開示のいくつかの実装例に係る例示的なビデオ符号化および復号システムを示すブロック図である。 本開示のいくつかの実装例に係る例示的なビデオエンコーダを示すブロック図である。 本開示のいくつかの実装例に係る例示的なビデオデコーダを示すブロック図である。 本開示のいくつかの実装例によってフレームが異なるサイズおよび形状の複数のビデオブロックにどのように再帰的に分割されるかを示すブロック図である。 本開示のいくつかの実装例によってフレームが異なるサイズおよび形状の複数のビデオブロックにどのように再帰的に分割されるかを示すブロック図である。 本開示のいくつかの実装例によってフレームが異なるサイズおよび形状の複数のビデオブロックにどのように再帰的に分割されるかを示すブロック図である。 本開示のいくつかの実装例によってフレームが異なるサイズおよび形状の複数のビデオブロックにどのように再帰的に分割されるかを示すブロック図である。 本開示のいくつかの実装例によってフレームが異なるサイズおよび形状の複数のビデオブロックにどのように再帰的に分割されるかを示すブロック図である。 本開示のいくつかの実装例に係るサンプル適応オフセット(SAO)で使用される4つの勾配パターンを描くブロック図である。 本開示のいくつかの実装例によってクロマサンプルに適用され、DBF Yを入力として使用するCCSAOシステムおよびプロセスを示すブロック図である。 本開示のいくつかの実装例によってルマサンプルおよびクロマサンプルに適用され、DBF Y/Cb/Crを入力として使用するCCSAOシステムおよびプロセスを示すブロック図である。 本開示のいくつかの実装例によって独立して機能することができるCCSAOシステムおよびプロセスを示すブロック図である。 本開示のいくつかの実装例によって同じまたは異なるオフセットで再帰的に適用(2またはN回)されうるCCSAOシステムおよびプロセスを示すブロック図である。 本開示のいくつかの実装例によってAVS規格において強化されたサンプル適応オフセット(ESAO)に並行して適用されたCCSAOシステムおよびプロセスを示すブロック図である。 本開示のいくつかの実装例によってSAO後に適用されたCCSAOシステムおよびプロセスを示すブロック図である。 本開示のいくつかの実装例によってCCSAOシステムおよびプロセスがCCALFなしで独立して機能することができることを示すブロック図である。 本開示のいくつかの実装例によって成分間適応ループ・フィルタ(CCALF)に並行して適用されたCCSAOシステムおよびプロセスを示すブロック図である。 本開示のいくつかの実装例に係るCCSAOを使用するサンプル・プロセスを示すブロック図である。 本開示のいくつかの実装例によってCCSAOプロセスが垂直および水平デブロッキングフィルタ(DBF)にインターリーブされることを示すブロック図である。 本開示のいくつかの実装例に係る成分間相関を使用してビデオ信号を復号する例示的なプロセスを示す流れ図である。 本開示のいくつかの実装例に係るC0分類に異なるルマ(またはクロマ)サンプル位置を使用する分類子を示すブロック図である。 本開示のいくつかの実装例に係るルマ候補に対する異なる形状のいくつかの例を示す図である。 本開示のいくつかの実装例によってすべての配列および隣接ルマ/クロマサンプルがCCSAO分類に供給されうることを示すサンプル・プロセスのブロック図である。 本開示のいくつかの実装例によって、配列ルマサンプル値を、配列および隣接ルマサンプルに加重することによって取得された値に交換することによって、例示的な分類子を示す図である。 本開示のいくつかの実装例によって、分類に使用された配列および隣接ルマ(クロマ)サンプルのいずれかが現在のピクチャの外側にある場合に、CCSAOが現在のクロマ(ルマ)サンプルに適用されないことを示すブロック図である。 本開示のいくつかの実装例によって、分類に使用された配列および隣接ルマまたはクロマサンプルのいずれかが現在のピクチャの外側にある場合に、CCSAOが現在のルマまたはクロマサンプルに適用されることを示すブロック図である。 本開示のいくつかの実装例によって、分類に使用された対応する選択された配列または隣接ルマサンプルが仮想境界(VB)によって画定された仮想空間の外側にある場合に、CCSAOが現在のクロマサンプルに適用されないことを示すブロック図である。 本開示のいくつかの実装例によって、反復またはミラー・パディングが、仮想境界の外側にあるルマサンプルに適用されることを示す図である。 本開示のいくつかの実装例によって、9つすべての配列および隣接ルマサンプルが分類に使用される場合に、追加の1ルマラインバッファが必要とされることを示す図である。 本開示のいくつかの実装例によって、AVSにおいて、VBを交差する9つのルマ候補CCSAOが、2つの追加のルマラインバッファだけ増大しうることを示す図である。 本開示のいくつかの実装例によって、VVCにおいて、VBを交差する9つのルマ候補CCSAOが、1つの追加のルマラインバッファだけ増大しうることを示す図である。 本開示のいくつかの実装例によって、配列または隣接クロマサンプルが現在のルマサンプルを分類するために使用されるとき、選択されたクロマ候補がVBを横切り、追加のクロマ線バッファを必要としうることを示す図である。 本開示のいくつかの実装例によって、AVSおよびVVCにおいて、クロマサンプルのルマ候補のいずれかがVBを横切る(現在のクロマサンプルVBの外側にある)場合に、CCSAOがクロマサンプルに対して無効化されることを示す図である。 本開示のいくつかの実装例によって、AVSおよびVVCにおいて、クロマサンプルのルマ候補のいずれかがVBを横切る(現在のクロマサンプルVBの外側にある)場合に、CCSAOがクロマサンプルに対して無効化されることを示す図である。 本開示のいくつかの実装例によって、AVSおよびVVCにおいて、クロマサンプルのルマ候補のいずれかがVBを横切る(現在のクロマサンプルVBの外側にある)場合に、CCSAOがクロマサンプルに対して無効化されることを示す図である。 本開示のいくつかの実装例によって、AVSおよびVVCにおいて、クロマサンプルのルマ候補のいずれかがVBを横切る(現在のクロマサンプルVBの外側にある)場合に、クロマサンプルに反復パディングを使用してCCSAOが有効化されることを示す図である。 本開示のいくつかの実装例によって、AVSおよびVVCにおいて、クロマサンプルのルマ候補のいずれかがVBを横切る(現在のクロマサンプルVBの外側にある)場合に、クロマサンプルに反復パディングを使用してCCSAOが有効化されることを示す図である。 本開示のいくつかの実装例によって、AVSおよびVVCにおいて、クロマサンプルのルマ候補のいずれかがVBを横切る(現在のクロマサンプルVBの外側にある)場合に、クロマサンプルに反復パディングを使用してCCSAOが有効化されることを示す図である。 本開示のいくつかの実装例によって、AVSおよびVVCにおいて、クロマサンプルのルマ候補のいずれかがVBを横切る(現在のクロマサンプルVBの外側にある)場合に、クロマサンプルにミラー・パディングを使用してCCSAOが有効化されることを示す図である。 本開示のいくつかの実装例によって、AVSおよびVVCにおいて、クロマサンプルのルマ候補のいずれかがVBを横切る(現在のクロマサンプルVBの外側にある)場合に、クロマサンプルにミラー・パディングを使用してCCSAOが有効化されることを示す図である。 本開示のいくつかの実装例によって、AVSおよびVVCにおいて、クロマサンプルのルマ候補のいずれかがVBを横切る(現在のクロマサンプルVBの外側にある)場合に、クロマサンプルにミラー・パディングを使用してCCSAOが有効化されることを示す図である。 本開示のいくつかの実装例によって、異なるCCSAOサンプル形状に両面対称パディングを使用してCCSAOが有効化されることを示す図である。 本開示のいくつかの実装例によって、異なるCCSAOサンプル形状に両面対称パディングを使用してCCSAOが有効化されることを示す図である。 本開示のいくつかの実装例に係る制限された数のルマ候補を分類に使用するという制限を示す図である。 本開示のいくつかの実装例によって、CCSAO適用領域がコーディングツリーブロック(CTB)/コーディングツリーユニット(CTU)境界に位置合わせされていないことを示す図である。 本開示のいくつかの実装例によって、CCSAO適用領域フレーム区分がCCSAOパラメータによって固定されうることを示す図である。 本開示のいくつかの実装例によって、CCSAO適用領域が、フレーム/スライス/CTBレベルから分割された2分木(BT)/4分木(QT)/3分木(TT)であってよいことを示す図である。 本開示のいくつかの実装例に係るピクチャフレーム内の異なるレベルで使用されて切り換えられる複数の分類子を示すブロック図である。 本開示のいくつかの実装例によって、CCSAO適用領域区分が動的でありかつピクチャ・レベルで切り替えられうることを示すブロック図である。 本開示のいくつかの実装例によって、本開示に開示されるSAO分類方法が予測後フィルタとして働くことを示すブロック図である。 本開示のいくつかの実装例によって、予測後SAOフィルタのために、各成分が現在のサンプルおよび隣接サンプルを分類に使用することができることを示すブロック図である。 本開示のいくつかの実装例に係る成分間相関を使用してビデオ信号を復号する例示的なプロセスを示す流れ図である。 本開示のいくつかの実装例に係るユーザインターフェースに結合されたコンピューティング環境を示す図である。
次に、添付の図面にその例が示されている特有の実装例を詳細に参照する。以下の詳細な説明において、本明細書に提示されている主題の理解を支援するために、多数の非限定的な特有の詳細について述べる。しかし、特許請求の範囲から逸脱することなく様々な代替手段が使用されてよく、この主題はこれらの特有の詳細がなくても実施されうることが、当業者には明らかであろう。たとえば、本明細書に提示されている主題は、デジタルビデオ能力を有する多くのタイプの電子デバイスで実装されうることが、当業者には明らかであろう。
第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規格は、ブロックベースのハイブリッド・ビデオコーディング・フレームワークの上に構築されている。
図1は、本開示のいくつかの実装例に係るビデオブロックを並行して符号化および復号するための例示的なシステム10を示すブロック図である。図1に示されているように、システム10はソースデバイス12を含み、ソースデバイス12は、ビデオデータを生成し、後に宛先デバイス14によって復号されるように符号化する。ソースデバイス12および宛先デバイス14は、デスクトップまたはラップトップ・コンピュータ、タブレットコンピュータ、スマートフォン、セットトップ・ボックス、デジタルテレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲーミングコンソール、ビデオストリーミングデバイスなどを含む多種多様な電子デバイスのいずれかを構成することができる。いくつかの実装例では、ソースデバイス12および宛先デバイス14には無線通信能力が装備される。
いくつかの実装例では、宛先デバイス14は、リンク16を介して、復号されるべき符号化されたビデオデータを受信することができる。リンク16は、符号化されたビデオデータをソースデバイス12から宛先デバイス14へ移動させることが可能な任意のタイプの通信媒体またはデバイスを備えることができる。一例では、リンク16は、ソースデバイス12が符号化されたビデオデータを直接宛先デバイス14へ実時間で伝送することを有効化するための通信媒体を備えることができる。符号化されたビデオデータは、無線通信プロトコルなどの通信規格に従って変調され、宛先デバイス14へ伝送されうる。通信媒体は、無線周波(RF)スペクトルまたは1つもしくは複数の物理的伝送線など、任意の無線または有線通信媒体を含むことができる。通信媒体は、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、またはグローバル・ネットワーク、たとえばインターネットなど、パケット・ベースのネットワークの一部を形成することができる。通信媒体は、ソースデバイス12から宛先デバイス14への通信を容易にするのに有用になりうるルータ、スイッチ、基地局、または任意の他の機器を含むことができる。
いくつかの他の実装例では、符号化されたビデオデータは、出力インターフェース22からストレージデバイス32へ伝送されうる。その後、ストレージデバイス32内の符号化されたビデオデータは、宛先デバイス14によって入力インターフェース28を介してアクセスされうる。ストレージデバイス32は、符号化されたビデオデータを記憶するためのハード・ドライブ、ブルーレイディスク、DVD、CD-ROM、フラッシュ・メモリ、揮発性もしくは不揮発性メモリ、または任意の他の好適なデジタル記憶媒体など、様々な分散型または局所アクセス型のデータ記憶媒体のいずれかを含むことができる。さらなる例では、ストレージデバイス32は、ソースデバイス12によって生成される符号化されたビデオデータを保持することができるファイル・サーバまたは別の中間ストレージデバイスに対応することができる。宛先デバイス14は、ストレージデバイス32からストリーミングまたはダウンロードを介して、記憶されたビデオデータにアクセスすることができる。ファイル・サーバは、符号化されたビデオデータを記憶し、符号化されたビデオデータを宛先デバイス14へ伝送することが可能な任意のタイプのコンピュータとすることができる。例示的なファイル・サーバは、ウェブ・サーバ(たとえば、ウェブサイト向け)、FTPサーバ、ネットワーク・アタッチ・ストレージ(NAS)デバイス、またはローカル・ディスク・ドライブを含む。宛先デバイス14は、ファイル・サーバ上に記憶されている符号化されたビデオデータにアクセスするのに好適な無線チャネル(たとえば、Wi-Fi接続)、有線接続(たとえば、DSL、ケーブル・モデムなど)、または両方の組合せを含む任意の規格データ接続を介して、符号化されたビデオデータにアクセスすることができる。ストレージデバイス32からの符号化されたビデオデータの伝送は、ストリーミング伝送、ダウンロード伝送、または両方の組合せとすることができる。
図1に示されているように、ソースデバイス12は、ビデオソース18、ビデオエンコーダ20、および出力インターフェース22を含む。ビデオソース18は、ビデオ捕捉デバイス、たとえばビデオ・カメラ、以前に捕捉されたビデオを含むビデオ・アーカイブ、ビデオ・コンテンツ・プロバイダからビデオを受信するためのビデオ・フィード・インターフェース、および/もしくはコンピュータ・グラフィックス・データをソース・ビデオとして生成するためのコンピュータ・グラフィックス・システムなどのソース、またはそのようなソースの組合せを含むことができる。一例として、ビデオソース18がセキュリティ監視システムのビデオ・カメラである場合、ソースデバイス12および宛先デバイス14は、カメラ付き電話またはテレビ電話を形成することができる。しかし、本出願に記載されている実装例は、一般のビデオコーディングに該当することができ、無線および/または有線の応用例に適用されうる。
捕捉された、事前に捕捉された、またはコンピュータで生成されたビデオは、ビデオエンコーダ20によって符号化されうる。符号化されたビデオデータは、ソースデバイス12の出力インターフェース22を介して宛先デバイス14へ直接伝送されうる。符号化されたビデオデータはまた(または別法として)、復号および/または再生のために、宛先デバイス14または他のデバイスによって後にアクセスされるように、ストレージデバイス32上へ記憶されうる。出力インターフェース22は、モデムおよび/またはトランスミッタをさらに含むことができる。
宛先デバイス14は、入力インターフェース28、ビデオデコーダ30、およびディスプレイデバイス34を含む。入力インターフェース28は、レシーバおよび/またはモデムを含むことができ、リンク16を介して符号化されたビデオデータを受信することができる。リンク16を介して通信される、またはストレージデバイス32上に提供される、符号化されたビデオデータは、ビデオデータを復号する際にビデオデコーダ30によって使用されるように、ビデオエンコーダ20によって生成された様々な構文要素を含むことができる。そのような構文要素は、通信媒体上で伝送される、記憶媒体上に記憶される、またはファイル・サーバに記憶される、符号化されたビデオデータ内に含まれうる。
いくつかの実装例では、宛先デバイス14は、ディスプレイデバイス34を含むことができ、ディスプレイデバイス34は、一体化されたディスプレイデバイスであっても、宛先デバイス14と通信するように構成された外部ディスプレイデバイスであってもよい。ディスプレイデバイス34は、復号されたビデオデータを使用者に表示し、液晶ディスプレイ(LCD)、プラズマ・ディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを構成することができる。
ビデオエンコーダ20およびビデオデコーダ30は、VVC、HEVC、MPEG-4、Part 10、Advanced Video Coding(AVC)、AVSなどの専有のもしくは業界の規格、またはそのような規格の拡張に従って動作することができる。本出願は、特有のビデオコーディング/復号規格に限定されるものではなく、他のビデオコーディング/復号規格に該当しうることを理解されたい。概して、ソースデバイス12のビデオエンコーダ20は、これらの現在または将来の規格のいずれかに従って、ビデオデータを符号化するように構成されうることが企図される。同様に、概して、宛先デバイス14のビデオデコーダ30は、これらの現在または将来の規格のいずれかに従って、ビデオデータを復号するように構成されうることも企図される。
ビデオエンコーダ20およびビデオデコーダ30は各々、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、離散論理、ソフトウェア、ハードウェア、ファームウェア、またはこれらの任意の組合せなど、様々な好適なエンコーダ回路のいずれかとして実装されうる。部分的にソフトウェアで実装されるとき、電子デバイスは、ソフトウェアに対する命令を好適な非一時的コンピュータ可読媒体に記憶し、1つまたは複数のプロセッサを使用してこれらの命令をハードウェアで実行して、本開示に開示されているビデオコーディング/復号動作を実行することができる。ビデオエンコーダ20およびビデオデコーダ30の各々は、1つまたは複数のエンコーダまたはデコーダに含まれてよく、これらはいずれも、それぞれのデバイスにおいて複合エンコーダ/デコーダ(CODEC)の一部として一体化されうる。
図2は、本出願に記載されているいくつかの実装例に係る例示的なビデオエンコーダ20を示すブロック図である。ビデオエンコーダ20は、ビデオフレーム内でビデオブロックのイントラおよびインター予測コーディングを実行することができる。イントラ予測コーディングは、所与のビデオフレームまたはピクチャ内のビデオデータの空間冗長性を低減または除去するために、空間予測に依拠する。インター予測コーディングは、ビデオ・シーケンスの隣接するビデオフレームまたはピクチャ内のビデオデータの時間冗長性を低減または除去するために、時間予測に依拠する。
図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つもしくは複数の間で分割されうる。
ビデオデータメモリ40は、ビデオエンコーダ20の構成要素によって符号化されるべきビデオデータを記憶することができる。ビデオデータメモリ40内のビデオデータは、たとえばビデオソース18から取得されうる。DPB64は、ビデオエンコーダ20(たとえば、イントラまたはインター予測コーディング・モード)がビデオデータを符号化する際に使用するための基準ビデオデータを記憶するバッファである。ビデオデータメモリ40およびDPB64は、様々なメモリ・デバイスのいずれかによって形成されうる。様々な例では、ビデオデータメモリ40は、ビデオエンコーダ20の他の構成要素とオンチップであっても、それらの構成要素に対してオフチップであってもよい。
図2に示されているように、ビデオデータを受信した後、予測処理ユニット41内の区分ユニット45が、ビデオデータをビデオブロックに分割する。この分割はまた、ビデオデータに関連付けられた4分木構造などの事前定義された分割構造に従って、ビデオフレームをスライス、タイル、または他のより大きいコーディングユニット(CU)に分割することを含むこともできる。ビデオフレームは、複数のビデオブロック(またはタイルと呼ばれる数組のビデオブロック)に分割されうる。予測処理ユニット41は、誤差結果(たとえば、コード化速度および歪みレベル)に基づいて、現在のビデオブロックに対して、複数のイントラ予測コーディング・モードのうちの1つ、または複数のインター予測コーディング・モードのうちの1つなど、複数の可能な予測コーディング・モードのうちの1つを選択することができる。予測処理ユニット41は、結果のイントラまたはインター予測コード化ブロックを、残差ブロックを生成するために加算器50に提供することができ、後に基準フレームの一部として使用するための符号化されたブロックを再構築するために加算器62に提供することができる。予測処理ユニット41はまた、動きベクトル、イントラモード・インジケータ、区分情報などの構文要素、および他のそのような構文情報を、エントロピー符号化ユニット56に提供する。
現在のビデオブロックに対して適当なイントラ予測コーディング・モードを選択するために、予測処理ユニット41内のイントラ予測処理ユニット46は、空間予測を提供するために、コード化されるべき現在のブロックと同じフレーム内の1つまたは複数の隣接ブロックに対して、現在のビデオブロックのイントラ予測コーディングを実行することができる。予測処理ユニット41内の動き推定ユニット42および動き補償ユニット44は、時間予測を提供するために、1つまたは複数の基準フレーム内の1つまたは複数の予測ブロックに対して、現在のビデオブロックのインター予測コーディングを実行する。ビデオエンコーダ20は、たとえばビデオデータの各ブロックに対して適当なコーディング・モードを選択するために、複数のコーディング・パスを実行することができる。
いくつかの実装例では、動き推定ユニット42が、ビデオフレームのシーケンス内の所定のパターンに従って、基準ビデオフレーム内の予測ブロックに対する現在のビデオフレーム内のビデオブロックの予測ユニット(PU)の変位を示す動きベクトルを生成することによって、現在のビデオフレームに対するインター予測モードを決定する。動き推定ユニット42によって実行される動き推定は、動きベクトルを生成するプロセスであり、ビデオブロックに対する動きを推定する。動きベクトルは、たとえば、現在のフレーム内でコード化されている現在のブロック(または他のコード化ユニット)に対する基準フレーム内の予測ブロック(または他のコード化ユニット)に対する現在のビデオフレームまたはピクチャ内のビデオブロックのPUの変位を示すことができる。所定のパターンは、PフレームまたはBフレームとしてシーケンス内のビデオフレームを指定することができる。イントラBCユニット48は、インター予測のための動き推定ユニット42による動きベクトルの決定と同様に、イントラBCコーディングのために、ベクトル、たとえばブロック・ベクトルを決定することができ、またはブロック・ベクトルを決定するために、動き推定ユニット42を利用することができる。
予測ブロックは、基準フレームのうち、画素差に関してコード化されるべきビデオブロックのPUに密接に整合すると見なされたブロックであり、これは、絶対差和(SAD)、2乗差和(SSD)、または他の差分計量によって決定されうる。いくつかの実装例では、ビデオエンコーダ20は、DPB64に記憶されている基準フレームの整数未満の画素位置に対する値を計算することができる。たとえば、ビデオエンコーダ20は、基準フレームの4分の1画素位置、8分の1画素位置、または他の分数の画素位置の値を補間することができる。したがって、動き推定ユニット42は、完全な画素位置および分数の画素位置に対する動き探索を実行し、分数の画素精度で動きベクトルを出力することができる。
動き推定ユニット42は、PUの位置と、第1の基準フレーム・リスト(List0)または第2の基準フレーム・リスト(List1)から選択された基準フレームの予測ブロックの位置とを比較することによって、インター予測コード化フレーム内のビデオブロックのPUに対する動きベクトルを計算し、これらのリストの各々は、DPB64に記憶されている1つまたは複数の基準フレームを識別する。動き推定ユニット42は、計算された動きベクトルを動き補償ユニット44へ送信し、次いでエントロピー符号化ユニット56へ送信する。
動き補償ユニット44によって実行される動き補償は、動き推定ユニット42によって決定された動きベクトルに基づいて、予測ブロックをフェッチまたは生成することを伴うことができる。現在のビデオブロックのPUに対する動きベクトルを受信したとき、動き補償ユニット44は、基準フレーム・リストのうちの1つにおいて動きベクトルが指す予測ブロックの位置を特定し、この予測ブロックをDPB64から取り出し、この予測ブロックを加算器50へ転送することができる。加算器50は次いで、コード化されている現在のビデオブロックの画素値から、動き補償ユニット44によって提供された予測ブロックの画素値を引くことによって、画素差値の残差ビデオブロックを形成する。残差ビデオブロックを形成する画素差値は、ルマもしくはクロマ差成分または両方を含むことができる。動き補償ユニット44はまた、ビデオフレームのビデオブロックを復号する際にビデオデコーダ30によって使用されるように、ビデオフレームのビデオブロックに関連付けられた構文要素を生成することができる。構文要素は、たとえば、予測ブロックを識別するために使用される動きベクトルを画定する構文要素、予測モードを示す任意のフラグ、または本明細書に記載されている任意の他の構文情報を含むことができる。動き推定ユニット42および動き補償ユニット44は高度に一体化されうるが、概念上の目的で別個に示されていることに留意されたい。
いくつかの実装例では、イントラBCユニット48は、動き推定ユニット42および動き補償ユニット44に関連して上述されたものと同様に、ベクトルを生成して予測ブロックをフェッチすることができるが、予測ブロックは、コード化されている現在のブロックと同じフレーム内にあり、ベクトルは、動きベクトルではなくブロック・ベクトルと呼ばれている。特に、イントラBCユニット48は、現在のブロックを符号化するために使用するイントラ予測モードを決定することができる。いくつかの例では、イントラBCユニット48は、たとえば別個の符号化パス中に、様々なイントラ予測モードを使用して現在のブロックを符号化することができ、速度歪み分析によってその性能を試験することができる。次に、イントラBCユニット48は、様々な試験されたイントラ予測モードの中から適当なイントラ予測モードを選択し、それに応じてイントラモード・インジケータを使用および生成することができる。たとえば、イントラBCユニット48は、様々な試験されたイントラ予測モードに対して速度歪み分析を使用して速度歪み値を計算することができ、試験されたモードの中から最善の速度歪み特性を有するイントラ予測モードを適当なイントラ予測モードとして選択し、使用することができる。速度歪み分析は、概して、符号化されたブロックと、符号化されたブロックをもたらすために符号化された元の符号化されていないブロックとの間で、歪み(または誤差)の量を決定し、ならびに符号化されたブロックをもたらすために使用されるビット速度(すなわち、ビットの数)を決定する。イントラBCユニット48は、様々な符号化されたブロックに対する歪みおよび速度からの比を計算して、どのイントラ予測モードがそのブロックに対して最善の速度歪み値を呈するかを決定することができる。
他の例では、イントラBCユニット48は、本明細書に記載されている実装例によって、動き推定ユニット42および動き補償ユニット44を全体的または部分的に使用して、イントラBC予測のためのそのような機能を実行することができる。いずれの場合も、イントラ・ブロック・コピーのために、予測ブロックは、画素差に関してコード化されるべきブロックに密接に整合すると見なされたブロックとすることができ、これは、絶対差和(SAD)、2乗差和(SSD)、または他の差分計量によって決定されてよく、予測ブロックの識別は、整数未満の画素位置に対する値の計算を含むことができる。
予測ブロックが、イントラ予測に従って同じフレームからのものであるか、それともインター予測に従って異なるフレームからのものであるかにかかわらず、ビデオエンコーダ20は、コード化されている現在のビデオブロックの画素値から予測ブロックの画素値を引いて画素差値を形成することによって、残差ビデオブロックを形成することができる。残差ビデオブロックを形成する画素差値は、ルマおよびクロマ両方の成分差を含むことができる。
イントラ予測処理ユニット46は、上述されているように、動き推定ユニット42および動き補償ユニット44によって実行されるインター予測、またはイントラBCユニット48によって実行されるイントラ・ブロック・コピー予測に対する代替手段として、現在のビデオブロックをイントラ予測することができる。特に、イントラ予測処理ユニット46は、現在のブロックを符号化するために使用するイントラ予測モードを決定することができる。その際、イントラ予測処理ユニット46は、たとえば別個の符号化パス中に、様々なイントラ予測モードを使用して現在のブロックを符号化することができ、イントラ予測処理ユニット46(または、いくつかの例ではモード選択ユニット)は、試験されたイントラ予測モードから適当なイントラ予測モードを選択して使用することができる。イントラ予測処理ユニット46は、そのブロックに対する選択されたイントラ予測モードを示す情報を、エントロピー符号化ユニット56に提供することができる。エントロピー符号化ユニット56は、ビットストリーム内の選択されたイントラ予測モードを示す情報を符号化することができる。
予測処理ユニット41が、インター予測またはイントラ予測を介して、現在のビデオブロックに対する予測ブロックを決定した後、加算器50は、現在のビデオブロックから予測ブロックを引くことによって、残差ビデオブロックを形成する。残差ブロック内の残差ビデオデータは、1つまたは複数の変換ユニット(TU)に含まれてよく、変換処理ユニット52に提供される。変換処理ユニット52は、離散コサイン変換(DCT)または概念上類似の変換などの変換を使用して、残差ビデオデータを残差変換係数に変換する。
変換処理ユニット52は、結果の変換係数を量子化ユニット54へ送信することができる。量子化ユニット54は、変換係数を量子化して、ビット速度をさらに低減させる。量子化プロセスはまた、係数のいくつかまたはすべてに関連付けられたビット深さを低減させることができる。量子化度は、量子化パラメータを調整することによって修正されうる。いくつかの例では、量子化ユニット54は次いで、量子化された変換係数を含む行列の走査を実行することができる。別法として、エントロピー符号化ユニット56が走査を実行することができる。
量子化に続いて、エントロピー符号化ユニット56は、たとえばコンテキスト適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、構文ベースのコンテキスト適応型バイナリ算術コーディング(SBAC)、確率区間分割エントロピー(PIPE)コーディング、または別のエントロピー符号化方法もしくは技法を使用して、量子化された変換係数をビデオビットストリームにエントロピー符号化する。符号化されたビットストリームは次いで、ビデオデコーダ30に伝送されてよく、または後のビデオデコーダ30への伝送もしくはビデオデコーダ30による取出しのために、ストレージデバイス32内に保管されてよい。エントロピー符号化ユニット56はまた、コード化されている現在のビデオフレームに対する動きベクトルおよび他の構文要素をエントロピー符号化することができる。
逆量子化ユニット58および逆変換処理ユニット60は、それぞれ逆量子化および逆変換を適用して、画素ドメイン内の残差ビデオブロックを再構築し、他のビデオブロックの予測のための基準ブロックを生成する。上述されているように、動き補償ユニット44は、DPB64に記憶されているフレームの1つまたは複数の基準ブロックから、動き補償予測ブロックを生成することができる。動き補償ユニット44はまた、1つまたは複数の補間フィルタを予測ブロックに適用して、動き推定で使用するための整数未満の画素値を計算することができる。
加算器62は、動き補償ユニット44によってもたらされる動き補償予測ブロックに、再構成残差ブロックを加えて、DPB64に記憶するための基準ブロックをもたらす。基準ブロックは次いで、イントラBCユニット48、動き推定ユニット42、および動き補償ユニット44によって、後のビデオフレーム内の別のビデオブロックをインター予測するための予測ブロックとして使用されうる。
図3は、本出願のいくつかの実装例に係る例示的なビデオデコーダ30を示すブロック図である。ビデオデコーダ30は、ビデオデータメモリ79、エントロピー復号ユニット80、予測処理ユニット81、逆量子化ユニット86、逆変換処理ユニット88、加算器90、およびDPB92を含む。予測処理ユニット81は、動き補償ユニット82、イントラ予測処理ユニット84、およびイントラBCユニット85をさらに含む。ビデオデコーダ30は、復号プロセスを実行することができ、復号プロセスは概して、図2に関連してビデオエンコーダ20に関して上述された符号化プロセスとは逆方向である。たとえば、動き補償ユニット82は、エントロピー復号ユニット80から受信された動きベクトルに基づいて、予測データを生成することができ、イントラ予測ユニット84は、エントロピー復号ユニット80から受信されたイントラ予測モード・インジケータに基づいて、予測データを生成することができる。
いくつかの例では、ビデオデコーダ30のユニットは、本出願の実装例を実行するタスクが与えられうる。また、いくつかの例では、本開示の実装例は、ビデオデコーダ30のユニットの1つまたは複数の間で分割されうる。たとえば、イントラBCユニット85は、単独で、または動き補償ユニット82、イントラ予測処理ユニット84、およびエントロピー復号ユニット80などのビデオデコーダ30の他のユニットと組み合わせて、本出願の実装例を実行することができる。いくつかの例では、ビデオデコーダ30は、イントラBCユニット85を含まなくてもよく、イントラBCユニット85の機能は、動き補償ユニット82などの予測処理ユニット81の他の構成要素によって実行されうる。
ビデオデータメモリ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の他の構成要素とオンチップであっても、それらの構成要素に対してオフチップであってもよい。
復号プロセス中、ビデオデコーダ30は、符号化されたビデオフレームのビデオブロックおよび関連付けられた構文要素を表す符号化されたビデオビットストリームを受信する。ビデオデコーダ30は、ビデオフレーム・レベルおよび/またはビデオブロック・レベルで構文要素を受信することができる。ビデオデコーダ30のエントロピー復号ユニット80は、ビットストリームをエントロピー復号して、量子化された係数、動きベクトル、またはイントラ予測モード・インジケータ、および他の構文要素を生成する。エントロピー復号ユニット80は次いで、動きベクトルおよび他の構文要素を予測処理ユニット81へ転送する。
ビデオフレームが、イントラ予測コード化(I)フレームとしてコード化されるとき、または他のタイプのフレーム内のイントラ符号化予測ブロックに対してコード化されるとき、予測処理ユニット81のイントラ予測処理ユニット84が、信号化されたイントラ予測モード、および現在のフレームの以前に復号されたブロックからの基準データに基づいて、現在のビデオフレームのビデオブロックに対する予測データを生成することができる。
ビデオフレームが、インター予測コード化(すなわち、BまたはP)フレームとしてコード化されるとき、予測処理ユニット81の動き補償ユニット82が、エントロピー復号ユニット80から受信された動きベクトルおよび他の構文要素に基づいて、現在のビデオフレームのビデオブロックに対する1つまたは複数の予測ブロックをもたらす。予測ブロックの各々は、基準フレーム・リストのうちの1つの基準フレームからもたらされうる。ビデオデコーダ30は、DPB92に記憶されている基準フレームに基づくデフォルト構築技法を使用して、基準フレーム・リストList0およびList1を構築しうる。
いくつかの例では、ビデオブロックが、本明細書に記載されているイントラBCモードに従ってコード化されるとき、予測処理ユニット81のイントラBCユニット85が、エントロピー復号ユニット80から受信されたブロック・ベクトルおよび他の構文要素に基づいて、現在のビデオブロックに対する予測ブロックをもたらす。予測ブロックは、ビデオエンコーダ20によって画定される現在のビデオブロックと同じピクチャの再構成領域内に位置することができる。
動き補償ユニット82および/またはイントラBCユニット85は、動きベクトルおよび他の構文要素を解析することによって、現在のビデオフレームのビデオブロックに対する予測情報を決定し、次いで予測情報を使用して、復号されている現在のビデオブロックに対する予測ブロックをもたらす。たとえば、動き補償ユニット82は、受信された構文要素のうちのいくつかを使用して、ビデオフレームのビデオブロックをコード化するために使用される予測モード(たとえば、イントラまたはインター予測)、インター予測フレーム・タイプ(たとえば、BまたはP)、フレームの基準フレーム・リストの1つまたは複数に対する構築情報、フレームの各インター予測符号化ビデオブロックに対する動きベクトル、フレームの各インター予測コード化ビデオブロックに対するインター予測状態、および現在のビデオフレーム内のビデオブロックを復号するための他の情報を決定する。
同様に、イントラBCユニット85は、受信された構文要素のうちのいくつか、たとえばフラグを使用して、現在のビデオブロックがイントラBCモードを使用して予測されたこと、再構成領域内に位置し、DPB92に記憶されるべきフレームのビデオブロックの構築情報、フレームのイントラBC予測された各ビデオブロックに対するブロック・ベクトル、フレームのイントラBC予測された各ビデオブロックに対するイントラBC予測状態、および現在のビデオフレーム内のビデオブロックを復号するための他の情報を決定することができる。
動き補償ユニット82はまた、基準ブロックの整数未満の画素に対する補間値を計算するためにビデオブロックの符号化中にビデオエンコーダ20によって使用される補間フィルタを使用して、補間を実行することができる。この場合、動き補償ユニット82は、受信された構文要素から、ビデオエンコーダ20によって使用される補間フィルタを決定することができ、それらの補間フィルタを使用して、予測ブロックをもたらすことができる。
逆量子化ユニット86は、量子化度を決定するためにビデオフレーム内の各ビデオブロックに対してビデオエンコーダ20によって計算された同じ量子化パラメータを使用して、ビットストリーム内に提供されているエントロピー復号ユニット80によってエントロピー復号された量子化された変換係数を逆量子化する。逆変換処理ユニット88は、逆変換、たとえば逆DCT、逆整数変換、または概念上類似の逆変換プロセスを変換係数に適用して、画素ドメインにおける残差ブロックを再構築する。
動き補償ユニット82またはイントラBCユニット85が、ベクトルおよび他の構文要素に基づいて、現在のビデオブロックに対する予測ブロックを生成した後、加算器90は、逆変換処理ユニット88からの残差ブロックと、動き補償ユニット82およびイントラBCユニット85によって生成された対応する予測ブロックとを加算することによって、現在のビデオブロックに対する復号されたビデオブロックを再構築する。復号されたビデオブロックをさらに処理するために、ループ内フィルタ91が、加算器90とDPB92との間に置かれうる。基準ピクチャ・ストアに入れられる前に、デブロッキングフィルタ、サンプル適応オフセット(SAO)、および適応ループ内フィルタ(ALF)などのループ内フィルタ91が、再構成CU上で適用されうる。所与のフレーム内の復号されたビデオブロックは次いで、DPB92に記憶され、DPB92は、次のビデオブロックの後の動き補償のために使用される基準フレームを記憶する。DPB92、またはDPB92とは別個のメモリ・デバイスが、図1のディスプレイデバイス34などのディスプレイデバイス上に後に提示するために、復号されたビデオを記憶することもできる。
典型的なビデオコーディング・プロセスでは、ビデオ・シーケンスは典型的に、順序付けられた1組のフレームまたはピクチャを含む。各フレームは、SL、SCb、およびSCrで示される3つのサンプル・アレイを含むことができる。SLは、ルマサンプルの2次元アレイである。SCbは、Cbクロマサンプルの2次元アレイである。SCrは、Crクロマサンプルの2次元アレイである。他の事例では、フレームは単色であってよく、したがってルマサンプルの1つの2次元アレイのみを含む。
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分木構造に基づいてさらに分割されうる。
図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ブロックとすることができる。
より良好な性能を実現するために、ビデオエンコーダ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分木分割がある。
いくつかの実装例では、ビデオエンコーダ20は、CUのコード化ブロックを1つまたは複数のM×Nの予測ブロック(PB)にさらに分割することができる。予測ブロックは、同じインターまたはイントラ予測が適用されるサンプルの矩形(正方形または非正方形)ブロックである。CUの予測ユニット(PU)は、ルマサンプルの予測ブロックと、クロマサンプルの2つの対応する予測ブロックと、これらの予測ブロックを予測するために使用される構文要素とを備えることができる。単色のピクチャ、または3つの別個の色平面を有するピクチャでは、PUは、単一の予測ブロックと、この予測ブロックを予測するために使用される構文構造とを備えることができる。ビデオエンコーダ20は、CUの各PUのルマ、Cb、およびCr予測ブロックに対して、予測ルマ、Cb、およびCrブロックを生成することができる。
ビデオエンコーダ20は、イントラ予測またはインター予測を使用して、PUに対する予測ブロックを生成することができる。ビデオエンコーダ20がPUの予測ブロックを生成するためにイントラ予測を使用する場合、ビデオエンコーダ20は、このPUに関連付けられたフレームの復号されたサンプルに基づいて、PUの予測ブロックを生成することができる。ビデオエンコーダ20がPUの予測ブロックを生成するためにインター予測を使用する場合、ビデオエンコーダ20は、このPUに関連付けられたフレーム以外の1つまたは複数のフレームの復号されたサンプルに基づいて、PUの予測ブロックを生成することができる。
ビデオエンコーダ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コード化ブロックにおける対応するサンプルとの間の差を示すことができる。
さらに、図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は、単一の変換ブロックと、変換ブロックのサンプルを変換するために使用される構文構造とを備えることができる。
ビデオエンコーダ20は、TUのルマ変換ブロックに1つまたは複数の変換を適用して、このTUに対するルマ係数ブロックを生成することができる。係数ブロックは、変換係数の2次元アレイとなりうる。変換係数は、スカラ量となりうる。ビデオエンコーダ20は、TUのCb変換ブロックに1つまたは複数の変換を適用して、このTUに対するCb係数ブロックを生成することができる。ビデオエンコーダ20は、TUのCr変換ブロックに1つまたは複数の変換を適用して、このTUに対するCr係数ブロックを生成することができる。
係数ブロック(たとえば、ルマ係数ブロック、Cb係数ブロック、またはCr係数ブロック)を生成した後、ビデオエンコーダ20は、この係数ブロックを量子化することができる。量子化は、概して、場合により変換係数を表すために使用されるデータの量を低減させてさらなる圧縮を提供するために、変換係数が量子化されるプロセスを指す。ビデオエンコーダ20が係数ブロックを量子化した後、ビデオエンコーダ20は、量子化された変換係数を示す構文要素をエントロピー符号化することができる。たとえば、ビデオエンコーダ20は、量子化された変換係数を示す構文要素上で、コンテキスト適応型バイナリ算術コーディング(CABAC)を実行することができる。最後に、ビデオエンコーダ20は、コード化フレームの表現を形成するビットのシーケンスおよび関連付けられたデータを含むビットストリームを出力することができ、このビットストリームは、ストレージデバイス32内に保存され、または宛先デバイス14へ伝送される。
ビデオエンコーダ20によって生成されたビットストリームを受信した後、ビデオデコーダ30は、ビットストリームを解析して、このビットストリームから構文要素を取得することができる。ビデオデコーダ30は、ビットストリームから取得された構文要素に少なくとも部分的に基づいて、ビデオデータのフレームを再構築することができる。ビデオデータを再構築するプロセスは概して、ビデオエンコーダ20によって実行される符号化プロセスとは逆方向である。たとえば、ビデオデコーダ30は、現在のCUのTUに関連付けられた係数ブロック上で逆変換を実行して、現在のCUのTUに関連付けられた残差ブロックを再構築することができる。ビデオデコーダ30はまた、現在のCUのPUに対する予測ブロックのサンプルを、現在のCUのTUの変換ブロックの対応するサンプルに加えることによって、現在のCUのコード化ブロックを再構築する。フレームの各CUに対するコード化ブロックを再構築した後、ビデオデコーダ30は、このフレームを再構築することができる。
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つが使用されるかどうかを信号化する。
図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カテゴリを示す。
SAOタイプ1および2の場合、合計4つの振幅オフセット値が各CTBに対してデコーダへ伝送される。タイプ1の場合、符号も符号化される。オフセット値ならびにsao-type-idxおよびsao-eo-classなどの関係付けられた構文要素は、エンコーダによって、典型的には速度歪み性能を最適化する基準を使用して決定される。SAOパラメータは、信号化を効率的にするために、マージ・フラグを使用して左または上のCTBから継承されるように示されうる。要約すると、SAOは、再構成信号の追加の改良を可能にする非線形フィルタリング動作であり、平滑な区域およびエッジ周辺の両方において、信号表現を強化することができる。
いくつかの実施形態では、成分間情報を導入することによって、コーディング効率を改善し、またはサンプル適応オフセット(SAO)の複雑さを低減させるための方法およびシステムが、本明細書に開示される。SAOは、HEVC、VVC、AVS2、およびAVS3規格で使用される。以下の説明では、HEVC、VVC、AVS2、およびAVS3規格における既存のSAO設計が、ビデオコーディングの当業者に基本的なSAO方法として使用されるが、本開示に記載されている成分間方法は、類似の設計精神を有する他のループ・フィルタ設計または他のコードディング・ツールにも適用されうる。たとえば、AVS3規格では、SAOは、強化されたサンプル適応オフセット(ESAO)と呼ばれるコーディング・ツールに交換される。しかし、本明細書に開示されるCCSAOが、ESAOに並行して適用されてもよい。別の例では、CCSAOは、AV1規格でConstrained Directional Enhancement Filter(CDEF)に並行して適用されてもよい。
HEVC、VVC、AVS2、およびAVS3規格における既存のSAO設計の場合、ルマY、クロマCb、およびクロマCrサンプルオフセット値が独立して決定される。すなわち、たとえば現在のクロマサンプルオフセットは、現在のクロマサンプル値および隣接するクロマサンプル値のみによって決定され、配列または隣接ルマサンプルを考慮しない。しかし、ルマサンプルは、クロマサンプルより多くの元のピクチャ詳細情報を維持し、現在のクロマサンプルオフセットの決定から利益を得ることができる。さらに、クロマサンプルは通常、RGBからYCbCrへの色変換後、または量子化およびデブロッキングフィルタ後に、高周波の詳細を失うため、クロマ・オフセット決定のために維持された高周波の詳細を有するルマサンプルを導入することで、クロマサンプルの再構築から利益を得ることができる。したがって、成分間相関を探ることによって、たとえば成分間サンプル適応オフセット(CCSAO)の方法およびシステムを使用することによって、さらなる利得が予期されうる。別の例は、SAOの場合に、ルマサンプルオフセットがルマサンプルのみによって決定されることである。しかしたとえば、同じバンド・オフセット(BO)分類を有するルマサンプルは、その配列および隣接クロマサンプルによってさらに分類されてよく、それによってより効果的な分類を得ることができる。SAO分類は、元のピクチャと再構成ピクチャとの間のサンプル差を補償するためのショートカットとして得られうる。したがって、効果的な分類が所望される。
図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後に、カスケード接続されうる。
いくつかの実施形態では、CCSAOはまた、他のコーディング・ツール、たとえばAVS規格におけるESAO、またはAV1規格におけるCDEFに並行して適用されうる。図6Eは、本開示のいくつかの実装例によってAVS規格におけるESAOに並行して適用されるCCSAOシステムおよびプロセスを示すブロック図である。
図6Fは、本開示のいくつかの実装例によってSAO後に適用されるCCSAOシステムおよびプロセスを示すブロック図である。いくつかの実施形態では、図6Fは、CCSAOの場所がSAO後、すなわちVVC規格における成分間適応ループ・フィルタ(CCALF)の場所に位置しうることを示す。図6Gは、本開示のいくつかの実装例によってCCSAOシステムおよびプロセスがCCALFなしで独立して機能しうることを示すブロック図である。いくつかの実施形態では、SAO Y/Cb/Crは、たとえばAVS3規格において、ESAOに交換されうる。
図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としても示されうることに留意されたい。
いくつかの実施形態では、現在のクロマサンプル分類は、配列ルマサンプルの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のべき乗の値のみを含む。
いくつかの実施形態では、配列ルマサンプル(Y0)および隣接する8つのルマサンプルの比較スコア[-8,8]が使用され、合計17のクラスをもたらす。
初期クラス=0
隣接する8つのルマサンプルを介したループ(Yi,i=1~8)
if Y0>Yi Class+=1
else if Y0<Yi Class-=1
いくつかの実施形態では、上述された分類方法が組み合わされうる。たとえば、ダイバーシティを増大させるために、SAO BO(32バンドの分類)と組み合わされた比較スコアが使用され、合計17*32のクラスをもたらす。いくつかの実施形態では、CbおよびCrは、複雑さを低減させるため、またはビットを節約するために、同じクラスを使用することができる。
図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である。
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分類に与える。
図8は、本開示のいくつかの実装例によって、CCSAOプロセスが垂直および水平DBFにインターリーブされることを示すブロック図である。いくつかの実施形態では、図6、図7、および図8のCCSAOブロックは選択的であってよい。たとえば、図6と同じサンプル処理を適用する第1のCCSAO_Vに対するY0_DBF_VおよびYi_DBF_Vを使用しながら、DBF_Vルマサンプルの入力をCCSAO入力として使用する。
いくつかの実施形態では、実装されるCCSAO構文が、以下の表2に示されている。
いくつかの実施形態では、CCSAO CbおよびCrオフセット値を信号化するために、一方の追加のクロマオフセットが信号化される場合、他方のクロマ成分オフセットは、正もしくは負の符号によって、またはビット・オーバーヘッドを節減するために加重によって導出されうる。たとえば、h_Cbおよびh_Crを、それぞれCCSAO CbおよびCrのオフセットとする。wを明示的に信号化することによって、w=±|w|であり、|w|候補が制限されるとき、h_Cr自体を明示的に信号化することなく、h_Crはh_Cbから導出されうる。
h_Cr=w*h_Cb
図9は、本開示のいくつかの実装例に係る成分間相関を使用してビデオ信号を復号する例示的なプロセス900を示す流れ図である。
ビデオデコーダ30は、第1の成分および第2の成分を含むビデオ信号を受信する(910)。いくつかの実施形態では、第1の成分はビデオ信号のルマ成分であり、第2の成分はクロマ成分である。
ビデオデコーダ30はまた、第2の成分に関連付けられた複数のオフセットを受信する(920)。
ビデオデコーダ30は次いで、第1の成分の特性測定を利用して、第2の成分に関連付けられた分類カテゴリを取得する(930)。たとえば、図6で、現在のクロマサンプル602はまず、配列ルマサンプル604および隣接(白色)ルマサンプル606を使用して分類され、対応するCCSAOオフセット値が、現在のクロマサンプルに加えられる。
ビデオデコーダ30は、分類カテゴリに従って、第2の成分に対する複数のオフセットから第1のオフセットをさらに選択する(940)。
ビデオデコーダ30は加えて、選択された第1のオフセットに基づいて、第2の成分を修正する(950)。
いくつかの実施形態では、第1の成分の特性測定を利用して第2の成分に関連付けられた分類カテゴリを取得すること(930)は、第1の成分のそれぞれのサンプルを利用して、第2の成分のそれぞれの各サンプルのそれぞれの分類カテゴリを取得することを含み、第1の成分のそれぞれのサンプルは、第2の成分のそれぞれの各サンプルに対する第1の成分のそれぞれの配列サンプルである。たとえば、現在のクロマサンプル分類は、配列ルマサンプルのSAOタイプ(EOまたはBO)、クラス、およびカテゴリを再利用している。
いくつかの実施形態では、第1の成分の特性測定を利用して第2の成分に関連付けられた分類カテゴリを取得すること(930)は、第1の成分のそれぞれのサンプルを利用して、第2の成分のそれぞれの各サンプルのそれぞれの分類カテゴリを取得することを含み、第1の成分のそれぞれのサンプルは、デブロックされる前に再構築され、またはデブロックされた後に再構築される。いくつかの実施形態では、第1の成分は、デブロッキングフィルタ(DBF)でデブロックされている。いくつかの実施形態では、第1の成分は、ルマ・デブロッキングフィルタ(DBF Y)でデブロックされている。たとえば、図6または図7に対する代替手段として、CCSAO入力はDBF Yの前であってもよい。
いくつかの実施形態では、特性測定は、第1の成分のサンプル値の範囲をいくつかのバンドに分割し、第1の成分内のサンプルの強度値に基づいてバンドを選択することによって導出される。いくつかの実施形態では、特性測定は、バンド・オフセット(BO)から導出される。
いくつかの実施形態では、特性測定は、第1の成分内のサンプルのエッジ情報の方向および強度に基づいて導出される。いくつかの実施形態では、特性測定は、エッジ・オフセット(EO)から導出される。
いくつかの実施形態では、第2の成分を修正すること(950)は、選択された第1のオフセットを第2の成分に直接加えることを含む。たとえば、対応するCCSAOオフセット値が、現在のクロマ成分サンプルに加えられる。
いくつかの実施形態では、第2の成分を修正すること(950)は、選択された第1のオフセットを第2のオフセットにマッピングし、マッピングされた第2のオフセットを第2の成分に加えることを含む。たとえば、CCSAO CbおよびCrオフセット値を信号化するために、一方の追加のクロマオフセットが信号化される場合、他方のクロマ成分オフセットは、正もしくは負の符号を使用することによって、またはビット・オーバーヘッドを節減するために加重によって導出されうる。
いくつかの実施形態では、ビデオ信号を受信すること(910)は、CCSAOを使用してビデオ信号を復号する方法がシーケンスパラメータセット(SPS)内のビデオ信号に対して有効化されるかどうかを示す構文要素を受信することを含む。いくつかの実施形態では、cc_sao_enabled_flagが、シーケンス・レベルでCCSAOが有効化されるかどうかを示す。
いくつかの実施形態では、ビデオ信号を受信すること(910)は、CCSAOを使用してビデオ信号を復号する方法がスライス・レベルで第2の成分に対して有効化されるかどうかを示す構文要素を受信することを含む。いくつかの実施形態では、slice_cc_sao_cb_flagまたはslice_cc_sao_cr_flagが、CbまたはCrに対するそれぞれのスライス内でCCSAOが有効化されるかどうかを示す。
いくつかの実施形態では、第2の成分に関連付けられた複数のオフセットを受信すること(920)は、異なるコーディングツリーユニット(CTU)に対して異なるオフセットを受信することを含む。いくつかの実施形態では、CTUに対して、cc_sao_offset_sign_flagが、オフセットに対する符号を示し、cc_sao_offset_absが、現在のCTUのCCSAO CbおよびCrオフセット値を示す。
いくつかの実施形態では、第2の成分に関連付けられた複数のオフセットを受信すること(920)は、CTUの受信されたオフセットが、CTUの隣接するCTUのうちの1つと同じであるかどうかを示す構文要素を受信することを含み、隣接するCTUは、左または上の隣接するCTUである。たとえば、cc_sao_merge_up_flagが、CCSAOオフセットが左または上のCTUからマージされるかどうかを示す。
いくつかの実施形態では、ビデオ信号は、第3の成分をさらに含み、CCSAOを使用してビデオ信号を復号する方法は、第3の成分に関連付けられた第2の複数のオフセットを受信することと、第1の成分の特性測定を利用して第3の成分に関連付けられた第2の分類カテゴリを取得することと、第2の分類カテゴリに従って第3の成分に対する第2の複数のオフセットから第3のオフセットを選択することと、選択された第3のオフセットに基づいて第3の成分を修正することとをさらに含む。
図11は、本開示のいくつかの実装例によってすべての配列および隣接(白色)ルマ/クロマサンプルがCCSAO分類へ供給されうることを示すサンプル・プロセスのブロック図である。図6A、図6B、および図11は、CCSAO分類の入力を示す。図11で、現在のクロマサンプルは1104であり、成分間配列クロマサンプルは1102であり、配列ルマサンプルは1106である。
いくつかの実施形態では、例示的な分類子(C0)が、以下の図12の配列ルマまたはクロマサンプル値(Y0)(図6Bおよび図6CのY4/U4/V4)を分類に使用する。band_numを、ルマまたはクロマ・ダイナミックレンジの等しく分割されたバンドの数とし、bit_depthを、シーケンス・ビット深さとすると、現在のクロマサンプルに対するクラス索引の一例は、次のとおりである。
クラス(C0)=(Y0*band_num)>>bit_depth
いくつかの実施形態では、この分類は丸めを考慮し、たとえば次のとおりである。
クラス(C0)=((Y0*band_num)+(1<<bit_depth))>>bit_depth
いくつかのband_numおよびbit_depthの例が、以下の表3に挙げられている。表3は、分類例の各々に対してバンドの数が異なるときの3つの分類例を示す。
表3:各クラス索引に対する例示的なband_numおよびbit_depth
いくつかの実施形態では、分類子は、C0分類に対して異なるルマサンプル位置を使用する。図10Aは、本開示のいくつかの実装例に係るC0分類に対して異なるルマ(またはクロマ)サンプル位置を使用する、たとえばC0分類にY0ではなく隣接するY7を使用する、分類子を示すブロック図である。
いくつかの実施形態では、シーケンスパラメータセット(SPS)/適応パラメータセット(APS)/ピクチャパラメータセット(PPS)/ピクチャヘッダ(PH)/スライスヘッダ(SH)/コーディングツリーユニット(CTU)/コーディングユニット(CU)レベルにおいて、異なる分類子が切り換えられうる。たとえば、図10では、以下の表4に示されているように、POC0にY0を使用するがPOC1にY7を使用する。
いくつかの実施形態では、図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)をクロマ候補に使用する。
いくつかの実施形態では、C0位置およびC0のband_numが組み合わされてよく、SPS/APS/PPS/PH/SH/CTU/CUレベルにおいて切り換えられうる。以下の表5に示されているように、異なる組合せが異なる分類子であってよい。
いくつかの実施形態では、配列ルマサンプル値(Y0)は、配列および隣接ルマサンプルに加重することによって取得された値(Yp)に交換される。図12は、本開示のいくつかの実装例によって、配列ルマサンプル値を、配列および隣接ルマサンプルに加重することによって取得された値に交換することによって、例示的な分類子を示す。配列ルマサンプル値(Y0)は、隣接ルマサンプルを加重することによって取得された位相補正値(Yp)に交換されうる。異なるYpが異なる分類子であってよい。
いくつかの実施形態では、異なるYpが異なるクロマ形式で適用される。たとえば、図12で、(a)のYpは、420クロマ形式に使用され、(b)のYpは、422クロマ形式に使用され、Y0は、444クロマ形式に使用される。
いくつかの実施形態では、別の分類子(C1)は、配列ルマサンプル(Y0)および隣接する8つのルマサンプルの比較スコア[-8,8]であり、以下に示されているように、合計17のクラスをもたらす。
初期クラス(C1)=0、隣接する8つのルマサンプルを介したループ(Yi,i=1~8)
if Y0>Yi Class+=1
else if Y0<Yi Class-=1
いくつかの実施形態では、変動(C1’)が比較スコア[0,8]のみを計数し、これは8つのクラスをもたらす。(C1,C1’)は分類子グループであり、C1およびC1’を切り換えるために、PH/SHレベル・フラグが信号化されうる。
初期クラス(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は、オーバーヘッドを信号化するオフセットと分類粒度との間のトレードオフのために、より多くの選択肢をエンコーダに与える。
C1と同様に、変動(C1’)は比較スコア[0,+N]のみを計数し、前のビットマスク01111110の例が、[0,6]の比較スコアを与え、7のオフセットをもたらす。
いくつかの実施形態では、異なる分類子が組み合わされて、汎用分類子をもたらす。たとえば、以下の表6-1に示されているように、異なるピクチャ(異なるPOC値)に対して異なる分類子が適用される。
いくつかの実施形態では、表6-2に示されているように、別の例示的な分類子(C3)が、分類のためにビットマスクを使用している。この分類子を示すために、10ビットのビットマスクがSPS/APS/PPS/PH/SH/領域/CTU/CU/サブブロック・レベルで信号化される。たとえば、ビットマスク11 1100 0000は、所与の10ビットのルマサンプル値に対して、最上位ビット(MSB):4ビットのみが分類に使用され、合計16のクラスをもたらすことを意味する。別の例示的なビットマスク10 0100 0001は、3ビットのみが分類に使用され、合計8つのクラスをもたらすことを意味する。
いくつかの実施形態では、ビットマスク長(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/サブブロック・レベルで切り換えられうる。
いくつかの実施形態では、ルマ位置およびC3ビットマスクが組み合わされてよく、SPS/APS/PPS/PH/SH/領域/CTU/CU/サブブロック・レベルで切り換えられうる。異なる組合せは異なる分類子であってよい。
いくつかの実施形態では、ビットマスク制限の「1の最大数」は、対応するオフセットの数を制限するために適用されうる。たとえば、SPSでビットマスクの「1の最大数」を4に制限することで、シーケンスの最大オフセットを16にする。異なるPOCのビットマスクは異なってもよいが、「1の最大数」は4を超過しないものとする(全クラスで16を超過しないものとする)。「1の最大数」値が信号化されてよく、SPS/APS/PPS/PH/SH/領域/CTU/CU/サブブロック・レベルで切り換えられうる。
いくつかの実施形態では、図11に示されているように、他の成分間クロマサンプル、たとえばクロマサンプル1102およびその隣接サンプルがまた、たとえば現在のクロマサンプル1104のために、CCSAO分類へ供給されうる。たとえば、Crクロマサンプルは、CCSAO Cb分類へ供給されうる。Cbクロマサンプルは、CCSAO Cr分類へ供給されうる。成分間クロマサンプルの分類子は、ルマ成分間分類子と同じであってよく、または本開示に記載されているように、独自の分類子を有してもよい。2つの分類子が組み合わされて、現在のクロマサンプルを分類するための共同分類子を形成することができる。たとえば、成分間ルマサンプルおよびクロマサンプルを組み合わせた共同分類子は、以下の表6-3に示されているように、合計16のクラスをもたらす。
すべての上述された分類子(C0、C1、C1’、C2、C3)が組み合わされうる。たとえば、以下の表6-4を参照されたい。
いくつかの実施形態では、例示的な分類子(C2)が、配列および隣接ルマサンプルの差分(Yn)を使用する。図12(c)は、Ynの一例を示し、Ynは、ビット深さが10であるとき、[-1024,1023]のダイナミックレンジを有する。C2のband_numを、Ynダイナミックレンジの等しく分割されたバンドの数とする。
クラス(C2)=(Yn+(1<<bit_depth)*band_num)>>(bit_depth+1)。
いくつかの実施形態では、C0およびC2が組み合わされて、汎用分類子をもたらす。たとえば、以下の表7に示されているように、異なるピクチャ(異なるPOC)に対して異なる分類子が適用される。
いくつかの実施形態では、すべての上述された分類子(C0、C1、C1’、C2)が組み合わされる。たとえば、以下の表8に示されているように、異なるピクチャ(異なるPOC)に対して異なる分類子が適用される。
いくつかの実施形態では、複数分類子が同じPOCで使用される。現在のフレームはいくつかの領域によって分割され、各領域が同じ分類子を使用する。たとえば、3つの異なる分類子がPOC0で使用され、以下の表9に示されているように、どの分類子(0、1、または2)が使用されるかが、CTUレベルで信号化される。
いくつかの実施形態では、複数分類子(複数分類子を代替オフセット・セットと呼ぶこともできる)の最大数は固定されてよく、または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で使用される。
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、および対応するオフセットを有することができる。
いくつかの実施形態では、配列/現在および隣接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であり、クラス索引導出は次のように示されうる。
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つのクラスをもたらす。
いくつかの実施形態では、たとえば以下の表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分類子に適用されてよい。
diffがYのC1比較スコアを示す場合、classIdx導出は次のとおりとなりうる。
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;
いくつかの実施形態では、最大band_num(bandNumY、bandNumU、またはbandNumV)が、固定されてよく、またはSPS/APS/PPS/PH/SH/CTU/CUレベルで信号化されうる。たとえば、デコーダで各フレームに対してmax band_num=16を固定すると、フレーム内のC0のband_numを示すために、4ビットが信号化される。いくつかの他の最大band_numの例が、以下の表12に挙げられる。
いくつかの実施形態では、各セット(または加えられたすべてのセット)に対するクラスまたはオフセット(複数の分類子を共同で使用する組合せ、たとえばC1 edgeNum*C1 bandNumY*bandNumU*bandNumV)の最大数が固定されてよく、またはSPS/APS/PPS/PH/SH/領域/CTU/CUレベルで信号化されうる。たとえば、maxは、加えられたすべてのセットに対してclass_num=256*4で固定され、制約を確認するために、エンコーダ適合性チェックまたはデコーダ規範チェックが使用されうる。
いくつかの実施形態では、制限がC0分類に適用されてよく、たとえばband_num(bandNumY、bandNumU、またはbandNumV)を2のべき乗の値のみに制限する。band_numを明示的に信号化する代わりに、構文band_num_shiftが信号化される。デコーダは、乗算を回避するために、シフト演算を使用することができる。異なるband_num_shiftが異なる成分に使用されうる。
クラス(C0)=(Y0>>band_num_shift)>>bit_depth
別の演算例は、誤差を低減させるために丸めを考慮する。
クラス(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である。
いくつかの実施形態では、CbおよびCrに適用される分類子は異なる。すべてのクラスに対するCbおよびCrオフセットが別個に信号化されうる。たとえば、以下の表14に示されているように、信号化された異なるオフセットが、異なるクロマ成分に適用される。
いくつかの実施形態では、最大オフセット値は固定され、またはシーケンスパラメータセット(SPS)/適応パラメータセット(APS)/ピクチャパラメータセット(PPS)/ピクチャヘッダ(PH)/スライスヘッダ(SH)で信号化される。たとえば、最大オフセットは[-15,15]である。異なる成分は異なる最大オフセット値を有することができる。
いくつかの実施形態では、オフセットの信号化は、差分パルスコード変調(DPCM)を使用することができる。たとえば、オフセット{3,3,2,1,-1}が、{3,0,-1,-1,-2}として信号化されうる。
いくつかの実施形態では、オフセットは、次のピクチャ/スライスの再利用のために、APSまたはメモリ・バッファに記憶されうる。どの記憶された以前のフレーム・オフセットが現在のピクチャに使用されるかを示すために索引が信号化されうる。
いくつかの実施形態では、CbおよびCrの分類子は同じである。たとえば以下の表15に示されているように、すべてのクラスに対するCbおよびCrオフセットが共同で信号化されうる。
いくつかの実施形態では、CbおよびCrの分類子は同じであってよい。たとえば以下の表16に示されているように、すべてのクラスに対するCbおよびCrオフセットが、符号フラグ差によって共同で信号化されうる。表16によれば、Cbオフセットが(3,3,2,-1)であるとき、導出されるCrオフセットは(-3,-3,-2,1)である。
いくつかの実施形態では、たとえば以下の表17に示されているように、符号フラグは各クラスに対して信号化されうる。表17によれば、Cbオフセットが(3,3,2,-1)であるとき、導出されるCrオフセットは、それぞれの符号フラグに従って、(-3,3,2,1)である。
いくつかの実施形態では、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)である。
いくつかの実施形態では、たとえば以下の表19に示されているように、重みは各クラスに対して信号化されうる。表19によれば、Cbオフセットが(3,3,2,-1)であるとき、導出されるCrオフセットは、それぞれの符号フラグに従って、(-6,12,0,-1)である。
いくつかの実施形態では、複数分類子が同じPOCで使用される場合、異なるオフセット・セットが別個にまたは共同で信号化される。
いくつかの実施形態では、前に復号されたオフセットは、将来のフレームの使用のために記憶されうる。オフセットの信号化のオーバーヘッドを低減させるように、どの前に復号されたオフセット・セットが現在のフレームに使用されるかを示すために、索引が信号化されうる。たとえば、以下の表20に示されているように、POC0オフセットは、オフセットset idx=0を信号化することで、POC2によって再利用されうる。
いくつかの実施形態では、たとえば以下の表21に示されているように、CbおよびCrに対する再利用オフセットset idxは異なってよい。
いくつかの実施形態では、オフセットの信号化は、信号化のオーバーヘッドを低減させるために、startおよびlengthを含む追加の構文を使用することができる。たとえば、band_num=256であるとき、band_idx=37~44のオフセットのみが信号化される。以下の表22-1の例では、startおよびlengthの構文はどちらも8ビットの固定長コードであり、band_numビットに整合するべきである。
いくつかの実施形態では、CCSAOがすべてのYUV3成分に適用される場合、配列および隣接YUVサンプルが分類に共同で使用されてよく、Cb/Crに対するすべての上述されたオフセットの信号化方法がY/Cb/Crに拡張されうる。いくつかの実施形態では、異なる成分オフセット・セットが別個に記憶されて使用されてよく(各成分が独自の記憶されたセットを有する)、または共同で記憶されて使用されてよい(各成分が同じ記憶されたセットを共有/再利用する)。別個のセットの例が以下の表22-2に示されている。
いくつかの実施形態では、シーケンス・ビット深さが10(または特定のビット深さ)より大きい場合、オフセットは信号化前に量子化されうる。デコーダ側では、以下の表23に示されているように、復号されたオフセットが適用前に逆量子化される。たとえば、12ビットのシーケンスの場合、復号されたオフセットは2だけ左シフト(逆量子化)される。
いくつかの実施形態では、オフセットは、CcSaoOffsetVal=(1-2*ccsao_offset_sign_flag)*(ccsao_offset_abs<<(BitDepth-Min(10,BitDepth)))として計算されうる。
いくつかの実施形態では、サンプル処理が以下に記載される。R(x,y)をCCSAO前の入力ルマまたはクロマサンプル値とし、R’(x,y)をCCSAO後の出力ルマまたはクロマサンプル値とする。
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)を作成する。
いくつかの実施形態では、境界処理が以下に記載されている。分類に使用される配列および隣接ルマ(クロマ)サンプルのいずれかが現在のピクチャの外側に位置する場合、CCSAOが現在のクロマ(ルマ)サンプルに適用されない。図13Aは、本開示のいくつかの実装例によって、分類に使用される配列および隣接ルマ(クロマ)サンプルのいずれかが現在のピクチャの外側に位置する場合、CCSAOが現在のクロマ(ルマ)サンプルに適用されないことを示すブロック図である。たとえば、図13A(a)において、分類子が使用される場合、CCSAOは現在のピクチャの左1列のクロマ成分に適用されない。たとえば、C1’が使用される場合、図13A(b)に示されているように、CCSAOは現在のピクチャの左1列および上1行のクロマ成分に適用されない。
図13Bは、本開示のいくつかの実装例によって、分類に使用される配列および隣接ルマまたはクロマサンプルのいずれかが現在のピクチャの外側に位置する場合、CCSAOが現在のルマまたはクロマサンプルに適用されることを示すブロック図である。いくつかの実施形態では、変動は、図13B(b)に示されているように、分類に使用される配列および隣接ルマまたはクロマサンプルのいずれかが現在のピクチャの外側に位置する場合、図13B(a)に示されているように、失われたサンプルが反復的に使用され、または失われたサンプルがミラー・パディングされて、分類のためのサンプルを作成し、CCSAOは現在のルマまたはクロマサンプルに適用されうる。
図14は、本開示のいくつかの実装例によって、分類に使用される対応する選択された配列または隣接ルマサンプルが、仮想境界によって画定される仮想空間の外側である場合、CCSAOが現在のクロマサンプルに適用されないことを示すブロック図である。いくつかの実施形態では、仮想境界(VB)は、ピクチャフレーム内の空間を分離する仮想線である。いくつかの実施形態では、仮想境界(VB)が現在のフレーム内で適用される場合、CCSAOは、仮想境界によって画定される仮想空間の外側にある対応するルマ位置を選択したクロマサンプルに適用されない。図14は、9のルマ位置候補を有するC0分類子に対する仮想境界の一例を示す。各CTUに対して、CCSAOは、対応する選択されたルマ位置が仮想境界によって取り囲まれた仮想空間の外側にあるクロマサンプルに適用されない。たとえば、図14(a)で、選択されたY7ルマサンプル位置が、フレームの底辺から4画素のラインに位置する水平仮想境界1406の反対側にあるとき、CCSAOはクロマサンプル1402に適用されない。たとえば、図14(b)で、選択されたY5ルマサンプル位置が、フレームの右辺からy画素のラインに位置する垂直仮想境界1408の反対側に位置するとき、CCSAOはクロマサンプル1404に適用されない。
図15は、本開示のいくつかの実装例によって、反復またはミラー・パディングが、仮想境界の外側にあるルマサンプルに適用されうることを示す。図15(a)は、反復パディングの一例を示す。元のY7が、VB1502の底辺に位置する分類子になるように選択された場合、元のY7ルマサンプル値ではなく、Y4ルマサンプル値が分類に使用される(Y7位置にコピーされる)。図15(b)は、ミラー・パディングの一例を示す。Y7が、VB1504の底辺に位置する分類子になるように選択された場合、元のY7ルマサンプル値ではなく、Y0ルマサンプルに対してY7値に対称のY1ルマサンプル値が分類に使用される。パディング方法は、より多くのクロマサンプルにCCSAOを適用する可能性を与え、したがってより多くのコーディング利得が実現されうる。
いくつかの実施形態では、CCSAOによって必要とされる線バッファを低減させ、境界処理条件チェックを簡略化するために、制限が適用されうる。図16は、本開示のいくつかの実装例によって、9つすべての配列および隣接ルマサンプルが分類に使用される場合、追加の1ルマラインバッファ、すなわち現在のVB1602の上の線-5の全線ルマサンプルが必要とされうることを示す。図10B(a)は、6つのルマ候補のみを分類に使用する一例を示し、これは線バッファを低減させ、図13Aおよび図13Bにおけるいかなる追加の境界チェックも必要としない。
いくつかの実施形態では、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)は異なってよい(位置合わせされない)。
図17と同様に、図18Aは、VVCにおいて、本開示のいくつかの実装例によって、VB1802を交差する9つのルマ候補CCSAOが、1つの追加のルマラインバッファを増大させうる図を示す。VBは、異なる規格で異なってもよい。VVCにおいて、ルマVBは線-4であり、クロマVBは線-2であり、したがって9つの候補CCSAOが、1つのルマラインバッファを増大させうる。
いくつかの実施形態では、第1の解において、クロマサンプルのルマ候補のいずれかがVBを横切っている(現在のクロマサンプルVBの外側にある)場合、CCSAOがクロマサンプルに対して無効化される。図19A~図19Cは、本開示のいくつかの実装例によって、クロマサンプルのルマ候補のいずれかがVB1902を横切っている(現在のクロマサンプルVBの外側にある)場合、AVSおよびVVCにおいて、CCSAOがクロマサンプルに対して無効化されることを示す。図14もまた、この実装例のいくつかの例を示す。
いくつかの実施形態では、第2の解において、「交差VB」ルマ候補に対して、VBに近くVBの反対側にあるルマライン、たとえばルマライン-4から、反復パディングがCCSAOに使用される。いくつかの実施形態では、VBの下の隣接ルマに最も近いルマからの反復パディングが、「交差VB」クロマ候補に対して実装される。図20A~図20Cは、本開示のいくつかの実装例によって、AVSおよびVVCにおいて、クロマサンプルのルマ候補のいずれかがVB2002を横切っている(現在のクロマサンプルVBの外側にある)場合、クロマサンプルに対する反復パディングを使用してCCSAOが有効化されることを示す。図14(a)もまた、この実装例のいくつかの例を示す。
いくつかの実施形態では、第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を使用してパディングされる。
図18Bは、本開示のいくつかの実装例によって、現在のルマサンプルを分類するために配列または隣接クロマサンプルが使用され、選択されたクロマ候補がVBを横切って、追加のクロマ線バッファを必要としうる図を示す。上述されたものに類似の解1~4が、この問題に対処するために適用されうる。
解1は、そのクロマ候補のいずれかがVBを横切りうるとき、ルマサンプルに対するCCSAOを無効化することである。
解2は、「交差VB」クロマ候補に対して、VBの下の隣接クロマに最も近いクロマからの反復パディングを使用することである。
解3は、「交差VB」クロマ候補に対して、クロマVBの下からのミラー・パディングを使用することである。
解4は、「両面対称パディング」を使用することである。CCSAO配列クロマサンプルの中心に位置する候補セットに対して、候補セットの一方の側がVBの外側にある場合、両面対称パディングが両側に適用される。
パディング方法は、より多くのルマまたはクロマサンプルにCCSAOを適用する可能性を与え、したがってより多くのコーディング利得が実現されうる。
いくつかの実施形態では、底部ピクチャ(またはスライス、タイル、ブリック)境界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処理される。
いくつかの実施形態では、図16に説明されるように、CCSAOによって必要とされる線バッファを低減させ、境界処理条件チェックを簡略化するために、制限が適用されうる。図23は、本開示のいくつかの実装例によって、制限された数のルマ候補を分類に使用する制限を示す。図23(a)は、6つのルマ候補のみを分類に使用する制限を示す。図23(b)は、4つのルマ候補のみを分類に使用する制限を示す。
いくつかの実施形態では、適用領域が実装される。CCSAO適用領域ユニットは、CTBに基づくことができる。すなわち、オン/オフ制御、CCSAOパラメータ(分類オフセット・セット索引に使用されるオフセット、ルマ候補位置、band_num、ビットマスク...など)は、1つのCTB内で同じである。
いくつかの実施形態では、適用領域は、CTB境界に位置合わせされえない。たとえば、適用領域は、クロマCTB境界に位置合わせされず、シフトされる。構文(オン/オフ制御、CCSAOパラメータ)が、依然として各CTBに対して示されているが、本当の適用領域はCTB境界に位置合わせされない。図24は、本開示のいくつかの実装例によって、CCSAO適用領域がCTB/CTU境界2406に位置合わせされないことを示す。たとえば、適用領域は、クロマCTB/CTU境界2406に位置合わせされないが、VB2408に対して左上シフト(4,4)されたサンプルである。この位置合わせされていないCTB境界設計は、各8×8のデブロッキング・プロセス領域に対して同じデブロッキング・パラメータが使用されるため、デブロッキング・プロセスに利益をもたらす。
いくつかの実施形態では、表24に示されているように、CCSAO適用領域ユニット(マスク・サイズ)は可変であってよい(CTBサイズより大きいまたは小さい)。マスク・サイズは、異なる成分に対して異なってよい。マスク・サイズは、SPS/APS/PPS/PH/SH/領域/CTU/CU/サブブロック・レベルで切り換えられうる。たとえば、PHにおいて、各CCSAO領域情報を示すために、一連のマスク・オン/オフ・フラグおよびオフセット・セット索引が示される。
いくつかの実施形態では、CCSAO適用領域フレーム区分は固定されうる。たとえば、フレームをNの領域に分割する。図25は、本開示のいくつかの実装例によって、CCSAO適用領域フレーム区分がCCSAOパラメータによって固定されうることを示す。
いくつかの実施形態では、各領域は、その独自の領域オン/オフ制御フラグおよび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が適用される。
いくつかの実施形態では、異なるCCSAO適用領域が、同じ領域オン/オフ制御およびCCSAOパラメータを共有することができる。たとえば、図25(c)で、領域0~2は同じパラメータを共有し、領域3~15は同じパラメータを共有する。図25(c)はまた、領域オン/オフ制御フラグおよびCCSAOパラメータが、ヒルベルトスキャン順序で信号化されうることを示す。
いくつかの実施形態では、CCSAO適用領域ユニットは、ピクチャ/スライス/CTBレベルから分割された4分木/2分木/3分木になりうる。CTB分割と同様に、CCSAO適用領域区分を示すために、一連の分割されたフラグが信号化される。図26は、本開示のいくつかの実装例によって、CCSAO適用領域が、フレーム/スライス/CTBレベルから分割された2分木(BT)/4分木(QT)/3分木(TT)になりうることを示す。
図27は、本開示のいくつかの実装例によって、ピクチャフレーム内において異なるレベルで使用されて切り換えられる複数の分類子を示すブロック図である。いくつかの実施形態では、複数分類子が1つのフレームで使用される場合、分類子セット索引を適用する方法は、SPS/APS/PPS/PH/SH/領域/CTU/CU/サブブロック・レベルで切り換えられうる。たとえば、以下の表25に示されているように、4つの分類子セットがフレーム内で使用され、PHで切り換えられる。図27(a)および図27(c)は、デフォルト固定領域分類子を示す。図27(b)は、分類子セット索引がマスク/CTBレベルで信号化されることを示し、ここで0はこのCTBに対してCCSAOオフを意味し、1~4はセット索引を意味する。
いくつかの実施形態では、デフォルト領域の場合、この領域内のCTBがデフォルト・セット索引を使用しない(たとえば、領域レベル・フラグが0である)が、このフレーム内で他の分類子セットを使用する場合、領域レベル・フラグが信号化されうる。たとえば、デフォルト・セット索引が使用される場合、領域レベル・フラグは1になる。たとえば、正方形区分の4つの領域において、以下の表26に示されているように、以下の分類子セットが使用される。
図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に依存する。
いくつかの実施形態では、実装されるCCSAO構文が以下の表27に示されている。AVS3で、パッチという用語はスライスに類似し、パッチ・ヘッダはスライスヘッダに類似している。FLCは固定長コードを表す。TUは短縮単項コードを表す。EGkは、次数kを有する指数ゴロム・コードを表し、ここでkは固定されうる。
高次フラグがオフである場合、低次フラグがフラグのオフ状態から推論されてよく、信号化される必要はない。たとえば、このピクチャ内で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は存在せず、偽であると推論される。
いくつかの実施形態では、以下の表28に示されているように、SPSのccsao_enabled_flagがSPSのSAO有効化フラグで調整される。
いくつかの実施形態では、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レベルでさらに信号化しない。
いくつかの実施形態では、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が使用される。
以下の表30は、AVSにおいて、単一(set_num=1)または複数(set_num>1)の分類子がフレーム内で使用される一例を示す。構文表記は、上記で使用されている表記にマッピングされうる。
各領域が独自のセットを有する図25または図27と組み合わされた場合、構文の例は、以下で表31に示されているように、領域オン/オフ制御フラグ(picture_ccsao_lcu_control_flag[compIdx][setIdx])を含むことができる。
いくつかの実施形態では、イントラおよびインター予測後SAOフィルタへの拡張が、以下でさらに示されている。いくつかの実施形態では、本開示に開示されているSAO分類方法は、予測後フィルタとして働くことができ、予測は、イントラ、インター、または他の予測ツール、たとえばイントラ・ブロック・コピーとすることができる。図29は、本開示に開示されているSAO分類方法が本開示のいくつかの実装例に係る予測後フィルタとして働くことを示すブロック図である。
いくつかの実施形態では、各Y、U、およびV成分に対して、対応する分類子が選択される。各成分予測サンプルに対して、対応する分類子がまず分類され、対応するオフセットが加えられる。たとえば、各成分は、現在のサンプルおよび隣接するサンプルを分類に使用することができる。以下で表32に示されているように、Yは現在のYサンプルおよび隣接するYサンプルを使用し、U/Vは現在のU/Vサンプルを分類に使用する。図30は、本開示のいくつかの実装例によって、予測後SAOフィルタに対して、各成分が現在のサンプルおよび隣接するサンプルを分類に使用することができることを示すブロック図である。
いくつかの実施形態では、改良された予測サンプル(Ypred’、Upred’、Vpred’)が、対応するクラス・オフセットを加えることによって更新され、その後、イントラ、インター、または他の予測に使用される。
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)で加えられうる。
いくつかの実施形態では、改良された予測サンプル(Upred”,Vpred”)が、対応するクラス・オフセットを加えることによって更新され、その後、イントラ、インター、または他の予測に使用される。
Upred”=clip3(0,(1<<bit_depth)-1,Upred’+h’_U[i])
Vpred”=clip3(0,(1<<bit_depth)-1,Vpred’+h’_V[i])
いくつかの実施形態では、イントラおよびインター予測は、異なるSAOフィルタ・オフセットを使用することができる。
図31は、本開示のいくつかの実装例に係る成分間相関を使用してビデオ信号を復号する例示的なプロセス3100を示す流れ図である。
ビデオデコーダ30(図3に示されている)が、ビデオ信号から、第1の成分および第2の成分を含むピクチャフレームを受信する。いくつかの実施形態では、第1の成分はルマ成分であり、第2の成分は第1のクロマ成分である(3110)。
ビデオデコーダ30は、第1の成分のそれぞれのサンプルに関連付けられた第2の成分の第1のセットの1つまたは複数のサンプル、および第1の成分のそれぞれのサンプルに関連付けられた第1の成分の第2のセットの1つまたは複数のサンプルに基づいて、第1の成分に対する分類子を決定する(3120)。いくつかの実施形態では、分類子は、第1のサブ分類子および第2のサブ分類子によって決定され、第1のサブ分類子は、第2の成分の第1のセットの1つまたは複数のサンプルの値の第1のダイナミックレンジを第1の数のバンドに分割し、第2の成分の第1のセットの1つまたは複数のサンプルの強度値に基づいてバンドを選択することによって決定され、第2のサブ分類子は、第1の成分の第2のセットの1つまたは複数のサンプルの第1の部分群のエッジ情報の方向および強度に基づいて決定される(3120-1)。たとえば、複合ルマ・エッジ・オフセット(EO)およびクロマ・バンド・オフセット(BO)分類子が、ルマサンプルを分類するために使用される。
ビデオデコーダ30は、分類子に従って、第1の成分のそれぞれのサンプルに対するサンプルオフセットを決定する(3130)。
ビデオデコーダ30は、決定されたサンプルオフセットに基づいて、第1の成分のそれぞれのサンプルの値を修正する(3140)。
いくつかの実施形態では、ピクチャフレームは、第3の成分をさらに含み、第1の成分に対する分類子は、第1の成分のそれぞれのサンプルに関連付けられた第3の成分の第3のセットの1つまたは複数のサンプルにさらに基づき、第3の成分は第2のクロマ成分である。
いくつかの実施形態では、分類子に従って第1の成分のそれぞれのサンプルに対するサンプルオフセットを決定すること(3130)は、選択されたバンドおよびエッジ情報に従って、第1の成分に対する複数のオフセットからサンプルオフセットを選択することを含む。
いくつかの実施形態では、第1の成分に対する分類子を決定する(3120)前に、第1の成分のそれぞれのサンプルが、ループ内フィルタによって再構築され、第2の成分の第1のセットの1つまたは複数のサンプルが、ループ内フィルタによって再構築され、ループ内フィルタは、デブロッキングフィルタ(DBF)またはサンプル適応オフセット(SAO)である。
いくつかの実施形態では、第1の成分のそれぞれのサンプルに関連付けられた第2の成分の第1のセットの1つまたは複数のサンプルは、第1の成分のそれぞれのサンプルに対する第2の成分の配列および隣接サンプルのうちの1つまたは複数から選択される。
いくつかの実施形態では、第1の成分のそれぞれのサンプルに関連付けられた第1の成分の第2のセットの1つまたは複数のサンプルは、第1の成分のそれぞれのサンプルに対する第1の成分の現在のサンプルおよび隣接サンプルのうちの1つまたは複数から選択される。
いくつかの実施形態では、第1の成分のそれぞれのサンプルに対する分類子は、第1の成分の第2のセットの1つまたは複数のサンプルの第2の部分群の値の第2のダイナミックレンジを第2の数のバンドに分割することによって、分類子の第3のサブ分類子を決定し、第3の成分の第3のセットの1つまたは複数のサンプルの値の第3のダイナミックレンジを第3の数のバンドに分割することによって、分類子の第4のサブ分類子を決定し、第1のサブ分類子、第2のサブ分類子、第3のサブ分類子、および第4のサブ分類子を組み合わせることによってさらに決定される。
いくつかの実施形態では、決定されたサンプルオフセットに基づいて第1の成分のそれぞれのサンプルの値を修正すること(3140)は、再帰的に適用される。
いくつかの実施形態では、分類子のクラスの総数は、第1のサブ分類子および第2のサブ分類子の組合せに基づき、クラスの総数は最大範囲内であり、最大範囲は、シーケンスパラメータセット(SPS)、適応パラメータセット(APS)、ピクチャパラメータセット(PPS)、ピクチャヘッダ(PH)、およびスライスヘッダ(SH)のレベルのうちの1つまたは複数で固定または信号化される。たとえば、サブ分類子1は4つのクラスを有し、サブ分類子2は16のクラスを有し、組み合わせた分類子は、4×16のクラスを有し、この4×16というクラス数は最大範囲内である。
いくつかの実施形態では、第1の成分のそれぞれのサンプルに関連付けられた第2の成分の第1のセットの1つまたは複数のサンプルが、第1の成分のそれぞれのサンプルに対してコーディングツリーユニット(CTU)の仮想境界の同じ側に位置する場合、決定されたサンプルオフセットに基づいて第1の成分のそれぞれのサンプルの値を修正する(3140)。たとえば、ルマサンプルを分類するために、クロマ候補が使用される。ルマサンプルのクロマ候補のいずれかがルマサンプルのVBの同じ側にない場合、CCSAOがこのルマサンプルに対して無効化される。
いくつかの実施形態では、第1の成分のそれぞれのサンプルに関連付けられた第2の成分の第1のセットの1つまたは複数のサンプルの第1のサブセットが、第1の成分のそれぞれのサンプルに対して仮想境界の異なる側に位置し、かつ第1の成分のそれぞれのサンプルに関連付けられた第2の成分の第1のセットの1つまたは複数のサンプルの残りのサブセットが、第1の成分のそれぞれのサンプルに対して仮想境界の同じ側に位置する場合、第2の成分の第1のセットの1つまたは複数のサンプルの第1のサブセットは、第2の成分の第1のセットの1つまたは複数のサンプルの残りのサブセットから第2のサブセットをコピーすることによって交換され、第1の成分のそれぞれのサンプルに関連付けられた第2の成分の第1のセットの1つまたは複数のサンプルが、第1の成分のそれぞれのサンプルに対して仮想境界の異なる側に位置する場合、第2の成分の第1のセットの1つまたは複数のサンプルは、第1の成分のそれぞれのサンプルに対して仮想境界の同じ側にある第2の成分の第4のセットの1つまたは複数のサンプルをコピーして、第2の成分の第1のセットの1つまたは複数のサンプルを交換することによって交換される。
たとえば、ルマサンプルを分類するために、クロマ候補が使用される。ルマサンプルのクロマ候補のいずれかがルマサンプルのVBの同じ側にない場合、ルマサンプルのVBの同じ側にあるクロマ候補に基づいて、ルマサンプルのVBの他方の側でクロマ候補を導出するために、反復および/またはミラー・パディングが使用される。次いで、反復および/またはミラー・パディングされたクロマ候補に基づいて、CCSAOがルマサンプルに適用される。
いくつかの実施形態では、第2の成分の第1のセットの1つもしくは複数のサンプルの残りのサブセットからの第2のサブセットは、第1のサブセットに対して最も近い行からのものであり、または第2のサブセットは、第1のサブセットに対して仮想境界もしくは第1の成分のそれぞれのサンプルの対称の場所に位置する。
いくつかの実施形態では、第1の成分のそれぞれのサンプルに対して仮想境界の同じ側にある第4のセットの1つもしくは複数のサンプルは、第2の成分の第1のセットの1つもしくは複数のサンプルに対して最も近い行からのものであり、または第4のセットの1つもしくは複数のサンプルは、第2の成分の第1のセットの1つもしくは複数のサンプルに対して仮想境界もしくは第1の成分のそれぞれのサンプルの対称の場所に位置する。
いくつかの実施形態では、第1の成分のそれぞれのサンプルに関連付けられた第2の成分の第1のセットの1つまたは複数のサンプルの第1のサブセットが、第1の成分のそれぞれのサンプルに対して仮想境界の異なる側に位置し、かつ第1の成分のそれぞれのサンプルに関連付けられた第2の成分の第1のセットの1つまたは複数のサンプルの残りのサブセットが、第1の成分のそれぞれのサンプルに対して仮想境界の同じ側に位置する場合、第1の境界位置にある第1のサブセットは、第2の成分の第1のセットの1つまたは複数のサンプルの残りのサブセットから1つまたは複数の中心サブセットの第2のサブセットをコピーすることによって交換され、第2の境界位置にある残りのサブセット内の第3のサブセットは、第2の成分の第1のセットの1つまたは複数のサンプルの残りのサブセットから1つまたは複数の中心サブセットの第2のサブセットまたは第4のサブセットをコピーすることによって交換される。
たとえば、ルマサンプルを分類するために、クロマ候補が使用される。ルマサンプルのクロマ候補のいずれかがルマサンプルのVBの同じ側にない場合、ルマサンプルのVBの同じ側にあるクロマ候補に基づいて、ルマサンプルのVBの他方の側でクロマ候補を導出するために、両面対称パディングが使用される。次いで、両面対称パディングされたクロマ候補に基づいて、CCSAOがルマサンプルに適用される。
いくつかの実施形態では、第3のサブセットおよび第1のサブセットは、第2の成分の第1のセットの1つまたは複数のサンプル内で対称に位置する。
図32は、ユーザインターフェース3250に結合されたコンピューティング環境3210を示す。コンピューティング環境3210は、データ処理サーバの一部とすることができる。コンピューティング環境3210は、プロセッサ3220、メモリ3230、および入出力(I/O)インターフェース3240を含む。
プロセッサ3220は、典型的に、表示、データ取得、データ通信、および画像処理に関連付けられた動作など、コンピューティング環境3210の全体的な動作を制御する。プロセッサ3220は、前述の方法におけるステップのうちのすべてまたはいくつかを実行するための命令を実行するために、1つまたは複数のプロセッサを含むことができる。さらに、プロセッサ3220は、プロセッサ3220と他の構成要素との間の相互作用を容易にする1つまたは複数のモジュールを含むことができる。プロセッサは、中央処理装置(CPU)、マイクロプロセッサ、単一チップ機械、グラフィカル処理ユニット(GPU)などとすることができる。
メモリ3230は、コンピューティング環境3210の動作に対応するために、様々なタイプのデータを記憶するように構成される。メモリ3230は、所定のソフトウェア3232を含むことができる。そのようなデータの例は、コンピューティング環境3210、ビデオデータセット、画像データなどで動作させられる任意のアプリケーションまたはメソッドのための命令を含む。メモリ3230は、任意のタイプの揮発性もしくは不揮発性メモリ・デバイス、またはこれらの組合せ、たとえばスタティック・ランダム・アクセス・メモリ(SRAM)、電気的に消去可能なプログラマブル読取り専用メモリ(EEPROM)、消去可能なプログラマブル読取り専用メモリ(EPROM)、プログラマブル読取り専用メモリ(PROM)、読取り専用メモリ(ROM)、磁気メモリ、フラッシュ・メモリ、磁気または光ディスクを使用することによって実装されうる。
I/Oインターフェース3240は、プロセッサ3220と、キーボード、クリック・ホイール、ボタンなどの周辺インターフェース・モジュールとの間のインターフェースを提供する。ボタンは、それだけに限定されるものではないが、ホーム・ボタン、走査開始ボタン、および走査停止ボタンを含むことができる。I/Oインターフェース3240は、エンコーダおよびデコーダに結合されうる。
一実施形態では、前述の方法を実行するためにコンピューティング環境3210内でプロセッサ3220によって実行可能な複数のプログラムをたとえばメモリ3230内に備える非一時的コンピュータ可読記憶媒体も提供される。別法として、非一時的コンピュータ可読記憶媒体には、符号化されたビデオ情報(たとえば、1つまたは複数の構文要素を含むビデオ情報)を含むビットストリームまたはデータストリームが記憶されてよく、このビットストリームまたはデータストリームは、たとえばビデオデータを復号する際にデコーダ(たとえば、図3のビデオデコーダ30)によって使用される上述された符号化方法を使用して、エンコーダ(たとえば、図2のビデオエンコーダ20)によって生成される。非一時的コンピュータ可読記憶媒体は、たとえば、ROM、ランダム・アクセス・メモリ(RAM)、CD-ROM、磁気テープ、フロッピー・ディスク、光データストレージデバイスなどとすることができる。
一実施形態では1つまたは複数のプロセッサ(たとえば、プロセッサ3220)と、1つまたは複数のプロセッサによって実行可能な複数のプログラムが記憶された非一時的コンピュータ可読記憶媒体またはメモリ3230とを備えるコンピューティング・デバイスも提供され、1つまたは複数のプロセッサは、複数のプログラムの実行時に、前述の方法を実行するように構成される。
一実施形態では、前述の方法を実行するためにコンピューティング環境3210内でプロセッサ3220によって実行可能な複数のプログラムをたとえばメモリ3230内に備えるコンピュータ・プログラム製品も提供される。たとえば、コンピュータ・プログラム製品は、非一時的コンピュータ可読記憶媒体を含むことができる。
一実施形態では、コンピューティング環境3210は、上記の方法を実行するために、1つまたは複数のASIC、DSP、デジタル信号処理デバイス(DSPD)、プログラマブル論理デバイス(PLD)、FPGA、GPU、コントローラ、マイクロコントローラ、マイクロプロセッサ、または他の電子構成要素によって実装されうる。
さらなる実施形態はまた、様々な他の実施形態で組み合わされまたは他の方法で再配置された上記の実施形態の様々なサブセットを含む。
1つまたは複数の例では、記載されている機能は、ハードウェア、ソフトウェア、ファームウェア、またはこれらの任意の組合せで実装されうる。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとして、コンピュータ可読媒体上に記憶されてよく、またはコンピュータ可読媒体を介して伝送されてよく、ハードウェア・ベースの処理ユニットによって実行されてよい。コンピュータ可読媒体は、データ記憶媒体などの有形の媒体に対応するコンピュータ可読記憶媒体、またはたとえば通信プロトコルに従ったある場所から別の場所へのコンピュータ・プログラムの伝達を容易にする任意の媒体を含む通信媒体を含むことができる。このようにして、コンピュータ可読媒体は、概して、(1)非一時的である有形のコンピュータ可読記憶媒体、または(2)信号もしくはキャリア波などの通信媒体に対応することができる。データ記憶媒体は、本出願に記載されている実装例の実装のための命令、コード、および/またはデータ構造を取り出すために、1つもしくは複数のコンピュータまたは1つもしくは複数のプロセッサによってアクセスされうる任意の利用可能な媒体とすることができる。コンピュータ・プログラム製品は、コンピュータ可読媒体を含むことができる。
本明細書の実装例の説明で使用される術語は、特定の実装例について説明することのみを目的とし、特許請求の範囲を限定することを意図したものではない。実装例の説明および添付の特許請求の範囲で使用されるとき、単数形の「a」、「an」、および「the」は、別途文脈が明白に示さない限り、複数形も同様に含むことが意図される。本明細書では、「および/または」という用語は、挙げられている関連項目のうちの1つまたは複数のあらゆる可能な組合せを指し、包含することも理解されよう。「備える、含む(comprises)」および/または「備える、含む(comprising)」という用語は、本明細書で使用されるとき、記載の特徴、要素、および/または構成要素の存在を指定するが、1つまたは複数の他の特徴、要素、構成要素、および/またはこれらの群の存在または追加を除外しないことがさらに理解されよう。
本明細書では、様々な要素について説明するために、第1、第2などの用語が使用されうるが、これらの要素は、これらの用語によって限定されるべきではないことも理解されよう。これらの用語は、1つの要素を別の要素から区別するためにのみ使用される。たとえば、実装例の範囲から逸脱することなく、第1の電極が第2の電極と呼ばれてもよく、同様に第2の電極が第1の電極と呼ばれてもよい。第1の電極および第2の電極はどちらも電極であるが、同じ電極ではない。
本明細書全体にわたって、単数または複数の「一例」、「例」、「例示」などの参照は、ある例に関連して記載されている1つまたは複数の特定の特徴、構造、または特性が、本開示の少なくとも1つの例に含まれることを意味する。したがって、本明細書全体にわたって様々な場所での単数または複数の「一例では」または「例では」、「例示では」などの語句は、必ずしもすべて同じ例を指すとは限らない。さらに、1つまたは複数の例における特定の特徴、構造、または特性は、任意の好適な方法で組み合わされることを含むことができる。
本出願の説明は、例示および説明の目的で提示されており、網羅的であること、または開示される形態で本発明に限定されることが意図されるものではない。多くの修正例、変形例、および代替実装例が、上記の説明および関連する図面に提示される教示に利益を有する当業者には明らかであろう。実施形態は、本発明の原理、実際の応用について最善に説明するために、また当業者であれば様々な実装例に関して本発明を理解し、企図される特定の用途に適した様々な修正例とともに根本的な原理および様々な実装例を最善に利用することを可能にするために、選択および記載されたものである。したがって、特許請求の範囲は、開示される実装例の特有の例に限定されるものではなく、修正例および他の実装例も添付の特許請求の範囲内に含まれることが意図されることを理解されたい。

Claims (18)

  1. ビデオ信号を復号する方法であって、
    前記ビデオ信号から、第1の成分および第2の成分を含むピクチャフレームを受信することと、
    前記第1の成分のそれぞれのサンプルに関連付けられた前記第2の成分の第1のセットの1つまたは複数のサンプル、および前記第1の成分の前記それぞれのサンプルに関連付けられた前記第1の成分の第2のセットの1つまたは複数のサンプルに基づいて、前記第1の成分に対する分類子を決定することと、
    前記分類子に従って、前記第1の成分の前記それぞれのサンプルに対するサンプルオフセットを決定することと、
    前記決定されたサンプルオフセットに基づいて、前記第1の成分の前記それぞれのサンプルの値を修正することと、を含み、
    前記第1の成分がルマ成分であり、前記第2の成分が第1のクロマ成分であり、
    前記分類子が、第1のサブ分類子および第2のサブ分類子によって決定され、前記第1のサブ分類子が、前記第2の成分の前記第1のセットの1つまたは複数のサンプルの値の第1のダイナミックレンジを第1の数のバンドに分割し、前記第2の成分の前記第1のセットの1つまたは複数のサンプルの強度値に基づいてバンドを選択することによって決定され、前記第2のサブ分類子が、前記第1の成分の前記第2のセットの1つまたは複数のサンプルの第1の部分群のエッジ情報の方向および強度に基づいて決定される、方法。
  2. 前記ピクチャフレームが、第3の成分をさらに含み、前記第1の成分に対する前記分類子が、前記第1の成分の前記それぞれのサンプルに関連付けられた前記第3の成分の第3のセットの1つまたは複数のサンプルにさらに基づき、前記第3の成分が第2のクロマ成分である、請求項1に記載の方法。
  3. 前記分類子に従って前記第1の成分の前記それぞれのサンプルに対する前記サンプルオフセットを決定することが、
    前記選択されたバンドおよび前記エッジ情報に従って、前記第1の成分に対する複数のオフセットから前記サンプルオフセットを選択することを含む、請求項1に記載の方法。
  4. 前記第1の成分に対する前記分類子を決定する前に、前記第1の成分の前記それぞれのサンプルが、ループ内フィルタによって再構築され、前記第2の成分の前記第1のセットの1つまたは複数のサンプルが、ループ内フィルタによって再構築され、前記ループ内フィルタが、デブロッキングフィルタ(DBF)またはサンプル適応オフセット(SAO)である、請求項1に記載の方法。
  5. 前記第1の成分の前記それぞれのサンプルに関連付けられた前記第2の成分の前記第1のセットの1つまたは複数のサンプルが、前記第1の成分の前記それぞれのサンプルに対する前記第2の成分の配列および隣接サンプルのうちの1つまたは複数から選択される、請求項1に記載の方法。
  6. 前記第1の成分の前記それぞれのサンプルに関連付けられた前記第1の成分の前記第2のセットの1つまたは複数のサンプルが、前記第1の成分の前記それぞれのサンプルに対する前記第1の成分の現在のサンプルおよび隣接サンプルのうちの1つまたは複数から選択される、請求項1に記載の方法。
  7. 前記第1の成分の前記それぞれのサンプルに対する前記分類子が、
    前記第1の成分の前記第2のセットの1つまたは複数のサンプルの第2の部分群の値の第2のダイナミックレンジを第2の数のバンドに分割することによって、前記分類子の第3のサブ分類子を決定し、
    前記第3の成分の第3のセットの1つまたは複数のサンプルの値の第3のダイナミックレンジを第3の数のバンドに分割することによって、前記分類子の第4のサブ分類子を決定し、
    前記第1のサブ分類子、前記第2のサブ分類子、前記第3のサブ分類子、および前記第4のサブ分類子を組み合わせることによってさらに決定される、請求項2に記載の方法。
  8. 前記決定されたサンプルオフセットに基づいて前記第1の成分の前記それぞれのサンプルの前記値を修正することが、再帰的に適用される、請求項1に記載の方法。
  9. 前記分類子のクラスの総数が、前記第1のサブ分類子および前記第2のサブ分類子の組合せに基づき、前記クラスの総数が最大範囲内であり、前記最大範囲が、シーケンスパラメータセット(SPS)、適応パラメータセット(APS)、ピクチャパラメータセット(PPS)、ピクチャヘッダ(PH)、およびスライスヘッダ(SH)のレベルのうちの1つまたは複数で固定または信号化される、請求項1に記載の方法。
  10. 前記第1の成分の前記それぞれのサンプルに関連付けられた前記第2の成分の前記第1のセットの1つまたは複数のサンプルが、前記第1の成分の前記それぞれのサンプルに対してコーディングツリーユニットの仮想境界の同じ側に位置する場合、前記決定されたサンプルオフセットに基づいて前記第1の成分の前記それぞれのサンプルの前記値を修正する、請求項1に記載の方法。
  11. 前記第1の成分の前記それぞれのサンプルに関連付けられた前記第2の成分の前記第1のセットの1つまたは複数のサンプルの第1のサブセットが、前記第1の成分の前記それぞれのサンプルに対して仮想境界の異なる側に位置し、かつ前記第1の成分の前記それぞれのサンプルに関連付けられた前記第2の成分の前記第1のセットの1つまたは複数のサンプルの残りのサブセットが、前記第1の成分の前記それぞれのサンプルに対して前記仮想境界の同じ側に位置する場合、
    前記第2の成分の前記第1のセットの1つまたは複数のサンプルの前記第1のサブセットが、前記第2の成分の前記第1のセットの1つまたは複数のサンプルの前記残りのサブセットから第2のサブセットをコピーすることによって交換され、
    前記第1の成分の前記それぞれのサンプルに関連付けられた前記第2の成分の前記第1のセットの1つまたは複数のサンプルが、前記第1の成分の前記それぞれのサンプルに対して前記仮想境界の異なる側に位置する場合、
    前記第2の成分の前記第1のセットの1つまたは複数のサンプルが、前記第1の成分の前記それぞれのサンプルに対して前記仮想境界の同じ側にある前記第2の成分の第4のセットの1つまたは複数のサンプルをコピーして、前記第2の成分の前記第1のセットの1つまたは複数のサンプルを交換することによって交換される、
    請求項1に記載の方法。
  12. 前記第2の成分の前記セットの1つもしくは複数のサンプルの前記残りのサブセットからの前記第2のサブセットが、前記第1のサブセットに対して最も近い行からのものであり、または前記第2のサブセットが、前記第1のサブセットに対して前記仮想境界もしくは前記第1の成分の前記それぞれのサンプルの対称の場所に位置する、請求項11に記載の方法。
  13. 前記第1の成分の前記それぞれのサンプルに対して前記仮想境界の同じ側にある前記第4のセットの1つもしくは複数のサンプルが、前記第2の成分の前記第1のセットの1つもしくは複数のサンプルに対して最も近い行からのものであり、または前記第4のセットの1つもしくは複数のサンプルが、前記第2の成分の前記第1のセットの1つもしくは複数のサンプルに対して前記仮想境界もしくは前記第1の成分の前記それぞれのサンプルの対称の場所に位置する、請求項11に記載の方法。
  14. 前記第1の成分の前記それぞれのサンプルに関連付けられた前記第2の成分の前記第1のセットの1つまたは複数のサンプルの第1のサブセットが、前記第1の成分の前記それぞれのサンプルに対して前記仮想境界の異なる側に位置し、かつ前記第1の成分の前記それぞれのサンプルに関連付けられた前記第2の成分の前記第1のセットの1つまたは複数のサンプルの残りのサブセットが、前記第1の成分の前記それぞれのサンプルに対して前記仮想境界の同じ側に位置する場合、
    第1の境界位置にある前記第1のサブセットが、前記第2の成分の前記第1のセットの1つまたは複数のサンプルの前記残りのサブセットから前記1つまたは複数の中心サブセットの第2のサブセットをコピーすることによって交換され、
    第2の境界位置にある前記残りのサブセット内の第3のサブセットが、前記第2の成分の前記第1のセットの1つまたは複数のサンプルの前記残りのサブセットから前記1つまたは複数の中心サブセットの前記第2のサブセットまたは第4のサブセットをコピーすることによって交換される、
    請求項1に記載の方法。
  15. 前記第3のサブセットおよび前記第1のサブセットが、前記第2の成分の前記第1のセットの1つまたは複数のサンプル内に対称に位置する、請求項14に記載の方法。
  16. 1つまたは複数の処理ユニットと、
    前記1つまたは複数の処理ユニットに結合されたメモリと、
    前記メモリ内に記憶された複数のプログラムと、を備える電子装置であって、前記複数のプログラムが、前記1つまたは複数の処理ユニットによって実行されたとき、前記電子装置に、請求項1から15のいずれか一項に記載の方法を実行させる、
    電子装置。
  17. ビットストリームが記憶されたコンピュータ可読記憶媒体であって、請求項1から15のいずれか一項に記載のビデオ信号を復号する方法によって生成されたビデオ情報を含むコンピュータ可読記憶媒体。
  18. 1つまたは複数の処理ユニットを有する電子装置による実行のために、複数のプログラムを記憶する非一時的コンピュータ可読記憶媒体であって、前記複数のプログラムが、前記1つまたは複数の処理ユニットによって実行されたとき、前記電子装置に、請求項1から15のいずれか一項に記載の方法を実行させる、非一時的コンピュータ可読記憶媒体。
JP2023550329A 2021-02-22 2022-02-22 成分間サンプル適応オフセットにおけるコーディングの強化 Pending JP2024507857A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202163152324P 2021-02-22 2021-02-22
US63/152,324 2021-02-22
PCT/US2022/017318 WO2022178424A1 (en) 2021-02-22 2022-02-22 Coding enhancement cross-component sample adaptive offset

Publications (1)

Publication Number Publication Date
JP2024507857A true JP2024507857A (ja) 2024-02-21

Family

ID=82931830

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023550329A Pending JP2024507857A (ja) 2021-02-22 2022-02-22 成分間サンプル適応オフセットにおけるコーディングの強化

Country Status (7)

Country Link
US (1) US20230396781A1 (ja)
EP (1) EP4295576A1 (ja)
JP (1) JP2024507857A (ja)
KR (1) KR20230139811A (ja)
CN (1) CN116783889A (ja)
MX (1) MX2023009123A (ja)
WO (1) WO2022178424A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW202318870A (zh) * 2021-09-29 2023-05-01 美商高通公司 針對跨分量取樣自我調整偏移(ccsao)濾波器的邊緣偏移
WO2024041658A1 (en) * 2022-08-26 2024-02-29 Douyin Vision Co., Ltd. On sao and ccsao
WO2024054686A1 (en) * 2022-09-09 2024-03-14 Beijing Dajia Internet Information Technology Co., Ltd. Methods and devices for adaptive loop filtering

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2982695C (en) * 2011-06-24 2019-05-21 Lg Electronics Inc. Image information encoding and decoding method
US10397616B2 (en) * 2012-09-28 2019-08-27 Vid Scale, Inc. Cross-plane filtering for chroma signal enhancement in video coding
US10708588B2 (en) * 2013-06-19 2020-07-07 Apple Inc. Sample adaptive offset control
BR112021026341A2 (pt) * 2019-06-24 2022-02-08 Sharp Kk Sistemas e métodos para reduzir um erro de reconstrução na codificação de vídeo com base em uma correlação entre componentes
CN113994670B (zh) * 2019-07-25 2023-08-11 寰发股份有限公司 具有虚拟边界的跨分量自适应环路滤波的视频编解码方法及装置

Also Published As

Publication number Publication date
MX2023009123A (es) 2023-08-10
CN116783889A (zh) 2023-09-19
KR20230139811A (ko) 2023-10-05
WO2022178424A1 (en) 2022-08-25
EP4295576A1 (en) 2023-12-27
US20230396781A1 (en) 2023-12-07

Similar Documents

Publication Publication Date Title
US20230388509A1 (en) Chroma coding enhancement in cross-component sample adaptive offset
JP2024507857A (ja) 成分間サンプル適応オフセットにおけるコーディングの強化
US20230308652A1 (en) Chroma coding enhancement in cross-component sample adaptive offset with virtual boundary
US20230199209A1 (en) Chroma coding enhancement in cross-component sample adaptive offset
US20240007662A1 (en) Coding enhancement in cross-component sample adaptive offset
WO2022040428A1 (en) Chroma coding enhancement in cross-component sample adaptive offset
US20230336785A1 (en) Coding enhancement in cross-component sample adaptive offset
US20230379480A1 (en) Chroma coding enhancement in cross-component sample adaptive offset
JP2024520401A (ja) 方法、電子装置、コンピュータ可読ストレージ媒体、コンピュータプログラム、およびビットストリーム
US20230262235A1 (en) Chroma coding enhancement in cross-component sample adaptive offset with virtual boundary
CN116569551A (zh) 交叉分量样本自适应偏移中的色度编码增强
JP2024521804A (ja) 成分間サンプル適応オフセットにおけるコーディングの強化
CN117296315A (zh) 跨分量样点自适应偏移中的编解码增强

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230822

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230822