(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-12
(45)【発行日】2024-04-22
(54)【発明の名称】ビデオ符号化およびビデオ復号のための方法、装置、およびコンピュータプログラム製品
(51)【国際特許分類】
H04N 19/70 20140101AFI20240415BHJP
H04N 19/174 20140101ALI20240415BHJP
H04N 21/845 20110101ALI20240415BHJP
【FI】
H04N19/70
H04N19/174
H04N21/845
(21)【出願番号】P 2022540734
(86)(22)【出願日】2020-12-17
(86)【国際出願番号】 FI2020050847
(87)【国際公開番号】W WO2021136880
(87)【国際公開日】2021-07-08
【審査請求日】2022-06-30
(32)【優先日】2019-12-31
(33)【優先権主張国・地域又は機関】FI
(73)【特許権者】
【識別番号】515076873
【氏名又は名称】ノキア テクノロジーズ オサケユイチア
(74)【代理人】
【識別番号】100094569
【氏名又は名称】田中 伸一郎
(74)【代理人】
【識別番号】100103610
【氏名又は名称】▲吉▼田 和彦
(74)【代理人】
【識別番号】100109070
【氏名又は名称】須田 洋之
(74)【代理人】
【識別番号】100067013
【氏名又は名称】大塚 文昭
(74)【代理人】
【識別番号】100086771
【氏名又は名称】西島 孝喜
(74)【代理人】
【氏名又は名称】上杉 浩
(74)【代理人】
【識別番号】100120525
【氏名又は名称】近藤 直樹
(74)【代理人】
【識別番号】100139712
【氏名又は名称】那須 威夫
(72)【発明者】
【氏名】ハヌクセラ ミスカ
(72)【発明者】
【氏名】アクス エムレ
(72)【発明者】
【氏名】カマチ スリーダー カシュヤップ
【審査官】久保 光宏
(56)【参考文献】
【文献】国際公開第2019/138929(WO,A1)
【文献】特表2021-525470(JP,A)
【文献】特表2020-537376(JP,A)
【文献】特表2020-511816(JP,A)
【文献】特表2021-528891(JP,A)
【文献】特表2022-546910(JP,A)
【文献】米国特許出願公開第2016/0165321(US,A1)
【文献】国際公開第2017/202799(WO,A1)
【文献】Miska M. Hannuksela, et al.,"An Overview of the OMAF Standard for 360°Video",Proceedings of 2019 Data Compression Conference (DCC),2019年03月29日,Pages 418-427,Electronic ISBN:978-1-7281-0657-1, Electronic ISSN: 2375-0359, <DOI: 10.1109/DCC.2019.00050>.
【文献】"Information technology - Coding of audio-visual objects - Part 15: Carriage of network abstraction layer (NAL) unit structured video in the ISO base media file format",ISO/IEC 14496-15:2022(E),Sixth edition,ISO/IEC,2022年10月,Pages 130-139,150,151,275-277.
(58)【調査した分野】(Int.Cl.,DB名)
H04N19/00-19/98
H04N21/00-21/858
H04N5/76-5/956
G06F16/40-16/487
G06F16/70-16/787
CSDB(日本国特許庁)
学術文献等データベース(日本国特許庁)
IEEEXplore(IEEE)
(57)【特許請求の範囲】
【請求項1】
コンテナファイル内で、2つ以上のサブピクチャトラックを書き込むステップと、
前記コンテナファイル内で、ビデオビットストリームに転換される対象となるベーストラックを書き込むステップと、
前記ベーストラック内で、サブピクチャのレイアウトを指示するステップと、
前記コンテナファイル内で、サブピクチャの前記レイアウト内のサブピクチャ位置ごとに第1のサブピクチャトラックまたはサブピクチャトラックのグループを示すサンプルグループ記述項目を書き込むステップであって、前記第1のサブピクチャトラックが前記それぞれのサブピクチャ位置用の
サブピクチャシーケンスを含み、サブピクチャトラックの前記グループの中の任意のトラックが前記それぞれのサブピクチャ位置用の有効なサブピクチャシーケンスを含む、ステップと、
前記コンテナファイル内で、前記サンプルグループ記述項目が前記ビデオビットストリームを復元するために使用される対象となる前記ベーストラックのサンプルを指示するステップと
を含む、方法。
【請求項2】
コンテナファイルのベーストラックから、サブピクチャのレイアウトを構文解析するステップと、
前記コンテナファイルから、サブピクチャの前記レイアウト内のサブピクチャ位置ごとに第1のサブピクチャトラックまたはサブピクチャトラックのグループを示すサンプルグループ記述項目を構文解析するステップであって、前記第1のサブピクチャトラックが前記それぞれのサブピクチャ位置用の
サブピクチャシーケンスを含み、サブピクチャトラックの前記グループの中の任意のトラックが前記それぞれのサブピクチャ位置用の有効なサブピクチャシーケンスを含む、ステップと、
前記サンプルグループ記述項目がサブピクチャトラックのグループを示すときに、サブピクチャトラックの前記グループから第2のサブピクチャトラックを選択するステップと、
前記コンテナファイルから、前記ベーストラックのどのセットのサンプルが、前記サンプルグループ記述項目が
ビデオビットストリームを復元するために使用される対象となるかを構文解析するステップと、
前記コンテナファイル
の前記ベーストラックの前記サンプルから、サブピクチャの前記レイアウトのサブピクチャ位置ごとに前記第1のサブピクチャトラックまたは前記第2のサブピクチャトラックの時間整列サンプルを含めることにより、サンプルの前記セットに対応する
前記ビデオビットストリームのコード化ピクチャを復元するステップと
を含む、方法。
【請求項3】
コンテナファイル内で、2つ以上のサブピクチャトラックを書き込むための手段と、
前記コンテナファイル内で、ビデオビットストリームに転換される対象となるベーストラックを書き込むための手段と、
前記ベーストラック内で、サブピクチャのレイアウトを指示するための手段と、
前記コンテナファイル内で、サブピクチャの前記レイアウト内のサブピクチャ位置ごとに第1のサブピクチャトラックまたはサブピクチャトラックのグループを示すサンプルグループ記述項目を書き込むための手段であって、前記第1のサブピクチャトラックが前記それぞれのサブピクチャ位置用の
サブピクチャシーケンスを含み、サブピクチャトラックの前記グループの中の任意のトラックが前記それぞれのサブピクチャ位置用の有効なサブピクチャシーケンスを含む、手段と、
前記コンテナファイル内で、前記サンプルグループ記述項目が前記ビデオビットストリームを復元するために使用される対象となる前記ベーストラックのサンプルを指示するための手段と
を備える、装置。
【請求項4】
前記コンテナファイル内で、前記ベーストラックから各々がサブピクチャトラックまたはサブピクチャトラックのトラックグループを識別する項目のリストへのトラック参照を書き込むための手段であって、前記サンプルグループ記述項目が、サブピクチャの前記レイアウト内のサブピクチャ位置ごとに、サブピクチャ位置ごとの項目の前記リストのインデックスを含み、前記インデックスが前記第1のサブピクチャトラックまたはサブピクチャトラックの前記グループを示す、手段
をさらに備える、請求項3に記載の装置。
【請求項5】
前記サンプルグループ記述項目が、サブピクチャ識別情報が前記ベーストラックに含まれるパラメータセットまたはピクチャヘッダ内で搬送されるかどうかの指示を含む、請求項3または4に記載の装置。
【請求項6】
前記サンプルグループ記述項目が、
サブピクチャ識別子シンタックス要素の長さ、
第1のサブピクチャ識別子シンタックス要素のビット位置、
開始コードエミュレーション防止バイトが前記サブピクチャ識別子シンタックス要素の前または中に存在するかどうかのフラグ指示
のうちの1つまたは複数を含む、請求項5に記載の装置。
【請求項7】
サブピクチャトラックのサンプル項目が、
サブピクチャ識別子、
サブピクチャ位置識別子
のうちの1つまたは複数を含む、請求項3~6のいずれか1項に記載の装置。
【請求項8】
前記コンテナファイル内で、ピクチャヘッダNALユニット用のサンプルグループを書き込むための手段をさらに備える、請求項3~7のいずれか1項に記載の装置。
【請求項9】
コンテナファイルのベーストラックから、サブピクチャのレイアウトを構文解析するための手段と、
前記コンテナファイルから、サブピクチャの前記レイアウト内のサブピクチャ位置ごとに第1のサブピクチャトラックまたはサブピクチャトラックのグループを示すサンプルグループ記述項目を構文解析するための手段であって、前記第1のサブピクチャトラックが前記それぞれのサブピクチャ位置用の
サブピクチャシーケンスを含み、サブピクチャトラックの前記グループの中の任意のトラックが前記それぞれのサブピクチャ位置用の有効なサブピクチャシーケンスを含む、手段と、
前記サンプルグループ記述項目がサブピクチャトラックのグループを示すときに、サブピクチャトラックの前記グループから第2のサブピクチャトラックを選択するための手段と、
前記コンテナファイルから、前記ベーストラックのどのセットのサンプルが、前記サンプルグループ記述項目が
ビデオビットストリームを復元するために使用される対象となるかを構文解析するための手段と、
前記コンテナファイル
の前記ベーストラックの前記サンプルから、サブピクチャの前記レイアウト内のサブピクチャ位置ごとに前記第1のサブピクチャトラックまたは前記第2のサブピクチャトラックの時間整列サンプルを含めることにより、サンプルの前記セットに対応する
前記ビデオビットストリームのコード化ピクチャを復元するための手段と
を備える、装置。
【請求項10】
前記コンテナファイルから、前記ベーストラックから各々がサブピクチャトラックまたはサブピクチャトラックのトラックグループを識別する項目のリストへのトラック参照を読み取るための手段
をさらに備え、
前記サンプルグループ記述項目が、サブピクチャの前記レイアウト内のサブピクチャ位置ごとに、サブピクチャ位置ごとの項目の前記リストのインデックスを含み、前記インデックスが前記第1のサブピクチャトラックまたはサブピクチャトラックの前記グループを示す、
請求項9に記載の装置。
【請求項11】
前記サンプルグループ記述項目が、サブピクチャ識別情報が前記ベーストラックに含まれるパラメータセットまたはピクチャヘッダ内で搬送されるかどうかの指示を含む、請求項9または10に記載の装置。
【請求項12】
前記サンプルグループ記述項目が、
サブピクチャ識別子シンタックス要素の長さ、
第1のサブピクチャ識別子シンタックス要素のビット位置、
開始コードエミュレーション防止バイトが前記サブピクチャ識別子シンタックス要素の前または中に存在するかどうかのフラグ指示
のうちの1つまたは複数を含む、請求項11に記載の装置。
【請求項13】
サブピクチャトラックのサンプル項目が、
サブピクチャ識別子、
サブピクチャ位置識別子
のうちの1つまたは複数を含み、
前記装置は、
前記コンテナファイルから、ピクチャヘッダNALユニット用のサンプルグループを読み取るための手段、及び
サブピクチャの前記レイアウトへのサブピクチャ識別子のマッピングを指示するための手段、をさらに備える、請求項
12に記載の装置。
【請求項14】
指示するための前記手段が、
a)サブピクチャ識別子がパラメータセットおよび/またはピクチャヘッダ内で搬送されるかどうかを判断すること、
b)2つ以上のパラメータセットまたはピクチャヘッダがサブピクチャ識別子を含む場合、パラメータセットとピクチャヘッダとの間の優先順位を判断し、最も高い優先順位を有する前記パラメータセットまたは前記ピクチャヘッダを選択すること、
c)上書き用にピクチャヘッダが選択された場合、サンプル内に存在する前記ピクチャヘッダまたは前記ベーストラック内のサンプルにマッピングされたサンプルグループ化のピクチャヘッダになるように上書きするための前記ピクチャヘッダを選択すること、
d)選択されたサブピクチャトラックの前記サブピクチャ識別子を含むように前記選択されたパラメータセットまたはピクチャヘッダを修正すること
のオプションのうちの1つまたは複数を使用することにより、パラメータセットまたはピクチャヘッダ内の前記サブピクチャ識別子を上書きするように構成される、請求項13に記載の装置。
【請求項15】
オプションd)のために、前記装置が、
前記第1のサブピクチャ識別子
シンタックス要素の前記ビット位置から開始し、前記サンプルグループ記述項目内で指定された順序で各々の選択されたサブピクチャトラックからのサブピクチャ識別子で各サブピクチャ識別子要素の値を上書きする
ように、前記修正を実行するための手段を備える、請求項14に記載の装置。
【発明の詳細な説明】
【技術分野】
【0001】
本解決策は、一般に、ビデオ符号化およびビデオ復号に関する。
【背景技術】
【0002】
このセクションは、特許請求の範囲に記載の本発明に対する背景または状況を提供することを目的とする。本明細書の説明は、追求される可能性があるが、必ずしも以前に着想され追求されたものとは限らない概念を含んでもよい。したがって、本明細書に別段の指示がない限り、このセクションに記載されるものは本出願の明細書および特許請求の範囲に対する従来技術ではなく、このセクションに含めることによって従来技術であると認められない。
【0003】
ビデオコーディングシステムは、入力ビデオを格納/送信に適した圧縮表現に変換するエンコーダと、圧縮されたビデオ表現を圧縮解除して可視形式にも戻すことができるデコーダとを備えることができる。エンコーダは、ビデオをよりコンパクトな形式で表現するために元のビデオシーケンス内の一部の情報を廃棄して、たとえば、そうでない場合必要とされる恐れがあるよりも低いビットレートでのビデオ情報の格納/送信を可能にすることができる。
【発明の概要】
【0004】
本発明の様々な実施形態向けに求められる保護範囲は、独立請求項によって提示される。独立請求項の範囲の分類に入らない本明細書に記載される実施形態および特徴は、もしあれば、本発明の様々な実施形態を理解するのに役立つ例として解釈されるべきである。
【0005】
今や、改善された方法および方法を実施するための技術的機器が発明されている。様々な態様は、方法、装置、およびその中に記憶されたコンピュータプログラムを備えるコンピュータ可読媒体を含み、それらは独立請求項に記述されたものによって特徴付けられる。様々な実施形態は、従属請求項において開示される。
【0006】
第1の態様によれば、コンテナファイル内で、2つ以上のサブピクチャトラックを書き込むことと、コンテナファイル内で、ビデオビットストリームに転換される対象となるベーストラックを書き込むことと、ベーストラック内で、サブピクチャのレイアウトを指示することと、コンテナファイル内で、サブピクチャのレイアウト内のサブピクチャ位置ごとに第1のサブピクチャトラックまたはサブピクチャトラックのグループを示すサンプルグループ記述項目を書き込むことであって、第1のサブピクチャトラックがそれぞれのサブピクチャ位置用のサブピクチャシーケンスを含み、サブピクチャトラックのグループの中の任意のトラックがそれぞれのサブピクチャ位置用の有効なサブピクチャシーケンスを含む、書き込むことと、コンテナファイル内で、サンプルグループ記述項目がビデオビットストリームを復元するために使用される対象となるベーストラックのサンプルを指示することとを含む、方法が提供される。
【0007】
第2の態様によれば、コンテナファイルのベーストラックから、サブピクチャのレイアウトを構文解析することと、コンテナファイルから、サブピクチャのレイアウト内のサブピクチャ位置ごとに第1のサブピクチャトラックまたはサブピクチャトラックのグループを示すサンプルグループ記述項目を構文解析することであって、第1のサブピクチャトラックがそれぞれのサブピクチャ位置用のサブピクチャシーケンスを含み、サブピクチャトラックのグループの中の任意のトラックがそれぞれのサブピクチャ位置用の有効なサブピクチャシーケンスを含む、構文解析することと、サンプルグループ記述項目がサブピクチャトラックのグループを示すときに、サブピクチャトラックのグループから第2のサブピクチャトラックを選択することと、コンテナファイルから、ベーストラックのどのセットのサンプルが、サンプルグループ記述項目がビデオビットストリームを復元するために使用される対象となるかを構文解析することと、コンテナファイルから、サブピクチャのレイアウトのサブピクチャ位置ごとに第1のサブピクチャトラックまたは第2のサブピクチャトラックの時間整列サンプルを含めることにより、サンプルのセットに対応するビデオビットストリームのコード化ピクチャを復元することとを含む、方法が提供される。
【0008】
第3の態様によれば、コンテナファイル内で、2つ以上のサブピクチャトラックを書き込むための手段と、コンテナファイル内で、ビデオビットストリームに転換される対象となるベーストラックを書き込むための手段と、ベーストラック内で、サブピクチャのレイアウトを指示するための手段と、コンテナファイル内で、サブピクチャのレイアウト内のサブピクチャ位置ごとに第1のサブピクチャトラックまたはサブピクチャトラックのグループを示すサンプルグループ記述項目を書き込むための手段であって、第1のサブピクチャトラックがそれぞれのサブピクチャ位置用のサブピクチャシーケンスを含み、サブピクチャトラックのグループの中の任意のトラックがそれぞれのサブピクチャ位置用の有効なサブピクチャシーケンスを含む、手段と、コンテナファイル内で、サンプルグループ記述項目がビデオビットストリームを復元するために使用される対象となるベーストラックのサンプルを指示するための手段とを備える、装置が提供される。
【0009】
一実施形態によれば、装置は、コンテナファイル内で、ベーストラックから各々がサブピクチャトラックまたはサブピクチャトラックのトラックグループを識別する項目のリストへのトラック参照を書き込むための手段をさらに備え、サンプルグループ記述項目は、サブピクチャのレイアウト内のサブピクチャ位置ごとに、サブピクチャ位置ごとの項目のリストのインデックスを含み、インデックスは第1のサブピクチャトラックまたはサブピクチャトラックのグループを示す。
【0010】
一実施形態によれば、サンプルグループ記述項目は、サブピクチャ識別情報がベーストラックに含まれるパラメータセットまたはピクチャヘッダ内で搬送されるかどうかの指示を含む。
【0011】
一実施形態によれば、サンプルグループ記述項目は、
- ピクチャ識別子シンタックス要素の長さ、
- 第1のサブピクチャ識別子シンタックス要素のビット位置、
- 開始コードエミュレーション防止バイトがサブピクチャ識別子シンタックス要素の前または中に存在するかどうかのフラグ指示
のうちの1つまたは複数を含む。
【0012】
一実施形態によれば、サブピクチャトラックのサンプル項目は、
- サブピクチャ識別子、
- サブピクチャ位置識別子
のうちの1つまたは複数を含む。
【0013】
一実施形態によれば、装置は、コンテナファイル内で、ピクチャヘッダNALユニット用のサンプルグループを書き込むための手段をさらに備える。
【0014】
第4の態様によれば、コンテナファイルのベーストラックから、サブピクチャのレイアウトを構文解析するための手段と、コンテナファイルから、サブピクチャのレイアウト内のサブピクチャ位置ごとに第1のサブピクチャトラックまたはサブピクチャトラックのグループを示すサンプルグループ記述項目を構文解析するための手段であって、第1のサブピクチャトラックがそれぞれのサブピクチャ位置用のサブピクチャシーケンスを含み、サブピクチャトラックのグループの中の任意のトラックがそれぞれのサブピクチャ位置用の有効なサブピクチャシーケンスを含む、手段と、サンプルグループ記述項目がサブピクチャトラックのグループを示すときに、サブピクチャトラックのグループから第2のサブピクチャトラックを選択するための手段と、コンテナファイルから、ベーストラックのどのセットのサンプルが、サンプルグループ記述項目がビデオビットストリームを復元するために使用される対象となるかを構文解析するための手段と、コンテナファイルから、サブピクチャのレイアウトのサブピクチャ位置ごとに第1のサブピクチャトラックまたは第2のサブピクチャトラックの時間整列サンプルを含めることにより、サンプルのセットに対応するビデオビットストリームのコード化ピクチャを復元するための手段とを備える、装置が提供される。
【0015】
一実施形態によれば、装置は、コンテナファイルから、ベーストラックから各々がサブピクチャトラックまたはサブピクチャトラックのトラックグループを識別する項目のリストへのトラック参照を読み取るための手段をさらに備え、サンプルグループ記述項目は、サブピクチャのレイアウト内のサブピクチャ位置ごとに、サブピクチャ位置ごとの項目のリストのインデックスを含み、インデックスは第1のサブピクチャトラックまたはサブピクチャトラックのグループを示す。
【0016】
一実施形態によれば、サンプルグループ記述項目は、サブピクチャ識別情報がベーストラックに含まれるパラメータセットまたはピクチャヘッダ内で搬送されるかどうかの指示を含む。
【0017】
一実施形態によれば、サンプルグループ記述項目は、
- ピクチャ識別子シンタックス要素の長さ、
- 第1のサブピクチャ識別子シンタックス要素のビット位置、
- 開始コードエミュレーション防止バイトがサブピクチャ識別子シンタックス要素の前または中に存在するかどうかのフラグ指示
のうちの1つまたは複数を含む。
【0018】
一実施形態によれば、サブピクチャトラックのサンプル項目は、
- サブピクチャ識別子、
- サブピクチャ位置識別子
のうちの1つまたは複数を含む。
【0019】
一実施形態によれば、装置は、コンテナファイルから、ピクチャヘッダNALユニット用のサンプルグループを読み取るための手段をさらに備える。
【0020】
一実施形態によれば、装置は、サブピクチャのレイアウトへのサブピクチャ識別子のマッピングを指示するための手段をさらに備える。
【0021】
一実施形態によれば、指示するための手段は、
a)サブピクチャ識別子がパラメータセットおよび/またはピクチャヘッダ内で搬送されるかどうかを判断すること、
b)2つ以上のパラメータセットまたはピクチャヘッダがサブピクチャ識別子を含む場合、パラメータセットとピクチャヘッダとの間の優先順位を判断し、最も高い優先順位を有するパラメータセットまたはピクチャヘッダを選択すること、
c)上書き用にピクチャヘッダが選択された場合、サンプル内に存在するピクチャヘッダまたはベーストラック内のサンプルにマッピングされたサンプルグループ化のピクチャヘッダになるように上書きするためのピクチャヘッダを選択すること、
d)選択されたサブピクチャトラックのサブピクチャ識別子を含むように選択されたパラメータセットまたはピクチャヘッダを修正すること
のうちの1つまたは複数を使用することにより、パラメータセットまたはピクチャヘッダ内のサブピクチャ識別子を上書きするように構成される。
【0022】
一実施形態によれば、オプションd)のために、装置は、第1のサブピクチャ識別子要素のビット位置から開始し、サンプルグループ記述項目内で指定された順序で各々の選択されたサブピクチャトラックからのサブピクチャ識別子で各サブピクチャ識別子要素の値を上書きするように、修正を実行するための手段を備える。
【0023】
一実施形態によれば、装置は、少なくとも1つのプロセッサと、コンピュータプログラムコードを含むメモリとをさらに備える。
【0024】
第4の態様によれば、少なくとも1つのプロセッサ上で実行されると、実施形態のいずれかによる方法を装置またはシステムに実施させるように構成されたコンピュータプログラムコードを含むコンピュータプログラム製品が提供される。
【0025】
一実施形態によれば、一実施形態によるコンピュータプログラム製品は、非一時的コンピュータ可読媒体上に具現化される。
【0026】
以下では、添付図面を参照して様々な実施形態がより詳細に記載される。
【図面の簡単な説明】
【0027】
【
図1】VVCサブピクチャトラックを使用する第1の例を示す図である。
【
図2】VVCサブピクチャトラックを使用する第2の例を示す図である。
【
図3】一実施形態による方法を示すフローチャートである。
【
図4】別の実施形態による方法を示すフローチャートである。
【
図6】一実施形態による符号化プロセスを示す図である。
【
図7】一実施形態による復号プロセスを示す図である。
【発明を実施するための形態】
【0028】
以下では、1つのビデオコーディング構成との関連でいくつかの実施形態が記載される。しかしながら、本実施形態は、必ずしもこの特定の構成に限定されないことが留意されるべきである。
【0029】
(AVCまたはH.264/AVCと略される場合がある)高度ビデオコーディング規格は、国際電気通信連合の電気通信標準化部門(ITU-T)のビデオコーディングエキスパートグループ(VCEG)および国際標準化機構(ISO)/国際電気標準会議(IEC)の動画エキスパートグループ(MPEG)の合同ビデオチーム(JVT)によって開発された。H.264/AVC規格は、両方の母体標準化組織によって発行され、それは、MPEG-4パート10高度ビデオコーディング(AVC)としても知られているITU-T勧告H.264およびISO/IEC国際規格14496-10と呼ばれる。各々が仕様に新しい拡張または特徴を統合する、H.264/AVC規格の複数のバージョンが存在する。これらの拡張には、スケーラブルビデオコーディング(SVC)およびマルチビュービデオコーディング(MVC)が含まれる。
【0030】
(HEVCまたはH.265/HEVCと略される場合がある)高効率ビデオコーディング規格は、VCEGおよびMPEGの共同作業チーム-ビデオコーディング(JCT-VC)によって開発された。規格は、両方の母体標準化組織によって発行され、それは、MPEG-Hパート2高効率ビデオコーディング(HEVC)としても知られているITU-T勧告H.265およびISO/IEC国際規格23008-2と呼ばれる。H.265/HEVCに対する拡張は、スケーラブル、マルチビュー、3次元、および忠実度範囲の拡張を含み、それらは、それぞれ、SHVC、MV-HEVC、3D-HEVC、およびREXTと呼ばれる場合がある。これらの標準仕様の定義、構造、または概念を理解する目的で行われている、H.265/HEVC、SHVC、MV-HEVC、3D-HEVC、およびREXTに対するこの説明における参照は、別段の指示がない限り、本出願の期日の前に利用可能であったこれらの規格の最新バージョンに対する参照であると理解されるべきである。
【0031】
多用途ビデオコーディング規格(VVC、H.266、またはH.266/VVC)は、ISO/IEC MPEGとITU-T VCEGとの間の共同研究である合同ビデオエキスパートチーム(JVET)によって現在開発中である。
【0032】
H.264/AVCおよびHEVCならびにそれらの拡張の一部のいくつかの主要な定義、ビットストリームおよびコーディング構造、ならびに概念は、ビデオエンコーダ、デコーダ、符号化方法、復号方法、およびビットストリーム構造の一例としてこのセクションに記載され、実施形態が実装される場合がある。H.264/AVCの主要な定義、ビットストリームおよびコーディング構造、ならびに概念のいくつかは、HEVC規格と同じであり、したがって、それらは以下で一緒に記載される。様々な実施形態の態様は、H.264/AVCもしくはHEVCまたはそれらの拡張に限定されず、むしろ、説明は、その上で本実施形態が部分的または完全に実現され得る1つの可能な基礎のために与えられる。
【0033】
ビデオコーデックは、入力ビデオを格納/送信に適した圧縮表現に変換するエンコーダと、圧縮されたビデオ表現を圧縮解除して可視形式にも戻すことができるデコーダとを備えてもよい。圧縮表現は、ビットストリームまたはビデオビットストリームと呼ばれる場合がある。ビデオエンコーダおよび/またはビデオデコーダは、互いに別々であってもよく、すなわち、コーデックを形成する必要がない。エンコーダは、ビデオをよりコンパクトな形式に(すなわち、低いビットレートで)表現するために元のビデオシーケンス内の一部の情報を廃棄する場合がある。
【0034】
ハイブリッドビデオコーデック、たとえばITU-T H.264は、2つのフェーズでビデオ情報を符号化することができる。最初に、ある特定のピクチャエリア(または「ブロック」)が、たとえば、(コード化されているブロックに近接して対応する以前にコード化されたビデオフレームのうちの1つの中のエリアを見つけて示す)動き補償手段、または(指定された方式でコード化されるべきブロックのまわりのピクセル値を使用する)空間手段によって予測される。次いで、予測誤差、すなわち、ピクセルの予測ブロックとピクセルの元のブロックとの間の差がコード化される。これは、指定された変換(たとえば、離散コサイン変換(DCT)またはその変形形態)を使用してピクセル値の差を変換し、係数を量子化し、量子化された係数をエントロピーコーディングすることによって行われてもよい。量子化プロセスの忠実度を変更することにより、エンコーダは、ピクセル表現の精度(ピクチャ品質)と得られたコード化ビデオ表現のサイズ(ファイルサイズまたは送信ビットレート)との間のバランスを制御することができる。
【0035】
時間予測において、予測のソースは以前に復号されたピクチャ(別名、参照ピクチャ)である。イントラブロックコピー(IBC、別名、イントラブロックコピー予測または現在ピクチャ参照)では、予測は時間予測と同様に適用されるが、参照ピクチャは現在ピクチャであり、予測プロセスでは以前に復号されたサンプルのみを参照することができる。インターレイヤ予測またはインタービュー予測は、時間予測と同様に適用されてもよいが、参照ピクチャは、それぞれ、別のスケーラブルレイヤまたは別のビューからの復号ピクチャである。場合によっては、インター予測は時間予測のみを指す場合があるが、他の場合には、インター予測は、時間予測、ならびにイントラブロックコピー、インターレイヤ予測、およびインタービュー予測のいずれかを、それらが時間予測以外の同じかまたは同様のプロセスで実行されるという条件で、一括して指す場合がある。インター予測または時間予測は、時々、動き補償または動き補償予測と呼ばれる場合がある。
【0036】
イントラ予測は、同じピクチャ内の隣接ピクセルが相互に関連付けられる可能性が高いという事実を利用する。イントラ予測は、空間領域または変換領域内で実行することができる、すなわち、サンプル値または変換係数のいずれかを予測することができる。イントラ予測は、インター予測が適用されないイントラコーディングにおいて活用されてもよい。
【0037】
コーディング手順の1つの結果は、動きベクトルおよび量子化変換係数などの一組のコーディングパラメータである。多くのパラメータは、それらが空間的または時間的に隣接するパラメータから最初に予測される場合、より効率的にエントロピーコーディングすることができる。たとえば、動きベクトルは、空間的に隣接する動きベクトルから予測されてもよく、動きベクトル予測子に対する差のみがコーディングされてもよい。コーディングパラメータの予測およびイントラ予測は、一括してインピクチャ予測と呼ばれる場合がある。
【0038】
エントロピーコーディング/復号は、多くの方法で実行されてもよい。たとえば、コンテキストベースコーディング/復号が適用されてもよく、エンコーダとデコーダの両方は、以前にコード化/復号されたコーディングパラメータに基づいてコーディングパラメータのコンテキスト状態を修正する。コンテキストベースコーディングは、たとえば、コンテキスト適応バイナリ算術コーディング(CABAC)またはコンテキストベース可変長コーディング(CAVLC)または任意の同様のエントロピーコーディングであってもよい。エントロピーコーディング/復号は、代替または追加として、ハフマンコーディング/復号または指数ゴロムコーディング/復号などの可変長コーディング方式を使用して実行されてもよい。エントロピーコード化ビットストリームまたはコードワードからのコーディングパラメータの復号は、構文解析と呼ばれる場合がある。
【0039】
ビデオコーディング規格は、ビットストリームのシンタックスおよびセマンティクスならびにエラーフリービットストリーム用の復号プロセスを指定することができ、一方、符号化プロセスは指定されないかもしれないが、エンコーダは適合ビットストリームを生成するためにちょうど必要とされてもよい。ビットストリームとデコーダの適合性は、仮想参照デコーダ(HRD)によって検証することができる。規格は、送信の誤差および損失に対処する際に役立つコーディングツールを含む場合があるが、符号化におけるツールの使用はオプションであり得、誤りビットストリームに対する復号プロセスは指定されていないかもしれない。
【0040】
シンタックス要素は、ビットストリーム内で表されるデータの要素として定義されてもよい。シンタックス構造は、指定された順序でビットストリーム内で一緒に存在するゼロ以上のシンタックス要素として定義されてもよい。
【0041】
それぞれ、エンコーダへの入力およびデコーダの出力のための基本ユニットは、ほとんどの場合ピクチャである。エンコーダへの入力として与えられたピクチャは、ソースピクチャと呼ばれる場合もあり、デコーダによって復号されたピクチャは、復号ピクチャまたは復元ピクチャと呼ばれる場合がある。
【0042】
ソースピクチャおよび復号ピクチャは、各々、サンプルアレイの以下のセット
- ルーマ(Y)のみ(単色)
- ルーマおよび2つのクロマ(YCbCrまたはYCgCo)
- 緑、青、および赤(RGBとしても知られているGBR)
- 他の未指定の単色または三刺激色サンプリング(たとえば、XYZとしても知られているYZX)を表すアレイ
のうちの1つなどの、1つまたは複数のサンプルアレイから構成される。
【0043】
以下では、使用中の実際の色表現方法にかかわらず、これらのアレイは、ルーマ(またはLまたはY)およびクロマと呼ばれる場合があり、2つのクロマアレイは、CbおよびCrと呼ばれる場合がある。使用中の実際の色表現方法は、たとえば、コード化ビットストリーム内で、たとえば、HEVCのビデオユーザビリティ情報(VUI)シンタックスまたは同様を使用して、指示することができる。成分は、3つのサンプルアレイ(ルーマおよび2つのクロマ)のうちの1つからアレイもしくは単一サンプルとして、または単色フォーマットでピクチャを構成するアレイもしくはアレイの単一サンプルとして定義されてもよい。
【0044】
ピクチャは、フレームまたはフィールドのいずれかであるように定義されてもよい。フレームは、ルーマサンプルおよび場合によっては対応するクロマサンプルの行列を含む。フィールドは、フレームの代替サンプル行のセットであり、ソース信号がインターレースされたときにエンコーダ入力として使用されてもよい。クロマサンプルアレイは、存在しない場合がある(したがって、単色サンプリングが使用中であり得る)か、またはクロマサンプルアレイは、ルーマサンプルアレイと比較するとサブサンプリングされる場合がある。
【0045】
いくつかのクロマフォーマットは、以下のように要約されてもよい。
- 単色サンプリングでは、名目上、ルーマアレイと見なされ得るただ1つのサンプルアレイが存在する。
- 4:2:0サンプリングでは、2つのクロマアレイの各々は、ルーマアレイの半分の高さおよび半分の幅を有する。
- 4:2:2サンプリングでは、2つのクロマアレイの各々は、ルーマアレイの同じ高さおよび半分の幅を有する。
- 別々の色平面が使用中でないときの4:4:4サンプリングでは、2つのクロマアレイの各々は、ルーマアレイと同じ高さおよび幅を有する。
【0046】
コーディングのフォーマットおよび規格は、ビットストリームへの別々の色平面としてサンプルアレイをコード化し、ビットストリームから別々にコード化された色平面をそれぞれ復号することを可能にすることができる。別々の色平面が使用中であるとき、それらの各々は、単色サンプリングを有するピクチャとして(エンコーダおよび/またはデコーダによって)別々に処理される。
【0047】
クロマサンプリング(たとえば、4:2:0または4:2:2のクロマサンプリング)が使用中であるとき、ルーマサンプルに対するクロマサンプルの位置は、(たとえば、前処理ステップとして、または符号化の一部として)エンコーダ側で決定されてもよい。ルーマサンプル位置に対するクロマサンプルの位置は、たとえば、H.264/AVCもしくはHEVCなどのコーディング規格において事前定義されてもよく、または、たとえば、H.264/AVCもしくはHEVCのVUIの一部としてビットストリーム内で指示されてもよい。
【0048】
一般に、符号化のための入力として提供されるソースビデオシーケンスは、インターレースされたソースコンテンツまたは進行形のソースコンテンツのいずれかであってもよい。インターレースされたソースコンテンツに対して異なる時間に反対パリティのフィールドが取り込まれる。進行形のソースコンテンツは、取り込まれたフレームを含む。エンコーダは、インターレースされたソースコンテンツのフィールドを2つの方法で符号化することできる:一対のインターレースされたフィールドがコード化フレームにコード化されてもよく、1つのフィールドがコード化フィールドとしてコード化されてもよい。同様に、エンコーダは、進行形のソースコンテンツのフィールドを2つの方法で符号化することできる:進行形のソースコンテンツのフレームがコード化フレームまたは一対のコード化フィールドにコード化されてもよい。フィールドペアまたは相補的なフィールドペアは、反対パリティを有する(すなわち、一方が上位フィールドであり、他方が下位フィールドである)、どちらもいかなる他の相補的なフィールドペアに属さない、復号順序および/または出力順序で互いに近接する2つのフィールドとして定義されてもよい。いくつかのビデオコーディングの規格または方式は、同じコード化ビデオシーケンス内のコード化フレームおよびコード化フィールドの混合を可能にする。その上、コード化フレーム内のフィールドからコード化フィールドを予測すること、および/または(フィールドとしてコード化された)相補的なフィールドペア用のコード化フレームを予測することは、符号化および/または復号において可能とされてもよい。
【0049】
区分化は、セットの各要素がサブセットのうちのちょうど1つの中にあるようなセットのサブセットへの分割として定義されてもよい。
【0050】
H.266/VVCのドラフトバージョンでは、以下の区分化が適用される。本明細書に記載されたことは、規格が最終決定されるまで、H.266/VVCの後のドラフトバージョンにおいてまだ発展するかもしれないことに留意されたい。ピクチャは、128×128の最大サイズを有するコーディングツリーユニット(CTU)に区分化されるが、エンコーダは、64×64などのより小さいサイズを使用するように選択することができる。コーディングツリーユニット(CTU)は、最初に、四分木(別名、四分木)構造によって区分化される。次いで、四分木リーフノードは、マルチタイプツリー構造によってさらに区分化することができる。マルチタイプツリー構造には4つの分割タイプである、垂直バイナリ分割、水平バイナリ分割、垂直三値分割、および水平三値分割が存在する。マルチタイプツリーリーフノードは、コーディングユニット(CU)と呼ばれる。CU、PU、およびTUは、CUが最大変換長に対して大き過ぎない限り、同じブロックサイズを有する。CTU用のセグメント化構造は、バイナリ分割および三値分割を使用してマルチタイプツリーがネストされた四分木である、すなわち、最大変換長に対して大き過ぎるサイズを有するCUのために必要とされるときを除き、別個のCU、PU、およびTUの概念を使用しない。CUは、正方形または長方形のいずれかの形状を有することができる。
【0051】
デコーダは、エンコーダと同様の予測手段を適用して、(エンコーダによって作成され、圧縮表現に格納された動き情報または空間情報を使用して)ピクセルブロックの予測表現を形成すること、および予測誤差復号(空間ピクセル領域内の量子化予測誤差信号を回復する予測誤差コーディングの逆演算)によって出力ビデオを復元する。予測手段および予測誤差復号手段を適用した後、デコーダは、予測信号および予測誤差信号(ピクセル値)をまとめて、出力ビデオフレームを形成する。デコーダ(およびエンコーダ)はまた、表示用に出力ビデオを渡し、かつ/またはビデオシーケンス内の次のフレームのための予測参照として出力ビデオを格納する前に、さらなるフィルタリング手段を適用して出力ビデオの品質を向上させることができる。
【0052】
フィルタリングは、たとえば、デブロッキング、サンプル適応オフセット(SAO)、および/または適応ループフィルタリング(ALF)のうちの1つを含んでもよい。
【0053】
デブロッキングループフィルタは、複数のフィルタリングモードまたはフィルタリング長を含んでもよく、それらは、ビットストリーム内でエンコーダによって含められた量子化パラメータ値および/またはシグナリングなどの、境界に隣接するブロックの特徴に基づいて適応的に選択されてもよい。たとえば、デブロッキングループフィルタは、通常フィルタイングモードおよび格納フィルタリングモードを含んでもよく、それらは、フィルタタップの数(すなわち、境界の両側でフィルタリングされるサンプルの数)および/またはフィルタタップ値に関して異なってもよい。たとえば、境界の両側に沿った2つのサンプルのフィルタリングは、クリッピング演算の潜在的な影響を省略すると、(3 7 9 -3)/16のインパルス応答を有するフィルタを用いて実行されてもよい。
【0054】
動き情報は、ビデオコーデック内で各々の動き補償画像ブロックに関連付けられた動きベクトルで示されてもよい。これらの動きベクトルの各々は、(エンコーダ側で)コード化されるかまたは(デコーダ側で)復号されるピクチャ内の画像ブロックと、以前にコード化または復号されたピクチャのうちの1つの中の予測ソースブロックの変位を表す。効率的に動きベクトルを表すために、それらは、ブロック固有の予測動きベクトルに対して異なるようにコード化されてもよい。予測動きベクトルは、たとえば、隣接ブロックの符号化または復号された動きベクトルの中央値を計算する事前定義された方法で作成されてもよい。動きベクトル予測を作成する別の方法は、時間参照ピクチャ内の隣接ブロックおよび/または同じ場所に配置されたブロックから候補予測のリストを生成し、選択された候補を動きベクトル予測子としてシグナリングすることである。動きベクトル値を予測することに加えて、以前にコード化/復号されたピクチャの参照インデックスを予測することができる。参照インデックスは、時間参照ピクチャ内の隣接ブロックおよび/または同じ場所に配置されたブロックから予測されてもよい。その上、高効率ビデオコーデックは、しばしばマージング/マージモードと呼ばれる追加の動き情報コーディング/復号メカニズムを採用することができ、そこでは、動きベクトルおよび利用可能な参照ピクチャリストごとの対応する参照ピクチャインデックスを含むすべての動きフィールド情報は、いかなる修正/補正なしに予測され使用される。同様に、動きフィールド情報を予測することは、時間参照ピクチャ内の隣接ブロックおよび/または同じ場所に配置されたブロックの動きフィールド情報を使用して遂行され、使用された動きフィールド情報は、利用可能な隣接ブロック/同じ場所に配置されたブロックの動きフィールド情報で満たされた動きフィールド情報のリストの中でシグナリングされる。
【0055】
ビデオコーデックは、1つのソース画像(単予測)および2つのソース(双予測)からの動き補償予測をサポートすることができる。単予測の場合、単一の動きベクトルが適用されるが、双予測の場合、2つの動きベクトルがシグナリングされ、最終サンプル予測を作成するために、2つのソースからの動き補償予測が平均される。重み付け予測の場合、2つの予測の相対的な重みを調整することができるか、またはシグナリングされたオフセットを予測信号に加えることができる。
【0056】
インターピクチャ予測に動き補償を適用することに加えて、イントラピクチャ予測に同様の手法を適用することができる。この場合、変位ベクトルは、コード化または復号されるべきブロックの予測を形成するために、同じピクチャからどこにサンプルのブロックをコピーすることができるかを示す。この種類のイントラブロックコピー方法は、テキストまたは他のグラフィックなどのフレーム内の反復構造の存在下で大幅にコーディング効率を改善することができる。
【0057】
動き補償またはイントラ予測の後の予測残差は、最初に(DCTのような)変換カーネルで送信され、次いでコピーされてもよい。この理由は、しばしば、残差の間に何らかの相関関係がまだ存在し、変換が、多くの場合、この相関関係の低減に役立ち、より効率的なコーディングを提供するからである。
【0058】
ビデオエンコーダは、ラグランジュコスト関数を利用して、最適なコーディングモード、たとえば、所望のマクロブロックモードおよび関連付けられた動きベクトルを見つけることができる。この種類のコスト関数は、重み係数λを使用して、不可逆コーディング方法に起因する(正確なまたは推定された)画像歪み、および画像エリア内のピクセル値を表すために必要とされる(正確なまたは推定された)情報量を束ねる。
C=D+λR (式1)
ここで、Cは最小化されるべきラグランジュコストであり、Dは考慮されるモードおよび動きベクトルによる画像歪み(たとえば、平均平方誤差)であり、Rは(候補動きベクトルを表すデータ量を含む)デコーダ内で画像ブロックを復元するために必要なデータを表すために必要とされるビット数である。
【0059】
いくつかのコーデックは、ピクチャ順序カウント(POC)の概念を使用する。POCの値はピクチャごとに導出され、出力順序でピクチャ位置が増大しても減少しない。したがって、POCはピクチャの出力順序を示す。POCは、復号プロセスにおいて、たとえば、動きベクトルの暗黙のスケーリングのために、かつ参照ピクチャリストの初期化のために使用されてもよい。さらに、POCは、出力順序適合性の検証において使用されてもよい。
【0060】
ビデオコーディング規格では、適合ビットストリームは、エンコーダの出力に概念的に接続される場合があり、少なくともデコーダ前バッファ、デコーダ、および出力/表示ユニットから構成される仮想参照デコーダによって復号されることができなければならない。この仮想デコーダは、仮想参照デコーダ(HRD)またはビデオバッファリング検証器(VBV)として知られている場合がある。ストリームは、バッファオーバーフロー、または場合によってはアンダーフローなしにHRDによって復号され得る場合、適合する。バッファオーバーフローは、バッファが一杯のときにさらなるビットが収納されるべき場合に発生する。バッファアンダーフローは、復号/再生のためにバッファからいくつかのビットがフェッチされるべきときに前記ビットがバッファにない場合に発生する。HRDのための動機のうちの1つは、実際のデコーダ実装形態が処理することができない大量のリソースを消費する、いわゆる有害なビットストリームを回避することである。
【0061】
HRDモデルは即時復号を含んでもよいが、HRDのコード化ピクチャバッファ(CPB)への入力ビットレートは、コード化データの復号レートに関するエンコーダおよびビットストリームにとっての制約ならびに処理速度についてのデコーダに対する要件と見なされてもよい。エンコーダは、バッファリング制約が符号化において従われることを検証および制御するために、HRD内で指定されたCPBを含んでもよい。デコーダ実装形態はまた、HRD向けに指定されたCPBと同様に、または同じように動作することができるが、必ずしも動作しないCPBを有してもよい。
【0062】
復号ピクチャバッファ(DPB)は、エンコーダおよび/またはデコーダにおいて使用されてもよい。復号ピクチャをバッファリングするには2つの理由が存在し、インター予測における参照のため、および復号ピクチャを出力順序で並べ替えるためである。HEVCなどのいくつかのコーディングフォーマットは、参照ピクチャマーキングと出力並べ替えの両方のためのかなりの柔軟性を実現し、参照ピクチャバッファリングおよび出力ピクチャバッファリングのための別々のバッファは、メモリリソースを浪費する可能性がある。したがって、DPBは、参照ピクチャおよび出力並べ替えのための統合された復号ピクチャバッファリングプロセスを含んでもよい。復号ピクチャは、もはや参照として使用されず、出力用に必要とされないときにDPBから取り除かれてもよい。HRDもDPBを含んでもよい。HRDおよびデコーダ実装形態のDPBは、同じように動作する必要がない。
【0063】
出力順序は、(復号ピクチャバッファから出力されるべき復号ピクチャのための)復号ピクチャバッファから復号ピクチャが出力される順序として定義されてもよい。
【0064】
デコーダおよび/またはHRDは、ピクチャ出力プロセスを含んでもよい。出力プロセスは、デコーダが復号プロセスの出力として復号されトリミングされたピクチャを提供するプロセスであると見なされてもよい。出力プロセスは、たとえば、仮想参照デコーダ仕様の一部のように、ビデオコーディング規格の一部であってもよい。出力トリミングでは、サンプルの線および/または列は、出力ピクチャを形成するためにトリミング長方形に従って復号ピクチャから取り除かれてもよい。トリミングされた復号ピクチャは、たとえば、対応するコード化ピクチャによって参照されるシーケンスパラメータセット内で指定された適合トリミングウィンドウに基づいて、復号ピクチャをトリミングした結果として定義されてもよい。
【0065】
(復号)参照ピクチャマーキング用の1つまたは複数のシンタックス構造は、ビデオコーディングシステム内に存在することができる。エンコーダは、たとえば、各コード化ピクチャ内でシンタックス構造のインスタンスを生成し、デコーダは、たとえば、各コード化ピクチャからシンタックス構造のインスタンスを復号する。たとえば、シンタックス構造の復号は、ピクチャが「参照に使用」または「参照に不使用」として適応的にマークされるようにすることができる。
【0066】
HEVCの参照ピクチャセット(RPS)シンタックス構造は、参照ピクチャマーキング用のシンタックス構造の一例である。ピクチャ向けに有効またはアクティブな参照ピクチャセットは、ピクチャ用の参照として使用され得るすべての参照ピクチャ、および復号順序で任意の次のピクチャ用の「参照に使用」としてマークされて保持されるすべての参照ピクチャを含む。復号順序で任意の次のピクチャ用の「参照に使用」としてマークされて保持されるが、現在ピクチャまたは画像セグメント用の参照ピクチャとして使用されない参照ピクチャは、非アクティブであると見なされてもよい。たとえば、それらは、初期参照ピクチャリストには含まれないかもしれない。
【0067】
いくつかのコーディングフォーマットおよびコーデックでは、いわゆる短期参照ピクチャと長期参照ピクチャとの間で区別が行われる。この区別は、動きベクトルスケーリングなどのいくつかの復号プロセスに影響を及ぼす場合がある。参照ピクチャをマークするためのシンタックス構造は、「長期参照に使用」または「短期参照に使用」としてピクチャをマークすることを示すことができる。
【0068】
いくつかのコーディングフォーマットでは、インター予測用の参照ピクチャは、参照ピクチャリストへのインデックスで示される場合がある。いくつかのコーデックでは、双予測(B)スライスごとに2つの参照ピクチャリスト(参照ピクチャリスト0および参照ピクチャリスト1)が生成され、インターコード化(P)スライスごとに1つの参照ピクチャリスト(参照ピクチャリスト0)が形成される。
【0069】
VVCでは、参照ピクチャリストは、参照ピクチャリストシンタックス構造で直接示される。ピクチャが(任意の参照ピクチャリストのアクティブまたは非アクティブな項目内の)現在ピクチャの任意の参照ピクチャリスト内に存在するとき、それは「長期参照に使用」または「短期参照に使用」としてマークされる。ピクチャが現在ピクチャのどの参照ピクチャリスト内にも存在しないとき、それは「参照に不使用」としてマークされる。略語RPLは、参照ピクチャリストシンタックス構造および/または1つもしくは複数の参照ピクチャリストを指すために使用されてもよい。参照ピクチャリスト内のアクティブ項目の数は、エンコーダによって示され、かつ/またはデコーダによって復号される場合があり、現在ピクチャの予測のための参照として使用され得る最初のリスト項目から始まるピクチャの数を示すことができる。アクティブ項目の中にない参照ピクチャリスト内の項目は、非アクティブ項目であると定義される場合があり、現在ピクチャの予測のための参照として使用されず、復号順序で次のピクチャの予測のための参照として使用されてもよい。
【0070】
復号ピクチャバッファ(DPB)は、エンコーダおよび/またはデコーダにおいて使用されてもよい。復号ピクチャをバッファリングするには2つの理由が存在し、インター予測における参照のため、および復号ピクチャを出力順序で並べ替えるためである。VVCなどのいくつかのコーデックは、参照ピクチャマーキングと出力並べ替えの両方のための柔軟性を実現するので、参照ピクチャバッファリングおよび出力ピクチャバッファリングのための別々のバッファは、メモリリソースを浪費する可能性がある。したがって、DPBは、参照ピクチャおよび出力並べ替えのための統合された復号ピクチャバッファリングプロセスを含んでもよい。復号ピクチャは、もはや参照として使用されず、出力用に必要とされないときにDPBから取り除かれてもよい。
【0071】
スケーラブルビデオコーディングは、1つのビットストリームが異なるビットレート、解像度、またはフレームレートでコンテンツの複数の表現を含むことができるコーディング構造を指す。これらの場合、受信機は、その特性(たとえば、表示デバイスに最も良く一致する解像度)に応じて所望の表現を抽出することができる。あるいは、サーバまたはネットワーク要素は、たとえば、受信機のネットワーク特性または処理能力に応じて、受信機に送信されるべきビットストリームの部分を抽出することができる。スケーラブルビットストリームは、利用可能な最低品質のビデオを提供する「ベースレイヤ」と、下位レイヤと一緒に受信および復号されたときにビデオ品質を高める1つまたは複数のエンハンスメントレイヤとを含んでもよい。エンハンスメントレイヤのためのコーディング効率を改善するために、そのレイヤのコード化表現は下位レイヤに依存する場合がある。たとえば、エンハンスメントレイヤの動き情報およびモード情報は、下位レイヤから予測することができる。同様に、下位レイヤのピクセルデータは、エンハンスメントレイヤのための予測を作成するために使用することができる。
【0072】
(信号対ノイズ比またはSNRとしても知られている)品質スケーラビリティおよび/または空間スケーラビリティ向けのスケーラブルビデオコーデックは、以下のように実装されてもよい。ベースレイヤの場合、従来の非スケーラブルビデオのエンコーダおよびデコーダが使用される。ベースレイヤの復元/復号ピクチャは、エンハンスメントレイヤ用の参照ピクチャバッファに含まれる。H.264/AVC、HEVC、およびインター予測に参照ピクチャリストを使用する同様のコーデックでは、ベースレイヤの復号ピクチャは、エンハンスメントレイヤの復号参照ピクチャと同様に、エンハンスメントレイヤピクチャのコーディング/復号のために参照ピクチャリストに挿入されてもよい。その結果、エンコーダは、インター予測参照としてベースレイヤ参照ピクチャを選択し、たとえば、コード化ビットストリーム内の参照ピクチャインデックスでその使用を示すことができる。デコーダは、ビットストリームから、たとえば参照ピクチャインデックスから、ベースレイヤピクチャがエンハンスメントレイヤ用のインター予測参照として使用されることを復号する。復号されたベースレイヤピクチャがエンハンスメントレイヤ用の予測参照として使用されるとき、それはインターレイヤ参照ピクチャと呼ばれる。
【0073】
スケーラビリティモードまたはスケーラビリティ次元は、以下を含んでもよいが、それらに限定されない。
・品質スケーラビリティ:ベースレイヤピクチャはエンハンスメントレイヤピクチャよりも低い品質でコード化され、それは、たとえば、エンハンスメントレイヤ内よりも大きいベースレイヤ内の量子化パラメータ値(すなわち、変換係数量子化用よりも大きい量子化ステップサイズ)を使用して達成されてもよい。
・空間スケーラビリティ:ベースレイヤピクチャは、エンハンスメントレイヤピクチャよりも低い解像度でコード化される(すなわち、より少ないサンプルを有する)。空間スケーラビリティおよび品質スケーラビリティは、時々、同じタイプのスケーラビリティと見なされてもよい。
・ビット深度スケーラビリティ:ベースレイヤピクチャは、エンハンスメントレイヤピクチャ(たとえば、10ビットまたは12ビット)よりも低いビット深度(たとえば、8ビット)でコード化される。
・ダイナミックレンジスケーラビリティ:スケーラブルレイヤは、異なるトーンマッピング関数および/または異なる光学伝達関数を使用して取得された異なるダイナミックレンジおよび/または画像を表す。
・クロマフォーマットスケーラビリティ:ベースレイヤピクチャは、(たとえば、4:2:0クロマフォーマットでコード化された)クロマサンプルアレイ内で、エンハンスメントレイヤピクチャ(たとえば、4:4:4フォーマット)よりも低い空間解像度を提供する。
・色域スケーラビリティ:エンハンスメントレイヤピクチャは、ベースレイヤピクチャよりも豊富/広範な色表現範囲を有する-たとえば、エンハンスメントレイヤはUHDTV(ITU-R BT.2020)色域を有することができ、ベースレイヤはITU-R BT.709色域を有することができる。
・対象領域(ROI)スケーラビリティ:エンハンスメントレイヤは、ベースレイヤの空間サブセットを表す。ROIスケーラビリティは、エンハンスメントレイヤが空間サブセットのためのより高い主観的品質を提供するように、他のタイプのスケーラビリティ、たとえば、品質スケーラビリティまたは空間スケーラビリティと一緒に使用されてもよい。
・マルチビューコーディングと呼ばれる場合もある、ビュースケーラビリティ。ベースレイヤは第1のビューを表し、エンハンスメントレイヤは第2のビューを表す。
・深度拡張コーディングと呼ばれる場合もある、深度スケーラビリティ。ビットストリームの1つまたはいくつかのレイヤは、テクスチャビューを表すことができ、他の1つまたはいくつかのレイヤは、深度ビューを表すことができる。
上記のスケーラビリティケースのすべてにおいて、ベースレイヤ情報は、さらなるビットレートオーバーヘッドを最小化するようにエンハンスメントレイヤをコード化するために使用される可能性がある。
【0074】
スケーラビリティは、2つの基本的な方法で可能にすることができる。スケーラブル表現の下位レイヤからのピクセル値もしくはシンタックスの予測を実行するための新しいコーディングモードを導入すること、または上位レイヤの参照ピクチャバッファ(復号ピクチャバッファ、DPB)に下位レイヤピクチャを収容することのいずれかによる。
【0075】
1番目の手法はより柔軟であり、したがって、ほとんどの場合より良いコーディング効率を実現することができる。しかしながら、2番目の参照フレームベースのスケーラビリティ手法は、利用可能なコーディング効率利得の大部分をさらに達成しながら、単一のレイヤコーデックに対する変化が最小であり、非常に効率的に実施することができる。本質的に、参照フレームベースのスケーラビリティコーデックは、DPBの管理のみに注意して、すべてのレイヤに対して同じハードウェアまたはソフトウェアの実装形態を利用することによって実施することができる。
【0076】
HEVCおよびVVCなどのいくつかのコーディングフォーマットのエンコーダの出力、ならびにHEVCおよびVVCなどのいくつかのコーディングフォーマットのデコーダの入力のための基本ユニットは、ネットワークアブストラクションレイヤ(NAL)ユニットである。パケット指向ネットワーク上の転送または構造化ファイルへの格納のために、NALユニットはパケットまたは同様の構造の中にカプセル化されてもよい。
【0077】
フレーミング構造を提供しない送信環境または格納環境向けのNALユニットストリームに、バイトストリームフォーマットが指定されてもよい。バイトストリームフォーマットは、各NALユニットの前部に開始コードを取り付けることにより、互いにNALユニットを分離する。NALユニット境界の誤検出を回避するために、エンコーダは、バイト指向開始コードエミュレーション防止アルゴリズムを実行することができ、それは、開始コードが別段発生した場合にNALユニットペイロードにエミュレーション防止バイトを追加する。パケット指向システムとストリーム指向システムとの間の単純明快なゲートウェア動作を可能にするために、開始コードエミュレーション防止は、バイトストリームフォーマットが使用中か否かにかかわらず、常に実行されてもよい。
【0078】
NALユニットは、後に続くデータのタイプの指示を含むシンタックス構造、およびエミュレーション防止バイトで必要に応じて散在するローバイトシーケンスペイロード(RBSP)の形式のそのデータを含むバイトとして定義されてもよい。RBSPは、NALユニット内にカプセル化された整数個のバイトを含むシンタックス構造として定義されてもよい。RBSPは、空であるか、または、RBSPストップビットが後に続き、0に等しいゼロ以上の後続ビットが後に続くシンタックス要素を含むデータビットのストリングの形式を有するかのいずれかである。
【0079】
NALユニットは、ヘッダおよびペイロードから構成される。VVCでは、すべての指定されたNALユニットタイプに2バイトNALユニットヘッダが使用され、他のコーデックでは、NALユニットヘッダはVVCにおけるNALユニットヘッダと同様であってもよい。
【0080】
VVCでは、NALユニットヘッダは、5ビットのNALユニットタイプ指示(nal_unit_type)、(1以上であることが必要であり得る)時間レベルまたはサブレイヤ用の3ビットのnuh_temporal_id_plus1指示、および6ビットのnuh_layer_idシンタックス要素を含む。nuh_temporal_id_plus1シンタックス要素は、NALユニット用の時間識別子と見なされてもよく、ゼロベースのTemporalId変数は以下のように導出されてもよい。TemporalId=nuh_temporal_id_plus1-1。略語TIDは、TemporalId変数と交換可能に使用されてもよい。0に等しいTemporalIdは、最も低い時間レベルに対応する。nuh_temporal_id_plus1の値は、開始コードエミュレーションが2つのNALユニットヘッダバイトを含むことを回避するために、非ゼロである必要がある。選択された値以上のTemporalIdを有するVCL NALユニットを除外し、すべての他のVCL NALユニットを含めることによって作成されたビットストリームは、適合したままである。その結果、tid_valueに等しいTemporalIdを有するピクチャは、tid_valueよりも大きいTemporalIdを有するいかなるピクチャもインター予測参照として使用しない。サブレイヤまたは時間サブレイヤは、時間スケーラブルビットストリームの時間スケーラブルレイヤ(または時間レイヤ、TL)であるように定義されてもよい。そのような時間スケーラブルレイヤは、TemporalId変数の特定の値を有するVCL NALユニット、および関連付けられた非VCL NALユニットを含んでもよい。nuh_layer_idは、スケーラブルレイヤ識別子として理解することができる。
【0081】
NALユニットは、ビデオコーディングレイヤ(VCL)NALユニットおよび非VCL NALユニットに分類することができる。VCL NALユニットは、コード化スライスNALユニットであってもよい。HEVCおよびVVCでは、VCL NALユニットは、1つまたは複数のCUを表すシンタックス要素を含む。HEVCおよびVVCでは、ある特定の範囲内のNALユニットタイプ値はVCL NALユニットを示し、VCL NALユニットタイプはピクチャタイプを示すことができる。
【0082】
画像は、単独でコード化可能および復号可能な画像セグメント(たとえば、スライスまたはタイルまたはタイルグループ)に分割することができる。そのような画像セグメントは並行処理を可能にすることができ、本明細書における「スライス」は、デフォルトのコーディングまたは復号の順序で処理されるある特定の数のコーディングユニットから構築された画像セグメントを指すことができ、「タイル」は、長方形画像領域として定義された画像セグメントを指すことができる。タイルグループは、1つまたは複数のタイルのグループとして定義されてもよい。画像セグメントは、HEVCおよびVVCにおけるVCL NALユニットなどの、ビットストリーム内の別々のユニットにしてコード化されてもよい。コード化された画像セグメントは、ヘッダおよびペイロードを含んでもよく、ヘッダはペイロードを復号するために必要なパラメータ値を含む。
【0083】
HEVC規格では、ピクチャはタイルに区分化することができ、タイルは長方形であり、整数個のCTUを含む。HEVC規格では、タイルへの区分化は、(CTU内の)列の幅のリストおよび(CTU内の)行の高さのリストによって特徴付けられ得るグリッドを形成する。タイルは、タイルグリッドのラスタ走査順序で連続してビットストリーム内で順序付けられる。タイルは、整数個のスライスを含んでもよい。
【0084】
HEVCでは、スライスは、整数個のCTUから構成される。CTUは、タイルが使用中でない場合、タイル内またはピクチャ内でCTUのラスタ走査順序で走査される。スライスは整数個のタイルを含んでもよく、またはスライスはタイルに含まれてもよい。CTU内で、CUは特定の走査順序を有する。
【0085】
HEVCでは、スライスは、1つの独立スライスセグメント、および同じアクセスユニット内の(もしあれば)次の独立スライスセグメントに先行する(もしあれば)すべての後続の従属スライスセグメントに含まれる、整数個のコーディングツリーユニットであるように定義される。HEVCでは、スライスセグメントは、タイル走査で連続して順序付けられ、単一のNAL(ネットワークアブストラクションレイヤ)ユニットに含まれる整数個のコーディングツリーユニットであるように定義される。各ピクチャのスライスセグメントへの分割は区分化である。HEVCでは、独立スライスセグメントは、スライスセグメントヘッダのシンタックス要素の値が先行するスライスセグメントの値から推論されないスライスセグメントであるように定義され、従属スライスセグメントは、スライスセグメントヘッダのいくつかのシンタックス要素の値が復号順序で先行する独立スライスセグメントの値から推論されるスライスセグメントであるように定義される。HEVCでは、スライスヘッダは、現在スライスセグメントであるか、または現在従属スライスセグメントに先行する独立スライスセグメントである独立スライスセグメントのスライスセグメントヘッダであるように定義され、スライスセグメントヘッダは、スライスセグメント内で表される最初またはすべてのコーディングツリーユニットに関するデータ要素を含むコード化スライスセグメントの一部であるように定義される。CUは、タイルが使用中でない場合、タイル内またはピクチャ内でLCUのラスタ走査順序で走査される。LCU内で、CUは特定の走査順序を有する。
【0086】
VVCのドラフトバージョンでは、ピクチャのタイルへの区分化は以下のように定義される。ピクチャは、1つまたは複数のタイル行および1つまたは複数のタイル列に分割される。ピクチャのタイルへの区分化は、(CTU内の)列の幅のリストおよび(CTU内の)行の高さのリストによって特徴付けられ得るタイルグリッドを形成する。タイルは、タイルグリッド、すなわち、ピクチャの長方形領域内の1つの「セル」をカバーするコーディングツリーユニット(CTU)のシーケンスである。
【0087】
VVCのドラフトバージョンでは、ピクチャのスライスへの区分化は以下のように定義される。スライスの2つのモード、すなわち、ラスタ走査スライスモードおよび長方形スライスモードがサポートされる。ラスタ走査スライスモードでは、スライスは、ピクチャのタイルラスタ走査におけるタイルのシーケンスを含む。長方形スライスモードでは、スライスは、ピクチャの長方形領域を一括して形成する整数個の完全タイル、またはタイルの整数個の完全CTU行のいずれかを含む。スライスはVCL NALユニットである。
【0088】
VVCのドラフトバージョンでは、スライス(別名、コード化スライス)は、スライスヘッダおよびスライスデータを含んでもよい。スライスヘッダは、スライス内で表されるすべてのタイルまたはタイル内のCTU行に関するデータ要素を含むコード化スライスの一部として定義されてもよい。
【0089】
動き制約タイルセット(MCTS)は、動き制約タイルセットの外側にサンプル値がなく、動き制約タイルセットの外側の1つまたは複数のサンプル値を使用して導出された分数サンプル位置にサンプル値がないように、インター予測プロセスが符号化において制約され、動き制約タイルセット内の任意のサンプルのインター予測に使用される。さらに、MCTSの符号化は、動きベクトル候補がMCTSの外側のブロックから導出されないように制約される。これは、HEVCの時間動きベクトル予測をオフにすることにより、あるいはTMVP候補またはマージもしくはMCTSの右下にある最後の1つを除くMCTSの右タイル境界のすぐ左に位置するPU用のAMVP候補リスト内のTMVP候補に続く任意の動きベクトル予測候補をエンコーダが使用することを禁止することによって執行されてもよい。一般に、MCTSは、任意のサンプル値、およびMCTSの外側にある動きベクトルなどのコード化データから独立したタイルセットであるように定義されてもよい。MCTSシーケンスは、1つまたは複数のコード化ビデオシーケンスまたは同様の中のそれぞれのMCTSのシーケンスとして定義されてもよい。場合によっては、MCTSは、長方形エリアを形成することが必要であり得る。状況に応じて、MCTSは、ピクチャ内のタイルセットまたはピクチャのシーケンス内のそれぞれのタイルセットを参照することができることを理解されたい。それぞれのタイルセットは、ピクチャのシーケンス内で併置されてもよいが、一般に併置される必要がない。動き制約タイルセットは、その他のタイルセットなしに復号されてもよいので、独立コード化タイルセットと見なされてもよい。
【0090】
インター予測において使用されるサンプル位置は、符号化プロセスおよび/または復号プロセスによって飽和する場合があり、その結果、そうでない場合ピクチャの外側にあるはずの位置は、ピクチャの対応する境界サンプルへのポイントまで飽和することに留意されたい。したがって、タイル境界がピクチャ境界でもある場合、いくつかの使用事例では、サンプル位置が境界上に飽和するので、エンコーダは、動きベクトルがその境界を効果的に横切ること、または動きベクトルがその境界の外側の位置を指すはずの分数サンプル補間を効果的に引き起こすことを可能にすることができる。他の使用事例では、具体的には、コード化タイルが、それがピクチャ境界に隣接する場所に位置するビットストリームから、タイルがピクチャ境界に隣接しない場所に位置する別のビットストリームに抽出され得る場合、エンコーダは任意のMCTS境界と同様にピクチャ境界上の動きベクトルを制約することができる。
【0091】
ドラフトVVC規格は、サブピクチャ(別名、下位ピクチャ)をサポートする。サブピクチャは、ピクチャ内の1つまたは複数のスライスの長方形領域として定義されてもよく、1つまたは複数のスライスは完璧である。その結果、サブピクチャは、ピクチャの長方形領域を一括してカバーする1つまたは複数のスライスから構成される。サブピクチャのスライスは、長方形スライスであることが必要であり得る。ピクチャのサブピクチャ(別名、サブピクチャレイアウトまたはサブピクチャのレイアウト)への区分化は、SPS内で示され、かつ/またはSPSから復号されてもよい。以下の特性のうちの1つまたは複数は、一括してサブピクチャに対して、または個別にサブピクチャごとに、(たとえば、エンコーダによって)指示されるか、または(たとえば、デコーダによって)復号されるか、または(たとえば、エンコーダおよび/もしくはデコーダによって)推論されてもよい:i)サブピクチャが復号プロセスにおいてピクチャとして扱われるか否か、場合によっては、この特性は、別々に指示/復号/推論され得る、インループフィルタリング動作を除外する、ii)インループフィルタリング動作がサブピクチャ境界を横切って実行されかどうか。復号プロセスにおいてピクチャとしてサブピクチャを扱うことは、そうでない場合サブピクチャの外側にあるはずのインター予測におけるサンプル位置をサブピクチャ境界上に飽和させることを含んでもよい。
【0092】
MCTSを参照して記載された実施形態は、(ドラフトVVC規格に対して指定された)サブピクチャで同様に実現される可能性があり、サブピクチャを参照して記載された実施形態は、(上述された)MCTSで同様に実現される可能性がある。
【0093】
非VCL NALユニットは、たとえば、以下のタイプ:シーケンスパラメータセット、ピクチャパラメータセット、補足拡張情報(SEI)NALユニット、アクセスユニットデリミタ、シーケンス終了NALユニット、ビットストリーム終了NALユニット、またはフィルタデータNALユニットのうちの1つであってもよい。パラメータセットは、復号ピクチャの復元に必要とされる場合があり、その他の非VCL NALユニットの多くは、復号サンプル値の復元に必要ではない。
【0094】
いくつかのコーディングフォーマットは、復号または復号ピクチャの復元に必要とされるパラメータ値を搬送することができるパラメータセットを指定する。コード化ビデオシーケンスを通して不変のままであるパラメータは、シーケンスパラメータセット(SPS)に含まれてもよい。CVSが複数のレイヤを含む場合、SPSはレイヤのサブセットに対してのみアクティブであってもよい。復号プロセスによって必要とされ得るパラメータに加えて、シーケンスパラメータセットは、ビデオユーザビリティ情報(VUI)を含んでもよく、VUIは、バッファリング、ピクチャ出力タイミング、レンダリング、およびリソース確保にとって重要であり得るパラメータを含む。ピクチャパラメータセット(PPS)は、いくつかのコード化ピクチャ内で変わらない可能性が高いパラメータを含む。ピクチャパラメータセットは、1つまたは複数のコード化ピクチャのコード化画像セグメントによって参照され得るパラメータを含んでもよい。
【0095】
復号パラメータセット(DPS)は、ビットストリームに適用されるパラメータを搬送することができる。DPSは、VCL NALユニットを復号するために必要ではない特性および/または制約を含むように指定されてもよい。ビデオパラメータセット(VPS)は、複数のレイヤに一括して適用されるパラメータを搬送することができる。適応パラメータセット(APS)は、ゼロ以上のスライスに適用されるシンタックス構造として定義されてもよい。異なるタイプの適応パラメータセットが存在してもよい。適応パラメータセットは、たとえば、特定のタイプのフィルタ用のフィルタリングパラメータを含んでもよい。ドラフトVVC規格では、適応ループフィルタ(ALF)、クロマスケーリング付きルーママッピング(LMCS)、およびスケーリングリストのうちの1つのためのパラメータを搬送する3つのタイプのAPSが指定される。スケーリングリストは、各周波数インデックスをスケーリングプロセス用のスケールファクタと関連付けるリストとして定義されてもよく、スケーリングプロセスは、変換係数レベルをスケーリングファクタと乗算し、変換係数をもたらす。
【0096】
パラメータセットは、それが、たとえば、その識別子を介して参照されると、アクティブ化されてもよい。たとえば、スライスヘッダなどの画像セグメントのヘッダは、画像セグメントを含むコード化ピクチャを復号するためにアクティブ化されるPPSの識別子を含んでもよい。PPSは、PPSがアクティブ化されるときにアクティブ化されるSPSの識別子を含んでもよい。特定のタイプのパラメータアセットのアクティブ化は、同じタイプの以前のアクティブパラメータセットの非アクティブ化を引き起こす場合がある。パラメータセットをアクティブ化することに加えて、またはその代わりに、パラメータセットは、パラメータセットの識別子を含むシンタックス構造によって参照または言及されてもよい。たとえば、スライスヘッダは、その識別子がスライスヘッダに含まれるPPS、およびその識別子が参照されたPPSに含まれるSPSを参照することができる。
【0097】
ドラフトVVC規格では、PPSシンタックスは、mixed_nalu_types_in_pic_flagという名前の1ビットシンタックス要素(すなわち、フラグ)を含む。1に等しいとき、mixed_nalu_types_in_pic_flagは、PPSを参照する各ピクチャが2つ以上のVCL NALユニットを有すること、およびVCL NALユニットが同じ値のnal_unit_typeをもたないこと、およびピクチャがIRAPピクチャではないことを指定する。0に等しいmixed_nalu_types_in_pic_flagは、PPSを参照する各ピクチャが2つ以上のVCL NALユニットを有すること、およびPPSを参照する各ピクチャのVCL NALユニットが同じ値のnal_unit_typeを有することを指定する。
【0098】
異なる階層レベル(たとえば、シーケンスおよびピクチャ)にあるパラメータセットの代わりに、またはそれらに加えて、ビデオコーディングフォーマットは、シーケンスヘッダまたはピクチャヘッダなどのヘッダシンタックス構造を含んでもよい。シーケンスヘッダは、ビットストリーム順序でコード化ビデオシーケンスの任意の他のデータに先行することができる。ピクチャヘッダは、ビットストリーム順序でピクチャ用の任意のコード化ビデオデータに先行することができる。
【0099】
VVCでは、ピクチャヘッダ(PH)は、コード化ピクチャのすべてのスライスに適用されるシンタックス要素を含むシンタックス構造として定義されてもよい。言い換えれば、PHに関連付けられたコード化ピクチャのすべてのスライスに共通する情報を含む。ピクチャヘッダシンタックス構造は、RBSPとして指定され、NALユニットに含まれる。
【0100】
ビットストリームに沿った(たとえば、ビットストリームに沿っていることを示す)、またはビットストリームのコード化ユニットに沿った(たとえば、コード化タイルに沿っていることを示す)というフレーズは、「帯域外」データが、それぞれ、ビットストリームまたはコード化ユニットに関連付けられているが、それらに含まれていないように、送信、シグナリング、または格納を指すために、特許請求の範囲および記載された実施形態において使用されてもよい。ビットストリームに沿った、またはビットストリームのコード化ユニットに沿った、または同様の復号というフレーズは、それぞれ、ビットストリームまたはコード化ユニットに関連付けられた、(帯域外の送信、シグナリング、または格納から取得され得る)参照された帯域外データを復号することを指すことができる。たとえば、ビットストリームに沿ったというフレーズは、ビットストリームが、ISOベースメディアファイルフォーマットに準拠するファイルなどのコンテナファイルに含まれ、ビットストリームを含むトラック用のサンプル項目内のボックス、ビットストリームを含むトラック用のサンプルグループ、またはビットストリームを含むトラックに関連付けられた時限メタデータトラックなどの、ある特定のメタデータがそのメタデータをビットストリームに関連付けるようにファイルに格納されるときに使用されてもよい。
【0101】
コード化ピクチャはピクチャのコード化表現である。
【0102】
アクセスユニットは、単一の時間インスタンス用のコード化ビデオデータおよび関連付けられた他のデータを含んでもよい。VVCでは、アクセスユニット(AU)は、異なるレイヤに属し、復号ピクチャバッファ(DPB)からの出力用の同じ時間に関連付けられたコード化ピクチャを含む一組のピクチャユニット(PU)として定義されてもよい。VVCでは、ピクチャユニット(PU)は、指定された分類規則に従って互いに関連付けられ、復号順序で連続し、ちょうど1つのコード化ピクチャを含む一組のNALユニットとして定義されてもよい。コード化ピクチャのVCL NALユニットを含むことに加えて、ピクチャユニットは、非VCL NALユニットも含んでもよい。
【0103】
コード化ピクチャはアクセスユニット内である特定の順序で現れることが必要とされる場合がある。たとえば、nuhLayerIdAに等しいnuh_layer_idを有するコード化ピクチャは、復号順序で、同じアクセスユニット内のnuhLayerIdAよりも大きいnuh_layer_idを有するすべてのコード化ピクチャに先行することが必要であり得る。
【0104】
ビットストリームは、いくつかのコーディングフォーマットまたはコーディング規格において、コード化ピクチャ、および1つまたは複数のコード化ビデオシーケンスを形成する関連データの表現を形成するNALユニットストリームまたはバイトストリームの形式のビットのシーケンスとして定義されてもよい。第1のビットストリームは、同じファイル内、または通信プロトコルの同じ接続内などの、同じ論理チャネル内で第2のビットストリームが後に続く場合がある。(ビデオコーディングのコンテキスト内の)基本ストリームは、1つまたは複数のビットストリームのシーケンスとして定義されてもよい。いくつかのコーディングフォーマットまたはコーディング規格では、第1のビットストリームの終了は、固有のNALユニットによって示されてもよく、固有のNALユニットはビットストリーム終了(EOB)NALユニットと呼ばれる場合があり、ビットストリームの最後のNALユニットである。
【0105】
コード化ビデオシーケンス(CVS)は、単独で復号可能であり、別のコード化ビデオシーケンスまたはビットストリームの終了が後に続く、復号順序のコード化ピクチャのシーケンスとして定義されてもよい。
【0106】
コード化レイヤビデオシーケンス(CLVS)は、復号順序で、CLVS開始ピクチャユニット(CLVSS PU)から構成され、CLVSS PUではないゼロ以上のPUが後に続き、CLVSS PUである任意の後続PUまでであるが、それを含まないすべての後続PUを含む、同じスケーラブルレイヤを有する(たとえば、VVCにおいてnuh_layer_idの同じ値を有する)ピクチャユニット(PU)のシーケンスとして定義されてもよい。ピクチャユニット(PU)は、コード化ピクチャ、およびコード化ピクチャに関連付けられたすべての非VCL NALユニットとして定義されてもよい。CLVSS PUは、CLVSを開始することが可能になる、すなわち、レイヤの復号プロセスを開始することができるPUとして定義されてもよい。CLVSS PUは、たとえば、IRAPピクチャまたは段階的復号リフレッシュ(GDR)ピクチャを含んでもよい。
【0107】
ピクチャグループ(GOP)およびその特性は、以下のように定義されてもよい。GOPは、任意の以前のピクチャが復号されたかどうかにかかわらず、復号することができる。オープンGOPは、復号がオープンGOPの初期イントラピクチャから始まるときに、出力順序で初期イントラピクチャに先行するピクチャが正しく復号可能ではないピクチャのグループである。言い換えれば、オープンGOPのピクチャは、(インター予測において)以前のGOPに属するピクチャを参照することができる。HEVCデコーダまたはVVCデコーダは、固有のNALユニットタイプ、CRA NALユニットタイプがそのコード化スライスに使用される場合があるので、オープンGOPを開始するイントラピクチャを認識することができる。クローズGOPは、復号がクローズGOPの初期イントラピクチャから始まるときに、すべてのピクチャを正しく復号することができるピクチャのグループである。言い換えれば、クローズGOP内のピクチャは以前のGOP内の任意のピクチャを参照しない。オープンGOPコーディング構造は、参照ピクチャの選択における大きい柔軟性に起因して、クローズGOPコーディング構造と比較して圧縮が潜在的により効率的である。
【0108】
ビデオコーデックおよび例示的な実施形態を記載するとき、各シンタックス要素の書込みプロセスおよび/または構文解析プロセスを指定するために以下の説明が使用されてもよい。
- u(n):nビットを使用する符号なし整数。nがシンタックステーブル内の「v」であるとき、ビット数は、他のシンタックス要素の値に応じて変化する。この説明のための構文解析プロセスは、最上位ビットが最初に書き込まれる符号なし整数のバイナリ表現として解釈されたビットストリームからn個の次ビットによって指定される。
- ue(v):左ビットが最初の符号なし整数指数ゴロムコード化(別名、指数ゴロムコード化)シンタックス要素。
【0109】
指数ゴロムビットストリングは、たとえば、以下の表を使用して、コード番号(codeNum)に変換されてもよい。
【0110】
【0111】
利用可能なメディアファイルフォーマット規格には、ISOベースメディアファイルフォーマット(ISOBMFFと略記される場合がある、ISO/IEC14496-12)、MPEG-4ファイルフォーマット(MP4フォーマットとしても知られている、ISO/IEC14496-14)、NALユニット構造化ビデオ用ファイルフォーマット(ISO/IEC14496-15)、および3GPPファイルフォーマット(3GPフォーマットとしても知られている、3GPP TS26.244)が含まれる。ISOファイルフォーマットは、(ISOファイルフォーマット自体を除く)すべての上述されたファイルフォーマットを導出するための基礎である。(ISOファイルフォーマット自体を含む)これらのファイルフォーマットは、全体的に、ファイルフォーマットのISOファミリと呼ばれる。
【0112】
ISOBMFFのいくつかの概念、構造、および仕様は、それに基づいて実施形態が実装され得るコンテナファイルフォーマットの一例として以下に記載される。本発明の態様はISOBMFFに限定されず、むしろ、説明は、その上で本発明が部分的または完全に実現される1つの可能な基礎のために与えられる。
【0113】
ISOベースメディアファイルフォーマット内の基本構成単位はボックスと呼ばれる。各ボックスは、ヘッダおよびペイロードを有する。ボックスヘッダは、ボックスのタイプ、およびバイト単位のボックスのサイズを示す。ボックスのタイプは、32ビット符号なし整数、すなわち4文字コード(4CC)で示されてもよく、4文字コードは一重引用符内に書き出されてもよい、たとえば、‘mdat’。ボックスは他のボックスを囲うことができ、ISOファイルフォーマットは、ある特定のタイプのボックス内でどのボックスタイプが許容されるかを指定する。その上、いくつかのボックスの存在は各ファイル内で必須であり得るが、他のボックスの存在は任意選択であってもよい。さらに、いくつかのボックスタイプの場合、ファイル内に存在する2つ以上のボックスを有することは許容可能であってもよい。したがって、ISOベースメディアファイルフォーマットは、ボックスの階層構造を指定すると見なされてもよい。ISOBMFFによれば、ファイルは、ボックス内にカプセル化されたメタデータを含み、ボックス内にカプセル化されたメディアデータを含んでもよい。メディアデータは、代替として、ISOBMFFに準拠するファイルによって参照される他のファイル内に存在してもよい。FullBoxは、そのボックスヘッダ内に8ビットバージョンフィールドおよび24ビットフラグフィールドをさらに含むボックスである。ボックスのシンタックスは、ISO/IEC14496-1において定義されたシンタックス記述言語(SDL)を使用して指定されてもよい。
【0114】
ISOベースメディアファイルフォーマットに準拠するファイルでは、メタデータは、メディアデータ‘mdat’ボックス(別名、MediaDataBox)内で提供されてもよい。ISOBMFFに準拠するファイルは、ゼロ以上の‘mdat’ボックスを含んでもよい。
【0115】
識別されたメディアデータボックス(別名、IdentifiedMediaDataBox、‘imda’)は、MediaDataBoxと同じセマンティクスを有することができるが、含まれるメディアデータに対するデータ参照をセットアップする際に使用される識別子をさらに含む。識別子は、たとえば、識別されたメディアデータボックスによって含まれる最初の要素であってもよい。識別されたメディアデータボックスのシンタックスは、以下のように指定されてもよく、imda_identifierはボックスの識別子である。タイプ32ビット符号なし整数のimda_identifierがシンタックス内で使用されるが、他のフィールド長および他の基本データタイプ(たとえば、文字列)は、同様の識別されたメディアデータボックス構造内で可能であり得る。識別されたメディアデータボックスのシンタックスは以下で提供される。
aligned(8) class IdentifiedMediaDataBox extends Box(‘imda’) {
unsigned int(32) imda_identifier;
bit(8) data[]; //ボックスの最後まで
}
【0116】
メディアデータボックス、‘mdat’ボックス、またはMediaDataBoxが参照されるときはいつでも、説明はIdentifiedMediaDataBoxに等しく適用される。
【0117】
ISOベースメディアファイルフォーマットに準拠するファイルでは、メタデータを囲むために、ムービー‘moov’ボックス(別名、MovieBox)が使用されてもよい。場合によっては、ファイルが動作可能になるために、メタデータとムービーボックスの両方が存在することが必要であり得る。ムービー‘moov’ボックスは1つまたは複数のトラックを含んでもよく、各トラックは1つの対応するTrackBox(‘trak’)内に存在してもよい。トラックは、メディア圧縮フォーマット(およびISOベースメディアファイルフォーマットへのそのカプセル化)に従ってフォーマットされたサンプルを参照するメディアトラックを含む、多くのタイプのうちの1つであってもよい。トラックは、論理チャネルと見なされてもよい。TrackBoxはTrackHeaderBoxを含み、TrackHeaderBoxはトラック識別子、すなわちtrack_IDシンタックス要素を含み、トラック識別子は、この表現の存続期間全体にわたってトラックを一意に識別する整数である。
【0118】
ムービーフラグメントは、たとえば、ISOファイルにコンテンツを記録するときに、たとえば、記録アプリケーションがクラッシュするか、メモリ空間を使い果たすか、または他の何らかの事故が発生した場合に、データの損失を回避するために使用されてもよい。ムービーフラグメントがない場合、ファイルフォーマットは、すべてのメタデータ、たとえばムービーボックスがファイルの1つの連続エリアに書き込まれることを必要とする場合があるので、データ損失が発生する可能性がある。その上、ファイルを記録するとき、利用可能なストレージのサイズに対して、ムービーボックスをバッファリングするのに十分な量のメモリ空間(たとえば、ランダムアクセスメモリRAM)がない場合があり、ムービーが閉じられたときにムービーボックスのコンテンツを再計算することが遅すぎる場合がある。その上、ムービーフラグメントは、正規のISOファイルパーサーを使用して、ファイルの同時の記録および再生を可能にすることができる。その上、プログレッシブダウンローディング、たとえば、ムービーフラグメントが使用されるときのファイルの同時の受信および再生には、初期バッファリングの小さい持続時間が必要とされる場合があり、初期ムービーボックスは、ムービーフラグメントなしに構築された、同じメディアコンテンツを有するファイルと比較して小さい。
【0119】
ムービーフラグメントの特徴は、そうでない場合ムービーボックス内に存在するかもしれないメダデータを複数のピースに分割することを可能にすることができる。各ピースは、トラックのある特定の時間期間に対応することができる。言い換えれば、ムービーフラグメントの特徴は、メタデータおよびメディアデータのインターリーブを可能にすることができる。その結果、ムービーボックスのサイズは制限されてもよく、上述された使用事例が実現されてもよい。
【0120】
いくつかの例では、ムービーフラグメント用のメディアサンプルは、それらがmoovボックスと同じファイル内にある場合、mdatボックス内に存在してもよい。しかしながら、ムービーフラグメントのメタデータの場合、‘moof’ボックスが提供されてもよい。‘moof’ボックスは、以前‘moov’ボックス内にあったはずの、再生時間のある特定の持続時間用の情報を含んでもよい。moovボックスは、それ自体の上に有効なムービーをさらに表すことができるが、加えて、それは、ムービーフラグメントが同じファイル内で後に続くことを示す‘mvex’ボックスを含んでもよい。ムービーフラグメントは、時間内に‘moov’ボックスに関連付けられた表現を広げることができる。
【0121】
ムービーフラグメント内に、トラック当たりゼロから複数までのどこかを含む、一組のトラックフラグメントが存在してもよい。トラックフラグメントは、ゼロから複数までのトラックラン(別名、トラックフラグメントラン)のどこかを含んでもよく、その文書の各々は、そのトラック用のサンプルの連続するランである。これらの構造内で、多くのフィールドは任意選択であり、デフォルトにすることができる。‘moof’ボックスに含まれ得るメタデータは、moovボックスに含まれ得るメタデータのサブセットに限定されてもよく、場合によっては異なってコード化されてもよい。‘moof’ボックスに含まれ得るボックスに関する詳細は、ISOベースメディアファイルフォーマットの仕様から見出されてもよい。自己完結型ムービーフラグメントは、ファイル順序で連続する‘moof’ボックスおよびmdatボックスから構成されるように定義されてもよく、mdatボックスは(‘moof’ボックスがメタデータを提供する)ムービーフラグメントのサンプルを含み、任意の他のムービーフラグメント(すなわち、任意の他の‘moof’ボックス)のサンプルを含まない。
【0122】
TrackBoxおよび(TrackFragmentBox内の)トラックフラグメントは、それぞれ、TrackBoxおよびトラックフラグメントの範囲内のサンプル用の復号および合成のタイミング情報を含む。復号時間は、サンプルが復号されようとしているときの時間を示し、合成時間は、サンプルが合成されようとしているときの時間を示す。異なるトラック内の2つのサンプルは、それらの復号時間または合成時間が同一であるとき、時間整列していると見なされてもよい。時間整列という用語は、復号時間および/または合成時間のいずれかまたは両方における整列を指すことができる。時々、時間整列という用語は、復号時間における整列のみを指す場合がある。
【0123】
トラックを互いに関連付けるために、トラック参照メカニズムを使用することができる。TrackReferenceBoxはボックスを含み、ボックスの各々は、含んでいるトラックから、それらのtrack_ID値により、または以下に説明されるように、それらのtrack_group_id値によって識別された他のトラックのセットへの参照を提供する。これらの参照は、含まれるボックスのボックスタイプ(すなわち、ボックスの4文字コード)を介してラベル付けされる。
【0124】
TrackBoxに含まれるTrackGroupBoxは、各グループが特定の特性を共有するか、またはグループ内のトラックが特定の関係を有する、トラックのグループの指示を可能にする。ボックスはゼロ以上のボックスを含み、特定の特性または関係は、含まれるボックスのボックスタイプによって示される。含まれるボックスは、タイプTrackGroupTypeBoxのボックスであるか、またはTrackGroupTypeBoxから導出される。TrackGroupTypeBoxは、FullBoxのようであるが、識別子も含み、識別子は同じトラックグループに属するトラックを判断するために使用することができる。TrackGroupBox内の含まれるボックスの同じタイプを含み、これらの含まれるボックス内の同じ識別子の値を有するトラックは、同じトラックグループに属する。
【0125】
ISOベースメディアファイルフォーマットは、特定のサンプル、サンプルグループ、時限メタデータトラック、およびサンプル補助情報と関連付けることができる時限メタデータのための3つのメカニズムを含む。導出された仕様は、同様の機能に、これらの3つのメカニズムのうちの1つまたは複数を提供することができる。
【0126】
ISOベースメディアファイルフォーマットおよびその派生物内のサンプルグループ化は、グループ化基準に基づいて、1つのサンプルグループのメンバになるように、トラック内の各サンプルの割当てとして定義されてもよい。サンプルグループ化におけるサンプルグループは、連続するサンプルであるように限定されず、隣接しないサンプルを含んでもよい。トラック内のサンプル向けに2つ以上のサンプルグループ化が存在してもよいので、各サンプルグループ化は、グループ化のタイプを示すためにタイプフィールドを有してもよい。サンプルグループ化は、2つのリンクされたデータ構造によって表されてもよい。(1)SampleToGroupBox(‘sbgp’ボックス)は、サンプルグループへのサンプルの割当てを表し、(2)SampleGroupDescriptionBox(‘sgpd’ボックス)は、グループの特性を記述するサンプルグループごとのサンプルグループ項目を含む。異なるグループ化基準に基づいて、SampleToGroupBoxおよびSampleGroupDescriptionBoxの複数のインスタンスが存在してもよい。これらは、グループ化のタイプを示すために使用されるタイプフィールドによって区別されてもよい。SampleToGroupBoxは、たとえば、グループ化のサブタイプを示すために使用することができるgrouping_type_parameterフィールドを含んでもよい。
【0127】
0に等しいサンプルグループ記述インデックスにサンプルをマッピングすることは、サンプルがこのタイプのグループのメンバではないことを示す。SampleToGroupBox内のサンプルカウントの合計が総サンプルカウントよりも少ないか、またはいくつかのサンプルに適用されるSampleToGroupBoxが存在しない(たとえば、それがトラックフラグメントにない)場合、それらのサンプルは、もしあれば、SampleGroupDescriptionBox内のdefault_group_description_indexによって識別されたグループと関連付けられ、さもなければ、グループと関連付けられない。したがって、SampleGroupDescriptionBox内のデフォルトのサンプルグループ記述インデックス、すなわち、default_group_description_indexは、そのためにグループマッピングに対するサンプルがSampleToGroupBoxを介して提供されないトラック内のすべてのサンプルに適用されるサンプルグループ記述項目のインデックスを指定する。default_group_description_indexがSampleGroupDescriptionBox内に存在しないとき、それは(サンプルがこのタイプのグループ記述にマッピングされないことを示す)ゼロに等しいと推論される。
【0128】
以下を含む、いくつかのタイプのストリームアクセスポイント(SAP)がISOBMFFにおいて指定されている。SAPタイプ1は、いくつかのコーディング方式において(すべてのピクチャが、復号順序で、正しく復号することができ、ギャップがない正しく復号されたピクチャの連続時間シーケンスをもたらす)「クローズGOPランダムアクセスポイント」として知られているものに対応し、加えて、復号順序で最初のピクチャは表示順序でも最初のピクチャである。SAPタイプ2は、いくつかのコーディング方式において(すべてのピクチャが、復号順序で、正しく復号することができ、ギャップがない正しく復号されたピクチャの連続時間シーケンスをもたらす)「クローズGOPランダムアクセスポイント」として知られているものに対応し、それに対して、復号順序で最初のピクチャは表示順序で最初のピクチャでなくてもよい。SAPタイプ3は、いくつかのコーディング方式において「オープンGOPランダムアクセスポイント」として知られているものに対応し、その中に、復号順序で、正しく復号することができず、SAPに関連付けられたイントラコード化ピクチャよりも短い表示時間を有するいくつかのピクチャが存在してもよい。
【0129】
レイヤードコーディング用の(同様にまたは代替として、レイヤアクセスポイントと呼ばれる場合がある)ストリームアクセスポイントは、レイヤ方式で同様に定義されてもよい。レイヤ用のSAPは、そのレイヤの参照レイヤがすでに前に復号されていると仮定して、その前方の位置からの情報のみを使用してそのレイヤの再生が開始されることを可能にするレイヤ(または同様)内の位置として定義されてもよい。
【0130】
ISOBMFFにおいて指定されたストリームアクセスポイント(SAP)サンプルグループは、示されたSAPタイプのサンプルであるようにサンプルを識別する。SAPサンプルグループ用のgrouping_type_parameterは、フィールドtarget_layersおよびlayer_id_method_idcを含む。target_layersは、示されたSAP用のターゲットレイヤを指定する。target_layersのセマンティクスは、layer_id_method_idcの値に依存する場合がある。layer_id_method_idcは、target_layersのセマンティクスを指定する。0に等しいlayer_id_method_idcは、ターゲットレイヤがトラックによって表されたすべてのレイヤから構成されることを指定する。SAPサンプルグループ用のサンプルグループ記述項目は、フィールドdependent_flagおよびSAP_typeを含む。dependent_flagは、非レイヤードメディアに対して0であることが必要であり得る。1に等しいdependent_flagは、もしあれば、ターゲットレイヤを予測するための参照レイヤが、このサンプルグループのサンプルにアクセスするために復号される必要があり得ることを指定する。0に等しいdependent_flagは、もしあれば、ターゲットレイヤを予測するための参照レイヤが、このサンプルグループの任意のSAPにアクセスするために復号される必要がないことを指定する。両端を含む1~6の範囲のsap_type値は、関連付けられたサンプルのSAPタイプを指定する。
【0131】
同期サンプルは、SAPタイプ1または2に対応するサンプルとして定義されてもよい。同期サンプルは、サンプルの新しい独立シーケンスルを開始するメディアサンプルとして見なすことができ、復号が同期サンプルにおいて開始した場合、同期サンプルおよび復号順序で後続サンプルは、すべて正しく復号することができ、復号サンプルの得られたセットは、最も早い合成時間を有する復号サンプルにおいて開始するメディアの正しい表示を形成する。同期サンプルは、(そのメタデータがTrackBox内に存在するサンプル用の)SyncSampleBoxで、またはトラックフラグメントランに対して指示もしくは推論されたサンプルフラグ(より具体的には、sample_is_non_sync_sampleフラグ)内で示すことができる。
【0132】
ISO/IEC14496-15のドラフト補正は、抽出用代替(‘alte’)トラックグループの仕様を含む。‘alte’トラックグループのメンバは、抽出用のソースとして使用されるべき代替である。HEVCの場合、track_group_typeが‘alte’に等しいトラックグループのメンバは、‘scal’または‘sabt’のトラック参照用のソースとして使用される代替であるように定義されてもよい。ファイルライタは、‘alte’トラックグループが抽出用のソースとして使用されるべき代替であるトラックを含むことをファイル内で示すことができる。
【0133】
‘alte’トラックグループ用の識別子は、トラック用の識別子として同じナンバリング空間から取られてもよい。言い換えれば、‘alte’トラックグループ用の識別子は、すべてのトラック識別子の値とは異なることが必要であり得る。その結果、‘alte’トラックグループ識別子は、トラック識別子が従来使用された場所で使用されてもよい。具体的には、‘alte’トラックグループ識別子は、抽出用のソースを示すトラック参照として使用されてもよい。(フラグ&1)の値は、ISO/IEC14496-12において指定されたtrack_group_idの一意性を示すために、タイプ‘alte’のTrackGroupTypeBox内で1に等しく設定されてもよい。
【0134】
track_ref_4ccに等しいreference_typeのTrackReferenceTypeBoxは、トラックIDの値に加えて、またはその代わりに同じalte_track_ref_4ccの値を含む‘alte’トラックグループのtrack_group_idの値を列挙することができる。たとえば、抽出器トラックは、‘scal’トラック参照を介して、個々のトラックに加えて、またはその代わりに‘alte’トラックグループを指し示すことができる。‘alte’トラックグループの任意の単一トラックは、抽出用のソースに適している。プレーヤまたはファイルリーダまたは同様は、切り替えられたトラックが同期サンプルまたはタイプ1もしくは2のSAPサンプルを有する位置にある抽出用のソーストラックを変更することができる。
【0135】
ISOBMFFに準拠するファイルは、メタボックス(4文字コード:‘meta’)内に、アイテム、メタアイテム、またはメタデータアイテムと呼ばれる、任意の非時限オブジェクトを含んでもよい。メタボックスの名称はメタデータを指すが、アイテムは、一般に、メタデータまたはメディアデータを含むことができる。メタボックスは、ムービーボックス(4文字コード:‘moov’)内、かつトラックボックス(4文字コード:‘trak’)内で、ファイルの最上位に存在することができるが、多くとも1つのメタボックスは、ファイルレベル、ムービーレベル、またはトラックレベルの各々に生じる場合がある。メタボックスは、‘meta’ボックスコンテンツの構造またはフォーマットを示すHandlerBox(‘hdlr’)ボックスを含むことが必要であり得る。メタボックスは、参照することができる任意の数のアイテムを列挙し特徴付けることができ、アイテムの各々は、ファイル名と関連付けることができ、整数値であるアイテム識別子(item_id)によってファイルと一意に識別される。メタデータアイテムは、たとえば、メタボックスのアイテムData Box(‘idat’)ボックスもしくは‘mdat’ボックスに格納されるか、または個別のファイル内に存在してもよい。メタデータがファイルの外部に位置する場合、その位置は、DataInformationBox(4文字コード:‘dinf’)によって指定されてもよい。メタデータが拡張マークアップ言語(XML)シンタックスを使用してフォーマットされ、MetaBoxに直接格納される必要がある具体的な事例では、メタデータは、XMLBox(4文字コード:‘xml’)またはBinaryXMLBox(4文字コード:‘bxml’)のいずれかの中にカプセル化されてもよい。アイテムは、連続バイト領域として格納されてもよく、または各々が連続バイト領域であるいくつかの範囲に格納されてもよい。言い換えれば、アイテムは、たとえば、インターリーブを可能にするために、範囲に断片的に格納されてもよい。範囲は、リソースのバイトの連続サブセットである。リソースは、範囲を連結させることによって形成することができる。ItemPropertiesBoxは、アイテム特性の順序集合との任意のアイテムの関連付けを可能にする。アイテム特性は、小さいデータレコードと見なされてもよい。ItemPropertiesBoxは2つの部分:アイテム特性の暗黙的にインデックス付けされたリストを含むItemPropertyContainerBox、およびアイテムをアイテム特性と関連付ける1つまたは複数のItemPropertyAssociationBoxから構成される。
【0136】
エンティティグループ化は、トラックグループ化と同様であるが、同じグループ内のトラックとアイテム(たとえば、画像アイテム)の両方のグループ化を可能にする。エンティティグループ化のシンタックスは、以下のように指定されてもよい。
aligned(8) class EntityToGroupBox(grouping_type,version,flags)
extends FullBox(grouping_type, version, flags) {
unsigned int(32) group_id;
unsigned int(32) num_entities_in_group;
for(i=0;i<num_entities_in_group;i++)
unsigned int(32) entity_id;
}
【0137】
group_idは、任意の他のEntityToGroupBoxの任意のgroup_id値、(EntityToGroupBoxを含む)GroupsListBoxを含む階層レベル(ファイル、ムービー、もしくはトラック)の任意のitem_ID値、または(GroupsListBoxがファイルレベルに含まれていないときの)任意のtrack_ID値と等しくない場合がある特定のグループ化に割り当てられた非負整数である。num_entities_in_groupは、このエンティティグループにマッピングされたentity_id値の数を指定する。entity_idは、entity_idに等しいitem_IDを有するアイテムが(EntityToGroupBoxを含む)GroupsListBoxを含む階層レベル(ファイル、ムービー、もしくはトラック)内に存在するときはアイテムに、またはentity_idに等しいtrack_IDを有するトラックが存在し、GroupsListBoxがファイルレベルに含まれているときはトラックに転換される。
【0138】
高効率画像ファイルフォーマット(HEIF)は、画像および画像シーケンスの格納のために動画エキスパートグループ(MPEG)によって開発された規格である。HEIFは、使用されたISOベースメディアファイルフォーマット(ISOBMFF)の最上位に構築される特徴を含む。ISOBMFFの構造および特徴は、HEIFの設計において大いに使用される。HEIFの基本設計は、アイテムとして格納された静止画像およびトラックとして格納された画像シーケンスを含む。
【0139】
HEIFの文脈では、以下のボックスは、ルーフレベル‘meta’ボックス内に含まれてもよく、以下に記載されるように使用されてもよい。HEIFでは、‘meta’ボックスのハンドラボックスのハンドラ値は‘pict’である。(同じファイル内にあるか、または一意のリソース識別子によって識別された外部ファイル内にあるかにかかわらず)コード化メディアデータを含むリソースは、データ情報(‘dinf’)ボックスを介して転換されるが、アイテムロケーション(‘iloc’)ボックスは、参照ファイル内のあらゆるアイテムの位置およびサイズを格納する。アイテム参照(‘iref’)ボックスは、分類された参照を使用してアイテム間の関係を記録する。何らかの方法で他と比べて最も重要であると見なされるアイテムがアイテムの集合の中に存在する場合、このアイテムは、主要アイテム(‘pitm’)ボックスによってシグナリングされる。ここに言及されたボックスは別として、‘meta’ボックスはまた、アイテムを記述するために必要であり得る他のボックスを含むことに柔軟である。
【0140】
HEIFは、導出画像アイテムをサポートする。アイテムは、それが別のアイテムへの‘ditm’アイテム参照を含むとき、導出画像アイテムである。導出画像は、指定された入力画像に対して、回転などの指定された演算(別名、画像演算)を実行することによって取得される。導出画像を取得するために実行される演算は、アイテムのitem_typeによって識別される。導出画像への入力として使用される画像アイテムは、コード化画像であってもよく、またはそれらは他の導出画像アイテムであってもよい。
【0141】
サンプルファイルに任意の数の画像アイテムを含めることができる。‘meta’ボックス手法を使用して格納された画像の集合が与えられると、それは、時々、画像間のある特定の関係を適格とするために不可欠である。そのような関係の例には、集合用のカバー画像を指示すること、集合内の画像の一部またはすべてにサムネイル画像を提供すること、および集合内の画像の一部またはすべてをアルファ面などの補助画像と関連付けることが含まれる。画像の集合の中のカバー画像は、‘pitm’ボックスを使用して示される。サムネイル画像または補助画像は、それぞれ、タイプ‘thmb’または‘auxl’のアイテム参照を使用して一次画像アイテムにリンクされる。
【0142】
VVCでは、サブピクチャ(別名、サブピクチャレイアウトまたはサブピクチャのレイアウト)へのピクチャの区分化は、シーケンスパラメータセット(SPS)内で示され、かつ/またはSPSから復号されてもよい。VVCドラフト7では、SPSシンタックスは、サブピクチャごとに、コーディングツリーユニット(CTU)内のサブピクチャの左上隅のx座標およびy座標、サブピクチャの幅、ならびにサブピクチャの高さを示すシンタックス要素を提供することによるサブピクチャへのピクチャの区分化を示す。したがって、サブピクチャレイアウトは、ピクチャ内のサブピクチャ位置、幅、および高さを示すが、任意の特定の識別子のサブピクチャまたはサブピクチャシーケンスをサブピクチャレイアウトに割り当てない。
【0143】
サブピクチャレイアウトに加えて、以下の特性のうちの1つまたは複数は、一括してサブピクチャに対して、または個別にサブピクチャごとに、(たとえば、エンコーダによって)指示されるか、または(たとえば、デコーダによって)復号されるか、または(たとえば、エンコーダおよび/もしくはデコーダによって)推論されてもよい。
i)復号プロセスにおいてサブピクチャがピクチャとして扱われるか否か、場合によっては、この特性はインループフィルタリング演算を除外し、個別に指示/復号/推論されてもよい。
ii)サブピクチャ境界を横切ってインループフィルタリング演算が実行されるか否か。
【0144】
VVCドラフト7では、サブピクチャ識別子(すなわち、シンタックス要素slice_subpic_id)は、スライスヘッダ内で(たとえば、エンコーダによって)指示され、かつ/またはスライスヘッダから(たとえば、デコーダによって)復号される。slice_subpic_idは、スライスを含むサブピクチャのサブピクチャ識別子を指定する。slice_subpic_idは、その長さが参照されたSPS、PPS(ピクチャパラメータセット)、またはPH(ピクチャヘッダ)内で示された固定長符号なし整数u(v)としてコード化され、長さが示されていないとき、長さは参照されたSPS内で示されたサブピクチャの数に基づいて導出される。
【0145】
VVCドラフト7において長方形スライスが使用中であるとき、スライスヘッダはslice_addressシンタックス要素を含み、それは、slice_subpic_idによって識別されたサブピクチャ内のスライスのスライスインデックスである。
【0146】
VVCドラフト7では、SPS、PPS、またはPHは、サブピクチャ識別子の値のリスト、すなわち、両端を含む0からサブピクチャレイアウト内のサブピクチャの数マイナス1の範囲のiに対して、それぞれ、sps_subpic_id[i]、pps_subpic_id[i]、またはph_subpic_id[i]を含む。サブピクチャ識別子の値のリストは、コード化ビデオシーケンス全体に対して不変であることがSPS内で示されてもよい。コード化ビデオシーケンス内のサブピクチャ識別子の値のリストの変化をSPSが許容する場合、pps_subpic_id[i]またはph_subpic_id[i]は、どちらが存在し、ピクチャに適用されるとしても、i番目のサブピクチャのサブピクチャIDを指定する。ピクチャに適用されるPPSとピクチャのピクチャヘッダの両方がサブピクチャ識別子の値のリストを含むとき、ピクチャヘッダ内のリストが優先権を有する。デコーダは、サブピクチャ識別子の値のリストを使用して、サブピクチャレイアウトによる正しい位置に復号サブピクチャを位置付ける。
【0147】
VVCドラフト7では、サブピクチャ識別子の値に関係するPHシンタックス要素は、以下の通りであってもよい。
【0148】
【0149】
VVCドラフト7では、サブピクチャ識別子の値に関係するPHシンタックス要素のセマンティクスは、以下のように指定されてもよい。
- 1に等しいph_subpic_id_signalling_present_flagは、サブピクチャIDマッピングがPH内でシグナリングされることを指定し、0に等しいph_subpic_id_signalling_present_flagは、サブピクチャIDマッピングがPH内でシグナリングされないことを指定する。
- ph_subpic_id_len_minus1プラス1は、シンタクックス要素ph_subpic_id[i]を表すために使用されるビットの数を指定する。
ビットストリーム適合性のために、ph_subpic_id_len_minus1の値がCLVS内のコード化ピクチャによって参照されるすべてのPHに対して等しいことが必要とされる場合がある。
- ph_subpic_id[i]は、i番目のサブピクチャのサブピクチャIDを指定する。ph_subpic_id[i]シンタックス要素の長さは、ph_subpic_id_len_minus1+1ビットである。
【0150】
1つまたは複数の「ソース」VVCビットストリームからのサブピクチャシーケンスの抽出、および抽出されたサブピクチャシーケンスの「宛先」VVCビットストリームへのマージは、以下のように実行され得ることが想定される。
- ソースVVCビットストリームを符号化するとき、各サブピクチャシーケンスのslice_subpic_id値は、すべてのソースVVCビットストリームの中の他のslice_subpic_id値とは異なるように選択されてもよく、slice_subpic_idシンタックス要素の長さは、ソースVVCビットストリーム内で同じであるように選択されてもよい。
- 宛先VVCビットストリームのSPSは、ソースVVCビットストリームのSPSに基づいて認可されるかまたは書き換えられる。SPS認可は、以下のうちの1つまたは複数を含んでもよい。
○各SPS内で示されたサブピクチャレイアウトは、宛先VVCビットストリームにマージされたサブピクチャに基づいて作成される。
○ピクチャの幅および高さは、宛先VVCビットストリームにマージされたサブピクチャに基づいて各SPS内で示される。
- 宛先VVCビットストリームのPPSは、ソースVVCビットストリームのPPSに基づいて認可されるかまたは書き換えられる。PPS認可は、以下のうちの1つまたは複数を含んでもよい。
○ピクチャの幅および高さは、宛先VVCビットストリームにマージされたサブピクチャに基づいて各PPS内で示される。
○宛先VVCビットストリームにマージされたサブピクチャに従って、サブピクチャ識別子の値のリスト、すなわち、両端を含む0からサブピクチャレイアウト内のサブピクチャの数マイナス1の範囲のiに対して、pps_subpic_id[i]を認可する。
- 宛先VVCビットストリームのピクチャヘッダは、ソースVVCビットストリームのそれぞれのピクチャヘッダに基づいて認可されるかまたは書き換えられる。ピクチャヘッダ認可は、以下のうちの1つまたは複数を含んでもよい。
○宛先VVCビットストリームにマージされたサブピクチャに従って、サブピクチャ識別子の値のリスト、すなわち、両端を含む0からサブピクチャレイアウト内のサブピクチャの数マイナス1の範囲のiに対して、ph_subpic_id[i]を認可する。
- 宛先VVCビットストリーム内のコード化ピクチャごとに、ソースVVCビットストリーム内のそれぞれのコード化ピクチャからのサブピクチャは、たとえば、サブピクチャ識別子の値のリストによって示された順序で含まれる。
【0151】
上述されたように、VVCサブピクチャの特徴は、VCL NALユニット(すなわち、スライス)の修正なしにサブピクチャの抽出およびマージを可能にする。したがって、HEVC動き制約タイルセットの抽出およびマージと比較して、VVCサブピクチャの抽出およびマージにおける根本的な違いは、スライスヘッダが書き換えられる必要がないことである。
【0152】
AVCおよびHEVCの抽出器
H.264/AVCおよびHEVCに対してISO/IEC14496-15において指定された抽出器は、参照によりNALユニットを抽出するトラックのコンパクトな形成を可能にする。抽出器は、NALユニットのような構造である。NALユニットのような構造は、NALユニットヘッダおよびNALユニットペイロードのような任意のNALユニットを備えるように指定されてもよいが、(NALユニットに必要とされる)開始コードエミュレーション防止は、NALユニットのような構造において従われないかもしれない。HEVCの場合、抽出器は1つまたは複数のコンストラクタを含む。サンプルコンストラクタは、参照により、別のトラックのサンプルからNALユニットデータを抽出する。インラインコンストラクタは、NALユニットデータを含む。インラインという用語は、たとえば、データユニットに関して、シンタックス構造を含むことが、(参照により、またはデータポインタを介してデータユニットを含むこととは対照的に)データユニットを含むかまたは搬送することを示すように定義されてもよい。抽出器がそれを必要とするファイルリーダによって処理されるとき、抽出器は、それらの出現順序で含まれるコンストラクタを転換するときに得られたバイトによって論理的に置き換えられる。ネストされた抽出は禁止される場合があり、たとえば、サンプルコンストラクタによって参照されるバイトは抽出器を含んではならず、抽出器は、直接的または間接的に別の抽出器を参照してはならない。抽出器は、現在トラック、またはタイプ‘scal’のトラック参照によって抽出器が存在するトラックにリンクされた別のトラックからデータを抽出するために1つまたは複数のコンストラクタを含んでもよい。転換された抽出器のバイトは、1つまたは複数のNALユニット全体を表すことができる。転換された抽出器は、有効長のフィールドおよびNALユニットヘッダから始まる。サンプルコンストラクタのバイトは、示された‘scal’トラック参照を介して参照されたトラック内の単一の識別されたサンプルからのみコピーされる。整列は、復号時間上で、すなわち、時間-サンプルテーブルのみを使用して、サンプル番号でカウントされたオフセットがその後に続く。抽出器はメディアレベルの概念であり、したがって、任意の編集リストが考慮される前に宛先トラックに適用される。(しかしながら、通常、2つのトラック内の編集リストは同一であることが予想される。)
【0153】
以下のシンタックスが使用されてもよい:
class aligned(8) Extractor() {
NALUnitHeader();
do {
unsigned int(8) constructor_type;
if(constructor_type==0)
SampleConstructor();
else if(constructor_type==2)
InlineConstructor();
} while(!EndOfNALUnit())
}
【0154】
セマンティクスは以下のように定義されてもよい。
- NALUnitHeader():HEVC NALユニットの最初の2バイト。特定のnal_unit_type値は抽出器を示す、たとえば、49に等しいnal_unit_type。
- constructor_typeは使用されているコンストラクタを指定する。
- EndOfNALUnit()は、この抽出器内でより多くのデータが続くときに0(偽)を返す関数であり、そうでない場合、それは1(真)を返す。
【0155】
サンプルコンストラクタ(SampleConstructor)は、以下のシンタックスを有してもよい:
class aligned(8) SampleConstructor() {
unsigned int(8) track_ref_index;
signed int(8) sample_offset;
unsigned int((lengthSizeMinusOne+1)*8)
data_offset;
unsigned int((lengthSizeMinusOne+1)*8)
data_length;
}
【0156】
track_ref_indexは、それからデータが抽出されるソーストラックを識別する。track_ref_indexは、タイプ‘scal’のトラック参照のインデックスである。最初のトラック参照はインデックス値1を有し、値0は予約される。
【0157】
それからデータが抽出されるそのトラック内のサンプルは、時間的に整列するか、またはメディア復号タイムラインで、すなわち、時間-サンプルテーブルのみを使用して最も近く先行し、sample_offsetによって指定されたオフセットによって抽出器を含むサンプルと調整される。sample_offsetは、情報源として使用されるべきリンクされたトラック内のサンプルの相対インデックスを与える。サンプル0(ゼロ)は、抽出器を含むサンプルの復号時間と比較して同じか、または最も近く先行する復号時間を有するサンプルであり、サンプル1(ワン)は次のサンプルであり、サンプル-1(マイナス1)は前のサンプルであり、以下同様である。
data_offset:コピーする参照サンプル内の最初のバイトのオフセット。抽出がそのサンプル内のデータの最初のバイトから始まる場合、オフセットは値0を取る。
data_length:コピーするバイトの数。
【0158】
インラインコンストラクタのシンタックスは、以下のように指定されてもよい:
class aligned(8) InlineConstructor() {
unsigned int(8) length;
unsigned int(8) inline_data[length];
}
length:このフィールドに続くInlineConstructorに属するバイトの数。
inline_data:インラインコンストラクタを転換したときに返されるデータバイト。
【0159】
HEVCスライスセグメントヘッダは、(スライスセグメントヘッダを直接含むことができる)インラインコンストラクタを介して抽出器トラックによって書き換えることができる。
【0160】
HEVCタイルベーストラックおよびタイルトラック
HEVCタイルベーストラックは、参照されたHEVCタイルトラックからのサンプルデータを暗黙的に結合することによってビットストリームを表す。HEVCでは、タイルベーストラックからタイルトラックを参照するために‘sabt’トラック参照が使用され、タイル順序付けは、‘sabt’トラック参照によって含まれるタイルトラックの順序によって示される。その上、HEVCでは、タイルトラックは、タイルベーストラックに対する‘tbas’トラック参照を有する。
【0161】
HEVCタイルトラックのサンプルは、スライスセグメントを含む。HEVCタイルトラックのサンプルは、動き制約タイルセットシーケンスを含んでもよい。
【0162】
(ISOBMFF、MPEG N18856におけるVVCの搬送に関する作業ドラフト内の)VVCサブピクチャトラックグループ
ISOBMFF準拠ファイル内のVVCの格納は、ISO/IEC14496-15における新しい条項として指定されるように計画されている。本文書を書いている時点で、ISOBMFF、MPEG N18856におけるVVCの搬送に関する作業ドラフト(WD)は入手可能である。WDは、サブピクチャトラックグループの従属条項を含み、それは調査および議論のためにWDに含まれた。次の段落は特徴を要約し、WDからの引用を含む。
【0163】
サブピクチャトラックは、正規のVVCサンプル項目を使用する。いくつかのサブピクチャトラックからマージされたビットストリームの適合性を示すレベル情報を提供するトラックグループ化が定義される。トラックグループ化は、復元された「宛先」ビットストリームのためのパラメータセット生成を容易にするように指導を与える。
【0164】
一緒に復号されるべきグループ内のコード化サブピクチャは交換可能である、すなわち、プレーヤは、同じレベルの寄与を有するサンプル式サブピクチャのグループからいくつかのアクチブトラックを選択し、サンプルグループタイプ‘acgl’(アクティブコモングループレベル)は、組合せ規則、および一緒に復号されたときに得られた組合せのlevel_idcを示す。
【0165】
一緒に復号されるように選択された、異なる特性、たとえば、異なる解像度を有するコード化サブピクチャが存在するとき、サンプルグループタイプ‘amgl’(アクティブマルチグループレベル)は、組合せ規則、および一緒に復号されたときに得られた組合せのlevel_idcを示す。
【0166】
シンタックスは以下のように指定されてもよい。
aligned(8) class TrackGroupTypeBox(unsigned int(32) track_group_type) extends FullBox(track_group_type,version=0,flags=0)
{
unsigned int(32) track_group_id;
if track_group_type==‘acgl’ {
unsigned int(32) level_idc;
unsigned int(32) num_active_tracks;
}
if track_group_type==‘amgl’ {
unsigned int(32) level_idc;
unsigned int(32) track_subgroup_id;
unsigned int(32) num_subgroup_ids;
for (i = 0;i<num_subgroups_ids;i++)
{
unsigned int(32) included_subgroup_id[i];
unsigned int(32) num_active_tracks[i];
}
}
}
【0167】
セマンティクスは以下のように指定されてもよい。
track_group_typeはグループ化タイプを示す。
track_group_typeが‘acgl’に等しいとき、これは、このトラックが同じ値のtrack_group_idを有するトラックのグループに属することを示す。track_group_typeが‘amgl’に等しいとき、これは、このトラックが同じ値のtrack_group_idを有するトラックのグループおよびtrack_subgroup_idの値を有するサブグループに属することを示す。
num_active_tracks
num_active_tracks個のトラックのサブセットが同じ値のtrack_group_idを有するグループから選択されたとき、track_group_idを有するグループの再生は、level_idcのレベルに対応する。
num_subgroup_ids
個別のサブグループの数であり、各々は同じ値のtrack_subgroup_idによって識別され、異なるサブグループは異なる値のtrack_subgroup_idによって識別され、それに対して、一組のサブピクチャトラックが一緒に復号されたときにlevel_idcの値が示される。
included_track_subgroup_id[i]
0からnum_subgroup_idsまでの範囲のiに対して、included_track_subgroup_id[i]に等しいtrack_subgroup_idを有するトラックのそれぞれのサブグループから選択されたnum_active_tracks[i]個のトラックから構成される、同じ値のtrack_group_idを有するトラックのサブグループを再生するとき、グループの再生はlevel_idcのレベルに対応する。
【0168】
VVCサブピクチャトラックの格納およびそれらのマージを可能にするために、抽出器トラックなどの手法は、以下の欠点または問題を有する。
- 抽出器のような手法は、バイトカウントオーバーヘッドにおいてコストがかかる。抽出器は各サンプルに含まれるので、それらはバイトカウントオーバーヘッドの観点から比較的高いコストを被る。
- 抽出器のような手法は、スライスヘッダの書き換えなどのNALユニットの任意の修正を可能にし、VVCサブピクチャのマージでは、VCL NALユニットの変化が必要とされないので、不必要に柔軟である。
【0169】
HEVCタイルベーストラックおよび参照HEVCタイルトラックからビットストリームを復元するとき、スライスセグメントヘッダは、HEVCタイルベーストラックを転換するとき書き換えられない。したがって、HEVCタイルベーストラックは、ソースビットストリームを表すことのみができ、それらのサブセットを表すことができない。したがって、VVCサブピクチャトラックの格納およびそれらのマージを可能にするために、HEVCファイルフォーマットのベーストラックおよびタイルトラックを使用する手法は、
- 2つ以上のソースVVCビットストリームのサブピクチャのサブセットをプレーヤに選択させるには柔軟でなく、
- サブピクチャレイアウトにおいて時間ともに変化する変更を有するには柔軟でない。
【0170】
WD(MPEG N18856)におけるVVCサブピクチャトラックグループ手法:
- ソースVVCビットストリームを構文解析し、それらの一部(パラメータセット、PH)を復号するようにクライアントに要求する。構文解析および復号は、以下を含む比較的複雑な動作であり得る。
○RBSP(ローバイトシーケンスペイロード)を取得するためのNALユニットからの開始コードエミュレーション防止バイトの削除
○各スライスヘッダからピクチャヘッダへの暗黙参照、ならびに各スライスヘッダからPPS、SPS、およびVPS(ビデオパラメータセット)への明示参照、ならびに異なるタイプのパラメータセット間の明示参照の記録参照されたシンタックス構造のシンタックス要素値に基づく構文解析および復号。
- 宛先VVCビットストリームを「構成」し、その一部(パラメータセット、PH)を符号化するようにクライアントに要求する。「構成」および符号化は、以下を含む比較的複雑な動作であり得る。
○マージのために選択されたソースサブピクチャトラックに基づくパラメータセットおよびピクチャヘッダの書き換え
○各スライスヘッダからピクチャヘッダへの暗黙参照、ならびに各スライドヘッダからPPS、SPS、およびVPSへの明示参照、ならびに異なるタイプのパラメータセット間の明示参照の記録。参照されたシンタックス構造のシンタックス要素値に基づく符号化。
○作成されたRBSPからNALユニットを取得するための開始コードエミュレーション防止バイトの挿入
- サブピクチャトラックが他のサブピクチャトラックなしに再生される対象ではないときに冗長的にパラメータセットおよびピクチャヘッドを含むように各サブピクチャトラックに要求する。
【0171】
本実施形態は、コンテナファイル内のVVCサブピクチャの格納のための改善された解決策を提供する。コンテナファイルは、ISOBMFF準拠ファイルであり得る。
【0172】
ビットストリームの符号化では、2つ以上のサブピクチャトラックがコンテナファイルに書き込まれる。一実施形態によれば、書込みは、2つ以上のサブピクチャトラック(または同様)を含むコンテナファイル内のサンプルグループのインスタンスを生成するファイルライタまたは同様のエンティティによって実行される。加えて、ベーストラックがコンテナファイルに書き込まれ、前記ベーストラックはビデオビットストリームに転換される対象となる。ベーストラックでは、サブピクチャのレイアウトが示される。さらに、サンプルグループ記述項目がコンテナファイルに書き込まれる。サンプルグループ記述項目は、サブピクチャのレイアウト内のサブピクチャ位置ごとに第1のサブピクチャトラックまたはサブピクチャトラックのグループを示す。サンプルグループ記述項目がビデオビットストリームを復元するために使用される対象となるベーストラックのサンプルもコンテナファイル内に示される。
【0173】
ビットストリームの復号では、コンテナファイルのベーストラックからサブピクチャのレイアウトが構文解析される。加えて、サンプルグループ記述項目は、コンテナファイルから構文解析されたサブピクチャのレイアウト内のサブピクチャ位置ごとに第1のサブピクチャトラックまたはサブピクチャトラックのグループを示す。第2のサブピクチャトラックは、サンプルグループ記述項目がサブピクチャトラックのグループを示すときにサブピクチャトラックのグループから選択される。さらに、サンプルグループ記述項目がビデオビットストリームを復元するために使用される対象となるベーストラックのサンプルのセットがコンテナファイルから構文解析される。一実施形態によれば、ファイルリーダまたは同様のエンティティは、2つ以上のサブピクチャトラック(または同様)を含むコンテナファイルからサンプルグループのインスタンスを構文解析する。最後に、サンプルのセットに対応するビデオビットストリームのコード化ピクチャは、サブピクチャのレイアウトのサブピクチャ位置ごとに第1のサブピクチャトラックまたは第2のサブピクチャトラックの時間整列サンプルを含めることにより、コンテナファイルから復元される。
【0174】
第1のサブピクチャトラックは、それぞれのサブピクチャ位置向けのサブピクチャシーケンスを含み、サブピクチャトラックのグループの中の任意のトラックは、それぞれのサブピクチャ位置向けの有効なサブピクチャシーケンスを含む。VVCサブピクチャトラックは同じサブピクチャ識別子(ID)を有するサブピクチャのシーケンスを含むことが定義されてもよい。第1の代替では、VVCサブピクチャトラックは1つまたは複数の時間的に連結されたサブピクチャのシーケンスを含み、それらは異なるサブピクチャ識別子を有する場合があることが定義されてもよい。サブピクチャ識別子が変わるときに復号順序で最初のサブピクチャは、CLVSSピクチャのサブピクチャであってもよい。第2の代替では、VVCサブピクチャトラックは1つまたは複数のサブピクチャのシーケンスを含むことが定義されてもよい。2つ以上のサブピクチャのシーケンスが存在するとき、各シーケンスのサブピクチャは空間的に隣接し、単一のサブピクチャのように扱われてもよい。第1の代替および第2の代替を第3の代替に結合することも可能である。
【0175】
本実施形態を記載するとき、「ベーストラック」および「VVCベーストラック」という用語は同じ意味で使用される。同様に、「サブピクチャトラック」および「VVCサブピクチャトラック」という用語は同じ意味で使用される。一実施形態がVVCベーストラックおよび/またはVVCサブピクチャトラックを参照して記載される場合でも、その実施形態はVVCに限定されず、VVCサブピクチャトラックと均等または同等な概念を有する任意のビデオコーディング方式に適用される。
【0176】
本解決策はまた、次の段落においてさらに指定される新しいタイプのサンプルグループを提供する。以後、新しいタイプのサンプルグループは、(「サブピクチャ順序」を表す)4文字コード‘spor’を有するが、任意の他の4文字コードが同様に使用される可能性があることが理解される必要がある。
【0177】
‘spor’サンプルグループは、VVCベーストラック内で使用される対象となり、VVCベーストラックは、ファイルリーダまたは同様のエンティティがVVC宛先ビットストリームに転換する。記載されるように、VVCベーストラックはVVCサブピクチャトラックを参照し、VVCサブピクチャトラックからVVC宛先ビットストリームを導出することができる。
【0178】
‘spor’サンプルグループの各サンプルグループ記述項目は、復号順序でサブピクチャを示し、サブピクチャは、特定のタイプのトラック参照のインデックスで示される。以後、タイプ‘spor’のトラック参照が使用されるが、任意の他の4文字コードが同様に使用される可能性があることが理解される必要がある。
【0179】
‘spor’サンプルグループ記述項目のシンタックスは、以下のように指定されてもよい。
aligned(8) class VvcSubPicOrderEntry() extends VisualSampleGroupEntry(‘spor’)
{
unsigned int(16) num_subpics;
for (i=0;i<num_subpics;i++)
unsigned int(16) subp_track_ref_idx;
}
【0180】
subp_track_ref_idx値のループは、復号順序でタイプ‘spor’のトラック参照のインデックスを指定する。他の転換では、サンプルグループ記述項目内で与えられた順序のトラック参照は、有効なVVC宛先ビットストリームをもたらす。
【0181】
別の実施形態では、‘spor’サンプルグループの各サンプルグループ記述項目は、復号順序でサブピクチャを示し、サブピクチャは、トラックの識別子(track_ID)またはトラックグループの識別子(track_group_id)で示される。
【0182】
別の実施形態では、‘spor’サンプルグループの各サンプルグループ記述項目は、復号順序でサブピクチャを示し、サブピクチャは、特定のまたは示されたタイプのエンティティグループのインデックスおよび指示または推論された識別子(group_id)で示される。エンティティグループ識別子は、たとえば、VVCベーストラックのtrack_ID値が最初に列挙されたentity_idとして現れるエンティティグループのgroup_idであるように推論されてもよい。エンティティグループは、VVCサブピクチャトラックのtrack_ID値および/またはVVCサブピクチャ画像アイテムのitem_ID値を(entity_id値として)含んでもよい。プレーヤまたは同様は、グループのエンティティのうちの1つを選択する(もしあれば、VVCベーストラックを示すエンティティを除外する)ことにより、参照をエンティティグループに対するインデックスに転換することができる。
【0183】
別の実施形態では、‘spor’サンプルグループの各サンプルグループ記述項目は、復号順序でサブピクチャを示し、サブピクチャは、特定のタイプのトラック参照のインデックスで示される。トラック参照は、トラックの識別子(track_ID)、特定のタイプのトラックグループの識別子(track_group_id)、または特定のタイプのエンティティグループの識別子(group_id)であってもよい。トラック参照がトラックグループの識別子であるとき、プレーヤまたは同様は、トラックグループ内のトラックのうちの1つを選択することによって参照を転換する。トラック参照がエンティティグループの識別子であるとき、プレーヤまたは同様は、エンティティグループ内のエンティティのうちの1つを選択することによって参照を転換し、エンティティは、たとえば、画像アイテムであってもよい。
【0184】
‘spor’サンプルグループ記述項目からのサンプルと画像アイテムの両方に対する参照を可能にする実施形態は、たとえば、静止背景画像アイテムのサブピクチャおよび動的に変化する全景サブピクチャを組み合わせるために使用されてもよい。そのような組合せから恩恵を受けることができる多くの用途および使用事例が存在してもよい。たとえば、2Dビデオコンテンツを有するムービースクリーンまたはテレビジョンセットは、360°静止画像背景に組み込まれる場合があり、全方向ビューイングは、たとえば、ヘッドマウントディスプレイで起こる場合がある。別の例では、シネマグラフまたは同様は、シーンの一部のみが動的であり、残りのエリアが静的であるように構成される。
【0185】
一実施形態では、サンプルグループ記述項目はさらに、以下のうちの1つまたは複数を含む。
- サブピクチャIDがVVCベーストラックに含まれるSPS NALユニット内で搬送されるかどうかの第1の指示
- サブピクチャIDがVVCベーストラックに含まれるPPS NALユニット内で搬送されるがどうかの第2の指示
- サブピクチャIDがVVCベーストラックに含まれるピクチャヘッダ(PH)NALユニット内で搬送されるかどうかの(以下のシンタックスでph_subpic_id_flagと呼ばれる)第3の指示
【0186】
一実施形態では、サブピクチャIDがVVCベーストラックに含まれるSPS NALユニット内で搬送されることを第1の指示が示す場合、サンプルグループ記述項目は、以下のうちの1つまたは複数を含む。
- このサンプルグループ記述項目にマッピングされたサンプルに適用されるSPS NALユニット
- このサンプルグループ記述項目にマッピングされたサンプルに適用されるSPS RBSP
- VVCベーストラック内で提供されるSPS内のそれぞれの識別子の値(すなわち、ドラフトVVC規格におけるsps_seq_parameter_set_id)を参照するSPS識別子の値、SPSはこのサンプルグループ記述項目にマッピングされたサンプルに適用される
- VVCベーストラックのサンプル項目内で提供されるSPS NALユニットの中のインデックス、インデックスはこのサンプルグループ記述項目にマッピングされたサンプルに適用されるSPS NALユニットを指し示す
- VVCベーストラックのサンプル項目内で提供される(任意のタイプの)NALユニットの中のインデックス、インデックスはこのサンプルグループ記述項目にマッピングされたサンプルに適用されるSPS NALユニットを指し示す
- SPS RBSP内のサブピクチャ識別子(すなわち、sps_subpic_id[i])シンタックス要素の(ビット単位の)長さ
- 参照されるかまたは含まれるSPS NALユニットまたはSPS RBSP内の最初のサブピクチャ識別子シンタックス要素(すなわち、sps_subpic_id[0])のビット位置
- 開始コードエミュレーション防止バイトがサブピクチャ識別子シンタックス要素(すなわち、sps_subpic_id[i])の前または中に存在するかどうかを示すフラグ。このフラグは、代替として、SPS NALユニット内のiの任意の有効値を有するsps_subpic_id[i]のビット位置がSPS RBSP内のそれと異なるかどうかを示すために表現されてもよい。
【0187】
一実施形態では、サブピクチャIDがVVCベーストラックに含まれるPPS NALユニット内で搬送されることを第2の指示が示す場合、サンプルグループ記述項目は、以下のうちの1つまたは複数を含む。
- このサンプルグループ記述項目にマッピングされたサンプルに適用されるPPS NALユニット
- このサンプルグループ記述項目にマッピングされたサンプルに適用されるPPS RBSP
- VVCベーストラック内で提供されるPPS内のそれぞれの識別子の値(すなわち、ドラフトVVC規格におけるpps_pic_parameter_set_id)を参照するPPS識別子の値、PPSはこのサンプルグループ記述項目にマッピングされたサンプルに適用される
- VVCベーストラックのサンプル項目内で提供されるPPS NALユニットの中のインデックス、インデックスはこのサンプルグループ記述項目にマッピングされたサンプルに適用されるPPS NALユニットを指し示す
- VVCベーストラックのサンプル項目内で提供される(任意のタイプの)NALユニットの中のインデックス、インデックスはこのサンプルグループ記述項目にマッピングされたサンプルに適用されるPPS NALユニットを指し示す
- PPS RBSP内のサブピクチャ識別子(すなわち、pps_subpic_id[i])シンタックス要素の(ビット単位の)長さ
- 参照されるかまたは含まれるPPS NALユニットまたはPPS RBSP内の最初のサブピクチャ識別子シンタックス要素(すなわち、pps_subpic_id[0])のビット位置
- 開始コードエミュレーション防止バイトがサブピクチャ識別子シンタックス要素(すなわち、pps_subpic_id[i])の前または中に存在するかどうかを示すフラグ。このフラグは、代替として、PPS NALユニット内のiの任意の有効値を有するpps_subpic_id[i]のビット位置がPPS RBSP内のそれと異なるかどうかを示すために表現されてもよい。
【0188】
一実施形態では、サブピクチャIDがVVCベーストラックに含まれるピクチャヘッダ(PH)NALユニット内で搬送されることを第3の指示が示す場合、サンプルグループ記述項目は、以下のうちの1つまたは複数を含む。
- (以下のシンタックスにおいてph_subpic_id_len_minus1と呼ばれる)PH RBSP内のサブピクチャ識別子(すなわち、ph_subpic_id[i])シンタックス要素の(ビット単位の)長さ
- (以下のシンタックスにおいてph_subpic_id_bit_posと呼ばれる)PH RBSP内の最初のサブピクチャ識別子シンタックス要素(すなわち、ph_subpic_id[0])のビット位置
- 開始コードエミュレーション防止バイトがサブピクチャ識別子シンタックス要素(すなわち、ph_subpic_id[i])の前または中に存在するかどうかを示す(以下のシンタックスにおいてph_start_code_emul_flagと呼ばれる)フラグ。このフラグは、代替として、PH NALユニット内のiの任意の有効値を有するph_subpic_id[i]のビット位置がPH RBSP内のそれと異なるかどうかを示すために表現されてもよい。
【0189】
第3の指示に関係する例示的な実施形態では、‘spor’サンプルグループ記述項目のシンタックスは、以下のように指定されてもよい。
aligned(8) class VvcSubPicOrderEntry() extends VisualSampleGroupEntry(’spor’)
{
unsigned int(16) num_subpics;
for (i=0;i<num_subpics;i++)
unsigned int(16) subp_track_ref_idx;
unsigned int(1) ph_subpic_id_flag;
if (ph_subpic_id_flag) {
unsigned int(1) ph_start_code_emul_flag;
unsigned int(4) ph_subpic_id_len_minus1;
unsigned int(10) ph_subpic_id_bit_pos;
} else
bit(15) reserved=0;
}
【0190】
第1の指示および/または第2の指示に関係するシンタックスは、上記のシンタックスと同様に実現されてもよい。シンタックスは、上記のシンタックスと同様の第1の指示、第2の指示、および第3の指示のうちの1つまたは複数に関係する態様をカバーすることができる。
【0191】
以下では、VVCサブピクチャトラックおよびVVCベーストラックが、より詳細に説明される。
【0192】
VVCサブピクチャトラックのトラックグループ
一実施形態によれば、サブピクチャトラックのグループは、コンテナファイル内のトラックグループとしてファイルライタもしくは同様のエンティティによって示され、かつ/またはコンテナ内のトラックグループからファイルリーダもしくは同様のエンティティによって構文解析される。たとえば、サブピクチャトラックのグループは、VVCサブピクチャトラックを収集する‘alte’トラックグループであってもよい。これらのVVCサブピクチャトラックから、任意のトラックは、VVCベーストラックを転換するために交換可能に選択することができる。同じ‘alte’トラックグループ内のトラックは、同じ幅、高さ、およびサブピクチャ境界特性を有する。
【0193】
‘alte’4文字コードを有するトラックグループが本実施形態によって参照されるが、実施形態は、概して、トラックグループ用の任意の4文字コードに適用される。
【0194】
VVCサブピクチャトラック用のサンプル項目
VVCサブピクチャトラックが他のVVCサブピクチャトラックなしに消費されるのに適している場合、正規のVVCサンプル項目が使用されてもよい(すなわち、MPEG N18856による‘vvc1’または‘vvi1’)。
【0195】
一実施形態によれば、特定のサンプル項目タイプ、本明細書では‘vvs1’(しかし、実施形態は、概して、任意の4文字コードに適用される)がVVCサブピクチャトラックに使用される。特定のサンプル項目タイプが使用されるとき、VPS、DPS、SPS、PPS、AUD(アクセスユニットデリミタ)、PH、EOS(シーケンス終了)、およびEOB(ビットストリーム終了)のNALユニットは、サンプル項目とサンプルの両方に存在しないことが指定されてもよい。
【0196】
一実施形態によれば、VVCサブピクチャトラックのサンプル項目は、
- トラックのサンプル内に存在するすべてのスライス内でslice_subpic_idの値に等しいことが必要とされ得るサブピクチャID
- サブピクチャ位置ID
のうちの1つまたは複数を含む。VVCサブピクチャトラックが同じサブピクチャ位置IDの値を有するとき、それらは同じ元のコンテンツを表し、同じ幅および高さを有する。
【0197】
一実施形態によれば、2つ以上のサブピクチャを有するVVCサブピクチャトラックのサンプル項目は、
- トラックのサンプル内に存在するそれぞれのサブピクチャのスライス内でslice_subpic_idの値に等しいことが必要とされ得るサブピクチャID
- サブピクチャ位置ID
のうちの1つまたは複数を含む。VVCサブピクチャトラックが同じサブピクチャ位置IDの値を有するとき、それらは同じ元のコンテンツを表し、同じ幅および高さを有する。
【0198】
たとえば、VVCサブピクチャトラックのサンプル項目は、本明細書ではサブピクチャ特性ブロック(SubPicPropertiesBox)と呼ばれる特定のボックスを含んでもよく、それは上述されたシンタックス要素を搬送する。
【0199】
VVCベーストラック
一実施形態によれば、VVCベーストラックは、正規のVVCサンプル項目タイプ(すなわち、MPEG N18856による‘vvc1’または‘vvi1’)を有する。トラック内に‘subp’トラック参照を含めることにより、ファイルライタまたは同様のエンティティは、トラックが正規の自己完結型VVCトラックではなくVVCベーストラックであることを示すことができる。別の実施形態では、特定のサンプル項目タイプ(たとえば、‘vvcb’)は、トラックがVVCベーストラックであることを示すように指定されてもよい。
【0200】
‘vvcb’4文字コードを有するサンプル項目タイプが実施形態によって参照されるが、実施形態は、概して、VVCベーストラックを示すために、サンプル項目タイプに任意の4文字コードを適用する。
【0201】
一実施形態によれば、VVCベーストラックのサンプルは、VCL NALユニットを含まない。別の実施形態によれば、VVCベーストラックのサンプルは、VCL NALユニットを含むことが許容される。ファイルライタまたは同様のエンティティは、たとえば、宛先ビットストリーム内に常に存在するように意図されたVVCベーストラック内のサブピクチャシーケンスのVCL NALユニットを含んでもよい。
【0202】
一実施形態によれば、転換されたVVCベーストラック(すなわち、宛先VVCビットストリーム)に適用される(VPS、DPS、SPS、および/またはPPSのNALユニットなどの)パラメータセットのインスタンスは、たとえば、ファイルライタにより、VVCベーストラックのサンプル項目またはサンプルに含められる。
【0203】
上述されたいくつかの実施形態により、‘spor’サンプルグループ記述項目からサンプルとサンプル項目の両方を参照することが可能になる。一実施形態によれば、VVCサブピクチャトラックの1つまたは複数のサンプルと1つまたは複数のVVCサブピクチャアイテムの両方がVVCベーストラックのサンプルを転換する際に使用されるように、サンプルグループ記述項目が転換されるとき、VVCベーストラックのサンプルから転換されたコード化ピクチャが混合NALユニットタイプを含むことを示すために、NAL1に等しいmixed_nalu_types_in_pic_flagを有するPPSなどのピクチャレベルシンタックスが使用される。一実施形態では、フィルタライタまたは同様は、サンプルと画像アイテムの両方を参照するサンプルグループ記述項目にマッピングされたVVCベーストラックのすべてのサンプル内の混合NALユニットタイプを示す、PPSなどのピクチャレベルシンタックスを含み、かつ/または参照する。一実施形態では、サブピクチャ画像アイテムのピクチャ順序カウントを示すシンタックス要素(たとえば、ドラフトVVC規格におけるslice_pic_order_cnt_lsb)は、選択されたVVCサブピクチャトラック内のそれぞれのシンタックス要素の値と等しいように(VVCベーストラックのサンプルを転換する一部として)書き換えられる。
【0204】
一実施形態によれば、もしあれば、転換されたVVCベーストラック(すなわち、宛先VVCビットストリーム)に適用されるEOBおよびEOB NALユニットのインスタンスは、VVCベーストラックのサンプルに含まれる。それらは、同じサンプル内の任意の他のNALユニットに引き継がれないことが必要とされる場合がある。
【0205】
本実施形態は、以下の例を用いてさらに説明される。
【0206】
混合品質サブピクチャのマージ
図1は、ビューポート依存全方向ビデオストリーミングにVVCサブピクチャトラックがどのように使用されるかの一例である。本明細書では、「全方向」という用語は、コンテンツをレンダリングするデバイスの視界よりも大きい空間的広がりを有することができるメディアコンテンツを指すことができる。全方向コンテンツは、たとえば、水平次元で実質的に360°および垂直次元で実質的に180°をカバーすることができるが、全方向は、水平方向に360度よりも小さいビューおよび/または垂直方向に180度よりも小さいビューをカバーするコンテンツを指すこともできる。
【0207】
全方向画像は、正距円筒図法(ERP)を使用して2次元画像平面にマッピングされた球体によって表すことができる。この場合、水平座標は経度に相当すると見なされてもよく、垂直座標は緯度に相当すると見なされてもよく、変換またはスケーリングは適用されない。ERP画像は、複数のレンズおよびセンサを有するカメラアレイまたはカメラデバイスの魚眼画像などの一組の入力画像から形成されてもよく、それらは球面画像に縫い付けられる。球面画像はさらに、(上面および底面がない)円筒に投影される。円筒は広げられて、2次元投影フレームを形成する。実際には、提示されたステップのうちの1つまたは複数はマージされてもよく、たとえば、入力画像は、球体への中間投影なしに円筒に直接投影されてもよい。正距円筒図法用の投影構造は、単一の表面を備える円筒であると見なされてもよい。
【0208】
一般に、全方向コンテンツは、多面体(すなわち、平坦な多角形の面、まっすぐな縁部、および鋭角なコーナーまたは頂点を含む3次元立体オブジェクト、たとえば立方体または錐体)、(正距円筒図法を用いて上述された円筒に球面画像を投影することによる)円筒、(最初に球体に投影することなく直接)円筒、コーンなどの、異なるタイプの立体幾何学的構造にマッピングされ、2次元画像面に剥がすことができる。
【0209】
一方、ビューポートは、全方向画像または表示およびユーザによる視聴に適したビデオの領域として定義されてもよい。(単にビューポートと呼ばれる場合がある)現在ビューポートは、現在表示されており、したがってユーザによって視聴可能な球面ビデオの一部として定義されてもよい。任意の時点で、ヘッドマウントディスプレイ(HMD)上のアプリケーションによってレンダリングされるビデオは、ビューポートと呼ばれる360度ビデオの一部分をレンダリングする。
【0210】
ビューポート依存ビデオは、ビューポート内に存在する領域が(たとえば、高品質でビューポートを符号化することにより)全方向コンテンツの残りとは異なるように扱われるコンテンツを指す。そのようなコンテンツは、ビューポートの向きに基づいて受信デバイスに送信デバイスによって提供することができる。
【0211】
領域的パッキング情報は、ビットストリーム内またはビットストリームに沿ったメタデータとして符号化されてもよい。たとえば、パッキング情報は、(たとえば、ERPなどの指示された投影フォーマットと一致する)事前定義または指示されたソースフォーマットと、パックフレームフォーマット(たとえば、トラックによって表された復号されたピクチャまたはサブピクチャ)との間に領域的マッピングを含んでもよい。領域的パッキング情報は、どの球面領域がトラックによってカバーされるかを指示するために、VVCサブピクチャトラック内に(たとえば、ファイルライタによって)含められてもよく、どの球面領域がトラックによってカバーされているかを判断するために、VVCサブピクチャトラックから(たとえば、プレーヤによって)構文解析されてもよい。
【0212】
領域的パッキング情報は、トラックグループまたはエンティティグループからVVCサブピクチャトラックを選択するための様々な実施形態において使用されてもよい。たとえば、VVCサブピクチャトラックによってカバーされる球面領域は、領域的パッキング情報から判断されてもよく、球面領域がビューポートと交差するとき、VVCサブピクチャトラックは、トラックグループまたはエンティティグループから選択されてもよい。
【0213】
長方形領域的パッキングメタデータが次に記載される。領域ごとに、メタデータは、投影されたピクチャ内の長方形、復号ピクチャ内のそれぞれの長方形、ならびに90度、180度、もしくは270度による回転および/または水平ミラーリングおよび/または垂直ミラーリングの任意選択の変形を定義する。長方形は、たとえば、左上隅および右下隅の位置によって示されてもよい。マッピングは再サンプリングを含んでもよい。それぞれの長方形のサイズは、投影および復号されたピクチャにおいて異なってもよいので、メカニズムは領域的再サンプリングを推論する。
【0214】
符号化において、ビューポート依存全方向ビデオストリーミングにVVCサブピクチャトラックが使用されるとき、正距円筒図法(ERP)のピクチャ用のサブピクチャの形成において4×2のタイルグリッドを使用することができる。同じソースコンテンツに由来する2つのVVCビットストリームは、異なるピクチャ品質およびビットレートで符号化される。
【0215】
VVCサブピクチャトラックを作成するために、各サブピクチャシーケンスは、1つのVVCサブピクチャトラックに含まれてもよい。同じコンテンツを表す、すなわち、ERPピクチャ内の同じ位置を有するVVCサブピクチャトラックの各ペアは、同じ‘alte’トラックグループのメンバであるように示される。track_group_idの値g1、…、g8は一意に選択され、いかなるtrack_IDの値とも等しくない。
【0216】
VVCベーストラックは、track_group_idの値g1、…、g8を列挙するタイプ‘subp’のトラック参照を含むように作成される。track_group_idの値g1、…、g8のすべてが列挙されてもよい。VVCベーストラックはまた、‘subp’トラック参照へのインデックスのリスト、すなわち、値1、…、8を含み、トラックのすべてのサンプルに適用されるデフォルトであるように示されてもよい単一のサンプルグループ記述項目を有する‘spor’サンプルグループを含んでもよい。
【0217】
プレーヤの動作では、プレーヤは、たとえば、同じ‘alte’トラックグループの中の各サブピクチャトラックが、いくつかの条件(たとえば、視聴の向き、ネットワーク帯域幅)に基づいて受信される品質および/またはビットレートを選択することができる。この例では、プレーヤは、特定の品質のVVCサブピクチャトラック1、2、5、および6、ならびに別の品質のVVCサブピクチャトラック3、4、7、および8を受信する。VVCベーストラックは、単一のVVCデコーダを用いて復号することができるVVCビットストリームを復元するために使用される。
【0218】
混合解像度サブピクチャのマージ
幅および/または高さにおける特定の解像度またはピクセルカウントを参照して、以下で別の例が説明される。解像度およびピクセルカウントは例として与えられ、例示的な実施形態は、解像度およびピクセルカウントの任意の選択に同様に適用される可能性があることが理解される必要がある。
【0219】
1536×1536のサンプルの立方体面を有するキューブマップ解像度は、サンプリング密度に関して6144×3072のERPとほぼ均等であると見なされる可能性がある。提示された配置では、キューブマップから面サイズが1536×1536の高解像度タイルが抽出され、半球をカバーすると見なされる可能性がある。高解像度ビットストリームと比較して4分の1の解像度を有する残りのタイルがキューブマップから抽出されてもよい。この解像度は、クワッドHD(2560×1440)表示パネルを有するヘッドマウントディスプレイの能力を満たすように現れる。提示された方式はまた、たとえば、HMDベースの視聴に対する頭部の動きによって引き起こされる視聴の向きの変化に対する妥当なマージンを提供するように現れる。配置は
図2に示され、以下で説明される。
【0220】
符号化において、コンテンツは、立方体面サイズが、それぞれ、1536×1536および768×768の2つの空間解像度で符号化されてもよい。両方のビットストリームでは、6×4のサブピクチャグリッドが使用されてもよい。
【0221】
VVCサブピクチャトラックを作成するために、コード化サブピクチャシーケンスは、対応するVVCサブピクチャトラックとして格納される。同じ幅および高さを有するサブピクチャトラックは、同じ‘alte’トラックグループのメンバであるように示される。track_group_idの値g1およびg2は一意に選択され、いかなるtrack_IDの値とも等しくない。
【0222】
VVCベーストラックを作成するために、VVCベーストラックのSPSは、
図2に示されたサブピクチャレイアウトを指定する。VVCベーストラックは、track_group_idの値g1およびg2を列挙するタイプ‘subp’のトラック参照を含む。VVCベーストラックはまた、‘subp’トラック参照へのインデックスのリストを含み、トラックのすべてのサンプルに適用されるデフォルトのサンプルグループ記述項目であるように示された単一のサンプルグループ記述項目を有する‘spor’サンプルグループを含む。
【0223】
プレーヤの動作では、プレーヤは、高解像度符号化からビューポートをカバーするサブピクチャを選択し、低解像度符号化から残りのサブピクチャを選択することができる。高解像度ビットストリームに由来する12個のVVCサブピクチャトラックが選択され、相補的な12個のVVCサブピクチャトラックが低解像度ビットストリームに由来する。
【0224】
図2に提示されたサンプルグループ記述項目は、VVCベーストラックから復元される有効なビットストリームをもたらす1つの例にすぎないことが理解される必要がある。サンプルグループ記述項目は、同様に、VVC規格が許容し、VVCベーストラックのそれぞれのサンプルに適用されるSPSに記載された任意の順序でトラック参照インデックスを含む可能性がある。ドラフトVVC規格では、ピクチャのサブピクチャの復号順序およびビットストリーム順序は、任意の特定のサブピクチャの上および左の境界に隣接するサブピクチャが、復号順序およびビットストリーム順序でその特定のサブピクチャに先行しなければならないようでなければならないことが必要とされる。
【0225】
VVCベーストラック用のピクチャヘッダの格納
一実施形態によれば、ピクチャヘッダ(PH)NALユニットは、VVCベーストラックのサンプルに(たとえば、ファイルライタによって)含められ、かつ/またはVVCベーストラックのサンプルから(たとえば、ファイルリーダによって)構文解析されてもよい。
【0226】
一実施形態によれば、新しいタイプのサンプルグループは、次の段落において記載されるように、PH NALユニットの搬送用に指定される。一実施形態では、ファイルライタまたは同様のエンティティは、コンテナファイル内のサンプルグループのインスタンスを生成する。一実施形態では、ファイルリーダまたは同様のエンティティは、コンテナファイルからのサンプルグループのインスタンスを構文解析する。
【0227】
以後、新しいタイプのサンプルグループは、(「ピクチャヘッダ」を表す)4文字コード‘phdr’を有するが、任意の他の4文字コードが同様に使用される可能性があることが諒解される。
【0228】
異なる実施形態では、‘phdr’サンプルグループ記述項目は、
- PH NALユニット、およびSEI NALユニットなどのゼロ以上の他のNALユニット
- PH NALユニット
- NALユニットヘッダがないPH NALユニット
- PH RBSP
のうちの1つを含む。
【0229】
サンプルが‘phdr’サンプルグループの任意のサンプルグループ記述項目にマッピングされない場合、サンプルはPH NALユニットを含むことが必要とされる場合がある。
【0230】
ピクチャヘッダシンタックス要素がピクチャ順序カウント(POC)を導出するためのシンタックス要素を含むことが提案されている。コード化ビデオシーケンスのアクセスユニットは異なるPOCを有するので、‘phdr’サンプルグループを使用してPOC関連シンタックス要素に対する正しい値を有するピクチャヘッダを搬送することは、非現実的な数のサンプルグループ記述項目を生じるはずである。一実施形態では、‘phdr’サンプルグループ記述項目は、以下のうちの1つまたは複数を含む。
- ピクチャヘッダ内のPOC関連シンタックス要素がこのサンプルグループ記述項目にマッピングされたサンプルにそのように適用されるか、または(ビットストリームを復元するときに)上書きされるべきかの指示。
- トラックの合成時間などのタイミング情報がPOC値にどのように関係するかを示す指示。たとえば、合成時間のスケーリングファクタは、合成時間をPOC値に変換するために示されてもよい。合成時間の差分は、POC関連シンタックス要素がそのように適用された前のサンプルの合成時間を現在サンプルの合成時間から減算することによって導出されてもよい。POCの差分は、合成時間のスケーリングファクタを合成時間の差分に乗算することによって導出されてもよい。POC値は、POC関連シンタックス要素がそのように適用された前のサンプルの導出されたPOC値にPOCの差分を加算することによって導出されてもよい。POC関連シンタックス要素の値は、POC値から導出されてもよい。
- ピクチャヘッダ内のPOC LSB値などのPOC関連シンタックス要素の開始ビット位置。
- POC関連シンタックス要素の(ビット単位の)長さ。
- 開始コードエミュレーション防止バイトがPOC関連シンタックス要素の前または中に存在するかどうかを示すフラグ。
【0231】
‘phdr’サンプルグループの使用は、VVCベーストラックに限定されなくてもよいが、‘phdr’サンプルグループは、同様にまたは代替として、正規のVVCトラックおよびVVCサブピクチャトラックにおいて使用することができる。以下に記載される実施形態は、単独で使用することができ、‘spor’サンプルグループと一緒に使用されるように限定されない。
【0232】
PH NALユニットがいくつかのコード化ピクチャの中で同一である場合、PH NALユニットの格納は、‘phdr’サンプルグループの使用を介してバイトカウントに関して改善することができる。
【0233】
宛先VVCビットストリームの復元
一実施形態によれば、ファイルリーダまたは同様のエンティティは、VVCベーストラックを転換することによってVVCビットストリームを復元する。VVCベーストラックは、VVCベーストラックのサンプルの複合順序で転換されてもよい。VVCベーストラックのサンプルは、宛先VVCビットストリーム内のアクセスユニットに転換される。アクセスユニットは、VVCベーストラックのサンプル内で搬送されたNALユニット、および参照されたVVCサブピクチャトラックの中から選択されたVVCサブピクチャトラックのVCL NALユニットを含むように転換されてもよく、参照は、VVCベーストラックのサンプルに適用された‘spor’サンプルグループ記述項目を介して示されてもよく、いくつかの実施形態では、他の実施形態に記載されたように、‘subp’トラック参照を介して示されてもよい。
【0234】
一実施形態によれば、ファイルリーダまたは同様のエンティティは、SPS、PPS、またはピクチャヘッダ内のサブピクチャIDシンタックス要素を上書きすることにより、サブピクチャのレイアウトへのサブピクチャIDのマッピングを示す。
【0235】
一実施形態では、ファイルリーダまたは同様のエンティティは、以下のステップのうちの1つまたは複数を使用して、サブピクチャIDシンタックス要素を上書きすることによってどのシンタックス要素が修正されるかを判断する。
- ファイルリーダまたは同様のエンティティは、たとえば、VVCベーストラックのサンプルにマッピングされた‘spor’サンプルグループ記述項目内の指示に基づいて、どのシンタックス構造がサブピクチャIDシンタックス要素を含むかを判断する。別の例では、サブピクチャIDは、それぞれ、SPS、PPS、またはPHのNALユニットを構文解析することにより、SPS、PPS、またはPHのNALユニット内で搬送されるように判断される。
- サンプルに適用された2つ以上のシンタックス構造がサブピクチャIDシンタックス要素を含むとき、ファイルリーダまたは同様のエンティティは、シンタックス構造を含む優先順位が、特定のサンプルに適用されたサブピクチャIDシンタックス要素を含むと判断することができる。たとえば、PH内のサブピクチャIDは、PPSおよびSPS内のサブピクチャIDを無効にすることができる。最も高い優先順位を有するシンタックス構造が修正されるために選択されてもよい。
- 修正されるべきシンタックス構造は、シンタックス構造全体が復元されたビットストリーム内で繰り返されるようにすることができる。たとえば、同じPPS識別子の値を有するPPS内で以前使用されたサブピクチャIDの異なるセットでサブピクチャIDシンタックス要素を上書きすることによってPPSが修正された場合、ファイルリーダまたは同様のエンティティは、サブピクチャIDのセットが適用された復元ビットストリームのコード化ピクチャにPPS NALユニット全体のコピーを含める。
- PH NALユニット内でサブピクチャIDシンタックス要素の上書きが行われる場合、上書きが行われるPH NALユニットは、もしあれば、サンプル内に存在するPH NALユニット、または(もしあれば)VVCベーストラック内のサンプルにマッピングされた‘phdr’サンプルグループ化のPH NALユニットであるように選択される。
【0236】
一実施形態では、ファイルリーダまたは同様のエンティティは、選択されたサブピクチャトラックのサブピクチャIDを含むために修正されるように選択されたシンタックス構造を無効にする。一実施形態では、このサンプルにマッピングされた‘spor’サンプルグループ記述項目による修正は、以下のように実行される。
○サンプルグループ記述項目内で示されたシンタックス構造内の最初のサブピクチャ識別子シンタックス要素のビット位置(たとえば、修正されるべきピクチャヘッダ内のph_subpic_id[0]のビット位置)から開始し、サンプルグループ記述項目内で指定された順序の各々の選択されたVVCサブピクチャトラックからのサブピクチャIDで、各サブピクチャ識別子シンタックス要素(たとえば、ピクチャヘッダ内のph_subpic_id[i]の値)を上書きする。
【0237】
アクセスユニットに含まれるNALユニットは、VVC仕様における制約に準拠する順序で配置される。これらのNALユニットは、上述されたようにサブピクチャ識別子の値を上書きすることを被っている場合があることが述べられる。一実施形態では、ファイルリーダまたは同様のエンティティは、以下の黒丸の順序でNALユニットを配置する(ここで、「サンプル」はアクセスユニットに転換されているVVCベーストラックのサンプルを指す)。
- サンプル内に存在する(かつ最初のNALユニットである)とき、もしあれば、AUD NALユニット
- サンプルが同じサンプル項目に関連付けられたサンプルのシーケンスの最初のサンプルであるとき、パラメータセットNALユニットおよびSEI NALユニットは、もしあれば、同じ項目に含まれる。プレフィックスAPSおよびプレフィックスSEI NALユニットのみが同じサンプル項目内に存在できることが必要であり得ることに留意されたい。
- もしあれば、同じサンプル内に存在し、サンプル内の以下の最初に先行するNALユニット:
○もしあれば、サンプル内のPH NALユニット
○もしあれば、サンプル内の最初のVCL NALユニット
○もしあれば、VVC仕様によるAUの最後のNALユニットであることが許可される最初のNALユニット
○サンプルの最後
- もしあれば、サンプル内に存在するPH NALユニット、またはサンプルにマッピングされた‘phdr’サンプルグループ化のPH NALユニット
- もしあれば、すべてのVPS、DPS、SPS、PPS、AUD、PH、EOS、およびEOBのNALユニットを除外する、このサンプルにマッピングされた‘spor’サンプルグループ記述項目内で指定された順序で各々の参照されたVVCサブピクチャトラックからの(復号順序で)時間整列された転換サンプルのコンテンツ。トラック参照は以下に指定されたように転換される。
○参照VVCサブピクチャトラックがAPSトラックと関連付けられた場合、転換されたサンプルは、APSトラック内の時間整列されたサンプルの、もしあれば、APS NALユニットを含むことが留意されるべきである。
- (すでに上記のアクセスユニットに含まれていない)サンプル内の残りのNALユニット。
【0238】
‘spor’サンプルグループ記述項目のトラック参照シンタックスは、以下のように転換されてもよい。
- トラック参照がVVCサブピクチャトラックのトラックIDを指し示す場合、トラック参照はVVCサブピクチャトラックに転換される。
- そうでない(トラック参照が‘alte’トラックグループを指し示す)場合、トラック参照は‘alte’トラックグループのトラックのいずれかに転換される。特定のトラック参照インデックス値が前のサンプル内の特定のトラックに転換された場合、それは現在サンプル内で以下のいずれかに転換されるべきであることが必要とされる場合がある。
○同じ特定のトラック、または
○同期サンプルを含むか、または一実施形態では、現在サンプルと時間整列された3のSAPサンプルタイプを含む、同じ‘alte’トラックグループ内の任意の他のトラック。
【0239】
別の実施形態によれば、VVC符号化画像は、以下に記載されるように、高効率画像ファイルフォーマット(HEIF、ISO/IEC23008-12)と同様であるが、必ずしも同じではない画像ファイルフォーマットに準拠するファイル内に(たとえば、ファイルライタによって)格納され得、かつ/またはファイルから(たとえば、ファイルリーダによって)構文解析され得る。ファイルライタは、VVC符号化画像の各サブピクチャから個別のアイテムを形成することができる。VVC符号化サブピクチャをコード化ピクチャにマージする、「VVC導出画像アイテム」または「VVCベース画像アイテム」と呼ばれる場合がある導出画像アイテムを、ファイルライタは形成することができ、かつ/またはファイルリーダは構文解析することができる。コード化ピクチャ内のサブピクチャの復号順序またはビットストリーム順序を(ファイルライタによって)示すか、または(ファイルリーダによって)転換するために、規則正しいVVCベース画像アイテムからサブピクチャアイテムへの画像参照を、ファイルライタは含み、かつ/またはファイルリーダは構文解析することができる。そのような参照は、タイプ‘spir’の新しいタイプのアイテム参照(‘iref’)を使用して行うことができる。タイプ‘spir’のアイテム参照は実施形態によって参照され、実施形態は、概して、任意の他の4文字コードにも適用される。
【0240】
別の実施形態によれば、エンティティグループIDを指し示す‘spir’アイテム参照を転換するために、それらの中で任意の単一の画像アイテムを交換可能に使用することができるサブピクチャ画像アイテムを含むエンティティグループを、ファイルライタは作成することができ、かつ/またはファイルリーダは構文解析することができる。その結果、VVC導出画像アイテムを転換するために、プレーヤはエンティティグループからサブピクチャ画像アイテムを選択する。プレーヤは、たとえば、ビューポートをカバーするサブピクチャ画像アイテムを選択し、ビューポートをカバーしないサブピクチャ画像アイテムの選択を省略することができる。
【0241】
別の実施形態によれば、‘spir’アイテム参照を使用するのではなく、VVCサブピクチャアイテムおよびVVCベースアイテムが導出VVC画像アイテム(またはVVCベースアイテム)、および必要な場合、エンティティグループ内のさらなる特性を含む他のVVCサブピクチャアイテムを列挙するエンティティグループに含まれる。
【0242】
図3は、一実施形態による方法を示すフローチャートである。方法は、コンテナファイル内で、2つ以上のサブピクチャトラックを書き込むこと310と、コンテナファイル内で、ビデオビットストリームに転換される対象となるベーストラックを書き込むこと320と、ベーストラック内で、サブピクチャのレイアウトを指示すること330と、コンテナファイル内で、サブピクチャのレイアウト内のサブピクチャ位置ごとに第1のサブピクチャトラックまたはサブピクチャトラックのグループを示すサンプルグループ記述項目を書き込むこと340であって、第1のサブピクチャトラックがそれぞれのサブピクチャ位置用のサブピクチャシーケンスを含み、サブピクチャトラックのグループの中の任意のトラックがそれぞれのサブピクチャ位置用の有効なサブピクチャシーケンスを含む、書き込むこと340と、コンテナファイル内で、サンプルグループ記述項目がビデオビットストリームを復元するために使用される対象となるベーストラックのサンプルを指示すること350とを含む。
【0243】
一実施形態による装置は、コンテナファイル内で、2つ以上のサブピクチャトラックを書き込むための手段と、コンテナファイル内で、ビデオビットストリームに転換される対象となるベーストラックを書き込むための手段と、ベーストラック内で、サブピクチャのレイアウトを指示するための手段と、コンテナファイル内で、サブピクチャのレイアウト内のサブピクチャ位置ごとに第1のサブピクチャトラックまたはサブピクチャトラックのグループを示すサンプルグループ記述項目を書き込むための手段であって、第1のサブピクチャトラックがそれぞれのサブピクチャ位置用のサブピクチャシーケンスを含み、サブピクチャトラックのグループの中の任意のトラックがそれぞれのサブピクチャ位置用の有効なサブピクチャシーケンスを含む、手段と、コンテナファイル内で、サンプルグループ記述項目がビデオビットストリームを復元するために使用される対象となるベーストラックのサンプルを指示するための手段とを備える。手段は、少なくとも1つのプロセッサと、コンピュータプログラムコードを含むメモリとを備え、プロセッサはプロセッサ回路をさらに備えてもよい。メモリおよびコンピュータプログラムコードは、少なくとも1つのプロセッサを用いて、様々な実施形態による方法を装置に実行させるように構成される。
【0244】
図4は、別の実施形態による方法を示すフローチャートである。方法は、コンテナファイルのベーストラックから、サブピクチャのレイアウトを構文解析すること410と、コンテナファイルから、サブピクチャのレイアウト内のサブピクチャ位置ごとに第1のサブピクチャトラックまたはサブピクチャトラックのグループを示すサンプルグループ記述項目を構文解析すること420であって、第1のサブピクチャトラックがそれぞれのサブピクチャ位置用のサブピクチャシーケンスを含み、サブピクチャトラックのグループの中の任意のトラックがそれぞれのサブピクチャ位置用の有効なサブピクチャシーケンスを含む、構文解析すること420と、サンプルグループ記述項目がサブピクチャトラックのグループを示すときに、サブピクチャトラックのグループから第2のサブピクチャトラックを選択すること430と、コンテナファイルから、ベーストラックのどのセットのサンプルが、サンプルグループ記述項目がビデオビットストリームを復元するために使用される対象となるかを構文解析すること440と、コンテナファイルから、サブピクチャのレイアウトのサブピクチャ位置ごとに第1のサブピクチャトラックまたは第2のサブピクチャトラックの時間整列サンプルを含めることにより、サンプルのセットに対応するビデオビットストリームのコード化ピクチャを復元すること450とを含む。
【0245】
一実施形態による装置は、コンテナファイルのベーストラックから、サブピクチャのレイアウトを構文解析するための手段と、コンテナファイルから、サブピクチャのレイアウト内のサブピクチャ位置ごとに第1のサブピクチャトラックまたはサブピクチャトラックのグループを示すサンプルグループ記述項目を構文解析するための手段であって、第1のサブピクチャトラックがそれぞれのサブピクチャ位置用のサブピクチャシーケンスを含み、サブピクチャトラックのグループの中の任意のトラックがそれぞれのサブピクチャ位置用の有効なサブピクチャシーケンスを含む、手段と、サンプルグループ記述項目がサブピクチャトラックのグループを示すときに、サブピクチャトラックのグループから第2のサブピクチャトラックを選択するための手段と、コンテナファイルから、ベーストラックのどのセットのサンプルが、サンプルグループ記述項目がビデオビットストリームを復元するために使用される対象となるかを構文解析するための手段と、コンテナファイルから、サブピクチャのレイアウトのサブピクチャ位置ごとに第1のサブピクチャトラックまたは第2のサブピクチャトラックの時間整列サンプルを含めることにより、サンプルのセットに対応するビデオビットストリームのコード化ピクチャを復元するための手段とを備える。手段は、少なくとも1つのプロセッサと、コンピュータプログラムコードを含むメモリとを備え、プロセッサはプロセッサ回路をさらに備えてもよい。メモリおよびコンピュータプログラムコードは、少なくとも1つのプロセッサを用いて、様々な実施形態による方法を装置に実行させるように構成される。
【0246】
装置のためのデータ処理システムの一例が
図5に示されている。いくつかの機能は、単一の物理デバイスを用いて遂行することができ、たとえば、すべての計算手順は、必要な場合単一のプロセッサにおいて実行することができる。データ処理システムは、メイン処理ユニット100、メモリ102、ストレージデバイス104、入力デバイス106、出力デバイス108、およびグラフィックスシステム110を備え、それらはすべてデータバス112を介して互いに接続される。
【0247】
メイン処理ユニット100は、データ処理システム内でデータを処理するように配置された従来の処理ユニットである。メイン処理ユニット100は、1つまたは複数のプロセッサまたはプロセッサ回路を備えるか、またはそのように実装されてもよい。メモリ102、ストレージデバイス104、入力デバイス106、および出力デバイス108は、当業者によって認識された従来の構成要素を含んでもよい。メモリ102およびストレージデバイス104は、データ処理システム100の中のデータを記憶する。
【0248】
コンピュータプログラムコードは、たとえば、様々な実施形態による
図3または
図4のフローチャートに示された方法を実施するために、メモリ102内に存在する。入力デバイス106はシステムにデータを入力し、出力デバイス108はデータ処理システムからデータを受信し、たとえば、ディスプレイにデータを転送する。データバス112は従来のデータバスであり、単一の線として示されているが、それは、以下のプロセッサバス、PCIバス、グラフィカルバス、ISAバスの任意の組合せであってもよい。したがって、当業者は、装置が、コンピュータデバイス、パーソナルコンピュータ、サーバコンピュータ、携帯電話、スマートフォン、またはインターネットアクセスデバイス、たとえば、インターネットタブレットコンピュータなどの、任意のデータ処理デバイスであってもよいことを容易に認識する。
【0249】
図6はビデオエンコーダの一例を示し、ここで、I
n:符号化される画像、P’
n:画像ブロックの予測表現、D
n:予測誤差信号、D’
n:復元された予測誤差信号、I’
n:一次復元画像、R’
n:最終復元画像、T、T
-1:変換および逆変換、Q、Q
-1:量子化および逆量子化、E:エントロピー符号化、RFM:参照フレームメモリ、P
inter:インター予測、P
intra:イントラ予測、MS:モード選択、F:フィルタリング。
図7はビデオデコーダのブロック図を示し、ここで、P’
n:画像ブロックの予測表現、D’
n:復元された予測誤差信号、I’
n:一次復元画像、R’
n:最終復元画像、T
-1:逆変換、Q
-1:逆量子化、E
-1:エントロピー復号、RFM:参照フレームメモリ、P:予測(インターまたはイントラのいずれか)、F:フィルタリング。一実施形態による装置は、エンコーダもしくはデコーダのみ、または両方を備えてもよい。
【0250】
様々な実施形態は利点を提供することができる。たとえば、(HEVCタイルベーストラックおよびHEVCタイルトラックにおけるように)サンプルグループ化なしにトラック参照を使用することと比較して、
○サンプルグループの使用は、時変サブピクチャレイアウトの可能性を提供する。
○サンプルグループの使用は、さらなるパラメータ(たとえば、PH RBSP内のサブピクチャ識別子の長さおよび/または最初のサブピクチャ識別子のビット位置)の割当ての可能性を提供する。さらなるパラメータは時変であり得る。
【0251】
加えて、サンプルグループは、バイトカウントオーバーヘッドに対して安価である。たとえば、ph_subpic_id[0]のビット位置はすべてのPH NALユニット内で変化しないままである可能性が高いことが想定される。その結果、コード化ビデオシーケンスのすべてのピクチャは、同じサンプルグループ記述項目にマッピングすることができる。ビットストリーム全体で同じSPSが使用された場合、デフォルトのサンプルグループ記述項目の使用は、SampleGroupDescriptionBox内で示され、SampleToGroupBoxesは不在であり得る。またさらに、サブピクチャトラックのトラックグループが‘subp’トラック参照によっって参照されるとき、リーダは、トラックグループがどのように形成されたかに応じて、ソースビットストリームのサブピクチャのサブセット、または2つ以上のソースビットストリームからのサブピクチャの選択、またはそれらの組合せを選択する自由を有する。加えて、選択されたサブピクチャトラックからVVCビットストリームを復元することは、‘spor’サンプルグループ内で指示されたようにピクチャヘッダ内のサブピクチャ識別子(たとえば、ph_subpic_id[i])シンタックス要素を上書きすることのみを必要とする場合がある。
【0252】
様々な実施形態は、メモリ内に存在し、関連装置に方法を遂行させるコンピュータプログラムコードの助けを借りて実装することができる。たとえば、デバイスは、データ、メモリ内のコンピュータプログラムコード、および、コンピュータプログラムコードを実行するときに一実施形態の特徴をデバイスに遂行させるプロセッサを、処理、受信、および送信するための回路および電子機器を備えてもよい。またさらに、ネットワークデバイスは、データ、メモリ内のコンピュータプログラムコード、および、コンピュータプログラムコードを実行するときに一実施形態の特徴をネットワークデバイスに遂行させるプロセッサを、処理、受信、および送信するための回路および電子機器を備えてもよい。コンピュータプログラムコードは、1つまたは複数の動作特性を備える。前記動作特性は、前記プロセッサのタイプに基づく前記コンピュータによる構成を介して定義され、システムはバスによって前記プロセッサに接続可能であり、システムのプログラム可能動作特性は、コンテナファイル内で、2つ以上のサブピクチャトラックを書き込むことと、コンテナファイル内で、ビデオビットストリームに転換される対象となるベーストラックを書き込むことと、ベーストラック内で、サブピクチャのレイアウトを指示することと、コンテナファイル内で、サブピクチャのレイアウト内のサブピクチャ位置ごとに第1のサブピクチャトラックまたはサブピクチャトラックのグループを示すサンプルグループ記述項目を書き込むことであって、第1のサブピクチャトラックがそれぞれのサブピクチャ位置用のサブピクチャシーケンスを含み、サブピクチャトラックのグループの中の任意のトラックがそれぞれのサブピクチャ位置用の有効なサブピクチャシーケンスを含む、書き込むことと、コンテナファイル内で、サンプルグループ記述項目がビデオビットストリームを復元するために使用される対象となるベーストラックのサンプルを指示することとを含む。別の実施形態によれば、システムのプログラム可能動作特性は、コンテナファイルのベーストラックから、サブピクチャのレイアウトを構文解析することと、コンテナファイルから、サブピクチャのレイアウト内のサブピクチャ位置ごとに第1のサブピクチャトラックまたはサブピクチャトラックのグループを示すサンプルグループ記述項目を構文解析することであって、第1のサブピクチャトラックがそれぞれのサブピクチャ位置用のサブピクチャシーケンスを含み、サブピクチャトラックのグループの中の任意のトラックがそれぞれのサブピクチャ位置用の有効なサブピクチャシーケンスを含む、構文解析することと、サンプルグループ記述項目がサブピクチャトラックのグループを示すときに、サブピクチャトラックのグループから第2のサブピクチャトラックを選択することと、コンテナファイルから、ベーストラックのどのセットのサンプルが、サンプルグループ記述項目がビデオビットストリームを復元するために使用される対象となるかを構文解析することと、コンテナファイルから、サブピクチャのレイアウト内のサブピクチャ位置ごとに第1のサブピクチャトラックまたは第2のサブピクチャトラックの時間整列サンプルを含めることにより、サンプルのセットに対応するビデオビットストリームのコード化ピクチャを復元することとを含む。
【0253】
一実施形態によるコンピュータプログラム製品は、非一時的コンピュータ可読媒体上に具現化することができる。別の実施形態によれば、コンピュータプログラム製品は、データパケット内でネットワークを介してダウンロードすることができる。
【0254】
いくつかの実施形態は、シンタックス構造の特定のシンタックスに関して記載されている。実施形態は、記載されたシンタックス構造を生成するエンティティ、および記載されたシンタックス構造を読み取り、構文解析し、かつ/または復号するエンティティに適用される。
【0255】
必要な場合、本明細書で説明された異なる機能は、異なる順序で、かつ/または他と同時に実行されてもよい。その上、必要な場合、上述された機能および実施形態のうちの1つまたは複数は、任意選択であってもよく、組み合わされてもよい。
【0256】
実施形態の様々な態様は独立請求項において提示され、他の態様は、記載された実施形態からの特徴および/または独立請求項の特徴を有する従属請求項の他の組合せを含み、特許請求の範囲に明確に提示された組合せのみではない。
【0257】
本明細書では、上記は例示的な実施形態を記載するが、これらの記載は限定する意味で見られるべきではないことにも留意されたい。むしろ、添付特許請求の範囲において定義されるような本開示の範囲から逸脱することなく作成されてもよい、いくつかの変形形態および修正形態が存在する。