(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-05
(45)【発行日】2024-02-14
(54)【発明の名称】ビデオコーディングにおけるプロファイル、層及びレイヤの指示
(51)【国際特許分類】
H04N 19/70 20140101AFI20240206BHJP
H04N 19/30 20140101ALI20240206BHJP
【FI】
H04N19/70
H04N19/30
(21)【出願番号】P 2022539112
(86)(22)【出願日】2020-12-24
(86)【国際出願番号】 US2020067015
(87)【国際公開番号】W WO2021134015
(87)【国際公開日】2021-07-01
【審査請求日】2022-07-05
(32)【優先日】2019-12-26
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2019-12-30
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520477474
【氏名又は名称】バイトダンス インコーポレイテッド
【氏名又は名称原語表記】BYTEDANCE INC.
【住所又は居所原語表記】12655 West Jefferson Boulevard, Sixth Floor, Suite No. 137 Los Angeles, California 90066 United States of America
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ワン,イェ-クイ
【審査官】田中 純一
(56)【参考文献】
【文献】国際公開第2021/117813(WO,A1)
【文献】特表2017-522779(JP,A)
【文献】米国特許出願公開第2015/0358640(US,A1)
【文献】Ye-Kui Wang,AHG8: Scalability - PTL and decoder capability [online], JVET-P JVET-P0117-v3,ITU-T インターネット<URL:https://jvet-experts.org/doc_end_user/documents/16_Geneva/wg11/JVET-P0117-v3.zip>,2019年10月07日,pp.1-4
(58)【調査した分野】(Int.Cl.,DB名)
H04N 7/12
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
ビデオ処理の方法であって、
複数のビデオレイヤを含むビデオと、前記ビデオのビットストリームとの間で変換を実行するステップを含み、
前記ビットストリームは、前記複数のビデオレイヤのうち1つ以上をそれぞれ含む複数の出力レイヤセット(OLS)を含み、前記ビットストリームはフォーマットルールに準拠し、
前記フォーマットルールは、単一のレイヤを有するOLSについて、前記OLSのプロファイル、層及びレベルを示すプロファイル層レベル(PTL)シンタックス構造が、前記ビットストリームのビデオパラメータセットに含まれ、前記OLSの前記PTLシンタックス構造が、前記ビットストリームにコーディングされたシーケンスパラメータセットにも含まれることを指定
し、
前記フォーマットルールは、前記ビデオパラメータセットにコーディングされた前記PTLシンタックス構造の数を示す数シンタックスエレメントが前記ビデオパラメータセットに含まれることを指定し、
前記PTLシンタックス構造の数は、前記数シンタックスエレメントの値に1を加えたものに等しい、方法。
【請求項2】
前記フォーマットルールは、前記ビットストリームの前記ビデオパラメータセット内の前記PTLシンタックス構造の数の発生と、前記ビデオパラメータセット内のバイト位置合わせシンタックスフィールドとの間の関係を更に指定する、請求項
1に記載の方法。
【請求項3】
前記フォーマットルールは、少なくとも1つのPTLシンタックス構造が前記ビデオパラメータセットに含まれ、前記少なくとも1つのPTLシンタックス構造が含まれるために、前記バイト位置合わせシンタックスフィールドの1つ以上のインスタンスが前記ビデオパラメータセットに含まれることを指定する、請求項
2に記載の方法。
【請求項4】
前記バイト位置合わせシンタックスフィールドは1ビットである、請求項
3に記載の方法。
【請求項5】
バイト位置合わせシンタックスフィールドの前記1つ以上のインスタンスのそれぞれの値は、値0を有する、請求項
4に記載の方法。
【請求項6】
前記フォーマットルールは、
符号化中に、前記数シンタックスエレメントの値がゼロに等しい場合、前記PTLシンタックス構造へのインデックスを示すインデックスシンタックスエレメントが前記ビットストリームの前記ビデオパラメータセットから除外され、
復号中に、前記インデックスシンタックスエレメントが前記ビットストリームに存在しない場合、前記インデックスシンタックスエレメントの値がゼロであると推定されること
を更に指定する、請求項
1乃至
5のうちいずれか1項に記載の方法。
【請求項7】
前記変換を実行するステップは、前記ビデオを前記ビットストリームに符号化するステップを含む、請求項1乃至
6のうちいずれか1項に記載の方法。
【請求項8】
前記変換を実行するステップは、前記ビットストリームから前記ビデオを復号するステップを含む、請求項1乃至
6のうちいずれか1項に記載の方法。
【請求項9】
プロセッサと、命令を有する非一時的なメモリとを含む、ビデオデータを処理するための装置であって、
前記命令は、前記プロセッサによって実行されると、前記プロセッサに、
複数のビデオレイヤを含むビデオと、前記ビデオのビットストリームとの間で変換を実行させ、
前記ビットストリームは、前記複数のビデオレイヤのうち1つ以上をそれぞれ含む複数の出力レイヤセット(OLS)を含み、前記ビットストリームはフォーマットルールに準拠し、
前記フォーマットルールは、単一のレイヤを有するOLSについて、前記OLSのプロファイル、層及びレベルを示すプロファイル層レベル(PTL)シンタックス構造が、前記ビットストリームのビデオパラメータセットに含まれ、前記OLSの前記PTLシンタックス構造が、前記ビットストリームにコーディングされたシーケンスパラメータセットにも含まれることを指定
し、
前記フォーマットルールは、前記ビデオパラメータセットにコーディングされた前記PTLシンタックス構造の数を示す数シンタックスエレメントが前記ビデオパラメータセットに含まれることを指定し、
前記PTLシンタックス構造の数は、前記数シンタックスエレメントの値に1を加えたものに等しい、装置。
【請求項10】
命令を記憶した非一時的なコンピュータ読み取り可能記憶媒体であって、
前記命令は、プロセッサに、
複数のビデオレイヤを含むビデオと、前記ビデオのビットストリームとの間で変換を実行させ、
前記ビットストリームは、前記複数のビデオレイヤのうち1つ以上をそれぞれ含む複数の出力レイヤセット(OLS)を含み、前記ビットストリームはフォーマットルールに準拠し、
前記フォーマットルールは、単一のレイヤを有するOLSについて、前記OLSのプロファイル、層及びレベルを示すプロファイル層レベル(PTL)シンタックス構造が、前記ビットストリームのビデオパラメータセットに含まれ、前記OLSの前記PTLシンタックス構造が、前記ビットストリームにコーディングされたシーケンスパラメータセットにも含まれることを指定
し、
前記フォーマットルールは、前記ビデオパラメータセットにコーディングされた前記PTLシンタックス構造の数を示す数シンタックスエレメントが前記ビデオパラメータセットに含まれることを指定し、
前記PTLシンタックス構造の数は、前記数シンタックスエレメントの値に1を加えたものに等しい、非一時的なコンピュータ読み取り可能記憶媒体。
【請求項11】
ビデオのビットストリームを記憶するための方法であって、
複数のビデオレイヤを含む前記ビデオの前記ビットストリームを生成するステップ
と、
前記ビットストリームを非一時的なコンピュータ読み取り可能記録媒体に記憶するステップと
を含み、
前記ビットストリームは、前記複数のビデオレイヤのうち1つ以上をそれぞれ含む複数の出力レイヤセット(OLS)を含み、前記ビットストリームはフォーマットルールに準拠し、
前記フォーマットルールは、単一のレイヤを有するOLSについて、前記OLSのプロファイル、層及びレベルを示すプロファイル層レベル(PTL)シンタックス構造が、前記ビットストリームのビデオパラメータセットに含まれ、前記OLSの前記PTLシンタックス構造が、前記ビットストリームにコーディングされたシーケンスパラメータセットにも含まれることを指定
し、
前記フォーマットルールは、前記ビデオパラメータセットにコーディングされた前記PTLシンタックス構造の数を示す数シンタックスエレメントが前記ビデオパラメータセットに含まれることを指定し、
前記PTLシンタックス構造の数は、前記数シンタックスエレメントの値に1を加えたものに等しい、
方法。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願への相互参照]
本出願は、2020年12月24日に出願された国際特許出願第PCT/US2020/067015号に基づくものであり、国際特許出願第PCT/US2020/067015号は、2019年12月26日に出願された米国仮出願第62/953,854号及び2019年12月30日に出願された米国仮出願第62/954,907号の優先権及び利益を主張する。上記の特許出願の全ての全開示を参照により援用する。
【0002】
[技術分野]
本特許文献は、画像及びビデオのコーディング及び復号に関する。
【背景技術】
【0003】
デジタルビデオは、インターネット及び他のデジタル通信ネットワークにおける最大の帯域幅使用を占めている。ビデオを受信及び表示できる接続ユーザデバイスの数が増加するにつれて、デジタルビデオの利用に対する帯域幅需要が増加し続けることが想定される。
【発明の概要】
【0004】
本文献は、ビデオ符号化又は復号を実行するために、ビデオエンコーダ及びデコーダによって使用できる技術を開示する。
【0005】
1つの例示的な態様では、ビデオ処理方法が開示される。当該方法は、1つ以上のスケーラブルビデオレイヤを含むビデオと、ビデオのビットストリームとの間で変換を実行するステップを含む。ビデオは、1つ以上のスライスを含む1つ以上のビデオピクチャを含む。ビットストリームはフォーマットルールに準拠する。フォーマットルールは、対応するネットワーク抽象レイヤユニットタイプが所定の範囲内にあり、且つ、対応するビデオレイヤフラグがスライスに対応するビデオレイヤがレイヤ間予測を使用しないことを示す場合、スライスのスライスタイプを示すフィールドの値がイントラスライスのタイプを示すように設定されることを指定する。
【0006】
他の例示的な態様では、ビデオ処理方法が開示される。当該方法は、複数のビデオレイヤを含むビデオと、ビデオのビットストリームとの間で変換を実行するステップを含み、ビットストリームは、複数のスケーラブルビデオレイヤのうち1つ以上をそれぞれ含む複数の出力レイヤセット(OLS, output layer set)を含み、ビットストリームはフォーマットルールに準拠し、フォーマットルールは、単一のレイヤを有するOLSについて、OLSのプロファイル、層及びレベルを示すプロファイル層レベル(PTL, profile-tier-level)シンタックス構造が、ビットストリームのビデオパラメータセットに含まれ、OLSのPTLシンタックス構造が、ビットストリームにコーディングされたシーケンスパラメータセットにも含まれることを指定する。
【0007】
他の例示的な態様では、ビデオ処理方法が開示される。当該方法は、複数のビデオレイヤを含むビデオと、ビデオのビットストリームとの間で変換を実行するステップを含み、ビットストリームは、複数のビデオレイヤのうち1つ以上をそれぞれが含む複数の出力レイヤセット(OLS, output layer set)を含み、ビットストリームはフォーマットルールに準拠し、フォーマットルールは、ビットストリームのビデオパラメータセット内のプロファイル層レベル(PTL, profile-tier-level)シンタックス構造の数の発生と、ビデオパラメータセット内のバイト位置合わせシンタックスフィールドとの間の関係を指定し、各PTLシンタックス構造は、複数のOLSのうち1つ以上のプロファイル、層及びレベルを示す。
【0008】
他の例示的な態様では、ビデオ処理方法が開示される。当該方法は、複数のスケーラブルビデオレイヤを含むビデオと、ビデオのビットストリームとの間で変換を実行するステップを含み、ビットストリームは、複数のスケーラブルビデオレイヤのうち1つ以上をそれぞれ含む複数の出力レイヤセット(OLS, output layer set)を含み、ビットストリームはフォーマットルールに準拠し、フォーマットルールは、符号化中に、インデックスの値がゼロである場合、複数のOLSのうち1つ以上のプロファイル、層及びレベルを記述するシンタックス構造へのインデックスを示すシンタックスエレメントがビットストリームのビデオパラメータセットから除外されること、又は、復号中に、シンタックスエレメントがビットストリームに存在しない場合、値がゼロであると推定されることを指定する。
【0009】
他の例示的な態様では、ビデオ処理方法が開示される。当該方法は、複数のビデオレイヤを含むビデオと、ビデオのビットストリームとの間で変換を実行するステップを含み、ビットストリームは、複数のビデオレイヤのうち1つ以上をそれぞれが含む複数の出力レイヤセット(OLS, output layer set)を含み、ビットストリームはフォーマットルールに準拠し、フォーマットルールは、iが整数であるレイヤiについて、ビットストリームが、レイヤiが複数のOLSのうち少なくとも1つに含まれるか否かを示す第1の変数を示す第1のシンタックスエレメントのセットを含むことを指定する。
【0010】
他の例示的な態様では、ビデオ処理方法が開示される。当該方法は、ビデオとビデオのビットストリームとの間で変換を実行するステップを含み、ビットストリームは、1つ以上のビデオレイヤをそれぞれ含む1つ以上の出力レイヤセットを含み、ビットストリームはフォーマットルールに準拠し、フォーマットルールは、ビットストリームのビデオパラメータセットに含まれる復号ピクチャバッファパラメータのシンタックス構造の数が、各出力レイヤセットが単一のビデオレイヤを含む場合にはゼロに等しく、或いは、各出力レイヤセットが単一のレイヤを含むことが真でない場合には、1にシンタックスエレメントの値を加えたものに等しいことを指定する。
【0011】
他の例示的な態様では、ビデオ処理方法が開示される。当該方法は、ビデオとビデオのビットストリームとの間で変換を実行するステップを含み、ビットストリームは、1つ以上のビデオレイヤの1つ以上のコーディングビデオピクチャを含むコーディングビデオシーケンス(CVS, coded video sequence)を含み、ビットストリームは、CVSの1つ以上のコーディングピクチャによって参照される変換パラメータを示す1つ以上のシーケンスパラメータセット(SPS, sequence parameter set)が参照ビデオパラメータセット(VPS, video parameter set)を示す同じ参照VPS識別子を有することを指定するフォーマットルールに準拠する。
【0012】
他の例示的な態様では、ビデオ処理方法が開示される。当該方法は、ビデオとビデオのビットストリームとの間で変換を実行するステップを含み、ビットストリームは、1つ以上のビデオレイヤをそれぞれ含む1つ以上の出力レイヤセット(OLS, output layer set)を含み、ビットストリームはフォーマットルールに準拠し、フォーマットルールは、変換のために使用される仮想参照デコーダ(HRD, hypothetical reference decoder)のパラメータを記述する第1のシンタックス構造がビットストリームのビデオパラメータセット(VPS, video parameter set)に含まれるか否かを示す第1のシンタックスエレメントが含まれるか否か或いはどのように含まれるかを指定する。
【0013】
他の例示的な態様では、ビデオ処理方法が開示される。当該方法は、ビデオとビデオのビットストリームとの間で変換を実行するステップを含み、ビットストリームは、1つ以上のビデオレイヤをそれぞれ含む1つ以上の出力レイヤセット(OLS, output layer set)を含み、ビットストリームはフォーマットルールに準拠し、フォーマットルールは、一般的な仮想参照デコーダ(HRD, hypothetical reference decoder)パラメータを記述する第1のシンタックス構造、及びOLS特有のHRDパラメータを記述する第2のシンタックス構造の数がビットストリームのビデオパラメータセット(VPS, video parameter set)に含まれるか否か或いはどのように含まれるかを指定する。
【0014】
更に他の例示的な態様では、ビデオエンコーダ装置が開示される。ビデオエンコーダは、上述の方法を実現するように構成されたプロセッサを含む。
【0015】
更に他の例示的な態様では、ビデオデコーダ装置が開示される。ビデオデコーダは、上述の方法を実現するように構成されたプロセッサを含む。
【0016】
更に他の例示的な態様では、コードを記憶したコンピュータ読み取り可能媒体が開示される。コードは、プロセッサ実行可能コードの形式で本明細書に記載の方法の1つを具現する。
【0017】
更に他の例示的な態様では、上記の方法の1つに従って生成されたビットストリームをコンピュータ読み取り可能媒体に書き込むための方法が開示される。
【0018】
他の例示的な態様では、上述の方法に従って生成されたビデオのビットストリームを記憶するコンピュータ読み取り可能媒体が開示される。
【0019】
これら及び他の特徴について、本文献を通じて説明する。
【図面の簡単な説明】
【0020】
【
図1】本開示のいくつかの実施形態によるビデオコーディングシステムを示すブロック図である。
【
図2】ビデオ処理に使用される例示的なハードウェアプラットフォームのブロック図である。
【
図3】ビデオ処理の例示的な方法のためのフローチャートである。
【
図4】例示的なビデオコーディングシステムを示すブロック図である。
【
図5】本開示のいくつかの実施形態によるエンコーダを示すブロック図である。
【
図6】本開示のいくつかの実施形態によるデコーダを示すブロック図である。
【
図7A】様々なビデオ処理方法の例についてのフローチャートである。
【
図7B】様々なビデオ処理方法の例についてのフローチャートである。
【
図7C】様々なビデオ処理方法の例についてのフローチャートである。
【
図7D】様々なビデオ処理方法の例についてのフローチャートである。
【
図7E】様々なビデオ処理方法の例についてのフローチャートである。
【
図7F】様々なビデオ処理方法の例についてのフローチャートである。
【
図7G】様々なビデオ処理方法の例についてのフローチャートである。
【
図7H】様々なビデオ処理方法の例についてのフローチャートである。
【
図7I】様々なビデオ処理方法の例についてのフローチャートである。
【発明を実施するための形態】
【0021】
セクションの見出しは、理解を容易にするために本文献で使用されており、各セクションで開示される技術及び実施形態の適用可能性をそのセクションのみに限定するものではない。さらに、H.266の用語は、いくつかの説明において理解を容易にするためにのみ使用され、開示される技術の範囲を限定するためには使用されるものではない。したがって、本明細書に記載の技術は、他のビデオコーデックプロトコル及び設計にも適用可能である。
【0022】
1. 要約
本文献は、ビデオコーディング技術に関する。具体的には、ビデオビットストリームが1つよりも多くのレイヤを含むことができるスケーラブルビデオコーディングにおける様々な改良についてのものである。概念は、個別に或いは様々な組み合わせで、マルチレイヤビデオコーディングをサポートするいずれかのビデオコーディング標準又は非標準ビデオコーデック、例えば、開発中のバーサタイルビデオコーディング(VVC, Versatile Video Coding)に適用されてもよい。
【0023】
2. 略語
APS 適応パラメータセット(Adaptation Parameter Set)
AU アクセスユニット(Access Unit)
AUD アクセスユニットデリミタ(Access Unit Delimiter)
AVC アドバンストビデオコーディング(Advanced Video Coding)
CLVS コーディングレイヤビデオシーケンス(Coded Layer Video Sequence)
CPB コーディングピクチャバッファ(Coded Picture Buffer)
CRA クリーンランダムアクセス(Clean Random Access)
CTU コーディングツリーユニット(Coding Tree Unit)
CVS コーディングビデオシーケンス(Coded Video Sequence)
DPB 復号ピクチャバッファ(Decoded Picture Buffer)
DPS 復号パラメータセット(Decoding Parameter Set)
EOB ビットストリーム終了(End Of Bitstream)
EOS シーケンス終了(End Of Sequence)
GDR 漸次復号リフレッシュ(Gradual Decoding Refresh)
HEVC 高効率ビデオコーディング(High Efficiency Video Coding)
HRD 仮想参照デコーダ(Hypothetical Reference Decoder)
IDR 瞬時復号リフレッシュ(Instantaneous Decoding Refresh)
JEM 共同探査モデル(Joint Exploration Model)
MCTS 動き制約タイルセット(Motion-Constrained Tile Sets)
NAL ネットワーク抽象レイヤ(Network Abstraction Layer)
OLS 出力レイヤセット(Output Layer Set)
PH ピクチャヘッダ(Picture Header)
PPS ピクチャパラメータセット(Picture Parameter Set)
PTL プロファイル、層及びレベル(Profile, Tier and Level)
PU ピクチャユニット(Picture Unit)
RBSP 未加工バイトシーケンスペイロード(Raw Byte Sequence Payload)
SEI 補足エンハンスメント情報(Supplemental Enhancement Information)
SPS シーケンスパラメータセット(Sequence Parameter Set)
SVC スケーラブルビデオコーディング(Scalable Video Coding)
VCL ビデオコーディングレイヤ(Video Coding Layer)
VPS ビデオパラメータセット(Video Parameter Set)
VTM VVCテストモデル(VVC Test Model)
VUI ビデオユーザビリティ情報(Video Usability Information)
VVC バーサタイルビデオコーディング(Versatile Video Coding)
【0024】
3. 最初の議論
ビデオコーディング標準は、主に、周知のITU-T及びISO/IEC標準の開発を通じて進化してきた。ITU-TはH.261及びH.263を作成し、ISO/IECはMPEG-1及びMPEG-4 Visualを作成し、2つの組織は共同でH.262/MPEG-2 Video及びH.264/MPEG-4アドバンストビデオコーディング(AVC, Advanced Video Coding)並びにH.265/HEVC[1]標準を作成した。H.262から、ビデオコーディング標準は、時間予測に加えて変換コーディングが利用されるハイブリッドビデオコーディング構造に基づいている。HEVCを越える将来のビデオコーディング技術を探求するために、2015年に共同ビデオ探査チーム(JVET, Joint Video Exploration Team)がVCEG及びMPEGによって共同で設立された。それ以来、多くの新たな方法がJVETによって採用され、共同探査モデル(JEM, Joint Exploration Model)[2]と名付けられた参照ソフトウェアに入れられた。現在、JVET会議は四半期に1回開催されており、新たなコーディング標準は、HEVCと比較して50%のビットレート低減を目指している。新たなビデオコーディング標準は、2018年4月のJVET会議においてバーサタイルビデオコーディング(VVC, Versatile Video Coding)として正式に命名され、その際にVVCテストモデル(VTM, VVC test model)の最初のバージョンがリリースされた。VVC標準化に寄与する継続的な努力が行われているので、JVET会議毎に新たなコーディング技術がVVC標準に採用されている。その後、VVC作業ドラフト及びテストモデルVTMは、毎回の会議後に更新されている。VVCプロジェクトは現在、2020年7月の会議で技術的完成(FDIS)を目指している。
【0025】
3.1. 一般的なスケーラブルビデオコーディング(SVC, scalable video coding)
スケーラブルビデオコーディング(SVC, scalable video coding)は、場合によっては参照レイヤ(RL, reference layer)と呼ばれるベースレイヤ(BL, base layer)、及び1つ以上のスケーラブルエンハンスメントレイヤ(EL, enhancement layer)が使用されるビデオコーディングを示す。SVCでは、ベースレイヤは、ベースレベルの品質のビデオデータを搬送できる。1つ以上のエンハンスメントレイヤは、例えば、より高い空間レベル、時間レベル、及び/又は信号対雑音(SNR, signal-to-noise)レベルをサポートするために、更なるビデオデータを搬送できる。エンハンスメントレイヤは、以前に符号化されたレイヤに対して定義されてもよい。例えば、下位レイヤはBLとして機能してもよく、上位レイヤはELとして機能してもよい。中間レイヤは、EL若しくはRLのいずれか、又はこれらの双方として機能してもよい。例えば、中間レイヤ(例えば、最下位レイヤでも最上位レイヤでもないレイヤ)は、中間レイヤの下のレイヤ、例えば、ベースレイヤ又はいずれかの介在するエンハンスメントレイヤのためのELでもよく、同時に、中間レイヤの上の1つ以上のエンハンスメントレイヤについてのRLとして機能してもよい。同様に、HEVC標準のマルチビュー又は3D拡張では、複数のビューが存在してもよく、1つのビューの情報は、他のビューの情報(例えば、動き推定、動きベクトル予測及び/又は他の冗長性)をコーディング(例えば、符号化又は復号)するために利用されてもよい。
【0026】
SVCでは、エンコーダ又はデコーダによって使用されるパラメータは、これらが利用され得るコーディングレベル(例えば、ビデオレベル、シーケンスレベル、ピクチャレベル、スライスレベル等)に基づいて、パラメータセットにグループ化される。例えば、ビットストリーム内の異なるレイヤの1つ以上のコーディングビデオシーケンスによって利用され得るパラメータは、ビデオパラメータセット(VPS, video parameter set)に含まれてもよく、コーディングビデオシーケンス内の1つ以上のピクチャによって利用されるパラメータは、シーケンスパラメータセット(SPS, sequence parameter set)に含まれてもよい。同様に、ピクチャ内の1つ以上のスライスによって利用されるパラメータは、ピクチャパラメータセット(PPS, picture parameter set)に含まれてもよく、単一のスライスに特有の他のパラメータは、スライスヘッダに含まれてもよい。同様に、特定のレイヤが所与の時間にどのパラメータセットを使用しているかの指示は、様々なコーディングレベルで提供されてもよい。
【0027】
3.2. パラメータセット
AVC、HEVC及びVVCは、パラメータセットを指定する。パラメータセットのタイプは、SPS、PPS、APS、VPS及びDPSを含む。SPS及びPPSは、AVC、HEVC及びVVCの全てでサポートされる。VPSはHEVCから導入され、HEVC及びVVCの双方に含まれる。APS及びDPSは、AVC又はHEVCには含まれないが、最新のVVCドラフトテキストに含まれている。
【0028】
SPSはシーケンスレベルのヘッダ情報を搬送するように設計され、PPSはまれに変化するピクチャレベルのヘッダ情報を搬送するように設計されている。SPS及びPPSでは、シーケンス又はピクチャ毎にまれに変化する情報が繰り返される必要がないので、これらの情報の冗長なシグナリングが回避できる。さらに、SPS及びPPSの使用は、重要なヘッダ情報の帯域外送信を可能にし、冗長送信の必要性を回避するだけでなく、エラー耐性も改善する。
【0029】
VPSは、マルチレイヤビットストリームの全てのレイヤに共通するシーケンスレベルのヘッダ情報を搬送するために導入されている。
【0030】
APSは、コーディングにかなりのビットを必要とし、複数のピクチャによって共有でき、シーケンスにおいて非常に多くの異なるバリエーションが存在し得るようなピクチャレベル又はスライスレベルの情報を搬送ために導入されている。
【0031】
DPSは、全体のビットストリームを復号するのに必要な最高の能力を示すビットストリームレベルの情報を搬送するために導入されている。
【0032】
3.3.VVCにおけるVPSシンタックス及びセマンティクス
VVCは、スケーラブルビデオコーディングとしても知られているスケーラビリティをサポートし、複数のレイヤが1つのコーディングビデオビットストリームにおいて符号化できる。
【0033】
最新のVVCテキストでは、スケーラビリティ情報はVPSでシグナリングされ、シンタックスとセマンティクスは以下の通りである。
7.3.2.2 ビデオパラメータセットのシンタックス
【表1】
7.4.3.2 ビデオパラメータセットRBSPのセマンティクス
VPS RBSPは、参照される前に復号プロセスに利用可能であり、0に等しいTemporalIdを有する少なくとも1つのAUに含まれるか、或いは、外部手段を通じて提供されるものとする。
CVS内のvps_video_parameter_set_idの特定の値を有する全てのVPS NALユニットは、同じ内容を有するものとする。
vps_video_parameter_set_idは、他のシンタックスエレメントによって参照するためのVPSの識別子を提供する。vps_video_parameter_set_idの値は0よりも大きいものとする。
vps_max_layers_minus1に1を加えたものは、VPSを参照する各CVS内のレイヤの最大許容数を指定する。
vps_max_sublayers_minus1に1を加えたものは、VPSを参照する各CVSに存在し得る時間サブレイヤの最大数を指定する。vps_max_sublayers_minus1の値は、0以上6以下の範囲にあるものとする。
1に等しいvps_all_layers_same_num_sublayers_flagは、VPSを参照する各CVS内の全てのレイヤについて、時間サブレイヤの数が同じであることを指定する。0に等しいvps_all_layers_same_num_sublayers_flagは、VPSを参照する各CVS内のレイヤが同じ数の時間サブレイヤを有してもよく或いは有さなくてもよいことを指定する。存在しない場合、vps_all_layers_same_num_sublayers_flagの値は1に等しいと推定される。
1に等しいvps_all_independent_layers_flagは、CVS内の全てのレイヤがレイヤ間予測を使用せずに独立してコーディングされることを指定する。0に等しいvps_all_independent_layers_flagは、CVS内のレイヤのうち1つ以上がレイヤ間予測を使用してもよいことを指定する。存在しない場合、vps_all_independent_layers_flagの値は1に等しいと推定される。vps_all_independent_layers_flagが1に等しい場合、vps_independent_layer_flag[i]の値は1に等しいと推定される。vps_all_independent_layers_flagが0に等しい場合、vps_independent_layer_flag[0]の値は1に等しいと推定される。
vps_layer_id[i]は、第iのレイヤのnuh_layer_id値を指定する。M及びnのいずれか2つの非負の整数値について、mがn未満である場合、vps_layer_id[m]の値はvps_layer_id[n]未満であるものとする。
1に等しいvps_independent_layer_flag[i]は、インデックスiを有するレイヤがレイヤ間予測を使用しないことを指定する。0に等しいvps_independent_layer_flag[i]は、インデックスiを有するレイヤがレイヤ間予測を使用してもよく、0以上i-1以下の範囲のjについて、シンタックスエレメントvps_direct_ref_layer_flag[i][j]がVPSに存在することを指定する。存在しない場合、vps_independent_layer_flag[i]の値は1に等しいと推定される。
0に等しいvps_direct_ref_layer_flag[i][j]は、インデックスjを有するレイヤがインデックスiを有するレイヤの直接参照レイヤではないことを指定する。1に等しいvps_direct_ref_layer_flag[i][j]は、インデックスjを有するレイヤがインデックスiを有するレイヤの直接参照レイヤであることを指定する。0以上vps_max_layers_minus1以下の範囲のi及びjについて、vps_direct_ref_layer_flag[i][j]が存在しない場合、これは0に等しいと推定される。vps_independent_layer_flag[i]が0に等しい場合、vps_direct_ref_layer_flag[i][j]が1に等しいくなるような、0以上i-1以下の範囲のjの少なくとも1つの値が存在するものとする。
変数NumDirectRefLayers[i]、DirectRefLayerIdx[i][d]、NumRefLayers[i]、RefLayerIdx[i][r]及びLayerUsedAsRefLayerFlag[j]は以下のように導出される。
【数1】
vps_layer_id[i]に等しいnuh_layer_idを有するレイヤのレイヤインデックスを指定する変数GeneralLayerIdx[i]は以下のように導出される。
【数2】
1に等しいeach_layer_is_an_ols_flagは、各出力レイヤセットが1つのレイヤのみを含み、ビットストリーム内の各レイヤ自体が出力レイヤセットであり、単一の含まれるレイヤが出力レイヤのみであることを指定する。0に等しいeach_layer_is_an_ols_flagは、出力レイヤセットが1つよりも多くのレイヤを含んでもよいことを指定する。vps_max_layers_minus1が0に等しい場合、each_layer_is_an_ols_flagの値は1と推定される。そうでなく、vps_all_independent_layers_flagが0に等しい場合、each_layer_is_an_ols_flagの値は0に等しいと推定される。
0に等しいols_mode_idcは、VPSによって指定されたOLSの総数がvps_max_layers_minus1+1に等しいことを指定する。第iのOLSは、0以上i以下のレイヤインデックスを有するレイヤを含み、各OLSについて、OLS内で最高のレイヤのみが出力される。
1に等しいols_mode_idcは、VPSによって指定されたOLSの総数がvps_max_layers_minus1+1に等しいことを指定する。第iのOLSは、0以上i以下のレイヤインデックスを有するレイヤを含み、各OLSについて、OLS内で全てのレイヤが出力される。
2に等しいols_mode_idcは、VPSによって指定されたOLSの総数が明示的にシグナリングされ、各OLSについて出力レイヤが明示的にシグナリングされ、他のレイヤがOLSの出力レイヤの直接又は間接参照レイヤであるレイヤであることを指定する。
ols_mode_idcの値は、0以上2以下の範囲にあるものとする。ols_mode_idcの値3は、ITU-T|ISO/IECによる将来の使用のために確保される。
vps_all_independent_layers_flagが1に等しく、each_layer_is_an_ols_flagが0に等しい場合、ols_mode_idcの値は2に等しいと推定される。
num_output_layer_sets_minus1に1を加えたものは、ols_mode_idcが2に等しい場合、VPSによって指定されるOLSの総数を指定する。
VPSによって指定されたOLSの総数を指定する変数TotalNumOlssは以下のように導出される。
【数3】
1に等しいols_output_layer_flag[i][j]は、ols_mode_idcが2に等しい場合、vps_layer_id[j]に等しいnuh_layer_idを有するレイヤが第iのOLSの出力レイヤであることを指定する。0に等しいols_output_layer_flag[i][j]は、ols_mode_idcが2に等しい場合、vps_layer_id[j]に等しいnuh_layer_idを有するレイヤが第iのOLSの出力レイヤでないことを指定する。
第iのOLS内の出力レイヤの数を指定する変数NumOutputLayersInOls[i]、及び第iのOLS内の第jの出力レイヤのnuh_layer_id値を指定する変数OutputLayerIdInOls[i][j]は以下のように導出される。
【数4】
各OLSについて、出力レイヤである少なくとも1つのレイヤが存在するものとする。言い換えると、0以上TotalNumOlss-1以下の範囲のiのいずれかの値について、NumOutputLayersInOls[i]の値は1以上であるものとする。
第iのOLS内のレイヤの数を指定する変数NumLayersInOls[i]、及び第iのOLS内の第jのレイヤのnuh_layer_id値を指定する変数LayerIdInOls[i][j]は以下のように導出される。
【数5】
注1- 第0のOLSは最下位レイヤ(すなわち、vps_layer_id[0]に等しいnuh_layer_idを有するレイヤ)のみを含み、第0のOLSについて、含まれるレイヤのみが出力される。
LayerIdInOls[i][j]に等しいnuh_layer_idを有するレイヤのOLSレイヤインデックスを指定する変数OlsLayeIdx[i][j]は以下ように導出される。
【数6】
各OLS内の最下位レイヤは独立レイヤであるものとする。言い換えると、0以上TotalNumOlss-1以下の範囲の各iについて、vps_independent_layer_flag[GeneralLayerIdx[LayerIdInOls[i][0]]]の値は1に等しいものとする。
各レイヤは、VPSによって指定された少なくとも1つのOLSに含まれるものとする。言い換えると、0以上vps_max_layers_minus1以下の範囲のkについてvps_layer_id[k]の1つに等しい、nuh_layer_idの特定の値nuhLayerIdを有する各レイヤについて、i及びjの値の少なくとも1つの対が存在するものとし、iは0以上TotalNumOlss-1以下の範囲にあり、jはLayerIdInOls[i][j]の値がnuhLayerIdに等しくなるようなNumLayersInOls[i]-1の範囲内である。
vps_num_ptlsは、VPS内のprofile_tier_level()シンタックス構造の数を指定する。
1に等しいpt_present_flag[i]は、プロファイル、層及び一般制約情報がVPS内の第iのprofile_tier_level()シンタックス構造に存在することを指定する。0に等しいpt_present_flag[i]は、プロファイル、層及び一般制約情報がVPS内の第iのprofile_tier_level()シンタックス構造に存在しないことを指定する。pt_present_flag[0]の値は0に等しいと推定される。pt_present_flag[i]が0に等しい場合、VPS内の第iのprofile_tier_level()シンタックス構造のプロファイル、層及び一般制約情報は、VPS内の第(i-1)のprofile_tier_level()シンタックス構造のものと同じであると推定される。
ptl_max_temporal_id[i]は、VPS内の第iのprofile_tier_level()シンタックス構造にレベル情報が存在する、最高のサブレイヤ表現のTemporalIdを指定する。ptl_max_temporal_id[i]の値は、0以上vps_max_sublayers_minus1以下の範囲にあるものとする。vps_max_sublayers_minus1が0に等しい場合、ptl_max_temporal_id[i]の値は0に等しいと推定される。vps_max_sublayers_minus1が0よりも大きく、vps_all_layers_same_num_sublayers_flagが1に等しい場合、ptl_max_temporal_id[i]の値はvps_max_sublayers_minus1に等しいと推定される。
vps_ptl_byte_alignment_zero_bitは0に等しいものとする。
ols_ptl_idx[i]は、第iのOLSに適用するprofile_tier_level()シンタックス構造のVPS内のprofile_tier_level()シンタックス構造のリストへのインデックスを指定する。存在する場合、ols_ptl_idx[i]の値は、0以上vps_num_ptls-1以下の範囲にあるものとする。
NumLayersInOls[i]が1に等しい場合、第iのOLSに適用するprofile_tier_level()シンタックス構造は、第iのOLS内のレイヤによって参照されるSPSに存在する。
vps_num_dpb_paramsは、VPS内のdpb_parameters()シンタックス構造の数を指定する。vps_num_dpb_paramsの値は、0以上16以下の範囲にあるものとする。存在しない場合、vps_num_dpb_paramsの値は0に等しいと推定される。
1に等しいsame_dpb_size_output_or_nonoutput_flagは、layer_nonoutput_dpb_params_idx[i]シンタックスエレメントがVPSに存在しないことを指定する。0に等しいsame_dpb_size_output_or_nonoutput_flagは、layer_nonoutput_dpb_params_idx[i]シンタックスエレメントがVPSに存在してもよく或いは存在しなくてもよいことを指定する。
vps_sublayer_dpb_params_present_flagは、VPS内のdpb_parameters()内のmax_dec_pic_buffering_minus1[]、max_num_reorder_pics[]及びmax_latency_increase_plus1[]シンタックスエレメントの存在を制御するために使用される。存在しない場合、vps_sub_dpb_params_info_present_flagは0に等しいと推定される。
1に等しいdpb_size_only_flag[i]は、max_num_reorder_pics[]及びmax_latency_increase_plus1[]シンタックスエレメントがVPSの第iのdpb_parameters()シンタックス構造に存在しないことを指定する。1に等しいdpb_size_only_flag[i]は、max_num_reorder_pics[]及びmax_latency_increase_plus1[]シンタックスエレメントがVPSの第iのdpb_parameters()シンタックス構造に存在してもよいことを指定する。
dpb_max_temporal_id[i]は、DPBパラメータがVPS内の第iのdpb_parameters()シンタックス構造に存在し得る最高のサブレイヤ表現のTemporalIdを指定する。dpb_max_temporal_id[i]の値は、0以上vps_max_sublayers_minus1以下の範囲にあるものとする。vps_max_sublayers_minus1が0に等しい場合、dpb_max_temporal_id[i]の値は0に等しいと推定される。vps_max_sublayers_minus1が0よりも大きく、vps_all_layers_same_num_sublayers_flagが1に等しい場合、dpb_max_temporal_id[i]の値はvps_max_sublayers_minus1に等しいと推定される。
layer_output_dpb_params_idx[i]は、OLS内の出力レイヤである場合に第iのレイヤに適用するdpb_parameters()シンタックス構造の、VPS内のdpb_parameters()シンタックス構造のリストへのインデックスを指定する。存在する場合、layer_output_dpb_params_idx[i]の値は、0以上vps_num_dpb_params-1以下の範囲にあるものとする。
vps_independent_layer_layer_flag[i]が1に等しい場合、出力レイヤである場合に第iのレイヤに適用するdpb_parameters()シンタックス構造は、レイヤによって参照されるSPSに存在するdpb_parameters()シンタックス構造である。
そうでない場合(vps_independent_layer_flag[i]が0に等しい場合)、以下が当てはまる。
-vps_num_dpb_paramsが1に等しい場合、layer_output_dpb_params_idx[i]の値は0に等しいと推定される。
-ビットストリーム適合性の要件は、layer_output_dpb_params_idx[i]の値が、dpb_size_only_flag[layer_output_dpb_params_idx[i]]が0に等しくなるようなものとすることである。
layer_nonoutput_dpb_params_idx[i]は、OLS内の非出力レイヤである場合に第iのレイヤに適用するdpb_parameters()シンタックス構造の、VPS内のdpb_parameters()シンタックス構造のリストへのインデックスを指定する。存在する場合、layer_nonoutput_dpb_params_idx[i]の値は、0以上vps_num_dpb_params-1以下の範囲にあるものとする。
same_dpb_size_output_or_nonoutput_flagが1に等しい場合、以下が当てはまる。
-vps_independent_layer_flag[i]が1に等しい場合、非出力レイヤである場合に第iのレイヤに適用するdpb_parameters()シンタックス構造は、レイヤによって参照されるSPSに存在するdpb_parameters()シンタックス構造である。
-そうでない場合(vps_independent_layer_flag[i]が0に等しい場合)、layer_nonoutput_dpb_params_idx[i]の値はlayer_output_dpb_params_idx[i]に等しいと推定される。
そうでない場合(same_dpb_size_output_or_nonoutput_flagが0に等しい場合)、vps_num_dpb_paramsが1に等しい場合、layer_output_dpb_params_idx[i]の値は0に等しいと推定される。
1に等しいvps_general_hrd_params_present_flagは、シンタックス構造general_hrd_parameters()及び他のHRDパラメータがVPS RBSPシンタックス構造に存在することを指定する。0に等しいvps_general_hrd_params_present_flagは、シンタックス構造general_hrd_parameters()及び他のHRDパラメータがVPS RBSPシンタックス構造に存在しないことを指定する。
1に等しいvps_sublayer_cpb_params_present_flagは、VPS内の第iのols_hrd_parameters()シンタックス構造が0以上hrd_max_tid[i]以下の範囲のTemporalIdを有するサブレイヤ表現のHRDパラメータを含むことを指定する。0に等しいvps_sublayer_cpb_params_present_flagは、VPS内の第iのols_hrd_parameters()シンタックス構造がhrd_max_tid[i]のみに等しいTemporalIdを有するサブレイヤ表現のHRDパラメータを含むことを指定する。vps_max_sublayers_minus1が0に等しい場合、vps_sublayer_cpb_params_present_flagの値は0に等しいと推定される。
vps_sublayer_cpb_params_present_flagが0に等しい場合、0以上hrd_max_tid[i]-1以下の範囲のTemporalIdを有するサブレイヤ表現のHRDパラメータは、hrd_max_tid[i]に等しいTemporalIdを有するサブレイヤ表現のHRDパラメータと同じであると推定される。これらは、ols_hrd_parametersシンタックス構造内の「if(general_vcl_hrd_params_present_flag)」の条件の直下のfixed_pic_rate_general_flag[i]シンタックスエレメントから始まりsublayer_hrd_parameters(i)シンタックス構造までのHRDパラメータを含む。
num_ols_hrd_params_minus1に1を加えたものは、general_hrd_parameters()シンタックス構造に存在するols_hrd_parameters()シンタックス構造の数を指定する。num_ols_hrd_params_minus1の値は、0以上63以下の範囲にあるものとする。TotalNumOlssが1よりも大きい場合、num_ols_hrd_params_minus1の値は0に等しいと推定される。
hrd_max_tid[i]は、HRDパラメータが第iのols_hrd_parameters()シンタックス構造に含まれる最高のサブレイヤ表現のTemporalIdを指定する。hrd_max_tid[i]の値は、0以上vps_max_sublayers_minus1以下の範囲にあるものとする。vps_max_sublayers_minus1が0に等しい場合、hrd_max_tid[i]の値は0に等しいと推定される。
ols_hrd_idx[i]は、第iのOLSに適用するols_hrd_parameters()シンタックス構造のインデックスを指定する。ols_hrd_idx[i]の値は、0以上num_ols_hrd_params_minus1以下の範囲にあるものとする。存在しない場合、ols_hrd_idx[i]の値は0に等しいと推定される。
0に等しいvps_extension_flagは、vps_extension_data_flagシンタックスエレメントがVPS RBSPシンタックス構造に存在しないことを指定する。1に等しいvps_extension_flagは、vps_extension_data_flagシンタックスエレメントがVPS RBSPシンタックス構造に存在することを指定する。
vps_extension_data_flagは、如何なる値を有してもよい。その存在及び値は、この仕様のこのバージョンで指定されるプロファイルへのデコーダ適合性に影響しない。この仕様のこのバージョンに準拠するデコーダは、全てのvps_extension_data_flagシンタックスエレメントを無視するものとする。
【0034】
3.4. VVCにおけるSPSシンタックス及びセマンティクス
JVET-P2001-v14における最新のVVCドラフトテキストにおいて、本明細書の発明に最も関連するSPSシンタックス及びセマンティクスは以下の通りである。
7.3.2.3 シーケンスパラメータセットRBSPのシンタックス
【表2】
7.4.3.3 シーケンスパラメータセットRBSPのセマンティクス
SPS RBSPは、参照される前に復号プロセスに利用可能であり、0に等しいTemporalIdを有する少なくとも1つのAUに含まれるか、或いは、外部手段を通じて提供されるものとする。
CVS内のsps_seq_parameter_set_idの特定の値を有する全てのSPS NALユニットは、同じ内容を有するものとする。
sps_decoding_parameter_set_idは、0よりも大きい場合、SPSによって参照されるDPSのdps_decoding_parameter_set_idの値を指定する。sps_decoding_parameter_set_idが0に等しい場合、SPSはDPSを参照せず、SPSを参照して各CLVSを復号する際にDPSは参照されない。sps_decoding_parameter_set_idの値は、ビットストリーム内のコーディングピクチャによって参照される全てのSPSにおいて同じであるものとする。
sps_video_parameter_set_idは、0よりも大きい場合、SPSによって参照されるVPSのvps_video_parameter_set_idの値を指定する。
sps_video_parameter_set_idが0に等しい場合、以下が当てはまる。
-SPSはVPSを参照しない。
-SPSを参照して各CLVSを復号する場合、VPSは参照されない。
-vps_max_layers_minus1の値は0に等しいと推定される。
-CVSは、1つのレイヤのみを含むものとする(すなわち、CVS内の全てのVCL NALユニットは、nuh_layer_idと同じ値を有するものとする)。
-GeneralLayerIdx[nuh_layer_id]の値は0に等しいと推定される。
-vps_independent_layer_flag[GeneralLayerIdx[nuh_layer_id]]の値は1に等しいと推定される。
vps_independent_layer_flag[GeneralLayerIdx[nuh_layer_id]]が1に等しい場合、特定のnuh_layer_id値nuhLayerIdを有するCLVSによって参照されるSPSは、nuhLayerIdに等しいnuh_layer_idを有するものとする。
sps_max_sublayers_minus1に1を加えたものは、SPSを参照する各CLVSに存在し得る時間サブレイヤの最大数を指定する。sps_max_sublayers_minus1の値は、0以上vps_max_sublayers_minus1以下の範囲にあるものとする。
sps_reserved_zero_4bitsは、この仕様のこのバージョンに準拠するビットストリームにおいて0に等しいものとする。sps_reserved_zero_4bitsの他の値は、ITU-T|ISO/IECによる将来の使用のために確保される。
1に等しいsps_ptl_dpb_hrd_params_present_flagは、profile_tier_level()シンタックス構造及びdpb_parameters()シンタックス構造がSPSに存在し、general_hrd_parameters()シンタックス構造及びols_hrd_parameters()シンタックス構造もSPSに存在してもよいことを指定する。0に等しいsps_ptl_dpb_hrd_params_present_flagは、これらのシンタックス構造のいずれもSPSに存在しないことを指定する。sps_ptl_dpb_hrd_params_present_flagの値は、vps_independent_layer_flag[nuh_layer_id]に等しいものとする。
vps_independent_layer_flag[GeneralLayerIdx[nuh_layer_id]]が1に等しい場合、変数MaxDecPicBuffMinus1は、SPS内のdpb_parameters()シンタックス構造内のmax_dec_pic_buffering_minus1[sps_max_sublayers_minus1]に等しく設定される。そうでない場合、MaxDecPicBuffMinus1は、VPS内の第layer_nonoutput_dpb_params_idx[GeneralLayerIdx[nuh_layer_id]]のdpb_parameters()シンタックス構造内のmax_dec_pic_buffering_minus1[sps_max_sublayers_minus1]に等しく設定される。
【0035】
3.5. VVCにおけるスライスヘッダシンタックス及びセマンティクス
JVET-P2001-v14における最新のVVCドラフトテキストにおいて、本明細書の発明に最も関連するスライスヘッダシンタックス及びセマンティクスは以下の通りである。
7.3.7.1 一般的なスライスヘッダシンタックス
【表3】
7.4.8.1 一般的なスライスヘッダのセマンティクス
slice_typeは、表9によるスライスのコーディングタイプを指定する。
【表4】
nal_unit_typeがIDR_W_RADL以上CRA_NUT以下の範囲のnal_unit_typeの値であり、現在ピクチャがアクセスユニット内の最初のピクチャである場合、slice_typeは2に等しいものとする。
【0036】
4. 記載の技術的解決策によって解決される技術的問題
VVCにおける既存のスケーラビリティ設計は、以下の問題を有する。
1)最新のVVCドラフトテキストは、slice_typeに関する以下の制約を含む。
nal_unit_typeがIDR_W_RADL以上CRA_NUT以下の範囲のnal_unit_typeの値であり、現在ピクチャがAU内の最初のピクチャである場合、slice_typeは2に等しいものとする。
スライスについて2に等しいslice_typeは、スライスが参照ピクチャからのインター予測を使用せずにイントラコーディングされることを意味する。
しかし、AUでは、AU内にあり且つIRAPピクチャである最初のピクチャがイントラコーディングスライスのみを含む必要があるだけでなく、全ての独立レイヤ内の全てのIRAPピクチャがイントラコーディングスライスのみを含む必要がある。したがって、上記の制約は更新される必要がある。
2)シンタックスエレメントols_ptl_idx[i]が存在しない場合、その値が依然として使用される必要がある。しかし、存在しない場合、ols_ptl_idx[i]の値の推測は存在しない。
3)シンタックスエレメントlayer_output_dpb_params_idx[i]のシグナリングは、iレイヤがOLSのいずれの出力レイヤとしても使用されていない場合には不要である。
4)シンタックスエレメントvps_num_dpb_paramsの値は0に等しくすることができる。しかし、vps_all_independent_layers_flagが0に等しい場合、VPSに少なくとも1つのdpb_parameters()シンタックス構造が存在する必要がある。
5)最新のVVCドラフトテキストでは、1つのレイヤのみを含むOLSのPTL情報は、他のレイヤを参照せずに独立してコーディングされるレイヤであり、SPSでのみシグナリングされる。しかし、セッション交渉の目的で、VPS内のビットストリーム内の全てのOLSのPTL情報をシグナリングすることが望まれる。
6)vps_ptl_byte_alignment_zero_bitシンタックスエレメントは、VPSでシグナリングされたPTLシンタックス構造の数がゼロである場合、不必要にシグナリングされる。
7)sps_video_parameter_set_idのセマンティクスには、以下の制約が存在する。
sps_video_parameter_set_idが0に等しい場合、CVSは1つのレイヤのみを含むものとする(すなわち、CVS内の全てのVCL NALユニットは、同じ値のnuh_layer_idを有するものとする)。
しかし、この制約は、マルチレイヤビットストリームに含まれるべきVPSを参照しない独立レイヤを許容しない。0に等しいsps_video_parameter_set_idは、SPS(及びレイヤ)がVPSを参照しないことを意味する。
8)vps_general_hrd_params_present_flagの値は、each_layer_is_an_ols_flagが1に等しい場合、1に等しくすることができる。しかし、each_layer_is_an_ols_flagが1に等しい場合、HRDパラメータはSPSでのみシグナリングされ、したがって、vps_general_hrd_params_present_flagの値は1に等しくないものとする。いくつかの場合、VPS内でゼロのold_hrd_parameters()シンタックス構造をシグナリングする一方で、general_hrd_parameter()シンタックス構造をシグナリングすることは意味がない可能性がある。
9)1つのレイヤのみを含むOLSのHRDパラメータは、VPS及びSPSの双方でシグナリングされる。しかし、1つのレイヤのみを含むOLSのVPS内でHRDパラメータを繰り返すことは有用ではない。
【0037】
5. 例示的な実施形態及び技術
上記の問題等を解決するために、以下に要約される方法が開示される。発明は、一般的概念を説明するための例示として考えられるべきであり、狭義に解釈されるべきではない。さらに、これらの発明は、単独で或いはいずれかの方式で組み合わせて適用できる。
1)1番目の問題を解決するために、以下の制約が指定される。
nal_unit_typeがIDR_W_RADL以下CRA_NUT以上の範囲にあり、vps_independent_layer_flag[GeneralLayerIdx[nuh_layer_id]]が1に等しい場合、slice_typeは2に等しいものとする。
2)2番目の問題を解決するために、iの可能な値のそれぞれについて、ols_ptl_idx[i]の値は、シンタックスエレメントが存在しない場合に0に等しいと推定される。
3)3番目の問題を解決するために、変数LayerUsedAsOutputLayerFlag[i]は、どのOLSにおいてもiレイヤが出力レイヤとして使用されるか否かを示すために指定され、変数が0に等しい場合、変数layer_output_dpb_params_idx[i]のシグナリングは回避される。
a.さらに、以下の制約が更に指定されてもよい。0以上vps_max_layers_minus1以下の範囲のiのそれぞれの値について、LayerUsedAsRefLayerFlag[i]及びLayerUsedAsOutputLayerFlag[i]の値は、双方とも0に等しくないものとする。言い換えると、いずれかの他のレイヤの直接参照レイヤでもなく、少なくとも1つのOLSの出力レイヤでもないレイヤは存在しないものとする。
4)4番目の問題を解決するために、vps_num_dpb_paramsをvps_num_dpb_params_minus1に変更し、以下のようにVpsNumDpbParamsを指定する。
【数7】
また、シンタックス条件及びセマンティクスにおけるvps_num_dpb_paramsの使用をVpsNumDpbParamsに置き換える。
a.さらに、以下の制約が更に指定される。存在しない場合、same_dpb_size_output_or_nonoutput_flagの値は1に等しいと推定される。
5)5番目の問題を解決するために、VPS内でセッション交渉の目的で1つのレイヤのみを含むOLSのPTL情報を繰り返すことを許容する。これは、vps_num_ptlsをvps_num_ptls_minus1に変更することによって実現できる。
a.代替として、vps_num_ptlsを(これをvps_num_ptls_minus1にせずに)保持するが、ols_ptl_idx[i]のシンタックス条件から「NumLayersInOls[i]>1&&」を除去する。
a.代替として、vps_num_ptlsを(これをvps_num_ptls_minus1にせずに)保持するが、vps_num_ptlsを「if(!each_layer_is_an_ols_flag)」又は「if(vps_max_layers_minus1>0&&!vps_all_independent_layers_flag」の条件とする。
b.代替として、VPS内の1つのレイヤのみを含むOLSについて、DPBパラメータ情報(DPBサイズのみ又は全てのDPBパラメータ)を繰り返すことも許容する。
6)6番目の問題を解決するために、VPSでシグナリングされたPTLシンタックス構造の数がゼロである限り、vps_ptl_byte_alignment_zero_bitシンタックスエレメントはシグナリングされない。これは、vps_ptl_byte_alignment_zero_bitを更に「if(vps_num_ptls>0)」の条件とすることによって、或いは、vps_num_ptlsをvps_num_ptls_minus1に変更することによって実現できる。これは、VPSでシグナリングされるPTLシンタックス構造の数がゼロに等しくなることを事実上許容しない。
7)7番目の問題を解決するために、以下の制約を除去する。
sps_video_parameter_set_idが0に等しい場合、CVSは1つのレイヤのみを含むものとする(すなわち、CVS内の全てのVCL NALユニットは、同じ値のnuh_layer_idを有するものとする)。
また、以下の制約を追加する。
sps_video_parameter_set_idの値は、CVS内のコーディングピクチャによって参照され且つ0よりも大きいsps_video_parameter_set_idを有する全てのSPSにおいて同じであるものとする。
a.代替として、以下の制約を保持する。
sps_video_parameter_set_idが0に等しい場合、CVSは1つのレイヤのみを含むものとする(すなわち、CVS内の全てのVCL NALユニットは、同じ値のnuh_layer_idを有するものとする)。
また、以下の制約を指定する。
sps_video_parameter_set_idの値は、CVS内のコーディングピクチャによって参照される全てのSPSにおいて同じであるものとする。
8)8番目の問題を解決するために、シンタックスエレメントvps_general_hrd_params_present_flagは、vps_general_hrd_params_present_flagが1に等しい場合にはシグナリングされず、存在しない場合には、vps_general_hrd_params_present_flagの値は0に等しいと推定される。
a.代替として、vps_general_hrd_params_present_flagの値は、each_layer_is_an_ols_flagが1に等しい場合、0に等しくなるように制約される。
b.さらに、シンタックスエレメントnum_ols_hrd_params_minus1のシンタックス条件、すなわち「if(TotalNumOlss>1)」は、必要ないので除去される。これは、TotalNumOlssが1に等しい場合、each_layer_is_an_ols_flagの値が1に等しくなり、その場合、vps_general_hrd_params_present_flagの値が0に等しくなるので、HRDパラメータがVPSでは全くシグナリングされないからである。
いくつかの場合、ols_hrd_parameters()シンタックス構造がVPSに存在しない場合、general_hrd_parameters()シンタックス構造はVPSでシグナリングされない。
9)9番目の問題を解決するために、1つのレイヤのみを含むOLSのHRDパラメータは、VPSではなく、SPSでのみシグナリングされる。
【0038】
6. 実施形態
以下は、VVC仕様に適用できる、セクション5において上記に要約した態様のいくつかの例示的な実施形態である。変更されたテキストは、JVET-P2001-v14における最新のVVCテキストに基づいている。追加又は変更されたほとんどの関連部分は下線の太字(又は下線)で強調表示され、削除された部分のいくつかはイタリック体の太字(又は[[]])で強調表示される。本質的に編集上の変更であるので、強調表示されないいくつかの他の変更が存在する。
6.1. 第1の実施形態
6.1.1. VPSシンタックス及びセマンティクス
7.3.2.2 ビデオパラメータセットのシンタックス
【表5】
7.4.3.2 ビデオパラメータセットRBSPのセマンティクス
1に等しいols_output_layer_flag[i][j]は、ols_mode_idcが2に等しい場合、vps_layer_id[j]に等しいnuh_layer_idを有するレイヤが第iのOLSの出力レイヤであることを指定する。0に等しいols_output_layer_flag[i][j]は、ols_mode_idcが2に等しい場合、vps_layer_id[j]に等しいnuh_layer_idを有するレイヤが第iのOLSの出力レイヤでないことを指定する。
第iのOLS内の出力レイヤの数を指定する変数NumOutputLayersInOls[i]、及び第iのOLS内の第jの出力レイヤのnuh_layer_id値を指定する変数OutputLayerIdInOls[i][j]は以下のように導出される。
【数8】
0以上vps_max_layers_minus1以下の範囲のiのそれぞれの値について、LayerUsedAsRefLayerFlag[i]及びLayerUsedAsOutputLayerFlag[i]の値は、双方とも0に等しくないものとする。言い換えると、いずれかの他のレイヤの直接参照レイヤでもなく、少なくとも1つのOLSの出力レイヤでもないレイヤは存在しないものとする。
各OLSについて、出力レイヤである少なくとも1つのレイヤが存在するものとする。言い換えると、0以上TotalNumOlss-1以下の範囲のiのいずれかの値について、NumOutputLayersInOls[i]の値は1以上であるものとする。
第iのOLS内のレイヤの数を指定する変数NumLayersInOls[i]、及び第iのOLS内の第jのレイヤのnuh_layer_id値を指定する変数LayerIdInOls[i][j]は以下のように導出される。
【数9】
注- 第0のOLSは最下位レイヤ(すなわち、vps_layer_id[0]に等しいnuh_layer_idを有するレイヤ)のみを含み、第0のOLSについて、含まれるレイヤのみが出力される。
LayerIdInOls[i][j]に等しいnuh_layer_idを有するレイヤのOLSレイヤインデックスを指定する変数OlsLayeIdx[i][j]は以下ように導出される。
【数10】
各OLS内の最下位レイヤは独立レイヤであるものとする。言い換えると、0以上TotalNumOlss-1以下の範囲の各iについて、vps_independent_layer_flag[GeneralLayerIdx[LayerIdInOls[i][0]]]の値は1に等しいものとする。
各レイヤは、VPSによって指定された少なくとも1つのOLSに含まれるものとする。言い換えると、0以上vps_max_layers_minus1以下の範囲のkについてvps_layer_id[k]の1つに等しい、nuh_layer_idの特定の値nuhLayerIdを有する各レイヤについて、i及びjの値の少なくとも1つの対が存在するものとし、iは0以上TotalNumOlss-1以下の範囲にあり、jはLayerIdInOls[i][j]の値がnuhLayerIdに等しくなるようなNumLayersInOls[i]-1の範囲内である。
vps_num_ptls
_minus1に1を加えたものは、VPS内のprofile_tier_level()シンタックス構造の数を指定する。
1に等しいpt_present_flag[i]は、プロファイル、層及び一般制約情報がVPS内の第iのprofile_tier_level()シンタックス構造に存在することを指定する。0に等しいpt_present_flag[i]は、プロファイル、層及び一般制約情報がVPS内の第iのprofile_tier_level()シンタックス構造に存在しないことを指定する。pt_present_flag[0]の値は1に等しいと推定される。pt_present_flag[i]が0に等しい場合、VPS内の第iのprofile_tier_level()シンタックス構造のプロファイル、層及び一般制約情報は、VPS内の第(i-1)のprofile_tier_level()シンタックス構造のものと同じであると推定される。
ptl_max_temporal_id[i]は、VPS内の第iのprofile_tier_level()シンタックス構造にレベル情報が存在する、最高のサブレイヤ表現のTemporalIdを指定する。ptl_max_temporal_id[i]の値は、0以上vps_max_sublayers_minus1以下の範囲にあるものとする。vps_max_sublayers_minus1が0に等しい場合、ptl_max_temporal_id[i]の値は0に等しいと推定される。vps_max_sublayers_minus1が0よりも大きく、vps_all_layers_same_num_sublayers_flagが1に等しい場合、ptl_max_temporal_id[i]の値はvps_max_sublayers_minus1に等しいと推定される。
vps_ptl_byte_alignment_zero_bitは0に等しいものとする。
ols_ptl_idx[i]は、第iのOLSに適用するprofile_tier_level()シンタックス構造のVPS内のprofile_tier_level()シンタックス構造のリストへのインデックスを指定する。存在する場合、ols_ptl_idx[i]の値は、0以上
vps_num_ptls_minus1以下の範囲にあるものとする。
vps_num_ptls_minus1が0に等しい場合、ols_ptl_idx[i]の値は0に等しいと推定される。
NumLayersInOls[i]が1に等しい場合、第iのOLSに適用するprofile_tier_level()シンタックス構造は、第iのOLS内のレイヤによって参照されるSPSに
も存在する。
vps_num_dpb_params
_minus1に1を加えたものは、VPS内のdpb_parameters()シンタックス構造の数を指定する。存在する場合、
vps_num_dpb_params_minus1の値は、0以上15以下の範囲にあるものとする。
変数VpsNumDpbParamsは以下のように導出される。
【数11】
1に等しいsame_dpb_size_output_or_nonoutput_flagは、layer_nonoutput_dpb_params_idx[i]シンタックスエレメントがVPSに存在しないことを指定する。0に等しいsame_dpb_size_output_or_nonoutput_flagは、layer_nonoutput_dpb_params_idx[i]シンタックスエレメントがVPSに存在してもよく或いは存在しなくてもよいことを指定する。
存在しない場合、same_dpb_size_output_or_nonoutput_flagの値は1に等しいと推定される。
vps_sublayer_dpb_params_present_flagは、VPS内のdpb_parameters()内のmax_dec_pic_buffering_minus1[]、max_num_reorder_pics[]及びmax_latency_increase_plus1[]シンタックスエレメントの存在を制御するために使用される。存在しない場合、vps_sub_dpb_params_info_present_flagは0に等しいと推定される。
1に等しいdpb_size_only_flag[i]は、max_num_reorder_pics[]及びmax_latency_increase_plus1[]シンタックスエレメントがVPSの第iのdpb_parameters()シンタックス構造に存在しないことを指定する。0に等しいdpb_size_only_flag[i]は、max_num_reorder_pics[]及びmax_latency_increase_plus1[]シンタックスエレメントがVPSの第iのdpb_parameters()シンタックス構造に存在してもよいことを指定する。
dpb_max_temporal_id[i]は、DPBパラメータがVPS内の第iのdpb_parameters()シンタックス構造に存在し得る最高のサブレイヤ表現のTemporalIdを指定する。dpb_max_temporal_id[i]の値は、0以上vps_max_sublayers_minus1以下の範囲にあるものとする。vps_max_sublayers_minus1が0に等しい場合、dpb_max_temporal_id[i]の値は0に等しいと推定される。vps_max_sublayers_minus1が0よりも大きく、vps_all_layers_same_num_sublayers_flagが1に等しい場合、dpb_max_temporal_id[i]の値はvps_max_sublayers_minus1に等しいと推定される。
layer_output_dpb_params_idx[i]は、OLS内の出力レイヤである場合に第iのレイヤに適用するdpb_parameters()シンタックス構造の、VPS内のdpb_parameters()シンタックス構造のリストへのインデックスを指定する。存在する場合、layer_output_dpb_params_idx[i]の値は、0以上
VpsNumDpbParams-1以下の範囲にあるものとする。
vps_independent_layer_layer_flag[i]が1に等しい場合、出力レイヤである場合に第iのレイヤに適用するdpb_parameters()シンタックス構造は、レイヤによって参照されるSPSに存在するdpb_parameters()シンタックス構造である。
そうでない場合(vps_independent_layer_flag[i]が0に等しい場合)、以下が当てはまる。
-
VpsNumDpbParamsが1に等しい場合、layer_output_dpb_params_idx[i]の値は0に等しいと推定される。
-ビットストリーム適合性の要件は、layer_output_dpb_params_idx[i]の値が、dpb_size_only_flag[layer_output_dpb_params_idx[i]]が0に等しくなるようなものとすることである。
layer_nonoutput_dpb_params_idx[i]は、OLS内の非出力レイヤである場合に第iのレイヤに適用するdpb_parameters()シンタックス構造の、VPS内のdpb_parameters()シンタックス構造のリストへのインデックスを指定する。存在する場合、layer_nonoutput_dpb_params_idx[i]の値は、0以上
VpsNumDpbParams-1以下の範囲にあるものとする。
same_dpb_size_output_or_nonoutput_flagが1に等しい場合、以下が当てはまる。
-vps_independent_layer_flag[i]が1に等しい場合、非出力レイヤである場合に第iのレイヤに適用するdpb_parameters()シンタックス構造は、レイヤによって参照されるSPSに存在するdpb_parameters()シンタックス構造である。
-そうでない場合(vps_independent_layer_flag[i]が0に等しい場合)、layer_nonoutput_dpb_params_idx[i]の値はlayer_output_dpb_params_idx[i]に等しいと推定される。
そうでない場合(same_dpb_size_output_or_nonoutput_flagが0に等しい場合)、
VpsNumDpbParamsが1に等しい場合、layer_output_dpb_params_idx[i]の値は0に等しいと推定される。
1に等しいvps_general_hrd_params_present_flagは、シンタックス構造general_hrd_parameters()及び他のHRDパラメータがVPS RBSPシンタックス構造に存在することを指定する。0に等しいvps_general_hrd_params_present_flagは、シンタックス構造general_hrd_parameters()及び他のHRDパラメータがVPS RBSPシンタックス構造に存在しないことを指定する。
存在しない場合、vps_general_hrd_params_present_flagの値は0に等しいと推定される。
1に等しいvps_sublayer_cpb_params_present_flagは、VPS内の第iのols_hrd_parameters()シンタックス構造が0以上hrd_max_tid[i]以下の範囲のTemporalIdを有するサブレイヤ表現のHRDパラメータを含むことを指定する。0に等しいvps_sublayer_cpb_params_present_flagは、VPS内の第iのols_hrd_parameters()シンタックス構造がhrd_max_tid[i]のみに等しいTemporalIdを有するサブレイヤ表現のHRDパラメータを含むことを指定する。vps_max_sublayers_minus1が0に等しい場合、vps_sublayer_cpb_params_present_flagの値は0に等しいと推定される。
vps_sublayer_cpb_params_present_flagが0に等しい場合、0以上hrd_max_tid[i]-1以下の範囲のTemporalIdを有するサブレイヤ表現のHRDパラメータは、hrd_max_tid[i]に等しいTemporalIdを有するサブレイヤ表現のHRDパラメータと同じであると推定される。これらは、ols_hrd_parametersシンタックス構造内の「if(general_vcl_hrd_params_present_flag)」の条件の直下のfixed_pic_rate_general_flag[i]シンタックスエレメントから始まりsublayer_hrd_parameters(i)シンタックス構造までのHRDパラメータを含む。
num_ols_hrd_params_minus1に1を加えたものは、
vps_general_hrd_params_present_flagが1に等しい場合、general_hrd_parameters()シンタックス構造に存在するols_hrd_parameters()シンタックス構造の数を指定する。num_ols_hrd_params_minus1の値は、0以上63以下の範囲にあるものとする。[[TotalNumOlssが1に等しい場合、num_ols_hrd_params_minus1の値は0に等しいと推定される。]]
hrd_max_tid[i]は、HRDパラメータが第iのols_hrd_parameters()シンタックス構造に含まれる最高のサブレイヤ表現のTemporalIdを指定する。hrd_max_tid[i]の値は、0以上vps_max_sublayers_minus1以下の範囲にあるものとする。vps_max_sublayers_minus1が0に等しい場合、hrd_max_tid[i]の値は0に等しいと推定される。vps_max_sublayers_minus1が0よりも大きく、vps_all_layers_same_num_sublayers_flagが1に等しい場合、hrd_max_tid[i]の値はvps_max_sublayers_minus1に等しいと推定される。
ols_hrd_idx[i]は、
NumLayersInOls[i]が1よりも大きい場合、第iのOLSに適用するols_hrd_parameters()シンタックス構造の
、VPS内のols_hrd_parameters()シンタックス構造のリストへのインデックスを指定する。存在する場合、ols_hrd_idx[i]の値は、0以上num_ols_hrd_params_minus1以下の範囲にあるものとする。
NumLayersInOls[i]が1よりも大きく、num_ols_hrd_params_minus1が0に等しい場合、ols_hrd_idx[i]の値は0に等しいと推定される。
0に等しいvps_extension_flagは、vps_extension_data_flagシンタックスエレメントがVPS RBSPシンタックス構造に存在しないことを指定する。1に等しいvps_extension_flagは、vps_extension_data_flagシンタックスエレメントがVPS RBSPシンタックス構造に存在することを指定する。
vps_extension_data_flagは、如何なる値を有してもよい。その存在及び値は、この仕様のこのバージョンで指定されるプロファイルへのデコーダ適合性に影響しない。この仕様のこのバージョンに準拠するデコーダは、全てのvps_extension_data_flagシンタックスエレメントを無視するものとする。
6.1.2. SPSセマンティクス
7.4.3.3 シーケンスパラメータセットRBSPのセマンティクス
SPS RBSPは、参照される前に復号プロセスに利用可能であり、0に等しいTemporalIdを有する少なくとも1つのAUに含まれるか、或いは、外部手段を通じて提供されるものとする。
CVS内のsps_seq_parameter_set_idの特定の値を有する全てのSPS NALユニットは、同じ内容を有するものとする。
sps_decoding_parameter_set_idは、0よりも大きい場合、SPSによって参照されるDPSのdps_decoding_parameter_set_idの値を指定する。sps_decoding_parameter_set_idが0に等しい場合、SPSはDPSを参照せず、SPSを参照して各CLVSを復号する際にDPSは参照されない。sps_decoding_parameter_set_idの値は、ビットストリーム内のコーディングピクチャによって参照される全てのSPSにおいて同じであるものとする。
sps_video_parameter_set_idは、0よりも大きい場合、SPSによって参照されるVPSのvps_video_parameter_set_idの値を指定する。
sps_video_parameter_set_idの値は、CVS内のコーディングピクチャによって参照され且つ0よりも大きいsps_video_parameter_set_idを有する全てのSPSにおいて同じであるものとする。
sps_video_parameter_set_idが0に等しい場合、以下が当てはまる。
-SPSはVPSを参照しない。
-SPSを参照して各CLVSを復号する場合、VPSは参照されない。
-vps_max_layers_minus1の値は0に等しいと推定される。
[[-CVSは、1つのレイヤのみを含むものとする(すなわち、CVS内の全てのVCL NALユニットは、nuh_layer_idと同じ値を有するものとする)。]]
-GeneralLayerIdx[nuh_layer_id]の値は0に等しいと推定される。
-vps_independent_layer_flag[GeneralLayerIdx[nuh_layer_id]]の値は1に等しいと推定される。
vps_independent_layer_flag[GeneralLayerIdx[nuh_layer_id]]が1に等しい場合、特定のnuh_layer_id値nuhLayerIdを有するCLVSによって参照されるSPSは、nuhLayerIdに等しいnuh_layer_idを有するものとする。
6.1.3. スライスヘッダのセマンティクス
7.4.8.1 一般的なスライスヘッダのセマンティクス
...
slice_typeは、表9によるスライスのコーディングタイプを指定する。
【表6】
nal_unit_typeがIDR_W_RADL以上CRA_NUT以下の範囲にあり、
vps_independent_layer_flag[GeneralLayerIdx[nuh_layer_id]]に等しい場合、slice_typeは2に等しいものとする。
【0039】
図1は、本明細書に開示される様々な技術が実装され得る例示的なビデオ処理システム1900を示すブロック図である。様々な実装は、システム1900のコンポーネントの一部又は全てを含んでもよい。システム1900は、ビデオコンテンツを受信するための入力1902を含んでもよい。ビデオコンテンツは、例えば、8ビット又は10ビットの多成分ピクセル値の未加工又は未圧縮のフォーマットで受信されてもよく、或いは、圧縮又は符号化されたフォーマットでもよい。入力1902は、ネットワークインタフェース、周辺バスインタフェース又はストレージインタフェースを表してもよい。ネットワークインタフェースの例は、イーサネット、パッシブ光ネットワーク(PON, passive optical network)等のような有線インタフェースと、Wi-Fi又はセルラインタフェースのような無線インタフェースを含む。
【0040】
システム1900は、本文献に記載される様々なコーディング又は符号化方法を実装し得るコーディングコンポーネント1904を含んでもよい。コーディングコンポーネント1904は、入力1902からコーディングコンポーネント1904の出力へのビデオの平均ビットレートを低減させ、ビデオのコーディング表現を生成してもよい。したがって、コーディング技術は、場合によってはビデオ圧縮又はビデオトランスコーディング技術と呼ばれる。コーディングコンポーネント1904の出力は記憶されてもよく、或いは、コンポーネント1906によって表されるように接続された通信を介して送信されてもよい。入力1902において受信されたビデオの記憶又は通信されるビットストリーム(又はコーディング)表現は、ディスプレイインタフェース1910に送信されるピクセル値又は表示可能ビデオを生成するためにコンポーネント1908によって使用されてもよい。ビットストリームからユーザ視聴可能なビデオを生成するプロセスは、場合によってはビデオ解凍と呼ばれる。さらに、特定のビデオ処理動作が「コーディング」動作又はツールと呼ばれるが、コーディングツール又は動作がエンコーダにおいて使用され、コーディングの結果の逆の対応する復号ツール又は動作がデコーダにおいて実行されることが認識される。
【0041】
周辺バスインタフェース又はディスプレイインタフェースの例は、ユニバーサルシリアルバス(USB, universal serial bus)又は高精細マルチメディアインタフェース(HDMI(登録商標), high definition multimedia interface)又はディスプレイポート(Displayport)等を含んでもよい。ストレージインタフェースの例は、SATA(serial advanced technology attachment)、PCI、IDEインタフェース等を含む。本文献に記載される技術は、携帯電話、ラップトップ、スマートフォン又はデジタルデータ処理及び/又はビデオ表示を実行可能な他のデバイスのような様々な電子デバイスに具現されてもよい。
【0042】
図2は、ビデオ処理装置3600のブロック図である。装置3600は、本明細書に記載される方法のうち1つ以上を実装するために使用されてもよい。装置3600は、スマートフォン、タブレット、コンピュータ、モノのインターネット(IoT, Internet of Things)受信機に具現されてもよい。装置3600は、1つ以上のプロセッサ3602、1つ以上のメモリ3604及びビデオ処理ハードウェア3606を含んでもよい。プロセッサ3602は、本文献に記載される1つ以上の方法を実行するように構成されてもよい。メモリ3604は、本明細書に記載される方法及び技術を実装するために使用されるデータ及びコードを記憶するために使用されてもよい。ビデオ処理ハードウェア3606は、本文献に記載されるいくつかの技術をハードウェア回路で実装するために使用されてもよい。いくつかの実装では、ハードウェア3606は、例えば、グラフィックスプロセッサのようにプロセッサ3602内に部分的に或いは完全に位置してもよい。
【0043】
図4は、この開示の技術を利用し得る例示的なビデオコーディングシステム100を示すブロック図である。
【0044】
図4に示すように、ビデオコーディングシステム100は、ソースデバイス110及びデスティネーションデバイス120を含んでもよい。ソースデバイス110は、符号化ビデオデータを生成し、ビデオ符号化デバイスと呼ばれてもよい。デスティネーションデバイス120は、ソースデバイス110によって生成された符号化ビデオデータを復号してもよく、ビデオ復号デバイスと呼ばれてもよい。
【0045】
ソースデバイス110は、ビデオソース112、ビデオエンコーダ114及び入出力(I/O, input/output)インタフェース116を含んでもよい。
【0046】
ビデオソース112は、ビデオキャプチャデバイス、ビデオコンテンツプロバイダからビデオデータを受信するためのインタフェース、及び/又はビデオデータを生成するためのコンピュータグラフィックスシステム、又はこのようなソースの組み合わせのようなソースを含んでもよい。ビデオデータは、1つ以上のピクチャを含んでもよい。ビデオエンコーダ114は、ビデオソース112からのビデオデータを符号化してビットストリームを生成する。ビットストリームは、ビデオデータのコーディング表現を形成するビットのシーケンスを含んでもよい。ビットストリームは、コーディングピクチャ及び関連データを含んでもよい。コーディングピクチャはピクチャのコーディング表現である。関連データは、シーケンスパラメータセット、ピクチャパラメータセット及び他のシンタックス構造を含んでもよい。I/Oインタフェース116は、変調器/復調器(モデム)及び/又は送信機を含んでもよい。符号化ビデオデータは、I/Oインタフェース116を介して、ネットワーク130aを通じて直接、デスティネーションデバイス120に送信されてもよい。符号化ビデオデータはまた、デスティネーションデバイス120によるアクセスのために記憶媒体/サーバ130bに記憶されてもよい。
【0047】
デスティネーションデバイス120は、I/Oインタフェース126、ビデオデコーダ124及び表示デバイス122を含んでもよい。
【0048】
I/Oインタフェース126は、受信機及び/又はモデムを含んでもよい。I/Oインタフェース126は、ソースデバイス110又は記憶媒体/サーバ130bから符号化ビデオデータを取得してもよい。ビデオデコーダ124は符号化ビデオデータを復号してもよい。表示デバイス122は、復号ビデオデータをユーザに表示してもよい。表示デバイス122は、デスティネーションデバイス120と一体化されてもよく、或いは、外部表示デバイスとインタフェースするように構成されたデスティネーションデバイス120の外部にあってもよい。
【0049】
ビデオエンコーダ114及びビデオデコーダ124は、高効率ビデオコーディング(HEVC, High Efficiency Video Coding)標準、バーサタイルビデオコーディング(VVC, Versatile Video Coding)標準及び他の現在及び/又は将来の標準のようなビデオ圧縮標準に従って動作してもよい。
【0050】
図5は、
図4に示すシステム100内のビデオエンコーダ114でもよいビデオエンコーダ200の例を示すブロック図である。
【0051】
ビデオエンコーダ200は、この開示の技術のうちのいずれか又は全てを実行するように構成されてもよい。
図5の例において、ビデオエンコーダ200は、複数の機能コンポーネントを含む。この開示に記載される技術は、ビデオエンコーダ200の様々なコンポーネントの間で共有されてもよい。いくつかの例では、プロセッサは、この開示に記載される技術のうちいずれか又は全てを実行するように構成されてもよい。
【0052】
ビデオエンコーダ200の機能コンポーネントは、分割ユニット201と、モード選択ユニット203、動き推定ユニット204、動き補償ユニット205及びイントラ予測ユニット206を含んでもよい予測ユニット202と、残差生成ユニット207と、変換ユニット208と、量子化ユニット209と、逆量子化ユニット210と、逆変換ユニット211と、再構成ユニット212と、バッファ213と、エントロピー符号化ユニット214とを含んでもよい。
【0053】
他の例では、ビデオエンコーダ200、より多くの機能コンポーネント、より少ない機能コンポーネント又は異なる機能コンポーネントを含んでもよい。一例では、予測ユニット202は、イントラブロックコピー(IBC, intra block copy)ユニットを含んでもよい。IBCユニットは、少なくとも1つの参照ピクチャが、現在ビデオブロックが位置するピクチャであるというIBCモードで予測を実行してもよい。
【0054】
さらに、動き推定ユニット204及び動き補償ユニット205のようないくつかのコンポーネントは、
図5の例では説明の目的で別々に表されているが、高度に一体化されてもよい。
【0055】
分割ユニット201は、ピクチャを1つ以上のビデオブロックに分割してもよい。ビデオエンコーダ200及びビデオデコーダ300は、様々なビデオブロックサイズをサポートしてもよい。
【0056】
モード選択ユニット203は、例えば、エラー結果に基づいて、イントラ又はインターのようなコーディングモードのうち1つを選択し、結果のイントラ又はインターコーディングブロックを、残差ブロックデータを生成するための残差生成ユニット207と、参照ピクチャとしての使用のために符号化ブロックを再構成するための再構成ユニット212とに提供してもよい。いくつかの例では、モード選択ユニット203は、予測がインター予測信号及びイントラ予測信号に基づくイントラ及びインター予測の組み合わせ(CIIP, combination of intra and inter predication)モードを選択してもよい。モード選択ユニット203はまた、インター予測の場合に、ブロックのための動きベクトルの分解能(例えば、サブピクセル又は整数ピクセルの精度)を選択してもよい。
【0057】
現在ビデオブロックに対してインター予測を実行するために、動き推定ユニット204は、バッファ213からの1つ以上の参照フレームを現在ビデオブロックと比較することによって、現在ビデオブロックについての動き情報を生成してもよい。動き補償ユニット205は、現在ビデオブロックに関連するピクチャ以外の、バッファ213からのピクチャの動き情報及び復号サンプルに基づいて、現在ビデオブロックについての予測ビデオブロックを決定してもよい。
【0058】
動き推定ユニット204及び動き補償ユニット205は、例えば、現在ビデオブロックがIスライスにあるかPスライスにあるかBスライスにあるかに依存して、現在ビデオブロックについて異なる動作を実行してもよい。
【0059】
いくつかの例では、動き推定ユニット204は、現在ビデオブロックについて一方向予測を実行してもよく、動き推定ユニット204は、現在ビデオブロックについての参照ビデオブロックを求めてリスト0又はリスト1の参照ピクチャを探索してもよい。次いで、動き推定ユニット204は、参照ビデオブロックを含むリスト0又はリスト1内の参照ピクチャを示す参照インデックスと、現在ビデオブロックと参照ビデオブロックとの間の空間変位を示す動きベクトルとを生成してもよい。動き推定ユニット204は、現在ビデオブロックの動き情報として、参照インデックスと、予測方向インジケータと、動きベクトルとを出力してもよい。動き補償ユニット205は、現在ビデオブロックの動き情報によって示される参照ビデオブロックに基づいて、現在ブロックの予測ビデオブロックを生成してもよい。
【0060】
他の例では、動き推定ユニット204は、現在ビデオブロックについて双方向予測を実行してもよく、動き推定ユニット204は、現在ビデオブロックについての参照ビデオブロックを求めてリスト0内の参照ピクチャを探索してもよく、また、現在ビデオブロックについての他の参照ビデオブロックを求めてリスト1内の参照ピクチャも探索してもよい。次いで、動き推定ユニット204は、参照ビデオブロックを含むリスト0及びリスト1内の参照ピクチャを示す参照インデックスと、参照ビデオブロックと現在ビデオブロックとの間の空間変位を示す動きベクトルとを生成してもよい。動き推定ユニット204は、現在ビデオブロックの動き情報として、参照インデックスと、現在ビデオブロックの動きベクトルとを出力してもよい。動き補償ユニット205は、現在ビデオブロックの動き情報によって示される参照ビデオブロックに基づいて、現在ブロックの予測ビデオブロックを生成してもよい。
【0061】
いくつかの例では、動き推定ユニット204は、デコーダの復号処理のために、動き情報の完全なセットを出力してもよい。
【0062】
いくつかの例では、動き推定ユニット204は、現在ビデオについての動き情報の完全なセットを出力しなくてもよい。むしろ、動き推定ユニット204は、他のビデオブロックの動き情報を参照して現在ビデオブロックの動き情報をシグナリングしてもよい。例えば、動き推定ユニット204は、現在ビデオブロックの動き情報が隣接ビデオブロックの動き情報と十分に似ていると決定してもよい。
【0063】
一例では、動き推定ユニット204は、現在ビデオブロックに関連するシンタックス構造で、現在ビデオブロックが他のビデオブロックと同じ動き情報を有することをビデオデコーダ300に示す値を指示してもよい。
【0064】
他の例では、動き推定ユニット204は、現在ビデオブロックに関連するシンタックス構造で、他のビデオブロックと動きベクトル差(MVD, motion vector difference)とを特定してもよい。動きベクトル差は、現在ビデオブロックの動きベクトルと、示されるビデオブロックの動きベクトルとの間の差を示す。ビデオデコーダ300は、現在ビデオブロックの動きベクトルを決定するために、示されたビデオブロックの動きベクトルと動きベクトル差とを使用してもよい。
【0065】
上記のように、ビデオエンコーダ200は、動きベクトルを予測的にシグナリングしてもよい。ビデオエンコーダ200によって実装され得る予測的シグナリング技術の2つの例は、アドバンスト動きベクトル予測(AMVP, advanced motion vector predication)及びマージモードシグナリングを含む。
【0066】
イントラ予測ユニット206は、現在ビデオブロックに対してイントラ予測を実行してもよい。イントラ予測ユニット206が現在ビデオブロックに対してイントラ予測を実行する場合、イントラ予測ユニット206は、同じピクチャ内の他のビデオブロックの復号サンプルに基づいて、現在ビデオブロックについての予測データを生成してもよい。現在ビデオブロックについての予測データは、予測ビデオブロックと様々なシンタックスエレメントとを含んでもよい。
【0067】
残差生成ユニット207は、現在ビデオブロックの予測ビデオブロックを現在ビデオブロックから差し引くことによって(例えば、マイナス符号によって示される)、現在ビデオブロックについての残差データを生成してもよい。現在ビデオブロックの残差データは、現在ビデオブロック内のサンプルの異なるサンプル成分に対応する残差ビデオブロックを含んでもよい。
【0068】
他の例では、例えば、スキップモードにおいて、現在ビデオブロックのために現在ビデオブロックについての残差データが存在しなくてもよく、残差生成ユニット207は減算演算を実行しなくてもよい。
【0069】
変換処理ユニット208は、現在ビデオブロックに関連する残差ビデオブロックに1つ以上の変換を適用することによって、現在ビデオブロックについての1つ以上の変換係数ビデオブロックを生成してもよい。
【0070】
変換処理ユニット208が現在ビデオブロックに関連する変換係数ビデオブロックを生成した後に、量子化ユニット209は、現在ビデオブロックに関連する1つ以上の量子化パラメータ(QP, quantization parameter)値に基づいて、現在ビデオブロックに関連する変換係数ビデオブロックを量子化してもよい。
【0071】
逆量子化ユニット210及び逆変換ユニット211は、変換係数ビデオブロックに逆量子化及び逆変換をそれぞれ適用して、変換係数ビデオブロックから残差ビデオブロックを再構成してもよい。再構成ユニット212は、再構成された残差ビデオブロックを、予測ユニット202によって生成された1つ以上の予測ビデオブロックからの対応するサンプルに追加して、バッファ213に記憶される現在ブロックに関連する再構成ビデオブロックを生成してもよい。
【0072】
再構成ユニット212がビデオブロックを再構成した後に、ビデオブロック内のビデオブロッキングアーチファクトを低減するために、ループフィルタリング動作が実行されてもよい。
【0073】
エントロピー符号化ユニット214は、ビデオエンコーダ200の他の機能コンポーネントからデータを受信してもよい。エントロピー符号化ユニット214がデータを受信した場合、エントロピー符号化ユニット214は、1つ以上のエントロピー符号化動作を実行してエントロピー符号化データを生成し、エントロピー符号化データを含むビットストリームを出力してもよい。
【0074】
図6は、
図4に示すシステム100内のビデオデコーダ114でもよいビデオデコーダ300の例を示すブロック図である。
【0075】
ビデオデコーダ300は、この開示の技術のうちいずれか又は全てを実行するように構成されてもよい。
図5の例において、ビデオデコーダ300は、複数の機能コンポーネントを含む。この開示に記載される技術は、ビデオデコーダ300の様々なコンポーネントの間で共有されてもよい。いくつかの例では、プロセッサは、この開示に記載される技術のうちいずれか又は全てを実行するように構成されてもよい。
【0076】
図6の例において、ビデオデコーダ300は、エントロピー復号ユニット301、動き補償ユニット302、イントラ予測ユニット303、逆量子化ユニット304、逆変換ユニット305、再構成ユニット306及びバッファ307を含む。ビデオデコーダ300は、いくつかの例では、ビデオエンコーダ200(
図5)に関して説明した符号化パスに対して概ね逆の復号パスを実行してもよい。
【0077】
エントロピー復号ユニット305は、符号化ビットストリームを取得してもよい。符号化ビットストリームは、エントロピーコーディングされたビデオデータ(例えば、ビデオデータの符号化ブロック)を含んでもよい。エントロピー復号ユニット301はエントロピーコーディングされたビデオデータを復号してもよく、エントロピー復号されたビデオデータから、動き補償ユニット302は、動きベクトル、動きベクトル精度、参照ピクチャリストインデックス及び他の動き情報を含む動き情報を決定してもよい。動き補償ユニット302は、例えば、AMVP及びマージモードを実行することによって、このような情報を決定してもよい。
【0078】
動き補償ユニット302は、場合によって補間フィルタに基づく補間を実行して、動き補償ブロックを生成してもよい。サブピクセル精度で使用される補間フィルタについての識別子は、シンタックスエレメントに含まれてもよい。
【0079】
動き補償ユニット302は、ビデオブロックの符号化中にビデオエンコーダ20によって使用された補間フィルタを使用して、参照ブロックのサブ整数ピクセルについての補間値を計算してもよい。動き補償ユニット302は、受信したシンタックス情報に従ってビデオエンコーダ200によって使用された補間フィルタを決定し、予測ブロックを生成するために補間フィルタを使用してもよい。
【0080】
動き補償ユニット302は、符号化ビデオシーケンスのフレーム及び/又はスライスを符号化するのに使用されるブロックのサイズ、符号化ビデオシーケンスのピクチャの各マクロブロックがどのように分割されるかを記述するパーティション情報、各パーティションがどのように符号化されるかを示すモード、各インター符号化ブロックについての1つ以上の参照フレーム(及び参照フレームリスト)、及び符号化ビデオシーケンスを復号するための他の情報を決定するために、シンタックス情報のいくつかを使用してもよい。
【0081】
イントラ予測ユニット303は、空間的に隣接するブロックから予測ブロックを形成するために、例えば、ビットストリーム内で受信したイントラ予測モードを使用してもよい。逆量子化ユニット303は、ビットストリームで提供されてエントロピー復号ユニット301によって復号された量子化ビデオブロック係数を逆量子化する、すなわち、量子化解除する。逆変換ユニット303は逆変換を適用する。
【0082】
再構成ユニット306は、残差ブロックを、動き補償ユニット202又はイントラ予測ユニット303によって生成された対応する予測ブロックと足し合わせて、復号ブロックを形成してもよい。望まれる場合、ブロックアーチファクトを除去するために復号ブロックをフィルタリングするよう、デブロッキングフィルタも適用されてもよい。次いで、復号ビデオブロックがバッファ307に記憶され、これは、後の動き補償/イントラ予測のための参照ブロックを提供し、また、表示デバイス上での提示のための復号ビデオを生成する。
【0083】
次に、いくつかの実施形態によって選ばれた解決策のリストを提供する。
【0084】
以下の解決策は、前のセクション(例えば、項目1)で議論された技術の例示的な実施形態を示す。
【0085】
1.ビデオ処理の方法(例えば、
図3における方法600)であって、
1つ以上のスケーラブルビデオレイヤを含むビデオと、ビデオのコーディング表現との間で変換を実行するステップを含み、コーディング表現はフォーマットルールに準拠し、フォーマットルールは、対応するネットワーク抽象レイヤユニットタイプが所定の範囲内にあり、且つ、対応するビデオレイヤフラグがスライスに対応するビデオレイヤがレイヤ間予測を使用しないことを示す場合、スライスのスライスタイプを示すフィールドの値がイントラスライスのタイプを示すように設定されることを指定する、方法。
【0086】
2.スライスのスライスタイプは2に設定される、解決策1に記載の方法。
【0087】
3.所定の範囲はIDR_W_RADL以上CRA_NUT以下である、解決策1に記載の方法。
【0088】
4.ビデオ処理の方法であって、
1つ以上のスケーラブルビデオレイヤを含むビデオと、ビデオのコーディング表現との間で変換を実行するステップを含み、コーディング表現はフォーマットルールに準拠し、フォーマットルールは、インデックスがコーディング表現から除外される場合、1つ以上のスケーラブルビデオレイヤのプロファイル及び層レベルを記述するシンタックス構造へのインデックスの指示が0に等しいと推定されることを指定する、方法。
【0089】
5.指示はols_ptl_idx[i]シンタックスエレメントを含み、iは整数である、解決策4に記載の方法。
【0090】
6.ビデオ処理の方法であって、
1つ以上のスケーラブルビデオレイヤを含むビデオと、ビデオのコーディング表現との間で変換を実行するステップを含み、コーディング表現は、複数の出力レイヤセット(OLS, output layer set)を含み、各OLSは、コーディング表現内の出力されるように指定されたレイヤのセットであり、コーディング表現はフォーマットルールに準拠し、フォーマットルールは、OLSが単一のレイヤを含む場合、コーディング表現のビデオパラメータセットがOLSのプロファイル、層及びレベルに関する反復情報を有することを許容されることを指定する、方法。
【0091】
7.フォーマットルールは、複数のOLSのプロファイル、層及びレベルに関する情報のセットの総数を示す数フィールドをシグナリングすることを指定し、総数は少なくとも1である、解決策6に記載の方法。
【0092】
8.変換を実行するステップは、コーディング表現を生成するためにビデオを符号化するステップを含む、解決策1乃至7のいずれかに記載の方法。
【0093】
9.変換を実行するステップは、ビデオを生成するためにコーディング表現を解析及び復号するステップを含む、解決策1乃至7のいずれかに記載の方法。
【0094】
10.解決策1乃至9の1つ以上に記載の方法を実施するように構成されたプロセッサを含むビデオ復号装置。
【0095】
11.解決策1乃至9の1つ以上に記載の方法を実施するように構成されたプロセッサを含むビデオ符号化装置。
【0096】
12.コンピュータコードを記憶したコンピュータプログラム製品であって、
コードは、プロセッサによって実行されると、プロセッサに、解決策1乃至9のいずれかに記載の方法を実施させる、コンピュータプログラム製品。
【0097】
13.本文献に記載の方法、装置又はシステム。
【0098】
図7A~
図7Iに関して、好ましくは、以下に列挙された解決策がいくつかの実施形態において実施されてもよい。
【0099】
例えば、以下の解決策は、前のセクションの項目1に従って実施されてもよい。
【0100】
1.ビデオ処理の方法(例えば、
図7Aに示す方法710)であって、
1つ以上のスケーラブルビデオレイヤを含むビデオと、ビデオのビットストリームとの間で変換を実行するステップ(712)を含み、ビデオは、1つ以上のスライスを含む1つ以上のビデオピクチャを含み、ビットストリームはフォーマットルールに準拠し、フォーマットルールは、対応するネットワーク抽象レイヤユニットタイプが所定の範囲内にあり、且つ、対応するビデオレイヤフラグがスライスに対応するビデオレイヤがレイヤ間予測を使用しないことを示す場合、スライスのスライスタイプを示すフィールドの値がイントラスライスのタイプを示すように設定されることを指定する、方法。
【0101】
2.スライスのスライスタイプは2に設定される、解決策1に記載の方法。
【0102】
3.所定の範囲はIDR_W_RADL以上CRA_NUT以下であり、IDR_W_RADLは瞬時復号リフレッシュタイプを有するスライスを示し、CRA_NUTはクリーンランダムアクセスタイプを有するスライスを示す、解決策1に記載の方法。
【0103】
4.対応するビデオレイヤフラグはvps_independent_layer_flag[GeneralLayerIdx[nuh_layer_id]]に対応し、nuh_layer_idはビデオレイヤの識別子に対応し、GenerlLayerIdx[]はビデオレイヤのインデックスであり、vps_independent_layer_flagはビデオレイヤフラグに対応する、解決策1乃至3のいずれかに記載の方法。
【0104】
5.変換を実行するステップは、ビデオをビットストリームに符号化するステップを含む、解決策1乃至4のいずれかに記載の方法。
【0105】
6.変換を実行するステップは、ビットストリームからビデオを解析及び復号するステップを含む、解決策1乃至4のいずれかに記載の方法。
【0106】
7.ビデオのビットストリームを記憶するための方法であって、
1つ以上のスケーラブルビデオレイヤを含むビデオからビットストリームを生成するステップと、ビットストリームを非一時的なコンピュータ読み取り可能記録媒体に記憶するステップとを含み、ビデオは、1つ以上のスライスを含む1つ以上のビデオピクチャを含み、ビットストリームはフォーマットルールに準拠し、フォーマットルールは、対応するネットワーク抽象レイヤユニットタイプが所定の範囲内にあり、且つ、対応するビデオレイヤフラグがスライスに対応するビデオレイヤがレイヤ間予測を使用しないことを示す場合、スライスのスライスタイプを示すフィールドの値がIスライスのタイプを示すように設定されることを指定する、方法。
【0107】
例えば、以下の解決策は、前のセクションの項目5に従って実施されてもよい。
【0108】
1.ビデオ処理の方法(例えば、
図7Bに示す方法720)であって、
複数のビデオレイヤを含むビデオと、ビデオのビットストリームとの間で変換を実行するステップ(722)を含み、ビットストリームは、複数のスケーラブルビデオレイヤのうち1つ以上をそれぞれ含む複数の出力レイヤセット(OLS, output layer set)を含み、ビットストリームはフォーマットルールに準拠し、フォーマットルールは、単一のレイヤを有するOLSについて、OLSのプロファイル、層及びレベルを示すプロファイル層レベル(PTL, profile-tier-level)シンタックス構造が、ビットストリームのビデオパラメータセットに含まれ、OLSのPTLシンタックス構造が、ビットストリームにコーディングされたシーケンスパラメータセットにも含まれることを指定する、方法。
【0109】
2.フォーマットルールは、ビデオパラメータセットにコーディングされたPTLシンタックス構造の数を示すシンタックスエレメントがビデオパラメータセットに含まれることを指定する、解決策1に記載の方法。
【0110】
3.ビデオパラメータセットにコーディングされたPTLシンタックス構造の数は、シンタックスエレメントの値に1を加えたものに等しい、解決策2に記載の方法。
【0111】
4.ビデオパラメータセットにコーディングされたPTLシンタックス構造の数は、シンタックスエレメントの値に等しい、解決策2に記載の方法。
【0112】
5.フォーマットルールは、複数のOLSのうち1つ以上が1つよりも多くのビデオレイヤを含むと決定された場合、シンタックスエレメントが符号化中にビデオパラメータセットにコーディングされること、又は復号中にビデオパラメータセットから解析されることを指定する、解決策4に記載の方法。
【0113】
6.フォーマットルールは、ビデオレイヤの数が0よりも大きく、且つ、ビデオレイヤのうち1つ以上がレイヤ間予測を使用すると決定された場合、シンタックスエレメントが符号化中にビデオパラメータセットにコーディングされること、又は復号中にビデオパラメータセットから解析されることを指定する、解決策4に記載の方法。
【0114】
7.フォーマットルールは、単一のレイヤを有するOLSについて、OLSについての復号ピクチャバッファサイズパラメータがビットストリームのビデオパラメータセットに含まれ、OLSについての復号ピクチャバッファサイズパラメータがビットストリームにコーディングされたシーケンスパラメータセットにも含まれることを更に指定する、解決策1乃至6のいずれかに記載の方法。
【0115】
8.フォーマットルールは、単一のレイヤを有するOLSについて、OLSについての復号ピクチャバッファのパラメータ情報がビットストリームのビデオパラメータセットに含まれ、OLSについての復号ピクチャバッファのパラメータ情報がビットストリームにコーディングされたシーケンスパラメータセットにも含まれることを更に指定する、解決策1乃至6のいずれかに記載の方法。
【0116】
例えば、以下の解決策は、前のセクションの項目6に従って実施されてもよい。
【0117】
9.ビデオ処理の方法(例えば、
図7Cに示す方法730)であって、
複数のビデオレイヤを含むビデオと、ビデオのビットストリームとの間で変換を実行するステップ(732)を含み、ビットストリームは、複数のビデオレイヤのうち1つ以上をそれぞれが含む複数の出力レイヤセット(OLS, output layer set)を含み、ビットストリームはフォーマットルールに準拠し、フォーマットルールは、ビットストリームのビデオパラメータセット内のプロファイル層レベル(PTL, profile-tier-level)シンタックス構造の数の発生と、ビデオパラメータセット内のバイト位置合わせシンタックスフィールドとの間の関係を指定し、各PTLシンタックス構造は、複数のOLSのうち1つ以上のプロファイル、層及びレベルを示す、方法。
【0118】
10.フォーマットルールは、少なくとも1つのPTLシンタックス構造がビデオパラメータセットに含まれ、少なくとも1つのPTLシンタックス構造が含まれるために、バイト位置合わせシンタックスフィールドの1つ以上のインスタンスがビデオパラメータセットに含まれることを指定する、解決策9に記載の方法。
【0119】
11.バイト位置合わせシンタックスフィールドは1ビットである、解決策10に記載の方法。
【0120】
12.バイト位置合わせシンタックスフィールドの1つ以上のインスタンスのそれぞれの値は、値0を有する、解決策11に記載の方法。
【0121】
例えば、以下の解決策は、前のセクションの項目2に従って実施されてもよい。
【0122】
13.ビデオ処理の方法(例えば、
図7Dに示す方法740)であって、
複数のスケーラブルビデオレイヤを含むビデオと、ビデオのビットストリームとの間で変換を実行するステップ(742)を含み、ビットストリームは、複数のスケーラブルビデオレイヤのうち1つ以上をそれぞれ含む複数の出力レイヤセット(OLS, output layer set)を含み、ビットストリームはフォーマットルールに準拠し、フォーマットルールは、符号化中に、インデックスの値がゼロである場合、複数のOLSのうち1つ以上のプロファイル、層及びレベルを記述するシンタックス構造へのインデックスを示すシンタックスエレメントがビットストリームのビデオパラメータセットから除外されること、又は、復号中に、シンタックスエレメントがビットストリームに存在しない場合、値がゼロであると推定されることを指定する、方法。
【0123】
14.インデックスは、OLSのうち少なくとも1つのプロファイル、層及びレベルを示すシンタックス構造に対するものである、解決策13に記載の方法。
【0124】
15.ビデオのビットストリームを記憶するための方法であって、
複数のビデオレイヤを含むビデオからビットストリームを生成するステップと、ビットストリームを非一時的なコンピュータ読み取り可能記録媒体に記憶するステップとを含み、ビットストリームは、複数のビデオレイヤのうち1つ以上をそれぞれ含む複数の出力レイヤセット(OLS, output layer set)を含み、ビットストリームはフォーマットルールに準拠し、フォーマットルールは、単一のレイヤを有するOLSについて、OLSのプロファイル、層及びレベルを示すプロファイル層レベル(PTL, profile-tier-level)シンタックス構造が、ビットストリームのビデオパラメータセットに含まれ、OLSのPTLシンタックス構造が、ビットストリームにコーディングされたシーケンスパラメータセットにも含まれることを指定する、方法。
【0125】
16.変換を実行するステップは、ビデオをビットストリームに符号化するステップを含み、当該方法は、ビットストリームを非一時的なコンピュータ読み取り可能記録媒体に記憶するステップを更に含む、解決策1乃至14のいずれかに記載の方法。
【0126】
例えば、以下の解決策は、前のセクションの項目3に従って実施されてもよい。
【0127】
1.ビデオ処理の方法(例えば、
図7Eに示す方法750)であって、
複数のビデオレイヤを含むビデオと、ビデオのビットストリームとの間で変換を実行するステップ(752)を含み、ビットストリームは、複数のビデオレイヤのうち1つ以上をそれぞれが含む複数の出力レイヤセット(OLS, output layer set)を含み、ビットストリームはフォーマットルールに準拠し、フォーマットルールは、iが整数であるレイヤiについて、ビットストリームが、レイヤiが複数のOLSのうち少なくとも1つに含まれるか否かを示す第1の変数を示す第1のシンタックスエレメントのセットを含むことを指定する、方法。
【0128】
2.フォーマットルールは、レイヤiが複数のOLSのいずれにも含まれないことを意味する、レイヤiについての第1の変数がゼロに等しい場合、ビットストリームが、レイヤiについての復号ピクチャバッファパラメータを示す第2のシンタックスエレメントのセットを除外することを指定する、解決策1に記載の方法。
【0129】
3.フォーマットルールは、ビットストリームが、レイヤiが複数のビデオレイヤのうち少なくとも1つの参照レイヤとして使用されるか否かを示す第2の変数を示す第3のシンタックスエレメントのセットを含むことを更に指定し、フォーマットルールは、第1の変数及び第2の変数がゼロの値を有することを許容しない、解決策1乃至2のいずれかに記載の方法。
【0130】
4.フォーマットルールは、第1の変数及び第2の変数の値の双方が、いずれかの他のレイヤの直接参照レイヤでもなく、少なくとも1つのOLSの出力レイヤでもないレイヤがないことを示す0に等しくなることを許容しない、解決策3に記載の方法。
【0131】
5.第1の変数は、LayerUsedAsOutputLayerFlagとして示される1ビットのフラグである、解決策1乃至4のいずれかに記載の方法。
【0132】
6.第1の変数は、複数のビデオレイヤのそれぞれについて、複数のOLSに含まれるレイヤの数の間の関係を示す第3の変数の値を繰り返し検査することに基づいて決定される、解決策5に記載の方法。
【0133】
7.複数のOLSに含まれるレイヤの数の間の関係を示す第3の変数は、値0、1又は2を有することが可能である、解決策6に記載の方法。
【0134】
8.変換を実行するステップは、ビデオをビットストリームに符号化するステップを含み、当該方法は、ビットストリームを非一時的なコンピュータ読み取り可能記録媒体に記憶するステップを更に含む、解決策1乃至7のいずれかに記載の方法。
【0135】
9.ビデオのビットストリームを記憶するための方法であって、
複数のビデオレイヤを含むビデオからビットストリームを生成するステップと、ビットストリームを非一時的なコンピュータ読み取り可能記録媒体に記憶するステップとを含み、ビットストリームは、複数のビデオレイヤのうち1つ以上をそれぞれが含む複数の出力レイヤセット(OLS, output layer set)を含み、ビットストリームはフォーマットルールに準拠し、フォーマットルールは、iが整数であるレイヤiについて、ビットストリームが、レイヤiが複数のOLSのうち少なくとも1つに含まれるか否かを示す第1の変数を示す第1のシンタックスエレメントのセットを含むことを指定する、方法。
【0136】
例えば、以下の解決策は、前のセクションの項目4に従って実施されてもよい。
【0137】
1.ビデオ処理の方法(例えば、
図7Fに示す方法760)であって、
ビデオとビデオのビットストリームとの間で変換を実行するステップ(762)を含み、ビットストリームは、1つ以上のビデオレイヤをそれぞれ含む1つ以上の出力レイヤセットを含み、ビットストリームはフォーマットルールに準拠し、フォーマットルールは、ビットストリームのビデオパラメータセットに含まれる復号ピクチャバッファパラメータのシンタックス構造の数が、各出力レイヤセットが単一のビデオレイヤを含む場合にはゼロに等しく、或いは、各出力レイヤセットが単一のレイヤを含むことが真でない場合には、1にシンタックスエレメントの値を加えたものに等しいことを指定する、方法。
【0138】
2.シンタックスエレメントは、vps_num_dpb_params_minus1シンタックスエレメントに対応する、解決策1に記載の方法。
【0139】
3.フォーマットルールは、1つ以上の出力レイヤセットに含まれているビデオレイヤ及び含まれていないビデオレイヤについての復号ピクチャバッファのシンタックス構造を示すために同じサイズが使用されるか否かを示す他のシンタックスエレメントがビデオパラメータセットに存在しない場合、他のシンタックスエレメントの値が1に等しいと推定されることを指定する、解決策1乃至2のいずれかに記載の方法。
【0140】
4.変換を実行するステップは、ビデオをビットストリームに符号化するステップを含み、当該方法は、ビットストリームを非一時的なコンピュータ読み取り可能記録媒体に記憶するステップを更に含む、解決策1乃至3のいずれかに記載の方法。
【0141】
5.ビデオのビットストリームを記憶するための方法であって、
ビデオからビットストリームを生成するステップと、ビットストリームを非一時的なコンピュータ読み取り可能記録媒体に記憶するステップとを含み、ビットストリームは、1つ以上のビデオレイヤをそれぞれ含む1つ以上の出力レイヤセットを含み、ビットストリームはフォーマットルールに準拠し、フォーマットルールは、ビットストリームのビデオパラメータセットに含まれる復号ピクチャバッファパラメータのシンタックス構造の数が、各出力レイヤセットが単一のビデオレイヤを含む場合にはゼロに等しく、或いは、各出力レイヤセットが単一のレイヤを含むことが真でない場合には、1にシンタックスエレメントの値を加えたものに等しいことを指定する、方法。
【0142】
例えば、以下の解決策は、前のセクションの項目7に従って実施されてもよい。
【0143】
1.ビデオ処理の方法(例えば、
図7Gに示す方法770)であって、
ビデオとビデオのビットストリームとの間で変換を実行するステップ(772)を含み、ビットストリームは、1つ以上のビデオレイヤの1つ以上のコーディングビデオピクチャを含むコーディングビデオシーケンス(CVS, coded video sequence)を含み、ビットストリームは、CVSの1つ以上のコーディングピクチャによって参照される変換パラメータを示す1つ以上のシーケンスパラメータセット(SPS, sequence parameter set)が参照ビデオパラメータセット(VPS, video parameter set)を示す同じ参照VPS識別子を有することを指定するフォーマットルールに準拠する、方法。
【0144】
2.フォーマットルールは、同じ参照VPS識別子が0よりも大きい値を有することを更に指定する、解決策1に記載の方法。
【0145】
3.フォーマットルールは、CVSが単一のビデオレイヤを含む場合にのみ、それに応じてSPS識別子の値ゼロが使用されることを更に指定する、解決策1乃至2のいずれかに記載の方法。
【0146】
4.変換を実行するステップは、ビデオをビットストリームに符号化するステップを含み、当該方法は、ビットストリームを非一時的なコンピュータ読み取り可能記録媒体に記憶するステップを更に含む、解決策1乃至3のいずれかに記載の方法。
【0147】
5.ビデオのビットストリームを記憶するための方法であって、
ビデオからビットストリームを生成するステップと、ビットストリームを非一時的なコンピュータ読み取り可能記録媒体に記憶するステップとを含み、ビデオは、1つ以上のスライスを含む1つ以上のビデオピクチャを含み、ビットストリームは、1つ以上のビデオレイヤの1つ以上のコーディングビデオピクチャを含むコーディングビデオシーケンス(CVS, coded video sequence)を含み、ビットストリームは、CVSの1つ以上のコーディングピクチャによって参照される変換パラメータを示す1つ以上のシーケンスパラメータセット(SPS, sequence parameter set)が参照ビデオパラメータセット(VPS, video parameter set)を示す同じ参照VPS識別子を有することを指定するフォーマットルールに準拠する、方法。
【0148】
例えば、以下の解決策は、前のセクションの項目8に従って実施されてもよい。
【0149】
1.ビデオ処理の方法(例えば、
図7Hに示す方法780)であって、
ビデオとビデオのビットストリームとの間で変換を実行するステップ(782)を含み、ビットストリームは、1つ以上のビデオレイヤをそれぞれ含む1つ以上の出力レイヤセット(OLS, output layer set)を含み、ビットストリームはフォーマットルールに準拠し、フォーマットルールは、変換のために使用される仮想参照デコーダ(HRD, hypothetical reference decoder)のパラメータを記述する第1のシンタックス構造がビットストリームのビデオパラメータセット(VPS, video parameter set)に含まれるか否かを示す第1のシンタックスエレメントが含まれるか否か或いはどのように含まれるかを指定する、方法。
【0150】
2.第1のシンタックス構造は、一般的なHRDパラメータのセットを含む、解決策1に記載の方法
【0151】
3.フォーマットルールは、第1のシンタックスエレメントがVPSから省略され、1つ以上のビデオレイヤのそれぞれが1つ以上のOLSのうち或るOLSに含まれるためVPSに存在しない場合、ゼロの値を有すると推定されることを指定し、1つ以上のOLSのそれぞれは、単一のビデオレイヤを含む、解決策1乃至2のいずれかに記載の方法。
【0152】
4.フォーマットルールは、1つ以上のビデオレイヤのそれぞれが1つ以上のOLSのうち或るOLSに含まれるためVPSに存在する場合、第1のシンタックスエレメントがVPSにおいてゼロの値を有することを指定し、1つ以上のOLSのそれぞれは、単一のビデオレイヤを含む、解決策1乃至2のいずれかに記載の方法。
【0153】
5.フォーマットルールは、OLS特有のHRDパラメータを記述するシンタックス構造の数を示す第2のシンタックスエレメントがVPSに含まれるか否か或いはどのように含まれるかを更に指定する、解決策1乃至4のいずれかに記載の方法。
【0154】
6.フォーマットルールは、1つ以上のOLSにおけるOLSの総数が1よりも大きいか否かにかかわらず、第1のシンタックスエレメントが値1を有する場合、第2のシンタックスエレメントがVPSに含まれることを更に指定する、解決策5に記載の方法。
【0155】
例えば、以下の解決策は、前のセクションの項目9に従って実施されてもよい。
【0156】
7.ビデオ処理の方法(例えば、
図7Iに示す方法790)であって、
ビデオとビデオのビットストリームとの間で変換を実行するステップ(792)を含み、ビットストリームは、1つ以上のビデオレイヤをそれぞれ含む1つ以上の出力レイヤセット(OLS, output layer set)を含み、ビットストリームはフォーマットルールに準拠し、フォーマットルールは、一般的な仮想参照デコーダ(HRD, hypothetical reference decoder)パラメータを記述する第1のシンタックス構造、及びOLS特有のHRDパラメータを記述する第2のシンタックス構造の数がビットストリームのビデオパラメータセット(VPS, video parameter set)に含まれるか否か或いはどのように含まれるかを指定する、方法。
【0157】
8.フォーマットルールは、第2のシンタックス構造がVPSに含まれない場合、VPSから第1のシンタックス構造を省略することを指定する、解決策7に記載の方法。
【0158】
9.フォーマットルールは、1つのビデオレイヤのみを含むOLSについてVPSにおける第1のシンタックス構造及び第2のシンタックス構造の包含を除外し、フォーマットルールは、1つのビデオレイヤのみを含むOLSの第1のシンタックス構造及び第2のシンタックス構造の包含を許容する、解決策7に記載の方法。
【0159】
10.ビデオのビットストリームを記憶するための方法であって、
ビデオからビットストリームを生成するステップと、ビットストリームを非一時的なコンピュータ読み取り可能記録媒体に記憶するステップとを含み、ビットストリームは、1つ以上のビデオレイヤをそれぞれ含む1つ以上の出力レイヤセット(OLS, output layer set)を含み、ビットストリームはフォーマットルールに準拠し、フォーマットルールは、変換のために使用される仮想参照デコーダ(HRD, hypothetical reference decoder)のパラメータを記述する第1のシンタックス構造がビットストリームのビデオパラメータセット(VPS, video parameter set)に含まれるか否かを示す第1のシンタックスエレメントが含まれるか否か或いはどのように含まれるかを指定する、方法。
【0160】
上記の解決策は以下を更に含んでもよい。
【0161】
いくつかの実施形態では、上記の解決策において、変換を実行するステップは、ビデオをビットストリームに符号化するステップを含む。
【0162】
いくつかの実施形態では、上記の解決策において、変換を実行するステップは、ビットストリームからビデオを解析及び復号するステップを含む。
【0163】
いくつかの実施形態では、上記の解決策において、変換を実行するステップは、ビデオをビットストリームに符号化するステップを含み、当該方法は、ビットストリームを非一時的なコンピュータ読み取り可能記録媒体に記憶するステップを更に含む。
【0164】
いくつかの実施形態では、ビデオ復号装置は、上記の解決策の1つ以上に記載の方法を実施するように構成されたプロセッサを含む。
【0165】
いくつかの実施形態では、ビデオ符号化装置は、上記の解決策の1つ以上に記載の方法を実施するように構成されたプロセッサを含む。
【0166】
いくつかの実施形態では、非一時的なコンピュータ読み取り可能記憶媒体は、プロセッサに、上記の解決策の1つ以上に記載の方法を実施させる命令を記憶してもよい。
【0167】
いくつかの実施形態では、非一時的なコンピュータ読み取り可能記録媒体は、プロセッサに、上記の解決策の1つ以上に記載の方法によって生成されたビデオのビットストリームを記憶する。
【0168】
いくつかの実施形態では、上記の符号化方法は装置によって実施されてもよく、装置は、当該方法を実施することによって生成されたビットストリームを、コンピュータ読み取り可能媒体に更に書き込んでもよい。
【0169】
この文献に記載される開示及び他の解決策、例、モジュール及び機能動作は、この文献に開示されている構造及びこれらの構造的な均等物又はこれらの1つ以上の組み合わせを含めて、デジタル電子回路、又はコンピュータソフトウェア、ファームウェア若しくはハードウェアで実施できる。開示及び他の実施形態は、1つ以上のコンピュータプログラム製品として実装でき、すなわち、データ処理装置による実行のための或いはデータ処理装置の動作を制御するためのコンピュータ読み取り可能媒体に符号化されたコンピュータプログラム命令の1つ以上のモジュールとして実装できる。コンピュータ読み取り可能媒体は、機械読み取り可能記憶デバイス、機械読み取り可能記憶基板、メモリデバイス、機械読み取り可能伝搬信号を生じさせる物質の組成、又はこれらのうち1つ以上の組み合わせとすることができる。「データ処理装置」という用語は、例として、プログラマブルプロセッサ、コンピュータ又は複数のプロセッサ若しくはコンピュータを含めて、データを処理するための全ての装置、デバイス及び機械を包含する。装置は、ハードウェアに加えて、問題としているコンピュータプログラムのための実行環境、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム又はこれらのうち1つ以上の組み合わせを構成するコードを作成するコードを含むことができる。伝搬信号は、適切な受信機装置への送信のために情報を符号化するように生成された人工生成の信号、例えば、機械で生成された電気、光又は電磁気信号である。
【0170】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト又はコードとしても知られる)は、コンパイル型又はインタープリタ型の言語を含み、如何なる形式のプログラミング言語で記述されることもでき、スタンドアロンプログラムとして或いはコンピューティング環境での使用に適したモジュール、コンポーネント、サブルーチン又は他のユニットとして、如何なる形式でも展開できる。コンピュータプログラムは、必ずしもファイルシステム内のファイルに対応するとは限らない。プログラムは、他のプログラム若しくはデータを保持するファイルの一部(例えば、マークアップ言語文書に記憶された1つ以上のスクリプト)に記憶でき、或いは、問題としているプログラムに専用の単一のファイルに記憶でき、或いは、複数の連携ファイル(例えば、1つ以上のモジュール、サブプログラム又はコードの部分を記憶するファイル)に記憶できる。コンピュータプログラムは、1つのコンピュータ上で実行されるように展開でき、或いは、一箇所に配置されるか或いは複数箇所に分散されて通信ネットワークによって相互接続された複数のコンピュータ上で実行されるように展開できる。
【0171】
この文献に記載されるプロセス及び論理フローは、入力データに対して演算して出力を生成することによって機能を実行するように、1つ以上のコンピュータプログラムを実行する1つ以上のプログラマブルプロセッサによって実行できる。プロセス及び論理フローはまた、専用の論理回路、例えば、FPGA(field programmable gate array)又はASIC(application specific integrated circuit)によって実行でき、また、装置は、専用の論理回路としても実装できる。
【0172】
コンピュータプログラムの実行に適したプロセッサは、例として、汎用及び専用の双方のマイクロプロセッサ、及びいずれかの種類のデジタルコンピュータのいずれか1つ以上のプロセッサを含む。一般的に、プロセッサは、読み取り専用メモリ若しくはランダムアクセスメモリ又はこれらの双方から命令及びデータを受信する。コンピュータの必須要素は、命令を実行するためのプロセッサと、命令及びデータを記憶するための1つ以上のメモリデバイスである。一般的に、コンピュータはまた、データを記憶するための1つ以上の大容量記憶デバイス、例えば、磁気ディスク、磁気光ディスク又は光ディスクを含むか、或いは、大容量記憶デバイスからデータを受信したりデータを転送したりするように動作的に結合される。しかし、コンピュータは、このようなデバイスを有する必要はない。コンピュータプログラム命令及びデータを記憶するのに適したコンピュータ読み取り可能媒体は、例として、半導体メモリデバイス、例えば、EPROM、EEPROM及びフラッシュメモリデバイスを含み、全ての形式の不揮発性メモリ、媒体及びメモリデバイスを含む。プロセッサ及びメモリは、専用の論理回路によって補われることができ、或いは、それに組み込まれることができる。
【0173】
この特許文献は多くの詳細を含むが、これらは、いずれかの対象物又は特許請求され得るものの範囲に対する限定として解釈されるべきでなく、むしろ、特定の技術の特定の実施形態に特有になり得る特徴の説明として解釈されるべきである。別々の実施形態に関してこの特許文献に記載されている特定の特徴はまた、単一の実施形態で組み合わせて実装できる。逆に、単一の実施形態に関して記載されている様々な特徴は、複数の実施形態で別々に或いはいずれかの適切なサブコンビネーションで実装できる。さらに、特徴が特定の組み合わせで作用するものとして上記に記載され、さらには当初はこのように特許請求されることがあるが、いくつかの場合、特許請求されている組み合わせからの1以上の特徴は、組み合わせから除外でき、特許請求されている組み合わせは、サブコンビネーション又はサブコンビネーションのバリエーションへと導かれてもよい。
【0174】
同様に、図面には動作が特定の順序で示されているが、これは、所望の結果を達成するために、このような動作が図示の特定の順序で或いは順番に実行されること、又は全ての図示の動作が実行されることを要求するものとして理解されるべきでない。さらに、この特許文献に記載されている実施形態における様々なシステムコンポーネントの分離は、全ての実施形態においてこのような分離を必要とするものとして理解されるべきでない。
【0175】
数個の実装及び例のみが記載されており、この特許文献に記載及び図示されているものに基づいて、他の実装、拡張及び変形が行われることができる。