JP2024506156A - ビデオ符号化のための残差および係数の符号化 - Google Patents

ビデオ符号化のための残差および係数の符号化 Download PDF

Info

Publication number
JP2024506156A
JP2024506156A JP2023547334A JP2023547334A JP2024506156A JP 2024506156 A JP2024506156 A JP 2024506156A JP 2023547334 A JP2023547334 A JP 2023547334A JP 2023547334 A JP2023547334 A JP 2023547334A JP 2024506156 A JP2024506156 A JP 2024506156A
Authority
JP
Japan
Prior art keywords
flag
video
value
coding
rice
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
JP2023547334A
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 JP2024506156A publication Critical patent/JP2024506156A/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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • 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/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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • 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/174Methods 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 slice, e.g. a line of blocks or a group of blocks
    • 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/18Methods 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 set of transform coefficients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/98Adaptive-dynamic-range coding [ADRC]

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

ビデオ符号化のための方法、装置、および非一時的コンピュータ可読記憶媒体が提供される。ビデオ符号化のための方法は、デコーダによって、シーケンスパラメータセット(SPS)範囲拡張フラグの値に基づいてスライスヘッド(SH)の未加工バイトシーケンスペイロード(RBSP)構文構造内に構文構造sps_range_extensionが存在するかどうかを示すSPS範囲拡張フラグを受信することを含む。

Description

