(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-03-25
(45)【発行日】2025-04-02
(54)【発明の名称】範囲拡張のための制約フラグシグナリング用の技法
(51)【国際特許分類】
H04N 19/70 20140101AFI20250326BHJP
【FI】
H04N19/70
(21)【出願番号】P 2023528174
(86)(22)【出願日】2022-04-29
(86)【国際出願番号】 US2022072019
(87)【国際公開番号】W WO2023056109
(87)【国際公開日】2023-04-06
【審査請求日】2023-05-10
(32)【優先日】2021-09-29
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2022-03-31
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】ビョンドゥ・チェ
(72)【発明者】
【氏名】ステファン・ヴェンガー
(72)【発明者】
【氏名】シャン・リュウ
【審査官】岩井 健二
(56)【参考文献】
【文献】米国特許出願公開第2020/0107027(US,A1)
【文献】特表2017-500764(JP,A)
【文献】Benjamin Bross, et.al.,Versatile Video Coding Editorial Refinements on Draft 10,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29 20th Meeting, by teleconference, 7 - 16 Oct. 2020,JVET-T2001-v2,2020年11月24日
【文献】Tomohiro Ikai, et.al.,Suggested initial profile text for VVC operation range extension,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29 23rd Meeting, by teleconference, 7-16 July 2021,JVET-W0136-v5,2021年07月16日
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
1つまたは複数のプロセッサが実行するビデオデータ処理の方法であって、
ビットストリームのプロファイル情報が所定値よりも高いビット深度を伴う動作範囲拡張のためのプロファイルを示すと判断するステップと、
前記ビットストリームを復号するためのデコーダにおいて出力するための単一レイヤを示す制約を前記ビットストリームのシンタックス要素が満たすかどうかを判定するために、少なくとも前記ビットストリームの前記シンタックス要素をチェックするステップ
であって、
第2のシンタックス要素の値が前記制約を満たすかどうかを判定するために、シーケンスパラメータセット(SPS)が参照するビデオパラメータセット(VPS)用の識別子である前記SPSの前記第2のシンタックス要素が0に等しいかどうかを判定するためをチェックするステップであって、前記第2のシンタックス要素の値は、一般制約情報シンタックスにおいて、前記ビットストリーム内にコード化されたピクチャが1つしかないことを示すときに、0となる、ステップとを含む、方法。
【請求項2】
少なくとも前記シンタックス要素をチェックする前記ステップが、
第1のシンタックス要素の値が前記制約を満たすかどうかを判定するために、参照される
前記VPS内の最大レイヤ数を示す前記第1のシンタックス要素をチェックするステップを含む、請求項1に記載の方法。
【請求項3】
前記第1のシンタックス要素をチェックする前記ステップが、
前記第1のシンタックス要素の前記値が0に等しいかどうかを判定するために、前記VPS内の前記最大レイヤ数から1を減算したものに等しい前記第1のシンタックス要素をチェックするステップであって、前記第1のシンタックス要素がvps_max_layers_minus1によって表記される、ステップを含む、請求項2に記載の方法。
【請求項4】
少なくとも前記シンタックス要素をチェックする前記ステップが、
第3のシンタックス要素の値が前記制約を満たすかどうかを判定するために、前記ビットストリーム内のマルチレイヤ拡張の有効化/無効化を示す前記第3のシンタックス要素をチェックするステップを含む、請求項1に記載の方法。
【請求項5】
前記第3のシンタックス要素をチェックする前記ステップが、
前記第3のシンタックス要素の前記値が前記マルチレイヤ拡張の無効化を示すかどうかを判定するために、前記第3のシンタックス要素をチェックするステップを含む、請求項
4に記載の方法。
【請求項6】
前記プロファイルに関連付けられた制約が満たされるかどうかを判定するために、ビット深度を示すシンタックス要素、彩度フォーマットに関連付けられたインデックスを示すシンタックス要素、パレットモードの有効化/無効化を示すシンタックス要素、拡張ダイナミックレンジの使用/不使用を示すシンタックス要素、残差コーディングシンタックス内の変換スキップフラグの存在/不在を示すシンタックス要素、正規残差コーディングにおけるRiceコーディングの使用/不使用を示すシンタックス要素、持続的Riceパラメータ適応の有効化/無効化を示すシンタックス要素、および最後の有意係数からの走査パターンを示すシンタックス要素のうちの少なくとも1つをチェックするステップ
をさらに含む、請求項1に記載の方法。
【請求項7】
前記プロファイルが静止画プロファイルであることに応答して、前記ビットストリームが1つのピクチャのみを含むかどうかをチェックするステップ
をさらに含む、請求項1に記載の方法。
【請求項8】
前記ビットストリームのレベルが前記制約を満たすかどうかを判定するために、前記レベルを示すシンタックス要素をチェックするステップ
をさらに含む、請求項1に記載の方法。
【請求項9】
請求項1~
8のいずれか一項に記載の方法を実行するように構成された処理回路を備える、装置。
【請求項10】
1つまたは複数のプロセッサに、請求項1~
8のいずれか一項に記載の方法を実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2021年9月29日に出願された米国仮出願第63/250,096号「TECHNIQUES FOR CONSTRAINT FLAG SIGNALING FOR RANGE EXTENSION」に対する優先権の利益を主張する、2022年3月31日に出願された米国特許出願第17/710,694号「TECHNIQUES FOR CONSTRAINT FLAG SIGNALING FOR RANGE EXTENSION」の利益を主張する。先行出願の開示は、それらの全体が参照により本明細書に組み込まれる。
【0002】
本開示は、一般に、ビデオコーディングに関係する実施形態を記載する。
【背景技術】
【0003】
本明細書において提供される背景技術の説明は、本開示の文脈を大まかに提示することを目的としている。本発明者らの研究は、この背景技術の項に記載されている限りにおいて、ならびに出願時に先行技術として認められない可能性がある説明の態様は、本開示に対する先行技術として明示的にも暗示的にも認められない。
【0004】
ビデオのコーディングおよび復号は、動き補償を伴うインターピクチャ予測を使用して実行することができる。非圧縮デジタルビデオは一連のピクチャを含むことができ、各ピクチャは、例えば、1920×1080の輝度サンプルおよび関連する彩度サンプルの空間次元を有する。一連のピクチャは、例えば毎秒60ピクチャまたは60Hzの固定または可変の(非公式にはフレームレートとしても知られる)ピクチャレートを有することができる。非圧縮ビデオは特有のビットレート要件を有する。例えば、サンプルあたり8ビットでの1080p60 4:2:0ビデオ(60Hzのフレームレートで1920×1080の輝度サンプル解像度)は、1.5Gbit/sに近い帯域幅を必要とする。そのようなビデオの1時間は、600ギガバイトを超える記憶空間を必要とする。
【0005】
ビデオのコーディングおよび復号の1つの目的は、圧縮を介して入力ビデオ信号内の冗長性を低減することであり得る。圧縮は、前述の帯域幅および/または記憶空間の要件を、場合によっては、2桁以上削減するのに役立つことができる。可逆圧縮と非可逆圧縮の両方、ならびにそれらの組合せを採用することができる。可逆圧縮は、圧縮された元の信号から元の信号の正確なコピーを復元することができる技法を指す。非可逆圧縮を使用すると、復元された信号は元の信号と同一ではない可能性があるが、元の信号と復元された信号との間の歪みは、復元された信号を目的の用途に有用なものにするほど十分小さい。ビデオの場合、非可逆圧縮が広く採用されている。許容される歪みの量はアプリケーションに依存し、例えば、特定の消費者向けストリーミングアプリケーションのユーザは、テレビ配信アプリケーションのユーザよりも高い歪みを許容することができる。実現可能な圧縮比は、許容/耐容歪みが大きいほど、圧縮比が高くなり得ることを反映することができる。
【0006】
ビデオエンコーダおよびデコーダは、例えば、動き補償、変換、量子化、およびエントロピーコーディングを含む、いくつかの広範なカテゴリからの技法を利用することができる。
【0007】
ビデオコーデック技術は、イントラコーディングとして知られる技法を含むことができる。イントラコーディングでは、サンプル値は、以前に復元された参照ピクチャからのサンプルまたは他のデータを参照することなく表される。一部のビデオコーデックでは、ピクチャはサンプルのブロックに空間的に細分化される。サンプルのすべてのブロックがイントラモードでコード化されるとき、そのピクチャはイントラピクチャであり得る。イントラピクチャ、および独立デコーダリフレッシュピクチャなどのそれらの派生物は、デコーダ状態をリセットするために使用することができるので、コード化ビデオビットストリームおよびビデオセッション内の最初のピクチャとして、または静止画像として使用することができる。イントラブロックのサンプルは、変換にさらされる可能性があり、変換係数は、エントロピーコーディングの前に量子化することができる。イントラ予測は、変換前領域内のサンプル値を最小化する技法であり得る。場合によっては、変換後のDC値が小さいほど、かつAC係数が小さいほど、エントロピーコーディング後のブロックを表すために所与の量子化ステップのサイズにおいて必要とされるビットは少なくなる。
【0008】
例えばMPEG-2生成コーディング技術から知られているものなどの従来のイントラコーディングは、イントラ予測を使用しない。しかしながら、いくつかのより新しいビデオ圧縮技術は、例えば、空間的に隣接し、復号順序で先行するデータのブロックの符号化/復号の間に取得される周囲のサンプルデータおよび/またはメタデータから試行する技法を含む。そのような技法は、以後「イントラ予測」技法と呼ばれる。少なくともいくつかの場合では、イントラ予測は復元中の現在ピクチャからの参照データのみを使用し、参照ピクチャからは使用しないことに留意されたい。
【0009】
イントラ予測には多くの異なる形式があり得る。そのような技法のうちの2つ以上が所与のビデオコーディング技術において使用され得るとき、使用中の技法はイントラ予測モードでコード化することができる。特定の場合には、モードは下位モードおよび/またはパラメータを有することができ、それらは個別にコード化され得るか、またはモードコードワードに含まれ得る。所与のモード/下位モード/パラメータの組合せにどのコードワードを使用するかは、イントラ予測によるコーディング効率の向上に影響を及ぼす可能性があるので、コードワードをビットストリームに変換するために使用されるエントロピーコーディング技術に影響を及ぼす可能性がある。
【0010】
イントラ予測の特定のモードは、H.264から導入され、H.265において改良され、共同探索モデル(JEM)、多用途ビデオコーディング(VVC)、およびベンチマークセット(BMS)などのより新しいコーディング技術においてさらに改良された。予測器ブロックは、すでに利用可能なサンプルに属する隣接サンプル値を使用して形成することができる。隣接サンプルのサンプル値は、方向に従って予測器ブロックにコピーされる。使用中の方向への参照は、ビットストリーム内でコード化され得るか、またはそれ自体が予測されてもよい。
【0011】
図1Aを参照すると、右下に描写されているのは、H.265の(35個のイントラモードのうちの33個の角度モードに対応する)33個の可能な予測器方向から知られる9つの予測器方向のサブセットである。矢印が収束する点(101)は、予測されているサンプルを表す。矢印は、そこからサンプルが予測されている方向を表す。例えば、矢印(102)は、サンプル(101)が水平から45度の角度で右上にある1つまたは複数のサンプルから予測されることを示す。同様に、矢印(103)は、サンプル(101)が水平から22.5度の角度でサンプル(101)の左下にある1つまたは複数のサンプルから予測されることを示す。
【0012】
さらに
図1Aを参照すると、左上には、(太い破線によって示された)4×4サンプルの正方形ブロック(104)が描写されている。正方形ブロック(104)は16個のサンプルを含み、各々、「S」、Y次元のその位置(例えば、行インデックス)、およびX次元のその位置(例えば、列インデックス)でラベル付けされている。例えば、サンプルS21は、Y次元の(上から)2番目のサンプルであり、X次元の(左から)1番目のサンプルである。同様に、サンプルS44は、ブロック(104)内のY次元およびX次元の両方で4番目のサンプルである。ブロックはサイズが4×4サンプルなので、S44は右下にある。同様のナンバリング方式に従う参照サンプルがさらに示されている。参照サンプルは、ブロック(104)に対してR、そのY位置(例えば、行インデックス)、およびX位置(列インデックス)でラベル付けされている。H.264およびH.265の両方において、予測サンプルは復元中のブロックに隣接するので、負の値が使用される必要はない。
【0013】
イントラピクチャ予測は、シグナリングされた予測方向によって割り当てられるように、隣接サンプルからの参照サンプル値をコピーすることによって機能することができる。例えば、コード化ビデオビットストリームが、このブロックに関して、矢印(102)と一致する予測方向を示すシグナリングを含む、すなわち、サンプルが水平から45度の角度で右上にある1つまたは複数の予測サンプルから予測されると仮定する。その場合、同じ参照サンプルR05からサンプルS41、S32、S23、およびS14が予測される。次いで、参照サンプルR08からサンプルS44が予測される。
【0014】
特定の場合には、参照サンプルを計算するために、特に方向が45度によって均等に割り切れないとき、複数の参照サンプルの値は、例えば補間によって組み合わされてもよい。
【0015】
可能な方向の数は、ビデオコーディング技術が発展するにつれて増加している。H.264(2003年)では、9つの異なる方向を表すことができた。それがH.265(2013年)では33に増加し、本開示の時点では、JEM/VVC/BMSは最大65個の方向をサポートすることができる。最も可能性が高い方向を識別するために実験が行われており、エントロピーコーディングの特定の技術は、それらの可能性が高い方向を少数のビットで表すために使用され、可能性が低い方向に関しては一定のペナルティを受け入れている。さらに、方向自体は、時々、隣接するすでに復号されたブロックにおいて使用された隣接方向から予測することができる。
【0016】
図1Bは、経時的に増加する数の予測方向を示すために、JEMによる65個のイントラ予測方向を描写する概略図(180)を示す。
【0017】
方向を表す、コード化ビデオビットストリーム内のイントラ予測方向ビットのマッピングは、ビデオコーディング技術ごとに異なっていてもよく、例えば、予測方向のイントラ予測モードへの単純な直接マッピングから、コードワード、最も可能性が高いモードを含む複雑な適応方式、および同様の技法まで及ぶことができる。しかしながら、すべての場合において、ビデオコンテンツ内で特定の他の方向よりも統計的に発生する可能性が低い特定の方向が存在する可能性がある。ビデオ圧縮の目的は冗長性の低減であるので、それらの可能性が低い方向は、良好に機能するビデオコーディング技術では、可能性が高い方向よりも多いビット数によって表される。
【0018】
動き補償は非可逆圧縮技法であり得、以前に復元されたピクチャまたはその一部(参照ピクチャ)からのサンプルデータのブロックが、動きベクトル(以降、MV)によって示された方向に空間的にシフトされた後に、新しく復元されるピクチャまたはピクチャの一部の予測に使用される技法に関連する可能性がある。場合によっては、参照ピクチャは現在復元中のピクチャと同じであり得る。MVは、2つの次元XおよびY、または3つの次元を有することができ、3番目の次元は、使用中の参照ピクチャの指示である(後者は、間接的に時間次元であり得る)。
【0019】
いくつかのビデオ圧縮技法では、サンプルデータの特定の領域に適用可能なMVは、他のMVから、例えば、復元中の領域に空間的に隣接し、復号順序でそのMVに先行するサンプルデータの別の領域に関連するMVから予測することができる。そうすることにより、MVのコーディングに必要なデータ量を大幅に削減することができ、それによって冗長性が排除され、圧縮率が増加する。例えば、(ナチュラルビデオとして知られている)カメラから導出された入力ビデオ信号をコード化するとき、単一のMVが適用可能な領域よりも大きい領域が同様の方向に移動する統計的な可能性が存在するので、MV予測は効果的に機能することができ、したがって、場合によっては、隣接する領域のMVから導出された同様の動きベクトルを使用して予測することができる。その結果、所与の領域について検出されたMVは、周囲のMVから予測されたMVと同様または同じであり、エントロピーコーディング後、直接MVをコード化する場合に使用されるビット数より少ないビット数で表すことができる。場合によっては、MV予測は、元の信号(すなわち、サンプルストリーム)から導出された信号(すなわち、MV)の可逆圧縮の一例であり得る。他の場合、MV予測自体は、例えば、いくつかの周囲のMVから予測器を計算するときの丸め誤差のために、非可逆であり得る。
【0020】
様々なMV予測メカニズムが、H.265/HEVC(ITU-T Rec.H.265、「High Efficiency Video Coding」、2016年12月)に記載されている。H.265が提供する多くのMV予測メカニズムのうち、本明細書に記載されるのは、以降「空間マージ」と呼ばれる技法である。
【0021】
図2を参照すると、現在ブロック(201)は、動き検索プロセス中にエンコーダにより、空間的にシフトされた同じサイズの以前のブロックから予測可能であることが見出されたサンプルを含む。直接そのMVをコード化する代わりに、MVは、A0、A1、およびB0、B1、B2(それぞれ、202~206)と表記された5つの周囲サンプルのいずれか1つに関連付けられたMVを使用して、1つまたは複数の参照ピクチャに関連付けられたメタデータから、例えば、(復号順序で)最新の参照ピクチャから導出することができる。H.265では、MV予測は、隣接するブロックが使用している同じ参照ピクチャからの予測器を使用することができる。
【発明の概要】
【課題を解決するための手段】
【0022】
本開示の態様は、ビデオデータ処理のための方法および装置を提供する。いくつかの例では、ビデオデータ処理のための装置は処理回路を含む。処理回路は、ビットストリームのプロファイル情報が、所定値よりも高いビット深度を伴う動作範囲拡張のためのプロファイルを示すと判断する。次いで、処理回路は、ビットストリームのシンタックス要素が、ビットストリームを復号するためのデコーダにおいて出力するための単一レイヤを示す制約を満たすかどうかを判定するために、少なくともビットストリームのシンタックス要素をチェックする。
【0023】
いくつかの実施形態では、処理回路は、第1のシンタックス要素の値が制約を満たすかどうかを判定するために、参照されるビデオパラメータセット(VPS)内の最大レイヤ数を示す第1のシンタックス要素をチェックする。一例では、処理回路は、第1のシンタックス要素の値が0に等しいかどうかを判定するために、VPS内の最大レイヤ層数から1を減算したものに等しい第1のシンタックス要素をチェックする。
【0024】
いくつかの実施形態では、処理回路は、第2のシンタックス要素の値が制約を満たすかどうかを判定するために、シーケンスパラメータセット(SPS)が参照するビデオパラメータセット(VPS)用の識別子であるSPSの第2のシンタックス要素をチェックする。一例では、処理回路は、第2のシンタックス要素の値が0に等しいかどうかを判定するために、SPSの第2のシンタックス要素をチェックする。
【0025】
いくつかの実施形態では、処理回路は、第3のシンタックス要素の値が制約を満たすかどうかを判定するために、ビットストリーム内のマルチレイヤ拡張の有効化/無効化を示す第3のシンタックス要素をチェックする。一例では、処理回路は、第3のシンタックス要素の値がマルチレイヤ拡張の無効化を示すかどうかを判定するために、第3のシンタックス要素をチェックする。
【0026】
いくつかの例では、処理回路は、プロファイルに関連付けられた制約が満たされるかどうかを判定するために、ビット深度を示すシンタックス要素、彩度フォーマットに関連付けられたインデックスを示すシンタックス要素、パレットモードの有効化/無効化を示すシンタックス要素、拡張ダイナミックレンジの使用/不使用を示すシンタックス要素、残差コーディングシンタックス内の変換スキップフラグの存在/不在を示すシンタックス要素、正規残差コーディングにおけるRiceコーディングの使用/不使用を示すシンタックス要素、持続的Riceパラメータ適応の有効化/無効化を示すシンタックス要素、および最後の有意係数からの走査パターンを示すシンタックス要素のうちの少なくとも1つをチェックする。
【0027】
いくつかの例では、処理回路は、プロファイルが静止画プロファイルであることに応答して、ビットストリームが1つのピクチャのみを含むかどうかをチェックする。
【0028】
いくつかの例では、処理回路は、レベルが制約を満たすかどうかを判定するために、ビットストリームのレベルを示すシンタックス要素をチェックする。
【0029】
本開示の態様はまた、ビデオ復号用のコンピュータによって実行されると、ビデオ復号のための方法をコンピュータに実行させる命令を記憶する非一時的コンピュータ可読媒体を提供する。
【0030】
開示された主題のさらなる特徴、性質、および様々な利点は、以下の詳細な説明および添付の図面からより明らかになる。
【図面の簡単な説明】
【0031】
【
図1A】イントラ予測モードの例示的なサブセットの概略図である。
【
図2】一例における、現在ブロックおよびその周囲の空間マージ候補の概略図である。
【
図3】一実施形態による、通信システム(300)の簡略化されたブロック図の概略図である。
【
図4】一実施形態による、通信システム(400)の簡略化されたブロック図の概略図である。
【
図5】一実施形態による、デコーダの簡略化されたブロック図の概略図である。
【
図6】一実施形態による、エンコーダの簡略化されたブロック図の概略図である。
【
図7】別の実施形態による、エンコーダのブロック図である。
【
図8】別の実施形態による、デコーダのブロック図である。
【
図9】本開示の実施形態による、適応解像度変更(ARC)パラメータのシグナリングについての例を示す図である。
【
図10】アップサンプル係数またはダウンサンプル係数、コードワード、およびExt-Golombコードのマッピング用のテーブル(1000)の一例を示す図である。
【
図11】本開示のいくつかの実施形態による、ARCパラメータシグナリングのいくつかの例を示す図である。
【
図12】いくつかの例における、PTLシンタックス要素のセットのシンタックス構造例を示す図である。
【
図13】いくつかの例における、一般制約情報のシンタックス構造例を示す図である。
【
図14A】本開示のいくつかの実施形態による、PTLシンタックス構造および一般制約情報シンタックス構造を含むPTL情報の例を示す図である。
【
図14B】本開示のいくつかの実施形態による、PTLシンタックス構造および一般制約情報シンタックス構造を含むPTL情報の例を示す図である。
【
図15A】本開示の一実施形態による、一般制約情報シンタックス構造の一例を示す図である。
【
図15B】本開示の一実施形態による、一般制約情報シンタックス構造の一例を示す図である。
【
図16】本開示のいくつかの実施形態による、シーケンスパラメータセット(SPS)範囲拡張のシンタックス構造例を示す図である。
【
図17】高ビット深度を伴う動作範囲拡張のためのプロファイル内のいくつかのシンタックス要素用の許容値を含むテーブルの一例を示す図である。
【
図18】本開示の一実施形態による、プロセスを概説するフローチャートである。
【
図19】一実施形態によるコンピュータシステムの概略図である。
【発明を実施するための形態】
【0032】
図3は、本開示の一実施形態による、通信システム(300)の簡略化されたブロック図を示す。通信システム(300)は、例えば、ネットワーク(350)を介して互いに通信することができる複数の端末デバイスを含む。例えば、通信システム(300)は、ネットワーク(350)を介して相互接続された端末デバイス(310)および(320)の第1のペアを含む。
図3の例では、端末デバイス(310)および(320)の第1のペアは、データの単方向送信を実行する。例えば、端末デバイス(310)は、ネットワーク(350)を介して他の端末デバイス(320)に送信するためのビデオデータ(例えば、端末デバイス(310)によって取り込まれたビデオピクチャのストリーム)をコード化することができる。符号化ビデオデータは、1つまたは複数のコード化ビデオビットストリームの形式で送信することができる。端末デバイス(320)は、ネットワーク(350)からコード化ビデオデータを受信し、コード化ビデオデータを復号してビデオピクチャを復元し、復元されたビデオデータに従ってビデオピクチャを表示することができる。単方向データ送信は、メディアサービングアプリケーションなどで一般的であり得る。
【0033】
別の例では、通信システム(300)は、例えばビデオ会議中に発生する可能性があるコード化ビデオデータの双方向送信を実行する端末デバイス(330)および(340)の第2のペアを含む。データの双方向送信の場合、一例では、端末デバイス(330)および(340)の各端末デバイスは、ネットワーク(350)を介して端末デバイス(330)および(340)のうちの他の端末デバイスに送信するためのビデオデータ(例えば、端末デバイスによって取り込まれたビデオピクチャのストリーム)をコード化することができる。端末デバイス(330)および(340)の各端末デバイスはまた、端末デバイス(330)および(340)のうちの他の端末デバイスによって送信されたコード化ビデオデータを受信することができ、コード化ビデオデータを復号してビデオピクチャを復元することができ、復元されたビデオデータに従ってアクセス可能な表示デバイスにビデオピクチャを表示することができる。
【0034】
図3の例では、端末デバイス(310)、(320)、(330)、および(340)は、サーバ、パーソナルコンピュータ、およびスマートフォンとして示される場合があるが、本開示の原理はそのように限定されなくてもよい。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤ、および/または専用ビデオ会議機器を用いるアプリケーションを見出す。ネットワーク(350)は、例えば、電線(有線)および/またはワイヤレスの通信ネットワークを含む、端末デバイス(310)、(320)、(330)、および(340)の間でコード化ビデオデータを伝達する任意の数のネットワークを表す。通信ネットワーク(350)は、回線交換チャネルおよび/またはパケット交換チャネルでデータを交換することができる。代表的なネットワークには、電気通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、および/またはインターネットが含まれる。本説明の目的のために、ネットワーク(350)のアーキテクチャおよびトポロジーは、本明細書で以下に説明されない限り、本開示の動作にとって重要でない場合がある。
【0035】
図4は、開示された主題についてのアプリケーション用の一例として、ストリーミング環境におけるビデオエンコーダおよびビデオデコーダの配置を示す。開示された主題は、例えば、ビデオ会議、デジタルテレビ、CD、DVD、メモリスティックなどを含むデジタル媒体への圧縮ビデオの格納などを含む、他のビデオ対応アプリケーションに等しく適用可能であり得る。
【0036】
ストリーミングシステムは、例えば、圧縮されていないビデオピクチャのストリーム(402)を作成するビデオソース(401)、例えば、デジタルカメラを含むことができるキャプチャサブシステム(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の文脈で使用されてもよい。
【0037】
電子デバイス(420)および(430)は、他の構成要素(図示せず)を含むことができることに留意されたい。例えば、電子デバイス(420)はビデオデコーダ(図示せず)を含むことができ、電子デバイス(430)もビデオエンコーダ(図示せず)を含むことができる。
【0038】
図5は、本開示の一実施形態による、ビデオデコーダ(510)のブロック図を示す。ビデオデコーダ(510)は、電子デバイス(530)に含まれ得る。電子デバイス(530)は、受信機(531)(例えば、受信回路)を含むことができる。ビデオデコーダ(510)は、
図4の例のビデオデコーダ(410)の代わりに使用することができる。
【0039】
受信機(531)は、ビデオデコーダ(510)によって復号される1つまたは複数のコード化ビデオシーケンス、同じかまたは別の実施形態では、一度に1つのコード化ビデオシーケンスを受信することができ、各コード化ビデオシーケンスの復号は、他のコード化ビデオシーケンスから独立している。コード化ビデオシーケンスは、チャネル(501)から受信されてもよく、チャネル(501)は、符号化ビデオデータを格納するストレージデバイスへのハードウェア/ソフトウェアリンクであってもよい。受信機(531)は、それらのそれぞれの使用エンティティ(描写せず)に転送され得る他のデータ、例えば、コード化オーディオデータおよび/または補助データストリームとともに符号化ビデオデータを受信することができる。受信機(531)は、コード化ビデオシーケンスを他のデータから分離することができる。ネットワークジッタに対抗するために、バッファメモリ(515)は、受信機(531)とエントロピーデコーダ/パーサー(520)(以下、「パーサー(520)」)との間に結合されてもよい。特定のアプリケーションでは、バッファメモリ(515)はビデオデコーダ(510)の一部である。他のアプリケーションでは、それはビデオデコーダ(510)の外側にあり得る(描写せず)。さらに他のアプリケーションでは、例えば、ネットワークジッタに対抗するために、ビデオデコーダ(510)の外側にバッファメモリ(描写せず)があり、加えて、例えば、プレイアウトタイミングを処理するために、ビデオデコーダ(510)の内側に別のバッファメモリ(515)があり得る。受信機(531)が十分な帯域幅および制御可能性のストア/フォワードデバイスから、または等同期ネットワークからデータを受信しているとき、バッファメモリ(515)は必要とされない場合があるか、または小さい可能性がある。インターネットなどのベストエフォートパケットネットワークで使用するために、バッファメモリ(515)は、必要とされる場合があり、比較的大きい可能性があり、有利なことに適応サイズであり得、オペレーティングシステムまたはビデオデコーダ(510)の外側の同様の要素(描写せず)に少なくとも部分的に実装されてもよい。
【0040】
ビデオデコーダ(510)は、コード化ビデオシーケンスからシンボル(521)を復元するためにパーサー(520)を含んでもよい。これらのシンボルのカテゴリには、ビデオデコーダ(510)の動作を管理するために使用される情報、および潜在的に、電子デバイス(530)の不可欠な部分ではないが、
図5に示されたように、電子デバイス(530)に結合することができるレンダリングデバイス(512)(例えば、表示画面)などのレンダリングデバイスを制御するための情報が含まれる。レンダリングデバイスのための制御情報は、補足拡張情報(SEIメッセージ)またはビデオユーザビリティ情報(VUI)のパラメータセットフラグメント(描写せず)の形式であってもよい。パーサー(520)は、受け取ったコード化ビデオシーケンスを構文解析/エントロピー復号することができる。コード化ビデオシーケンスのコーディングは、ビデオコーディング技術または規格に従うことができ、文脈感度の有無にかかわらず、可変長コーディング、ハフマンコーディング、算術コーディングなどを含む様々な原理に従うことができる。パーサー(520)は、グループに対応する少なくとも1つのパラメータに基づいて、コード化ビデオシーケンスから、ビデオデコーダ内のピクセルのサブグループのうちの少なくとも1つのための一組のサブグループパラメータを抽出することができる。サブグループは、ピクチャグループ(GOP)、ピクチャ、タイル、スライス、マクロブロック、コーディングユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)などを含むことができる。パーサー(520)はまた、コード化ビデオシーケンスから、変換係数、量子化器パラメータ値、動きベクトルなどの情報を抽出することができる。
【0041】
パーサー(520)は、シンボル(521)を作成するために、バッファメモリ(515)から受け取ったビデオシーケンスに対してエントロピー復号/構文解析動作を実行することができる。
【0042】
シンボル(521)の復元は、(インターピクチャおよびイントラピクチャ、インターブロックおよびイントラブロックなどの)コード化ビデオピクチャまたはその一部のタイプ、ならびに他の要因に応じて、複数の異なるユニットを関与させることができる。どのユニットがどのように関与するかは、パーサー(520)によってコード化ビデオシーケンスから構文解析されたサブグループ制御情報によって制御することができる。パーサー(520)と以下の複数のユニットとの間のそのようなサブグループ制御情報の流れは、分かりやすくするために描写されていない。
【0043】
すでに述べられた機能ブロック以外に、ビデオデコーダ(510)は、以下に記載されるように、概念的にいくつかの機能ユニットに細分化することができる。商業的制約の下で動作する実際の実装形態では、これらのユニットの多くは、互いに密接に相互作用し、少なくとも部分的には互いに統合することができる。しかしながら、開示された主題を記載する目的のために、以下の機能ユニットへの概念的な細分化が適切である。
【0044】
第1のユニットはスケーラ/逆変換ユニット(551)である。スケーラ/逆変換ユニット(551)は、量子化変換係数、ならびにどの変換を使用するか、ブロックサイズ、量子化係数、量子化スケーリング行列などを含む制御情報を、パーサー(520)からシンボル(521)として受け取る。スケーラ/逆変換ユニット(551)は、アグリゲータ(555)に入力され得るサンプル値を含むブロックを出力することができる。
【0045】
場合によっては、スケーラ/逆変換(551)の出力サンプルは、イントラコード化ブロック、すなわち、以前に復元されたピクチャからの予測情報を使用していないが、現在ピクチャの以前に復元された部分からの予測情報を使用することができるブロックに関連する可能性がある。そのような予測情報は、イントラピクチャ予測ユニット(552)によって提供することができる。場合によっては、イントラピクチャ予測ユニット(552)は、現在ピクチャバッファ(558)からフェッチされた周囲のすでに復元された情報を使用して、復元中のブロックと同じサイズおよび形状のブロックを生成する。現在ピクチャバッファ(558)は、例えば、部分的に復元された現在ピクチャおよび/または完全に復元された現在ピクチャをバッファリングする。アグリゲータ(555)は、場合によっては、サンプルごとに、イントラ予測ユニット(552)が生成した予測情報を、スケーラ/逆変換ユニット(551)によって提供される出力サンプル情報に追加する。
【0046】
他の場合には、スケーラ/逆変換ユニット(551)の出力サンプルは、インターコード化され、潜在的に動き補償されたブロックに関連する可能性がある。そのような場合、動き補償予測ユニット(553)は、参照ピクチャメモリ(557)にアクセスして、予測に使用されるサンプルをフェッチすることができる。ブロックに関連するシンボル(521)に従ってフェッチされたサンプルを動き補償した後、これらのサンプルは、出力サンプル情報を生成するために、アグリゲータ(555)によってスケーラ/逆変換ユニット(551)の出力に追加することができる(この場合、残差サンプルまたは残差信号と呼ばれる)。動き補償予測ユニット(553)が予測サンプルをフェッチする参照ピクチャメモリ(557)内のアドレスは、例えば、X、Y、および参照ピクチャ成分を有することができるシンボル(521)の形式で動き補償予測ユニット(553)に利用可能な動きベクトルによって制御することができる。動き補償はまた、サブサンプルの正確な動きベクトルが使用されているときに参照ピクチャメモリ(557)からフェッチされたサンプル値の補間、動きベクトル予測メカニズムなどを含むことができる。
【0047】
アグリゲータ(555)の出力サンプルは、ループフィルタユニット(556)において様々なループフィルタリング技法を受けることができる。ビデオ圧縮技術は、(コード化ビデオビットストリームとも呼ばれる)コード化ビデオシーケンスに含まれるパラメータによって制御され、パーサー(520)からのシンボル(521)としてループフィルタユニット(556)に利用可能にされるインループフィルタ技術を含むことができるが、コード化ピクチャまたはコード化ビデオシーケンスの(復号順序で)前の部分の復号中に取得されたメタ情報に応答するだけでなく、以前に復元およびループフィルタリングされたサンプル値に応答することもできる。
【0048】
ループフィルタユニット(556)の出力は、レンダリングデバイス(512)に出力されるだけでなく、将来のインターピクチャ予測で使用するために参照ピクチャメモリ(557)に格納することができるサンプルストリームであり得る。
【0049】
特定のコード化ピクチャは、完全に復元されると、将来の予測のために参照ピクチャとして使用することができる。例えば、現在ピクチャに対応するコード化ピクチャが完全に復元され、コード化ピクチャが参照ピクチャとして(例えば、パーサー(520)によって)識別されると、現在ピクチャバッファ(558)は、参照ピクチャメモリ(557)の一部になることができ、未使用の現在ピクチャバッファは、次のコード化ピクチャの復元を開始する前に再割当てすることができる。
【0050】
ビデオデコーダ(510)は、ITU-T Rec.H.265などの規格における所定のビデオ圧縮技術に従って復号動作を実行することができる。コード化ビデオシーケンスがビデオ圧縮技術または規格のシンタックスとビデオ圧縮技術において文書化されたプロファイルの両方を順守するという意味で、コード化ビデオシーケンスは、使用されているビデオ圧縮技術または規格によって指定されたシンタックスに準拠することができる。具体的には、プロファイルは、ビデオ圧縮技術または規格で使用可能なすべてのツールから、そのプロファイル下で使用するために利用可能な唯一のツールとしていくつかのツールを選択することができる。また、準拠するために必要なことは、コード化ビデオシーケンスの複雑さが、ビデオ圧縮技術または規格のレベルによって定義された範囲内にあることであり得る。場合によっては、レベルにより、最大ピクチャサイズ、最大フレームレート、(例えば、1秒あたりのメガサンプル単位で測定された)最大復元サンプルレート、最大参照ピクチャサイズなどが制限される。レベルによって設定される制限は、場合によっては、仮想参照デコーダ(HRD)の仕様、およびコード化ビデオシーケンス内でシグナリングされるHRDバッファ管理用のメタデータによってさらに制限され得る。
【0051】
一実施形態では、受信機(531)は、符号化ビデオとともに追加の(冗長な)データを受信することができる。追加のデータは、コード化ビデオシーケンスの一部として含まれてもよい。追加のデータは、データを適切に復号するために、かつ/または元のビデオデータをより正確に復元するために、ビデオデコーダ(510)によって使用されてもよい。追加のデータは、例えば、時間、空間、または信号ノイズ比(SNR)の拡張レイヤ、冗長スライス、冗長ピクチャ、順方向誤り訂正コードなどの形式であり得る。
【0052】
図6は、本開示の一実施形態による、ビデオエンコーダ(603)のブロック図を示す。ビデオエンコーダ(603)は電子デバイス(620)に含まれる。電子デバイス(620)は送信機(640)(例えば、送信回路)を含む。ビデオエンコーダ(603)は、
図4の例のビデオエンコーダ(403)の代わりに使用することができる。
【0053】
ビデオエンコーダ(603)は、ビデオエンコーダ(603)によってコード化されるビデオ画像を取り込むことができる(
図6の例では電子デバイス(620)の一部ではない)ビデオソース(601)からビデオサンプルを受信することができる。別の例では、ビデオソース(601)は電子デバイス(620)の一部である。
【0054】
ビデオソース(601)は、任意の適切なビット深度(例えば、8ビット、10ビット、12ビット、…)、任意の色空間(例えば、BT.601 Y CrCB、RGB、…)、および任意の適切なサンプリング構造(例えば、Y CrCb 4:2:0、Y CrCb 4:4:4)であり得るデジタルビデオサンプルストリームの形式で、ビデオエンコーダ(603)によってコード化されるソースビデオシーケンスを提供することができる。メディアサービングシステムでは、ビデオソース(601)は、以前に準備されたビデオを格納するストレージデバイスであってもよい。ビデオ会議システムでは、ビデオソース(601)は、ビデオシーケンスとしてローカル画像情報を取り込むカメラであってもよい。ビデオデータは、順番に見たときに動きを伝える複数の個別のピクチャとして提供されてもよい。ピクチャ自体は、ピクセルの空間配列として編成されてよく、各ピクセルは、使用中のサンプリング構造、色空間などに応じて、1つまたは複数のサンプルを含むことができる。当業者は、ピクセルとサンプルとの間の関係を容易に理解することができる。以下の説明はサンプルに焦点を当てる。
【0055】
一実施形態によれば、ビデオエンコーダ(603)は、リアルタイムで、またはアプリケーションによって必要とされる任意の他の時間制約の下で、ソースビデオシーケンスのピクチャをコード化ビデオシーケンス(643)にコード化し圧縮することができる。適切なコーディング速度を実施することは、コントローラ(650)の1つの機能である。いくつかの実施形態では、コントローラ(650)は、以下に記載される他の機能ユニットを制御し、他の機能ユニットに機能的に結合されている。分かりやすくするために、結合は描写されていない。コントローラ(650)によって設定されるパラメータは、レート制御関連パラメータ(ピクチャスキップ、量子化器、レート歪み最適化技法のラムダ値、…)、ピクチャサイズ、ピクチャグループ(GOP)のレイアウト、最大動きベクトル検索範囲などを含むことができる。コントローラ(650)は、特定のシステム設計のために最適化されたビデオエンコーダ(603)に関連する他の適切な機能を有するように構成することができる。
【0056】
いくつかの実施形態では、ビデオエンコーダ(603)は、コーディングループで動作するように構成される。単純化し過ぎた説明として、一例では、コーディングループは、(例えば、コード化される入力ピクチャおよび参照ピクチャに基づいて、シンボルストリームなどのシンボルを作成することに関与する)ソースコーダ(630)、ならびにビデオエンコーダ(603)に組み込まれた(ローカル)デコーダ(633)を含むことができる。デコーダ(633)は、(シンボルとコード化ビデオビットストリームとの間のいかなる圧縮も、開示された主題で考慮されるビデオ圧縮技術において可逆であるため)(リモート)デコーダも作成するのと同様の方式で、シンボルを復元してサンプルデータを作成する。復元されたサンプルストリーム(サンプルデータ)は、参照ピクチャメモリ(634)に入力される。シンボルストリームの復号は、デコーダの場所(ローカルまたはリモート)に関係なくビット正確な結果につながるので、参照ピクチャメモリ(634)内のコンテンツも、ローカルエンコーダとリモートエンコーダとの間でビット正確である。言い換えれば、エンコーダの予測部分は、復号中に予測を使用するときにデコーダが「見る」のと全く同じサンプル値を参照ピクチャサンプルとして「見る」。参照ピクチャの同期性(および、例えば、チャネルエラーのために同期性が維持できない場合に結果として生じるドリフト)のこの基本原理は、いくつかの関連技術でも使用される。
【0057】
「ローカル」デコーダ(633)の動作は、
図5とともに上記で詳細にすでに記載されている、ビデオデコーダ(510)などの「リモート」デコーダの動作と同じであり得る。しかしながら、また
図5を簡単に参照すると、シンボルが利用可能であり、エントロピーコーダ(645)およびパーサー(520)によるコード化ビデオシーケンスへのシンボルの符号化/復号は可逆であり得るので、バッファメモリ(515)を含むビデオデコーダ(510)のエントロピー復号部分、およびパーサー(520)は、ローカルデコーダ(633)に完全に実装されていない可能性がある。
【0058】
この時点で行うことができる観察は、デコーダに存在する構文解析/エントロピー復号以外の任意のデコーダ技術も、対応するエンコーダ内に実質的に同一の機能形式で必ず存在する必要があるということである。このため、開示された主題は、デコーダの動作に焦点を当てる。エンコーダ技術の説明は、包括的に記載されたデコーダ技術の逆であるため、省略することができる。特定の領域においてのみ、より詳細な説明が必要とされ、以下に提供される。
【0059】
動作中、いくつかの例では、ソースコーダ(630)は、「参照ピクチャ」として指定されたビデオシーケンスからの1つまたは複数の以前にコード化されたピクチャを参照して入力ピクチャを予測的にコード化する、動き補償予測コーディングを実行することができる。このようにして、コーディングエンジン(632)は、入力ピクチャのピクセルブロックと、入力ピクチャへの予測参照として選択され得る参照ピクチャのピクセルブロックとの間の差をコード化する。
【0060】
ローカルビデオデコーダ(633)は、ソースコーダ(630)によって作成されたシンボルに基づいて、参照ピクチャとして指定され得るピクチャのコード化ビデオデータを復号することができる。コーディングエンジン(632)の動作は、有利なことに、非可逆プロセスであってもよい。コード化ビデオデータが(
図6には示されていない)ビデオデコーダで復号され得るとき、復元されたビデオシーケンスは、通常、いくつかの誤差を伴うソースビデオシーケンスのレプリカであり得る。ローカルビデオデコーダ(633)は、参照ピクチャに対してビデオデコーダによって実行され得る復号プロセスを複製し、復元された参照ピクチャが参照ピクチャメモリ(634)に格納されるようにすることができる。このようにして、ビデオエンコーダ(603)は、(送信エラーがない)遠端ビデオデコーダによって取得される復元された参照ピクチャとして共通のコンテンツを有する、復元された参照ピクチャのコピーをローカルに格納することができる。
【0061】
予測器(635)は、コーディングエンジン(632)のための予測検索を実行することができる。すなわち、コード化される新しいピクチャの場合、予測器(635)は、新しいピクチャのための適切な予測参照として役立つことができる、(候補参照ピクセルブロックとしての)サンプルデータまたは参照ピクチャ動きベクトル、ブロック形状などの特定のメタデータを求めて、参照ピクチャメモリ(634)を検索することができる。予測器(635)は、適切な予測参照を見つけるために、ピクセルブロックごとにサンプルブロックに対して動作することができる。場合によっては、予測器(635)によって取得された検索結果によって決定されるように、入力ピクチャは、参照ピクチャメモリ(634)に格納された複数の参照ピクチャから引き出された予測参照を有することができる。
【0062】
コントローラ(650)は、例えば、ビデオデータを符号化するために使用されるパラメータおよびサブグループパラメータの設定を含む、ソースコーダ(630)のコーディング動作を管理することができる。
【0063】
すべての前述の機能ユニットの出力は、エントロピーコーダ(645)内でエントロピーコーディングを受けることができる。エントロピーコーダ(645)は、ハフマンコーディング、可変長コーディング、算術コーディングなどの技術に従ってシンボルを可逆圧縮することにより、様々な機能ユニットによって生成されたシンボルをコード化ビデオシーケンスに変換する。
【0064】
送信機(640)は、エントロピーコーダ(645)によって作成されたコード化ビデオシーケンスをバッファリングして、通信チャネル(660)を介した送信の準備をすることができ、通信チャネル(660)は、符号化ビデオデータを格納するストレージデバイスへのハードウェア/ソフトウェアリンクであってもよい。送信機(640)は、ビデオコーダ(603)からのコード化ビデオデータを、送信される他のデータ、例えば、コード化オーディオデータおよび/または補助データストリーム(ソースは図示されていない)とマージすることができる。
【0065】
コントローラ(650)は、ビデオエンコーダ(603)の動作を管理することができる。コーディング中に、コントローラ(650)は、各コード化ピクチャに特定のコード化ピクチャタイプを割り当てることができ、それは、それぞれのピクチャに適用され得るコーディング技法に影響を及ぼす場合がある。例えば、ピクチャは、しばしば、以下のピクチャタイプのうちの1つとして割り当てられてもよい。
【0066】
イントラピクチャ(Iピクチャ)は、予測のソースとしてシーケンス内のいかなる他のピクチャも使用せずにコード化および復号され得るピクチャであり得る。いくつかのビデオコーデックは、例えば、独立デコーダリフレッシュ(「IDR」)ピクチャを含む、様々なタイプのイントラピクチャを可能にする。当業者は、Iピクチャのそれらの変形形態、ならびにそれらのそれぞれの用途および特徴を認識している。
【0067】
予測ピクチャ(Pピクチャ)は、各ブロックのサンプル値を予測するために、多くとも1つの動きベクトルおよび参照インデックスを使用するイントラ予測またはインター予測を使用して、コード化および復号され得るピクチャであり得る。
【0068】
双方向予測ピクチャ(Bピクチャ)は、各ブロックのサンプル値を予測するために、多くとも2つの動きベクトルおよび参照インデックスを使用するイントラ予測またはインター予測を使用して、コード化および復号され得るピクチャであり得る。同様に、複数の予測ピクチャは、単一ブロックの復元のために3つ以上の参照ピクチャおよび関連するメタデータを使用することができる。
【0069】
ソースピクチャは、通常、複数のサンプルブロック(例えば、各々4×4、8×8、4×8、または16×16サンプルのブロック)に空間的に細分化され、ブロックごとにコード化されてもよい。ブロックは、ブロックのそれぞれのピクチャに適用されるコーディング割当てによって決定されるように、他の(すでにコード化された)ブロックを参照して予測的にコード化されてもよい。例えば、Iピクチャのブロックは、非予測的にコード化されてもよいか、またはそれらは、同じピクチャのすでにコード化されたブロックを参照して予測的にコード化されてもよい(空間予測もしくはイントラ予測)。Pピクチャのピクセルブロックは、1つの以前にコード化された参照ピクチャを参照して、空間予測を介してまたは時間予測を介して予測的にコード化されてもよい。Bピクチャのブロックは、1つまたは2つの以前にコード化された参照ピクチャを参照して、空間予測を介してまたは時間予測を介して予測的にコード化されてもよい。
【0070】
ビデオエンコーダ(603)は、ITU-T Rec.H.265などの所定のビデオコーディング技術または規格に従ってコーディング動作を実行することができる。その動作において、ビデオエンコーダ(603)は、入力ビデオシーケンスにおける時間および空間の冗長性を利用する予測コーディング動作を含む、様々な圧縮動作を実行することができる。したがって、コード化されたビデオデータは、使用されているビデオコーディング技術または規格によって指定されたシンタックスに準拠することができる。
【0071】
一実施形態では、送信機(640)は、符号化ビデオとともに追加のデータを送信することができる。ソースコーダ(630)は、コード化ビデオシーケンスの一部としてそのようなデータを含んでもよい。追加のデータは、時間/空間/SNR拡張レイヤ、冗長なピクチャおよびスライスなどの他の形式の冗長データ、SEIメッセージ、VUIパラメータセットフラグメントなどを含んでもよい。
【0072】
ビデオは、時系列で複数のソースピクチャ(ビデオピクチャ)として取り込まれてもよい。(しばしば、イントラ予測と省略される)イントラピクチャ予測は、所与のピクチャ内の空間の相関関係を利用し、インターピクチャ予測は、ピクチャ間の(時間または他の)相関関係を利用する。一例では、現在ピクチャと呼ばれる、符号化/復号中の特定のピクチャがブロックに分割される。現在ピクチャ内のブロックが、以前にコード化され、ビデオ内にまだバッファリングされている参照ピクチャ内の参照ブロックに類似しているとき、現在ピクチャ内のブロックは、動きベクトルと呼ばれるベクトルによってコード化することができる。動きベクトルは、参照ピクチャ内の参照ブロックを指し、複数の参照ピクチャが使用されている場合、参照ピクチャを識別する第3の次元を有することができる。
【0073】
いくつかの実施形態では、インターピクチャ予測において双予測技法を使用することができる。双予測技法によれば、両方ともビデオ内の現在ピクチャよりも復号順序で前にある(が、それぞれ、表示順序で過去および将来であり得る)第1の参照ピクチャおよび第2の参照ピクチャなどの2つの参照ピクチャが使用される。現在ピクチャ内のブロックは、第1の参照ピクチャ内の第1の参照ブロックを指す第1の動きベクトル、および第2の参照ピクチャ内の第2の参照ブロックを指す第2の動きベクトルによってコード化することができる。ブロックは、第1の参照ブロックと第2の参照ブロックの組合せによって予測することができる。
【0074】
さらに、コーディング効率を改善するために、インターピクチャ予測においてマージモード技法を使用することができる。
【0075】
本開示のいくつかの実施形態によれば、インターピクチャ予測およびイントラピクチャ予測などの予測は、ブロックの単位で実行される。例えば、HEVC規格によれば、ビデオピクチャのシーケンス内のピクチャは、圧縮のためにコーディングツリーユニット(CTU)に分割され、ピクチャ内のCTUは、64×64ピクセル、32×32ピクセル、または16×16ピクセルなどの同じサイズを有する。一般に、CTUは3つのコーディングツリーブロック(CTB)を含み、それらは1つの輝度CTBおよび2つの彩度CTBである。各CTUは、1つまたは複数のコーディングユニット(CU)に再帰的に四分木分割することができる。例えば、64×64ピクセルのCTUは、1つの64×64ピクセルのCU、または4つの32×32ピクセルのCU、または16個の16×16ピクセルのCUに分割することができる。一例では、インター予測タイプまたはイントラ予測タイプなどのCUの予測タイプを決定するために、各CUが分析される。CUは、時間および/または空間の予測可能性に応じて、1つまたは複数の予測ユニット(PU)に分割される。一般に、各PUは、1つの輝度予測ブロック(PB)および2つの彩度PBを含む。一実施形態では、コーディング(符号化/復号)における予測動作は、予測ブロックの単位で実行される。予測ブロックの一例として輝度予測ブロックを使用すると、予測ブロックは、8×8ピクセル、16×16ピクセル、8×16ピクセル、16×8ピクセルなどのピクセルの値(例えば、輝度値)の行列を含む。
【0076】
図7は、本開示の別の実施形態による、ビデオエンコーダ(703)の図を示す。ビデオエンコーダ(703)は、ビデオピクチャのシーケンス内の現在ビデオピクチャ内でサンプル値の処理ブロック(例えば、予測ブロック)を受信し、処理ブロックをコード化ビデオシーケンスの一部であるコード化ピクチャに符号化するように構成される。一例では、ビデオエンコーダ(703)は、
図4の例のビデオエンコーダ(403)の代わりに使用される。
【0077】
HEVCの例では、ビデオエンコーダ(703)は、8×8サンプルの予測ブロックなどの処理ブロック用のサンプル値の行列を受信する。ビデオエンコーダ(703)は、処理ブロックが、例えば、レート歪み最適化を使用して、イントラモード、インターモード、または双予測モードを使用して最良にコード化されるかどうかを判定する。処理ブロックがイントラモードでコード化されるとき、ビデオエンコーダ(703)は、イントラ予測技法を使用して、処理ブロックをコード化ピクチャに符号化することができ、処理ブロックがインターモードまたは双予測モードでコード化されるとき、ビデオエンコーダ(703)は、それぞれ、インター予測技法または双予測技法を使用して、処理ブロックをコード化ピクチャに符号化することができる。特定のビデオコーディング技術では、マージモードは、予測器の外側のコード化された動きベクトル成分の利点がない、動きベクトルが1つまたは複数の動きベクトル予測器から導出されるインターピクチャ予測サブモードであり得る。特定の他のビデオコーディング技術では、対象ブロックに適用可能な動きベクトル成分が存在してもよい。一例では、ビデオエンコーダ(703)は、処理ブロックのモードを決定するためにモード決定モジュール(図示せず)などの他の構成要素を含む。
【0078】
図7の例では、ビデオエンコーダ(703)は、
図7に示されたように一緒に結合されたインターエンコーダ(730)、イントラエンコーダ(722)、残差計算器(723)、スイッチ(726)、残差エンコーダ(724)、汎用コントローラ(721)、およびエントロピーエンコーダ(725)を含む。
【0079】
インターエンコーダ(730)は、現在ブロック(例えば、処理ブロック)のサンプルを受信し、ブロックを参照ピクチャ内の1つまたは複数の参照ブロック(例えば、前のピクチャおよび後のピクチャ内のブロック)と比較し、インター予測情報(例えば、インター符号化技法による冗長情報、動きベクトル、マージモード情報の記述)を生成し、任意の適切な技法を使用して、インター予測情報に基づいてインター予測結果(例えば、予測ブロック)を計算するように構成される。いくつかの例では、参照ピクチャは、符号化されたビデオ情報に基づいて復号された復号参照ピクチャである。
【0080】
イントラエンコーダ(722)は、現在ブロック(例えば、処理ブロック)のサンプルを受信し、場合によっては、ブロックを同じピクチャ内のすでにコード化されたブロックと比較し、変換後に量子化係数を生成し、場合によっては、イントラ予測情報(例えば、1つまたは複数のイントラ符号化技法によるイントラ予測方向情報)も生成するように構成される。一例では、イントラエンコーダ(722)はまた、同じピクチャ内のイントラ予測情報および参照ブロックに基づいて、イントラ予測結果(例えば、予測ブロック)を計算する。
【0081】
汎用コントローラ(721)は、汎用制御データを決定し、汎用制御データに基づいてビデオエンコーダ(703)の他の構成要素を制御するように構成される。一例では、汎用コントローラ(721)は、ブロックのモードを決定し、モードに基づいてスイッチ(726)に制御信号を提供する。例えば、モードがイントラモードであるとき、汎用コントローラ(721)は、スイッチ(726)を制御して残差計算器(723)が使用するためのイントラモード結果を選択し、エントロピーエンコーダ(725)を制御してイントラ予測情報を選択し、ビットストリームにイントラ予測情報を含め、モードがインターモードであるとき、汎用コントローラ(721)は、スイッチ(726)を制御して残差計算器(723)が使用するためのインター予測結果を選択し、エントロピーエンコーダ(725)を制御してインター予測情報を選択し、ビットストリームにインター予測情報を含める。
【0082】
残差計算器(723)は、受信ブロックと、イントラエンコーダ(722)またはインターエンコーダ(730)から選択された予測結果との間の差(残差データ)を計算するように構成される。残差エンコーダ(724)は、残差データを符号化して変換係数を生成するために、残差データに基づいて動作するように構成される。一例では、残差エンコーダ(724)は、残差データを空間領域から周波数領域に変換し、変換係数を生成するように構成される。次いで、変換係数は、量子化変換係数を取得するために量子化処理を受ける。様々な実施形態では、ビデオエンコーダ(703)は残差デコーダ(728)も含む。残差デコーダ(728)は、逆変換を実行し、復号された残差データを生成するように構成される。復号された残差データは、イントラエンコーダ(722)およびインターエンコーダ(730)によって適切に使用することができる。例えば、インターエンコーダ(730)は、復号された残差データおよびインター予測情報に基づいて復号されたブロックを生成することができ、イントラエンコーダ(722)は、復号された残差データおよびイントラ予測情報に基づいて復号されたブロックを生成することができる。復号されたブロックは、復号されたピクチャを生成するために適切に処理され、復号されたピクチャは、メモリ回路(図示せず)にバッファリングされ、いくつかの例では参照ピクチャとして使用することができる。
【0083】
エントロピーエンコーダ(725)は、符号化されたブロックを含むようにビットストリームをフォーマットするように構成される。エントロピーエンコーダ(725)は、HEVC規格などの適切な規格に従って様々な情報を含めるように構成される。一例では、エントロピーエンコーダ(725)は、ビットストリーム内に汎用制御データ、選択された予測情報(例えば、イントラ予測情報またはインター予測情報)、残差情報、および他の適切な情報を含めるように構成される。開示された主題によれば、インターモードまたは双予測モードのいずれかのマージサブモードでブロックをコード化するときは残差情報が存在しないことに留意されたい。
【0084】
図8は、本開示の別の実施形態による、ビデオデコーダ(810)の図を示す。ビデオデコーダ(810)は、コード化ビデオシーケンスの一部であるコード化ピクチャを受信し、コード化ピクチャを復号して復元されたピクチャを生成するように構成される。一例では、ビデオデコーダ(810)は、
図4の例のビデオデコーダ(410)の代わりに使用される。
【0085】
図8の例では、ビデオデコーダ(810)は、
図8に示されたように一緒に結合されたエントロピーデコーダ(871)、インターデコーダ(880)、残差デコーダ(873)、復元モジュール(874)、およびイントラデコーダ(872)を含む。
【0086】
エントロピーデコーダ(871)は、コード化ピクチャから、コード化ピクチャが構成されるシンタックス要素を表す特定のシンボルを復元するように構成することができる。そのようなシンボルは、例えば、(例えば、イントラモード、インターモード、双予測モード、マージサブモードまたは別のサブモードのうちの後者2つなどの)ブロックがコード化されるモード、それぞれ、イントラデコーダ(872)またはインターデコーダ(880)による予測に使用される特定のサンプルまたはメタデータを識別することができる(例えば、イントラ予測情報またはインター予測情報などの)予測情報、例えば、量子化変換係数の形態の残差情報などを含むことができる。一例では、予測モードがインターモードまたは双予測モードであるとき、インター予測情報がインターデコーダ(880)に提供され、予測タイプがイントラ予測タイプであるとき、イントラ予測情報がイントラデコーダ(872)に提供される。残差情報は逆量子化を受けることができ、残差デコーダ(873)に提供される。
【0087】
インターデコーダ(880)は、インター予測情報を受信し、インター予測情報に基づいてインター予測結果を生成するように構成される。
【0088】
イントラデコーダ(872)は、イントラ予測情報を受信し、イントラ予測情報に基づいて予測結果を生成するように構成される。
【0089】
残差デコーダ(873)は、逆量子化を実行して逆量子化変換係数を抽出し、逆量子化変換係数を処理して、残差を周波数領域から空間領域に変換するように構成される。残差デコーダ(873)はまた、(量子化器パラメータ(QP)を含めるために)特定の制御情報を必要とする場合があり、その情報は、エントロピーデコーダ(871)によって提供される場合がある(これは、少量の制御情報のみである可能性があるので、データパスは描写されていない)。
【0090】
復元モジュール(874)は、空間領域において、残差デコーダ(873)によって出力された残差と(場合によってはインター予測モジュールまたはイントラ予測モジュールによって出力された)予測結果を組み合わせて、復元されたピクチャの一部であり得る復元されたブロックを形成するように構成され、復元されたピクチャは復元されたビデオの一部であり得る。見栄えを改善するために、デブロッキング動作などの他の適切な動作を実行することができることに留意されたい。
【0091】
ビデオエンコーダ(403)、(603)、および(703)、ならびにビデオデコーダ(410)、(510)、および(810)は、任意の適切な技法を使用して実装することができることに留意されたい。一実施形態では、ビデオエンコーダ(403)、(603)、および(703)、ならびにビデオデコーダ(410)、(510)、および(810)は、1つまたは複数の集積回路を使用して実装することができる。別の実施形態では、ビデオエンコーダ(403)、(603)、および(603)、ならびにビデオデコーダ(410)、(510)、および(810)は、ソフトウェア命令を実行する1つまたは複数のプロセッサを使用して実装することができる。
【0092】
本開示の態様は、コード化ビデオストリーム内の制約フラグによるコーディングツールおよび機能の制御技法を提供する。
【0093】
本開示の一態様によれば、ビットストリーム内のピクチャサイズは、同じままであってもよく、変化してもよい。いくつかの関連する例では、ビデオエンコーダおよびデコーダは、コード化ビデオシーケンス(CVS)、ピクチャグループ(GOP)、または同様のマルチピクチャタイムフレームに対して定義され、一定のままである所与のピクチャサイズに対して動作することができる。MPEG-2などの一例では、システム設計は、シーンのアクティビティなどの要因に応じて水平解像度(したがって、ピクチャサイズ)を変更することが知られているが、Iピクチャにおいてのみであり、したがって、ピクチャサイズは、通常、GOPに対して定義され、一定のままである。CVS内の異なる解像度を使用するための参照ピクチャの再サンプリングは、例えば、ITU-T Rec.H.263 Annex Pから知られている。しかしながら、CVS内のピクチャサイズは変化せず、参照ピクチャのみが再サンプリングされ、潜在的に、(例えばダウンサンプリングの場合)ピクチャキャンバスの一部のみが使用され、または(例えばアップサンプリングの場合)シーンの一部のみがキャプチャされることになる。H.263 Annex Qなどのいくつかの例では、各次元(例えば、上方または下方)で個々のマクロブロックを2倍だけ再サンプリングすることが許容される。しかしながら、ピクチャサイズは同じままである。マクロブロックのサイズが、例えば、H.263において固定され得るとき、マクロブロックのサイズはシグナリングされる必要はない。
【0094】
いくつかの関連する例では、予測ピクチャのピクチャサイズは変更することができる。VP9などの例では、参照ピクチャの再サンプリングおよびピクチャ全体の解像度の変更が許容される。いくつかの例(例えば、それらの全体が本明細書に組み込まれる、Hendryら、「On adaptive resolution change(ARC)for VVC」、Joint Video Team document JVET-M0135-v1、2019年1月9~19日)では、異なる解像度(例えば、より高い解像度またはより低い解像度)への参照ピクチャ全体の再サンプリングが許容される。異なる候補解像度は、シーケンスパラメータセット(SPS)内でコード化することができ、ピクチャパラメータセット(PPS)内でピクチャごとのシンタックス要素によって参照することができる。
【0095】
本開示の一態様によれば、ソースビデオは、異なる解像度などの異なる品質を有する1つまたは複数のレイヤを含むビットストリームにピクチャを符号化することができる階層化コーディングによって圧縮することができる。ビットストリームは、デコーダ側でどのレイヤ(またはレイヤのセット)を出力することができるかを指定するシンタックス要素を有することができる。出力されるレイヤのセットは、出力レイヤセットとして定義することができる。例えば、複数のレイヤおよびスケーラビリティをサポートするビデオコーデックでは、1つまたは複数の出力レイヤセットをビデオパラメータセット(VPS)内でシグナリングすることができる。ビットストリーム全体または1つもしくは複数の出力レイヤセット用のプロファイル階層レベル(PTL)を指定するシンタックス要素は、VPS、いくつかの例ではデコーダ機能情報(DCI)と呼ばれる場合があるデコーダパラネータセット(DPS)、SPS、PPS、SEIメッセージなどでシグナリングすることができる。PTL情報には、コーディングツールまたは機能に対する制約を指定することができる一般制約情報が存在することができる。様々なコーディングツールおよび機能向けの制約情報を効率的に表し、シグナリングすることが望ましい。
【0096】
いくつかの例では、「サブピクチャ」という用語は、例えば、意味的にグループ化され、変更された解像度で別々にコード化され得るサンプル、ブロック、マクロブロック、コーディングユニット、または同様のエンティティの矩形配置を指すために使用することができる。1つまたは複数のサブピクチャは、ピクチャを形成することができる。1つまたは複数のコード化されたサブピクチャは、コード化されたピクチャを形成することができる。1つまたは複数のサブピクチャはピクチャに組み立てることができ、1つまたは複数のサブピクチャはピクチャから抽出することができる。いくつかの例では、1つまたは複数のコード化されたサブピクチャは、サンプルレベルまでコード化されたピクチャにコード変換することなく、圧縮された領域内で組み立てることができる。いくつかの例では、1つまたは複数のコード化されたサブピクチャは、圧縮された領域内のコード化されたピクチャから抽出することができる。
【0097】
いくつかの例では、例えば、参照ピクチャ再サンプリングにより、CVS内のピクチャまたはサブピクチャの解像度の変更を可能にするメカニズムは、適応解像度変更(ARC)と呼ぶことができる。適応解像度変更を実行するために使用される制御情報は、ARCパラメータと呼ぶことができる。ARCパラメータは、フィルタパラメータ、倍率、出力および/または参照ピクチャの解像度、様々な制御フラグなどを含むことができる。
【0098】
いくつかの例では、ARCの符号化/復号はピクチャ単位であり、したがって、制御情報(ARCパラメータ)のセットは、単一の意味的に独立したコード化ビデオピクチャを符号化/復号するために使用される。いくつかの例では、ARCの符号化/復号はサブピクチャ単位であり、したがって、ピクチャ内の複数のサブピクチャは、独立したARCパラメータで符号化/復号することができる。ARCパラメータは、様々な技法を使用してシグナリングされ得ることに留意されたい。
【0099】
図9は、本開示のいくつかの実施形態による、ARCパラメータをシグナリングするための技法の例(例えば、オプション)を示す。コーディング効率、複雑さ、およびアーキテクチャは、例によって異なる可能性がある。ビデオコーディング規格または技術は、ARCパラメータをシグナリングするために、例または他の変形例のうちの1つまたは複数を選択することができる。例は、相互に排他的でなくてもよく、用途のニーズ、標準技術、エンコーダの選択などに基づいて交換されてもよい。
【0100】
本開示の一態様によれば、ARCパラメータは、様々な方式でARCパラメータのクラスとして提供されてもよい。いくつかの例では、ARCパラメータのクラスは、X次元およびY次元において分離または結合されたアップサンプル係数および/またはダウンサンプル係数を含む。一例では、アップサンプル係数および/またはダウンサンプル係数を含むテーブルを指すことができる1つまたは複数の短いシンタックス要素をコード化することができる。
【0101】
いくつかの例では、所与の数のピクチャに対する一定の速度のズームインおよび/またはズームアウトを示す、時間次元を追加したアップサンプル係数および/またはダウンサンプル係数を含む。一例では、アップサンプル係数および/またはダウンサンプル係数を含むテーブルを指すことができる1つまたは複数の短いシンタックス要素をコード化することができる。
【0102】
いくつかの例では、ARCパラメータのクラスは、組み合わされるかまたは別々の入力ピクチャ、出力ピクチャ、参照ピクチャ、コード化ピクチャの、サンプル、ブロック、マクロブロック、CU、または任意の他の適切な粒度の単位でのX次元またはY次元の解像度を含む。いくつかの例では、ビデオコーディングにおいて使用される2つ以上の解像度(例えば、入力ピクチャ用の1つの解像度、参照ピクチャ用の別の解像度)が存在し、(解像度のうちの1つに対応する)値のセットは、(解像度のうちの別のものに対応する)値の別のセットから推測することができる。値の決定は、例えば、フラグの使用に基づいてゲーティングすることができる。ゲーティングのためのフラグの使用は、さらなる説明において詳細に記載される。
【0103】
いくつかの例では、ARCパラメータのクラスは、上述された適切な粒度でH.263 Annex Pで使用されるものに類似するワーピング座標を含む。H.263 Annex Pは、ワーピング座標をコード化する効率的な方法を定義する。他の効率的な方法を考案することができる。例えば、Annex Pのワーピング座標の可変長可逆性ハフマンスタイルコーディングは、適切な長さのバイナリコーディングによって置き換えることができ、バイナリコードワードの長さは、係数を乗算し、最大ピクチャサイズの境界の外側のワーピングを可能にする値だけオフセットされた最大ピクチャサイズから導出することができる。
【0104】
いくつかの例では、ARCパラメータのクラスは、アップサンプルおよび/またはダウンサンプルのフィルタパラメータを含む。一例では、アップサンプリングおよび/またはダウンサンプリング用の単一のフィルタのみが存在する。別の例では、複数のフィルタを使用することができる。いくつかの例では、フィルタパラメータは、フィルタ設計のさらなる柔軟性を可能にするためにシグナリングされてもよい。フィルタパラメータは、可能なフィルタ設計のリスト内のインデックスを使用して選択することができる。フィルタは、(例えば、適切なエントロピーコーディング技法を使用してフィルタ係数のリストを指定することによって)完全に指定されてもよく、フィルタは、上述されたメカニズムのいずれかに従ってシグナリングされるアップサンプル比またはダウンサンプル比によって暗黙的に選択されてもよい、などである。
【0105】
以下の説明では、アップサンプル係数またはダウンサンプル係数の有限のセット(X次元およびY次元の両方で使用される同じ係数)は、コードワードを介してARCパラメータをシグナリングすることを示すために使用される。いくつかの例では、コードワードは、例えば、ビデオコーディング仕様(例えば、H.264およびH.265)における特定のシンタックス要素に対してExt-Golombコードを使用して可変長コード化することができる。
【0106】
図10は、アップサンプル係数またはダウンサンプル係数、コードワード、およびExt-Golombコードのマッピング用のテーブル(1000)の一例を示す。
【0107】
ビデオ圧縮技術または規格で利用可能なアップスケールおよびダウンスケールのメカニズムの用途および機能に従って、他の同様のマッピングを考案することができることに留意されたい。いくつかの例では、表1は追加の値に対して適切に拡張することができる。値は、例えば、バイナリコーディングを使用してExt-Golombコード以外のエントロピーコーディングメカニズムによって表されてもよい。一例では、Ext-Golombコード以外のエントロピーコーディングメカニズムは、例えば、メディアアウェアネットワーク要素(MANE)により、再サンプリング係数がビデオ処理エンジン(例えば、エンコーダおよびデコーダ)の外部に関心があるとき、特定の利点を有してもよい。解像度の変更が必要とされない(例えば、オリジナル/ターゲット解像度が表1の1である)とき、短いExt-Golombコード(例えば、表1に示された単一ビットのみ)を選択することができ、それは、例えば、最も一般的な場合にバイナリコードを使用するよりもコーディング効率の利点を有することができる。
【0108】
本開示の一態様によれば、表1などのマッピングテーブルは構成可能であり得る。例えば、表1のいくつかの項目および対応するセマンティクスは、完全にまたは部分的に構成可能であり得る。例えば、マッピングテーブルの基本的な概要は、SPSまたはDPSなどの高レベルパラメータセット内で伝達される。代替または追加として、いくつかの例では、表1と同様の1つまたは複数のテーブルは、ビデオコーディング技術または規格で定義されてもよく、テーブルのうちの1つは、例えば、SPSまたはDPSを介して選択されてもよい。
【0109】
上述されたようにコード化されたアップサンプル係数またはダウンサンプル係数などのARC情報は、ビデオコーディング技術または規格のシンタックスに含まれてもよい。アップサンプルフィルタまたはダウンサンプルフィルタなどの他のクラスのARC情報を制御するために、1つまたは複数のコードワードを使用することができることに留意されたい。いくつかの例では、フィルタまたは他のデータ構造に比較的大量のデータが必要とされる。
【0110】
図9を参照すると、H.263 Annex Pなどの例(910)では、ARC情報(912)は、4つのワーピング座標の形態であり得、H.263 PLUSPTYPE(913)ヘッダ拡張などのピクチャヘッダ(911)に含まれる。例(910)は、i)ピクチャヘッダが利用可能であり、ii)ARC情報の頻繁な変更が予想されるときに適用することができる。しかしながら、例(910)に図示されたものなどのH.263スタイルのシグナリングを使用するときのオーバーヘッドは高くなる可能性があり、ピクチャヘッダは過渡的な性質であり得るので、倍率はピクチャ境界の間に適用できない場合がある。
【0111】
図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)の制限されたセット内で変化することができる。
【0112】
図9は、ビデオビットストリーム内でARC情報を伝達するために使用され得る、例(930)、(940)、および(950)などの追加の技法も示す。技法は個別に使用されてもよく、または同じビデオコーディング技法もしくは規格の中の適切な組合せで使用されてもよい。
【0113】
図9を参照すると、例(930)では、再サンプリング係数(またはズーム係数)などのARC情報(939)は、スライスヘッダ、GOBヘッダ、タイルヘッダ、タイルグループヘッダなどのヘッダ内に存在する場合がある。例えば、タイルグループヘッダ(938)が
図9に示されている。例(930)によって示された技法は、ARC情報(939)が単一の可変長ue(v)または数ビットの固定長コードワードなどの少数のビットでコード化され得るときに使用することができる。
【0114】
本開示の一態様によれば、ヘッダ(例えば、
図9のタイルグループヘッダ(938)、スライスヘッダ、またはタイルヘッダ)内にARC情報(939)を直接有することは、ARC情報(939)が、ピクチャ全体ではなく、例えば、対応するタイルグループ(またはスライス、タイル)によって表されるサブピクチャに適用可能であり得るという点で、さらなる利点を有することができる。加えて、一例では、ビデオ圧縮技術または規格が、(例えば、タイルグループベースの適応解像度変更とは対照的に)全ピクチャ適応解像度変更のみを想定する場合でも、例(930)は、エラー回復力の観点から例(910)と比較して特定の利点を有することができる。
【0115】
図9を参照すると、例(940)では、ARC情報(942)は、PPS、ヘッダパラメータセット、タイルパラメータセット、適応パラメータセット(APS)などのパラメータセット(941)内に存在する場合がある。例えば、APS(941)が
図9に示されている。いくつかの例では、パラメータセット(941)の範囲は、ピクチャよりも大きくない可能性があり、例えば、ピクチャ、タイルグループなどであり得る。ARC情報(例えば、ARC情報(942))の使用は、関連するパラメータセット(例えば、APS(941))のアクティブ化を介して暗黙であり得る。例えば、ビデオコーディング技術または規格がピクチャベースのARCのみを企図するとき、PPSまたは均等物が適切であり得る。
【0116】
図9を参照すると、例(950)では、ARC参照情報(953)は、上述されたように、タイルグループヘッダ(954)または同様のデータ構造(例えば、ピクチャヘッダ、スライスヘッダ、タイルヘッダ、もしくはGOPヘッダ)内に存在する場合がある。例えば、タイルグループヘッダ(954)が
図9に示されている。ARC参照情報(953)は、例えば、SPS、DPSなどの単一のピクチャを超える範囲を有するパラメータセット(956)内で利用可能なARC情報(955)のサブセットを参照することができる。例えば、SPS(956)が
図9に示されている。
【0117】
図11は、本開示のいくつかの実施形態による、ARCパラメータシグナリングのいくつかの例を示す。
図11は、ビデオコーディング規格で使用されるシンタックス図の例を示す。一例では、シンタックス図の表記法は、おおよそC型プログラミングに従う。太字の線は、ビットストリーム内に存在するシンタックス要素を示すことができ、太字でない線は、制御フローまたは変数の設定を示すことができる。
【0118】
図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))内でシグナリングすることができる。
【0119】
図11を参照すると、SPS(1110)の抜粋が示されている。SPS(1110)は、フラグ(1111)(例えば、adaptive_pic_resolution_change_flag)である第1のシンタックス要素(1111)を含む。フラグ(1111)が真であるとき、フラグ(1111)は、特定の制御情報を必要とする場合がある適応解像度の使用を示すことができる。一例では、特定の制御情報は、SPS(1110)およびタイルグループヘッダ(1101)内のif()文(1112)によって示されたように、条件付きでフラグ(1111)の値に基づいて存在する。
【0120】
図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である)などを制限することができる。一例では、ハードウェア実装を容易にするために上記の制限が導入されてもよい。
【0121】
特定の用途では、エンコーダは、サイズが出力ピクチャサイズであると暗黙的に仮定するのではなく、特定の参照ピクチャサイズを使用するようにデコーダに指示することができる。例えば、シンタックス要素(例えば、reference_pic_size_present_flag)(1114)は、参照ピクチャ寸法(1115)の条件付き存在をゲーティングする。参照ピクチャ寸法(1115)は、一例では、幅(例えば、reference_pic_width_in_luma_samples)と高さ(例えば、reference_pic_height_in_luma_samples)の両方を含むことができる。
【0122】
また
図11には、適用可能な復号ピクチャの幅および高さのテーブルが示されている。一例では、テーブル内の項目の数は、テーブル指示(例えば、シンタックス要素num_dec_pic_size_in_luma_samples_minus1)(1116)によって表すことができる。「minus1」は、シンタックス要素(1116)の値の解釈を指すことができる。例えば、コード化された値が0である場合、1つのテーブル項目が存在する。コード化された値が5である場合、6つのテーブル項目が存在する。テーブル内の項目ごとに、復号されたピクチャの幅および高さは、シンタックス要素(1117)として含まれる。
【0123】
シンタックス要素(1117)によって表されるテーブル項目は、タイルグループヘッダ(1101)内のシンタックス要素dec_pic_size_idx(1102)を使用してインデックス付けすることができ、したがって、タイルグループごとに異なる復号サイズおよびズーム率を可能にする。
【0124】
本開示の一態様によれば、特定のビデオコーディング技術または規格(例えば、VP9)は、時間スケーラビリティとともに、特定の形式の参照ピクチャ再サンプリングを実施することによって空間スケーラビリティを可能にすることができる。一実施形態では、参照ピクチャは、ARCスタイル技術を使用してより高い解像度にアップサンプリングされて、空間エンハンスメントレイヤのベースを形成する。アップサンプリングされたピクチャは、例えば詳細を追加するために、高解像度で通常の予測メカニズム(例えば、参照ピクチャからのインター予測のための動き補償予測)を使用して改良することができる。
【0125】
いくつかの例では、ネットワーク抽象化レイヤ(NAL)ユニットヘッダ内の値、例えば、temporal IDフィールドは、時間レイヤ情報および空間レイヤ情報を示すために使用される。時間レイヤ情報と空間レイヤ情報の両方を示すためにNALユニットヘッダ内の値を使用することにより、修正なしにスケーラブル環境のための既存の選択された転送ユニット(SFU)の使用を可能にすることができる。例えば、既存のSFUは、NALユニットヘッダのtemporal ID値に基づいて、時間レイヤで選択された転送用に作成および最適化することができる。次いで、いくつかの例では、既存のSFUは、修正なしで空間スケーラビリティ(例えば、空間レイヤの選択)に使用することができる。いくつかの例では、NALユニットヘッダ内のtemporal IDフィールドによって示されたコード化されたピクチャサイズと時間レイヤとの間でマッピングを実現することができる。
【0126】
本開示の一態様によれば、コード化ビットストリームのいくつかの特徴は、プロファイル、階層、レベル、および一般制約情報を含むプロファイル、階層、およびレベル(PTL)情報を使用して指定することができる。いくつかの例では、プロファイルは、色再現、解像度、追加のビデオ圧縮などのビットストリームの特徴のサブセットを定義する。ビデオコーデックは、ベースラインプロファイル(例えば、圧縮比が低い単純なプロファイル)、高プロファイル(圧縮率が高い複雑なプロファイル)、メインプロファイル(例えば、ベースラインプロファイルと高プロファイルとの間の中程度の圧縮比を有するプロファイルがデフォルトのプロファイル設定であり得る)などの様々なプロファイルを定義することができる。
【0127】
さらに、階層およびレベルは、最大ビットレート、最大輝度サンプルレート、最大輝度ピクチャサイズ、最小圧縮比、許容されるスライスの最大数、許容されるタイルの最大数などに関してビットストリームを定義する特定の制約を指定するために使用することができる。下位階層は上位階層よりも制約され、下位レベルは上位レベルよりも制約される。一例では、規格は、MainおよびHighの2つの階層を定義することができる。Main階層はHigh階層よりも下位の階層である。階層は、最大ビットレートに関して異なるアプリケーションに対処するために作成される。一例では、Main階層はほとんどのアプリケーション用に設計されており、High階層は非常に要求が厳しいアプリケーション用に設計されている。規格は複数のレベルを定義することができる。レベルは、ビットストリーム向けの制約のセットである。一例では、レベル4を下回るレベルの場合、Main階層のみが許容される。いくつかの例では、所与の階層/レベルに準拠するデコーダは、その階層/レベルおよびすべての下位の階層/レベルについて符号化されたすべてのビットストリームを復号できることが必要とされる。
【0128】
一般制約情報は、ビデオソースタイプ、コーディングツール、および機能に関する制約情報を含んでもよい。例えば、制約フラグは、インターコーディングツール、イントラコーディングツール、DBF、エントロピーコーディング、変換、分割(例えば、タイル、スライス)、バッファ管理、ランダムアクセス(例えば、IDR)、パラメータセット(例えば、SPS、PPS)などが、コード化ビデオビットストリーム内に存在するか、またはそこで使用されるかどうかを示すことができる。制約情報は、パラメータセット(例えば、SPS、VPS、またはDCI)内でシグナリングすることができる。制約フラグは、高レベルシンタックス構造(例えば、SPS、VPS、DCI)内でシグナリングすることができる。
【0129】
本開示のいくつかの態様によれば、PTL情報は、範囲(例えば、ビットストリーム内のコード化ビデオデータの一部分)と関連付けることができる。いくつかの例では、PTL情報は、例えば、ビットストリーム全体、ビットストリームのCVS、ビットストリームの各出力レイヤセットなどに対して指定することができ、VPS、DPS、DCI、SPS、PPS、APS、GOP、シーケンス、ヘッダ、SEIメッセージなどの高レベルシンタックス(HLS)構造内でシグナリングすることができる。
【0130】
いくつかの例では、高レベルシンタックス(HLS)は、ブロックレベルに関して定義される。ブロックレベルコーディングツールは、ピクチャ内のピクセルまたはサンプルを復号してピクチャを復元するために使用することができる。ブロックレベルコーディングツールは、インター予測用のコーディングツール(すなわちインターコーディングツール)、イントラ予測用のコーディングツール(すなわちイントラコーディングツール)、適応ループフィルタ(ALF)、デブロッキングフィルタ(DBF)、エントロピーコーディング、変換などの、コーディングブロックの復元に使用される任意の適切なコーディングツールを含むことができる。
【0131】
高レベルシンタックス(HLS)は、機能、システムインターフェース、ツールのピクチャレベルの制御、およびバッファ制御などに関する情報を指定することができる。例えば、HLSは、パーティション(例えば、タイル、スライス、サブピクチャ)、バッファ管理、ランダムアクセス(例えば、IDR、クリーンランダムアクセス(CRA))、パラメータセット(例えば、VPS、SPS、PPS、APS)、参照ピクチャ再サンプリング(RPR)、スケーラビリティなどを指定することができる。高レベルシンタックスは、ブロックレベルより上であり得る。
【0132】
制御情報は、SPSレベルツール制御情報、PPSレベルツール制御情報、シーケンスレベル制御情報、ビットストリームレベル制御情報などの適切なレベルを有することができる。いくつかの例では、PTL情報は制御情報の一部であり、HLS構造内の制約フラグとしてシグナリングすることができ、HLS構造に対応する範囲内のツールの制御または制約を示すことができる。例えば、制約フラグは、シーケンスレベル制御情報およびビットストリームレベル制御情報のうちの1つの中に提供することができる。一例では、特定のツールがHLS構造内の制約フラグによって無効にされる場合、ツールは、例えば、HLSに対応する範囲内のブロックをコード化するために使用されない。
【0133】
図12および
図13は、本開示のいくつかの実施形態による、PTL情報の一例を示す。
図12は、PTLシンタックス要素のセットのシンタックス構造例(1200)を示し、
図13は、一般制約情報のシンタックス構造例(1300)を示す。
【0134】
図12では、PTLシンタックス要素のセットは、general_profile_idc、general_tier_flag、general_level_idc、num_sub_profiles、general_sub_profile_idc、sublayer_level_present_flag、ptl_alignment_0_bit、およびsublayer_level_idcを含むことができる。
【0135】
図13では、一般制約情報は複数の制約フラグを含むことができる。一例では、1に等しい制約フラグ(例えば、intra_only_constraint_flag)(1305)は、パラメータsh_slice_typeがIであるべき(すなわち、スライスがイントラスライスである)ことを示す。パラメータsh_slice_typeは、タイプI、P、およびBの間のスライスのコーディングタイプを指定するスライスヘッダ内のパラメータである。0に等しい制約フラグ(例えば、intra_only_constraint_flag)(1305)は、他の情報(例えば、profile_idc)が非イントラスライスを許容することができるPTL情報の範囲内のすべてのコード化ピクチャに対して制約(例えば、sh_slice_typeはIであるべき)を課さない。別の例では、1に等しい制約フラグ(例えば、no_alf_constraint_flag)(1306)は、PTL情報の範囲内のすべてのCVSに対してsps_alf_enabled_flagが0に等しいことを示すことができ、したがって、例えばprofile_idcに基づいて適応ループフィルタリングが許可された場合でも、適応ループフィルタリングは使用されない。0に等しい制約フラグ(例えば、no_alf_constraint_flag)(1306)は、上記の制約を課さない。
【0136】
別の例では、
図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)は、上記の制約を課さない。
【0137】
別の例では、
図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)は、上記の制約を課さない。
【0138】
一実施形態では、制約フラグ(例えば、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に等しくない場合がある。
【0139】
一般制約情報内の複数の制約フラグは、特定の順序でソートすることができる。順序は、例えば、PTLの範囲内で使用されていないそれぞれのメカニズムおよび/またはツールの可能性に基づいて設定することができる。順序は優先順位と呼ぶことができる。順序は、一般制約情報シンタックス構造内で高い優先度から低い優先度へ提示することができ、高い優先度は、ツール(またはメカニズム)の不使用の可能性が高いことを示し、低い優先度は、ツール(またはメカニズム)の不使用の可能性が低いことを示す。順序に影響を及ぼす追加の要因は、特定のユースケース(例えば、サブピクチャ、スケーラビリティ、および/またはインターレースサポートのためのツール)にのみ使用される可能性が高いツール、エンコーダ/デコーダ/実装の複雑さに対するツールの影響などを含むことができる。
【0140】
図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は負でない整数であり得る。
【0141】
一実施形態では、値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で割り切れる数になるように選択することができる。
【0142】
いくつかの例では、制約フラグは、1つまたは複数の制約情報グループに分類することができる。各制約情報グループは、1つまたは複数の制約フラグを含むことができ、対応するゲートフラグを有することができる。対応する制約情報グループのゲートフラグは、対応する制約情報グループ内の制約フラグが存在する場合があるかどうかを示すことができる。一例では、ゲートフラグは制約グループ存在フラグと呼ぶことができる。概して、ゲートフラグは、対応する制約情報グループと関連付けられ、対応する制約情報グループ内の制約フラグと関連付けられる。一実施形態では、ゲートフラグは、対応する制約情報グループ内の制約フラグが制約情報内に存在する(またはシグナリングされる)かどうかをゲーティングする。例えば、対応する制約情報グループのゲートフラグが1に等しい場合、制約情報グループに対応する制約フラグは、例えば、一般制約情報内に存在することができる。対応する制約情報グループのゲートフラグが0に等しい場合、制約情報グループに対応する制約フラグは、例えば、一般制約情報内に存在しない場合がある。一例では、すべてのゲートフラグが0に等しい場合、制約フラグは存在しない。
【0143】
制約フラグは異なる範囲を有することができる。例えば、DCI内の制約フラグの範囲は、コード化ビデオビットストリームであり得る。VPS内の制約フラグの範囲は、複数のレイヤを有するCLVSであり得る。SPS内の制約フラグの範囲は、単一のCLVSであり得る。
【0144】
図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つまたは複数のゲートフラグを含む。
図15Aに示されたように、1つまたは複数のゲートフラグ(例えば、ゲートフラグ(1501)~(1508))は、一般制約情報シンタックス構造(1500)の先頭に存在することができる。
【0145】
ゲートフラグ(例えば、general_frame_structure_constraint_group_flag)(1501)は、制約情報グループ(1510)と関連付けられ、制約情報グループ(1510)内にある制約フラグ(1511)~(1514)と関連付けられる。ゲートフラグ(例えば、general_frame_structure_constraint_group_flag)(1501)が1に等しいことは、制約情報グループ(1510)内にある制約フラグ(1511)~(1514)が存在する場合があることを指定することができる。
【0146】
制約情報グループ(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)に対応する。そうでない場合、ゲートフラグ(例えば、general_frame_structure_constraint_group_flag)(1501)が0に等しいことは、制約情報グループ(1510)内にある制約フラグ(1511)~(1514)が一般制約情報シンタックス構造(1500)内に存在しない場合があることを指定することができる。
【0147】
さらに、いくつかの例では、ゲートフラグ(例えば、high_level_functionality_constraint_group_flag)(1502)が1に等しいことは、制約情報グループ(1520)内にある高レベル機能(例えば、参照ピクチャ再サンプリング)に関係する制約フラグが、
図15Bによって示されたように存在する場合があることを指定することができる。そうでない場合、ゲートフラグ(例えば、high_level_functionality_constraint_group_flag)(1502)が0に等しいことは、制約情報グループ(1520)内にある制約フラグが一般制約情報シンタックス構造(1500)内に存在しない場合があることを指定することができる。
【0148】
再び
図15Aを参照すると、ゲートフラグ(例えば、scalability_constraint_group_flag)(1503)が1に等しいことは、スケーラビリティ(例えば、インターレイヤ予測)に関係する制約フラグが存在する場合があることを指定することができる。そうでない場合、スケーラビリティに関係する制約フラグは、一般制約情報シンタックス構造(1500)内に存在しない場合がある。
【0149】
ゲートフラグ(例えば、partitioning_constraint_group_flag)(1504)が1に等しいことは、高レベル分割(例えば、サブピクチャまたはタイル)に関係する制約フラグが存在する場合があることを指定することができる。そうでない場合、高レベル分割に関係する制約フラグは、一般制約情報シンタックス構造(1500)内に存在しない場合がある。
【0150】
ゲートフラグ(例えば、intra_coding_tool_constraint_group_flag)(1505)が1に等しいことは、イントラコーディング(例えば、イントラ予測)に関係する制約フラグが存在する場合があることを指定することができる。そうでない場合、イントラコーディングに関係する制約フラグは、一般制約情報シンタックス構造(1500)内に存在しない場合がある。
【0151】
ゲートフラグ(例えば、inter_coding_tool_constraint_group_flag)(1506)が1に等しいことは、インターコーディング(例えば、インターピクチャ予測のための動き補償)に関係する制約フラグが存在する場合があることを指定することができる。そうでない場合、インターコーディングに関係する制約フラグは、一般制約情報シンタックス構造(1500)内に存在しない場合がある。
【0152】
ゲートフラグ(例えば、transfom_contraint_group_flag)(1507)が1に等しいことは、変換コーディング(例えば、複数の変換行列)に関係する制約フラグが存在する場合があることを指定することができる。そうでない場合、変換コーディングに関係する制約フラグは、一般制約情報シンタックス構造(1500)内に存在しない場合がある。
【0153】
一実施形態では、すべてのゲートフラグ(例えば、
図15Aのゲートフラグ(1501)~(1508))が0に等しいとき、一般制約情報シンタックス構造(例えば、一般制約情報シンタックス構造(1500))内に制約フラグは存在しない。
【0154】
本開示の態様によれば、シンタックスは、ゲートフラグ(例えば、ゲートフラグ(1501)~(1508))、関連する制約フラグ(例えば、制約フラグ(1511)~(1512)、および制約情報グループ(1520)内の制約フラグ)、追加の制御情報などを含む制御情報がバイトアライメントできるように、例えばバイトアライメントを維持するためにフラグの数が8で割り切れるように設計することができる。一例では、制約情報(例えば、一般制約情報シンタックス構造(1500))内のゲートフラグおよび制約フラグの数は8で割り切れる。バイトアライメントメカニズムは、制御情報のバイトアライメントを実現するために使用することができる。
図15Bを参照すると、シンタックス(例えば、whileループ)(1530)は、バイトアライメントに使用することができる。
【0155】
いくつかの実施形態では、制約情報内のゲートフラグに関連付けられたそれぞれの制約情報グループ内の制約フラグを提示することを支援するために、(例えば、シンタックス要素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[]、および制約フラグは、一般制約情報シンタックス構造内に存在しない。
【0156】
一実施形態では、制約情報オフセット(例えば、シンタックス要素constraint_info_offset[i])および制約情報長さ(例えば、シンタックス要素constraint_info_length[i])は、制約情報(例えば、一般制約情報シンタックス構造)内の制約情報グループi(iは正の整数)用の制約フラグを提示することを支援することができる。一例では、制約情報オフセット(例えば、シンタックス要素constraint_info_offset[i])の値が5に等しく、制約情報長さ(例えば、シンタックス要素constraint_info_length[i])の値が3に等しいとき、5番目、6番目、および7番目の制約フラグが、制約情報グループiに関連付けられ、制約情報(例えば、一般制約情報シンタックス構造)内に存在する。
【0157】
一例では、ランレングスコーディングは、所定の順序(または所与の順序)で指定される制約フラグをコード化するために使用することができる。
【0158】
一実施形態では、制約フラグが所定の順序(または所与の順序)で指定される場合にランレングスコーディングを使用することができる。制約フラグを直接コード化する代わりに、「スキップ」値の適切にコード化されたリストは、0に等しい制約フラグを示すことができ、その後に続く制約フラグは1に等しいと暗示される。上述されたランコーディングは、(i)制約フラグの数が多く、(ii)制約フラグのごく一部が1に等しい場合に特に効率的であり得る。
【0159】
一実施形態では、少なくとも1つの制約情報グループのうちの1つまたは複数は、コード化ビデオビットストリーム内に存在する。少なくとも1つの制約情報グループのうちの1つまたは複数の中の複数の制約フラグは、所定の順序に従ってシグナリングされる。それに応じて、複数の制約フラグは、ランコーディング(例えば、ラン符号化またはラン復号)することができる。さらに、コーディングブロックのサブセット用の予測情報は、複数の制約フラグに基づいて決定することができる。
【0160】
一実施形態では、ゲートフラグの制約情報グループ内の少なくとも1つの制約フラグは、所定の順序に従ってシグナリングされる複数の制約フラグを含む。それに応じて、複数の制約フラグは、ランコーディング(例えば、ラン符号化またはラン復号)することができる。
【0161】
一実施形態では、制約フラグの完全なリストは、ビデオコーディング規格(例えば、VVC仕様)、外部テーブルなどで指定することができる。一例では、制約フラグのうちの利用可能な制約フラグのみが、例えば、以下のコード化ビデオストリーム内に存在する利用可能な制約フラグ(例えば、num_available_constraint_flags)、ゲートフラグ(または制約グループ存在フラグ)の数、制約情報オフセット情報、および制約情報長さ情報などのうちの1つまたは複数によって示される。
【0162】
一例では、制約フラグの完全なリストが指定され、エンコーダおよびデコーダに利用可能である。制約フラグの完全なリストは、デコーダに保存することができる。制約フラグの完全なリストは、100個の制約フラグを含むことができる。100個の制約フラグのうちの10個は、CLVS用の制約情報内に存在し、したがって、CLVS内のコーディングブロックのサブセットに利用可能である。100個の制約フラグのうちの10個は、10個の利用可能な制約フラグと呼ばれる。一例では、利用可能な制約フラグの数(例えば、10)がシグナリングされる。一例では、10個の利用可能な制約フラグは、2つの制約情報グループ内にあり、第1のゲートフラグおよび第2のゲートフラグによってゲーティングされる。したがって、第1のゲートフラグおよび第2のゲートフラグは、10個の利用可能な制約フラグを示すようにシグナリングすることができる。
【0163】
一例では、第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番目の制約フラグが利用可能であるか、または制約情報内に存在することを示す。
【0164】
一実施形態では、適切な制御情報を使用して、制約フラグを効率的にコード化するための様々な技法(または方法、実施形態、例)のいずれかを組み合わせることができる。組合せは、そのような技法のうちの2つ以上の適切な組合せであり得る。あるいは、様々な技法(または方法、実施形態、例)のうちの1つを単独で使用することができる。制約フラグはグループ化することができる。特定のグループでは、ランコーディングを使用することができるが、他のグループは、単純なバイナリコーディングを使用することができる。
【0165】
制約フラグの最大数(例えば、MaxNumConstraintFlags)の値は、16、32、64,128などであるように事前定義することができる。
【0166】
制約フラグの最大数(例えば、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の範囲内であり得る。
【0167】
一実施形態では、制約フラグの数(例えば、num_available_constraint_flags)の値は、general_profile_idcもしくはgeneral_sub_profile_idcなどのプロファイル情報、またはコーデックバージョン情報によって事前定義された値に等しいと推測することができるので、num_available_constraint_flagsの値は、明示的にシグナリングすることなく決定することができる。
【0168】
いくつかの実施形態では、予約バイト情報は、一般制約情報シンタックス構造内に存在することができる。例えば、
図13に示されたように、フラグgci_num_reserved_bytes(1303)およびgci_reserved_bytes[](1304)は、一般制約情報シンタックス構造の拡張用の一般制約情報シンタックス構造内に存在することができる。フラグgci_num_reserved_bytesは、予約制約バイトの数を指定することができる。一例では、予約制約バイトは、追加のフラグ(例えば、追加の制約フラグ)をシグナリングするためのものである。フラグgci_reserved_byte[]は、任意の適切な値を有してもよい。
【0169】
一実施形態では、gci_num_reserved_bytesの値は、general_profile_idcもしくはgeneral_sub_profile_idcなどのプロファイル情報、またはコーデックバージョン情報によって制限または決定されてもよい。基本プロファイル(またはメインプロファイル)では、フラグgci_num_reserved_bytesの値は0であり得る。拡張プロファイル(またはアドバンストプロファイル)では、gci_num_reserved_bytesの値は0より大きくなり得る。
【0170】
いくつかの実施形態では、フィールドシーケンスフラグは、コード化ビデオビットストリーム内でシグナリングすることができる。フィールドシーケンスフラグは、出力レイヤ内のピクチャがフィールドコーディングでコード化されているかどうかを示すことができる。いくつかの例では、フィールドシーケンスフラグは、シンタックス要素sps_field_seq_flagを使用してSPS内でシグナリングすることができる。一実施形態では、フラグsps_field_seq_flagはSPS内に存在してもよい。フラグsps_field_seq_flagが1に等しいことは、CLVSがフィールドを表すピクチャを伝達することを示すことができる。フラグsps_field_seq_flagが0に等しいことは、CLVSがフレームを表すピクチャを伝達することを示すことができる。
【0171】
図13の一般制約情報シンタックス構造では、フラグgeneral_frame_only_constraint_flagが存在する場合がある。フラグgeneral_frame_only_constraint_flagが1に等しいことは、出力レイヤセット用の範囲(例えば、OlsInScope)がフレームを表すピクチャを伝達することを指定することができる。フラグgeneral_frame_only_constraint_flagが0に等しいことは、出力レイヤセット用の範囲(例えば、OlsInScope)がフレームを表す場合と表さない場合があるピクチャを伝達することを指定する。一実施形態では、フラグgeneral_frame_only_constraint_flagは、出力レイヤセット内のピクチャがフィールドコーディングでコード化されているかどうかを示す。出力レイヤセットは、コーディングブロックのサブセットを含むことができる。フラグsps_field_seq_flagは、ピクチャのサブセットがフィールドコーディングでコード化されていないことをフラグgeneral_frame_only_constraint_flagが示す(例えば、1である)ことに基づいて、偽であり得る。ピクチャのサブセットは、出力レイヤセットのうちの1つのレイヤ内にあり得る。
【0172】
フラグgeneral_frame_only_constraint_flagが1に等しいとき、フラグsps_field_seq_flagの値は0に等しい場合がある。
【0173】
一実施形態では、フラグpps_mixed_nalu_types_in_pic_flagがPPS内に存在する場合がある。フラグpps_mixed_nalu_types_in_pic_flagが1に等しいことは、PPSを参照する各ピクチャが2つ以上のVCL NALユニットを有し、VCL NALユニットが同じ値のnal_unit_typeをもたないことを指定することができる。フラグpps_mixed_nalu_types_in_pic_flagが0に等しいことは、PPSを参照する各ピクチャが1つまたは複数のVCL NALユニットを有し、PPSを参照する各ピクチャのVCL NALユニットが同じ値のnal_unit_typeを有することを指定することができる。
図13の一般制約情報シンタックス構造内に、フラグno_mixed_nalu_types_in_pic_constraint_flagが存在する場合がある。フラグno_mixed_nalu_types_in_pic_constraint_flagが1に等しいことは、pps_mixed_nalu_types_in_pic_flagの値が0に等しくなければならないことを指定することができる。フラグno_mixed_nalu_types_in_pic_constraint_flagが0に等しいことは、そのような制約を課さない。
【0174】
一実施形態では、フラグgeneral_one_picture_only_constraint_flagが
図13に示されたものなどの一般制約情報シンタックス構造内に存在する場合がある。general_one_picture_only_constraint_flagが1に等しいことは、ビットストリーム内にコード化されたピクチャが1つしかないことを指定することができる。フラグgeneral_one_picture_only_constraint_flagが0に等しいことは、そのような制約を課さない。
【0175】
一実施形態では、フラグsingle_layer_constraint_flagが
図13に示されたものなどの一般制約情報シンタックス構造内に存在する場合がある。フラグsingle_layer_constraint_flagが1に等しいことは、sps_video_parameter_set_idが0に等しくなければならないことを指定することができる。フラグsingle_layer_constraint_flagが0に等しいことは、そのような制約を課さない。フラグgeneral_one_picture_only_constraint_flagが1に等しいとき、フラグsingle_layer_constraint_flagの値は1に等しい場合がある。
【0176】
一実施形態では、フラグall_layers_independent_constraint_flagが
図13に示されたものなどの一般制約情報シンタックス構造内に存在する場合がある。フラグall_layers_independent_constraint_flagが1に等しいことは、フラグvps_all_independent_layers_flagが1に等しい場合があることを指定することができる。フラグall_layers_independent_constraint_flagが0に等しいことは、そのような制約を課さない。フラグsingle_layer_constraint_flagが1に等しいとき、フラグall_layers_independent_constraint_flagの値は1に等しい場合がある。
【0177】
一実施形態では、フラグno_res_change_in_clvs_constraint_flagが
図13に示されたものなどの一般制約情報シンタックス構造内に存在する場合がある。フラグno_res_change_in_clvs_constraint_flagが1に等しいことは、フラグsps_res_change_in_clvs_allowed_flagが0に等しい場合があることを指定することができる。フラグno_res_change_in_clvs_constraint_flagが0に等しいことは、そのような制約を課さない。フラグno_ref_pic_resampling_constraint_flagが1に等しいとき、フラグno_res_change_in_clvs_constraint_flagの値は1に等しい場合がある。
【0178】
一実施形態では、フラグno_mixed_nalu_types_in_pic_constraint_flagが
図13の一般制約情報シンタックス構造内に存在する場合がある。フラグno_mixed_nalu_types_in_pic_constraint_flagが1に等しいことは、フラグpps_mixed_nalu_types_in_pic_flagの値が0に等しい場合があることを指定する。フラグno_mixed_nalu_types_in_pic_constraint_flagが0に等しいことは、そのような制約を課さない。フラグone_subpic_per_pic_constraint_flagが1に等しいとき、フラグno_mixed_nalu_types_in_pic_constraint_flagの値は1に等しい場合がある。
【0179】
一実施形態では、フラグno_trail_constraint_flagが
図13の一般制約情報シンタックス構造内に存在する場合がある。フラグno_trail_constraint_flagが1に等しいことは、nuh_unit_typeがTRAIL_NUTに等しいNALユニットがOlsInScope内に存在しない場合があることを指定することができる。フラグno_trail_constraint_flagが0に等しいことは、そのような制約を課さない。フラグgeneral_one_picture_only_constraint_flagが1に等しいとき、フラグno_trail_constraint_flagは1に等しい場合がある。
【0180】
一実施形態では、フラグno_stsa_constraint_flagが
図13の一般制約情報シンタックス構造内に存在する場合がある。フラグno_stsa_constraint_flagが1に等しいことは、nuh_unit_typeがSTSA_NUTに等しいNALユニットがOlsInScope内に存在しない場合があることを指定することができる。フラグno_stsa_constraint_flagが0に等しいことは、そのような制約を課さない。フラグgeneral_one_picture_only_constraint_flagが1に等しいとき、フラグno_stsa_constraint_flagは1に等しい場合がある。
【0181】
一実施形態では、フラグno_trail_constraint_flagが
図13の一般制約情報シンタックス構造内に存在する場合がある。フラグno_trail_constraint_flagが1に等しいことは、nuh_unit_typeがTRAIL_NUTに等しいNALユニットがOlsInScope内に存在しない場合があることを指定することができる。フラグno_trail_constraint_flagが0に等しいことは、そのような制約を課さない。フラグgeneral_one_picture_only_constraint_flagが1に等しいとき、フラグno_trail_constraint_flagは1に等しい場合がある。
【0182】
一実施形態では、フラグno_stsa_constraint_flagが
図13の一般制約情報シンタックス構造内に存在する場合がある。フラグno_stsa_constraint_flagが1に等しいことは、nuh_unit_typeがSTSA_NUTに等しいNALユニットがOlsInScope内に存在しない場合があることを指定することができる。フラグno_stsa_constraint_flagが0に等しいことは、そのような制約を課さない。フラグgeneral_one_picture_only_constraint_flagが1に等しいとき、フラグno_stsa_constraint_flagは1に等しい場合がある。
【0183】
一実施形態では、フラグno_idr_constraint_flagが
図13に示されたものなどの一般制約情報シンタックス構造内に存在する場合がある。no_idr_constraint_flagが1に等しいことは、nuh_unit_typeがIDR_W_RADLまたはIDR_N_LPに等しいNALユニットがOlsInScope内に存在しない場合があることを指定することができる。フラグno_idr_constraint_flagが0に等しいことは、そのような制約を課さない。
【0184】
一実施形態では、フラグno_cra_constraint_flagが
図13に示されたものなどの一般制約情報シンタックス構造内に存在する場合がある。フラグno_cra_constraint_flagが1に等しいことは、nuh_unit_typeがCRA_NUTに等しいNALユニットがOlsInScope内に存在しない場合があることを指定することができる。フラグno_cra_constraint_flagが0に等しいことは、そのような制約を課さない。
【0185】
一実施形態では、フラグno_rasl_constraint_flagが
図13の一般制約情報シンタックス構造内に存在する場合がある(フラグno_rasl_constraint_flagは図示されていない)。フラグno_rasl_constraint_flagが1に等しいことは、nuh_unit_typeがRASL_NUTに等しいNALユニットがOlsInScope内に存在しないことを指定することができる。フラグno_rasl_constraint_flagが0に等しいことは、そのような制約を課さない。フラグno_cra_constraint_flagが1に等しいとき、フラグno_rasl_constraint_flagの値は1に等しい場合がある。
【0186】
一実施形態では、フラグno_radl_constraint_flagが
図13に示されたものなどの一般制約情報シンタックス構造内に存在する場合がある。フラグno_radl_constraint_flagが1に等しいことは、nuh_unit_typeがRADL_NUTに等しいNALユニットがOlsInScope内に存在しない場合があることを指定することができる。フラグno_radl_constraint_flagが0に等しいことは、そのような制約を課さない。フラグno_idr_constraint_flagが1に等しく、フラグno_cra_constraint_flagが1に等しいとき、フラグno_rasl_constraint_flagの値は1に等しい場合がある。
【0187】
本開示のいくつかの態様は、高ビット深度を伴う範囲拡張のためのフラグシグナリングの制約用の技法を提供する。
【0188】
本開示の一態様によれば、特定の彩度フォーマットおよび特定のビット深度(サンプルあたりのビット)を伴う特定のアプリケーションのために、いくつかの規格を最初に開発することができる。例えば、HEVCは、本来、サンプルあたり8~10ビットで4:2:0の彩度フォーマットを伴うアプリケーションを対象としている。特定の彩度フォーマットおよび特定のビット深度以外の他のフォーマットおよびビット深度にも適用可能な規格を作成するために、他の彩度フォーマットおよび/またはより高いビット深度を使用するアプリケーションをサポートするために範囲拡張が開発されている。
【0189】
アプリケーションの特定のグループに必要なものに機能セットを制限するために、ビデオコーディング規格はプロファイルを定義し、プロファイルは、これらの機能を使用するエンコーダとの相互運用のためにサポートされるべき定義されたデコーダ機能セットを含むことができる。例えば、プロファイルは、準拠するビットストリームを生成する際に使用することができるコーディングツールまたはアルゴリズムのセットを定義することができる。プロファイルに加えて、いくつかの規格(例えば、VVC、HEVCなど)は、レベルおよび階層も定義する。レベルは、デコーダの処理負荷およびメモリ能力に対応することができる、空間解像度、ピクセルレート、ビットレートの値および変動に関して、ビットストリームに対する制限を課す。レベル制限は、最大サンプルレート、最大ピクチャサイズ、最大ビットレート、最小圧縮比、コード化ピクチャバッファの能力などに関して表すことができる。より高いレベルの値は、より高い複雑さの制限に対応することができる。階層は、レベルごとのビットレート値および変動制限を修正する。例えば、Main階層はほとんどのアプリケーションを対象とするが、High階層は、ビデオ配信アプリケーションよりもはるかに高いビットレート値を有するなどの、より要求が厳しいビデオ投稿アプリケーションに対処するように設計されている。プロファイル、階層、およびレベルの各々は、実装および復号の複雑さに影響を及ぼし、3つの組合せは、ビットストリームおよびデコーダのための相互運用ポイントを指定する。
【0190】
いくつかの例では、特定の階層およびレベルに準拠するデコーダは、そのレベルまたはそれより下の任意のレベルの同じ階層または下位階層に準拠するすべてのビットストリームを復号することが可能である必要があり、特定のプロファイルに準拠するデコーダは、そのプロファイル内のすべての機能をサポートすることができる。いくつかの例では、エンコーダは、プロファイル内でサポートされる任意の特定の機能のセットを利用する必要はないが、準拠するビットストリーム、すなわち、準拠するデコーダによってそれらが復号されることを可能にする指定された制約に従うビットストリームを生成する必要がある。
【0191】
PTL情報に加えて、PTLシンタックス構造は、ビットストリームの特定の制約特性を示す制約フラグおよび非フラグシンタックス要素のリストを含む、一般制約情報(GCI)シンタックス構造も含む場合がある。
【0192】
一例では、HEVCは、本来、Mainプロファイル、Main 10プロファイル、およびMain Still Pictureプロファイルと呼ばれる3つのプロファイルを含む。3つのプロファイルは、4:2:0の彩度サンプリングのみをサポートするなどのいくつかの制限を有する。MainプロファイルおよびMain Still Pictureプロファイルでは、サンプルあたり8ビットのビデオ精度のみがサポートされるが、Main 10プロファイルはサンプルあたり最大10ビットをサポートする。Main Still Pictureプロファイルでは、ビットストリーム全体が1つのコード化ピクチャのみを含む。
【0193】
いくつかの例では、範囲拡張を伴うHEVCは、追加のプロファイルをサポートすることができる。追加のプロファイルのいくつかは、より高いビット深度をサポートすることができ、高ビット深度を伴う動作範囲拡張のためのプロファイルと呼ぶことができる。いくつかの例では、高ビット深度を伴う動作範囲拡張のためのプロファイルは、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を超えるビットをサポートするプロファイルを含む。
【0194】
具体的には、Main 12プロファイルは、4:0:0および4:2:0の彩度サンプリング、イントラ予測モードとインター予測モードの両方をサポートして、サンプルあたり8ビットから12ビットのビット深度を可能にする。いくつかの例では、Main 12プロファイルに準拠するデコーダは、以下のプロファイル:Monochrome、Monochrome 12、Main、Main 10、およびMain 12で作られたビットストリームを復号することが可能である。
【0195】
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で作られたビットストリームを復号することが可能である。
【0196】
Main 16 4:4:4プロファイルは、4:0:0、4:2:0、4:2:2、および4:4:4の彩度サンプリング、ならびにイントラ予測モードとインター予測モードの両方をサポートして、サンプルあたり8ビットから16ビットのビット深度を可能にする。
【0197】
Main 12 Intraプロファイルは、4:0:0および4:2:0の彩度サンプリング、およびイントラ予測モードをサポートして、サンプルあたり8ビットから12ビットのビット深度を可能にする。
【0198】
Main 12 4:4:4 Intraプロファイルは、4:0:0、4:2:0、4:2:2、および4:4:4の彩度サンプリング、ならびにイントラ予測モードをサポートして、サンプルあたり8ビットから12ビットのビット深度を可能にする。
【0199】
Main 16 4:4:4 Intraプロファイルは、4:0:0、4:2:0、4:2:2、および4:4:4の彩度サンプリング、ならびにイントラ予測モードをサポートして、サンプルあたり8ビットから16ビットのビット深度を可能にする。
【0200】
Main 12 Still Pictureプロファイルは、4:0:0および4:2:0の彩度サンプリングをサポートして、サンプルあたり8ビットから12ビットのビット深度を可能にする。Main 12 Still Pictureプロファイルでは、ビットストリーム全体が1つのコード化ピクチャのみを含む。
【0201】
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つのコード化ピクチャのみを含む。
【0202】
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つのコード化ピクチャのみを含む。
【0203】
本開示のいくつかの態様によれば、高ビット深度を伴う動作範囲拡張のためのプロファイルの場合、ビットストリーム内のいくつかのシグナリング(例えば、フラグ)は、特定の高ビット深度関連制約に従う必要があり得る。ビットストリーム内のシグナリングが高ビット深度関連の制約に従わないとき、一例では、ビデオデコーダは、シグナリングフラグに基づいてビデオデコーダがビットストリームを復号できないと誤って判断する場合があり、ビデオデコーダの機能を制限する可能性がある。
【0204】
いくつかの実施形態では、高ビット深度を伴う動作範囲拡張のためのプロファイルのフォーマットに準拠するビットストリームは、参照されるVPSが0に等しいvps_max_layers_minus1によって表記されるシンタックス要素を有するべきであるという制約に従う場合がある。一例では、VPS内のシンタックス要素vps_max_layers_minus1は、VPSを参照する各CVS内の最大許容レイヤ数をシグナリングするために使用することができる。例えば、vps_max_layers_minus1の値プラス1は、VPSを参照する各CVS内の最大許容レイヤ数である。
【0205】
本開示の一態様によれば、高ビット深度を伴う動作範囲拡張のためのいくつかのプロファイルは、スケーラブルではない場合がある。一例では、ビットストリームが高ビット深度を伴う動作範囲拡張のプロファイルのフォーマットに準拠するとき、各CVSはただ1つのレイヤを有する。しかしながら、CVSが参照するVPS内のvps_max_layers_minus1の値が0に等しくない場合、vps_max_layers_minuslのシグナリングは、ビットストリームを復号するためのビデオデコーダの機能を制限する可能性がある。したがって、いくつかの例では、ビットストリーム適合プロセスは、高ビット深度を伴う動作範囲拡張のためのプロファイルのフォーマットに準拠するビットストリームに対して、シンタックスvps_max_layers_minus1が0に等しいかどうかをチェックするために使用することができる。
【0206】
いくつかの実施形態では、高ビット深度を伴う動作範囲拡張のためのプロファイルのフォーマットに準拠するビットストリームは、参照されるSPSが0に等しいsps_video_parameter_set_idによって表記されるシンタックス要素を有するべきであるという制約に従う場合がある。一例では、SPSのシンタックス要素sps_video_parameter_set_idは、SPSが参照するVPSの識別子(ID)をシグナリングするために使用される。VPSは、ビデオシーケンスのための複数のレイヤのレイヤ関係を含むことができる。
【0207】
一例では、ビットストリームが高ビット深度を伴う動作範囲拡張のプロファイルのフォーマットに準拠するとき、各CVSはただ1つのレイヤを有する。いくつかの例では、VPSは除去されてもよく、存在しなくてもよい。しかしながら、sps_video_parameter_set_idの値が0に等しくない場合、sps_video_parameter_set_idのシグナリングは、ビットストリームを復号するためのビデオデコーダの機能を制限する可能性がある。したがって、いくつかの例では、ビットストリーム適合プロセスは、高ビット深度を伴う動作範囲拡張のためのプロファイルのフォーマットに準拠するビットストリームに対して、シンタックス要素sps_video_parameter_set_idが0に等しいかどうかをチェックするために使用することができる。
【0208】
いくつかの実施形態では、フォーマット範囲拡張プロファイルに準拠するビットストリームは、参照されるSPSが0に等しいptl_multilayer_enabled_flagを有するべきであるという制約に従う場合がある。一例では、シンタックス要素ptl_multilayer_enabled_flagは、プロファイル、階層、およびレベル情報用のシンタックス構造(例えば、シンタックス構造(1200)、シンタックス構造(1410))内にあり、マルチレイヤ拡張が有効であるかどうかをシグナリングするために使用される。例えば、1に等しいシンタックス要素ptl_multilayer_enabled_flagは、マルチレイヤ拡張がビットストリーム内で有効であることを指定し、0に等しいシンタックス要素ptl_multilayer_enabled_flagは、マルチレイヤ拡張がビットストリーム内で使用されないことを指定する。
【0209】
一例では、ビットストリームが高ビット深度を伴う動作範囲拡張のプロファイルのフォーマットに準拠するとき、各CVSはただ1つのレイヤを有する。しかしながら、ptl_multilayer_enabled_flagの値が0に等しくない場合、ptl_multilayer_enabled_flagのシグナリングは、ビットストリームを復号するためのビデオデコーダの機能を制限する可能性がある。したがって、いくつかの例では、ビットストリーム適合プロセスは、高ビット深度を伴う動作範囲拡張のためのプロファイルのフォーマットに準拠するビットストリームに対して、シンタックス要素ptl_multilayer_enabled_flagが0に等しいかどうかをチェックするために使用することができる。
【0210】
本開示のいくつかの態様によれば、高ビット深度を伴う動作範囲拡張のためのプロファイルのフォーマットに準拠するビットストリーム内の他の適切なシンタックスに制約が適用される場合がある。
【0211】
本開示の一態様によれば、(例えば、sps_bitdepth_minus8によって表記される)シンタックス要素は、輝度配列および彩度配列のサンプルの(例えば、BitDepthで表記される)ビット深度、ならびに輝度および彩度の(例えば、QpBdOffsetで表記される)量子化パラメータ範囲オフセットの値をシグナリングするために使用することができる。一例では、ビット深度BitDepthは式(1)に従って計算することができ、QP範囲オフセットQpBdOffsetは式(2)に従って計算することができる。
BitDepth=8+sps_bitdepth_minus8 式(1)
QpBdOffset=6×sps_bitdepth_minus8 式(2)
【0212】
シンタックス要素sps_bitdepth_minus8はビットストリーム内でシグナリングされ、sps_bitdepth_minus8の値は、高ビット深度を伴う動作範囲拡張のためのプロファイルに対する制約に従う必要があり得る。例えば、sps_bitdepth_minus8の値は、Main 12プロファイル、Main 12 4:4:4プロファイル、Main 12 Intraプロファイル、Main 12 4:4:4 Intraプロファイル、Main 12 Still Pictureプロファイル、およびMain 12 4:4:4 Still Pictureプロファイルの場合を含み、0から4の範囲内である必要があり得る。
【0213】
いくつかの例では、いくつかの他のシンタックス要素は、高ビット深度を伴う動作範囲拡張のためのプロファイルに対する制約に従う必要があり得ることに留意されたい。例えば、sps_chroma_format_idcおよびsps_palette_enabled_flagと呼ばれるシンタックス要素は、高ビット深度を伴う動作範囲拡張のためのプロファイルに対する制約に従う必要があり得る。
【0214】
シンタックス要素sps_chroma_format_idcは、彩度フォーマットに関連付けられたインデックスを示すために使用される。例えば、0に等しいシンタックス要素sps_chroma_format_idcはモノクロを示すことができ、1に等しいシンタックス要素sps_chroma_format_idcは彩度フォーマット4:2:0を示すことができ、2に等しいシンタックス要素sps_chroma_format_idcは4:2:2を示すことができ、3に等しいシンタックス要素sps_chroma_format_idcは4:4:4を示すことができる。
【0215】
1に等しいシンタックス要素sps_palette_enabled_flagは、パレットモード用の復号プロセスがイントラブロックに使用され得ることを指定する。0に等しいシンタックス要素sps_palette_enabled_flagは、パレットモード用の復号プロセスが適用されないことを指定する。
【0216】
本開示の一態様によれば、ビットストリームは、ビットストリームが動作範囲拡張のためのプロファイルに準拠するときに追加のフラグを含んでもよい。追加のフラグは、高ビット深度を伴う動作範囲拡張のためのプロファイルに対する制約に従う場合がある。
【0217】
図16は、本開示のいくつかの実施形態による、シーケンスパラメータセット(SPS)範囲拡張のシンタックス構造(1600)の例を示す。シンタックス構造(1600)は、sps_extended_precision_flag(1601)、sps_ts_residual_coding_rice_present_in_sh_flag(1603)、sps_rrc_rice_extension_flag(1605)、sps_persistent_rice_adaptation_enabled_flag(1607)、sps_reverse_last_sig_coeff_enabled_flag(1609)によって参照されるシンタックス要素を含む。
【0218】
1に等しいシンタックス要素sps_extended_precision_flag(1601)は、スケーリングおよび変換プロセスにおける変換係数、ならびにabs_remainder[]およびdec_abs_level[]などのいくつかのシンタックス要素の二値化に、拡張ダイナミックレンジが使用されることを指定する。シンタックス要素abs_remainder[走査位置n]は、走査位置nにおいてGolomb-Riceコードでコード化された変換係数レベルの残りの絶対値である。abs_remainder[]が存在しないとき、それは0に等しいと推測される。シンタックス要素dec_abs_level[走査位置n]は、走査位置nにおいてGolomb-Riceコードでコード化され、走査位置nにおける変換係数のレベルを決定するために使用される中間値に対応することができる。0に等しいシンタックス要素sps_extended_precision_flag(1601)は、拡張ダイナミックレンジがスケーリングおよび変換プロセスにおいて使用されず、例えば、シンタックス要素abs_remainder[]およびdec_abs_level[]などの二値化に使用されないことを指定する。存在しないとき、シンタックス要素sps_extended_precision_flag(1601)は0に等しいと推測される。
【0219】
一例では、Log2TransformRangeによって表記される変数は、スケーリングおよび変換プロセスにおける変換係数ならびに特定のシンタックス要素の二値化向けのダイナミックレンジを決定するために使用される。例えば、変数Log2TransformRangeは、スケーリングおよび変換プロセスにおける変換係数を表すため、ならびに特定のシンタックス要素の二値化向けのビット数であり得る。ダイナミックレンジは、ビット数を使用して表される最大数と最小数との差であり得る。一例では、変数Log2TransformRangeは、式(3)などを使用して、sps_extended_precision_flagに従って導出される。
Log2TransformRange=sps_extended_precision_flag?Max(15,Min(20,BitDepth+6)):15 式(3)
【0220】
スケーリングおよび変換プロセスにおける変換係数ならびに特定のシンタックス要素の二値化向けのダイナミックレンジは、変数Log2TransformRangeに基づいて決定することができる。いくつかの例では、フラグsps_extended_precision_flagが値0を有するとき、拡張ダイナミックレンジ機能(例えば、拡張ダイナミックレンジのコーディングツール)は使用されず、変換係数のダイナミックレンジは、15ビットなどの固定ビット数に基づく。フラグsps_extended_precision_flagが値1を有するとき、拡張ダイナミックレンジ機能が有効化され、スケーリングおよび変換処理における変換係数を表すためのビット数は、式(1)の例におけるビット深度BitDepthに基づいて、15ビット、16ビット、17ビット、18ビット、19ビット、および20ビットのうちの1つであり得る。変換係数のダイナミックレンジは、ビット数に基づいて決定することができる。
【0221】
本開示の一態様によれば、変換スキップ残差コーディングのためのスライスベースのRiceパラメータ選択は、ビデオ規格の範囲拡張に含まれ得る。いくつかの例では、
図16に示されたように、変換スキップスライスのためのRiceパラメータのシグナリングが有効か無効かを示すために、変換スキップモードが有効である(例えば、シンタックス要素sps_tranform_skip_enabled_flagが真である)とき、(例えば、sps_ts_residual_coding_rice_present_in_sh_flag(1603)によって表記される)1つの制御フラグが、シーケンスパラメータセット(SPS)内でシグナリングされる。
【0222】
制御フラグ(1603)が有効(例えば、「1」に等しい)としてシグナリングされると、その変換スキップスライスのRiceパラメータの選択を示すために、例えば、スライスヘッダ内の変換スキップスライスごとに、(例えば、sh_ts_residual_coding_rice_idx_minus1によって表記される)1つのシンタックス要素がさらにシグナリングされる。制御フラグが無効(例えば、「0」に等しい)としてシグナリングされると、変換スキップスライスのためのRiceパラメータ選択を示すためにスライスレベル(例えば、スライスヘッダ)でさらなるシンタックス要素はシグナリングされず、デフォルトのRiceパラメータは、一例ではSPSを参照するコード化ビデオデータ内のすべての変換スキップスライスに使用されてもよい。
【0223】
例えば、1に等しいシンタックス要素sps_ts_residual_coding_rice_present_in_sh_flag(1603)は、sh_ts_residual_coding_rice_idx_minus1によって表記されるスライスヘッダフラグ(スライス範囲)が、SPSを参照するスライスヘッダ(例えば、slice_header())シンタックス構造内に存在する場合があることを指定する。0に等しいシンタックス要素sps_ts_residual_coding_rice_present_in_sh_flag(1603)は、スライスヘッダフラグsh_ts_residual_coding_rice_idx_minus1が、SPSを参照するslice_header()シンタックス構造内に存在しないことを指定する。存在しないとき、いくつかの例では、sps_ts_residual_coding_rice_present_in_sh_flagの値は0に等しいと推測される。
【0224】
いくつかの例では、シンタックス要素sps_rrc_rice_extension_flag(1605)は、正規残差コーディング(RRC)におけるabs_remainder[]およびdec_abs_level[]などのいくつかのシンタックス要素の二値化向けのRiceパラメータ導出のための1つまたは複数のコーディングツールの制御を実現するために使用される。いくつかの例では、正規残差コーディング(RRC)は、変換および量子化によって取得されたブロックをコード化するためのいくつかの技法を指す。いくつかの例では、RRCは、量子化のみによって取得されたブロック向けに修正することができる。いくつかの例では、変換スキップ残差コーディング(TSRC)は、(変換スキップとも呼ばれる)変換をバイパスして取得されたブロックをコード化するための専用のいくつかの技法を指す。
【0225】
いくつかの例では、ビデオコーディング規格は、abs_remainder[]およびdec_abs_level[]などのいくつかのシンタックス要素の二値化向けのRiceパラメータ導出のための1つまたは複数のコーディングツールを含んでもよく、ビデオコーディング規格の範囲拡張は、abs_remainder[]およびdec_abs_level[]などのいくつかのシンタックス要素の二値化向けのRiceパラメータ導出のための1つまたは複数の代替コーディングツールを含むことができる。
【0226】
いくつかの例では、ビデオ規格は、Riceパラメータ導出のためにローカルテンプレートベースの技法を使用する。例えば、1つまたは複数(例えば、一例では5つ)の隣接する係数レベルを含むテンプレートが、Riceパラメータ導出に使用される。例えば、テンプレート内部の絶対係数値の合計を計算することができ、次いで、合計に基づいてRiceパラメータが決定される。一例では、合計に基づいてRiceパラメータを決定するために、ルックアップテーブルを使用することができる。
【0227】
Riceパラメータは、他の適切なコーディングツールによって決定することができることに留意されたい。一例では、合計に基づいてRiceパラメータを決定するために、式を使用することができる。別の例では、隣接する係数レベルの統計データに基づいてRiceパラメータを決定するために、コンテキストモデリングを使用することができる。いくつかの例では、ビデオ規格の範囲拡張は、Riceパラメータ導出のための1つまたは複数の代替コーディングツールを指定することができる。
【0228】
いくつかの例では、ビデオ規格の範囲拡張は、他のシナリオで使用するためのRRCに対する修正を含むことができる。一例では、範囲拡張は、変換スキップモードにおける残差コーディング用の異なるコンテキストモデリングツールおよび残差信号回転ツールを含むことができる。
【0229】
いくつかの例では、1に等しいシンタックス要素sps_rrc_rice_extension_flag(1605)は、abs_remaining[]およびdec_abs_level[]の二値化向けの代替Riceパラメータ導出(例えば、範囲拡張におけるRiceパラメータ導出のための代替コーディングツール)が使用されることを指定する。0に等しいシンタックス要素sps_rrc_rice_extension_flag(1605)は、abs_remaining[]およびdec_abs_level[]の二値化向けの代替Riceパラメータ導出が使用されないことを指定する。存在しないとき、sps_rrc_rice_extension_flag(1605)の値は、0に等しいと推測される。
【0230】
シンタックス要素sps_persistent_rice_adaptation_enabled_flag(1607)は、abs_remainder[]およびdec_abs_level[]の二値化向けの統計データベースのRiceパラメータ導出の制御を実現するために使用される。本開示の一態様によれば、abs_remainder[]およびdec_abs_level[]の二値化向けのRiceパラメータ導出は、前のTUから蓄積された統計データを使用して各変換ユニット(TU)の開始時に初期化することができる。いくつかの例では、統計データベースのRiceパラメータ導出は、ビデオ規格の範囲拡張に含まれ得る。
【0231】
SPS内の1に等しいシンタックス要素sps_persistent_rice_adaptation_enabled_flag(1607)は、abs_remaining[]およびdec_abs_level[]の二値化向けのRiceパラメータ導出が、前のTUから蓄積された統計データを使用して各TUの開始時に初期化されることを指定する。0に等しいシンタックス要素sps_persistent_rice_adaptation_enabled_flag(1607)は、前のTU状態が現在のTUのRiceパラメータ導出で使用されないことを指定する。存在しないとき、sps_persistent_rice_adaptation_enabled_flagの値は、0に等しいと推測される。
【0232】
いくつかの実施形態では、シンタックス要素sps_reverse_last_sig_coeff_enabled_flag(1609)は、(例えば、最後の有意係数からの逆対角走査パターンを使用する)変換係数のエントロピーコーディング中に最後の有意係数の位置をコード化するために使用されるコーディングツールの制御を実現するために使用される。一例では、最後の有意係数の位置は、異なるコーディングツールによってコード化することができる。例えば、ビデオ規格は、LastSignificantCoeffXおよびLastSignificantCoeffY変数によって表記される位置の2つの座標をコード化することによって最後の有意係数の位置を決定することができる第1のコーディングツールを指定することができ、ビデオ規格の範囲拡張は、一例ではゼロアウト変換ブロックの右下隅を参照して最後の有意係数の相対座標をコード化することによって最後の有意係数の位置を決定することができる第2のコーディングツールなどの、代替コーディングツールを指定することができる。
【0233】
いくつかの例では、SPS内の1に等しいシンタックス要素sps_reverse_last_sig_coeff_enabled_flag(1609)は、sh_reverse_last_sig_coeff_flagによって表記されるスライスヘッダフラグ(スライス範囲)が、SPSを参照するスライスヘッダシンタックス構造(例えば、いくつかの例ではslice_header())内に存在することを指定する。0に等しいシンタックス要素sps_reverse_last_sig_coeff_enabled_flag(1609)は、スライスヘッダフラグsh_reverse_last_sig_coeff_flagがSPSを参照するスライスヘッダシンタックス構造内に存在しないことを指定する。存在しない場合、sps_reverse_last_sig_coeff_enabled_flag(1609)の値は、0に等しいと推測される。
【0234】
いくつかの例では、スライスのスライスヘッダフラグsh_reverse_last_sig_coeff_flagの値は、スライスのコーディング内のスケーリングおよび変換プロセスにおける変換係数の中の最後の有意係数の位置導出を決定するために使用される。一例では、sh_reverse_last_sig_coeff_flagが1に等しいとき、最後の有意係数位置は、第2のコーディングツールなどのビデオ規格の範囲拡張における代替コーディングツールによってコード化され、そうでない場合、最後の有意係数位置の現在の座標は、第1のコーディングツールによってコード化される。
【0235】
図17は、高ビット深度を伴う動作範囲拡張のためのプロファイル内のいくつかのシンタックス要素用の許容値を含むテーブル(1700)の一例を示す。テーブル(1700)は、テーブル(1700)内のシンタックス要素に対する制約として使用することができる。
【0236】
テーブル(1700)内で指定された制約が適用される場合があり、その中で「-」でマークされた項目は、テーブル項目が対応するシンタックス要素にプロファイル固有の制約を課さないことを示すことに留意されたい。「-」でマークされたテーブル項目を有するいくつかのシンタックス要素の場合、制約は、例えば、他の指定された制約が満たされたときの規格文書の適切な仕様などの他の場所で課されたセマンティクス制約によって間接的に課される場合がある。
【0237】
さらに、いくつかの例では、Main 12 Still Picture、Main 12 4:4:4 Still Picture、またはMain 16 4:4:4 Still Pictureのプロファイルに準拠するビットストリーム内で、ビットストリームはただ1つのピクチャを含むべきである。
【0238】
いくつかの例では、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のプロファイルに準拠するビットストリーム、ビットストリームのレベルを示すシンタックス要素は、いくつかの例では最高レベルを有することができないビットストリーム内のベースレイヤなどの、ただ1つのレイヤが存在するので、最高レベルを示すべきではない。一例では、general_level_idcによって表記されるものなどの一般制約情報(例えば、シンタックス構造(1300)、シンタックス構造(1420))内のシンタックス要素は、ビットストリームのレベル用の識別子を示すために使用される。いくつかの例では、レベルは、(majorNumによって表記される)メジャー番号および(minor Numによって表記される)マイナー番号の2つの番号によって表される。レベル用の識別子は、メジャー番号およびマイナー番号に基づいて計算することができる。一例では、レベル用の識別子は[0,255]の範囲内にあり、式(4)に従って計算される。
general_level_idc=majorNum×16+minorNum×3 式(4)
次いで、一例では、最高レベルは15.5であり、最高レベル用の識別子は255である。
【0239】
いくつかの例では、必要以上に高いレベルのシグナリングは、ビットストリームを復号するためのビデオデコーダの機能を制限する可能性がある。したがって、いくつかの例では、ビットストリーム適合プロセスは、レベルに対する制約が満たされるかどうかを判定するために、PTL情報内のレベルを示すためのシンタックス要素をチェックすることができる。
【0240】
図18は、本開示の一実施形態によるプロセス(1800)を概説するフローチャートを示す。プロセス(1800)は、電子デバイス(420)、電子デバイス(430)、サーバデバイス(405)、および/または別のデバイスなどの任意の適切なデバイスによって実行することができる。いくつかの例では、プロセス(1800)のいくつかまたはすべての動作は、電子デバイス(420)によって実行されてもよい。いくつかの例では、プロセス(1800)のいくつかまたはすべての動作は、電子デバイス(430)によって実行されてもよい。いくつかの例では、プロセス(1800)のいくつかまたはすべての動作は、サーバデバイス(405)によって実行されてもよい。いくつかの例では、プロセス(1800)のいくつかの動作は、電子デバイス(420)によって実行されてもよく、プロセス(1800)のいくつかの動作は、電子デバイス(430)によって実行されてもよい。
【0241】
(S1810)において、高ビット深度を伴う動作範囲拡張のためのプロファイルを有するビットストリームがデバイスによって取得される。一例では、電子デバイス(420)は、ビデオデータを符号化することによってビットストリームを取得することができる。別の例では、電子デバイス(430)は、ネットワークからビットストリームを受信することができ、ビットストリームは符号化ビデオデータを搬送する。別の例では、サーバデバイス(405)は、キャプチャサブシステム(413)からビットストリームを受信し、ビットストリームは符号化ビデオデータを搬送する。いくつかの例では、ビットストリームはコンピュータ可読媒体に記憶され、コンピュータ可読媒体から読み取ることができる。
【0242】
(S1820)において、ビットストリーム適合プロセスがデバイスによって実行される。いくつかの例では、デバイスは、ビデオデータの符号化表現を含むビットストリームが、ビデオコーディング規格で定義された制約などの様々な制約に適合するかどうかを判定するビットストリーム適合プロセスを実行することができる。ビットストリーム適合プロセスの一部として、デバイスは、ビットストリームが、(S1822)および(S1825)によって示されたものなどの、高ビット深度を伴う動作範囲拡張のためのプロファイルに関連する制約に適合するかどうかを判定することができる。
【0243】
(S1822)において、デバイスは、ビットストリームのプロファイル情報が、高いビット深度(例えば、8ビット深度よりも高い)を伴う動作範囲拡張のためのプロファイルを示すと判断する。いくつかの例では、プロファイルは、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プロファイルなどのうちの1つである。
【0244】
(S1825)において、デバイスは、ビットストリームのシンタックス要素が、ビットストリームを復号するためのデコーダにおいて出力するための単一レイヤを示す制約を満たすかどうかを判定するために、少なくともビットストリームのシンタックス要素をチェックする。
【0245】
いくつかの実施形態では、デバイスは、第1のシンタックス要素の値が制約を満たすかどうかを判定するために、参照されるビデオパラメータセット(VPS)内の最大レイヤ数を示す第1のシンタックス要素をチェックする。一例では、デバイスは、第1のシンタックス要素の値が0に等しいかどうかを判定するために、VPS内の最大レイヤ数から1を減算したものに等しい第1のシンタックス要素(例えば、vps_max_layers_minus1)をチェックする。
【0246】
いくつかの実施形態では、デバイスは、第2のシンタックス要素の値が制約を満たすかどうかを判定するために、シーケンスパラメータセット(SPS)が参照するビデオパラメータセット(VPS)用の識別子であるSPSの第2のシンタックス要素をチェックする。一例では、デバイスは、第2のシンタックス要素の値が0に等しいかどうかを判定するために、SPSの第2のシンタックス要素(例えば、sps_video_parameter_set_id)をチェックする。
【0247】
いくつかの実施形態では、デバイスは、第3のシンタックス要素の値が制約を満たすかどうかを判定するために、ビットストリーム内のマルチレイヤ拡張の有効化/無効化を示す第3のシンタックス要素をチェックする。一例では、デバイスは、第3のシンタックス要素の値がマルチレイヤ拡張の無効化を示すかどうかを判定するために、第3のシンタックス要素(例えば、ptl_multilayer_enabled_flag)をチェックする。
【0248】
いくつかの実施形態では、デバイスはまた、シンタックス要素がプロファイルに関連付けられた制約を満たすかどうかを判定するために、
図17のテーブル(1700)によって示されたものなどのいくつかのシンタックス要素をチェックする。一例では、デバイスは、シンタックス要素の値がプロファイルに関連付けられた制約を満たすかどうかを判定するために、ビット深度を示すシンタックス要素(例えば、sps_bitdepth_minus8)をチェックする。別の例では、デバイスは、シンタックス要素の値がプロファイルに関連付けられた制約を満たすかどうかを判定するために、彩度フォーマットに関連付けられたインデックスを示すシンタックス要素(例えば、sps_chroma_format_idc)をチェックする。別の例では、デバイスは、シンタックス要素の値がプロファイルに関連付けられた制約を満たすかどうかを判定するために、パレットモードを有効化/無効化を示すシンタックス要素(例えば、sps_palette_enabled_flag)をチェックする。別の例では、デバイスは、シンタックス要素の値がプロファイルに関連付けられた制約を満たすかどうかを判定するために、拡張ダイナミックレンジの使用/不使用を示すシンタックス要素(例えば、sps_extended_precision_flag)をチェックする。別の例では、デバイスは、シンタックス要素の値がプロファイルに関連付けられた制約を満たすかどうかを判定するために、残差コーディングシンタックス内の変換スキップフラグの存在/不在を示すシンタックス要素(例えば、sps_ts_residual_coding_rice_present_in_sh_flag)をチェックする。別の例では、デバイスは、シンタックス要素の値がプロファイルに関連付けられた制約を満たすかどうかを判定するために、正規残差コーディングにおけるRiceコーディングの使用/不使用を示すシンタックス要素(例えば、sps_rrc_rice_extension_flag)をチェックする。別の例では、デバイスは、シンタックス要素の値がプロファイルに関連付けられた制約を満たすかどうかを判定するために、持続的Riceパラメータ適応の有効化/無効化を示すシンタックス要素(例えば、sps_persistent_rice_adaption_enabled_flag)をチェックする。別の例では、デバイスは、シンタックス要素の値がプロファイルに関連付けられた制約を満たすかどうかを判定するために、最後の有意係数からの走査パターンを示すシンタックス要素(例えば、sps_reverse_last_sig_coeff_enabled_flag)をチェックする。
【0249】
追加の適合チェックを実行することができる。一例では、デバイスは、プロファイルが静止画プロファイルであることに応答して、ビットストリームが1つのピクチャのみを含むかどうかをチェックする。別の例では、デバイスは、プロファイルが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のプロファイルのうちの1つであることに応答して、レベルが制約を満たすかどうかを判定するために、ビットストリームのレベルを示すシンタックス要素をチェックする。一例では、デバイスは、シンタックス要素(例えば、general_level_idc)の値が255に等しくないかどうかをチェックする。
【0250】
(S1830)において、デバイスは、ビットストリームが制約に適合するとビットストリーム適合プロセスが判定したかどうかを判定する。ビットストリームが制約に適合すると判定したことに応答して、プロセス(1800)は(S1840)に進み、そうでない場合、プロセス(1800)は(S1850)に進む。
【0251】
(S1840)において、デバイスはビットストリームをビデオデコーダに提供することができる。一例では、ビットストリームはビデオデコーダ(410)に提供される。別の例では、デバイスは、宛先電子デバイスへのその後の送信のためにビットストリームをコンピュータ可読媒体に出力することができる。
【0252】
(S1850)において、デバイスは、ビットストリームを排斥することができ、エラーメッセージを生成することができる。
【0253】
プロセス(1800)は適切に適応することができる。プロセス(1800)内のステップは、修正および/または省略することができる。さらなるステップを追加することができる。任意の適切な実施順序を使用することができる。
【0254】
上述された技法(例えば、制約フラグ、適応解像度パラメータなどをシグナリングするための技法)は、コンピュータ可読命令を使用し、1つまたは複数のコンピュータ可読媒体に物理的に記憶されるコンピュータソフトウェアとして実装することができる。例えば、
図19は、開示された主題の特定の実施形態を実装するのに適したコンピュータシステム(1900)を示す。
【0255】
コンピュータソフトウェアは、1つまたは複数のコンピュータ中央処理装置(CPU)、グラフィックス処理装置(GPU)などによる、直接、または解釈、マイクロコード実行などを介して実行することができる命令を含むコードを作成するために、アセンブル、コンパイル、リンク、または同様のメカニズムを受けることができる任意の適切な機械語またはコンピュータ言語を使用してコード化することができる。
【0256】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、モノのインターネットデバイスなどを含む、様々なタイプのコンピュータまたはその構成要素上で実行することができる。
【0257】
コンピュータシステム(1900)に関して
図19に示された構成要素は、本質的に例示的なものであり、本開示の実施形態を実装するコンピュータソフトウェアの使用または機能の範囲に関するいかなる制限も示唆するものではない。構成要素の構成は、コンピュータシステム(1900)の例示的な実施形態に示された構成要素のいずれか1つまたは組合せに関するいかなる依存関係または要件も有すると解釈されるべきでない。
【0258】
コンピュータシステム(1900)は、特定のヒューマンインターフェース入力デバイスを含んでもよい。そのようなヒューマンインターフェース入力デバイスは、例えば、(キーストローク、スワイプ、データグローブの動きなどの)触覚入力、(音声、拍手などの)オーディオ入力、(ジェスチャなどの)視覚入力、(描写されていない)嗅覚入力を介して、1人または複数の人間のユーザによる入力に応答することができる。ヒューマンインターフェースデバイスは、(音声、音楽、周囲の音などの)オーディオ、(走査画像、静止画カメラから取得された写真画像などの)画像、(2次元ビデオ、立体ビデオを含む3次元ビデオなどの)ビデオなどの、人間による意識的な入力に必ずしも直接関連しない特定の媒体を取り込むために使用することもできる。
【0259】
入力ヒューマンインターフェースデバイスには、キーボード(1901)、マウス(1902)、トラックパッド(1903)、タッチスクリーン(1910)、データグローブ(図示せず)、ジョイスティック(1905)、マイクロフォン(1906)、スキャナ(1907)、カメラ(1908)のうちの1つまたは複数が含まれてもよい(各々の1つのみが描写されている)。
【0260】
コンピュータシステム(1900)はまた、特定のヒューマンインターフェース出力デバイスを含んでもよい。そのようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音、光、および嗅覚/味覚を介して、1人または複数の人間のユーザの感覚を刺激している場合がある。そのようなヒューマンインターフェース出力デバイスには、触覚出力デバイス(例えば、タッチスクリーン(1910)、データグローブ(図示せず)、またはジョイスティック(1905)による触覚フィードバック、しかし入力デバイスとして機能しない触覚フィードバックデバイスが存在する可能性もある)、(スピーカ(1909)、ヘッドフォン(描写せず)などの)オーディオ出力デバイス、(CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含むスクリーン(1910)など、各々タッチスクリーン入力機能の有無にかかわらず、各々触覚フィードバック機能の有無にかかわらず、それらのうちのいくつかは、ステレオグラフィック出力、仮想現実眼鏡(描写せず)、ホログラフィックディスプレイおよびスモークタンク(描写せず)などの手段を介して2次元視覚出力または3次元以上の出力を出力することが可能な場合がある)視覚出力デバイス、ならびにプリンタ(描写せず)が含まれてもよい。
【0261】
コンピュータシステム(1900)は、CD/DVDまたは同様の媒体(1921)を有するCD/DVD ROM/RW(1920)を含む光学媒体、サムドライブ(1922)、リムーバブルハードドライブまたはソリッドステートドライブ(1923)、テープおよびフロッピーディスクなどのレガシー磁気媒体(描写せず)、セキュリティドングルなどの特殊なROM/ASIC/PLDベースのデバイス(描写せず)などの、人間がアクセス可能なストレージデバイスおよびそれらに関連する媒体を含むこともできる。
【0262】
当業者はまた、現在開示されている主題に関連して使用される「コンピュータ可読媒体」という用語が、伝送媒体、搬送波、または他の一時的な信号を包含しないことを理解するべきである。
【0263】
コンピュータシステム(1900)は、1つまたは複数の通信ネットワーク(1955)へのインターフェース(1954)を含むこともできる。ネットワークは、例えば、ワイヤレス、有線、光であり得る。ネットワークはさらに、ローカル、広域、メトロポリタン、車両および産業用、リアルタイム、遅延耐性などであり得る。ネットワークの例には、イーサネット、ワイヤレスLANなどのローカルエリアネットワーク、GSM、3G、4G、5G、LTEなどを含むセルラーネットワーク、ケーブルTV、衛星TV、および地上波ブロードキャストTVを含むTVの有線またはワイヤレスの広域デジタルネットワーク、CANBusを含む車両および産業用などが含まれる。特定のネットワークは、通常、(例えば、コンピュータシステム(1900)のUSBポートなどの)特定の汎用データポートまたは周辺バス(1949)に取り付けられた外部ネットワークインターフェースアダプタを必要とし、他のネットワークは、通常、以下に記載されるシステムバスに取り付けることによってコンピュータシステム(1900)のコアに統合される(例えば、PCコンピュータシステムへのイーサネットインターフェースまたはスマートフォンコンピュータシステムへのセルラーネットワークインターフェース)。これらのネットワークのいずれかを使用して、コンピュータシステム(1900)は他のエンティティと通信することができる。そのような通信は、単方向受信のみ(例えば、ブロードキャストTV)、単方向送信のみ(例えば、特定のCANbusデバイスへのCANbus)、または、例えば、ローカルもしくは広域のデジタルネットワークを使用する他のコンピュータシステムとの双方向であり得る。特定のプロトコルおよびプロトコルスタックは、上述されたそれらのネットワークおよびネットワークインターフェースの各々で使用することができる。
【0264】
前述のヒューマンインターフェースデバイス、人間がアクセス可能なストレージデバイス、およびネットワークインターフェースは、コンピュータシステム(1900)のコア(1940)に取り付けることができる。
【0265】
コア(1940)は、1つまたは複数の中央処理装置(CPU)(1941)、グラフィックス処理装置(GPU)(1942)、フィールドプログラマブルゲートエリア(FPGA)(1943)、特定のタスク用のハードウェアアクセラレータ(1944)、グラフィックスアダプタ(1950)などの形態の特殊なプログラマブル処理装置を含むことができる。これらのデバイスは、読取り専用メモリ(ROM)(1945)、ランダムアクセスメモリ(1946)、ユーザがアクセスできない内部ハードドライブ、SSDなどの内部大容量ストレージ(1947)とともに、システムバス(1948)を介して接続されてもよい。いくつかのコンピュータシステムでは、システムバス(1948)は、追加のCPU、GPUなどによる拡張を可能にするために、1つまたは複数の物理プラグの形態でアクセス可能であり得る。周辺機器は、コアのシステムバス(1948)に直接取り付けることも、周辺バス(1949)を介して取り付けることもできる。一例では、スクリーン(1910)は、グラフィックスアダプタ(1950)に接続することができる。周辺バス用のアーキテクチャには、PCI、USBなどが含まれる。
【0266】
CPU(1941)、GPU(1942)、FPGA(1943)、およびアクセラレータ(1944)は、組み合わせて、前述のコンピュータコードを構成することができる特定の命令を実行することができる。そのコンピュータコードは、ROM(1945)またはRAM(1946)に記憶することができる。移行データもRAM(1946)に記憶することができるが、永続データは、例えば、内部大容量ストレージ(1947)に記憶することができる。メモリデバイスのいずれかに対する高速の記憶および検索は、1つまたは複数のCPU(1941)、GPU(1942)、大容量ストレージ(1947)、ROM(1945)、RAM(1946)などと密接に関連付けることができるキャッシュメモリを使用して可能にすることができる。
【0267】
コンピュータ可読媒体は、様々なコンピュータ実装動作を実行するためのコンピュータコードをそこに有することができる。媒体およびコンピュータコードは、本開示の目的のために特別に設計および構築されたものであり得るか、またはそれらは、コンピュータソフトウェア技術のスキルを有する人々に周知かつ利用可能な種類であり得る。
【0268】
限定としてではなく一例として、アーキテクチャを有するコンピュータシステム(1900)、具体的にはコア(1940)は、1つまたは複数の有形のコンピュータ可読媒体内に具現化されたソフトウェアを(CPU、GPU、FPGA、アクセラレータなどを含む)プロセッサが実行する結果として、機能を提供することができる。そのようなコンピュータ可読媒体は、上記で紹介されたユーザアクセス可能大容量ストレージ、ならびにコア内部大容量ストレージ(1947)またはROM(1945)などの非一時的な性質のコア(1940)の特定のストレージに関連付けられた媒体であり得る。本開示の様々な実施形態を実装するソフトウェアは、そのようなデバイスに記憶され、コア(1940)によって実行することができる。コンピュータ可読媒体は、特定のニーズに応じて、1つまたは複数のメモリデバイスまたはチップを含むことができる。ソフトウェアは、コア(1940)、および具体的にはそのうちの(CPU、GPU、FPGAなどを含む)プロセッサに、RAM(1946)に記憶されたデータ構造を定義すること、およびソフトウェアによって定義されたプロセスに従ってそのようなデータ構造を修正することを含む、本明細書に記載された特定のプロセスまたは特定のプロセスの特定の部分を実行させることができる。加えて、または代替として、コンピュータシステムは、本明細書に記載された特定のプロセスまたは特定のプロセスの特定の部分を実行するために、ソフトウェアの代わりに、またはソフトウェアと一緒に動作することができる、回路(例えば、アクセラレータ(1944))内に配線された、またはさもなければ具現化されたロジックの結果として、機能を提供することができる。必要に応じて、ソフトウェアへの参照はロジックを包含することができ、その逆も同様である。必要に応じて、コンピュータ可読媒体への参照は、実行のためのソフトウェアを記憶する(集積回路(IC)などの)回路、実行のためのロジックを具現化する回路、または両方を包含することができる。本開示は、ハードウェアとソフトウェアの任意の適切な組合せを包含する。
付記A:頭字語
JEM:共同探索モデル
VVC:多用途ビデオコーディング
BMS:ベンチマークセット
MV:動きベクトル
HEVC:高効率ビデオコーディング
SEI:補足拡張情報
VUI:ビデオユーザビリティ情報
GOP:ピクチャグループ
TU:変換ユニット
PU:予測ユニット
CTU:コーディングツリーユニット
CTB:コーディングツリーブロック
PB:予測ブロック
HRD:仮想参照デコーダ
SNR:信号対ノイズ比
CPU:中央処理装置
GPU:グラフィックス処理装置
CRT:陰極線管
LCD:液晶ディスプレイ
OLED:有機発光ダイオード
CD:コンパクトディスク
DVD:デジタルビデオディスク
ROM:読取り専用メモリ
RAM:ランダムアクセスメモリ
ASIC:特定用途向け集積回路
PLD:プログラマブル論理デバイス
LAN:ローカルエリアネットワーク
GSM:モバイル通信用グローバルシステム
LTE:ロングタームエボリューション
CANBus:コントローラエリアネットワークバス
USB:ユニバーサルシリアルバス
PCI:周辺構成要素相互接続
FPGA:フィールドプログラマブルゲートエリア
SSD:ソリッドステートドライブ
IC:集積回路
CU:コーディングユニット
【0269】
本開示は、いくつかの例示的な実施形態を記載しているが、本開示の範囲内に入る変更、置換、および様々な代替の均等物が存在する。したがって、当業者は、本明細書に明示的に図示または記載されていないが、本開示の原理を具現化し、したがってその趣旨および範囲内にある、多数のシステムおよび方法を考案できることが諒解されよう。
【符号の説明】
【0270】
101 サンプル
102 矢印
103 矢印
104 正方形ブロック
180 概略図
201 現在ブロック
202 周囲サンプル
203 周囲サンプル
204 周囲サンプル
205 周囲サンプル
206 周囲サンプル
300 通信システム
310 端末デバイス
320 端末デバイス
330 端末デバイス
340 端末デバイス
350 通信ネットワーク
400 通信システム
401 ビデオソース
402 ビデオピクチャのストリーム
403 ビデオエンコーダ
404 符号化ビデオビットストリーム、符号化ビデオデータ
405 ストリーミングサーバ、サーバデバイス
406 クライアントサブシステム
407 ビデオデータのコピー
408 クライアントサブシステム
409 符号化ビデオデータの入力コピー
410 ビデオデコーダ
411 ビデオピクチャの出力ストリーム
412 ディスプレイ
413 キャプチャサブシステム
420 電子デバイス
430 電子デバイス
501 チャネル
510 ビデオデコーダ
512 レンダリングデバイス
515 バッファメモリ
520 パーサー
521 シンボル
530 電子デバイス
531 受信機
551 スケーラ/逆変換ユニット
552 イントラピクチャ予測ユニット
553 動き補償予測ユニット
555 アグリゲータ
556 ループフィルタユニット
557 参照ピクチャメモリ
558 現在ピクチャバッファ
601 ビデオソース
603 ビデオコーダ、ビデオエンコーダ
620 電子デバイス
630 ソースコーダ
632 コーディングエンジン
633 ローカルデコーダ
634 参照ピクチャメモリ
635 予測器
640 送信機
643 コード化ビデオシーケンス
645 エントロピーコーダ
650 コントローラ
660 通信チャネル
703 ビデオエンコーダ
721 汎用コントローラ
722 イントラエンコーダ
723 残差計算器
724 残差エンコーダ
725 エントロピーエンコーダ
726 スイッチ
728 残差デコーダ
730 インターエンコーダ
810 ビデオデコーダ
871 エントロピーデコーダ
872 イントラデコーダ
873 残差デコーダ
874 復元モジュール
880 インターデコーダ
911 ピクチャヘッダ
912 ARC情報
913 H.263 PLUSPTYPE
924 PPS
925 ARC参照情報
926 ターゲット解像度テーブル
927 SPS
938 タイルグループヘッダ
939 ARC情報
941 APS、パラメータセット
942 ARC情報
953 ARC参照情報
954 タイルグループヘッダ
955 ARC情報
956 SPS、パラメータセット
1000 テーブル
1101 タイルグループヘッダ
1102 シンタックス要素dec_pic_size_idx
1103 フラグ(例えば、adaptive_pic_resolution_change_flag)
1110 SPS
1111 フラグ、第1のシンタックス要素
1112 if()文
1113 出力解像度
1114 シンタックス要素(例えば、reference_pic_size_present_flag)
1115 参照ピクチャ寸法
1116 テーブル指示(例えば、シンタックス要素num_dec_pic_size_in_luma_samples_minus1)
1117 シンタックス要素
1200 シンタックス構造例
1300 シンタックス構造例
1301 制約フラグ(例えば、no_lossless_coding_tool_constraint_flag)
1302 制約フラグ(例えば、no_lossy_coding_tool_constraint_flag)
1303 gci_num_reserved_bytes
1304 gci_reserved_bytes[]
1305 制約フラグ(例えば、intra_only_constraint_flag)
1306 制約フラグ(例えば、no_alf_constraint_flag)
1401 制約フラグの数(例えば、num_available_constraint_flags)
1410 シンタックス構造例
1420 シンタックス構造、シンタックス例
1500 一般制約情報シンタックス構造
1501 ゲートフラグ(例えば、general_frame_structure_constraint_group_flag)
1502 ゲートフラグ(例えば、high_level_functionality_constraint_group_flag)
1503 ゲートフラグ(例えば、scalability_constraint_group_flag)
1504 ゲートフラグ(例えば、partitioning_constraint_group_flag)
1505 ゲートフラグ(例えば、intra_coding_tool_constraint_group_flag)
1506 ゲートフラグ(例えば、inter_coding_tool_constraint_group_flag)
1507 ゲートフラグ(例えば、transfom_contraint_group_flag)
1508 ゲートフラグ(例えば、inloop_filtering_constraint_group_flag)
1510 制約情報グループ
1511 制約フラグ、general_non_packed_constraint_flag
1512 制約フラグ、general_frame_only_constraint_flag
1513 制約フラグ、general_non_projected_constraint_flag
1514 制約フラグ、general_one_picture_only_constraint_flag
1520 制約情報グループ
1530 シンタックス(例えば、whileループ)
1600 シーケンスパラメータセット(SPS)範囲拡張のシンタックス構造
1601 sps_extended_precision_flag
1603 sps_ts_residual_coding_rice_present_in_sh_flag
1605 sps_rrc_rice_extension_flag
1607 sps_persistent_rice_adaptation_enabled_flag
1609 sps_reverse_last_sig_coeff_enabled_flag
1700 テーブル
1800 プロセス
1900 コンピュータシステム
1901 キーボード
1902 マウス
1903 トラックパッド
1905 ジョイスティック
1906 マイクロフォン
1907 スキャナ
1908 カメラ
1909 スピーカ
1910 タッチスクリーン
1920 CD/DVD ROM/RW
1921 CD/DVDまたは同様の媒体
1922 サムドライブ
1923 リムーバブルハードドライブまたはソリッドステートドライブ
1940 コア
1941 中央処理装置(CPU)
1942 グラフィックス処理装置(GPU)
1943 フィールドプログラマブルゲートエリア(FPGA)
1944 ハードウェアアクセラレータ
1945 読取り専用メモリ(ROM)
1946 ランダムアクセスメモリ、RAM
1947 コア内部大容量ストレージ
1948 システムバス
1949 周辺バス
1950 グラフィックスアダプタ
1954 インターフェース
1955 通信ネットワーク