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

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

▶ レモン インコーポレイテッドの特許一覧

特許7372293符号化映像における依存性情報の信号通知
<>
  • 特許-符号化映像における依存性情報の信号通知 図1
  • 特許-符号化映像における依存性情報の信号通知 図2
  • 特許-符号化映像における依存性情報の信号通知 図3
  • 特許-符号化映像における依存性情報の信号通知 図4
  • 特許-符号化映像における依存性情報の信号通知 図5
  • 特許-符号化映像における依存性情報の信号通知 図6
  • 特許-符号化映像における依存性情報の信号通知 図7
  • 特許-符号化映像における依存性情報の信号通知 図8
  • 特許-符号化映像における依存性情報の信号通知 図9A
  • 特許-符号化映像における依存性情報の信号通知 図9B
  • 特許-符号化映像における依存性情報の信号通知 図9C
  • 特許-符号化映像における依存性情報の信号通知 図9D
  • 特許-符号化映像における依存性情報の信号通知 図9E
  • 特許-符号化映像における依存性情報の信号通知 図9F
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-10-23
(45)【発行日】2023-10-31
(54)【発明の名称】符号化映像における依存性情報の信号通知
(51)【国際特許分類】
   H04N 19/70 20140101AFI20231024BHJP
   H04N 21/845 20110101ALI20231024BHJP
   H04N 21/2343 20110101ALI20231024BHJP