関連出願の相互参照
本出願は、2021年2月4日に出願された仮出願第63/145,964号に基づき、当該仮出願に対する優先権を主張するものであり、当該仮出願の内容全体は、あらゆる目的のために参照により本明細書に組み込まれる。
本開示は、ビデオの符号化および圧縮に関する。より詳細には、本開示は、ビデオ符号化のための残差および係数の符号化の改善ならびに簡素化に関する。
ビデオデータを圧縮するために、様々なビデオ符号化技法が使用されることがある。ビデオ符号化は、1つまたは複数のビデオ符号化規格に従って実行される。例えば、ビデオ符号化規格は、多用途ビデオ符号化(VVC:versatile video coding)、共同探索テストモデル(JEM:joint exploration test model)、高効率ビデオ符号化(H.265/HEVC:high-efficiency video coding)、先進ビデオ符号化(H.264/AVC:advanced video coding)、動画専門家グループ(MPEG:moving picture expert group)符号化、または同様のものを含む。ビデオ符号化は一般に、動画像またはシーケンスに存在する冗長性を活用する予測方法(例えば、インター予測、イントラ予測、または同様のもの)を利用する。ビデオ符号化技法の重要な目標は、ビデオ品質の低下を回避するかまたは最小限に抑えながら、ビデオデータをより低いビット・レートを使用する形式に圧縮することである。
本開示の例は、ビデオ符号化のための方法および装置を提供する。
本開示の第1の態様によれば、ビデオ符号化のための方法が提供される。方法は、デコーダによって、シーケンスパラメータセット(SPS:Sequence Parameter Set)範囲拡張フラグの値に基づいてスライスヘッド(SH:Slice Head)の未加工バイトシーケンスペイロード(RBSP:Raw Byte Sequence Payload)構文構造内に構文構造sps_range_extensionが存在するかどうかを示すSPS範囲拡張フラグを受信することを含んでもよい。
本開示の第2の態様によれば、ビデオ符号化のための方法が提供される。方法は、デコーダによって、シーケンスパラメータセット(SPS)アライメント有効の値に基づいて構文要素sb_coded_flag、abs_remainder、dec_abs_level、およびcoeff_sign_flagnのバイパス復号の前にインデックスivlCurrRangeがアライメントされるかどうかを示すSPSアライメント有効フラグを受信することを含んでもよい。
本開示の第3の態様によれば、ビデオ符号化のための方法が提供される。方法は、デコーダによって、拡張精度処理フラグ(extended precision processing flag)の値に基づいて変換係数についてまた変換処理中に拡張ダイナミックレンジが採用されるかどうかを示す拡張精度処理フラグを受信することを含んでもよい。
本開示の第4の態様によれば、ビデオ符号化のための方法が提供される。方法は、デコーダによって、永続的ライス適応有効フラグ(persistent rice adaption enabled flag)の値に基づいて、前のサブブロックから蓄積されたモード依存統計を採用している各サブブロックの開始時にabs_remainingおよびdec_abs_levelの2値化のためのライスパラメータ導出が初期化されるかどうかを示す、永続的ライス適応有効フラグを受信することを含んでもよい。
上記の概略的な説明および以下の詳細な説明は例示的かつ説明的なものにすぎず、本開示を限定することを意図したものではないことを理解されたい。
本明細書に組み込まれ本明細書の一部を構成する添付図面は、本開示に則した例を図示しており、説明とともに本開示の原理を説明する役割を果たす。
本開示の一例に係るエンコーダのブロック図である。 本開示の一例に係るデコーダのブロック図である。 本開示の一例に係る多型木構造におけるブロック区分を示す図である。 本開示の一例に係る多型木構造におけるブロック区分を示す図である。 本開示の一例に係る多型木構造におけるブロック区分を示す図である。 本開示の一例に係る多型木構造におけるブロック区分を示す図である。 本開示の一例に係る多型木構造におけるブロック区分を示す図である。 本開示の一例に係る18×12輝度CTUを有するピクチャを示す図である。 本開示の一例に係る18×12輝度CTUを有するピクチャの図である。 本開示の一例に係るVTMにおける許容されない三分木(TT:ternary tree)区分化および二分木(BT:binary tree)区分化の一例の図である。 本開示の一例に係るVTMにおける許容されないTT区分化およびBT区分化の一例の図である。 本開示の一例に係るVTMにおける許容されないTT区分化およびBT区分化の一例の図である。 本開示の一例に係るVTMにおける許容されないTT区分化およびBT区分化の一例の図である。 本開示の一例に係るVTMにおける許容されないTT区分化およびBT区分化の一例の図である。 本開示の一例に係るVTMにおける許容されないTT区分化およびBT区分化の一例の図である。 本開示の一例に係るVTMにおける許容されないTT区分化およびBT区分化の一例の図である。 本開示の一例に係るVTMにおける許容されないTT区分化およびBT区分化の一例の図である。 本開示の一例に係る変換ブロックの残差符号化構造の図である。 本開示の一例に係る変換スキップブロックの残差符号化構造の図である。 本開示の一例に係る2つのスカラ量子化器の図である。 本開示の一例に係る状態遷移の図である。 本開示の一例に係る量子化器選択の図である。 本開示に係る、確率モデルを選択するために使用されるテンプレートの図である。 本開示に係る、パレットモードで符号化されたブロックの一例の図である。 本開示に係る、パレットエントリを信号伝送するためのパレット予測子の使用を示す図である。 本開示に係る水平移動走査の図である。 本開示に係る垂直移動走査の図である。 本開示に係るパレットに対するサブブロックベースのインデックスマップ走査を示す図である。 本開示に係るパレットに対するサブブロックベースのインデックスマップ走査を示す図である。 本開示の一例に係るビデオ信号を符号化するための方法を示す図である。 本開示の一例に係るビデオ信号を符号化するための方法を示す図である。 本開示の一例に係るユーザインターフェースと結合されたコンピューティング環境を示す図である。 本開示の一例に係るビデオ符号化のための方法を示す図である。 本開示の一例に係るビデオ符号化のための方法を示す図である。 本開示の一例に係るビデオ符号化のための方法を示す図である。 本開示の一例に係るビデオ符号化のための方法を示す図である。 本開示の一例に係るビデオブロックを符号化および復号するための例示的なシステムを示すブロック図である。 本開示の一例に係る例示的なビデオエンコーダを示すブロック図である。 本開示の一例に係る例示的なビデオデコーダを示すブロック図である。
次に、例示的な実施形態を詳細に参照するが、その実施形態の例は添付の図面に示されている。以下の説明は添付の図面を参照しており、別段の記載がない限り、異なる図面における同じ番号は同じまたは類似の要素を表す。例示的な実施形態の以下の説明に記載される実装形態は、本開示に則したすべての実装形態を表すものではない。むしろ、その実装形態は、添付の特許請求の範囲に記載される本開示に関連する態様に則した装置および方法の単なる例である。
本開示で使用される用語は、特定の実施形態を説明することのみを目的としており、本開示を限定するよう意図されたものではない。単数形「a」、「an」、および「the」は、本開示および添付の特許請求の範囲で使用されるとき、文脈上明らかに別段の指示がない限り複数形も含むよう意図されている。本明細書で使用される「および/または」という用語は、関連する列挙された項目の1つまたは複数の任意またはすべての可能な組合せを意味するように、またそれらを含むように意図されていることも理解されたい。
本明細書において「第1の」、「第2の」、「第3の」などの用語は様々な情報を説明するために使用され得るが、これらの用語によってその情報が限定されるべきではないことを理解されたい。これらの用語は、情報の1つのカテゴリを別のカテゴリと区別するためにのみ使用される。例えば、本開示の範囲から逸脱することなく、第1の情報は第2の情報と称されることがあり、同様に、第2の情報は第1の情報と称されることがある。「場合」という用語は、本明細書で使用されるとき、文脈に応じて「ときに」、「に際して」、または「判断に応じて」を意味すると理解され得る。
2013年10月、HEVC規格の第1版が最終決定され、この第1版は、前世代のビデオ符号化規格H.264/MPEG AVCと比較して、約50%のビット・レート削減、または同等の知覚品質を提供する。HEVC規格は、以前の規格よりも符号化の大幅な改善を実現するが、追加の符号化ツールを用いることで、HEVCよりも優れた符号化効率が達成され得ることが証明されている。これに基づいて、VCEGとMPEGがともに、将来のビデオ符号化の標準化に向けた新しい符号化技術の探索作業を開始した。2015年10月、ITU-T VECGおよびISO/IEC MPEGによって共同ビデオ探索チーム(JVET:Joint Video Exploration Team)が結成され、符号化効率の大幅な向上を可能にし得る先進技術の重要な研究を開始した。JVETによって、HEVCテスト・モデル(HM)の上にいくつかの追加の符号化ツールを統合することにより、共同探索モデル(JEM)と呼ばれる1つの参照ソフトウェアが維持された。
2017年10月、ITU-TおよびISO/IECによって、HEVCを超える能力を備えたビデオ圧縮に関する共同提案募集(CfP:call for proposals)が発行された。2018年4月、第10回JVET会議において23件の回答が受領および評価され、これにより、HEVCよりも約40%圧縮効率が向上することが実証された。このような評価結果に基づいて、JVETは、多用途ビデオ符号化(VVC)と名付けられた新世代のビデオ符号化規格を開発するための新しいプロジェクトを立ち上げた。同月、VVC規格の参照実装を実証するために、VVCテスト・モデル(VTM)と呼ばれる1つの参照ソフトウェアコードベースが確立された。
HEVCと同様に、VVCは、ブロックベースのハイブリッド式ビデオ符号化フレームワークに基づいて構築される。
図1は、VVC用のブロックベースのビデオエンコーダの概略図を示している。具体的には、図1は、典型的なエンコーダ100を示している。エンコーダ100は、ビデオ入力110、動き補償112、動き推定114、イントラ/インター・モード決定116、ブロック予測子140、加算器128、変換130、量子化132、予測関連情報142、イントラ予測118、ピクチャバッファ120、逆量子化134、逆変換136、加算器126、メモリ124、ループ内フィルタ122、エントロピ符号化138、およびビットストリーム144を有する。
エンコーダ100では、ビデオフレームは処理のために複数のビデオブロックに区分化される。所与のビデオブロックごとに、インター予測手法またはイントラ予測手法のいずれかに基づいて予測が形成される。
ビデオ入力110の一部である現在のビデオブロックと、ブロック予測子140の一部であるその予測子との間の差を表す予測残差が、加算器128から変換130に送られる。次いで、エントロピ低減のために、変換係数が変換130から量子化132に送られる。次いで、量子化された係数がエントロピ符号化138に供給されて、圧縮されたビデオビットストリームを生成する。図1に示されているように、ビデオブロック区分情報、動きベクトル(MV:motion vector)、参照ピクチャインデックス、およびイントラ予測モードなどの、イントラ/インター・モード決定116からの予測関連情報142も、エントロピ符号化138を介して供給され、圧縮されたビットストリーム144内に保存される。圧縮されたビットストリーム144はビデオビットストリームを含む。
エンコーダ100では、予測を目的として画素を再構築するために、デコーダ関連の回路も必要である。最初に、逆量子化134および逆変換136を通じて予測残差が再構築される。この再構築された予測残差は、ブロック予測子140と組み合わされて、現在のビデオブロックのフィルタリングされていない再構築された画素を生成する。
空間予測(または「イントラ予測」)は、現在のビデオブロックと同じビデオフレーム内の既に符号化された隣接ブロックのサンプル(参照サンプルと呼ばれる)からの画素を使用して、現在のビデオブロックを予測する。
時間予測(「インター予測」とも呼ばれる)は、既に符号化されたビデオピクチャからの再構築された画素を使用して、現在のビデオブロックを予測する。時間予測は、ビデオ信号に固有の時間的冗長性を低減する。所与の符号化ユニット(CU:coding unit)または符号化ブロックの時間予測信号は、通常、現在のCUとその時間参照との間の動きの量および方向を示す1つまたは複数のMVによって信号伝送される。さらに、参照ピクチャストレージ内のどの参照ピクチャから時間予測信号が来ているかを識別するために使用される1つの参照ピクチャインデックスが追加で送られる。
動き推定114は、ビデオ入力110およびピクチャバッファ120からの信号を取り込み、動き推定信号を動き補償112に出力する。動き補償112は、ビデオ入力110、ピクチャバッファ120からの信号、および動き推定114からの動き推定信号を取り込み、動き補償信号をイントラ/インター・モード決定116に出力する。
空間予測および/または時間予測が実行された後、エンコーダ100内のイントラ/インター・モード決定116は、例えばレート歪み最適化方法に基づいて、最良の予測モードを選択する。次いで、現在のビデオブロックからブロック予測子140が減算され、結果として得られた予測残差は、変換130および量子化132を使用して無相関化される。結果として得られた量子化された残差係数は、逆量子化134によって逆量子化され、逆変換136によって逆変換されて、再構築された残差を形成し、次いで、再構築された残差が予測ブロックに再度加算されて、CUの再構築された信号を形成する。再構築されたCUがピクチャバッファ120の参照ピクチャストレージに入れられて将来のビデオブロックを符号化するために使用される前に、再構築されたCUに対して、ブロック解除フィルタ、サンプル適応オフセット(SAO)、および/または適応ループ内フィルタ(ALF)などのさらなるループ内フィルタリング122が適用されてもよい。出力ビデオビットストリーム144を形成するために、符号化モード(インターまたはイントラ)、予測モード情報、動き情報、および量子化された残差係数がすべてエントロピ符号化ユニット138に送られ、さらに圧縮およびパックされてビットストリームを形成する。
図1は、一般的なブロックベースのハイブリッド式ビデオ符号化システムのブロック図を示している。入力ビデオ信号は、(符号化ユニット(CU)と呼ばれる)ブロックごとに処理される。VTM-1.0では、CUは最大128×128画素であってもよい。しかし、四分木のみに基づいてブロックを区分化するHEVCとは異なり、VVCでは、四分木/二分木/三分木に基づいて様々な局所特性に適応するように、1つの符号化ツリーユニット(CTU)がCUに分解される。定義により、符号化ツリー・ブロック(CTB)は、ある値をNとした場合のN×Nブロックのサンプルであり、その結果、構成要素のCTBへの分割は区分化である。CTUは、輝度サンプルのCTB、3つのサンプル配列を有するピクチャの彩度サンプルの2つの対応するCTB、または、単色ピクチャもしくは3つの別個のカラー・プレーンとサンプルを符号化するために使用される構文構造とを使用して符号化されたピクチャのサンプルのCTBを含む。さらに、HEVCにおける複数の区分化ユニット・タイプの概念は排除され、すなわち、VVCでは、CU、予測ユニット(PU)、および変換ユニット(TU)の分離はもはや存在せず、その代わりに、さらなる区分なしに各CUが予測と変換との両方の基本単位として常に使用される。多型木構造では、最初に、1つのCTUが四分木構造によって区分化される。次いで、各四分木葉ノードは、二分木構造および三分木構造によってさらに区分化され得る。図3A、図3B、図3C、図3D、および図3Eに示されるように、四分区分化、水平二分区分化、垂直二分区分化、水平三分区分化、および垂直三分区分化の5つの分解タイプがある。
図3Aは、本開示に係る多型木構造におけるブロック四分区分を示す図を示している。
図3Bは、本開示に係る多型木構造におけるブロック垂直二分区分を示す図を示している。
図3Cは、本開示に係る多型木構造におけるブロック水平二分区分を示す図を示している。
図3Dは、本開示に係る多型木構造におけるブロック垂直三分区分を示す図を示している。
図3Eは、本開示に係る多型木構造におけるブロック水平三分区分を示す図を示している。
図1では、空間予測および/または時間予測が実行されてもよい。空間予測(または「イントラ予測」)は、同じビデオピクチャ/スライス内の既に符号化された隣接ブロックのサンプル(参照サンプルと呼ばれる)からの画素を使用して、現在のビデオブロックを予測する。空間予測は、ビデオ信号に固有の空間的冗長性を低減する。時間予測(「インター予測」または「動き補償予測」とも呼ばれる)は、既に符号化されたビデオピクチャからの再構築された画素を使用して、現在のビデオブロックを予測する。時間予測は、ビデオ信号に固有の時間的冗長性を低減する。所与のCUの時間予測信号は、通常、現在のCUとその時間参照との間の動きの量および方向を示す1つまたは複数の動きベクトル(MV)によって信号伝送される。また、複数の参照ピクチャがサポートされている場合、参照ピクチャストア内のどの参照ピクチャから時間予測信号が来ているかを識別するために使用される1つの参照ピクチャインデックスが追加で送られる。空間予測および/または時間予測の後、エンコーダ内のモード決定ブロックは、例えばレート歪み最適化方法に基づいて、最良の予測モードを選択する。次いで、現在のビデオブロックから予測ブロックが減算され、予測残差は、変換を使用して無相関化され、量子化される。量子化された残差係数は、逆量子化および逆変換されて、再構築された残差を形成し、次いで、再構築された残差が予測ブロックに再度加算されて、CUの再構築された信号を形成する。再構築されたCUが参照ピクチャストアに入れられて将来のビデオブロックを符号化するために使用される前に、再構築されたCUに対して、ブロック解除フィルタ、サンプル適応オフセット(SAO)、および適応ループ内フィルタ(ALF)などのさらなるループ内フィルタリングが適用されてもよい。出力ビデオビットストリームを形成するために、符号化モード(インターまたはイントラ)、予測モード情報、動き情報、および量子化された残差係数がすべてエントロピ符号化ユニットに送られ、さらに圧縮およびパックされてビットストリームを形成する。
図2は、VVC用のビデオデコーダの概略ブロック図を示している。具体的には、図2は、典型的なデコーダ200のブロック図を示している。デコーダ200は、ビットストリーム210、エントロピ復号212、逆量子化214、逆変換216、加算器218、イントラ/インター・モード選択220、イントラ予測222、メモリ230、ループ内フィルタ228、動き補償224、ピクチャバッファ226、予測関連情報234、およびビデオ出力232を有する。
デコーダ200は、図1のエンコーダ100内に存在する再構築関連セクションと同様である。デコーダ200では、最初に、到来する入力ビデオビットストリーム210がエントロピ復号212を通じて復号されて、量子化された係数レベルおよび予測関連情報を導出する。次いで、量子化された係数レベルが逆量子化214および逆変換216を通じて処理されて、再構築された予測残差を得る。イントラ/インター・モード選択器220に実装されるブロック予測子機構は、復号された予測情報に基づいて、イントラ予測222または動き補償224のいずれかを実行するように構成される。加算器218を使用して逆変換216からの再構築された予測残差とブロック予測子機構によって生成された予測出力とを合計することによって、フィルタリングされていない再構築された画素のセットが得られる。
再構築されたブロックは、参照ピクチャストアとして機能するピクチャバッファ226に記憶される前に、さらにループ内フィルタ228を通過してもよい。ピクチャバッファ226内の再構築されたビデオは、表示デバイスを駆動するために送られるとともに、将来のビデオブロックを予測するために使用されてもよい。ループ内フィルタ228がオンである状況において、これらの再構築された画素に対してフィルタリング動作が実行されて、最終的な再構築されたビデオ出力232を導出する。
図2は、ブロックベースのビデオデコーダの概略ブロック図を示している。最初に、エントロピ復号ユニットにおいてビデオビットストリームがエントロピ復号される。符号化モードおよび予測情報は、空間予測ユニット(イントラ符号化の場合)または時間予測ユニット(インター符号化の場合)に送られて予測ブロックを形成する。残差変換係数が逆量子化ユニットおよび逆変換ユニットに送られて、残差ブロックを再構築する。次いで、予測ブロックと残差ブロックとが加算される。再構築されたブロックは、参照ピクチャストアに記憶される前に、さらにループ内フィルタリングを通過してもよい。次いで、参照ピクチャストア内の再構築されたビデオは、表示デバイスを駆動するために送られるとともに、将来のビデオブロックを予測するために使用される。
一般に、VVCにおいて適用される基本的なイントラ予測方式は、いくつかのモジュールがさらに拡張および/または改善されていること、例えば、イントラサブ区分(ISP)符号化モード、広角イントラ方向による拡張イントラ予測、位置依存イントラ予測組合せ(PDPC:position-dependent intra prediction combination)、および4タップ・イントラ補間を除いて、HEVCのイントラ予測方式と同じに保たれている。
VVCにおけるピクチャ、タイルグループ、タイル、およびCTUの区分化
VVCでは、タイルは、ピクチャ内の特定のタイル列および特定のタイル行内のCTUの矩形領域として定義される。タイルグループは、単一のNALユニットに排他的に含まれるピクチャの整数個のタイルのグループである。基本的に、タイルグループの概念は、HEVCにおいて定義されているスライスと同じである。例えば、ピクチャは、タイルグループおよびタイルに分割される。タイルは、ピクチャの矩形領域をカバーするCTUのシーケンスである。タイルグループは、ピクチャのいくつかのタイルを含む。タイルグループの2つのモード、すなわちラスタ走査タイルグループモードおよび矩形タイルグループモードがサポートされている。ラスタ走査タイルグループモードでは、タイルグループは、ピクチャのタイルラスタ走査内のタイルのシーケンスを含む。矩形タイルグループモードでは、タイルグループは、集合的にピクチャの矩形領域を形成するピクチャのいくつかのタイルを含む。矩形タイルグループ内のタイルは、タイルグループのタイルラスタ走査の順序になる。
図4は、ピクチャのラスタ走査タイルグループ区分化の一例を示しており、ピクチャは12個のタイルおよび3個のラスタ走査タイルグループに分割されている。図4は、タイル410、412、414、416、および418を含む。各タイルは、18個のCTUを有する。より具体的には、図4は、12個のタイルおよび3個のタイルグループに区分化された18×12輝度CTUを有するピクチャを示している(参考)。3個のタイルグループは、次のように(1)第1のタイルグループがタイル410および412を含み、(2)第2のタイルグループがタイル414、416、418、420、および422を含み、(3)第3のタイルグループがタイル424、426、428、430、および432を含む。
図5は、ピクチャの矩形タイルグループ区分化の一例を示しており、ピクチャは、24個のタイル(6個のタイル列および4個のタイル行)、ならびに9個の矩形タイルグループに分割されている。図5は、タイル510、512、514、516、518、520、522、524、526、528、530、532、534、536、538、540、542、544、546、548、550、552、554、および556を含む。より具体的には、図5は、24個のタイルおよび9個のタイルグループに区分化された18×12輝度CTUを有するピクチャを示している(参考)。タイルグループはタイルを含み、タイルはCTUを含む。9個の矩形タイルグループは、(1)2個のタイル510および512、(2)2個のタイル514および516、(3)2個のタイル518および520、(4)4個のタイル522、524、534、および536、(5)4個のタイルグループ526、528、538、および540、(6)4個のタイル530、532、542、および544、(7)2個のタイル546および548、(8)2個のタイル550および552、(9)2個のタイル554および556を含む。
VVCにおける高周波ゼロ設定を伴う大型ブロックサイズの変換
VTM4では、最大64×64の大型ブロックサイズの変換が可能になり、この変換は主に、高解像度ビデオ、例えば1080pおよび4Kシーケンスに有用である。サイズ(幅もしくは高さ、または幅と高さとの両方)が64に等しい変換ブロックの高周波変換係数はゼロに設定され、その結果、低周波係数のみが保持される。例えば、ブロック幅をMとしブロック高さをNとしたM×N変換ブロックの場合、Mが64に等しいとき、変換係数の左32列のみが保たれる。同様に、Nが64に等しいとき、変換係数の上32行のみが保たれる。大型ブロックに対して変換スキップモードが使用されるとき、値をゼロに設定することなくブロック全体が使用される。
VVCにおける仮想パイプラインデータユニット(VPDU)
仮想パイプラインデータユニット(VPDU:Virtual pipeline data unit)は、ピクチャ内の重複しないユニットとして定義される。ハードウェアデコーダでは、連続するVPDUが複数のパイプライン・ステージによって同時に処理される。VPDUサイズは、ほとんどのパイプライン・ステージにおいてバッファ・サイズにほぼ比例し、したがって、VPDUサイズを小さく維持することが重要である。ほとんどのハードウェアデコーダでは、VPDUサイズは、最大変換ブロック(TB:transform block)サイズに設定され得る。しかし、VVCでは、三分木(TT)区分および二分木(BT)区分が、VPDUサイズの増加をもたらすことがある。
VPDUサイズを64×64輝度サンプルとして保つために、次の(構文信号伝送の修正を伴う)規範的な区分制限がVTM5に適用される。
TT分解は、幅もしくは高さのいずれか、または幅と高さとの両方が128に等しいCUに対して許容されない。
128×NのCUであり、N≦64である(すなわち、幅が128に等しく、高さが128未満である)場合、水平BTは許容されない。
N×128のCUであり、N≦64である(すなわち、高さが128に等しく、幅が128未満である)場合、垂直BTは許容されない。
図6A、図6B、図6C、図6D、図6E、図6F、図6G、および図6Hは、VTMにおける許容されないTT区分化およびBT区分化の例を示している。
VVCにおける変換係数符号化
VVCにおける変換係数符号化は、重複しない係数グループ(CGまたはサブブロックとも呼ばれる)をどちらも使用するという点でHEVCに類似している。しかし、それらの間にはいくつかの相違点もある。HEVCでは、係数の各CGは、4×4という固定サイズを有する。VVC草案6では、CGサイズは、TBサイズに依存するようになった。その結果、VVCでは様々なCGサイズ(1×16、2×8、8×2、2×4、4×2、および16×1)が利用可能である。符号化ブロック内部のCG、およびCG内の変換係数は、事前に定義された走査順序に従って符号化される。
画素あたりのコンテキスト符号化ビンの最大数を制限するために、TBの面積およびビデオ成分のタイプ(例えば、輝度成分対彩度成分)を使用して、TBのコンテキスト符号化ビン(CCB:context-coded bin)の最大数を導出する。コンテキスト符号化ビンの最大数は、TB_zosize*1.75に等しい。ここで、TB_zosizeは、係数ゼロ設定後のTB内のサンプル数を示す。なお、CGが非ゼロ係数を含むか否かを示すフラグであるcoded_sub_block_flagは、CCBカウントには考慮されない。
係数ゼロ設定は、変換ブロックのある特定の領域に位置する係数を強制的に0にするために変換ブロックに対して実行される動作である。例えば、現在のVVCでは、64×64変換は、関連するゼロ設定動作を有する。その結果、64×64変換ブロック内の左上の32×32領域の外側に位置する変換係数はすべて強制的に0になる。実際、現在のVVCでは、ある特定の次元に沿った32を超えるサイズを有する任意の変換ブロックの場合、左上の32×32領域を超えて位置する係数が強制的に0にするために、その次元に沿って係数ゼロ設定動作が実行される。
VVCにおける変換係数符号化では、最初に、変数remBinsPass1が、許容されるコンテキスト符号化ビンの最大数(MCCB:maximum number of context-coded bins)に設定される。符号化プロセスでは、コンテキスト符号化ビンが信号伝送されるたびに変数が1ずつ減る。remBinsPass1が4以上である間、係数は最初にsig_coeff_flag、abs_level_gt1_flag、par_level_flag、およびabs_level_gt3_flagの構文を通じて信号伝送され、これらはすべて第1のパスにおいてコンテキスト符号化ビンを使用する。係数のレベル情報の残りの部分は、第2のパスにおいてゴロムライス符号およびバイパス符号化ビン(bypass-coded bin)を使用して、abs_remainderの構文要素を用いて符号化される。第1のパスを符号化している間にremBinsPass1が4未満になったとき、現在の係数は第1のパスでは符号化されず、第2のパスにおいて、ゴロムライス符号およびバイパス符号化ビンを使用して、dec_abs_levelの構文要素を用いて直接符号化される。dec_abs_level[]のライスパラメータ導出プロセスは、表3に指定されているように導出される。上述されたすべてのレベルの符号化の後、最後に、sig_coeff_flagが1に等しいすべての走査位置のサイン(sign_flag)がバイパス・ビンとして符号化される。このようなプロセスは図7に描写されている。remBinsPass1はTBごとにリセットされる。sig_coeff_flag、abs_level_gt1_flag、par_level_flag、およびabs_level_gt3_flagのコンテキスト符号化ビンの使用から残りの係数のバイパス符号化ビンの使用への移行は、TBごとに最大1回のみ発生する。係数サブブロックについては、最初の係数を符号化する前にremBinsPass1が4未満である場合、バイパス符号化ビンを使用して係数サブブロック全体が符号化される。
図7は、変換ブロックの残差符号化構造の図を示している。
abs_remainderおよびdec_abs_levelの構文を信号伝送するために、統一された(同じ)ライスパラメータ(RicePara)の導出が使用される。唯一の相違点は、abs_remainderおよびdec_abs_levelを符号化するために、基準レベルbaseLevelがそれぞれ4および0に設定されることである。ライスパラメータは、ローカル・テンプレート内の隣接する5つの変換係数の絶対レベルの合計だけでなく、次のような対応する基準レベルにも基づいて決定される。
RicePara=RiceParTable[max(min(31,sumAbs-5*baseLevel),0)]
現在のVVC草案仕様における残差符号化の構文および関連する意味論がそれぞれ表1および表2に示されている。表1の読み方は、本開示の付属セクションに示されており、VVC仕様にも記載されている。
Figure 2024506156000002
Figure 2024506156000003
Figure 2024506156000004
Figure 2024506156000005
Figure 2024506156000006
Figure 2024506156000007
Figure 2024506156000008
Figure 2024506156000009
Figure 2024506156000010
Figure 2024506156000011
Figure 2024506156000012
VVCにおける変換スキップモードの残差符号化
単一の残差符号化方式が変換係数と変換スキップ係数との両方を符号化するように設計されているHEVCとは異なり、VVCでは、2つの別個の残差符号化方式が変換係数および変換スキップ係数(すなわち、残差)にそれぞれ使用される。
変換スキップモードでは、残差信号の統計的特性が変換係数の統計的特性とは異なり、低周波成分の周囲のエネルギー圧縮が観察されない。残差符号化は、
最後のx/y位置の信号伝送がないこと、
前のすべてのフラグが0に等しいとき、coded_sub_block_flagがDCサブブロックを除くすべてのサブブロックについて符号化されること、
2つの隣接する係数を用いたsig_coeff_flagコンテキストモデル化、
1つのコンテキストモデルのみを使用するpar_level_flag、
5、7、9を超えるフラグを追加、
剰余2値化のための修正されたライスパラメータ導出、
左および上の隣接する係数値に基づいてサイン・フラグのコンテキストモデル化が決定され、sig_coeff_flagの後、すべてのコンテキスト符号化ビンをともに保持するためにサイン・フラグが解析されること
を含む、(空間)変換スキップ残差の様々な信号特性を考慮して修正される。
図8に示されているように、第1のパスでは残差サンプルごとに構文要素sig_coeff_flag、coeff_sign_flag、abs_level_gt1_flag、par_level_flagがインターリーブ方式で符号化され、第2のパスにおけるabs_level_gtX_flagビットプレーン、第3のパスにおけるabs_remainderの符号化が続く。
パス1:sig_coeff_flag、coeff_sign_flag、abs_level_gt1_flag、par_level_flag
パス2:abs_level_gt3_flag、abs_level_gt5_flag、abs_level_gt7_flag、abs_level_gt9_flag
パス3:abs_remainder
図8は、変換スキップブロックの残差符号化構造の図を示している。
現在のVVC草案仕様における変換スキップモードの残差符号化の構文および関連する意味論がそれぞれ表5および表2に示されている。表5の読み方は、本開示の付属セクションに示されており、VVC仕様にも記載されている。
Figure 2024506156000013
Figure 2024506156000014
Figure 2024506156000015
Figure 2024506156000016
量子化
現在のVVCでは、最大QP値が51から63に拡張され、それに応じて初期QPの信号伝送が変更された。slice_qp_deltaの非ゼロ値が符号化されるとき、SliceQpYの初期値はスライス・セグメント層において修正され得る。変換スキップブロックの場合、QPが4に等しいとき、量子化ステップのサイズは1になるので、最小許容量子化パラメータ(QP)は4と定義される。
さらに、同じHEVCスカラ量子化が、依存スカラ量子化と呼ばれる新しい概念とともに使用される。依存スカラ量子化とは、変換係数の許容可能な再構築値のセットが再構築順序で現在の変換係数レベルより前の変換係数レベルの値に依存するという手法を指す。この手法の主な効果は、HEVCにおいて使用されるような従来の独立したスカラ量子化と比較して、許容可能な再構築ベクトルがN次元ベクトル空間でより高密度にパックされることである(Nは変換ブロック内の変換係数の数を表す)。すなわち、N次元単位体積あたりの許容可能な再構築ベクトルの所与の平均数について、入力ベクトルと最も近い再構築ベクトルとの間の平均歪みが減少する。依存スカラ量子化の手法は、(a)異なる再構築レベルを用いて2つのスカラ量子化器を定義すること、および(b)2つのスカラ量子化器間で切り替えるためのプロセスを定義することによって実現される。
使用される2つのスカラ量子化器が、Q0およびQ1で示された状態で図9に示されている。利用可能な再構築レベルの位置は、量子化ステップ・サイズΔによって一意に指定される。使用されるスカラ量子化器(Q0またはQ1)は、ビットストリーム内で明示的に信号伝送されない。代わりに、現在の変換係数に使用される量子化器は、符号化/再構築順序で現在の変換係数に先行する変換係数レベルのパリティによって決定される。
図9は、提案された依存量子化手法で使用される2つのスカラ量子化器の図を示している。
図10Aおよび図10Bに示されているように、2つのスカラ量子化器(Q0およびQ1)間の切り替えは、4つの量子化器状態(QState)を有する状態マシンを介して実現される。QStateは、0、1、2、3の異なる4つの値をとることができる。これは、符号化/再構築順序で現在の変換係数に先行する変換係数レベルのパリティによって一意に決定される。変換ブロックの逆量子化の開始時に、状態は、0に等しくなるように設定される。変換係数は、走査順序で(すなわち、それらがエントロピ復号されるのと同じ順序で)再構築される。現在の変換係数が再構築された後、状態は図10に示されているように更新され、ここで、kは変換係数レベルの値を示す。
図10Aは、提案された依存量子化についての状態遷移を示す遷移図を示している。
図10Bは、提案された依存量子化のための量子化器選択を示す表を示している。
デフォルトのユーザ定義されたスケーリング行列を信号伝送することもサポートされている。DEFAULTモードのスケーリング行列はすべて平坦であり、すべてのTBサイズについて要素は16に等しい。IBCおよびイントラ符号化モードは現在、同じスケーリング行列を共有している。したがって、USER_DEFINED行列の場合、MatrixTypeおよびMatrixType_DCの数は下記のように更新される。
MatrixType:30=2(イントラ&IBC/インターの場合の2)×3(Y/Cb/Cr成分)×5(正方形TBサイズ:輝度の場合は4×4から64×64まで、彩度の場合は2×2から32×32まで)。
MatrixType_DC:14=2(イントラ&IBC/インターの場合の2×Y成分の場合の1)×3(TBサイズ:16×16、32×32、64×64)+4(イントラ&IBC/インターの場合の2×Cb/Cr成分の場合の2)×2(TBサイズ:16×16、32×32)。
DC値は、次のスケーリング行列:16×16、32×32、および64×64に対して個別に符号化される。サイズが8×8より小さいTBの場合、1つのスケーリング行列内のすべての要素が信号伝送される。TBのサイズが8×8以上の場合、1つの8×8スケーリング行列内の64要素だけが基本スケーリング行列として信号伝送される。8×8よりも大きいサイズの正方行列を取得するために、8×8の基本スケーリング行列が、(要素の複製によって)対応する正方形サイズ(すなわち、16×16、32×32、64×64)にアップサンプリングされる。64点変換の高周波係数のゼロ設定が適用されると、スケーリング行列の対応する高周波もゼロ設定される。すなわち、TBの幅または高さが32以上の場合、係数の左半分または上半分のみが保持され、残りの係数には0が割り当てられる。さらに、右下の4×4要素は決して使用されないため、64×64スケーリング行列に対して信号伝送される要素の数も、8×8から3つの4×4部分行列に低減される。
変換係数符号化のためのコンテキストモデル化
変換係数レベルの絶対値に関連する構文要素の確率モデルの選択は、局所近傍における絶対レベルまたは部分的に再構築された絶対レベルの値に依存する。使用されるテンプレートが図11に図示されている。
図11は、確率モデルを選択するために使用されるテンプレートの図を示している。黒い四角形は現在の走査位置を指定し、「x」の付いた四角形は使用される局所近傍を表す。
選択される確率モデルは、局所近傍内の絶対レベル(または部分的に再構築された絶対レベル)の合計、および局所近傍内の0より大きい絶対レベルの数(1に等しいsig_coeff_flagsの数によって与えられる)に依存する。コンテキストモデル化および2値化は、局所近傍についての次の測定値、すなわち、
numSig:局所近傍内の非ゼロ・レベルの数、
sumAbs1:局所近傍内の第1のパス後の部分的に再構築された絶対レベル(absLevel1)の合計、
sumAbs:局所近傍内の再構築された絶対レベルの合計、
対角位置(d):変換ブロック内の現在の走査位置の水平座標および垂直座標の合計に依存する。
numSig、sumAbs1、およびdの値に基づいて、sig_coeff_flag、abs_level_gt1_flag、par_level_flag、およびabs_level_gt3_flagを符号化するための確率モデルが選択される。abs_remainderおよびdec_abs_levelを2値化するためのライスパラメータは、sumAbsおよびnumSigの値に基づいて選択される。
現在のVVCにおいて、低減32ポイントMTS(RMTS32とも呼ばれる)は、高周波係数をスキップすることに基づいており、32ポイントDST-7/DCT-8の計算複雑性を低減するために使用される。また、これは、すべてのタイプのゼロ設定(すなわち、RMTS32、およびDCT2における高周波成分用の既存のゼロ設定)を含む係数符号化の変更を伴う。具体的には、最後の非ゼロ係数位置符号化の2値化は、縮小されたTUサイズに基づいて符号化され、最後の非ゼロ係数位置符号化のためのコンテキストモデル選択は、元のTUサイズによって決定される。さらに、変換係数のsig_coeff_flagを符号化するために、60個のコンテキストモデルが使用される。コンテキストモデル・インデックスの選択は、locSumAbsPass1と呼ばれる、以前に部分的に再構築された5つの絶対レベルの合計と、下記のような依存量子化の状態QStateに基づいている。
cIdxが0に等しい場合、ctxIncは下記のように導出される。
ctxInc=12*Max(0,QState-1)+Min((locSumAbsPass1+1)>>1,3)+(d<2?8:(d<5?4:0))
それ以外の場合(cIdxが0よりも大きい場合)、ctxIncは下記のように導出される。
ctxInc=36+8*Max(0,QState-1)+Min((locSumAbsPass1+1)>>1,3)+(d<2?4:0)
パレットモード
パレットモードの背景にある基本的な理念は、CU内のサンプルが代表的な色値の小さいセットによって表されるということである。このセットはパレットと呼ばれる。パレットから除外される色値を3つの色成分のby値がビットストリームで直接信号伝送されるエスケープ色として信号伝送することによって、パレットから除外される色を示すことも可能である。これは図12に図示されている。
図12は、パレットモードで符号化されたブロックの一例を示している。図12は、パレットモードで符号化されたブロック1210およびパレット1220を含む。
図12において、パレットサイズは4である。最初の3つのサンプルは、再構築のためにそれぞれパレットエントリ2、0、および3を使用する。青色のサンプルはエスケープ記号を表す。CUレベル・フラグpalette_escape_val_present_flagは、CU内にエスケープ記号が存在するかどうかを示す。エスケープ記号が存在する場合、パレットサイズは1だけ増加し、エスケープ記号を示すために最後のインデックスが使用される。したがって、図12では、エスケープ記号に対してインデックス4が割り当てられる。
パレット符号化されたブロックを復号するために、デコーダは、次の情報、すなわち
パレットテーブル、
パレットインデックス
を有する必要がある。
パレットインデックスがエスケープ記号に対応する場合、サンプルの対応する色値を示すために追加のオーバーヘッドが信号伝送される。
さらに、エンコーダ側では、そのCUで使用される適切なパレットを導出する必要がある。
非可逆符号化のためのパレットの導出の場合、修正されたk平均クラスタリングアルゴリズムが使用される。ブロックの最初のサンプルがパレットに追加される。次に、ブロックからの後続のサンプルごとに、サンプルと現在のパレット色のそれぞれとの間の絶対差の合計(SAD:sum of absolute difference)が算出される。各成分の歪みが最小SADに対応するパレットエントリのしきい値よりも小さい場合、サンプルはそのパレットエントリに属するクラスタに追加される。それ以外の場合、サンプルは新しいパレットエントリとして追加される。クラスタにマッピングされたサンプルの数がしきい値を超えると、そのクラスタの重心は、更新されてそのクラスタのパレットエントリになる。
次のステップでは、クラスタが使用量の降順に並べ替えられる。次いで、各エントリに対応するパレットエントリが更新される。通常、クラスタ重心が、パレットのエントリとして使用される。しかし、パレットエントリを符号化するコストを考慮すると、レート歪み分析は、重心ではなく、パレット予測子からのエントリのいずれかが、更新されたパレットエントリとして使用されるのに好適であり得るかどうかを分析するように実行される。このプロセスは、すべてのクラスタが処理されるか、または最大パレットサイズに達するまで継続される。最後に、クラスタが単一のサンプルのみを有し、対応するパレットエントリがパレット予測子にない場合、サンプルはエスケープ記号に変換される。さらに、重複したパレットエントリは削除され、それらのクラスタはマージされる。
パレット導出後、ブロック内の各サンプルに、(SAD内の)最近傍のパレットエントリのインデックスが割り当てられる。次いでサンプルは、「INDEX」または「COPY_ABOVE」モードに割り当てられる。「INDEX」または「COPY_ABOVE」モードが可能である各サンプルについて。次いで、モードを符号化するコストが算出される。コストがより低いモードが選択される。
パレットエントリの符号化のために、パレット予測子が維持される。パレットの最大サイズおよびパレット予測子は、SPSにおいて信号伝送される。パレット予測子は、各CTU行、各スライス、および各タイルの先頭で初期化される。
パレット予測子の各エントリに対して、それが現在のパレットの一部であるかどうかを示す再利用フラグが信号伝送される。これは、図13に図示されている。
図13は、パレットエントリを信号伝送するためのパレット予測子の使用を示している。図13は、以前のパレット1310および現在のパレット1320を含む。
再利用フラグは、ゼロのランレングス符号化を使用して送られる。この後、次数0の指数ゴロム符号を使用して、新しいパレットエントリの数が信号伝送される。最後に、新しいパレットエントリの成分値が信号伝送される。
パレットインデックスは、図14Aおよび図14Bに示されるように水平移動走査および垂直移動走査を使用して符号化される。走査順序は、palette_transpose_flagを使用してビットストリームにおいて明示的に信号伝送される。
図14Aは、水平移動走査を示している。
図14Bは、垂直移動走査を示している。
パレットインデックスを符号化するために、図15Aおよび図15Bに示されるように移動走査モードに基づいてCUを16個のサンプルを有する複数のセグメントに分割した、ライン係数グループ(CG)ベースのパレットモードが使用され、インデックスラン、パレットインデックス値、およびエスケープモード用の量子化された色が、CGごとに順次に符号化/解析される。
図15Aは、パレットに対するサブブロックベースのインデックスマップ走査を示している。
図15Bは、パレットに対するサブブロックベースのインデックスマップ走査を示している。
パレットインデックスは、2つの主要なパレットサンプルモード「INDEX」および「COPY_ABOVE」を使用して符号化される。前に説明されたように、エスケープ記号には、最大パレットサイズに等しいインデックスが割り当てられる。「COPY_ABOVE」モードでは、上の行内のサンプルのパレットインデックスが複製される。「INDEX」モードでは、パレットインデックスが明示的に信号伝送される。各セグメントにおけるパレット実行符号化の符号化順序は下記のとおりである。
画素ごとに、画素が前の画素と同じモードであるかどうか、すなわち、前の走査された画素と現在の画素がどちらも実行タイプCOPY_ABOVEであるかどうか、前の走査された画素と現在の画素がどちらも実行タイプINDEXであり、同じインデックス値であるかどうかを示す1つのコンテキスト符号化ビンrun_copy_flag=0が信号伝送される。それ以外の場合、run_copy_flag=1が信号伝送される。
画素と前の画素が異なるモードである場合、画素の実行タイプ、すなわちINDEXまたはCOPY_ABOVEを示す1つのコンテキスト符号化ビンcopy_above_palette_indices_flagが信号伝送される。INDEXモードがデフォルトで使用されるので、サンプルが最初の行(水平移動走査)または最初の列(垂直移動走査)にある場合、デコーダは実行タイプを解析する必要はない。また、以前に解析された実行タイプがCOPY_ABOVEである場合、デコーダは実行タイプを解析する必要はない。1つのセグメント内の画素のパレット実行符号化後、INDEXモードのインデックス値(palette_idx_idc)および量子化されたエスケープ色(palette_escape_val)は、バイパス符号化される。
残差および係数の符号化に対する改善
VVCでは、変換係数を符号化するとき、abs_remainderおよびdec_abs_levelの構文を信号伝送するために、統一された(同じ)ライスパラメータ(RicePara)の導出が使用される。唯一の相違点は、abs_remainderおよびdec_abs_levelを符号化するために、基準レベルbaseLevelがそれぞれ4および0に設定されることである。ライスパラメータは、ローカル・テンプレート内の隣接する5つの変換係数の絶対レベルの合計だけでなく、次のような対応する基準レベルにも基づいて決定される。
RicePara=RiceParTable[max(min(31,sumAbs-5*baseLevel),0)]
言い換えれば、構文要素abs_remainderおよびdec_abs_levelの2値符号ワードは、隣接する係数のレベル情報に従って適応的に決定される。この符号ワードの決定はサンプルごとに実行されるので、係数符号化に対するこの符号ワード適応を処理するには追加の論理が必要である。
同様に、変換スキップモード下で残差ブロックを符号化するとき、構文要素abs_remainderの2値符号ワードは、隣接する残差サンプルのレベル情報に従って適応的に決定される。
さらに、残差符号化または変換係数符号化に関連する構文要素を符号化するとき、確率モデルの選択は隣接するレベルのレベル情報に依存し、これにより、追加の論理および追加のコンテキストモデルが必要になる。
現在の設計では、エスケープサンプルの2値化は、3次指数ゴロム2値化プロセスを呼び出すことによって導出される。その性能にはさらに改善の余地がある。
現在のVVCでは、2つの異なるレベルマッピング方式が利用可能であり、それぞれ通常変換および変換スキップに適用される。各レベルマッピング方式は、異なる条件、マッピング関数、およびマッピング位置に関連付けられる。通常変換が適用されるブロックの場合、コンテキスト符号化ビン(CCB)の数が制限を超えた後に、あるレベルマッピング方式が使用される。ZeroPos[n]として示されるマッピング位置およびAbsLevel[xC][yC]として示されるマッピング結果は、表2に指定されているように導出される。変換スキップが適用されるブロックの場合、コンテキスト符号化ビン(CCB)の数が制限を超える前に、別のレベルマッピング方式が使用される。predCoeffとして示されるマッピング位置およびAbsLevel[xC][yC]として示されるマッピング結果は、表5に指定されているように導出される。このような統一されていない設計は、標準化の観点からは最適ではない可能性がある。
HEVCにおける10ビットを超えるプロファイルの場合、extended_precision_processing_flagが1に等しいことは、係数解析および逆変換処理のために拡張ダイナミックレンジが使用されることを指定する。現在のVVCでは、10ビットを超える変換係数の残差符号化または変換スキップ符号化が性能の大幅な低下の原因として報告されている。その性能をさらに改善する余地がある。
提案される手法
本開示では、残差および係数の符号化に対する改善のセクションで述べられた課題に対処するために、いくつかの方法が提案される。以下の方法が単独でまたは組み合わせて適用されてもよいことが留意されるべきである。
本開示の第1の態様によれば、残差符号化において特定の構文要素、例えばabs_remainderを符号化するために2値符号ワードの固定セットを使用することが提案される。2値符号ワードは、様々な方法を使用して形成され得る。いくつかの例示的な方法が下記のように列挙されている。
第1に、abs_remainderの符号ワードを決定するために、現在のVVCで使用されている手順と同じ手順が使用されるが、常に固定ライスパラメータ(例えば、1、2、または3)が選択される。
第2に、固定長2値化である。
第3に、切り捨てライス2値化である。
第4に、切り捨てバイナリ(TB:truncated Binary)2値化プロセスである。
第5に、k次指数ゴロム2値化プロセス(EGk)である。
第6に、限定されたk次指数ゴロム2値化である。
本開示の第2の態様によれば、変換係数符号化において特定の構文要素、例えば、abs_remainderおよびdec_abs_levelを符号化するために、符号ワードの固定セットを使用することが提案される。2値符号ワードは、様々な方法を使用して形成され得る。いくつかの例示的な方法が下記のように列挙されている。
第1に、abs_remainderおよびdec_abs_levelの符号ワードを決定するために、現在のVVCで使用されている手順と同じ手順が使用されるが、固定ライスパラメータ、例えば、1、2、または3が用いられる。現在のVVCで使用されているように、baseLevelの値は、依然としてabs_remainderとdec_abs_levelで異なる可能性がある(例えば、abs_remainderおよびdec_abs_levelを符号化するために、baseLevelはそれぞれ4および0に設定される)。
第2に、abs_remainderおよびdec_abs_levelの符号ワードを決定するために、現在のVVCで使用されている手順と同じ手順が使用されるが、固定ライスパラメータ、例えば、1、2、または3が用いられる。abs_remainderおよびdec_abs_levelのbaseLevelの値は同じになるように、例えば、両方とも0を使用するかまたは両方とも4を使用するように選択される。
第3に、固定長2値化である。
第4に、切り捨てライス2値化である。
第5に、切り捨てバイナリ(TB)2値化プロセスである。
第6に、k次指数ゴロム2値化プロセス(EGk)である。
第7に、限定されたk次指数ゴロム2値化である。
本開示の第3の態様によれば、残差符号化または係数符号化に関連する構文要素(例えば、abs_level_gtx_flag)の符号化に単一のコンテキストを使用することが提案され、隣接する復号されたレベル情報に基づくコンテキスト選択は、除去され得る。
本開示の第4の態様によれば、残差符号化において特定の構文要素、例えばabs_remainderを符号化するために2値符号ワードの可変セットを使用することが提案され、2値符号ワードのセットの選択は、現在のブロックの特定の符号化された情報、例えば、TB/CBおよび/もしくはスライスに関連付けられた量子化パラメータ(QP)、CUの予測モード(例えば、IBCモードまたはイントラもしくはインター)、ならびに/またはスライス・タイプ(例えば、Iスライス、Pスライス、またはBスライス)に従って決定される。2値符号ワードの可変セットを導出するために、様々な方法が使用されてもよく、いくつかの例示的な方法が下記のように列挙されている。
第1に、bs_remainderの符号ワードを決定するために、現在のVVCで使用されている手順と同じ手順が使用されるが、異なるライスパラメータが用いられる。
第2に、k次指数ゴロム2値化プロセス(EGk)である。
第3に、限定されたk次指数ゴロム2値化である。
Figure 2024506156000017
第4の態様において説明されたものと同じ方法が、変換効率符号化に対しても適用可能である。本開示の第5の態様によれば、変換係数符号化において特定の構文要素、例えばabs_remainderおよびdec_abs_levelを符号化するために2値符号ワードの可変セットを使用することが提案され、2値符号ワードのセットの選択は、現在のブロックの特定の符号化された情報、例えば、TB/CBおよび/もしくはスライスに関連付けられた量子化パラメータ(QP)、CUの予測モード(例えば、IBCモードまたはイントラもしくはインター)、ならびに/またはスライス・タイプ(例えば、Iスライス、Pスライス、またはBスライス)に従って決定される。この場合もやはり、2値符号ワードの可変セットを導出するために、様々な方法が使用されてもよく、いくつかの例示的な方法が下記のように列挙されている。
第1に、bs_remainderの符号ワードを決定するために、現在のVVCで使用されている手順と同じ手順が使用されるが、異なるライスパラメータが用いられる。
第2に、k次指数ゴロム2値化プロセス(EGk)である。
第3に、限定されたk次指数ゴロム2値化である。
上記のこれらの方法では、2値符号ワードの異なるセットを導出するために、異なるライスパラメータが使用されてもよい。残差サンプルの所与のブロックについて、使用されるライスパラメータは、隣接レベル情報ではなく、QPCUとして示されるCU QPに従って決定される。表6に示されているように、具体的な一例が例示されており、ここで、TH1からTH4は(TH1<TH2<TH3<TH4)を満たす所定のしきい値であり、K0からK4は所定のライスパラメータである。実際には同じ論理が異なる方法で実装され得ることは留意に値する。例えば、表6に示されるように現在のCUのQP値から同じライスパラメータを導出するために、特定の方程式またはルックアップ・テーブルも使用されてもよい。
本開示の第5の態様によれば、変換係数符号化および/もしくは変換スキップ残差符号化の構文要素のための符号ワード決定に関連するパラメータならびに/またはしきい値のセットが、ビットストリーム内で信号伝送される。決定された符号ワードは、エントロピコーダ、例えば、算術符号化を通じて構文要素を符号化するときに2値化符号ワードとして使用される。
パラメータおよび/またはしきい値のセットが、構文要素の符号ワード決定に関連するすべてのパラメータおよびしきい値の完全なセットまたはサブセットであり得ることが留意されるべきである。パラメータおよび/またはしきい値のセットは、ビデオビットストリームにおいて様々なレベルで信号伝送され得る。例えば、それらは、符号化ツリーユニット(CTU)レベルにおけるシーケンスレベル(例えば、シーケンスパラメータセット)、ピクチャレベル(例えば、ピクチャパラメータセット、および/またはピクチャヘッダ)、スライスレベル(例えば、スライスヘッダ)で、または、符号化ユニット(CU)レベルで信号伝送され得る。
一例では、変換スキップ残差符号化においてabs_remainder構文を符号化するための符号ワードを決定するために使用されるライスパラメータは、スライスヘッダ、ピクチャヘッダ、PPS、および/またはSPSにおいて信号伝送される。信号伝送されたライスパラメータは、CUが変換スキップモードとして符号化されており、CUが上述されたスライスヘッダ、ピクチャヘッダ、PPS、および/またはSPSなどに関連付けられているときに、構文abs_remainderを符号化するための符号ワードを決定するために使用される。
本開示の第6の態様によれば、第1の態様および第2の態様において示された符号ワード決定に関連するパラメータおよび/またはしきい値のセットは、変換係数符号化および/または変換スキップ残差符号化の構文要素のために使用される。また、現在のブロックが輝度残差/係数または彩度残差/係数を含むかどうかに従って異なるセットが使用され得る。決定された符号ワードは、エントロピコーダ、例えば、算術符号化を通じて構文要素を符号化するときに2値化符号ワードとして使用される。
一例では、現在のVVCにおいて使用される変換残差符号化に関連付けられたabs_remainderの符号ワードは、輝度ブロックと彩度ブロックとの両方に使用されるが、異なる固定ライスパラメータが、輝度ブロックおよび彩度ブロックによってそれぞれ使用される。(例えば、輝度ブロックの場合はK1、彩度ブロックの場合はK2であり、K1およびK2は整数である)
本開示の第7の態様によれば、変換係数符号化および/もしくは変換スキップ残差符号化の構文要素のための符号ワード決定に関連するパラメータならびに/またはしきい値のセットが、ビットストリーム内で信号伝送される。また、輝度ブロックおよび彩度ブロックに対して異なるセットが信号伝送され得る。決定された符号ワードは、エントロピコーダ、例えば、算術符号化を通じて構文要素を符号化するときに2値化符号ワードとして使用される。
上記の態様において説明されたものと同じ方法が、パレットモードでのエスケープ値符号化、例えばpalette_escape_valに対しても適用可能である。
本開示の第8の態様によれば、パレットモードでエスケープ値を符号化するための2値符号ワードの異なるセットを導出するために、異なるk次の指数ゴロム2値化が使用されてもよい。一例では、エスケープサンプルの所与のブロックについて、使用される指数ゴロム・パラメータ、すなわち、値kは、QPCUとして示されるブロックのQP値に従って決定される。ブロックの所与のQP値に基づいてパラメータkの値を導出する際に、表6に示されているものと同じ例が使用され得る。その例では、異なる4つのしきい値(TH1からTH4まで)が列挙されており、これらのしきい値およびQPCUに基づいて5つの異なるk値(K0からK4まで)が導出され得るが、しきい値の数は説明のみを目的としていることは言及に値する。実際には、QP値範囲全体を異なる数のQP値セグメントに区分化するために、異なる数のしきい値が使用されてもよく、QP値セグメントごとに、パレットモードで符号化されたブロックのエスケープ値を符号化するための対応する2値符号ワードを導出するために、異なるk値が使用されてもよい。実際には同じ論理が異なる方法で実装され得ることも留意に値する。例えば、例えば、同じライスパラメータを導出するために、特定の方程式またはルックアップ・テーブルが使用されてもよい。
本開示の第9の態様によれば、エスケープサンプルの構文要素のための符号ワード決定に関連するパラメータおよび/またはしきい値のセットが、ビットストリーム内で信号伝送される。決定された符号ワードは、エントロピコーダ、例えば、算術符号化を通じて構文要素を符号化するときに2値化符号ワードとして使用される。
パラメータおよび/またはしきい値のセットが、構文要素の符号ワード決定に関連するすべてのパラメータおよびしきい値の完全なセットまたはサブセットであり得ることが留意されるべきである。パラメータおよび/またはしきい値のセットは、ビデオビットストリームにおいて様々なレベルで信号伝送され得る。例えば、それらは、符号化ツリーユニット(CTU)レベルにおけるシーケンスレベル(例えば、シーケンスパラメータセット)、ピクチャレベル(例えば、ピクチャパラメータセット、および/またはピクチャヘッダ)、スライスレベル(例えば、スライスヘッダ)で、または、符号化ユニット(CU)レベルで信号伝送され得る。
本態様による一例では、パレットモードでpalate_escape_val構文を符号化するための符号ワードを決定するために、k次の指数ゴロム2値化が使用され、値kは、ビットストリームにおいてデコーダに信号伝送される。値kは、様々なレベルで信号伝送されてもよく、例えば、値kは、スライスヘッダ、ピクチャヘッダ、PPS、および/またはSPSなどにおいて信号伝送されてもよい。信号伝送された指数ゴロム・パラメータは、CUがパレットモードとして符号化され、CUが上述されたスライスヘッダ、ピクチャヘッダ、PPSおよび/またはSPSなどに関連付けられているときに、構文palette_escape_valを符号化するための符号ワードを決定するために使用される。
変換スキップモードおよび通常変換モードのためのレベルマッピングの調和
本開示の第10の態様によれば、変換スキップモードと通常変換モードの両方について、レベルマッピングを適用するための同じ条件が使用される。一例では、変換スキップモードと通常変換モードとの両方について、コンテキスト符号化ビン(CCB)の数が制限を超えた後にレベルマッピングを適用することが提案される。別の例では、変換スキップモードと通常変換モードとの両方について、コンテキスト符号化ビン(CCB)の数が制限を超える前にレベルマッピングを適用することが提案される。
本開示の第11の態様によれば、変換スキップモードと通常変換モードとの両方について、レベルマッピングにおけるマッピング位置を導出するための同じ方法が使用される。一例では、変換スキップモード下で使用されるレベルマッピングにおけるマッピング位置の導出方法を通常変換モードにも適用することが提案される。別の例では、通常変換モード下で使用されるレベルマッピングにおけるマッピング位置の導出方法を変換スキップモードにも適用することが提案される。
本開示の第12の態様によれば、変換スキップモードと通常変換モードとの両方に同じレベルマッピング方法が適用される。一例では、変換スキップモード下で使用されるレベルマッピング関数を通常変換モードにも適用することが提案される。別の例では、通常変換モード下で使用されるレベルマッピング関数を変換スキップモードにも適用することが提案される。
残差符号化におけるライスパラメータ導出の簡略化
本開示の第13の態様によれば、ゴロムライス符号を使用して構文要素abs_remainder/dec_abs_levelを符号化する際のライスパラメータの導出のために、ルックアップ・テーブルの代わりにシフト演算または除算演算などの単純な論理を使用することが提案される。現在の開示によれば、表4に指定されているようなルックアップ・テーブルは除去されてもよい。一例では、ライスパラメータcRiceParamは、cRiceParam=(locSumAbs>>n)として導出され、ここで、nは正の数、例えば3である。実際には、同じ結果を達成するために他の異なる論理、例えば2のn乗に等しい値による除算演算が使用されてもよいことは留意に値する。VVC草案に基づく対応する復号プロセスの一例が以下に示されており、変更箇所は太字の斜体フォントで示され、削除された内容は斜体フォントで示されている。
Figure 2024506156000018
本開示の第14の態様によれば、ゴロムライス符号を使用して構文要素abs_remainder/dec_abs_levelを符号化する際のライスパラメータの導出のために、より少ない隣接位置を使用することが提案される。一例では、構文要素abs_remainder/dec_abs_levelを符号化する際のライスパラメータの導出のために、2つの隣接位置のみを使用することが提案される。VVC草案に基づく対応する復号プロセスが以下に示されており、変更箇所は太字の斜体フォントで示され、削除された内容は斜体フォントで示されている。
Figure 2024506156000019
別の例では、構文要素abs_remainder/dec_abs_levelを符号化する際のライスパラメータの導出のために、1つの隣接位置のみを使用することが提案される。VVC草案に基づく対応する復号プロセスが以下に示されており、変更箇所は太字の斜体フォントで示され、削除された内容は斜体フォントで示されている。
Figure 2024506156000020
本開示の第15の態様によれば、ゴロムライス符号を使用して構文要素abs_remainder/dec_abs_levelを符号化する際のライスパラメータの導出のために、baseLevelの値に基づいてlocSumAbsの値を調整するための異なる論理を使用することが提案される。一例では、追加のスケール演算およびオフセット演算が「(locSumAbs-BaseLevel*5)*alpha+beta」の形式で適用される。アルファが1.5という値をとり、ベータが1という値をとるときの、VVC草案に基づく対応する復号プロセスが以下に示されており、変更箇所は太字の斜体フォントで示され、削除された内容は斜体フォントで示されている。
Figure 2024506156000021
本開示の第16の態様によれば、ゴロムライス符号を使用した構文要素abs_remainder/dec_abs_levelにおけるライスパラメータ導出のために、クリップ演算を除去することが提案される。現在の開示によれば、VVC草案の復号プロセスの一例が以下に示されており、変更箇所は太字の斜体フォントで示され、削除された内容は斜体フォントで示されている。
Figure 2024506156000022
現在の開示によれば、VVC草案の復号プロセスの一例が以下に示されており、変更箇所は太字の斜体フォントで示され、削除された内容は斜体フォントで示されている。
Figure 2024506156000023
本開示の第17の態様によれば、ゴロムライス符号を使用して構文要素abs_remainder/dec_abs_levelを符号化する際のライスパラメータの導出のために、locSumAbsの初期値を0から非ゼロ整数に変更することが提案される。一例では、初期値1がlocSumAbsに割り当てられ、VVC草案に基づく対応する復号プロセスが以下に示されており、変更箇所は太字の斜体フォントで示され、削除された内容は斜体フォントで示されている。
Figure 2024506156000024
本開示の第18の態様によれば、ゴロムライス符号を使用して構文要素abs_remainder/dec_abs_levelを符号化する際のライスパラメータの導出のために、隣接位置レベル値の合計値の代わりに隣接位置レベル値の最大値を使用することが提案される。VVC草案に基づく対応する復号プロセスの一例が以下に示されており、変更箇所は太字の斜体フォントで示され、削除された内容は斜体フォントで示されている。
Figure 2024506156000025
本開示の第19の態様によれば、ゴロムライス符号を使用して構文要素abs_remainder/dec_abs_levelを符号化する際に、隣接位置における各AbsLevel値の相対振幅および基準レベル値に基づいてライスパラメータを導出することが提案される。一例では、ライスパラメータは、隣接位置におけるAbsLevel値のうちのどれだけが基準レベルよりも大きいかに基づいて導出される。VVC草案に基づく対応する復号プロセスの一例が以下に示されており、変更箇所は太字の斜体フォントで示され、削除された内容は斜体フォントで示されている。
Figure 2024506156000026
別の例では、ライスパラメータは、AbsLevel値が基準レベルより大きい隣接位置の(AbsLevel-BaseLevel)値の合計に基づいて導出される。VVC草案に基づく対応する復号プロセスの一例が以下に示されており、変更箇所は太字の斜体フォントで示され、削除された内容は斜体フォントで示されている。
Figure 2024506156000027
現在の開示によれば、VVC草案の復号プロセスの一例が以下に示されており、変更箇所は太字の斜体フォントで示され、削除された内容は斜体フォントで示されている。
Figure 2024506156000028
残差符号化におけるレベルマッピング位置導出の簡略化
本開示の第20の態様によれば、ZeroPos[n]がcRiceParamからのみ導出されるように、ZeroPos[n]の導出からQStateを除去することが提案される。VVC草案に基づく対応する復号プロセスの一例が以下に示されており、変更箇所は太字の斜体フォントで示され、削除された内容は斜体フォントで示されている。
Figure 2024506156000029
本開示の第21の態様によれば、locSumAbsの値に基づいてZeroPos[n]を導出することが提案される。VVC草案に基づく対応する復号プロセスの一例が以下に示されており、変更箇所は太字の斜体フォントで示され、削除された内容は斜体フォントで示されている。
Figure 2024506156000030
本開示の第22の態様によれば、隣接する位置のAbsLevelの値に基づいてZeroPos[n]を導出することが提案される。一例では、ZeroPos[n]は、AbsLevel[xC+1][yC]およびAbsLevel[xC][yC+1]のうちの最大値に基づいて導出される。VVC草案に基づく対応する復号プロセスの一例が以下に示されており、変更箇所は太字の斜体フォントで示され、削除された内容は斜体フォントで示されている。
Figure 2024506156000031
本開示の第23の態様によれば、隣接する位置のすべてのAbsLevel値の最大値に基づいてcRiceParamとZeroPos[n]との両方を導出することが提案される。VVC草案に基づく対応する復号プロセスの一例が以下に示されており、変更箇所は太字の斜体フォントで示され、削除された内容は斜体フォントで示されている。
Figure 2024506156000032
上記の態様において説明されたものと同じ方法が、変換スキップモードの残差符号化におけるpredCoeffの導出にも適用可能である。一例では、変数predCoeffは下記のように導出される。
predCoeff=Max(absLeftCoeff,absAboveCoeff)+1
変換係数の残差符号化
本開示では、「残差および係数の符号化に対する改善」セクションで指摘された問題に対処するために、残差符号化の既存の設計を簡素化および/またはさらに改善するための方法が提供される。概して、本開示で提案される技術の主な特徴は、下記のように要約される。
第1に、通常の残差符号化の下で使用されるライスパラメータ導出を現在の設計に基づいて調整する。
第2に、通常の残差符号化の下で使用される2値法を変更する。
第3に、通常の残差符号化の下で使用されるライスパラメータ導出を変更する。
現在の設計に基づく残差符号化におけるライスパラメータ導出
本開示の第24の態様によれば、残差符号化において特定の構文要素、例えばabs_remainder/dec_abs_levelを符号化するためにライスパラメータ導出の可変方法を使用することが提案され、現在のブロックの特定の符号化された情報、例えばTB/CBおよび/もしくはスライス/プロファイルに関連付けられた量子化パラメータもしくは符号化ビット深度に従って、かつ/または、TB/CB/スライス/ピクチャ/シーケンスレベルに関連付けられた新しいフラグ、例えばextended_precision_processing_flagに従って、選択結果が決定される。ライスパラメータを導出するために様々な方法が使用されてもよく、いくつかの例示的な方法が下記に列挙されている。
第1に、cRiceParam=(cRiceParam<<a)+(cRiceParam>>b)+cであり、ここで、a、b、およびcは正の数、例えば{a,b,c}={1,1,0}である。実際には、同じ結果を達成するために他の異なる論理、例えば2のn乗に等しい値による乗算演算が使用されてもよいことは留意に値する。
第2に、cRiceParam=(cRiceParam<<a)+bであり、ここで、aおよびbは正の数、例えば{a,b}={1,1}である。実際には、同じ結果を達成するために他の異なる論理、例えば2のn乗に等しい値による乗算演算が使用されてもよいことは留意に値する。
第3に、cRiceParam=(cRiceParam*a)+bであり、ここで、aおよびbは正の数、例えば{a,b}={1.5,0}である。実際には、同じ結果を達成するために他の異なる論理、例えば2のn乗に等しい値による乗算演算が使用されてもよいことは留意に値する。
VVC草案に基づく対応する復号プロセスの一例が以下に示されており、変更箇所は太字の斜体フォントで示され、削除された内容は斜体フォントで示されている。VVC草案に対する変更箇所は表22に太字の斜体のフォントで示されている。実際には同じ論理が異なる方法で実装され得ることは留意に値する。例えば、現在のCU/シーケンスのBitDepth値から同じライスパラメータを導出するために、特定の方程式またはルックアップ・テーブルも使用されてもよい。
Figure 2024506156000033
Figure 2024506156000034
別の例では、BitDepthが所定のしきい値(例えば、10、11、12、13、14、15、または16)以上であるとき、ライスパラメータcRiceParamは、cRiceParam=(cRiceParam<<a)+(cRiceParam>>b)+cとして導出され、ここで、a、b、およびcは正の数、例えば1である。VVC草案に基づく対応する復号プロセスが以下に示されており、変更箇所は太字の斜体フォントで示され、削除された内容は斜体フォントで示されている。VVC草案に対する変更箇所は、表23に太字の斜体フォントで示されている。実際には同じ論理が異なる方法で実装され得ることは留意に値する。例えば、現在のCU/シーケンスのBitDepth値から同じライスパラメータを導出するために、特定の方程式またはルックアップ・テーブルも使用されてもよい。
Figure 2024506156000035
Figure 2024506156000036
10ビットを超えるプロファイルの残差符号化における2値法
本開示の第25の態様によれば、残差符号化において特定の構文要素、例えばabs_remainder/dec_abs_levelを符号化するために2値符号ワードの可変セットを使用することが提案され、現在のブロックの特定の符号化された情報、例えばTB/CBおよび/もしくはスライス/プロファイルに関連付けられた量子化パラメータもしくは符号化ビット深度に従って、かつ/または、TB/CB/スライス/ピクチャ/シーケンスレベルに関連付けられた新しいフラグ、例えばextended_precision_processing_flagに従って、選択結果が決定される。2値符号ワードの可変セットを導出するために様々な方法が使用されてもよく、いくつかの例示的な方法が下記に列挙されている。
第1に、abs_remainderの符号ワードを決定するために、現在のVVCで使用されている手順と同じ手順が使用されるが、常に固定ライスパラメータ(例えば、2、3、4、5、6、7、または8)が選択される。固定値は、現在のブロックの特定の符号化された情報、例えばTB/CBおよび/もしくはスライス/プロファイルに関連付けられた量子化パラメータもしくは符号化ビット深度に従って、かつ/または、TB/CB/スライス/ピクチャ/シーケンスレベルに関連付けられた構文要素、例えばrice_parameter_valueに従って、異なる条件において異なる場合がある。表24に示されているように、具体的な一例が例示されており、ここで、TH1からTH4は(TH1<TH2<TH3<TH4)を満たす所定のしきい値であり、K0からK4は所定のライスパラメータである。実際には同じ論理が異なる方法で実装され得ることは留意に値する。例えば、表24に示されるように現在のCU/シーケンスのBitDepth値から同じライスパラメータを導出するために、特定の方程式またはルックアップ・テーブルも使用されてもよい。
第2に、固定長2値化である。
第3に、切り捨てライス2値化である。
第4に、切り捨てバイナリ(TB)2値化プロセスである。
第5に、k次指数ゴロム2値化プロセス(EGk)である。
第6に、限定されたk次指数ゴロム2値化である。
Figure 2024506156000037
一例では、新しいフラグ、例えばextended_precision_processing_flagが1に等しいとき、ライスパラメータcRiceParamは、nとして固定され、ここで、nは正の数(例えば、2、3、4、5、6、7、または8)である。固定値は、異なる条件において異なる場合がある。VVC草案に基づく対応する復号プロセスの一例が以下に示されており、変更箇所は太字の斜体フォントで示され、削除された内容は斜体フォントで示されている。VVC草案に対する変更箇所は、表25に太字の斜体フォントで示されている。
Figure 2024506156000038
別の例では、新しいフラグ、例えばextended_precision_processing_flagが1に等しいとき、構文要素abs_remainder/dec_abs_levelを符号化する際のライスパラメータに対して1つの固定値のみを使用することが提案される。VVC草案に基づく対応する復号プロセスが以下に示されており、変更箇所は太字の斜体フォントで示され、削除された内容は斜体フォントで示されている。VVC草案に対する変更箇所は、表26に太字の斜体フォントで示されている。
Figure 2024506156000039
さらに別の例では、BitDepthが所定のしきい値(例えば、10、11、12、13、14、15、または16)以上であるとき、ライスパラメータcRiceParamは、nとして固定され、nは正の数、例えば4、5、6、7、または8である。固定値は、異なる条件において異なる場合がある。VVC草案に基づく対応する復号プロセスの一例が以下に示されており、THは、所定のしきい値(例えば、10、11、12、13、14、15、または16)である。VVC草案に対する変更箇所は、表27に太字の斜体フォントで示されており、変更箇所は太字の斜体で、削除された内容は斜体で示されている。
Figure 2024506156000040
さらに別の例では、BitDepthが所定のしきい値(例えば、10、11、12、13、14、15、または16)より大きいとき、構文要素abs_remainder/dec_abs_levelを符号化する際のライスパラメータに対して1つの固定値のみを使用することが提案される。VVC草案に基づく対応する復号プロセスが以下に示されており、THは所定のしきい値(例えば、10、11、12、13、14、15、または16)であり、変更箇所は太字の斜体フォントで示され、削除された内容は斜体フォントで示されている。VVC草案に対する変更箇所は、表28に太字の斜体フォントで示されている。
Figure 2024506156000041
残差符号化におけるライスパラメータ導出
本開示の第26の態様によれば、残差符号化において特定の構文要素、例えばabs_remainder/dec_abs_levelを符号化するためにライスパラメータ導出の可変方法を使用することが提案され、現在のブロックの特定の符号化された情報、例えばTB/CBおよび/もしくはスライス/プロファイルに関連付けられた量子化パラメータもしくは符号化ビット深度に従って、かつ/または、TB/CB/スライス/ピクチャ/シーケンスレベルに関連付けられた新しいフラグ、例えばextended_precision_processing_flagに従って、選択結果が決定される。ライスパラメータを導出するために様々な方法が使用されてもよく、いくつかの例示的な方法が下記に列挙されている。
第1に、ライスパラメータを導出するためにカウンタを使用することが提案される。カウンタは、符号化された係数の値、および現在のブロックの特定の符号化された情報、例えば成分IDに従って決定される。具体的な一例は、riceParameter=counter/aであり、ここで、aは正の数、例えば4であり、これは(輝度/彩度によって分解された)2つのカウンタを維持する。これらのカウンタは、各スライスの開始時に0にリセットされる。符号化されると、カウンタは、これがサブTU内で符号化された最初の係数である場合、下記のように更新される。
if(coeffValue>=(3<<rice))counter++
if(((coeffValue<<1)<(1<<riceParameter))&&(counter>0))counter--
第2に、VVCにおけるライスパラメータの導出においてシフト演算を追加することが提案される。シフトは、符号化された係数の値に従って決定される。VVC草案に基づく対応する復号プロセスの一例が以下に示されており、シフトは方法1のカウンタに従って決定され、変更箇所は太字の斜体フォントで示され、削除された内容は斜体フォントで示されている。VVC草案に対する変更箇所は、表29に太字の斜体フォントで示されている。
Figure 2024506156000042
第1に、VVCにおけるライスパラメータの導出においてシフト演算を追加することが提案される。シフトは、現在のブロックの特定の符号化された情報、例えばTB/CBおよび/またはスライス・プロファイル(例えば、14ビット・プロファイルまたは16ビット・プロファイル)に関連付けられた符号化ビット深度に従って決定される。VVC草案に基づく対応する復号プロセスの一例が以下に示されており、シフトは方法1のカウンタに従って決定され、変更箇所は太字の斜体フォントで示され、削除された内容は斜体フォントで示されている。VVC草案に対する変更箇所は、表30に太字の斜体フォントで示されている。
Figure 2024506156000043
変換スキップの残差符号化
本開示の第27の態様によれば、変換スキップ残差符号化において特定の構文要素、例えばabs_remainderを符号化するために2値符号ワードの可変セットを使用することが提案され、現在のブロックの特定の符号化された情報、例えばTB/CBおよび/もしくはスライス/プロファイルに関連付けられた量子化パラメータもしくは符号化ビット深度に従って、かつ/または、TB/CB/スライス/ピクチャ/シーケンスレベルに関連付けられた新しいフラグ、例えばextended_precision_processing_flagに従って、選択結果が決定される。2値符号ワードの可変セットを導出するために様々な方法が使用されてもよく、いくつかの例示的な方法が下記に列挙されている。
第1に、abs_remainderの符号ワードを決定するために、現在のVVCで使用されている手順と同じ手順が使用されるが、常に固定ライスパラメータ(例えば、2、3、4、5、6、7、または8)が選択される。固定値は、現在のブロックの特定の符号化された情報、例えば、TB/CBおよび/もしくはスライス/プロファイルに関連付けられた量子化パラメータ、フレーム・タイプ(例えば、I、P、もしくはB)、成分ID(例えば、輝度もしくは彩度)、色フォーマット(例えば、420、422、もしくは444)、もしくは符号化ビット深度に従って、かつ/または、TB/CB/スライス/ピクチャ/シーケンスレベルに関連付けられた構文要素、例えばrice_parameter_valueに従って、異なる条件において異なる場合がある。表7に示されているように、具体的な一例が例示されており、ここで、TH1からTH4は(TH1<TH2<TH3<TH4)を満たす所定のしきい値であり、K0からK4は所定のライスパラメータである。実際には同じ論理が異なる方法で実装され得ることは留意に値する。例えば、表7に示されるように現在のCU/シーケンスのBitDepth値から同じライスパラメータを導出するために、特定の方程式またはルックアップ・テーブルも使用されてもよい。
第2に、固定長2値化である。
第3に、切り捨てライス2値化である。
第4に、切り捨てバイナリ(TB)2値化プロセスである。
第5に、k次指数ゴロム2値化プロセス(EGk)である。
第6に、限定されたk次指数ゴロム2値化である。
VVC草案に基づく対応する復号プロセスの一例が以下に示されており、VVC草案に対する変更箇所は表31に太字の斜体フォントで示されており、削除された内容は斜体フォントで示されている。実際には同じ論理が異なる方法で実装され得ることは留意に値する。例えば、同じライスパラメータを導出するために、特定の方程式またはルックアップ・テーブルも使用されてもよい。
Figure 2024506156000044
別の例では、新しいフラグ、例えばextended_precision_processing_flagが1に等しいとき、abs_remainderの構文要素を符号化する際にライスパラメータに1つの固定値のみを使用することが提案される。VVC草案に基づく対応する復号プロセスが以下に示されており、変更箇所は太字の斜体フォントで示され、削除された内容は斜体フォントで示されている。VVC草案に対する変更箇所は、表32に太字の斜体フォントで示されている。
Figure 2024506156000045
さらに別の例では、新しいフラグ、例えばextended_precision_processing_flagが1に等しいとき、ライスパラメータcRiceParamはnに固定され、nは正の数(例えば2、3、4、5、6、7または8)である。固定値は、異なる条件において異なる場合がある。VVC草案に基づく対応する復号プロセスの一例が以下に示されており、変更箇所は太字の斜体フォントで示され、削除された内容は斜体フォントで示されている。VVC草案に対する変更箇所は、表33に太字の斜体フォントで示されている。
Figure 2024506156000046
さらに別の例では、BitDepthが所定のしきい値(例えば、10、11、12、13、14、15または16)以上であるとき、ライスパラメータcRiceParamはnに固定され、nは正の数、例えば、4、5、6、7、または8である。固定値は、異なる条件において異なる場合がある。VVC草案に基づく対応する復号プロセスの一例が以下に示されており、THは所定のしきい値(例えば、10、11、12、13、14、15、または16)であり、変更箇所は太字の斜体フォントで示され、削除された内容は斜体フォントで示されている。VVC草案に対する変更箇所は、表34に太字の斜体フォントで示されている。
Figure 2024506156000047
さらに別の例では、変換スキップブロックのためのライスパラメータの信号伝送が有効であるか無効であるかを示すために、1つの制御フラグがスライスヘッダ内で信号伝送される。制御フラグが有効として信号伝送されるとき、変換スキップスライスごとにそのスライスのライスパラメータを示すために1つの構文要素がさらに信号伝送される。制御フラグが無効として信号伝送されるとき(例えば、「0」に等しくなるように設定されるとき)、変換スキップスライスのライスパラメータを示すために下位レベルでそれ以上の構文要素は信号伝送されず、デフォルトのライスパラメータ(例えば、1)がすべての変換スキップスライスに対して使用される。VVC草案に基づく対応する復号プロセスの一例が以下に示されており、THは所定の値(例えば、0、1、2)であり、変更箇所は太字の斜体フォントで示され、削除された内容は斜体フォントで示されている。VVC草案に対する変更箇所は、表35に太字の斜体フォントで示されている。sh_ts_residual_coding_rice_indexは様々な方法で符号化されることが可能であり、かつ/または最大値を有し得ることは留意に値する。例えば、同じ構文要素を符号化/復号するために、nビットを使用する符号なし整数であるu(n)、または左ビットを最初に(左から右に)記述された、nビットを使用する固定パターン・ビット列であるf(n)も使用されてもよい。
スライスヘッダ構文
Figure 2024506156000048
sh_ts_residual_coding_rice_flagが1に等しいことは、現在のスライス内にsh_ts_residual_coding_rice_indexが存在する可能性があることを指定する。sh_ts_residual_coding_rice_flagが0に等しいことは、現在のスライス内にsh_ts_residual_coding_rice_indexが存在しないことを指定する。sh_ts_residual_coding_rice_flagが存在しないとき、sh_ts_residual_coding_rice_flagの値は0に等しいと推論される。sh_ts_residual_coding_rice_indexは、residual_ts_coding()構文構造に使用されるライスパラメータを指定する。
Figure 2024506156000049
さらに別の例では、変換スキップブロックのためのライスパラメータの信号伝送が有効であるか無効であるかを示すために、1つの制御フラグがシーケンスパラメータセット内(またはシーケンスパラメータセット範囲拡張構文内)で信号伝送される。制御フラグが有効として信号伝送されるとき、変換スキップスライスごとにそのスライスのライスパラメータを示すために1つの構文要素がさらに信号伝送される。制御フラグが無効として信号伝送されるとき(例えば、「0」に等しくなるように設定されるとき)、変換スキップスライスのライスパラメータを示すために下位レベルでそれ以上の構文要素は信号伝送されず、デフォルトのライスパラメータ(例えば、1)がすべての変換スキップスライスに対して使用される。VVC草案に基づく対応する復号プロセスの一例が以下に示されており、THは、所定の値(例えば、0、1、2)である。VVC草案に対する変更箇所は表37に太字の斜体で示されており、削除された内容は斜体で示されている。sh_ts_residual_coding_rice_idxは様々な方法で符号化されることが可能であり、かつ/または最大値を有し得ることは留意に値する。例えば、同じ構文要素を符号化/復号するために、nビットを使用する符号なし整数であるu(n)、または左ビットを最初に(左から右に)記述された、nビットを使用する固定パターン・ビット列であるf(n)も使用されてもよい。
シーケンスパラメータセットRBSP構文
Figure 2024506156000050
sps_ts_residual_coding_rice_present_in_sh_flagが1に等しいことは、SPSを参照するSH構文構造内にsh_ts_residual_coding_rice_idxが存在する可能性があることを指定する。sps_ts_residual_coding_rice_present_in_sh_flagが0に等しいことは、SPSを参照するSH構文構造内にsh_ts_residual_coding_rice_idxが存在しないことを指定する。sps_ts_residual_coding_rice_present_in_sh_flagが存在しないとき、sps_ts_residual_coding_rice_present_in_sh_flagの値は0に等しいと推論される。
スライスヘッダ構文
Figure 2024506156000051
sh_ts_residual_coding_rice_idxは、residual_ts_coding()構文構造に使用されるライスパラメータを指定する。
Figure 2024506156000052
さらに別の例では、変換スキップスライスごとにそのスライスのライスパラメータを示すために1つの構文要素が信号伝送される。VVC草案に基づく対応する復号プロセスの一例が以下に示されている。VVC草案に対する変更箇所は、表40に太字の斜体フォントで示されている。sh_ts_residual_coding_rice_idxは様々な方法で符号化されることが可能であり、かつ/または最大値を有し得ることは留意に値する。例えば、同じ構文要素を符号化/復号するために、nビットを使用する符号なし整数であるu(n)、または左ビットを最初に(左から右に)記述された、nビットを使用する固定パターン・ビット列であるf(n)も使用されてもよい。
スライスヘッダ構文
Figure 2024506156000053
sh_ts_residual_coding_rice_idxは、residual_ts_coding()構文構造に使用されるライスパラメータを指定する。sh_ts_residual_coding_rice_idxが存在しない場合、sh_ts_residual_coding_rice_idxの値は0に等しいと推論される。
Figure 2024506156000054
さらに別の例では、変換スキップブロックのためのライスパラメータの信号伝送が有効であるか無効であるかを示すために、1つの制御フラグがピクチャパラメータセット範囲拡張構文内で信号伝送される。制御フラグが有効として信号伝送されるとき、そのピクチャのライスパラメータを示すために1つの構文要素がさらに信号伝送される。制御フラグが無効として信号伝送されるとき(例えば、「0」に等しくなるように設定されるとき)、変換スキップスライスのライスパラメータを示すために下位レベルでそれ以上の構文要素は信号伝送されず、デフォルトのライスパラメータ(例えば、1)がすべての変換スキップスライスに対して使用される。VVC草案に基づく対応する復号プロセスの一例が以下に示されており、THは、所定の値(例えば、0、1、2)である。VVC草案に対する変更箇所は、表42に太字の斜体フォントで示されている。pps_ts_residual_coding_rice_idxは様々な方法で符号化されることが可能であり、かつ/または最大値を有し得ることは留意に値する。例えば、同じ構文要素を符号化/復号するために、nビットを使用する符号なし整数であるu(n)、または左ビットを最初に(左から右に)記述された、nビットを使用する固定パターン・ビット列であるf(n)も使用されてもよい。
ピクチャパラメータセット範囲拡張構文
Figure 2024506156000055
pps_ts_residual_coding_rice_flagが1に等しいことは、現在のピクチャ内にpps_ts_residual_coding_rice_indexが存在する可能性があることを指定する。pps_ts_residual_coding_rice_flagが0に等しいことは、現在のピクチャ内にpps_ts_residual_coding_rice_idxが存在しないことを指定する。pps_ts_residual_coding_rice_flagが存在しないとき、pps_ts_residual_coding_rice_flagの値は0に等しいと推論される。
pps_ts_residual_coding_rice_idxは、residual_ts_coding()構文構造に使用されるライスパラメータを指定する。
Figure 2024506156000056
さらに別の例では、構文要素abs_remainderの符号化のために可変ライスパラメータのみを使用することが提案される。適用されるライスパラメータの値は、現在のブロックの特定の符号化された情報、例えばブロックサイズ、量子化パラメータ、ビット深度、変換タイプなどに従って決定されてもよい。特定の一実施形態では、符号化ビット深度および1つのCUに適用される量子化パラメータに基づいてライスパラメータを調整することが提案される。VVC草案に基づく対応する復号プロセスが以下に示されており、VVC草案に対する変更箇所は表44に太字の斜体フォントで示されており、削除された内容は斜体フォントで示されている。実際には同じ論理が異なる方法で実装され得ることは留意に値する。例えば、同じライスパラメータを導出するために、特定の方程式またはルックアップ・テーブルも使用されてもよい。
Figure 2024506156000057
Figure 2024506156000058
Figure 2024506156000059
さらに別の例では、VVC草案に基づく対応する復号プロセスが以下に示されており、THは、所定のしきい値(例えば、33または34)である。VVC草案に対する変更箇所は、表45に太字の斜体フォントで示されており、削除された内容は斜体で示されている。実際には同じ論理が異なる方法で実装され得ることは留意に値する。例えば、同じライスパラメータを導出するために、特定の方程式またはルックアップ・テーブルも使用されてもよい。
Figure 2024506156000060
さらに別の例では、VVC草案に基づく対応する復号プロセスが以下に示されており、THおよびTHは所定のしきい値(例えば、TH=8、TH=33または34)である。VVC草案に対する変更箇所は、表46に太字の斜体で示されており、削除された内容は斜体で示されている。実際には同じ論理が異なる方法で実装され得ることは留意に値する。例えば、同じライスパラメータを導出するために、特定の方程式またはルックアップ・テーブルも使用されてもよい。
Figure 2024506156000061
さらに別の例では、新しいフラグ、例えばextended_precision_processing_flagが1に等しいとき、abs_remainderの構文要素の符号化に可変ライスパラメータのみを使用することが提案される。可変値は、現在のブロックの特定の符号化された情報、例えば、ブロックサイズ、量子化パラメータ、ビット深度、変換タイプなどに従って決定されてもよい。特定の一実施形態では、符号化ビット深度および1つのCUに適用される量子化パラメータに基づいてライスパラメータを調整することが提案される。VVC草案に基づく対応する復号プロセスが以下に示されている。VVC草案に対する変更箇所は、表47に太字の斜体フォントで示されている。実際には同じ論理が異なる方法で実装され得ることは留意に値する。例えば、同じライスパラメータを導出するために、特定の方程式またはルックアップ・テーブルも使用されてもよい。
Figure 2024506156000062
Figure 2024506156000063
さらに別の例では、VVC草案に基づく対応する復号プロセスが以下に示されており、THは、所定のしきい値(例えば、18、19)である。VVC草案に対する変更箇所は、表48に太字の斜体フォントで示されている。実際には同じ論理が異なる方法で実装され得ることは留意に値する。例えば、同じライスパラメータを導出するために、特定の方程式またはルックアップ・テーブルも使用されてもよい。
Figure 2024506156000064
さらに別の例では、VVC草案に基づく対応する復号プロセスが以下に示されており、THおよびTHは所定のしきい値(例えば、TH=8、TH=18または19)である。VVC草案に対する変更箇所は、表49に太字の斜体フォントで示されている。実際には同じ論理が異なる方法で実装され得ることは留意に値する。例えば、同じライスパラメータを導出するために、特定の方程式またはルックアップ・テーブルも使用されてもよい。
Figure 2024506156000065
図16は、ビデオ符号化のための方法を示している。方法は、例えばエンコーダに適用されてもよい。ステップ1610において、エンコーダは、ビデオ入力を受信してもよい。ビデオ入力は、例えばライブ・ストリームであってもよい。ステップ1612において、エンコーダは、ビデオ入力に基づいて量子化パラメータを取得してもよい。量子化パラメータは、例えば、エンコーダ内の量子化ユニットによって算出されてもよい。ステップ1614において、エンコーダは、少なくとも1つの所定のしきい値、符号化ビット深度、および量子化パラメータに基づいてライスパラメータを導出してもよい。ライスパラメータは、例えば、abs_remainderおよびdec_abs_levelの構文を信号伝送するために使用される。ステップ1616において、エンコーダは、ライスパラメータに基づいてビデオビットストリームをエントロピ符号化してもよい。ビデオビットストリームは、例えば、圧縮されたビデオビットストリームを生成するためにエントロピ符号化されてもよい。
さらに別の例では、BitDepthが10より大きいとき、abs_remainderの構文要素を符号化する際にライスパラメータに固定値(例えば、2、3、4、5、6、7、または8)のみを使用することが提案される。固定値は、現在のブロックの特定の符号化された情報、例えば、量子化パラメータに従って、異なる条件において異なる場合がある。VVC草案に基づく対応する復号プロセスが以下に示されており、THは、所定のしきい値(例えば、18、19)である。VVC草案に対する変更箇所は、表50に太字の斜体フォントで示されている。実際には同じ論理が異なる方法で実装され得ることは留意に値する。例えば、同じライスパラメータを導出するために、特定の方程式またはルックアップ・テーブルも使用されてもよい。
Figure 2024506156000066
さらに別の例では、VVC草案に基づく対応する復号プロセスが以下に示されており、THおよびTHは、所定のしきい値(例えば、TH=8、TH=18または19)である。VVC草案に対する変更箇所は、表51に太字の斜体フォントで示されている。実際には同じ論理が異なる方法で実装され得ることは留意に値する。例えば、同じライスパラメータを導出するために、特定の方程式またはルックアップ・テーブルも使用されてもよい。
Figure 2024506156000067
さらに別の例では、VVC草案に基づく対応する復号プロセスが以下に示されており、THは、所定のしきい値(例えば、33または34)である。VVC草案に対する変更箇所は、表52に太字の斜体フォントで示されている。実際には同じ論理が異なる方法で実装され得ることは留意に値する。例えば、同じライスパラメータを導出するために、特定の方程式またはルックアップ・テーブルも使用されてもよい。
Figure 2024506156000068
さらに別の例では、VVC草案に基づく対応する復号プロセスが以下に示されており、THおよびTHは、所定のしきい値(例えば、TH=8、TH=33または34)である。VVC草案に対する変更箇所は、表53に太字の斜体フォントで示されている。実際には同じ論理が異なる方法で実装され得ることは留意に値する。例えば、同じライスパラメータを導出するために、特定の方程式またはルックアップ・テーブルも使用されてもよい。
Figure 2024506156000069
上記の例示では、特定のライスパラメータを算出するために使用される方程式は、提案された理念を例示するための例としてのみ使用されていることは言及に値する。現代のビデオ符号化技法の当業者にとって、他のマッピング関数(または同等のマッピング方程式)は、提案された理念(すなわち、符号化ビットおよび適用された量子化パラメータに基づいて変換スキップモードのライスパラメータを決定すること)に対して既に適用可能である。一方、現在のVVC設計では、適用される量子化パラメータの値が符号化ブロック・グループ・レベルで変化することを許容されることも言及されるべきである。したがって、提案されたライスパラメータ調整方式は、符号化ブロック・グループ・レベルでの変換スキップモードのライスパラメータの柔軟な適応を提供することができる。
通常の残差符号化および変換スキップ残差符号化の信号伝送情報
本開示の第28の態様によれば、変換スキップ残差符号化において特定の構文要素、例えばabs_remainderを符号化するための2値符号ワードのライスパラメータ、通常の残差符号化においてabs_remainder/dec_abs_levelに使用されるライスパラメータの導出のためのシフトパラメータおよびオフセットパラメータを信号伝送すること、ならびに、現在のブロックの特定の符号化された情報、例えばTB/CBおよび/もしくはスライス/プロファイルに関連付けられた量子化パラメータもしくは符号化ビット深度に従って、かつ/または、TB/CB/スライス/ピクチャ/シーケンスレベルに関連付けられた新しいフラグ、例えばsps_residual_coding_info_present_in_sh_flagに従って、信号伝送するかどうかを判定することが提案される。
一例では、変換スキップブロックのためのライスパラメータの信号伝送、ならびに変換ブロックにおけるライスパラメータの導出のためのシフトパラメータおよび/またはオフセットパラメータの信号伝送が有効であるか無効であるかを示すために、1つの制御フラグがスライスヘッダ内で信号伝送される。制御フラグが有効として信号伝送されるとき、変換スキップスライスごとにそのスライスのライスパラメータを示すために1つの構文要素がさらに信号伝送され、変換スライスごとにそのスライスのライスパラメータの導出のためのシフトパラメータおよび/またはオフセットパラメータを示すために、2つの構文要素がさらに信号伝送される。制御フラグが無効として信号伝送されるとき(例えば、「0」に等しくなるように設定されるとき)、変換スキップスライスのライスパラメータを示すために下位レベルでそれ以上の構文要素は信号伝送されず、デフォルトのライスパラメータ(例えば、1)がすべての変換スキップスライスに対して使用され、変換スライスのライスパラメータ導出のためのシフトパラメータおよびオフセットパラメータを示すために下位レベルでそれ以上の構文要素は信号伝送されず、デフォルトのシフトパラメータおよび/またはオフセットパラメータ(例えば、0)がすべての変換スライスに対して使用される。VVC草案に基づく対応する復号プロセスの一例が以下に示されており、THは、所定の値(例えば、0、1、2)である。VVC草案に対する変更箇所は、表54に太字の斜体フォントで示されている。sh_residual_coding_rice_shift、sh_residual_coding_rice_offset、およびsh_ts_residual_coding_rice_indexは様々な方法で符号化されることが可能であり、かつ/または最大値を有し得ることは留意に値する。例えば、同じ構文要素を符号化/復号するために、nビットを使用する符号なし整数であるu(n)、または左ビットを最初に(左から右に)記述された、nビットを使用する固定パターン・ビット列であるf(n)も使用されてもよい。
図17は、ビデオ復号のための方法を示している。方法は、例えば、エンコーダに適用されてもよい。ステップ1710において、エンコーダは、ビデオ入力を受信してもよい。ステップ1712において、エンコーダは、符号化構文要素のための2値符号ワードのライスパラメータを信号伝送してもよい。符号化構文要素は、変換スキップ残差符号化におけるabs_remainderを含んでもよい。ステップ1714において、エンコーダは、ライスパラメータおよびビデオ入力に基づいてビデオビットストリームをエントロピ符号化してもよい。
スライスヘッダ構文
Figure 2024506156000070
sh_residual_coding_rice_flagが1に等しいことは、現在のスライス内にsh_residual_coding_rice_shift、sh_residual_coding_rice_offset、およびsh_residual_coding_rice_indexが存在する可能性があることを指定する。sh_residual_coding_rice_flagが0に等しいことは、現在のスライス内にsh_residual_coding_rice_shift、sh_residual_coding_rice_offset、およびsh_residual_coding_rice_indexが存在しないことを指定する。
sh_residual_coding_rice_shiftは、abs_remainder[]およびdec_abs_level[]のライスパラメータ導出プロセスに使用されるシフトパラメータを指定する。sh_residual_coding_rice_shiftが存在しないとき、sh_residual_coding_rice_shiftの値は0に等しいと推論される。
sh_residual_coding_rice_offsetは、abs_remainder[]およびdec_abs_level[]のライスパラメータ導出プロセスに使用されるオフセットパラメータを指定する。sh_residual_coding_rice_offsetが存在しないとき、sh_residual_coding_rice_offsetの値は0に等しいと推論される。
sh_ts_residual_coding_rice_indexは、residual_ts_coding()構文構造に使用されるライスパラメータを指定する。sh_ts_residual_coding_rice_indexが存在しないとき、sh_ts_residual_coding_rice_indexの値は0に等しいと推論される。
Figure 2024506156000071
Figure 2024506156000072
別の例では、変換スキップブロックのためのライスパラメータの信号伝送、ならびに変換ブロックにおけるライスパラメータの導出のためのシフトパラメータおよび/またはオフセットパラメータの信号伝送が有効であるか無効であるかを示すために、1つの制御フラグがシーケンスパラメータセット内で(またはシーケンスパラメータセット範囲拡張構文内で)信号伝送される。制御フラグが有効として信号伝送されるとき、変換スキップスライスごとにそのスライスのライスパラメータを示すために1つの構文要素がさらに信号伝送され、変換スライスごとにそのスライスのライスパラメータの導出のためのシフトパラメータおよび/またはオフセットパラメータを示すために、2つの構文要素がさらに信号伝送される。制御フラグが無効として信号伝送されるとき(例えば、「0」に等しくなるように設定されるとき)、変換スキップスライスのライスパラメータを示すために下位レベルでそれ以上の構文要素は信号伝送されず、デフォルトのライスパラメータ(例えば、1)がすべての変換スキップスライスに対して使用され、変換スライスのライスパラメータ導出のためのシフトパラメータおよび/またはオフセットパラメータを示すために下位レベルでそれ以上の構文要素は信号伝送されず、デフォルトのシフトパラメータおよび/またはオフセットパラメータ(例えば、0)がすべての変換スライスに対して使用される。VVC草案に基づく対応する復号プロセスの一例が以下に示されており、THは、所定の値(例えば、0、1、2)である。VVC草案に対する変更箇所は、表57に太字の斜体フォントで示されている。sh_residual_coding_rice_shift、sh_residual_coding_rice_offset、およびsh_ts_residual_coding_rice_idxは様々な方法で符号化されることが可能であり、かつ/または最大値を有し得ることは留意に値する。例えば、同じ構文要素を符号化/復号するために、nビットを使用する符号なし整数であるu(n)、または左ビットを最初に(左から右に)記述された、nビットを使用する固定パターン・ビット列であるf(n)も使用されてもよい。
シーケンスパラメータセットRBSP構文
Figure 2024506156000073
sps_residual_coding_info_present_in_sh_flagが1に等しいことは、SPSを参照するSH構文構造内にsh_residual_coding_rice_shift、sh_residual_coding_rice_offset、およびsh_ts_residual_coding_rice_idxが存在する可能性があることを指定する。sps_residual_coding_info_present_in_sh_flagが0に等しいことは、SPSを参照するSH構文構造内にsh_residual_coding_rice_shift、sh_residual_coding_rice_offset、およびsh_ts_residual_coding_rice_idxが存在しないことを指定する。sps_residual_coding_info_present_in_sh_flagが存在しないとき、sps_residual_coding_info_present_in_sh_flagの値は0に等しいと推論される。
スライスヘッダ構文
Figure 2024506156000074
sh_residual_coding_rice_shiftは、abs_remainder[]およびdec_abs_level[]のライスパラメータ導出プロセスに使用されるシフトパラメータを指定する。sh_residual_coding_rice_shiftが存在しないとき、sh_residual_coding_rice_shiftの値は0に等しいと推論される。
sh_residual_coding_rice_offsetは、abs_remainder[]およびdec_abs_level[]のライスパラメータ導出プロセスに使用されるオフセットパラメータを指定する。sh_residual_coding_rice_offsetが存在しないとき、sh_residual_coding_rice_offsetの値は0に等しいと推論される。
sh_ts_residual_coding_rice_idxは、residual_ts_coding()構文構造に使用されるライスパラメータを指定する。sh_ts_residual_coding_rice_indexが存在しないとき、sh_ts_residual_coding_rice_indexの値は0に等しいと推論される。
Figure 2024506156000075
Figure 2024506156000076
さらに別の例では、変換スキップスライスごとにそのスライスのライスパラメータを示すために1つの構文要素が信号伝送され、変換スライスごとにそのスライスのライスパラメータの導出のためのシフトパラメータおよび/またはオフセットパラメータを示すために2つの構文要素が信号伝送される。VVC草案に基づく対応する復号プロセスの一例が以下に示されている。VVC草案に対する変更箇所は、表61に太字の斜体フォントで示されている。sh_residual_coding_rice_shift、sh_residual_coding_rice_offset、およびsh_ts_residual_coding_rice_idxは様々な方法で符号化されることが可能であり、かつ/または最大値を有し得ることは留意に値する。例えば、同じ構文要素を符号化/復号するために、nビットを使用する符号なし整数であるu(n)、または左ビットを最初に(左から右に)記述された、nビットを使用する固定パターン・ビット列であるf(n)も使用されてもよい。
スライスヘッダ構文
Figure 2024506156000077
sh_ts_residual_coding_rice_idxは、residual_ts_coding()構文構造に使用されるライスパラメータを指定する。sh_ts_residual_coding_rice_idxが存在しないとき、sh_ts_residual_coding_rice_idxの値は0に等しいと推論される。
sh_residual_coding_rice_offsetは、abs_remainder[]およびdec_abs_level[]のライスパラメータ導出プロセスに使用されるオフセットパラメータを指定する。sh_residual_coding_rice_offsetが存在しないとき、sh_residual_coding_rice_offsetの値は0に等しいと推論される。
sh_ts_residual_coding_rice_idxは、residual_ts_coding()構文構造に使用されるライスパラメータを指定する。sh_ts_residual_coding_rice_indexが存在しないとき、sh_ts_residual_coding_rice_indexの値は0に等しいと推論される。
Figure 2024506156000078
Figure 2024506156000079
さらに別の例では、変換スキップブロックのためのライスパラメータの信号伝送、ならびに変換ブロックにおけるライスパラメータの導出のためのシフトパラメータおよび/またはオフセットパラメータの信号伝送が有効であるか無効であるかを示すために、1つの制御フラグがピクチャパラメータセット範囲拡張構文内で信号伝送される。制御フラグが有効として信号伝送されるとき、そのピクチャの変換スキップ残差符号化のためのライスパラメータを示すために、1つの構文要素がさらに信号伝送され、通常の残差符号化ごとにそのピクチャのライスパラメータの導出のためのシフトパラメータおよび/またはオフセットパラメータを示すために、2つの構文要素がさらに信号伝送される。制御フラグが無効として信号伝送されるとき(例えば、「0」に等しくなるように設定されるとき)、変換スキップ残差符号化のライスパラメータを示すために下位レベルでそれ以上の構文要素は信号伝送されず、デフォルトのライスパラメータ(例えば、1)がすべての変換スキップ残差符号化に対して使用され、通常の残差符号化のライスパラメータ導出のためのシフトパラメータおよび/またはオフセットパラメータを示すために下位レベルでそれ以上の構文要素は信号伝送されず、デフォルトのシフトパラメータおよび/またはオフセットパラメータ(例えば、0)がすべての通常の残差符号化に対して使用される。VVC草案に基づく対応する復号プロセスの一例が以下に示されており、THは、所定の値(例えば、0、1、2)である。VVC草案に対する変更箇所は、表64に太字の斜体フォントで示されている。pps_residual_coding_rice_shift、pps_residual_coding_rice_offset、およびpps_ts_residual_coding_rice_idxは様々な方法で符号化されることが可能であり、かつ/または最大値を有し得ることは留意に値する。例えば、同じ構文要素を符号化/復号するために、nビットを使用する符号なし整数であるu(n)、または左ビットを最初に(左から右に)記述された、nビットを使用する固定パターン・ビット列であるf(n)も使用されてもよい。
ピクチャパラメータセット範囲拡張構文
Figure 2024506156000080
pps_residual_coding_info_flagが1に等しいことは、現在のピクチャ内にpps_residual_coding_rice_shift、pps_residual_coding_rice_offset、およびpps_ts_residual_coding_rice_indexが存在する可能性があることを指定する。pps_residual_coding_info_flagが0に等しいことは、現在のピクチャ内にpps_residual_coding_rice_shift、pps_residual_coding_rice_offset、およびpps_ts_residual_coding_rice_idxが存在しないことを指定する。pps_residual_coding_info_flagが存在しないとき、pps_residual_coding_info_flagの値は0に等しいと推論される。
pps_residual_coding_rice_shiftは、abs_remainder[]およびdec_abs_level[]のライスパラメータ導出プロセスに使用されるシフトパラメータを指定する。pps_residual_coding_rice_shiftが存在しないとき、pps_residual_coding_rice_shiftの値は0に等しいと推論される。
pps_residual_coding_rice_offsetは、abs_remainder[]およびdec_abs_level[]のライスパラメータ導出プロセスに使用されるオフセットパラメータを指定する。pps_residual_coding_rice_offsetが存在しないとき、pps_residual_coding_rice_offsetの値は0に等しいと推論される。
pps_ts_residual_coding_rice_idxは、residual_ts_coding()構文構造に使用されるライスパラメータを指定する。pps_ts_residual_coding_rice_indexが存在しないとき、pps_ts_residual_coding_rice_indexの値は0に等しいと推論される。
Figure 2024506156000081
Figure 2024506156000082
本開示の第29の態様によれば、変換スキップ残差符号化において特定の構文要素、例えばabs_remainderを符号化するための異なるライスパラメータ、通常の残差符号化においてabs_remainder/dec_abs_levelに使用されるライスパラメータの導出のためのシフトパラメータおよびオフセットパラメータを使用すること、ならびに、現在のブロックの特定の符号化された情報、例えばTB/CBおよび/もしくはスライス/プロファイルに関連付けられた量子化パラメータもしくは符号化ビット深度に従って、かつ/または、TB/CB/スライス/ピクチャ/シーケンスレベルに関連付けられた新しいフラグ、例えばsps_residual_coding_info_present_in_sh_flagに従って、どれを使用すべきかを判定することが提案される。
一例では、変換スキップブロックのライスパラメータの導出プロセスおよび変換ブロックにおけるライスパラメータのシフトパラメータおよび/またはオフセットパラメータの導出プロセスが有効であるか無効であるかを示すために、1つの制御フラグがスライスヘッダ内で信号伝送される。制御フラグが有効として信号伝送されるとき、ライスパラメータは、現在のブロックの特定の符号化された情報、例えば量子化パラメータおよびビット深度に従って、異なる条件において異なる場合がある。また、通常の残差符号化におけるライスパラメータの導出のためのシフトパラメータおよび/またはオフセットパラメータは、現在のブロックの特定の符号化された情報、例えば量子化パラメータおよびビット深度に従って、異なる条件において異なる場合がある。制御フラグが無効として信号伝送されるとき(例えば、「0」に等しくなるように設定されるとき)、デフォルトのライスパラメータ(例えば、1)がすべての変換スキップスライスに対して使用され、デフォルトのシフトパラメータおよび/またはオフセットパラメータ(例えば、0)がすべての変換スライスに対して使用される。VVC草案に基づく対応する復号プロセスの一例が以下に示されており、THおよびTHは、所定のしきい値(例えば、TH=8、TH=18または19)である。VVC草案に対する変更箇所は、表67に太字の斜体フォントで示されている。実際には同じ論理が異なる方法で実装され得ることは留意に値する。例えば、同じライスパラメータを導出するために、特定の方程式またはルックアップ・テーブルも使用されてもよい。
スライスヘッダ構文
Figure 2024506156000083
sh_residual_coding_rice_flagが1に等しいことは、ビット深度に依存するライスパラメータ導出プロセスが現在のスライスで使用されることを指定する。sh_residual_coding_rice_flagが0に等しいことは、ビット深度に依存するライスパラメータ導出プロセスが現在のスライスで使用されないことを指定する。
Figure 2024506156000084
Figure 2024506156000085
さらに別の例では、VVC草案に基づく対応する復号プロセスが以下に示されており、THは、所定のしきい値(例えば、18、19)である。VVC草案に対する変更箇所は、表70に太字の斜体フォントで示されている。実際には同じ論理が異なる方法で実装され得ることは留意に値する。例えば、同じライスパラメータを導出するために、特定の方程式またはルックアップ・テーブルも使用されてもよい。
Figure 2024506156000086
Figure 2024506156000087
本開示の別の態様によれば、一般制約情報内の他のものと同じ一般制約制御を提供するために上記のこれらの符号化ツールの値がフラグを立てるという制約を追加することが提案される。
例えば、sps_ts_residual_coding_rice_present_in_sh_flagが1に等しいことは、SPSを参照するSH構文構造内にsh_ts_residual_coding_rice_idxが存在する可能性があることを指定する。sps_ts_residual_coding_rice_present_in_sh_flagが0に等しい場合は、SPSを参照するSH構文構造内にsh_ts_residual_coding_rice_idxが存在しないことを指定する。本開示によれば、他のフラグと同じ一般制約制御を提供するために、一般制約情報構文内に構文要素gci_no_ts_residual_coding_rice_constraint_flagを追加することが提案される。VVC草案の復号プロセスの一例が以下に示されている。VVC草案に対する変更点は強調表示されている。追加された部分は斜体で強調表示されている。
Figure 2024506156000088
Figure 2024506156000089
別の例では、pps_ts_residual_coding_rice_flagが1に等しいことは、現在のピクチャ内にpps_ts_residual_coding_rice_indexが存在する可能性があることを指定する。pps_ts_residual_coding_rice_flagが0に等しいことは、現在のピクチャ内にpps_ts_residual_coding_rice_idxが存在しないことを指定する。本開示によれば、他のフラグと同じ一般制約制御を提供するために、一般制約情報構文内に構文要素gci_no_ts_residual_coding_rice_constraint_flagを追加することが提案される。VVC草案の復号プロセスの一例が以下に示されている。VVC草案に対する変更点は強調表示されている。追加された部分は斜体で強調表示されている。
Figure 2024506156000090
Figure 2024506156000091
さらに別の例では、sps_rice_adaptation_enabled_flagが1に等しいことは、abs_remaining[]およびdec_abs_levelの2値化のためのライスパラメータが式によって導出され得ることを示す。
式は、RiceParam=RiceParam+shiftVal、およびshiftVal=(localSumAbs<Tx[0])?Rx[0]:((localSumAbs<Tx[1])?Rx[1]:((localSumAbs<Tx[2])?Rx[2]:((localSumAbs<Tx[3])?Rx[3]:Rx[4])))を含んでもよく、ここで、リストTx[]およびRx[]は、Tx[]={32,128,512,2048}>>(1523)Rx[]={0,2,4,6,8}のように指定される。
本開示によれば、他のフラグと同じ一般制約制御を提供するために、一般制約情報構文内に構文要素gci_no_rice_adaptation_constraint_flagを追加することが提案される。VVC草案の復号プロセスの一例が以下に示されている。VVC草案に対する変更点は強調表示されている。追加された部分は斜体で強調表示されている。
Figure 2024506156000092
Figure 2024506156000093
提案されたライスパラメータ適応方式は、変換スキップ残差符号化(TSRC:transform skip residual coding)にのみ使用されるので、提案された方法は、TSRCが有効であるときに効果をもたらすことができる。これに対応して、本開示の1つまたは複数の実施形態では、変換スキップモードが一般制約情報レベルから無効であるとき、例えば、gci_no_transform_skip_constraint_flagの値が1に設定されているとき、gci_no_rice_adaptation_constraint_flagの値が1であるよう要求する1つのビットストリーム制約を追加することが提案される。
さらに別の例では、sps_range_extension_flagが1に等しいことは、SPS RBSP構文構造内にsps_range_extension()構文構造が存在することを指定する。sps_range_extension_flagが0に等しいことは、この構文構造が存在しないことを指定する。本開示によれば、他のフラグと同じ一般制約制御を提供するために、一般制約情報構文内に構文要素gci_no_range_extension_constraint_flagを追加することが提案される。VVC草案の復号プロセスの一例が以下に示されている。VVC草案に対する変更点は強調表示されている。追加された部分は斜体で強調表示されている。
Figure 2024506156000094
Figure 2024506156000095
図19は、本開示の一例に係るビデオ符号化のための方法を示している。方法は、例えば、デコーダに適用されてもよい。ステップ1902において、デコーダは、シーケンスパラメータセット(SPS)範囲拡張フラグの値に基づいてスライスヘッド(SH)の未加工バイトシーケンスペイロード(RBSP)構文構造内に構文構造sps_range_extensionが存在するかどうかを示すSPS範囲拡張フラグを受信してもよい。
ステップ1904において、デコーダは、SPS範囲拡張フラグの値が1に等しいとの判定に応答して、SH RBSP構文構造内にsps_range_extensionが存在すると判定してもよい。
ステップ1906において、デコーダは、範囲拡張フラグの値が0に等しいとの判定に応答して、SH RBSP構文構造内にsps_range_extensionが存在しないと判定してもよい。
sps_cabac_bypass_alignment_enabled_flagは、構文要素sb_coded_flag[][]、abs_remainder[]、dec_abs_level[n]、およびcoeff_sign_flag[]のバイパス復号の前にivlCurrRangeの値がアライメントされ得ることを指定する。sps_cabac_bypass_alignment_enabled_flagが0に等しいことは、バイパス復号の前にivlCurrRangeの値がアライメントされないことを指定する。本開示によれば、他のフラグと同じ一般制約制御を提供するために、一般制約情報構文内に構文要素gci_no_cabac_bypass_alignment_constraint_flagを追加することが提案される。VVC草案の復号プロセスの一例が以下に示されている。VVC草案に対する変更点は強調表示されている。追加された部分は斜体で強調表示されている。
Figure 2024506156000096
Figure 2024506156000097
図20は、本開示の一例に係るビデオ符号化のための方法を示している。方法は、例えば、デコーダに適用されてもよい。ステップ2002において、デコーダは、シーケンスパラメータセット(SPS)アライメント有効の値に基づいて構文要素sb_coded_flag、abs_remainder、dec_abs_level、およびcoeff_sign_flagnのバイパス復号の前にインデックスivlCurrRangeがアライメントされるかどうかを示すSPSアライメント有効フラグを受信してもよい。
ステップ2004において、デコーダは、SPSアライメント有効フラグの値が1に等しいとの判定に応答して、バイパス復号の前にivlCurrRangeがアライメントされると判定してもよい。
ステップ2006において、デコーダは、SPSアライメント有効フラグの値が0に等しいとの判定に応答して、バイパス復号の前にivlCurrRangeがアライメントされないと判定してもよい。
さらに別の例では、extended_precision_processing_flagが1に等しいことは、変換係数および変換処理のために拡張ダイナミックレンジが使用され得ることを指定する。extended_precision_processing_flagが0に等しいことは、拡張ダイナミックレンジが使用されないことを指定する。本開示によれば、他のフラグと同じ一般制約制御を提供するために、一般制約情報構文内に構文要素gci_no_extended_precision_processing_constraint_flagを追加することが提案される。VVC草案の復号プロセスの一例が以下に示されている。VVC草案に対する変更点は強調表示されている。追加された部分は斜体で強調表示されている。
Figure 2024506156000098
Figure 2024506156000099
図21は、本開示の一例に係るビデオ符号化のための方法を示している。方法は、例えば、デコーダに適用されてもよい。ステップ2102において、デコーダは、拡張精度処理フラグの値に基づいて変換係数についてまた変換処理中に拡張ダイナミックレンジが採用されるかどうかを示す拡張精度処理フラグを受信することを含んでもよい。
ステップ2104において、デコーダは、拡張精度処理フラグの値が1に等しいとの判定に応答して、変換係数についてまた変換処理中に拡張ダイナミックレンジが採用されると判定してもよい。
ステップ2106において、デコーダは、拡張精度処理フラグの値が0に等しいとの判定に応答して、変換係数についてまたは変換処理中に拡張ダイナミックレンジが採用されないと判定してもよい。
さらに別の例では、persistant_rice_adaptation_enabled_flagが1に等しいことは、各サブブロックの開始時にabs_remaining[]およびdec_abs_levelの2値化のためのライスパラメータ導出が前のサブブロックから蓄積されたモード依存統計を使用して初期化され得ることを指定する。persistant_rice_adaptation_enabled_flagが0に等しいことは、ライスパラメータ導出において前のサブブロック状態が使用されないことを指定する。本開示によれば、他のフラグと同じ一般制約制御を提供するために、一般制約情報構文内に構文要素gci_no_persistent_rice_adaptation_constraint_flagを追加することが提案される。VVC草案の復号プロセスの一例が以下に示されている。VVC草案に対する変更点は強調表示されている。追加された部分は斜体で強調表示されている。
Figure 2024506156000100
Figure 2024506156000101
図22は、本開示の一例に係るビデオ符号化のための方法を示している。方法は、例えば、デコーダに適用されてもよい。ステップ2202において、デコーダは、永続的ライス適応有効フラグの値に基づいて、前のサブブロックから蓄積されたモード依存統計を採用している各サブブロックの開始時にabs_remainingおよびdec_abs_levelの2値化のためのライスパラメータ導出が初期化されるかどうかを示す、永続的ライス適応有効フラグを受信してもよい。
ステップ2204において、デコーダは、永続的ライス適応有効フラグの値が1に等しいとの判定に応答して、前のサブブロックから蓄積されたモード依存統計を採用している各サブブロックの開始時に2値化のためのライスパラメータ導出が初期化されると判定してもよい。
ステップ2206において、デコーダは、永続的ライス適応有効フラグの値が0に等しいとの判定に応答して、ライスパラメータ導出において前のサブブロック状態が採用されないと判定してもよい。
上記の方法は、特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)、デジタル信号処理デバイス(DSPD)、プログラマブル・ロジック・デバイス(PLD)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、コントローラ、マイクロコントローラ、マイクロプロセッサ、または他の電子構成要素を含む1つまたは複数の1つまたは複数の回路を含む装置を使用して実施されてもよい。装置は、上記で説明された方法を実行するために、他のハードウェア構成要素またはソフトウェア構成要素と組み合わせて回路を使用してもよい。上記で開示された各モジュール、サブモジュール、ユニット、またはサブユニットは、1つまたは複数の回路を使用して少なくとも部分的に実装されてもよい。
図18は、ユーザインターフェース1860と結合されたコンピューティング環境1810を示している。コンピューティング環境1810は、データ処理サーバの一部であってもよい。コンピューティング環境1810は、プロセッサ1820、メモリ1840、およびI/Oインターフェース1850を含む。
プロセッサ1820は、典型的には、表示、データ取得、データ通信、および画像処理に関連する動作など、コンピューティング環境1810の全体的な動作を制御する。プロセッサ1820は、上記の方法におけるステップのすべてまたはいくつかを実行せよとの命令を実行するための1つまたは複数のプロセッサを含んでもよい。さらに、プロセッサ1820は、プロセッサ1820と他の構成要素との間の対話を容易にする1つまたは複数のモジュールを含んでもよい。プロセッサは、中央処理ユニット(CPU)、マイクロプロセッサ、シングルチップマシン、GPUなどであってもよい。
メモリ1840は、コンピューティング環境1810の動作をサポートするために、様々なタイプのデータを記憶するように構成される。メモリ1840は、所定のソフトウェア1842を含んでもよい。そのようなデータの例は、コンピューティング環境1810上で動作する任意のアプリケーションまたは方法のための命令、ビデオデータセット、画像データなどを含む。メモリ1840は、スタティック・ランダム・アクセス・メモリ(SRAM)、電気的に消去可能なプログラマブル読み取り専用メモリ(EEPROM)、消去可能なプログラマブル読み取り専用メモリ(EPROM)、プログラマブル読み取り専用メモリ(PROM)、読み取り専用メモリ(ROM)、磁気メモリ、フラッシュ・メモリ、磁気ディスクまたは光ディスクなど、任意のタイプの揮発性もしくは不揮発性のメモリ・デバイスまたはそれらの組合せを使用することによって実装されてもよい。
I/Oインターフェース1850は、プロセッサ1820と、キーボード、クリック・ホイール、ボタン、および同様のものなどの周辺インターフェース・モジュールとの間のインターフェースを提供する。ボタンは、ホーム・ボタン、走査開始ボタン、および走査停止ボタンを含んでもよいが、これらに限定されない。I/Oインターフェース1850は、エンコーダおよびデコーダと結合されてもよい。
いくつかの実施形態では、上記の方法を実行するための、コンピューティング環境1810内のプロセッサ1820によって実行可能な、メモリ1840に含まれるような複数のプログラムを含む非一時的コンピュータ可読記憶媒体も提供される。例えば、非一時的コンピュータ可読記憶媒体は、ROM、RAM、CD-ROM、磁気テープ、フロッピ・ディスク、光データ記憶デバイス、または同様のものであってもよい。
非一時的コンピュータ可読記憶媒体は、その中に1つまたは複数のプロセッサを有するコンピューティング・デバイスによって実行される複数のプログラムを記憶しており、複数のプログラムは、1つまたは複数のプロセッサによって実行されたとき、コンピューティング・デバイスに動き予測のための上記の方法を実行させる。
いくつかの実施形態では、コンピューティング環境1810は、上記の方法を実行するための1つまたは複数の特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)、デジタル信号処理デバイス(DSPD)、プログラマブル・ロジック・デバイス(PLD)、フィールド・プログラマブル・アレイ(FPGA)、グラフィカル・プロセッシング・ユニット(GPU)、コントローラ、マイクロコントローラ、マイクロプロセッサ、または他の電子構成要素を用いて実装されてもよい。
図23は、本開示のいくつかの実装形態による、ビデオブロックを並行して符号化および復号するための例示的なシステム10を示すブロック図である。図23に示されているように、システム10は、宛先デバイス14によって後で復号されるべきビデオデータを生成および符号化するソースデバイス12を含む。ソースデバイス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からの送信は、ストリーミング送信、ダウンロード送信、または両方の組合せであってもよい。
図23に示されているように、ソースデバイス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、Part10、AVC、もしくはそのような規格の拡張版などの独自規格または業界規格に従って動作してもよい。本出願が特定のビデオ符号化/復号規格に限定されず、他のビデオ符号化/復号規格にも適用可能であることが理解されるべきである。一般に、ソースデバイス12のビデオエンコーダ20は、これらの現在の規格または将来の規格のいずれかに従ってビデオデータを符号化するように構成され得ることが企図される。同様に、一般に、宛先デバイス14のビデオデコーダ30が、これらの現在の規格または将来の規格のいずれかに従ってビデオデータを復号するように構成され得ることも企図される。
ビデオエンコーダ20およびビデオデコーダ30はそれぞれ、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、ディスクリート・ロジック、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せなど、様々な好適なエンコーダおよび/またはデコーダ回路のいずれかとして実装されてもよい。電子デバイスは、ソフトウェア内に部分的に実装される場合、ソフトウェアのための命令を好適な非一時的コンピュータ可読媒体に記憶し、1つまたは複数のプロセッサを使用してその命令をハードウェア内で実行して、本開示で開示されるビデオ符号化/復号動作を実行してもよい。ビデオエンコーダ20およびビデオデコーダ30のそれぞれは、1つもしくは複数のエンコーダまたはデコーダに含まれてもよく、そのどちらも、それぞれのデバイス内の複合エンコーダ/デコーダ(CODEC:combined encoder/decoder)の一部として統合されてもよい。
図24は、本出願において説明されるいくつかの実装形態による、例示的なビデオエンコーダ20を示すブロック図である。ビデオエンコーダ20は、ビデオフレーム内のビデオブロックのイントラ予測符号化およびインター予測符号化を実行してもよい。イントラ予測符号化は、空間予測に依存して、所与のビデオフレームもしくはピクチャ内のビデオデータの空間的冗長性を削減または除去する。インター予測符号化は、時間予測に依存して、ビデオシーケンスの隣接するビデオフレームもしくはピクチャ内のビデオデータの時間的冗長性を削減または除去する。「フレーム」という用語は、ビデオ符号化の分野では「画像」または「ピクチャ」という用語と同義語として使用され得ることが留意されるべきである。
図24に示されているように、ビデオエンコーダ20は、ビデオデータメモリ40、予測処理ユニット41、復号ピクチャバッファ(DPB:Decoded Picture Buffer)64、加算器50、変換処理ユニット52、量子化ユニット54、エントロピ符号化ユニット56を含む。予測処理ユニット41は、動き推定ユニット42、動き補償ユニット44、区分ユニット45、イントラ予測処理ユニット46、イントラブロックコピー(BC)ユニット48をさらに含む。いくつかの実装形態では、ビデオエンコーダ20は、ビデオブロック再構築のための、逆量子化ユニット58、逆変換処理ユニット60、および加算器62も含む。ブロック境界をフィルタリングして、再構築されたビデオからブロック状アーチファクトを除去するために、加算器62とDPB64との間にブロック解除フィルタなどのループ内フィルタ63が配置されてもよい。加算器62の出力をフィルタリングするために、ブロック解除フィルタに加えて、サンプル適応オフセット(SAO)・フィルタおよび/または適応ループ内フィルタ(ALF)などの別のループ内フィルタも使用されてもよい。いくつかの例では、ループ内フィルタが省略されてもよく、復号されたビデオブロックが加算器62によってDPB64に直接提供されてもよい。ビデオエンコーダ20は、固定のもしくはプログラム可能なハードウェア・ユニットの形式をとることができ、または図示された固定のもしくはプログラム可能なハードウェア・ユニットのうちの1つまたは複数に分割されてもよい。
ビデオデータメモリ40は、ビデオエンコーダ20の構成要素によって符号化されるべきビデオデータを記憶してもよい。ビデオデータメモリ40内のビデオデータは、例えば、図23に示されたビデオソース18から取得されてもよい。DPB64は、ビデオエンコーダ20によって(例えば、イントラ予測符号化モードまたはインター予測符号化モードで)ビデオデータを符号化する際に使用するための参照ビデオデータ(例えば、参照フレームまたは参照ピクチャ)を記憶するバッファである。ビデオデータメモリ40およびDPB64は、様々なメモリ・デバイスのいずれかによって形成されてもよい。様々な例において、ビデオデータメモリ40は、ビデオエンコーダ20の他の構成要素とともにオンチップであってもよく、またはそれらの構成要素に対するオフチップであってもよい。
図24に示されているように、予測処理ユニット41内の区分ユニット45は、ビデオデータを受信した後、ビデオデータをビデオブロックに区分化する。この区分化は、ビデオデータに関連付けられた四分木(QT:Quad-Tree)構造などの事前定義された分解構造に従って、ビデオフレームをスライス、タイル(例えば、ビデオブロックのセット)、または他のさらに大きい符号化ユニット(CU)に区分化することも含む。ビデオフレームは、サンプル値を有するサンプルの2次元配列もしくは2次元行列であるか、またはそれらとみなされてもよい。配列内のサンプルは、画素またはペルと呼ばれることもある。配列またはピクチャの水平方向および垂直方向(または軸)のサンプルの数が、ビデオフレームのサイズおよび/または解像度を定義する。ビデオフレームは、例えばQT区分化を使用することによって、複数のビデオブロックに分割されてもよい。ビデオブロックもまた、ビデオフレームよりも小さい次元ではあるが、サンプル値を有するサンプルの2次元配列もしくは2次元行列であるか、またはそれらとみなされてもよい。ビデオブロックの水平方向および垂直方向(または軸)のサンプルの数が、ビデオブロックのサイズを定義する。ビデオブロックは、例えばQT区分化、二分木(BT:Binary-Tree)区分化、もしくは三分木(TT:Triple-Tree)区分化、またはそれらの任意の組合せを反復して使用することによって、1つもしくは複数のブロック区分またはサブブロック(再びブロックを形成し得る)にさらに区分化されてもよい。本明細書で使用される「ブロック」または「ビデオブロック」という用語がフレームまたはピクチャの一部、具体的には矩形(正方形または非正方形)部分であり得ることが留意されるべきである。例えば、HEVCおよびVVCに関しては、ブロックまたはビデオブロックは、符号化ツリーユニット(CTU)、CU、予測ユニット(PU)、もしくは変換ユニット(TU)であるか、もしくはそれらに対応してもよく、かつ/または対応するブロック、例えば、符号化ツリー・ブロック(CTB)、符号化ブロック(CB)、予測ブロック(PB)、もしくは変換ブロック(TB)、および/もしくはサブブロックであるか、もしくはそれらに対応してもよい。
予測処理ユニット41は、誤差結果(例えば、符号化レートおよび歪みのレベル)に基づいて、現在のビデオブロックに対して、複数のイントラ予測符号化モードのうちの1つ、または複数のインター予測符号化モードのうちの1つなど、複数の可能な予測符号化モードのうちの1つを選択してもよい。予測処理ユニット41は、結果として得られたイントラ予測符号化ブロックまたはインター予測符号化ブロックを加算器50に提供して残差ブロックを生成し、またその後参照フレームの一部として使用するために、結果として得られたイントラ予測符号化ブロックまたはインター予測符号化ブロックを加算器62に提供して、符号化されたブロックを再構築してもよい。また、予測処理ユニット41は、動きベクトル、イントラモード・インジケータ、区分情報、および他のそのような構文情報などの構文要素をエントロピ符号化ユニット56に提供する。
現在のビデオブロック用に適切なイントラ予測符号化モードを選択するために、予測処理ユニット41内のイントラ予測処理ユニット46は、符号化されるべき現在のブロックと同じフレーム内の1つまたは複数の隣接ブロックに対して現在のビデオブロックのイントラ予測符号化を実行して、空間予測を提供してもよい。予測処理ユニット41内の動き推定ユニット42および動き補償ユニット44は、1つまたは複数の参照フレーム内の1つまたは複数の予測ブロックに対して現在のビデオブロックのインター予測符号化を実行して、時間予測を提供する。ビデオエンコーダ20は、例えばビデオデータのブロックごとに適切な符号化モードを選択するために、複数の符号化パスを実行してもよい。
いくつかの実装形態では、動き推定ユニット42は、ビデオフレームのシーケンス内の所定のパターンに従って、参照ビデオフレーム内の予測ブロックに対する現在のビデオフレーム内のビデオブロックの変位を示す動きベクトルを生成することによって、現在のビデオフレームのためのインター予測モードを決定する。動き推定ユニット42によって実行される動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。例えば、動きベクトルは、現在のフレーム内で符号化されている現在のブロックに対する参照フレーム内の予測ブロックに対する現在のビデオフレームまたはピクチャ内のビデオブロックの変位を示してもよい。所定のパターンは、シーケンス内のビデオフレームをPフレームまたはBフレームとして指定する。イントラBCユニット48は、インター予測のための動き推定ユニット42による動きベクトルの決定と同様の方式でイントラBC符号化のためのベクトル、例えばブロック・ベクトルを決定してもよく、または、動き推定ユニット42を利用してブロック・ベクトルを決定してもよい。
ビデオブロックの予測ブロックは、符号化されるべきビデオブロックと画素差の点で厳密に一致するとみなされる参照フレームのブロックもしくは参照ブロックであってもよく、またはそれらのブロックに対応してもよく、それらのブロックは、差分絶対値和(SAD:Sum of Absolute Difference)、差分二乗和(SSD:Sum of Square Difference)、または他の差分メトリックによって決定されてもよい。いくつかの実装形態では、ビデオエンコーダ20は、DPB64に記憶された参照フレームのサブ整数画素位置の値を算出してもよい。例えば、ビデオエンコーダ20は、参照フレームの4分の1の画素位置、8分の1の画素位置、または他の分数の画素位置の値を補間してもよい。したがって、動き推定ユニット42は、全画素位置および分数画素位置に対して動き探索を実行し、分数画素精度で動きベクトルを出力してもよい。
動き推定ユニット42は、ビデオブロックの位置と、DPB64に記憶されている1つまたは複数の参照フレームをそれぞれ識別する第1の参照フレーム・リスト(リスト0)または第2の参照フレーム・リスト(リスト1)から選択された参照フレームの予測ブロックの位置とを比較することによって、インター予測符号化フレーム内のビデオブロックの動きベクトルを算出する。動き推定ユニット42は、算出された動きベクトルを動き補償ユニット44に送り、次いで、エントロピ符号化ユニット56に送る。
動き補償ユニット44によって実行される動き補償は、動き推定ユニット42によって決定された動きベクトルに基づいて予測ブロックをフェッチまたは生成することを含んでもよい。動き補償ユニット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、SSD、または他の差分メトリックによって決定され得る、符号化されるべきブロックと厳密に一致するとみなされるブロックであってもよく、予測ブロックの識別は、サブ整数画素位置の値の算出を含んでもよい。
予測ブロックがイントラ予測に従って同じフレームからのブロックである場合でも、インター予測に従って異なるフレームからのブロックである場合でも、ビデオエンコーダ20は、符号化されている現在のビデオブロックの画素値から予測ブロックの画素値を減算して画素差分値を形成することによって、残差ビデオブロックを形成してもよい。残差ビデオブロックを形成する画素差分値は、輝度成分差分と彩度成分差分との両方を含んでもよい。
イントラ予測処理ユニット46は、上記で説明されたように、動き推定ユニット42および動き補償ユニット44によって実行されるインター予測の代替として、またはイントラBCユニット48によって実行されるイントラブロックコピー予測の代替として、現在のビデオブロックをイントラ予測してもよい。具体的には、イントラ予測処理ユニット46は、現在のブロックを符号化するために使用するイントラ予測モードを決定してもよい。そのようにするために、イントラ予測処理ユニット46は、例えば別個の符号化パス中に、様々なイントラ予測モードを使用して現在のブロックを符号化してもよく、イントラ予測処理ユニット46(または、いくつかの例では、モード選択ユニット)は、テストされたイントラ予測モードから、使用する適切なイントラ予測モードを選択してもよい。イントラ予測処理ユニット46は、ブロックに対して選択されたイントラ予測モードを示す情報をエントロピ符号化ユニット56に提供してもよい。エントロピ符号化ユニット56は、選択されたイントラ予測モードを示す情報をビットストリームに符号化してもよい。
予測処理ユニット41がインター予測またはイントラ予測によって現在のビデオブロックの予測ブロックを決定した後、加算器50は、現在のビデオブロックから予測ブロックを減算することによって残差ビデオブロックを形成する。残差ブロック内の残差ビデオデータは、1つまたは複数のTU内に含まれてもよく、変換処理ユニット52に提供される。変換処理ユニット52は、離散コサイン変換(DCT:Discrete Cosine Transform)または概念的に同様の変換などの変換を使用して、残差ビデオデータを残差変換係数に変換する。
変換処理ユニット52は、結果として得られた変換係数を量子化ユニット54に送ってもよい。量子化ユニット54は、変換係数を量子化して、ビット・レートをさらに低減する。量子化プロセスはまた、係数の一部または全部に関連付けられたビット深度を低減してもよい。量子化の程度は、量子化パラメータを調整することによって修正されてもよい。いくつかの例では、次いで、量子化ユニット54は、量子化済みの変換係数を含む行列の走査を実行してもよい。代替として、エントロピ符号化ユニット56が走査を実行してもよい。
量子化に続いて、エントロピ符号化ユニット56は、例えば、コンテキスト適応型可変長符号化(CAVLC:Context Adaptive Variable Length Coding)、コンテキスト適応型2値算術符号化(CABAC:Context Adaptive Binary Arithmetic Coding)、構文ベースのコンテキスト適応型2値算術符号化(SBAC)、確率間隔区分化エントロピ(PIPE:Probability Interval Partitioning Entropy)符号化、または別のエントロピ符号化の方法論もしくは技法を使用して、量子化済みの変換係数をビデオビットストリームにエントロピ符号化する。次いで、符号化されたビットストリームは、図23に示されるようにビデオデコーダ30に送信されるか、または、後のビデオデコーダ30への送信もしくはビデオデコーダ30による検索のために、図23に示されるように記憶デバイス32にアーカイブされてもよい。エントロピ符号化ユニット56はまた、符号化されている現在のビデオフレームの動きベクトルおよび他の構文要素をエントロピ符号化してもよい。
逆量子化ユニット58および逆変換処理ユニット60は、他のビデオブロックの予測のための参照ブロックを生成するために、それぞれ逆量子化および逆変換を適用して画素ドメイン内の残差ビデオブロックを再構築する。上述されたように、動き補償ユニット44は、DPB64に記憶されたフレームの1つまたは複数の参照ブロックから、動き補償された予測ブロックを生成してもよい。動き補償ユニット44はまた、予測ブロックに1つまたは複数の補間フィルタを適用して、動き推定において使用するためのサブ整数画素値を算出してもよい。
加算器62は、再構築された残差ブロックを、動き補償ユニット44によって作成された動き補償された予測ブロックに加算して、DPB64に記憶するための参照ブロックを作成してもよい。次いで、参照ブロックは、イントラBCユニット48、動き推定ユニット42、および動き補償ユニット44によって、後続のビデオフレーム内の別のビデオブロックをインター予測するための予測ブロックとして使用されてもよい。
図25は、本出願のいくつかの実装形態による、例示的なビデオデコーダ30を示すブロック図である。ビデオデコーダ30は、ビデオデータメモリ79、エントロピ復号ユニット80、予測処理ユニット81、逆量子化ユニット86、逆変換処理ユニット88、加算器90、およびDPB92を含む。予測処理ユニット81はさらに、動き補償ユニット82、イントラ予測ユニット84、およびイントラBCユニット85を含む。ビデオデコーダ30は、図24に関連してビデオエンコーダ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:Coded Picture Buffer)を含んでもよい。ビデオデコーダ30のDPB92は、ビデオデコーダ30によって(例えば、イントラ予測符号化モードまたはインター予測符号化モードで)ビデオデータを復号する際に使用するための参照ビデオデータを記憶する。ビデオデータメモリ79およびDPB92は、同期DRAM(SDRAM)、磁気抵抗RAM(MRAM)、抵抗RAM(RRAM)、または他のタイプのメモリ・デバイスを含む、ダイナミック・ランダム・アクセス・メモリ(DRAM)などの様々なメモリ・デバイスのいずれかによって形成されてもよい。図25では、例示のために、ビデオデータメモリ79およびDPB92は、ビデオデコーダ30の2つの別個の構成要素として描写されている。しかし、当業者には、ビデオデータメモリ79およびDPB92が同じメモリ・デバイスまたは別個のメモリ・デバイスによって提供され得ることが明らかであろう。いくつかの例では、ビデオデータメモリ79は、ビデオデコーダ30の他の構成要素とオンチップであるか、またはそれらの構成要素に対してオフチップであってもよい。
復号プロセス中、ビデオデコーダ30は、符号化されたビデオフレームのビデオブロックおよび関連する構文要素を表す符号化されたビデオビットストリームを受信する。ビデオデコーダ30は、ビデオフレーム・レベルおよび/またはビデオブロック・レベルで構文要素を受信してもよい。ビデオデコーダ30のエントロピ復号ユニット80は、ビットストリームをエントロピ復号して、量子化された係数、動きベクトルまたはイントラ予測モード・インジケータ、および他の構文要素を生成する。次いで、エントロピ復号ユニット80は、動きベクトルまたはイントラ予測モード・インジケータおよび他の構文要素を予測処理ユニット81に転送する。
ビデオフレームがイントラ予測符号化(I)フレームとしてまたは他のタイプのフレームにおけるイントラ符号化予測ブロックのために符号化されるとき、予測処理ユニット81のイントラ予測ユニット84は、信号伝送されたイントラ予測モード、および現在のフレームの以前に復号されたブロックからの参照データに基づいて、現在のビデオフレームのビデオブロックの予測データを生成してもよい。
ビデオフレームがインター予測符号化(すなわち、BまたはP)フレームとして符号化されるとき、予測処理ユニット81の動き補償ユニット82は、エントロピ復号ユニット80から受信された動きベクトルおよび他の構文要素に基づいて、現在のビデオフレームのビデオブロックの1つまたは複数の予測ブロックを生成してもよい。予測ブロックのそれぞれは、参照フレーム・リストのうちの1つの中の参照フレームから作成されてもよい。ビデオデコーダ30は、DPB92に記憶された参照フレームに基づくデフォルトの構築技法を使用して、参照フレーム・リストであるリスト0およびリスト1を構築してもよい。
いくつかの例では、ビデオブロックが本明細書で説明されたイントラ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によって生成された対応する予測ブロックとを加算することによって、現在のビデオブロックの復号されたビデオブロックを再構築する。復号されたビデオブロックをさらに処理するために、加算器90とDPB92との間にブロック解除フィルタ、SAOフィルタ、および/またはALFなどのループ内フィルタ91が配置されてもよい。いくつかの例では、ループ内フィルタ91は省略されてもよく、復号されたビデオブロックは加算器90によってDPB92に直接提供されてもよい。次いで、所与のフレーム内の復号されたビデオブロックは、次のビデオブロックの後続の動き補償に使用される参照フレームを記憶するDPB92に記憶される。また、DPB92、またはDPB92とは別個のメモリ・デバイスは、図23の表示デバイス34などの表示デバイス上で後で提示するために、復号されたビデオを記憶してもよい。
本開示の説明は、例示を目的として提示されたものであり、本開示を網羅することも限定することも意図されていない。前述の説明および関連する図面に提示された教示の恩恵を受ける当業者には、多くの修正形態、変形形態、および代替の実装形態が明らかとなるであろう。
例は、本開示の原理を説明するために、また当業者が様々な実施形態について本開示を理解し、基礎となる原理および様々な実装形態を、企図される特定の用途に適した様々な修正を加えて最大限に利用することを可能にするために、選択および説明されたものである。したがって、本開示の範囲が、開示された実装形態の特定の例に限定されないこと、ならびに修正および他の実装形態が本開示の範囲内に含まれるよう意図されていることが理解されるべきである。
関連出願の相互参照
本出願は、2021年2月4日に出願された仮出願第63/145,964号に基づき、当該仮出願に対する優先権を主張するものであり、当該仮出願の内容全体は、あらゆる目的のために参照により本明細書に組み込まれる。
本開示は、ビデオの符号化および圧縮に関する。より詳細には、本開示は、ビデオ符号化のための残差および係数の符号化の改善ならびに簡素化に関する。
ビデオデータを圧縮するために、様々なビデオ符号化技法が使用されることがある。ビデオ符号化は、1つまたは複数のビデオ符号化規格に従って実行される。例えば、ビデオ符号化規格は、多用途ビデオ符号化(VVC:versatile video coding)、共同探索テストモデル(JEM:joint exploration test model)、高効率ビデオ符号化(H.265/HEVC:high-efficiency video coding)、先進ビデオ符号化(H.264/AVC:advanced video coding)、動画専門家グループ(MPEG:moving picture expert group)符号化、または同様のものを含む。ビデオ符号化は一般に、動画像またはシーケンスに存在する冗長性を活用する予測方法(例えば、インター予測、イントラ予測、または同様のもの)を利用する。ビデオ符号化技法の重要な目標は、ビデオ品質の低下を回避するかまたは最小限に抑えながら、ビデオデータをより低いビット・レートを使用する形式に圧縮することである。
本開示の例は、ビデオ符号化のための方法および装置を提供する。
本開示の第1の態様によれば、ビデオ符号化のための方法が提供される。方法は、デコーダによって、シーケンスパラメータセット(SPS:Sequence Parameter Set)範囲拡張フラグの値に基づいてスライスヘッド(SH:Slice Head)の未加工バイトシーケンスペイロード(RBSP:Raw Byte Sequence Payload)構文構造内に構文構造sps_range_extensionが存在するかどうかを示すSPS範囲拡張フラグを受信することを含んでもよい。
本開示の第2の態様によれば、ビデオ符号化のための方法が提供される。方法は、デコーダによって、シーケンスパラメータセット(SPS)アライメント有効フラグの値に基づいて構文要素sb_coded_flag、abs_remainder、dec_abs_level、およびcoeff_sign_flagnのバイパス復号の前にインデックスivlCurrRangeがアライメントされるかどうかを示すSPSアライメント有効フラグを受信することを含んでもよい。
本開示の第3の態様によれば、ビデオ符号化のための方法が提供される。方法は、デコーダによって、拡張精度処理フラグ(extended precision processing flag)の値に基づいて変換係数についてまた変換処理中に拡張ダイナミックレンジが採用されるかどうかを示す拡張精度処理フラグを受信することを含んでもよい。
本開示の第4の態様によれば、ビデオ符号化のための方法が提供される。方法は、デコーダによって、永続的ライス適応有効フラグ(persistent rice adaption enabled flag)の値に基づいて、前のサブブロックから蓄積されたモード依存統計を採用している各サブブロックの開始時にabs_remainingおよびdec_abs_levelの2値化のためのライスパラメータ導出が初期化されるかどうかを示す、永続的ライス適応有効フラグを受信することを含んでもよい。
上記の概略的な説明および以下の詳細な説明は例示的かつ説明的なものにすぎず、本開示を限定することを意図したものではないことを理解されたい。
本明細書に組み込まれ本明細書の一部を構成する添付図面は、本開示に則した例を図示しており、説明とともに本開示の原理を説明する役割を果たす。
本開示の一例に係るエンコーダのブロック図である。 本開示の一例に係るデコーダのブロック図である。 本開示の一例に係る多型木構造におけるブロック区分を示す図である。 本開示の一例に係る多型木構造におけるブロック区分を示す図である。 本開示の一例に係る多型木構造におけるブロック区分を示す図である。 本開示の一例に係る多型木構造におけるブロック区分を示す図である。 本開示の一例に係る多型木構造におけるブロック区分を示す図である。 本開示の一例に係る18×12輝度CTUを有するピクチャを示す図である。 本開示の一例に係る18×12輝度CTUを有するピクチャの図である。 本開示の一例に係るVTMにおける許容されない三分木(TT:ternary tree)区分化および二分木(BT:binary tree)区分化の一例の図である。 本開示の一例に係るVTMにおける許容されないTT区分化およびBT区分化の一例の図である。 本開示の一例に係るVTMにおける許容されないTT区分化およびBT区分化の一例の図である。 本開示の一例に係るVTMにおける許容されないTT区分化およびBT区分化の一例の図である。 本開示の一例に係るVTMにおける許容されないTT区分化およびBT区分化の一例の図である。 本開示の一例に係るVTMにおける許容されないTT区分化およびBT区分化の一例の図である。 本開示の一例に係るVTMにおける許容されないTT区分化およびBT区分化の一例の図である。 本開示の一例に係るVTMにおける許容されないTT区分化およびBT区分化の一例の図である。 本開示の一例に係る変換ブロックの残差符号化構造の図である。 本開示の一例に係る変換スキップブロックの残差符号化構造の図である。 本開示の一例に係る2つのスカラ量子化器の図である。 本開示の一例に係る状態遷移の図である。 本開示の一例に係る量子化器選択の図である。 本開示に係る、確率モデルを選択するために使用されるテンプレートの図である。 本開示に係る、パレットモードで符号化されたブロックの一例の図である。 本開示に係る、パレットエントリを信号伝送するためのパレット予測子の使用を示す図である。 本開示に係る水平移動走査の図である。 本開示に係る垂直移動走査の図である。 本開示に係るパレットに対するサブブロックベースのインデックスマップ走査を示す図である。 本開示に係るパレットに対するサブブロックベースのインデックスマップ走査を示す図である。 本開示の一例に係るビデオ信号を符号化するための方法を示す図である。 本開示の一例に係るビデオ信号を符号化するための方法を示す図である。 本開示の一例に係るユーザインターフェースと結合されたコンピューティング環境を示す図である。 本開示の一例に係るビデオ符号化のための方法を示す図である。 本開示の一例に係るビデオ符号化のための方法を示す図である。 本開示の一例に係るビデオ符号化のための方法を示す図である。 本開示の一例に係るビデオ符号化のための方法を示す図である。 本開示の一例に係るビデオブロックを符号化および復号するための例示的なシステムを示すブロック図である。 本開示の一例に係る例示的なビデオエンコーダを示すブロック図である。 本開示の一例に係る例示的なビデオデコーダを示すブロック図である。
次に、例示的な実施形態を詳細に参照するが、その実施形態の例は添付の図面に示されている。以下の説明は添付の図面を参照しており、別段の記載がない限り、異なる図面における同じ番号は同じまたは類似の要素を表す。例示的な実施形態の以下の説明に記載される実装形態は、本開示に則したすべての実装形態を表すものではない。むしろ、その実装形態は、添付の特許請求の範囲に記載される本開示に関連する態様に則した装置および方法の単なる例である。
本開示で使用される用語は、特定の実施形態を説明することのみを目的としており、本開示を限定するよう意図されたものではない。単数形「a」、「an」、および「the」は、本開示および添付の特許請求の範囲で使用されるとき、文脈上明らかに別段の指示がない限り複数形も含むよう意図されている。本明細書で使用される「および/または」という用語は、関連する列挙された項目の1つまたは複数の任意またはすべての可能な組合せを意味するように、またそれらを含むように意図されていることも理解されたい。
本明細書において「第1の」、「第2の」、「第3の」などの用語は様々な情報を説明するために使用され得るが、これらの用語によってその情報が限定されるべきではないことを理解されたい。これらの用語は、情報の1つのカテゴリを別のカテゴリと区別するためにのみ使用される。例えば、本開示の範囲から逸脱することなく、第1の情報は第2の情報と称されることがあり、同様に、第2の情報は第1の情報と称されることがある。「場合」という用語は、本明細書で使用されるとき、文脈に応じて「ときに」、「に際して」、または「判断に応じて」を意味すると理解され得る。
2013年10月、HEVC規格の第1版が最終決定され、この第1版は、前世代のビデオ符号化規格H.264/MPEG AVCと比較して、約50%のビット・レート削減、または同等の知覚品質を提供する。HEVC規格は、以前の規格よりも符号化の大幅な改善を実現するが、追加の符号化ツールを用いることで、HEVCよりも優れた符号化効率が達成され得ることが証明されている。これに基づいて、VCEGとMPEGがともに、将来のビデオ符号化の標準化に向けた新しい符号化技術の探索作業を開始した。2015年10月、ITU-T VECGおよびISO/IEC MPEGによって共同ビデオ探索チーム(JVET:Joint Video Exploration Team)が結成され、符号化効率の大幅な向上を可能にし得る先進技術の重要な研究を開始した。JVETによって、HEVCテスト・モデル(HM)の上にいくつかの追加の符号化ツールを統合することにより、共同探索モデル(JEM)と呼ばれる1つの参照ソフトウェアが維持された。
2017年10月、ITU-TおよびISO/IECによって、HEVCを超える能力を備えたビデオ圧縮に関する共同提案募集(CfP:call for proposals)が発行された。2018年4月、第10回JVET会議において23件の回答が受領および評価され、これにより、HEVCよりも約40%圧縮効率が向上することが実証された。このような評価結果に基づいて、JVETは、多用途ビデオ符号化(VVC)と名付けられた新世代のビデオ符号化規格を開発するための新しいプロジェクトを立ち上げた。同月、VVC規格の参照実装を実証するために、VVCテスト・モデル(VTM)と呼ばれる1つの参照ソフトウェアコードベースが確立された。
HEVCと同様に、VVCは、ブロックベースのハイブリッド式ビデオ符号化フレームワークに基づいて構築される。
図1は、VVC用のブロックベースのビデオエンコーダの概略図を示している。具体的には、図1は、典型的なエンコーダ100を示している。エンコーダ100は、ビデオ入力110、動き補償112、動き推定114、イントラ/インター・モード決定116、ブロック予測子140、加算器128、変換130、量子化132、予測関連情報142、イントラ予測118、ピクチャバッファ120、逆量子化134、逆変換136、加算器126、メモリ124、ループ内フィルタ122、エントロピ符号化138、およびビットストリーム144を有する。
エンコーダ100では、ビデオフレームは処理のために複数のビデオブロックに区分化される。所与のビデオブロックごとに、インター予測手法またはイントラ予測手法のいずれかに基づいて予測が形成される。
ビデオ入力110の一部である現在のビデオブロックと、ブロック予測子140の一部であるその予測子との間の差を表す予測残差が、加算器128から変換130に送られる。次いで、エントロピ低減のために、変換係数が変換130から量子化132に送られる。次いで、量子化された係数がエントロピ符号化138に供給されて、圧縮されたビデオビットストリームを生成する。図1に示されているように、ビデオブロック区分情報、動きベクトル(MV:motion vector)、参照ピクチャインデックス、およびイントラ予測モードなどの、イントラ/インター・モード決定116からの予測関連情報142も、エントロピ符号化138を介して供給され、圧縮されたビットストリーム144内に保存される。圧縮されたビットストリーム144はビデオビットストリームを含む。
エンコーダ100では、予測を目的として画素を再構築するために、デコーダ関連の回路も必要である。最初に、逆量子化134および逆変換136を通じて予測残差が再構築される。この再構築された予測残差は、ブロック予測子140と組み合わされて、現在のビデオブロックのフィルタリングされていない再構築された画素を生成する。
空間予測(または「イントラ予測」)は、現在のビデオブロックと同じビデオフレーム内の既に符号化された隣接ブロックのサンプル(参照サンプルと呼ばれる)からの画素を使用して、現在のビデオブロックを予測する。
時間予測(「インター予測」とも呼ばれる)は、既に符号化されたビデオピクチャからの再構築された画素を使用して、現在のビデオブロックを予測する。時間予測は、ビデオ信号に固有の時間的冗長性を低減する。所与の符号化ユニット(CU:coding unit)または符号化ブロックの時間予測信号は、通常、現在のCUとその時間参照との間の動きの量および方向を示す1つまたは複数のMVによって信号伝送される。さらに、参照ピクチャストレージ内のどの参照ピクチャから時間予測信号が来ているかを識別するために使用される1つの参照ピクチャインデックスが追加で送られる。
動き推定114は、ビデオ入力110およびピクチャバッファ120からの信号を取り込み、動き推定信号を動き補償112に出力する。動き補償112は、ビデオ入力110、ピクチャバッファ120からの信号、および動き推定114からの動き推定信号を取り込み、動き補償信号をイントラ/インター・モード決定116に出力する。
空間予測および/または時間予測が実行された後、エンコーダ100内のイントラ/インター・モード決定116は、例えばレート歪み最適化方法に基づいて、最良の予測モードを選択する。次いで、現在のビデオブロックからブロック予測子140が減算され、結果として得られた予測残差は、変換130および量子化132を使用して無相関化される。結果として得られた量子化された残差係数は、逆量子化134によって逆量子化され、逆変換136によって逆変換されて、再構築された残差を形成し、次いで、再構築された残差が予測ブロックに再度加算されて、CUの再構築された信号を形成する。再構築されたCUがピクチャバッファ120の参照ピクチャストレージに入れられて将来のビデオブロックを符号化するために使用される前に、再構築されたCUに対して、ブロック解除フィルタ、サンプル適応オフセット(SAO)、および/または適応ループ内フィルタ(ALF)などのさらなるループ内フィルタリング122が適用されてもよい。出力ビデオビットストリーム144を形成するために、符号化モード(インターまたはイントラ)、予測モード情報、動き情報、および量子化された残差係数がすべてエントロピ符号化ユニット138に送られ、さらに圧縮およびパックされてビットストリームを形成する。
図1は、一般的なブロックベースのハイブリッド式ビデオ符号化システムのブロック図を示している。入力ビデオ信号は、(符号化ユニット(CU)と呼ばれる)ブロックごとに処理される。VTM-1.0では、CUは最大128×128画素であってもよい。しかし、四分木のみに基づいてブロックを区分化するHEVCとは異なり、VVCでは、四分木/二分木/三分木に基づいて様々な局所特性に適応するように、1つの符号化ツリーユニット(CTU)がCUに分解される。定義により、符号化ツリー・ブロック(CTB)は、ある値をNとした場合のN×Nブロックのサンプルであり、その結果、構成要素のCTBへの分割は区分化である。CTUは、輝度サンプルのCTB、3つのサンプル配列を有するピクチャの彩度サンプルの2つの対応するCTB、または、単色ピクチャもしくは3つの別個のカラー・プレーンとサンプルを符号化するために使用される構文構造とを使用して符号化されたピクチャのサンプルのCTBを含む。さらに、HEVCにおける複数の区分化ユニット・タイプの概念は排除され、すなわち、VVCでは、CU、予測ユニット(PU)、および変換ユニット(TU)の分離はもはや存在せず、その代わりに、さらなる区分なしに各CUが予測と変換との両方の基本単位として常に使用される。多型木構造では、最初に、1つのCTUが四分木構造によって区分化される。次いで、各四分木葉ノードは、二分木構造および三分木構造によってさらに区分化され得る。図3A、図3B、図3C、図3D、および図3Eに示されるように、四分区分化、水平二分区分化、垂直二分区分化、水平三分区分化、および垂直三分区分化の5つの分解タイプがある。
図3Aは、本開示に係る多型木構造におけるブロック四分区分を示す図を示している。
図3Bは、本開示に係る多型木構造におけるブロック垂直二分区分を示す図を示している。
図3Cは、本開示に係る多型木構造におけるブロック水平二分区分を示す図を示している。
図3Dは、本開示に係る多型木構造におけるブロック垂直三分区分を示す図を示している。
図3Eは、本開示に係る多型木構造におけるブロック水平三分区分を示す図を示している。
図1では、空間予測および/または時間予測が実行されてもよい。空間予測(または「イントラ予測」)は、同じビデオピクチャ/スライス内の既に符号化された隣接ブロックのサンプル(参照サンプルと呼ばれる)からの画素を使用して、現在のビデオブロックを予測する。空間予測は、ビデオ信号に固有の空間的冗長性を低減する。時間予測(「インター予測」または「動き補償予測」とも呼ばれる)は、既に符号化されたビデオピクチャからの再構築された画素を使用して、現在のビデオブロックを予測する。時間予測は、ビデオ信号に固有の時間的冗長性を低減する。所与のCUの時間予測信号は、通常、現在のCUとその時間参照との間の動きの量および方向を示す1つまたは複数の動きベクトル(MV)によって信号伝送される。また、複数の参照ピクチャがサポートされている場合、参照ピクチャストア内のどの参照ピクチャから時間予測信号が来ているかを識別するために使用される1つの参照ピクチャインデックスが追加で送られる。空間予測および/または時間予測の後、エンコーダ内のモード決定ブロックは、例えばレート歪み最適化方法に基づいて、最良の予測モードを選択する。次いで、現在のビデオブロックから予測ブロックが減算され、予測残差は、変換を使用して無相関化され、量子化される。量子化された残差係数は、逆量子化および逆変換されて、再構築された残差を形成し、次いで、再構築された残差が予測ブロックに再度加算されて、CUの再構築された信号を形成する。再構築されたCUが参照ピクチャストアに入れられて将来のビデオブロックを符号化するために使用される前に、再構築されたCUに対して、ブロック解除フィルタ、サンプル適応オフセット(SAO)、および適応ループ内フィルタ(ALF)などのさらなるループ内フィルタリングが適用されてもよい。出力ビデオビットストリームを形成するために、符号化モード(インターまたはイントラ)、予測モード情報、動き情報、および量子化された残差係数がすべてエントロピ符号化ユニットに送られ、さらに圧縮およびパックされてビットストリームを形成する。
図2は、VVC用のビデオデコーダの概略ブロック図を示している。具体的には、図2は、典型的なデコーダ200のブロック図を示している。デコーダ200は、ビットストリーム210、エントロピ復号212、逆量子化214、逆変換216、加算器218、イントラ/インター・モード選択220、イントラ予測222、メモリ230、ループ内フィルタ228、動き補償224、ピクチャバッファ226、予測関連情報234、およびビデオ出力232を有する。
デコーダ200は、図1のエンコーダ100内に存在する再構築関連セクションと同様である。デコーダ200では、最初に、到来する入力ビデオビットストリーム210がエントロピ復号212を通じて復号されて、量子化された係数レベルおよび予測関連情報を導出する。次いで、量子化された係数レベルが逆量子化214および逆変換216を通じて処理されて、再構築された予測残差を得る。イントラ/インター・モード選択器220に実装されるブロック予測子機構は、復号された予測情報に基づいて、イントラ予測222または動き補償224のいずれかを実行するように構成される。加算器218を使用して逆変換216からの再構築された予測残差とブロック予測子機構によって生成された予測出力とを合計することによって、フィルタリングされていない再構築された画素のセットが得られる。
再構築されたブロックは、参照ピクチャストアとして機能するピクチャバッファ226に記憶される前に、さらにループ内フィルタ228を通過してもよい。ピクチャバッファ226内の再構築されたビデオは、表示デバイスを駆動するために送られるとともに、将来のビデオブロックを予測するために使用されてもよい。ループ内フィルタ228がオンである状況において、これらの再構築された画素に対してフィルタリング動作が実行されて、最終的な再構築されたビデオ出力232を導出する。
図2は、ブロックベースのビデオデコーダの概略ブロック図を示している。最初に、エントロピ復号ユニットにおいてビデオビットストリームがエントロピ復号される。符号化モードおよび予測情報は、空間予測ユニット(イントラ符号化の場合)または時間予測ユニット(インター符号化の場合)に送られて予測ブロックを形成する。残差変換係数が逆量子化ユニットおよび逆変換ユニットに送られて、残差ブロックを再構築する。次いで、予測ブロックと残差ブロックとが加算される。再構築されたブロックは、参照ピクチャストアに記憶される前に、さらにループ内フィルタリングを通過してもよい。次いで、参照ピクチャストア内の再構築されたビデオは、表示デバイスを駆動するために送られるとともに、将来のビデオブロックを予測するために使用される。
一般に、VVCにおいて適用される基本的なイントラ予測方式は、いくつかのモジュールがさらに拡張および/または改善されていること、例えば、イントラサブ区分(ISP)符号化モード、広角イントラ方向による拡張イントラ予測、位置依存イントラ予測組合せ(PDPC:position-dependent intra prediction combination)、および4タップ・イントラ補間を除いて、HEVCのイントラ予測方式と同じに保たれている。
VVCにおけるピクチャ、タイルグループ、タイル、およびCTUの区分化
VVCでは、タイルは、ピクチャ内の特定のタイル列および特定のタイル行内のCTUの矩形領域として定義される。タイルグループは、単一のNALユニットに排他的に含まれるピクチャの整数個のタイルのグループである。基本的に、タイルグループの概念は、HEVCにおいて定義されているスライスと同じである。例えば、ピクチャは、タイルグループおよびタイルに分割される。タイルは、ピクチャの矩形領域をカバーするCTUのシーケンスである。タイルグループは、ピクチャのいくつかのタイルを含む。タイルグループの2つのモード、すなわちラスタ走査タイルグループモードおよび矩形タイルグループモードがサポートされている。ラスタ走査タイルグループモードでは、タイルグループは、ピクチャのタイルラスタ走査内のタイルのシーケンスを含む。矩形タイルグループモードでは、タイルグループは、集合的にピクチャの矩形領域を形成するピクチャのいくつかのタイルを含む。矩形タイルグループ内のタイルは、タイルグループのタイルラスタ走査の順序になる。
図4は、ピクチャのラスタ走査タイルグループ区分化の一例を示しており、ピクチャは12個のタイルおよび3個のラスタ走査タイルグループに分割されている。図4は、タイル410、412、414、416、および418を含む。各タイルは、18個のCTUを有する。より具体的には、図4は、12個のタイルおよび3個のタイルグループに区分化された18×12輝度CTUを有するピクチャを示している(参考)。3個のタイルグループは、次のように(1)第1のタイルグループがタイル410および412を含み、(2)第2のタイルグループがタイル414、416、418、420、および422を含み、(3)第3のタイルグループがタイル424、426、428、430、および432を含む。
図5は、ピクチャの矩形タイルグループ区分化の一例を示しており、ピクチャは、24個のタイル(6個のタイル列および4個のタイル行)、ならびに9個の矩形タイルグループに分割されている。図5は、タイル510、512、514、516、518、520、522、524、526、528、530、532、534、536、538、540、542、544、546、548、550、552、554、および556を含む。より具体的には、図5は、24個のタイルおよび9個のタイルグループに区分化された18×12輝度CTUを有するピクチャを示している(参考)。タイルグループはタイルを含み、タイルはCTUを含む。9個の矩形タイルグループは、(1)2個のタイル510および512、(2)2個のタイル514および516、(3)2個のタイル518および520、(4)4個のタイル522、524、534、および536、(5)4個のタイルグループ526、528、538、および540、(6)4個のタイル530、532、542、および544、(7)2個のタイル546および548、(8)2個のタイル550および552、(9)2個のタイル554および556を含む。
VVCにおける高周波ゼロ設定を伴う大型ブロックサイズの変換
VTM4では、最大64×64の大型ブロックサイズの変換が可能になり、この変換は主に、高解像度ビデオ、例えば1080pおよび4Kシーケンスに有用である。サイズ(幅もしくは高さ、または幅と高さとの両方)が64に等しい変換ブロックの高周波変換係数はゼロに設定され、その結果、低周波係数のみが保持される。例えば、ブロック幅をMとしブロック高さをNとしたM×N変換ブロックの場合、Mが64に等しいとき、変換係数の左32列のみが保たれる。同様に、Nが64に等しいとき、変換係数の上32行のみが保たれる。大型ブロックに対して変換スキップモードが使用されるとき、値をゼロに設定することなくブロック全体が使用される。
VVCにおける仮想パイプラインデータユニット(VPDU)
仮想パイプラインデータユニット(VPDU:Virtual pipeline data unit)は、ピクチャ内の重複しないユニットとして定義される。ハードウェアデコーダでは、連続するVPDUが複数のパイプライン・ステージによって同時に処理される。VPDUサイズは、ほとんどのパイプライン・ステージにおいてバッファ・サイズにほぼ比例し、したがって、VPDUサイズを小さく維持することが重要である。ほとんどのハードウェアデコーダでは、VPDUサイズは、最大変換ブロック(TB:transform block)サイズに設定され得る。しかし、VVCでは、三分木(TT)区分および二分木(BT)区分が、VPDUサイズの増加をもたらすことがある。
VPDUサイズを64×64輝度サンプルとして保つために、次の(構文信号伝送の修正を伴う)規範的な区分制限がVTM5に適用される。
TT分解は、幅もしくは高さのいずれか、または幅と高さとの両方が128に等しいCUに対して許容されない。
128×NのCUであり、N≦64である(すなわち、幅が128に等しく、高さが128未満である)場合、水平BTは許容されない。
N×128のCUであり、N≦64である(すなわち、高さが128に等しく、幅が128未満である)場合、垂直BTは許容されない。
図6A、図6B、図6C、図6D、図6E、図6F、図6G、および図6Hは、VTMにおける許容されないTT区分化およびBT区分化の例を示している。
VVCにおける変換係数符号化
VVCにおける変換係数符号化は、重複しない係数グループ(CGまたはサブブロックとも呼ばれる)をどちらも使用するという点でHEVCに類似している。しかし、それらの間にはいくつかの相違点もある。HEVCでは、係数の各CGは、4×4という固定サイズを有する。VVC草案6では、CGサイズは、TBサイズに依存するようになった。その結果、VVCでは様々なCGサイズ(1×16、2×8、8×2、2×4、4×2、および16×1)が利用可能である。符号化ブロック内部のCG、およびCG内の変換係数は、事前に定義された走査順序に従って符号化される。
画素あたりのコンテキスト符号化ビンの最大数を制限するために、TBの面積およびビデオ成分のタイプ(例えば、輝度成分対彩度成分)を使用して、TBのコンテキスト符号化ビン(CCB:context-coded bin)の最大数を導出する。コンテキスト符号化ビンの最大数は、TB_zosize*1.75に等しい。ここで、TB_zosizeは、係数ゼロ設定後のTB内のサンプル数を示す。なお、CGが非ゼロ係数を含むか否かを示すフラグであるcoded_sub_block_flagは、CCBカウントには考慮されない。
係数ゼロ設定は、変換ブロックのある特定の領域に位置する係数を強制的に0にするために変換ブロックに対して実行される動作である。例えば、現在のVVCでは、64×64変換は、関連するゼロ設定動作を有する。その結果、64×64変換ブロック内の左上の32×32領域の外側に位置する変換係数はすべて強制的に0になる。実際、現在のVVCでは、ある特定の次元に沿った32を超えるサイズを有する任意の変換ブロックの場合、左上の32×32領域を超えて位置する係数が強制的に0にするために、その次元に沿って係数ゼロ設定動作が実行される。
VVCにおける変換係数符号化では、最初に、変数remBinsPass1が、許容されるコンテキスト符号化ビンの最大数(MCCB:maximum number of context-coded bins)に設定される。符号化プロセスでは、コンテキスト符号化ビンが信号伝送されるたびに変数が1ずつ減る。remBinsPass1が4以上である間、係数は最初にsig_coeff_flag、abs_level_gt1_flag、par_level_flag、およびabs_level_gt3_flagの構文を通じて信号伝送され、これらはすべて第1のパスにおいてコンテキスト符号化ビンを使用する。係数のレベル情報の残りの部分は、第2のパスにおいてゴロムライス符号およびバイパス符号化ビン(bypass-coded bin)を使用して、abs_remainderの構文要素を用いて符号化される。第1のパスを符号化している間にremBinsPass1が4未満になったとき、現在の係数は第1のパスでは符号化されず、第2のパスにおいて、ゴロムライス符号およびバイパス符号化ビンを使用して、dec_abs_levelの構文要素を用いて直接符号化される。dec_abs_level[]のライスパラメータ導出プロセスは、表3に指定されているように導出される。上述されたすべてのレベルの符号化の後、最後に、sig_coeff_flagが1に等しいすべての走査位置のサイン(sign_flag)がバイパス・ビンとして符号化される。このようなプロセスは図7に描写されている。remBinsPass1はTBごとにリセットされる。sig_coeff_flag、abs_level_gt1_flag、par_level_flag、およびabs_level_gt3_flagのコンテキスト符号化ビンの使用から残りの係数のバイパス符号化ビンの使用への移行は、TBごとに最大1回のみ発生する。係数サブブロックについては、最初の係数を符号化する前にremBinsPass1が4未満である場合、バイパス符号化ビンを使用して係数サブブロック全体が符号化される。
図7は、変換ブロックの残差符号化構造の図を示している。
abs_remainderおよびdec_abs_levelの構文を信号伝送するために、統一された(同じ)ライスパラメータ(RicePara)の導出が使用される。唯一の相違点は、abs_remainderおよびdec_abs_levelを符号化するために、基準レベルbaseLevelがそれぞれ4および0に設定されることである。ライスパラメータは、ローカル・テンプレート内の隣接する5つの変換係数の絶対レベルの合計だけでなく、次のような対応する基準レベルにも基づいて決定される。
RicePara=RiceParTable[max(min(31,sumAbs-5*baseLevel),0)]
現在のVVC草案仕様における残差符号化の構文および関連する意味論がそれぞれ表1および表2に示されている。表1の読み方は、本開示の付属セクションに示されており、VVC仕様にも記載されている。
Figure 2024506156000141
Figure 2024506156000142
Figure 2024506156000143
Figure 2024506156000144
Figure 2024506156000145
Figure 2024506156000146
Figure 2024506156000147
Figure 2024506156000148
Figure 2024506156000149
Figure 2024506156000150
Figure 2024506156000151
VVCにおける変換スキップモードの残差符号化
単一の残差符号化方式が変換係数と変換スキップ係数との両方を符号化するように設計されているHEVCとは異なり、VVCでは、2つの別個の残差符号化方式が変換係数および変換スキップ係数(すなわち、残差)にそれぞれ使用される。
変換スキップモードでは、残差信号の統計的特性が変換係数の統計的特性とは異なり、低周波成分の周囲のエネルギー圧縮が観察されない。残差符号化は、
最後のx/y位置の信号伝送がないこと、
前のすべてのフラグが0に等しいとき、coded_sub_block_flagがDCサブブロックを除くすべてのサブブロックについて符号化されること、
2つの隣接する係数を用いたsig_coeff_flagコンテキストモデル化、
1つのコンテキストモデルのみを使用するpar_level_flag、
5、7、9を超えるフラグを追加、
剰余2値化のための修正されたライスパラメータ導出、
左および上の隣接する係数値に基づいてサイン・フラグのコンテキストモデル化が決定され、sig_coeff_flagの後、すべてのコンテキスト符号化ビンをともに保持するためにサイン・フラグが解析されること
を含む、(空間)変換スキップ残差の様々な信号特性を考慮して修正される。
図8に示されているように、第1のパスでは残差サンプルごとに構文要素sig_coeff_flag、coeff_sign_flag、abs_level_gt1_flag、par_level_flagがインターリーブ方式で符号化され、第2のパスにおけるabs_level_gtX_flagビットプレーン、第3のパスにおけるabs_remainderの符号化が続く。
パス1:sig_coeff_flag、coeff_sign_flag、abs_level_gt1_flag、par_level_flag
パス2:abs_level_gt3_flag、abs_level_gt5_flag、abs_level_gt7_flag、abs_level_gt9_flag
パス3:abs_remainder
図8は、変換スキップブロックの残差符号化構造の図を示している。
現在のVVC草案仕様における変換スキップモードの残差符号化の構文および関連する意味論がそれぞれ表5および表2に示されている。表5の読み方は、本開示の付属セクションに示されており、VVC仕様にも記載されている。
Figure 2024506156000152
Figure 2024506156000153
Figure 2024506156000154
Figure 2024506156000155
量子化
現在のVVCでは、最大QP値が51から63に拡張され、それに応じて初期QPの信号伝送が変更された。slice_qp_deltaの非ゼロ値が符号化されるとき、SliceQpYの初期値はスライス・セグメント層において修正され得る。変換スキップブロックの場合、QPが4に等しいとき、量子化ステップのサイズは1になるので、最小許容量子化パラメータ(QP)は4と定義される。
さらに、同じHEVCスカラ量子化が、依存スカラ量子化と呼ばれる新しい概念とともに使用される。依存スカラ量子化とは、変換係数の許容可能な再構築値のセットが再構築順序で現在の変換係数レベルより前の変換係数レベルの値に依存するという手法を指す。この手法の主な効果は、HEVCにおいて使用されるような従来の独立したスカラ量子化と比較して、許容可能な再構築ベクトルがN次元ベクトル空間でより高密度にパックされることである(Nは変換ブロック内の変換係数の数を表す)。すなわち、N次元単位体積あたりの許容可能な再構築ベクトルの所与の平均数について、入力ベクトルと最も近い再構築ベクトルとの間の平均歪みが減少する。依存スカラ量子化の手法は、(a)異なる再構築レベルを用いて2つのスカラ量子化器を定義すること、および(b)2つのスカラ量子化器間で切り替えるためのプロセスを定義することによって実現される。
使用される2つのスカラ量子化器が、Q0およびQ1で示された状態で図9に示されている。利用可能な再構築レベルの位置は、量子化ステップ・サイズΔによって一意に指定される。使用されるスカラ量子化器(Q0またはQ1)は、ビットストリーム内で明示的に信号伝送されない。代わりに、現在の変換係数に使用される量子化器は、符号化/再構築順序で現在の変換係数に先行する変換係数レベルのパリティによって決定される。
図9は、提案された依存量子化手法で使用される2つのスカラ量子化器の図を示している。
図10Aおよび図10Bに示されているように、2つのスカラ量子化器(Q0およびQ1)間の切り替えは、4つの量子化器状態(QState)を有する状態マシンを介して実現される。QStateは、0、1、2、3の異なる4つの値をとることができる。これは、符号化/再構築順序で現在の変換係数に先行する変換係数レベルのパリティによって一意に決定される。変換ブロックの逆量子化の開始時に、状態は、0に等しくなるように設定される。変換係数は、走査順序で(すなわち、それらがエントロピ復号されるのと同じ順序で)再構築される。現在の変換係数が再構築された後、状態は図10に示されているように更新され、ここで、kは変換係数レベルの値を示す。
図10Aは、提案された依存量子化についての状態遷移を示す遷移図を示している。
図10Bは、提案された依存量子化のための量子化器選択を示す表を示している。
デフォルトのユーザ定義されたスケーリング行列を信号伝送することもサポートされている。DEFAULTモードのスケーリング行列はすべて平坦であり、すべてのTBサイズについて要素は16に等しい。IBCおよびイントラ符号化モードは現在、同じスケーリング行列を共有している。したがって、USER_DEFINED行列の場合、MatrixTypeおよびMatrixType_DCの数は下記のように更新される。
MatrixType:30=2(イントラ&IBC/インターの場合の2)×3(Y/Cb/Cr成分)×5(正方形TBサイズ:輝度の場合は4×4から64×64まで、彩度の場合は2×2から32×32まで)。
MatrixType_DC:14=2(イントラ&IBC/インターの場合の2×Y成分の場合の1)×3(TBサイズ:16×16、32×32、64×64)+4(イントラ&IBC/インターの場合の2×Cb/Cr成分の場合の2)×2(TBサイズ:16×16、32×32)。
DC値は、次のスケーリング行列:16×16、32×32、および64×64に対して個別に符号化される。サイズが8×8より小さいTBの場合、1つのスケーリング行列内のすべての要素が信号伝送される。TBのサイズが8×8以上の場合、1つの8×8スケーリング行列内の64要素だけが基本スケーリング行列として信号伝送される。8×8よりも大きいサイズの正方行列を取得するために、8×8の基本スケーリング行列が、(要素の複製によって)対応する正方形サイズ(すなわち、16×16、32×32、64×64)にアップサンプリングされる。64点変換の高周波係数のゼロ設定が適用されると、スケーリング行列の対応する高周波もゼロ設定される。すなわち、TBの幅または高さが32以上の場合、係数の左半分または上半分のみが保持され、残りの係数には0が割り当てられる。さらに、右下の4×4要素は決して使用されないため、64×64スケーリング行列に対して信号伝送される要素の数も、8×8から3つの4×4部分行列に低減される。
変換係数符号化のためのコンテキストモデル化
変換係数レベルの絶対値に関連する構文要素の確率モデルの選択は、局所近傍における絶対レベルまたは部分的に再構築された絶対レベルの値に依存する。使用されるテンプレートが図11に図示されている。
図11は、確率モデルを選択するために使用されるテンプレートの図を示している。黒い四角形は現在の走査位置を指定し、「x」の付いた四角形は使用される局所近傍を表す。
選択される確率モデルは、局所近傍内の絶対レベル(または部分的に再構築された絶対レベル)の合計、および局所近傍内の0より大きい絶対レベルの数(1に等しいsig_coeff_flagsの数によって与えられる)に依存する。コンテキストモデル化および2値化は、局所近傍についての次の測定値、すなわち、
numSig:局所近傍内の非ゼロ・レベルの数、
sumAbs1:局所近傍内の第1のパス後の部分的に再構築された絶対レベル(absLevel1)の合計、
sumAbs:局所近傍内の再構築された絶対レベルの合計、
対角位置(d):変換ブロック内の現在の走査位置の水平座標および垂直座標の合計に依存する。
numSig、sumAbs1、およびdの値に基づいて、sig_coeff_flag、abs_level_gt1_flag、par_level_flag、およびabs_level_gt3_flagを符号化するための確率モデルが選択される。abs_remainderおよびdec_abs_levelを2値化するためのライスパラメータは、sumAbsおよびnumSigの値に基づいて選択される。
現在のVVCにおいて、低減32ポイントMTS(RMTS32とも呼ばれる)は、高周波係数をスキップすることに基づいており、32ポイントDST-7/DCT-8の計算複雑性を低減するために使用される。また、これは、すべてのタイプのゼロ設定(すなわち、RMTS32、およびDCT2における高周波成分用の既存のゼロ設定)を含む係数符号化の変更を伴う。具体的には、最後の非ゼロ係数位置符号化の2値化は、縮小されたTUサイズに基づいて符号化され、最後の非ゼロ係数位置符号化のためのコンテキストモデル選択は、元のTUサイズによって決定される。さらに、変換係数のsig_coeff_flagを符号化するために、60個のコンテキストモデルが使用される。コンテキストモデル・インデックスの選択は、locSumAbsPass1と呼ばれる、以前に部分的に再構築された5つの絶対レベルの合計と、下記のような依存量子化の状態QStateに基づいている。
cIdxが0に等しい場合、ctxIncは下記のように導出される。
ctxInc=12*Max(0,QState-1)+Min((locSumAbsPass1+1)>>1,3)+(d<2?8:(d<5?4:0))
それ以外の場合(cIdxが0よりも大きい場合)、ctxIncは下記のように導出される。
ctxInc=36+8*Max(0,QState-1)+Min((locSumAbsPass1+1)>>1,3)+(d<2?4:0)
パレットモード
パレットモードの背景にある基本的な理念は、CU内のサンプルが代表的な色値の小さいセットによって表されるということである。このセットはパレットと呼ばれる。パレットから除外される色値を3つの色成分のby値がビットストリームで直接信号伝送されるエスケープ色として信号伝送することによって、パレットから除外される色を示すことも可能である。これは図12に図示されている。
図12は、パレットモードで符号化されたブロックの一例を示している。図12は、パレットモードで符号化されたブロック1210およびパレット1220を含む。
図12において、パレットサイズは4である。最初の3つのサンプルは、再構築のためにそれぞれパレットエントリ2、0、および3を使用する。青色のサンプルはエスケープ記号を表す。CUレベル・フラグpalette_escape_val_present_flagは、CU内にエスケープ記号が存在するかどうかを示す。エスケープ記号が存在する場合、パレットサイズは1だけ増加し、エスケープ記号を示すために最後のインデックスが使用される。したがって、図12では、エスケープ記号に対してインデックス4が割り当てられる。
パレット符号化されたブロックを復号するために、デコーダは、次の情報、すなわち
パレットテーブル、
パレットインデックス
を有する必要がある。
パレットインデックスがエスケープ記号に対応する場合、サンプルの対応する色値を示すために追加のオーバーヘッドが信号伝送される。
さらに、エンコーダ側では、そのCUで使用される適切なパレットを導出する必要がある。
非可逆符号化のためのパレットの導出の場合、修正されたk平均クラスタリングアルゴリズムが使用される。ブロックの最初のサンプルがパレットに追加される。次に、ブロックからの後続のサンプルごとに、サンプルと現在のパレット色のそれぞれとの間の絶対差の合計(SAD:sum of absolute difference)が算出される。各成分の歪みが最小SADに対応するパレットエントリのしきい値よりも小さい場合、サンプルはそのパレットエントリに属するクラスタに追加される。それ以外の場合、サンプルは新しいパレットエントリとして追加される。クラスタにマッピングされたサンプルの数がしきい値を超えると、そのクラスタの重心は、更新されてそのクラスタのパレットエントリになる。
次のステップでは、クラスタが使用量の降順に並べ替えられる。次いで、各エントリに対応するパレットエントリが更新される。通常、クラスタ重心が、パレットのエントリとして使用される。しかし、パレットエントリを符号化するコストを考慮すると、レート歪み分析は、重心ではなく、パレット予測子からのエントリのいずれかが、更新されたパレットエントリとして使用されるのに好適であり得るかどうかを分析するように実行される。このプロセスは、すべてのクラスタが処理されるか、または最大パレットサイズに達するまで継続される。最後に、クラスタが単一のサンプルのみを有し、対応するパレットエントリがパレット予測子にない場合、サンプルはエスケープ記号に変換される。さらに、重複したパレットエントリは削除され、それらのクラスタはマージされる。
パレット導出後、ブロック内の各サンプルに、(SAD内の)最近傍のパレットエントリのインデックスが割り当てられる。次いでサンプルは、「INDEX」または「COPY_ABOVE」モードに割り当てられる。「INDEX」または「COPY_ABOVE」モードが可能である各サンプルについて。次いで、モードを符号化するコストが算出される。コストがより低いモードが選択される。
パレットエントリの符号化のために、パレット予測子が維持される。パレットの最大サイズおよびパレット予測子は、SPSにおいて信号伝送される。パレット予測子は、各CTU行、各スライス、および各タイルの先頭で初期化される。
パレット予測子の各エントリに対して、それが現在のパレットの一部であるかどうかを示す再利用フラグが信号伝送される。これは、図13に図示されている。
図13は、パレットエントリを信号伝送するためのパレット予測子の使用を示している。図13は、以前のパレット1310および現在のパレット1320を含む。
再利用フラグは、ゼロのランレングス符号化を使用して送られる。この後、次数0の指数ゴロム符号を使用して、新しいパレットエントリの数が信号伝送される。最後に、新しいパレットエントリの成分値が信号伝送される。
パレットインデックスは、図14Aおよび図14Bに示されるように水平移動走査および垂直移動走査を使用して符号化される。走査順序は、palette_transpose_flagを使用してビットストリームにおいて明示的に信号伝送される。
図14Aは、水平移動走査を示している。
図14Bは、垂直移動走査を示している。
パレットインデックスを符号化するために、図15Aおよび図15Bに示されるように移動走査モードに基づいてCUを16個のサンプルを有する複数のセグメントに分割した、ライン係数グループ(CG)ベースのパレットモードが使用され、インデックスラン、パレットインデックス値、およびエスケープモード用の量子化された色が、CGごとに順次に符号化/解析される。
図15Aは、パレットに対するサブブロックベースのインデックスマップ走査を示している。
図15Bは、パレットに対するサブブロックベースのインデックスマップ走査を示している。
パレットインデックスは、2つの主要なパレットサンプルモード「INDEX」および「COPY_ABOVE」を使用して符号化される。前に説明されたように、エスケープ記号には、最大パレットサイズに等しいインデックスが割り当てられる。「COPY_ABOVE」モードでは、上の行内のサンプルのパレットインデックスが複製される。「INDEX」モードでは、パレットインデックスが明示的に信号伝送される。各セグメントにおけるパレット実行符号化の符号化順序は下記のとおりである。
画素ごとに、画素が前の画素と同じモードであるかどうか、すなわち、前の走査された画素と現在の画素がどちらも実行タイプCOPY_ABOVEであるかどうか、前の走査された画素と現在の画素がどちらも実行タイプINDEXであり、同じインデックス値であるかどうかを示す1つのコンテキスト符号化ビンrun_copy_flag=0が信号伝送される。それ以外の場合、run_copy_flag=1が信号伝送される。
画素と前の画素が異なるモードである場合、画素の実行タイプ、すなわちINDEXまたはCOPY_ABOVEを示す1つのコンテキスト符号化ビンcopy_above_palette_indices_flagが信号伝送される。INDEXモードがデフォルトで使用されるので、サンプルが最初の行(水平移動走査)または最初の列(垂直移動走査)にある場合、デコーダは実行タイプを解析する必要はない。また、以前に解析された実行タイプがCOPY_ABOVEである場合、デコーダは実行タイプを解析する必要はない。1つのセグメント内の画素のパレット実行符号化後、INDEXモードのインデックス値(palette_idx_idc)および量子化されたエスケープ色(palette_escape_val)は、バイパス符号化される。
残差および係数の符号化に対する改善
VVCでは、変換係数を符号化するとき、abs_remainderおよびdec_abs_levelの構文を信号伝送するために、統一された(同じ)ライスパラメータ(RicePara)の導出が使用される。唯一の相違点は、abs_remainderおよびdec_abs_levelを符号化するために、基準レベルbaseLevelがそれぞれ4および0に設定されることである。ライスパラメータは、ローカル・テンプレート内の隣接する5つの変換係数の絶対レベルの合計だけでなく、次のような対応する基準レベルにも基づいて決定される。
RicePara=RiceParTable[max(min(31,sumAbs-5*baseLevel),0)]
言い換えれば、構文要素abs_remainderおよびdec_abs_levelの2値符号ワードは、隣接する係数のレベル情報に従って適応的に決定される。この符号ワードの決定はサンプルごとに実行されるので、係数符号化に対するこの符号ワード適応を処理するには追加の論理が必要である。
同様に、変換スキップモード下で残差ブロックを符号化するとき、構文要素abs_remainderの2値符号ワードは、隣接する残差サンプルのレベル情報に従って適応的に決定される。
さらに、残差符号化または変換係数符号化に関連する構文要素を符号化するとき、確率モデルの選択は隣接するレベルのレベル情報に依存し、これにより、追加の論理および追加のコンテキストモデルが必要になる。
現在の設計では、エスケープサンプルの2値化は、3次指数ゴロム2値化プロセスを呼び出すことによって導出される。その性能にはさらに改善の余地がある。
現在のVVCでは、2つの異なるレベルマッピング方式が利用可能であり、それぞれ通常変換および変換スキップに適用される。各レベルマッピング方式は、異なる条件、マッピング関数、およびマッピング位置に関連付けられる。通常変換が適用されるブロックの場合、コンテキスト符号化ビン(CCB)の数が制限を超えた後に、あるレベルマッピング方式が使用される。ZeroPos[n]として示されるマッピング位置およびAbsLevel[xC][yC]として示されるマッピング結果は、表2に指定されているように導出される。変換スキップが適用されるブロックの場合、コンテキスト符号化ビン(CCB)の数が制限を超える前に、別のレベルマッピング方式が使用される。predCoeffとして示されるマッピング位置およびAbsLevel[xC][yC]として示されるマッピング結果は、表5に指定されているように導出される。このような統一されていない設計は、標準化の観点からは最適ではない可能性がある。
HEVCにおける10ビットを超えるプロファイルの場合、extended_precision_processing_flagが1に等しいことは、係数解析および逆変換処理のために拡張ダイナミックレンジが使用されることを指定する。現在のVVCでは、10ビットを超える変換係数の残差符号化または変換スキップ符号化が性能の大幅な低下の原因として報告されている。その性能をさらに改善する余地がある。
提案される手法
本開示では、残差および係数の符号化に対する改善のセクションで述べられた課題に対処するために、いくつかの方法が提案される。以下の方法が単独でまたは組み合わせて適用されてもよいことが留意されるべきである。
本開示の第1の態様によれば、残差符号化において特定の構文要素、例えばabs_remainderを符号化するために2値符号ワードの固定セットを使用することが提案される。2値符号ワードは、様々な方法を使用して形成され得る。いくつかの例示的な方法が下記のように列挙されている。
第1に、abs_remainderの符号ワードを決定するために、現在のVVCで使用されている手順と同じ手順が使用されるが、常に固定ライスパラメータ(例えば、1、2、または3)が選択される。
第2に、固定長2値化である。
第3に、切り捨てライス2値化である。
第4に、切り捨てバイナリ(TB:truncated Binary)2値化プロセスである。
第5に、k次指数ゴロム2値化プロセス(EGk)である。
第6に、限定されたk次指数ゴロム2値化である。
本開示の第2の態様によれば、変換係数符号化において特定の構文要素、例えば、abs_remainderおよびdec_abs_levelを符号化するために、符号ワードの固定セットを使用することが提案される。2値符号ワードは、様々な方法を使用して形成され得る。いくつかの例示的な方法が下記のように列挙されている。
第1に、abs_remainderおよびdec_abs_levelの符号ワードを決定するために、現在のVVCで使用されている手順と同じ手順が使用されるが、固定ライスパラメータ、例えば、1、2、または3が用いられる。現在のVVCで使用されているように、baseLevelの値は、依然としてabs_remainderとdec_abs_levelで異なる可能性がある(例えば、abs_remainderおよびdec_abs_levelを符号化するために、baseLevelはそれぞれ4および0に設定される)。
第2に、abs_remainderおよびdec_abs_levelの符号ワードを決定するために、現在のVVCで使用されている手順と同じ手順が使用されるが、固定ライスパラメータ、例えば、1、2、または3が用いられる。abs_remainderおよびdec_abs_levelのbaseLevelの値は同じになるように、例えば、両方とも0を使用するかまたは両方とも4を使用するように選択される。
第3に、固定長2値化である。
第4に、切り捨てライス2値化である。
第5に、切り捨てバイナリ(TB)2値化プロセスである。
第6に、k次指数ゴロム2値化プロセス(EGk)である。
第7に、限定されたk次指数ゴロム2値化である。
本開示の第3の態様によれば、残差符号化または係数符号化に関連する構文要素(例えば、abs_level_gtx_flag)の符号化に単一のコンテキストを使用することが提案され、隣接する復号されたレベル情報に基づくコンテキスト選択は、除去され得る。
本開示の第4の態様によれば、残差符号化において特定の構文要素、例えばabs_remainderを符号化するために2値符号ワードの可変セットを使用することが提案され、2値符号ワードのセットの選択は、現在のブロックの特定の符号化された情報、例えば、TB/CBおよび/もしくはスライスに関連付けられた量子化パラメータ(QP)、CUの予測モード(例えば、IBCモードまたはイントラもしくはインター)、ならびに/またはスライス・タイプ(例えば、Iスライス、Pスライス、またはBスライス)に従って決定される。2値符号ワードの可変セットを導出するために、様々な方法が使用されてもよく、いくつかの例示的な方法が下記のように列挙されている。
第1に、bs_remainderの符号ワードを決定するために、現在のVVCで使用されている手順と同じ手順が使用されるが、異なるライスパラメータが用いられる。
第2に、k次指数ゴロム2値化プロセス(EGk)である。
第3に、限定されたk次指数ゴロム2値化である。
Figure 2024506156000156
第4の態様において説明されたものと同じ方法が、変換係数符号化に対しても適用可能である。本開示の第5の態様によれば、変換係数符号化において特定の構文要素、例えばabs_remainderおよびdec_abs_levelを符号化するために2値符号ワードの可変セットを使用することが提案され、2値符号ワードのセットの選択は、現在のブロックの特定の符号化された情報、例えば、TB/CBおよび/もしくはスライスに関連付けられた量子化パラメータ(QP)、CUの予測モード(例えば、IBCモードまたはイントラもしくはインター)、ならびに/またはスライス・タイプ(例えば、Iスライス、Pスライス、またはBスライス)に従って決定される。この場合もやはり、2値符号ワードの可変セットを導出するために、様々な方法が使用されてもよく、いくつかの例示的な方法が下記のように列挙されている。
第1に、bs_remainderの符号ワードを決定するために、現在のVVCで使用されている手順と同じ手順が使用されるが、異なるライスパラメータが用いられる。
第2に、k次指数ゴロム2値化プロセス(EGk)である。
第3に、限定されたk次指数ゴロム2値化である。
上記のこれらの方法では、2値符号ワードの異なるセットを導出するために、異なるライスパラメータが使用されてもよい。残差サンプルの所与のブロックについて、使用されるライスパラメータは、隣接レベル情報ではなく、QPCUとして示されるCU QPに従って決定される。表6に示されているように、具体的な一例が例示されており、ここで、TH1からTH4は(TH1<TH2<TH3<TH4)を満たす所定のしきい値であり、K0からK4は所定のライスパラメータである。実際には同じ論理が異なる方法で実装され得ることは留意に値する。例えば、表6に示されるように現在のCUのQP値から同じライスパラメータを導出するために、特定の方程式またはルックアップ・テーブルも使用されてもよい。
本開示の第5の態様によれば、変換係数符号化および/もしくは変換スキップ残差符号化の構文要素のための符号ワード決定に関連するパラメータならびに/またはしきい値のセットが、ビットストリーム内で信号伝送される。決定された符号ワードは、エントロピコーダ、例えば、算術符号化を通じて構文要素を符号化するときに2値化符号ワードとして使用される。
パラメータおよび/またはしきい値のセットが、構文要素の符号ワード決定に関連するすべてのパラメータおよびしきい値の完全なセットまたはサブセットであり得ることが留意されるべきである。パラメータおよび/またはしきい値のセットは、ビデオビットストリームにおいて様々なレベルで信号伝送され得る。例えば、それらは、符号化ツリーユニット(CTU)レベルにおけるシーケンスレベル(例えば、シーケンスパラメータセット)、ピクチャレベル(例えば、ピクチャパラメータセット、および/またはピクチャヘッダ)、スライスレベル(例えば、スライスヘッダ)で、または、符号化ユニット(CU)レベルで信号伝送され得る。
一例では、変換スキップ残差符号化においてabs_remainder構文を符号化するための符号ワードを決定するために使用されるライスパラメータは、スライスヘッダ、ピクチャヘッダ、PPS、および/またはSPSにおいて信号伝送される。信号伝送されたライスパラメータは、CUが変換スキップモードとして符号化されており、CUが上述されたスライスヘッダ、ピクチャヘッダ、PPS、および/またはSPSなどに関連付けられているときに、構文abs_remainderを符号化するための符号ワードを決定するために使用される。
本開示の第6の態様によれば、第1の態様および第2の態様において示された符号ワード決定に関連するパラメータおよび/またはしきい値のセットは、変換係数符号化および/または変換スキップ残差符号化の構文要素のために使用される。また、現在のブロックが輝度残差/係数または彩度残差/係数を含むかどうかに従って異なるセットが使用され得る。決定された符号ワードは、エントロピコーダ、例えば、算術符号化を通じて構文要素を符号化するときに2値化符号ワードとして使用される。
一例では、現在のVVCにおいて使用される変換残差符号化に関連付けられたabs_remainderの符号ワードは、輝度ブロックと彩度ブロックとの両方に使用されるが、異なる固定ライスパラメータが、輝度ブロックおよび彩度ブロックによってそれぞれ使用される。(例えば、輝度ブロックの場合はK1、彩度ブロックの場合はK2であり、K1およびK2は整数である)
本開示の第7の態様によれば、変換係数符号化および/もしくは変換スキップ残差符号化の構文要素のための符号ワード決定に関連するパラメータならびに/またはしきい値のセットが、ビットストリーム内で信号伝送される。また、輝度ブロックおよび彩度ブロックに対して異なるセットが信号伝送され得る。決定された符号ワードは、エントロピコーダ、例えば、算術符号化を通じて構文要素を符号化するときに2値化符号ワードとして使用される。
上記の態様において説明されたものと同じ方法が、パレットモードでのエスケープ値符号化、例えばpalette_escape_valに対しても適用可能である。
本開示の第8の態様によれば、パレットモードでエスケープ値を符号化するための2値符号ワードの異なるセットを導出するために、異なるk次の指数ゴロム2値化が使用されてもよい。一例では、エスケープサンプルの所与のブロックについて、使用される指数ゴロム・パラメータ、すなわち、値kは、QPCUとして示されるブロックのQP値に従って決定される。ブロックの所与のQP値に基づいてパラメータkの値を導出する際に、表6に示されているものと同じ例が使用され得る。その例では、異なる4つのしきい値(TH1からTH4まで)が列挙されており、これらのしきい値およびQPCUに基づいて5つの異なるk値(K0からK4まで)が導出され得るが、しきい値の数は説明のみを目的としていることは言及に値する。実際には、QP値範囲全体を異なる数のQP値セグメントに区分化するために、異なる数のしきい値が使用されてもよく、QP値セグメントごとに、パレットモードで符号化されたブロックのエスケープ値を符号化するための対応する2値符号ワードを導出するために、異なるk値が使用されてもよい。実際には同じ論理が異なる方法で実装され得ることも留意に値する。例えば、例えば、同じライスパラメータを導出するために、特定の方程式またはルックアップ・テーブルが使用されてもよい。
本開示の第9の態様によれば、エスケープサンプルの構文要素のための符号ワード決定に関連するパラメータおよび/またはしきい値のセットが、ビットストリーム内で信号伝送される。決定された符号ワードは、エントロピコーダ、例えば、算術符号化を通じて構文要素を符号化するときに2値化符号ワードとして使用される。
パラメータおよび/またはしきい値のセットが、構文要素の符号ワード決定に関連するすべてのパラメータおよびしきい値の完全なセットまたはサブセットであり得ることが留意されるべきである。パラメータおよび/またはしきい値のセットは、ビデオビットストリームにおいて様々なレベルで信号伝送され得る。例えば、それらは、符号化ツリーユニット(CTU)レベルにおけるシーケンスレベル(例えば、シーケンスパラメータセット)、ピクチャレベル(例えば、ピクチャパラメータセット、および/またはピクチャヘッダ)、スライスレベル(例えば、スライスヘッダ)で、または、符号化ユニット(CU)レベルで信号伝送され得る。
本態様による一例では、パレットモードでpalate_escape_val構文を符号化するための符号ワードを決定するために、k次の指数ゴロム2値化が使用され、値kは、ビットストリームにおいてデコーダに信号伝送される。値kは、様々なレベルで信号伝送されてもよく、例えば、値kは、スライスヘッダ、ピクチャヘッダ、PPS、および/またはSPSなどにおいて信号伝送されてもよい。信号伝送された指数ゴロム・パラメータは、CUがパレットモードとして符号化され、CUが上述されたスライスヘッダ、ピクチャヘッダ、PPSおよび/またはSPSなどに関連付けられているときに、構文palette_escape_valを符号化するための符号ワードを決定するために使用される。
変換スキップモードおよび通常変換モードのためのレベルマッピングの調和
本開示の第10の態様によれば、変換スキップモードと通常変換モードの両方について、レベルマッピングを適用するための同じ条件が使用される。一例では、変換スキップモードと通常変換モードとの両方について、コンテキスト符号化ビン(CCB)の数が制限を超えた後にレベルマッピングを適用することが提案される。別の例では、変換スキップモードと通常変換モードとの両方について、コンテキスト符号化ビン(CCB)の数が制限を超える前にレベルマッピングを適用することが提案される。
本開示の第11の態様によれば、変換スキップモードと通常変換モードとの両方について、レベルマッピングにおけるマッピング位置を導出するための同じ方法が使用される。一例では、変換スキップモード下で使用されるレベルマッピングにおけるマッピング位置の導出方法を通常変換モードにも適用することが提案される。別の例では、通常変換モード下で使用されるレベルマッピングにおけるマッピング位置の導出方法を変換スキップモードにも適用することが提案される。
本開示の第12の態様によれば、変換スキップモードと通常変換モードとの両方に同じレベルマッピング方法が適用される。一例では、変換スキップモード下で使用されるレベルマッピング関数を通常変換モードにも適用することが提案される。別の例では、通常変換モード下で使用されるレベルマッピング関数を変換スキップモードにも適用することが提案される。
残差符号化におけるライスパラメータ導出の簡略化
本開示の第13の態様によれば、ゴロムライス符号を使用して構文要素abs_remainder/dec_abs_levelを符号化する際のライスパラメータの導出のために、ルックアップ・テーブルの代わりにシフト演算または除算演算などの単純な論理を使用することが提案される。現在の開示によれば、表4に指定されているようなルックアップ・テーブルは除去されてもよい。一例では、ライスパラメータcRiceParamは、cRiceParam=(locSumAbs>>n)として導出され、ここで、nは正の数、例えば3である。実際には、同じ結果を達成するために他の異なる論理、例えば2のn乗に等しい値による除算演算が使用されてもよいことは留意に値する。VVC草案に基づく対応する復号プロセスの一例が以下に示されており、変更箇所は太字の斜体フォントで示され、削除された内容は斜体フォントで示されている。
Figure 2024506156000157
本開示の第14の態様によれば、ゴロムライス符号を使用して構文要素abs_remainder/dec_abs_levelを符号化する際のライスパラメータの導出のために、より少ない隣接位置を使用することが提案される。一例では、構文要素abs_remainder/dec_abs_levelを符号化する際のライスパラメータの導出のために、2つの隣接位置のみを使用することが提案される。VVC草案に基づく対応する復号プロセスが以下に示されており、変更箇所は太字の斜体フォントで示され、削除された内容は斜体フォントで示されている。
Figure 2024506156000158
別の例では、構文要素abs_remainder/dec_abs_levelを符号化する際のライスパラメータの導出のために、1つの隣接位置のみを使用することが提案される。VVC草案に基づく対応する復号プロセスが以下に示されており、変更箇所は太字の斜体フォントで示され、削除された内容は斜体フォントで示されている。
Figure 2024506156000159
本開示の第15の態様によれば、ゴロムライス符号を使用して構文要素abs_remainder/dec_abs_levelを符号化する際のライスパラメータの導出のために、baseLevelの値に基づいてlocSumAbsの値を調整するための異なる論理を使用することが提案される。一例では、追加のスケール演算およびオフセット演算が「(locSumAbs-BaseLevel*5)*alpha+beta」の形式で適用される。アルファが1.5という値をとり、ベータが1という値をとるときの、VVC草案に基づく対応する復号プロセスが以下に示されており、変更箇所は太字の斜体フォントで示され、削除された内容は斜体フォントで示されている。
Figure 2024506156000160
本開示の第16の態様によれば、ゴロムライス符号を使用した構文要素abs_remainder/dec_abs_levelにおけるライスパラメータ導出のために、クリップ演算を除去することが提案される。現在の開示によれば、VVC草案の復号プロセスの一例が以下に示されており、変更箇所は太字の斜体フォントで示され、削除された内容は斜体フォントで示されている。
Figure 2024506156000161
現在の開示によれば、VVC草案の復号プロセスの一例が以下に示されており、変更箇所は太字の斜体フォントで示され、削除された内容は斜体フォントで示されている。
Figure 2024506156000162
本開示の第17の態様によれば、ゴロムライス符号を使用して構文要素abs_remainder/dec_abs_levelを符号化する際のライスパラメータの導出のために、locSumAbsの初期値を0から非ゼロ整数に変更することが提案される。一例では、初期値1がlocSumAbsに割り当てられ、VVC草案に基づく対応する復号プロセスが以下に示されており、変更箇所は太字の斜体フォントで示され、削除された内容は斜体フォントで示されている。
Figure 2024506156000163
本開示の第18の態様によれば、ゴロムライス符号を使用して構文要素abs_remainder/dec_abs_levelを符号化する際のライスパラメータの導出のために、隣接位置レベル値の合計値の代わりに隣接位置レベル値の最大値を使用することが提案される。VVC草案に基づく対応する復号プロセスの一例が以下に示されており、変更箇所は太字の斜体フォントで示され、削除された内容は斜体フォントで示されている。
Figure 2024506156000164
本開示の第19の態様によれば、ゴロムライス符号を使用して構文要素abs_remainder/dec_abs_levelを符号化する際に、隣接位置における各AbsLevel値の相対振幅および基準レベル値に基づいてライスパラメータを導出することが提案される。一例では、ライスパラメータは、隣接位置におけるAbsLevel値のうちのどれだけが基準レベルよりも大きいかに基づいて導出される。VVC草案に基づく対応する復号プロセスの一例が以下に示されており、変更箇所は太字の斜体フォントで示され、削除された内容は斜体フォントで示されている。
Figure 2024506156000165
別の例では、ライスパラメータは、AbsLevel値が基準レベルより大きい隣接位置の(AbsLevel-BaseLevel)値の合計に基づいて導出される。VVC草案に基づく対応する復号プロセスの一例が以下に示されており、変更箇所は太字の斜体フォントで示され、削除された内容は斜体フォントで示されている。
Figure 2024506156000166
現在の開示によれば、VVC草案の復号プロセスの一例が以下に示されており、変更箇所は太字の斜体フォントで示され、削除された内容は斜体フォントで示されている。
Figure 2024506156000167
残差符号化におけるレベルマッピング位置導出の簡略化
本開示の第20の態様によれば、ZeroPos[n]がcRiceParamからのみ導出されるように、ZeroPos[n]の導出からQStateを除去することが提案される。VVC草案に基づく対応する復号プロセスの一例が以下に示されており、変更箇所は太字の斜体フォントで示され、削除された内容は斜体フォントで示されている。
Figure 2024506156000168
本開示の第21の態様によれば、locSumAbsの値に基づいてZeroPos[n]を導出することが提案される。VVC草案に基づく対応する復号プロセスの一例が以下に示されており、変更箇所は太字の斜体フォントで示され、削除された内容は斜体フォントで示されている。
Figure 2024506156000169
本開示の第22の態様によれば、隣接する位置のAbsLevelの値に基づいてZeroPos[n]を導出することが提案される。一例では、ZeroPos[n]は、AbsLevel[xC+1][yC]およびAbsLevel[xC][yC+1]のうちの最大値に基づいて導出される。VVC草案に基づく対応する復号プロセスの一例が以下に示されており、変更箇所は太字の斜体フォントで示され、削除された内容は斜体フォントで示されている。
Figure 2024506156000170
本開示の第23の態様によれば、隣接する位置のすべてのAbsLevel値の最大値に基づいてcRiceParamとZeroPos[n]との両方を導出することが提案される。VVC草案に基づく対応する復号プロセスの一例が以下に示されており、変更箇所は太字の斜体フォントで示され、削除された内容は斜体フォントで示されている。
Figure 2024506156000171
上記の態様において説明されたものと同じ方法が、変換スキップモードの残差符号化におけるpredCoeffの導出にも適用可能である。一例では、変数predCoeffは下記のように導出される。
predCoeff=Max(absLeftCoeff,absAboveCoeff)+1
変換係数の残差符号化
本開示では、「残差および係数の符号化に対する改善」セクションで指摘された問題に対処するために、残差符号化の既存の設計を簡素化および/またはさらに改善するための方法が提供される。概して、本開示で提案される技術の主な特徴は、下記のように要約される。
第1に、通常の残差符号化の下で使用されるライスパラメータ導出を現在の設計に基づいて調整する。
第2に、通常の残差符号化の下で使用される2値法を変更する。
第3に、通常の残差符号化の下で使用されるライスパラメータ導出を変更する。
現在の設計に基づく残差符号化におけるライスパラメータ導出
本開示の第24の態様によれば、残差符号化において特定の構文要素、例えばabs_remainder/dec_abs_levelを符号化するためにライスパラメータ導出の可変方法を使用することが提案され、現在のブロックの特定の符号化された情報、例えばTB/CBおよび/もしくはスライス/プロファイルに関連付けられた量子化パラメータもしくは符号化ビット深度に従って、かつ/または、TB/CB/スライス/ピクチャ/シーケンスレベルに関連付けられた新しいフラグ、例えばextended_precision_processing_flagに従って、選択結果が決定される。ライスパラメータを導出するために様々な方法が使用されてもよく、いくつかの例示的な方法が下記に列挙されている。
第1に、cRiceParam=(cRiceParam<<a)+(cRiceParam>>b)+cであり、ここで、a、b、およびcは正の数、例えば{a,b,c}={1,1,0}である。実際には、同じ結果を達成するために他の異なる論理、例えば2のn乗に等しい値による乗算演算が使用されてもよいことは留意に値する。
第2に、cRiceParam=(cRiceParam<<a)+bであり、ここで、aおよびbは正の数、例えば{a,b}={1,1}である。実際には、同じ結果を達成するために他の異なる論理、例えば2のn乗に等しい値による乗算演算が使用されてもよいことは留意に値する。
第3に、cRiceParam=(cRiceParam*a)+bであり、ここで、aおよびbは正の数、例えば{a,b}={1.5,0}である。実際には、同じ結果を達成するために他の異なる論理、例えば2のn乗に等しい値による乗算演算が使用されてもよいことは留意に値する。
VVC草案に基づく対応する復号プロセスの一例が以下に示されており、変更箇所は太字の斜体フォントで示され、削除された内容は斜体フォントで示されている。VVC草案に対する変更箇所は表22に太字の斜体のフォントで示されている。実際には同じ論理が異なる方法で実装され得ることは留意に値する。例えば、現在のCU/シーケンスのBitDepth値から同じライスパラメータを導出するために、特定の方程式またはルックアップ・テーブルも使用されてもよい。
Figure 2024506156000172
Figure 2024506156000173
別の例では、BitDepthが所定のしきい値(例えば、10、11、12、13、14、15、または16)以上であるとき、ライスパラメータcRiceParamは、cRiceParam=(cRiceParam<<a)+(cRiceParam>>b)+cとして導出され、ここで、a、b、およびcは正の数、例えば1である。VVC草案に基づく対応する復号プロセスが以下に示されており、変更箇所は太字の斜体フォントで示され、削除された内容は斜体フォントで示されている。VVC草案に対する変更箇所は、表23に太字の斜体フォントで示されている。実際には同じ論理が異なる方法で実装され得ることは留意に値する。例えば、現在のCU/シーケンスのBitDepth値から同じライスパラメータを導出するために、特定の方程式またはルックアップ・テーブルも使用されてもよい。
Figure 2024506156000174
Figure 2024506156000175
10ビットを超えるプロファイルの残差符号化における2値法
本開示の第25の態様によれば、残差符号化において特定の構文要素、例えばabs_remainder/dec_abs_levelを符号化するために2値符号ワードの可変セットを使用することが提案され、現在のブロックの特定の符号化された情報、例えばTB/CBおよび/もしくはスライス/プロファイルに関連付けられた量子化パラメータもしくは符号化ビット深度に従って、かつ/または、TB/CB/スライス/ピクチャ/シーケンスレベルに関連付けられた新しいフラグ、例えばextended_precision_processing_flagに従って、選択結果が決定される。2値符号ワードの可変セットを導出するために様々な方法が使用されてもよく、いくつかの例示的な方法が下記に列挙されている。
第1に、abs_remainderの符号ワードを決定するために、現在のVVCで使用されている手順と同じ手順が使用されるが、常に固定ライスパラメータ(例えば、2、3、4、5、6、7、または8)が選択される。固定値は、現在のブロックの特定の符号化された情報、例えばTB/CBおよび/もしくはスライス/プロファイルに関連付けられた量子化パラメータもしくは符号化ビット深度に従って、かつ/または、TB/CB/スライス/ピクチャ/シーケンスレベルに関連付けられた構文要素、例えばrice_parameter_valueに従って、異なる条件において異なる場合がある。表24に示されているように、具体的な一例が例示されており、ここで、TH1からTH4は(TH1<TH2<TH3<TH4)を満たす所定のしきい値であり、K0からK4は所定のライスパラメータである。実際には同じ論理が異なる方法で実装され得ることは留意に値する。例えば、表24に示されるように現在のCU/シーケンスのBitDepth値から同じライスパラメータを導出するために、特定の方程式またはルックアップ・テーブルも使用されてもよい。
第2に、固定長2値化である。
第3に、切り捨てライス2値化である。
第4に、切り捨てバイナリ(TB)2値化プロセスである。
第5に、k次指数ゴロム2値化プロセス(EGk)である。
第6に、限定されたk次指数ゴロム2値化である。
Figure 2024506156000176
一例では、新しいフラグ、例えばextended_precision_processing_flagが1に等しいとき、ライスパラメータcRiceParamは、nとして固定され、ここで、nは正の数(例えば、2、3、4、5、6、7、または8)である。固定値は、異なる条件において異なる場合がある。VVC草案に基づく対応する復号プロセスの一例が以下に示されており、変更箇所は太字の斜体フォントで示され、削除された内容は斜体フォントで示されている。VVC草案に対する変更箇所は、表25に太字の斜体フォントで示されている。
Figure 2024506156000177
別の例では、新しいフラグ、例えばextended_precision_processing_flagが1に等しいとき、構文要素abs_remainder/dec_abs_levelを符号化する際のライスパラメータに対して1つの固定値のみを使用することが提案される。VVC草案に基づく対応する復号プロセスが以下に示されており、変更箇所は太字の斜体フォントで示され、削除された内容は斜体フォントで示されている。VVC草案に対する変更箇所は、表26に太字の斜体フォントで示されている。
Figure 2024506156000178
さらに別の例では、BitDepthが所定のしきい値(例えば、10、11、12、13、14、15、または16)以上であるとき、ライスパラメータcRiceParamは、nとして固定され、nは正の数、例えば4、5、6、7、または8である。固定値は、異なる条件において異なる場合がある。VVC草案に基づく対応する復号プロセスの一例が以下に示されており、THは、所定のしきい値(例えば、10、11、12、13、14、15、または16)である。VVC草案に対する変更箇所は、表27に太字の斜体フォントで示されており、変更箇所は太字の斜体で、削除された内容は斜体で示されている。
Figure 2024506156000179
さらに別の例では、BitDepthが所定のしきい値(例えば、10、11、12、13、14、15、または16)より大きいとき、構文要素abs_remainder/dec_abs_levelを符号化する際のライスパラメータに対して1つの固定値のみを使用することが提案される。VVC草案に基づく対応する復号プロセスが以下に示されており、THは所定のしきい値(例えば、10、11、12、13、14、15、または16)であり、変更箇所は太字の斜体フォントで示され、削除された内容は斜体フォントで示されている。VVC草案に対する変更箇所は、表28に太字の斜体フォントで示されている。
Figure 2024506156000180
残差符号化におけるライスパラメータ導出
本開示の第26の態様によれば、残差符号化において特定の構文要素、例えばabs_remainder/dec_abs_levelを符号化するためにライスパラメータ導出の可変方法を使用することが提案され、現在のブロックの特定の符号化された情報、例えばTB/CBおよび/もしくはスライス/プロファイルに関連付けられた量子化パラメータもしくは符号化ビット深度に従って、かつ/または、TB/CB/スライス/ピクチャ/シーケンスレベルに関連付けられた新しいフラグ、例えばextended_precision_processing_flagに従って、選択結果が決定される。ライスパラメータを導出するために様々な方法が使用されてもよく、いくつかの例示的な方法が下記に列挙されている。
第1に、ライスパラメータを導出するためにカウンタを使用することが提案される。カウンタは、符号化された係数の値、および現在のブロックの特定の符号化された情報、例えば成分IDに従って決定される。具体的な一例は、riceParameter=counter/aであり、ここで、aは正の数、例えば4であり、これは(輝度/彩度によって分解された)2つのカウンタを維持する。これらのカウンタは、各スライスの開始時に0にリセットされる。符号化されると、カウンタは、これがサブTU内で符号化された最初の係数である場合、下記のように更新される。
if(coeffValue>=(3<<rice))counter++
if(((coeffValue<<1)<(1<<riceParameter))&&(counter>0))counter--
第2に、VVCにおけるライスパラメータの導出においてシフト演算を追加することが提案される。シフトは、符号化された係数の値に従って決定される。VVC草案に基づく対応する復号プロセスの一例が以下に示されており、シフトは方法1のカウンタに従って決定され、変更箇所は太字の斜体フォントで示され、削除された内容は斜体フォントで示されている。VVC草案に対する変更箇所は、表29に太字の斜体フォントで示されている。
Figure 2024506156000181
第1に、VVCにおけるライスパラメータの導出においてシフト演算を追加することが提案される。シフトは、現在のブロックの特定の符号化された情報、例えばTB/CBおよび/またはスライス・プロファイル(例えば、14ビット・プロファイルまたは16ビット・プロファイル)に関連付けられた符号化ビット深度に従って決定される。VVC草案に基づく対応する復号プロセスの一例が以下に示されており、シフトは方法1のカウンタに従って決定され、変更箇所は太字の斜体フォントで示され、削除された内容は斜体フォントで示されている。VVC草案に対する変更箇所は、表30に太字の斜体フォントで示されている。
Figure 2024506156000182
変換スキップの残差符号化
本開示の第27の態様によれば、変換スキップ残差符号化において特定の構文要素、例えばabs_remainderを符号化するために2値符号ワードの可変セットを使用することが提案され、現在のブロックの特定の符号化された情報、例えばTB/CBおよび/もしくはスライス/プロファイルに関連付けられた量子化パラメータもしくは符号化ビット深度に従って、かつ/または、TB/CB/スライス/ピクチャ/シーケンスレベルに関連付けられた新しいフラグ、例えばextended_precision_processing_flagに従って、選択結果が決定される。2値符号ワードの可変セットを導出するために様々な方法が使用されてもよく、いくつかの例示的な方法が下記に列挙されている。
第1に、abs_remainderの符号ワードを決定するために、現在のVVCで使用されている手順と同じ手順が使用されるが、常に固定ライスパラメータ(例えば、2、3、4、5、6、7、または8)が選択される。固定値は、現在のブロックの特定の符号化された情報、例えば、TB/CBおよび/もしくはスライス/プロファイルに関連付けられた量子化パラメータ、フレーム・タイプ(例えば、I、P、もしくはB)、成分ID(例えば、輝度もしくは彩度)、色フォーマット(例えば、420、422、もしくは444)、もしくは符号化ビット深度に従って、かつ/または、TB/CB/スライス/ピクチャ/シーケンスレベルに関連付けられた構文要素、例えばrice_parameter_valueに従って、異なる条件において異なる場合がある。表7に示されているように、具体的な一例が例示されており、ここで、TH1からTH4は(TH1<TH2<TH3<TH4)を満たす所定のしきい値であり、K0からK4は所定のライスパラメータである。実際には同じ論理が異なる方法で実装され得ることは留意に値する。例えば、表7に示されるように現在のCU/シーケンスのBitDepth値から同じライスパラメータを導出するために、特定の方程式またはルックアップ・テーブルも使用されてもよい。
第2に、固定長2値化である。
第3に、切り捨てライス2値化である。
第4に、切り捨てバイナリ(TB)2値化プロセスである。
第5に、k次指数ゴロム2値化プロセス(EGk)である。
第6に、限定されたk次指数ゴロム2値化である。
VVC草案に基づく対応する復号プロセスの一例が以下に示されており、VVC草案に対する変更箇所は表31に太字の斜体フォントで示されており、削除された内容は斜体フォントで示されている。実際には同じ論理が異なる方法で実装され得ることは留意に値する。例えば、同じライスパラメータを導出するために、特定の方程式またはルックアップ・テーブルも使用されてもよい。
Figure 2024506156000183
別の例では、新しいフラグ、例えばextended_precision_processing_flagが1に等しいとき、abs_remainderの構文要素を符号化する際にライスパラメータに1つの固定値のみを使用することが提案される。VVC草案に基づく対応する復号プロセスが以下に示されており、変更箇所は太字の斜体フォントで示され、削除された内容は斜体フォントで示されている。VVC草案に対する変更箇所は、表32に太字の斜体フォントで示されている。
Figure 2024506156000184
さらに別の例では、新しいフラグ、例えばextended_precision_processing_flagが1に等しいとき、ライスパラメータcRiceParamはnに固定され、nは正の数(例えば2、3、4、5、6、7または8)である。固定値は、異なる条件において異なる場合がある。VVC草案に基づく対応する復号プロセスの一例が以下に示されており、変更箇所は太字の斜体フォントで示され、削除された内容は斜体フォントで示されている。VVC草案に対する変更箇所は、表33に太字の斜体フォントで示されている。
Figure 2024506156000185
さらに別の例では、BitDepthが所定のしきい値(例えば、10、11、12、13、14、15または16)以上であるとき、ライスパラメータcRiceParamはnに固定され、nは正の数、例えば、4、5、6、7、または8である。固定値は、異なる条件において異なる場合がある。VVC草案に基づく対応する復号プロセスの一例が以下に示されており、THは所定のしきい値(例えば、10、11、12、13、14、15、または16)であり、変更箇所は太字の斜体フォントで示され、削除された内容は斜体フォントで示されている。VVC草案に対する変更箇所は、表34に太字の斜体フォントで示されている。
Figure 2024506156000186
さらに別の例では、変換スキップブロックのためのライスパラメータの信号伝送が有効であるか無効であるかを示すために、1つの制御フラグがスライスヘッダ内で信号伝送される。制御フラグが有効として信号伝送されるとき、変換スキップスライスごとにそのスライスのライスパラメータを示すために1つの構文要素がさらに信号伝送される。制御フラグが無効として信号伝送されるとき(例えば、「0」に等しくなるように設定されるとき)、変換スキップスライスのライスパラメータを示すために下位レベルでそれ以上の構文要素は信号伝送されず、デフォルトのライスパラメータ(例えば、1)がすべての変換スキップスライスに対して使用される。VVC草案に基づく対応する復号プロセスの一例が以下に示されており、THは所定の値(例えば、0、1、2)であり、変更箇所は太字の斜体フォントで示され、削除された内容は斜体フォントで示されている。VVC草案に対する変更箇所は、表35に太字の斜体フォントで示されている。sh_ts_residual_coding_rice_indexは様々な方法で符号化されることが可能であり、かつ/または最大値を有し得ることは留意に値する。例えば、同じ構文要素を符号化/復号するために、nビットを使用する符号なし整数であるu(n)、または左ビットを最初に(左から右に)記述された、nビットを使用する固定パターン・ビット列であるf(n)も使用されてもよい。
スライスヘッダ構文
Figure 2024506156000187
sh_ts_residual_coding_rice_flagが1に等しいことは、現在のスライス内にsh_ts_residual_coding_rice_indexが存在する可能性があることを指定する。sh_ts_residual_coding_rice_flagが0に等しいことは、現在のスライス内にsh_ts_residual_coding_rice_indexが存在しないことを指定する。sh_ts_residual_coding_rice_flagが存在しないとき、sh_ts_residual_coding_rice_flagの値は0に等しいと推論される。sh_ts_residual_coding_rice_indexは、residual_ts_coding()構文構造に使用されるライスパラメータを指定する。
Figure 2024506156000188
さらに別の例では、変換スキップブロックのためのライスパラメータの信号伝送が有効であるか無効であるかを示すために、1つの制御フラグがシーケンスパラメータセット内(またはシーケンスパラメータセット範囲拡張構文内)で信号伝送される。制御フラグが有効として信号伝送されるとき、変換スキップスライスごとにそのスライスのライスパラメータを示すために1つの構文要素がさらに信号伝送される。制御フラグが無効として信号伝送されるとき(例えば、「0」に等しくなるように設定されるとき)、変換スキップスライスのライスパラメータを示すために下位レベルでそれ以上の構文要素は信号伝送されず、デフォルトのライスパラメータ(例えば、1)がすべての変換スキップスライスに対して使用される。VVC草案に基づく対応する復号プロセスの一例が以下に示されており、THは、所定の値(例えば、0、1、2)である。VVC草案に対する変更箇所は表37に太字の斜体で示されており、削除された内容は斜体で示されている。sh_ts_residual_coding_rice_idxは様々な方法で符号化されることが可能であり、かつ/または最大値を有し得ることは留意に値する。例えば、同じ構文要素を符号化/復号するために、nビットを使用する符号なし整数であるu(n)、または左ビットを最初に(左から右に)記述された、nビットを使用する固定パターン・ビット列であるf(n)も使用されてもよい。
シーケンスパラメータセットRBSP構文
Figure 2024506156000189
sps_ts_residual_coding_rice_present_in_sh_flagが1に等しいことは、SPSを参照するSH構文構造内にsh_ts_residual_coding_rice_idxが存在する可能性があることを指定する。sps_ts_residual_coding_rice_present_in_sh_flagが0に等しいことは、SPSを参照するSH構文構造内にsh_ts_residual_coding_rice_idxが存在しないことを指定する。sps_ts_residual_coding_rice_present_in_sh_flagが存在しないとき、sps_ts_residual_coding_rice_present_in_sh_flagの値は0に等しいと推論される。
スライスヘッダ構文
Figure 2024506156000190
sh_ts_residual_coding_rice_idxは、residual_ts_coding()構文構造に使用されるライスパラメータを指定する。
Figure 2024506156000191
さらに別の例では、変換スキップスライスごとにそのスライスのライスパラメータを示すために1つの構文要素が信号伝送される。VVC草案に基づく対応する復号プロセスの一例が以下に示されている。VVC草案に対する変更箇所は、表40に太字の斜体フォントで示されている。sh_ts_residual_coding_rice_idxは様々な方法で符号化されることが可能であり、かつ/または最大値を有し得ることは留意に値する。例えば、同じ構文要素を符号化/復号するために、nビットを使用する符号なし整数であるu(n)、または左ビットを最初に(左から右に)記述された、nビットを使用する固定パターン・ビット列であるf(n)も使用されてもよい。
スライスヘッダ構文
Figure 2024506156000192
sh_ts_residual_coding_rice_idxは、residual_ts_coding()構文構造に使用されるライスパラメータを指定する。sh_ts_residual_coding_rice_idxが存在しない場合、sh_ts_residual_coding_rice_idxの値は0に等しいと推論される。
Figure 2024506156000193
さらに別の例では、変換スキップブロックのためのライスパラメータの信号伝送が有効であるか無効であるかを示すために、1つの制御フラグがピクチャパラメータセット範囲拡張構文内で信号伝送される。制御フラグが有効として信号伝送されるとき、そのピクチャのライスパラメータを示すために1つの構文要素がさらに信号伝送される。制御フラグが無効として信号伝送されるとき(例えば、「0」に等しくなるように設定されるとき)、変換スキップスライスのライスパラメータを示すために下位レベルでそれ以上の構文要素は信号伝送されず、デフォルトのライスパラメータ(例えば、1)がすべての変換スキップスライスに対して使用される。VVC草案に基づく対応する復号プロセスの一例が以下に示されており、THは、所定の値(例えば、0、1、2)である。VVC草案に対する変更箇所は、表42に太字の斜体フォントで示されている。pps_ts_residual_coding_rice_idxは様々な方法で符号化されることが可能であり、かつ/または最大値を有し得ることは留意に値する。例えば、同じ構文要素を符号化/復号するために、nビットを使用する符号なし整数であるu(n)、または左ビットを最初に(左から右に)記述された、nビットを使用する固定パターン・ビット列であるf(n)も使用されてもよい。
ピクチャパラメータセット範囲拡張構文
Figure 2024506156000194
pps_ts_residual_coding_rice_flagが1に等しいことは、現在のピクチャ内にpps_ts_residual_coding_rice_indexが存在する可能性があることを指定する。pps_ts_residual_coding_rice_flagが0に等しいことは、現在のピクチャ内にpps_ts_residual_coding_rice_idxが存在しないことを指定する。pps_ts_residual_coding_rice_flagが存在しないとき、pps_ts_residual_coding_rice_flagの値は0に等しいと推論される。
pps_ts_residual_coding_rice_idxは、residual_ts_coding()構文構造に使用されるライスパラメータを指定する。
Figure 2024506156000195
さらに別の例では、構文要素abs_remainderの符号化のために可変ライスパラメータのみを使用することが提案される。適用されるライスパラメータの値は、現在のブロックの特定の符号化された情報、例えばブロックサイズ、量子化パラメータ、ビット深度、変換タイプなどに従って決定されてもよい。特定の一実施形態では、符号化ビット深度および1つのCUに適用される量子化パラメータに基づいてライスパラメータを調整することが提案される。VVC草案に基づく対応する復号プロセスが以下に示されており、VVC草案に対する変更箇所は表44に太字の斜体フォントで示されており、削除された内容は斜体フォントで示されている。実際には同じ論理が異なる方法で実装され得ることは留意に値する。例えば、同じライスパラメータを導出するために、特定の方程式またはルックアップ・テーブルも使用されてもよい。
Figure 2024506156000196
Figure 2024506156000197
Figure 2024506156000198
さらに別の例では、VVC草案に基づく対応する復号プロセスが以下に示されており、THは、所定のしきい値(例えば、33または34)である。VVC草案に対する変更箇所は、表45に太字の斜体フォントで示されており、削除された内容は斜体で示されている。実際には同じ論理が異なる方法で実装され得ることは留意に値する。例えば、同じライスパラメータを導出するために、特定の方程式またはルックアップ・テーブルも使用されてもよい。
Figure 2024506156000199
さらに別の例では、VVC草案に基づく対応する復号プロセスが以下に示されており、THおよびTHは所定のしきい値(例えば、TH=8、TH=33または34)である。VVC草案に対する変更箇所は、表46に太字の斜体で示されており、削除された内容は斜体で示されている。実際には同じ論理が異なる方法で実装され得ることは留意に値する。例えば、同じライスパラメータを導出するために、特定の方程式またはルックアップ・テーブルも使用されてもよい。
Figure 2024506156000200
さらに別の例では、新しいフラグ、例えばextended_precision_processing_flagが1に等しいとき、abs_remainderの構文要素の符号化に可変ライスパラメータのみを使用することが提案される。可変値は、現在のブロックの特定の符号化された情報、例えば、ブロックサイズ、量子化パラメータ、ビット深度、変換タイプなどに従って決定されてもよい。特定の一実施形態では、符号化ビット深度および1つのCUに適用される量子化パラメータに基づいてライスパラメータを調整することが提案される。VVC草案に基づく対応する復号プロセスが以下に示されている。VVC草案に対する変更箇所は、表47に太字の斜体フォントで示されている。実際には同じ論理が異なる方法で実装され得ることは留意に値する。例えば、同じライスパラメータを導出するために、特定の方程式またはルックアップ・テーブルも使用されてもよい。
Figure 2024506156000201
Figure 2024506156000202
さらに別の例では、VVC草案に基づく対応する復号プロセスが以下に示されており、THは、所定のしきい値(例えば、18、19)である。VVC草案に対する変更箇所は、表48に太字の斜体フォントで示されている。実際には同じ論理が異なる方法で実装され得ることは留意に値する。例えば、同じライスパラメータを導出するために、特定の方程式またはルックアップ・テーブルも使用されてもよい。
Figure 2024506156000203
さらに別の例では、VVC草案に基づく対応する復号プロセスが以下に示されており、THおよびTHは所定のしきい値(例えば、TH=8、TH=18または19)である。VVC草案に対する変更箇所は、表49に太字の斜体フォントで示されている。実際には同じ論理が異なる方法で実装され得ることは留意に値する。例えば、同じライスパラメータを導出するために、特定の方程式またはルックアップ・テーブルも使用されてもよい。
Figure 2024506156000204
図16は、ビデオ符号化のための方法を示している。方法は、例えばエンコーダに適用されてもよい。ステップ1610において、エンコーダは、ビデオ入力を受信してもよい。ビデオ入力は、例えばライブ・ストリームであってもよい。ステップ1612において、エンコーダは、ビデオ入力に基づいて量子化パラメータを取得してもよい。量子化パラメータは、例えば、エンコーダ内の量子化ユニットによって算出されてもよい。ステップ1614において、エンコーダは、少なくとも1つの所定のしきい値、符号化ビット深度、および量子化パラメータに基づいてライスパラメータを導出してもよい。ライスパラメータは、例えば、abs_remainderおよびdec_abs_levelの構文を信号伝送するために使用される。ステップ1616において、エンコーダは、ライスパラメータに基づいてビデオビットストリームをエントロピ符号化してもよい。ビデオビットストリームは、例えば、圧縮されたビデオビットストリームを生成するためにエントロピ符号化されてもよい。
さらに別の例では、BitDepthが10より大きいとき、abs_remainderの構文要素を符号化する際にライスパラメータに固定値(例えば、2、3、4、5、6、7、または8)のみを使用することが提案される。固定値は、現在のブロックの特定の符号化された情報、例えば、量子化パラメータに従って、異なる条件において異なる場合がある。VVC草案に基づく対応する復号プロセスが以下に示されており、THは、所定のしきい値(例えば、18、19)である。VVC草案に対する変更箇所は、表50に太字の斜体フォントで示されている。実際には同じ論理が異なる方法で実装され得ることは留意に値する。例えば、同じライスパラメータを導出するために、特定の方程式またはルックアップ・テーブルも使用されてもよい。
Figure 2024506156000205
さらに別の例では、VVC草案に基づく対応する復号プロセスが以下に示されており、THおよびTHは、所定のしきい値(例えば、TH=8、TH=18または19)である。VVC草案に対する変更箇所は、表51に太字の斜体フォントで示されている。実際には同じ論理が異なる方法で実装され得ることは留意に値する。例えば、同じライスパラメータを導出するために、特定の方程式またはルックアップ・テーブルも使用されてもよい。
Figure 2024506156000206
さらに別の例では、VVC草案に基づく対応する復号プロセスが以下に示されており、THは、所定のしきい値(例えば、33または34)である。VVC草案に対する変更箇所は、表52に太字の斜体フォントで示されている。実際には同じ論理が異なる方法で実装され得ることは留意に値する。例えば、同じライスパラメータを導出するために、特定の方程式またはルックアップ・テーブルも使用されてもよい。
Figure 2024506156000207
さらに別の例では、VVC草案に基づく対応する復号プロセスが以下に示されており、THおよびTHは、所定のしきい値(例えば、TH=8、TH=33または34)である。VVC草案に対する変更箇所は、表53に太字の斜体フォントで示されている。実際には同じ論理が異なる方法で実装され得ることは留意に値する。例えば、同じライスパラメータを導出するために、特定の方程式またはルックアップ・テーブルも使用されてもよい。
Figure 2024506156000208
上記の例示では、特定のライスパラメータを算出するために使用される方程式は、提案された理念を例示するための例としてのみ使用されていることは言及に値する。現代のビデオ符号化技法の当業者にとって、他のマッピング関数(または同等のマッピング方程式)は、提案された理念(すなわち、符号化ビットおよび適用された量子化パラメータに基づいて変換スキップモードのライスパラメータを決定すること)に対して既に適用可能である。一方、現在のVVC設計では、適用される量子化パラメータの値が符号化ブロック・グループ・レベルで変化することを許容されることも言及されるべきである。したがって、提案されたライスパラメータ調整方式は、符号化ブロック・グループ・レベルでの変換スキップモードのライスパラメータの柔軟な適応を提供することができる。
通常の残差符号化および変換スキップ残差符号化の信号伝送情報
本開示の第28の態様によれば、変換スキップ残差符号化において特定の構文要素、例えばabs_remainderを符号化するための2値符号ワードのライスパラメータ、通常の残差符号化においてabs_remainder/dec_abs_levelに使用されるライスパラメータの導出のためのシフトパラメータおよびオフセットパラメータを信号伝送すること、ならびに、現在のブロックの特定の符号化された情報、例えばTB/CBおよび/もしくはスライス/プロファイルに関連付けられた量子化パラメータもしくは符号化ビット深度に従って、かつ/または、TB/CB/スライス/ピクチャ/シーケンスレベルに関連付けられた新しいフラグ、例えばsps_residual_coding_info_present_in_sh_flagに従って、信号伝送するかどうかを判定することが提案される。
一例では、変換スキップブロックのためのライスパラメータの信号伝送、ならびに変換ブロックにおけるライスパラメータの導出のためのシフトパラメータおよび/またはオフセットパラメータの信号伝送が有効であるか無効であるかを示すために、1つの制御フラグがスライスヘッダ内で信号伝送される。制御フラグが有効として信号伝送されるとき、変換スキップスライスごとにそのスライスのライスパラメータを示すために1つの構文要素がさらに信号伝送され、変換スライスごとにそのスライスのライスパラメータの導出のためのシフトパラメータおよび/またはオフセットパラメータを示すために、2つの構文要素がさらに信号伝送される。制御フラグが無効として信号伝送されるとき(例えば、「0」に等しくなるように設定されるとき)、変換スキップスライスのライスパラメータを示すために下位レベルでそれ以上の構文要素は信号伝送されず、デフォルトのライスパラメータ(例えば、1)がすべての変換スキップスライスに対して使用され、変換スライスのライスパラメータ導出のためのシフトパラメータおよびオフセットパラメータを示すために下位レベルでそれ以上の構文要素は信号伝送されず、デフォルトのシフトパラメータおよび/またはオフセットパラメータ(例えば、0)がすべての変換スライスに対して使用される。VVC草案に基づく対応する復号プロセスの一例が以下に示されており、THは、所定の値(例えば、0、1、2)である。VVC草案に対する変更箇所は、表54に太字の斜体フォントで示されている。sh_residual_coding_rice_shift、sh_residual_coding_rice_offset、およびsh_ts_residual_coding_rice_indexは様々な方法で符号化されることが可能であり、かつ/または最大値を有し得ることは留意に値する。例えば、同じ構文要素を符号化/復号するために、nビットを使用する符号なし整数であるu(n)、または左ビットを最初に(左から右に)記述された、nビットを使用する固定パターン・ビット列であるf(n)も使用されてもよい。
図17は、ビデオ復号のための方法を示している。方法は、例えば、エンコーダに適用されてもよい。ステップ1710において、エンコーダは、ビデオ入力を受信してもよい。ステップ1712において、エンコーダは、符号化構文要素のための2値符号ワードのライスパラメータを信号伝送してもよい。符号化構文要素は、変換スキップ残差符号化におけるabs_remainderを含んでもよい。ステップ1714において、エンコーダは、ライスパラメータおよびビデオ入力に基づいてビデオビットストリームをエントロピ符号化してもよい。
スライスヘッダ構文
Figure 2024506156000209
sh_residual_coding_rice_flagが1に等しいことは、現在のスライス内にsh_residual_coding_rice_shift、sh_residual_coding_rice_offset、およびsh_residual_coding_rice_indexが存在する可能性があることを指定する。sh_residual_coding_rice_flagが0に等しいことは、現在のスライス内にsh_residual_coding_rice_shift、sh_residual_coding_rice_offset、およびsh_residual_coding_rice_indexが存在しないことを指定する。
sh_residual_coding_rice_shiftは、abs_remainder[]およびdec_abs_level[]のライスパラメータ導出プロセスに使用されるシフトパラメータを指定する。sh_residual_coding_rice_shiftが存在しないとき、sh_residual_coding_rice_shiftの値は0に等しいと推論される。
sh_residual_coding_rice_offsetは、abs_remainder[]およびdec_abs_level[]のライスパラメータ導出プロセスに使用されるオフセットパラメータを指定する。sh_residual_coding_rice_offsetが存在しないとき、sh_residual_coding_rice_offsetの値は0に等しいと推論される。
sh_ts_residual_coding_rice_indexは、residual_ts_coding()構文構造に使用されるライスパラメータを指定する。sh_ts_residual_coding_rice_indexが存在しないとき、sh_ts_residual_coding_rice_indexの値は0に等しいと推論される。
Figure 2024506156000210
Figure 2024506156000211
別の例では、変換スキップブロックのためのライスパラメータの信号伝送、ならびに変換ブロックにおけるライスパラメータの導出のためのシフトパラメータおよび/またはオフセットパラメータの信号伝送が有効であるか無効であるかを示すために、1つの制御フラグがシーケンスパラメータセット内で(またはシーケンスパラメータセット範囲拡張構文内で)信号伝送される。制御フラグが有効として信号伝送されるとき、変換スキップスライスごとにそのスライスのライスパラメータを示すために1つの構文要素がさらに信号伝送され、変換スライスごとにそのスライスのライスパラメータの導出のためのシフトパラメータおよび/またはオフセットパラメータを示すために、2つの構文要素がさらに信号伝送される。制御フラグが無効として信号伝送されるとき(例えば、「0」に等しくなるように設定されるとき)、変換スキップスライスのライスパラメータを示すために下位レベルでそれ以上の構文要素は信号伝送されず、デフォルトのライスパラメータ(例えば、1)がすべての変換スキップスライスに対して使用され、変換スライスのライスパラメータ導出のためのシフトパラメータおよび/またはオフセットパラメータを示すために下位レベルでそれ以上の構文要素は信号伝送されず、デフォルトのシフトパラメータおよび/またはオフセットパラメータ(例えば、0)がすべての変換スライスに対して使用される。VVC草案に基づく対応する復号プロセスの一例が以下に示されており、THは、所定の値(例えば、0、1、2)である。VVC草案に対する変更箇所は、表57に太字の斜体フォントで示されている。sh_residual_coding_rice_shift、sh_residual_coding_rice_offset、およびsh_ts_residual_coding_rice_idxは様々な方法で符号化されることが可能であり、かつ/または最大値を有し得ることは留意に値する。例えば、同じ構文要素を符号化/復号するために、nビットを使用する符号なし整数であるu(n)、または左ビットを最初に(左から右に)記述された、nビットを使用する固定パターン・ビット列であるf(n)も使用されてもよい。
シーケンスパラメータセットRBSP構文
Figure 2024506156000212
sps_residual_coding_info_present_in_sh_flagが1に等しいことは、SPSを参照するSH構文構造内にsh_residual_coding_rice_shift、sh_residual_coding_rice_offset、およびsh_ts_residual_coding_rice_idxが存在する可能性があることを指定する。sps_residual_coding_info_present_in_sh_flagが0に等しいことは、SPSを参照するSH構文構造内にsh_residual_coding_rice_shift、sh_residual_coding_rice_offset、およびsh_ts_residual_coding_rice_idxが存在しないことを指定する。sps_residual_coding_info_present_in_sh_flagが存在しないとき、sps_residual_coding_info_present_in_sh_flagの値は0に等しいと推論される。
スライスヘッダ構文
Figure 2024506156000213
sh_residual_coding_rice_shiftは、abs_remainder[]およびdec_abs_level[]のライスパラメータ導出プロセスに使用されるシフトパラメータを指定する。sh_residual_coding_rice_shiftが存在しないとき、sh_residual_coding_rice_shiftの値は0に等しいと推論される。
sh_residual_coding_rice_offsetは、abs_remainder[]およびdec_abs_level[]のライスパラメータ導出プロセスに使用されるオフセットパラメータを指定する。sh_residual_coding_rice_offsetが存在しないとき、sh_residual_coding_rice_offsetの値は0に等しいと推論される。
sh_ts_residual_coding_rice_idxは、residual_ts_coding()構文構造に使用されるライスパラメータを指定する。sh_ts_residual_coding_rice_indexが存在しないとき、sh_ts_residual_coding_rice_indexの値は0に等しいと推論される。
Figure 2024506156000214
Figure 2024506156000215
さらに別の例では、変換スキップスライスごとにそのスライスのライスパラメータを示すために1つの構文要素が信号伝送され、変換スライスごとにそのスライスのライスパラメータの導出のためのシフトパラメータおよび/またはオフセットパラメータを示すために2つの構文要素が信号伝送される。VVC草案に基づく対応する復号プロセスの一例が以下に示されている。VVC草案に対する変更箇所は、表61に太字の斜体フォントで示されている。sh_residual_coding_rice_shift、sh_residual_coding_rice_offset、およびsh_ts_residual_coding_rice_idxは様々な方法で符号化されることが可能であり、かつ/または最大値を有し得ることは留意に値する。例えば、同じ構文要素を符号化/復号するために、nビットを使用する符号なし整数であるu(n)、または左ビットを最初に(左から右に)記述された、nビットを使用する固定パターン・ビット列であるf(n)も使用されてもよい。
スライスヘッダ構文
Figure 2024506156000216
sh_ts_residual_coding_rice_idxは、residual_ts_coding()構文構造に使用されるライスパラメータを指定する。sh_ts_residual_coding_rice_idxが存在しないとき、sh_ts_residual_coding_rice_idxの値は0に等しいと推論される。
sh_residual_coding_rice_offsetは、abs_remainder[]およびdec_abs_level[]のライスパラメータ導出プロセスに使用されるオフセットパラメータを指定する。sh_residual_coding_rice_offsetが存在しないとき、sh_residual_coding_rice_offsetの値は0に等しいと推論される。
sh_ts_residual_coding_rice_idxは、residual_ts_coding()構文構造に使用されるライスパラメータを指定する。sh_ts_residual_coding_rice_indexが存在しないとき、sh_ts_residual_coding_rice_indexの値は0に等しいと推論される。
Figure 2024506156000217
Figure 2024506156000218
さらに別の例では、変換スキップブロックのためのライスパラメータの信号伝送、ならびに変換ブロックにおけるライスパラメータの導出のためのシフトパラメータおよび/またはオフセットパラメータの信号伝送が有効であるか無効であるかを示すために、1つの制御フラグがピクチャパラメータセット範囲拡張構文内で信号伝送される。制御フラグが有効として信号伝送されるとき、そのピクチャの変換スキップ残差符号化のためのライスパラメータを示すために、1つの構文要素がさらに信号伝送され、通常の残差符号化ごとにそのピクチャのライスパラメータの導出のためのシフトパラメータおよび/またはオフセットパラメータを示すために、2つの構文要素がさらに信号伝送される。制御フラグが無効として信号伝送されるとき(例えば、「0」に等しくなるように設定されるとき)、変換スキップ残差符号化のライスパラメータを示すために下位レベルでそれ以上の構文要素は信号伝送されず、デフォルトのライスパラメータ(例えば、1)がすべての変換スキップ残差符号化に対して使用され、通常の残差符号化のライスパラメータ導出のためのシフトパラメータおよび/またはオフセットパラメータを示すために下位レベルでそれ以上の構文要素は信号伝送されず、デフォルトのシフトパラメータおよび/またはオフセットパラメータ(例えば、0)がすべての通常の残差符号化に対して使用される。VVC草案に基づく対応する復号プロセスの一例が以下に示されており、THは、所定の値(例えば、0、1、2)である。VVC草案に対する変更箇所は、表64に太字の斜体フォントで示されている。pps_residual_coding_rice_shift、pps_residual_coding_rice_offset、およびpps_ts_residual_coding_rice_idxは様々な方法で符号化されることが可能であり、かつ/または最大値を有し得ることは留意に値する。例えば、同じ構文要素を符号化/復号するために、nビットを使用する符号なし整数であるu(n)、または左ビットを最初に(左から右に)記述された、nビットを使用する固定パターン・ビット列であるf(n)も使用されてもよい。
ピクチャパラメータセット範囲拡張構文
Figure 2024506156000219
pps_residual_coding_info_flagが1に等しいことは、現在のピクチャ内にpps_residual_coding_rice_shift、pps_residual_coding_rice_offset、およびpps_ts_residual_coding_rice_indexが存在する可能性があることを指定する。pps_residual_coding_info_flagが0に等しいことは、現在のピクチャ内にpps_residual_coding_rice_shift、pps_residual_coding_rice_offset、およびpps_ts_residual_coding_rice_idxが存在しないことを指定する。pps_residual_coding_info_flagが存在しないとき、pps_residual_coding_info_flagの値は0に等しいと推論される。
pps_residual_coding_rice_shiftは、abs_remainder[]およびdec_abs_level[]のライスパラメータ導出プロセスに使用されるシフトパラメータを指定する。pps_residual_coding_rice_shiftが存在しないとき、pps_residual_coding_rice_shiftの値は0に等しいと推論される。
pps_residual_coding_rice_offsetは、abs_remainder[]およびdec_abs_level[]のライスパラメータ導出プロセスに使用されるオフセットパラメータを指定する。pps_residual_coding_rice_offsetが存在しないとき、pps_residual_coding_rice_offsetの値は0に等しいと推論される。
pps_ts_residual_coding_rice_idxは、residual_ts_coding()構文構造に使用されるライスパラメータを指定する。pps_ts_residual_coding_rice_indexが存在しないとき、pps_ts_residual_coding_rice_indexの値は0に等しいと推論される。
Figure 2024506156000220
Figure 2024506156000221
本開示の第29の態様によれば、変換スキップ残差符号化において特定の構文要素、例えばabs_remainderを符号化するための異なるライスパラメータ、通常の残差符号化においてabs_remainder/dec_abs_levelに使用されるライスパラメータの導出のためのシフトパラメータおよびオフセットパラメータを使用すること、ならびに、現在のブロックの特定の符号化された情報、例えばTB/CBおよび/もしくはスライス/プロファイルに関連付けられた量子化パラメータもしくは符号化ビット深度に従って、かつ/または、TB/CB/スライス/ピクチャ/シーケンスレベルに関連付けられた新しいフラグ、例えばsps_residual_coding_info_present_in_sh_flagに従って、どれを使用すべきかを判定することが提案される。
一例では、変換スキップブロックのライスパラメータの導出プロセスおよび変換ブロックにおけるライスパラメータのシフトパラメータおよび/またはオフセットパラメータの導出プロセスが有効であるか無効であるかを示すために、1つの制御フラグがスライスヘッダ内で信号伝送される。制御フラグが有効として信号伝送されるとき、ライスパラメータは、現在のブロックの特定の符号化された情報、例えば量子化パラメータおよびビット深度に従って、異なる条件において異なる場合がある。また、通常の残差符号化におけるライスパラメータの導出のためのシフトパラメータおよび/またはオフセットパラメータは、現在のブロックの特定の符号化された情報、例えば量子化パラメータおよびビット深度に従って、異なる条件において異なる場合がある。制御フラグが無効として信号伝送されるとき(例えば、「0」に等しくなるように設定されるとき)、デフォルトのライスパラメータ(例えば、1)がすべての変換スキップスライスに対して使用され、デフォルトのシフトパラメータおよび/またはオフセットパラメータ(例えば、0)がすべての変換スライスに対して使用される。VVC草案に基づく対応する復号プロセスの一例が以下に示されており、THおよびTHは、所定のしきい値(例えば、TH=8、TH=18または19)である。VVC草案に対する変更箇所は、表67に太字の斜体フォントで示されている。実際には同じ論理が異なる方法で実装され得ることは留意に値する。例えば、同じライスパラメータを導出するために、特定の方程式またはルックアップ・テーブルも使用されてもよい。
スライスヘッダ構文
Figure 2024506156000222
sh_residual_coding_rice_flagが1に等しいことは、ビット深度に依存するライスパラメータ導出プロセスが現在のスライスで使用されることを指定する。sh_residual_coding_rice_flagが0に等しいことは、ビット深度に依存するライスパラメータ導出プロセスが現在のスライスで使用されないことを指定する。
Figure 2024506156000223
Figure 2024506156000224
さらに別の例では、VVC草案に基づく対応する復号プロセスが以下に示されており、THは、所定のしきい値(例えば、18、19)である。VVC草案に対する変更箇所は、表70に太字の斜体フォントで示されている。実際には同じ論理が異なる方法で実装され得ることは留意に値する。例えば、同じライスパラメータを導出するために、特定の方程式またはルックアップ・テーブルも使用されてもよい。
Figure 2024506156000225
Figure 2024506156000226
本開示の別の態様によれば、一般制約情報内の他のものと同じ一般制約制御を提供するために上記のこれらの符号化ツールの値がフラグを立てるという制約を追加することが提案される。
例えば、sps_ts_residual_coding_rice_present_in_sh_flagが1に等しいことは、SPSを参照するSH構文構造内にsh_ts_residual_coding_rice_idxが存在する可能性があることを指定する。sps_ts_residual_coding_rice_present_in_sh_flagが0に等しい場合は、SPSを参照するSH構文構造内にsh_ts_residual_coding_rice_idxが存在しないことを指定する。本開示によれば、他のフラグと同じ一般制約制御を提供するために、一般制約情報構文内に構文要素gci_no_ts_residual_coding_rice_constraint_flagを追加することが提案される。VVC草案の復号プロセスの一例が以下に示されている。VVC草案に対する変更点は強調表示されている。追加された部分は斜体で強調表示されている。
Figure 2024506156000227
Figure 2024506156000228
別の例では、pps_ts_residual_coding_rice_flagが1に等しいことは、現在のピクチャ内にpps_ts_residual_coding_rice_indexが存在する可能性があることを指定する。pps_ts_residual_coding_rice_flagが0に等しいことは、現在のピクチャ内にpps_ts_residual_coding_rice_idxが存在しないことを指定する。本開示によれば、他のフラグと同じ一般制約制御を提供するために、一般制約情報構文内に構文要素gci_no_ts_residual_coding_rice_constraint_flagを追加することが提案される。VVC草案の復号プロセスの一例が以下に示されている。VVC草案に対する変更点は強調表示されている。追加された部分は斜体で強調表示されている。
Figure 2024506156000229
Figure 2024506156000230
さらに別の例では、sps_rice_adaptation_enabled_flagが1に等しいことは、abs_remaining[]およびdec_abs_levelの2値化のためのライスパラメータが式によって導出され得ることを示す。
式は、RiceParam=RiceParam+shiftVal、およびshiftVal=(localSumAbs<Tx[0])?Rx[0]:((localSumAbs<Tx[1])?Rx[1]:((localSumAbs<Tx[2])?Rx[2]:((localSumAbs<Tx[3])?Rx[3]:Rx[4])))を含んでもよく、ここで、リストTx[]およびRx[]は、Tx[]={32,128,512,2048}>>(1523)Rx[]={0,2,4,6,8}のように指定される。
本開示によれば、他のフラグと同じ一般制約制御を提供するために、一般制約情報構文内に構文要素gci_no_rice_adaptation_constraint_flagを追加することが提案される。VVC草案の復号プロセスの一例が以下に示されている。VVC草案に対する変更点は強調表示されている。追加された部分は斜体で強調表示されている。
Figure 2024506156000231
Figure 2024506156000232
提案されたライスパラメータ適応方式は、変換スキップ残差符号化(TSRC:transform skip residual coding)にのみ使用されるので、提案された方法は、TSRCが有効であるときに効果をもたらすことができる。これに対応して、本開示の1つまたは複数の実施形態では、変換スキップモードが一般制約情報レベルから無効であるとき、例えば、gci_no_transform_skip_constraint_flagの値が1に設定されているとき、gci_no_rice_adaptation_constraint_flagの値が1であるよう要求する1つのビットストリーム制約を追加することが提案される。
さらに別の例では、sps_range_extension_flagが1に等しいことは、SPS RBSP構文構造内にsps_range_extension()構文構造が存在することを指定する。sps_range_extension_flagが0に等しいことは、この構文構造が存在しないことを指定する。本開示によれば、他のフラグと同じ一般制約制御を提供するために、一般制約情報構文内に構文要素gci_no_range_extension_constraint_flagを追加することが提案される。VVC草案の復号プロセスの一例が以下に示されている。VVC草案に対する変更点は強調表示されている。追加された部分は斜体で強調表示されている。
Figure 2024506156000233
Figure 2024506156000234
図19は、本開示の一例に係るビデオ符号化のための方法を示している。方法は、例えば、デコーダに適用されてもよい。ステップ1902において、デコーダは、シーケンスパラメータセット(SPS)範囲拡張フラグの値に基づいてスライスヘッド(SH)の未加工バイトシーケンスペイロード(RBSP)構文構造内に構文構造sps_range_extensionが存在するかどうかを示すSPS範囲拡張フラグを受信してもよい。
ステップ1904において、デコーダは、SPS範囲拡張フラグの値が1に等しいとの判定に応答して、SH RBSP構文構造内にsps_range_extensionが存在すると判定してもよい。
ステップ1906において、デコーダは、範囲拡張フラグの値が0に等しいとの判定に応答して、SH RBSP構文構造内にsps_range_extensionが存在しないと判定してもよい。
sps_cabac_bypass_alignment_enabled_flagは、構文要素sb_coded_flag[][]、abs_remainder[]、dec_abs_level[n]、およびcoeff_sign_flag[]のバイパス復号の前にivlCurrRangeの値がアライメントされ得ることを指定する。sps_cabac_bypass_alignment_enabled_flagが0に等しいことは、バイパス復号の前にivlCurrRangeの値がアライメントされないことを指定する。本開示によれば、他のフラグと同じ一般制約制御を提供するために、一般制約情報構文内に構文要素gci_no_cabac_bypass_alignment_constraint_flagを追加することが提案される。VVC草案の復号プロセスの一例が以下に示されている。VVC草案に対する変更点は強調表示されている。追加された部分は斜体で強調表示されている。
Figure 2024506156000235
Figure 2024506156000236
図20は、本開示の一例に係るビデオ符号化のための方法を示している。方法は、例えば、デコーダに適用されてもよい。ステップ2002において、デコーダは、シーケンスパラメータセット(SPS)アライメント有効の値に基づいて構文要素sb_coded_flag、abs_remainder、dec_abs_level、およびcoeff_sign_flagnのバイパス復号の前にインデックスivlCurrRangeがアライメントされるかどうかを示すSPSアライメント有効フラグを受信してもよい。
ステップ2004において、デコーダは、SPSアライメント有効フラグの値が1に等しいとの判定に応答して、バイパス復号の前にivlCurrRangeがアライメントされると判定してもよい。
ステップ2006において、デコーダは、SPSアライメント有効フラグの値が0に等しいとの判定に応答して、バイパス復号の前にivlCurrRangeがアライメントされないと判定してもよい。
さらに別の例では、extended_precision_processing_flagが1に等しいことは、変換係数および変換処理のために拡張ダイナミックレンジが使用され得ることを指定する。extended_precision_processing_flagが0に等しいことは、拡張ダイナミックレンジが使用されないことを指定する。本開示によれば、他のフラグと同じ一般制約制御を提供するために、一般制約情報構文内に構文要素gci_no_extended_precision_processing_constraint_flagを追加することが提案される。VVC草案の復号プロセスの一例が以下に示されている。VVC草案に対する変更点は強調表示されている。追加された部分は斜体で強調表示されている。
Figure 2024506156000237
Figure 2024506156000238
図21は、本開示の一例に係るビデオ符号化のための方法を示している。方法は、例えば、デコーダに適用されてもよい。ステップ2102において、デコーダは、拡張精度処理フラグの値に基づいて変換係数についてまた変換処理中に拡張ダイナミックレンジが採用されるかどうかを示す拡張精度処理フラグを受信することを含んでもよい。
ステップ2104において、デコーダは、拡張精度処理フラグの値が1に等しいとの判定に応答して、変換係数についてまた変換処理中に拡張ダイナミックレンジが採用されると判定してもよい。
ステップ2106において、デコーダは、拡張精度処理フラグの値が0に等しいとの判定に応答して、変換係数についてまたは変換処理中に拡張ダイナミックレンジが採用されないと判定してもよい。
さらに別の例では、persistant_rice_adaptation_enabled_flagが1に等しいことは、各サブブロックの開始時にabs_remaining[]およびdec_abs_levelの2値化のためのライスパラメータ導出が前のサブブロックから蓄積されたモード依存統計を使用して初期化され得ることを指定する。persistant_rice_adaptation_enabled_flagが0に等しいことは、ライスパラメータ導出において前のサブブロック状態が使用されないことを指定する。本開示によれば、他のフラグと同じ一般制約制御を提供するために、一般制約情報構文内に構文要素gci_no_persistent_rice_adaptation_constraint_flagを追加することが提案される。VVC草案の復号プロセスの一例が以下に示されている。VVC草案に対する変更点は強調表示されている。追加された部分は斜体で強調表示されている。
Figure 2024506156000239
Figure 2024506156000240
図22は、本開示の一例に係るビデオ符号化のための方法を示している。方法は、例えば、デコーダに適用されてもよい。ステップ2202において、デコーダは、永続的ライス適応有効フラグの値に基づいて、前のサブブロックから蓄積されたモード依存統計を採用している各サブブロックの開始時にabs_remainingおよびdec_abs_levelの2値化のためのライスパラメータ導出が初期化されるかどうかを示す、永続的ライス適応有効フラグを受信してもよい。
ステップ2204において、デコーダは、永続的ライス適応有効フラグの値が1に等しいとの判定に応答して、前のサブブロックから蓄積されたモード依存統計を採用している各サブブロックの開始時に2値化のためのライスパラメータ導出が初期化されると判定してもよい。
ステップ2206において、デコーダは、永続的ライス適応有効フラグの値が0に等しいとの判定に応答して、ライスパラメータ導出において前のサブブロック状態が採用されないと判定してもよい。
上記の方法は、特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)、デジタル信号処理デバイス(DSPD)、プログラマブル・ロジック・デバイス(PLD)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、コントローラ、マイクロコントローラ、マイクロプロセッサ、または他の電子構成要素を含む1つまたは複数の1つまたは複数の回路を含む装置を使用して実施されてもよい。装置は、上記で説明された方法を実行するために、他のハードウェア構成要素またはソフトウェア構成要素と組み合わせて回路を使用してもよい。上記で開示された各モジュール、サブモジュール、ユニット、またはサブユニットは、1つまたは複数の回路を使用して少なくとも部分的に実装されてもよい。
図18は、ユーザインターフェース1860と結合されたコンピューティング環境1810を示している。コンピューティング環境1810は、データ処理サーバの一部であってもよい。コンピューティング環境1810は、プロセッサ1820、メモリ1840、およびI/Oインターフェース1850を含む。
プロセッサ1820は、典型的には、表示、データ取得、データ通信、および画像処理に関連する動作など、コンピューティング環境1810の全体的な動作を制御する。プロセッサ1820は、上記の方法におけるステップのすべてまたはいくつかを実行せよとの命令を実行するための1つまたは複数のプロセッサを含んでもよい。さらに、プロセッサ1820は、プロセッサ1820と他の構成要素との間の対話を容易にする1つまたは複数のモジュールを含んでもよい。プロセッサは、中央処理ユニット(CPU)、マイクロプロセッサ、シングルチップマシン、GPUなどであってもよい。
メモリ1840は、コンピューティング環境1810の動作をサポートするために、様々なタイプのデータを記憶するように構成される。メモリ1840は、所定のソフトウェア1842を含んでもよい。そのようなデータの例は、コンピューティング環境1810上で動作する任意のアプリケーションまたは方法のための命令、ビデオデータセット、画像データなどを含む。メモリ1840は、スタティック・ランダム・アクセス・メモリ(SRAM)、電気的に消去可能なプログラマブル読み取り専用メモリ(EEPROM)、消去可能なプログラマブル読み取り専用メモリ(EPROM)、プログラマブル読み取り専用メモリ(PROM)、読み取り専用メモリ(ROM)、磁気メモリ、フラッシュ・メモリ、磁気ディスクまたは光ディスクなど、任意のタイプの揮発性もしくは不揮発性のメモリ・デバイスまたはそれらの組合せを使用することによって実装されてもよい。
I/Oインターフェース1850は、プロセッサ1820と、キーボード、クリック・ホイール、ボタン、および同様のものなどの周辺インターフェース・モジュールとの間のインターフェースを提供する。ボタンは、ホーム・ボタン、走査開始ボタン、および走査停止ボタンを含んでもよいが、これらに限定されない。I/Oインターフェース1850は、エンコーダおよびデコーダと結合されてもよい。
いくつかの実施形態では、上記の方法を実行するための、コンピューティング環境1810内のプロセッサ1820によって実行可能な、メモリ1840に含まれるような複数のプログラムを含む非一時的コンピュータ可読記憶媒体も提供される。例えば、非一時的コンピュータ可読記憶媒体は、ROM、RAM、CD-ROM、磁気テープ、フロッピ・ディスク、光データ記憶デバイス、または同様のものであってもよい。
非一時的コンピュータ可読記憶媒体は、その中に1つまたは複数のプロセッサを有するコンピューティング・デバイスによって実行される複数のプログラムを記憶しており、複数のプログラムは、1つまたは複数のプロセッサによって実行されたとき、コンピューティング・デバイスに動き予測のための上記の方法を実行させる。
いくつかの実施形態では、コンピューティング環境1810は、上記の方法を実行するための1つまたは複数の特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)、デジタル信号処理デバイス(DSPD)、プログラマブル・ロジック・デバイス(PLD)、フィールド・プログラマブル・アレイ(FPGA)、グラフィカル・プロセッシング・ユニット(GPU)、コントローラ、マイクロコントローラ、マイクロプロセッサ、または他の電子構成要素を用いて実装されてもよい。
図23は、本開示のいくつかの実装形態による、ビデオブロックを並行して符号化および復号するための例示的なシステム10を示すブロック図である。図23に示されているように、システム10は、宛先デバイス14によって後で復号されるべきビデオデータを生成および符号化するソースデバイス12を含む。ソースデバイス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からの送信は、ストリーミング送信、ダウンロード送信、または両方の組合せであってもよい。
図23に示されているように、ソースデバイス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、Part10、AVC、もしくはそのような規格の拡張版などの独自規格または業界規格に従って動作してもよい。本出願が特定のビデオ符号化/復号規格に限定されず、他のビデオ符号化/復号規格にも適用可能であることが理解されるべきである。一般に、ソースデバイス12のビデオエンコーダ20は、これらの現在の規格または将来の規格のいずれかに従ってビデオデータを符号化するように構成され得ることが企図される。同様に、一般に、宛先デバイス14のビデオデコーダ30が、これらの現在の規格または将来の規格のいずれかに従ってビデオデータを復号するように構成され得ることも企図される。
ビデオエンコーダ20およびビデオデコーダ30はそれぞれ、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、ディスクリート・ロジック、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せなど、様々な好適なエンコーダおよび/またはデコーダ回路のいずれかとして実装されてもよい。電子デバイスは、ソフトウェア内に部分的に実装される場合、ソフトウェアのための命令を好適な非一時的コンピュータ可読媒体に記憶し、1つまたは複数のプロセッサを使用してその命令をハードウェア内で実行して、本開示で開示されるビデオ符号化/復号動作を実行してもよい。ビデオエンコーダ20およびビデオデコーダ30のそれぞれは、1つもしくは複数のエンコーダまたはデコーダに含まれてもよく、そのどちらも、それぞれのデバイス内の複合エンコーダ/デコーダ(CODEC:combined encoder/decoder)の一部として統合されてもよい。
図24は、本出願において説明されるいくつかの実装形態による、例示的なビデオエンコーダ20を示すブロック図である。ビデオエンコーダ20は、ビデオフレーム内のビデオブロックのイントラ予測符号化およびインター予測符号化を実行してもよい。イントラ予測符号化は、空間予測に依存して、所与のビデオフレームもしくはピクチャ内のビデオデータの空間的冗長性を削減または除去する。インター予測符号化は、時間予測に依存して、ビデオシーケンスの隣接するビデオフレームもしくはピクチャ内のビデオデータの時間的冗長性を削減または除去する。「フレーム」という用語は、ビデオ符号化の分野では「画像」または「ピクチャ」という用語と同義語として使用され得ることが留意されるべきである。
図24に示されているように、ビデオエンコーダ20は、ビデオデータメモリ40、予測処理ユニット41、復号ピクチャバッファ(DPB:Decoded Picture Buffer)64、加算器50、変換処理ユニット52、量子化ユニット54、エントロピ符号化ユニット56を含む。予測処理ユニット41は、動き推定ユニット42、動き補償ユニット44、区分ユニット45、イントラ予測処理ユニット46、イントラブロックコピー(BC)ユニット48をさらに含む。いくつかの実装形態では、ビデオエンコーダ20は、ビデオブロック再構築のための、逆量子化ユニット58、逆変換処理ユニット60、および加算器62も含む。ブロック境界をフィルタリングして、再構築されたビデオからブロック状アーチファクトを除去するために、加算器62とDPB64との間にブロック解除フィルタなどのループ内フィルタ63が配置されてもよい。加算器62の出力をフィルタリングするために、ブロック解除フィルタに加えて、サンプル適応オフセット(SAO)・フィルタおよび/または適応ループ内フィルタ(ALF)などの別のループ内フィルタも使用されてもよい。いくつかの例では、ループ内フィルタが省略されてもよく、復号されたビデオブロックが加算器62によってDPB64に直接提供されてもよい。ビデオエンコーダ20は、固定のもしくはプログラム可能なハードウェア・ユニットの形式をとることができ、または図示された固定のもしくはプログラム可能なハードウェア・ユニットのうちの1つまたは複数に分割されてもよい。
ビデオデータメモリ40は、ビデオエンコーダ20の構成要素によって符号化されるべきビデオデータを記憶してもよい。ビデオデータメモリ40内のビデオデータは、例えば、図23に示されたビデオソース18から取得されてもよい。DPB64は、ビデオエンコーダ20によって(例えば、イントラ予測符号化モードまたはインター予測符号化モードで)ビデオデータを符号化する際に使用するための参照ビデオデータ(例えば、参照フレームまたは参照ピクチャ)を記憶するバッファである。ビデオデータメモリ40およびDPB64は、様々なメモリ・デバイスのいずれかによって形成されてもよい。様々な例において、ビデオデータメモリ40は、ビデオエンコーダ20の他の構成要素とともにオンチップであってもよく、またはそれらの構成要素に対するオフチップであってもよい。
図24に示されているように、予測処理ユニット41内の区分ユニット45は、ビデオデータを受信した後、ビデオデータをビデオブロックに区分化する。この区分化は、ビデオデータに関連付けられた四分木(QT:Quad-Tree)構造などの事前定義された分解構造に従って、ビデオフレームをスライス、タイル(例えば、ビデオブロックのセット)、または他のさらに大きい符号化ユニット(CU)に区分化することも含む。ビデオフレームは、サンプル値を有するサンプルの2次元配列もしくは2次元行列であるか、またはそれらとみなされてもよい。配列内のサンプルは、画素またはペルと呼ばれることもある。配列またはピクチャの水平方向および垂直方向(または軸)のサンプルの数が、ビデオフレームのサイズおよび/または解像度を定義する。ビデオフレームは、例えばQT区分化を使用することによって、複数のビデオブロックに分割されてもよい。ビデオブロックもまた、ビデオフレームよりも小さい次元ではあるが、サンプル値を有するサンプルの2次元配列もしくは2次元行列であるか、またはそれらとみなされてもよい。ビデオブロックの水平方向および垂直方向(または軸)のサンプルの数が、ビデオブロックのサイズを定義する。ビデオブロックは、例えばQT区分化、二分木(BT:Binary-Tree)区分化、もしくは三分木(TT:Triple-Tree)区分化、またはそれらの任意の組合せを反復して使用することによって、1つもしくは複数のブロック区分またはサブブロック(再びブロックを形成し得る)にさらに区分化されてもよい。本明細書で使用される「ブロック」または「ビデオブロック」という用語がフレームまたはピクチャの一部、具体的には矩形(正方形または非正方形)部分であり得ることが留意されるべきである。例えば、HEVCおよびVVCに関しては、ブロックまたはビデオブロックは、符号化ツリーユニット(CTU)、CU、予測ユニット(PU)、もしくは変換ユニット(TU)であるか、もしくはそれらに対応してもよく、かつ/または対応するブロック、例えば、符号化ツリー・ブロック(CTB)、符号化ブロック(CB)、予測ブロック(PB)、もしくは変換ブロック(TB)、および/もしくはサブブロックであるか、もしくはそれらに対応してもよい。
予測処理ユニット41は、誤差結果(例えば、符号化レートおよび歪みのレベル)に基づいて、現在のビデオブロックに対して、複数のイントラ予測符号化モードのうちの1つ、または複数のインター予測符号化モードのうちの1つなど、複数の可能な予測符号化モードのうちの1つを選択してもよい。予測処理ユニット41は、結果として得られたイントラ予測符号化ブロックまたはインター予測符号化ブロックを加算器50に提供して残差ブロックを生成し、またその後参照フレームの一部として使用するために、結果として得られたイントラ予測符号化ブロックまたはインター予測符号化ブロックを加算器62に提供して、符号化されたブロックを再構築してもよい。また、予測処理ユニット41は、動きベクトル、イントラモード・インジケータ、区分情報、および他のそのような構文情報などの構文要素をエントロピ符号化ユニット56に提供する。
現在のビデオブロック用に適切なイントラ予測符号化モードを選択するために、予測処理ユニット41内のイントラ予測処理ユニット46は、符号化されるべき現在のブロックと同じフレーム内の1つまたは複数の隣接ブロックに対して現在のビデオブロックのイントラ予測符号化を実行して、空間予測を提供してもよい。予測処理ユニット41内の動き推定ユニット42および動き補償ユニット44は、1つまたは複数の参照フレーム内の1つまたは複数の予測ブロックに対して現在のビデオブロックのインター予測符号化を実行して、時間予測を提供する。ビデオエンコーダ20は、例えばビデオデータのブロックごとに適切な符号化モードを選択するために、複数の符号化パスを実行してもよい。
いくつかの実装形態では、動き推定ユニット42は、ビデオフレームのシーケンス内の所定のパターンに従って、参照ビデオフレーム内の予測ブロックに対する現在のビデオフレーム内のビデオブロックの変位を示す動きベクトルを生成することによって、現在のビデオフレームのためのインター予測モードを決定する。動き推定ユニット42によって実行される動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。例えば、動きベクトルは、現在のフレーム内で符号化されている現在のブロックに対する参照フレーム内の予測ブロックに対する現在のビデオフレームまたはピクチャ内のビデオブロックの変位を示してもよい。所定のパターンは、シーケンス内のビデオフレームをPフレームまたはBフレームとして指定する。イントラBCユニット48は、インター予測のための動き推定ユニット42による動きベクトルの決定と同様の方式でイントラBC符号化のためのベクトル、例えばブロック・ベクトルを決定してもよく、または、動き推定ユニット42を利用してブロック・ベクトルを決定してもよい。
ビデオブロックの予測ブロックは、符号化されるべきビデオブロックと画素差の点で厳密に一致するとみなされる参照フレームのブロックもしくは参照ブロックであってもよく、またはそれらのブロックに対応してもよく、それらのブロックは、差分絶対値和(SAD:Sum of Absolute Difference)、差分二乗和(SSD:Sum of Square Difference)、または他の差分メトリックによって決定されてもよい。いくつかの実装形態では、ビデオエンコーダ20は、DPB64に記憶された参照フレームのサブ整数画素位置の値を算出してもよい。例えば、ビデオエンコーダ20は、参照フレームの4分の1の画素位置、8分の1の画素位置、または他の分数の画素位置の値を補間してもよい。したがって、動き推定ユニット42は、全画素位置および分数画素位置に対して動き探索を実行し、分数画素精度で動きベクトルを出力してもよい。
動き推定ユニット42は、ビデオブロックの位置と、DPB64に記憶されている1つまたは複数の参照フレームをそれぞれ識別する第1の参照フレーム・リスト(リスト0)または第2の参照フレーム・リスト(リスト1)から選択された参照フレームの予測ブロックの位置とを比較することによって、インター予測符号化フレーム内のビデオブロックの動きベクトルを算出する。動き推定ユニット42は、算出された動きベクトルを動き補償ユニット44に送り、次いで、エントロピ符号化ユニット56に送る。
動き補償ユニット44によって実行される動き補償は、動き推定ユニット42によって決定された動きベクトルに基づいて予測ブロックをフェッチまたは生成することを含んでもよい。動き補償ユニット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、SSD、または他の差分メトリックによって決定され得る、符号化されるべきブロックと厳密に一致するとみなされるブロックであってもよく、予測ブロックの識別は、サブ整数画素位置の値の算出を含んでもよい。
予測ブロックがイントラ予測に従って同じフレームからのブロックである場合でも、インター予測に従って異なるフレームからのブロックである場合でも、ビデオエンコーダ20は、符号化されている現在のビデオブロックの画素値から予測ブロックの画素値を減算して画素差分値を形成することによって、残差ビデオブロックを形成してもよい。残差ビデオブロックを形成する画素差分値は、輝度成分差分と彩度成分差分との両方を含んでもよい。
イントラ予測処理ユニット46は、上記で説明されたように、動き推定ユニット42および動き補償ユニット44によって実行されるインター予測の代替として、またはイントラBCユニット48によって実行されるイントラブロックコピー予測の代替として、現在のビデオブロックをイントラ予測してもよい。具体的には、イントラ予測処理ユニット46は、現在のブロックを符号化するために使用するイントラ予測モードを決定してもよい。そのようにするために、イントラ予測処理ユニット46は、例えば別個の符号化パス中に、様々なイントラ予測モードを使用して現在のブロックを符号化してもよく、イントラ予測処理ユニット46(または、いくつかの例では、モード選択ユニット)は、テストされたイントラ予測モードから、使用する適切なイントラ予測モードを選択してもよい。イントラ予測処理ユニット46は、ブロックに対して選択されたイントラ予測モードを示す情報をエントロピ符号化ユニット56に提供してもよい。エントロピ符号化ユニット56は、選択されたイントラ予測モードを示す情報をビットストリームに符号化してもよい。
予測処理ユニット41がインター予測またはイントラ予測によって現在のビデオブロックの予測ブロックを決定した後、加算器50は、現在のビデオブロックから予測ブロックを減算することによって残差ビデオブロックを形成する。残差ブロック内の残差ビデオデータは、1つまたは複数のTU内に含まれてもよく、変換処理ユニット52に提供される。変換処理ユニット52は、離散コサイン変換(DCT:Discrete Cosine Transform)または概念的に同様の変換などの変換を使用して、残差ビデオデータを残差変換係数に変換する。
変換処理ユニット52は、結果として得られた変換係数を量子化ユニット54に送ってもよい。量子化ユニット54は、変換係数を量子化して、ビット・レートをさらに低減する。量子化プロセスはまた、係数の一部または全部に関連付けられたビット深度を低減してもよい。量子化の程度は、量子化パラメータを調整することによって修正されてもよい。いくつかの例では、次いで、量子化ユニット54は、量子化済みの変換係数を含む行列の走査を実行してもよい。代替として、エントロピ符号化ユニット56が走査を実行してもよい。
量子化に続いて、エントロピ符号化ユニット56は、例えば、コンテキスト適応型可変長符号化(CAVLC:Context Adaptive Variable Length Coding)、コンテキスト適応型2値算術符号化(CABAC:Context Adaptive Binary Arithmetic Coding)、構文ベースのコンテキスト適応型2値算術符号化(SBAC)、確率間隔区分化エントロピ(PIPE:Probability Interval Partitioning Entropy)符号化、または別のエントロピ符号化の方法論もしくは技法を使用して、量子化済みの変換係数をビデオビットストリームにエントロピ符号化する。次いで、符号化されたビットストリームは、図23に示されるようにビデオデコーダ30に送信されるか、または、後のビデオデコーダ30への送信もしくはビデオデコーダ30による検索のために、図23に示されるように記憶デバイス32にアーカイブされてもよい。エントロピ符号化ユニット56はまた、符号化されている現在のビデオフレームの動きベクトルおよび他の構文要素をエントロピ符号化してもよい。
逆量子化ユニット58および逆変換処理ユニット60は、他のビデオブロックの予測のための参照ブロックを生成するために、それぞれ逆量子化および逆変換を適用して画素ドメイン内の残差ビデオブロックを再構築する。上述されたように、動き補償ユニット44は、DPB64に記憶されたフレームの1つまたは複数の参照ブロックから、動き補償された予測ブロックを生成してもよい。動き補償ユニット44はまた、予測ブロックに1つまたは複数の補間フィルタを適用して、動き推定において使用するためのサブ整数画素値を算出してもよい。
加算器62は、再構築された残差ブロックを、動き補償ユニット44によって作成された動き補償された予測ブロックに加算して、DPB64に記憶するための参照ブロックを作成してもよい。次いで、参照ブロックは、イントラBCユニット48、動き推定ユニット42、および動き補償ユニット44によって、後続のビデオフレーム内の別のビデオブロックをインター予測するための予測ブロックとして使用されてもよい。
図25は、本出願のいくつかの実装形態による、例示的なビデオデコーダ30を示すブロック図である。ビデオデコーダ30は、ビデオデータメモリ79、エントロピ復号ユニット80、予測処理ユニット81、逆量子化ユニット86、逆変換処理ユニット88、加算器90、およびDPB92を含む。予測処理ユニット81はさらに、動き補償ユニット82、イントラ予測ユニット84、およびイントラBCユニット85を含む。ビデオデコーダ30は、図24に関連してビデオエンコーダ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:Coded Picture Buffer)を含んでもよい。ビデオデコーダ30のDPB92は、ビデオデコーダ30によって(例えば、イントラ予測符号化モードまたはインター予測符号化モードで)ビデオデータを復号する際に使用するための参照ビデオデータを記憶する。ビデオデータメモリ79およびDPB92は、同期DRAM(SDRAM)、磁気抵抗RAM(MRAM)、抵抗RAM(RRAM)、または他のタイプのメモリ・デバイスを含む、ダイナミック・ランダム・アクセス・メモリ(DRAM)などの様々なメモリ・デバイスのいずれかによって形成されてもよい。図25では、例示のために、ビデオデータメモリ79およびDPB92は、ビデオデコーダ30の2つの別個の構成要素として描写されている。しかし、当業者には、ビデオデータメモリ79およびDPB92が同じメモリ・デバイスまたは別個のメモリ・デバイスによって提供され得ることが明らかであろう。いくつかの例では、ビデオデータメモリ79は、ビデオデコーダ30の他の構成要素とオンチップであるか、またはそれらの構成要素に対してオフチップであってもよい。
復号プロセス中、ビデオデコーダ30は、符号化されたビデオフレームのビデオブロックおよび関連する構文要素を表す符号化されたビデオビットストリームを受信する。ビデオデコーダ30は、ビデオフレーム・レベルおよび/またはビデオブロック・レベルで構文要素を受信してもよい。ビデオデコーダ30のエントロピ復号ユニット80は、ビットストリームをエントロピ復号して、量子化された係数、動きベクトルまたはイントラ予測モード・インジケータ、および他の構文要素を生成する。次いで、エントロピ復号ユニット80は、動きベクトルまたはイントラ予測モード・インジケータおよび他の構文要素を予測処理ユニット81に転送する。
ビデオフレームがイントラ予測符号化(I)フレームとしてまたは他のタイプのフレームにおけるイントラ符号化予測ブロックのために符号化されるとき、予測処理ユニット81のイントラ予測ユニット84は、信号伝送されたイントラ予測モード、および現在のフレームの以前に復号されたブロックからの参照データに基づいて、現在のビデオフレームのビデオブロックの予測データを生成してもよい。
ビデオフレームがインター予測符号化(すなわち、BまたはP)フレームとして符号化されるとき、予測処理ユニット81の動き補償ユニット82は、エントロピ復号ユニット80から受信された動きベクトルおよび他の構文要素に基づいて、現在のビデオフレームのビデオブロックの1つまたは複数の予測ブロックを生成してもよい。予測ブロックのそれぞれは、参照フレーム・リストのうちの1つの中の参照フレームから作成されてもよい。ビデオデコーダ30は、DPB92に記憶された参照フレームに基づくデフォルトの構築技法を使用して、参照フレーム・リストであるリスト0およびリスト1を構築してもよい。
いくつかの例では、ビデオブロックが本明細書で説明されたイントラ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によって生成された対応する予測ブロックとを加算することによって、現在のビデオブロックの復号されたビデオブロックを再構築する。復号されたビデオブロックをさらに処理するために、加算器90とDPB92との間にブロック解除フィルタ、SAOフィルタ、および/またはALFなどのループ内フィルタ91が配置されてもよい。いくつかの例では、ループ内フィルタ91は省略されてもよく、復号されたビデオブロックは加算器90によってDPB92に直接提供されてもよい。次いで、所与のフレーム内の復号されたビデオブロックは、次のビデオブロックの後続の動き補償に使用される参照フレームを記憶するDPB92に記憶される。また、DPB92、またはDPB92とは別個のメモリ・デバイスは、図23の表示デバイス34などの表示デバイス上で後で提示するために、復号されたビデオを記憶してもよい。
本開示の説明は、例示を目的として提示されたものであり、本開示を網羅することも限定することも意図されていない。前述の説明および関連する図面に提示された教示の恩恵を受ける当業者には、多くの修正形態、変形形態、および代替の実装形態が明らかとなるであろう。
例は、本開示の原理を説明するために、また当業者が様々な実施形態について本開示を理解し、基礎となる原理および様々な実装形態を、企図される特定の用途に適した様々な修正を加えて最大限に利用することを可能にするために、選択および説明されたものである。したがって、本開示の範囲が、開示された実装形態の特定の例に限定されないこと、ならびに修正および他の実装形態が本開示の範囲内に含まれるよう意図されていることが理解されるべきである。

