(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024111192
(43)【公開日】2024-08-16
(54)【発明の名称】ビデオ符号化における境界処理のための方法、装置及びプログラム
(51)【国際特許分類】
H04N 19/117 20140101AFI20240808BHJP
H04N 19/167 20140101ALI20240808BHJP
H04N 19/176 20140101ALI20240808BHJP
H04N 19/82 20140101ALI20240808BHJP
【FI】
H04N19/117
H04N19/167
H04N19/176
H04N19/82
【審査請求】未請求
【請求項の数】1
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024099381
(22)【出願日】2024-06-20
(62)【分割の表示】P 2022565633の分割
【原出願日】2021-09-24
(31)【優先権主張番号】63/187,213
(32)【優先日】2021-05-11
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/448,469
(32)【優先日】2021-09-22
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ドゥ,イーシン
(72)【発明者】
【氏名】リウ,シャン
(57)【要約】
【課題】本開示の諸側面は、ビデオ符号化/復号におけるフィルタリングのための方法及び装置を提供する。
【解決手段】いくつかの例では、ビデオコーディングのための装置は処理回路を含む。処理回路は、ループフィルタチェーンに沿った第1のノードにおける第1の再構成サンプルの第1の境界ピクセル値をバッファリングする。第1のノードは、ループ復元フィルタの前にループフィルタチェーンにおいて適用される非線形マッピングベースのフィルタに関連する。第1の境界ピクセル値は、フレーム境界におけるピクセルの値である。処理回路は、バッファリングされた第1の境界ピクセル値に基づいて、フィルタリング対象の再構成サンプルに対してループ復元フィルタを適用する。
【選択図】
図36
【特許請求の範囲】
【請求項1】
ビデオコーディングにおけるフィルタリングのための方法であって、
プロセッサによって、ループフィルタチェーンに沿った第1のノードにおける第1の再構成サンプルの第1の境界ピクセル値をバッファリングするステップであって、前記第1のノードは、ループ復元フィルタの前に前記ループフィルタチェーンにおいて適用される非線形マッピングベースのフィルタに関連し、前記第1の境界ピクセル値は、フレーム境界におけるピクセルの値である、ステップと、
前記プロセッサによって、前記バッファリングされた第1の境界ピクセル値に基づいて、フィルタリング対象の再構成サンプルに対して前記ループ復元フィルタを適用するステップと
を含む方法。
【発明の詳細な説明】
【技術分野】
【0001】
[参照による援用]
本願は、2021年9月22日に出願された米国特許出願第17/448,469号「METHOD AND APPARATUS FOR BOUNDARY HANDLING IN VIDEO CODING」に対する優先権の利益を主張するものであり、同出願は2021年5月11日に出願された米国仮出願第63/187,213号「ON LOOP RESTORATION BOUNDARY HANDLING」に対する優先権の利益を主張する。先の出願の開示全体は、その全体が参照により本明細書に組み込まれる。
【0002】
[技術分野]
本開示は、概してビデオ符号化(コーディング)に関連する実施形態を記載する。
【背景技術】
【0003】
本明細書で提供される背景説明は、本開示の文脈を概括的に提示するためのものである。本願で名前が挙がっている発明者の仕事であってその仕事がこの背景セクションに記載されている範囲におけるもの、また、他の意味で出願時に先行技術として適格でないことがありうる本記述の諸側面は、明示的にも暗黙的にも本開示に対する先行技術として認められない。
【0004】
ビデオ符号化及び復号は、動き補償を伴うインターピクチャ予測を用いて実行できる。非圧縮デジタルビデオは、一連のピクチャを含むことができ、各ピクチャは、例えば1920×1080のルミナンスサンプル及び関連するクロミナンスサンプルの空間的寸法を有する。一連のピクチャは、固定又は可変のピクチャレート(非公式にはフレームレートとしても知られる)、例えば、毎秒60ピクチャ又は60Hzのピクチャレートを有することができる。非圧縮ビデオは、特定のビットレート要件を有する。例えば、サンプル当たり8ビットの1080p60 4:2:0ビデオ(60Hzのフレームレートでの1920×1080のルミナンスサンプル解像度)は、1.5Gbit/sに近い帯域幅を必要とする。そのようなビデオの1時間は、600Gバイトを超える記憶スペースを必要とする。
【0005】
ビデオ符号化及び復号の1つの目的は、圧縮による入力ビデオ信号の冗長性の低減でありうる。圧縮は、前述の帯域幅及び/又は記憶スペースの要求を、場合によっては2桁以上も低減するのに役立つことがある。可逆圧縮及び不可逆圧縮の双方、並びにそれらの組み合わせを用いることができる。可逆圧縮とは、圧縮された元の信号から、元の信号の正確なコピーが再構成できる技術をいう。不可逆圧縮を使用する場合、再構成された信号は、元の信号と同一ではないことがありうるが、元の信号と再構成された信号との間の歪みは、再構成された信号を意図された用途のために有用にするのに十分小さい。ビデオの場合、不可逆圧縮が広く用いられている。許容される歪みの量はアプリケーションに依存し、例えば、ある種の消費者ストリーミングアプリケーションのユーザは、テレビ配信アプリケーションのユーザよりも高い歪みを許容することがある。達成可能な圧縮比は、より高い許容可能/認容可能な歪みはより高い圧縮比をもたらすことができる、ということを反映できる。
【0006】
ビデオエンコーダ及びデコーダは、例えば動き補償、変換、量子化、及びエントロピー符号化を含むいくつかの広範なカテゴリからの技術を利用することができる。
【0007】
ビデオコーデック技術は、イントラ符号化として知られる技術を含むことができる。イントラ符号化では、サンプル値は、以前に再構成された参照ピクチャからのサンプル又は他のデータを参照することなく表現される。いくつかのビデオコーデックでは、ピクチャは空間的にサンプルのブロックに分割される。サンプルの全てのブロックがイントラモードで符号化される場合、そのピクチャはイントラピクチャでありうる。イントラピクチャと、独立デコーダリフレッシュピクチャのようなその派生物は、デコーダ状態をリセットするために使用でき、よって、符号化ビデオビットストリーム及びビデオセッションにおける最初のピクチャとして、又は静止画像として使用できる。イントラブロックのサンプルを変換にかけることができ、変換係数は、エントロピー符号化の前に量子化されることができる。イントラ予測は、変換前領域におけるサンプル値を最小化する技術でありうる。場合によっては、変換後のDC値が小さく、AC係数が小さいほど、エントロピー符号化後のブロックを表すために所与の量子化ステップサイズで必要とされるビット数が少なくなる。
【0008】
例えばMPEG-2世代の符号化技術から知られているような伝統的なイントラ符号化は、イントラ予測を使用しない。しかしながら、いくつかのより新しいビデオ圧縮技術は、例えば、空間的に近傍であり、復号順で先行するデータのブロックの符号化/復号中に得られた周囲のサンプルデータ及び/又はメタデータから試みる技術を含む。そのような技法は、以下では「イントラ予測」技法と呼ばれる。少なくともいくつかの場合には、イントラ予測は再構成中の現在ピクチャからの参照データのみを使用し、参照ピクチャからの参照データは使用しないことに注意されたい。
【0009】
様々な形のイントラ予測がありうる。所与のビデオ符号化技術において、そのような技法の2つ以上が使用できる場合、使用される技法は、イントラ予測モードで符号化されることができる。ある種の場合には、モードは、サブモード及び/又はパラメータを有することができ、それらは、個別に符号化されることができ、或いは、モードコードワードに含められることができる。所与のモード/サブモード/パラメータの組み合わせのためにどのコードワードを使用するかは、イントラ予測を通して符号化効率利得に影響を与える可能性があり、コードワードをビットストリームに変換するために使用されるエントロピー符号化技術も同様に影響を与える可能性がある。
【0010】
イントラ予測のあるモードがH.264で導入され、H.265で洗練され、共同探査モデル(JEM)、多用途ビデオ符号化(VVC)、及びベンチマークセット(BMS)のようなより新しい符号化技術においてさらに洗練された。予測子ブロックは、既に利用可能なサンプルに属する近傍サンプル値を使用して形成されることができる。近傍サンプルのサンプル値が、ある方向に従って予測子ブロックにコピーされる。使用される方向への参照は、ビットストリームにおいて符号化されることができ、或いは、それ自身予測されてもよい。
【0011】
図1Aを参照すると、右下に、H.265の33個の可能な予測子方向(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】
イントラピクチャ予測は、信号伝達(シグナリング)される予測方向によって充当される近傍サンプルから参照サンプル値をコピーすることによって機能できる。例えば、符号化ビデオビットストリームは、このブロックについて、矢印(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から予測子を計算する際の丸め誤差のために、不可逆であることがある。
【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は、1つ以上の参照ピクチャに関連付けられたメタデータから、例えば(復号順で)最新の参照ピクチャから、A0、A1、及びB0、B1、B2(それぞれ202~206)と記される5つの周囲のサンプルのいずれかに関連付けられたMVを使用して、導出できる。H.265では、MV予測は、近傍ブロックが使用しているのと同じ参照ピクチャからの予測子を使用することができる。
【発明の概要】
【0022】
本開示の諸側面は、ビデオ符号化/復号におけるフィルタリングのための方法及び装置を提供する。いくつかの例では、ビデオコーディングのための装置は処理回路を含む。処理回路は、ループフィルタチェーンに沿った第1のノードにおける第1の再構成サンプルの第1の境界ピクセル値をバッファリングする。第1のノードは、ループ復元フィルタの前にループフィルタチェーンにおいて適用される非線形マッピングベースのフィルタに関連する。一例では、第1の境界ピクセル値は、フレーム境界におけるピクセルの値である。処理回路は、バッファリングされた第1の境界ピクセル値に基づいて、フィルタリング対象の再構成サンプルに対してループ復元フィルタを適用する。
【0023】
いくつかの例では、非線形マッピングベースのフィルタはクロスコンポーネントサンプルオフセット(cross-component sample offset、CCSO)フィルタである。いくつかの例では、非線形マッピングベースのフィルタは局所サンプルオフセット(local sample offset、LSO)フィルタである。
【0024】
いくつかの例では、第1のノードにおける第1の再構成サンプルは、非線形マッピングベースのフィルタの入力である。いくつかの例では、処理回路は、ループフィルタチェーンに沿った第2のノードにおける第2の再構成サンプルの第2の境界ピクセル値をバッファリングする。第2のノードにおける第2の再構成サンプルは、非線形マッピングベースのフィルタによって生成されたサンプルオフセットの適用の後に生成される。第2の境界ピクセル値は、フレーム境界におけるピクセルの値である。次いで、処理回路は、バッファリングされた第1の境界ピクセル値及びバッファリングされた第2の境界ピクセル値に基づいて、フィルタリング対象の再構成サンプルに対してループ復元フィルタを適用できる。
【0025】
一例では、処理回路は、非線形マッピングベースのフィルタによって生成されたサンプルオフセットと制約方向性強化(エンハンスメント)フィルタの出力とを組み合わせて、第2の再構成サンプルを生成する。別の例では、処理回路は、非線形マッピングベースのフィルタによって生成されたサンプルオフセットと第1の再構成サンプルとを組み合わせて、中間再構成サンプルを生成し、制約方向性強化フィルタを中間再構成サンプルに適用して第2の再構成サンプルを生成する。
【0026】
いくつかの例では、処理回路は、ループフィルタに沿った第2のノードにおける第2の再構成サンプルの第2の境界ピクセル値をバッファリングし、第2のノードにおける第2の再構成サンプルと非線形マッピングベースのフィルタによって生成されたサンプルオフセットとを組み合わせて、フィルタリング対象の再構成サンプルを生成する。第2の境界ピクセル値は、フレーム境界におけるピクセルの値である。次いで、処理回路は、バッファリングされた第1の境界ピクセル値及びバッファリングされた第2の境界ピクセル値に基づいて、フィルタリング対象の再構成サンプルに対してループ復元フィルタを適用する。
【0027】
いくつかの例では、処理回路は、デブロッキングフィルタによって生成された第2の再構成サンプルから第2の境界ピクセル値をバッファリングし、第2の再構成サンプルに対して制約方向性強化フィルタを適用して、中間再構成サンプルを生成する。第2の境界ピクセル値は、フレーム境界におけるピクセルの値である。処理回路は、中間再構成サンプルと非線形マッピングベースのフィルタによって生成されたサンプルオフセットとを組み合わせて、第1の再構成サンプルを生成する。次いで、ループ復元フィルタは、バッファリングされた第1の境界ピクセル値及びバッファリングされた第2の境界ピクセル値に基づいて適用できる。
【0028】
いくつかの例では、処理回路は、ループ復元フィルタの適用の前に、フィルタリング対象の再構成サンプルをクリッピングする。いくつかの例では、処理回路は、非線形マッピングベースのフィルタによって生成されたサンプルオフセットとの組み合わせの前に、中間再構成サンプルをクリッピングする。
【0029】
本開示の諸側面はまた、コンピュータによって実行されたときに、コンピュータにビデオ符号化/復号のための方法のいずれかを実行させる命令を記憶した非一時的なコンピュータ読み取り可能媒体を提供する。
【図面の簡単な説明】
【0030】
開示された主題のさらなる特徴、性質、及び様々な利点は、以下の詳細な説明及び添付の図面からより明白になるであろう。
【
図1A】イントラ予測モードの例示的なサブセットの概略図である。
【
図1B】例示的なイントラ予測方向の説明図である。
【
図2】一例における現在ブロック及びその周囲の空間的マージ候補の概略図である。
【
図3】ある実施形態による通信システムの簡略化されたブロック図の概略図である。
【
図4】ある実施形態による通信システム(400)の簡略化されたブロック図の概略図である。
【
図5】ある実施形態によるデコーダの簡略化されたブロック図の概略図である。
【
図6】ある実施形態によるエンコーダの簡略化されたブロック図の概略図である。
【
図7】別の実施形態によるエンコーダのブロック図を示す。
【
図8】別の実施形態によるデコーダのブロック図を示す。
【
図9】本開示の実施形態によるフィルタ形状の例を示す。
【
図10A】本開示の実施形態による勾配を計算するために使用されるサブサンプリングされた位置の例を示す。
【
図10B】本開示の実施形態による勾配を計算するために使用されるサブサンプリングされた位置の例を示す。
【
図10C】本開示の実施形態による勾配を計算するために使用されるサブサンプリングされた位置の例を示す。
【
図10D】本開示の実施形態による勾配を計算するために使用されるサブサンプリングされた位置の例を示す。
【
図11A】本開示の実施形態による仮想境界フィルタリングプロセスの例を示す。
【
図11B】本開示の実施形態による仮想境界フィルタリングプロセスの例を示す。
【
図12A】本開示の実施形態による、仮想境界における対称的なパディング動作の例を示す。
【
図12B】本開示の実施形態による、仮想境界における対称的なパディング動作の例を示す。
【
図12C】本開示の実施形態による、仮想境界における対称的なパディング動作の例を示す。
【
図12D】本開示の実施形態による、仮想境界における対称的なパディング動作の例を示す。
【
図12E】本開示の実施形態による、仮想境界における対称的なパディング動作の例を示す。
【
図12F】本開示の実施形態による、仮想境界における対称的なパディング動作の例を示す。
【
図13】本開示のいくつかの実施形態による、ピクチャの分割例を示す。
【
図14】いくつかの例におけるピクチャの四分木分割パターンを示す。
【
図15】本開示のある実施形態によるクロスコンポーネントフィルタを示す。
【
図16】本開示のある実施形態によるフィルタ形状の例を示す。
【
図17】本開示のいくつかの実施形態によるクロスコンポーネントフィルタのためのシンタックスの例を示す。
【
図18A】本開示の実施形態による、ルマサンプルに対するクロマサンプルの例示的な位置を示す。
【
図18B】本開示の実施形態による、ルマサンプルに対するクロマサンプルの例示的な位置を示す。
【
図19】本開示のある実施形態による方向探索の例を示す。
【
図20】いくつかの例における部分空間投影を示す例を示す。
【
図21】本開示のある実施形態による、複数のサンプル適応オフセット(SAO)タイプの表を示す。
【
図22】いくつかの例におけるエッジオフセットにおけるピクセル分類のためのパターンの例を示す。
【
図23】いくつかの例におけるエッジオフセットのためのピクセル分類規則のための表を示す。
【
図24】信号伝達されうるシンタックスの例を示す。
【
図25】本開示のいくつかの実施形態による、フィルタサポート領域の例を示す。
【
図26】本開示のいくつかの実施形態による、別のフィルタサポート領域の例を示す。
【
図27A】本開示のある実施形態による、81の組み合わせを有する表の一部を示す。
【
図27B】本開示のある実施形態による、81の組み合わせを有する表の一部を示す。
【
図27C】本開示のある実施形態による、81の組み合わせを有する表の一部を示す。
【
図28】一例における3つのフィルタタップの7つのフィルタ形状構成を示す。
【
図29】いくつかの例におけるループフィルタチェーンのブロック図を示す。
【
図30】非線形マッピングベースのフィルタを含むループフィルタチェーンの例を示す。
【
図31】非線形マッピングベースのフィルタを含む別のループフィルタチェーンの例を示す。
【
図32】非線形マッピングベースのフィルタを含む別のループフィルタチェーンの例を示す。
【
図33】非線形マッピングベースのフィルタを含む別のループフィルタチェーンの例を示す。
【
図34】非線形マッピングベースのフィルタを含む別のループフィルタチェーンの例を示す。
【
図35】非線形マッピングベースのフィルタを含む別のループフィルタチェーンの例を示す。
【
図36】本開示のある実施形態によるプロセスを概説するフローチャートを示す。
【
図37】ある実施形態によるコンピュータシステムの概略図である。
【発明を実施するための形態】
【0031】
図3は、本開示のある実施形態による通信システム(300)の簡略化されたブロック図を示す。通信システム(300)は、例えばネットワーク(350)を介して互いに通信することができる複数の端末デバイスを含む。例えば、通信システム(300)は、ネットワーク(350)を介して相互接続された第1の対の端末デバイス(310)及び(320)を含む。
図3の例では、第1の対の端末デバイス(310)及び(320)は、データの一方向伝送を実行する。例えば、端末デバイス(310)は、ネットワーク(350)を介した他方の端末デバイス(320)への伝送のために、ビデオデータ(例えば、端末デバイス(310)によって捕捉されたビデオピクチャのストリーム)を符号化してもよい。符号化されたビデオデータは、1つ以上の符号化ビデオビットストリームの形で伝送されることができる。端末デバイス(320)は、ネットワーク(350)から、符号化ビデオデータを受信し、符号化ビデオデータを復号してビデオピクチャを復元し、復元されたビデオデータに従ってビデオピクチャを表示してもよい。一方向データ伝送は、メディアサービスアプリケーション等において一般的でありうる。
【0032】
別の例では、通信システム(300)は、例えばビデオ会議中に発生しうる符号化されたビデオデータの双方向伝送を実行する第2の対の端末デバイス(330)及び(340)を含む。データの双方向伝送のために、一例では、端末デバイス(330)及び(340)の各端末デバイスは、ネットワーク(350)を介した、端末デバイス(330)及び(340)のうちの他方の端末デバイスへの伝送のために、ビデオデータ(例えば、端末デバイスによって捕捉されたビデオピクチャのストリーム)を符号化してもよい。端末デバイス(330)及び(340)の各端末デバイスは、端末デバイス(330)及び(340)のうちの他方の端末デバイスによって送信された符号化されたビデオデータを受信してもよく、符号化されたビデオデータを復号して、ビデオピクチャを復元し、復元されたビデオデータに従って、アクセス可能な表示デバイスにおいてビデオピクチャを表示してもよい。
【0033】
図3の例では、端末デバイス(310)、(320)、(330)及び(340)は、サーバ、パーソナルコンピュータ及びスマートフォンとして示されてもよいが、本開示の原理は、それに限定されなくてもよい。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤ、及び/又は専用のビデオ会議設備での応適用を見出す。ネットワーク(350)は、例えば有線(配線)及び/又は無線通信ネットワークを含む、端末デバイス(310)、(320)、(330)及び(340)の間で符号化されたビデオデータを伝達する任意の数のネットワークを表す。通信ネットワーク(350)は、回線交換及び/又はパケット交換チャネルにおいてデータを交換してもよい。代表的なネットワークは、電気通信ネットワーク、ローカルエリアネットワーク、広域ネットワーク及び/又はインターネットを含む。ここでの議論の目的のために、ネットワーク(350)のアーキテクチャ及びトポロジは、以下に説明しない限り、本開示の動作には重要ではないことがある。
【0034】
図4は、開示される主題のためのアプリケーションの例として、ストリーミング環境におけるビデオエンコーダ及びビデオデコーダの配置を示す。開示される主題は、例えば、ビデオ会議、デジタルTV、CD、DVD、メモリスティック等を含むデジタル媒体上の圧縮ビデオの記憶等を含む、他のビデオ対応アプリケーションにも等しく適用可能でありうる。
【0035】
ストリーミングシステムは、ビデオソース(401)、例えばデジタルカメラを含むことができ、例えば非圧縮のビデオピクチャのストリーム(402)を生成する捕捉サブシステム(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の文脈で使用されてもよい。
【0036】
電子デバイス(420)及び(430)は、他の構成要素(図示せず)を含むことができることを注意しておく。例えば、電子デバイス(420)は、ビデオデコーダ(図示せず)を含むことができ、電子デバイス(430)は、ビデオエンコーダ(図示せず)も含むことができる。
【0037】
図5は、本開示のある実施形態によるビデオデコーダ(510)のブロック図を示す。ビデオデコーダ(510)は、電子デバイス(530)に含まれることができる。電子デバイス(530)は、受信機(531)(例えば、受信回路)を含むことができる。ビデオデコーダ(510)は、
図4の例におけるビデオデコーダ(310)の代わりに使用できる。
【0038】
受信機(531)は、ビデオデコーダ(510)によって復号されるべき1つ以上の符号化ビデオシーケンスを受信してもよい。同じ又は別の実施形態において、一度に1つの符号化ビデオシーケンスであり、各符号化ビデオシーケンスの復号は、他の符号化ビデオシーケンスから独立である。符号化ビデオシーケンスは、チャネル(501)から受信されてもよく、該チャネルは、符号化されたビデオデータを記憶する記憶デバイスへのハードウェア/ソフトウェアリンクでもよい。受信機(531)は、符号化されたビデオデータを、他のデータ、例えば符号化されたオーディオデータ及び/又は補助データストリームと一緒に受信してもよく、これらのデータは、それぞれの使用エンティティ(図示せず)を転送されてもよい。受信機(531)は、符号化ビデオシーケンスを他のデータから分離することができる。ネットワークジッタ対策として、バッファメモリ(515)が、受信機(531)とエントロピーデコーダ/パーサ(520)(以下「パーサ」)との間に結合されてもよい。ある種のアプリケーションでは、バッファメモリ(515)はビデオデコーダ(510)の一部である。他のアプリケーションでは、ビデオデコーダ(510)の外部にあることができる(図示せず)。さらに他のアプリケーションでは、例えばネットワークジッタに対抗するために、ビデオデコーダ(510)の外部にバッファメモリ(図示せず)があってもよく、さらに、例えば再生タイミングを扱うために、ビデオデコーダ(510)の内部に別のバッファメモリ(515)があってもよい。受信機(531)が、十分な帯域幅及び制御可能性の記憶/転送デバイスから、或いは、アイソクロナスネットワークからデータを受信している場合は、バッファメモリ(515)は、必要とされなくてもよく、或いは、小さくてもよい。インターネットのようなベストエフォート型のパケットネットワークでの使用のためには、バッファメモリ(515)が要求されることがあり、比較的大きいことがあり、有利には適応サイズであることができ、少なくとも部分的に、ビデオデコーダ(510)の外部でオペレーティングシステム又は同様の要素(図示せず)において実装されてもよい。
【0039】
ビデオデコーダ(510)は、符号化ビデオシーケンスからシンボル(521)を再構成するためのパーサ(520)を含んでもよい。これらのシンボルのカテゴリは、ビデオデコーダ(510)の動作を管理するために使用される情報と、潜在的には、レンダーデバイス(512)(例えば表示画面)のようなレンダリングデバイスを制御するための情報とを含む。レンダリングデバイスは、
図5に示されるように、電子デバイス(530)の一体的な部分ではなく、電子デバイス(530)に結合されることができる。レンダリングデバイス(単数又は複数)のための制御情報は、補足エンハンスメント情報(Supplementary Enhancement Information)(SEIメッセージ)又はビデオユーザビリティ情報(Video Usability Information、VUI)パラメータセットフラグメント(図示せず)の形でもよい。パーサ(520)は、受信された符号化ビデオシーケンスをパースする/エントロピー復号することができる。符号化ビデオシーケンスの符号化は、ビデオ符号化技術又は標準に従うことができ、可変長符号化、ハフマン符号化、コンテキスト感受性あり又はなしの算術符号化等を含む、様々な原理に従うことができる。パーサ(520)は、符号化ビデオシーケンスから、ビデオデコーダ内のピクセルのサブグループのうちの少なくとも1つについてのサブグループパラメータのセットを、グループに対応する少なくとも1つのパラメータに基づいて、抽出することができる。サブグループは、グループオブピクチャ(Group of Pictures、GOP)、ピクチャ、タイル、スライス、マクロブロック、符号化ユニット(Coding Unit、CU)、ブロック、変換ユニット(Transform Unit、TU)、予測ユニット(Prediction Unit、PU)等を含むことができる。パーサ(520)はまた、符号化ビデオシーケンスから、変換係数、量子化器パラメータ値、動きベクトル等の情報を抽出することができる。
【0040】
パーサ(520)は、バッファメモリ(515)から受信されたビデオシーケンスに対してエントロピー復号/パース動作を実行し、それによりシンボル(521)を生成することができる。
【0041】
シンボル(521)の再構成は、符号化されたビデオピクチャ又はその諸部分のタイプ(例えば、インター及びイントラピクチャ、インター及びイントラブロック)及び他の要因に依存して、複数の異なるユニットに関わることができる。どのユニットがどのように関わるかは、符号化ビデオシーケンスからパーサ(520)によってパースされたサブグループ制御情報によって制御されることができる。パーサ(520)と下記の複数のユニットとの間のそのようなサブグループ制御情報の流れは、明確のため、描かれていない。
【0042】
既に述べた機能ブロックのほかに、ビデオデコーダ(510)は、以下に説明するように、概念的に、いくつかの機能ユニットに分割できる。商業的制約の下で機能する実際的な実装では、これらのユニットの多くは互いに密接に相互作用し、少なくとも部分的に互いに統合されることができる。しかしながら、開示される主題を記述する目的のためには、下記の機能ユニットへの概念的な細分が適切である。
【0043】
第1のユニットは、スケーラ/逆変換ユニット(551)である。スケーラ/逆変換ユニット(551)は、パーサ(520)から、量子化された変換係数及び制御情報をシンボル(単数又は複数)(521)として受信する。制御情報は、どの変換を使用するか、ブロックサイズ、量子化係数、量子化スケーリング行列等を含む。スケーラ/逆変換ユニット(551)は、集計器(555)に入力できるサンプル値を含むブロックを出力することができる。
【0044】
場合によっては、スケーラ/逆変換(551)の出力サンプルは、イントラ符号化されたブロック、すなわち、以前に再構成されたピクチャからの予測情報を使用していないが、現在ピクチャの、以前に再構成された部分からの予測情報を使用することができるブロックに関することができる。そのような予測情報は、イントラピクチャ予測ユニット(552)によって提供されることができる。場合によっては、イントラピクチャ予測ユニット(552)は、現在ピクチャバッファ(558)から取ってきた、周囲の既に再構成された情報を使用して、再構成中のブロックと同じサイズ及び形状のブロックを生成する。現在ピクチャバッファ(558)は、例えば、部分的に再構成された現在ピクチャ及び/又は完全に再構成された現在ピクチャをバッファリングする。集計器(555)は、場合によっては、サンプル毎に、イントラ予測ユニット(552)が生成した予測情報を、スケーラ/逆変換ユニット(551)によって提供される出力サンプル情報に加算する。
【0045】
他の場合には、スケーラ/逆変換ユニット(551)の出力サンプルは、インター符号化され、潜在的には動き補償されたブロックに関することができる。そのような場合、動き補償予測ユニット(553)は、予測のために使用されるサンプルを取ってくるために参照ピクチャメモリ(557)にアクセスすることができる。取ってきたサンプルを、ブロックに関するシンボル(521)に従って動き補償した後、これらのサンプルは、集計器(555)によってスケーラ/逆変換ユニットの出力(この場合、残差サンプル又は残差信号と呼ばれる)に加算されて、それにより出力サンプル情報を生成することができる。動き補償ユニット(553)が予測サンプルを取ってくる参照ピクチャメモリ(557)内のアドレスは、シンボル(521)の形で動き補償ユニット(553)に利用可能な動きベクトルによって制御できる。該シンボルは、例えばX、Y、及び参照ピクチャ成分を有することができる。動き補償は、サンプル以下の正確な動きベクトルが使用されるときの参照ピクチャメモリ(557)から取ってこられるサンプル値の補間、動きベクトル予測機構等を含むことができる。
【0046】
集計器(555)の出力サンプルは、ループフィルタユニット(556)内で様々なループフィルタリング技法にかけられることができる。ビデオ圧縮技術は、ループ内フィルタ技術を含むことができる。ループ内フィルタ技術は、符号化ビデオシーケンス(符号化されたビデオビットストリームとも呼ばれる)に含まれるパラメータによって制御され、パーサ(520)からのシンボル(521)としてループフィルタユニット(556)に利用可能にされるが、符号化されたピクチャ又は符号化されたビデオシーケンスの(復号順で)前の部分の復号中に得られたメタ情報に応答するとともに、以前に再構成されループフィルタリングされたサンプル値に応答することもできる。
【0047】
ループフィルタユニット(556)の出力はサンプルストリームであることができ、これは、レンダーデバイス(512)に出力されることができ、また将来のインターピクチャ予測において使用するために参照ピクチャメモリ(557)に記憶されることができる。
【0048】
符号化されたピクチャは、いったん完全に再構成されると、将来の予測のための参照ピクチャとして使用できる。例えば、現在ピクチャに対応する符号化されたピクチャが完全に再構成され、該符号化されたピクチャが(例えば、パーサ(520)によって)参照ピクチャとして同定されると、現在ピクチャバッファ(558)は参照ピクチャメモリ(557)の一部となることができ、後続の符号化されたピクチャの再構成を開始する前に、新鮮な現在ピクチャバッファが再割り当てされることができる。
【0049】
ビデオデコーダ(510)は、ITU-T勧告H.265のような標準における所定のビデオ圧縮技術に従って復号動作を実行することができる。符号化ビデオシーケンスはビデオ圧縮技術又は標準のシンタックス及びビデオ圧縮技術又は標準において文書化されているプロファイルに従うという意味で、符号化されたビデオシーケンスは、使用されているビデオ圧縮技術又は標準によって規定されたシンタックスに準拠することができる。具体的には、プロファイルはビデオ圧縮技術又は標準において利用可能な全てのツールから、そのプロファイルのもとでの使用のためにそれだけが利用可能なツールとして、ある種のツールを選択することができる。準拠のためにはまた、符号化ビデオシーケンスの複雑さが、ビデオ圧縮技術又は標準のレベルによって定義される範囲内にあることも必要であることがある。いくつかの場合には、レベルは、最大ピクチャサイズ、最大フレームレート、最大再構成サンプルレート(例えば、毎秒メガサンプルの単位で測られる)、最大参照ピクチャサイズ等を制約する。レベルによって設定された限界は、場合によっては、符号化ビデオシーケンスにおいて信号伝達される、HRDバッファ管理のための仮想参照デコーダ(Hypothetical Reference Decoder、HRD)仕様及びメタデータを通じてさらに制約されることができる。
【0050】
ある実施形態において、受信機(531)は、符号化されたビデオとともに追加の(冗長な)データを受信してもよい。追加データは、符号化されたビデオシーケンス(単数又は複数)の一部として含まれていてもよい。追加データは、データを適正に復号するため、及び/又は元のビデオデータをより正確に再構成するために、ビデオデコーダ(510)によって使用されてもよい。追加データは、例えば、時間的、空間的、又は信号対雑音比(SNR)エンハンスメント層、冗長スライス、冗長ピクチャ、前方誤り訂正符号等の形でありうる。
【0051】
図6は、本開示のある実施形態によるビデオエンコーダ(603)のブロック図を示している。ビデオエンコーダ(603)は、電子デバイス(620)に含まれる。電子デバイス(620)は、送信機(640)(例えば、送信回路)を含む。ビデオエンコーダ(603)は、
図4の例におけるビデオエンコーダ(403)の代わりに使用できる。
【0052】
ビデオエンコーダ(603)は、ビデオエンコーダ(603)によって符号化されるべきビデオ画像を捕捉することができるビデオソース(601)(これは
図6の例では電子デバイス(620)の一部ではない)からビデオサンプルを受信することができる。別の例では、ビデオソース(601)は、電子デバイス(620)の一部である。
【0053】
ビデオソース(601)は、任意の好適なビット深さ(例えば、8ビット、10ビット、12ビット、…)、任意の色空間(例えば、BT.601 YCrCB、RGB、…)及び任意の好適なサンプリング構造(例えば、YCrCb 4:2:0、YCrCb 4:4:4)でありうるデジタルビデオサンプルストリームの形で、ビデオエンコーダ(603)によって符号化されるべきソースビデオシーケンスを提供することができる。メディアサービスシステムにおいては、ビデオソース(601)は、事前に準備されたビデオを記憶している記憶デバイスでもよい。ビデオ会議システムにおいては、ビデオソース(601)は、ローカルでの画像情報をビデオシーケンスとして捕捉するカメラでもよい。ビデオデータは、シーケンスで見たときに動きを付与する複数の個々のピクチャとして提供されてもよい。ピクチャ自体は、ピクセルの空間的アレイとして編成されてもよく、各ピクセルは、使用中のサンプリング構造、色空間等に依存して、1つ以上のサンプルを含むことができる。当業者は、ピクセルとサンプルとの間の関係を容易に理解することができる。下記の説明は、サンプルに焦点を当てる。
【0054】
ある実施形態によれば、ビデオエンコーダ(603)は、ソースビデオシーケンスのピクチャを、リアルタイムで或いはアプリケーションによって要求される任意の他の時間的制約の下で、符号化及び圧縮して、符号化ビデオシーケンス(643)にすることができる。適切な符号化速度を施行することは、コントローラ(650)の1つの機能である。いくつかの実施形態では、コントローラ(650)は、以下に記載されるような他の機能ユニットを制御し、該他の機能ユニットに機能的に結合される。かかる結合は、明確のために描かれていない。コントローラ(650)によって設定されるパラメータは、レート制御に関連するパラメータ(ピクチャスキップ、量子化器、レート‐歪み最適化技法のラムダ値、…)、ピクチャサイズ、グループオブピクチャ(GOP)レイアウト、最大動きベクトル探索範囲等を含むことができる。コントローラ(650)は、ある種のシステム設計のために最適化されたビデオエンコーダ(603)に関する他の好適な機能を有するように構成できる。
【0055】
いくつかの実施形態では、ビデオエンコーダ(603)は、符号化ループにおいて動作するように構成される。思い切って単純化した説明として、一例では、符号化ループは、ソース符号化器(630)(例えば、符号化されるべき入力ピクチャと参照ピクチャ(単数又は複数)に基づいてシンボルストリームのようなシンボルを生成することを受け持つ)と、ビデオエンコーダ(603)に埋め込まれた(ローカル)デコーダ(633)とを含むことができる。デコーダ(633)は、(リモートの)デコーダも生成するであろうのと同様の仕方でサンプルデータを生成するよう前記シンボルを再構成する(開示される主題において考慮されるビデオ圧縮技術では、シンボルと符号化ビデオビットストリームとの間のどの圧縮も無損失である)。再構成されたサンプルストリーム(サンプルデータ)は、参照ピクチャメモリ(634)に入力される。シンボルストリームの復号は、デコーダ位置(ローカルかリモートか)によらずビット正確な結果をもたらすので、参照ピクチャメモリ(634)の内容もローカルエンコーダとリモートエンコーダの間でビット正確である。言い換えると、エンコーダの予測部は、デコーダが復号中に予測を使用するときに「見る」のとまったく同じサンプル値を参照ピクチャサンプルとして「見る」。参照ピクチャ同期性のこの基本原理(及び、例えば、チャネルエラーのために同期性が維持できない場合の結果として生じるドリフト)は、いくつかの関連技術においても使用される。
【0056】
「ローカル」デコーダ(633)の動作は、
図5との関連で既に上記で詳細に述べた「リモート」デコーダ、例えばビデオデコーダ(410)の動作と同じでもよい。しかしながら、簡単に
図5も参照すると、シンボルが利用可能であり、エントロピー符号化器(645)及びパーサ(420)による、シンボルの符号化ビデオシーケンスへの符号化/復号が可逆でありうるので、バッファメモリ(415)及びパーサ(420)を含むビデオデコーダ(410)のエントロピー復号部は、ローカルデコーダ(633)においては完全には実装されなくてもよい。
【0057】
この時点で行なうことができる観察は、デコーダ内に存在するパース/エントロピー復号を除くどのデコーダ技術も、対応するエンコーダ内で実質的に同一の機能的形態で存在する必要があることである。このため、開示される主題はデコーダ動作に焦点を当てる。エンコーダ技術の記述は、包括的に記述されるデコーダ技術の逆であるため、省略することができる。ある種の領域においてのみ、より詳細な説明が必要であり、以下に提供される。
【0058】
動作中、いくつかの例では、ソース符号化器(630)は、「参照ピクチャ」として指定された、ビデオシーケンスからの1つ以上の以前に符号化されたピクチャを参照して、入力ピクチャを予測的に符号化する、動き補償された予測符号化を実行することができる。このようにして、符号化エンジン(632)は、入力ピクチャのピクセルブロックと、入力ピクチャに対する予測参照として選択されうる参照ピクチャ(単数又は複数)のピクセルブロックとの間の差分を符号化する。
【0059】
ローカルビデオデコーダ(633)は、ソース符号化器(630)によって生成されたシンボルに基づいて、参照ピクチャとして指定されうるピクチャの符号化されたビデオデータを復号することができる。符号化エンジン(632)の動作は、有利には、損失のあるプロセスでありうる。符号化されたビデオデータがビデオデコーダ(
図6には示さず)で復号されうるとき、再構成されたビデオシーケンスは、典型的には、いくつかのエラーを伴うソースビデオシーケンスの複製でありうる。ローカルビデオデコーダ(633)は、ビデオデコーダによって参照ピクチャに対して実行されうる復号プロセスを複製し、再構成された参照ピクチャを参照ピクチャキャッシュ(634)に格納させることができる。このようにして、ビデオエンコーダ(603)は、遠端のビデオデコーダによって得られるであろう再構成された参照ピクチャとしての共通の内容を(伝送エラーがなければ)有する再構成された参照ピクチャのコピーを、ローカルに記憶することができる。
【0060】
予測器(635)は、符号化エンジン(632)について予測探索を実行することができる。すなわち、符号化されるべき新しいピクチャについて、予測器(635)は、新しいピクチャのための適切な予測参照として機能しうるサンプルデータ(候補参照ピクセルブロックとして)又はある種のメタデータ、例えば参照ピクチャ動きベクトル、ブロック形状等を求めて、参照ピクチャメモリ(634)を探索することができる。予測器(635)は、適切な予測参照を見出すために、サンプルブロック/ピクセルブロック毎に(on a sample block-by-pixel block basis)動作しうる。場合によっては、予測器(635)によって得られた検索結果によって決定されるところにより、入力ピクチャは、参照ピクチャメモリ(634)に記憶された複数の参照ピクチャから引き出された予測参照を有することができる。
【0061】
コントローラ(650)は、例えば、ビデオデータを符号化するために使用されるパラメータ及びサブグループパラメータの設定を含め、ソース符号化器(630)の符号化動作を管理してもよい。
【0062】
上記の機能ユニット全ての出力は、エントロピー符号化器(645)におけるエントロピー符号化を受けることができる。エントロピー符号化器(645)は、ハフマン符号化、可変長符号化、算術符号化等といった技術に従ってシンボルを無損失圧縮することによって、様々な機能ユニットによって生成されたシンボルを符号化ビデオシーケンスに変換する。
【0063】
送信機(640)は、エントロピー符号化器(645)によって生成される符号化ビデオシーケンスをバッファに入れて、通信チャネル(660)を介した送信のために準備することができる。通信チャネル(660)は、符号化されたビデオデータを記憶する記憶デバイスへのハードウェア/ソフトウェアリンクであってもよい。送信機(640)は、ビデオ符号化器(630)からの符号化されたビデオデータを、送信されるべき他のデータ、例えば符号化されたオーディオデータ及び/又は補助データストリーム(ソースは図示せず)とマージすることができる。
【0064】
コントローラ(650)は、ビデオエンコーダ(603)の動作を管理してもよい。符号化の間、コントローラ(650)は、それぞれの符号化されたピクチャに、ある符号化ピクチャタイプを割り当てることができる。符号化ピクチャタイプは、それぞれのピクチャに適用されうる符号化技術に影響しうる。例えば、ピクチャはしばしば、以下のピクチャタイプのうちの1つとして割り当てられることがある。
【0065】
イントラピクチャ(Iピクチャ)は、予測のソースとしてシーケンス内の他のピクチャを使用せずに、符号化され、復号されうるものでありうる。いくつかのビデオコーデックは、例えば、独立デコーダリフレッシュ(Independent Decoder Refresh、「IDR」)ピクチャを含む、異なるタイプのイントラピクチャを許容する。当業者は、Iピクチャのこれらの変形、並びにそれらのそれぞれの用途及び特徴を認識する。
【0066】
予測ピクチャ(Pピクチャ)は、各ブロックのサンプル値を予測するために、最大で1つの動きベクトル及び参照インデックスを用いるイントラ予測又はインター予測を用いて符号化及び復号されうるものでありうる。
【0067】
双方向予測ピクチャ(Bピクチャ)は、各ブロックのサンプル値を予測するために、最大で2つの動きベクトル及び参照インデックスを用いるイントラ予測又はインター予測を用いて符号化及び復号されうるものでありうる。同様に、マルチ予測ピクチャは、単一のブロックの再構成のために、3つ以上の参照ピクチャ及び関連するメタデータを使用することができる。
【0068】
ソースピクチャは、通常では、空間的に複数のサンプルブロック(例えば、それぞれ4×4、8×8、4×8、又は16×16サンプルのブロック)に分割され、ブロック毎に符号化されうる。ブロックは、ブロックのそれぞれのピクチャに適用される符号化割り当てによって決定されるところにより、他の(既に符号化された)ブロックを参照して予測的に符号化されうる。例えば、Iピクチャのブロックは、非予測的に符号化されてもよく、或いは、同じピクチャの既に符号化されたブロックを参照して予測的に符号化されてもよい(空間的予測又はイントラ予測)。Pピクチャのピクセルブロックは、以前に符号化された1つの参照ピクチャを参照して、空間的予測を介して或いは時間的予測を介して予測的に符号化されてもよい。Bピクチャのブロックは、1つ又は2つの以前に符号化された参照ピクチャを参照して、空間的予測を介して或いは時間的予測を介して予測的に符号化されてもよい。
【0069】
ビデオエンコーダ(603)は、ITU-T勧告H.265等の所定のビデオ符号化技術又は標準に従って符号化動作を実行することができる。その動作において、ビデオエンコーダ(603)は、入力ビデオシーケンスにおける時間的及び空間的冗長性を活用する予測符号化動作を含む、様々な圧縮動作を実行することができる。よって、符号化されたビデオデータは、使用されるビデオ符号化技術又は標準によって指定されるシンタックスに準拠しうる。
【0070】
ある実施形態において、送信機(640)は、符号化されたビデオと一緒に追加データを送信してもよい。ソース符号化器(630)は、符号化ビデオシーケンスの一部としてそのようなデータを含めてもよい。追加データは、時間的/空間的/SNRエンハンスメント層、冗長ピクチャ及びスライスのような他の形の冗長データ、SEIメッセージ、VUIパラメータセットフラグメント等を含んでいてもよい。
【0071】
ビデオは、時間的シーケンスにおいて複数のソースピクチャ(ビデオピクチャ)として捕捉されてもよい。イントラピクチャ予測(しばしば、イントラ予測と略される)は、所与のピクチャにおける空間的相関を利用し、インターピクチャ予測は、ピクチャ間の(時間的又は他の)相関を利用する。一例では、現在ピクチャと呼ばれる符号化/復号対象の特定のピクチャは、ブロックに分割される。現在ピクチャ内のブロックが、ビデオにおける、前に符号化され、且つ、まだバッファに入れられている参照ピクチャ内の参照ブロックに類似する場合、現在ピクチャ内のそのブロックは、動きベクトルと呼ばれるベクトルによって符号化できる。動きベクトルは、参照ピクチャ内の参照ブロックを指し、複数の参照ピクチャが使用される場合には、参照ピクチャを同定する第3の次元を有することができる。
【0072】
いくつかの実施形態において、インターピクチャ予測において双予測技術が使用できる。双予測技術によれば、いずれもビデオにおいて現在ピクチャより復号順で先行する(ただし、表示順では、それぞれ過去及び将来でもよい)第1の参照ピクチャ及び第2の参照ピクチャのような2つの参照ピクチャが使用される。現在ピクチャ内のブロックは、第1の参照ピクチャ内の第1の参照ブロックを指す第1の動きベクトルと、第2の参照ピクチャ内の第2の参照ブロックを指す第2の動きベクトルとによって符号化できる。ブロックは、第1の参照ブロックと第2の参照ブロックの組み合わせによって予測できる。
【0073】
さらに、符号化効率を改善するために、インターピクチャ予測においてマージモード技法が使用できる。
【0074】
本開示のいくつかの実施形態によれば、インターピクチャ予測及びイントラピクチャ予測等の予測は、ブロックの単位で実行される。例えば、HEVC標準によれば、ビデオピクチャのシーケンスにおけるピクチャは、圧縮のために符号化ツリーユニット(CTU)に分割され、ピクチャにおけるそれらのCTUは、64×64ピクセル、32×32ピクセル、又は16×16ピクセル等の同じサイズを有する。一般に、CTUは、1つのルマCTB及び2つのクロマCTBである3つの符号化ツリーブロック(CTB)を含む。各CTUは、再帰的に、1つ以上の符号化ユニット(CU)に四分木分割されていくことができる。例えば、64×64ピクセルのCTUは、64×64ピクセルの1つのCU、又は32×32ピクセルの4つのCU、又は16×16ピクセルの16個のCUに分割されることができる。一例では、各CUは、インター予測タイプ又はイントラ予測タイプのような、そのCUについての予測タイプを決定するために解析される。CUは時間的及び/又は空間的予測可能性に依存して、1つ以上の予測ユニット(PU)に分割される。一般に、各PUはルマ予測ブロック(PB)及び2つのクロマPBを含む。ある実施形態では、コーディング(符号化/復号)における予測動作は、予測ブロックの単位で実行される。予測ブロックの例としてルマ予測ブロックを用いると、予測ブロックは、8×8ピクセル、16×16ピクセル、8×16ピクセル、16×8ピクセル等、ピクセルについての値(例えば、ルマ値)の行列を含む。
【0075】
図7は、本開示の別の実施形態によるビデオエンコーダ(703)の図を示す。ビデオエンコーダ(703)は、ビデオピクチャのシーケンス内の現在ビデオピクチャ内のサンプル値の処理ブロック(例えば、予測ブロック)を受信し、処理ブロックを、符号化ビデオシーケンスの一部である符号化されたピクチャに符号化するように構成される。一例では、ビデオエンコーダ(703)は、
図4の例におけるビデオエンコーダ(403)の代わりに使用される。
【0076】
HEVCの例では、ビデオエンコーダ(703)は、8×8サンプル等の予測ブロックのような処理ブロックについてサンプル値の行列を受信する。ビデオエンコーダ(703)は、処理ブロックが、イントラモード、インターモード、又は双予測モードのどれを使用して、最もよく符号化されるかを、例えばレート‐歪み最適化を使用して、判別する。処理ブロックがイントラモードで符号化される場合、ビデオエンコーダ(703)は、処理ブロックを符号化されたピクチャに符号化するためにイントラ予測技法を使用してもよい。処理ブロックがインターモード又は双予測モードで符号化される場合、ビデオエンコーダ(703)は、処理ブロックを符号化されたピクチャに符号化するために、それぞれ、インター予測技法又は双予測技法を使用してもよい。ある種のビデオ符号化技術では、マージモード(merge mode)は、動きベクトルが1つ以上の動きベクトル予測子から導出されるが前記予測子の外の符号化された動きベクトル成分の利益のない、インターピクチャ予測サブモードでありうる。ある種の他のビデオ符号化技術では、対象ブロックに適用可能な動きベクトル成分が存在してもよい。一例では、ビデオエンコーダ(703)は、処理ブロックのモードを決定するためのモード決定モジュール(図示せず)等の他のコンポーネントを含む。
【0077】
図7の例では、ビデオエンコーダ(703)は、インターエンコーダ(730)、イントラエンコーダ(722)、残差計算器(723)、スイッチ(726)、残差エンコーダ(724)、全般コントローラ(721)、及びエントロピー符号化器(725)を、
図7に示されるように一緒に結合されて含む。
【0078】
インターエンコーダ(730)は、現在ブロック(例えば、処理ブロック)のサンプルを受信し、該ブロックを参照ピクチャ内の1つ以上の参照ブロック(例えば、以前のピクチャ及び後のピクチャ内のブロック)と比較し、インター予測情報(例えば、インター符号化技術による冗長情報の記述、動きベクトル、マージモード情報)を生成し、該インター予測情報に基づいて、任意の好適な技法を使用してインター予測結果(例えば、予測されたブロック)を計算するように構成される。いくつかの例では、参照ピクチャは、符号化されたビデオ情報に基づいて復号された、復号された参照ピクチャである。
【0079】
イントラエンコーダ(722)は、現在ブロック(例えば、処理ブロック)のサンプルを受信し、場合によっては、該ブロックを、同じピクチャ内で既に符号化されているブロックと比較し、変換後に量子化された係数を生成し、場合によっては、イントラ予測情報(例えば、1つ以上のイントラ符号化技法によるイントラ予測方向情報)も生成するように構成される。一例では、イントラエンコーダ(722)はまた、該イントラ予測情報及び同じピクチャ内の参照ブロックに基づいて、イントラ予測結果(例えば、予測されたブロック)を計算する。
【0080】
全般コントローラ(721)は、全般制御データを決定し、全般制御データに基づいてビデオエンコーダ(703)の他のコンポーネントを制御するように構成される。一例では、全般コントローラ(721)は、ブロックのモードを決定し、そのモードに基づいて制御信号をスイッチ(726)に提供する。例えば、モードがイントラモードである場合、全般コントローラ(721)は、残差計算器(723)による使用のためにイントラモードの結果を選択するようスイッチ(726)を制御し、イントラ予測情報を選択し、イントラ予測情報をビットストリームに含めるようエントロピーエンコーダ(725)を制御する。モードがインターモードである場合、全般コントローラ(721)は、残差計算器(723)による使用のためにインター予測の結果を選択するようスイッチ(726)を制御し、インター予測情報を選択し、インター予測情報をビットストリームに含めるようエントロピーエンコーダ(725)を制御する。
【0081】
残差計算器(723)は、受信されたブロックと、イントラエンコーダ(722)又はインターエンコーダ(730)から選択された予測結果との差(残差データ)を計算するように構成される。残差エンコーダ(724)は、残差データに基づいて、残差データを符号化して変換係数を生成するように構成される。一例では、残差エンコーダ(724)は、残差データを空間領域から周波数領域に変換し、変換係数を生成するように構成される。次いで、変換係数は、量子化処理にかけられ、量子化された変換係数を得る。様々な実施形態において、ビデオエンコーダ(703)は、残差デコーダ(728)をも含む。残差デコーダ(728)は、逆変換を実行して、復号された残差データを生成するように構成される。復号された残差データは、イントラエンコーダ(722)及びインターエンコーダ(730)によって好適に使用されることができる。例えば、インターエンコーダ(730)は、復号された残差データ及びインター予測情報に基づいて、復号されたブロックを生成することができ、イントラエンコーダ(722)は、復号された残差データ及びイントラ予測情報に基づいて、復号されたブロックを生成することができる。復号されたブロックは、復号されたピクチャを生成するために好適に処理され、復号されたピクチャは、メモリ回路(図示せず)内にバッファリングされ、いくつかの例では参照ピクチャとして使用されることができる。
【0082】
エントロピーエンコーダ(725)は、符号化されたブロックを含むようにビットストリームをフォーマットするように構成される。エントロピーエンコーダ(725)は、HEVC標準のような好適な標準に従って様々な情報を含めるように構成される。一例では、エントロピーエンコーダ(725)は、全般制御データ、選択された予測情報(例えば、イントラ予測情報又はインター予測情報)、残差情報、及び他の好適な情報をビットストリーム内に含めるように構成される。開示される主題によれば、インターモード又は双予測モードのいずれかのマージサブモードにおいてブロックを符号化する場合は、残差情報は存在しないことを注意しておく。
【0083】
図8は、本開示の別の実施形態によるビデオデコーダ(810)の図を示す。ビデオデコーダ(810)は、符号化されたビデオシーケンスの一部である符号化されたピクチャを受信し、符号化されたピクチャを復号して、再構成されたピクチャを生成するように構成される。一例では、ビデオデコーダ(810)は、
図4の例におけるビデオデコーダ(410)の代わりに使用される。
【0084】
図8の例では、ビデオデコーダ(810)は、エントロピーデコーダ(871)、インターデコーダ(880)、残差デコーダ(873)、再構成モジュール(874)、及びイントラデコーダ(872)が
図8に示されるように一緒に結合されたものを含む。
【0085】
エントロピーデコーダ(871)は、符号化されたピクチャから、その符号化されたピクチャが構成されるシンタックスエレメントを表すある種のシンボルを再構成するように構成されることができる。そのようなシンボルは、例えば、ブロックが符号化されるモード(例えば、イントラモード、インターモード、双予測モード、マージサブモード又は別のサブモードにおける後者の2つ)、イントラデコーダ(872)又はインターデコーダ(880)によってそれぞれ予測のために使用されるある種のサンプル又はメタデータを同定することができる予測情報(例えば、イントラ予測情報又はインター予測情報等)、例えば量子化された変換係数の形の残差情報等を含むことができる。一例では、予測モードがインター又は双予測モードである場合、インター予測情報がインターデコーダ(880)に提供される。予測タイプがイントラ予測タイプである場合には、イントラ予測情報がイントラデコーダ(872)に提供される。残差情報は、逆量子化を受けることができ、残差デコーダ(873)に提供される。
【0086】
インターデコーダ(880)は、インター予測情報を受信し、該インター予測情報に基づいてインター予測結果を生成するように構成される。
【0087】
イントラデコーダ(872)は、イントラ予測情報を受信し、該イントラ予測情報に基づいて予測結果を生成するように構成される。
【0088】
残差デコーダ(873)は、逆量子化を実行して量子化解除された変換係数を抽出し、量子化解除された変換係数を処理して、残差を周波数領域から空間領域に変換するように構成される。残差デコーダ(873)はまた、ある種の制御情報(量子化器パラメータ(QP)を含む)をも必要とすることがあり、その情報は、エントロピーデコーダ(871)によって提供されてもよい(これは、低ボリュームの制御情報のみであるため、データ経路は描かれていない)。
【0089】
再構成モジュール(874)は、空間領域において、残差デコーダ(873)によって出力される残差と、予測結果(場合に応じてイントラ又はインター予測モジュールによって出力される)とを組み合わせて、再構成されたブロックを形成するように構成され、該再構成されたブロックは再構成されたピクチャの一部であってもよく、該再構成されたピクチャは再構成されたビデオの一部であってもよい。視覚的品質を改善するためにデブロッキング動作等の他の好適な動作が実行されることができることを注意しておく。
【0090】
なお、ビデオエンコーダ(403)、(603)、(703)、及びビデオデコーダ(410)、(510)、(810)は、任意の好適な技法を用いて実装できる。ある実施形態では、ビデオエンコーダ(403)、(603)、(703)及びビデオデコーダ(410)、(510)、(810)は、1つ以上の集積回路を使用して実装できる。別の実施形態では、ビデオエンコーダ(403)、(603)、(703)、及びビデオデコーダ(410)、(510)、(810)は、ソフトウェア命令を実行する1つ以上のプロセッサを使用して実装できる。
【0091】
本開示の諸側面は、ビデオ符号化/復号のためのフィルタリング技法を提供する。
【0092】
アーチファクトを低減するために、ブロックベースのフィルタ適応を有する適応ループフィルタ(ALF)を、エンコーダ/デコーダによって適用することができる。ルマ成分については、複数のフィルタ(例えば、25個のフィルタ)のうちの1つを、例えば、局所的な勾配の方向及び活性に基づいて、4×4ルマブロックについて選択することができる。
【0093】
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)が使用できる。
【0094】
図9を参照すると、いくつかの例において、ダイヤモンドフィルタ形状を有する2つのALF(910)~(911)が使用される。5×5ダイヤモンド形状のフィルタ(910)はクロマ成分(クロマブロック、クロマCB等)について、7×7ダイヤモンド形状のフィルタ(911)はルマ成分(ルマブロック、ルマCB等)について適用できる。ALFでは、他の適切な形状及びサイズが使用できる。例えば、9×9のダイヤモンド形状のフィルタが使用できる。
【0095】
それらの値(例えば、(910)のC0~C6又は(920)のC0~C12)によって示される位置におけるフィルタ係数は、ゼロでない場合がある。さらに、ALFがクリッピング機能を含む場合、それらの位置でのクリッピング値はゼロでない可能性がある。
【0096】
ルマ成分のブロック分類については、4×4ブロック(又はルマブロック、ルマCB)は複数(例えば、25)のクラスのうちの1つとして範疇分け又は分類できる。分類インデックスCは、方向性パラメータと、活性値Aの量子化された値
【数1】
とに基づいて、式(1)を用いて導出できる。
【数2】
方向性パラメータD及び量子化された値
【数3】
を計算するために、垂直方向、水平方向、及び2つの対角方向(例えば、d1及びd2)のそれぞれの勾配g
v、g
h、g
d1、及びg
d2が、1-Dラプラシアンを使用して以下のように計算できる。
【数4】
ここで、インデックスi及びjは4×4ブロック内の左上サンプルの座標を指し、R(k,l)は座標(k,l)における再構成されたサンプルを示す。方向(例えば、d1及びd2)は、2つの対角方向を指すことができる。
【0097】
上述のブロック分類の複雑さを低減するために、サブサンプリングされた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を計算するためのサブサンプリング位置を示す。
【0098】
水平方向及び垂直方向の勾配g
v及びg
hのうちの最大値g
h,v
max及び最小値g
h,v
minは次のように設定できる。
【数5】
2つの対角方向の勾配g
d1とg
d2のうちの最大値g
d1,d2
max及び最小値g
d1,d2
minは次のように設定できる:
【数6】
方向性パラメータDは、上記の値及び2つの閾値t
1及びt
2に基づき、以下のように導出できる。
ステップ1. (1)g
h,v
max≦t_
1・g
h,v
min及び(2)g
d1,d2
max≦t
1・g
d1,d2
minが真であれば、Dは0に設定される。
ステップ2. g
h,v
max/g
h,v
min>g
d1,d2
max/g
d1,d2
minであれば、ステップ3に進み、そうでなければステップ4に進む。
ステップ3. g
h,v
max>t
2・g
h,v
minであれば、Dは2に設定され、そうでなければDは1に設定される。
ステップ4. g
d1,d2
max>t
2・g
d1,d2
minであれば、Dは4に設定され、そうでなければDは3に設定される。
【0099】
活性値Aは次のように計算できる:
【数7】
Aはさらに、0~4の範囲(両端含む)に量子化されることができ、量子化された値は
【数8】
と記される。
【0100】
ピクチャ内のクロマ成分についてはブロック分類が適用されないため、各クロマ成分についてALF係数の単一の集合を適用できる。
【0101】
幾何学的変換が、フィルタ係数及び対応するフィルタクリッピング値(クリッピング値とも称される)に適用されることができる。ブロック(例えば、4×4ルマブロック)をフィルタリングする前に、例えばそのブロックについて計算された勾配値(例えば、gv、gh、gd1、及び/又はgd2)に依存して、回転又は対角及び垂直反転等の幾何学的変換を、フィルタ係数f(k,l)及び対応するフィルタクリッピング値c(k,l)に適用できる。フィルタ係数f(k,l)及び対応するフィルタクリッピング値c(k,l)に適用される幾何学的変換は、フィルタによってサポートされる領域内のサンプルに幾何学的変換を適用することと等価でありうる。幾何学的変換は、それぞれの方向性を整列させることにより、ALFが適用される異なるブロックをより類似させることができる。
【0102】
対角反転、垂直反転、及び回転を含む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】
【0103】
いくつかの実施形態では、ALFフィルタパラメータは、ピクチャについて適応パラメータセット(APS)において信号伝達される。APSでは、ルマフィルタ係数及びクリッピング値インデックスの1つ以上の集合(最大で25個の集合)が信号伝達されることができる。一例では、該1つ以上の集合のうちの集合はルマフィルタ係数と1つ以上のクリッピング値インデックスとを含むことができる。クロマフィルタ係数及びクリッピング値インデックスの1つ以上の集合(最大で8個の集合)が信号伝達されることができる。信号伝達オーバーヘッドを減らすために、ルマ成分についての異なる分類(例えば、異なる分類インデックスをもつ)のフィルタ係数をマージすることができる。スライスヘッダにおいて、現在のスライスについて使用されているAPSのインデックスが信号伝達されることができる。
【0104】
ある実施形態では、クリッピング値インデックス(クリッピングインデックスとも称される)がAPSから復号されることができる。クリッピング値インデックスは、例えば、クリッピング値インデックスと対応するクリッピング値との間の関係に基づいて、対応するクリッピング値を決定するために使用できる。この関係は、あらかじめ定義され、デコーダに記憶されることができる。一例では、この関係は、クリッピング値インデックスと対応するクリッピング値のルマテーブル(例えばルマCBのために使用)、クリッピング値インデックスと対応するクリッピング値のクロマテーブル(例えばクロマCBのために使用)等のテーブルによって記述される。クリッピング値は、ビット深さBに依存することができる。ビット深さBは、内部ビット深さ、フィルタリングされるCB内の再構成されたサンプルのビット深さ等を指すことができる。いくつかの例において、テーブル(例えば、ルマテーブル、クロマテーブル)は、式(12)を使用して得られる。
【数10】
ここで、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は、ルマブロック又はクロマブロックに使用できる。
【表2】
【0105】
現在のスライスのために使用できるルマフィルタ集合を指定するために、現在のスライスについてのスライスヘッダにおいて、1つ以上のAPSインデックス(最大7つのAPSインデックス)が信号伝達されることができる。フィルタリングプロセスは、ピクチャレベル、スライスレベル、CTBレベル及び/又はその他等の1つ以上の適切なレベルで制御できる。ある実施形態では、フィルタリングプロセスは、CTBレベルでさらに制御されることができる。ALFがルマCTBに適用されるかどうかを示すフラグが信号伝達される。ルマCTBは、複数の固定したフィルタ集合(例えば、16個の固定したフィルタ集合)と、APSにおいて信号伝達されるフィルタ集合(信号伝達されるフィルタ集合とも称される)の中からフィルタ集合を選択できる。フィルタ集合インデックスがルマCTBについて信号伝達されて、適用されるフィルタ集合(例えば、複数の固定したフィルタ集合及び信号伝達されたフィルタ集合のうちのフィルタ集合)を示す。複数の固定したフィルタ集合は、エンコーダ及びデコーダにおいてあらかじめ定義され、ハードコーディングされ、あらかじめ定義されたフィルタ集合と呼ぶことができる。
【0106】
クロマ成分については、現在のスライスについて使用されるクロマフィルタ集合を示すために、APSインデックスがスライスヘッダにおいて信号伝達されることができる。CTBレベルでは、APSに複数のクロマフィルタ集合がある場合、各クロマCTBについてフィルタ集合インデックスが信号伝達されることができる。
【0107】
フィルタ係数は、128に等しいノルムで量子化できる。乗算の複雑さを低減するために、非中心位置の係数値が-27以上27-1以下の範囲内であるようにビットストリーム適合性を適用することができる。一例では、中心位置の係数はビットストリームにおいて信号伝達されず、128に等しいと考えることができる。
【0108】
いくつかの実施形態では、クリッピングインデックス及びクリッピング値のシンタックス及び意味内容は、以下のように定義される。
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以下の範囲であることを含むことができる。
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に指定されているように導出できる。
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以下の範囲にあることを含むことができる。
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に指定されるように導出できる。
【0109】
ある実施形態では、フィルタリングプロセスは、以下のように記述できる。デコーダ側では、CTBについてALFが有効にされると、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はフィルタ長を表す。クリッピング関数K(x,y)=min(y,max(-y,x))は、クリッピング関数Clip3(-y,y,x)に対応する。クリッピング関数K(x,y)を組み込むことにより、ループフィルタリング方法(例えば、ALF)は非線形プロセスとなり、非線形ALFと称することができる。
【0110】
非線形ALFでは、クリッピング値の複数の集合が表3において提供されることができる。一例では、ルマ集合は4つのクリッピング値{1024,181,32,6}を含み、クロマ集合は4つのクリッピング値{1024,161,25,4}を含む。ルマ集合内の4つのクリッピング値は、ルマブロックについてのサンプル値(10ビットで符号化)の全範囲(1024等)を対数領域でほぼ均等に分割することによって選択できる。この範囲は、クロマ集合について4~1024の間であることができる。
【表3】
【0111】
選択されたクリッピング値は、以下のように「alf_data」シンタックスエレメントで符号化されることができる。適切な符号化方式(例えば、ゴロム符号化方式)を使用して、表3に示されるような選択されたクリッピング値に対応するクリッピングインデックスを符号化することができる。符号化方式は、フィルタ集合インデックスを符号化するために使用されるものと同じ符号化方式でありうる。
【0112】
ある実施形態では、ALFのラインバッファ要件を低減するために、仮想境界フィルタリングプロセスを使用することができる。よって、CTU境界(例えば、水平CTU境界)付近のサンプルについては、修正されたブロック分類及びフィルタリングが使用できる。仮想境界(1130)は、
図11Aに示されるように、水平CTU境界(1120)を「N
samples」サンプルだけシフトすることによって定義できる。ここで、N
samplesは正の整数でありうる。一例では、N
samplesはルマ成分については4に等しく、N
samplesはクロマ成分については2に等しい。
【0113】
図11Aを参照すると、ルマ成分について修正ブロック分類を適用することができる。一例では、仮想境界(1130)の上の4×4ブロック(1110)の1Dラプラシアン勾配計算については、仮想境界(1130)上のサンプルのみが使用される。同様に、
図11Bを参照すると、CTU境界(1121)からシフトされた仮想境界(1131)の下の4×4ブロック(1111)の1Dラプラシアン勾配計算については、仮想境界(1131)の下のサンプルのみが使用される。1Dラプラシアン勾配計算で使用されるサンプル数の減少を考慮することによって、活性値Aの量子化をしかるべくスケーリングすることができる。
【0114】
フィルタリング処理については、ルマ成分とクロマ成分の双方に仮想境界での対称パディング操作を使用することができる。
図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でパディングされることができる。
【0115】
いくつかの例では、サンプル及び近傍サンプルが仮想境界の左側(又は右側)及び右側(又は左側)に位置する場合、上記の説明を適切に適応させることができる。
【0116】
本開示のある側面によれば、符号化効率を改善するために、フィルタリングプロセスに基づいてピクチャを分割することができる。いくつかの例では、CTUは、最大符号化ユニット(LCU)とも呼ばれる。一例では、CTU又はLCUは、64×64ピクセルのサイズを有することができる。いくつかの実施形態では、LCU整列されたピクチャ四分木分割を、フィルタリングに基づく分割のために使用することができる。いくつかの例では、符号化ユニット同期的なピクチャ四分木ベースの適応ループフィルタを使用することができる。例えば、ルマピクチャをいくつかのマルチレベルの四分木パーティションに分割し、各パーティション境界をLCUの境界に整列させる。各パーティションは独自のフィルタリングプロセスをもち、よって、フィルタユニット(filter unit、FU)と呼ばれる。
【0117】
いくつかの例では、2パスの符号化フローを使用することができる。2パスの符号化フローの第1のパスで、ピクチャの四分木分割パターンと各FUの最良のフィルタを決定することができる。いくつかの実施形態では、ピクチャの四分木分割パターンの決定及びFUのための最良のフィルタの決定は、フィルタリング歪みに基づく。フィルタリング歪みは、決定プロセスにおける高速フィルタリング歪み推定(fast filtering distortion estimation、FFDE)技法により推定できる。ピクチャは、四分木パーティションを使用して分割される。決定された四分木分割パターン及び全てのFUの選択されたフィルタに従い、再構成されたピクチャをフィルタリングすることができる。
【0118】
2パスの符号化フローの第2のパスでは、CU同期的なALFオン/オフ制御が実行される。ALFのオン/オフ結果に従って、最初のフィルタリングされたピクチャが、再構成されたピクチャによって部分的に回復される。
【0119】
具体的には、いくつかの例では、レート‐歪み基準を使用することによって、ピクチャをマルチレベル四分木パーティションに分割するために、トップダウン分割戦略が採用される。各パーティションは、フィルタユニット(FU)と呼ばれる。分割プロセスは、四分木パーティションをLCU境界に整列させる。FUの符号化順序はzスキャン順に従う。
【0120】
図13は、本開示のいくつかの実施形態による分割例を示す。
図13の例では、ピクチャ(1300)は、10個のFUに分割され、符号化順序は、FU0、FU1、FU2、FU3、FU4、FU5、FU6、FU7、FU8、及びFU9である。
【0121】
図14は、ピクチャ(1300)についての四分木分割パターン(1400)を示す。
図14の例では、ピクチャ分割パターンを示すために分割フラグが使用される。例えば、「1」はブロックに対して四分木パーティションが実行されることを示し、「0」はブロックがそれ以上パーティション分割されないことを示す。いくつかの例では、最小サイズのFUはLCUサイズをもち、最小サイズのFUについて分割フラグは必要ない。分割フラグは、
図14に示されるように、z順で符号化され、送信される。
【0122】
いくつかの例では、各FUのフィルタは、レート‐歪み基準に基づいて、2つのフィルタ集合から選択される。第1の集合は、現在のFUのために導出された1/2対称正方形及び菱形フィルタを有する。第2の集合は、時間遅延フィルタバッファに由来し、時間遅延フィルタバッファは、以前のピクチャのFUについて以前に導出されたフィルタを記憶している。これら2つの集合の最小レート‐歪みコストをもつフィルタが、現在のFUについて選択されることができる。同様に、現在のFUが最小のFUではなく、さらに4つの子FUに分割されることができる場合、4つの子FUのレート‐歪みコストが計算される。分割ケースと非分割ケースのレート‐歪みコストを再帰的に比較することにより、ピクチャ四分木分割パターンを決定することができる。
【0123】
いくつかの例では、FUの最大数を制限するために、最大四分木分割レベルを使用することができる。一例では、最大四分木分割レベルが2の場合、FUの最大数は16である。さらに、四分木分割決定の間に、最低四分木レベルにある16個のFU(最小FU)のウィーナー係数を導出するための相関値を再利用することができる。残りのFUは、最低四分木レベルにある16個のFUの相関からウィーナーフィルタを導出することができる。したがって、この例では、全てのFUのフィルタ係数を導出するために、1つのフレームバッファアクセスが実行されるだけである。
【0124】
四分木分割パターンが決定された後、フィルタリング歪みをさらに低減するために、CU同期的なALFオン/オフ制御を実行することができる。各リーフCUにおけるフィルタリング歪みと非フィルタリング歪みを比較することにより、リーフCUはそのローカル領域において明示的にALFのオン/オフを切り換えることができる。いくつかの例では、ALFオン/オフ結果に従ってフィルタ係数を再設計することによって、符号化効率はさらに改善されうる。
【0125】
クロスコンポーネント(成分横断)フィルタリングプロセスは、クロスコンポーネント適応ループフィルタ(cross-component adaptive loop filter、CC-ALF)のようなクロスコンポーネントフィルタを適用することができる。クロスコンポーネントフィルタは、ルマ成分(例えばルマCB)のルマサンプル値を使用して、クロマ成分(例えばルマCBに対応するクロマCB)を洗練することができる。一例では、ルマCBとクロマCBはCUに含まれる。
【0126】
図15は、本開示のある実施形態による、クロマ成分を生成するために使用されるクロスコンポーネントフィルタ(例えば、CC-ALF)を示す。いくつかの例において、
図15は、第1のクロマ成分(例えば、第1のクロマCB)、第2のクロマ成分(例えば、第2のクロマCB)、及びルマ成分(例えば、ルマCB)のフィルタリングプロセスを示す。ルマ成分は、サンプル適応オフセット(SAO)フィルタ(1510)によってフィルタリングされ、SAOフィルタリングされたルマ成分(1541)を生成することができる。SAOフィルタリングされたルマ成分(1541)は、ALFルマフィルタ(1516)によってさらにフィルタリングされ、フィルタリングされたルマCB(1561)になる(例えば、「Y」)。
【0127】
第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)によって実行されるステップとを含むことができる。
【0128】
上記の説明は、第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)によって実行されるステップとを含むことができる。
【0129】
クロスコンポーネントフィルタ(例えば、CC-ALF(1521)、CC-ALF(1531))は、各クロマ成分(例えば、第1のクロマ成分、第2のクロマ成分)を洗練するために、任意の適切なフィルタ形状を有する線形フィルタをルマ成分(又はルマチャネル)に適用することによって動作することができる。
【0130】
図16は、本開示のある実施形態による、フィルタ(1600)の例を示す。フィルタ(1600)は、ゼロでないフィルタ係数及びゼロのフィルタ係数を含んでいてもよい。フィルタ(1600)は、フィルタ係数(1610)によって形成されたダイヤモンド形状(1620)(黒で塗りつぶされた円で示される)を有する。一例では、フィルタ(1600)におけるゼロでないフィルタ係数はフィルタ係数(1610)に含まれ、フィルタ係数(1610)に含まれないフィルタ係数はゼロである。よって、フィルタ(1600)におけるゼロでないフィルタ係数は、ダイヤモンド形状(1620)に含まれ、ダイヤモンド形状(1620)に含まれないフィルタ係数はゼロである。一例では、フィルタ(1600)のフィルタ係数の数は、フィルタ係数(1610)の数に等しく、これは、
図16に示される実施形態では18である。
【0131】
CC-ALFは、任意の適切なフィルタ係数(CC-ALFフィルタ係数とも呼ばれる)を含むことができる。
図15に戻って参照すると、CC-ALF(1521)及びCC-ALF(1531)は、
図16に示されるダイヤモンド形状(1620)等と同じフィルタ形状、及び同じ数のフィルタ係数を有することができる。一例では、CC-ALF(1521)におけるフィルタ係数の値は、CC-ALF(1531)のフィルタ係数の値とは異なる。
【0132】
一般に、CC-ALF内のフィルタ係数(例えば、ゼロでないフィルタ係数)は、例えば、APS内で伝送されうる。一例では、フィルタ係数は、ある係数(例えば、210)によってスケーリングされることができ、固定小数点表現のために丸められることができる。CC-ALFの適用は、可変ブロックサイズで制御されることができ、サンプルの各ブロックについて受信されるコンテキスト符号化されたフラグ(例えば、CC-ALFイネーブルフラグ)によって信号伝達されることができる。CC-ALFイネーブルフラグのようなコンテキスト符号化されたフラグは、ブロックレベルのような任意の適切なレベルで信号伝達されることができる。ブロックサイズは、CC-ALFイネーブルフラグとともに、各クロマ成分についてスライスレベルで受信されることができる。いくつかの例では、(クロマサンプル単位での)ブロックサイズ16×16、32×32、64×64をサポートすることができる。
【0133】
図17は、本開示のいくつかの実施形態によるCC-ALFについてのシンタックス例を示す。
図17の例では、alf_ctb_cross_component_cross_cb_idc[xCtb>>CtbLog2SizeY][yCtb>>CtbLog2SizeY]は、クロスコンポーネントCbフィルタが使用されるかどうかを示すインデックスであり、使用される場合はそのクロスコンポーネントCbフィルタのインデックスである。例えば、alf_ctb_cross_component_cb_idc[xCtb>>CtbLog2SizeY][yCtb>>CtbLog2SizeY]が0に等しい場合、クロスコンポーネントCbフィルタはルマ位置(xCtb,yCtb)におけるCb色成分サンプルのブロックには適用されない。alf_ctb_cross_component_cb_idc[xCtb>>CtbLog2SizeY][yCtb>>CtbLog2SizeY]が0に等しくない場合、alf_ctb_cross_component_cb_idc[xCtb>>CtbLog2SizeY][yCtb>>CtbLog2SizeY]は、適用されるべきフィルタについてのインデックスである。例えば、第alf_ctb_cross_component_cb_idc[xCtb>>CtbLog2SizeY][yCtb>>CtbLog2SizeY]のクロスコンポーネントCbフィルタがルマ位置(xCtb,yCtb)におけるCb色成分サンプルのブロックに適用される。
【0134】
さらに、
図17の例では、alf_ctb_cross_component_cr_idc[xCtb>>CtbLog2SizeY][yCtb>>CtbLog2SizeY]が、クロスコンポーネントCrフィルタが使用されるかどうかを示すために使用され、使用されるクロスコンポーネントCrフィルタのインデックスである。例えば、alf_ctb_cross_component_cr_idc[xCtb>>CtbLog2SizeY][yCtb>>CtbLog2SizeY]が0に等しい場合、クロスコンポーネントCrフィルタはルマ位置(xCtb,yCtb)におけるCr色成分サンプルのブロックには適用されない。alf_ctb_cross_component_cr_idc[xCtb>>CtbLog2SizeY][yCtb>>CtbLog2SizeY]が0に等しくない場合、alf_ctb_cross_component_cr_idc[xCtb>>CtbLog2SizeY][yCtb>>CtbLog2SizeY]はクロスコンポーネントCrフィルタのインデックスである。例えば、第alf_cross_component_cr_idc[xCtb>>CtbLog2SizeY][yCtb>>CtbLog2SizeY]のクロスコンポーネントCrフィルタがルマ位置(xCtb,yCtb)におけるCr色成分サンプルのブロックに適用されることができる。
【0135】
いくつかの例では、クロマサブサンプリング技法が使用され、よって、クロマブロックのそれぞれにおけるサンプルの数を、ルマブロックにおけるサンプルの数よりも少なくすることができる。クロマサブサンプリングフォーマット(クロマサブサンプリングフォーマットとも呼ばれ、例えば、chroma_format_idcによって指定される)は、クロマブロックのそれぞれと対応するルマブロックとの間のクロマ水平サブサンプリング係数(例えば、SubWidthC)及びクロマ垂直サブサンプリング係数(例えば、SubHeightC)を示すことができる。一例では、クロマサブサンプリングフォーマットは4:2:0であり、よって、クロマ水平サブサンプリング係数(例えば、SubWidthC)及びクロマ垂直サブサンプリング係数(例えば、SubHeightC)は、
図18A~18Bに示されるように、2である。一例では、クロマサブサンプリングフォーマットは4:2:2であり、よって、クロマ水平サブサンプリング係数(例えばSubWidthC)は2であり、クロマ垂直サブサンプリング係数(例えばSubHeightC)は1である。一例では、クロマサブサンプリングフォーマットは4:4:4であり、よって、クロマ水平サブサンプリング係数(例えば、SubWidthC)及びクロマ垂直サブサンプリング係数(例えば、SubHeightC)は1である。クロマサンプルタイプ(クロマサンプルポジションとも呼ばれる)は、ルマブロック内の少なくとも1つの対応するルマサンプルに対するクロマブロック内のクロマサンプルの相対位置を示すことができる。
【0136】
図18A~18Bは、本開示の実施形態による、ルマサンプルに対するクロマサンプルの例示的な位置を示す。
図18Aを参照すると、ルマサンプル(1801)は、行(1811)~(1818)に位置する。
図18Aに示されるルマサンプル(1801)は、ピクチャの一部を表すことができる。一例では、ルマブロック(例えば、ルマCB)は、ルマサンプル(1801)を含む。ルマブロックは、クロマサブサンプリングフォーマットが4:2:0である2つのクロマブロックに対応することができる。一例では、各クロマブロックはクロマサンプル(1803)を含む。各クロマサンプル(例えば、クロマサンプル(1803(1)))は、4つのルマサンプル(例えば、ルマサンプル(1801(1))~(1801(4)))に対応する。一例では、4つのルマサンプルは、左上のサンプル(1801(1))、右上のサンプル(1801(2))、左下のサンプル(1801(3))、及び右下のサンプル(1801(4))である。クロマサンプル(例えば、(1803(1)))は、左上のサンプル(1801(1))と左下のサンプル(1801(3))の間の左中央位置に位置し、クロマサンプル(1803)を有するクロマブロックのクロマサンプルタイプは、クロマサンプルタイプ0と称することができる。クロマサンプルタイプ0は、左上のサンプル(1801(1))と左下のサンプル(1801(3))の中間の左中央位置に対応する相対位置0を示す。4つのルマサンプル(例えば(1801(1))~(1801(4)))は、クロマサンプル(1803)(1)の近傍ルマサンプルと称されることができる。
【0137】
一例では、各クロマブロックは、クロマサンプル(1804)を含む。クロマサンプル(1803)に関する上記の説明は、クロマサンプル(1804)に適応されることができ、よって、簡潔のため、詳細な説明を省略することができる。クロマサンプル(1804)のそれぞれは、対応する4つのルマサンプルの中心位置に位置することができ、クロマサンプル(1804)を有するクロマブロックのクロマサンプルタイプは、クロマサンプルタイプ1と称されることができる。クロマサンプルタイプ1は、4つのルマサンプル(例えば(1801(1))~(1801(4)))の中心位置に対応する相対位置1を示す。例えば、クロマサンプル(1804)の1つは、ルマサンプル(1801(1))~(1801(4))の中心部分に位置することができる。
【0138】
一例では、各クロマブロックは、クロマサンプル(1805)を含む。クロマサンプル(1805)のそれぞれは、対応する4つのルマサンプル(1801)の左上のサンプルと共位置である左上の位置に位置することができ、クロマサンプル(1805)を有するクロマブロックのクロマサンプルタイプは、クロマサンプルタイプ2と称されることができる。よって、各クロマサンプル(1805)は、それぞれのクロマサンプルに対応する4つのルマサンプル(1801)の左上サンプルと共位置にある。クロマサンプルタイプ2は、4つのルマサンプル(1801)の左上の位置に対応する相対位置2を示す。例えば、クロマサンプル(1805)の1つは、ルマサンプル(1801(1))~(1801(4))の左上の位置に位置することができる。
【0139】
一例では、各クロマブロックは、クロマサンプル(1806)を含む。クロマサンプル(1806)のそれぞれは、対応する左上のサンプルと対応する右上のサンプルとの間の上中央位置に位置することができ、クロマサンプル(1806)を有するクロマブロックのクロマサンプルタイプは、クロマサンプルタイプ3と称されることができる。クロマサンプルタイプ3は、左上のサンプル(及び右上のサンプル)の間の上中央位置に対応する相対位置3を示す。例えば、クロマサンプル(1806)の1つは、ルマサンプル(1801(1))~(1801(4))の上中央位置に位置することができる。
【0140】
一例では、各クロマブロックは、クロマサンプル(1807)を含む。クロマサンプル(1807)のそれぞれは、対応する4つのルマサンプル(1801)の左下のサンプルと共位置である左下位置に位置することができ、クロマサンプル(1807)を有するクロマブロックのクロマサンプルタイプは、クロマサンプルタイプ4と称されることができる。よって、各クロマサンプル(1807)は、それぞれのクロマサンプルに対応する4つのルマサンプル(1801)の左下サンプルと共位置にある。クロマサンプルタイプ4は、4つのルマサンプル(1801)の左下位置に対応する相対位置4を示す。例えば、クロマサンプル(1807)の1つは、ルマサンプル(1801(1))~(1801(4))の左下位置に位置することができる。
【0141】
一例では、各クロマブロックは、クロマサンプル(1808)を含む。クロマサンプル(1808)のそれぞれは、左下サンプルと右下サンプルとの間の下中央位置に位置し、クロマサンプル(1808)を有するクロマブロックのクロマサンプルタイプは、クロマサンプルタイプ5と称されることができる。クロマサンプルタイプ5は、4つのルマサンプル(1801)の左下サンプルと右下サンプルの間の下中央位置に対応する相対位置5を示す。例えば、クロマサンプル(1808)の1つは、ルマサンプル(1801(1))~(1801(4))の左下サンプルと右下のサンプルとの間に位置することができる。
【0142】
一般に、クロマサブサンプリングフォーマットについて、任意の適切なクロマサンプルタイプを用いることができる。クロマサンプルタイプ0~5は、クロマサブサンプリングフォーマット4:2:0で説明される例示的なクロマサンプルタイプである。クロマサブサンプリングフォーマット4:2:0については、追加的なクロマサンプルタイプが使用されてもよい。さらに、他のクロマサンプルタイプ及び/又はクロマサンプルタイプ0~5の変形が、4:2:2、4:4:4等の他のクロマサブサンプリングフォーマットのために使用されることができる。一例では、クロマサンプル(1805)及び(1807)を組み合わせたクロマサンプルタイプがクロマサブサンプリングフォーマット4:2:2のために使用される。
【0143】
一例では、ルマブロックは、4つのルマサンプル(例えば、(1801(1))~(1801(4)))の上の2つのサンプル(例えば、(1801(1))~(1801(2)))と下の2つのサンプル(例えば、(1801(3))~(1801(4)))をそれぞれ含む、行(1811)~(1812))のような交互の行をもつと考えられる。よって、行(1811)、(1813)、(1815)、及び(1817)は、現在の行と称されることができ(トップフィールドとも呼ばれる)、行(1812)、(1814)、(1816)、及び(1818)は、次の行と称されることができる(ボトムフィールドとも呼ばれる)。4つのルマサンプル(例えば(1801(1))~(1801(4)))は、現在の行(例えば(1811))と次の行(例えば(1812))に位置する。相対位置2~3は現在の行に位置し、相対位置0~1は各現在の行とそれぞれの次の行との間に位置し、相対位置4~5は次の行に位置する。
【0144】
クロマサンプル(1803)、(1804)、(1805)、(1806)、(1807)、又は(1808)は、各クロマブロックにおける行(1851)~(1854)に位置する。行(1851)~(1854)の特定の位置は、クロマサンプルのクロマサンプルのタイプに依存することができる。例えば、それぞれのクロマサンプルタイプ0~1を有するクロマサンプル(1803)~(1804)について、行(1851)は行(1811)~(1812)の間に位置する。それぞれのクロマサンプルタイプ2~3を有するクロマサンプル(1805)~(1806)については、行(1851)が現在の行(1811)と共位置にある。それぞれのクロマサンプルタイプ4~5を有するクロマサンプル(1807)~(1808)については、行(1851)は次の行(1812)と共位置にある。上記の説明は、行(1852)~(1854)に適切に適応されることができ、詳細な説明は、簡潔のために省略される。
【0145】
任意の適当な走査方法を使用して、
図18Aに上述したルマブロック及び対応するクロマブロックを表示、記憶、及び/又は伝送することができる。一例では、順次走査が使用される。
【0146】
図18Bに示されるように、インターレース走査が使用されることができる。前述のように、クロマサブサンプリングフォーマットは4:2:0である(例えば、chroma_format_idcは1に等しい)。一例では、変数クロマ位置タイプ(例えば、ChromaLocType)は、現在の行(例えば、ChromaLocTypeがchroma_sample_loc_type_top_fieldである)又は次の行(例えば、ChromaLocTypeがchroma_sample_loc_type_bottom_fieldである)を示す。現在の行(1811)、(1813)、(1815)及び(1817)及び次の行(1812)、(1814)、(1816)及び(1818)を別々に走査することができる。例えば、現在の行(1811)、(1813)、(1815)及び(1817)を最初に走査し、続いて次の行(1812)、(1814)、(1816)及び(1818)がスキャンされる。現在の行はルマサンプル(1801)を含むことができ、次の行はルマサンプル(1802)を含むことができる。
【0147】
同様に、対応するクロマブロックがインターレース走査されることができる。塗りつぶされていないクロマサンプル(1803)、(1804)、(1805)、(1806)、(1807)又は(1808)を含む行(1851)及び(1853)は、現在の行(又は現在のクロマ行)と称されることができ、グレーで塗りつぶされたクロマサンプル(1803)、(1804)、(1805)、(1806)、(1807)又は(1808)を含む行(1852)及び(1854)は、次の行(又は次のクロマ行)と称されることができる。一例では、インターレース走査の間、行(1851)及び(1853)が最初に走査され、続いて行(1852)及び(1854)が走査される。
【0148】
いくつかの例では、制約方向性エンハンスメントフィルタリング技法を使用することができる。ループ内の制約方向性エンハンスメントフィルタ(constrained directional enhancement filter、CDEF)の使用は、画像の詳細を保持しながら符号化アーチファクトを除去することができる。一例(例えば、HEVC)においては、サンプル適応オフセット(sample adaptive offset、SAO)アルゴリズムは、異なるクラスのピクセルについて信号オフセットを定義することによって、同様の目標を達成することができる。SAOとは異なり、CDEFは非線形空間フィルタである。いくつかの例において、CDEFは、容易にベクトル化可能である(すなわち、単一命令複数データ(SIMD)演算で実装可能である)ように制約されうる。メジアンフィルタ、バイラテラルフィルタのような他の非線形フィルタは、同じ仕方では扱えないことに留意されたい。
【0149】
いくつかの場合には、符号化された画像におけるリンギングアーチファクトの量は、量子化ステップサイズにほぼ比例する傾向がある。詳細の量は入力画像の特性であるが、量子化された画像において保持される最小の詳細も量子化ステップサイズに比例する傾向がある。所与の量子化ステップサイズについて、リンギングの振幅は、一般に、詳細の振幅よりも小さい。
【0150】
CDEFは、各ブロックの方向を識別し、次いで、識別された方向に沿って適応的にフィルタリングし、識別された方向から45度回転された諸方向に沿って、より少ない程度でフィルタリングするために使用されることができる。いくつかの例では、エンコーダは、フィルタ強度を探索することができ、フィルタ強度は明示的に信号伝達されることができ、これにより、ぼけに対する高い度合いの制御が可能になる。
【0151】
具体的には、いくつかの例において、方向探索は、デブロッキングフィルタの直後に、再構成されたピクセルに対して実行される。これらのピクセルはデコーダに利用可能であるので、デコーダによって方向を探索することができ、よって、方向は一例においては信号伝達を必要としない。いくつかの例では、方向探索は、8×8ブロックのような、直線でないエッジを適切に扱うのに十分小さいが量子化された画像に適用されるときに方向を確実に推定するのに十分大きい、あるブロックサイズで動作することができる。また、8×8領域にわたって一定方向を有することにより、フィルタのベクトル化が容易になる。いくつかの例において、各ブロック(例えば、8×8)は、完璧な方向性のブロックと比較されて、差を決定することができる。完璧な方向性のブロックは、1つの方向のラインに沿ったピクセルの全てが同じ値をもつブロックである。一例では、ブロックと完璧な方向性のブロックのそれぞれの差の指標、例えば平方差分和(SSD)、二乗平均平方根(RMS)誤差を計算することができる。次いで、最小差(例えば、最小のSSD、最小のRMS等)を有する完璧な方向性のブロックを決定することができ、決定された完璧な方向性のブロックの方向が、そのブロック内のパターンに最も良く一致する方向であることができる。
【0152】
図19は、本開示のある実施形態による方向探索の一例を示す。一例では、ブロック(1910)は、再構成され、デブロッキングフィルタから出力される8×8ブロックである。
図19の例では、方向探索は、ブロック(1910)について(1920)によって示される8方向から方向を決定することができる。8つの完璧な方向性のブロック(1930)は、それぞれ8つの方向(1920)に対応して形成される。ある方向に対応する完璧な方向性のブロックは、その方向の線に沿ったピクセルが同じ値を有するブロックである。さらに、ブロック(1910)と完璧な方向性のブロック(1930)のそれぞれとのSSD、RMS誤差等の差の指標を計算することができる。
図19の例では、RMS誤差が(1940)によって示される。(1943)によって示されているように、ブロック(1910)と完璧な方向性のブロック(1933)とのRMS誤差が最小であり、よって方向(1923)がブロック(1910)のパターンに最もよく一致する方向である。
【0153】
ブロックの方向が識別された後、非線形低域通過方向性フィルタが決定されることができる。例えば、非線形低域通過方向性フィルタのフィルタタップは、識別された方向に沿って整列されて、方向性エッジ又はパターンを保持しながらリンギングを低減することができる。しかしながら、いくつかの例では、指向性フィルタリングのみではリンギングを十分に低減できない場合がある。一例では、識別された方向に沿って存在するのでないピクセルに対して、追加のフィルタタップも使用される。ぼけのリスクを減らすために、追加のフィルタタップはより保存的に扱われる。このため、CDEFは、一次フィルタタップと二次フィルタタップを含む。一例では、完全な2-D CDEFフィルタは式(14)として表すことができる。
【数12】
ここで、Dはダンピングパラメータを表し、S
(p)は一次フィルタタップの強度を表し、S
(s)は二次フィルタタップの強度を表し、round()は中間値の場合にゼロから離れるように丸める演算を表し、wはフィルタの重みを表し、f(d,S,D)はフィルタリングされたピクセルと近傍ピクセルのそれぞれとの間の差に対して作用する制約条件関数である。一例では、差が小さい場合、関数f(d,S,D)はDに等しく、フィルタを線形フィルタのように振る舞わせることができ、差が大きい場合、関数f(d,S,D)は0に等しく、フィルタタップを事実上無視することができる。
【0154】
いくつかの例では、デブロッキング動作を越えて一般的にノイズ除去し、エッジの品質を向上させるために、デブロッキング後にビデオ符号化において、ループ内復元方式が使用される。一例では、ループ内復元方式は、適切なサイズのタイル毎にフレーム内で切り換え可能である。ループ内復元方式(in-loop restoration scheme)は、分離可能な対称ウィーナーフィルタ(separable symmetric Wiener filter)、部分空間投影を有するデュアル自己案内フィルタ(dual self-guided filter with subspace projection)、及びドメイン変換再帰フィルタ(domain transform recursive filter)に基づいている。コンテンツ統計はフレーム内で実質的に変化しうるので、ループ内復元方式は、フレームの異なる領域において異なる方式がトリガーされうる切り換え可能な枠組み内に統合される。
【0155】
開示のある側面によれば、ループ内復元(in-loop restoration、LR)(LRフィルタとも呼ばれる)は、フィルタリングされるべきピクセルの周囲のピクセルのウィンドウのような、LRフィルタリング中に近傍ピクセルを使用することができる。フレームエッジでLRフィルタを適用できるようにするために、いくつかの例では、LRフィルタリングが適用される前に、フレーム境界のピクセルのいくつかの境界ピクセル値が境界バッファにコピーされる。いくつかの例では、境界ピクセルの2つのコピーが境界バッファに記憶される。一例では、デブロッキングフィルタの後、且つ、CDEFの前に第1のコピーステップが適用され、第1のコピーステップによるフレーム境界のピクセルの境界ピクセル値のコピーがCOPY0と記される。第2のコピーステップはCDEFの後、且つ、LRフィルタの前に適用され、第2のコピーステップによるフレーム境界におけるピクセルの境界ピクセル値のコピーはCOPY1と記される。次いで、境界バッファは、例えばフレームエッジにLRフィルタを適用する場合のように、LRフィルタリング処理中の境界ピクセルのパディングに使用される。境界ピクセル値を境界バッファにコピーするプロセスは、境界処理と記される。
【0156】
分離可能な対称ウィーナーフィルタは、ループ内復元方式の1つでありうる。いくつかの例では、劣化したフレーム内の全てのピクセルは、その周囲のw×wウィンドウ内のピクセルの非因果的フィルタリングされたバージョンとして再構成されることができる。ここで、w=2r+1は整数rに対して奇数である。2Dフィルタタップが列ベクトル化された形でw2×1要素のベクトルFで表される場合、直接的なLMMSE最適化により、フィルタパラメータはF=H-1Mによって与えられることになる。ここで、H=E[XXT]はxの自己共分散、ピクセル周囲のw×wウィンドウ内のw2個のサンプルの列ベクトル化されたバージョンであり、M=E[YXT]はスカラーソースサンプルyとのxの相互相関であり、推定されるべきものである。一例では、エンコーダは、デブロッキングされたフレーム及びソース内の実現値からH及びMを推定することができ、結果として得られたフィルタFをデコーダに送ることができる。しかしながら、これは、w2個のタップを送信する際に実質的なビットレートコストを被るだけでなく、分離可能でないフィルタリングも、復号を法外に複雑にする。いくつかの実施形態では、Fの性質にいくつかの追加の制約条件が課される。第1の制約条件については、フィルタリングが分離可能な水平及び垂直のw-タップ畳み込みとして実装できるように、Fは分離可能であるように制約される。第2の制約条件については、水平フィルタと垂直フィルタのそれぞれが対称になるように制約される。第3の制約条件については、水平フィルタ係数と垂直フィルタ係数の双方の合計が1になると想定される。
【0157】
部分空間投影を有するデュアル自己案内フィルタリングは、ループ内復元方式の1つでありうる。案内されるフィルタリングは、フィルタリングされていないサンプルxからフィルタリングされた出力yを計算するために、以下の式(15)によって示される局所線形モデルが使用される画像フィルタリング技法である。
y=Fx+G 式(15)
ここで、F及びGは、劣化した画像の統計とフィルタリングされたピクセルの近傍の案内画像に基づいて決定される。案内画像が劣化した画像と同じであれば、結果として得られるいわゆる自己案内フィルタリングは、エッジを保存する平滑化の効果を有する。一例では、自己案内フィルタリングの特定の形を使用することができる。自己案内フィルタリングの特定の形は、半径rとノイズパラメータeの2つのパラメータに依存し、以下の諸ステップとして列挙される:
1. 各ピクセルの周囲の(2r+1)×(2r+1)ウィンドウにおけるピクセルの平均μ及び分散σ2を得る。このステップは、統合イメージングに基づくボックスフィルタリングを用いて効率的に実装できる。
2. 全てのピクセルについて、f=σ2/(σ2+e);g=(1-f)μを計算する。
3. 使用するピクセルの周囲の3×3ウィンドウにおけるf値及びg値の平均として、各ピクセルについてのFとGを計算する。
【0158】
自己案内フィルタの特定の形は、r及びeによって制御され、ここで、rが大きいほど空間分散(spatial variance)が大きく、eが大きいほどレンジ分散(range variance)が大きいことを意味する。
【0159】
図20は、いくつかの例における部分空間投影を示す例を示す。
図20に示されるように、復元X
1、X
2のいずれもソースYに近くないが、適切な乗数{α,β}は、それらがいくぶん正しい方向に動いている限り、それらをソースYにずっと近づけることができる。
【0160】
いくつかの例では、復号されたピクチャの知覚品質を改善するために、フレーム超解像(frame super-resolution, FSR)と呼ばれる技法が使用される。一般にFSRプロセスは低ビットレートで適用され、4つのステップを含む。第1のステップにおいて、エンコーダ側で、非規範的手順としてソースビデオがダウンスケールされる。第2のステップにおいて、ダウンスケールされたビデオが符号化され、その後、デブロッキングフィルタ及びCDEFのフィルタリングプロセスが行われる。第3のステップにおいて、線形アップスケーリングプロセスが、符号化されたビデオを元の空間分解能に戻すための規範的手順として適用される。第4のステップにおいて、ループ復元フィルタを適用して、失われた高周波の一部を解決する。一例では、最後の2つのステップをまとめて超解像プロセスと呼ぶことができる。同様に、デコーダ側では、復号、デブロッキングフィルタ、及びCDEFのプロセスが、より低い空間分解能で適用できる。次いで、フレームは超解像プロセスを通過する。いくつかの例では、ハードウェア実装に関するラインバッファのオーバーヘッドを低減するために、アップスケーリング及びダウンスケーリングのプロセスが水平次元にのみ適用される。
【0161】
いくつかの例(例えば、HEVC)では、サンプル適応オフセット(SAO)と呼ばれるフィルタリング技法を使用することができる。いくつかの例では、SAOは、デブロッキングフィルタの後に再構成信号に適用される。SAOは、スライスヘッダにおいて与えられるオフセット値を使用することができる。いくつかの例では、ルマサンプルについては、エンコーダは、あるスライスに対してSAOを適用する(イネーブルする)かどうかを決定できる。SAOが有効にされると、現在のピクチャは、符号化ユニットを4つの部分領域に再帰的に分割することを許容し、各部分領域は、その部分領域内の特徴に基づいて、複数のSAOタイプからSAOタイプを選択することができる。
【0162】
図21は、本開示のある実施形態による、複数のSAOタイプの表(2100)を示す。表(2100)では、SAOタイプ0~6が示されている。SAOタイプ0は、SAO適用がないことを示すために使用されることに留意されたい。また、SAOタイプ1~SAOタイプ6の各SAOタイプは複数のカテゴリを含む。SAOは、部分領域の再構成されたピクセルをカテゴリに分類し、部分領域内の各カテゴリのピクセルにオフセットを加えることによって歪みを低減することができる。いくつかの例では、エッジ特性をSAOタイプ1~4におけるピクセル分類のために使用でき、ピクセル強度は、SAOタイプ5~6におけるピクセル分類のために使用できる。
【0163】
具体的には、SAOタイプ5~6のようなある実施形態では、部分領域の全てのピクセルを複数のバンドに分類するために、バンドオフセット(BO)が使用できる。複数のバンドの各バンドは、同じ強度区間内のピクセルを含む。いくつかの例では、強度範囲は、ゼロから最大強度値(例えば、8ビットピクセルについては255)までの32の区間のような複数の区間に均等に分割され、各区間は、オフセットと関連付けられる。さらに、一例では、32個のバンドは、第1のグループ及び第2のグループのような2つのグループに分割される。第1のグループは、中央の16個のバンド(例えば、強度範囲の中央にある16個の区間)を含み、第2のグループは、残りの16個のバンド(例えば、強度範囲の低い側にある8個の区間と強度範囲の高い側にある8個の区間)を含む。一例では、2つのグループの一方のオフセットのみが伝送される。いくつかの実施形態では、BOにおけるピクセル分類操作が使用される場合、各ピクセルの5つの最上位ビットが、バンドインデックスとして直接使用できる。
【0164】
さらに、SAOタイプ1~4のようなある実施形態では、エッジオフセット(EO)が、ピクセル分類及びオフセットの決定のために使用できる。例えば、ピクセル分類は、エッジ方向情報を考慮して、1次元の3ピクセルパターン(3-pixel patterns)に基づいて決定できる。
【0165】
図22は、いくつかの例におけるエッジオフセットにおけるピクセル分類のための3ピクセルパターンの例を示す。
図22の例では、第1のパターン(2210)(3つのグレーピクセルで示す)は0度パターンと称され(水平方向が0度パターンに関連付けられる)、第2のパターン(2220)(3つのグレーピクセルで示す)が90度パターンと称され(垂直方向が90度パターンに関連付けられる)、第3のパターン(2230)(3つのグレーピクセルで示す)が135度パターンと称され(135度対角方向が135度パターンに関連付けられる)、第4のパターン(2240)(3つのグレーピクセルで示す)が45度パターンと称される(45度対角方向が45度パターンに関連付けられる)。一例では、
図22に示される4つの方向パターンのうちの1つが、部分領域についてのエッジ方向情報を考慮して選択されることができる。選択は、符号化されたビデオビットストリームにおいて、一例ではサイド情報として送ることができる。次いで、部分領域内のピクセルは、各ピクセルを、方向パターンに関連する方向上の2つの近傍ピクセルと比較することによって、複数のカテゴリに分類できる。
【0166】
図23は、いくつかの例におけるエッジオフセットについてのピクセル分類規則についての表(2300)を示す。具体的には、ピクセルc(
図22の各パターンにも示されている)は、2つの近傍ピクセル(
図22の各パターンにおいて灰色で示されている)と比較され、ピクセルcは、
図23に示されているピクセル分類規則に従った比較に基づいて、カテゴリ0~4のうちの1つに分類されることができる。
【0167】
いくつかの実施形態では、デコーダ側のSAOは、ラインバッファを節約することができるように、最大符号化ユニット(LCU)(例えば、CTU)とは独立して動作させることができる。いくつかの例では、90度、135度、45度の分類パターンが選択される場合には、各LCUにおける上及び下の行のピクセルはSAO処理されない。0度、135度、45度のパターンが選択される場合には、各LCUにおける左端と右端の列のピクセルはSAO処理されない。
【0168】
図24は、近傍CTUからパラメータがマージされない場合に、CTUについて信号伝達される必要がある場合があるシンタックスの例(2400)を示す。例えば、シンタックスエレメントsao_type_idx[cldx][rx][ry]は、部分領域のSAOタイプを示すように信号伝達されることができる。SAOタイプは、BO(バンドオフセット)又はEO(エッジオフセット)でありうる。sao_type_idx[cldx][rx][ry]の値が0である場合、そのことは、SAOがオフであることを示し、1~4の値は、0°、90°、135°、及び45°に対応する4つのEOカテゴリのうちの1つが使用されることを示し、5の値は、BOが使用されることを示す。
図24の例では、BO及びEOタイプのそれぞれは、信号伝達される4つのSAOオフセット値(sao_offset[cIdx][rx][ry][0]~sao_offset[cIdx][rx][ry][3])を有する。
【0169】
一般に、フィルタリングプロセスは、第1の色成分の再構成されたサンプルを入力(例えば、Y若しくはCb若しくはCr又はR若しくはG若しくはB)として使用して出力を生成することができ、フィルタリングプロセスの出力は、第1の色成分と同じでもよく或いは第1の色成分とは異なる別の色成分でもよい第2の色成分に適用される。
【0170】
クロスコンポーネントフィルタリング(cross-component filtering、CCF)の関連した例では、フィルタ係数は、いくつかの数式に基づいて導出される。導出されたフィルタ係数はエンコーダ側からデコーダ側へ信号伝達され、導出されたフィルタ係数は線形結合を用いてオフセットを生成するために使用される。生成されたオフセットは、次いで、フィルタリングプロセスとして再構成されたサンプルに加算される。例えば、オフセットはルマサンプルとフィルタリング係数の線形結合に基づいて生成され、生成されたオフセットは再構成されたクロマサンプルに加えられる。CCFのこの関連した例は、再構成されたルマサンプル値と、元のクロマサンプルと再構成されたクロマサンプルの間のデルタ値との間の線形マッピング関係の前提に基づいている。しかしながら、再構成されたルマサンプル値と、元のクロマサンプルと再構成されたクロマサンプルとの間のデルタ値との間のマッピングは、必ずしも、線形マッピングプロセスに従うわけではなく、よって、CCFの符号化性能は線形マッピング関係の前提の下で制限される可能性がある。
【0171】
いくつかの例では、クロスコンポーネント(成分横断)フィルタリング及び/又は同一色成分フィルタリングにおいて、かなりの信号伝達オーバーヘッドなしで、非線形マッピング技法が使用できる。一例では、非線形マッピング技法は、クロスコンポーネントフィルタリングにおいて使用されて、クロスコンポーネントサンプルオフセットを生成することができる。別の例では、非線形マッピング技法は、同じ色成分フィルタリングにおいて使用されて、局所サンプルオフセットを生成することができる。
【0172】
便宜上、非線形マッピング技法を使用するフィルタリングプロセスは、非線形マッピングによるサンプルオフセット(sample offset by non linear mapping、SO-NLM)と称されることができる。クロスコンポーネントフィルタリングプロセスにおけるSO-NLMは、クロスコンポーネントサンプルオフセット(cross-component sample offset、CCSO)と称することができる。同じ色成分フィルタリングにおけるSO-NLMは、局所サンプルオフセット(local sample offset、LSO)と称することができる。非線形マッピング技法を使用するフィルタは、非線形マッピングベースのフィルタと称することができる。非線形マッピングベースのフィルタは、CCSOフィルタ、LSOフィルタ等を含むことができる。
【0173】
一例では、CCSO及びLSOは、再構成されたサンプルの歪みを低減するためのループフィルタリングとして使用されることができる。CCSOとLSOは、関連する例示的なCCFにおいて使用されている線形マッピングの前提に依存しない。例えば、CCSOは、ルマ再構成されたサンプル値と、元のクロマサンプルとクロマ再構成されたサンプルの間のデルタ値との間の線形マッピング関係の前提に依存しない。同様に、LSOは、色成分の再構成されたサンプル値と、該色成分の元のサンプルと該色成分の再構成されたサンプルの間のデルタ値との間の線形マッピング関係の前提に依存しない。
【0174】
以下の説明では、SO-NLMフィルタリングプロセスが説明される。これは、第1の色成分の再構成されたサンプルを入力(例えば、Y若しくはCb若しくはCr、又はR若しくはG若しくはB)として使用して出力を生成し、フィルタリングプロセスの出力は第2の色成分に適用される。第2の色成分が第1の色成分と同じ色成分である場合は、この記述は、LSOに適用可能である。第2の色成分が第1の色成分と異なる場合は、この記述はCCSOに適用される。
【0175】
SO-NLMではエンコーダ側で非線形マッピングが導出される。非線形マッピングは、フィルタサポート領域内の第1の色成分の再構成されたサンプルと、フィルタサポート領域内の第2の色成分に加えられるオフセットとの間のものである。第2の色成分が第1の色成分と同じ場合には、非線形マッピングはLSOにおいて使用される。第2の色成分が第1の色成分と異なる場合には、非線形マッピングはCCSOにおいて使用される。非線形マッピングのドメインは、処理された入力再構成サンプルの異なる組み合わせ(可能な再構成されたサンプル値の組み合わせとも呼ばれる)によって決定される。
【0176】
SO-NLMの技法は、特定の例を用いて説明できる。該特定の例では、フィルタサポートエリア(「フィルタサポート領域」とも呼ばれる)内に位置する第1の色成分からの再構成されたサンプルが決定される。フィルタサポート領域は、その中ではフィルタが適用できる領域であり、フィルタサポート領域は、任意の好適な形状を有することができる。
【0177】
図25は、本開示のいくつかの実施形態による、フィルタサポート領域(2500)の例を示す。フィルタサポート領域(2500)は、第1の色成分のP0、P1、P2、及びP3の4つの再構成されたサンプルを含む。
図25の例では、4つの再構成されたサンプルは、垂直方向及び水平方向において十字状の形状を形成することができ、十字状の形状の中心位置は、フィルタリングされるサンプルの位置である。中心位置にあり、P0~P3と同じ色成分のサンプルはCで表される。中心位置にあり、第2の色成分のサンプルはFで表される。第2の色成分は、P0~P3の第1の色成分と同じでもよく、或いは、P0~P3の第1の色成分とは異なってもよい。
【0178】
図26は、本開示のいくつかの実施形態による、別のフィルタサポート領域(2600)の例を示す。フィルタサポート領域(2600)は、正方形形状を形成する第1の色成分の4つの再構成されたサンプルP0、P1、P2、及びP3を含む。
図26の例では、正方形形状の中心位置は、フィルタリングされるべきサンプルの位置である。中心位置にあり、P0~P3と同じ色成分のサンプルはCで表される。中心位置にあり、第2の色成分のサンプルはFで表される。第2の色成分はP0~P3の第1の色成分と同じでもよく、或いは、P0~P3の第1の色成分と異なってもよい。
【0179】
再構成されたサンプルは、SO-NLMフィルタに入力され、フィルタタップを形成するために適切に処理される。一例では、SO-NLMフィルタへの入力である再構成されたサンプルの位置は、フィルタタップ位置と呼ばれる。特定の例では、再構成されたサンプルは、以下の2つのステップで処理される。
【0180】
第1のステップにおいて、P0~P3とCの間のそれぞれのデルタ値が計算される。例えば、m0はP0とCの間のデルタ値を表し、m1はP1とCの間のデルタ値を表し、m2はP2とCの間のデルタ値を表し、m3はP3とCの間のデルタ値を表する。
【0181】
第2のステップにおいて、デルタ値m0~m3がさらに量子化され、量子化された値はd0、d1、d2、d3として表される。一例では、量子化された値は、量子化プロセスに基づいて、-1、0、1のいずれかでありうる。例えば、mが-Nより小さい場合(Nは正の値であり、量子化ステップサイズと称される)、値mは-1に量子化されることができ、mが[-N,N]の範囲にある場合、値mは0に量子化されることができ、mがNよりも大きい場合、値mは1に量子化されることができる。いくつかの例において、量子化ステップサイズNは、4、8、12、16等のうちの1つでありうる。
【0182】
いくつかの実施形態において、量子化された値d0~d3は、フィルタタップであり、フィルタドメイン内の1つの組み合わせを同定するために使用することができる。例えば、フィルタタップd0~d3は、フィルタドメイン内で組み合わせを形成することができる。各フィルタタップは3つの量子化された値をもつことができるので、4つのフィルタタップが使用される場合、フィルタドメインは81(3×3×3×3)個の組み合わせを含む。
【0183】
図27A~27Cは、本開示のある実施形態による、81個の組み合わせを有するテーブル(2700)を示す。テーブル(2700)は、81個の組み合わせに対応する81個の行を含む。組み合わせに対応する各行において、第1の列は、組み合わせのインデックスを含み、第2の列は、その組み合わせについてのフィルタタップd0の値を含み、第3の列は、その組み合わせについてのフィルタタップd1の値を含み、第4の列は、その組み合わせについてのフィルタタップd2の値を含み、第5の列は、その組み合わせについてのフィルタタップd3の値を含み、第6の列は、非線形マッピングについてその組み合わせに関連するオフセット値を含む。一例では、フィルタタップd0~d3が決定される場合、d0~d3の組み合わせに関連するオフセット値(sによって表される)は、テーブル(2700)に従って決定されることができる。一例では、オフセット値s0~s80は、0、1、-1、3、-3、5、-5、-7等の整数である。
【0184】
いくつかの実施形態では、式(16)に示されるように、SO-NLMの最終フィルタリングプロセスが適用されることができる。
f'=clip(f+s) 式(16)
ここで、fは、フィルタリングされるべき第2の色成分の再構成されたサンプルであり、sは、テーブル(2700)を使う等して、第1の色成分の再構成されたサンプルの処理結果であるフィルタタップに従って決定されるオフセット値である。再構成されたサンプルFとオフセット値sの和は、ビット深さに関連する範囲内にさらにクリッピングされて、第2の色成分の最終的なフィルタリングされたサンプルf'を決定する。
【0185】
なお、LSOの場合、上記の説明の第2の色成分は第1の色成分と同じであり、CCSOの場合、上記の説明の第2の色成分は第1の色成分とは異なる場合がある。
【0186】
なお、上記の説明は、本開示の他の実施形態のために調整されることができる。
【0187】
いくつかの例では、エンコーダ側で、符号化デバイスは、フィルタサポート領域内の第1の色成分の再構成されたサンプルと、第2の色成分の再構成されたサンプルに加えられるべきオフセットとの間のマッピングを導出することができる。マッピングは、任意の適切な線形又は非線形マッピングでありうる。その場合、フィルタリングプロセスは、該マッピングに基づいて、エンコーダ側及び/又はデコーダ側で適用されることができる。例えば、マッピングは、適切にデコーダに通知され(例えば、マッピングは、エンコーダ側からデコーダ側に送信される符号化ビデオビットストリームに含まれる)、その後、デコーダは、マッピングに基づいてフィルタリングプロセスを実行することができる。
【0188】
CCSOフィルタ、LSOフィルタ等のような非線形マッピングベースのフィルタの実行は、フィルタ形状構成に依存する。フィルタのフィルタ形状構成(フィルタ形状とも呼ばれる)は、フィルタタップ位置によって形成されるパターンのプロパティを指すことができる。パターンは、フィルタタップ数、フィルタタップ位置の幾何学的形状、パターンの中心までのフィルタタップ位置の距離等のような様々なパラメータによって定義できる。固定したフィルタ形状構成を使用することは、非線形マッピングベースのフィルタの性能を制限する可能性がある。
【0189】
図24及び
図25並びに
図27A~27Cに示すように、いくつかの例は、非線形マッピングベースのフィルタのフィルタ形状構成に5タップフィルタ設計を使用する。5タップフィルタ設計は、P0、P1、P2、P3、及びCにおけるタップ位置を使用することができる。フィルタ形状構成の5タップフィルタ設計は、
図27A~27Cに示すように、81個のエントリを有するルックアップテーブル(LUT)を生じることができる。サンプルオフセットのLUTはエンコーダ側からデコーダ側に信号伝達される必要があり、LUTの信号伝達は信号伝達オーバーヘッドの大部分に寄与し、非線形マッピングベースのフィルタを使用する符号化効率に影響を与える可能性がある。本開示のいくつかの側面によれば、フィルタタップ数は5と異なりうる。いくつかの例では、フィルタタップ数が低減でき、フィルタサポート領域内の情報が依然として捕捉でき、符号化効率が改善できる。
【0190】
いくつかの例では、非線形マッピングベースのフィルタについてのグループ内のフィルタ形状構成は、それぞれ3つのフィルタタップを有する。
【0191】
図28は、一例における3つのフィルタタップの7つのフィルタ形状構成を示す。具体的には、第1のフィルタ形状構成は、「1」及び「c」としてラベル付けされた位置に3つのフィルタタップを含み、位置「c」は位置「1」の中心位置である。第2のフィルタ形状構成は、「2」としてラベル付けされた位置及び位置「c」に3つのフィルタタップを含み、位置「c」は位置「2」の中心位置である。第3のフィルタ形状構成は、「3」としてラベル付けされた位置及び位置「c」に3つのフィルタタップを含み、位置「c」は位置「3」の中心位置である。第4のフィルタ形状構成は、「4」としてラベル付けされた位置及び位置「c」に3つのフィルタタップを含み、位置「c」は位置「4」の中心位置である。第5のフィルタ形状構成は、「5」及び「c」としてラベル付けされた位置に3つのフィルタタップを含み、位置「c」は位置「5」の中心位置である。第6のフィルタ形状構成は、「6」としてラベル付けされた位置及び位置「c」に3つのフィルタタップを含み、位置「c」は位置「6」の中心位置である。第7のフィルタ形状構成は、「7」としてラベル付けされた位置及び位置「c」に3つのフィルタタップを含み、位置「c」は位置「7」の中心位置である。
【0192】
本開示の諸側面は、フィルタリング、境界処理、クリッピングツール等のようなビデオ処理ツールを統合するための技法を提供する。いくつかの例では、非線形マッピングベースのフィルタ(例えば、CCSO、LSO)及び他のツール(例えば、クリッピングモジュール)は、デブロッキングフィルタの後且つLRフィルタの前にあり、境界ピクセルの2つのコピーを記憶する境界処理プロセスも、デブロッキングフィルタの後且つLRフィルタの前に適用される。本開示は、デブロッキングフィルタの後且つLRフィルタの前に、非線形マッピングベースのフィルタ、境界処理モジュール、及び/又はクリッピングモジュールを含めるための様々な構成を提供する。
【0193】
図29は、いくつかの例におけるループフィルタチェーン(2900)のブロック図を示す。ループフィルタチェーン(2900)は、フィルタチェーン内で直列に接続された複数のフィルタを含む。一例では、ループフィルタチェーン(2900)は、ループフィルタユニット(556)のようなループフィルタリングユニットのように使用できる。ループフィルタチェーン(2900)は、再構成されたピクチャを参照ピクチャメモリ(557)のような復号ピクチャバッファに記憶する前に、符号化又は復号ループにおいて使用できる。ループフィルタチェーン(2900)は、前処理モジュールから入力再構成サンプルを受信し、再構成サンプルに対してフィルタを適用して、出力再構成サンプルを生成する。
【0194】
ループフィルタチェーン(2900)は、任意の適切なフィルタを含むことができる。
図29の例では、ループフィルタチェーン(2900)は、チェーンで接続されたデブロッキングフィルタ(デブロッキングとラベル付けされている)、制約方向性エンハンスメントフィルタ(CDEFとラベル付けされている)及びループ内復元フィルタ(LRとラベル付けされている)を含む。ループフィルタチェーン(2900)は、入力ノード(2901)、出力ノード(2909)及び複数の中間ノード(2902)~(2903)を有する。ループフィルタチェーン(2900)の入力ノード(2901)は前処理モジュールから入力再構成サンプルを受信し、入力再構成サンプルはデブロッキングフィルタに提供される。中間ノード(2902)は、デブロッキングフィルタから(デブロッキングフィルタによって処理された後の)再構成サンプルを受信し、さらなるフィルタ処理のために再構成サンプルをCDEFに提供する。中間ノード(2903)は、CDEFから(CDEFによって処理された後の)再構成サンプルを受信し、さらなるフィルタ処理のために再構成サンプルをLRフィルタに提供する。出力ノード(2909)は、LRフィルタから(LRフィルタによって処理された後の)出力再構成サンプルを受信する。出力再構成サンプルは、さらなる処理のために、後処理モジュール等の他の処理モジュールに提供できる。
【0195】
以下の説明は、ループフィルタチェーン(2900)において非線形マッピングベースのフィルタを使用する技法を示すことに留意されたい。非線形マッピングベースのフィルタを使用する技法は、他の適切なループフィルタチェーンにおいても使用できる。
【0196】
開示のいくつかの側面によれば、非線形マッピングベースのフィルタがループフィルタチェーンにおいて使用される場合に、LRフィルタ内の境界処理によって使用される境界ピクセル値のコピー(COPY0及びCOPY1)の少なくとも1つは、非線形マッピングベースのフィルタに関連する。いくつかの例では、境界ピクセル値が取得されてバッファリングされる再構成サンプルは、非線形マッピングベースのフィルタの入力になりうる。いくつかの例では、境界ピクセル値が取得されてバッファリングされる再構成サンプルは、非線形マッピングベースのフィルタを適用した結果になりうる。いくつかの例では、境界ピクセル値が取得されてバッファリングされる再構成サンプルは、非線形マッピングベースのフィルタによって生成されたサンプルオフセットと組み合わせることができる。
【0197】
いくつかの例では、デブロッキングフィルタの後且つCDEF又は非線形マッピングベースのフィルタの前のピクセルがCOPY0に使用され、CDEF又は非線形マッピングベースのフィルタの適用の後且つLRフィルタの前のピクセルがCOPY1に使用される。
【0198】
図30は、非線形マッピングベースのフィルタと、非線形マッピングベースのフィルタの入力と出力との間のCDEFとを含むループフィルタチェーン(3000)の例を示している。ループフィルタチェーン(3000)は、符号化デバイス又は復号デバイスにおけるループフィルタチェーン(2900)の代わりに使用できる。ループフィルタチェーン(3000)では、デブロッキングフィルタは第1の中間ノード(3011)における第1の中間再構成サンプルを生成し、第1の中間再構成サンプルはCDEF及び非線形マッピングベースのフィルタ(SO-NLMとラベル付けされている)に入力される。CDEFは、第1の中間再構成サンプルに対して適用され、第2の中間ノード(3012)における第2の中間再構成サンプルを生成する。非線形マッピングベースのフィルタは、第1の中間再構成サンプルに基づいてサンプルオフセットSOを生成する。サンプルオフセットSOは第2の中間再構成サンプルと組み合わされて、第3の中間ノード(3013)における第3の中間再構成サンプルを生成する。次いで、LRフィルタは、第3の中間再構成サンプルに対して適用されて、ループフィルタチェーン(3000)の出力を生成する。さらに、第1の中間ノード(3011)における第1の中間再構成サンプルを使用して、LRフィルタにおける境界処理のための境界ピクセルの第1のコピーCOPY0を取得し、第3の中間ノード(3013)における第3の中間再構成サンプルを使用して、LRフィルタにおける境界処理のための境界ピクセルの第2のコピーCOPY1を取得する。
【0199】
いくつかの例では、デブロッキングフィルタの後且つCDEF又は非線形マッピングベースのフィルタの適用の前のピクセルがCOPY0に使用され、CDEFの適用の後且つ非線形マッピングベースのフィルタの適用の前のピクセルがCOPY1に使用される。
【0200】
図31は、非線形マッピングベースのフィルタと、非線形マッピングベースのフィルタの入力と出力との間のCDEFとを含むループフィルタチェーン(3100)の例を示している。ループフィルタチェーン(3100)は、符号化デバイス又は復号デバイスにおけるループフィルタチェーン(2900)の代わりに使用できる。ループフィルタチェーン(3100)では、デブロッキングフィルタは第1の中間ノード(3111)における第1の中間再構成サンプルを生成し、第1の中間再構成サンプルはCDEF及び非線形マッピングベースのフィルタ(SO-NLMとラベル付けされている)に入力される。CDEFは、第1の中間再構成サンプルに対して適用され、第2の中間ノード(3112)における第2の中間再構成サンプルを生成する。非線形マッピングベースのフィルタは、第1の中間再構成サンプルに基づいてサンプルオフセットSOを生成する。サンプルオフセットSOは第2の中間再構成サンプルと組み合わされて、第3の中間ノード(3113)における第3の中間再構成サンプルを生成する。次いで、LRフィルタは、第3の中間再構成サンプルに対して適用されて、ループフィルタチェーン(3100)の出力を生成する。さらに、第1の中間ノード(3111)における第1の中間再構成サンプルを使用して、LRフィルタにおける境界処理のための境界ピクセルの第1のコピーCOPY0を取得し、第2の中間ノード(3012)における第2の中間再構成サンプルを使用して、LRフィルタにおける境界処理のための境界ピクセルの第2のコピーCOPY1を取得する。
【0201】
いくつかの例では、非線形マッピングベースのフィルタはループフィルタチェーン内の他のフィルタと直列に接続され、非線形マッピングベースのフィルタの入力と出力との間に他のフィルタはない。一例では、非線形マッピングベースのフィルタはCDEFの後に適用される。デブロッキングフィルタの後且つCDEFの前のピクセルがCOPY0に使用され、非線形マッピングベースのフィルタの後且つLRフィルタの前のピクセルがCOPY1に使用される。
【0202】
図32は、一例におけるループフィルタチェーン(3200)の例を示す。ループフィルタチェーン(3200)は、符号化デバイス又は復号デバイスにおけるループフィルタチェーン(2900)の代わりに使用できる。ループフィルタチェーン(3200)では、CDEFは第1の中間ノード(3211)と第2の中間ノード(3212)との間にあり、非線形マッピングベースのフィルタ(SO-NLMとラベル付けされている)は、ループフィルタチェーン(3200)の第2の中間ノード(3212)において適用される。具体的には、デブロッキングフィルタは第1の中間ノード(3211)における第1の中間再構成サンプルを生成し、CDEFは第1の中間再構成サンプルに対して適用され、第2の中間ノード(3212)における第2の中間再構成サンプルを生成する。第2の中間再構成サンプルは非線形マッピングベースのフィルタの入力である。当該入力に基づいて、非線形マッピングベースのフィルタはサンプルオフセット(SO)を生成する。サンプルオフセットは、第2の中間ノード(3212)における第2の中間再構成サンプルと組み合わされて、第3の中間ノード(3213)における第3の中間再構成サンプルを生成する。LRフィルタは第3の中間再構成サンプルに適用されて、ループフィルタチェーン(3200)の出力を生成する。さらに、第1の中間ノード(3211)における第1の中間再構成サンプルを使用して、LRフィルタにおける境界処理のための境界ピクセルの第1のコピーCOPY0を取得し、第3のノード(3213)における第3の中間再構成サンプルを使用して、LRフィルタにおける境界処理のための境界ピクセルの第2のコピーCOPY1を取得する。
【0203】
一例では、非線形マッピングベースのフィルタがCDEFの前に適用される。デブロッキングフィルタの後且つ非線形マッピングベースのフィルタの前のピクセルがCOPY0に使用され、CDEFの後且つLRフィルタの前のピクセルがCOPY1に使用される。
【0204】
図33は、一例におけるループフィルタチェーン(3300)の例を示す。ループフィルタチェーン(3300)は、符号化デバイス又は復号デバイスにおけるループフィルタチェーン(2900)の代わりに使用できる。ループフィルタチェーン(3300)では、非線形マッピングベースのフィルタ(SO-NLMとラベル付けされている)がループフィルタチェーン(3300)の第1の中間ノード(3311)において適用され、CDEFは第2の中間ノード(3312)と第3の中間ノード(3313)との間にある。具体的には、デブロッキングフィルタは第1の中間ノード(3311)における第1の中間再構成サンプルを生成する。第1の中間再構成サンプルは、非線形マッピングベースのフィルタの入力である。当該入力に基づいて、非線形マッピングベースのフィルタはサンプルオフセット(SO)を生成する。サンプルオフセットは、第1の中間ノード(3311)における第1の中間再構成サンプルと組み合わされて、第2の中間ノード(3312)における第2の中間再構成サンプルを生成する。CDEFは、第2の中間再構成サンプルに対して適用され、第3の中間ノード(3313)における第3の中間再構成サンプルを生成する。LRフィルタは第3の中間再構成サンプルに適用されて、ループフィルタチェーン(3300)の出力を生成する。さらに、第1の中間ノード(3311)における第1の中間再構成サンプルを使用して、LRフィルタにおける境界処理のための境界ピクセルの第1のコピーCOPY0を取得し、第3の中間ノード(3313)における第3の中間再構成サンプルを使用して、LRフィルタにおける境界処理のための境界ピクセルの第2のコピーCOPY1を取得する。
【0205】
本開示のある側面によれば、LRフィルタの境界処理(例えば、LRフィルタにおけるCOPY0及びCOPY1の取得並びにCOPY0及びCOPY1の使用)の有効化/無効化は、ループフィルタリングチェーン内の非線形マッピングベースのフィルタ、CDEF及び/又はFSRのような他のフィルタリングツールの有効化/無効化に依存する。
【0206】
いくつかの例では、境界処理の有効化/無効化は、非線形マッピングベースのフィルタ及び/又はCDEF及び/又はFSRの有効化/無効化に依存する。例えば、フラグEn-Boundaryは、境界処理の有効化(例えば、フラグEn-Boundaryがバイナリ1をもつ)又は無効化(例えば、フラグEn-Boundaryがバイナリ0をもつ)を示すために使用される。フラグEn-SO-NLMは、非線形マッピングベースのフィルタの適用の有効化(例えば、フラグEn-SO-NLMがバイナリ1をもつ)又は無効化(例えば、フラグEn-SO-NLMがバイナリ0をもつ)を示すために使用される。フラグEn-CDEFは、CDEFの適用の有効化(例えば、フラグEn-CDEFがバイナリ1をもつ)又は無効化(例えば、フラグEn-CDEFがバイナリ0をもつ)を示すために使用される。フラグEn-FSRは、FSRの適用の有効化(例えば、フラグEn-FSRがバイナリ1をもつ)又は無効化(例えば、フラグEn-FSRがバイナリ0をもつ)を示すために使用される。その場合、一例では、フラグEn-Boundaryは、フラグEn-SO-NLM、フラグEn-CDEF、及びフラグEn-FSRの論理的な組み合わせである。AND、OR、NOT等のような任意の適切な論理演算子が使用できることに留意されたい。
【0207】
いくつかの例では、境界処理の有効化/無効化は、非線形マッピングベースのフィルタ及び/又はCDEFの有効化/無効化に依存する。例えば、フラグEn-Boundaryは、境界処理の有効化(例えば、フラグEn-Boundaryがバイナリ1をもつ)又は無効化(例えば、フラグEn-Boundaryがバイナリ0をもつ)を示すために使用される。フラグEn-SO-NLMは、非線形マッピングベースのフィルタの適用の有効化(例えば、フラグEn-SO-NLMがバイナリ1をもつ)又は無効化(例えば、フラグEn-SO-NLMがバイナリ0をもつ)を示すために使用される。フラグEn-CDEFは、CDEFの適用の有効化(例えば、フラグEn-CDEFがバイナリ1をもつ)又は無効化(例えば、フラグEn-CDEFがバイナリ0をもつ)を示すために使用される。その場合、一例では、フラグEn-Boundaryは、フラグEn-SO-NLM及びフラグEn-CDEFの論理的な組み合わせである。AND、OR、NOT等のような任意の適切な論理演算子が使用できることに留意されたい。
【0208】
いくつかの例では、境界処理の有効化/無効化は、非線形マッピングベースのフィルタ及び/又はFSRの有効化/無効化に依存する。例えば、フラグEn-Boundaryは、境界処理の有効化(例えば、フラグEn-Boundaryがバイナリ1をもつ)又は無効化(例えば、フラグEn-Boundaryがバイナリ0をもつ)を示すために使用される。フラグEn-SO-NLMは、非線形マッピングベースのフィルタの適用の有効化(例えば、フラグEn-SO-NLMがバイナリ1をもつ)又は無効化(例えば、フラグEn-SO-NLMがバイナリ0をもつ)を示すために使用される。フラグEn-FSRは、FSRの適用の有効化(例えば、フラグEn-FSRがバイナリ1をもつ)又は無効化(例えば、フラグEn-FSRがバイナリ0をもつ)を示すために使用される。その場合、一例では、フラグEn-Boundaryは、フラグEn-SO-NLM及びフラグEn-FSRの論理的な組み合わせである。AND、OR、NOT等のような任意の適切な論理演算子が使用できることに留意されたい。
【0209】
いくつかの例では、境界処理の有効化/無効化は、非線形マッピングベースのフィルタに依存する。例えば、フラグEn-Boundaryは、境界処理の有効化(例えば、フラグEn-Boundaryがバイナリ1をもつ)又は無効化(例えば、フラグEn-Boundaryがバイナリ0をもつ)を示すために使用される。フラグEn-SO-NLMは、非線形マッピングベースのフィルタの適用の有効化(例えば、フラグEn-SO-NLMがバイナリ1をもつ)又は無効化(例えば、フラグEn-SO-NLMがバイナリ0をもつ)を示すために使用される。その場合、一例では、フラグEn-BoundaryはフラグEn-SO-NLMにすることができ、或いは、フラグEn-SO-NLMの論理NOTにすることもできる。
【0210】
一実施形態では、境界処理の有効化/無効化は、CDEF及び/又はFSRの有効化/無効化に依存する。
【0211】
いくつかの例では、境界処理の有効化/無効化は、CDEF及び/又はFSRの有効化/無効化に依存する。例えば、フラグEn-Boundaryは、境界処理の有効化(例えば、フラグEn-Boundaryがバイナリ1をもつ)又は無効化(例えば、フラグEn-Boundaryがバイナリ0をもつ)を示すために使用される。フラグEn-CDEFは、CDEFの適用の有効化(例えば、フラグEn-CDEFがバイナリ1をもつ)又は無効化(例えば、フラグEn-CDEFがバイナリ0をもつ)を示すために使用される。フラグEn-FSRは、FSRの適用の有効化(例えば、フラグEn-FSRがバイナリ1をもつ)又は無効化(例えば、フラグEn-FSRがバイナリ0をもつ)を示すために使用される。その場合、一例では、フラグEn-Boundaryは、フラグEn-CDEF及びフラグEn-FSRの論理的な組み合わせである。AND、OR、NOT等のような任意の適切な論理演算子が使用できることに留意されたい。
【0212】
いくつかの例では、境界処理の有効化/無効化は、CDEFの有効化/無効化に依存する。例えば、フラグEn-Boundaryは、境界処理の有効化(例えば、フラグEn-Boundaryがバイナリ1をもつ)又は無効化(例えば、フラグEn-Boundaryがバイナリ0をもつ)を示すために使用される。フラグEn-CDEFは、非線形マッピングベースのフィルタの適用の有効化(例えば、フラグEn-CDEFがバイナリ1をもつ)又は無効化(例えば、フラグEn-CDEFがバイナリ0をもつ)を示すために使用される。その場合、一例では、フラグEn-BoundaryはフラグEn-CDEFにすることができ、或いは、フラグEn-CDEFの論理NOTにすることもできる。
【0213】
一実施形態では、境界処理の有効化/無効化は、FSRの有効化/無効化に依存する。
【0214】
いくつかの例では、境界処理の有効化/無効化は、FSRの有効化/無効化に依存する。例えば、フラグEn-Boundaryは、境界処理の有効化(例えば、フラグEn-Boundaryがバイナリ1をもつ)又は無効化(例えば、フラグEn-Boundaryがバイナリ0をもつ)を示すために使用される。フラグEn-FSRは、非線形マッピングベースのフィルタの適用の有効化(例えば、フラグEn-FSRがバイナリ1をもつ)又は無効化(例えば、フラグEn-FSRがバイナリ0をもつ)を示すために使用される。その場合、一例では、フラグEn-BoundaryはフラグEn-FSRにすることができ、或いは、フラグEn-FSRの論理NOTにすることもできる。
【0215】
本開示のいくつかの側面によれば、ピクセル値はLRフィルタの前にクリッピングされる。いくつかの例では、CDEFを適用した後のピクセルが最初にクリッピングされ、CLIP0として記される。次いで、非線形マッピングベースのフィルタを適用した後のピクセルがクリッピングされ、CLIP1として記される。いくつかの例では、ピクセル値は、ピクセル値にとって意味のある適切な範囲にクリッピングされることに留意されたい。一例では、ピクセル値が8ビットで表される場合、ピクセル値は[0,255]の範囲にクリッピングされうる。
【0216】
この説明では、ループフィルタチェーンに沿った異なるノードにおける境界ピクセル値をバッファリングするための技法、及び/又はループフィルタチェーンに沿った異なるノードにおけるピクセル値をクリッピングするための技法を示すために、非線形マッピングベースのフィルタが例として使用されることに留意されたい。この技法は、クロスコンポーネントサンプル適応オフセット(cross component sample adaptive offset、CCSAO)ツール等のような他のコーディングツールが、デブロッキングフィルタの後且つLRフィルタの前に適用される場合に使用できる。
【0217】
図34は、非線形マッピングベースのフィルタの入力と出力の間にCDEFを有する非線形マッピングベースのフィルタを含むループフィルタチェーン(3400)の例を示す。ループフィルタチェーン(3400)は、符号化デバイス又は復号デバイスにおけるループフィルタチェーン(2900)の代わりに使用できる。ループフィルタチェーン(3400)では、非線形マッピングベースのフィルタ(SO-NLMとラベル付けされている)が2つの中間ノードの間に適用される。デブロッキングフィルタは、第1の中間ノード(3411)における第1の中間再構成サンプルを生成する。第1の中間再構成サンプルは、CDEFと非線形マッピングベースのフィルタとの双方の入力である。第1の中間再構成サンプルに基づいて、CDEFが適用され、第2の中間ノード(3412)における第2の中間再構成サンプルを生成する。また、第1の中間再構成サンプルに基づいて、非線形マッピングベースのフィルタはサンプルオフセット(SO)を生成する。第2の中間再構成サンプルがクリッピングされ、CLIP0を生成する。CLIP0は、サンプルオフセットと組み合わされて、第3の中間ノード(3413)における第3の中間再構成サンプルを生成し、第3の中間再構成サンプルがクリッピングされて、CLIP1を生成する。CLIP1は、さらにフィルタリングするためにLRフィルタに提供される。
【0218】
図35は、非線形マッピングベースのフィルタの入力と出力の間にCDEFを有する非線形マッピングベースのフィルタを含むループフィルタチェーン(3500)の例を示す。ループフィルタチェーン(3500)は、符号化デバイス又は復号デバイスにおけるループフィルタチェーン(2900)の代わりに使用できる。ループフィルタチェーン(3500)では、非線形マッピングベースのフィルタ(SO-NLMとラベル付けされている)が2つの中間ノードの間に適用される。デブロッキングフィルタは、第1の中間ノード(3511)における第1の中間再構成サンプルを生成する。第1の中間再構成サンプルは、CDEFと非線形マッピングベースのフィルタとの双方の入力である。第1の中間再構成サンプルに基づいて、CDEFが適用され、第2の中間ノード(3512)における第2の中間再構成サンプルを生成する。また、第1の中間再構成サンプルに基づいて、非線形マッピングベースのフィルタはサンプルオフセット(SO)を生成する。第2の中間再構成サンプルは、サンプルオフセットと組み合わされて、第3の中間ノード(3513)における第3の中間再構成サンプルを生成し、第3の中間再構成サンプルがクリッピングされて、CLIP0を生成する。CLIP0は、さらにフィルタリングするためにLRフィルタに提供される。
【0219】
図36は、本開示のある実施形態による、プロセス(3600)を概説するフローチャートを示す。プロセス(3600)は、ビデオフィルタリングに使用できる。ブロックという用語が使用される場合、ブロックは、予測ブロック、符号化ユニット、ルマブロック、クロマブロック等として解釈されうる。様々な実施形態において、プロセス(3600)は、端末デバイス(310)、(320)、(330)及び(340)の処理回路、ビデオエンコーダ(403)の機能を実行する処理回路、ビデオデコーダ(410)の機能を実行する処理回路、ビデオデコーダ(510)の機能を実行する処理回路、ビデオエンコーダ(603)の機能を実行する処理回路等の処理回路によって実行される。いくつかの実施形態では、プロセス(3600)は、ソフトウェア命令において実装され、よって、処理回路が該ソフトウェア命令を実行すると、処理回路は、プロセス(3600)を実行する。プロセスは(S3601)から始まり、(S3610)に進む。
【0220】
(S3610)において、ループフィルタチェーンに沿った第1のノードにおける第1の再構成サンプルの第1の境界ピクセル値がバッファリングされる。第1のノードは、ループ復元フィルタの前にループフィルタチェーンにおいて適用される非線形マッピングベースのフィルタに関連する。
【0221】
いくつかの例では、非線形マッピングベースのフィルタはクロスコンポーネントサンプルオフセット(cross-component sample offset、CCSO)フィルタである。いくつかの例では、非線形マッピングベースのフィルタは局所サンプルオフセット(local sample offset、LSO)フィルタである。
【0222】
(S3620)において、ループ復元フィルタは、バッファリングされた第1の境界ピクセル値に基づいて、フィルタリング対象の再構成サンプルに対して適用される。
【0223】
いくつかの例では、第1のノードにおける第1の再構成サンプルは、非線形マッピングベースのフィルタの入力である。
【0224】
図30、
図31及び
図33の例において、第1のノードは、
図30、
図31及び
図33のそれぞれの説明における第1の中間ノード(3011)/(3111)/(3311)とすることができ、第1の再構成サンプルは、
図30、
図31及び
図3のそれぞれの説明における第1の中間再構成サンプルとすることができる。
【0225】
次いで、
図30及び
図33の例において、ループフィルタチェーンに沿った第2のノードにおける第2の再構成サンプルの第2の境界ピクセル値がバッファリングでき、第2のノードにおける第2の再構成サンプルは、非線形マッピングベースのフィルタによって生成されたサンプルオフセットの適用の後に生成される。ループ復元フィルタは、バッファリングされた第1の境界ピクセル値及びバッファリングされた第2の境界ピクセル値に基づいて、フィルタリング対象の再構成サンプルに対してループ復元フィルタを適用される。
【0226】
図30の例において、非線形マッピングベースのフィルタによって生成されたサンプルオフセットは、制約方向性強化(エンハンスメント)フィルタの出力(例えば、
図30の説明における第2の中間再構成サンプル)と組み合わされて、第2の再構成サンプル(例えば、
図30の説明における第3の中間再構成サンプル)を生成する。
【0227】
図33の例において、非線形マッピングベースのフィルタによって生成されたサンプルオフセットは、第1の再構成サンプル(例えば、
図33の説明における第1の中間再構成サンプル)と組み合わされて、中間再構成サンプル(例えば、
図33の説明における第2の中間再構成サンプル)を生成し、次いで、制約方向性強化フィルタが中間再構成サンプルに適用されて、第2の再構成サンプル(例えば、
図33の説明における第3の中間再構成サンプル)を生成する。
【0228】
図31の例において、ループフィルタに沿った第2のノードにおける第2の再構成サンプル(例えば、
図33の説明における第2の中間ノード(3122)における第2の中間再構成サンプル)の第2の境界ピクセル値がバッファリングされる。第2のノードにおける第2の再構成サンプルは、非線形マッピングベースのフィルタによって生成されたサンプルオフセットと組み合わされて、フィルタリング対象の再構成サンプルを生成する。ループ復元フィルタは、バッファリングされた第1の境界ピクセル値及びバッファリングされた第2の境界ピクセル値に基づいて、フィルタリング対象の再構成サンプルに対して適用される。
【0229】
図32の例において、第1の再構成サンプルは、非線形マッピングベースのフィルタを適用した結果である、
図32の説明における第3の中間ノード(3213)における第3の中間再構成サンプルになりうる。次いで、デブロッキングフィルタによって生成された第2の再構成サンプル(例えば、
図32の説明における第2の中間再構成サンプル)の第2の境界ピクセル値がバッファリングされる。制約方向性強化フィルタは、第2の再構成サンプルに対して適用されて、中間再構成サンプル(例えば、
図32の説明における第2の中間再構成サンプル)を生成する。中間再構成サンプルは、非線形マッピングベースのフィルタによって生成されたサンプルオフセットと組み合わされて、第1の再構成サンプル(例えば、
図32の説明における第3の中間再構成サンプル)を生成する。次いで、ループ復元フィルタは、バッファリングされた第1の境界ピクセル値及びバッファリングされた第2の境界ピクセル値に基づいて適用できる。
【0230】
いくつかの例では、フィルタリング対象の再構成サンプルは、
図34及び
図35の例のように、ループ復元フィルタの適用の前に、8ビットの場合には[0,255]のような適切な範囲にクリッピングされる。いくつかの例(例えば、
図34)では、中間再構成サンプル(例えば、
図34の説明における第2の中間再構成サンプル)は、非線形マッピングベースのフィルタによって生成されたサンプルオフセットとの組み合わせの前に、8ビットの場合には[0,255]のような適切な範囲にクリッピングされる。
【0231】
プロセス(3600)は(S3699)に進み、終了する。
【0232】
いくつかの例では、非線形マッピングベースのフィルタはクロスコンポーネントサンプルオフセット(cross-component sample offset、CCSO)フィルタである。いくつかの例では、非線形マッピングベースのフィルタは局所サンプルオフセット(local sample offset、LSO)フィルタである。
【0233】
プロセス(3600)は、適切に適応できる。プロセス(3600)におけるステップは、修正及び/又は省略することができる。追加のステップを追加できる。任意の適切な実施順序を使用できる。
【0234】
本開示の実施形態は、別々に、又は任意の順序で組み合わせて使用されうる。さらに、各方法(又は実施形態)、エンコーダ、及びデコーダは、処理回路(例えば、1つ以上のプロセッサ、又は1つ以上の集積回路)によって実装されてもよい。一例では、前記1つ以上のプロセッサは、非一時的なコンピュータ読み取り可能媒体に記憶されたプログラムを実行する。
【0235】
上述の技法は、コンピュータ読み取り可能な命令を用いてコンピュータソフトウェアとして実装することができ、1つ以上のコンピュータ読み取り可能な媒体に物理的に記憶されることができる。例えば、
図37は、開示された主題のある種の実施形態を実施するのに好適なコンピュータシステム(3700)を示す。
【0236】
コンピュータソフトウェアは、任意の好適な機械コード又はコンピュータ言語を用いてコーディングされることができ、アセンブリ、コンパイル、リンク、又は同様の機構の対象とされて、1つ以上のコンピュータ中央処理ユニット(CPU)、グラフィックス処理ユニット(GPU)等によって、直接的に、又はインタープリット、マイクロコード実行等を通じて実行可能な命令を含むコードを作成することができる。
【0237】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、モノのインターネットデバイス等を含む様々なタイプのコンピュータ又はそのコンポーネント上で実行されることができる。
【0238】
コンピュータシステム(3700)について
図37に示されるコンポーネントは、例としての性質であり、本開示の実施形態を実装するコンピュータソフトウェアの使用又は機能の範囲に関する制限を示唆することを意図したものではない。コンポーネントの構成も、コンピュータシステム(3700)の例示的実施形態において示されているコンポーネントの任意の1つ又は組み合わせに関する何らかの依存性又は要件を有するものとして解釈されるべきではない。
【0239】
コンピュータシステム(3700)は、ある種のヒューマンインターフェース入力デバイスを含むことができる。そのようなヒューマンインターフェース入力デバイスは、例えば、触覚入力(例えば、キーストローク、スワイプ、データグローブの動き)、音声入力(例えば、声、拍手)、視覚入力(例えば、ジェスチャー)、嗅覚入力(図示せず)を通じた一又は複数の人間ユーザによる入力に応答することができる。また、ヒューマンインターフェースデバイスは、音声(例えば、発話、音楽、周囲の音)、画像(例えば、スキャンされた画像、スチール画像カメラから得られる写真画像)、ビデオ(例えば、2次元ビデオ、立体視ビデオを含む3次元ビデオ)のような、人間による意識的入力に必ずしも直接関係しないある種のメディアを捕捉するために使用できる。
【0240】
入力ヒューマンインターフェースデバイスは、キーボード(3701)、マウス(3702)、トラックパッド(3703)、タッチスクリーン(3710)、データグローブ(図示せず)、ジョイスティック(3705)、マイクロフォン(3706)、スキャナ(3707)、カメラ(3708)の1つ以上(それぞれの一つしか図示していない)を含んでいてもよい。
【0241】
コンピュータシステム(3700)はまた、ある種のヒューマンインターフェース出力デバイスを含んでいてもよい。そのようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音、光、及び臭い/味を通じて、一又は複数の人間ユーザの感覚を刺激するものであってもよい。そのようなヒューマンインターフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン(3710)、データグローブ(図示せず)、又はジョイスティック(3705)による触覚フィードバック;ただし、入力デバイスのはたらきをしない触覚フィードバックデバイスもありうる)、音声出力デバイス(例えば、スピーカー(3709)、ヘッドフォン(図示せず))、視覚出力デバイス(例えば、CRT画面、LCD画面、プラズマスクリーン、OLED画面を含む画面(3710);それぞれはタッチスクリーン入力機能があってもなくてもよく、それぞれは触覚フィードバック機能があってもなくてもよく、そのうちのいくつかは、2次元の視覚出力又は立体視出力のような手段を通じた3次元より高い出力を出力することができる;仮想現実感眼鏡(図示せず)、ホログラフィーディスプレイ及び煙タンク(図示せず))、及びプリンタ(図示せず)を含んでいてもよい。
【0242】
コンピュータシステム(3700)はまた、人間がアクセス可能な記憶デバイス及び関連する媒体、例えば、CD/DVD又は類似の媒体(3721)とともにCD/DVD ROM/RW(3720)を含む光学式媒体、サムドライブ(3722)、取り外し可能なハードドライブ又はソリッドステートドライブ(3723)、テープ及びフロッピーディスクといったレガシー磁気媒体(図示せず)、セキュリティドングルのような特化したROM/ASIC/PLDベースのデバイス(図示せず)等を含むことができる。
【0243】
当業者はまた、現在開示されている主題に関連して使用される用語「コンピュータ読み取り可能な媒体」は、伝送媒体、搬送波、又は他の一時的な信号を包含しないことを理解すべきである。
【0244】
コンピュータシステム(3700)はまた、1つ以上の通信ネットワーク(3755)へのインターフェース(3754)を含むことができる。ネットワークは、例えば、無線、有線、光学式でありうる。ネットワークは、さらに、ローカル、広域、都市圏、車載及び工業用、リアルタイム、遅延耐性等でありうる。ネットワークの例は、イーサネット〔登録商標〕、無線LAN、GSM、3G、4G、5G、LTE等を含むセルラーネットワーク、ケーブルテレビ、衛星テレビ、地上放送テレビを含むTV有線又は無線の広域デジタルネットワーク、CANBusを含む車載及び工業用等を含む。ある種のネットワークは、普通、ある種の汎用データポート又は周辺バス(3749)(例えば、コンピュータシステム(3700)のUSBポート等)に取り付けられる外部ネットワークインターフェースアダプターを必要とする。他は、普通、後述するようなシステムバスへの取り付けによって、コンピュータシステム(3700)のコアに統合される(例えば、PCコンピュータシステムへのイーサネットインターフェース又はスマートフォンコンピュータシステムへのセルラーネットワークインターフェース)。これらのネットワークのいずれかを使用して、コンピュータシステム(3700)は、他のエンティティと通信することができる。そのような通信は、一方向性、受信のみ(例えば、放送テレビ)、一方向性送信専用(例えば、ある種のCANbusデバイスへのCANbus)、又は、例えば、ローカル又は広域デジタルネットワークを使用する他のコンピュータシステムへの双方向性であってもよい。上述のようなそれらのネットワーク及びネットワークインターフェースのそれぞれで、ある種のプロトコル及びプロトコルスタックが使用できる。
【0245】
前述のヒューマンインターフェースデバイス、人間がアクセス可能な記憶デバイス、及びネットワークインターフェースは、コンピュータシステム(3700)のコア(3740)に取り付けることができる。
【0246】
コア(3740)は、1つ以上の中央処理装置(CPU)(3741)、グラフィックス処理装置(GPU)(3742)、フィールドプログラマブルゲートアレイ(FPGA)(3743)の形の特化したプログラマブル処理装置、ある種のタスクのためのハードウェアアクセラレータ(3744)、グラフィックアダプター(3750)等を含むことができる。これらの装置は、読み取り専用メモリ(ROM)(3745)、ランダムアクセスメモリ(3746)、内部のユーザアクセス可能でないハードドライブ、ソリッドステートドライブ(SSD)等の内部大容量記憶デバイス(3747)とともに、システムバス(3748)を通じて接続されうる。いくつかのコンピュータシステムでは、追加のCPU、GPU等による拡張を可能にするために、システムバス(3748)は、1つ以上の物理プラグの形でアクセス可能であってもよい。周辺デバイスは、コアのシステムバス(3748)に直接取り付けられることも、周辺バス(3749)を通じて取り付けられることもできる。一例では、グラフィックアダプター(3750)にディスプレイ(3710)が接続されることができる。周辺バスのためのアーキテクチャは、PCI、USB等を含む。
【0247】
CPU(3741)、GPU(3742)、FPGA(3743)、及びアクセラレータ(3744)は、組み合わせて上述のコンピュータコードを構成することができるある種の命令を、実行することができる。そのコンピュータコードは、ROM(3745)又はRAM(3746)に記憶できる。一時的データも、RAM(3746)に記憶されることができ、一方、持続的データは、例えば、内部大容量記憶デバイス(3747)に記憶されることができる。1つ以上のCPU(3741)、GPU(3742)、大容量記憶デバイス(3747)、ROM(3745)、RAM(3746)等と密接に関連付けることができるキャッシュメモリを使用することを通じて、メモリデバイスのいずれかへの高速な記憶及び取り出しを可能にすることができる。
【0248】
コンピュータ読み取り可能な媒体は、様々なコンピュータ実装された動作を実行するためのコンピュータコードをその上に有することができる。媒体及びコンピュータコードは、本開示の目的のために特別に設計及び構築されたものであってもよく、又は、コンピュータソフトウェア分野の技術を有する者に周知であり利用可能な種類のものであってもよい。
【0249】
限定ではなく一例として、アーキテクチャ(3700)、具体的にはコア(3740)を有するコンピュータシステムは、プロセッサ(CPU、GPU、FPGA、アクセラレータ等を含む)が1つ以上の有形のコンピュータ可読媒体に具現化されたソフトウェアを実行することの結果として、機能性を提供することができる。そのようなコンピュータ読み取り可能媒体は、上記で紹介したようなユーザアクセス可能な大容量記憶並びにコア内部の大容量記憶デバイス(3747)又はROM(3745)のような非一時的な性質のコア(3740)のある種の記憶に関連する媒体であることができる。本開示の様々な実施形態を実装するソフトウェアは、そのようなデバイスに記憶され、コア(3740)によって実行されることができる。コンピュータ読み取り可能媒体は、特定のニーズに応じて、1つ以上のメモリデバイス又はチップを含むことができる。ソフトウェアは、RAM(3746)に記憶されたデータ構造を定義し、ソフトウェアによって定義されたプロセスに従ってそのようなデータ構造を修正することを含む、本明細書に記載された特定のプロセス又は特定の特定部分を、コア(3740)及び具体的にはその中のプロセッサ(CPU、GPU、FPGA等を含む)に実行させることができる。追加的又は代替的に、コンピュータシステムは、回路(例えば、アクセラレータ(3744))内に配線された、又は他の仕方で具現された論理の結果として機能性を提供することができ、これは、本明細書に記載される特定のプロセス又は特定のプロセスの特定部分を実行するためのソフトウェアの代わりに、又はそれと一緒に動作することができる。ソフトウェアへの言及は、論理を含み、適宜その逆も可能である。コンピュータ読み取り可能媒体への言及は、適宜、実行のためのソフトウェアを記憶する回路(例えば集積回路(IC))、実行のための論理を具現する回路、又はその双方を包含することができる。本開示は、ハードウェア及びソフトウェアの任意の好適な組み合わせを包含する。
【0250】
付録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: Group of Pictures(グループオブピクチャ)
TU: Transform Unit(変換ユニット)
PU: Prediction Unit(予測ユニット)
CTU: Coding Tree Unit(符号化ツリーユニット)
CTB: Coding Tree Block(符号化ツリーブロック)
PB: Prediction Block(予測ブロック)
HRD: Hypothetical Reference Decoder(仮想参照デコーダ)
SDR: standard dynamic range(標準ダイナミックレンジ)
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(集積回路)
CU: Coding Unit(符号化ユニット)
PDPC: Position Dependent Prediction Combination(位置依存予測組み合わせ)
ISP: Intra Sub-Partition(イントラサブパーティション)
SPS: Sequence Parameter Setting(シーケンスパラメータ設定)
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(クロスコンポーネントサンプルオフセット)
CCSAO: Cross-Component Sample Adaptive Offset(クロスコンポーネントサンプル適応オフセット)
LSO: Local Sample Offset(局所サンプルオフセット)
LR: Loop Restoration Filter(ループ復元フィルタ)
FSR: Frame Super-Resolution(フレーム超解像)
AV1: AOMedia Video 1(AOMediaビデオ1)
AV2: AOMedia Video 2(AOMediaビデオ2)
【0251】
本開示は、いくつかの例示的実施形態を記載してきたが、変更、置換、及び様々な代替等価物があり、それらは本開示の範囲内にはいる。よって、当業者は、本明細書に明示的に示されていないか又は記載されていないが、本開示の原理を具現し、よって、本開示の精神及び範囲内にある多くのシステム及び方法を考案することができることが理解されるであろう。
【外国語明細書】