(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-12-19
(54)【発明の名称】持続的ライス適応による範囲拡張のための制約フラグの信号伝達の技術
(51)【国際特許分類】
H04N 19/70 20140101AFI20231212BHJP
【FI】
H04N19/70
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023534885
(86)(22)【出願日】2022-04-29
(85)【翻訳文提出日】2023-06-08
(86)【国際出願番号】 US2022072017
(87)【国際公開番号】W WO2023056107
(87)【国際公開日】2023-04-06
(32)【優先日】2021-09-29
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2022-03-31
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】チェ,ビヨンドゥ
(72)【発明者】
【氏名】リウ,シャン
(72)【発明者】
【氏名】ウェンジャー,ステファン
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159RC12
(57)【要約】
本開示の側面は、ビデオデータ処理のための方法及び装置を提供する。いくつかの例では、ビデオデータ処理のための装置は処理回路を含む。例えば、処理回路は、ビットストリーム内の符号化ビデオデータの第1の適用範囲内のコーディング制御のための第1のシンタックスエレメントを決定する。第1のシンタックスエレメントは、残差コーディングにおける統計ベースのライスパラメータ導出のためのビデオ標準の範囲拡張で定義された持続的ライス適応のコーディングツールに関連する。第1のシンタックスエレメントが、第1の適用範囲内のコーディングツールの無効化を示す第1の値であることに応じて、処理回路は、コーディングツールを呼び出すことなく、符号化ビデオデータの1つ以上の第2の適用範囲を含む符号化ビデオデータの第1の適用範囲を復号する。
【特許請求の範囲】
【請求項1】
デコーダが実行するビデオ復号の方法であって、
プロセッサによって、ビットストリーム内の符号化ビデオデータの第1の適用範囲内のコーディング制御のための第1のシンタックスエレメントを決定するステップであって、前記第1のシンタックスエレメントは、残差コーディングにおける統計ベースのライスパラメータ導出のためのビデオ標準の範囲拡張で定義された持続的ライス適応のコーディングツールに関連する、ステップと、
前記第1のシンタックスエレメントが、前記第1の適用範囲内の前記コーディングツールの無効化を示す第1の値であることに応じて、前記プロセッサによって、前記コーディングツールを呼び出すことなく、符号化ビデオデータの1つ以上の第2の適用範囲を含む符号化ビデオデータの前記第1の適用範囲を復号するステップと
を含む方法。
【請求項2】
前記第1のシンタックスエレメントは、前記デコーダのための出力レイヤセット内のピクチャのコーディング制御のための一般制約情報にある、請求項1に記載の方法。
【請求項3】
前記第1のシンタックスエレメントの前記第1の値は、前記出力レイヤセット内の各符号化レイヤビデオシーケンス(CLVS)において前記コーディングツールを無効化することを示す、請求項2に記載の方法。
【請求項4】
符号化レイヤビデオシーケンス(CLVS)を復号するための前記コーディングツールを呼び出さないことを示す値を有するように、前記ビットストリーム内の前記CLVSのコーディング制御のための第2のシンタックスエレメントを制約するステップを更に含む、請求項2に記載の方法。
【請求項5】
前記第1のシンタックスエレメントが第2の値であることに応じて、前記ビットストリーム内の符号化レイヤビデオシーケンス(CLVS)のコーディング制御のための第2のシンタックスエレメントの値を決定するステップであって、前記第2のシンタックスエレメントは、前記CLVSにおける前記コーディングツールの使用/不使用を示す、ステップを更に含む、請求項2に記載の方法。
【請求項6】
前記第2のシンタックスエレメントの前記値を決定するステップは、
前記第2のシンタックスエレメントが前記CLVSのためのシーケンスパラメータセット(SPS)に存在しないことに応じて、前記CLVSにおける前記コーディングツールの不使用を示す前記第2のシンタックスエレメントの前記値を推定するステップを更に含む、請求項5に記載の方法。
【請求項7】
前記第2のシンタックスエレメントの前記値が前記CLVSにおける前記コーディングツールの使用を示すことに応じて、現在変換ユニットの前に1つ以上の変換ユニットから復号された係数の統計を決定するステップと、
前記統計に基づいて、前記現在変換ユニットのライスパラメータの初期値を決定するステップと、
前記ライスパラメータに基づいて前記現在変換ユニットの係数を復号するステップと
を更に含む、請求項5に記載の方法。
【請求項8】
前記第1のシンタックスエレメントを決定するステップは、
一般制約情報のシンタックス構造内のシンタックスエレメントが前記シンタックス構造内の一般制約情報のための更なるビットを示すことに応じて、前記シンタックス構造から前記第1のシンタックスエレメントを復号するステップを更に含む、請求項1に記載の方法。
【請求項9】
ビデオ復号のための装置であって、
請求項1乃至8のうちいずれか1項に記載の方法を実行するように構成された処理回路を含む装置。
【請求項10】
少なくとも1つのプロセッサによって実行されると、前記少なくとも1つのプロセッサに、請求項1乃至8のうちいずれか1項に記載の方法を実行させる、コンピュータプログラム。
【請求項11】
エンコーダが実行するビデオ符号化の方法であって、
ビットストリーム内の符号化ビデオデータの第1の適用範囲内のコーディング制御のための第1のシンタックスエレメントを決定するステップであって、前記第1のシンタックスエレメントは、残差コーディングにおける統計ベースのライスパラメータ導出のためのビデオ標準の範囲拡張で定義された持続的ライス適応のコーディングツールに関連する、ステップと、
第1の値を有する前記第1のシンタックスエレメントをビットストリームに符号化するステップであって、前記第1の値は、前記第1の適用範囲内の前記コーディングツールの無効化を示す、ステップと
を含む方法。
【発明の詳細な説明】
【技術分野】
【0001】
[参照による援用]
本出願は、2022年3月31日に出願された米国特許出願第17/710,786号「TECHNIQUES FOR CONSTRAINT FLAG SIGNALING FOR RANGE EXTENSION WITH PERSISTENT RICE ADAPTATION」の優先権を主張するものであり、当該出願は、2021年9月29日に出願された米国仮出願第63/250,172号「TECHNIQUES FOR CONSTRAINT FLAG SIGNALING FOR RANGE EXTENSION WITH PERSISTENT RICE ADAPTATION」の優先権を主張するものである。先の出願の開示の全内容を参照により援用する。
【0002】
[技術分野]
本開示は、概してビデオ符号化(コーディング)に関連する実施形態を記載する。
【背景技術】
【0003】
本明細書で提供される背景説明は、本開示の文脈を概括的に提示するためのものである。本願で名前が挙がっている発明者の仕事であってその仕事がこの背景セクションに記載されている範囲におけるもの、また、他の意味で出願時に先行技術として適格でないことがあり得る本記述の諸側面は、明示的にも暗黙的にも本開示に対する先行技術として認められない。
【0004】
ビデオ符号化及び復号は、動き補償を伴うインターピクチャ予測を使用して実行できる。非圧縮デジタルビデオは、一連のピクチャを含むことができ、各ピクチャは、例えば1920×1080のルミナンスサンプル及び関連するクロミナンスサンプルの空間的寸法を有する。一連のピクチャは、固定又は可変のピクチャレート(非公式にはフレームレートとしても知られる)、例えば、毎秒60ピクチャ又は60Hzのピクチャレートを有することができる。非圧縮ビデオは、特定のビットレート要件を有する。例えば、サンプル当たり8ビットの1080p60 4:2:0ビデオ(60Hzのフレームレートでの1920×1080のルミナンスサンプル解像度)は、1.5Gbit/sに近い帯域幅を必要とする。そのようなビデオの1時間は、600Gバイトを超える記憶スペースを必要とする。
【0005】
ビデオ符号化及び復号の1つの目的は、圧縮による入力ビデオ信号の冗長性の低減であり得る。圧縮は、前述の帯域幅及び/又は記憶スペースの要求を、場合によっては2桁以上も低減するのに役立つことがある。可逆圧縮及び不可逆圧縮の双方、並びにそれらの組み合わせを用いることができる。可逆圧縮とは、圧縮された元の信号から、元の信号の正確なコピーが再構成できる技術をいう。不可逆圧縮を使用する場合、再構成された信号は、元の信号と同一ではないことがあり得るが、元の信号と再構成された信号との間の歪みは、再構成された信号を意図された用途のために有用にするのに十分小さい。ビデオの場合、不可逆圧縮が広く用いられている。許容される歪みの量はアプリケーションに依存し、例えば、特定の消費者ストリーミングアプリケーションのユーザは、テレビ配信アプリケーションのユーザよりも高い歪みを許容することがある。達成可能な圧縮比は、より高い許容可能/認容可能な歪みはより高い圧縮比をもたらすことができる、ということを反映できる。
【0006】
ビデオエンコーダ及びデコーダは、例えば動き補償、変換、量子化、及びエントロピー符号化を含むいくつかの広範なカテゴリからの技術を利用することができる。
【0007】
ビデオコーデック技術は、イントラ符号化として知られる技術を含むことができる。イントラ符号化では、サンプル値は、以前に再構成された参照ピクチャからのサンプル又は他のデータを参照することなく表現される。いくつかのビデオコーデックでは、ピクチャは空間的にサンプルのブロックに分割される。サンプルの全てのブロックがイントラモードで符号化される場合、そのピクチャはイントラピクチャであり得る。イントラピクチャと、独立デコーダリフレッシュピクチャのようなその派生物は、デコーダ状態をリセットするために使用でき、よって、符号化ビデオビットストリーム及びビデオセッションにおける最初のピクチャとして、又は静止画像として使用できる。イントラブロックのサンプルを変換にかけることができ、変換係数は、エントロピー符号化の前に量子化されることができる。イントラ予測は、変換前領域におけるサンプル値を最小化する技術であり得る。場合によっては、変換後のDC値が小さく、AC係数が小さいほど、エントロピー符号化後のブロックを表すために所与の量子化ステップサイズで必要とされるビット数が少なくなる。
【0008】
例えばMPEG-2世代の符号化技術から知られているような伝統的なイントラ符号化は、イントラ予測を使用しない。しかしながら、いくつかのより新しいビデオ圧縮技術は、例えば、空間的に近傍であり、復号順で先行するデータのブロックの符号化/復号中に得られた周囲のサンプルデータ及び/又はメタデータから試みる技術を含む。そのような技術は、以下では「イントラ予測」技術と呼ばれる。少なくともいくつかの場合には、イントラ予測は再構成中の現在ピクチャからの参照データのみを使用し、参照ピクチャからの参照データは使用しないことに注意されたい。
【0009】
様々な形のイントラ予測があり得る。所与のビデオ符号化技術において、そのような技術の2つ以上が使用できる場合、使用される技術は、イントラ予測モードで符号化されることができる。特定の場合には、モードは、サブモード及び/又はパラメータを有することができ、それらは、個別に符号化されることができ、或いは、モードコードワードに含められることができる。所与のモード/サブモード/パラメータの組み合わせのためにどのコードワードを使用するかは、イントラ予測を通して符号化効率利得に影響を与える可能性があり、コードワードをビットストリームに変換するために使用されるエントロピー符号化技術も同様に影響を与える可能性がある。
【0010】
イントラ予測のあるモードがH.264で導入され、H.265で洗練され、共同探査モデル(JEM)、多用途ビデオ符号化(VVC)、及びベンチマークセット(BMS)のようなより新しい符号化技術においてさらに洗練された。予測子ブロックは、既に利用可能なサンプルに属する近傍サンプル値を使用して形成されることができる。近傍サンプルのサンプル値が、ある方向に従って予測子ブロックにコピーされる。使用される方向への参照は、ビットストリームにおいて符号化されることができ、或いは、それ自身予測されてもよい。
【0011】
図1Aを参照すると、右下に、H.265の33個の可能な予測子方向(35個のイントラモードのうち33個の角度モードに対応する)から知られている9個の予測子方向のサブセットが描かれている。矢印が収束する点(101)は、予測されるサンプルを表す。矢印は、サンプルが予測される方向を表す。例えば、矢印(102)は、サンプル(101)が、水平から45度の角度の右上のサンプル(単数又は複数)から予測されることを示す。同様に、矢印(103)は、サンプル(101)が、水平から22.5度の角度の、サンプル(101)の左下のサンプル(単数又は複数)から予測されることを示す。
【0012】
引き続き
図1Aを参照すると、左上には、4×4サンプルの正方形ブロック(104)が描かれている(太い破線で示されている)。正方形ブロック(104)は、16個のサンプルを含み、各サンプルは「S」とY次元におけるその位置(例えば、行インデックス)及びX次元におけるその位置(例えば、列インデックス)でラベル付けされている。例えば、サンプルS21は、Y次元の(上から)2番目のサンプルであり、X次元の(左から)最初のサンプルである。同様に、サンプルS44は、Y及びX次元の双方においてブロック(104)内の4番目のサンプルである。ブロックが4×4サンプルのサイズなので、S44は右下にある。さらに、同様の番号付けスキームに従う参照サンプルが示されている。参照サンプルは、Rと、ブロック(104)に対するそのY位置(例えば、行インデックス)及びX位置(列インデックス)でラベル付けされる。H.264とH.265の双方において、予測サンプルは再構成中のブロックの近傍であり、そのため負の値を使用する必要はない。
【0013】
イントラピクチャ予測は、信号伝達(シグナリング)される予測方向によって充当される近傍サンプルから参照サンプル値をコピーすることによって機能できる。例えば、符号化ビデオビットストリームは、このブロックについて、矢印(102)と整合する予測方向を示す信号伝達を含むと想定する。すなわち、サンプルは、水平から45度の角度の右上の予測サンプル(単数又は複数)から予測される。その場合、サンプルS41、S32、S23、及びS14は、同じ参照サンプルR05から予測される。次いで、サンプルS44は、参照サンプルR08から予測される。
【0014】
特定の場合には、特に方向が45度で割り切れない場合には、参照サンプルを計算するために、複数の参照サンプルの値が、例えば補間によって組み合わされることができる。
【0015】
ビデオ符号化技術の発達に伴い、可能な方向の数が増加してきた。H.264(2003年)では、9つの異なる方向が表現できた。これは、H.265(2013年)では33に増加し、本開示の時点でのJEM/VVC/BMSは、最大65の方向をサポートできる。最も可能性の高い方向を特定するために実験が行われ、より可能性の低い方向についてのあるペナルティを受け入れつつ、それらの可能性の高い方向を少数のビットで表現するために、エントロピー符号化における特定の技術が使用される。さらに、方向自身が、近傍の既に復号されたブロックで使用された近傍方向から予測できることがある。
【0016】
図1Bは、時間とともに増加する予測方向の数を示すために、JEMによる65個のイントラ予測方向を描く概略図(180)を示している。
【0017】
方向を表す符号化ビデオビットストリームにおけるイントラ予測方向ビットのマッピングは、ビデオ符号化技術毎に異なることができ、例えば、予測方向のイントラ予測モードへの単純な直接的マッピングから、コードワード、最確モードに関わる複雑な適応方式、及び同様の技術まであり得る。しかしながら、どの場合でも、ビデオコンテンツにおいて、他の特定の方向よりも統計的に起こりにくい特定の方向が存在し得る。ビデオ圧縮の目標は冗長性の低減であるので、良好に機能するビデオ符号化技術においては、そうしたより可能性の低い方法は、より可能性の高い方向よりもより多くのビット数によって表わされる。
【0018】
動き補償は、不可逆圧縮技術であることがあり、且つ、以前に再構成されたピクチャ又はその一部(参照ピクチャ)からのサンプルデータのブロックが、動きベクトル(以下、MV)によって示される方向に空間的にシフトされた後に、新しく再構成されるピクチャ又はその一部の予測のために使用される技術に関することができる。場合によっては、参照ピクチャは、現在再構成中のピクチャと同じであることもできる。MVは、X及びYの2次元、又は3次元を有することができ、第3の次元は、使用される参照ピクチャの指示である(これは、間接的に、時間次元であり得る)。
【0019】
いくつかのビデオ圧縮技術では、サンプルデータのある領域に適用可能なMVは、他のMVから、例えば、再構成中の領域に空間的に隣接し、復号順でそのMVに先行するサンプルデータの別の領域に関連するMVから予測されることができる。そうすることにより、MVの符号化に必要とされるデータ量を大幅に削減することができ、それにより冗長性を除去し、圧縮を増加させることができる。MV予測が有効に機能できるのは、例えば、カメラから導出される入力ビデオ信号(ナチュラルビデオとして知られる)を符号化する際に、単一のMVが適用可能である領域よりも大きな領域が同様の方向に移動し、よって、特定の場合には、近傍領域のMVから導出された同様の動きベクトルを用いて予測できるという、統計的確からしさがあるからである。その結果、所与の領域について見出されるMVが、周囲のMVから予測されるMVと同様又は同一であることになり、そして、それは、エントロピー符号化の後、MVを直接符号化する場合に使用されるであろうものよりも少数のビットで表現できる。いくつかの場合には、MV予測は、元の信号(すなわち、サンプルストリーム)から導出された信号(すなわち、MV)の可逆圧縮の例であり得る。他の場合には、MV予測自身が、例えば、いくつかの周囲のMVから予測子を計算する際の丸め誤差のために、不可逆であることがある。
【0020】
H.265/HEVC(ITU-T Rec. H.265、「High Efficiency Video Coding」、December 2016)には、様々なMV予測機構が記載されている。H.265が提供する多くのMV予測機構のうち、本明細書では、以後、「空間マージ(spatial merge)」と呼ばれる技術が記載される。
【0021】
図2を参照すると、現在ブロック(201)は、空間的にシフトされた同じサイズの前のブロックから予測可能であることが動き探索プロセスの間にエンコーダによって見出されたサンプルを含む。そのMVを直接符号化する代わりに、MVは、1つ以上の参照ピクチャに関連付けられたメタデータから、例えば(復号順で)最新の参照ピクチャから、A0、A1、及びB0、B1、B2(それぞれ202~206)と記される5つの周囲のサンプルのいずれかに関連付けられたMVを使用して、導出できる。H.265では、MV予測は、近傍ブロックが使用しているのと同じ参照ピクチャからの予測子を使用することができる。
【発明の概要】
【0022】
本開示の側面は、ビデオデータ処理のための方法及び装置を提供する。いくつかの例では、ビデオデータ処理のための装置は処理回路を含む。例えば、処理回路は、ビットストリーム内の符号化ビデオデータの第1の適用範囲内のコーディング制御のための第1のシンタックスエレメントを決定する。第1のシンタックスエレメントは、残差コーディングにおける統計ベースのライス(Rice)パラメータ導出のためのビデオ標準の範囲拡張で定義された持続的ライス適応(persistent Rice adaptation)のコーディングツールに関連する。第1のシンタックスエレメントが、第1の適用範囲内のコーディングツールの無効化を示す第1の値であることに応じて、処理回路は、コーディングツールを呼び出すことなく、符号化ビデオデータの1つ以上の第2の適用範囲を含む符号化ビデオデータの第1の適用範囲を復号する。
【0023】
いくつかの実施形態では、第1のシンタックスエレメントは、デコーダのための出力レイヤセット内のピクチャのコーディング制御のための一般制約情報にある。いくつかの例では、第1のシンタックスエレメントの第1の値は、出力レイヤセット内の各符号化レイヤビデオシーケンス(CLVS, coded layer video sequence)においてコーディングツールを無効化することを示す。いくつかの例では、処理回路は、符号化レイヤビデオシーケンス(CLVS)を復号するためのコーディングツールを呼び出さないことを示す値を有するように、ビットストリーム内のCLVSのコーディング制御のための第2のシンタックスエレメントを制約する。
【0024】
いくつかの実施形態では、第1のシンタックスエレメントが第2の値であることに応じて、処理回路は、ビットストリーム内の符号化レイヤビデオシーケンス(CLVS)のコーディング制御のための第2のシンタックスエレメントの値を決定する。第2のシンタックスエレメントは、CLVSにおけるコーディングツールの使用/不使用を示す。一例では、処理回路は、第2のシンタックスエレメントがCLVSのためのシーケンスパラメータセット(SPS, sequence parameter set)に存在しないことに応じて、CLVSにおけるコーディングツールの不使用を示す第2のシンタックスエレメントの値を推定する。
【0025】
いくつかの例では、第2のシンタックスエレメントの値がCLVSにおけるコーディングツールの使用を示すことに応じて、処理回路は、現在変換ユニットの前に1つ以上の変換ユニットから復号された係数の統計を決定する。この統計は、現在変換ユニットのライスパラメータの初期値を決定するために使用される。次いで、現在変換ユニットの係数がライスパラメータに基づいて復号される。
【0026】
いくつかの実施形態では、処理回路は、シンタックス構造内のシンタックスエレメントがシンタックス構造内の一般制約情報のための更なるビットを示すことに応じて、一般制約情報のシンタックス構造から第1のシンタックスエレメントを復号する。
【0027】
本開示の側面はまた、ビデオ復号のためにコンピュータによって実行されると、コンピュータにビデオ復号のための方法を実行させる命令を記憶した非一時的なコンピュータ読み取り可能媒体を提供する。
【図面の簡単な説明】
【0028】
開示された主題のさらなる特徴、性質、及び様々な利点は、以下の詳細な説明及び添付の図面からより明白になるであろう。
【
図1A】イントラ予測モードの例示的なサブセットの概略図である。
【
図1B】例示的なイントラ予測方向の説明図である。
【
図2】一例における現在ブロック及びその周囲の空間的マージ候補の概略図である。
【
図3】ある実施形態による通信システム(300)の簡略化されたブロック図の概略図である。
【
図4】ある実施形態による通信システム(400)の簡略化されたブロック図の概略図である。
【
図5】ある実施形態によるデコーダの簡略化されたブロック図の概略図である。
【
図6】ある実施形態によるエンコーダの簡略化されたブロック図の概略図である。
【
図7】別の実施形態によるエンコーダのブロック図を示す。
【
図8】別の実施形態によるデコーダのブロック図を示す。
【
図9】本開示の実施形態による適応解像度変更(ARC, adaptive resolution change)パラメータを信号伝達する例を示す。
【
図10】アップサンプル又はダウンサンプル係数、コードワード、及びExt-Golomb符号のマッピングのためのテーブル(1000)の例を示す。
【
図11】本開示のいくつかの実施形態によるARCパラメータの信号伝達のいくつかの例を示す。
【
図12】いくつかの例におけるPTLシンタックスエレメントのセットのシンタックス構造の例を示す。
【
図13】いくつかの例における一般制約情報のシンタックス構造の例を示す。
【
図14A】本開示のいくつかの実施形態によるPTLシンタックス構造及び一般制約情報シンタックス構造を含むPTL情報の例を示す。
【
図14B】本開示のいくつかの実施形態によるPTLシンタックス構造及び一般制約情報シンタックス構造を含むPTL情報の例を示す。
【
図15A】本開示の一実施形態による一般制約情報シンタックス構造の例を示す。
【
図15B】本開示の一実施形態による一般制約情報シンタックス構造の例を示す。
【
図16】本開示のいくつかの実施形態による一般制約情報のシンタックス構造を示す。
【
図17】本開示のいくつかの実施形態によるシーケンスパラメータセット(SPS, sequence parameter set)範囲拡張のシンタックス構造の例を示す。
【
図18】本開示の実施形態によるプロセスの概要を示すフローチャートを示す。
【
図19】本開示の実施形態によるプロセスの概要を示すフローチャートを示す。
【
図20】一実施形態によるコンピュータシステムの概略図である。
【発明を実施するための形態】
【0029】
図3は、本開示のある実施形態による通信システム(300)の簡略化されたブロック図を示す。通信システム(300)は、例えばネットワーク(350)を介して互いに通信することができる複数の端末デバイスを含む。例えば、通信システム(300)は、ネットワーク(350)を介して相互接続された第1の対の端末デバイス(310)及び(320)を含む。
図3の例では、第1の対の端末デバイス(310)及び(320)は、データの一方向伝送を実行する。例えば、端末デバイス(310)は、ネットワーク(350)を介した他方の端末デバイス(320)への伝送のために、ビデオデータ(例えば、端末デバイス(310)によって捕捉されたビデオピクチャのストリーム)を符号化してもよい。符号化されたビデオデータは、1つ以上の符号化ビデオビットストリームの形で伝送されることができる。端末デバイス(320)は、ネットワーク(350)から、符号化ビデオデータを受信し、符号化ビデオデータを復号してビデオピクチャを復元し、復元されたビデオデータに従ってビデオピクチャを表示してもよい。一方向データ伝送は、メディアサービスアプリケーション等において一般的であり得る。
【0030】
別の例では、通信システム(300)は、例えばビデオ会議中に発生し得る符号化されたビデオデータの双方向伝送を実行する第2の対の端末デバイス(330)及び(340)を含む。データの双方向伝送のために、一例では、端末デバイス(330)及び(340)の各端末デバイスは、ネットワーク(350)を介した、端末デバイス(330)及び(340)のうちの他方の端末デバイスへの伝送のために、ビデオデータ(例えば、端末デバイスによって捕捉されたビデオピクチャのストリーム)を符号化してもよい。端末デバイス(330)及び(340)の各端末デバイスは、端末デバイス(330)及び(340)のうちの他方の端末デバイスによって送信された符号化されたビデオデータを受信してもよく、符号化されたビデオデータを復号して、ビデオピクチャを復元し、復元されたビデオデータに従って、アクセス可能な表示デバイスにおいてビデオピクチャを表示してもよい。
【0031】
図3の例では、端末デバイス(310)、(320)、(330)及び(340)は、サーバ、パーソナルコンピュータ及びスマートフォンとして示されてもよいが、本開示の原理は、それに限定されなくてもよい。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤ、及び/又は専用のビデオ会議設備での応適用を見出す。ネットワーク(350)は、例えば有線(配線)及び/又は無線通信ネットワークを含む、端末デバイス(310)、(320)、(330)及び(340)の間で符号化されたビデオデータを伝達する任意の数のネットワークを表す。通信ネットワーク(350)は、回線交換及び/又はパケット交換チャネルにおいてデータを交換してもよい。代表的なネットワークは、電気通信ネットワーク、ローカルエリアネットワーク、広域ネットワーク及び/又はインターネットを含む。ここでの議論の目的のために、ネットワーク(350)のアーキテクチャ及びトポロジは、以下に説明しない限り、本開示の動作には重要ではないことがある。
【0032】
図4は、開示される主題のためのアプリケーションの例として、ストリーミング環境におけるビデオエンコーダ及びビデオデコーダの配置を示す。開示される主題は、例えば、ビデオ会議、デジタルTV、CD、DVD、メモリスティック等を含むデジタル媒体上の圧縮ビデオの記憶等を含む、他のビデオ対応アプリケーションにも等しく適用可能であり得る。
【0033】
ストリーミングシステムは、ビデオソース(401)、例えばデジタルカメラを含むことができ、例えば非圧縮のビデオピクチャのストリーム(402)を生成する捕捉サブシステム(413)を含んでもよい。一例では、ビデオピクチャのストリーム(402)は、デジタルカメラによって取り込まれたサンプルを含む。符号化されたビデオデータ(404)(又は符号化されたビデオビットストリーム)と比較した場合の高いデータボリュームを強調するために太線として描かれているビデオピクチャのストリーム(402)は、ビデオソース(401)に結合されたビデオエンコーダ(403)を含む電子デバイス(420)によって処理されることができる。ビデオエンコーダ(403)は、以下により詳細に説明されるように、開示される主題の諸側面を可能にするため或いは実現するためのハードウェア、ソフトウェア、又はそれらの組み合わせを含むことができる。ビデオピクチャのストリーム(402)と比較した場合の、より低いデータボリュームを強調するために細い線として描かれている、符号化されたビデオデータ(404)(又は符号化されたビデオビットストリーム(404))は、将来の使用のためにストリーミングサーバ(405)に記憶されることができる。
図4のクライアントサブシステム(406)及び(408)のような1つ以上のストリーミングクライアントサブシステムは、ストリーミングサーバ(405)にアクセスして、符号化されたビデオデータ(404)のコピー(407)及び(409)を取り出すことができる。クライアントサブシステム(406)は、例えば電子デバイス(430)内にビデオデコーダ(410)を含むことができる。ビデオデコーダ(410)は、符号化されたビデオデータの入力コピー(407)を復号し、ディスプレイ(412)(例えば表示画面)又は他のレンダリングデバイス(図示せず)上にレンダリングできるビデオピクチャの出力ストリーム(411)を生成する。いくつかのストリーミングシステムでは、符号化されたビデオデータ(404)、(407)、及び(409)(例えば、ビデオビットストリーム)は、特定のビデオ符号化/圧縮標準に従って符号化されることができる。これらの標準の例は、ITU-T勧告H.265を含む。一例では、開発中のビデオ符号化標準は、非公式に多用途ビデオ符号化(VVC)として知られている。開示される主題は、VVCの文脈で使用されてもよい。
【0034】
電子デバイス(420)及び(430)は、他の構成要素(図示せず)を含むことができることを注意しておく。例えば、電子デバイス(420)は、ビデオデコーダ(図示せず)を含むことができ、電子デバイス(430)は、ビデオエンコーダ(図示せず)も含むことができる。
【0035】
図5は、本開示のある実施形態によるビデオデコーダ(510)のブロック図を示す。ビデオデコーダ(510)は、電子デバイス(530)に含まれることができる。電子デバイス(530)は、受信機(531)(例えば、受信回路)を含むことができる。ビデオデコーダ(510)は、
図4の例におけるビデオデコーダ(310)の代わりに使用できる。
【0036】
受信機(531)は、ビデオデコーダ(510)によって復号されるべき1つ以上の符号化ビデオシーケンスを受信してもよい。同じ又は別の実施形態において、一度に1つの符号化ビデオシーケンスであり、各符号化ビデオシーケンスの復号は、他の符号化ビデオシーケンスから独立である。符号化ビデオシーケンスは、チャネル(501)から受信されてもよく、該チャネルは、符号化されたビデオデータを記憶する記憶デバイスへのハードウェア/ソフトウェアリンクでもよい。受信機(531)は、符号化されたビデオデータを、他のデータ、例えば符号化されたオーディオデータ及び/又は補助データストリームと一緒に受信してもよく、これらのデータは、それぞれの使用エンティティ(図示せず)を転送されてもよい。受信機(531)は、符号化ビデオシーケンスを他のデータから分離することができる。ネットワークジッタ対策として、バッファメモリ(515)が、受信機(531)とエントロピーデコーダ/パーサ(520)(以下「パーサ」)との間に結合されてもよい。特定のアプリケーションでは、バッファメモリ(515)はビデオデコーダ(510)の一部である。他のアプリケーションでは、ビデオデコーダ(510)の外部にあることができる(図示せず)。さらに他のアプリケーションでは、例えばネットワークジッタに対抗するために、ビデオデコーダ(510)の外部にバッファメモリ(図示せず)があってもよく、さらに、例えば再生タイミングを扱うために、ビデオデコーダ(510)の内部に別のバッファメモリ(515)があってもよい。受信機(531)が、十分な帯域幅及び制御可能性の記憶/転送デバイスから、或いは、アイソクロナスネットワークからデータを受信している場合は、バッファメモリ(515)は、必要とされなくてもよく、或いは、小さくてもよい。インターネットのようなベストエフォート型のパケットネットワークでの使用のためには、バッファメモリ(515)が要求されることがあり、比較的大きいことがあり、有利には適応サイズであることができ、少なくとも部分的に、ビデオデコーダ(510)の外部でオペレーティングシステム又は同様の要素(図示せず)において実装されてもよい。
【0037】
ビデオデコーダ(510)は、符号化ビデオシーケンスからシンボル(521)を再構成するためのパーサ(520)を含んでもよい。これらのシンボルのカテゴリは、ビデオデコーダ(510)の動作を管理するために使用される情報と、潜在的には、レンダーデバイス(512)(例えば表示画面)のようなレンダリングデバイスを制御するための情報とを含む。レンダリングデバイスは、
図5に示されるように、電子デバイス(530)の一体的な部分ではなく、電子デバイス(530)に結合されることができる。レンダリングデバイス(単数又は複数)のための制御情報は、補足エンハンスメント情報(Supplementary Enhancement Information)(SEIメッセージ)又はビデオユーザビリティ情報(Video Usability Information、VUI)パラメータセットフラグメント(図示せず)の形でもよい。パーサ(520)は、受信された符号化ビデオシーケンスをパースする/エントロピー復号することができる。符号化ビデオシーケンスの符号化は、ビデオ符号化技術又は標準に従うことができ、可変長符号化、ハフマン符号化、コンテキスト感受性あり又はなしの算術符号化等を含む、様々な原理に従うことができる。パーサ(520)は、符号化ビデオシーケンスから、ビデオデコーダ内のピクセルのサブグループのうちの少なくとも1つについてのサブグループパラメータのセットを、グループに対応する少なくとも1つのパラメータに基づいて、抽出することができる。サブグループは、グループオブピクチャ(Group of Pictures、GOP)、ピクチャ、タイル、スライス、マクロブロック、符号化ユニット(Coding Unit、CU)、ブロック、変換ユニット(Transform Unit、TU)、予測ユニット(Prediction Unit、PU)等を含むことができる。パーサ(520)はまた、符号化ビデオシーケンスから、変換係数、量子化器パラメータ値、動きベクトル等の情報を抽出することができる。
【0038】
パーサ(520)は、バッファメモリ(515)から受信されたビデオシーケンスに対してエントロピー復号/パース動作を実行し、それによりシンボル(521)を生成することができる。
【0039】
シンボル(521)の再構成は、符号化されたビデオピクチャ又はその諸部分のタイプ(例えば、インター及びイントラピクチャ、インター及びイントラブロック)及び他の要因に依存して、複数の異なるユニットに関わることができる。どのユニットがどのように関わるかは、符号化ビデオシーケンスからパーサ(520)によってパースされたサブグループ制御情報によって制御されることができる。パーサ(520)と下記の複数のユニットとの間のそのようなサブグループ制御情報の流れは、明確のため、描かれていない。
【0040】
既に述べた機能ブロックのほかに、ビデオデコーダ(510)は、以下に説明するように、概念的に、いくつかの機能ユニットに分割できる。商業的制約の下で機能する実用的な実装では、これらのユニットの多くは互いに密接に相互作用し、少なくとも部分的に互いに統合されることができる。しかしながら、開示される主題を記述する目的のためには、下記の機能ユニットへの概念的な細分が適切である。
【0041】
第1のユニットは、スケーラ/逆変換ユニット(551)である。スケーラ/逆変換ユニット(551)は、パーサ(520)から、量子化された変換係数及び制御情報をシンボル(単数又は複数)(521)として受信する。制御情報は、どの変換を使用するか、ブロックサイズ、量子化係数、量子化スケーリング行列等を含む。スケーラ/逆変換ユニット(551)は、集計器(555)に入力できるサンプル値を含むブロックを出力することができる。
【0042】
場合によっては、スケーラ/逆変換(551)の出力サンプルは、イントラ符号化されたブロック、すなわち、以前に再構成されたピクチャからの予測情報を使用していないが、現在ピクチャの、以前に再構成された部分からの予測情報を使用することができるブロックに関することができる。そのような予測情報は、イントラピクチャ予測ユニット(552)によって提供されることができる。場合によっては、イントラピクチャ予測ユニット(552)は、現在ピクチャバッファ(558)から取ってきた、周囲の既に再構成された情報を使用して、再構成中のブロックと同じサイズ及び形状のブロックを生成する。現在ピクチャバッファ(558)は、例えば、部分的に再構成された現在ピクチャ及び/又は完全に再構成された現在ピクチャをバッファリングする。集計器(555)は、場合によっては、サンプル毎に、イントラ予測ユニット(552)が生成した予測情報を、スケーラ/逆変換ユニット(551)によって提供される出力サンプル情報に加算する。
【0043】
他の場合には、スケーラ/逆変換ユニット(551)の出力サンプルは、インター符号化され、潜在的には動き補償されたブロックに関することができる。そのような場合、動き補償予測ユニット(553)は、予測のために使用されるサンプルを取ってくるために参照ピクチャメモリ(557)にアクセスすることができる。取ってきたサンプルを、ブロックに関するシンボル(521)に従って動き補償した後、これらのサンプルは、集計器(555)によってスケーラ/逆変換ユニットの出力(この場合、残差サンプル又は残差信号と呼ばれる)に加算されて、それにより出力サンプル情報を生成することができる。動き補償ユニット(553)が予測サンプルを取ってくる参照ピクチャメモリ(557)内のアドレスは、シンボル(521)の形で動き補償ユニット(553)に利用可能な動きベクトルによって制御できる。該シンボルは、例えばX、Y、及び参照ピクチャ成分を有することができる。動き補償は、サンプル以下の正確な動きベクトルが使用されるときの参照ピクチャメモリ(557)から取ってこられるサンプル値の補間、動きベクトル予測機構等を含むことができる。
【0044】
集計器(555)の出力サンプルは、ループフィルタユニット(556)内で様々なループフィルタリング技術にかけられることができる。ビデオ圧縮技術は、ループ内フィルタ技術を含むことができる。ループ内フィルタ技術は、符号化ビデオシーケンス(符号化されたビデオビットストリームとも呼ばれる)に含まれるパラメータによって制御され、パーサ(520)からのシンボル(521)としてループフィルタユニット(556)に利用可能にされるが、符号化されたピクチャ又は符号化されたビデオシーケンスの(復号順で)前の部分の復号中に得られたメタ情報に応答するとともに、以前に再構成されループフィルタリングされたサンプル値に応答することもできる。
【0045】
ループフィルタユニット(556)の出力はサンプルストリームであることができ、これは、レンダーデバイス(512)に出力されることができ、また将来のインターピクチャ予測において使用するために参照ピクチャメモリ(557)に記憶されることができる。
【0046】
符号化されたピクチャは、いったん完全に再構成されると、将来の予測のための参照ピクチャとして使用できる。例えば、現在ピクチャに対応する符号化されたピクチャが完全に再構成され、該符号化されたピクチャが(例えば、パーサ(520)によって)参照ピクチャとして識別されると、現在ピクチャバッファ(558)は参照ピクチャメモリ(557)の一部となることができ、後続の符号化されたピクチャの再構成を開始する前に、新鮮な現在ピクチャバッファが再割り当てされることができる。
【0047】
ビデオデコーダ(510)は、ITU-T勧告H.265のような標準における所定のビデオ圧縮技術に従って復号動作を実行することができる。符号化ビデオシーケンスはビデオ圧縮技術又は標準のシンタックス及びビデオ圧縮技術又は標準において文書化されているプロファイルに従うという意味で、符号化されたビデオシーケンスは、使用されているビデオ圧縮技術又は標準によって規定されたシンタックスに準拠することができる。具体的には、プロファイルはビデオ圧縮技術又は標準において利用可能な全てのツールから、そのプロファイルのもとでの使用のためにそれだけが利用可能なツールとして、特定のツールを選択することができる。準拠のためにはまた、符号化ビデオシーケンスの複雑さが、ビデオ圧縮技術又は標準のレベルによって定義される範囲内にあることも必要であることがある。いくつかの場合には、レベルは、最大ピクチャサイズ、最大フレームレート、最大再構成サンプルレート(例えば、毎秒メガサンプルの単位で測られる)、最大参照ピクチャサイズ等を制約する。レベルによって設定された限界は、場合によっては、符号化ビデオシーケンスにおいて信号伝達される、HRDバッファ管理のための仮想参照デコーダ(Hypothetical Reference Decoder、HRD)仕様及びメタデータを通じてさらに制約されることができる。
【0048】
ある実施形態において、受信機(531)は、符号化されたビデオとともに追加の(冗長な)データを受信してもよい。追加データは、符号化されたビデオシーケンス(単数又は複数)の一部として含まれていてもよい。追加データは、データを適正に復号するため、及び/又は元のビデオデータをより正確に再構成するために、ビデオデコーダ(510)によって使用されてもよい。追加データは、例えば、時間的、空間的、又は信号対雑音比(SNR)エンハンスメント層、冗長スライス、冗長ピクチャ、前方誤り訂正符号等の形であり得る。
【0049】
図6は、本開示のある実施形態によるビデオエンコーダ(603)のブロック図を示している。ビデオエンコーダ(603)は、電子デバイス(620)に含まれる。電子デバイス(620)は、送信機(640)(例えば、送信回路)を含む。ビデオエンコーダ(603)は、
図4の例におけるビデオエンコーダ(403)の代わりに使用できる。
【0050】
ビデオエンコーダ(603)は、ビデオエンコーダ(603)によって符号化されるべきビデオ画像を捕捉することができるビデオソース(601)(これは
図6の例では電子デバイス(620)の一部ではない)からビデオサンプルを受信することができる。別の例では、ビデオソース(601)は、電子デバイス(620)の一部である。
【0051】
ビデオソース(601)は、任意の好適なビット深さ(例えば、8ビット、10ビット、12ビット、…)、任意の色空間(例えば、BT.601 YCrCB、RGB、…)及び任意の好適なサンプリング構造(例えば、YCrCb 4:2:0、YCrCb 4:4:4)であり得るデジタルビデオサンプルストリームの形で、ビデオエンコーダ(603)によって符号化されるべきソースビデオシーケンスを提供することができる。メディアサービスシステムにおいては、ビデオソース(601)は、事前に準備されたビデオを記憶している記憶デバイスでもよい。ビデオ会議システムにおいては、ビデオソース(601)は、ローカルでの画像情報をビデオシーケンスとして捕捉するカメラでもよい。ビデオデータは、シーケンスで見たときに動きを付与する複数の個々のピクチャとして提供されてもよい。ピクチャ自体は、ピクセルの空間的アレイとして編成されてもよく、各ピクセルは、使用中のサンプリング構造、色空間等に依存して、1つ以上のサンプルを含むことができる。当業者は、ピクセルとサンプルとの間の関係を容易に理解することができる。下記の説明は、サンプルに焦点を当てる。
【0052】
ある実施形態によれば、ビデオエンコーダ(603)は、ソースビデオシーケンスのピクチャを、リアルタイムで或いはアプリケーションによって要求される任意の他の時間的制約の下で、符号化及び圧縮して、符号化ビデオシーケンス(643)にすることができる。適切な符号化速度を施行することは、コントローラ(650)の1つの機能である。いくつかの実施形態では、コントローラ(650)は、以下に記載されるような他の機能ユニットを制御し、該他の機能ユニットに機能的に結合される。かかる結合は、明確のために描かれていない。コントローラ(650)によって設定されるパラメータは、レート制御に関連するパラメータ(ピクチャスキップ、量子化器、レート‐歪み最適化技術のラムダ値、…)、ピクチャサイズ、グループオブピクチャ(GOP)レイアウト、最大動きベクトル探索範囲等を含むことができる。コントローラ(650)は、特定のシステム設計のために最適化されたビデオエンコーダ(603)に関する他の好適な機能を有するように構成できる。
【0053】
いくつかの実施形態では、ビデオエンコーダ(603)は、符号化ループにおいて動作するように構成される。思い切って単純化した説明として、一例では、符号化ループは、ソース符号化器(630)(例えば、符号化されるべき入力ピクチャと参照ピクチャ(単数又は複数)に基づいてシンボルストリームのようなシンボルを生成することを受け持つ)と、ビデオエンコーダ(603)に埋め込まれた(ローカル)デコーダ(633)とを含むことができる。デコーダ(633)は、(リモートの)デコーダも生成するであろうのと同様の仕方でサンプルデータを生成するよう前記シンボルを再構成する(開示される主題において考慮されるビデオ圧縮技術では、シンボルと符号化ビデオビットストリームとの間のどの圧縮も無損失である)。再構成されたサンプルストリーム(サンプルデータ)は、参照ピクチャメモリ(634)に入力される。シンボルストリームの復号は、デコーダ位置(ローカルかリモートか)によらずビット正確な結果をもたらすので、参照ピクチャメモリ(634)の内容もローカルエンコーダとリモートエンコーダの間でビット正確である。言い換えると、エンコーダの予測部は、デコーダが復号中に予測を使用するときに「見る」のとまったく同じサンプル値を参照ピクチャサンプルとして「見る」。参照ピクチャ同期性のこの基本原理(及び、例えば、チャネルエラーのために同期性が維持できない場合の結果として生じるドリフト)は、いくつかの関連技術においても使用される。
【0054】
「ローカル」デコーダ(633)の動作は、
図5との関連で既に上記で詳細に述べた「リモート」デコーダ、例えばビデオデコーダ(410)の動作と同じでもよい。しかしながら、簡単に
図5も参照すると、シンボルが利用可能であり、エントロピー符号化器(645)及びパーサ(420)による、シンボルの符号化ビデオシーケンスへの符号化/復号が可逆であり得るので、バッファメモリ(415)及びパーサ(420)を含むビデオデコーダ(410)のエントロピー復号部は、ローカルデコーダ(633)においては完全には実装されなくてもよい。
【0055】
この時点で行なうことができる観察は、デコーダ内に存在するパース/エントロピー復号を除くどのデコーダ技術も、対応するエンコーダ内で実質的に同一の機能的形態で存在する必要があることである。このため、開示される主題はデコーダ動作に焦点を当てる。エンコーダ技術の記述は、包括的に記述されるデコーダ技術の逆であるため、省略することができる。特定の領域においてのみ、より詳細な説明が必要であり、以下に提供される。
【0056】
動作中、いくつかの例では、ソース符号化器(630)は、「参照ピクチャ」として指定された、ビデオシーケンスからの1つ以上の以前に符号化されたピクチャを参照して、入力ピクチャを予測的に符号化する、動き補償された予測符号化を実行することができる。このようにして、符号化エンジン(632)は、入力ピクチャのピクセルブロックと、入力ピクチャに対する予測参照として選択され得る参照ピクチャ(単数又は複数)のピクセルブロックとの間の差分を符号化する。
【0057】
ローカルビデオデコーダ(633)は、ソース符号化器(630)によって生成されたシンボルに基づいて、参照ピクチャとして指定され得るピクチャの符号化されたビデオデータを復号することができる。符号化エンジン(632)の動作は、有利には、損失のあるプロセスであり得る。符号化されたビデオデータがビデオデコーダ(
図6には示さず)で復号され得るとき、再構成されたビデオシーケンスは、典型的には、いくつかのエラーを伴うソースビデオシーケンスの複製であり得る。ローカルビデオデコーダ(633)は、ビデオデコーダによって参照ピクチャに対して実行され得る復号プロセスを複製し、再構成された参照ピクチャを参照ピクチャキャッシュ(634)に格納させることができる。このようにして、ビデオエンコーダ(603)は、遠端のビデオデコーダによって得られるであろう再構成された参照ピクチャとしての共通の内容を(伝送エラーがなければ)有する再構成された参照ピクチャのコピーを、ローカルに記憶することができる。
【0058】
予測器(635)は、符号化エンジン(632)について予測探索を実行することができる。すなわち、符号化されるべき新しいピクチャについて、予測器(635)は、新しいピクチャのための適切な予測参照として機能し得るサンプルデータ(候補参照ピクセルブロックとして)又は特定のメタデータ、例えば参照ピクチャ動きベクトル、ブロック形状等を求めて、参照ピクチャメモリ(634)を探索することができる。予測器(635)は、適切な予測参照を見出すために、サンプルブロック/ピクセルブロック毎に(on a sample block-by-pixel block basis)動作し得る。場合によっては、予測器(635)によって得られた検索結果によって決定されるところにより、入力ピクチャは、参照ピクチャメモリ(634)に記憶された複数の参照ピクチャから引き出された予測参照を有することができる。
【0059】
コントローラ(650)は、例えば、ビデオデータを符号化するために使用されるパラメータ及びサブグループパラメータの設定を含め、ソース符号化器(630)の符号化動作を管理してもよい。
【0060】
上記の機能ユニット全ての出力は、エントロピー符号化器(645)におけるエントロピー符号化を受けることができる。エントロピー符号化器(645)は、ハフマン符号化、可変長符号化、算術符号化等といった技術に従ってシンボルを無損失圧縮することによって、様々な機能ユニットによって生成されたシンボルを符号化ビデオシーケンスに変換する。
【0061】
送信機(640)は、エントロピー符号化器(645)によって生成される符号化ビデオシーケンスをバッファに入れて、通信チャネル(660)を介した送信のために準備することができる。通信チャネル(660)は、符号化されたビデオデータを記憶する記憶デバイスへのハードウェア/ソフトウェアリンクであってもよい。送信機(640)は、ビデオ符号化器(630)からの符号化されたビデオデータを、送信されるべき他のデータ、例えば符号化されたオーディオデータ及び/又は補助データストリーム(ソースは図示せず)とマージすることができる。
【0062】
コントローラ(650)は、ビデオエンコーダ(603)の動作を管理してもよい。符号化の間、コントローラ(650)は、それぞれの符号化されたピクチャに、ある符号化ピクチャタイプを割り当てることができる。符号化ピクチャタイプは、それぞれのピクチャに適用され得る符号化技術に影響し得る。例えば、ピクチャはしばしば、以下のピクチャタイプのうちの1つとして割り当てられることがある。
【0063】
イントラピクチャ(Iピクチャ)は、予測のソースとしてシーケンス内の他のピクチャを使用せずに、符号化され、復号され得るものであり得る。いくつかのビデオコーデックは、例えば、独立デコーダリフレッシュ(Independent Decoder Refresh、「IDR」)ピクチャを含む、異なるタイプのイントラピクチャを許容する。当業者は、Iピクチャのこれらの変形、並びにそれらのそれぞれの用途及び特徴を認識する。
【0064】
予測ピクチャ(Pピクチャ)は、各ブロックのサンプル値を予測するために、最大で1つの動きベクトル及び参照インデックスを用いるイントラ予測又はインター予測を用いて符号化及び復号され得るものであり得る。
【0065】
双方向予測ピクチャ(Bピクチャ)は、各ブロックのサンプル値を予測するために、最大で2つの動きベクトル及び参照インデックスを用いるイントラ予測又はインター予測を用いて符号化及び復号され得るものであり得る。同様に、マルチ予測ピクチャは、単一のブロックの再構成のために、3つ以上の参照ピクチャ及び関連するメタデータを使用することができる。
【0066】
ソースピクチャは、通常では、空間的に複数のサンプルブロック(例えば、それぞれ4×4、8×8、4×8、又は16×16サンプルのブロック)に分割され、ブロック毎に符号化され得る。ブロックは、ブロックのそれぞれのピクチャに適用される符号化割り当てによって決定されるところにより、他の(既に符号化された)ブロックを参照して予測的に符号化され得る。例えば、Iピクチャのブロックは、非予測的に符号化されてもよく、或いは、同じピクチャの既に符号化されたブロックを参照して予測的に符号化されてもよい(空間的予測又はイントラ予測)。Pピクチャのピクセルブロックは、以前に符号化された1つの参照ピクチャを参照して、空間的予測を介して或いは時間的予測を介して予測的に符号化されてもよい。Bピクチャのブロックは、1つ又は2つの以前に符号化された参照ピクチャを参照して、空間的予測を介して或いは時間的予測を介して予測的に符号化されてもよい。
【0067】
ビデオエンコーダ(603)は、ITU-T勧告H.265等の所定のビデオ符号化技術又は標準に従って符号化動作を実行することができる。その動作において、ビデオエンコーダ(603)は、入力ビデオシーケンスにおける時間的及び空間的冗長性を活用する予測符号化動作を含む、様々な圧縮動作を実行することができる。よって、符号化されたビデオデータは、使用されるビデオ符号化技術又は標準によって指定されるシンタックスに準拠し得る。
【0068】
ある実施形態において、送信機(640)は、符号化されたビデオと一緒に追加データを送信してもよい。ソース符号化器(630)は、符号化ビデオシーケンスの一部としてそのようなデータを含めてもよい。追加データは、時間的/空間的/SNRエンハンスメント層、冗長ピクチャ及びスライスのような他の形の冗長データ、SEIメッセージ、VUIパラメータセットフラグメント等を含んでいてもよい。
【0069】
ビデオは、時間的シーケンスにおいて複数のソースピクチャ(ビデオピクチャ)として捕捉されてもよい。イントラピクチャ予測(しばしば、イントラ予測と略される)は、所与のピクチャにおける空間的相関を利用し、インターピクチャ予測は、ピクチャ間の(時間的又は他の)相関を利用する。一例では、現在ピクチャと呼ばれる符号化/復号対象の特定のピクチャは、ブロックに分割される。現在ピクチャ内のブロックが、ビデオにおける、前に符号化され、且つ、まだバッファに入れられている参照ピクチャ内の参照ブロックに類似する場合、現在ピクチャ内のそのブロックは、動きベクトルと呼ばれるベクトルによって符号化できる。動きベクトルは、参照ピクチャ内の参照ブロックを指し、複数の参照ピクチャが使用される場合には、参照ピクチャを識別する第3の次元を有することができる。
【0070】
いくつかの実施形態において、インターピクチャ予測において双予測技術が使用できる。双予測技術によれば、いずれもビデオにおいて現在ピクチャより復号順で先行する(ただし、表示順では、それぞれ過去及び将来でもよい)第1の参照ピクチャ及び第2の参照ピクチャのような2つの参照ピクチャが使用される。現在ピクチャ内のブロックは、第1の参照ピクチャ内の第1の参照ブロックを指す第1の動きベクトルと、第2の参照ピクチャ内の第2の参照ブロックを指す第2の動きベクトルとによって符号化できる。ブロックは、第1の参照ブロックと第2の参照ブロックの組み合わせによって予測できる。
【0071】
さらに、符号化効率を改善するために、インターピクチャ予測においてマージモード技術が使用できる。
【0072】
本開示のいくつかの実施形態によれば、インターピクチャ予測及びイントラピクチャ予測等の予測は、ブロックの単位で実行される。例えば、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ピクセル等、ピクセルについての値(例えば、ルマ値)の行列を含む。
【0073】
図7は、本開示の別の実施形態によるビデオエンコーダ(703)の図を示す。ビデオエンコーダ(703)は、ビデオピクチャのシーケンス内の現在ビデオピクチャ内のサンプル値の処理ブロック(例えば、予測ブロック)を受信し、処理ブロックを、符号化ビデオシーケンスの一部である符号化されたピクチャに符号化するように構成される。一例では、ビデオエンコーダ(703)は、
図4の例におけるビデオエンコーダ(403)の代わりに使用される。
【0074】
HEVCの例では、ビデオエンコーダ(703)は、8×8サンプル等の予測ブロックのような処理ブロックについてサンプル値の行列を受信する。ビデオエンコーダ(703)は、処理ブロックが、イントラモード、インターモード、又は双予測モードのどれを使用して、最もよく符号化されるかを、例えばレート‐歪み最適化を使用して、判別する。処理ブロックがイントラモードで符号化される場合、ビデオエンコーダ(703)は、処理ブロックを符号化されたピクチャに符号化するためにイントラ予測技術を使用してもよい。処理ブロックがインターモード又は双予測モードで符号化される場合、ビデオエンコーダ(703)は、処理ブロックを符号化されたピクチャに符号化するために、それぞれ、インター予測技術又は双予測技術を使用してもよい。特定のビデオ符号化技術では、マージモード(merge mode)は、動きベクトルが1つ以上の動きベクトル予測子から導出されるが前記予測子の外の符号化された動きベクトル成分の利益のない、インターピクチャ予測サブモードであり得る。特定の他のビデオ符号化技術では、対象ブロックに適用可能な動きベクトル成分が存在してもよい。一例では、ビデオエンコーダ(703)は、処理ブロックのモードを決定するためのモード決定モジュール(図示せず)等の他のコンポーネントを含む。
【0075】
図7の例では、ビデオエンコーダ(703)は、インターエンコーダ(730)、イントラエンコーダ(722)、残差計算器(723)、スイッチ(726)、残差エンコーダ(724)、全般コントローラ(721)、及びエントロピー符号化器(725)を、
図7に示されるように一緒に結合されて含む。
【0076】
インターエンコーダ(730)は、現在ブロック(例えば、処理ブロック)のサンプルを受信し、該ブロックを参照ピクチャ内の1つ以上の参照ブロック(例えば、以前のピクチャ及び後のピクチャ内のブロック)と比較し、インター予測情報(例えば、インター符号化技術による冗長情報の記述、動きベクトル、マージモード情報)を生成し、該インター予測情報に基づいて、任意の好適な技術を使用してインター予測結果(例えば、予測されたブロック)を計算するように構成される。いくつかの例では、参照ピクチャは、符号化されたビデオ情報に基づいて復号された、復号された参照ピクチャである。
【0077】
イントラエンコーダ(722)は、現在ブロック(例えば、処理ブロック)のサンプルを受信し、場合によっては、該ブロックを、同じピクチャ内で既に符号化されているブロックと比較し、変換後に量子化された係数を生成し、場合によっては、イントラ予測情報(例えば、1つ以上のイントラ符号化技術によるイントラ予測方向情報)も生成するように構成される。一例では、イントラエンコーダ(722)はまた、該イントラ予測情報及び同じピクチャ内の参照ブロックに基づいて、イントラ予測結果(例えば、予測されたブロック)を計算する。
【0078】
全般コントローラ(721)は、全般制御データを決定し、全般制御データに基づいてビデオエンコーダ(703)の他のコンポーネントを制御するように構成される。一例では、全般コントローラ(721)は、ブロックのモードを決定し、そのモードに基づいて制御信号をスイッチ(726)に提供する。例えば、モードがイントラモードである場合、全般コントローラ(721)は、残差計算器(723)による使用のためにイントラモードの結果を選択するようスイッチ(726)を制御し、イントラ予測情報を選択し、イントラ予測情報をビットストリームに含めるようエントロピーエンコーダ(725)を制御する。モードがインターモードである場合、全般コントローラ(721)は、残差計算器(723)による使用のためにインター予測の結果を選択するようスイッチ(726)を制御し、インター予測情報を選択し、インター予測情報をビットストリームに含めるようエントロピーエンコーダ(725)を制御する。
【0079】
残差計算器(723)は、受信されたブロックと、イントラエンコーダ(722)又はインターエンコーダ(730)から選択された予測結果との差(残差データ)を計算するように構成される。残差エンコーダ(724)は、残差データに基づいて、残差データを符号化して変換係数を生成するように構成される。一例では、残差エンコーダ(724)は、残差データを空間領域から周波数領域に変換し、変換係数を生成するように構成される。次いで、変換係数は、量子化処理にかけられ、量子化された変換係数を得る。様々な実施形態において、ビデオエンコーダ(703)は、残差デコーダ(728)をも含む。残差デコーダ(728)は、逆変換を実行して、復号された残差データを生成するように構成される。復号された残差データは、イントラエンコーダ(722)及びインターエンコーダ(730)によって好適に使用されることができる。例えば、インターエンコーダ(730)は、復号された残差データ及びインター予測情報に基づいて、復号されたブロックを生成することができ、イントラエンコーダ(722)は、復号された残差データ及びイントラ予測情報に基づいて、復号されたブロックを生成することができる。復号されたブロックは、復号されたピクチャを生成するために好適に処理され、復号されたピクチャは、メモリ回路(図示せず)内にバッファリングされ、いくつかの例では参照ピクチャとして使用されることができる。
【0080】
エントロピーエンコーダ(725)は、符号化されたブロックを含むようにビットストリームをフォーマットするように構成される。エントロピーエンコーダ(725)は、HEVC標準のような好適な標準に従って様々な情報を含めるように構成される。一例では、エントロピーエンコーダ(725)は、全般制御データ、選択された予測情報(例えば、イントラ予測情報又はインター予測情報)、残差情報、及び他の好適な情報をビットストリーム内に含めるように構成される。開示される主題によれば、インターモード又は双予測モードのいずれかのマージサブモードにおいてブロックを符号化する場合は、残差情報は存在しないことを注意しておく。
【0081】
図8は、本開示の別の実施形態によるビデオデコーダ(810)の図を示す。ビデオデコーダ(810)は、符号化されたビデオシーケンスの一部である符号化されたピクチャを受信し、符号化されたピクチャを復号して、再構成されたピクチャを生成するように構成される。一例では、ビデオデコーダ(810)は、
図4の例におけるビデオデコーダ(410)の代わりに使用される。
【0082】
図8の例では、ビデオデコーダ(810)は、エントロピーデコーダ(871)、インターデコーダ(880)、残差デコーダ(873)、再構成モジュール(874)、及びイントラデコーダ(872)が
図8に示されるように一緒に結合されたものを含む。
【0083】
エントロピーデコーダ(871)は、符号化されたピクチャから、その符号化されたピクチャが構成されるシンタックスエレメントを表す特定のシンボルを再構成するように構成されることができる。そのようなシンボルは、例えば、ブロックが符号化されるモード(例えば、イントラモード、インターモード、双予測モード、マージサブモード又は別のサブモードにおける後者の2つ)、イントラデコーダ(872)又はインターデコーダ(880)によってそれぞれ予測のために使用される特定のサンプル又はメタデータを識別することができる予測情報(例えば、イントラ予測情報又はインター予測情報等)、例えば量子化された変換係数の形の残差情報等を含むことができる。一例では、予測モードがインター又は双予測モードである場合、インター予測情報がインターデコーダ(880)に提供される。予測タイプがイントラ予測タイプである場合には、イントラ予測情報がイントラデコーダ(872)に提供される。残差情報は、逆量子化を受けることができ、残差デコーダ(873)に提供される。
【0084】
インターデコーダ(880)は、インター予測情報を受信し、該インター予測情報に基づいてインター予測結果を生成するように構成される。
【0085】
イントラデコーダ(872)は、イントラ予測情報を受信し、該イントラ予測情報に基づいて予測結果を生成するように構成される。
【0086】
残差デコーダ(873)は、逆量子化を実行して量子化解除された変換係数を抽出し、量子化解除された変換係数を処理して、残差を周波数領域から空間領域に変換するように構成される。残差デコーダ(873)はまた、特定の制御情報(量子化器パラメータ(QP)を含む)をも必要とすることがあり、その情報は、エントロピーデコーダ(871)によって提供されてもよい(これは、低ボリュームの制御情報のみであるため、データ経路は描かれていない)。
【0087】
再構成モジュール(874)は、空間領域において、残差デコーダ(873)によって出力される残差と、予測結果(場合に応じてイントラ又はインター予測モジュールによって出力される)とを組み合わせて、再構成されたブロックを形成するように構成され、該再構成されたブロックは再構成されたピクチャの一部であってもよく、該再構成されたピクチャは再構成されたビデオの一部であってもよい。視覚的品質を改善するためにデブロッキング動作等の他の好適な動作が実行されることができることを注意しておく。
【0088】
なお、ビデオエンコーダ(403)、(603)、(703)、及びビデオデコーダ(410)、(510)、(810)は、任意の好適な技術を用いて実装できる。ある実施形態では、ビデオエンコーダ(403)、(603)、(703)及びビデオデコーダ(410)、(510)、(810)は、1つ以上の集積回路を使用して実装できる。別の実施形態では、ビデオエンコーダ(403)、(603)、(703)、及びビデオデコーダ(410)、(510)、(810)は、ソフトウェア命令を実行する1つ以上のプロセッサを使用して実装できる。
【0089】
本開示の側面は、符号化ビデオストリーム内の制約フラグによるコーディングツール及び機能の制御技術を提供する。
【0090】
本開示の側面によれば、ビットストリーム内のピクチャサイズは同じままでもよく、或いは、変化してもよい。いくつかの関連する例では、ビデオエンコーダ及びデコーダは、符号化ビデオシーケンス(CVS, coded video sequence)、グループオブピクチャ(GOP, group of pictures)又は同様の複数ピクチャの時間枠について定義されて一定のままである所与のピクチャサイズで動作できる。MPEG-2のような例では、システム設計は、シーンのアクティビティのような要因に依存して水平解像度(したがって、ピクチャサイズ)を変更することが知られているが、Iピクチャにおいてのみ変更するので、典型的にはGOPについてピクチャサイズが定義されて一定のままである。CVS内で異なる解像度を使用するための参照ピクチャの再サンプリングは、例えば、ITU-T Rec. H.263 Annex Pから知られている。しかし、CVS内のピクチャサイズは変化せず、参照ピクチャのみが再サンプリングされ、その結果、ピクチャキャンバスの一部のみが使用されること(例えば、ダウンサンプリングの場合)、又はシーンの一部のみがキャプチャされること(例えば、アップサンプリングの場合)を潜在的に生じる。H.263 Annex Qのようないくつかの例では、各次元(例えば、上方向又は下方向)において個々のマクロブロックの2倍の再サンプリングが許可されている。しかし、ピクチャサイズは同じままである。例えばH.263について、マクロブロックのサイズが固定できる場合、マクロブロックのサイズは信号伝達(シグナリング)される必要はない。
【0091】
いくつかの関連する例では、予測ピクチャのピクチャサイズは変更できる。VP9のような例では、参照ピクチャの再サンプリング及び全体のピクチャの解像度の変更が許可されている。いくつかの例(例えば、Hendry, et. al, "On adaptive resolution change (ARC) for VVC", Joint Video Team document JVET-M0l35-vl, Jan 9-l9, 20l9、ここで、本文献の全内容を援用する)では、全体の参照ピクチャの異なる解像度(例えば、高解像度又は低解像度)への再サンプリングが許可されている。異なる候補解像度は、シーケンスパラメータセット(SPS, sequence parameter set)に符号化でき、ピクチャパラメータセット(PPS, picture parameter set)内のピクチャ毎のシンタックスエレメントによって参照できる。
【0092】
本開示の側面によれば、ソースビデオは、異なる解像度のような異なる品質を有する1つ以上のレイヤを含むビットストリームにピクチャを符号化できる階層符号化によって圧縮できる。ビットストリームは、どのレイヤ(又はレイヤのセット)がデコーダ側で出力できるかを指定するシンタックスエレメントを有することができる。出力すべきレイヤのセットは、出力レイヤセットとして定義できる。例えば、複数のレイヤ及びスケーラビリティをサポートするビデオコーデックでは、1つ以上の出力レイヤセットがビデオパラメータセット(VPS, video parameter set)で信号伝達されることができる。全体のビットストリーム又は1つ以上の出力レイヤセットのプロファイル層レベル(PTL, profile tier level)を指定するシンタックスエレメントは、VPS、いくつかの例ではデコーダ能力情報(DCI, decoder capability information)と呼ばれることがあるデコーダパラメータセット(DPS, decoder parameter set)、SPS、PPS、SEIメッセージ等で信号伝達されることができる。PTL情報には、コーディングツール又は機能に対する制約を指定できる一般制約情報が存在することができる。様々なコーディングツール及び機能についての制約情報を効率的に表現して信号伝達することが望ましい。
【0093】
いくつかの例では、「サブピクチャ」という用語は、例えば、意味的にグループ化されており、変更された解像度で独立して符号化されてもよいサンプル、ブロック、マクロブロック、符号化ユニット又は同様のエンティティの長方形の配置を示すために使用できる。1つ以上のサブピクチャはピクチャを形成できる。1つ以上の符号化サブピクチャは符号化ピクチャを形成できる。1つ以上のサブピクチャは1つのピクチャに組み立てられることができ、1つ以上のサブピクチャはピクチャから抽出できる。いくつかの例では、1つ以上の符号化サブピクチャは、サンプルレベルにコード変換されることなく、圧縮ドメインにおいて符号化ピクチャに組み立てられることができる。いくつかの例では、1つ以上の符号化サブピクチャは、圧縮ドメインにおける符号化ピクチャから抽出できる。
【0094】
いくつかの例では、例えば、参照ピクチャの再サンプリングによってCVS内のピクチャ又はサブピクチャの解像度の変更を可能にするメカニズムは、適応解像度変更(ARC, adaptive resolution change)と呼ばれることができる。適応解像度変更を実行するために使用される制御情報は、ARCパラメータと呼ばれることができる。ARCパラメータは、フィルタパラメータ、スケーリング係数、出力及び/又は参照ピクチャの解像度、様々な制御フラグ等を含む。
【0095】
いくつかの例では、ARCの符号化/復号はピクチャの単位であり、したがって、制御情報(ARCパラメータ)のセットは、単一の意味的に独立した符号化ビデオピクチャを符号化/復号するために使用される。いくつかの例では、ARCの符号化/復号はサブピクチャの単位であり、したがって、ピクチャ内の複数のサブピクチャは独立したARCパラメータで符号化/復号できる。ARCパラメータは、様々な技術を使用して信号伝達できることに注意しておく。
【0096】
図9は、本開示のいくつかの実施形態によるARCパラメータを信号伝達するための技術の例(例えばオプション)を示す。符号化効率、複雑さ及びアーキテクチャは、例によって変化する可能性がある。ビデオ符号化標準又は技術は、ARCパラメータを信号伝達するために、これらの例の1つ以上又は他の変形を選択してもよい。例は相互に排他的ではなく、アプリケーションのニーズ、標準技術、エンコーダの選択等に基づいて交換されてもよい。
【0097】
本開示の側面によれば、ARCパラメータは様々な方式でARCパラメータのクラスとして提供されてもよい。いくつかの例では、ARCパラメータのクラスは、アップサンプル及び/又はダウンサンプル係数を含み、X次元及びY次元で分離又は結合される。一例では、アップサンプル及び/又はダウンサンプル係数を含むテーブルを指すことができる1つ以上の短いシンタックスエレメントがコーディングされることができる。
【0098】
いくつかの例では、ARCパラメータのクラスは、時間次元の追加を伴うアップサンプル及び/又はダウンサンプル係数を含み、所与の数のピクチャについて一定速度のズームイン及び/又はズームアウトを示す。一例では、時間次元の追加を伴うアップサンプル及び/又はダウンサンプル係数を含むテーブルを指すことができる1つ以上の短いシンタックスエレメントがコーディングされることができる。
【0099】
いくつかの例では、ARCパラメータのクラスは、組み合わせで或いは別々に、サンプル、ブロック、マクロブロック、CU又はいずれかの他の適切な粒度の単位で、入力ピクチャ、出力ピクチャ、参照ピクチャ、符号化ピクチャのX次元又はY次元における解像度を含む。いくつかの例では、ビデオコーディングで使用される1つより多くの解像度が存在し(例えば、入力ピクチャのための1つの解像度、参照ピクチャのための別の解像度)、値のセット(解像度のうち1つに対応する)は別の値のセット(解像度うちの別のものに対応する)から推定できる。値の決定は、例えばフラグの使用に基づいてゲート制御できる。ゲート制御のためのフラグの使用については、詳細に更に説明する。
【0100】
いくつかの例では、ARCパラメータのクラスは、上記のように適切な粒度で、H.263 Annex Pにおいて使用されているものと同様のワーピング座標(warping coordinate)を含む。H.263 Annex Pは、ワーピング座標をコーディングするための効率的な方法を定義している。他の効率的な方法も考案できる。例えば、Annex Pのワーピング座標の可変長可逆ハフマン型コーディングは、適切な長さのバイナリコーディングによって置き換えられることができ、ここで、バイナリコードワードの長さは、最大ピクチャサイズの境界の外でのワーピングを可能にするために、係数で乗算されて値でオフセットされた最大ピクチャサイズから導出できる。
【0101】
いくつかの例では、ARCパラメータのクラスは、アップサンプル及び/又はダウンサンプルフィルタパラメータを含む。一例では、アップサンプリング及び/又はダウンサンプリングのために単一のフィルタのみが存在する。別の例では、複数のフィルタが使用できる。いくつかの例では、フィルタ設計におけるより大きい柔軟性を可能にするために、フィルタパラメータが信号伝達されてもよい。フィルタパラメータは、可能なフィルタ設計のリストにおけるインデックスを使用することによって選択できる。フィルタは、完全に(例えば、適切なエントロピーコーディング技術を使用して、フィルタ係数のリストを指定することによって)指定されてもよく、フィルタは、上記のメカニズムのいずれかに従って信号伝達されるアップサンプル又はダウンサンプル比によって暗黙的に選択されてもよく、及び/又は他の方式で選択されてもよい。
【0102】
以下の説明では、有限セットのアップサンプル又はダウンサンプル係数(X次元及びY次元の双方で使用される同じ係数)が、コードワードによってARCパラメータを信号伝達することを示すために使用される。いくつかの例では、例えば、ビデオ符号化仕様(例えば、H.264及びH.265)における特定のシンタックスエレメントにExt-Golomb符号を使用して、コードワードは可変長コーディングされることができる。
【0103】
図10は、アップサンプル又はダウンサンプル係数、コードワード及びExt-Golomb符号のマッピングのためのテーブル(1000)の例を示す。
【0104】
他の同様のマッピングがビデオ圧縮技術又は標準で利用可能なアップスケール及びダウンスケールのメカニズムの適用及び機能に従って考案できることに注意しておく。いくつかの例では、テーブル1は更なる値に適切に拡張できる。値は、Ext-Golomb符号以外のエントロピーコーディングメカニズムによって、例えばバイナリコーディングを使用することによって表されてもよい。一例では、Ext-Golomb符号以外のエントロピーコーディングメカニズムは、再サンプリング係数がビデオ処理エンジン(例えば、エンコーダ及びデコーダ)の外部で、例えばメディア認識ネットワーク要素(MANE, media-aware network element)によって関心を持たれる場合、特定の利点を有し得る。いくつかの例では、解像度の変更が必要ない場合(例えば、元/ターゲットの解像度がテーブル1における1である場合)、短いExt-Golomb符号(例えば、テーブル1に示す1ビットのみ)が選択でき、これは、例えば、最も一般的な場合にバイナリ符号を使用するよりも、符号化効率の利点を有することができる。
【0105】
本開示の側面によれば、テーブル1のようなマッピングテーブルは設定可能とすることができる。例えば、テーブル1におけるエントリ数及び対応するセマンティクスは、完全に或いは部分的に設定可能とすることができる。いくつかの例では、マッピングテーブルの基本的な概要は、SPS又はDPSのようなハイレベルのパラメータセットで伝達される。代替として或いはさらに、いくつかの例では、テーブル1と同様の1つ以上のテーブルがビデオ符号化技術又は標準において定義されてもよく、テーブルのうち1つが、例えばSPS又はDPSによって選択されてもよい。
【0106】
上記のようにコーディングされたアップサンプル又はダウンサンプル係数のようなARC情報は、ビデオ符号化技術又は標準のシンタックスに含まれてもよい。1つ以上のコードワードが、アップサンプルフィルタ又はダウンサンプルフィルタのような他のクラスのARC情報を制御するために使用できることに注意しておく。いくつかの例では、フィルタ又は他のデータ構造のために比較的大量のデータが必要になる。
【0107】
図9を参照すると、H.263 Annex Pのような例(910)では、ARC情報(912)は4つのワーピング座標の形式とすることができ、H.263 PLUSPTYPE(913)ヘッダ拡張のようなピクチャヘッダ(911)に含まれる。例(910)は、i)ピクチャヘッダが利用可能であり、ii)ARC情報の頻繁な変更が想定される場合に適用できる。しかし、例(910)に示すようなH.263型の信号伝達を使用する場合のオーバーヘッドは高くなる可能性がある。また、ピクチャヘッダが一時的な性質となる可能性があるので、スケーリング係数がピクチャ境界の間で適用可能でない可能性がある。
【0108】
図9を参照すると、JVCET-M135-v1のような例(920)では、ARC参照情報(925)(例えば、インデックス)はPPS(924)に配置でき、ターゲット解像度(例えば、解像度1~3)を含むテーブル(又はターゲット解像度テーブル)(926)を指すことができる。一例では、テーブル(926)はSPS(927)に配置される。SPS(927)内のテーブル(926)にターゲット解像度を配置することは、能力の交換中の相互運用性の交渉点としてSPSを使用することで正当化できる。適切なPPS(924)内の参照(例えば、ARC参照情報(925))によって、テーブル(926)内の限られたセットの値(例えば、解像度1~3)の中で、解像度があるピクチャから別のピクチャに変更できる。
【0109】
図9はまた、例(930)、(940)及び(950)のように、ARC情報をビデオビットストリームで伝達するために使用され得る更なる技術も示している。これらの技術は、同じビデオ符号化技術又は標準において、個別に使用されてもよく、或いは、適切な組み合わせで使用することもできる。
【0110】
図9を参照すると、例(930)において、再サンプリング係数(又はズーム係数)のようなARC情報(939)は、スライスヘッダ、GOBヘッダ、タイルヘッダ、タイルグループヘッダ等のようなヘッダに存在してもよい。例えば、タイルグループヘッダ(938)が
図9に示されている。例(930)で示す技術は、ARC情報(939)が単一の可変長ue(v)又は数ビットの固定長コードワードのような少数のビットコーディングされることができる場合に使用できる。
【0111】
本開示の側面によれば、ARC情報(939)をヘッダ(例えば、
図9におけるタイルグループヘッダ(938)、スライスヘッダ又はタイルヘッダ)に直接有することは、ARC情報(939)が全体のピクチャではなく、例えば、対応するタイルグループ(又はスライス、タイル)によって表されるサブピクチャに適用可能になり得るという更なる利点を有することができる。さらに、一例では、ビデオ圧縮技術又は標準が、(例えば、タイルグループベースの適応解像度の変更とは対照的に)全体のピクチャ適応解像度の変更のみを想定している場合でも、エラー回復性の観点から、例(930)は例(910)よりも特定の利点を有することができる。
【0112】
図9を参照すると、例(940)では、ARC情報(942)は、PPS、ヘッダパラメータセット、タイルパラメータセット、適応パラメータセット(APS, adaptation parameter set)等のようなパラメータセット(941)に存在してもよい。例えば、APS(941)が
図9に示されている。いくつかの例では、パラメータセット(941)の適用範囲は、ピクチャよりも大きくすることはできず、例えば、ピクチャ、タイルグループ等にすることができる。ARC情報(例えばARC情報(942))の使用は、関連するパラメータセット(例えば、APS(941))のアクティブ化によって暗黙的に行うことができる。例えば、ビデオ符号化技術又は標準がピクチャベースのARCのみを考慮する場合、PPS又は同等のものが適切になり得る。
【0113】
図9を参照すると、例(950)では、上記のように、ARC参照情報(953)はタイルグループヘッダ(954)又は同様のデータ構造(例えば、ピクチャヘッダ、スライスヘッダ、タイルヘッダ又はGOPヘッダ)に存在してもよい。タイルグループヘッダ(954)が例として
図9に示されている。ARC参照情報(953)は、単一のピクチャを超える適用範囲を有するパラメータセット(956)、例えば、SPS、DPS等で利用可能なARC情報(955)のサブセットを参照することができる。SPS(956)が例として
図9に示されている。
【0114】
図11は、本開示のいくつかの実施形態によるARCパラメータの信号伝達のいくつかの例を示す。
図11は、ビデオ符号化標準で使用されるシンタックス図の例を示す。一例では、シンタックス図の表記は大まかにCスタイルのプログラミングに従う。太字の行はビットストリームに存在するシンタックスエレメントを示すことができ、太字でない行は制御フロー又は変数の設定を示すことができる。
【0115】
図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))で信号伝達されることができる。
【0116】
図11を参照すると、SPS(1110)の抜粋が示されている。SPS(1110)は、フラグ(1111)(例えば、adaptive_pic_resolution_change_flag)である第1のシンタックスエレメント(1111)を含む。フラグ(1111)がtrueである場合、フラグ(1111)は、特定の制御情報を必要とし得る適応解像度の使用を示すことができる。一例では、タイルグループヘッダ(1101)及びSPS(1110)のif()ステートメント(1112)によって示されるように、特定の制御情報はフラグ(1111)の値に基づいて条件付きで存在する。
【0117】
図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である)等を制限できる。一例では、ハードウェアの実装を容易にするために上記の制限が導入されてもよい。
【0118】
特定のアプリケーションでは、エンコーダは、サイズが出力ピクチャサイズであると暗黙的に仮定するのではなく、特定の参照ピクチャサイズを使用するようにデコーダに命令することができる。例えば、シンタックスエレメント(例えば、reference_pic_size_present_flag)(1114)は、参照ピクチャ寸法(1115)の条件付き存在をゲート制御する。一例では、参照ピクチャ寸法(1115)は、幅(例えば、reference_pic_width_in_luma_samples)及び高さ(例えば、reference_pic_height_in_luma_samples)の双方を含むことができる。
【0119】
また、
図11には、適用可能な復号ピクチャの幅及び高さのテーブルが示されている。一例では、テーブルにおけるエントリ数は、テーブル指示(例えば、シンタックスエレメントnum_dec_pic_size_in_luma_samples_minus1)(1116)で表されることができる。「minus1」はシンタックスエレメント(1116)の値の解釈を示すことができる。例えば、コーディングされた値が0である場合、1つのテーブルエントリが存在する。コーディングされた値が5である場合、6つのテーブルエントリが存在する。テーブル内の各エントリについて、復号ピクチャの幅及び高さがシンタックスエレメント(1117)として含まれる。
【0120】
シンタックスエレメント(1117)によって表されるテーブルエントリは、タイルグループヘッダ(1101)内のシンタックスエレメントdec_pic_size_idx(1102)を使用してインデックス化でき、したがって、タイルグループ毎に異なる復号サイズ及びズーム係数を可能にする。
【0121】
本開示の側面によれば、特定のビデオ符号化技術又は標準(例えば、VP9)は、時間スケーラビリティと組み合わせて特定の形式の参照ピクチャ再サンプリングを実装することによって、空間スケーラビリティを可能にすることができる。一実施形態では、参照ピクチャは、ARCスタイルの技術を使用してより高い解像度にアップサンプリングされ、空間エンハンスメントレイヤの基礎を形成する。アップサンプリングされたピクチャは、例えば詳細を追加するために高解像度で通常の予測メカニズム(例えば、参照ピクチャからのインター予測のための動き補償予測)を使用して洗練できる。
【0122】
いくつかの例では、ネットワーク抽象レイヤ(NAL, network abstraction layer)ユニットヘッダ内の値、例えば、時間IDフィールドが、時間レイヤ情報及び空間レイヤ情報を示すために使用される。時間レイヤ情報及び空間レイヤ情報の双方を示すためにNALユニットヘッダ内の値を使用することは、既存の選択転送ユニット(SFU, selected forwarding unit)を変更せずにスケーラブルな環境で使用することを可能にすることができる。例えば、既存のSFUは、NALユニットヘッダの時間ID値に基づいて、時間レイヤ選択転送のために作成されて最適化されることができる。次いで、いくつかの例では、既存のSFUは、変更せずに空間スケーラビリティ(例えば、空間レイヤの選択)に使用できる。いくつかの例では、符号化ピクチャサイズとNALユニットヘッダ内の時間IDフィールドによって示される時間レイヤとの間にマッピングが提供できる。
【0123】
本開示の側面によれば、符号化ビットストリームのいくつかの特性は、プロファイル、層、レベル及び一般制約情報を含むプロファイル、層及びレベルの組み合わせ(PTL, profile, tier and level combination)情報を使用して指定できる。いくつかの例では、プロファイルは、色再現、解像度、更なるビデオ圧縮のようなビットストリームの特性のサブセットを定義する。ビデオコーデックは、ベースラインプロファイル(例えば、低圧縮比を有する単純なプロファイル)、高プロファイル(高圧縮比を有する複雑なプロファイル、メインプロファイル(例えば、ベースラインプロファイルと高プロファイルとの間の中程度の圧縮比を有するプロファイルであり、デフォルトのプロファイル設定とすることができる)等のような様々なプロファイルを定義できる。
【0124】
さらに、層及びレベルは、最大ビットレート、最大ルマサンプルレート、最大ルマピクチャサイズ、最小圧縮比、許容される最大スライス数、許容される最大タイル数等の観点からビットストリームを定義する特定の制約を指定するために使用できる。下位層は上位層よりも制約され、下位レベルは上位レベルよりも制約される。一例では、標準はメイン(Main)及び高(High)の2つの層を定義してもよい。Main層はHigh層よりも下位の層である。これらの層は、最大ビットレートで異なるアプリケーションを処理するために作られる。一例では、Main層はほとんどのアプリケーション向けに設計され、High層は非常に要求の厳しいアプリケーション向けに設計される。標準は複数のレベルを定義できる。レベルは、ビットストリームの制約のセットである。一例では、レベル4より下のレベルについて、Main層のみが許可される。いくつかの例では、所与の層/レベルに準拠するデコーダは、その層/レベル及び全ての下位の層/レベルのために符号化された全てのビットストリームを復号できる必要がある。
【0125】
一般制約情報は、ビデオソースタイプ、コーディングツール及び機能に関する制約情報を含んでもよい。例えば、制約フラグは、インターコーディングツール、イントラコーディングツール、DBF、エントロピーコーディング、変換、パーティション化(例えば、タイル、スライス)、バッファ管理、ランダムアクセス(例えば、IDR)、パラメータセット(例えば、SPS、PPS)等が符号化ビデオビットストリームに存在するか或いは使用されているかを示すことができる。制約情報は、パラメータセット(例えば、SPS、VPS又はDCI)で信号伝達されることができる。制約フラグは、ハイレベルシンタックス構造(例:SPS、VPS、DCI)で信号伝達されることができる。
【0126】
本開示のいくつかの側面によれば、PTL情報は適用範囲(例えば、ビットストリーム内の符号化ビデオデータの一部)に関連付けられることができる。いくつかの例では、PTL情報は、例えば、全体のビットストリーム、ビットストリームのCVS、ビットストリームの各出力レイヤセット(OLS, output layer set)等について指定でき、VPS、DPS、DCI、SPS、PPS、APS、GOP、シーケンス、ヘッダ、SEIメッセージ等のようなハイレベルシンタックス(HLS, high-level syntax)構造で信号伝達されることができる。
【0127】
いくつかの例では、ハイレベルシンタックス(HLS)がブロックレベルに関して定義される。ブロックレベルのコーディングツールは、ピクチャ内のピクセル又はサンプルを復号し、ピクチャを再構成するために使用できる。ブロックレベルのコーディングツールは、インター予測のためのコーディングツール(又はインターコーディングツール)、イントラ予測のためのコーディングツール(又はイントラコーディングツール)、適応ループフィルタ(ALF, adaptive loop filter)、デブロッキングフィルタ(DBF, deblocking filter)、エントロピーコーディング、変換等のように、符号化ブロックの再構成において使用されるいずれか適切なコーディングツールを含むことができる。
【0128】
ハイレベルシンタックス(HLS)は、機能、システムインタフェース、ツールのピクチャレベル制御及びバッファ制御等に関する情報を指定できる。例えば、HLSは、パーティション化(例えば、タイル、スライス、サブピクチャ)、バッファ管理、ランダムアクセス(例えば、IDR、クリーンランダムアクセス(CRA, clean random access))、パラメータセット(例えば、VPS、SPS、PPS、APS)、参照ピクチャの再サンプリング(RPR, reference picture resampling)、スケーラビリティ等を指定できる。ハイレベルシンタックスは、ブロックレベルより上にすることができる。
【0129】
制御情報は、SPSレベルのツール制御情報、PPSレベルのツール制御情報、シーケンスレベルの制御情報、ビットストリームレベルの制御情報等のような適切なレベルを有することができる。いくつかの例では、PTL情報は制御情報の一部であり、HLS構造内の制約フラグとして信号伝達されることができ、HLS構造に対応する適用範囲内のツールの制御又は制約を示すことができる。例えば、PTL情報の制約フラグは、シーケンスレベルの制御情報及びビットストリームレベルの制御情報のうち1つで提供できる。一例では、特定のツールがHLS構造内の制約フラグによって無効化された場合、例えば、HLSに対応する適用範囲内の符号化ブロックについて、そのツールは使用されない。
【0130】
図12及び
図13は、本開示のいくつかの実施形態によるPTL情報の例を示す。
図12は、PTLシンタックスエレメントのセットのシンタックス構造の例(1200)を示し、
図13は、一般制約情報のシンタックス構造の例(1300)を示す。
【0131】
図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を含むことができる。
【0132】
図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)は、上記の制約を課さない。
【0133】
別の例では、
図13に示すように、制約フラグ(例えば、no_lossless_coding_tool_constraint_flag)(1301)は一般制約情報で信号伝達されることができる。1に等しい制約フラグ(例えば、no_lossless_coding_tool_constraint_flag)は、制約フラグ(1301)を含むPTL情報の適用範囲内で可逆符号化に関連するコーディングツールが使用できないことを示すことができる。0に等しい制約フラグ(例えば、no_lossless_coding_tool_constraint_flag)(1301)は、上記の制約を課さない。
【0134】
別の例では、
図13に示すように、制約フラグ(例えば、no_lossy_coding_tool_constraint_flag)(1302)は一般制約情報で信号伝達されることができる。1に等しい制約フラグ(例えば、no_lossy_coding_tool_constraint_flag)は、制約フラグ(1302)を含むPTL情報の適用範囲内で不可逆符号化に関連するコーディングツールが使用できないことを示すことができる。0に等しい制約フラグ(例えば、no_lossy_coding_tool_constraint_flag)(1302)は、上記の制約を課さない。
【0135】
一実施形態では、制約フラグ(例えば、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に等しくなくてもよい。
【0136】
一般制約情報内の複数の制約フラグは、特定の順序でソートできる。順序は、例えば、それぞれのメカニズム及び/又はツールがPTLの適用範囲内で使用されていない可能性に基づいて設定できる。順序は、優先順序と呼ばれることができる。順序は、一般制約情報シンタックス構造において、高い優先度から低い優先度に示されることができ、高い優先度はツール(又はメカニズム)の不使用が高い可能性を有することを示し、低い優先度はツール(又はメカニズム)の不使用が低い可能性を有することを示す。順序に影響を与える更なる要因は、特定のユースケースにのみ使用される可能性の高いツール(例えば、サブピクチャのためのツール、スケーラビリティ、及び/又はインターレースのサポート)、エンコーダ/デコーダ/実装の複雑さについてのツールの影響等を含むことができる。
【0137】
図14A~
図14Bは、本開示のいくつかの実施形態に従って、PTLシンタックス構造(PTLブラケットとも呼ばれる)のシンタックス構造の例(1410)及び一般制約情報シンタックス構造(一般制約情報ブラケットとも呼ばれる)のシンタックスの例(1420)を含むPTL情報の例を示す。いくつかの例では、制約フラグの数を示すシンタックスエレメント(例えば、num_available_constraint_flags)が信号伝達されることができる。一例では、制約フラグの数を示すシンタックスエレメントは、一般制約情報ブラケットのシンタックスの例(1420)の外側とすることができる
図14Aに示すシンタックスの例(1401)に示すように、PTLシンタックス構造で信号伝達されることができる。或いは、制約フラグの数を示すシンタックスエレメントは、シンタックスの例(1420)の先頭のように、一般制約情報ブラケットの先頭で信号伝達されることができる。シンタックスエレメント(例えば、num_available_constraint_flags)が存在し、シンタックスエレメント(例えば、num_available_constraint_flags)の値がNに等しい場合、最初のN個の制約フラグが一般制約情報シンタックス構造に存在してもよい。さらに、他の制約フラグは存在しなくてもよく、特定の値に等しいと推定できる。Nは負でない整数とすることができる。
【0138】
一実施形態では、値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で割り切れる数まで加算できるように選択されることができる。
【0139】
いくつかの例では、制約フラグは1つ以上の制約情報グループに分類できる。各制約情報グループは1つ以上の制約フラグを含むことができ、対応するゲートフラグを有することができる。対応する制約情報グループのゲートフラグは、対応する制約情報グループ内の制約フラグが存在するか否かを示すことができる。一例では、ゲートフラグは制約グループ存在フラグと呼ばれることができる。一般的に、ゲートフラグは対応する制約情報グループに関連付けられ、対応する制約情報グループ内の制約フラグに関連付けられる。一実施形態では、ゲートフラグは、対応する制約情報グループ内の制約フラグが制約情報に存在するか(或いは信号伝達されるか)否かをゲート制御する。例えば、対応する制約情報グループのゲートフラグが1に等しい場合、制約情報グループに対応する制約フラグは、例えば、一般制約情報に存在することができる。対応する制約情報グループのゲートフラグが0に等しい場合、制約情報グループに対応する制約フラグは、例えば、一般制約情報に存在しなくてもよい。例えば、全てのゲートフラグが0に等しい場合、制約フラグは存在しない。
【0140】
制約フラグは異なる適用範囲を有することができる。例えば、DCI内の制約フラグの適用範囲は、符号化ビデオビットストリームとすることができる。VPS内の制約フラグの適用範囲は、複数のレイヤを有するCLVSとすることができる。SPS内の制約フラグの適用範囲は、単一のCLVSとすることができる。
【0141】
図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)の先頭に存在することができる。
【0142】
ゲートフラグ(例えば、general_frame_structure_constraint_group_flag)(1501)は、制約情報グループ(1510)に関連付けられ、制約情報グループ(1510)にある制約フラグ(1511)~(1514)に関連付けられる。1に等しいゲートフラグ(例えば、general_frame_structure_constraint_group_flag)(1501)は、制約情報グループ(1510)にある制約フラグ(1511)~(1514)が存在してもよいことを指定できる。
【0143】
制約情報グループ(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)に対応する。そうでなく、1に等しいゲートフラグ(例えば、general_frame_structure_constraint_group_flag)(1501)は、制約情報グループ(1510)にある制約フラグ(1511)~(1514)が一般制約情報シンタックス構造(1500)に存在しなくてもよいことを指定できる。
【0144】
さらに、いくつかの例では、1に等しいゲートフラグ(例えば、high_level_functionality_constraint_group_flag)(1502)は、
図15Bに示すように、制約情報グループ(1520)にあるハイレベル機能(例えば、参照ピクチャの再サンプリング)に関連する制約フラグが存在してもよいことを指定できる。そうでなく、0に等しいゲートフラグ(例えば、high_level_functionality_constraint_group_flag)(1502)は、制約情報グループ(1520)にある制約フラグが一般制約情報シンタックス構造(1500)に存在しなくてもよいことを指定できる。
【0145】
図15Aに戻ると、1に等しいゲートフラグ(例えば、scalability_constraint_group_flag)(1503)は、スケーラビリティ(例えば、レイヤ間予測)に関連する制約フラグが存在してもよいことを指定できる。そうでない場合、スケーラビリティに関連する制約フラグは一般制約情報シンタックス構造(1500)に存在しなくてもよい。
【0146】
1に等しいゲートフラグ(例えば、partitioning_constraint_group_flag)(1504)は、ハイレベルパーティション化(例えば、サブピクチャ又はタイル)に関連する制約フラグが存在してもよいことを指定できる。そうでない場合、ハイレベルパーティション化に関連する制約フラグは一般制約情報シンタックス構造(1500)に存在しなくてもよい。
【0147】
1に等しいゲートフラグ(例えば、intra_coding_tool_constraint_group_flag)(1505)は、イントラコーディング(例えば、イントラ予測)に関連する制約フラグが存在してもよいことを指定できる。そうでない場合、イントラコーディングに関連する制約フラグは一般制約情報シンタックス構造(1500)に存在しなくてもよい。
【0148】
1に等しいゲートフラグ(例えば、inter_coding_tool_constraint_group_flag)(1506)は、インターコーディング(例えば、インターピクチャ予測のための動き補償)に関連する制約フラグが存在してもよいことを指定できる。そうでない場合、インターコーディングに関連する制約フラグは一般制約情報シンタックス構造(1500)に存在しなくてもよい。
【0149】
1に等しいゲートフラグ(例えば、transfom_contraint_group_flag)(1507)は、変換コーディング(例えば、複数の変換行列)に関連する制約フラグが存在してもよいことを指定できる。そうでない場合、変換コーディングに関連する制約フラグは一般制約情報シンタックス構造(1500)に存在しなくてもよい。
【0150】
一実施形態では、全てのゲートフラグ(例えば、
図15Aにおけるゲートフラグ(1501)~(1508))が0に等しい場合、制約フラグは一般制約情報シンタックス構造(例えば、一般制約情報シンタックス構造(1500))に存在しない。
【0151】
本開示の側面によれば、シンタックスは、ゲートフラグ(例えば、ゲートフラグ(1501)~(1508))、関連する制約フラグ(例えば、制約フラグ(1511)~(1512)、及び制約情報グループ内の制約フラグ(1520))、更なる制御情報等を含む制御情報がバイトアライメントできるように設計でき、例えば、フラグの数はバイトアライメントを保持するために8で割り切れる。一例では、制約情報(例えば、一般制約情報シンタックス構造(1500))内のゲートフラグ及び制約フラグの数は8で割り切れる。制御情報のバイトアライメントを実現するために、バイトアライメントメカニズムが使用できる。
図15Bを参照すると、シンタックス(例えば、whileループ)(1530)がバイトアライメントのために使用できる。
【0152】
いくつかの実施形態では、オフセット(例えば、シンタックスエレメントconstraint_info_offset[]の使用))のようなオフセット情報及び長さ(例えば、シンタックスエレメントconstraint_info_length[]の使用)のような長さ情報は、制約情報内のゲートフラグに関連するそれぞれの制約情報グループ内の制約フラグの提示を支援するために、制約情報に(例えば、一般制約情報シンタックス構造の先頭)に存在する。一実施形態では、少なくとも1つの制約情報グループのうち1つ以上が符号化ビデオビットストリームに存在する。制約情報グループについて、オフセット及び長さが制約情報グループの制約情報に存在することができる。オフセットは制約情報グループ内の第1の制約フラグへのオフセットを示すことができ、長さは制約情報グループ内の制約フラグの数を示すことができる。いくつかの例では、制約情報グループの数は、例えばシンタックスエレメントnum_constraint_info_setによって明示的に示されることができる。num_constraint_info_setの値は0以上の整数とすることができる。num_constraint_info_setの値が0である場合、constraint_info_offset[]、constraint_info_length[]及び制約フラグは一般制約情報シンタックス構造に存在しない。
【0153】
一実施形態では、制約情報オフセット(例えば、シンタックスエレメントconstraint_info_offset[i])及び制約情報長さ(例えば、シンタックスエレメントconstraint_info_length[i])は、制約情報(例えば、一般制約情報シンタックス構造)における制約情報グループi(iは正の整数である)の制約フラグの提示を支援することができる。一例では、制約情報オフセット(例えば、シンタックスエレメントconstraint_info_offset[i])の値が5に等しく、制約情報長さ(例えば、シンタックスエレメントconstraint_info_length[i])の値が3に等しい場合、第5、第6及び第7の制約フラグは制約情報グループiに関連付けられ、制約情報(例えば、一般制約情報シンタックス構造)に存在する。
【0154】
一例では、ランレングスコーディングが、所定の順序(又は所与の順序)で指定された制約フラグをコーディングするために使用できる。
【0155】
一実施形態では、制約フラグが所定の順序(又は所与の順序)で指定された場合、ランコーディングが使用できる。制約フラグを直接コーディングする代わりに、「スキップ」値の適切にコーディングされたリストが、0に等しい制約フラグを示すことができ、以降の制約フラグは1に等しいことを意味する。上記のランコーディングは、(i)制約フラグの数が多く、(ii)わずかな割合の制約フラグが1に等しい場合に特に効率的になり得る。
【0156】
一実施形態では、少なくとも1つの制約情報グループのうち1つ以上が、符号化ビデオビットストリームに存在する。少なくとも1つの制約情報グループのうち1つ以上における複数の制約フラグは、所定の順序に従って信号伝達される。したがって、複数の制約フラグはランコーディング(例えば、ラン符号化又はラン復号)できる。さらに、複数の制約フラグに基づいて、符号化ブロックのサブセットの予測情報が決定できる。
【0157】
一実施形態では、ゲートフラグの制約情報グループ内の少なくとも1つの制約フラグは、所定の順序に従って信号伝達される複数の制約フラグを含む。したがって、複数の制約フラグがランコーディング(例えば、ラン符号化又はラン復号)できる。
【0158】
一実施形態では、制約フラグの完全なリストがビデオ符号化標準(例えば、VVC仕様)、外部テーブル等で指定できる。一例では、制約フラグの利用可能な制約フラグのみが示され、例えば、利用可能な制約フラグの数(例えば、num_available_constraint_flags)、ゲートフラグ(又は制約グループ存在フラグ)、制約情報オフセット情報及び制約情報長さ情報等が符号化ビデオストリームに存在する。
【0159】
一例では、制約フラグの完全なリストが指定され、エンコーダ及びデコーダに利用可能になる。制約フラグの完全なリストはデコーダに記憶できる。制約フラグの完全なリストは100個の制約フラグを含むことができる。100個の制約フラグのうち10個は、CLVSの制約情報に存在し、したがって、CLVS内の符号化ブロックのサブセットに利用可能である。100個の制約フラグのうち10個は、10個の利用可能な制約フラグと呼ばれる。一例では、利用可能な制約フラグの数(例えば、10)が信号伝達される。一例では、10個の利用可能な制約フラグは、2つの制約情報グループにあり、第1のゲートフラグ及び第2のゲートフラグによってゲート制御される。したがって、第1のゲートフラグ及び第2のゲートフラグは、10個の利用可能な制約フラグを示すために信号伝達されることができる。
【0160】
一例では、第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番目の制約フラグが制約情報において利用可能であるか或いは存在することを示す。
【0161】
一実施形態では、適切な制御情報を使用して、制約フラグを効率的に符号化するための様々な技術(又は方法、実施形態、例)のいずれかが組み合わされることができる。組み合わせは、このような技術のうち2つ以上の適切な組み合わせでもよい。或いは、様々な技術(又は方法、実施形態、例)の1つが単独で使用できる。制約フラグはグループ化できる。特定のグループでは、ランコーディングが使用でき、他のグループは単純なバイナリコーディングを使用してもよい。
【0162】
制約フラグの最大数(例えば、MaxNumConstraintFlags)の値は、16、32、64、128等になるように予め定義できる。
【0163】
制約フラグの最大数(例えば、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の範囲とすることができる。
【0164】
一実施形態では、制約フラグの数(例えば、num_available_constraint_flags)の値は、general_profile_idc若しくはgeneral_sub_profile_idcのようなプロファイル情報又はコーデックバージョン情報によって予め定義された値と等しいと推定でき、その結果、num_available_constraint_flagsの値は明示的な信号伝達なしに決定できる。
【0165】
いくつかの実施形態では、予約バイト(reserved byte)情報が一般制約情報シンタックス構造に存在することができる。例えば、
図13に示すように、フラグgci_num_reserved_bytes(1303)及びgci_reserved_bytes[](1304)は、一般制約情報シンタックス構造の拡張のために一般制約情報シンタックス構造に存在することができる。フラグgci_num_reserved_bytesは、予約制約バイト数を指定できる。一例では、予約制約バイトは更なるフラグ(例えば、更なる制約フラグ)を信号伝達するためのものである。フラグgci_reserved_byte[]は任意の適切な値を有してもよい。
【0166】
一実施形態では、gci_num_reserved_bytesの値は、general_profile_idc若しくはgeneral_sub_profile_idcのようなプロファイル情報又はコーデックバージョン情報によって制限又は決定されてもよい。ベースプロファイル(又はメインプロファイル)では、フラグgci_num_reserved_bytesの値は0にすることができる。拡張プロファイル(又は高度プロファイル)では、gci_num_reserved_bytesの値は0よりも大きくすることができる。
【0167】
いくつかの実施形態では、フィールドシーケンスフラグが符号化ビデオビットストリームで信号伝達されることができる。フィールドシーケンスフラグは、出力レイヤ内のピクチャがフィールドコーディングでコーディングされているか否かを示すことができる。いくつかの例では、フィールドシーケンスフラグは、シンタックスエレメントsps_field_seq_flagを使用してSPSで信号伝達されることができる。一実施形態では、フラグsps_field_seq_flagはSPSに存在してもよい。1に等しいフラグsps_field_seq_flagは、CLVSがフィールドを表すピクチャを伝えることを示すことができる。0に等しいフラグsps_field_seq_flagは、CLVSがフレームを表すピクチャを伝えることを示すことができる。
【0168】
図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つのレイヤ内にあることができる。
【0169】
フラグgeneral_frame_only_constraint_flagが1に等しい場合、フラグsps_field_seq_flagの値は0に等しくてもよい。
【0170】
一実施形態では、フラグpps_mixed_nalu_types_in_pic_flagがPPSに存在してもよい。1に等しいフラグpps_mixed_nalu_types_in_pic_flagは、PPSを参照する各ピクチャが1つより多くの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は、このような制約を課さない。
【0171】
一実施形態では、フラグgeneral_one_picture_only_constraint_flagは、
図13に示すような一般制約情報シンタックス構造に存在してもよい。1に等しいgeneral_one_picture_only_constraint_flagは、ビットストリーム内に1つのみの符号化ピクチャが存在することを指定できる。0に等しいフラグgeneral_one_picture_only_constraint_flagは、このような制約を課さない。
【0172】
一実施形態では、フラグ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に等しくてもよい。
【0173】
一実施形態では、フラグ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に等しくてもよい。
【0174】
一実施形態では、フラグ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に等しくてもよい。
【0175】
一実施形態では、フラグ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に等しくてもよい。
【0176】
一実施形態では、フラグno_trail_constraint_flagは、
図13における一般制約情報シンタックス構造に存在してもよい。1に等しいフラグno_trail_constraint_flagは、TRAIL_NUTに等しいnuh_unit_typeを有するNALユニットがOlsInScopeに存在しなくてもよいことを指定できる(OlsInScopeは、DPSを参照する全体のビットストリームの全てのレイヤを含む出力レイヤセットである)。0に等しいフラグno_trail_constraint_flagは、このような制約を課さない。フラグgeneral_one_picture_only_constraint_flagが1に等しい場合、フラグno_trail_constraint_flagは1に等しくてもよい。
【0177】
一実施形態では、フラグno_stsa_constraint_flagは、
図13における一般制約情報シンタックス構造に存在してもよい。1に等しいフラグno_stsa_constraint_flagは、STSA_NUTに等しいnuh_unit_typeを有するNALユニットがOlsInScopeに存在しなくてもよいことを指定できる。0に等しいフラグno_stsa_constraint_flagは、このような制約を課さない。フラグgeneral_one_picture_only_constraint_flagが1に等しい場合、フラグno_stsa_constraint_flagは1に等しくてもよい。
【0178】
一実施形態では、フラグno_trail_constraint_flagは、
図13における一般制約情報シンタックス構造に存在してもよい。1に等しいフラグno_trail_constraint_flagは、TRAIL_NUTに等しいnuh_unit_typeを有するNALユニットがOlsInScopeに存在しなくてもよいことを指定できる。0に等しいフラグno_trail_constraint_flagは、このような制約を課さない。フラグgeneral_one_picture_only_constraint_flagが1に等しい場合、フラグno_trail_constraint_flagは1に等しくてもよい。
【0179】
一実施形態では、フラグno_stsa_constraint_flagは、
図13における一般制約情報シンタックス構造に存在してもよい。1に等しいフラグno_stsa_constraint_flagは、STSA_NUTに等しいnuh_unit_typeを有するNALユニットがOlsInScopeに存在しなくてもよいことを指定できる。0に等しいフラグno_stsa_constraint_flagは、このような制約を課さない。フラグgeneral_one_picture_only_constraint_flagが1に等しい場合、フラグno_stsa_constraint_flagは1に等しくてもよい。
【0180】
一実施形態では、フラグno_idr_constraint_flagは、
図13に示すような一般制約情報シンタックス構造に存在してもよい。1に等しいno_idr_constraint_flagは、IDR_W_RADL又はIDR_N_LPに等しいnuh_unit_typeを有するNALユニットがOlsInScopeに存在しなくてもよいことを指定できる。0に等しいフラグno_idr_constraint_flagは、このような制約を課さない。
【0181】
一実施形態では、フラグno_cra_constraint_flagは、
図13に示すような一般制約情報シンタックス構造に存在してもよい。1に等しいフラグno_cra_constraint_flagは、CRA_NUTに等しいnuh_unit_typeを有するNALユニットがOlsInScopeに存在しなくてもよいことを指定できる。0に等しいフラグno_cra_constraint_flagは、このような制約を課さない。
【0182】
一実施形態では、フラグno_rasl_constraint_flagは、
図13における一般制約情報シンタックス構造に存在してもよい(フラグno_rasl_constraint_flagは図示されていない)。1に等しいフラグno_rasl_constraint_flagは、RASL_NUTに等しいnuh_unit_typeを有するNALユニットがOlsInScopeに存在しなくてもよいことを指定できる。0に等しいフラグno_rasl_constraint_flagは、このような制約を課さない。フラグno_cra_constraint_flagが1に等しい場合、フラグno_rasl_constraint_flagの値は1に等しくてもよい。
【0183】
一実施形態では、フラグno_radl_constraint_flagは、
図13に示すような一般制約情報シンタックス構造に存在してもよい。1に等しいフラグno_radl_constraint_flagは、RADL_NUTに等しいnuh_unit_typeを有するNALユニットがOlsInScopeに存在しなくてもよいことを指定できる。0に等しいフラグno_radl_constraint_flagは、このような制約を課さない。フラグno_idr_constraint_flagが1に等しく、フラグno_cra_constraint_flagが1に等しい場合、フラグno_rasl_constraint_flagの値は1に等しくてもよい。
【0184】
本開示のいくつかの側面は、持続的ライス適応(persistent Rice adaptation)による範囲拡張(例えば、残差コーディングにおける統計ベースのライスパラメータ導出のためのコーディングツールを含む範囲拡張)のような、範囲拡張のための制約フラグの信号伝達の技術を提供する。
【0185】
本開示の側面によれば、残差コーディングはライスコーディングに基づいて実行できる。ライスコーディングは、調整可能なパラメータを使用して入力値を2つの部分に分割し、次いで異なるコーディング技術を使用して2つの部分をコーディングする。調整可能なパラメータは、いくつかの例ではライスパラメータと呼ばれる。ライスパラメータは、ライスコーディングの符号化効率に影響を与えることができる。特定のアプリケーションのためのライスパラメータを決定し、特定のアプリケーションの符号化効率を改善するための技術が使用できる。ライスパラメータを決定するいくつかの技術は、ビデオ標準の範囲拡張に含まれてもよい。
【0186】
本開示の側面によれば、いくつかの標準は、もともと特定のアプリケーションのために開発されたものとすることができる。標準を他のアプリケーションに適用可能にするために、範囲拡張は、他のアプリケーションをサポートするツールで開発される。例えば、HEVCは当初、サンプル当たり8~10ビットの4:2:0クロマフォーマットを有するアプリケーションを対象としている。HEVC標準を特定のクロマフォーマット及び特定のビット深度以外の他のフォーマット及びビット深度に適用可能にするために、範囲拡張は、他のクロマフォーマット及び/又はより高いビット深度を使用するアプリケーションをサポートするように開発できる。
【0187】
機能セットを特定のアプリケーションのグループに必要なものに制限するために、ビデオ符号化標準はプロファイルを定義しており、プロファイルは、これらの機能を使用するエンコーダとの相互運用性のためにサポートされるべき定義済みのデコーダ機能セットを含むことができる。例えば、プロファイルは、適合するビットストリームを生成する際に使用できるコーディングツール又はアルゴリズムのセットを定義できる。プロファイルに加えて、いくつかの標準(例えば、VVC、HEVC等)もレベル及び層を定義する。レベルは、空間解像度、ピクセルレート、ビットレート値、並びにデコーダの処理負荷及びメモリ能力に対応し得る変動に関連するビットストリームに対する制限を課す。レベル制限は、最大サンプルレート、最大ピクチャサイズ、最大ビットレート、最小圧縮比、符号化ピクチャバッファの能力等によって表されることができる。レベルの値が高いほど、複雑さの制限が高いものに対応させることができる。層は、レベル毎のビットレート値及び変動制限を変更する。例えば、Main層はほとんどのアプリケーションを対象としており、High層は、ビデオ配信アプリケーションよりも大幅に高いビットレート値を有するもののような、より要求の厳しいビデオ貢献アプリケーションに対応するように設計される。プロファイル、層及びレベルのそれぞれは、実装及び復号の複雑さに影響を与え、3つの組み合わせがビットストリーム及びデコーダの相互運用性ポイントを指定する。
【0188】
いくつかの例では、特定の層及びレベルに準拠するデコーダは、そのレベル又はその下の任意のレベルの同じ層又は下位の層に準拠する全てのビットストリームを復号できる必要があり、特定のプロファイルに準拠するデコーダはそのプロファイルにおける全ての機能をサポートできる。いくつかの例では、エンコーダは、プロファイルでサポートされているいずれか特定の機能のセットを使用する必要はないが、準拠するビットストリーム、すなわち、準拠するデコーダによって復号できる指定の制約に従うビットストリームを生成する必要がある。
【0189】
PTL情報に加えて、PTLシンタックス構造はまた、ビットストリームの特定の制約プロパティを示す制約フラグ及び非フラグシンタックスエレメントのリストを含む一般制約情報(GCI, general constraints information)シンタックス構造も含んでもよい。
【0190】
一例では、HEVCは当初からMainプロファイル、Main 10プロファイル、Main Still Pictureプロファイルと呼ばれる3つのプロファイルを含んでいる。3つのプロファイルは、4:2:0クロマサンプリングのみのサポートのように、いくつかの制限を有する。Mainプロファイル及びMain Still Pictureプロファイルでは、サンプル当たり8ビットのビデオ精度のみがサポートされており、Main 10プロファイルではサンプル当たり最大で10ビットがサポートされている。Main Still Pictureプロファイルでは、全体のビットストリームは1つのみの符号化ピクチャを含む。
【0191】
いくつかの例では、範囲拡張を有するHEVCは更なるプロファイルをサポートできる。一例では、Monochromeプロファイル、Monochrome 10プロファイル、Monochrome 12プロファイル、Monochrome 16プロファイル、Main 12プロファイル、Main 4:2:2 10プロファイル、Main 4:2:2 12プロファイル、Main 4:4:4プロファイル、Main 4:4:4 10プロファイル、Main 4:4:4 12プロファイル、Main Intraプロファイル、Main 10 Intraプロファイル、Main 12 Intraプロファイル、Main 4:2:2 10 Intraプロファイル、Main 4:2:2 12 Intraプロファイル、Main 4:4:4 Intraプロファイル、Main 4:4:4 10 Intraプロファイル、Main 4:4:4 12 Intraプロファイル、Main 4:4:4 16 Intraプロファイル、Main 4:4:4 Still Pictureプロファイル及びMain 4:4:4 16 Still Picture profileが、併せて範囲拡張プロファイルと呼ばれる。
【0192】
範囲拡張プロファイルのいくつかは、より高いビット深度をサポートでき、高いビット深度を有する動作範囲拡張のためのプロファイルと呼ばれることができる。いくつかの例では、高いビット深度を有する動作範囲拡張のためのプロファイルは、Main 12プロファイル、Main 12 4:4:4プロファイル、Main 16 4:4:4プロファイル、Main 12 Intraプロファイル、Main 12 4:4:4 Intraプロファイル、Main 16 4:4:4 Intraプロファイル、Main 12 Still Pictureプロファイル、Main 12 4:4:4 Still Pictureプロファイル、Main 16 4:4:4 Still Pictureプロファイル等のように、サンプル当たり10ビットより多くをサポートするプロファイルを含む。
【0193】
具体的には、Main 12プロファイルは、4:0:0及び4:2:0クロマサンプリング、イントラ予測モード及びインター予測モードの双方をサポートして、サンプル当たり8ビットから12ビットのビット深度を可能にする。いくつかの例では、Main 12プロファイルに準拠するデコーダは、Monochrome、Monochrome 12、Main、Main 10及びMain 12のプロファイルで作成されたビットストリームを復号できる。
【0194】
Main 12 4:4:4プロファイルは、4:0:0、4:2:0、4:2:2及び4:4:4クロマサンプリングと、イントラ予測モード及びインター予測モードの双方とをサポートして、サンプル当たり8ビットから12ビットのビット深度を可能にする。いくつかの例では、Main 12 4:4:4プロファイルに準拠するデコーダは、Monochrome、Main、Main 10、Main 12、Main 10 4:2:2、Main 12 4:2:2、Main 4:4:4、Main 10 4:4:4、Main 12 4:4:4及びMonochrome 12のプロファイルで作成されたビットストリームを復号できる。
【0195】
Main 16 4:4:4プロファイルは、4:0:0、4:2:0、4:2:2及び4:4:4クロマサンプリングと、イントラ予測モード及びインター予測モードの双方とをサポートして、サンプル当たり8ビットから16ビットのビット深度を可能にする。
【0196】
Main 12 Intraプロファイルは、4:0:0及び4:2:0クロマサンプリングと、イントラ予測モードとをサポートして、サンプル当たり8ビットから12ビットのビット深度を可能にする。
【0197】
Main 12 4:4:4 Intraプロファイルは、4:0:0、4:2:0、4:2:2及び4:4:4クロマサンプリングと、イントラ予測モードとをサポートして、サンプル当たり8ビットから12ビットのビット深度を可能にする。
【0198】
Main 16 4:4:4 Intraプロファイルは、4:0:0、4:2:0、4:2:2及び4:4:4クロマサンプリングと、イントラ予測モードとをサポートして、サンプル当たり8ビットから16ビットのビット深度を可能にする。
【0199】
Main 12 Still Pictureプロファイルは、4:0:0及び4:2:0クロマサンプリングをサポートして、サンプル当たり8ビットから12ビットのビット深度を可能にする。Main 12 Still Pictureプロファイルでは、全体のビットストリームは1つのみの符号化ピクチャを含む。
【0200】
Main 12 4:4:4 Still Pictureプロファイルは、4:0:0、4:2:0、4:2:2及び4:4:4クロマサンプリングをサポートして、サンプル当たり8ビットから12ビットのビット深度を可能にする。Main 12 4:4:4 Still Pictureプロファイルでは、全体のビットストリームは1つのみの符号化ピクチャを含む。
【0201】
Main 16 4:4:4 Still Pictureプロファイルは、4:0:0、4:2:0、4:2:2及び4:4:4クロマサンプリングをサポートして、サンプル当たり8ビットから16ビットのビット深度を可能にする。Main 16 4:4:4 Still Pictureプロファイルでは、全体のビットストリームは1つのみの符号化ピクチャを含む。
【0202】
本開示のいくつかの側面によれば、コーディングツール制御は、ビットストリームの適用範囲、符号化レイヤビデオシーケンス(CLVS, coded layer video sequence)の適用範囲、ピクチャ、ピクチャのスライス等のように、様々な適用範囲(例えば、コーディングツール制御のためのシンタックスエレメントのインスタンスの持続性によってコーディングされた符号化ビデオデータの一部)で実行できる。いくつかの例では、コーディングツール制御は、出力レイヤセットをデコーダに運ぶビットストリームの制約情報を一般的に含む一般制約情報(GCI, general constraint information)シンタックス構造で提供できる。いくつかの例では、コーディングツール制御はCLVSに関連するシーケンスパラメータセット(SPS, sequence parameter set)で提供でき、SPSは一般的にCLVSのための情報を含む。いくつかの例では、コーディングツール制御はピクチャのピクチャヘッダで提供でき、ピクチャヘッダは一般的にピクチャのための情報を含む。いくつかの例では、コーディングツール制御はスライスのスライスヘッダで提供でき、スライスヘッダは一般的にスライスのための情報を含む。
【0203】
本開示の側面によれば、範囲拡張におけるコーディングツールのための制御情報は様々な適用範囲で提供できる。いくつかの例では、より大きい適用範囲のシンタックスエレメントの使用が、符号化効率を改善し得る。例えば、0よりも大きいGCIシンタックスエレメントの値は、ビットストリームが特定の方法で制約されることを示し、典型的には特定のコーディングツールがビットストリームで使用されていないことを示す。さらに、値0に等しいGCIシンタックスエレメントの値は、関連する制約が適用されなくてもよいことを信号伝達し、その結果、(その使用が指定のプロファイルでサポートされている場合)関連するコーディングツールがビットストリームで使用されることが許可される(ただし、必要ではない)。
【0204】
本開示の別の側面によれば、コーディングツールがビットストリーム内のビデオデータのコーディングにおいて使用されない場合、例えば、PTL情報及び/又は一般制約情報において、コーディングツールの不使用を示す場合、コーディングツールのサポートのないビデオデコーダは、ビデオデコーダがPTL情報及び/又は一般制約情報における信号伝達に基づいてビットストリームを復号できると決定してもよく、ビデオデコーダの機能が拡張できる。
【0205】
いくつかの実施形態では、エンコーダは、範囲拡張を伴うビデオ標準に準拠したビットストリームを生成できるが、範囲拡張でサポートされている1つ以上の機能を利用しない。いくつかの例では、範囲拡張における1つ以上の機能を使用しないという認識で、ビデオ標準に準拠しているが範囲拡張における1つ以上の機能をサポートしないデコーダは、デコーダがビットストリームを復号できると決定してもよく、ビットストリームを拒否する代わりに、復号のためにビットストリームを受け入れてもよい。
【0206】
図16は、本開示のいくつかの実施形態による一般制約情報のシンタックス構造(1600)を示す。いくつかの例では、シンタックス構造(1600)は、デコーダへの出力レイヤセットを含むビットストリームのようなビットストリームに適用される制約を含む。
図16の例では、シンタックス構造(1600)内のgci_num_additional_bitsで示されるシンタックスエレメントは、アライメント0ビットシンタックスエレメント(存在する場合)以外の一般制約情報シンタックス構造(1600)内の更なる一般制約情報(GCI)ビットの数を指定するために使用される。いくつかの標準では、gci_num_additional_bitsの値は0又は1に等しくなる必要がある。いくつかの標準では、デコーダは1より大きいgci_num_additional_bitsの値がシンタックス構造に現れることを許容してもよい。
【0207】
図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)は、それぞれ出力レイヤセットのビットストリームの適用範囲内でコーディングツールのコーディング制御情報を提供する。
【0208】
図17は、本開示のいくつかの実施形態によるシーケンスパラメータセット(SPS, sequence parameter set)範囲拡張のシンタックス構造(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の適用範囲内でコーディングツールのコーディング制御情報を提供する。
【0209】
具体的には、一実施形態では、GCIビット(1601)及びシンタックスエレメント(1701)は、スケーリング及び変換プロセスにおける変換係数のため、また、abs_remainder[]及びdec_abs_level[]のようないくつかのシンタックスエレメントの二値化のための拡張された動的範囲のコーディングツールの制御のように、拡張精度を使用する制御を異なる適用範囲で提供するために使用される。
【0210】
1に等しいシンタックスエレメント(1701)は、拡張された動的範囲がスケーリング及び変換プロセスにおける変換係数のため、また、abs_remainder[]及びdec_abs_level[]等のようないくつかのシンタックスエレメントの二値化のために使用されることを指定する。シンタックスエレメントabs_remainder[スキャン位置n]は、スキャン位置nにおいてGolomb-Rice符号でコーディングされた変換係数レベルの残りの絶対値である。abs_remainder[]が存在しない場合、0に等しいと推定される。シンタックスエレメントdec_abs_level[スキャン位置n]は、スキャン位置nにおいてGolomb-Rice符号でコーディングされた中間値に対応でき、スキャン位置nにおける変換係数のレベルを決定するために使用される。0に等しいシンタックスエレメント(1701)は、拡張された動的範囲がスケーリング及び変換プロセスにおいて使用されず、例えばシンタックスエレメントabs_remainder[]及びdec_abs_level[]等の二値化に使用されないことを指定する。存在しない場合、シンタックスエレメント(1701)の値は0に等しいと推定される。
【0211】
一例では、Log2TransformRangeで示される変数は、スケーリング及び変換プロセスにおける変換係数のため、また、特定のシンタックスエレメントの二値化のための動的範囲を決定するために使用される。例えば、変数Log2TransformRangeは、スケーリング及び変換プロセスにおける変換係数を表すため、また、特定のシンタックスエレメントの二値化のためのビット数とすることができる。動的範囲は、ビット数を使用して表される最大数と最小数との差にすることができる。一例では、変数Log2TransformRangeは、式(1)等を使用して、シンタックスエレメント(1701)sps_extended_precision_flagに従って導出される。
Log2TransformRange=sps_extended_precision_flag?Max(15,Min(20,BitDepth+6)):15 式(1)
【0212】
スケーリング及び変換プロセスにおける変換係数のため、また、特定のシンタックスエレメントの二値化のための動的範囲は、変数Log2TransformRangeに基づいて決定できる。いくつかの例では、フラグsps_extended_precision_flagが値0を有する場合、拡張された動的範囲の機能(例えば、拡張された動的範囲のコーディングツール)は使用されず、変換係数の動的範囲は15ビットのような固定数のビットに基づく。フラグsps_extended_precision_flagが値1を有する場合、拡張された動的範囲の機能が有効化され、スケーリング及び変換処理における変換係数を表すビット数は、式(1)の例におけるビット深度BitDepthに基づいて、15ビット、16ビット、17ビット、18ビット、19ビット及び20ビットの1つにすることができる。変換係数の動的範囲は、ビット数に基づいて決定できる。
【0213】
本開示の側面によれば、シンタックスエレメント(例えば、sps_bitdepth_minus8で示される)は、ルマ及びクロマ配列のサンプルのビット深度(例えば、BitDepthで示される)と、ルマ及びクロマ量子化パラメータ範囲オフセットの値(例えば、QpBdOffsetで示される)とを信号伝達するために使用できる。一例では、ビット深度BitDepthは式(2)に従って計算でき、QP範囲オフセットQpBdOffsetは式(3)に従って計算できる。
BitDepth=8+sps_bitdepth_minus8 式(2)
QpBdOffset=6×sps_bitdepth_minus8 式(3)
【0214】
いくつかの例では、1に等しいGCIビット(1601)は、出力レイヤセットの適用範囲(OlsInScope)内の全てのピクチャのシンタックスエレメント(1701)が0に等しくてもよいことを指定する。0に等しいGCIビット(1601)は、このような制約を課さない。したがって、1に等しいGCIビット(1601)は、ビットストリームのコーディングにおいて拡張された動的範囲を使用しないことを指定できる。
【0215】
いくつかの実施形態では、GCIビット(1602)及びシンタックスエレメント(1702)は、変換スキップモードにおける残差コーディングのためのスライスベースのライスパラメータの選択のような、変換スキップモードにおける残差コーディングのためのスライスベースのライスコーディングのコーディングツールの制御を、異なる適用範囲で提供するために使用される。
【0216】
本開示の側面によれば、変換スキップ残差コーディングのためのスライスベースのライスパラメータの選択は、ビデオ標準の範囲拡張に含まれることができる。いくつかの例では、
図17に示すように、変換スキップモードが有効化されている場合(例えば、シンタックスエレメントsps_transform_skip_enabled_flagがtrueである場合)、1つの制御フラグ(例えば、sps_ts_residual_coding_rice_present_in_sh_flagのシンタックスエレメント(1702)で示される)がシーケンスパラメータセット(SPS)で信号伝達され、変換スキップスライスのライスパラメータの信号伝達が有効化又は無効化されていることを示す。
【0217】
制御フラグが有効として信号伝達される場合(例えば「1」に等しい場合)、変換スキップスライス毎に1つのシンタックスエレメント(例えば、sh_ts_residual_coding_rice_idx_minus1で示される)が、例えばスライスヘッダで更に信号伝達され、その変換スキップスライスのライスパラメータの選択を示す。制御フラグが無効として信号伝達される場合(例えば「0」に等しい場合)、変換スキップスライスのライスパラメータの選択を示すためにスライスレベル(例えば、スライスヘッダ)で更なるシンタックスエレメントは信号伝達されず、一例では、SPSを参照する符号化ビデオデータ内の全ての変換スキップスライスについてデフォルトのライスパラメータが使用されてもよい。
【0218】
例えば、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に等しいと推定される。
【0219】
いくつかの例では、出力レイヤセットの適用範囲内で、変換スキップモードにおける残差コーディングについてのスライスベースのライスコーディングのコーディングツールの使用を制御するために、シンタックスエレメントが一般制約情報に含まれることができる。例えば、1に等しいシンタックスエレメント(1602)は、出力レイヤセットの適用範囲(OlsInScope)内の全てのピクチャのシンタックスエレメント(1702)が0に等しくてもよいことを指定する。0に等しいシンタックスエレメント(1602)は、このような制約を課さない。したがって、いくつかの例では、ビットストリームにおいて1に等しいGCIビット(1602)は、ビットストリームをコーディングするための変換スキップ残差コーディングのためにスライスベースのライスパラメータの選択を使用しないことを指定できる。
【0220】
いくつかの実施形態では、GCIビット(1603)及びシンタックスエレメント(1703)は、正規残差コーディング(RRC, regular residual coding)におけるabs_remainder[]及びdec_abs_level[]のようないくつかのシンタックスエレメントの二値化のために、ライスパラメータ導出のための1つ以上のコーディングツールの制御を、異なる適用範囲で提供するために使用される。いくつかの例では、正規残差コーディング(RRC)は、変換及び量子化によって取得される符号化ブロックのためのいくつかの技術を示す。いくつかの例では、量子化のみによって取得されるブロックのためにRRCが変更されることができる。いくつかの例では、変換スキップ残差コーディング(TSRC, transform skip residual coding)は、変換をバイパスして取得される符号化ブロックに専用のいくつかの技術を示す(変換スキップとも呼ばれる)。
【0221】
いくつかの例では、ビデオ符号化標準は、abs_remainder[]及びdec_abs_level[]のようないくつかのシンタックスエレメントの二値化のために、ライスパラメータ導出のための1つ以上のコーディングツールを含んでもよく、ビデオ符号化標準の範囲拡張は、abs_remainder[]及びdec_abs_level[]のようないくつかのシンタックスエレメントの二値化のために、ライスパラメータ導出のための1つ以上の代替コーディングツールを含むことができる。
【0222】
いくつかの例では、ビデオ標準は、ライスパラメータ導出のためにローカルテンプレートベースの技術を使用する。例えば、1つ以上(例えば、一例では5つ)の隣接係数レベルを含むテンプレートが、ライスパラメータ導出のために使用される。例えば、テンプレート内の絶対係数値の和が計算でき、次いで、その和に基づいてライスパラメータが決定できる。一例では、その和に基づいてライスパラメータを決定するために、ルックアップテーブルが使用できる。
【0223】
ライスパラメータは、他の適切なコーディングツールによって決定できることに注意しておく。一例では、その和に基づいてライスパラメータを決定するために、式が使用できる。別の例では、隣接係数レベルの統計に基づいてライスパラメータを決定するために、コンテキストモデリングが使用できる。いくつかの例では、ビデオ標準の範囲拡張は、ライスパラメータ導出のための1つ以上の代替コーディングツールを指定できる。
【0224】
いくつかの例では、ビデオ標準の範囲拡張は、他のシナリオで使用するためのRRCの変更を含むことができる。一例では、範囲拡張は、異なるコンテキストモデリングツールと、変換スキップモードにおける残差コーディングのための残差信号回転ツールとを含むことができる。
【0225】
いくつかの例では、1に等しいSPS内のシンタックスエレメント(1703)は、abs_remainder[]及びdec_abs_level[]の二値化のための代替ライスパラメータ導出(例えば、範囲拡張におけるライスパラメータ導出のための代替コーディングツール)が、SPSを参照するCLVSをコーディングするために使用されることを指定する。0に等しいシンタックスエレメント(1703)は、abs_remainder[]及びdec_abs_level[]の二値化のための代替ライスパラメータ導出が、SPSを参照するCLVSをコーディングするために使用されないことを指定する。存在しない場合、シンタックスエレメント(1703)の値は0に等しいと推定される。
【0226】
いくつかの例では、1に等しいシンタックスエレメント(1603)は、出力レイヤセットの適用範囲(OlsInScope)内の全てのピクチャのシンタックスエレメント(1703)が0に等しくてもよいことを指定する。0に等しいシンタックスエレメント(1603)は、このような制約を課さない。したがって、いくつかの例では、1に等しいGCIビット(1603)は、ビットストリームをコーディングするためのabs_remainder[]及びdec_abs_level[]の二値化のために、代替ライスパラメータ導出(例えば、指定の範囲拡張で指定されるライスパラメータ導出のための代替コーディングツール)を使用しないことを指定できる。
【0227】
いくつかの実施形態では、GCIビット(1604)及びシンタックスエレメント(1704)は、abs_remainder[]及びdec_abs_level[]の二値化のために、統計ベースのライスパラメータ導出の制御を、異なる適用範囲で提供する。
【0228】
本開示の側面によれば、abs_remainder[]及びdec_abs_level[]の二値化のためのライスパラメータ導出は、以前のTUから蓄積された統計を使用して、各変換ユニット(TU, transform unit)の開始時に初期化できる。いくつかの例では、統計ベースのライスパラメータ導出は、ビデオ標準の範囲拡張に含まれることができる。
【0229】
いくつかの例では、制御フラグ、例えば、SPS内のsps_persistent_rice_adaptation_enabled_flagで示されるシンタックスエレメント(1704)は、統計ベースのライスパラメータ導出を制御するために使用される。例えば、SPS内で1に等しいシンタックスエレメント(1704)は、abs_remainder[]及びdec_abs_level[]の二値化のためのライスパラメータ導出が、以前のTUから蓄積された統計を使用して各TUの開始時に初期化されることを指定する。0に等しいシンタックスエレメント(1704)は、現在TUのライスパラメータ導出において以前のTU状態が使用されないことを指定する。存在しない場合、シンタックス(1704)の値は0に等しいと推定される。
【0230】
さらに、一実施形態では、1に等しいシンタックスエレメント(1604)は、出力レイヤセットの適用範囲(OlsInScope)内の全てのピクチャのシンタックスエレメント(1704)が0に等しくてもよいことを指定する。0に等しいシンタックスエレメント(1604)は、このような制約を課さない。したがって、いくつかの例では、1に等しいGCIビット(1604)は、ビットストリームのコーディングのために統計ベースのライスパラメータ導出を使用しないことを指定できる。
【0231】
いくつかの実施形態では、GCIビット(1605)及びシンタックスエレメント(1705)は、変換係数のエントロピーコーディング中に最後の有意係数の位置をコーディングするために使用されるコーディングツールの制御を、異なる適用範囲で提供するために使用される。一例では、最後の有意係数の位置は異なるコーディングツールによってコーディングできる。例えば、ビデオ標準は、LastSignificantCoeffX変数及びLastSignificantCoeffY変数によって示される位置の2つの座標をコーディングすることによって、最後の有意係数の位置を決定できる第1のコーディングツールを指定してもよい。また、一例では、ビデオ標準の範囲拡張は、ゼロアウト変換ブロックの右下角を参照して最後の有意係数の相対座標をコーディングすることによって、最後の有意係数の位置を決定できる第2のコーディングツールのような、代替コーディングツールを指定できる。
【0232】
いくつかの例では、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に等しいと推定される。
【0233】
いくつかの例では、スライスのスライスヘッダフラグsh_reverse_last_sig_coeff_flagの値は、スライスのコーディングにおけるスケーリング及び変換プロセスでの変換係数の最後の有意係数の位置導出を決定するために使用される。一例では、sh_reverse_last_sig_coeff_flagが1に等しい場合、最後の有意係数の位置は、第2のコーディングツールのような、ビデオ標準の範囲拡張における代替コーディングツールによってコーディングされる。そうでない場合、最後の有意係数の位置の現在の座標は、第1のコーディングツールによってコーディングされる。
【0234】
いくつかの例では、1に等しいGCIビット(1605)は、出力レイヤセットの適用範囲(OlsInScope)内の全てのピクチャのシンタックスエレメント(1705)が0に等しくてもよいことを指定する。0に等しいGCIビット(1605)は、このような制約を課さない。したがって、1に等しいGCIビット(1605)は、ビットストリームの範囲の最後の有意係数の位置導出において、第2のコーディングツールを使用しないことを指定できる。
【0235】
図18は、本開示の一実施形態によるプロセス(1800)の概要を示すフローチャートを示す。プロセス(1800)は、ビデオデコーダにおいて使用できる。様々な実施形態では、プロセス(1800)は、端末デバイス(310)、(320)、(330)及び(340)における処理回路、ビデオデコーダ(410)の機能を実行する処理回路、ビデオデコーダ(510)の機能を実行する処理回路等のような処理回路によって実行される。いくつかの実施形態では、プロセス(1800)はソフトウェア命令で実装され、したがって、処理回路がソフトウェア命令を実行すると、処理回路はプロセス(1800)を実行する。プロセスは(S1801)で始まり、(S1810)に進む。
【0236】
(S1810)において、ビットストリーム内の符号化ビデオデータの第1の適用範囲(例えば、出力レイヤセット)内のコーディング制御のための第1のシンタックスエレメント(例えば、general_no_persistent_rice_adaptation_constraint_flag)が決定される。第1のシンタックスエレメントは、残差コーディングにおける統計ベースのライスパラメータ導出のためのビデオ標準の範囲拡張で定義された持続的ライス適応のコーディングツールのような、残差コーディングにおける統計ベースのライスパラメータ導出のためのコーディングツールに関連する。
【0237】
一例では、シンタックス構造内のシンタックスエレメント(例えば、gci_num_additional_bits)がシンタックス構造内の一般制約情報のための更なるビットを示すことに応じて、第1のシンタックスエレメントは、一般制約情報のシンタックス構造から復号される。
【0238】
いくつかの例では、コーディングツールは標準の範囲拡張で定義される。一例では、ビデオデコーダは標準をサポートしてもよいが、標準の範囲拡張におけるコーディングツールをサポートしなくてもよい。別の例では、ビデオデコーダは標準の範囲拡張をサポートする。
【0239】
(S1820)において、第1のシンタックスエレメントが第1の値である場合、プロセスは(1830)に進み、そうでない場合、プロセスは(S1840)に進む。第1の値は、符号化ビデオデータの1つ以上の第2の適用範囲(例えば、出力レイヤセット内の1つ以上のCLVS)を含むビットストリーム内の符号化ビデオデータの第1の適用範囲のコーディングにおいてコーディングツールの不使用を示す。
【0240】
いくつかの例では、第1のシンタックスエレメントは、デコーダにおいて出力される出力レイヤセット内のピクチャのコーディング制御のための一般制約情報にある。一例では、第1のシンタックスエレメントの第1の値は、出力レイヤセット内の各符号化レイヤビデオシーケンス(CLVS, coded layer video sequen)のコーディングにおいてコーディングツールの不使用を示す。
【0241】
(S1830)において、第1のシンタックスエレメントが第1の値であることに応じて、ビットストリーム内の符号化ビデオデータの第1の適用範囲がコーディングツールを呼び出さずに復号される。
【0242】
いくつかの例では、ビットストリーム内の符号化レイヤビデオシーケンス(CLVS, coded layer video sequence)のコーディング制御のための第2のシンタックスエレメント(例えば、sps_persistent_rice_adaptation_enabled_flag)は、CLVSを復号するためのコーディングツールを呼び出さないことを示す値を有するように制約される。
【0243】
(S1840)において、第1のシンタックスエレメントが第2の値であることに応じて、ビットストリーム内の符号化レイヤビデオシーケンス(CLVS)のような符号化ビデオデータの第2の適用範囲のコーディング制御のための第2のシンタックスエレメント(例えば、sps_extended_precision_flag)の値が、第2の適用範囲内の符号化ビデオデータの復号のために決定される。第2のシンタックスエレメントは、CLVS内のコーディングツールの使用/不使用を示す。一例では、第2のシンタックスエレメントがCLVSのシーケンスパラメータセット(SPS, sequence parameter set)に示されない場合、第2のシンタックスエレメントの値は、CLVS内のコーディングツールの不使用を示すように推定される。
【0244】
次いで、符号化ビデオデータの第2の適用範囲が、第2のシンタックスエレメントの値に従って(例えば、コーディングツールを呼び出して或いは呼び出さずに)復号される。いくつかの例では、シンタックスエレメントの値がCLVSにおけるコーディングツールの使用を示すことに応じて、第2の適用範囲内のビデオデータの復号中にコーディングツールが呼び出される。例えば、現在変換ユニットの前に1つ以上の変換ユニットから復号された係数の統計が決定できる。現在変換ユニットのライスパラメータの初期値は、統計に基づいて決定される。次いで、現在変換ユニットの係数はライスパラメータに基づいて復号できる。
【0245】
プロセス(1800)は適切に適応できる。プロセス(1800)におけるステップは変更及び/又は省略できる。更なるステップが追加できる。任意の適切な実装順序が使用できる。
【0246】
図19は、本開示の一実施形態によるプロセス(1900)の概要を示すフローチャートを示す。プロセス(1900)は、ビデオエンコーダにおいて使用できる。様々な実施形態では、プロセス(1900)は、端末デバイス(310)、(320)、(330)及び(340)における処理回路、ビデオエンコーダ(403)の機能を実行する処理回路、ビデオエンコーダ(603)の機能を実行する処理回路、ビデオエンコーダ(703)の機能を実行する処理回路等のような処理回路によって実行される。いくつかの実施形態では、プロセス(1900)はソフトウェア命令で実装され、したがって、処理回路がソフトウェア命令を実行すると、処理回路はプロセス(1900)を実行する。プロセスは(S1901)で始まり、(S1910)に進む。
【0247】
(S1910)において、処理回路は、ビットストリーム内の符号化ビデオデータの第1の適用範囲(例えば、出力レイヤセット)の符号化中に、残差コーディングにおける統計ベースのライスパラメータ導出のためのコーディングツール(例えば、残差コーディングにおける統計ベースのライスパラメータ導出のためのビデオ標準の範囲拡張で定義された持続的ライス適応のコーディングツール)が使用されるか否かを決定する。符号化ビデオデータの第1の適用範囲は、符号化ビデオデータの1つ以上の第2の適用範囲(例えば、CLVS)を含む。
【0248】
いくつかの例では、処理回路は、ビットストリーム内の符号化レイヤビデオシーケンス(CLVS)のコーディング制御のための第2のシンタックスエレメント(例えば、sps_persistent_rice_adaptation_enabled_flag)に基づいて、コーディングツールが使用されるか否かを決定できる。
【0249】
(S1920)において、コーディングツールが符号化ビデオデータの第1の適用範囲のコーディングにおいて使用されない場合、処理は(S1930)に進み、そうでない場合、処理は(S1940)に進む。
【0250】
(S1930)において、第1の値を有する第1のシンタックスエレメント(例えば、general_no_persistent_rice_adaptation_constraint_flag)がビットストリームに符号化される。第1のシンタックスエレメントは、ビットストリーム内の符号化ビデオデータの第1の適用範囲(例えば、出力レイヤセット)におけるコーディング制御のためのものである。第1のシンタックスエレメントは、残差コーディングにおける統計ベースのライスパラメータ導出のためのコーディングツールに関連する。第1の値は、符号化ビデオデータの第1の適用範囲のコーディングにおけるコーディングツールの不使用を示す。
【0251】
一例では、第1のシンタックスエレメントは一般制約情報のためのシンタックス構造に符号化され、シンタックス構造内のシンタックスエレメント(例えば、gci_num_additional_bits)は、シンタックス構造内の一般制約情報のための更なるビットを示すように調整される。
【0252】
(S1940)において、第2の値を有する第1のシンタックスエレメントがビットストリームに符号化される。いくつかの例では、第1のシンタックスエレメントがビットストリームに符号化されず、例えば、第2の値が第1のシンタックスエレメントのデフォルト値である場合、第1のシンタックスエレメントが示されない場合に推定でき、その場合、(S1940)はスキップできる。
【0253】
プロセス(1900)は適切に適応できる。プロセス(1900)におけるステップは変更及び/又は省略できる。更なるステップが追加できる。任意の適切な実装順序が使用できる。
【0254】
上述の技術(例えば、制約フラグを信号伝達するための技術、適応解像度パラメータ等)は、コンピュータ読み取り可能な命令を用いてコンピュータソフトウェアとして実装することができ、1つ以上のコンピュータ読み取り可能な媒体に物理的に記憶されることができる。例えば、
図20は、開示された主題の特定の実施形態を実施するのに好適なコンピュータシステム(2000)を示す。
【0255】
コンピュータソフトウェアは、任意の好適な機械コード又はコンピュータ言語を用いてコーディングされることができ、アセンブリ、コンパイル、リンク、又は同様の機構の対象とされて、1つ以上のコンピュータ中央処理ユニット(CPU)、グラフィックス処理ユニット(GPU)等によって、直接的に、又はインタープリット、マイクロコード実行等を通じて実行可能な命令を含むコードを作成することができる。
【0256】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、モノのインターネットデバイス等を含む様々なタイプのコンピュータ又はそのコンポーネント上で実行されることができる。
【0257】
コンピュータシステム(2000)について
図20に示されるコンポーネントは、例としての性質であり、本開示の実施形態を実装するコンピュータソフトウェアの使用又は機能の範囲に関する制限を示唆することを意図したものではない。コンポーネントの構成も、コンピュータシステム(2000)の例示的実施形態において示されているコンポーネントの任意の1つ又は組み合わせに関する何らかの依存性又は要件を有するものとして解釈されるべきではない。
【0258】
コンピュータシステム(2000)は、特定のヒューマンインターフェース入力デバイスを含むことができる。そのようなヒューマンインターフェース入力デバイスは、例えば、触覚入力(例えば、キーストローク、スワイプ、データグローブの動き)、音声入力(例えば、声、拍手)、視覚入力(例えば、ジェスチャー)、嗅覚入力(図示せず)を通じた一又は複数の人間ユーザによる入力に応答することができる。また、ヒューマンインターフェースデバイスは、音声(例えば、発話、音楽、周囲の音)、画像(例えば、スキャンされた画像、スチール画像カメラから得られる写真画像)、ビデオ(例えば、2次元ビデオ、立体視ビデオを含む3次元ビデオ)のような、人間による意識的入力に必ずしも直接関係しない特定のメディアを捕捉するために使用できる。
【0259】
入力ヒューマンインターフェースデバイスは、キーボード(2001)、マウス(2002)、トラックパッド(2003)、タッチスクリーン(2010)、データグローブ(図示せず)、ジョイスティック(2005)、マイクロフォン(2006)、スキャナ(2007)、カメラ(2008)の1つ以上(それぞれの一つしか図示していない)を含んでいてもよい。
【0260】
コンピュータシステム(2000)はまた、特定のヒューマンインターフェース出力デバイスを含んでいてもよい。そのようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音、光、及び臭い/味を通じて、一又は複数の人間ユーザの感覚を刺激するものであってもよい。そのようなヒューマンインターフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン(2010)、データグローブ(図示せず)、又はジョイスティック(2005)による触覚フィードバック;ただし、入力デバイスのはたらきをしない触覚フィードバックデバイスもあり得る)、音声出力デバイス(例えば、スピーカー(2009)、ヘッドフォン(図示せず))、視覚出力デバイス(例えば、CRT画面、LCD画面、プラズマスクリーン、OLED画面を含む画面(2010);それぞれはタッチスクリーン入力機能があってもなくてもよく、それぞれは触覚フィードバック機能があってもなくてもよく、そのうちのいくつかは、2次元の視覚出力又は立体視出力のような手段を通じた3次元より高い出力を出力することができる;仮想現実感眼鏡(図示せず)、ホログラフィーディスプレイ及び煙タンク(図示せず))、及びプリンタ(図示せず)を含んでいてもよい。
【0261】
コンピュータシステム(2000)はまた、人間がアクセス可能な記憶デバイス及び関連する媒体、例えば、CD/DVD又は類似の媒体(2021)とともにCD/DVD ROM/RW(2020)を含む光学式媒体、サムドライブ(2022)、取り外し可能なハードドライブ又はソリッドステートドライブ(2023)、テープ及びフロッピーディスクといったレガシー磁気媒体(図示せず)、セキュリティドングルのような特化したROM/ASIC/PLDベースのデバイス(図示せず)等を含むことができる。
【0262】
当業者はまた、現在開示されている主題に関連して使用される用語「コンピュータ読み取り可能媒体」は、伝送媒体、搬送波、又は他の一時的な信号を包含しないことを理解すべきである。
【0263】
コンピュータシステム(2000)はまた、1つ以上の通信ネットワーク(2055)へのインターフェース(2054)を含むことができる。ネットワークは、例えば、無線、有線、光学式であり得る。ネットワークは、さらに、ローカル、広域、都市圏、車載及び工業用、リアルタイム、遅延耐性等であり得る。ネットワークの例は、イーサネット〔登録商標〕、無線LAN、GSM、3G、4G、5G、LTE等を含むセルラーネットワーク、ケーブルテレビ、衛星テレビ、地上放送テレビを含むTV有線又は無線の広域デジタルネットワーク、CANBusを含む車載及び工業用等を含む。特定のネットワークは、普通、特定の汎用データポート又は周辺バス(2049)(例えば、コンピュータシステム(2000)のUSBポート等)に取り付けられる外部ネットワークインターフェースアダプターを必要とする。他は、普通、後述するようなシステムバスへの取り付けによって、コンピュータシステム(2000)のコアに統合される(例えば、PCコンピュータシステムへのイーサネットインターフェース又はスマートフォンコンピュータシステムへのセルラーネットワークインターフェース)。これらのネットワークのいずれかを使用して、コンピュータシステム(2000)は、他のエンティティと通信することができる。そのような通信は、一方向性、受信のみ(例えば、放送テレビ)、一方向性送信専用(例えば、特定のCANbusデバイスへのCANbus)、又は、例えば、ローカル又は広域デジタルネットワークを使用する他のコンピュータシステムへの双方向性であってもよい。上述のようなそれらのネットワーク及びネットワークインターフェースのそれぞれで、特定のプロトコル及びプロトコルスタックが使用できる。
【0264】
前述のヒューマンインターフェースデバイス、人間がアクセス可能な記憶デバイス、及びネットワークインターフェースは、コンピュータシステム(2000)のコア(2040)に取り付けることができる。
【0265】
コア(2040)は、1つ以上の中央処理装置(CPU)(2041)、グラフィックス処理装置(GPU)(2042)、フィールドプログラマブルゲートアレイ(FPGA)(2043)の形の特化したプログラマブル処理装置、特定のタスクのためのハードウェアアクセラレータ(2044)、グラフィックアダプター(2050)等を含むことができる。これらの装置は、読み取り専用メモリ(ROM)(2045)、ランダムアクセスメモリ(2046)、内部のユーザアクセス可能でないハードドライブ、ソリッドステートドライブ(SSD)等の内部大容量記憶デバイス(2047)とともに、システムバス(2048)を通じて接続され得る。いくつかのコンピュータシステムでは、追加のCPU、GPU等による拡張を可能にするために、システムバス(2048)は、1つ以上の物理プラグの形でアクセス可能であってもよい。周辺デバイスは、コアのシステムバス(2048)に直接取り付けられることも、周辺バス(2049)を通じて取り付けられることもできる。一例では、グラフィックアダプター(2050)にスクリーン(2010)が接続されることができる。周辺バスのためのアーキテクチャは、PCI、USB等を含む。
【0266】
CPU(2041)、GPU(2042)、FPGA(2043)、及びアクセラレータ(2044)は、組み合わせて上述のコンピュータコードを構成することができる特定の命令を、実行することができる。そのコンピュータコードは、ROM(2045)又はRAM(2046)に記憶できる。一時的データも、RAM(2046)に記憶されることができ、一方、持続的データは、例えば、内部大容量記憶デバイス(2047)に記憶されることができる。1つ以上のCPU(2041)、GPU(2042)、大容量記憶デバイス(2047)、ROM(2045)、RAM(2046)等と密接に関連付けることができるキャッシュメモリを使用することを通じて、メモリデバイスのいずれかへの高速な記憶及び取り出しを可能にすることができる。
【0267】
コンピュータ読み取り可能な媒体は、様々なコンピュータ実装された動作を実行するためのコンピュータコードをその上に有することができる。媒体及びコンピュータコードは、本開示の目的のために特別に設計及び構築されたものであってもよく、又は、コンピュータソフトウェア分野の技術を有する者に周知であり利用可能な種類のものであってもよい。
【0268】
限定ではなく一例として、アーキテクチャ(2000)、具体的にはコア(2040)を有するコンピュータシステムは、プロセッサ(CPU、GPU、FPGA、アクセラレータ等を含む)が1つ以上の有形のコンピュータ可読媒体に具現化されたソフトウェアを実行することの結果として、機能性を提供することができる。そのようなコンピュータ読み取り可能媒体は、上記で紹介したようなユーザアクセス可能な大容量記憶並びにコア内部の大容量記憶デバイス(2047)又はROM(2045)のような非一時的な性質のコア(2040)の特定の記憶に関連する媒体であることができる。本開示の様々な実施形態を実装するソフトウェアは、そのようなデバイスに記憶され、コア(2040)によって実行されることができる。コンピュータ読み取り可能媒体は、特定のニーズに応じて、1つ以上のメモリデバイス又はチップを含むことができる。ソフトウェアは、RAM(2046)に記憶されたデータ構造を定義し、ソフトウェアによって定義されたプロセスに従ってそのようなデータ構造を修正することを含む、本明細書に記載された特定のプロセス又は特定の特定部分を、コア(2040)及び具体的にはその中のプロセッサ(CPU、GPU、FPGA等を含む)に実行させることができる。追加的又は代替的に、コンピュータシステムは、回路(例えば、アクセラレータ(2044))内に配線された、又は他の仕方で具現された論理の結果として機能性を提供することができ、これは、本明細書に記載される特定のプロセス又は特定のプロセスの特定部分を実行するためのソフトウェアの代わりに、又はそれと一緒に動作することができる。ソフトウェアへの言及は、論理を含み、適宜その逆も可能である。コンピュータ読み取り可能媒体への言及は、適宜、実行のためのソフトウェアを記憶する回路(例えば集積回路(IC))、実行のための論理を具現する回路、又はその双方を包含することができる。本開示は、ハードウェア及びソフトウェアの任意の好適な組み合わせを包含する。
【0269】
付録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
【0270】
本開示は、いくつかの例示的実施形態を記載してきたが、変更、置換、及び様々な代替等価物があり、それらは本開示の範囲内にはいる。よって、当業者は、本明細書に明示的に示されていないか又は記載されていないが、本開示の原理を具現し、よって、本開示の精神及び範囲内にある多くのシステム及び方法を考案することができることが理解されるであろう。
【国際調査報告】