JP2023510690A - ビデオコーディングのための方法及び装置 - Google Patents

ビデオコーディングのための方法及び装置 Download PDF

Info

Publication number
JP2023510690A
JP2023510690A JP2022535438A JP2022535438A JP2023510690A JP 2023510690 A JP2023510690 A JP 2023510690A JP 2022535438 A JP2022535438 A JP 2022535438A JP 2022535438 A JP2022535438 A JP 2022535438A JP 2023510690 A JP2023510690 A JP 2023510690A
Authority
JP
Japan
Prior art keywords
transform coefficients
transform
row
column
quantization
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
JP2022535438A
Other languages
English (en)
Inventor
ペリンガセリー クリシュナン,マデュ
ジャオ,シン
リウ,シャン
Original Assignee
テンセント・アメリカ・エルエルシー
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 テンセント・アメリカ・エルエルシー filed Critical テンセント・アメリカ・エルエルシー
Publication of JP2023510690A publication Critical patent/JP2023510690A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • 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/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/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/176Methods 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 block, e.g. a macroblock
    • 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/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • 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

Landscapes

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

Abstract

Figure 2023510690000001
本開示の態様は、ビデオデコーディングのための方法及び処理回路を含む装置を提供する。処理回路は、コーディングされたビデオビットストリームから変換ブロック(TB)のコーディング情報をデコードすることができる。コーディング情報は、TBの一方向での変換スキップを示すことができる。処理回路は、複数の量子化ステップに基づいて、TBにおける変換係数を逆量子化することができる。TBにおける第1の変換係数は、複数の量子化ステップのうちの最小のものに基づいて逆量子化されることができる。TBにおける第1の変換係数は、DC空間周波数を有するTBにおける第1の行及び第1の列のうちの1つの変換係数を含むことができる。第1の行及び第1の列のうちの1つは、変換スキップの一方向に沿うことができる。処理回路は、TBにおける逆量子化された変換係数に対して逆変換を実行することができる。

Description

