(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2025-02-21
(54)【発明の名称】コーディングされたピクチャからのCABAC(Adaptive context-based adaptive binary arithmetic coding)初期状態選択
(51)【国際特許分類】
H04N 19/13 20140101AFI20250214BHJP
H04N 19/174 20140101ALI20250214BHJP
H04N 19/167 20140101ALI20250214BHJP
【FI】
H04N19/13
H04N19/174
H04N19/167
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023560292
(86)(22)【出願日】2022-11-14
(85)【翻訳文提出日】2023-09-29
(86)【国際出願番号】 US2022079802
(87)【国際公開番号】W WO2023149973
(87)【国際公開日】2023-08-10
(32)【優先日】2022-02-07
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2022-11-11
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】シュー,シャオジョン
(72)【発明者】
【氏名】リウ,シャン
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159TA59
5C159TB06
5C159TC28
5C159TC32
(57)【要約】
本開示の態様は、先行するピクチャ内の複数の領域の各エントロピーコーディングされた領域に関連付けられた先行する確率情報を判定する処理回路機構を含む方法及び装置を提供する。処理回路機構は、(i)カレントピクチャ内の独立にデコーディング可能なコーディングセグメントの場所若しくは量子化パラメータ、又は(ii)前記独立にデコーディング可能なコーディングセグメントの構文情報に基づいて、複数の領域の中から領域を選択する。独立にデコーディング可能なコーディングセグメント内のブロックの1つ以上のカレント構文要素に対する初期確率情報は、選択された領域に関連付けられた先行する確率情報に基づいて判定される。1つ以上のカレント構文要素は、最初に、独立にデコーディング可能なコーディングセグメントにおいてエントロピーデコーディングされる。処理回路機構は、初期確率情報に基づいて、1つ以上のカレント構文要素に関連付けられたコーディングされたビットをビンストリングにエントロピーデコーディングする。
【特許請求の範囲】
【請求項1】
デコーダにおいてデコーディングする方法であって
カレントピクチャ及び先行するピクチャを含むビットストリームを受信するステップであって、前記先行するピクチャは複数の領域を含み、前記複数の領域の各領域はエントロピーコーディングされている、ステップと、
前記複数の領域の各エントロピーコーディングされた領域に関連付けられた先行する確率情報を判定するステップと
(i)カレントピクチャ内の独立にデコーディング可能なコーディングセグメントの場所若しくは量子化パラメータ、又は(ii)前記独立にデコーディング可能なコーディングセグメントの構文情報に基づいて、前記先行するピクチャ内の前記複数の領域の中から領域を選択するステップであって、前記デコーディング可能なコーディングセグメントは、(i)前記カレントピクチャ又は(ii)前記カレントピクチャ内部の領域である、ステップと、
前記選択されたエントロピーコーディングされた領域に関連付けられた前記判定された先行する確率情報に基づいて、前記独立にデコーディング可能なコーディングセグメント内のブロックの1つ以上のカレント構文要素をエントロピーデコーディングするための初期確率情報を判定するステップであって、前記1つ以上のカレント構文要素は、前記独立にデコーディング可能なコーディングセグメントにおける構文要素の中で最初にエントロピーデコーディングされる、ステップと、
1つ以上のカレント構文要素に関連付けられたコーディングされたビットを、前記初期確率情報及び前記コーディングされたビットの確率推定モデルに基づいて、1つ以上のカレント構文要素に関連付けられたビンストリングにエントロピーデコーディングするステップと、を含む、方法。
【請求項2】
前記先行するピクチャ内の前記複数の領域は、前記先行するピクチャの4つのコーナーと中央にそれぞれ位置するコーディングツリーユニット(CTU)を含み、
前記カレントピクチャは、4つのコーナー領域と1つの中央領域と、を含み、
前記領域を選択するステップは、
前記ブロックが前記カレントピクチャの前記4つのコーナー領域のうちの1つに位置することに基づいて、前記先行するピクチャの前記4つのコーナーのうちの1つに位置するCTUを選択するステップであって、前記4つのコーナーのうちの1つに位置する前記CTUは、前記選択された領域内にある、ステップと、
前記ブロックが前記カレントピクチャの前記中央領域に位置することに基づいて、前記先行するピクチャの前記中央に位置するCTUを選択するステップであって、前記中央に位置するCTUは、前記選択された領域内にある、ステップと、を含む、請求項1に記載の方法。
【請求項3】
前記独立にデコーディング可能なコーディングセグメントは、前記カレントピクチャ内のイントラスライス(Iスライス)、双予測スライス(Bスライス)、及び予測スライス(Pスライス)のうちの1つである、請求項1に記載の方法。
【請求項4】
前記独立にデコーディング可能なコーディングセグメントは、前記カレントピクチャであり、
前記選択するステップは、前記複数の領域のうちどの領域が選択されるかを示す前記構文情報に基づいて、前記領域を選択するステップを含む、請求項1に記載の方法。
【請求項5】
前記構文情報は、前記複数の領域のうちどの領域が選択されるかを示すインデックスを含み
前記選択するステップは、前記インデックスに基づいて前記領域を選択するステップを含む、請求項1に記載の方法。
【請求項6】
前記選択された領域をエントロピーデコーディングするための確率推定モデルに基づいて、前記確率推定モデルにおける1つ以上のパラメータを取得するステップを含む、請求項1に記載の方法。
【請求項7】
1つ以上のパラメータは、前記ビンストリングの複数の確率推定値に関連付けられた適応レート及び適応重みを含み、それぞれの確率推定値に関連付けられた前記適応レートの各々は、前記ビンストリングに対する2つの近接する確率間の量子化ステップサイズを示す、請求項6に記載の方法。
【請求項8】
前記先行するピクチャに関連付けられた階層的時間構造における第1のレベルが、前記カレントピクチャに関連付けられた階層的時間構造における第2のレベルよりも低くなるように、前記ビットストリーム内の複数のピクチャから前記先行するピクチャを選択するステップであって、前記第1のレベルにおける各ピクチャは、前記第2のレベルにおける1つ以上のピクチャの各々をデコーディングする前にデコーディングされている、請求項1に記載の方法。
【請求項9】
前記判定された先行する確率情報を、前記先行するピクチャの各領域をエントロピーデコーディングするために使用される前記判定された先行する確率情報の第2の量子化精度よりも低い第1の量子化精度で記憶するステップをさらに含み、
前記初期確率情報を判定するステップは、前記第1の量子化精度で前記記憶され判定された先行する確率情報に基づいて前記初期確率情報を判定するステップを含む、請求項1に記載の方法。
【請求項10】
前記ビットストリーム内のフラグは、前記初期確率情報が、前記先行するピクチャから前記判定された先行する確率情報に基づいて判定されることを示す、請求項1に記載の方法。
【請求項11】
前記確率推定モデルは、コンテキスト適応モデルであり、
前記エントロピーデコーディングは、前記コーディングされたビットを、コンテキスト適応二値算術コーディング(CABAC)でエントロピーデコーディングすることを含む、請求項1に記載の方法。
【請求項12】
デコーディングするための装置であって、
請求項1~11のいずれか一項に記載の方法を行うように構成されている処理回路機構を含む、装置。
【請求項13】
少なくとも1つのプロセッサによって実行されるときに、前記少なくとも1つのプロセッサに、請求項1~11のいずれか一項に記載の方法を行わせる、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、2022年2月7日に出願された米国仮出願第63/307,522号「ADAPTIVE CABAC INITIAL STATE SELECTION FROM CODED PICTURES」に対する優先権の利益を主張する、2022年11月11日に出願された米国仮出願第17/985,809号「ADAPTIVE CONTEXT-BASED ADAPTIVE BINARY ARITHMETIC CODING (CABAC) INITIAL STATE SELECTION FROM CODED PICTURES」に対する優先権の利益を主張する。先の出願の開示全体は、それら全体が参照により本明細書に援用される。
【0002】
本開示は、ビデオコーディングに一般的に関連する実施形態を記載する。
【背景技術】
【0003】
本明細書で提供される背景技術は、本開示の文脈を一般的に提示することを目的とする。本件の発明者の仕事は、その仕事がこの背景技術のセクションに記載されている範囲において、また、出願時に他の点では先行技術として適格でないかもしれない説明の態様は、本開示に対する先行技術として明示的にも暗示的にも認められていない。
【0004】
非圧縮デジタル画像及び/又はビデオは、一連のピクチャを含むことができ、各ピクチャは、例えば、1920×1080の輝度サンプル及び関連する色差サンプルの空間寸法を有する。一連のピクチャは、例えば、例えば、1秒当たり60ピクチャ/秒又は60Hzの固定又は可変のピクチャレートを有することができる。非圧縮画像及び/又はビデオは、特定のビットレート要件を有する。例えば、サンプル当たり8ビットでの1080p60 4:2:0ビデオ(60Hzのフレームレートでの1920x1080の輝度サンプル解像度)は、1.5Gbit/sに近い帯域幅を必要とする。このようなビデオの1時間は、600Gバイトを超える記憶空間を必要とする。
【0005】
画像及び/又はビデオコーディング及びデコーディングの1つの目的は、圧縮による入力ビデオ信号の冗長性の低減である。圧縮は、場合によっては、前述の帯域幅及び/又は記憶空間の必要性を2桁以上低減する助けとなり得る。本明細書における説明では、例示的な例としてビデオエンコーディング/デコーディングを使用しているが、本開示の精神から逸脱することなく、同様の方式で同じ技法を画像エンコーディング/デコーディングに適用することができる。可逆圧縮及び不可逆圧縮の両方、並びにそれらの組み合わせが用いられ得る。可逆圧縮とは、元の信号の正確なコピーを圧縮された元の信号から再構成することができる技法を指す。不可逆圧縮を使用するときに、再構成された信号は、元の信号と同一ではないことがあるが、元の信号と再構成された信号との間の歪みは、再構成された信号を意図されたアプリケーションに有用にするのには十分小さい。ビデオの場合、不可逆圧縮が広く用いられる。認容される歪みの量は、用途に依存し、例えば、特定の消費者ストリーミングアプリケーションのユーザは、テレビ配信アプリケーションのユーザよりも高い歪みを認容することがある。達成可能な圧縮比は、より高い許容可能/認容可能な歪みは、より高い圧縮比をもたらすことができることを反映できる。
【0006】
ビデオエンコーダ及びデコーダは、例えば、動き補償、変換処理、量子化、及びエントロピーコーディングを含むいくつかの広範なカテゴリからの技法を利用することができる。
【0007】
ビデオコーデック技術は、イントラコーディングとして知られる技法を含むことができる。イントラコーディングでは、サンプル値は、先行して再構成された参照ピクチャからのサンプル又は他のデータを参照することなく表現される。いくつかのビデオコーデックでは、ピクチャは空間的にサンプルのブロックに細分化される。サンプルの全てのブロックがイントラモードでコーディングされるときに、そのピクチャはイントラピクチャとすることができる。イントラピクチャと、独立デコーダリフレッシュピクチャのようなそれらの派生物は、デコーダ状態をリセットするために使用することができ、したがって、コーディングされたビデオビットストリーム及びビデオセッションにおける最初のピクチャとして、又は静止画像として使用され得る。イントラブロックのサンプルを変換に曝すことができ、変換係数がエントロピーコーディングの前に量子化され得る。イントラ予測は、変換前ドメインにおいてサンプル値を最小化する技法であり得る。場合によっては、変換後のDC値が小さく、AC係数が小さいほど、エントロピーコーディング後のブロックを表すために所与の量子化ステップサイズで必要とされるビット数が少なくなる。
【0008】
例えば、MPEG-2世代コーディング技術で使用される伝統的なイントラコーディングは、イントラ予測を使用しない。しかしながら、いくつかのより新しいビデオ圧縮技術は、データのブロックのエンコーディング及び/又はデコーディング中に取得される周囲のサンプルデータ及び/又はメタデータに基づいて予測を行うように試みる技法を含む。このような技法は、以後「イントラ予測」技法と呼ばれる。少なくともいくつかのケースでは、イントラ予測は、再構成中のカレントピクチャからの参照データのみを使用し、参照ピクチャからの参照データは使用しないことに留意する。
【0009】
様々な形態のイントラ予測があり得る。所与のビデオコーディング技術において、そのような技法のうちの1つ以上が使用され得るときに、使用される特定の技法は、特定の技法を使用する特定のイントラ予測モードとしてコーディングされ得る。特定の場合では、イントラ予測モードは、サブモード及び/又はパラメータを有することができ、サブモード及び/又はパラメータは、個別にコーディングされ得るか、又は使用されている予測モードを定義するモードコードワードに含まれ得る。所与のモード、サブモード、及び/又はパラメータ結合に対してどのコードワードをするかは、イントラ予測を通じてコーディング効率ゲインに影響を及ぼし、また、コードワードをビットストリームに変換するために使用されるエントロピーコーディング技術にも影響を及ぼす可能性がある。
【0010】
イントラ予測の特定のモードがH.264で導入され、H.265で改良され、ジョイント探索モデル(JEM)、汎用ビデオコーディング(VVC)、及びベンチマークセット(BMS)のようなより新しいコーディング技術でさらに改良された。予測子ブロックは、既に利用可能なサンプルの隣接するサンプル値を使用して形成され得る。隣接するサンプルのサンプル値は、方向に従って予測子ブロックにコピーされる。使用される方向への参照は、ビットストリームにおいてコーディングされ得、又はそれ自体が予測されてもよい。
【0011】
図1Aを参照すると、右下に描写されているのは、H.265で定義された33個の可能な予測子方向から知られる9個の予測子方向のサブセットである(35個のイントラモードの33個の角度モードに対応する)。矢印が収束する点(101)は、予測されるサンプルを表す。矢印は、サンプルが予測されている方向を表す。例えば、矢印(102)は、サンプル(101)が、水平から45度の角度で、サンプル又は複数のサンプルから右上に向かって予測されることを示す。例えば、矢印(103)は、サンプル(101)が、水平から22.5度の角度で、サンプル又は複数のサンプルから左下に向かって予測されることを示す。
【0012】
引き続き
図1Aを参照すると、左上には、4×4サンプルの正方形ブロック(104)が描写されている(破線の太線で示されている)。正方形ブロック(104)は、16個のサンプルを含み、各サンプルは、「S」、Y次元におけるその位置(例えば、行インデックス)、及びX次元におけるその位置(例えば、列インデックス)がラベル付けされている。例えば、サンプルS21は、Y次元における(上から)2番目のサンプルで、X次元における(左から)1番目のサンプルである。同様に、サンプルS44は、Y及びX次元の両方においてブロック(104)における第4のサンプルである。ブロックのサイズが4×4サンプルであるので、S44は右下にある。さらに、同様の番号付けスキームに従った参照サンプルを示す。参照サンプルは、ブロック(104)に対して、R、そのY位置(例えば、行インデックス)、及びX位置(列インデックス)でラベル付けされている。H.264とH.265の両方では、予測サンプルは再構成中のブロックに隣接しているため、負の値を使用する必要はない。
【0013】
イントラピクチャ予測は、シグナリングされた予測方向によって示される隣接するサンプルから参照サンプル値をコピーすることによって動くことができる。例えば、コーディングされたビデオビットストリームは、このブロックについて、矢印(102)と一致する予測方向を示すシグナリングを含むと仮定する。すなわち、サンプルは、水平方向から45度の角度における右上のサンプルから予測される。その場合、サンプルS41、S32、S23、及びS14は、同じ参照サンプルR05から予測される。次いで、サンプルS44は、参照サンプルR08から予測される。
【0014】
特定の場合には、特に方向が45度で均一に割り切れないときに、参照サンプルを計算するために、複数の参照サンプルの値が、例えば補間を通して組み合わせられてもよい。
【0015】
ビデオコーディング技術の発達に伴い、可能な方向の数が増加している。H.264(2003年)では、9個の異なる方向を表すことができた。これは、H.265(2013年)において、33個に増加した。現在、JEM/VVC/BMSは、最大65個の方向をサポートすることができる。最も可能性の高い方向を識別するために実験が行われ、エントロピーコーディングにおける特定の技法が、より可能性の低い方向に対する特定のペナルティを許容して、少数のビットでそれらの可能性のある方向を表すために使用される。さらに、方向それ自体は、時として、隣接する、すでにデコードされたブロックで使用される隣接方向から予測され得る。
【0016】
図1Bは、経時的に増加する予測方向の数を示すために、JEMによる65のイントラ予測方向を描写する概略(110)を示す。
【0017】
コーディングされたビデオビットストリームにおける方向を表すイントラ予測方向ビットのマッピングは、ビデオコーディング技術ごとに異なる可能性がある。そのようなマッピングは、例えば、単純な直接マッピングからコードワードへ、最も可能性の高いモードを伴う複雑な適応スキーム、及び同様の技法に及ぶ可能性がある。しかしながら、ほとんどの場合、ビデオコンテンツにおいて、特定の他の方向よりも統計的に発生しにくい特定の方向があり得る。ビデオ圧縮の目標は冗長性の低減であるため、良好に動くビデオコーディング技術では、より可能性の高い方向よりもより多くのビット数によって、より可能性の低い方向が表される。
【0018】
画像及び/又はビデオコーディングとデコーディングは、動き補正によるインターピクチャ予測を使用して行われ得る。動き補償は、非可逆圧縮技法であり得、先行して再構成されたピクチャ又はその一部(参照ピクチャ)からのサンプルデータのブロックが、動きベクトル(以降、MV)によって示される方向に空間的にシフトされた後に、新しい再構成ピクチャ又はピクチャパーティションの予測のために使用される技法に関連することができる。場合によっては、参照ピクチャが、現在再構成中のピクチャと同じである可能性がある。MVは、X及びYの2次元、又は3次元を有し、第3の次元は、使用中の参照ピクチャの指標である(後者は、間接的に、時間次元であり得る)。
【0019】
いくつかのビデオ圧縮技法では、サンプルデータの所定のエリアに適用可能なMVは、他のMV、例えば、再構成中のエリアに空間的に近接し、デコーディング順でそのMVに先行するサンプルデータの別のエリアに関連するMVから予測され得る。そのようにすることによって、MVをコーディングするために必要なデータ量を大幅に低減することができ、それによって冗長性を除去し、圧縮を増加させる。MV予測は、例えば、カメラから導出された入力ビデオ信号(ナチュラルビデオとして知られる)をコーディングするときに、単一のMVが適用可能なエリアよりも大きなエリアが同様の方向に移動する統計的見込みがあり、場合によっては、隣接するエリアのMVから導出される同様の動きベクトルを用いて予測され得るため、効果的に動くことができる。これは、所与のエリアに対して、周囲のMVから予測されるMVと類似するか、又は同じであることが見出されるMVをもたらし、それは、エントロピーコーディングの後に、MVを直接コーディングする場合に使用されるであろうものよりも、より少ない数のビットで表され得る。場合によっては、MV予測は、元の信号(すなわち、サンプルストリーム)から導出された信号の可逆圧縮の一例(すなわち、MV)であり得る。他の場合には、MV予測それ自体は、例えば、いくつかの周囲のMVから予測子を計算するときの丸め誤差のために、不可逆的であり得る。
【0020】
様々なMV予測メカニズムが、H.265/HEVC
(ITU-T Rec.H.265,「High Efficiency Video Coding」,2016年12月)において記載されている。H.265が提供する多くのMV予測メカニズムのうち、
図2を参照して記載されているのは、以降、「空間マージ」と呼ばれる技法である。
【0021】
図2を参照すると、カレントブロック(201)は、空間的にシフトされた同じサイズの先行するブロックから予測可能であることが動き探索処理中にエンコーダによって見つけられたサンプルを含む。MVを直接コーディングする代わりに、MVは、1つ以上の参照ピクチャに関連付けられたメタデータから、例えば、A0、A1、及びB0、B1、B2(それぞれ202から206)と示される5つの周囲のサンプルのうちのいずれかに関連付けられたMVを使用して、(デコーディング順で)最新の参照ピクチャから導出され得る。H.265では、MV予測は、隣接するブロックが使用しているのと同じ参照ピクチャからの予測子を使用することができる。
【発明の概要】
【0022】
本開示の態様は、ビデオ及び/又は画像エンコーディング/デコーディングのための方法及び装置を提供する。いくつかの例では、ビデオ/画像デコーディングための装置は、処理回路機構を含む。処理回路機構は、カレントピクチャ及び先行するピクチャを含むビットストリームを受信する。先行するピクチャは複数の領域を含み、複数の領域の各領域は、エントロピーコーディングされる。処理回路機構は、複数の領域の各エントロピーコーディングされた領域に関連付けられた先行する確率情報を判定する。処理回路機構は、(i)カレントピクチャ内の独立にデコーディング可能なコーディングセグメントの場所若しくは量子化パラメータ、又は(ii)独立にデコーディング可能なコーディングセグメントの構文情報に基づいて、先行するピクチャ内の複数の領域の中から領域を選択し、デコーディング可能なコーディングセグメントは、(i)カレントピクチャ又は(ii)カレントピクチャ内部の領域である。処理回路機構は、独立にデコーディング可能なコーディングセグメント内のブロックの1つ以上のカレント構文要素をエントロピーデコーディングするための初期確率情報を、選択された領域をエントロピーデコーディングすることに関連付けられ判定された先行する確率情報に基づいて判定する。一例では、1つ以上のカレント構文要素は、最初に、独立にデコーディング可能なコーディングセグメント内の構文要素の中からエントロピーデコーディングされる。処理回路機構は、1つ以上のカレント構文要素に関連付けられたコーディングされたビットを、初期確率情報及びコーディングされたビットの確率推定モデルに基づいて、1つ以上のカレント構文要素に関連付けられたビンストリングにエントロピーデコーディングする。
【0023】
一実施形態では、先行するピクチャ内の複数の領域は、先行するピクチャの4つのコーナーと中央にそれぞれ位置するコーディングツリーユニット(CTU)を含む。カレントピクチャは、4つのコーナー領域と1つの中央領域と、を含む。処理回路機構は、ブロックがカレントピクチャの4つのコーナー領域のうちの1つに位置することに基づいて、先行するピクチャの4つのコーナーのうちの1つに位置するCTUを選択する。4つのコーナーのうちの1つに位置するCTUは、選択した領域内にあり得る。処理回路機構は、ブロックがカレントピクチャの中央領域に位置することに基づいて、先行するピクチャの中央に位置するCTUを選択する。中央に位置するCTUは、選択した領域内にあり得る。
【0024】
一例では、独立にデコーディング可能なコーディングセグメントは、カレントピクチャ内のイントラスライス(Iスライス)、双予測スライス(Bスライス)、及び予測スライス(Pスライス)のうちの1つである。
【0025】
一例では、独立にデコーディング可能なコーディングセグメントは、カレントピクチャである。処理回路機構は、複数の領域のうちどの領域が選択されるかを示す構文情報に基づいて、領域を選択する。
【0026】
一例では、構文情報は、複数の領域のうちどの領域が選択されるかを示すインデックスを含む。処理回路機構は、インデックスに基づいて領域を選択する。
【0027】
一例では、処理回路機構は、選択された領域をエントロピーデコーディングするための確率推定モデルに基づいて、確率推定モデルにおける1つ以上のパラメータを取得する。
【0028】
一例では、1つ以上のパラメータは、ビンストリングの複数の確率推定値に関連付けられた適応レート及び適応重みを含む。各確率推定値に関連付けられた適応レートの各々は、ビンストリングに対する2つの近接する確率間の量子化ステップサイズを示す。
【0029】
一例では、処理回路機構は、先行するピクチャに関連付けられた階層的時間構造における第1のレベルが、カレントピクチャに関連付けられた階層的時間構造における第2のレベルよりも低くなるように、ビットストリーム内の複数のピクチャから先行するピクチャを選択する。第1のレベルの各ピクチャは、第2のレベルにおける1つ以上のピクチャの各々をデコーディングする前にデコーディングされている。
【0030】
一例では、処理回路機構は、判定された先行する確率情報を、先行するピクチャの各領域をエントロピーデコーディングするために使用される判定された先行する確率情報の第2の量子化精度よりも低い第1の量子化精度で記憶する。処理回路機構は、第1の量子化精度で記憶され判定された先行する確率情報に基づいて初期確率情報を判定する。
【0031】
一例では、ビットストリーム内のフラグは、初期確率情報が、先行するピクチャから判定された先行する確率情報に基づいて判定されることを示す。
【0032】
一例では、確率推定モデルは、コンテキスト適応モデルである。処理回路機構は、コーディングされたビットを、CABAC(context-adaptive binary arithmetic coding、コンテキスト適応二値算術コーディング)でエントロピーデコーディングする。
【0033】
本開示の態様はまた、命令を記憶する非一時的なコンピュータ可読媒体を提供し、命令は、ビデオ/画像デコーディングのためにコンピュータによって実行されるときに、コンピュータにビデオ/画像デコーディングのための方法を行わせる。
【図面の簡単な説明】
【0034】
開示された主題のさらなる特徴、性質、及び様々な利点は、以下の詳細な説明及び添付の図面からより明らかになるであろう。
【0035】
【
図1A】イントラ予測モードの例示的なサブセットの概略図である。
【0036】
【0037】
【
図2】カレントブロック(201)と周辺サンプルの一例を示す。
【0038】
【
図3】通信システム(300)の例示的なブロック図の概略図である。
【0039】
【
図4】通信システム(400)の例示的なブロック図の概略図である。
【0040】
【
図5】デコーダの例示的なブロック図の概略図である。
【0041】
【
図6】エンコーダの例示的なブロック図の概略図である。
【0042】
【0043】
【0044】
【0045】
【0046】
【
図11】カレント位置に対応するカレントビンのコンテキスト選択に使用されるローカルテンプレートの一例を示す。
【0047】
【
図12A】一実施形態による、例示的なコンテキストベース適応二値算術コーディング(CABAC)ベースのエントロピーエンコーダを示す。
【0048】
【
図12B】一実施形態による、例示的なCABACベースのエントロピーデコーダを示す。
【0049】
【
図13】エンコーダで使用されるCABACの一例を示す。
【0050】
【
図14】参照ピクチャからのコンテキスト状態を使用するカレントピクチャのCABAC初期化の一例を示す。
【0051】
【
図15】カレントピクチャと参照ピクチャとの間の領域ベースのCABACコンテキスト状態初期化マッピングの一例を示す。
【0052】
【0053】
【
図17】本開示のいくつかの実施形態による、エンコーディング処理を概説するフローチャートを示す。
【0054】
【
図18】本開示のいくつかの実施形態による、デコーディング処理を概説するフローチャートを示す。
【0055】
【
図19】一実施形態によるコンピュータシステムの概略図である。
【発明を実施するための形態】
【0056】
図3は、通信システム(300)の例示的なブロック図を例示する。通信システム(300)は、例えばネットワーク(350)を介して互いに通信することができる複数の端末デバイスを含む。例えば、通信システム(300)は、ネットワーク(350)を介して相互接続された第1の対の端末デバイス(310)及び(320)を含む。
図3の例では、第1の対の端末デバイス(310)及び(320)は、データの一方向伝送を行う。例えば、端末デバイス(310)は、ネットワーク(350)を介した他の端末デバイス(320)への伝送のために、ビデオデータ(例えば、端末デバイス(310)によってキャプチャされるビデオピクチャのストリーム)をコーディングしてもよい。エンコーディングされたビデオデータは、1つ以上のコーディングされたビデオビットストリームの形態で送信され得る。端末デバイス(320)は、ネットワーク(350)からコーディングされたビデオデータを受信し、コーディングされたビデオデータをデコーディングして、ビデオピクチャを復元し、復元されたビデオデータに従ってビデオピクチャを表示してもよい。一方向性データ伝送は、メディアサービスアプリケーションなどにおいて一般的である。
【0057】
別の例では、通信システム(300)は、例えば、ビデオ会議中のコーディングされたビデオデータの双方向伝送を行う第2の対の端末デバイス(330)及び(340)を含む。データの双方向伝送のために、一例では、端末デバイス(330)及び(340)の各端末デバイスは、ネットワーク(350)を介した端末デバイス(330)及び(340)の他方の端末デバイスへの伝送のために、ビデオデータ(例えば、端末デバイスによってキャプチャされるビデオピクチャのストリーム)をコーディングしてもよい。端末デバイス(330)及び(340)の各端末デバイスはまた、端末デバイス(330)及び(340)の他方の端末デバイスによって送信されたコーディングされたビデオデータを受信してもよく、コーディングされたビデオデータをデコーディングして、ビデオピクチャを復元し、復元されたビデオデータに従って、アクセス可能なディスプレイデバイスにビデオピクチャを表示してもよい。
【0058】
図3の例において、端末デバイス(310)、(320)、(330)及び(340)は、それぞれ、サーバ、パーソナルコンピュータ及びスマートフォンとして示されてもよいが、本開示の原理は、それらに限定されない。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤ、及び/又は専用のビデオ会議機器を用いてアプリケーションを見出す。ネットワーク(350)は、例えば、有線及び/又は無線通信ネットワークを含む、端末デバイス(310)、(320)、(330)及び(340)間でコーディングされたビデオデータを搬送する任意の数のネットワークを表す。通信ネットワーク(350)は、回線交換及び/又はパケット交換チャネルにおいてデータを交換することができる。代表的なネットワークは、電気通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク及び/又はインターネットを含む。本説明の目的のために、ネットワーク(350)のアーキテクチャ及びトポロジーは、以下に説明しない限り、本開示の動作には重要ではない。
【0059】
図4は、開示された主題のアプリケーションの一例として、ストリーミング環境におけるビデオエンコーダ及びビデオデコーダを例示する。開示された主題は、例えば、ビデオ会議、デジタルTV、ストリーミングサービス、CD、DVD、メモリスティックなどを含むデジタルメディアへの圧縮されたビデオの記憶などを含む、他のビデオ可能化アプリケーションに等しく適用可能とすることができる。
【0060】
ストリーミングシステムは、例えば圧縮されていないビデオピクチャのストリーム(402)を作成するビデオソース(401)、例えばデジタルカメラを含むことができるキャプチャサブシステム(413)を含んでもよい。一例では、ビデオピクチャのストリーム(402)は、デジタルカメラによって撮影されるサンプルを含む。エンコーディングされたビデオデータ(404)(又はコーディングされたビデオビットストリーム)と比較されたときに、高データ量を強調する太い線として描写されたビデオピクチャのストリーム(402)は、ビデオソース(401)に結合されたビデオエンコーダ(403)を含む電子デバイス(420)によって処理され得る。ビデオエンコーダ(403)は、ハードウェア、ソフトウェア、又はそれらの組み合わせを含むことができ、以下により詳細に記載されるように、開示された主題の態様を可能にするか、又は実装する。エンコーディングされたビデオデータ(404)(又はエンコーディングされたビットストリーム)は、ビデオピクチャ(402)のストリームと比較されるときに、より低いデータボリュームを強調するために細いラインとして描写されており、将来の使用のためにストリーミングサーバ(405)に記憶され得る。
図4のクライアントサブシステム(406)及び(408)などの1つ以上のストリーミングクライアントサブシステムは、ストリーミングサーバ(405)にアクセスして、エンコーディングされたビデオデータ(404)の複製(407、409)を取得することができる。クライアントサブシステム(406)は、例えば電子デバイス(430)内にビデオデコーダ(410)を含むことができる。ビデオデコーダ(410)は、エンコーディングされたビデオデータの入って来るコピー(407)をデコードし、ディスプレイ(412)(例えば、ディスプレイスクリーン)又は他のレンダリングデバイス(描写せず)上にレンダリングされ得るビデオピクチャの出て行くストリーム(411)を作成する。いくつかのストリーミングシステムでは、エンコーディングされたビデオデータ(404)、(407)、及び(409)(例えば、ビデオビットストリーム)は、特定のビデオコーディング/圧縮標準に従ってエンコーディングされ得る。これらの標準の例は、ITU-T勧告H.265を含む。一例では、開発中のビデオコーディング標準は、VVC(Versatile Video Coding)と非公式に知られている。開示された主題事項は、VVCの文脈で使用され得る。
【0061】
電子デバイス(420)及び(430)は、他のコンポーネント(図示せず)を含むことができることに留意する。例えば、電子デバイス(420)は、ビデオデコーダ(図示せず)を含むことができ、電子デバイス(430)は、ビデオエンコーダ(図示せず)も含むことができる。
【0062】
図5は、ビデオデコーダ(510)の例示的なブロック図を示す。ビデオデコーダ(510)は、電子デバイス(530)に含まれ得る。電子デバイス(530)は、受信機(531)(例えば、受信回路機構)を含むことができる。ビデオデコーダ(510)は、
図4の例におけるビデオデコーダ(410)の代わりに使用され得る。
【0063】
受信機は、ビデオデコーダ(510)によるデコーディング対象の1つ以上のコーディングされたビデオシーケンスを受信してもよい。一実施形態では、一度に1つのコーディングされたビデオシーケンスが受信され、各コーディングされたビデオシーケンスのデコーディングは、他のコーディングされたビデオシーケンスのデコーディングから独立している。コーディングされたビデオシーケンスは、チャネル(501)から受信してもよく、このチャネルは、エンコーディングされたビデオデータを記憶する記憶デバイスへのハードウェア/ソフトウェアリンクであってもよい。受信機(531)は、エンコーディングされたビデオデータを、他のデータ、例えば、コーディングされたオーディオデータ及び/又は補助的なデータストリームと共に受信してもよく、これらのデータは、それぞれのエンティティ(描写せず)を使用して転送されてもよい。受信機(531)は、コーディングされたビデオシーケンスを他のデータから分離してもよい。ネットワークジッタと闘うために、バッファメモリ(515)は、受信機(531)とエントロピーデコーダ/解析器(520)(以後「解析器(520)」)との間で結合されてもよい。特定の用途では、バッファメモリ(515)は、ビデオデコーダ(510)の一部である。他の場合には、ビデオデコーダ(510)の外にあり得る(描写せず)。さらに別の場合では、例えばネットワークジッタに対抗するために、ビデオデコーダ(510)の外にバッファメモリ(描写せず)があり得、追加的に、例えば再生タイミングを処理するために、ビデオデコーダ(510)の内に別のバッファメモリ(515)があり得る。受信機(531)が、十分な帯域幅及び制御可能性を有する記憶/転送装置から、又はアイソクロナスネットワークからデータを受信しているときに、バッファ(515)は、不要であってもよく、又は小さくすることができる。インターネットのようなベストエフォート型パケットネットワークでの使用の場合、バッファメモリ(515)は、必要とされてもよく、比較的大きくすることができ、有利には適応サイズであり得、ビデオデコーダ(510)の外のオペレーティングシステム又は類似の要素(描写せず)に少なくとも部分的に実装されてもよい。
【0064】
ビデオデコーダ(510)は、コーディングされたビデオシーケンスからシンボル(521)を再構成するための解析器(520)を含んでもよい。それらのシンボルのカテゴリは、ビデオデコーダ(510)の動作を管理するために使用される情報、及びレンダリングデバイス(512)(例えば、ディスプレイスクリーン)のような、電子デバイス(530)の不可欠な部分ではないが、
図5に示されているように、電子デバイス(530)に結合され得るレンダリングデバイスを制御するための潜在的な情報を含む。レンダリングデバイスの制御情報は、SEI(Supplemental Enhancement Information、補足強化情報)メッセージ又はVUI(Video Usability Information、ビデオユーザビリティ情報)パラメータセットフラグメント(描写せず)の形態であってもよい。解析器(520)は、受信したコーディングされたビデオシーケンスを解析/エントロピーデコーディングしてもよい。コーディングされたビデオシーケンスのコーディングは、ビデオコーディング技術又は標準に従うことができ、可変長コーディング、ハフマンコーディング、コンテキストセンシティビティを伴う又は伴わない算術コーディングなどを含む様々な原理に従うことができる。解析器(520)は、グループに対応する少なくとも1つのパラメータに基づいて、コーディングされたビデオシーケンスから、ビデオデコーダにおける画素のサブグループのうちの少なくとも1つのサブグループパラメータのセットを抽出してもよい。サブグループは、ピクチャグループ(GOP)、ピクチャ、タイル、スライス、マクロブロック、コーディングユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)などを含むことができる。解析器(520)はまた、コーディングされたビデオシーケンスから、変換係数、量子化パラメータ値、動きベクトルなどの情報を抽出してもよい。
【0065】
解析器(520)は、シンボル(521)を作成するために、バッファメモリ(515)から受信したビデオシーケンスに対してエントロピーデコーディング/解析動作を行ってもよい。
【0066】
シンボル(521)の再構成は、コーディングされたビデオピクチャ又はその部分(例えば、インターピクチャ及びイントラピクチャ、インターブロック及びイントラブロック)のタイプ及び他の要因に応じて、複数の異なるユニットに関与することができる。どのユニットが関与し、どのように関与するかは、解析器(520)によって、コーディングされたビデオシーケンスから解析されたサブグループ制御情報によって制御され得る。解析器(520)と以下の複数ユニットとの間のこのようなサブグループ制御情報のフローは、明確にするために描写されない。
【0067】
すでに述べた機能ブロックの他に、デコーダ(510)は、概念的には、後述するように、いくつかの機能ユニットに細分化され得る。商業的制約の下で動作する実用的な実装では、これらのユニットの多くは互いに密接に相互作用し、少なくとも部分的に互いに統合することができる。しかしながら、開示された主題を説明するためには、以下の機能ユニットに概念的に細分化することが適切である。
【0068】
第1のユニットは、スケーラ/逆変換ユニット(551)である。スケーラ/逆変換ユニット(551)は、解析器(520)からのシンボル(521)として、使用するべき変換、ブロックサイズ、量子化因子、量子化スケーリング行列などを含む制御情報とともに、量子化された変換係数を受信する。スケーラ/逆変換ユニット(551)は、アグリゲータ(555)に入力することができるサンプル値を含むブロックを出力することができる。
【0069】
場合によっては、スケーラ/逆変換ユニット(551)の出力サンプルは、イントラコーディングブロックに関係することができる。イントラコーディングブロックは、先行して再構成されたピクチャからの予測情報を使用していないが、カレントピクチャの先行して再構成された部分からの予測情報を使用することができるブロックである。このような予測情報は、イントラピクチャ予測ユニット(552)によって提供され得る。場合によっては、イントラピクチャ予測ユニット(552)は、カレントピクチャバッファ(558)からフェッチされ既に再構成された周囲の情報を使用して、再構成中のブロックの同じサイズ及び形状のブロックを生成する。カレントピクチャバッファ(558)は、例えば、部分的に再構成されたカレントピクチャ及び/又は完全に再構成されたカレントピクチャをバッファする。アグリゲータ(555)は、場合によっては、サンプルごとベースで、イントラ予測ユニット(552)が生成した予測情報を、スケーラ/逆変換ユニット(551)によって提供される出力サンプル情報に追加する。
【0070】
他の場合には、スケーラ/逆変換ユニット(551)の出力サンプルは、インターコーディングされ、潜在的に動き補償ブロックに関係することができる。このような場合には、動き補償予測ユニット(553)は、参照ピクチャメモリ(557)にアクセスして、予測のために使用されるサンプルをフェッチすることができる。ブロックに関係するシンボル(521)に従って、フェッチされたサンプルの動き補償後、これらのサンプルは、アグリゲータ(555)によって、出力サンプル情報を生成するために、スカラー/逆変換ユニット(551)の出力(この場合、残差サンプル又は残差信号と呼ばれる)に追加され得る。動き補償ユニット(553)が予測サンプルをフェッチする参照ピクチャメモリ(557)内のアドレスは、例えばX、Y、及び参照ピクチャコンポーネントを有することができるシンボル(521)の形態で動き補償ユニットに利用可能な動きベクトルによって制御され得る。動き補償はまた、サブサンプルの正確な動きベクトルが使用されるときの参照ピクチャメモリ(557)からフェッチされるサンプル値の補間、動きベクトル予測メカニズムなどを含むことができる。
【0071】
アグリゲータ(555)の出力サンプルは、ループフィルタユニット(556)内の様々なループフィルタリング技法を受けることができる。ビデオ圧縮技術は、コーディングされたビデオシーケンス(コーディングされたビデオビットストリームとも呼ばれる)に含まれるパラメータによって制御され、かつ解析器(520)からシンボル(521)としてループフィルタユニット(556)に利用可能にされるインループ内フィルタ技術を含むことができる。ビデオ圧縮はまた、コーディングされたピクチャ又はコーディングされたビデオシーケンスの(デコーディング順序で)先行する部分のデコーディング中に取得されたメタ情報に応答し、かつ先行して再構成されループフィルタ処理されたサンプル値に応答することもできる。
【0072】
ループフィルタユニット(556)の出力は、レンダリングデバイス(512)に出力し、また将来のインターピクチャ予測に使用するために参照ピクチャメモリ(557)に記憶することができるサンプルストリームとすることができる。
【0073】
特定のコーディングされたピクチャが完全に再構成されると、将来の予測のための参考ピクチャとして使用され得る。例えば、カレントピクチャに対応するコーディングされたピクチャが完全に再構成され、かつコーディングされたピクチャが参照ピクチャとして識別されると(例えば、解析器(520)によって)、カレントピクチャバッファ(558)は、参照ピクチャメモリ(557)の一部となることができ、新鮮なカレントピクチャバッファが、後でコーディングされるピクチャの再構成を開始する前に再割り当てされ得る。
【0074】
ビデオデコーダ(510)は、ITU-T Rec.H.265などの所定のビデオ圧縮技術又は標準に従ってデコーディング動作を行ってもよい。
コーディングされたビデオシーケンスは、コーディングされたビデオシーケンスが、ビデオ圧縮技術又は標準の構文及びビデオ圧縮技術又は標準に文書化されているプロファイルの両方に従うという意味で、使用されているビデオ圧縮技術又は標準によって指定された構文に適応してもよい。具体的には、プロファイルは、特定のツールを、そのプロファイルの下での使用に利用可能な唯一のツールとして、ビデオ圧縮技術又は標準で利用可能な全てのツールから選択することができる。また、コンプライアンスのために必要なことは、コーディングされたビデオシーケンスの複雑さが、ビデオ圧縮技術又は標準のレベルによって定義される範囲内にあることとし得る。場合によっては、レベルは、最大ピクチャサイズ、最大フレームレート、最大再構成サンプルレート(例えば、毎秒メガサンプルで測定される)、最大参照ピクチャサイズなどを制限する。レベルによって設定された制限は、場合によっては、HRD(Hypothetical Reference Decoder、仮想参照デコーダ)仕様及びコーディングされたビデオシーケンスでシグナリングされるHRDバッファ管理のためのメタデータを介してさらに制限され得る。
【0075】
一実施形態では、受信機(531)は、エンコーディングされたビデオと共に追加の(冗長な)データを受信してもよい。追加のデータは、コーディングされたビデオシーケンスの一部として含まれてもよい。追加のデータは、データを適切にデコーディングするため、及び/又は元のビデオデータをより正確に再構成するために、ビデオデコーダ(510)によって使用されてもよい。追加のデータは、例えば、時間的、空間的、又は信号雑音比(SNR)強化層、冗長スライス、冗長ピクチャ、前方エラー補正コードなどの形態のものであり得る。
【0076】
図6は、ビデオエンコーダ(603)の例示的なブロック図を示す。ビデオエンコーダ(603)は、電子デバイス(620)に含まれる。電子デバイス(620)は、送信機(640)(例えば、送信回路機構)を含む。ビデオエンコーダ(603)は、
図4の例におけるビデオエンコーダ(403)の代わりに使用され得る。
【0077】
ビデオエンコーダ(603)は、ビデオエンコーダ(603)によるコーディング対象のビデオ画像をキャプチャし得るビデオソース(601)(
図6の例では電子デバイス(620)の一部ではない)からビデオサンプルを受信してもよい。別の例では、ビデオソース(601)は、電子デバイス(620)の一部である。
【0078】
ビデオソース(601)は、任意の好適なビット深さ(例えば、8ビット、10ビット、12ビット、...)、任意の色空間(例えば、BT.601 YCrCB、RGB、...)、及び任意の好適なサンプリング構造(例えば、YCrCb 4:2:0、YCrCb 4:4:4)のうちのものとすることができるデジタルビデオサンプルストリームの形態で、ビデオエンコーダ(603)によるコーディング対象のソースビデオシーケンスを提供してもよい。メディアサービスシステムにおいて、ビデオソース(601)は、先行して準備されたビデオを記憶する記憶デバイスであってもよい。ビデオ会議システムでは、ビデオソース(601)は、ローカル画像情報をビデオシーケンスとしてキャプチャするカメラであってもよい。ビデオデータは、シーケンスで見たときに動きを与える複数の個々のピクチャとして提供されてもよい。ピクチャ自体は、画素の空間アレイとして編成されてもよく、各画素は、使用中のサンプリング構造、色空間などに応じて、1つ以上のサンプルを含むことができる。当業者は、画素とサンプルとの関係を容易に理解することができる。以下の説明は、サンプルに焦点を当てる。
【0079】
一実施形態によれば、ビデオエンコーダ(603)は、ソースビデオシーケンスのピクチャを、リアルタイムで、又は必要に応じて任意の他の時間制約下で、コーディングされたビデオシーケンス(643)にコーディング及び圧縮してもよい。適切なコーディング速度を実施することは、コントローラ(650)の1つの機能である。いくつかの実施形態において、コントローラ(650)は、以下に記載のように他の機能ユニットを制御し、他の機能ユニットに機能的に結合される。結合は、明確にするために描写されていない。コントローラ(650)によって設定されるパラメータは、レート制御関連パラメータ(ピクチャスキップ、量子化子、レート歪み最適化技法のラムダ値、…)、ピクチャサイズ、ピクチャグループ(GOP)レイアウト、最大動きベクトル探索範囲などを含むことができる。コントローラ(650)は、特定のシステム設計のために最適化された、ビデオエンコーダ(603)に関係する他の好適な機能を有するように構成され得る。
【0080】
いくつかの実施形態では、ビデオエンコーダ(603)は、コーディングループで動作するように構成されている。かなり単純化した説明として、一例では、コーディングループは、ソースコーダ(630)(例えば、コーディング対象の入力ピクチャ及び参照ピクチャに基づいて、シンボルストリームなどのシンボルを生成することを担当する)と、ビデオエンコーダ(603)に埋め込まれた(ローカル)デコーダ(633)と、を含むことができる。デコーダ633は、(リモート)デコーダが作成するのと同様の方式でサンプルデータを作成するためにシンボルを再構成する。再構成サンプルストリーム(サンプルデータ)は、参照ピクチャメモリ(634)に入力される。シンボルストリームのデコーディングは、デコーダの場所(ローカル又はリモート)に依存しないビット単位で正確な結果をもたらすので、参照ピクチャメモリ(634)における内容も、ローカルエンコーダとリモートエンコーダとの間では、ビット単位で正確である。言い換えると、エンコーダの予測部分は、デコーダがデコーディング中に予測を使用するときに「見る」のとまったく同じサンプル値を参照ピクチャサンプルとして「見る」。参照ピクチャ同期性のこの基本原理(例えば、チャンネルエラーにより同期性を維持することができない場合、ドリフトが結果として生じる)が、同様にいくつかの関連技術で使用される。
【0081】
「ローカル」デコーダ(633)の動作は、ビデオデコーダ(510)のような「リモート」デコーダのものと同じにすることができ、これは、
図5と併せて既に詳細に上述されている。また
図5を簡単に参照すると、シンボルが利用可能であり、エントロピーコーダ(645)及び解析器(520)によって、コーディングされたビデオシーケンスへのシンボルのエンコーディング/デコーディングが可逆とすることができるので、バッファメモリ(515)及び解析器(520)を含むビデオデコーダ(510)のエントロピーデコーディング部分は、ローカルデコーダ(633)に完全には実装されなくてもよい。
【0082】
一実施形態では、デコーダに存在する解析/エントロピーデコーディングを除くデコーダ技術は、対応するエンコーダに同一又は実質的に同一の機能形態で存在する。したがって、開示された主題はデコーダ動作に焦点を当てる。エンコーダ技術の説明は、包括的に記載されるデコーダ技術の逆であるため、省略することができる。特定のエリアでは、より詳細な説明が以下に提供される。
【0083】
動作中、いくつかの例では、ソースコーダ(630)は、「参照ピクチャ」として指定されたビデオシーケンスからの1つ以上の先行してコーディングされたピクチャを参照して、入力ピクチャを予測的にコーディングする動き補償予測コーディングを行ってもよい。このようにして、コーディングエンジン(632)は、入力ピクチャの画素ブロックと、入力ピクチャに対する予測参照として選択され得る参照ピクチャの画素ブロックとの間の差をコーディングする。
【0084】
ローカルビデオデコーダ(633)は、ソースコーダ(630)によって作成されたシンボルに基づいて、参照ピクチャとして指定され得るピクチャのコーディングされたビデオデータをデコーディングしてもよい。コーディングエンジン(632)の動作は、有利には、不可逆処理であってもよい。コーディングされたビデオデータがビデオデコーダでデコーディングされ得るときに(
図6に図示せず)、再構成されたビデオシーケンスは、典型的には、いくつかのエラーを伴うソースビデオシーケンスのレプリカであってもよい。ローカルビデオデコーダ633は、ビデオデコーダによって参照ピクチャ対して行われてもよいデコーディング処理をレプリカし、再構成された参照ピクチャが参照ピクチャメモリ(634)に記憶されるようにしてもよい。このようにして、ビデオエンコーダ(603)は、遠端ビデオデコーダによって取得されるであろう(伝送誤差が存在しない)再構成された参照ピクチャと共通のコンテンツを有する再構成された参照ピクチャのコピーを、ローカルに記憶してもよい。
【0085】
予測器(635)は、コーディングエンジン(632)について予測探索を行ってもよい。すなわち、コーディング対象の新しいピクチャの場合、予測器(635)は、(候補参照画素ブロックとして)サンプルデータ、又は新しいピクチャに対する適切な予測参照として機能する参照ピクチャ動きベクトル、ブロック形状などの特定のメタデータについて参照ピクチャメモリ(634)を探索してもよい。予測器(635)は、適切な予測参照を見つけるために、サンプルブロック対画素ブロックベースで動作してもよい。場合によっては、予測器(635)によって取得された探索結果によって判定されるように、入力ピクチャは、参照ピクチャメモリ(634)に記憶された複数の参照ピクチャから引き出された予測参照を有してもよい。
【0086】
コントローラ(650)は、例えば、ビデオデータをエンコーディングするために使用されるパラメータ及びサブグループパラメータの設定を含む、ソースコーダ(630)のコーディング動作を管理してもよい。
【0087】
前述の全ての機能ユニットの出力は、エントロピーコーダ(645)におけるエントロピーコーディングに供されてもよい。エントロピーコーダ(645)は、ハフマンコーディング、可変長コーディング、算術コーディングなどの技術に従って、可逆圧縮をシンボルに適用することによって、様々な機能ユニットによって生成されたシンボルを、コーディングされたビデオシーケンスに変換する。
【0088】
送信機(640)は、エントロピーコーダ(645)によって作成されるコーディングされたビデオシーケンスをバッファし、通信チャネル(660)を介した伝送のために準備してもよく、通信チャネル(460)は、エンコーディングされたビデオデータを記憶するであろう記憶デバイスへのハードウェア/ソフトウェアリンクであってもよい。送信機(640)は、ビデオエンコーダ(603)からのコーディングされたビデオデータを、例えばコーディングされたオーディオデータ及び/又は補助的なデータストリーム(ソースは図示せず)など、送信される他のデータとマージしてもよい。
【0089】
コントローラ(650)は、ビデオエンコーダ(603)の動作を管理してもよい。コーディングの間、コントローラ(650)は、各コーディングされたピクチャに特定のコーディングされたピクチャタイプを割り当ててもよく、これは、それぞれのピクチャに適用され得るコーディング技法に影響を及ぼしてもよい。例えば、ピクチャは、以下のピクチャタイプの1つとして割り当てられることが多い。
【0090】
イントラピクチャ(Iピクチャ)は、予測のソースとしてシーケンス内の任意の他のピクチャを使用せずに、コーディング及びデコーディングされ得るものであってもよい。いくつかのビデオコーデックは、例えば、IDR(Independent Decoder Refresh、独立デコーダリフレッシュ)ピクチャを含む、異なるタイプのイントラピクチャを許容する。当業者は、Iピクチャのこれらの変形例、並びにそれらのそれぞれのアプリケーション及び特徴を理解している。
【0091】
予測ピクチャ(Pピクチャ)は、各ブロックのサンプル値を予測するために、多くても1つの動きベクトル及び参照インデックスを使用して、イントラ予測又はインター予測を使用してコーディング及びデコーディングされ得るものであってもよい。
【0092】
双方向予測ピクチャ(Bピクチャ)は、各ブロックのサンプル値を予測するために、多くても2つの動きベクトル及び参照インデックスを使用して、イントラ予測又はインター予測を使用してコーディング及びデコーディングされ得るものであってもよい。同様に、多予測ピクチャは、1つのブロックの再構成のために、2つより多い参照ピクチャ及び関連付けられたメタデータを使用することができる。
【0093】
ソースピクチャは、一般的に、複数のサンプルブロック(例えば、それぞれ4×4、8×8、4×8、又は16×16個のサンプルのブロック)に空間的に細分化され、ブロック対ブロックベースでコーディングされてもよい。ブロックは、ブロックのそれぞれのピクチャに適用されるコーディング割り当てによって判定されるように、他の(既にコーディングされた)ブロックを参照して予測的にコーディングされてもよい。例えば、Iピクチャのブロックは、非予測的にコーディングされてもよいし、それらは、同じピクチャの既にコーディングされたブロックを参照して予測的にコーディングされてもよい(空間予測又はイントラ予測)。Pピクチャの画素ブロックは、1つの先行してコーディングされた参照ピクチャを参照して、空間的予測を介してか、又は時間的予測を介して予測的にコーディングされてもよい。Bピクチャのブロックは、1つ又は2つの先行してコーディングされた参照ピクチャを参照して、空間的予測を介してか、又は時間的予測を介してコーディングされてもよい。
【0094】
ビデオエンコーダ(603)は、ITU-T Rec.H.265.などの所定のビデオコーディング技術又は標準に従ってコーディング動作を行ってもよい。
その動作において、ビデオエンコーダ(603)は、入力ビデオシーケンスにおける時間的及び空間的冗長性を利用する予測的コーディング動作を含む様々な圧縮動作を行ってもよい。したがって、コーディングされたビデオデータは、使用されているビデオコーディング技術又は標準によって指定される構文に準拠してもよい。
【0095】
一実施形態では、送信機(640)は、エンコーディングされたビデオと共に追加のデータを送信してもよい。ソースコーダ(630)は、コーディングされたビデオシーケンスの一部としてそのようなデータを含んでもよい。追加のデータは、時間的/空間的/SNR強化層、冗長ピクチャ及びスライスなどの他の形態の冗長データ、SEIメッセージ、VUIパラメータセットフラグメントなどを含んでもよい。
【0096】
ビデオは、時間シーケンスにおいて複数のソースピクチャ(ビデオピクチャ)としてキャプチャされてもよい。イントラピクチャ予測(イントラ予測と略されることが多い)は、所与のピクチャ内の空間的相関を利用し、インターピクチャ予測は、ピクチャ間の(時間的又は他の)相関を利用する。一例では、カレントピクチャと呼ばれるエンコーディング/デコーディング下の特定のピクチャは、ブロックにパーティショニングされる。カレントピクチャ内のブロックが、ビデオにおいて先行してコーディングされ、かつ、依然としてバッファされている参照ピクチャ内の参照ブロックに類似するときに、カレントピクチャ内のブロックは、動きベクトルと呼ばれるベクトルによってコーディングされ得る。動きベクトルは、参照ピクチャ内の参照ブロックを指し、複数の参照ピクチャが使用中である場合に、参照ピクチャを識別する第3の次元を有することができる。
【0097】
いくつかの実施形態では、双予測技法は、インターピクチャ予測に使用され得る。双予測技法によれば、ビデオ内のカレントピクチャのデコーディング順序において両方とも前の(ただし、表示順序では、それぞれ過去及び将来であってもよい)第1の参照ピクチャ及び第2の参照ピクチャなどの2つの参照ピクチャが使用される。カレントピクチャ内のブロックは、第1の参照ピクチャ内の第1の参照ブロックを指す第1の動きベクトルと、第2の参照ピクチャ内の第2の参照ブロックを指す第2の動きベクトルとによってコーディングされ得る。ブロックは、第1の参照ブロックと第2の参照ブロックの組み合わせによって予測され得る。
【0098】
さらに、コーディング効率を改善するために、インターピクチャ予測にマージモード技法が使用され得る。
【0099】
本開示のいくつかの実施形態によれば、インターピクチャ予測、イントラピクチャ予測などの予測は、ブロックの単位で行われる。例えば、HEVC標準によれば、ビデオピクチャのシーケンスにおけるピクチャは、圧縮のためにコーディングツリーユニット(CTU)にパーティショニングされ、ピクチャ内部のCTUは、64×64画素、32×32画素、又は16×16画素のように、同じサイズを有する。一般に、CTUは、1つの輝度CTBと2つの色差CTBである3つのコーディングツリーブロック(CTB)を含む。各CTUは、1つ以上のコーディングユニット(CU)に再帰的にクワッドツリーにスプリットされ得る。例えば、64×64画素のCTUは、64×64画素の1つのCU、32×32画素の4つのCU、又は16×16画素の16個のCUにスプリットされ得る。一例では、各CUは、相互予測タイプ又はイントラ予測タイプのような、CUに対する予測タイプを判定するために分析される。CUは時間的及び/又は空間的予測可能性に依存して1つ以上の予測単位(PU)にスプリットされる。一般に、各PUは輝度予測ブロック(PB)と2つの色差PBを含む。一実施形態では、コーディング(エンコーディング/デコーディング)における予測動作は、予測ブロックの単位で行われる。予測ブロックの一例として輝度予測ブロックを使用すると、予測ブロックは、8×8画素、16×16画素、8×16画素、16×8画素など、画素に対する値(例えば、輝度値)の行列を含む。
【0100】
図7は、ビデオエンコーダ(703)の例示的なブロック図を示す。ビデオエンコーダ(703)は、ビデオピクチャのシーケンス内のカレントビデオピクチャ内のサンプル値の処理ブロック(例えば、予測ブロック)を受信し、処理ブロックをコーディングされたビデオシーケンスの一部であるコーディングされたピクチャにエンコーディングするように構成されている。一例では、ビデオエンコーダ(703)は、
図4の例におけるビデオエンコーダ(403)の代わりに使用される。
【0101】
HEVCの例では、ビデオエンコーダ(703)は、8×8サンプルの予測ブロックなどの処理ブロックに対するサンプル値のマトリックスを受信する。ビデオエンコーダ(703)は、処理ブロックが、例えば、レート歪み最適化を使用して、イントラモード、インターモード、又は双予測モードを使用して、最良にコーディングされるかどうかを判定する。処理ブロックがイントラモードでコーディング対象であるときに、ビデオエンコーダ703は、処理ブロックをコーディングされたピクチャにエンコーディングするためにイントラ予測技法を使用してもよく、処理ブロックがインターモード又は双予測モードでコーディング対象であるときに、ビデオエンコーダ703は、処理ブロックをコーディングされたピクチャにエンコーディングするために、それぞれ、インター予測技法又は双予測技法を使用してもよい。特定のビデオコーディング技術では、マージモードは、予測子の外側のコーディングされた動きベクトルコンポーネントの利益なしに、動きベクトルが1つ以上の動きベクトル予測子から導出されるインターピクチャ予測サブモードとすることができる。特定の他のビデオコーディング技術では、対象ブロックに適用可能な動きベクトルコンポーネントが存在してもよい。一実施形態では、ビデオエンコーダ(703)は、処理ブロックのモードを判定するためのモード決定モジュール(図示せず)などの他のコンポーネントを含む。
【0102】
図7の例では、ビデオエンコーダ(703)は、
図7に示すようにまとめて結合された、インターエンコーダ(730)、イントラエンコーダ(722)、残差計算器(723)、スイッチ(726)、残差エンコーダ(724)、汎用コントローラ(721)、及びエントロピーエンコーダ(725)を含む。
【0103】
インターエンコーダ(730)は、カレントブロック(例えば、処理ブロック)のサンプルを受信し、ブロックを参照ピクチャ内の1つ以上の参照ブロックと比較し(例えば、先行するピクチャ及び後のピクチャ内のブロック)、インター予測情報(例えば、インターエンコーディング技法による冗長情報の説明、動きベクトル、マージモード情報)を生成し、任意の好適な技法を使用して、インター予測情報に基づいてインター予測結果(例えば、予測ブロック)を計算するように構成されている。いくつかの例では、参照ピクチャは、エンコーディングされたビデオ情報に基づいてデコーディングされた、デコーディングされた参照ピクチャである。
【0104】
イントラエンコーダ(722)は、カレントブロック(例えば、処理ブロック)のサンプルを受信し、場合によっては、ブロックを、同じピクチャ内の既にコーディングされたブロックと比較し、変換後に量子化された係数を生成し、また、場合によっては、イントラ予測情報(例えば、1つ以上のイントラエンコーディング技法に従ったイントラ予測方向情報)も生成する。一例では、イントラエンコーダ(722)は、また、同じピクチャ内のイントラ予測情報及び参照ブロックに基づいてイントラ予測結果(例えば、予測ブロック)を計算する。
【0105】
汎用コントローラ(721)は、汎用制御データを判定し、汎用制御データに基づいてビデオエンコーダ(703)の他のコンポーネントを制御するように構成されている。一例では、汎用コントローラ(721)は、ブロックのモードを判定し、モードに基づいてスイッチ(726)に制御信号を提供する。例えば、モードがイントラモードであるときに、汎用コントローラ721は、残差計算器723が使用するイントラモードの結果を選択するようにスイッチ726を制御し、イントラ予測情報を選択し、ビットストリームにイントラ予測情報を含めるようにエントロピーエンコーダ725を制御し、モードがインターモードであるときに、汎用コントローラ721は、残差計算器723が使用するインター予測結果を選択するようにスイッチ726を制御し、インター予測情報を選択し、ビットストリームにインター予測情報を含めるようにエントロピーエンコーダ725を制御する。
【0106】
残差計算器(723)は、受信されたブロックと、イントラエンコーダ(722)又はインターエンコーダ(730)から選択された予測結果との間の差(残差データ)を計算するように構成されている。残差エンコーダ(724)は、残差データに基づいて動作し、残差データをエンコードして変換係数を生成するように構成されている。一例では、残差エンコーダ(724)は、残差データを空間ドメインから周波数ドメインにコンバートし、変換係数を生成するように構成されている。次いで、変換係数は、量子化された変換係数を取得するために量子化処理を受ける。様々な実施形態では、ビデオエンコーダ(703)はまた、残差デコーダ(728)を含む。残差デコーダ(728)は、逆変換を行い、デコードされた残差データを生成するように構成されている。デコードされた残差データは、イントラエンコーダ(722)及びインターエンコーダ(730)によって好適に使用され得る。例えば、インターエンコーダ(730)は、デコードされた残差データ及びインター予測情報に基づいて、デコードされたブロックを生成することができ、イントラエンコーダ(722)は、デコードされた残差データ及びイントラ予測情報に基づいて、デコードされたブロックを生成することができる。デコードされたブロックは、デコードされたピクチャを生成するために好適に処理され、デコードされたピクチャは、メモリ回路(図示せず)内でバッファされ、いくつかの例では参照ピクチャとして使用され得る。
【0107】
エントロピーエンコーダ(725)は、エンコードされたブロックを含むようにビットストリームをフォーマットするように構成されている。エントロピーエンコーダ(725)は、HEVC標準などの好適な標準に従った様々な情報をビットストリームに含むように構成されている。一例では、エントロピーエンコーダ(725)は、汎用制御データ、選択された予測情報(例えば、イントラ予測情報又はインター予測情報)、残差情報、及びビットストリーム内の他の好適な情報を含むように構成されている。開示された主題によれば、インターモード又は双予測モードのいずれかのマージサブモードでブロックをコーディングするときに、残基情報は存在しないことに留意する。
【0108】
図8は、ビデオデコーダ(810)の例示的な図を示す。ビデオデコーダ(810)は、コーディングされたビデオシーケンスの一部であるコーディングされたピクチャを受信し、コーディングされたピクチャをデコーディングして再構成されたピクチャを生成するように構成されている。一例では、ビデオデコーダ(810)は、
図4の例におけるビデオデコーダ(410)の代わりに使用される。
【0109】
図8の例では、ビデオデコーダ(810)は、
図8に示すようにまとめて結合された、エントロピーデコーダ(871)、インターデコーダ(880)、残差デコーダ(873)、再構成モジュール(874)、及びイントラデコーダ(872)を含む。
【0110】
エントロピーデコーダ(871)は、コーディングされたピクチャから、コーディングされたピクチャが作り出される構文要素を表す特定のシンボルを再構成するように構成され得る。このようなシンボルは、例えば、ブロックがコーディングされるモード(例えば、イントラモード、インターモード、双予測モード、マージサブモード又は別のサブモードにおける後者の2つ)、及びイントラデコーダ(872)又はインターデコーダ(880)によってそれぞれ予測のために使用される特定のサンプル又はメタデータを識別することができる予測情報(例えば、イントラ予測情報又はインター予測情報)を含むことができる。シンボルは、例えば、量子化された変換係数などの形態で残差情報を含むこともできる。一例として、予測モードがインター予測モード又は双予測モードであるときに、インター予測情報がインターデコーダ(880)に提供され、予測タイプがイントラ予測タイプであるときに、イントラ予測情報がイントラデコーダ(872)に提供される。残差情報は、逆量子化を受けることができ、残差デコーダ(873)に提供される。
【0111】
インターデコーダ(880)は、インター予測情報を受信し、インター予測情報に基づいてインター予測結果を生成するように構成されている。
【0112】
イントラデコーダ(872)は、イントラ予測情報を受信し、イントラ予測情報に基づいて予測結果を生成するように構成されている。
【0113】
残差デコーダ(873)は、逆量子化変換係数を抽出するために逆量子化を行い、逆量子化変換係数を処理して残差情報を周波数領域から空間領域にコンバートするように構成されている。残差デコーダ(873)はまた、特定の制御情報(QP(Quantizer Parameter)を含む必要とすることがあり、その情報は、エントロピーデコーダ(871)によって提供されてもよい(これは、低いボリュームの制御情報のみであり得るので、データパスは描写されていない)。
【0114】
再構成モジュール(874)は、空間領域において、残差デコーダ(873)による出力としての残差情報と、(場合によっては、インター又はイントラ予測モジュールによる出力としての)予測結果とを組み合わせて、再構成ブロックを形成するように構成されており、この再構成ブロックは、再構成ピクチャの一部であってもよく、再構成ピクチャは、再構成ビデオの一部であってもよい。デブロッキング動作などの他の好適な動作が、視覚品質を改善するために行われ得ることに留意されたい。
【0115】
なお、ビデオエンコーダ(403)、(603)及び(703)、並びにビデオデコーダ(410)、(510)及び(810)は、任意の好適な技法を使用して実装され得る。一実施形態では、ビデオエンコーダ(403)、(603)、及び(703)、並びにビデオデコーダ(410)、(510)、及び(810)は、1つ以上の集積回路を使用して実装され得る。別の実施形態では、ビデオエンコーダ(403)、(603)、及び(603)、並びにビデオデコーダ(410)、(510)、及び(810)は、ソフトウェア命令を実行する1つ以上のプロセッサを使用して実装され得る。
【0116】
図6の例のエントロピーコーダ(645)、
図7の例のエントロピーエンコーダ(725)などのエントロピーコーダは、様々な情報をエンコーディングするためのエントロピーコーディング(例えば、エントロピーエンコーディング)を行うことができる。
図7に戻って参照すると、エントロピーエンコーダ(725)は、ビデオ/ピクチャコーディングに関連する制御情報(例えば、予測情報)、残差信号(例えば、変換係数)などをエンコーディングすることができる。予測情報は、イントラ予測情報(例えば、イントラ予測モード情報)、インター予測情報(例えば、動き情報、インター予測モード情報)、他の予測モードに対する予測情報などを含むことができる。例えば、動き情報は、動きベクトル差(MVD)を含む。
【0117】
エントロピーコーディングは、ビデオ/画像信号が構文要素に変換された後に行われ得る。エントロピーコーディングは、統計プロパティを使用してデータを圧縮する可逆圧縮スキームであり得る。例えば、構文要素のセットに対してエントロピーコーディングを行うことにより、構文要素を表すビット(ビンと呼ばれる)がビットストリームにおいてより少ないビット(コーディングされたビットと呼ばれる)にコンバートされ得る。
【0118】
上述の制御情報及び残差信号を構文要素にコンバートするために、様々な方法が使用され得る。一実施形態では、変換ブロックの残差信号が空間領域から周波数領域(例えば、空間周波数領域)に変換されて、変換係数のブロックを生成する。量子化は、変換係数のブロックを変換係数レベル(例えば整数)のブロックに量子化するために行われ得る。残差信号を変換係数レベルに変換するために様々な技法が使用され得る。変換係数レベルのブロックが処理されて、構文要素を生成してもよい。構文要素は、エントロピーエンコーダに入力され得、ビットストリーム内のビットにエンコーディングされ得る。
【0119】
一実施形態では、構文要素は、下記のように変換係数レベルから生成される。変換係数レベルのブロックは、1つ以上のサブブロックを含むことができる。サブブロックは、事前定義されたスキャン順序に従って処理され得る。
図9は、矢印で示す逆対角スキャン順序など、サブブロックスキャン順序の一例を示す。ブロック(910)は、16個のサブブロックにパーティションニングされる。右下コーナーにおけるサブブロック(901)が最初に処理され、左上コーナーにおけるサブブロック(902)が最後に処理される。変換係数レベルが全て0であるサブブロックに対して、そのサブブロックは処理されることなくスキップされ得る。
【0120】
少なくとも1つの非ゼロ変換係数レベルを有するサブブロックに対して、複数(例えば、4)のスキャンパスが行われ得る。サブブロック(905)の変換係数レベルの一例を示す。サブブロック(905)は、4つの非ゼロ変換係数レベル(例えば、-9、-1、6、及び3)を含む。各パスの間、サブブロック(905)内の(空間周波数領域における)16個の位置は、例えば逆対角スキャン順序で走査され得る。
【0121】
変換係数レベルは、任意の好適な方法を使用して二値化され得る。
図10は、例えばサブブロックにおける変換係数レベルのグループの二値化の一例を示す。
【0122】
図10は、サブブロックスキャン処理(1000)の一例を示す。サブブロック(例えば、
図9のサブブロック)内の16個の変換係数レベルに対応する16個の位置(例えば、係数位置)(1010)が、
図10の最下部に一次元で示されている。位置(1010)は、それぞれのスキャン順序(0~15)を反映して0~15に番号付けされている。第1のパスの間、位置(1010)は0~15まで走査され、3つのビンストリング(1001)~(1003)が生成され得る。
【0123】
ビンストリング(1001)は、それぞれの位置(1010)に有意フラグ(例えば、sig_coeff_flag)を含むことができる。ビンストリング(1001)内の各ビン(例えば、有意フラグ)は、それぞれの変換係数の絶対変換係数レベル(例えば、absLevel)が0(例えば、sig_coeff_flagが0)であるか、又は0よりも大きい(例えば、sig_coeff_flagが1)かを示すことができる。
【0124】
ビンストリング(1002)は、それぞれの位置(1010)にパリティフラグ(例えば、par_level_flag)を含むことができる。ビンストリング(1002)内の各ビン(例えば、パリティフラグ)は、それぞれの変換係数のabsLevelのパリティを示すことができる。
【0125】
ビンストリング(1003)は、それぞれの位置(1010)に、より大きい1フラグ(例えばrem_abs_gt1_flag)を含むことができる。ビンストリング(1003)内の各ビン(例えば、より大きい1フラグ)は、(absLevel-1)>>1が0よりも大きいかどうかを示すことができる。より大きい1フラグは、それぞれの変換係数のabsLevelが非ゼロであるときにのみ生成される。
【0126】
一例では、ビンストリング(1004)は、第2のパスの間に生成される。ビンストリング(1004)は、より大きい2フラグ(例えば、rem_abs_gt2_flag)を含むことができる。ビンストリング(1004)内の各ビン(例えば、より大きい2フラグ)は、それぞれの変換係数のabsLevelが4よりも大きいかどうかを示すことができる。より大きい2フラグは、それぞれの変換係数について(absLevel-1)>>1が0より大きいときにのみ生成される。
【0127】
一例では、ビンストリング(1005)は、第3のパスの間に生成される。ビンストリング(1005)は、剰余値(例えば、abs_remainder)を含むことができる。ビンストリング(1005)内の各ビン(例えば、剰余値)は、4よりも大きいそれぞれの変換係数のabsLevelの剰余値を示すことができる。剰余値は、それぞれの変換係数のabsLevelが4よりも大きいときにのみ生成される。
【0128】
一例では、ビンストリング(1006)は、第4のパスの間に生成される。ビンストリング(1006)は、それぞれの非ゼロ係数レベルの符号を示すことができる。ビンストリング(1006)内の各ビン(例えば、符号)は、それぞれの変換係数レベルの符号を示すことができる。
【0129】
ビンストリング(1001)は、16個の位置(1010)に対応する16個のビンを含む。他のビンストリング(1002)~(1006)は、16個以下のビンを含むことができる。16個の位置(1010)のいずれにも対応する情報が存在しない場合、それぞれのビンストリングは、生成されない。例えば、16個の位置(1010)に剰余値が存在しない場合、ビンストリング(1005)は、生成されない。
【0130】
図10を参照すると、各変換係数レベル(例えば、位置3における変換係数レベル)は、同じ位置(例えば、位置3)における対応するビンのセット(例えば、ビン(1020))に基づいて判定され得る。ビンのセット(例えば、(1020))は、ビンストリング(1001)~(1006)の各々からのそれぞれのビン(例えば、ビンが利用可能である場合)を含むことができる。
【0131】
ビンストリング(1001)~(1006)は、例えば、
図6~
図7に記載されているように、エントロピーエンコーダによってエンコーディングされ得る。一例では、エントロピーエンコーダは、エントロピーエンコーディングの一形態であるコンテキストベース適応二値算術コーディング(CABAC)を実装する。例えば、CABACは、H.264/MPEG-4 AVC、HEVC標準などの様々なビデオコーディング標準で使用される。CABACは、可逆圧縮技法であり得る。CABACは、算術コーディングに基づく。二値シンボルがエンコーディングされ得、複雑さを低くすることができ、任意のシンボルのより頻繁に使用されるビットに対する確率モデリングが許容される。
【0132】
CABACでは、ビンストリング(例えば、(1001)~(1006)のうちの1つ)内のビンに対する確率推定値を提供するコンテキストモデル(確率モデルとも呼ばれる)が、そのビンについて判定され得る。いくつかの例では、確率モデルは、コンテキストモデリングなしの固定的選択によって判定される。
【0133】
いくつかの例では、ビンストリング内のビンがローカル的によく相関されている場合、確率モデルは、コンテキストモデリングを用いて、例えば、ビン内でコーディング対象ビンに関連付けられたローカルコンテキストに基づいて判定される。したがって、どのコンテキストモデルがコーディング対象ビンをコーディングするために使用されるかは、特定のビンのローカルコンテキストに基づき得る。ローカルコンテキストに基づいてコンテキストモデルを適応的に選択することで、より良い確率モデリングを提供することができる。例えば、
図10を参照すると、位置3に関連付けられたビン(1001(3))に対するローカルコンテキストは、位置1~2に関連付けられた変換係数レベル情報、位置3の位置情報などを含むことができる。
【0134】
図11は、カレント位置(又はカレント係数)(1120)に対応するカレントビンのコンテキスト選択に使用されるローカルテンプレート(又はコンテキストテンプレート)(1130)の一例を示す。ローカルテンプレート(1130)は、係数ブロック(1110)内のカレント位置(1120)の隣接位置(例えば、A~E)又は隣接変換係数のセットをカバーすることができる。
図11の例では、係数ブロック(1110)は、8×8の位置を有し、64個の位置に変換係数レベルを含む。ローカルテンプレート(1130)は、カレント係数(1120)の右下における5つの位置テンプレートとして定義され得る。ローカルテンプレートは、より少ない位置又はより多くの位置を含むことができる。一例では、ローカルテンプレートは、カレント係数(1120)に隣接する2つの位置(例えば、A~B)を含み、C~Eを含まない。逆対角スキャン順序が係数ブロック内の位置に対する複数のパスに使用されるとき(1110)に、ローカルテンプレート内の位置(1130)は、カレント係数(1120)の前に処理される。
【0135】
コンテキストモデリングの間、カレント係数(1120)に対応するカレントビンに対するコンテキストモデルは、ローカルテンプレート(1130)内の変換係数レベルの情報などのローカルテンプレート(1130)の情報に基づいて判定され得る。テンプレートの大きさは、ローカルテンプレート(1130)内の変換係数又は変換係数レベルの大きさを示すように定義され得る。一例では、コンテキストモデルは、テンプレートの大きさに基づいて選択される。
【0136】
一例では、テンプレートの大きさは、ローカルテンプレート(1130)内の部分的に再構成された絶対変換係数レベルの和(例えば、sumAbs1)として定義される。部分的に再構成された絶対変換係数レベルは、ビンストリング(例えば、ビンストリング(1001)~(1003))に従って判定され得る。一実施形態では、位置(x,y)における部分的に再構成された絶対変換係数レベルは、以下に従って判定され得る。
【数1】
式中、x及びyは、係数ブロック(1110)の左上コーナーに対する座標である。
【0137】
いくつかの実施形態では、カレントビンは、カレント係数(1120)に対応するビンストリング(1001)内のビンであり、コンテキストモデルは、sumAbs1に基づいて選択される。一例では、カレントビンに対するコンテキストモデルは、sumAbs1及びカレントビンの対角位置dに基づいて選択される。dは、x0+y0であり、x0及びy0は係数ブロック(1110)の左上コーナーに対するカレント位置(1120)の座標である。走査パス内の対角位置dは、カレント係数(1120)の空間周波数を示すことができ、対角位置dに基づく適応コンテキストモデリングは、空間周波数依存性コンテキストモデリングとして解釈される。
【0138】
図11に記載のように、ビンストリング(1001)~(1003)内のビンなどのビンが統計的に相関されるときに、カレント位置(1120)におけるカレントビンに対してどのコンテキストモデルが選択されるかは、コンテキストに依存する可能性がある。コンテキストは、例えば、ローカルテンプレート(1130)における隣接位置の情報を含むことができる。コンテキストは、空間周波数依存性コンテキストモデリングを示すカレントビンの位置情報(例えば、d)を含むことができる。
【0139】
異なるタイプのビンストリングは、別個の統計的特性を有することができ、したがって、異なるセットのコンテキストモデルでエンコーディングされ得る。例えば、第1のセットのコンテキストモデルがビンストリング(1001)に対して設定され、第2のセットのコンテキストモデルがビンストリング(1002)に対して設定される。他のセットのコンテキストモデルは、MVDに関連付けられたビンストリングのような他のタイプのビンストリングをコーディングするように設定され得る。
【0140】
例えば、対角位置d及び/又はsumAbs1に基づいて、同じビンストリング(例えば、(1001))内のビンに対して異なるコンテキストモデルが選択され得る。
【0141】
一例では、非二値構文要素は単一のビンストリングによって表され、単一のビンストリング内のビンは統計的に相関される。
【0142】
特定のタイプのビンストリングはコンテキストモデルでコーディングされない。例えば、ビンストリング(1006)は、
図13に記載のバイパスコーディングモードを使用してエンコーディングされる。
【0143】
図12Aは、一実施形態による、例示的なCABACベースのエントロピーエンコーダ(1200A)を示す。例えば、エントロピーエンコーダ(1200A)は、
図6の例のエントロピーコーダ(645)、又は
図7の例のエントロピーエンコーダ(725)で実装され得る。エントロピーエンコーダ(1200A)は、コンテキストモデラ(1210)及び二値算術エンコーダ(1220)を含むことができる。一例では、様々なビンストリングが、エントロピーエンコーダ(1200A)に入力される。ビンストリングは、二値の構文要素及び/又は非二値の構文要素からコンバートされたビンストリングを含むことができる。
【0144】
一例では、コンテキストモデラ(1210)は、コンテキストモデリング処理を行って、受信したビンストリング内のビンに対するコンテキストモデルを選択する。コンテキストモデルは、例えば、ビンのタイプ(例えば、(1001)又は(1003))、変換コンポーネントの色コンポーネントタイプ、受信したビンに関連付けられた変換係数の位置(例えば、対角位置d)、及びビンに関連付けられた先行して処理された隣接変換係数(例えば、ローカルテンプレート(1130))などに基づいて、受信したビンについて判定され得る。コンテキストモデルは、例えば、受信されたビンの値(例えば、「0」又は「1」)及びビンの確率推定値に基づいて、ビンストリング内の次のビンの確率推定値を提供することができる。
【0145】
様々な確率モデルを使用して、受信したビンストリング内のビンに対する確率推定値を判定(例えば、更新)することができる。
図10を参照すると、一実施形態では、ビンb[k+1](例えば1001(2))に対する確率推定値p[k+1]は、ビンb[k](例えば1001(1))に対する確率推定値p[k]及びビンb[k]の値に依存することができる。確率モデルf
aは、式(2)に示すように、パラメータaを変化させることにより修正され得る。
【数2】
【0146】
p[k+1]は、ビンb[k+1]が「1」又は「0」である確率を示すことができる。一例では、p[k+1]は、ビンb[k+1]が「1」である確率を示す。ビンb[k+1]が「0」である確率は、p[k+1]に基づいて判定され得る。代替的には、p[k+1]が、ビンb[k+1]が「0」である確率を示す場合、p[k+1]に基づいて、ビンb[k+1]が「1」である確率が判定され得る。
【0147】
p[k]は、7ビット整数kn(例えば、0~127)などのマルチビット整数knによって表され得、確率は、確率状態(例えば、128状態)によって離散化される。確率の更新は、例えば、b[k]の値に応じて、1つの状態(例えば、p[k]を示す第1の数)から別の状態(例えば、p[k+1]を示す第2の数)にマッピングする例えば、ルックアップテーブル(例えば、状態遷移テーブル)を使用して実装され得る。パラメータ「a」は、適応レート、例えば、2つの近接する確率状態間の差Δpを示すことができる。例えば、p[k+1]は、ビンb[k+1]が「1」である確率を示す。b[k]が1である場合、p[k+1]はp[k]よりも大きく(例えばΔp>0)、ビンb[k+1]はb[k]よりも「1」である可能性が高いと推定される。それ以外の場合、b[k]が0である場合、p[k+1]はp[k]よりも小さく(例えばΔp<0)、ビンb[k+1]はb[k]よりも「1」である可能性が低いと推定される。
【0148】
一例では、算術コーディングエンジンは、確率状態を直接使用することができる。CABACでは,量子化された確率範囲と確率状態を使用することによって乗算のない範囲分割が用いられ得る。
【0149】
別の実施形態では、複数仮説確率推定が適用される。確率は、式(3)~式(5)に示すように、適応レートの異なる複数の推定値(例えば、2つの推定値q1[k]とq2[k])を平均化することによって推定され得る。
【数3】
【0150】
パラメータa1及びa2は、それぞれ2つの推定値q1[k]及びq2[k]の適応レートを示す。a1はa2と異なる可能性がある。式(2)の説明は、式(3)~式(4)に好適に適応され得る。W1がW2と異なるときに、式(5)は、複数の推定値q1[k+1]とq2[k+1]の加重平均p[k+1]を示す。
【0151】
コンテキストモデルリスト(1202)は、コンテキストモデルを含むことができる。コンテキストモデルリスト(1202)は、メモリ(1201)に記憶され得る。コンテキストモデルリスト(1202)内の各エントリは、コンテキストモデルを表すことができる。各コンテキストモデルには、コンテキストモデルインデックス又はコンテキストインデックスと呼ばれるインデックスを割り当てることができる。一例では、メモリ(1201)は、確率推定値p[k]、又は確率推定値を示す確率状態を記憶する。コンテキストモデリングの間、コンテキストモデラ(1210)は、コンテキストモデルリスト(1202)からコンテキストモデルを選択し、選択されたコンテキストモデルをビンに割り当てることができる。
【0152】
コンテキストモデルの確率推定値は、例えば、ビンストリングにおいてエンコーディング対象の最初のビンに対して初期化され得る。コンテキストモデルリスト(1202)上のコンテキストモデルがビンをエンコーディングするように割り当てられた後、コンテキストモデルは、更新された確率推定値を有するビンの値に従って、例えば、式2又は式3~式5を使用して、続いて更新され得る。
【0153】
一実施形態では、二値算術エンコーダ(1220)は、ビン及び関連付けられたコンテキストモデル(例えば、確率推定値)を受信し、確率推定値に基づいて二値算術コーディング処理を行い、したがって、ビンのシーケンスが、コーディングされたビットにコンバートされる。ビンは、ビン値と共に渡される関連付けられた適応確率モデルの実際の状態に基づいてエンコーディングされ得る。コーディングされたビットが生成され、ビットストリームで送信され得る。コンテキストモデルは適応であり得、例えば、受信したストリング内の次のビンに対するコンテキスト選択は、
図11に記載のように、先行してエンコーディング/デコーディングされたビンの値に依存することができる。
【0154】
図12Bは、一実施形態による、例示的なCABACベースのエントロピーデコーダを示す。例えば、エントロピーデコーダ(1200B)は、
図5の例の解析器(520)、又は
図8の例のエントロピーデコーダ(871)で実装され得る。エントロピーデコーダ(1200B)は、二値算術デコーダ(1230)と、コンテキストモデラ(1240)と、を含むことができる。二値算術デコーダ(1230)は、コーディングされたビットをビットストリームから受信し、二値算術デコーディング処理を行って、コーディングされたビットからビンを復元する。コンテキストモデラ(1240)は、コンテキストモデラ(1210)と同様に動作することができる。例えば、コンテキストモデラ(1240)は、メモリ(1203)に記憶されたコンテキストモデルリスト(1204)からコンテキストモデルを選択し、選択したコンテキストモデルを二値算術デコーダ(1230)に提供することができる。メモリ(1203)及びコンテキストモデルリスト(1204)は、
図12Aに記載のメモリ(1201)及びコンテキストモデルリスト(1202)と同様又は同一であり得る。
【0155】
一例では、コンテキストモデラ(1240)は、二値算術デコーダ(1230)から復元されたビンに基づいてコンテキストモデルを判定する。
【0156】
異なるビンストリングをエンコーディングするために、異なるエントロピーエンコーディングスキームが用いられ得る。例えば、有意フラグ、パリティフラグ、より大きい1フラグ、及びより大きい2フラグが、
図12Aの例に記載のもののようにCABACベースのエントロピーエンコーダでエンコーディングされ得る。第3のパス及び第4のパスの間に生成された構文要素は、CABACバイパスされたエントロピーエンコーダ(例えば、入力ビンに対して固定された確率推定値を有する二値算術エンコーダ)を用いてエンコーディングされ得る。
【0157】
図13は、エンコーダで使用されるようなCABACの一例を示す(例えば、(645)、(725))。CABACは,異なるコンテキストに対して複数の確率モードを有することができる。CABACでは、データシンボルをコーディングすることは、二値化、コンテキストモデリング、二値算術コーディングなどの1つ以上の段階を含むことができる。1つ以上のステージが省略又は修正されてもよい。追加の段階が追加されてもよい。
【0158】
いくつかの実施形態では、非二値構文要素のような非二値シンボル(例えば、全ての非二値シンボル)は、二値化器(1301)による二値化によって、ビンストリングのような二値にコンバートされ得る。一例では、ビンストリングは、非二値構文要素に基づいて生成される。ビンストリング内のビット(又はビン)に対して、コーダは、どの確率モデルを使用するか(コンテキストモデリング)を選択することができ、近くの要素からの情報を使用して確率推定値を最適化することができる。算術コーディングは、例えば二値算術コーダ(1305)を用いてデータを圧縮するために適用され得る。いくつかの二値シンボルについては、「1」又は「0」である確率が、確率をよりよく推定するための良好なコンテキストなしに等しい場合、二値シンボルは、コンテキストモデルを使用することなくコーディングされ得、したがってバイパスコーディングが使用される。
図13に示す実施例又は変形例は、H.264/AVC又は他のビデオコーディング標準で使用され得る。コンテキストモデリングは、コーディングシンボルの条件付き確率の推定値を提供することができる。好適なコンテキストモデルを利用して、所与のシンボル間冗長性は、エンコーディング対象のカレントシンボルの近傍において既にコーディングされたシンボルに従って、異なる確率モデル間で切り替えることによって利用され得る。
【0159】
一実施形態では、CABACは二値算術コーディングを使用し、したがって二値決定(1又は0)のみがエンコーディングされる。二値化では、算術コーディングの前に、二値化器(1301)により、非二値のシンボル(例えば、変換係数又は動きベクトル)が二値化又は二値にコンバートされ得る。二値化処理は、伝送の前に二値コードがさらにエンコーディングされる(例えば、算術コーダによって)ことを除いて、データシンボルを可変長コードにコンバートする処理に類似することができる。シンボル又は構文要素が二値構文要素である場合、二値化がスキップされ得る。二値化器(1301)からのビンは、二値算術コーディングエンジンに入力され得る。
【0160】
ビンストリングは、二値化器(1301)からの二値化されたシンボル又は二値構文要素であり得る。一例では、ビンストリング内のビンは連続的に処理される。CABACにおける1つ以上の段階は、ビンストリングの各ビット(又は「ビン」)に対して繰り返され得る。
【0161】
通常コーディングモードとバイパスコーディングモードとの間のコーディングモード決定は、例えば、それぞれのビンとビンストリング内の他のビンとの間の統計的相関に基づいて、ビン毎に行われ得る。例えば、バイパスコーディングモードは、符号情報に関連するビン(例えば、(1006)のビン)に対して選択されるか、又は均等に分散され得る下位有効ビン(例えば、(1005)のビン)に対して選ばれる。バイパスコーディングモードが選択される場合、通常の二値算術エンコーディング処理が、ビンに対してバイパスされ得る。バイパスコーディングモードでは、ビンはバイパスコーディングエンジン(1304)でコーディングされる。例えば、Golomb-Riceを使用するような、固定された確率モデルに基づく算術コーディングが使用されてもよい。
【0162】
通常コーディングモードでは、コンテキストモデラ(1302)は、ビンに対して確率モデルなどのコンテキストモデルを選択することができる。コンテキストモデルは、二値化シンボルの1つ以上のビンに対する確率モデルである。
図12Aに記載のように、コンテキストモデルは、例えば、最近コーディングされたデータシンボルの統計に応じて、(例えば、(1202)の)利用可能なコンテキストモデルの選択から選ばれてもよい。コンテキストモデルは、各ビンが「1」又は「0」である確率を記憶することができる。
【0163】
一例では、コンテキストモデラ(1302)は、例えば、
図11に記載のように、ローカルテンプレート、対角位置などに基づいてコンテキストモデルを選択することができる。コンテキストモデルが適応的に選択されるときに、ビンストリング内の異なるビン(例えば、(1001)のビン)は、異なるコンテキストモデルインデックスに関連付けられた異なるコンテキストモデルを有することができる。
【0164】
コンテキストモデラ(1210)の説明は、コンテキストモデラ(1302)に適用され得る。一例では、コンテキストモデラ(1302)は、コンテキストモデラ(1210)と類似又は同一である。
【0165】
コンテキストモデルは、様々な構文要素に対して設計され得る。上述したように、コンテキストモデルは、様々なタイプの構文要素に対して設計され得る。構文要素の例示的なクラスは、残差情報(例えば、変換係数)、制御情報(例えば、MVD、スキップモードフラグ、予測モード情報、ブロック情報など)を含む。1つのタイプの構文要素(例えば、MVD)は、複数のコンテキストモデルに関連付けられ得る。
【0166】
(「1」又は「0」である)構文要素の先行するコーディング結果を使用して、各二値化シンボルのコンテキスト状態又は確率状態(例えば、各ビンが「1」又は「0」である確率)を更新し、コンテキストモデルを構文要素のローカル特性に対してより適応的にすることができる。更新されたコンテキスト状態から正確な予測を有することによって、コーディング効率を改善することができる。一般に、ある適応の後、シンボルが(例えば、履歴結果から)「1」である可能性がより高い場合、コンテキスト状態は、「0」の代わりに「1」に傾くように更新され得る。
【0167】
コンテキストモデラ(1302)は、ビン及びコンテキストモデル(例えば、確率状態)を出力することができる。選択されたコンテキストモデルは、実際のコーディングされた値に基づいて更新され得る(例えば、ビン値が「1」である場合、「1」の頻度カウントが増加される)。
【0168】
算術コーダ(1305)は、選択された確率モデルに従って各ビンをエンコーディングすることができる。一例では、2つのサブ範囲(「0」及び「1」に対応)が各ビンに対して使用される。バイパスコーディングモードが選択されるときに、バイパスコーディングエンジン(1304)が、ビンをコーディングするために使用される。通常コーディングモードが選択されるときに、通常コーディングエンジン(1303)が、ビンをコーディングするために選択される。一例では、通所コーディングモードは、ビンの値の確率が所与の先行してコーディングされたビンの値が与えられれば予測可能であるビンをコーディングするために適用される。バイパスコーディングエンジン(1304)は、大幅に複雑さが低減されたこーディングエンジンの高速ブランチとすることができ、一方、通常コーディングエンジン(1303)は、所与のビン値をエンコーディングするが、ビン値と共に渡される関連付けられた適応確率モデルの実際の状態に依存する。
【0169】
通常コーディングモードが選択されるときに、選択されたコンテキストモデルは、実際のコーディングされた値に基づいて更新され得る(例えば、ビン値が「1」であった場合、「1」の頻度カウントが増加される)。
【0170】
いくつかの実施形態では、ランダムアクセス、並列処理の目的などの場合、画像及びビデオ信号は、デコーディング順序において直前にデコーディングされたデータに依存することなくコーディング(例えば、独立にコーディング)され得るより小さなコーディングセグメントにスプリットされる。各二値化シンボルに対して、コンテキストモデルは、先行するコーディング結果の既存のコンテキスト状態を継承する代わりに、コーディングセグメントの開始時に初期状態を有することができる。コーディングセグメントは、ピクチャ、スライス、タイル、CTU行、CTUなどを含むことができる。良好な初期化なしでは、CABACエンジンは、いくつかの入力シンボルをコーディングした後にモデルのコンテキスト状態を調整するために一連の適応化を必要とすることがある。したがって、コンテキストモデルの初期状態とコーディングされたシンボルの実確率が一致しない場合、圧縮性能はコーディングセグメントの初期段階で影響を受ける可能性がある。
【0171】
図14は、参照ピクチャからのコンテキスト状態を使用するカレントピクチャのCABAC初期化の一例を示す。いくつかの例では、ピクチャ又はスライスの固定の場所におけるCABACコンテキスト状態(又はCABAC確率状態)は、次のピクチャ又は次のスライスのデコーディング/エンコーディングの開始時におけるCABACコンテキスト状態に対する推定初期状態として記憶され得る。コーディング順序におけるピクチャA~Cを
図14に示す。一例では、ピクチャAは、ピクチャB~Cをコーディングする前にコーディングされる。ピクチャBの開始(例えば、コーディング対象の最初のビンストリング又は最初の構文要素)をコーディングするために使用されるCABACコンテキスト状態に対する初期確率状態は、ピクチャBの先行してコーディングされたピクチャであるピクチャA内のCTU(1401)におけるCABACコンテキスト状態に基づいて判定(例えば、推定)され得る。
【0172】
一例では、ピクチャCの開始(例えば、コーディング対象の最初のビンストリング又は最初の構文要素)をコーディングするために使用されるCABACコンテキスト状態に対する初期確率状態は、ピクチャCの先行してコーディングされたピクチャであるピクチャB内のCTU(1402)におけるCABACコンテキスト状態に基づいて判定(例えば、推定)され得る。
【0173】
信号(例えば、残差情報、制御情報)のローカル特性は、同じピクチャ又は同じスライスの内部のある領域から別の領域へと変化し得る。コンテキスト状態初期化を実行するために
図14に記載の実施形態を使用することは、予測精度の観点から最適でないことがある。本開示の一実施形態によれば、コーディングされたピクチャからの適応CABAC初期状態選択を行って、新たなコーディングセグメントの開始時におけるコンテキストモデルの確率状態を推定することができる。
【0174】
異なる統計に適応するために、初期状態テーブルは、イントラ(I)スライスタイプ、双予測(B)スライスタイプ及び予測(P)スライスタイプに対して別々に事前定義又は予測され得る。Iスライス(イントラスライス)は、イントラ予測のみを使用してコーディング(例えば、デコーディング)され得る。Bスライスは、イントラ予測を使用して、又はインター予測を使用して、例えば、各ブロックのサンプル値を予測するために多くても2つの動きベクトル及び参照インデックスを用いてコーディング(例えば、デコーディング)され得、Pスライスは、イントラ予測を使用して、又はインター予測を使用して、例えば、各ブロックのサンプル値を予測するために多くても1つの動きベクトル及び参照参考指標を用いてコーディング(例えば、デコーディング)され得る。一例では、Iスライスタイプの初期状態テーブルはイントラスライスに対してのみ使用される。Bスライスタイプ及びPスライスタイプの初期状態テーブルは、インタースライスのために選択されてもよい。Iスライスタイプ、Bスライスタイプ、及びPスライスタイプに対する上記の説明は、Iピクチャタイプ、Bピクチャタイプ、Pピクチャタイプなどのピクチャタイプに拡張され得る。以下、コーディングセグメントの一例としてスライスが使用される。各ピクチャは、複数のスライスを含んでもよい。
【0175】
上述したように、ビンストリングは、1つ以上の構文要素に基づいて判定され得る。ビンストリングの初期確率は、1つ以上の構文要素における構文要素の初期確率であり得る。
【0176】
一例では、構文要素は、ビンストリングにコンバートされる。したがって、ビンストリングの初期確率(又は、構文要素をエントロピーコーディングするための初期確率)は、構文要素においてコーティング対象の最初のビンの確率(例えば、0又は1である確率)であり得る。最初のビンは、ビンストリング内の他のビンをコーディングする前にコーディング対象となる。式2又は式3~式5を使用して、初期確率で構文要素(又はビンストリング)をコーディングすることができる。
【0177】
一実施形態では、ブロック又はサブブロック内の構文要素のグループ(例えば、
図10の16の変換係数レベル)は、複数のビンストリング(例えば、ビンストリング(1001)~(1006))にコンバートされる。各ビンストリング(例えば(1001))は、構文要素のグループに関連付けられ得る。ビンストリングの初期確率は、ビンストリングにおけるコーディング対象の最初のビンの確率である。最初のビンは、単一の構文要素(例えば、スキャンパスにおける最初の構文要素)に関連付けられる。例えば、ビンストリング(1001)の初期確率は、ビン(1001(0))が1又は0である確率であり、位置0における変換係数レベルに関連付けられる。
図10に示す例では、単一の構文要素(例えば、位置0における変換係数レベル)が、例えば(1001)~(1003)にそれぞれ対応する複数の初期確率に関連付けられ得る。一実施形態では、独立にコーディング可能なカレントコーディングセグメントの構文要素は、構文要素における残りの構文要素をコーディングする前にエントロピーコーディングされる少なくとも1つの構文要素を含む。少なくとも1つの構文要素は、確率モデル又はコンテキストモデルでエントロピーコーディングされ得る。例えば、少なくとも1つの構文要素は、ビンストリングにコンバートされ、ビンストリングはエントロピーコーディングされる。
【0178】
コンテキストモデルの初期化処理は、エントロピーコーディングで行われ得る。一例では、少なくとも1つの構文要素の統計的性質に関するいかなる事前の知識がなくても、確率モデルの各々は、一様分布に対応する確率状態で初期化することができ、例えば、それぞれの確率モデルの初期確率状態は、等確率の確率を示す。
【0179】
一例では、少なくとも1つの構文要素の初期確率は、等確率の確率からスキューされる。カレントコーディングセグメントと統計的に相関する可能性の高い別の領域(例えば、先行してコーディングされたピクチャ内の領域)は、例えば、(i)カレントコーディングセグメントの場所、及び(ii)カレントコーディングセグメントの量子化パラメータ(QP)に基づいて判定され得る。先行してコーディングされたピクチャ内の領域の先行する確率情報は、少なくとも1つの構文要素の初期確率をよりよく反映することができる。これにより、領域の先行する確率情報に基づいて、少なくとも1つの構文要素の初期確率を示す初期確率情報が判定され得、初期化をより効率的に行う。
【0180】
コーディングセグメントが、コーディング順序においてコーディングセグメントの直前にある先行してコーディングされたデータから独立してコーディングされ得る場合、コーディングセグメントは独立にコーディング可能である。独立にコーディング可能なコーディングセグメントは、コーディング順序において独立にコーディング可能なコーディングセグメントの直前にある先行してコーディングされたデータに依存することなくコーディングされ得る。カレントコーディングセグメントは、カレントピクチャ、カレントピクチャ内のカレント領域などであり得る。領域のエリアは、カレントピクチャのエリアよりも小さい。領域は、スライス、CTUなどとすることができる。独立にコーディング可能なコーディングセグメントの例は、ピクチャ、スライス、タイル、タイルグループ、CTU行、CTUなどを含む。一例では、独立にコーディング可能なコーディングセグメントは、Iスライス、Bスライス、又はPスライスなどのスライスである。
【0181】
カレントコーディングセグメントにおける少なくとも1つの構文要素は、カレントコーディングセグメントの動き情報、カレントコーディングセグメントの残差データ、及び/又はカレントコーディングセグメントをコーディングする制御情報(例えば、予測モード情報)を示すことができる。
【0182】
一例では、少なくとも1つの構文要素は、カレントコーディングセグメントにおける最初のブロックの構文要素を含む。最初のブロックは、カレントコーディングセグメント内の他のブロックをコーディングする前にコーディングされ得る。
【0183】
一実施形態では、カレントコーディングセグメントにおける最初のブロックは、複数のサブブロックを含む。少なくとも1つの構文要素は、最初のブロック内の最初のサブブロックの構文要素を含む。最初のサブブロックは、カレントコーディングセグメント内の任意の他のブロック又はサブブロックをコーディングする前にコーディングされ得る。
【0184】
一例では、少なくとも1つの構文要素は、
図10に示すように、サブブロックのうちの1つにおける変換係数レベルを含む。一例では、少なくとも1つの構文要素は、サブブロック又はブロックのMVDを含む。独立にコーディング可能なコーディングセグメント(カレントスライス、カレントピクチャなどのカレントコーディングセグメントと呼ばれる)においてコーディング対象の(i)最初のブロック又は(ii)最初のブロック内にある最初のサブブロックをコーディングするために、最初のブロック又は最初のサブブロック内の1つ以上の構文要素に関連付けられたビンストリングの初期確率を示す初期確率情報が、複数の先行するコーディングセグメントの1つにおける先行する確率情報に基づいて判定され得る複数の先行するコーディングセグメントの各々は、先行してコーディングされ得る。先行する確率情報は、先行してデコーディングされたピクチャ又はスライスなどの先行するコーディングセグメントにおける先行するブロック又は先行するサブブロック内の1つ以上の先行する構文要素に関連付けられた先行するビンストリングの先行する確率を含むことができる。ビンストリングと先行するビンストリングは同じタイプのものであり、例えば、ビンストリングは最初のサブブロックの有意フラグを含むビンストリング(1001)であり、先行するビンストリングは先行するサブブロックの有意フラグを含む。
【0185】
初期確率情報は、初期確率を示す初期確率状態(又は初期コンテキスト状態)を含むことができる。初期確率情報(例えば、初期コンテキスト状態)は、先行してコーディングされたコーディングセグメント(例えば、先行してコーディングされたスライス又は先行してコーディングされたピクチャ)から継承することができる。カレントコーディングセグメント(例えば、カレントスライス又はカレントピクチャ)の統計的分布をより効率的にキャプチャするために、カレントコーディングセグメントの開始時に構文要素の各コンテキストは、記憶されたコンテキスト状態を先行してコーディングされたコーディングセグメント(例えば、先行してコーディングされたピクチャ)から継承することができる。
【0186】
初期確率情報に加えて、エントロピーコーディングのための他のパラメータは、カレントコーディングセグメントのコンテキスト状態が先行してコーディングされたコーディングセグメントの1つから初期化されるときに継承することができる。パラメータは、(例えば、式(3)~式(5)に記載のように適応重みを有する多重仮説確率推定が使用されるときに、)確率モデル(又はコンテキストモデル)を特定するために使用される適応レート及び/又は適応重みを含むことができる。
【0187】
図14に記載のように固定のCTUの場所における確率情報(例えば、コンテキスト状態)を使用する代わりに、先行するピクチャからの領域は、カレントスライスの開始がカレントピクチャ内のどこに位置しているかに基づくことができ、先行するピクチャからの領域におけるコンテキスト状態を使用して初期確率情報を判定することができる。
図15は、カレントピクチャ(1502)と参照ピクチャ(又は先行するピクチャ)(1501)との間の領域ベースのCABACコンテキスト状態初期化マッピングの一例を示す。選択された先行してコーディングされたコーディングセグメント(例えば、先行してコーディングされたピクチャ)からのコンテキスト状態は、コーディング対象の最初のブロック又は最初のサブブロックがカレントピクチャ内のどこに位置するかに基づいて判定(例えば、選択)され得る。選択された先行するピクチャ(1501)は、複数の領域を含むことができる。各領域は、選択された場所における1つ以上の構文要素の確率情報(例えば、コンテキスト状態)が記憶され、予測のために使用され得る選択された場所を有することができる。
図15の例では、各領域について、選択されたCTUが決定され得る。例えば、先行するピクチャ(1501)は、CTU1を含む左上領域、CTU2を含む右上領域、CTU3を含む左下領域、CTU4を含む右下領域、CTU5を含む中央領域などの5つの領域を含む。一例では、5つの領域は、重なっていない。一例では、5つの領域は、先行するピクチャ(1501)全体をカバーすることができる。一例では、5つの領域のエリアは、先行するピクチャ(1501)全体のエリアよりも小さい。
【0188】
一例では、CTU1~5の各々の1つ以上のコーディングされた構文要素(例えば、1つ以上のエントロピーコーディングされた構文要素)のコンテキスト状態(又は確率状態)などの確率情報が、それぞれのCTU(又はそれぞれの領域)記憶され得る。選択されたCTUに関連付けられた1つ以上の構文要素のコンテキスト状態は、例えば、選択されたCTUがコーディングされた後に記憶され得る。カレントコーディングセグメント(例えば、カレントスライス)に対して、カレントピクチャ(1502)におけるカレントコーディングセグメントの最初のコーディングユニット(例えば、最初のブロック)の左上位置のようなカレントコーディングセグメントの位置に従って、カレントコーディングセグメントが先行するピクチャ(1501)における複数の領域の領域にマッピングされ得、カレントコーディングセグメントの初期コンテキスト状態が、複数の領域のうちの領域からの関連付けられたコンテキスト状態に基づいて判定され得る。
【0189】
図15を参照すると、カレントピクチャ(1502)は、スライスなどの複数の独立にコーディング可能なコーディングセグメントを含む。カレントピクチャ(1502)は、左上領域(1511)、右上領域(1512)、左下領域(1513)、右下領域(1514)、中央領域(1515)などの複数の領域(例えば、5つの領域)を含むことができる。一例では、5つの領域(1511)~(1515)は、重なっていない。一例では、5つの領域(1511)~(1515)は、ピクチャ(1502)全体をカバーする。カレントピクチャ(1502)内のスライスのような独立にコーディング可能なコーディングセグメントがコーディング対象である。カレントピクチャ(1502)内の独立にコーディング可能なコーディングセグメントに対するコンテキスト状態を初期化するために、先行するピクチャ(1501)における対応する領域又は場所は、カレントピクチャ(1502)内の独立にコーディング可能なコーディングセグメントの場所に基づいて判定され得る。一例では、独立にコーディング可能なコーディングセグメントの場所は、カレントコーディングセグメントの最初のコーディングユニット(例えば、最初のブロック)の左上位置によって示される。例えば、独立にコーディング可能なコーディングセグメントがカレントピクチャ(1502)内の領域(1511)にある場合、先行するピクチャ(1501)内の対応する領域は先行するピクチャ(1501)内の左上領域であり、先行するピクチャ(1501)内の左上の領域内にある対応するCTU1が選択され得る。したがって、CTU1に関連付けられ記憶された確率情報(例えば、記憶されたコンテキスト状態)は、領域(1511)内の独立にコーディング可能なコーディングセグメントの初期確率情報を判定するために使用され得る。独立してコーディング可能なコーディングセグメントが別の領域(例えば、(1512)~(1515)のうちの1つ)に位置する場合、上記の説明を適用することができる。
【0190】
この例では、5つの位置(例えば、左上CTU1、右上CTU2、左下CTU3、右下CTU4、及び中央CTU5)における構文要素のコンテキスト状態が記録又は記憶される。位置(例えば、CTU5)は、選択されたCTU(例えば、CTU5)がコーディングされたときに参照され得る。例えば、CTU5における構文要素のコンテキスト状態は、カレントピクチャ(1502)内のカレントコーディングセグメントを初期化するために使用され得る。カレントピクチャ内の各スライスの開始時のカレントコーディングブロックの位置に従って、位置のうちの1つがCABACコンテキスト状態初期化のために選択される。
【0191】
代替的には、コンテキスト状態が初期化処理で使用される先行するピクチャ(1501)内の場所の選択が、カレントピクチャ(1502)内の独立にコーディング可能なコーディングセグメント(例えば、カレントスライス)に対してシグナリングされ得る。例えば、複数の候補位置(例えば、CTU1~CTU5)のうちの1つを指し示すインデックスがシグナリングされる。
【0192】
図14~
図15の初期化処理を比較すると、
図15の初期確率情報は、独立にコーディング可能なカレントコーディングセグメントの特定の情報に適応可能である。カレントコーディングセグメントの特定の情報は、カレントコーディングセグメントのQP、カレントコーディングセグメントの場所などを含むことができる。したがって、初期確率情報は、カレントコーディングセグメントの特定の情報(例えば、QP、場所など)と一致する領域の先行する確率情報から判定される。これに対して、初期確率情報は、固定の場所の先行する確率情報から取得される
図14であり、カレントコーディングセグメントの特定の情報には可能ではない。様々な実施形態では、
図15の適応初期化処理は、エントロピーコーディング処理をより効率的に行うことができる。各独立にコーディング可能なコーディングセグメント(例えば、各スライス)に対して、例えば、カレントピクチャ(1502)において、それぞれの独立にコーディング可能なコーディングセグメント(例えば、それぞれのスライス)に使用されるコンテキスト初期化スキームを選択するために制御フラグがシグナリングされ得る。一例では、フラグがゼロであるときに、独立にコーディング可能なコーディングセグメントのコンテキスト状態は、スライスタイプに対して事前定義されたテーブル(例えば、Iスライスタイプ、Bスライスタイプ、及びPスライスタイプに対して事前定義された初期状態テーブルのうちの1つ)のような既存のコンテキスト初期化テーブルを使用して初期化され得る。それ以外の場合(例えば、フラグが1であるときに)、独立にコーディング可能なコーディングセグメントのコンテキスト状態は、先行してコーディングされたスライスからの記憶されたコンテキスト状態をコピーすることなどにより、先行してコーディングされたコーディングセグメント(例えば、先行してコーディングされたスライス)からの記憶されたコンテキスト状態に基づいて初期化され得る。
【0193】
図16は、インターコーディングのための階層的時間構造又は階層的時間コーディング構造の一例を示す。ピクチャ0~15(略して、P0~P15)が、
図16に示されている。表示順序は、P0からP15までである。ピクチャに関連付けられた番号は、表示順序におけるものである。
【0194】
より低いレベル(例えば、レベル0)のピクチャは、より高いレベル(例えば、レベル1~4のうちの1つ)のピクチャの前にコーディングされる。あるレベルのピクチャは、同じレベル又はより高いレベルのピクチャを予測するための参照ピクチャとして使用されてもよい。
【0195】
カレントピクチャ(例えば、(1502))に対して、1つ以上の先行してコーディングされたピクチャが参照ピクチャとして利用可能であり得る。CABACコンテキスト初期化のための参照ピクチャの選択は、階層的時間コーディング構造におけるカレントピクチャの位置(例えば、レベル)に基づき得る。
図16の例では、P0とP16がレベル0ピクチャとして最初にコーディングされる。一例では、P0がイントラコーディングされ、P16が(例えば、P0に基づいて)インターコーディングされる。P8は、P0及び/又はP16を参照ピクチャとしてレベル1ピクチャとしてコーディングされる。レベル2のピクチャの場合、例えば、コーディング対象のピクチャとそれぞれの参照ピクチャとの間の依存関係及び距離を考慮して、P4は、P0及びP8を参照ピクチャとして選択し、P12は、P8及びP16を参照ピクチャとして選択することができる。同様の方策が、レベル3及びレベル4のピクチャに適用され得る。一例では、参照ピクチャは、コーディング対象のカレントピクチャのレベルよりも低いレベルのコーディングされたピクチャから選択される。したがって、同じレベルのピクチャは並列にコーディングされ得、参照ピクチャと同じレベルの他のピクチャに依存することなく(必要であれば)破棄することができる。
【0196】
一実施形態では、コンテキスト初期化のための参照ピクチャを選択するときに、階層的時間コーディング構造の同じレベルにあるピクチャは、互いに参照ピクチャとして使用することができない。上記の制約を適用することにより、同じレベルのピクチャを互いに依存することなく並列に(例えば同時に)エンコーディング/デコーディングすることができる。例えば、P1及びP3は同じレベル(例えば、レベル4)にあるため、P3は、初期化のためにP1からのコンテキスト状態を使用することができない。
【0197】
図15~
図16に記載の実施形態は、組み合わせることができる。例えば、カレントピクチャ(1502)が第1のレベル(例えば、レベル3)である場合、先行するピクチャ(1501)は、第1のレベルよりも低い第2のレベル(例えば、レベル0~2のうちの1つ)に制限され得る。
【0198】
一実施形態では、
図15~
図16に記載の実施形態の代わりに、又はこれに加えて、先行してコーディングされたコーディングセグメントの量子化情報(例えば、量子化パラメータQP)をコンテキスト初期化に使用することができる。例えば、カレントコーディングセグメントのQPを先行してコーディングされたコーディングセグメントのQPと比較することができ、先行してコーディングされたコーディングセグメントのうちの1つがその比較に基づいて選択される。一例では、先行してコーディングされたコーディングセグメントのうちの1つは、最小QP差に関連付けられる。先行してコーディングされたコーディングセグメントのうちの1つのコンテキスト状態が、カレントコーディングセグメントの初期確率情報を判定するために使用される。
【0199】
一例では、カレントコーディングセグメントはカレントピクチャ(1502)である。どのピクチャが先行してコーディングされたピクチャから選択されるかは、カレントピクチャ内のコーディング対象の最初のブロックの場所又はコーディング対象の最初のサブブロックの場所に基づいて判定され得る(1502)。代替的には、カレントピクチャ(1502)のQPと、先行してコーディングされたピクチャのQPとに基づいて、先行してコーディングされたピクチャからどのピクチャが選択されるかが判定されてもよい。一実施形態では、先行してコーディングされたピクチャからどのピクチャが選択されるかは、
図16に記載のように、階層的時間構造におけるカレントピクチャのレベルと先行してコーディングされたピクチャのレベルに基づいて判定され得る。上記の実施形態が、組み合わされ得る。例えば、(レベル4の)P1は、(レベル3の)P2を参照ピクチャとして用いることができるが、これは、レベル3がレベル4よりも低く、P1とP2との間の絶対QP差|QP difference|が、P1とP6、P10とP14の絶対QP差のうち最小であるためである。
【0200】
各コンテキスト状態について、確率を説明するために有限精度を定義することができる。例えば、8ビット整数(又は8ビット状態)を使用して、0~255の範囲の確率状態を示すことができる。量子化は、ビット深度低減のように、コーディングされたピクチャ内の選択されたコンテキスト状態に適用され得る。したがって、記憶されたコンテキスト状態は、予測の目的のためにメモリ内のより少ない記憶空間を使用することができる。一例では、記憶されたコンテキスト状態は、より少ないビット(例えば、8ビットの代わりに4ビット)を使用してより低い精度で記憶することができ、したがって各コンテキストに対して元の8ビット情報の上位4ビットのみを保持する。予測に使用されるときに、下位4ビットはゼロで埋められ得る。
図15を参照すると、CTU1の構文要素は8ビット精度でエントロピーコーディングされ得、8ビット精度を有するコンテキスト状態はCTU1のエントロピーコーディングに基づいて取得され得る。その後、8ビット精度を有するコンテキスト状態が4ビット精度で記憶され得る。4ビット精度のコンテキスト状態を使用して、カレントコーディングセグメント(例えば、カレントピクチャ(1502)におけるスライス)の初期確率を判定することができる。
【0201】
図17は、本開示の一実施形態による、処理(例えば、エンコーディング処理)(1700)を概説するフローチャートを示す。処理(1700)は、処理回路機構を含むことができるビデオ/画像コーディングのための装置によって実行され得る。端末デバイス(310)、(320)、(330)及び(340)内の処理回路機構、ビデオエンコーダ(例えば(403)、(603)、(703))の機能を行う処理回路機構などの装置内の処理回路機構が、処理(1700)を行うように構成され得る。いくつかの実施形態では、処理(1700)はソフトウェア命令で実装され、したがって、処理回路機構がソフトウェア命令を行うときに、処理回路機構は、処理(1700)を行う。処理は、(S1701)から開始し、(S1710)に進む。
【0202】
(S1710)において、先行するピクチャがエントロピーエンコーディングされ得る。先行するピクチャ内の複数の領域の各領域が、エントロピーエンコーディングされ得る。先行するピクチャ内の各領域をエントロピーエンコーディングすることに関連付けられた先行する確率情報が、判定され得る。
【0203】
(S1720)において、(i)カレントピクチャ内の独立にエンコーディング可能なコーディングセグメントの場所若しくは量子化パラメータ、又は(ii)独立にエンコーディング可能なコーディングセグメントの構文情報に基づいて、先行するピクチャ内の複数の領域の中から領域が選択され得る。独立にエンコーディング可能なコーディングセグメントは、カレントピクチャ又はカレントピクチャ内の領域(例えば、スライス)であり得る。
【0204】
(S1730)において、独立にエンコーディング可能なコーディングセグメント内のブロックの1つ以上のカレント構文要素をエントロピーエンコーディングするための初期確率情報が、選択された領域をエントロピーエンコーディングすることに関連付けられ判定された先行する確率情報に基づいて判定され得る。1つ以上のカレント構文要素は、最初に、独立にエンコーディング可能なコーディングセグメント内の構文要素の中からエントロピーエンコーディングされる。
【0205】
ブロックは、独立にエンコーディング可能なコーディングセグメント内のブロックの中からエントロピーエンコーディングされる最初のブロックであり得る。
【0206】
(S1740)において、1つ以上のカレント構文要素に関連付けられたビンストリングは、初期確率情報及びビンストリングに対する確率推定モデルに基づいて、コーディングされたビットにエントロピーエンコーディングされ得る。
【0207】
複数の領域のうちどの領域が選択されるかを示す構文情報がエンコーディングされ、ビットストリームに含められ得る。
【0208】
一例では、構文情報は、複数の領域のうちどの領域が選択されるかを示すインデックスを含む。
【0209】
次いで、処理(1700)は、(S1799)に進み、終了する。
【0210】
処理(1700)は、様々なシナリオに好適に適応され得、処理(1700)のステップは、それに応じて調整され得る。処理(1700)のステップのうちの1つ以上が、適応され、省略され、繰り返され、及び/又は組み合わされ得る。任意の好適な順序を使用して、処理(1700)を実装することができる。追加のステップが追加され得る。
【0211】
独立にエンコーディング可能なコーディングセグメントは、カレントピクチャ内のスライスであり得る。
【0212】
一実施形態では、独立にエンコーディング可能なコーディングセグメントは、カレントピクチャである。
【0213】
一例では、先行するピクチャ内の複数の領域は、先行するピクチャの4つのコーナーと中央にそれぞれ位置するコーディングツリーユニット(CTU)を含む。カレントピクチャは、4つのコーナー領域と1つの中央領域と、を含む。ブロックがカレントピクチャの4つのコーナー領域のうちの1つに位置することに基づいて、先行するピクチャの4つのコーナーのうちの1つに位置するCTUが選択され得る。ブロックがカレントピクチャの中央領域に位置することに基づいて、先行するピクチャの中央に位置するCTUが選択され得る。領域は、先行するピクチャの4つのコーナーのうちの1つに位置するCTU、又は先行するピクチャの中央に位置するCTUを含む。
【0214】
一例では、選択された領域をエントロピーエンコーディングするための確率推定モデルに基づいて、確率推定モデルにおける1つ以上のパラメータが取得され得る。確率推定モデルの例は、式(2)~式(5)に記載されている。
【0215】
一例では、1つ以上のパラメータは、式(2)~式(5)に記載のような、ビンストリングの複数の確率推定値に関連付けられた適応レート及び適応重みを含む。各確率推定値に関連付けられた適応レートの各々は、ビンストリングに対する2つの近接する確率間の量子化ステップサイズ(例えば、2つの近接する確率状態間の差Δp)を示す。
【0216】
一例では、先行するピクチャに関連付けられた階層的時間構造における第1のレベルが、カレントピクチャに関連付けられた階層的時間構造における第2のレベルよりも低くなるように、ビットストリーム内の複数のピクチャから先行するピクチャを選択する。第1のレベルの各ピクチャは、第2のレベルにおける1つ以上のピクチャの各々をデコーディングする前にデコーディングされている。
【0217】
一例では、判定された先行する確率情報を、先行するピクチャの各領域をエントロピーデコーディングするために使用される判定された先行する確率情報の第2の量子化精度(例えば、8ビット精度)よりも低い第1の量子化精度(例えば、4ビット精度)で記憶する。第1の量子化精度で記憶され判定された先行する確率情報に基づいて初期確率情報を判定することができる。
【0218】
一例では、ビットストリーム内のフラグは、初期確率情報が、先行するピクチャから判定された先行する確率情報に基づいて判定されることを示す。
【0219】
一例では、確率推定モデルは、コンテキスト適応モデルである。コーディングされたビットは、コンテキスト適応二値算術コーディング(CABAC)でエントロピーエンコーディングされ得る。
【0220】
図18は、本開示の一実施形態による、処理(例えば、デコーディング処理)(1800)を概説するフローチャートを示す。処理(1800)は、ビデオ/画像デコーダで使用され得る。処理(1800)は、受信回路機構及び処理回路機構を含むことができるビデオ/画像コーディングのための装置によって実行され得る。端末デバイス(310)、(320)、(330)及び(340)における処理回路機構、ビデオデコーダ(410)の機能を行う処理回路機構、ビデオデコーダ(510)の機能を処理回路機構などの装置における処理回路機構は、処理(1800)を行うように構成され得る。いくつかの例では、処理(1800)は、ビデオエンコーダ(例えば、ビデオエンコーダ(403)、ビデオエンコーダ(603))で使用される。一例では、処理(1800)は、ビデオエンコーダ(例えば、ビデオエンコーダ(403)、ビデオエンコーダ(603))の機能を行う処理回路機構によって実行される。いくつかの実施形態では、処理(1800)はソフトウェア命令で実装され、したがって、処理回路機構がソフトウェア命令を実行するときに、処理回路機構は処理(1800)を行う。処理は、(S1801)から開始し、(S1810)に進む。
【0221】
(S1810)において、カレントピクチャと先行するピクチャとを含むビットストリームを受信する。先行するピクチャは、複数の領域を含むことができる。複数の領域の各領域は、エントロピーコーディングされ得る。
【0222】
(S1820)において、先行するピクチャ内の複数の領域の各エントロピーコーディングされた領域に関連付けられた先行する確率情報が判定される。
【0223】
(S1830)において、(i)カレントピクチャ内の独立にデコーディング可能なコーディングセグメントの場所若しくは量子化パラメータ、又は(ii)独立にデコーディング可能なコーディングセグメントの構文情報に基づいて、先行するピクチャ内の複数の領域の中から領域が選択され得る。独立にデコーディング可能なコーディングセグメントは、カレントピクチャ又はカレントピクチャ内の領域(例えば、スライス)であり得る。
【0224】
独立にデコーディング可能なコーディングセグメントは、カレントピクチャ内のスライスであり得る。一例では、独立にデコーディング可能なコーディングセグメントは、カレントピクチャ内のイントラスライス(Iスライス)、双予測スライス(Bスライス)、及び予測スライス(Pスライス)のうちの1つである。
【0225】
一例では、独立にデコーディング可能なコーディングセグメントは、カレントピクチャである。複数の領域のうちどの領域が選択されるかを示す構文情報に基づいて、その領域が選択され得る。
【0226】
一例では、構文情報は、複数の領域のうちどの領域が選択されるかを示すインデックスを含む。
【0227】
一例では、先行するピクチャ内の複数の領域は、先行するピクチャの4つのコーナーと中央にそれぞれ位置するコーディングツリーユニット(CTU)を含む。カレントピクチャは、4つのコーナー領域と1つの中央領域と、を含む。ブロックがカレントピクチャの4つのコーナー領域のうちの1つに位置することに基づいて、先行するピクチャの4つのコーナーのうちの1つに位置するCTUが選択され得る。ブロックがカレントピクチャの中央領域に位置することに基づいて、先行するピクチャの中央に位置するCTUが選択され得る。領域は、先行するピクチャの4つのコーナーのうちの1つに位置するCTU、又は先行するピクチャの中央に位置するCTUを含む。
【0228】
(S1840)において、独立にデコーディング可能なコーディングセグメント内のブロックの1つ以上のカレント構文要素をエントロピーデコーディングするための初期確率情報が、選択された領域をエントロピーデコーディングすることに関連付けられ判定された先行する確率情報に基づいて判定され得る。1つ以上のカレント構文要素は、最初に、独立にデコーディング可能なコーディングセグメント内の構文要素の中からエントロピーデコーディングされる。
【0229】
ブロックは、独立にデコーディング可能なコーディングセグメント内のブロックの中からエントロピーデコーディングされる最初のブロックであり得る。
【0230】
(S1850)において、1つ以上のカレント構文要素に関連付けられたコーディングされたビットが、初期確率情報及びコーディングされたビットの確率推定モデルに基づいて、1つ以上のカレント構文要素に関連付けられたビンストリングにエントロピーデコーディングされ得る。
【0231】
次いで、処理(1800)は、(S1899)に進み、終了する。
【0232】
処理(1800)は、様々なシナリオに好適に適応され得、処理(1800)のステップは、それに応じて調整され得る。処理(1800)のステップのうちの1つ以上が、適応され、省略され、繰り返され、及び/又は組み合わされ得る。任意の好適な順序を使用して、処理(1800)を実装することができる。追加のステップが追加され得る。
【0233】
一例では、選択された領域をエントロピーデコーディングするための確率推定モデルに基づいて、確率推定モデルにおける1つ以上のパラメータが取得され得る。確率推定モデルの例は、式(2)~式(5)に記載されている。
【0234】
一例では、1つ以上のパラメータは、式(2)~式(5)に記載のような、ビンストリングの複数の確率推定値に関連付けられた適応レート及び適応重みを含む。各確率推定値に関連付けられた適応レートの各々は、ビンストリングに対する2つの近接する確率間の量子化ステップサイズ(例えば、2つの近接する確率状態間の差Δp)を示す。
【0235】
一例では、先行するピクチャに関連付けられた階層的時間構造における第1のレベルが、カレントピクチャに関連付けられた階層的時間構造における第2のレベルよりも低くなるように、ビットストリーム内の複数のピクチャから先行するピクチャを選択する。第1のレベルの各ピクチャは、第2のレベルにおける1つ以上のピクチャの各々をデコーディングする前にデコーディングされている。
【0236】
一例では、判定された先行する確率情報を、先行するピクチャの各領域をエントロピーデコーディングするために使用される判定された先行する確率情報の第2の量子化精度(例えば、8ビット精度)よりも低い第1の量子化精度(例えば、4ビット精度)で記憶する。第1の量子化精度で記憶され判定された先行する確率情報に基づいて初期確率情報を判定することができる。
【0237】
一例では、ビットストリーム内のフラグは、初期確率情報が、先行するピクチャから判定された先行する確率情報に基づいて判定されることを示す。
【0238】
一例では、確率推定モデルは、コンテキスト適応モデルである。コーディングされたビットは、コンテキスト適応二値算術コーディング(CABAC)でエントロピーデコーディングされ得る。
【0239】
本開示の実施形態は、別々に、又は任意の順序で組み合わせて使用されてもよい。さらに、方法(又は実施形態)、エンコーダ、及びデコーダの各々は、処理回路機構(例えば、1つ以上のプロセッサ、又は1つ以上の集積回路)によって実装されてもよい。一例において、1つ以上のプロセッサは、非一時的なコンピュータ可読媒体に記憶されたプログラムを実行する。
【0240】
上述の技法は、コンピュータ可読命令を使用し、1つ以上のコンピュータ可読媒体に物理的に記憶されたコンピュータソフトウェアとして実装され得る。例えば、
図19は、開示された主題の特定の実施形態を実装するのに好適なコンピュータシステム(1900)を示す。
【0241】
コンピュータソフトウェアは、アセンブリ、コンパイル、リンク、又は類似のメカニズムの対象となり得る任意の好適な機械コード又はコンピュータ言語を使用してコード化され得、1つ以上のコンピュータ中央処理ユニット(CPU)、グラフィック処理ユニット(GPU)などによって、直接的に、又は解釈、マイクロコード実行などを通して実行され得る命令を含むコードを作成する。
【0242】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、モノのインターネットのデバイスなどを含む様々なタイプのコンピュータ又はそのコンポーネント上で実行され得る。
【0243】
コンピュータシステム(1900)のための
図19に示されるコンポーネントは、本質的に例示的なものであり、本開示の実施形態を実装するコンピュータソフトウェアの使用又は機能の範囲に関していかなる制限も示唆することを意図していない。コンポーネントの構成は、コンピュータシステム(1900)の例示的な実施形態に示されているコンポーネントの任意の1つ又は組み合わせに関連するいかなる従属性又は要件も有していると解釈されてはならない。
【0244】
コンピュータシステム(1900)は、特定のヒューマンインターフェース入力デバイスを含んでもよい。このようなヒューマンインターフェース入力デバイスは、例えば、触覚入力(例えば、キーストローク、スワイプ、データグローブの動き)、オーディオ入力(例えば、音声、拍手)、視覚入力(例えば、ジェスチャ)、嗅覚入力(描写せず)を通して、1人以上の人間ユーザによる入力に応答してもよい。また、ヒューマンインターフェースデバイスは、オーディオ(例えば、発話、音楽、周囲音)、画像(例えば、スキャン画像、静止画像カメラから取得される写真画像)、ビデオ(例えば、2次元ビデオ、立体画像を含む3次元ビデオ)などの人間による意識的入力に必ずしも直接関連しない特定の媒体をキャプチャするために使用され得る。
【0245】
入力ヒューマンインターフェースデバイスは、キーボード(1901)、マウス(1902)、トラックパッド(1903)、タッチスクリーン(1910)、データグローブ(図示せず)、ジョイスティック(1905)、マイクロホン(1906)、スキャナ(1907)、カメラ(1908)のうちの1つ以上(各々1つのみが描写されている)を含んでもよい。
【0246】
コンピュータシステム(1900)はまた、特定のヒューマンインターフェース出力デバイスを含んでもよい。このようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音、光、及び嗅覚/味覚を通して、1人以上の人間ユーザの感覚を刺激していてもよい。このようなヒューマンインターフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン(1910)、データグローブ(図示せず)、又はジョイスティック(1905)による触覚フィードバックであるが、入力デバイスとして機能しない触覚フィードバックデバイスであり得る)、オーディオ出力デバイス(例えば、スピーカー(1909)、ヘッドフォン(描写せず))、視覚出力デバイス(例えば、CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含むタッチスクリーン(1910)であって、各々、触覚スクリーン入力能力を有するか、又は有さず、これらのうちのいくつかは、二次元の視覚出力又は立体出力のような手段を通してそれ以上の三次元の出力を出力することが可能であり得るもの、仮想現実グラス(描写せず)、ホログラフィックディスプレイ、スモークタンク(描写せず))、及びプリンタ(描写せず)を含んでもよい。
【0247】
コンピュータシステム(1900)はまた、CD/DVD又は同様の媒体(1921)を有するCD/DVD ROM/RW(1920)を含む光媒体、サムドライブ(1922)、取り外し可能なハードドライブ又はソリッドステートドライブ(1923)、テープ及びフロッピーディスク(描写せず)などのレガシー磁気媒体、セキュリティドングル(描写せず)のような特殊なROM/ASIC/PLDベースのデバイスなど、人間がアクセス可能な記憶デバイス、及びそれらの関連媒体を含むことができる。
【0248】
当業者はまた、本開示の主題に関連して使用される用語「コンピュータ可読媒体」は、伝送媒体、搬送波、又は他の一時的な信号を包含しないと理解すべきである。
【0249】
コンピュータシステム(1900)はまた、1つ以上の通信ネットワーク(1955)へのインターフェース(1954)を含むことができる。ネットワークは、例えば、無線、有線、光のものとすることができる。ネットワークは、さらに、ローカル、広域、大都市、車両及び産業、リアルタイム、遅延耐性などのものとすることができる。ネットワークの例は、Ethernet(登録商標)、無線LAN、GSM、3G、4G、5G、LTEなどを含むセルラネットワーク、ケーブルTV、衛星TV、及び地上放送TVを含むTV有線及び無線広域デジタルネットワーク、CANBusを含む車両及び産業などを含む。特定のネットワークは、通常、特定の汎用データポート又は周辺バス(1949)(例えば、コンピュータシステム(1900)のUSBポート)に取り付けられる外部のネットワークインターフェースアダプタを必要とし、他のものは、通常、後述するシステムバス(例えば、PCコンピュータシステムへのEthernetインターフェース又はスマートフォンコンピュータシステムへのセルラーネットワークインターフェース)への取り付けによって、コンピュータシステム(1900)のコアに組み込まれる。これらのネットワークのいずれかを使用して、コンピュータシステム(1900)は、他のエンティティと通信することができる。このような通信は、一方向性の受信のみ(例えば、放送テレビ)、一方向性の送信のみのもの(例えば、CANbusから特定のCANbusまで)、又は、例えば、ローカル又は広域デジタルネットワークを使用する他のコンピュータシステムへの双方向性のものとすることができる。特定のプロトコル及びプロトコルスタックは、上述したように、それらのネットワーク及びネットワークインターフェースの各々で使用され得る。
【0250】
前述のヒューマンインターフェースデバイス、人間がアクセス可能な記憶デバイス、及びネットワークインターフェースは、コンピュータシステム(1900)のコア(1940)に取り付けられ得る。
【0251】
コア(1940)は、1つ以上のCPU(Central Processing Unit)(1941)、GPU(Graphics Processing Unit)(1942)、FPGA(Field Programmable Gate Area)(1943)の形態の特殊化されたプログラム可能な処理ユニット、特定のタスクのためのハードウェアアクセラレータ(1944)、グラフィックアダプタ(1950)などを含むことができる。これらのデバイスは、ROM(Read-only memory)(1945)、ランダムアクセスメモリ(1946)、ユーザがアクセス不可能な内部ハードドライブなどの内部マスストレージ(1947)、SSDなどと一緒に、システムバス(1948)を通して接続されてもよい。いくつかのコンピュータシステムでは、システムバス(1948)は、追加的なCPU、GPUなどによる拡張を可能にするために、1つ以上の物理プラグの形態でアクセス可能とすることができる。周辺デバイスは、コアのシステムバス(1948)に直接取り付けられるか、周辺バス(1949)通して取り付けられるかのいずれかとすることができる。一例では、タッチスクリーン(1910)は、グラフィックアダプタ(1950)に接続され得る。周辺バスのためのアーキテクチャは、PCI、USBなどを含む。
【0252】
CPU(1941)、GPU(1942)、FPGA(1943)、及びアクセラレータ(1944)は、組み合わせて、前述のコンピュータコードを構成することができる特定の命令を実行することができる。コンピュータコードは、ROM(1945)又はRAM(1946)に記憶され得る。一時的なデータはまた、RAM(1946)に記憶され得るが、永続性データは、例えば、内部マスストレージ(1947)に記憶され得る。1つ以上のCPU(1941)、GPU(1942)、マスストレージ(1947)、ROM(1945)、RAM(1946)などと密接に関連付けられ得るキャッシュメモリの使用を通して、メモリデバイスのいずれかへの高速ストレージ及び取り出しが、可能にされ得る。
【0253】
コンピュータ可読媒体は、様々なコンピュータ実装された動作を行うためのコンピュータコードをその上に有することができる。媒体及びコンピュータコードは、本開示の目的のために特別に設計及び構築することができるか、又はそれらは、コンピュータソフトウェア分野の当業者に周知かつ入手可能な種類のものとすることができる。
【0254】
一例として、限定するものではなく、アーキテクチャ、具体的にはコア(1940)を有するコンピュータシステム(1900)は、1つ以上の有形のコンピュータ可読媒体に具現化されたソフトウェアを実行するプロセッサ(CPU、GPU、FPGA、アクセラレータなどを含む)の結果として機能を提供することができる。このようなコンピュータ可読媒体は、コア内部マスストレージ(1947)、ROM(1945)などの非一時的な性質のコア(1940)の特定のストレージと同様に、上記に紹介したユーザがアクセス可能なマスストレージに関連付けられた媒体とすることができる。本開示の様々な実施形態を実装するソフトウェアは、そのようなデバイスに記憶され、コア(1940)によって実行され得る。コンピュータ可読媒体は、特定のニーズに応じて、1つ以上のメモリデバイス又はチップを含むことができる。ソフトウェアは、コア(1940)、具体的には内部のプロセッサ(CPU、GPU、FPGAなどを含む)に、RAM(1946)に記憶されたデータ構造を定義することと、ソフトウェアによって定義された処理に従ってこのようなデータ構造を修正することとを含む、本明細書に記載の特定の処理又は特定の処理の特定の部分を実行させることができる。追加的又は代替的には、コンピュータシステムは、回路(例えば、アクセラレータ(1944))内に配線されたか、又は他の方法で具現化された論理の結果として、機能を提供することができ、この回路は、本明細書に記載の特定の処理又は特定の処理の特定の部分を実行するために、ソフトウェアの代わりに、又はソフトウェアと共に動作することができる。ソフトウェアへの言及は、論理を包含することができ、適切な場合には、その逆もできる。コンピュータ可読媒体への言及は、実行のためのソフトウェアを記憶する回路(集積回路(IC)など)、実行のための論理を具体化する回路、又は適切な場合にはその両方を包含することができる。本開示は、ハードウェア及びソフトウェアの任意の好適な組み合わせを包含する。
付録A:頭字語
JEM:ジョイント探索モデル(joint exploration model)
VVC:汎用ビデオコーディング(versatile video coding)
BMS:ベンチマークセット(benchmark set)
MV:動きベクトル(Motion Vector)
HEVC:高効率ビデオコーディング(High Efficiency Video Coding)
SEI:補助強化情報(Supplementary Enhancement Information)
VUI:ビデオユーザビリティ情報(Video Usability Information)
GOP:ピクチャグループ(Group of Pictures)
TU:変換ユニット(Transform Unit)
PU:予測ユニット(Prediction Unit)
CTU:コーディングツリーユニット(Coding Tree Unit)
CTB:コーディングツリーブロック(Coding Tree Block)
PB:予測ブロック(Prediction Block)
HRD:仮想参照デコーダ(Hypothetical Reference Decoder)
SNR信号雑音比(Signal Noise Ratio)
CPU:中央処理ユニット(Central Processing Unit)
GPU:グラフィック処理ユニット(Graphics Processing Unit)
CRT:陰極線管(Cathode Ray Tube)
LCD:液晶ディスプレイ(Liquid-Crystal Display)
OLED:有機発光ダイオード(Organic Light-Emitting Diode)
CD:コンパクトディスク(Compact Disc)
DVD:デジタルビデオディスク(Digital Video Disc)
ROM:読み出し専用メモリ(Read-Only Memory)
RAM:ランダムアクセスメモリ(Random Access Memory)
ASIC:特定用途向け集積回路(Application-Specific Integrated Circuit)
PLD:プログラマブル論理デバイス(Programmable Logic Device)
LAN:ローカルエリアネットワーク(Local Area Network)
GSM:グローバルシステムフォーモバイルコミュニケーションズ(Global System for Mobile communications)
LTE:ロングタームエボリューション(Long-Term Evolution)
CANBus:コントローラエリアネットワークバス(Controller Area Network Bus)
USB:ユニバーサルシリアルバス(Universal Serial Bus)
PCI:ペリフェラルコンポーネントインターコネクト(Peripheral Component Interconnect)
FPGA:フィールドプログラマブルゲートエリア(Field Programmable Gate Areas)
SSD:ソリッドステートドライブ(solid-state drive)
IC:集積回路(Integrated Circuit)
CU:コーディングユニット(Coding Unit)
CCLM:結合クロスコンポーネント線形モデル(combine cross-component linear model)
【0255】
本開示は、いくつかの例示的な実施形態を記載してきたが、本開示の範囲内にある変更、置換、及び様々な代替等価物がある。したがって、当業者は、本明細書に明示的に示されていないか、又は記載されていないが、本開示の原理を具体化し、本開示の精神及び範囲内にある多くのシステム及び方法を考案することができると理解されるであろう。
【国際調査報告】