JP7412443B2 - 非線形ループフィルタリングのための方法および装置 - Google Patents

非線形ループフィルタリングのための方法および装置 Download PDF

Info

Publication number
JP7412443B2
JP7412443B2 JP2021561991A JP2021561991A JP7412443B2 JP 7412443 B2 JP7412443 B2 JP 7412443B2 JP 2021561991 A JP2021561991 A JP 2021561991A JP 2021561991 A JP2021561991 A JP 2021561991A JP 7412443 B2 JP7412443 B2 JP 7412443B2
Authority
JP
Japan
Prior art keywords
clipping
video
value
filter
index
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.)
Active
Application number
JP2021561991A
Other languages
English (en)
Other versions
JP2022529354A (ja
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 JP2022529354A publication Critical patent/JP2022529354A/ja
Application granted granted Critical
Publication of JP7412443B2 publication Critical patent/JP7412443B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • 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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • 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/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop

Landscapes

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

Description

参照による援用
本出願は、2019年9月6日に出願された米国仮出願第62/896,997号の「改良された非線形ループフィルタリング」の優先権を主張した、2020年7月9日に出願された米国特許出願第16/924,845号の「非線形ループフィルタリングのための方法および装置」の優先権を主張する。その内容を全て参照により本明細書に組み込むものとする。
本開示は、一般にビデオコーディングに関する実施形態を説明する。
本明細書中に提供される「背景技術」の記述は、開示の文脈を一般的に提供するのを目的としている。出願時に先行技術としての資格を有しない記述の態様は勿論のこと、現在指名されている発明者の成果は、本背景技術セクションにおいて記述されている程度において、本開示に対する先行技術として明示的にも黙示的にも認められてはいない。
ビデオコーディングおよび復号は、動き補償を伴うイントラピクチャ予測を使用して実行されることができる。非圧縮デジタルビデオは一連のピクチャを含むことができ、各ピクチャは、例えば、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通りの角度モードに対応する)である。矢印が収束する点(101)は、予測されているサンプルを表す。矢印は、サンプルが予測されている方向を表す。例えば、矢印(102)は、サンプル(101)が、1つまたは複数のサンプルから右上に向けて、水平軸から45度の角度で予測されることを示す。同様に、矢印(103)は、サンプル(101)が、1つまたは複数のサンプルからサンプル(101)の左下に向けて、水平軸から22.5度の角度で予測されることを示す。
引き続き図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)(すなわち、サンプルが、1つまたは複数の予測サンプルから右上に、水平から45度の角度で予測される)と一致する予測方向を示すシグナリングを含むとする。この場合、サンプル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 Rec.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予測は、隣接ブロックが使用しているのと同じ参照ピクチャからの予測子を使用することができる。
本開示の態様は、ビデオエンコード/デコードのための方法および装置を提供する。いくつかの例では、ビデオデコードのための装置は、処理回路を備える。前記処理回路は、コード化ビデオシーケンスのピクチャにおけるコーディングブロックのコード化情報をデコードすることができる。前記コード化情報は、クリッピングインデックスmを示すことができ、前記クリッピングインデックスmは、前記コーディングブロックに適用されるフィルタのクリッピング値を示す。前記処理回路は、前記クリッピングインデックスに関連付けられる前記クリッピング値を決定することができる。前記クリッピング値は、第1の関数と第2の関数との乗算に基づくことができる。前記第1の関数は、ビット深度Bに依存し、かつ前記クリッピングインデックスmから独立しており、前記第2の関数は、前記クリッピングインデックスmに依存し、かつ前記ビット深度Bから独立している。前記処理回路は、前記クリッピング値に対応する前記フィルタを前記コーディングブロックに適用することにより、フィルタリングされたコーディングブロックを生成することができる。一実施形態では、前記第1の関数は、2に比例する。
一実施形態では、前記クリッピング値は、整数である。前記処理回路は、2-αmに基づいて前記クリッピング値を決定することができる。前記第1の関数は2であり、前記第2の関数は2-αmであり、αは、前記フィルタの強度に関連付けられる定数値である。
一実施形態では、前記フィルタは、前記クリッピング値に依存するクリッピング関数を含む非線形適応ループフィルタである。
一例では、前記クリッピングインデックスmは、0、1、2、および3のうちの1つである。
一実施形態では、前記定数値αは、前記コーディングブロックがルマコーディングブロックであることに基づく第1の定数値であり、前記定数値αは、前記コーディングブロックがクロマコーディングブロックであることに基づく第2の定数値である。一例では、前記第1の定数値は、第2の定数値とは異なる。一例では、前記第1の定数値は2.3であり、前記第2の定数値は2.6である。
一実施形態では、前記クリッピングインデックスmを示す前記コード化情報は、前記ピクチャの適応パラメータセット(APS)でシグナリングされる。前記処理回路は、前記コーディングブロックに対するフィルタセットインデックスを受信し、前記フィルタセットインデックスに基づいて、複数のフィルタセットから前記フィルタを決定することができる。
本開示の態様は、ビデオデコードのためにコンピュータによって実行されると、前記コンピュータにビデオデコードのための方法のいずれかを実行させる命令を記憶した非一時的なコンピュータ読取可能な媒体も提供する。
開示された主題のさらなる特徴、本質、および様々な利点は、以下の詳細な説明および添付の図面からより明らかになるであろう。
イントラ予測モードの例示的なサブセットの概略図である。 例示的なイントラ予測方向の説明図である。 一例における現在ブロックおよびその周辺の空間的マージ候補の概略図である。 一実施形態による通信システム(300)の概略ブロック図である。 一実施形態による通信システム(400)の概略ブロック図である。 一実施形態によるデコーダの概略ブロック図である。 一実施形態によるエンコーダの概略ブロック図である。 別の実施形態によるエンコーダのブロック図を示す。 別の実施形態によるデコーダのブロック図を示す。 本開示の実施形態によるフィルタ形状の例を示す。 本開示の実施形態による、勾配を算出するために使用されるサブサンプリングされた位置の例を示す。 本開示の実施形態による、勾配を算出するために使用されるサブサンプリングされた位置の例を示す。 本開示の実施形態による、勾配を算出するために使用されるサブサンプリングされた位置の例を示す。 本開示の実施形態による、勾配を算出するために使用されるサブサンプリングされた位置の例を示す。 本開示の一実施形態による仮想境界フィルタリングプロセスの一例を示す。 本開示の一実施形態による仮想境界フィルタリングプロセスの一例を示す。 本開示の実施形態による仮想境界での対称パディング操作の例を示す。 本開示の実施形態による仮想境界での対称パディング操作の例を示す。 本開示の実施形態による仮想境界での対称パディング操作の例を示す。 本開示の実施形態による仮想境界での対称パディング操作の例を示す。 本開示の実施形態による仮想境界での対称パディング操作の例を示す。 本開示の実施形態による仮想境界での対称パディング操作の例を示す。 本開示の一実施形態によるクリッピング値とビット深度Bおよびクリッピングインデックスmとの間の関係を示すテーブルを示す。 本開示の一実施形態によるクリッピング値とビット深度Bおよびクリッピングインデックスmとの間の関係を示すテーブルを示す。 本開示の一実施形態によるプロセス(1500)を概説するフローチャートを示す。 一実施形態によるコンピュータシステムの概略図である。
図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)の一部である。他の場合、ビデオデコーダ(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 Rec.H.265のような規格での所定のビデオ圧縮技術に従ってデコード操作を実行することができる。コード化ビデオシーケンスが、ビデオ圧縮技術または規格のシンタックスと、ビデオ圧縮技術または規格で文書化されたプロファイルとの両方に準拠しているという意味で、コード化ビデオシーケンスは、使用されているビデオ圧縮技術または規格によって指定されるシンタックスに準拠し得る。具体的には、プロファイルは、ビデオ圧縮技術または規格で使用可能なすべてのツールから、特定のツールをそのプロファイルで使用できる唯一のツールとして選択することができる。コード化ビデオシーケンスの複雑さがビデオ圧縮技術または規格のレベルで定義される範囲内にあることも、コンプライアンスに必要である。場合によっては、最大ピクチャサイズ、最大フレームレート、最大再構築サンプルレート(例えば、1秒あたりのメガサンプルで測定される)、最大参照ピクチャサイズなどがレベルによって制限される。レベルによって設定された制限は、場合によっては、コード化ビデオシーケンスでシグナリングされたHRDバッファ管理のための仮想参照デコーダ(HRD)仕様およびメタデータによってさらに制限され得る。
一実施形態では、受信機(531)は、エンコードされたビデオとともに追加の(冗長な)データを受信することができる。追加のデータは、コード化ビデオシーケンスの一部として含まれてもよい。追加のデータは、データを適切にデコードし、および/または、元のビデオデータをより正確に再構築するためにビデオデコーダ(510)によって使用され得る。追加のデータは、例えば、時間的、空間的、または信号対雑音比(SNR)エンハンスメントレイヤ、冗長スライス、冗長ピクチャ、前方向誤り訂正コードなどの形態にされることができる。
図6は、本開示の一実施形態によるビデオエンコーダ(603)のブロック図を示す。ビデオエンコーダ(603)は、電子デバイス(620)に含まれる。電子デバイス(620)は、送信機(640)(例えば、送信回路)を含む。図4の例におけるビデオエンコーダ(403)の代わりにビデオエンコーダ(603)を使用することができる。
ビデオエンコーダ(603)は、ビデオエンコーダ(603)によってコード化されるビデオ画像をキャプチャし得るビデオソース(60l)(図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つの動きベクトルおよび参照インデックスを使用したイントラ予測またはインター予測によりコード化および復号され得るものであり得る。同様に、多重予測ピクチャは、単数のブロックの再構築のために2つを超えた参照ピクチャおよび関連メタデータを使用することができる。
ソースピクチャは、一般に、複数のサンプルブロック(例えば、それぞれ、4×4、8×8、4×8、または16×16サンプルのブロック)に空間的に細分され、ブロック単位でコード化され得る。ブロックは、ブロックのそれぞれのピクチャに適用されるコーディング割り当てによって決定された他の(既にコード化された)ブロックを参照して予測的にコード化され得る。例えば、Iピクチャのブロックは、非予測的にコード化されてもよく、或いは、同一のピクチャの既にコード化されたブロック(空間予測またはイントラ予測)を参照して予測的にコード化されてもよい。Pピクチャの画素ブロックは、1つの予めコード化された参照ピクチャを参照して、空間予測を介してまたは時間予測を介して予測的にコード化され得る。Bピクチャのブロックは、1つまたは2つの予めコード化された参照ピクチャを参照して、空間予測を介してまたは時間予測を介して予測的にコード化され得る。
ビデオエンコーダ(603)は、ITU-T Rec.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)および(703)とビデオデコーダ(410)、(510)および(810)は、ソフトウェア命令を実行する1つまたは複数のプロセッサを用いて実施されることができる。
ブロックベースのフィルタ適応を有する適応ループフィルタ(Adaptive Loop Filter、ALF)は、アーチファクトを減らすためにエンコーダ/デコーダによって適用されることができる。ルマ成分の場合、例えば局所的な勾配の方向および活性度に基づいて、複数のフィルタ(例えば、25個のフィルタ)のうちの1つが4×4のルマブロックに対して選択されることができる。
ALFは、任意の適切な形状およびサイズを持つことができる。図9を参照すると、ALF(910)~(911)は、ALF(910)の場合は5×5の菱形、ALF(911)の場合は7×7の菱形といったように、菱形形状を持っている。ALF(910)では、要素(920)~(932)は、フィルタリングプロセスに使用されて菱形形状を形成することができる。要素(920)~(932)には7つの値(例えば、C0~C6)が使用可能である。ALF(911)では、要素(940)~(964)は、フィルタリングプロセスに使用されて菱形形状を形成することができる。要素(940)~(964)には13個の値(例えば、C0~C12)が使用可能である。
図9を参照すると、いくつかの例では、菱形形状を有する2つのALF(910)~(911)が使用される。5×5の菱形のフィルタ(910)がクロマ成分(例えば、クロマブロック、クロマCB)に適用されることができ、7×7の菱形のフィルタ(911)がルマ成分(例えば、ルマブロック、ルマCB)に適用されることができる。ALFでは、他の適切な形状およびサイズが使用されることができる。例えば、9×9の菱形のフィルタが使用されることができる。
値(例えば、(910)のC0~C6、または(920)のC0~C12)によって示される位置におけるフィルタ係数は、非ゼロであってもよい。さらに、ALFがクリッピング関数を含む場合、その位置におけるクリッピング値は、非ゼロであってもよい。
ルマ成分のブロック分類の場合、4×4ブロック(またはルマブロック、ルマCB)は、複数(例えば、25)のクラスのうちの1つと類別または分類されることができる。また、方向性パラメータDおよび活性度値Aの量子化値

Figure 0007412443000001
に基づいて、式(1)を用いて分類インデックスCを導出することができる。

Figure 0007412443000002
方向性パラメータDおよび量子化値

Figure 0007412443000003
を算出するために、1次元ラプラシアンを用いて、垂直方向、水平方向、2つの対角方向(例えば、d1、d2)の勾配g、g、gd1、よびgd2をそれぞれ以下のように算出することができる。

Figure 0007412443000004

Figure 0007412443000005

Figure 0007412443000006

Figure 0007412443000007
ここで、インデックスiおよびjは、4×4ブロック内の左上サンプルの座標を指し、R(k,l)は、座標(k,l)における再構築サンプルを示す。方向(例えば、d1およびd2)は、2つの対角方向を指すことができる。
上述したブロック分類の複雑さを低減するために、サブサンプリングされた1次元ラプラシアン計算を適用することができる。図10A~10Dは、垂直方向(図10A)、水平方向(図10B)、および2つの対角方向d1(図10C)、d2(図10D)の勾配g、g、gd1、およびgd2をそれぞれ算出するために使用されるサブサンプリング位置の例を示す。同じサブサンプリング位置が、異なる方向の勾配計算に使用されることができる。図10Aでは、ラベル「V」は、垂直勾配gを算出するためのサブサンプリング位置を示している。図10Bでは、ラベル「H」は、水平勾配gを算出するためのサブサンプリング位置を示している。図10ACでは、ラベル「D1」は、d1斜め勾配gd1を算出するためのサブサンプリング位置を示している。図10Dでは、ラベル「D2」は、d2斜め勾配g を算出するためのサブサンプリング位置を示している。
水平方向および垂直方向の勾配g、gの最大値

Figure 0007412443000008
と最小値

Figure 0007412443000009
は、以下のように設定されることができる。

Figure 0007412443000010
2つの対角方向の勾配gd1、gd2の最大値

Figure 0007412443000011
と最小値

Figure 0007412443000012
は、以下のように設定されることができる。

Figure 0007412443000013
方向性パラメータDは、上記の値と2つの閾値tおよびtに基づいて、以下のように導出されることができる。
ステップ1では、

Figure 0007412443000014
および

Figure 0007412443000015
が真の場合、Dは0に設定される。
ステップ2では、

Figure 0007412443000016
の場合、ステップ3に進み、そうでない場合、ステップ4に進む。
ステップ3では、

Figure 0007412443000017
の場合、Dは2に設定され、そうでない場合、Dは1に設定される。
ステップ4では、

Figure 0007412443000018
の場合、Dは4に設定され、そうでない場合、Dは3に設定される。
活性度値Aは、次のように算出されることができる。

Figure 0007412443000019
Aは、さらに、0以上4以下の範囲に量子化されることができ、量子化値は、

Figure 0007412443000020
で表される。
ピクチャのクロマ成分の場合、ブロック分類が適用されないため、クロマ成分ごとに単一セットのALF係数を適用することができる。
幾何学的変換がフィルタ係数および対応するフィルタクリッピング値(クリッピング値とも呼ばれる)に適用されることができる。ブロック(例えば、4×4ルマブロック)をフィルタリングする前に、例えば、該ブロックに対して算出された勾配値(例えば、g、g、gd1、および/または、gd2)に応じて、回転または斜めおよび垂直反転などの幾何学的変換をフィルタ係数f(k,l)および対応するフィルタクリッピング値c(k,l)に適用することができる。フィルタ係数f(k,l)および対応するフィルタクリッピング値c(k,l)に適用される幾何学的変換は、フィルタによってサポートされる領域におけるサンプルに幾何学的変換を適用することと等価であり得る。幾何学的変換は、それぞれの方向性を揃えることで、ALFが適用される異なるブロックをより似たものにすることができる。
斜め反転、垂直反転、および回転を含む3つの幾何学的変換は、それぞれ、式(9)~(11)で説明されるように実行されることができる。

Figure 0007412443000021

Figure 0007412443000022

Figure 0007412443000023
ここで、KはALFまたはフィルタのサイズであり、0≦k,l≦K-1は係数の座標である。例えば、位置(0,0)は、フィルタfまたはクリッピング値行列(またはクリッピング行列)cの左上隅にあり、位置(K-1,K-1)は、フィルタfまたはクリッピング値行列(またはクリッピング行列)cの右下隅にある。ブロックに対して算出された勾配値に応じて、変換をフィルタ係数f(k,l)およびクリッピング値c(k,l)に適用することができる。変換と4つの勾配との間の関係の一例を表1にまとめる。

Figure 0007412443000024
いくつかの実施形態では、ALFフィルタパラメータは、ピクチャの適応パラメータセット(APS)でシグナリングされる。APSでは、1つまたは複数のセット(例えば、25セットまで)のルマフィルタ係数およびクリッピング値インデックスがシグナリングされ得る。一例では、1つまたは複数のセットのうちの1セットは、ルマフィルタ係数および1つまたは複数のクリッピング値インデックスを含み得る。1つまたは複数のセット(例えば、8セットまで)のクロマフィルタ係数およびクリッピング値インデックスがシグナリングされ得る。シグナリングオーバーヘッドを低減するために、ルマ成分の異なる分類の(例えば、異なる分類インデックスを有する)フィルタ係数をマージすることができる。スライスヘッダでは、現在のスライスに使用されるAPSのインデックスがシグナリングされ得る。
一実施形態では、クリッピング値インデックス(クリッピングインデックスとも呼ばれる)は、APSからデコードされることができる。クリッピング値インデックスは、例えば、クリッピング値インデックスと対応するクリッピング値との間の関係に基づいて、対応するクリッピング値を決定するために使用されることができる。この関係は、事前定義され、デコーダに記憶されることができる。一例では、この関係は、クリッピング値インデックスと対応するクリッピング値のルマテーブル(例えば、ルマCBに使用される)、クリッピング値インデックスと対応するクリッピング値のクロマテーブル(例えば、クロマCBに使用される)などのテーブルによって記述される。クリッピング値は、ビット深度Bに依存することができる。ビット深度Bは、内部ビット深度、フィルタリングされるCB内の再構築サンプルのビット深度などを指すことができる。いくつかの例では、テーブル(例えば、ルマテーブル、クロマテーブル)は、式(12)を用いて得られる。

Figure 0007412443000025
ここで、AlfClipはクリッピング値、Bはビット深度(例えば、bitDepth)、N(例えば、N=4)は許容されるクリッピング値の数、(n-1)はクリッピング値インデックス(クリッピングインデックスまたはclipIdxとも呼ばれる)である。表2は、N=4の場合の式(12)を用いて得られるテーブルの一例である。クリッピングインデックス(n-1)は、表2では0、1、2、および3であることができ、nはそれぞれ1、2、3、および4であり得る。表2は、ルマブロックまたはクロマブロックに使用されることができる。

Figure 0007412443000026
現在のスライスのスライスヘッダでは、1つまたは複数のAPSインデックス(例えば、7つのAPSインデックスまで)が、現在のスライスに使用できるルマフィルタセットを指定するためにシグナリングされ得る。フィルタリングプロセスは、ピクチャレベル、スライスレベル、CTBレベルなど、1つまたは複数の適切なレベルで制御され得る。一実施形態では、フィルタリングプロセスは、さらにCTBレベルで制御されることができる。フラグは、ALFがルマCTBに適用されるか否かを示すためにシグナリングされ得る。ルマCTBは、複数の固定フィルタセット(例えば、16個の固定フィルタセット)、およびAPSでシグナリングされたフィルタセット(シグナリングされたフィルタセットとも呼ばれる)の中から、フィルタセットを選択することができる。フィルタセットインデックスは、適用されるフィルタセット(例えば、複数の固定フィルタセットおよびシグナリングされたフィルタセットのうちのフィルタセット)を示すために、ルマCTBに対してシグナリングされることができる。複数の固定フィルタセットは、エンコーダおよびデコーダで事前定義され、ハードコードされることができ、事前定義されたフィルタセットと呼ばれることができる。
クロマ成分の場合、現在のスライスに使用されるクロマフィルタセットを示すために、APSインデックスをスライスヘッダでシグナリングすることができる。CTBレベルでは、APSに1つを超えたクロマフィルタセットがある場合、クロマCTBごとにフィルタセットインデックスをシグナリングすることができる。
フィルタ係数は、128に等しいノルムで量子化されることができる。乗算の複雑さを低減するために、ビットストリーム適合性を適用して、非中央位置の係数値が-2 以上2 -1以下の範囲になるようにすることができる。一例では、中心位置係数はビットストリームでシグナリングされず、128に等しいと見なすことができる。
いくつかの実施形態では、クリッピングインデックスおよびクリッピング値のシンタックスおよびセマンティクスは、以下のように定義される。
alf_luma_clip_idx[sfIdx][j]は、sfIdxで示されるシグナリングされたルマフィルタのj番目の係数を乗算する前に使用するクリッピング値のクリッピングインデックスを指定するために使用されることができる。ビットストリーム適合性の要件は、alf_luma_clip_idx[sfIdx][j](sfIdx=0からalf_luma_num_filters_signalled_minus1およびj=0から11)の値が、0以上3以下の範囲内であるべきことを含み得る。
要素AlfClipL[adaptation_parameter_set_id][filtIdx][j](filtIdx=0からNumAlfFilters-1およびj=0から11)を持つルマフィルタクリッピング値AlfClipL[adaptation_parameter_set_id]は、bitDepthがBitDepthYに等しく設定され、clipIdxがalf_luma_clip_idx[alf_luma_coeff_delta_idx[filtIdx][j]に等しく設定されることに応じて、表2で指定されるように導出されることができる。
alf_chroma_clip_idx[altIdx][j]は、インデックスaltIdxを持つ代替クロマフィルタのj番目の係数を乗算する前に使用するクリッピング値のクリッピングインデックスを指定するために使用されることができる。ビットストリーム適合性の要件は、alf_chroma_clip_idx[altIdx][j](altIdx=0からalf_chroma_num_alt_filters_minus1、j=0から5)の値が、0以上3以下の範囲内であるべきことを含み得る。
要素AlfClipC[adaptation_parameter_set_id][altIdx][j](altIdx=0からalf_chroma_num_alt_filters_minus1、j=0から5)を持つクロマフィルタクリッピング値AlfClipC[adaptation_parameter_set_id][altIdx]は、bitDepthがBitDepthCに等しく設定され、clipIdxがalf_chroma_clip_idx[altIdx][j]に等しく設定されることに応じて、表2で指定されるように導出されることができる。
一実施形態では、フィルタリングプロセスは以下のように説明されることができる。デコーダ側では、CTBに対してALFが有効である場合、CU(またはCB)内のサンプルR(i,j)がフィルタリングされることができ、その結果、以下で式(13)を用いて示されるように、フィルタリングされたサンプル値R’(i,j)が得られる。一例では、CUの各サンプルがフィルタリングされる。

Figure 0007412443000027
ここで、f(k,l)はデコードされたフィルタ係数を示し、K(x,y)はクリッピング関数であり、c(k,l)はデコードされたクリッピングパラメータ(またはクリッピング値)を示す。変数kおよびlは、-L/2とL/2の間で変化することができ、ここで、Lはフィルタ長を示す。クリッピング関数K(x,y)=min(y,max(-y,x))は、クリッピング関数Clip3(-y,y,x)に対応する。クリッピング関数K(x,y)を組み込むことで、ループフィルタリング法(例えばALF)は非線形プロセスとなり、非線形ALFと呼ばれることができる。
非線形ALFでは、複数セットのクリッピング値が表3に提供されることができる。一例では、ルマセットは、4つのクリッピング値{1024,181,32,6}を含み、クロマセットは、4つのクリッピング値{1024,161,25,4}を含む。ルマセットの4つのクリッピング値は、ルマブロックのサンプル値(10ビットでコード化されたもの)の全範囲(例えば、1024)を対数領域でほぼ均等に分割することで選択されることができる。クロマセットの場合、その範囲が4~1024となり得る。

Figure 0007412443000028
選択されたクリッピング値は、次のように「alf_data」シンタックス要素でコード化されることができ、即ち、適切なエンコードスキーム(例えば、Golombエンコードスキーム)を使用して、表3に示すような選択されたクリッピング値に対応するクリッピングインデックスをエンコードすることができる。エンコードスキームは、フィルタセットインデックスをエンコードするために使用されるものと同じエンコードスキームであり得る。
一実施形態では、仮想境界フィルタリングプロセスを使用して、ALFのラインバッファ要件を低減することができる。したがって、修正されたブロック分類およびフィルタリングが、CTU境界(例えば、水平CTU境界)付近のサンプルに対して採用され得る。仮想境界(1130)は、図11Aに示すように、水平CTU境界(1120)を「Nsamples」サンプルだけシフトすることにより、ラインとして定義されることができ、ここで、Nsamplesは正の整数であり得る。一例では、Nsamplesは、ルマ成分の場合は4に等しく、また、Nsamplesは、クロマ成分の場合は2に等しい。
図11Aを参照すると、修正されたブロック分類が、ルマ成分に対して適用され得る。一例では、仮想境界(1130)より上にある4×4ブロック(1110)の1次元ラプラシアン勾配計算のために、仮想境界(1130)より上のサンプルのみが使用される。同様に、図11Bを参照すると、CTU境界(1121)からシフトされた、仮想境界(1131)より下にある4×4ブロック(1111)の1次元ラプラシアン勾配計算のために、仮想境界(1131)より下のサンプルのみが使用される。活性度値Aの量子化は、1次元ラプラシアン勾配計算に使用されるサンプル数の減少を考慮に入れることで、適宜スケーリングされることができる。
フィルタリングプロセスの場合、仮想境界での対称パディング操作を、ルマ成分とクロマ成分の両方に使用することができる。図12A~12Fは、仮想境界におけるルマ成分のこのように修正されたALFフィルタリングの例を示している。フィルタリングされるサンプルが仮想境界より下に位置する場合、仮想境界より上に位置する隣接サンプルをパディングすることができる。フィルタリングされるサンプルが仮想境界より上に位置する場合、仮想境界より下に位置する隣接サンプルをパディングすることができる。図12Aを参照すると、隣接サンプルC0は、仮想境界(1210)より下に位置するサンプルC2でパディングされることができる。図12Bを参照すると、隣接サンプルC0は、仮想境界(1220)より上に位置するサンプルC2でパディングされることができる。図12Cを参照すると、隣接サンプルC1~C3は、それぞれ、仮想境界(1230)より下に位置するサンプルC5~C7でパディングされることができる。図12Dを参照すると、隣接サンプルC1~C3は、それぞれ、仮想境界(1240)より上に位置するサンプルC5~C7でパディングされることができる。図12Eを参照すると、隣接サンプルC4~C8は、それぞれ、仮想境界(1250)より下に位置するサンプルC10、C11、C12、C11、およびC10でパディングされることができる。図12Fを参照すると、隣接サンプルC4~C8は、それぞれ、仮想境界(1260)より上に位置するサンプルC10、C11、C12、C11、およびC10でパディングされることができる。
いくつかの例では、サンプルおよび隣接サンプルが、仮想境界の左側(または右側)および右側(または左側)に位置する場合に、上記の説明を適切に適応させることができる。
ルマ成分またはクロマ成分に適用される式(12)は、式(12’)のように書き換えることができる。

Figure 0007412443000029
式(12’)から分かるように、ALFにおけるクリッピング値(例えば、AlfClip)は、ビット深度Bに依存する。さらに、クリッピング値は、2(B(1-n)/N)に依存している。一実施形態では、Nが指定された場合(例えば、N=4)、2(B(1-n)/N)は、ビット深度Bおよびクリッピングインデックス(n-1)に依存している。したがって、丸め前の2(B(1-n)/N)は2に比例せず、そして、式(12)または(12’)を使用してクリッピング値を決定することは、いくつかの実施形態では効率的ではない可能性がある。
本開示の態様は、フィルタリング(例えば、非線形ループフィルタリング)で使用されるクリッピング値を導出することを含む。ALFで使用されるクリッピング値(例えば、AlfClip)は、ビット深度Bおよびクリッピングインデックスに基づいて決定されることができる。本開示の態様によれば、クリッピング値のビット深度Bおよびクリッピングインデックスへの依存性は、コーディング効率を向上させるために分離されることができる。
クリッピング値は、クリッピングインデックスと関連付けることができる。クリッピング値は、第1の関数と第2の関数との乗算に基づくことができる。一実施形態では、クリッピング値は、第1の関数と第2の関数との乗算である複合関数によって決定されることができる。第1の関数は、ビット深度Bに依存することができ、クリッピングインデックスから独立しているため、クリッピングインデックスに依存しない。一例では、第1の関数は2に比例するため、コーディング効率を向上させる。第2の関数は、クリッピングインデックスに依存し、ビット深度Bから独立することができるため、ビット深度Bに依存しない。
一実施形態では、式(14)を用いて、ルマCBおよびクロマCBのALFで使用されるクリッピング値(例えば、AlfClip)を導出することができる。

Figure 0007412443000030
ここで、AlfClipはクリッピング値であり、BはALFの内部ビット深度または入力サンプルのビット深度を意味し、定数値αは非線形ALFフィルタの強度を制御する係数を意味し、mはクリッピングインデックスであり、Nは許容されるクリッピング値の数(例えば4)を示す。クリッピングインデックスmは、0、・・・およびN-1であり得る。定数値αは、2.1、2.2、2.3、2.4、2.5、2.6、2.7および2.8を含むことができるが、これらに限定されない。
式(14)に示す一例では、第1の関数は2であり、第2の関数は2-α*mである。第1の関数は、ビット深度Bに依存しており、クリッピングインデックスmから独立している。したがって、第1の関数は、クリッピングインデックスmに依存しない。第2の関数は、クリッピングインデックスmに依存しており、ビット深度Bから独立している。したがって、第2の関数は、ビット深度Bに依存しない。値2B-α*mを丸めて(例えば、整数値に切り上げたり切り捨てたりして)、クリッピング値を生成することができる。
ルマ成分(またはCB)とクロマ成分(またはCB)は、式(14)に示すような同じ関係を用いることができる。ルマCBの場合、定数値αは、第1の定数値であり得る。クロマCBの場合、定数値αは、第2の定数値であり得る。いくつかの例では、第1の定数値は、第2の定数値と同一である。いくつかの例では、第1の定数値は、第2の定数値とは異なる。
クリッピング値とクリッピングインデックスとの関係は、上に示した式(14)のような方程式を用いて指定されることができる。また、この関係は、ルックアップテーブル(例えば、図13~14に示されるようなもの)などの他の適切な方法を用いて指定されることもできる。図13は、本開示の一実施形態による、クリッピング値とビット深度Bおよびクリッピングインデックスmとの関係を示す例示的なテーブルである。テーブル中のクリッピング値は、定数値αが2.3、Nが4である場合の式(14)に基づいて決定されることができる。一例では、このテーブルは、ルマCBに適用されることができ、クリッピング値は、ルマクリッピング値(例えば、AlfClip)と称することができる。
図13を参照すると、クリッピングインデックス(例えば、clipIdx)が0である場合、式(14)を用いて決定されたクリッピング値は、式(13)を用いて決定されたクリッピング値と同一である。クリッピングインデックス(例えば、clipIdx)が1、2、または3である場合、式(14)を用いて決定されたクリッピング値(イタリック体で強調表示されている)は、式(13)を用いて決定されたクリッピング値(クロスアウトされている)とは異なる。例えば、bitDepthが8、clipIdxが1である場合、式(14)を用いて決定されたクリッピング値は52であり、式(13)を用いて決定されたクリッピング値は64である。
図14は、本開示の一実施形態による、クリッピング値とビット深度Bおよびクリッピングインデックスmとの関係を示す例示的なテーブルである。テーブル中のクリッピング値は、定数値αが2.6、Nが4である場合の式(14)に基づいて決定される。一例では、図14のテーブルは、クロマCBに適用されることができ、クリッピング値は、クロマクリッピング値(例えば、AlfClip)と称することができる。
図14を参照すると、クリッピングインデックス(例えば、clipIdx)が0である場合、式(14)を用いて決定されたクリッピング値は、式(13)を用いて決定されたクリッピング値と同一である。クリッピングインデックス(例えば、clipIdx)が1、2、または3である場合、式(14)を用いて決定されたクリッピング値(イタリック体で強調表示されている)は、式(13)を用いて決定されたクリッピング値(クロスアウトされている)とは異なる。例えば、bitDepthが8、clipIdxが1である場合、式(14)を用いて決定されたクリッピング値は42であり、式(13)を用いて決定されたクリッピング値は64である。
上述したように、ルマ成分(例えば、ルマCB)およびクロマ成分(例えば、クロマCB)は、式(14)によって導出される異なるクリッピング値を使用することができる。例えば、式(14)を用いてクリッピング値を導出する際に、図13に示すルマ成分の場合には定数値αは2.3となり、図14に示すクロマ成分の場合には定数値αは2.6となる。いくつかの例では、定数値αが2.3であると、ルマ成分について最適なコーディング効率が得られ、定数値αが2.6であると、クロマ成分について最適なコーディング効率が得られる。
上述したように、クリッピングインデックスは、例えば、クリッピングインデックスと対応するクリッピング値との関係に基づいて、対応するクリッピング値を決定するために使用されることができる。この関係は、事前定義され、デコーダに記憶されることができる。この関係は、事前定義されてデコーダに記憶され得るテーブル(例えば、図13~14に示されるようなもの)、方程式などによって記述されることができる。いくつかの例では、テーブル、および/または、方程式で使用されるパラメータ(例えば、ビット深度B、定数値α、N)がシグナリングされる。
式(14)を用いたALFクリッピング値の決定は、式(12)を用いた場合とは異なることがある。いくつかの違いを以下に示しており(イタリック体で強調表示されている)、また、取り消し線を付けたテキストが削除されたテキストを示す図13~14に示されたテーブルに示している。
alf_luma_clip_idx[sfIdx][j]は、sfIdxで示されるシグナリングされたルマフィルタのj番目の係数を乗算する前に使用する対応するクリッピング値のクリッピングインデックスを指定することができる。一例では、alf_luma_clip_idx[sfIdx][j](sfIdx=0..alf_luma_num_filters_signalled_minus1およびj=0..11)の値が、0以上3以下の範囲内であることが、ビットストリーム適合性の要件となる。
要素AlfClip[adaptation_parameter_set_id][filtIdx][j](filtIdx=0..NumAlfFilters-1およびj=0..11)を持つルマフィルタクリッピング値AlfClip[adaptation_parameter_set_id]は、例えば、bitDepthがBitDepthに等しく設定され、clipIdxがalf_luma_clip_idx[alf_luma_coeff_delta_idx[filtIdx]][j]に等しく設定されることに応じて、図13に示されるテーブルで指定されるように導出されることができる。
alf_chroma_num_alt_filters_minus1+1は、クロマ成分の代替フィルタの数を指定することができる。
0に等しいalf_chroma_clip_flag[altIdx]は、インデックスaltIdxを持つクロマフィルタを使用する際に、クロマ成分に線形適応ループフィルタリングを適用することを指定でき、1に等しいalf_chroma_clip_flag[altIdx]は、インデックスaltIdxを持つクロマフィルタを使用する際に、クロマ成分に非線形適応ループフィルタリングを適用することを指定できる。存在しない場合、alf_chroma_clip_flag[altIdx]は0に等しいと推測されることができる。
alf_chroma_coeff_abs[altIdx][j]は、インデックスaltIdxを持つ代替クロマフィルタのj番目のクロマフィルタ係数の絶対値を指定することができる。alf_chroma_coeff_abs[altIdx][j]が存在しない場合、0に等しいと推測されることができる。一例では、alf_chroma_coeff_abs[altIdx][j]の値が、0以上2-1以下の範囲内であることが、ビットストリーム適合性の要件となる。
指数ゴロム二値化uek(v)の次数kは3に等しく設定されることができる。
alf_chroma_coeff_sign[altIdx][j]は、インデックスaltIdxを持つ代替クロマフィルタのj番目のクロマフィルタ係数の符号を以下のように指定することができる。
alf_chroma_coeff_sign[altIdx][j]が0に等しい場合、対応するクロマフィルタ係数は正の値を持つことができる。
それ以外の場合(alf_chroma_coeff_sign[altIdx][j]が1に等しい場合)、対応するクロマフィルタ係数は負の値を持つことができる。
alf_chroma_coeff_sign[altIdx][j]が存在しない場合は、0に等しいと推測されることができる。
要素AlfCoeff[adaptation_parameter_set_id][altIdx][j](altIdx=0..alf_chroma_num_alt_filters_minus1、j=0..5)を持つクロマフィルタ係数AlfCoeff[adaptation_parameter_set_id][altIdx]は、以下のように導出されることができる。
AlfCoeff[adaptation_parameter_set_id][altIdx][j]=alf_chroma_coeff_abs[altIdx][j]*(1-2*alf_chroma_coeff_sign[altIdx][j]) 式(15)
一例では、AlfCoeff[adaptation_parameter_set_id][altIdx][j](altIdx=0..alf_chroma_num_alt_filters_minus1、j=0..5)の値が、-2-1以上2-1以下の範囲内であることが、ビットストリーム適合性の要件となる。
alf_chroma_clip_idx[altIdx][j]は、インデックスaltIdxを持つ代替クロマフィルタのj番目の係数を乗算する前に使用するクリッピング値のクリッピングインデックスを指定することができる。一例では、alf_chroma_clip_idx[altIdx][j](altIdx=0..alf_chroma_num_alt_filters_minus1、j=0..5)の値が、0以上3以下の範囲内であることが、ビットストリーム適合性の要件となる。
要素AlfClip[adaptation_parameter_set_id][altIdx][j](altIdx=0..alf_chroma_num_alt_filters_minus1、j=0..5)を持つクロマフィルタのクリッピング値AlfClip[adaptation_parameter_set_id][altIdx]は、例えば、bitDepthがBitDepthに等しく設定され、clipIdxがalf_chroma_clip_idx[altIdx][j]に等しく設定されることに応じて、図13に示されるテーブルで指定されるように導出されることができる。
図15は、本開示の一実施形態によるプロセス(1500)を概説するフローチャートである。プロセス(1500)は、コード化ビデオシーケンスのピクチャにおけるCBを再構築するために使用されることができる。様々な実施形態において、プロセス(1500)は、端末装置(310)、(320)、(330)および(340)における処理回路、ビデオエンコーダ(403)の機能を実行する処理回路、ビデオデコーダ(410)の機能を実行する処理回路、ビデオデコーダ(510)の機能を実行する処理回路、ビデオエンコーダ(603)の機能を実行する処理回路などの処理回路によって実行される。いくつかの実施形態では、プロセス(1500)はソフトウェア命令で実装されるため、処理回路がソフトウェア命令を実行すると、処理回路はプロセス(1500)を実行する。このプロセスは、(S1501)で開始し、(S1510)に進む。
(S1510)では、コード化ビデオシーケンスのピクチャにおけるCBのコード化情報をデコードすることができる。該コード化情報は、クリッピングインデックスmを示すことができる。クリッピングインデックスmは、CBに適用されるフィルタのクリッピング値を示すことができる。CB内の再構築サンプルは、フィルタによってフィルタリングされ得る。いくつかの例では、フィルタは、式(13)に対応する非線形ALFである。フィルタは、式(13)を参照して以上で説明したように、フィルタ係数(例えば、f(k,l))および対応するクリッピング値(例えば、c(k,l))によって特徴付けられることができる。例えば、フィルタは、(例えば、式(13)に示すように)クリッピング値に依存しているクリッピング関数(例えば、Clip3(-y,y,x))を含む。CBは、ルマCBまたはクロマCBであり得る。
フィルタリングプロセスは、ピクチャレベル、スライスレベル、CTBレベルなど、1つまたは複数の適切なレベルで制御され得る。いくつかの例では、クリッピングインデックスを示すコード化情報は、ピクチャのAPSにおいてピクチャレベルでシグナリングされる。APSでシグナリングされるコード化情報は、フィルタ係数とクリッピングインデックスとを含む少なくとも1つのシグナリングされたフィルタセットを含むことができる。また、フィルタセットインデックスは、例えば、CBにどのALFを使用するかを示すために、CTBに対してシグナリングされることができる。フィルタセットインデックスは、例えば、デコーダによって受信されることができる。フィルタセットインデックスに基づいて、フィルタは複数のフィルタセットから決定され、その後、CBに適用されることができる。いくつかの実施形態では、複数のフィルタセットは、少なくとも1つのシグナリングされたフィルタセットおよび複数の事前定義されたフィルタセットによって形成され得る。
(S1520)では、クリッピングインデックスに関連付けられたクリッピング値(例えば、AlfClip、AlfClipL、またはAlfClipC)を決定することができる。クリッピング値は、第1の関数と第2の関数との乗算に基づくことができる。第1の関数は、ビット深度Bに依存することができ、クリッピングインデックスmから独立することができ、また、第2の関数は、クリッピングインデックスmに依存することができ、ビット深度Bから独立することができる。第1の関数は、2に比例することができるため、コーディング効率を向上させる。一実施形態では、クリッピング値は整数であり、第1の関数は2であり、第2の関数は2-αmであり、ここで、αはフィルタの強度に関連付けられる定数値である。一例では、クリッピング値(例えば、整数)は、2-αmに基づいて決められる。
上述したように、一例では、クリッピング値は、2-αmの値を整数に丸めることに等しい。値2-αmを、整数(例えば、最も近い整数)に切り上げたり切り捨てたりして、クリッピング値を生成することができる。一例では、クリッピング値は2-αmを最も近い整数に丸めたものである。
ビット深度Bは、内部ビット深度、CB内の再構築サンプルのビット深度などであり得る。また、クリッピングインデックスmは、非負の整数であり得る。一例では、クリッピングインデックスは、0からクリッピングインデックスの許容されるクリッピング値の数N(例えば、4)までの範囲のうちの1つである。クリッピングインデックスは、0、...、(N-1)のうちの1つであり得る。一例では、Nは4であり、従って、クリッピングインデックスは、0、1、2、および3のうちの1つである。ビット深度Bおよび許容されるクリッピング値の数Nは、事前定義され、エンコーダおよび/またはデコーダに記憶されることができる。あるいは、ビット深度Bおよび/またはNは、デコーダにシグナリングされることができる。
定数値αは、CBがルマCBであることに基づく第1の定数値とすることができ、また、定数値αは、CBがクロマCBであることに基づく第2の定数値とすることができる。第1の定数値と第2の定数値は同一であっても異なっていてもよい。コーディング効率を向上させるために、第1の定数値および第2の定数値に最適値を使用することができる。一例では、第1の定数は、ルマCBについては2.3であり、第2の定数は、クロマCBについては2.6である。第1の定数値および/または第2の定数値は、事前定義され、エンコーダおよび/またはデコーダに記憶されることができる。あるいは、第1の定数値および/または第2の定数値は、デコーダにシグナリングされることができる。
一実施形態では、クリッピング値は、クリッピング値とクリッピングインデックスとの間の関係に基づいて、クリッピングインデックスから決定されることができる。この関係は、クリッピング値が、第1の関数(例えば、2に比例する)と第2の関数との乗算によって決定されることを示すことができる。一例では、クリッピングインデックスmおよびビット深度Bに基づいてクリッピング値を決定するために、ルックアップテーブル(例えば、図13のルマCB用のテーブル、図14のクロマCB用のテーブル)を使用することができる。
(S1530)では、CBにフィルタを適用することにより、フィルタリングされたCBを生成することができる。
プロセス(1500)は、適切に適応されることができる。プロセス(1500)のステップは、変更および/または省略され得る。また、追加のステップを加えることができる。任意の適切な実装の順序を使用することができる。
以上で説明された技法は、コンピュータ読取可能な命令を使用するコンピュータソフトウェアとして実行され、1つまたは複数のコンピュータ読取可能な媒体に物理的に記憶されることができる。例えば、図16は、開示された主題の特定の実施形態を実行することに適したコンピュータシステム(1600)を示す。
コンピュータソフトウェアは、アセンブリ、コンパイル、リンク、またはそのようなメカニズムを施されて、1つまたは複数のコンピュータ中央処理装置(CPU)、グラフィックスプロセッシングユニット(GPU)などによって直接、または解釈、マイクロコード実行などによって実行されることができる命令を含むコードを作成する任意の適切な機械コードまたはコンピュータ言語を用いてコード化されることができる。
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、モノのインターネットデバイスなどを含む、様々なタイプのコンピュータまたはそのコンポーネント上で実行されることができる。
コンピュータシステム(1600)について、図16に示される例示的なコンポーネントは、本質的に例示的なものであり、本開示の実施形態を実施するコンピュータソフトウェアの使用または機能の範囲に関していかなる限定を示唆することも意図しない。コンポーネントの構成は、コンピュータシステム(1600)の例示的な実施形態で示されるコンポーネントのうちのいずれか1つ又は組み合わせに関する任意の依存性又は必要性を有するとして解釈されるべきではない。
コンピュータシステム(1600)は、特定のヒューマンインターフェース入力デバイスを含み得る。このようなヒューマンインターフェース入力デバイスは、例えば、触覚入力(キーストローク、スワイプ、データグローブの動きなど)、オーディオ入力(音声、拍手など)、視覚入力(ジェスチャーなど)、嗅覚入力(示されていない)によって、1人以上のユーザによる入力に応答することができる。ヒューマンインターフェースデバイスは、オーディオ(音声、音楽、環境音など)、画像(走査画像、静止画像カメラから取得される写真画像など)、ビデオ(2次元ビデオ、立体ビデオを含む3次元ビデオなど)など、人間による意識的な入力に必ずしも直接関係しない特定のメディアをキャプチャすることにも使用できる。
入力ヒューマンインターフェースデバイスは、キーボード(1601)、マウス(1602)、トラックパッド(1603)、タッチスクリーン(1610)、データグローブ(図示せず)、ジョイスティック(1605)、マイクフォン(1606)、スキャナ(1607)、カメラ(1608)(それぞれ1つのみ示されている)のうちの1つまたは複数を含み得る。
コンピュータシステム(1600)は、特定のヒューマンインターフェース出力デバイスをも含み得る。このようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音声、光、および嗅覚/味覚を介して1人以上のユーザの感覚を刺激し得る。このようなヒューマンインターフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン(1610)、データグローブ(図示せず)、またはジョイスティック(1605)による触覚フィードバックがあるが、入力デバイスとして機能しない触覚フィードバックデバイスであってもよい)、オーディオ出力デバイス(スピーカ(1609)、ヘッドホン(示されていない)など)、視覚出力デバイス(CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含むスクリーン(1610)(それぞれタッチスクリーン入力能力を有するかもしくは有せず、それぞれ触覚フィードバック能力を有するかもしくは有しない。それらの一部は、ステレオグラフィック出力などの手段を介して、2次元の視覚出力または3次元以上の出力を出力することができる)、仮想現実眼鏡(示されていない)、ホログラフィックディスプレおよびスモークタンク(示されていない)など)、およびプリンタ(示されていない)を含み得る。
コンピュータシステム(1600)は、人間がアクセス可能な記憶装置およびそれらの関連する媒体、例えば、CD/DVDなどの媒体(1621)付きのCD/DVD ROM/RW(1620)を含む光学媒体、サムドライブ(1622)、リムーバブルハードドライブまたはソリッドステートドライブ(1623)、テープやフロッピーディスクなどの従来の磁気媒体(示されていない)、セキュリティドングルなどの専用のROM/ASIC/PLDベースのデバイス(示されていない)などをも含むことができる。
ここで開示された主題に関連して使用される「コンピュータ読取可能な媒体」という用語は、送信媒体、搬送波、または他の一時的な信号を包含しないことをも当業者が理解するべきである。
コンピュータシステム(1600)は、1つまたは複数の通信ネットワーク(1655)へのインターフェース(1654)をさらに含むことができる。ネットワークは、例えば、無線、有線、光学的であり得る。ネットワークは、さらに、ローカル、広域、大都市圏、車両用および産業用、リアルタイム、遅延耐性などであり得る。ネットワークの例は、イーサネット、無線LANなどのローカルエリアネットワーク、GSM、3G、4G、5G、LTEなどを含むセルラーネットワーク、ケーブルTV、衛星TV、および地上放送TVを含むTV有線または無線広域デジタルネットワーク、CANBusを含む車両用や産業用などを含む。特定のネットワークは、一般に、特定の汎用データポートまたは周辺バス(1649)(例えば、コンピューターシステム(1600)のUSBポートなど)に接続された外部ネットワークインターフェースアダプターを必要とする。他のものは一般に、以下で説明するようにシステムバスに接続することにより、コンピューターシステム(1600)のコアに統合される(例えば、PCコンピュータシステムへのイーサネットインターフェースまたはスマートフォンコンピューターシステムへのセルラーネットワークインターフェース)。これらのネットワークのいずれかを用いて、コンピュータシステム(1600)は、他のエンティティと通信することができる。このような通信は、単方向、受信のみ(例えば、放送TV)、単方向の送信のみ(例えば、特定のCANbusデバイスへのCANbus)、または双方向、例えばローカルまたはワイドエリアデジタルネットワークを用いる他のコンピュータシステムへの送信であり得る。特定のプロトコルおよびプロトコルスタックを上述したこれらのネットワークおよびネットワークインターフェースのそれぞれで使用することができる。
前述のヒューマンインターフェースデバイス、人間がアクセス可能な記憶装置、およびネットワークインターフェースは、コンピュータシステム(1600)のコア(1640)に接続されることができる。
コア(1640)は、1つまたは複数の中央処理装置(CPU)(1641)、グラフィックスプロセッシングユニット(GPU)(1642)、フィールドプログラマブルゲートエリア(FPGA)(1643)の形態での専用プログラマブル処理ユニット、特定のタスクのためのハードウェアアクセラレータ(1644)、グラフィックアダプタ(1650)などを含むことができる。これらのデバイスは、リードオンリーメモリ(ROM)(1645)、ランダムアクセスメモリ(1646)、非ユーザアクセス可能な内部ハードドライブ、SSDなどの内部大容量記憶装置(1647)とともに、システムバス(1648)を介して接続されてもよい。一部のコンピュータシステムでは、システムバス(1648)は、1つまたは複数の物理プラグの形態でアクセスでき、追加のCPU、GPUなどによる拡張を可能にする。周辺機器は、コアのシステムバス(1648)に直接、または周辺バス(1649)を介して接続されることができる。一例では、ディスプレイ(1610)は、グラフィックアダプタ(1650)に接続されることができる。周辺バスのアーキテクチャは、PCI、USBなどを含む。
CPU(1641)、GPU(1642)、FPGA(1643)、およびアクセラレータ(1644)は、組み合わせて、前述のコンピュータコードを構成することができる特定の命令を実行することができる。そのコンピュータコードは、ROM(1645)またはRAM(1646)に記憶されることができる。推移データはRAM(1646)にも記憶できるが、永続データは、例えば、内部大容量ストレージ(1647)に記憶されることができる。1つまたは複数のCPU(1641)、GPU(1642)、大容量ストレージ(1647)、ROM(1645)、RAM(1646)などと密接に関連付けることができるキャッシュメモリを使用することにより、任意のメモリデバイスへの高速保存および検索が可能になる。
コンピュータ読取可能な媒体は、様々なコンピュータ実施操作を実行するためのコンピュータコードを備えることができる。媒体およびコンピュータコードは、本開示の目的のために特別に設計および構築されたものであり得るか、もしくは、それらは、コンピュータソフトウェア技術の当業者に周知であって利用可能な種類のものであり得る。
限定ではなく、一例として、アーキテクチャを有するコンピュータシステム(1600)、特にコア(1640)は、1つまたは複数の有形のコンピュータ読取可能な媒体に組み込まれたソフトウェアを実行するプロセッサ(CPU、GPU、FPGA、アクセラレータなどを含む)の結果としての機能性を提供することができる。このようなコンピュータ読取可能な媒体は、以上で紹介したようにユーザがアクセス可能な大容量ストレージ、および、コア内部大容量ストレージ(1647)またはROM(1645)などの非一時的な性質を持つコア(1640)の特定のストレージに関連付けられた媒体であり得る。本開示の様々な実施形態を実行するソフトウェアは、このようなデバイスに記憶され、コア(1640)によって実行されることができる。コンピュータ読取可能な媒体は、特定の必要に応じて、1つまたは複数のメモリデバイスまたはチップを含むことができる。ソフトウェアは、コア(1640)、具体的にはその中のプロセッサ(CPU、GPU、FPGAなどを含む)に、RAM(1646)に記憶されたデータ構造を定義すること、および、ソフトウェアで定義されたプロセスに従ってこのようなデータ構造を変更する言を含む、ここで説明する特定のプロセスまたは特定のプロセスの特定の部分を実行させることができる。加えて、または、代替として、コンピュータシステムは、本明細書に記載された特定のプロセスまたは特定のプロセスの特定の部分を実行するためにソフトウェアの代わりにまたは一緒に動作することができる回路(例えば、アクセラレータ(1644))に有線接続されたまたは組み込まれたロジックの結果としての機能性を提供することができる。ソフトウェアへの言及は、必要に応じて、ロジックを含むことができ、その逆も同様である。コンピュータ読取可能な媒体への言及は、必要に応じて、実行のためのソフトウェアを記憶する回路(集積回路(IC)など)、実行のためのロジックを具現化する回路、またはその両方を含むことができる。本開示は、ハードウェアとソフトウェアの任意の適切な組み合わせを含む。
付録A:頭字語
JEM:Joint Exploration Model(共同探索モデル)
VVC:Versatile Video Coding(多用途ビデオコーディング)
BMS:Benchmark Set(ベンチマークセット)
MV:Motion Vector(動きベクトル)
HEVC:High Efficiency Video Coding(高効率ビデオコーディング)
MPM:most probable mode(最確モード)
WAIP:Wide-Angle Intra Prediction(広角イントラ予測)
SEI:Supplementary Enhancement Information(補助強化情報)
VUI:Video Usability Information(ビデオユーザビリティ情報)
GOP:Groups of Pictures(ピクチャ群)
TU:Transform Units(変換ユニット)
PU:Prediction Units(予測ユニット)
CTU:Coding Tree Units(コーディングツリーユニット)
CTB:Coding Tree Blocks(コーディングツリーブロック)
PB:Prediction Blocks(予測ブロック)
HRD:Hypothetical Reference Decoder(仮想参照デコーダ)
SDR:standard dynamic range(標準ダイナミックレンジ)
SNR:Signal Noise Ratio(信号対雑音比)
CPU:Central Processing Units(中央処理装置)
GPU:Graphics Processing Units(グラフィックスプロセッシングユニット)
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 Communications(グローバルモバイル通信システム)
LTE:Long-Term Evolution(長期的な進化)
CANBus:Controller Area Network Bus(コントローラエリアネットワークバス)
USB:Universal Serial Bus(ユニバーサルシリアルバス)
PCI:Peripheral Component Interconnect(ペリフェラルコンポーネントインターコネクト)
FPGA:Field Programmable Gate Areas(フィールドプログラマブルゲートエリア)
SSD:Solid-State Drive(ソリッドステートドライブ)
IC:Integrated Circuit(集積回路)
CU:Coding Unit(コーディングユニット)
PDPC:Position Dependent Prediction Combination(位置依存イントラ予測組み合わせ)
ISP:Intra Sub-Partitions(イントラサブパーティション)
SPS:Sequence Parameter Setting(シーケンスパラメータセット)
本開示は一部の例示的な実施形態を説明してきたが、本開示の範囲内に含まれる変更、置換、および様々な代替の均等物が存在する。したがって、当業者は、本明細書では明示的に示されていないか、または記載されていないが、本開示の原理を具現化し、その思想および範囲内に含まれる様々なシステムおよび方法を考案できることが理解されるであろう。
1648 システムバス
1650 グラフィックアダプタ
1654 ネットワークインターフェース

Claims (8)

  1. デコーダにおけるビデオデコードのための方法であって、
    コード化ビデオシーケンスのピクチャにおけるコーディングブロックのコード化情報をデコードするステップであって、前記コード化情報は、クリッピングインデックスmを示し、前記クリッピングインデックスmは、前記コーディングブロックに適用されるフィルタのクリッピング値を示す、ステップと、
    前記クリッピングインデックスmに関連付けられる前記クリッピング値を決定するステップであって、前記クリッピング値は、第1の関数と第2の関数との乗算に基づくものであり、前記第1の関数は、ビット深度Bに依存し、かつ前記クリッピングインデックスmから独立しており、前記第2の関数は、前記クリッピングインデックスmに依存し、かつ前記ビット深度Bから独立しており、各前記クリッピングインデックスmに対する前記第2の関数は、Nから独立しており、前記Nは、前記クリッピング値を含む許容されるクリッピング値の総数である、ステップと、
    前記クリッピング値に対応する前記フィルタを前記コーディングブロックに適用することにより、フィルタリングされたコーディングブロックを生成するステップと、
    含み、
    前記クリッピング値は、整数であり、
    前記クリッピング値を決定する前記ステップは、2 -αm に基づいて前記クリッピング値を決定するステップを含み、前記第1の関数は2 であり、前記第2の関数は2 -αm であり、αは前記フィルタの強度に関連付けられる定数値であり、
    前記定数値αは、前記コーディングブロックがルマコーディングブロックである場合、第1の定数値であり、前記定数値αは、前記コーディングブロックがクロマコーディングブロックである場合、前記第1の定数値と異なる第2の定数値である、ビデオデコードのための方法。
  2. 前記フィルタは、前記クリッピング値に依存するクリッピング関数を含む非線形適応ループフィルタである、請求項1に記載の方法。
  3. 前記クリッピングインデックスmは、0、1、2、および3のうちの1つである、請求項に記載の方法。
  4. 前記第1の定数値は2.3であり、前記第2の定数値は2.6である、請求項に記載の方法。
  5. 前記クリッピングインデックスmを示す前記コード化情報は、前記ピクチャの適応パラメータセット(APS)でシグナリングされる、請求項1に記載の方法。
  6. 前記コーディングブロックに対するフィルタセットインデックスを受信するステップと、
    前記フィルタセットインデックスに基づいて、複数のフィルタセットから前記フィルタを決定するステップと、をさらに含む、請求項に記載の方法。
  7. ビデオデコードのための装置であって、
    請求項1~のいずれか1項に記載の方法を実行するように構成される処理回路、
    を備える装置。
  8. コンピュータに、請求項1~のいずれか1項に記載の方法を実行させるように構成されるプログラム。
JP2021561991A 2019-09-06 2020-07-21 非線形ループフィルタリングのための方法および装置 Active JP7412443B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201962896997P 2019-09-06 2019-09-06
US62/896,997 2019-09-06
US16/924,845 2020-07-09
US16/924,845 US11140388B2 (en) 2019-09-06 2020-07-09 Method and apparatus for non-linear loop filtering
PCT/US2020/042884 WO2021045847A1 (en) 2019-09-06 2020-07-21 Method and apparatus for non-linear loop filtering

Publications (2)

Publication Number Publication Date
JP2022529354A JP2022529354A (ja) 2022-06-21
JP7412443B2 true JP7412443B2 (ja) 2024-01-12

Family

ID=74851330

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021561991A Active JP7412443B2 (ja) 2019-09-06 2020-07-21 非線形ループフィルタリングのための方法および装置

Country Status (5)

Country Link
US (2) US11140388B2 (ja)
EP (1) EP4026323A4 (ja)
JP (1) JP7412443B2 (ja)
CN (1) CN113748678B (ja)
WO (1) WO2021045847A1 (ja)

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6546557B1 (en) * 1998-10-13 2003-04-08 General Instrument Corporation Method and system for enhancing digital video transmission to a set-top box
CA2823902C (en) * 2011-04-21 2018-03-27 Mediatek Inc. Method and apparatus for improved in-loop filtering
DK3361725T3 (da) * 2011-06-23 2020-04-27 Huawei Tech Co Ltd Offset dekoderanordning, offset koderanordning, billedfilteranordning og datastruktur
US9083983B2 (en) * 2011-10-04 2015-07-14 Qualcomm Incorporated Motion vector predictor candidate clipping removal for video coding
US9282344B2 (en) * 2011-11-04 2016-03-08 Qualcomm Incorporated Secondary boundary filtering for video coding
US20130114688A1 (en) * 2011-11-07 2013-05-09 Louis Joseph Kerofsky Video Decoder with Constrained Dynamic Range
US10057574B2 (en) * 2015-02-11 2018-08-21 Qualcomm Incorporated Coding tree unit (CTU) level adaptive loop filter (ALF)
US20180091812A1 (en) * 2016-09-23 2018-03-29 Apple Inc. Video compression system providing selection of deblocking filters parameters based on bit-depth of video data
JP7330184B2 (ja) * 2017-11-29 2023-08-21 エレクトロニクス アンド テレコミュニケーションズ リサーチ インスチチュート 画像復号化方法、画像符号化方法及びビットストリーム伝送方法
KR102487032B1 (ko) * 2018-02-14 2023-01-11 돌비 레버러토리즈 라이쎈싱 코오포레이션 레이트 왜곡 최적화를 이용한 비디오 코딩에서의 이미지 재성형

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Jianle Chen, et al.,"Algorithm description for Versatile Video Coding and Test Model 6 (VTM 6)",Document: JVET-O2002-v1, [online],JVET-O2002 (version 1),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,2019年08月15日,Pages 1-6 and 62-70,[令和4年11月21日検索], インターネット,<URL: https://jvet-experts.org/doc_end_user/current_document.php?id=7826> and <URL: https://jvet-experts.org/doc_end_user/documents/15_Gothenburg/wg11/JVET-O2002-v1.zip>.,(See document file "JVET-O2002-v1.docx" in the zip file "JVET-O2002-v1.zip".)
Sergey Ikonin, et al.,"Non-CE5: Non-linear ALF simplifications",Document: JVET-O0188-v2, [online],JVET-O0188 (version 2),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,2019年07月06日,Pages 1-9,[令和4年11月21日検索], インターネット,<URL: https://jvet-experts.org/doc_end_user/current_document.php?id=6792> and <URL: https://jvet-experts.org/doc_end_user/documents/15_Gothenburg/wg11/JVET-O0188-v2.zip>.,(See document file "JVET-O0188-v2.docx" in the zip file "JVET-O0188-v2.zip".)
Xuewei Meng, et al.,"Non-CE5: Unification of non-linear ALF luma/chroma clipping parameter",Document: JVET-O0437-v1, [online],JVET-O0437 (version 1),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,2019年06月26日,Pages 1-4,[令和4年11月21日検索], インターネット,<URL: https://jvet-experts.org/doc_end_user/current_document.php?id=7042> and <URL: https://jvet-experts.org/doc_end_user/documents/15_Gothenburg/wg11/JVET-O0437-v1.zip>.,(See document file "JVET-O00437.docx" in the zip file "JVET-O0437-v1.zip".)

Also Published As

Publication number Publication date
EP4026323A4 (en) 2022-11-09
CN113748678B (zh) 2024-03-08
WO2021045847A1 (en) 2021-03-11
US11140388B2 (en) 2021-10-05
EP4026323A1 (en) 2022-07-13
US20210385448A1 (en) 2021-12-09
CN113748678A (zh) 2021-12-03
JP2022529354A (ja) 2022-06-21
US20210076031A1 (en) 2021-03-11

Similar Documents

Publication Publication Date Title
JP7443455B2 (ja) 映像復号化のための方法、装置及びコンピュータ・プログラム
JP7046220B2 (ja) 小ブロックの予測と変換のための方法、装置、及びプログラム
JP7413577B2 (ja) ビデオ符号化/復号化の方法及び装置
JP7405926B2 (ja) 動画の符号化及び復号方法、装置、並びにコンピュータプログラム
KR20210114055A (ko) 교차-컴포넌트 필터링을 위한 방법 및 장치
JP7257516B2 (ja) ビデオ・コーディングのための方法、装置及びコンピュータ・プログラム
JP2023062099A (ja) ビデオ復号化のための方法、機器、非一時的なコンピュータ可読媒体、及びコンピュータプログラム
JP7343669B2 (ja) Vvcにおける色変換のための方法及び機器
JP7297918B2 (ja) ビデオ符号化のための色変換
JP7288078B2 (ja) スキップモードフラグを伝達するための方法、装置及びコンピュータプログラム
JP7271675B2 (ja) ビデオ復号の方法および装置、並びにプログラム
JP2022515126A6 (ja) ビデオ・コーディングのための方法、装置及びコンピュータ・プログラム
JP7378608B2 (ja) ビデオ復号の方法、装置、およびコンピュータプログラム
JP2022510354A (ja) ビデオ符号化における隣接ブロックの利用可能性のための方法および装置
JP2023138753A (ja) 統合位置依存予測組み合わせプロセスを使用するデコードのための方法、装置およびコンピュータ・プログラム
JP7443559B2 (ja) ビデオコーティングのための方法及び装置
JP7395771B2 (ja) テンプレートマッチングベースのイントラ予測
JP7354273B2 (ja) ビデオ符号化方法、装置及びコンピュータプログラム
KR20220085836A (ko) 비디오 코딩 방법 및 장치
JP2023522704A (ja) ビデオコーディングのための方法および装置、およびコンピュータプログラム
JP2023510690A (ja) ビデオコーディングのための方法及び装置
JP7412443B2 (ja) 非線形ループフィルタリングのための方法および装置
JPWO2021207026A5 (ja)
JP7476426B2 (ja) ビデオコーディングのための方法、装置、およびコンピュータプログラム
JP7443527B2 (ja) ビデオコーディングのための方法、装置及びプログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211018

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211018

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221205

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230303

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20230612

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231002

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20231012

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20231211

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231226

R150 Certificate of patent or registration of utility model

Ref document number: 7412443

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150