参照による組み込み
本願は、2020年9月24日に提出された、出願番号が63/082812であり、発明の名称が「QUANTIZER DESIGN FOR ONE-DIMENSIONAL TRANSFORM SKIP」である米国仮出願に対して優先権を主張する、2021年5月17日に提出された、出願番号が17/322258であり、発明の名称が「METHOD AND APPARATUS FOR VIDEO CODING」である米国特許出願に対して優先権を主張する。これらの出願のすべての内容は、参照により本願に組み込むものとする。
技術分野
本開示は、一般的にビデオコーディングに関する実施形態を記載する。
本明細書で提供される「背景技術」の説明は、本開示の背景を大まかに示すことを目的とする。ここに名を挙げられている発明者の研究は、この背景技術に記載された範囲において、出願時に従来技術として通常見なされ得ない記載の態様とともに、明示的にも黙示的にも本開示に対する従来技術として認められない。
ビデオコーディング及びデコーディングは、動き補償を伴うインターピクチャ予測を使用して実行することができる。非圧縮デジタルビデオは一連のピクチャを含むことができ、各ピクチャは、例えば、1920×1080輝度サンプルと関連する彩度サンプルの空間寸法を持っている。一連のピクチャは、例えば毎秒60ピクチャ又は60Hzの固定又は可変ピクチャレート(非公式には「フレームレート」とも呼ばれる)を持つことができる。非圧縮ビデオには、顕著なビットレート要件がある。例えば、サンプルあたり8ビットでの1080p60 4:2:0ビデオ(60Hzフレームレートでの1920×1080輝度サンプル解像度)には、1.5Gbit/sに近い帯域幅が必要となる。このようなビデオを1時間使用するには、600GBytesを超える記憶空間が必要である。
ビデオコーディング及びデコーディングの1つの目的は、圧縮によって入力ビデオ信号の冗長性を削減することであり得る。圧縮は、前述の帯域幅及び/又は記憶空間の要件を、場合によっては2桁以上削減するのに役立つ。可逆圧縮と非可逆圧縮の両方、及びそれらの組み合わせを使用することができる。可逆圧縮とは、圧縮された元の信号から元の信号の正確なコピーを再構築できる技法を指す。非可逆圧縮を使用する場合、再構築された信号は元の信号と同一ではない可能性があるが、元の信号と再構築された信号の間の歪みは、再構築された信号を意図されたアプリケーションに役立つ程度に小さい。ビデオの場合、非可逆圧縮が広く採用されている。許容される歪みの量はアプリケーションによって異なる。例えば、特定のコンシューマストリーミングアプリケーションのユーザは、テレビ配信アプリケーションのユーザよりも高い歪みを許容できる。達成可能な圧縮率は、受け入れ可能/許容可能な歪みが大きいほど、圧縮率が高くなることを反映することができる。
ビデオエンコーダ及びデコーダは、例えば、動き補償、変換、量子化及びエントロピーコーディングを含むいくつかの幅広いカテゴリからの技法を利用することができる。
ビデオコーデック技術は、イントラコーディングとして知られる技法を含み得る。イントラコーディングでは、サンプル値は、予め再構築された参照ピクチャからのサンプル又は他のデータを参照せずに表される。一部のビデオコーデックでは、ピクチャは空間的にサンプルのブロックに細分される。サンプルのすべてのブロックがイントラモードでコーディングされると、そのピクチャはイントラピクチャになり得る。イントラピクチャと、独立したデコーダリフレッシュピクチャなどのその派生物とは、デコーダの状態をリセットするために使用できるため、コーディングされたビデオビットストリームとビデオセッションの最初のピクチャとして、又は静止画像として使用することができる。イントラブロックのサンプルは変換にさらすことができ、変換係数はエントロピーコーディングの前に量子化することができる。イントラ予測は、事前変換領域でサンプル値を最小化する技法であり得る。場合によっては、変換後のDC値が小さく、AC係数が小さいほど、エントロピーコーディング後のブロックを表すために所定の量子化ステップサイズで必要なビットが少なくなる。
例えばMPEG-2世代コーディング技術から知られているような従来のイントラコーディングは、イントラ予測を使用しない。しかしながら、いくつかのより新しいビデオ圧縮技術は、例えば、空間的に隣接し、デコード順の先に位置するデータのブロックのエンコード及び/又はデコード中に得られた周囲のサンプルデータ及び/又はメタデータからイントラ予測を試みる技法を含む。そのような技法は、以降、「イントラ予測」技法と呼ばれる。少なくともいくつかのケースでは、イントラ予測は、再構築中の現在ピクチャからの参照データのみを使用し、参照ピクチャからの参照データを使用しないことに注意されたい。
イントラ予測は異なる形態で存在し得る。そのような技法の2つ以上が所定のビデオコーディング技術に使用できる場合、使用中の技法はイントラ予測モードでコーディングすることができる。場合によっては、モードはサブモード及び/又はパラメータを有することができ、それらを個別にコーディングするか、又はモードコードワードに含めることができる。どのコードワードが所定のモード/サブモード及び/又はパラメータの組み合わせに使用されるかは、イントラ予測によるコーディング効率ゲインに影響を与える可能性があるため、コードワードをビットストリームに変換するために使用されるエントロピーコーディング技術も影響を与える可能性がある。
イントラ予測の特定のモードはH.264で導入され、H.265で改良され、さらに共同探索モデル(JEM)、多用途ビデオコーディング(VVC)及びベンチマークセット(BMS)などのより新しいコーディング技術で改良された。予測子ブロックは、既に利用可能なサンプルに属する隣接サンプル値を使用して形成することができる。隣接サンプルのサンプル値は、方向に従って予測子ブロックにコピーされる。使用中の方向への参照は、ビットストリームでコーディングされるか、又はそれ自体を予測され得る。
図1Aを参照すると、右下に示されているのは、H.265の33通りの予測可能な方向(35個のイントラモードのうちの33個の角度モードに対応)から知られる9通りの予測方向のサブセットである。矢印が収束する点(101)は、予測されているサンプルを表す。矢印は、サンプルが予測されている方向を表す。例えば、矢印(102)は、サンプル(101)が、水平軸から45度の角度での右上の1つ又は複数のサンプルから予測されることを示す。同様に、矢印(103)は、サンプル(101)が、水平軸から22.5度の角度での、サンプル(101)の左下の1つ又は複数のサンプルから予測されることを示す。
引き続き図1Aを参照すると、左上には、4×4サンプルの正方形ブロック(104)(太い破線で示される)が示されている。正方形ブロック(104)は、それぞれが、「S」、Y次元におけるその位置(例えば、行インデックス)、及びX次元におけるその位置(例えば、列インデックス)でラベル付けされた16サンプルを含む。例えば、サンプルS21は、Y次元(上から)における2番目のサンプルであり、かつX次元(左から)における1番目のサンプルである。同様に、サンプルS44は、Y及びX次元の両方においてブロック(104)における4番目のサンプルである。ブロックが4×4サンプルのサイズのため、S44は、右下にある。さらに、同様な番号付け体系に従う参照サンプルが示されている。参照サンプルは、R、ブロック(104)に対するそのY位置(例えば、行インデックス)及びX位置(列インデックス)でラベル付けされる。H.264とH.265の両方で、予測サンプルは再構築中のブロックに隣接している。したがって、負の値を使用する必要はない。
イントラピクチャ予測は、シグナリングされた予測方向で適切の隣接サンプルから参照サンプル値をコピーすることで機能することができる。例えば、仮に、コーディングされたビデオビットストリームは、このブロックについて矢印(102)と一致する予測方向(すなわち、サンプルが、水平軸から45度の角度での右上の1つ又は複数の予測サンプルから予測される)を示すシグナリングを含むとする。この場合、サンプルS41、S32、S23及びS14は同一の参照サンプルR05から予測される。次に、サンプルS44は、参照サンプルR08から予測される。
特定の場合において、特に方向が45度で均等に分割されていない場合に、複数の参照サンプルの値は、参照サンプルを算出するために、例えば補間によって組み合わせられることができる。
ビデオコーディング技術が発展するにつれて、可能な方向の数は増加した。H.264(2003年)では、9通りの異なる方向を表すことができた。H.265(2013年)で33通りに増加し、JEM/VVC/BMSは開示時に最大65通りの方向をサポートできる。最も見込みのある方向を識別するための実験が行われ、エントロピーコーディングにおける特定の技法は、少ない数のビットで見込みの高い方向を表すために使用され、見込みの低い方向に対する特定のペナルティを容認する。さらに、方向自体は、隣接する、既にデコードされたブロックで使用される隣接方向から予測される場合がある。
図1Bは、経時的な予測方向の増加数を示すために、JEMによる65通りのイントラ予測方向を示す概略図(180)を示す。
方向を表すコーディングされたビデオビットストリームにおけるイントラ予測方向ビットのマッピングは、ビデオコーディング技術ごとに異なる可能性があり、また、例えば、イントラ予測モードへ乃至コードワードへの予測方向の単純な直接マッピングから、最確モードや類似した技法を含む複雑な適応方式までの範囲とすることができる。しかしながら、すべての場合において、他の特定の方向よりも、ビデオコンテンツにおいて発生する可能性が統計的に低い特定の方向が存在する可能性がある。ビデオ圧縮の目的は冗長性の削減であるため、適切に機能するビデオコーディング技術では、これらの可能性の低い方向は、可能性の高い方向より多くのビット数で表される。
動き補償は、非可逆圧縮技法であり得、予め再構築されたピクチャ又はその一部(参照ピクチャ)からのサンプルデータのブロックを、動きベクトル(以降、「MV」)によって示される方向に空間的にシフトした後、新しく再構築されたピクチャ又はピクチャ部分の予測に使用する技法に関連し得る。場合によっては、参照ピクチャは現在再構築中のピクチャと同じになることがある。MVは、XとYの2次元、又は、第3次元が、使用中の参照ピクチャを示す3次元を持つことができる(後者は間接的に時間次元になることができる)。
一部のビデオ圧縮技法では、サンプルデータの特定の領域に適用可能なMVは、他のMVから、例えば再構築中の領域に空間的に隣接し、デコード順序でそのMVより前であるサンプルデータの別の領域に関連するMVから予測することができる。そうすることで、MVのコーディングに必要なデータの量を大幅に削減することができ、これにより冗長性を取り除き、圧縮を強化する。例えば、カメラから導出される入力ビデオ信号(「ナチュラルビデオ」と呼ばれる)をコーディングする際に、単一のMVが適用される領域より大きい領域が、同様の方向に移動するため、場合によって隣接領域のMVから導出された類似の動きベクトルを使用して予測することができる統計的可能性があるため、MV予測は有効に働くことができる。その結果、特定の領域に対して検出されたMVは、周囲のMVから予測されたMVと類似又は同一であり、エントロピーコーディング後、MVを直接コーディングする場合より少ないビット数で表することができる。場合によっては、MV予測は、元の信号(つまり、「サンプルストリーム」)から導出される信号(つまり、「MV」)の可逆圧縮の例になってもよい。他の場合では、例えばいくつかの周囲のMVから予測子を計算するときの丸め誤差のために、MV予測自体は非可逆になる可能性がある。
H.265/HEVC(ITU-T推奨のH.265、「高効率ビデオコーディング」、2016年12月)には、様々なMV予測メカニズムが記載されている。H.265が提供する多くのMV予測メカニズムのうち、ここで説明するのは、以降、「空間マージ」と呼ばれる技法である。
図2を参照すると、現在ブロック(201)は、空間的にシフトされた同じサイズの以前のブロックから予測可能である、エンコーダによって動き探索過程において発見されたサンプルを含むことができる。そのMVを直接コーディングする代わりに、A0、A1、B0、B1及びB2(それぞれ202から206)で示される5つの周囲のサンプルのいずれか1つに関連付けられるMVを使用して、1つ以上の参照ピクチャに関連付けられるメタデータから、例えば(デコード順序で)最新の参照ピクチャから、MVを導出することができる。H.265では、MV予測は、隣接ブロックが使用しているのと同じ参照ピクチャからの予測子を使用することができる。
本開示の態様は、ビデオエンコード及び/又はデコードのための方法及び装置を提供する。一部の例では、ビデオデコードのための装置は、処理回路を含む。前記処理回路は、コーディングされたビデオビットストリームから変換ブロック(TB)のコーディング情報をデコードすることができる。前記コーディング情報は、前記TBの一方向での変換スキップを示すことができる。前記処理回路は、複数の量子化ステップに基づいて、前記TBにおける変換係数を逆量子化することができる。前記TBにおける第1の変換係数は、前記複数の量子化ステップのうちの最小のものに基づいて逆量子化されることができる。前記TBにおける第1の変換係数は、DC空間周波数を有する前記TBにおける第1の行及び第1の列のうちの1つの変換係数を含むことができる。前記第1の行及び前記第1の列のうちの1つは、前記変換スキップの前記一方向に沿うことができる。前記TBにおける逆量子化された変換係数に対して逆変換を実行することができる。
一例では、前記一方向は、水平方向であり、前記第1の行及び前記第1の列のうちの1つは、前記TBにおける変換係数の第1の行である。前記処理回路は、前記複数の量子化ステップのうちの最小のものに基づいて、前記TBにおける第1の行の変換係数を逆量子化し、前記複数の量子化ステップのうちの別の1つに基づいて、前記TBにおける残りの行の変換係数を逆量子化することができる。
一例では、前記一方向は、水平方向であり、前記第1の行及び前記第1の列のうちの1つは、前記TBにおける変換係数の第1の行である。前記処理回路は、前記複数の量子化ステップのうちの最小のものに基づいて、前記第1の行と前記第1の行に隣接する前記TBにおける1つ以上の追加行との変換係数を逆量子化することができる。前記TBにおける第1の変換係数は、前記TBにおける1つ以上の追加行の変換係数をさらに含むことができる。前記処理回路は、前記複数の量子化ステップのうちの別の1つに基づいて、前記TBにおける残りの行の変換係数を逆量子化することができる。
一例では、前記一方向は、垂直方向であり、前記第1の行及び前記第1の列のうちの1つは、前記TBにおける変換係数の第1の列である。前記処理回路は、前記複数の量子化ステップのうちの最小のものに基づいて、前記TBにおける第1の列の変換係数を逆量子化し、前記複数の量子化ステップのうちの別の1つに基づいて、前記TBにおける残りの列の変換係数を逆量子化することができる。
一例では、前記一方向は、垂直方向であり、前記第1の行及び前記第1の列のうちの1つは、前記TBにおける変換係数の第1の列である。前記処理回路は、前記複数の量子化ステップのうちの最小のものに基づいて、前記第1の列と前記第1の列に隣接する前記TBにおける1つ以上の追加列との変換係数を逆量子化することができる。前記TBにおける第1の変換係数は、前記TBにおける1つ以上の追加列の変換係数をさらに含むことができる。前記処理回路は、前記複数の量子化ステップのうちの別の1つに基づいて、前記TBにおける残りの列の変換係数を逆量子化することができる。
一実施形態では、前記処理回路は、フラグをデコードすることができる。前記フラグは、前記第1の変換係数を前記複数の量子化ステップのうちの最小のものに基づいて逆量子化するかどうかを示すことができる。前記処理回路は、前記第1の変換係数を前記複数の量子化ステップのうちの最小のものに基づいて逆量子化すべきであることを示す前記フラグに応答して、前記複数の量子化ステップのうちの最小のものに基づいて前記TBにおける第1の変換係数を逆量子化することができる。一例では、前記フラグは、前記TB、前記TBを含む複数のTB、コーディングツリーブロック及びタイルのうちの1つに関連付けられる。一例では、前記フラグは、ビデオパラメータセット(VPS)、シーケンスパラメータセット(SPS)、適応パラメータセット(APS)、ピクチャパラメータセット(PPS)及びスライスヘッダのうちの1つで示される。
一例では、前記TBの高さと幅は、それぞれ2と2とのサンプルであり、N及びMが1より大きい整数である。
一実施形態では、前記コーディング情報は、さらに、量子化行列が有効であることを示す。前記量子化行列は、前記TBにおける各変換係数に対応するそれぞれの要素を含むことができる。前記一方向に沿った量子化行列の各行又は列の要素は、同じ値を有することができる。前記処理回路は、初期量子化ステップ及び前記量子化行列に基づいて前記複数の量子化ステップを取得することができる。
一例では、前記第1の変換係数は、前記初期量子化ステップのうちの1つに対応し、AC空間周波数を有する前記TBにおける(i)残りの行と(ii)残りの列とのうちの1つに対応する前記TBにおける残りの変換係数は、前記初期量子化ステップの別の1つに対応する。前記TBにおける(i)残りの行と(ii)残りの列とのうちの1つは、前記一方向に沿うことができる。前記処理回路は、前記初期量子化ステップのうちの1つと、前記量子化行列の第1の行及び第1の列のうちの1つの値とに基づいて、前記複数の量子化ステップのうちの最小のものを取得することができる。前記量子化行列の第1の行及び第1の列のうちの1つは、一方向に沿うことができる。前記処理回路は、前記初期量子化ステップのうちの別の1つと前記量子化行列の残りの行及び残りの列のうちの1つのそれぞれの値とに基づいて、前記TBにおける残りの行及び残りの列のうちの1つについての前記複数の量子化ステップの残りのものを取得することができる。前記量子化行列の残りの行及び残りの列のうちの1つは、前記一方向に沿うことができる。
一例では、前記第1の変換係数は、(i)前記第1の行に隣接する前記TBにおける1つ以上の行の変換係数と、(ii)前記第1の列に隣接する前記TBにおける1つ以上の列の変換係数とのうちの1つをさらに含むことができる。前記TBにおける(i)1つ以上の行と(ii)1つ以上の列のうちの1つは、前記一方向に沿うことができる。前記第1の変換係数は、前記初期量子化ステップのうちの1つに対応することができ、前記TBにおける残りの変換係数は、前記初期量子化ステップの別の1つに対応することができる。前記処理回路は、前記初期量子化ステップのうちの1つと、前記量子化行列の第1の行及び第1の列のうちの1つの値とに基づいて、前記複数の量子化ステップのうちの最小のものを取得することができる。前記量子化行列の第1の行及び第1の列のうちの1つは、前記一方向に沿うことができる。
本開示の態様はまた、ビデオデコードのためにコンピュータによって実行されると、前記コンピュータにビデオデコーディングのための方法を実行させる命令を記憶する非一時的なコンピュータ読取可能媒体を提供する。
開示する主題のさらなる特徴、性質及び様々な利点は、以下の詳細な説明及び添付の図面からより明らかになる。
イントラ予測モードの例示的なサブセットの概略図である。
例示的なイントラ予測方向の説明図である。
一例における現在ブロック及びその周囲の空間マージ候補の概略図である。
一実施形態に係る通信システム(300)の簡略化されたブロック図の概略図である。
一実施形態に係る通信システム(400)の簡略化されたブロック図の概略図である。
一実施形態に係るデコーダの簡略化されたブロック図の概略図である。
一実施形態に係るエンコーダの簡略化されたブロック図の概略図である。
別の実施形態に係るエンコーダのブロック図を示す。
別の実施形態に係るデコーダのブロック図を示す。
本開示の実施形態に係る一次変換基底関数の例を示す。
本開示の実施形態に係る、変換ブロックサイズ及び予測モードに対する様々な変換カーネルの利用可能性の例示的な依存性を示す。
本開示の実施形態に係る、彩度成分のイントラ予測モードに基づく例示的な変換タイプの選択を示す。
本開示の一実施形態に係る、自己ループの重み及びエッジ重みによって特徴付けられる一般的な線グラフ変換(LGT)の例を示す。
本開示の一実施形態に係る例示的な一般化グラフ・ラプラシアン(GGL)行列を示す。
本開示の一実施形態に係る、量子化インデックスと量子化ステップとの間の例示的なマッピング関係を示す。
本開示の一実施形態に係る、量子化インデックスと量子化ステップとの間の例示的なマッピング関係を示す。
本開示の実施形態に係る例示的な変換ブロック及び例示的な量子化行列を示す。
本開示の一実施形態に係る、プロセス(1600)を概説するフローチャートを示す。
一実施形態に係るコンピュータシステムの概略図である。
図3は、本開示の一実施形態に係る通信システム(300)の簡略化されたブロック図を示す。通信システム(300)は、例えばネットワーク(350)を介して互いに通信可能な複数の端末装置を含む。例えば、通信システム(300)は、ネットワーク(350)を介して相互接続された第1の対の端末装置(310)及び(320)を含む。図3の例では、第1の対の端末装置(310)及び(320)は、データの単方向送信を実行する。例えば、端末装置(310)は、ネットワーク(350)を介して他方の端末装置(320)へ送信するためにビデオデータ(例えば、端末装置(310)によってキャプチャされたビデオピクチャのストリーム)をコーディングし得る。エンコードされたビデオデータは、1つ以上のコーディングされたビデオビットストリームの形態で送信することができる。端末装置(320)は、ネットワーク(350)からコーディングされたビデオデータを受信し、コーディングされたビデオデータをデコードしてビデオピクチャを復元し、復元されたビデオデータに従ってビデオピクチャを表示することができる。一方向のデータ送信は、媒体供給用途などで一般的である可能性がある。
別の例では、通信システム(300)は、例えば、ビデオ会議中に発生し得るコーディングされたビデオデータの双方向送信を実行する第2の対の端末装置(330)及び(340)を含む。データの双方向送信の場合、一例では、端末装置(330)及び(340)のそれぞれは、ネットワーク(350)を介して端末装置(330)及び(340)のうちの他方の端末装置へ送信するためにビデオデータ(例えば、端末装置によってキャプチャされたビデオピクチャのストリーム)をコーディングし得る。端末装置(330)及び(340)の一方は、端末装置(330)及び(340)のうちの他方の端末装置によって送信されたコーディングされたビデオデータを受信することができ、コーディングされたビデオデータをデコードしてビデオピクチャを復元することができ、復元されたビデオデータに従って、アクセス可能な表示装置にビデオピクチャを表示することができる。
図3の例では、端末装置(310)、(320)、(330)及び(340)は、サーバ、パーソナルコンピュータ及びスマートフォンとして示され得るが、本開示の原理はこれに制限されることはない。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤー及び/又は専用のビデオ会議機器などにおける用途を見出す。ネットワーク(350)は、例えば有線及び/又は無線通信ネットワークを含む、端末装置(310)、(320)、(330)及び(340)間でコーディングされたビデオデータを伝達する任意の数のネットワークを表す。通信ネットワーク(350)は、回線交換及び/又はパケット交換チャネルでデータを交換することができる。代表的なネットワークは、電気通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク及び/又はインターネットを含む。本議論の目的のために、ネットワーク(350)のアーキテクチャ及びトポロジーは、以下に本明細書で説明されない限り、本開示の動作にとって重要でない場合がある。
図4は、開示する主題の用途の例として、ストリーミング環境におけるビデオエンコーダ及びビデオデコーダの配置を示す。開示する主題は、例えば、ビデオ会議、デジタルTV、及びCD、DVD、メモリスティックなどを含むデジタルメディアへの圧縮ビデオの記憶など、を含む他のビデオ対応アプリケーションに等しく適用可能である。
ストリーミングシステムは、例えば非圧縮のビデオピクチャ(402)のストリームを作成するデジタルカメラなどのビデオソース(401)を含むことができるキャプチャサブシステム(413)を含んでもよい。一例では、ビデオピクチャ(402)のストリームは、デジタルカメラによって取得されたサンプルを含む。エンコードされたビデオデータ(404)(又はコーディングされたビデオビットストリーム)と比較して高データ量を強調するために太線で示されたビデオピクチャ(402)のストリームは、ビデオソース(401)に結合されたビデオエンコーダ(403)を含む電子デバイス(420)によって処理することができる。ビデオエンコーダ(403)は、以下でより詳細に説明されるように、開示する主題の態様を可能にするか或いは実施するためのハードウェア、ソフトウェア、又はそれらの組み合わせを含むことができる。ビデオピクチャ(402)のストリームと比較してより低いデータ量を強調するために細い線で示された、エンコードされたビデオデータ(404)(又はエンコードされたビデオビットストリーム(404))は、将来の使用のためにストリーミングサーバ(405)に記憶することができる。図4のクライアントサブシステム(406)及び(408)のような1つ以上のストリーミングクライアントサブシステムは、ストリーミングサーバ(405)にアクセスして、エンコードされたビデオデータ(404)のコピー(407)及び(409)を検索することができる。クライアントサブシステム(406)は、例えば、電子デバイス(430)におけるビデオデコーダ(410)を含むことができる。ビデオデコーダ(410)は、エンコードされたビデオデータの入方向のコピー(407)をデコードし、ディスプレイ(412)(例えば、表示画面)又は他のレンダリングデバイス(図示せず)でレンダリングできるビデオピクチャ(411)の出方向のストリームを作成する。一部のストリーミングシステムにおいて、エンコードされたビデオデータ(404)、(407)及び(409)(例えば、ビデオビットストリーム)は、特定のビデオコーディング/圧縮規格に従ってエンコードすることができる。これらの規格の例は、ITU-T勧告H.265を含む。一例では、発展中のビデオコーディング規格は、非公式的に多用途ビデオコーディング(VVC)として知られている。開示する主題は、VVCの文脈に使用され得る。
なお、電子デバイス(420)及び(430)は、他の構成要素(図示せず)を含むことができる。例えば、電子デバイス(420)は、ビデオデコーダ(図示せず)を含むことができ、電子デバイス(430)は、ビデオエンコーダ(図示せず)を含むこともできる。
図5は、本開示の実施形態に係るビデオデコーダ(510)のブロック図を示す。ビデオデコーダ(510)は、電子デバイス(530)に含まれることができる。電子デバイス(530)は、受信機(531)(例えば、受信回路)を含むことができる。ビデオデコーダ(510)は、図4の例におけるビデオデコーダ(410)の代わりに使用することができる。
受信機(531)は、ビデオデコーダ(510)によってデコードされる1つ以上のコーディングされたビデオシーケンスを受信することができ、同一又は別の実施形態では、一度に1つのコーディングされたビデオシーケンスを受信してもよく、各コーディングされたビデオシーケンスのデコードは、他のコーディングされたビデオシーケンスから独立している。コーディングされたビデオシーケンスは、エンコードされたビデオデータを記憶する記憶装置へのハードウェア/ソフトウェアリンクであり得るチャネル(501)から受信することができる。受信機(531)は、それぞれの使用エンティティ(図示せず)に転送され得る他のデータ、例えば、コーディングされたオーディオデータ及び/又は補助データストリームとともに、エンコードされたビデオデータを受信し得る。受信機(531)は、コーディングされたビデオシーケンスを他のデータから分離することができる。ネットワークジッタを防止するために、バッファメモリ(515)は、受信機(531)とエントロピーデコーダ/パーサ(520)(以降、「パーサ(520)」)の間に結合されてもよい。特定のアプリケーションでは、バッファメモリ(515)は、ビデオデコーダ(510)の一部である。他の場合、バッファメモリ(515)は、ビデオデコーダ(510)(図示せず)の外部に存在し得る。さらに他の場合、例えば、ネットワークジッタを防止するためにビデオデコーダ(510)の外部にバッファメモリ(図示せず)が存在し、さらに、例えば、再生タイミングを取り扱うためにビデオデコーダ(510)の内部に別のバッファメモリ(515)が存在し得る。受信機(531)が十分な帯域幅及び可制御性を有する記憶/転送装置から、又は等同期ネットワークからデータを受信する際に、バッファメモリ(515)は必要とされないことがあり、又は小さくされることがある。インターネットなどのベストエフォートパケットネットワークで使用するために、バッファメモリ(515)が必要になる場合があり、バッファメモリ(515)は、比較的大きいことがあり、有利には適応サイズであることができ、ビデオデコーダ(510)の外部のオペレーティングシステム又は類似の要素(図示せず)に少なくとも部分的に実施され得る。
ビデオデコーダ(510)は、コーディングされたビデオシーケンスからシンボル(521)を再構築するパーサ(520)を含んでもよい。これらのシンボルのカテゴリは、ビデオデコーダ(510)の動作を管理するために使用される情報を含み、かつ、電子デバイス(530)の不可欠な部分ではないが、図5に示されるように電子デバイス(530)に結合され得るレンダリングデバイス(512)(例えば、表示画面)のようなレンダリングデバイスを制御する情報を潜在的に含む。レンダリングデバイスのための制御情報は、補助強化情報(SEIメッセージ)又はビデオユーザビリティ情報(VUI)パラメータセットフラグメント(図示せず)の形態であってよい。パーサ(520)は、受信されたコーディングされたビデオシーケンスを構文解析/エントロピーデコードすることができる。コーディングされたビデオシーケンスのコーディングは、ビデオコーディング技術又は規格に合わせることができ、可変長コーディング、ハフマンコーディング、文脈感受性を有する若しくは有さない算術コーディングなどを含む様々な原理に従うことができる。パーサ(520)は、グループに対応する少なくとも1つのパラメータに基づいて、コーディングされたビデオシーケンスからビデオデコーダ内の画素の少なくとも1つのサブグループのためのサブグループパラメータのセットを抽出することができる。サブグループは、ピクチャ群(GOP)、ピクチャ、タイル、スライス、マクロブロック、コーディングユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)などを含むことができる。パーサ(520)は、コーディングされたビデオシーケンスから変換係数、量子化パラメータ値、動きベクトルなどのような情報をも抽出することができる。
パーサ(520)は、シンボル(521)を作成するために、バッファメモリ(515)から受信されたビデオシーケンスに対してエントロピーデコード/構文解析動作を実行することができる。
シンボル(521)の再構築は、コーディングされたビデオピクチャ又はその一部(例えば、インター及びイントラピクチャ、インター及びイントラブロック)のタイプ及び他の要因に応じて、複数の異なるユニットに関与することができる。どのユニットが、どのように関与するかは、コーディングされたビデオシーケンスからパーサ(520)によって構文解析されたサブグループ制御情報によって、制御することができる。パーサ(520)と以下の複数のユニットとの間のそのようなサブグループ制御情報の流れは、明確にするために示されていない。
既に述べた機能ブロックに加え、ビデオデコーダ(510)は、以下で説明されるようにいくつかの機能ユニットに概念的に細分することができる。商業的制約で動作する実際の実装では、これらのユニットの多くは、互いに密接に相互作用し、少なくとも部分的には互いに統合することができる。しかしながら、開示する主題を説明する目的のために、以下の機能ユニットへの概念的な細分は適切である。
第1のユニットは、スケーラ/逆変換ユニット(551)である。スケーラ/逆変換ユニット(551)は、使用する変換、ブロックサイズ、量子化因子、量子化スケーリング行列などを含む制御情報と、量子化された変換係数をシンボル(521)としてパーサ(520)から受信する。スケーラ/逆変換ユニット(551)は、アグリゲータ(555)に入力可能なサンプル値を含むブロックを出力することができる。
場合によっては、スケーラ/逆変換ユニット(551)の出力サンプルは、イントラコーディングされたブロック、すなわち、予め再構築されたピクチャからの予測情報を使用していないが、現在ピクチャの予め再構築された部分からの予測情報を使用できるブロックに関係することがある。このような予測情報は、イントラピクチャ予測ユニット(552)によって提供することができる。場合によっては、イントラピクチャ予測ユニット(552)は、現在ピクチャバッファ(558)から取り出された周囲の既に再構築された情報を用いて、再構築中のブロックと同じサイズ及び形状のブロックを生成する。現在ピクチャバッファ(558)は、例えば、部分的に再構築された現在ピクチャ及び/又は完全に再構築された現在ピクチャをバッファリングする。アグリゲータ(555)は、場合によっては、サンプルごとに、イントラ予測ユニット(552)が生成した予測情報を、スケーラ/逆変換ユニット(551)によって提供される出力サンプル情報に追加する。
他の場合では、スケーラ/逆変換ユニット(551)の出力サンプルは、インターコーディングされた、潜在的に動き補償されたブロックに関係することがある。このような場合、動き補償予測ユニット(553)は、参照ピクチャメモリ(557)にアクセスして、予測に使用されるサンプルを取り出すことができる。取り出されたサンプルをブロックに関係するシンボル(521)に従って動き補償した後、出力サンプル情報を生成するように、これらのサンプルを、アグリゲータ(555)によってスケーラ/逆変換ユニット(551)の出力に追加することができる(この場合、残差サンプル又は残差信号と呼ばれる)。動き補償予測ユニット(553)が予測サンプルを取り出す参照ピクチャメモリ(557)内のアドレスは、例えば、X、Y及び参照ピクチャ成分を有し得るシンボル(521)の形態で動き補償予測ユニット(553)に利用可能な動きベクトルによって制御することができる。動き補償は、サブサンプルの正確な動きベクトルが使用中であるときに参照ピクチャメモリ(557)から取り出されたサンプル値の補間、動きベクトル予測メカニズムなどを含むこともできる。
アグリゲータ(555)の出力サンプルは、ループフィルタユニット(556)において様々なループフィルタリング技法によって採用されてもよい。ビデオ圧縮技術は、コーディングされたビデオシーケンス(コーディングされたビデオビットストリームとも呼ばれる)に含まれる、パーサ(520)からのシンボル(521)としてループフィルタユニット(556)に利用可能とされたパラメータによって制御することができ、かつ、コーディングされたピクチャ又はコーディングされたビデオシーケンスの(デコード順で)前の部分のデコード中に取得されたメタ情報に応じるとともに、予め再構築されループフィルタリングされたサンプル値に応じることもできるループ内フィルタ技術を含むことができる。
ループフィルタユニット(556)の出力は、レンダリングデバイス(512)へ出力することができるとともに、将来のインターピクチャ予測で使用するために参照ピクチャメモリ(557)に記憶することができるサンプルストリームであり得る。
特定のコーディングされたピクチャは、完全に再構築されると、将来の予測のために参照ピクチャとして使用することができる。例えば、現在ピクチャに対応するコーディングされたピクチャが完全に再構築され、当該コーディングされたピクチャが(例えば、パーサ(520)によって)参照ピクチャとして識別されると、現在ピクチャバッファ(558)は、参照ピクチャメモリ(557)の一部になることができ、次のコーディングされたピクチャの再構築を開始する前に新しい現在ピクチャバッファを再割り当てすることができる。
ビデオデコーダ(510)は、ITU-T推奨のH.265のような規格の所定のビデオ圧縮技術に従ってデコード動作を実行することができる。コーディングされたビデオシーケンスが、ビデオ圧縮技術又は規格のシンタックスと、ビデオ圧縮技術又は規格で文書化されたプロファイルとの両方に準拠しているという意味で、コーディングされたビデオシーケンスは、使用されているビデオ圧縮技術又は規格によって指定されるシンタックスに準拠し得る。具体的には、プロファイルは、ビデオ圧縮技術又は規格で使用可能なすべてのツールから、特定のツールをそのプロファイルで使用できるツールとして選択することができる。コーディングされたビデオシーケンスの複雑さがビデオ圧縮技術又は規格のレベルで限定される範囲内にあることも、遵守のためには必要である。場合によっては、最大ピクチャサイズ、最大フレームレート、最大再構築サンプルレート(例えば、1秒あたりのメガサンプルで測定される)、最大参照ピクチャサイズなどがレベルによって制限される。レベルによって設定された制限は、いくつかの場合では、仮想参照デコーダ(HRD)の仕様及びコーディングされたビデオシーケンスでシグナリングされたHRDバッファ管理のためのメタデータによってさらに制限され得る。
一実施形態では、受信機(531)は、エンコードされたビデオとともに追加の(冗長な)データを受信することができる。追加のデータは、コーディングされたビデオシーケンスの一部として含まれてもよい。追加のデータは、データを適切にデコードし、及び/又は、元のビデオデータをより正確に再構築するためにビデオデコーダ(510)によって使用され得る。追加のデータは、例えば、時間的、空間的又は信号対雑音比(SNR)エンハンスメントレイヤ、冗長スライス、冗長ピクチャ、前方向誤り訂正コードなどの形態であり得る。
図6は、本開示の実施形態に係るビデオエンコーダ(603)のブロック図を示す。ビデオエンコーダ(603)は、電子デバイス(620)に含まれる。電子デバイス(620)は、送信機(640)(例えば、送信回路)を含む。図4の例におけるビデオエンコーダ(403)の代わりにビデオエンコーダ(603)を使用することができる。
ビデオエンコーダ(603)は、ビデオエンコーダ(603)によってコーディングすべきビデオ画像をキャプチャし得るビデオソース(601)(図6の例では電子デバイス(620)の一部ではない)からビデオサンプルを受信することができる。別の例では、ビデオソース(601)は、電子デバイス(620)の一部である。
ビデオソース(601)は、ビデオエンコーダ(603)によってコーディングすべきソースビデオシーケンスを、任意の適切なビット深度(例えば、8ビット、10ビット、12ビットなど)、任意の色空間(例えば、BT.601 Y CrCB、RGBなど)及び任意の適切なサンプリング構造(例えば、Y CrCb 4:2:0、Y CrCb 4:4:4)であり得るデジタルビデオサンプルストリームの形態で提供し得る。メディア供給システムでは、ビデオソース(601)は、予め準備されたビデオを記憶する記憶装置であり得る。ビデオ会議システムでは、ビデオソース(601)は、ローカル画像情報をビデオシーケンスとしてキャプチャするカメラであり得る。ビデオデータは、順番に見られるときに動きが与えられる複数の個別のピクチャとして提供されてもよい。ピクチャ自体は、画素の空間アレイとして編成されてもよく、各画素は、使用中のサンプリング構造、色空間などに応じて1つ以上のサンプルを含むことができる。当業者は、画素とサンプルとの関係を容易に理解することができる。以下の説明ではサンプルを中心に説明する。
一実施形態によれば、ビデオエンコーダ(603)は、リアルタイムで又はアプリケーションが要求する任意の他の時間制約の下でソースビデオシーケンスのピクチャをコーディングし、コーディングされたビデオシーケンス(643)に圧縮することができる。適切なコーディング速度を実施することは、コントローラ(650)の機能の1つである。一部の実施形態では、コントローラ(650)は、以下で説明される他の機能ユニットを制御し、他の機能ユニットに機能的に結合される。明瞭にするために、結合は図示されていない。コントローラ(650)によって設定されるパラメータは、レート制御関連パラメータ(ピクチャスキップ、量子化、レート歪み最適化技法のラムダ値、・・・)、ピクチャサイズ、ピクチャ群(GOP)レイアウト、最大動きベクトル検索範囲などを含むことができる。コントローラ(650)は、特定のシステム設計に対して最適化されたビデオエンコーダ(603)に関する他の適切な機能を有するように構成することができる。
一部の実施形態では、ビデオエンコーダ(603)は、コーディングループで動作するように構成される。過度に簡略化した説明として、一例では、コーディングループは、ソースコーダ(630)(例えば、コーディングすべき入力ピクチャ及び参照ピクチャに基づくシンボルストリームなどのシンボルの作成を担当する)、及びビデオエンコーダ(603)に埋め込まれた(ローカル)デコーダ(633)を含むことができる。デコーダ(633)は、シンボルを再構築して、(リモート)デコーダが作成するのと同様な方法でサンプルデータを作成する(シンボルとコーディングされたビデオビットストリーム間の任意の圧縮は、開示する主題で考慮されるビデオ圧縮技術では可逆であるためである)。再構築されたサンプルストリーム(サンプルデータ)は参照ピクチャメモリ(634)に入力される。シンボルストリームのデコーディングにより、デコーダの位置(ローカル又はリモート)に関係なくビット正確な結果が得られるため、参照ピクチャメモリ(634)のコンテンツもローカルエンコーダとリモートエンコーダの間でビット正確である。言い換えれば、エンコーダの予測部分は、デコード中に予測を使用するときにデコーダが「見る」のと全く同じサンプル値を、参照ピクチャサンプルとして「見る」。参照ピクチャの同期性のこの基本原理(及び例えばチャネルエラーに起因して同期性を維持できない場合に生じるドリフト)は、いくつかの関連技術にも使用されている。
「ローカル」デコーダ(633)の動作は、前文で図5に関連して既に詳細に説明された、ビデオデコーダ(510)などの「リモート」デコーダの動作と同様であり得る。しかしながら、図5も簡単に参照すると、シンボルが使用可能であり、エントロピーコーダ(645)及びパーサ(520)によるコーディングされたビデオシーケンスへのシンボルのエンコード/デコードは可逆であり得るため、バッファメモリ(515)、及びパーサ(520)を含むビデオデコーダ(510)のエントロピーデコード部分は、ローカルデコーダ(633)では完全に実施されない場合がある。
これで分かるように、デコーダに存在する構文解析/エントロピーデコード以外の如何なるデコーダ技術も、対応するエンコーダに実質的に同一の機能的形態で必ず存在する必要がある。このため、開示する主題は、デコーダの動作に焦点を合わせている。エンコーダ技術の説明は、包括的に説明されたデコーダ技術の逆であるため、省略できる。特定の領域でのみ、より詳細な説明が必要であり、以下に提供される。
動作中、一部の例では、ソースコーダ(630)は、「参照ピクチャ」として指定されたビデオシーケンスからの1つ以上の予めコーディングされたピクチャを参照して入力ピクチャを予測的にコーディングする動き補償予測コーディングを実行してもよい。このようにして、コーディングエンジン(632)は、入力ピクチャの画素ブロックと、入力ピクチャへの予測基準として選択され得る参照ピクチャの画素ブロックとの差異をコーディングする。
ローカルビデオデコーダ(633)は、ソースコーダ(630)で作成されたシンボルに基づいて、参照ピクチャとして指定され得るピクチャのコーディングされたビデオデータをデコードすることができる。コーディングエンジン(632)の動作は、有利には非可逆プロセスであり得る。コーディングされたビデオデータがビデオデコーダ(図6に示されていない)でデコードされ得るとき、再構築されたビデオシーケンスは、通常、いくつかの誤差を伴うソースビデオシーケンスのレプリカであってもよい。ローカルビデオデコーダ(633)は、ビデオデコーダによって参照ピクチャに対して実行され得るデコードプロセスを再現し、再構築された参照ピクチャを参照ピクチャキャッシュ(634)に記憶させることができる。このようにして、ビデオエンコーダ(603)は、遠端ビデオデコーダによって取得される再構築された参照ピクチャと共通するコンテンツ(送信エラー無し)を有する再構築された参照ピクチャのコピーをローカルに記憶し得る。
予測器(635)は、コーディングエンジン(632)の予測検索を実行することができる。つまり、新しいコーディングすべきピクチャについて、予測器(635)は、(候補の参照画素ブロックとしての)サンプルデータ、又は、参照ピクチャの動きベクトル、ブロック形状など、新しいピクチャの適切な予測基準として機能し得る特定のメタデータを参照ピクチャメモリ(634)で検索することができる。予測器(635)は、適切な予測基準を見つけるために、サンプルブロック/画素ブロックごとに動作することができる。場合によっては、予測器(635)で取得された検索結果によって決定されるように、入力ピクチャは、参照ピクチャメモリ(634)に記憶された複数の参照ピクチャから引き出された予測基準を有してもよい。
コントローラ(650)は、例えば、ビデオデータをエンコードするために使用されるパラメータ及びサブグループパラメータの設定を含む、ソースコーダ(630)のコーディング動作を管理することができる。
前述のすべての機能ユニットの出力は、エントロピーコーダ(645)でエントロピーコーディングできる。エントロピーコーダ(645)は、例えば、ハフマンコーディング、可変長コーディング、算術コーディングなどの技術に従ってシンボルを可逆圧縮することにより、様々な機能ユニットによって生成されたシンボルをコーディングされたビデオシーケンスに変換する。
送信機(640)は、エンコードされたビデオデータを記憶する記憶装置へのハードウェア/ソフトウェアリンクであり得る通信チャネル(660)を介した送信の準備のために、エントロピーコーダ(645)によって作成されたコーディングされたビデオシーケンスをバッファリングすることができる。送信機(640)は、ビデオエンコーダ(603)からのコーディングされたビデオデータを、送信されるべき他のデータ、例えば、コーディングされたオーディオデータ及び/又は補助データストリーム(ソースは示されていない)とマージすることができる。
コントローラ(650)は、ビデオエンコーダ(603)の動作を管理し得る。コーディング中、コントローラ(650)は、各コーディングされたピクチャに特定のコーディングされたピクチャタイプを割り当てることができ、これは、それぞれのピクチャに適用され得るコーディング技法に影響を及ぼし得る。例えば、ピクチャは、多くの場合、次のピクチャタイプのいずれかとして割り当てられ得る。
イントラピクチャ(Iピクチャ)は、予測のソースとしてシーケンス内の他のいかなるピクチャも使用せずにコーディング及びデコードされ得るものであり得る。一部のビデオコーデックは、例えば、インディペンデントデコーダリフレッシュ(Independent Decoder Refresh、「IDR」)ピクチャを含む、異なるタイプのイントラピクチャを許容する。当業者は、Iピクチャの変形及びそれらのそれぞれの用途及び特徴を知っている。
予測ピクチャ(Pピクチャ)は、各ブロックのサンプル値を予測するために最大1つの動きベクトル及び参照インデックスを使用したイントラ予測又はインター予測によりコーディング及びデコーディングされ得るものであってもよい。
双方向予測ピクチャ(Bピクチャ)は、各ブロックのサンプル値を予測するために最大2つの動きベクトル及び参照インデックスを使用したイントラ予測又はインター予測によりコーディング及びデコーディングされ得るものであってもよい。同様に、多重予測ピクチャは、単数のブロックの再構築のために3つ以上の参照ピクチャ及び関連メタデータを使用することができる。
ソースピクチャは、一般に、複数のサンプルブロック(例えば、それぞれ、4×4、8×8、4×8、又は16×16サンプルのブロック)に空間的に細分され、ブロックごとにコーディングされ得る。ブロックは、ブロックのそれぞれのピクチャに適用されるコーディングされた割り当てによって決定された他の(既にコーディングされた)ブロックを参照して予測的にコーディングされ得る。例えば、Iピクチャのブロックは、非予測的にコーディングされてもよく、或いは、同一のピクチャの既にコーディングされたブロック(空間予測又はイントラ予測)を参照して予測的にコーディングされてもよい。Pピクチャの画素ブロックは、1つの予めコーディングされた参照ピクチャを参照して、空間予測を介して又は時間予測を介して予測的にコーディングされ得る。Bピクチャのブロックは、1つ又は2つの予めコーディングされた参照ピクチャを参照して、空間予測を介して又は時間予測を介して予測的にコーディングされ得る。
ビデオエンコーダ(603)は、ITU-T推奨のH.265などの予め設定されたビデオコーディング技術又は規格に従って、コーディング動作を実行することができる。動作中、ビデオエンコーダ(603)は、入力ビデオシーケンスの時間的及び空間的冗長性を利用する予測コーディング動作を含む、様々な圧縮動作を実行することができる。したがって、コーディングされたビデオデータは、使用されるビデオコーディング技術又は規格によって指定された構文に従う場合がある。
一実施形態では、送信機(640)は、エンコードされたビデオとともに追加のデータを送信してもよい。ソースコーダ(630)は、このようなデータをコーディングされたビデオシーケンスの一部として含み得る。追加のデータは、時間的/空間的/SNRエンハンスメントレイヤ、冗長なピクチャやスライスなどの他の形態での冗長データ、SEIメッセージ、VUIパラメータセットフラグメントなどを含み得る。
ビデオは、時系列で複数のソースピクチャ(ビデオピクチャ)としてキャプチャされ得る。イントラピクチャ予測(「イントラ予測」と略されることが多い)は、所定のピクチャにおける空間相関を利用し、インターピクチャ予測は、ピクチャ間の(時間的又は他の)相関を利用する。一例では、現在ピクチャと呼ばれるエンコード/デコード中の特定のピクチャは、ブロックに分割される。現在ピクチャにおけるブロックが、ビデオにおける予めコーディングされ、まだバッファリングされている参照ピクチャの参照ブロックに類似している場合、現在ピクチャにおけるブロックは、動きベクトルと呼ばれるベクトルによってコーディングすることができる。動きベクトルは、参照ピクチャの参照ブロックを指し、複数の参照ピクチャが使用されている場合、参照ピクチャを識別する第3次元を有することができる。
一部の実施形態では、インターピクチャ予測において双予測技法を使用することができる。双予測技法によれば、ビデオにおける現在ピクチャよりデコード順序がそれぞれ前である(ただし、表示順序でそれぞれ過去及び未来にあり得る)第1の参照ピクチャ及び第2の参照ピクチャのような2つの参照ピクチャを使用する。現在ピクチャ内のブロックは、第1の参照ピクチャ内の第1の参照ブロックを指す第1の動きベクトル、及び第2の参照ピクチャ内の第2の参照ブロックを指す第2の動きベクトルによってコーディングすることができる。ブロックは、第1の参照ブロックと第2の参照ブロックとの組み合わせによって予測することができる。
さらに、マージモード技法をインターピクチャ予測に適用して、コーディング効率を向上させることができる。
本開示の一部の実施形態によれば、インターピクチャ予測及びイントラピクチャ予測などの予測は、ブロック単位で実行される。例えば、HEVC規格によれば、一連のビデオピクチャ内のピクチャは、圧縮のためにコーディングツリーユニット(CTU)に分割され、ピクチャ内のCTUは、64×64画素、32×32画素、又は16×16画素など、同一のサイズを有する。一般に、CTUは、1つの輝度CTBと2つの彩度CTBである3つのコーディングツリーブロック(CTB)を含む。各CTUは、1つ以上のコーディングユニット(CU)に再帰的に四分木分割することができる。例えば、64×64画素のCTUは、1つの64×64画素のCU、4つの32×32画素のCU、又は16個の16×16画素のCUに分割することができる。一例では、各CUを解析して、インター予測タイプ又はイントラ予測タイプなど、CUの予測タイプを決定する。CUは、時間的及び/又は空間的予測可能性に応じて、1つ以上の予測ユニット(PU)に分割される。通常、各PUは、1つの輝度予測ブロック(PB)と2つの彩度PBを含む。一実施形態では、コーディング(エンコード/デコード)における予測動作は、予測ブロックの単位で実行される。輝度予測ブロックを予測ブロックの例として用いて、予測ブロックは、8×8画素、16×16画素、8×16画素、16×8画素などの画素の値(例えば、輝度値)の行列を含む。
図7は、本開示の別の実施形態に係るビデオエンコーダ(703)の図を示す。ビデオエンコーダ(703)は、一連のビデオピクチャ内の現在ビデオピクチャにおけるサンプル値の処理ブロック(例えば、予測ブロック)を受信し、処理ブロックを、コーディングされたビデオシーケンスの一部であるコーディングされたピクチャにエンコードするように構成される。一例では、図4の例におけるビデオエンコーダ(403)の代わりにビデオエンコーダ(703)を使用する。
HEVCの例では、ビデオエンコーダ(703)は、8×8サンプルのような予測ブロックなどの処理ブロックのサンプル値の行列を受信する。ビデオエンコーダ(703)は、例えばレート歪み最適化を用いて、処理ブロックをイントラモード、インターモード、又は双予測モードにより最も良くコーディングするか否かを決定する。処理ブロックがイントラモードでコーディングされようとする場合、ビデオエンコーダ(703)は、イントラ予測技法を用いて処理ブロックをコーディングされたピクチャにエンコードすることができる。また、処理ブロックがインターモード又は双予測モードでコーディングされようとする場合、ビデオエンコーダ(703)は、それぞれインター予測又は双予測技法を用いて、処理ブロックをコーディングされたピクチャにエンコードすることができる。特定のビデオコーディング技術では、マージモードは、予測子以外にコーディングされた動きベクトル成分の利便を介することなく、1つ以上の動きベクトル予測子から動きベクトルを導出するインターピクチャ予測サブモードであり得る。特定の他のビデオコーディング技術では、対象ブロックに適用可能な動きベクトル成分が存在し得る。一例では、ビデオエンコーダ(703)は、処理ブロックのモードを決定するためのモード決定モジュール(図示せず)などの他の構成要素を含む。
図7の例では、ビデオエンコーダ(703)は、図7に示すように互いに結合されたインターエンコーダ(730)、イントラエンコーダ(722)、残差算出部(723)、スイッチ(726)、残差エンコーダ(724)、統括制御部(721)及びエントロピーエンコーダ(725)を含む。
インターエンコーダ(730)は、現在ブロック(例えば、処理ブロック)のサンプルを受信し、該ブロックを参照ピクチャ内の1つ以上の参照ブロック(例えば、前のピクチャ及び後のピクチャ内のブロック)と比較し、インター予測情報(例えば、インターエンコード技法による冗長情報の記述、動きベクトル、マージモード情報)を生成し、インター予測情報に基づいて任意の適切な技法を用いてインター予測結果(例えば、予測ブロック)を算出するように構成される。一部の例では、参照ピクチャは、エンコードされたビデオ情報に基づいてデコードされたデコード参照ピクチャである。
イントラエンコーダ(722)は、現在ブロック(例えば、処理ブロック)のサンプルを受信し、場合によっては該ブロックを同一のピクチャで既にコーディングされたブロックと比較し、量子化された変換後係数を生成し、場合によってはイントラ予測情報(例えば、1つ以上のイントラエンコード技法によるイントラ予測方向情報)をも生成するように構成される。一例では、イントラエンコーダ(722)は、イントラ予測情報及び同一のピクチャ内の参照ブロックに基づいてイントラ予測結果(例えば、予測ブロック)も算出する。
統括制御部(721)は、統括制御データを決定し、統括制御データに基づいてビデオエンコーダ(703)の他の構成要素を制御するように構成される。一例では、統括制御部(721)は、ブロックのモードを決定し、モードに基づいて制御信号をスイッチ(726)に提供する。例えば、モードがイントラモードである場合、統括制御部(721)は、残差算出部(723)が使用するためのイントラモード結果を選択するようにスイッチ(726)を制御するとともに、イントラ予測情報を選択してイントラ予測情報をビットストリームに含ませるようにエントロピーエンコーダ(725)を制御する。また、モードがインターモードである場合、統括制御部(721)は、残差算出部(723)が使用するためのインター予測結果を選択するようにスイッチ(726)を制御するとともに、インター予測情報を選択してインター予測情報をビットストリームに含ませるようにエントロピーエンコーダ(725)を制御する。
残差算出部(723)は、受信されたブロックとイントラエンコーダ(722)又はインターエンコーダ(730)から選択された予測結果との差(残差データ)を算出するように構成される。残差エンコーダ(724)は、残差データに基づいて動作し、残差データをエンコードして変換係数を生成するように構成される。一例では、残差エンコーダ(724)は、残差データを空間領域から周波数領域へと変換し、変換係数を生成するように構成される。その後、変換係数は量子化処理を受けて、量子化された変換係数が得られる。様々な実施形態では、ビデオエンコーダ(703)は、残差デコーダ(728)をも含む。残差デコーダ(728)は、逆変換を実行し、デコード残差データを生成するように構成される。デコード残差データは、イントラエンコーダ(722)及びインターエンコーダ(730)によって適切に使用することができる。例えば、インターエンコーダ(730)は、デコード残差データ及びインター予測情報に基づいて、デコードブロックを生成することができ、イントラエンコーダ(722)は、デコード残差データ及びイントラ予測情報に基づいて、デコードブロックを生成することができる。一部の例では、デコードブロックは、デコードピクチャを生成するように適切に処理され、デコードピクチャは、メモリ回路(図示せず)にバッファリングされ、参照ピクチャとして使用することができる。
エントロピーエンコーダ(725)は、エンコードブロックを含めるようにビットストリームをフォーマットするように構成される。エントロピーエンコーダ(725)は、HEVC規格などの適切な規格に従って様々な情報をビットストリームに含ませるように構成される。一例では、エントロピーエンコーダ(725)は、統括制御データ、選択された予測情報(例えば、イントラ予測情報又はインター予測情報)、残差情報及び他の適切な情報をビットストリームに含ませるように構成される。開示する主題によれば、インターモード又は双予測モードのマージサブモードでブロックをコーディングする場合、残差情報はないことに留意されたい。
図8は、本開示の別の実施形態に係るビデオデコーダ(810)の図を示す。ビデオデコーダ(810)は、コーディングされたビデオシーケンスの一部であるコーディングされたピクチャを受信し、コーディングされたピクチャをデコードして、再構築ピクチャを生成するように構成される。一例では、図4の例におけるビデオデコーダ(410)の代わりにビデオデコーダ(810)を使用する。
図8の例では、ビデオデコーダ(810)は、図8に示されるように互いに結合されたエントロピーデコーダ(871)、インターデコーダ(880)、残差デコーダ(873)、再構築モジュール(874)及びイントラデコーダ(872)を含む。
エントロピーデコーダ(871)は、コーディングされたピクチャから、コーディングされたピクチャを構成するシンタックス要素を表す特定のシンボルを再構築するように構成することができる。このようなシンボルは、例えば、ブロックがコーディングされるモード(例えば、イントラモード、インターモード、双予測モード、後の2つのマージサブモード又は他のサブモード)、それぞれイントラデコーダ(872)又はインターデコーダ(880)による予測に使用される特定のサンプル又はメタデータを識別できる予測情報(例えば、イントラ予測情報又はインター予測情報)、例えば、量子化された変換係数の形態での残差情報などを含むことができる。一例では、予測モードがインター又は双予測モードであれば、インター予測情報は、インターデコーダ(880)に提供される。また、予測タイプがイントラ予測タイプであれば、イントラ予測情報は、イントラデコーダ(872)に提供される。残差情報は、逆量子化を施すことができ、残差デコーダ(873)に提供される。
インターデコーダ(880)は、インター予測情報を受信し、インター予測情報に基づいてインター予測結果を生成するように構成される。
イントラデコーダ(872)は、イントラ予測情報を受信し、イントラ予測情報に基づいて予測結果を生成するように構成される。
残差デコーダ(873)は、逆量子化を実行することで、逆量子化された変換係数を抽出し、逆量子化された変換係数を処理して残差を周波数領域から空間領域に変換するように構成される。残差デコーダ(873)は、(量子化器パラメータ(QP)を含めるように)特定の制御情報をも必要とする場合があり、この情報は、エントロピーデコーダ(871)によって提供されてもよい(データパスは、低ボリューム制御情報のみであり得るため、示されていない)。
再構築モジュール(874)は、空間領域において、残差デコーダ(873)によって出力された残差と、(場合によってはインター又はイントラ予測モジュールによって出力される)予測結果とを組み合わせて、再構築ビデオの一部となり得る再構築ピクチャの一部であり得る再構築ブロックを形成するように構成される。なお、視覚的品質を改善するために、デブロッキング動作などの他の適切な動作を実行することができる。
なお、ビデオエンコーダ(403)、(603)及び(703)とビデオデコーダ(410)、(510)及び(810)は、任意の適切な技法を用いて実施することができる。一実施形態では、ビデオエンコーダ(403)、(603)及び(703)とビデオデコーダ(410)、(510)及び(810)は、1つ以上の集積回路を用いて実施することができる。別の実施形態では、ビデオエンコーダ(403)、(603)及び(603)とビデオデコーダ(410)、(510)及び(810)は、ソフトウェア命令を実行する1つ以上のプロセッサを用いて実施することができる。
本開示の態様は、1次元(1D)変換スキップのための量子化器を含む。本開示は、AOMedia Video 2(AV2)で使用されるような、1D変換スキップ用の量子化器の設計を含む、ビデオデータの効率的な圧縮のために設計された一連のビデオコーディング技術に関する。一例では、AV2などでは、8ビット及び/又は10ビットの変換コアを利用することができる。
AOMedia Video 1(AV1)で使用されるような一次変換の実施形態を以下に説明する。拡張コーディングブロックパーティションをサポートするために、AV1などでは、複数の変換サイズ(例えば、各次元で4点から64点の範囲)と変換形状(例えば、正方形、高さと幅の比率が2:1、1:2、4:1、又は1:4の長方形)を使用することができる。
2D変換プロセスでは、コーディングされた残差ブロックの次元ごとに異なる1D変換を含むことができるハイブリッド変換カーネルを使用することができる。一次1D変換は、a)4点、8点、16点、32点、64点のDCT-2、b)4点、8点、16点の非対称DST(ADST)(例えば、DST-4、DST-7)及び対応する反転バージョン、及び/又は、c)4点、8点、16点、32点の恒等変換(IDX)を含むことができる。図9は、本開示の実施形態に係る一次変換基底関数の例を示す。図9の例における一次変換基底関数は、N点入力を有するDCT-2及び非対称DST(DST-4及びDST-7)のための基底関数を含む。図9に示す一次変換基底関数は、AV1で使用することができる。
ハイブリッド変換カーネルの利用可能性は、変換ブロックサイズと予測モードに依存し得る。図10Aは、変換ブロックサイズ(例えば、第3の列に示されるサイズ)及び予測モード(例えば、第3の列に示されるイントラ予測及びインター予測)に対する様々な変換カーネル(例えば、第1の列に示され、第2の列に記述される変換タイプ)の利用可能性の例示的な依存性を示す。例示的なハイブリッド変換カーネルと、予測モード及び変換ブロックサイズに基づく利用可能性とは、AV1で使用することができる。図10Aを参照し、シンボル「→」と「↓」は、それぞれ、水平次元(水平方向とも呼ばれる)と垂直次元(垂直方向とも呼ばれる)を示す。シンボル「レ」と「×」は、対応するブロックサイズと予測モードでの変換カーネルの利用可能性を示す。例えば、シンボル「レ」は、変換カーネルが利用可能であることを示し、シンボル「×」は、変換カーネルが利用不可であることを示す。
一例では、変換タイプ(1010)は、図10Aの第1の列に示されるように、ADST_DCTによって示される。変換タイプ(1010)は、図10Aの第2の列に示されるように、垂直方向のADST及び水平方向のDCTを含む。図10Aの第3の列によれば、変換タイプ(1010)は、ブロックサイズが16×16以下(例えば、16×16サンプル、16×16輝度サンプル)である場合、イントラ予測及びインター予測に利用可能である。
一例では、変換タイプ(1020)は、図10Aの第1の列に示されるように、V_ADSTによって示される。変換タイプ(1020)は、図10Aの第2の列に示されるように、垂直方向にADSTを含み、水平方向にIDTX(すなわち、単位行列)を含む。したがって、変換タイプ(1020)(例えば、V_ADST)は、垂直方向に実行され、水平方向に実行されない。図10Aの第3の列によれば、変換タイプ(1020)は、ブロックサイズに関係なく、イントラ予測に利用不可である。変換タイプ(1020)は、ブロックサイズが16×16(例えば、16×16サンプル、16×16輝度サンプル)より小さい場合、インター予測に利用可能である。
一例では、図10Aは、輝度成分用である。彩度成分の場合、変換タイプ(又は変換カーネル)の選択を暗黙的に実行することができる。一例では、イントラ予測残差の場合、変換タイプは、図10Bに示されるように、イントラ予測モードに従って選択することができる。インター予測残差の場合、変換タイプは、同位置輝度ブロックの変換タイプの選択に従って選択することができる。したがって、一例では、彩度成分の変換タイプは、ビットストリームでシグナリングされない。
線グラフ変換(LGT)は、AV2などの一次変換のような変換で使用することができる。一例では、LGTは、以下に説明されるように、様々なDCT及び離散サイン変換(DST)を含む。LGTは、32点及び64点の1次元(1D)DSTを含むことができる。
グラフは、関心対象間の親和性関係をモデル化するために使用できる頂点とエッジのセットを含む一般的な数学的構造である。重みのセットがエッジに割り当てられ、必要に応じて頂点に割り当てられる重み付きグラフは、信号/データのロバストなモデリングのためのスパース表現を提供することができる。LGTは、多様なブロック統計へのより良い適応を提供することにより、コーディング効率を向上させることができる。分離可能なLGTは、データから線グラフを学習して、ブロックの残差信号の基礎となる行及び列方向の統計をモデル化することにより設計し最適化することができ、関連する一般化グラフ・ラプラシアン(GGL)行列を使用してLGTを導出することができる。
図11は、本開示の一実施形態に係る、自己ループの重み(例えば、vc1、vc2)及びエッジ重みwによって特徴付けられる一般的なLGTの例を示す。重み付きグラフG(W、V)の場合、GGL行列は、次のように定義することができる。
=D-W+V (式1)
ここで、Wは、非負のエッジ重みwを含む隣接行列であり、Dは、対角次数行列であり、Vは、自己ループの重みvc1とvc2を示す対角行列であり得る。図12は、行列Lの例を示す。
LGTは、以下のようにGGL行列Lの固有分解によって導出することができる。
=UΦU (式2)
ここで、直交行列Uの列は、LGTの基底ベクトルであり、Φは、対角固有値行列であり得る。
様々な例では、特定のDCT及びDST(例えば、DCT-2、DCT-8及びDST-7)は、特定の形式のGGLから導出した一連のLGTのサブセットである。DCT-2は、vc1を0に設定する(例えば、vc1=0)ことにより導出することができる。DST-7は、vc1をwに設定する(例えば、vc1=w)ことにより導出することができる。DCT-8は、vc2をwに設定する(例えば、vc2=w)ことにより導出することができる。DST-4は、vc1を2wに設定する(例えば、vc1=2w)ことにより導出することができる。DCT-4は、vc2を2wに設定する(例えば、vc2=2w)ことにより導出することができる。
一部の例では、AV2などでは、LGTは、行列乗算として実装することができる。4点(4p)のLGTコアがLcにvc1を2wcに設定することにより導出できるため、4p LGTコアは、DST-4である。8点(8p)のLGTコアは、Lcにvc1を1.5wに設定することにより導出することができる。一例では、16点(16p)のLGTコア、32点(32p)のLGTコア、又は64点(64p)のLGTコアなどのLGTコアは、vc1をwに、vc2を0に設定することにより導出することができ、LGTコアはDST-7になり得る。
本開示の態様によれば、V_DCTは、垂直方向のみにDCTを適用する1D変換スキームを指し、H_DCTは、水平方向のみにDCTを適用する1D変換スキームを指し、V_ADSTは、垂直方向のみにADST又は任意の適切な非DCT変換を適用する1D変換スキームを指し、H_ADSTは、水平方向のみにADST又は任意の適切な非DCT変換を適用する1D変換スキームを指すことができる。さらに、V_LGTは、垂直方向のみにLGTを適用する1D変換スキームを指し、H_LGTは、水平方向のみにLGTを適用する1D変換スキームを指すことができる。
様々な実施形態では、AV1などでは、変換係数の量子化は、DC及びAC変換係数に対して異なる量子化ステップサイズ(例えば、Qstep)を適用し、及び/又は輝度及び彩度変換係数に対して異なるQstepを適用してよい。一例では、量子化ステップサイズ(例えば、Qstep)を指定するために、基準量子化構文要素(例えば、base_q_idxなどのインデックス)は、最初にフレームヘッダーにシグナリングされる。基準量子化構文要素(例えば、base_q_idx)は、輝度AC係数のQstepを指定する8ビットの固定長コードであり得る。基準量子化構文要素(例えば、base_q_idx)の有効な範囲は、[0,255]であり得る。基準量子化構文要素(例えば、base_q_idx)をシグナリングした後、基準量子化構文要素(例えば、base_q_idx)に関連する輝度DC係数のデルタ値をさらにシグナリングすることができる。輝度DC係数のデルタ値は、DeltaQYDcとして示すことができる。
2つ以上の色プレーン(色成分とも呼ばれる)がある場合、フラグ(例えば、diff_uv_deltaフラグ)をシグナリングして、異なる量子化インデックス値が色成分(例えば、Cb及びCr色成分)に適用されるかどうかを示すことができる。フラグ(例えば、diff_uv_deltaフラグ)が0としてシグナリングされる場合、異なる色成分は、同一の量子化インデックス値を有することができる。これにより、彩度DC係数の基準量子化構文要素(例えば、base_q_idx)に関連するデルタ値(例えば、DeltaQUDcとして示される)及びAC係数の基準量子化構文要素(例えば、base_q_idx)に関連するデルタ値(例えば、DeltaQUAcとして示される)のみがシグナリングされる。それ以外の場合、フラグ(例えば、diff_uv_deltaフラグ)がゼロ以外であるとシグナリングされる場合、例えば、基準量子化構文要素(例えば、base_q_idx)に関連する、Cb彩度成分のDC係数のデルタ値(例えば、DeltaQUDcとして示される)と、Cr彩度成分のDC係数のデルタ値(例えば、DeltaQVDcとして示される)と、Cb彩度成分のAC係数のデルタ値(例えば、DeltaQUAcとして示される)と、Cr彩度成分のAC係数のデルタ値(例えば、DeltaQVAcとして示される)とを含むデルタ値がシグナリングされる。
上記デコードされたデルタ値(例えば、DeltaQYDc、DeltaQUAc、DeltaQUDc、DeltaQVAc及びDeltaQVDc)の1つ以上を、基準量子化構文要素(例えば、base_q_idx)に追加して、量子化インデックス(例えば、Q_indices)を導出することができる。量子化インデックス(例えば、Q_indices)は、さらに、量子化インデックス(例えば、Q_indices)とQstepとの間のマッピング関係に従って、Qstepにマッピングすることができる。一例では、マッピング関係は、テーブル(例えば、ルックアップテーブル)、グラフなどによって表される。DC係数のマッピング関係は、AC係数のマッピング関係とは異なり得る。
一般に、量子化インデックスからQstepへのマッピングは、N1の内部ビット深度及びN2の量子化インデックスに対して行うことができ、ここで、N1とN2が正の整数である。したがって、マッピング関係は、ルックアップテーブル(例えば、DC係数の場合はDc_Qlookup[N1][N2]で、AC係数の場合はAc_Qlookup[N1][N2]である)で指定することができる。
図13は、本開示の一実施形態に係る、DC係数に対する、量子化インデックス(例えば、Q_index)とQstepとの間の例示的なマッピング関係を示す。図13に示す一例では、N1が3で、N2が256であるため、量子化インデックスからQstepへのマッピングは、3つの内部ビット深度(例えば、8ビット、10ビット、12ビット)と256の量子化インデックスに対して行われる。これにより、マッピング関係は、1つ以上のルックアップテーブル(例えば、Dc_Qlookup[3][256])によって指定することができる。一例では、ルックアップテーブルDc_Qlookup[3][256]は、3つのテーブルを含み、各テーブルが256のエントリ又は値を含む。
図14は、本開示の一実施形態に係る、AC係数に対する、量子化インデックス(例えば、Q_index)とQstepとの間の例示的なマッピング関係を示す。図14に示す一例では、N1が3で、N2が256であるため、量子化インデックスからQstepへのマッピングは、3つの内部ビット深度(例えば、8ビット、10ビット、12ビット)と256の量子化インデックスに対して行われる。これにより、マッピング関係は、1つ以上のルックアップテーブル(例えば、Ac_Qlookup[3][256])によって指定することができる。一例では、ルックアップテーブルAc_Qlookup[3][256]は、3つのテーブルを含み、各テーブルが256のエントリ又は値を含む。
1つ以上の量子化行列(wt_matrix_refとiwt_matrix_refなどのQMatrixとして示される)は、異なる変換係数帯域の適応量子化に使用することができる。一例では、変換係数帯域は、空間周波数範囲内の変換係数を含む。変換ブロック(TB)のサイズに応じて、量子化行列は、異なる変換係数に適用されるスケール因子の値を指定することができる。したがって、最終的なQstepは、最初のQstepとスケール因子に基づいて定義することができる。一例では、最終的なQstep(Qstep)は、最初のQstep(Qstep)とスケール因子に基づいて次のように定義される。
Qstep=(Qstep*スケール因子+16)/32 (式3)
図15は、本開示の一実施形態に係る量子化行列(QMatrix)(1500)の例を示す。量子化行列(QMatrix)(1500)は、最終的なQstepを決定するために使用できる複数のスケール因子c11~c14、c21~c24、c31~c34及びc41~c44を含む。
1つ以上の量子化行列は、変換係数(例えば、Y、U及びV変換係数)に対して指定することができる。図15を参照し、一例では、QMatrix(1500)は、TB(1501)における変換係数(例えば、t11~t14、t21~t24、t31~t34及びt41~t44)に対して指定される。QMatrix(1500)の幅と高さなどの次元は、TB(1501)の幅と高さなどの次元と同一にすることができる。1つ以上の量子化行列のうちの1つは、Qmatrixインデックスで示すことができる。一実施形態では、最大15個の量子化行列(QMatrices)は、Y、U及びV変換係数に対して指定される。Qmatrixインデックス(例えば、0~14の範囲の整数)は、15個の量子化行列(QMatrices)のうちの1つでスケール因子の平坦性を示すことができる。
図13及び図14を参照して説明された量子化プロセスは、適切に適合させることができる。一実施形態では、AV2などでは、図13及び図14に示される個別のルックアップテーブル(例えば、6つのルックアップテーブルDc_Qlookup[3][256]及びAc_Qlookup[3][256])は、統合ルックアップテーブルに置き換えることができる。例えば、AV1量子化プロセスで使用される複数のルックアップテーブルは、単一のルックアップテーブルに統合することができる。したがって、QindexとQstepとの間のマッピング関係(例えば、QindexからQstepへのマッピング)は、マッピングテーブル(又はルックアップテーブル)の代わりに指数関数を使用して定義することができる。さらに、10ビットのビデオ及び/又は12ビットのビデオに対して定義されたQstep値は、8ビットのビデオに対して定義されたルックアップテーブルから導出することができる。
一実施形態では、AV1などでは、ブロック(例えば、TB)における変換係数は、DC変換係数(例えば、TB(1501)におけるt11などのブロック内の第1の変換係数)とAC変換係数(例えば、TB(1501)におけるt12~t14、t21~t24、t31~t34、t41~t44などのブロック内の残りの変換係数)に対して個別のQstep値を使用して、量子化及び/又は逆量子化される。ブロックにおけるDC変換係数に使用されるQstepは、DC Qstep(QstepDC))と呼ばれてもよく、ブロックにおけるAC変換係数に使用されるQstepは、AC Qstep(QstepAC)と呼ばれてもよい。一例では、DC Qstep(QstepDC)は、AC Qstep(QstepAC)より小さい。
一部の例では、有効である場合に、量子化行列(wt_matrix_refとiwt_matrix_refなどのQMatrix)によって記述されるように、スケール因子(例えば、図15のc11)を各変換係数(例えば、図15のt11)に適用することができる。ブロック(例えば、コーディングブロック、変換ブロックTB)に使用される変換タイプが水平次元及び/又は垂直次元での変換スキップ(例えば、恒等変換)を含む場合、QMatrix(有効である場合)は、フラット行列(例えば、重み付けなし)になるように選択することができる。一例では、ブロックに使用される変換タイプが水平次元と垂直次元の両方での変換スキップを含む場合、変換行列が単位行列(又はIDTX)であるため、変換はブロックに適用されない。
一例では、ブロックに使用される変換タイプは、水平次元での変換スキップを含むが、垂直次元での変換スキップを含まないため、変換タイプは、垂直方向に実行され、水平方向に実行されない。変換タイプは、V_DCT、V_ADST、V_FLIPADSTなどを含むことができる。上記スキームには、次の問題が発生する可能性がある。図15を参照すると、一例では、V_DCT、V_ADST、V_FLIPADSTなどの変換タイプを使用するブロックにおける第1の行(例えば、行(1511))の変換係数(例えば、t11~t14)は、DC係数であり、ブロックにおける後続の行(例えば、行(1512)~(1514))の変換係数は、正弦波周波数が行ごとに増加するAC係数である。したがって、ブロックにおける第1の行(例えば、行(1511))全体にDC係数が含まれるため、ブロックにおける第1の係数(例えば、t11)のみにDC Qstep(QstepDC)を使用し、ブロックにおける後続の係数(例えば、t12~t14、t21~t24、t31~t34及びt41~t44)にAC Qstep(QstepAC)を使用することは、準最適であり得る。したがって、第1の行に対してより正確な量子化/逆量子化を行うことが重要である。したがって、より小さなQstep(例えば、QstepDC)で第1の行を量子化するか又は逆量子化する方が有利である。さらに、QMatrix(有効である場合)は、範囲全体でフラットであり、例えば、QMatrixの要素は、同じ値を有する。
一例では、ブロックに使用される変換タイプは、垂直次元の変換スキップを含むが、水平次元の変換スキップを含まないため、変換タイプは、水平方向に実行され、垂直方向に実行されない。変換タイプは、H_DCT、H_ADST、H_FLIPADSTなどを含むことができる。上記スキームには、次の問題が発生する可能性がある。図15を参照し、一例では、H_DCT、H_ADST、H_FLIPADSTなどの変換タイプを使用するブロック(例えば、TB(1501))における第1の列(例えば、列(1521))の変換係数(例えば、t11、t21、t31及びt41)は、DC係数であり、ブロックにおける後続の列(例えば、列(1522)~(1524))の変換係数は、正弦波周波数が列ごとに増加するAC係数である。図15を参照し、列(1522)は、変換係数t12、t22、t32及びt42を含み、列(1523)は、変換係数t13、t23、t33及びt43を含み、列(1524)は、変換係数t14、t24、t34及びt44を含む。したがって、ブロックにおける第1の列(例えば、列(1521))全体にDC係数が含まれるため、ブロックにおける第1の係数(例えば、t11)のみにDC Qstep(QstepDC)を使用し、ブロックにおける後続の係数(例えば、t12~t14、t21~t24、t31~t34及びt41~t44)にAC Qstep(QstepAC)を使用することは、準最適であり得る。したがって、第1の列に対してより正確な量子化/逆量子化を行うことが重要である。したがって、より小さなQstep(例えば、QstepDC)で第1の列を量子化するか又は逆量子化する方が有利である。さらに、QMatrix(有効である場合)は、範囲全体でフラットであり、例えば、QMatrixの要素は、同じ値を有する。
1D変換スキップは、1つの次元(例えば、水平次元又は垂直次元)での変換スキップを指すことができるため、1D変換スキップを使用した変換は、ブロックの1つの次元で実行される。1D変換は、ブロックの1つの次元のみに適用される変換を指すことができ、変換は1D変換スキップを含む。1D変換は、1D水平変換又は1D垂直変換を指すことができる。1D水平変換は、ブロックの水平次元のみに適用される変換を指すことができ、変換は垂直次元での1D変換スキップを含む。1D垂直変換は、ブロックの垂直次元のみに適用される変換を指すことができ、変換は水平次元での1D変換スキップを含む。
2D変換スキップは、2つの次元(例えば、水平次元及び垂直次元)での変換スキップを指すことができるため、ブロックには変換がなく、変換行列は、単位行列である。一例では、2D変換スキップを使用するブロックの場合、1つの量子化ステップ(例えば、Qstep)のみは、ブロックに使用される。変換スキップがない場合、ブロックにおける2つの次元で変換を実行することができる。
図15を参照し、一例では、TB(1501)は、変換スキップなしで2D変換を使用して変換される。これにより、第1の変換係数t11は、DC変換係数であるため、DCステップ(QstepDC)で量子化されるか又は逆量子化され、TB(1501)における残りの変換係数又はAC変換係数は、ACステップ(QstepAC)で量子化されるか又は逆量子化される。一例では、DCステップ(QstepDC)がACステップ(QstepAC)より小さいため、DC係数は、AC変換係数より正確に量子化及び/又は逆量子化される。
本開示の態様によれば、上記のように、2D変換スキップを使用するか又は変換スキップを使用せずに変換されたブロックのための量子化プロセス及び/又は逆量子化プロセスと比較して、異なる量子化プロセス及び/又は逆量子化プロセスは、1D変換スキップで変換されたブロック(例えば、TB、CB、PB、輝度ブロック、彩度ブロック、輝度TB、彩度TBなど)に使用することができる。図15を再び参照し、一例では、TB(1501)は、1D変換スキップで変換される。例えば、TB(1501)は、垂直次元又は水平次元での1D変換スキップで変換される。これにより、第1の変換係数(例えば、t11)に加えて、第1の列(1521)又は第1の行(1511)における残りの変換係数は、DC変換係数であり得る。一般に、DC変換係数は、AC変換係数より重要である可能性があるため、(例えば、より小さな量子化ステップを使用して)より正確に量子化するか又は逆量子化することができる。したがって、第1の変換係数(例えば、t11)だけをDCステップ(QstepDC)で量子化するか又は逆量子化する代わりに、第1の列(1521)又は第1の行(1511)におけるDC変換係数を同じDCステップ(QstepDC)で量子化及び/又は逆量子化することができる。
本開示の態様によれば、ブロック(例えば、TB)のコーディング情報は、コーディングされたビデオビットストリームからデコードすることができる。一例では、ブロックは、輝度ブロックである。一例では、ブロックは、彩度ブロックである。コーディング情報は、ブロックの一方向(スキップ方向とも呼ばれる)での変換スキップ(1D変換スキップ)を示すことができる。ブロックにおける変換係数は、複数の量子化ステップに基づいて逆量子化することができる。一例では、複数の量子化ステップは、DCステップ(QstepDC)及びACステップ(QstepAC)などの2つの量子化ステップを含む。しかしながら、他の例では3つ以上の量子化ステップを使用することができる。ブロックにおける第1の変換係数は、複数の量子化ステップのうちの最小のものに基づいて逆量子化することができる。ブロックにおける第1の変換係数は、DC空間周波数を有するブロックにおける第1の行及び第1の列のうちの1つの変換係数を含むことができる。第1の行及び第1の列のうちの1つは、変換スキップの一方向に沿うことができる。さらに、ブロックにおける逆量子化された変換係数に対して逆変換を実行することができる。
一方向は、水平方向であっても垂直方向であってもよい。一方向が水平方向である場合、ブロックにおける第1の変換係数は、DC空間周波数を有するブロックにおける第1の行の変換係数を含み、ここで、第1の行の変換係数がDC変換係数である。
一方向が垂直方向である場合、ブロックにおける第1の変換係数は、DC空間周波数を有するブロックにおける第1の列の変換係数を含み、ここで、第1の列の変換係数がDC変換係数である。
一例では、複数の量子化ステップは、DCステップ(QstepDC)及びACステップ(QstepAC)を含み、複数の量子化ステップのうちの最小のものは、DCステップ(QstepDC)である。
一例では、ブロックの高さ(又はブロック高さ)と幅(又はブロック幅)は、それぞれ2と2サンプルであり、N及びMは1より大きい整数であり得る。
一実施形態では、一方向は、水平方向である。ブロックの変換タイプは、1D垂直変換である。第1の行及び第1の列のうちの1つは、ブロックにおける変換係数の第1の行である。ブロックにおける第1の行の変換係数は、複数の量子化ステップのうちの最小のもの(例えば、DCステップ(QstepDC))に基づいて逆量子化することができる。ブロックにおける残りの行の変換係数は、複数の量子化ステップの別の1つ(例えば、ACステップ(QstepAC))に基づいて逆量子化することができる。
本開示の態様によれば、ブロックの変換タイプが、V_LGT、V_DCT、V_ADST、V_FLIPADSTなどの1D垂直変換である場合、DCステップ(QstepDC)は、ブロックにおける第1の行の変換係数(又はDC変換係数)を量子化するか又は逆量子化するために適用することができる。ACステップ(QstepAC)は、ブロックにおける残りの行の変換係数(又はAC変換係数)を量子化するか又は逆量子化するために適用することができる。図15を参照し、TB(1501)は、1D垂直変換によって得られる。したがって、第1の行(1511)の変換係数t11~t14は、DC変換係数であり、残りの行(1512)~(1514)の変換係数は、AC変換係数である。これにより、DCステップ(QstepDC)は、TB(1501)における第1の行(1511)の変換係数t11~t14に適用することができる。ACステップ(QstepAC)は、TB(1501)における残りの行(1512)~(1514)の変換係数t21~t24、t31~t34及びt41~t44に適用することができる。
一実施形態では、一方向は、水平方向である。第1の行及び第1の列のうちの1つは、ブロックにおける変換係数の第1の行である。ブロックの変換タイプは、1D垂直変換である。第1の行と第1の行に隣接するブロックにおける1つ以上の追加行との変換係数は、複数の量子化ステップのうちの最小のもの(例えば、DCステップ(QstepDC))に基づいて逆量子化することができる。ブロックにおける第1の変換係数は、ブロックにおける1つ以上の追加行の変換係数をさらに含むことができる。ブロックにおける残りの行の変換係数は、複数の量子化ステップの別の1つ(例えば、ACステップ(QstepAC))に基づいて逆量子化することができる。
一実施形態では、ブロックの変換タイプは、V_LGT、V_DCT、V_ADST、V_FLIPADSTなどの1D垂直変換である。ブロックの第1の行のDC変換係数に加えて、第1の行に隣接する1つ以上の行のAC変換係数も、重要であり、かつブロックにおける残りの行の残りのAC変換係数より小さい量子化ステップで量子化及び/又は逆量子化される。これにより、DCステップ(QstepDC)は、ブロックにおける第1の行と第1の行に隣接する1つ以上の行との変換係数に適用することができる。ACステップ(QstepAC)は、ブロックにおける残りの行の残りのAC変換係数に適用することができる。図15を参照し、TB(1501)は、1D垂直変換によって得られる。したがって、第1の行(1511)の変換係数t11~t14は、DC変換係数であり、残りの行(1512)~(1514)の変換係数は、AC変換係数である。一例では、第1の行に隣接する1つ以上の行は、行(1512)を含む。これにより、DCステップ(QstepDC)は、第1の行(1511)の変換係数t11~t14と行(1512)の変換係数t21~t24とに適用することができる。ACステップ(QstepAC)は、TB(1501)における残りの行(1513)~(1514)の残りのAC変換係数t31~t34及びt41~t44に適用することができる。
一実施形態では、一方向は、垂直方向である。ブロックの変換タイプは、1D水平変換である。第1の行及び第1の列のうちの1つは、ブロックにおける変換係数の第1の列である。ブロックにおける第1の列の変換係数は、複数の量子化ステップのうちの最小のもの(例えば、DCステップ(QstepDC))に基づいて逆量子化することができる。ブロックにおける残りの列の変換係数は、複数の量子化ステップの別の1つ(例えば、ACステップ(QstepAC))に基づいて逆量子化することができる。
本開示の態様によれば、ブロックの変換タイプがH_LGT、H_DCT、H_ADST、H_FLIPADSTなどの1D水平変換である場合、DCステップ(QstepDC)は、ブロックにおける第1の列の変換係数(又はDC変換係数)に適用することができる。ACステップ(QstepAC)、ブロックにおける残りの列の変換係数(又はAC変換係数)に適用することができる。図15を参照し、TB(1501)は、1D水平変換によって得られる。したがって、第1の列(1521)の変換係数t11、t21、t31及びt41は、DC変換係数であり、残りの列(1522)~(1524)の変換係数は、AC変換係数である。これにより、DCステップ(QstepDC)は、TB(1501)における第1の列(1521)の変換係数t11、t21、t31及びt41に適用することができる。ACステップ(QstepAC)は、TB(1501)における残りの列(1522)~(1524)の変換係数t12~t14、t22~t24、t32~t34及びt42~t44に適用することができる。
一実施形態では、一方向は、垂直方向である。第1の行及び第1の列のうちの1つは、ブロックにおける変換係数の第1の列である。ブロックの変換タイプは、1D水平変換である。ブロックにおける、第1の列と第1の列に隣接する1つ以上の追加列との変換係数は、複数の量子化ステップのうちの最小のもの(例えば、DCステップ(QstepDC))に基づいて逆量子化することができる。ブロックにおける第1の変換係数は、ブロックにおける1つ以上の追加列の変換係数をさらに含むことができる。ブロックにおける残りの列の変換係数は、複数の量子化ステップの別の1つ(例えば、ACステップ(QstepAC))に基づいて逆量子化することができる。
一実施形態では、ブロックの変換タイプは、H_LGT、H_DCT、H_ADST、H_FLIPADSTなどの1D水平変換である。ブロックの第1の列のDC変換係数に加えて、第1の列に隣接する1つ以上の列のAC変換係数も、重要であり、かつブロックにおける残りの列の残りのAC変換係数より小さい量子化ステップで量子化及び/又は逆量子化される。これにより、DCステップ(QstepDC)は、ブロックにおける第1の列と第1の列に隣接する1つ以上の列の変換係数に適用することができる。ACステップ(QstepAC)は、ブロックにおける残りの列の残りのAC変換係数に適用することができる。図15を参照し、TB(1501)は、1D垂直変換によって得られる。したがって、第1の列(1521)の変換係数t11、t21、t31及びt41は、DC変換係数であり、残りの列(1522)~(1524)の変換係数は、AC変換係数である。一例では、第1の列に隣接する1つ以上の列は、列(1522)を含む。これにより、DCステップ(QstepDC)は、第1の列(1521)の変換係数t11、t21、t31及びt41、並びに列(1522)の変換係数t12、t22、t32及びt42に適用することができる。ACステップ(QstepAC)は、TB(1501)における残りの列(1523)~(1524)の残りのAC変換係数t13、t14、t23、t24、t33、t34、t43及びt44に適用することができる。
本開示の態様によれば、第1の変換係数を複数の量子化ステップのうちの最小のものに基づいて逆量子化するかどうかを示すフラグ(又は制御フラグ)などのシグナリング情報をコーディング情報からデコードすることができる。フラグが、第1の変換係数を複数の量子化ステップのうちの最小のものに基づいて逆量子化すべきであることを示す場合、複数の量子化ステップのうちの最小のものに基づいて第1の変換係数を逆量子化することができる。一例では、ブロックにおける残りの変換係数は、複数の量子化ステップの別のものに基づいて逆量子化される。
フラグが、第1の変換係数を複数の量子化ステップのうちの最小のものに基づいて逆量子化すべきでないことを示す場合、ブロックにおける第1の変換係数のうちの1つ(例えば、ブロックにおける左上の変換係数)は、複数の量子化ステップのうちの最小のものに基づいて逆量子化することができ、ブロックにおける残りの変換係数は、複数の量子化ステップの別のものに基づいて逆量子化することができる。
フラグは、ブロック(例えば、TB)、ブロック(例えば、TB)を含む複数のブロック、コーディングツリーブロック(CTB)及びタイルのうちの1つなど、異なるレベルに関連付けることができる。一例では、フラグは、ブロックレベルにある。一例では、フラグは、ブロック、ブロックを含む複数のブロック、CTB、タイルなどに対してシグナリングされる。
フラグは、ビデオパラメータセット(VPS)、シーケンスパラメータセット(SPS)、適応パラメータセット(APS)、ピクチャパラメータセット(PPS)、スライスヘッダなどの高レベルの構文で示すことができる(例えば、シグナリングすることができる)。
本開示の態様によれば、フラグ(又は制御フラグ)を使用して、ブロック(例えば、TB(1501))における少なくとも第1の行又は少なくとも第1の列の複数の変換係数を量子化及び/又は逆量子化するために単一の量子化ステップ(例えば、DCステップ(QstepDC))が適用されるかどうかを示すことができる。一例では、フラグは、ブロックにおける少なくとも第1の行又は少なくとも第1の列の複数の変換係数を量子化及び/又は逆量子化する際の単一の量子化ステップの適用を制御する(例えば、有効にするか又は無効にする)ために使用される。フラグは、ブロックレベル(例えば、TBレベル、PBレベル又はCTBレベル)、タイルレベルなど、任意の適切なレベルに関連付けることができる。
一実施形態では、フラグは、ブロックの変換タイプが1D水平変換又は1D垂直変換などの1D変換である場合のみに書き込まれ、読み取られる。一実施形態では、フラグは、変換タイプが少なくとも1つの事前定義された変換タイプのうちの1つである場合のみに書き込まれ、読み取られる。一例では、フラグは、ブロックの変換タイプがV_DCT、H_DCT、V_ADST、H_ADST、V_FLIPADST及びH_FLIPADSTのうちの1つである場合のみに書き込まれ、読み取られる。
一例では、フラグがオフの場合、単一の量子化ステップ(例えば、DCステップ(QstepDC))は、ブロックにおける少なくとも第1の行又は少なくとも第1の列の複数の変換係数を量子化及び/又は逆量子化するために適用される。
フラグがオンの場合、単一の量子化ステップ(例えば、DCステップ(QstepDC))は、ブロックにおける少なくとも第1の行又は少なくとも第1の列の複数の変換係数を量子化及び/又は逆量子化するために適用されない。代わりに、量子化ステップ(例えば、DCステップ(QstepDC))は、ブロックにおける単一の変換係数(例えば、第1の変換係数)に適用され、別の量子化ステップ(例えば、ACステップ(QstepAC))は、ブロックにおける残りの変換係数に適用される。例えば、第1の行(例えば、行(1511))の変換係数t11~t14は、DC変換係数である。フラグがオンの場合、DCステップ(QstepDC))は、行(1511)のt11に適用され、ACステップ(QstepAC)は、行(1511)の変換係数t12~t14に適用される。さらに、ACステップは、行(1512)~(1514)の変換係数t21~t24、t31~t34及びt41~t44にそれぞれ適用される。
本開示の態様によれば、単一の量子化ステップ(例えば、DCステップ(QstepDC))を適用して、ブロック(例えば、TB(1501))における少なくとも第1の行又は少なくとも第1の列の複数の変換係数を量子化及び/又は逆量子化することができ、ブロックのブロック幅とブロック高さがサイズ閾値(例えば、2)を超える。一例では、ブロック幅及び/又はブロック高さがサイズ閾値以下である場合、ブロックにおける少なくとも第1の行又は少なくとも第1の列の複数の変換係数を量子化及び/又は逆量子化する際の単一の量子化ステップの適用は無効になる。
本開示の態様によれば、ブロックのブロック幅とブロック高さがそれぞれ2と2サンプルである場合、ブロックにおける少なくとも第1の行又は少なくとも第1の列の複数の変換係数を量子化及び/又は逆量子化する際の単一の量子化ステップの適用が有効になる。一例では、ブロック幅は、4、8、16、32、64及び128サイズのうちの1つであるが、これらに限定されない。ブロック高さは、4、8、16、32、64及び128サイズのうちの1つであるが、これらに限定されない。
本開示の態様によれば、ブロックにおける少なくとも第1の行又は少なくとも第1の列の複数の変換係数を量子化及び/又は逆量子化する際の単一の量子化ステップの適用は、高レベルの構文フラグで示し、例えば、高レベルのパラメータセット(例えば、VPS、SPS、APS及びPPS)又は高レベルのヘッダ(例えば、スライスヘッダ)でシグナリングすることができる。
本開示の態様によれば、量子化行列(QMatrix)を使用する適応量子化は、1D変換スキップを使用した変換を使用して得られたブロックに適用することができる。量子化行列(QMatrix)は、例えば、追加のオプション(例えば、1つ以上の行列)を追加することによって、一方向での変換スキップを使用したブロックをサポートするように拡張することができる。1D変換スキップを使用した変換は、1D変換(例えば、1D垂直変換、1D水平変換)であり得る。量子化行列(QMatrix)のスケール因子(又は要素)は、式(3)で記述されるように、ブロックの量子化及び/又は逆量子化のための量子化ステップを決定するために使用することができる。一実施形態では、量子化行列(QMatrix)を使用する適応量子化は、4、8、16、32、64及び128を含むがこれらに限定されないブロック幅及びブロック高さを有するブロックをサポートすることができる。ブロックに適用すべき量子化行列(QMatrix)を示すインデックスは、符号なしの5ビット整数としてシグナリングすることができる。
一実施形態では、量子化行列(QMatrix)の要素(又はスケール因子)は、(i)2D変換スキップを含む変換(IDTX)又は(ii)変換スキップなしの2D変換に使用される量子化行列の1つ以上の要素に基づくことができる。例えば、4x4輝度ブロックの変換スキップなしの2D変換に使用される第1の量子化行列(例えば、第1のQMatrix)は、{32,43,73,97,43,67,94,110,73,94,137,150,97,110,150,200}である。第2の量子化行列(例えば、第2のQMatrix)における要素は、第1の量子化行列(例えば、第1のQMatrix)からのものであり得、第2のQMatrixは、1D垂直変換(例えば、V_DCT)を使用したブロック(例えば、輝度ブロック)をサポートすることができる。一例では、第2のQMatrixの第1の行の要素は、32を使用でき、第2のQMatrixの第2の行の要素は、43などを使用でき、第2のQMatrixは、{32,32,32,32、43,43,43,43、67,67,67,67、73,73,73,73}である。
一実施形態では、変換は、V_LGT、V_DCT、V_ADST又はV_FLIPADSTなどの1D垂直変換であり、量子化行列(QMatrix)は、1D垂直変換を使用したブロックをサポートするために行方向のフラット行列で拡張することができる。量子化行列(QMatrix)は、各行の要素(又はスケール因子)が同一である行方向のフラット行列であり得る。図15を再び参照し、量子化行列(QMatrix)(1500)が行方向のフラット行列である場合、スケール因子c11~c14は、同一であり、スケール因子c21~c24は、同一であり、スケール因子c31~c34は、同一であり、スケール因子c41~c44は、同一である。一実施形態では、量子化行列(QMatrix)は、(i)2D変換スキップを含む変換(IDTX)又は(ii)変換スキップなしの2D変換に使用される量子化行列の一部(事前定義された行など)から選択することができる。
一実施形態では、変換は、H_LGT、H_DCT、H_ADST又はH_FLIPADSTなどの1D水平変換であり、量子化行列(QMatrix)は、1D水平変換を使用したブロックをサポートするために列方向のフラット行列で拡張することができる。量子化行列(QMatrix)は、各列の要素(又はスケール因子)が同一である列方向のフラット行列であり得る。図15を再び参照し、量子化行列(QMatrix)(1500)が列方向のフラット行列である場合、スケール因子c11、c21、c31及びc41は、同一であり、スケール因子c12、c22、c32及びc42は、同一であり、スケール因子c13、c23、c33及びc43は、同一であり、スケール因子c14、c24、c34及びc44は、同一である。一実施形態では、量子化行列(QMatrix)は、(i)2D変換スキップを含む変換(IDTX)又は(ii)変換スキップなしの2D変換に使用される量子化行列の一部(事前定義された列など)から選択することができる。
本開示における実施形態は、任意の順序で組み合わされてもよい。一実施形態では、ブロックの一方向への変換スキップ(1D変換スキップ)を示すことに加えて、コーディング情報は、量子化行列(QMatrix)が有効であることを示す。量子化行列は、ブロックにおける各変換係数に対応するそれぞれの要素を含むことができる。一方向に沿った量子化行列の各行又は列の要素は、同じ値を有することができる。複数の量子化ステップは、例えば、式(3)によって記述されるように、初期量子化ステップ及び量子化行列に基づいて取得することができる。一例では、初期量子化ステップは、初期DCステップ及び初期ACステップを含む。初期DCステップは、初期ACステップより小さくすることができる。
一例では、量子化行列と、量子化及び/又は逆量子化すべきブロックは、同じ次元(同じ幅及び同じ高さなど)を有する。
量子化行列は、行方向のフラット行列であっても列方向のフラット行列であってもよい。一方向が水平方向である場合、量子化行列は、行方向のフラット行列であり、量子化行列の同じ行の要素又はスケール因子が同一であるため、同一値(行値とも呼ばれる)を有する。複数の量子化ステップは、ブロックにおける変換係数の行に対応する初期量子化ステップと、行方向のフラット行列における対応する行値とに基づいて取得することができる。
図15を参照し、行方向のフラット行列は、量子化行列(1530)である。量子化行列(1530)は、それぞれ行値a~dを有する行(1531)~(1534)を含む。量子化行列(1530)の幅及び高さなどの次元は、TB(1501)の幅及び高さなどの次元と同一であり得る。
一方向が垂直方向である場合、量子化行列は、列方向のフラット行列であり、量子化行列の同じ列の要素又はスケール因子が同一であるため、同一値(列値とも呼ばれる)を有する。複数の量子化ステップは、ブロックにおける変換係数の列に対応する初期量子化ステップと、列方向のフラット行列における対応する列値とに基づいて取得することができる。
図15を参照し、列方向のフラット行列は、量子化行列(1540)である。量子化行列(1540)は、それぞれ列値e~hを有する列(1541)~(1544)を含む。量子化行列(1540)の幅及び高さなどの次元は、TB(1501)の幅及び高さなどの次元と同一であり得る。
一実施形態では、第1の変換係数は、初期量子化ステップのうちの1つに対応する。ブロックにおける残りの変換係数は、初期量子化ステップの別の1つに対応する。ブロックにおける残りの変換係数は、AC空間周波数を有するブロックにおける(i)残りの行と、(ii)残りの列とのうちの1つに対応する。ブロックにおける(i)残りの行と、(ii)残りの列とのうちの1つは、一方向に沿うことができる。複数の量子化ステップのうちの最小のものは、初期量子化ステップのうちの1つと、量子化行列の第1の行及び第1の列のうちの1つの値とに基づいて取得することができる。量子化行列の第1の行及び第1の列のうちの1つは、一方向に沿うことができる。複数の量子化ステップの残りのものは、初期量子化ステップのもう1つと量子化行列の残りの行及び残りの列のうちの1つのそれぞれの値とに基づいて、ブロックにおける残りの行及び残りの列のうちの1つに対して取得することができる。量子化行列の残りの行及び残りの列のうちの1つは、一方向に沿うことができる。
一例では、第1の変換係数は、ブロック(例えば、TB(1501))の第1の行(例えば、行(1511))の変換係数(例えば、t11~t14)を含む。第1の変換係数(例えば、t11~t14)は、初期量子化ステップのうちの1つ(例えば、初期DCステップ)に対応し、ブロックにおける残りの変換係数は、AC空間周波数を有するブロックにおける残りの行(例えば、行(1512)~(1514))の変換係数に対応する。ブロックにおける残りの変換係数は、初期量子化ステップのもう1つ(例えば、初期ACステップ)に対応する。
複数の量子化ステップは、初期量子化ステップ及び量子化行列(1530)に基づいて取得することができる。第1の行(1511)についての複数の量子化ステップのうちの最小のもの(例えば、最終DCステップ)は、初期DCステップと、量子化行列の第1の行の値(例えば、量子化行列(1530)の行値a)とに基づいて取得することができる。行(1512)についての最終ACステップは、初期量子化ステップのもう1つ(例えば、初期ACステップ)及び行値bに基づいて取得することができる。行(1513)についての最終ACステップは、初期量子化ステップのもう1つ(例えば、初期ACステップ)及び行値cに基づいて取得することができる。行(1514)についての最終ACステップは、初期量子化ステップのもう1つ(例えば、初期ACステップ)及び行値dに基づいて取得することができる。残りの行(1512)~(1514)についての複数の量子化ステップの残りのものは、それぞれ、行(1512)~(1514)についての最終ACステップを含む。ここで見られるように、一例では、複数の量子化ステップは、第1の行(1511)についての最終DCステップ及び行(1512)~(1514)についての最終ACステップを含む4つの量子化ステップなど、3つ以上の量子化ステップを含む。
一例では、第1の変換係数は、ブロック(例えば、TB(1501))の第1の列(例えば、列(1521))の変換係数(例えば、t11、t21、t31及びt41)を含む。第1の変換係数(例えば、t11、t21、t31及びt41)は、初期量子化ステップのうちの1つ(例えば、初期DCステップ)に対応し、ブロックにおける残りの変換係数は、AC空間周波数を有するブロックにおける残りの列(例えば、列(1522)~(1524))の変換係数に対応する。ブロックにおける残りの変換係数は、初期量子化ステップのもう1つ(例えば、初期ACステップ)に対応する。
複数の量子化ステップは、初期量子化ステップ及び量子化行列(1540)に基づいて取得することができる。第1の列(1521)についての複数の量子化ステップのうちの最小のもの(例えば、最終DCステップ)は、初期DCステップと、量子化行列の第1の列の値(例えば、量子化行列(1540)の列値e)に基づいて取得することができる。列(1522)についての最終ACステップは、初期量子化ステップのもう1つ(例えば、初期ACステップ)及び列値fに基づいて取得することができる。列(1523)についての最終ACステップは、初期量子化ステップのもう1つ(例えば、初期ACステップ)及び列値gに基づいて取得することができる。列(1524)についての最終ACステップは、初期量子化ステップのもう1つ(例えば、初期ACステップ)及び列値hに基づいて取得することができる。残りの列(1522)~(1524)についての複数の量子化ステップの残りのものは、それぞれ、列(1522)~(1524)についての最終ACステップを含む。
一実施形態では、第1の変換係数は、(i)第1の行に隣接するブロックにおける1つ以上の行の変換係数と、(ii)第1の列に隣接するブロックにおける1つ以上の列の変換係数とのうちの1つをさらに含む。ブロックにおける(i)1つ以上の行と(ii)1つ以上の列とのうちの1つは、一方向に沿うことができる。第1の変換係数は、初期量子化ステップのうちの1つに対応し、ブロックにおける残りの変換係数は、初期量子化ステップの別の1つに対応する。複数の量子化ステップのうちの最小のものは、初期量子化ステップのうちの1つと、量子化行列の第1の行及び第1の列のうちの1つの値とに基づいて取得することができる。量子化行列の第1の行及び第1の列のうちの1つは、一方向に沿うことができる。
図15を再び参照し、一例では、一方向は、水平方向である。ブロックにおける(i)1つ以上の行と(ii)1つ以上の列とのうちの1つは、水平方向に沿うため、第1の行(例えば、行(1511))に隣接するブロックにおける1つ以上の行(例えば、行(1512))の変換係数を含む。第1の変換係数は、第1の行(例えば、行(1511))に隣接するブロックにおける1つ以上の行(例えば、行(1512))の変換係数をさらに含み、ブロックにおける残りの変換係数は、ブロックにおける残りの行(例えば、行(1513)~(1514))の変換係数に対応する。第1の変換係数(例えば、行(1511)のt11~t14及び行(1512)のt21~t24)は、初期量子化ステップのうちの1つ(例えば、初期DCステップ)に対応し、ブロックにおける残りの変換係数(例えば、行(1513)のt31~t34及び行(1514)のt41~t44)は、初期量子化ステップのもう1つ(例えば、初期ACステップ)に対応する。複数の量子化ステップは、初期量子化ステップ及び量子化行列(1530)に基づいて取得することができる。複数の量子化ステップは、第1の行(1511)についての最終ステップ、行(1512)についての最終ステップ、行(1513)についての最終ステップ、及び行(1514)についての最終ステップを含むことができる。第1の行(1511)についての最終ステップは、初期DCステップ及び行値aに基づいて取得することができる。行(1512)についての最終ステップは、初期DCステップ及び行値bに基づいて取得することができる。行(1513)についての最終ステップは、初期ACステップ及び行値cに基づいて取得することができる。行(1514)についての最終ステップは、初期ACステップ及び行値dに基づいて取得することができる。複数の量子化ステップのうちの最小のものは、第1の行(1511)についての最終ステップである。残りの行(1512)~(1514)についての複数の量子化ステップの残りのものは、それぞれ、行(1512)~(1514)についての最終ステップを含む。
図15を再び参照し、一例では、一方向は、垂直方向である。ブロックにおける(i)1つ以上の行と(ii)1つ以上の列とのうちの1つは、垂直方向に沿うため、第1の列(例えば、列(1521))に隣接するブロックにおける1つ以上の列(例えば、列(1522))の変換係数を含む。第1の変換係数は、第1の列(例えば、列(1521))に隣接するブロックにおける1つ以上の列(例えば、列(1522))の変換係数をさらに含み、ブロックにおける残りの変換係数は、ブロックにおける残りの列(例えば、列(1523)~(1524))の変換係数に対応する。第1の変換係数(例えば、列(1521)のt11、t21、t31及びt41、並びに列(1522)のt12、t22、t32及びt42)は、初期量子化ステップのうちの1つ(例えば、初期DCステップ)に対応し、ブロックにおける残りの変換係数(例えば、列(1523)のt13、t23、t33及びt43、並びに列(1524)のt14、t24、t34及びt44)は、初期量子化ステップのもう1つ(例えば、初期ACステップ)に対応する。複数の量子化ステップは、初期量子化ステップ及び量子化行列(1540)に基づいて取得することができる。複数の量子化ステップは、第1の列(1521)についての最終ステップ、列(1522)についての最終ステップ、列(1523)についての最終ステップ、及び列(1524)についての最終ステップを含むことができる。第1の列(1521)についての最終ステップは、初期DCステップ及び列値eに基づいて取得することができる。列(1522)についての最終ステップは、初期DCステップ及び列値fに基づいて取得することができる。列(1523)についての最終ステップは、初期ACステップ及び列値gに基づいて取得することができる。列(1524)についての最終ステップは、初期ACステップ及び列値hに基づいて取得することができる。複数の量子化ステップのうちの最小のものは、第1の列(1521)についての最終ステップであり得る。残りの列(1522)~(1524)についての複数の量子化ステップの残りのものは、それぞれ、列(1522)~(1524)についての最終ステップを含む。
図16は、本開示の一実施形態に係る、プロセス(1600)を概説するフローチャートを示す。プロセス(1600)は、TBなどのブロックの再構築に使用することができる。本開示におけるブロックという用語は、TB、TUなどを指してよい。様々な実施形態では、プロセス(1600)は、端末装置(310)、(320)、(330)及び(340)の処理回路、ビデオエンコーダ(403)の機能を実行する処理回路、ビデオデコーダ(410)の機能を実行する処理回路、ビデオデコーダ(510)の機能を実行する処理回路、ビデオエンコーダ(603)の機能を実行する処理回路などの処理回路によって実行される。一部の実施形態では、プロセス(1600)はソフトウェア命令で実施されるため、処理回路がソフトウェア命令を実行すると、処理回路はプロセス(1600)を実行する。プロセスは(S1601)から開始し、(S1610)に進む。
(S1610)において、コーディングされたビデオビットストリームから、ブロック(例えば、TB)のコーディング情報をデコードすることができる。コーディング情報は、TBの一方向での変換スキップを示す。一方向は、水平方向であっても垂直方向であってもよい。
(S1620)において、複数の量子化ステップに基づいて、ブロックにおける変換係数を逆量子化することができる。一例では、複数の量子化ステップは、DCステップ(例えば、QstepDC)及びACステップ(例えば、QstepAC)を含む。ブロックにおける第1の変換係数は、複数の量子化ステップのうちの最小のもの(例えば、QstepDC)に基づいて逆量子化することができ、ブロックにおける第1の変換係数は、DC空間周波数を有するブロックにおける第1の行及び第1の列のうちの1つの変換係数を含むことができる。第1の行及び第1の列のうちの1つは、変換スキップの一方向に沿うことができる。
一例では、一方向は、水平方向であり、第1の行及び第1の列のうちの1つは、ブロックにおける変換係数の第1の行である。ブロックにおける第1の行の変換係数は、DC空間周波数を有するDC変換係数を含む。ブロックにおける第1の行の変換係数は、複数の量子化ステップのうちの最小のもの(例えば、QstepDC)に基づいて逆量子化することができ、ブロックにおける残りの行の変換係数は、複数の量子化ステップの別の1つ(例えば、QstepAC)に基づいて逆量子化することができる。
一例では、一方向は、水平方向であり、第1の行及び第1の列のうちの1つは、ブロックにおける変換係数の第1の行である。ブロックにおける第1の変換係数は、第1の行に隣接するブロックにおける1つ以上の追加行の変換係数をさらに含むことができる。ブロックにおける第1の行と1つ以上の追加行との変換係数は、複数の量子化ステップのうちの最小のもの(例えば、QstepDC)に基づいて逆量子化することができる。ブロックにおける残りの行の変換係数は、複数の量子化ステップの別の1つ(例えば、QstepAC)に基づいて逆量子化することができる。
一例では、一方向は、垂直方向であり、第1の行及び第1の列のうちの1つは、ブロックにおける変換係数の第1の列である。ブロックにおける第1の列の変換係数は、DC空間周波数を有するDC変換係数を含む。ブロックにおける第1の列の変換係数は、複数の量子化ステップのうちの最小のもの(例えば、QstepDC)に基づいて逆量子化することができ、ブロックにおける残りの列の変換係数は、複数の量子化ステップの別の1つ(例えば、QstepAC)に基づいて逆量子化することができる。
一例では、一方向は、垂直方向であり、第1の行及び第1の列のうちの1つは、ブロックにおける変換係数の第1の列である。ブロックにおける第1の変換係数は、第1の列に隣接するブロックにおける1つ以上の追加列の変換係数をさらに含むことができる。ブロックにおける第1の列と1つ以上の追加列の変換係数は、複数の量子化ステップのうちの最小のもの(例えば、QstepDC)に基づいて逆量子化することができる。ブロックにおける残りの列の変換係数は、複数の量子化ステップの別の1つ(例えば、(QstepAC))に基づいて逆量子化することができる。
(S1630)において、ブロックにおける逆量子化された変換係数に対して逆変換を実行することができる。
プロセス(1600)は、適切に適合させることができる。プロセス(1600)のステップは、変更及び/又は省略することができる。追加ステップを追加できる。任意の適切な実装順序を使用できる。例えば、コーディング情報は、第1の変換係数を複数の量子化ステップのうちの最小のものに基づいて逆量子化すべきであるかどうかを示すフラグ又は他のシグナリング情報をさらに含むことができる。デコードされたフラグが、第1の変換係数を複数の量子化ステップのうちの最小のものに基づいて逆量子化すべきであることを示す場合、TBにおける第1の変換係数は、複数の量子化ステップのうちの最小のものに基づいて逆量子化される。
一例では、コーディング情報は、量子化行列がいつ有効になるかをさらに示す。量子化行列は、ブロックにおける各変換係数に対応するそれぞれの要素を含む。一方向に沿った量子化行列の各行又は列の要素は、同じ値を有する。複数の量子化ステップは、初期量子化ステップ及び量子化行列に基づいて取得することができる。
本開示の実施形態は、別々に使用されるか、又は任意の順序で組み合わされてもよい。さらに、方法(又は実施形態)、エンコーダ及びデコーダのそれぞれは、処理回路(例えば、1つ以上のプロセッサ又は1つ以上の集積回路)によって実施することができる。一例では、1つ以上のプロセッサは、非一時的なコンピュータ読取可能媒体に記憶されるプログラムを実行する。
以上で説明された技法は、コンピュータ読取可能命令を使用するコンピュータソフトウェアとして実行され、1つ以上のコンピュータ読取可能媒体に物理的に記憶することができる。例えば、図17は、開示する主題の特定の実施形態を実行することに適したコンピュータシステム(1700)を示す。
コンピュータソフトウェアは、アセンブリ、コンパイル、リンク、又はそのようなメカニズムを施されて、1つ以上のコンピュータ中央処理装置(CPU)、グラフィックスプロセッシングユニット(GPU)などによって直接、又は解釈、マイクロコード実行などによって実行することができる命令を含むコードを作成する任意の適切な機械コード又はコンピュータ言語を用いてコーディングすることができる。
命令は、例えばパーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、モノのインターネット(IoT)デバイスなどを含む、様々なタイプのコンピュータ又はその構成要素上で実行することができる。
コンピュータシステム(1700)について、図17に示される構成要素は、本質的に例示的なものであり、本開示の実施形態を実装するコンピュータソフトウェアの使用又は機能範囲に関する限定を示唆することを意図するものではない。構成要素の構成は、コンピュータシステム(1700)の例示的な実施形態で示される構成要素のうちのいずれか1つ又は組み合わせに関する任意の依存性又は必要性を有するとして解釈されるべきではない。
コンピュータシステム(1700)は、特定のヒューマンインタフェース入力デバイスを含んでもよい。このようなヒューマンインタフェース入力デバイスは、例えば触覚入力(キーストローク、スワイプ、データグローブの動きなど)、音声入力(音声、拍手など)、視覚入力(ジェスチャーなど)、嗅覚入力(図示せず)を通じて、1人以上の人間ユーザによる入力に応答することができる。ヒューマンインタフェースデバイスは、音声(スピーチ、音楽、環境音など)、画像(スキャンされた画像、静止画像カメラから取得した写真画像など)、ビデオ(2次元ビデオ、立体ビデオを含む3次元ビデオなど)などの、人間による意識的な入力に必ずしも直接的に関連しない特定の媒体を取り込むために使用することもできる。
入力ヒューマンインタフェースデバイスは、キーボード(1701)、マウス(1702)、トラックパッド(1703)、タッチスクリーン(1710)、データグローブ(図示せず)、ジョイスティック(1705)、マイクフォン(1706)、スキャナ(1707)及びカメラ(1708)(それぞれが1つのみ示されている)のうちの1つ以上を含み得る。
コンピュータシステム(1700)はまた、特定のヒューマンインタフェース出力デバイスを含んでもよい。このようなヒューマンインタフェース出力デバイスは、例えば触覚出力、音、光、及び嗅覚/味覚を通じて、1人以上の人間ユーザの感覚を刺激することができる。このようなヒューマンインタフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン(1710)、データグローブ(図示せず)、又はジョイスティック(1705)による触覚フィードバックであるが、入力デバイスとして機能しない触覚フィードバックデバイスであってもよい)、オーディオ出力デバイス(スピーカ(1709)、ヘッドホン(図示せず)など)、視覚出力デバイス(それぞれがタッチスクリーン入力能力、触覚フィードバック能力の有無にかかわらず、一部が、ステレオグラフィック出力、仮想現実眼鏡(図示せず)、ホログラフィックディスプレ及びスモークタンク(図示せず)などの手段を介して、2次元の視覚出力又は3次元以上の出力を出力できる、CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含むスクリーン(1710)など)、及びプリンタ(図示せず)を含み得る。
コンピュータシステム(1700)はまた、ヒューマンアクセス可能な記憶装置と、それらに関連する媒体、例えば、CD/DVDを有するCD/DVD ROM/RW(1720)若しくは同様な媒体(1721)、サムドライブ(1722)、及びリムーバブルハードドライブ若しくはソリッドステートドライブ(1723)を含む光媒体、テープやフロッピーディスク(図示せず)などのレガシー磁気媒体、セキュリティドングル(図示せず)などの専用ROM/ASIC/PLDベースのデバイスなどとを含むことができる。
当業者はまた、ここに開示する主題に関連して使用される「コンピュータ読取可能媒体」という用語が、伝送媒体、搬送波、又は他の一時的な信号を含まないことを理解すべきである。
コンピュータシステム(1700)は、1つ以上の通信ネットワーク(1755)へのインタフェース(1754)をさらに含むことができる。ネットワークは、例えば、無線、有線、光ネットワークであり得る。ネットワークはさらに、ローカル、ワイドエリア、メトロポリタン、車両用及び産業用、リアルタイム、遅延耐性ネットワークなどであり得る。ネットワークの例は、イーサネット及び無線LANなどのローカルエリアネットワークと、GSM、3G、4G、5G、LTEなどを含むセルラーネットワークと、ケーブルTV、衛星TV及び地上波放送TVを含むTV有線又は無線ワイドエリアデジタルネットワークと、CANBusなどを含む車両用及び産業用ネットワークと、を含む。特定のネットワークは、一般に、特定の汎用データポート又は周辺バス(1749)(例えば、コンピュータシステム(1700)のUSBポートなど)に接続された外部ネットワークインタフェースアダプターを必要とする。他のネットワークは一般に、以下で説明するようにシステムバスに接続することにより、コンピュータシステム(1700)のコアに統合される(例えば、PCコンピュータシステムへのイーサネットインタフェース又はスマートフォンコンピュータシステムへのセルラーネットワークインタフェース)。これらのネットワークのいずれかを使用して、コンピュータシステム(1700)は、他のエンティティと通信することができる。このような通信は、例えば、ローカル又はワイドエリアデジタルネットワークを使用して、他のコンピュータシステムに対して、単方向の受信のみ(例えば、放送TV)、単方向の送信のみ(例えば、CANbusから特定のCANbusデバイスへ)、又は双方向であってもよい。上記のように、特定のプロトコルとプロトコルスタックをこれらのネットワークとネットワークインタフェースの各々に使用することができる。
前述のヒューマンインタフェースデバイス、ヒューマンアクセス可能な記憶装置、及びネットワークインタフェースは、コンピュータシステム(1700)のコア(1740)に接続することができる。
コア(1740)は、1つ以上の中央処理装置(CPU)(1741)、グラフィックスプロセッシングユニット(GPU)(1742)、フィールドプログラマブルゲートアレイ(FPGA)(1743)の形態での専用プログラマブル処理ユニット、特定のタスクのためのハードウェアアクセラレータ(1744)、グラフィックアダプタ(~~50)などを含むことができる。これらのデバイスは、リードオンリメモリ(ROM)(1745)、ランダムアクセスメモリ(1746)、及びユーザがアクセスできない内部ハードドライブ、SSDなどの内部大容量記憶装置(1747)に、システムバス(1748)を介して接続されてもよい。一部のコンピュータシステムでは、システムバス(1748)は、1つ以上の物理プラグの形態でアクセス可能であり、追加のCPU、GPUなどによる拡張を可能にする。周辺デバイスは、コアのシステムバス(1748)に直接的に接続されてもよく、周辺バス(1749)を介して接続されてもよい。一例では、すくりーん
(1710)をグラフィックアダプタ(1750)に接続することができる。周辺バスのアーキテクチャには、PCI、USBなどを含む。
CPU(1741)、GPU(1742)、FPGA(1743)及びアクセラレータ(1744)は、組み合わせて、前述のコンピュータコードを構成できる特定の命令を実行することができる。そのコンピュータコードは、ROM(1745)又はRAM(1746)に記憶することができる。遷移的なデータは、RAM(1746)に記憶することもでき、また恒久的なデータは、例えば内部大容量記憶装置(1747)に記憶することができる。CPU(1741)、GPU(1742)、大容量記憶装置(1747)、ROM(1745)、RAM(1746)などのうちの1つ以上と密接に関連付けることができるキャッシュメモリを使用して、任意のメモリデバイスに対する高速記憶及び検索を可能にすることができる。
コンピュータ読取可能媒体には、様々なコンピュータ実装動作を実行するためのコンピュータコードを有することができる。媒体及びコンピュータコードは、本開示の目的のために特別に設計及び構築されたものであってもよく、コンピュータソフトウェア分野の当業者によく知られている利用可能な種類のものであってもよい。
限定ではなく、あくまでも一例として、アーキテクチャ(1700)、具体的にはコア(1740)を有するコンピュータシステムは、プロセッサ(CPU、GPU、FPGA、アクセラレータなどを含む)が1つ以上の有形のコンピュータ読取可能媒体に具体化されたソフトウェアを実行した結果として機能を提供することができる。このようなコンピュータ読取可能媒体は、コア内部の大容量記憶装置(1747)又はROM(1745)などの、非一時的な性質のコア(1740)の特定の記憶装置以外に、以上に説明したようにユーザがアクセス可能な大容量記憶装置に関連付けられる媒体であってもよい。本開示の様々な実施形態を実装するソフトウェアは、そのようなデバイスに記憶でき、コア(1740)によって実行することができる。コンピュータ読取可能媒体は、特定の需要に応じて、1つ以上のメモリデバイス又はチップを含むことができる。ソフトウェアは、コア(1740)、具体的にはその中のプロセッサ(CPU、GPU、FPGAなどを含む)に、RAM(1746)に記憶されたデータ構造を定義すること、及びソフトウェアによって定義されたプロセスに従ってそのようなデータ構造を変更することを含む、本明細書に記載の特定のプロセス又は特定のプロセスの特定の部分を実行させることができる。加えて又は代替として、コンピュータシステムは、本明細書に記載の特定のプロセス又は特定のプロセスの特定の部分を実行するためにソフトウェアの代わりに又はソフトウェアと一緒に動作することができる回路(例えば、アクセラレータ(1744))に配線されるか又は他の方法で具体化されたロジックの結果として機能を提供することができる。ソフトウェアへの参照は、必要に応じて、ロジックを含むことができ、その逆も同様である。コンピュータ読取可能媒体への参照は、必要に応じて、実行のためのソフトウェアを記憶する回路(集積回路(IC)など)、実行のためのロジックを具現化する回路、又はその両方を含むことができる。本開示は、ハードウェアとソフトウェアの任意の適切な組み合わせを含む。
付録A:頭字語
JEM:joint exploration model(共同探索モデル)
VVC:versatile video coding(多用途ビデオコーディング)
BMS:benchmark set(ベンチマークセット)
MV:Motion Vector(動きベクトル)
HEVC:High Efficiency Video Coding(高効率ビデオコーディング)
SEI:Supplementary Enhancement Information(補助強化情報)
VUI:Video Usability Information(ビデオユーザビリティ情報)
GOP:Groups of Pictures(ピクチャ群)
TU:Transform Unit(変換ユニット)
PU:Prediction Unit(予測ユニット)
CTU:Coding Tree Unit(コーディングツリーユニット)
CTB:Coding Tree Block(コーディングツリーブロック)
PB:Prediction Block(予測ブロック)
HRD:Hypothetical Reference Decoder(仮想リファレンスデコーダ)
SNR:Signal Noise Ratio(信号対雑音比)
CPU:Central Processing Unit(中央処理装置)
GPU:Graphics Processing Unit(グラフィックス処理装置)
CRT:Cathode Ray Tube(ブラウン管)
LCD:Liquid-Crystal Display(液晶ディスプレイ)
OLED:Organic Light-Emitting Diode(有機発光ダイオード)
CD:Compact Disc(コンパクトディスク)
DVD:Digital Video Disc(デジタルビデオディスク)
ROM:Read-Only Memory(リードオンリメモリ)
RAM:Random Access Memory(ランダムアクセスメモリ)
ASIC:Application-Specific Integrated Circuit(特定用途向け集積回路)
PLD:Programmable Logic Device(プログラマブルロジックデバイス)
LAN:Local Area Network(ローカルエリアネットワーク)
GSM:Global System for Mobile communication(移動通信用グローバルシステム)
LTE:Long-Term Evolution(ロングタームエボリューション)
CANBus:Controller Area Network Bus(コントローラエリアネットワークバス)
USB:Universal Serial Bus(ユニバーサルシリアルバス)
PCI:Peripheral Component Interconnect(周辺構成要素相互接続)
FPGA:Field Programmable Gate Arrays(フィールド・プログラマブル・ゲート・アレイ)
SSD:Solid-state Drive(ソリッドステートドライブ)
IC:Integrated Circuit(集積回路)
CU:Coding Unit(コーディングユニット)
本開示は一部の例示的な実施形態を説明してきたが、本開示の範囲内に含まれる変更、置換、及び様々な代替の均等物が存在する。したがって、当業者は、本明細書に明示的に示されていないか又は記載されていないが、開示の原理を具体化するため、その精神及び範囲内にある多数のシステム及び方法を考案することができることが理解されたい。

