(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024026749
(43)【公開日】2024-02-28
(54)【発明の名称】コーディングしたビデオストリームにおけるサブピクチャ・パーティション分割を信号通知する方法
(51)【国際特許分類】
H04N 19/70 20140101AFI20240220BHJP
【FI】
H04N19/70
【審査請求】未請求
【請求項の数】1
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024003601
(22)【出願日】2024-01-12
(62)【分割の表示】P 2021565813の分割
【原出願日】2021-02-22
(31)【優先権主張番号】63/003,123
(32)【優先日】2020-03-31
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/081,392
(32)【優先日】2020-10-27
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】チョイ,ビョンドゥ
(72)【発明者】
【氏名】リィウ,シャン
(72)【発明者】
【氏名】ウェンジャー,ステファン
(57)【要約】
【課題】コーディングしたビデオストリームにおけるサブピクチャ・パーティション分割を信号通知することである。
【解決手段】
少なくとも1つのプロセッサを使用して符号化したビデオビットストリームを復号化するための方法、装置、及び非一時的なコンピュータ可読媒体を提供する。これらは、現在のピクチャの少なくとも1つのサブピクチャの数が1より大きいことに基づいて、サブピクチャ・パーティション分割情報が明示的に信号通知されているかどうかを示すフラグを取得すること;サブピクチャ・パーティション分割情報が明示的に信号通知されていることを示すフラグに基づいて、サブピクチャ・パーティション分割情報を取得すること;及びサブピクチャ・パーティション分割情報に基づいて、現在のピクチャを復号化すること;を含む。
【選択図】
図22
【特許請求の範囲】
【請求項1】
少なくとも1つのプロセッサを使用して符号化したビデオビットストリームを復号化する方法であって、当該方法は、
現在のピクチャの少なくとも1つのサブピクチャの数が1より大きいことに基づいて、サブピクチャ・パーティション分割情報が明示的に信号通知されているかどうかを示すフラグを取得するステップと、
前記サブピクチャ・パーティション分割情報が明示的に信号通知されていることを示す前記フラグに基づいて、前記サブピクチャ・パーティション分割情報を取得するステップと、
前記サブピクチャ・パーティション分割情報に基づいて、前記現在のピクチャを復号化するステップと、を含む、
方法。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願への相互参照
本願は、2020年3月31日に出願された米国仮特許出願第63/003,123号、及び2020年10月27日に出願された米国特許出願第17/081,392号からの優先権を主張するものであり、これらの文献は、その全体が本明細書に組み込まれる。
【0002】
開示する主題は、ビデオの符号化及び復号化に関連し、より具体的には、コーディングしたビデオストリームにおけるサブピクチャ・パーティション分割の信号通知に関連する。
【背景技術】
【0003】
動き補償を伴うインターピクチャ(inter-picture:ピクチャ間)予測を使用したビデオの符号化及び復号化が知られている。非圧縮デジタルビデオは、一連のピクチャで構成でき、各ピクチャは、例えば、1920×1080の輝度サンプル及び関連するクロミナンスサンプルの空間寸法を有する。一連のピクチャは、例えば毎秒60枚、つまり60Hzの固定又は可変のピクチャレート(非公式にはフレームレートとしても知られている)を有することができる。非圧縮ビデオには、重要なビットレート要件がある。例えば、サンプルあたり8ビットの1080p60 4:2:0ビデオ(60Hzフレームレートでの1920×1080の輝度サンプル解像度)には、1.5ギガビット/秒に近い帯域幅が必要である。このようなビデオを1時間使用するには、600ギガバイト(GB)を超える記憶スペースが必要である。
【0004】
ビデオの符号化及び復号化の目的の1つは、圧縮によって入力ビデオ信号の冗長性を減らすことである。圧縮は、前述の帯域幅又は記憶スペースの要件を、場合によっては2桁以上削減するのに役立ち得る。可逆圧縮と非可逆圧縮との両方、及びそれらの組合せが使用され得る。可逆圧縮とは、圧縮した元の信号から元の信号の正確なコピーを再構成できる技術を指す。非可逆圧縮を使用する場合に、再構成した信号は元の信号と同一ではない可能性があるが、元の信号と再構成した信号との間の歪みは十分に小さいため、再構成した信号は目的のアプリケーションに役立つ。ビデオの場合に、非可逆圧縮が広く使用されている。許容される歪みの量は、アプリケーションによって左右される。例えば、特定の消費者向けストリーミングアプリケーションのユーザは、テレビ関連(contribution)アプリケーションのユーザよりも高い歪みを許容する場合がある。達成可能な圧縮比は、許容/容認できる歪みが大きいほど、圧縮比が高くなる可能性があることを反映し得る。
【0005】
ビデオエンコーダ及びデコーダは、例えば、動き補償、変換、量子化、及びエントロピーコーディングを含むいくつかの広いカテゴリからの技術を利用することができ、それらのいくつかを以下に紹介する。
【0006】
歴史的に、ビデオエンコーダ及びデコーダは、殆どの場合に、コーディングしたビデオシーケンス(CVS)、ピクチャのグループ(GOP)、又は同様のマルチピクチャ時間フレームに対して規定され、一定に保たれた所与のピクチャサイズで動作する傾向があった。例えば、MPEG-2では、システム設計は、シーンのアクティビティ等の要因に応じて水平解像度(それに関してピクチャサイズ)を変更することが知られているが、Iピクチャのみ、こうして典型的にGOPについてのみ変更される。CVS内で異なる解像度を使用するための参照ピクチャのリサンプリング(resampling)は、例えばITU-TRec.H.263Annex Pにより知られている。しかしながら、ここではピクチャサイズは変更されず、参照ピクチャのみがリサンプリングされるため、ピクチャキャンバスの一部のみが使用されるか(ダウンサンプリングの場合に)、シーンの一部のみがキャプチャされる(アップサンプリングの場合に)可能性がある。さらに、H.263Annex Qでは、個々のマクロブロックを(各次元で)2倍だけ上向き又は下向きにリサンプリングできる。繰り返すが、ピクチャサイズは同じままである。マクロブロックのサイズはH.263で固定されているため、信号通知する必要はない。
【0007】
予測されるピクチャのピクチャサイズの変更は、現代のビデオコーディングでより主流になった。例えば、VP9では、参照ピクチャのリサンプリング及びピクチャ全体の解像度の変更が可能である。同様に、VVCに対して行われた特定の提案(例えば、Hendryらの、“On adaptive resolution change (ARC) for VVC”、Joint Video Team
document JVET-0135-v1、2019年1月9~19日を含み、この文書はその全体が本明細書に組み込まれる)によって、参照ピクチャ全体を異なる(より高い又はより低い)解像度にリサンプリングすることができる。その文書では、異なる候補解像度がシーケンスパラメータセットにコーディングされ、ピクチャパラメータセットのピクチャ毎の構文要素によって参照されることが提案されている。
【発明の概要】
【0008】
一実施形態では、少なくとも1つのプロセッサを使用して符号化したビデオビットストリームを復号化する方法が提供され、この方法は、現在のピクチャの少なくとも1つのサブピクチャの数が1より大きいことに基づいて、サブピクチャ・パーティション分割情報は明示的に信号通知されているかどうかを示すフラグを取得するステップと;サブピクチャ・パーティション分割情報が明示的に信号通知されていることを示すフラグに基づいて、サブピクチャ・パーティション分割情報を取得するステップと;サブピクチャ・パーティション分割情報に基づいて、現在のピクチャを復号化するステップと;を含む。
【0009】
一実施形態では、符号化したビデオビットストリームを復号化するための装置が提供され、この装置は、プログラムコードを格納するように構成された少なくとも1つのメモリと;プログラムコードを読み取り、プログラムコードの指示に従って動作するように構成された少なくとも1つのプロセッサと;を含む。プログラムコードは、現在のピクチャの少なくとも1つのサブピクチャの数が1より大きいことに基づいて、少なくとも1つのプロセッサに、サブピクチャ・パーティション分割情報が明示的に信号通知されているかどうかを示すフラグを取得させるように構成された第1の取得コードと;サブピクチャ・パーティション分割情報が明示的に信号通知されていることを示すフラグに基づいて、少なくとも1つのプロセッサに、サブピクチャ・パーティション分割情報を取得させるように構成された第2の取得コードと;サブピクチャ・パーティション分割情報に基づいて、少なくとも1つのプロセッサに、現在のピクチャを復号化させるように構成された復号化コードと;を含む。
【0010】
一実施形態では、命令を記憶する非一時的なコンピュータ可読媒体が提供され、命令は1つ又は複数の命令を含み、命令が、符号化したビデオビットストリームを復号化するための装置の1つ又は複数のプロセッサによって実行されると、1つ又は複数のプロセッサに、現在のピクチャの少なくとも1つのサブピクチャの数が1より大きいことに基づいて、サブピクチャ・パーティション分割情報が明示的に信号通知されているかどうかを示すフラグを取得すること;サブピクチャ・パーティション分割情報が明示的に信号通知されていることを示すフラグに基づいて、サブピクチャ・パーティション分割情報を取得すること;及び、サブピクチャ・パーティション分割情報に基づいて、現在のピクチャを復号化すること;を行わせる。
【図面の簡単な説明】
【0011】
開示する主題の更なる特徴、性質、及び様々な利点は、以下の詳細な説明及び添付の図面からより明らかになろう。
【
図1】一実施形態による通信システムの簡略化したブロック図の概略図である。
【
図2】一実施形態による通信システムの簡略化したブロック図の概略図である。
【
図3】一実施形態によるデコーダの簡略化したブロック図の概略図である。
【
図4】一実施形態によるエンコーダの簡略化したブロック図の概略図である。
【
図5A】一実施形態によるARCパラメータを信号通知するためのオプションの概略図である。
【
図5B】一実施形態によるARCパラメータを信号通知するためのオプションの概略図である。
【
図5C】一実施形態によるARCパラメータを信号通知するためのオプションの概略図である。
【
図5D】一実施形態によるARCパラメータを信号通知するためのオプションの概略図である。
【
図5E】一実施形態によるARCパラメータを信号通知するためのオプションの概略図である。
【
図6A】一実施形態による構文テーブルの例の概略図である。
【
図6B】一実施形態による構文テーブルの例の概略図である。
【
図7】一実施形態による、適応解像度変更を伴うスケーラビリティに関する予測構造の例である。
【
図9】一実施形態による、アクセスユニット毎のPOCサイクル及びアクセスユニットカウント値の解析及び復号化の簡略化したブロック図の概略図である。
【
図10】一実施形態による、マルチレイヤサブピクチャを含むビデオビットストリーム構造の概略図である。
【
図11】一実施形態による、選択したサブピクチャの解像度を高めた状態の表示の概略図である。
【
図12】一実施形態による、マルチレイヤサブピクチャを含むビデオビットストリームの復号化及び表示プロセスのブロック図である。
【
図13】一実施形態による、サブピクチャの拡張レイヤを含む360ビデオディスプレイの概略図である。
【
図14】一実施形態による、サブピクチャ及びその対応するレイヤ及びピクチャ予測構造のレイアウト情報の例である。
【
図15】一実施形態による、ローカル領域の空間スケーラビリティモダリティを備えた、サブピクチャ及びその対応するレイヤ及びピクチャ予測構造のレイアウト情報の例である。
【
図16A】実施形態による、サブピクチャレイアウト情報に関する構文テーブルの例である。
【
図16B】実施形態による、サブピクチャレイアウト情報に関する構文テーブルの例である。
【
図17】一実施形態による、サブピクチャレイアウト情報に関するSEIメッセージの構文テーブルの例である。
【
図18】一実施形態による、出力レイヤ及び各出力レイヤセットのプロファイル/層/レベル情報を示すための構文テーブルの例である。
【
図19】一実施形態による、各出力レイヤセットについて出力レイヤモードがオンであることを示す構文テーブルの例である。
【
図20】一実施形態による、各出力レイヤセットの各レイヤの現在のサブピクチャを示すための構文テーブルの例である。
【
図21】一実施形態による、サブピクチャ識別子を示すための構文テーブルの例である。
【
図22】一実施形態による、サブピクチャ・パーティション分割情報を示すための構文テーブルの例である。
【
図23】一実施形態による、符号化したビデオビットストリームを復号化するための例示的なプロセスのフローチャートである。
【
図24】一実施形態によるコンピュータシステムの概略図である。
【発明を実施するための形態】
【0012】
図1は、本開示の一実施形態による通信システム(100)の簡略化したブロック図を示している。システム(100)は、ネットワーク(150)を介して相互接続された少なくとも2つの端末(110~120)を含み得る。データの一方向送信の場合に、第1の端末(110)は、ローカル位置でビデオデータをコーディングして、ネットワーク(150)を介して他の端末(120)に送信するすることができる。第2の端末(120)は、ネットワーク(150)から他の端末のコーディングしたビデオデータを受信し、コーディングしたデータを復号化し、復元したビデオデータを表示させることができる。一方向データ送信は、メディアサービングアプリケーション等で一般的であり得る。
【0013】
図1は、例えば、ビデオ会議中に発生し得るコーディングしたビデオの双方向送信をサポートするために提供される端末の第2のペア(130、140)を示している。データの双方向送信の場合に、各端末(130、140)は、ローカル位置でキャプチャしたビデオデータをコーディングして、ネットワーク(150)を介して他の端末に送信することができる。各端末(130、140)はまた、他の端末によって送信されたコーディングしたビデオデータを受信し、コーディングしたデータを復号化し、復元したビデオデータをローカル表示装置に表示させることができる。
【0014】
図1において、端末(110~140)は、サーバ、パーソナルコンピュータ、及びスマートフォンとして示され得るが、本開示の原理は、そのようなものに限定されない場合がある。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレイヤ、及び/又は専用のビデオ会議機器を用いた用途を見出す。ネットワーク(150)は、例えば、有線及び/又は無線通信ネットワークを含む、端末(110~140)の間でコーディングしたビデオデータを伝える任意の数のネットワークを表す。通信ネットワーク(150)は、回線交換及び/又はパケット交換チャネルでデータを交換し得る。代表的なネットワークには、電気通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、及び/又はインターネットが含まれる。本議論の目的のために、ネットワーク(150)のアーキテクチャ及びトポロジーは、本明細書で以下に説明しない限り、本開示の動作にとって重要ではない可能性がある。
【0015】
図2は、開示する主題のアプリケーションの例として、ストリーミング環境におけるビデオエンコーダ及びデコーダの配置を示している。開示する主題は、例えば、ビデオ会議、デジタルテレビ、CD、DVD、メモリスティック等を含むデジタルメディアへの圧縮ビデオの保存を含む、他のビデオ対応アプリケーションに等しく適用することができる。
【0016】
ストリーミングシステムは、ビデオソース(201)、例えばデジタルカメラを含み得、例えば非圧縮ビデオサンプルストリーム(202)を作成するキャプチャサブシステム(213)を含み得る。符号化したビデオビットストリームと比較したときに大きいデータ量を強調するために太線で示されているそのサンプルストリーム(202)は、カメラ(201)に結合したエンコーダ(203)によって処理することができる。エンコーダ(203)は、以下でより詳細に説明するように、開示する主題の態様を可能にするか又は実装するために、ハードウェア、ソフトウェア、又はそれらの組合せを含むことができる。サンプルストリームと比較してより少ないデータ量を強調するために細線で示される符号化したビデオビットストリーム(204)は、将来の使用のためにストリーミングサーバ(205)に保存することができる。1つ又は複数のストリーミングクライアント(206、208)は、ストリーミングサーバ(205)にアクセスして、符号化したビデオビットストリーム(204)のコピー(207、209)を検索/取得することができる。クライアント(206)は、符号化したビデオビットストリーム(207)の着信コピーを復号化し、ディスプレイ(212)又は他のレンダリング装置(図示せず)上でレンダリングすることができる発信ビデオサンプルストリーム(211)を作成するビデオデコーダ(210)を含むことができる。いくつかのストリーミングシステムでは、ビデオビットストリーム(204、207、209)を特定のビデオコーディング/圧縮規格に従って符号化できる。これらの規格の例には、ITU-T勧告H.265が含まれる。開発中のビデオコーディング規格は、非公式にVersatile Video Coding、つまりVVCとして知られている。開示する主題は、VVCの文脈で使用され得る。
【0017】
図3は、本開示の一実施形態によるビデオデコーダ(210)の機能ブロック図であり得る。
【0018】
受信機(310)は、デコーダ(210)によって復号化される1つ又は複数のコーデックビデオシーケンスを受信することができ、同じ又は別の実施形態では、一度に1つのコーディングしたビデオシーケンスを受信することができ、各コーディングしたビデオシーケンスの復号化は、他のコーディングしたビデオシーケンスから独立している。コーディングしたビデオシーケンスは、チャネル(312)から受信することができ、チャネル(312)は、符号化したビデオデータを格納するストレージ装置へのハードウェア/ソフトウェアリンクであり得る。受信機(310)は、他のデータ、例えば、コーディングしたオーディオデータ及び/又は補助データストリームと共に符号化したビデオデータを受信することができ、この符号化したビデオデータは、それぞれの使用エンティティ(図示せず)に転送され得る。受信機(310)は、コーディングしたビデオシーケンスを他のデータから分離することができる。ネットワークジッタに対抗するために、バッファメモリ(315)を、受信機(310)とエントロピーデコーダ/パーサ(parser)(320)(以下、「パーサ」)との間に結合することができる。受信機(310)が十分な帯域幅及び可制御性のストア/転送装置から、又は等同期ネットワークからデータを受信しているときに、バッファ(315)は必要ないか、又は小さい可能性がある。インターネット等のベストエフォートパケットネットワークで使用するために、バッファ(315)は、必要とされる場合があり、比較的大きくすることができ、有利にサイズに適応することができる。
【0019】
ビデオデコーダ(210)は、エントロピーコーディングしたビデオシーケンスからシンボル(321)を再構成するためのパーサ(320)を含み得る。
図3に示されるように、これらのシンボルのカテゴリには、デコーダ(210)の動作を管理するために使用される情報と、デコーダの一体化部分ではないが、デコーダに結合することができるディスプレイ(212)等のレンダリング装置を制御するための潜在的な情報とが含まれる。レンダリング装置の制御情報は、補足強化情報(SEIメッセージ)又はビデオユーザビリティ情報(VUI)パラメータセットフラグメント(図示せず)の形式であり得る。パーサ(320)は、受信した、コーディングしたビデオシーケンスを解析及び/又はエントロピー復号化することができる。コーディングしたビデオシーケンスのコーディングは、ビデオコーディング技術又は規格に従うことができ、コンテキスト感度の有無にかかわらず可変長コーディング、Huffmanコーディング、算術コーディング等を含む当業者によく知られた原理に従うことができる。パーサ(320)は、グループに対応する少なくとも1つのパラメータに基づいて、コーディングしたビデオシーケンスから、ビデオデコーダ内のピクセルのサブグループのうちの少なくとも1つのサブグループのサブグループパラメータのセットを抽出することができる。サブグループには、ピクチャのグループ(GOP)、ピクチャ、サブピクチャ、タイル、スライス、ブリック、マクロブロック、コーディングツリーユニット(CTU)、コーディングユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)等を含むことができる。タイルは、ピクチャ内の特定のタイルの列及び行内のCU/CTUの長方形の領域を示し得る。ブリックは、特定のタイル内のCU/CTU行の長方形の領域を示し得る。スライスは、NALユニットに含まれる、ピクチャの1つ又は複数のブリックを示し得る。サブピクチャは、ピクチャ内の1つ又は複数のスライスの長方形の領域を示し得る。エントロピーデコーダ/パーサは、変換係数、量子化パラメータ値、動きベクトル等のようなコーディングしたビデオシーケンス情報から抽出することもできる。
【0020】
パーサ(320)は、バッファ(315)から受信したビデオシーケンスに対してエントロピー復号化及び/又は構文解析操作を実行して、シンボル(321)を作成することができる。
【0021】
シンボル(321)の再構成には、コーディングしたビデオピクチャ又はその一部のタイプ(インターピクチャ及びイントラピクチャ、インターブロック及びイントラブロック等)、及び他の要因に応じて、複数の異なるユニットが含まれる場合がある。どのユニットが関与し、どの様に関与するかは、パーサ(320)によってコーディングしたビデオシーケンスから解析したサブグループ制御情報によって制御することができる。パーサ(320)と以下の複数のユニットとの間のそのようなサブグループ制御情報のフローは、明確にするために描かれていない。
【0022】
既に述べた機能ブロックを超えて、デコーダ210は、以下に説明するように、概念的にいくつかの機能ユニットに細分化することができる。商業的制約の下で動作する実際の実施態様では、これらのユニットの多くは互いに密接に相互作用し、少なくとも部分的には互いに統合することができる。しかしながら、開示する主題を説明するために、以下の機能単位への概念的な細分化が適切である。
【0023】
第1のユニットは、スケーラー及び/又は逆変換ユニット(351)である。スケーラー及び/又は逆変換ユニット(351)は、量子化した変換係数、並びにどの変換を使用するか、ブロックサイズ、量子化係数、量子化スケーリング行列等を含む制御情報を、パーサ(320)からシンボル(321)として受け取る。そのユニットは、アグリゲータ(aggregator)(355)に入力できるサンプル値を含むブロックを出力できる。
【0024】
場合によっては、スケーラー及び/又は逆変換(351)の出力サンプルは、イントラコーディングブロック、つまり、以前に再構成したピクチャからの予測情報を使用しないが、現在のピクチャの以前に再構成した部分からの予測情報を使用できるブロックに関係する可能性がある。そのような予測情報は、イントラピクチャ予測ユニット(352)によって提供することができる。場合によっては、イントラピクチャ予測ユニット(352)は、現在の(部分的に再構成した)ピクチャ(358)からフェッチした周囲の既に再構成した情報を使用して、再構成中のブロックと同じサイズ及び形状のブロックを生成する。アグリゲータ(355)は、場合によっては、サンプル毎に、イントラ予測ユニット(352)が生成した予測情報を、スケーラー及び/又は逆変換ユニット(351)によって提供される出力サンプル情報に追加する。
【0025】
他の場合には、スケーラー及び/又は逆変換ユニット(351)の出力サンプルは、インターコーディングされ、潜在的に動き補償されたブロックに関係する可能性がある。そのような場合に、動き補償予測ユニット(353)は、参照ピクチャメモリ(357)にアクセスして、予測に使用されるサンプルをフェッチすることができる。ブロックに関連するシンボル(321)に従ってフェッチされたサンプルを動き補償した後に、これらのサンプルは、アグリゲータ(355)によって、出力サンプル情報を生成するために、スケーラー及び/又は逆変換ユニットの出力(この場合には残余サンプル又は残余信号と呼ばれる)に追加できる。動き補償ユニットが予測サンプルをフェッチする参照ピクチャメモリフォーム内のアドレスは、動きベクトルによって制御することができ、例えば、X、Y、及び参照ピクチャ成分を有し得るシンボル(321)の形態で動き補償ユニットに利用可能である。動き補償は、サブサンプルの正確な動きベクトルが使用されているときに参照ピクチャメモリからフェッチされたサンプル値の補間、動きベクトル予測メカニズム等を含むこともできる。
【0026】
アグリゲータ(355)の出力サンプルは、ループフィルタユニット(356)において様々なループフィルタリング技術の対象となる可能性がある。ビデオ圧縮技術は、コーディングしたビデオビットストリームに含まれるパラメータによって制御され、パーサ(320)からのシンボル(321)としてループフィルタユニット(356)に利用可能になるインループフィルタ技術を含むことができるが、コーディングしたピクチャ又はコーディングしたビデオシーケンスの以前の(復号化順で)部分の復号化中に取得したメタ情報、以前に再構成及びループフィルタリングしたサンプル値に応答することもできる。
【0027】
ループフィルタユニット(356)の出力は、サンプルストリームであり得、サンプルストリームは、レンダリング装置(212)に出力され得るだけでなく、将来のインターピクチャ予測で使用するために参照ピクチャメモリに格納され得る。
【0028】
完全に再構成された特定のコーディングしたピクチャは、将来の予測のための参照ピクチャとして使用できる。コーディングしたピクチャが完全に再構成され、コーディングしたピクチャが(例えば、パーサ(320)によって)参照ピクチャとして識別されると、現在の参照ピクチャ(358)は、参照ピクチャバッファ(357)の一部になることができ、次のコーディングしたピクチャの再構成を開始する前に、新しい現在のピクチャメモリを再割り当てすることができる。
【0029】
ビデオデコーダ210は、ITU-T Rec.H.265等の規格で文書化され得る所定のビデオ圧縮技術に従って復号化操作を実行することができる。コーディングしたビデオシーケンスは、ビデオ圧縮技術の文書又は規格、特にその文書化中にプロファイルで指定されているように、ビデオ圧縮技術又は規格の構文に準拠しているという意味で、使用されているビデオ圧縮技術又は規格によって指定されている構文に準拠し得る。また、コンプライアンスのために必要なのは、コーディングしたビデオシーケンスの複雑さが、ビデオ圧縮技術又は規格のレベルによって規定された範囲内にあることである。場合によっては、レベルによって、最大ピクチャサイズ、最大フレームレート、最大再構成サンプルレート(例えば、1秒あたりのメガサンプル数で測定される)、最大参照ピクチャサイズ等が制限される。場合によっては、レベルによって設定される制限は、仮想参照デコーダ(HRD)の仕様と、コーディングしたビデオシーケンスで信号通知されるHRDバッファ管理のメタデータによってさらに制限されることがある。
【0030】
一実施形態では、受信機(310)は、符号化したビデオと共に追加の(冗長な)データを受信することができる。追加のデータは、コーディングしたビデオシーケンスの一部として含まれ得る。追加のデータは、データを適切に復号化するため、及び/又は元のビデオデータをより正確に再構成するために、ビデオデコーダ(210)によって使用され得る。追加のデータは、例えば、時間的、空間的、又はSNR拡張レイヤ、冗長スライス、冗長ピクチャ、前方誤り訂正コード等の形式にすることができる。
【0031】
図4は、本開示の一実施形態によるビデオエンコーダ(203)の機能ブロック図であり得る。
【0032】
エンコーダ(203)は、エンコーダ(203)によってコーディングされるビデオ画像をキャプチャし得るビデオソース(201)(エンコーダの一部ではない)からビデオサンプルを受信することができる。
【0033】
ビデオソース(201)は、任意の適切なビット深さ(例えば、8ビット、10ビット、12ビット、・・・)、任意の色空間(例えば、BT.601 Y CrCb、RGB、・・・)、及び任意の適切なサンプリング構造(例えば、Y CrCb4:2:0、Y CrCb4:4:4)であり得るデジタルビデオサンプルストリームの形態で、エンコーダ(203)によってコーディングされるソースビデオシーケンスを提供することができる。メディアサービングシステムでは、ビデオソース(201)は、以前に準備したビデオを格納するストレージ装置であり得る。ビデオ会議システムでは、ビデオソース(203)は、ローカル画像情報をビデオシーケンスとしてキャプチャするカメラであり得る。ビデオデータは、順番に見たときに動きを与える複数の個別のピクチャとして提供することができる。ピクチャ自体は、ピクセルの空間アレイとして編成することができ、各ピクセルは、使用中のサンプリング構造、色空間等に応じて、1つ又は複数のサンプルを含むことができる。当業者は、ピクセル及びサンプルの間の関係を容易に理解することができる。以下の説明は、サンプルに焦点を当てている。
【0034】
一実施形態によれば、エンコーダ(203)は、リアルタイムで、又はアプリケーションによって必要とされる他の任意の時間制約の下で、ソースビデオシーケンスのピクチャをコーディングし、コーディングしたビデオシーケンス(443)に圧縮することができる。適切なコーディング速度を強制することは、コントローラ(450)の1つの機能である。コントローラは、以下に説明するように他の機能ユニットを制御し、これらのユニットに機能的に結合される。明確にするために、結合は描いていない。コントローラによって設定されるパラメータには、レート制御関連パラメータ(ピクチャスキップ、量子化器、レート歪み最適化技術のラムダ値等)、ピクチャサイズ、ピクチャのグループ(GOP)レイアウト、最大動きベクトル検索範囲等が含まれる。当業者は、特定のシステム設計のために最適化したビデオエンコーダ(203)に関係し得るので、コントローラ(450)の他の機能を容易に認識することができる。
【0035】
一部のビデオエンコーダは、当業者が「コーディングループ」として容易に認識する方法で動作する。過度に単純化した説明として、コーディングループは、エンコーダ(430)(以下、「ソースコーダ」)の符号化部分(コーディングされる入力ピクチャ及び参照ピクチャに基づいてシンボル作成を担当する)と、シンボルを再構成してサンプルデータを作成するエンコーダ(203)に埋め込まれた(ローカル)デコーダ(433)とから構成され、(リモート)デコーダもサンプルデータを作成する(シンボルとコーディングしたビデオビットストリームとの間の圧縮は、開示する主題で考慮されるビデオ圧縮技術では可逆であるため))。その再構成したサンプルストリームは、参照ピクチャメモリ(434)に入力される。シンボルストリームの復号化により、デコーダの場所(ローカル又はリモート)に関係なく正確なビット結果が得られるため、参照ピクチャバッファのコンテンツもローカルエンコーダとリモートエンコーダとの間で正確なビットになる。換言すると、エンコーダの予測部分は、復号化中に予測を使用するときにデコーダが「見る」のと全く同じサンプル値を参照ピクチャサンプルとして「見る」。参照ピクチャの同期性(及び、例えばチャネルエラーのために同期性を維持できない場合に生じるドリフト)のこの基本原理は、当業者によく知られている。
【0036】
「ローカル」デコーダ(433)の動作は、「リモート」デコーダ(210)の動作と同じであり得、これは、
図3に関連して上で既に詳細に説明している。しかしながら、
図4も簡単に参照すると、シンボルが利用可能であり、エントロピーコーダ(445)及びパーサ(320)によるコーディングしたビデオシーケンスへのシンボルの符号化及び/又は復号化は可逆であり得るので、チャネル(312)、受信機(310)、バッファ(315)、及びパーサ(320)を含むデコーダ(210)のエントロピー復号化部分は、ローカルデコーダ(433)に完全には実装されていない可能性がある。
【0037】
この時点で行うことができる所見は、デコーダに存在する構文解析及び/又はエントロピー復号化以外のデコーダ技術も、対応するエンコーダに実質的に同一の機能形態で必ず存在する必要があるということである。このため、開示する主題はデコーダ動作に焦点を当てている。エンコーダ技術の説明は、包括的に説明しているデコーダ技術の逆であるため、省略され得る。特定の領域でのみ、より詳細な説明が必要であり、以下に提供する。
【0038】
その動作の一部として、ソースコーダ(430)は、動き補償予測コーディングを実行することができ、この動き補償予測コーディングは、「参照フレーム」として指定された、ビデオシーケンスからの1つ又は複数の以前にコーディングしたフレームを参照して入力フレームを予測的にコーディングする。このようにして、コーディングエンジン(432)は、入力フレームのピクセルブロックと、入力フレームへの予測参照として選択され得る参照フレームのピクセルブロックとの間の差異をコーディングする。
【0039】
ローカルビデオデコーダ(433)は、ソースコーダ(430)によって作成されたシンボルに基づいて、参照フレームとして指定され得るフレームのコーディングしたビデオデータを復号化することができる。コーディングエンジン(432)の動作は、有利には、不可逆プロセスであり得る。コーディングしたビデオデータがビデオデコーダ(
図4には図示せず)で復号化され得る場合に、再構成したビデオシーケンスは、典型的には、いくつかのエラーを伴うソースビデオシーケンスの複製であり得る。ローカルビデオデコーダ(433)は、参照フレーム上でビデオデコーダによって実行され得る復号化プロセスを複製し、再構成した参照フレームを参照ピクチャキャッシュ(434)に格納させ得る。このようにして、エンコーダ(203)は、遠端ビデオデコーダによって取得される(送信エラーがない)再構成した参照フレームとして共通のコンテンツを有する再構成した参照フレームのコピーをローカルに格納することができる。
【0040】
予測器(435)は、コーディングエンジン(432)の予測検索を実行することができる。すなわち、コーディングされる新しいフレームについて、予測器(435)は、参照ピクチャメモリ(434)を検索して、新しいピクチャの適切な予測参照として役立ち得る、サンプルデータ(候補参照ピクセルブロックとして)又は参照ピクチャ動きベクトル、ブロック形状等の特定のメタデータを探すことができる。予測器(435)は、適切な予測参照を見つけるために、サンプルブロック/ピクセルブロック(sample block-by-pixel block)毎に動作することができる。場合によっては、予測器(435)によって得られた検索結果によって決定されるように、入力ピクチャは、参照ピクチャメモリ(434)に格納された複数の参照ピクチャから引き出された予測参照を有し得る。
【0041】
コントローラ(450)は、例えば、ビデオデータを符号化するために使用されるパラメータ及びサブグループパラメータの設定を含む、ビデオコーダ(430)のコーディング動作を管理することができる。
【0042】
前述の全ての機能ユニットの出力は、エントロピーコーダ(445)でエントロピーコーディングの対象になり得る。エントロピーコーダは、例えばHuffmanコーディング、可変長コーディング、算術コーディング等の当業者に知られている技術に従ってシンボルを可逆的に圧縮することによって、様々な機能ユニットによって生成されたシンボルをコーディングしたビデオシーケンスに変換する。
【0043】
送信機(440)は、エントロピーコーダ(445)によって作成されたコーディングしたビデオシーケンスをバッファリングして、そのコーディングしたビデオシーケンスを、符号化したビデオデータを格納するストレージ装置へのハードウェア/ソフトウェアリンクであり得る通信チャネル(460)を介した送信のために準備することができる。送信機(440)は、ビデオコーダ(430)からのコーディングしたビデオデータを、送信される他のデータ、例えばコーディングしたオーディオデータ及び/又は補助データストリーム(ソースは示していない)とマージすることができる。
【0044】
コントローラ(450)は、エンコーダ(203)の動作を管理することができる。コーディング中に、コントローラ(450)は、各コーディングピクチャに特定のコーディングピクチャタイプを割り当てることができ、このピクチャタイプは、それぞれのピクチャに適用され得るコーディング技術に影響を及ぼし得る。例えば、ピクチャは、大抵の場合に、次のフレームタイプのいずれかとして割り当てられ得る。
【0045】
イントラピクチャ(Iピクチャ)は、予測のソースとしてシーケンス内の他のフレームを使用せずに符号化及び復号化できるピクチャであり得る。一部のビデオコーデックでは、例えばIndependent Decoder Refresh Pictures等、様々なタイプのイントラピクチャを使用できる。当業者は、Iピクチャのそれらの変形及びそれらのそれぞれの用途及び特徴を知っている。
【0046】
予測ピクチャ(Pピクチャ)は、各ブロックのサンプル値を予測するために、最大で1つの動きベクトル及び参照インデックスを使用したイントラ予測又はインター予測を使用して符号化及び復号化できるピクチャであり得る。
【0047】
双方向予測ピクチャ(Bピクチャ)は、各ブロックのサンプル値を予測するために、最大2つの動きベクトル及び参照インデックスを使用したイントラ予測又はインター予測を使用して符号化及び復号化できるピクチャであり得る。同様に、複数の予測ピクチャは、単一のブロックの再構成のために3つ以上の参照ピクチャ及び関連するメタデータを使用できる。
【0048】
ソースピクチャは、通常、空間的に複数のサンプルブロック(例えば、それぞれ4×4、8×8、4×8、又は16×16サンプルのブロック)に細分割され、ブロック毎にコーディングされる。ブロックは、ブロックのそれぞれのピクチャに適用されるコーディング割り当てによって決定されるように、他の(既にコーディングされた)ブロックを参照して予測的にコーディングすることができる。例えば、Iピクチャのブロックは、非予測的にコーディングされる場合もあれば、同じピクチャの既にコーディングしたブロックを参照して予測的にコーディング(空間予測又はインター予測)される場合もある。Pピクチャのピクセルブロックは、空間予測によって、又は以前にコーディングした参照ピクチャを参照する時間予測によって、非予測的にコーディングされ得る。Bピクチャのブロックは、空間予測によって、又は以前にコーディングした1つ又は2つの参照ピクチャを参照する時間予測によって、非予測的にコーディングされ得る。
【0049】
ビデオコーダ(203)は、ITU-TRec.H.265等の所定のビデオコーディング技術又は規格に従ってコーディング操作を実行することができる。その動作において、ビデオコーダ(203)は、入力ビデオシーケンスにおける時間的及び空間的冗長性を利用する予測コーディング動作を含む、様々な圧縮操作を実行することができる。従って、コーディングしたビデオデータは、使用されているビデオコーディング技術又は規格によって指定された構文に準拠し得る。
【0050】
一実施形態では、送信機(440)は、符号化したビデオと共に追加のデータを送信することができる。ビデオコーダ(430)は、コーディングしたビデオシーケンスの一部としてそのようなデータを含み得る。追加のデータは、時間的/空間的/SNR拡張レイヤ、冗長なピクチャ及びスライス等の他の形式の冗長性データ、補足強化情報(SEI)メッセージ、視覚的ユーザビリティ情報(VUI)パラメータセットフラグメント等を含み得る。
【0051】
最近、圧縮したドメインの集約又は複数の意味的に独立したピクチャ部分の単一のビデオピクチャへの抽出が注目を集めている。特に、例えば360コーディング又は特定の監視アプリケーションの文脈では、複数の意味的に独立したソースピクチャ(例えば、立方体に投影された360シーンの6面体の表面、又はマルチカメラ監視セットアップの場合には個々のカメラ入力)は、所与の時点での様々なシーン毎のアクティビティに対処するために、個別の適応解像度設定を必要とする場合がある。換言すると、エンコーダは、所与の時点で、360又は監視シーン全体を構成する意味的に独立した様々なピクチャに対して様々なリサンプリング係数を使用することを選択できる。単一のピクチャに結合すると、次に、参照ピクチャのリサンプリングが実行され、コーディングしたピクチャの一部に対して適応解像度のコーディングシグナリングが利用可能である必要がある。
【0052】
下に、この説明の残りの部分で参照されるいくつかの用語を紹介する。
【0053】
サブピクチャは、場合によっては、サンプル、ブロック、マクロブロック、コーディングユニット、又は意味的にグループ化され、変更した解像度で独立してコーディングされ得る類似のエンティティの長方形の配置を指し得る。1つ又は複数のサブピクチャがピクチャを形成し得る。1つ又は複数のコーディングしたサブピクチャは、コーディングしたピクチャを形成し得る。1つ又は複数のサブピクチャをピクチャにアセンブルする(組み立てる)ことができ、1つ又は複数のサブピクチャをピクチャから抽出することができる。特定の環境では、1つ又は複数のコーディングしたサブピクチャが、サンプルレベルにトランスコーディングせずに圧縮ドメインでコーディングしたピクチャにアセンブルされ得、同じ又は他のケースでは、1つ又は複数のコーディングしたサブピクチャがコーディングしたピクチャから圧縮ドメインで抽出され得る。
【0054】
適応解像度変更(ARC)は、例えば参照ピクチャのリサンプリングによって、コーディングしたビデオシーケンス内のピクチャ又はサブピクチャの解像度の変更を可能にするメカニズムを指し得る。以降、ARCパラメータは、適応解像度変更を実行するために必要な制御情報を指し、これには、例えば、フィルタパラメータ、スケーリング係数、出力及び/又は参照ピクチャの解像度、様々な制御フラグ等が含まれ得る。
【0055】
実施形態では、符号化及び復号化は、単一の、意味的に独立したコーディングしたビデオピクチャに対して実行され得る。独立したARCパラメータを使用した複数のサブピクチャの符号化/復号化の意味と、その意味する追加の複雑性を説明する前に、ARCパラメータを信号通知するためのオプションについて説明する必要がある。
【0056】
図5A~
図5Eを参照すると、ARCパラメータを信号通知するためのいくつかの実施形態が示される。実施形態のそれぞれで述べるように、それら実施形態は、コーディング効率、複雑性、及びアーキテクチャの観点から、特定の利点及び特定の不利点を有し得る。ビデオコーディング規格又は技術は、ARCパラメータを信号通知するために、これらの実施形態のうちの1つ又は複数、又は関連技術から知られているオプションを選択することができる。実施形態は、互いに排他的ではなく、おそらく、アプリケーションのニーズ、関連する規格技術、又はエンコーダの選択に基づいて交換することができる。
【0057】
ARCパラメータのクラスには次のものが含まれる。
【0058】
- X次元及びY次元で分離又は結合した、アップサンプル及び/又はダウンサンプル係数。
【0059】
- 所与の数のピクチャに対して一定速度のズームイン/ズームアウトを示す時間次元が追加されたアップサンプル及び/又はダウンサンプル係数。
【0060】
- 上記の2つのいずれかは、係数を含むテーブルを指し得る1つ又は複数のおそらく短い構文要素のコーディングを伴う場合がある。
【0061】
- 組み合わされた又は個別の、入力ピクチャ、出力ピクチャ、参照ピクチャ、コーディングしたピクチャのサンプル、ブロック、マクロブロック、コーディングユニット(CU)、又は他の適切な粒度の単位の、X又はY次元の解像度。複数の解像度がある場合に(例えば、入力ピクチャのために1つ、参照ピクチャのために1つ等)、場合によっては、値のセットが別の値のセットから推測され得る。これは、例えばフラグを使用してゲート(gate)することができる。より詳細な例については、以下を参照されたい。
【0062】
- 「ワーピング」座標は、H.263Annex Pで使用されているものと同様であり、上記のように適切な粒度で示される。H.263Annex Pは、このようなワーピング座標をコーディングするための1つの効率的な方法を規定しているが、他の、潜在的により効率的な方法もおそらく考えられる。例えば、Annex Pのワーピング座標の可変長リバーシブル「Huffman」スタイルのコーディングは、適切な長さのバイナリコーディングに置き換えることができる。バイナリコードワードの長さは、最大ピクチャサイズの境界の外側で「ワープ」できるように、例えば、場合によっては特定の係数を乗算し、特定の値だけオフセットして、最大ピクチャサイズから導出できる。
【0063】
- アップサンプル及び/又はダウンサンプルフィルタパラメータ。実施形態では、アップサンプリング及び/又はダウンサンプリングのための単一のフィルタのみが存在し得る。しかしながら、実施形態では、フィルタ設計において柔軟性をより多くするのを可能にすることが望ましい場合があり、それは、フィルタパラメータのシグナリングを必要とし得る。このようなパラメータは、可能なフィルタ設計のリストのインデックスを介して選択でき、フィルタを完全に指定でき(例えば、適切なエントロピーコーディング技術を使用したフィルタ係数のリストを介して)、フィルタはアップサンプル及び/又はダウンサンプル比によって黙示的に選択でき、これらの比は、上記のメカニズムのいずれかに従って順番に信号通知される。
【0064】
以降、この説明は、コードワードで示される、アップサンプル及び/又はダウンサンプル係数(同じ係数がX次元とY次元との両方で使用される)の有限セットのコーディングを想定している。そのコードワードは、例えば、H.264及びH.265等のビデオコーディング仕様の特定の構文要素に共通のExt-Golombコードを使用して、可変長コーディングすることができる。アップサンプル及び/又はダウンサンプル係数への値の適切なマッピングの1つは、例えば、テーブル1に従うことができる。
【表1】
【0065】
アプリケーションのニーズと、ビデオ圧縮技術又は規格で利用可能なアップスケール及びダウンスケールメカニズムの機能に応じて、多くの同様のマッピングを案出できる。テーブルをさらに多くの値に拡張できる。値は、Ext-Golombコード以外のエントロピーコーディングメカニズム、例えばバイナリコーディングを使用して表すこともできる。これは、例えばMANEによって、ビデオ処理エンジン自体(エンコーダ及びデコーダが最も重要)の外部でリサンプリング係数が重要である場合に、特定の利点がある。解像度の変更が必要ない状況では、短いExt-Golombコードを選択でき、上記のテーブルでは、1ビットのみであることに留意されたい。これは、最も一般的なケースでバイナリコードを使用するよりもコーディング効率が優れている可能性がある。
【0066】
テーブル内のエントリの数、及びそれらのセマンティクスは、完全に又は部分的に構成可能であり得る。例えば、テーブルの基本的なアウトラインは、シーケンス又はデコーダパラメータセット等の「高」パラメータセットで伝達され得る。実施形態では、1つ又は複数のそのようなテーブルは、ビデオコーディング技術又は規格で規定され得、例えば、デコーダ又はシーケンスパラメータセットを介して選択され得る。
【0067】
以下に、上記のようにコーディングしたアップサンプル及び/又はダウンサンプル係数(ARC情報)をビデオコーディング技術又は規格の構文に含める方法について説明する。同様の考慮事項が、アップサンプル及び/又はダウンサンプルフィルタを制御する1つ又はいくつかのコードワードに適用され得る。フィルタ又は他のデータ構造に比較的大量のデータが必要な場合の説明については、以下を参照されたい。
【0068】
図5Aに示されるように、H.263Annex Pは、ピクチャヘッダ(501)への4つのワープ座標の形態で、具体的にはH.263 PLUSPTYPE(503)ヘッダ拡張でARC情報(502)を含む。これは、a)使用可能なピクチャヘッダがあり、b)ARC情報の頻繁な変更が予想される場合に、賢明な設計上の選択肢になる可能性がある。ただし、H.263スタイルのシグナリングを使用する場合のオーバーヘッドは非常に高くなる可能性があり、ピクチャヘッダは一時的な性質を有する可能性があるため、スケーリング係数はピクチャの境界に関係しない場合がある。
【0069】
図5Bに示されるように、JVCET-M135-v1は、ピクチャパラメータセット(504)に位置するARC参照情報(505)(インデックス)を含み、次に、シーケンスパラメータセット(507)内に位置するターゲット解像度(Res)を含むテーブル(506)にインデックスを付ける。シーケンスパラメータセット(507)のテーブル(506)に可能な解像度を配置することは、作成者の口頭での発言によれば、機能交換中の相互運用性ネゴシエーションポイントとしてSPSを使用することで正当化できる。解像度は、適切なピクチャパラメータセット(504)を参照することにより、テーブル(506)の値によって設定された制限内で、ピクチャからピクチャへと変化することができる。
【0070】
図5C~
図5Eを参照すると、以下の実施形態は、ビデオビットストリームでARC情報を伝達するために存在し得る。これらのオプションのそれぞれには、上記の実施形態に比べて特定の利点がある。実施形態は、同じビデオコーディング技術又は規格に同時に存在し得る。
【0071】
実施形態では、例えば、
図5Cに示される実施形態では、リサンプリング(ズーム)係数等のARC情報(509)が、スライスヘッダ、GOPヘッダ、タイルヘッダ、又はタイルグループヘッダに存在し得る。
図5Cは、タイルグループヘッダ(508)が使用される実施形態を示している。これは、例えば上で示したように、単一の可変長ue(v)又は数ビットの固定長コードワード等のARC情報が小さい場合に適している。タイルグループヘッダにARC情報を直接含むことには、ARC情報の追加の利点があり、ピクチャ全体ではなく、例えばそのタイルグループによって表されるサブピクチャに適用できる場合がある。以下も参照されたい。さらに、ビデオ圧縮技術又は規格がピクチャ全体の適応解像度の変更のみを想定している場合でも(例えば、タイルグループベースの適応解像度の変更とは対照的に)、ARC情報をタイルグループヘッダに配置することに対して、そのARC情報をH.263スタイルのピクチャヘッダに配置することは、エラー回復力の観点から特定の利点がある。
【0072】
実施形態では、例えば、
図5Dに示される実施形態では、ARC情報(512)自体は、例えば、ピクチャパラメータセット、ヘッダパラメータセット、タイルパラメータセット、適応パラメータセット等の適切なパラメータセットに存在し得る。
図5Dは、適応パラメータセット(511)が使用される実施形態を示している。そのパラメータセットの範囲は、有利には、ピクチャ、例えばタイルグループより大きくすることはできない。ARC情報の使用は、関連するパラメータセットのアクティブ化によって黙示的に行われる。例えば、ビデオコーディング技術又は規格がピクチャベースのARCのみを想定している場合に、ピクチャパラメータセット又は同等のものが適切な場合がある。
【0073】
実施形態では、例えば、
図5Eに示される実施形態では、ARC参照情報(513)は、タイルグループヘッダ(514)又は同様のデータ構造に存在し得る。その参照情報(513)は、単一のピクチャを超える範囲のパラメータセット(516)、例えばシーケンスパラメータセット又はデコーダパラメータセットで利用可能なARC情報(515)のサブセットを参照することができる。
【0074】
図6Aに示されるように、ピクチャの(おそらく長方形の)部分に適用可能なヘッダの例示的な構文構造としてのタイルグループヘッダ(601)は、条件付きで、可変長のExp-Golombコーディング構文要素dec_pic_size_idx(602)(太字で示される)を含むことができる。タイルグループヘッダ内のこの構文要素の存在は、適応解像度(603)を使用してゲートでき、ここでは、太字で示されていないフラグの値である。これはフラグが、ビットストリーム内の、構文解析図で発生するそのポイントに存在することを意味する。このピクチャ又はその一部に適応解像度が使用されているか否かは、ビットストリームの内部又は外部の任意の高レベルの構文構造で信号通知できる。示されている例では、それは、以下に概説するように、シーケンスパラメータセットで信号通知される。
【0075】
図6Bを参照すると、シーケンスパラメータセット(610)の抜粋も示されている。示される第1の構文要素は、adaptive_pic_resolution_change_flag(611)である。true(真)の場合に、そのフラグは適応解像度の使用を示すことができ、これにより特定の制御情報が必要になる場合がある。この例では、このような制御情報は、パラメータセット(612)及びタイルグループヘッダ(601)のif()ステートメントに基づくフラグの値に基づいて条件付きで存在する。
【0076】
適応解像度が使用される場合に、この例では、サンプル単位の出力解像度(613)がコーディングされる。数字613は、output_pic_width_in_luma_samplesとoutput_pic_height_in_luma_samplesとの両方を指し、これらを合わせて出力ピクチャの解像度を規定できる。ビデオコーディング技術又は規格の他の分野では、いずれかの値に対する特定の制限を規定できる。例えば、レベル規定により、出力サンプルの総数が制限される場合があり、これは、これら2つの構文要素の値の積である可能性がある。また、特定のビデオコーディング技術又は規格、或いはシステム規格等の外部技術又は規格は、番号付けの範囲(例えば、一方又は両方の次元が2の累乗で割り切れる必要がある)又はアスペクト比(例えば、幅及び高さの関係を4:3又は16:9等にする必要がある)を制限する場合がある。そのような制限は、ハードウェアの実装を容易にするために、又は他の理由で導入される可能性があり、当技術分野でよく知られている。
【0077】
特定のアプリケーションでは、エンコーダが、デコーダに、特定の参照ピクチャサイズを出力ピクチャサイズとして黙示的に想定するのではなく、その参照ピクチャサイズを使用するように指示することが望ましい。この例では、構文要素reference_pic_size_present_flag(614)は、参照ピクチャの寸法(615)(ここでも、数字は幅と高さとの両方を示す)の条件付き存在をゲートする。
【0078】
最後に、可能なピクチャの幅及び高さ復号化のテーブルが示されている。このようなテーブルは、例えば、テーブル指標(num_dec_pic_size_in_luma_samples_minus1)(616)で表すことができる。「minus1」は、その構文要素の値の解釈を参照できる。例えば、コーディングした値がゼロである場合に、1つのテーブルエントリが存在する。値が5の場合に、6つのテーブルエントリが存在する。次に、テーブル内の「行」毎に、復号化したピクチャの幅及び高さが構文(617)に含まれる。
【0079】
提示されるテーブルエントリ(617)は、タイルグループヘッダの構文要素dec_pic_size_idx(602)を使用してインデックスを付けることができ、これにより、タイルグループ毎に異なる復号化サイズ(実際にはズーム率)が可能になる。
【0080】
特定のビデオコーディング技術又は規格、例えばVP9は、空間スケーラビリティを可能にするために、時間スケーラビリティと組み合わせて特定の形式の参照ピクチャリサンプリング(開示する主題とは全く異なって信号通知される)を実装することによって空間スケーラビリティをサポートする。特に、特定の参照ピクチャは、ARCスタイルの技術を使用してより高い解像度にアップサンプリングされ、空間拡張レイヤのベースを形成し得る。これらのアップサンプリングされたピクチャは、高解像度で通常の予測メカニズムを使用して精緻化され、詳細を追加することができる。
【0081】
本明細書で議論する実施形態は、そのような環境で使用することができる。特定の場合に、同じ又は別の実施形態では、NALユニットヘッダの値、例えば、時間IDフィールドは、時間レイヤだけでなく空間レイヤも示すために使用され得る。そうすることで、特定のシステム設計に特定の利点がもたらされ得る。例えば、NALユニットヘッダの時間IDの値に基づいて時間レイヤ選択転送用に作成及び最適化した既存の選択転送ユニット(SFU)は、スケーラブルな環境で変更なしに使用できる。これを可能にするために、コーディングしたピクチャサイズと、NALユニットヘッダの時間IDフィールドによって示される時間レイヤとの間のマッピングが必要になる場合がある。
【0082】
一部のビデオコーディング技術では、アクセスユニット(AU)は、コーディングしたピクチャ、スライス、タイル、NALユニット等を参照でき、これらは、キャプチャされ、時間内の所与のインスタンスにおいてそれぞれのピクチャ、スライス、タイル、及び/又はNALユニットのビットストリームに構成される。時間内のそのインスタンスは、例えば、合成(composition)時間であり得る。
【0083】
HEVC及び他の特定のビデオコーディング技術では、ピクチャ順序カウント(POC)値を使用して、復号化したピクチャバッファ(DPB)に格納された複数の参照ピクチャの中から選択した参照ピクチャを示すことができる。アクセスユニット(AU)に1つ又は複数のピクチャ、スライス、又はタイルが含まれている場合に、同じAUに属する各ピクチャ、スライス、又はタイルは同じPOC値を有する場合があり、それにより、それらは、同じ合成時間のコンテンツから作成された推理される。換言すると、2つのピクチャ/スライス/タイルが同じ所与のPOC値を有しているシナリオでは、これは、同じAUに属し、同じ合成時間を有する2つのピクチャ/スライス/タイルを示している可能性がある。逆に、POC値が異なる2つのピクチャ/タイル/スライスは、それらのピクチャ/スライス/タイルが異なるAUに属し、合成時間が異なることを示している可能性がある。
【0084】
実施形態では、この厳密な関係は、アクセスユニットが異なるPOC値を有するピクチャ、スライス、又はタイルを含むことができるという点で緩和することができる。AU内で異なるPOC値を許可することにより、POC値を使用して、同じ表示時間で潜在的に独立して復号化可能なピクチャ/スライス/タイルを識別することが可能になる。これにより、以下でより詳細に説明するように、参照ピクチャ選択シグナリング、例えば参照ピクチャセットシグナリング又は参照ピクチャリストシグナリングを変更することなく、複数のスケーラブルレイヤのサポートを可能にし得る。
【0085】
しかしながら、POC値のみから、異なるPOC値を有する他のピクチャ/スライス/タイルに関して、ピクチャ/スライス/タイルが属するAUを識別できることが依然として望ましい。これは、以下に説明するように実現できる。
【0086】
実施形態では、アクセスユニットカウント(AUC)は、NALユニットヘッダ、スライスヘッダ、タイルグループヘッダ、SEIメッセージ、パラメータセット、又はAU区切り文字等の高レベルの構文構造で信号通知され得る。AUCの値は、どのNALユニット、ピクチャ、スライス、又はタイルが所与のAUに属するかを識別するために使用できる。AUCの値は、個別の合成時間インスタンスに対応し得る。AUC値は、POC値の倍数に等しくなり得る。POC値を整数値で除算することにより、AUC値を計算できる。場合によっては、除算演算がデコーダの実施態様に一定の負担をかける可能性がある。このような場合に、AUC値の番号付けスペースの制限が少ないので、除算演算をシフト演算に置き換えることができる。例えば、AUC値は、POC値範囲の最上位ビット(MSB)値と等しい場合がある。
【0087】
実施形態では、AUあたりのPOCサイクルの値(poc_cycle_au)は、NALユニットヘッダ、スライスヘッダ、タイルグループヘッダ、SEIメッセージ、パラメータセット、又はAU区切り文字等の高レベルの構文構造で信号通知され得る。poc_cycle_auは、同じAUに関連付けることができる異なる連続したPOC値の数を示し得る。例えば、poc_cycle_auの値が4に等しい場合に、POC値が0~3(境界を含む)に等しいピクチャ、スライス、又はタイルは、AUC値が0に等しいAUに関連付けられ、POC値が4~7(境界を含む)に等しいピクチャ、スライス、又はタイルは、AUC値が1に等しいAUに関連付けられ得る。このため、AUCの値は、POC値をpoc_cycle_auの値で除算することによって推測できる。
【0088】
実施形態では、poc_cycle_auの値は、例えば、ビデオパラメータセット(VPS)に位置する、コーディングしたビデオシーケンス内の空間レイヤ又はSNRレイヤの数を識別する情報から導出され得る。このような可能な関係の例を以下に簡単に説明する。上記のような導出は、VPSにおいて数ビットを節約し、このためコーディング効率を改善し得るが、いくつかの実施形態では、poc_cycle_auは、ピクチャ等のビットストリームの所与の小さな部分についてpoc_cycle_auを最小化できるように、ビデオパラメータセットより階層的に下の適切な高レベル構文構造で明示的にコーディングされ得る。この最適化は、POC値、及び/又はPOCを間接的に参照する構文要素の値が低レベルの構文構造でコーディングされ得るため、上記の派生プロセスで節約できるよりも多くのビットを節約できる。
【0089】
実施形態では、
図8は、コーディングしたビデオシーケンス内の全てのピクチャ/スライスに使用される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でvps_poc_cycle_auを信号通知することができる。この場合に、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で除算することによって計算できる。
【0090】
図9は、上記のプロセスの例を示すブロック図を示している。例えば、動作S910において、VPS(又はSPS)を解析することができ、動作S920において、復号化したビデオシーケンス内でAUあたりのPOCサイクルが一定であるかどうかを判定することができる。AUあたりのPOCサイクルが一定である場合に(動作S920で「はい」)、S930において、特定のアクセスユニットのアクセスユニットカウントの値は、コーディングしたビデオシーケンスに対して信号通知されたpoc_cycle_auと、特定のアクセスユニットのPOC値とから計算できる。AUあたりのPOCサイクルが一定でない場合に(動作S920で「いいえ」)、動作S940において、特定のアクセスユニットのアクセスユニットカウントの値は、ピクチャレベルで信号通知されたpoc_cycle_auと、特定のアクセスユニットのPOC値とから計算できる。動作S950において、新しいVPS(又はSPS)を解析できる。
【0091】
実施形態では、ピクチャ、スライス、又はタイルのPOCの値が異なっていても、同じAUC値を有するAUに対応するピクチャ、スライス、又はタイルは、同じ復号化又は出力時間インスタンスに関連付けられ得る。このため、同じAU内のピクチャ、スライス、又はタイルの間でのインター解析/復号化の依存関係がなくても、同じAUに関連付けられたピクチャ、スライス、又はタイルの全て又はサブセットを並行して復号化し、同時に出力することができる。
【0092】
実施形態では、ピクチャ、スライス、又はタイルのPOCの値が異なっていても、同じAUC値を有するAUに対応するピクチャ、スライス、又はタイルは、同じ合成/表示時間に関連付けられ得る。合成時間がコンテナ形式で含まれている場合に、ピクチャが異なるAUに対応していても、ピクチャの合成時間が同じであれば、ピクチャを同時に表示させることができる。
【0093】
実施形態では、各ピクチャ、スライス、又はタイルは、同じAU内に同じ時間識別子(temporal_id)を有することができる。時間インスタンスに対応するピクチャ、スライス、又はタイルの全て又はサブセットは、同じ時間サブレイヤに関連付けられ得る。実施形態では、各ピクチャ、スライス、又はタイルは、同じAU内で同じ又は異なる空間レイヤID(レイヤID)を有し得る。時間インスタンスに対応するピクチャ、スライス、又はタイルの全て又はサブセットは、同じ又は異なる空間レイヤに関連付けられ得る。
【0094】
図7は、temporal_id、layer_id、(適応解像度変更を伴う)POC及びAUC値の組合せを含むビデオシーケンス構造の例を示している。この例では、AUC=0の第1のAUのピクチャ、スライス、又はタイルは、temporal_id=0、及びlayer_id=0又は1である可能性があり、AUC=1の第2のAUのピクチャ、スライス、又はタイルは、temporal_id=1、及びlayer_id=0又は1である可能性がある。POCの値は、temporal_id及びlayer_idの値に関係なく、ピクチャ毎に1ずつ増加する。この例では、poc_cycle_auの値は2に等しくなり得る。実施形態では、poc_cycle_auの値は(空間スケーラビリティ)レイヤの数に等しく設定され得る。このため、この例では、POCの値が2だけ増加する一方、AUCの値が1だけ増加する。
【0095】
上記の実施形態では、インターピクチャ又はインターレイヤ予測構造及び参照ピクチャ指標の全て又はサブセットは、HEVCの既存の参照ピクチャセット(RPS)シグナリング又は参照ピクチャリスト(RPL)シグナリングを使用することによってサポートされ得る。RPS又はRPLでは、選択した参照ピクチャは、POCの値又は現在のピクチャと選択した参照ピクチャとの間のPOCのデルタ値を信号通知することによって示され得る。実施形態では、RPS及びRPLを使用して、シグナリングを変更することなく、しかし以下の制限を伴って、インターピクチャ又はインターレイヤ予測構造を示すことができる。参照ピクチャのtemporal_idの値が現在のピクチャのtemporal_idの値よりも大きい場合に、現在のピクチャは、動き補償又は他の予測に参照ピクチャを使用しない場合がある。参照ピクチャのlayer_idの値が現在のピクチャのlayer_idの値よりも大きい場合に、現在のピクチャは、動き補償又は他の予測に参照ピクチャを使用しない場合がある。
【0096】
実施形態では、時間的な動きベクトル予測のためのPOC差に基づく動きベクトルスケーリングは、アクセスユニット内の複数のピクチャに亘って無効にされ得る。このため、各ピクチャがアクセスユニット内で異なるPOC値を有し得るが、動きベクトルは、スケーリングされず、アクセスユニット内の時間的な動きベクトル予測に使用される。これは、同じAU内のPOCが異なる参照ピクチャは、同じ時間インスタンスを有する参照ピクチャと見なされるためである。従って、この実施形態では、参照ピクチャが現在のピクチャに関連付けられたAUに属する場合に、動きベクトルスケーリング関数は1を返すことができる。
【0097】
実施形態では、時間的な動きベクトル予測のためのPOC差に基づく動きベクトルスケーリングは、参照ピクチャの空間解像度が現在のピクチャの空間解像度と異なる場合に、複数のピクチャに亘ってオプションで無効にされ得る。動きベクトルのスケーリングが許可されている場合に、動きベクトルは、POC差と、現在のピクチャと参照ピクチャとの間の空間解像度比との両方に基づいてスケーリングされる。
【0098】
実施形態では、特にpoc_cycle_auが不均一な値を有する場合に(例えば、vps_contact_poc_cycle_per_au==0の場合に)、時間的な動きベクトル予測について、動きベクトルは、POC差ではなくAUC差に基づいてスケーリングされ得る。それ以外の場合に(例えば、vps_contant_poc_cycle_per_au==1の場合に)、AUC差に基づく動きベクトルのスケーリングは、POC差に基づく動きベクトルのスケーリングと同じになり得る。
【0099】
実施形態では、動きベクトルがAUC差に基づいてスケーリングされる場合に、現在のピクチャと同じAU(同じAUC値を有する)の参照動きベクトルは、AUC差に基づいてスケーリングされず、スケーリングなしで、又は現在のピクチャと参照ピクチャとの間の空間解像度比に基づくスケーリングありで、動きベクトル予測に使用される。
【0100】
実施形態では、AUC値は、AUの境界を識別するために使用され得、AUの粒度での入力及び出力タイミングを必要とする仮想参照デコーダ(HRD)動作に使用され得る。実施形態では、AUの最上位レイヤを有する復号化したピクチャは、表示のために出力され得る。AUC値及びlayer_id値は、出力ピクチャを識別するために使用できる。
【0101】
実施形態では、ピクチャは、1つ又は複数のサブピクチャを含み得る。各サブピクチャは、ピクチャのローカル領域又は領域全体をカバーし得る。サブピクチャによってサポートされる領域は、別のサブピクチャによってサポートされる領域とオーバーラップする場合とオーバーラップしない場合がある。1つ又は複数のサブピクチャによってカバーされる領域は、ピクチャの領域全体をカバーする場合とカバーしない場合がある。ピクチャがサブピクチャを含む場合に、サブピクチャによってサポートされる領域は、ピクチャによってサポートされる領域と同じであり得る。
【0102】
実施形態では、サブピクチャは、コーディングした画像に使用されるコーディング方法と同様のコーディング方法によってコーディングされ得る。サブピクチャは、独立してコーディングすることができ、又は別のサブピクチャ又はコーディングしたピクチャに依存してコーディングすることができる。サブピクチャは、別のサブピクチャ又はコーディングしたピクチャからの解析依存関係を有している場合と有していない場合がある。
【0103】
実施形態では、コーディングしたサブピクチャは、1つ又は複数のレイヤに含まれ得る。レイヤ内のコーディングしたサブピクチャは、異なる空間解像度を有し得る。元のサブピクチャは、空間的に再サンプリングされ(例えば、アップサンプリング又はダウンサンプリングされ)、異なる空間解像度パラメータでコーディングされ、レイヤに対応するビットストリームに含められ得る。
【0104】
実施形態では、(W、H)を有するサブピクチャ(Wはサブピクチャの幅を示し、Hはサブピクチャの高さを示す)は、コーディングされ、レイヤ0に対応するコーディングしたビットストリームに含められ得る一方、(W*Sw,k、H*Sh,k)を有する、元の空間解像度のサブピクチャからアップサンプリング(又はダウンサンプリング)されたサブピクチャは、コーディングされ、レイヤkに対応するコーディングしたビットストリームに含められ得、ここで、Sw,k、Sh,kは、水平方向及び垂直方向のリサンプリング比を示す。Sw,k、Sh,kの値が1より大きい場合に、リサンプリングはアップサンプリングであり得る。一方、Sw,k、Sh,kの値が1より小さい場合に、リサンプリングはダウンサンプリングであり得る。
【0105】
実施形態では、レイヤ内のコーディングしたサブピクチャは、同じサブピクチャ又は異なるサブピクチャの別のレイヤ内のコーディングしたサブピクチャの視覚的品質とは異なる視覚的品質を有し得る。例えば、レイヤn内のサブピクチャiは、量子化パラメータQi,nでコーディングされ得る一方、レイヤm内のサブピクチャjは、量子化パラメータQj,mでコーディングされ得る。
【0106】
実施形態では、レイヤ内のコーディングしたサブピクチャは、同じローカル領域の別のレイヤ内のコーディングしたサブピクチャからの解析又は復号化依存関係なしに、独立して復号化可能であり得る。同じローカル領域の別のサブピクチャレイヤを参照せずに独立して復号化可能であるサブピクチャレイヤは、独立型サブピクチャレイヤであり得る。独立型サブピクチャレイヤ内のコーディングしたサブピクチャは、同じサブピクチャレイヤ内の以前にコーディングしたサブピクチャからの復号化又は解析依存関係を有する場合と有さない場合があるが、コーディングしたサブピクチャは、別のサブピクチャレイヤ内のコーディングしたピクチャからの依存関係を有さない場合がある。
【0107】
実施形態では、レイヤ内のコーディングしたサブピクチャは、同じローカル領域の別のレイヤ内のコーディングしたサブピクチャからの任意の構文解析又は復号化依存関係を用いて、依存的に復号化可能であり得る。同じローカル領域の別のサブピクチャレイヤを参照することで依存的に復号化可能であり得るサブピクチャレイヤは、従属型サブピクチャレイヤであり得る。従属型サブピクチャ内のコーディングしたサブピクチャは、同じサブピクチャに属するコーディングしたサブピクチャ、同じサブピクチャレイヤ内の以前にコーディングしたサブピクチャ、又は両方の参照サブピクチャを参照し得る。
【0108】
実施形態では、コーディングしたサブピクチャは、1つ又は複数の独立型サブピクチャレイヤ、及び1つ又は複数の従属型サブピクチャレイヤを含み得る。しかしながら、少なくとも1つの独立型サブピクチャレイヤが、コーディングしたサブピクチャのために存在し得る。独立型サブピクチャレイヤのレイヤ識別子(layer_id)の値(NALユニットヘッダ又は別の高レベルの構文構造に存在し得る)は0に等しい場合がある。layer_idが0に等しいサブピクチャレイヤは、ベースサブピクチャレイヤであり得る。
【0109】
実施形態では、ピクチャは、1つ又は複数の前景サブピクチャ及び1つの背景サブピクチャを含み得る。背景サブピクチャによってサポートされる領域は、ピクチャの領域と等しくてもよい。前景サブピクチャによってサポートされる領域は、背景サブピクチャによってサポートされる領域とオーバーラップし得る。背景サブピクチャは、ベースサブピクチャレイヤであり得るが、前景サブピクチャは、非ベース(拡張)サブピクチャレイヤであり得る。1つ又は複数の非ベースサブピクチャレイヤは、復号化のために同じベースレイヤを参照し得る。layer_idがaに等しい非ベースサブピクチャレイヤは、layer_idがbに等しい非ベースサブピクチャレイヤを参照することができ、ここで、aはbよりも大きい。
【0110】
実施形態では、ピクチャは、背景サブピクチャを伴う又は伴わない1つ又は複数の前景サブピクチャを含み得る。各サブピクチャは、それ自体のベースサブピクチャレイヤと、1つ又は複数の非ベース(拡張)レイヤとを有し得る。各ベースサブピクチャレイヤは、1つ又は複数の非ベースサブピクチャレイヤによって参照され得る。layer_idがaに等しい各非ベースサブピクチャレイヤは、layer_idがbに等しい非ベースサブピクチャレイヤを参照することができ、ここで、aはbよりも大きい。
【0111】
実施形態では、ピクチャは、背景サブピクチャを伴う又は伴わない1つ又は複数の前景サブピクチャを含み得る。(ベース又は非ベース)サブピクチャレイヤ内の各コーディングしたサブピクチャは、同じサブピクチャに属する1つ又は複数の非ベースレイヤサブピクチャと、(同じサブピクチャに属していない)1つ又は複数の非ベースレイヤサブピクチャとによって参照され得る。
【0112】
実施形態では、ピクチャは、背景サブピクチャを伴う又は伴わない1つ又は複数の前景サブピクチャを含み得る。レイヤa内のサブピクチャは、同じレイヤ内の複数のサブピクチャにさらにパーティション分割され得る。レイヤb内の1つ又は複数のコーディングしたサブピクチャは、レイヤa内のパーティション分割したサブピクチャを参照することができる。
【0113】
実施形態では、コーディングしたビデオシーケンス(CVS)は、コーディングしたピクチャのグループであり得る。CVSは、1つ又は複数のコーディングしたサブピクチャシーケンス(CSPS)を含み得、ここで、CSPSは、ピクチャの同じローカル領域をカバーするコーディングしたサブピクチャのグループであり得る。CSPSは、コーディングしたビデオシーケンスの時間解像度と同じ又は異なる時間解像度を有し得る。
【0114】
実施形態では、CSPSは、コーディングされ、1つ又は複数のレイヤに含められ得る。CSPSには、1つ又は複数のCSPSレイヤを含めることができる。CSPSに対応する1つ又は複数のCSPSレイヤを復号化することにより、同じローカル領域に対応する一連のサブピクチャを再構成することができる。
【0115】
実施形態では、CSPSに対応するCSPSレイヤの数は、別のCSPSに対応するCSPSレイヤの数と同一であっても異なっていてもよい。
【0116】
実施形態では、CSPSレイヤは、別のCSPSレイヤとは異なる時間解像度(例えば、フレームレート)を有し得る。元の(圧縮していない)サブピクチャシーケンスは、時間的に再サンプリングされ(例えば、アップサンプリング又はダウンサンプリングされ)、異なる時間解像度パラメータでコーディングされ、レイヤに対応するビットストリームに含められ得る。
【0117】
実施形態では、フレームレートFを有するサブピクチャシーケンスは、コーディングされ、レイヤ0に対応するコーディングしたビットストリームに含められ得る一方、F*St,kを有する、元のサブピクチャシーケンスからの時間的にアップサンプリングされた(又はダウンサンプリングされた)サブピクチャシーケンスは、コーディングされ、レイヤkに対応するコーディングしたビットストリームに含められ得、ここで、St,kは、レイヤkの時間的サンプリング比を示す。St,kの値が1より大きい場合に、時間的リサンプリングプロセスはフレームレートアップ変換であり得る。一方、St,kの値が1より小さい場合に、時間的リサンプリングプロセスはフレームレートダウン変換であり得る。
【0118】
実施形態では、動き補償又は任意のインターレイヤ予測のために、CSPSレイヤaを有するサブピクチャがCSPSレイヤbを有するサブピクチャによって参照される場合であって、CSPSレイヤaの空間分解能がCSPSレイヤbの空間分解能と異なる場合に、CSPSレイヤa内の復号化したピクセルがリサンプリングされ、参照に使用される。リサンプリングプロセスでは、アップサンプリングフィルタリング又はダウンサンプリングフィルタリングを使用してもよい。
【0119】
図10は、layer_idが0に等しい背景ビデオCSPS及び複数の前景CSPSレイヤを含む例示的なビデオストリームを示している。コーディングしたサブピクチャは1つ又は複数のCSPSレイヤを含み得るが、前景CSPSレイヤに属さない背景領域は、ベースレイヤを含み得る。ベースレイヤには背景領域及び前景領域が含まれ得る一方、拡張CSPSレイヤには前景領域が含まれ得る。拡張CSPSレイヤは、同じ領域でベースレイヤよりも視覚的な品質が優れている場合がある。拡張CSPSレイヤは、同じ領域に対応する、ベースレイヤの再構成したピクセル及び動きベクトルを参照することができる。
【0120】
実施形態では、ベースレイヤに対応するビデオビットストリームはトラックに含められる一方、各サブピクチャに対応するCSPSレイヤは、ビデオファイル内の別個のトラックに含められる。
【0121】
実施形態では、ベースレイヤに対応するビデオビットストリームはトラックに含められる一方、同じlayer_idを有するCSPSレイヤは別個のトラックに含められる。この例では、レイヤkに対応するトラックには、レイヤkに対応するCSPSレイヤのみが含まれる。
【0122】
実施形態では、各サブピクチャの各CSPSレイヤは、別個のトラックに格納される。各トラックには、1つ又は複数の他のトラックからの解析又は復号化依存関係がある場合とない場合がある。
【0123】
実施形態では、各トラックは、サブピクチャの全て又はサブセットのCSPSレイヤのレイヤi~レイヤjに対応するビットストリームを含み得、ここで、0<i=<j=<kであり、kは、CSPSの最上位レイヤである。
【0124】
実施形態では、ピクチャは、深さマップ、アルファマップ、3Dジオメトリデータ、占有マップ等を含む1つ又は複数の関連メディアデータを含む。そのような関連する時限(timed)メディアデータは、1つ又は複数のデータサブストリームに分割することができ、各サブストリームが1つのサブピクチャに対応する。
【0125】
図11は、マルチレイヤサブピクチャ方式に基づくビデオ会議の例を示している。ビデオストリームには、背景ピクチャに対応する1つのベースレイヤビデオビットストリームと、前景サブピクチャに対応する1つ又は複数の拡張レイヤビデオビットストリームとが含まれる。各拡張レイヤのビデオビットストリームは、CSPSレイヤに対応し得る。ディスプレイでは、ベースレイヤに対応するピクチャがデフォルトで表示される。そのピクチャは、1人以上のユーザのピクチャインピクチャ(PIP: picture in a picture)を含む。クライアントの制御によって特定のユーザが選択されると、選択したユーザに対応する拡張CSPSレイヤが、復号化され、向上した品質又は空間解像度で表示され得る。
【0126】
図12は、上記のプロセスの例を示すブロック図を示している。例えば、動作S1210において、複数のレイヤを有するビデオビットストリームが復号化され得る。動作S1220において、背景領域及び1つ又は複数の前景サブピクチャが識別され得る。動作S1230において、特定のサブピクチャ領域、例えば前景サブピクチャのうちの1つが選択されるかどうかを判定することができる。特定のサブピクチャ領域が選択された場合に(動作S1240で「はい」)、拡張したサブピクチャが復号化されて表示され得る。特定のサブピクチャ領域が選択されない場合に(動作S1240で「いいえ」)、背景領域が復号化されて表示され得る。
【0127】
実施形態では、ネットワークミドルボックス(例えば、ルーター)は、その帯域幅に応じて、ユーザに送信するレイヤのサブセットを選択することができる。ピクチャ/サブピクチャの編成は、帯域幅の適応に使用できる。例えば、ユーザに帯域幅がない場合に、ルーターは、レイヤを削除するか、重要性のために、又は使用されているセットアップに基づいていくつかのサブピクチャを選択する。これは、帯域幅に採用するために動的に実行できる。
【0128】
図13は、360ビデオの使用例に関する実施形態を示している。球面360ピクチャ、例えばピクチャ1310が平面ピクチャに投影される場合に、投影360ピクチャは、ベースレイヤとして複数のサブピクチャにパーティション分割され得る。例えば、複数のサブピクチャは、後部サブピクチャ、上部サブピクチャ、右側サブピクチャ、左側サブピクチャ、前部サブピクチャ、及び下部サブピクチャを含み得る。特定のサブピクチャ、例えば前部サブピクチャの拡張レイヤは、コーディングされ、クライアントに送信され得る。デコーダは、全てのサブピクチャを含むベースレイヤと、選択したサブピクチャの拡張レイヤとの両方を復号化できる場合がある。現在のビューポートが選択したサブピクチャと同一である場合に、表示されるピクチャは、拡張レイヤを使用して復号化したサブピクチャでより高品質になり得る。それ以外の場合に、ベースレイヤで復号化したピクチャが低品質で表示される可能性がある。
【0129】
実施形態では、表示のための任意のレイアウト情報は、補足情報(SEIメッセージ又はメタデータ等)としてファイルに存在し得る。信号通知されたレイアウト情報に応じて、1つ又は複数の復号化したサブピクチャが再配置及び表示され得る。レイアウト情報は、ストリーミングサーバ又はブロードキャスターによって信号通知されるか、ネットワークエンティティ又はクラウドサーバによって再生成されるか、又はユーザのカスタマイズされた設定によって決定され得る。
【0130】
実施形態では、入力ピクチャが1つ又は複数の(長方形の)サブ領域に分割される場合に、各サブ領域は、独立したレイヤとしてコーディングされ得る。ローカル領域に対応する各独立レイヤは、一意のlayer_id値を有し得る。独立したレイヤ毎に、サブピクチャのサイズ及び位置情報が信号通知され得る。例えば、ピクチャサイズ(幅、高さ)、左上隅のオフセット情報(x_offset、y_offset)が信号通知され得る。
図14は、分割したサブピクチャのレイアウト、そのサブピクチャのサイズ及び位置情報、並びにそれに対応するピクチャ予測構造の例を示している。サブピクチャサイズ及びサブピクチャ位置を含むレイアウト情報は、パラメータセット、スライス又はタイルグループのヘッダ、又はSEIメッセージ等の高レベルの構文構造で信号通知され得る。
【0131】
実施形態では、独立したレイヤに対応する各サブピクチャは、AU内でその固有のPOC値を有し得る。DPBに格納したピクチャの中の参照ピクチャがRPS又はRPL構造の構文要素を使用して示される場合に、レイヤに対応する各サブピクチャのPOC値が使用され得る。
【0132】
実施形態では、(インターレイヤ)予測構造を示すために、layer_idを使用することはできず、POC(デルタ)値が使用され得る。
【0133】
実施形態では、レイヤ(又はローカル領域)に対応するNに等しいPOC値を有するサブピクチャを、動き補償予測のための同じレイヤ(又は同じローカル領域)に対応する、N+Kに等しいPOC値を有するサブピクチャの参照ピクチャとして使用しても使用しなくてもよい。殆どの場合に、数Kの値は、(独立した)レイヤの最大数に等しくなる可能性があり、これは、サブ領域の数と同じになる可能性がある。
【0134】
実施形態では、
図15は、
図14の拡張したケースを示している。入力ピクチャが複数(例えば4つ)のサブ領域に分割される場合に、各ローカル領域は1つ又は複数のレイヤでコーディングすることができる。この場合に、独立したレイヤの数はサブ領域の数に等しくてもよく、1つ又は複数のレイヤがサブ領域に対応し得る。こうして、各サブ領域は、1つ又は複数の独立したレイヤ及び0又は複数の従属レイヤでコーディングすることができる。
【0135】
実施形態では、
図15では、入力ピクチャは4つのサブ領域に分割され得る。一例として、右上のサブ領域は、レイヤ1及びレイヤ4である2つのレイヤとしてコーディングされ得る一方、右下のサブ領域は、レイヤ3及びレイヤ5である2つのレイヤとしてコーディングされ得る。この場合に、レイヤ4は、動き補償された予測のためにレイヤ1を参照し得る一方、レイヤ5は、動き補償のためにレイヤ3を参照し得る。
【0136】
実施形態では、レイヤ境界を横切るインループ(in-loop)フィルタリング(デブロッキングフィルタリング、適応インループフィルタリング、リシェーパー、バイラテラルフィルタリング、又は任意の深層学習ベースのフィルタリング等)を(オプションで)無効にすることができる。
【0137】
実施形態では、レイヤ境界を横切る動き補償予測又はイントラブロックコピーを(オプションで)無効にすることができる。
【0138】
実施形態では、サブピクチャの境界での動き補償予測又はインループフィルタリングのための境界パディングは、オプションで処理され得る。境界パディングが処理されるか否かを示すフラグは、パラメータセット(VPS、SPS、PPS、又はAPS)、スライス又はタイルグループヘッダ、SEIメッセージ等の高レベルの構文構造で信号通知され得る。
【0139】
実施形態では、サブ領域(又はサブピクチャ)のレイアウト情報は、VPS又はSPSで信号通知され得る。
図16Aは、VPSにおける構文要素の例を示し、
図16Bは、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の値は、それぞれ入力ピクチャの幅及び高さに等しい場合がある。
【0140】
実施形態では、vps_full_pic_width_in_luma_samples及びvps_full_pic_height_in_luma_samplesの値は、復号化には使用できないが、合成及び表示には使用できる。
【0141】
実施形態では、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で信号通知され得る。
【0142】
実施形態では、サブ領域の左上隅の位置情報(pic_offset_x、pic_offset_y)は、復号化に使用することはできないが、合成及び表示には使用できる。
【0143】
実施形態では、入力ピクチャの全て又はサブセットのサブ領域のレイアウト情報(サイズ及び位置)、レイヤ同士の間の依存関係情報は、パラメータセット又はSEIメッセージで信号通知され得る。
図17は、サブ領域のレイアウト、レイヤ同士の間の依存関係、及びサブ領域と1つ又は複数のレイヤとの間の関係の情報を示すための構文要素の例を示している。この例では、構文要素num_sub_regionは、現在のコーディングしたビデオシーケンス内の(長方形の)サブ領域の数を示す。構文要素num_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番目のサブ領域の幅及び高さを示す。
【0144】
実施形態では、プロファイル層(tier)レベル情報の有無にかかわらず出力される1つ又は複数のレイヤの1つを示すために出力レイヤセットを指定する1つ又は複数の構文要素は、高レベルの構文構造、例えばVPS、DPS、SPS、PPS、APS、又はSEIメッセージで信号通知され得る。
図18を参照すると、VPSを参照するコーディングしたビデオシーケンス内の出力レイヤセット(OLS)の数を示す構文要素num_output_layer_setsは、VPSで信号通知され得る。出力レイヤセット毎に、output_layer_flagは出力レイヤの数と同じ数だけ信号通知され得る。
【0145】
実施形態では、1に等しいoutput_layer_flag[i]は、i番目のレイヤが出力されることを指定する。0に等しいvps_output_layer_flag[i]は、i番目のレイヤが出力されないことを指定する。
【0146】
実施形態では、各出力レイヤセットのプロファイル層レベル情報を指定する1つ又は複数の構文要素は、高レベルの構文構造、例えばVPS、DPS、SPS、PPS、APS、又はSEIメッセージで信号通知され得る。引き続き
図18を参照すると、VPSを参照するコーディングしたビデオシーケンス内のOLS毎のプロファイル層レベル情報の数を示す構文要素num_profile_title_levelは、VPSで信号通知され得る。各出力レイヤセットについて、プロファイル層レベル情報の構文要素のセット、又はプロファイル層レベル情報のエントリの中の特定のプロファイル層レベル情報を示すインデックスは、出力レイヤの数と同じ数だけ信号通知され得る。
【0147】
実施形態では、profile_tier_level_idx[i][j]は、i番目のOLSのj番目のレイヤに適用されるprofile_tier_level()構文構造の、VPS内のprofile_tier_level()構文構造のリストへのインデックスを指定する。
【0148】
実施形態では、
図19を参照すると、最大レイヤの数が1より大きい場合に(vps_max_layers_minus1>0)、構文要素num_profile_tile_level及び/又はnum_ouput_layer_setsが信号通知され得る。
【0149】
実施形態では、
図19を参照すると、i番目の出力レイヤセットの出力レイヤシグナリングのモードを示す構文要素vps_output_layers_mode[i]は、VPSに存在し得る。
【0150】
実施形態では、0に等しいvps_output_layers_mode[i]は、最上位レイヤのみがi番目の出力レイヤ設定で出力されることを指定する。1に等しいvps_output_layer_mode[i]は、全てのレイヤがi番目の出力レイヤセットで出力されることを指定する。2に等しいvps_output_layer_mode[i]は、出力されるレイヤが、1に等しいvps_output_layer_flag[i][j]で、i番目の出力レイヤが設定されているレイヤであることを指定する。多くの値が予約され得る。
【0151】
実施形態では、output_layer_flag[i][j]は、i番目の出力レイヤセットのvps_output_layers_mode[i]の値に応じてシグナリングされる場合とされない場合がある。
【0152】
実施形態では、
図19を参照すると、フラグvps_ptl_signal_flag[i]は、i番目の出力レイヤセットに対して存在し得る。vps_ptl_signal_flag[i]の値に応じて、i番目の出力レイヤセットのプロファイル層レベルの情報が信号通知される場合とされない場合がある。
【0153】
実施形態では、
図20を参照すると、現在のCVSにおけるサブピクチャの数、max_subpics_minus1は、高レベルの構文構造、例えばVPS、DPS、SPS、PPS、APS、又はSEIメッセージで信号通知され得る。
【0154】
実施形態では、
図20を参照すると、サブピクチャの数が1より大きい場合に(max_subpics_minus1>0)、i番目のサブピクチャのサブピクチャ識別子sub_pic_id[i]が信号通知され得る。
【0155】
実施形態では、各出力レイヤセットの各レイヤに属するサブピクチャ識別子を示す1つ又は複数の構文要素は、VPSで信号通知され得る。
図20を参照すると、sub_pic_id_layer[i][j][k]は、i番目の出力レイヤセットのj番目のレイヤに存在するk番目のサブピクチャを示す。この情報を用いて、デコーダは、特定の出力レイヤセットの各レイヤについてどのサブピクチャを復号化及び出力し得るかを認識することができる。
【0156】
一実施形態では、ピクチャヘッダ(PH)は、コーディングしたピクチャの全てのスライスに適用される構文要素を含む構文構造である。ピクチャユニット(PU)は、指定された分類ルールに従って相互に関連付けられ、復号化順に連続し、正確に1つのコーディングしたピクチャを含むNALユニットのセットである。PUは、ピクチャヘッダ(PH)と、コーディングしたピクチャを構成する1つ又は複数のVCL NALユニットとを含み得る。
【0157】
一実施形態では、SPS(RBSP)は、それが参照される前に復号化プロセスに利用可能であり、TemporalIdが0に等しい少なくとも1つのAUに含められるか、又は外部手段によって提供され得る。
【0158】
一実施形態では、SPS(RBSP)は、それが参照される前に復号化プロセスに利用可能であり、CVS(SPSを参照する1つ又は複数のPPSを含む)内のTemporalIdが0に等しい少なくとも1つのAUに含められるか、又は外部手段によって提供され得る。
【0159】
一実施形態では、SPS(RBSP)は、それが1つ又は複数のPPSによって参照される前に復号化プロセスに利用可能であり、CVS(SPSを参照する1つ又は複数のPPSを含む)内のSPS NALユニットを参照するPPS NALユニットの最小のnuh_layer_id値に等しいnuh_layer_idを有する少なくとも1つのPUに含められるか、又は外部手段によって提供され得る。
【0160】
一実施形態では、SPS(RBSP)は、それが1つ又は複数のPPSによって参照される前に復号化プロセスに利用可能であり、0に等しいTemporalId、及びSPS NALユニットを参照するPPS NALユニットの最小のnuh_layer_id値に等しいnuh_layer_idを有する少なくとも1つのPUに含められるか、又は外部手段によって提供され得る。
【0161】
一実施形態では、SPS(RBSP)は、それが1つ又は複数のPPSによって参照される前に復号化プロセスに利用可能であり、0に等しいTemporalId、及びCVS(SPSを参照する1つ又は複数のPPSを含む)内のSPS NALユニットを参照するPPS NALユニットの最小のnuh_layer_id値に等しいnuh_layer_idを有する少なくとも1つのPUに含められるか、又は外部手段によって提供され得る。
【0162】
同じ又は別の実施形態では、pps_seq_parameter_set_idは、参照されるSPSのsps_seq_parameter_set_idの値を指定することができる。pps_seq_parameter_set_idの値は、CLVS内のコーディングしたピクチャによって参照される全てのPPSで同じであり得る。
【0163】
同じ又は別の実施形態では、CVS内のsps_seq_parameter_set_idの特定の値を有する全てのSPS NALユニットは、同じコンテンツを有し得る。
【0164】
同じ又は別の実施形態では、nuh_layer_id値に関係なく、SPS NALユニットは、sps_seq_parameter_set_idの同じ値空間を共有することができる。
【0165】
同じ又は別の実施形態では、SPS NALユニットのnuh_layer_id値は、SPS NALユニットを参照するPPS NALユニットの最小のnuh_layer_id値に等しくてもよい。
【0166】
一実施形態では、mに等しいnuh_layer_idを有するSPSが、nに等しいnuh_layer_idを有する1つ又は複数のPPSによって参照される場合に、mに等しいnuh_layer_idを有するレイヤは、nに等しいnuh_layer_idを有するレイヤ、又はmに等しいnuh_layer_idを有するレイヤの(直接又は間接の)参照レイヤと同じであり得る。
【0167】
一実施形態では、PPS(RBSP)は、それが参照される前に復号化プロセスに利用可能であり、PPS NALユニットのTemporalIdに等しいTemporalIdを有する少なくとも1つのAUに含められるか、又は外部手段によって提供され得る。
【0168】
一実施形態では、PPS(RBSP)は、それが参照される前に復号化プロセスに利用可能であり、CVS(PPSを参照する1つ又は複数のPH(又はコーディングしたスライスNALユニット)を含む)内のPPS NALユニットのTemporalIdに等しいTemporalIdを有する少なくとも1つのAUに含められるか、又は外部手段によって提供され得る。
【0169】
一実施形態では、PPS(RBSP)は、それが1つ又は複数のPH(又はコーディングしたスライスNALユニット)によって参照される前に復号化プロセスに利用可能であり、CVS(PPSを参照する1つ又は複数のPH(又はコーディングしたスライスNALユニット)を含む)内のPPS NALユニットを参照するコーディングしたスライスNALユニットの最小のnuh_layer_id値に等しいnuh_layer_idを有する少なくとも1つのPUに含められるか、又は外部手段によって提供され得る。
【0170】
一実施形態では、PPS(RBSP)は、それが1つ又は複数のPH(又はコーディングしたスライスNALユニット)によって参照される前に復号化プロセスに利用可能であり、PPS NALユニットのTemporalIdに等しいTemporalId、及びCVS(PPSを参照する1つ又は複数のPH(又はコーディングしたスライスNALユニット)を含む)内のPPS NALユニットを参照するコーディングしたスライスNALユニットの最小のnuh_layer_id値に等しいnuh_layer_idを有する少なくとも1つのPUに含められるか、又は外部手段によって提供され得る。
【0171】
同じ又は別の実施形態では、PHのph_pic_parameter_set_idは、使用中に参照されるPPSのpps_pic_parameter_set_idの値を指定することができる。pps_seq_parameter_set_idの値は、CLVS内のコーディングしたピクチャによって参照される全てのPPSで同じであり得る。
【0172】
同じ又は別の実施形態では、PU内のpps_pic_parameter_set_idの特定の値を有する全てのPPS NALユニットは同じコンテンツを有し得る。
【0173】
同じ又は別の実施形態では、nuh_layer_id値に関係なく、PPS NALユニットは、pps_pic_parameter_set_idの同じ値空間を共有することができる。
【0174】
同じ又は別の実施形態では、PPS NALユニットのnuh_layer_id値は、NALユニットを参照し、PPS NALユニットを参照するコーディングしたスライスNALユニットの最小のnuh_layer_id値に等しくてもよい。
【0175】
一実施形態では、mに等しいnuh_layer_idを有するPPSが、nに等しいnuh_layer_idを有する1つ又は複数のコーディングしたスライスNALユニットによって参照される場合に、mに等しいnuh_layer_idを有するレイヤは、nに等しいnuh_layer_idを有するレイヤ、又はmに等しいnuh_layer_idを有するレイヤの(直接又は間接の)参照レイヤと同じであり得る。
【0176】
一実施形態では、PPS(RBSP)は、それが参照される前に復号化プロセスに利用可能であり、PPS NALユニットのTemporalIdに等しいTemporalIdを有する少なくとも1つのAUに含められるか、又は外部手段によって提供され得る。
【0177】
一実施形態では、PPS(RBSP)は、それが参照される前に復号化プロセスに利用可能であり、CVS(PPSを参照する1つ又は複数のPH(又はコーディングしたスライスNALユニット)を含む)内のPPS NALユニットのTemporalIdに等しいTemporalIdを有する少なくとも1つのAUに含められるか、又は外部手段によって提供され得る。
【0178】
一実施形態では、PPS(RBSP)は、それが1つ又は複数のPH(又はコーディングしたスライスNALユニット)によって参照される前に復号化プロセスに利用可能であり、CVS(PPSを参照する1つ又は複数のPH(又はコーディングしたスライスNALユニット)を含む)内のPPS NALユニットを参照するコーディングしたスライスNALユニットの最小のnuh_layer_id値に等しいnuh_layer_idを有する少なくとも1つのPUに含められるか、又は外部手段によって提供され得る。
【0179】
一実施形態では、PPS(RBSP)は、それが1つ又は複数のPH(又はコーディングしたスライスNALユニット)によって参照される前に復号化プロセスに利用可能であり、PPS NALユニットのTemporalIdに等しいTemporalId、及びCVS(PPSを参照する1つ又は複数のPH(又はコーディングしたスライスNALユニット)を含む)内のPPS NALユニットを参照するコーディングしたスライスNALユニットの最小nuh_layer_id値に等しいnuh_layer_idを有する少なくとも1つのPUに含められるか、又は外部手段によって提供され得る。
【0180】
同じ又は別の実施形態では、PHのph_pic_parameter_set_idは、使用中に参照されるPPSのpps_pic_parameter_set_idの値を指定することができる。pps_seq_parameter_set_idの値は、CLVS内のコーディングしたピクチャによって参照される全てのPPSで同じであり得る。
【0181】
同じ又は別の実施形態では、PU内のpps_pic_parameter_set_idの特定の値を有する全てのPPS NALユニットは同じコンテンツを有し得る。
【0182】
同じ又は別の実施形態では、nuh_layer_id値に関係なく、PPS NALユニットはpps_pic_parameter_set_idの同じ値空間を共有することができる。
【0183】
同じ又は別の実施形態では、PPS NALユニットのnuh_layer_id値は、NALユニットを参照し、PPS NALユニットを参照するコーディングしたスライスNALユニットの最小のnuh_layer_id値に等しくてもよい。
【0184】
一実施形態では、mに等しいnuh_layer_idを有するPPSが、nに等しいnuh_layer_idを有する1つ又は複数のコーディングしたスライスNALユニットによって参照される場合に、mに等しいnuh_layer_idを有するレイヤは、nに等しいnuh_layer_idを有するレイヤ、又はmに等しいnuh_layer_idを有するレイヤの(直接又は間接の)参照レイヤと同じであり得る。
【0185】
一実施形態では、
図21に示されるように、ピクチャパラメータセット内のpps_subpic_id[i]は、i番目のサブピクチャのサブピクチャiDを指定することができる。pps_subpic_id[i]構文要素の長さはpps_subpic_id_len_minus1+1ビットである。
【0186】
変数SubpicIdVal[i]は、0からsps_num_subpics_minus1までの範囲(境界を含む)のiの値毎に、次のように導出できる。
【数1】
【0187】
同じ又は別の実施形態では、0からsps_num_subpics_minus1までの範囲(境界を含む)のi及びjの任意の2つの異なる値について、SubpicIdVal[i]はSubpicIdVal[j]と等しくない場合がある。
【0188】
同じ又は別の実施形態では、現在のピクチャがCLVSの最初のピクチャではない場合に、0からsps_num_subpics_minus1までの範囲(境界を含む)のiの各値について、SubpicIdVal[i]の値が同じレイヤ内の復号化順序での以前のピクチャのSubpicIdVal[i]の値に等しくない場合に、サブピクチャインデックスiを有する現在のピクチャ内のサブピクチャの全てのコーディングしたスライスNALユニットのnal_unit_typeは、IDR_W_RADLからCRA_NUTまでの範囲(境界を含む)の特定の値に等しい場合がある。
【0189】
同じ又は別の実施形態では、現在のピクチャがCLVSの最初のピクチャではない場合に、0からsps_num_subpics_minus1までの範囲(境界を含む)のiの各値について、SubpicIdVal[i]の値が同じレイヤ内の復号化順序での以前のピクチャのSubpicIdVal[i]の値に等しくない場合に、sps_independent_subpics_flagは1に等しくてもよい。
【0190】
同じ又は別の実施形態では、現在のピクチャがCLVSの最初のピクチャではない場合に、0からsps_num_subpics_minus1までの範囲(境界を含む)のiの各値について、SubpicIdVal[i]の値が同じレイヤ内の復号化順序での以前のピクチャのSubpicIdVal[i]の値に等しくない場合に、subpic_treated_as_pic_flag[i]及びloop_filter_across_subpic_enabled_flag[i]は1に等しくてもよい。
【0191】
同じ又は別の実施形態では、現在のピクチャがCLVSの最初のピクチャではない場合に、0からsps_num_subpics_minus1までの範囲(境界を含む)のiの各値について、SubpicIdVal[i]の値が同じレイヤ内の復号化順序での以前のピクチャのSubpicIdVal[i]の値に等しくない場合に、sps_independent_subpics_flagは1に等しくてもよく、又はsubpic_treated_as_pic_flag[i]及びloop_filter_across_subpic_enabled_flag[i]は1に等しくてもよい。
【0192】
同じ又は別の実施形態では、サブピクチャが別のサブピクチャを参照せずに独立してコーディングされる場合に、領域のサブピクチャ識別子の値は、コーディングしたビデオシーケンス内で変更され得る。
【0193】
実施形態では、ピクチャは、1つ又は複数のサブピクチャにパーティション分割することができる。各サブピクチャは、1つ又は複数のスライスにさらにパーティション分割することができる。サブピクチャ・パーティション分割情報を信号通知するには、効率的なシグナリング方式が望まれる。
【0194】
サンプルはCTBの単位で処理され得る。幅と高さとの両方での各ルマCTBのアレイサイズは、サンプル単位でCtbSizeYである。各クロマCTBのアレイの幅及び高さは、それぞれサンプル単位でCtbWidthC及びCtbHeightCである。各CTBには、イントラ又はインター予測及び変換コーディングのブロックサイズを識別するためのパーティションシグナリングが割り当てられる。パーティション分割は再帰的な4分木パーティション分割である。4分木のルート(root)はCTBに関連付けられる。4分木は、4分木リーフ(leaf)と呼ばれるリーフに到達するまで分割される。コンポーネントの幅がCTBサイズの整数でない場合に、コンポーネントの右側境界のCTBは不完全である。コンポーネントの高さがCTBサイズの整数倍でない場合に、コンポーネントの下部境界のCTBは不完全である。
【0195】
各サブピクチャの幅及び高さ情報は、SPSにおいてCtbSizeYの単位で信号通知され得る。
図22では、例えば、subpic_width_minus1[i]plus1は、CtbSizeYの単位でi番目のサブピクチャの幅を指定する。構文要素の長さは、Ceil(Log2((pic_width_max_in_luma_samples + CtbSizeY - 1) >>
CtbLog2SizeY))ビットである。存在しない場合に、subpic_width_minus1[i]の値は、((pic_width_max_in_luma_samples + CtbSizeY - 1) >> CtbLog2SizeY)― subpic_ctu_top_left_x[i] ― 1に等しいと推測される。subpic_height_minus1[i]plus1は、CtbSizeY単位でi番目のサブピクチャの高さを指定する。構文要素の長さは、Ceil(Log2((pic_height_max_in_luma_samples + CtbSizeY - 1) >>
CtbLog2SizeY))ビットである。存在しない場合に、subpic_height_minus1 [i]の値は、((pic_height_max_in_luma_samples + CtbSizeY - 1) >>
CtbLog2SizeY) ― subpic_ctu_top_left_y[i]
― 1に等しいと推測される。
【0196】
ピクチャの幅がCtbSizeY以上である場合に、各サブピクチャの幅はCtbSizeY以上になり得る。ピクチャの高さがCtbSizeY以上である場合に、各サブピクチャの高さは、CtbSizeY以上になり得る。
【0197】
ピクチャの幅がCtbSizeY以下であり、ピクチャの高さがCtbSizeY以下である場合に、ピクチャを複数のサブピクチャにパーティション分割することはできない。この場合に、サブピクチャの数は1に等しくなり得る。
【0198】
pic_width_max_in_luma_samplesがCtbSizeY以下であり、pic_height_max_in_luma_samplesがCtbSizeY以下である場合に、subpic_info_present_flagの値は0に等しくなり得る。subpic_info_present_flagが0に等しい場合に、サブピクチャ・パーティション分割情報には明示的なシグナリングは存在せず、ピクチャ内のサブピクチャの数は1に等しい。
【0199】
同じ又は別の実施形態では、sps_subpic_id_len_minus1 plus 1は、構文要素sps_subpic_id[i]、存在する場合に構文要素pps_subpic_id[i]、及び存在する場合に構文要素slice_subpic_idを表すために使用されるビット数を指定する。sps_subpic_id_len_minus1の値は、0から15まで(境界を含む)の範囲であり得る。1 << (sps_subpic_id_len_minus1)の値は、sps_num_subpics_minus1 + 1以上になり得る。
【0200】
同じ又は別の実施形態では、サブピクチャの数が1に等しい場合に、サブピクチャの幅及び高さの情報がピクチャの幅及び高さ情報に等しく、サブピクチャの左上の位置がその場合のピクチャの左上の位置に等しいので、subpic_info_present_flagは0に等しくなり得、サブピクチャ・パーティション分割情報が明示的に信号通知されない場合がある。
【0201】
例えば、subpic_ctu_top_left_x[i]は、CtbSizeYの単位でi番目のサブピクチャの左上のCTUの水平位置を指定する。構文要素の長さは、Ceil(Log2((pic_width_max_in_luma_samples + CtbSizeY - 1) >>
CtbLog2SizeY))ビットである。存在しない場合に、subpic_ctu_top_left_x[i]の値は、0に等しいと推測される。subpic_ctu_top_left_y[i]は、CtbSizeYの単位でi番目のサブピクチャの左上のCTUの垂直位置を指定する。構文要素の長さは、Ceil(Log2((pic_height_max_in_luma_samples + CtbSizeY - 1) >>
CtbLog2SizeY))ビットである。存在しない場合に、subpic_ctu_top_left_y[i]の値は、0に等しいと推測される。subpic_width_minus1[i] plus 1は、CtbSizeYの単位でi番目のサブピクチャの幅を指定する。構文要素の長さは、Ceil(Log2((pic_width_max_in_luma_samples + CtbSizeY - 1) >>
CtbLog2SizeY))ビットである。存在しない場合に、subpic_width_minus1[i]の値は、((pic_width_max_in_luma_samples + CtbSizeY - 1)) >>
CtbLog2SizeY) ― subpic_ctu_top_left_x[i] ― 1に等しいと推測される。subpic_height_minus1[i] plus 1は、CtbSizeY単位でi番目のサブピクチャの高さを指定する。構文要素の長さは、Ceil(Log2((pic_height_max_in_luma_samples + CtbSizeY - 1) >>
CtbLog2SizeY))ビットである。存在しない場合に、subpic_height_minus1[i]の値は、((pic_height_max_in_luma_samples + CtbSizeY - 1) >>
CtbLog2SizeY) ― subpic_ctu_top_left_y[i] ― 1に等しいと推測される。
【0202】
同じ又は別の実施形態では、サブピクチャの数が1より大きい場合に、
図22に示されるように、subpic_info_present_flagは、1に等しくてもよく、サブピクチャ・パーティション分割情報は、パラメータセットで明示的に通知され得る。
【0203】
例えば、
図22では、sps_num_subpics_minus2 plus 2は、CLVS内の各ピクチャのサブピクチャの数を指定する。sps_num_subpics_minus2の値は、0からCeil(pic_width_max_in_luma_samples ÷ CtbSizeY) *
Ceil(pic_height_max_in_luma_samples ÷ CtbSizeY) ― 2の範囲(境界を含む)になり得る。存在しない場合に、sps_num_subpics_minus2の値は0に等しいと推測される。
【0204】
同じ実施形態では、リストSubpicWidthInTiles[i]及びSubpicHeightInTiles[i]は、0からsps_num_subpics_minus1までの範囲(境界を含む)のiについて、タイルの列及び行でそれぞれi番目のサブピクチャの幅及び高さを指定する。また、リストsubpicHeightLessThanOneTileFlag[i]は、0からsps_num_subpics_minus1までの範囲(境界を含む)のiについて、i番目のサブピクチャの高さが1タイル行未満であるかどうかを指定し、次のように導出できる。
【数2】
【0205】
rect_slice_flagが1に等しい場合に、0からnum_slices_in_pic_minus1までの範囲(境界を含む)のiについてのリストNumCtusInSlice[i]は、i番目のスライスのCTUの数を指定し、0からnum_slices_in_pic_minus1の範囲(境界を含む)のiについてのリストSliceTopLeftTileIdx[i]は、スライスの最初のCTUを含むタイルのタイルインデックスを指定し、0からnum_slices_in_pic_minus1までの範囲(境界を含む)のiについて及び0からNumCtusInSlice[i]-1の範囲のjについての行列CtbAddrInSlice[i][j]は、i番目のスライス内のj番目のCTBのピクチャラスタースキャンアドレスを指定し、変数NumSlicesInTile[i]は、i番目のスライスを含むタイル内のスライス数を指定し、次のように導出できる。
【数3】
【0206】
図23は、符号化したビデオビットストリームを復号化するための例示的なプロセス2300のフローチャートである。いくつかの実施態様では、
図23の1つ又は複数のプロセスブロックは、デコーダ210によって実行され得る。いくつかの実施態様では、
図23の1つ又は複数のプロセスブロックは、エンコーダ203等のデコーダ210とは別の、又はデコーダ210を含む別の装置又は装置のグループによって実行され得る。
【0207】
図23に示されるように、プロセス2300は、現在のピクチャの少なくとも1つのサブピクチャの数が1より大きいことに基づいて、サブピクチャ・パーティション分割情報が明示的に信号通知されているかどうかを示すフラグを取得することを含み得る(ブロック2310)。実施形態では、第1のフラグは、subpic_info_present_flagに対応し得る。
【0208】
図23にさらに示されるように、プロセス2300は、サブピクチャ・パーティション分割情報が明示的に信号通知されていることを示すフラグに基づいて、サブピクチャ・パーティション分割情報を取得することを含み得る(ブロック2320)。
【0209】
図23にさらに示されるように、プロセス2300は、サブピクチャ・パーティション分割情報に基づいて現在のピクチャを復号化することを含み得る(ブロック2330)。
【0210】
実施形態では、フラグ及びサブピクチャ・パーティション分割情報は、シーケンスパラメータセット(SPS)で信号通知され得る。
【0211】
実施形態では、少なくとも1つのサブピクチャの数は、SPSで信号通知され得る。
【0212】
実施形態では、現在のピクチャのピクチャサイズが、現在のピクチャのルマ成分のコーディングツリーユニットのサイズよりも小さいことに基づいて、少なくとも1つのサブピクチャの数は1に等しい。現在のピクチャのルマ成分のコーディングツリーユニットのサイズは、CtbSizeYに対応し得る。
【0213】
実施形態では、少なくとも1つのサブピクチャの数が1に等しいことに基づいて、フラグは、サブピクチャ・パーティション分割情報が明示的に信号通知されていないことを示し得る。
【0214】
実施形態では、サブピクチャ・パーティション分割情報は、少なくとも1つのサブピクチャの中からサブピクチャのサイズを示し得る。
【0215】
実施形態では、サブピクチャのサイズは、サブピクチャの高さ及びサブピクチャの幅を含み得る。
【0216】
実施形態では、サブピクチャのサイズは、サブピクチャ・パーティション分割情報において、現在のピクチャのルマ成分のコーディングツリーユニットのサイズの単位で示され得る。現在のピクチャのルマ成分のコーディングツリーユニットのサイズは、CtbSizeYに対応し得る。
【0217】
実施形態では、別のサブピクチャのサイズは、サブピクチャ・パーティション分割情報によって示されるサブピクチャのサイズに基づいて決定することができる。
【0218】
図23が、プロセス2300の例示的なブロックを示しているが、いくつかの実施態様では、プロセス2300は、
図23に示されるものよりも追加のブロック、より少ないブロック、異なるブロック、又は異なる配置のブロックを含み得る。さらに又は代わりに、プロセス2300の2つ以上のブロックを並行して実施することができる。
【0219】
さらに、提案した方法は、処理回路(例えば、1つ又は複数のプロセッサ或いは1つ又は複数の集積回路)によって実施され得る。一例では、1つ又は複数のプロセッサは、非一時的なコンピュータ可読媒体に格納されるプログラムを実行して、提案した1つ又は複数の方法を実行する。
【0220】
上記の技術は、コンピュータ可読命令を使用してコンピュータソフトウェアとして実装され、1つ又は複数のコンピュータ可読媒体に物理的に格納され得る。例えば、
図24は、開示する主題の特定の実施形態を実施するのに適したコンピュータシステム2400を示している。
【0221】
コンピュータソフトウェアは、コンピュータ中央処理装置(CPU)、グラフィックス処理装置(GPU)等によって任意の適切なマシンコード又はコンピュータ言語を使用してコーディングすることができ、これは、直接又は解釈を通じてマイクロコードを実行できる命令を含むコードを作成するためのアセンブリ、コンパイル、リンク、又は同様のメカニズムの対象となり得る。
【0222】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲーム装置、モノのインターネット装置等を含む、様々なタイプのコンピュータ又はそのコンポーネント上で実行することができる。
【0223】
図24に示されるコンピュータシステム2400のコンポーネントは、本質的に例示的なものであり、本開示の実施形態を実施するコンピュータソフトウェアの使用範囲又は機能に関する制限を示唆することを意図するものではない。また、コンポーネントの構成は、コンピュータシステム2400の例示的な実施形態に示されるコンポーネントのいずれか1つ又は組み合わせに関連する依存関係又は要件を有すると解釈すべきではない。
【0224】
コンピュータシステム2400は、特定のヒューマンインターフェイス入力装置を含み得る。そのようなヒューマンインターフェイス入力装置は、例えば、触覚入力(キーストローク、スワイプ、データグローブの動き等)、音声入力(音声、拍手等)、視覚入力(ジェスチャー等)、嗅覚入力(図示せず)を通じて、1人又は複数の人間ユーザによる入力に応答することができる。ヒューマンインターフェイス装置は、オーディオ(音声、音楽、周囲の音等)、画像(スキャンした画像、静止画カメラから取得した写真画像等)、ビデオ(2次元ビデオ、立体ビデオを含む3次元ビデオ等)等、人間による意識的な入力に必ずしも直接関連しない特定のメディアをキャプチャするためにも使用できる。
【0225】
ヒューマンインターフェイス入力装置は、キーボード2401、マウス2402、トラックパッド2403、タッチスクリーン2410及び関連するグラフィックスアダプタ2450、データグローブ、ジョイスティック2405、マイク2406、スキャナ2407、カメラ2408(それぞれの1つのみが示される)の1つ又は複数を含み得る。
【0226】
コンピュータシステム2400は、特定のヒューマンインターフェイス出力装置も含み得る。そのようなヒューマンインターフェイス出力装置は、例えば、触覚出力、音、光、及び匂い/味覚を通して、1人又は複数の人間のユーザの感覚を刺激し得る。そのようなヒューマンインターフェイス出力装置は、触覚出力装置(例えば、タッチスクリーン2410、データグローブ、又はジョイスティック2405による触覚フィードバックであるが、入力装置として機能しない触覚フィードバック装置もあり得る)、音声出力装置(スピーカー2409、ヘッドホン(図示せず)等)、視覚出力装置(陰極線管(CRT)スクリーンを含むスクリーン2410、液晶ディスプレイ(LCD)スクリーン、プラズマスクリーン、有機発光ダイオード(OLED)スクリーン(それぞれタッチスクリーン入力機能の有無にかかわらず、それぞれ触覚フィードバック機能の有無にかかわらず、その中のいくつかは、ステレオグラフィック出力、仮想現実ガラス(図示せず)、ホログラフィックディスプレイ及びスモークタンク(図示せず)等の手段を通じて、2次元の視覚出力又は3次元以上の出力を出力できる)、及びプリンタ(図示せず)を含み得る。
【0227】
コンピュータシステム2400は、人間がアクセス可能な記憶装置及びそれらに関連する媒体、例えば、CD/DVDを備えたCD/DVDROM/RW2420を含む光媒体又は同様の媒体2421、サムドライブ2422、リムーバブルハードドライブ又はソリッドステートドライブ2423、テープ及びフロッピーディスク等のレガシー磁気媒体(図示せず)、セキュリティドングル等の特殊なROM/ASIC/PLDベースの装置(図示せず)等も含むことができる。
【0228】
当業者は、現在開示している主題に関連して使用される「コンピュータ可読媒体」という用語は、伝送媒体、搬送波、又は他の一時的な信号を含まないことを理解する必要もある。
【0229】
コンピュータシステム2400は、1つ又は複数の通信ネットワーク(955)へのインターフェイスも含むことができる。ネットワークは、例えば、無線、有線、光である可能性がある。ネットワークはさらに、ローカル、広域、大都市圏、車両及び産業、リアルタイム、遅延耐性等にすることができる。ネットワークの例には、イーサネット等のローカルエリアネットワーク、無線LAN、モバイル通信(GSM)、第3世代(3G)、第4世代(4G)、第5世代(5G)、ロングタームエボリューション(LTE)等を含むセルラーネットワーク、ケーブルテレビ、衛星テレビ、及び地上放送テレビを含む有線又は無線テレビ広域デジタルネットワーク、CANBus等を含む車両及び産業等が含まれる。特定のネットワークは、通常、特定の汎用データポート又は周辺バス(949)(例えば、コンピュータシステム2400のユニバーサルシリアルバス(USB)ポート等)に接続された外部ネットワークインターフェイスアダプタ(954)を必要とする。他のものは、以下に説明するようにシステムバス(例えば、PCコンピュータシステムへのイーサネットインターフェイス又はスマートフォンコンピュータシステムへのセルラーネットワークインターフェイス)に接続することによるコンピュータシステム2400のコア内に共通して統合される。例として、ネットワーク2455は、ネットワークインターフェイス2454を使用して周辺バス2449に接続され得る。これらのネットワークのいずれかを使用して、コンピュータシステム2400は他のエンティティと通信することができる。そのような通信は、一方向、受信のみ(例えば、放送TV)、一方向送信のみ(例えば、CANbusから特定のCANbus装置)、又は例えばローカル又は広域デジタルネットワークを使用する他のコンピュータシステムへの方向であり得る。特定のプロトコル及びプロトコルスタックは、上記のこれらのネットワーク及びネットワークインターフェイス(954)のそれぞれで使用できる。
【0230】
前述のヒューマンインターフェイス装置、ヒューマンアクセス可能なストレージ装置、及びネットワークインターフェイスは、コンピュータシステム2400のコア2440に接続することができる。
【0231】
コア2440は、1つ又は複数の中央処理装置(CPU)2441、グラフィックス処理装置(GPU)2442、フィールドプログラマブルゲートエリア(FPGA)2443の形態の特殊なプログラム可能な処理装置、特定のタスクのためのハードウェアアクセラレータ2444等を含むことができる。これらの装置は、読取り専用メモリ(ROM)2445、ランダムアクセスメモリ(RAM)2446、ユーザがアクセスできない内部ハードドライブ、ソリッドステートドライブ(SSD)、及び同様のもの2447等の内部大容量記憶装置とともに、システムバス2448を介して接続され得る。一部のコンピュータシステムでは、システムバス2448は、1つ又は複数の物理プラグの形態でアクセス可能であり、追加のCPU、GPU等による拡張を可能にする。周辺機器は、コアのシステムバス2448に直接接続することも、周辺バス2449を介して接続することもできる。周辺バスのアーキテクチャには、周辺コンポーネント相互接続(PCI)、USB等が含まれる。
【0232】
CPU2441、GPU2442、FPGA2443、及びアクセラレータ2444は、組み合わせて前述のコンピュータコードを構成できる特定の命令を実行できる。そのコンピュータコードは、ROM2445又はRAM2446に格納できる。移行データはRAM2446にも格納できるが、永続データは、例えば内部大容量記憶装置2447に格納できる。高速ストレージ及び任意のメモリ装置への取得は、1つ又は複数のCPU2441、GPU2442、大容量記憶装置2447、ROM2445、RAM2446等と密接に関連付けられ得るキャッシュメモリを使用して有効にすることができる。
【0233】
コンピュータ可読媒体は、様々なコンピュータ実装操作を実行するためのコンピュータコードをその上に有することができる。媒体及びコンピュータコードは、本開示の目的のために特別に設計及び構築されたものであり得るか、又はコンピュータソフトウェア技術の当業者によく知られていて利用可能な種類のものであり得る。
【0234】
限定ではなく例として、アーキテクチャ2400、具体的にはコア2440を有するコンピュータシステムは、1つ又は複数の有形のコンピュータ可読媒体で具体化されたソフトウェアを実行するプロセッサ(CPU、GPU、FPGA、アクセラレータ等を含む)の結果として機能を提供することができる。そのようなコンピュータ可読媒体は、上で紹介したようなユーザクセス可能な大容量記憶装置、並びにコア内部大容量記憶装置2447又はROM2445等の非一時的性質のコア2440の特定のストレージに関連する媒体であり得る。本開示の様々な実施形態を実施するソフトウェアは、そのような装置に格納され、コア2440によって実行され得る。コンピュータ可読媒体は、特定の必要性に従って、1つ又は複数のメモリ装置又はチップを含み得る。ソフトウェアは、コア2440、特にその中のプロセッサ(CPU、GPU、FPGA等を含む)に、RAM2446に格納されたデータ構造の規定及びソフトウェアによって規定されたプロセスに従ってそのようなデータ構造の変更を含む、本明細書に記載の特定のプロセス又は特定のプロセスの特定の部分を実行させることができる。加えて又は代替として、コンピュータシステムは、本明細書に記載の特定のプロセス又は特定のプロセスの特定の部分を実行するためにソフトウェアの代わりに又はソフトウェアと一緒に動作し得る、回路(例えば、アクセラレータ2444)に配線された又は他の方法で具体化されたロジックの結果として機能を提供することができる。ソフトウェアへの参照にはロジックを含めることができ、必要に応じてその逆も可能である。コンピュータ可読媒体への参照は、必要に応じて、実行のためのソフトウェアを格納する回路(集積回路(IC)等)、実行のためのロジックを具体化する回路、又はその両方を包含することができる。本開示は、ハードウェア及びソフトウェアの任意の適切な組合せを包含する。
【0235】
本開示はいくつかの例示的な実施形態を説明しているが、本開示の範囲内にある変更、置換、及び様々な代替均等物が存在する。こうして、当業者は、本明細書に明示的に示さしていないか又は記載していないが、開示の原理を具体化し、したがってその精神及び範囲内にある多くのシステム及び方法を考案することができることが理解されよう。
【外国語明細書】