Claims (18)

  1. ビデオ符号化のための方法であって、
    デコーダによって、シーケンスパラメータセット(SPS)範囲拡張フラグの値に基づいてスライスヘッド(SH)の未加工バイトシーケンスペイロード(RBSP)構文構造内に構文構造sps_range_extensionが存在するかどうかを示す前記SPS範囲拡張フラグを受信する、ことを含む、方法。
  2. 前記SPS範囲拡張フラグの前記値が1に等しいとの判定に応答して、前記SH RBSP構文構造内に前記sps_range_extensionが存在すると判定することと、
    前記範囲拡張フラグの前記値が0に等しいとの判定に応答して、前記SH RBSP構文構造内に前記sps_range_extensionが存在しないと判定することと、をさらに含む、請求項1に記載のビデオ符号化のための方法。
  3. 前記デコーダによって、他のフラグに対する一般制約制御を提供するために一般制約情報構文内の範囲拡張制約フラグを受信することと、
    前記範囲拡張制約フラグの値が1に等しいとの判定に応答して、前記他のフラグの値が0に等しいと判定することと
    をさらに含む、請求項1に記載のビデオ符号化のための方法。
  4. 前記デコーダによって、前記SPS範囲拡張フラグに対する一般制約制御を提供するために一般制約情報構文内の範囲拡張制約フラグを受信することと、
    前記範囲拡張制約フラグの前記値が1に等しいとの判定に応答して、前記SPS範囲拡張フラグの前記値が0に等しいと判定することと、をさらに含む、請求項1に記載のビデオ符号化のための方法。
  5. ビデオ符号化のための方法であって、
    デコーダによって、シーケンスパラメータセット(SPS)アライメント有効の値に基づいて構文要素sb_coded_flag、abs_remainder、dec_abs_level、およびcoeff_sign_flagnのバイパス復号の前にインデックスivlCurrRangeがアライメントされるかどうかを示す前記SPSアライメント有効フラグを受信する、ことを含む、方法。
  6. 前記SPSアライメント有効フラグの前記値が1に等しいとの判定に応答して、バイパス復号の前に前記ivlCurrRangeがアライメントされると判定することと、
    前記SPSアライメント有効フラグの前記値が0に等しいとの判定に応答して、バイパス復号の前に前記ivlCurrRangeがアライメントされないと判定することと、をさらに含む、請求項5に記載のビデオ符号化のための方法。
  7. 前記デコーダによって、他のフラグに対する一般制約制御を提供するために一般制約情報構文内のバイパスアライメント制約フラグを受信することと、
    前記バイパスアライメント制約フラグの値が1に等しいとの判定に応答して、前記他のフラグの値が0に等しいと判定することと、をさらに含む、請求項5に記載のビデオ符号化のための方法。
  8. 前記デコーダによって、前記SPSアライメント有効フラグに対する一般制約制御を提供するために、一般制約情報構文内のバイパスアライメント制約フラグを受信することと、
    前記バイパスアライメント制約フラグの前記値が1に等しいとの判定に応答して、前記SPSアライメント有効フラグの前記値が0に等しいと判定することと、をさらに含む、請求項5に記載のビデオ符号化のための方法。
  9. ビデオ符号化のための方法であって、
    デコーダによって、拡張精度処理フラグの値に基づいて変換係数についてまた変換処理中に拡張ダイナミックレンジが採用されるかどうかを示す前記拡張精度処理フラグを受信する、ことを含む、方法。
  10. 前記拡張精度処理フラグの前記値が1に等しいとの判定に応答して、前記変換係数についてまた前記変換処理中に前記拡張ダイナミックレンジが採用されると判定することと、
    前記拡張精度処理フラグの前記値が0に等しいとの判定に応答して、前記変換係数についてまたは前記変換処理中に前記拡張ダイナミックレンジが採用されないと判定することと、をさらに含む、請求項9に記載のビデオ符号化のため方法。
  11. 前記デコーダによって、他のフラグに対する一般制約制御を提供するために一般制約情報構文内の拡張精度処理制約フラグを受信することと、
    前記拡張精度処理制約フラグの値が0に等しいとの判定に応答して、前記他のフラグの値が0に等しいと判定することと、をさらに含む、請求項9に記載のビデオ符号化のため方法。
  12. 前記デコーダによって、前記拡張精度処理フラグに対する一般制約制御を提供するために一般制約情報構文内の拡張精度処理制約フラグを受信することと、
    前記拡張精度処理制約フラグの前記値が1に等しいとの判定に応答して、前記拡張精度処理フラグの前記値が0に等しいと判定することと、をさらに含む、請求項9に記載のビデオ符号化のため方法。
  13. ビデオ符号化のための方法であって、
    デコーダによって、永続的ライス適応有効フラグの値に基づいて、前のサブブロックから蓄積されたモード依存統計を採用している各サブブロックの開始時にabs_remainingおよびdec_abs_levelの2値化のためのライスパラメータ導出が初期化されるかどうかを示す、前記永続的ライス適応有効フラグを受信する、ことを含む、方法。
  14. 前記永続的ライス適応有効フラグの前記値が1に等しいとの判定に応答して、前記前のサブブロックから蓄積されたモード依存統計を採用している各サブブロックの前記開始時に2値化のための前記ライスパラメータ導出が初期化されると判定することと、
    前記永続的ライス適応有効フラグの前記値が0に等しいとの判定に応答して、前記ライスパラメータ導出において前のサブブロック状態が採用されないと判定することと、をさらに含む、請求項13に記載のビデオ符号化のための方法。
  15. 前記デコーダによって、他のフラグに対する一般制約制御を提供するために一般制約情報構文内の永続的ライス適応制約フラグを受信することと、
    前記永続的ライス適応制約フラグの値が1に等しいとの判定に応答して、前記他のフラグの値が0に等しいと判定することと、をさらに含む、請求項13に記載のビデオ符号化のための方法。
  16. 前記デコーダによって、前記永続的ライス適応有効フラグに対する一般制約制御を提供するために一般制約情報構文内の永続的ライス適応制約フラグを受信することと、
    前記永続的ライス適応制約フラグの前記値が1に等しいとの判定に応答して、前記永続的ライス適応有効フラグの前記値が0に等しいと判定することと、をさらに含む、請求項13に記載のビデオ符号化のための方法。
  17. ビデオ符号化のための装置であって、
    1つまたは複数のプロセッサと、
    前記1つまたは複数のプロセッサによって実行可能な命令を記憶するように構成されたメモリと、を備え、
    前記1つまたは複数のプロセッサが、前記命令の実行時に請求項1から16のいずれかに記載の方法を実行するように構成される、装置。
  18. 1つまたは複数のコンピュータプロセッサによって実行されたとき、前記1つまたは複数のコンピュータプロセッサに請求項1から16のいずれかに記載の方法を実行させるコンピュータ実行可能命令を記憶する、ビデオ符号化のための非一時的コンピュータ可読記憶媒体。