Claims (14)

  1. デコーダにおけるビデオデコーディングのための方法であって、
    コーディングされたビデオビットストリームから変換ブロック(TB)のコーディング情報をデコードするステップであって、前記コーディング情報が前記TBの一方向での変換スキップを示す、ステップと、
    複数の量子化ステップに基づいて前記TBにおける変換係数を逆量子化するステップであって、前記TBにおける第1の変換係数が前記複数の量子化ステップのうちの最小のものに基づいて逆量子化され、前記TBにおける前記第1の変換係数がDC空間周波数を有する前記TBにおける第1の行及び第1の列のうちの1つの変換係数を含み、前記第1の行及び前記第1の列のうちの前記1つが前記変換スキップの前記一方向に沿う、ステップと、
    前記TBにおける逆量子化された前記変換係数に対して逆変換を実行するステップと、を含む方法。
  2. 前記一方向は、水平方向であり、
    前記第1の行及び前記第1の列のうちの前記1つは、前記TBにおける変換係数の第1の行であり、
    前記TBにおける変換係数を逆量子化するステップは、
    前記複数の量子化ステップのうちの前記最小のものに基づいて、前記TBにおける第1の行の変換係数を逆量子化するステップと、
    前記複数の量子化ステップのうちの別の1つに基づいて、前記TBにおける残りの行の変換係数を逆量子化するステップと、を含む、請求項1に記載の方法。
  3. 前記一方向は、水平方向であり、
    前記第1の行及び前記第1の列のうちの前記1つは、前記TBにおける変換係数の第1の行であり、
    前記TBにおける変換係数を逆量子化するステップは、
    前記複数の量子化ステップのうちの前記最小のものに基づいて、前記第1の行と前記第1の行に隣接する前記TBにおける1つ以上の追加行の変換係数を逆量子化するステップであって、前記TBにおける前記第1の変換係数が前記TBにおける前記1つ以上の追加行の変換係数をさらに含む、ステップと、
    前記複数の量子化ステップのうちの別の1つに基づいて、前記TBにおける残りの行の変換係数を逆量子化するステップと、を含む、請求項1に記載の方法。
  4. 前記一方向は、垂直方向であり、
    前記第1の行及び前記第1の列のうちの前記1つは、前記TBにおける変換係数の第1の列であり、
    前記TBにおける変換係数を逆量子化するステップは、
    前記複数の量子化ステップのうちの前記最小のものに基づいて、前記TBにおける第1の列の変換係数を逆量子化するステップと、
    前記複数の量子化ステップのうちの別の1つに基づいて、前記TBにおける残りの列の変換係数を逆量子化するステップと、を含む、請求項1に記載の方法。
  5. 前記一方向は、垂直方向であり、
    前記第1の行及び前記第1の列のうちの前記1つは、前記TBにおける変換係数の第1の列であり、
    前記TBにおける変換係数を逆量子化するステップは、
    前記複数の量子化ステップのうちの前記最小のものに基づいて、前記第1の列と前記第1の列に隣接する前記TBにおける1つ以上の追加列の変換係数を逆量子化するステップであって、前記TBにおける前記第1の変換係数が前記TBにおける前記1つ以上の追加列の変換係数をさらに含む、ステップと、
    前記複数の量子化ステップのうちの別の1つに基づいて、前記TBにおける残りの列の変換係数を逆量子化するステップと、を含む、請求項1に記載の方法。
  6. 前記コーディング情報をデコードするステップは、前記第1の変換係数を前記複数の量子化ステップのうちの前記最小のものに基づいて逆量子化するかどうかを示すフラグをデコードするステップをさらに含み、
    前記TBにおける前記第1の変換係数は、前記第1の変換係数を前記複数の量子化ステップのうちの前記最小のものに基づいて逆量子化すべきであることを示す前記フラグに応答して、前記複数の量子化ステップのうちの前記最小のものに基づいて逆量子化される、請求項1に記載の方法。
  7. 前記フラグは、前記TB、前記TBを含む複数のTB、コーディングツリーブロック、及びタイルのうちの1つに関連付けられる、請求項6に記載の方法。
  8. 前記フラグは、ビデオパラメータセット(VPS)、シーケンスパラメータセット(SPS)、適応パラメータセット(APS)、ピクチャパラメータセット(PPS)、及びスライスヘッダのうちの1つで示される、請求項6に記載の方法。
  9. 前記TBの高さと幅は、それぞれ2と2とのサンプルであり、N及びMが1より大きい整数である、請求項1に記載の方法。
  10. 前記コーディング情報は、さらに、量子化行列が有効であることを示し、
    前記量子化行列は、前記TBにおける各変換係数に対応するそれぞれの要素を含み、
    前記一方向に沿った量子化行列の各行又は列の要素は、同じ値を有し、
    初期量子化ステップ及び前記量子化行列に基づいて前記複数の量子化ステップを取得するステップをさらに含む、請求項1に記載の方法。
  11. 前記第1の変換係数は、前記初期量子化ステップのうちの1つに対応し、
    AC空間周波数を有する前記TBにおける(i)残りの行と(ii)残りの列とのうちの1つに対応する前記TBにおける残りの変換係数は、前記初期量子化ステップの別の1つに対応し、前記TBにおける(i)残りの行と(ii)残りの列とのうちの前記1つが前記一方向に沿っており、
    前記複数の量子化ステップを取得するステップは、
    前記初期量子化ステップのうちの1つと、前記量子化行列の第1の行及び第1の列のうちの1つの値とに基づいて、前記複数の量子化ステップのうちの前記最小のものを取得するステップであって、前記量子化行列の第1の行及び第1の列のうちの前記1つが前記一方向に沿う、ステップと、
    前記初期量子化ステップの別の1つと前記量子化行列の残りの行及び残りの列のうちの1つのそれぞれの値とに基づいて、前記TBにおける残りの行及び残りの列のうちの1つについての前記複数の量子化ステップの残りのものを取得するステップであって、前記量子化行列の残りの行及び残りの列のうちの前記1つが前記一方向に沿う、ステップと、を含む、請求項10に記載の方法。
  12. 前記第1の変換係数は、(i)前記第1の行に隣接する前記TBにおける1つ以上の行の変換係数と、(ii)前記第1の列に隣接する前記TBにおける1つ以上の列の変換係数とのうちの1つをさらに含み、前記TBにおける(i)前記1つ以上の行と(ii)前記1つ以上の列とのうちの1つが前記一方向に沿っており、
    前記第1の変換係数は、前記初期量子化ステップのうちの1つに対応し、
    前記TBにおける残りの変換係数は、前記初期量子化ステップの別の1つに対応し、
    前記複数の量子化ステップを取得するステップは、
    前記初期量子化ステップのうちの前記1つと、前記量子化行列の第1の行及び第1の列のうちの1つの値とに基づいて、前記複数の量子化ステップのうちの前記最小のものを取得するステップであって、前記量子化行列の第1の行及び第1の列のうちの前記1つが前記一方向に沿う、ステップを含む、請求項10に記載の方法。
  13. 処理回路を含むビデオデコーディングのための装置であって、前記処理回路は、
    請求項1~12のいずれか一項に記載の方法を実行するように構成される、装置。
  14. 請求項1~12のいずれか一項に記載の方法をコンピュータに実行させるように構成されるコンピュータプログラム。
