(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-28
(45)【発行日】2024-11-06
(54)【発明の名称】ビデオ復号のための方法、装置及びコンピュータプログラム
(51)【国際特許分類】
H04N 19/13 20140101AFI20241029BHJP
H04N 19/157 20140101ALI20241029BHJP
H04N 19/18 20140101ALI20241029BHJP
H04N 19/70 20140101ALI20241029BHJP
【FI】
H04N19/13
H04N19/157
H04N19/18
H04N19/70
(21)【出願番号】P 2023528033
(86)(22)【出願日】2022-04-29
(86)【国際出願番号】 US2022072015
(87)【国際公開番号】W WO2023056105
(87)【国際公開日】2023-04-06
【審査請求日】2023-05-10
(32)【優先日】2021-09-29
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2022-03-31
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】チェ,ビヨンドゥ
(72)【発明者】
【氏名】リウ,シャン
(72)【発明者】
【氏名】ウェンジャー,ステファン
【審査官】田中 純一
(56)【参考文献】
【文献】特表2024-502109(JP,A)
【文献】国際公開第2022/255395(WO,A1)
【文献】国際公開第2022/147570(WO,A1)
【文献】特開2023-006203(JP,A)
【文献】Adrian Browne, et al.,Algorithm description for Versatile Video Coding and Test Model 14 (VTM 14) [online], JVET-W JVET-W2002-v1,ITU-T インターネット<URL:https://jvet-experts.org/doc_end_user/documents/23_Teleconference/wg11/JVET-W2002-v1.zip>,2021年09月25日,pp.1-105
(58)【調査した分野】(Int.Cl.,DB名)
H04N 7/12
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
デコーダにおけるビデオ復号の方法であって、
プロセッサによって、ビットストリーム内のコーディングされたビデオデータの第1範囲におけるコーディング制御のための第1構文要素を決定するステップであって、前記第1構文要素は、残差コーディングにおけるRiceパラメータ導出のための第1コーディングツールに代わる第2コーディングツールに関連付けられて
おり、前記第1構文要素を決定するステップは、構文構造内の構文要素が前記構文構造内の一般制約情報の追加ビットを示すことに応答して、前記一般制約情報の前記構文構造から前記第1構文要素を復号することを含む、ステップと、
前記第1構文要素が、前記第1範囲における前記第2コーディングツールの無効化を示す第1値であることに応答して、前記プロセッサによって、前記第2コーディングツールを呼び出すことなく、コーディングされたビデオデータの1つ以上の第2範囲を含む、コーディングされたビデオデータの前記第1範囲を復号するステップと、
を含む、方法。
【請求項2】
前記第1構文要素は、前記デコーダにおける出力レイヤセット内のピクチャのコーディング制御のための制約情報内にある、
請求項1に記載の方法。
【請求項3】
前記第1構文要素の前記第1値は、前記出力レイヤセット内の各々のコーディングされたレイヤビデオシーケンス(CLVS)における第2コーディングツールの無効化を示す、
請求項2に記載の方法。
【請求項4】
前記ビットストリーム内のコーディングされたレイヤビデオシーケンス(CLVS)のコーディング制御のための第2構文要素を、前記CLVSを復号するために前記第2コーディングツールの呼び出しがないことを示す値を有するよう制約するステップ、
を更に含む、請求項2に記載の方法。
【請求項5】
前記第1構文要素が第2値であることに応答して、前記ビットストリーム内のコーディングされたレイヤビデオシーケンス(CLVS)のコーディング制御のための第2構文要素の値を決定するステップを更に含み、前記第2構文要素は、前記CLVSにおける前記第2コーディングツールの有効化/無効化を示す、
請求項2に記載の方法。
【請求項6】
前記第2構文要素の値を決定するステップは、
前記第2構文要素が前記CLVSのためのシーケンスパラメータセット(SPS)内に存在しないことに応答して、前記CLVSにおける前記第2コーディングツールの無効化を示すために前記第2構文要素の前記値を推論するステップ、
を更に含む、請求項5に記載の方法。
【請求項7】
前記第2コーディングツールは、前記デコーダによってサポートされていないレンジ拡張において定義される、
請求項1に記載の方法。
【請求項8】
前記第2コーディングツールは、残差コーディングの間の絶対値の二値化のためのRiceパラメータ導出のためのものである、
請求項
7に記載の方法。
【請求項9】
請求項1乃至
8のいずれか一項に記載の方法を実行するよう構成される処理回路を含む、ビデオ復号のための装置。
【請求項10】
少なくとも1つのプロセッサによって実行されると、前記少なくとも1つのプロセッサに、請求項1乃至
8のいずれか一項に記載の方法を実行させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
参照による組み込み
本出願は、2021年9月29日に出願された米国仮出願第63/250,166号、「TECHNIQUES FOR CONSTRAINT FLAG SIGNALING FOR RANGE EXTENSION WITH RESIDUAL RICE CODING EXTENSION」の優先権の利益を主張する、2022年3月31日に出願された米国特許出願第17/710,778号、「TECHNIQUES FOR CONSTRAINT FLAG SIGNALING FOR RANGE EXTENSION WITH RESIDUAL RICE CODING EXTENSION」の利益を主張する。先の出願の開示は、参照によりその全体が本明細書に組み込まれる。
【0002】
本開示は、一般的にビデオコーディングに関連する実施形態を説明する。
【背景技術】
【0003】
本明細書で提供される背景説明は、本開示の文脈を一般的に提示するためのものである。現在名前を挙げられている発明者の研究は、その研究がこの背景技術に記載された範囲において、出願時に先行技術として通常見なされ得ない記載の態様とともに、明示的にも暗黙的にも本開示に対する先行技術として認められない。
【0004】
ビデオコーディング及び復号は、動き補償を伴うインターピクチャ予測を使用して実行されることができる。非圧縮デジタルビデオは、一連のピクチャを含むことができ、各ピクチャは、例えば1920×1080の輝度サンプル及び関連するクロミナンスサンプルの空間寸法を有する。一連のピクチャは、例えば毎秒60ピクチャ又は60Hzの固定又は可変ピクチャレート(非公式にフレームレートとしても知られる)を有することができる。非圧縮ビデオは、特定のビットレート要件を有する。例えばサンプル当たり8ビットの1080p60 4:2:0ビデオ(60Hzのフレームレートでの1920×1080の輝度サンプル解像度)は、1.5Gbit/sに近い帯域幅を必要とする。このようなビデオの1時間は、600Gバイトを超える記憶領域を必要とする。
【0005】
ビデオコーディング及び復号の1つの目的は、圧縮を通した、入力ビデオ信号の冗長性の低減である可能性がある。圧縮は、前述の帯域幅及び/又は記憶領域の要件を、場合によっては2桁以上低減するのを助けることができる。可逆圧縮と非可逆圧縮の両方、並びにそれらの組合せを採用することができる。可逆圧縮は、圧縮された元の信号から元の信号の正確なコピーを再構成することができる技術を指す。非可逆圧縮を使用するとき、再構成信号は、元の信号と同一でない可能性はあるが、元の信号と再構成信号との間の歪みは、再構成信号を、意図されるアプリケーションに有用であるようにするために十分に小さい。ビデオの場合、非可逆圧縮は広く使用される。許容される歪み量はアプリケーションに依存し、例えば特定の消費者ストリーミングアプリケーションのユーザは、テレビジョン分配アプリケーションのユーザよりも高い歪みを許容し得る。達成可能な圧縮比は、より高い許容可能な/容認可能な歪みが、より高い圧縮比をもたらすことができることを反映する可能性がある。
【0006】
ビデオエンコーダ及びデコーダは、例えば動き補償、変換、量子化及びエントロピーコーディングを含む、いくつかの広範なカテゴリからの技術を利用することができる。
【0007】
ビデオコーデック技術は、イントラコーディングとして知られる技術を含むことができる。イントラコーディングでは、サンプル値は、以前に再構成された参照ピクチャからのサンプル又は他のデータを参照することなく表される。いくつかのビデオコーデックでは、ピクチャはサンプルのブロックに空間的に細分される。イントラモードでサンプルのすべてのブロックがコーディングされるとき、そのピクチャはイントラピクチャとすることができる。独立デコーダリフレッシュピクチャ(independent decoder refresh pictures)のようなイントラピクチャ及びそれらの派生物を使用して、デコーダ状態をリセットすることができ、したがって、コーディングされたビデオビットストリーム及びビデオセッションにおける最初のピクチャとして、あるいは静止画像として使用することができる。イントラブロックのサンプルに、変換を受けさせることができ、変換係数を、エントロピーコーディングの前に量子化することができる。イントラ予測は、事前変換領域(pre-transform domain)におけるサンプル値を最小化する技術であり得る。場合によっては、変換後のDC値がより小さく、AC係数がより小さいほど、エントロピーコーディング後のブロックを表すために所与の量子化ステップサイズで必要とされるビット数は少ない。
【0008】
例えばMPEG-2世代のコーディング技術から知られているような伝統的なイントラコーディングは、イントラ予測を使用しない。しかしながら、いくつかのより新しいビデオ圧縮技術は、例えば空間的に隣接し、かつ復号順序において先行する、データのブロックの符号化/復号中に取得される、周囲のサンプルデータ及び/又はメタデータから試みる技術を含む。このような技術は、以下では「イントラ予測」技術と呼ばれる。少なくともいくつかの場合には、イントラ予測は、再構成中の現在のピクチャからの参照データのみを使用し、参照ピクチャからのものは使用しないことに留意されたい。
【0009】
多くの異なる形式のイントラ予測が存在し得る。所与のビデオコーディング技術において、そのような技術のうちの2つ以上を使用することができるとき、使用中の技術を、イントラ予測モードにおいてコーディングすることができる。ある場合には、モードは、サブモード及び/又はパラメータを有することができ、これらを個々にコーディングするか又はモードコードワード(mode codeword)に含めることができる。どのコードワードを、所与のモード/サブモード/パラメータの組合せに使用するかは、イントラ予測を通したコーディング効率ゲインに影響を与える可能性があり、コードワードをビットストリームに変換するために使用されるエントロピーコーディング技術も同様であり得る。
【0010】
イントラ予測の特定のモードは、H.264で導入され、H.265で精査され、JEM(joint exploration model)、VVC(versatile video coding)及びベンチマークセット(BMS:benchmark set)のようなより新しいコーディング技術で更に精査された。既に利用可能なサンプルに属している隣接するサンプル値を使用して、予測子ブロック(predictor block)を形成することができる。隣接するサンプルのサンプル値は、方向に従って予測子ブロックにコピーされる。使用中の方向への参照は、ビットストリームでコーディングされることができるか又はそれ自体が予測され得る。
【0011】
図1Aを参照すると、右下に示されているのは、H.265の33の可能な予測子方向(predictor directions)(35のイントラモードの33の角度モードに対応する)からわかる、9つの予測子方向のサブセットである。矢印が収束する点(101)は、予測されているサンプルを表す。矢印は、サンプルが予測されている方向を表す。例えば矢印(102)は、サンプル(101)が、1つのサンプル又は複数のサンプルから右上へ、水平から45度の角度で予測されることを示す。同様に、矢印(103)は、サンプル(101)が、1つのサンプル又は複数のサンプルからサンプル(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)と一致する予測方向を示すシグナリングを含むと仮定する、すなわち、サンプルは、1つ又は複数の予測サンプルから右上へ、水平から45度の角度で予測される。この場合、サンプルS41、S32、S23、S14は、同じ参照サンプルR05から予測される。次いで、サンプルS44は、参照サンプルR08から予測される。
【0014】
ある場合には、特に方向が45度で均一に割り切れないときは、参照サンプルを計算するために、複数の参照サンプルの値が、例えば補間(interpolation)を通して組み合わされ得る。
【0015】
ビデオコーディング技術が発展するにつれて、可能な方向の数が増えている。H.264(2003年)では、9つの異なる方向を表すことができる。これは、H.265(2013年)では33に増加し、開示の時点で、JEM/VVC/BMSは、65の方向をサポートすることができる。実験は、最も可能性がある方向を識別するために実施され、エントロピーコーディングにおける特定の技術は、それらの最も可能性がある方向を少数のビットで表すために使用され、より可能性が少ない方向に対して特定のペナルティを受け入れる。さらに、時には方向それ自体を、隣接する既に復号されたブロックにおいて使用される隣接方向から予測することができる。
【0016】
図1Bは、JEMに従う65のイントラ予測方向を示す概略(180)を示しており、経時的な予測方向の数の増加を例示す。
【0017】
コーディングされたビデオビットストリーム内の、方向を表すイントラ予測方向ビットのマッピングは、ビデオコーディング技術ごとに異なる可能性があり、例えばイントラ予測モードへの予測方向の単純な直接マッピングから、コードワードへ、最確モード(most probable mode)を含む複雑な適応スキームへ及び類似の技術に及ぶ可能性がある。しかしながら、すべての場合において、特定の他の方向よりもビデオコンテンツ内において生じる可能性が統計的に低い、特定の方向が存在する可能性がある。ビデオ圧縮の目標は冗長性の低減であるので、それらのより可能性が低い方向は、良好に機能するビデオコーディング技術では、より可能性が高い方向よりも多くのビット数によって表される。
【0018】
動き補償は、非可逆圧縮技術であり得、以前に再構成されたピクチャ又はその一部(参照ピクチャ)からのサンプルデータのブロックが、動きベクトル(以下、MV)によって示される方向に空間的にシフトされた後に、新たに再構成されたピクチャ又はピクチャの一部の予測に使用される技術に関連する可能性がある。場合によっては、参照ピクチャは、現在再構成中のピクチャと同じものとすることができる。MVは、2次元X及びY又は3次元を有することができ、3番目の次元(third)は、使用中の参照ピクチャの指示である(後者は、間接的に、時間次元である可能性がある)。
【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予測メカニズムのうち、ここで説明されるのは「空間マージ(spatial merge)」と呼ばれる技術である。
【0021】
図2を参照すると、現在のブロック(201)は、エンコーダによって、動き探索プロセス中に、空間的にシフトされた同じサイズの前のブロックから予測可能であることが見出されたサンプルを含む。そのMVを直接コーディングする代わりに、MVを、1つ以上の参照ピクチャに関連付けられるメタデータから、例えば(復号順序で)最新の参照ピクチャから、A0、A1及びB0、B1、B2(それぞれ202から206)と示される5つの周囲のサンプルのいずれか1つに関連付けられるMVを使用して導出することができる。H.265では、MV予測は、隣接ブロックが使用しているものと同じ参照ピクチャからの予測子を使用することができる。
【発明の概要】
【0022】
本開示の態様は、ビデオデータ処理のための方法及び装置を提供する。いくつかの実施形態において、ビデオデータ処理のための装置は処理回路を含む。例えば処理回路は、ビットストリーム内のコーディングされたビデオデータの第1範囲(first scope)におけるコーディング制御のための第1構文要素を決定する。第1構文要素は、残差コーディングにおけるRiceパラメータ導出(Rice parameter derivation)のための第1コーディングツールに代わる第2コーディングツールに関連付けられる。第1構文要素が、第1範囲における第2コーディングツールの無効化を示す第1値であることに応答して、処理回路は、第2コーディングツールを呼び出すことなく、コーディングされたビデオデータの1つ以上の第2範囲を含む、コーディングされたビデオデータの第1範囲を復号する。
【0023】
いくつかの実施形態において、第1構文要素は、出力レイヤセット内のピクチャのコーディング制御のための一般制約情報(general constraint information)内にある。いくつかの例において、第1構文要素の第1値は、出力レイヤセット内の各コーディングされたレイヤビデオシーケンス(CLVS:coded layer video sequence)における第2コーディングツールの無効化を示す。
【0024】
いくつかの例において、処理回路は、ビットストリーム内のコーディングされたレイヤビデオシーケンス(CLVS)のコーディング制御のための第2構文要素を、CLVSを復号するために第2コーディングツールの呼び出しがないことを示す値を有するよう制約することができる。
【0025】
いくつかの実施形態において、第1構文要素が第2値であることに応答して、処理回路は、ビットストリーム内のコーディングされたレイヤビデオシーケンス(CLVS)のコーディング制御のための第2構文要素の値を決定する。第2構文要素は、CLVSにおける第2コーディングツールの有効化/無効化を示す。第2コーディングツールは、残差コーディングの間の絶対値の二値化のためのRiceパラメータ導出のためのものである。
【0026】
いくつかの例において、処理回路は、第2構文要素がCLVSのためのシーケンスパラメータセット(SPS:sequence parameter set)内に存在しないことに応答して、CLVSにおける第2コーディングツールの不使用を示すための第2構文要素の値を推論する。
【0027】
いくつかの例において、処理回路は、構文構造内の構文要素が構文構造内の一般制約情報の追加ビットを示すことに応答して、一般制約情報の構文構造から第1構文要素を復号する。
【0028】
いくつかの例において、第2コーディングツールは、規格のレンジ拡張(range extension)において定義され、レンジ拡張は、当該装置によってサポートされていない。
【0029】
本開示の態様はまた、ビデオ復号のためにコンピュータによって実行されると、コンピュータに、ビデオ復号のための方法を実行させる命令を記憶する、非一時的なコンピュータ読取可能媒体も提供する。
【図面の簡単な説明】
【0030】
開示される主題の更なる特徴、性質及び様々な利点は、以下の詳細な説明及び添付の図面からより明らかになる。
【0031】
【
図1A】イントラ予測モードの例示的なサブセットの概略図である。
【0032】
【0033】
【
図2】一例における、現在のブロックとその周辺の空間マージ候補の概略図である。
【0034】
【
図3】一実施形態による通信システム(300)の簡略化されたブロック図の概略図である。
【0035】
【
図4】一実施形態による通信システム(400)の簡略化されたブロック図の概略図である。
【0036】
【
図5】一実施形態によるデコーダの簡略化されたブロック図の概略図である。
【0037】
【
図6】一実施形態によるエンコーダの簡略化されたブロック図の概略図である。
【0038】
【
図7】別の実施形態によるエンコーダのブロック図である。
【0039】
【
図8】別の実施形態によるデコーダのブロック図である。
【0040】
【
図9】本開示の実施形態による適応解像度変更(ARC:adaptive resolution change)パラメータのシグナリングの例を示す図である。
【0041】
【
図10】アップサンプル又はダウンサンプルのファクタ、コードワード及びExt-Golombコードのマッピングのための表(1000)の例を示す図である。
【0042】
【
図11】本開示のいくつかの実施形態によるARCパラメータのシグナリングのいくつかの例を示す図である。
【0043】
【
図12】いくつかの例におけるPTL構文要素のセットの構文構造例を示す図である。
【0044】
【
図13】いくつかの例における一般制約情報の構文構造例を示す図である。
【0045】
【
図14A】本開示のいくつかの実施形態による、PTL構文構造と一般制約情報の構文構造を含む、PTL情報の例を示す図である。
【
図14B】本開示のいくつかの実施形態による、PTL構文構造と一般制約情報の構文構造を含む、PTL情報の例を示す図である。
【0046】
【
図15A】本開示の一実施形態による一般制約情報の構文構造の例を示す図である。
【
図15B】本開示の一実施形態による一般制約情報の構文構造の例を示す図である。
【0047】
【
図16】本開示のいくつかの実施形態による一般制約情報の構文構造を示す図である。
【0048】
【
図17】本開示のいくつかの実施形態によるシーケンスパラメータセット(SPS)レンジ拡張の構文構造例を示す図である。
【0049】
【
図18】本開示の実施形態によるプロセスを概説するフローチャートを示す図である。
【0050】
【
図19】本開示の実施形態によるプロセスを概説するフローチャートを示す図である。
【0051】
【
図20】一実施形態によるコンピュータシステムの概略図である。
【発明を実施するための形態】
【0052】
図3は、本開示の一実施形態による通信システム(300)の簡略化されたブロック図を示す。通信システム(300)は、例えばネットワーク(350)を介して互いに通信することができる複数の端末デバイスを含む。例えば通信システム(300)は、ネットワーク(350)を介して相互接続される第1の対の端末デバイス(310)及び(320)を含む。
図3の例では、第1の対の端末デバイス(310)及び(320)は、データの一方向伝送を実行する。例えば端末デバイス(310)は、ネットワーク(350)を介して他の端末デバイス(320)に伝送するために、ビデオデータ(例えば端末デバイス(310)によってキャプチャされるビデオピクチャのストリーム)をコーディングし得る。符号化されたビデオデータは、1つ以上のコーディングされたビデオビットストリームの形態で伝送することができる。端末デバイス(320)は、ネットワーク(350)からコーディングされたビデオデータを受け取ることができ、コーディングされたビデオデータを復号して、ビデオピクチャを復元し、復元されたビデオデータに従ってビデオピクチャを表示す。一方向データ伝送は、メディア供給アプリケーション等において一般的であり得る。
【0053】
別の例では、通信システム(300)は、例えばビデオ会議中に生じ得るコーディングされたビデオデータの双方向伝送を実行する、第2の対の端末デバイス(330)及び(340)を含む。データの双方向伝送のために、一例では、端末デバイス(330)及び(340)の各端末デバイスは、ネットワーク(350)を介して端末デバイス(330)及び(340)のうちの他方の端末デバイスに伝送するために、ビデオデータ(例えばその端末デバイスによってキャプチャされるビデオピクチャのストリーム)をコーディングし得る。端末デバイス(330)及び(340)の各端末デバイスはまた、端末デバイス(330)及び(340)の他方の端末デバイスによって伝送された、コーディングされたビデオデータを受け取ることができ、コーディングされたビデオデータを復号してビデオピクチャを復元することができ、復元されたビデオデータに従って、アクセス可能なディスプレイデバイスでビデオピクチャを表示することができる。
【0054】
図3の例では、端末デバイス(310)、(320)、(330)及び(340)は、サーバ、パーソナルコンピュータ及びスマートフォンとして例示され得るが、本開示の原理は、そのように限定され得ない。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤ及び/又は専用のビデオ会議装置への適用を見出す。ネットワーク(350)は、例えばワイヤライン(有線)及び/又は無線通信ネットワークを含め、端末デバイス(310)、(320)、(330)及び(340)の間でコーディングされたビデオデータを伝達する任意の数のネットワークを表す。通信ネットワーク(350)は、回線スイッチ及び/又はパケットスイッチチャネルにおいてデータを交換し得る。代表的なネットワークは、電気通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク及び/又はインターネットを含む。本議論の目的のために、ネットワーク(350)のアーキテクチャ及びトポロジは、本明細書において以下に説明されない限り、本開示の動作に対して重要ではないことがある。
【0055】
図4は、開示される主題の適用の例として、ストリーミング環境におけるビデオエンコーダ及びビデオデコーダの配置を示す。開示される主題は、例えばビデオ会議やデジタルTV、CD、DVD、メモリスティック等を含むデジタルメディアにおける圧縮ビデオの記憶等を含む、他のビデオ対応アプリケーションにも同様に適用可能であり得る。
【0056】
ストリーミングシステムは、例えば圧縮されていないビデオピクチャのストリーム(402)を作成するビデオソース(401)、例えばデジタルカメラを含むことができる、ビデオキャプチャサブシステム(413)を含み得る。一例では、ビデオピクチャのストリーム(402)は、デジタルカメラによって撮られたサンプルを含む。ビデオピクチャのストリーム(402)は、符号化ビデオデータ(404)(又はコーディングされたビデオビットストリーム)と比較したときの高データ量を強調するために太線として示されており、ビデオソース(401)に結合されるビデオエンコーダ(403)を含む電子デバイス(420)によって処理されることができる。ビデオエンコーダ(403)は、以下により詳細に説明されるような、開示される主題の態様を可能にするか又は実装するために、ハードウェア、ソフトウェア又はそれらの組合せを含むことができる。符号化ビデオデータ(404)(又は符号化ビデオビットストリーム(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の文脈で使用され得る。
【0057】
電子デバイス(420)及び(430)は、他の構成要素(図示せず)を含むことができることに留意されたい。例えば電子デバイス(420)は、ビデオデコーダ(図示せず)を含むことができ、電子デバイス(430)は、ビデオエンコーダ(図示せず)も含むことができる。
【0058】
図5は、本開示の一実施形態による、ビデオデコーダ(510)のブロック図を示す。ビデオデコーダ(510)は、電子デバイス(530)に含まれることができる。電子デバイス(530)は、受信機(531)(例えば受信回路)を含むことができる。
図4の例のビデオデコーダ(410)の代わりに、ビデオデコーダ(510)を用いることができる。
【0059】
受信機(531)は、ビデオデコーダ(510)によって復号されるべき1つ以上のコーディングされたビデオシーケンスを受け取ることがあり;同じ又は別の実施形態では、一度に1つのコーディングされたビデオシーケンスを受け取り、この場合、各コーディングされたビデオシーケンスの復号は、他のコーディングビデオシーケンスとは独立である。コーディングされたビデオシーケンスはチャネル(501)から受け取られてよく、該チャネルは、符号化ビデオデータを記憶するストレージデバイスへのハードウェア/ソフトウェアリンクであり得る。受信機(531)は、他のデータ、例えばコーディングされたオーディオデータ及び/又は補助データストリームとともに、符号化ビデオデータを受け取ってよく、これらのデータは、それらのそれぞれの使用エンティティ(図示せず)に転送されてよい。受信機(531)は、コーディングされたビデオシーケンスを他のデータから分離し得る。ネットワークジッタをなくすために、バッファメモリ(515)が、受信機(531)とエントロピーデコーダ/パーサ(520)(以下、「パーサ(520)」)との間に結合され得る。特定の適用では、バッファメモリ(515)は、ビデオデコーダ(510)の一部である。他では、バッファメモリ(515)は、ビデオデコーダ(510)(図示せず)の外部にある可能性がある。更に他では、例えば再生タイミングを処理するためにビデオデコーダ(510)の内部にある別のバッファメモリ(515)に加えて、例えばネットワークジッタをなくすためにビデオデコーダ(510)の外部にバッファメモリ(図示せず)が存在する可能性がある。受信機(531)が、十分な帯域幅及び制御可能性を有するストア/転送デバイスから又は等同期(isosynchronous)ネットワークからデータを受信しているとき、バッファメモリ(515)は必要でないことがあり、あるいは小さいものとすることができる。インターネットのようなベストエフォート・パケットネットワークにおける使用のために、バッファメモリ(515)が必要とされることがあり、そのサイズは比較的大きいものとすることができ、有利には適応サイズとすることができ、少なくとも部分的に、ビデオデコーダ(510)の外部のオペレーティングシステム又は類似の要素(図示せず)において実装されることがある。
【0060】
ビデオデコーダ(510)は、コーディングされたビデオシーケンスからシンボル(521)を再構成するためにパーサ(520)を含み得る。これらのシンボルのカテゴリは、ビデオデコーダ(510)の動作を管理するために使用される情報と、潜在的に、電子デバイス(530)の一体部分ではないが
図5に示されたように電子デバイス(530)に結合されることができるレンダデバイス(512)(例えばディスプレイ画面)のようなレンダリングデバイスを制御する情報とを含む。レンダリングデバイスの制御情報は、補足強化情報(SEI:Supplemental Enhancement Informationメッセージ)又はビデオユーザビリティ情報(VUI:Video Usability Information)パラメータセットフラグメント(図示せず)の形式であってよい。パーサ(520)は、受信される、コーディングされたビデオシーケンスを構文解析/エントロピー復号し得る。コーディングされたビデオシーケンスのコーディングは、ビデオコーディング技術又は規格に従うことができ、可変長コーディング、ハフマンコーディング、文脈依存(context sensitivity)を伴うか伴わない算術コーディング等を含む、様々な原理に従うことができる。パーサ(520)は、コーディングされたビデオシーケンスから、ビデオデコーダ内のピクセルのサブグループのうちの少なくとも1つのサブグループについてのサブグループパラメータのセットを、グループに対応する少なくとも1つのパラメータに基づいて抽出することができる。サブグループは、ピクチャのグループ(GOPs:Groups of Pictures)、ピクチャ、タイル、スライス、マクロブロック、コーディングユニット(CUs:Coding Units)、ブロック、変換ユニット(TUs:Transform Units)、予測ユニット(PUs:Prediction Units)等を含むことができる。パーサ(520)はまた、変換係数、量子化パラメータ値、動きベクトル等のようなコーディングされたビデオシーケンス情報から抽出してもよい。
【0061】
パーサ(520)は、シンボル(521)を生成するように、バッファメモリ(515)から受け取ったビデオシーケンスに対してエントロピー復号/構文解析動作を実行し得る。
【0062】
シンボル(521)の再構成は、コーディングされたビデオピクチャ又はその部分のタイプ(例えばインター及びイントラピクチャ、インター及びイントラブロック)及び他のファクタに応じて、複数の異なるユニットに関与することができる。どのユニットがどのように関与するかは、コーディングされたビデオシーケンスからパーサ(520)によって構文解析されたサブグループ制御情報によって制御されることができる。パーサ(520)と下記の複数のユニットとの間のそのようなサブグループ制御情報のフローは、明確性のために図示されていない。
【0063】
既に述べた機能ブロックの他に、ビデオデコーダ(510)は、以下で説明するように、複数の機能ユニットに概念的に細分されることができる。商業的制約の下で動作する実用的な実装では、これらのユニットの多くは互いに密接に対話し、少なくとも部分的に相互へ統合されることができる。しかしながら、開示される主題を説明する目的のために、以下では、機能ユニットへの概念的な細分化が適切である。
【0064】
第1ユニットは、スケーラ/逆変換ユニット(551)である。スケーラ/逆変換ユニット(551)は、パーサ(520)からのシンボル(521)として、どの変換を使用すべきか、ブロックサイズ、量子化係数、量子化スケーリング行列等を含む制御情報だけでなく、量子化された変換係数も受け取る。スケーラ/逆変換ユニット(551)は、アグリゲータ(555)に入力することができるサンプル値を含むブロックを出力することができる。
【0065】
場合によっては、スケーラ/逆変換(551)の出力サンプルは、イントラコーディングされたブロック、すなわち、以前に再構成されたピクチャからの予測情報を使用していないが、現在のピクチャの以前に再構成された部分からの予測情報を使用することができるブロックに関連する可能性がある。このような予測情報は、イントラピクチャ予測ユニット(552)によって提供されることができる。場合によっては、イントラピクチャ予測ユニット(552)は、現在のピクチャバッファ(558)からフェッチされる、周囲の既に再構成された情報を使用して、再構成中のブロックの同じサイズ及び形状のブロックを生成する。現在のピクチャバッファ(558)は、例えば部分的に再構成された現在のピクチャ及び/又は完全に再構成された現在のピクチャをバッファする。アグリゲータ(555)は、場合によっては、サンプルごとに、イントラ予測ユニット(552)が生成した予測情報を、スケーラ/逆変換ユニット(551)によって提供される出力サンプル情報に追加し得る。
【0066】
他の場合には、スケーラ/逆変換ユニット(551)の出力サンプルは、インターコーディングされて潜在的に動き補償されるブロックに関連する可能性がある。このような場合、動き補償予測ユニット(553)は、予測に使用されるサンプルをフェッチするために参照ピクチャメモリ(557)にアクセスすることができる。ブロックに関連するシンボル(521)に従って、フェッチされたサンプルを動き補償した後、これらのサンプルは、アグリゲータ(555)によって、出力サンプル情報を生成するために、スケーラ/逆変換ユニット(551)の出力(この場合、残差サンプル又は残差信号と呼ばれる)に追加されることができる。動き補償予測ユニット(553)が予測サンプルをフェッチする参照ピクチャメモリ(557)内のアドレスは、例えばX、Yと参照ピクチャ成分を有することができるシンボル(521)の形態で、動き補償予測ユニット(553)に利用可能な動きベクトルによって、制御されることができる。動き補償はまた、サブサンプルの正確な動きベクトルが使用されているときに参照ピクチャメモリ(557)からフェッチされるサンプル値の補間、動きベクトル予測メカニズム等も含むことができる。
【0067】
アグリゲータ(555)の出力サンプルは、ループフィルタユニット(556)内の様々なループフィルタリング技術の対象となることができる。ビデオ圧縮技術は、コーディングされたビデオシーケンス(コーディングされたビデオビットストリームとも呼ばれる)に含まれるパラメータによって制御され、かつパーサ(520)からシンボル(521)としてループフィルタユニット(556)に利用可能にされるが、コーディングされたピクチャ又はコーディングされたビデオシーケンスの(復号順序で)以前の部分の復号中に取得されたメタ情報に応答することもできるとともに、以前に再構成されてループフィルタリングされたサンプル値に応答することができる、ループ内フィルタ技術を含むことができる。
【0068】
ループフィルタユニット(556)の出力は、レンダデバイス(512)に出力されることができ、かつ将来のインターピクチャ予測で使用するために参照ピクチャメモリ(557)内に記憶されることができる、サンプルストリームとすることができる。
【0069】
ある特定のコーディングされたピクチャは、いったん完全に再構成されると、将来の予測のための参照ピクチャとして使用されることができる。例えば現在のピクチャに対応するコーディングされたピクチャが完全に再構成され、コーディングされたピクチャが(例えばパーサ(520)によって)参照ピクチャとして識別されると、現在のピクチャバッファ(558)は参照ピクチャメモリ(557)の一部となることができ、フレッシュな現在のピクチャバッファは、後続のコーディングされたピクチャの再構成を開始する前に再割り当てされることができる。
【0070】
ビデオデコーダ(510)は、ITU-T Rec. H.265のような規格の所定のビデオ圧縮技術に従って復号動作を実行し得る。コーディングされたビデオシーケンスは、該コーディングされたビデオシーケンスが、ビデオ圧縮技術又は規格の構文と、ビデオ圧縮技術又は規格で文書化されるプロファイルとの両方を守るという意味において、使用されているビデオ圧縮技術又は規格によって指定された構文に準拠し得る。具体的には、プロファイルは、そのプロファイルの下での使用に使用可能な唯一のツールとして、特定のツールを選択することができる。また、コーディングされたビデオシーケンスの複雑さが、ビデオ圧縮技術又は規格のレベルによって定義される範囲内にあることが、準拠には必要であり得る。場合によっては、レベルは、最大ピクチャサイズ、最大フレームレート、最大再構成サンプルレート(例えば毎秒メガサンプル(megasamples)で測定される)、最大参照ピクセルサイズ等を制限する。レベルによって設定される限界(limit)は、場合によっては、コーディングされたビデオシーケンスでシグナリングされる仮想リファレンスデコーダ(HRD:Hypothetical Reference Decoder)のバッファ管理のためのHRD仕様及びメタデータを通して更に制限される可能性がある。
【0071】
実施形態では、受信機(531)は、符号化ビデオとともに追加の(冗長な)データを受け取ることがある。追加のデータは、コーディングされたビデオシーケンスの一部として含まれてよい。追加のデータは、データを適切に復号し、かつ/又は元のビデオデータをより正確に再構成するために、ビデオデコーダ(510)によって使用され得る。追加のデータは、例えば時間的、空間的又は信号対ノイズ比(SNR)強化レイヤ(enhancement layers)、冗長スライス、冗長ピクチャ、順方向誤り訂正コード等の形態とすることができる。
【0072】
図6は、本開示の実施形態による、ビデオエンコーダ(603)のブロック図を示す。ビデオエンコーダ(603)は、電子デバイス(620)に含まれる。電子デバイス(620)は、送信機(640)(例えば送信回路)を含む。
図4の例のビデオエンコーダ(403)の代わりに、ビデオエンコーダ(603)を使用することができる。
【0073】
ビデオエンコーダ(603)は、ビデオサンプルを、ビデオエンコーダ(603)によってコーディングされるべきビデオ画像をキャプチャし得るビデオソース(601)(
図6の例では電子デバイス(620)の一部ではない)から受け取り得る。別の例では、ビデオソース(601)は、電子デバイス(620)の一部である。
【0074】
ビデオソース(601)は、ビデオエンコーダ(603)によってコーディングされるべきソースビデオシーケンスを、任意の適切なビット深度(例えば8ビット、10ビット、12ビット、...)、任意の色空間(例えばBT.601 YCrCB、RGB、...)及び任意の適切なサンプリング構造(例えばYCrCb 4:2:0、YCrCb 4:4:4)とすることができるデジタルビデオサンプルストリームの形態で提供し得る。メディア供給システムにおいて、ビデオソース(601)は、事前に準備されたビデオを記憶するストレージデバイスであってよい。ビデオ会議システムでは、ビデオソース(601)は、ローカル画像情報をビデオシーケンスとしてキャプチャするカメラであってもよい。ビデオデータは、シーケンスで見るときに動きを伝える複数の個々のピクチャとして提供されてもよい。ピクチャ自体は、ピクセルの空間アレイとして編成されてよく、この場合、各ピクセルは、使用中のサンプリング構造、色空間等に応じて1つ以上のサンプルを含むことができる。当業者は、ピクセルとサンプルとの関係を容易に理解することができる。以下の説明は、サンプルに焦点を当てている。
【0075】
一実施形態によると、ビデオエンコーダ(603)は、リアルタイムで又はアプリケーションによって要求される任意の他の時間制約の下で、ソースビデオシーケンスのピクチャをコーディング及び圧縮して、コーディングされたビデオシーケンス(643)にすることができる。適切なコーディング速度を実施することは、コントローラ(650)の1つの機能である。いくつかの実施形態において、コントローラ(650)は、以下で説明されるように、他の機能ユニットを制御し、該他の機能ユニットに機能的に結合される。この結合は、明確性のために図示されていない。コントローラ(650)によって設定されるパラメータは、レート制御関連パラメータ(ピクチャスキップ、量子化器、レート歪み最適化技術のラムダ値、...)、ピクチャサイズ、ピクチャのグループ(GOP)のレイアウト、最大動きベクトル探索範囲等を含むことができる。コントローラ(650)は、特定のシステム設計のために最適化された、ビデオエンコーダ(603)と関係する他の適切な機能を有するように構成されることができる。
【0076】
いくつかの実施形態では、ビデオエンコーダ(603)は、コーディングループで動作するように構成される。過剰に簡略化した説明として、一例では、コーディングループは、ソースコーダ(630)(例えばコーディングされるべき入力ピクチャ及び参照ピクチャに基づいて、シンボルストリーム等のシンボルを作成することを担当する)と、ビデオエンコーダ(603)に埋め込まれた(ローカル)デコーダ(633)とを含むことができる。デコーダ(633)は、(リモート)デコーダも作成するのと同様の方法で、シンボルを再構成してサンプルデータを作成する(シンボルとコーディングされたビデオビットストリームとの間の任意の圧縮は、開示される主題において考慮されるビデオ圧縮技術で可逆であるので)。再構成されたサンプルストリーム(サンプルデータ)は、参照ピクチャメモリ(634)に入力される。シンボルストリームの復号は、デコーダ位置(ローカル又はリモート)とは独立のビット正確な結果(bit-exact results)をもたらすので、参照ピクチャメモリ(634)内のコンテンツも、ローカルエンコーダとリモートエンコーダとの間でビット正確である。言い換えると、エンコーダの予測部分は、デコーダが復号中に予測を使用するときに「見る」のとまったく同じサンプル値を参照ピクチャサンプルとして「見る」。参照ピクチャのシンクロニシティ(synchronicity)のこの基本原理(及び例えばチャネルエラーのためにシンクロニシティを維持することができない場合の結果として生じるドリフト)は、いくつかの関連する技術でも同様に使用される。
【0077】
「ローカル」デコーダ(633)の動作は、ビデオデコーダ(510)のような「リモート」デコーダと同じものとすることができ、これは、既に
図5に関連して上述されている。しかしながら、
図5も簡単に参照すると、シンボルが利用可能であり、エントロピーコーダ(645)及びパーサ(520)によるコーディングされたビデオシーケンスへのシンボルの符号化/復号は可逆であり得るので、バッファメモリ(515)及びパーサ(520)を含むビデオデコーダ(510)のエントロピー復号部分は、ローカルデコーダ(633)では完全には実装されないことがある。
【0078】
この時点で可能な観察は、デコーダに存在する解析/エントロピー復号を除く任意のデコーダ技術はまた、対応するエンコーダにおいて、実質的に同一の機能形態で必ず存在する必要がある。この理由のために、開示される主題はデコーダの動作に焦点を当てる。エンコーダ技術の説明は、網羅的に説明されるデコーダ技術の反対であるので、省略される可能性がある。特定の領域のみにおいて、より詳細な説明が必要とされ、以下で提供される。
【0079】
いくつかの例において、動作中に、ソースコーダ(630)は、動き補償予測コーディングを実行してよく、動き補償予測コーディングは、「参照ピクチャ」として指定されたビデオシーケンスからの1つ以上の以前にコーディングされたピクチャに関連して予測的に入力ピクチャをコーディングする。このようにして、コーディングエンジン(632)は、入力ピクチャのピクセルブロックと、入力ピクチャに対する予測参照として選択され得る参照ピクチャのピクセルブロックとの間の差をコーディングする。
【0080】
ローカルビデオデコーダ(633)は、ソースコーダ(630)によって作成されたシンボルに基づいて、参照ピクチャとして指定され得るピクチャのコーディングされたビデオデータを復号し得る。コーディングエンジン(632)の動作は、有利には、非可逆プロセスであり得る。コーディングされたビデオデータがビデオデコーダ(
図6には図示せず)で復号され得るとき、再構成ビデオシーケンスは、典型的に、いくつかの誤差を伴うソースビデオシーケンスのレプリカであり得る。ローカルビデオデコーダ(633)は、参照ピクチャに対してビデオデコーダによって実行され得る復号処理を複製し、再構成参照ピクチャを参照ピクチャキャッシュ(634)に記憶させ得る。このようにして、ビデオエンコーダ(603)は、(伝送誤差なしに)遠端ビデオデコーダによって取得される再構成参照ピクチャとして、共通のコンテンツを有する再構成参照ピクチャのコピーを、ローカルに記憶し得る。
【0081】
予測器(635)は、コーディングエンジン(632)について予測探索を実行し得る。すなわち、コーディングされるべき新しいピクチャについて、予測器(635)は、参照ピクチャメモリ(634)から、サンプルデータ(候補参照ピクセルブロックとして)又は参照ピクチャ動きベクトル、ブロック形状等のような特定のメタデータを探索してよく、これらのデータは、新しいピクチャのための適切な予測参照として機能し得る。予測器(635)は、適切な予測参照を見つけるために、サンプルブロックとピクセルブロックごと(sample block-by-pixel block basis)に動作し得る。場合によっては、予測器(635)によって取得される検索結果によって決定されるように、入力ピクチャは、参照ピクチャメモリ(634)に記憶された複数の参照ピクチャから引き出された予測参照を有してよい。
【0082】
コントローラ(650)は、例えばビデオデータを符号化するために使用されるパラメータ及びサブグループパラメータの設定を含む、ソースコーダ(630)のコーディング動作を管理してもよい。
【0083】
前述の機能ユニットのすべての出力は、エントロピーコーダ(645)におけるエントロピーコーディングの対象となり得る。エントロピーコーダ(645)は、ハフマンコーディング、可変長コーディング、算術コーディング等のような技術に従ってシンボルを可逆圧縮することによって、様々な機能ユニットによって生成されるシンボルを、コーディングされたビデオシーケンスに変換する。
【0084】
送信機(640)は、エントロピーコーダ(645)によって作成されるコーディングされたビデオシーケンスをバッファして、通信チャネル(660)を介した伝送の準備を行ってよく、該通信チャネル(660)は、符号化されたビデオデータを記憶するストレージデバイスへのハードウェア/ソフトウェアリンクであってよい。送信機(640)は、ビデオコーダ(603)からのコーディングされたビデオデータを、伝送されるべき他のデータ、例えばコーディングされたオーディオデータ及び/又は補助データストリーム(ソースは図示せず)とマージし得る。
【0085】
コントローラ(650)は、ビデオエンコーダ(603)の動作を管理し得る。コーディングの間、コントローラ(650)は、各コーディングされたピクチャに、特定のコーディングピクチャタイプ(coded picture type)を割り当ててよく、該コーディングピクチャタイプは、それぞれのピクチャに適用され得るコーディングに影響を与え得る。例えばピクチャは、しばしば、次のピクチャタイプのうちの1つとして割り当てられ得る:
【0086】
イントラピクチャ(Iピクチャ)は、予測のソースとしてシーケンス内のいずれの他のピクチャも使用せずにコーディング及び復号され得るものであり得る。いくつかのビデオコーデックは、例えば独立デコーダリフレッシュ(「IDR:Independent Decoder Refresh」)ピクチャを含む、異なるタイプのイントラピクチャを許容する。当業者は、Iピクチャのこれらの変形並びにそれらのそれぞれの用途及び特徴を知っている。
【0087】
予測ピクチャ(Pピクチャ)は、各ブロックのサンプル値を予測するために、最大1つの動きベクトルと参照インデックスを用いて、イントラ予測又はインター予測を使用して、コーディング及び復号され得るものであり得る。
【0088】
双方向予測ピクチャ(Bピクチャ)は、各ブロックのサンプル値を予測するために、最大2つの動きベクトルと参照インデックスを用いて、イントラ予測又はインター予測を使用して、コーディング及び復号され得るものであり得る。同様に、複数予測ピクチャ(multiple-predictive pictures)は、単一のブロックの再構成のために、2つより多くの参照ピクチャ及び関連するメタデータを使用することができる。
【0089】
ソースピクチャは、通常、空間的に複数のサンプルブロック(例えば各々4×4、8×8、4×8又は16×16サンプルのブロック)に細分され、ブロックごとにコーディングされ得る。ブロックは、ブロックのそれぞれのピクチャに適用されるコーディング割り当てによって決定されるように、他の(既にコーディングされた)ブロックに関連して予測的にコーディングされ得る。例えばIピクチャのブロックは、非予測的にコーディングされてもよく、あるいはそれらは、同じピクチャの既にコーディングされたブロックに関連して予測的にコーディングされてもよい(空間予測又はイントラ予測)。Pピクチャのピクセルブロックは、以前にコーディングされた1つの参照ピクチャに関連して、空間予測を介して又は時間予測を介して予測的にコーディングされ得る。Bピクチャのブロックは、1つ又は2つの以前にコーディングされた参照ピクチャに関連して、空間予測を介して又は時間予測を介して予測的にコーディングされ得る。
【0090】
ビデオエンコーダ(603)は、ITU-T Rec. H.265のような所定のビデオコーディング技術又は規格に従ってコーディング動作を実行し得る。その動作において、ビデオエンコーダ(603)は、入力ビデオシーケンスにおける時間的及び空間的冗長性を利用する予測コーディング動作を含む、様々な圧縮動作を実行し得る。コーディングされたビデオデータは、したがって、使用されているビデオコーディング技術又は規格によって指定された構文に従うことができる。
【0091】
一実施形態では、送信機(640)は、符号化されたビデオとともに追加データを送信してもよい。ソースコーダ(630)は、コーディングされたビデオシーケンスの一部としてそのようなデータを含んでよい。追加データは、時間/空間/SNR強化レイヤ、冗長ピクチャ及びスライス、SEIメッセージ、VUIパラメータセットフラグメント等のような他の形式の冗長データを含んでもよい。
【0092】
ビデオは、時間シーケンスにおいて複数のソースピクチャ(ビデオピクチャ)としてキャプチャされ得る。イントラピクチャ予測(しばしば、イントラ予測と略される)は、所与のピクチャにおける空間的相関を使用し、インターピクチャ予測は、ピクチャ間の(時間的又は他の)相関を使用する。一例では、符号化/復号中の特定のピクチャは、現在のピクチャと呼ばれ、ブロックに区分化される。現在のピクチャ内のブロックが、ビデオ内の以前にコーディングされて依然としてバッファされている参照ピクチャ内の参照ブロックに類似するとき、現在のピクチャ内のブロックは、動きベクトルと呼ばれるベクトルによってコーディングされることができる。動きベクトルは、参照ピクチャ内の参照ブロックを指し、複数の参照ピクチャが使用されているケースでは、参照ピクチャを識別する第3次元(third dimension)を有することができる。
【0093】
いくつかの実施形態では、インターピクチャ予測において双予測技術を使用することができる。双予測技術によると、第1参照ピクチャと第2参照ピクチャのように、両方とも、復号順序でビデオ内の現在のピクチャに先行する(ただし、表示順序では、それぞれ、過去及び将来であり得る)2つの参照ピクチャが使用される。現在のピクチャ内のブロックを、第1参照ピクチャ内の第1参照ブロックを指す第1動きベクトルと、第2参照ピクチャ内の第2参照ブロックを指す第2動きベクトルとによってコーディングすることができる。ブロックは、第1参照ブロックと第2参照ブロックの組合せによって、予測されることができる。
【0094】
さらに、コーディング効率を改善するために、インターピクチャ予測においてマージモード技術を使用することができる。
【0095】
本開示のいくつかの実施形態によると、インターピクチャ予測及びイントラピクチャ予測のような予測は、ブロック単位(unit)で実行される。例えばHEVC規格によると、ビデオピクチャのシーケンス内のピクチャは、圧縮のためにコーディングツリーユニット(CTU)に区分化され、ピクチャ内のCTUsは、64×64ピクセル、32×32ピクセル又は16×16ピクセルのように、同じサイズを有する。一般に、CTUは、3つのコーディングツリーブロック(CTBs)を含み、該3つのCTBは、1つのルマ(luma)CTBと2つのクロマ(chroma)CTBである。各CTUは、1つ又は複数のコーディングユニット(CUs)に再帰的に四分木分裂(quadtree split)することができる。例えば64×64ピクセルのCTUを、64×64ピクセルの1つのCUに又は32×32ピクセルの4つのCUに又は16×16ピクセルの16個のCUに分裂することができる。一例では、各CUを分析して、インター予測タイプ又はイントラ予測タイプのような、CUの予測タイプを決定する。CUは、時間的及び/又は空間的予測可能性に依存して、1つ以上の予測ユニット(PUs)に分裂される。一般に、各PUはルマ予測ブロック(PB)と2つのクロマPBsを含む。一実施形態では、コーディング(符号化/復号)における予測動作は、予測ブロックのユニットにおいて実行される。予測ブロックの例としてルマ予測ブロックを使用すると、予測ブロックは、8×8ピクセル、16×16ピクセル、8×16ピクセル、16×8ピクセル等のような、ピクセルについての値(例えばルマ値)の行列を含んでよい。
【0096】
図7は、本開示の別の実施形態によるビデオエンコーダ(703)の図を示す。ビデオエンコーダ(703)は、ビデオピクチャのシーケンス内の現在のビデオピクチャ内のサンプル値の処理ブロック(例えば予測ブロック)を受け取り、処理ブロックを符号化して、コーディングされたビデオシーケンスの一部であるコーディングされたピクチャにするように構成される。一例では、ビデオエンコーダ(703)は、
図4の例のビデオエンコーダ(403)の代わりに使用される。
【0097】
HEVCの例では、ビデオエンコーダ(703)は、8×8サンプルの予測ブロック等のような処理ブロックのサンプル値の行列を受け取る。ビデオエンコーダ(703)は、処理ブロックが、例えばレート歪み最適化(rate-distortion optimization)を使用して、イントラモード、インターモード又は双予測(bi-prediction)モードを使用して最も良くコーディングされるかどうかを決定する。処理ブロックがイントラモードでコーディングされるべきであるとき、ビデオエンコーダ(703)は、イントラ予測技術を使用して、処理ブロックを符号化して、コーディングされたピクチャにしてよく、処理ブロックがインターモード又は双予測モードでコーディングされるべきであるとき、ビデオエンコーダ(703)は、それぞれインター予測技術又は双予測技術を使用して、処理ブロックを符号化して、符号化ピクチャにしてよい。特定のビデオコーディング技術では、マージモードは、予測子の外側のコーディングされた動きベクトル構成要素の利益を伴わずに、動きベクトルが1つ以上の動きベクトル予測子から導出される場合、インターピクチャ予測サブモードであり得る。特定の他のビデオコーディング技術では、対象ブロックに適用可能な動きベクトル構成要素が存在してもよい。一例では、ビデオエンコーダ(703)は、処理ブロックのモードを決定するために、モード決定モジュール(図示せず)のような他の構成要素を含む。
【0098】
図7の例では、ビデオエンコーダ(703)は、
図7に示されるように一緒に結合される、インターエンコーダ(730)、イントラエンコーダ(722)、残差計算器(723)、スイッチ(726)、残差エンコーダ(724)、一般コントローラ(721)及びエントロピーエンコーダ(725)を含む。
【0099】
インターエンコーダ(730)は、現在のブロック(例えば処理ブロック)のサンプルを受け取り、該ブロックを参照ピクチャ内の1つ以上の参照ブロック(例えば前のピクチャ及び後のピクチャ内のブロック)と比較し、インター予測情報(例えばインター符号化技術に従った冗長情報の記述、動きベクトル、マージモード情報)を生成し、任意の適切な技術を使用して、インター予測情報に基づいてインター予測結果(例えば予測ブロック)を計算するよう構成される。いくつかの例では、参照ピクチャは、符号化されたビデオ情報に基づいて復号される復号参照ピクチャである。
【0100】
イントラエンコーダ(722)は、現在のブロック(例えば処理ブロック)のサンプルを受け取り、場合によっては、該ブロックを、同じピクチャ内の既にコーディングされたブロックと比較し、変換後に量子化された係数と、場合によってはイントラ予測情報(例えば1つ以上のイントラ符号化技術に従ったイントラ予測方向情報)も生成するよう構成される。一例では、イントラエンコーダ(722)はまた、イントラ予測情報と、同じピクチャ内の参照ブロックに基づいて、イントラ予測結果(例えば予測ブロック)も計算する。
【0101】
一般コントローラ(721)は、一般制御データを決定し、該一般制御データに基づいてビデオエンコーダ(703)の他の構成要素を制御するよう構成される。一例では、一般コントローラ(721)は、ブロックのモードを決定し、該モードに基づいて制御信号をスイッチ(726)に提供する。例えばモードがイントラモードであるとき、一般コントローラ(721)は、残差計算器(723)が使用するためのイントラモードの結果を選択するようにスイッチ(726)を制御し、イントラ予測情報を選択して該イントラ予測情報をビットストリームに含めるようにエントロピーエンコーダ(725)を制御し、モードがインターモードであるとき、一般コントローラ(721)は、残差計算器(723)が使用するためのインター予測結果を選択するようにスイッチ(726)を制御し、インター予測情報を選択して該インター予測情報をビットストリームに含めるようにエントロピーエンコーダ(725)を制御する。
【0102】
残差計算器(723)は、イントラエンコーダ(722)又はインターエンコーダ(730)から選択された、受け取ったブロックと予測結果との差(残差データ)を計算するよう構成される。残差エンコーダ(724)は、残差データに基づいて動作し、残差データを符号化して変換係数を生成するよう構成される。一例では、残差エンコーダ(724)は、残差データを空間領域から周波数領域に変換して、変換係数を生成するように構成される。次いで、変換係数は、量子化処理の対象となり、量子化された変換係数を取得する。様々な実施形態では、ビデオエンコーダ(703)は、残差デコーダ(728)も含む。残差デコーダ(728)は、逆変換を実行し、復号された残差データを生成するよう構成される。復号された残差データは、イントラエンコーダ(722)及びインターエンコーダ(730)によって適切に使用されることができる。例えばインターエンコーダ(730)は、復号された残差データ及びインター予測情報に基づいて、復号されたブロックを生成することができ、イントラエンコーダ(722)は、復号された残差データ及びイントラ予測情報に基づいて、復号されたブロックを生成することができる。復号されたブロックは、復号されたピクチャを生成するために適切に処理され、復号されたピクチャは、メモリ回路(図示せず)内でバッファリングされ、いくつかの例では、参照ピクチャとして使用されることができる。
【0103】
エントロピーエンコーダ(725)は、符号化ブロックを含むようにビットストリームをフォーマットするように構成される。エントロピーエンコーダ(725)は、HEVC規格のような適切な規格に従って、様々な情報を含めるように構成される。一例では、エントロピーエンコーダ(725)は、一般制御データ、選択された予測情報(例えばイントラ予測情報又はインター予測情報)、残差情報及び他の適切な情報をビットストリーム内に含めるよう構成される。開示される主題によると、インターモード又は双予測モードのいずれかのマージサブモードでブロックをコーディングするとき、残差情報がないことに留意されたい。
【0104】
図8は、本開示の別の実施形態による、ビデオデコーダ(810)の図を示す。ビデオデコーダ(810)は、コーディングされたビデオシーケンスの一部である、コーディングされたピクチャを受け取り、コーディングされたピクチャを復号して再構成ピクチャを生成するよう構成される。一例では、
図4の例のビデオデコーダ(410)の代わりにビデオデコーダ(810)が使用される。
【0105】
図8の例では、ビデオデコーダ(810)は、
図8に示されるように一緒に結合される、エントロピーデコーダ(871)、インターデコーダ(880)、残差デコーダ(873)、再構成モジュール(874)及びイントラデコーダ(872)を含む。
【0106】
エントロピーデコーダ(871)は、コーディングされたピクチャから、該コーディングされたピクチャが構成される構文要素を表す特定のシンボルを再構成するよう構成されることができる。そのようなシンボルは、例えばブロックがコーディングされるモード(例えばイントラモード、インターモード、双予測モード、後者2つのマージサブモード又は別のサブモード等)、イントラデコーダ(872)又はインターデコーダ(880)によってそれぞれ予測のために使用される特定のサンプル又はメタデータを識別することができる予測情報(例えばイントラ予測情報又はインター予測情報等)、例えば量子化された変換係数の形態の残差情報等を含むことができる。一例では、予測モードがインターモード又は双予測モードであるとき、インター予測情報がインターデコーダ(880)に提供され、予測モードがイントラ予測モードであるとき、イントラ予測情報がイントラデコーダ(872)に提供される。残差情報は、逆量子化の対象となり得、残差デコーダ(873)に提供される。
【0107】
インターデコーダ(880)は、インター予測情報を受け取り、該インター予測情報に基づいてインター予測結果を生成するよう構成される。
【0108】
イントラデコーダ(872)は、イントラ予測情報を受け取り、該イントラ予測情報に基づいて予測結果を生成するよう構成される。
【0109】
残差デコーダ(873)は、逆量子化を実行して非量子化(de-quantized)変換係数を抽出し、非量子化変換係数を処理して残差を周波数領域から空間領域に変換するよう構成され得る。残差デコーダ(873)はまた、特定の制御情報(量子化器パラメータ(QP:Quantizer Parameter)を含む)も要求することがあり、この情報は、エントロピーデコーダ(871)によって提供され得る(これは低量の制御情報のみであり得るので、データ経路は図示されない)。
【0110】
再構成モジュール(874)は、空間領域において、残差デコーダ(873)による出力としての残差と、(場合によっては、インター又はイントラ予測モジュールによる出力としての)予測結果とを組み合わせて再構成ブロックを形成するよう構成され、該再構成ブロックは、再構成ビデオの一部であり得る再構成ピクチャの一部であり得る。視覚品質を改善するために、デブロッキング操作等の他の適切な操作を実行することができることに留意されたい。
【0111】
ビデオエンコーダ(403)、(603)及び(703)、並びにビデオデコーダ(410)、(510)及び(810)は、任意の適切な技術を使用して実装されることができることに留意されたい。一実施形態では、ビデオエンコーダ(403)、(603)及び(703)、並びにビデオデコーダ(410)、(510)及び(810)は、1つ以上の集積回路を使用して実装されることができる。別の実施形態では、ビデオエンコーダ(403)、(603)及び(703)、並びにビデオデコーダ(410)、(510)及び(810)は、ソフトウェア命令を実行する1つ以上のプロセッサを使用して実装されることができる。
【0112】
本開示の態様は、コーディングされたビデオストリーム内の制約フラグを用いてコーディングツール及び機能性の制御技術を提供する。
【0113】
本開示の態様によると、ビットストリーム内のピクチャサイズは同じままであっても、変化してもよい。いくつかの関連する例では、ビデオエンコーダ及びデコーダは、コーディングされたビデオシーケンス(CVS)、ピクチャのグループ(GOP)又は同様のマルチピクチャ時間フレームに対して定義されて、一定のままである、所与のピクチャサイズで動作することができる。MPEG-2のような一例では、システム設計は、シーンのアクティビティのようなファクタに応じて水平解像度(したがって、ピクチャサイズ)を変更することが知られているが、Iピクチャのみでは、ピクチャサイズは、GOPに対して定義されて、典型的には一定のままである。CVS内で異なる解像度を使用するための参照ピクチャの再サンプリングは、ITU-T Rec. H.263 Annex Pから知られている。しかしながら、CVS内のピクチャサイズは変化せず、参照ピクチャのみが再サンプリングされ、結果として潜在的に、ピクチャキャンバスの一部のみが使用されることになるか(例えばダウンサンプリングの場合)あるいはシーンの一部のみがキャプチャされたることになる(例えばアップサンプリングの場合)。H.263 Annex Qのようないくつかの例では、個々のマクロブロックを各次元(例えば上方又は下方)で2倍にサンプリングすることが許容される。しかしながら、ピクチャサイズは同じままである。例えばH.263でマクロブロックのサイズを固定することができるとき、マクロブロックのサイズをシグナリングする必要はない。
【0114】
いくつかの関連する例では、予測されたピクチャのピクチャサイズを変更することができる。VP9のような例では、参照ピクチャの再サンプリングと、ピクチャ全体の解像度の変更が可能になる。いくつかの例(例えばHendry等著「On adaptive resolution change(ARC)for VVC」、Joint Video Team document JVET-M0135、Jan9-19、2019年、これらはその全体が本明細書に組み込まれる)では、異なる解像度(例えばより高解像度又はより低解像度)への参照ピクチャ全体の再サンプリングが可能になる。異なる候補解像度を、シーケンスパラメータセット(SPS)でコーディングすることができ、ピクチャパラメータセット(PPS)のピクチャごとの構文要素によって参照することができる。
【0115】
本開示の態様によると、ソースビデオを、異なる解像度のような異なる品質を有する1つ以上のレイヤを含むビットストリームへ、ピクチャを符号化することができる、レイヤコーディング(layered coding)によって圧縮することができる。ビットストリームは、デコーダ側で出力することができるレイヤ(又はレイヤのセット)を指定する構文要素を有することができる。出力すべきレイヤのセットを、出力レイヤセットとして定義することができる。例えば複数のレイヤとスケーラビリティをサポートするビデオコーデックでは、1つ以上の出力レイヤセットをビデオパラメータセット(VPS)でシグナリングすることができる。ビットストリーム全体又は1つ以上の出力レイヤセットについてプロファイル階層レベル(PTL:profile tier level)を指定する構文要素を、VPS、いくつかの例でデコーダ能力情報(DCI:decoder capability information)と呼ばれることがあるデコーダパラメータセット(DPS)、SPS、PPS、SEIメッセージ等でシグナリングすることができる。PTL情報には、コーディングツール又は機能性に対する制約を指定することができる一般制約情報が存在する可能性がある。様々なコーディングツール及び機能性の制約情報を効率的に表現し、シグナリングすることが望ましい。
【0116】
いくつかの例では、「サブピクチャ」という用語は、サンプル、ブロック、マクロブロック、コーディングユニット、あるいは例えば意味的にグループ化され、変更された解像度で独立にコーディングされ得る類似のエンティティの長方形の配置を指すために使用され得る。1つ以上のサブピクチャが、ピクチャを形成することができる。1つ以上のコーディングされたサブピクチャが、コーディングされたピクチャを形成することができる。1つ以上のサブピクチャを1つのピクチャに組み立てることができ、1つ以上のサブピクチャを1つのピクチャから抽出することができる。いくつかの例では、1つ以上のコーディングされたサブピクチャを、コーディングされたピクチャへのサンプルレベルにトランスコードすることなく、圧縮領域に組み立てることができる。いくつかの例では、1つ以上のコーディングされたサブピクチャを、圧縮領域内のコーディングされたピクチャから抽出することができる。
【0117】
いくつかの例では、例えば参照ピクチャ再サンプリングによってCVS内のピクチャ又はサブピクチャの解像度の変更を可能にするメカニズムを、適応解像度変更(ARC:adaptive resolution change)と呼ぶことができる。適応解像度変更を行うために使用される制御情報を、ARCパラメータと呼ぶことができる。ARCパラメータは、フィルタパラメータ、スケーリング係数、出力及び/又は参照ピクチャの解像度、様々な制御フラグ及び/又は同様のものを含むことができる。
【0118】
いくつかの例では、ARCの符号化/復号はピクチャ単位であり、したがって、制御情報(ARCパラメータ)のセットが、単一の意味的に独立したコーディングされたビデオピクチャを符号化/復号するために使用される。いくつかの例では、ARCの符号化/復号はサブピクチャ単位であり、したがって、ピクチャ内の複数のサブピクチャを、独立したARCパラメータで符号化/復号することができる。様々な技術を使用してARCパラメータをシグナリングすることができることに留意されたい。
【0119】
図9は、本開示のいくつかの実施形態による、ARCパラメータをシグナリングするための技術の実施例(例えばオプション)を示している。コーディング効率、複雑さ及びアーキテクチャは、当該実施例によって異なる可能性がある。ビデオコーディング規格又は技術は、ARCパラメータをシグナリングするために、これらの例のうちの1つ以上又は他の変形を選択することがある。実施例は相互に排他的ではなく、適用のニーズ、標準技術、エンコーダの選択及び/又は同様のものに基づいて交換されてもよい。
【0120】
本開示の一態様によると、ARCパラメータは、様々な方法でARCパラメータのクラスとして提供され得る。いくつかの例では、ARCパラメータのクラスは、X次元とY次元で分離又は結合される、アップサンプル及び/又はダウンサンプル係数を含む。一例では、アップサンプル及び/又はダウンサンプル係数を含むテーブルをポイントすることができる1つ以上の短い構文要素を、コーディングすることができる。
【0121】
いくつかの例では、ARCパラメータのクラスは、アップサンプル及び/又はダウンサンプル係数を含み、時間的な次元が追加されており、所与の数のピクチャに対する一定速度のズームイン又はズームアウトを示す。一例では、時間的な次元が追加されたアップサンプル及び/又はダウンサンプル係数を含むテーブルを指すことができる1つ以上の短い構文要素を、コーディングすることができる。
【0122】
いくつかの例では、ARCパラメータのクラスは、サンプル、ブロック、マクロブロック、CU又は任意の他の適切な粒度の単位で、組合せ又は別個に、入力ピクチャ、出力ピクチャ、参照ピクチャ、コーディングされたピクチャのX次元又はY次元の解像度を含む。いくつかの例では、ビデオコーディングで使用される2つ以上の解像度があり(例えば入力ピクチャのための1つの解像度と、参照ピクチャのための別の解像度)、(解像度のうちの1つに対応する)値のセットを、(解像度のうちの別のものに対応する)別の値のセットから推論することができる。値の決定は、例えばフラグの使用に基づいてゲーティング(gate)されることができる。ゲーティングのためのフラグの使用については、更なる説明において詳細に説明される。
【0123】
いくつかの例では、ARCパラメータのクラスは、上述のような適切な粒度でH.263 Annex Pで使用されているものと同様のワーピング座標(warping coordinates)を含む。H.263 Annex Pは、ワーピング座標をコーディングする効率的な方法を定義する。他の効率的な方法を考案することができる。例えばAnnex Pのワーピング座標の可変長可逆ハフマンスタイルのコーディングを、適切な長さのバイナリコーディングによって置き換えることができ、ここで、バイナリコードワードの長さは、最大ピクチャサイズの境界の外部でのワーピングを可能にするために、係数を掛けて値をオフセットした最大ピクチャサイズから導出されることができる。
【0124】
いくつかの例では、ARCパラメータのクラスは、アップサンプル及び/又はダウンサンプルフィルタパラメータを含む。一例では、アップサンプリング及び/又はダウンサンプリングのための単一のフィルタのみが存在する。別の例では、複数のフィルタを使用することができる。いくつかの例では、フィルタパラメータは、フィルタ設計の更なる柔軟性を可能にするためにシグナリングされ得る。可能なフィルタ設計のリストのインデックスを使用することによって、フィルタパラメータを選択することができる。フィルタは、(例えば適切なエントロピーコーディング技術を使用して、フィルタ係数のリストを指定することによって)完全に指定され得るか、フィルタは、上述のメカニズムのいずれか及び/又は同様のものに従ってシグナリングされるアップサンプル又はダウンサンプルの比を通して暗黙的に選択され得る。
【0125】
以下の説明では、アップサンプル又はダウンサンプル係数の有限セット(X次元とY次元の両方で使用される同じ係数)を使用して、コードワードを通したARCパラメータのシグナリングを例示する。いくつかの例では、コードワードは、ビデオコーディング仕様(例えばH.264及びH.265)における特定の構文要素のためにExt-Golombコードを使用して、可変長コーディングされることができる。
【0126】
図10は、アップサンプル又はダウンサンプル係数、コードワード及びExt-Golombコードのマッピングの表(1000)の例を示す。
【0127】
他の同様のマッピングを、ビデオ圧縮技術又は規格で利用可能なアップスケール及びダウンスケールメカニズムの適用及び能力に従って考案することができることに留意されたい。いくつかの例では、表1を追加の値に適切に拡張することができる。Ext-Golombコード以外のエントロピーコーディングメカニズムによって、例えばバイナリコーディングを使用することによって、値を表すことができることに留意されたい。一例では、Ext-Golombコード以外のエントロピーコーディングメカニズムは、再サンプリング係数が、例えばメディア認識ネットワーク要素(MANE:media-aware network elements)によって、ビデオ処理エンジン(例えばエンコーダ及びデコーダ)の外部で関心があるとき、特定の利点を有することがある。いくつかの例では、解像度変更が必要とされない(例えば表1で元の/目標解像度が1である)とき、短いExt-Golombコード(例えば表1に示されている単一ビットのみ)を選択することができ、これは、例えば最も一般的な場合にバイナリコードを使用することよりも、コーディング効率の利点を有することができる。
【0128】
本開示の態様によると、表1のようなマッピングテーブルは構成可能なものとすることができる。例えば表1のエントリ数及び対応する意味は、完全に又は部分的に構成可能なものとすることができる。いくつかの例では、マッピングテーブルの基本的な概要は、SPS又はDPSのような高レベルのパラメータセットで伝達される。あるいは又は追加として、いくつかの例では、表1と同様の1つ以上のテーブルがビデオコーディング技術又は規格で定義されてよく、テーブルのうちの1つが、例えばSPS又はDPSを通して選択されてもよい。
【0129】
上述のようにコーディングされるアップサンプル又はダウンサンプル係数のようなARC情報が、ビデオコーディング技術又は規格構文に含まれてもよい。1つ以上のコードワードを使用して、アップサンプル又はダウンサンプルフィルタのような他のクラスのARC情報を制御することができることに留意されたい。いくつかの例では、フィルタ又は他のデータ構造に比較的大量のデータが必要とされる。
【0130】
図9を参照すると、H.263 Annex Pのような例(910)では、ARC情報(912)は4つのワーピング座標の形式とすることができ、H.263 PLUSPTYPE(913)ヘッダ拡張のようなピクチャヘッダ(911)に含まれる。例(910)は、i)ピクチャヘッダが利用可能であり、かつii)ARC情報の頻繁な変更が予想されるときに適用されることができる。しかしながら、例(910)に示されるようなH.263スタイルのシグナリングを使用するときのオーバーヘッドは高い可能性があり、ピクチャヘッダが一時的な性質である可能性があるため、スケーリング係数はピクチャ境界間で適用可能でないことがある。
【0131】
図9を参照すると、JVCET-M135-v1のような例(920)では、ARC参照情報(925)(例えばインデックス)は、PPS(924)内に配置されることができ、目標解像度(例えば解像度1~3)を含むテーブル(又は目標解像度テーブル)(926)を指すことができる。一例では、テーブル(926)はSPS(927)内に配置される。テーブル(926)内の目標解像度をSPS(927)内に配置することは、能力交換中の相互運用性ネゴシエーションポイントとしてSPSを使用することによって正当化することができる。解像度は、適切なPPS(924)内の参照(例えばARC参照情報(925))によって、テーブル(926)内の値(例えば解像度1~3)の限られたセット内で、あるピクチャから別のピクチャに変更することができる。
【0132】
図9はまた、ARC情報をビデオビットストリームで伝達するために使用され得る、例(930)、(940)及び(950)のような追加の技術も示す。これらの技術は、同じビデオコーディング技術又は規格において、個々に使用されてもよく、適切な組合せで使用されることもできる。
【0133】
図9を参照すると、例(930)では、再サンプリング係数(又はズーム係数)のようなARC情報(939)が、スライスヘッダ、GOBヘッダ、タイルヘッダ、タイルグループヘッダ等のようなヘッダ内に存在し得る。例えばタイルグループヘッダ(938)が
図9に図示されている。例(930)によって図示される技術は、ARC情報(939)を単一の可変長ue(v)又は数ビットの固定長コードワードのような少ないビット数でコーディングすることができるときに使用されることができる。
【0134】
本開示の態様によると、ARC情報(939)をヘッダ(例えば
図9のタイルグループヘッダ(938)、スライスヘッダ又はタイルヘッダ)に直接有することは、ARC情報(939)が、ピクチャ全体ではなく、例えば対応するタイルグループ(又はスライス、タイル)によって表されるサブピクチャに適用可能であり得るという、追加の利点を有することができる。加えて、一例では、ビデオ圧縮技術又は規格が、(例えばタイルグループベースの適応解像度変更とは対照的に)全体ピクチャの適応解像度変更のみを想定している場合であっても、例(930)は、エラー回復性の観点から、例(910)よりも特定の利点を有することができる。
【0135】
図9を参照すると、例(940)では、ARC情報(942)が、PPS、ヘッダパラメータセット、タイルパラメータセット、適応パラメータセット(APS)等のようなパラメータセット(941)内に存在し得る。例えばAPS(941)が
図9に図示されている。いくつかの例では、パラメータセット(941)の範囲は、ピクチャよりも大きくない可能性があり、例えばピクチャ、タイルグループ等とすることができる。ARC情報(例えばARC情報(942))の使用は、関連するパラメータセット(例えばAPS(941))のアクティブ化を通して暗黙的にすることができる。例えばビデオコーディング技術又は規格がピクチャベースのARCのみを考慮するとき、PPS又は同等のものが適切であり得る。
【0136】
図9を参照すると、例(950)では、ARC参照情報(953)が、上述のような、タイルグループヘッダ(954)又は同様のデータ構造(例えばピクチャヘッダ、スライスヘッダ、タイルヘッダ又はGOPヘッダ)内に存在し得る。例えばタイルグループヘッダ(954)が
図9に図示されている。ARC参照情報(953)は、例えばSPS、DPS等のような、単一のピクチャを超える範囲を有するパラメータセット(956)において利用可能なARC情報(955)のサブセットを参照することができる。一例として、SPS(956)が
図9に図示されている。
【0137】
図11は、本開示のいくつかの実施形態によるARCパラメータシグナリングのいくつかの例を示す。
図11は、ビデオコーディング規格で使用される構文図の例を示す。一例では、構文図の表記は大まかにCスタイルのプログラミングに従う。太字の行はビットストリームに存在する構文要素を示すことができ、太字を用いていない行は制御フロー又は変数の設定を示すことができる。
【0138】
図11を参照すると、タイルグループヘッダ(1101)は、ピクチャの一部(例えば長方形の部分)に適用可能なヘッダの構文構造を含む。一例では、タイルグループヘッダ(1101)は、条件付きで、可変長のExp-Golombコーディングされた構文要素dec_pic_size_idx(1102)(太字で示される)を含むことができる。タイルグループヘッダ(1101)内の構文要素(例えばdec_pic_size_idx(1102))の存在を、例えばフラグ(例えばadaptive_pic_resolution_change_flag)(1103)によって表される適応解像度に基づいてゲーティングすることができる。フラグ(例えばadaptive_pic_resolution_change_flag)(1103)の値は太字で示されておらず、したがって、該フラグは、該フラグが構文図内で発生するポイントでビットストリーム内に存在する。ピクチャ又はピクチャの一部に適応解像度が使用されているかどうかを、ビットストリームの内部又は外部の高レベルの構文構造(例えば
図11のSPS(1110))においてシグナリングすることができる。
【0139】
図11を参照すると、SPS(1110)の抜粋が示されている。SPS(1110)は、フラグ(1111)(例えばadaptive_pic_resolution_change_flag)である第1構文要素(1111)を含む。フラグ(1111)が真(true)であるとき、フラグ(1111)は、特定の制御情報を必要とし得る適応解像度の使用を示すことができる。一例では、SPS(1110)内のif()ステートメント(1112)とタイルグループヘッダ(1101)によって示されるように、特定の制御情報はフラグ(1111)の値に基づいて条件付きで存在する。
【0140】
図11の例に示されるように、適応解像度が使用されているとき、サンプル単位の出力解像度(又は出力ピクチャの解像度)(1113)をコーディングすることができる。一例では、出力解像度(1113)は、幅解像度(例えばoutput_pic_width_in_luma_samples)と高さ解像度(例えばoutput_pic_height_in_luma_samples)に基づいてコーディングされる。ビデオコーディング技術又は規格では、出力解像度(1113)の値に対する特定の制限を定義することができる。例えばレベル定義では、合計出力サンプルの数(例えばoutput_pic_width_in_luma_samplesとoutput_pic_height_in_luma_samplesの積)を限定し得る。いくつかの例では、ビデオコーディング技術又は規格あるいは外部技術又は規格(例えばシステム規格)は、幅解像度及び/又は高さ解像度の番号付けの範囲(例えば幅解像度及び/又は高さ解像度は2の累乗で割り切れる)、高さ解像度に対する幅解像度のアスペクト比(例えば高さ解像度に対する幅解像度の比率は4:3又は16:9である)等を限定することができる。一例では、上記の制限は、ハードウェアの実装を容易にするために導入され得る。
【0141】
特定の適用では、エンコーダは、サイズが出力ピクチャサイズであることを暗黙的に仮定するのではなく、特定の参照ピクチャサイズを使用するようにデコーダに指示することができる。例えば構文要素(例えばreference_pic_size_present_flag)(1114)は、参照ピクチャ寸法(1115)の条件付きの存在をゲーティングする。参照ピクチャ寸法(1115)は、例えば幅(例えばreference_pic_width_in_luma_samples)と高さ(例えばreference_pic_height_in_luma_samples)の両方を含むことができる。
【0142】
また、
図11では、ピクチャの幅と高さの適用可能な復号のテーブルが図示されている。一例では、テーブル内のエントリの数を、テーブル指示(table indication)(例えば構文要素num_dec_pic_size_in_luma_samples_minus1)(1116)によって表すことができる。「minus1」は構文要素(1116)の値の解釈を指すことができる。例えばコーディングされた値が0である場合、1つのテーブルエントリが存在する。コーディングされた値が5である場合、6つのテーブルエントリが存在する。テーブル内の各エントリについて、復号されたピクチャの幅と高さが構文要素(1117)として含まれる。
【0143】
構文要素(1117)によって表されるテーブルエントリは、タイルグループヘッダ(1101)内の構文要素dec_pic_size_idx(1102)を使用してインデックス化されることができ、したがって、タイルグループごとに異なる復号サイズとズーム係数を可能にする。
【0144】
本開示の一態様によると、特定のビデオコーディング技術又は規格(例えばVP9)は、時間的スケーラビリティと組み合わせて特定の形式の参照ピクチャ再サンプリングを実装することによって、空間スケーラビリティを可能にすることができる。一実施形態では、参照ピクチャは、ARCスタイルの技術を使用してより高い解像度にアップサンプリングされ、空間拡張レイヤのベースを形成する。アップサンプリングされたピクチャを、例えば詳細を追加するために高解像度で通常の予測メカニズム(例えば参照ピクチャからの相互予測のための動き補償予測)を使用して精査することができる。
【0145】
いくつかの例では、ネットワーク抽象化レイヤ(NAL)ユニットヘッダ内の値、例えば時間IDフィールドが、時間レイヤ情報と、空間レイヤ情報も示すために使用される。時間レイヤ情報と空間レイヤ情報の両方を示すためにNALユニットヘッダ内の値を使用することにより、既存の選択された転送ユニット(SFU:selected forwarding units)を、変更なしでスケーラブルな環境のために使用することが可能になる。例えばNALユニットヘッダの時間ID値に基づいて、時間レイヤ選択転送のために既存のSFUを作成して最適化することができる。次に、いくつかの例では、既存のSFUを、変更なしに空間スケーラビリティ(例えば空間レイヤの選択)のために使用することができる。いくつかの例では、コーディングされたピクチャサイズと、NALユニットヘッダ内の時間IDフィールドによって示される時間レイヤとの間のマッピングを提供することができる。
【0146】
本開示の態様によると、コーディングされたビットストリームのいくつかの特徴は、プロファイル、階層、レベル及び一般制約情報を含む、プロファイルと階層とレベルの組合せ(PTL:profile、tier、level)情報を使用して指定されることができる。いくつかの例では、プロファイルは、色再現、解像度、追加のビデオ圧縮等のようなビットストリームの機能のサブセットを定義する。ビデオコーデックは、ベースラインプロファイル(例えば低圧縮比の単純なプロファイル)、高プロファイル(高圧縮比の複雑なプロファイル)、メインプロファイル(例えばベースラインプロファイルと高プロファイルの間の中間の圧縮比のプロファイルは、デフォルトのプロファイル設定とすることができる。)のような様々なプロファイルを定義することができる。
【0147】
さらに、階層とレベルを使用して、最大ビットレート、最大ルマサンプルレート、最大ルマピクチャサイズ、最小圧縮比、許容される最大スライス数、許容される最大タイル数等の観点からビットストリームを定義する特定の制約を指定することができる。下位階層は上位階層よりも制約され、下位レベルは上位レベルよりも制約される。一例では、規格は2つの階層:Main(メイン)階層とHigh(高)階層を定義し得る。Main階層はHigh階層よりも下位階層である。階層は、最大ビットレートに関して異なるアプリケーションに対処するために作成される。一例では、Main階層はほとんどのアプリケーション向けに設計されており、High階層は非常に要求の厳しいアプリケーション向けに設計される。規格は複数のレベルを定義することができる。レベルは、ビットストリームの制約のセットである。一例では、レベル4未満のレベルでは、Main階層のみが許容される。いくつかの例では、特定の階層/レベルに準拠するデコーダは、その階層/レベルとすべての下位階層/レベルに対して符号化されたすべてのビットストリームを復号することができることが要求される。
【0148】
一般制約情報は、ビデオソースタイプ、コーディングツール及び機能性に関する制約情報を含み得る。例えば制約フラグは、インターコーディングツール、イントラコーディングツール、DBF、エントロピーコーディング、変換、パーティショニング(partitioning)(例えばタイル、スライス)、バッファ管理、ランダムアクセス(例えばIDR)、パラメータセット(例えばSPS、PPS)及び/又は同様のものが、コーディングされたビデオビットストリームにおいて存在するか又は使用されるかどうかを示すことができる。制約情報を、パラメータセット(例えばSPS、VPS、DCI)でシグナリングすることができる。制約フラグを、高レベル構文構造(例えばSPS、VPS、DCI)でシグナリングすることができる。
【0149】
本開示のいくつかの態様によると、PTL情報を、範囲(例えばビットストリーム内のコーディングされたビデオデータの一部)に関連付けることができる。いくつかの例では、PTL情報を、例えばビットストリーム全体、ビットストリームのCVS、ビットストリームの各出力レイヤセット(OLS:output layer set)及び/又は同様のものに対して指定することができ、VPS、DPS、DCI、SPS、PPS、APS、GOP、シーケンス、ヘッダ、SEIメッセージ等のような高レベル構文(HLS:high-level syntax)構造でシグナリングすることができる。
【0150】
いくつかの例では、高レベル構文(HLS)は、ブロックレベルに関して定義される。ブロックレベルのコーディングツールを使用して、ピクチャ内のピクセル又はサンプルを復号してピクチャを再構成することができる。ブロックレベルのコーディングツールは、インター予測のためのコーディングツール(又はインターコーディングツール)、イントラ予測のためのコーディングツール(又はイントラコーディングツール)、適応ループフィルタ(ALF:adaptive loop filter)、デブロッキングフィルタ(DBF:deblocking filter)、エントロピーコーディング、変換等のような、コーディングブロックの再構成において使用される任意の適切なコーディングツールを含むことができる。
【0151】
高レベル構文(HLS)は、機能性、システムインタフェース、ツールのピクチャレベル制御及びバッファ制御等に関する情報を指定することができる。例えばHLSは、パーティション(例えばタイル、スライス、サブピクチャ)、バッファ管理、ランダムアクセス(例えばIDR、クリーンランダムアクセス(CRA))、パラメータセット(例えばVPS、SPS、PPS、APS)、参照ピクチャ再サンプリング(RPR)、スケーラビリティ及び/又は同様のものを指定することができる。高レベル構文は、ブロックレベルを超えるものとすることができる。
【0152】
制御情報は、SPSレベルのツール制御情報、PPSレベルのツール制御情報、シーケンスレベルの制御情報、ビットストリームレベルの制御情報及び/又は同様のもののような、適切なレベルを有することができる。いくつかの例では、PTL情報は制御情報の一部であり、HLS構造内の制約フラグとしてシグナリングされることができ、HLS構造に対応する範囲内のツールの制御又は制約を示すことができる。例えばPTL情報の制約フラグを、シーケンスレベル制御情報とビットストリームレベル制御情報のうちの1つにおいて提供することができる。一例では、特定のツールがHLS構造内の制約フラグによって無効にされる場合、それらのツールは、例えばHLSに対応する範囲内のコーディングブロックに使用されない。
【0153】
図12及び
図13は、本開示のいくつかの実施形態によるPTL情報の例を示す。
図12は、PTL構文要素のセットの構文構造例(1200)を示し、
図13は、一般制約情報の構文構造例(1300)を示す。
【0154】
図12において、PTL構文要素のセットは、general_profile_idc、general_tier_flag、general_level_idc、num_sub_profiles、general_sub_profile_idc、sublayer_level_present_flag、ptl_alignment_zero_bit及びsublayer_level_idcを含むことができる。
【0155】
図13において、一般制約情報は、複数の制約フラグを含むことができる。一例では、1に等しい制約フラグ(例えばintra_only_constraint_flag)(1305)は、パラメータsh_slice_typeがIでなければならないこと(すなわち、スライスがイントラスライスであること)を示すことができる。パラメータsh_slice_typeは、タイプI、P、Bの間でスライスのコーディングタイプを指定する、スライスヘッダ内のパラメータである。0に等しい制約フラグ(例えばintra_only_constraint_flag)(1305)は、PTL情報の範囲内のすべてのコーディングされたピクチャに対して制約(例えばsh_slice_typeがIでなければならないこと)を課さず、この場合、他の情報(例えばprofile_idc)は非イントラスライスを許容することができる。別の例では、1に等しい制約フラグ(例えばno_alf_constraint_flag)(1306)は、PTL情報の範囲内のすべてのCVSに対してsps_alf_enabled_flagが0に等しいことを示すことができ、したがって、適応ループフィルタリングが例えばprofile_idcに基づいて許容される場合であっても、適応ループフィルタリングは使用されない。0に等しい制約フラグ(例えばno_alf_constraint_flag)(1306)は、上記の制約を課さない。
【0156】
別の例では、
図13に示されるように、制約フラグ(例えばno_lossless_coding_tool_constraint_flag)(1301)を一般制約情報でシグナリングすることができる。1に等しい制約フラグ(例えばno_lossless_coding_tool_constraint_flag)(1301)は、当該制約フラグ(1301)を含むPTL情報の範囲内で、可逆コーディングに関連するコーディングツールを使用することができないことを示すことができる。0に等しい制約フラグ(例えばno_lossless_coding_tool_constraint_flag)(1301)は、上記の制約を課さない。
【0157】
別の例では、
図13に示されるように、制約フラグ(例えばno_lossy_coding_tool_constraint_flag)(1302)を一般制約情報でシグナリングすることができる。1に等しい制約フラグ(例えばno_lossy_coding_tool_constraint_flag)(1302)は、当該制約フラグ(1302)を含むPTL情報の範囲内で、非可逆コーディングに関連するコーディングツールを使用することができないことを示すことができる。0に等しい制約フラグ(例えばno_lossy_coding_tool_constraint_flag)(1302)は、上記の制約を課さない。
【0158】
一実施形態では、制約フラグ(例えばno_lossy_coding_tool_constraint_flag)(1302)が1に等しいとき、制約フラグ(例えばno_lossless_coding_tool_constraint_flag)(1301)は1に等しくなくてよい。あるいは、制約フラグ(例えばno_lossless_coding_tool_constraint_flag)(1301)が1に等しいとき、制約フラグ(例えばno_lossy_coding_tool_constraint_flag)(1302)は1に等しくなくてよい。
【0159】
一般制約情報内の複数の制約フラグを、特定の順序でソートすることができる。順序は、例えばそれぞれのメカニズムやツールがPTLの範囲内で使用されていない可能性に基づいて設定されることができる。順序を、優先順位と呼ぶことができる。この順序を、一般制約情報の構文構造において、高い優先度から低い優先度へと提示することができ、この場合、高い優先度は、ツール(又はメカニズム)の不使用が高い可能性であることを示し、低い優先度は、ツール(又はメカニズム)の不使用が低い可能性であることを示す。順序に影響を与える追加の要素は、特定のユースケース(例えばサブピクチャ、スケーラビリティ、インターレースサポートのためのツール)にのみ使用される可能性の高いツール、エンコーダ/デコーダ/実装の複雑さに対するツールの影響等を含むことができる。
【0160】
図14A~
図14Bは、本開示のいくつかの実施形態による、PTL構文構造(PTLブラケットとも呼ばれる)の構文構造例(1410)と、一般制約情報構文構造(一般制約情報ブラケットとも呼ばれる)の構文例(1420)を含む、PTL情報の例を示す。いくつかの例では、制約フラグの数(例えばnum_available_constraint_flags)を示す構文要素をシグナリングすることができる。一例では、制約フラグの数を示す構文要素は、一般制約情報ブラケットの構文例(1420)の外部であり得る、
図14Aに示される構文例(1410)内の(1401)によって示されるような、PTL構文構造でシグナリングされることができる。あるいは、制約フラグの数を示す構文要素を、構文例(1420)の先頭のように、一般制約情報ブラケットの先頭でシグナリングすることができる。構文要素(例えばnum_available_constraint_flags)が存在し、構文要素(例えばnum_available_constraint_flags)の値がNに等しいとき、最初のN個の制約フラグが、一般制約情報構文構造内に存在し得る。さらに、他の制約フラグが存在しないことがあり、特定の値と等しいと推論することができる。Nは負でない整数を指定することができる。
【0161】
一実施形態では、値N(例えばnum_available_constraint_flags)は、0から制約フラグの最大数(例えばパラメータMaxNumConstraintFlagsの値)までの範囲である。制約フラグの最大数は任意の正の整数とすることができる。制約フラグの最大数(例えばMaxNumConstraintFlags)の値は、16、32、64、128等であるよう予め定義されることができる。値N(例えばnum_available_constraint_flags)が0に等しいとき、制約フラグは一般制約情報構文構造内に存在しない。値N(例えばnum_available_constraint_flags)のコーディングは、値Nと制約フラグの対応するエントロピーコーディング表現が8で割り切れる数まで加算してバイトアライメント(byte alignment)を保証することができるように選択されることができる。
【0162】
いくつかの例では、制約フラグを、1つ以上の制約情報グループに分類することができる。各制約情報グループは1つ以上の制約フラグを含むことができ、対応するゲートフラグを有することができる。対応する制約情報グループのゲートフラグは、対応する制約情報グループ内に制約フラグが存在し得るかどうかを示すことができる。一例では、ゲートフラグを、制約グループ存在フラグと呼ぶことができる。一般に、ゲートフラグは、対応する制約情報グループに関連付けられ、対応する制約情報グループ内の制約フラグに関連付けられる。一実施形態では、ゲートフラグは、対応する制約情報グループ内の制約フラグが、制約情報内に存在する(又はシグナリングされる)かどうかをゲーティングする。例えば対応する制約情報グループのゲートフラグが1に等しい場合、制約情報グループに対応する制約フラグが、例えば一般制約情報内に存在することができる。対応する制約情報グループのゲートフラグが0に等しい場合、制約情報グループに対応する制約フラグは、例えば一般制約情報内に存在し得ない。例えばすべてのゲートフラグが0に等しい場合、制約フラグは存在しない。
【0163】
制約フラグは異なる範囲を有することができる。例えばDCI内の制約フラグの範囲は、コーディングされたビデオビットストリームとすることができる。VPS内の制約フラグの範囲は、複数のレイヤを有するCLVSとすることができる。SPS内の制約フラグの範囲は、単一のCLVSとすることができる。
【0164】
図15A~
図15Bは、本開示の実施形態による一般制約情報構文構造(1500)の例を示す。一般制約情報構文構造(1500)は、一般制約情報を表すフラグを含む。具体的には、一般制約情報構文構造(1500)は、
図15Aのゲートフラグ(例えばgeneral_frame_structure_constraint_group_flag)(1501)、ゲートフラグ(例えばhigh_level_functionality_constraint_group_flag)(1502)、ゲートフラグ(例えばscalability_constraint_group_flag)(1503)、ゲートフラグ(例えばpartitioning_constraint_group_flag)(1504)、ゲートフラグ(例えばintra_coding_tool_constraint_group_flag)(1505)、ゲートフラグ(例えばinter_coding_tool_constraint_group_flag)(1506)、ゲートフラグ(例えばtransfom_contraint_group_flag)(1507)、ゲートフラグ(例えばinloop_filtering_constraint_group_flag)(1508)のような1つ以上のゲートフラグを含む。1つ以上のゲートフラグ(例えばゲートフラグ(1501)~(1508))は、
図15Aに示されるように、一般制約情報構文構造(1500)の先頭に存在することができる。
【0165】
ゲートフラグ(例えばgeneral_frame_structure_constraint_group_flag)(1501)は、制約情報グループ(1510)に関連付けられ、制約情報グループ(1510)内にある制約フラグ(1511)~(1514)に関連付けられる。1に等しいゲートフラグ(例えばgeneral_frame_structure_constraint_group_flag)(1501)は、制約情報グループ(1510)内にある制約フラグ(1511)~(1514)が存在し得ることを指定することができる。
【0166】
制約情報グループ(1510)(又は制約フラグ(1511)~(1514))は、入力ソース及びフレームパッキング(例えばパック化又は投影されたフレーム)に関連することができる。
図15Aを参照すると、制約フラグ(1511)~(1514)は、general_non_packed_constraint_flag(1511)、general_frame_only_constraint_flag(1512)、general_non_projected_constraint_flag(1513)及びgeneral_one_picture_only_constraint_flag(1514)に対応する。そうでない場合、0に等しいゲートフラグ(例えばgeneral_frame_structure_constraint_group_flag)(1501)は、制約情報グループ(1510)内にある制約フラグ(1511)~(1514)が一般制約情報構文構造(1500)内に存在し得ないことを指定することができる。
【0167】
さらに、いくつかの例では、1に等しいゲートフラグ(例えばhigh_level_functionality_constraint_group_flag)(1502)は、
図15Bによって示されるように、制約情報グループ(1520)内にある高レベルの機能性(例えば参照ピクチャ再サンプリング)に関連する制約フラグが存在し得ることを指定することができる。そうでない場合、0に等しいゲートフラグ(例えばhigh_level_functionality_constraint_group_flag)(1502)は、制約情報グループ(1520)内にある制約フラグが一般制約情報構文構造(1500)内に存在し得ないことを指定することができる。
【0168】
図15Aに戻ると、1に等しいゲートフラグ(例えばscalability_constraint_group_flag)(1503)は、スケーラビリティ(例えばインターレイヤ予測)に関連する制約フラグが存在し得ることを指定することができる。そうでない場合、スケーラビリティに関連する制約フラグは、一般制約情報構文構造(1500)内に存在し得ない。
【0169】
1に等しいゲートフラグ(例えばpartitioning_constraint_group_flag)(1504)は、高レベルパーティショニング(例えばサブピクチャ又はタイル)に関連する制約フラグが存在し得ることを指定することができる。そうでない場合、高レベルパーティショニングに関連する制約フラグは、一般制約情報構文構造(1500)内に存在し得ない。
【0170】
1に等しいゲートフラグ(例えばintra_coding_tool_constraint_group_flag)(1505)は、イントラコーディング(例えばイントラ予測)に関連する制約フラグが存在し得ることを指定することができる。そうでない場合、イントラコーディングに関連する制約フラグは、一般制約情報構文構造(1500)内に存在し得ない。
【0171】
1に等しいゲートフラグ(例えばinter_coding_tool_constraint_group_flag)(1506)は、インターコーディングに関連する制約フラグ(例えばイントラピクチャ予測の動き補償)が存在し得ることを指定することができる。そうでない場合、インターコーディングに関連する制約フラグは、一般制約情報構文構造(1500)内に存在し得ない。
【0172】
1に等しいゲートフラグ(例えばtransfom_contraint_group_flag)(1507)は、変換コーディング(例えば複数の変換行列)に関連する制約フラグが存在し得ることを指定することができる。そうでない場合、変換コーディングに関連する制約フラグは、一般制約情報構文構造(1500)に存在し得ない。
【0173】
一実施形態では、すべてのゲートフラグ(例えば
図15Aのゲートフラグ(1501)~(1508))が0に等しいとき、制約フラグは、一般制約情報構文構造(例えば一般制約情報構文構造(1500))内に存在しない。
【0174】
本開示の態様によると、ゲートフラグ(例えばゲートフラグ(1501)~(1508))、関連する制約フラグ(例えば制約フラグ(1511)~(1512)、制約情報グループ(1520)内の制約フラグ)、追加の制御情報及び/又は同様のものを含む制御情報がバイトアライメントされることができるように、例えばバイトアライメントを保持するためにフラグの数が8で割り切れるように、構文を設計することができる。一例では、制約情報(例えば一般制約情報構文構造(1500))内のゲートフラグと制約フラグの数は8で割り切れる。バイトアライメントメカニズムを使用して、制御情報のバイトアライメントを実現することができる。
図15Bを参照すると、バイトアライメントのために構文(例えばwhileループ)(1530)を使用することができる。
【0175】
いくつかの実施形態では、オフセット(例えば構文要素constraint_info_offset[]を使用する)のようなオフセット情報と、長さ(例えば構文要素constraint_info_length[]を使用する)のような長さ情報が、制約情報内に(例えば一般制約情報構文構造の先頭に)存在し、制約情報内のゲートフラグに関連付けられるそれぞれの制約情報グループ内の制約フラグの提示を助ける。一実施形態では、少なくとも1つの制約情報グループのうちの1つ以上が、コーディングされたビデオビットストリーム内に存在する。制約情報グループの場合、オフセットと長さが制約情報グループの制約情報内に存在することができる。オフセットは、制約情報グループの第1制約フラグへのオフセットを示すことができ、長さは、制約情報グループの制約フラグの数を示すことができる。いくつかの例では、制約情報グループの数を、例えば構文要素num_constraint_info_setによって明示的に示すことができる。num_constaint_info_setの値は0以上の整数とすることができる。num_constaint_info_setの値が0であるとき、constraint_info_offset[]、constraint_info_length[]及び制約フラグは、一般制約情報構文構造内に存在しない。
【0176】
一実施形態では、制約情報オフセット(例えば構文要素constraint_info_offset[i])と制約情報長さ(例えば構文要素constraint_info_length[i])は、制約情報(例えば一般制約情報構文構造)における制約情報グループi(iは正の整数)の制約フラグの提示を助けることができる。例えば制約情報オフセット(例えば構文要素constraint_info_offset[i])の値が5に等しく、制約情報長さ(例えば構文要素constraint_info_length[i])の値が3に等しいとき、5番目、6番目及び7番目の制約フラグが制約情報グループiに関連付けられ、制約情報(例えば一般制約情報構文構造)内に存在する。
【0177】
一例では、ランレングスコーディングを使用して、予め決められた順序(又は所与の順序)で指定される制約フラグをコーディングすることができる。
【0178】
一実施形態では、制約フラグが予め決められた順序(又は所与の順序)で指定される、ランコーディング(run-coding)を使用することができる。制約フラグを直接コーディングする代わりに、「スキップ」値の適切にコーディングされたリストは、0に等しい制約フラグを示すことができ、次の制約フラグが1に等しいことを意味する。上述のランコーディングは、(i)制約フラグの数が多く、(ii)制約フラグのわずかな割合が1に等しい場合に特に効率的であり得る。
【0179】
一実施形態では、少なくとも1つの制約情報グループのうちの1つ以上が、コーディングされたビデオビットストリーム内に存在する。少なくとも1つの制約情報グループのうちの1つ以上における複数の制約フラグは、所定の順序に従ってシグナリングされる。したがって、それらの複数の制約フラグをランコーディング(例えばラン符号化又はラン復号)することができる。さらに、それらの複数の制約フラグに基づいて、コーディングブロックのサブセットの予測情報を決定することができる。
【0180】
一実施形態では、ゲートフラグの制約情報グループ内の少なくとも1つの制約フラグは、所定の順序に従ってシグナリングされる複数の制約フラグを含む。したがって、複数の制約フラグをランコーディング(例えばラン符号化又はラン復号)することができる。
【0181】
一実施形態では、制約フラグの完全なリストを、ビデオコーディング規格(例えばVVC仕様)、外部テーブル等において指定することができる。一例では、制約フラグの利用可能な制約フラグのみが、例えば以下の1つ以上によって、すなわち、利用可能な制約フラグの数(例えばnum_available_constraint_flags)、ゲートフラグ(又は制約グループ存在フラグ)、制約情報オフセット情報及び制約情報長さ情報等がコーディングされたビデオストリーム内に存在すること、によって示される。
【0182】
一例では、制約フラグの完全なリストが指定され、エンコーダとデコーダに対して利用可能である。制約フラグの完全なリストをデコーダに記憶することができる。制約フラグの完全なリストは、100個の制約フラグを含むことができる。100個の制約フラグのうち10個は、CLVSの制約情報内に存在し、したがって、CLVS内のコーディングブロックのサブセットに利用可能である。100個の制約フラグのうち10個は、10の利用可能な制約フラグと呼ばれる。一例では、利用可能な制約フラグの数(例えば10)がシグナリングされる。一例では、10の利用可能な制約フラグは、2つの制約情報グループにあり、第1ゲートフラグと第2ゲートフラグによってゲーティングされる。したがって、第1ゲートフラグと第2ゲートフラグをシグナリングして、10の利用可能な制約フラグを示すことができる。
【0183】
一例では、第1制約情報オフセット(例えば構文要素constraint_info_offset[0])と第1制約情報長さ(例えば構文要素constraint_info_length[0])がシグナリングされる。第2制約情報オフセット(例えば構文要素constraint_info_offset[1])と第2制約情報長さ(例えば構文要素constraint_info_length[1])がシグナリングされる。例えば構文要素constraint_info_offset[0]は15であり、構文要素constraint_info_length[0]は3であり、構文要素constraint_info_offset[1]は82であり、構文要素constraint_info_length[1]は7であり、したがって、完全なリスト(例えば100個の制約フラグ)内の15番目から17番目の制約フラグと82番目から88番目の制約フラグが制約情報で利用可能又は存在することを示す。
【0184】
一実施形態では、適切な制御情報を用いて、制約フラグを効率的にコーディングするための様々な技術(又は方法、実施形態、実施例)のいずれかを組み合わせることができる。組合せは、そのような技術のうちの2つ以上の適切な組合せであり得る。あるいは、様々な技術(又は方法、実施形態、実施例)のうちの1つを単独で使用することもできる。制約フラグをグループ化することができる。特定のグループにおいて、ランコーディングを使用することができ、一方、他のグループは簡単なバイナリコーディングを用いてもよい。
【0185】
制約フラグの最大数(例えばMaxNumConstraintFlags)の値を、16、32、64、128等であるように予め定義することができる。
【0186】
制約フラグの最大数(例えばMaxNumConstraintFlags)の値を、general_profile_idcやgeneral_sub_profile_idcのようなプロファイル情報又はコーデックバージョン情報によって決定することができ、その結果、制約フラグの数(例えばnum_available_constraint_flags(1401))の範囲をプロファイル情報又はバージョン情報によって制限することができる。例えばメインプロファイル(例えばMaxNumConstraintFlags=64)における制約フラグの数(例えばnum_available_constraint_flags(1401))の値は、0から64の範囲内とすることができ、高度なプロファイル(例えばMaxNumConstraintFlags=128)における制約フラグの数(例えばnum_available_constraint_flags(1401))の値は、例えば0から128の範囲内とすることができる。
【0187】
一実施形態では、制約フラグの数(例えばnum_available_constraint_flags)の値は、general_profile_idcやgeneral_sub_profile_idcのようなプロファイル情報又はコーデックバージョン情報によって予め定義された値と等しいと推測することができ、その結果、明示的にシグナリングすることなく、num_available_constraint_flagsの値を決定することができる。
【0188】
いくつかの実施形態では、予約されたバイト情報(reserved byte information)が一般制約情報構文構造に存在することができる。例えば
図13に示されるように、フラグgci_num_reserved_bytes(1303)及びgci_reserved_bytes[](1304)が、一般制約情報構文構造の拡張のために、一般制約情報構文構造に存在することができる。フラグgci_num_reserved_bytesは、予約された制約バイトの数を指定することができる。一例では、予約された制約バイトは、追加のフラグ(例えば追加の制約フラグ)をシグナリングするためのものである。フラグgci_reserved_byte[]は、任意の適切な値を有してよい。
【0189】
一実施形態では、gci_num_reserved_bytesの値は、general_profile_idcやgeneral_sub_profile_idcのようなプロファイル情報又はコーデックバージョン情報によって制限又は決定され得る。ベースプロファイル(又はメインプロファイル)では、フラグgci_num_reserved_bytesの値は0とすることができる。拡張プロファイル(又は高度なプロファイル)では、gci_num_reserved_bytesの値を0より大きいものとすることができる。
【0190】
いくつかの実施形態では、フィールドシーケンスフラグを、コーディングされたビデオビットストリームでシグナリングすることができる。フィールドシーケンスフラグは、出力レイヤのピクチャがフィールドコーディングでコーディングされているかどうかを示すことができる。いくつかの例では、フィールドシーケンスフラグは、構文要素sps_field_seq_flagを使用してSPSでシグナリングすることができる。一実施形態では、フラグsps_field_seq_flagがSPS内に存在し得る。1に等しいフラグsps_field_seq_flagは、CLVSが、フィールドを表すピクチャを伝達することを示すことができる。0に等しいフラグsps_field_seq_flagは、CLVSが、フレームを表すピクチャを伝達することを示すことができる。
【0191】
図13の一般制約情報構文構造には、フラグgeneral_frame_only_constraint_flagが存在し得る。1に等しいフラグgeneral_frame_only_constraint_flagは、出力レイヤセットの範囲(例えばOlsInScope)が、フレームを表すピクチャを伝達することを指定することができる。0に等しいフラグgeneral_frame_only_constraint_flagは、出力レイヤセットの範囲(例えばOlsInScope)が、フレームを表すことも表さないこともあるピクチャを伝達することを指定する。一実施形態では、フラグgeneral_frame_only_constraint_flagは、出力レイヤセット内のピクチャが、フィールドコーディングでコーディングされているかどうかを示す。出力レイヤセットは、コーディングブロックのサブセットを含むことができる。フラグsps_field_seq_flagは、ピクチャのサブセットが、フィールドコーディングでコーディングされていないことを示すフラグgeneral_frame_only_constraint_flag(例えば1である)に基づいて、偽(false)とすることができる。ピクチャのサブセットは、出力レイヤセットの1つのレイヤ内にすることができる。
【0192】
フラグgeneral_frame_only_constraint_flagが1に等しいとき、フラグsps_field_seq_flagの値は0に等しくなり得る。
【0193】
一実施形態では、フラグpps_mixed_nalu_types_in_pic_flagがPPS内に存在し得る。1に等しいフラグpps_mixed_nalu_types_in_pic_flagは、PPSを参照する各ピクチャが、2つ以上のVCL NALユニットを有し、VCL NALユニットが、同じnal_unit_type値を有しないことを指定することができる。0に等しいフラグpps_mixed_nalu_types_in_pic_flagは、PPSを参照する各ピクチャが、1つ以上のVCL NALユニットを有し、PPSを参照する各ピクチャのVCL NALユニットが同じnal_unit_type値を有することを指定することができる。
図13の一般制約情報構文構造には、フラグno_mixed_nalu_types_in_pic_constraint_flagが存在し得る。1に等しいフラグno_mixed_nalu_types_in_pic_constraint_flagは、pps_mixed_nalu_types_in_pic_flagの値が0に等しくあるべきことを指定することができる。0に等しいフラグno_mixed_nalu_types_in_pic_constraint_flagは、このような制約を課さない。
【0194】
一実施形態では、フラグgeneral_one_picture_only_constraint_flagが、
図13に示されるような一般制約情報構文構造に存在し得る。1に等しいgeneral_one_picture_only_constraint_flagは、ビットストリーム内にコーディングされたピクチャが1つだけ存在することを指定することができる。0に等しいフラグgeneral_one_picture_only_constraint_flagは、このような制約を課さない。
【0195】
一実施形態では、フラグsingle_layer_constraint_flagが、
図13に示されるような一般制約情報構文構造に存在し得る。1に等しいフラグsingle_layer_constraint_flagは、sps_video_parameter_set_idが0に等しくあるべきことを指定することができる。0に等しいフラグsingle_layer_constraint_flagは、このような制約を課さない。フラグgeneral_one_picture_only_constraint_flagが1に等しいとき、フラグsingle_layer_constraint_flagの値は1に等しくなり得る。
【0196】
一実施形態では、フラグall_layers_independent_constraint_flagが、
図13に示されるような一般制約情報構文構造に存在し得る。1に等しいフラグall_layers_independent_constraint_flagは、フラグvps_all_independent_layers_flagが1に等しくなり得ることを指定することができる。0に等しいフラグall_layers_independent_constraint_flagは、このような制約を課さない。フラグsingle_layer_constraint_flagが1に等しいとき、フラグall_layers_independent_constraint_flagの値は1に等しくなり得る。
【0197】
一実施形態では、フラグno_res_change_in_clvs_constraint_flagが、
図13に示されるような一般制約情報構文構造に存在し得る。1に等しいフラグno_res_change_in_clvs_constraint_flagは、フラグsps_res_change_in_clvs_allowed_flagが0に等しくなり得ることを指定することができる。0に等しいフラグno_res_change_in_clvs_constraint_flagは、このような制約を課さない。フラグno_ref_pic_resampling_constraint_flagが1に等しいとき、フラグno_res_change_in_clvs_constraint_flagの値は1に等しくなり得る。
【0198】
一実施形態では、フラグno_mixed_nalu_types_in_pic_constraint_flagが、
図13の一般制約情報構文構造に存在し得る。1に等しいフラグno_mixed_nalu_types_in_pic_constraint_flagは、フラグpps_mixed_nalu_types_in_pic_flagの値が0に等しくなり得ることを指定する。0に等しいフラグno_mixed_nalu_types_in_pic_constraint_flagは、このような制約を課さない。フラグone_subpic_per_pic_constraint_flagが1に等しいとき、フラグno_mixed_nalu_types_in_pic_constraint_flagの値は1に等しくなり得る。
【0199】
一実施形態では、フラグno_trail_constraint_flagが、
図13の一般制約情報構文構造に存在し得る。1に等しいフラグno_trail_constraint_flagは、OlsInScope内に存在するTRAIL_NUTに等しいnuh_unit_typeを有するNALユニットが存在し得ないことを指定することができる(OlsInScopeは、DPSを参照するビットストリーム全体におけるすべてのレイヤを含む出力レイヤセットである)。0に等しいフラグno_trail_constraint_flagは、このような制約を課さない。フラグgeneral_one_picture_only_constraint_flagが1に等しいとき、フラグno_trail_constraint_flagは1に等しくなり得る。
【0200】
一実施形態では、フラグno_stsa_constraint_flagは、
図13の一般制約情報構文構造に存在し得る。1に等しいフラグno_stsa_constraint_flagは、OlsInScope内に存在するSTSA_NUTに等しいnuh_unit_typeを有するNALユニットが存在し得ないことを指定することができる。0に等しいフラグno_stsa_constraint_flagは、このような制約を課さない。フラグeneral_one_picture_only_constraint_flagが1に等しいとき、フラグno_stsa_constraint_flagは1に等しくなり得る。
【0201】
一実施形態では、フラグno_trail_constraint_flagが、
図13の一般制約情報構文構造に存在し得る。1に等しいフラグno_trail_constraint_flagは、OlsInScope内に存在するTRAIL_NUTに等しいnuh_unit_typeを有するNALユニットが存在し得ないことを指定することができる。0に等しいフラグno_trail_constraint_flagは、このような制約を課さない。フラグgeneral_one_picture_only_constraint_flagが1に等しいとき、フラグno_trail_constraint_flagは1に等しくなり得る。
【0202】
一実施形態では、フラグno_stsa_constraint_flagが、
図13の一般制約情報構文構造に存在し得る。1に等しいフラグno_stsa_constraint_flagは、OlsInScope内に存在するSTSA_NUTに等しいnuh_unit_typeを有するNALユニットが存在し得ないことを指定することができる。0に等しいフラグno_stsa_constraint_flagは、このような制約を課さない。フラグgeneral_one_picture_only_constraint_flagが1に等しいとき、フラグno_stsa_constraint_flagは1に等しくなり得る。
【0203】
一実施形態では、フラグno_idr_constraint_flagが、
図13に示されるような一般制約情報構文構造に存在し得る。1に等しいno_idr_constraint_flagは、OlsInScope内に存在するIDR_W_RADL又はIDR_N_LPに等しいnuh_unit_typeを有するNALユニットが存在し得ないことを指定することができる。0に等しいno_idr_constraint_flagは、このような制約を課さない。
【0204】
一実施形態では、フラグno_cra_constraint_flagが、
図13に示されるような一般制約情報構文構造に存在し得る。1に等しいフラグno_cra_constraint_flagは、OlsInScope内に存在するCRA_NUTに等しいnuh_unit_typeを有するNALユニットが存在し得ないことを指定することができる。0に等しいフラグno_cra_constraint_flagは、このような制約を課さない。
【0205】
一実施形態では、フラグno_rasl_constraint_flagが、
図13の一般制約情報構文構造に存在し得る(フラグno_rasl_constraint_flagは示されていない)。1に等しいフラグno_rasl_constraint_flagは、OlsInScope内に存在するRASL_NUTに等しいnuh_unit_typeを有するNALユニットが存在し得ないことを指定することができる。0に等しいフラグno_rasl_constraint_flagは、このような制約を課さない。フラグno_cra_constraint_flagが1に等しいとき、フラグno_rasl_constraint_flagの値は1に等しくなり得る。
【0206】
一実施形態では、フラグno_radl_constraint_flagが、
図13に示されるような一般制約情報構文構造に存在し得る。1に等しいフラグno_radl_constraint_flagは、OlsInScope内に存在するRADL_NUTに等しいnuh_unit_typeを有するNALユニットが存在し得ないことを指定することができる。0に等しいフラグno_radl_constraint_flagは、このような制約を課さない。フラグno_idr_constraint_flagが1に等しく、フラグno_cra_constraint_flagが1に等しいとき、フラグno_rasl_constraint_flagの値は1に等しくなり得る。
【0207】
本開示のいくつかの態様は、残差ライスコーディング拡張を伴うレンジ拡張のようなレンジ拡張のための制約フラグシグナリングの技術を提供する。
【0208】
本開示の態様によると、残差コーディングを、Riceコーディングに基づいて実行することができる。Riceコーディングは、調整可能なパラメータを使用して入力値を2つの部分に分割し、異なるコーディング技術を使用して2つの部分をコーディングする。調整可能なパラメータは、いくつかの例ではRiceパラメータと呼ばれる。Riceパラメータは、ライスコーディングのコーディング効率に影響を与える可能性がある。技術を使用して、特定のアプリケーションのRiceパラメータを決定し、特定のアプリケーションのコーディング効率を向上させることができる。Riceパラメータを決定するいくつかの技術が、ビデオ規格のレンジ拡張に含まれ得る。
【0209】
本開示の態様によると、いくつかの規格を当初、特定のアプリケーションのために開発することができる。規格を他のアプリケーションに適用可能にするために、他のアプリケーションをサポートするようにツールを用いてレンジ拡張を開発する。例えばHEVCは当初、サンプルあたり8~10ビットの4:2:0クロマ形式のアプリケーションを対象とする。規格を特定のクロマ形式と特定のビット深度以外の他の形式とビット深度に適用可能にするために、他のクロマ形式及び/又はより高ビット深度を使用するアプリケーションをサポートするようにレンジ拡張を開発することができる。
【0210】
機能セットを、アプリケーションの特定のグループに必要なものに制限するために、ビデオコーディング規格はプロファイルを定義し、プロファイルは、これらの機能を使用するエンコーダとの相互運用性のためにサポートされるべき定義されたデコーダ機能セットを含むことができる。例えばプロファイルは、準拠するビットストリームを生成する際に使用することができる、コーディングツール又はアルゴリズムのセットを定義することができる。プロファイルに加えて、いくつかの規格(例えばVVC、HEVC等)はまたレベルと階層を定義する。レベルは、空間解像度、ピクセルレート、ビットレート値及びデコーダ処理負荷とメモリ能力に対応し得る変動(variation)に関連してビットストリームに制限を課す。レベル制限は、最大サンプルレート、最大ピクチャサイズ、最大ビットレート、最小圧縮比、コーディングされたピクチャバッファの容量等に関して表され得る。より高いレベルの値は、より高い複雑さの限度に対応する可能性がある。階層は、各レベルについてビットレート値と変動限度(variation limits)を変更する。例えばMain階層はほとんどのアプリケーションを対象としており、一方、High階層は、ビデオ配信アプリケーションよりも大幅に高いビットレート値を有するような、より要求の厳しいビデオ寄与アプリケーション(video contribution applications)に対処するように設計されている。プロファイル、階層及びレベルの各々が実装と復号の複雑さに影響し、3つの組合せによりビットストリームとデコーダの相互運用性ポイントを指定する。
【0211】
いくつかの例では、特定の階層とレベルに準拠するデコーダは、そのレベルの同じ階層又は下位の階層又はその下の任意のレベルに準拠するすべてのビットストリームを復号することが可能である必要があり、特定のプロファイルに準拠するデコーダは、そのプロファイル内のすべての機能をサポートすることができる。いくつかの例では、エンコーダは、プロファイルでサポートされる機能の任意の特定のセットを使用する必要はないが、準拠するビットストリーム、すなわち、準拠するデコーダによって復号されることを可能にする、指定された制約に従うビットストリームを生成する必要がある。
【0212】
PTL情報に加えて、PTL構文構造はまた、一般制約情報(GCI)構文構造も含んでよく、これは、制約フラグと、ビットストリームの特定の制約プロパティを示すフラグ以外の構文要素のリストを含む。
【0213】
一例では、HEVCは最初、メイン(Main)プロファイル、メイン10プロファイル、メイン静止画(Main Still Picture)プロファイルと呼ばれる3つのプロファイルを含む。3つのプロファイルは、4:2:0クロマサンプリングのみをサポートすること等のような、いくつかの制限を有する。メインプロファイル及びメイン静止画プロファイルでは、サンプルあたり8ビットのビデオ精度のみがサポートされるが、一方、メイン10プロファイルは、サンプルあたり最大10ビットをサポートする。メイン静止画プロファイルでは、ビットストリーム全体で1つのコーディングされたピクチャのみを含む。
【0214】
いくつかの例では、レンジ拡張を有するHEVCは、追加のプロファイルをサポートすることができる。一例では、以下のプロファイル、すなわち:モノクロ(Monochrome)プロファイル、モノクロ10プロファイル、モノクロ12プロファイル、モノクロ16プロファイル、メイン12プロファイル、メイン4:2:2 10プロファイル、メイン4:2:2 12プロファイル、メイン4:4:4プロファイル、メイン4:4:4 10プロファイル、メイン4:4:4 12プロファイル、メインイントラ(Main Intra)プロファイル、メイン10イントラプロファイル、メイン12イントラプロファイル、メイン4:2:2 10イントラプロファイル、メイン4:2:2 12イントラプロファイル、メイン4:4:4イントラプロファイル、メイン4:4:4 10イントラプロファイル、メイン4:4:4 12イントラプロファイル、メイン4:4:4 16イントラプロファイル、メイン4:4:4静止画プロファイル、メイン4:4:4 16静止画プロファイル、をまとめてレンジ拡張プロファイルと呼ぶ。
【0215】
レンジ拡張プロファイルのいくつかは、より高ビット深度をサポートすることができ、高ビット深度の操作レンジ拡張(operation range extensions)のプロファイルと呼ぶことができる。いくつかの例では、高ビット深度の操作レンジ拡張のプロファイルは、メイン12プロファイル、メイン12 4:4:4プロファイル、メイン16 4:4:4プロファイル、メイン12イントラプロファイル、メイン12 4:4:4イントラプロファイル、メイン16 4:4:4イントラプロファイル、メイン12静止画プロファイル、メイン12 4:4:4静止画プロファイル、メイン16 4:4:4静止画プロファイル等のような、サンプルあたり10ビット超をサポートするプロファイルを含む。
【0216】
具体的には、メイン12プロファイルは、イントラ予測モードとインター予測モードの両方で、4:0:0と4:2:0のクロマサンプリングをサポートし、サンプルあたり8ビットから12ビットのビット深度を可能にする。いくつかの例では、メイン12プロファイルに準拠するデコーダは、以下のプロファイル、すなわち、モノクロ、モノクロ12、メイン、メイン10、メイン12プロファイルで作成されたビットストリームを復号することが可能である。
【0217】
メイン12 4:4:4プロファイルは、4:0:0、4:2:0、4:2:2及び4:4:4のクロマサンプリングと、イントラ予測モードとインター予測モードの両方をサポートし、サンプルあたり8ビットから12ビットのビット深度を可能にする。いくつかの例では、メイン12 4:4:4プロファイルに準拠するデコーダは、以下のプロファイル、すなわち、モノクロ、メイン、メイン10、メイン12、メイン10 4:2:2、メイン12 4:2:2、メイン4:4:4、メイン10 4:4:4、メイン12 4:4:4及びモノクロ12プロファイルで作成されたビットストリームを復号することが可能である。
【0218】
メイン16 4:4:4プロファイルは、4:0:0、4:2:0、4:2:2及び4:4:4のクロマサンプリングと、イントラ予測モードとインター予測モードの両方をサポートし、サンプルあたり8ビットから16ビットのビット深度を可能にする。
【0219】
メイン12 イントラプロファイルは、4:0:0及び4:2:0のクロマサンプリングと、イントラ予測モードをサポートし、サンプルあたり8ビットから12ビットのビット深度を可能にする。
【0220】
メイン12 4:4:4イントラプロファイルは、4:0:0、4:2:0、4:2:2及び4:4:4のクロマサンプリングと、イントラ予測モードをサポートし、サンプルあたり8ビットから12ビットのビット深度を可能にする。
【0221】
メイン16 4:4:4イントラプロファイルは、4:0:0、4:2:0、4:2:2及び4:4:4のクロマサンプリングと、イントラ予測モードをサポートし、サンプルあたり8ビットから16ビットのビット深度を可能にする。
【0222】
メイン12静止画プロファイルは、4:0:0及び4:2:0のクロマサンプリングをサポートし、サンプルあたり8ビットから12ビットのビット深度を可能にする。メイン12静止画プロファイルでは、ビットストリーム全体で1つのコーディングされたピクチャのみを含む。
【0223】
メイン12 4:4:4静止画プロファイルは、4:0:0、4:2:0、4:2:2及び4:4:4のクロマサンプリングをサポートし、サンプルごとに8ビットから12ビットのビット深度を可能にする。メイン12 4:4:4静止画プロファイルでは、ビットストリーム全体で1つのコーディングされたピクチャのみを含む。
【0224】
メイン16 4:4:4静止画プロファイルは、4:0:0、4:2:0、4:2:2及び4:4:4のクロマサンプリングをサポートし、サンプルごとに8ビットから16ビットのビット深度を可能にする。メイン16 4:4:4静止画プロファイルでは、ビットストリーム全体で1つのコーディングされたピクチャのみを含む。
【0225】
本開示のいくつかの態様によると、コーディングツール制御を、ビットストリームの範囲、コーディングされたレイヤビデオシーケンス(CLVS)の範囲、ピクチャ、ピクチャのスライス等のような、様々な範囲(例えばコーディングツール制御のための構文要素のインスタンスの永続性を用いてコーディングされる、コーディングされたビデオデータの一部)で実行することができる。いくつかの例では、コーディングツール制御を、デコーダに出力レイヤセットを伝えるビットストリームの制約情報を一般的に含む、一般制約情報(GCI)構文構造において提供することができる。いくつかの例では、コーディングツール制御を、CLVSに関連付けられるシーケンスパラメータセット(SPS)において提供することができ、SPSは一般的にCLVSの情報を含む。いくつかの例では、コーディングツール制御を、ピクチャのピクチャヘッダにおいて提供することができ、ピクチャヘッダは一般的にピクチャの情報を含む。いくつかの例では、コーディングツール制御を、スライスのスライスヘッダにおいて提供することができ、スライスヘッダは一般的にスライスの情報を含む。
【0226】
本開示の態様によると、レンジ拡張におけるコーディングツールの制御情報を、様々な範囲で提供することができる。いくつかの例では、より大きな範囲の構文要素を使用することは、コーディング効率を改善させることができる。例えば0より大きいGCI構文要素の値は、ビットストリームが特定の方法で制約されることを示し、典型的には、特定のコーディングツールがビットストリームで使用されないことを示す。さらに、値0に等しいGCI構文要素の値は、関連するコーディングツールが(指示されたプロファイルでその使用がサポートされている場合)ビットストリームで使用されることが許容される(ただし、必要とはされない)ように、関連する制約が適用され得ないことをシグナリングする。
【0227】
本開示の別の態様によると、コーディングツールが、ビットストリームにおけるビデオデータのコーディングで使用されないとき、例えばPTL情報及び/又は一般制約情報においてコーディングツールの不使用を示し、コーディングツールのサポートがないビデオデコーダは、該ビデオデコーダが、PTL情報及び/又は一般制約情報におけるシグナリングに基づいてビットストリームを復号することが可能であると判断してよく、ビデオデコーダの機能性を拡張することができる。
【0228】
いくつかの実施形態では、エンコーダは、レンジ拡張を伴うビデオ規格に準拠したビットストリームを生成することができるが、レンジ拡張でサポートされる1つ以上の機能の使用は行わない。いくつかの例では、レンジ拡張における1つ以上の機能の不使用がわかっている場合、ビデオ規格に準拠しているが、レンジ拡張で1つ以上の機能をサポートしていないデコーダは、該デコーダがビットストリームを復号することが可能であると判断してよく、ビットストリームを拒絶する代わりに、復号のためにビットストリームを受け入れてよい。
【0229】
図16は、本開示のいくつかの実施形態による一般制約情報の構文構造(1600)を示す。いくつかの例では、構文構造(1600)は、デコーダへの出力レイヤセットを含むビットストリームのような、ビットストリームに適用される制約を含む。
図16の例では、構文構造(1600)のgci_num_additional_bitsによって示される構文要素は、アライメントゼロビット構文要素(存在する場合)以外の一般制約情報構文構造(1600)内の追加の一般制約情報(GCI)ビットの数を指定するために使用される。いくつかの規格では、gci_num_additional_bitsの値は、0又は1に等しいことが要求される。いくつかの規格では、デコーダは、1より大きいgci_num_additional_bits
の値が構文構造に表れることを許容し得る。
【0230】
図16の例では、構文構造(1600)は、general_no_extended_precision_constraint_flag、general_no_ts_residual_coding_rice_present_in_sh_constraint_flag、general_no_rrc_rice_extension_constraint_flag、general_no_persistent_rice_adaptation_constraint_flag及びgeneral_no_reverse_last_sig_coeff_constraint_flagによって示される5つの追加GCIビット(構文要素)(1601)~(1605)を含む。5つの追加GCIビット(1601)~(1605)はそれぞれ、いくつかの例では、出力レイヤセットのビットストリームの範囲におけるコーディングツールのコーディング制御情報を提供する。
【0231】
図17は、本開示のいくつかの実施形態によるシーケンスパラメータセット(SPS)レンジ拡張の構文構造(1700)の例を示す。構文構造(1700)は、CLVSのレンジ拡張のコーディングツールの制御を提供するためにCLVSのSPSに追加され得る。構文構造(1700)は、sps_extended_precision_flag、sps_ts_residual_coding_rice_present_in_sh_flag、sps_rrc_rice_extension_flag、sps_persistent_rice_adaptation_enabled_flag及びsps_reverse_last_sig_coeff_enabled_flagによって示される5つの構文要素(1701)~(1705)を含む。5つの構文要素(1701)~(1705)は、いくつかの例では、CLVSの範囲内のコーディングツールのコーディング制御情報を提供する。
【0232】
具体的には、一実施形態では、GCIビット(1601)及び構文要素(1701)は、異なる範囲において、スケーリング及び変換プロセスにおける変換係数のため、並びにabs_remainder[]及びdec_abs_level[]等のようないくつかの構文要素の二値化のための拡張ダイナミックレンジのコーディングツールの制御のような、拡張された精度を使用する制御を提供する。
【0233】
1に等しい構文要素(1701)は、拡張ダイナミックレンジが、スケーリング及び変換プロセスにおける変換係数のため、並びにabs_remainder[]及びdec_abs_level[]等のようないくつかの構文要素の二値化のために使用されることを指定する。構文要素abs_remainder[scanning position n]は、スキャン位置nにおいてGolomb-Riceコードでコーディングされる変換係数レベルの残りの絶対値である。abs_remainder[]が存在しないとき、0に等しいと推論される。構文要素dec_abs_level[scanning position n]は、スキャン位置nにおけるGolomb-Riceコードでコーディングされる中間値に対応することができ、スキャン位置nにおける変換係数のレベルを決定するために使用される。0に等しい構文要素(1701)は、拡張ダイナミックレンジがスケーリング及び変換プロセスにおいて使用されず、例えば構文要素abs_remainder[]及びdec_abs_level[]等のような二値化に使用されないことを指定する。存在しないとき、構文要素(1701)の値は0に等しいと推論される。
【0234】
一例では、Log2TransformRangeによって示される変数を使用して、スケーリング及び変換プロセスにおける変換係数と、特定の構文要素の二値化とのためのダイナミックレンジを決定する。例えば変数Log2TransformRangeは、スケーリング及び変換プロセスにおける変換係数を表すため、並びに特定の構文要素の二値化のためのビット数とすることができる。ダイナミックレンジは、ビット数を使用して表される最大数と最小数の差とすることができる。一例では、変数Log2TransformRangeは、例えば式(1)を使用して、構文要素(1701)sps_extended_precision_flagに従って導出される:
Log2TransformRange = sps_extended_precision_flag ? Max( 15, Min( 20, BitDepth + 6 ) ) : 15 式(1)
【0235】
スケーリング及び変換プロセスにおける変換係数と、特定の構文要素の二値化とのためのダイナミックレンジを、変数Log2TransformRangeに基づいて決定することができる。いくつかの例では、フラグsps_extended_precision_flagが値0を有するとき、拡張ダイナミックレンジ機能(例えば拡張ダイナミックレンジのコーディングツール)は使用されず、変換係数のダイナミックレンジは、15ビットのような固定数のビットに基づく。フラグsps_extended_precision_flagが値1を有するとき、拡張ダイナミックレンジ機能が有効になり、スケーリング及び変換処理における変換係数を表すビット数は、式(1)の例におけるビット深度BitDepthに基づいて、15ビット、16ビット、17ビット、18ビット、19ビット及び20ビットのうちの1つとすることができる。変換係数のダイナミックレンジを、ビット数に基づいて決定することができる。
【0236】
本開示の一態様によると、構文要素(例えばsps_bitdepth_minus8によって示される)を使用して、ルマ及びクロマアレイのサンプルのビット深度(例えばBitDepthによって示される)と、ルマ及びクロマ量子化パラメータレンジオフセットの値(例えばQpBdOffsetによって示される)をシグナリングすることができる。一例では、ビット深度BitDepthを、式(2)に従って計算することができ、QPレンジオフセットQpBdOffsetを、式(3)に従って計算することができる:
BitDepth = 8 + sps_bitdepth_minus8 式(2)
QpBdOffset = 6 × sps_bitdepth_minus8 式(3)
【0237】
いくつかの例では、1に等しいGCIビット(1601)は、出力レイヤセットの範囲(OlsInScope)内のすべてのピクチャの構文要素(1701)が0に等しくなり得ることを指定する。0に等しいGCIビット(1601)は、そのような制約を課さない。したがって、1に等しいGCIビット(1601)は、ビットストリームのコーディングにおける拡張ダイナミックレンジコーディングツールの不使用を指定することができる。
【0238】
いくつかの実施形態では、GCIビット(1602)及び構文要素(1702)を使用して、異なる範囲において、変換スキップモードにおける残差コーディングのためのスライスベースのRiceパラメータ選択のような、変換スキップモードにおける残差コーディングのためのスライスベースのRiceコーディングのコーディングツールの制御を提供する。
【0239】
本開示の一態様によると、変換スキップ残差コーディングのためのスライスベースのRiceパラメータ選択を、ビデオ規格のレンジ拡張に含めることができる。いくつかの例では、
図17に示されるように、変換スキップスライスのRiceパラメータのシグナリングが有効又は無効にされることを示すために、変換スキップモードが有効にされるとき(例えば構文要素sps_tranform_skip_enabled_flagが真)、1つの制御フラグ(例えばsps_ts_residual_coding_rice_present_in_sh_flag構文要素(1702)によって示される)がシーケンスパラメータセット(SPS)においてシグナルされる。
【0240】
制御フラグが有効(例えば「1」に等しい)としてシグナルされるとき、例えばスライスヘッダにおいて、各変換スキップスライスに対して1つの構文要素(例えばsh_ts_residual_coding_rice_idx_minus1によって示される)が更にシグナリングされ、その変換スキップスライスのRiceパラメータの選択を示す。制御フラグが無効(例えば「0」に等しい)としてシグナルされるとき、変換スキップスライスのRiceパラメータの選択を示すために、スライスレベル(例えばスライスヘッダ)で更なる構文要素はシグナルされず、一例では、SPSを参照するコーディングされたビデオデータ内のすべての変換スキップスライスに対してデフォルトのRiceパラメータが使用され得る。
【0241】
例えばSPS内の1に等しい構文要素(1702)は、sh_ts_residual_coding_rice_idx_minus1によって示されるスライスヘッダフラグが、SPSを参照するスライスのスライスヘッダ(例えばslice_header())構文構造内に存在し得ることを指定する。SPS内の0に等しい構文要素(1702)は、スライスヘッダフラグsh_ts_residual_coding_rice_idx_minus1が、SPSを参照するスライスのslice_header()構文構造内に存在しないことを指定する。存在しないとき、sps_ts_residual_coding_rice_present_in_sh_flagの値は、いくつかの例で0に等しいと推論される。
【0242】
いくつかの例では、構文要素を一般制約情報に含めることができ、出力レイヤセットの範囲内で、変換スキップモードにおける残差コーディングのためのスライスベースのRiceコーディングのコーディングツールの使用を制御することができる。例えば1に等しい構文要素(1602)は、出力レイヤセットの範囲(OlsInScope)内のすべてのピクチャの構文要素(1702)が0に等しくなり得ることを指定する。0に等しい構文要素(1602)は、このような制約を課さない。したがって、いくつかの例では、ビットストリーム内の1に等しいGCIビット(1602)は、ビットストリームをコーディングするための変換スキップ残差コーディングのためのスライスベースのRiceパラメータ選択の不使用を指定することができる。
【0243】
いくつかの実施形態では、GCIビット(1603)及び構文要素(1703)を使用して、異なる範囲において、正規残差コーディング(RRC:regular residual coding)におけるabs_remainder[]及びdec_abs_level[]等のようないくつかの構文要素の二値化のためのRiceパラメータ導出のための1つ以上のコーディングツールの制御を提供する。いくつかの例では、正規残差コーディング(RRC)は、変換及び量子化によって取得されるブロックをコーディングするためのいくつかの技術を指す。いくつかの例では、量子化のみによって取得されるブロックのためにRRCを変更することができる。いくつかの例では、変換スキップ残差コーディング(TSRC:transform skip residual coding)は、変換をバイパスすること(変換スキップとも呼ばれる)によって取得されるブロックをコーディングするための専用のいくつかの技術を指す。
【0244】
いくつかの例では、ビデオコーディング規格は、abs_remainder[]及びdec_abs_level[]のような、いくつかの構文要素の二値化のためのRiceパラメータ導出のための1つ以上のコーディングツールを含んでよく、ビデオコーディング規格のレンジ拡張は、abs_remainder[]及びdec_abs_level[]のような、いくつかの構文要素の二値化のためのRiceパラメータ導出のための1つ以上の代替コーディングツールを含むことができる。
【0245】
いくつかの例では、ビデオ規格は、Riceパラメータ導出のためにローカルテンプレートベースの技術を使用する。例えば1つ以上の(一例では5つの)隣接する係数レベルを含むテンプレートが、Riceパラメータ導出のために使用される。例えばテンプレート内部の絶対係数値の合計を計算することができ、その合計に基づいてRiceパラメータを決定する。一例では、ルックアップテーブルを使用して、その合計に基づいてRiceパラメータを決定することができる。
【0246】
Riceパラメータを他の適切なコーディングツールによって決定することができることに留意されたい。一例では、方程式を使用して、合計に基づいてRiceパラメータを決定することができる。別の例では、コンテキストモデリングを使用して、隣接する係数レベルの統計に基づいてRiceパラメータを決定することができる。いくつかの例では、ビデオ規格のレンジ拡張は、Riceパラメータ導出のための1つ以上の代替コーディングツールを指定することができる。
【0247】
いくつかの例では、ビデオ規格のレンジ拡張は、他のシナリオでの使用のためにRRCに対する変更を含むことができる。一例では、レンジ拡張は、異なるコンテキストモデリングツールと、変換スキップモードにおける残差コーディングのための残差信号回転ツールを含むことができる。
【0248】
いくつかの例では、1に等しいSPS内の構文要素(1703)は、abs_remainder[]及びdec_abs_level[]の二値化のための代替Riceパラメータ導出(例えばレンジ拡張におけるRiceパラメータ導出のための代替コーディングツール)が、SPSを参照するCLVSをコーディングするために使用されることを指定する。0に等しい構文要素(1703)は、abs_remainder[]及びdec_abs_level[]の二値化のための代替Riceパラメータ導出が、SPSを参照するCLVSをコーディングするために使用されないことを指定する。存在しないとき、構文要素(1703)の値は0に等しいと推論される。
【0249】
いくつかの例では、1に等しい構文要素(1603)は、出力レイヤセットの範囲(OlsInScope)内のすべてのピクチャの構文要素(1703)が0に等しくなり得ることを指定する。0に等しい構文要素(1603)は、このような制約を課さない。したがって、いくつかの例では、1に等しいGCIビット(1603)は、ビットストリームをコーディングするために、abs_remainder[]及びdec_abs_level[]の二値化に、代替Riceパラメータ導出(例えば指定されたレンジ拡張で指定されたRiceパラメータ導出のための代替コーディングツール)の不使用を指定することができる。
【0250】
いくつかの実施形態では、GCIビット(1604)及び構文要素(1704)を使用して、異なる範囲において、abs_remainder[]及びdec_abs_level[]の二値化のための統計ベースのRiceパラメータ導出の制御を提供する。
【0251】
本開示の一態様によると、abs_remainder[]及びdec_abs_level[]の二値化のためのRiceパラメータ導出を、以前のTUから蓄積された統計を使用して各変換ユニット(TU)の開始時に初期化することができる。いくつかの例では、統計ベースのRiceパラメータ導出を、ビデオ規格のレンジ拡張に含めることができる。
【0252】
いくつかの例では、制御フラグ、例えばSPS内のsps_persistent_rice_adaptation_enabled_flagによって示される構文要素(1704)を使用して、統計ベースのRiceパラメータ導出を制御する。例えばSPS内の1に等しい構文要素(1704)は、abs_remainder[]及びdec_abs_level[]の二値化のためのRiceパラメータ導出が、以前のTUから蓄積された統計を使用して各TUの開始時に初期化されることを指定する。0に等しい構文要素(1704)は、以前のTU状態が現在のTUのRiceパラメータ導出で使用されないことを指定する。存在しないとき、構文(1704)の値は0に等しいと推論される。
【0253】
さらに、一実施形態では、1に等しい構文要素(1604)は、出力レイヤセットの範囲(OlsInScope)内のすべてのピクチャの構文要素(1704)が0に等しくなり得ることを指定する。0に等しい構文要素(1604)は、このような制約を課さない。したがって、いくつかの例では、1に等しいGCIビット(1604)は、ビットストリームのコーディングのための統計ベースのRiceパラメータ導出の不使用を指定することができる。
【0254】
いくつかの実施形態では、GCIビット(1605)及び構文要素(1705)を使用して、異なる範囲において、変換係数のエントロピーコーディング中に最後の有意係数(significant coefficient)の位置をコーディングするために使用されるコーディングツールの制御を提供する。一例では、最後の有意係数の位置を、異なるコーディングツールによってコーディングすることができる。例えばビデオ規格は、LastSignificantCoeffX変数及びLastSignificantCoeffY変数によって示される位置の2つの座標をコーディングすることによって、最後の有意係数の位置を決定することができる、第1コーディングツールを指定してよく、ビデオ規格のレンジ拡張は、一例ではゼロアウト変換ブロックの右下隅を参照して、最後の有意係数の相対座標をコーディングすることによって、最後の有意係数の位置を決定することができる第2コーディングツールのような、代替のコーディングツールを指定することができる。
【0255】
いくつかの例では、SPS内の1に等しい構文要素(1705)は、sh_reverse_last_sig_coeff_flagによって示されるスライスヘッダフラグ(スライス範囲)が、SPSを参照するスライスヘッダ構文構造(例えばいくつかの例ではslice_header())内に存在することを指定する。SPS内の0に等しい構文要素(1705)は、スライスヘッダフラグsh_reverse_last_sig_coeff_flagが、SPSを参照するスライスヘッダ構文構造内に存在しないことを指定し、スライスヘッダフラグsh_reverse_last_sig_coeff_flagは0であると推論され得る。存在しないとき、構文要素(1705)の値は0に等しいと推論される。
【0256】
いくつかの例では、スライスのスライスヘッダフラグsh_reverse_last_sig_coeff_flagの値を使用して、スライスのコーディングにおけるスケーリング及び変換プロセスでの変換係数の最後の有意係数の位置導出を決定する。一例では、sh_reverse_last_sig_coeff_flagが1に等しいとき、最後の有意係数の位置は、第2コーディングツールのような、ビデオ規格のレンジ拡張における代替コーディングツールによってコーディングされ、そうでない場合、最後の有意係数の位置の現在の座標は、第1コーディングツールによってコーディングされる。
【0257】
いくつかの例では、1に等しいGCIビット(1605)は、出力レイヤセットの範囲(OlsInScope)内のすべてのピクチャの構文要素(1705)が0に等しくなり得ることを指定する。0に等しいGCIビット(1605)は、このような制約を課さない。したがって、1に等しいGCIビット(1605)は、ビットストリームの範囲に対する最後の有意係数の位置導出における第2コーディングツールの不使用を指定することができる。
【0258】
図18は、本開示の実施形態によるプロセス(1800)の概要を示すフローチャートを示す。プロセス(1800)は、ビデオデコーダにおいて用いられ得る。様々な実施形態において、プロセス(1800)は、端末デバイス(310)、(320)、(330)及び(340)内の処理回路、ビデオデコーダ(410)の機能を実行する処理回路、ビデオデコーダ(510)の機能を実行する処理回路等のような処理回路によって実行される。いくつかの実施形態では、プロセス(1800)はソフトウェア命令で実装され、したがって、処理回路がソフトウェア命令を実行するとき、処理回路はプロセス(1800)を実行する。プロセスは(S1801)で開始して(S1810)に進む。
【0259】
(S1810)において、ビットストリーム内のコーディングされたビデオデータの第1範囲(例えば出力レイヤセット)におけるコーディング制御のための第1構文要素(例えばgeneral_no_rrc_rice_extension_constraint_flag)の値を決定する。第1構文要素は、残差コーディングにおけるRiceパラメータ導出のための第1コーディングツールに代わる第2コーディングツールに関連付けられる。
【0260】
一例では、構文構造内の構文要素(例えばgci_num_additional_bits)が構文構造内の一般制約情報の追加ビットを示すことに応答して、第1構文要素を一般制約情報の構文構造から復号する。
【0261】
いくつかの例では、第1コーディングツールは規格で定義され、第2コーディングツールは、第1コーディングツールに対する代替コーディングツールとして規格のレンジ拡張で定義される。一例では、ビデオデコーダは規格をサポートし得るが、該規格のレンジ拡張における第2コーディングツールはサポートし得ない。
【0262】
(S1820)において、第1構文要素の値が第1値であるとき、プロセスは(1830)に進み、そうでない場合、プロセスは(S1840)に進む。第1値は、コーディングされたビデオデータの1つ以上の第2範囲(例えば出力レイヤセット内の1つ以上のCLVS)を含む、ビットストリーム内のコーディングされたビデオデータの第1範囲のコーディングにおける、第2コーディングツールの不使用を示す。
【0263】
いくつかの例では、第1構文要素は、デコーダで出力される出力レイヤセット内のピクチャのコーディング制御のための一般制約情報内にある。一例では、第1構文要素の第1値は、出力レイヤセット内の各コーディングされたレイヤビデオシーケンス(CLVS)のコーディングにおける第2コーディングツールの不使用を示す。
【0264】
(S1830)において、第1構文要素が第1値であることに応答して、ビットストリーム内のコーディングされたビデオデータの第1範囲が、第2コーディングツールを呼び出すことなく復号される。
【0265】
いくつかの例では、ビットストリーム内のコーディングされたレイヤビデオシーケンス(CLVS)のコーディング制御のための第2構文要素(例えばsps_extended_precision_flag)は、CLVSを復号するために第2コーディングツールを呼び出さないことを示す値を有するように制約される。
【0266】
(S1840)において、第1構文要素が第2値であることに応答して、ビットストリーム内のコーディングされたレイヤビデオシーケンス(CLVS)のような、コーディングされたビデオデータの第2範囲のコーディング制御のための第2構文要素(例えばsps_extended_precision_flag)の値が、第2範囲内のコーディングされたビデオデータの復号のために決定される。第2構文要素は、CLVS内の第2コーディングツールの使用/不使用を示す。一例では、第2構文要素は、CLVSのシーケンスパラメータセット(SPS)内に提示されず、第2構文要素の値は、CLVS内の第2コーディングツールの不使用を示すために推論される。
【0267】
コーディングされたビデオデータの第2範囲は、次いで、(例えば第2コーディングツールを呼び出して又は呼び出さずに)第2構文要素の値に従って復号される。
【0268】
プロセス(1800)を、適切に適応させることができる。プロセス(1800)のステップを、変更及び/又は省略することができる。追加のステップを追加することができる。任意の適切な実装順序を使用することができる。
【0269】
図19は、本開示の一実施形態によるプロセス(1900)の概要を示すフローチャートを示す。プロセス(1900)を、ビデオエンコーダにおいて使用することができる。様々な実施形態において、プロセス(1900)は、端末デバイス(310)、(320)、(330)及び(340)内の処理回路、ビデオエンコーダ(403)の機能を実行する処理回路、ビデオエンコーダ(603)の機能を実行する処理回路、ビデオエンコーダ(703)の機能を実行する処理回路等のような処理回路によって実行される。いくつかの実施形態では、プロセス(1900)はソフトウェア命令で実装され、したがって、処理回路がソフトウェア命令を実行するとき、処理回路はプロセス(1900)を実行する。プロセスは(S1901)で開始して(S1910)に進む。
【0270】
(S1910)において、処理回路は、第1コーディングツールに代わる第2コーディングツールが、ビットストリーム内のコーディングされたビデオデータの第1範囲(例えば出力レイヤセット)の符号化中に使用されるかどうかを判断する。第2コーディングツールは、残差コーディングにおけるRiceパラメータ導出のための第1コーディングツールに代わるコーディングツールである。コーディングされたビデオデータの第1範囲は、コーディングされたビデオデータの1つ以上の第2範囲(例えばCLVS)を含む。
【0271】
いくつかの例では、処理回路は、ビットストリーム内のコーディングされたレイヤビデオシーケンス(CLVS)のコーディング制御のための第2構文要素(例えばsps_extended_precision_flag)に基づいて、第2コーディングツールが使用されるかどうかを判断することができる。
【0272】
(S1920)において、第2コーディングツールが、コーディングされたビデオデータの第1範囲のコーディングにおいて使用されないとき、プロセスは(S1930)に進み、そうでない場合、プロセスは(S1940)に進む。
【0273】
(S1930)において、第1値を有する第1構文要素(例えばgeneral_no_rrc_rice_extension_constraint_flag)が、ビットストリームに符号化される。第1構文要素は、ビットストリーム内のコーディングされたビデオデータの第1範囲(例えば出力レイヤセット)におけるコーディング制御のためのものである。第1構文要素は、残差コーディングにおけるRiceパラメータ導出のための第2コーディングツールに関連付けられる。第1値は、コーディングされたビデオデータの第1範囲のコーディングにおける第2コーディングツールの不使用を示す。
【0274】
一例では、第1構文要素は、一般制約情報のための構文構造で符号化され、該構文構造内の構文要素(例えばgci_num_additional_bits)は、該構文構造内の一般制約情報の追加ビットを示すように調整される。
【0275】
(S1940)において、第2値を有する第1構文要素が、ビットストリームに符号化される。いくつかの例では、第1構文要素はビットストリームに符号化されず、例えば第2値が第1構文要素のデフォルト値であり、したがって、提示されていない場合に第1構文要素を推論することができる場合には、次いで(S1940)をスキップすることができる。
【0276】
プロセス(1900)を、適切に適応させることができる。プロセス(1900)のステップを変更及び/又は省略することができる。追加のステップを追加することができる。任意の適切な実装順序を使用することができる。
【0277】
上述の技術(例えば制約フラグ、適応解像度パラメータ及び/又は同様のものをシグナリングするための技術)を、コンピュータ読取可能命令を使用してコンピュータソフトウェアとして実装し、1つ以上のコンピュータ読取可能媒体に物理的に記憶することができる。例えば
図20は、開示される主題の特定の実施形態を実装するのに適したコンピュータシステム(2000)を示す。
【0278】
コンピュータソフトウェアは、アセンブリ、コンパイル、リンキング又は類似のメカニズムの対象となり得る任意の適切な機械コード又はコンピュータ言語を使用してコーディングされ、1つ以上のコンピュータ中央処理ユニット(CPU)、グラフィクス処理ユニット(GPU)等によって直接的に又は解釈やマイクロコード実行等を通して実行され得る命令を含む、コードを作成することができる。
【0279】
命令は、例えばパーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、モノのインターネットデバイス等を含む様々なタイプのコンピュータ又はその構成要素において実行されることができる。
【0280】
コンピュータシステム(2000)について
図20に示される構成要素は、本質的に例示的なものであり、本開示の実施形態を実装するコンピュータソフトウェアの使用範囲又は機能性に関して、いかなる制限も示唆するように意図されていない。また、構成要素の構成は、コンピュータシステム(2000)の例示的実施形態に示される構成要素の任意の1つ又は組合せに関するいかなる依存性又は要件も有するものとして解釈されてはならない。
【0281】
コンピュータシステム(2000)は、特定のヒューマンインタフェース入力デバイスを含み得る。そのようなヒューマンインタフェース入力デバイスは、例えば触覚入力(キーストローク、スワイプ、データグローブの動き等)、オーディオ入力(声、拍手等)、視覚入力(ジェスチャ等)、嗅覚入力(図示せず)を通して、1人以上の人間のユーザによる入力に応答し得る。また、ヒューマンインタフェース入力デバイスは、オーディオ(音声、音楽、環境音等)、画像(スキャンされた画像、静止画像カメラから得られる写真画像等)、ビデオ(2次元ビデオ、立体映像を含む3次元ビデオ等)のような、人間による意識的入力に必ずしも直接関係しているとは限らない、特定の媒体をキャプチャするためにも使用されることができる。
【0282】
ヒューマンインタフェース入力デバイスは、キーボード(2001)、マウス(2002)、トラックパッド(2003)、タッチ画面(2010)、データグローブ(図示せず)、ジョイスティック(2005)、マイクロホン(2006)、スキャナ(2007)及びカメラ(2008)(各々の1つのみが図示される)のうちの1つ以上を含んでもよい。
【0283】
コンピュータシステム(2000)はまた、特定のヒューマンインタフェース出力デバイスも含み得る。そのようなヒューマンインタフェース出力デバイスは、例えば触覚出力、音響、光及び嗅覚/味覚を通して、1人以上の人間のユーザの感覚を刺激し得る。そのようなヒューマンインタフェース出力デバイスは、触覚出力デバイス(例えばタッチ画面(2010)、データグローブ(図示せず)又はジョイスティック(2005)による触覚フィードバックであるが、入力デバイスとして機能しない触覚フィードバックデバイスが存在する可能性もある)、オーディオ出力デバイス(スピーカー(2009)、ヘッドフォン(図示せず)等)、視覚出力デバイス(各々タッチ画面入力機能の有無にかかわらず、各々触覚フィードバック機能の有無にもかかわらないが、その一部は、立体画像出力や仮想現実グラス(図示せず)、ホログラフィックディスプレイ及びスモークタンク(図示せず)のような手段を通して、2次元視覚出力又は3次元超の出力を出力することができる、CRT画面、LCD画面、プラズマ画面、OLED画面を含む画面(2010)等)及びプリンタ(図示せず)を含んでよい。
【0284】
コンピュータシステム(2000)はまた、CD/DVDを有するCD/DVD ROM/RW(2020)を含む光媒体又は類似の媒体(2021)、サムドライブ(2022)、取り外し可能ハードドライブ又はソリッドステートドライブ(2023)、テープ及びフロッピーディスク(図示せず)のようなレガシー磁気媒体、セキュリティドングル(図示せず)のような特別なROM/ASIC/PLDベースのデバイスのような、ヒューマンアクセス可能なストレージデバイス及びそれらの関連する媒体も含むことができる。
【0285】
当業者はまた、現在開示されている主題に関連して使用されるとき、「コンピュータ読取可能媒体」という用語が、伝送媒体、搬送波又は他の一時的信号を包含しないことを理解すべきである。
【0286】
コンピュータシステム(2000)はまた、1つ以上の通信ネットワーク(2055)へのインタフェース(2054)も含むことができる。ネットワークは、例えば無線、有線、光とすることができる。ネットワークは更に、ローカル、ワイドエリア、メトロポリタン、車両及び産業用、リアルタイム、遅延耐性等とすることができる。ネットワークの例は、イーサネット(登録商標)、無線LAN等のローカルエリアネットワーク、GSM(登録商標)、3G、4G、5G、LTE等を含むセルラネットワーク、ケーブルTV、衛星TV及び地上放送TVを含むTV有線又は無線ワイドエリアデジタルネットワーク、CANBus等を含む車両及び産業用ネットワークを含む。特定のネットワークは、一般に、特定の汎用データポート又は周辺バス(2049)に取り付けられ外部ネットワークインタフェースアダプタ(例えばコンピュータシステム(2000)のUSBポート等)を必要とし、他のものは、一般に、後述するシステムバスへの取り付けによって(例えばPCコンピュータシステムへのイーサネット(登録商標)インタフェース又はスマートフォンコンピュータシステムへのセルラーネットワークインタフェース)、コンピュータシステム(2000)のコアに統合される。これらのネットワークのいずれかを使用して、コンピュータシステム(2000)は、他のエンティティと通信することができる。このような通信は、例えばローカル又はワイドエリアデジタルネットワークを使用して、他のコンピュータシステムに対する、単方向の受信専用(例えば放送TV)、単方向の送信専用(例えば特定のCANbusから特定のCANbusデバイスへ)又は双方向であり得る。上述のように、特定のプロトコル及びプロトコルスタックを、これらのネットワーク及びネットワークインタフェースの各々において使用することができる。
【0287】
前述のヒューマンインタフェースデバイス、ヒューマンアクセス可能なストレージデバイス及びネットワークインタフェースを、コンピュータシステム(2000)のコア(2040)に取り付けることができる。
【0288】
コア(2040)は、1つ以上の中央処理ユニット(CPU)(2041)、グラフィクス処理ユニット(GPU)(2042)、フィールドプログラマブルゲートアレイ(FPGA)(2043)の形態の専用のプログラマブル処理ユニット、特定のタスク用のハードウェアアクセラレータ(2044)、グラフィクスアダプタ(2050)等を含むことができる。これらのデバイスは、読取専用メモリ(ROM)(2045)、ランダムアクセスメモリ(RAM)(2046)、内部非ユーザアクセス可能ハードドライブ、SSD等の内部大容量ストレージ(2047)とともに、システムバス(2048)を通して接続され得る。いくつかのコンピュータシステムでは、システムバス(2048)は、追加のCPU、GPU等による拡張を可能にするために、1つ以上の物理的プラグの形態でアクセス可能である。周辺デバイスを、コアのシステムバス(2048)に直接又は周辺バス(2049)を介して取り付けることができる。一例では、画面(2010)をグラフィクスアダプタ(2050)に接続することができる。周辺バスのアーキテクチャは、PCI、USB等を含む。
【0289】
CPU(2041)、GPU(2042)、FPGA(2043)及びアクセラレータ(2044)は、組み合わされて上述のコンピュータコードを構成することができる、特定の命令を実行することができる。そのコンピュータコードを、ROM(2045)又はRAM(2046)に記憶することができる。また、一時的なデータをRAM(2046)に記憶することができ、一方、永久的なデータを、例えば内部大容量ストレージ(2047)に記憶することができる。1つ以上のCPU(2041)、GPU(2042)、大容量ストレージ(2047)、ROM(2045)、RAM(2046)等と密接に関連付けることができるキャッシュメモリの使用を通して、メモリデバイスのいずれかに対する高速記憶及び取り出しを可能にすることができる。
【0290】
コンピュータ読取可能媒体は、様々なコンピュータ実装される動作を実行するためのコンピュータコードをその上に有することができる。媒体及びコンピュータコードは、本開示の目的のために特別に設計及び構築されたものとすることができ、あるいはそれらは、コンピュータソフトウェア技術の当業者に周知かつ利用可能な種類のものとすることができる。
【0291】
限定ではなく例として、アーキテクチャ(2000)及び特にコア(2040)を有するコンピュータシステムは、プロセッサ(CPU、GPU、FPGA、アクセラレータ等を含む)が1つ以上の有形のコンピュータ読取可能媒体に具現化されたソフトウェアを実行する結果としての機能性を提供することができる。このようなコンピュータ読取可能媒体は、上記で紹介したようなユーザアクセス可能な大容量ストレージ、並びにコア内部大容量ストレージ(2047)又はROM(2045)のような非一時的な性質のコア(2040)の特定のストレージに関連付けられる媒体とすることができる。本開示の様々な実施形態を実装するソフトウェアを、そのようなデバイスに記憶して、コア(2040)によって実行することができる。コンピュータ読取可能媒体は、特定のニーズに従って、1つ以上のメモリデバイス又はチップを含むことができる。ソフトウェアは、コア(2040)及び特にその中のプロセッサ(CPU、GPU、FPGA等を含む)に、RAM(2046)に記憶されるデータ構造を定義することと、ソフトウェアによって定義されるプロセスに従ってそのようなデータ構造を修正することとを含む、本明細書で説明される特定のプロセス又は特定のプロセスの特定の部分を実行させることができる。追加又は代替として、コンピュータシステムは、論理ハードワイヤ又は他の方法で回路(例えばアクセラレータ(2044))内に具現化された結果として機能性を提供することができ、この回路は、ソフトウェアの代わりに又はソフトウェアとともに動作して、本明細書で説明される特定のプロセス又は特定のプロセスの特定の部分を実行することができる。ソフトウェアへの言及はロジックを含み、また、必要に応じて、その逆も可能である。コンピュータ読取可能媒体への参照は、実行のためのソフトウェアを記憶する回路(集積回路(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)
GOPs:ピクチャのグループ(Groups of Pictures)
TUs:変換ユニット(Transform Units)
PUs:予測ユニット(Prediction Units)
CTUs:コーディングツリーユニット(Coding Tree Units)
CTBs:コーディングツリーブロック(Coding Tree Blocks)
PBs:予測ブロック(Prediction Blocks)
HRD:仮想リファレンスデコーダ(Hypothetical Reference Decoder)
SNR:信号対ノイズ比(Signal Noise Ratio)
CPUs:中央処理ユニット(Central Processing Units)
GPUs:グラフィクス処理ユニット(Graphics Processing Units)
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 Array)
SSD:ソリッドステートドライブ(solid-state drive)
IC:集積回路(Integrated Circuit)
CU:コーディングユニット(Coding Unit)
【0292】
本開示は、いくつかの例示的な実施形態について説明しているが、本開示の範囲内にある変更、置換及び様々な代替均等物が存在する。したがって、当業者は、本明細書に明示的に示されていないか又は説明されていないが、本開示の原理を具体化しており、よって、本開示の精神及び範囲内にある、様々システム及び方法を考案することができることが理解されよう。