JP2023547334A 2021-02-04 2022-01-25 ビデオ符号化のための残差および係数の符号化 Pending JP2024506156A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202163145964P 2021-02-04 2021-02-04
US63/145,964 2021-02-04
PCT/US2022/013764 WO2022169641A1 (en) 2021-02-04 2022-01-25 Residual and coefficients coding for video coding

Publications (1)

Publication Number Publication Date
JP2024506156A true JP2024506156A (ja) 2024-02-09

Family

ID=82742524

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023547334A Pending JP2024506156A (ja) 2021-02-04 2022-01-25 ビデオ符号化のための残差および係数の符号化

Country Status (10)

Country Link
US (1) US20230379500A1 (ja)
EP (1) EP4289142A1 (ja)
JP (1) JP2024506156A (ja)
KR (1) KR20230133891A (ja)
CN (1) CN116918335A (ja)
AU (1) AU2022216205A1 (ja)
BR (1) BR112023015649A2 (ja)
CA (1) CA3210744A1 (ja)
MX (1) MX2023009164A (ja)
WO (1) WO2022169641A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114930844A (zh) * 2019-12-30 2022-08-19 北京达佳互联信息技术有限公司 用于视频编解码的残差和系数编解码
US11871038B2 (en) 2021-09-29 2024-01-09 Tencent America LLC Techniques for constraint flag signaling for range extension with residual rice coding extension
US20230098691A1 (en) 2021-09-29 2023-03-30 Tencent America LLC Techniques for constraint flag signaling for range extension with extended precision

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114026863A (zh) * 2019-06-24 2022-02-08 交互数字Vc控股公司 使用高级语法元素发信号通知解码数据的方法和装置