JP2022535438A 2020-09-24 2021-06-30 ビデオコーディングのための方法及び装置 Pending JP2023510690A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202063082812P 2020-09-24 2020-09-24
US63/082,812 2020-09-24
US17/322,258 US11490122B2 (en) 2020-09-24 2021-05-17 Method and apparatus for video coding
US17/322,258 2021-05-17
PCT/US2021/039740 WO2022066260A1 (en) 2020-09-24 2021-06-30 Method and apparatus for video coding

Publications (1)

Publication Number Publication Date
JP2023510690A true JP2023510690A (ja) 2023-03-15

Family

ID=80741060

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022535438A Pending JP2023510690A (ja) 2020-09-24 2021-06-30 ビデオコーディングのための方法及び装置

Country Status (6)

Country Link
US (2) US11490122B2 (ja)
EP (1) EP4042700A4 (ja)
JP (1) JP2023510690A (ja)
KR (1) KR20220074973A (ja)
CN (1) CN114616831A (ja)
WO (1) WO2022066260A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW202121897A (zh) * 2019-09-06 2021-06-01 日商索尼股份有限公司 影像處理裝置及方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0965334A (ja) * 1995-08-29 1997-03-07 Matsushita Electric Ind Co Ltd 画像符号化装置および画像復号化装置
US7408986B2 (en) * 2003-06-13 2008-08-05 Microsoft Corporation Increasing motion smoothness using frame interpolation with motion analysis
US9008170B2 (en) * 2011-05-10 2015-04-14 Qualcomm Incorporated Offset type and coefficients signaling method for sample adaptive offset
US9854275B2 (en) * 2011-06-25 2017-12-26 Qualcomm Incorporated Quantization in video coding
GB2518823A (en) * 2013-09-25 2015-04-08 Sony Corp Data encoding and decoding
WO2015053115A1 (ja) * 2013-10-11 2015-04-16 ソニー株式会社 復号装置および復号方法、並びに、符号化装置および符号化方法
WO2015133866A1 (ko) * 2014-03-06 2015-09-11 삼성전자 주식회사 서브 블록 기반 예측을 수행하는 인터 레이어 비디오 복호화 방법 및 그 장치 및 서브 블록 기반 예측을 수행하는 인터 레이어 비디오 부호화 방법 및 그 장치
US10271064B2 (en) * 2015-06-11 2019-04-23 Qualcomm Incorporated Sub-prediction unit motion vector prediction using spatial and/or temporal motion information
US20180310017A1 (en) * 2017-04-21 2018-10-25 Mediatek Inc. Sub-prediction unit temporal motion vector prediction (sub-pu tmvp) for video coding
EP3484151A1 (en) * 2017-11-13 2019-05-15 Thomson Licensing Method and apparatus for generating quantization matrices in video encoding and decoding
WO2020016795A2 (en) * 2018-07-17 2020-01-23 Beijing Bytedance Network Technology Co., Ltd. Block size restrictions for visual media coding

