IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ テンセント・アメリカ・エルエルシーの特許一覧

特許7514325ビデオコーディングのための方法、装置、非一時的コンピュータ可読記憶媒体およびコンピュータプログラム
<>
  • 特許-ビデオコーディングのための方法、装置、非一時的コンピュータ可読記憶媒体およびコンピュータプログラム 図1A
  • 特許-ビデオコーディングのための方法、装置、非一時的コンピュータ可読記憶媒体およびコンピュータプログラム 図1B
  • 特許-ビデオコーディングのための方法、装置、非一時的コンピュータ可読記憶媒体およびコンピュータプログラム 図1C
  • 特許-ビデオコーディングのための方法、装置、非一時的コンピュータ可読記憶媒体およびコンピュータプログラム 図2
  • 特許-ビデオコーディングのための方法、装置、非一時的コンピュータ可読記憶媒体およびコンピュータプログラム 図3
  • 特許-ビデオコーディングのための方法、装置、非一時的コンピュータ可読記憶媒体およびコンピュータプログラム 図4
  • 特許-ビデオコーディングのための方法、装置、非一時的コンピュータ可読記憶媒体およびコンピュータプログラム 図5
  • 特許-ビデオコーディングのための方法、装置、非一時的コンピュータ可読記憶媒体およびコンピュータプログラム 図6
  • 特許-ビデオコーディングのための方法、装置、非一時的コンピュータ可読記憶媒体およびコンピュータプログラム 図7
  • 特許-ビデオコーディングのための方法、装置、非一時的コンピュータ可読記憶媒体およびコンピュータプログラム 図8
  • 特許-ビデオコーディングのための方法、装置、非一時的コンピュータ可読記憶媒体およびコンピュータプログラム 図9
  • 特許-ビデオコーディングのための方法、装置、非一時的コンピュータ可読記憶媒体およびコンピュータプログラム 図10
  • 特許-ビデオコーディングのための方法、装置、非一時的コンピュータ可読記憶媒体およびコンピュータプログラム 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-02
(45)【発行日】2024-07-10
(54)【発明の名称】ビデオコーディングのための方法、装置、非一時的コンピュータ可読記憶媒体およびコンピュータプログラム
(51)【国際特許分類】
   H04N 19/124 20140101AFI20240703BHJP
   H04N 19/154 20140101ALI20240703BHJP
   H04N 19/186 20140101ALI20240703BHJP
   H04N 19/70 20140101ALI20240703BHJP