【FI】
H04N19/70
H04N21/845
H04N21/2343
【請求項の数】 17
【外国語出願】
(21)【出願番号】P 2021152671
(22)【出願日】2021-09-17
(65)【公開番号】P2022050377
(43)【公開日】2022-03-30
【審査請求日】2022-01-14
(31)【優先権主張番号】63/079,946
(32)【優先日】2020-09-17
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】63/088,786
(32)【優先日】2020-10-07
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】521388058
【氏名又は名称】レモン インコーポレイテッド
【氏名又は名称原語表記】Lemon Inc.
(74)【代理人】
【識別番号】110002000
【氏名又は名称】弁理士法人栄光事務所
(72)【発明者】
【氏名】ワン イエクイ
【審査官】鉢呂 健
(56)【参考文献】
【文献】特表2018-524891(JP,A)
【文献】特表2022-529802(JP,A)
【文献】BROSS, Benjamin et al.,Versatile Video Coding (Draft 10),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 19th Meeting: by teleconference, 22 June - 1 July 2020, [JVET-S2001-vH],JVET-S2001 (version 17),ITU-T,2020年09月04日,<URL:https://jvet-experts.org/doc_end_user/documents/19_Teleconference/wg11/JVET-S2001-v17.zip>: JVET-S2001-vH.docx: pp.38-40,95-101
【文献】WANG, Ye-Kui et al.,AHG8: Signalling of output layer sets,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 16th Meeting: Geneva, CH, 1-11 October 2019, [JVET-P1019-v1],JVET-P1019 (version 1),ITU-T,2019年10月08日,<URL:https://jvet-experts.org/doc_end_user/documents/16_Geneva/wg11/JVET-P1019-v1.zip>: JVET-P1019-v1.docx: pp.1-5
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00-19/98
H04N 21/00-21/858
(57)【特許請求の範囲】
【請求項1】
視覚メディア処理方法であって、
フォーマット規則に従って、視覚メディアデータと前記視覚メディアデータのビットストリームを記憶する視覚メディアファイルとの変換を行うことを含み、
前記視覚メディアファイルは、1つ以上の映像レイヤを含む1つ以上のトラックを記憶し、
前記フォーマット規則は、レイヤ依存性情報を示す第1の構文要素セットが前記視覚メディアファイルに記憶されているかどうかが、前記視覚メディアファイルにおける全てのレイヤが独立していることを示す第2の構文要素が値1を有するかどうかに依存することを規定し、
前記第1の構文要素セットは、前記視覚メディアファイルに記憶されている1つ以上の動作点に関する情報を示すサンプルグループに記憶されている、
方法。
【請求項2】
前記フォーマット規則は、前記値1を有する前記第2の構文要素に応答して、前記第1の構文要素セットは前記視覚メディアファイルから省略されることを規定する、
請求項に記載の方法。
【請求項3】
前記フォーマット規則は、複数の前記トラックに記憶されている冗長アクセスユニットデリミタネットワークアクセス層(AUD NAL)ユニットが、前記複数のトラックからの前記ビットストリームの黙示的な再構成中に処理される手法を規定する、
請求項1又は2に記載の方法。
【請求項4】
前記フォーマット規則は、前記冗長AUD NALユニットが前記黙示的な再構成中に除去されることを規定する、
請求項に記載の方法。
【請求項5】
前記フォーマット規則は、前記冗長AUD NALユニットが前記黙示的な再構成中に書き換えられることを規定する、
請求項又はに記載の方法。
【請求項6】
前記フォーマット規則は、複数のトラックの複数のピクチャから瞬時ランダムアクセスポイントタイプ又は緩やかな復号化更新タイプと異なる特定のタイプを有する特定のアクセスユニットを生成することを含む前記黙示的な再構成に応答して、前記特定のアクセスユニットに含まれる特定の冗長AUD NALの構文フィールドが、前記特定の冗長AUD NALが前記瞬時ランダムアクセスポイントタイプ又は前記緩やかな復号化更新タイプを表現していないことを示す0値に書き換えられることを、規定する、
請求項に記載の方法。
【請求項7】
前記フォーマット規則は、別のトラックからの第2のPUがイントラランダムアクセスポイントピクチャ又は緩やかな復号化更新ピクチャでないピクチャを含む場合には、第1のピクチャユニット(PU)のAUD NALユニットにおける構文要素の値が、前記特定の冗長AUD NALが瞬時ランダムアクセスポイント又は前記緩やかな復号化更新タイプを表していないことを示す0に書き換えられることを、さらに規定する、
請求項に記載の方法。
【請求項8】
前記フォーマット規則は、第1のAUD NALユニットを有するアクセスユニットに対する別のトラックからの複数のピクチャユニットの少なくとも1つに応答して、前記黙示的な再構成から生成される前記アクセスユニットの第1のピクチャユニットが第2のAUD NALユニットを含むことを、規定する、
請求項のいずれか1項に記載の方法。
【請求項9】
前記フォーマット規則は、AUD NALユニットを含むアクセスユニットに対する別のトラックからの複数のピクチャユニットに応答して、第1のピクチャユニットのAUD NALユニットに対応する単一のAUD NALユニットが前記黙示的な再構成から生成される前記アクセスユニットに含まれることを、規定する、
請求項のいずれか1項に記載の方法。
【請求項10】
前記視覚メディアファイルは、動作点(OP)の情報を含み、
前記フォーマット規則は、構文要素がサンプルグループエントリ及び前記OPのグループボックスに含まれているかどうか、又はどのように含まれているかが、単一の映像レイヤを含む前記OPに応答することを規定し、
前記構文要素は、前記OPに対する出力レイヤセットへのインデックスを示すように構成される、
請求項1~のいずれか1項に記載の方法。
【請求項11】
前記フォーマット規則は、前記単一の映像レイヤを含む前記OPに応答して、前記構文要素が前記サンプルグループエントリ及び前記グループボックスから省略されることを、規定する、
請求項10に記載の方法。
【請求項12】
前記フォーマット規則は、2つ以上の映像レイヤを含む前記OPに応答して、前記構文要素が前記2つ以上の映像レイヤを識別する情報を示した後に含まれることを規定する、
請求項10又は11に記載の方法。
【請求項13】
前記構文要素が前記サンプルグループエントリ及び前記グループボックスから省略されることに応答して、前記OPに対する前記出力レイヤセットへの前記インデックスは、前記単一の映像レイヤを含む出力レイヤセットのインデックスと等しいと推測される、
請求項11又は12に記載の方法。
【請求項14】
前記変換は、前記フォーマット規則に従って、前記視覚メディアファイルを生成することと、前記ビットストリームを前記視覚メディアファイルに記憶することと、を含む、
請求項1~13のいずれか1つに記載の方法。
【請求項15】
前記変換は、前記フォーマット規則に従って前記視覚メディアファイルを構文解析し、前記ビットストリームを再構成することを含む、
請求項1~13のいずれか1項以上に記載の方法。
【請求項16】
請求項1~15のいずれか1項に記載の方法を実行するように構成される処理装置を備える、装置。
【請求項17】
処理装置が実行可能なコードが記憶された非一時的な記憶媒体であって、
前記コードは、実行時に、前記処理装置に、請求項1~15のいずれか1項に記載の方法を実装させる、
非一時的な記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
パリ条約に基づく適用可能な特許法および/または規則に基づいて、本願は、2020年9月17日出願の米国特許仮出願第63/079946号および2020年10月7日出願の米国特許仮出願第63/088786号の優先権および利益を適時に主張することを目的とする。法に基づくすべての目的のために、上記出願の開示全体は、本明細書の開示の一部として参照により援用される。
【0002】
この特許文献は、ファイルフォーマットのデジタルオーディオ映像メディア情報の生成、記憶、および消費に関する。
【背景技術】
【0003】
デジタル映像は、インターネット及び他のデジタル通信ネットワークにおいて最大の帯域幅の使用量を占めている。映像を受信及び表示することが可能である接続されたユーザ機器の数が増加するにつれ、デジタル映像の使用に対する帯域幅需要は増大し続けることが予測される。
【発明の概要】
【0004】
本明細書は、視覚メディアファイルに対してファイルフォーマットに従って書き込みまたは構文解析を行う視覚メディア処理装置が使用できる技術を開示する。
【0005】
1つの例示的な態様において、視覚メディア処理方法が開示される。この方法は、動作点情報を含む特定のタイプのサンプルグループを含む複数のトラックから1つ以上のトラックを識別する構文要素をファイルレベル情報が含むことを規定するフォーマット規則に従って、視覚メディアデータと、この視覚メディアデータのビットストリームを複数のトラックに記憶する視覚メディアファイルと、の変換を行うことを含む。
【0006】
別の例示的な態様では、視覚メディア処理方法が開示される。この方法は、フォーマット規則に従って、視覚メディアデータと、この視覚メディアデータのビットストリームを記憶する視覚メディアファイルと、の変換を行うことを含む。視覚メディアファイルは、1つ以上の映像レイヤを含む1つ以上のトラックを記憶する。このフォーマット規則は、レイヤ依存性情報を示す第1の構文要素のセットが視覚メディアファイルに記憶されるかどうかが、視覚メディアファイルにおけるすべてのレイヤが独立していることを示す第2の構文要素が値1を有するかどうかに依存することを規定する。
【0007】
別の例示的な態様では、視覚メディア処理方法が開示される。この方法は、複数のトラックからビットストリームを黙示的に再構成する間に、複数のトラックに記憶された冗長アクセスユニットデリミタネットワークアクセス層(AUD NAL)ユニットを処理する方法を規定するフォーマット規則に従って、複数のトラックにおける視覚メディアデータのビットストリームを記憶する視覚メディアファイルと視覚メディアデータとの変換を行うことを含む。
【0008】
別の例示的な態様では、視覚メディア処理方法が開示される。この方法は、フォーマット規則に従って、視覚メディアデータと、この視覚メディアデータのビットストリームを記憶する視覚メディアファイルと、の変換を行うことを含む。視覚メディアファイルは、1つ以上の映像レイヤを含む1つ以上のトラックを記憶する。視覚メディアファイルは、動作点(OP)の情報を含む。このフォーマット規則は、構文要素がサンプルグループエントリおよびOPのグループボックスに含まれているかどうか、またはどのように含まれているかに応答して、1つの映像レイヤを含むOPに応答するかを規定する。この構文要素は、OPのために設定された出力レイヤへのインデックスを示すように構成される。
【0009】
別の例示的な態様では、視覚メディア処理方法が開示される。この方法は、フォーマット規則に従って、視覚メディアデータと、視覚メディアデータのビットストリームを記憶する視覚メディアファイルとの変換を行うことを含み、前記視覚メディアファイルは、特定のタイプのエンティティグループに属する複数のトラックを記憶し、前記フォーマット規則は、グループ識別子に対する特定のタイプへのトラック参照を有する複数のトラックに応答して、複数のトラックが、(A)特定のタイプのサンプルグループを担持することを省略するか、または(B)特定のタイプのサンプルグループの情報が、特定のタイプのエンティティグループの情報と整合するように、特定のタイプのサンプルグループを担持するかを規定する。
【0010】
別の例示的な態様では、視覚メディア処理方法が開示される。この方法は、視覚メディアデータと、この視覚メディアデータのビットストリームを記憶する視覚メディアファイルと、の変換を行うことを含む。この視覚メディアファイルは、複数のトラックを含み、この視覚メディアファイルは、この視覚メディアファイルにおける動作点に関する情報を担持するエンティティグループと、各動作点を担持するトラックと、を記憶する。フォーマット規則は、各動作点の情報を担持するエンティティグループまたはサンプルグループを記憶する視覚メディアファイルに応答して、視覚メディアファイルの特性を指定する。
【0011】
さらに別の例示的な態様では、視覚メディア書き込み装置が開示される。この装置は、上述した方法を実装するように構成された処理装置を備える。
【0012】
さらに別の例示的な態様では、視覚メディア構文解析装置が開示される。この装置は、上述した方法を実装するように構成された処理装置を備える。
【0013】
さらに別の例示的な態様では、コードが記憶されたコンピュータ可読媒体が開示される。このコードは、本明細書に記載の方法の1つを処理装置が実行可能なコードの形式で実施する。
【0014】
さらに別の例示的な態様では、視覚メディアファイルが記憶されたコンピュータ可読媒体が開示される。本明細書に記載の方法を使用して、視覚メディアを生成または構文解析する。
【0015】
これらの、およびその他の特徴は、本明細書全体にわたって説明されている。
【図面の簡単な説明】
【0016】
図1】映像処理システム例を示すブロック図である。
図2】映像処理装置のブロック図である。
図3】映像処理方法の一例を示すフローチャートである。
図4】本発明のいくつかの実施形態による映像符号化システムを示すブロック図である。
図5】本発明のいくつかの実施形態によるエンコーダを示すブロック図である。
図6】本発明のいくつかの実施形態によるデコーダを示すブロック図である。
図7】エンコーダブロック図の例を示す。
図8】2つのOLSを有するビットストリームを例示し、ここで、OLS2は、vps_max_tid_il_ref_pics_plus1[1][0]が0である。
図9A】視覚メディア処理方法の例示的な方法のフローチャートを示す。
図9B】視覚メディア処理方法の例示的な方法のフローチャートを示す。
図9C】視覚メディア処理方法の例示的な方法のフローチャートを示す。
図9D】視覚メディア処理方法の例示的な方法のフローチャートを示す。
図9E】視覚メディア処理方法の例示的な方法のフローチャートを示す。
図9F】視覚メディア処理方法の例示的な方法のフローチャートを示す。
【発明を実施するための形態】
【0017】
本明細書では、理解を容易にするために章の見出しを使用しており、その技術および各章に記載された実施形態の適用可能性をその章のみに限定するものではない。さらに、H.266という用語は、ある説明において、理解を容易にするためだけに使用され、開示された技術の範囲を限定するために用いられたものではない。このように、本明細書で説明されている技術は、他の映像コーデックプロトコルおよび設計にも適用可能である。本明細書において、編集変更は、VVC規格またはISOBMFFファイルフォーマット規格の現在の草案に対して、取り消されたテキストを示す取り消し線および付加されたテキストを示すハイライト(太字のイタリック体を含む)によってテキストに示す。
【0018】
1. 初期の協議
【0019】
本明細書は、映像ファイルフォーマットに関する。具体的には、本発明は、ISOベースのメディアファイルフォーマット(ISOBMFF)に基づいて、メディアファイルにおけるスケーラブル汎用映像符号化(VVC)映像ビットストリームの記憶域に関する。この考えは、任意のコーデック、例えば、VVC規格によって符号化された映像ビットストリーム、および任意の映像ファイルフォーマット、例えば、開発されているVVC映像ファイルフォーマットに、個々にまたは様々な組み合わせで適用されてもよい。
【0020】
2. 略語
【0021】
ACT 適応色変換
ALF 適応ループフィルタ
AMVR 適応型動きベクトル解像度
APS 適応パラメータセット
AU アクセスユニット
AUD アクセスユニット区切り文字
AVC 高度映像符号化(Rec.ITU-T H.264|ISO/IEC14496-10)
B 双方向予測
BCW CUレベル重み付き双方向予測
BDOF 双方向オプティカルフロー
BDPCM ブロックベースのデルタパルス符号変調
BP バッファリング時間
CABAC コンテキストに基づく適応2進算術符号化
CB 符号化ブロック
CBR 一定ビットレート
CCALF クロスコンポーネント適応ループフィルタ
CPB 符号化ピクチャバッファ
CRA クリーンなランダムアクセス
CRC 巡回冗長性検査
CTB 符号化ツリーブロック
CTU 符号化ツリーユニット
CU 符号化ユニット
CVS 符号化映像シーケンス
DPB 復号化ピクチャバッファ
DCI 復号化能力情報
DRAP 従属ランダムアクセスポイント
DU 復号化ユニット
DUI 復号化ユニット情報
EG 指数ゴロム
EGk k次指数ゴロム
EOB ビットストリームの末端
EOS シーケンスの末端
FD フィラーデータ
FIFO 先入れ先出し
FL 固定長
GBR 緑色、青色、赤色
GCI 一般的な制約情報
GDR 緩やかな復号化更新
GPM ジオメトリ分割モード
HEVC 高効率映像符号化(Rec.ITU-T H.265|ISO/IEC23008-2)
HRD 仮想参照デコーダ
HSS 仮想ストリームスケジューラ
I イントラ
IBC イントラブロックコピー
IDR 瞬時復号化更新
ILRP 層間参照画像
IRAP イントラランダムアクセスポイント
LFNST 低周波数非可分変換
LPS 最小確率シンボル
LSB 最下位ビット
LTRP 長期参照画像
LMCS クロマスケーリングを伴う輝度マッピング
MIP マトリックスに基づくイントラ予測
MPS 最大確率記号
MSB 最上位ビット
MTS 多重変換選択
MVP 動きベクトル予測
NAL ネットワーク抽象化層
OLS 出力層セット
OP 動作点
OPI 動作点情報
P 予測
PH ピクチャヘッダ
POC ピクチャオーダカウント
PPS ピクチャパラメータセット
PROF オプティカルフローによる予測微調整
PT ピクチャタイミング
PU ピクチャユニット
QP 量子化パラメータ
RADL ランダムアクセス復号化可能リード(ピクチャ)
RASL ランダムアクセススキップリード(ピクチャ)
RBSP 生バイトシーケンスペイロード
RGB 赤、緑、青
RPL 参照ピクチャリスト
SAO サンプル適応オフセット
SAR サンプルアスペクト比
SEI 補足強化情報
SH スライスヘッダ
SLI サブピクチャレベル情報
SODB データビットのストリング
SPS シーケンスパラメータセット
STRP 短期参照ピクチャ
STSA ステップワイズ時間的サブレイヤアクセス
TR 短縮ライス
VBR 可変ビットレート
VCL 映像符号化層
VPS 映像パラメータセット
VSEI 汎用補足強化情報(Rec.ITU-T H.274 | ISO/IEC23002-7)
VUI 映像可用性情報
VVC 汎用映像符号化(Rec.ITU-T H.266 | ISO/IEC23090-3)H.265|ISO/IEC23008-2)
【0022】
3. 映像符号化の導入
【0023】
3.1. 映像符号化規格
【0024】
映像符号化規格は、主に周知のITU-TおよびISO/IEC規格の開発によって発展してきた。ITU-TはH.261とH.263を作り、ISO/IECはMPEG-1とMPEG-4 Visualを作り、両団体はH.262/MPEG-2 VideoとH.264/MPEG-4 AVC(Advanced Video Coding)とH.265/HEVC規格を共同で作った。H.262以来、映像符号化規格は、時間予測と変換符号化が利用されるハイブリッド映像符号化構造に基づく。HEVCを超えた将来の映像符号化技術を探索するため、2015年には、VCEGとMPEGが共同でJVET(Joint Video Exploration Team)を設立した。それ以来、多くの新しい方法がJVETによって採用され、JEM(Joint Exploration Mode)と呼ばれる参照ソフトウェアに組み込まれてきた。JVETは、後に汎用映像符号化(VVC)プロジェクトが正式に始まったとき、共同映像エキスパートチーム(JVET)に改称された。VVCは新しい符号化規格であり、HEVCに比べて50%のビットレート低減を目指し、2020年7月1日に終了した第19回JVET総会において完成した。
【0025】
汎用映像符号化(VVC)規格(ITU-T H.266|ISO/IEC23090-3)と汎用補足強化情報(VSEI)規格(ITU-T H.274|ISO/IEC23002-7)は、テレビ放送、ビデオ会議、記憶媒体からの再生などの従来の用途に加え、適応ビットレートストリーミング、映像領域抽出、複数の符号化映像ビットストリームからのコンテンツの合成・結合、マルチビュー映像、スケーラブルレイヤードコーディング、ビューポートに適応した360°没入型メディアなど、より新しく、より高度な用途を含め、最大限に幅広いアプリケーションで使用できるように設計されている。
【0026】
3.2. ファイルフォーマット規格
【0027】
メディアストリーミングアプリケーションは、一般的に、IP、TCP、およびHTTPトランスポート方法に基づいており、一般的に、ISOベースのメディアファイルフォーマット(ISOBMFF)[7]などのファイルフォーマットに依存する。そのようなストリーミングシステムの1つは、HTTP(DASH)を介した動的適応ストリーミングである。ISOBMFFおよびDASHを有する映像フォーマットを使用するために、ISOBMFFトラック並びにDASH表現およびセグメントにおける映像コンテンツのカプセル化のために、AVCファイルフォーマットおよびHEVCファイルフォーマットのような、映像フォーマットに特定のファイルフォーマット仕様が必要とされる。映像ビットストリームに関する重要な情報、例えば、プロファイル、階層、レベル、その他多数は、コンテンツ選択のために、例えば、ストリーミングセッションの開始時の初期化およびストリーミングセッション中のストリーム適応の両方のために、ファイルフォーマットレベルのメタデータおよび/またはDASHメディアプレゼンテーション記述(MPD)として公開される必要がある。
【0028】
同様に、ISOBMFFを有する画像フォーマットを使用するために、AVC画像ファイルフォーマットおよびHEVC画像ファイルフォーマット等の、画像フォーマットに特定のファイルフォーマット仕様が必要とされる。
【0029】
ISOBMFFに基づくVVC映像コンテンツを記憶するためのファイルフォーマットであるVVC映像ファイルフォーマットは、現在、MPEGによって開発されている。MPEG出力文書N19454の最終草案仕様は、情報技術-オーディオビジュアルオブジェクトの符号化-パート15:ISOベースのメディアファイルフォーマットのネットワーク抽象化層(NAL)単位で構造化された映像の担持、補正2:ISOBMFFにおけるVVCおよびEVCの担持、2020年7月)である。
【0030】
ISOBMFFに基づく、VVCを使用して符号化された画像内容を記憶するためのファイルフォーマットであるVVC画像ファイルフォーマットは、現在、MPEGによって開発されている。VVC画像ファイルフォーマットの最新草案仕様は、MPEG出力文書N19460「情報技術-異種環境における高効率符号化およびメディア配信-第12部:画像ファイルフォーマット-補正3:VVC、EVC、スライドショーおよびその他の改善のサポート」、2020年7月に含まれている。
【0031】
3.3 VVCにおける時間的スケーラビリティサポート
【0032】
VVCは、HEVCと同様な時間的スケーラビリティのサポートを含む。そのようなサポートは、NALユニットのヘッダにおける時間的IDの信号通知、特定の時間的サブレイヤのピクチャを下位時間的サブレイヤのピクチャによるインター予測参照に使用できないという制限、サブビットストリーム抽出プロセス、および適切な入力の各サブビットストリーム抽出出力が適合ビットストリームでなければならないという要件を含む。メディアアウェアネットワークエレメント(MANE)は、時間的スケーラビリティに基づいて、ストリーム適応のために、NALユニットヘッダにおける時間的IDを利用することができる。
【0033】
3.4 VVCにおけるシーケンス内のピクチャ解像度の変更
【0034】
AVCおよびHEVCにおいて、ピクチャの空間的解像度は、新しいSPSを使用する新しいシーケンスがIRAPピクチャで始まらない限り、変更することができない。VVCは、常にイントラ符号化されるIRAPピクチャを符号化せずに、ある位置のシーケンス内でピクチャの解像度を変更することを可能にする。この特徴は、参照ピクチャが復号化されている現在のピクチャと異なる解像度を有する場合、インター予測に使用される参照ピクチャをリサンプリングすることが必要であるため、参照ピクチャリサンプリング(RPR)と称する。
【0035】
既存の実装形態の動き補償モジュールを再利用することを可能にするために、スケーリング比は、1/2(参照ピクチャから現在のピクチャへのダウンサンプリングの2倍)以上8(8倍のアップサンプリング)以下に制限される。水平および垂直スケーリング比は、ピクチャの幅および高さ、並びに参照ピクチャおよび現在のピクチャに対して指定された左、右、上および下のスケーリングオフセットに基づいて導出される。
【0036】
RPRは、IRAPピクチャを符号化する必要なく解像度を変更することを可能にし、これにより、ストリーミングまたはビデオ会議のシナリオにおいて、例えば、ネットワーク条件の変化に対処するために、瞬間的なビットレートの急上昇を引き起こす。RPRは、映像領域全体またはある関心領域のズームが必要とされる応用シナリオにも使用できる。スケーリング窓オフセットは、より幅広い範囲のズームに基づくアプリケーションをサポートするように、負のオフセットも可能である。また、負のスケーリング窓オフセットにより、抽出されたサブビットストリームに対して元のビットストリームと同じスケーリング窓を維持しつつ、多層ビットストリームからサブピクチャシーケンスを抽出することが可能になる。
【0037】
HEVCのスケーラブル拡張における空間的スケーラビリティとは異なり、2つの異なるステージでピクチャのリサンプリングおよび動き補償を行う場合、VVCにおけるRPRは、動き補償の間にサンプル位置の導出および動きベクトルのスケーリングを行うブロックレベルでの同じプロセスの一部として実行される。
【0038】
実装の複雑性を制限するために、CLVSにおけるピクチャがピクチャごとに複数のサブピクチャを有する場合、CLVSにおけるピクチャ解像度の変更は許可されない。また、現在のピクチャと参照ピクチャとの間でRPRを使用する場合、デコーダ側動きベクトル微調整、双方向オプティカルフロー、およびオプティカルフローによる予測の改善は適用されない。また、時間的動きベクトル候補を導出するための同一位置に配置されたピクチャピクチャは、現在のピクチャと同じピクチャサイズ、スケーリング窓オフセット、およびCTUサイズを有するように制限される。
【0039】
RPRをサポートするために、VVC設計の他のいくつかの態様は、HEVCとは異ならせている。まず、SPSの代わりに、PPSにおいて、画像解像度および対応する適合性およびスケーリング窓を信号通知し、SPSにおいて、最大ピクチャ解像度および対応する適合性窓を信号通知する。応用例において、SPSにおける対応する適合性窓オフセットを有する最大ピクチャ解像度を、クロッピング後の意図したまたは所望のピクチャ出力サイズとして使用できる。第2に、単層ビットストリームの場合、各ピクチャ記憶域(1つの復号化されたピクチャを記憶するためにDPB内の1つのスロット)は、最大ピクチャ解像度を有する復号化されたピクチャを記憶するために必要なバッファサイズを占める。
【0040】
3.5 VVCにおける多層スケーラビリティサポート
【0041】
VVCコア設計におけるRPRによって、現在のピクチャとは異なるサイズの参照ピクチャからインター予測する能力を有するため、VVCは、異なる解像度の複数のレイヤ、例えば、それぞれ標準解像度および高解像度を有する2つのレイヤを含むビットストリームを容易にサポートすることができる。VVCデコーダにおいて、RPRアップサンプリングフィルタを再利用することで、空間的スケーラビリティのサポートに必要なアップサンプリング機能を実現することができるため、このような機能は、追加の信号処理レベルの符号化ツールを必要とせずに統合できる。それでも、ビットストリームのスケーラビリティサポートを可能にするためには、追加の高レベル構文設計が必要である。
【0042】
スケーラビリティはVVCでサポートされているが、多層プロファイルにしか含まれていない。AVCおよびHEVCの拡張を含む、任意の以前の映像符号化規格におけるスケーラビリティサポートとは異なり、VVCのスケーラビリティの設計は、単層デコーダの実装形態にできるだけ適したものにされてきた。多層ビットストリームの復号化能力は、ビットストリームに1つのレイヤしかなかったかの如く規定される。例えば、DPBサイズのような復号化能力は、復号化されるビットストリームのレイヤの数に依存しないようで規定される。基本的に、単層ビットストリームのために設計されたデコーダは、多層ビットストリームを復号化することができるようにするために、大きな変更を必要としない。
【0043】
AVCおよびHEVCの多層拡張の設計と比較して、HLSの態様は、ある程度の柔軟性を犠牲にして大幅に簡略化されてきた。例えば、1)IRAP AUは、CVSに存在するレイヤ毎にピクチャを含むことが必要であり、これにより、各レイヤのスタートアップ復号化プロセスを規定する必要がなくなり、2)複雑なPOCリセット機構の代わりに、POC信号通知のためのはるかに簡単な設計がVVCに含まれ、導出されたPOC値がAUにおけるすべてのピクチャに対して必ず同じになるようにする。
【0044】
HEVCと同様に、VPSには、レイヤおよびレイヤ依存関係に関する情報が含まれている。OLSの情報は、OLSにどのレイヤが含まれているか、どのレイヤが出力されるか、および各OLSに関連付けられたPTL、HRDパラメータ等の他の情報を信号通知するために提供されるものである。HEVCと同様に、カスタム出力モードにおいて、すべてのレイヤ、最上位レイヤのみ、または特定の示されたレイヤのいずれかを出力するための3つの動作モードがある。
【0045】
VVCおよびHEVCにおけるOLS設計には若干の違いがある。まず、HEVCにおいて、レイヤセットを信号通知し、次に、レイヤセットに基づいてOLSを信号通知し、OLS毎に出力レイヤを信号通知する。HEVCにおける設計は、レイヤが、出力レイヤでもなく、出力レイヤの復号化に必要なレイヤでもないOLSに属することを許可した。VVCにおいて、この設計は、OLSにおける任意のレイヤが、出力レイヤであるか、または出力レイヤを復号化するために必要なレイヤでなければならない。そのため、VVCにおいて、OLSは、OLSの出力レイヤを示すことで信号通知され、その後、OLSに属する他のレイヤが、VPSに示されるレイヤ依存関係によって簡単に導出される。さらに、VVCでは、各レイヤが少なくとも1つのOLSに含まれていなければならない。
【0046】
VVC OLSの設計における別の相違は、OLSがOLSにマッピングされた識別されたレイヤのセットに属するすべてのNALユニットからなるHEVCとは異なり、VVCは、OLSにマッピングされた非出力レイヤに属するいくつかのNALユニットを排除してもよい点である。具体的には、VVCのためのOLSは、ph_recovery_poc_cntが0であるIRAPまたはGDRピクチャのみを含む非出力レイヤを有するOLSにマッピングされるレイヤのセット、またはレイヤ間予測に使用されるサブレイヤからのピクチャからなる。これにより、OLSを形成するレイヤ内のすべてのサブレイヤのすべての「必要な」ピクチャのみを考慮して、マルチレイヤビットストリームのための最適なレベル値を示すことができ、ここで、「必要な」とは、ここでいう、出力または復号化に必要であることを意味する。図8は、vps_max_tid_il_ref_pics_plus1[1][0]が0である2レイヤビットストリーム、すなわち、OLS2が抽出される時にレイヤL0からのIRAPピクチャのみが保持されるサブビットストリームを例示する。
【0047】
AVCおよびHEVCと同様に、異なるレイヤにおいて異なるRAP周期性を許可することが有益であるいくつかのシナリオを考慮すると、AUは、非整列RAPを有するレイヤを有することができる。多層ビットストリームにおけるRAPのより高速な識別のために、すなわち、すべてのレイヤにRAPを有するAUは、AUがIRAP AUであるかGDR AUであるかを示すフラグを有するHEVCと比較して、アクセスユニットデリミタ(AUD)を拡張した。さらに、VPSが複数のレイヤを示す場合、AUDは、このようなIRAPまたはGDR AUに存在することが義務付けられる。しかしながら、VPSで示されるような単層ビットストリームまたはVPSを参照しないビットストリームの場合、AUDは、HEVCのように、AUにおける第1のスライスのNALユニットタイプおよびそれぞれのパラメータセットからRAPを容易に検出することができるので、完全に省略可能である。
【0048】
複数のレイヤによるSPS、PPS、およびAPSの共有を可能にすると同時に、ビットストリーム抽出プロセスが復号化プロセスで必要とされるパラメータセットを捨てないようにするために、第1のレイヤのVCL NALユニットは、第1のレイヤを含むすべてのOLSが下位のレイヤのID値によって識別されるレイヤをも含む限り、同じまたは下位のレイヤID値を有するSPS、PPS、またはAPSを指すことができる。
【0049】
3.6. VVC映像ファイルフォーマットの詳細
【0050】
3.6.1. 複数のレイヤを有するVVC記憶域の概要
【0051】
複数のレイヤを有するVVCビットストリームのためのサポートには、多数のツールが含まれ、それらをどのように使用するかについては様々な「models」がある。複数のレイヤを有するVVCストリームは、複数の方法でトラックに配置でき、そのうちの1つは、以下のようである。
1.1つのトラックにおけるすべてのレイヤであって、すべてのレイヤは動作点に対応する。
2.1つのトラックにおけるすべてのレイヤであって、すべてのレイヤを含む動作点がない。
3.個々のトラックにおける1つ以上のレイヤまたはサブレイヤであって、示された1つ以上のトラックのすべてのサンプルを含むビットストリームは、動作点に対応する。
4.個々のトラックにおける1つ以上のレイヤまたはサブレイヤであって、1つ以上のトラックのセットのすべてのNALユニットを含む動作点がない。
【0052】
VVCファイルフォーマットは、1つ以上のレイヤをトラックに記憶させることができる。1つのトラック当たり複数のレイヤの記憶域を使用できる。例えば、コンテンツプロバイダが、サブセット化することを意図していない多層ビットストリームを提供したい場合、またはビットストリームが、各レイヤがビュー(例えば、ステレオペア)に対応する少数の予め定義された出力レイヤのセットのために生成された場合、それに応じてトラックを生成することができる。
【0053】
VVCビットストリームが複数のトラックで表現され、プレーヤーが複数のトラックに複数のレイヤが記憶されている動作点を使用する場合、プレーヤーはVVCアクセスユニットをVVCデコーダに渡す前にVVCアクセスユニットを再構成しなければならない。
【0054】
VVC動作点は、トラックによって明示的に表現されてもよい。即ち、このトラックにおける個々のサンプルは、自然にまたは「subp」のトラック参照(存在する場合)を分解することによって、且つ「vvcN」のトラック参照(存在する場合)を分解することによって、アクセスユニットを含む。アクセスユニットは、動作点の一部であるすべてのレイヤおよびサブレイヤからのNALユニットを含む。
【0055】
VVCビットストリームの記憶域は、以下のような構造によってサポートされる。
a) サンプルのエントリ、
b) 動作点情報(「vopi」)サンプルグループ
c) レイヤの情報(「linf」)サンプルグループ、
d) 動作点エンティティグループ(「opeg」)。
【0056】
サンプルエントリ内の構造は、そのサンプルエントリに関連付けられたサンプルの復号化または使用のための情報、この場合は符号化映像および非VCLデータ情報を提供する。
【0057】
動作点情報サンプルグループは、動作点を構成するレイヤおよびサブレイヤ等の動作点、それらの間の依存関係(もしあれば)、動作点のプロファイル、階層およびレベルパラメータ、並びに他のこのような動作点に関連する情報を記録する。
【0058】
レイヤ情報サンプルグループは、トラックのサンプルに含まれるすべてのレイヤおよびサブレイヤを列挙する。
【0059】
動作点エンティティグループは、動作点を構成するレイヤおよびサブレイヤ、それらの間の依存関係(もしあれば)、動作点のプロファイル、階層、およびレベルパラメータ、並びに他のそのような動作点に関連する情報などの動作点に関する情報、並びに各動作点を担持するトラックの識別を記録する。
【0060】
これらのサンプルグループにおける情報は、トラック参照を使用してトラックを見出すことと合わせて、または動作点エンティティグループにおいて、読取装置がその能力に従って動作点を選択し、選択された動作点を復号化するために必要な関連するレイヤおよびサブレイヤを含むトラックを識別し、且つそれらを効率的に抽出するのに十分である。
【0061】
3.6.2. データ共有および再構成VVCビットストリーム
【0062】
3.6.2.1 一般
【0063】
多層VVCビットストリームを担持する複数のトラックのサンプルからアクセスユニットを再構成するために、まず動作点を決定することが必要である。
注:VVCビットストリームが複数のVVCトラックで表現される場合、ファイル構文解析ツールは、選択された動作点に必要なトラックを以下のように特定することができる。
VVCサンプルエントリですべてのトラックを検索する。
トラックに同じIDの「oref」トラックリファレンスが含まれている場合、そのIDをVVCトラックまたは「opeg」エンティティグループに分解する。
「opeg」エンティティグループまたは「vopi」サンプルグループから、復号化能力および用途に適した動作点を選択する。
「opeg」エンティティグループが存在する場合、それは、トラックセットが選択された動作点を正確に表すことを示す。このように、VVCビットストリームをトラックのセットから再構成し、復号化することができる。
「opeg」エンティティグループが存在しない場合(即ち、「vopi」サンプルグループが存在する場合)、「vopi」および「linf」から、選択された動作点を復号化するために、どのトラックセットが必要であるかを見出す。
【0064】
VVCビットストリームを担持する複数のVVCトラックからビットストリームを再構成するために、まず目標最高値TemporalIdを決定することが必要となる場合がある。
【0065】
複数のトラックがアクセスユニットのためのデータを含む場合、トラック内のそれぞれのサンプルのアラインメントは、サンプルの復号化時間に基づいて、すなわち、編集リストを考慮せずに時間対サンプルの表を使用して行われる。
【0066】
VVCビットストリームが複数のVVCトラックで表現される場合、サンプルの復号化時間は、復号化時間が大きい順にトラックを単一のストリームにまとめた場合に、ISO/IEC23090-3で規定されているアクセスユニットの順序が正しくなるようにしなければならない。
【0067】
3.6.2.2項に記載されているように、黙示的再構成プロセスに従って、必要なトラックにおけるそれぞれのサンプルからアクセスユニットのシーケンスを再構成する。
【0068】
3.6.2.2. VVCビットストリームの黙示的再構成
【0069】
動作点情報サンプルグループが存在する場合、動作点情報およびレイヤ情報サンプルグループに示されるように、それらが担持するレイヤおよびそれらの基準レイヤに基づいて、必要なトラックを選択する。
【0070】
OperatingPointGroupBoxの情報に基づいて、動作点エンティティグループが存在する場合、必要なトラックを選択する。
【0071】
VCL NALユニットが0より大きいTemporalIdを有するサブレイヤを含むビットストリームを再構成する場合、同じレイヤ内のすべての下位のサブレイヤ(すなわち、VCL NALユニットがより小さいTemporalIdを有するサブレイヤ)もまた、結果のビットストリームに含まれ、それに応じて必要なトラックが選択される。
【0072】
アクセスユニットを再構成するとき、同じ復号化時間を有するサンプルからのピクチャユニット(ISO/IEC23090-3で規定される)を、nuh_layer_id値の大きい順にアクセスユニットに入れる。
【0073】
依存するレイヤを持つアクセスユニットを再構成する際に、max_tid_il_ref_pics_plus1が0より大きい場合、同一レイヤ内で、VCL NALユニットのTemporalIdがmax_tid_il_ref_pics_plus1-1(動作点情報サンプルグループに示されたように)以下である参照レイヤのサブレイヤも、結果のビットストリームに含まれ、それに応じて必要なトラックが選択されることになる。
【0074】
従属層を有し、max_tid_il_ref_pics_plus1が0であるアクセスユニットを再構成するとき、参照レイヤのIRAPピクチャユニットのみが結果のビットストリームに含まれ、それに応じて必要なトラックが選択される。
【0075】
VVCトラックが「subp」トラックリファレンスを含む場合、個々のピクチャユニットは、以下で規定されるようなEOSおよびEOB NALユニットに対する追加の制約を伴って11.7.3項で規定されるように再構成される。11.7.3項のプロセスは、nuh_layer_idの大きい順に目標動作点の各レイヤについて繰り返される。そうでない場合、各ピクチャユニットは、以下のように再構成される。
【0076】
再構成されたアクセスユニットは、復号化時間の早い順にVVCビットストリームに入れられ、さらに後述するように、ビットストリーム終了(EOB)およびシーケンス終了(EOS)NALユニットの複製がVVCビットストリームから取り除かれる。
【0077】
VVCビットストリームの同じ符号化映像シーケンス内にあり、複数のトラックに記憶された異なるサブレイヤに属するアクセスユニットの場合、それぞれのサンプルにおいて、特定のnuh_layer_id値を有するEOS NALユニットを含む2つ以上のトラックがあってもよい。この場合、最後のアクセスユニットのうち、EOB NALユニット(存在する場合)を除き、すべてのNALユニットの後に配置された最後の再構成ビットストリームにおいて、EOS NALユニットのうちの1つのみをこれらのアクセスユニットの最後のユニット(復号化時間が最も長いユニット)に保持し、他のEOS NALユニットは廃棄する。同様に、それぞれのサンプルにおいて、1つのEOB NALユニットを含む2つ以上のこのようなトラックがあってもよい。この場合、EOB NALユニットの1つのみが、これらのアクセスユニットの最後の末端に配置される最終的な再構成ビットストリームに保持され、他のEOB NALユニットは廃棄される。
【0078】
特定のレイヤまたはサブレイヤは2つ以上のトラックで表現されることができるので、動作点に必要なトラックを計算する時に、特定のレイヤまたはサブレイヤをすべて担持するトラックのセットの中から選択することが必要となることがある。
【0079】
動作点エンティティグループが存在しない場合、最終的に必要とされるトラックは、同じレイヤまたはサブレイヤを担持するトラック間で選択された後、依然として目標動作点に属さないいくつかのレイヤまたはサブレイヤをセット的に担持してもよい。目標動作点のために再構成されたビットストリームは、最終的に必要とされるトラックに含まれるが、目標動作点に属さないレイヤまたはサブレイヤを含むべきでない。
【0080】
注:VVCデコーダの実装形態は、入力として、目標出力レイヤセットインデックスに対応するビットストリーム、および目標動作点の最高TemporalId値を取り、これらは、それぞれ、ISO/IEC23090-3の項目8におけるTargetOlsIdx変数およびHighestTid変数に対応する。ファイル構文解析ツールは、再構成されたビットストリームが、VVCデコーダに送信する前に、目標動作点に含まれていた以外のレイヤおよびサブレイヤを含まないことを確保する必要がある。
【0081】
3.6.3. 動作点情報サンプルグループ
【0082】
3.6.3.1. 定義
【0083】
アプリケーションは、動作点情報サンプルグループ(「vopi」)を使用することで、所与のVVCビットストリームに提供される異なる動作点およびそれらの構成の通知を受ける。各動作点は、出力レイヤセット、最大TemporalId値、およびプロファイル、レベル、および階層信号通知に関連する。これら情報はすべて「vopi」サンプルグループで捕捉されたものである。この情報とは別に、このサンプルグループは、レイヤ間の依存関係情報も提供する。
【0084】
VVCビットストリームに対して2つ以上のVVCトラックが存在し、VVCビットストリームに対して動作点エンティティグループが存在しない場合、以下の両方が適用される。
- VVCビットストリームのためのVVCトラックの間に、1つの「vopi」サンプルグループを担持する1つのトラックのみが存在するものとする。
- VVCビットストリームの他のすべてのVVCトラックは、「vopi」のサンプルグループを担持するトラックに「oref」型のトラック基準を有するものとする。
【0085】
所与のトラックにおける任意の特定のサンプルに対して、別のトラックにおける時間的に同一位置に配置されたサンプルは、この特定のサンプルの復号化時間と同じ復号化時間を有するものとして定義される。「vopi」サンプルグループを担持するトラックTkに対して「oref」トラック基準を有するトラックTNにおけるそれぞれのサンプルSNについて、以下が適用される。
- トラックTk内に時間的に同一位置に配置されたサンプルSkが存在する場合、サンプルSNは、サンプルSkと同じ「vopi」サンプルグループエントリに関連付けられる。
- そうでない場合、サンプルSNは、復号化時にサンプルSNに先行するトラックTk内のサンプルのうちの最後のサンプルと同じ「vopi」サンプルグループエントリに関連付けられる。
【0086】
複数のVPSがVVCビットストリームによって参照される場合、grouping_type「vopi」を有するサンプルグループ記述ボックスに複数のエントリを含めることが必要となる場合がある。1つのVPSが存在するより一般的な場合、ISO/IEC14496-12に定義されたデフォルトのサンプルグループ機構を使用し、各トラック断片にそれを含めるのではなく、サンプルテーブルボックスに動作点情報サンプルグループを含めることが推奨される。
【0087】
grouping_type_parameterは、グルーピングタイプが「vopi」であるSampleToGroupBoxに対しては定義されない。
【0088】
3.6.3.2. 構文
【0089】
class VvcOperatingPointsRecord{
unsigned int(8)num_profile_tier_level_minus1;
for(i=0;i<=num_profile_tier_level_minus1;i++){
unsigned int(8)ptl_max_temporal_id[i];
VvcPTLRecord(ptl_max_temporal_id[i]+1)ptl[i];

unsigned int(1)all_independent_layers_flag;
bit(7)reserved=0;
if(all_independent_layers_flag){
unsigned int(1)each_layer_is_an_ols_flag;
bit(7)reserved=0;
} else
unsigned int(8)ols_mode_idc;
unsigned int(16)num_operating_points;
for(i=0;i<num_operating_points){
unsigned int(16)output_layer_set_idx;
unsigned int(8)ptl_idx;
unsigned int(8)max_temporal_id;
unsigned int(8)layer_count;
for(j=0;j<layer_count;j++){
unsigned int(6)layer_id;
unsigned int(1)is_outputlayer;
bit(1)reserved=0;

bit(6)reserved=0;
unsigned int(1)frame_rate_info_flag
unsigned int(1)bit_rate_info_flag
if(frame_rate_info_flag){
unsigned int(16)avgFrameRate;
bit(6)reserved=0;
unsigned int(2)constantFrameRate;

if(bit_rate_info_flag){
unsigned int(32)maxBitRate;
unsigned int(32)avgBitRate;


unsigned int(8)max_layer_count;
for(i=0;i<max_layer_count;i++){
unsigned int(8)layerID;
unsigned int(8)num_direct_ref_layers;
for(j=0;j<num_direct_ref_layers;j++)
unsigned int(8)direct_ref_layerID;
unsigned int(8)max_tid_il_ref_pics_plus1;


class VvcOperatingPointsInformation extends VisualSampleGroupEntry(「vopi」){
VvcOperatingPointsRecord oinf;
【0090】
3.6.3.3. 意味論
【0091】
num_profile_tier_level_minus1プラス1は、以下のプロファイル、階層、レベルの組み合わせの数および関連するフィールドを示す。
ptl_max_temporal_id[i]:指定したi番目のプロファイル、階層、レベル構造に対応するビットストリームのNALユニットの最大TemporalIDを示す。
【0092】
注:以下に示す、動作点のptl_max_temporal_id[i]およびmax_temporal_idは、同じ数値を担持する場合もあるが、意味論が異なる。
【0093】
ptl[i]は、i番目のプロファイル、階層、レベル構造を指定する。
all_independent_layers_flag、each_layer_is_an_ols_flag、ols_mode_idc、およびmax_tid_il_ref_pics_plus1は、ISO/IEC23090-3において定義される。
num_operating_points:以下の情報を実行する動作点数を示す。
output_layer_set_idxは、動作点を定義する出力レイヤセットのインデックスである。output_layer_set_idxとlayer_id値とのマッピングは、インデックスがoutput_layer_set_idxである出力レイヤのVPSで指定されたものと同じにする。
ptl_idx:インデックスがoutput_layer_set_idxである出力レイヤセットの、リストされたプロファイル、レベル、および階層構造のゼロベースのインデックスに信号通知する。
max_temporal_id:この動作点のNALユニットの最大TemporalIdを指定する。
【0094】
注:レイヤ情報サンプルグループに示されるTemporalIdの最大値は、ここで示されるTemporalIdの最大値とは異なる意味論を有する。しかしながら、それらは同じ文字通りの数値を担持してもよい。
【0095】
layer_count:このフィールドは、この動作点の、ISO/IEC23090-3に定義されるとおりの必要なレイヤの数を示す。
layer_id:動作点のレイヤのためのnuh_layer_id値を提供する。
is_outputlayer:レイヤが出力レイヤであるかどうかを示すフラグ。1は出力レイヤを示す。
frame_rate_info_flagが0であると、動作点についてフレームレート情報が存在しないことを示す。値1は、動作点に対してフレームレート情報が存在することを示す。
bit_rate_info_flagが0であると、動作点に対してビットレート情報が存在しないことを示す。値1は、ビットレート情報が動作点に存在することを示す。
avgFrameRateは、動作点の平均フレームレートをフレーム/(256秒)の単位で示す。値0は、不特定の平均フレームレートを示す。
constantFrameRateが1であることは、動作点のストリームが一定のフレームレートであることを示す。値2は、動作点のストリームにおける各時間層レイヤの表現が一定のフレームレートであることを示す。値0は、動作点のストリームが一定のフレームレートであってもなくてもよいことを示す。
maxBitRateは、1秒の任意の窓にわたって、動作点のストリームのビット/秒で表される最大ビットレートを与える。
avgBitRateは、動作点のストリームのビット/秒で表される平均ビットレートを与える。
max_layer_count:この関連付けられたベーストラックに関連付けられたすべての動作点におけるすべての固有レイヤの数。
layerID:direct_ref_layerIDの次のループにおいてすべての直接参照レイヤが与えられるレイヤのnuh_layer_id。
num_direct_ref_layers:nuh_layer_idがlayerIDであるレイヤの直接参照レイヤの数。
direct_ref_layerID:直接参照レイヤのnuh_layer_id。
【0096】
3.6.4. レイヤ情報サンプルグループ
【0097】
トラックが担持するレイヤおよびサブレイヤのリストは、レイヤ情報サンプルグループにおいて信号通知される。同じVVCビットストリームに対して2つ以上のVVCトラックが存在する場合、これらのVVCトラックの各々は、「linf」サンプルグループを担持する。
【0098】
複数のVPSがVVCビットストリームによって参照される場合、grouping_type「linf」を有するサンプルグループ記述ボックスに複数のエントリを含めることが必要となる場合がある。1つのVPSが存在するより一般的な場合、ISO/IEC14496-12に定義されたデフォルトのサンプルグループ機構を使用し、各トラック断片に含めるのではなく、サンプルテーブルボックスにレイヤ情報サンプルグループを含めることが推奨される。
【0099】
grouping_type_parameterは、グルーピングタイプが「linf」であるSampleToGroupBoxに対しては定義されない。
「linf」サンプルグループの構文および意味論は、それぞれ9.6.3.2項および9.6.3.3項で規定されている。
【0100】
3.6.5. 動作点エンティティグループ
【0101】
3.6.5.1. 一般
【0102】
動作点エンティティグループは、動作点への軌道のマッピングおよび動作点のプロファイルレベル情報を提供するように定義される。
このエンティティグループに記載されている動作点にマッピングされたトラックのサンプルを集約する場合、黙示的な再構成プロセスでは、さらなるNALユニットを除去しなくても、適合するVVCビットストリームが得られる。動作点エンティティグループに属するトラックは、この動作点エンティティグループに示されているgroup_idに「oref」型のトラック参照トラックを有するものとする。
動作点エンティティグループに含まれるすべてのentity_id値は、同じVVCビットストリームに属するものとする。存在する場合、OperatingPointGroupBoxは、ムービーレベルのMetaBoxにおけるGroupsListBoxに含まれるものとし、ファイルレベルのMetaBoxまたはトラックレベルのMetaBoxに含まれないものとする。
【0103】
3.6.5.2. 構文
【0104】
aligned(8)class OperatingPointGroupBox extends EntityToGroupBox(「opeg」,0,0)

unsigned int(8)num_profile_tier_level_minus1;
for(i=0;i<=num_profile_tier_level_minus1;i++)
VvcPTLRecord(0)opeg_ptl[i];
unsigned int(16)num_operating_points;
for(i=0;i<num_operating_points){
unsigned int(16)output_layer_set_idx;
unsigned int(8)ptl_idx;
unsigned int(8)max_temporal_id;
unsigned int(8)layer_count;
for(j=0;j<layer_count;j++){
unsigned int(6)layer_id;
unsigned int(1)is_outputlayer;
bit(1)reserved=0;

bit(6)reserved=0;
unsigned int(1)frame_rate_info_flag
unsigned int(1)bit_rate_info_flag
if(frame_rate_info_flag){
unsigned int(16)avgFrameRate;
bit(6)reserved=0;
unsigned int(2)constantFrameRate;

if(bit_rate_info_flag){
unsigned int(32)maxBitRate;
unsigned int(32)avgBitRate;

unsigned int(8)entity_count;
for(j=0;j<entity_count;j++){
unsigned int(8)entity_idx;


【0105】
3.6.5.3. 意味論
【0106】
num_profile_tier_level_minus1プラス1は、以下のプロファイル、階層、レベルの組み合わせの数および関連するフィールドを示す。
opeg_ptl[i]第i番目のプロファイル、階層、レベル構造を指定する。
num_operating_points:以下の情報を実行する動作点数を示す。
output_layer_set_idxは、動作点を定義する出力レイヤセットのインデックスである。output_layer_set_idxとlayer_id値とのマッピングは、インデックスがoutput_layer_set_idxである出力レイヤのVPSで指定されたものと同じにする。
ptl_idx:インデックスがoutput_layer_set_idxである、出力レイヤセットの、リストされたプロファイル、レベル、および階層構造のゼロベースのインデックスに信号通知する。
max_temporal_id:この動作点のNALユニットの最大TemporalIdを指定する。
【0107】
注:レイヤ情報サンプルグループに示されるTemporalIdの最大値は、ここで示されるTemporalIdの最大値とは異なる意味論を有する。しかしながら、それらは同じ文字通りの数値を担持してもよい。
【0108】
layer_count:このフィールドは、この動作点の、ISO/IEC23090-3に定義されるとおりの必要なレイヤの数を示す。
layer_id:動作点のレイヤのためのnuh_layer_id値を提供する。
is_outputlayer:レイヤが出力レイヤであるかどうかを示すフラグ。1は出力レイヤを示す。
frame_rate_info_flagが0であると、動作点についてフレームレート情報が存在しないことを示す。値1は、動作点に対してフレームレート情報が存在することを示す。
bit_rate_info_flagが0であると、動作点に対してビットレート情報が存在しないことを示す。値1は、ビットレート情報が動作点に存在することを示す。
avgFrameRateは、動作点の平均フレームレートをフレーム/(256秒)の単位で示す。値0は、不特定の平均フレームレートを示す。
constantFrameRateが1であることは、動作点のストリームが一定のフレームレートであることを示す。値2は、動作点のストリームにおける各時間層レイヤの表現が一定のフレームレートであることを示す。値0は、動作点のストリームが一定のフレームレートであってもなくてもよいことを示す。
maxBitRateは、1秒の任意の窓にわたって、動作点のストリームのビット/秒で表される最大ビットレートを与える。
avgBitRateは、動作点のストリームのビット/秒で表される平均ビットレートを与える。
entity_count動作点に存在するトラックの数を指定する。
entity_idx動作点に属するエンティティグループ内のentity_idリストへのインデックスを指定する。
【0109】
4. 開示される技術的解決策が解決しようとする技術課題の例
【0110】
スケーラブルVVCビットストリームの記憶域に関するVVC映像ファイルフォーマットの最近の設計は、以下のような問題を有する。
【0111】
1) VVCビットストリームが複数のVVCトラックで表現される場合、ファイル構文解析ツールは、まずVVCサンプルエントリを有するすべてのトラックを見出し、次いで「vopi」サンプルグループを含むすべてのトラックを見出すことなどによって、選択された動作点に必要なトラックを識別し、ファイルに提供されたすべての動作点の情報を見つけ出すことができる。しかしながら、これらすべてのトラックを見つけることは、非常に複雑である。
【0112】
2) 「linf」サンプルグループは、どのレイヤおよび/またはサブレイヤがトラックに含まれているかの情報を信号通知する。「vopi」サンプルグループを使用してOPを選択する場合、「linf」サンプルグループを含むすべてのトラックを見出す必要があり、これらのトラックの「linf」サンプルグループエントリに含まれる情報を、OPのレイヤおよび/またはサブレイヤにおける「vopi」サンプルグループエントリにおける情報とともに使用して、必要なトラックを見つけ出す。これらは非常に複雑になり得る。
【0113】
3) 「vopi」サンプルグループエントリにおいて、all_independent_layers_flagが1であっても、レイヤ依存性情報を信号通知する。しかしながら、all_independent_layers_flagが1である場合、レイヤ依存性情報は既知であり、従って、この場合の信号通知のためのビットはすべて浪費されることになる。
【0114】
4) 複数のトラックからVVCビットストリームを黙示的に再構成する処理において、冗長なEOSおよびEOB NALユニットを除去することが規定される。しかしながら、この処理におけるAUD NALユニットの取り外しおよび/または書き換えは、必要とされ得るが、対応する処理が不足している。
【0115】
5) なお、「opeg」エンティティグループが存在する場合、NALユニットを取り除くことなく、必要なトラックのすべてのNALユニットを含めることで、複数のトラックからビットストリームを再構成する。しかしながら、これは、例えば、特定のAUのためのAUD、EOS、およびEOB NALユニットのようなNALユニットが、VVCビットストリームを担持する2つ以上のトラックに含まれることを許可しない。
【0116】
6) 「opeg」エンティティグループボックスのコンテナは、ムービーレベルのメタボックスに指定される。ただし、ファイルレベルのMetaBoxに含まれている場合のみ、エンティティグループのentity_id値はトラックIDを参照する。
【0117】
7) 「opeg」エンティティグループボックスにおいて、フィールドoutput_layer_set_idxは、各OPに必ず信号通知される。しかしながら、OPが1つのレイヤのみを含む場合、OLSインデックスの値を知る必要がないことが多く、OLSインデックスを知ることが有用であっても、このレイヤのみを含むOLSのOLSインデックスであることを容易に導出することができる。
【0118】
8) VVCビットストリームに対して「opeg」エンティティグループが存在する場合、VVCビットストリームを表すトラックの1つは、「vopi」サンプルグループを有することができる。しかし、両方を許可することは不必要であり、ファイルサイズを不必要に大きくするだけであり、どちらを使用すべきかファイル構文解析ツールを混乱させる可能性がある。
【0119】
5. 解決策のリスト
【0120】
上記課題を解決するために、以下に示す方法が開示されている。これらの項目は、一般的な概念を説明するための例であり、狭義に解釈されるべきではない。さらに、これらの項目は、個々に適用されてもよく、または任意の方法で組み合わされてもよい。
【0121】
1) 課題1を解決するために、以下の項目の1つ以上を提案する。
a.OPごとに必要なトラックを含め、ファイルに含まれているすべてのOPに関するファイルレベル情報の信号通知を追加する一方、OPに必要なトラックは、OPに含まれていないレイヤまたはサブレイヤを担持してもよい。
b.「vopi」のサンプルグループがどのトラックに含まれているかを示すファイルレベルの情報の信号通知を追加する。
i.一例において、「vopi」のサンプルグループを担持するトラックに信号通知するために、ファイルレベルのMetaBoxをコンテナとして、新しいボックスを指定する(例えば、動作点情報トラックボックスと呼ばれる)。
ファイルレベル情報は、ファイルレベルボックスまたはムービーレベルボックスまたはトラックレベルボックスに信号通知されてもよいが、トラックレベルボックスの位置は、ファイルレベルボックスまたはムービーレベルボックスにおいて識別される。
【0122】
2) 課題2を解決するために、以下の項目の1つ以上を提案する。
a.「vopi」サンプルグループエントリのOPごとに必要なトラックの情報を追加する。
b.「linf」サンプルグループの使用を廃止する。
【0123】
3) 課題3を解決するために、all_independent_layers_flagが1である場合、「vopi」サンプルグループエントリにおけるレイヤ依存情報の信号通知をスキップする。
【0124】
4) 課題4を解決するために、複数のトラックからVVCビットストリームを黙示的に再構成するプロセスにおいて、冗長なAUD NALユニットを除去する動作を追加する。
a.代替的に、必要に応じて、AUD NALユニットを書き換える動作をさらに加える。
i.一例において、異なるトラックの複数のピクチャユニットからアクセスユニットを再構成するとき、再構成されたアクセスユニットに含まれているAUD NALユニットのaud_irap_or_gdr_flagが1であり、かつ、再構成されたアクセスユニットがIRAPまたはGDRアクセスユニットでない場合、AUD NALユニットのaud_irap_or_gdr_flagの値を0に設定することが規定される。
ii.第1のPUにおけるAUD NALユニットは、aud_irap_or_gdr_flagが1である場合があり、同じアクセスユニットであるが別個のトラックにある別のPUは、IRAPまたはGDRピクチャでないピクチャを有する。この場合、再構成されたアクセスユニットにおけるAUD NALユニットのaud_irap_or_gdr_flagの値は、1から0に変更される。
b.一例において、追加的又は代替的に、アクセスユニットのための異なるトラックからの複数のピクチャユニットのうちの少なくとも1つがAUD NALユニットを有する場合、第1のピクチャユニット(即ち、nuh_layer_idの最小値を有するピクチャユニット)はAUD NALユニットを有するべきであることが規定される。
c.一例において、アクセスユニットのための異なるトラックからの複数のピクチャユニットがAUD NALユニットを有する場合、第1のピクチャユニットにおけるAUD NALユニットのみが再構成されたアクセスユニットに保持されることが特定される。
【0125】
5) 課題5を解決するために、以下の項目の1つ以上を提案する。
a.「opeg」エンティティグループが存在し、かつ使用される場合、必要なトラックは、OPごとに必要な正確なVCL NALユニットセットを提供するが、非VCL NALユニットの一部は、再構成されたビットストリームにおいて冗長になる可能性があり、従って削除する必要がある場合があることを規定する。
i.代替的に、「opeg」エンティティグループが存在し、かつ使用される場合、必要とされるトラックは、個々のOPに必要とされるレイヤおよびサブレイヤの厳密なセットを提供するが、非VCL NALユニットの一部は、再構成されたビットストリームにおいて冗長になる可能性があり、従って削除する必要がある場合があることを規定する。
b.「opeg」エンティティグループが存在し、かつ使用されている場合であっても、複数のトラックからの黙示的なVVCビットストリームの再構成のプロセスにおいて、冗長なEOBユニットおよびEOS NALユニットを取り除く動作を適用する。
c.複数のトラックからのVVCビットストリームの黙示的再構成のプロセスにおいて、「opeg」エンティティグループが存在し、かつ使用されている場合であっても、冗長AUDユニットを取り除く動作および冗長AUDユニットを書き換える動作を適用する。
【0126】
6) 課題6を解決するために、「opeg」エンティティグループボックスのコンテナを、ファイルレベルメタボックスのGroupsListBoxにすると、次のように指定する。存在する場合、OperatingPointGroupBoxは、ファイルレベルのMetaBoxにおけるGroupsListBoxに含まれるべきであり、他のレベルのMetaBoxに含まれてはならない。
【0127】
7) 課題7を解決するために、「vopi」サンプルグループエントリに存在するVvcOperatingPointsRecordにおけるoutput_layer_set_idxフィールド、および「opeg」エンティティグループボックスにおけるOperatingPointGroupBoxの信号通知は、OPが1つのレイヤのみを含む場合、OPに対してはスキップされる。
a.一例において、VvcOperatingPointsRecordおよび/またはOperatingPointGroupBoxにおけるoutput_layer_set_idxフィールドは、layer_idの信号通知ループの後に移動され、「if(layer_countt>1)」上に調整される。
b.一例において、output_layer_set_idxがOPに存在しない場合、その値は、そのOPにおけるレイヤのみを含むOLSのOLSインデックスであると推測されることがさらに特定される。
【0128】
8) 課題8を解決するために、VVCビットストリームに対して「opeg」エンティティグループが存在する場合、VVCビットストリームを表すトラックはいずれも「vopi」サンプルグループを有さないことを規定する。
a.代替的に、両方が存在してもよいが、両方が存在する場合、それらのいずれかを選択することの間に差がないように、それらが一貫していることが必要である。
b.一例において、「opeg」エンティティグループに属し、全てがこのエンティティグループに示されたgroup_idに「oref」な型のトラックリファレンスを有するトラックは、「vopi」サンプルグループを担持しないことが規定される。
【0129】
9) なお、VVCビットストリームが1つのトラックのみに表現される場合、VVCビットストリームのために「opeg」エンティティグループまたは「vopi」サンプルグループのいずれかを有することは許可されない。
【0130】
6. 実施形態の例
【0131】
【化1】
【0132】
6.1. 第一の実施形態
【0133】
本実施形態は、2a、3、7、7a、7b項に関する。
【0134】
6.1.1. 動作点情報サンプルグループ
【0135】
6.1.1.1. 定義
【0136】
アプリケーションは、動作点情報サンプルグループ(「vopi」)を使用することで、所与のVVCビットストリームに提供される異なる動作点およびそれらの構成の通知を受ける。各動作点は、出力レイヤセット、最大TemporalId値、およびプロファイル、レベル、および階層信号通知に関連する。これら情報はすべて「vopi」サンプルグループで捕捉されたものである。この情報とは別に、このサンプルグループは、レイヤ間の依存関係情報も提供する。
【0137】
VVCビットストリームに対して2つ以上のVVCトラックが存在し、VVCビットストリームに対して動作点エンティティグループが存在しない場合、以下の両方が適用される。
- VVCビットストリームのためのVVCトラックの間に、「vopi」サンプルグループを担持する1つのトラックのみが存在するものとする。
- VVCビットストリームの他のすべてのVVCトラックは、「vopi」のサンプルグループを担持するトラックに「oref」型のトラック基準を有するものとする。
【0138】
所与のトラックにおける任意の特定のサンプルに対して、別のトラックにおける時間的に同一位置に配置されたサンプルは、この特定のサンプルの復号化時間と同じ復号化時間を有するものとして定義される。「vopi」サンプルグループを担持するトラックTkに対して「oref」トラック基準を有するトラックTNにおけるそれぞれのサンプルSNについて、以下が適用される。
- トラックTk内に時間的に同一位置に配置されたサンプルSkが存在する場合、サンプルSNは、サンプルSkと同じ「vopi」サンプルグループエントリに関連付けられる。
- そうでない場合、サンプルSNは、復号化時にサンプルSNに先行するトラックTk内のサンプルのうちの最後のサンプルと同じ「vopi」サンプルグループエントリに関連付けられる。
【0139】
複数のVPSがVVCビットストリームによって参照される場合、grouping_type「vopi」を有するサンプルグループ記述ボックスに複数のエントリを含めることが必要となる場合がある。1つのVPSが存在するより一般的な場合、ISO/IEC14496-12に定義されたデフォルトのサンプルグループ機構を使用し、各トラック断片にそれを含めるのではなく、サンプルテーブルボックスに動作点情報サンプルグループを含めることが推奨される。
【0140】
grouping_type_parameterは、グルーピングタイプが「vopi」であるSampleToGroupBoxに対しては定義されない。
【0141】
6.1.1.2.構文
【0142】
class VvcOperatingPointsRecord{
unsigned int(8)num_profile_tier_level_minus1;
for(i=0;i<=num_profile_tier_level_minus1;i++){
unsigned int(8)ptl_max_temporal_id[i];
VvcPTLRecord(ptl_max_temporal_id[i]+1)ptl[i];

unsigned int(1)all_independent_layers_flag;
bit(7)reserved=0;
if(all_independent_layers_flag){
unsigned int(1)each_layer_is_an_ols_flag;
bit(7)reserved=0;
} else
unsigned int(8)ols_mode_idc;
unsigned int(16)num_operating_points;
for(i=0;i<num_operating_points){
【化2】
unsigned int(8)ptl_idx;
unsigned int(8)max_temporal_id;
unsigned int(8)layer_count;
for(j=0;j<layer_count;j++){
unsigned int(6)layer_id;
unsigned int(1)is_outputlayer;
bit(1)reserved=0;

【化3】
bit(6)reserved=0;
unsigned int(1)frame_rate_info_flag
unsigned int(1)bit_rate_info_flag
if(frame_rate_info_flag){
unsigned int(16)avgFrameRate;
bit(6)reserved=0;
unsigned int(2)constantFrameRate;

if(bit_rate_info_flag){
unsigned int(32)maxBitRate;
unsigned int(32)avgBitRate;


【化4】
class VvcOperatingPointsInformation extends VisualSampleGroupEntry(「vopi」){
VvcOperatingPointsRecord oinf;
【0143】
6.1.1.3. 意味論
【0144】
...
num_operating_points:以下の情報を実行する動作点数を示す。
【0145】
【化5】
【0146】
ptl_idx:インデックスがoutput_layer_set_idxである出力レイヤセットの、リストされたプロファイル、レベル、および階層構造のゼロベースのインデックスに信号通知する。
max_temporal_id:この動作点のNALユニットの最大TemporalIdを指定する。
【0147】
注:レイヤ情報サンプルグループに示されるTemporalIdの最大値は、ここで示されるTemporalIdの最大値とは異なる意味論を有する。しかしながら、それらは同じ文字通りの数値を担持してもよい。
【0148】
layer_count:このフィールドは、この動作点の、ISO/IEC23090-3に定義されるとおりの必要なレイヤの数を示す。
layer_id:動作点のレイヤのためのnuh_layer_id値を提供する。
is_outputlayer:レイヤが出力レイヤであるかどうかを示すフラグ。1は出力レイヤを示す。
【0149】
【化6】
【0150】
frame_rate_info_flagが0であると、動作点についてフレームレート情報が存在しないことを示す。値1は、動作点に対してフレームレート情報が存在することを示す。
bit_rate_info_flagが0であると、動作点に対してビットレート情報が存在しないことを示す。値1は、ビットレート情報が動作点に存在することを示す。
avgFrameRateは、動作点の平均フレームレートをフレーム/(256秒)の単位で示す。値0は、不特定の平均フレームレートを示す。
constantFrameRateが1であることは、動作点のストリームが一定のフレームレートであることを示す。値2は、動作点のストリームにおける各時間層レイヤの表現が一定のフレームレートであることを示す。値0は、動作点のストリームが一定のフレームレートであってもなくてもよいことを示す。
maxBitRateは、1秒の任意の窓にわたって、動作点のストリームのビット/秒で表される最大ビットレートを与える。
avgBitRateは、動作点のストリームのビット/秒で表される平均ビットレートを与える。
max_layer_count:この関連付けられたベーストラックに関連付けられたすべての動作点におけるすべての固有レイヤの数。
layerID:direct_ref_layerIDの次のループにおいてすべての直接参照レイヤが与えられるレイヤのnuh_layer_id。
num_direct_ref_layers:nuh_layer_idがlayerIDであるレイヤの直接参照レイヤの数。
direct_ref_layerID:直接参照レイヤのnuh_layer_id。
【0151】
6.2.第二の実施形態
【0152】
本実施形態は、1.b.i、4、4a、4.a.i、4b、4c、5a、6、8、8b項についてである。
【0153】
VVCビットストリームの黙示的再構成
【0154】
動作点情報サンプルグループが存在する場合、動作点情報およびレイヤ情報サンプルグループに示されるように、それらが担持するレイヤおよびそれらの基準レイヤに基づいて、必要なトラックを選択する。
OperatingPointGroupBoxの情報に基づいて、動作点エンティティグループが存在する場合、必要なトラックを選択する。
VCL NALユニットが0より大きいTemporalIdを有するサブレイヤを含むビットストリームを再構成する場合、同じレイヤ内のすべての下位のサブレイヤ(すなわち、VCL NALユニットがより小さいTemporalIdを有するサブレイヤ)もまた、結果のビットストリームに含まれ、それに応じて必要なトラックが選択される。
【0155】
【化7】
【0156】
【化8】
【0157】
【化9】
【0158】
【化10】
【0159】
【化11】
【0160】
【化12】
【0161】
【化13】
【0162】
【化14】
【0163】
【化15】
【0164】
図1は、本明細書で開示される様々な技術が実装され得る例示的な映像処理システム1900を示すブロック図である。様々な実装形態は、システム1900のモジュールの一部又は全部を含んでもよい。システム1900は、映像コンテンツを受信するための入力ユニット1902を含んでもよい。映像コンテンツは、未加工又は非圧縮フォーマット、例えば、8又は10ビットのマルチモジュール画素値で受信されてもよく、又は圧縮又は符号化フォーマットで受信されてもよい。入力ユニット1902は、ネットワークインタフェース、周辺バスインタフェース、又は記憶インタフェースを表してもよい。ネットワークインタフェースの例は、イーサネット(登録商標)、パッシブ光ネットワーク(PON)等の有線インタフェース、およびWi-Fi(登録商標)またはセルラーインタフェース等の無線インタフェースを含む。
【0165】
システム1900は、本明細書に記載される様々な符号化又は符号化方法を実装することができる符号化モジュール1904を含んでもよい。符号化モジュール1904は、入力ユニット1902から符号化モジュール1904の出力への映像の平均ビットレートをに低減して、映像の符号化表現を生成してもよい。従って、この符号化技術は、映像圧縮または映像コード変換技術と呼ばれることがある。符号化モジュール1904の出力は、モジュール1906によって表されるように、記憶されてもよいし、接続された通信を介して送信されてもよい。入力ユニット1902において受信された、記憶された又は通信された映像のビットストリーム(又は符号化)表現は、モジュール1908によって使用されて、表示インタフェースユニット1910に送信される画素値又は表示可能な映像を生成してもよい。ビットストリーム表現からユーザが見ることができる映像を生成する処理は、映像伸張(映像展開)と呼ばれることがある。さらに、特定の映像処理動作を「符号化」動作又はツールと呼ぶが、符号化ツール又は動作は、エンコーダで使用され、対応する復号化ツール又は動作であり符号化の結果を逆にするものは、デコーダによって行われることが理解されよう。
【0166】
周辺バスインタフェースユニットまたは表示インタフェースユニットの例は、ユニバーサルシリアルバス(USB)または高精細マルチメディアインタフェース(HDMI(登録商標))またはディスプレイポート等を含んでもよい。ストレージインタフェースの例は、シリアルアドバンスドテクノロジーアタッチメント(SATA)、PCI、IDEインタフェース等を含む。本明細書に記載される技術は、携帯電話、ノートパソコン、スマートフォン、又はデジタルデータ処理及び/又は映像表示を実施可能な他のデバイス等の様々な電子デバイスに実施されてもよい。
【0167】
図2は、映像処理装置3600のブロック図である。装置3600は、本明細書に記載の方法の1つ以上を実装するために使用してもよい。装置3600は、スマートフォン、タブレット、コンピュータ、モノのインターネット(IoT)受信機等に実施されてもよい。装置3600は、1つ以上の処理装置3602と、1つ以上のメモリ3604と、映像処理ハードウェア3606と、を含んでもよい。1つまたは複数の処理装置3602は、本明細書に記載される1つ以上の方法を実装するように構成されてもよい。メモリ(複数可)3604は、本明細書で説明される方法および技術を実装するために使用されるデータおよびコードを記憶するために使用してもよい。映像処理ハードウェア3606は、本明細書に記載される技術をハードウェア回路にて実装するために使用してもよい。いくつかの実施形態において、映像処理ハードウェア3606は、処理装置3602、例えばグラフィックコ処理装置(コ・プロセッサ)に少なくとも部分的に含まれてもよい。
【0168】
図4は、本開示の技術を利用し得る例示的な映像符号化システム100を示すブロック図である。
【0169】
図4に示すように、映像符号化システム100は、送信元デバイス110と、送信先デバイス120と、を備えてもよい。送信元デバイス110は、映像符号化デバイスと呼ばれ得る符号化映像データを生成する。送信先デバイス120は、送信元デバイス110によって生成された、映像復号化デバイスと呼ばれ得る符号化映像データを復号化してもよい。
【0170】
送信元デバイス110は、映像ソース112と、映像エンコーダ114と、入出力(I/O)インタフェース116と、を備えてもよい。
【0171】
映像ソース112は、映像キャプチャデバイスなどのソース、映像コンテンツプロバイダからの映像データを受信するためのインタフェース、および/または映像データを生成するためのコンピュータグラフィックスシステム、またはこれらのソースの組み合わせを含んでもよい。映像データは、1つ以上のピクチャを含んでもよい。映像エンコーダ114は、映像ソース112からの映像データを符号化し、ビットストリームを生成する。ビットストリームは、映像データの符号化表現を形成するビットシーケンスを含んでもよい。ビットストリームは、符号化ピクチャおよび関連付けられたデータを含んでもよい。符号化ピクチャは、ピクチャの符号化表現である。関連付けられたデータは、シーケンスパラメータセット、ピクチャパラメータセット、および他の構文構造を含んでもよい。I/Oインタフェース116は、変復調器(モデム)および/または送信機を含んでもよい。符号化された映像データは、ネットワーク130aを介して、I/Oインタフェース116を介して送信先デバイス120に直接送信されてもよい。符号化された映像データは、送信先デバイス120がアクセスするために、記憶媒体/サーバ130bに記憶してもよい。
【0172】
送信先デバイス120は、I/Oインタフェース126、映像デコーダ124、および表示デバイス122を含んでもよい。
【0173】
I/Oインタフェース126は、受信機および/またはモデムを含んでもよい。I/Oインタフェース126は、送信元デバイス110または記憶媒体/サーバ130bから符号化映像データを取得してもよい。映像デコーダ124は、符号化された映像データを復号化してもよい。表示デバイス122は、復号化された映像データをユーザに表示してもよい。表示デバイス122は、送信先デバイス120と一体化されてもよく、または外部表示デバイスとインタフェースするように構成される送信先デバイス120の外部にあってもよい。
【0174】
映像エンコーダ114および映像デコーダ124は、高効率映像符号化(HEVC)規格、汎用映像符号化(VVVM)規格、および他の現在のおよび/またはさらなる規格等の映像圧縮規格に従って動作してもよい。
【0175】
図5は、映像エンコーダ200の一例を示すブロック図であり、この映像エンコーダ200は、図4に示されるシステム100における映像エンコーダ114であってもよい。
【0176】
映像エンコーダ200は、本開示の技術のいずれか又は全部を実行するように構成されてもよい。図5の実施例において、映像エンコーダ200は、複数の機能性モジュールを含む。本開示で説明されている技術は、映像エンコーダ200の様々なモジュール間で共有されてもよい。いくつかの例では、処理装置は、本開示で説明されている技術のいずれか又はすべてを実行するように構成されてもよい。
【0177】
映像エンコーダ200の機能モジュールは、分割ユニット201、予測ユニット202、予測ユニット202を含んでもよく、予測ユニット202は、モード選択ユニット203、動き推定ユニット204、動き補償ユニット205、及びイントラ予測ユニット206、残差生成ユニット207、変換ユニット208、量子化ユニット209、逆量子化ユニット210、逆変換ユニット211、再構成ユニット212、バッファ213、及びエントロピー符号化ユニット214を含んでもよい。
【0178】
他の例において、映像エンコーダ200は、より多くの、より少ない、又は異なる機能コンポーネントを含んでもよい。一例において、予測ユニット202は、IBC(Intra Block Copy)ユニットを含んでもよい。IBCユニットは、少なくとも1つの参照ピクチャが現在の映像ブロックが位置するピクチャであるIBCモードにおいて予測(predication)を行うことができる。
【0179】
さらに、動き推定ユニット204および動き補償ユニット205などのいくつかのモジュールは、高度に統合されてもよいが、説明のために、図5の例においては別個に表現されている。
【0180】
分割ユニット201は、1つのピクチャを1つ以上の映像ブロックに分割することができる。映像エンコーダ200及び映像デコーダ300は、様々な映像ブロックサイズをサポートしてもよい。
【0181】
モード選択ユニット203は、例えば、エラー結果に基づいて、イントラ又はインターのいずれかの符号化モードの1つを選択し、得られたイントラ又はインター符号化ブロックを、残差生成ユニット207に供給して残差ブロックデータを生成し、また再構成ユニット212に供給して参照ピクチャとして符号化ブロックを再構成してもよい。いくつかの例では、モード選択ユニット203は、インター予測信号及びイントラ予測信号に基づいて予測を行うイントラ及びインター組み合わせ予測(CIIP)モードを選択してもよい。また、モード選択ユニット203は、インター予測の場合、ブロックのために動きベクトルの解像度(例えば、サブピクセル又は整数ピクセル精度)を選択してもよい。
【0182】
現在の映像ブロックに対してインター予測を実行するために、動き推定ユニット204は、バッファ213からの1つ以上の参照フレームと現在の映像ブロックとを比較することで、現在の映像ブロックのために動き情報を生成してもよい。動き補償ユニット205は、現在の映像ブロックに関連付けられたピクチャ以外のバッファ213からのピクチャの動き情報及び復号化サンプルに基づいて、現在の映像ブロックのために予測映像ブロックを判定してもよい。
【0183】
動き推定ユニット204及び動き補償ユニット205は、例えば、現在の映像ブロックがIスライスであるか、Pスライスであるか、又はBスライスであるかに基づいて、現在の映像ブロックに対して異なる演算を実行することができる。
【0184】
いくつかの例において、動き推定ユニット204は、現在の映像ブロックに対して単方向予測を実行し、動き推定ユニット204は、現在の映像ブロックに対して、リスト0又はリスト1の参照ピクチャを検索して、参照映像ブロックを求めることができる。そして、動き推定ユニット204は、リスト0又はリスト1における、参照映像ブロックと、現在の映像ブロックと参照映像ブロックとの空間変位を示す動きベクトルとを含む参照ピクチャを示す参照インデックスを生成してもよい。動き推定ユニット204は、参照インデックス、予測方向インジケータ、及び動きベクトルを、現在の映像ブロックの動き情報として出力する。動き補償ユニット205は、現在の映像ブロックの動き情報が示す参照映像ブロックに基づいて、現在のブロックの予測映像ブロックを生成してもよい。
【0185】
他の例において、動き推定ユニット204は、現在の映像ブロックを双方向予測してもよく、動き推定ユニット204は、リスト0における参照ピクチャの中から現在の映像ブロックために参照映像ブロックを検索してもよく、また、リスト1における参照ピクチャの中から現在の映像ブロックのために別の参照映像ブロックを検索してもよい。次に、動き推定ユニット204は、参照映像ブロックを含むリスト0及びリスト1における参照ピクチャを示す参照インデックスと、参照映像ブロックと現在の映像ブロックとの空間変位を示す動きベクトルと、を生成してもよい。動き推定ユニット204は、現在の映像ブロックの参照インデックス及び動きベクトルを、現在の映像ブロックの動き情報として出力する。動き補償ユニット205は、現在の映像ブロックの動き情報が示す参照映像ブロックに基づいて、現在の映像ブロックの予測映像ブロックを生成する。
【0186】
いくつかの例において、動き推定ユニット204は、デコーダの復号化処理のために、動き情報のフルセットを出力してもよい。
【0187】
いくつかの例では、動き推定ユニット204は、現在の映像のために動き情報のフルセットを出力しなくてもよい。むしろ、動き推定ユニット204は、別の映像ブロックの動き情報を参照して、現在の映像ブロックの動き情報を信号通知してもよい。例えば、動き推定ユニット204は、現在の映像ブロックの動き情報が近傍の映像ブロックの動き情報に十分に類似していると判定してもよい。
【0188】
一例において、動き推定ユニット204は、現在の映像ブロックに関連付けられた構文構造において、現在の映像ブロックが別の映像ブロックと同じ動き情報を有することを映像デコーダ300に示す値を示してもよい。
【0189】
別の例において、動き推定ユニット204は、現在の映像ブロックに関連付けられた構文構造において、別の映像ブロックと、動きベクトル差(MVD)と、を識別してもよい。動きベクトルの差分は、現在の映像ブロックの動きベクトルと、示された映像ブロックの動きベクトルとの差分を示す。映像デコーダ300は、指示された映像ブロックの動きベクトルと、動きベクトル差分と、を用いて、現在の映像ブロックの動きベクトルを判定してもよい。
【0190】
上述したように、映像エンコーダ200は、動きベクトルを予測的に信号通知してもよい。映像エンコーダ200によって実施され得る予測信号通知技法の2つの例は、高度動きベクトル予測(AMVP)及びマージモード信号通知を含む。
【0191】
イントラ予測ユニット206は、現在の映像ブロックに対してイントラ予測を行ってもよい。イントラ予測ユニット206が現在の映像ブロックをイントラ予測する場合、イントラ予測ユニット206は、同じピクチャ中の他の映像ブロックの復号化されたサンプルに基づいて、現在の映像ブロックのために予測データを生成してもよい。現在の映像ブロックのための予測データは、予測された映像ブロック及び様々な構文要素を含んでもよい。
【0192】
残差生成ユニット207は、現在の映像ブロックから現在の映像ブロックの予測された映像ブロックを減算することによって(例えば、マイナス符号によって示されている)、現在の映像ブロックのために残差データを生成してもよい。現在の映像ブロックの残差データは、現在の映像ブロックにおけるサンプルの異なるサンプル成分に対応する残差映像ブロックを含んでもよい。
【0193】
他の例において、例えば、スキップモードにおいて、現在の映像ブロックのための残差データがなくてもよく、残差生成ユニット207は、減算演算を実行しなくてもよい。
【0194】
変換処理ユニット208は、現在の映像ブロックに関連付けられた残差映像ブロックに1つ以上の変換を適用することによって、現在の映像ブロックのために1つ以上の変換係数映像ブロックを生成してもよい。
【0195】
変換処理ユニット208が現在の映像ブロックに関連付けられた変換係数映像ブロックを生成した後、量子化ユニット209は、現在の映像ブロックに関連付けられた1つ以上の量子化パラメータ(QP)値に基づいて、現在の映像ブロックに関連付けられた変換係数映像ブロックを量子化してもよい。
【0196】
逆量子化ユニット210および逆変換ユニット211は、変換係数映像ブロックに逆量子化および逆変換をそれぞれ適用し、変換係数映像ブロックから残差映像ブロックを再構成してもよい。再構成ユニット212は、予測ユニット202が生成した1つ以上の予測映像ブロックから対応するサンプルに再構成された残差映像ブロックを加え、現在のブロックに関連付けられた再構成映像ブロックを生成し、バッファ213に記憶することができる。
【0197】
再構成ユニット212が映像ブロックを再構成した後、映像ブロックにおける映像ブロッキングアーチファクトを縮小するために、ループフィルタリング動作を行ってもよい。
【0198】
エントロピー符号化ユニット214は、映像エンコーダ200の他の機能コンポーネントからデータを受信してもよい。エントロピー符号化ユニット214は、データを受信すると、1つ以上のエントロピー符号化演算を行い、エントロピー符号化データを生成し、エントロピー符号化データを含むビットストリームを出力してもよい。
【0199】
図6は、映像デコーダ300の一例を示すブロック図であり、この映像デコーダ300は、図4に示すシステム100における映像デコーダ114であってもよい。
【0200】
映像デコーダ300は、本開示の技術のいずれか又は全部を実行するように構成されてもよい。図6の実施例において、映像デコーダ300は、複数の機能性モジュールを含む。本開示で説明されている技術は、映像デコーダ300の様々なモジュール間で共有されてもよい。いくつかの例では、処理装置は、本開示で説明されている技術のいずれか又はすべてを実行するように構成されてもよい。
【0201】
図6の実施例において、映像デコーダ300は、エントロピー復号化ユニット301、動き補償ユニット302、イントラ予測ユニット303、逆量子化ユニット304、逆変換ユニット305、および再構成ユニット306、並びにバッファ307を含む。映像デコーダ300は、いくつかの例では、映像エンコーダ200(図5)に関して説明した符号化パスとほぼ逆の復号化パスを行ってもよい。
【0202】
エントロピー復号化ユニット301は、符号化ビットストリームを取り出す。符号化ビットストリームは、エントロピー符号化された映像データ(例えば、映像データの符号化ブロック)を含んでもよい。エントロピー復号化ユニット301は、エントロピー符号化された映像データを復号化し、エントロピー復号化された映像データから、動き補償ユニット302は、動きベクトル、動きベクトル精度、参照ピクチャリストインデックス、及び他の動き情報を含む動き情報を判定してもよい。動き補償ユニット302は、例えば、AMVP及びマージモードを実行することで、このような情報を判定してもよい。
【0203】
動き補償ユニット302は、動き補償されたブロックを生成してもよく、場合によっては、補間フィルタに基づいて補間を実行する。構文要素には、サブピクセルの精度で使用される補間フィルタのための識別子が含まれてもよい。
【0204】
動き補償ユニット302は、映像ブロックの符号化中に映像エンコーダ200によって使用されるような補間フィルタを使用して、参照ブロックのサブ整数画素のための補間値を計算してもよい。動き補償ユニット302は、受信した構文情報に基づいて、映像エンコーダ200が使用する補間フィルタを判定し、この補間フィルタを使用して予測ブロックを生成してもよい。
【0205】
動き補償ユニット302は、構文情報の一部を使用して、符号化された映像シーケンスのフレーム(複数可)および/またはスライス(複数可)を符号化するために使用されるブロックのサイズ、符号化された映像シーケンスのピクチャの各マクロブロックがどのように分割されるかを記述する分割情報、各分割がどのように符号化されるかを示すモード、インター符号化ブロック毎の1つ以上の参照フレーム(および参照フレームリスト)、および符号化された映像シーケンスを復号化するための他の情報を判定してもよい。
【0206】
イントラ予測ユニット303は、例えば、ビットストリームにおいて受信したイントラ予測モードを使用して、空間的に隣接するブロックから予測ブロックを形成してもよい。逆量子化ユニット303は、ビットストリームにおいて提供され、エントロピー復号化ユニット301によって復号化された量子化された映像ブロック係数を逆量子化、すなわち、非量子化する。逆変換ユニット303は、逆変換を適用する。
【0207】
再構成ユニット306は、残差ブロックと、動き補償ユニット202又はイントラ予測ユニット303によって生成された対応する予測ブロックとを合計し、復号化されたブロックを形成してもよい。所望であれば、ブロックアーチファクトを除去するために、復号化されたブロックをフィルタリングするために非ブロック化フィルタを適用してもよい。復号化された映像ブロックは、バッファ307に記憶され、バッファ307は、後続の動き補償/イントラ予測のために参照ブロックを提供し、且つ表示デバイスに表示するために復号化された映像を生成する。
【0208】
次に、いくつかの実施形態において好適な解決策を列挙する。
【0209】
以下の解決策は、前章(例えば、項目1、2)で論じた技術の例示的な実施形態を示す。
【0210】
1.視覚メディア処理方法(例えば、図3に示される方法700)は、視覚メディアデータと、この視覚メディアデータのビットストリーム表現を記憶するファイルとを、フォーマット規則に従って変換を行うこと(702)を含み、前記ファイルは、すべての動作点のファイルレベル情報を含み、前記ファイルレベル情報は、それぞれの動作点に必要なトラックの情報を含む。
【0211】
2.前記フォーマット規則は、トラックが、対応する動作点に必要とされないレイヤおよびサブレイヤを含むことを許可する、解決策1に記載の方法。
【0212】
3.動作点ごとに必要なトラックの前記情報が1つのvopiサンプルグループエントリに含まれる、解決策1~2のいずれかに記載の方法。
【0213】
以下の解決策は、前章(例えば、項目3)で論じた技術の例示的な実施形態を示す。
【0214】
4.視覚メディアデータと、この視覚メディアデータのビットストリーム表現を記憶するファイルとを、フォーマット規則に従って変換を行うことを含み、フォーマット規則は、すべてのレイヤが独立している場合、vopiサンプルグループエントリからレイヤ依存情報をスキップすることを指定する、視覚メディア処理方法。
【0215】
以下の解決策は、前章(例えば、項目5,6)で論じた技術の例示的な実施形態を示す。
【0216】
5.視覚メディアデータと、この視覚メディアデータのビットストリーム表現を記憶するファイルとを、フォーマット規則に従って変換を行うことを含み、フォーマット規則は、ビットストリーム表現における動作点エンティティグループ(opeg)の取り扱いに関連付けられた規則を規定する、視覚メディア処理方法。
【0217】
6.前記フォーマット規則は、opegが存在する場合、ファイルにおける各要求されたトラックは、opegにおける各動作点に対応する映像符号化レイヤネットワーク抽象化層(VCL NAL)の正確なセットを提供することを規定する、解決策5に記載の方法。
【0218】
7.前記フォーマット規則は、前記トラックに非VCLユニットを含めることを許可する、解決策6に記載の方法。
【0219】
以下の解決策は、前章(例えば、項目4)で論じた技術の例示的な実施形態を示す。
【0220】
8.視覚メディアデータと、この視覚メディアデータのビットストリーム表現を記憶するファイルとを、規則に従って変換を行うことを含み、前記変換は、1つの規則に従って冗長性アクセスユニットデリミタネットワークアクセスユニット(AUD NAL)が1つの規則に従って処理される複数のトラックからの前記ビットストリーム表現の黙示的再構成を実行することを含む、視覚メディア処理方法。
【0221】
9.前記規則は、AUD NALユニットを除去することを指定する、解決策8に記載の方法。
【0222】
10.前記規則は、AUD NALユニットを書き換えることを指定する、解決策8に記載の方法。
【0223】
11.前記規則は、1つのアクセスユニットのための異なるトラックからの複数のピクチャユニットのうちの少なくとも1つがAUD NALユニットを有する場合、前記第1のピクチャユニットが別のAUD NALユニットを有することを規定する、解決策8~10のいずれかに記載の方法。
【0224】
12.前記規則は、1つのアクセスユニットのための異なるトラックからの複数のピクチャユニットがAUD NALユニットを有する場合、1つの第1のピクチャユニットにおける1つのAUD NALユニットのみが、復号化中に再構成されたアクセスユニットに保持されることを規定する、解決策8~10のいずれかに記載の方法。
【0225】
13.前記変換は、前記視覚メディアデータのビットストリーム表現を生成することと、前記フォーマット規則に従って、前記ファイルへ前記ビットストリーム表現を記憶することと、を含む、解決策1~12のいずれかに記載の方法。
【0226】
14.前記変換は、前記フォーマット規則に従って前記ファイルを構文解析し、前記視覚メディアデータを復元することを含む、解決策1~12のいずれかに記載の方法。
【0227】
15.解決策1~14の1つ以上に記載の方法を実装するように構成された処理装置を備える、映像復号化装置。
【0228】
16.解決策1~14の1つ以上に記載の方法を実装するように構成された処理装置を備える、映像符号化装置。
【0229】
17.コンピュータコードが記憶されたコンピュータプログラム製品であって、前記コードは、処理装置により実行されると、前記処理装置に、解決策1~14のいずれかに記載の方法を実装させるコンピュータプログラム製品。
【0230】
18.解決策1~14のいずれかに従って生成されたファイルフォーマットに準拠したビットストリーム表現を備えるコンピュータ可読媒体。
【0231】
19.本明細書に記載の方法、装置またはシステム。
【0232】
上記解決策のいくつかの好ましい実施形態は、以下を含んでもよい(例えば、項目1、2)。
【0233】
いくつかの実施形態において、視覚メディアの処理方法(例えば、図9Aに示される方法910)は、動作点情報を含む特定のタイプのサンプルグループを含む複数のトラックから1つ以上のトラックを識別する構文要素をファイルレベル情報が含むことを規定するフォーマット規則に従って、視覚メディアデータと、この視覚メディアデータのビットストリームを複数のトラックに記憶する視覚メディアファイルと、の変換を行うこと(912)を含む。
【0234】
上記実施形態において、前記フォーマット規則は、前記視覚メディアファイルが、前記視覚メディアファイルに提供されるすべての動作点のファイルレベル情報を含むことを規定し、前記フォーマット規則は、前記ファイルレベル情報が、動作点ごとに前記視覚メディアファイルにおける対応するトラックの情報を含むことをさらに規定する。
【0235】
いくつかの実施形態において、前記フォーマット規則は特定の動作点に必要なトラックが特定の動作点に必要でないレイヤおよびサブレイヤを含むことを許可する。
【0236】
いくつかの実施形態において、前記構文要素は、ファイルレベルコンテナを含むボックスを含むことができる。
【0237】
いくつかの実施形態において、フォーマット規則はファイルレベル情報がファイルレベルボックスに含まれることを規定する。
【0238】
いくつかの実施形態において、フォーマット規則は、ファイルレベル情報がムービーレベルボックスに含まれることを規定する。
【0239】
いくつかの実施形態において、前記フォーマット規則は、前記ファイルレベル情報が別のトラックレベルボックスまたは別のファイルレベルボックスにおいて識別されるトラックレベルボックスに含まれることを規定する。
【0240】
いくつかの実施形態において、前記フォーマット規則は、前記特定のタイプのサンプルグループが各動作点に必要な軌跡に関する情報を含むことをさらに規定する。
【0241】
いくつかの実施形態において、前記フォーマット規則は、動作点ごとに必要なトラックに関する情報を、ビットストリームにおける複数のレイヤに関するレイヤ情報を含む別の特定のタイプのサンプルグループから削除することをさらに規定する。
【0242】
いくつかの実施形態において、前記視覚メディアデータは汎用映像符号化(VVC)方式で処理され、前記複数のトラックはVVCトラックであることができる。
【0243】
いくつかの好ましい実施形態において、次のもの(例えば、項目3)を含んでもよい。
【0244】
いくつかの実施形態において、視覚メディア処理方法(例えば、図9Bに記載の方法920)は、フォーマット規則に従って視覚メディアデータと、視覚メディアデータのビットストリームを記憶する視覚メディアファイルと、の変換を行うこと(922)を含む。視覚メディアファイルは、1つ以上の映像レイヤを含む1つ以上のトラックを記憶する。このフォーマット規則は、レイヤ依存性情報を示す第1の構文要素のセットが視覚メディアファイルに記憶されるかどうかを、視覚メディアファイルにおけるすべてのレイヤが独立していることを示す第2の構文要素が値1を有するかどうかに依存することを規定する。
【0245】
いくつかの実施形態において、前記第1の構文要素セットは、前記視覚メディアファイルに記憶された1つ以上の動作点に関する情報を示すサンプルグループに記憶される。
【0246】
いくつかの実施形態において、前記フォーマット規則は、値が1である第2の構文要素に応答して、前記第1の構文要素のセットを前記視覚メディアファイルから削除することを規定する。
【0247】
上述した解決策のいくつかの好適な実施形態は、以下の態様(例えば、項目4)を含んでもよい。
【0248】
いくつかの実施形態において、視覚メディアデータを処理する方法(例えば、図9Cに記載の方法930)は、複数のトラックからビットストリームを黙示的に再構成する間に、複数のトラックに記憶された冗長アクセスユニットデリミタネットワークアクセス層(AUD NAL)ユニットを処理する方法を規定するフォーマット規則に従って、複数のトラックにおける視覚メディアデータのビットストリームを記憶する視覚メディアファイルと、視覚メディアデータと、の変換を行うこと(932)を含む。
【0249】
いくつかの実施形態において、前記フォーマット規則は、前記冗長AUD NALユニットを前記黙示的再構成中に除去することを規定する。
【0250】
いくつかの実施形態において、前記フォーマット規則は、前記冗長AUD NALユニットを前記黙示的再構成中に書き換えることを規定する。
【0251】
いくつかの実施形態において、前記フォーマット規則は、複数のトラックの複数のピクチャから瞬時ランダムアクセスポイントタイプ又は緩やかな復号化更新タイプと異なる特定のタイプを有する特定のアクセスユニットを生成することを含む黙示的な再構成に応答して、前記特定のアクセスユニットに含まれた特定の冗長AUD NALの構文フィールドを0に書き換え、前記特定の冗長AUD NALが前記瞬時ランダムアクセスポイントまたは緩やかな復号化更新タイプを表現していないことを示すことを規定する。
【0252】
いくつかの実施形態において、前記フォーマット規則は、異なるトラックの第2のPUがイントラランダムアクセスポイントピクチャまたは緩やかな復号化更新ピクチャでないピクチャを含む場合には、第1のピクチャユニット(PU)のAUD NALユニットにおける構文要素の値を0に書き換え、特定のAUD NALが瞬時ランダムアクセスポイントおよび緩やかな復号化更新タイプのいずれも表していないことをさらに規定する。
【0253】
いくつかの実施形態において、前記フォーマット規則は、第1のAUD NALユニットを有する1つのアクセスユニットにおいて、異なるトラックからの複数のピクチャユニットのうち少なくとも1つに応答して、前記黙示的再構成から生成された前記アクセスユニットの第1のピクチャユニットが第2のAUD NALユニットを含むことを規定する。
【0254】
いくつかの実施形態において、前記フォーマット規則は、1つのアクセスユニットに対して異なるトラックからの複数のピクチャユニットがAUD NALユニットを含むことに応答して、第1のピクチャユニットに対応する1つのAUD NALユニットが前記黙示的再構成から生成されたアクセスユニットに含まれることを規定する。
【0255】
上述した解決策のいくつかの好適な実施形態は、以下の態様(例えば、項目7)を含んでもよい。
【0256】
いくつかの実施形態において、視覚メディア処理方法(例えば、図9Dに記載の方法940)は、フォーマット規則に従って視覚メディアデータと、視覚メディアデータのビットストリームを記憶する視覚メディアファイルと、の変換を行うこと(942)を含む。視覚メディアファイルは、1つ以上の映像レイヤを含む1つ以上のトラックを記憶する。この視覚メディアファイルは、動作点(OP)の情報を含み、このフォーマット規則は、サンプルグループエントリおよびこのOPのグループボックスに構文要素が含まれているかどうか、またはどのように含まれているかに応答して、単一の映像レイヤを含むOPに応答するかどうかを規定し、この構文要素は、このOPの出力レイヤセットへのインデックスを示すように構成される。
【0257】
いくつかの実施形態において、前記フォーマット規則は、単一の映像レイヤを含むOPに応答して、前記構文要素を前記サンプルグループエントリおよび前記グループボックスから省略することを規定する。
【0258】
いくつかの実施形態において、前記フォーマット規則は、2つ以上の映像レイヤを含むOPに応答して、前記2つ以上の映像レイヤを識別する情報を示した後に前記構文要素を含むことを規定する。
【0259】
いくつかの実施形態において、サンプルグループエントリおよびグループボックスから構文要素を省略することに呼応して、OPのための出力レイヤセットへのインデックスは、単一の映像レイヤを含む出力レイヤセットのインデックスと等しいと推測される。
【0260】
上述した解決策のいくつかの好適な実施形態は、以下の態様(例えば、項目8)を含んでもよい。
【0261】
いくつかの実施形態において、視覚メディア処理方法(例えば、方法950が図9Eに示される)は、視覚メディアデータと、視覚メディアデータのビットストリームを記憶する視覚メディアファイルとを、フォーマット規則に従って変換を行うこと(952)を含み、前記視覚メディアファイルは、特定のタイプのエンティティグループに属する複数のトラックを記憶し、前記フォーマット規則は、グループ識別子に対する特定のタイプへのトラック参照を有する複数のトラックに応答して、複数のトラックが、(A)特定のタイプのサンプルグループを担持することを省略するか、または(B)特定のタイプのサンプルグループの情報が、特定のタイプのエンティティグループの情報と整合するように、特定のタイプのサンプルグループを担持するか、を規定する。
【0262】
いくつかの実施形態において、複数のトラックはビットストリームを表す。
【0263】
いくつかの実施形態において、特定のタイプのエンティティグループは、複数のトラックが1つの動作点に正確に対応することを示す。
【0264】
4 いくつかの実施形態において、特定のタイプのサンプルグループは、複数のトラックのうち、どのトラックが動作点に対応するかに関する情報を含む。
【0265】
上記に列挙された解決策のいくつかの好適な実施形態は、以下の態様(例えば、項目5、6、9)を組み込んでもよい。
【0266】
いくつかの実施形態において、視覚メディア処理方法(例えば、図9Fに示される方法960)は、視覚メディアデータと、この視覚メディアデータのビットストリームを記憶する視覚メディアファイルと、の変換を行うこと(962)を含み、この視覚メディアファイルは、複数のトラックを含み、この視覚メディアファイルは、この視覚メディアファイルにおける動作点に関する情報を搬送するエンティティグループと、各動作点を搬送するトラックと、を記憶し、フォーマット規則は、各動作点の情報を担持するエンティティグループまたはサンプルグループを記憶する視覚メディアファイルに応答して、視覚メディアファイルの特性を指定する。
【0267】
いくつかの実施形態において、前記フォーマット規則では、エンティティグループが、動作点ごとに映像符号化レイヤ(VCL)ネットワーク抽象化層(NAL)ユニットの正確なセットを伝送するトラックのセットを提供することを規定する。
【0268】
いくつかの実施形態において、前記フォーマット規則は、前記ビットストリームを再構成するとき、前記トラックのセットに含まれかつ冗長である非VCL NALユニットを除去することをさらに規定する。
【0269】
4 いくつかの実施形態において、前記フォーマット規則は、前記エンティティグループが動作点ごとに1つ以上のレイヤおよび1つ以上のサブレイヤの正確なセットを担持する1つのトラックのセットを提供することを規定する。
【0270】
いくつかの実施形態において、前記フォーマット規則は、前記ビットストリームを再構成するとき、トラックのセットに含まれかつ冗長である非映像符号化レイヤ(VCL)ネットワーク抽象化層(NAL)ユニットを除去することをさらに規定する。
【0271】
いくつかの実施形態において、前記フォーマット規則では、複数のトラックからビットストリームを再構成するプロセスで、冗長なビットストリームの終端(EOB)またはストリームの終端(EOS)のネットワーク抽象化層(NAL)ユニットを削除することを規定する。
【0272】
いくつかの実施形態において、前記フォーマット規則は、複数のトラックからビットストリームを再構成するプロセスにおいて、アクセス区切りユニット(AUD)を削除するか或いは書き換えることを規定する。
【0273】
いくつかの実施形態において、前記フォーマット規則は、前記エンティティグループに関連付けられたエンティティグループボックスのコンテナが、予め指定されたファイルレベルボックスを除き、任意のレベルの視覚メディアファイルに記憶することが許可されない特性を規定する。
【0274】
いくつかの実施形態において、前記予め指定されたファイルレベルボックスはファイルレベルのメタデータボックスに含まれるグループリストボックスである。
【0275】
いくつかの実施形態において、前記フォーマット規則は、前記ビットストリームが前記視覚メディアファイルの1つのトラックに記憶されることに応答して、前記ビットストリームのために前記エンティティグループおよび/または前記サンプルグループのいずれか一方を記憶することが許可されないことを規定する。
【0276】
上述したいくつかの実施形態において、この変換は、フォーマット規則に従ってビットストリームを視覚メディアファイルに記憶することを含む。
【0277】
上述したいくつかの実施形態において、この変換は、フォーマット規則に従って視覚メディアファイルを構文解析し、ビットストリームを再構成することを含む。
【0278】
いくつかの実施形態において、視覚メディアファイル構文解析装置は、上記した実施形態に開示された方法を実装するように構成された処理装置を含んでもよい。
【0279】
いくつかの実施形態において、視覚メディアファイル書き込み装置は、上記した実施形態に開示された方法を実装するように構成された処理装置を含む。
【0280】
いくつかの実施形態は、コンピュータコードが記憶されたコンピュータプログラム製品を含んでもよい。コードは、処理装置によって実行されると、処理装置に、上述した実施形態のいずれかに記載の方法を実装させる。
【0281】
いくつかの実施形態では、上述の方法のいずれかに従って生成されたファイルフォーマットに準拠した視覚メディアファイルが記憶されたコンピュータ可読媒体を構成してもよい。
【0282】
本明細書に記載の解決策において、エンコーダは、フォーマット規則に従って符号化表現を生成することで、フォーマット規則に準拠することができる。本明細書に記載の解決策において、デコーダは、フォーマット規則に従って、構文要素の有無を知りつつ、符号化表現における構文要素を構文解析することで、復号された映像を生成するために、このフォーマット規則を使用してもよい。
【0283】
本明細書では、「映像処理」という用語は、映像符号化、映像復号化、映像圧縮、または映像展開を指すことができる。例えば、映像圧縮アルゴリズムは、映像の画素表現から対応するビットストリーム表現への変換、またはその逆の変換中に適用されてもよい。現在の映像ブロックのビットストリーム表現は、例えば、構文によって規定されるように、ビットストリーム内の同じ場所または異なる場所に拡散されるビットに対応していてもよい。例えば、1つのマクロブロックは、変換および符号化された誤り残差値の観点から、且つビットストリームにおけるヘッダおよび他のフィールドにおけるビットを使用して符号化されてもよい。さらに、変換中、デコーダは、上記解決策で説明されているように、判定に基づいて、いくつかのフィールドが存在しても存在しなくてもよいという知識を持って、ビットストリームを構文解析してもよい。同様に、エンコーダは、特定のシンタックスフィールドが含まれるべきであるか、または含まれないべきであるかを判定し、構文フィールドを符号化表現に含めるか、または符号化表現から除外することによって、それに応じて符号化表現を生成してもよい。用語「視覚メディア」は、映像または画像を指すことができ、用語「視覚メディア処理」は、映像処理または画像処理を指すことができる。
【0284】
本明細書に記載された開示された、およびその他の解決策、実施例、実施形態、モジュール、および機能動作の実装形態は、本明細書に開示された構造およびその構造的等価物を含め、デジタル電子回路、またはコンピュータソフトウェア、ファームウェア、若しくはハードウェアで実施されてもよく、またはそれらの1つ以上の組み合わせで実施してもよい。開示された、およびその他の実施形態は、1つ以上のコンピュータプログラム製品、すなわち、データ処理装置によって実装されるため、またはデータ処理装置の動作を制御するために、コンピュータ可読媒体上に符号化されたコンピュータプログラム命令の1つ以上のモジュールとして実施することができる。このコンピュータ可読媒体は、機械可読記憶デバイス、機械可読記憶基板、メモリデバイス、機械可読伝播信号をもたらす物質の組成物、またはこれらの1つ以上の組み合わせであってもよい。「データ処理装置」という用語は、例えば、プログラマブル処理装置、コンピュータ、または複数の処理装置、若しくはコンピュータを含む、データを処理するためのすべての装置、デバイス、および機械を含む。この装置は、ハードウェアの他に、当該コンピュータプログラムの実行環境を作るコード、例えば、処理装置ファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはこれらの1つ以上の組み合わせを構成するコードを含むことができる。伝播信号は、人工的に生成した信号、例えば、機械で生成した電気、光、または電磁信号であり、適切な受信装置に送信するための情報を符号化するために生成される。
【0285】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとも呼ばれる)は、コンパイルされた言語または解釈された言語を含む任意の形式のプログラミング言語で記述することができ、また、それは、スタンドアロンプログラムとして、またはコンピューティング環境で使用するのに適したモジュール、成分、サブルーチン、または他のユニットとして含む任意の形式で展開することができる。コンピュータプログラムは、必ずしもファイルシステムにおけるファイルに対応するとは限らない。プログラムは、他のプログラムまたはデータを保持するファイルの一部(例えば、マークアップ言語文書に格納された1つ以上のスクリプト)に記録されていてもよいし、当該プログラム専用の単一のファイルに記憶されていてもよいし、複数の調整ファイル(例えば、1つ以上のモジュール、サブプログラム、またはコードの一部を格納するファイル)に記憶されていてもよい。1つのコンピュータプログラムを、1つのサイトに位置する1つのコンピュータ、または複数のサイトに分散され通信ネットワークによって相互接続される複数のコンピュータで実行させるように展開することも可能である。
【0286】
本明細書に記載された処理およびロジックフローは、入力データ上で動作し、出力を生成することによって機能を実行するための1つ以上のコンピュータプログラムを実行する1つ以上のプログラマブル処理装置によって行うことができる。処理およびロジックフローはまた、特定用途のロジック回路、例えば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって行うことができ、装置はまた、特別目的のロジック回路として実装することができる。
【0287】
コンピュータプログラムの実行に適した処理装置は、例えば、汎用および専用マイクロ処理装置の両方、並びに任意の種類のデジタルコンピュータの任意の1つ以上の処理装置を含む。一般的に、処理装置は、リードオンリーメモリまたはランダムアクセスメモリまたはその両方から命令およびデータを受信する。コンピュータの本質的な要素は、命令を実行するための処理装置と、命令およびデータを記憶するための1つ以上のメモリデバイスとである。一般的に、コンピュータは、データを記憶するための1つ以上の大容量記憶デバイス、例えば、磁気、光磁気ディスク、または光ディスクを含んでもよく、またはこれらの大容量記憶デバイスからデータを受信するか、またはこれらにデータを転送するように動作可能に結合されてもよい。しかしながら、コンピュータは、このようなデバイスを有する必要はない。コンピュータプログラム命令およびデータを記憶するのに適したコンピュータ可読媒体は、あらゆる形式の不揮発性メモリ、媒体、およびメモリデバイスを含み、例えば、EPROM、EEPROM、フラッシュ記憶装置、磁気ディスク、例えば内部ハードディスクまたはリムーバブルディスク、光磁気ディスク、およびCD-ROMおよびDVD-ROMディスク等の半導体記憶装置を含む。処理装置およびメモリは、特定用途のロジック回路によって補完されてもよく、または特定用途のロジック回路に組み込まれてもよい。
【0288】
本特許明細書は多くの詳細を含むが、これらは、任意の主題の範囲または特許請求の範囲を限定するものと解釈されるべきではなく、むしろ、特定の技術の特定の実施形態に特有であり得る特徴の説明と解釈されるべきである。本特許文献において別個の実施形態のコンテキストで説明されている特定の特徴は、1つの例において組み合わせて実装してもよい。逆に、1つの例のコンテキストで説明された様々な特徴は、複数の実施形態において別個にまたは任意の適切なサブコンビネーションで実装してもよい。さらに、特徴は、特定の組み合わせで作用するものとして上記に記載され、最初にそのように主張されていてもよいが、主張された組み合わせからの1つ以上の特徴は、場合によっては、組み合わせから抜粋されることができ、主張された組み合わせは、サブコンビネーションまたはサブコンビネーションのバリエーションに向けられてもよい。
【0289】
同様に、動作は図面において特定の順番で示されているが、これは、所望の結果を達成するために、このような動作が示された特定の順番でまたは連続した順番で行われること、または示された全ての動作が行われることを必要とするものと理解されるべきではない。また、本特許明細書に記載されている例における様々なシステムの構成要素の分離は、全ての実施形態においてこのような分離を必要とするものと理解されるべきではない。
【0290】
いくつかの実装形態および例のみが記載されており、この特許文献に記載され図示されているコンテンツに基づいて、他の実施形態、拡張および変形が可能である。
図1
図2
図3
図4
図5
図6
図7
図8
図9A
図9B
図9C
図9D
図9E
図9F