(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-05-29
(45)【発行日】2023-06-06
(54)【発明の名称】ビデオビットストリームを復号する方法、装置、及びプログラム
(51)【国際特許分類】
H04N 19/70 20140101AFI20230530BHJP
【FI】
H04N19/70
(21)【出願番号】P 2021563114
(86)(22)【出願日】2021-04-01
(86)【国際出願番号】 US2021025309
(87)【国際公開番号】W WO2021206985
(87)【国際公開日】2021-10-14
【審査請求日】2021-10-22
(32)【優先日】2020-04-06
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-11-12
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】チョイ,ビョンドゥ
(72)【発明者】
【氏名】リィウ,シャン
(72)【発明者】
【氏名】ウェンジャー,ステファン
【審査官】間宮 嘉誉
(56)【参考文献】
【文献】米国特許出願公開第2014/0092994(US,A1)
【文献】米国特許出願公開第2016/0373771(US,A1)
【文献】米国特許出願公開第2016/0212439(US,A1)
【文献】米国特許出願公開第2020/0154144(US,A1)
【文献】米国特許出願公開第2020/0389655(US,A1)
【文献】米国特許出願公開第2022/0060684(US,A1)
【文献】米国特許第11516502(US,B2)
【文献】BROSS, Benjamin et al.,Versatile Video Coding (Draft 8),JVET-Q2001 (version 9),ITU,2020年01月22日,pp.90, 91,JVET-Q2002-v9.docx
【文献】SAMUELSSON, Jonatan et al.,AHG9: Picture Header in Slice Header,JVET-Q0775 (version 1),ITU,2020年01月10日,pp.1-5,JVET-Q0775.docx
(58)【調査した分野】(Int.Cl.,DB名)
H04N 7/12
H04N 19/00-19/98
(57)【特許請求の範囲】
【請求項1】
少なくとも1つのプロセッサを使用して符号化されたビデオビットストリームを復号する方法であって、
ビデオ符号化層(VCL)ネットワーク抽象化層(NAL)ユニットを取得するステップと、
前記VCL NALユニットが、前記VCL NALユニットを含むピクチャユニット(PU)の最初のVCL NALユニットであるかどうかを判定するステップと、
前記VCL NALユニットが、前記PUの前記最初のVCL NALユニットであると判定することに基づいて、前記VCL NALユニットが、前記PUを含むアクセスユニット(AU)の最初のVCL NALユニットであるかどうかを判定するステップと、
前記VCL NALユニットが、前記AUの前記最初のVCL NALユニットであると判定することに基づいて 前記VCL NALユニットに基づいて前記AUを復号するステップと、を含
み、
全てのピクチャ符号化情報がピクチャヘッダに存在することを示すフラグに基づいて、前記ピクチャ符号化情報に対応する複数のフラグがシグナリングされない、方法。
【請求項2】
前記VCL NALユニットが、前記VCL NALユニットがピクチャヘッダNALユニットに続く最初のVCL NALユニットであると判定することに基づいて、前記VCL NALが、前記PUの前記最初のVCL NALユニットであると判定される、請求項1に記載の方法。
【請求項3】
前記VCL NALユニットにおけるフラグが、前記VCL NALユニットに含まれるスライスヘッダにピクチャヘッダが含まれることを示すように設定されていると判定することに基づいて、前記VCL NALユニットが、前記PUの前記最初のVCL NALユニットであると判定される、請求項1又は2に記載の方法。
【請求項4】
前記VCL NALユニットが、前記PUの前記最初のVCL NALユニットであると判定すること、及び前記VCL NALユニットのレイヤ識別子が、前のピクチャのレイヤ識別子よりも小さいと判定することに基づいて、前記VCL NALユニットが、前記AUの前記最初のVCL NALユニットであると判定される、請求項1~3のいずれか一項に記載の方法。
【請求項5】
前記VCL NALユニットが、前記PUの前記最初のVCL NALユニットであると判定すること、及び前記VCL NALユニットのピクチャオーダカウントが、前のピクチャのピクチャオーダカウントとは異なると判定することに基づいて、前記VCL NALユニットが、前記AUの前記最初のVCL NALユニットであると判定される、請求項1~4のいずれか一項に記載の方法。
【請求項6】
前記VCL NALユニットが、前記PUの前記最初のVCL NALユニットであると判定すること、及び前記VCL NALユニットのピクチャオーダカウントの最下位ビットが、前のピクチャのピクチャオーダカウントの最下位ビットと異なると判定することに基づいて、前記VCL NALユニットが、前記AUの前記最初のVCL NALユニットであると判定される、請求項1~5のいずれか一項に記載の方法。
【請求項7】
符号化されたビデオビットストリームを復号するための装置であって、
プログラムコードを記憶するように構成されている少なくとも1つのメモリと、
プログラムコードを読み、プログラムコードによって指示されるように動作するように構成されている少なくとも1つのプロセッサと、を含み、前記プログラムコードは、
前記少なくとも1つのプロセッサがビデオ符号化層(VCL)ネットワーク抽象化層(NAL)ユニットを取得するように構成されている第1の取得コードと、
前記少なくとも1つのプロセッサに、前記VCL NALユニットが前記VCL NALユニットを含むピクチャユニット(PU)の最初のVCL NALユニットであるかどうかを判定させるように構成されている第1の判定コードと、
前記少なくとも1つのプロセッサに、前記VCL NALユニットが前記PUの前記最初のVCL NALであると判定することに基づいて、前記VCL NALユニットが、前記PUを含むアクセスユニット(AU)の最初のVCL NALユニットであると判定させるように構成されている第2の判定コードと、
前記少なくとも1つのプロセッサに、前記VCL NALユニットが前記AUの前記最初のVCL NALユニットであると判定することに基づいて、前記VCL NALユニットに基づいて前記AUを復号させるように構成されている復号コードと、を含
み、
全てのピクチャ符号化情報がピクチャヘッダに存在することを示すフラグに基づいて、前記ピクチャ符号化情報に対応する複数のフラグがシグナリングされない、装置。
【請求項8】
前記VCL NALユニットが、前記VCL NALユニットがピクチャヘッダNALユニットに続く最初のVCL NALユニットであると判定することに基づいて、前記VCL NALが、前記PUの前記最初のVCL NALユニットであると判定される、請求項
7に記載の装置。
【請求項9】
前記VCL NALユニットにおけるフラグが、前記VCL NALユニットに含まれるスライスヘッダにピクチャヘッダが含まれることを示すように設定されていると判定することに基づいて、前記VCL NALユニットが、前記PUの前記最初のVCL NALユニットであると判定される、請求項
7又は
8に記載の装置。
【請求項10】
前記VCL NALユニットが、前記PUの前記最初のVCL NALユニットであると判定すること、及び前記VCL NALユニットのレイヤ識別子が、前のピクチャのレイヤ識別子よりも小さいと判定することに基づいて、前記VCL NALユニットが、前記AUの前記最初のVCL NALユニットであると判定される、請求項
7~
9のいずれか一項に記載の装置。
【請求項11】
前記VCL NALユニットが、前記PUの前記最初のVCL NALユニットであると判定すること、及び前記VCL NALユニットのピクチャオーダカウントが、前のピクチャのピクチャオーダカウントとは異なると判定することに基づいて、前記VCL NALユニットが、前記AUの前記最初のVCL NALユニットであると判定される、請求項
7~
10のいずれか一項に記載の装置。
【請求項12】
前記VCL NALユニットが、前記PUの前記最初のVCL NALユニットであると判定すること、及び前記VCL NALユニットのピクチャオーダカウントの最下位ビットが、前のピクチャのピクチャオーダカウントの最下位ビットとは異なると判定することに基づいて、前記VCL NALユニットが、前記AUの前記最初のVCL NALユニットであると判定される、請求項
7~
11のいずれか一項に記載の装置。
【請求項13】
命令を含むプログラムであって、前記命令は、符号化されたビデオビットストリームを復号するための装置の1つ以上のプロセッサによって実行されるときに、前記1つ以上のプロセッサに、
ビデオ符号化層(VCL)ネットワーク抽象化層(NAL)ユニットを取得するステップと、
前記VCL NALユニットが、前記VCL NALユニットを含むピクチャユニット(PU)の最初のVCL NALユニットであるかどうかを判定するステップと、
前記VCL NALユニットが、前記PUの前記最初のVCL NALユニットであると判定することに基づいて、前記VCL NALユニットが前記PUを含むアクセスユニット(AU)の最初のVCL NALユニットであるかどうかを判定するステップと、
前記VCL NALユニットが、前記AUの前記最初のVCL NALユニットであると判定することに基づいて 前記VCL NALユニットに基づいて前記AUを復号するステップと、を行わせ
、
全てのピクチャ符号化情報がピクチャヘッダに存在することを示すフラグに基づいて、前記ピクチャ符号化情報に対応する複数のフラグがシグナリングされない、プログラム。
【請求項14】
前記VCL NALユニットが、前記VCL NALユニットがピクチャヘッダNALユニットに続く最初のVCL NALユニットであると判定することに基づいて、前記VCL NALが、前記PUの前記最初のVCL NALユニットであると判定される、請求項
13に記載のプログラム。
【請求項15】
前記VCL NALユニットにおけるフラグが、前記VCL NALユニットに含まれるスライスヘッダにピクチャヘッダが含まれることを示すように設定されていると判定することに基づいて、前記VCL NALユニットが、前記PUの前記最初のVCL NALユニットであると判定される、請求項
13又は
14に記載のプログラム。
【請求項16】
前記VCL NALユニットが、前記PUの前記最初のVCL NALユニットであると判定すること、及び前記VCL NALユニットのレイヤ識別子が、前のピクチャのレイヤ識別子よりも小さいと判定することに基づいて、前記VCL NALユニットが、前記AUの前記最初のVCL NALユニットであると判定される、請求項
13~
15のいずれか一項に記載のプログラム。
【請求項17】
前記VCL NALユニットが、前記PUの前記最初のVCL NALユニットであると判定すること、及び前記VCL NALユニットのピクチャオーダカウントが、前のピクチャのピクチャオーダカウントとは異なると判定することに基づいて、前記VCL NALユニットが、前記AUの前記最初のVCL NALユニットであると判定される、請求項
13~
16のいずれか一項に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、米国特許商標庁において2020年4月6日に出願された米国仮出願第63/005,640号、及び2020年11月12日に出願された米国特許出願第17/096,168号に対して特許法第119条に基づく優先権を主張するものであり、これらの開示は、その全体が参照により本明細書に組み込まれる。
【0002】
開示された主題は、ビデオ符号化及び復号に関し、より具体的には、符号化されたビデオストリームにおいてピクチャヘッダをシグナリングすることに関する。
【背景技術】
【0003】
ITU-T VCEG(Q6/16)及びISO/IEC MPEG(JTC 1/SC 29/WG 11)は、2013年(バージョン1)、2014年(バージョン2)、2015年(バージョン3)、及び2016年(バージョン4)にH.265/HEVC(High Efficiency Video Coding)規格を公表した。2015年には、これら2つの規格化組織が共同でJVET(Joint Video Exploration Team)を結成して、HEVCを越える次のビデオ符号化規格の開発の可能性を探った。2017年10月には、HEVCを超える能力を有するビデオ圧縮に関するCfP(Joint Call for Proposals)を発行した。2018年2月15日までに、規格ダイナミックレンジ(SDR)に関して22のCfP応答、高ダイナミックレンジ(HDR)に関して12のCfP回答、及び360のビデオカテゴリーに関して12のCfP回答がそれぞれ提出された。2018年4月には、第122回のMPEG /第10回JVET会議において、受けたすべてのCfP回答が評価された。この会議の結果、JVETは、HEVCを超える次世代ビデオ符号化の規格化プロセスを正式に開始した。この新しい規格は、汎用ビデオ符号化(VVC:Versatile Video Coding)と命名され、JVETは、Joint Video Expert Teamに改名された。
【発明の概要】
【0004】
一実施形態では、少なくとも1つのプロセッサを使用して符号化されたビデオビットストリームを復号する方法であって、ビデオ符号化層(VCL)ネットワーク抽象化層(NAL)ユニットを取得するステップと、VCL NALユニットが、VCL NALユニットを含むピクチャユニット(PU)の最初のVCL NALユニットであるかどうかを判定するステップと、VCL NALユニットが、PUの最初のVCL NALユニットであると判定することに基づいて、VCL NALユニットが、PUを含むアクセスユニット(AU)の最初のVCL NALユニットであるかどうかを判定するステップと、VCL NALユニットが、AUの最初のVCL NALユニットであると判定することに基づいて VCL NALユニットに基づいてAUを復号するステップと、を含む、方法が提供される。
【0005】
一実施形態では、符号化されたビデオビットストリームを復号するための装置であって、プログラムコードを記憶するように構成されている少なくとも1つのメモリと、プログラムコードを読み、プログラムコードによって指示されるように動作するように構成されている少なくとも1つのプロセッサと、を含み、プログラムコードは、少なくとも1つのプロセッサがビデオ符号化層(VCL)ネットワーク抽象化層(NAL)ユニットを取得するように構成されている第1の取得コードと、少なくとも1つのプロセッサに、VCL NALユニットがVCL NALユニットを含むピクチャユニット(PU)の最初のVCL NALユニットであるかどうかを判定させるように構成されている第1の判定コードと、少なくとも1つのプロセッサに、VCL NALユニットがPUの最初のVCL NALであると判定することに基づいて、VCL NALユニットが、PUを含むアクセスユニット(AU)の最初のVCL NALユニットであると判定させるように構成されている第2の判定コードと、少なくとも1つのプロセッサに、VCL NALユニットがAUの最初のVCL NALユニットであると判定することに基づいて、VCL NALユニットに基づいてAUを復号させるように構成されている復号コードと、を含む、装置が提供される。
【0006】
一実施形態では、命令を記憶する非一時的なコンピュータ可読媒体であって、命令は、符号化されたビデオビットストリームを復号するための装置の1つ以上のプロセッサによって実行されるときに、1つ以上のプロセッサに、ビデオ符号化層(VCL)ネットワーク抽象化層(NAL)ユニットを取得するステップと、VCL NALユニットが、VCL NALユニットを含むピクチャユニット(PU)の最初のVCL NALユニットであるかどうかを判定するステップと、VCL NALユニットがPUの最初のVCL NALユニットであると判定することに基づいて、VCL NALユニットがPUを含むアクセスユニット(AU)の最初のVCL NALユニットであるかどうかを判定するステップと、VCL NALユニットが、AUの最初のVCL NALユニットであると判定することに基づいて VCL NALユニットに基づいてAUを復号するステップと、を行わせる1つ以上の命令を含む、非一時的なコンピュータ可読媒体が提供される。
【図面の簡単な説明】
【0007】
開示された主題のさらなる特徴、性質、及び様々な利点は、以下の詳細な説明及び添付の図面からより明らかになるであろう。
【0008】
【
図1】一実施形態による通信システムの簡略ブロック図の概略図である。
【0009】
【
図2】一実施形態による通信システムの簡略ブロック図の概略図である。
【0010】
【
図3】一実施形態によるデコーダの簡略ブロック図の概略図である。
【0011】
【
図4】一実施形態によるエンコーダの簡略ブロック図の概略図である。
【0012】
【
図5】一実施形態による構文テーブルの例の概略図である。
【0013】
【
図6A】一実施形態による符号化されたビデオビットストリームを復号するための例示的なプロセスのフローチャートである。
【
図6B】一実施形態による符号化されたビデオビットストリームを復号するための例示的なプロセスのフローチャートである。
【
図6C】一実施形態による符号化されたビデオビットストリームを復号するための例示的なプロセスのフローチャートである。
【0014】
【
図7】一実施形態によるコンピュータシステムの概略図である。
【発明を実施するための形態】
【0015】
図1は、本開示の一実施形態による通信システム(100)の簡略ブロック図を示す。システム(100)は、ネットワーク(150)を介して相互接続された少なくとも2つの端末(110~120)を含み得る。データの一方向伝送のために、第1の端末(110)は、ネットワーク(150)を介して他の端末(120)に伝送するために、ローカル位置でビデオデータを符号化することができる。第2の端末(120)は、ネットワーク(150)から他の端末の符号化されたビデオデータを受信し、符号化されたデータを復号し、復元されたビデオデータを表示することができる。一方向性データ伝送は、メディア提供アプリケーションなどにおいて一般的である。
【0016】
図1は、例えば、テレビ会議中に発生し得る符号化されたビデオの双方向伝送をサポートするために提供される第2の端末(130、140)のペアを示す。データの双方向伝送のために、各端末(130、140)は、ローカル位置で捕捉されたビデオデータを、ネットワーク(150)を介して他の端末に伝送するために符号化することができる。各端末(130、140)はまた、他の端末によって送信された符号化されたビデオデータを受信することができ、符号化されたデータを復号することができ、復元されたビデオデータをローカルディスプレイ装置に表示することができる。
【0017】
図1において、端末(110~140)は、サーバ、パーソナルコンピュータ及びスマートフォンとして示されてもよいが、本開示の原理は、それらに限定されない。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤ、及び/又は専用のビデオ会議機器を用いてアプリケーションを見出す。ネットワーク(150)は、例えば、有線及び/又は無線通信ネットワークを含む、端末(110~140)間で符号化されたビデオデータを搬送する任意の数のネットワークを表す。通信ネットワーク(150)は、回線交換及び/又はパケット交換チャネルにおいてデータを交換することができる。代表的なネットワークは、電気通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク及び/又はインターネットを含む。本説明の目的のために、ネットワーク(150)のアーキテクチャ及びトポロジーは、以下に説明しない限り、本開示の動作には重要ではない。
【0018】
図2は、開示された主題のアプリケーションのための一例として、ストリーミング環境におけるビデオエンコーダ及びデコーダの配置を示す。開示された主題は、例えば、ビデオ会議、デジタルTV、CD、DVD、メモリスティックなどを含むデジタルメディアへの圧縮されたビデオの記憶などを含む、他のビデオ可能化アプリケーションにも同様に適用可能である。
【0019】
ストリーミングシステムは、例えば圧縮されていないビデオサンプルストリーム(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を含む。開発中のものは、Versatile Video Coding又はVVCとして非公式に知られているビデオ符号化規格である。開示された主題事項は、VVCのコンテキストで使用され得る。
【0020】
図3は、本開示の一実施形態によるビデオデコーダ(210)の機能ブロック図であり得る。
【0021】
受信機(310)は、デコーダ(210)によって復号される1つ以上の符号化されたビデオシーケンスを受信することができ、同じ又は別の実施形態では、一度に1つの符号化されたビデオシーケンスを受信することができ、各符号化されたビデオシーケンスの復号は、他の符号化されたビデオシーケンスから独立している。符号化されたビデオシーケンスは、チャネル(312)から受信してもよく、このチャネルは、符号化されたビデオデータを記憶する記憶装置へのハードウェア/ソフトウェアリンクであってもよい。受信機(310)は、符号化されたビデオデータを、例えば、符号化されたオーディオデータ及び/又は補助的なデータストリームなどの他のデータと共に受信してもよく、これらのデータは、それぞれのエンティティ(図示せず)を使用して転送してもよい。受信機(310)は、符号化されたビデオシーケンスを他のデータから分離してもよい。ネットワークジッタと闘うために、バッファメモリ(315)は、受信機(310)とエントロピーデコーダ/解析器(320)(以後「解析器」)との間で結合されてもよい。受信機(310)が、十分な帯域幅及び制御可能性を有する記憶/転送装置から、又はアイソクロナスネットワークからデータを受信しているときに、バッファ(315)は、不要であってもよく、又は小さくすることができる。インターネットのようなベストエフォート型パケットネットワークでの使用のために、バッファ(315)が必要とされてもよく、比較的大きくすることができ、有利に適応サイズとすることができる。
【0022】
ビデオデコーダ(210)は、エントロピー符号化されたビデオシーケンスからシンボル(321)を再構成するための解析器(320)を含んでもよい。これらのシンボルのカテゴリは、デコーダ(210)の動作を管理するために使用される情報と、
図3に示されているように、デコーダの不可欠な部分ではないが、デコーダに結合することができるディスプレイ(212)などのレンダリング装置を制御するための潜在的な情報とを含む。レンダリング装置の制御情報は、補足強化情報(SEIメッセージ)又はビデオユーザビリティ情報(VUI)パラメータセットフラグメント(図示せず)の形式であってもよい。解析器(320)は、受信した符号化されたビデオシーケンスを解析/エントロピー復号してもよい。符号化されたビデオシーケンスの符号化は、ビデオ符号化技術又は規格に従うことができ、可変長符号化、ハフマン符号化、コンテキスト感度を伴う又は伴わない算術符号化などを含む、当業者に周知の原理に従うことができる。解析器(320)は、グループに対応する少なくとも1つのパラメータに基づいて、符号化されたビデオシーケンスから、ビデオデコーダにおける画素のサブグループのうちの少なくとも1つのサブグループパラメータのセットを抽出してもよい。サブグループは、ピクチャのグループ(GOP:Groups of Picture)、ピクチャ、サブピクチャ、タイル、スライス、ブリック、マクロブロック、符号化ツリーユニット(CU:Coding Tree Unit)符号化ユニット(CU:Coding Unit)、ブロック、変換ユニット(TU:Transform Unit)、予測ユニット(PU:Prediction Unit)などを含む。タイルは、ピクチャにおける特定のタイル列及び行内のCU/CTUの矩形領域を示してもよい。ブリックは、特定のタイル内のCU/CTU列の矩形領域を示してもよい。スライスは、NALユニットに含まれるピクチャの1つ以上のブリックを示してもよい。サブピクチャは、ピクチャ内の1つ以上のスライスの矩形領域を示してもよい。エントロピーデコーダ/解析器はまた、符号化されたビデオシーケンスから、変換係数、量子化パラメータ値、動きベクトルなどの情報を抽出してもよい。
【0023】
解析器(320)は、シンボル(321)を作成するために、バッファ(315)から受信したビデオシーケンスに対してエントロピー復号/解析動作を実行してもよい。
【0024】
シンボル(321)の再構成は、符号化されたビデオピクチャ又はその部分(例えば、フレーム間ピクチャ及びフレーム内ピクチャ、フレーム間ブロック及びフレーム内ブロック)のタイプ及び他の要因に応じて、複数の異なるユニットに関与することができる。どのユニットが関与し、どのように関与するかは、解析器(320)によって符号化されたビデオシーケンスから解析されたサブグループ制御情報によって制御することができる。解析器(320)と以下の複数ユニットとの間のこのようなサブグループ制御情報の流れは、明確にするために示されていない。
【0025】
すでに述べた機能ブロックの他に、デコーダ210は、概念的には、後述するように、いくつかの機能ユニットに分割することができる。商業的制約の下で動作する実用的な実装では、これらのユニットの多くは互いに密接に相互作用し、少なくとも部分的に互いに統合することができる。しかしながら、開示された主題を説明するためには、以下の機能ユニットに概念的に細分化することが適切である。
【0026】
第1のユニットは、スケーラ/逆変換ユニット(351)である。スケーラ/逆変換ユニット(351)は、解析器(320)からのシンボル(321)として、使用するべき変換、ブロックサイズ、量子化因子、量子化スケーリング行列などを含む制御情報とともに、量子化された変換係数を受信する。アグリゲータ(355)に入力することができるサンプル値を含むブロックを出力することができる。
【0027】
場合によっては、スケーラ/逆変換(351)の出力サンプルは、フレーム内の符号化されたブロック、すなわち、以前に再構成されたピクチャからの予測情報を使用していないが、現在のピクチャの以前に再構成された部分からの予測情報を使用することができるブロックに関連付けることができる。このような予測情報は、フレーム内ピクチャ予測ユニット(352)によって提供することができる。場合によっては、フレーム内ピクチャ予測ユニット(352)は、現在の(部分的に再構成された)ピクチャ(358)から取り出された既に再構成された周囲の情報を使用して、再構成中のブロックの同じサイズ及び形状のブロックを生成する。アグリゲータ(355)は、場合によっては、サンプル毎に、フレーム内予測ユニット(352)が生成した予測情報を、スケーラ/逆変換ユニット(351)によって提供される出力サンプル情報に追加する。
【0028】
他の場合には、スケーラ/逆変換ユニット(351)の出力サンプルは、フレーム管符号化された潜在的に動き補償されたブロックに関係することができる。このような場合、動き補償予測ユニット(353)は、参照ピクチャメモリ(357)にアクセスして、予測に使用されるサンプルをフェッチすることができる。ブロックに関係するシンボル(321)に従って、フェッチされたサンプルの動き補償後、これらのサンプルは、アグリゲータ(355)によって、スケーラ/逆変換ユニットの出力(この場合、残留サンプル又は残留信号と呼ぶ)に追加され、出力サンプル情報を生成することができる。動き補償ユニットが予測サンプルをフェッチする参照ピクチャメモリ形式内のアドレスは、例えばX、Y、及び参照ピクチャ構成要素を有することができるシンボル(321)の形式で動き補償ユニットに利用可能な動きベクトルによって制御することができる。また、動き補償は、サブサンプルの正確な動きベクトルが使用中であるときに、参照ピクチャメモリからフェッチされるサンプル値の補間、動きベクトル予測メカニズムなどを含むことができる。
【0029】
アグリゲータ(355)の出力サンプルは、ループフィルタユニット(356)内の様々なループフィルタリング技術を受けることができる。ビデオ圧縮技術は、符号化されたビデオビットストリームに含まれるパラメータによって制御され、解析器(320)からのシンボル(321)としてループフィルタユニット(356)に利用可能にされるが、符号化されたピクチャ又は符号化されたビデオシーケンスの(復号順で)以前の部分の復号中に取得されたメタ情報に応答することができ、また、以前に再構成されループフィルタリングされたサンプル値に応答することもできる、ループ内フィルタ技術を含むことができる。
【0030】
ループフィルタユニット(356)の出力は、レンダリング装置(212)に出力し、また将来のフレーム間ピクチャ予測に使用するために参照ピクチャメモリに記憶することができるサンプルストリームとすることができる。
【0031】
符号化されたピクチャは、いったん完全に再構成されると、将来の予測のための参考ピクチャとして使用することができる。符号化されたピクチャが完全に再構成され、符号化されたピクチャが参照ピクチャとして識別されると(例えば、解析器(320)によって)、現在の参照ピクチャ(358)は参照ピクチャバッファ(357)の一部とすることができ、新鮮な現在のピクチャメモリが、次の符号化されるピクチャの再構成を開始する前に再割当てされることができる。
【0032】
ビデオデコーダ210は、ITU-T Rec.H.265における規格で文書化され得る所定のビデオ圧縮技術に従って復号動作を実行してもよい。符号化されたビデオシーケンスは、ビデオ圧縮技術文書又は規格の中で、特にその中のプロファイル文書の中で規定されているように、ビデオ圧縮技術又は規格の構文に従うという意味で、使用されているビデオ圧縮技術又は規格によって規定された構文に準拠することができる。また、コンプライアンスのために必要なことは、符号化されたビデオシーケンスの複雑さが、ビデオ圧縮技術又は規格のレベルによって定義される範囲内にあることとすることができる。場合によっては、レベルは、最大ピクチャサイズ、最大フレームレート、最大再構成サンプルレート(例えば、毎秒メガサンプルで測定される)、最大参照ピクチャサイズなどを制限する。レベルによって設定された制限は、場合によっては、符号化されたビデオシーケンスでシグナリングされた仮想参照デコーダ(HRD)バッファ管理のためのHRD仕様とメタデータを通してさらに制限することができる。
【0033】
一実施形態では、受信機(310)は、符号化されたビデオと共に付加的な(冗長な)データを受信してもよい。付加的なデータは、符号化されたビデオシーケンスの一部として含まれてもよい。付加的なデータは、データを適切に復号するため、及び/又は元のビデオデータをより正確に再構成するために、ビデオデコーダ(210)によって使用されてもよい。付加的なデータは、例えば、時間的、空間的、又はSNR拡張層、冗長スライス、冗長ピクチャ、前方エラー補正コードなどの形式とすることができる。
【0034】
図4は、本開示の一実施形態によるビデオエンコーダ(203)の機能ブロック図であり得る。
【0035】
エンコーダ(203)は、エンコーダ(203)によって符号化されるべきビデオ画像を捕捉し得るビデオソース(201)(エンコーダの一部ではない)からビデオサンプルを受信してもよい。
【0036】
ビデオソース(201)は、任意の適切なビット深さ(例えば、8ビット、10ビット、12ビット、...)、任意の色空間(例えば、BT.601 Y CrCB、RGB、...)及び任意の適切なサンプリング構造(例えば、Y CrCb 4:2:0、Y CrCb 4:4:4)のうちのものとすることができるデジタルビデオサンプルストリームの形式で、エンコーダ(203)によって符号化されるソースビデオシーケンスを提供してもよい。メディアサービスシステムにおいて、ビデオソース(201)は、以前に準備されたビデオを記憶する記憶装置であり得る。ビデオ会議システムでは、ビデオソース(201)は、ローカル画像情報をビデオシーケンスとして捕捉するカメラであり得る。ビデオデータは、シーケンスで見たときに動きを与える複数の個々のピクチャとして提供されてもよい。ピクチャ自体は、画素の空間アレイとして編成されてもよく、各画素は、使用中のサンプリング構造、色空間などに応じて、1つ以上のサンプルを含むことができる。当業者は、画素とサンプルとの関係を容易に理解することができる。以下の説明は、サンプルに焦点を当てる。
【0037】
一実施形態によれば、エンコーダ(203)は、ソースビデオシーケンスのピクチャを、リアルタイムで、又はアプリケーションによって要求される任意の他の時間制約下で、符号化されたビデオシーケンス(443)に符号化及び圧縮してもよい。適切な符号化速度を強制することは、コントローラ(450)の1つの機能である。コントローラは、以下に説明されるように他の機能ユニットを制御し、これらのユニットに機能的に結合される。結合は、明確にするために示されていない。コントローラによって設定されるパラメータは、レート制御関連パラメータ(ピクチャスキップ、量子化器、レート歪み最適化技術のラムダ値、...)、ピクチャサイズ、ピクチャのグループ(GOP)レイアウト、最大動きベクトル探索範囲などを含むことができる。当業者は、コントローラ(450)の他の機能を、特定のシステム設計のために最適化されたビデオエンコーダ(203)に関係し得るため、容易に識別することができる。
【0038】
いくつかのビデオエンコーダは、当業者が「符号化ループ」として容易に認識することができるもので動作する。非常に簡単な説明として、符号化ループは、エンコーダ(430)(以下、「ソースコーダ」)(符号化される入力ピクチャと参照ピクチャに基づいてシンボルを生成する責任を負う)の符号化部分と、エンコーダ(203)に埋め込まれ、シンボルを再構成して、(リモート)デコーダもまた作成するであろうサンプルデータを作成する(シンボルと符号化されたビデオビットストリームとの間のいかなる圧縮も、開示された主題において考慮されるビデオ圧縮技術においては、可逆的であるため)(ローカル)デコーダ(433)と、からなることができる。再構成されたサンプルストリームは、参照ピクチャメモリ(434)に入力される。シンボルストリームの復号は、デコーダ位置(ローカル又はリモート)に関係なくビットの正確な結果をもたらすため、参照ピクチャバッファコンテンツもローカルエンコーダとリモートエンコーダの間でビットが正確である。言い換えると、エンコーダの予測部分は、デコーダが復号中に予測を使用するときに「見る」のとまったく同じサンプル値を参照ピクチャサンプルとして「見る」。参照ピクチャ同期性のこの基本原理(例えば、チャンネルエラーのために同期性を維持することができない場合、ドリフトが結果として生じる)は、当業者に周知である。
【0039】
「ローカル」デコーダ(433)の動作は、「リモート」デコーダ(210)と同じにすることができ、これは、
図3と併せて既に詳細に上述されている。
図4も参照すると、しかしながら、シンボルが利用可能であり、エントロピーコーダ(445)及び解析器(320)による符号化されたビデオシーケンスへのシンボルの符号化/復号が可逆的とすることができるため、チャネル(312)、受信機(310)、バッファ(315)及び解析器(320)を含むデコーダ(210)のエントロピー復号部分は、ローカルデコーダ(433)において完全には実装されないことがある。
【0040】
この時点で、デコーダに存在する解析/エントロピー復号以外のいかなるデコーダ技術も、対応するエンコーダにおいて、実質的に同一の機能形式で必ず存在する必要がある、ということが分かっている。このため、開示された主題はデコーダ動作に焦点を当てる。エンコーダ技術の説明は、包括的に記述されたデコーダ技術の逆であるため、省略することができる。特定の分野においてのみ、より詳細な説明が必要であり、以下に提供される。
【0041】
その動作の一部として、ソースコーダ(430)は、「参照フレーム」として指定されたビデオシーケンスからの1つ以上の以前に符号化されたフレームを参照して、入力フレームを予測的に符号化する動き補償予測符号化を実行してもよい。このようにして、符号化エンジン(432)は、入力フレームの画素ブロックと、入力フレームに対する予測参照として選択され得る参照フレームの画素ブロックとの間の差分を符号化する。
【0042】
ローカルビデオデコーダ(433)は、ソースコーダ(430)によって生成されたシンボルに基づいて、参照フレームとして指定され得るフレームの符号化されたビデオデータを復号してもよい。符号化エンジン(432)の動作は、有利には、損失性プロセスであってもよい。符号化されたビデオデータがビデオデコーダで復号され得るときに、再構成されたビデオシーケンスは、典型的には、いくつかのエラーを伴うソースビデオシーケンスのレプリカであってもよい。ローカルビデオデコーダ433は、ビデオデコーダによって参照フレームに対して実行され得る復号プロセスをコピーし、再構成された参照フレームが参照ピクチャキャッシュ(434)に記憶されるようにしてもよい。このようにして、エンコーダ(203)は、遠端ビデオデコーダによって取得されるであろう(伝送誤差が存在しない)再構成された参照フレームと共通のコンテンツを有する再構成された参照フレームのコピーを、ローカルに記憶することができる。
【0043】
予測器(435)は、符号化エンジン(432)について予測検索を実行することができる。すなわち、符号化される新しいフレームに対して、予測器(435)は、サンプルデータ(候補参照画素ブロックとして)、又は新しいピクチャに対する適切な予測参照として機能する参照ピクチャ動きベクトル、ブロック形状などの特定のメタデータについて参照ピクチャメモリ(434)を検索することができる。予測器(435)は、適切な予測参照を見出すために、サンプルブロック対画素ブロックベースで動作することができる。場合によっては、予測器(435)によって取得された取得結果によって判定されるように、入力ピクチャは、参照ピクチャメモリ(434)に記憶された複数の参照ピクチャから引き出された予測参照を有することができる。
【0044】
コントローラ(450)は、例えば、ビデオデータを符号化するために使用されるパラメータ及びサブグループパラメータの設定を含む、ビデオコーダ(430)の符号化動作を管理することができる。
【0045】
前述の機能ユニットのすべての出力は、エントロピーコーダ(445)におけるエントロピー符号化を受けることができる。エントロピーコーダは、例えば、ハフマン符号化、可変長符号化、算術符号化など、当業者に知られた技術に従って、符号を可逆的に圧縮することによって、様々な機能ユニットによって生成されたシンボルを符号化されたビデオシーケンスに変換する。
【0046】
送信機(440)は、エントロピーコーダ(445)によって生成された符号化されたビデオシーケンスをバッファし、通信チャネル(460)を介した伝送のために準備することができ、通信チャネル(460)は、符号化されたビデオデータを記憶する記憶装置へのハードウェア/ソフトウェアリンクとすることができる。送信機(440)は、ビデオコーダ(430)からの符号化されたビデオデータを、例えば符号化されたオーディオデータ及び/又は補助的なデータストリーム(図示せず)など、送信される他のデータとマージすることができる。
【0047】
コントローラ(450)は、エンコーダ(203)の動作を管理することができる。符号化の間、コントローラ(450)は、各符号化されたピクチャに特定の符号化されたピクチャタイプを割り当てることができ、これは、それぞれのピクチャに適用され得る符号化技術に影響を及ぼすことがある。例えば、ピクチャは、以下のフレームタイプの1つとして割り当てられることが多い。すなわち、
【0048】
フレーム内ピクチャ(Iピクチャ)は、予測のソースとしてシーケンス内の任意の他のフレームを使用せずに、符号化及び復号され得るものであってもよい。いくつかのビデオコーデックは、例えば、独立したデコーダリフレッシュピクチャ(Independent Decoder Refresh Picture)を含む、異なるタイプのフレーム内ピクチャを許容する。当業者は、Iピクチャのこれらの変形例、並びにそれらのそれぞれの用途及び特徴を理解している。
【0049】
予測ピクチャ(Pピクチャ)は、各ブロックのサンプル値を予測するために、多くても1つの動きベクトル及び参照インデックスを使用して、フレーム内予測又はフレーム間予測を使用して符号化及び復号され得るものであってもよい。
【0050】
双方向予測ピクチャ(Bピクチャ)は、各ブロックのサンプル値を予測するために、多くても2つの動きベクトル及び参照インデックスを使用して、フレーム内予測又はフレーム間予測を使用して符号化及び復号され得るものであってもよい。同様に、複数の予測ピクチャは、1つのブロックの再構成のために、2つより多い参照ピクチャ及び関連するメタデータを使用することができる。
【0051】
ソースピクチャは、一般的に、複数のサンプルブロック(例えば、それぞれ4×4、8×8、4×8、又は16×16個のサンプルのブロック)に空間的に細分化され、ブロックごとに符号化され得る。ブロックは、ブロックのそれぞれのピクチャに適用される符号化割り当てによって判定されるように、他の(既に符号化された)ブロックを参照して予測的に符号化され得る。例えば、Iピクチャのブロックは、非予測的に符号化されてもよいし、それらは、同じピクチャの既に符号化されたブロックを参照して予測的に符号化されてもよい(空間的予測又はフレーム内予測)。Pピクチャの画素ブロックは、非予測的にか、1つ前に符号化された参照ピクチャを参照して、空間的予測を介して、又は時間的予測を介して符号化されてもよい。Bピクチャのブロックは、非予測的にか、1つ又は2つの前に符号化された参照ピクチャを参照して、空間的予測を介して、又は時間的予測を介して符号化されてもよい。
【0052】
ビデオコーダ(203)は、ITU-T Rec.H.265.などの所定のビデオ符号化技術又は規格に従って符号化動作を実行することができる。
その動作において、ビデオコーダ(203)は、入力ビデオシーケンスにおける時間的及び空間的冗長性を利用する予測符号化動作を含む様々な圧縮動作を実行することができる。したがって、符号化されたビデオデータは、使用されているビデオ符号化技術又は規格によって指定された構文に準拠することができる。
【0053】
一実施形態では、送信機(440)は、符号化されたビデオと共に付加的なデータを送信してもよい。ビデオコーダ(430)は、符号化されたビデオシーケンスの一部としてそのようなデータを含むことができる。付加的なデータは、時間的/空間的/SNR拡張層、冗長ピクチャ及びスライスなどの他の形式の冗長データ、補足強化情報(SEI:Supplementary Enhancement Information)メッセージ、ビジュアルユーザビリティ情報(VUI:Visual Usability Information)パラメータセットフラグメントなどを含んでもよい。
【0054】
実施形態は、ピクチャヘッダに関連する構文及び意味の修正に関することができる。少なくとも1つの実施形態は、ゲートフラグとして、PPSにおけるall_pic_coding_in_ph_ph_flagをシグナリングして、ピクチャレベルの符号化ツール情報がPH又はSHに存在するかどうかを指定するためのいくつかのビットを節約することに関することができる。少なくとも1つの実施形態は、PU又はAUの最初のVCL NALユニットの識別を訂正することに関することができる。少なくとも1つの実施形態は、mixed_nalu_types_flagが1に等しい場合に対処するために、gdr_or_irap_pic_flagの意味の修正に関することができる。
【0055】
実施形態において、ピクチャパラメータセット(PPS)は、各スライスヘッダ内に見出される構文要素によって判定されるように、ゼロ以上の符号化されたピクチャ全体に適用される構文要素を含む構文構造を指すことができる。
【0056】
実施形態において、ピクチャヘッダ(PH)は、符号化されたピクチャの全てのスライスに適用される構文要素を含む構文構造を指すことができる。
【0057】
実施形態において、スライスヘッダ(SH)は、スライス内で表されるタイル内の全てのタイル又は符号化ツリーユニットに関係するデータ要素を含む符号化されたスライスの一部分を指すことができる。
【0058】
実施形態は、ビデオ符号化層(VCL:Video Coding Layer)に関することができる。
【0059】
実施形態において、ネットワーク抽象化層(NAL)ユニットは、後続のデータのタイプの指示と、必要に応じてエミュレーション防止バイトが散在する生バイトシーケンスペイロードの形式のデータを含むバイトとを含む構文構造を指すことができる。
【0060】
実施形態において、VCL NALユニットは、本明細書においてVCL NALユニットとして分類されるnal_unit_typeの予約値を有する、符号化されたスライスNALユニット及びNALユニットのサブセットに対する集合的な用語を指すことができる。
【0061】
実施形態において、ピクチャユニット(PU)は、指定された分類規則にしたがって互いに関連し、復号順に連続し、正確に1つの符号化されたピクチャを含むNALユニットのセットを指すことができる。
【0062】
実施形態において、アクセスユニット(AU)は、異なる層に属し、復号ピクチャバッファ(DPB)からの出力のために同じ時間に関連する符号化されたピクチャを含むPUのセットを指すことができる。
【0063】
実施形態は、サンプル適応オフセット(SAO:sample adaptive offset)に関することができる。
【0064】
実施形態において、適応ループフィルタ(ALF)は、復号プロセスの一部分として適用され、適応パラメータセット(APS)において搬送されるパラメータによって制御されるフィルタリングプロセスを指すことができる。
【0065】
実施形態は、量子化パラメータ(QP:quantization parameter )に関することができる。
【0066】
実施形態は、フレーム内ランダムアクセスポイント(IRAP:intra random access point)に関することができる。
【0067】
実施形態は、緩やかな復号リフレッシュ(GDR:gradual decoding refresh)に関することができる。
【0068】
実施形態において、GDRピクチャは、各VCL NALユニットがGDR_NUTと等しいnal_unit_typeを有するピクチャを指すことができる。
【0069】
VVCドラフト(JVET-Q2001-vE)の最新バージョンでは、6つのフラグを使用して、ピクチャレベルの符号化情報が、PPS構文構造のピクチャヘッダ又はスライスヘッダに存在するかどうかを示すことができる。たとえば、rpl_info_in_ph_flag、dbf_info_in_ph_flag、sao_info_in_ph_flagなどである。ほとんどの場合、それらの値は同じ値、0又は1を有することができる。xxx_info_in_phフラグごとに異なる値を有する可能性は低いと思われる。
【0070】
したがって、実施形態において、ゲートフラグall_pic_coding_info_present_ph_flagは、PPSにおけるこれらのフラグの存在を示し、PPSにおけるビットを節約することができる。all_pic_coding_info_present_in_ph_flagの値が1に等しい場合、それらのxxx_info_in_phフラグはシグナリングされず、それらのフラグの値は1に等しいと推測されてもよい。これは、ピクチャヘッダにおいてピクチャレベルの符号化情報をシグナリングすることは、スライスレベルの制御のためにスライスヘッダにおいて情報をシグナリングするよりも頻繁に起こる可能性があるためである。実施形態と矛盾しない構文テーブルの一例を
図5に示す。
【0071】
実施形態において、1に等しいall_pic_coding_info_present_in_ph_flagは、rpl_info_in_ph_flag、dbf_info_in_ph_flag、sao_info_in_ph_flag、alf_info_in_ph_flag、wp_info_in_ph_flag及びqp_delta_info_in_ph_flagがPPSに存在しないことを指定することができる。0に等しいall_pic_coding_info_present_in_ph_flagは、rpl_info_in_ph_flag、dbf_info_in_ph_flag、sao_info_in_ph_flag、alf_info_in_ph_flag、wp_info_in_ph_flag及びqp_delta_info_in_ph_flagがPPSに存在することを指定することができる。
【0072】
実施形態において、1に等しいrpl_info_in_ph_flagは、参照ピクチャリスト情報がPH構文構造に存在し、PH構文構造を含まないPPSを参照するスライスヘッダには存在しないことを指定することができる。0に等しいrpl_info_in_ph_flagは、参照ピクチャリスト情報がPH構文構造に存在せず、PH構文構造を含まないPPSを参照するスライスヘッダに存在することを指定することができる。存在しないときに、rpl_info_in_ph_flagの値は1に等しいと推測されてもよい。
【0073】
実施形態において、1に等しいdbf_info_in_ph_flagは、ブロック解除フィルタ情報がPH構文構造に存在し、PH構文構造を含まないPPSを参照するスライスヘッダには存在しないことを指定することができる。0に等しいdbf_info_in_ph_flagは、ブロック解除フィルタ情報がPH構文構造に存在せず、PH構文構造を含まないPPSを参照するスライスヘッダに存在することを指定することができる。存在しないときに、dbf_info_in_ph_flagの値は0に等しいと推測されてもよい。存在しないときに、dbf_info_in_ph_flagの値は1に等しいと推測されてもよい。
【0074】
1に等しいsao_info_in_ph_flagは、SAOフィルタ情報がPH構文構造に存在し、PH構文構造を含まないPPSを参照するスライスヘッダには存在しないことを指定することができる。0に等しいsao_info_in_ph_flagはSAOフィルタ情報がPH構文構造に存在せず、PH構文構造を含まないPPSを参照するスライスヘッダに存在することを指定することができる。存在しないときに、sao_info_in_ph_flagの値は1に等しいと推測されてもよい。
【0075】
1に等しいalf_info_in_ph_flagは、ALF情報がPH構文構造に存在し、PH構文構造を含まないPPSを参照するスライスヘッダには存在しないことを指定することができる。0に等しいalf_info_in_ph_flagはALF情報がPH構文構造に存在せず、PH構文構造を含まないPPSを参照するスライスヘッダに存在することを指定することができる。存在しないときに、alf_info_in_ph_flagの値は1に等しいと推測されてもよい。
【0076】
1に等しいwp_info_in_ph_flagは、重み付け予測情報がPH構文構造に存在し、PH構文構造を含まないPPSを参照するスライスヘッダには存在しないことを指定することができる。0に等しいwp_info_in_ph_flagは重み付け予測情報がPH構文構造に存在せず、PH構文構造を含まないPPSを参照するスライスヘッダに存在することを指定することができる。存在しないときに、wp_info_in_ph_flagの値は0に等しいと推測されてもよい。存在しないときに、wp_info_in_ph_flagの値は1に等しいと推測されてもよい。
【0077】
1に等しいqp_delta_info_in_ph_flagは、QPデルタ情報がPH構文構造に存在し、PH構文構造を含まないPPSを参照するスライスヘッダには存在しないことを指定することができる。0に等しいqp_delta_info_in_ph_flagはQPデルタ情報がPH構文構造に存在せず、PH構文構造を含まないPPSを参照するスライスヘッダに存在することを指定することができる。存在しないときに、qp_delta_info_in_ph_flagの値は1に等しいと推測されてもよい。
【0078】
最新のVVC仕様ドラフトでは、ドラフト、PU又はAUの最初のVCL NALユニットを識別する方法は明確ではない。実施形態は、NALユニットの順序の記述の以下の修正に関することができる。
【0079】
実施形態において、VCL NALユニットは、VCL NALユニットが、PH NALユニットに続く最初のVCL NALユニットであるか、又は1に等しいpicture_header_in_slice_header_flagを有し、以下の条件のうちの1つ以上が真であるときに、AUの最初のVCL NALユニットである(したがって、VCL NALユニットを含むPUは、AUの最初のPUである)。
- VCL NALユニットのnuh_layer_idの値が、復号順において前のピクチャのnuh_layer_id未満である。
- VCL NALユニットのph_pic_order_cnt_lsbの値が、復号順において前のピクチャのph_pic_order_cnt_lsbとは異なる。
- VCL NALユニットのために導出されたPicOrderCntValは、復号順において前のピクチャのPicOrderCntValとは異なる。
【0080】
実施形態において、ピクチャヘッダにおけるフラグgdr_or_irap_pic_flagは、現在のピクチャがIRAP又はGDRピクチャであるかどうかを示す。gdr_or_irap_pic_flagの値が1に等しいときに、同様にフラグno_output_of_prior_pics_flagがピクチャヘッダに存在することができる。サブピクチャのビットストリームがマージされるときに、IRAPサブピクチャのno_output_of_prior_pics_flagの値は、サブピクチャ抽出のために保持される必要がある。この問題に対処するために、実施形態は、gdr_or_irap_pic_flagの意味の以下の修正に関することができる。
【0081】
実施形態において、1に等しいgdr_or_irap_pic_flagは、現在のピクチャがGDRもしくはIRAPピクチャであること、又はIDR_W_RADL、IDR_N_LPもしくはCRA_NUTに等しいVCL_NALユニットと、1に等しいmixed_nalu_types_in_pic_flag有するピクチャであることを指定することができる。0に等しいgdr_or_irap_pic_flagは、現在のピクチャがGDR又はIRAPピクチャであってもなくてもよいことを指定することができる。
【0082】
実施形態において、1に等しいgdr_or_irap_pic_flagは、現在のピクチャがGDR又はIRAPピクチャであること、又は1に等しいmixed_nalu_types_in_pic_flagを有するIRAPサブピクチャを含むピクチャであることを指定することができる。0に等しいgdr_or_irap_pic_flagは、現在のピクチャがGDR又はIRAPピクチャであってもなくてもよいことを指定することができる。
【0083】
実施形態において、1に等しいgdr_or_irap_pic_flagは、現在のピクチャがGDR又はIRAPピクチャであることを指定することができる。0に等しいgdr_or_irap_pic_flagは、現在のピクチャがGDR又はIRAPピクチャであってもなくてもよいことを指定することができる。
【0084】
mixed_nalu_types_in_pic_flagが1に等しいとき、gdr_or_irap_pic_flagの値が0に等しいものとすることは、ビットストリーム適合性の要件であってもよい。
【0085】
図6A~
図6Cは、符号化されたビデオビットストリームを復号するための例示的なプロセス600A、600B、及び600Cのフローチャートである。いくつかの実装において、
図6A~
図6Cの1つ以上のプロセスブロックは、デコーダ210によって実行されてもよい。いくつかの実装において、
図6A~6Cの1つ以上のプロセスブロックは、エンコーダ203など、デコーダ210から分離されるか、又はデコーダ210を含む、別の装置又は装置のグループによって実行されてもよい。
【0086】
実施形態において、
図6Aに示されたブロックのうちの1つ以上は、
図6B及び6Cの1つ以上のブロックに対応することができるか、又はこれらのブロックと共に実行されることができる。
【0087】
図6Aに示されるように、プロセス600Aは、ビデオ符号化層(VCL)ネットワーク抽象化層(NAL)ユニットを取得すること(ブロック611)を含むことができる。
【0088】
図6Aにさらに示されるように、プロセス600Aは、VCL NALユニットが、VCL NALユニットを含むピクチャユニット(PU)の最初のVCL NALユニットであるとを判定すること(ブロック612)を含むことができる。
【0089】
図6Aにさらに示されるように、プロセス600Aは、VCL NALユニットがPUの最初のVCL NALユニットであると判定することに基づいて、VCL NALユニットがPUを含むアクセスユニット(AU)の最初のVCL NALユニットであると判定すること(ブロック613)を含むことができる。
【0090】
図6Aにさらに示されるように、プロセス600Aは、VCL NALユニットがAUの最初のVCL NALユニットであると判定することに基づいて、VCL NALユニットに基づいてAUを復号すること(ブロック614)を含むことができる。
【0091】
実施形態において、
図6Bに示されたブロックのうちの1つ以上は、
図6A及び6Bの1つ以上のブロックに対応することができるか、又はこれらのブロックと共に実行されることができる。
【0092】
図6Bに示されるように、プロセス600Bは、VCL NALユニットを取得すること(ブロック621)を含むことができる。
【0093】
図6Bにさらに示されるように、プロセス600Bは、VCL NALユニットが、ピクチャヘッダNALユニットに続く最初のVCL NALユニットであるかどうかを判定すること(ブロック622)を含むことができる。
【0094】
図6Bにさらに示されるように、プロセス600Bは、VCL NALユニットが、ピクチャヘッダNALユニットに続く最初のVCL NALユニットであると判定すること(ブロック622でYES)に基づいて、ブロック623に進むことを含むことができる。
【0095】
図6Bにさらに示されるように、プロセス600Bは、VCL NALユニットが、ピクチャヘッダNALユニットに続く最初のVCL NALユニットではないと判定すること(ブロック623でNO)に基づいて、ブロック624に進むことを含むことができる。実施形態において、プロセス600Bは、代わりにブロック625に進んでもよい。
【0096】
図6Bにさらに示されるように、プロセス600Bは、VCL NALユニットにおけるフラグが、VCL NALユニットに含まれるスライスヘッダにピクチャヘッダが含まれることを示すように設定されているかどうかを判定すること(ブロック624)を含むことができる。実施形態において、フラグは、picture_header_in_slice_header_flagに対応することができる。
【0097】
図6Bにさらに示されるように、プロセス600Bは、VCL NALユニットにおけるフラグが、VCL NALユニットに含まれるスライスヘッダにピクチャヘッダが含まれることを示すように設定されていると判定すること(ブロック624でYES)に基づいて、ブロック623に進むことを含むことができる。
【0098】
図6Bにさらに示されるように、プロセス600Bは、VCL NALユニットにおけるフラグが、VCL NALユニットに含まれるスライスヘッダにピクチャヘッダが含まれることを示すように設定されていないと判定すること(ブロック624でNO)に基づいて、ブロック625に進むことを含むことができる。
【0099】
図6Bにさらに示されるように、プロセス600Bは、VCL NALユニットがVCL NALユニットを含むPUの最初のVCL NALユニットであると判定すること(ブロック623)を含むことができる。
【0100】
図6Bにさらに示されるように、プロセス600Bは、VCL NALユニットがVCL NALユニットを含むPUの最初のVCL NALユニットではないと判定すること(ブロック625)を含むことができる。
【0101】
実施形態において、
図6Cに示されたブロックのうちの1つ以上は、
図6A及び
図6Bの1つ以上のブロックに対応することができ、又はこれらのブロックと共に実行されることができる。
【0102】
図6Cに示されるように、プロセス600Cは、VCL NALユニットがPUの最初のVCL NALユニットであると判定すること(ブロック631)を含むことができる。
【0103】
図6Cにさらに示されるように、プロセス600Cは、VCL NALユニットの層識別子が、前のピクチャの層識別子未満であるかどうかを判定すること(ブロック632)を含むことができる。
【0104】
図6Cにさらに示されるように、プロセス600Cは、VCL NALユニットの層識別子が、前のピクチャの層識別子未満であると判定すること(ブロック632でYES)に基づいて、ブロック633に進むことを含むことができる。
【0105】
図6Cにさらに示されるように、プロセス600Cは、VCL NALユニットの層識別子が、前のピクチャの層識別子以上であると判定すること(ブロック633でNO)に基づいて、ブロック634に進むことを含むことができる。実施形態において、プロセス600Cは、代わりにブロック635に進んでもよい。
【0106】
図6Cにさらに示されるように、プロセス600Cは、VCL NALユニットのピクチャオーダカウントが、前のピクチャのピクチャオーダカウントとは異なるかどうかを判定すること(ブロック634)を含むことができる。実施形態において、これは、ピクチャオーダカウントの最下位ビット(LSB)に基づいて判定され得る。
【0107】
図6Cにさらに示されるように、プロセス600Cは、VCL NALユニットのピクチャオーダカウントが、前のピクチャのピクチャオーダカウントとは異なると判定すること(ブロック634でYES)に基づいて、ブロック633に進むことを含むことができる。
【0108】
図6Cにさらに示されるように、プロセス600Cは、VCL NALユニットのピクチャオーダカウントが、前のピクチャのピクチャオーダカウントとは異ならないと判定すること(ブロック634でNO)に基づいて、ブロック635に進むことを含むことができる。
【0109】
図6Cにさらに示されるように、プロセス600Cは、VCL NALユニットが、VCL NALユニットを含むAUの最初のVCL NALユニットであると判定すること(ブロック633)を含むことができる。
【0110】
図6Cにさらに示されるように、プロセス600Cは、VCL NALユニットが、VCL NALユニットを含むAUの最初のVCL NALユニットではないことを判定すること(ブロック635)を含むことができる。
【0111】
実施形態において、全てのピクチャ符号化情報がピクチャヘッダに存在することを示すフラグに基づいて、ピクチャ符号化情報に対応する複数のフラグがシグナリングされなくてもよい。実施形態において、フラグは、all_pic_coding_info_present_in_ph_flagに対応することができる。
【0112】
図6A~6Cは、プロセス600A~600Cの例示的なブロックを示し、いくつかの実装では、プロセス600A~600Cは、
図6A~6Cに示されるブロックよりも、追加ブロック、より少ないブロック、異なるブロック、又は異なって配列されたブロックを含んでもよい。追加的又は代替的に、プロセス600A~600Cのブロックのうちの2つ以上は、並行で実行されてもよい。
【0113】
さらに、提案された方法は、処理回路(例えば、1つ以上のプロセッサ又は1つ以上の集積回路)によって実施されてもよい。一例において、1つ以上のプロセッサは、提案された方法の1つ以上を実行するために、非一時的なコンピュータ可読媒体に記憶されたプログラムを実行する。
【0114】
上述の技術は、コンピュータ可読命令を使用し、1つ以上のコンピュータ可読媒体に物理的に記憶されたコンピュータソフトウェアとして実装することができる。例えば、
図7は、開示された主題の特定の実施形態を実装するのに好適なコンピュータシステム700を示す。
【0115】
コンピュータソフトウェアは、アセンブリ、コンパイル、リンク、又は同様のメカニズムの対象となり得る任意の適切な機械コード又はコンピュータ言語を使用して符号化し、コンピュータ中央処理ユニット(CPU)、グラフィック処理ユニット(GPU)などによって、直接的に、又は解釈、マイクロコード実行などを通して実行可能な命令を含むコードを作成することができる。
【0116】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲーム装置、モノのインターネット装置などを含む様々なタイプのコンピュータ又はその構成要素上で実行することができる。
【0117】
コンピュータシステム700のための
図7に示される構成要素は、本質的に例示的なものであり、本開示の実施形態を実装するコンピュータソフトウェアの使用又は機能の範囲に関していかなる制限も示唆することを意図していない。また、構成要素の構成は、コンピュータシステム700の例示的な実施形態に示されている構成要素の任意の1つ又は組み合わせに関するいかなる従属性又は要件も有していると解釈されてはならない。
【0118】
コンピュータシステム700は、特定のヒューマンインターフェース入力装置を含んでもよい。このようなヒューマンインターフェース入力装置は、例えば、触覚入力(例えば、キーストローク、スワイプ、データ手袋の動き)、オーディオ入力(例えば、音声、拍手)、視覚入力(例えば、ジェスチャ)、嗅覚入力(図示せず)を介して、1人以上の人間ユーザによる入力に応答することができる。また、ヒューマンインターフェース装置は、オーディオ(例えば、発話、音楽、周囲音)、画像(例えば、スキャン画像、静止画像カメラから得られる写真画像)、ビデオ(例えば、2次元ビデオ、立体映像を含む3次元ビデオ)などの人間による意識的入力に必ずしも直接関係しない特定の媒体を捕捉するために使用することができる。
【0119】
入力ヒューマンインターフェース装置は、キーボード701、マウス702、トラックパッド703、タッチスクリーン710及び関連するグラフィックアダプタ750、データグローブ、ジョイスティック705、マイクロホン706、スキャナ707、カメラ708のうちの1つ以上を含み得る。
【0120】
コンピュータシステム700はまた、特定のヒューマンインターフェース出力装置を含んでもよい。このようなヒューマンインターフェース出力装置は、例えば、触覚出力、音、光、及び嗅覚/味覚を通して、1人以上の人間ユーザの感覚を刺激することができる。このようなヒューマンインターフェース出力装置は、触覚出力装置(例えば、タッチスクリーン710、データグローブ、又はジョイスティック705による触覚フィードバック)、オーディオ出力装置(スピーカー709、ヘッドフォン(図示せず)など)、視覚出力装置(陰極線管(CRT)スクリーン、液晶ディスプレイ(LCD)スクリーン、プラズマスクリーン、有機発光ダイオード(OLED)スクリーンであって、各々、触覚フィードバック能力を有しているか、又は有しておらず、これらのうちのいくつかは、立体画像出力のような手段を通して2次元の視覚出力又はそれ以上の3次元の出力を出力することができるスクリーン710、仮想現実メガネ(図示せず)、ホログラフィックディスプレイ及びスモークタンク(図示せず)など)、及びプリンタ(図示せず)を含むことができる。
【0121】
コンピュータシステム700はまた、CD/DVD又は同様の媒体721を有するCD/DVD ROM/RW 720を含む光媒体、サムドライブ722、取り外し可能ハードドライブ又はソリッドステートドライブ723、テープ及びフロッピーディスク(図示せず)などのレガシー磁気媒体、セキュリティドングル(図示せず)のような特殊化されたROM/ASIC/PLDベースの装置など、人間がアクセス可能な記憶装置、及びそれらの関連媒体を含むことができる。
【0122】
当業者はまた、現在開示されている主題に関連して使用される用語「コンピュータ可読媒体」は、伝送媒体、搬送波、又は他の過渡信号を包含しないと理解すべきである。
【0123】
コンピュータシステム700はまた、1つ以上の通信ネットワーク(755)へのインターフェースを含むことができる。ネットワークは、例えば、無線、有線、光であり得る。ネットワークは、さらに、ローカル、広域、大都市、車両及び産業、リアルタイム、遅延耐性などであり得る。ネットワークの例には、Ethernet(登録商標)、無線LAN、モバイル通信のためのグローバルシステム(GSM:global systems for mobile communications)、 第3世代(3G:third generation)、第4世代(4G:fourth generation)、第5世代(5G:fifth generation)、ロングタームエボリューション(LTE:Long-Term Evolution)などを含むセルラネットワーク、ケーブルテレビ、衛星テレビ、及び地上放送テレビを含むTV有線及び無線広域デジタルネットワーク、CANBusを含む車両及び産業などを含む。特定のネットワークは、一般に、特定の汎用データポート又は周辺バス(749)に取り付けられる外部のネットワークインターフェースアダプタ(754)(例えば、コンピュータシステム700のユニバーサルシリアルバス(USB:universal serial bus)を必要とし、他のものは、一般に、後述するシステムバスへの取り付けによって、コンピュータシステム700のコアに組み込まれる(例えば、PCコンピュータシステムへのEthernetインターフェース又はスマートフォンコンピュータシステムへのセルラーネットワークインターフェース)。一例として、ネットワーク755は、ネットワークインターフェース754を使用して周辺バス749に接続されてもよい。これらのネットワークのいずれかを使用して、コンピュータシステム700は、他のエンティティと通信することができる。このような通信は、一方向性の受信のみ(例えば、放送テレビ)、一方向性送信のみ(例えば、CANbusから特定のCANバスまで)、又は、例えば、ローカル又は広域デジタルネットワークを使用する他のコンピュータシステムへの双方向性とすることができる。特定のプロトコル及びプロトコルスタックは、上述のように、それらのネットワーク及びネットワークインターフェース(754)の各々で使用され得る。
【0124】
前述のヒューマンインターフェース装置、人間がアクセス可能な記憶装置、及びネットワークインターフェースは、コンピュータシステム700のコア740に取り付けることができる。
【0125】
コア740は、1つ以上の中央処理ユニット(CPU:Central Processing Unit)741、グラフィック処理ユニット(GPU:Graphics Processing Unit)742、フィールドプログラマブルゲートエリア(FPGA:Field Programmable Gate Area)743の形式の特殊化されたプログラマム可能な処理ユニット、特定のタスクのためのハードウェアアクセラレータ744などを含むことができる。これらの装置は、読み取り専用メモリ(ROM:Read-only memory)745、ランダムアクセスメモリ(RAM:Random-access memory)746、内部非ユーザアクセス可能なハードドライブ、ソリッドステートドライブ(SSD:solid-state drive)などの内部大容量ストレージ747は、システムバス748を介して接続することができる。いくつかのコンピュータシステムでは、システムバス748は、追加のCPU、GPUなどによる拡張を可能にするために、1つ以上の物理プラグの形態でアクセス可能とすることができる。周辺装置は、コアのシステムバス748に直接取り付けることも、周辺バス749を介して取り付けることもできる。周辺バスのアーキテクチャは、ペリフェラルコンポーネントインターコネクト(PCI:peripheral component interconnect)、USBなどを含む。
【0126】
CPU741、GPU742、FPGA743、及びアクセラレータ744は、組み合わせて、前述のコンピュータコードを構成することができる特定の命令を実行することができる。そのコンピュータコードは、ROM745又はRAM746に記憶することができる。一時的データはまた、RAM746に記憶することができるが、永久データは、例えば、内部大容量ストレージ747に記憶することができる。1つ以上のCPU741、GPU742、大容量ストレージ747、ROM745、RAM746などと密接に関連付けることができるキャッシュメモリの使用を介して、メモリ装置のいずれかへの高速ストレージ及び取得を可能にすることができる。
【0127】
コンピュータ可読媒体は、様々なコンピュータ実装された動作を実行するためのコンピュータコードをその上に有することができる。媒体及びコンピュータコードは、本開示の目的のために特別に設計及び構築されることができ、又はそれらは、コンピュータソフトウェア技術に熟練した者に周知でかつ入手可能なタイプのものとすることができる。
【0128】
一例として、限定するものではなく、アーキテクチャ、具体的にはコア740を有するコンピュータシステム700は、1つ以上の有形のコンピュータ可読媒体に具現化されたソフトウェアを実行するプロセッサ(CPU、GPU、FPGA、アクセラレータなどを含む)の結果として機能性を提供することができる。このようなコンピュータ可読媒体は、コア内部大容量ストレージ747又はROM745などの非一時的な性質のコア740の特定のストレージと同様に、上記に紹介したユーザがアクセス可能な大容量ストレージに関連付けられた媒体とすることができる。本開示の様々な実施形態を実装するソフトウェアは、そのような装置に記憶され、コア740によって実行することができる。コンピュータ可読媒体は、特定のニーズに応じて、1つ以上のメモリ装置又はチップを含むことができる。ソフトウェアは、コア740、特にその中のプロセッサ(CPU、GPU、FPGAなどを含む)に、RAM 746に記憶されたデータ構造を定義し、ソフトウェアによって定義されたプロセスに従ってそのようなデータ構造を修正することを含む、本明細書に記載された特定のプロセス又は特定のプロセスの特定の部分を実行させることができる。追加的又は代替的には、コンピュータシステムは、回路(例えば、アクセラレータ744)内に配線されたか、又はその他の方法で具現化された論理の結果として、機能性を提供することができ、この回路は、本明細書に記載される特定のプロセス又は特定のプロセスの特定の部分を実行するために、ソフトウェアの代わりに、又はソフトウェアと共に動作することができる。ソフトウェアへの言及は、論理を含み、適切な場合には、その逆も可能である。コンピュータ可読媒体への言及は、実行のためのソフトウェアを記憶する回路(集積回路(IC)など)、実行のための論理を具体化する回路、又は適切な場合にはその両方を含むことができる。本開示は、ハードウェア及びソフトウェアの任意の適切な組み合わせを包含する。
【0129】
本開示は、いくつかの例示的な実施形態を記載してきたが、本開示の範囲内にある変更、置換、及び様々な代替等価物がある。したがって、当業者は、本明細書に明示的に示されていないか、又は記載されていないが、本開示の原理を具体化し、従って、本開示の精神及び範囲内にある多くのシステム及び方法を考案することができると理解されるであろう。