【FI】
H04N19/124
H04N19/154
H04N19/186
H04N19/70
【請求項の数】 11
(21)【出願番号】P 2022568636
(86)(22)【出願日】2021-10-08
(65)【公表番号】
(43)【公表日】2023-07-26
(86)【国際出願番号】 US2021054220
(87)【国際公開番号】W WO2022250723
(87)【国際公開日】2022-12-01
【審査請求日】2022-11-10
(31)【優先権主張番号】63/193,003
(32)【優先日】2021-05-25
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/495,535
(32)【優先日】2021-10-06
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】リー,グイチュン
(72)【発明者】
【氏名】リー,シャン
(72)【発明者】
【氏名】リウ,シャン
【審査官】田中 純一
(56)【参考文献】
【文献】特開2015-053680(JP,A)
【文献】特開2011-259362(JP,A)
【文献】米国特許出願公開第2015/0071344(US,A1)
【文献】米国特許出願公開第2013/0077676(US,A1)
【文献】特開2010-183402(JP,A)
【文献】米国特許出願公開第2010/0202513(US,A1)
【文献】特開2020-028022(JP,A)
【文献】特表2015-523029(JP,A)
【文献】米国特許出願公開第2014/0003497(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 7/12
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
エンコーダにおけるビデオエンコーディングのための方法であって、前記方法は:
コーディング領域のクロマ成分の量子化パラメータのオフセットを(i)前記コーディング領域のルマ成分のピクセル値範囲と前記クロマ成分のピクセル値範囲との間の範囲比、(ii)前記ルマ成分の複雑度レベルと前記クロマ成分の複雑度レベルとの間の複雑度比、または(iii)前記ルマ成分のノイズレベルと前記クロマ成分のノイズレベルとの間のノイズ比のうちの1つに基づいて、決定するステップ;
前記量子化パラメータおよび決定された前記オフセットに基づいて、前記コーディング領域の変換係数に対して量子化処理を実行するステップ;および
量子化された前記変換係数を含むビデオビットストリームを生成するステップ;を含む、
方法。
【請求項2】
前記生成するステップは:
前記量子化パラメータの前記オフセットを含む前記ビデオビットストリームを生成するステップを含む、
請求項1に記載の方法。
【請求項3】
前記決定するステップは:
前記コーディング領域の前記ルマ成分の前記ピクセル値範囲を決定するステップ;
前記ルマ成分の前記ピクセル値範囲と前記クロマ成分の前記ピクセル値範囲との間の前記範囲比を決定するステップ;および
前記範囲比と範囲しきい値との間の比較に基づいて、前記量子化パラメータの前記オフセットを決定するステップ;を含む、
請求項1に記載の方法。
【請求項4】
前記ルマ成分および前記クロマ成分のそれぞれについて、前記のそれぞれの成分の前記ピクセル値範囲は、前記のそれぞれの成分のピクセルの最大ピクセル値と最小ピクセル値との間の差である、
請求項3に記載の方法。
【請求項5】
前記決定するステップは:
前記コーディング領域の前記ルマ成分の前記複雑度レベルを決定するステップ;
前記ルマ成分の前記複雑度レベルと前記クロマ成分の前記複雑度レベルとの間の前記複雑度比を決定するステップ;および
前記複雑度比と複雑度しきい値との間の比較に基づいて前記量子化パラメータの前記オフセットを決定するステップ;を含む、
請求項1に記載の方法。
【請求項6】
前記ルマ成分および前記クロマ成分のそれぞれについて、前記のそれぞれの成分の前記複雑度レベルは、(i)前記のそれぞれの成分のピクセル値の分散、(ii)前記のそれぞれの成分の残差の絶対差の和、または(iii)前記のそれぞれの成分の前記残差の絶対変換差の和のうちの1つに基づいている、
請求項5に記載の方法。
【請求項7】
前記決定するステップは:
前記コーディング領域の前記ルマ成分の前記ノイズレベルを決定するステップ;
前記ルマ成分の前記ノイズレベルと前記クロマ成分の前記ノイズレベルとの間の前記ノイズ比を決定するステップ;および
前記ノイズ比とノイズ比しきい値との間の比較に基づいて前記量子化パラメータの前記オフセットを決定するステップ;を含む、
請求項1に記載の方法。
【請求項8】
前記ルマ成分および前記クロマ成分のそれぞれについて、前記のそれぞれの成分の前記ノイズレベルは、前記のそれぞれの成分のピクセルに適用されるエッジ検出と、前記エッジ検出の結果に適用されるラプラシアン畳み込みに基づいている、
請求項に記載の方法。
【請求項9】
請求項1乃至のいずれか1項に記載の方法を実行するように構成された処理回路を有する、装置。
【請求項10】
命令を格納する、非一時的コンピュータ可読記憶媒体であって、前記命令は、少なくとも1つのプロセッサで実行されるとき、前記少なくとも1つのプロセッサに、請求項1乃至のいずれか1項に記載の方法を実行させる、
非一時的コンピュータ可読記憶媒体。
【請求項11】
プロセッサによって実行されるとき、前記プロセッサに請求項1乃至のいずれか1項に記載の方法を実行させる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願の相互参照]
本出願は、2021年5月25日に出願された米国仮出願第63/193,003号、"Adaptive Chroma QP Offset"に対する優先権の利益を主張する、2021年10月6日に出願された米国特許出願第17/495,535号、"METHOD AND APPARATUS FOR VIDEO CODING"に対する優先権の利益を主張する。先行出願の開示は、その全体が参照により本出願に組み込まれる。
【0002】
本開示は、概してビデオコーディングに関連する実施形態を説明する。
【背景技術】
【0003】
本明細書で提供される背景技術の説明は、本開示のコンテンツを概して示すことを目的としている。現在名前を挙げられている発明者の業績は、本背景技術に記載された範囲において、また、出願時に従来技術として認められない可能性のある記載の態様は、明示的にも黙示的にも本開示に対する従来技術として認められない。
【0004】
ビデオコーディング(Video coding)およびデコーディング(decoding)は、動き補償を伴うインターピクチャ(inter-picture)予測を使用して実行されることができる。非圧縮デジタルビデオは一連のピクチャを含むことができ、各ピクチャは、例えば、1920×1080ルミナンス(luminance)サンプルと関連するクロミナンス(chrominance)サンプルの空間寸法(spatial dimension)を有している。一連のピクチャは、例えば毎秒60ピクチャまたは60Hzの、固定または可変ピクチャレート(非公式には「フレームレート」とも呼ばれる)を有することができる。非圧縮ビデオは、顕著なビットレート要件を有する。例えば、サンプルあたり8ビットでの1080p60 4:2:0ビデオ(60Hzフレームレートでの1920×1080ルミナンスサンプル解像度)は、1.5Gbit/sに近い帯域幅を必要とする。1時間のこのようなビデオは、600GBytesを超えるストレージ空間を必要とする。
【0005】
ビデオコーディングおよびデコーディングの1つの目的は、圧縮を通じた入力ビデオ信号の冗長性の削減であることができる。圧縮は、前述の帯域幅またはストレージ空間の要件を、場合によっては2桁以上削減するのに役立つことができる。ロスレス(lossless)圧縮とロッシー(lossy)圧縮の両方、およびそれらの組み合わせを使用することができる。ロスレス圧縮は、圧縮された元の信号から元の信号の正確なコピーを再構成できる技法を指す。ロッシー圧縮を使用する場合、再構成された信号は元の信号と同一ではない可能性があるが、元の信号と再構成された信号との間の歪みは、再構成された信号が意図されたアプリケーションに役立つように十分小さい。ビデオの場合、ロッシー圧縮が広く採用されている。許容される歪みの量はアプリケーションに依存する。例えば、特定のコンシューマストリーミングアプリケーションのユーザは、テレビ配信アプリケーションのユーザよりも高い歪みを許容する場合がある。達成可能な圧縮率(compression ratio)は:受け入れ可能/許容可能な歪みが大きいほど、圧縮率が高くなることができることを反映することができる。
【0006】
ビデオエンコーダおよびデコーダは、例えば、動き補償(motion compensation)、変換、量子化、およびエントロピーコーディングを含むいくつかの幅広いカテゴリからの技法を利用することができる。
【0007】
ビデオコーデック技術は、イントラコーディング(intra coding)として知られる技法を含むことができる。イントラコーディングでは、サンプル値は、以前に再構成された参照(reference)ピクチャからのサンプルまたは他のデータを参照せずに表される。いくつかのビデオコーデックでは、ピクチャは空間的にサンプルのブロックに細分される(subdivided)。サンプルのすべてのブロックがイントラモードでコーディングされる(coded)とき、そのピクチャはイントラピクチャであることができる。イントラピクチャと、独立したデコーダリフレッシュピクチャなどのその派生物とは、デコーダの状態をリセットするために使用することができ、したがって、コーディングされたビデオビットストリームとビデオセッションの最初のピクチャとして、または静止画像として使用されることができる。イントラブロックのサンプルは変換にさらされることができ、変換係数はエントロピーコーディングの前に量子化されることができる。イントラ予測は、変換前領域(pre-transform domain)でサンプル値を最小化する技法であることができる。場合によっては、変換後のDC値が小さく、AC係数が小さいほど、エントロピーコーディング後のブロックを表すために所与の量子化ステップサイズで必要なビットが少なくなる。
【0008】
例えばMPEG-2世代コーディング技術から知られているような従来のイントラコーディングは、イントラ予測を使用しない。しかし、いくつかのより新しいビデオ圧縮技術は、例えば、空間的に隣接し、デコーディング順において先行するデータのブロックのエンコーディングおよび/またはデコーディング中に得られた周囲のサンプルデータおよび/またはメタデータから、試みる技法を含む。そのような技法は、以降、「イントラ予測」技法と呼ばれる。少なくともいくつかのケースでは、イントラ予測は、再構成中の現在のピクチャからの参照データのみを使用し、参照ピクチャからのものを使用しないことに留意されたい。
【0009】
イントラ予測は多くのさまざまな形態であることができる。そのような技法の1つ超が所与のビデオコーディング技術において使用することができる場合、使用中の技法はイントラ予測モードでコーディングされることができる。場合によっては、モードはサブモードおよび/またはパラメータを有することができ、それらは個別にコーディングされることができるまたはモードコードワードに含まれることができる。どのコードワードが所与のモード、サブモード、および/またはパラメータの組み合わせに使用されるかは、イントラ予測によるコーディング効率ゲインに影響を与える可能性があるので、コードワードをビットストリームに変換するために使用されるエントロピーコーディング技術も影響を与える可能性がある。
【0010】
イントラ予測の特定のモードはH.264で導入され、H.265で洗練され、共同探索モデル(JEM)、多用途ビデオコーディング(VVC)、およびベンチマークセット(BMS)などのより新しいコーディング技術でさらに洗練された。予測子ブロック(predictor block)が、すでに利用可能なサンプルに属する隣接サンプル値を使用して形成されることができる。隣接サンプルのサンプル値は、方向に従って予測子ブロックにコピーされる。使用中の方向への参照は、ビットストリームでコーディングされることができるまたはそれ自体を予測され得る。
【0011】
図1Aを参照すると、右下に示されたのは、H.265の33の可能な予測方向(35のイントラ予測モードのうちの33の角度モードに対応)から知られる9の予測方向のサブセットである。矢印が収束する点(101)は、予測されているサンプルを表す。矢印は、サンプルが予測されている方向を表す。例えば、矢印(102)は、サンプル(101)が、水平から45度の角度で、右上の1つまたは複数のサンプルから予測されることを示す。同様に、矢印(103)は、サンプル(101)が、水平から22.5度の角度で、サンプル(101)の左下の1つまたは複数のサンプルから予測されることを示す。
【0012】
引き続き図1Aを参照すると、左上には、4×4サンプルの正方形ブロック(104)(太い破線で示される)が示されている。正方形ブロック(104)は、それぞれが、「S」、Y次元におけるその位置(例えば、行インデックス)、およびX次元におけるその位置(例えば、列インデックス)でラベル付けされた16サンプルを含む。例えば、サンプルS21は、Y次元(上から)における2番目のサンプルかつX次元(左から)における1番目のサンプルである。同様に、サンプルS44は、YおよびX次元の両方においてブロック(104)における4番目のサンプルである。ブロックはサイズが4×4サンプルなので、S44は、右下にある。さらに、同様な番号付け体系に従う参照サンプルが示されている。参照サンプルは、R、ブロック(104)に対するそのY位置(例えば、行インデックス)およびX位置(列インデックス)でラベル付けされる。H.264とH.265の両方において、予測サンプルは再構成中のブロックに隣接している。したがって、負の値を使用する必要がない。
【0013】
イントラピクチャ予測は、シグナリングされた予測方向によって適切に隣接するサンプルから参照サンプル値をコピーすることによって機能することができる。例えば、コードディングされたビデオビットストリームが、このブロックについて矢印(102)と一致する予測方向-すなわち、サンプルが、水平から45度の角度で右上の1つまたは複数の予測サンプルから予測されるーことを示すシグナリングを含むと仮定する。この場合、サンプル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は、XおよびYの2次元、または3次元を有することができ、第3の次元は、使用中の参照ピクチャの表示である(後者は、間接的に、時間次元であることができる)。
【0019】
いくつかのビデオ圧縮技術では、サンプルデータのある領域に適用可能なMVは、他のMVから、例えば、再構成中の領域に空間的に隣接し、デコーディング順にそのMVに先行するサンプルデータの別の領域に関連するものから予測することができる。これにより、MVのコーディングに必要なデータ量を大幅に削減することができ、それによって冗長性を除去し、圧縮を増加させる。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予測メカニズムのうち、本明細書に記載されるものは、以下「空間マージ」と呼ばれる技法である。
【0021】
図1Cを参照すると、現在のブロック(111)は、空間的にシフトされた同じサイズの以前のブロックから予測可能であることが、動き探索処理中にエンコーダによって見出されたサンプルを含むことができる。MVを直接コーディングする代わりに、MVは、A0、A1、およびB0、B1、B2(それぞれ112から116)で示される5つの周囲のサンプルのいずれかに関連付けられたMVを使用して、1つ以上の参照ピクチャに関連付けられたメタデータから、例えば、最新の(デコーディング順において)参照ピクチャから導出することができる。H.265では、MV予測は、隣接するブロックが使用しているのと同じ参照ピクチャからの予測子を使用することができる。
【発明の概要】
【0022】
本開示の態様は、ビデオエンコーディング/デコーディングのための装置を提供する。装置は、(i)クロマ成分(chroma component)のピクセル値範囲、(ii)クロマ成分の複雑度(complexity)レベル、または(iii)クロマ成分のノイズレベルのうちの1つに基づいて、コーディング領域のクロマ成分の量子化パラメータのオフセットを決定する処理回路を含む。処理回路は、量子化パラメータおよび決定されたオフセットに基づいて、コーディング領域の変換係数に対して量子化処理を実行する。処理回路は、量子化された変換係数を含むビデオビットストリームを生成する。
【0023】
一実施形態では、処理回路は量子化パラメータのオフセットを含むビデオビットストリームを生成する。
【0024】
一実施形態では、処理回路は、コーディング領域のルマ成分(luma component)のピクセル値範囲を決定する。処理回路は、ルマ成分のピクセル値範囲とクロマ成分のピクセル値範囲の範囲比(range ratio)を決定する。処理回路は、範囲比と範囲しきい値との間の比較に基づいて量子化パラメータのオフセットを決定する。
【0025】
一実施形態では、ルマ成分およびクロマ成分のそれぞれについて、それぞれの成分のピクセル値範囲は、それぞれの成分のピクセルの最大ピクセル値と最小ピクセル値との間の差である。
【0026】
一実施形態では、処理回路は、コーディング領域のルマ成分の複雑度レベルを決定する。処理回路は、ルマ成分の複雑度レベルとクロマ成分の複雑度レベルとの間の複雑度比(complexity ratio)を決定する。処理回路は、複雑度比と複雑度しきい値との間の比較に基づいて量子化パラメータのオフセットを決定する。
【0027】
一実施形態では、ルマ成分とクロマ成分のそれぞれについて、それぞれの成分の複雑度レベルは、(i)それぞれの成分のピクセルのピクセル値の分散、(ii)それぞれの成分の残差(residuals)の絶対差の和、または(iii)それぞれの成分の残差の絶対変換差(absolute transformed differences)の和のうちの1つに基づいている。
【0028】
一実施形態では、処理回路は、クロマ成分のノイズレベルとノイズしきい値との間の比較に基づいて量子化パラメータのオフセットを決定する。
【0029】
一実施形態では、処理回路は、コーディング領域のルマ成分のノイズレベルを決定する。処理回路は、ルマ成分のノイズレベルとクロマ成分のノイズレベルとの間のノイズ比を決定する。処理回路は、ノイズ比とノイズ比しきい値との間の比較に基づいて量子化パラメータのオフセットを決定する。
【0030】
一実施形態では、ルマ成分およびクロマ成分のそれぞれについて、それぞれの成分のノイズレベルは、それぞれの成分のピクセルに適用されるエッジ検出と、エッジ検出の結果に適用されるラプラシアン畳み込みに基づいている。
【0031】
本開示の態様は、ビデオのエンコーディング/デコーディングのための方法を提供する。方法は、ビデオのエンコーディング/デコーディングのために装置によって実行される処理のいずれか1つまたはそれらの組み合わせを実行することができる。方法では、量子化パラメータのオフセットが、(i)クロマ成分のピクセル値範囲、(ii)クロマ成分の複雑度レベル、または(iii)クロマ成分のノイズレベルのうちの1つに基づいて、コーディング領域のクロマ成分に対して決定される。量子化パラメータおよび決定されたオフセットに基づいて、コーディング領域の変換係数に対して量子化処理が実行される。ビデオビットストリームが量子化された変換係数を含むように生成される。
【0032】
開示の態様はまた、少なくとも1つのプロセッサによって実行されると、少なくとも1つのプロセッサにビデオのエンコーディング/デコーディングのための方法のいずれか1つまたはそれらの組み合わせを実行させる命令を格納する非一時的コンピュータ可読媒体を提供する。
【図面の簡単な説明】
【0033】
開示された主題のさらなる特徴、性質、および様々な利点は、以下の詳細な説明および添付の図面からより明らかになる。
【0034】
図1A】イントラ予測モードの例示的なサブセットの概略図である。
【0035】
図1B】例示的なイントラ予測方向の図である。
【0036】
図1C】1つの例における現在のブロックとその周囲の空間マージ候補の概略図である。
【0037】
図2】一実施形態による通信システムの簡略化されたブロック図の概略図である。
【0038】
図3】一実施形態による通信システムの簡略化されたブロック図の概略図である。
【0039】
図4】一実施形態によるデコーダの簡略化されたブロック図の概略図である。
【0040】
図5】一実施形態によるエンコーダの簡略化されたブロック図の概略図である。
【0041】
図6】別の実施形態によるエンコーダのブロック図を示す。
【0042】
図7】別の実施形態によるデコーダのブロック図を示す。
【0043】
図8】本開示の一実施形態による例示的なノイズ検出プロセスを示す。
【0044】
図9】本開示の一実施形態による8ビットコーディング領域の色成分の例示的なヒストグラムを示す。
【0045】
図10】一実施形態による例示的なフローチャートを示す。
【0046】
図11】一実施形態によるコンピュータシステムの概略図である。
【発明を実施するための形態】
【0047】
I.ビデオデコーダおよびエンコーダシステム
【0048】
図2は、本開示の一実施形態による通信システム(200)の簡略化されたブロック図を示す。通信システム(200)は、例えばネットワーク(250)を介して、互いに通信することができる複数の端末装置を含む。例えば、通信システム(200)は、ネットワーク(250)を介して相互接続された第1の端末装置(210)および(220)のペアを含む。図2の例では、第1の端末装置(210)および(220)のペアは、データの一方向伝送を行う。例えば、端末装置(210)は、ネットワーク(250)を介して他の端末装置(220)に伝送するために、ビデオデータ(例えば、端末装置(210)によってキャプチャされるビデオピクチャのストリーム)をコーディングし得る。エンコーディングされたビデオデータは、1つ以上のコーディングされたビデオビットストリームの形態で伝送することができる。端末装置(220)は、ネットワーク(250)からコーディングされたビデオデータを受信し、コーディングされたビデオデータをデコーディングして、ビデオピクチャを復元し、復元されたビデオデータに従ってビデオピクチャを表示し得る。一方向データ伝送は、メディア提供アプリケーション等において一般的であり得る。
【0049】
別の例では、通信システム(200)は、例えばビデオ会議中に発生し得るコーディングされたビデオデータの双方向伝送を行う第2の端末装置(230)および(240)のペアを含む。データの双方向伝送のために、一例では、端末装置(230)および(240)の各端末装置が、ネットワーク(250)を介して端末装置(230)および(240)の他方の端末装置に伝送するために、ビデオデータ(例えば、端末装置によってキャプチャされるビデオピクチャのストリーム)をコーディングし得る。端末装置(230)および(240)の各端末装置はまた、端末装置(230)および(240)の他方の端末装置によって伝送されたコーディングされたビデオデータを受信し、コーディングされたビデオデータをデコーディングして、ビデオピクチャを復元し、復元されたビデオデータに従って、アクセス可能なディスプレイ装置でビデオピクチャを表示し得る。
【0050】
図2の例では、端末装置(210)、(220)、(230)および(240)は、サーバ、パーソナルコンピュータおよびスマートフォンとして示され得るが、本開示の原理は、そのように限定されない。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤおよび/または専用のビデオ会議装置への適用を見出す。ネットワーク(250)は、例えば有線および/または無線通信ネットワークを含む、端末装置(210)、(220)、(230)および(240)の間でコーディングされたビデオデータを伝達する任意の数のネットワークを表す。通信ネットワーク(250)は、回線交換および/またはパケット交換チャネル内でデータを交換し得る。代表的なネットワークは、電気通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワークおよび/またはインターネットを含む。本説明の目的のために、ネットワーク(250)のアーキテクチャおよびトポロジーは、以下に説明しない限り、本開示の動作には重要ではない。
【0051】
図3は、開示された主題のアプリケーションの一例として、ストリーミング環境におけるビデオエンコーダおよびビデオデコーダの配置を示す。開示された主題は、例えば、ビデオ会議、デジタルTV、CD、DVD、メモリスティックなどを含むデジタルメディアへの圧縮ビデオの格納などを含む、他のビデオ対応アプリケーションにも同様に適用可能であることができる。
【0052】
ストリーミングシステムは、例えば、非圧縮のビデオピクチャのストリーム(302)を生成するビデオソース(301)、例えばデジタルカメラを含むことができる、キャプチャサブシステム(313)を含み得る。一例では、ビデオピクチャのストリーム(302)は、デジタルカメラによって撮影されるサンプルを含む。エンコーディングされたビデオデータ(304)(またはコーディングされたビデオビットストリーム)と比較するときに高いデータボリュームを強調する太い線として描かれたビデオピクチャのストリーム(302)は、ビデオソース(301)に結合されたビデオエンコーダ(303)を含む電子デバイス(320)によって処理することができる。ビデオエンコーダ(303)は、以下により詳細に説明されるように、開示された主題の態様を可能にするまたは実装するために、ハードウェア、ソフトウェア、またはそれらの組み合わせを含むことができる。ビデオピクチャのストリーム(302)と比較するときにより低いデータボリュームを強調するために細い線として示されたエンコーディングされたビデオデータ(304)(またはエンコーディングされたビデオビットストリーム(304))は、将来の使用のためにストリーミングサーバ(305)に格納することができる。図3のクライアントサブシステム(306)および(308)のような1つ以上のストリーミングクライアントサブシステムは、ストリーミングサーバ(305)にアクセスして、エンコーディングされたビデオデータ(304)のコピー(307)および(309)を取り出すことができる。クライアントサブシステム(306)は、例えば電子デバイス(330)内にビデオデコーダ(310)を含むことができる。ビデオデコーダ(310)は、エンコーディングされたビデオデータの入力コピー(307)をデコーディングし、ディスプレイ(312)(例えばディスプレイスクリーン)または他のレンダリングデバイス(図示せず)上にレンダリングすることができるビデオピクチャ(311)の出力ストリームを生成する。いくつかのストリーミングシステムでは、エンコーディングされたビデオデータ(304)、(307)、および(309)(例えば、ビデオビットストリーム)は、特定のビデオコーディング/圧縮規格に従ってエンコーディングすることができる。これらの規格の例は、ITU-T勧告H.265を含む。一例では、開発中のビデオコーディング規格は、Versatile Video Coding(多用途ビデオコーディング)(VVC)として非公式に知られている。開示された主題は、VVCの文脈で使用され得る。
【0053】
電子デバイス(320)および(330)は、他のコンポーネント(図示せず)を含むことができることに留意されたい。例えば、電子デバイス(320)は、ビデオデコーダ(図示せず)を含むことができ、電子デバイス(330)は、ビデオエンコーダ(図示せず)を含むこともできる。
【0054】
図4は、本開示の一実施形態によるビデオデコーダ(410)のブロック図を示す。ビデオデコーダ(410)は、電子デバイス(430)に含まれることができる。電子デバイス(430)は、受信器(431)(例えば、受信回路)を含むことができる。ビデオデコーダ(410)は、図3の例のビデオデコーダ(310)の代わりに使用することができる。
【0055】
受信器(431)は、ビデオデコーダ(410)によってデコーディングされることになる1つ以上のコーディングされたビデオシーケンスを受信し得る;同じまたは別の実施形態では、一度に1つのコーディングされたビデオシーケンスであり、各コーディングされたビデオシーケンスのデコーディングは、他のコーディングされたビデオシーケンスから独立している。コーディングされたビデオシーケンスは、チャネル(401)から受信され得、このチャネルは、エンコーディングされたビデオデータを格納するストレージデバイスへのハードウェア/ソフトェアリンクであり得る。受信器(431)は、エンコーディングされたビデオデータを、それぞれの使用エンティティ(図示せず)に転送され得る他のデータ、例えばコーディングされたオーディオデータおよび/または補助データストリームと共に受信し得る。受信器(431)は、コーディングされたビデオシーケンスを他のデータから分離し得る。ネットワークジッタに対抗するために、バッファメモリ(415)が、受信器(431)とエントロピーデコーダ/パーサ(420)(以下、「パーサ(420)」)との間に結合され得る。特定のアプリケーションでは、バッファメモリ(415)はビデオデコーダ(410)の一部である。他のものでは、それはビデオデコーダ(410)の外側にあることができる(図示せず)。さらに別のものでは、例えばネットワークジッタに対抗するために、ビデオデコーダ(410)の外側のバッファメモリ(図示せず)と、さらに、例えば再生タイミングを処理するために、ビデオデコーダ(410)の内側の別のバッファメモリ(415)があることができる。受信器(431)が、十分な帯域幅および可制御性を有するストア/フォワードデバイスから、または等同期ネットワークからデータを受信している場合、バッファメモリ(415)は不要であってもよく、または小さくすることができる。インターネットのようなベストエフォート型パケットネットワークでの使用のために、バッファメモリ(415)は、必要とされ得、比較的大きくすることができ、有利に適応サイズにすることができ、ビデオデコーダ(410)の外側のオペレーティングシステムまたは類似の要素(図示せず)に少なくとも部分的に実装され得る。
【0056】
ビデオデコーダ(410)は、コーディングされたビデオシーケンスからシンボル(421)を再構成するためのパーサ(420)を含み得る。これらのシンボルのカテゴリは、ビデオデコーダ(410)の動作を管理するために使用される情報、および、図4に示されたように、電子デバイス(430)の必須の(integral)部分ではないが、電子デバイス(430)に結合されることができるレンダリングデバイス(412)(例えば、表示スクリーン)のようなレンダリングデバイスを制御する潜在的な情報を含む。レンダリングデバイス(複数可)のための制御情報は、補足拡張情報(SEIメッセージ)またはビデオユーザビリティ情報(VUI)パラメータセットフラグメント(図示せず)の形式であり得る。パーサ(420)は、受信されるコーディングされたビデオシーケンスを解析(parse)/エントロピーデコーディングし(entropy-decode)得る。コーディングされたビデオシーケンスのコーディングは、ビデオコーディング技術または規格に従うことができ、可変長コーディング、ハフマンコーディング、コンテキスト感度を伴うまたは伴わない算術コーディングなどを含む種々の原理に従うことができる。パーサ(420)は、グループに対応する少なくとも1つのパラメータに基づいて、ビデオデコーダ内のピクセルのサブグループのうちの少なくとも1つに対するサブグループパラメータのセットを、コーディングされたビデオシーケンスから抽出し得る。サブグループは、ピクチャのグループ(GOP)、ピクチャ、タイル、スライス、マクロブロック、コーディングユニット(Coding Units)(CU)、ブロック、変換ユニット(Transform Units)(TU)、予測ユニット(Prediction Units)(PU)などを含むことができる。パーサ(420)はまた、変換係数などのコーディングされたビデオシーケンス情報から、量子化パラメータ値、MV等を抽出し得る。
【0057】
パーサ(420)は、シンボル(421)を生成するように、バッファメモリ(415)から受信したビデオシーケンスにエントロピーデコーディング/解析動作を実行し得る。
【0058】
シンボル(421)の再構成は、コーディングされたビデオピクチャまたはその部分のタイプ(例えば、インターおよびイントラピクチャ、インターおよびイントラブロック)、および他の要因に応じて、複数の異なるユニットを含むことができる。どのユニットが関与し、どのように関与するかは、パーサ(420)によってコーディングされたビデオシーケンスから解析されたサブグループ制御情報によって制御されることができる。パーサ(420)と以下の複数ユニットとの間のこのようなサブグループ制御情報のフローは、明確にするために図示されていない。
【0059】
すでに述べた機能ブロックの他に、ビデオデコーダ(410)は、概念的に、以下に説明するように、いくつかの機能ユニットに細分される(subdivided)ことができる。商業的制約の下で動作する実用的な実装では、これらのユニットの多くは互いに密接に相互作用し、少なくとも部分的に互いに統合することができる。しかし、開示された主題を説明するためには、以下の機能ユニットに概念的に細分されることが適切である。
【0060】
第1のユニットは、スケーラ/逆変換ユニット(451)である。スケーラ/逆変換ユニット(451)は、パーサ(420)からシンボル(複数可)(421)として、使用する変換、ブロックサイズ、量子化係数、量子化スケーリング行列などを含む制御情報と共に、量子化された変換係数を受信する。スケーラ/逆変換ユニット(451)は、アグリゲータ(455)に入力されることができるサンプル値を含むブロックを出力することができる。
【0061】
場合によっては、スケーラ/逆変換ユニット(451)の出力サンプルは、イントラコーディングされたブロック、すなわち、以前に再構成されたピクチャからの予測情報を使用していないが、現在のピクチャの以前に再構成された部分からの予測情報を使用することができるブロックに関連付けることができる。このような予測情報は、イントラピクチャ予測ユニット(452)によって提供することができる。場合によっては、イントラピクチャ予測ユニット452は、現在のピクチャバッファ(458)から取り出された周囲の既に再構成された情報を使用して、再構成中のブロックの同じサイズおよび形状のブロックを生成する。現在のピクチャバッファ(458)は、例えば、部分的に再構成された現在のピクチャおよび/または完全に再構成された現在のピクチャをバッファする。アグリゲータ(455)は、場合によっては、サンプル毎に、イントラピクチャ予測ユニット(452)が生成した予測情報を、スケーラ/逆変換ユニット(451)によって提供されるように、出力サンプル情報に追加する。
【0062】
他の場合には、スケーラ/逆変換ユニット(451)の出力サンプルは、インターコーディングされた、潜在的に動き補償ブロックに関係することができる。このような場合、動き補償予測ユニット(453)は、予測に使用されるサンプルを取り出すために参照ピクチャメモリ(457)にアクセスすることができる。ブロックに関連するシンボル(421)に従って、取り出されたサンプルを動き補償した後、これらのサンプルは、アグリゲータ(455)によって、出力サンプル情報を生成するために、スケーラ/逆変換ユニット(451)の出力(この場合、残差サンプルまたは残差信号と呼ばれる)に追加されることができる。動き補償予測ユニット(453)が予測サンプルを取り出す参照ピクチャメモリ(457)内のアドレスは、例えばX、Y、および参照ピクチャ成分を有することができるシンボル(421)の形態で、動き補償予測ユニット(453)に利用可能であるMVによって制御することができる。動き補償は、また、サブサンプルの正確なMVが使用されているときに参照ピクチャメモリ(457)から取り出されるサンプル値の補間、動きベクトル予測メカニズムなどを含むことができる。
【0063】
アグリゲータ(455)の出力サンプルは、ループフィルタユニット(456)内の種々のループフィルタリング技術の対象であることができる。ビデオ圧縮技術は、コーディングされたビデオシーケンス(コーディングされたビデオビットストリームとも呼ばれる)に含まれるパラメータによって制御され、パーサ(420)からシンボル(421)としてループフィルタユニット(456)に利用可能にされるインループフィルタ技術を含むことができるが、コーディングされたピクチャまたはコーディングされたビデオシーケンスの以前の(デコーディング順で)部分のデコーディングの間に得られたメタ情報に応答することができると共に、以前に再構成されループフィルタリングされたサンプル値に応答することもできる。
【0064】
ループフィルタユニット(456)の出力は、レンダリングデバイス(412)に出力することができ、また将来のインターピクチャ予測に使用するために参照ピクチャメモリ(457)に格納することができるサンプルストリームであることができる。
【0065】
特定のコーディングされたピクチャは、いったん完全に再構成されると、将来の予測のための参照ピクチャとして使用することができる。例えば、現在のピクチャに対応するコーディングされたピクチャが完全に再構成され、コーディングされたピクチャが参照ピクチャとして(例えば、パーサ(420)によって)識別されると、現在のピクチャバッファ(458)は参照ピクチャメモリ(457)の一部となることができ、新しい現在のピクチャバッファが、次のコーディングされたピクチャの再構成を開始する前に再割当てされることができる。
【0066】
ビデオデコーダ(410)は、ITU-T Rec. H.265などの規格の所定のビデオ圧縮技術に従ってデコーディング動作を実行し得る。コーディングされたビデオシーケンスは、コーディングされたビデオシーケンスが、ビデオ圧縮技術または規格の構文(syntax)およびビデオ圧縮技術または規格に文書化されているプロファイルの両方に従うという意味で、使用されているビデオ圧縮技術または規格によって指定された構文に適合し得る。具体的には、プロファイルは、特定のツールを、そのプロファイルの下で使用するために利用可能な唯一のツールとして、ビデオ圧縮技術または規格で利用可能なすべてのツールから選択することができる。また、準拠のために必要なことは、コーディングされたビデオシーケンスの複雑さが、ビデオ圧縮技術または規格のレベルによって定義される範囲内にあることであり得る。ある場合には、レベルは、最大ピクチャサイズ、最大フレームレート、最大再構成サンプルレート(例えば、毎秒メガサンプルで測定される)、最大参照ピクチャサイズなどを制限する。レベルによって設定された制限は、場合によっては、仮想参照デコーダ(HRD)仕様と、コーディングされたビデオシーケンスでシグナリングされる(signaled)HRDバッファ管理のためのメタデータを通してさらに制限することができる。
【0067】
一実施形態では、受信器(431)は、エンコーディングされたビデオと共に追加の(冗長な)データを受信し得る。追加のデータは、コーディングされたビデオシーケンス(複数可)の一部として含まれ得る。追加のデータは、データを適切にデコーディングするため、および/または元のビデオデータをより正確に再構成するために、ビデオデコーダ(410)によって使用され得る。追加のデータは、例えば、時間的、空間的、または信号雑音比(SNR)強化層、冗長スライス、冗長ピクチャ、前方誤り訂正コードなどの形態であることができる。
【0068】
図5は、本開示の一実施形態によるビデオエンコーダ(503)のブロック図を示す。ビデオエンコーダ(503)は、電子デバイス(520)に含まれる。電子デバイス(520)は、送信器(540)(例えば、送信回路)を含む。ビデオエンコーダ(503)は、図3の例のビデオエンコーダ(303)の代わりに用いることができる。
【0069】
ビデオエンコーダ(503)は、ビデオエンコーダ(503)によってコーディングされることになるビデオイメージ(複数可)をキャプチャし得るビデオソース(501)(図5の例では電子デバイス(520)の一部ではない)からビデオサンプルを受信し得る。別の例では、ビデオソース(501)は、電子デバイス(520)の一部である。
【0070】
ビデオソース(501)は、任意の適切なビット深さ(例えば、8ビット、10ビット、12ビット、...)、任意の色空間(例えば、BT.601 Y CrCB、RGB、...)、および任意の適切なサンプリング構造(例えば、Y CrCb 4:2:0、Y CrCb 4:4:4)であることができるデジタルビデオサンプルストリームの形態で、ビデオエンコーダ(503)によってコーディングされることになるソースビデオシーケンスを提供し得る。メディア供給システムでは、ビデオソース(501)は、事前に準備されたビデオを格納するストレージデバイスであり得る。ビデオ会議システムでは、ビデオソース(501)は、ローカル画像情報をビデオシーケンスとしてキャプチャするカメラであり得る。ビデオデータは、シーケンスで見たときに動きを伝える複数の個々のピクチャとして提供され得る。ピクチャ自体は、ピクセルの空間アレイとして構成され得、各ピクセルは、使用中のサンプリング構造、色空間などに応じて、1つ以上のサンプルを含むことができる。当業者は、ピクセルとサンプルとの間の関係を容易に理解することができる。以下の説明は、サンプルに焦点を当てている。
【0071】
一実施形態によれば、ビデオエンコーダ(503)は、ソースビデオシーケンスのピクチャを、リアルタイムで、またはアプリケーションによって要求される任意の他の時間制約下で、コーディングされたビデオシーケンス(543)にコーディングおよび圧縮し得る。適切なコーディング速度を実施することは、コントローラ(550)の一つの機能である。いくつかの実施形態では、コントローラ(550)は、以下に記載されるように、他の機能ユニットを制御し、他の機能ユニットに機能的に結合される。結合は、明確にするために示されていない。コントローラ(550)によって設定されるパラメータは、レート制御関連パラメータ(ピクチャスキップ、量子化器、レート歪み最適化技法のラムダ値、...)、ピクチャサイズ、ピクチャのグループ(GOP)レイアウト、最大MV許容参照エリアなどを含むことができる。コントローラ(550)は、特定のシステム設計のために最適化されたビデオエンコーダ(503)に関連する他の適切な機能を有するように構成することができる。
【0072】
いくつかの実施形態では、ビデオエンコーダ(503)は、コーディングループで動作するように構成される。過度に単純化された説明として、一例では、コーディングループは、ソースコーダ(530)(例えば、コーディングされることになる入力ピクチャおよび参照ピクチャ(複数可)に基づいて、シンボルストリームなどのシンボルを生成することを担当する)と、ビデオエンコーダ(503)に埋め込まれた(ローカル)デコーダ(533)とを含むことができる。デコーダ(533)は、(リモート)デコーダが生成するのと同様にサンプルデータを生成するようにシンボルを再構成する(シンボルとコーディングされたビデオビットストリームとの間の任意の圧縮が開示された主題において考慮されるビデオ圧縮技術においてロスレスであるので)。再構成されたサンプルストリーム(サンプルデータ)は、参照ピクチャメモリ(534)に入力される。シンボルストリームのデコーディングは、デコーダ位置(ローカルまたはリモート)に依存しないビット正確な(bit-exact)結果をもたらすので、参照ピクチャメモリ(534)中のコンテンツもまた、ローカルエンコーダとリモートエンコーダとの間でビット正確である。言い換えると、エンコーダの予測部分は、デコーダがデコーディング中に予測を使用するときに「見る」のとまったく同じサンプル値を参照ピクチャサンプルとして「見る」。参照ピクチャの同期性(および、例えば、チャンネルエラーのために同期性を維持できない場合の結果として生じるドリフト)のこの基本原理は、いくつかの関連技術においても同様に使用される。
【0073】
「ローカル」デコーダ(533)の動作は、ビデオデコーダ(410)などの「リモート」デコーダと同じであることができ、これは、図4と関連して既に上述した。しかし、図4も簡単に参照すると、シンボルが利用可能であり、エントロピーコーダ(545)およびパーサ(420)によるコーディングされたビデオシーケンスへのシンボルのエンコーディング/デコーディングがロスレスであることができるので、バッファメモリ(415)およびパーサ(420)を含むビデオデコーダ(410)のエントロピーデコーディング部分は、ローカルデコーダ(533)に完全には実装されなくてもよい。
【0074】
この時点で行うことができる観察は、デコーダに存在する解析/エントロピーデコーディングを除く任意のデコーダ技術も、対応するエンコーダに実質的に同一の機能的形態で存在する必要があることである。この理由のために、開示された主題はデコーダ動作に焦点を当てる。エンコーダ技術の説明は、包括的に記述されたデコーダ技術の逆であるため、省略することができる。特定の分野においてのみ、より詳細な説明が必要であり、以下に提供される。
【0075】
動作中、いくつかの例では、ソースコーダ(530)は、「参照ピクチャ」として指定されたビデオシーケンスからの1つ以上の以前にコーディングされたピクチャを参照して入力ピクチャを予測的にコーディングする動き補償予測コーディングを実行し得る。このようにして、コーディングエンジン(532)は、入力ピクチャのピクセルブロックと、入力ピクチャに対する予測参照(複数可)として選択され得る参照ピクチャ(複数可)のピクセルブロックとの間の差分をコーディングする。
【0076】
ローカルビデオデコーダ(533)は、ソースコーダ(530)によって生成されたシンボルに基づいて、参照ピクチャとして指定され得るピクチャのコーディングされたビデオデータをデコーディングし得る。コーディングエンジン(532)の動作は、有利には、ロッシー(lossy)プロセスであり得る。コーディングされたビデオデータがビデオデコーダ(図5には示されていない)でデコーディングされ得る場合、再構成されたビデオシーケンスは、典型的には、いくつかのエラーを伴うソースビデオシーケンスのレプリカであり得る。ローカルビデオデコーダ(533)は、参照ピクチャに対してビデオデコーダによって実行され得、再構成された参照ピクチャを参照ピクチャキャッシュ(534)に格納させ得るデコーディング処理を複製する。このようにして、ビデオエンコーダ(503)は、遠端のビデオデコーダ(送信エラーがない)によって得られる再構成された参照ピクチャとして、共通のコンテンツを有する再構成された参照ピクチャのコピーを、ローカルに格納し得る。
【0077】
予測器(predictor)(535)は、コーディングエンジン(532)のための予測探索を実行し得る。すなわち、コーディングされることになる新しいピクチャに対して、予測器(535)は、新しいピクチャに対する適切な予測参照として機能し得る、参照ピクチャMV、ブロック形状などの特定のメタデータまたはサンプルデータ(候補参照ピクセルブロックとして)について参照ピクチャメモリ(534)を検索し得る。予測器(535)は、適切な予測参照を見出すために、サンプルのブロックごとのピクセルのブロックベース(sample block-by-pixel block basis)で動作し得る。場合によっては、予測器(535)によって得られた検索結果によって決定されるように、入力ピクチャは、参照ピクチャメモリ(534)に格納された複数の参照ピクチャから描画された(drawn)予測参照を有し得る。
【0078】
コントローラ(550)は、例えば、ビデオデータをエンコーディングするために使用されるパラメータおよびサブグループパラメータの設定を含む、ソースコーダ(530)のコーディング動作を管理し得る。
【0079】
すべての前述の機能ユニットの出力は、エントロピーコーダ(545)におけるエントロピーコーディングの対象となり得る。エントロピーコーダ(545)は、ハフマンコーディング、可変長コーディング、算術コーディングなどの技術に従って、シンボルをロスレス圧縮することによって、種々の機能ユニットによって生成されたシンボルをコーディングされたビデオシーケンスに変換する。
【0080】
送信器(540)は、エンコーディングされたビデオデータを格納するストレージデバイスへのハードウェア/ソフトェアリンクであり得る通信チャネル(560)を介した送信を準備するために、エントロピーコーダ(545)によって生成されたコーディングされたビデオシーケンス(複数可)をバッファし得る。送信器(540)は、ビデオコーダ(503)からのコーディングされたビデオデータを、送信されることになる他のデータ、例えばコーディングされたオーディオデータおよび/または補助的なデータストリーム(図示せず)とマージし得る。
【0081】
コントローラ(550)は、ビデオエンコーダ(503)の動作を管理し得る。コーディングの間、コントローラ(550)は、各コーディングされたピクチャに、特定のコーディングされたピクチャタイプを割り当て得、これは、それぞれのピクチャに適用され得るコーディング技術に影響を及ぼし得る。例えば、ピクチャは、しばしば、次のピクチャタイプの1つとして割り当てられ得る:
【0082】
イントラピクチャ(Iピクチャ)は、予測のソースとしてシーケンス内の他のピクチャを使用せずに、コーディングされ得るおよびデコードされ得るものであり得る。いくつかのビデオコーデックは、例えば、独立したデコーダリフレッシュ(「IDR」)ピクチャを含む、異なるタイプのイントラピクチャを許容する。当業者は、Iピクチャのこれらの変形例、並びにそれらのそれぞれの用途および特徴を認識している。
【0083】
予測ピクチャ(Pピクチャ)は、各ブロックのサンプル値を予測するために、最大で1つのMVおよび参照インデックスを使用するイントラ予測またはインター予測を使用して、コーディングされ得るおよびデコードされ得るものであり得る。
【0084】
双方向予測ピクチャ(Bピクチャ)は、各ブロックのサンプル値を予測するために、最大で2つのMVおよび参照インデックスを使用するイントラ予測またはインター予測を使用して、コーディングされ得るおよびデコードされ得るものであり得る。同様に、複数の予測ピクチャ(multiple-predictive pictures)は、1つのブロックの再構成のために、2より多い参照ピクチャおよび関連するメタデータを使用することができる。
【0085】
ソースピクチャは、通常、空間的に複数のサンプルブロック(例えば、4×4、8×8、4×8、または16×16の各サンプルのブロック)に細分され、ブロック毎にコーディングされる。ブロックは、ブロックのそれぞれのピクチャに適用されるコーディング割り当てによって決定されるように、他の(既にコーディングされた)ブロックを参照して予測的にコーディングされ得る。例えば、Iピクチャのブロックは、非予測的にコーディングされ得る、または、それらは、同じピクチャの既にコーディングされたブロックを参照して予測的にコーディングされ得る(空間予測またはイントラ予測)。Pピクチャのピクセルブロックは、以前にコーディングされた1つの参照ピクチャを参照して、空間的予測を介してまたは時間的予測を介して、予測的にコーディングされ得る。Bピクチャのブロックは、1つまたは2つの以前にコーディングされた参照ピクチャを参照して、空間的予測を介してまたは時間的予測を介して、予測的にコーディングされ得る。
【0086】
ビデオエンコーダ(503)は、ITU-T Rec. H.265などの所定のビデオコーディング技術または規格に従ってコーディング動作を実行し得る。その動作において、ビデオエンコーダ(503)は、入力ビデオシーケンスにおける時間的および空間的冗長性を活用する予測コーディング動作を含む種々の圧縮動作を実行し得る。従って、コーディングされたビデオデータは、使用されているビデオコーディング技術または規格によって指定された構文に適合し得る。
【0087】
一実施形態では、送信器(540)は、エンコーディングされたビデオと共に追加データを送信し得る。ソースコーダ(530)は、コーディングされたビデオシーケンスの一部としてそのようなデータを含み得る。追加データは、時間的/空間的/SNR強調層、冗長ピクチャおよびスライスなどの他の形式の冗長データ、SEIメッセージ、VUIパラメータセットフラグメントなどを含み得る。
【0088】
ビデオは、時間シーケンスにおいて複数のソースピクチャ(ビデオピクチャ)としてキャプチャされ得る。イントラピクチャ予測(しばしば、イントラ予測と略される)は、所与のピクチャにおける空間的相関を利用し、インターピクチャ予測は、ピクチャ間の(時間的または他の)相関を利用する。一例では、現在のピクチャと呼ばれるエンコーディング/デコーディング中の特定のピクチャは、ブロックに分割される。現在のピクチャのブロックが、ビデオの以前にコーディングされ且つ依然としてバッファされている参照ピクチャの参照ブロックに類似する場合、現在のピクチャのブロックは、MVと呼ばれるベクトルによってコーディングされることができる。MVは、参照ピクチャの参照ブロックを指し、複数の参照ピクチャが使用されている場合には、参照ピクチャを識別する3次元を有することができる。
【0089】
いくつかの実施形態では、双予測(bi-prediction)技術が、インターピクチャ予測において使用されることができる。双予測技術によれば、両方ともビデオ内の現在のピクチャよりデコーディング順で先行する(ただし、表示順序では、それぞれ過去および将来であり得る)第1の参照ピクチャおよび第2の参照ピクチャなどの2つの参照ピクチャが使用される。現在のピクチャのブロックは、第1の参照ピクチャの第1の参照ブロックを指す第1のMV、および第2の参照ピクチャの第2の参照ブロックを指す第2のMVによってコーディングすることができる。ブロックは、第1の参照ブロックおよび第2の参照ブロックの組み合わせによって予測することができる。
【0090】
さらに、コーディング効率を改善するために、インターピクチャ予測にマージモード技法を使用することができる。
【0091】
本開示のいくつかの実施形態によれば、インターピクチャ予測およびイントラピクチャ予測などの予測は、ブロック単位(ブロックユニット)で実行される。例えば、HEVC規格によれば、ビデオピクチャのシーケンス中のピクチャは、圧縮のためにコーディングツリーユニット(CTU)に分割され、ピクチャ中のCTUは、64×64ピクセル、32×32ピクセル、または16×16ピクセルなどの、同じサイズを有する。一般的に、CTUは、3つのコーディングツリーブロック(CTB)を含み、これは、1つのルマ(luma)CTBおよび2つのクロマ(chroma)CTBである。各CTUは、1つまたは複数のコーディングユニット(CU)に再帰的にクワッドツリー(4分木)(quadtree)分割することができる。例えば、64×64ピクセルのCTUは、64×64ピクセルの1CU、32×32ピクセルの4CU、または16×16ピクセルの16CUに分割することができる。一例では、各CUは、インター予測タイプまたはイントラ予測タイプなどの、CUの予測タイプを決定するために分析される。CUは、時間的および/または空間的予測可能性に応じて1つまたは複数の予測ユニット(予測単位)(PU)に分割される。一般に、各PUはルマ予測ブロック(PB)、および2つのクロマPBを含む。一実施形態では、コーディング(エンコーディング/デコーディング)における予測演算(prediction operation)は、予測ブロックのユニットにおいて実行される。予測ブロックの一例としてルマ予測ブロックを用いると、予測ブロックは、8×8ピクセル、16×16ピクセル、8×16ピクセル、16×8ピクセルなど、ピクセルに対する値(例えば、ルマ値)の行列を含む。
【0092】
図6は、本開示の別の実施形態によるビデオエンコーダ(603)の図を示す。ビデオエンコーダ(603)は、ビデオピクチャのシーケンス内の現在のビデオピクチャ内のサンプル値の処理ブロック(例えば、予測ブロック)を受信し、処理ブロックをコーディングされたビデオシーケンスの一部であるコーディングされたピクチャにエンコードするように構成される。一例では、ビデオエンコーダ(603)は、図3の例のビデオエンコーダ(303)の代わりに使用される。
【0093】
HEVCの例では、ビデオエンコーダ(603)は、8×8サンプルの予測ブロックなどの処理ブロックに対するサンプル値のマトリックスを受信する。ビデオエンコーダ(603)は、処理ブロックが、例えば、レート歪み最適化を使用して、イントラモード、インターモード、または双予測モードを使用して、最良にコーディングされるかどうかを決定する。処理ブロックがイントラモードでコーディングされることになる場合、ビデオエンコーダ(603)は、処理ブロックをコーディングされたピクチャにエンコードするためにイントラ予測技法を使用し得る;処理ブロックがインターモードまたは双予測モードでコーディングされることになる場合、ビデオエンコーダ(603)は、処理ブロックをコーディングされたピクチャにエンコードするために、インター予測技法または双予測技法をそれぞれ使用し得る。特定のビデオコーディング技術では、マージモードは、予測器の外側のコーディングされたMV成分(MV component)の利益なしに、MVが1つ以上のMV予測器から導出されるインターピクチャ予測サブモードであることができる。特定の他のビデオコーディング技術では、対象ブロックに適用可能なMV成分が存在し得る。一例では、ビデオエンコーダ(603)は、処理ブロックのモードを決定するためのモード決定モジュール(図示せず)などの他のコンポーネントを含む。
【0094】
図6の例では、ビデオエンコーダ(603)は、図6に示すように一緒に結合されたインターエンコーダ(630)、イントラエンコーダ(622)、残差(residue)計算器(623)、スイッチ(626)、残差エンコーダ(624)、汎用(general)コントローラ(621)、およびエントロピーエンコーダ(625)を含む。
【0095】
インターエンコーダ(630)は、現在のブロック(例えば、処理ブロック)のサンプルを受信し、ブロックを参照ピクチャ内の1つ以上の参照ブロック(例えば、以前のピクチャ内および後のピクチャ内のブロック)と比較し、インター予測情報(例えば、インターエンコーディング技術による冗長情報の記述、MV、マージモード情報)を生成し、任意の適切な技術を使用して、インター予測情報に基づいてインター予測結果(例えば、予測ブロック)を計算するように構成される。いくつかの例では、参照ピクチャは、エンコーディングされたビデオ情報に基づいてデコーディングされるデコーディングされた参照ピクチャである。
【0096】
イントラエンコーダ(622)は、現在のブロック(例えば、処理ブロック)のサンプルを受信するように構成され、場合によっては、ブロックを、同じピクチャ内で既にコーディングされているブロックと比較し、変換後に量子化された係数を生成し、場合によっては、イントラ予測情報(例えば、1つ以上のイントラエンコーディング技術に従ったイントラ予測方向情報)も生成する。一例では、イントラエンコーダ(622)は、また、同じピクチャ内の参照ブロックおよびイントラ予測情報に基づいて、イントラ予測結果(例えば、予測ブロック)を計算する。
【0097】
汎用コントローラ(621)は、汎用制御データを決定し、汎用制御データに基づいてビデオエンコーダ(603)の他のコンポーネントを制御するように構成される。一例では、汎用コントローラ(621)は、ブロックのモードを決定し、そのモードに基づいてスイッチ(626)に制御信号を提供する。例えば、モードがイントラモードの場合、汎用コントローラ(621)は、スイッチ(626)を制御して、残差計算器(623)による使用のためにイントラモード結果を選択し、エントロピーエンコーダ(625)を制御して、イントラ予測情報を選択し、ビットストリームにイントラ予測情報を含める;モードがインターモードの場合、汎用コントローラ(621)は、スイッチ(626)を制御して、残差計算器(623)による使用のためにインター予測結果を選択し、エントロピーエンコーダ(625)を制御して、インター予測情報を選択し、ビットストリームにインター予測情報を含める。
【0098】
残差計算器(623)は、受信されたブロックと、イントラエンコーダ(622)またはインターエンコーダ(630)から選択された予測結果との間の差(残差データ)を計算するように構成される。残差エンコーダ(624)は、残差データに基づいて動作し、残差データをエンコーディングして変換係数を生成するように構成される。一例では、残差エンコーダ(624)は、残差データを空間ドメインから周波数ドメインに変換し、変換係数を生成するように構成される。次いで、変換係数は、量子化された変換係数を得るために量子化処理にかけられる。様々な実施形態では、ビデオエンコーダ(603)は、残差デコーダ(628)も含む。残差デコーダ(628)は、逆変換を実行し、デコーディングされた残差データを生成するように構成される。デコーディングされた残差データは、イントラエンコーダ(622)およびインターエンコーダ(630)によって適切に使用することができる。例えば、インターエンコーダ(630)は、デコーディングされた残差データおよびインター予測情報に基づいてデコーディングされたブロックを生成することができ、イントラエンコーダ(622)は、デコーディングされた残差データおよびイントラ予測情報に基づいてデコーディングされたブロックを生成することができる。
デコーディングされたブロックは、デコーディングされたピクチャを生成するために適切に処理され、デコーディングされたピクチャは、メモリ回路(図示せず)にバッファされ、いくつかの例では参照ピクチャとして使用されることができる。
【0099】
エントロピーエンコーダ(625)は、エンコーディングされたブロックを含むようビットストリームをフォーマットするように構成される。エントロピーエンコーダ(625)は、HEVCなどの適切な規格に従って種々の情報を含むように構成される。一例では、エントロピーエンコーダ(625)は、汎用制御データ、選択された予測情報(例えば、イントラ予測情報またはインター予測情報)、残差情報、およびビットストリーム内の他の適切な情報を含むように構成される。開示された主題によれば、インターモードまたは双予測モードのいずれかのマージサブモードでブロックをコーディングする場合、残差情報は存在しないことに留意されたい。
【0100】
図7は、本開示の別の実施形態によるビデオデコーダ(710)の図を示す。ビデオデコーダ(710)は、コーディングされたビデオシーケンスの一部であるコーディングされたピクチャを受信し、コーディングされたピクチャをデコーディングして再構成されたピクチャを生成するように構成される。一例では、ビデオデコーダ(710)は、図3の例のビデオデコーダ(310)の代わりに使用される。
【0101】
図7の例では、ビデオデコーダ(710)は、図7に示すように一緒に結合されたエントロピーデコーダ(771)、インターデコーダ(780)、残差デコーダ(773)、再構成モジュール(774)、およびイントラデコーダ(772)を含む。
【0102】
エントロピーデコーダ(771)は、コーディングされたピクチャから、そのコーディングされたピクチャが構成される構文要素を表す特定のシンボルを再構成するように構成することができる。このようなシンボルは、例えば、ブロックがコーディングされるモード(例えば、イントラモード、インターモード、双予測モード、マージサブモードまたは別のサブモードにおける後者の2つ)、イントラデコーダ(772)またはインターデコーダ(780)それぞれによって予測のために使用される特定のサンプルまたはメタデータを識別することができる予測情報(例えば、イントラ予測情報またはインター予測情報など)、例えば、量子化された変換係数の形態の残差情報などを含むことができる。一例では、予測モードがインターまたは双予測モードである場合、インター予測情報がインターデコーダ(780)に提供される;予測タイプがイントラ予測タイプである場合、イントラ予測情報がイントラデコーダ(772)に提供される。残差情報は、逆量子化を受けることができ、残差デコーダ(773)に提供される。
【0103】
インターデコーダ(780)は、インター予測情報を受信し、インター予測情報に基づいてインター予測結果を生成するように構成される。
【0104】
イントラデコーダ(772)は、イントラ予測情報を受信し、イントラ予測情報に基づいて予測結果を生成するように構成される。
【0105】
残差デコーダ(773)は、非量子化変換係数(de-quantized transform coefficients)を抽出するために逆量子化を実行し、残差を周波数領域から空間領域に変換するために非量子化変換係数を処理するように構成される。残差デコーダ(773)はまた、(量子化パラメータ(QP)を含む)特定の制御情報を必要とし得、その情報は、エントロピーデコーダ(771)によって提供され得る(データ経路は、低ボリューム制御情報のみであり得るため、図示されていない)。
【0106】
再構成モジュール(774)は、空間領域において、残差デコーダ(773)による出力としての残差と、予測結果(場合によっては、インターまたはイントラ予測モジュールによる出力として)とを組み合わせて、再構成されたブロックを形成するように構成され、この再構成されたブロックは、再構成されたピクチャの一部であり得、この再構成されたピクチャの一部は、再構成されたビデオの一部であり得る。ブロック解除操作(deblocking operation)等のような他の適切な操作を行って、視覚品質を改善することができることに留意されたい。
【0107】
なお、ビデオエンコーダ(303)、(503)、および(603)、並びにビデオデコーダ(310)、(410)、および(710)は、任意の適切な技法を用いて実装することができる。一実施形態では、ビデオエンコーダ(303)、(503)、および(603)、並びにビデオデコーダ(310)、(410)、および(710)は、1つ以上の集積回路を使用して実装することができる。別の実施形態では、ビデオエンコーダ(303)、(503)、および(603)、並びにビデオデコーダ(310)、(410)、および(710)は、ソフトウェア命令を実行する1つ以上のプロセッサを使用して実装することができる。
【0108】
II. VVCにおける量子化
【0109】
VVCなどのいくつかの関連する例では、最大量子化パラメータ(QP)値を51から63に拡張することができ、それに応じて初期QPのシグナリングを変更することができる。スライスSliceQpYのルマ量子化パラメータの初期値は、スライスslice_qp_deltaの量子化パラメータオフセットの非0(non-zero)値がコーディングされている場合に、スライスセグメント層で変更することができる。具体的には、構文要素init_qp_minus26の値を(-26+QpBdOffsetY)から+37の範囲にあるように変更することができ、QpBdOffsetYはルマ量子化パラメータオフセットを表す。変換ブロックのサイズが4の累乗(power of 4)でない場合、変換プロセスによる暗黙のスケーリングを補正するために、変換係数は181/256(または181/128)を掛けるのではなく、QPまたはQP levelScaleテーブルの変更と一緒に処理することができる。変換スキップブロックでは、QPが4に等しい場合、量子化ステップサイズが1になるため、最小許容QPを4と定義することができる。
【0110】
HEVCまたはH.264などの関連する例では、ルマ量子化パラメータQPをクロマ量子化パラメータQPに変換するために固定ルックアップテーブルが使用される。VVCでは、より柔軟なルマからクロマへのQPマッピングが使用される。固定テーブルを持つ代わりに、ルマからクロマへのQPマッピング関係は、柔軟な区分線形モデルを使用してシーケンスパラメータセット(SPS)でシグナリングすることができる。柔軟な区分線形モデルの制約は、各区分の勾配を負にできないことである(すなわち、ルマQPが増加すると、クロマQPはフラットのまままたは増加しなければならないが、減少することはできない)。区分線形モデルは:(1)モデル内のピースの数;(2)各ピースの入力(ルマ)および出力(クロマ)デルタQP;によって定義することができる。区分線形モデルの入力範囲は[-QpBdOffsetY,63]であり、区分線形モデルの出力範囲は[-QpBdOffsetC,63]であり、QpBdOffsetCはクロマ量子化パラメータオフセットを表す。QPマッピング関係は、Cb、Cr、およびジョイントCb/Crコーディングに対して個別にシグナリングすることができる、または2つのタイプの残差コーディング(residual coding)すべてに対して結合してシグナリングすることができる。
【0111】
HEVCと同様に、CUレベルのQP適合がVVCでは許可される。ルマ成分およびクロマ成分のデルタQP値は別々にシグナリングすることができる。クロマ成分については、許容されるクロマQPオフセット値は、例えばHEVCと同様の方法で、ピクチャパラメータセット(PPS)内のオフセットリストの形式でシグナリングすることができる。オフセットリストは、Cb、Cr、およびジョイントCb/Cr残差コーディングに対して別々に定義することができる。Cb、Cr、およびジョイントCb/Crオフセットリストの各々に対して最大6のオフセット値を許容することができる。CUレベルでは、CUのクロマQPを調整するためにオフセットリスト内のオフセット値のうちの1つが使用されていることを示すために、インデックスをシグナリングすることができる。CUクロマQPオフセットシグナリングはまた、仮想パイプラインデコーディングユニット(VPDU)CU QPデルタ可用性と一致させることができる。サイズが64×64より大きいCUの場合、CUが非ゼロのコーディングされたブロックフラグ(CBF)を有するかどうかに関係なく、クロマQPオフセットを第1の変換ユニットで送信することができる。
【0112】
関連するいくつかの例では、表1に示すように、クロマQPオフセットをスライスヘッダでシグナリングすることができる。
【表1】
【0113】
表1では、1に等しい構文要素pps_slice_chroma_qp_offsets_present_flagは、構文要素sh_cb_qp_offsetおよびsh_cr_qp_offsetが関連付けられたスライスヘッダに存在することを指定する。0に等しい構文要素pps_slice_chroma_qp_offsets_present_flagは、構文要素sh_cb_qp_offsetおよびsh_cr_qp_offsetが関連付けられたスライスヘッダに存在しないことを指定する。存在しない場合、構文要素pps_slice_chroma_qp_offsets_present_flagの値は0に等しいと推測される。
【0114】
構文要素sh_cb_qp_offsetは、量子化パラメータQp’Cbの値を決定する場合に、構文要素pps_cb_qp_offsetの値に加える差分を指定する。例えば、構文要素sh_cb_qp_offsetの値は、-12から+12までの範囲でなければならない。構文要素sh_cb_qp_offsetが存在しない場合、0と等しいと推測される。pps_cb_qp_offset+sh_cb_qp_offsetの値は、-12から+12の範囲でなければならない。
【0115】
構文要素sh_cr_qp_offsetは、量子化パラメータQp’Crの値を決定する場合に、構文要素pps_cr_qp_offsetの値に加える差分を指定する。例えば、構文要素sh_cr_qp_offsetの値は、-12から+12までの範囲でなければならない。構文要素sh_cr_qp_offsetが存在しない場合、0と等しいと推測される。pps_cr_qp_offset+sh_cr_qp_offsetの値は、-12から+12までの範囲でなければならない。
【0116】
構文要素sh_joint_cbcr_qp_offsetは、量子化パラメータQp’CbCrの値を求める場合に、構文要素pps_joint_cbcr_qp_offset_valueの値に加える差分を指定する。例えば、構文要素sh_joint_cbcr_qp_offsetの値は、-12から+12までの範囲でなければならない。構文要素sh_joint_cbcr_qp_offsetが存在しない場合、0と等しいと推測される。pps_joint_cbcr_qp_offset_value+sh_joint_cbcr_qp_offsetの値は、-12から+12までの範囲でなければならない。
【0117】
III. ノイズ検出
【0118】
図8は、本開示の一実施形態による例示的なノイズ検出プロセスを示す。例示的なノイズ検出プロセスは、ピクチャレベル、スライスレベル、タイルレベル、ブロックレベルなどのような1つ以上のレベルで使用することができる。
【0119】
一実施形態では、例示的なノイズ検出プロセスは、コーディング領域(例えば、ピクチャ、スライス、またはブロック)で使用され、各ピクセルはI(x, y)として表され、(x, y)はそれぞれのピクセルの座標を表す。ソーベル演算(Sobel operation)をエッジ検出で使用して、ノイズ検出からエッジを除外することができる。ソーベル演算の出力は式(1)で記述することができる:
【数1】
【0120】
エッジマップは、Gのしきい値Gthを使用して決定することができる。ラプラシアン演算によるノイズ検出では、G<Gthのピクセルのみを使用することができる。ピクチャのノイズレベル計算は、式(2)で記述することができる:
【数2】
【0121】
式(2)において、WおよびHはそれぞれコーディング領域の幅および高さであり、Nは式(3)で記述されるラプラシアン演算子である:
【数3】
【0122】
IV. 適応クロマQPオフセット
【0123】
場合によっては、ルマ成分およびクロマ成分のコーディング効率(および/またはレート節約)が十分にバランスされておらず、これは、ビデオエンコーディングおよび/またはデコーディングの非効率をもたらすことがある。
【0124】
本開示は、エンコーダおよび/またはデコーダにおいてクロマQPオフセットを適応的に調整する方法を含む。適応調整は、Y、U、およびVなどの異なる色成分間のコーディング効率(および/またはレート節約)のより良いバランスを提供するために、ソースビデオ信号または以前にコーディングされた情報に基づくことができる。
【0125】
クロマQPオフセット値は、異なる実施形態において別々にまたは共同で導出することができる。一実施形態では、クロマQPオフセット値は、各クロマ成分(Cb、Cr、またはジョイントCb/Cr)に対して別々に導出することができる。1つの実施形態では、クロマQPオフセット値をCb成分およびCr成分の両方に対して共同で導出することができる。
【0126】
なお、以下の説明でクロマが使用される場合、クロマCb、クロマCr、またはジョイントクロマCb/Crを指すことがある。
【0127】
本開示の態様によると、ピクセル値範囲を、クロマQPオフセットを決定するために使用することができる。コーディングされることになる複数のピクセルを含むコーディング領域について(例えば、コーディングブロック、スライス、タイル、ピクチャなど)、コーディング領域の色成分(例えば、ルマまてゃクロマ)のピクセル値範囲を、色成分のピクセルの最小ピクセル値と色成分のピクセルの最大ピクセル値との間の範囲(または差)として定義することができる。例えば、8ビットのコーディング領域の場合、ピクセル値範囲は256(例えば、すべてのピクセル値は0から255の間である)に等しい又は256未満である(例えば、0の値を持つピクセルはなく、すべてのピクセル値は1から255の間である)ことができる。
【0128】
1つの実施形態では、範囲比がコーディング領域のルマ成分のピクセル範囲とコーディング領域のクロマ成分のピクセル範囲との間で導出される。範囲比を1つ以上の範囲しきい値と比較して、クロマQPオフセットを決定することができる。一例では、比較に1つの範囲しきい値が使用される。範囲比が範囲しきい値より大きい場合、クロマQPオフセットはdQP1として設定される。それ以外の場合、クロマQPオフセットはdQP2として設定される。別の例では、複数の範囲しきい値が比較において使用される。範囲比が第1の範囲しきい値と第2の範囲しきい値との間にある場合、クロマQPオフセットはdQP1として設定される。範囲比が第2の範囲しきい値と第3の範囲しきい値との間にある場合、クロマQPオフセットはdQP2として設定される。他の実施形態では、2より多いオフセット(例えば、dQP3、dQP4など)および/または3より多いしきい値を使用することができることに留意されたい。
【0129】
いくつかの実施形態では、色成分のピクセル値範囲を色成分のヒストグラムに基づいて導出することができる。図9は、本開示の一実施形態による8ビットコーディング領域の色成分の例示的なヒストグラムを示す。ヒストグラムは、色成分のピクセルの分布を示す。ヒストグラムのX軸は、8ビットコーディング領域のピクセルに対して利用可能なピクセル値(0から255)を表す。ヒストグラムのY軸は、各ピクセル値のピクセル数を表す。ヒストグラム内の非0ビン(non-zero bin)は、少なくとも1つのピクセルが入るピクセル値間隔(pixel value interval)に対応する。ヒストグラムの範囲は、ヒストグラム内の非0ビンの最大ピクセル値と非0ビンの最小ピクセル値との間の範囲(または差)として導出することができる。図9の例では、ヒストグラムの範囲はPmax-Pminである。
【0130】
一実施形態では、ヒストグラムベースの方法を使用して適応クロマQPオフセット(複数可)を導出することができる。ヒストグラムベースの方法では、ルマ、クロマCb、および/またはクロマCr成分のヒストグラムを最初に生成することができる。ルマヒストグラムとクロマヒストグラム(複数可)の特性(例えばヒストグラムの範囲)の間の関係を使用して、クロマQPオフセット(複数可)を導出することができる。ヒストグラムの非0ビンのピクセル値の範囲は、クロマQPオフセット(複数可)導出に使用することができる。例えば、ルマヒストグラム範囲とそれぞれのクロマ成分のヒストグラム範囲の比に応じて、各クロマ成分のクロマQPオフセットを導出することができる。この比はヒストグラム範囲比と呼ぶことができる。
【0131】
1つの例では、ヒストグラム範囲比を以下のようにクロマCbとCrに対して別々に導出することができる:
Range_ratio_Luma_Cb=hist_range_luma/hist_range_Cb (式.4)
Range_ratio_Luma_Cr=hist_range_luma/hist_range_Cr (式.5)
【0132】
上式において、hist_range_lumaはルマ成分のヒストグラム範囲を示し、hist_range_CbはクロマCb成分のヒストグラム範囲を示し、hist_range_CrはクロマCr成分のヒストグラム範囲を示す。各成分のヒストグラム範囲は、それぞれの成分のヒストグラムにおける、非0ビンの最大ピクセル値と非0ビンの最小ピクセル値との間の差として導出することができる。
【0133】
別の例では、ヒストグラム範囲比は、次のようにCb成分とCr成分について一緒に求めることができる:
hist_range_chroma_joint=(hist_range_Cb*w1+hist_range_Cr*w2)/(w1+w2) (式.6)
Range_ratio_Luma_Chroma_joint=hist_range_luma/hist_range_chroma_joint (式.7)
【0134】
式(6)において、w1および2は重み係数である。
【0135】
いくつかの実施形態では、1つ以上のしきい値をクロマQPオフセット(複数可)の導出に使用することができる。
【0136】
1つの実施形態では、1つのしきい値をクロマQPオフセット(複数可)の導出に使用することができる。例えば、式(4)、(5)、または(6)のうちの1つから導出されるヒストグラム範囲比がしきい値より大きい場合、対応するクロマ成分のクロマQPオフセットをdQP1として設定することができる。ヒストグラム範囲比がしきい値以下の場合、対応するクロマ成分のクロマQPオフセットをdQP2として設定することができる。一例では、dQP1は-1に等しく、dQP2は0に等しくすることができる。別の例では、dQP1は0に等しく、dQP2は1に等しくすることができる。その他の例では、dQP1とdQP2は-12から+12まで(-12、+12含む)の範囲内の異なる値にすることができる。
【0137】
一実施形態では、クロマQPオフセット(複数可)の導出に複数のしきい値を使用することができる。例えば、式(4)、(5)、または(6)のうちの1つから導出される比などのヒストグラム範囲比が第1のしきい値と第2のしきい値との間にある場合、対応するクロマ成分のクロマQPオフセットをdQP1として設定することができる。ヒストグラム範囲比が第2しきい値と第3しきい値との間にある場合、対応するクロマ成分のクロマQPオフセットをdQP2として設定することができる。他の実施形態では、2より多いオフセット(例えば、dQP3、dQP4など)および/または3より多いしきい値を使用できることに留意されたい。
【0138】
本開示の態様によれば、複雑度ベースの方法(complexity based method)を使用して適応クロマQPオフセット(複数可)を導出することができる。複雑度ベースの方法では、ルマ、クロマCb、および/またはクロマCr成分の複雑度レベル(complexity levels)を最初に導出することができる。1つの例では、色成分(例えば、ルマまたはクロマ成分)のピクセルの分散を色成分の複雑度レベルとして使用することができる。別の例では、イントラ予測および/またはインター予測における色成分の残差の絶対差の和(SAD)を色成分の複雑度レベルとして使用することができる。別の例では、イントラ予測および/またはインター予測における色成分の残差の絶対変換差の和(SATD)を、色成分の複雑度レベルとして使用することができる。
【0139】
いくつかの実施形態では、ルマの複雑度レベルとクロマ成分の複雑度レベルとの間の複雑度比を使用して、クロマ成分のクロマQPオフセットを導出することができる。
【0140】
1つの実施形態では、複雑度比がしきい値より大きい場合、クロマQPオフセットをdQP1として設定することができる。それ以外の場合は、クロマQPオフセットをdQP2として設定することができる。
【0141】
1つの実施形態では、複数のしきい値を複雑度比と比較して、クロマ成分のクロマQPオフセットを導出することができる。例えば、複雑度比が第1のしきい値と第2のしきい値との間にある場合、クロマQPオフセットをdQP1として設定することができる。複雑度比が第2のしきい値と第3のしきい値との間にある場合、クロマQPオフセットをdQP2として設定することができる。他の実施形態では、2より多いオフセット(例えば、dQP3、dQP4など)および/または3より多いしきい値を使用できることに留意されたい。
【0142】
開示の態様によれば、ノイズ情報ベースの方法を使用して、適応クロマQPオフセット(複数可)を導出することができる。ノイズ情報ベースの方法では、ルマ、クロマCb、および/またはクロマCr成分のノイズレベルを最初に導出することができる。1つの例では、図8に示すノイズ検出プロセスを使用して、色成分のノイズレベルを導出することができる。別の例では、他のノイズアルゴリズムを使用して色成分のノイズレベルを導出することができる。
【0143】
1つの実施形態では、例えば式(2)によって計算されるクロマ成分のノイズレベルがしきい値より大きい場合、クロマ成分のクロマQPオフセットをdQP1として設定することができる。それ以外の場合は、クロマQPオフセットをdQP2として設定することができる。
【0144】
1つの実施形態では、ルマ成分のノイズレベルとクロマ成分のノイズレベルとの間のノイズ比を使用して、クロマ成分のクロマQPオフセットを決定することができる。一例では、ノイズ比がしきい値より大きい場合、クロマ成分のクロマQPオフセットをdQP1として設定することができる。それ以外の場合は、クロマQPオフセットをdQP2として設定することができる。別の例では、複数のしきい値をノイズ比と比較して、クロマ成分のクロマQPオフセットを導出することができる。例えば、ノイズ比が第1のしきい値と第2のしきい値との間にある場合、クロマQPオフセットをdQP1として設定することができる。ノイズ比が第2のしきい値と第3のしきい値との間にある場合、クロマQPオフセットをdQP2として設定することができる。他の実施形態では、2より多いオフセット(例えば、dQP3、dQP4など)および/または3より多いしきい値を使用できることに留意されたい。
【0145】
開示の態様によれば、導出されたクロマQPオフセット(複数可)は、コーディングされたビデオビットストリームにエンコーディングされ、デコーダに送信することができる。例えば、導出されたクロマQPオフセット(複数可)は、SPSレベル、PPSレベル、ピクチャレベル、スライスレベル、タイルレベル、ブロックレベルなどでシグナリングすることができる。
【0146】
本開示の態様によれば、エンコーダは、クロマQPオフセット(複数可)を導出するために、上記の方法の1つ(例えば、ヒストグラムベースの方法、複雑度ベースの方法、およびノイズ情報ベースの方法)を使用することができる。エンコーダは、導出したクロマQPオフセット(複数可)をシグナリングすることができる。この場合、デコーダは、クロマQPオフセット(複数可)を決定するために使用される方法に関係なく、導出したクロマQPオフセット(複数可)を使用してデコーディングを実行ですることができる。代替的には、エンコーダは、クロマQPオフセット(複数可)を導出するために使用された方法を示す構文要素をシグナリングすることができるため、デコーダはシグナリングされた方法に基づいてクロマQPオフセット(複数可)を導出することができる。例えば、エンコーダは構文要素sps_chroma_QP_offset_noise_enabledを「真(true)」として設定することができ、構文要素をデコーダに送信することができる。デコーダは、クロマQPオフセット(複数可)を導出するためにノイズ情報ベースの方法を使用することができる。ノイズ情報ベースの方法では、ルマおよびクロマ成分のノイズレベルは、参照ピクチャまたは以前に再構成されたコーディングブロックなどの再構成されたコーディング領域に基づいて導出することができる。
【0147】
開示の態様によれば、エンコーダは上記の方法(例えば、ヒストグラムベースの方法、複雑度ベースの方法、ノイズ情報ベースの方法)のうち少なくとも2つを比較することができる。比較の後、エンコーダはクロマQPオフセット(複数可)を導出する方法の1つを決定することができる。例えば、エンコーダは、上記の各方法に対してそれぞれのクロマQPオフセット候補を導出し、クロマ成分のクロマQPオフセットとして1つの候補を選択することができる。例えば、他の候補と比較して、選択された候補は、異なる色成分間のコーディング効率(および/またはレート節約)のより良いバランスを提供することができる。エンコーダは、導出したクロマQPオフセットをシグナリングすることができる。代替的には、エンコーダは、クロマQPオフセットを導出するために使用される決定された方法または上記の方法の少なくとも2つを示す構文要素をシグナリングすることができるため、デコーダは、シグナリングされた方法(複数可)に基づいてクロマQPオフセットを導出することができる。
【0148】
本開示の態様によれば、デコーダは、クロマQPオフセット(複数可)または、クロマQPオフセット(複数可)を導出する方法(例えば、ヒストグラムベースの方法、複雑度ベースの方法、ノイズ情報ベースの方法のうちの1つ)を示す構文要素を受信することができる。
【0149】
本開示の態様によれば、デコーダはシグナリングすることなしでクロマQPオフセット(複数可)を導出することができる。例えば、デコーダは上記の方法(例えば、ヒストグラムベースの方法、複雑度ベースの方法、ノイズ情報ベースの方法)のうち少なくとも2つを比較することができる。比較の後、エンコーダはクロマQPオフセット(複数可)を導出する方法の1つを決定することができる。例えば、デコーダは、上記の各方法それぞれについてのそれぞれのクロマQPオフセット候補を導出し、クロマ成分のクロマQPオフセットとして1つの候補を選択することができる。上記の方法のうち少なくとも2つは、あらかじめ決定することができるまたはシグナリングすることができる。
【0150】
本開示の態様によれば、デコーダは、再構成された信号(例えば、再構成されたピクチャ、再構成されたスライス、再構成されたブロック)に基づいて、現在のコーディング領域のクロマQPオフセット(複数可)を導出することができる。一実施形態では、再構成された信号は参照ピクチャからのものであることができる。
【0151】
V. フローチャート
【0152】
図10は、本開示の一実施形態による例示的なプロセス(1000)の概要を示すフローチャートである。様々な実施形態において、プロセス(1000)は、端末装置(210)、(220)、(230)、および(240)における処理回路、ビデオエンコーダ(303)の機能を実行する処理回路、ビデオデコーダ(310)の機能を実行する処理回路、ビデオエンコーダ(503)の機能を実行する処理回路などの処理回路によって実行される。いくつかの実施形態では、プロセス(1000)はソフトウェア命令で実装されるため、処理回路がソフトウェア命令を実行するとき、処理回路はプロセス(1000)を実行する。
【0153】
プロセス(1000)は概してステップ(S1010)においてスタートし、プロセス(1000)は、(i)クロマ成分のピクセル値範囲、(ii)クロマ成分の複雑度レベル、または(iii)クロマ成分のノイズレベルのうちの1つに基づいて、コーディング領域のクロマ成分の量子化パラメータのオフセットを決定する。次いで、プロセス(1000)はステップ(S1020)に進む。
【0154】
ステップ(S1020)において、プロセス(1000)は、量子化パラメータおよび決定されたオフセットに基づいて、コーディング領域の変換係数に対して量子化プロセスを実行する。次いで、プロセス(1000)はステップ(S1030)に進む。
【0155】
ステップ(S1030)において、プロセス(1000)は、量子化変換係数を含むビデオビットストリームを生成する。
【0156】
次いで、プロセス(1000)は終了する。
【0157】
一実施形態では、プロセス(1000)は、量子化パラメータのオフセットを含むビデオビットストリームを生成する。
【0158】
一実施形態では、プロセス(1000)は、コーディング領域のルマ成分のピクセル値範囲を決定する。プロセス(1000)は、ルマ成分のピクセル値範囲とクロマ成分のピクセル値範囲との間の範囲比を決定する。プロセス(1000)は、範囲比と範囲しきい値との間の比較に基づいて量子化パラメータのオフセットを決定する。
【0159】
一実施形態では、ルマ成分およびクロマ成分のそれぞれについて、それぞれの成分のピクセル値範囲は、それぞれの成分のピクセルの最大ピクセル値と最小ピクセル値との間の差である。
【0160】
一実施形態では、プロセス(1000)は、コーディング領域のルマ成分の複雑度レベルを決定する。プロセス(1000)は、ルマ成分の複雑度レベルとクロマ成分の複雑度レベルとの間の複雑度比を決定する。プロセス(1000)は、複雑度比と複雑度しきい値との間の比較に基づいて量子化パラメータのオフセットを決定する。
【0161】
一実施形態では、ルマ成分およびクロマ成分のそれぞれについて、それぞれの成分の複雑度レベルは、(i)それぞれの成分のピクセルのピクセル値の分散、(ii)それぞれの成分の残差の絶対差の和、または(iii)それぞれの成分の残差の絶対変換差の和のうちの1つに基づいている。
【0162】
一実施形態では、プロセス(1000)は、クロマ成分のノイズレベルとノイズしきい値との間の比較に基づいて量子化パラメータのオフセットを決定する。
【0163】
一実施形態では、プロセス(1000)は、コーディング領域のルマ成分のノイズレベルを決定する。プロセス(1000)は、ルマ成分のノイズレベルとクロマ成分のノイズレベルとの間のノイズ比を決定する。プロセス(1000)は、ノイズ比とノイズ比しきい値との間の比較に基づいて量子化パラメータのオフセットを決定する。
【0164】
一実施形態では、ルマ成分およびクロマ成分のそれぞれについて、それぞれの成分のノイズレベルは、それぞれの成分のピクセルに適用されるエッジ検出と、エッジ検出の結果に適用されるラプラシアン畳み込みに基づいている。
【0165】
VI. コンピュータシステム
【0166】
上述の技術は、コンピュータ可読命令を用いてコンピュータソフトウェアとして実装することができ、1つ以上のコンピュータ可読媒体に物理的に格納することができる。例えば、図11は、開示された主題の特定の実施形態を実施するのに適したコンピュータシステム(1100)を示す。
【0167】
コンピュータソフトウェアは、1つまたは複数のコンピュータ中央処理ユニット(CPU)、グラフィックス処理ユニット(GPU)などによって、直接的に、または解釈を通じて、マイクロコード実行などを通して実行することができる命令を含むコードを作成するために、アセンブリ、コンパイル、リンク、または同様のメカニズムの対象となり得る任意の適切な機械コードまたはコンピュータ言語を用いてコーディングすることができる。
【0168】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームミングデバイス、モノのインターネットデバイス等を含む種々のタイプのコンピュータまたはそのコンポーネント上で実行することができる。
【0169】
コンピュータシステム(1100)について図11に示されるコンポーネントは、本質的に例示的なものであり、本開示の実施形態を実装するコンピュータソフトウェアの使用範囲または機能に関する限定を示唆することを意図するものではない。また、コンポーネントの構成は、コンピュータシステム(1100)の例示的な実施形態に示されたコンポーネントのいずれか1つまたは組み合わせに関するいかなる従属性または要件を有するものとして解釈されてはならない。
【0170】
コンピュータシステム(1100)は、特定のヒューマンインターフェース入力デバイスを含み得る。このようなヒューマンインターフェース入力デバイスは、例えば、触覚入力(キーストローク、スワイプ、データグローブの動きなど)、音声入力(音声、拍手など)、視覚入力(ジェスチャなど)、嗅覚入力(図示せず)を通じて、一人または複数の人間のユーザによる入力に応答し得る。また、ヒューマンインターフェースデバイスは、オーディオ(スピーチ、音楽、周囲の音声など)、画像(スキャンされた画像、静止画カメラから得られる写真画像など)、ビデオ(2次元ビデオ、立体画像を含む3次元ビデオなど)のような、人間による意識的入力に必ずしも直接関係しない特定の媒体をキャプチャするために使用することができる。
【0171】
入力ヒューマンインターフェースデバイスは、キーボード(1101)、マウス(1102)、トラックパッド(1103)、タッチスクリーン(1110)、データグローブ(図示せず)、ジョイスティック(1105)、マイクロホン(1106)、スキャナ(1107)、およびカメラ(1108)の1つ以上(それぞれのうちの1つのみ)を含み得る。
【0172】
コンピュータシステム(1100)はまた、特定のヒューマンインターフェース出力デバイスを含み得る。このようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音、光、およびにおい/味を通して、1人または複数の人間ユーザの感覚を刺激し得る。このようなヒューマンインターフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン(1110)、データグローブ(図示せず)、またはジョイスティック(1105)による触覚フィードバックであるが、入力デバイスとして機能しない触覚フィードバックデバイスであることもできる)、オーディオ出力デバイス(スピーカー(1109)、ヘッドフォン(図示せず)など)、視覚出力デバイス(CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含むスクリーン(1110)など、各々がタッチスクリーン入力能力を有していても有していなくてもよく、各々が触覚フィードバック能力を有していても有していなくてもよい-これらのうちのいくつかは、2次元の視覚出力または立体画像出力など手段を介して3次元以上の出力を出力することができ得る;仮想現実メガネ(図示せず)、ホログラフィックディスプレイおよびスモークタンク(図示せず))、およびプリンタ(図示せず)を含み得る。これらの視覚出力デバイス(スクリーン(1110)など)は、グラフィックスアダプタ(1150)を通じてシステムバス(1148)に接続することができる。
【0173】
コンピュータシステム(1100)はまた、人間がアクセス可能なストレージデバイス、および、CD/DVDまたは類似の媒体(1121)を有するCD/DVD ROM/RW(1120)を含む光学媒体、サムドライブ(1122)、リムーバブルハードドライブまたはソリッドステートドライブ(1123)、テープおよびフロッピー(登録商標)ディスク(図示せず)のようなレガシー磁気媒体、セキュリティドングル(図示せず)のような特殊化されたROM/ASIC/PLDベースのデバイスなどの関連媒体を含むことができる。
【0174】
当業者はまた、現在開示されている主題に関連して使用される用語「コンピュータ可読媒体」は、伝送媒体、搬送波、または他の一時的な信号を包含しないことを理解すべきである。
【0175】
コンピュータシステム(1100)はまた、1つ以上の通信ネットワーク(1155)へのネットワークインターフェース(1154)を含むことができる。1つ以上の通信ネットワーク(1155)は、例えば、無線、有線、光であることができる。1つ以上の通信ネットワーク(1155)は、さらに、ローカル、広域、メトロポリタン、車両および産業、リアルタイム、遅延耐性などであることができる。1つ以上の通信ネットワーク(1155)の例は、イーサネット(登録商標)、無線LAN、GSM、3G、4G、5G、LTEなどを含むセルラーネットワーク、ケーブルTV、衛星TV、および地上放送TVを含むTV有線または無線ワイドエリアデジタルネットワーク、CANバスを含む車両および産業用などを含む。特定のネットワークは、一般に、特定の汎用データポートまたは周辺バス(1149)(例えば、コンピュータシステム(1100)のUSBポートなど)に取り付けられる外部ネットワークインターフェースアダプタを必要とする。他のものは、一般に、以下に説明するようにシステムバスに取り付けることによって、コンピュータシステム(1100)のコアに組み込まれる(例えば、PCコンピュータシステムへのイーサネットインターフェースまたはスマートフォンコンピュータシステムへのセルラーネットワークインターフェース)。これらのネットワークのいずれかを使用して、コンピュータシステム(1100)は、他のエンティティと通信することができる。このような通信は、単指向性、受信のみ(例えば、放送テレビ)、単指向性送信専用(例えば、特定のCANバスデバイスへのCANバス)、または、例えば、ローカルまたはワイドエリアデジタルネットワークを使用する他のコンピュータシステムへの双指向性であることができる。特定のプロトコルおよびプロトコルスタックは、上述のように、それらのネットワークおよびネットワークインターフェースの各々で使用することができる。
【0176】
前述のヒューマンインターフェースデバイス、人間がアクセス可能なストレージデバイス、およびネットワークインターフェースは、コンピュータシステム(1100)のコア(1140)に取り付けることができる。
【0177】
コア(1140)は、1つ以上の中央処理装置(CPU)(1141)、グラフィックス処理ユニット(GPU)(1142)、フィールドプログラマブルゲートエリア(FPGA)(1143)の形の特殊なプログラマブル処理ユニット、特定のタスクのためのハードウェアアクセラレータ(1144)などを含むことができる。これらのデバイスは、読出し専用メモリ(ROM)(1145)、ランダムアクセスメモリ(1146)、内部非ユーザアクセス可能ハードドライブ、SSD等の内部大容量ストレージ(1147)と共に、システムバス(1148)を介して接続され得る。いくつかのコンピュータシステムでは、システムバス(1148)は、追加のCPU、GPUなどによる拡張を可能にするために、1つ以上の物理的プラグの形態でアクセス可能であることができる。周辺装置は、コアのシステムバス(1148)に直接取り付けるか、または周辺バス(1149)を介して取り付けることができる。周辺バスのアーキテクチャは、PCI、USBなどを含む。
【0178】
CPU(1141)、GPU(1142)、FPGA(1143)、およびアクセラレータ(1144)は、組み合わされて、上述のコンピュータコードを構成することができる特定の命令を実行することができる。そのコンピュータコードは、ROM(1145)またはRAM(1146)に格納することができる。過渡的なデータはRAM(1146)に格納することもでき、一方、永久データは、例えば、内部大容量ストレージ(1147)に格納することができる。メモリデバイスのいずれかへの高速ストレージおよび取得は、キャッシュメモリの使用を通して可能にすることができ、キャッシュメモリは、1つ以上のCPU(1141)、GPU(1142)、大容量ストレージ(1147)、ROM(1145)、RAM(1146)などと密接に関連付けることができる。
【0179】
コンピュータ可読媒体は、種々のコンピュータに実装された動作を実行するためのコンピュータコードをその上に有することができる。媒体およびコンピュータコードは、本開示の目的のために特別に設計および構成されたものであることができる、またはそれらは、コンピュータソフトウェア技術に熟練した者に良く知られかつ入手可能な種類のものであることができる。
【0180】
一例として、限定するものではなく、アーキテクチャ(1100)、具体的にはコア(1140)を有するコンピュータシステムは、1つ以上の有形のコンピュータ可読媒体に具現化されたソフトウェアを実行するプロセッサ(複数可)(CPU、GPU、FPGA、アクセラレータ等を含む)の結果として機能を提供することができる。そのようなコンピュータ可読媒体は、コア-内部大容量ストレージ(1147)又はROM(1145)のような非一時的な性質のものであるコア(1140)の特定のストレージ(1140)と同様に、上述のようなユーザがアクセス可能な大容量ストレージに関連する媒体であることができる。本開示の様々な実施形態を実装するソフトウェアは、そのようなデバイスに格納され、コア(1140)によって実行されることができる。コンピュータ可読媒体は、特定のニーズに応じて、1つ又は複数のメモリデバイス又はチップを含むことができる。ソフトウェアは、RAM(1146)に格納されたデータ構造を定義し、ソフトウェアによって定義されたプロセスに従ってそのようなデータ構造を修正することを含む、本明細書に記載された特定のプロセス又は特定のプロセスの特定の部分を、コア(1140)、具体的にはその中のプロセッサ(CPU、GPU、FPGAなどを含む)に実行させることができる。加えて又は代替的に、コンピュータシステムは、回路(例えば、アクセラレータ(1144))内に配線された又は他の方法で具現化されたロジックの結果として機能を提供することができ、これは、本明細書に記載される特定のプロセス又は特定のプロセスの特定の部分を実行するためのソフトウェアの代わりに、又はそれと共に動作することができる。ソフトウェアへの言及は、ロジックを含み、また、必要に応じて、その逆も可能である。コンピュータ可読媒体への言及は、実行のためのソフトウェアを格納する回路(集積回路(IC)など)、実行のためのロジックを具体化する回路、又は適切な場合にはその両方を含むことができる。本開示は、ハードウェア及びソフトウェアの任意の適切な組み合わせを包含する。
【0181】
本開示はいくつかの例示的な実施形態を説明してきたが、変更、順列、および様々な代替均等物があり、これらは本開示の範囲内にある。したがって、当業者は、ここに明示的に示されているわけでも記述されているわけでもないが、開示の原理を具体化し、したがってその精神と範囲内にある多数のシステムおよび方法を考え出すことができることが認められる。
【0182】
付録A:頭字語
ALF:適応ループフィルタ
AMVP:高度な動きベクトル予測
APS:適応パラメータセット
ASIC:特定用途向け集積回路
ATMVP:代替/高度な時間動きベクトル予測
AV 1:AOMedia Video 1
AV 2:AOMedia Video 2
BMS:ベンチマークセット
BV:ブロックベクトル
CANBus:コントローラエリアネットワークバス
CB:コーディングブロック
CC-ALF:クロスコンポーネント適応ループフィルタ
CD:コンパクトディスク
CDEF:制約付き方向拡張フィルタ
CPR:現在のピクチャ参照
CPU:中央処理装置
CRT:陰極線管
CTB:コーディングツリーブロック
CTU:コーディングツリーユニット
CU:コーディングユニット
DPB:デコーダピクチャバッファ
DPCM:差動パルスコード変調
DPS:デコーディングパラメータセット
DVD:デジタルビデオディスク
FPGA:フィールドプログラマブルゲートエリア
JCCR:ジョイントCbCr残差コーディング
JVET:共同ビデオ探査チーム
GOP:ピクチャのグループ
GPU:グラフィックス処理装置
GSM:モバイル通信のためのグローバルシステム
HDR:ハイダイナミックレンジ
HEVC:高効率ビデオコーディング
HRD:仮想参照デコーダ
IBC:イントラブロックコピー
IC:集積回路
ISP:イントラサブパーティション
JEM:共同探査モデル
LAN:ローカルエリアネットワーク
LCD:液晶ディスプレイ
LR:ループ復元フィルタ
LRU:ループ復元ユニット
LTE:ロングタームエボリューション
MPM:最確モード
MV:動きベクトル
OLED:有機発光ダイオード
PBs:予測ブロック
PCI:周辺機器相互接続
PDPC:位置依存予測の組み合わせ
PLD:プログラマブルロジックデバイス
PPS:ピクチャパラメータセット
PU:予測ユニット
RAM:ランダムアクセスメモリ
ROM:読み取り専用メモリ
SAO:サンプル適応オフセット
SCC:スクリーンコンテンツコーディング
SDR:標準ダイナミックレンジ
SEI:補足強化情報
SNR:信号ノイズ比
SPS:シーケンスパラメータセット
SSD:ソリッドステートドライブ
TU:変換ユニット
USB:ユニバーサルシリアルバス
VPS:ビデオパラメータセット
VUI:ビデオユーザビリティ情報
VVC:汎用ビデオコーディング
WAIP:広角イントラ予測
図1A
図1B
図1C
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11