(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-18
(45)【発行日】2023-12-26
(54)【発明の名称】コーディングビデオシーケンスを復号/符号化する方法、装置、コンピュータプログラム
(51)【国際特許分類】
H04N 19/31 20140101AFI20231219BHJP
H04N 19/70 20140101ALI20231219BHJP
【FI】
H04N19/31
H04N19/70
(21)【出願番号】P 2021559115
(86)(22)【出願日】2021-02-01
(86)【国際出願番号】 US2021016019
(87)【国際公開番号】W WO2021194634
(87)【国際公開日】2021-09-30
【審査請求日】2021-10-01
(32)【優先日】2020-03-27
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-11-13
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】チョイ,ビョンドゥ
(72)【発明者】
【氏名】リィウ,シャン
(72)【発明者】
【氏名】ウェンジャー,ステファン
【審査官】田部井 和彦
(56)【参考文献】
【文献】特表2017-522792(JP,A)
【文献】Benjamin Bross Jianle Chen Shan Liu Ye-Kui Wang,Versatile Video Coding (Draft 8) [online], JVET-Q JVET-Q2001-vE,ITU-T インターネット<URL:https://jvet-experts.org/doc_end_user/documents/17_Brussels/wg11/JVET-Q2001-v15.zip>,2020年03月12日,pp.94-97
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/31
H04N 19/70
(57)【特許請求の範囲】
【請求項1】
少なくとも1つのプロセッサによりコーディングビデオシーケンスを復号する方法であって、前記方法は、
前記コーディングビデオシーケンスを取得するステップと、
前記コーディングビデオシーケンスを復号するステップと、
を含み、
前記コーディングビデオシーケンスの中のビデオコーディングレイヤ(VCL)ネットワーク抽象化レイヤ(NAL)ユニットの時間的サブレイヤ識別子の値は、前記VCL NALユニットにより参照されるビデオパラメータセット(VPS)の中の、前記VPSを参照する各コーディングビデオシーケンス内のレイヤに存在可能な時間的サブレイヤの最大数を指定するvps_max_sublayers_minus1の値以下に制約され、
max_tid_il_ref_pics_plus1[i]の値は、存在しないとき、vps_max_sublayers_minus1+1に等しいと推定される、方法。
【請求項2】
max_tid_il_ref_pics_plus1[i]の値がゼロであることは、i番目のレイヤの非イントラランダムアクセスポイント(IRAP)ピクチャによりインターレイヤ予測が使用されないことを指定する、請求項1に記載の方法。
【請求項3】
max_tid_il_ref_pics_plus1[i]の値がゼロより大きいことは、i番目のレイヤのピクチャを復号するために、max_tid_il_ref_pics_plus1[i]-1より大きい時間的サブレイヤ識別子を有するピクチャが、インターレイヤ参照ピクチャ(ILRP)として使用されないことを指定する、請求項1又は2に記載の方法。
【請求項4】
サブレイヤ毎の出力レイヤセットは、独立レイヤについて導出されないよう制約される、請求項1~
3のいずれか一項に記載の方法。
【請求項5】
第1変数NumSubLayersInLayerInOLS[i][j]は、i番目のOLSの中のj番目のレイヤの中のサブレイヤの数を指定し、第2変数OutputLayerIdInOls[i][j]は、i番目のOLSの中のj番目の出力レイヤのnuh_layer_idの値を指定し、第3変数LayerUsedAsOutputLayerFlag[k]は、k番目のレイヤが少なくとも1つのOLSの中の出力レイヤとして使用されるかどうかを指定し、前記第1変数、前記第2変数、及び前記第3変数は、変数max_tid_il_ref_pics_plus1[i]の値から導出される、請求項1~
4のいずれか一項に記載の方法。
【請求項6】
max_tid_il_ref_pics_plus1及びlayerIncludedInOlsFlagは、独立レイヤについて導出されないよう制約される、請求項1~
5のいずれか一項に記載の方法。
【請求項7】
コーディングビデオシーケンスを復号する装置であって、前記装置は、
プログラムコードを格納するよう構成される少なくとも1つのメモリと、
前記プログラムコードを読み出し、実行するよう構成される少なくとも1つのプロセッサと、
を含み、
前記プログラムコードは、前記少なくとも1つのプロセッサにより実行されると、前記装置に請求項1~
6のいずれか一項に記載の方法を実行させる、装置。
【請求項8】
コーディングビデオシーケンスを復号する装置に請求項1~
6のいずれか一項に記載の方法を実行させるコンピュータプログラム。
【請求項9】
少なくとも1つのプロセッサによりビデオシーケンスを符号化する
方法であって、前記方法は、
前記ビデオシーケンスを符号化してコーディングビデオシーケンスを取得するステップを含み、
前記コーディングビデオシーケンスの中のビデオコーディングレイヤ(VCL)ネットワーク抽象化レイヤ(NAL)ユニットの時間的サブレイヤ識別子の値は、前記VCL NALユニットにより参照されるビデオパラメータセット(VPS)の中の、前記VPSを参照する各コーディングビデオシーケンス内のレイヤに存在し得る時間的サブレイヤの最大数を指定するvps_max_sublayers_minus1の値以下に制約され、
max_tid_il_ref_pics_plus1[i]の値は、存在しないとき、vps_max_sublayers_minus1+1に等しいと推定される、方法。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願]
本願は、U.S.C.§119の下で、参照により開示の全体がここに組み込まれる、米国特許商標局に、2020年3月27日に出願した米国仮出願番号第63/000,980号、及び2020年11月13日に出願した米国特許出願番号第17/097,636号、の優先権を主張する。
【0002】
[技術分野]
開示の主題は、ビデオコーディング及び復号に関し、より具体的には、複数レイヤを有するコーディングビデオストリームにおける出力レイヤ導出に関する。
【背景技術】
【0003】
動き補償と共にインターピクチャ予測を用いるビデオコーディング及び復号が数十年間、知られている。非圧縮デジタルビデオは、一連のピクチャで構成されることができ、各ピクチャは、例えば1920×1080個のルミナンスサンプル及び関連するクロミナンスサンプルの空間次元を有する。一連のピクチャは、例えば毎秒60ピクチャ又は60Hzの固定又は可変ピクチャレート(略式にフレームレートとしても知られている)を有し得る。非圧縮ビデオは、かなりのビットレート要件を有する。例えば、8ビット/サンプルの1080p60 4:2:0ビデオ(60Hzフレームレートで1920×1080ルミナンスサンプル解像度)は、1.5Gbit/sに近い帯域幅を必要とする。1時間のこのようなビデオは600Gbyteより多くの記憶空間を必要とする。
【0004】
ビデオコーディング及び復号の1つの目的は、圧縮を通じて、入力ビデオ信号の中の冗長性の削減であり得る。圧縮は、幾つかの場合には大きさで2桁以上も、前述の帯域幅又は記憶空間要件を軽減するのを助けることができる。損失又は無損失圧縮の両方、及びそれらの組み合わせが利用できる。無損失圧縮は、元の信号の正確なコピーが圧縮された元の信号から再構成可能である技術を表す。損失圧縮を用いると、再構成された信号は、元の信号と同一ではないが、元の信号と再構成された信号との間の歪みは、意図される用途のために有用な再構成された信号を生成するのに十分に小さい。ビデオの場合には、損失圧縮が広く利用される。耐えうる歪みの量は、アプリケーションに依存し、例えば、特定の消費者ストリーミングアプリケーションのユーザは、テレビジョン投稿アプリケーションのユーザよりも高い歪みに耐え得る。達成可能な圧縮比は、許容可能/耐性歪みが高いほど、高い圧縮比を生じ得ることを反映できる。
【0005】
ビデオエンコーダ及びデコーダは、例えば動き補償、変換、量子化、及びエントロピーコーディングを含む幾つかの広い分類からの技術を利用できる。このうちの幾つかが以下に紹介される。
【0006】
歴史的に、ビデオエンコーダ及びデコーダは、多くの場合にコーディングビデオシーケンス(coded video sequence (CVS))、グループオブピクチャ(Group of Pictures (GOP))、又は同様のマルチピクチャ時間フレームについて定義され一定のままである所与のピクチャサイズで動作する傾向がある。例えば、MPEG-2では、システム設計は、Iピクチャでだけでなく、従って標準的にGOPについて、シーンのアクティビティのような要因に依存して水平方向の解像度(従って、ピクチャサイズ)を変更することが知られている。CVSの中の異なる解像度の使用のための参照ピクチャの再サンプリングは、例えばITU-T Rec. H.263 Annex P により知られている。しかしながら、ここで、ピクチャサイズは変化しないので、参照ピクチャのみが再サンプリングされ、結果として(ダウンサンプリングの場合には)ピクチャキャンバスの部分のみが使用され、(アップサンプリングの場合には)シーンの部分のみがキャプチャされる可能性がある。更に、H.263 Annex Qは、上方向又は下方向に、(各次元において)2の倍数で個々のマクロブロックの再サンプリングを許容する。ここでも、ピクチャサイズは同じままである。H.263ではマクロブロックのサイズは固定され、従ってシグナリングされる必要がない。
【0007】
予測ピクチャにおけるピクチャサイズの変更は、近年のビデオコーディングにおいてより主流となっている。例えば、VP9は、参照ピクチャ再サンプリング及びピクチャ全体の解像度の変化を許容する。同様に、VVCを対象としている特定の提案(例えば、参照によりここに全体が組み込まれる、Hendry, et. al, “On adaptive resolution change (ARC) for VVC”, Joint Video Team document JVET-M0135-v1, Jan9-19, 2019を含む)は、異なる-より高い又はより低い-解像度への参照ピクチャ全体の再サンプリングを許容する。該文献では、シーケンスパラメータセットの中にコーディングされピクチャパラメータセットの中のピクチャ毎のシンタックス要素により参照されるべき異なる候補解像度が提案される。
【発明の概要】
【0008】
ビデオビットストリームないの適応型ピクチャサイズのシグナリングのための技術が開示される。
【0009】
少なくとも1つのプロセッサによりコーディングビデオシーケンスを復号する例示的な方法は、前記コーディングビデオシーケンスを取得するステップと、前記コーディングビデオシーケンスを復号するステップと、を含んでよい。前記コーディングビデオシーケンスの中のビデオコーディングレイヤ(VCL)ネットワーク抽象化レイヤ(NAL)ユニットの時間的サブレイヤ識別子の値は、前記VCL NALユニットにより参照されるビデオパラメータセット(VPS)の中の、前記VPSを参照する各コーディングビデオシーケンス内のレイヤに存在し得る時間的サブレイヤの最大数を指定するvps_max_sublayers_minus1の値以下に制約される。
【0010】
幾つかの実施形態では、max_tid_il_ref_pics_plus1[i]の値がゼロであることは、i番目のレイヤの非イントラランダムアクセスポイント(IRAP)ピクチャによりインターレイヤ予測が使用されないことを指定する。
【0011】
幾つかの実施形態では、max_tid_il_ref_pics_plus1[i]の値がゼロより大きいことは、i番目のレイヤのピクチャを復号するために、max_tid_il_ref_pics_plus1[i]-1より大きい時間的サブレイヤ識別子を有するピクチャが、インターレイヤ参照ピクチャ(ILRP)として使用されないことを指定する。
【0012】
幾つかの実施形態では、max_tid_il_ref_pics_plus1[i]の値は、存在しないとき、vps_max_sublayers_minus1+1に等しいと推定される。
【0013】
幾つかの実施形態では、max_tid_il_ref_pics_plus1[i]は、vps_max_sublayers_minus1+1より小さい又は等しくなるよう制約される。
【0014】
幾つかの実施形態では、サブレイヤ毎の出力レイヤセットは、独立レイヤについて導出されないよう制約される。
【0015】
幾つかの実施形態では、第1変数NumSubLayersInLayerInOLS[i][j]は、i番目のOLSの中のj番目のレイヤの中のサブレイヤの数を指定し、第2変数OutputLayerIdInOls[i][j]は、i番目のOLSの中のj番目の出力レイヤのnuh_layer_idの値を指定し、第3変数LayerUsedAsOutputLayerFlag[k]は、k番目のレイヤが少なくとも1つのOLSの中の出力レイヤとして使用されるかどうかを指定する。更に、前記第1変数、前記第2変数、及び前記第3変数は、変数max_tid_il_ref_pics_plus1[i]の値から導出される。
【0016】
幾つかの実施形態では、max_tid_il_ref_pics_plus1及びlayerIncludedInOlsFlagは、独立レイヤについて導出されないよう制約される。
【0017】
コーディングビデオシーケンスを復号する例示的な装置は、プログラムコードを格納するよう構成される少なくとも1つのメモリと、前記プログラムコードを読み出し、前記プログラムコードにより命令されるように動作するよう構成される少なくとも1つのプロセッサと、を含み、前記プログラムコードは、前記少なくとも1つのプロセッサに、前記コーディングビデオシーケンスを取得させるよう構成される取得コードと、前記少なくとも1つのプロセッサに、前記コーディングビデオシーケンスを復号させるよう構成される復号コードと、を含む。前記コーディングビデオシーケンスの中のビデオコーディングレイヤ(VCL)ネットワーク抽象化レイヤ(NAL)ユニットの時間的サブレイヤ識別子の値は、前記VCL NALユニットにより参照されるビデオパラメータセット(VPS)の中の、前記VPSを参照する各コーディングビデオシーケンス内のレイヤに存在し得る時間的サブレイヤの最大数を指定するvps_max_sublayers_minus1の値以下に制約される。
【0018】
例示的な非一時的コンピュータ可読媒体は、命令を格納してよく、前記命令は1つ以上の命令を含み、前記1つ以上の命令は、ビデオシーケンスを取得する装置の1つ以上のプロセッサにより実行されると、前記1つ以上のプロセッサに、前記コーディングビデオシーケンスを取得させ、前記コーディングビデオシーケンスを復号させる。前記コーディングビデオシーケンスの中のビデオコーディングレイヤ(VCL)ネットワーク抽象化レイヤ(NAL)ユニットの時間的サブレイヤ識別子の値は、前記VCL NALユニットにより参照されるビデオパラメータセット(VPS)の中の、前記VPSを参照する各コーディングビデオシーケンス内のレイヤに存在し得る時間的サブレイヤの最大数を指定するvps_max_sublayers_minus1の値以下に制約される。
【図面の簡単な説明】
【0019】
開示の主題の更なる特徴、特性、及び種々の利点は、以下の詳細な説明及び添付の図面から一層明らかになるだろう。
【0020】
【
図1】実施形態による、通信システムの簡易ブロック図の概略図である。
【0021】
【
図2】実施形態による、通信システムの簡易ブロック図の概略図である。
【0022】
【
図3】実施形態による、デコーダの簡易ブロック図の概略図である。
【0023】
【
図4】実施形態による、エンコーダの簡易ブロック図の概略図である。
【0024】
【
図5】示されるように、従来技術又は実施形態によるARCパラメータをシグナリングするオプションの概略図である。
【0025】
【
図6】実施形態によるシンタックステーブルの例である。
【0026】
【
図7】実施形態による、コンピュータシステムの概略図である。
【0027】
【
図8】適応型解像度変更によるスケーラビリティの予測康応の例である。
【0028】
【
図9】実施形態によるシンタックステーブルの例である。
【0029】
【
図10】アクセスユニット毎のPOCサイクル及びアクセスユニットカウント値のパース及び復号の簡易ブロック図の概略図である。
【0030】
【
図11】マルチレイヤサブピクチャを含むビデオビットストリームの概略図である。
【0031】
【
図12】拡張解像度を有する選択されたサブピクチャの表示の概略図である。
【0032】
【
図13】マルチレイヤサブピクチャを含むビデオビットストリームの復号及び表示処理のブロック図である。
【0033】
【
図14】サブピクチャの拡張レイヤを有する360ビデオディスプレイの概略図である。
【0034】
【
図15】サブピクチャ及び対応するレイヤ及びピクチャ予測構造のレイアウト情報の例である。
【0035】
【
図16】局所領域の空間スケーラビリティモダリティを有する、サブピクチャ及び対応するレイヤ及びピクチャ予測構造のレイアウト情報の例である。
【0036】
【
図17】サブピクチャレイアウト情報のシンタックステーブルの例である。
【0037】
【
図18】サブピクチャレイアウト情報のSEIメッセージのシンタックステーブルの例である。
【0038】
【
図19】各出力レイヤセットの出力レイヤ及び、プロファイル/ティア/レベル情報を示すシンタックステーブルの例である。
【0039】
【
図20】各出力レイヤセットの出力レイヤモードを示すシンタックステーブルの例である。
【0040】
【
図21】各出力レイヤセットの各レイヤの予め送信されたサブピクチャを示すシンタックステーブルの例である。
【0041】
【
図22】サブレイヤ毎の指示を有する出力レイヤセットを示すシンタックステーブルの例である。
【発明を実施するための形態】
【0042】
ピクチャが、異なる品質を有する複数のレイヤで構成されるビットストリームに符号化されるとき、ビットストリームは、どのレイヤがデコーダ側で出力されてよいかを指定するシンタックス要素を有してよい。出力されるべきレイヤのセットは、出力レイヤセットとして定義される。複数レイヤ及びスケーラビリティをサポートする最新のビデオコーデックでは、1つ以上の出力レイヤセットが、ビデオパラメータセットの中でシグナリングされる。出力レイヤセット及びそれらの依存関係、プロファイル/ティア/レベル及び仮想デコーダ参照モデルパラメータを指定するそれらのシンタックス要素は、パラメータセットの中で効率的にシグナリングされる必要がある。
【0043】
図1は、本開示の実施形態による通信システム(100)の簡易ブロック図を示す。システム(100)は、ネットワーク(150)を介して相互接続される少なくとも2つの端末(110~120)を含んでよい。データの一方向送信では、第1端末(110)は、ネットワーク(150)を介して他の端末(120)へ送信するために、ビデオデータをローカル位置でコーディングしてよい。第2端末(120)は、ネットワーク(150)から他の端末のコーディングビデオデータを受信し、コーディングデータを復号して、復元したビデオデータを表示してよい。単方向データ伝送は、メディアサービングアプリケーション等で共通であってよい。
【0044】
図1は、例えばビデオ会議中に生じ得る、コーディングビデオの双方向送信をサポートするために適用される第2の端末ペア(130、140)を示す。データの双方向送信では、各端末(130、140)は、ネットワーク(150)を介して他の端末へ送信するために、ローカルでキャプチャしたビデオデータをコーディングしてよい。各端末130、140は、また、他の端末により送信されたコーディングビデオデータを受信してよく、コーディングデータを復号してよく、及び復元したビデオデータをローカルディスプレイ装置で表示してよい。
【0045】
図1では、端末装置(110~140)は、サーバ、パーソナルコンピュータ、及びスマートフォンとして示されてよいが、本開示の原理はこれらに限定されない。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレイヤ、及び/又は専用ビデオ会議設備による適用がある。ネットワーク(150)は、端末(110~140)の間でコーディングビデオデータを運ぶ任意の数のネットワークを表し、例えば有線及び/又は無線通信ネットワークを含む。通信ネットワーク(150)は、回線切り替え及び/又はパケット切り替えチャネルでデータを交換してよい。代表的なネットワークは、電子通信ネットワーク、ローカルエリアネットワーク、広域ネットワーク、及び/又はインターネットを含む。本発明の議論の目的で、ネットワーク(150)のアーキテクチャ及びトポロジは、以下で特に断りの無い限り、本開示の動作にとって重要でないことがある。
【0046】
図2は、開示の主題の適用の一例として、ストリーミング環境におけるビデオエンコーダ及びビデオデコーダの配置を示す。開示の主題は、例えばビデオ会議、デジタルTV、CD、DVD、メモリスティック、等を含むデジタル媒体への圧縮ビデオの格納、他のビデオ可能アプリケーション、等に等しく適用可能である。
【0047】
ストリーミングシステムは、例えば非圧縮ビデオサンプルストリーム(202)を生成するビデオソース(201)、例えばデジタルカメラを含み得るキャプチャサブシステム(213)を含んでよい。サンプルストリーム(202)は、符号化ビデオビットストリームと比べるとき高データ容量を強調するために太線で示され、カメラ(201)に結合されるエンコーダ(203)により処理できる。エンコーダ(203)は、ハードウェア、ソフトウェア、又はそれらの組み合わせを含み、以下に詳述するように開示の主題の態様を可能にし又は実装することができる。符号化ビデオビットストリーム(204)は、サンプルストリームと比べたとき、低データ容量を強調するために細線で示され、将来の使用のためにストリーミングサーバ(205)に格納できる。1つ以上のストリーミングクライアント(206、208)は、ストリーミングサーバ(205)にアクセスして、符号化ビデオビットストリーム(204)のコピー(207、209)を読み出すことができる。クライアント(206)は、ビデオデコーダ(210)を含むことができる。ビデオデコーダ(310)は、符号化ビットストリーム(207)の入来するコピーを復号し、ディスプレイ(212)又は他のレンダリング装置(図示しない)においてレンダリング可能な出力ビデオサンプルストリーム(211)を生成する。幾つかのストリーミングシステムでは、ビデオビットストリーム(204、207、209)は、特定のビデオコーディング/圧縮規格に従い符号化できる。これらの規格の例は、ITU-T Recommendation H.265を含む。策定中のビデオコーディング規格は、略式にVVC(Versatile Video Coding)として知られている。開示の主題は、VVCの文脈で使用されてよい。
【0048】
図3は、本開示の一実施形態によるビデオデコーダ210のブロック図を示す。
【0049】
受信機(310)は、ビデオデコーダ(210)により復号されるべき1つ以上のコーディングビデオシーケンス、同じ又は別の実施形態では、一度に1つのコーディングビデオシーケンスを受信してよい。ここで、各コーディングビデオシーケンスの復号は、他のコーディングビデオシーケンスと独立している。コーディングビデオシーケンスは、符号化ビデオデータを格納する記憶装置へのハードウェア/ソフトウェアリンクであってよいチャネル(312)から受信されてよい。受信機(310)は、他のデータ、例えば、それぞれの使用エンティティ(図示しない)へと転送され得るコーディング音声データ及び/又は補助データストリームと共に、符号化ビデオデータを受信してよい。受信機(310)は、他のデータからコーディングビデオシーケンスを分離してよい。ネットワークジッタを除去するために、バッファメモリ(315)は、受信機(310)とエントロピーデコーダ/パーサ(320)(以後、「パーサ」)との間に接続されてよい。受信機(310)が、十分な帯域幅の記憶/転送装置から制御可能に、又はアイソクロナス(isosynchronous)ネットワークから、データを受信しているとき、バッファ(315)は、必要なくてよく又は小さくできる。インターネットのようなベストエフォート型パケットネットワークで使用する場合、バッファ(315)が必要であってよく、比較的大きくすることができ、有利なことに適応サイズにすることができる。
【0050】
ビデオデコーダ(210)は、エントロピーコーディングビデオシーケンスからシンボル(321)を再構成するために、パーサ(320)を含んでよい。これらのシンボルのカテゴリは、デコーダ(210)の動作を管理するために使用される情報、及び場合によっては
図2に示したようにデコーダの統合部分ではないがデコーダに接続され得るディスプレイ(212)のようなレンダリング装置を制御するための情報を含む。レンダリング装置のための制御情報は、SEI(Supplementary Enhancement Information)メッセージ又はVUI(Video Usability Information)パラメータセットフラグメント(図示しない)の形式であってよい。パーサ(320)は、受信された符号かビデオシーケンスをパース/エントロピー復号してよい。コーディングビデオシーケンスのコーディングは、ビデオコーディング技術又は規格に従うことができ、可変長コーディング、ハフマンコーディング、コンテキスト依存関係を有する又は有しない算術的コーディング、等を含む、当業者によく知られた原理に従うことができる。パーサ(320)は、コーディングビデオシーケンスから、ビデオデコーダの中のピクセルのサブグループのうちの少なくとも1つについて、該グループに対応する少なくとも1つのパラメータに基づき、サブグループパラメータのセットを抽出してよい。サブグループは、GOP(Groups of Picture)、ピクチャ、タイル、スライス、マクロブロック、符号化ユニット(Coding Units:CU)、ブロック、変換ユニット(Transform Units:TU)、予測ユニット(Prediction Units:PU)、等を含み得る。エントロピーデコーダ/パーサは、コーディングビデオシーケンスから、変換係数、量子化パラメータ値、動きベクトル、等のような情報も抽出してよい。
【0051】
パーサ(320)は、バッファ(315)から受信したビデオシーケンスに対してエントロピー復号/パース動作を実行して、シンボル(321)を生成してよい。
【0052】
シンボル(321)の再構成は、コーディングビデオピクチャ又はその部分の種類(例えば、インター及びイントラピクチャ、インター及びイントラブロック)及び他の要因に依存して、複数の異なるユニットを含み得る。どのユニットがどのように含まれるかは、パーサ(320)によりコーディングビデオシーケンスからパースされたサブグループ制御情報により制御できる。パーサ320と以下の複数のユニットとの間のこのようなサブグループ制御情報のフローは、明確さのために示されない。
【0053】
既に言及した機能ブロックを超えて、デコーダ(210)は、後述のように、多数の機能ユニットに概念的に細分化できる。商用的制約の下で動作する実際の実装では、これらのユニットの多くは、互いに密に相互作用し、少なくとも部分的に互いに統合され得る。しかしながら、開示の主題を説明する目的で、機能ユニットへの以下の概念的細分化は適切である。
【0054】
第1ユニットは、スケーラ及び/又は逆変換ユニット(351)である。スケーラ及び/又は逆変換ユニット(351)は、量子化済み変換係数、及び、どの変換が使用されるべきか、ブロックサイズ、量子化係数、量子化スケーリングマトリクス、等を含む制御情報を、パーサ(320)からのシンボル(321)として受信する。これは、アグリゲータ(355)に入力され得るサンプル値を含むブロックを出力できる。
【0055】
幾つかの例では、スケーラ及び/又は逆変換ユニット(351)の出力サンプルは、イントラコーディングブロック、つまり、前に再構成されたピクチャからの予測情報を使用しないが現在ピクチャの前に再構成された部分からの予測情報を使用可能なブロック、に属することができる。このような予測情報は、イントラピクチャ予測ユニット(352)により提供できる。幾つかの場合には、イントラピクチャ予測ユニット(352)は、再構成中のブロックと同じサイズ及び形状のブロックを、現在(部分的にさは再構成された)ピクチャ(356)からフェッチした周囲の既に再構成された情報を用いて、生成する。アグリゲータ(355)は、幾つかの場合には、サンプル毎に、イントラ予測ユニット(352)の生成した予測情報を、スケーラ/逆変換ユニット(351)により提供された出力サンプル情報に追加する。
【0056】
他の場合には、スケーラ及び/又は逆変換ユニット(351)の出力サンプルは、インターコーディングされた、場合によっては動き補償されたブロックに関連し得る。このような場合には、動き補償予測ユニット(353)は、参照ピクチャメモリ(357)にアクセスして、予測のために使用されるサンプルをフェッチできる。ブロックに関連するシンボル(321)に従いフェッチしたサンプルを動き補償した後に、これらのサンプルは、アグリゲータ(355)により、出力サンプル情報を生成するために、スケーラ/逆変換ユニットの出力に追加され得る(この場合、残差サンプル又は残差信号と呼ばれる)。動き補償予測ユニットが予測サンプルをフェッチする参照ピクチャメモリ内のアドレスは、例えばX、Y及び参照ピクチャコンポーネントを有し得るシンボル(321)の形式で、動き補償予測ユニットの利用可能な動きベクトルにより制御できる。動き補償は、サブサンプルの正確な動きベクトルが使用中であるとき参照ピクチャメモリからフェッチされたサンプル値の補間、動きベクトル予測メカニズム、等も含み得る。
【0057】
アグリゲータ(355)の出力サンプルは、ループフィルタユニット(356)において種々のループフィルタリング技術を受け得る。ビデオ圧縮技術は、コーディングビデオビットストリームに含まれ且つパーサ(320)からのシンボル(321)としてループフィルタユニット(356)に利用可能にされたパラメータにより制御されるが、コーディングピクチャ又はコーディングビデオシーケンスの(復号順序で)前の部分の復号中に取得されたメタ情報にも応答し、前に再構成されループフィルタリングされたサンプル値にも応答し得るインループフィルタ技術を含み得る。
【0058】
ループフィルタユニット(356)の出力は、レンダー装置(212)へと出力でき及び将来のインターピクチャ予測で使用するために参照ピクチャメモリ(356)に格納され得るサンプルストリームであり得る。
【0059】
特定のコーディングピクチャは、一旦完全に再構成されると、将来の予測のための参照ピクチャとして使用できる。コーディングピクチャが完全に再構成され、コーディングピクチャが(例えばパーサ(320)により)参照ピクチャとして識別されると、現在参照ピクチャ(356)は、参照ピクチャバッファ(357)の一部になることができ、後続のコーディングピクチャの再構成を開始する前に、新鮮な現在ピクチャメモリを再割り当てできる。
【0060】
ビデオデコーダ(320)は、ITU-T Recのような規格で策定され得る所定のビデオ圧縮技術に従い復号動作を実行してよい。H.265。コーディングビデオシーケンスが、ビデオ圧縮技術又は規格で、具体的にはその中のプロファイル文書で指定された、ビデオ圧縮技術又は規格のシンタックスに従うという意味で、コーディングビデオシーケンスは、使用中のビデオ圧縮技術又は規格により指定されたシンタックスに従ってよい。また、遵守のために必要なことは、コーディングビデオシーケンスの複雑さが、ビデオ圧縮技術又は規格のレベルにより定められる限界の範囲内であることであり得る。幾つかの場合には、レベルは、最大ピクチャサイズ、最大フレームレート、最大再構成サンプルレート(例えばメガサンプル/秒で測定される)、最大参照ピクチャサイズ、等を制限する。レベルにより設定される限界は、幾つかの場合には、HRD(Hypothetical Reference Decoder)仕様及びコーディングビデオシーケンスの中でシグナリングされるHDRバッファ管理のためのメタデータを通じて更に制限され得る。
【0061】
実施形態では、受信機(310)は、符号化ビデオと共に追加(冗長)データを受信してよい。追加データは、コーディングビデオシーケンスの部分として含まれてよい。追加データは、データを正しく復号するため及び/又は元のビデオデータをより正確に再構成するために、ビデオデコーダ320により使用されてよい。追加データは、例えば、時間的、空間的、又はSNR拡張レイヤ、冗長スライス、冗長ピクチャ、前方誤り訂正符号、等の形式であり得る。
【0062】
図4は、本開示の一実施形態によるビデオエンコーダ(203)の機能ブロック図であり得る。
【0063】
エンコーダ(203)は、ビデオサンプルを、エンコーダ(203)によりコーディングされるべきビデオ画像をキャプチャし得るビデオソース(201)(エンコーダの部分ではない)から受信してよい。
【0064】
ビデオソース(201)は、エンコーダ(203)によりコーディングされるべきソースビデオシーケンスを、任意の適切なビット深さ(例えば、8ビット、10ビット、12ビット、...)、任意の色空間(例えば、BT.601 Y CrCb, RGB,...)、及び任意の適切なサンプリング構造(例えば、Y CrCb 4:2:0, Y CrCb 4:4:4)のデジタルビデオサンプルストリームの形式で、提供してよい。メディア提供システムでは、ビデオソース(201)は、前に準備されたビデオを格納する記憶装置であってよい。ビデオ会議システムでは、ビデオソース(203)は、ビデオシーケンスとしてローカル画像情報をキャプチャするカメラであってよい。ビデオデータは、続けて閲覧されると動きを与える複数の個別ピクチャとして提供されてよい。ピクチャ自体は、ピクセルの空間的配列として組織化されてよい。各ピクセルは、使用中のサンプリング構造、色空間、等に依存して、1つ以上のサンプルを含み得る。当業者は、ピクセルとサンプルとの間の関係を直ちに理解できる。以下の説明はサンプルに焦点を当てる。
【0065】
実施形態によると、エンコーダ(203)は、ソースビデオシーケンスのピクチャを、コーディングビデオシーケンス(443)へと、リアルタイムに又はアプリケーションにより要求される任意の他の時間制約の下でコーディングし圧縮してよい。適切なコーディング速度の実施は、制御部(450)の1つの機能である。制御部は、後述するように他の機能ユニットを制御し、他の機能ユニットに機能的に結合される。結合は、明確さのために図示されない。制御部により設定されるパラメータは、レート制御関連パラメータ(ピクチャスキップ、量子化器、レート歪み最適化技術のラムダ値、...)、ピクチャサイズ、GOP(group of pictures)レイアウト、最大動きベクトル探索範囲、等を含み得る。当業者は、特定のシステム設計のために最適化されたビデオエンコーダ(203)に関連し得るとき、制御部450の他の機能を直ちに識別できる。
【0066】
幾つかのビデオエンコーダは、当業者が「コーディングループ」として直ちに認識する中で動作する。非常に簡略化した説明として、コーディングループは、エンコーダ(430)(以後、「ソースコーダ」)(コーディングされるべき入力ピクチャと参照ピクチャとに基づき、シンボルを生成する)及びエンコーダ(203)内に組み込まれ、シンボルを再構成して、(シンボルとコーディングビデオビットストリームとの間の任意の圧縮が開示の主題において考慮されるビデオ圧縮技術の中で無損失であるとき)(リモート)デコーダが生成し得るサンプルデータを生成する(ローカル)デコーダ(433)の符号化部分を含むことができる。再構成されたサンプルストリームは、参照ピクチャメモリ434に入力される。シンボルストリームの復号が、デコーダ位置(ローカル又はリモート)と独立にビット正確な結果をもたらすとき、参照ピクチャバッファの内容も、ローカルエンコーダとリモートエンコーダとの間でビット正確である。言い換えると、エンコーダの予測部分が、復号中に予測を用いるときデコーダが「見る」のと正確に同じサンプル値を、参照ピクチャサンプルとして「見る」。参照ピクチャ同期性のこの基本原理(及び、例えばチャネルエラーのために同期性が維持できない場合には、結果として生じるドリフト)は、当業者によく知られている。
【0067】
「ローカル」デコーダ(433)の動作は、
図3と関連して以上に詳述した「リモート」デコーダ(210)のものと同じであり得る。簡単には
図3も参照すると、しかしながら、シンボルが利用可能であり、エントロピーコーダ(445)及びパーサ(320)によるコーディングビデオシーケンスへのシンボルの符号化/復号が無損失であり得るので、チャネル(312)、受信機(310)、バッファ(315)、及びパーサ(320)を含むデコーダ(210)のエントロピー復号部分は、ローカルデコーダ(433)に完全に実装されなくてよい。
【0068】
この点で行われる考察は、デコーダ内に存在するパース/エントロピー復号を除く任意のデコーダ技術も、対応するエンコーダ内と実質的に同一の機能形式で存在する必要があるということである。この理由から、開示の主題は、デコーダ動作に焦点を当てる。エンコーダ技術の説明は、それらが包括的に説明されるデコーダ技術の逆であるので、省略できる。特定の領域においてのみ、より詳細な説明が必要であり、以下に提供される。
【0069】
動作中、幾つかの例では、ソースコーダ(430)は、動き補償された予測コーディングを実行してよい。これは、「参照フレーム」として指定されたビデオシーケンスからの1つ以上の前にコーディングされたフレームを参照して予測的に入力フレームをコーディングする。この方法では、コーディングエンジン(432)は、入力フレームのピクセルブロックと、入力フレームに対する予測基準として選択されてよい参照フレームのピクセルブロックとの間の差分をコーディングする。
【0070】
ローカルビデオデコーダ(433)は、ソースコーダ(430)により生成されたシンボルに基づき、参照フレームとして指定されてよいフレームのコーディングビデオデータを復号してよい。コーディングエンジン(432)の動作は、有利なことに、損失処理であってよい。コーディングビデオデータがビデオデコーダ(
図4に図示されない)において復号され得るとき、再構成ビデオシーケンスは、標準的に、幾つかのエラーを有するソースビデオシーケンスの複製であってよい。ローカルビデオデコーダ(433)は、参照フレームに対してビデオデコーダにより実行され得る復号処理を複製し、参照ピクチャキャッシュ(434)に格納されるべき再構成参照フレームを生じ得る。このように、エンコーダ(203)は、(伝送誤りが無ければ)遠端ビデオデコーダにより取得される再構成参照フレームと共通の内容を有する再構成参照フレームのコピーをローカルに格納してよい。
【0071】
予測器(435)は、コーディングエンジン(432)のために予測探索を実行してよい。つまり、コーディングされるべき新しいフレームについて、予測器(435)は、新しいピクチャのための適切な予測基準として機能し得る(候補参照ピクセルブロックのような)サンプルデータ又は参照ピクチャ動きベクトル、ブロック形状、等のような特定のメタデータについて、参照ピクチャメモリ(434)を検索してよい。予測器(435)は、適切な予測基準を見付けるために、サンプルブロック-ピクセルブロック毎に動作してよい。幾つかの例では、予測器(435)により取得された検索結果により決定されるように、入力ピクチャは、参照ピクチャメモリ(434)に格納された複数の参照ピクチャから引き出された予測基準を有してよい。
【0072】
制御部(450)は、例えば、ビデオデータの符号化のために使用されるパラメータ及びサブグループパラメータの設定を含む、ビデオコーダ(430)のコーディング動作を管理してよい。
【0073】
全ての前述の機能ユニットの出力は、エントロピーコーダ(445)におけるエントロピーコーディングを受けてよい。エントロピーコーダは、ハフマンコーディング、可変長コーディング、算術コーディング、等のような当業者によく知られた技術に従いシンボルを無損失圧縮することにより、種々の機能ユニットにより生成されたシンボルを、コーディングビデオシーケンスへと変換する。
【0074】
送信機(440)は、コーディングビデオデータを格納し得る記憶装置へのハードウェア/ソフトウェアリンクであってよい通信チャネル(460)を介する伝送のために準備するために、エントロピーコーダ(445)により生成されたコーディングビデオシーケンスをバッファリングしてよい。送信機(440)は、ビデオコーダ(430)からのコーディングビデオデータを、送信されるべき他のデータ、例えばコーディング音声データ及び/又は補助データストリーム(図示されないソース)とマージ(merge)してよい。
【0075】
制御部(450)は、エンコーダ(203)の動作を管理してよい。コーディング中、制御部(450)は、それぞれのピクチャに適用され得るコーディング技術に影響し得る特定のコーディングピクチャタイプを、各コーディングピクチャに割り当ててよい。例えば、ピクチャは、多くの場合、以下のピクチャタイプのうちの1つとして割り当てられてよい。
【0076】
イントラピクチャ(Iピクチャ)は、予測のソースとしてシーケンス内の任意の他のフレームを使用せずにコーディング及び復号され得るピクチャであってよい。幾つかのビデオコーデックは、例えばIDR(Independent Decoder Refresh)ピクチャを含む異なる種類のイントラピクチャを許容する。当業者は、Iピクチャの変形、及びそれらの個々の適用及び特徴を認識する。
【0077】
予測ピクチャ(Pピクチャ)は、殆どの場合、各ブロックのサンプル値を予測するために1つの動きベクトル及び参照インデックスを用いてイントラ予測又はインター予測を用いてコーディング及び復号され得るピクチャであってよい。
【0078】
双方向予測ピクチャ(Bピクチャ)は、各ブロックのサンプル値を予測するために最大2つの動きベクトル及び参照インデックスを用いてイントラ予測又はインター予測を用いてコーディング及び復号され得るピクチャであってよい。同様に、マルチ予測ピクチャは、単一のブロックの再構成のために、2つより多くの参照ピクチャ及び関連付けられたメタデータを使用できる。
【0079】
ソースピクチャは、共通に、複数のサンプルブロック(例えば、それぞれ4×4、8×8、4×8、又は16×16個のサンプルのブロック)に空間的に細分化され、ブロック毎にコーディングされてよい。ブロックは、ブロックのそれぞれのピクチャに適用されるコーディング割り当てにより決定される他の(既にコーディングされた)ブロックへの参照により予測的にコーディングされてよい。例えば、Iピクチャのブロックは、非予測的にコーディングされてよく、又はそれらは同じピクチャの既にコーディングされたブロックを参照して予測的にコーディングされてよい(空間予測又はイントラ予測)。Pピクチャのピクセルブロックは、1つの前にコーディングされた参照ピクチャを参照して、空間予測を介して又は時間予測を介して、予測的にコーディングされてよい。Bピクチャのブロックは、1つ又は2つの前にコーディングされた参照ピクチャを参照して、空間予測を介して又は時間予測を介して、非予測的にコーディングされてよい。
【0080】
ビデオコーダ(203)は、ITU-T Rec. H.265のような所定のビデオコーディング技術又は規格に従いコーディング動作を実行してよい。その動作において、ビデオコーダ(203)は、入力ビデオシーケンスの中の時間的及び空間的冗長性を利用する予測コーディング動作を含む種々の圧縮動作を実行してよい。コーディングビデオデータは、したがって、使用されているビデオコーディング技術又は規格により指定されたシンタックスに従ってよい。
【0081】
一実施形態では、送信機(440)は、符号化ビデオと共に追加データを送信してよい。ビデオコーダ(430)は、このようなデータをコーディングビデオシーケンスの部分として含んでよい。追加データは、時間/空間/SNR拡張レイヤ、冗長ピクチャ及びスライスのような他の形式の冗長データ、SEI(Supplementary Enhancement Information)メッセージ、VUI(Visual Usability Information)パラメータセットフラグメント、等を含んでよい。
【0082】
開示の主題の特定の態様を更に詳細に説明する前に、この記載の残りの部分で参照される幾つかの用語を紹介する必要がある。
【0083】
サブピクチャは、以下では、幾つかの場合には、サンプル、ブロック、マクロブロック、コーディングユニット、又は意味論的にグループ化され変更された解像度で独立にコーディングされてよい同様のエンティティの長方形構成を表してよい。1つ以上のサブピクチャは、ピクチャのためであってよい。1つ以上のコーディングサブピクチャは、コーディングピクチャを形成してよい。1つ以上のサブピクチャは、ピクチャに組み立てられてよく、1つ以上のサブピクチャは、ピクチャから抽出されてよい。特定の環境では、1つ以上のコーディングサブピクチャは、サンプルレベルに変換することなく、圧縮ドメインにおいてコーディングピクチャへと組み立てられてよく、同じ又は特定の他の場合には、1つ以上のコーディングサブピクチャは、圧縮ドメインにおいてコーディングピクチャから抽出されてよい。
【0084】
適応型解像度変更(Adaptive Resolution Change (ARC))は、以下では、例えば参照ピクチャ再サンプリングにより、コーディングビデオシーケンス内のピクチャ又はサブピクチャの解像度の変更を許容するメカニズムを表す。ARCパラメータは、以下では、適応型解像度変更を実行するために必要な制御情報を表す。これは、例えば、フィルタパラメータ、スケーリング因子、出力及び/又は参照ピクチャの解像度、種々の制御フラグ、等を含んでよい。
【0085】
上述の説明は、単一の意味的に独立したコーディングビデオピクチャをコーディング及び復号することに焦点を当てている。独立したARCパラメータによる複数のサブピクチャのコーディング/復号の意味、及びその暗示される追加の複雑さを説明する前にARCパラメータのシグナリングが説明され得る。
【0086】
図5を参照すると、ARCパラメータをシグナリングする幾つかの新規な選択肢が示される。選択肢の各々と共に記されるように、それらは、コーディング効率、複雑さ、及びアーキテクチャの観点で、特定の利点及び特定の欠点を有するビデオコーディング規格又は技術はARCパラメータをシグナリングするために、これらの選択肢、又は従来技術から分かる選択肢、のうちの1つ以上を選択してよい。選択肢は、相互に排他的でなくてよく、或いは、アプリケーションの必要、技術的に関連する規格、又はエンコーダの選択に基づき、交換されてよい。
【0087】
ARCパラメータのクラスは以下を含んでよい:
【0088】
-X及びY次元において別個の又は結合された、アップサンプル及び/又はダウンサンプル因子。
【0089】
-時間次元の追加に伴う、所与の数のピクチャについて一定速度ズームイン/アウトを示す、アップサンプル及び/又はダウンサンプル因子。
【0090】
-上述の2つのうちのいずれかは、因子を含むテーブルを指してよい1つ以上のおそらく短いシンタックス要素のコーディングを含んでよい。
【0091】
-X又はY次元における、結合された又は別個の、入力ピクチャ、出力ピクチャ、参照ピクチャ、コーディングピクチャの、サンプル、ブロック、マクロブロック、CU、又は任意の他の適切な粒度のユニット内の解像度。1つより多くの解像度がある場合(例えば、入力ピクチャについて1つ、参照ピクチャについて1つ)、特定の場合には、値の1つのセットが、値の別のセットから推定されてよい。これは、例えば、フラグの使用により制御することができる。更に詳細な例については以下を参照する。
【0092】
-「ワーピング(warping)」座標は、ここでも上述のような適切な粒度で、H.263 Annex P で使用されるものを含む。H.263 Annex Pは、このようなワーピング座標をコーディングするための1つの効率的な方法を定義するが、他の更に効率的な可能性のある方法も考案される可能性がある。例えば、Annex Pのワーピング座標の可変長リバーシブルHuffman型コーディングは、適切な長さのバイナリコーディングにより置き換えられる。ここで、バイナリコードワードの長さは、例えば、最大ピクチャサイズから導出され、場合によっては特定の係数により乗算され特定の値によりオフセットされ得、従って、最大ピクチャサイズの境界の外部での「ワーピング」を可能にする。
【0093】
-アップサンプル及び/又はダウンサンプルフィルタパラメータ。最も簡単な場合には、アップサンプリング及び/又はダウンサンプリングのための単一のフィルタのみがあってよい。しかしながら、特定の場合には、フィルタ設計において更なる柔軟性を可能にすることが有利であり、これは、フィルタパラメータのシグナリングを必要とする場合がある。このようなパラメータは、可能なフィルタ設計のリスト内のインデックスを通じて選択されてよい。フィルタは完全に指定されてよく(例えば、フィルタ係数のリストを通じて、適切なエントロピーコーディング技術を用いて)、フィルタは、アップサンプル及び/又はダウンサンプル比を通じて暗示的に選択されてよく、該アップ/ダウンサンプル比に従い上述のメカニズムのうちのいずれかに従いシグナリングされる、等である。
【0094】
以下では、コードワードを通じて示される、アップサンプル及び/又はダウンサンプル因子(X及びY次元の両方で使用されるべき同じ因子)の有限セットのコーディングを想定する。そのコードワードは、有利なことに、例えばH.264及びH.265のようなビデオコーディング仕様における特定のシンタックス要素について共通のExt-Golombコードを使用する可変長コードワードであり得る。アップサンプル及び/又はダウンサンプル因子への値の1つの適切なマッピングは、例えば表1に従うことができる。
表1
【表1】
【0095】
多くの同様のマッピングが、ビデオ圧縮技術又は規格において利用可能なアプリケーションの必要並びにアップ及びダウンスケールメカニズムの能力に従い、考案され得る。表は、より多くの値に拡張され得る。値は、Ext-Golombコード以外のエントロピーコーディングメカニズムにより、例えばバイナリコーディングを用いて表されてもよい。それは、再サンプリング因子がビデオ処理エンジン(主にエンコーダ及びデコーダ)自体の外部で、例えばMANEにより対象とされるとき、特定の利点を有してよい。留意すべきことに、解像度の変化が要求されない(おそらく)最も一般的な状況では、Ext-Golombコードは、短く、上述の表の中では、単一のビットのみになるよう選択できる。それは、最も一般的な場合にバイナリコードを使用することに勝るコーディング効率の利点を有し得る。
【0096】
表中のエントリの数は、それらの意味と共に、完全に又は部分的に設定可能であってよい。例えば、表の基本的概要は、シーケンス又はデコーダパラメータセットのような「高(high)」パラメータセットの中で伝達されてよい。代替として又は実施形態では、1つ以上のこのような表が、ビデオコーディング技術又は規格の中で定義されてよく、例えばデコーダ又はシーケンスパラメータセットを通じて選択されてよい。
【0097】
以下では、上述のようにコーディングされたアップサンプリング及び/又はダウンサンプリング因子(ARC情報)がビデオコーディング技術又は規格シンタックスにどのように含まれるかを説明する。同様の検討は、1つ又は幾つかのコードワード制御アップサンプリング/ダウンサンプリングフィルタに適用され得る。フィルタ又は他のデータ構造のために比較的に大容量のデータが必要とされるときの議論については以下を参照する。
【0098】
H.263 Annex Pは、ARC情報(502)を4個のワーピング座標の形式で、ピクチャヘッダ(501)に、具体的にはH.263 PLUSPTYPE(503)ヘッダ拡張に含める。これは、(a)利用可能なピクチャヘッダがあるとき、及び(b)ARC情報の頻繁な変更が期待されるとき、賢明な設計選択であり得る。しかしながら、H.263型のシグナリングを使用するときのオーバヘッドは非常に大きくなることがあり、ピクチャヘッダが過渡的特性であり得るので、スケーリング係数がピクチャ境界の間に属しないことがある。
【0099】
先に引用されたJVCET-M135-v1は、ピクチャパラメータセット(504)内に位置するARC参照情報(505)(インデックス)、シーケンスパラメータセット(507)内に位置する目標解像度を含むインデックステーブル(506)、を含む。シーケンスパラメータセット(507)内のテーブル(506)内の可能な解像度の配置は、著者により作成された言葉によると、能力交換中に相互運用交渉点としてSPSを用いて正当性を示すことができる。解像度は、適切なピクチャパラメータセット(504)を参照することにより、ピクチャ毎に、テーブル(506)内の値により設定された限度の範囲内で、変化できる。
【0100】
更に
図5を参照すると、ビデオビットストリームの中でARC情報を運ぶために、以下の追加の選択肢が存在し得る。これらの選択肢の各々は、上述のように、既存技術に勝る特定の利点を有する。選択肢は、同じコーディング技術又は規格の中に同時に存在してよい。
【0101】
実施形態では、再サンプリング(ズーム)因子のようなARC情報(509)は、スライスヘッダ、GOBヘッダ、タイルヘッダ、又はタイルグループヘッダ(以後、タイルグループヘッダ)の中に存在してよい。これは、例えば上述のように単一の可変長ue(v)又は数ビットの固定長コードワードのように、ARC情報が小さい場合に十分である。ARC情報をタイルグループヘッダ内に直接有することは、ARC情報が、ピクチャ全体ではなく例えばタイルグループにより表されるサブピクチャに適用可能であるという追加の利点を有する。以下も参照する。更に、ビデオ圧縮技術又は規格がピクチャ全体の適応型解像度変更を想定する場合でも(例えば、適応型解像度変更に基づくタイルグループとは対照的に)、ARC情報をタイルグループヘッダに入れることは、H.263形式のピクチャヘッダに入れることに対して、誤り回復の観点から特定の利点を有する。
【0102】
同じ又は別の実施形態では、ARC情報(512)自体は、例えばピクチャパラメータセット、ヘッダパラメータセット、タイルパラメータセット、適応パラメータセット、等(示された適応パラメータセット)のような適切なパラメータセット(511)内に存在してよい。そのパラメータセットの半は、有利なことに、ピクチャ、例えばタイルグループより大きくない。ARC情報の使用は、関連パラメータセットの活性化を通じて暗に示される。例えば、ビデオコーディング技術又は規格が、ピクチャに基づくARCを想定するとき、ピクチャパラメータセット又は均等物が適切であってよい。
【0103】
同じ又は別の実施形態では、ARC参照情報(513)は、タイルグループヘッダ(514)又は同様のデータ構造内に存在してよい。該参照情報(513)は、単一のピクチャを超える範囲を有するパラメータセット(516)、例えばシーケンスパラメータセット、又はデコーダパラメータセット、の中で利用可能なARC情報のサブセット(515)を表し得る。
【0104】
JVET-M0135-v1で使用されるように、タイルグループヘッダからのPPS、PPS、SPSの間接的に示唆された活性化の追加のレベルは、ピクチャパラメータセットのように、ちょうどシーケンスパラメータセットのように、能力交渉宣言のために使用できる(RFC3984のような特定の規格では有する)ので、不要と思われる。しかしながら、ARC情報が、例えばタイルグループによって表現されるサブピクチャにも適用可能でなければならない場合、適応パラメータセットまたはヘッダパラメータセットのようなタイルグループに限定された活性化範囲を有するパラメータセットは、適切な選択であり得る。また、ARC情報が無視できるより大きなサイズであり、例えば多数のフィルタ係数のようなフィルタ制御情報を含む場合、コーディング効率の観点から、ヘッダ(508)を直接使用するより、パラメータが適切な選択であり得る。これらの設定が、同じパラメータセットを参照することにより、将来のピクチャ又はサブピクチャにより再利用できるからである。
【0105】
シーケンスパラメータセット又は複数のピクチャに渡る範囲を有する別の上位パラメータセットを使用するとき、特定の考察が当てはまる:
【0106】
1.ARC情報テーブル(516)を格納するパラメータセットは、幾つかの場合には、シーケンスパラメータセットであり得るが、他の場合には、有利なことにデコーダパラメータセットである。デコーダパラメータセットは、複数のCVS、つまりコーディングビデオストリームの活性化範囲、つまり、セッション開始からセッション終了までの全てのコーディングビデオビット、を有することができる。このような範囲は、可能なARC因子が場合によってはハードウェアで実装されるデコーダの特徴であり、ハードウェア特徴はCVSであり、1秒以下の長さ)によって変化しない傾向があるので、より適切であり得る(少なくとも幾つかの娯楽システムでは、グループオブピクチャ(Group of Pictures)。つまり、テーブルをシーケンスパラメータセットに入れることは、ここに、特に以下の2と関連して記載される配置の選択肢に明示的に含まれる。
【0107】
2.ARC情報(513)は、JVCET-M0135-v1におけるようなピクチャパラメータセットにではなく、有利なことに、ピクチャ/スライス/タイル/GOB/タイルグループヘッダ(以下ではタイルグループヘッダ)(514)に直接配置されてよい。理由は以下の通りである:エンコーダが、例えばARC参照情報のような、ピクチャパラメータセット内の単一の値を変更したいとき、エンコーダは新しいPPSを生成し、その新しいPPSを参照しなければならない。ARC参照情報だけが変化し、例えばPPS内の量子化マトリクス情報のような他の情報がそのままであると仮定する。このような情報は、相当なサイズであり、新しいPPSを完成させるために再送信される必要がある場合がある。ARC参照情報は、テーブル(513)の中のインデックスのように、単一のコードワードであってよく、変化する唯一の値であり得るので、例えば量子化マトリクス情報の全部を再送信することは面倒であり無駄である。従って、コーディング効率の観点から、JVET-M0135-v1とは反対に、PPSを通じる遠回しなことを回避することが、非常に適切であり得る。同様に、ARC参照情報をPPSに入れることは、ピクチャパラメータセット活性化の範囲がピクチャであるので、ARC参照情報(513)により参照されるARC情報が、サブピクチャにではなく必ずピクチャ全体に適用されるという追加の欠点を有する。
【0108】
同じ又は別の実施形態では、
図6に概要が示されるように、ARCパラメータのシグナリングが以下に詳細に説明される。
図6は、少なくとも1993年以来、ビデオコーディング規格で使用されるような表現でシンタックス図を示す。このようなシンタックス図の表記は、C形式のプログラミングにほぼ従う。太字体の行は、ビットストリーム内に現れるシンタックス要素を示す。太字ではない行は、制御フロー又は変数の設定を示すことがある。
【0109】
(場合によっては長方形の)ピクチャ部分に適用可能なヘッダの例示的なシンタックス構造としてのタイルグループヘッダ(601)は、条件付きで、可変長のExt-Golombコーディングされたシンタックス要素dec_pic_size_idx(602)(太字で示される)を含み得る。タイルグループヘッダ内のこのシンタックス要素の存在は、適応型解像度(603)、ここでは太字で示されないフラグの値の使用において制御できる。これは、フラグがビットストリーム内に、シンタックスダイアグラム内で生じるポイントで、存在することを意味する。このピクチャ又は部分について適応型解像度が使用されるか否かは、ビットストリーム内又は外の高レベルシンタックス構造の中でシグナリングできる。示される例では、それは、以下に概説するシーケンスパラメータセットの中でシグナリングされる。
【0110】
更に
図6を参照すると、シーケンスパラメータセット(610)の抜粋も示される。示される最初のシンタックス要素は、adaptive_pic_resolution_change_flag(611)である。真のとき、そのフラグは、適応型解像度の使用を示すことができ、それは特定の制御情報を必要とし得る。例では、このような制御情報は、パラメータセット(612)の中のif()文に基づくフラグの値及びタイルグループヘッダ(601)に基づき、条件付きで存在する。
【0111】
適応型解像度が使用されるとき、本例では、サンプルのユニットの中に出力解像度がコーディングされる(613)。参照符号613は、output_pic_width_in_luma_samples及びoutput_pic_height_in_luma_samplesの両方を表し、これらは出力ピクチャの解像度を一緒に定義し得る。その他の場合、ビデオコーディング技術又は規格では、どの値にも特定の制限が定義できる。例えば、レベル定義は、合計の出力サンプルの数を制限してよく、これは、それら2つのシンタックス要素の値の積であり得る。また、特定のビデオコーディング技術又は規格、又は例えばシステム規格のような外部技術又は規格は、番号付けの範囲(例えば、一方又は両方の次元が2のべき乗の数値により除算可能でなければならい)、又はアスペクト比(例えば、幅及び高さが4:3又は16:9のような関係になければならない)を制限してよい。このような制限は、ハードウェア実装を実現するため又は他の理由で導入されてよく、従来良く知られている。
【0112】
特定のアプリケーションでは、エンコーダは、デコーダに、サイズが出力ピクチャサイズであることを暗示的に想定させるのではなく、特定の参照ピクチャサイズを使用するよう指示することが推奨され得る。本例では、シンタックス要素reference_pic_size_present_flag(614)は、参照ピクチャ次元(615)(ここでも参照符号は幅及び高さの両方を表す)の条件付きの存在を制御する。
【0113】
最終的に、幅及び高さを有する可能な復号ピクチャの表が示される。このような表は、例えば、テーブル指示(num_dec_pic_size_in_luma_samples_minus1)(616)により表現できる。「minus1」は、シンタックス要素の値の解釈を表し得る。例えば、コーディングされた値が0(ゼロ)である場合、1つのテーブルエントリが存在する。値が5である場合、6個のテーブルエントリが存在する。テーブル内の各「行」について、復号ピクチャの幅及び高さがシンタックス(617)に含まれる。
【0114】
存在するテーブルエントリ(617)は、タイルグループヘッダ内のシンタックス要素dec_pic_size_idx(602)を用いてインデックス付けできる。それにより、タイルグループ毎に異なる復号サイズ、事実上のズーム倍率を可能にする。
【0115】
特定のビデオコーディング技術又は規格、例えばVP9は、空間的スケーラビリティを有効にするために、時間スケーラビリティと関連して(開示の主題と全く異なる方法でシグナリングされる)特定の形式の参照ピクチャ再サンプリングを実施することにより、空間的スケーラビリティをサポートする。特に、特定の参照ピクチャは、空間拡張層の基礎を形成するために、ARC型の技術を用いて、より高い解像度へとアップサンプリングされてよい。これらのアップサンプリングされたピクチャは、詳細を追加するために、高解像度における通常の予測メカニズムを使用して、精緻化され得る。
【0116】
開示の主題は、このような環境で使用できる。特定の場合には、同じ又は別の実施形態で、NALユニットヘッダ内の値、例えばTemporal IDフィールドが、時間だけでなく空間層も示すために使用できる。そうすることで、特定のシステム設計に特定の利点がもたらされる可能性がある。例えば、NALユニットヘッダTemporal ID値に基づき時間層選択フォワーディングのために生成され最適化された既存の選択フォワーディングユニット(Selected Forwarding Units (SFU))は、拡張可能な環境で、変更無しに使用できる。それを有効にするために、コーディングピクチャサイズと時間層との間のマッピングがNALユニットヘッダ内のTemporal IDフィールドにより示されるという要件が存在し得る。
【0117】
幾つかのビデオコーディング技術では、アクセスユニット(Access Unit (AU))は、コーディングピクチャ、スライス、タイル、NALユニット、等を表すことができ、これらはキャプチャされ、所与の時点でそれぞれのピクチャ/スライス/タイル/NALユニットビットストリームへと構成される。時点は、構成時間であり得る。
【0118】
HEVC、及び特定の他のビデオコーディング技術では、ピクチャオーダカウント(picture order count (POC))値は、複合ピクチャバッファ(decoded picture buffer (DPB))に格納された複数の参照ピクチャの中の選択された参照ピクチャを示すために使用できる。アクセスユニット(AU)が1つ以上のピクチャ、スライス、又はタイルを含むとき、同じAUに属する各ピクチャ、スライス、又はタイルは、同じPOC値を運んでよく、その値から、それらが同じ構成時間のコンテンツから生成されたことが導出できる。言い換えると、2つのピクチャ/スライス/タイルが同じ所与のPOC値を運ぶシナリオでは、それは、同じAUに属し同じ構成時間を有する2つのピクチャ/スライス/タイルを示すことができる。反対に、2つのピクチャ/タイル/スライスが異なるPOC値を有することは、それらのピクチャ/スライス/タイルがことなるAUに属し異なる構成時間を有することを示すことができる。
【0119】
開示の主題の実施形態では、前述の厳格な関係は緩和でき、アクセスユニットは、異なるPOC値を有するピクチャ、スライス、又はタイルを含むことができる。AU内で異なるPOC値を許容することにより、同一の提示時間を有する場合によっては独立に復号可能なピクチャ/スライス/タイルを識別するためにPOC値を使用することが可能になる。これは、一方で、以下の更に詳述されるように、参照ピクチャ選択シグナリング(例えば、参照ピクチャセットシグナリング、又は参照ピクチャリストシグナリング)の変更を伴わずに、複数のスケーラブルなレイヤのサポートを可能にできる。
【0120】
しかしながら、POC値だけから、異なるPOC値を有するピクチャ/スライス/タイルに対して、ピクチャ/スライス/タイルが属するAUを識別できることが依然として望ましい。これは、後述するように達成できる。
【0121】
同じ又は他の実施形態では、アクセスユニットカウント(access unit count (AUC))は、NALユニットヘッダ、スライスヘッダ、タイルグループヘッダ、SEIメッセージ、パラメータセット、又はAUデリミタのような上位シンタックス構造の中でシグナリングされてよい。AUCの値は、どのNALユニット、ピクチャ、スライス、又はタイルが所与のAUに属するかを識別するために使用されてよい。AUCの値は、異なる構成時点に対応してよい。AUC値は、POCの値の倍数と等しくてよい。POC値を整数値により除算することにより、AUC値が計算されてよい。特定の場合には、除算演算は、デコーダの実装に特定の負荷をかけ得る。そのような場合には、AUC値の番号付け空間における小さな制約が、除算演算をシフト演算により置き換えることを可能にする。例えば、AUC値は、POC値範囲の最上位ビット(Most Significant Bit (MSB))値に等しくてよい。
【0122】
同じ実施形態では、AU毎のPOCサイクルの値(poc_cycle_au)は、NALユニットヘッダ、スライスヘッダ、タイルグループヘッダ、SEIメッセージ、パラメータセット、又はAUデリミタのような上位シンタックス構造の中でシグナリングされてよい。poc_cycle_auは、同じAUにどれだけ多くの異なる連続するPOC値が関連付けられ得るかを示してよい。例えば、poc_cycle_auの値が4に等しい場合、両端を含む0~3に等しいPOC値を有するピクチャ、スライス、又はタイルは、0に等しいAUC値を有するAUに関連付けられ、両端を含む4~7に等しいPOC値を有するピクチャ、スライス、又はタイルは、1に等しいAUC値を有するAUに関連付けられる。従って、AUCの値は、poc_cycle_auの値によりPOC値を除算することにより、推定されてよい。
【0123】
同じ又は別の実施形態では、poc_cyle_auの値は、例えばビデオパラメータセット(video parameter set (VPS))内に位置する、コーディングビデオシーケンス内の空間又はSNRレイヤの数を識別する情報から導出されてよい。このような可能な関係は、以下に簡単に説明される。上述の様な導出はVPS内の少数のビットを節約することができ、従ってコーディング効率を向上し得るが、ピクチャのようなビットストリームの所与の小さな部分に対してpoc_cycle_auを最小化できるように、poc_cycle_auを、ビデオパラメータセットより階層的に下にある適切な上位シンタックス構造内に明示的にコーディングすることは有利である。この最適化は、POC値(及び/又はPOCを間接的に参照するシンタックス要素の値)が下位のシンタックス構造にコーディングされ得るので、上述の導出処理を通じて節約できるよりも多くのビットを節約できる。
【0124】
同じ又は別の実施形態では、
図9は、コーディングビデオシーケンスの中の全部のピクチャ/スライスについて使用されるpoc_cycle_auを示すVPS(又はSPS)の中のvps_poc_cycle_auのシンタックス要素、及びスライスヘッダの中の現在スライスのpoc_cycle_auを示すslice_poc_cycle_auのシンタックス要素をシグナリングするためのシンタックステーブルの例を示す。POC値がAU毎に一様に増大する場合、VPS内のvps_contant_poc_cycle_per_auは1に設定され、vps_poc_cycle_auはVPSの中でシグナリングされる。この場合には、slice_poc_cycle_auは明示的にシグナリングされず、各AUのAUCの値は、POCの値をvps_poc_cycle_auにより除算することにより計算される。POC値がAU毎に一様に増大しない場合、VPS内のvps_contant_poc_cycle_per_auは0に設定される。この場合、vps_access_unit_cntはシグナリングされないが、slice_access_unit_cntは、スライス又はピクチャ毎にスライスヘッダ内でシグナリングされる。各スライス又はピクチャは、slice_access_unit_cnt の異なる値を有してよい。各AUのAUCの値は、POCの値をslice_poc_cycle_auにより除算することにより計算される。
図10は、関連するワークフローを示すブロック図を示す。
【0125】
同じ又は別の実施形態では、ピクチャ、スライス、又はタイルのPOCの値が異なり得る場合でも、同じAUC値を有するAUに対応するピクチャ、スライス、又はタイルは、同じ復号又は出力時点に関連付けられてよい。従って、同じAU内のピクチャ、スライス、又はタイルに渡るインターパーシング及び/又は復号依存関係を有しないで、同じAUに関連付けられたピクチャ、スライス、又はタイルの全部又は一部は、並行して復号されてよく、同じ時点で出力されてよい。
【0126】
同じ又は別の実施形態では、ピクチャ、スライス、又はタイルのPOCの値が異なってよい場合でも、同じAUC値を有するAUに対応するピクチャ、スライス、又はタイルは、同じ構成/表示時点に関連付けられてよい。構成時点がコンテナフォーマットに含まれるとき、ピクチャが異なるAUに対応しても、ピクチャが同じ構成時点を有するならば、ピクチャは同じ時点で表示できる。
【0127】
同じ又は他の実施形態では、各ピクチャ、スライス、又はタイルは、同じAU内で同じ一時的識別子(temporal_id)を有してよい。ある時点に対応するピクチャ、スライス、又はタイルの全部又は一部は、同じ時間的サブレイヤに関連付けられてよい。同じ又は他の実施形態では、各ピクチャ、スライス、又はタイルは、同じAU内で異なる空間レイヤ識別子(layer_id)を有してよい。ある時点に対応するピクチャ、スライス、又はタイルの全部又は一部は、同じ又は異なる空間レイヤに関連付けられてよい。
【0128】
図8は、適応型解像度変更によるtemporal_id、layer_id、POC、及びAUCの組合せを有するビデオシーケンス構造の例を示す。本例では、AUC=0を有する第1AUの中のピクチャ、スライス、又はタイルは、temporal_id=0及びlayer_id=0又は1を有してよく、一方で、AUC=1を有する第2AUの中のピクチャ、スライス、又はタイルは、temporal_id=1及びlayer_id=0又は1をそれぞれ有してよい。POCの値は、temporal_id及びlayer_id.の値と無関係に、ピクチャ当たり1だけ増大する。本例では、poc_cycle_auの値は、2に等しくなる。望ましくは、poc_cycle_auの値は、(空間スケーラビリティ)レイヤの数に等しく設定されてよい。本例では、従って、POCの値は2だけ増大され、AUCの値は1だけ増大される。
【0129】
上述の実施形態では、参照ピクチャ指示及びインターピクチャ又はインターレイヤ予測構造の全部又は一部は、HEVCにおける既存の参照ピクチャセット(reference picture set (RPS))シグナリング又は参照ピクチャリスト(reference picture list (RPL))を用いてサポートされてよい。RPS又はRPLでは、選択された参照ピクチャが、POCの値又は現在ピクチャと選択された参照ピクチャとの間のPOCのデルタ値をシグナリングすることにより、示される。開示の主題では、RPS及びRPLは、シグナリングを変更せずに、インターピクチャ又はインターレイヤ予測構造を示すために使用できるが、以下の制約を伴う。参照ピクチャのtemporal_idの値が現在ピクチャのtemporal_idの値より大きい場合、現在ピクチャは、動き補償又は他の予測のために参照ピクチャを使用しなくてよい。参照ピクチャのlayer_idの値が現在ピクチャのlayer_idの値より大きい場合、現在ピクチャは、動き補償又は他の予測のために参照ピクチャを使用しなくてよい。
【0130】
同じ又は他の実施形態では、時間的動きベクトル予測のためのPOC差に基づく動きベクトルスケーリングは、アクセスユニット内の複数のピクチャに渡り無効にされてよい。従って、各ピクチャはアクセスユニット内で異なるPOC値を有してよいが、動きベクトルは、アクセスユニット内の時間的動きベクトル予測のためにスケーリングされ使用されない。これは、同じAU内の異なるPOCを有する参照ピクチャは、同じ時点を有する参照ピクチャと考えられるからである。従って、実施形態では、参照ピクチャが現在ピクチャに関連付けられたAUに属するとき、動きベクトルスケーリング関数は1を返してよい。
【0131】
同じ及び他の実施形態では、時間的動きベクトル予測のためのPOC差に基づく動きベクトルスケーリングは、任意的に、参照ピクチャの空間解像度が現在ピクチャの空間解像度と異なるとき、複数のピクチャに渡り無効にされてよい。動きベクトルスケーリングが許可されるとき、動きベクトルは、POC差、及び現在ピクチャと参照ピクチャとの亜大の空間解像度比に基づきスケーリングされる。
【0132】
同じ又は別の実施形態では、特にpoc_cycle_auが一様でない値を有するとき(vps_contant_poc_cycle_per_au==0のとき)、動きベクトルは、時間的動きベクトル予測のために、POC差の代わりに、AUC差に基づきスケーリングされてよい。その他の場合(vps_contant_poc_cycle_per_au==1のとき)、AUC差に基づく動きベクトルスケーリングは、POC差に基づく動きベクトルスケーリングと同じであってよい。
【0133】
同じ又は別の実施形態では、動きベクトルがAUC差に基づきスケーリングされるとき、現在ピクチャと同じAU内の(同じAUC値を有する)参照動きベクトルは、動きベクトル予測のためにAUC差に基づきスケーリングされ使用されず、現在ピクチャと参照ピクチャとの間の空間解像度比に基づくスケーリングを伴わないか又は伴う。
【0134】
同じ及び他の実施形態では、AUC値は、AUの境界を識別するために使用され、AU粒度の入力及び出力タイミングを必要とする仮説参照デコーダ(hypothetical reference decoder (HRD))動作のために使用される。多くの場合に、AU内で最上位レイヤを有する復号ピクチャが、表示のために出力されてよい。AUC値及びlayer_id値は、出力ピクチャを識別するために使用できる。
【0135】
実施形態では、ピクチャは1つ以上のサブピクチャで構成されてよい。各サブピクチャは、ピクチャの局所領域又は全体領域をカバーしてよい。サブピクチャによりサポートされる領域は、別のサブピクチャによりサポートされる領域と重なり合ってよく又はそうでなくてよい。1つ以上のサブピクチャにより構成される領域は、ピクチャの全体領域をカバーしてよく又はそうでなくてよい。ピクチャがサブピクチャで構成される場合、サブピクチャによりサポートされる領域は、ピクチャによりサポートされる領域と同一である。
【0136】
同じ実施形態では、サブピクチャは、コーディングピクチャのために使用されたコーディング方法と同様のコーディング方法によりコーディングされてよい。サブピクチャは、独立にコーディングされてよく、又は別のサブピクチャ又はコーディングピクチャに依存してコーディングされてよい。サブピクチャは、別のサブピクチャ又はコーディングピクチャからのパーシング依存関係を有してよく又は有しなくてよい。
【0137】
同じ実施形態では、コーディングサブピクチャは、1つ以上のレイヤに含まれてよい。レイヤ内のコーディングサブピクチャは、異なる空間解像度を有してよい。元のサブピクチャは、空間的に再サンプリング(アップサンプリング又はダウンサンプリング)され、異なる空間解像度パラメータによりコーディングされ、レイヤに対応するビットストリームに含まれてよい。
【0138】
同じ又は別の実施形態では、(W,H)を有するサブピクチャは、コーディングされ、レイヤ0に対応するコーディングビットストリームに含まれてよい。ここで、Wはサブピクチャの幅を示し、Hはサブピクチャの高さをそれぞれ示す。一方で、元の空間解像度を有し、(W*Sw,k,H*Sh,k)を有するサブピクチャからアップサンプリング(又はダウンサンプリング)されたサブピクチャは、コーディングされ、レイヤkに対応するコーディングビットストリームに含まれてよい。ここで、Sw,k,Sh,kは、水平及び垂直方向の再サンプリング比を示す。Sw,k,Sh,kの値が1より大きい場合、再サンプリングはアップサンプリングに等しい。一方で、Sw,k,Sh,kの値が1より小さい場合、再サンプリングはダウンサンプリングに等しい。
【0139】
同じ又は別の実施形態では、レイヤ内のコーディングサブピクチャは、同じサブピクチャ又は異なるサブピクチャ内の別のレイヤ内のコーディングサブピクチャと異なる視覚的品質を有し得る。例えば、レイヤn内のサブピクチャiは、量子化パラメータQi,nによりコーディングされ、レイヤm内のサブピクチャjは、量子化パラメータQj,m.によりコーディングされる。
【0140】
同じ又別の実施形態では、レイヤ内のコーディングサブピクチャは、独立して復号可能であってよく、同じ局所領域の別のレイヤ内のコーディングサブピクチャからのパーシング又は復号依存関係を有しない。同じ局所領域の別のサブピクチャレイヤを参照することなく独立に復号可能なサブピクチャレイヤは、独立サブピクチャレイヤである。独立したサブピクチャレイヤ内のコーディングサブピクチャは、同じサブピクチャレイヤからの前のコーディングサブピクチャからの復号又はパーシング依存関係を有してよく又は有しなくてよいが、コーディングサブピクチャは、別のサブピクチャレイヤ内のコーディングピクチャからの依存関係を有しなくてよい。
【0141】
同じ又別の実施形態では、レイヤ内のコーディングサブピクチャは、依存して復号可能であってよく、同じ局所領域の別のレイヤ内のコーディングサブピクチャからのパーシング又は復号依存関係を有する。同じ局所領域の別のサブピクチャレイヤを参照して依存して復号可能なサブピクチャレイヤは、依存サブピクチャレイヤである。依存サブピクチャ内のコーディングサブピクチャは、同じサブピクチャに属するコーディングサブピクチャ、同じサブピクチャレイヤ内の前のコーディングサブピクチャ、又は両方の参照サブピクチャを参照してよい。
【0142】
同じ又別の実施形態では、コーディングサブピクチャは、1つ以上の独立サブピクチャレイヤ及び1つ以上の依存サブピクチャレイヤで構成される。しかしながら、コーディングサブピクチャについて、少なくとも1つの独立サブピクチャレイヤが存在してよい。独立サブピクチャレイヤは、NALユニットヘッダ又は別の上位シンタックス構造内に存在し得る、0に等しいレイヤ識別子(layer_id)の値を有してよい。0に等しいlayer_idを有するサブピクチャレイヤは、基本サブピクチャレイヤである。
【0143】
同じ又別の実施形態では、ピクチャは、1つ以上の前景サブピクチャ及び1つ以上の背景サブピクチャで構成される。背景サブピクチャによりサポートされる領域は、ピクチャの領域と等しくてよい。前景サブピクチャによりサポートされる領域は、背景サブピクチャによりサポートされる領域と重なり合ってよい。背景サブピクチャは、基本サブピクチャレイヤであってよく、一方で、前景サブピクチャは、非基本(拡張)サブピクチャレイヤであってよい。1つ以上の非基本サブピクチャレイヤは、復号のために同じ基本レイヤを参照してよい。aに等しいlayer_idを有する各々の非基本サブピクチャレイヤは、bに等しいlayer_idを有する非基本サブピクチャレイヤを参照してよい。ここで、aはbより大きい。
【0144】
同じ又別の実施形態では、ピクチャは、背景サブピクチャを有する又は有しない1つ以上の前景サブピクチャで構成されてよい。各サブピクチャは、それ自体の基本サブピクチャレイヤ及び1つ以上の非基本(拡張)レイヤを有してよい。各基本サブピクチャレイヤは、1つ以上の非基本サブピクチャレイヤにより参照されてよい。aに等しいlayer_idを有する各々の非基本サブピクチャレイヤは、bに等しいlayer_idを有する非基本サブピクチャレイヤを参照してよい。ここで、aはbより大きい。
【0145】
同じ又別の実施形態では、ピクチャは、背景サブピクチャを有する又は有しない1つ以上の前景サブピクチャで構成されてよい。(基本又は非基本)サブピクチャレイヤ内の各コーディングサブピクチャは、同じサブピクチャに属する1つ以上の非基本レイヤのサブピクチャ、及び同じサブピクチャに属さない1つ以上の非基本レイヤのサブピクチャにより参照されてよい。
【0146】
同じ又別の実施形態では、ピクチャは、背景サブピクチャを有する又は有しない1つ以上の前景サブピクチャで構成されてよい。レイヤa内のサブピクチャは、同じレイヤ内の複数のサブピクチャに更にパーティションされてよい。レイヤb内の1つ以上のコーディングサブピクチャは、レイヤa内のパーティションされたサブピクチャを参照してよい。
【0147】
同じ又は別の実施形態では、コーディングビデオシーケンス(coded video sequence (CVS))は、コーディングピクチャのグループであってよい。CVSは、1つ以上のコーディングサブピクチャシーケンス(coded sub-picture sequences (CSPS))で構成されてよい。ここで、CSPSは、ピクチャの同じ局所領域をカバーするコーディングサブピクチャのグループであってよい。CSPSは、コーディングビデオシーケンスと同じ又は異なる時間解像度を有してよい。
【0148】
同じ又は別の実施形態では、CSPSは、コーディングされ1つ以上のレイヤに含まれてよい。CSPSは、1つ以上のCSPSレイヤで構成されてよい。CSPSに対応する1つ以上のCSPSレイヤを復号することは、同じ局所領域に対応するサブピクチャのシーケンスを再構成してよい。
【0149】
同じ又は別の実施形態では、CSPSに対応するCSPSレイヤの数は、別のCSPSに対応するCSPSレイヤの数と同じ又は異なってよい。
【0150】
同じ又は別の実施形態では、CSPSレイヤは、別のCSPSレイヤと異なる時間解像度(例えば、フレームレート)を有してよい。元の(未圧縮)サブピクチャシーケンスは、時間的に再サンプリング(アップサンプリング又はダウンサンプリング)され、異なる時間解像度パラメータによりコーディングされ、レイヤに対応するビットストリームに含まれてよい。
【0151】
同じ又別の実施形態では、フレームレートFを有するサブピクチャシーケンスは、コーディングされ、レイヤ0に対応するコーディングビットストリームに含まれてよい。一方で、F*St,kにより元のサブピクチャシーケンスから時間的にアップサンプリング(又はダウンサンプリング)されたサブピクチャシーケンスは、コーディングされ、レイヤkに対応するコーディングビットストリームに含まれてよい。ここで、St,kはレイヤkの時間サンプリング比を示す。St,kの値が1より大きい場合、時間再サンプリング処理は、フレームレートアップコンバージョンと等しい。一方で、St,kの値が1より小さい場合、時間再サンプリング処理は、フレームレートダウンコンバージョンと等しい。
【0152】
同じ又は別の実施形態では、動き補償又は任意のインターレイヤ予測のために、CSPSレイヤaを有するサブピクチャがCSPSレイヤbを有するサブピクチャにより参照されるとき、CSPSレイヤaの空間解像度がCSPSレイヤbの空間解像度と異なる場合、CSPSレイヤaの復号ピクセルは、再サンプリングされ、参照のために使用される。再サンプリング処理は、アップサンプリングフィルタリング又はダウンサンプリングフィルタリングを必要としてよい。
【0153】
図11は、0に等しいlayer_idを有する背景ビデオCSPS及び複数の前景CSPSレイヤを含む例示的なビデオストリームを示す。コーディングサブピクチャは1つ以上のCSPSレイヤで構成されてよいが、いずれの前景CSPSレイヤにも属さない背景領域は、基本レイヤを構成してよい。基本レイヤは、背景領域及び前景領域を含んでよく、拡張CSPSレイヤは前景領域を含む。拡張CSPSレイヤは、同じ領域において、基本レイヤより良好な視覚的品質を有してよい。拡張CSPSレイヤは、同じ領域に対応する、基本レイヤの再構成ピクセル及び動きベクトルを参照してよい。
【0154】
同じ又は別の実施形態では、基本レイヤに対応するビデオビットストリームは、トラックに含まれ、一方で、各サブピクチャに対応するCSPSレイヤは、ビデオファイル内の別のトラックに含まれる。
【0155】
同じ又は別の実施形態では、基本レイヤに対応するビデオビットストリームは、トラックに含まれ、一方で、同じlayer_idに対応するCSPSレイヤは、別のトラックに含まれる。本例では、レイヤkに対応するトラックは、レイヤkに対応するCSPSレイヤのみを含む。
【0156】
同じ又別の実施形態では、各サブピクチャの各CSPSレイヤは、別のトラックに格納される。各トラックは、1つ以上の他のトラックからのパーシング又は復号依存関係を有してよく又は有しなくてよい。
【0157】
同じ又別の実施形態では、各トラックは、サブピクチャの全部又は一部のCSPSレイヤのレイヤi~レイヤjに対応するビットストリームを含んでよい。ここで、0<i=<j=<k、kはCSPSの最高レイヤである。
【0158】
同じ又別の実施形態では、ピクチャは、深さマップ、アルファマップ、3Dジオメトリデータ、占有マップ、等を含む1つ以上の関連データで構成される。このような関連する時限メディアデータは、1又は複数のデータサブストリームに分割でき、各データサブストリームは、1つのサブピクチャに対応する。
【0159】
同じ又別の実施形態では、
図12は、マルチレイヤサブピクチャ方法に基づくビデオ会議の例を示す。ビデオストリームには、背景ピクチャに対応する1つの基本レイヤビデビットストリーム、及び前景サブピクチャに対応する1つ以上の拡張レイヤビデオビットストリームが含まれる。各拡張レイヤビデオビットストリームは、CSPSレイヤに対応する。表示において、基本レイヤに対応するピクチャがデフォルトで表示される。それは、ピクチャ内の1つ以上のユーザのピクチャを含む(ピクチャインピクチャ(picture in a picture (PIP)))。特定のユーザがクライアントの制御により選択されると、選択されたユーザに対応する拡張CSPSレイヤが、拡張品質又は空間解像度により、復号され、表示される
図13は、動作の図を示す。
【0160】
同じ又別の実施形態では、ネットワーク中間ボックス(例えばルータ)は、帯域幅に依存して、ユーザへ送信すべきレイヤのサブセットを選択してよい。ピクチャ/サブピクチャ編成は、帯域幅適応のために使用されてよい。例えば、ユーザが帯域幅を有しない場合、ルータはレイヤを削除するか、又はそれらの重要性により若しくは使用される設定に基づき幾つかのサブピクチャを選択する。これは、帯域幅に適応するために動的に行うことができる。
【0161】
図14は、360度ビデオの使用例を示す。球体の360度ピクチャが平面ピクチャに投影されるとき、投影360度ピクチャは、基本レイヤのような複数のサブピクチャにパーティションされてよい。特定のサブピクチャの拡張レイヤは、コーディングされ、クライアントへ送信されてよい。デコーダは、全部のサブピクチャを含む基本レイヤ、及び選択されたサブピクチャの拡張レイヤの両方を復号可能であってよい。現在の視点が選択されたサブピクチャと同じとき、表示されたピクチャは、拡張レイヤを有する復号サブピクチャにより、より高い品質を有してよい。或いは、基本レイヤを有する復号ピクチャは、低品質で表示できる。
【0162】
同じ又別の実施形態では、表示のためのレイアウト情報は、ファイル内に、補助情報(例えば、SEIメッセージ又はメタデータ)として存在してよい。1つ以上の復号サブピクチャは、シグナリングされたレイアウト情報に従い、再配置され表示されてよい。レイアウト情報は、ストリーミングサーバ又はブロードキャスタによりシグナリングされてよく、又はネットワークエンティティ若しくはクラウドサーバにより再生成されてよく、又はユーザのカスタマイズされた設定により決定されてよい。
【0163】
実施形態では、入力ピクチャは、1つ以上の(長方形)サブ領域に分割され、各サブ領域は独立レイヤとしてコーディングされてよい。局所領域に対応する各独立レイヤは、ユニークなlayer_id値を有してよい。独立レイヤ毎に、サブピクチャサイズ及び位置情報がシグナリングされてよい。例えば、ピクチャサイズ(幅、高さ)、左上角のオフセット情報(x_offset,y_offset)である。
図15は、分割されたサブピクチャのレイアウト、そのサブピクチャサイズ及び位置情報、及びその対応するピクチャ予測構造の例を示す。サブピクチャサイズ及びサブピクチャ位置を含むレイアウト情報は、パラメータセット、スライス若しくはグループのヘッダ、又はSEIメッセージのような上位シンタックス構造の中でシグナリングされてよい。
【0164】
同じ実施形態で、独立レイヤに対応する各サブピクチャは、AU内の自身のユニークなPOC値を有してよい。DPBに格納されたピクチャの中の参照ピクチャがRPS又はRPL構造内のシンタックス要素を用いて示される場合、レイヤに対応する各サブピクチャのPOC値が使用されてよい。
【0165】
同じ又別の実施形態では、(インターレイヤ)予測構造を示すために、layer_idは使用されなくてよく、POC(デルタ)値が使用されてよい。
【0166】
同じ実施形態では、レイヤ(又は局所領域)に対応するNに等しいPOC値を有するサブピクチャは、動き補償予測のために、同じレイヤ(又は同じ局所領域)に対応する、N+Kに等しいPOC値を有するサブピクチャの参照ピクチャとして使用さてよく又は使用されなくてよい。殆どの場合、数値Kの値は、サブ領域の数に等しくてよい、(独立)レイヤの最大数に等しくてよい。
【0167】
同じ又別の実施形態では、
図16は
図15の拡張された場合を示す。入力ピクチャが複数の(例えば4個の)サブ領域に分割されるとき、各局所領域は、1つ以上のレイヤによりコーディングされてよい。この場合、独立レイヤの数は、サブ領域の数に等しくてよく、1つ以上のレイヤがサブ領域に対応してよい。従って、各サブ領域は、1つ以上の独立レイヤ及び0以上の従属レイヤによりコーディングされてよい。
【0168】
同じ実施形態では、
図16において、入力ピクチャは4個のサブ領域に分割されてよい。右上サブ領域は、2つのレイヤ、つまりレイヤ1及びレイヤ4としてコーディングされてよい。一方で、右下サブ領域は、2つのレイヤ、つまりレイヤ3及びレイヤ5としてコーディングされてよい。この場合、レイヤ4は、動き補償予測のためにレイヤ1を参照してよく、レイヤ5は、動き補償のためにレイヤ3を参照してよい。
【0169】
同じ又別の実施形態では、レイヤ境界に跨がるインループフィルタ(例えば、デブロッキングフィルタ、適応型インループフィルタ、リシェーパ、バイラテラルフィルタ、又は任意の深層学習に基づくフィルタ)は、(任意的に)無効にされてよい。
【0170】
同じ又別の実施形態では、レイヤ境界に跨がる動き補償予測又はイントラブロックコピーは、(任意的に)無効にされてよい。
【0171】
同じ又別の実施形態では、サブピクチャの境界における動き補償予測又はインループフィルタのための境界パディングは、任意的に処理されてよい。境界パディングが処理されるか否かを示すフラグが、パラメータセット(VPS、SPS、PPS、又はAPS)又はスライス若しくはタイルグループヘッダ、又はSEIメッセージのような上位シンタックス構造の中でシグナリングされてよい。
【0172】
同じ又別の実施形態では、サブ領域(又はサブピクチャ)のレイアウト情報は、VPS又はMPS内でシグナリングされてよい。
図17は、VPS及びSPS内のシンタックス要素の例を示す。本例では、vps_sub_picture_dividing_flagがVPS内でシグナリングされる。フラグは、入力ピクチャが複数のサブ領域に分割されるか否かを示してよい。vps_sub_picture_dividing_flagの値が0に等しいとき、現在VPSに対応するコーディングビデオシーケンスの中の入力ピクチャは、複数のサブ領域に分割されなくてよい。この場合、入力ピクチャサイズは、SPS内でシグナリングされる、コーディングピクチャサイズ(pic_width_in_luma_samples, pic_height_in_luma_samples)に等しくてよい。vps_sub_picture_dividing_flagの値が1に等しいとき、入力ピクチャは、複数のサブ領域に分割されてよい。この場合、シンタックス要素vps_full_pic_width_in_luma_samples及びvps_full_pic_height_in_luma_samplesは、VPS内でシグナリングされる。vps_full_pic_width_in_luma_samples及びvps_full_pic_height_in_luma_samplesの値は、それぞれ入力ピクチャの幅及び高さに等しくてよい。
【0173】
同じ実施形態で、vps_full_pic_width_in_luma_samples及びvps_full_pic_height_in_luma_samplesの値は、復号のために使用されなくてよいが、構成及び表示のために使用されてよい。
【0174】
同じ実施形態で、vps_sub_picture_dividing_flagの値が1に等しいとき、シンタックス要素pic_offset_x及びpic_offset_yは、特定のレイヤに対応するSPS内でシグナリングされてよい。この場合、SPS内でシグナリングされるコーディングピクチャサイズ(pic_width_in_luma_samples, pic_height_in_luma_samples)は、特定のレイヤに対応するサブ領域の幅及び高さに等しくてよい。また、サブ領域の左上角の位置(pic_offset_x, pic_offset_y)は、SPS内でシグナリングされてよい。
【0175】
同じ実施形態で、サブ領域の左上角の位置(pic_offset_x, pic_offset_y)は、復号のために使用されなくてよいが、構成及び表示のために使用されてよい。
【0176】
同じ又別の実施形態では、入力ピクチャのサブ領域の全部又は一部のレイアウト情報(サイズ及び位置)、レイヤ間の依存情報は、パラメータセット又はSEIメッセージ内でシグナリングされてよい。
図18は、サブ領域のレイアウトの情報、レイヤ間の依存関係、及びサブ領域と1つ以上のレイヤとの間の関係を示すためのシンタックス要素の例を示す。本例では、シンタックス要素num_sub_regionは、現在コーディングビデオシーケンス内の(長方形)サブ領域の数を示し、シンタックス要素elementnum_layersは、現在コーディングビデオシーケンス内のレイヤの数を示す。num_layersの値は、num_sub_regionの値に等しいか又はそれより大きくてよい。任意のサブ領域が単一のレイヤとしてコーディングされるとき、num_layersの値はnum_sub_regionの値に等しくてよい。1つ以上のサブ領域が複数のレイヤとしてコーディングされるとき、num_layersの値はnum_sub_regionの値より大きくてよい。シンタックス要素direct_dependency_flag[i][j]は、j番目のレイヤからi番目のレイヤへの依存関係を示す。num_layers_for_region[i]は、i番目のサブ領域に関連付けられたレイヤの数を示す。sub_region_layer_id[i][j]は、i番目のサブ領域に関連付けられたj番目のレイヤのlayer_idを示す。sub_region_offset_x[i]及びsub_region_offset_y[i]は、それぞれi番目のサブ領域の左上角の水平及び垂直位置を示す。sub_region_width[i]及びsub_region_height[i]は、それぞれi番目のサブ領域の幅及び高さを示す。
【0177】
一実施形態では、1つ以上のレイヤを示すために設定される出力レイヤがプロファイルティアレベル情報と共に又は伴わずに出力されるかを指定する1つ以上のシンタックス要素は、上位シンタックス構造、例えば、VPS、DPS、SPS、PPS、APS、又はSEIメッセージ内でシグナリングされてよい。
図19を参照すると、VPSを参照するコーディングビデオシーケンス内の出力レイヤセット(output layer set (OLS))の数を示すシンタックス要素num_output_layer_setsは、VPS内でシグナリングされてよい。出力レイヤセット毎に、output_layer_flagが、出力レイヤの数と同数だけシグナリングされてよい。
【0178】
同じ実施形態で、1に等しいoutput_layer_flag[i]は、i番目のレイヤが出力されることを指定する。0に等しいvps_output_layer_flag[i]は、i番目のレイヤが出力されないことを指定する。
【0179】
同じ又別の実施形態では、出力レイヤセット毎のプロファイルティアレベル情報を指定する1つ以上のシンタックス要素は、上位シンタックス構造、例えば、VPS、DPS、MPS、PPS、APS、又はSEIメッセージ内でシグナリングされてよい。更に
図19を参照すると、VPSを参照するコーディングビデオシーケンス内のOLS当たりのプロファイルティアレベル情報の数を示すシンタックス要素num_profile_tile_levelは、VPS内でシグナリングされてよい。出力レイヤセット毎に、プロファイルティアレベル情報のシンタックス要素のセット、又はプロファイルティアレベル情報内のエントリの中の特定のプロファイルティアレベル情報を示すインデックスが、出力レイヤの数だけシグナリングされてよい。
【0180】
同じ実施形態では、profile_tier_level_idx[i][j]は、i番目のOLSのj番目のレイヤに適用されるprofile_tier_level()シンタックス構造のインデックスを、VPS内のprofile_tier_level()シンタックス構造のリストへと指定する。
【0181】
同じ又別の実施形態では、
図20を参照すると、シンタックス要素num_profile_tile_level及び/又はnum_output_layer_setsは、最大レイヤ数が1より大きいとき(vps_max_layers_minus1>0)、シグナリングされてよい。
【0182】
同じ又別の実施形態では、
図20を参照すると、i番目の出力レイヤセットについての出力レイヤシグナリングのモードを示すシンタックス要素vps_output_layers_mode[i]が、VPS内に存在してよい。
【0183】
同じ実施形態で、0に等しいvps_output_layers_mode[i]は、最上位レイヤのみがi番目の出力レイヤセットと共に出力されることを指定する。1に等しいvps_output_layer_mode[i]は、全部のレイヤが、i番目の出力レイヤセットと共に出力されることを指定する。2に等しいvps_output_layer_mode[i]は、出力されるレイヤが、i番目の出力レイヤセットと共に、1に等しいvps_output_layer_flag[i][j]を有するレイヤであることを指定する。より多くの値が予約されてよい。
【0184】
同じ実施形態で、output_layer_flag[i][j]は、i番目の出力レイヤセットのvps_output_layers_mode[i]の値に依存してシグナリングされてよく又はされなくてよい。
【0185】
同じ又別の実施形態では、
図20を参照すると、flagvps_ptl_signal_flag[i]がi番目の出力レイヤセットについて存在してよい。vps_ptl_signal_flag[i]の値に依存して、i番目の出力レイヤセットのプロファイルティアレベル情報は、シグナリングされてよく又はされなくてよい。
【0186】
同じ又別の実施形態では、
図21を参照すると、現在CVS内のサブピクチャの数max_subpics_minus1は、上位シンタックス構造、例えば、VPS、DPS、SPS、PPS、APS、又はSEIメッセージ内でシグナリングされてよい。
【0187】
同じ又別の実施形態では、
図21を参照すると、i番目のサブピクチャのサブピクチャ識別子sub_pic_id[i]は、最大レイヤサブピクチャ数が1より大きいとき(max_subpics_minus1>0)、シグナリングされてよい。
【0188】
同じ又別の実施形態では、各出力レイヤセットの各レイヤに属するサブピクチャ識別子を示す1つ以上のシンタックス要素が、VPS内でシグナリングされてよい。
図22を参照すると、k番目のサブピクチャを示すsub_pic_id_layer[i][j][k]は、i番目の出力レイヤセットのj番目のレイヤ内に存在する。これらの情報により、デコーダは、特定の出力レイヤセットの各レイヤについて、どのサブピクチャが復号され出力され得るかを認識してよい。
【0189】
実施形態では、ピクチャヘッダ(picture header (PH))は、コーディングピクチャの全部のスライスに適用されるシンタックス要素を含むシンタックス構造である。ピクチャユニット(picture unit (PU))は、指定された分類ルールに従い互いに関連付けられた、復号順で連続する、正確に1つのコーディングピクチャを含むNALユニットのセットである。PUは、ピクチャヘッダ(picture header (PH))と、コーディングピクチャに対応する1つ以上のVCL NALユニットとを含んでよい。
【0190】
実施形態では、SPS(RBSP)は、参照され、0に等しいTemporalIdを有する少なくとも1つのAUに含まれ、又は外部手段を通じて提供される前に、復号処理に利用可能であってよい。
【0191】
実施形態では、SPS(RBSP)は、参照され、SPSを参照する1つ以上のPPSを含む、CVS内で0に等しいTemporalIdを有する少なくとも1つのAUに含まれ、又は外部手段を通じて提供される前に、復号処理に利用可能であってよい。
【0192】
実施形態では、SPS(RBSP)は、1つ以上のPPSにより参照され、SPSを参照する1つ以上のPPSを含む、CVS内でSPS NALユニットの最も低いnuh_layer_id値に等しいnuh_layer_idを有する少なくとも1つのPUに含まれ、又は外部手段を通じて提供される前に、復号処理に利用可能であってよい。
【0193】
実施形態では、SPS(RBSP)は、1つ以上のPPSにより参照され、0に等しいTemporalId及びSPS NALユニットを参照するPPS NALユニットの最低のnuh_layer_id値に等しいnuh_layer_idを有する1つ以上のPU内に含まれ、又は外部手段を通じて提供される前に、復号処理に利用可能であってよい。
【0194】
実施形態では、SPS(RBSP)は、1つ以上のPPSにより参照され、0に等しいTemporalId及びSPSを参照する1つ以上のPPSを含む、CVS内でSPS NALユニットの最も低いnuh_layer_id値に等しいnuh_layer_idを有する少なくとも1つのPUに含まれ、又は外部手段を通じて提供され又は外部手段を通じて提供される前に、復号処理に利用可能であってよい。
【0195】
同じ又は別の実施形態では、pps_seq_parameter_set_idは、参照されるSPSのsps_seq_parameter_set_idの値を指定する。pps_seq_parameter_set_idの値は、CLVS内のコーディングピクチャにより参照される全部のPPSの中で同じであってよい。
【0196】
同じ又別の実施形態では、CVS内で特定の値のsps_seq_parameter_set_idを有する全部のSPS NALユニットは同じコンテンツを有してよい。
【0197】
同じ又別の実施形態では、nuh_layer_idの値に拘わらず、SPS NALユニットは、sps_seq_parameter_set_idの同じ値空間を共有してよい。
【0198】
同じ又別の実施形態では、SPS NALユニットのnuh_layer_id値は、SPS NALユニットを参照するPPS NALユニットの最低のnuh_layer_id値に等しくてよい。
【0199】
実施形態では、mに等しいnuh_layer_idを有するSPSが、nに等しいnuh_layer_idを有する1つ以上のPPSにより参照されるとき、mに等しいnuh_layer_idを有するレイヤは、nに等しいnuh_layer_idを有するレイヤ、又はmに等しいnuh_layer_idを有するレイヤの(直接又は間接)参照レイヤと同じであってよい。
【0200】
実施形態では、PPS(RBSP)は、参照され、PPS NALユニットのTemporalIdに等しいTemporalIdを有する少なくとも1つのAUに含まれ、又は外部手段を通じて提供される前に、復号処理に利用可能であってよい。
【0201】
実施形態では、PPS(RBSP)は、参照され、PPSを参照する1つ以上のPH(又はコーディングスライスNALユニット)を含む、CVS内のPPS NALユニットのTemporalIdに等しいTemporalIdを有する少なくとも1つのAUに含まれ、又は外部手段を通じて提供される前に、復号処理に利用可能であってよい。
【0202】
実施形態では、PPS(RBSP)は、1つ以上のPH(又はコーディングスライスNALユニット)により参照され、PPSを参照する1つ以上のPH(又はコーディングスライスNALユニット)を含む、CVS内のPPS NALユニットを参照するコーディングスライスNALユニットの最も低いnuh_layer_id値に等しいnuh_layer_idを有する少なくとも1つのPUに含まれ、又は外部手段を通じて提供される前に、復号処理に利用可能であってよい。
【0203】
実施形態では、PPS(RBSP)は、1つ以上のPH(又はコーディングスライスNALユニット)により参照され、1つ以上のPH(又はコーディングスライスNALユニット)を含む、CVS内のPPS NALユニットを参照するコーディングスライスNALユニットの最も低いnuh_layer_id値に等しいnuh_layer_id及びPPS NALユニットのTemporalIdに等しいTemporalIdを有する少なくとも1つのPUに含まれ、又は外部手段を通じて提供され又は外部手段を通じて提供される前に、復号処理に利用可能であってよい。
【0204】
同じ又は別の実施形態では、PH内のph_pic_parameter_set_idは、使用中の参照されるPPSのpps_pic_parameter_set_idの値を指定する。pps_seq_parameter_set_idの値は、CLVS内のコーディングピクチャにより参照される全部のPPSの中で同じであってよい。
【0205】
同じ又別の実施形態では、PU内で特定の値のpps_pic_parameter_set_idを有する全部のPPS NALユニットは同じコンテンツを有してよい。
【0206】
同じ又別の実施形態では、nuh_layer_idの値に拘わらず、PPS NALユニットは、pps_pic_parameter_set_idの同じ値空間を共有してよい。
【0207】
同じ又別の実施形態では、PPS NALユニットのnuh_layer_id値は、PPS NALユニットを参照するNALユニットを参照するコーディングスライスNALユニットの最低のnuh_layer_id値に等しくてよい。
【0208】
実施形態では、mに等しいnuh_layer_idを有するPPSが、nに等しいnuh_layer_idを有する1つ以上のコーディングスライスNALユニットにより参照されるとき、mに等しいnuh_layer_idを有するレイヤは、nに等しいnuh_layer_idを有するレイヤ、又はmに等しいnuh_layer_idを有するレイヤの(直接又は間接)参照レイヤと同じであってよい。
【0209】
実施形態では、PPS(RBSP)は、参照され、PPS NALユニットのTemporalIdに等しいTemporalIdを有する少なくとも1つのAUに含まれ、又は外部手段を通じて提供される前に、復号処理に利用可能であってよい。
【0210】
実施形態では、PPS(RBSP)は、参照され、PPSを参照する1つ以上のPH(又はコーディングスライスNALユニット)を含む、CVS内のPPS NALユニットのTemporalIdに等しいTemporalIdを有する少なくとも1つのAUに含まれ、又は外部手段を通じて提供される前に、復号処理に利用可能であってよい。
【0211】
実施形態では、PPS(RBSP)は、1つ以上のPH(又はコーディングスライスNALユニット)により参照され、PPSを参照する1つ以上のPH(又はコーディングスライスNALユニット)を含む、CVS内のPPS NALユニットを参照するコーディングスライスNALユニットの最も低いnuh_layer_id値に等しいnuh_layer_idを有する少なくとも1つのPUに含まれ、又は外部手段を通じて提供される前に、復号処理に利用可能であってよい。
【0212】
実施形態では、PPS(RBSP)は、1つ以上のPH(又はコーディングスライスNALユニット)により参照され、1つ以上のPH(又はコーディングスライスNALユニット)を含む、CVS内のPPS NALユニットを参照するコーディングスライスNALユニットの最も低いnuh_layer_id値に等しいnuh_layer_id及びPPS NALユニットのTemporalIdに等しいTemporalIdを有する少なくとも1つのPUに含まれ、又は外部手段を通じて提供され又は外部手段を通じて提供される前に、復号処理に利用可能であってよい。
【0213】
同じ又は別の実施形態では、PH内のph_pic_parameter_set_idは、使用中の参照されるPPSのpps_pic_parameter_set_idの値を指定する。pps_seq_parameter_set_idの値は、CLVS内のコーディングピクチャにより参照される全部のPPSの中で同じであってよい。
【0214】
同じ又別の実施形態では、PU内で特定の値のpps_pic_parameter_set_idを有する全部のPPS NALユニットは同じコンテンツを有してよい。
【0215】
同じ又別の実施形態では、nuh_layer_idの値に拘わらず、PPS NALユニットは、pps_pic_parameter_set_idの同じ値空間を共有してよい。
【0216】
同じ又別の実施形態では、PPS NALユニットのnuh_layer_id値は、PPS NALユニットを参照するNALユニットを参照するコーディングスライスNALユニットの最低のnuh_layer_id値に等しくてよい。
【0217】
実施形態では、mに等しいnuh_layer_idを有するPPSが、nに等しいnuh_layer_idを有する1つ以上のコーディングスライスNALユニットにより参照されるとき、mに等しいnuh_layer_idを有するレイヤは、nに等しいnuh_layer_idを有するレイヤ、又はmに等しいnuh_layer_idを有するレイヤの(直接又は間接)参照レイヤと同じであってよい。
【0218】
出力レイヤは出力される出力レイヤセットのレイヤを示す。出力レイヤセット(output layer set (OLS))は、指定されたレイヤのセットで構成されるレイヤセットを示し、レイヤセットの中の1つ以上のレイヤは、出力レイヤとして指定される。出力レイヤセット(OLS)レイヤインデックスは、OLS内のレイヤのリストへの、OLS内のレイヤのインデックスである。
【0219】
サブレイヤは、特定の値のTemporalId変数及び関連付けられた非VCL NALユニットを有するVCL NALユニットで構成される時間的にスケーラブルなビットストリームの時間的にスケーラブルなレイヤを示す。サブレイヤ表現は、特定のサブレイヤ及び下位のサブレイヤのNALユニットで構成されるビットストリームのサブセットを示す。
【0220】
VPS RBSPは、参照され、0に等しいTemporalIdを有する少なくとも1つのAUに含まれ、又は外部手段を通じて提供される前に、復号処理に利用可能であってよい。CVS内で特定の値のvps_video_parameter_set_idを有する全部のVPS NALユニットは同じコンテンツを有してよい。
図22は、VPS RBSPの例を示す。
【0221】
vps_video_parameter_set_idは、他のシンタックス要素による参照のためにVPSの識別子を提供する。vps_video_parameter_set_idの値は0より大きくてよい。
【0222】
vps_max_sublayers_minus1に1を加えたものは、VPSを参照する各CVS内に存在し得る時間的サブレイヤの最大数を指定する。
【0223】
vps_max_sublayers_minus1に1を加えたものは、VPSを参照する各CVS内に存在し得る時間的サブレイヤの最大数を指定する。vps_max_sublayers_minus1の値は、両端を含む0~6の範囲であってよい。
【0224】
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に等しいと推定される。
【0225】
1に等しいvps_all_independent_layers_flagは、CVS内の全部のレイヤが、インターレイヤ予測を使用しないで独立にコーディングされることを指定する。0に等しいvps_all_independent_layers_flagは、CVS内のレイヤのうちの1つ以上がインターレイヤ予測を使用してよいことを指定する。存在しないとき、vps_all_independent_layers_flagの値は1に等しいと推定される。
【0226】
vps_layer_id[i]は、i番目のレイヤのnuh_layer_id値を指定する。m及びnの任意の2つの負ではない整数値について、mがnより小さいとき、vps_layer_id[m]の値はvps_layer_id[n]より小さくてよい。
【0227】
1に等しいvps_independent_layer_flag[i]は、インデックスiを有するレイヤがインターレイヤ予測を使用しないことを指定する。0に等しいvps_independent_layer_flag[i]は、インデックスiを有するレイヤが、インターレイヤ予測を使用してよいこと、及び両端を含む0~i-1の範囲内のシンタックス要素vps_direct_ref_layer_flag[i][j]がVPS内に存在することを指定する。存在しないとき、vps_independent_layer_flag[i]の値は1に等しいと推定される。
【0228】
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に等しいとき、両端を含む0~i-1の範囲内のjの少なくとも1つの値が存在してよく、その結果、vps_direct_ref_layer_flag[i][j]の値は1に等しい。
【0229】
変数NumDirectRefLayers[i]、DirectRefLayerIdx[i][d]、NumRefLayers[i]、RefLayerIdx[i][r]、及びLayerUsedAsRefLayerFlag[j]は、以下のように導出される。
【数1】
【0230】
vps_layer_id[i]に等しいnuh_layer_idを有するレイヤのレイヤインデックスを指定する変数GeneralLayerIdx[i]は、以下のように導出される。
【数2】
【0231】
両端を含む0~vps_max_layers_minus1の範囲内のi及びjの両方の任意の2つの異なる値について、dependencyFlag[i][j]が1に等しいとき、i番目のレイヤに適用されるchroma_format_idc及びbit_depth_minus8の値が、それぞれj番目のレイヤに適用されるchroma_format_idc及びbit_depth_minus8の値に等しくなり得ることがビットストリーム規格適合性の要件である。
【0232】
1に等しいmax_tid_ref_present_flag[i]は、シンタックス要素max_tid_il_ref_pics_plus1[i]が存在することを指定する。0に等しいmax_tid_ref_present_flag[i]は、シンタックス要素max_tid_il_ref_pics_plus1[i]が存在しないことを指定する。
【0233】
0に等しいmax_tid_il_ref_pics_plus1[i]は、インターレイヤ予測が、i番目のレイヤの非IRAPピクチャにより使用されないことを指定する。0より大きいmax_tid_il_ref_pics_plus1[i]は、i番目のレイヤのピクチャを復号するために、max_tid_il_ref_pics_plus1[i]-1より大きいTemporalIdを有するピクチャが、ILRPとして使用されないことを指定する。存在しないとき、max_tid_il_ref_pics_plus1[i]の値は7に等しいと推定される。
【0234】
1に等しいeach_layer_is_an_ols_flagは、各OLSが1つのレイヤのみを含み、VPSを参照するCVS内の各レイヤ自体が、含まれる単一のレイヤが出力レイヤのみであるOLSであることを指定する。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に等しいと推定される。
【0235】
0に等しいols_mode_idcは、VPSにより指定されるOLSの合計数がvps_max_layers_minus1+1に等く、i番目のOLSは両端を含む0~iのレイヤインデックスを有するレイヤを含み、各OLSについて、OLS内の最上位レイヤのみが出力されることを指定する。
【0236】
1に等しいols_mode_idcは、VPSにより指定されるOLSの合計数がvps_max_layers_minus1+1に等く、i番目のOLSは両端を含む0~iのレイヤインデックスを有するレイヤを含み、各OLSについて、OLS内の全部のレイヤが出力されることを指定する。
【0237】
2に等しいols_mode_idcは、VPSにより指定されるOLSの合計数が明示的にシグナリングされ、各OLSにうちて、出力レイヤが明示的にシグナリングされ、他のレイヤはOLSの出力レイヤの直接又は間接参照レイヤであるレイヤであることを指定する。
【0238】
ols_mode_idcの値は、両端を含む0~2の範囲であってよい。値3のols_mode_idcは、ITU-T/ISO/IECによる将来の使用のために予約されている。
【0239】
vps_all_independent_layers_flagが1に等しく、each_layer_is_an_ols_flagが0に等しいとき、ols_mode_idcの値は2に等しいと推定される。
【0240】
num_output_layer_sets_minus1に1を加えたものは、ols_mode_idcが2に等しいとき、VPSにより指定されるOLSの合計数を指定する。
【0241】
VPSにより指定されるPLSの合計数を指定する変数TotalNumOlssは、以下のように導出される。
【数3】
【0242】
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の出力レイヤではないことを指定する。
【0243】
i番目のOLS内の出力レイヤの数を指定する変数NumOutputLayersInOls[i]、i番目のOLS内のj番目のレイヤの中のサブレイヤの数を指定する変数NumSubLayersInLayerInOLS[i][j]、i番目のOLSの中のj番目の出力レイヤのnuh_layer_idを指定する変数OutputLayerIdInOls[i][j]、及び、k番目のレイヤが少なくとも1つのOLS内の出力レイヤとして使用されるかどうかを指定する変数LayerUsedAsOutputLayerFlag[k]は、以下のように導出される
【数4】
【0244】
両端を含む0~vps_max_layers_minus1の範囲のiの各値について、LayerUsedAsRefLayerFlag[i]及びLayerUsedAsOutputLayerFlag[i]の値は、両方とも0に等しくなくてよい。言い換えると、少なくとも1つのOLSの出力レイヤでも任意の他のレイヤの直接参照レイヤでもないレイヤは存在しなくてよい。
【0245】
各OLSについて、出力レイヤである少なくとも1つのレイヤが存在してよい。言い換えると、両端を含む0~TotalNumOlss-1の範囲のiの任意の値について、NumOutputLayersInOls[i]の値は1以上であってよい。
【0246】
i番目のOLS内のレイヤの数を指定する変数NumLayersInOls[i]、及びi番目のOLS内のj番目のレイヤのnuh_layer_id値を指定する変数LayerIdInOls[i][j]は、以下のように導出される。
【数5】
【0247】
LayerIdInOls[i][j]に等しいnuh_layer_idequalを有するレイヤのOLSレイヤインデックスを指定する変数OlsLayerIdx[i][j]は、以下のように導出される。
【数6】
【0248】
各OLS内の最下位レイヤは独立レイヤであってよい。言い換えると、両端を含む0~TotalNumOlss-1の範囲のiの各々について、vps_independent_layer_flag[GeneralLayerIdx[LayerIdInOls[i][0]]]の値は1に等しくてよい。
【0249】
各レイヤは、VPSにより指定された少なくとも1つのOLSに含まれよい。言い換えると、両端を含む0~vps_max_layers_minus1の範囲のkについてvps_layer_id[k]のうちの1つに等しい特定の値のnuh_layer_idnuhLayerIdを有する各レイヤについて、値i及びjの少なくとも1つのペアが存在してよい。ここで、iは両端を含む0~TotalNumOlss-1の範囲にあり、jは端を含むNumLayersInOls[i]-1の範囲にあり、その結果、LayerIdInOls[i][j]の値はnuhLayerIdに等しい。
【0250】
実施形態では、コーディングビデオシーケンス内の任意のVCL NALユニットのtemporalIdの値は、VCL NALユニットにより参照されるVPS内のvps_max_sublayers_minus1より大きくなくてよい。
【0251】
同じ又別の実施形態では、max_tid_il_ref_pics_plus1[i]は以下のセマンティクスを有する:0に等しいmax_tid_il_ref_pics_plus1[i]は、i番目のレイヤの非IRAPピクチャによりインターレイヤ予測が使用されないことを指定する。0より大きいmax_tid_il_ref_pics_plus1[i]は、i番目のレイヤのピクチャを復号するために、max_tid_il_ref_pics_plus1[i]-1より大きいTemporalIdを有するピクチャが、ILRPとして使用されないことを指定する。存在しないとき、max_tid_il_ref_pics_plus1[i]の値はvps_max_sublayers_minus1+1に等しいと推定される。
【0252】
同じ又別の実施形態では、max_tid_il_ref_pics_plus1[i]はvps_max_sublayers_minus1+1より大きくなくてよい。
【0253】
実施形態では、サブレイヤ毎の出力レイヤセットは、独立レイヤについて導出されなくてよい。従って、max_tid_il_ref_pics_plus1及びlayerIncludedInOlsFlagは、独立レイヤについて導出されなくてよい。
【0254】
同じ又別の実施形態では、i番目のOLS内の出力レイヤの数を指定する変数NumOutputLayersInOls[i]、i番目のOLS内のj番目のレイヤの中のサブレイヤの数を指定する変数NumSubLayersInLayerInOLS[i][j]、i番目のOLSの中のj番目の出力レイヤのnuh_layer_idを指定する変数OutputLayerIdInOls[i][j]、及び、k番目のレイヤが少なくとも1つのOLS内の出力レイヤとして使用されるかどうかを指定する変数LayerUsedAsOutputLayerFlag[k]は、以下のように導出される。
【数7】
【0255】
上述の適応型解像度パラメータをシグナリングする技術は、コンピュータ可読命令を用いてコンピュータソフトウェアとして実装でき、1つ以上のコンピュータ可読媒体に物理的に格納できる。例えば、
図7は、本開示の主題の特定の実施形態を実装するのに適するコンピュータシステム700を示す。
【0256】
コンピュータソフトウェアは、アセンブリ、コンパイル、リンク等のメカニズムにより処理されて、コンピュータ中央処理ユニット(CPU)、グラフィック処理ユニット(GPU)、等により直接又はインタープリット、マイクロコード実行、等を通じて実行可能な命令を含むコードを生成し得る、任意の適切な機械コード又はコンピュータ言語を用いてコーディングできる。
【0257】
命令は、例えばパーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲーム装置、モノのインターネット装置、等を含む種々のコンピュータ又はそのコンポーネントで実行できる。
【0258】
コンピュータシステム700の
図7に示すコンポーネントは、本来例示であり、本開示の実施形態を実装するコンピュータソフトウェアの使用又は機能の範囲に対するようないかなる限定も示唆しない。さらに、コンポーネントの構成も、コンピュータシステム700の例示的な実施形態に示されたコンポーネントのうちのいずれか又は組み合わせに関連する任意の依存関係又は要件を有すると解釈されるべきではない。
【0259】
コンピュータシステム700は、特定のヒューマンインタフェース入力装置を含んでよい。このようなヒューマンインタフェース入力装置は、例えば感覚入力(例えば、キーストローク、スワイプ、データグラブ動作)、音声入力(例えば、音声、クラッピング)、視覚的入力(例えば、ジェスチャ)、嗅覚入力(示されない)を通じた1人以上の人間のユーザによる入力に応答してよい。ヒューマンインタフェース装置は、必ずしも人間による意識的入力に直接関連する必要のない特定の媒体、例えば音声(例えば、会話、音楽、環境音)、画像(例えば、スキャンされた画像、デジタルカメラから取得された写真画像)、ビデオ(例えば、2次元ビデオ、3次元ビデオ、立体ビデオを含む)をキャプチャするためにも使用できる。
【0260】
入力ヒューマンインタフェース装置は、キーボード701、マウス702、トラックパッド703、タッチスクリーン710、データグラブ704、ジョイスティック705、マイクロフォン706、スキャナ707、カメラ708、のうちの1つ以上を含んでよい(そのうちの1つのみが示される)。
【0261】
コンピュータシステム700は、特定のヒューマンインタフェース出力装置も含んでよい。このようなヒューマンインタフェース出力装置は、例えば感覚出力、音声、光、及び匂い/味を通じて1人以上の人間のユーザの感覚を刺激してよい。このようなヒューマンインタフェース出力装置は、感覚出力装置を含んでよい(例えば、タッチスクリーン710、データグラブ704、又はジョイスティック705による感覚フィードバック、しかし入力装置として機能しない感覚フィードバック装置も存在し得る)、音声出力装置(例えば、スピーカ709、ヘッドフォン(図示しない)、視覚的出力装置(例えば、スクリーン710、CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含み、それぞれタッチスクリーン入力能力を有し又は有さず、それぞれ感覚フィードバック能力を有し又は有さず、これらのうちの幾つかは例えば立体出力、仮想現実眼鏡(図示しない)、ホログラフィックディスプレイ、及び発煙剤タンク(図示しない)、及びプリンタ(図示しない)のような手段を通じて2次元視覚出力又は3次元以上の出力を出力可能であってよい))。
【0262】
コンピュータシステム700は、人間のアクセス可能な記憶装置、及び、例えばCD/DVD等の媒体721を備えるCD/DVDROM/RW720のような光学媒体、サムドライブ722、取り外し可能ハードドライブ又は個体状態ドライブ723、テープ及びフロッピディスク(図示しない)のようなレガシー磁気媒体、セキュリティドングル(図示しない)等のような専用ROM/ASIC/PLDに基づく装置のような関連する媒体も含み得る。
【0263】
当業者は、本開示の主題と関連して使用される用語「コンピュータ可読媒体」が伝送媒体、搬送波、又は他の一時的信号を包含しないことも理解すべきである。
【0264】
コンピュータシステム700は、1つ以上の通信ネットワークへのインタフェースも含み得る。ネットワークは、例えば無線、有線、光であり得る。ネットワークへは、更に、ローカル、広域、都市域、車両及び産業、リアルタイム、耐遅延性、等であり得る。ネットワークの例は、イーサネットのようなローカルエリアネットワーク、無線LAN、GSM、3G、4G、5G、LET等を含むセルラネットワーク、ケーブルTV、衛星TV、地上波放送TVを含むTV有線又は無線広域デジタルネットワーク、CANBusを含む車両及び産業、等を含む。特定のネットワークは、一般に、特定の汎用データポート又は周辺機器バス(749)(例えば、コンピュータシステム700のUSBポート)に取り付けられる外部ネットワークインタフェースを必要とする。他のものは、一般に、後述するようなシステムバスへの取り付けによりコンピュータシステム700のコアに統合される(例えば、イーサネットインタフェースをPCコンピュータシステムへ、又はセルラネットワークインタフェースをスマートフォンコンピュータシステムへ)。これらのネットワークを用いて、コンピュータシステム700は、他のエンティティと通信できる。このような通信は、単方向受信のみ(例えば、放送TV)、単方向送信のみ(例えば、特定のCANbus装置へのCANbus)、又は例えばローカル又は広域デジタルネットワークを用いて他のコンピュータシステムへの双方向であり得る。特定のプロトコル及びプロトコルスタックが、上述のネットワーク及びネットワークインタフェースの各々で使用され得る。
【0265】
前述のヒューマンインタフェース装置、人間のアクセス可能な記憶装置、及びネットワークインタフェースは、コンピュータシステム700のコア740に取り付け可能である。
【0266】
コア740は、1つ以上の中央処理ユニット(CPU)741、グラフィック処理ユニット(GPU)742、FPGAの形式の専用プログラマブル処理ユニット743、特定タスクのためのハードウェアアクセラレータ744、等を含み得る。これらの装置は、読み出し専用メモリ(ROM)745、ランダムアクセスメモリ746、内部のユーザアクセス不可能なハードドライブ、SSD、等のような内蔵大容量記憶装置747と共に、システムバス748を通じて接続されてよい。幾つかのコンピュータシステムでは、追加CPU、GPU、等による拡張を可能にするために、システムバス748は、1つ以上の物理プラグの形式でアクセス可能である。周辺機器は、コアのシステムバス748に直接に、又は周辺機器バス749を通じて、取り付け可能である。周辺機器バスのアーキテクチャは、PCI、USB、等を含む。
【0267】
CPU741、GPU742、FPGA743、及びアクセラレータ744は、結合されて前述のコンピュータコードを生成可能な特定の命令を実行できる。該コンピュータコードは、ROM745又はRAM746に格納できる。一時的データもRAM746に格納でき、一方で、永久的データは例えば内蔵大容量記憶装置747に格納できる。メモリ装置のうちのいずれかへの高速記憶及び読み出しは1つ以上のCPU741、GPU742、大容量記憶装置747、ROM745、RAM746等に密接に関連付けられ得るキャッシュメモリの使用を通じて可能にできる。
【0268】
コンピュータ可読媒体は、種々のコンピュータにより実施される動作を実行するためのコンピュータコードを有し得る。媒体及びコンピュータコードは、本開示の目的のために特別に設計され構成されたものであり得、又は、コンピュータソフトウェア分野の当業者によく知られ利用可能な種類のものであり得る。
【0269】
例として及び限定ではなく、アーキテクチャを有するコンピュータシステム700、及び具体的にはコア740は、プロセッサ(CPU、GPU、FPGA、アクセラレータ、等を含む)が1つ以上の有形コンピュータ可読媒体内に具現化されたソフトウェアを実行した結果として、機能を提供できる。このようなコンピュータ可読媒体は、コア内蔵大容量記憶装置747又はROM745のような非一時的特性のコア740の特定の記憶装置、及び上述のようなユーザアクセス可能な大容量記憶装置と関連付けられた媒体であり得る。本開示の種々の実施形態を実装するソフトウェアは、このような装置に格納されコア740により実行できる。コンピュータ可読媒体は、特定の必要に従い、1つ以上のメモリ装置又はチップを含み得る。ソフトウェアは、コア740及び具体的にはその中のプロセッサ(CPU、GPU、FPGA、等を含む)に、ソフトウェアにより定義された処理に従うRAM746に格納されたデータ構造の定義及び該データ構造の変更を含む、ここに記載した特定の処理又は特定の処理の特定の部分を実行させることができる。追加又は代替として、コンピュータシステムは、ここに記載の特定の処理又は特定の処理の特定の部分を実行するためにソフトウェアと一緒に又はそれに代わって動作可能な論理ハードワイヤド又は他の回路内の実装(例えば、アクセラレータ744)の結果として機能を提供できる。ソフトウェアへの言及は、ロジックを含み、適切な場合にはその逆も同様である。コンピュータ可読媒体への言及は、適切な場合には、実行のためにソフトウェアを格納する(集積回路(IC)のような)回路、実行のためにロジックを実装する回路、又はそれらの両方を含み得る。本開示は、ハードウェア及びソフトウェアの任意の適切な組み合わせを含む。
【0270】
本開示は、幾つかの例示的な実施形態を記載したが、代替、置換、及び種々の代用の均等物が存在し、それらは本開示の範囲に包含される。当業者に明らかなことに、ここに明示的に示され又は説明されないが、本開示の原理を実施し、したがって、本開示の精神及び範囲に含まれる多数のシステム及び方法を考案可能である。