(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024084800
(43)【公開日】2024-06-25
(54)【発明の名称】ビデオ復号の方法、機器、及びコンピュータプログラム
(51)【国際特許分類】
H04N 19/117 20140101AFI20240618BHJP
H04N 19/136 20140101ALI20240618BHJP
H04N 19/176 20140101ALI20240618BHJP
H04N 19/186 20140101ALI20240618BHJP
H04N 19/82 20140101ALI20240618BHJP
【FI】
H04N19/117
H04N19/136
H04N19/176
H04N19/186
H04N19/82
【審査請求】未請求
【請求項の数】1
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024060021
(22)【出願日】2024-04-03
(62)【分割の表示】P 2022550942の分割
【原出願日】2021-07-01
(31)【優先権主張番号】63/113,125
(32)【優先日】2020-11-12
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/360,865
(32)【優先日】2021-06-28
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ドゥ,イーシン
(72)【発明者】
【氏名】ジャオ,シン
(72)【発明者】
【氏名】リウ,シャン
(57)【要約】 (修正有)
【課題】インループフィルタ技術を含むビデオ符号化/復号のための方法、機器及び非一時的コンピュータ可読記憶媒体を提供する。
【解決手段】機器は、コーディングビデオシーケンスの一部である現在ピクチャのフィルタサポート領域の中の第1色成分の再構成サンプルを決定する処理回路を含み、処理回路は、フィルタサポート領域の中の第1色成分の再構成サンプルに対してフィルタ処理を実行し、フィルタ処理の量子化ステップサイズは、コーディングブロック、ビデオフレーム、及びビデオシーケンスのうちの1つについて個別に設定され、フィルタ処理の出力値に基づき、フィルタサポート領域の中の第2色成分のサンプルを再構成することを含み、第2色成分は第1色成分と異なる。
【選択図】
図20
【特許請求の範囲】
【請求項1】
デコーダにおけるビデオ復号の方法であって、
コーディングビデオシーケンスの部分である現在ピクチャのフィルタサポート領域の中の第1色成分の再構成サンプルを決定するステップと、
前記フィルタサポート領域の中の第1色成分の前記再構成サンプルに対してフィルタ処理を実行するステップであって、前記フィルタ処理の量子化ステップサイズは、コーディングブロック、ビデオフレーム、及びビデオシーケンスのうちの1つ毎に個別に設定される、ステップと、
前記フィルタ処理の出力値に基づき、前記フィルタサポート領域の中の第2色成分のサンプルを再構成するステップであって、前記第2色成分は前記第1色成分と異なる、ステップと、
を含む方法。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願]
本願は、米国仮特許出願番号第63/113,125号、「IMPROVED CROSS-Component Sample Offset using Adaptive Quantization and Offset Scaling」、2020年11月12日出願、の優先権の利益を主張する米国特許出願番号第17/360,865号、「METHOD AND APPARATUS FOR VIDEO CODING」、2021年6月28日出願の優先権の利益を主張する。前述の出願の全開示は、それらの全体が参照によりここに組み込まれる。
【0002】
[技術分野]
本開示は、概して、ビデオコーディングに関連する実施形態を記載する。
【背景技術】
【0003】
ここに提供される背景の説明は、本開示のコンテキストの概要を提示するためである。現在名前の挙げられた発明者の研究は、この背景の章に記載された研究の範囲で、出願時に従来技術として見なされない可能性のある記載の態様と同様に、本開示に対する従来技術として明示的に又は暗示的にも認められるものではない。
【0004】
ビデオコーディング及び復号は、動き補償を伴うインターピクチャ予測を用いて実行できる。非圧縮デジタルビデオは、一連のピクチャを含むことができ、各ピクチャは、例えば1920×1080個のルミナンスサンプル及び関連するクロミナンスサンプルの空間次元を有する。一連のピクチャは例えば毎秒60ピクチャ又は60Hzの固定又は可変ピクチャレート(略式にフレームレートとしても知られている)を有し得る。非圧縮ビデオは、かなりのビットレート要件を有する。例えば、8ビット/サンプルの1080p604:2:0ビデオ(60Hzフレームレートで1920×1080ルミナンスサンプル解像度)は、1.5Gbit/sbに近い帯域幅を必要とする。1時間のこのようなビデオは600GByteより多くの記憶空間を必要とする。
【0005】
ビデオコーディング及び復号の1つの目的は、圧縮を通じて、入力ビデオ信号の中の冗長性を削減することであり得る。圧縮は、幾つかの場合には大きさで2桁以上も、前述の帯域幅又は記憶空間要件を軽減するのを助けることができる。損失又は無損失圧縮の両方、及びそれらの組み合わせが利用できる。無損失圧縮は、元の信号の正確なコピーが圧縮された元の信号から再構成可能である技術を表す。損失圧縮を用いると、再構成された信号は、元の信号と同一ではないが、元の信号と再構成された信号との間の歪みは、意図される用途のために有用な再構成された信号を生成するのに十分に小さい。ビデオの場合には、損失圧縮が広く利用される。耐えうる歪みの量は、アプリケーションに依存し、特定の消費者ストリーミングアプリケーションのユーザは、テレビジョン配信アプリケーションのユーザよりも高い歪みに耐え得る。達成可能な圧縮比は、許容可能/耐性歪みが高いほど、高い圧縮比を生じ得ることを反映できる。
【0006】
ビデオエンコーダ及びデコーダは、例えば動き補償、変換、量子化、及びエントロピーコーディングを含む幾つかの広い分類からの技術を利用できる。
【0007】
ビデオコーデック技術は、イントラコーディングとして知られる技術を含むことができる。イントラコーディングでは、サンプル値は、前に再構成された参照ピクチャからのサンプル又は他のデータを参照することなく、表現される。幾つかのビデオコーデックでは、ピクチャは、サンプルのブロックに空間的に細分化される。サンプルの全部のブロックがイントラモードでコーディングされるとき、そのピクチャはイントラピクチャであり得る。イントラピクチャ、及び独立したデコーダリフレッシュピクチャのようなそれらの派生物は、デコーダ状態をリセットするために使用でき、従って、コーディングビデオビットストリーム及びビデオセッションの中の最初のピクチャとして、又は静止画像として使用できる。イントラブロックのサンプルは変換されることができ、変換係数は、エントロピーコーディングの前に量子化できる。イントラ予測は、変換前のドメインにおけるサンプル値を最小化する技術であり得る。幾つかの場合には、変換後のDC値が小さいほど、及びAC係数が小さいほど、エントロピーコーディングの後にブロックを表現するために所与の量子化ステップサイズで必要なビット数が少ない。
【0008】
例えばMPEG-2生成コーディング技術から知られているような伝統的なイントラコーディングは、イントラ予測を使用しない。しかしながら、幾つかの新しいビデオ圧縮技術は、例えば、復号順において先行する空間的近隣のデータブロックの符号化及び/又は復号の間に取得される周囲のサンプルデータ及び/又はメタデータから試行する。このような技術は、以後、「イントラ予測」技術と呼ばれる。少なくとも幾つかの場合には、イントラ予測は、参照ピクチャからではなく、再構成中の現在ピクチャからの参照データのみを使用する。
【0009】
多くの異なる形式のイントラ予測が存在し得る。1つより多くのこのような技術が所与のビデオコーディング技術において使用できるとき、使用される技術は、イントラ予測モードでコーディングされ得る。特定の場合には、モードは、サブモード及び/又はパラメータを有することができ、それらは、個々にコーディングされ又はモードコードワードに含まれることができる。所与のモード、サブモード、及び/又はパラメータの組合せのためにどのコードワードを使用すべきかは、イントラ予測を通じてコーディング効率の向上に影響を与えることができ、従って、コードワードをビットストリームに変換するためにエントロピーコーディング技術を使用できる。
【0010】
特定のイントラ予測モードが、H.264により導入され、H.265で改良され、共同探索モデル(joint exploration model (JEM))、バーサタイルビデオ符号化(versatile video coding (VVC))、及びベンチマークセット(benchmark set (BMS))のような更に新しいコーディング技術において改良された。予測ブロックは、既に利用可能なサンプルに属する近隣サンプル値を用いて形成されることができる。近隣サンプルのサンプル値は、方向に従い予測ブロックにコピーされる。使用中の方向の参照は、ビットストリーム内にコーディングでき、又はそれ自体が予測されてよい。
【0011】
図1Aを参照すると、右下に、H.265の33個の可能な予測方向(35個のイントラモードのうちの33個の角度モードに対応する)から分かる9個の予測方向の部分集合が示される。矢印が集中する点(101)は、予測中のサンプルを表す。矢印は、サンプルが予測されている方向を表す。例えば、矢印(102)は、サンプル(101)が1つ以上のサンプルから、水平から45度の角度で右上へと予測されることを示す。同様に、矢印(103)は、サンプル(101)が1つ以上のサンプルから、水平から22.5度の角度でサンプル(101)の左下へと予測されることを示す。
【0012】
更に
図1Aを参照すると、左上に、(太い破線で示される)4×4個のサンプルの正方形ブロック(104)が示される。正方形ブロック(104)は、16個のサンプルを含み、各サンプルは「S」、そのY次元の位置(例えば、行インデックス)、及びそのX次元の位置(例えば、列インデックス)でラベル付けされる。例えば、サンプルS21は、Y次元の(上から)2番目のサンプル、且つX次元の(左から)1番目のサンプルである。同様に、サンプルS44は、Y及びXの両方の次元で、ブロック(104)内の4番目のサンプルである。ブロックが4×4サンプルのサイズであるとき、S44は右下にある。更に、同様の番号付け方式に従う参照サンプルが示される。参照サンプルは、R、ブロック(104)に対するそのY位置(例えば、行インデックス)及びX位置(列インデックス)によりラベル付けされる。H.264及びH.265の両方で、予測サンプルは、再構成中のブロックの近隣にあり、従って、負の値は使用される必要がない。
【0013】
イントラピクチャ予測は、シグナリングされた予測方向により適切であるとき、近隣サンプルから参照サンプル値をコピーすることにより、動作できる。例えば、コーディングビデオビットストリームは、このブロックについて、矢印(102)と一致する予測方向を示すシグナリングを含む。つまり、サンプルは、1つ以上の予測サンプルから、水平から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個のイントラ予測方向を示す図(105)を示す。
【0017】
方向を表すコーディングビデオビットストリーム内のイントラ予測方向ビットのマッピングは、ビデオコーディング技術により異なり、例えば、予測方向のイントラ予測モードへの、コードワードへの、単純な直接マッピングから、最確モードを含む複雑な適応型方式、及び同様の技術にまで及ぶ。しかしながら、全ての場合で、ビデオコンテンツにおいて統計的に生じる可能性が、特定の他の方向よりあまり高くない特定の方向が存在し得る。ビデオ圧縮の目標は、冗長性の削減であるので、これらのあまり可能性の高くない方向は、良好に動作するビデオコーディング技術では、より可能性の高い方向より多数のビットにより表されるだろう。
【0018】
動き補償は、損失圧縮技術であり、前に再構成されたピクチャ又はその部分(参照ピクチャ)からのサンプルデータのブロックが、動きベクトル(以後、MV)により示される方向に空間的にシフトされた後に、新しく再構成されたピクチャ又はピクチャ部分の予測のために使用される技術に関連し得る。幾つかの場合には、参照ピクチャは、現在再構成中のピクチャと同じであり得る。MVは、2つの次元X及びY、又は第3の次元が使用中の参照ピクチャの指示である3つの次元を有することができる(後者は、間接的に時間次元であり得る)。
【0019】
幾つかのビデオ圧縮技術では、サンプルデータの特定領域に適用可能なMVは他のMVから、例えば再構成中の領域に空間的に隣接するサンプルデータの別の領域に関連し且つ復号順序の中で当該MVに先行するMVから、予測できる。そうすることは、結果として、MVを符号化するために必要なデータ量を削減でき、それにより、冗長性を除去し圧縮を向上する。MV予測は、例えばカメラから得られた入力ビデオ信号(自然なビデオ(natural video)として知られる)をコーディングするとき、単一のMVが適用可能な領域より大きな領域が同様の方向に動き、したがって、幾つかの場合には近隣領域のMVから導出した同様のMVを用いて予測可能である、統計的可能性がある。これは、周囲のMVから予測したMVと同様の又は同じ、所与の領域について見付かったMVをもたらす。また、これは、エントロピーコーディングの後に、MVを直接コーディングする場合に使用され得るより少ない数のビットで提示され得る。幾つかの場合には、MV予測は、元の信号(つまり、サンプルストリーム)から得た信号(つまり、MV)の無損失圧縮の一例であり得る。他の場合には、MV予測自体は、例えば幾つかの周囲のMVから予測子を計算するとき、誤りを丸め込むので、損失になり得る。
【0020】
種々のMV予測メカニズムは、H.265/HEVC(ITU-T Rec. H.265, "High Efficiency Video Coding", December 2016)に記載されている。ここに記載される、H.265の提供する多くのMV予測メカニズムのうちの1つは、以下で、「空間マージ(spatial merge)」と呼ばれる技術である。
【0021】
図1Cを参照すると、現在ブロック(111)は、動き探索処理の間に、空間的にシフトされたものと同じサイズの前のブロックから予測可能であるとしてエンコーダにより見付けられたサンプルを含むことができる。MVを直接コーディングする代わりに、MVは、1つ以上の参照ピクチャに関連付けられたメタデータから、例えば(復号順で)最近の参照ピクチャから、A0、A1、及びB0、B1、B2(各々112~116)5個の周囲のサンプルのうちのいずれか1つに関連付けられたMVを用いて導出できる。H.265では、MV予測は、近隣ブロックの使用するのと同じ参照ピクチャからの予測子を使用できる。
【発明の概要】
【0022】
開示の態様は、ビデオ符号化/復号のための機器を提供する。機器は、コーディングビデオシーケンスの一部である現在ピクチャのフィルタサポート領域の中の第1色成分の再構成サンプルを決定する処理回路を含む。処理回路は、フィルタサポート領域の中の第1色成分の再構成サンプルに対してフィルタ処理を実行する。フィルタ処理の量子化ステップサイズは、コーディングブロック、ビデオフレーム、及びビデオシーケンスのうちの1つについて個別に設定される。処理回路は、フィルタ処理の出力値に基づき、フィルタサポート領域の中の第2色成分のサンプルを再構成する。第2色成分は第1色成分と異なる。
【0023】
実施形態では、前記量子化ステップサイズは、前記コーディングブロック、前記ビデオフレーム、及び前記ビデオシーケンスのうちの1つについて所定の定数である。
【0024】
実施形態では、前記量子化ステップサイズは、2のべき乗である整数である。
【0025】
実施形態では、前記量子化ステップサイズは、前記コーディングブロック、前記ビデオフレーム、及び前記ビデオシーケンスのうちの1つに対応ビットストリームに含まれるインデックスに基づき決定される、複数の量子化ステップサイズのうちの1つである。
【0026】
実施形態では、前記量子化ステップサイズは、前記コーディングブロック、前記ビデオフレーム、及び前記ビデオシーケンスのうちの1つに対応するビットストリームに含まれる。
【0027】
実施形態では、前記処理回路は、前記フィルタ処理の前記出力値が、前記フィルタサポート領域の中の前記第1色成分の前記再構成サンプルに基づきスケーリングされるかどうかを決定する。前記フィルタ処理の前記出力値がスケーリングされることに応答して、前記処理回路は、前記フィルタ処理のスケーリングされた出力値に基づき、前記フィルタサポート領域の中の第2色成分のサンプルを再構成する。
【0028】
実施形態では、前記処理回路は、前記フィルタサポート領域の中の前記第1色成分の前記再構成サンプル、及び前記フィルタ処理の前記出力値のスケーリングが有効にされるかどうかを示すシンタックス要素に基づき、前記フィルタ処理の前記出力値がスケーリングされるかどうかを決定する。
【0029】
実施形態では、前記処理回路は、前記フィルタサポート領域の中の前記第1色成分の前記再構成サンプル、及び前記量子化ステップサイズに基づき、前記フィルタ処理の前記スケーリングされた出力値を決定する。
【0030】
開示の態様は、ビデオ符号化/復号のための方法を提供する。前記方法では、コーディングビデオシーケンスの一部である現在ピクチャのフィルタサポート領域の中の第1色成分の再構成サンプルが決定される。フィルタ処理は、フィルタサポート領域の中の第1色成分の再構成サンプルに対して実行される。フィルタ処理の量子化ステップサイズは、コーディングブロック、ビデオフレーム、及びビデオシーケンスのうちの1つについて個別に設定される。フィルタサポート領域の中の第2色成分のサンプルは、フィルタ処理の出力値に基づき再構成される。第2色成分は第1色成分と異なる。
【0031】
本開示の態様は、少なくとも1つのプロセッサにより実行されると該少なくとも1つのプロセッサにビデオ復号のための方法のうちのいずれか1つ又はその組合せを実行させる命令を格納する非一時的コンピュータ可読媒体も提供する。
【図面の簡単な説明】
【0032】
開示の主題の更なる特徴、特性、及び種々の利点は、以下の詳細な説明及び添付の図面から一層明らかになるだろう。
【0033】
【
図1A】イントラ予測モードの例示的な部分集合の概略図である。
【0034】
【0035】
【
図1C】一例における現在ブロック及びその周囲の空間的マージ候補の概略図である;
【0036】
【
図2】一実施形態による、通信システムの簡易ブロック図の概略図である。
【0037】
【
図3】一実施形態による、通信システムの簡易ブロック図の概略図である。
【0038】
【
図4】一実施形態による、デコーダの簡易ブロック図の概略図である。
【0039】
【
図5】一実施形態による、エンコーダの簡易ブロック図の概略図である。
【0040】
【
図6】別の実施形態による、エンコーダのブロック図を示す。
【0041】
【
図7】別の実施形態による、デコーダのブロック図を示す。
【0042】
【
図8A】幾つかの実施形態による、適応型ループフィルタ(adaptive loop filter (ALF))の例示的なダイヤモンドフィルタ形状を示す。
【
図8B】幾つかの実施形態による、適応型ループフィルタ(adaptive loop filter (ALF))の例示的なダイヤモンドフィルタ形状を示す。
【0043】
【
図9A】幾つかの実施形態による、垂直方向の勾配のために使用される例示的なサブサンプリング位置を示す。
【
図9B】幾つかの実施形態による、水平方向の勾配のために使用される例示的なサブサンプリング位置を示す。
【
図9C】幾つかの実施形態による、対角方向の勾配のために使用される例示的なサブサンプリング位置を示す。
【
図9D】幾つかの実施形態による、対角方向の勾配のために使用される例示的なサブサンプリング位置を示す。
【0044】
【
図10】実施形態による、ルマ成分に適用される例示的な変更されたブロック分類を示す。
【0045】
【
図11】幾つかの実施形態による、仮想境界におけるルマ成分に対する変更されたALFを示す。
【0046】
【
図12】実施形態による、例示的な最大コーディングユニット(largest coding unit (LCU))整列ピクチャ4分木分割を示す。
【0047】
【
図13】実施形態による、z順に符号化される例示的な4分木分割フラグを示す。
【0048】
【
図14A】実施形態による、成分間適応型ループフィルタ(cross-component adaptive loop filter (CC-ALF))の例示的な配置を示す。
【0049】
【
図14B】実施形態による、CC-ALF操作の間にクロマ成分毎にルマチャネルに適用される例示的な線形ダイヤモンド形状フィルタを示す。
【0050】
【
図15】幾つかの実施形態による、ルマサンプルに対するクロマサンプルの例示的な位置を示す。
【0051】
【
図16】実施形態による、8×8ブロックについての例示的な方向探索を示す。
【0052】
【
図17】実施形態による、例示的なサブ空間投影を示す。
【0053】
【
図18】実施形態による、成分間サンプルオフセット(cross-component sample offset (CCSO))フィルタの例示的なフィルタサポート領域を示す。
【0054】
【
図19A】実施形態による、CCSOフィルタにおける非線形マッピングの、表形式の81個の例示的な組合せの表を示す。
【
図19B】実施形態による、CCSOフィルタにおける非線形マッピングの、表形式の81個の例示的な組合せの表を示す。
【0055】
【
図20】実施形態による、例示的なサブ空間投影を示す。
【0056】
【
図21】一実施形態による、コンピュータシステムの概略図である。
【発明を実施するための形態】
【0057】
<I.ビデオデコーダ及びエンコーダシステム>
【0058】
図2は、本開示の実施形態による通信システム(200)の簡易ブロック図を示す。通信システム(200)は、例えばネットワーク(250)を介して互いに通信できる複数の端末装置を含む。例えば、通信システム(200)は、ネットワーク(250)を介して相互接続された端末装置(210)及び(220)の第1ペアを含む。
図2の例では、端末装置(210)及び(220)の第1ペアは、データの単方向伝送を実行する。例えば、端末装置(210)は、ネットワーク(250)を介して他の端末装置(220)への送信のために、ビデオデータ(端末装置(210)によりキャプチャされたビデオピクチャのストリーム)を符号化する。符号化ビデオデータは、1つ以上のコーディングビデオビットストリームの形式で、送信できる。端末装置(220)は、ネットワーク(250)からコーディングビデオデータを受信し、コーディングビデオデータを復号してビデオピクチャを復元し、復元したビデオデータに従いビデオピクチャを表示してよい。単方向データ伝送は、メディアサービングアプリケーション等で共通であってよい。
【0059】
別の例では、通信システム(200)は、例えばビデオ会議の間に生じ得るコーディングビデオデータの双方向伝送を実行する端末装置(230)及び(240)の第2ペアを含む。データの双方向伝送では、端末装置(230)及び(240)は、ネットワーク(250)を介して端末装置(230)及び(240)への送信のために、ビデオデータ(例えば、端末装置によりキャプチャされたビデオピクチャのストリーム)をコーディングしてよい。端末装置(230)及び(240)のうちの各端末装置は、端末装置(230)及び(240)のうちの他方の端末装置により送信されたコーディングビデオデータを受信してよく、コーディングビデオデータを復号してビデオピクチャを復元してよく、復元したビデオデータに従い、アクセス可能なディスプレイ装置においてビデオピクチャを表示してよい。
【0060】
図2の例では、端末装置(210)、(220)、(230)及び(240)は、サーバ、パーソナルコンピュータ、及びスマートフォンとして示されてよいが、本開示の原理はこれらに限定されない。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレイヤ、及び/又は専用ビデオ会議設備による適用がある。ネットワーク(250)は、端末装置(210)、(220)、(230)、及び(240)の間でコーディングビデオデータを運ぶ任意の数のネットワークを表し、例えば有線(ワイヤード)及び/又は無線通信ネットワークを含む。通信ネットワーク(250)は、回線交換及び/又はパケット交換チャネルでデータを交換してよい。代表的なネットワークは、電子通信ネットワーク、ローカルエリアネットワーク、広域ネットワーク、及び/又はインターネットを含む。本発明の議論の目的で、ネットワーク(250)のアーキテクチャ及びトポロジは、以下で特に断りの無い限り、本開示の動作にとって重要でないことがある。
【0061】
図3は、開示の主題の適用の一例として、ストリーミング環境におけるビデオエンコーダ及びビデオデコーダの配置を示す。開示の主題は、例えばビデオ会議、デジタルTV、CD、DVD、メモリスティック、等を含むデジタル媒体への圧縮ビデオの格納、他のビデオ可能アプリケーション、等に等しく適用可能である。
【0062】
ストリーミングシステムは、例えば非圧縮のビデオピクチャストリーム(302)を生成するビデオソース(301)、例えばデジタルビデオカメラを含み得るキャプチャサブシステム(313)を含んでよい。一例では、ビデオピクチャストリーム(302)は、デジタルカメラにより取り込まれたサンプルを含む。ビデオピクチャストリーム(302)は、符号化ビデオデータ(304)(又はコーディングビデオビットストリーム)と比べたとき、高データ容量を強調するために太線で示され、ビデオソース(301)と結合されたビデオエンコーダ(303)を含む電子装置(320)により処理され得る。ビデオエンコーダ(303)は、ハードウェア、ソフトウェア、又はそれらの組み合わせを含み、以下に詳述するように開示の主題の態様を可能にし又は実装することができる。符号化ビデオデータ(304)(又は符号化ビデオビットストリーム(304))は、ビデオピクチャストリーム(302)と比べたとき、低データ容量を強調するために細線で示され、将来の使用のためにストリーミングサーバ(305)に格納され得る。
図3のクライアントサブシステム(306)及び(308)のような1つ以上のストリーミングクライアントサブシステムは、ストリーミングサーバ(305)にアクセスして、符号化ビデオデータ(304)のコピー(307)及び(309)を読み出すことができる。クライアントサブシステム(306)は、例えば電子装置(330)内にビデオデコーダ(310)を含み得る。ビデオデコーダ(310)は、符号化ビデオデータの入力コピー(307)を復号し、ディスプレイ(312)(例えばディスプレイスクリーン)又は他のレンダリング装置(図示しない)上でレンダリングできる出力ビデオピクチャストリーム(311)を生成する。幾つかのストリーミングシステムでは、符号化ビデオデータ(304)、(307)、及び(309)(例えば、ビデオビットストリーム)は、特定のビデオコーディング/圧縮標準に従い符号化され得る。これらの規格の例は、ITU-T Recommendation H.265を含む。一例では、策定中のビデオコーディング規格は、略式にVVC(Versatile Video Coding)として知られている。開示の主題は、VVCの文脈で使用されてよい。
【0063】
電子装置(320)及び(330)は他のコンポーネント(図示しない)を含み得ることに留意する。例えば、電子装置(320)は、ビデオデコーダ(図示しない)を含むことができ、電子装置(330)もビデオエンコーダ(図示しない)を含むことができる。
【0064】
図4は、本開示の一実施形態によるビデオデコーダ(410)のブロック図を示す。ビデオデコーダ(410)は、電子装置(430)に含まれ得る。電子装置(430)は、受信機(431)(例えば、受信回路)を含み得る。ビデオデコーダ(410)は、
図3の例では、ビデオデコーダ(310)の代わりに使用できる。
【0065】
受信機(431)は、ビデオデコーダ(410)により復号されるべき1つ以上のコーディングビデオシーケンスを、同じ又は別の実施形態では、一度に1つのコーディングビデオシーケンスを受信してよい。ここで、各コーディングビデオシーケンスの復号は、他のコーディングビデオシーケンスと独立している。コーディングビデオシーケンスは、符号化ビデオデータを格納する記憶装置へのハードウェア/ソフトウェアリンクであってよいチャネル(401)から受信されてよい。受信機(431)は、他のデータ、例えば、各々の使用エンティティ(図示しない)へと転送され得るコーディング音声データ及び/又は補助データストリームと共に、符号化ビデオデータを受信してよい。受信機(431)は、他のデータからコーディングビデオシーケンスを分離してよい。ネットワークジッタを除去するために、バッファメモリ(415)は、受信機(431)とエントロピーデコーダ/パーサ(420)(以後、「パーサ(420)」)との間に結合されてよい。特定の適用では、バッファメモリ(415)は、ビデオデコーダ(410)の一部である。他に、ビデオデコーダ(410)(図示しない)の外部にあり得る。更に他では、例えばネットワークジッタを除去するために、ビデオデコーダ(410)の外部に、例えば再生(playout)タイミングを処理するために、ビデオデコーダ(410)の内部にある別のバッファメモリ(415)に加えて、バッファメモリ(図示しない)が存在し得る。受信機(431)が、十分な帯域幅の記憶/転送装置から制御可能に、又はアイソクロナス(isosynchronous)ネットワークから、データを受信しているとき、バッファメモリ(415)は、必要なくてよく又は小さくできる。インターネットのようなベストエフォート型パケットネットワークで使用するために、バッファメモリ(415)が必要とされてよく、比較的大きくなり、有利なことに適応型サイズであり、少なくとも部分的にオペレーティングシステム又はビデオデコーダ(410)の外部の同様の要素(図示しない)に実装されてよい。
【0066】
ビデオデコーダ(410)は、コーディングビデオシーケンスからシンボル(421)を再構成するために、パーサ(420)を含んでよい。これらのシンボルのカテゴリは、ビデオデコーダ(410)の動作を管理するために使用される情報、及び場合によっては
図4に示したように電子装置(430)の統合部分ではないが電子装置(430)に結合され得るレンダー装置(412)(例えば、ディスプレイスクリーン)のようなレンダリング装置を制御するための情報を含む。レンダリング装置のための制御情報は、SEI(Supplemental Enhancement Information)メッセージ又はVUI(Video Usability Information)パラメータセットフラグメント(図示しない)の形式であってよい。パーサ(420)は、受信されたコーディングビデオシーケンスをパース/エントロピー復号してよい。コーディングビデオシーケンスのコーディングは、ビデオコーディング技術又は規格に従うことができ、可変長コーディング、ハフマンコーディング、コンテキスト依存性を有する又は有しない算術コーディング、等を含む、種々の原理に従うことができる。パーサ(420)は、コーディングビデオシーケンスから、ビデオデコーダの中のピクセルのサブグループのうちの少なくとも1つについて、該グループに対応する少なくとも1つのパラメータに基づき、サブグループパラメータのセットを抽出してよい。サブグループは、GOP(Groups of Picture)、ピクチャ、タイル、スライス、マクロブロック、コーディングユニット(Coding Units:CU)、ブロック、変換ユニット(Transform Units:TU)、予測ユニット(Prediction Units:PU)、等を含み得る。パーサ(420)は、コーディングビデオシーケンスから、変換係数、量子化パラメータ値、MV、等のような情報も抽出してよい。
【0067】
パーサ(420)は、バッファメモリ(415)から受信したビデオシーケンスに対してエントロピー復号/パース動作を実行して、シンボル(421)を生成してよい。
【0068】
シンボル(421)の再構成は、コーディングビデオピクチャ又はその部分の種類(例えば、インター及びイントラピクチャ、インター及びイントラブロック)及び他の要因に依存して、複数の異なるユニットを含み得る。どのユニットがどのように含まれるかは、パーサ(420)によりコーディングビデオシーケンスからパースされたサブグループ制御情報により制御できる。パーサ420と以下の複数のユニットとの間のこのようなサブグループ制御情報のフローは、明確さのために示されない。
【0069】
既に言及した機能ブロックを超えて、ビデオデコーダ(410)は、後述のように、多数の機能ユニットに概念的に細分化できる。商用的制約の下で動作する実際の実装では、これらのユニットの多くは、互いに密に相互作用し、少なくとも部分的に互いに統合され得る。しかしながら、開示の主題を説明する目的で、機能ユニットへの以下の概念的細分化は適切である。
【0070】
第1ユニットは、スケーラ/逆変換ユニット451である。スケーラ/逆変換ユニット(451)は、量子化済み変換係数、及び、どの変換を使用すべきか、ブロックサイズ、量子化係数、量子化スケーリングマトリクス、等を含む制御情報を、パーサ(420)からのシンボル(421)として受信する。スケーラ/逆変換ユニット(451)はアグリゲータ(455)に入力され得るサンプル値を含むブロックを出力できる。
【0071】
幾つかの例では、スケーラ/逆変換ユニット(451)の出力サンプルは、イントラコーディングブロック、つまり、前に再構成されたピクチャからの予測情報を使用しないが現在ピクチャの前に再構成された部分からの予測情報を使用可能なブロック、に属することができる。このような予測情報は、イントラピクチャ予測ユニット(452)により提供できる。幾つかの場合には、イントラピクチャ予測ユニット(452)は、再構成中のブロックと同じサイズ及び形状のブロックを、現在ピクチャバッファ(458)からフェッチした周囲の既に再構成された情報を用いて、生成する。現在ピクチャバッファ(458)は、例えば、再構成された現在ピクチャを部分的に及び/又は再構成された現在ピクチャを完全にバッファリングする。アグリゲータ(455)は、幾つかの場合には、サンプル毎に、イントラ予測ユニット(452)の生成した予測情報を、スケーラ/逆変換ユニット(451)により提供された出力サンプル情報に追加する。
【0072】
他の場合には、スケーラ/逆変換ユニット(451)の出力サンプルは、インターコーディングされた、場合によっては動き補償されたブロックに関連し得る。このような場合には、動き補償予測ユニット(453)は、参照ピクチャメモリ(457)にアクセスして、予測ために使用されるサンプルをフェッチできる。ブロックに関連するシンボル(421)に従いフェッチしたサンプルを動き補償した後に、これらのサンプルは、アグリゲータ(455)により、出力サンプル情報を生成するために、スケーラ/逆変換ユニット(451)の出力に追加され得る(この場合、残差サンプル又は残差信号と呼ばれる)。動き補償予測ユニット(453)が予測サンプルをフェッチする参照ピクチャメモリ(457)内のアドレスは、例えばX、Y及び参照ピクチャコンポーネントを有し得るシンボル(421)の形式で、動き補償予測ユニット(453)の利用可能なMVにより制御できる。動き補償は、サブサンプルの正確なMVが使用中であるとき参照ピクチャメモリ(457)からフェッチされたサンプル値の補間、MV予測メカニズム、等を含み得る。
【0073】
アグリゲータ(455)の出力サンプルは、ループフィルタユニット(456)において種々のループフィルタリング技術を受け得る。ビデオ圧縮技術は、コーディングビデオシーケンス(コーディングビデオビットストリームとも呼ばれる)に含まれ且つパーサ(420)からのシンボル(421)としてループフィルタユニット(456)に利用可能にされたパラメータにより制御されるが、コーディングピクチャ又はコーディングビデオシーケンスの(復号順序で)前の部分の復号中に取得されたメタ情報にも応答し、前に再構成されループフィルタリングされたサンプル値にも応答し得るインループフィルタ技術を含み得る。
【0074】
ループフィルタユニット(456)の出力は、レンダー装置(412)へと出力でき及び将来のインターピクチャ予測で使用するために参照ピクチャメモリ(457)に格納され得るサンプルストリームであり得る。
【0075】
特定のコーディングピクチャは、一旦完全に再構成されると、将来の予測のための参照ピクチャとして使用できる。例えば、現在ピクチャに対応するコーディングピクチャが完全に再構成され、コーディングピクチャが(例えばパーサ(420)により)参照ピクチャとして識別されると、現在ピクチャバッファ(458)は、参照ピクチャメモリ(457)の一部になることができ、後続のコーディングピクチャの再構成を開始する前に、新鮮な現在ピクチャバッファを再割り当てできる。
【0076】
ビデオデコーダ(410)は、ITU-T Rec. H.265のような規格の所定のビデオ圧縮技術に従い復号動作を実行してよい。コーディングビデオシーケンスがビデオ圧縮技術又は規格、及びビデオ圧縮技術又は規格において文書化されたプロファイルの両方に従うという意味で、コーディングビデオシーケンスは、使用中のビデオ圧縮技術又は規格により指定されたシンタックスに従ってよい。具体的に、プロファイルは、ビデオ圧縮技術又は標準において利用可能な全部のツールから、プロファイルの下でのみ使用可能なツールとして、特定のツールを選択できる。また、遵守のために必要なことは、コーディングビデオシーケンスの複雑さが、ビデオ圧縮技術又は規格のレベルにより定められる限界の範囲内であることであり得る。幾つかの場合には、レベルは、最大ピクチャサイズ、最大フレームレート、最大再構成サンプルレート(例えばメガサンプル/秒で測定される)、最大参照ピクチャサイズ、等を制限する。レベルにより設定される限界は、幾つかの場合には、HRD(Hypothetical Reference Decoder)仕様及びコーディングビデオシーケンスの中でシグナリングされるHRDバッファ管理のためのメタデータを通じて更に制限され得る。
【0077】
実施形態では、受信機(431)は、符号化ビデオと共に追加(冗長)データを受信してよい。追加データは、コーディングビデオシーケンスの部分として含まれてよい。追加データは、データを正しく復号するため及び/又は元のビデオデータをより正確に再構成するために、ビデオデコーダ410により使用されてよい。追加データは、例えば、時間的、空間的、又は信号雑音比(SNR)の拡張レイヤ、冗長スライス、冗長ピクチャ、前方誤り訂正符号、等の形式であり得る。
【0078】
図5は、本開示の一実施形態によるビデオエンコーダ(503)のブロック図を示す。ビデオエンコーダ(503)は、電子装置(520)に含まれる。電子装置(520)は、送信機(540)(例えば、送信回路)を含む。ビデオエンコーダ(503)は、
図3の例では、ビデオエンコーダ(303)の代わりに使用できる。
【0079】
ビデオエンコーダ(503)は、ビデオサンプルを、ビデオエンコーダ(503)によりコーディングされるべきビデオ画像をキャプチャし得るビデオソース(501)(
図5の例では、電子装置(520)の部分ではない)から受信してよい。別の例では、ビデオソース(501)は、電子装置(520)の一部である。
【0080】
ビデオソース(501)は、ビデオエンコーダ(503)によりコーディングされるべきソースビデオシーケンスを、任意の適切なビット深さ(例えば、8ビット、10ビット、12ビット、...)、任意の色空間(例えば、BT.601 Y CrCB, RGB、...)、及び任意の適切なサンプリング構造(例えば、YCrCb 4:2:0、YCrCb 4:4:4)のデジタルビデオサンプルストリームの形式で、提供してよい。メディア提供システムでは、ビデオソース(501)は、前に準備されたビデオを格納する記憶装置であってよい。ビデオ会議システムでは、ビデオソース(501)は、ビデオシーケンスとしてローカル画像情報をキャプチャするカメラであってよい。ビデオデータは、続けて閲覧されると動きを与える複数の個別ピクチャとして提供されてよい。ピクチャ自体は、ピクセルの空間的配列として組織化されてよい。各ピクセルは、使用中のサンプリング構造、色空間、等に依存して、1つ以上のサンプルを含み得る。当業者は、ピクセルとサンプルとの間の関係を直ちに理解できる。以下の説明はサンプルに焦点を当てる。
【0081】
一実施形態によると、ビデオエンコーダ(503)は、ソースビデオシーケンスのピクチャを、コーディングビデオシーケンス(543)へと、リアルタイムに又はアプリケーションにより要求される任意の他の時間制約の下で符号化し圧縮してよい。適切なコーディング速度の実施は、制御部(550)の1つの機能である。幾つかの実施形態では、制御部(550)は、後述する他の機能ユニットを制御し、他の機能ユニットに機能的に結合される。結合は、明確さのために図示されない。制御部(550)により設定されるパラメータは、レート制御関連パラメータ(ピクチャスキップ、量子化器、レート歪み最適化技術のラムダ値、...)、ピクチャサイズ、GOP(group of pictures)レイアウト、最大MV許容参照領域、等を含み得る。制御部(550)は、特定のシステム設計に最適化されたビデオエンコーダ(503)に関連する他の適切な機能を有するよう構成され得る。
【0082】
幾つかの実施形態では、ビデオエンコーダ(503)は、コーディングループの中で動作するよう構成される。非常に簡略化された説明として、一例では、コーディングループは、ソースコーダ(530)(例えば、シンボルストリームのようなシンボルを、コーディングされるべき入力ピクチャ及び参照ピクチャに基づき生成することを担う)、及びビデオエンコーダ(503)に内蔵された(ローカル)デコーダ(533)を含み得る。デコーダ(533)は、(シンボルとコーディングビットストリームとの間の任意の圧縮が、開示の主題において検討されるビデオ圧縮技術において無損失であるとき)(遠隔にある)デコーダが生成するのと同様の方法で、シンボルを再構成して、サンプルデータを生成する。再構成されたサンプルストリーム(サンプルデータ)は、参照ピクチャメモリ(534)に入力される。シンボルストリームの復号が、デコーダ位置(ローカル又はリモート)と独立にビット正確な結果をもたらすとき、参照ピクチャメモリ(534)の内容も、ローカルエンコーダとリモートエンコーダとの間でビット正確である。言い換えると、エンコーダの予測部分が、復号中に予測を用いるときデコーダが「見る」のと正確に同じサンプル値を、参照ピクチャサンプルとして「見る」。参照ピクチャ同期性のこの基本原理(及び、例えばチャネルエラーのために同期生が維持できない場合には、結果として生じるドリフト)は、幾つかの関連技術で同様に使用される。
【0083】
「ローカル」デコーダ(533)の動作は、
図4と関連して以上に詳述したビデオデコーダ(410)のような「リモート」デコーダのものと同じであり得る。簡単に一時的に
図4も参照すると、しかしながら、シンボルが利用可能であり、エントロピーコーダ(545)及びパーサ(420)によるコーディングビデオシーケンスへのシンボルの符号化/復号が無損失であり得るので、バッファメモリ(415)を含むビデオデコーダ(410)のエントロピー復号部分、及びパーサ(420)は、ローカルデコーダ(533)に完全に実装されなくてよい。
【0084】
この点で行われる考察は、デコーダ内に存在するパース/エントロピー復号を除く任意のデコーダ技術も、対応するエンコーダ内と実質的に同一の機能形式で存在する必要があるということである。この理由から、開示の主題は、デコーダ動作に焦点を当てる。エンコーダ技術の説明は、それらが包括的に説明されるデコーダ技術の逆であるので、省略できる。特定の領域においてのみ、より詳細な説明が必要であり、以下に提供される。
【0085】
動作中、幾つかの例では、ソースコーダ(530)は、動き補償された予測コーディングを実行してよい。これは、「参照ピクチャ」として指定されたビデオシーケンスからの1つ以上の前にコーディングされたピクチャを参照して予測的に入力ピクチャをコーディングする。この方法では、コーディングエンジン(532)は、入力ピクチャのピクセルブロックと、入力ピクチャに対する予測基準として選択されてよい参照ピクチャのピクセルブロックとの間の差分をコーディングする。
【0086】
ローカルビデオデコーダ(533)は、ソースコーダ(530)により生成されたシンボルに基づき、参照ピクチャとして指定されてよいピクチャのコーディングビデオデータを復号してよい。コーディングエンジン(532)の動作は、有利なことに、損失処理であってよい。コーディングビデオデータがビデオデコーダ(
図5に図示されない)において復号され得るとき、再構成ビデオシーケンスは、標準的に、幾つかのエラーを有するソースビデオシーケンスの複製であってよい。ローカルビデオデコーダ(533)は、参照ピクチャに対してビデオデコーダにより実行され得る復号処理を複製し、参照ピクチャキャッシュ(534)に格納されるべき再構成参照ピクチャを生じ得る。このように、ビデオエンコーダ(503)は、(伝送誤りが無ければ)遠端ビデオデコーダにより取得される再構成参照ピクチャと共通の内容を有する再構成参照ピクチャのコピーを格納してよい。
【0087】
予測器(535)は、コーディングエンジン(532)のために予測探索を実行してよい。つまり、コーディングされるべき新しいピクチャについて、予測器(535)は、新しいピクチャのための適切な予測基準として機能し得る(候補参照ピクセルブロックのような)サンプルデータ又は参照ピクチャMV、ブロック形状、等のような特定のメタデータについて、参照ピクチャメモリ(534)を検索してよい。予測器(535)は、適切な予測基準を見付けるために、サンプルブロック-ピクセルブロック毎に動作してよい。幾つかの例では、予測器(535)により取得された検索結果により決定されるように、入力ピクチャは、参照ピクチャメモリ(534)に格納された複数の参照ピクチャから引き出された予測基準を有してよい。
【0088】
制御部(550)は、例えば、ビデオデータの符号化のために使用されるパラメータ及びサブグループパラメータの設定を含む、ソースコーダ(530)のコーディング動作を管理してよい。
【0089】
全ての前述の機能ユニットの出力は、エントロピーコーダ(545)におけるエントロピーコーディングを受けてよい。エントロピーコーダ(545)は、ハフマンコーディング、可変長コーディング、算術コーディング、等のような技術に従いシンボルを無損失圧縮することにより、種々の機能ユニットにより生成されたシンボルを、コーディングビデオシーケンスへと変換する。
【0090】
送信機(540)は、符号化ビデオデータを格納し得る記憶装置へのハードウェア/ソフトウェアリンクであってよい通信チャネル(560)を介する伝送のために準備するために、エントロピーコーダ(545)により生成されたコーディングビデオシーケンスをバッファリングしてよい。送信機(540)は、ビデオコーダ(503)からのコーディングビデオデータを、送信されるべき他のデータ、例えばコーディング音声データ及び/又は補助データストリーム(図示されないソース)とマージ(merge)してよい。
【0091】
制御部(550)は、ビデオエンコーダ(503)の動作を管理してよい。コーディング中、制御部(550)は、各々のピクチャに適用され得るコーディング技術に影響し得る特定のコーディングピクチャタイプを、各コーディングピクチャに割り当ててよい。例えば、ピクチャは、多くの場合、以下のピクチャタイプのうちの1つとして割り当てられてよい。
【0092】
イントラピクチャ(Iピクチャ)は、予測のソースとしてシーケンス内の任意の他のピクチャを使用せずにコーディング及び復号され得るピクチャであってよい。幾つかのビデオコーデックは、例えばIDR(Independent Decoder Refresh)ピクチャを含む異なる種類のイントラピクチャを許容する。当業者は、Iピクチャの変形、及びそれらの個々の適用及び特徴を認識する。
【0093】
予測ピクチャ(Pピクチャ)は、殆どの場合、各ブロックのサンプル値を予測するために1つのMV及び参照インデックスを用いてイントラ予測又はインター予測を用いてコーディング及び復号され得るピクチャであってよい。
【0094】
双方向予測ピクチャ(Bピクチャ)は、殆どの場合、各ブロックのサンプル値を予測するために最大で2つのMV及び参照インデックスを用いてイントラ予測又はインター予測を用いてコーディング及び復号され得るピクチャであってよい。同様に、マルチ予測ピクチャは、単一のブロックの再構成のために、2つより多くの参照ピクチャ及び関連付けられたメタデータを使用できる。
【0095】
ソースピクチャは、一般に、複数のサンプルブロック(例えば、各々4×4、8×8、4×8、又は16×16個のサンプルのブロック)に空間的に細分化され、ブロック毎にコーディングされてよい。ブロックは、ブロックの各々のピクチャに適用されるコーディング割り当てにより決定される他の(既にコーディングされた)ブロックへの参照により予測的にコーディングされてよい。例えば、Iピクチャのブロックは、非予測的にコーディングされてよく、又はそれらは同じピクチャの既にコーディングされたブロックを参照して予測的にコーディングされてよい(空間予測又はイントラ予測)。Pピクチャのピクセルブロックは、1つの前にコーディングされた参照ピクチャを参照して、空間予測を介して又は時間予測を介して、予測的にコーディングされてよい。Bピクチャのブロックは、1つ又は2つの前にコーディングされた参照ピクチャを参照して、空間予測を介して又は時間予測を介して、予測的にコーディングされてよい。
【0096】
ビデオエンコーダ(503)は、ITU-T Rec.H.265のような所定のビデオコーディング技術又は規格に従いコーディング動作を実行してよい。その動作において、ビデオエンコーダ(503)は、入力ビデオシーケンスの中の時間的及び空間的冗長性を利用する予測コーディング動作を含む種々の圧縮動作を実行してよい。コーディングビデオデータは、従って、使用されているビデオコーディング技術又は規格により指定されたシンタックスに従ってよい。
【0097】
一実施形態では、送信機(540)は、符号化ビデオと共に追加データを送信してよい。ソースコーダ(530)は、このようなデータをコーディングビデオシーケンスの部分として含んでよい。追加データは、時間/空間/SNR拡張レイヤ、冗長ピクチャ及びスライスのような他の形式の冗長データ、SEIメッセージ、VUIパラメータセットフラグメント、等を含んでよい。
【0098】
ビデオは、時系列の中の複数のソースピクチャ(ビデオピクチャ)としてキャプチャされてよい。イントラピクチャ予測(イントラ予測と省略されることがある)は、所与のピクチャの中の空間的相関を利用し、インターピクチャ予測は、ピクチャ間の(時間的又は他の)相関を利用する。一例では、符号化/復号中の特定のピクチャは、現在ピクチャと呼ばれ、ブロックにパーティションされる。現在ピクチャの中のブロックMVビデオの中の前にコーディングされ且つ未だバッファリングされている参照ピクチャの中の参照ブロックと同様であるとき、現在ピクチャの中のブロックは、MVと呼ばれるベクトルによりコーディングできる。MVは、参照ピクチャ内の参照ブロックを指し、複数の参照ピクチャが使用中である場合には、参照ピクチャを識別する第3次元を有することができる。
【0099】
幾つかの実施形態では、双予測(bi-prediction)技術が、インターピクチャ予測で使用できる。双予測技術によると、両方とも復号順序でビデオの中の現在ピクチャより前にある(が、各々表示順序で過去及び未来にあってよい)第1参照ピクチャ及び第2参照ピクチャのような2つの参照ピクチャが使用される。現在ピクチャ内のブロックは、第1参照ピクチャ内の第1参照ブロックを指す第1MV、及び第2参照ピクチャ内の第2参照ブロックを指す第2MVによりコーディングできる。ブロックは、第1参照ブロック及び第2参照ブロックの結合により予測できる。
【0100】
更に、コーディング効率を向上するために、インターピクチャ予測においてマージモード技術が使用できる。
【0101】
本開示の幾つかの実施形態によると、インターピクチャ予測及びイントラピクチャ予測のような予測は、ブロックのユニットの中で実行される。例えば、HEVC規格によると、ビデオピクチャシーケンスの中のピクチャは、圧縮のためにコーディングツリーユニット(coding tree unit:CTU)にパーティションされる。ピクチャ内のCTUは、64×64ピクセル、32×32ピクセル、又は16×16ピクセルのような、同じサイズを有する。通常、CTUは、3個のコーディングツリーブロック(coding tree blocks:CTB)、つまり1個のルマCTB及び2個のクロマCTB、を含む。各CTUは、1又は複数のコーディングユニット(coding unit:CU)に再帰的に4分木分割できる。例えば、64×64ピクセルのCTUは、64×64ピクセルの1個のCU、又は32×32ピクセルの4個のCU、又は16×16ピクセルの16個のCUに分割できる。一例では、各CUは、インター予測タイプ又はイントラ予測タイプのようなCUの予測タイプを決定するために分析される。CUは、時間的及び/又は空間的予測性に依存して、1つ以上の予測ユニット(prediction unit:PU)に分割される。通常、各PUは、ルマ予測ブロック(prediction block:PB)、及び2個のクロマPBを含む。一実施形態では、コーディング(符号化/復号)における予測演算が、予測ブロックのユニットの中で実行される。ルマ予測ブロックを予測ブロックの一例として用いると、予測ブロックは、8×8ピクセル、16×16ピクセル、8×16ピクセル、16×8ピクセル、等のようなピクセルについて値(例えば、ルマ値)のマトリクスを含む。
【0102】
図6は、本開示の別の実施形態によるビデオエンコーダ(603)の図を示す。ビデオエンコーダ(603)は、ビデオピクチャシーケンスの中の現在ビデオピクチャ内のサンプル値の処理ブロック(例えば、予測ブロック)を受信し、処理ブロックをコーディングビデオシーケンスの部分であるコーディングピクチャに符号化するよう構成される。一例では、ビデオエンコーダ(603)は、
図3の例では、ビデオエンコーダ(303)の代わりに使用される。
【0103】
HEVCの例では、ビデオエンコーダ(603)は、8×8サンプル等の予測ブロックのような、処理ブロックのサンプル値のマトリクスを受信する。ビデオエンコーダ(603)は、例えばレート歪み最適化を用いて、処理ブロックがイントラモード、インターモード、又は双予測モードを用いて最適にコーディングされるかを決定する。処理ブロックはイントラモードでコーディングされるとき、ビデオエンコーダ(603)は、処理ブロックをコーディングピクチャへと符号化するために、イントラ予測技術を使用してよい。処理ブロックがインターモード又は双予測モードでコーディングされるとき、ビデオエンコーダ(603)は、処理ブロックをコーディングピクチャへと符号化するために、各々インター予測又は双予測技術を使用してよい。特定のビデオコーディング技術では、マージモードは、予測器の外部のコーディングMV成分の利益無しに、MVが1つ以上のMV予測器から得られるインターピクチャ予測サブモードであり得る。特定の他のビデオコーディング技術では、対象ブロックに適用可能なMV成分が存在し得る。一例では、ビデオエンコーダ(603)は、処理ブロックのモードを決定するために、モード決定モジュール(図示しない)のような他のコンポーネントを含む。
【0104】
図6の例では、ビデオエンコーダ(603)は、
図6に示したように一緒に結合されたインターエンコーダ(630)、イントラエンコーダ(622)、残差計算器(623)、スイッチ(626)、残差エンコーダ(624)、一般制御部(621)、及びエントロピーエンコーダ(625)を含む。
【0105】
インターエンコーダ(630)は、現在ブロック(例えば、処理中のブロック)のサンプルを受信し、ブロックを参照ピクチャ内の1つ以上の参照ブロック(例えば、前のピクチャ及び後のピクチャの中のブロック)と比較し、インター予測情報(例えば、インター符号化技術による冗長情報の説明、MV、マージモード情報)を生成し、任意の適切な技術を用いてインター予測情報に基づきインター予測結果(例えば、予測ブロック)を計算するよう構成される。幾つかの例では、参照ピクチャは、符号化ビデオ情報に基づき復号された、復号参照ピクチャである。
【0106】
イントラエンコーダ(622)は、現在ブロック(例えば、処理中のブロック)のサンプルを受信し、幾つかの場合には、ブロックをサンプルピクチャ内の既にコーディングされたブロックと比較し、変換後に量子化済み係数を、幾つかの場合にはイントラ予測情報(例えば、1つ以上のイントラ符号化技術によるイントラ予測方向情報)も生成するよう構成される。一例では、イントラエンコーダ(622)は、イントラ予測情報及び同じピクチャ内の参照ブロックに基づき、イントラ予測結果(例えば、予測したブロック)も計算する。
【0107】
一般制御部(621)は、一般制御データを決定し、一般制御データに基づきビデオエンコーダ(603)の他のコンポーネントを制御するよう構成される。一例では、一般制御部(621)は、ブロックのモードを決定し、モードに基づき、制御信号をスイッチ(626)に提供する。例えば、モードがイントラモードであるとき、一般制御部(621)は、残差計算器(623)による使用のためにイントラモード結果を選択するようスイッチ(626)を制御し、イントラ予測情報を選択してビットストリーム内にイントラ予測情報を含めるよう、エントロピーエンコーダ(625)を制御し、モードがインターモードであるとき、一般制御部(621)は、残差計算器(623)による使用のためにインター予測結果を選択するようスイッチ(626)を制御し、インター予測情報を選択してビットストリーム内にインター予測情報を含めるよう、エントロピーエンコーダ(625)を制御する。
【0108】
残差計算器(623)は、受信したブロックとイントラエンコーダ(622)又はインターエンコーダ(630)からの選択された予測結果との間の差(残差データ)を計算するよう構成される。残差エンコーダ(624)は、残差データに基づき動作して、残差データを符号化し、変換係数を生成するよう構成される。一例では、残差エンコーダ(624)は、残差データを空間ドメインから周波数ドメインへと変換し、変換係数を生成するよう構成される。変換係数は、次に、量子化変換係数を得るために、量子化処理を受ける。種々の実施形態では、ビデオエンコーダ(603)も残差デコーダ(628)を含む。残差デコーダ(628)は、逆変換を実行し、復号残差データを生成するよう構成される。復号残差データは、イントラエンコーダ(622)及びインターエンコーダ(630)により適切に使用できる。例えば、インターエンコーダ(630)は、復号残差データ及びインター予測情報に基づき復号ブロックを生成でき、イントラエンコーダ(622)は、復号残差データ及びイントラ予測情報に基づき復号ブロックを生成できる。復号ブロックは、復号ピクチャを生成するために適切に処理され、復号ピクチャは、幾つかの例ではメモリ回路(図示しない)にバッファリングされ、参照ピクチャとして使用できる。
【0109】
エントロピーエンコーダ(625)は、符号化ブロックを含めるために、ビットストリームをフォーマットするよう構成される。エントロピーエンコーダ(625)は、HEVCのような適切な規格に従い種々の情報を含むよう構成される。一例では、エントロピーエンコーダ(625)は、ビットストリームに、一般制御データ、選択された予測情報(例えば、イントラ予測情報又はインター予測情報)、残差情報、及び他の適切な情報を含めるよう構成される。開示の主題によると、インターモード又は双予測モードのいずれかのマージサブモードでブロックをコーディングするとき、残差情報は存在しないことに留意する。
【0110】
図7は、本開示の別の実施形態によるビデオエンコーダ(710)の図を示す。ビデオデコーダ(710)は、コーディングビデオシーケンスの部分であるコーディングピクチャを受信し、コーディングピクチャを復号して再構成ピクチャを生成するよう構成される。一例では、ビデオデコーダ(710)は、
図3の例では、ビデオデコーダ(310)の代わりに使用される。
【0111】
図7の例では、ビデオデコーダ(710)は、
図7に示したように一緒に結合されたエントロピーデコーダ(771)、インターデコーダ(780)、残差デコーダ(773)、再構成モジュール(774)、イントラデコーダ(772)を含む。
【0112】
エントロピーデコーダ(771)は、コーディングピクチャから、コーディングピクチャの生成されたシンタックス要素を表す特定のシンボルを再構成するよう構成され得る。このようなシンボルは、例えば、ブロックのコーディングされたモード(例えば、イントラモード、インターモード、双方向モード、マージサブモード又は別のサブモードの後者の2つ)、各々イントラデコーダ(772)又はインターデコーダ(780)による予測のために使用される特定のサンプル又はメタデータを特定できる予測情報(例えば、イントラ予測情報又はインター予測情報)、例えば量子化された変換係数の形式の残差情報、等を含み得る。一例では、予測モードがインター又は双方向予測モードであるとき、インター予測情報がインターデコーダ(780)に提供され、予測タイプがイントラ予測タイプであるとき、イントラ予測情報がイントラデコーダ(772)に提供される。残差情報は、逆量子化され、残差デコーダ(773)に提供される。
【0113】
インターデコーダ(780)は、インター予測情報を受信し、インター予測情報に基づきインター予測結果を生成するよう構成される。
【0114】
イントラデコーダ(772)は、イントラ予測情報を受信し、イントラ予測情報に基づき予測結果を生成するよう構成される。
【0115】
残差デコーダ(773)は、逆量子化を実行して、逆量子化された変換係数を抽出し、逆量子化された変換係数を処理して、残差を周波数ドメインから空間ドメインへと変換するよう構成される。残差デコーダ(773)は、(量子化器パラメータ(Quantizer Parameter:QP)を含むための)特定の制御情報も要求してよい。この情報は、エントロピーデコーダ(771)により提供されてよい(これは低容量制御情報のみなので、データ経路は示されない)。
【0116】
再構成モジュール(774)は、空間ドメインで、残差デコーダ(773)による出力としての残差と(場合によりインター又はイントラ予測モジュールによる出力としての)予測結果とを結合して、再構成ピクチャの部分であり得る、一方で再構成ビデオの部分であり得る、再構成ブロックを形成するよう構成される。デブロッキング動作などのような他の適切な動作が、視覚的品質を向上するために実行できる。
【0117】
ビデオエンコーダ(303)、(503)、及び(603)、並びにビデオデコーダ(310)、(410)、及び(710)は、任意の適切な技術を用いて実装できることに留意する。一実施形態では、ビデオエンコーダ(303)、(503)、及び(603)、並びにビデオデコーダ(310)、(410)、及び(710)は、1つ以上の集積回路を用いて実装できる。別の実施形態では、ビデオエンコーダ(303)、(503)、及び(603)、並びにビデオデコーダ(310)、(410)、及び(710)は、ソフトウェア命令を実行する1つ以上のプロセッサを用いて実装できる。
【0118】
<II.適応型ループフィルタ>
【0119】
VVC Draft8のような幾つかの関連する例では、ブロックベースのフィルタ適応と共に適応型ループフィルタ(adaptive loop filter (ALF))が適用できる。ルマ成分では、各々の4×4ブロックの方向性及びアクティビティに基づき、25個のフィルタの中の1つが、4×4ブロック毎に選択できる。
【0120】
図8A~8Bは、本開示の幾つかの実施形態による、ALFの例示的なダイヤモンドフィルタ形状を示す。
図8Aは、クロマ成分に適用可能な5×5ダイヤモンド形状を示し、
図8Bは、ルマ成分に適用可能な7×7ダイヤモンド形状を示す。
【0121】
幾つかの関連する例では、ルマ成分について、各4×4ブロックは、25個のクラスのうちの1つに分類できる。4×4ブロックの分類インデックスCは、方向性D、及び4×4ブロックのアクティビティの量子化済みの値A^に基づき、以下のように導出できる:
【数1】
【0122】
D及びA^を計算するために、先ず、4×4ブロックの水平方向、垂直方向、及び2つの対角方向の勾配が、1Dラプラシアンを用いて、以下のように計算できる:
【数2】
ここで、i及びjは、4×4ブロック内の左上サンプルの座標を表し、R(i,j)は、座標(i,j)における再構成サンプルを示す。
【0123】
ブロック分類の複雑さを低減するために、サブサンプリング1Dラプラシアン計算が適用できる。
図9A~9Dは、各々、幾つかの実施形態による、垂直方向、水平方向、対角方向、及び対角方向の勾配のために使用される例示的なサブサンプリング位置を示す。
【0124】
【0125】
次に、2つの対角方向の勾配の最大値及び最小値は、以下のように設定できる:
【数4】
【0126】
方向性の値Dを導出するために、これらの値は、互いに及び2つの閾値t1及びt2と比較され得る。
【0127】
【0128】
【0129】
【0130】
【0131】
アクティビティ値Aは、以下のように計算される:
【数9】
【0132】
Aは、更に、両端を含む0~4の範囲に量子化され、量子化済みの値はA^と示される。
【0133】
ピクチャ内のクロマ成分については、分類方法は適用されない。例えば、単一のセットのALF係数が、各クロマ成分について適用できる。
【0134】
各4×4ルマブロックをフィルタリングする前に、回転、対角フリッピング、垂直フリッピングのような幾何学的変換が、各々のブロックについて計算された勾配値に依存して、フィルタ係数f(k,l)、及び対応するフィルタクリッピング値c(k,l)に適用される。これは、ALFが適用される異なるブロックをそれらの方向性を揃えることにより、より類似させるために、これらの変換をフィルタサポート領域(又はフィルタサポートエリア)内のサンプルに適用することと等価である。
【0135】
対角フリッピング、垂直フリッピング、及び回転を含む3つの幾何学的変換は、以下のように説明できる:
【数10】
ここで、Kはフィルタのサイズであり、0≦k、l≦K-1は、変換係数の座標である。位置(0,0)は左上角であり、位置(K-1,K-1)は右下角である。変換は、対応するブロックについて計算された勾配値に依存して、フィルタ係数f(k,l)、及びクリッピング値c(k,l)に適用される。変換と4つの方向の勾配との間の関係は、表1に纏められる。
【表1】
【0136】
VVC Draft8のような幾つかの関連する例では、ALFのフィルタパラメータは、適応パラメータセット(adaptation parameter set (APS))の中でシグナリングされる。1つのAPSの中で、ルマフィルタ係数及びクリッピング値インデックスの最大25個のセット、及びクロマフィルタ係数及びクリッピング値インデックスの最大8個のセットがシグナリングできる。ビットオーバヘッドを削減するために、ルマ成分の異なる分類のフィルタ係数はマージできる。スライスヘッダの中で、現在スライスのために使用されるAPSのインデックスがシグナリングされる。ALFのシグナリングは、VVC Draft8ではCTUベースである。
【0137】
クリッピング値インデックスは、APSから復号され、ルマ及びクロマ成分のクリッピング値の表を用いてクリッピング値を決定することを可能にする。これらのクリッピング値は、内部ビット深さに依存する。例えば、クリッピング値の表は、次式により取得できる:
【数11】
ここで、Bは内部ビット深さであり、αは2.35に等しい所定の定数値であり、Nは、4に等しく、VVC Draft8で許容されるクリッピング値の数である。
図2は、式(14)の出力の例を示す。
【表2】
【0138】
スライスヘッダの中で、現在スライスのために使用されるルマフィルタセットを指定するために、最大7個のAPSインデックスがシグナリングできる。フィルタリング処理は、CTBレベルで更に制御できる。フラグは、ALFがルマCTBに適用されるかどうかを示すためにシグナリングできる。ルマCTBは、16個の固定フィルタセット及びAPSからのフィルタセットの中から、フィルタセットを選択できる。フィルタセットインデックスは、どのフィルタセットが適用されるかを示すために、ルマCTBについてシグナリングされる。16個の固定フィルタセットは、エンコーダ及びデコーダの両方において予め定められ、ハードコードされることができる。
【0139】
クロマ成分について、現在スライスのために使用されるクロマフィルタセットを示すために、APSインデックスは、スライスヘッダの中でシグナリングできる。CTBレベルで、APSの中に1つより多くのクロマフィルタセットが存在する場合、フィルタインデックスは、クロマCTB毎にシグナリングできる。
【0140】
フィルタ係数は量子化でき、ここで、ノルムは128に等しい。乗算の複雑さを限定的にするために、ビットストリーム準拠が適用でき、その結果、中央ではない位置の係数値は、両端を含む-27から27-1の範囲になり得る。中央位置の係数は、ビットストリーム内でシグナリングされず、128に等しいと考えられる。
【0141】
VVC Draft8のような幾つかの関連する例では、クリッピングインデックスのシンタックス及びセマンティクス、及び対応する値は以下のように定義できる:
【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][filtIdx]は、BitDepthYに等しく設定されたbitDepth、及びalf_luma_clip_idx[alf_luma_coeff_delta_idx[filtIdx]][j]に等しく設定されたclipIdxに依存して、表2で導出される。
【0144】
alf_chroma_clip_idx[altIdx][j]は、インデックスaltIdxを有する代替のクロマフィルタのj番目の係数により乗算する前に使用されるべき、クリッピング値のクリッピングインデックスを指定する。ビットストリーム準拠の要件は、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】
デコーダ側で、ALFがCTBについて有効であるとき、CU内の各サンプルR(i,j)はフィルタリングされ、結果として、以下に示すような対応するサンプル値R'(i,j)を生じる:
【数12】
ここで、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)に対応する。このクリッピング関数を組み込むことにより、このループフィルタリング方法は、非線形ALFとして知られている非線形処理になる。選択されたクリッピング値は、表2のクリッピング値のインデックスに対応するGolomb符号化方式を用いて、「alf_data」シンタックス要素にコーディングされる。この符号化方式は、フィルタインデックスの符号化方式と同じである。
【0147】
図10は、本開示の実施形態による、ルマ成分に適用される例示的な変更されたブロック分類を示す。変更されたブロック分類及びフィルタリングは、水平CTU境界の近くのサンプルのために利用され、ALFのラインバッファ要件を低減できる。
図10に示す様に、仮想境界は、水平CTU境界を「N」サンプルだけシフトした線として定義される。ここで、Nは、各々、ルマ成分では4に、クロマ成分では2に等しい。
【0148】
仮想境界の上の4×4ブロックの1Dラプラシアン勾配計算では、仮想境界の上のサンプルだけが使用される。同様に、仮想境界の下の4×4ブロックの1Dラプラシアン勾配計算では、仮想境界の下のサンプルだけが使用される。アクティビティ値Aの量子化は、従って、1Dラプラシアン勾配計算で使用される削減された数のサンプルを考慮してスケーリングされる。
【0149】
図11は、幾つかの実施形態による、仮想境界におけるルマ成分に対する例示的な変更されたALFを示す。フィルタリング処理では、仮想境界における対称パディング動作が、ルマ及びクロマ成分の両方について使用できる。
図11に示すように、フィルタリングされているサンプルが仮想境界の下に位置するとき、仮想境界の上に位置する近隣サンプルはパディングされる。一方で、他の側にある対応するサンプルも対称的にパディングされる。
【0150】
コーディング効率を向上するために、コーディングユニット同期ピクチャ4分木ベースALPが、幾つかの関連する例において使用される。ルマピクチャは、幾つかのマルチレベル4分木パーティションに分割でき、各パーティション境界は最大コーディングユニット(largest coding unit(LCU))の境界に揃えられる。各パーティションは、固有のフィルタリング処理を有し、フィルタユニット(filter unit (FU))と呼ぶことができる。
【0151】
2パス符号化フローは以下のように説明される。第1パスで、4分木分割パターン及び各FUの最良フィルタが決定される。フィルタリング歪みは、決定処理の間に、高速フィルタリング歪み推定(fast filtering distortion estimation (FFDE))により推定される。決定された4分木分割パターン及び全部のFUの選択されたフィルタに従い、再構成ピクチャがフィルタリングされる。第2パスで、CU同期ALFオン/オフ制御が実行される。ALFオン/オフ結果に従い、第1パスからのフィルタリング済みピクチャは、再構成ピクチャにより部分的に復元される。
【0152】
図12は、実施形態による、例示的なLCU整列ピクチャ4分木分割を示す。トップダウン分割方針が採用され、レート歪み基準を使用して、ピクチャをマルチレベル4分木パーティションに分割する。各パーティションは、フィルタユニットと呼ばれる。分割処理は、4分木パーティションをLCU境界に揃える。FUの符号化順序は、zスキャン順序に従う。例えば、
図12に示すように、ピクチャは、10個のFUに分割され、符号化順序は、FU0、FU1、FU2、FU3、FU4、FU5、FU6、FU7、FU8、及びFU9である。
【0153】
図13は、
図12に対応する例示的な4分木分割パターンを示す。ピクチャ4分木分割パターンを示すために、分割フラグが符号化され、z順序で送信される。
【0154】
各FUのフィルタは、レート歪み基準に基づき2つのフィルタセットから選択できる。第1セットは、現在FUについて新たに導出された1/2対称正方形及び菱形フィルタを有する。第2セットは、前のピクチャのFUについて以前に導出されたフィルタを格納する時間遅延フィルタバッファに由来する。これら2つのフィルタのうち、最小レート歪みコストを有するフィルタが、現在FUのために選択できる。同様に、現在FUが最小FUではなく、4個の子FUに更に分割できる場合、4個の子FUのレート歪みコストが計算される。分割の場合及び分割無しの場合の各々のレート歪みコストを比較することにより、ピクチャ4分木分割パターンが決定できる。
【0155】
幾つかの関連する例では、最大4分木分割レベルは2であり、これは、FUの最大数が16であることを意味する。4分木分割決定の間、一番下の4分木レベルにある16個のFU(最小FU)のWiener係数を導出するための相関値が再利用できる。残りのFUは、それらのWienerフィルタを、一番下の4分木分割レベルにある16個のFUの相関から導出できる。従って、全部のFUのフィルタ係数を導出するために、1回のフレームバッファアクセスのみでよい。
【0156】
4分木分割パターンが決定された後に、フィルタリング歪みを更に低減するために、CU同期ALFオン/オフ制御が実行できる。フィルタリング歪み及びフィルタリング無し歪みを比較することにより、リーフCUは、そのローカル領域でALFオン/オフを明示的に切り換えることができる。コーディング効率は、ALFオン/オフ結果に従いフィルタ係数を再設計することにより、更に向上できる。しかしながら、再設計処理は、追加のフレームバッファアクセスを必要とする。幾つかの関連する例では、フレームバッファアクセスの回数を最小化するために、CU同期ALFオン/オフ決定の後に、再設計処理がない。
【0157】
<III.適応型ループフィルタ>
【0158】
幾つかの関連する例では、成分間適応型ループフィルタ(cross-component adaptive loop filter (CC-ALF))が利用される。CC-ALFは、ルマサンプル値を利用して、各クロマ成分を精緻化する。
【0159】
図14Aは、本開示の実施形態によるCC-ALFの例示的な配置を示す。
図14Bは、CC-ALF操作の間にクロマ成分毎にルマチャネルに適用される例示的な線形ダイヤモンド形状フィルタを示す。フィルタ係数は、APSの中で送信でき、例えば210の係数によりスケーリングされ、固定小数点表示のために丸め込まれる。フィルタの適用は、可変ブロックサイズで制御され、サンプルの各ブロックについて受信されたコンテキストコーディングフラグによりシグナリングされる。ブロックサイズは、CC-ALF有効化フラグと一緒に、クロマ成分毎にスライスレベルで受信される。例では、(クロマサンプルで)以下のブロックサイズがサポートされる:16×16、32×32、及び64×64。
【0160】
表3は、CC-ALFに関連するシンタックス要素を示す。
【表3】
【0161】
表3では、シンタックス要素alf_ctb_cross_component_cb_idc[xCtb>>CtbLog2SizeY][yCtb>>CtbLog2SizeY]が0に等しいことは、成分間Cbフィルタが、ルマ位置(xCtb,yCtb)にあるCb色成分においてサンプルのブロックに適用されないことを示す。シンタックス要素aalf_ctb_cross_component_cb_idc[xCtb>>CtbLog2SizeY][yCtb>>CtbLog2SizeY]0に等しくないことは、alf_ctb_cross_component_cb_idc[xCtb>>CtbLog2SizeY][yCtb>>CtbLog2SizeY]番目の成分間Cbフィルタが、ルマ位置(xCtb,yCtb)にあるCb色成分においてサンプルブロックに適用されることを示す。
【0162】
シンタックス要素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フィルタが、ルマ位置(xCtb,yCtb)にあるCr色成分におけるサンプルブロックに適用されることを示す。
【0163】
<IV.クロマサンプリングフォーマット>
【0164】
図15は、chroma_format_idcが1に等しく(4:2:0クロマフォーマット)、chroma_sample_loc_type_top_field又はchroma_sample_loc_type_bottom_fieldが変数ChromaLocTypeの値に等しいとき、左上クロマサンプルの例示的な相対位置を示す。左上4:2:0クロマサンプルにより表現される領域が、左上ルマサンプルにより表現される領域に対して示される。
【0165】
<V.制約付き指向性拡張フィルタ>
【0166】
インループ制約付き指向性拡張フィルタ(constrained directional enhancement filter (CDEF))の1つの目標は、画像の詳細を保持しながら、コーディングアーチファクトをフィルタリングして除去することである。HEVCのような幾つかの関連する例では、サンプル適応型オフセット(sample adaptive offset (SAO))アルゴリズムは、異なるクラスのピクセルについて信号オフセットを定義することにより、同様の目標を達成できる。SAOと異なり、CDEFは、非線形空間フィルタである。フィルタの設計は、簡単にベクトル化できるように、例えば単一命令複数データ(single instruction multiple data (SIMD))演算により実装可能なように、制約されている。これは、メジアンフィルタ及びバイラテラルフィルタのような他の非線形フィルタには当てはまらない。
【0167】
CDEF設計は、以下の観察に由来する。コーディング画像内のリンギングアーチファクトの量は、量子化ステップサイズにほぼ比例する傾向がある。詳細の量は入力画像の特性であるが、量子化画像内に保持される最小の詳細も、量子化ステップサイズに比例する傾向がある。所与の量子化ステップサイズでは、リンギングの大きさは、通常、詳細の大きさより小さい。
【0168】
CDEFは、各ブロックの方向を識別し、次に識別した方向に沿って、及び識別された方向から45度回転された方向に沿って少ない角度へと適応的にフィルタリングすることにより動作する。フィルタ強度は、明示的にシグナリングされる。これは、ブラーに対する高度な制御を可能にする。効率的なエンコーダ探索は、フィルタ強度のために設計される。CDEFは、2つの前に提案されたインループフィルタに基づき、結合フィルタは、新しいAOMedia Video1(AV1)コーデックのために採用されている。
【0169】
図16は、本開示の実施形態による8×8ブロックのついての例示的な方向探索を示す。方向探索は、デブロッキングフィルタの直後の、再構成ピクセルに対して作用する。それらのピクセルはデコーダに利用可能であるので、方向をシグナリングする必要がない。探索は、8×8ブロックに対して作用する。8×8ブロックは、非直線エッジを適切に処理するのに十分に小さく、量子化画像に適用されるとき方向を直ちに推定するのに十分に大きい。8×8領域に渡り一定の方向を有することは、フィルタのベクトル化も一層容易にする。ブロック毎に、量子化ブロックと最も近い完全な方向ブロックとの間の差分二乗和(sum of squared differences (SSD))を最小化することにより、各々のブロック内のパターンに最もよく一致する方向が決定される。完全な方向ブロックは、1つの方向の線に沿う全部のピクセルが同じ値を有するブロックである。
【0170】
方向を識別することの1つの理由は、指向性エッジ又はパターンを保存しながら、リンギングを低減する方向に沿ってフィルタタップを揃えることである。しかしながら、指向性フィルタリングのみでは、リンギングを十分に低減できないことがある。主方向に沿っていないピクセルにも、フィルタタップを使用することが望ましい。ブラーのリスクを低減するために、これらの追加タップは、より控えめに取り扱われる。この理由から、CDEFは、1次タップ及び2次タップを定義する。完全な2D CDEFフィルタは、以下のように表現される:
【数13】
ここで、Dはダンピングパラメータであり、S
(p)及びS
(s)は各々1次タップ及び2次タップの強度であり、round(・)は、ゼロから離れたタイを丸め込み、w
(p)
d,m,n及びw
(s)
d,m,nはフィルタ重みであり、f(d,S,D)はフィルタリング済みピクセルと近隣ピクセルの各々との間の差分に対して作用する制約関数である。小さな差分について、f(d,S,D)=dであり、フィルタを線形フィルタのように動作させる。差分が大きいとき、f(d,S,D)=0であり、これはフィルタタップを効果的に無視する。
【0171】
<VI.AV1におけるループ復元>
【0172】
インループ復元方式のセットは、通常、伝統的なデブロッキング動作を超えて、ノイズを除去し、エッジの品質を向上するために、デブロッキング後のビデオコーディングで使用できる。これらの方式は、適切にサイズを定められたタイル毎に、フレーム内で切り換え可能である。説明される特定の方式は、分離可能な対称Wienerフィルタ及びサブ空間投影を備えたデュアル自己誘導フィルタに基づく。コンテンツの統計はフレーム内で有意に変化し得るので、これらのツールは、異なるツールがフレームの異なる領域内でトリガできる切り換え可能な枠組みの中で統合される。
【0173】
Wienerフィルタでは、劣化したフレーム内の全てのピクセルは、各々のピクセルの周囲のw×wウィンドウ内の各々のピクセルの非因果フィルタリング済みバージョンとして再構成できる。ここで、w=2r+1は整数rについて奇数である。2Dフィルタタップが、列ベクトル化形式でw2×1要素ベクトルFにより示される場合、単純な線形最小平均二乗誤差(linear minimum mean square error (LMMSE))最適化により、結果として、フィルタパラメータがF=H-1Mにより与えられる。ここで、H=E[XXT]は、xの自己共分散、ピクセルの周囲のw×wウィンドウ内のw2個のサンプルの列ベクトル化バージョンであり、M=E[YXT]は、推定されるべき、xのスカラソースサンプルyとの相互相関である。エンコーダは、デブロッキング済みフレームの実現及びソースから、H及びMを推定でき、結果として生じたフィルタFをデコーダへ送信する。しかしながら、これは、w2個のタップを送信する実質的なビットレートコストを生じるだけでなく、復号を極めて複雑にする非分離可能なフィルタリングも生じる。従って、幾つかの追加の制約が、Fの特性に対して課される。第1に、Fは、分離可能であるよう制約される。その結果、フィルタリングは、分離可能な水平及び垂直wタップ畳み込みとして実装できる。第2に、水平及び垂直フィルタの各々は、対称的であるよう制約される。第3に、水平及び垂直フィルタ係数の両方の和は、1になると想定される。
【0174】
誘導フィルタリングのローカル線形モデルは、以下のように表すことができる。
【数14】
【0175】
ローカル線形モデルは、未フィルタリングサンプルxからフィルタリング済み出力yを計算するために使用される。ここで、F及びGは、フィルタリング済みピクセルの近隣にある劣化した画像及び誘導画像の統計に基づき決定される。誘導画像が劣化した画像と同じである場合、結果として生じる所謂、自己誘導フィルタリングは、エッジを保存する平滑化の効果を有する。自己誘導フィルタリングの特定の形式は、2つのパラメータ:半径rとノイズパラメータeに依存し、以下のように列挙される。
【0176】
(1)全てのピクセルの周囲の(2r+1)×(2r+1)ウィンドウ内のピクセルの平均μ及び分散σ2を取得する。これは、インテグラルイメージングに基づくボックスフィルタリングにより効果的に実施できる。
【0177】
(2)全てのピクセルについて以下を計算する:
【数15】
【0178】
(3)使用するために、ピクセルの周囲の3×3ウィンドウ内のf及びgの値の平均として、全てのピクセルについて、F及びGを計算する。
【0179】
フィルタリングは、r及びeにより制御される。ここで、rが高いほど、空間分散が高いことを示し、eが高いほど、範囲分散が高いことを示す。
【0180】
図17は、実施形態による、例示的なサブ空間投影を示す。安価な復元X
1及びX
2のいずれもソースYの近くに存在しないが、適切な乗数{α,β}は、それらがある程度正しい方向に移動している限り、それらをソースにもっと近づけることができる。
【0181】
<VII.成分間サンプルオフセットフィルタ>
【0182】
成分間サンプルオフセット(cross-component sample offset (CCSO))フィルタは、再構成サンプルの歪みを低減するためのループフィルタリングアプローチである。CCSOフィルタでは、第1色成分の処理済みの入力された再構成サンプルが与えられると、出力オフセットを導出するために、非線形マッピングが使用できる。出力オフセットは、CCSOフィルタのフィルタリング処理の中で第2色成分の再構成サンプルに加算できる。第1色成分の入力された再構成サンプルは、フィルタサポートエリア(又はフィルタサポート領域)内に位置する。
【0183】
図18は、本開示の実施形態による例示的なフィルタサポートエリアを示す。フィルタサポートエリアは、4個の再構成サンプル:p0、p1、p2、及びp3を含む。4個の入力された再構成サンプルは、垂直及び水平方向に十字型になる。第1色成分の中央のサンプル(cにより示される)、及び第2色成分のフィルタリングされるべきサンプルは、同一位置にある。入力された再構成サンプルを処理するとき、以下のステップが適用される。
【0184】
ステップ1:最初に、p0~p3とcとの間のデルタ値が計算され、m0、m1、m2、及びm3として示される。
【0185】
ステップ2:デルタ値m0~m3は更に量子化される。量子化済みの値は、d0、d1、d2、及びd3と示される。量子化済みの値は、以下の量子化処理に基づき、-1、0、及び1になり得る。(a)m<-Nならば、d=-1;(b)-N<=m<=Nならば、d=0;(c)m>Nならば、d=1である。ここで、Nは量子化ステップサイズと呼ばれ、Nの例示的な値は4、8、12、及び16を含む。
【0186】
量子化済みの値d0~d3は、非線形マッピングの1つの組合せを識別するために使用できる。例えば、
図8のCCSOフィルタは、4個のフィルタタップd0~d3を有し、各フィルタタップは3個の量子化済みの値(例えば、-1、0、及び1)のうちの1つを有することができ、従って、全部で3
4=81個の組合せがある。
【0187】
図19A~19Bは、実施形態による、CCSOフィルタにおける非線形マッピングの、表形式の81個の例示的な組合せの表を示す。表の最後の列は、各組合せの出力オフセット値を表す。オフセット値の例は、整数であり、例えば0、1、-1、3、-3、5、-5、及び-7である。
【0188】
CCSOフィルタの最終的なフィルタリング処理は、以下のように適用できる。
【数16】
ここで、fはフィルタリングされるべき再構成サンプルであり、sは
図19A~19Bの表から読み出される出力オフセット値である。フィルタリング済みサンプル値f'は、更にクリッピングされて、ビット深さに関連する範囲になる。
【0189】
<VIII.改良された成分間サンプルオフセットフィルタ>
【0190】
関連するCCSOフィルタでは、入力された再構成サンプルを処理するとき、量子化ステップサイズは固定値であり、これは、CCSOフィルタの性能を制限し得る。更に、処理済みの入力された再構成サンプルの組合せ毎の出力オフセット値は、固定値であり、これは、CCSOフィルタの性能を更に制限し得る。
【0191】
本開示では、CCSOフィルタは、入力として第1色成分(例えば、Y、Cb、又はCr)の再構成サンプルを使用し、ブロックの第1色成分と異なる、ブロックの第2色成分に、出力を適用するフィルタリング処理として定義できる。
【0192】
CCSOフィルタの非線形マッピングへの入力は、ブロックの第1色成分のフィルタサポートエリア(又はフィルタサポート領域)内の1つ以上の処理済みの再構成サンプルである。1つ以上の入力された再構成サンプルを処理するとき、量子化処理が適用でき、量子化処理は量子化ステップサイズNにより制御できる。入力された再構成サンプルが処理されると、出力オフセット値は、CCSOフィルタの非線形マッピングから読み出すことができる。出力オフセット値は、ブロックの第2色成分に適用できる。
【0193】
本開示は、CCSOフィルタの性能を向上する方法を含む。本開示では、フィルタサポート領域(又はエリア)は、CCSOフィルタのようなフィルタリング処理が実行される領域として定義できる。量子化処理では、可能なサンプル値の範囲は、量子化間隔と呼ばれる間隔(又はステップ)の有限集合に分解できる。2つの量子化間隔の間の差分は、量子化ステップサイズと呼ぶことができる。
【0194】
本開示の態様によると、適応型量子化ステップサイズ(例えば、第VII章(成分間サンプルオフセットフィルタの章)で説明したN)は、CCSOフィルタのフィルタサポート領域(又はエリア)内の入力された再構成サンプルを処理するとき、使用できる。幾つかの実施形態では、量子化ステップサイズは、コーディングブロック、ビデオフレーム、及び/又はビデオシーケンスの特性に基づき変化し得る。量子化ステップサイズの変動は、全体のコーディング効率を向上することができる。
【0195】
一実施形態では、量子化ステップサイズNは、所定の一定の整数であり得る。Nの例は、4、8、12、及び16を含む。Nは、異なるコーディングブロック、ビデオフレーム、又はビデオシーケンスについて変化し得る。
【0196】
一実施形態では、量子化ステップサイズNは、2のべき乗である整数2N、例えば、2、4、8、又は16であることができる。
【0197】
一実施形態では、量子化ステップサイズNは、シグナリングできる。量子化ステップサイズNは、ブロックレベルパラメータ、スライスレベルパラメータ、タイルレベルパラメータ、又はフレームレベルパラメータでシグナリングできる。
【0198】
一実施形態では、可能な量子化ステップサイズのアレイが与えられると、どの量子化ステップサイズが選択されるかを示すために、インデックスがシグナリングできる。インデックスは、ブロックレベルパラメータ、スライスレベルパラメータ、タイルレベルパラメータ、CTUレベルパラメータ、ビデオフレームレベルパラメータ、又はシーケンスレベルパラメータでシグナリングできる。
【0199】
一例では、可能な量子化ステップサイズのアレイは{4,8,12,16}であることができ、[0,3]内のインデックスは、アレイ内のどの値が選択されるかを示すためにシグナリングできる。
【0200】
一例では、インデックスは、固定長コードワード、例えば{00,01,10,11}を用いてシグナリングできる。
【0201】
一例では、可能な量子化ステップサイズのアレイは{4,8,16}であることができ、[0,2]内のインデックスは、前記アレイ内のどの値が選択されるかを示すためにシグナリングできる。
【0202】
一例では、インデックスは、可変長コードワード、例えば{0,10,11}又は{1,00,01}を用いてシグナリングできる。
【0203】
一実施形態では、量子化ステップサイズN又はNのインデックスは、高レベルパラメータセット、例えば復号パラメータセット(decoding parameter set (DPS))、ビデオパラメータセット(video parameter set (VPS))、シーケンスレベルパラメータセット(sequence parameter set (SPS))、ピクチャパラメータセット(picture parameter set (PPS))、適応パラメータセット(adaption parameter set (APS))、スライスヘッダ、又はピクチャヘッダの中でシグナリングできる。
【0204】
本開示の態様によると、適応型オフセット値は、フィルタサポート領域の特性に基づき使用できる。幾つかの実施形態では、CCSOフィルタの非線形マッピングから導出されたオフセット値は、フィルタサポート領域の特性に基づき更にスケーリングできる。
【0205】
一実施形態では、オフセット値のスケーリングは、デルタ値(例えば、m0~m3)及び/又は量子化ステップサイズNに依存できる。ここで、m0~m3は、第VII章(成分間サンプルオフセットフィルタの章)で説明した周囲サンプルp0~p3と中央サンプルcとの間のデルタ値である。一実施形態では、オフセット値のスケーリングは、m0~m3の絶対値の平均とNとの間の比rに依存できる。
【0206】
一実施形態では、m0~m3の絶対値の平均が最初に計算でき、m'として示される。比rは、r=m’/Nのように導出できる。次に、非線形マッピングから導出されたオフセット値は、1とrとの間の最大値、例えばmax(1,m’/N)、によりスケーリングできる。
【0207】
一例では、d0=1、d1=-1、d2=0、d3=0、及びm0=8、m1=-8、m2=3、m3=1である。量子化ステップサイズNは4であり、出力オフセット値sは3である。従って、m’=avg(abs(m0)+abs(m1)+abs(m2)+abs(m3))=avg(8+8+3+1)=5であり、ここで、avg及びabsは、各々、平均及び絶対操作を表す。比r=m’/N=5/4=1、及び最終オフセット値は、s×r=3×1=3である。
【0208】
一実施形態では、平均m'は、m0~m3の絶対値の部分集合を用いて計算できる。これらの対応する量子化済みの値d0~d3は、ゼロではない(例えば、量子化済みの値がゼロならば、対応するmはm'の計算から除外される)。比rは、m’/Nのように導出できる。次に、非線形マッピングから導出された出力オフセット値は、1とrとの間の最大値、例えばmax(1,m’/N)、によりスケーリングできる。
【0209】
一例では、d0=1、d1=-1、d2=0、d3=0、及びm0=8、m1=-8、m2=3、m3=1である。量子化ステップサイズNは4であり、出力オフセット値sは3である。従って、m’=avg(abs(m0)+abs(m1))=avg(8+8)=8であり、ここで、avg及びabsは、各々、平均及び絶対操作を表す。比r=m’/N=8/4=2、及び最終オフセット値は、s×r=3×2=6である。
【0210】
一実施形態では、出力オフセット値の適応は、常に有効に(又はオンに)できる。つまり、出力オフセット値のスケーリングは、CCSOフィルタで常に使用できる。
【0211】
一実施形態では、出力オフセット値の適応を有効にするかどうかを示すシンタックス要素は、例えば、ブロックレベルパラメータ、ビデオフレームレベルパラメータ、スライスレベルパラメータ、タイルレベルパラメータ、CTUレベルパラメータ、又はシーケンスレベルパラメータで、シグナリングできる。シンタックス要素は、高レベルパラメータセット(例えば、DPS、VPS、SPS、PPS、又はAPS)、スライスヘッダ、ピクチャヘッダ、又はSEIメッセージの中でもシグナリングできる。
【0212】
<IX.フローチャート>
【0213】
図20は、本開示の実施形態による、例示的な処理(2000)の概要を示すフローチャートを示す。種々の実施形態では、処理(2000)は、端末装置(210)、(220)、(230)及び(240)内の処理回路、ビデオエンコーダ(303)の機能を実行する処理回路、ビデオデコーダ(310)の機能を実行する処理回路、ビデオデコーダ(410)の機能を実行する処理回路、イントラ予測モジュール(452)の機能を実行する処理回路、ビデオエンコーダ(503)の機能を実行する処理回路、予測器(535)の機能を実行する処理回路、イントラエンコーダ(622)の機能を実行する処理回路、イントラデコーダ(772)の機能を実行する処理回路、等のような処理回路により実行される。幾つかの実施形態では、処理(2000)は、ソフトウェア命令で実装され、したがって、処理回路がソフトウェア命令を実行すると、処理回路が処理(2000)を実行する。
【0214】
処理(2000)は、通常、ステップ(S2010)で開始してよく、処理(2000)は、コーディングビデオシーケンスの一部である現在ピクチャのフィルタサポート領域の中の第1色成分の再構成サンプルを決定する。次に、処理(2000)は、ステップ(S2020)に進む。
【0215】
ステップ(S2020)で、処理(2000)は、フィルタサポート領域の中の第1色成分の再構成サンプルに対してフィルタ処理を実行する。フィルタ処理の量子化ステップサイズは、コーディングブロック、ビデオフレーム、及びビデオシーケンスのうちの1つについて個別に設定される。次に、処理(2000)は、ステップ(S2030)に進む。
【0216】
ステップ(S2030)で、処理(2000)は、フィルタ処理の出力値に基づき、フィルタサポート領域の中の第2色成分のサンプルを再構成する。第2色成分は第1色成分と異なる。次に、処理(2000)は終了する。
【0217】
実施形態では、量子化ステップサイズは、コーディングブロック、ビデオフレーム、及びビデオシーケンスのうちの1つについて所定の定数である。
【0218】
実施形態では、量子化ステップサイズは、2のべき乗である整数である。
【0219】
実施形態では、量子化ステップサイズは、コーディングブロック、ビデオフレーム、及びビデオシーケンスのうちの1つに対応ビットストリームに含まれるインデックスに基づき決定される、複数の量子化ステップサイズのうちの1つである。
【0220】
実施形態では、量子化ステップサイズは、コーディングブロック、ビデオフレーム、及びビデオシーケンスのうちの1つに対応するビットストリームに含まれる。
【0221】
実施形態では、処理(2000)は、フィルタ処理の出力値が、フィルタサポート領域の中の第1色成分の再構成サンプルに基づきスケーリングされるかどうかを決定する。フィルタ処理の出力値がスケーリングされることに応答して、処理(2000)は、フィルタ処理のスケーリングされた出力値に基づき、フィルタサポート領域の中の第2色成分のサンプルを再構成する。
【0222】
実施形態では、処理(2000)は、フィルタサポート領域の中の第1色成分の再構成サンプル、及びフィルタ処理の出力値のスケーリングが有効にされるかどうかを示すシンタックス要素に基づき、フィルタ処理の出力値がスケーリングされるかどうかを決定する。
【0223】
実施形態では、処理(2000)は、フィルタサポート領域の中の第1色成分の再構成サンプル、及び量子化ステップサイズに基づき、フィルタ処理のスケーリングされた出力値を決定する。
【0224】
<X.コンピュータシステム>
【0225】
上述の技術は、コンピュータ可読命令を用いてコンピュータソフトウェアとして実装でき、1つ以上のコンピュータ可読媒体に物理的に格納でる。例えば、
図21は、本開示の主題の特定の実施形態を実装するのに適するコンピュータシステム(2100)を示す。
【0226】
コンピュータソフトウェアは、アセンブリ、コンパイル、リンク等のメカニズムにより処理されて、1つ以上のコンピュータ中央処理ユニット(CPU)、グラフィック処理ユニット(GPU)、等により直接又はインタープリット、マイクロコード実行、等を通じて実行可能な命令を含むコードを生成し得る、任意の適切な機械コード又はコンピュータ言語を用いてコーディングできる。
【0227】
命令は、例えばパーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲーム装置、モノのインターネット装置、等を含む種々のコンピュータ又はそのコンポーネントで実行できる。
【0228】
コンピュータシステム(2100)の
図21に示すコンポーネントは、本来例示であり、本開示の実施形態を実装するコンピュータソフトウェアの使用又は機能の範囲に対するようないかなる限定も示唆しない。更に、コンポーネントの構成も、コンピュータシステム(2100)の例示的な実施形態に示されたコンポーネントのうちのいずれか又は組み合わせに関連する任意の依存性又は要件を有すると解釈されるべきではない。
【0229】
コンピュータシステム(2100)は、特定のヒューマンインタフェース入力装置を含んでよい。このようなヒューマンインタフェース入力装置は、例えば感覚入力(例えば、キーストローク、スワイプ、データグラブ動作)、音声入力(例えば、音声、クラッピング)、視覚的入力(例えば、ジェスチャ)、嗅覚入力(示されない)を通じた1人以上の人間のユーザによる入力に応答してよい。ヒューマンインタフェース装置は、必ずしも人間による意識的入力に直接関連する必要のない特定の媒体、例えば音声(例えば、会話、音楽、環境音)、画像(例えば、スキャンされた画像、デジタルカメラから取得された写真画像)、ビデオ(例えば、2次元ビデオ、3次元ビデオ、立体ビデオを含む)をキャプチャするためにも使用できる。
【0230】
入力ヒューマンインタフェース装置は、キーボード(2101)、マウス(2102)、トラックパッド(2103)、タッチスクリーン(2110)、データグラブ(図示しない)、ジョイスティック(2105)、マイクロフォン(2106)、スキャナ(2107)、及びカメラ(2108)、のうちの1つ以上を含んでよい(そのうちの1つのみが示される)。
【0231】
コンピュータシステム(2100)は、特定のヒューマンインタフェース出力装置も含んでよい。このようなヒューマンインタフェース出力装置は、例えば感覚出力、音声、光、及び匂い/味を通じて1人以上の人間のユーザの感覚を刺激してよい。このようなヒューマンインタフェース出力装置は、感覚出力装置を含んでよい(例えば、タッチスクリーン(2110)、データグラブ(図示しない)、又はジョイスティック(2105(による感覚フィードバック、しかし入力装置として機能しない感覚フィードバック装置も存在し得る)、音声出力装置(例えば、スピーカ(2109)、ヘッドフォン(図示しない)、視覚的出力装置(例えば、スクリーン(2110)、CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含み、各々タッチスクリーン入力能力を有し又は有さず、各々感覚フィードバック能力を有し又は有さず、これらのうちの幾つかは例えば立体出力、仮想現実眼鏡(図示しない)、ホログラフィックディスプレイ、及び発煙剤タンク(図示しない)、及びプリンタ(図示しない)のような手段を通じて2次元視覚出力又は3次元以上の出力を出力可能であってよい))。これらの視覚出力装置(例えば、スクリーン(2110))は、グラフィックアダプタ(2150)を通じてシステムバス(2148)に接続できる。
【0232】
コンピュータシステム(2100)は、人間のアクセス可能な記憶装置、及び、例えばCD/DVD等の媒体(2121)を備えるCD/DVDROM/RW(2120)のような光学媒体、サムドライブ(2122)、取り外し可能ハードドライブ又は個体状態ドライブ(2123)、テープ及びフロッピディスク(図示しない)のようなレガシー磁気媒体、セキュリティドングル(図示しない)等のような専用ROM/ASIC/PLDに基づく装置のような関連する媒体も含み得る。
【0233】
当業者は、本開示の主題と関連して使用される用語「コンピュータ可読媒体」が伝送媒体、搬送波、又は他の一時的信号を包含しないことも理解すべきである。
【0234】
コンピュータシステム(2100)は、1つ以上の通信ネットワーク(2155)へのネットワークインタフェース(2154)も含み得る。1つ以上の通信ネットワーク(2155)は、例えば無線、有線、光であり得る。1つ以上の通信ネットワーク(2155)は、更に、ローカル、広域、都市域、車両及び産業、リアルタイム、耐遅延性、等であり得る。1つ以上の通信ネットワークの例は、イーサネットのようなローカルエリアネットワーク、無線LAN、GSM、3G、4G、5G、LTE等を含むセルラネットワーク、ケーブルTV、衛星TV、地上波放送TVを含むTV有線又は無線広域デジタルネットワーク、CANBusを含む車両及び産業、等を含む。特定のネットワークは、一般に、特定の汎用データポート又は周辺機器バス(2149)(例えば、コンピュータシステム(2100)のUSBポート)に取り付けられる外部ネットワークインタフェースを必要とする。他のものは、一般に、後述するようなシステムバスへの取り付けによりコンピュータシステム(2100)のコアに統合される(例えば、イーサネットインタフェースをPCコンピュータシステムへ、又はセルラネットワークインタフェースをスマートフォンコンピュータシステムへ)。これらのネットワークを用いて、コンピュータシステム(2100)は、他のエンティティと通信できる。このような通信は、単方向受信のみ(例えば、放送TV)、単方向送信のみ(例えば、特定のCANbus装置へのCANbus)、又は例えばローカル又は広域デジタルネットワークを用いて他のコンピュータシステムへの双方向であり得る。特定のプロトコル及びプロトコルスタックが、上述のネットワーク及びネットワークインタフェースの各々で使用され得る。
【0235】
前述のヒューマンインタフェース装置、人間のアクセス可能な記憶装置、及びネットワークインタフェースは、コンピュータシステム(2100)のコア(2140)に取り付け可能である。
【0236】
コア(2140)は、1つ以上の中央処理ユニット(CPU)(2141)、グラフィック処理ユニット(GPU)(2142)、FPGAの形式の専用プログラマブル処理ユニット(2143)、特定タスクのためのハードウェアアクセラレータ(2144)、グラフィックアダプタ(2150)、等を含み得る。これらの装置は、読み出し専用メモリ(ROM)(2145)、ランダムアクセスメモリ(2146)、内部のユーザアクセス不可能なハードドライブ、SSD、等のような内蔵大容量記憶装置(1547)と共に、システムバス(2148)を通じて接続されてよい。幾つかのコンピュータシステムでは、追加CPU、GPU等による拡張を可能にするために、システムバス(2148)は、1つ以上の物理プラグの形式でアクセス可能である。周辺機器は、コアのシステムバス(2148)に直接に、又は周辺機器バス(2149)を通じて、取り付け可能である。例では、スクリーン(2110)は、グラフィックアダプタ(2150)に接続できる。周辺機器バスのアーキテクチャは、PCI、USB等を含む。
【0237】
CPU(2141)、GPU(2142)、FPGA(2143)、及びアクセラレータ(2144)は、結合されて前述のコンピュータコードを生成可能な特定の命令を実行できる。該コンピュータコードは、ROM(2145)又はRAM(2146)に格納できる。一時的データもRAM(2146)に格納でき、一方で、永久的データは例えば内蔵大容量記憶装置(2147)に格納できる。メモリ装置のうちのいずれかへの高速記憶及び読み出しは、CPU(2141)、GPU(2142)、大容量記憶装置(2147)、ROM(2145)、RAM(2146)等のうちの1つ以上に密接に関連付けられ得るキャッシュメモリの使用を通じて可能にできる。
【0238】
コンピュータ可読媒体は、種々のコンピュータにより実施される動作を実行するためのコンピュータコードを有し得る。媒体及びコンピュータコードは、本開示の目的のために特別に設計され構成されたものであり得、又は、コンピュータソフトウェア分野の当業者によく知られ利用可能な種類のものであり得る。
【0239】
例として及び限定ではなく、アーキテクチャを有するコンピュータシステム(2100)、及び具体的にはコア(2140)は、プロセッサ(CPU,GPU,FPGA、アクセラレータ、等を含む)が1つ以上の有形コンピュータ可読媒体内に具現化されたソフトウェアを実行した結果として、機能を提供できる。このようなコンピュータ可読媒体は、コア内蔵大容量記憶装置(2147)又はROM(2145)のような非一時的特性のコア(2140)の特定の記憶装置、及び上述のようなユーザアクセス可能な大容量記憶装置と関連付けられた媒体であり得る。本開示の種々の実施形態を実装するソフトウェアは、このような装置に格納されコア(2140)により実行できる。コンピュータ可読媒体は、特定の必要に従い、1つ以上のメモリ装置又はチップを含み得る。ソフトウェアは、コア(2140)及び具体的にはその中のプロセッサ(CPU、GPU、FPGA等を含む)に、ソフトウェアにより定義された処理に従うRAM(2146)に格納されたデータ構造の定義及び該データ構造の変更を含む、ここに記載した特定の処理又は特定の処理の特定の部分を実行させることができる。追加又は代替として、コンピュータシステムは、ここに記載の特定の処理又は特定の処理の特定の部分を実行するためにソフトウェアと一緒に又はそれに代わって動作可能な論理ハードワイヤド又は他の回路内の実装(例えば、アクセラレータ(2144))の結果として機能を提供できる。ソフトウェアへの言及は、ロジックを含み、適切な場合にはその逆も同様である。コンピュータ可読媒体への言及は、適切な場合には、実行のためにソフトウェアを格納する(集積回路(IC)のような)回路、実行のためにロジックを実装する回路、又はそれらの両方を含み得る。本開示は、ハードウェア及びソフトウェアの任意の適切な組み合わせを含む。
【0240】
本開示は、幾つかの例示的な実施形態を記載したが、代替、置換、及び種々の代用の均等物が存在し、それらは本開示の範囲に包含される。当業者に明らかなことに、ここに明示的に示され又は説明されないが、本開示の原理を実施し、従って、本開示の精神及び範囲に含まれる多数のシステム及び方法を考案可能である。
【0241】
付録A:略語
ALF: Adaptive Loop Filter
AMVP: Advanced Motion Vector Prediction
APS: Adaptation Parameter Set
ASIC: Application-Specific Integrated Circuit
ATMVP: Alternative/Advanced Temporal Motion Vector Prediction
AV1: AOMedia Video 1
AV2: AOMedia Video 2
BMS: Benchmark Set
BV: Block Vector
CANBus: Controller Area Network Bus
CB: Coding Block
CC-ALF: Cross-Component Adaptive Loop Filter
CD: Compact Disc
CDEF: Constrained Directional Enhancement Filter
CPR: Current Picture Referencing
CPU: Central Processing Unit
CRT: Cathode Ray Tube
CTB: Coding Tree Block
CTU: Coding Tree Unit
CU: Coding Unit
DPB: Decoder Picture Buffer
DPCM: Differential Pulse-Code Modulation
DPS: Decoding Parameter Set
DVD: Digital Video Disc
FPGA: Field Programmable Gate Area
JCCR: Joint CbCr Residual Coding
JVET: Joint Video Exploration Team
GOP: Groups of Pictures
GPU: Graphics Processing Unit
GSM: Global System for Mobile communications
HDR: High Dynamic Range
HEVC: High Efficiency Video Coding
HRD: Hypothetical Reference Decoder
IBC: Intra Block Copy
IC: Integrated Circuit
ISP: Intra Sub-Partitions
JEM: Joint Exploration Model
LAN: Local Area Network
LCD: Liquid-Crystal Display
LR: Loop Restoration Filter
LRU: Loop Restoration Unit
LTE: Long-Term Evolution
MPM: Most Probable Mode
MV: Motion Vector
OLED: Organic Light-Emitting Diode
PBs: Prediction Blocks
PCI: Peripheral Component Interconnect
PDPC: Position Dependent Prediction Combination
PLD: Programmable Logic Device
PPS: Picture Parameter Set
PU: Prediction Unit
RAM: Random Access Memory
ROM: Read-Only Memory
SAO: Sample Adaptive Offset
SCC: Screen Content Coding
SDR: Standard Dynamic Range
SEI: Supplementary Enhancement Information
SNR: Signal Noise Ratio
SPS: Sequence Parameter Set
SSD: Solid-state Drive
TU: Transform Unit
USB: Universal Serial Bus
VPS: Video Parameter Set
VUI: Video Usability Information
VVC: Versatile Video Coding
WAIP: Wide-Angle Intra Prediction
【外国語明細書】