IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ テンセント・アメリカ・エルエルシーの特許一覧

特許7305787コード化されたビデオストリームのパラメータセット参照制約の方法
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-06-30
(45)【発行日】2023-07-10
(54)【発明の名称】コード化されたビデオストリームのパラメータセット参照制約の方法
(51)【国際特許分類】
   H04N 19/70 20140101AFI20230703BHJP
【FI】
H04N19/70
【請求項の数】 8
(21)【出願番号】P 2021559386
(86)(22)【出願日】2020-10-15
(65)【公表番号】
(43)【公表日】2022-05-25
(86)【国際出願番号】 US2020055759
(87)【国際公開番号】W WO2021137917
(87)【国際公開日】2021-07-08
【審査請求日】2021-10-05
(31)【優先権主張番号】62/954,883
(32)【優先日】2019-12-30
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/063,085
(32)【優先日】2020-10-05
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【弁理士】
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】ビョンドゥ・チェ
(72)【発明者】
【氏名】シャン・リュウ
(72)【発明者】
【氏名】ステファン・ヴェンガー
【審査官】大濱 宏之
(56)【参考文献】
【文献】米国特許出願公開第2019/0373245(US,A1)
【文献】Byeongdoo Choi Stephan Wenger Shan Liu,AHG8: On spatial scalability support with reference picture resampling [online], JVET-O JVET-O0333,ITU-T インターネット<URL:https://jvet-experts.org/doc_end_user/documents/15_Gothenburg/wg11/JVET-O0333-v1.zip>,2019年06月26日,pp.1-6
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00-19/98
(57)【特許請求の範囲】
【請求項1】
少なくとも1つのプロセッサによって実行されるビデオエンコードまたはデコードの方法であって、
複数の意味的に独立したソース画像のデータを含むビデオデータを取得するステップと、
前記ビデオデータと共に含まれる少なくとも1つの画像順序カウント(POC)信号値に従って、前記ビデオデータのうち、参照が第1のアクセスユニット(AU)および第2のAUのいずれかに関連付けられているかどうかを、前記参照の各々のそれぞれのPOC値を前記少なくとも1つのPOC信号値と比較することによって判定するステップと、
記第1のAUに設定された前記参照の第1のPOC値範囲と、前記第2のAUに設定された前記参照の第2のPOC値範囲とを出力するステップと
を含み、
前記参照が、スライスを含み、
前記少なくとも1つのPOC信号値が、前記ビデオデータのスライスヘッダに含まれる、方法。
【請求項2】
参照が第1のAUおよび第2のAUのいずれかに関連付けられているかどうかを判定する前記ステップが、
前記参照の前記第1のPOC値範囲の各POC値がそれぞれ、前記少なくとも1つのPOC信号値よりも小さい複数のPOC値のうちの1つを含むという判定に応答して、前記参照の前記第1のPOC値範囲を前記第1のAUに設定し、前記参照の前記第2のPOC値範囲の各POC値がそれぞれ、前記少なくとも1つのPOC信号値以上の第2の複数のPOC値のうちの1つを含むという判定に応答して、前記参照の前記第2のPOC値範囲を前記第2のAUに設定するステップ
をさらに含む、請求項1に記載の方法。
【請求項3】
前記ビデオデータが、前記ビデオデータの複数の空間レイヤを識別するビデオパラメータセット(VPS)データを含む、請求項2に記載の方法。
【請求項4】
前記VPSデータが、前記参照のうちの1つまたは複数が複数のサブ領域に分割されているかどうかを示す少なくとも1つのフラグを含むかどうかを判定するステップと、
前記少なくとも1つのフラグが、前記参照のうちの前記1つまたは複数が前記複数のサブ領域に分割されていることを示す場合、輝度サンプルにおいて、前記参照のうちの前記1つまたは複数の画像の画像全体の幅および画像全体の高さのうちの少なくとも1つを判定するステップと
をさらに含む、請求項3に記載の方法。
【請求項5】
前記少なくとも1つのフラグが、前記参照のうちの前記1つまたは複数が前記複数のサブ領域に分割されていることを示す場合、前記ビデオデータのシーケンスパラメータセットに含まれる、前記サブ領域のうちの少なくとも1つの一部のオフセットを指定する通知値を判定するステップ
をさらに含む、請求項4に記載の方法。
【請求項6】
前記複数の意味的に独立したソース画像が、球形の360°画像を表す、請求項1に記載の方法。
【請求項7】
ビデオエンコードまたはデコードの装置であって、
コンピュータプログラムコードを格納するように構成された少なくとも1つのメモリと、
前記コンピュータプログラムコードの指示に従って、請求項1から6のいずれか一項に記載の方法を実行するように構成された少なくとも1つのプロセッサと
を備える装置。
【請求項8】
コンピュータに、請求項1から6のいずれか一項に記載の方法を実行させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2019年12月30日に出願された米国仮特許出願第62/954,883号、および2020年10月5日に出願された米国特許出願第17/063,085号の優先権を主張し、その全体が本明細書に組み込まれる。
【0002】
開示される主題は、ビデオのコード化およびデコードに関し、より具体的には、例示的な実施形態によれば、コード化されたビデオストリームにおけるパラメータセットの参照およびスコープに関する。
【背景技術】
【0003】
動き補償を伴うインター画像予測を使用するビデオコード化およびデコードは、何十年もの間知られている。非圧縮デジタルビデオは、一連の画像からなることができ、各画像は、例えば1920×1080の輝度サンプルおよび関連する色差サンプルの空間次元を有する。一連の画像は、例えば毎秒60画像または60Hzの固定または可変画像レート(非公式にはフレームレートとしても知られる)を有することができる。非圧縮ビデオは、かなりのビットレート要件を有する。例えば、サンプルあたり8ビットの1080p60 4:2:0ビデオ(60Hzのフレームレートで1920×1080の輝度サンプル解像度)は、1.5Gbit/sに近い帯域幅を必要とする。そのようなビデオの1時間は、600GByteを超える記憶空間を必要とする。
【0004】
ビデオコード化およびデコードの目的の1つは、圧縮による入力ビデオシグナルの冗長性の低減であり得る。圧縮は、前述の帯域幅または記憶空間要件を、場合によっては2桁以上低減するのに役立ち得る。可逆圧縮および非可逆圧縮の両方、ならびにそれらの組み合わせを使用することができる。可逆圧縮とは、元のシグナルの正確なコピーを圧縮された元のシグナルから再構築することができる技術を指す。非可逆圧縮を使用する場合、再構築されたシグナルは元のシグナルと同一ではない可能性があるが、元のシグナルと再構築されたシグナルとの間の歪みは、再構築されたシグナルを意図された用途に有用にするのに十分小さい。ビデオの場合、非可逆圧縮が広く採用されている。許容される歪みの量は用途に依存し、例えば、特定の消費者ストリーミングアプリケーションのユーザは、テレビ貢献アプリケーションのユーザよりも高い歪みを許容することができる。達成可能な圧縮比は、より高い許容できる/許容可能な歪みがより高い圧縮比をもたらすことができることを反映することができる。
【0005】
ビデオエンコーダおよびデコーダは、例えば、動き補償、変換、量子化、およびエントロピーコード化を含むいくつかの広いカテゴリからの技術を利用することができ、それらのいくつかを以下に紹介する。
【0006】
歴史的に、ビデオエンコーダおよびデコーダは、ほとんどの場合、コード化されたビデオシーケンス(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】
圧縮されたドメインアグリゲーション、または複数の意味的に独立した画像部分を1つのビデオ画像に抽出することが注目されている。特に、例えば、360コード化または特定の監視アプリケーションのコンテキストでは、複数の意味的に独立したソース画像(例えば、立方体に投影された360シーンの6つの立方体表面、またはマルチカメラ監視設定の場合の個々のカメラ入力)は、所与の時点での様々なシーンごとのアクティビティに対処するために、個別の適応解像度設定を必要とする場合がある。
【先行技術文献】
【非特許文献】
【0009】
【文献】Hendry, et. al,"On adaptive resolution change(ARC) for VVC",Joint Video Team document JVET-M0135-v1,Jan9-19, 2019
【発明の概要】
【課題を解決するための手段】
【0010】
ビデオビットストリームにおける適応画像サイズの通知のための技法が開示される。
【0011】
コンピュータプログラムコードを格納するように構成されたメモリと、コンピュータプログラムコードにアクセスし、コンピュータプログラムコードの指示に従って動作するように構成されたプロセッサまたは複数のプロセッサと、を備える方法および装置が含まれる。コンピュータプログラムは、少なくとも1つのプロセッサに、複数の意味的に独立したソース画像のデータを含むビデオデータを取得させるように構成された取得コードと、少なくとも1つのプロセッサに、ビデオデータと共に含まれる少なくとも1つの画像順序カウント(POC)信号値に従って、ビデオデータのうち、参照が第1のアクセスユニット(AU)および第2のAUのいずれかに関連付けられているかどうかを判定させるように構成された判定コードと、少なくとも1つのプロセッサに、少なくとも1つのPOC信号値に基づいて、第1のAUに設定された参照の第1の量と、第2のAUに設定された参照の第2の量とを出力させるように構成された出力コードと、を含む。
【0012】
例示的な実施形態によれば、参照は、ビデオデータの画像、スライス、およびタイルのうちの少なくとも1つを含む。
【0013】
例示的な実施形態によれば、参照が第1のAUおよび第2のAUのいずれかに関連付けられているかどうかを判定することは、参照の各々のそれぞれのPOC値を少なくとも1つのPOC信号値と比較することを含む。
【0014】
例示的な実施形態によれば、参照が第1のAUおよび第2のAUのいずれかに関連付けられているかどうかを判定することは、参照の第1の量の各々がそれぞれ、少なくとも1つのPOC信号値よりも小さい複数のPOC値のうちの1つを含むという判定に応答して、参照の第1の量を第1のAUに設定し、参照の第2の量の各々がそれぞれ、少なくとも1つのPOC信号値以上の第2の複数のPOC値のうちの1つを含むという判定に応答して、参照の第2の量を第2のAUに設定することをさらに含む。
【0015】
例示的な実施形態によれば、参照は、スライスを含み、少なくとも1つのPOC信号値は、ビデオデータのスライスヘッダに含まれる。
【0016】
例示的な実施形態によれば、ビデオデータは、ビデオデータの複数の空間レイヤを識別するビデオパラメータセット(VPS)データを含む。
【0017】
例示的な実施形態によれば、少なくとも1つのPOC信号値は、ビデオデータのビデオパラメータセット(VPS)に含まれる。
【0018】
例示的な実施形態によれば、判定コードは、少なくとも1つのプロセッサに、VPSデータが、参照のうちの1つまたは複数が複数のサブ領域に分割されているかどうかを示す少なくとも1つのフラグを含むかどうかを判定することと、少なくとも1つのフラグが、参照のうちの1つまたは複数が複数のサブ領域に分割されていることを示す場合、輝度サンプルにおいて、参照のうちの1つまたは複数の画像の画像全体の幅および画像全体の高さのうちの少なくとも1つを判定することと、を行わせるようにさらに構成される。
【0019】
例示的な実施形態によれば、判定コードは、少なくとも1つのプロセッサに、少なくとも1つのフラグが、参照のうちの1つまたは複数が複数のサブ領域に分割されていることを示す場合、ビデオデータのシーケンスパラメータセットに含まれる、サブ領域のうちの少なくとも1つの一部のオフセットを指定する通知値を判定することを行わせるようにさらに構成される。
【0020】
例示的な実施形態によれば、複数の意味的に独立したソース画像は、球形の360°画像を表す。
【0021】
開示された主題のさらなる特徴、性質、および様々な利点は、以下の詳細な説明および添付の図面からより明らかになるであろう。
【図面の簡単な説明】
【0022】
図1】一実施形態による通信システムの簡略化されたブロック図の概略図である。
図2】一実施形態による通信システムの簡略化されたブロック図の概略図である。
図3】一実施形態によるデコーダの簡略化されたブロック図の概略図である。
図4】一実施形態によるエンコーダの簡略化されたブロック図の概略図である。
図5A】示されているように、先行技術または実施形態によるARCパラメータを通知するためのオプションの概略図である。
図5B】示されているように、先行技術または実施形態によるARCパラメータを通知するためのオプションの概略図である。
図6】一実施形態によるシンタックステーブルの例である。
図7】一実施形態によるコンピュータシステムの概略図である。
図8】適応解像度変更によるスケーラビリティの予測構造の例である。
図9】一実施形態によるシンタックステーブルの例である。
図10】アクセスユニット当たりの画像順序カウント(POC)サイクルおよびアクセスユニットカウント値の解析およびデコードの簡略化されたブロック図の概略図である。
図11】マルチレイヤサブ画像を含むビデオビットストリーム構造の概略図である。
図12】解像度が高められた選択されたサブ画像の表示の概略図である。
図13】マルチレイヤサブ画像を含むビデオビットストリームのデコードおよび表示プロセスのブロック図である。
図14】サブ画像のエンハンスメントレイヤを有する360°ビデオ表示の概略図である。
図15】サブ画像のレイアウト情報ならびにそれに対応するレイヤおよび画像予測構造の例である。
図16】サブ画像のレイアウト情報ならびにそれに対応するレイヤおよび画像予測構造の例であり、局所領域の空間スケーラビリティモダリティを伴う。
図17】サブ画像レイアウト情報のシンタックステーブルの例である。
図18】サブ画像レイアウト情報のSEIメッセージのシンタックステーブルの例である。
図19】出力レイヤおよび各出力レイヤセットのプロファイル/ティア/レベル情報を示すシンタックステーブルの例である。
図20】各出力レイヤセットの出力レイヤモードを示すシンタックステーブルの例である。
図21】各出力レイヤセットの各レイヤの現在のサブ画像を示すシンタックステーブルの例である。
図22】非参照レイヤにおけるパラメータセット参照の例である。
【発明を実施するための形態】
【0023】
圧縮されたドメインアグリゲーション、または複数の意味的に独立した画像部分を1つのビデオ画像に抽出することが注目されているため、例えば、360コード化または特定の監視アプリケーションのコンテキストでは、複数の意味的に独立したソース画像(例えば、立方体に投影された360シーンの6つの立方体表面、またはマルチカメラ監視設定の場合の個々のカメラ入力)は、所与の時点での様々なシーンごとのアクティビティに対処するために、個別の適応解像度設定を必要とする場合がある。したがって、本明細書では、とりわけ、360°または監視シーン全体を構成する異なる意味的に独立した画像に対して異なるリサンプリング係数を使用することを選択できるエンコーダが、所与の時点で開示されている。単一の画像に結合すると、次に、参照画像のリサンプリングが実行され、コード化された画像の一部に対して適応解像度のコード化通知が利用可能になる必要がある。
【0024】
図1は、本開示の一実施形態による通信システム100の簡略化されたブロック図を示す。システム100は、ネットワーク150を介して相互接続された少なくとも2つの端末110および120を含むことができる。データの一方向送信の場合、第1の端末110は、ネットワーク150を介して他の端末120に送信するために、ローカルロケーションでビデオデータをコード化することができる。第2の端末120は、ネットワーク150から他の端末のコード化ビデオデータを受信し、コード化データをデコードし、復元されたビデオデータを表示することができる。一方向のデータ送信は、メディアサービングアプリケーションなどにおいて一般的であり得る。
【0025】
図1は、例えば、ビデオ会議中に発生する可能性のあるコード化ビデオの双方向伝送をサポートするために提供される第2の端末対130、140を示す。データの双方向送信の場合、各端末130、140は、ネットワーク150を介して他の端末に送信するために、ローカルロケーションでキャプチャされたビデオデータをコード化することができる。各端末130、140はまた、他の端末によって送信されたコード化ビデオデータを受信でき、コード化データをデコードでき、復元されたビデオデータをローカル表示装置に表示することができる。
【0026】
図1の例では、端末110、120、130、140は、サーバ、パーソナルコンピュータ、およびスマートフォンとして示され得るが、本開示の原理はそのように限定されなくてもよい。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤ、および/またはビデオ会議専用機器に適用される。ネットワーク150は、例えば有線および/または無線通信ネットワークを含む、端末110、120、130、140の間でコード化されたビデオデータを伝達する任意の数のネットワークを表す。通信ネットワーク150は、回路交換チャネルおよび/またはパケット交換チャネルでデータを交換することができる。代表的なネットワークには、電気通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、および/またはインターネットが含まれる。本説明の目的のために、ネットワーク150のアーキテクチャおよびトポロジは、本明細書で以下に説明されない限り、本開示の動作に重要ではない場合がある。
【0027】
図2は、開示された主題の用途の一例として、ストリーミング環境におけるビデオエンコーダおよびデコーダの配置を示す。開示された主題は、例えば、ビデオ会議、デジタルTV、CD、DVD、メモリスティックなどを含むデジタル媒体への圧縮ビデオの格納などを含む、他のビデオ対応アプリケーションにも等しく適用可能であり得る。
【0028】
ストリーミングシステムは、例えば非圧縮のビデオサンプルストリーム202を生成する、例えばデジタルカメラなどのビデオソース201を含むことができるキャプチャサブシステム213を含むことができる。エンコードされたビデオビットストリームと比較した場合にデータ量が多いことを強調するために太線として示されているサンプルストリーム202は、カメラ201に接続されたエンコーダ203によって処理することができる。エンコーダ203は、以下でより詳細に説明するように、開示された主題の態様を可能にするかまたは実施するために、ハードウェア、ソフトウェア、またはそれらの組み合わせを含むことができる。サンプルストリームと比較してより低いデータ量を強調するために細い線として示されているエンコードされたビデオビットストリーム204は、将来の使用のためにストリーミングサーバ205に格納することができる。1つまたは複数のストリーミングクライアント206、208は、ストリーミングサーバ205にアクセスして、エンコードされたビデオビットストリーム204のコピー207、209を取得できる。クライアント206は、エンコードされたビデオビットストリーム207の入力コピーをデコードし、ディスプレイ212または他のレンダリングデバイス(図示せず)上にレンダリングすることができる出力ビデオサンプルストリーム211を作成するビデオデコーダ210を含むことができる。いくつかのストリーミングシステムでは、ビデオビットストリーム204、207、209は、特定のビデオコード化/圧縮規格に従ってエンコードすることができる。これらの規格の例には、ITU-T Recommendation H.265が含まれる。開発中のビデオコーディング規格は、非公式にVersatile Video CodingまたはVVCとして知られている。開示された主題は、VVCの文脈で使用され得る。
【0029】
図3は、本発明の一実施形態によるビデオデコーダ210の機能ブロック図であり得る。
【0030】
受信器310は、デコーダ210によってデコードされるべき、1つまたは複数のコード化されたビデオシーケンスを受信しうる。同じまたは別の実施形態では、一度に1つのコード化されたビデオシーケンスであり、各コード化されたビデオシーケンスのデコードは他のコード化されたビデオシーケンスから独立している。コード化されたビデオシーケンスは、エンコードされたビデオデータを格納する記憶デバイスへのハードウェア/ソフトウェアリンクであり得るチャネル312から受信され得る。受信器310は、エンティティ(図示せず)を使用してそれぞれに転送され得る他のデータ、例えば、コード化されたオーディオデータおよび/また補助データストリームを有するエンコードされたビデオデータを受信することができる。受信器310は、コード化されたビデオシーケンスを他のデータから分離することができる。ネットワークジッタに対抗するために、バッファメモリ315が、受信器310とエントロピーデコーダ/パーサ320(以降「パーサ」)との間に結合され得る。受信器310が十分な帯域幅および制御可能性のストア/フォワードデバイスから、または同期ネットワークからデータを受信しているとき、バッファ315は必要とされなくてもよく、または小さくてもよい。インターネットなどのベストエフォートパケットネットワークで使用するには、バッファ315が必要になる場合があり、比較的大きくすることができ、有利に適応サイズにすることができる。
【0031】
ビデオデコーダ210は、エントロピーコード化されたビデオシーケンスからシンボル321を再構築するために、パーサ320を含み得る。これらのシンボルのカテゴリは、デコーダ210の動作を管理するために使用される情報、および潜在的に、図2に示すように、デコーダの不可欠な部分ではないがデコーダに結合することができるディスプレイ212などのレンダリングデバイスを制御するための情報を含む。レンダリングデバイスの制御情報は、補足エンハンスメント情報(SEIメッセージ)またはビデオ使用性情報(VUI)パラメータセット断片(図示せず)の形態であってもよい。パーサ320は、受信されたコード化されたビデオシーケンスを解析/エントロピーデコードすることができる。コード化されたビデオシーケンスのコード化は、ビデオコード化技術または規格に従うことができ、可変長符号化、ハフマン符号化、コンテキスト感度ありまたはなしの算術符号化などを含む、当業者に周知の原理に従うことができる。パーサ320は、グループに対応する少なくとも1つのパラメータに基づいて、コード化されたビデオシーケンスから、ビデオデコーダ内のピクセルのサブグループのうちの少なくとも1つのサブグループパラメータのセットを抽出することができる。サブグループは、Group of Pictures(GOP)、画像、タイル、スライス、マクロブロック、コード化ユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)などを含むことができる。エントロピーデコーダ/パーサはまた、変換係数、量子化器パラメータ値、動きベクトルなどのようなコード化されたビデオシーケンス情報を抽出することができる。
【0032】
パーサ320は、シンボル321を作成するために、バッファ315から受信したビデオシーケンスに対してエントロピーデコード/解析動作を実行することができる。
【0033】
シンボル321の再構築は、コード化されたビデオ画像またはその一部(例えば、インター画像およびイントラ画像、インターブロックおよびイントラブロックなど)のタイプ、およびその他の要因に依存して、複数の異なるユニットを含み得る。どのユニットがどのように関与するかは、パーサ320によってコード化されたビデオシーケンスから解析されたサブグループ制御情報によって制御することができる。パーサ320と以下の複数のユニットとの間のそのようなサブグループ制御情報のフローは、明確にするために示されていない。
【0034】
既に述べた機能ブロックを超えて、デコーダ210は、以下に説明するように概念的にいくつかの機能ユニットに細分することができる。商業的制約の下で動作する実際の実装では、これらのユニットの多くは互いに密接に相互作用し、少なくとも部分的に互いに統合することができる。しかしながら、開示された主題を説明する目的で、以下の機能ユニットへの概念的細分化が適切である。
【0035】
第1のユニットはスケーラ/逆変換ユニット351である。スケーラ/逆変換ユニット351は、量子化変換係数、ならびにどの変換を使用するか、ブロックサイズ、量子化係数、量子化スケーリング行列などを含む制御情報を、パーサ320からシンボル321として受信する。それは、アグリゲータ355に入力され得るサンプル値を備えるブロックを出力し得る。
【0036】
場合によっては、スケーラ/逆変換351の出力サンプルは、イントラコード化されたブロックに関連し得る。すなわち、以前に再構築された画像からの予測情報を使用していないが、現在の画像の以前に再構築された部分からの予測情報を使用することができるブロックである。そのような予測情報は、イントラ画像予測ユニット(352)によって提供することができる。場合によっては、イントラ画像予測ユニット352は、現在の(部分的に再構築された)画像356から取り出された周囲の既に再構築された情報を用いて、再構築中のブロックと同じサイズおよび形状のブロックを生成する。アグリゲータ355は、場合によっては、イントラ予測ユニット352が生成した予測情報を、スケーラ/逆変換ユニット351によって提供された出力サンプル情報に、サンプル単位で付加する。
【0037】
他の場合では、スケーラ/逆変換ユニット351の出力サンプルは、インターコード化され、潜在的に動き補償されたブロックに関連し得る。そのような場合、動き補償予測ユニット353は、予測に使用されるサンプルを取り出すために参照画像メモリ357にアクセスすることができる。ブロックに関連するシンボル321に従って取り出されたサンプルを動き補償した後、これらのサンプルは、出力サンプル情報を生成するために、アグリゲータ355によってスケーラ/逆変換ユニットの出力(この場合、残差サンプルまたは残差シグナルと呼ばれる)に追加され得る。動き補償ユニットが予測サンプルを取り出す参照画像メモリ内のアドレスは、動き補償ユニットが例えばX、Y、および参照画像成分を有することができるシンボル321の形態で利用可能な動きベクトルによって制御することができる。動き補償はまた、サブサンプル正確動きベクトルが使用されているときに参照画像メモリから取り出されたサンプル値の補間、動きベクトル予測機構などを含むことができる。
【0038】
アグリゲータ355の出力サンプルは、ループフィルタユニット356における様々なループフィルタリング技術を適用することができる。ビデオ圧縮技術は、コード化されたビデオビットストリームに含まれるパラメータによって制御され、パーサ320からシンボル321としてループフィルタユニット356に利用可能にされるインループフィルタ技術を含むことができるが、コード化された画像またはコード化されたビデオシーケンスの以前の(デコード順の)部分のデコード中に取得されたメタ情報に応答することもでき、以前に再構築され、ループフィルタリングされたサンプル値に応答することもできる。
【0039】
ループフィルタユニット356の出力は、レンダデバイス212に出力することができるとともに、将来のインター画像予測に使用するために参照画像メモリ356に格納されることができるサンプルストリームとすることができる。
【0040】
完全に再構築されると、特定のコード化された画像は、将来の予測のための参照画像として使用することができる。コード化された画像が完全に再構築され、コード化された画像が参照画像(例えば、パーサ320による)として識別されると、現在の参照画像356は参照画像バッファ357の一部になることができ、新しい現在の画像メモリは、後続のコード化された画像の再構築を開始する前に再配置され得る。
【0041】
ビデオデコーダ320は、例えばITU-T Rec. H.265のような規格で文書化され得る所定のビデオ圧縮技術に従ってデコード動作を実行し得る。コード化されたビデオシーケンスは、ビデオ圧縮技術文書または規格および特にその中のプロファイル文書で指定されているように、ビデオ圧縮技術または規格のシンタックスに準拠するという意味で、使用されているビデオ圧縮技術または規格によって指定されたシンタックスに準拠することができる。また、コンプライアンスのために必要なのは、コード化されたビデオシーケンスの複雑さがビデオ圧縮技術または規格のレベルによって定義される境界内にあることであり得る。場合によっては、レベルは、最大画像サイズ、最大フレームレート、最大再構築サンプルレート(例えば毎秒メガサンプルで測定される)、最大参照画像サイズなどを制限する。レベルによって設定される制限は、場合によっては、仮想参照デコーダ(HRD)仕様、およびコード化されたビデオシーケンスにおいてシグナルされたHRDバッファ管理のためのメタデータによってさらに制限され得る。
【0042】
一実施形態では、受信器310は、エンコードされたビデオを有する追加の(冗長な)データを受信することができる。追加のデータは、コード化されたビデオシーケンスの一部として含まれ得る。追加のデータは、データを適切にデコードするために、および/または元のビデオデータをより正確に再構築するために、ビデオデコーダ320によって使用され得る。追加のデータは、例えば、時間、空間、またはSNRエンハンスメントレイヤ、冗長スライス、冗長画像、前方誤り訂正符号などの形態であり得る。
【0043】
図4は、本開示の一実施形態によるビデオエンコーダ203の機能ブロック図であり得る。
【0044】
エンコーダ203は、エンコーダ203によってコード化されるビデオ画像をキャプチャすることができるビデオソース201(エンコーダの一部ではない)からビデオサンプルを受信することができる。
【0045】
ビデオソース201は、エンコーダ203によってコード化されるソースビデオシーケンスを、任意の適切なビット深度(例えば、8ビット、10ビット、12ビット、…)、任意の色空間(例えば、BT.601 Y CrCB、RGB、…)、および任意の適切なサンプリング構造(例えば、Y CrCb 4:2:0、Y CrCb 4:4:4)であり得るデジタルビデオサンプルストリームの形態で提供することができる。メディアサービングシステムにおいて、ビデオソース201は、予め用意されたビデオを記憶する記憶デバイスであってもよい。ビデオ会議システムでは、ビデオソース203は、ビデオシーケンスとしてローカル画像情報を取り込むカメラであってもよい。ビデオデータは、連続して見たときに動きを与える複数の個々のピクチャとして提供されてもよい。画像自体は、ピクセルの空間アレイとして編成することができ、各ピクセルは、使用中のサンプリング構造、色空間などに応じて1つまたは複数のサンプルを含むことができる。当業者であれば、ピクセルとサンプルとの関係を容易に理解することができる。以下、サンプルに着目して説明する。
【0046】
一実施形態によれば、エンコーダ203は、リアルタイムで、またはアプリケーションによって要求される任意の他の時間制約下で、ソースビデオシーケンスの画像をコード化してコード化されたビデオシーケンス443に圧縮することができる。適切なコード化速度を強制することは、コントローラ450の一機能である。コントローラ450は、以下に説明するように他の機能ユニットを制御し、これらのユニットに機能的に結合される。カップリングは、明確にするために示されていない。コントローラによって設定されるパラメータは、レート制御関連パラメータ(画像スキップ、量子化器、レート歪み最適化技術のラムダ値、…)、画像サイズ、Group of Pictures(GOP)レイアウト、最大動きベクトル探索範囲などを含むことができる。当業者は、コントローラ450の他の機能を、特定のシステム設計のために最適化されたビデオエンコーダ203に関係し得るので、容易に特定することができる。
【0047】
一部のビデオエンコーダは、当業者が「コード化ループ」として容易に認識できる方法で動作する。過度に単純化された説明として、コード化ループは、エンコーダ430のエンコード部分(以下、「ソースコーダ」)(コード化される入力画像および参照画像に基づいてシンボルを作成する責任がある)、およびエンコーダ203に埋め込まれ、シンボルを再構築して、(リモート)デコーダもまた作製する(開示された主題で考慮されるビデオ圧縮技術では、シンボルとコード化されたビデオビットストリーム間の圧縮は可逆であるため)サンプルデータを作製する(ローカル)デコーダ433からなり得る。再構築されたサンプルストリームは、参照画像メモリ434に入力される。シンボルストリームのデコードは、デコーダ位置(ローカルまたはリモート)とは無関係にビット正確な結果をもたらすので、参照画像バッファコンテンツもローカルエンコーダとリモートエンコーダとの間でビット正確である。換言すれば、参照画像としてエンコーダが「見る」予測部は、デコード中に予測を使用するときにデコーダが「見る」のと全く同じサンプル値をサンプリングする。参照画像同期性のこの基本原理(および、例えばチャネル誤差のために同期性を維持することができない場合、結果として生じるドリフト)は、当業者に周知である。
【0048】
「ローカル」デコーダ433の動作は、図3に関連して既に詳細に説明した「リモート」デコーダ210の動作と同じであり得る。しかしながら、図3も簡単に参照すると、シンボルが利用可能であり、エントロピーコーダ445およびパーサ320によるコード化されたビデオシーケンスへのシンボルのエンコード/デコードは可逆であり得るため、チャネル312を含むデコーダ210のエントロピーデコード部、受信器310、バッファ315、およびパーサ320は、ローカルデコーダ433に完全に実装されない場合がある。
【0049】
この時点でなされ得る観測は、デコーダ内に存在するパース/エントロピーデコードを除く任意のデコーダ技術もまた、対応するエンコーダ内に実質的に同一の機能形態で存在する必要があるということである。このため、開示された主題はデコーダ動作に焦点を合わせている。エンコーダ技術の説明は、それらが包括的に説明されたデコーダ技術の逆であるので省略することができる。特定の領域においてのみ、より詳細な説明が必要とされ、以下に提供される。
【0050】
その動作の一部として、ソースコーダ430は、「参照フレーム」として指定されたビデオシーケンスからの1つまたは複数の以前にコード化されたフレームを参照して入力フレームを予測的にコード化する動き補償予測コード化を実行することができる。このようにして、コード化エンジン432は、入力フレームのピクセルブロックと、入力フレームに対する予測参照として選択され得る参照フレームのピクセルブロックとの間の差分をコード化する。
【0051】
ローカルビデオデコーダ433は、ソースコーダ430によって生成されたシンボルに基づいて、参照フレームとして指定され得るフレームのコード化されたビデオデータを復号し得る。コード化エンジン432の動作は、有利には非可逆処理であり得る。コード化されたビデオデータがビデオデコーダ(図4には示されていない)でデコードされ得るとき、再構築されたビデオシーケンスは、通常、いくつかのエラーを有するソースビデオシーケンスのレプリカであり得る。ローカルビデオデコーダ433は、ビデオデコーダによって参照フレームに対して実行されうるデコード処理を複製し、再構築された参照フレームを参照画像キャッシュ434に格納させ得る。このようにして、エンコーダ203は、遠端ビデオデコーダによって取得されることになる再構築された参照フレームとして共通のコンテンツを有する再構築された参照フレームのコピーをローカルに格納することができる(送信エラーなし)。
【0052】
予測器435は、コード化エンジン432の予測検索を実行することができる。すなわち、コード化されるべき新しいフレームについて、予測器435は、(候補参照ピクセルブロックとしての)サンプルデータ、または、新しい画像の適切な予測参照として機能し得る参照画像動きベクトル、ブロック形状などの特定のメタデータを求めて参照画像メモリ434を探索することができる。予測器435は、適切な予測参照を見つけるために、ピクセルブロック基準のサンプルブロックごとに動作することができる。場合によっては、予測器435によって取得された探索結果によって決定されるように、入力画像は、参照画像メモリ434に格納された複数の参照画像から描画された予測参照を有することができる。
【0053】
コントローラ450は、例えば、ビデオデータをエンコードするために使用されるパラメータおよびサブグループパラメータの設定を含む、ビデオコーダ430のコード化動作を管理することができる。
【0054】
前述のすべての機能ユニットの出力は、エントロピーコーダ445においてエントロピーコード化を受けることができる。エントロピーコーダは、当業者に周知の技術、例えば、ハフマン符号化、可変長符号化、算術符号化などに従ってシンボルを可逆圧縮することによって、様々な機能ユニットによって生成されたシンボルをコード化されたビデオシーケンスに変換する。
【0055】
送信器440は、エントロピーコーダ445によって生成されたコード化されたビデオシーケンスをバッファリングして、通信チャネル460を介した送信の準備をすることができ、これは、エンコードされたビデオデータを格納する記憶デバイスへのハードウェア/ソフトウェアリンクであり得る送信器440は、ビデオコーダ430からのコード化されたビデオデータを、送信される他のデータ、例えば、コード化されたオーディオデータおよび/または補助データストリーム(ソースは図示せず)とマージすることができる。
【0056】
コントローラ450は、エンコーダ203の動作を管理することができる。コード化中、コントローラ450は、各コード化された画像に特定のコード化された画像タイプを割り当てることができ、これは、それぞれの画像に適用され得るコード化技術に影響を及ぼし得る。例えば、画像は、以下のフレームタイプのうちの1つとして割り当てられることが多い。
【0057】
イントラ画像(I画像)は、シーケンス内の任意の他のフレームを予測ソースとして使用せずにコード化およびデコード可能なものであってもよい。いくつかのビデオコーデックは、例えば、独立デコーダリフレッシュ画像を含む異なるタイプのイントラ画像を可能にする。当業者は、I画像のこれらの変形ならびにそれらのそれぞれの用途および特徴を認識している。
【0058】
予測画像(P画像)は、各ブロックのサンプル値を予測するために、最大で1つの動きベクトルおよび参照インデックスを使用するイントラ予測またはインター予測を使用してコード化およびデコードされ得る画像であり得る。
【0059】
双方向予測画像(B画像)は、各ブロックのサンプル値を予測するために、最大で2つの動きベクトルおよび参照インデックスを使用するイントラ予測またはインター予測を使用してコード化およびデコードされ得る画像であり得る。同様に、複数予測画像は、単一のブロックの再構築のために3つ以上の参照画像および関連するメタデータを使用することができる。
【0060】
ソース画像は、一般に、複数のサンプルブロック(例えば、各々、4x4、8x8、4x8、または16x16のブロック)に空間的に細分化され、ブロックごとにコード化され得る。ブロックは、ブロックのそれぞれの画像に適用されるコード化割当によって決定されるように、他の(既にコード化された)ブロックを参照して予測的にコード化され得る。例えば、I画像のブロックは、非予測的にコード化されてもよいし、同じ画像の既にコード化されたブロックを参照して予測的にコード化されてもよい(空間予測またはイントラ予測)。P画像のピクセルブロックは、1つの以前にコード化された参照画像を参照して、空間予測を介して、または時間予測を介して非予測的にコード化され得る。B画像のブロックは、1つまたは2つの以前にコード化された参照画像を参照して、空間予測を介して、または時間予測を介して非予測的にコード化され得る。
【0061】
ビデオコーダ203は、例えばITU-T Rec. H.265のような所定のビデオコード化技術または規格に従ってコード化動作を実行し得る。その動作において、ビデオコーダ203)は、入力ビデオシーケンス内の時間的および空間的冗長性を利用する予測コード化動作を含む、様々な圧縮動作を実行することができる。したがって、コード化されたビデオデータは、使用されているビデオコード化技術または規格によって指定された構文に準拠することができる。
【0062】
一実施形態では、送信器440は、エンコードされたビデオと共に追加のデータを送信することができる。ビデオコーダ4は、コード化されたビデオシーケンスの一部としてそのようなデータを含むことができる。追加のデータは、時間/空間/SNRエンハンスメントレイヤ、冗長画像およびスライスなどの他の形態の冗長データ、Supplementary Enhancement Information(SEI)メッセージ、Visual Usability Information(VUI)パラメータセット断片などを含むことができる。
【0063】
開示された主題の特定の側面をより詳細に説明する前に、この説明の残りの部分で参照されるいくつかの用語を紹介する必要がある。
【0064】
以降、サブ画像とは、場合によっては、意味的にグループ化され、変更された解像度で個別にコード化できるサンプル、ブロック、マクロブロック、コーディングユニット、または同様のエンティティの長方形の配置を指す。1つまたは複数のサブ画像が画像に使用できる。1つまたは複数のコード化されたサブ画像がコード化された画像を形成し得る。1つまたは複数のサブ画像を画像に組み立てることができ、1つまたは複数のサブ画像を画像から抽出することができる。特定の環境では、1つまたは複数のコード化されたサブ画像が、サンプルレベルにトランスコードせずに圧縮ドメインでコード化された画像にアセンブルされ得、同じまたは特定の他の場合において、1つまたは複数のコード化されたサブ画像が、圧縮ドメインにおけるコード化された画像から抽出され得る。
【0065】
以降、適応解像度変更(ARC)とは、例えば、参照画像のリサンプリングによって、コード化されたビデオシーケンス内の画像またはサブ画像の解像度を変更できるメカニズムを指す。以降、ARCパラメータは、適応解像度変更を実行するために必要な制御情報を指し、これには、例えば、フィルタパラメータ、スケーリング係数、出力および/または参照画像の解像度、様々な制御フラグなどが含まれ得る。
【0066】
上記の説明は、単一の意味的に独立したコード化されたビデオ画像のコード化およびデコードに焦点を合わせている。独立したARCパラメータを使用した複数のサブ画像のコード化/デコードの意味と、その暗黙の追加の複雑さについて説明する前に、ARCパラメータを通知するためのオプションについて説明する必要がある。
【0067】
図5を参照すると、ARCパラメータを通知するためのいくつかの新しいオプションが示されている。各オプションで説明したように、コーディングの効率、複雑さ、およびアーキテクチャの観点から、これらには特定の長所と短所がある。ビデオコード化規格または技術は、ARCパラメータを通知するために、これらのオプションの1つまたは複数、または以前の技術から知られているオプションを選択することができる。オプションは相互に排他的ではない場合があり、おそらくアプリケーションのニーズ、関連する標準テクノロジ、またはエンコーダの選択に基づいて交換される可能性がある。
【0068】
ARCパラメータのクラスには、次のものが含まれ得る。
-アップ/ダウンサンプル係数、X次元とY次元で分離または結合
-時間的次元が追加されたアップ/ダウンサンプル係数、所与の数の画像に対して一定速度のズームイン/ズームアウトを示す
-上記の2つのいずれかは、因子を含むテーブルを指す可能性のある1つまたは複数のおそらく短いシンタックス要素のコード化を伴う場合がある。
-入力画像、出力画像、参照画像、コード化された画像(組み合わせまたは個別)のXまたはY次元での解像度、サンプル、ブロック、マクロブロック、CU、または任意のその他の適切な粒度の単位。複数の解像度がある場合(例えば、入力画像用に1つ、参照画像用に1つなど)、場合によっては、ある値セットが別の値セットから推論されることがある。これは、例えば、フラグを使用してゲートすることができる。より詳細な例については、以下を参照されたい。
-「ワーピング」座標は、H.263 Annex Pで使用されているものと同様で、上記のように好適な粒度で表示される。H.263 Annex Pは、このようなワーピング座標をコード化するための1つの効率的な方法を定義しているが、他の潜在的により効率的な方法も考えられ得る。例えば、Annex Pのワーピング座標の可変長リバーシブル「ハフマン」スタイルのコード化は、好適な長さのバイナリコード化に置き換えることができる。バイナリコードワードの長さは、例えば、最大画像サイズから導出でき、場合によっては特定の係数を掛け、特定の値でオフセットして、最大画像サイズの境界の外側で「ワープ」できるようにする。
-フィルタパラメータをアップまたはダウンサンプルする。最も簡単なケースでは、アップサンプリングおよび/またはダウンサンプリング用のフィルタが1つしかない場合がある。しかしながら、場合によっては、フィルタ設計の柔軟性を高めることが有利な場合があり、フィルタパラメータの通知が必要になる場合がある。そのようなパラメータは、可能なフィルタ設計のリストのインデックスから選択でき、フィルタは完全に指定でき(例えば、適切なエントロピーコーディング技術を使用して、フィルタ係数のリストを介して)、フィルタは、アップ/ダウンサンプル比によって暗黙的に選択でき、それに応じて、前述のメカニズムのいずれかに従って順番に信号が送られる。
【0069】
以降、この説明では、コードワードで示されるアップ/ダウンサンプル因子(X次元およびY次元の両方で使用されるのと同じ因子)の有限セットのコード化を想定する。そのコードワードは、例えば、H.264およびH.265などのビデオコード化仕様の特定のシンタックス要素に共通の指数ゴロム符号を使用して、可変長でコード化することが有利であり得る。アップ/ダウンサンプル係数への値の適切なマッピングの1つは、例えば、次の表に従うことができる。
【0070】
【表1】
【0071】
アプリケーションのニーズ、ならびにビデオ圧縮技術または規格で利用可能なアップスケールおよびダウンスケールメカニズムの機能に応じて、多くの同様のマッピングを考案できる。テーブルをさらに多くの値に拡張できる。値は、指数ゴロム符号以外のエントロピーコード化メカニズム、例えば、バイナリコード化を使用して表すこともできる。これは、例えば、MANEによって、ビデオ処理エンジン(エンコーダとデコーダが主要)自体の外部でリサンプリング係数に関心がある場合に、特定の利点がある場合がある。解像度の変更が必要ない(おそらく)最も一般的なケースでは、短い、上記の表では、1ビットのみの指数ゴロム符号を選択できることに留意すること。これは、最も一般的なケースでバイナリコードを使用するよりもコーディング効率が優れている可能性がある。
【0072】
テーブル内のエントリの数、およびそれらのセマンティクスは、完全にまたは部分的に構成可能であり得る。例えば、テーブルの基本的なアウトラインは、シーケンスまたはデコーダパラメータセットなどの「高」パラメータセットで伝達され得る。あるいは、またはさらに、1つまたは複数のそのようなテーブルは、ビデオコーディング技術または規格で定義され得、例えば、デコーダまたはシーケンスパラメータセットを介して選択され得る。
【0073】
以降、上記のようにコード化されたアップサンプル/ダウンサンプル係数(ARC情報)をビデオコード化技術または規格シンタックスに含める方法について説明する。同様の考慮事項が、アップ/ダウンサンプルフィルタを制御する1つまたはいくつかのコードワードに適用される場合がある。フィルタまたは他のデータ構造に比較的大量のデータが必要な場合の説明については、以下を参照すること。
【0074】
図の500Aに示されるH.263 Annex Pは、4つのワーピング座標の形式でARC情報502を画像ヘッダ501、具体的にはH.263 PLUSPTYPE503ヘッダ拡張に含む。これは、a)使用可能な画像ヘッダがあり、b)ARC情報の頻繁な変更が予想される場合に、賢明な設計上の選択になる可能性がある。ただし、H.263スタイルの通知を使用する場合のオーバーヘッドは非常に高くなる可能性があり、画像ヘッダは一時的な性質を持つ可能性があるため、スケーリング係数は画像の境界に関係しない場合がある。
【0075】
上記のJVCET-M135-v1は、画像パラメータセット504に位置するARC参照情報505(インデックス)を含み、シーケンスパラメータセット507内に順番に位置するターゲット解像度を含むテーブル506にインデックスを付ける。シーケンスパラメータセット507内のテーブル506における可能な解像度の配置は、作成者による口頭による声明によれば、機能交換中の相互運用性ネゴシエーションポイントとしてSPSを使用することによって正当化することができる。解像度は、適切な画像パラメータセット504を参照することにより、テーブル506の値によって設定された制限内で画像ごとに変更できる。
【0076】
さらに図5を参照すると、ビデオビットストリームでARC情報を伝達するために、以下の追加のオプションが存在する場合がある。これらのオプションの各々には、上記のように既存の技術に比べて特定の利点がある。オプションは、同じビデオコード化技術または規格に同時に存在する場合がある。
【0077】
一実施形態では、図の500Bのように、リサンプリング(ズーム)係数などのARC情報509は、スライスヘッダ、GOBヘッダ、タイルヘッダ、またはタイルグループヘッダ(以降、タイルグループヘッダ)508に存在し得る。これは、例えば上記のように、単一の可変長ue(v)または数ビットの固定長コードワードなどのARC情報が小さい場合に適切であり得る。ARC情報をタイルグループヘッダに直接持つことは、ARC情報が画像全体ではなく、例えばそのタイルグループによって表されるサブ画像に適用できるという追加の利点がある。以下も参照すること。さらに、ビデオ圧縮技術または規格が画像全体適応解像度変更のみを想定している場合でも(例えば、タイルグループベースの適応解像度変更とは対照的に)、ARC情報をH.263スタイル画像ヘッダに入れるのではなく、タイルグループヘッダに入れることには、エラー回復力の観点から一定の利点がある。
【0078】
同じまたは別の実施形態では、ARC情報512自体は、例えば、画像パラメータセット、ヘッダパラメータセット、タイルパラメータセット、適応パラメータセットなどの適切なパラメータセット511に存在し得る(適応パラメータセットが描かれている)。そのパラメータセットの範囲は、有利には、画像、例えばタイルグループよりも大きくすることはできない。ARC情報の使用は、関連するパラメータセットのアクティブ化によって暗黙的に行われる。例えば、ビデオコード化技術または規格が画像ベースのARCのみを想定している場合、画像パラメータセットまたは同等のものが適切な場合がある。
【0079】
同じまたは別の実施形態では、ARC参照情報513は、タイルグループヘッダ514または同様のデータ構造に存在し得る。その参照情報513は、例えばシーケンスパラメータセットまたはデコーダパラメータセットなど、単一の画像を超えるスコープを有するパラメータセット516において利用可能なARC情報515のサブセットを参照することができる。
【0080】
JVET-M0135-v1で使用されているように、タイルグループヘッダ、PPS、SPSからの追加レベルの間接的な暗黙のPPSのアクティブ化は、画像パラメータセットが、シーケンスパラメータセットと同様に、(特定のRFC3984などの規格を有し)機能のネゴシエーションまたはアナウンスに使用されるため不必要なようである。ただし、ARC情報が、例えば、タイルグループによって表されるサブ画像にも適用できる必要がある場合は、適応パラメータセットまたはヘッダパラメータセットなど、タイルグループに限定されたアクティブ化スコープを持つパラメータセットが、より良い選択になり得る。また、ARC情報が無視できるサイズを超えている場合(例えば、多数のフィルタ係数などのフィルタ制御情報を含む場合)、これらの設定が同じパラメータセットを参照することにより、将来の画像またはサブ画像で再利用できるため、パラメータは、コーディング効率の観点から直接ヘッダ508を使用するよりも優れた選択肢となる可能性がある。
【0081】
複数の画像にまたがるスコープでシーケンスパラメータセットまたは別のより高いパラメータセットを使用する場合、特定の考慮事項が適用される場合がある。
1.ARC情報テーブル516を格納するパラメータセットは、場合によってはシーケンスパラメータセットであるが、他の場合では、有利にはデコーダパラメータセットである。デコーダパラメータセットは、複数のCVS、つまりコード化されたビデオストリーム、すなわち、セッションの開始からセッションの破棄までのすべてのコード化されたビデオビットのアクティブ化スコープを持つことができる。考えられるARC要因は、ハードウェアに実装されている可能性のあるデコーダ機能である可能性があり、可能なARC要因はデコーダ機能であり、ハードウェアに実装される可能性があり、ハードウェア機能はCVSで変更されない傾向があるため(少なくともいくつかのエンターテイメントシステムでは、長さが1秒以下のGroup of Picturesである)、このようなスコープの方が適切である。とは言うものの、テーブルをシーケンスパラメータセットに入れることは、特に以下のポイント2に関連して、ここで説明する配置オプションに明示的に含まれている。
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情報は、画像パラメータセットアクティブ化の範囲が画像であるため、サブ画像ではなく、画像全体に必然的に適用される必要があるというさらなる欠点がある。
【0082】
同じまたは別の実施形態では、ARCパラメータの通知は、図6に概説されている詳細な例に従うことができる。図6は、少なくとも1993年からビデオコーディング規格で使用されている表現でシンタックスダイアグラム600を示す。このようなシンタックスダイアグラムの表記は、おおまかにCスタイルのプログラミングに従う。太字の行はビットストリームに存在するシンタックス要素を示し、太字のない行は、多くの場合、制御フローまたは変数の設定を示す。
【0083】
画像の(おそらく長方形の)部分に適用可能なヘッダの例示的なシンタックス構造としてのタイルグループヘッダ601は、条件付きで可変長の指数ゴロム符号化シンタックス要素dec_pic_size_idx602(太字で示される)を含むことができる。タイルグループヘッダ内のこのシンタックス要素の存在は、適応解像度603の使用時にゲート制御できる。ここで、太字で示されていないフラグの値は、フラグがシンタックスダイアグラムで発生する点でビットストリームに存在することを意味する。この画像またはその一部に適応解像度が使用されているかどうかは、ビットストリームの内部または外部の任意の高レベルのシンタックス構造で通知できる。示されている例では、以下に概説するように、シーケンスパラメータセットで通知される。
【0084】
さらに図6を参照すると、シーケンスパラメータセット610の抜粋も示されている。示されている最初の構文要素は、adaptive_pic_resolution_change_flag611である。trueの場合、そのフラグは、適応解像度の使用を示すことができ、これは、特定の制御情報を必要とする可能性がある。この例では、このような制御情報は、パラメータセット612およびタイルグループヘッダ601内のif()ステートメントに基づくフラグの値に基づいて条件付きで存在する。
【0085】
適応解像度が使用されている場合、この例では、コード化されたのはサンプル613単位の出力解像度である。数字613は、output_pic_width_in_luma_samplesおよびoutput_pic_height_in_luma_samplesの両方を指し、これらを合わせて出力画像の解像度を定義できる。ビデオコード化技術または規格の他の場所では、いずれかの値に対する特定の制限を定義できる。例えば、レベル定義により、出力サンプルの総数が制限される場合があり、これは、これら2つのシンタックス要素の値の積である可能性がある。また、特定のビデオコード化技術もしくは規格、またはシステム規格などの外部技術もしくは規格によって、番号付け範囲(例えば、一方または両方の次元が2の累乗で割り切れる必要がある)またはアスペクト比(例えば、幅および高さは、4:3または16:9などの関係にある必要がある)が制限される場合がある。そのような制限は、ハードウェアの実装を容易にするために、または他の理由で導入される可能性があり、当技術分野でよく知られている。
【0086】
特定のアプリケーションでは、エンコーダがデコーダに、そのサイズを出力画像サイズと暗黙的に想定するのではなく、特定の参照画像サイズを使用するように指示することをお勧めし得る。この例では、シンタックス要素reference_pic_size_present_flag614は、参照画像寸法615の条件付き存在をゲートする(ここでも、数字は幅および高さの両方を指す)。
【0087】
最後に、可能なデコード画像の幅および高さの表を示す。そのようなテーブルは、例えば、テーブル指示(num_dec_pic_size_in_luma_samples_minus1)616によって表すことができる。「minus1」は、そのシンタックス要素の値の解釈を参照できる。例えば、コード化された値がゼロの場合、1つのテーブルエントリが存在する。値が5の場合、6つのテーブルエントリが存在する。テーブル内の各「行」について、デコードされた画像の幅および高さがシンタックス617に含まれる。
【0088】
617で提示されたテーブルエントリは、タイルグループヘッダ内のシンタックス要素dec_pic_size_idx602を使用してインデックスを付けることができ、それにより、タイルグループごとに異なるデコードされたサイズ(実際にはズーム倍率)を可能にする。
【0089】
特定のビデオコード化技術または規格、例えば、VP9は、空間スケーラビリティを有効にするために、時間スケーラビリティと組み合わせて特定の形式の参照画像リサンプリング(開示された主題とはまったく異なる方法で信号を送信)を実装することによって空間スケーラビリティをサポートする。特に、特定の参照画像は、ARCスタイルの技術を使用してより高い解像度にアップサンプリングされ、空間エンハンスメントレイヤのベースを形成する場合がある。これらのアップサンプリングされた画像は、高解像度で通常の予測メカニズムを使用して洗練され、詳細を追加することができる。
【0090】
開示された主題は、そのような環境で使用することができる。場合によっては、同じまたは別の実施形態では、NALユニットヘッダ内の値、例えば時間IDフィールドは、時間レイヤだけでなく空間レイヤも示すために使用できる。そうすることで、特定のシステム設計に特定の利点がある。例えば、既存のSelected Forwarding Unit(SFU)が作成され、NALユニットヘッダに基づいて時間レイヤの選択された転送のために作成および最適化される。時間ID値は、スケーラブルな環境のために変更なしで使用できる。これを可能にするために、コード化された画像サイズと時間レイヤとの間のマッピングが、NALユニットヘッダの時間IDフィールドによって示される必要があり得る。
【0091】
一部のビデオコーディング技術では、アクセスユニット(AU)は、キャプチャされ、所与の時点でそれぞれの画像/スライス/タイル/NALユニットビットストリームに構成された、コード化された画像、スライス、タイル、NALユニットを参照できる。時間のそのインスタンスは、構成時間である可能性がある。
【0092】
HEVCおよび特定の他のビデオコード化技術では、画像順序カウント(POC)値を使用して、デコード画像バッファ(DPB)に格納された複数の参照画像の中から選択された参照画像を示すことができる。アクセスユニット(AU)が1つまたは複数の画像、スライス、またはタイルを含む場合、同じAUに属する各画像、スライス、またはタイルは同じPOC値を持ち得、同じ構成時間のコンテンツから作成されたものであることがわかる。言い換えると、2つの画像/スライス/タイルが同じ所与のPOC値を持っているシナリオでは、同じAUに属し、同じ構成時間を持っている2つの画像/スライス/タイルを示している可能性がある。逆に、POC値が異なる2つの画像/タイル/スライスは、異なるAUに属し、構成時間が異なる画像/スライス/タイルを示している可能性がある。
【0093】
開示される主題の一実施形態では、アクセスユニットが異なるPOC値を有する画像、スライス、またはタイルを含むことができるという点で、前述の厳密な関係を緩和することができる。AU内で異なるPOC値を許可することにより、POC値を使用して、同じ表示時間で潜在的に独立してデコード可能な画像/スライス/タイルを識別することが可能になる。これは、次に、以下でより詳細に説明するように、参照画像選択通知(例えば、参照画像セット通知または参照画像リスト通知)を変更することなく、複数のスケーラブルレイヤのサポートを可能にすることができる。
【0094】
しかしながら、POC値のみから、異なるPOC値を有する他の画像/スライス/タイルに関して、画像/スライス/タイルが属するAUを識別できることが依然として望ましい。これは、以下に説明するように実現できる。
【0095】
同じまたは他の実施形態では、アクセスユニットカウント(AUC)は、NALユニットヘッダ、スライスヘッダ、タイルグループヘッダ、SEIメッセージ、パラメータセット、またはAUデリミタなどの高レベルシンタックス構造で通知されてもよい。AUCの値は、どのNALユニット、画像、スライス、またはタイルが所与のAUに属するかを識別するために使用できる。AUCの値は、個別の構成時間インスタンスに対応する場合がある。AUC値は、POC値の倍数に等しくなる場合がある。POC値を整数値で除算することにより、AUC値を計算できる。場合によっては、除算操作がデコーダの実装に一定の負担をかける可能性がある。このような場合、AUC値の番号付けスペースのわずかな制限により、除算演算をシフト演算に置き換えることができる。例えば、AUC値は、POC値範囲の最上位ビット(Most Significant Bit、MSB)値と等しい場合がある。
【0096】
同じ実施形態では、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の値で除算することによって推測できる。
【0097】
同じまたは別の実施形態において、poc_cyle_auの値は、例えば、ビデオパラメータセット(VPS)内に位置し、コード化されたビデオシーケンスにおける空間またはSNRレイヤの数を識別する情報から導出され得る。このような考えられる関係について、以下に簡単に説明する。上記の導出により、VPSで数ビットが節約され、コーディング効率が向上する可能性があるが、画像などのビットストリームの特定の小さな部分に対してpoc_cycle_auを最小化できるように、ビデオパラメータセットの下に階層的に適切な高レベルのシンタックス構造でpoc_cycle_auを明示的にコード化すると有利な場合がある。この最適化により、POC値(および/またはPOCを間接的に参照するシンタックス要素の値)が低レベルのシンタックス構造でコーディングされる可能性があるため、上記の導出プロセスで保存できるよりも多くのビットが節約される可能性がある。
【0098】
同じまたは別の実施形態では、図9は、VPS(またはSPS)におけるvps_poc_cycle_auのシンタックス要素を通知するシンタックステーブル900の例を示しており、これは、コード化されたビデオシーケンス内のすべての画像/スライスに使用される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で除算することによって計算される。AUごとにPOC値が均一に増加しない場合、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は、関連するワークフロー1000を示すブロック図を示す。
【0099】
S10では、VPS/SPSを解析し、AUごとに1つまたは複数のPOCサイクルが一定であるかどうかを識別することが考慮される。S11では、コード化されたビデオシーケンス内でAUあたりのPOCサイクルが一定であるかどうかが判断され、そうでない場合、S13において、画像レベルpoc_cycle_au_valueおよびPOC値からアクセスユニットカウントの値を計算し、そうである場合、S12において、シーケンスレベルpoc_cycle_au_valueおよびPOC値からアクセスユニットカウントの値を計算する。S14では、VPS/SPSを解析し、AUごとのPOCサイクルが一定であるかどうかを識別する。これにより、上記の手順を再度開始するか、代替処理に進むことができる。
【0100】
同じまたは他の実施形態では、画像、スライス、またはタイルのPOCの値が異なっている場合であっても、同じAUC値を有するAUに対応する画像、スライス、またはタイルは、同じデコードまたは出力時間インスタンスに関連付けられ得る。したがって、同じAU内の画像、スライス、またはタイル間での相互解析/デコードの依存関係がなくても、同じAUに関連付けられた画像、スライス、またはタイルのすべてまたはサブセットは、並行してデコードされ、同じ時間インスタンスで出力され得る。
【0101】
同じまたは他の実施形態では、画像、スライス、またはタイルのPOCの値が異なっている場合であっても、同じAUC値を有するAUに対応する画像、スライス、またはタイルは、同じ構成/表示時間インスタンスに関連付けられ得る。構成時間がコンテナ形式で含まれている場合、画像が異なるAUに対応していても、画像の構成時間が同じであれば、画像を同じ時間インスタンスで表示することができる。
【0102】
同じまたは他の実施形態では、各画像、スライス、またはタイルは、同じAU内に同じ時間識別子(temporal_id)を有することができる。時間インスタンスに対応する画像、スライス、またはタイルのすべてまたはサブセットは、同じ時間サブレイヤに関連付けられ得る。同じまたは他の実施形態では、各画像、スライス、またはタイルは、同じAU内に同じまたは異なる空間レイヤid(layer_id)を有することができる。時間インスタンスに対応する画像、スライス、またはタイルのすべてまたはサブセットは、同じまたは異なる空間レイヤに関連付けられ得る。
【0103】
図8は、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増加する。
【0104】
上記の実施形態では、画像間またはレイヤ間予測構造および参照画像表示のすべてまたはサブセットは、HEVCにおける既存の参照画像セット(RPS)通知または参照画像リスト(RPL)通知を使用することによってサポートされ得る。RPSまたはRPLでは、選択された参照画像は、POCの値、または現在の画像と選択された参照画像の間のPOCのデルタ値を通知することによって示される。開示された主題について、RPSおよびRPLを使用して、通知を変更することなく、画像間またはレイヤ間予測構造を示すことができるが、以下の制限がある。参照画像のtemporal_idの値が現在の画像のtemporal_idの値よりも大きい場合、現在の画像は動き補償または他の予測のために参照画像を使用しない場合がある。参照画像のlayer_idの値が現在の画像のlayer_idの値よりも大きい場合、現在の画像は動き補償または他の予測のために参照画像を使用しない場合がある。
【0105】
同じおよび他の実施形態では、時間的動きベクトル予測のためのPOC差に基づく動きベクトルスケーリングは、アクセスユニット内の複数の画像にわたって無効にされ得る。したがって、各画像はアクセスユニット内で異なるPOC値を持っている可能性があるが、動きベクトルはスケーリングされず、アクセスユニット内の時間的動きベクトル予測に使用される。これは、同じAU内のPOCが異なる参照画像は、同じ時間インスタンスを持つ参照画像と見なされるためである。したがって、本実施形態では、参照画像が現在の画像に関連付けられたAUに属する場合、動きベクトルスケーリング関数は1を返すことができる。
【0106】
同じおよび他の実施形態では、時間的動きベクトル予測のためのPOC差に基づく動きベクトルスケーリングは、参照画像の空間解像度が現在の画像の空間解像度と異なる場合、複数の画像にわたって任意選択で無効にされ得る。動きベクトルスケーリングが許可されている場合、動きベクトルは、POCの差と、現在の画像と参照画像の間の空間解像度比の両方に基づいてスケーリングされる。
【0107】
同じまたは別の実施形態では、特にpoc_cycle_auが不均一な値を有する場合(vps_contant_poc_cycle_per_au==0の場合)、時間的動きベクトル予測のために、動きベクトルは、POC差ではなくAUC差に基づいてスケーリングされ得る。それ以外の場合(vps_contant_poc_cycle_per_au==1の場合)、AUC差に基づく動きベクトルスケーリングはPOC差に基づく動きベクトルスケーリングと同じになる可能性がある。
【0108】
同じまたは別の実施形態では、動きベクトルがAUC差に基づいてスケーリングされる場合、現在の画像と同じAU(同じAUC値を有する)の参照動きベクトルは、AUC差に基づいてスケーリングされず、現在の画像と参照画像との間の空間解像度比に基づいて、スケーリングなしまたはスケーリングありの動きベクトル予測に使用される。
【0109】
同じおよび他の実施形態では、AUC値は、AUの境界を識別するために使用され、AUの粒度での入力および出力タイミングを必要とする仮想参照デコーダ(HRD)動作に使用される。ほとんどの場合、AUの最上位レイヤを持つデコードされた画像が表示用に出力される。AUC値とlayer_id値は、出力画像を識別するために使用できる。
【0110】
一実施形態では、画像は、1つまたは複数のサブ画像から構成され得る。各サブ画像は、画像の局所領域または領域全体をカバーする場合がある。サブ画像によってサポートされる領域は、別のサブ画像によってサポートされる領域とオーバーラップする場合またはオーバーラップしない場合がある。1つまたは複数のサブ画像で構成される領域は、画像の領域全体をカバーする場合またはカバーしない場合がある。画像がサブ画像からなる場合、サブ画像でサポートされている領域は、画像でサポートされている領域と同じである。
【0111】
同じ実施形態では、サブ画像は、コード化された画像に使用されるコード化方法と同様のコード化方法によってコード化されてもよい。サブ画像は、独立してコード化することができ、または別のサブ画像もしくはコード化された画像に依存してコード化することができる。サブ画像は、別のサブ画像またはコード化された画像からの解析依存関係を持っている場合または持っていない場合がある。
【0112】
同じ実施形態では、コード化されたサブ画像は、1つまたは複数のレイヤに含まれる場合がある。レイヤ内のコード化されたサブ画像は、異なる空間解像度を持つ場合がある。元のサブ画像は、空間的にリサンプリング(アップサンプリングまたはダウンサンプリング)され、異なる空間解像度パラメータでコード化され、レイヤに対応するビットストリームに含まれる場合がある。
【0113】
同じまたは別の実施形態では、(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よりも小さい場合、リサンプリングはダウンサンプリングと同じである。
【0114】
同じまたは別の実施形態では、あるレイヤのコード化されたサブ画像は、同じサブ画像または異なるサブ画像内の別のレイヤのコード化されたサブ画像の視覚的品質とは異なる視覚的品質を有することができる。例えば、レイヤn内のサブ画像iは、量子化パラメータQi,nでコード化され、一方、レイヤm内のサブ画像jは、量子化パラメータQj,mでコード化される。
【0115】
同じまたは別の実施形態では、あるレイヤ内のコード化されたサブ画像は、同じ局所領域の別のレイヤ内のコード化されたサブ画像からの解析またはデコードに依存することなく、独立してデコード可能であり得る。同じ局所領域の別のサブ画像レイヤを参照せずに独立してデコードできるサブ画像レイヤは、独立したサブ画像レイヤである。独立したサブ画像レイヤ内のコード化されたサブ画像は、同じサブ画像レイヤ内の以前にコード化されたサブ画像からのデコードまたは解析の依存関係を有する場合と持たない場合があるが、コード化されたサブ画像は、別のサブ画像レイヤのコード化された画像からの依存関係を有さない場合がある。
【0116】
同じまたは別の実施形態では、あるレイヤ内のコード化されたサブ画像は、同じ局所領域の別のレイヤ内のコード化されたサブ画像からの解析またはデコードに依存して、依存的にデコード可能であり得る。同じ局所領域の別のサブ画像レイヤを参照して依存してデコードできるサブ画像レイヤは、依存したサブ画像レイヤである。従属サブ画像内のコード化されたサブ画像は、同じサブ画像に属するコード化されたサブ画像、同じサブ画像レイヤ内の以前にコード化されたサブ画像、または両方の参照サブ画像を参照し得る。
【0117】
同じまたは別の実施形態では、コード化されたサブ画像は、1つまたは複数の独立サブ画像レイヤおよび1つまたは複数の従属サブ画像レイヤからなる。しかしながら、少なくとも1つの独立サブ画像レイヤが、コード化されたサブ画像のために存在し得る。独立サブ画像レイヤは、レイヤ識別子(layer_id)の値を持つことができる。これは、NALユニットヘッダまたは別の高レベルのシンタックス構造に存在する場合があり、0に等しい。layer_idが0のサブ画像レイヤがベースサブ画像レイヤである。
【0118】
同じまたは別の実施形態では、画像は、1つまたは複数のフォアグラウンドサブ画像および1つのバックグラウンドサブ画像からなってもよい。バックグラウンドサブ画像によってサポートされる領域は、画像の領域と等しい場合がある。フォアグラウンドサブ画像によってサポートされる領域は、バックグラウンドサブ画像によってサポートされる領域とオーバーラップする場合がある。バックグラウンドサブ画像は、ベースサブ画像レイヤであり得るが、フォアグラウンドサブ画像は、非ベース(エンハンスメント)サブ画像レイヤであり得る。1つまたは複数の非ベースサブ画像レイヤは、デコードのために同じベースレイヤを参照することができる。layer_idがaに等しい非ベースサブ画像レイヤはそれぞれ、layer_idがbに等しい非ベースサブ画像レイヤを参照でき、ここで、aはbよりも大きい。
【0119】
同じまたは別の実施形態では、画像は、1つのバックグラウンドサブ画像を伴うまたは伴わない、1つまたは複数のフォアグラウンドサブ画像からなってもよい。各サブ画像は、独自のベースサブ画像レイヤおよび1つまたは複数の非ベース(エンハンスメント)レイヤを有することができる。各ベースサブ画像レイヤは、1つまたは複数の非ベースサブ画像レイヤによって参照され得る。layer_idがaに等しい非ベースサブ画像レイヤはそれぞれ、layer_idがbに等しい非ベースサブ画像レイヤを参照でき、ここで、aはbよりも大きい。
【0120】
同じまたは別の実施形態では、画像は、1つのバックグラウンドサブ画像を伴うまたは伴わない、1つまたは複数のフォアグラウンドサブ画像からなってもよい。(ベースまたは非ベース)サブ画像レイヤ内の各コード化されたサブ画像は、同じサブ画像に属する1つまたは1つまたは複数の非ベースレイヤサブ画像、および同じサブ画像に属していない1つまたは複数の非ベースレイヤサブ画像によって参照され得る。
【0121】
同じまたは別の実施形態では、画像は、1つのバックグラウンドサブ画像を伴うまたは伴わない、1つまたは複数のフォアグラウンドサブ画像からなってもよい。レイヤa内のサブ画像は、同じレイヤ内の複数のサブ画像にさらに分割され得る。レイヤb内の1つまたは複数のコード化されたサブ画像は、レイヤa内の分割されたサブ画像を参照することができる。
【0122】
同じまたは別の実施形態では、コード化されたビデオシーケンス(CVS)は、コード化された画像のグループであり得る。CVSは、1つまたは複数のコード化されたサブ画像シーケンス(CSPS)からなり得、ここで、CSPSは、画像の同じ局所領域をカバーするコード化されたサブ画像のグループであり得る。CSPSは、コード化されたビデオシーケンスの時間分解能と同じまたは異なる時間分解能を持つ場合がある。
【0123】
同じまたは別の実施形態では、CSPSは、コード化され、1つまたは複数のレイヤに含まれる場合がある。CSPSは、1つまたは複数のCSPSレイヤで構成され得る。CSPSに対応する1つまたは複数のCSPSレイヤをデコードすることにより、同じ局所領域に対応するサブ画像のシーケンスを再構築することができる。
【0124】
同じまたは別の実施形態では、CSPSに対応するCSPSレイヤの数は、別のCSPSに対応するCSPSレイヤの数と同じでも異なっていてもよい。
【0125】
同じまたは別の実施形態では、CSPSレイヤは、別のCSPSレイヤとは異なる時間分解能(例えば、フレームレート)を有し得る。元の(非圧縮)サブ画像シーケンスは、時間的にリサンプリング(アップサンプリングまたはダウンサンプリング)され、異なる時間分解能パラメータでコード化され、レイヤに対応するビットストリームに含まれる場合がある。
【0126】
同じまたは別の実施形態では、フレームレートFのサブ画像シーケンスは、レイヤ0に対応するコード化されたビットストリームにコード化され、含まれる可能性があり、一方、F*St,kを有する元のサブ画像シーケンスから時間的にアップサンプリング(またはダウンサンプリング)されたサブ画像シーケンスは、レイヤkに対応するコード化されたビットストリームにコード化され、含まれる可能性があり、ここで、St,kは、レイヤkの時間的サンプリング比を示す。St,kの値が1よりも大きい場合、時間リサンプリングプロセスはフレームレートアップ変換に等しくなる。一方、St,kの値が1よりも小さい場合、時間リサンプリングプロセスはフレームレートダウン変換に等しくなる。
【0127】
同じまたは別の実施形態では、CSPSレイヤaを有するサブ画像が、動き補償または任意のレイヤ間予測のためにCSPSレイヤbを有するサブ画像によって参照されるとき、CSPSレイヤaの空間解像度がCSPSレイヤbの空間解像度と異なる場合、CSPSレイヤaのデコードされたピクセルがリサンプリングされ、参照用に使用される。リサンプリングプロセスでは、アップサンプリングフィルタリングまたはダウンサンプリングフィルタリングが必要になる場合がある。
【0128】
図11は、0に等しいlayer_idを有するバックグラウンドビデオCSPSおよび複数のフォアグラウンドCSPSレイヤを含むビデオビットストリームに関する例1100を示す。コード化されたサブ画像は1つまたは複数のCSPSレイヤからなる場合があるが、フォアグラウンドCSPSレイヤに属していないバックグラウンド領域はベースレイヤからなる場合がある。ベースレイヤにはバックグラウンド領域およびフォアグラウンド領域が含まれる場合があり、エンハンスメントCSPSレイヤにはフォアグラウンド領域が含まれる。エンハンスメントCSPSレイヤは、同じ領域でベースレイヤよりも視覚的な品質が優れている場合がある。エンハンスメントCSPSレイヤは、同じ領域に対応する、ベースレイヤの再構築されたピクセルおよび動きベクトルを参照できる。
【0129】
同じまたは別の実施形態では、ベースレイヤに対応するビデオビットストリームはトラックに含まれ、各サブ画像に対応するCSPSレイヤはビデオファイル内の別個のトラックに含まれる。
【0130】
同じまたは別の実施形態では、ベースレイヤに対応するビデオビットストリームはトラックに含まれ、同じlayer_idを有するCSPSレイヤは別個のトラックに含まれる。この例では、レイヤkに対応するトラックには、レイヤkに対応するCSPSレイヤのみが含まれる。
【0131】
同じまたは別の実施形態では、各サブ画像の各CSPSレイヤは、別個のトラックに格納される。各トラックには、1つまたは複数の他のトラックからの解析またはデコードの依存関係がある場合またはない場合がある。
【0132】
同じまたは別の実施形態では、各トラックには、サブピクチャのすべてまたはサブセットのCSPSレイヤのレイヤiからレイヤjに対応するビットストリームを含むことができ、0<i=<j=<kであり、kはCSPSの最上位レイヤである。
【0133】
同じまたは別の実施形態では、画像は、深度マップ、アルファマップ、3Dジオメトリデータ、占有マップなどを含む、1つまたは複数の関連するメディアデータからなる。そのような関連する時限メディアデータは、それぞれが1つのサブ画像に対応する1つまたは複数のデータサブストリームに分割することができる。
【0134】
同じまたは別の実施形態では、図12は、マルチレイヤサブ画像方法に基づくビデオ会議の例1200を示す。ビデオストリームには、バックグラウンド画像に対応する1つのベースレイヤビデオビットストリーム1201と、フォアグラウンドサブ画像に対応する1つまたは複数のエンハンスメントレイヤビデオビットストリーム1202と、が含まれる。各エンハンスメントレイヤビデオビットストリーム1202は、CSPSレイヤに対応する。ディスプレイでは、デフォルトでベースレイヤに対応する画像が表示される。1人または複数のユーザのピクチャーインピクチャー(PIP)が含まれる。クライアントの制御によって特定のユーザが選択されると、選択されたユーザに対応するエンハンスメントCSPSレイヤ1202がデコードされ、拡張された品質または空間解像度で表示される。図13は、操作の図1300を示す。
【0135】
S20では、マルチレイヤを有するビデオビットストリームのデコードがあり、S21では、バックグラウンド領域および1つまたは複数のフォアグラウンドサブ画像の識別がある。S22では、特定のサブ画像領域が選択されたかどうかが考慮され、そうでなければ、S24で、バックグラウンド領域がデコードされて表示され、そうであれば、S23で、拡張サブ画像がデコードされて表示される。
【0136】
同じまたは別の実施形態では、ネットワークミドルボックス(ルータなど)は、その帯域幅に応じて、レイヤのサブセットを選択してユーザに送信することができる。画像/サブ画像の編成は、帯域幅の適応に使用できる。例えば、ユーザが帯域幅を持っていない場合、ルータはレイヤを削除するか、重要性により、または使用されているセットアップに基づいていくつかのサブ画像を選択し、これは、帯域幅に適応するために動的に実行できる。
【0137】
図14は、360°ビデオ1400のユースケースを示す。球形の360°画像1401が平面画像に投影される場合、投影360°画像は、ベースレイヤ1402として複数のサブ画像に分割される。特定のサブ画像のエンハンスメントレイヤ1403は、コード化されてクライアントに送信される。デコーダは、すべてのサブ画像を含むベースレイヤと、選択されたサブ画像のエンハンスメントレイヤとの両方をデコードできる場合がある。現在のビューポートが選択したサブ画像と同一である場合、表示された画像は、エンハンスメントレイヤを使用してデコードされたサブ画像でより高品質になる可能性がある。そうしないと、ベースレイヤでデコードされた画像が低品質で表示される可能性がある。
【0138】
同じまたは別の実施形態では、表示のための任意のレイアウト情報は、補足情報(SEIメッセージまたはメタデータなど)としてファイル内に存在することができる。通知されたレイアウト情報に応じて、1つまたは複数のデコードされたサブ画像が再配置され、表示され得る。レイアウト情報は、ストリーミングサーバもしくはブロードキャスタによって通知されるか、またはネットワークエンティティもしくはクラウドサーバによって再生成されるか、またはユーザのカスタマイズされた設定によって決定される場合がある。
【0139】
一実施形態では、入力画像が1つまたは複数の(長方形の)サブ領域に分割されるとき、各サブ領域は、独立レイヤとしてコード化され得る。局所領域に対応する各独立レイヤは、一意のlayer_id値を持つ場合がある。独立レイヤごとに、サブ画像のサイズおよび位置情報が通知され得る。例えば、画像サイズ(幅、高さ)、左上隅のオフセット情報(x_offset,y_offset)である。図15は、分割されたサブ画像のレイアウトの例1500、そのサブ画像のサイズおよび位置情報、および対応する画像予測構造を示す。サブ画像サイズおよびサブ画像位置を含むレイアウト情報は、パラメータセット、スライスまたはタイルグループのヘッダ、またはSEIメッセージなどの高レベルのシンタックス構造で通知される場合がある。
【0140】
同じ実施形態では、独立レイヤに対応する各サブ画像は、AU内にその固有のPOC値を有することができる。RPSまたはRPL構造でシンタックス要素を用いてDPBに格納された画像間の参照画像を示す場合、レイヤに対応する各サブ画像のPOC値を使用することができる。
【0141】
同じまたは別の実施形態では、(レイヤ間)予測構造を示すために、layer_idは使用されなくてもよく、POC(デルタ)値が使用されてもよい。
【0142】
同じ実施形態では、レイヤ(または局所領域)に対応するNに等しいPOC値を有するサブ画像は、動き補償予測の同じレイヤ(または同じ局所領域)に対応する、N+Kに等しいPOC値を有するサブ画像の参照画像として使用されても、されなくてもよい。ほとんどの場合、数Kの値は、(独立した)レイヤの最大数に等しくなる可能性があり、サブ領域の数と同じになる可能性がある。
【0143】
同じまたは別の実施形態では、図16は、図15の拡張ケースを示す。入力画像が複数(例えば4つ)のサブ領域に分割される場合、各局所領域は1つまたは複数のレイヤでコード化され得る。この場合、独立レイヤの数はサブ領域の数に等しくてもよく、1つまたは複数のレイヤがサブ領域に対応していてもよい。したがって、各サブ領域は、1つまたは複数の独立レイヤおよび0個または複数の従属レイヤでコード化することができる。
【0144】
同じ実施形態では、図16には、入力画像が4つのサブ領域に分割され得る例示的な図1600が示される。右上のサブ領域は、レイヤ1およびレイヤ4の2つのレイヤとしてコード化でき、右下のサブ領域は、レイヤ3およびレイヤ5の2つのレイヤとしてコード化できる。この場合、レイヤ4は動き補償予測のためにレイヤ1を参照することができ、一方、レイヤ5は動き補償のためにレイヤ3を参照することができる。
【0145】
同じまたは別の実施形態では、レイヤ境界をまたぐインループフィルタリング(デブロッキングフィルタリング、適応インループフィルタリング、リシェーパー、バイラテラルフィルタリング、または任意の深層学習ベースのフィルタリングなど)を(任意選択で)無効にすることができる。
【0146】
同じまたは別の実施形態では、レイヤ境界をまたぐ動き補償予測またはイントラブロックコピーを(任意選択で)無効にすることができる。
【0147】
同じまたは別の実施形態では、サブ画像の境界における動き補償予測またはインループフィルタリングのための境界パディングは、任意選択で処理されてもよい。境界パディングが処理されるかどうかを示すフラグは、パラメータセット(VPS、SPS、PPS、またはAPS)、スライスもしくはタイルグループヘッダ、またはSEIメッセージなどの高レベルのシンタックス構造で通知される場合がある。
【0148】
同じまたは別の実施形態では、サブ領域(またはサブ画像)のレイアウト情報は、VPSまたはSPSで通知されてもよい。図17は、VPSおよびSPSにおけるシンタックス要素の例1700を示す。この例では、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の値は、それぞれ、入力画像の幅および高さに等しい場合がある。
【0149】
同じ実施形態では、vps_full_pic_width_in_luma_samplesおよびvps_full_pic_height_in_luma_samplesの値は、デコードには使用され得ないが、構成および表示に使用され得る。
【0150】
同じ実施形態では、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で通知される場合がある。
【0151】
同じ実施形態では、サブ領域の左上隅の位置情報(pic_offset_x、pic_offset_y)は、デコードには使用され得ないが、構成および表示に使用され得る。
【0152】
同じまたは別の実施形態では、入力画像のすべてまたはサブセットのサブ領域のレイアウト情報(サイズおよび位置)、レイヤ間の依存関係情報は、パラメータセットまたはSEIメッセージで通知される場合がある。図18は、サブ領域のレイアウト、レイヤ間の依存関係、およびサブ領域と1つまたは複数のレイヤとの間の関係の情報を示すシンタックス要素の例1800を示す。この例では、シンタックス要素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番目のサブ領域の幅および高さを示す。
【0153】
一実施形態では、プロファイルティアレベル情報の有無にかかわらず出力される1つまたは複数のレイヤの1つを示すために出力レイヤセットを指定する1つまたは複数のシンタックス要素は、高レベルシンタックス構造、例えば、VPS、DPS、SPS、PPS、APS、またはSEIメッセージで通知される場合がある。図19を参照すると、VPSを参照するコード化されたビデオシーケンス内の出力レイヤセット(OLS)の数を示すシンタックス要素num_output_layer_setsは、VPSで通知される場合がある。出力レイヤセットごとに、出力レイヤの数だけoutput_layer_flagを通知できる。
【0154】
同じ実施形態では、1に等しいoutput_layer_flag[i]は、i番目のレイヤが出力されることを指定する。0に等しいvps_output_layer_flag[i]は、i番目のレイヤが出力されないことを指定する。
【0155】
同じまたは別の実施形態では、各出力レイヤセットのプロファイルティアレベル情報を指定する1つまたは複数のシンタックス要素は、高レベルシンタックス構造、例えば、VPS、DPS、SPS、PPS、APS、またはSEIメッセージで通知される場合がある。さらに図19を参照すると、VPSを参照するコード化されたビデオシーケンスにおけるOLSごとのプロファイルティアレベル情報の数を示すシンタックス要素num_profile_tile_levelがVPSにおいて通知される場合がある。各出力レイヤセットについて、プロファイルティアレベル情報のシンタックス要素のセット、またはプロファイルティアレベル情報のエントリのうち特定のプロファイルティアレベル情報を示すインデックスが、出力レイヤの数だけ通知される場合がある。
【0156】
同じ実施形態では、profile_tier_level_idx[i][j]は、i番目のOLSのj番目のレイヤに適用されるprofile_tier_level()シンタックス構造の、VPSのprofile_tier_level()シンタックス構造のリストへのインデックスを指定する。
【0157】
同じまたは別の実施形態では、図20の図の2000を参照すると、最大レイヤの数が1よりも大きい場合(vps_max_layers_minus1>0)、シンタックス要素num_profile_tile_levelおよび/またはnum_output_layer_setsが通知され得る。
【0158】
同じまたは別の実施形態では、図20を参照すると、i番目の出力レイヤセットに対する出力レイヤ通知のモードを示すシンタックス要素vps_output_layers_mode[i]がVPSに存在することができる。
【0159】
同じ実施形態では、0に等しいvps_output_layers_mode[i]は、i番目の出力レイヤセットで最高レイヤのみが出力されることを指定する。1に等しいvps_output_layer_mode[i]は、i番目の出力レイヤセットですべてのレイヤが出力されることを指定する。2に等しいvps_output_layer_mode[i]は、出力されるレイヤが、i番目の出力レイヤセットでvps_output_layer_flag[i][j]が1に等しいレイヤであることを指定する。より多くの値が予約されている可能性がある。
【0160】
同じ実施形態では、i番目の出力レイヤセットのvps_output_layers_mode[i]の値に応じて、output_layer_flag[i][j]が通知される場合またはされない場合がある。
【0161】
同じまたは別の実施形態では、図20を参照すると、フラグvps_ptl_signal_flag[i]は、i番目の出力レイヤセットに対して存在し得る。vps_ptl_signal_flag[i]の値に応じて、i番目の出力レイヤセットのプロファイルティアレベル情報が通知される場合または通知されない場合がある。
【0162】
同じまたは別の実施形態では、図21の図の2100を参照すると、現在のCVS内のサブ画像の数max_subpics_minus1は、高レベルシンタックス構造、例えば、VPS、DPS、SPS、PPS、APS、またはSEIメッセージで通知され得る。
【0163】
同じ実施形態では、図21を参照すると、サブ画像の数が1よりも大きい場合(max_subpics_minus1>0)、i番目のサブ画像のサブ画像識別子sub_pic_id[i]が通知され得る。
【0164】
同じまたは別の実施形態では、各出力レイヤセットの各レイヤに属するサブ画像識別子を示す1つまたは複数のシンタックス要素は、VPSで通知され得る。図22の図の2200を参照すると、sub_pic_id_layer[i][j][k]は、i番目の出力レイヤセットのj番目のレイヤに存在するk番目のサブ画像を示す。これらの情報を用いて、デコーダは、特定の出力レイヤセットの各レイヤに対してどのサブ画像がデコードおよび出力され得るかを認識することができる。
【0165】
一実施形態では、画像ヘッダ(PH)は、コード化された画像のすべてのスライスに適用されるシンタックス要素を含むシンタックス構造である。画像ユニット(PU)は、指定された分類規則に従って互いに関連付けられ、デコード順で連続し、正確に1つのコード化された画像を含むNALユニットのセットである。PUは、画像ヘッダ(PH)およびコード化された画像を含む1つまたは複数のVCL NALユニットを含むことができる。
【0166】
一実施形態では、SPS(RBSP)は、それが参照される前にデコードプロセスに利用可能であり、TemporalIdが0である少なくとも1つのAUに含まれるか、または外部手段を介して提供される。
【0167】
一実施形態では、SPS(RBSP)は、それが参照される前にデコードプロセスに利用可能であり、SPSを参照する1つまたは複数のPPSを含む、CVS内のTemporalIdが0である少なくとも1つのAUに含まれるか、または外部手段を介して提供される。
【0168】
一実施形態では、SPS(RBSP)は、それが1つまたは複数のPPSによって参照される前にデコードプロセスに利用可能であり、SPSを参照する1つまたは複数のPPSを含む、CVS内のSPS NALユニットを参照するPPS NALユニットの最低nuh_layer_id値に等しいnuh_layer_idを有する少なくとも1つのPUに含まれるか、または外部手段を介して提供される。
【0169】
一実施形態では、SPS(RBSP)は、それが1つまたは複数のPPSによって参照される前にデコードプロセスに利用可能であり、TemporalIdが0であり、SPS NALユニットを参照するPPS NALユニットの最低nuh_layer_id値に等しいnuh_layer_idを有する少なくとも1つのPUに含まれるか、または外部手段を介して提供される。
【0170】
一実施形態では、SPS(RBSP)は、それが1つまたは複数のPPSによって参照される前にデコードプロセスに利用可能であり、TemporalIdが0であり、SPSを参照する1つまたは複数のPPSを含む、CVS内のSPS NALユニットを参照するPPS NALユニットの最低nuh_layer_id値に等しいnuh_layer_idを有する少なくとも1つのPUに含まれるか、または外部手段を介して提供されるか、または外部手段を介して提供される。
【0171】
同じまたは別の実施形態では、pps_seq_parameter_set_idは、参照されるSPSのsps_seq_parameter_set_idの値を指定する。pps_seq_parameter_set_idの値は、CLVS内のコード化された画像によって参照されるすべてのPPSで同じである場合がある。
【0172】
同じまたは別の実施形態では、CVS内のsps_seq_parameter_set_idの特定の値を持つすべてのSPS NALユニットは、同じコンテンツを有することができる。
【0173】
同じまたは別の実施形態では、nuh_layer_id値に関係なく、SPS NALユニットは、sps_seq_parameter_set_idの同じ値空間を共有することができる。
【0174】
同じまたは別の実施形態では、SPS NALユニットのnuh_layer_id値は、SPS NALユニットを参照するPPS NALユニットの最低nuh_layer_id値に等しくてもよい。
【0175】
一実施形態では、mに等しいnuh_layer_idを有するSPSが、nに等しいnuh_layer_idを有する1つまたは複数のPPSによって参照される場合、nuh_layer_idがmに等しいレイヤは、nuh_layer_idがnに等しいレイヤ、またはnuh_layer_idがmに等しいレイヤの(直接または間接)参照レイヤと同じである可能性がある。
【0176】
一実施形態では、PPS(RBSP)は、それが参照される前にデコードプロセスに利用可能であり、TemporalIdがPPS NALユニットのTemporalIdと等しい少なくとも1つのAUに含まれるか、または外部手段を介して提供されるものとする。
【0177】
一実施形態では、PPS(RBSP)は、それが参照される前にデコードプロセスに利用可能であり、PPSを参照する1つまたは複数のPH(またはコード化されたスライスNALユニット)を含む、CVS内のTemporalIdがPPS NALユニットのTemporalIdと等しい少なくとも1つのAUに含まれるか、または外部手段を介して提供される。
【0178】
一実施形態では、PPS(RBSP)は、それが1つまたは複数のPH(またはコード化されたスライスNALユニット)によって参照される前にデコードプロセスに利用可能であり、PPSを参照する1つまたは複数のPH(またはコード化されたスライスNALユニット)を含む、CVS内のPPS NALユニットを参照するコード化されたスライスNALユニットの最低nuh_layer_id値に等しいnuh_layer_idを有する少なくとも1つのPUに含まれるか、または外部手段を介して提供される。
【0179】
一実施形態では、PPS(RBSP)は、それが1つまたは複数のPH(またはコード化されたスライスNALユニット)によって参照される前にデコードプロセスに利用可能であり、PPSを参照する1つまたは複数のPH(またはコード化されたスライスNALユニット)を含む、TemporalIdがPPS NALユニットのTemporalIdと等しく、CVS内の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値は、PPS NALユニットを参照するNALユニットを参照するコード化されたスライスNALユニットの最低nuh_layer_id値に等しくてもよい。
【0184】
一実施形態では、mに等しいnuh_layer_idを有するPPSが、nに等しいnuh_layer_idを有する1つまたは複数のコード化されたスライスNALユニットによって参照される場合、nuh_layer_idがmに等しいレイヤは、nuh_layer_idがnに等しいレイヤ、またはnuh_layer_idがmに等しいレイヤの(直接または間接)参照レイヤと同じである可能性がある。
【0185】
一実施形態では、PPS(RBSP)は、それが参照される前にデコードプロセスに利用可能であり、TemporalIdがPPS NALユニットのTemporalIdと等しい少なくとも1つのAUに含まれるか、または外部手段を介して提供されるものとする。
【0186】
一実施形態では、PPS(RBSP)は、それが参照される前にデコードプロセスに利用可能であり、PPSを参照する1つまたは複数のPH(またはコード化されたスライスNALユニット)を含む、CVS内のTemporalIdがPPS NALユニットのTemporalIdと等しい少なくとも1つのAUに含まれるか、または外部手段を介して提供される。
【0187】
一実施形態では、PPS(RBSP)は、それが1つまたは複数のPH(またはコード化されたスライスNALユニット)によって参照される前にデコードプロセスに利用可能であり、PPSを参照する1つまたは複数のPH(またはコード化されたスライスNALユニット)を含む、CVS内のPPS NALユニットを参照するコード化されたスライスNALユニットの最低nuh_layer_id値に等しいnuh_layer_idを有する少なくとも1つのPUに含まれるか、または外部手段を介して提供される。
【0188】
一実施形態では、PPS(RBSP)は、それが1つまたは複数のPH(またはコード化されたスライスNALユニット)によって参照される前にデコードプロセスに利用可能であり、PPSを参照する1つまたは複数のPH(またはコード化されたスライスNALユニット)を含む、TemporalIdがPPS NALユニットのTemporalIdと等しく、CVS内のPPS NALユニットを参照するコード化されたスライスNALユニットの最低nuh_layer_id値に等しいnuh_layer_idを有する少なくとも1つのPUに含まれるか、または外部手段を介して提供される。
【0189】
同じまたは別の実施形態では、PHのph_pic_parameter_set_idは、使用中の参照されるPPSのpps_pic_parameter_set_idの値を指定する。pps_seq_parameter_set_idの値は、CLVS内のコード化された画像によって参照されるすべてのPPSで同じである場合がある。
【0190】
同じまたは別の実施形態では、PU内のpps_pic_parameter_set_idの特定の値を持つすべてのPPS NALユニットは、同じコンテンツを有することができるものとする。
【0191】
同じまたは別の実施形態では、nuh_layer_id値に関係なく、PPS NALユニットは、pps_pic_parameter_set_idの同じ値空間を共有することができる。
【0192】
同じまたは別の実施形態では、PPS NALユニットのnuh_layer_id値は、PPS NALユニットを参照するNALユニットを参照するコード化されたスライスNALユニットの最低nuh_layer_id値に等しくてもよい。
【0193】
一実施形態では、mに等しいnuh_layer_idを有するPPSが、nに等しいnuh_layer_idを有する1つまたは複数のコード化されたスライスNALユニットによって参照される場合、nuh_layer_idがmに等しいレイヤは、nuh_layer_idがnに等しいレイヤ、またはnuh_layer_idがmに等しいレイヤの(直接または間接)参照レイヤと同じである可能性がある。
【0194】
一実施形態では、フラグno_temporal_sublayer_switching_flagがDPS、VPS、またはSPSで通知されると、1に等しいフラグを含むパラメータセットを参照するPPSのTemporalId値は0に等しくなり得、1に等しいフラグを含むパラメータセットを参照するPPSのTemporalId値は、パラメータセットのTemporalId値以上である可能性がある。
【0195】
一実施形態では、各PPS(RBSP)は、それが参照される前にデコードプロセスに利用可能であり、TemporalIdがコード化されたスライスNALユニット(またはPH NALユニット)のTemporalId以下である少なくとも1つのAUに含まれるか、または外部手段を介して提供され得る。PPSを参照するコード化されたスライスNALユニットを含むAUよりも前のAUにPPS NALユニットが含まれる場合、一時的な上位レイヤスイッチングを可能にするVCL NALユニット、またはnal_unit_typeがSTSA_NUTに等しいVCL NALユニット(これは、VCL NALユニットの画像が段階的な一時的サブレイヤアクセス(STSA)画像である可能性があることを示す)は、PPS NALユニットの後、およびAPSを参照するコード化されたスライスNALユニットの前に存在しない場合がある。
【0196】
同じまたは別の実施形態では、PPS NALユニットおよびPPSを参照するコード化されたスライスNALユニット(およびそのPH NALユニット)は、同じAUに含まれ得る。
【0197】
同じまたは別の実施形態では、PPS NALユニットおよびSTSA NALユニットは、PPSを参照するコード化されたスライスNALユニット(およびそのPH NALユニット)よりも前の同じAUに含まれ得る。
【0198】
同じまたは別の実施形態では、STSA NALユニット、PPS NALユニット、およびPPSを参照するコード化されたスライスNALユニット(およびそのPH NALユニット)は、同じAUに存在し得る。
【0199】
同じ実施形態では、PPSを含むVCL NALユニットのTemporalId値は、前のSTSA NALユニットのTemporalId値と等しくてもよい。
【0200】
同じ実施形態では、PPS NALユニットの画像順序カウント(POC)値は、STSA NALユニットのPOC値以上であり得る。
【0201】
同じ実施形態では、PPS NALユニットを参照するコード化されたスライスまたはPH NALユニットの画像順序カウント(POC)値は、参照されるPPS NALユニットのPOC値以上であり得る。
【0202】
APS NALユニットは、nuh_layer_id値に関係なく、adaptation_parameter_set_idおよびaps_params_typeの同じ値空間を共有することができる。
【0203】
sps_video_parameter_set_idの値は、レイヤを超えてCVS内のコード化された画像によって参照されるすべてのSPSで同じであるものとする。
【0204】
一実施形態では、現在のVVC仕様ドラフトJVET-P2001のNALユニットヘッダセマンティクス(JVET-Q0041によって編集的に更新)において、非VCL NALユニットのnuh_layer_idの値は、次のように制約される:nal_unit_typeがPPS_NUT、PREFIX_APS_NUT、またはSUFFIX_APS_NUTに等しい場合、nuh_layer_idは、NALユニットを参照するコード化されたスライスNALユニットの最低nuh_layer_id値に等しいものとする。そうでなければ、nal_unit_typeがSPS_NUTに等しい場合、nuh_layer_id値は、SPS NALユニットを参照するPPS NALユニットの最低nuh_layer_id値に等しいものとする。
【0205】
制約は、パラメータセット(SPS、PPS、APS)がレイヤを超えて参照できるようにすることを目的としているため、コード化されたスライスNALユニットは、同じまたは下位のレイヤのPPS/APS NALユニットのみを参照でき/参照するものとし、PPS NALユニットは、同じまたは下位のレイヤのSPS NALユニットのみを参照できる/参照するものとする。コード化されたスライスVCL NALユニットは、所与の制約で、非参照レイヤのPPS/APS NALユニットを参照できることに注意されたい。例えば、図22は、2層の単純な例2200を示しており、レイヤBのnuh_layer_id値はレイヤAのnuh_layer_id値よりも大きく、レイヤAはレイヤBの直接/間接参照レイヤではない。その場合、非参照レイヤでのPPS/APS参照を禁止する制約がないため、レイヤBのコード化されたスライスVCL NALユニットは、レイヤAのnuh_layer_idと等しいnuh_layer_idを持つPPS/APSを参照できる。それでも、PPS/APSのnuh_layer_idは、NALユニットを参照するコード化されたスライスNALユニットの最低nuh_layer_id値に等しい。この例では、レイヤAおよびレイヤBは異なる(出力)レイヤセットに属している可能性があり、レイヤAのNALユニットはビットストリーム抽出プロセスによって破棄できるが、レイヤBのNALユニットは出力ビットストリームに依然として存在する。そして、レイヤBのコード化されたスライスNALユニットによって参照されるPPS/APS NALユニットは、出力ビットストリームに存在しない可能性がある。
【0206】
同じまたは別の実施形態では、上記の問題に対処するために、現在の制約を改善する必要がある。提案された制約は、コード化されたスライスNALユニットは、同じレイヤまたは(直接)参照レイヤ内のPPS/APSのみを参照するものとし、PPS NALユニットは、同じレイヤまたは(直接)参照レイヤ内のSPSのみを参照するものとする。図22で、レイヤAがレイヤBの参照レイヤである場合、両方のレイヤは同じ(出力)レイヤセットに属するものとし、抽出されたビットストリームに常に存在するものとする。その後、別のレイヤのNALユニットによって参照されるSPS/PPS/APS VCL NALユニットは削除されない。
【0207】
実施形態によれば、NALユニットヘッダセマンティクスには、次のような特徴が含まれる。コード化されたスライスNALユニットが、nal_unit_typeがPPS_NUT、PREFIX_APS_NUT、またはSUFFIX_APS_NUTに等しい非VCL NALユニットを参照する場合、非VCL NALユニットのレイヤは、コード化されたスライスNALユニットのレイヤ、またはコード化されたスライスNALユニットの直接参照レイヤと等しいものとし、PPS NALユニットがSPS NALユニットを参照する場合、SPS NALユニットのレイヤは、PPS NALユニットのレイヤ、またはPPS NALユニットの直接参照レイヤと等しいものとする。
【0208】
実施形態によれば、NALユニットヘッダセマンティクスには、次のような特徴が含まれる。コード化されたスライスNALユニットが、nal_unit_typeがPPS_NUT、PREFIX_APS_NUT、またはSUFFIX_APS_NUTに等しい非VCL NALユニットを参照する場合、非VCL NALユニットのレイヤは、コード化されたスライスNALユニットのレイヤ、またはコード化されたスライスNALユニットの直接/間接参照レイヤと等しいものとし、PPS NALユニットがSPS NALユニットを参照する場合、SPS NALユニットのレイヤは、PPS NALユニットのレイヤ、またはPPS NALユニットの直接/間接参照レイヤと等しいものとする。
【0209】
上述した適応解像度パラメータを通知する技術は、コンピュータ可読命令を使用し、1つまたは複数のコンピュータ可読媒体に物理的に記憶されたコンピュータソフトウェアとして実装することができる。例えば、図7は、開示された主題の特定の実施形態を実施するのに適したコンピュータシステム700を示す。
【0210】
コンピュータソフトウェアは、コンピュータ中央処理装置(CPU)、グラフィックス処理装置(GPU)などによって直接、または翻訳、マイクロコード実行などを介して実行することができる命令を含むコードを作成するために、アセンブリ、コンパイル、リンクなどの機構を受けることができる任意の好適な機械コードまたはコンピュータ言語を使用してコード化することができる。
【0211】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、モノのインターネットデバイスなどを含む様々な種類のコンピュータまたはその構成要素上で実行することができる。
【0212】
コンピュータシステム700について図7に示す構成要素は、本質的に例示的なものであり、本開示の実施形態を実施するコンピュータソフトウェアの使用または機能の範囲に関する制限を示唆することを意図するものではない。構成要素の構成は、コンピュータシステム700の例示的な実施形態に示されている構成要素のいずれかまたは組み合わせに関する依存関係または要件を有すると解釈されるべきではない。
【0213】
コンピュータシステム700は、特定のヒューマンインターフェース入力デバイスを含むことができる。そのようなヒューマンインターフェース入力デバイスは、例えば、触知入力(例えば、キーストローク、スワイプ、データグローブの動き)、音声入力(例えば、声、拍手)、視覚入力(例えば、ジェスチャ)、嗅覚入力(図示せず)を介した1人以上の人間のユーザによる入力に応答することができる。ヒューマンインターフェースデバイスは、オーディオ(例えば、音声、音楽、周囲音)、画像(例えば、走査画像、写真画像は静止画像カメラから取得する)、ビデオ(2次元ビデオ、立体ビデオを含む3次元ビデオなど)など、必ずしも人間による意識的な入力に直接関連しない特定の媒体を取り込むために使用することもできる。
【0214】
入力ヒューマンインターフェースデバイスは、キーボード701、マウス702、トラックパッド703、タッチスクリーン710、データグローブ、ジョイスティック705、マイクロフォン706、スキャナ707、カメラ708のうちの1つまたは複数(各々のうちのただ1つ)を含むことができる。
【0215】
コンピュータシステム700はまた、特定のヒューマンインターフェース出力デバイスを含むこともできる。そのようなヒューマンインターフェース出力デバイスは、例えば、触知出力、音、光、および匂い/味によって1人または複数の人間のユーザの感覚を刺激することができる。そのようなヒューマンインターフェース出力デバイスは、触知出力デバイス(例えば、タッチスクリーン710、データグローブ、またはジョイスティック705による触覚フィードバックであるが、入力デバイスとして機能しない触覚フィードバックデバイスも存在し得る)、音声出力デバイス(例えば、スピーカ709、ヘッドホン(図示せず))、視覚出力デバイス(例えば、CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含むスクリーン710であって、それぞれがタッチスクリーン入力機能を有するかまたは有さず、それぞれが触知フィードバック機能を有するかまたは有さず、その一部は、ステレオ出力などの手段を介して二次元視覚出力または三次元超出力を出力することができてもよい、スクリーン710、仮想現実メガネ(図示せず)、ホログラフィックディスプレイ、およびスモークタンク(図示せず))、およびプリンタ(図示せず)を含むことができる。
【0216】
コンピュータシステム700はまた、人間がアクセス可能な記憶デバイスおよびそれらの関連媒体、例えば、CD/DVDなどの媒体721を有するCD/DVD ROM/RW720を含む光学媒体、サムドライブ722、リムーバブルハードドライブまたはソリッドステートドライブ723、テープおよびフロッピー(登録商標)ディスク(図示せず)などのレガシー磁気媒体、セキュリティドングル(図示せず)などの専用ROM/ASIC/PLDベースのデバイスなどを含むことができる。
【0217】
当業者はまた、本開示の主題に関連して使用される「コンピュータ可読媒体」という用語が、伝送媒体、搬送波、または他の一時的シグナルを包含しないことを理解すべきである。
【0218】
コンピュータシステム700はまた、1つまたは複数の通信ネットワーク755へのインターフェースを含むことができる。ネットワーク755は、例えば、無線、有線、光であり得る。ネットワーク755はさらに、ローカル、広域、メトロポリタン、車両および産業、リアルタイム、遅延耐性などであり得る。ネットワーク755の例には、イーサネット(登録商標)、無線LANなどのローカルエリアネットワーク、GSM、3G、4G、5G、LTEなどを含むセルラーネットワーク、ケーブルTV、衛星TV、および地上波放送TVを含むTV有線または無線広域デジタルネットワーク、CANBusを含む車両および産業用などが含まれる。特定のネットワークは、一般に、特定の汎用データポートまたは周辺バス749に取り付けられた外部ネットワークインターフェースアダプタ754を必要とする(例えば、コンピュータシステム700のUSBポートなど)。他のものは、一般に、後述するようなシステムバスへの取り付け(例えば、PCコンピュータシステムへのイーサネット(登録商標)インターフェースまたはスマートフォンコンピュータシステムへのセルラーネットワークインターフェース)によってコンピュータシステム700のコアに統合される。これらのネットワークのいずれかを使用して、コンピュータシステム700は、他のエンティティと通信することができる。そのような通信は、例えば、ローカルまたは広域デジタルネットワークを使用する他のコンピュータシステムに対して、単方向、受信のみ(例えば、放送TV)、単方向送信のみ(例えば、特定のCANbusデバイスへのCANbus)、または双方向であり得る。特定のプロトコルおよびプロトコルスタックは、上述したように、それらのネットワークおよびネットワークインターフェースのそれぞれで使用することができる。
【0219】
前述のヒューマンインターフェースデバイス、ヒューマンアクセス記憶デバイス、およびネットワークインターフェースは、コンピュータシステム700のコア740に取り付けることができる。
【0220】
コア740は、1つまたは複数の中央処理装置(CPU)741、グラフィックス処理装置(GPU)742、フィールドプログラマブルゲートエリア(FPGA)743の形態の専用プログラマブル処理装置、特定のタスク用のハードウェアアクセラレータ744などを含むことができる。これらのデバイスは、読み出し専用メモリ(ROM)745、ランダムアクセスメモリ746、内部非ユーザアクセス可能ハードドライブなどの内部大容量ストレージ747、SSDなどと共に、システムバス748を介して接続されてもよい。いくつかのコンピュータシステムでは、システムバス748は、追加のCPU、GPUなどによる拡張を可能にするために、1つまたは複数の物理プラグの形態でアクセス可能であり得る。周辺デバイスは、コアのシステムバス748に直接取り付けることも、周辺バス749を介して取り付けることもできる。周辺バスのアーキテクチャには、PCI、USBなどが含まれる。
【0221】
CPU741、GPU742、FPGA743、およびアクセラレータ744は、組み合わせて上述のコンピュータコードを構成することができる特定の命令を実行することができる。そのコンピュータコードは、ROM745またはRAM746に記憶することができる。移行データはまた、RAM746に記憶することができ、一方、永続データは、例えば内部大容量ストレージ747に記憶することができる。メモリデバイスのいずれかへの高速記憶および検索は、1つまたは複数のCPU741、GPU742、大容量ストレージ747、ROM745、RAM746などと密接に関連付けることができるキャッシュメモリの使用によって可能にすることができる。
【0222】
コンピュータ可読媒体は、様々なコンピュータ実装動作を実行するためのコンピュータコードを有することができる。媒体およびコンピュータコードは、本開示の目的のために特別に設計および構築されたものであってもよく、またはコンピュータソフトウェア技術の当業者に周知で利用可能な種類のものであってもよい。
【0223】
限定ではなく、例として、アーキテクチャ700、具体的にはコア740を有するコンピュータシステムは、(CPU、GPU、FPGA、アクセラレータなどを含む)1つまたは複数の有形のコンピュータ可読媒体で具現化されたソフトウェアを実行するプロセッサの結果として機能を提供することができる。そのようなコンピュータ可読媒体は、上述のようなユーザアクセス可能な大容量ストレージ、ならびにコア内部大容量ストレージ747またはROM745などの非一時的な性質のコア740の特定のストレージに関連付けられた媒体とすることができる。本開示の様々な実施形態を実施するソフトウェアは、そのようなデバイスに格納され、コア740によって実行することができる。コンピュータ可読媒体は、特定の必要性に応じて、1つまたは複数のメモリデバイスまたはチップを含むことができる。ソフトウェアは、コア740、具体的にはその中のプロセッサ(CPU、GPU、FPGAなどを含む)に、RAM746に記憶されたデータ構造を定義すること、およびソフトウェアによって定義された処理に従ってそのようなデータ構造を修正することを含む、本明細書に記載の特定の処理または特定の処理の特定の部分を実行させることができる。加えて、または代替として、コンピュータシステムは、ハードワイヤードまたは他の方法で回路(例えば、アクセラレータ744)に具現化された論理の結果として機能を提供することができ、ソフトウェアの代わりに、またはソフトウェアと共に動作して、本明細書に記載の特定の処理または特定の処理の特定の部分を実行することができる。ソフトウェアへの参照は、適切な場合には、論理を包含することができ、逆もまた同様である。コンピュータ可読媒体への言及は、必要に応じて、実行のためのソフトウェアを記憶する回路(集積回路(IC)など)、実行のための論理を具現化する回路、またはその両方を包含することができる。本開示は、ハードウェアとソフトウェアとの任意の適切な組み合わせを包含する。
【0224】
本開示はいくつかの例示的な実施形態を説明してきたが、本開示の範囲内に入る変更、置換、および様々な代替の等価物がある。したがって、当業者は、本明細書に明示的に示されていないまたは記載されていないが、本開示の原理を具体化し、したがってその精神および範囲内にある多数のシステムおよび方法を考案することができることが理解されよう。
【符号の説明】
【0225】
4 ビデオコーダ
100 通信システム
110 第1の端末
120 第2の端末
130 第2の端末対
140 第2の端末対
150 通信ネットワーク
201 カメラ
201 ビデオソース
202 ビデオサンプルストリーム
203 エンコーダ、ビデオコーダ、ビデオエンコーダ
203 ビデオソース
204 ビデオビットストリーム
205 ストリーミングサーバ
206 ストリーミングクライアント
207 ビデオビットストリーム
208 ストリーミングクライアント
209 ビデオビットストリーム
210 ビデオデコーダ
211 出力ビデオサンプルストリーム
212 レンダデバイス、ディスプレイ
213 キャプチャサブシステム
310 受信器
312 チャネル
315 バッファメモリ
320 パーサ、ビデオデコーダ
321 シンボル
351 逆変換ユニット
352 イントラ画像予測ユニット、イントラ予測ユニット
353 動き補償予測ユニット
355 アグリゲータ
356 ループフィルタユニット
357 参照画像メモリ
430 ビデオコーダ、エンコーダ、ソースコーダ
432 コード化エンジン
433 ローカルビデオデコーダ
434 参照画像メモリ、参照画像キャッシュ
435 予測器
440 送信器
443 ビデオシーケンス
445 エントロピーコーダ
450 コントローラ
460 通信チャネル
501 画像ヘッダ
502 ARC情報
504 画像パラメータセット
505 ARC参照情報
506 テーブル
507 シーケンスパラメータセット
508 ヘッダ
509 ARC情報
511 パラメータセット
512 ARC情報
513 ARC参照情報
514 タイルグループヘッダ
515 ARC情報
516 ARC情報テーブル、パラメータセット
600 シンタックスダイアグラム
601 タイルグループヘッダ
603 適応解像度
610 シーケンスパラメータセット
612 パラメータセット
615 参照画像寸法
617 シンタックス
700 アーキテクチャ、コンピュータシステム
701 キーボード
702 マウス
703 トラックパッド
705 ジョイスティック
706 マイクロフォン
707 スキャナ
708 カメラ
709 スピーカ
710 タッチスクリーン
721 媒体
722 サムドライブ
723 ソリッドステートドライブ
740 コア
741 CPU
743 FPGA
744 ハードウェアアクセラレータ
745 ROM
746 RAM
747 内部大容量ストレージ
748 システムバス
749 周辺バス
754 外部ネットワークインターフェースアダプタ
755 通信ネットワーク
900 シンタックステーブル
1201 ベースレイヤビデオビットストリーム
1202 エンハンスメントレイヤビデオビットストリーム
1402 ベースレイヤ
1403 エンハンスメントレイヤ
図1
図2
図3
図4
図5A
図5B
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22