(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024019654
(43)【公開日】2024-02-09
(54)【発明の名称】ビデオビットストリームにおけるインターレイヤ予測のシグナリング
(51)【国際特許分類】
H04N 19/70 20140101AFI20240202BHJP
H04N 19/30 20140101ALI20240202BHJP
【FI】
H04N19/70
H04N19/30
【審査請求】有
【請求項の数】1
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2023215273
(22)【出願日】2023-12-20
(62)【分割の表示】P 2021549117の分割
【原出願日】2020-09-18
(31)【優先権主張番号】62/903,652
(32)【優先日】2019-09-20
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/019,713
(32)【優先日】2020-09-14
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【弁理士】
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】ビョンドゥ・チェ
(72)【発明者】
【氏名】ステファン・ヴェンガー
(72)【発明者】
【氏名】シャン・リュウ
(57)【要約】
【課題】ビデオビットストリームにおけるインターレイヤ予測のシグナリングの方法および装置を提供する。
【解決手段】スケーラブルビットストリーム内の少なくとも1つのレイヤがスケーラブルビットストリームの従属レイヤおよびスケーラブルビットストリームの独立レイヤのうちの1つであるかどうかを示す少なくとも1つの構文要素を含む少なくとも1つのビデオパラメータセットを構文解析することと、VPSに含まれる複数のフラグに基づいて、スケーラブルビットストリームの、従属レイヤを含む従属レイヤの数を決定することと、インターレイヤ参照ピクチャリストを構文解析および解釈することにより、従属レイヤ内のピクチャを復号することと、インターレイヤ参照ピクチャリストを構文解析および解釈することなしに独立レイヤ内のピクチャを復号することとを1つまたは複数のプロセッサに実行させるように構成されたコンピュータコードを含む方法および装置が含まれる。
【選択図】
図3
【特許請求の範囲】
【請求項1】
少なくとも1つのプロセッサによって実行されるスケーラブルビットストリームのビデオ復号のための方法であって、
前記スケーラブルビットストリーム内の少なくとも1つのレイヤが前記スケーラブルビットストリームの従属レイヤおよび前記スケーラブルビットストリームの独立レイヤのうちの1つであるかどうかを示す少なくとも1つの構文要素を含む少なくとも1つのビデオパラメータセット(VPS)を構文解析するステップと、
前記VPSに含まれる複数のフラグに基づいて、前記スケーラブルビットストリームの、前記従属レイヤを含む従属レイヤの数を決定するステップと、
インターレイヤ参照ピクチャ(ILRP)リストを構文解析および解釈することによって、前記従属レイヤ内のピクチャを復号するステップと、
前記ILRPリストを構文解析および解釈することなしに独立レイヤ内のピクチャを復号するステップと
を含む方法。
【請求項2】
前記独立レイヤ内の前記ピクチャを復号するステップが、他のレイヤのいかなる復号ピクチャも含まない参照ピクチャリストを構文解析および解釈するステップを含む、請求項1に記載の方法。
【請求項3】
前記インターレイヤ参照ピクチャリストが前記他のレイヤの復号ピクチャを含む、請求項1に記載の方法。
【請求項4】
前記少なくとも1つのVPSを構文解析するステップが、他の構文要素がレイヤの最大数を示すかどうかを判定するステップをさらに含む、請求項1に記載の方法。
【請求項5】
前記少なくとも1つのVPSを構文解析するステップが、前記スケーラブルビットストリーム内の他のレイヤが前記少なくとも1つのレイヤのための参照レイヤであるかどうかを示すフラグを前記VPSが含むかどうかを判定するステップをさらに含む、請求項1に記載の方法。
【請求項6】
前記少なくとも1つのVPSを構文解析するステップが、前記他のレイヤのインデックスおよび前記少なくとも1つのレイヤのインデックスを指定することによって、前記フラグが前記他のレイヤを前記少なくとも1つのレイヤのための前記参照レイヤとして示すかどうかを判定するステップをさらに含み、
前記少なくとも1つのVPSを構文解析するステップが、前記VPSが前記決定された従属レイヤの数よりも少ない値を示す他の構文要素を含むかどうかを判定するステップをさらに含む、
請求項5に記載の方法。
【請求項7】
前記少なくとも1つのVPSを構文解析するステップが、前記他のレイヤのインデックスおよび前記少なくとも1つのレイヤのインデックスを指定することによって、前記フラグが前記他のレイヤを前記少なくとも1つのレイヤのための前記参照レイヤではないとして示すかどうかを判定するステップをさらに含み、
前記少なくとも1つのVPSを構文解析するステップが、前記VPSが前記決定された従属レイヤの数よりも少ない値を示す他の構文要素を含むかどうかを判定するステップをさらに含む、
請求項5に記載の方法。
【請求項8】
前記少なくとも1つのVPSを構文解析するステップが、前記少なくとも1つのレイヤを含む複数のレイヤが前記ILRPリストを解釈することによって復号されるべきかどうかを示すフラグを前記VPSが含むかどうかを判定するステップをさらに含む、請求項1に記載の方法。
【請求項9】
前記少なくとも1つのVPSを構文解析するステップが、前記少なくとも1つのレイヤを含む複数のレイヤが前記ILRPリストを解釈することなしに復号されるべきかどうかを示すフラグを前記VPSが含むかどうかを判定するステップをさらに含む、請求項1に記載の方法。
【請求項10】
前記少なくとも1つのVPSを構文解析するステップが、前記少なくとも1つのレイヤを含む複数のレイヤが前記ILRPリストを解釈することによって復号されるべきかどうかを示すフラグを前記VPSが含むかどうかを判定するステップをさらに含む、請求項1に記載の方法。
【請求項11】
スケーラブルビットストリームのビデオ復号のための装置であって、
コンピュータプログラムコードを記憶するように構成された少なくとも1つのメモリと、
前記コンピュータプログラムコードにアクセスし、前記コンピュータプログラムコードによって命令されたように動作するように構成された少なくとも1つのプロセッサであって、前記コンピュータプログラムコードが、
前記スケーラブルビットストリーム内の少なくとも1つのレイヤが前記スケーラブルビットストリームの従属レイヤおよび前記スケーラブルビットストリームの独立レイヤのうちの1つであるかどうかを示す少なくとも1つの構文要素を含む少なくとも1つのビデオパラメータセット(VPS)を前記少なくとも1つのプロセッサに構文解析させるように構成された構文解析コードと、
前記VPSに含まれる複数のフラグに基づいて、前記スケーラブルビットストリームの、前記従属レイヤを含む従属レイヤの数を前記少なくとも1つのプロセッサに決定させるように構成された決定コードと、
インターレイヤ参照ピクチャ(ILRP)リストを構文解析および解釈することによって、前記従属レイヤ内のピクチャを前記少なくとも1つのプロセッサに復号させるように構成された第1の復号コードと、
前記ILRPリストを構文解析および解釈することなしに独立レイヤ内のピクチャを前記少なくとも1つのプロセッサに復号させるように構成された第2の復号コードと
を含む、少なくとも1つのプロセッサと
を含む装置。
【請求項12】
前記第2の復号コードが、他のレイヤのいかなる復号ピクチャも含まない参照ピクチャリストを構文解析および解釈することによって、前記独立レイヤ内の前記ピクチャを前記少なくとも1つのプロセッサに復号させるようにさらに構成される、請求項11に記載の装置。
【請求項13】
前記インターレイヤ参照ピクチャリストが前記他のレイヤの復号ピクチャを含む、請求項11に記載の装置。
【請求項14】
前記構文解析コードが、他の構文要素がレイヤの最大数を示すかどうかを判定することによって、前記少なくとも1つのVPSを前記少なくとも1つのプロセッサに構文解析させるようにさらに構成される、請求項11に記載の装置。
【請求項15】
前記構文解析コードが、前記スケーラブルビットストリーム内の他のレイヤが前記少なくとも1つのレイヤのための参照レイヤであるかどうかを示すフラグを前記VPSが含むかどうかを判定することによって、前記少なくとも1つのVPSを前記少なくとも1つのプロセッサに構文解析させるようにさらに構成される、請求項11に記載の装置。
【請求項16】
前記構文解析コードが、前記他のレイヤのインデックスおよび前記少なくとも1つのレイヤのインデックスを指定することによって、前記フラグが前記他のレイヤを前記少なくとも1つのレイヤのための前記参照レイヤとして示すかどうかを判定することによって、前記少なくとも1つのVPSを前記少なくとも1つのプロセッサに構文解析させるようにさらに構成され、
前記構文解析コードが、前記VPSが前記決定された従属レイヤの数よりも少ない値を示す他の構文要素を含むかどうかを判定することによって、前記少なくとも1つのVPSを前記少なくとも1つのプロセッサに構文解析させるようにさらに構成される、請求項15に記載の装置。
【請求項17】
前記構文解析コードが、前記他のレイヤのインデックスおよび前記少なくとも1つのレイヤのインデックスを指定することによって、前記フラグが前記他のレイヤを前記少なくとも1つのレイヤのための前記参照レイヤではないとして示すかどうかを判定することによって、前記少なくとも1つのVPSを前記少なくとも1つのプロセッサに構文解析させるようにさらに構成され、
前記構文解析コードが、前記VPSが前記決定された従属レイヤの数よりも少ない値を示す他の構文要素を含むかどうかを判定することによって、前記少なくとも1つのVPSを前記少なくとも1つのプロセッサに構文解析させるようにさらに構成される、
請求項15に記載の装置。
【請求項18】
前記構文解析コードが、前記少なくとも1つのレイヤを含む複数のレイヤが前記ILRPリストを解釈することによって復号されるべきかどうかを示すフラグを前記VPSが含むかどうかを判定することによって、前記少なくとも1つのVPSを前記少なくとも1つのプロセッサに構文解析させるようにさらに構成される、請求項11に記載の装置。
【請求項19】
前記構文解析コードが、前記少なくとも1つのレイヤを含む複数のレイヤが前記ILRPリストを解釈することなしに復号されるべきかどうかを示すフラグを前記VPSが含むかどうかを判定することによって、前記少なくとも1つのVPSを前記少なくとも1つのプロセッサに構文解析させるようにさらに構成される、請求項11に記載の装置。
【請求項20】
コンピュータに、
前記スケーラブルビットストリーム内の少なくとも1つのレイヤが前記スケーラブルビットストリームの従属レイヤおよび前記スケーラブルビットストリームの独立レイヤのうちの1つであるかどうかを示す少なくとも1つの構文要素を含む少なくとも1つのビデオパラメータセット(VPS)を構文解析させ、
前記VPSに含まれる複数のフラグに基づいて、前記スケーラブルビットストリームの、前記従属レイヤを含む従属レイヤの数を決定させ、
インターレイヤ参照ピクチャ(ILRP)リストを構文解析および解釈することによって、前記従属レイヤ内のピクチャを復号させ、
前記ILRPリストを構文解析および解釈することなしに独立レイヤ内のピクチャを復号させる、
ように構成されたプログラムを記憶した非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、2019年9月20日に出願された米国仮特許出願第62/903,652号および2020年9月14日に出願された米国特許出願第17/019,713号の優先権を主張し、それらの全体が本明細書に組み込まれる。
【0002】
開示される主題は、ビデオのコーディングおよび復号に関し、より詳細には、ビデオビットストリームにおけるインターレイヤ予測のシグナリングに関する。
【背景技術】
【0003】
動き補償を伴うインターピクチャ予測を使用するビデオのコーディングおよび復号は、何十年にもわたって知られている。非圧縮デジタルビデオは一連のピクチャから構成され得、各ピクチャは、たとえば、1920×1080の輝度サンプルおよび関連する色度サンプルの空間次元を有する。一連のピクチャは、たとえば、毎秒60ピクチャまたは60Hzの固定または可変の(非公式にはフレームレートとしても知られる)ピクチャレートを有することができる。非圧縮ビデオは、重要なビットレート要件を有する。たとえば、サンプルあたり8ビットでの1080p60 4:2:0ビデオ(60Hzフレームレートで1920×1080の輝度サンプル解像度)は、1.5Gbit/sに近い帯域幅を必要とする。そのようなビデオの1時間は、600Gバイトを超える記憶空間を必要とする。
【0004】
ビデオのコーディングおよび復号の1つの目的は、圧縮を介して入力ビデオ信号の冗長度を削減することであり得る。圧縮は、前述の帯域幅または記憶空間の要件を、場合によっては、2桁以上削減するのに役立つことができる。可逆圧縮と非可逆圧縮の両方、ならびにそれらの組合せを採用することができる。可逆圧縮は、圧縮された元の信号から元の信号の正確なコピーを復元することができる技法を指す。非可逆圧縮を使用すると、復元された信号は元の信号と同一ではない場合があるが、元の信号と復元された信号との間の歪みは、復元された信号を目的の用途に役立つものにするのに十分小さい。ビデオの場合、非可逆圧縮が広く採用されている。許容される歪みの量はアプリケーションに依存し、たとえば、特定の消費者向けストリーミングアプリケーションのユーザは、テレビ寄与アプリケーションのユーザよりも高い歪みを許容することができる。実現可能な圧縮比は、許容/耐容歪みが大きいほど、圧縮比が高くなり得ることを示すことができる。
【0005】
ビデオエンコーダおよびビデオデコーダは、たとえば、それらのうちのいくつかが下記で紹介される、動き補償、変換、量子化、およびエントロピーコーディングを含む、いくつかの広範なカテゴリからの技法を利用することができる。
【0006】
歴史的に、ビデオエンコーダおよびビデオデコーダは、ほとんどの場合、コード化ビデオシーケンス(CVS)、ピクチャグループ(GOP)、または同様のマルチピクチャタイムフレームに対して定義され、一定のままであった所与のピクチャサイズで動作する傾向があった。たとえば、MPEG-2では、システム設計は、シーンのアクティビティなどの要因に応じて水平解像度(および、それにより、ピクチャサイズ)を変更することが知られているが、Iピクチャにおいてのみであり、したがって通常はGOP用である。CVS内の異なる解像度を使用するための参照ピクチャの再サンプリングは、たとえば、ITU-T Rec.H.263 Annex Pから知られている。しかしながら、ここではピクチャサイズは変化せず、参照ピクチャのみが再サンプリングされ、潜在的に、(ダウンサンプリングの場合)ピクチャキャンバスの一部のみが使用されるか、または(アップサンプリングの場合)シーンの一部のみがキャプチャされる結果になる。さらに、H.263 Annex Qは、個々のマクロブロックを上方または下方に(各次元で)2倍だけ再サンプリングすることを可能にする。ここでも、ピクチャサイズは同じままである。マクロブロックのサイズはH.263では固定されているので、シグナリングされる必要はない。
【0007】
予測ピクチャのピクチャサイズの変更は、最新のビデオコーディングにおいてより主流になった。たとえば、VP9は、参照ピクチャ再サンプリング(RPR)およびピクチャ全体の解像度の変更を可能にする。同様に、(たとえば、その全体が本明細書に組み込まれる、Hendryら、「On adaptive resolution change(ARC)for VVC」、Joint Video Team文書JVET-M0135-v1、2019年1月9~19日を含む)VVCに向けてなされたいくつか提案は、異なる、より高いまたはより低い解像度への参照ピクチャ全体の再サンプリングを可能にする。その文書では、シーケンスパラメータセット内でコード化され、ピクチャパラメータセット内のピクチャごとの構文要素によって参照される様々な候補解像度が提案されている。
【発明の概要】
【課題を解決するための手段】
【0008】
1つまたは複数の異なる技術的問題に対処するために、本開示は、ビデオビットストリームにおけるスケーリングのシグナリングのために設計された新しい構文およびその使用を記載した。このように、コーディング(復号)効率の向上を実現することができる。
【0009】
本明細書における実施形態によれば、参照ピクチャ再サンプリング(RPR)または適応解像度変更(ARC)を用いて、スケーラビリティサポートのためのさらなる負担は、高レベル構文(HLS)の修正によって達成されてよい。技術的な態様では、インターレイヤ予測は、拡張レイヤのコーディング効率を改善するためにスケーラブルなシステムで採用される。単層コーデックで利用可能な空間的および時間的な動き補償予測に加えて、インターレイヤ予測は、参照レイヤからの復元された参照ピクチャの再サンプリングされたビデオデータを使用して、現在の拡張レイヤを予測する。次いで、動き補償のための既存の補間プロセスを修正することにより、インターレイヤ予測のための再サンプリングプロセスがブロックレベルで実行される。それは、スケーラビリティをサポートするためにさらなる再サンプリングプロセスが必要とされないことを意味する。本開示では、RPRを使用して空間/品質スケーラビリティをサポートする高レベル構文要素が開示される。
【0010】
コンピュータプログラムコードを記憶するように構成されたメモリと、コンピュータプログラムコードにアクセスし、コンピュータプログラムコードによって命令されるように動作するように構成された1つまたは複数のプロセッサとを含む方法および装置が含まれる。コンピュータプログラムコードは、スケーラブルビットストリーム内の少なくとも1つのレイヤがスケーラブルビットストリームの従属レイヤおよびスケーラブルビットストリームの独立レイヤのうちの1つであるかどうかを示す少なくとも1つの構文要素を含む少なくとも1つのビデオパラメータセット(VPS)を少なくとも1つのプロセッサに構文解析させるように構成された構文解析コードと、VPSに含まれる複数のフラグに基づいて、スケーラブルビットストリームの、その従属レイヤを含む従属レイヤの数を少なくとも1つのプロセッサに決定させるように構成された決定コードと、インターレイヤ参照ピクチャ(ILRP)リストを構文解析および解釈することにより、従属レイヤ内のピクチャを少なくとも1つのプロセッサに復号させるように構成された第1の復号コードと、ILRPリストを構文解析および解釈することなしに独立レイヤ内のピクチャを少なくとも1つのプロセッサに復号させるように構成された第2の復号コードとを含む。
【0011】
実施形態によれば、第2の復号コードは、他のレイヤのいかなる復号ピクチャも含まない参照ピクチャリストを構文解析および解釈することにより、独立レイヤ内のピクチャを少なくとも1つのプロセッサに復号させるようにさらに構成される。
【0012】
実施形態によれば、インターレイヤ参照ピクチャリストは他のレイヤの復号ピクチャを含む。
【0013】
実施形態によれば、構文解析コードは、他の構文要素がレイヤの最大数を示すかどうかを判定することにより、少なくとも1つのVPSを少なくとも1つのプロセッサに構文解析させるようにさらに構成される。
【0014】
実施形態によれば、構文解析コードは、スケーラブルビットストリーム内の他のレイヤが少なくとも1つのレイヤのための参照レイヤであるかどうかを示すフラグをVPSが含むかどうかを判定することにより、少なくとも1つのVPSを少なくとも1つのプロセッサに構文解析させるようにさらに構成される。
【0015】
実施形態によれば、構文解析コードは、他のレイヤのインデックスおよび少なくとも1つのレイヤのインデックスを指定することにより、少なくとも1つのレイヤのための参照レイヤとして他のレイヤをフラグが示すかどうかを判定することにより、少なくとも1つのVPSを少なくとも1つのプロセッサに構文解析させるようにさらに構成され、構文解析コードは、VPSが決定された従属レイヤの数よりも少ない値を示す他の構文要素を含むかどうかを判定することにより、少なくとも1つのVPSを少なくとも1つのプロセッサに構文解析させるようにさらに構成される。
【0016】
実施形態によれば、構文解析コードは、他のレイヤのインデックスおよび少なくとも1つのレイヤのインデックスを指定することにより、少なくとも1つのレイヤのための参照レイヤではないと他のレイヤをフラグが示すかどうかを判定することにより、少なくとも1つのVPSを少なくとも1つのプロセッサに構文解析させるようにさらに構成され、構文解析コードは、VPSが決定された従属レイヤの数よりも少ない値を示す他の構文要素を含むかどうかを判定することにより、少なくとも1つのVPSを少なくとも1つのプロセッサに構文解析させるようにさらに構成される。
【0017】
実施形態によれば、構文解析コードは、少なくとも1つのレイヤを含む複数のレイヤがILRPリストを解釈することによって復号されるべきかどうかを示すフラグをVPSが含むかどうかを判定することにより、少なくとも1つのVPSを少なくとも1つのプロセッサに構文解析させるようにさらに構成される。
【0018】
実施形態によれば、構文解析コードは、少なくとも1つのレイヤを含む複数のレイヤがILRPリストを解釈することなしに復号されるべきかどうかを示すフラグをVPSが含むかどうかを判定することにより、少なくとも1つのVPSを少なくとも1つのプロセッサに構文解析させるようにさらに構成される。
【0019】
実施形態によれば、構文解析コードは、少なくとも1つのレイヤを含む複数のレイヤがILRPリストを解釈することによって復号されるべきかどうかを示すフラグをVPSが含むかどうかを判定することをさらに含む、少なくとも1つのVPSを少なくとも1つのプロセッサに構文解析させるようにさらに構成される。
【0020】
開示された主題のさらなる特徴、性質、および様々な利点は、以下の発明を実施するための形態および添付の図面からより明らかである。
【図面の簡単な説明】
【0021】
【
図1】一実施形態による、通信システムの簡略化されたブロック図の概略図である。
【
図2】一実施形態による、通信システムの簡略化されたブロック図の概略図である。
【
図3】一実施形態による、デコーダの簡略化されたブロック図の概略図である。
【
図4】一実施形態による、エンコーダの簡略化されたブロック図の概略図である。
【
図5A】関連技術による、ARC/RPRパラメータをシグナリングするためのオプションの概略図である。
【
図5B】関連技術による、ARC/RPRパラメータをシグナリングするためのオプションの概略図である。
【
図5C】関連技術による、ARC/RPRパラメータをシグナリングするためのオプションの概略図である。
【0022】
【
図5D】関連技術による、ARC/RPRパラメータをシグナリングするためのオプションの概略図である。
【
図5E】関連技術による、ARC/RPRパラメータをシグナリングするためのオプションの概略図である。
【
図6】実施形態による、ピクチャ解像度をシグナリングする概略図である。
【
図7】実施形態による、SPS内でピクチャサイズおよび適合ウィンドウをシグナリングする概略図である。
【
図8】実施形態による、SPS内でインターレイヤ予測の存在をシグナリングする概略図である。
【
図9】実施形態による、スライスヘッダ内でインターレイヤ予測インデックスをシグナリングする概略図である。
【
図10】実施形態による、コンピュータシステムの概略図である。
【発明を実施するための形態】
【0023】
下記で説明される提案された機能は、別々に使用されてもよく、任意の順序で組み合わされてもよい。さらに、実施形態は、処理回路(たとえば、1つもしくは複数のプロセッサまたは1つもしくは複数の集積回路)によって実施されてよい。一例では、1つまたは複数のプロセッサは、非一時的コンピュータ可読媒体に記憶されたプログラムを実行する。
【0024】
図1は、本開示の一実施形態による、通信システム(100)の簡略化されたブロック図を示す。通信システム(100)は、ネットワーク(150)を介して相互接続された少なくとも2つの端末(110および120)を含んでよい。データの単方向送信のために、第1の端末(110)は、ネットワーク(150)を介して他の端末(120)に送信するためにローカル位置でビデオデータをコード化することができる。第2の端末(120)は、ネットワーク(150)から他の端末のコード化ビデオデータを受信し、コード化データを復号し、復元されたビデオデータを表示することができる。単方向データ送信は、メディアサービングアプリケーションなどで一般的であり得る。
【0025】
図1は、たとえば、ビデオ会議中に発生する可能性があるコード化ビデオの双方向送信をサポートするために提供される端末(130、140)の第2のペアを示す。データの双方向送信のために、各端末(130、140)は、ネットワーク(150)を介して他の端末に送信するためにローカル位置でキャプチャされたビデオデータをコード化することができる。各端末(130、140)はまた、他の端末によって送信されたコード化ビデオデータを受信することができ、コード化データを復号することができ、復元されたビデオデータをローカルディスプレイデバイスに表示することができる。
【0026】
図1の例では、端末(110、120、130、140)は、サーバ、パーソナルコンピュータ、およびスマートフォンとして示される場合があるが、本開示の原理はそのように限定されなくてよい。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤ、および/または専用のビデオ会議機器を用いるアプリケーションを見出す。ネットワーク(150)は、たとえば、有線および/またはワイヤレスの通信ネットワークを含む、端末(110、120、130、140)の間でコード化ビデオデータを伝達する任意の数のネットワークを表す。通信ネットワーク(150)は、回線交換チャネルおよび/またはパケット交換チャネルにおいてデータを交換することができる。代表的なネットワークには、電気通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、および/またはインターネットが含まれる。本説明の目的のために、ネットワーク(150)のアーキテクチャおよびトポロジーは、本明細書において下記で説明されない限り、本開示の動作にとって重要でない可能性がある。
【0027】
図2は、開示された主題についてのアプリケーション用の一例として、ストリーミング環境内のビデオエンコーダおよびビデオデコーダの配置を示す。開示された主題は、たとえば、ビデオ会議、デジタルテレビ、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勧告H.265が含まれる。多用途ビデオコーディングまたはVVCとして非公式に知られているビデオコーディング規格が開発中である。開示された主題はVVCとの関連で使用されてよい。
【0029】
図3は、本開示の一実施形態による、ビデオデコーダ(210)の機能ブロック図であり得る。
【0030】
受信機(310)は、デコーダ(210)によって復号される1つまたは複数のコーデックビデオシーケンス、同じかまたは別の実施形態では、一度に1つのコード化ビデオシーケンスを受信することができ、各コード化ビデオシーケンスの復号は、他のコード化ビデオシーケンスから独立している。コード化ビデオシーケンスは、チャネル(312)から受信されてよく、チャネル(312)は、符号化ビデオデータを格納するストレージデバイスへのハードウェア/ソフトウェアリンクであってよい。受信機(310)は、それらそれぞれの使用エンティティ(描写せず)に転送され得る他のデータ、たとえば、コード化オーディオデータ、および/または補助データストリームとともに符号化ビデオデータを受信することができる。受信機(310)は、コード化ビデオシーケンスを他のデータから分離することができる。ネットワークジッタに対抗するために、バッファメモリ(315)は、受信機(310)とエントロピーデコーダ/パーサー(320)(以下、「パーサー」)との間に結合されてよい。受信機(310)が十分な帯域幅および制御可能性のストア/フォワードデバイスから、または等同期ネットワークからデータを受信しているとき、バッファ(315)は必要とされない場合があるか、または小さい可能性がある。インターネットなどのベストエフォートパケットネットワークで使用するために、バッファ(315)が必要とされる場合があり、比較的大きい可能性があり、有利なことに適応サイズであり得る。
【0031】
ビデオデコーダ(210)は、エントロピーコード化ビデオシーケンスからシンボル(321)を復元するためにパーサー(320)を含んでよい。それらのシンボルのカテゴリには、デコーダ(210)の動作を管理するために使用される情報、および潜在的に、デコーダの不可欠な部分ではないが、
図2に示されたように、デコーダに結合することができるディスプレイ(212)などのレンダリングデバイスを制御するための情報が含まれる。レンダリングデバイスのための制御情報は、補足拡張情報(SEIメッセージ)またはビデオユーザビリティ情報(VUI)のパラメータセットフラグメント(描写せず)の形式であってよい。パーサー(320)は、受信されたコード化ビデオシーケンスを構文解析/エントロピー復号することができる。コード化ビデオシーケンスのコーディングは、ビデオコーディング技術または規格に従うことができ、文脈感度の有無にかかわらず、可変長コーディング、ハフマンコーディング、算術コーディングなどを含む、当業者によく知られた原理に従うことができる。パーサー(320)は、グループに対応する少なくとも1つのパラメータに基づいて、コード化ビデオシーケンスから、ビデオデコーダ内のピクセルのサブグループのうちの少なくとも1つのための一組のサブグループパラメータを抽出することができる。サブグループは、ピクチャグループ(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などの規格に文書化され得る所定のビデオ圧縮技術に従って復号動作を実行することができる。コード化ビデオシーケンスが、ビデオ圧縮技術の文書または規格、具体的にはその中のプロファイル文書に指定されたビデオ圧縮技術または規格の構文を順守するという意味で、コード化ビデオシーケンスは、使用されているビデオ圧縮技術または規格によって指定された構文に準拠することができる。また、コンプライアンスのために必要なのは、コード化ビデオシーケンスの複雑さが、ビデオ圧縮技術または規格のレベルによって定義された範囲内にあることである。場合によっては、レベルにより、最大ピクチャサイズ、最大フレームレート、(たとえば、1秒あたりのメガサンプル単位で測定された)最大復元サンプルレート、最大参照ピクチャサイズなどが制限される。レベルによって設定される制限は、場合によっては、仮想基準デコーダ(HRD)の仕様、およびコード化ビデオシーケンス内でシグナリングされるHRDバッファ管理用のメタデータによってさらに制限され得る。
【0042】
一実施形態では、受信機(310)は、符号化ビデオとともに追加の(冗長な)データを受信することができる。追加のデータは、コード化ビデオシーケンスの一部として含まれてよい。追加のデータは、データを適切に復号するために、かつ/または元のビデオデータをより正確に復元するために、ビデオデコーダ(320)によって使用されてよい。追加のデータは、たとえば、時間、空間、またはSNRの拡張レイヤ、冗長スライス、冗長ピクチャ、順方向誤り訂正コードなどの形式であり得る。
【0043】
図4は、本開示の一実施形態による、ビデオエンコーダ(203)の機能ブロック図であり得る。
【0044】
エンコーダ(203)は、エンコーダ(203)によってコード化されるビデオ画像をキャプチャすることができる(エンコーダの一部ではない)ビデオソース(201)からビデオサンプルを受信することができる。
【0045】
ビデオソース(201)は、任意の適切なビット深度(たとえば、8ビット、10ビット、12ビット、…)、任意の色空間(たとえば、BT.601 Y CrCB、RGB、…)、および任意の適切なサンプリング構造(たとえば、Y CrCb 4:2:0、Y CrCb 4:4:4)であり得るデジタルビデオサンプルストリームの形態で、エンコーダ(203)によってコード化されるソースビデオシーケンスを提供することができる。メディアサービングシステムでは、ビデオソース(201)は、以前に準備されたビデオを格納するストレージデバイスであってよい。ビデオ会議システムでは、ビデオソース(203)は、ビデオシーケンスとしてローカル画像情報をキャプチャするカメラであってよい。ビデオデータは、順番に見たときに動きを伝える複数の個別のピクチャとして提供されてよい。ピクチャ自体は、ピクセルの空間配列として編成されてよく、各ピクセルは、使用中のサンプリング構造、色空間などに応じて、1つまたは複数のサンプルを含むことができる。当業者は、ピクセルとサンプルとの間の関係を容易に理解することができる。下記の説明はサンプルに焦点を当てる。
【0046】
一実施形態によれば、エンコーダ(203)は、リアルタイムで、またはアプリケーションによって必要とされる任意の他の時間制約の下で、ソースビデオシーケンスのピクチャをコード化ビデオシーケンス(443)にコード化し圧縮することができる。適切なコーディング速度を強制することは、コントローラ(450)の1つの機能である。コントローラは、下記で説明される他の機能ユニットを制御し、これらのユニットに機能的に結合される。明確にするために、結合は描写されていない。コントローラによって設定されるパラメータは、レート制御関連パラメータ(ピクチャスキップ、量子化器、レート歪み最適化技法のラムダ値、…)、ピクチャサイズ、ピクチャグループ(GOP)のレイアウト、最大動きベクトル検索範囲などを含むことができる。当業者であれば、あるシステム設計向けに最適化されたビデオエンコーダ(203)に関連する場合があるものとして、コントローラ(450)の他の機能を容易に識別することができる。
【0047】
いくつかのビデオエンコーダは、当業者が「コーディングループ」として容易に認識するもので動作する。過度に簡略化された説明として、コーディングループは、(コード化される入力ピクチャおよび参照ピクチャに基づいてシンボルを作成することに関与する)エンコーダ(430)(以下「ソースエンコーダ」)の符号化部分、ならびにシンボルを復元して、(開示された主題において考慮されるビデオ圧縮技術では、シンボルとコード化ビデオビットストリームとの間の任意の圧縮が可逆なので)(リモート)デコーダも作成するサンプルデータを作成するエンコーダ(203)に組み込まれた(ローカル)デコーダ(433)から構成することができる。復元されたサンプルストリームは、参照ピクチャメモリ(434)に入力される。シンボルストリームの復号は、デコーダの場所(ローカルまたはリモート)に関係なくビット正確な結果につながるので、参照ピクチャバッファのコンテンツも、ローカルエンコーダとリモートエンコーダとの間でビット正確である。言い換えれば、エンコーダの予測部分は、復号中に予測を使用するときにデコーダが「見る」のと全く同じサンプル値を参照ピクチャサンプルとして「見る」。参照ピクチャの同期性(および、たとえば、チャネルエラーのために同期性が維持できない場合に結果として生じるドリフト)のこの基本原理は、当業者によく知られている。
【0048】
「ローカル」デコーダ(433)の動作は、
図3と連携して上記で詳細にすでに記載されている「リモート」デコーダ(210)の動作と同じであり得る。しかしながら、また
図3を簡単に参照すると、シンボルが利用可能であり、エントロピーコーダ(445)およびパーサー(320)によるコード化ビデオシーケンスへのシンボルの符号化/復号は可逆であり得るので、チャネル(312)、受信機(310)、バッファ(315)、およびパーサー(320)を含むデコーダ(210)のエントロピー復号部分は、ローカルデコーダ(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)を介した送信の準備をすることができ、通信チャネル(460)は、符号化ビデオデータを格納するストレージデバイスへのハードウェア/ソフトウェアリンクであってよい。送信機(440)は、ビデオコーダ(430)からのコード化ビデオデータを、送信される他のデータ、たとえば、コード化オーディオデータおよび/または補助データストリーム(図示されていないソース)とマージすることができる。
【0056】
コントローラ(450)は、ビデオエンコーダ(203)の動作を管理することができる。コーディング中に、コントローラ(450)は、各コード化ピクチャに特定のコード化ピクチャタイプを割り当てることができ、それは、それぞれのピクチャに適用され得るコーディング技法に影響を及ぼす場合がある。たとえば、ピクチャは、しばしば、以下のフレームタイプのうちの1つとして割り当てられてよい。
【0057】
イントラピクチャ(Iピクチャ)は、予測のソースとしてシーケンス内のいかなる他のフレームも使用せずにコード化および復号され得るピクチャであり得る。いくつかのビデオコーデックは、たとえば、独立デコーダリフレッシュピクチャを含む、様々なタイプのイントラピクチャを可能にする。当業者は、Iピクチャのそれらの変形形態、ならびにそれらそれぞれの用途および特徴を知っている。
【0058】
予測ピクチャ(Pピクチャ)は、各ブロックのサンプル値を予測するために、多くとも1つの動きベクトルおよび参照インデックスを使用するイントラ予測またはインター予測を使用して、コード化および復号され得るピクチャであり得る。
【0059】
双方向予測ピクチャ(Bピクチャ)は、各ブロックのサンプル値を予測するために、多くとも2つの動きベクトルおよび参照インデックスを使用するイントラ予測またはインター予測を使用して、コード化および復号され得るピクチャであり得る。同様に、多重予測ピクチャは、単一ブロックの復元のために3つ以上の参照ピクチャおよび関連するメタデータを使用することができる。
【0060】
ソースピクチャは、通常、複数のサンプルブロック(たとえば、各々4×4、8×8、4×8、または16×16サンプルのブロック)に空間的に細分化され、ブロックごとにコード化され得る。ブロックは、ブロックのそれぞれのピクチャに適用されるコーディング割当てによって決定されるように、他の(すでにコード化された)ブロックを参照して予測的にコード化され得る。たとえば、Iピクチャのブロックは、非予測的にコード化され得るか、またはそれらは、同じピクチャのすでにコード化されたブロックを参照して予測的にコード化され得る(空間予測またはイントラ予測)。Pピクチャのピクセルブロックは、1つの以前にコード化された参照ピクチャを参照して、空間予測を介してまたは時間予測を介して非予測的にコード化され得る。Bピクチャのブロックは、1つまたは2つの以前にコード化された参照ピクチャを参照して、空間予測を介してまたは時間予測を介して非予測的にコード化され得る。
【0061】
ビデオエンコーダ(203)は、ITU-T Rec.H.265などの所定のビデオコーディング技術または規格に従ってコーディング動作を実行することができる。その動作において、ビデオコーダ(203)は、入力ビデオシーケンスにおける時間および空間の冗長性を利用する予測コーディング動作を含む、様々な圧縮動作を実行することができる。したがって、コード化ビデオデータは、使用されているビデオコーディング技術または規格によって指定された構文に準拠することができる。
【0062】
一実施形態では、送信機(440)は、符号化ビデオとともに追加のデータを送信することができる。ビデオコーダ(430)は、コード化ビデオシーケンスの一部としてそのようなデータを含んでよい。追加のデータは、時間/空間/SNRの拡張レイヤ、冗長なピクチャおよびスライスなどの他の形式の冗長データ、補助拡張情報(SEI)メッセージ、視覚ユーザビリティ情報(VUI)パラメータセットフラグメントなどを含んでよい。
【0063】
開示された主題のいくつかの態様をより詳細に記載する前に、この説明の残りで参照されるいくつかの用語が紹介される必要がある。
【0064】
以降、サブピクチャは、場合によっては、意味的にグループ化され、変更された解像度で独立してコード化され得るサンプル、ブロック、マクロブロック、コーディングユニット、または同様のエンティティの矩形配置を指す。1つまたは複数のサブピクチャが1つのピクチャを形成することができる。1つまたは複数のコード化サブピクチャが1つのコード化ピクチャを形成することができる。1つまたは複数のサブピクチャはピクチャに組み立てられてよく、1つまたは複数のサブピクチャはピクチャから抽出されてよい。特定の環境では、1つまたは複数のコード化サブピクチャは、サンプルレベルへのコード化ピクチャへのトランスコードを行わずに、圧縮された領域内で組み立てられてよく、同じまたはある特定の他のケースでは、1つまたは複数のコード化サブピクチャは、圧縮された領域内でコード化ピクチャから抽出されてよい。
【0065】
以降、参照ピクチャ再サンプリング(RPR)または適応解像度変更(ARC)は、たとえば、参照ピクチャ再サンプリングによる、コード化ビデオシーケンス内のピクチャまたはサブピクチャの解像度の変更を可能にするメカニズムを指す。以後、RPR/ARCパラメータは、適応解像度変更を実行するために必要な制御情報を指し、それは、たとえば、フィルタパラメータ、スケーリングファクタ、出力および/または参照ピクチャの解像度、様々な制御フラグなどを含んでよい。
【0066】
上記の説明は、単一の意味的に独立したコード化ビデオピクチャのコーディングおよび復号に焦点を当てている。独立したRPR/ARCパラメータを有する複数のサブピクチャのコーディング/復号の暗示およびその暗示される追加の複雑さを記載する前に、RPR/ARCパラメータをシグナリングするためのオプションが記載される。
【0067】
図5を参照すると、RPR/ARCパラメータをシグナリングするためのいくつかの新規のオプションが示されている。各オプションで述べられたように、それらは、コーディング効率、複雑さ、およびアーキテクチャの観点から、特定の利点および特定の欠点を有する。ビデオコーディング規格または技術は、RPR/ARCパラメータをシグナリングするために、これらのオプション、または従来技術から知られているオプションのうちの1つまたは複数を選択することができる。オプションは相互に排他的でなくてもよく、ことによると、アプリケーションのニーズ、関連する標準技術、またはエンコーダの選択に基づいて交換されてもよい。
【0068】
RPR/ARCパラメータのクラスは、以下を含んでよい。
-X次元およびY次元で分離もしくは結合されたアップサンプル/ダウンサンプル係数、
-所与の数のピクチャに対する一定速度のズームイン/ズームアウトを示す、時間次元を追加したアップサンプル/ダウンサンプル係数、
-上記の2つのうちのいずれかは、係数を含む表を指すことができる1つもしくは複数の恐らく短い構文要素のコーディングを含んでよい、
-結合もしくは分離された、入力ピクチャ、出力ピクチャ、参照ピクチャ、コード化ピクチャのサンプル、ブロック、マクロブロック、CU、もしくは任意の他の適切な粒度の単位のX次元もしくはY次元の解像度((たとえば、入力ピクチャ用の解像度、参照ピクチャ用の解像度などの)2つ以上の解像度が存在する場合、場合によっては、一組の値が別の組の値から推測されてよい。それは、たとえば、フラグを使用することによってゲート制御することができる。より詳細な例については、下記を参照されたい。)、
-同様に上述された適切な粒度で、H.263 Annex Pで使用されるものと類似する「ワーピング」座標(H.263 Annex Pは、そのようなワーピング座標をコード化する1つの効率的な方法を定義するが、他の潜在的により効率的な方法も恐らく考案される。たとえば、実施形態によれば、Annex Pのワーピング座標の可変長可逆「ハフマン」スタイルのコーディングは、適切な長さのバイナリコーディングによって置き換えられ、バイナリコードワードの長さは、たとえば、最大ピクチャサイズから導出され、場合によっては特定の係数によって乗算され、特定の値によってオフセットされて、最大ピクチャサイズの境界の外側の「ワーピング」を可能にすることができる。)、ならびに/または
-アップサンプルもしくはダウンサンプルのフィルタパラメータ(最も簡単な場合、アップサンプリングおよび/もしくはダウンサンプリング用の単一のフィルタのみが存在してよい。しかしながら、場合によっては、フィルタ設計においてより多くの柔軟性を可能にすることが有利であり得、それはフィルタパラメータのシグナリングを必要とする場合がある。そのようなパラメータは、可能なフィルタ設計のリスト内のインデックスを介して選択されてよく、フィルタは(たとえば、適切なエントロピーコーディング技法を使用して、フィルタ係数のリストを介して)完全に指定されてよく、フィルタは上述されたメカニズムのいずれかに従ってシグナリングされるアップサンプル/ダウンサンプル比を介して暗黙的に選択されてよい)。
【0069】
以降、説明は、コードワードを介して示される有限の組のアップサンプル/ダウンサンプル係数(X次元とY次元の両方で使用される同じ係数)のコーディングを想定している。そのコードワードは、有利なことに、たとえば、H.264およびH.265などのビデオコーディング仕様における特定の構文要素に共通のExt-Golombコードを使用して、可変長コード化することができる。アップサンプル/ダウンサンプル係数への値の1つの適切なマッピングは、たとえば、以下の表1に従うことができる。
【0070】
【0071】
アプリケーションのニーズ、およびビデオ圧縮技術または規格で利用可能なアップスケールメカニズムおよびダウンスケールメカニズムの能力に従って、多くの同様のマッピングを考案することができる。表はより多くの値に拡張することができる。値はまた、たとえば、バイナリコーディングを使用して、Ext-Golombコード以外のエントロピーコーディングメカニズムによって表されてよい。これは、たとえば、MANEにより、再サンプリング係数がビデオ処理エンジン(最初にエンコーダおよびデコーダ)自体の外部の対象であったときに、特定の利点を有することができる。解像度変更が必要とされない(恐らく)最も一般的なケースでは、短い、上記の表では1ビットのみのExt-Golombコードが選択され得ることに留意されたい。それは、最も一般的な場合にバイナリコードを使用するよりもコーディング効率の利点を有することができる。
【0072】
表の中の項目の数、ならびにそれらのセマンティクスは、完全にまたは部分的に構成可能であってよい。たとえば、表の基本的な概要は、シーケンスパラメータセットまたはデコーダパラメータセットなどの「高」パラメータセットで伝達されてよい。代替または追加として、1つまたは複数のそのような表は、ビデオコーディング技術または規格で定義されてよく、たとえば、デコーダパラメータセットまたはシーケンスパラメータセットを介して選択されてよい。
【0073】
以降、上述されたようにコード化されたアップサンプル/ダウンサンプル係数(ARC情報)が、ビデオコーディング技術または規約の構文にどのように含まれ得るかを記載する。アップサンプル/ダウンサンプルフィルタを制御する1つまたはいくつかのコードワードに同様の考慮事項が適用されてよい。フィルタまたは他のデータ構造に比較的大量のデータが必要なときの説明については、下記を参照されたい。
【0074】
図5Aの例に示されたように、例示(500A)は、H.263 Annex Pがピクチャヘッダ(501)に、具体的にはH.263 PLUSPTYPE(503)ヘッダ拡張に4つのワーピング座標の形態のARC情報(502)を含めることを示す。これは、a)利用可能なピクチャヘッダが存在し、b)ARC情報の頻繁な変更が予想されるときに、賢明な設計選択であり得る。しかしながら、H.263スタイルのシグナリングを使用するときのオーバーヘッドは非常に高い可能性があり、ピクチャヘッダは一時的性質であり得るので、スケーリングファクタはピクチャ境界間に関係しない場合がある。さらに、
図5Bの例に示されたように、例示(500B)は、JVET-M0135がPPS情報(504)、ARC参照情報(505)、SPS情報(507)、および目標解像度テーブル情報(506)を含むことを示す。
【0075】
例示的な実施形態によれば、
図5Cは、タイルグループヘッダ情報(508)およびARC情報(509)が示されている例(500C)を示し、
図5Dは、タイルグループヘッダ情報(514)、ARC参照情報(513)、SPS情報(516)、およびARC情報(515)が示されている例(500D)を示し、
図5Eは、適応パラメータセット(APS)情報(511)およびARC情報(512)が示されている例(500E)を示す。
【0076】
図6は、適応解像度が使用中である表の例(600)を示し、この例では、出力解像度がサンプル単位でコード化される(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】
特定のビデオコーディング技術または規格、たとえばVP9は、空間スケーラビリティを可能にするために、時間スケーラビリティとともに(開示された主題とは全く異なるようにシグナリングされた)特定の形式の参照ピクチャ再サンプリングを実施することによって空間スケーラビリティをサポートする。特に、特定の参照ピクチャは、ARCスタイルの技術を使用してより高い解像度にアップサンプリングされて、空間拡張レイヤのベースを形成することができる。それらのアップサンプリングされたピクチャは、詳細を追加するために、高解像度で通常の予測メカニズムを使用して改良することができる。
【0079】
開示された主題は、実施形態によるそのような環境で使用することができ、使用される。場合によっては、同じかまたは別の実施形態では、NALユニットヘッダ内の値、たとえば時間IDフィールドは、時間レイヤだけでなく空間レイヤも示すために使用することができる。そうすることにより、特定のシステム設計の場合に特定の利点を有する。たとえば、NALユニットヘッダ時間IDの値に基づいて時間レイヤ選択転送のために作成および最適化された既存の選択転送ユニット(SFU)は、スケーラブル環境のために修正せずに使用することができる。それを可能にするために、コード化されたピクチャサイズと時間レイヤとの間のマッピングに対する要件が存在してよく、それはNALユニットヘッダ内の時間IDフィールドによって示される。
【0080】
実施形態では、インターレイヤ従属関係に関する情報は、VPS(またはDPS、SPS、もしくはSEIメッセージ)内でシグナリングされてよい。インターレイヤ従属関係情報は、現在レイヤを復号するためにどのレイヤが参照レイヤとして使用され得るかを識別するために使用されてよい。nuh_layer_idがmに等しい直接従属レイヤ内の復号ピクチャpicAは、nがmよりも大きく、2つのピクチャpicAおよびpicBが同じアクセスユニットに属するとき、nuh_layer_idがnに等しいピクチャpicBの参照ピクチャとして使用されてよい。
【0081】
同じかまたは他の実施形態では、インターレイヤ参照ピクチャ(ILRP)リストは、スライスヘッダ(またはパラメータセット)内のインター予測参照ピクチャ(IPRP)リストで明示的にシグナリングされてよい。順方向および逆方向の予測参照ピクチャリストの構築には、ILRPリストとIPRPリストの両方が使用されてよい。
【0082】
同じまたは他の実施形態では、VPS(または他のパラメータセット)内の構文要素は、各レイヤが従属しているか独立しているかを示すことができる。
図7の例(700)を参照すると、構文要素vps_max_layers_minus1(703)プラス1は、VPS(701)を参照する1つまたは複数の、潜在的にすべてのCVSにおいて許容されるレイヤの最大数を指定することができる。1に等しいvps_all_independent_layers_flag(704)は、CVS内のすべてのレイヤが独立して、すなわちインターレイヤ予測を使用せずにコード化されることを指定することができる。0に等しいvps_all_independent_layers_flag(704)は、CVS内のレイヤのうちの1つまたは複数がインターレイヤ予測を使用することができることを指定することができる。存在しないとき、vps_all_independent_layers_flagの値は1に等しいと推測されてよい。vps_all_independent_layers_flagが1に等しいとき、vps_independent_layer_flag[i](706)の値は1に等しいと推測されてよい。vps_all_independent_layers_flagが0に等しい場合、vps_independent_layer_flag[0]の値は1に等しいと推測される。
【0083】
図7を参照すると、1に等しいvps_independent_layer_flag[i](706)は、インデックスiを有するレイヤがインターレイヤ予測を使用しないことを指定することができる。0に等しいvps_independent_layer_flag[i]は、インデックスiを有するレイヤがインターレイヤ予測を使用することができ、vps_layer_dependency_flag[i]がVPS内に存在することを指定することができる。0に等しいvps_direct_dependency_flag[i][j](707)は、インデックスjを有するレイヤがインデックスiを有するレイヤのための直接参照レイヤではないことを指定することができる。1に等しいvps_direct_dependency_flag[i][j]は、インデックスjを有するレイヤがインデックスiを有するレイヤのための直接参照レイヤであることを指定することができる。0以上vps_max_layers_minus1以下の範囲のiおよびjに対してvps_direct_dependency_flag[i][j]が存在しないとき、それは0に等しいと推測されてよい。
【0084】
i番目のレイヤのj番目の直接従属レイヤを指定する変数DirectDependentLayerIdx[i][j]、およびi番目のレイヤの従属レイヤの数を指定する変数NumDependentLayers[i]は、以下のように導出される。
for(i=1;i < vps_max_layers_minus1;i--)
if(!vps_independent_layer_flag[ i ]){
for(j=i,k=0;j >=0;j--)
if(vps_direct_dependency_flag[ i ][ j ])
DirectDependentLayerIdx[ i ][ k++]=j
NumDependentLayers[ i ]=k
}
【0085】
同じかまたは別の実施形態では、
図7を参照すると、vps_max_layers_minus1が0より大きく、vps_all_independent_layers_flagの値が0に等しいとき、vps_output_layers_modeおよびvps_output_layer_flags[i]がシグナリングされてよい。
0に等しいvps_output_layers_mode(708)は、最上位レイヤのみが出力されることを指定することができる。
1に等しいvps_output_layer_modeは、すべてのレイヤが出力され得ることを指定する。
2に等しいvps_output_layer_modeは、出力されるレイヤがvps_output_layer_flag[i](709)が1に等しいレイヤであることを指定することができる。vps_output_layers_modeの値は、0以上2以下の範囲とする。vps_output_layer_modeの値3は、将来の使用のために予約されてよい。存在しないとき、vps_output_layers_modeの値は1に等しいと推測されてよい。1に等しいvps_output_layer_flag[i]は、i番目のレイヤが出力されることを指定することができる。0に等しいvps_output_layer_flag[i]は、i番目のレイヤが出力されないことを指定することができる。値1がi番目のレイヤを出力されることを指定することができ、値0がi番目のレイヤを出力されないことを指定するリストOutputLayerFlag[i]は、以下のように導出される。
OutputLayerFlag[ vps_max_layers_minus1 ]=1
for(i=0;i < vps_max_layers_minus1;i++)
if(vps_output_layer_mode==0)
OutputLayerFlag[ i ]=0
else if(vps_output_layer_mode==1)
OutputLayerFlag[ i ]=1
else if(vps_output_layer_mode==2)
OutputLayerFlag[ i ]=vps_output_layer_flag[ i ]
【0086】
同じかまたは別の実施形態では、現在のピクチャの出力は以下のように指定されてよい。
-PictureOutputFlagが1に等しく、DpbOutputTime[n]がCpbRemovalTime[n]に等しい場合、現在のピクチャが出力される。
-そうではなく、PictureOutputFlagが0に等しい場合、現在のピクチャは出力されないが、節で指定されたようにDPBに格納される。
-そうではない(PictureOutputFlagが1に等しく、DpbOutputTime[n]がCpbRemovalTime[n]より大きい)場合、現在のピクチャは後で出力され、(節で指定されたように)DPBに格納され、DpbOutputTime[n]に先行する時間において1に等しいno_output_of_prior_pics_flagの復号または推測によって出力されないことが示されない限り、時間DpbOutputTime[n]において出力される。
出力されると、ピクチャは、ピクチャ用のPPS内で指定された適合性クロッピングウィンドウを使用して切り取られる。
【0087】
同じかまたは別の実施形態では、PictureOutputFlagは以下のように設定されてよい。
-以下の条件のうちの1つが真である場合、PictureOutputFlagは0に等しく設定され、
-現在のピクチャはRASLピクチャであり、関連付けられたIRAPピクチャのNoIncorrectPicOutputFlagは1に等しい。
-gdr_enabled_flagは1に等しく、現在のピクチャは、NoIncorrectPicOutputFlagが1に等しいGDRピクチャである。
-gdr_enabled_flagは1に等しく、現在のピクチャは、NoIncorrectPicOutputFlagが1に等しいGDRピクチャに関連付けられ、現在のピクチャのPicOrderCntValは関連付けられたGDRピクチャのRpPicOrderCntValより小さい。
-vps_output_layer_modeは0または2に等しく、OutputLayerFlag[GeneralLayerIdx[nuh_layer_id]]は0に等しい。
-そうでない場合、PictureOutputFlagはpic_output_flagに等しく設定される。
【0088】
あるいは、同じかまたは他の実施形態では、PictureOutputFlagは以下のように設定されてよい。
-以下の条件のうちの1つが真である場合、PictureOutputFlagは0に等しく設定され、
-現在のピクチャはRASLピクチャであり、関連付けられたIRAPピクチャのNoIncorrectPicOutputFlagは1に等しい。
-gdr_enabled_flagは1に等しく、現在のピクチャは、NoIncorrectPicOutputFlagが1に等しいGDRピクチャである。
-gdr_enabled_flagは1に等しく、現在のピクチャは、NoIncorrectPicOutputFlagが1に等しいGDRピクチャに関連付けられ、現在のピクチャのPicOrderCntValは関連付けられたGDRピクチャのRpPicOrderCntValより小さい。
-vps_output_layer_modeは0に等しく、現在のアクセスユニットは、1に等しいPictureOutputFlagを有し、現在のピクチャよりも大きいnuh_layer_id nuhLidを有し、出力レイヤに属する(すなわち、OutputLayerFlag[GeneralLayerIdx[nuhLid]]が1に等しい)ピクチャを含む。
-vps_output_layer_modeが2に等しく、OutputLayerFlag[GeneralLayerIdx[nuh_layer_id]]が0に等しい。
-そうでない場合、PictureOutputFlagはpic_output_flagに等しく設定される。
【0089】
同じかまたは他の実施形態では、VPS(または別のパラメータセット)内のフラグは、現在スライス(またはピクチャ)に対してILRPリストがシグナリングされるかどうかを示すことができる。たとえば、
図8の例(800)を参照すると、0に等しいinter_layer_ref_pics_present_flagは、CVS内の任意のコード化ピクチャのインター予測にILRPが使用されないことを指定することができる。1に等しいinter_layer_ref_pics_flagは、CVS内の1つまたは複数のコード化ピクチャのインター予測にILRPが使用され得ることを指定することができる。
【0090】
同じかまたは他の実施形態では、k番目のレイヤが従属レイヤであるとき、k番目のレイヤ内のピクチャ用のインターレイヤ参照ピクチャ(ILRP)リストは、シグナリングされてもされなくてもよい。しかしながら、k番目のレイヤが独立レイヤであるとき、k番目のレイヤ内のピクチャ用のILRPリストはシグナリングされず、いかなるILRPも参照ピクチャリストに含まれないものとする。
【0091】
inter_layer_ref_pics_present_flagの値は、sps_video_parameter_set_idが0に等しいとき、nuh_layer_idが0に等しいとき、またはvps_independent_layer_flag[GeneralLayerIdx[nuh_layer_id]]が1に等しいとき、0に等しく設定されてよい。
【0092】
同じかまたは他の実施形態では、
図9の例(900)を参照すると、ILRPリストを明示的に示す一組の構文要素は、SPS、PPS、APS、またはスライスヘッダ内でシグナリングされてよい。ILRPリストは、現在のピクチャの参照ピクチャリストを構築するために使用されてよい。
【0093】
同じかまたは他の実施形態では、ILRPリストは、復号ピクチャバッファ(DPB)内のアクティブまたは非アクティブな参照ピクチャを識別するために使用されてよい。アクティブな参照ピクチャは、現在のピクチャを復号するための参照ピクチャとして使用されてよく、非アクティブな参照ピクチャは、現在のピクチャを復号するために使用されなくてよく、復号順序で後続のピクチャを復号するために使用されてよい。
【0094】
同じかまたは別の実施形態では、ILRPリストは、どの参照ピクチャがDPBに格納され得るか、またはDPBから出力および除去され得るかを識別するために使用されてよい。それらの情報は、仮想基準デコーダ(HRD)モデルおよびパラメータに基づいてデコーダを動作させるために使用されてよい。
【0095】
同じかまたは別の実施形態では、構文要素ilrp_idc[listIdx][rplsIdx][i]は、VPS、SPS、PPS、APS、またはスライスヘッダ内でシグナリングされてよい。構文要素ilrp_idc[listIdx][rplsIdx][i]は、ref_pic_list_struct(listIdx,rplsIdx)構文構造内のi番目の項目のILRPの、直接従属レイヤのリストに対するインデックスを直接従属レイヤのリストに指定する。ilrp_idc[listIdx][rplsIdx][i]の値は、0以上GeneralLayerIdx[nuh_layer_id]-1以下の範囲内とする。
【0096】
同じ実施形態では、構文要素ilrp_idc[listIdx][rplsIdx][i]は、VPS内でシグナリングされるvps_direct_dependency_flag[i][j]によって識別される、直接従属レイヤの中のILRPピクチャを示すインデックスであってよい。この場合、ilrp_idc[listIdx][rplsIdx][i]の値は、0以上NumDependentLayers[GeneralLayerIdx[nuh_layer_id]]-1以下の範囲内とする。
【0097】
同じ実施形態では、現在レイヤのnuh_layer_idがkに等しい場合、nuh_layer_idがkより小さいすべてのレイヤの中のILRPを示すインデックスをシグナリングすることと比較して、直接従属レイヤの中のILRPを示すインデックスをシグナリングすることはビット効率的であり得る。
【0098】
同じかまたは別の実施形態では、さらに
図9を参照すると、参照ピクチャリストRefPicList[0]およびRefPicList[1]は、以下のように構築されてよい。
for(i=0;i < 2;i++){
for(j=0,k=0,pocBase=PicOrderCntVal;j < num_ref_entries[ i ][ RplsIdx[ i ] ];j++){
if(!(inter_layer_ref_pic_flag[ i ][ RplsIdx[ i ] ][ j ]&&GeneralLayerIdx[ nuh_layer_id ]))
{
if(st_ref_pic_flag[ i ][ RplsIdx[ i ] ][ j ]){
RefPicPocList[ i ][ j ]=pocBase-DeltaPocValSt[ i ][ RplsIdx[ i ] ][ j ]
if(現在のピクチャと同じnuh_layer_idを有する参照ピクチャpicAがDPB内に存在し、
かつPicOrderCntValがRefPicPocList[i][j]に等しい)
RefPicList[ i ][ j ]=picA
else
RefPicList[ i ][ j ]=“no reference picture” (-)
pocBase=RefPicPocList[ i ][ j ]
} else {
if(!delta_poc_msb_cycle_lt[ i ][ k ]){
if(現在のピクチャと同じnuh_layer_idを有する参照picAがDPB内に存在し、
PicOrderCntVal&(MaxPicOrderCntLsb-1)がPocLsbLt[i][k]に等しい)
RefPicList[ i ][ j ]=picA
else
RefPicList[ i ][ j ]=“no reference picture”
RefPicLtPocList[ i ][ j ]=PocLsbLt[ i ][ k ]
} else {
if(現在のピクチャと同じnuh_layer_idを有する参照picAがDPB内に存在し、
PicOrderCntValが、FullPocLt[i][k]に等しい)
RefPicList[ i ][ j ]=picA
else
RefPicList[ i ][ j ]=“no reference picture”
RefPicLtPocList[ i ][ j ]=FullPocLt[ i ][ k ]
}
k++
}
} else {
layerIdx=DirectDependentLayerIdx[ GeneralLayerIdx[ nuh_layer_id ] ][ ilrp_idc[ i ][ RplsIdx[ i ] ][ j ] ]
refPicLayerId=vps_layer_id[ layerIdx ]
if(nuh_layer_idがrefPicLayerIdに等しい参照ピクチャpicAがDPB内に存在し、
現在のピクチャと同じPicOrderCntValが存在する)
RefPicList[ i ][ j ]=picA
else
RefPicList[ i ][ j ]=“no reference picture”
}
}
}
【0099】
上述された適応解像度パラメータをシグナリングするための技法は、コンピュータ可読命令を使用するコンピュータソフトウェアとして実装され、1つまたは複数のコンピュータ可読媒体に物理的に記憶することができる。たとえば、
図10は、開示された主題のいくつかの実施形態を実装するのに適したコンピュータシステム(1000)を示す。
【0100】
コンピュータソフトウェアは、コンピュータ中央処理装置(CPU)、グラフィックス処理装置(GPU)などによる、直接、または解釈、マイクロコード実行などを介して実行することができる命令を含むコードを作成するために、アセンブル、コンパイル、リンク、または同様のメカニズムを受けることができる任意の適切なマシンコードまたはコンピュータ言語を使用してコード化することができる。
【0101】
命令は、たとえば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、モノのインターネットデバイスなどを含む、様々なタイプのコンピュータまたはそれらの構成要素上で実行することができる。
【0102】
コンピュータシステム(1000)について
図10に示された構成要素は、本質的に例示的なものであり、本開示の実施形態を実装するコンピュータソフトウェアの使用範囲または機能に関するいかなる制限も示唆するものではない。構成要素の構成は、コンピュータシステム(1000)の例示的な実施形態に示された構成要素のいずれか1つまたは組合せに関するいかなる依存性または要件も有すると解釈されるべきでない。
【0103】
コンピュータシステム(1000)は、特定のヒューマンインターフェース入力デバイスを含んでよい。そのようなヒューマンインターフェース入力デバイスは、たとえば、(キーストローク、スワイプ、データグローブの動きなどの)触覚入力、(音声、拍手などの)オーディオ入力、(ジェスチャなどの)視覚入力、(描写されていない)嗅覚入力を介して、1人または複数の人間のユーザによる入力に応答することができる。ヒューマンインターフェースデバイスは、(音声、音楽、周囲の音などの)オーディオ、(スキャン画像、静止画カメラから取得された写真画像などの)画像、(2次元ビデオ、立体ビデオを含む3次元ビデオなどの)ビデオなどの、人間による意識的な入力に必ずしも直接関連しない特定の媒体をキャプチャするために使用することもできる。
【0104】
入力ヒューマンインターフェースデバイスには、キーボード(1001)、マウス(1002)、トラックパッド(1003)、タッチスクリーン(1010)、ジョイスティック(1005)、マイクロフォン(1006)、スキャナ(1007)、カメラ(1008)のうちの1つまたは複数が含まれてよい(各々の1つのみが描写されている)。
【0105】
コンピュータシステム(1000)は、特定のヒューマンインターフェース出力デバイスも含んでよい。そのようなヒューマンインターフェース出力デバイスは、たとえば、触覚出力、音、光、および嗅覚/味覚を介して、1人または複数の人間のユーザの感覚を刺激している場合がある。そのようなヒューマンインターフェース出力デバイスには、触覚出力デバイス(たとえば、タッチスクリーン(1010)、またはジョイスティック(1005)による触覚フィードバック、しかし入力デバイスとして機能しない触覚フィードバックデバイスが存在する可能性もある)、(スピーカ(1009)、ヘッドフォン(描写せず)などの)オーディオ出力デバイス、(CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含むスクリーン(1010)など、各々タッチスクリーン入力機能の有無にかかわらず、各々触覚フィードバック機能の有無にかかわらず、それらのうちのいくつかは、ステレオグラフィック出力、仮想現実眼鏡(描写せず)、ホログラフィックディスプレイおよびスモークタンク(描写せず)などの手段を介して2次元視覚出力または3次元以上の出力を出力することが可能な場合がある)視覚出力デバイス、ならびにプリンタ(描写せず)が含まれてよい。
【0106】
コンピュータシステム(1000)は、CD/DVDまたは同様の媒体(1021)を有するCD/DVD ROM/RW(1020)を含む光学媒体、サムドライブ(1022)、リムーバブルハードドライブまたはソリッドステートドライブ(1023)、テープおよびフロッピーディスクなどのレガシー磁気媒体(描写せず)、セキュリティドングルなどの特殊なROM/ASIC/PLDベースのデバイス(描写せず)などの、人間がアクセス可能なストレージデバイスおよびそれらに関連する媒体を含むこともできる。
【0107】
当業者はまた、現在開示されている主題に関連して使用される「コンピュータ可読媒体」という用語は、伝送媒体、搬送波、または他の一時的な信号を包含しないことを理解するべきである。
【0108】
コンピュータシステム(1000)は、1つまたは複数の通信ネットワークへのインターフェースを含むこともできる。ネットワークは、たとえば、ワイヤレス、有線、光であり得る。ネットワークはさらに、ローカル、広域、メトロポリタン、車両および産業用、リアルタイム、遅延耐性などであり得る。ネットワークの例には、イーサネット、ワイヤレスLANなどのローカルエリアネットワーク、GSM、3G、4G、5G、LTEなどを含むセルラーネットワーク、ケーブルTV、衛星TV、および地上波ブロードキャストTVを含むTVの有線またはワイヤレスの広域デジタルネットワーク、CANBusを含む車両および産業用などが含まれる。特定のネットワークは、通常、(たとえば、コンピュータシステム(1000)のUSBポートなどの)特定の汎用データポートまたは周辺バス(1049)に取り付けられた外部ネットワークインターフェースアダプタを必要とし、他のネットワークは、通常、以下に記載されるシステムバスに取り付けることによってコンピュータシステム(1000)のコアに統合される(たとえば、PCコンピュータシステムへのイーサネットインターフェースまたはスマートフォンコンピュータシステムへのセルラーネットワークインターフェース)。これらのネットワークのいずれかを使用して、コンピュータシステム(1000)は他のエンティティと通信することができる。そのような通信は、単方向受信のみ(たとえば、ブロードキャストTV)、単方向送信のみ(たとえば、特定のCANbusデバイスへのCANbus)、または、たとえば、ローカルもしくは広域のデジタルネットワークを使用する他のコンピュータシステムとの双方向であり得る。特定のプロトコルおよびプロトコルスタックは、上述されたそれらのネットワークおよびネットワークインターフェースの各々で使用することができる。
【0109】
前述のヒューマンインターフェースデバイス、人間がアクセス可能なストレージデバイス、およびネットワークインターフェースは、コンピュータシステム(1000)のコア(1040)に取り付けることができる。
【0110】
コア(1040)は、1つまたは複数の中央処理装置(CPU)(1041)、グラフィックス処理装置(GPU)(1042)、フィールドプログラマブルゲートエリア(FPGA)(1043)の形態の特殊なプログラマブル処理装置、特定のタスク用のハードウェアアクセラレータ(1044)などを含むことができる。これらのデバイスは、読取り専用メモリ(ROM)(1045)、ランダムアクセスメモリ(1046)、内部のユーザがアクセスできないハードドライブ、SSDなどの内部大容量ストレージ(1047)とともに、システムバス(1048)を介して接続されてよい。いくつかのコンピュータシステムでは、システムバス(1048)は、追加のCPU、GPUなどによる拡張を可能にするために、1つまたは複数の物理プラグの形態でアクセス可能であり得る。周辺デバイスは、コアのシステムバス(1048)に直接取り付けるか、または周辺バス(1049)を介して取り付けることができる。周辺バス用のアーキテクチャには、PCI、USBなどが含まれる。
【0111】
CPU(1041)、GPU(1042)、FPGA(1043)、およびアクセラレータ(1044)は、組み合わせて前述のコンピュータコードを構成することができる特定の命令を実行することができる。そのコンピュータコードは、ROM(1045)またはRAM(1046)に記憶することができる。移行データもRAM(1046)に記憶することができるが、永続データは、たとえば、内部大容量ストレージ(1047)に記憶することができる。メモリデバイスのいずれかに対する高速の記憶および検索は、1つまたは複数のCPU(1041)、GPU(1042)、大容量ストレージ(1047)、ROM(1045)、RAM(1046)などと密接に関連付けることができるキャッシュメモリを使用して可能にすることができる。
【0112】
コンピュータ可読媒体は、様々なコンピュータ実装動作を実行するためのコンピュータコードをそこに有することができる。媒体およびコンピュータコードは、本開示の目的のために特別に設計および構築されたものであり得るか、またはそれらは、コンピュータソフトウェア技術のスキルを有する人々に周知かつ利用可能な種類であり得る。
【0113】
一例として、限定としてではなく、アーキテクチャを有するコンピュータシステム(1000)、具体的にはコア(1040)は、1つまたは複数の有形のコンピュータ可読媒体内に具現化されたソフトウェアを(CPU、GPU、FPGA、アクセラレータなどを含む)プロセッサが実行する結果として、機能を提供することができる。そのようなコンピュータ可読媒体は、上記で紹介されたユーザアクセス可能大容量ストレージ、ならびにコア内部大容量ストレージ(1047)またはROM(1045)などの非一時的な性質のコア(1040)の特定のストレージに関連付けられた媒体であり得る。本開示の様々な実施形態を実装するソフトウェアは、そのようなデバイスに記憶され、コア(1040)によって実行することができる。コンピュータ可読媒体は、特定のニーズに応じて、1つまたは複数のメモリデバイスまたはチップを含むことができる。ソフトウェアは、コア(1040)、および具体的にはその中の(CPU、GPU、FPGAなどを含む)プロセッサに、RAM(1046)に記憶されたデータ構造を定義すること、およびソフトウェアによって定義されたプロセスに従ってそのようなデータ構造を修正することを含む、本明細書に記載された特定のプロセスまたは特定のプロセスの特定の部分を実行させることができる。追加または代替として、コンピュータシステムは、本明細書に記載された特定のプロセスまたは特定のプロセスの特定の部分を実行するために、ソフトウェアの代わりに、またはソフトウェアと一緒に動作することができる回路(たとえば、アクセラレータ(1044))内に配線された、またはさもなければ具現化されたロジックの結果として、機能を提供することができる必要に応じて、ソフトウェアへの参照はロジックを包含することができ、その逆も同様である。必要に応じて、コンピュータ可読媒体への参照は、実行のためのソフトウェアを記憶する(集積回路(IC)などの)回路、実行のためのロジックを具現化する回路、または両方を包含することができる。本開示は、ハードウェアとソフトウェアの任意の適切な組合せを包含する。
【0114】
本開示は、いくつかの例示的な実施形態を記載しているが、本開示の範囲内にある変更、置換、および様々な代替の均等物が存在する。したがって、当業者は、本明細書に明示的に図示または記載されていないが、本開示の原理を具現化し、したがって、その趣旨および範囲内にある多数のシステムおよび方法を考案できることが諒解されよう。
【符号の説明】
【0115】
100 通信システム
110 端末
120 端末
130 端末
140 端末
150 ネットワーク
201 ビデオソース
202 非圧縮ビデオサンプルストリーム
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 通信チャネル
500A 例示
500B 例示
501 ピクチャヘッダ
502 ARC情報
503 H.263 PLUSPTYPE
504 PPS情報
505 ARC参照情報
506 目標解像度テーブル情報
507 SPS情報
508 タイルグループヘッダ情報
509 ARC情報
511 適応パラメータセット(APS)情報
512 ARC情報
513 ARC参照情報
514 タイルグループヘッダ情報
515 ARC情報
516 SPS情報
600 表の例
615 参照ピクチャ寸法
700 例
701 VPS
800 例
900 例
1000 コンピュータシステム
1001 キーボード
1002 マウス
1003 トラックパッド
1005 ジョイスティック
1006 マイクロフォン
1007 スキャナ
1008 カメラ
1009 スピーカ
1010 タッチスクリーン
1020 CD/DVD ROM/RW
1021 CD/DVDまたは同様の媒体
1022 サムドライブ
1023 リムーバブルハードドライブまたはソリッドステートドライブ
1040 コア
1041 中央処理装置(CPU)
1042 グラフィックス処理装置(GPU)
1043 フィールドプログラマブルゲートエリア(FPGA)
1044 ハードウェアアクセラレータ
1045 読取り専用メモリ(ROM)
1046 ランダムアクセスメモリ(RAM)
1047 内部大容量ストレージ
1048 システムバス
1049 周辺バス
1050 グラフィックスアダプタ
1054 ネットワークインターフェース
【手続補正書】
【提出日】2023-12-22
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
少なくとも1つのプロセッサによって実行されるスケーラブルビットストリームのビデオ復号のための方法であって、
前記スケーラブルビットストリーム内の少なくとも1つのレイヤが前記スケーラブルビットストリームの従属レイヤおよび前記スケーラブルビットストリームの独立レイヤのうちの1つであるかどうかを示す少なくとも1つの構文要素を含む少なくとも1つのビデオパラメータセット(VPS)を構文解析するステップと、
前記VPSに含まれる複数のフラグに基づいて、前記スケーラブルビットストリームの、前記従属レイヤを含む従属レイヤの数を決定するステップと、
インターレイヤ参照ピクチャ(ILRP)リストを構文解析および解釈することによって、前記従属レイヤ内のピクチャを復号するステップと、
前記ILRPリストを構文解析および解釈することなしに独立レイヤ内のピクチャを復号するステップと
を含む方法。
【外国語明細書】