(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024116223
(43)【公開日】2024-08-27
(54)【発明の名称】サンプル・オフセットのための適応非線形マッピング
(51)【国際特許分類】
H04N 19/117 20140101AFI20240820BHJP
H04N 19/82 20140101ALI20240820BHJP
H04N 19/186 20140101ALI20240820BHJP
H04N 19/176 20140101ALI20240820BHJP
【FI】
H04N19/117
H04N19/82
H04N19/186
H04N19/176
【審査請求】未請求
【請求項の数】1
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024091079
(22)【出願日】2024-06-05
(62)【分割の表示】P 2022560887の分割
【原出願日】2022-01-28
(31)【優先権主張番号】63/163,707
(32)【優先日】2021-03-19
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/568,565
(32)【優先日】2022-01-04
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ドゥ,イシン
(72)【発明者】
【氏名】ジャオ,シン
(72)【発明者】
【氏名】リウ,シャン
(57)【要約】 (修正有)
【課題】ビデオ・デコーダにおけるループ内サンプル・オフセット・フィルタリング方法を提供する。
【解決手段】方法は、ビデオ・ストリームの現在の再構成されたデータ・ブロック内の少なくとも第1の色成分の再構成されたサンプルに関連する少なくとも1つの統計的特性を取得し、少なくとも1つの統計的特性に基づいて複数のサンプル・オフセット・フィルタのうちからターゲット・サンプル・オフセット・フィルタを選択し、ターゲット・サンプル・オフセット・フィルタはサンプル・デルタ指標とサンプル・オフセット値との間の非線形マッピングを含み、現在の再構成されたデータ・ブロックの第2の色成分における現在のサンプルをターゲット・サンプル・オフセット・フィルタと現在の再構成されたデータ・ブロックの第3の色成分における参照サンプルとを使ってフィルタリングして現在のサンプルのフィルタリングされた再構成されたサンプルを生成する。
【選択図】
図24
【特許請求の範囲】
【請求項1】
ビデオ・ストリームのループ内フィルタリングのための方法であって:
前記ビデオ・ストリームの現在の再構成されたデータ・ブロック内の少なくとも第1の色成分の再構成されたサンプルに関連する少なくとも1つの統計的特性を取得するステップと;
前記少なくとも1つの統計的特性に基づいて複数のサンプル・オフセット・フィルタのうちからターゲット・サンプル・オフセット・フィルタを選択するステップであって、前記ターゲット・サンプル・オフセット・フィルタは、サンプル・デルタ指標とサンプル・オフセット値との間の非線形マッピングを含む、ステップと;
現在の再構成されたデータ・ブロックの第2の色成分における現在のサンプルを、前記ターゲット・サンプル・オフセット・フィルタと、現在の再構成されたデータ・ブロックの第3の色成分における参照サンプルとを使ってフィルタリングして、現在のサンプルのフィルタリングされた再構成されたサンプルを生成するステップとを含む、
方法。
【発明の詳細な説明】
【技術分野】
【0001】
引用による組み込み
2022年1月4日に出願された米国非仮特許出願第17/568,565号に基づき、その優先権の利益を主張するものであり、同出願は本開示は、2021年3月19日に出願された「サンプル・オフセットのための適応非線形マッピング」と題する米国仮出願第63/163,707号の優先権を主張する。両出願は、その全体が参照により本明細書に組み込まれる。
【0002】
技術分野
本開示は、概して一連の高度なビデオ符号化〔コーディング〕技術を記載し、特に、局所的な適応性をもつサンプル・オフセット・フィルタリングに関する。
【背景技術】
【0003】
本明細書で提供される背景説明は、本開示の文脈を概括的に提示するためのものである。本願で名前が挙がっている発明者の仕事であってその仕事がこの背景セクションに記載されている範囲におけるもの、また、他の意味で出願時に先行技術として適格でないことがありうる本記述の諸側面は、明示的にも暗黙的にも本開示に対する先行技術として認められない。
【0004】
ビデオ符号化および復号は、動き補償を伴うピクチャー間予測を用いて実行できる。非圧縮デジタル・ビデオは、一連のピクチャーを含むことができ、各ピクチャーは、たとえば1920×1080のルミナンス・サンプルおよび関連するフルのまたはサブサンプリングされたクロミナンス・サンプルの空間的寸法を有する。一連のピクチャーは、固定または可変のピクチャー・レート(フレーム・レートともいう)、たとえば、60ピクチャー毎秒または60フレーム毎秒を有することができる。非圧縮ビデオは、ストリーミングまたはデータ処理のために、特定のビットレート要件を有する。たとえば、1920×1080のピクセル解像度、60フレーム毎秒のフレーム・レートおよび色チャネル毎のピクセル当たり8ビットで4:2:0のクロマ・サブサンプリングをもつビデオは、1.5Gbit/sに近い帯域幅を必要とする。そのようなビデオの1時間は、600Gバイトを超える記憶スペースを必要とする。
【0005】
ビデオ符号化および復号の1つの目的は、圧縮による、非圧縮の入力ビデオ信号の冗長性の低減でありうる。圧縮は、前述の帯域幅および/または記憶スペースの要求を、場合によっては2桁以上も低減するのに役立つことがある。可逆圧縮および不可逆圧縮の両方、ならびにそれらの組み合わせを用いることができる。可逆圧縮とは、デコード・プロセスを通じて、圧縮されたもとの信号から、もとの信号の正確なコピーが再構成できる技術をいう。不可逆圧縮は、もとのビデオ情報が符号化の際に完全に保持されず、デコードの際に完全に回復可能でない符号化/復号プロセスをいう。不可逆圧縮を使用する場合、再構成された信号は、もとの信号と同一ではないことがありうるが、もとの信号と再構成された信号との間の歪みは、再構成された信号を意図された用途のために有用にするのに十分小さくされる。ビデオの場合、不可逆圧縮が多くのアプリケーションにおいて広く用いられている。許容できる歪みの量はアプリケーションに依存する。たとえば、ある種の消費者ビデオストリーミングアプリケーションのユーザーは、映画館またはテレビ放送アプリケーションのユーザーよりも高い歪みを許容することがある。特定の符号化アルゴリズムによって達成可能な圧縮比は、さまざまな歪み許容度を反映するよう選択または調整されることができる:より高い許容可能な歪みは、一般に、より高い損失およびより高い圧縮比をもたらす符号化アルゴリズムを許容する。
【0006】
ビデオ・エンコーダおよびデコーダは、たとえば動き補償、フーリエ変換、量子化、およびエントロピー符号化を含むいくつかの広範なカテゴリーおよびステップからの技術を利用することができる。
【0007】
ビデオ・コーデック技術は、イントラ符号化として知られる技術を含むことができる。イントラ符号化では、サンプル値は、以前に再構成された参照ピクチャーからのサンプルまたは他のデータを参照することなく表現される。いくつかのビデオ・コーデックでは、ピクチャーは空間的にサンプルのブロックに分割される。サンプルのすべてのブロックがイントラモードで符号化される場合、そのピクチャーはイントラ・ピクチャーと称することができる。イントラ・ピクチャーと、独立デコーダ・リフレッシュ・ピクチャーのようなその派生物は、デコーダ状態をリセットするために使用でき、よって、符号化ビデオ・ビットストリームおよびビデオセッションにおける最初のピクチャーとして、または静止画像として使用できる。次いで、イントラ予測後のブロックのサンプルが、周波数領域への変換にかけられることができ、そうして生成される変換係数は、エントロピー符号化の前に量子化されることができる。イントラ予測は、変換前領域におけるサンプル値を最小化する技術を呈する。場合によっては、変換後のDC値が小さく、AC係数が小さいほど、エントロピー符号化後のブロックを表わすために所与の量子化ステップ・サイズで必要とされるビット数が少なくなる。
【0008】
たとえばMPEG-2世代の符号化技術から知られているような伝統的なイントラ符号化は、イントラ予測を使用しない。しかしながら、いくつかのより新しいビデオ圧縮技術は、たとえば、空間的に近傍のエンコードおよび/またはデコードの間に得られる、符号化または復号されているデータのブロックにデコード順で先行する周囲のサンプル・データおよび/またはメタデータに基づいて、ブロックの符号化/復号を試みる技術を含む。そのような技法は、以下では「イントラ予測」技法と呼ばれる。少なくともいくつかの場合には、イントラ予測は再構成中の現在ピクチャーからの参照データのみを使用し、他の参照ピクチャーからの参照データは使用しないことに注意されたい。
【0009】
さまざまな形のイントラ予測がありうる。所与のビデオ符号化技術において、そのような技法の二つ以上が利用可能である場合、使用される技法は、イントラ予測モードと称することができる。特定のコーデックにおいて一つまたは複数のイントラ予測モードが提供されることがある。ある種の場合には、モードは、サブモードを有することができ、および/またはさまざまなパラメータと関連することがある。ビデオのブロックについてのモード/サブモード情報およびイントラ符号化パラメータは、モード符号語を用いて個々にまたは集合的に符号化されることができる。所与のモード、サブモードおよび/またはパラメータの組み合わせのためにどの符号語を使用するかは、イントラ予測を通して符号化効率利得に影響を与える可能性があり、符号語をビットストリームに変換するために使用されるエントロピー符号化技術も同様に影響を与える可能性がある。
【0010】
イントラ予測のあるモードがH.264で導入され、H.265で洗練され、共同探査モデル(JEM)、多用途ビデオ符号化(VVC)、およびベンチマークセット(BMS)のようなより新しい符号化技術においてさらに洗練された。一般に、イントラ予測について、予測子ブロックが、利用可能になっている近傍サンプル値を使用して形成されることができる。たとえば、ある種の方向および/またはある線に沿った近傍サンプルの特定の集合の利用可能な値が、予測子ブロックにコピーされてもよい。使用される方向への参照は、ビットストリームにおいて符号化されることができ、またはそれ自身予測されてもよい。
【0011】
図1Aを参照すると、右下に、H.265の33個の可能なイントラ予測子方向(H.265において指定されている35個のイントラモードのうち33個の角度モードに対応する)において指定されている9個の予測子方向のサブセットが描かれている。矢印が収束する点(101)は、予測されるサンプルを表わす。矢印が表す方向からの近傍サンプルが、サンプルを予測するために使用される。たとえば、矢印(102)は、サンプル(101)が、水平方向から45度の角度の右上の近傍サンプル(単数または複数)から予測されることを示す。同様に、矢印(103)は、サンプル(101)が、水平方向から22.5度の角度の、サンプル(101)の左下の近傍サンプル(単数または複数)から予測されることを示す。
【0012】
引き続き
図1Aを参照すると、左上には、4×4サンプルの正方形ブロック(104)が描かれている(太い破線で示されている)。正方形ブロック(104)は、16個のサンプルを含み、各サンプルは「S」とY次元におけるその位置(たとえば、行インデックス)およびX次元におけるその位置(たとえば、列インデックス)でラベル付けされている。たとえば、サンプルS21は、Y次元の(上から)2番目のサンプルであり、X次元の(左から)最初のサンプルである。同様に、サンプルS44は、YおよびX次元の両方においてブロック(104)内の第4のサンプルである。ブロックが4×4サンプルのサイズなので、S44は右下にある。さらに、同様の番号付けスキームに従う例示的な参照サンプルが示されている。参照サンプルは、Rと、ブロック(104)に対するそのY位置(たとえば、行インデックス)およびX位置(列インデックス)でラベル付けされる。H.264とH.265の両方において、再構成中のブロックに隣接して近傍にある予測サンプルが使用される。
【0013】
ブロック104のピクチャー内予測は、信号伝達される予測方向に従って近傍サンプルから参照サンプル値をコピーすることによって始まってもよい。たとえば、符号化ビデオ・ビットストリームは、このブロック104について、矢印(102)の予測方向を示す信号伝達を含むと想定する。すなわち、サンプルは、水平方向から45度の角度の右上の予測サンプル(単数または複数)から予測される。そのような場合、サンプルS41、S32、S23、およびS14は、同じ参照サンプルR05から予測される。次いで、サンプルS44は、参照サンプルR08から予測される。
【0014】
ある種の場合には、特に方向が45度で割り切れない場合には、参照サンプルを計算するために、複数の参照サンプルの値が、たとえば補間によって組み合わされることができる。
【0015】
ビデオ符号化技術が発達し続けるのに伴い、可能な方向の数が増加してきた。H.264(2003年)では、たとえば、9つの異なる方向がイントラ予測のために利用可能であった。これは、H.265(2013年)では33に増加し、本開示の時点でのJEM/VVC/BMSは、最大65の方向をサポートできる。最も好適なイントラ予測方向を同定するのを助けるために実験的研究が行われ、方向についてのあるビット・ペナルティを受け入れつつ、それらの最も好適な方向を少数のビットでエンコードするために、エントロピー符号化におけるある種の技法が使用されてもよい。さらに、方向自身が、すでにデコードされた近傍のブロックのイントラ予測において使用された近傍方向から予測できることがある。
【0016】
図1Bは、時間とともに発展してきたさまざまなエンコード技術における増加する予測方向の数を示すために、JEMによる65個のイントラ予測方向を描く概略図(180)を示している。
【0017】
イントラ予測方向を表すビットの、符号化ビデオ・ビットストリームにおける予測方向へのマッピングの仕方は、ビデオ符号化技術ごとに異なることができ、たとえば、予測方向のイントラ予測モードへの単純な直接的マッピングから、符号語、最確モードに関わる複雑な適応方式、および同様の技法までありうる。しかしながら、どの場合でも、ビデオコンテンツにおいて、他のある種の方向よりも統計的に起こりにくい、イントロ予測のためのある種の方向が存在しうる。ビデオ圧縮の目標は冗長性の低減であるので、うまく設計されたビデオ符号化技術においては、そうしたより可能性の低い方向は、より可能性の高い方向よりもより多くのビット数によって表わされてもよい。
【0018】
ピクチャー間予測またはインター予測は、動き補償に基づいていてもよい。動き補償では、以前に再構成されたピクチャーまたはその一部(参照ピクチャー)からのサンプル・データのブロックが、動きベクトル(以下、MV)によって示される方向に空間的にシフトされた後に、新しく再構成されるピクチャーまたはピクチャー部分(たとえばブロック)の予測のために使用されうる。場合によっては、参照ピクチャーは、現在再構成中のピクチャーと同じであることもできる。MVは、XおよびYの2次元、または3次元を有していてもよく、第3の次元は、使用される参照ピクチャーの指示である(時間次元のようなもの)。
【0019】
いくつかのビデオ圧縮技術では、サンプル・データのある領域に適用可能な現在のMVは、他のMVから、たとえば、再構成中の領域に空間的に隣接し、デコード順で現在のMVに先行するサンプル・データの別の領域に関連する他のMVから予測されることができる。そうすることにより、相関したMVにおける冗長性を除去することに頼ってMVの符号化に必要とされる全体的なデータ量を大幅に削減することができ、それにより圧縮効率を高めることができる。MV予測が有向に機能できるのは、たとえば、カメラから導出される入力ビデオ信号(ナチュラルビデオとして知られる)を符号化する際に、単一のMVが適用可能である領域よりも大きな領域がビデオ・シーケンスにおいて同様の方向に移動し、よって、ある種の場合には、近傍領域のMVから導出された同様の動きベクトルを用いて予測できるという、統計的確からしさがあるからである。その結果、所与の領域についての実際のMVが、周囲のMVから予測されるMVと同様または同一であることになる。そのようなMVは、エントロピー符号化の後、該MVを近傍MV(単数または複数)から予測するのではなく直接符号化する場合に使用されるであろうものよりも少数のビットで表現できる。いくつかの場合には、MV予測は、もとの信号(すなわち、サンプルストリーム)から導出された信号(すなわち、MV)の可逆圧縮の例でありうる。他の場合には、MV予測自身が、たとえば、いくつかの周囲のMVから予測子を計算する際の丸め誤差のために、不可逆であることがある。
【0020】
H.265/HEVC(ITU-T Rec. H.265、「高効率ビデオ符号化」(High Efficiency Video Coding)、December 2016)には、さまざまなMV予測機構が記述されている。H.265が規定する多くのMV予測機構のうち、下記では、以後、「空間マージ(spatial merge)」と呼ばれる技法が記載される。
【0021】
特に
図2を参照すると、現在ブロック(201)は、空間的にシフトされた同じサイズの前のブロックから予測可能であることが動き探索プロセスの間にエンコーダによって見出されたサンプルを含む。そのMVを直接符号化する代わりに、MVは、一つまたは複数の参照ピクチャーに関連付けられたメタデータから、たとえば(デコード順で)最新の参照ピクチャーから、A0、A1、およびB0、B1、B2(それぞれ202ないし206)と記される5つの周囲のサンプルのいずれかに関連付けられたMVを使用して、導出できる。H.265では、MV予測は、近傍ブロックが使用するのと同じ参照ピクチャーからの予測子を使用することができる。
【発明の概要】
【課題を解決するための手段】
【0022】
本開示の諸側面は、ビデオ・エンコードおよびデコードにおけるサンプル横断オフセット・フィルタリングおよび局所サンプル・オフセット・フィルタリングのための方法および装置を提供する。
【0023】
いくつかの例示的実装では、ビデオ・ストリームのループ内フィルタリングのための方法が開示される。本方法は、ビデオ・ストリームの現在の再構成されたデータ・ブロック内の少なくとも第1の色成分の再構成されたサンプルに関連する少なくとも1つの統計的特性を取得するステップと;前記少なくとも1つの統計的特性に基づいて複数のサンプル・オフセット・フィルタのうちからターゲット・サンプル・オフセット・フィルタを選択するステップであって、前記ターゲット・サンプル・オフセット・フィルタは、サンプル・デルタ指標とサンプル・オフセット値との間の非線形マッピングを含む、ステップと;現在の再構成されたデータ・ブロックの第2の色成分における現在のサンプルを、前記ターゲット・サンプル・オフセット・フィルタと、現在の再構成されたデータ・ブロックの第3の色成分における参照サンプルとを使ってフィルタリングして、現在のサンプルのフィルタリングされた再構成されたサンプルを生成するステップとを含むことができる。
【0024】
上記の実装では、第1の色成分は、第3の色成分と同じ色成分であってもよい。第1の色成分は、第2の色成分と同じ色成分であってもよい。第2の色成分は、第3の色成分と異なる色成分であってもよい。第2の色成分は、第3の色成分と同じ色成分であってもよい。前記少なくとも第1の色成分は、1つ、2つ、または3つの色成分を含んでいてもよい。
【0025】
上記の実装の任意のものにおいて、前記少なくとも1つの統計的特性は、現在の再構成されたデータ・ブロックのエッジ情報を含んでいてもよい。さらに、現在の再構成されたデータ・ブロックのエッジ情報は、制約された方向性向上フィルタリング(Constrained Directional Enhanced Filtering、CDEF)プロセスにおいて導出されたエッジ方向を含み、前記複数のサンプル・オフセット・フィルタは、N個のCDEFエッジ方向に対応するN個のサンプル・オフセット・フィルタを含み、Nは、1から8までの間の整数である。さらに、前記複数のサンプル・オフセット・フィルタは、高レベル構文(high level syntax、HLS)でフレームレベルで信号伝達される。
【0026】
上記の実装の任意のものにおいて、前記少なくとも1つの統計的特性は、現在の再構成されたデータ・ブロックの平滑性指標を含む。さらに、現在の再構成されたデータ・ブロックの平滑性指標は、M-1個の平滑性レベル閾値によって特徴付けられるM個のあらかじめ定義された平滑性レベルのうちの1つにマッピングされ;前記複数のサンプル・オフセット・フィルタは、M個のあらかじめ定義された平滑性レベルに対応するM個のサンプル・オフセット・フィルタを含み;ターゲットサンプルオフセットフィルタは、平滑性指標にマッピングされたM個のあらかじめ定義された平滑性レベルのうちの前記1つに従ってM個のサンプル・オフセット・フィルタから選択される。
【0027】
上記の実装の任意のものにおいて、前記少なくとも1つの統計的特性は、現在の再構成されたデータ・ブロックの符号化情報を含む。さらに、符号化情報は、現在の再構成されたデータ・ブロックの現在の予測モードを含み;前記複数のサンプル・オフセット・フィルタは、異なる予測モードに対応し;ターゲットサンプルオフセットフィルタは、現在の再構成されたデータ・ブロックの現在の予測モードに従って前記複数のサンプル・オフセット・フィルタから選択される。さらに、異なる予測モードは、イントラDCモード、イントラ平面モード、イントラPAETHモード、イントラSMOOTHモード、イントラ再帰フィルタリング・モード、およびインターSKIPモードのうちの少なくとも1つを含む。
【0028】
上記の実装の任意のものにおいて、前記複数のサンプル・オフセット・フィルタのそれぞれは、フィルタ係数の集合、いくつかのフィルタ・タップ、および前記いくつかのフィルタ・タップの位置に関連付けられる。
【0029】
上記の実装の任意のものにおいて、現在の再構成されたデータ・ブロックの第2の色成分における現在のサンプルを、前記ターゲット・サンプル・オフセット・フィルタと、現在の再構成されたデータ・ブロックの第3の色成分における参照サンプルとを使ってフィルタリングして、現在のサンプルのフィルタリングされた再構成されたサンプルを生成することは、第2の色成分の現在のサンプルの第1の位置と、ターゲットサンプルオフセットフィルタに関連する複数のフィルタ・タップの第2の位置とを決定するステップと:第1の位置および第2の位置における第3の色成分の再構成されたサンプルを参照サンプルとして同定するステップと;どちらも現在の再構成されたデータ・ブロックの第3の色成分にある、第2の位置に対応する参照サンプルと第1の位置に対応する参照サンプルとの間のデルタ指標を決定するステップと;デルタ指標に基づいて、ターゲットサンプルオフセットフィルタからサンプル・オフセット値を抽出するステップと;サンプル・オフセット値を用いて第2の色成分の現在のサンプルをフィルタリングして、現在のサンプルのフィルタリングされた再構成されたサンプルを生成するステップとを含んでいてもよい。
【0030】
上記の実装の任意のものにおいて、前記複数のサンプル・オフセット・フィルタは、あらかじめ決定されていてもよい。前記複数のサンプル・オフセット・フィルタと、前記複数のサンプル・オフセット・フィルタのうちの選択されたターゲットサンプルオフセットフィルタのインデックスとは、シーケンス・レベル、ピクチャー・レベル、または符号化ツリー単位レベルで信号伝達されうる。
【0031】
いくつかの実装では、ビデオ・エンコードまたはデコード装置が開示される。装置は、上記の方法のいずれかを実装するように構成された回路を含んでいてもよい。
【0032】
本開示の諸側面は、ビデオ・デコードおよび/またはエンコードのためにコンピュータによって実行されたときに、コンピュータにビデオ・デコードおよび/またはエンコードのための方法を実行させる命令を記憶する非一時的なコンピュータ読み取り可能媒体を提供する。
【図面の簡単な説明】
【0033】
開示された主題のさらなる特徴、性質、およびさまざまな利点は、以下の詳細な説明および添付の図面からより明白になるであろう。
【0034】
【
図1A】イントラ予測方向性モードの例示的なサブセットの概略図である。
【0035】
【
図1B】例示的なイントラ予測方向の説明図である。
【0036】
【
図2】一例における動きベクトル予測のための現在ブロックおよびその周囲の空間的マージ候補の概略図である。
【0037】
【
図3】ある例示的実施形態による通信システムの簡略化されたブロック図の概略図である。
【0038】
【
図4】ある例示的実施形態による通信システム(400)の簡略化されたブロック図の概略図である。
【0039】
【
図5】ある例示的実施形態によるデコーダの簡略化されたブロック図の概略図である。
【0040】
【
図6】ある例示的実施形態によるエンコーダの簡略化されたブロック図の概略図である。
【0041】
【
図7】別の例示的実施形態によるビデオ・エンコーダのブロック図を示す。
【0042】
【
図8】別の例示的実施形態によるビデオ・デコーダのブロック図を示す。
【0043】
【
図9】本開示の実施形態による例示的な適応ループ・フィルタを示す。
【0044】
【
図10A】本開示の実施形態による、垂直方向の勾配を計算するために使用されるサブサンプリングされた位置の例を示す。
【
図10B】本開示の実施形態による、水平方向の勾配を計算するために使用されるサブサンプリングされた位置の例を示す。
【
図10C】本開示の実施形態による、対角方向の勾配を計算するために使用されるサブサンプリングされた位置の例を示す。
【
図10D】本開示の実施形態による、対角方向の勾配を計算するために使用されるサブサンプリングされた位置の例を示す。
【0045】
【
図10E】適応ループフィルタ(AFL)による使用のための、さまざまな勾配に基づくブロック方向性を決定する例示的な態様を示す。
【0046】
【
図11】A~Bは、本開示の例示的実施形態による仮想境界における修正されたブロック分類を示す。
【0047】
【
図12】A~Fは、本開示の実施形態による、それぞれの仮想境界におけるパディング動作をもつ、例示的な適応ループ・フィルタを示す。
【0048】
【
図13】本開示のある実施形態による、最大の符号化単位に整列されたピクチャー四分木分割の例を示す。
【0049】
【
図14】本開示の例示的実施形態による、
図13に対応する四分木分割パターンを示す。
【0050】
【
図15】本開示の例示的実施形態による、クロマ成分を生成するために使用される成分横断フィルタを示す。
【0051】
【
図16】本開示のある実施形態による、成分横断ALFフィルタの例を示す。
【0052】
【
図17A】本開示の実施形態による、ルーマ・サンプルに対するクロマ・サンプルの例示的な位置を示す。
【
図17B】本開示の実施形態による、ルーマ・サンプルに対するクロマ・サンプルの例示的な位置を示す。
【0053】
【
図18】本開示のある実施形態による、ブロックのための方向探索の例を示す。
【0054】
【
図19】本開示のある実施形態による、部分空間投影を示す例を示す。
【0055】
【
図20】本開示のある実施形態による、成分横断サンプル・オフセット(CCSO)フィルタにおけるフィルタ・サポート領域の例を示す。
【0056】
【
図21A】本開示のある実施形態による、CCSOフィルタで使用される例示的なマッピングを示す図の一部である。
【
図21B】本開示のある実施形態による、CCSOフィルタで使用される例示的なマッピングを示す図の一部である。
【
図21C】本開示のある実施形態による、CCSOフィルタで使用される例示的なマッピングを示す図の一部である。
【0057】
【
図22】本開示のある実施形態によるCCSOフィルタの例示的実装を示す。
【0058】
【
図23】本開示のある実施形態による、エッジオフセットにおけるピクセル分類のための4つの例示的なパターンを示す。
【0059】
【
図24】本開示のある実施形態による、プロセス(2400)の概要を示すフローチャートを示す。
【0060】
【
図25】例示的実施形態によるコンピュータ・システムの概略図を示す。
【発明を実施するための形態】
【0061】
図3は、本開示のある実施形態による通信システム(300)の簡略化されたブロック図を示す。通信システム(300)は、たとえばネットワーク(350)を介して互いに通信することができる複数の端末装置を含む。たとえば、通信システム(300)は、ネットワーク(350)を介して相互接続された第1の対の端末装置(310)および(320)を含む。
図3の例では、第1の対の端末装置(310)および(320)は、データの一方向伝送を実行してもよい。たとえば、端末装置(310)は、ネットワーク(350)を介した他方の端末装置(320)への伝送のために、ビデオ・データ(たとえば、端末装置(310)によって捕捉されたビデオ・ピクチャーのストリームのビデオ・データ)を符号化してもよい。エンコードされたビデオ・データは、一つまたは複数の符号化ビデオ・ビットストリームの形で伝送されることができる。端末装置(320)は、ネットワーク(350)から、符号化ビデオ・データを受信し、符号化ビデオ・データをデコードしてビデオ・ピクチャーを復元し、復元されたビデオ・データに従ってビデオ・ピクチャーを表示してもよい。一方向データ伝送は、メディア・サービス・アプリケーション等において実装されることがある。
【0062】
別の例では、通信システム(300)は、たとえばビデオ会議アプリケーションにおいて実装されうる符号化されたビデオ・データの双方向伝送を実行する第2の対の端末装置(330)および(340)を含む。データの双方向伝送のために、一例では、端末装置(330)および(340)の各端末装置は、ネットワーク(350)を介した、端末装置(330)および(340)のうちの他方の端末装置への伝送のために、ビデオ・データ(たとえば、端末装置によって捕捉されたビデオ・ピクチャーのストリームのビデオ・データ)を符号化してもよい。端末装置(330)および(340)の各端末装置は、端末装置(330)および(340)のうちの他方の端末装置によって送信された符号化されたビデオ・データを受信してもよく、符号化されたビデオ・データをデコードして、ビデオ・ピクチャーを復元し、復元されたビデオ・データに従って、アクセス可能な表示装置においてビデオ・ピクチャーを表示してもよい。
【0063】
図3の例では、端末装置(310)、(320)、(330)および(340)は、サーバー、パーソナルコンピュータおよびスマートフォンとして実装されてもよいが、本開示の基礎となる原理の適用可能性は、それに限定されなくてもよい。本開示の実施形態は、デスクトップ・コンピュータ、ラップトップ・コンピュータ、タブレット・コンピュータ、メディア・プレーヤー、ウェアラブル・コンピュータ、専用のビデオ会議設備および/またはその他で実装されてもよい。ネットワーク(350)は、たとえば有線(ワイヤード)および/または無線〔ワイヤレス〕通信ネットワークを含む、端末装置(310)、(320)、(330)および(340)の間で符号化されたビデオ・データを伝達する任意の数またはタイプのネットワークを表わす。通信ネットワーク(350)は、回線交換される、パケット交換される、および/または他のタイプのチャネルにおいてデータを交換してもよい。代表的なネットワークは、遠隔通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワークおよび/またはインターネットを含む。今の議論の目的のために、ネットワーク(350)のアーキテクチャーおよびトポロジーは、本明細書で明示的に説明しない限り、本開示の動作には重要ではないことがある。
【0064】
図4は、開示される主題のためのアプリケーションの例として、ビデオ・ストリーミング環境におけるビデオ・エンコーダおよびビデオ・デコーダの配置を示す。開示される主題は、たとえば、ビデオ会議、デジタルTV、放送、ゲーム、仮想現実、CD、DVD、メモリースティックなどを含むデジタル媒体上の圧縮ビデオの記憶などを含む、他のビデオ・アプリケーションにも等しく適用可能でありうる。
【0065】
ビデオ・ストリーミング・システムは、非圧縮のビデオ・ピクチャーまたは画像のストリーム(402)を生成するための、ビデオ源(401)、たとえばデジタル・カメラを含むことができるビデオ捕捉サブシステム(413)を含んでいてもよい。一例では、ビデオ・ピクチャーのストリーム(402)は、ビデオ源401のデジタル・カメラによって記録されたサンプルを含む。エンコードされたビデオ・データ(404)(または符号化されたビデオ・ビットストリーム)と比較した場合の高いデータ・ボリュームを強調するために太線として描かれているビデオ・ピクチャーのストリーム(402)は、ビデオ源(401)に結合されたビデオ・エンコーダ(403)を含む電子装置(420)によって処理されることができる。ビデオ・エンコーダ(403)は、以下により詳細に説明されるように、開示される主題の諸側面を可能にし、または実現するためのハードウェア、ソフトウェア、またはそれらの組み合わせを含むことができる。非圧縮のビデオ・ピクチャーのストリーム(402)と比較した場合の、より低いデータ・ボリュームを強調するために細い線として描かれている、エンコードされたビデオ・データ(404)(またはエンコードされたビデオ・ビットストリーム(404))は、将来の使用のためにストリーミング・サーバー(405)に、または下流のビデオ装置(図示せず)に直接、記憶されることができる。
図4のクライアント・サブシステム(406)および(408)のような一つまたは複数のストリーミング・クライアント・サブシステムは、ストリーミング・サーバー(405)にアクセスして、エンコードされたビデオ・データ(404)のコピー(407)および(409)を取り出すことができる。クライアント・サブシステム(406)は、たとえば電子装置(430)内にビデオ・デコーダ(410)を含むことができる。ビデオ・デコーダ(410)は、エンコードされたビデオ・データの入来コピー(407)をデコードし、ディスプレイ(412)(たとえば表示画面)または他のレンダリング装置(図示せず)上にレンダリングできる、非圧縮のビデオ・ピクチャーの出ていくストリーム(411)を生成する。ビデオ・デコーダ410は、本開示に記載されるさまざまな機能の一部または全部を実行するように構成されうる。いくつかのストリーミング・システムでは、エンコードされたビデオ・データ(404)、(407)、および(409)(たとえば、ビデオ・ビットストリーム)は、ある種のビデオ符号化/圧縮標準に従ってエンコードされることができる。これらの標準の例は、ITU-T勧告H.265を含む。一例では、開発中のビデオ符号化規格は、非公式にVVCとして知られている。開示される主題は、多用途ビデオ符号化(VVC)および他のビデオ符号化標準の文脈で使用されてもよい。
【0066】
電子装置(420)および(430)は、他の構成要素(図示せず)を含むことができることを注意しておく。たとえば、電子装置(420)は、ビデオ・デコーダ(図示せず)を含むことができ、電子装置(430)は、ビデオ・エンコーダ(図示せず)も含むことができる。
【0067】
図5は、本開示の下記のいずれかの実施形態によるビデオ・デコーダ(510)のブロック図を示す。ビデオ・デコーダ(510)は、電子装置(530)に含まれることができる。電子装置(530)は、受領器(531)(たとえば、受領回路)を含むことができる。ビデオ・デコーダ(510)は、
図4の例におけるビデオ・デコーダ(310)の代わりに使用できる。
【0068】
受領器(531)は、ビデオ・デコーダ(510)によってデコードされるべき一つまたは複数の符号化ビデオ・シーケンスを受領してもよい。同じまたは別の実施形態において、一度に1つの符号化ビデオ・シーケンスがデコードされてもよく、各符号化ビデオ・シーケンスのデコードは、他の符号化ビデオ・シーケンスから独立である。各ビデオ・シーケンスは複数のビデオ・フレームまたは画像に関連していてもよい。符号化ビデオ・シーケンスは、チャネル(501)またはエンコードされたビデオ・データを送信するストリーミング源から受信されてもよく、チャネルは、エンコードされたビデオ・データを記憶する記憶装置へのハードウェア/ソフトウェア・リンクであってもよい。受領器(531)は、エンコードされたビデオ・データを、他のデータ、たとえば符号化されたオーディオ・データおよび/または補助データ・ストリームと一緒に受領してもよく、これらのデータは、それぞれの処理回路(図示せず)に転送されてもよい。受領器(531)は、符号化ビデオ・シーケンスを他のデータから分離することができる。ネットワーク・ジッタ対策として、バッファメモリ(515)が、受領器(531)とエントロピー・デコーダ/パーサー(520)(以下「パーサー」)との間に配置されてもよい。ある種のアプリケーションでは、バッファメモリ(515)はビデオ・デコーダ(510)の一部として実装されてもよい。他のアプリケーションでは、ビデオ・デコーダ(510)の外部にあって、別個であることができる(図示せず)。さらに他のアプリケーションでは、たとえばネットワーク・ジッタに対抗するために、ビデオ・デコーダ(510)の外部にバッファメモリ(図示せず)があってもよく、たとえば再生タイミングを扱うために、ビデオ・デコーダ(510)の内部に別のバッファメモリ(515)があってもよい。受領器(531)が、十分な帯域幅および制御可能性の記憶/転送装置から、またはアイソクロナス・ネットワークからデータを受領している場合は、バッファメモリ(515)は、必要とされなくてもよく、または小さくてもよい。インターネットのようなベストエフォート型のパケット・ネットワークでの使用のためには、十分なサイズのバッファメモリ(515)が要求されることがあり、そのサイズは比較的大きいことがある。そのようなバッファメモリは適応サイズで実装されてもよく、少なくとも部分的に、ビデオ・デコーダ(510)の外部でオペレーティング・システムまたは同様の要素(図示せず)において実装されてもよい。
【0069】
ビデオ・デコーダ(510)は、符号化ビデオ・シーケンスからシンボル(521)を再構成するためのパーサー(520)を含んでいてもよい。これらのシンボルのカテゴリーは、ビデオ・デコーダ(510)の動作を管理するために使用される情報と、潜在的には、ディスプレイ(512)(たとえば表示画面)のようなレンダリング装置を制御するための情報とを含む。ディスプレイは、
図5に示されるように、電子装置(530)の一体的な部分ではなく、電子装置(530)に結合されることができる。レンダリング装置(単数または複数)のための制御情報は、補足向上情報(Supplementary Enhancement Information)(SEIメッセージ)またはビデオユーザビリティ情報(Video Usability Information、VUI)パラメータセット・フラグメント(図示せず)の形であってもよい。パーサー(520)は、パーサー(520)によって受領された符号化ビデオ・シーケンスをパースする/エントロピー復号することができる。符号化ビデオ・シーケンスのエントロピー符号化は、ビデオ符号化技術または標準に従うことができ、可変長符号化、ハフマン符号化、コンテキスト感受性ありまたはなしの算術符号化などを含む、さまざまな原理に従うことができる。パーサー(520)は、符号化ビデオ・シーケンスから、ビデオ・デコーダ内のピクセルのサブグループのうちの少なくとも1つについてのサブグループ・パラメータのセットを、サブグループに対応する少なくとも1つのパラメータに基づいて、抽出することができる。サブグループは、ピクチャーグループ(Group of Pictures、GOP)、ピクチャー、タイル、スライス、マクロブロック、符号化単位(Coding Unit、CU)、ブロック、変換単位(Transform Unit、TU)、予測単位(Prediction Unit、PU)などを含むことができる。パーサー(520)はまた、符号化ビデオ・シーケンスから、変換係数(たとえばフーリエ変換係数)、量子化器パラメータ値、動きベクトル等の情報を抽出することができる。
【0070】
パーサー(520)は、バッファメモリ(515)から受領されたビデオ・シーケンスに対してエントロピー復号/パース動作を実行し、それによりシンボル(521)を生成することができる。
【0071】
シンボル(521)の再構成は、符号化されたビデオ・ピクチャーまたはその諸部分のタイプ(たとえば、インターおよびイントラ・ピクチャー、インターおよびイントラ・ブロック)および他の要因に依存して、複数の異なる処理または機能ユニットに関わることができる。関与するユニットおよびそれらがどのように関与するかは、符号化ビデオ・シーケンスからパーサー(520)によってパースされたサブグループ制御情報によって制御されてもよい。パーサー(520)と下記の複数の処理または機能ユニットとの間のそのようなサブグループ制御情報の流れは、簡単のため、描かれていない。
【0072】
すでに述べた機能ブロックのほかに、ビデオ・デコーダ(510)は、以下に説明するように、概念的に、いくつかの機能ユニットに分割できる。商業的制約の下で機能する実際的な実装では、これらの機能ユニットの多くは互いに密接に相互作用し、少なくとも部分的に互いに統合されることができる。しかしながら、開示される主題のさまざまな機能を明確に記述する目的のために、下記では機能単位への概念的な細分が使用される。
【0073】
第1のユニットは、スケーラー/逆変換ユニット(551)を含んでいてもよい。スケーラー/逆変換ユニット(551)は、パーサー(520)から、量子化された変換係数および制御情報をシンボル(単数または複数)(521)として受領してもよい。制御情報は、どのタイプの逆変換を使用するか、ブロック・サイズ、量子化因子/パラメータ、量子化スケーリング行列などを含む。スケーラー/逆変換ユニット(551)は、集計器(555)に入力できるサンプル値を含むブロックを出力することができる。
【0074】
場合によっては、スケーラー/逆変換(551)の出力サンプルは、イントラ符号化されたブロック、すなわち、以前に再構成されたピクチャーからの予測情報を使用しないが、現在ピクチャーの、以前に再構成された部分からの予測情報を使用することができるブロックに関することができる。そのような予測情報は、イントラ・ピクチャー予測ユニット(552)によって提供されることができる。場合によっては、イントラ・ピクチャー予測ユニット(552)は、現在ピクチャー・バッファ(558)に記憶されている、すでに再構成された周囲のブロック情報を使用して、再構成中のブロックと同じサイズおよび形状のブロックを生成してもよい。現在ピクチャー・バッファ(558)は、たとえば、部分的に再構成された現在ピクチャーおよび/または完全に再構成された現在ピクチャーをバッファリングする。集計器(555)は、いくつかの実装では、サンプル毎に、イントラ予測ユニット(552)が生成した予測情報を、スケーラー/逆変換ユニット(551)によって提供される出力サンプル情報に加算してもよい。
【0075】
他の場合には、スケーラー/逆変換ユニット(551)の出力サンプルは、インター符号化され、潜在的には動き補償されたブロックに関することができる。そのような場合、動き補償予測ユニット(553)は、インター・ピクチャー予測のために使用されるサンプルを取ってくるために参照ピクチャー・メモリ(557)にアクセスすることができる。取ってきたサンプルを、ブロックに関するシンボル(521)に従って動き補償した後、これらのサンプルは、集計器(555)によってスケーラー/逆変換ユニットの出力(ユニット551の出力は、残差サンプルまたは残差信号と呼ばれることがある)に加算されて、それにより出力サンプル情報を生成することができる。動き補償ユニット(553)が予測サンプルを取ってくる参照ピクチャー・メモリ(557)内のアドレスは、シンボル(521)の形で動き補償ユニット(553)に利用可能な動きベクトルによって制御できる。該シンボルは、たとえばX、Y成分(シフト)および参照ピクチャー成分(時間)を有することができる。動き補償は、サンプル以下の正確な動きベクトルが使用されるときの参照ピクチャー・メモリ(557)から取ってこられるサンプル値の補間を含んでいてもよく、動きベクトル予測機構などに関連付けられてもよい。
【0076】
集計器(555)の出力サンプルは、ループ・フィルタ・ユニット(556)内でさまざまなループ・フィルタリング技法にかけられることができる。ビデオ圧縮技術は、ループ内フィルタ技術を含むことができる。ループ内フィルタ技術は、符号化ビデオ・シーケンス(符号化されたビデオ・ビットストリームとも呼ばれる)に含まれるパラメータによって制御され、パーサー(520)からのシンボル(521)としてループ・フィルタ・ユニット(556)に利用可能にされるが、符号化されたピクチャーまたは符号化されたビデオ・シーケンスの(デコード順で)前の部分のデコード中に得られたメタ情報に応答するとともに、以前に再構成されループ・フィルタリングされたサンプル値に応答することもできる。いくつかのタイプのループ・フィルタが、さまざまな順序でループ・フィルタ・ユニット556の一部として含まれてもよい。これについては後により詳細に述べる。
【0077】
ループ・フィルタ・ユニット(556)の出力はサンプル・ストリームであることができ、これは、レンダリング装置(512)に出力されることができ、また将来のインター・ピクチャー予測において使用するために参照ピクチャー・メモリ(557)に記憶されることができる。
【0078】
符号化された画像は、いったん完全に再構成されると、将来のインター・ピクチャー予測のための参照ピクチャーとして使用できる。たとえば、現在ピクチャーに対応する符号化されたピクチャーが完全に再構成され、該符号化されたピクチャーが(たとえば、パーサー(520)によって)参照ピクチャーとして同定されると、現在ピクチャー・バッファ(558)は参照ピクチャーメモリ(557)の一部となることができ、後続の符号化されたピクチャーの再構成を開始する前に、新鮮な現在ピクチャー・バッファが再割当てされることができる。
【0079】
ビデオ・デコーダ(510)は、ITU-T勧告H.265のような標準において採用される所定のビデオ圧縮技術に従ってデコード動作を実行することができる。符号化ビデオ・シーケンスはビデオ圧縮技術または標準のシンタックスおよびビデオ圧縮技術または標準において文書化されているプロファイルに従うという意味で、符号化されたビデオ・シーケンスは、使用されているビデオ圧縮技術または標準によって規定されたシンタックスに準拠することができる。具体的には、プロファイルは、ビデオ圧縮技術または標準において利用可能なすべてのツールからある種のツールを、そのプロファイルのもとでの使用のためにそれだけが利用可能なツールとして、選択することができる。標準に準拠するために、符号化ビデオ・シーケンスの複雑さが、ビデオ圧縮技術または標準のレベルによって定義される範囲内にあってもよい。いくつかの場合には、レベルは、最大ピクチャー・サイズ、最大フレーム・レート、最大再構成サンプル・レート(たとえば、毎秒メガサンプルの単位で測られる)、最大参照ピクチャー・サイズなどを制約する。レベルによって設定された限界は、場合によっては、符号化ビデオ・シーケンスにおいて信号伝達される、HRDバッファ管理のための仮設参照デコーダ(Hypothetical Reference Decoder、HRD)仕様およびメタデータを通じてさらに制約されることができる。
【0080】
いくつかの実施形態では、受領器(531)は、エンコードされたビデオとともに追加の(冗長な)データを受領してもよい。追加データは、符号化されたビデオ・シーケンス(単数または複数)の一部として含まれていてもよい。追加データは、データを適正にデコードするため、および/またはもとのビデオ・データをより正確に再構成するために、ビデオ・デコーダ(510)によって使用されてもよい。追加データは、たとえば、時間的、空間的、または信号対雑音比(SNR)の向上層、冗長スライス、冗長ピクチャー、前方誤り訂正符号などの形でありうる。
【0081】
図6は、本開示のある例示的実施形態によるビデオ・エンコーダ(603)のブロック図を示している。ビデオ・エンコーダ(603)は、電子装置(620)に含まれてもよい。電子装置(620)は、送信器(640)(たとえば、送信回路)をさらに含んでいてもよい。ビデオ・エンコーダ(603)は、
図4の例におけるビデオ・エンコーダ(403)の代わりに使用できる。
【0082】
ビデオ・エンコーダ(603)は、ビデオ・エンコーダ(603)によって符号化されるべきビデオ画像を捕捉することができるビデオ源(601)(これは
図6の例では電子装置(620)の一部ではない)からビデオ・サンプルを受領することができる。別の例では、ビデオ源(601)は、電子装置(620)の一部として実装されてもよい。
【0083】
ビデオ源(601)は、任意の好適なビット深さ(たとえば、8ビット、10ビット、12ビット、…)、任意の色空間(たとえば、BT.601 YCrCB、RGB、XYZ…)および任意の好適なサンプリング構造(たとえば、YCrCb 4:2:0、YCrCb 4:4:4)でありうるデジタル・ビデオ・サンプル・ストリームの形で、ビデオ・エンコーダ(603)によって符号化されるべき源ビデオ・シーケンスを提供することができる。メディア・サービス・システムにおいては、ビデオ源(601)は、事前に準備されたビデオを記憶することができる記憶装置であってもよい。ビデオ会議システムにおいては、ビデオ源(601)は、ローカルでの画像情報をビデオ・シーケンスとして捕捉するカメラであってもよい。ビデオ・データは、シーケンスで見たときに動きを付与する複数の個々のピクチャーまたは画像として提供されてもよい。ピクチャー自体は、ピクセルの空間的アレイとして編成されてもよく、各ピクセルは、使用中のサンプリング構造、色空間などに依存して、一つまたは複数のサンプルを含むことができる。当業者は、ピクセルとサンプルとの間の関係を容易に理解することができる。下記の説明は、サンプルに焦点を当てる。
【0084】
いくつかの例示的実施形態によれば、ビデオ・エンコーダ(603)は、源ビデオ・シーケンスのピクチャーを、リアルタイムで、またはアプリケーションによって要求される任意の他の時間的制約の下で、符号化および圧縮して、符号化ビデオ・シーケンス(643)にすることができる。適切な符号化速度を施行することは、コントローラ(650)の一つの機能をなす。いくつかの実施形態では、コントローラ(650)は、以下に記載されるような他の機能ユニットに機能的に結合されてて、これを制御してもよい。かかる結合は、簡単のために描かれていない。コントローラ(650)によって設定されるパラメータは、レート制御に関連するパラメータ(ピクチャー・スキップ、量子化器、レート‐歪み最適化技法のラムダ値、…)、ピクチャー・サイズ、ピクチャーグループ(GOP)レイアウト、最大動きベクトル探索範囲などを含むことができる。コントローラ(650)は、ある種のシステム設計のために最適化されたビデオ・エンコーダ(603)に関する他の好適な機能を有するように構成できる。
【0085】
いくつかの例示的実施形態では、ビデオ・エンコーダ(603)は、符号化ループにおいて動作するように構成されてもよい。思い切って単純化した説明として、一例では、符号化ループは、源符号化器(630)(たとえば、符号化されるべき入力ピクチャーと参照ピクチャー(算数または複数)に基づいてシンボル・ストリームのようなシンボルを生成することを受け持つ)と、ビデオ・エンコーダ(603)に埋め込まれた(ローカル)デコーダ(633)とを含むことができる。埋め込まれたデコーダ633がエントロピー符号化なしで源符号化器630による符号化ビデオ・ストリームを処理するとしても、(リモートの)デコーダが生成するであろうのと同様の仕方でサンプル・データを生成するよう、デコーダ(633)は、前記シンボルを再構成する(開示される主題において考慮されるビデオ圧縮技術では、エントロピー符号化における、シンボルと符号化ビデオ・ビットストリームとの間のどの圧縮も、無損失でありうる)。再構成されたサンプル・ストリーム(サンプル・データ)は、参照ピクチャー・メモリ(634)に入力される。シンボル・ストリームのデコードは、デコーダ位置(ローカルかリモートか)によらずビット正確な結果をもたらすので、参照ピクチャー・メモリ(634)の内容もローカル・エンコーダとリモート・エンコーダの間でビット正確である。言い換えると、エンコーダの予測部は、デコーダがデコード中に予測を使用するときに「見る」のとまったく同じサンプル値を参照ピクチャー・サンプルとして「見る」。参照ピクチャー同期性のこの基本原理(および、たとえば、チャネルエラーのために同期性が維持できない場合の結果として生じるドリフト)は、符号化品質を改善するために使用される。
【0086】
「ローカル」デコーダ(633)の動作は、
図5との関連ですでに上記で詳細に述べた「リモート」デコーダ、たとえばビデオ・デコーダ(410)の動作と同じであってよい。しかしながら、暫時
図5も参照すると、シンボルが利用可能であり、エントロピー符号化器(645)およびパーサー(420)による、シンボルの符号化ビデオ・シーケンスへのエンコード/デコードが可逆でありうるので、バッファメモリ(415)およびパーサー(420)を含むビデオ・デコーダ(410)のエントロピー復号部は、エンコーダ内のローカル・デコーダ(633)においては完全には実装されなくてもよい。
【0087】
この時点で行なうことができる観察は、デコーダ内にのみ存在しうるパース/エントロピー復号を除くどのデコーダ技術も、対応するエンコーダ内で実質的に同一の機能的形態で存在する必要がある可能性があるということである。このため、開示される主題は、エンコーダのデコード部分に結びつくデコーダ動作に焦点を当てることがある。よって、エンコーダ技術の記述は、包括的に記述されるデコーダ技術の逆であるため、短縮することができる。ある種の領域または側面においてのみ、エンコーダの、より詳細な説明が以下に提供される。
【0088】
動作中、いくつかの例示的実装では、源符号化器(630)は、「参照ピクチャー」として指定された、ビデオ・シーケンスからの一つまたは複数の以前に符号化されたピクチャーを参照して、入力ピクチャーを予測的に符号化する、動き補償された予測符号化を実行することができる。このようにして、符号化エンジン(632)は、入力ピクチャーのピクセル・ブロックと、入力ピクチャーに対する予測参照として選択されうる参照ピクチャー(単数または複数)のピクセル・ブロックとの間の、諸色チャネルにおける差分(または残差)を符号化する。
【0089】
ローカル・ビデオ・デコーダ(633)は、源符号化器(630)によって生成されたシンボルに基づいて、参照ピクチャーとして指定されうるピクチャーの符号化されたビデオ・データをデコードすることができる。符号化エンジン(632)の動作は、有利には、損失のあるプロセスでありうる。符号化されたビデオ・データがビデオ・デコーダ(
図6には示さず)でデコードされうるとき、再構成されたビデオ・シーケンスは、典型的には、いくつかのエラーを伴う源ビデオ・シーケンスの複製でありうる。ローカル・ビデオ・デコーダ(633)は、ビデオ・デコーダによって参照ピクチャーに対して実行されうるデコード・プロセスを複製し、再構成された参照ピクチャーを参照ピクチャー・キャッシュ(634)に格納させることができる。このようにして、ビデオ・エンコーダ(603)は、遠端の(リモート)ビデオ・デコーダによって得られるであろう再構成された参照ピクチャーとしての共通の内容を(伝送エラーがなければ)有する再構成された参照ピクチャーのコピーを、ローカルに記憶することができる。
【0090】
予測器(635)は、符号化エンジン(632)について予測探索を実行することができる。すなわち、符号化されるべき新しいピクチャーについて、予測器(635)は、新しいピクチャーのための適切な予測参照のはたらきをしうるサンプル・データ(候補参照ピクセル・ブロックとして)またはある種のメタデータ、たとえば参照ピクチャー動きベクトル、ブロック形状などを求めて、参照ピクチャー・メモリ(634)を探索することができる。予測器(635)は、適切な予測参照を見出すために、サンプル・ブロック/ピクセル・ブロック毎に(on a sample block-by-pixel block basis)動作しうる。場合によっては、予測器(635)によって得られた検索結果によって決定されるところにより、入力ピクチャーは、参照ピクチャー・メモリ(634)に記憶された複数の参照ピクチャーから引き出された予測参照を有することができる。
【0091】
コントローラ(650)は、たとえば、ビデオ・データをエンコードするために使用されるパラメータおよびサブグループ・パラメータの設定を含め、源符号化器(630)の符号化動作を管理してもよい。
【0092】
上記の機能ユニットすべての出力は、エントロピー符号化器(645)におけるエントロピー符号化を受けることができる。エントロピー符号化器(645)は、ハフマン符号化、可変長符号化、算術符号化などといった技術に従ってシンボルの無損失圧縮によって、さまざまな機能ユニットによって生成されたシンボルを符号化ビデオ・シーケンスに変換する。
【0093】
送信器(640)は、エントロピー符号化器(645)によって生成される符号化ビデオ・シーケンスをバッファに入れて、通信チャネル(660)を介した送信のために準備することができる。通信チャネル(660)は、エンコードされたビデオ・データを記憶する記憶装置へのハードウェア/ソフトウェア・リンクであってもよい。送信器(640)は、ビデオ符号化器(630)からの符号化されたビデオ・データを、送信されるべき他のデータ、たとえば符号化されたオーディオ・データおよび/または補助データ・ストリーム(源は図示せず)とマージすることができる。
【0094】
コントローラ(650)は、ビデオ・エンコーダ(603)の動作を管理してもよい。符号化の間、コントローラ(650)は、それぞれの符号化されたピクチャーに、ある符号化ピクチャー・タイプを割り当てることができる。符号化ピクチャー・タイプは、それぞれのピクチャーに適用されうる符号化技術に影響しうる。たとえば、ピクチャーはしばしば、以下のピクチャー・タイプのうちの1つとして割り当てられることがある。
【0095】
イントラピクチャー(Iピクチャー)は、予測の源としてシーケンス内の他のピクチャーを使用せずに、符号化され、デコードされうるものでありうる。いくつかのビデオ・コーデックは、たとえば、独立デコーダ・リフレッシュ(Independent Decoder Refresh、「IDR」)・ピクチャーを含む、異なるタイプのイントラ・ピクチャーを許容する。当業者は、Iピクチャーのこれらの変形、ならびにそれらのそれぞれの用途および特徴を認識する。
【0096】
予測ピクチャー(Pピクチャー)は、各ブロックのサンプル値を予測するために、最大で1つの動きベクトルおよび参照インデックスを用いるイントラ予測またはインター予測を用いて符号化およびデコードされうるものでありうる。
【0097】
双方向予測ピクチャー(Bピクチャー)は、各ブロックのサンプル値を予測するために、最大で2つの動きベクトルおよび参照インデックスを用いるイントラ予測またはインター予測を用いて符号化およびデコードされうるものでありうる。同様に、マルチ予測ピクチャーは、単一のブロックの再構成のために、3つ以上の参照ピクチャーおよび関連するメタデータを使用することができる。
【0098】
源ピクチャーは、普通、空間的に複数のサンプル符号化ブロック(たとえば、それぞれ4×4、8×8、4×8、または16×16サンプルのブロック)に分割され、ブロック毎に符号化されうる。ブロックは、ブロックのそれぞれのピクチャーに適用される符号化割り当てによって決定されるところにより、他の(すでに符号化された)ブロックを参照して予測的に符号化されうる。たとえば、Iピクチャーのブロックは、非予測的に符号化されてもよく、または、同じピクチャーのすでに符号化されたブロックを参照して予測的に符号化されてもよい(空間的予測またはイントラ予測)。Pピクチャーのピクセル・ブロックは、以前に符号化された一つの参照ピクチャーを参照して、空間的予測を介してまたは時間的予測を介して予測的に符号化されてもよい。Bピクチャーのブロックは、1つまたは2つの以前に符号化された参照ピクチャーを参照して、空間的予測を介して、または時間的予測を介して予測的に符号化されてもよい。源ピクチャーまたは中間的な処理されたピクチャーは、他の目的のために他のタイプのブロックに細分されてもよい。符号化ブロックと他のタイプのブロックの分割は、のちにより詳細に述べるように、同じ仕方に従っても、従わなくてもよい。
【0099】
ビデオ・エンコーダ(603)は、ITU-T勧告H.265などの所定のビデオ符号化技術または標準に従って符号化動作を実行することができる。その動作において、ビデオ・エンコーダ(603)は、入力ビデオ・シーケンスにおける時間的および空間的冗長性を活用する予測符号化動作を含む、さまざまな圧縮動作を実行することができる。よって、符号化されたビデオ・データは、使用されるビデオ符号化技術または標準によって指定されるシンタックスに準拠しうる。
【0100】
いくつかの例示的実施形態において、送信器(640)は、エンコードされたビデオと一緒に追加データを送信してもよい。源符号化器(630)は、符号化ビデオ・シーケンスの一部としてそのようなデータを含めてもよい。追加データは、時間的/空間的/SNR向上層、冗長ピクチャーおよびスライスのような他の形の冗長データ、SEIメッセージ、VUIパラメータ・セット・フラグメントなどを含んでいてもよい。
【0101】
ビデオは、時間的シーケンスにおいて複数の源ピクチャー(ビデオ・ピクチャー)として捕捉されてもよい。ピクチャー内予測〔イントラ・ピクチャー予測〕(しばしば、イントラ予測と略される)は、所与のピクチャーにおける空間的相関を利用し、ピクチャー間予測〔インター・ピクチャー予測〕は、ピクチャー間の(時間的または他の)相関を利用する。たとえば、現在ピクチャーと呼ばれるエンコード/デコード対象の特定のピクチャーは、ブロックに分割されてもよい。現在ピクチャー内のブロックは、ビデオにおける、前に符号化され、かつ、まだバッファに入れられている参照ピクチャー内の参照ブロックに類似する場合、動きベクトルと呼ばれるベクトルによって符号化されうる。動きベクトルは、参照ピクチャー内の参照ブロックをポイントし、複数の参照ピクチャーが使用される場合には、参照ピクチャーを同定する第3の次元を有することができる。
【0102】
いくつかの例示的実施形態において、ピクチャー間予測のために双予測技術が使用できる。そのような双予測技術によれば、いずれもビデオにおいて現在ピクチャーよりデコード順で先行する(ただし、表示順では、それぞれ過去および将来であってもよい)第1の参照ピクチャーおよび第2の参照ピクチャーのような2つの参照ピクチャーが使用される。現在ピクチャー内のブロックは、第1の参照ピクチャー内の第1の参照ブロックをポイントする第1 動きベクトルと、第2の参照ピクチャー内の第2の参照ブロックをポイントする第2 動きベクトルとによって符号化できる。ブロックは、第1の参照ブロックと第2の参照ブロックの組み合わせによって合同して予測できる。
【0103】
さらに、符号化効率を改善するために、ピクチャー間予測においてマージモード技法が使用されてもよい。
【0104】
本開示のいくつかの例示的実施形態によれば、ピクチャー間予測およびピクチャー内予測などの予測は、ブロックの単位で実行される。たとえば、ビデオ・ピクチャーのシーケンスにおけるピクチャーは、圧縮のために符号化ツリー単位(CTU)に分割され、ピクチャーにおけるそれらのCTUは、64×64ピクセル、32×32ピクセル、または16×16ピクセルなどの同じサイズを有していてもよい。一般に、CTUは、1つのルーマCTBおよび2つのクロマCTBである3つの並列な符号化ツリーブロック(CTB)を含んでいてもよい。各CTUは、再帰的に、一つまたは複数の符号化単位(CU)に四分木分割されていくことができる。たとえば、64×64ピクセルのCTUは、64×64ピクセルの1つのCU、または32×32ピクセルの4つのCUに分割できる。32×32ブロックの前記一つまたは複数のそれぞれは、16×16ピクセルの4個のCUにさらに分割されてもよい。いくつかの例示的実施形態では、各CUは、エンコード中に、インター予測タイプまたはイントラ予測タイプのようなさまざまな予測タイプのうちで、そのCUについての予測タイプを決定するために解析される。CUは時間的および/または空間的予測可能性に依存して、一つまたは複数の予測単位(PU)に分割されてもよい。一般に、各PUはルーマ予測ブロック(PB)および2つのクロマPBを含む。ある実施形態では、符号化(エンコード/デコード)における予測動作は、予測ブロックの単位で実行される。CUのPU(または異なる色チャネルのPB)への分割は、さまざまな空間的パターンにおいて実行されうる。たとえば、ルーマまたはクロマPBは、8×8ピクセル、16×16ピクセル、8×16ピクセル、16×8ピクセルなど、サンプルについての値(たとえば、ルーマ値)の行列を含んでいてもよい。
【0105】
図7は、本開示の別の例示的実施形態によるビデオ・エンコーダ(703)の図を示す。ビデオ・エンコーダ(703)は、ビデオ・ピクチャーのシーケンス内の現在ビデオ・ピクチャー内のサンプル値の処理ブロック(たとえば、予測ブロック)を受領し、処理ブロックを、符号化ビデオ・シーケンスの一部である符号化されたピクチャーにエンコードするように構成される。例示的なビデオ・エンコーダ(703)は、
図4の例におけるビデオ・エンコーダ(403)の代わりに使用されてもよい。
【0106】
たとえば、ビデオ・エンコーダ(703)は、8×8サンプルなどの予測ブロックのような処理ブロックについてサンプル値の行列を受領する。次いで、ビデオ・エンコーダ(703)は、処理ブロックが、イントラモード、インターモード、または双予測モードのどれを使用して、最もよく符号化されるかを、たとえばレート‐歪み最適化(RDO)を使用して、判別する。処理ブロックがイントラモードで符号化されると決定される場合、ビデオ・エンコーダ(703)は、処理ブロックを符号化されたピクチャーにエンコードするためにイントラ予測技法を使用してもよく;処理ブロックがインターモードまたは双予測モードで符号化されると決定される場合、ビデオ・エンコーダ(703)は、処理ブロックを符号化されたピクチャーにエンコードするために、それぞれ、インター予測技法または双予測技法を使用してもよい。いくつかの例示的実施形態では、マージモード(merge mode)は、動きベクトルが一つまたは複数の動きベクトル予測子から導出されるが前記予測子の外の符号化された動きベクトル成分の利益のない、ピクチャー間予測のサブモードでありうる。いくつかの他の例示的実施形態では、対象ブロックに適用可能な動きベクトル成分が存在してもよい。よって、ビデオ・エンコーダ(703)は、処理ブロックの予測モードを決定するためのモード決定モジュールなど、
図7に明示的に示されないコンポーネントを含んでいてもよい。
【0107】
図7の例では、ビデオ・エンコーダ(703)は、インター・エンコーダ(730)、イントラ・エンコーダ(722)、残差計算器(723)、スイッチ(726)、残差エンコーダ(724)、全般コントローラ(721)、およびエントロピー符号化器(725)を、
図7の例示的配置に示されるように一緒に結合されて含む。
【0108】
インター・エンコーダ(730)は、現在ブロック(たとえば、処理ブロック)のサンプルを受領し、該ブロックを参照ピクチャー内の一つまたは複数の参照ブロック(たとえば、表示順で以前のピクチャーおよび後のピクチャー内のブロック)と比較し、インター予測情報(たとえば、インター・エンコード技術による冗長情報の記述、動きベクトル、マージモード情報)を生成し、該インター予測情報に基づいて、任意の好適な技法を使用してインター予測結果(たとえば、予測されたブロック)を計算するように構成される。いくつかの例では、前記参照ピクチャーは、(のちにより詳細に述べるように、
図7の残差デコーダ728として示される)
図6の例示的なエンコーダ620に埋め込まれたデコード・ユニット633を使って、エンコードされたビデオ情報に基づいてデコードされた、デコードされた参照ピクチャーである。
【0109】
イントラ・エンコーダ(722)は、現在ブロック(たとえば、処理ブロック)のサンプルを受領し、該ブロックを、同じピクチャー内ですでに符号化されているブロックと比較し、変換後に量子化された係数を生成し、場合によっては、イントラ予測情報(たとえば、一つまたは複数のイントラ・エンコード技法によるイントラ予測方向情報)も生成するように構成される。イントラ・エンコーダ(722)はまた、該イントラ予測情報および同じピクチャー内の参照ブロックに基づいて、イントラ予測結果(たとえば、予測されたブロック)を計算する。
【0110】
全般コントローラ(721)は、全般制御データを決定し、全般制御データに基づいてビデオ・エンコーダ(703)の他のコンポーネントを制御するように構成されてもよい。一例では、全般コントローラ(721)は、ブロックの予測モードを決定し、その予測モードに基づいて制御信号をスイッチ(726)に提供する。たとえば、予測モードがイントラモードである場合、全般コントローラ(721)は、残差計算器(723)による使用のためにイントラモードの結果を選択するようスイッチ(726)を制御し、イントラ予測情報を選択し、イントラ予測情報をビットストリームに含めるようエントロピー・エンコーダ(725)を制御する;ブロックについての予測モードがインターモードである場合、全般コントローラ(721)は、残差計算器(723)による使用のためにインター予測の結果を選択するようスイッチ(726)を制御し、インター予測情報を選択し、インター予測情報をビットストリームに含めるようエントロピー・エンコーダ(725)を制御する。
【0111】
残差計算器(723)は、受領されたブロックと、イントラ・エンコーダ(722)またはインター・エンコーダ(730)から選択された、そのブロックについての予測結果との差(残差データ)を計算するように構成されてもよい。残差エンコーダ(724)は、残差データをエンコードして変換係数を生成するように構成されてもよい。たとえば、残差エンコーダ(724)は、残差データを空間領域から周波数領域に変換し、変換係数を生成するように構成されてもよい。次いで、変換係数は、量子化処理にかけられ、量子化された変換係数を得る。さまざまな例示的実施形態において、ビデオ・エンコーダ(703)は、残差デコーダ(728)をも含む。残差デコーダ(728)は、逆変換を実行して、デコードされた残差データを生成するように構成される。デコードされた残差データは、イントラ・エンコーダ(722)およびインター・エンコーダ(730)によって好適に使用されることができる。たとえば、インター・エンコーダ(730)は、デコードされた残差データおよびインター予測情報に基づいて、デコードされたブロックを生成することができ、イントラ・エンコーダ(722)は、デコードされた残差データおよびイントラ予測情報に基づいて、デコードされたブロックを生成することができる。デコードされたブロックは、デコードされたピクチャーを生成するために好適に処理され、デコードされたピクチャーは、メモリ回路(図示せず)内でバッファリングされ、いくつかの例では参照ピクチャーとして使用されることができる。
【0112】
エントロピー・エンコーダ(725)は、エンコードされたブロックを含むようにビットストリームをフォーマットし、エントロピー符号化を実行するように構成されてもよい。エントロピー・エンコーダ(725)は、ビットストリームにさまざまな情報を含めるように構成される。たとえば、エントロピー・エンコーダ(725)は、全般制御データ、選択された予測情報(たとえば、イントラ予測情報またはインター予測情報)、残差情報、および他の好適な情報をビットストリーム内に含めるように構成されてもよい。インターモードまたは双予測モードのいずれかのマージ・サブモードにおいてブロックを符号化する場合は、残差情報は存在しないことがある。
【0113】
図8は、本開示の別の実施形態による例示的ビデオ・デコーダ(810)の図を示す。ビデオ・デコーダ(810)は、符号化されたビデオ・シーケンスの一部である符号化されたピクチャーを受領し、符号化されたピクチャーをデコードして、再構成されたピクチャーを生成するように構成される。一例では、ビデオ・デコーダ(810)は、
図4の例におけるビデオ・デコーダ(410)の代わりに使用されてもよい。
【0114】
図8の例では、ビデオ・デコーダ(810)は、エントロピー・デコーダ(871)、インター・デコーダ(880)、残差デコーダ(873)、再構成モジュール(874)、およびイントラ・デコーダ(872)が
図8の例示的配置に示されるように一緒に結合されたものを含む。
【0115】
エントロピー・デコーダ(871)は、符号化されたピクチャーから、その符号化されたピクチャーが構成されるシンタックス要素を表わすある種のシンボルを再構成するように構成されることができる。そのようなシンボルは、たとえば、ブロックが符号化されるモード(たとえば、イントラモード、インターモード、双予測モード、マージ・サブモードまたは別のサブモード)、イントラ・デコーダ(872)またはインター・デコーダ(880)によって予測のために使用されるある種のサンプルまたはメタデータを同定することができる予測情報(たとえば、イントラ予測情報またはインター予測情報など)、たとえば量子化された変換係数の形の残差情報などを含むことができる。一例では、予測モードがインターまたは双予測モードである場合、インター予測情報がインター・デコーダ(880)に提供され;予測タイプがイントラ予測タイプである場合には、イントラ予測情報がイントラ・デコーダ(872)に提供される。残差情報は、逆量子化を受けることができ、残差デコーダ(873)に提供される。
【0116】
インター・デコーダ(880)は、インター予測情報を受領し、該インター予測情報に基づいてインター予測結果を生成するように構成されてもよい。
【0117】
イントラ・デコーダ(872)は、イントラ予測情報を受領し、該イントラ予測情報に基づいて予測結果を生成するように構成されてもよい。
【0118】
残差デコーダ(873)は、逆量子化を実行して量子化解除された変換係数を抽出し、量子化解除された変換係数を処理して、残差を周波数領域から空間領域に変換するように構成されてもよい。残差デコーダ(873)はまた、ある種の制御情報(量子化器パラメータ(QP)を含む)をも利用することがあり、その情報は、エントロピー・デコーダ(871)によって提供されてもよい(これは、低データ・ボリュームの制御情報のみであるため、データ経路は描かれていない)。
【0119】
再構成モジュール(874)は、空間領域において、残差デコーダ(873)によって出力される残差と、予測結果(場合に応じてイントラまたはインター予測モジュールによって出力される)とを組み合わせて、再構成されたブロックを形成するように構成されてもよく、該再構成されたブロックは、再構成されたビデオの一部として再構成されたピクチャーの一部をなす。視覚的品質を改善するためにブロッキング解除動作などの他の好適な動作が実行されてもよいことを注意しておく。
【0120】
なお、ビデオ・エンコーダ(403)、(603)、(703)、およびビデオ・デコーダ(410)、(510)、(810)は、任意の好適な技法を用いて実装できる。いくつかの例示的実施形態では、ビデオ・エンコーダ(403)、(603)、(703)およびビデオ・デコーダ(410)、(510)、(810)は、一つまたは複数の集積回路を使用して実装できる。別の実施形態では、ビデオ・エンコーダ(403)、(603)、(603)、およびビデオ・デコーダ(410)、(510)、(810)は、ソフトウェア命令を実行する一つまたは複数のプロセッサを使用して実装できる。
【0121】
いくつかの例示的実装では、符号化アーチファクトを低減し、復号されたピクチャーの品質を改善するために、ループ・フィルタがエンコーダおよびデコーダに含まれてもよい。たとえば、ループ・フィルタ555は、
図5のデコーダ530の一部として含まれてもよい。別の例では、ループ・フィルタは、
図6のエンコーダ620内の埋め込みデコーダ・ユニット633の一部であってもよい。これらのフィルタは、デコーダまたはエンコーダ内のビデオブロックのデコード・ループに含まれるため、ループ・フィルタと呼ばれる。各ループ・フィルタは、一つまたは複数のフィルタリング・パラメータに関連していてもよい。そのようなフィルタリング・パラメータは、あらかじめ定義されてもよく、あるいはエンコード・プロセスの間にエンコーダによって導出されてもよい。これらのフィルタリング・パラメータ(エンコーダによって導出される場合)またはそれらのインデックス(あらかじめ定義される場合)は、エンコードされた形で最終ビットストリームに含まれてもよい。すると、デコーダは、ビットストリームからこれらのフィルタリング・パラメータをパースし、デコード中にパースされたフィルタリング・パラメータに基づいてループ・フィルタリングを実行することができる。
【0122】
さまざまなループ・フィルタが、符号化アーチファクトを低減し、デコードされたビデオ品質を種々の側面において改善するために使用されうる。そのようなループ・フィルタは、一つまたは複数のブロッキング解除フィルタ、適応ループ・フィルタ(ALF)、成分横断適応ループ・フィルタ(CC-ALF)、制約された方向性向上フィルタ(CDEF)、サンプル適応オフセット(SAO)フィルタ、成分横断サンプル・オフセット(CCSO)フィルタ、および局所サンプル・オフセット(LSO)フィルタを含みうるが、これらに限定されない。これらのフィルタは、相互依存性があってもなくてもよい。それらは、それらの相互依存性(もしあれば)と互換性のある任意の適切な順序で、デコーダまたはエンコーダのデコード・ループ内に配置されてもよい。これらのさまざまなループ・フィルタは、以下の開示においてより詳細に説明される。
【0123】
ブロックベースのフィルタ適応をもつ適応ループフィルタ(ALF)が、アーチファクトを低減するためにエンコーダ/デコーダによって適用されることができる。ALFは、フィルタリング係数/パラメータまたはそれらのインデックスがビットストリームにおいて信号伝達されるという意味で適応的であり、再構成されたピクチャーの画像内容および歪みに基づいて設計されることができる。ALFは、エンコード・プロセスによって導入される歪みを低減し、再構成された画像品質を改善するために適用されうる。
【0124】
ルーマ成分については、複数のフィルタ(たとえば、25個のフィルタ)のうちの1つが、たとえば局所的勾配の方向および活性に基づいて、ルーマ・ブロック(たとえば、4×4個のルーマ・ブロック)のために選択されてもよい。これらのフィルタのフィルタ係数は、エンコード・プロセス中にエンコーダによって導出され、ビットストリームにおいてデコーダに信号伝達されてもよい。
【0125】
ALFは任意の適切な形状およびサイズを有することができる。
図9の例を参照すると、ALF(910)~(911)は、ALF(910)についての5×5ダイヤモンド形状、ALF(911)についての7×7ダイヤモンド形状のようなダイヤモンド形状を有してもよい。ALF(910)では、13個の要素(920)~(932)が、フィルタリング・プロセスにおいて使用でき、ダイヤモンド形状をなす。13個の要素(920)~(932)について、7つの値(たとえば、C0~C6)が使用でき、図示した例示的な仕方で配置される。ALF(911)では、25個の要素(940)~(964)がフィルタリング・プロセスにおいて使用でき、ダイヤモンド形状を形成する。25個の要素(940)~(964)について、13の値(たとえば、C0~C12)が、図示した例示的な仕方で使用できる。
【0126】
図9を参照すると、いくつかの例において、2つのダイヤモンド形状(910)~(911)のうちの一方のALFフィルタが、ルーマまたはクロマ・ブロックを処理するために選択されてもよい。たとえば、5×5ダイヤモンド形状のフィルタ(910)はクロマ成分(クロマブロック、クロマCBなど)について、7×7ダイヤモンド形状のフィルタ(911)はルーマ成分(ルーマブロック、ルーマCBなど)について適用できる。ALFでは、他の適切な形状およびサイズが使用できる。たとえば、9×9のダイヤモンド形状のフィルタが使用できる。
【0127】
それらの値(たとえば、(910)のC0~C6または(920)のC0~C12)によって示される位置におけるフィルタ係数は、ゼロでない場合がある。さらに、ALFがクリッピング機能を含む場合、それらの位置でのクリッピング値はゼロでない可能性がある。ルーマまたはクロマ・ブロックにおけるフィルタ値の上限を制限するために、クリッピング関数が使用されてもよい。
【0128】
いくつかの実装では、ルーマ成分の特定のブロックに適用される特定のALFは、ルーマ・ブロックの分類に基づいていてもよい。4×4のブロック(またはルーマ・ブロック、ルーマCB)は、ルーマ成分のブロック分類については、たとえば25個の異なるALF(たとえば異なるフィルタ係数をもつ7×7のALFのうちの25個)に対応する、複数(たとえば、25)のクラスのうちの1つとして範疇分けまたは分類できる。分類インデックスCは、方向性パラメータと、活性値Aの量子化された値とに基づいて、式(1)を用いて導出できる。
【数1】
【0129】
方向性パラメータDおよび量子化された値
【数2】
〔^Aと記すこともある〕を計算するために、垂直方向、水平方向、および2つの対角方向(たとえば、d1およびd2)のそれぞれのグラデーションg
v、g
h、g
d1、およびg
d2が、1-Dラプラシアンを使用して以下のように計算できる。
【数3】
ここで、インデックスiおよびjは4×4ブロック内の左上サンプルの座標を指し、R(k,l)は座標(k,l)における再構成されたサンプルを示す。方向(たとえば、d1およびd2)は、2つの対角方向を指す。
【0130】
上述のブロック分類の複雑さを低減するために、サブサンプリングされた1-Dラプラシアン計算を適用されてもよい。
図10A~10Dは、垂直(
図10A)、水平(
図10B)、および2つの対角方向d1(
図10C)およびd2(
図10D)の勾配g
v、g
h、g
d1およびg
d2をそれぞれ計算するために使用されるサブサンプリングされる位置の例を示す。
図10Aにおいて、ラベル「V」は、垂直勾配g
vを計算するためのサブサンプリング位置を示す。
図10Bにおいて、ラベル「H」は、水平勾配g
hを計算するためのサブサンプリング位置を示す。
図10Cにおいて、ラベル「D1」は、d1対角勾配g
d1を計算するためのサブサンプリング位置を示す。
図10Dにおいて、ラベル「D2」は、d2対角勾配g
d2を計算するためのサブサンプリング位置を示す。
図10Aおよび10Bは、同じサブサンプリングされた位置が異なる方向の勾配計算のために使用できることを示している。いくつかの他の実装では、すべての方向のために異なるサブサンプリング方式が使用されることができる。さらに他のいくつかの実装では、異なる方向のために異なるサブサンプリング方式が使用されることができる。
【0131】
水平方向と垂直方向の勾配g
vとg
hのうちの最大値g
h,v
maxおよび最小値g
h,v
minは次のように設定できる:
【数4】
2つの対角方向の勾配g
d1とg
d2のうちの最大値g
d1,d2
maxおよび最小値g
d1,d2
minは次のように設定できる:
【数5】
方向性パラメータDは、上記の値および2つの閾値t
1およびt
2に基づき、以下のように導出できる。
【数6】
【0132】
換言すれば、方向性パラメータDは、いくつかの離散的レベルによって表され、
図10Eに示されるように、水平方向と垂直方向の間および2つの対角方向の間のルーマ・ブロックについての勾配値の広がり〔スプレッド〕に基づいて決定される。
【0133】
活性値Aは次のように計算できる:
【数7】
このように、活性値Aは、水平方向および垂直方向の1-Dラプラシアンの合成指標を表す。ルーマ・ブロックについての活性化値Aはさらに、たとえば0~4の範囲(両端含む)に量子化されることができ、量子化された値は
【数8】
と記される。
【0134】
ルーマ成分については、上記のように計算された分類インデックスCはその後、ダイヤモンド形状のAFLフィルタの複数のクラス(たとえば25個のクラス)のうちの一つを選択するために使用されうる。いくつかの実装では、ピクチャー内のクロマ成分についてはブロック分類が適用されなくてもよいため、各クロマ成分についてALF係数の単一の集合を適用できる。そのような実装では、クロマ成分について利用可能な複数のALF係数集合がありうるものの、ALF係数の決定はクロマ・ブロックのいかなる分類にも依存しなくてもよい。
【0135】
幾何学的変換が、フィルタ係数および対応するフィルタ・クリッピング値(クリッピング値とも称される)に適用されることができる。ブロック(たとえば、4×4ルーマ・ブロック)をフィルタリングする前に、たとえばそのブロックについて計算された勾配値(たとえば、gv、gh、gd1、および/またはgd2)に依存して、回転または対角および垂直反転などの幾何学的変換を、フィルタ係数f(k,l)および対応するフィルタ・クリッピング値c(k,l)に適用できる。フィルタ係数f(k,l)および対応するフィルタ・クリッピング値c(k,l)に適用される幾何学的変換は、フィルタによってサポートされる領域内のサンプルに幾何学的変換を適用することと等価でありうる。幾何学的変換は、それぞれの方向性を整列させることにより、ALFが適用される異なるブロックをより類似させることができる。
【0136】
対角反転、垂直反転、および回転を含む3つの幾何学的変換オプションが、それぞれ式(9)~(11)に記載されるように実行できる。
【数9】
ここで、KはALFまたはフィルタのサイズを表し、0≦k,l≦K-1は、係数の座標である。たとえば、位置(0,0)は左上隅にあり、位置(K-1,K-1)はフィルタfまたはクリッピング値行列(またはクリッピング行列)cの右下隅にある。それらの変換は、そのブロックについて計算された勾配値に依存して、フィルタ係数f(k,l)およびクリッピング値c(k,l)に適用できる。変換と4つの勾配との関係の例を表1にまとめてある。
【表1】
【0137】
いくつかの実施形態では、エンコーダによって導出されたALFフィルタ・パラメータが、ピクチャーについて適応パラメータセット(APS)において信号伝達されてもよい。APSでは、ルーマ・フィルタ係数およびクリッピング値インデックスの一つまたは複数の集合(最大で25個の集合)が信号伝達されることができる。それらはAPSにおいてインデックス付けされてもよい。一例では、該一つまたは複数の集合のうちの集合はルーマ・フィルタ係数と一つまたは複数のクリッピング値インデックスとを含むことができる。クロマ・フィルタ係数およびクリッピング値インデックスの一つまたは複数の集合(最大で8個の集合)がエンコーダによって導出されて、信号伝達されてもよい。信号伝達〔シグナリング〕オーバーヘッドを減らすために、ルーマ成分についての異なる分類(たとえば、異なる分類インデックスをもつ)のフィルタ係数をマージすることができる。スライス・ヘッダにおいて、現在のスライスについて使用されているAPSのインデックスが信号伝達されることができる。別の例では、ALFの信号伝達はCTUベースであってもよい。
【0138】
ある実施形態では、クリッピング値インデックス(クリッピング・インデックスとも称される)がAPSからデコードされることができる。クリッピング値インデックスは、たとえば、クリッピング値インデックスと対応するクリッピング値との間の関係に基づいて、対応するクリッピング値を決定するために使用できる。この関係は、あらかじめ定義され、デコーダに記憶されることができる。一例では、この関係は、ルーマ成分についてのクリッピング値インデックスと対応するクリッピング値のテーブル(たとえばルーマCBのために使用)、クロマ成分についてのクリッピング値インデックスと対応するクリッピング値のテーブル(たとえばクロマCBのために使用)などの一つまたは複数のテーブルによって記述される。クリッピング値は、ビット深さBに依存することができる。ビット深さBは、内部ビット深さ、フィルタリングされるCB内の再構成されたサンプルのビット深さ等を指してもよい。いくつかの例において、(たとえば、ルーマのためおよび/またはクロマのための)クリッピング値のテーブルは、式(12)を使用して得られてもよい。
【数10】
ここで、AlfClipはクリッピング値、Bはビット深さ(たとえばbitDepth)、N(たとえばN=4)は許容されるクリッピング値の数、αはあらかじめ定義された定数値である。一例では、αは2.35に等しい。nはクリッピング値インデックス(クリッピング・インデックスまたはclipIdxとも称される)である。表2は、N=4での式(12)を用いて得られる表の例を示す。クリッピング・インデックスnは表2では0、1、2、3であることができる(N-1まで)。表2は、ルーマ・ブロックまたはクロマ・ブロックについて使用されることができる。
【表2】
【0139】
現在のスライスのために使用できるルーマ・フィルタ集合を指定するために、現在のスライスについてのスライス・ヘッダにおいて、一つまたは複数のAPSインデックス(最大7つのAPSインデックス)が信号伝達されることができる。フィルタリング・プロセスは、ピクチャー・レベル、スライス・レベル、CTBレベルおよび/またはその他などの一つまたは複数の適切なレベルで制御できる。ある例示的実施形態では、フィルタリング・プロセスは、CTBレベルでさらに制御されることができる。ALFがルーマCTBに適用されるかどうかを示すフラグが信号伝達される。ルーマCTBは、複数の固定したフィルタ集合(たとえば、16個の固定したフィルタ集合)と、APSにおいて信号伝達されるフィルタ集合(たとえば上述したようなエンコーダによって導出される25個までのフィルタ;信号伝達されるフィルタ集合とも称される)の中からフィルタ集合を選択できる。フィルタ集合インデックスがルーマCTBについて信号伝達されて、適用されるフィルタ集合(たとえば、複数の固定したフィルタ集合および信号伝達されたフィルタ集合のうちのフィルタ集合)を示す。複数の固定したフィルタ集合は、エンコーダおよびデコーダにおいてあらかじめ定義され、ハードコーディングされ、あらかじめ定義されたフィルタ集合と呼ぶことができる。このように、前記あらかじめ定義されたフィルタ係数は、信号伝達される必要はない。
【0140】
クロマ成分については、現在のスライスについて使用されるクロマ・フィルタ集合を示すために、APSインデックスがスライス・ヘッダにおいて信号伝達されることができる。CTBレベルでは、APSに複数のクロマ・フィルタ集合がある場合、各クロマCTBについてフィルタ集合インデックスが信号伝達されることができる。
【0141】
フィルタ係数は、128に等しいノルムで量子化できる。乗算の複雑さを低減するために、非中心位置の係数値が-27~27-1(両端含む)の範囲内であるようにビットストリーム適合性を適用することができる。一例では、中心位置の係数はビットストリームにおいて信号伝達されず、128に等しいと考えることができる。
【0142】
いくつかの実施形態では、クリッピング・インデックスおよびクリッピング値の構文および意味内容は、以下のように定義される:
alf_luma_clip_idx[sfIdx][j]は、sfIdxによって示される信号伝達されるルーマ・フィルタのj番目の係数を乗算する前に、使用するクリッピング値のクリッピング・インデックスを指定するために使用できる。ビットストリーム適合性の要件は、sfIdx=0ないしalf_luma_num_filters_signalled_minus1、j=0ないし11でのalf_luma_clip_idx[sfIdx][j]の値がたとえば0~3の範囲であることを含むことができる。
【0143】
filtIdx=0ないしNumAlfFilters-1、j=0ないし11での要素AlfClipL[adaptation_parameter_set_id][filtIdx][j]のルーマ・フィルタ・クリッピング値AlfClipL[adaptation_parameter_set_id]は、BitDepthYに等しく設定されたbitDepthおよびalf_luma_clip_idx[alf_luma_coeff_delta_idx][filtIdx]][j]に等しく設定されたclipIdxに依存して、表2に指定されているように導出できる。
【0144】
Alf_chroma_clip_idx[altIdx][j]は、代替クロマ・フィルタのj番目の係数にインデックスaltIdxを乗算する前に、使用するクリッピング値のクリッピング・インデックスを指定するために使用できる。ビットストリーム適合性の要件は、altIdx=0ないしalf_chroma_num_alt_filters_minus1、j=0ないし5でのalf_chroma_clip_idx[altIdx][j]の値が0~3の範囲(両端含む)にあることを含むことができる。
【0145】
altIdx=0ないしalf_chroma_num_alt_filters_minus1、j=0ないし5での要素AlfClipC[adaptation_parameter_set_id][altIdx][j]をもつクロマ・フィルタ・クリッピング値AlfClipC[adaptation_parameter_set_id][altIdx]は、BitDepthCに等しく設定されたbitDepthおよびalf_chroma_clip_idx[altIdx][j]に等しく設定されたclipIdxに依存して、表2に指定されるように導出できる。
【0146】
ある実施形態では、フィルタリング・プロセスは、以下のように記述できる。デコーダ側では、CTBについてALFが有効にされると、該CTBのCU(またはCB)内のサンプルR(i,j)がフィルタリングされることができ、その結果、式(13)を用いて以下に示されるように、フィルタリングされたサンプル値R'(i,j)が得られる。一例では、CU内の各サンプルはフィルタリングされる。
【数11】
ここで、f(k,l)はデコードされたフィルタ係数であり、K(x,y)はクリッピング関数であり、c(k,l)はデコードされたクリッピング・パラメータ(またはクリッピング値)を表す。変数kとlは、-L/2とL/2の間で変わりうる。ここで、Lはフィルタ長を表す(たとえば、ルーマおよびクロマ成分についての
図9の例示的なダイヤモンド・フィルタ910および911について、それぞれL=5および7)。クリッピング関数K(x,y)=min(y,max(-y,x))は、クリッピング関数Clip3(-y,y,x)に対応する。クリッピング関数K(x,y)を組み込むことにより、ループ・フィルタリング方法(たとえば、ALF)は非線形プロセスとなり、非線形ALFと称することができる。
【0147】
選択されたクリッピング値は、以下のように"alf_data"構文要素で符号化されることができる:適切な符号化方式(たとえば、ゴロム符号化方式)を使用して、表3に示されるような選択されたクリッピング値に対応するクリッピング・インデックスをエンコードすることができる。符号化方式は、フィルタ集合インデックスをエンコードするために使用されるものと同じ符号化方式でありうる。
【0148】
ある実施形態では、ALFのラインバッファ要件を低減するために、仮想境界フィルタリング・プロセスを使用することができる。よって、CTU境界(たとえば、水平CTU境界)付近のサンプルについては、修正されたブロック分類およびフィルタリングが使用できる。仮想境界(1130)は、
図11のAに示されるように、水平CTU境界(1120)を「N
samples」サンプルだけシフトすることによって定義できる。ここで、N
samplesは正の整数でありうる。一例では、N
samplesはルーマ成分については4に等しく、N
samplesはクロマ成分については2に等しい。
【0149】
図11Aを参照すると、ルーマ成分について修正ブロック分類を適用することができる。一例では、仮想境界(1130)の上の4×4ブロック(1110)の1Dラプラシアン勾配計算については、仮想境界(1130)上のサンプルのみが使用される。同様に、
図11Bを参照すると、CTU境界(1121)からシフトされた仮想境界(1131)の下の4×4ブロック(1111)の1Dラプラシアン勾配計算については、仮想境界(1131)の下のサンプルのみが使用される。1Dラプラシアン勾配計算で使用されるサンプル数の減少を考慮することによって、活性値Aの量子化をしかるべくスケーリングすることができる。
【0150】
フィルタリング処理については、ルーマ成分とクロマ成分の両方に仮想境界での対称パディング操作を使用することができる。
図12のA~Fは、仮想境界におけるルーマ成分についてのそのような修正されたALFフィルタリングの例を示している。フィルタリングされるサンプルが仮想境界の下に位置する場合、仮想境界の上に位置する近傍サンプルがパディングされることができる。フィルタリングされるサンプルが仮想境界の上に位置する場合、仮想境界の下に位置する近傍サンプルがパディングされることができる。
図12Aを参照すると、近傍サンプルC0は、仮想境界(1210)の下に位置するサンプルC2でパディングされることができる。
図12Bを参照すると、近傍サンプルC0は、仮想境界(1220)の上に位置するサンプルC2でパディングされることができる。
図12Cを参照すると、近傍サンプルC1~C3は、それぞれ、仮想境界(1230)の下に位置するサンプルC5~C7でパディングされることができる。サンプルC0は、サンプルC6でパディングされることができる。
図12Dを参照すると、近傍サンプルC1~C3は、それぞれ、仮想境界(1240)の上に位置するサンプルC5~C7でパディングされることができる。サンプルC0は、サンプルC6でパディングされることができる。
図12Eを参照すると、近傍サンプルC4~C8は、それぞれ、仮想境界(1250)の下に位置するサンプルC10、C11、C12、C11、およびC10でパディングされることができる。サンプルC1~C3は、サンプルC11、C12、C11でパディングされることができる。サンプルC0は、サンプルC12でパディングされることができる。
図12Fを参照すると、近傍サンプルC4~C8は、それぞれ、仮想境界(1260)の上に位置するサンプルC10、C11、C12、C11、およびC10でパディングされることができる。サンプルC1~C3は、サンプルC11、C12、C11でパディングされることができる。サンプルC0は、サンプルC12でパディングされることができる。
【0151】
いくつかの例では、サンプルおよび近傍サンプルが仮想境界の左側(または右側)および右側(または左側)に位置する場合、上記の説明を適切に適応させることができる。
【0152】
最大符号化単位(LCU)に整列されたピクチャー四分木分割を使用できる。符号化効率を高めるために、符号化単位同期的なピクチャー四分木ベースの適応ループ・フィルタをビデオ符号化において使用することができる。たとえば、ルーマ・ピクチャーを複数のマルチレベルの四分木パーティションに分割し、各パーティション境界を最大符号化単位(LCU)の境界に整列させる。各パーティションはフィルタリング・プロセスをもち、よって、フィルタ単位またはフィルタリング単位(FU)と呼ばれることができる。
【0153】
例示的な2パスのエンコード・フローが次のように記載される。最初のパスで、四分木分割パターンと各FUの最良のフィルタ(または最適フィルタ)を決定することができる。フィルタリング歪みは、決定プロセスにおける高速フィルタリング歪み推定(fast filtering distortion estimation、FFDE)により推定できる。決定された四分木分割パターンおよびFU(たとえばすべてのFU)の選択されたフィルタに従い、再構成されたピクチャーをフィルタリングすることができる。2回目のパスでは、CU同期的なALFオン/オフ制御が実行できる。ALFのオン/オフ結果に従って、最初のフィルタリングされたピクチャーが、再構成されたピクチャーによって部分的に回復される。
【0154】
レート‐歪み基準を使用することによって、ピクチャーをマルチレベル四分木パーティションに分割するために、トップダウン分割戦略が採用できる。各パーティションは、FUと呼ばれることができる。分割プロセスは、
図13に示されるように、四分木パーティションをLCU境界に整列させることができる。
図13は、本開示のある実施形態による、LCU整列されたピクチャー四分木分割の例を示している。一例では、FUのエンコード順序はzスキャン順に従う。たとえば、
図13を参照するに、ピクチャーは10個のFUに分割され(たとえば、FU0~FU9;分割深さは2であり、FU
0、FU
1、FU
9が第1レベルのFUであり、FU
s、FU
7、FU
8が第2レベルのFUであり、FU
3~FU
6が第3レベルのFUである)、エンコード順はF
0からFU
9、たとえば、FU
0、FU
1、FU
2、FU
3、FU
4、FU
5、FU
6、FU
7、FU
8、およびFU
9である。
【0155】
ピクチャー四分木分割パターンを示すために、四分木分割を表す「1」および四分木分割なしを表す「0」の分割フラグがzスキャン順にエンコードされ、送信される。
図14は、本開示のある実施形態による、
図13に対応する四分木分割パターンを示している。
図14の例に示されるように、四分木分割フラグはzスキャン順にエンコードされる。
【0156】
各FUのフィルタは、レート‐歪み基準に基づいて、2つのフィルタ集合から選択されることができる。第1の集合は、現在のFUのために新たに導出された1/2対称正方形および菱形フィルタを有することができる。第2の集合は、時間遅延されたフィルタ・バッファに由来することができる。時間遅延フィルタ・バッファは、以前のピクチャーにおけるFUについて以前に導出されたフィルタを記憶することができる。これら2つのフィルタ集合の最小レート‐歪みコストをもつフィルタが、現在のFUについて選択されることができる。同様に、現在のFUが最小のFUではなく、さらに4つの子FUに分割されることができる場合、4つの子FUのレート‐歪みコストが計算されることができる。分割ケースと非分割ケースのレート‐歪みコストを再帰的に比較することにより、ピクチャー四分木分割パターン(換言すれば、現在のFUの四分木分割が停止すべきかどうか)を決定することができる。
【0157】
いくつかの例では、最大四分木分割レベルまたは深さが、あらかじめ定義された数に制限されてもよい。たとえば、最大四分木分割レベルまたは深さは2であってもよく、よってFUの最大数は16(または、4の、深さの最大数乗)であってもよい。四分木分割決定の間に、最低四分木レベルにある16個のFU(最小FU)のウィーナー係数を導出するための相関値を再利用することができる。残りのFUは、最低四分木レベルにある16個のFUの相関から、残りのFUのウィーナー・フィルタを導出することができる。したがって、一例では、すべてのFUのフィルタ係数を導出するために、1つのフレーム・バッファ・アクセスがあるだけである。
【0158】
四分木分割パターンが決定された後、フィルタリング歪みをさらに低減するために、CU同期的なALFオン/オフ制御を実行することができる。フィルタリング歪みと非フィルタリング歪みを比較することにより、リーフCUは対応するローカル領域において明示的にALFのオン/オフを切り換えることができる。ALFオン/オフ結果に従ってフィルタ係数を再設計することによって、符号化効率はさらに改善されうる。一例では、再設計プロセスは追加的なフレーム・バッファ・アクセスを必要とする。よって、符号化単位同期的なピクチャー四分木ベースの適応ループ・フィルタ(coding unit synchronous picture quadtree-based adaptive loop filter、CS-PQALF)エンコーダ設計のようないくつかの例では、フレーム・バッファ・アクセスの数を最小にするために、CU同期的なALFオン/オフ決定後には再設計プロセスは必要とされない。
【0159】
成分横断フィルタリング・プロセスは、成分横断適応ループ・フィルタ(cross-component adaptive loop filter、CC-ALF)のような成分横断フィルタを適用することができる。成分横断フィルタは、ルーマ成分(たとえばルーマCB)のルーマ・サンプル値を使用して、クロマ成分(たとえばルーマCBに対応するクロマCB)を洗練することができる。一例では、ルーマCBとクロマCBはCUに含まれる。
【0160】
図15は、本開示のある例示的実施形態による、クロマ成分を生成するために使用される成分横断フィルタ(たとえば、CC-ALF)を示す。たとえば、
図15は、第1のクロマ成分(たとえば、第1のクロマCB)、第2のクロマ成分(たとえば、第2のクロマCB)、およびルーマ成分(たとえば、ルーマCB)のフィルタリング・プロセスを示す。ルーマ成分は、サンプル適応オフセット(SAO)フィルタ(1510)によってフィルタリングされ、SAOフィルタリングされたルーマ成分(1541)を生成することができる。SAOフィルタリングされたルーマ成分(1541)は、ALFルーマ・フィルタ(1516)によってさらにフィルタリングされ、フィルタリングされたルーマCB(1561)になる(たとえば、「Y」)。
【0161】
第1のクロマ成分は、SAOフィルタ(1512)およびALFクロマ・フィルタ(1518)によってフィルタリングされ、第1の中間成分(1552)を生成することができる。さらに、SAOフィルタリングされたルーマ成分(1541)は、第1のクロマ成分について、成分横断フィルタ(たとえば、CC-ALF)(1521)によってフィルタリングされて、第2の中間成分(1542)を生成することができる。その後、第2の中間成分(1542)および第1の中間成分(1552)の少なくとも一方に基づいて、フィルタリングされた第1のクロマ成分(1562)(たとえば、「Cb」)が生成されることができる。一例では、フィルタリングされた第1のクロマ成分(1562)(たとえば、「Cb」)は、第2の中間成分(1542)および第1の中間成分(1552)を加算器(1522)を用いて組み合わせることによって生成されることができる。よって、第1のクロマ成分についての例示的な成分横断適応ループ・フィルタリング・プロセスは、CC-ALF(1521)によって実行されるステップと、たとえば加算器(1522)によって実行されるステップとを含むことができる。
【0162】
上記の説明は、第2のクロマ成分に適応されることができる。第2のクロマ成分は、SAOフィルタ(1514)およびALFクロマ・フィルタ(1518)によってフィルタリングされ、第3の中間成分(1553)を生成することができる。さらに、SAOフィルタリングされたルーマ成分(1541)は、第2のクロマ成分についての成分横断フィルタ(たとえば、CC-ALF)(1531)によってフィルタリングされて、第4の中間成分(1543)を生成することができる。その後、第4の中間成分(1543)および第3の中間成分(1553)の少なくとも一方に基づいて、フィルタリングされた第2のクロマ成分(1563)(たとえば、「Cr」)が生成されることができる。一例において、フィルタリングされた第2のクロマ成分(1563)(たとえば、「Cr」)は、第4の中間成分(1543)および第3の中間成分(1553)を加算器(1532)を用いて組み合わせることによって生成されることができる。一例では、第2のクロマ成分についての成分横断適応ループ・フィルタリング・プロセスは、このように、CC-ALF(1531)によって実行されるステップと、たとえば加算器(1532)によって実行されるステップとを含むことができる。
【0163】
成分横断フィルタ(たとえば、CC-ALF(1521)、CC-ALF(1531))は、各クロマ成分(たとえば、第1のクロマ成分、第2のクロマ成分)を洗練するために、任意の適切なフィルタ形状を有する線形フィルタをルーマ成分(またはルーマ・チャネル)に適用することによって動作することができる。CC-ALFは、ある色成分における符号化歪みを別の色成分からのサンプルに基づいて低減するために、色成分間の相関を利用する。
【0164】
図16は、本開示のある実施形態による、CC-ALFフィルタ(1600)の例を示す。フィルタ(1600)は、ゼロでないフィルタ係数およびゼロのフィルタ係数を含んでいてもよい。フィルタ(1600)は、フィルタ係数(1610)によって形成されたダイヤモンド形状(1620)(黒で塗りつぶされた円で示される)を有する。一例では、フィルタ(1600)におけるゼロでないフィルタ係数はフィルタ係数(1610)に含まれ、フィルタ係数(1610)に含まれないフィルタ係数はゼロである。よって、フィルタ(1600)におけるゼロでないフィルタ係数は、ダイヤモンド形状(1620)に含まれ、ダイヤモンド形状(1620)に含まれないフィルタ係数はゼロである。一例では、フィルタ(1600)のフィルタ係数の数は、フィルタ係数(1610)の数に等しく、これは、
図14に示される実施形態では18である。
【0165】
CC-ALFは、任意の適切なフィルタ係数(CC-ALFフィルタ係数とも呼ばれる)を含むことができる。
図15に戻って参照すると、CC-ALF(1521)およびCC-ALF(1531)は、
図16に示されるダイヤモンド形状(1620)などと同じフィルタ形状、および同じ数のフィルタ係数を有することができる。一例では、CC-ALF(1521)におけるフィルタ係数の値は、CC-ALF(1531)のフィルタ係数の値とは異なる。
【0166】
一般に、CC-ALF内のフィルタ係数(たとえば、エンコーダによって導出される、ゼロでないフィルタ係数)は、たとえば、APS内で伝送されうる。一例では、フィルタ係数は、ある因子(たとえば、210)によってスケーリングされることができ、固定小数点表現のために丸められることができる。CC-ALFの適用は、可変ブロック・サイズで制御されることができ、サンプルの各ブロックについて受領されるコンテキスト符号化されたフラグ(たとえば、CC-ALFイネーブル・フラグ)によって信号伝達されることができる。CC-ALFイネーブル・フラグのようなコンテキスト符号化されたフラグは、ブロック・レベルのような任意の適切なレベルで信号伝達されることができる。ブロック・サイズは、CC-ALFイネーブル・フラグとともに、各クロマ成分についてスライス・レベルで受領されることができる。いくつかの例では、(クロマ・サンプル単位での)ブロック・サイズ16×16、32×32、64×64をサポートすることができる。
【0167】
一例では、CC-ALFの構文変更は下記の表3に記載される。
【表3】
【0168】
上記の例示的なCC-ALFに関連する構文の意味内容は下記のように説明できる。
【0169】
alf_ctb_cross_component_cross_cb_idc[xCtb>>CtbLog2SizeY][yCtb>>CtbLog2SizeY]が0に等しいことは、成分横断Cbフィルタがルーマ位置(xCtb,yCtb)におけるCb色成分サンプルのブロックには適用されないことを示すことができる。
【0170】
alf_ctb_cross_component_cb_idc[xCtb>>CtbLog2SizeY][yCtb>>CtbLog2SizeY]が0に等しくないことは、alf_ctb_cross_component_cb_idc[xCtb>>CtbLog2SizeY][yCtb>>CtbLog2SizeY]番目の成分横断Cbフィルタがルーマ位置(xCtb,yCtb)におけるCb色成分サンプルのブロックに適用されることを示すことができる。
【0171】
alf_ctb_cross_component_cr_idc[xCtb>>CtbLog2SizeY][yCtb>>CtbLog2SizeY]が0に等しいことは、成分横断Crフィルタはルーマ位置(xCtb,yCtb)におけるCr色成分サンプルのブロックには適用されないことを示すことができる。
【0172】
alf_ctb_cross_component_cr_idc[xCtb>>CtbLog2SizeY][yCtb>>CtbLog2SizeY]が0に等しくないことは、alf_cross_component_cr_idc[xCtb>>CtbLog2SizeY][yCtb>>CtbLog2SizeY]番目の成分横断Crフィルタがルーマ位置(xCtb,yCtb)におけるCr色成分サンプルのブロックに適用されることを示すことができる。
【0173】
クロマ・サンプリング・フォーマットの例が下記に記載される。一般に、ルーマ・ブロックは、一つまたは複数のクロマ・ブロック、たとえば2つのクロマ・ブロックに対応することができる。クロマ・ブロックのそれぞれにおけるサンプルの数を、ルーマ・ブロックにおける多数のサンプルよりも少なくすることができる。クロマ・サブサンプリング・フォーマット(クロマ・サブサンプリング・フォーマットとも呼ばれ、たとえば、chroma_format_idcによって指定される)は、クロマ・ブロックのそれぞれと対応するルーマ・ブロックとの間のクロマ水平サブサンプリング因子(たとえば、SubWidthC)およびクロマ垂直サブサンプリング因子(たとえば、SubHeightC)を示すことができる。クロマ・サブサンプリング方式は、通常の4(水平方向)×4(垂直方向)ブロックについて4:x:yフォーマットとして指定されうる。xは水平方向のクロマ・サブサンプリング因子(ブロックの第1行において保持されるクロマ・サンプルの数)であり、yはブロックの第2行において保持されるクロマ・サンプルの数である。一例では、クロマ・サブサンプリング・フォーマットは4:2:0であり、それは、クロマ水平サブサンプリング因子(たとえば、SubWidthC)およびクロマ垂直サブサンプリング因子(たとえば、SubHeightC)がいずれも、
図17A、17Bに示されるように、2であることを示す。別の例では、クロマ・サブサンプリング・フォーマットは4:2:2であってもよく、それは、クロマ水平サブサンプリング因子(たとえばSubWidthC)は2であり、クロマ垂直サブサンプリング因子(たとえばSubHeightC)は1であることを示す。別の例では、クロマ・サブサンプリング・フォーマットは4:4:4であり、それは、クロマ水平サブサンプリング因子(たとえば、SubWidthC)およびクロマ垂直サブサンプリング因子(たとえば、SubHeightC)は1であることを示す。このように、クロマ・サンプル・フォーマットまたはタイプ(クロマ・サンプル・ポジションとも呼ばれる)は、ルーマ・ブロック内の少なくとも1つの対応するルーマ・サンプルに対するクロマ・ブロック内のクロマ・サンプルの相対位置を示すことができる。
【0174】
図17A~17Bは、本開示の実施形態による、ルーマ・サンプルに対するクロマ・サンプルの例示的な位置を示す。
図17Aを参照すると、ルーマ・サンプル(1701)は、行(1711)~(1717)に位置する。
図17Aに示されるルーマ・サンプル(1701)は、ピクチャーの一部を表すことができる。一例では、ルーマ・ブロック(たとえば、ルーマCB)は、ルーマ・サンプル(1701)を含む。ルーマ・ブロックは、クロマ・サブサンプリング・フォーマットが4:2:0である2つのクロマ・ブロックに対応することができる。一例では、各クロマ・ブロックはクロマ・サンプル(1703)を含む。各クロマ・サンプル(たとえば、クロマ・サンプル(1703(1)))は、4つのルーマ・サンプル(たとえば、ルーマ・サンプル(1701(1))~(1701(4)))に対応する。一例では、4つのルーマ・サンプルは、左上のサンプル(1701(1))、右上のサンプル(1701(2))、左下のサンプル(1701(3))、および右下のサンプル(1701(4))である。クロマ・サンプル(たとえば、(1703(1)))は、左上のサンプル(1701(1))と左下のサンプル(1701(3))の間の左中央位置に位置してもよく、クロマ・サンプル(1703)を有するクロマ・ブロックのクロマ・サンプル・タイプは、クロマ・サンプル・タイプ0と称することができる。クロマ・サンプル・タイプ0は、左上のサンプル(1701(1))と左下のサンプル(1701(3))の中間の左中央位置に対応する相対位置0を示す。4つのルーマ・サンプル(たとえば(1701(1))~(1701(4)))は、クロマ・サンプル(1703)(1)の近傍ルーマ・サンプルと称されることができる。
【0175】
一例では、各クロマ・ブロックは、クロマ・サンプル(1704)を含んでいてもよい。クロマ・サンプル(1703)に関する上記の説明は、クロマ・サンプル(1704)に適応されることができ、よって、簡潔のため、詳細な説明を省略することができる。クロマサンプル(1704)のそれぞれは、対応する4つのルーマ・サンプルの中心位置に位置することができ、クロマサンプル(1704)を有するクロマ・ブロックのクロマ・サンプル・タイプは、クロマ・サンプル・タイプ1と称されることができる。クロマ・サンプル・タイプ1は、4つのルーマ・サンプル(たとえば(1701(1))~(1701(4)))の中心位置に対応する相対位置1を示す。たとえば、クロマサンプル(1704)の1つは、ルーマ・サンプル(1701(1))~(1701(4))の中心部分に位置することができる。
【0176】
一例では、各クロマ・ブロックは、クロマ・サンプル(1705)を含む。クロマサンプル(1705)のそれぞれは、対応する4つのルーマサンプル(1701)の左上のサンプルと共位置である左上の位置に位置することができ、クロマサンプル(1705)を有するクロマ・ブロックのクロマ・サンプル・タイプは、クロマ・サンプル・タイプ2と称されることができる。よって、各クロマサンプル(1705)は、それぞれのクロマ・サンプルに対応する4つのルーマサンプル(1701)の左上サンプルと共位置にある。クロマ・サンプル・タイプ2は、4つのルーマサンプル(1701)の左上の位置に対応する相対位置2を示す。たとえば、クロマサンプル(1705)の1つは、ルーマ・サンプル(1701(1))~(1701(4))の左上の位置に位置することができる。
【0177】
一例では、各クロマ・ブロックは、クロマ・サンプル(1706)を含む。クロマサンプル(1706)のそれぞれは、対応する左上のサンプルと対応する右上のサンプルとの間の上中央位置に位置することができ、クロマサンプル(1706)を有するクロマ・ブロックのクロマ・サンプル・タイプは、クロマ・サンプル・タイプ3と称されることができる。クロマ・サンプル・タイプ3は、左上のサンプル(および右上のサンプル)の間の上中央位置に対応する相対位置3を示す。たとえば、クロマサンプル(1706)の1つは、ルーマ・サンプル(1701(1))~(1701(4))の上中央位置に位置することができる。
【0178】
一例では、各クロマ・ブロックは、クロマ・サンプル(1707)を含む。クロマサンプル(1707)のそれぞれは、対応する4つのルーマサンプル(1701)の左下のサンプルと共位置である左下位置に位置することができ、クロマサンプル(1707)を有するクロマ・ブロックのクロマ・サンプル・タイプは、クロマ・サンプル・タイプ4と称されることができる。よって、各クロマサンプル(1707)は、それぞれのクロマ・サンプルに対応する4つのルーマサンプル(1701)の左下サンプルと共位置にある。クロマ・サンプル・タイプ4は、4つのルーマサンプル(1701)の左下位置に対応する相対位置4を示す。たとえば、クロマサンプル(1707)の1つは、ルーマ・サンプル(1701(1))~(1701(4))の左下位置に位置することができる。
【0179】
一例では、各クロマ・ブロックは、クロマ・サンプル(1708)を含む。クロマサンプル(1708)のそれぞれは、左下サンプルと右下サンプルとの間の下中央位置に位置し、クロマサンプル(1708)を有するクロマ・ブロックのクロマ・サンプル・タイプは、クロマ・サンプル・タイプ5と称されることができる。クロマ・サンプル・タイプ5は、4つのルーマサンプル(1701)の左下サンプルと右下サンプルの間の下中央位置に対応する相対位置5を示す。たとえば、クロマサンプル(1708)の1つは、ルーマ・サンプル(1701(1))~(1701(4))の左下サンプルと右下のサンプルとの間に位置することができる。
【0180】
一般に、クロマ・サブサンプリング・フォーマットについて、任意の適切なクロマ・サンプル・タイプを用いることができる。クロマ・サンプル・タイプ0~5は、クロマ・サブサンプリング・フォーマット4:2:0で説明される例示的なクロマ・サンプル・タイプを提供する。クロマ・サブサンプリング・フォーマット4:2:0については、追加的なクロマ・サンプル・タイプが使用されてもよい。さらに、他のクロマ・サンプル・タイプおよび/またはクロマ・サンプル・タイプ0~5の変形が、4:2:2、4:4:4などの他のクロマ・サブサンプリング・フォーマットのために使用されることができる。一例では、クロマ・サンプル(1705)および(1707)を組み合わせたクロマ・サンプル・タイプがクロマ・サブサンプリング・フォーマット4:2:2のために使用されてもよい。
【0181】
別の例では、ルーマ・ブロックは、4つのルーマ・サンプル(たとえば、(1701(1))~(1701(4)))の上の2つのサンプル(たとえば、(1701(1))~(1701(2)))と下の2つのサンプル(たとえば、(1701(3))~(1701(4)))をそれぞれ含む、行(1711)~(1712))のような交互の行をもつと考えられる。よって、行(1711)、(1713)、(1715)、および(1717)は、現在の行と称されることができ(表フィールドとも呼ばれる)、行(1712)、(1714)、(1716)、および(1717)は、次の行と称されることができる(裏フィールドとも呼ばれる)。4つのルーマ・サンプル(たとえば(1701(1))~(1701(4)))は、現在の行(たとえば(1711))と次の行(たとえば(1712))に位置する。上の相対クロマ位置2~3は現在の行に位置し、上の相対クロマ位置0~1は各現在の行とそれぞれの次の行との間に位置し、上の相対クロマ位置4~5は次の行に位置する。
【0182】
クロマ・サンプル(1703)、(1704)、(1705)、(1706)、(1707)、または(1708)は、各クロマ・ブロックにおける行(1751)~(1754)に位置する。行(1751)~(1754)の特定の位置は、クロマ・サンプルのクロマ・サンプルのタイプに依存することができる。たとえば、それぞれのクロマ・サンプル・タイプ0~1を有するクロマサンプル(1703)~(1704)について、行(1751)は行(1711)~(1712)の間に位置する。それぞれのクロマ・サンプル・タイプ2~3を有するクロマサンプル(1705)~(1706)については、行(1751)が現在の行(1711)と共位置にある。それぞれのクロマ・サンプル・タイプ4~5を有するクロマサンプル(1707)~(1708)については、行(1751)は次の行(1712)と共位置にある。上記の説明は、行(1752)~(1754)に適切に適応されることができ、詳細な説明は、簡潔のために省略される。
【0183】
任意の適当な走査方法を使用して、
図17Aに上述したルーマ・ブロックおよび対応するクロマ・ブロックを表示、記憶、および/または伝送することができる。いくつかの例示的実装では、順次走査が使用されてもよい。
【0184】
あるいはまた、
図17Bに示されるように、インターレースされた走査が使用されてもよい。前述のように、クロマ・サブサンプリング・フォーマットは4:2:0であってもよい(たとえば、chroma_format_idcは1に等しい)。一例では、変数クロマロケーションタイプ(たとえば、ChromaLocType)は、現在の行(たとえば、ChromaLocTypeがchroma_sample_loc_type_top_fieldである)または次の行(たとえば、ChromaLocTypeがchroma_sample_loc_type_bottom_fieldである)を示しうる。現在の行(1711)、(1713)、(1715)および(1717)および次の行(1712)、(1714)、(1716)および(1717)を別々に走査することができる。たとえば、現在の行(1711)、(1713)、(1715)および(1717)を最初に走査し、続いて次の行(1712)、(1714)、(1716)および(1717)がスキャンされる。現在の行はルーマサンプル(1701)を含むことができ、次の行はルーマサンプル(1702)を含むことができる。
【0185】
同様に、対応するクロマ・ブロックがインターレース式に走査されることができる。塗りつぶされていないクロマ・サンプル(1703)、(1704)、(1705)、(1706)、(1707)または(1708)を含む行(1751)および(1753)は、現在の行(または現在のクロマ行)と称されることができ、グレーで塗りつぶされたクロマ・サンプル(1703)、(1704)、(1705)、(1706)、(1707)または(1708)を含む行(1752)および(1754)は、次の行(または次のクロマ行)と称されることができる。一例では、インターレースされた走査の間、行(1751)および(1753)が最初に走査され、続いて行(1752)および(1754)が走査されてもよい。
【0186】
上記のALFのほかに、制約された方向性向上フィルタ(CDEF)も、ビデオ符号化におけるループ・フィルタリングのために使用されてもよい。ループ内CDEFは、画像の詳細を保持しながら、量子化リンギング・アーチファクトのような符号化アーチファクトをフィルタ除去するために使用されうる。いくつかの符号化技術においては、サンプル適応オフセット(SAO)アルゴリズムが、異なるクラスのピクセルについて信号オフセットを定義することによって、同様の目標を達成するために使用されうる。SAOとは異なり、CDEFは非線形空間フィルタである。いくつかの例において、CDEFフィルタの設計は、容易にベクトル化可能である(すなわち、単一命令複数データ(SIMD)演算で実装可能である)ように制約されうる。メジアンフィルタ、バイラテラルフィルタのような他の非線形フィルタはそうではなかった。
【0187】
CDEF設計は、以下の観察に由来する。いくつかの状況では、符号化された画像内のリンギング・アーチファクトの量は、量子化ステップ・サイズにほぼ比例しうる。量子化された画像に保持される最小の詳細は、量子化ステップ・サイズにも比例する。よって、画像の詳細を保持することは、より高い望ましくない量子化リンギング・アーチファクトを生じる、より小さな量子化ステップ・サイズを必要とする。幸いなことに、所与の量子化ステップ・サイズについて、リンギング・アーチファクトの振幅は、詳細の振幅より小さいことができ、それにより、十分な詳細を維持しながらリンギング・アーチファクトをフィルタ除去するようバランスを取るようCDEFを設計する機会がもたらされる。
【0188】
CDEFは最初に各ブロックの方向を識別することができる。次いで、CDEFは、識別された方向に沿って、そして同定された方向から45o回転された方向に沿ってはより小さい程度まで、適応的にフィルタリングすることができる。フィルタ強度は明示的に信号伝達されることができ、詳細のぼけに対する高度な制御を許容する。効率的なエンコーダ探索が、フィルタ強度のために設計されることができる。CDEFは、2つのループ内フィルタに基づくことができ、組み合わされたフィルタが、ビデオ符号化のために使用されることができる。いくつかの例示的実装では、CDEFフィルタは、ループ内フィルタリングのためのブロッキング解除フィルタに続いてもよい。
【0189】
方向探索は、たとえば、
図18に示されるように、たとえばブロッキング解除フィルタの後に、再構成されたピクセル(またはサンプル)に対して作用することができる。再構成されたピクセルはデコーダに利用可能であるので、方向は信号伝達を必要としなくてもよい。方向探索は、直線でないエッジを適切に取り扱うのに十分小さく(よって、エッジはフィルタリングブロック内で十分直線に見える)、量子化された画像に適用されたときに方向を確実に推定するのに十分大きい、適切なサイズを有するブロック(たとえば、8×8ブロック)に対して作用することができる。8×8領域にわたって一定の方向を有することにより、フィルタのベクトル化を容易にすることができる。各ブロックについて、ブロック内のパターンに最も良くマッチする方向が、量子化されたブロックと完璧な方向性ブロックのそれぞれとの間の相違の尺度、たとえば、平方差分和(SSD)、RMS誤差等を最小化することによって決定されることができる。一例では、完璧に方向性のブロック(たとえば、
図18の(1820)の1つ)は、1つの方向の直線に沿ったすべてのピクセルが同じ値を有するブロックを指す。
図18は、本開示の例示的実施形態による、8×8ブロック(1810)に対する方向探索の例を示す。
図18に示される例では、45度方向(1823)が誤差(1840)を最小化できるので、一組の方向(1820)のうちの45度方向(1823)が選択される。たとえば、45度方向についての誤差は12であり、行(1840)によって示される12から87の範囲の誤差のうちで最小である。
【0190】
例示的な非線形な低域通過方向性フィルタが、以下でさらに詳細に説明される。方向を識別することは、フィルタ・タップを識別された方向に沿って整列させて、方向性のエッジまたはパターンを保持しながら、リンギング・アーチファクトを低減するのに役立つ。しかしながら、いくつかの例では、方向性フィルタリングのみでは、リンギング・アーチファクトを十分に低減することができない。主方向(たとえば、識別された方向)に沿って存在していないピクセルに対して追加的なフィルタ・タップを使用することが望ましい。ぼけのリスクを減らすために、追加的なフィルタ・タップは、より保存的に扱われることができる。よって、CDEFは、一次タップ(primary tap)および二次タップ(secondary tap)を定義することができる。いくつかの例示的実装では、完全な二次元(2-D)CDEFフィルタは、次のように表すことができる。
【数12】
【0191】
式(14)において、Dはダンピングパラメータを表し、S(p)およびS(s)は、それぞれ一次タップおよび二次タップの強度を表し、関数round(・)は、真ん中をゼロから離れるほうに丸め、wd,m,n
(p)およびwd,m,n
(s)はフィルタの重みを表し、f(d,S,D)は、フィルタリングされたピクセル(たとえば、x(i,j))と近傍ピクセルのそれぞれ(たとえば、x(m,n))との間の差分d(たとえば、d=x(m,n)-x(i,j))に対して作用する制約関数を表す。差が小さい場合、f(d,S,D)は差dと等しくなり(たとえば、f(d,S,D)=d)、フィルタは線形フィルタとして振舞うことができる。差が大きい場合、f(d,S,D)は0に等しいことができ(たとえば、f(d,S,D)=0)、フィルタ・タップを事実上無視する。
【0192】
別のループ内処理コンポーネントとして、一組のループ内復元方式がブロッキング解除後のビデオ符号化(video coding post deblocking)に使用されて、一般にノイズ除去し、ブロッキング解除動作を越えてエッジの品質を向上させることができる。一組のループ内復元方式は、適当なサイズのタイル毎にフレーム(またはピクチャー)内で切り換え可能であることができる。ループ内復元方式のいくつかの例は、分離可能な対称ウィーナー・フィルタと部分空間投影を有する二重自己誘導フィルタとに基づいて、以下に記述される。内容統計はフレーム内で実質的に変化する可能性があるので、フィルタは、フレームの異なる領域で異なるフィルタがトリガーされることができる切り換え可能な枠組み内に統合されることができる。
【0193】
分離可能な対称ウィーナー・フィルタの例を以下に示す。ウィーナー・フィルタは、切り換え可能フィルタの1つとして使用できる。劣化したフレーム内のすべてのピクセル(またはサンプル)は、ピクセルの周囲のw×w窓内のピクセルの非因果的フィルタリングされたバージョンとして再構成されることができる。ここでw=2r+1であり、整数rに対して奇数である。2-Dフィルタ・タップは、w2×1個の要素を有する列ベクトル化された形のベクトルFによって示されることができ、ストレートな線形最小二乗平均誤差(linear minimum mean square error、LMMSE)最適化は、F=H-1Mによって与えられるフィルタ・パラメータを導くことができる。ここで、Hは、E[XXT]に等しく、ピクセルのまわりのw×w窓内のw2個のサンプルの列ベクトル化されたバージョンであるxの自己共分散である。Mは、xの、推定されるべきスカラー・ソース・サンプルyとの相互相関を表すE[YXT]に等しい。エンコーダは、ブロッキング解除されたフレームおよびソース内の実現値からHおよびMを推定し、結果として得られたフィルタFをデコーダに送るように構成されることができる。しかしながら、いくつかの例示的実装では、w2個のタップを送信する際に実質的なビットレートコストが発生する可能性がある。さらに、分離不可能なフィルタリングは、デコードを法外に複雑にする可能性がある。よって、複数の追加的な制約がFの性質に課されてもよい。たとえば、Fは分離可能であるように制約されてもよく、それにより、フィルタリングは、分離可能な水平方向および垂直方向のw-タップ畳み込みとして実装できる。一例では、水平および垂直フィルタのそれぞれは、対称であるように制約される。さらに、いくつかの例示的実装では、水平フィルタ係数と垂直フィルタ係数の和が1になると想定されてもよい。
【0194】
部分空間投影を有する二重自己誘導フィルタリング(dual self-guided filtering with subspace projection)もまた、ループ内復元のための切り換え可能フィルタの1つとして使用されてもよく、以下に記載される。いくつかの例示的実装において、誘導付きフィルタリングは、フィルタリングされていないサンプルxからフィルタリングされた出力yを計算するために局所線形モデルが使用される画像フィルタリングにおいて使用されうる。局所線形モデルは次のように書くことができる。
y=Fx+G Eq.(15)
ここで、FとGは、フィルタリングされたピクセルの近傍における劣化画像と誘導画像(ガイド画像とも呼ばれる)の統計量に基づいて決定できる。ガイド画像が劣化画像と同一である場合、結果として得られる自己誘導フィルタリングは、エッジ保存平滑化の効果を有することができる。本開示のいくつかの側面によれば、自己誘導フィルタリングの特定の形は、2つのパラメータ、すなわち半径rおよびノイズ・パラメータeに依存してもよく、以下のように列挙される。
【0195】
1. 各ピクセルのまわりの(2r+1)×(2r+1)窓内のピクセルの平均μおよび分散σ2を求める。たとえば、ピクセルの平均μおよび分散σ2を得ることは、積分イメージングに基づくボックス・フィルタリングを用いて効率的に実装されうる。
【0196】
2. 式(16)に基づいて、各ピクセルのパラメータfおよびgを計算する。
f=σ2/(σ2+e); g=(1-f)μ Eq.(16)
【0197】
3. 使用するピクセルのまわりの3×3窓におけるパラメータfおよびgの値の平均として、各ピクセルについてのFおよびGを計算する。
【0198】
二重自己誘導フィルタリングは、半径rおよびノイズ・パラメータeによって制御されてもよく、より大きな半径rはより高い空間分散(spatial variance)を意味することができ、より高いノイズ・パラメータeはより高い範囲分散(range variance)を意味することができる。
【0199】
図19は、本開示の例示的実施形態による部分空間投影の一例を示す。
図19に示される例では、部分空間投影は、安価な復元X
1およびX
2を使用して、ソースYにより近い最終的な復元X
fを生成することができる。安価な復元X
1およびX
2がソースYに近くなくても、安価な復元X
1およびX
2が正しい方向に移動するならば、適切な乗数{α,β}が、安価な復元X
1およびX
2をソースYにずっと近づけることができる。たとえば、最終的な復元X
fは、下記の式(17)に基づいて得ることができる。
X
f=X+α(X
1-X)+β(X
2-X) Eq.(17)
【0200】
上述したブロッキング解除フィルタ、ALF、CDEF、およびループ復元に加えて、成分横断サンプル・オフセット(Cross-Component Sample Offset、CCSO)フィルタまたはCCSOと呼ばれるループ・フィルタリング方法も、再構成されたサンプル(再構成サンプルとも呼ばれる)の歪みを低減するために、ループ・フィルタリング・プロセスにおいて実装されてもよい。CCSOフィルタは、ループ・ファイリング・ステージ内の任意の位置に配置することができる。CCSOフィルタリング・プロセスでは、非線形マッピングを使用して、第1の色成分の処理された入力再構成サンプルに基づいて、出力オフセットを決定することができる。出力オフセットは、CCSOのフィルタリング・プロセスにおいて第2の色成分の再構成されたサンプルに加算されることができる。
【0201】
入力再構成サンプルは、
図20に示されるように、フィルタ・サポート領域内に位置する第1の色成分からであることができる。具体的には、
図20は、本開示のある実施形態による、CCSOフィルタ内のフィルタ・サポート領域の一例を示す。フィルタ・サポート領域は、p0、p1、p2、およびp3の4つの再構成されたサンプルを含むことができる。
図20の例における4つの入力再構成サンプルは、垂直方向および水平方向の十字形状に従う。一例では、第1の色成分における中心サンプル(cで示される)と、第2の色成分におけるフィルタリングされるべきサンプル(fで示される)とは、共位置である。入力再構成サンプルを処理するとき、以下のステップが適用できる。
【0202】
ステップ1: p0、p1、p2、およびp3という4つの再構成されたサンプルと中心サンプルcとの間のデルタ値(たとえば、差)が計算され、それぞれm0、m1、m2、およびm3として示される。たとえば、p0とcの間のデルタ値はm0である。
【0203】
ステップ2: m0~m3のデルタ値は、さらに複数の(たとえば、4つの)離散的な値に量子化できる。量子化された値は、たとえば、m0、m1、m2、およびm3についてそれぞれd0、d1、d2、およびd3として示すことができる。一例では、d0、d1、d2、およびd3のそれぞれについての量子化された値は、以下の量子化プロセスに基づいて、-1、0、または1でありうる:
di=-1 mi<-Nの場合 Eq.(18)
di=0 -N≦mi≦Nの場合 Eq.(19)
di=1 mi>Nの場合 Eq.(20)
ここで、Nは量子化ステップ・サイズであり、Nの例示的な値は4、8、12、16などであり、diおよびmiはそれぞれの量子化された値およびデルタ値を指し、iは0、1、2、または3である。
【0204】
量子化された値d0~d3は、非線形マッピングの組み合わせを識別するために使用できる。
図20に示される例では、CCSOフィルタは、4つのフィルタ入力d0~d3を有し、各フィルタ入力は、3つの量子化された値(たとえば、-1、0、および1)のうちの1つを有することができ、よって、組み合わせの総数は、81(たとえば、3
4)である。
図21A~21Cは、本開示のある実施形態による81個の組み合わせの例を示す。最後の列は、各組み合わせについての出力オフセット値を表すことができる。出力オフセット値は、0、1、-1、3、-3、5、-5、-7などの整数であってもよい。最初の列は、量子化されたd0、d1、d2、およびd3の組み合わせに割り当てられたインデックスを表す。中央の諸列は、量子化されたd0、d1、d2、およびd3のすべての可能な組み合わせを表す。
【0205】
CCSOフィルタの最終的なフィルタリング・プロセスは、以下のように適用できる。
f'=clip(f+s) Eq.(21)
ここで、fはフィルタリングされるべき再構成されたサンプルであり、sは、たとえば、
図21A~21Cから取られる出力オフセット値である。式(21)に示される例において、フィルタリングされるべき再構成されたサンプルのフィルタリングされたサンプル値f'は、さらに、ビット深さに関連する範囲にクリッピングされることができる。
【0206】
局所サンプル・オフセット(Local Sample Offset、LSO)方法またはLSOフィルタリング・プロセスがビデオ符号化において使用されることができる。LSOでは、CCSOで使用されるのと同様のフィルタリング・アプローチが適用されることができる。しかしながら、出力オフセット値は、フィルタリング・プロセスで使用される入力再構成サンプルと同じ色成分である色成分に適用されることができる。よって、LSOでは、フィルタリング・プロセスで使用される入力再構成サンプル(たとえば、p0~p3およびc)およびフィルタリングされるべき再構成されたサンプル(たとえば、f)は、ルーマ成分、クロマ成分、または任意の適切な成分のような同じ成分内にある。LSOは、CCSOのものと類似または同一のフィルタ形状(
図20に示すような)を有することができる。
【0207】
図20に示すような、第1の色のp0、p1、p2、およびp1を用いた、第1の色のサンプルcに対応するフィルタリングされるべき第2の色の再構成されたサンプルfの例示的なCCSOフィルタリングは、5タップCCSOフィルタ設計と称されてもよい。あるいはまた、異なる数のフィルタ・タブを有する他のCCSO設計が使用されてもよい。たとえば、より複雑性の低い3タップCCSO設計がビデオ符号化において使用されることができる。
図22は、本開示のある実施形態によるCCSOの例示的実装を示す。8つの異なる例示的なフィルタ形状の任意のものが、3タップCCSO実装のために定義されうる。フィルタ形状のそれぞれは、第1の成分(第1の色成分とも呼ばれる)における3つの再構成されたサンプル(3つのタップとも呼ばれる)の位置を定義することができる。3つの再構成されたサンプルは、中心サンプル(cとして示される)および2つの対称的な位置にあるサンプルを含むことができる。これは、
図22において同じ番号(1~8のうちの1つ)で示されている。一例では、フィルタリングされるべき第2の色成分中の再構成されたサンプルは、中心サンプルcと共位置である。明確のために、フィルタリングされるべき第2の色成分中の再構成されたサンプルは、
図22には示されていない。
【0208】
サンプル適応オフセット(Sample Adaptive Offset、SAO)フィルタがビデオ符号化において使用されることができる。いくつかの例示的実装では、SAOフィルタまたはSAOフィルタリング・プロセスは、たとえばスライス・ヘッダ内のオフセット値を使用することによって、ブロッキング解除フィルタの後の再構成信号に適用されることができる。ルーマ・サンプルについては、SAOフィルタが現在のスライスに適用されるかどうかをエンコーダが決定することができる。SAOフィルタが有効になっている場合、現在のピクチャーは、再帰的に4つの部分領域に分割され、表4に示されるように、6つのSAOタイプ(SAOタイプ1~6)のうちの1つが各部分領域のために選択されることができる。SAOフィルタは、再構成されたピクセルを複数のカテゴリーに分類し、現在の部分領域内の各カテゴリーのピクセルにオフセットを加えることによって歪みを低減することができる。エッジ・プロパティはSAOタイプ1~4のピクセル分類のために使用でき、ピクセル強度はSAOタイプ5~6のピクセル分類のために使用できる。
【表4】
【0209】
バンド・オフセット(band offset、BO)は、部分領域のピクセル(たとえば、すべてのピクセル)を複数のバンドに分類するために使用できる。ここで、各バンドは同じ強度区間内のピクセルを含むことができる。強度範囲は、最小強度値(たとえば、ゼロ)から最大強度値(たとえば、8ビット・ピクセルについては255)までの複数の区間(たとえば、32個の区間)に等分されることができ、各区間はオフセットを有することができる。その後、複数の区間またはバンド(たとえば、32個のバンド)が2つのグループに分割できる。一方のグループは16個の中心バンドを含むことができ、他方のグループは残りの16個のバンドを含むことができる。一例では、1つのグループ内のオフセットのみが送信される。BOにおけるピクセル分類動作に関して、各ピクセルの上位5ビットがバンド・インデックスとして直接使用されることができる。
【0210】
エッジ・オフセット(edge offset、EO)は、
図23に示されるように、エッジ方向情報を考慮して、ピクセル分類のために4つの1-Dの3ピクセル・パターンを使用することができる。
図23は、EOにおけるピクセル分類のための4つの1-Dの3-ピクセル・パターンの例を示す。左から右へ、4つの1Dの3ピクセル・パターンは、それぞれ1Dの0度パターン(2310)、1Dの90度パターン(2320)、1Dの135度パターン(2330)、および1Dの45度パターン(2340)に対応する。ピクチャー(たとえば、現在のピクチャー)の各部分領域について、各ピクセルを該ピクセルの2つの近傍ピクセルと比較することによって、諸ピクセルを複数のカテゴリーに分類する、4つのパターンのうちの1つが選択されることができる。選択は、サイド情報としてビットストリームで送ることができる。表5はEOのためのピクセル分類規則を示す。
【表5】
【0211】
一例では、ラインバッファが節約できるように、デコーダ側のSAOがLCUとは独立に運用されることが望ましい。SAOをLCUとは独立に運用するためには、たとえば、各LCUにおける最上行と最下行のピクセルは90°、135°、45°の分類パターンが選択されている場合にはSAO処理されず、各LCUの左端と右端のピクセルは0°、135°、45°のパターンが選択されている場合にSAO処理されない。
【0212】
下記の表6は、パラメータが近傍CTUからマージされない場合に、CTUについて信号伝達されうる構文を説明している。
【表6】
【0213】
上述のCCSOループ・フィルタリング・プロセスのいくつかの実装では、
図21A~21Cにおいて5タップCCSOフィルタリングについて例示的に示されているような、量子化されたデルタ値(またはそれらのインデックス)の組み合わせと、成分横断サンプル・オフセット値との間の対応は、CCSOルックアップテーブル(LUT)と称されてもよい。LUTの一つまたは複数は、ビデオ・エンコードまたはデコードの間、CCSOフィルタリング・プロセスにおいて潜在的に使用されうる。複数のLUTがCCSOフィルタリングのために提供される場合、複数のLUTからの選択は、ループ・フィルタリング・プロセスの間に、エンコーダまたはデコーダによって、さまざまなレベル(たとえば、ピクチャー・レベル、スライス・レベル、CTBレベル、CBレベル、FUレベルなど)で動的かつ適応的に行われてもよい。
【0214】
これらのLUTのそれぞれは、任意の適切な数のタップ(たとえば、5タップもしくは3タップ、または任意の他の数のタップ)およびデルタ量子化レベル(たとえば、上述の3レベルのデルタ量子化、または任意の他の数のデルタ量子化レベル)に基づくことができる。よって、それらのLUTは、異なるサイズであってもよい(たとえば、上述のように、5タップおよび3量子化レベルのCCSOについて(5-1)3=81個の量子化されたデルタ組み合わせとオフセットの対応;または3タップおよび3量子化レベルのCCSOについて(3-1)3=8個の量子化されたデルタ組み合わせおとオフセットの対応)。
【0215】
上述のように、これらのLUTのいくつかはあらかじめ定義されてもよい。たとえば、これらのあらかじめ定義されたCCSO LUTは、CCSOフィルタリング・プロセスによる一般的な使用のためのトレーニング画像データを使用してオフラインで事前トレーニングされてもよい。そのようなあらかじめ定義されたLUTは、固定で一定であってもよく(さまざまなあらかじめ定義された量子化されたデルタ値の組み合わせのための固定定数オフセット)、よって、これらのあらかじめ定義されたLUTの内容は、エンコーダからデコーダへのビデオ・ビットストリームにおいて信号伝達される必要がないことがある。代わりに、これらのLUTは、ビデオ・エンコーダまたはビデオ・デコーダの中で、CCSOフィルタリング・プロセスによる使用のために、あらかじめ記憶されていてもよく、あるいはハードワイヤまたはハードコードされていてもよい。
【0216】
さらに上述したように、CCSOフィルタリング・プロセスの間に使用されるあらかじめ定義された/あらかじめトレーニングされたLUT以外のCCSO LUTのいくつかは、オフライン・トレーニングされるのではなく、エンコード・プロセスの間にエンコーダによって導出されてもよい。これらのCCSO LUTはあらかじめ定義されていないので、それらの内容はビットストリームの中で明示的に信号伝達される必要があるだろう。これらのエンコーダで導出されたLUTの信号伝達は、特に大きなLUTについてはフレーム当たりかなりのオーバーヘッドに関わり、それにより、重要で望ましくない全体的なビットレート損失を引き起こす可能性があるので、通常、高価である。よって、ビットストリーム中でこれらのLUTを編成し、エンコードし、そして信号伝達するための効率的な方式を考案することが望ましいことがある。
【0217】
いくつかの例示的な実装では、ビデオをエンコードまたはデコードするとき、あらかじめ定義されたLUTだけがCCSOフィルタリング・プロセスにおいて使用されてもよい。いくつかの他の例示的実装では、エンコーダで導出されたLUTのみが、ビデオをエンコードまたはデコードするときにCCSOフィルタリング・プロセスにおいて使用されてもよい。さらに他の例示的実装では、ビデオをエンコードまたはデコードするときに、あらかじめ定義されたLUTとエンコーダで導出されたLUTの両方がCCSOフィルタリング・プロセスで使用されてもよく、特定のFUのCCSOフィルタリングは、あらかじめ定義されたLUTとエンコーダで導出されたLUTから選択された任意のLUTを使用しうる。
【0218】
上記で詳述したように、CCSOプロセスは、第1の色成分の再構成されたサンプルを入力(たとえばYまたはCbまたはCr、すなわち、ルーマ成分を含み、単にクロマ成分に限定されない)として使用するフィルタリング・プロセスを指し、出力は、特定のCCSO LUTに従って第1の色成分の異なる色成分である第2の色成分に適用される。CCSOフィルタの例示的な5タップ・フィルタ形状が
図20に示されており、対応する例示的なLUTが
図21A~21Cに示されている。
【0219】
第1の色成分と第2の色成分が異なるフィルタリング・プロセスはCCSOと呼ばれるが、前述のように、局所サンプルオフセット(LSO)と呼ばれるイントラ色オフセット(intra color offset)プロセスも実装されうる。LSOフィルタ・プロセスは、入力として第1の色成分(たとえば、YまたはCbまたはCr)の再構成されたサンプルを使用してもよく、出力は特定のLSO LUTに従って同じ第1の色成分に適用される。特定のLSO LUTは、LSOのための一つまたは複数のLUTから選択されて、CCSOプロセスにおける成分横断サンプル・オフセットの決定と同様に、局所的なサンプル・オフセットを決定するために使用されてもよい。CCSO LUTと同様に、そのようなLSO LUTは、たとえば、固定定数LUTとしてあらかじめ定義されていてもよく(オフラインでトレーニングされていてもよい)、またはエンコード・プロセスの間にエンコーダによって導出されてもよい。エンコーダで導出されたLSO LUTはビットストリームにおいて信号伝達される必要があるだろうが、あらかじめ定義された/固定の/定数の/オフライン・トレーニングされたLSO LUTは、エンコーダまたはデコーダにおいてあらかじめ記憶されるか、ハードワイヤリングされるか、またはハードコードされてもよく、上述したあらかじめ定義されたCCSO LUTと同様に、信号伝達される必要はなくてもよい。
【0220】
以下の開示は、デコーダおよびエンコーダにおける、符号化ブロック内の再構成されたサンプルのループ内フィルタリングの際の、サンプル・オフセットLUTの動的および適応的な選択のさまざまな例示的実装をさらに記述する。これらの実装とその基礎となる原理は、CCSOフィルタリングだけでなく、LSOフィルタリングにも適用可能である。説明の便宜上、状況によってはCCSOが具体的に言及されることがある。しかしながら、以下の開示はCCSOに限定されず、LSOにも適用可能である。
【0221】
いくつかの例示的な実装では、一つまたは複数のあらかじめ定義されたルックアップテーブル(LUT)が、CCSOおよび/またはLSOについて定義されてもよく、これらのルックアップテーブルは、たとえば式(21)に従って、CCSOまたはLSOフィルタリングされたサンプル値を計算するために、特定の色成分の再構成されたサンプル値に加えられるオフセット値を導出するために使用されてもよい。これらのあらかじめ定義されたCCSOおよび/またはLSOのLUTは、あらかじめエンコーダおよびデコーダの間で共有され、知らされる。よって、これらのLUTは、エンコーダまたはデコーダ装置のいずれかに記憶され、ハードワイヤリングされ、またはハードコードされてもよい。
【0222】
各LUTは、あるデルタ値とサンプル・オフセット値の間の特定の非線形マッピングを表す。複数のLUTが使用のために利用可能であるとき、各色成分についてのさまざまなフィルタ・レベル(FU、または任意の他のレベル)でのLUTの選択は、エンコーダ内で行われ、デコーダに信号伝達されてもよい。以下に記載されるいくつかの実装では、LUTの選択(あるいは、さまざまなデルタ値とサンプル・オフセット値との間のさまざまな非線形マッピング)は、さまざまな局所的な適応性で実装されうる。
【0223】
いくつかの実装では、局所的な適応性は、CCSOまたはLSOフィルタリングが適用されるブロック領域の符号化された情報に基づいて導出されるある種の統計量に基づいていてもよい。フィルタリングブロック領域のこれらの統計的特徴は、サンプル・オフセット・フィルタ選択(たとえば、CCSOまたはLSOルックアップテーブルの選択)によって適応的に処理されうる潜在的な歪みと相関する、再構成されたサンプルにおける画像特徴を表すことができる。これらの統計は、以下の一つまたは複数を含みうるが、これらに限定されない。
【0224】
I. 上述のCDEFで導出されたエッジ方向、またはキャニー・エッジ検出器またはソーベル・エッジ検出器のような他のエッジ検出方法を用いて導出されるエッジ方向。
【0225】
II. CDEFが適用されるさまざまなフィルタリング・レベルにおけるサンプル領域内の再構成されたサンプルの平滑性の指標。
・ある実施形態では、平滑性は、サンプル領域内のサンプル値の範囲によって計算されてもよい。サンプル値の範囲は、最大サンプル値と最小サンプル値の間の絶対的な差として定義されうる。
・別の実施形態では、平滑性は、サンプル領域内に位置するピクセルのサンプル値の四分位間範囲によって計算されてもよい。サンプル値の四分位間範囲は、サンプル値のA番目のパーセンタイルからB番目のパーセンタイルを引いたものとして定義される。Aの例示的値は75%であってもよく、Bの例示的値は25%であってもよい。
・さらに別の実施形態では、平滑性は、サンプル領域内のサンプル値の分散によって計算されてもよい。分散は次のように計算できる。
【数13】
ここで、S
2は分散、x
iはサンプル1ないしサンプルnをカバーする現在のサンプル領域のi番目のサンプル、バー付きのxはサンプル平均値、nはCCSOおよび/またはLSOが適用されるサンプル領域内のサンプルの総数を表す。
・さらに別の実施形態では、平滑性は、サンプル領域内のサンプル値の標準偏差によって計算されてもよい。標準偏差は、次のように計算できる。
【数14】
・さらに別の実施形態では、平滑性は、サンプル領域内の勾配値の範囲によって計算されてもよい。勾配値の範囲は、最大勾配値と最小勾配値の間の絶対的な差として定義されてもよい。各サンプル位置についての勾配値は、現在位置に位置するサンプルの値と近傍位置に位置するサンプルの値との差として計算されてもよい。
【0226】
III. 符号化された/符号化情報(coded/coding information)。これは、CCSOまたはLSOが適用されるブロックについて信号伝達される予測モード(たとえば、イントラDCモード、イントラ平面モード、イントラPAETHモード、イントラSMOOTHモード、イントラ再帰フィルタリング・モード、インターSKIPモードが適用されるか否か)、現在のブロックに関連する係数符号化に関する情報(符号化されたブロック・フラグなど)、ブロック・サイズ、量子化パラメータ、および動きベクトル(大きさ)を含まれるが、これらに限定されない。
【0227】
IV. CCSOまたはLSOを適用するときにエンコーダとデコーダの両方に利用可能な情報。たとえば、ループ・フィルタリング・プロセス(ALFなど)の間に導出されたサンプル分類情報、ブロッキング解除プロセス、CDEF、およびループ復元の間に導出されたフィルタリング強度など。
【0228】
いくつかの一般的な例示的実装では、あるブロックのためのCCSOまたはLSOフィルタリング(またはCCSOまたはLSO LUT)において使用される非線形マッピングは、そのブロックの統計に依存して選択されうる。統計は、上記のI、II、III、およびIVを含みうるが、これらに限定されない。
【0229】
ある実施形態では、CCSOの入力である色成分が、統計を導出するために使用されてもよい。
【0230】
別の実施形態では、CCSOの出力によってフィルタリングされる色成分が、統計を導出するために使用されてもよい。
【0231】
別の実施形態では、上記Iで定義された統計が使用される場合(エッジ方向統計)、CCSOにおいて現在のブロックのために使用されるLUTは、現在のブロックのエッジ情報に基づいて選択されてもよい。
【0232】
CDEFにおいて導出されたエッジ方向が統計として使用される一例では、CCSOおよび/またはLSOについて、合計であらかじめ定義された数のLUT(たとえば、8つ)が存在してもよい。LUTのそれぞれは、例示的なCDEFエッジ導出プロセスの出力である、たとえば8つのエッジ方向のうちの一つに対応してもよい。LUTの一つは、エッジ方向に基づいて現在のブロックについてのこの対応に従って選択されてもよい。例示的な8つのLUTは、HLS(APS、スライス・ヘッダ、フレームヘッダ、PPS)において、さまざまなレベル、たとえばフレームレベルで、信号伝達されうる(あらかじめ定義されていなければ)。
【0233】
CDEFにおいて導出されたエッジ方向が統計として使用される別のより一般的な例では、全部でN個のLUTが存在することがあり、そのそれぞれは、例示的なCDEFエッジ導出プロセスの出力である8つのエッジ方向のうちの2つ以上に対応する。LUTの一つは、エッジ方向に基づいて現在のブロックについてのこの対応に従って選択されうる。Nの例示的な値は整数で、1<N<8である。N個のLUTは、HLS(APS、スライス・ヘッダ、フレームヘッダ、PPS)において、フレームレベルで信号伝達されうる(あらかじめ定義されていなければ)。
【0234】
いくつかの例示的な実装では、上記のIIで定義された統計が使用される場合(平滑性統計)、CCSOおよび/またはLSOにおける現在のブロックについてのLUTの選択は、測定の平滑性値が一つまたは複数の所与の閾値より小さい(または大きい)かどうかに基づいてもよい。
【0235】
一例では、現在のブロックの標準偏差(S)が、LUT選択のために所定の数の閾値と比較されてもよい。たとえば、選択対象のいくつかのLUTがあってもよい。たとえば、4つのLUTから選択する。対応して、3つの閾値(S1、S2、S3)があってもよい。よって、4つのLUTからのLUT選択は、以下の基準に基づいていてもよい:S<S1であればLUT1が選択されてもよい;S1≦S<S2であればLUT2が選択されてもよい;S2≦S<S3であればLUT3が選択されてもよい;S≧S4であればLUT4が選択されてもよい。
【0236】
ある実施形態では、上記IIIで定義された統計が使用される場合(符号化/符号化される情報の統計)、CCSOおよび/またはLSOにおける現在のブロックのために使用されるLUTの選択は、符号化/符号化される情報に基づいていてもよい。
【0237】
一例では、現在のブロックについてのLUTは、現在のブロックの予測モードに基づいて選択されてもよい。さまざまな予測モードがさまざまなLUTに対応してもよい。現在のブロックにおいて使用される予測モードについては、対応するLUTが選択されてもよい。例示的な予測モードは、イントラDCモード、イントラ平面モード、イントラPAETHモード、イントラSMOOTHモード、イントラ再帰フィルタリング・モード、インターSKIPモードなどを含むが、これらに限定されない。
【0238】
いくつかの例示的実装では、上記のさまざまな統計情報が、フィルタ係数、フィルタ・タップ位置およびフィルタ・タップの数を含むがこれらに限定されない、CCSOにおいて使用されるフィルタを決定するために使用されうる。そのような決定は、そのようなフィルタリング・パラメータが異なるルックアップテーブルにおいて具現されるとき、上述のようなLUTの選択と等価でありうる。あるいはまた、これらの複合LUTが特定の複合LUTにおけるこれらのパラメータのバリエーションを含むように構築される場合、選択はLUTの選択ではなく、LUTの中の項目を選択することに関わってもよい。
【0239】
上記の実装のいずれかにおいても、LUTを選択するための統計は、どの色成分の統計に基づいていてもよい。それは、単一の色成分、または複数の色成分の組み合わせに基づくことができる。それは、フィルタリングされる色成分と同じ色成分、またはフィルタリングされる色成分とは異なる別の色成分に基づくことができる。統計が実行される色成分(単数または複数)は、「少なくとも第1の色成分」と称されることがある。選択されたサンプル・オフセット・フィルタへの入力色成分およびフィルタリングされるべき色成分は、「第2の色成分」と称されることがある。選択されたサンプル・オフセット・フィルタ内のサンプル・オフセット値を調べるために使用されるデルタ値は、「第3の色成分」と呼ばれる任意の色成分において、フィルタリングされるサンプルと共位置にあるサンプルから取られてもよい。第1の色成分、第2の色成分、および第3の色成分は、同じであってもよく、または異なっていてもよい。たとえば、第2および第3の色成分は、異なっていてもよく(よって、「成分横断サンプル・オフセット」フィルタリング)または同じであってもよい(よって、「局所サンプル・オフセット」フィルタリング)。
【0240】
いくつかの例示的実装では、LUTの数(たとえば、M)は、CCSOまたはLSOが適用される色成分について信号伝達されてもよく、現在のブロックに適用される選択されたLUTのインデックスも信号伝達される。Mの例示的な値は、1~1024内の任意の整数である。
【0241】
いくつかの例示的実装では、LUTの数(たとえば、M)と実際のLUT(あらかじめ定義されているのでない場合)は、シーケンス・レベル、ピクチャー・レベル、あるいはCTU/SBレベルを含むがこれに限定されないさまざまなレベルで、HLS(APS、スライス・ヘッダ、フレームヘッダ、PPS、SPS、VPS)において信号伝達されてもよい。現在のブロックについての選択されたLUTのインデックスは、CTU/SBレベルまたは符号化されたブロックのレベル、またはフィルタ単位レベルを含むがそれに限定されないさまざまなレベルで、HLS(APS、スライス・ヘッダ、フレームヘッダ、PPS、SPS、VPS)において信号伝達されてもよい。
【0242】
CCSOまたはLSOフィルタに関する「ループ・フィルタリング・パラメータ」という用語は、本開示において使用される場合、CCSOまたはLSOフィルタのさまざまな特性を示す、ビットストリームにおいて信号伝達されるパラメータを指す。かかる特性は、LUTのタイプ(たとえば、あらかじめ定義されているか、またはエンコーダで導出されるか)を示すフラグ、LUTへのインデックス、LUTにおけるデルタ・レベルの数、デルタについての量子化ステップ、各フィルタについてのタップの数、各フィルタのためのフィルタリングされたサンプル位置に対するタップ位置などを含むが、これらに限定されない。
【0243】
図24は、ループ内サンプル横断オフセット・フィルタリングまたは局所サンプル・オフセット・フィルタリングのための、上記の実装の基礎となる原理に従った例示的方法のフローチャート2400を示す。例示的な方法フローは、2401で始まる。S2410では、ビデオ・ストリームの現在の再構成されたデータ・ブロック内の少なくとも第1の色成分の再構成されたサンプルに関連する少なくとも1つの統計的特性が得られる。S2420では、複数のサンプル・オフセット・フィルタのうちのターゲット・サンプル・オフセット・フィルタが、前記少なくとも1つの統計的特性に基づいて選択され、ターゲットサンプルオフセットフィルタは、サンプル・デルタ指標とサンプル・オフセット値との間の非線形マッピングを含む。S2430では、現在の再構成されたデータ・ブロックの第2の色成分における現在のサンプルが、ターゲットサンプルオフセットフィルタおよび現在の再構成されたデータ・ブロックの第3の色成分における参照サンプルを使用してフィルタリングされて、現在のサンプルのフィルタリングされた再構成されたサンプルを生成する。例示的な方法フローはS2499で終了する。
【0244】
本開示の実施形態は、別々に、または任意の順序で組み合わせて使用されうる。さらに、各方法(または実施形態)、エンコーダ、およびデコーダは、処理回路(たとえば、一つまたは複数のプロセッサ、または一つまたは複数の集積回路)によって実装されてもよい。一例では、前記一つまたは複数のプロセッサは、非一時的なコンピュータ読み取り可能媒体に記憶されたプログラムを実行する。本開示における実施形態は、ルーマ・ブロックまたはクロマ・ブロックに適用されてもよい。
【0245】
上述の技法は、コンピュータ読み取り可能な命令を用いてコンピュータ・ソフトウェアとして実装することができ、一つまたは複数のコンピュータ読み取り可能な媒体に物理的に記憶されることができる。たとえば、
図25は、開示された主題のある種の実施形態を実施するのに好適なコンピュータ・システム(2500)を示す。
【0246】
コンピュータ・ソフトウェアは、任意の好適な機械コードまたはコンピュータ言語を用いてコーディングされることができ、アセンブリ、コンパイル、リンク、または同様の機構の対象とされて、一つまたは複数のコンピュータ中央処理ユニット(CPU)、グラフィックス処理ユニット(GPU)などによって、直接的に、またはインタープリット、マイクロコード実行などを通じて実行可能な命令を含むコードを作成することができる。
【0247】
命令は、たとえば、パーソナルコンピュータ、タブレット・コンピュータ、サーバー、スマートフォン、ゲーム装置、モノのインターネット装置等を含むさまざまなタイプのコンピュータまたはそのコンポーネント上で実行されることができる。
【0248】
コンピュータ・システム(2500)について
図25に示されるコンポーネントは、例としての性質であり、本開示の実施形態を実装するコンピュータ・ソフトウェアの使用または機能の範囲に関する制限を示唆することを意図したものではない。コンポーネントの構成も、コンピュータ・システム(2500)の例示的実施形態において示されているコンポーネントの任意の1つまたは組み合わせに関する何らかの依存性または要件を有するものとして解釈されるべきではない。
【0249】
コンピュータ・システム(2500)は、ある種のヒューマン・インターフェース入力装置を含むことができる。そのようなヒューマン・インターフェース入力装置は、たとえば、触覚入力(たとえば、キーストローク、スワイプ、データグローブの動き)、音声入力(たとえば、声、拍手)、視覚入力(たとえば、ジェスチャー)、嗅覚入力(図示せず)を通じた一または複数の人間ユーザーによる入力に応答することができる。また、ヒューマン・インターフェース装置は、音声(たとえば、発話、音楽、周囲の音)、画像(たとえば、スキャンされた画像、スチール画像カメラから得られる写真画像)、ビデオ(たとえば、2次元ビデオ、立体視ビデオを含む3次元ビデオ)のような、人間による意識的入力に必ずしも直接関係しないある種のメディアを捕捉するために使用できる。
【0250】
入力ヒューマン・インターフェース装置は、キーボード(2501)、マウス(2502)、トラックパッド(2503)、タッチスクリーン(2510)、データグローブ(図示せず)、ジョイスティック(2505)、マイクロフォン(2506)、スキャナ(2507)、カメラ(2508)の一つまたは複数(それぞれの一つしか図示していない)を含んでいてもよい。
【0251】
コンピュータ・システム(2500)はまた、ある種のヒューマン・インターフェース出力装置を含んでいてもよい。そのようなヒューマン・インターフェース出力装置は、たとえば、触覚出力、音、光、および臭い/味を通じて、一または複数の人間ユーザーの感覚を刺激するものであってもよい。そのようなヒューマン・インターフェース出力装置は、触覚出力装置(たとえば、タッチスクリーン(2510)、データグローブ(図示せず)、またはジョイスティック(2505)による触覚フィードバック;ただし、入力装置のはたらきをしない触覚フィードバック装置もありうる)、音声出力装置(たとえば、スピーカー(2509)、ヘッドフォン(図示せず))、視覚出力装置(たとえば、CRT画面、LCD画面、プラズマスクリーン、OLED画面を含む画面(2510);それぞれはタッチスクリーン入力機能があってもなくてもよく、それぞれは触覚フィードバック機能があってもなくてもよく、そのうちのいくつかは、2次元の視覚出力または立体視出力のような手段を通じた3次元より高い出力を出力することができる;仮想現実感眼鏡(図示せず)、ホログラフィーディスプレイおよび煙タンク(図示せず))、およびプリンタ(図示せず)を含んでいてもよい。
【0252】
コンピュータ・システム(2500)はまた、人間がアクセス可能な記憶装置および関連する媒体、たとえば、CD/DVDまたは類似の媒体(2521)とともにCD/DVD ROM/RW(2520)を含む光学式媒体、サムドライブ(2522)、取り外し可能なハードドライブまたはソリッドステートドライブ(2523)、テープおよびフロッピーディスクといったレガシー磁気媒体(図示せず)、セキュリティ・ドングルのような特化したROM/ASIC/PLDベースの装置(図示せず)などを含むことができる。
【0253】
当業者はまた、現在開示されている主題に関連して使用される用語「コンピュータ読み取り可能な媒体」は、伝送媒体、搬送波、または他の一時的な信号を包含しないことを理解すべきである。
【0254】
コンピュータ・システム(2500)はまた、一つまたは複数の通信ネットワーク(2555)へのインターフェース(2554)を含むことができる。ネットワークは、たとえば、無線、有線、光学式でありうる。ネットワークは、さらに、ローカル、広域、都市圏、車載および工業用、リアルタイム、遅延耐性などでありうる。ネットワークの例は、イーサネット〔登録商標〕、無線LAN、GSM、3G、4G、5G、LTEなどを含むセルラー・ネットワーク、ケーブルテレビ、衛星テレビ、地上放送テレビを含むTV有線または無線の広域デジタルネットワーク、CANbusを含む車載および工業用などを含む。ある種のネットワークは、普通、ある種の汎用データ・ポートまたは周辺バス(2549)(たとえば、コンピュータ・システム(2500)のUSBポートなど)に取り付けられる外部ネットワーク・インターフェース・アダプターを必要とする。他は、普通、後述するようなシステム・バスへの取り付けによって、コンピュータ・システム(2500)のコアに統合される(たとえば、PCコンピュータ・システムへのイーサネット・インターフェースまたはスマートフォン・コンピュータ・システムへのセルラー・ネットワーク・インターフェース)。これらのネットワークのいずれかを使用して、コンピュータ・システム(2500)は、他のエンティティと通信することができる。そのような通信は、一方向性、受信のみ(たとえば、放送テレビ)、一方向性送信専用(たとえば、ある種のCANbus装置へのCANbus)、または、たとえば、ローカルまたは広域デジタルネットワークを使用する他のコンピュータ・システムへの双方向性であってもよい。上述のようなそれらのネットワークおよびネットワークインターフェースのそれぞれで、ある種のプロトコルおよびプロトコルスタックが使用できる。
【0255】
前述のヒューマン・インターフェース装置、人間がアクセス可能な記憶装置、およびネットワークインターフェースは、コンピュータ・システム(2500)のコア(2540)に取り付けることができる。
【0256】
コア(2540)は、一つまたは複数の中央処理装置(CPU)(2541)、グラフィックス処理装置(GPU)(2542)、フィールドプログラマブルゲートアレイ(FPGA)(2543)の形の特化したプログラマブル処理装置、ある種のタスクのためのハードウェアアクセラレータ(2544)、グラフィック・アダプター(2550)などを含むことができる。これらの装置は、読み出し専用メモリ(ROM)(2545)、ランダムアクセスメモリ(2546)、内部のユーザー・アクセス可能でないハードドライブ、ソリッドステートドライブ(SSD)などの内部大容量記憶装置(2547)とともに、システム・バス(2548)を通じて接続されうる。いくつかのコンピュータ・システムでは、追加のCPU、GPUなどによる拡張を可能にするために、システム・バス(2548)は、一つまたは複数の物理プラグの形でアクセス可能であってもよい。周辺装置は、コアのシステム・バス(2548)に直接取り付けられることも、周辺バス(2549)を通じて取り付けられることもできる。一例では、グラフィック・アダプター(2550)に画面(2510)が接続されることができる。周辺バスのためのアーキテクチャーは、PCI、USBなどを含む。
【0257】
CPU(2541)、GPU(2542)、FPGA(2543)、およびアクセラレータ(2544)は、組み合わせて上述のコンピュータコードを構成することができるある種の命令を、実行することができる。そのコンピュータコードは、ROM(2545)またはRAM(2546)に記憶できる。一時的データも、RAM(2546)に記憶されることができ、一方、持続的データは、たとえば、内部大容量記憶装置(2547)に記憶されることができる。一つまたは複数のCPU(2541)、GPU(2542)、大容量記憶装置(2547)、ROM(2545)、RAM(2546)などと密接に関連付けることができるキャッシュメモリを使用することを通じて、メモリデバイスのいずれかへの高速な記憶および取り出しを可能にすることができる。
【0258】
コンピュータ読み取り可能な媒体は、さまざまなコンピュータ実装された動作を実行するためのコンピュータコードをその上に有することができる。媒体およびコンピュータコードは、本開示の目的のために特別に設計および構築されたものであってもよく、または、コンピュータ・ソフトウェア分野の技術を有する者に周知であり利用可能な種類のものであってもよい。
【0259】
限定しない例として、アーキテクチャー(2500)、具体的にはコア(2540)を有するコンピュータ・システムは、プロセッサ(CPU、GPU、FPGA、アクセラレータ等を含む)が一つまたは複数の有形のコンピュータ可読媒体に具現化されたソフトウェアを実行することの結果として、機能性を提供することができる。そのようなコンピュータ読み取り可能媒体は、上記で紹介したようなユーザー・アクセス可能な大容量記憶ならびにコア内部の大容量記憶装置(2547)またはROM(2545)のような非一時的な性質のコア(2540)のある種の記憶に関連する媒体であることができる。本開示のさまざまな実施形態を実装するソフトウェアは、そのような装置に記憶され、コア(2540)によって実行されることができる。コンピュータ読み取り可能媒体は、特定のニーズに応じて、一つまたは複数のメモリデバイスまたはチップを含むことができる。ソフトウェアは、RAM(2546)に記憶されたデータ構造を定義し、ソフトウェアによって定義されたプロセスに従ってそのようなデータ構造を修正することを含む、本明細書に記載された特定のプロセスまたは特定の特定部分を、コア(2540)および具体的にはその中のプロセッサ(CPU、GPU、FPGAなどを含む)に実行させることができる。追加的または代替的に、コンピュータ・システムは、回路(たとえば、アクセラレータ(2544))内に配線された、または他の仕方で具現された論理の結果として機能性を提供することができ、これは、本明細書に記載される特定のプロセスまたは特定のプロセスの特定部分を実行するためのソフトウェアの代わりに、またはそれと一緒に動作することができる。ソフトウェアへの言及は、論理を含み、適宜その逆も可能である。コンピュータ読み取り可能媒体への言及は、適宜、実行のためのソフトウェアを記憶する回路(たとえば集積回路(IC))、実行のための論理を具現する回路、またはその両方を包含することができる。本開示は、ハードウェアおよびソフトウェアの任意の好適な組み合わせを包含する。
【0260】
本開示は、いくつかの例示的実施形態を記載してきたが、変更、置換、およびさまざまな代替等価物があり、それらは本開示の範囲内にはいる。上記の実施形態において、プロセスの任意の動作は、所望に応じて、任意の量または順序で組み合わされ、または配置されうる。さらに、上記のプロセスの動作の2つ以上が並列に実行されてもよい。よって、当業者は、本明細書に明示的に示されていないかまたは記載されていないが、本開示の原理を具現し、よって、本開示の精神および範囲内にある多くのシステムおよび方法を考案することができることが理解されるであろう。
【0261】
付録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: Group 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 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(集積回路)
HDR: high dynamic range(高ダイナミックレンジ)
SDR: standard dynamic range(標準ダイナミックレンジ)
JVET: Joint Video Exploration Team(合同ビデオ探査チーム)
MPM: most probable mode(最確モード)
WAIP: Wide-Angle Intra Prediction(広角イントラ予測)
CU: Coding Unit(符号化単位)
PU: Prediction Unit(予測単位)
TU: Transform Unit(変換単位)
CTU: Coding Tree Unit(符号化ツリー単位)
PDPC: Position Dependent Prediction Combination(位置依存予測組み合わせ)
ISP: Intra Sub-Partition(イントラサブパーティション)
SPS: Sequence Parameter Setting(シーケンスパラメータ設定)
PPS: Picture Parameter Set(ピクチャーパラメータセット)
APS: Adaptation Parameter Set(適応パラメータセット)
VPS: Video Parameter Set(ビデオパラメータセット)
DPS: Decoding Parameter Set(復号パラメータセット)
ALF: Adaptive Loop Filter(適応ループ・フィルタ)
SAO: Sample Adaptive Offset(サンプル適応オフセット)
CC-ALF: Cross-Component Adaptive Loop Filter(成分横断適応ループ・フィルタ)
CDEF: Constrained Directional Enhancement Filter(制約された方向性向上フィルタ)
CCSO: Cross-Component Sample Offset(成分横断サンプル・オフセット)
LSO: Local Sample Offset(局所サンプル・オフセット)
LR: Loop Restoration Filter(ループ復元フィルタ)
AV1: AOMedia Video 1(AOメディアビデオ1)
AV2: AOMedia Video 2(AOメディアビデオ2)
【外国語明細書】