Also Published As

Publication number Publication date
AU2022216205A1 (en) 2023-09-21
CN116918335A (zh) 2023-10-20
MX2023009164A (es) 2023-10-30
EP4289142A1 (en) 2023-12-13
US20230379500A1 (en) 2023-11-23
BR112023015649A2 (pt) 2023-11-28
CA3210744A1 (en) 2022-08-11
WO2022169641A1 (en) 2022-08-11
KR20230133891A (ko) 2023-09-19

Similar Documents

Publication Publication Date Title
CN109076228B (zh) 滤波信息的发信号
AU2012328924B2 (en) Determining boundary strength values for deblocking filtering for video coding
KR20190055113A (ko) 비디오 코딩을 위한 가변 수의 인트라 모드들
JP2024506156A (ja) ビデオ符号化のための残差および係数の符号化
CN114567786B (zh) 以4:4:4色度格式进行视频编解码的方法和装置
KR102521034B1 (ko) 팔레트 모드를 이용한 비디오 코딩의 방법 및 장치
US20240179314A1 (en) Residual and coefficients coding for video coding
JP7438317B2 (ja) 映像エンコードの方法、映像デコードの方法、電子装置、非一時的なコンピュータ可読記憶媒体及びコンピュータプログラム
JP2024502109A (ja) ビデオコーディング用の残差および係数のコーディング
JP7121133B2 (ja) ビデオ符号化のための位置依存の空間変化変換
CN116614625B (zh) 一种视频编码的方法、装置和介质
JP2024513551A (ja) ビデオ符号化復号化のための残差及び係数符号化復号化
JP2022526433A (ja) パレットモードを用いたビデオコーディングの方法および装置
WO2021062017A1 (en) Methods and apparatus of performing rate-distortion analysis for palette mode

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230807

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230807