Also Published As

Publication number Publication date
US20230020637A1 (en) 2023-01-19
WO2022066260A1 (en) 2022-03-31
CN114616831A (zh) 2022-06-10
KR20220074973A (ko) 2022-06-03
EP4042700A4 (en) 2022-12-07
US11490122B2 (en) 2022-11-01
EP4042700A1 (en) 2022-08-17
US20220094983A1 (en) 2022-03-24

Similar Documents

Publication Publication Date Title
JP7159423B2 (ja) 映像復号化のための方法、装置及びコンピュータ・プログラム
US20220060728A1 (en) Method and apparatus for prediction and transform for small blocks
JP7208261B2 (ja) ビデオ復号化のための方法、装置およびコンピュータプログラム
JP7223018B2 (ja) ビデオ符号化/復号化の方法及び装置
US11153591B2 (en) Method and apparatus for color transform in VVC
US11677969B2 (en) Method and apparatus for video coding
JP7271675B2 (ja) ビデオ復号の方法および装置、並びにプログラム
CN111971965A (zh) 视频编解码的方法和装置
EP3766243A1 (en) Method and apparatus for video coding
US11812037B2 (en) Method and apparatus for video coding
JP2022552381A (ja) ビデオ復号の方法、装置、およびコンピュータプログラム
US20230232027A1 (en) Sign coding for one-dimensional transform skip
KR20220100726A (ko) 비디오 코딩을 위한 방법 및 장치
JP7267404B2 (ja) ビデオを符号化及び復号する方法、並びにその装置及びコンピュータプログラム
US20230020637A1 (en) Quantizer for One-Dimensional Transform Skip
US11831911B2 (en) Method and apparatus for video coding
US11800110B2 (en) Adaptive scanning with multiple transform selection
US11323732B2 (en) Method and apparatus for video coding
US11140388B2 (en) Method and apparatus for non-linear loop filtering
US20230112642A1 (en) Adaptive multiple transform set selection
JP2023531866A (ja) ビデオコーディングのための方法、装置、非一時的コンピュータ可読記憶媒体およびコンピュータプログラム
JP2023517505A (ja) ビデオコーディングのための方法及び装置
KR20230104682A (ko) 템플릿-정합을 이용하는 것에 의한 대안적인 모션 벡터 차이를 갖는 병합 모드

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220705

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230829

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20231003

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20240326