(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-05-11
(54)【発明の名称】映像コーディングにおける映像パラメータセットの使用
(51)【国際特許分類】
H04N 19/70 20140101AFI20230501BHJP
H04N 19/30 20140101ALI20230501BHJP
【FI】
H04N19/70
H04N19/30
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2022556149
(86)(22)【出願日】2021-03-16
(85)【翻訳文提出日】2022-09-28
(86)【国際出願番号】 US2021022547
(87)【国際公開番号】W WO2021188527
(87)【国際公開日】2021-09-23
(32)【優先日】2020-03-17
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】520477474
【氏名又は名称】バイトダンス インコーポレイテッド
【氏名又は名称原語表記】BYTEDANCE INC.
【住所又は居所原語表記】12655 West Jefferson Boulevard, Sixth Floor, Suite No. 137 Los Angeles, California 90066 United States of America
(74)【代理人】
【識別番号】110002000
【氏名又は名称】弁理士法人栄光事務所
(72)【発明者】
【氏名】ワン イェクイ
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159MA31
5C159RC12
(57)【要約】
【要約】
コーディングおよびデコーディングを含む、映像処理のための方法および装置が説明される。1つの例示的な映像処理方法は、フォーマット規則に従って、映像とこの映像のビットストリームとの変換を行うことを含み、このビットストリームは、1つ以上の出力レイヤセット(OLS)を含み、各OLSは、1つ以上のコーディングされたレイヤ映像シーケンスを含み、このフォーマット規則は、映像パラメータセットが、1つ以上のOLSごとに、この映像のピクセルを表すために使用されるクロマフォーマットインジケータの最大許容値および/またはビット深度の最大許容値を示すことを規定する。
【選択図】
図3
【特許請求の範囲】
【請求項1】
フォーマット規則に従って、映像とこの映像のビットストリームとの変換を行うこと、を含む映像処理方法であって、
前記ビットストリームは、1つ以上の出力レイヤセット(OLS)を含み、各OLSは、1つ以上のコーディングされたレイヤ映像シーケンスを含み、前記フォーマット規則は、映像パラメータセットが、前記1つ以上のOLSの各々について、前記映像のピクセルを表すために使用されるクロマフォーマットインジケータの最大許容値および/またはビット深度の最大許容値を示すことを規定する、映像処理方法。
【請求項2】
OLSのための前記クロマフォーマットインジケータの前記最大許容値は、前記OLSにおける前記1つ以上のコーディングされたレイヤ映像シーケンスによって参照されるすべてのシーケンスパラメータセットに適用可能である、請求項1に記載の方法。
【請求項3】
OLSのための前記ビット深度の前記最大許容値は、前記OLSにおける前記1つ以上のコーディングされたレイヤ映像シーケンスによって参照されるすべてのシーケンスパラメータセットに適用可能である、請求項1または2に記載の方法。
【請求項4】
複数のコーディングされたレイヤ映像シーケンスを含み、かつOLSインデックスiを有するOLSのための変換を行うために、前記規則は、
i番目のOLSのための各ピクチャ記憶バッファの幅を示すols_dpb_pic_width[i]、
前記i番目のOLSのための各ピクチャ記憶バッファの高さを示すols_dpb_pic_height[i]、
前記i番目のOLSのためのクロマフォーマットインジケータの最大許容値を示す構文要素、
および前記i番目のOLSのためのビット深度の最大許容値を示す構文要素のうちの少なくとも1つの値に従って、デコードされたピクチャバッファに対するメモリを割り振ることを規定する、請求項1~3のいずれかに記載の方法。
【請求項5】
前記映像パラメータセットは、前記ビットストリームに含まれる、請求項1~4のいずれかに記載の方法。
【請求項6】
前記映像パラメータセットは、前記ビットストリームとは別個に示される、請求項1~4のいずれかに記載の方法。
【請求項7】
フォーマット規則に従って、1つ以上の映像レイヤを有する映像とこの映像のビットストリームとの変換を行うことを含み、このフォーマット規則は、すべての映像レイヤの映像ピクチャに対する最大ピクチャ幅および/または最大ピクチャ高さが、ビットストリームにおいてデコーディング順で現在のピクチャの前のデコードされたピクチャバッファにおけるピクチャを、デコードされたピクチャバッファから前記ピクチャを除去する前に出力するかどうかを示す変数の値を制御することを規定する、映像処理方法。
【請求項8】
前記変数は、映像パラメータセットに含まれる1つ以上の構文要素に少なくとも基づいて導出される、請求項7に記載の方法。
【請求項9】
現在のアクセスユニットについて導出された各ピクチャの最大幅、各ピクチャの最大高さ、クロマフォーマットインジケータの最大許容値、またはビット深度の最大許容値の値が、デコーディング順で前のアクセスユニットについて導出された各ピクチャの最大幅、各ピクチャの最大高さ、クロマフォーマットインジケータの最大許容値、またはビット深度の最大許容値と異なる場合、前記変数の前記値を1に設定する、請求項7に記載の方法。
【請求項10】
前記変数の前記値が1に等しい場合は、デコーディング順で現在のピクチャの前のデコードされたピクチャバッファにおけるピクチャを、デコードされたピクチャバッファから前記ピクチャを除去する前に出力しないことを示す、請求項9に記載の方法。
【請求項11】
前記変数の前記値は、前記映像のピクセルを表すために使用されるクロマフォーマットインジケータの最大許容値および/またはビット深度の最大許容値にさらに基づく、請求項7~10のいずれかに記載の方法。
【請求項12】
映像パラメータセットは、前記ビットストリームに含まれる、請求項7~11のいずれかに記載の方法。
【請求項13】
映像パラメータセットは、前記ビットストリームとは別個に示される、請求項7~11のいずれかに記載の方法。
【請求項14】
フォーマット規則に従って1つ以上の映像レイヤを有する映像と映像のビットストリームとの変換を行うことを含む映像処理方法であって、
前記フォーマット規則は、前記映像のピクセルを表すために使用されるクロマフォーマットインジケータの最大許容値および/またはビット深度の最大許容値が、前記ビットストリームにおいてデコーディング順で現在のピクチャの前のデコードされたピクチャバッファ内のピクチャを、前記デコードされたピクチャバッファから前記ピクチャを除去する前に出力するかどうかを示す変数の値を制御することを規定する、映像処理方法。
【請求項15】
前記変数は、映像パラメータセットに信号通知される1つ以上の構文要素に少なくとも基づいて導出される、請求項14に記載の方法。
【請求項16】
現在のアクセスユニットについて導出された各ピクチャの最大幅、各ピクチャの最大高さ、クロマフォーマットインジケータの最大許容値、またはビット深度の最大許容値の値が、デコーディング順で前のアクセスユニットについて導出された各ピクチャの最大幅、各ピクチャの最大高さ、クロマフォーマットインジケータの最大許容値、またはビット深度の最大許容値と異なる場合、前記変数の前記値を1に設定する、請求項14に記載の方法。
【請求項17】
前記変数の前記値が1に等しい場合は、デコーディング順で現在のピクチャの前のデコードされたピクチャバッファにおけるピクチャを、デコードされたピクチャバッファから前記ピクチャを除去する前に出力しないことを示す、請求項16に記載の方法。
【請求項18】
前記変数の値は、すべての映像レイヤの映像ピクチャに対する最大ピクチャ幅および/または最大ピクチャ高さにさらに基づく、請求項14~17のいずれかに記載の方法。
【請求項19】
映像パラメータセットは、前記ビットストリームに含まれる、請求項14~18のいずれかに記載の方法。
【請求項20】
映像パラメータセットは、前記ビットストリームとは別個に示される、請求項14~18のいずれかに記載の方法。
【請求項21】
規則に従って、1つ以上の映像レイヤを有する映像とこの映像のビットストリームとの変換を行うことを含み、前記規則は、前記ビットストリームにおいてデコーディング順で現在のピクチャの前のデコードされたピクチャバッファ内のピクチャを、デコードされたピクチャバッファから前記ピクチャを除去する前に出力するかどうかを示す変数の値が、前記映像のエンコーディングに別個の色平面を使用するかどうかに依存しないことを規定する、映像処理方法。
【請求項22】
別個の色平面を前記映像をエンコーディングするために使用しない場合、前記規則は、映像ピクチャに対して1回だけデコーディングを実行することを規定する場合、または別個の色平面を前記映像をエンコーディングするために使用する場合、前記規則は、ピクチャデコーディングを3回呼び出すことを規定する、請求項21に記載の方法。
【請求項23】
前記変換は、前記映像を前記ビットストリームにエンコーディングすることを含む、請求項1~22のいずれか1項に記載の方法。
【請求項24】
前記変換は、前記映像を前記ビットストリームからデコーディングすることを含む、請求項1~22のいずれか1項に記載の方法。
【請求項25】
前記変換は、前記映像から前記ビットストリームを生成することを含み、前記方法は、前記ビットストリームを非一時的なコンピュータ可読記録媒体に記憶することをさらに含む、請求項1~22のいずれかに記載の方法。
【請求項26】
請求項1~25のいずれか1項以上に記載の方法を実装するように構成されたプロセッサを備える映像処理装置。
【請求項27】
請求項1~25のいずれか1項に記載の方法を含み、前記ビットストリームを非一時的なコンピュータ可読記録媒体に記憶することをさらに含む、映像のビットストリームを記憶する方法。
【請求項28】
実行されると、プロセッサに、請求項1から25のいずれか1つ以上に記載の方法を実装させるプログラムコードを格納するコンピュータ読み取り可能媒体。
【請求項29】
上述した方法のいずれかに従って生成されたビットストリームを記憶するコンピュータ可読媒体。
【請求項30】
請求項1~25のいずれか1つ以上に記載の方法を実装するように構成された、ビットストリーム表現を記憶するための映像処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
パリ条約に基づく適用可能な特許法および/または規則に基づいて、本願は、2020年3月17日出願の米国特許仮出願第62/990749号の優先権および利益を適時に主張することを目的とする。法に基づくすべての目的のために、上記出願の開示全体は、本明細書の開示の一部として参照により援用される。
【0002】
この特許明細書は、画像および映像コーディングおよびデコーディングに関する。
【背景技術】
【0003】
デジタル映像は、インターネット及び他のデジタル通信ネットワークにおいて最大の帯域幅の使用量を占めている。映像を受信及び表示することが可能である接続されたユーザデバイスの数が増加するにつれ、デジタル映像の使用に対する帯域幅需要は増大し続けることが予測される。
【発明の概要】
【0004】
本願は、コーディングされた表現のデコーディングに有用な制御情報を使用して、映像のコーディングされた表現を処理するために、映像エンコーダ及びデコーダにより使用され得る技術を開示する。
【0005】
1つの例示的な態様において、映像処理方法が開示される。この方法は、1つ以上の映像ピクチャを含む1つ以上の映像レイヤを有する映像とこの映像のコーディングされた表現との変換を行うことを含み、このコーディングされた表現は、この映像のピクセルを表すために使用されるクロマフォーマットインジケータの最大値および/またはビット深度の最大値を示す映像パラメータセットを含む。
【0006】
別の例示的な態様において、別の映像処理方法が開示される。この方法は、1つ以上の映像レイヤを有する映像とこの映像のコーディングされた表現との変換を行うことを含み、このコーディングされた表現は、すべての映像レイヤの映像ピクチャに対する最大ピクチャ幅および/または最大ピクチャ高さが、デコーダバッファ内のピクチャをデコーダバッファから除去する前に出力するかどうかを示す変数の値を制御することを規定するフォーマット規則に準拠する。
【0007】
別の例示的な態様において、別の映像処理方法が開示される。この方法は、1つ以上の映像レイヤを有する映像とこの映像のコーディングされた表現との変換を行うことを含み、このコーディングされた表現は、映像のピクセルを表すために使用されるクロマフォーマットインジケータの最大値および/またはビット深度の最大値が、デコーダバッファ内のピクチャをデコーダバッファから除去する前に出力するかどうかを示す変数の値を制御することを規定するフォーマット規則に準拠する。
【0008】
別の例示的な態様において、別の映像処理方法が開示される。この方法は、1つ以上の映像レイヤを有する映像とこの映像のコーディングされた表現との変換を行うことを含み、このコーディングされた表現は、デコーダバッファ内のピクチャをデコーダバッファから除去する前に出力するかどうかを示す変数の値が、この映像をエンコーディングするために別個の色平面を使用するかどうかに依存しないことを規定するフォーマット規則に準拠する。
【0009】
別の例示的な態様において、別の映像処理方法が開示される。この方法は、1つ以上の映像レイヤを有する映像とこの映像のコーディングされた表現との変換を行うことを含み、このコーディングされた表現は、デコーダバッファ内のピクチャをデコーダバッファから除去する前に出力するかどうかを示す変数の値が、アクセスユニット(AU)レベルでコーディングされた表現に含まれることを規定するフォーマット規則に準拠する。
【0010】
別の例示的な態様において、別の映像処理方法が開示される。この方法は、1つ以上の映像レイヤを有する映像とこの映像のコーディングされた表現との変換を行うことを含み、このコーディングされた表現は、このアクセスユニットにおいて映像ピクチャに対するピクチャ出力フラグを、アクセスユニットにおいて別の映像ピクチャのpic_output_flag変数に基づいて決定することを規定するフォーマット規則に準拠する。
【0011】
別の例示的な態様において、別の映像処理方法が開示される。この方法は、1つ以上の映像レイヤを有する映像とこの映像のコーディングされた表現との変換を行うことを含み、このコーディングされた表現は、出力レイヤに属さない映像ピクチャに対して、ピクチャ出力フラグの値を規定するフォーマット規則に準拠する。
【0012】
別の例示的な態様において、別の映像処理方法が開示される。この方法は、フォーマット規則に従って、映像とこの映像のビットストリームとの変換を行うことを含み、このビットストリームは、1つ以上の出力レイヤセット(OLS)を含み、各OLSは、1つ以上のコーディングされたレイヤ映像シーケンスを含み、このフォーマット規則は、映像パラメータセットが、1つ以上のOLSごとに、この映像のピクセルを表すために使用されるクロマフォーマットインジケータの最大許容値および/またはビット深度の最大許容値を示すことを規定する。
【0013】
別の例示的な態様において、別の映像処理方法が開示される。この方法は、フォーマット規則に従って、1つ以上の映像レイヤを有する映像とこの映像のビットストリームとの変換を行うことを含み、このフォーマット規則は、すべての映像レイヤの映像ピクチャに対する最大ピクチャ幅および/または最大ピクチャ高さが、ビットストリームにおいてデコーディング順で現在のピクチャの前のデコードされたピクチャバッファにおけるピクチャを、デコードされたピクチャバッファからピクチャを除去する前に出力するかどうかを示す変数の値を制御することを規定する。
【0014】
別の例示的な態様において、別の映像処理方法が開示される。この方法は、フォーマット規則に従って1つ以上の映像レイヤを有する映像と映像のビットストリームとの変換を行うことを含み、このフォーマット規則は、映像のピクセルを表すために使用されるクロマフォーマットインジケータの最大許容値および/またはビット深度の最大許容値が、ビットストリームにおいてデコーディング順で現在のピクチャの前のデコードされたピクチャバッファ内のピクチャを、デコードされたピクチャバッファからピクチャを除去する前に出力するかどうかを示す変数の値を制御することを規定する。
【0015】
別の例示的な態様において、別の映像処理方法が開示される。この方法は、規則に従って、1つ以上の映像レイヤを有する映像と、この映像のビットストリームとの変換を行うことを含み、この規則は、ビットストリームにおいてデコーディング順で現在のピクチャの前のデコードされたピクチャバッファ内のピクチャを、デコードされたピクチャバッファからピクチャを除去する前に出力するかどうかを示す変数の値が、この映像のエンコーディングに別個の色平面を使用するかどうかに依存しないことを規定する。
【0016】
別の例示的な態様において、別の映像処理方法が開示される。この方法は、フォーマット規則に従って、1つ以上の映像レイヤを有する映像とこの映像のビットストリームとの変換を行うことを含み、このフォーマット規則は、特定のタイプのアクセスユニットをデコードするときに、あらかじめデコードされ、かつ、デコードされたピクチャバッファに記憶されたピクチャを、デコードされたピクチャバッファから除去するかどうかを示すフラグの値がこのビットストリームに含まれることを規定する。
【0017】
別の例示的な態様において、別の映像処理方法が開示される。この方法は、フォーマット規則に従って、1つ以上の映像レイヤを有する映像とこの映像のビットストリームとの変換を行うことを含み、このフォーマット規則は、特定のタイプのアクセスユニットをデコードするときに、あらかじめデコードされ、かつ、デコードされたピクチャバッファに記憶されたピクチャを、デコードされたピクチャバッファから除去するかどうかを示す第1のフラグの値がピクチャヘッダには示されていないことを規定する。
【0018】
別の例示的な態様において、別の映像処理方法が開示される。この方法は、フォーマット規則に従って、1つ以上の映像レイヤを有する映像とこの映像のビットストリームとの変換を行うことを含み、このフォーマット規則は、あらかじめデコードされ、かつ、デコードされたピクチャバッファに記憶されたピクチャを、デコードされたピクチャバッファから除去するかどうかを示すアクセスユニットに関連付けられたフラグの値がアクセスユニットの各ピクチャのフラグの値に依存することを規定する。
【0019】
別の例示的な態様において、別の映像処理方法が開示される。この方法は、フォーマット規則に従って、1つ以上の映像レイヤを有する映像とこの映像のビットストリームとの変換を行うことを含み、このフォーマット規則は、アクセスユニットにおいてピクチャを出力するかどうかを示す変数の値を、アクセスユニットにおいて別のピクチャを出力するかどうかを示すフラグに基づいて決定することを規定する。
【0020】
別の例示的な態様において、別の映像処理方法が開示される。この方法は、フォーマット規則に従って、1つ以上の映像レイヤを有する映像とこの映像のビットストリームとの変換を行うことを含み、このフォーマット規則は、ピクチャが出力レイヤに属していない場合、アクセスユニットにおいてピクチャを出力するかどうかを示す変数の値を特定の値と等しく設定することを規定する。
【0021】
別の例示的な態様において、別の映像処理方法が開示される。この方法は、フォーマット規則に従って、1つ以上の映像レイヤを有する映像とこの映像のビットストリームとの変換を行うことを含み、このフォーマット規則は、映像1つの出力レイヤのみを有している場合、出力レイヤを含まないアクセスユニットは、アクセスユニットにおいてピクチャを出力するかどうかを示す変数を最上レイヤID(識別)値を有するピクチャに対して第1の値に、そして他のすべてのピクチャに対して第2の値に設定することによってコーディングされることを規定する。
【0022】
さらに別の例示的な態様において、映像エンコーダ装置が開示される。この映像エンコーダは、上述した方法を実装するように構成されたプロセッサを備える。
【0023】
さらに別の例示的な態様において、映像デコーダ装置が開示される。この映像デコーダは、上述した方法を実装するように構成されたプロセッサを備える。
【0024】
さらに別の例示的な態様では、コードが記憶されたコンピュータ可読媒体が開示される。このコードは、本明細書に記載の方法の1つをプロセッサが実行可能なコードの形式で実施する。
【0025】
これらの及び他の特徴は、本文書全体にわたって説明される。
【図面の簡単な説明】
【0026】
【
図1】映像処理システム例を示すブロック図である。
【
図3】映像処理方法の一例を示すフローチャートである。
【
図4】本開示のいくつかの実施形態による映像コーディングシステムを示すブロック図である。
【
図5】本発明のいくつかの実施形態によるエンコーダを示すブロック図である。
【
図6】本発明のいくつかの実施形態によるデコーダを示すブロック図である。
【
図7A】開示される技術のいくつかの実装形態に基づく、映像処理の例示的な方法のフローチャートを示す。
【
図7B】開示される技術のいくつかの実装形態に基づく、映像処理の例示的な方法のフローチャートを示す。
【
図7C】開示される技術のいくつかの実装形態に基づく、映像処理の例示的な方法のフローチャートを示す。
【
図7D】開示される技術のいくつかの実装形態に基づく、映像処理の例示的な方法のフローチャートを示す。
【
図8A】開示される技術のいくつかの実装形態に基づく、映像処理の例示的な方法のフローチャートを示す。
【
図8B】開示される技術のいくつかの実装形態に基づく、映像処理の例示的な方法のフローチャートを示す。
【
図8C】開示される技術のいくつかの実装形態に基づく、映像処理の例示的な方法のフローチャートを示す。
【
図9A】開示される技術のいくつかの実装形態に基づく、映像処理の例示的な方法のフローチャートを示す。
【
図9B】開示される技術のいくつかの実装形態に基づく、映像処理の例示的な方法のフローチャートを示す。
【
図9C】開示される技術のいくつかの実装形態に基づく、映像処理の例示的な方法のフローチャートを示す。
【発明を実施するための形態】
【0027】
本明細書では、理解を容易にするために章の見出しを使用しており、その技術および各章に記載された実施形態の適用可能性をその章のみに限定するものではない。さらに、H.266という用語は、ある説明において、理解を容易にするためだけに用いられ、開示される技術の範囲を限定するために用いられたものではない。このように、本明細書で説明される技術は、他の映像コーデックプロトコル及び設計にも適用可能である。
【0028】
1.初期の協議
本明細書は、映像コーディング技術に関する。具体的には、それは、デコードされたピクチャバッファ(DPB)メモリの割り当てのためのDPBのパラメータを信号通知すること、並びにスケーラブル映像コーディングにおいてコーディングされたピクチャバッファの出力を規定することについてであり、映像ビットストリームが複数のレイヤを含むものである。この考えは、個々に又は様々な組み合わせで、マルチレイヤ映像コーディング、例えば、現在開発されているVVC(Versatile Video Coding)をサポートする任意の映像コーディング標準又は非標準映像コーデックに適用されてもよい。
【0029】
2.略語
APS Adaptation Parameter Set(適応パラメータセット)
AU Access Unit(アクセスユニット)
AUD Access Unit Delimiter(アクセスユニットデリミター)
AVC Advanced Video Coding(高度映像コーディング)
CLVS Coded Layer Video Sequence(コーディングされたレイヤ映像シーケンス)
CPB Coded Picture Buffer(コーディングされたピクチャバッファ)
CRA Clean Random Access(クリーンランダムアクセス)
CTU Coding Tree Unit(コーディングツリーユニット)
CVS Coded Video Sequence(コーディングされた映像シーケンス)
DCI Decoding Capability Information(デコーディング能力情報)
DPB Decoded Picture Buffer(デコードされたピクチャバッファ)
EOB End Of Bitstream(ビットストリーム終端)
EOS End Of Sequence(シーケンス終端)
GDR Gradual Decoding Refresh(漸次的デコーディングリフレッシュ)
HEVC High Efficiency Video Coding(高効率映像コーディング)
HRD Hypothetical Reference Decoder(仮想参照デコーダ)
IDR Instantaneous Decoding Refresh(瞬時デコーディングリフレッシュ)
JEM Joint Exploration Model(共同探索モデル)
MCTS Motion-Constrained Tile Sets(動作制約タイルセット)
NAL Network Abstraction Layer(ネットワーク抽象化レイヤ)
OLS Output Layer Set(出力レイヤセット)
PH Picture Header(ピクチャヘッダ)
PPS Picture Parameter Set(ピクチャパラメータセット)
PTL Profile,Tier and Level プロファイル、ティアおよびレベル
PU Picture Unit(ピクチャユニット)
RAP Random Access Point(ランダムアクセスポイント)
RBSP Raw Byte Sequence Payload(生バイトシーケンスペイロード)
SEI Supplemental Enhancement Information(補足強化情報)
SPS Sequence Parameter Set(シーケンスパラメータセット)
SVC Scalable Video Coding(スケーラブル映像コーディング)
VCL Video Coding Layer(映像コーディングレイヤ)
VPS Video Parameter Set(映像パラメータセット)
VTM VVC Test Model(VVC試験モデル)
VUI Video Usability Information(映像ユーザビリティ情報)
VVC Versatile Video Coding(汎用映像コーディング)
【0030】
3.映像コーディングの導入
映像コーディング規格は、主に周知のITU-T(International Telecommunication Union - Telecommunication Standardization Sector)およびISO(International Organization for Standardization)/IEC(International Electrotechnical Commission)規格の開発によって発展してきた。ITU-TはH.261とH.263を作り、ISO/IECはMPEG(Moving Picture Experts Group)-1とMPEG-4 Visualを作り、両団体はH.262/MPEG-2 VideoとH.264/MPEG-4 AVC(Advanced Video Coding)とH.265/HEVC(High Efficiency Video Coding)規格を共同で作った。H.262以来、映像コーディング規格は、時間予測と変換コーディングが利用されるハイブリッド映像コーディング構造に基づく。HEVCを超えた将来の映像コーディング技術を探索するため、2015年には、VCEG(Video Coding Experts Group)とMPEGが共同でJVET(Joint Video Exploration Team)を設立した。それ以来、多くの新しい方法がJVETによって採用され、JEM(Joint Exploration Model)と呼ばれる参照ソフトウェアに組み込まれてきた。JVETは四半期に1回開催され、新しいコーディング規格はHEVCに比べて50%のビットレート低減を目指している。2018年4月のJVET会議において、新しい映像コーディング規格を「VVC(Versatile Video Coding)」と正式に命名し、その時、第1版のVVCテストモデル(VTM)をリリースした。VVCの標準化に寄与する努力が続けられているので、すべてのJVET会議において、VVC標準に新しいコーディング技術が採用されている。毎回の会議の後、VVC作業草案およびテストモデルVTMを更新する。VVCプロジェクトは、現在、2020年7月の会合における技術完成(FDIS(Video Coding Experts Group))を目指している。
【0031】
3.1. 全般およびVVCにおけるスケーラブル映像コーディング化(SVC)
スケーラブル映像コーディング(SVC、時には、映像コーディイングにおけるスケーラビリティとも呼ばれる)は、ベースレイヤ(BL)(時には、参照レイヤ(RL)と呼ばれる)と1つ以上のスケーラブルエンハンスメントレイヤ(EL)が使用される映像コーディングを指す。SVCにおいて、ベースレイヤは、基本品質レベルで映像データを伝えることができる。1つ以上のエンハンスメントレイヤは、例えば、より高い空間的、時間的、および/または信号対雑音(SNR)レベルをサポートするように、追加の映像データを伝えることができる。エンハンスメントレイヤは、あらかじめエンコードされたレイヤに対して定義されてもよい。例えば、下層がBLとして機能し、上層がELとして機能することができる。中間レイヤは、ELまたはRLのいずれか、またはその両方として機能することができる。例えば、中間レイヤ(例えば、最下レイヤでも最上レイヤでもないレイヤ)は、中間レイヤの下のレイヤ、例えば、ベースレイヤまたは任意の介在するエンハンスメントレイヤのためのELであってもよく、同時に、中間レイヤの上の1つ以上のエンハンスメントレイヤのためのRLとして機能してもよい。同様に、HEVC規格のマルチビューまたは3D(three dimensional)拡張では、複数のビューが存在してもよく、1つのビューの情報を利用して別のビューの情報(例えば、動き推定、動きベクトル予測および/または他の冗長性)をコード化(例えば、エンコードまたはデコード)することができる。
【0032】
SVCにおいて、エンコーダまたはデコーダで使用されるパラメータは、それらを利用することができるコーディングレベル(例えば、映像レベル、シーケンスレベル、ピクチャレベル、スライスレベル等)に基づいてパラメータセットにグループ分けされる。例えば、ビットストリームにおける異なるレイヤの1つ以上のコーディングされた映像シーケンスによって利用できるパラメータは、映像パラメータセット(VPS)に含まれてもよく、コーディングされた映像シーケンスにおける1つ以上のピクチャによって利用されるパラメータは、シーケンスパラメータセット(SPS)に含まれてもよい。同様に、ピクチャの1つ以上のスライスで利用されるパラメータは、ピクチャパラメータセット(PPS)に含まれてもよく、スライスに固有の他のパラメータは、スライスヘッダに含まれてもよい。同様に、特定のレイヤが所与の時間にどのパラメータセットを使用しているかの指示は、様々なコーディングレベルで提供されてもよい。
【0033】
VVCにおける参照ピクチャリサンプリング(RPR)のサポートのおかげで、空間的スケーラビリティサポートに必要なアップサンプリングはRPRアップサンプリングフィルタを使用するだけでよいので、追加の信号処理レベルのコーディングツールを必要とせずに、複数のレイヤ、例えば、VVCにおけるSD(standard definition)およびHD(high definition)解像度の2つのレイヤを含むビットストリームをサポートするように設計することができる。それにもかかわらず、スケーラビリティサポートのためには、高レベルの構文変更(スケーラビリティをサポートしない場合と比較して)が必要である。スケーラビリティサポートは、VVCバージョン1で規定されている。AVCおよびHEVCの拡張を含む、任意の以前の映像コーディング規格におけるスケーラビリティサポートとは異なり、VVCのスケーラビリティの設計は、単層デコーダの設計にできるだけ適したものにされてきた。多層ビットストリームのデコーディング能力は、ビットストリームに1つのレイヤしかなかったかの如く規定される。例えば、DPBサイズのようなデコーディング能力は、デコードされるビットストリームのレイヤの数に依存しないようで規定される。基本的に、単層ビットストリームのために設計されたデコーダは、多層ビットストリームをデコードすることができるようにするために、多くの変更を必要としない。AVCおよびHEVCの多層拡張の設計と比較して、HLSの態様は、ある程度の柔軟性を犠牲にして大幅に簡略化されてきた。例えば、IRAP AUは、CVS(coded video sequence)に存在するレイヤの各々にピクチャを含むことが必要である。
【0034】
3.2. HEVCおよびVVCにおけるランダムアクセスとそのサポート
ランダムアクセスとは、デコーディング順でビットストリームの最初のピクチャでないピクチャからビットストリームのアクセスとデコーディングを開始することを指す。ブロードキャスト/マルチキャストおよび複数人数によるビデオ会議におけるチューニングおよびチャネル切り替え、ローカル再生およびストリーミングにおける探索、並びにストリーミングにおけるストリーム適応をサポートするために、ビットストリームは、頻繁なランダムアクセスポイントを含むことが必要であり、一般的に、イントラコーディングされたピクチャであるが、インターコーディングされたピクチャであってもよい(例えば、漸次的デコーディング更新の場合)。
【0035】
HEVCは、NAL(network abstraction layer)ユニットタイプによって、NALユニットのヘッダ内のランダムアクセスポイント内(IRAP)ピクチャを信号通知することを含む。3つのタイプのIRAPピクチャ、即ち、瞬時デコーダリフレッシュ(IDR)、クリーンランダムアクセス(CRA)、およびブロークンリンクアクセス(BLA)ピクチャがサポートされる。IDRピクチャは、従来クローズドGOPランダムアクセスポイントと呼ばれている現在のピクチャグループ(GOP)の前のどのピクチャも参照しないようにインターピクチャ予測構造を制約している。CRAピクチャは、特定のピクチャが現在のGOPの前にピクチャを参照することを許可することによって制限が緩和され、ランダムアクセスの場合、これらはすべて破棄される。CRAピクチャは、従来、オープンGOPランダムアクセスポイントと呼ばれている。BLAピクチャは、通常、例えばストリーム切り替え時に、CRAピクチャにおいて2つのビットストリームまたはその一部をスプライシングすることで生成される。IRAPピクチャのより優れたシステム使用を可能にするために、全部で6つの異なるNALユニットがIRAPピクチャのプロパティを信号通知するように定義され、これらのユニットは、HTTP(DASH)上で動的適応ストリーミングでのランダムアクセスサポートのために使用される、ISOベースのメディアファイルフォーマット(ISOBMFF)に定義されるようなストリームアクセスポイントのタイプにより適したものにするために使用できる。
【0036】
VVCは、3つのタイプのIRAPピクチャ、2つのタイプのIDRピクチャ(1つのタイプがRADLピクチャに関連付けられた、または他のタイプが関連付けられていない)および1つのタイプのCRAピクチャをサポートする。これらは基本的にHEVCと同じである。HEVCにおけるBLAピクチャのタイプは、主に2つの理由により、VVCに含まれていない。
i)BLAピクチャの基本機能性は、CRAピクチャにシーケンス終了NALユニットを加えることで実現でき、このシーケンス終了NALユニットが存在することは、後続のピクチャが単層ビットストリームにおいて新しいCVSを開始することを示す。
ii)VVCの開発において、NALユニットヘッダのNALユニットタイプフィールドに6ビットの代わりに5ビットを用いることによって示されるように、HEVCよりも少ないNALユニットタイプを規定する点において要求があった。
【0037】
VVCとHEVCとの間のランダムアクセスサポートにおける別の重要な相違は、VVCにおいてより規範的な方法でGDR(gradual decoding refresh)をサポートすることである。GDRにおいて、ビットストリームのデコーディングは、インターコーディングされたピクチャから開始することができ、始めは、ピクチャ領域全体を正しくデコードすることができないが、多数のピクチャの後に、ピクチャ領域全体を正しくデコードすることができるようになる。AVCおよびHEVCはまた、GDRランダムアクセスポイントおよびリカバリポイントの信号通知のためのリカバリポイントSEI(supplemental enhancement information)メッセージを使用して、GDRをサポートする。VVCにおいて、GDRピクチャを示すために新しいNALユニットタイプが規定され、ピクチャヘッダ構文構造においてリカバリポイントが信号通知される。CVSおよびビットストリームは、GDRピクチャで開始することができる。これは、1つのビットストリーム全体が、1つのイントラコーディングされたピクチャなしにインターコーディングされたピクチャのみを含むことができることを意味する。GDRサポートをこのように規定する主な利点は、GDRに適合した動作を提供することである。GDRは、エンコーダが、ピクチャ全体をイントラコーディングするのではなく、複数のピクチャにイントラコーディングされたスライスまたはブロックを分布させることによって、ビットストリームのビットレートを平滑化することを可能にし、これにより、エンドツーエンドの遅延の大幅な低減が可能になり、そのことは、無線表示、オンラインゲーム、無人機に基づくアプリケーションのような超低遅延アプリケーションがより一般的になっているため、以前より今日ではより重要と考えられる。
【0038】
VVCにおける別のGDRに関連する特徴は、仮想境界信号通知である。GDRピクチャとそのリカバリポイントとの間のピクチャにおける、更新された領域(すなわち、正しくデコードされた領域)と未更新の領域との間の境界は、仮想境界として信号通知されてもよく、信号通知された場合、境界をまたぐインループフィルタリングが適用されなくなり、したがって、境界付近のいくつかのサンプルに対するデコーディングの不整合が発生しなくなる。これは、アプリケーションがGDR処理中に正しくデコードされた領域を表示することを決定した場合に有用となりうる。
【0039】
IRAPピクチャおよびGDRピクチャを集合的に、ランダムアクセスポイント(RAP)ピクチャと呼ぶことができる。
【0040】
3.3 パラメータセット
AVC、HEVC、VVCはパラメータセットを規定する。パラメータセットのタイプは、SPS、PPS、APS(adaptation parameter set)、VPS等である。SPS、PPSは、AVC、HEVC、VVCのすべてでサポートされている。VPSは、HEVCから導入されたものであり、HEVCおよびVVCの両方に含まれる。APSは、AVCまたはHEVCに含まれていなかったが、最近のVVC草案のテキストに含まれている。
【0041】
SPSは、シーケンスレベルのヘッダ情報を伝えるように設計され、PPSは、頻繁に変化しないピクチャレベルのヘッダ情報を伝えるように設計された。SPSおよびPPSを用いると、シーケンスまたはピクチャごとに頻繁に変化する情報を繰り返す必要がないので、この情報の冗長な信号通知を回避することができる。さらに、SPSおよびPPSを使用することは、重要なヘッダ情報の帯域外伝送を有効化し、それにより、冗長な伝送の必要性を回避するだけでなく、誤り耐性を改善する。
【0042】
VPSは、マルチレイヤのビットストリームのすべてのレイヤに共通であるシーケンスレベルのヘッダ情報を伝えるために導入された。
【0043】
APSは、コード化にかなりのビットを必要とし、複数のピクチャによって共有され得る、このようなピクチャレベルまたはスライスレベルの情報を伝えるために導入された。そして、シーケンスにおいて、非常に多くの異なる変形例が存在し得る。
【0044】
3.4 VVCにおける関連定義
最近のVVCテキストJVET-Q2001-vE/v15)における関連する定義は、以下のとおりである。
(特定のピクチャの)関連付けられたIRAPピクチャ:デコーディング順における前のIRAPピクチャ(存在する場合)は、特定のピクチャと同じ値nuh_layer_idを有する。
コーディングされた映像シーケンス(CVS):デコーディング順に、CVSS AUに続き、CVSS AUである後続のAUまで(ただし後続のAUは含まない)のすべてのAUを含む、CVSS AUでない0以上のAUから構成される、AUのシーケンス。
コーディングされた映像シーケンス開始(CVSS)AU:CVSの各レイヤにPU(picture unit)があり、各PUのコーディングされたピクチャがCLVSS(coded layer video sequence start)ピクチャであるAU。
漸次的デコーディング更新(GDR)AU:本PU各々のコーディングされたピクチャがGDRピクチャであるAU。
漸次的デコーディング更新(GDR)PU:コーディングされたピクチャがGDRピクチャであるPU。
漸次的デコーディング更新(GDR)ピクチャ:NALユニットのnal_unit_typeがGDR_NUTであるピクチャ。
イントラランダムアクセスポイント(IRAP)AU:CVSの各レイヤにPUが存在し、各PUのコーディングされたピクチャがIRAPピクチャであるAU。
イントラランダムアクセスポイント(IRAP)ピクチャ:IDR_W_RADLからCRA_NUTの範囲内で、すべてのVCL(video coding layer) NALユニットのnal_unit_typeが同じ値であるコーディングされたピクチャ。
主なピクチャ:関連付けられたIRAPピクチャと同じレイヤにあり、関連付けられたIRAPピクチャに出力順で先行するピクチャ。
末尾のピクチャ:出力順の関連付けられたIRAPピクチャに続くnon-IRAPピクチャで、STSA(stepwise temporal sublayer access)ピクチャではない。
注- IRAPピクチャに関連付けられたトレーリングピクチャも、IRAPピクチャのデコーディング順に従うことに留意されたい。関連付けられたIRAPピクチャの出力順に続き、関連付けられたIRAPピクチャにデコーディング順で先行するピクチャは、許可されない。
【0045】
3.5 VVCにおけるVPS構文および意味論
VVCは、スケーラブル映像コーディングとしても知られるスケーラビリティをサポートし、複数のレイヤは、1つのコーディングされた映像ビットストリームでエンコードすることができる。
【0046】
最近のVVCテキスト(JVET-Q2001-vE/v15)において、VPSにおいてスケーラビリティ情報が信号通知され、その構文および意味論は以下のとおりである。
【0047】
7.3.2.2 映像パラメータセット構文
【表1】
【表2】
【表3】
【0048】
7.4.3.2 映像パラメータセットRBSP意味論
VPS RBSP(raw byte sequence payload)は、それが参照される前に、デコーディング処理に利用可能であり、TemporalIdが0に等しい、又は外部手段によって提供される少なくとも1つのAUに含まれる。
CVSにおけるvps_video_parameter_set_idの特定の値を有するすべてのVPS NALユニットは、同じコンテンツを有するものとする。
vps_video_parameter_set_idは、他の構文要素が参照するVPSの識別子を提供する。vps_video_parameter_set_idの値は0より大きいものとする。
vps_max_layers_minus1プラス1は、各CVSがVPSを参照するときに最大許容レイヤ数を規定する。
vps_max_sublayers_minus1プラス1は、VPSを参照する各CVSのレイヤに存在し得る時間的サブレイヤーの数の最大数を規定する。
vps_max_sublayers_minus1の値は、0から6までの範囲内にあるべきである。
1に等しいvps_all_layers_same_num_sublayers_flagは、VPSを参照する各CVSにおけるすべてのレイヤにおいて時間的サブレイヤーの数が同じであることを規定する。0に等しいvps_all_layers_same_num_sublayers_flagは、VPSを参照する各CVSのレイヤが同じ数の時間的サブレイヤーを有していてもいなくてもよいことを規定する。存在しない場合、vps_all_layers_same_num_sublayers_flagの値は1に等しいと推測される。
1に等しいvps_all_independent_layers_flagは、CVSにおけるすべてのレイヤがレイヤ間予測を使用せずに独立してコーディングされることを規定する。0に等しいvps_all_independent_layers_flagは、CVSの1つ以上のレイヤがインターレイヤー予測を使用してもよいことを規定する。存在しない場合、vps_all_independent_layers_flagの値は1に等しいと推測される。
vps_layer_id[i]は、i番目のレイヤのnuh_layer_idの値を規定する。mおよびnの任意の2つの非負整数値の場合、mがn未満であるとき、vps_layer_id[m]の値は、vps_layer_id[n]未満であるものとする。
1に等しいvps_independent_layer_flag[i]は、インデックスiのレイヤがレイヤ間予測を使用しないことを規定する。0に等しいvps_independent_layer_flag[i]は、インデックスiのレイヤがインターレイヤー予測を使用でき、かつ、jの構文要素vps_direct_ref_layer_flag[i][j]が0~i-1の範囲内にある場合には(両端を含む)、VPSに存在することを規定する。存在しない場合、vps_independent_layer_flag[i]の値は1に等しいと推測される。
0に等しいvps_direct_ref_layer_flag[i][j]は、インデックスjを有するレイヤがインデックスiを有するレイヤの直接参照レイヤでないことを規定する。1に等しいvps_direct_ref_layer_flag[i][j]は、インデックスjを有するレイヤがインデックスiを有するレイヤの直接参照レイヤであることを規定する。iおよびjが0~vps_max_layer_minus1の範囲内にあるとき、vps_direct_ref_layer_flag[i][j]が存在しない場合、それは0に等しいと推論される。vps_independent_layer_flag[i]が0に等しい場合、vps_direct_ref_layer_flag[i][j]の値が1となるように、0~i-1の範囲内にあるjの値が少なくとも1つあるものとする。
変数NumDirectRefLayers[i]、DirectRefLayerIdx[i][d]、NumRefLayers[i]、RefLayerIdx[i][r]、およびLayerUsedAsdRefLayerFlag[i]は次のように導出される:
for(i=0;i<=vps_max_layers_minus1;i++) {
for(j=0;j<=vps_max_layers_minus1;j++) {
dependencyFlag[i][j]=vps_direct_ref_layer_flag[i][j]
for(k=0;k<i;k++)
if(vps_direct_ref_layer_flag[i][k]&&dependencyFlag[k][j])
dependencyFlag[i][j]=1
}
LayerUsedAsRefLayerFlag[i]=0
}
for(i=0;i<=vps_max_layers_minus1;i++) {
for(j=0,d=0,r=0;j<=vps_max_layers_minus1;j++) { (37)
if(vps_direct_ref_layer_flag[i][j]) {
DirectRefLayerIdx[i][d++]=j
LayerUsedAsRefLayerFlag[j]=1
}
if(dependencyFlag[i][j])
RefLayerIdx[i][r++]=j
}
NumDirectRefLayers[i]=d
NumRefLayers[i]=r
}
vps_layer_id[i]であるnuh_layer_idを有するレイヤのレイヤインデックスを規定する変数GeneralLayerIdx[i]は、以下のように導出される。
for(i=0;i<=vps_max_layers_minus1;i++) (38)
GeneralLayerIdx[vps_layer_id[i]]=i
Iおよびjの、両方とも0~vps_max_layers_minus1の範囲内にある任意の2つの異なる値について、dependencyFlag[i][j]が1に等しい場合、i番目のレイヤに適用されるchroma_format_idcとbit_depth_minus8は、j番目のレイヤに適用されるchroma_format_idcとbit_depth_minus8とそれぞれ等しいとすることが、ビットストリーム適合性の要件である。
max_tid_ref_present_flag[i]が1に等しい場合は、構文要素max_tid_il_ref_pics_plus1[i]が存在することを規定する。max_tid_ref_present_flag[i]が0に等しい場合は、構文要素max_tid_il_ref_pics_plus1[i]が存在しないことを規定する。
max_tid_il_ref_pics_plus1[i]が0に等しい場合は、i番目のレイヤの非IRAPピクチャでインターレイヤー予測を使用しないことを規定する。max_tid_il_ref_pics_plus1[i]>0は、i番目のレイヤのピクチャをデコーディングするために、max_tid_il_ref_pics_plus1[i]-1より大きいTemporalIdを有するピクチャをILRP(inter layer reference picture)として使用しないことを規定する。存在しない場合、max_tid_il_ref_pics_plus1[i]の値は7に等しいと推測される。
layer_is_an_ols_flagが1に等しい場合は、各OLSが1つのレイヤのみを含み、VPSを参照するCVSにおける各レイヤ自体が1つのOLSであり、単一の含まれたレイヤが唯一の出力レイヤであることを規定する。
OLSであるeach_layer_is_an_ols_flagが0に等しい場合は、2つ以上のレイヤを含んでいてもよい。vps_max_layers_minus1が0に等しい場合、each_layer_is_an_ols_flagの値は1に等しいと推論される。そうでない場合、vps_all_independent_layers_flagが0に等しい場合、each_layer_is_an_ols_flagの値は0に等しいと推論される。
0に等しいols_mode_idcは、VPSで規定されたOLSの総数がvps_max_layers_minus1+1に等しいことを規定し、i番目のOLSは、レイヤインデックスが0からiまでのレイヤを含み、各OLSにおいて、OLSにおける最上位レイヤのみを出力する。
1に等しいols_mode_idcは、VPSで規定されたOLSの総数がvps_max_layers_minus1+1に等しいことを規定し、i番目のOLSは、レイヤインデックスが0からiまでのレイヤを含み、各OLSにおいて、OLSにおけるすべてのレイヤを出力する。
ols_mode_idcが2に等しい場合は、VPSによって規定されたOLSの総数が明示的に信号通知されることを規定し、各OLSにおいて、出力レイヤは明示的に信号通知され、他のレイヤがOLSの出力レイヤの直接または間接参照レイヤであるレイヤであることを規定する。
ols_mode_idcの値は、0から2までの範囲内にあるべきである。ols_mode_idcの値3は、ITU-T|ISO/IECが将来使用するために確保されている。
vps_all_independent_layers_flagが1に等しく、each_layer_is_an_ols_flagが0に等しい場合、ols_mode_idcの値は2に等しいと推論される。
num_output_layer_sets_minus1プラス1は、ols_mode_idcが2に等しいときには、VPSで規定されるOLSの総数を規定する。
VPSで規定されたOLSの総数を規定する変数TotalNumOlssは、以下のように導出される。
if(vps_max_layers_minus1==0)
TotalNumOlss=1
else if(each_layer_is_an_ols_flag||ols_mode_idc==0||ols_mode_idc==1)
TotalNumOlss=vps_max_layers_minus1+1 (39)
else if(ols_mode_idc==2)
TotalNumOlss=num_output_layer_sets_minus1+1
1に等しいols_output_layer_flag[i][j]は、ols_mode_idcが2に等しい場合、nuh_layer_idがvps_layer_id[j]に等しいレイヤがi番目のOLSの出力レイヤであることを規定する。0に等しいols_output_layer_flag[i][j]は、ols_mode_idが2に等しい場合、nuh_layer_idがvps_layer_id[j]に等しいレイヤがi番目のOLSの出力レイヤでないことを規定する。
i番目のOLSにおける出力レイヤの数を規定する変数NumOutputLayersInOls[i]、i番目のOLSにおけるj番目のレイヤのサブレイヤーの数を規定する変数NumSubLayersInLayerInOls[i][j]、i番目のOLSにおけるj番目の出力レイヤのnuh_layer_id値を規定する変数OutputLayerIdInOls[i][j]、および少なくとも1つのOLSにおいてk番目のレイヤを出力レイヤとして使用するかどうかを規定する変数LayerUsedAsOutputLayerFlag[k]、を以下のように導出する。
NumOutputLayersInOls[0]=1
OutputLayerIdInOls[0][0]=vps_layer_id[0]
NumSubLayersInLayerInOLS[0][0]=vps_max_sub_layers_minus1+1
LayerUsedAsOutputLayerFlag[0]=1
for(i=1,i<=vps_max_layers_minus1;i++) {
if(each_layer_is_an_ols_flag||ols_mode_idc<2)
LayerUsedAsOutputLayerFlag[i]=1
else/*(!each_layer_is_an_ols_flag&&ols_mode_idc==2) */
LayerUsedAsOutputLayerFlag[i]=0
}
for(i=1;i<TotalNumOlss;i++)
if(each_layer_is_an_ols_flag||ols_mode_idc==0) {
NumOutputLayersInOls[i]=1
OutputLayerIdInOls[i][0]=vps_layer_id[i]
for(j=0;j<i&&(ols_mode_idc==0);j++)
NumSubLayersInLayerInOLS[i][j]=max_tid_il_ref_pics_plus1[i]
NumSubLayersInLayerInOLS[i][i]=vps_max_sub_layers_minus1+1
} else if(ols_mode_idc==1) {
NumOutputLayersInOls[i]=i+1
for(j=0;j<NumOutputLayersInOls[i];j++) {
OutputLayerIdInOls[i][j]=vps_layer_id[j]
NumSubLayersInLayerInOLS[i][j]=vps_max_sub_layers_minus1+1
}
} else if(ols_mode_idc==2) {
for(j=0;j<=vps_max_layers_minus1;j++) {
layerIncludedInOlsFlag[i][j]=0
NumSubLayersInLayerInOLS[i][j]=0
}
for(k=0,j=0;k<=vps_max_layers_minus1;k++) (40)
if(ols_output_layer_flag[i][k]) {
layerIncludedInOlsFlag[i][k]=1
LayerUsedAsOutputLayerFlag[k]=1
OutputLayerIdx[i][j]=k
OutputLayerIdInOls[i][j++]=vps_layer_id[k]
NumSubLayersInLayerInOLS[i][j]=vps_max_sub_layers_minus1+1
}
NumOutputLayersInOls[i]=j
for(j=0;j<NumOutputLayersInOls[i];j++) {
idx=OutputLayerIdx[i][j]
for(k=0;k<NumRefLayers[idx];k++) {
layerIncludedInOlsFlag[i][RefLayerIdx[idx][k]]=1
if(NumSubLayersInLayerInOLS[i][RefLayerIdx[idx][k]] <
max_tid_il_ref_pics_plus1[OutputLayerIdInOls[i][j]])
NumSubLayersInLayerInOLS[i][RefLayerIdx[idx][k]]=
max_tid_il_ref_pics_plus1[OutputLayerIdInOls[i][j]]
}
}
}
0~vps_max_layer_minus1の範囲内にあるiの各値について、LayerUsedAsRefLayerFlag[i]およびLayerUsedAsOutputLayerFlag[i]の値は、両方とも0に等しくないものとする。言い換えれば、少なくとも1つのOLSの出力レイヤでも、他のレイヤの直接参照レイヤでもないレイヤが存在しないものとする。
各OLSに対して、出力レイヤである少なくとも1つのレイヤが存在するものとする。すなわち、iの値が0~TotalNumOlss_1の範囲内(両端を含む)である場合、NumOutputLayersInOls[i]の値は、1以上である。
i番目のOLSにおけるレイヤの数を規定する変数NumLayersInOls[i]、およびi番目のOLSにおけるj番目のレイヤのnuh_layer_id値を規定する変数LayerIdInOls[i][j]は、以下のように導出する。
NumLayersInOls[0]=1
LayerIdInOls[0][0]=vps_layer_id[0]
for(i=1;i<TotalNumOlss;i++) {
if(each_layer_is_an_ols_flag) {
NumLayersInOls[i]=1
LayerIdInOls[i][0]=vps_layer_id[i] (41)
} else if(ols_mode_idc==0||ols_mode_idc==1) {
NumLayersInOls[i]=i+1
for(j=0;j<NumLayersInOls[i];j++)
LayerIdInOls[i][j]=vps_layer_id[j]
} else if(ols_mode_idc==2) {
for(k=0,j=0;k<=vps_max_layers_minus1;k++)
if(layerIncludedInOlsFlag[i][k])
LayerIdInOls[i][j++]=vps_layer_id[k]
NumLayersInOls[i]=j
}
}
注1-0番目のOLSは、最下位レイヤ(すなわち、nuh_layer_idがvps_layer_id[0]であるレイヤ)のみを含み、0番目のOLSの場合、含まれているレイヤのみが出力される。
nuh_layer_idがLayerIdInOls[i][j]であるレイヤのOLSレイヤインデックスを規定する変数OlsLayerIdx[i][j]は、以下のように導出される。
for(i=0;i<TotalNumOlss;i++)
for j=0;j<NumLayersInOls[i];j++) (42)
OlsLayerIdx[i][LayerIdInOls[i][j]]=j
各OLSにおける最下位レイヤは独立レイヤであるものとする。すなわち、0~TotalNumOlss-1の範囲内の各iについて、vps_independent_layer_flag[GeneralLayerIdx[LayerIdInOls[i][0]]の値は、1に等しいものとする。
各レイヤは、VPSによって規定される少なくとも1つのOLSに含まれるものとする。言い換えれば、0からvps_max_layers_minus1の範囲内にあるkについて、nuh_layer_idの特定の値nuhLayerIdがvps_layer_id[k]の1つと等しい各レイヤについて、少なくとも1対の値、iとjが存在するものとする。ここで、Iは0からTotalNumOlss-1の範囲にあり、jはNumLayersInOls[i]-1の範囲にあり、LayerIdInOls[i][j]の値がnuhLayerIdと等しくなる。
vps_num_ptls_minus1プラス1は、VPSにおけるprofile_tier_level()構文構造の数を規定する。vps_num_ptls_minus1の値はTotalNumOlssより小さいものとする。
pt_present_flag[i]が1に等しい場合は、VPSのi番目のprofile_tier_level()構文構造にプロファイル、ティア、一般的な制約情報が含まれていることを規定し、pt_present_flag[i]が0に等しい場合は、VPSのi番目のprofile_tier_level()syntax structureに存在しないことを規定する。pt_present_flag[0]の値は1に等しいと推論される。pt_present_flag[i]が0に等しい場合は、VPS内i番目のprofile_tier_level()構文構造のプロファイル、ティア、一般的な制約情報は、VPS内(i-1)番目のprofile_tier_level()構文構造のものと同じと推論される。
ptl_max_temporal_id[i]は、VPSのi番目のprofile_tier_level()構文構造においてレベル情報が存在する最も高いサブレイヤー表現のTemporalIdを規定する。ptl_max_temporal_id[i]の値は、0~vps_max_sublayers_minus1の範囲内にあるものとする。vps_max_sublayers_minus1が0に等しい場合、ptl_max_temporal_id[i]の値は0に等しいと推論される。vps_max_sublayers_minus1が0より大きく、vps_all_layers_same_num_sublayers_flagが1に等しい場合、ptl_max_temporal_id[i]の値は、vps_max_sublayers_minus1に等しいと推論される。
vps_ptl_alignment_zero_bit=0に等しいものとする。
ols_ptl_idx[i]は、第i番目のOLSに適用されるprofile_tier_level()構文構造の、VPSにおけるprofile_tier_level()構文構造のリストに対するインデックスを規定する。存在する場合、ols_ptl_idx[i]の値は、0~vps_num_ptls_minus1の範囲内にあるものとする。vps_num_ptls_minus1が0に等しい場合、ols_ptl_idx[i]の値は0に等しいと推論される。
NumLayersInOls[i]が1に等しい場合、i番目のOLSに適用されるprofile_tier_level()構文構造は、i番目のOLSのレイヤが参照するSPSにも存在する。NumLayersInOLS[i]が1に等しい場合は、VPSおよびi番目のOLSのSPSにおいて信号通知されるprofile_tier_level()構文構造は同一であるものとすることが、ビットストリーム適合性の要件である。
vps_num_dpb_paramsは、VPSにおけるdpb_parameters()構文構造の数を規定する。vps_num_dpb_paramsの値は、0~16の範囲内である。存在しない場合、vps_num_dpb_paramsの値は0に等しいと推測される。
vps_sublayer_dpb_params_present_flagは、VPSのdpb_parameters()構文構造において、max_dec_pic_buffering_minus1[]、max_num_reorder_pics[]、およびmax_latency_increase_plus1[]構文要素の存在を制御するのに使用する。存在しない場合、vps_sub_dpb_params_info_present_flagは0に等しいと推論される。
dpb_max_temporal_id[i]は、VPSのi番目のdpb_parameters()構文構造にDPBパラメータが含まれている可能性がある、最も高いサブレイヤー表現のTemporalIdを規定する。dpb_max_temporal_id[i]の値は、0~vps_max_sublayers_minus1の範囲内にあるものとする。vps_max_sublayers_minus1が0に等しい場合、dpb_max_temporal_id[i]の値は0に等しいと推論される。vps_max_sublayers_minus1が0より大きく、vps_all_layers_same_num_sublayers_flagが1に等しい場合、dpb_max_temporal_id[i]の値は、vps_max_sublayers_minus1に等しいと推論される。
ols_dpb_pic_width[i]は、i番目のOLSのための各ピクチャ記憶バッファの輝度サンプル(luma sample)の単位での幅を規定する。
ols_dpb_pic_height[i]は、i番目のOLSの各ピクチャ記憶バッファの高さを、輝度サンプル単位で規定する。
ols_dpb_params_idx[i]は、NumLayersInOls[i]が1より大きい場合、i番目のOLSに適用されるdpb_parameters()構文構造の、VPSにおけるdpb_parameters()構文構造のリストにインデックスを規定する。存在する場合、ols_dpb_params_idx[i]の値は、0~vps_num_dpb_params-1の範囲内にあるものとする。ols_dpb_params_idx[i]が存在しない場合、ols_dpb_params_idx[i]の値は0に等しいと推論される。
NumLayersInOls[i]が1に等しい場合は、i番目のOLSに適用されるdpb_parameters()構文構造は、i番目のOLSにおけるレイヤが参照するSPSに存在する。
vps_general_hrd_params_present_flagが1に等しい場合は、VPSがgeneral_hrd_parameters()構文構造および他のHRD(hypothetical reference decoder)パラメータを含むことを規定する。
vps_general_hrd_params_present_flagが0に等しい場合は、VPSがgeneral_hrd_parameters()構文構造または他のHRDパラメータを含まないことを規定する。存在しない場合、vps_general_hrd_params_present_flagの値は0と推測される。
NumLayersInOls[i]が1に等しい場合、general_hrd_parameters()構文構造およびi番目のOLSに適用されるols_hrd_parameters()構文構造は、i番目のOLSのレイヤが参照するSPSに存在する。
1に等しいvps_sublayer_cpb_params_present_flagは、VPSにおけるi番目のols_hrd_parameters()構文構造が、TemporalIdが0~hrd_max_tid[i]の範囲内にあるサブレイヤー表現のためのHRDパラメータを含むことを規定する。0に等しいvps_sublayer_cpb_params_present_flagは、VPSにおけるi番目のols_hrd_parameters()構文構造が、hrd_max_tid[i]に等しいサブレイヤーの表現に対するHRDパラメータのみを含むことを規定する。vps_max_sublayers_minus1が0に等しい場合、vps_sublayer_cpb_params_present_flagの値は0に等しいと推論される。
vps_sublayer_cpb_params_present_flagが0に等しい場合、TemporalIdが0からhrd_max_tid[i]-1の範囲内にあるサブレイヤー表現のHRDパラメータは、TemporalIdがhrd_max_tid[i]-1に等しいサブレイヤー表現のHRDパラメータと同じに等しいと推論される。これには、fixed_pic_rate_general_flag[i]構文要素から始まり、sublayer_hrd_parameters(i)構文構造に至るまでのHRDパラメータが、ols_hrd_parameters構文構造における条件“if(general_vcl_hrd_params_present_flag)”のすぐ下に含まれる。
num_ols_hrd_params_minus1プラス1は、vps_general_hrd_params_present_flagが1に等しいとき、VPSに存在するols_hrd_parameters()構文構造の数を規定する。num_ols_hrd_params_minus1の値は、0からTotalNumOls-1までの範囲内にある必要があります。
hrd_max_tid[i]は、i番目のols_hrd_parameters()構文構造にHRDパラメータが含まれる最も高いサブレイヤー表現のTemporalIdを規定する。hrd_max_tid[i]の値は、0~vps_max_sublayers_minus1の範囲内にあるものとする。vps_max_sublayers_minus1が0に等しい場合、hrd_max_tid[i]の値は0に等しいと推論される。vps_max_sublayers_minus1が0より大きく、vps_all_layers_same_num_sublayers_flagが1に等しい場合、hrd_max_tid[i]の値は、vps_max_sublayers_minus1に等しいと推論される。
ols_hrd_idx[i]は、NumLayersInOls[i]が1より大きい場合、i番目のOLSに適用されるols_hrd_parameters()構文構造の、VPSにおけるols_hrd_parameters()構文構造のリストにインデックスを規定する。ols_hrd_idx[[i]の値は、0からnum_ols_hrd_params_minus1までの範囲内にあるものとする。
NumLayersInOls[i]が1に等しい場合は、i番目のOLSに適用されるols_hrd_parameters()構文構 造は、i番目のOLSにおけるレイヤが参照するSPSに存在する。
num_ols_hrd_param_minus1+1の値がTotalNumOLSに等しい場合、ols_hrd_idx[i]の値はiに等しいと推論される。そうでない場合、NumLayersInOls[i]が1より大きく、num_ols_hrd_params_minus1が0に等しい場合、ols_hrd_idx[[i]の値は0に等しいと推論される。
vps_extension_flagが0に等しい場合、VPS RBSP構文構造にvps_extension_data_flag構文要素が含まれていないことを規定する。vps_extension_flagが1に等しい場合、VPS RBSP構文構造にvps_extension_data_flag構文要素が存在することを規定する。
vps_extension_data_flagは任意の値を有することができる。その存在および値は、本明細書バージョンで特定された特徴に対するのデコーダの適合性に影響を与えない。本明細書バージョンに準拠するデコーダは、すべてのvps_extension_data_flag構文要素を無視しなければならない。
【0049】
3.6. VVCにおけるSPS構文および意味論
最近のVVCテキスト(JVET-Q2001-vE/v15)において、本実施形態に最も関連するSPS構文および意味論は、以下のとおりである。
【0050】
7.3.2.3 シーケンスパラメータセットRBSP構文
【表4】
【0051】
7.4.3.3 シーケンスパラメータセットRBSP意味論
...
1に等しいgdr_enabled_flagは、SPSを参照しているCLVSにおいてGDRピクチャが存在し得ることを規定する。0に等しいgdr_enabled_flagは、SPSを参照しているCLVSにおいてGDRピクチャが存在しないことを規定する。
chroma_format_idcは、第6.2項に規定されるように、輝度サンプリングに対するクロマサンプリングを示す。
...
bit_depth_minus8は、輝度およびクロマ配列BitDepthのサンプルのビット深度及びクロマ量子化パラメータレンジオフセットQpBdOffsetの値を以下のように規定する。
BitDepth=8+bit_depth_minus8 (45)
QpBdOffset=6*bit_depth_minus8 (46)
bit_depth_minus8は、0から8までの範囲内にある。
...
3.7. VVCにおけるピクチャヘッダ構造の構文および意味論
【0052】
最近のVVCテキスト(JVET-Q2001-vE/v15)において、本実施形態に最も関連するピクチャヘッダ構造の構文および意味論は、以下のとおりである。
【0053】
【0054】
7.4.3.7 ピクチャヘッダ構造意味論
【0055】
PH(picture header)構文構造は、PH構文構造に関連付けられたコーディングされたピクチャのすべてのスライスに共通の情報を含む。
1に等しいgdr_or_irap_pic_flagは、現在のピクチャがGDRまたはIRAPピクチャであることを規定する。0に等しいgdr_or_irap_pic_flagは、現在のピクチャがGDRまたはIRAPピクチャであってもなくてもよいことを規定する。
1に等しいgdr_pic_flagは、PHに関連付けられたピクチャがGDRピクチャであることを規定する。0に等しいgdr_pic_flagは、PHに関連付けられたピクチャがGDRピクチャでないことを規定する。存在しない場合、gdr_pic_flagの値は0に等しいと推測される。gdr_enabled_flagが0に等しい場合、gdr_pic_flagの値は0に等しいものとする。
注1-gdr_or_irap_pic_flagが1に等しく、gdr_pic_flagが0に等しい場合、PHに関連付けられたピクチャはIRAPピクチャである。
...
ph_pic_order_cnt_lsbは、現在のピクチャのピクチャオーダカウントモジュロMaxPicOrderCntLsbを規定する。ph_pic_order_cnt_lsb構文要素の長さは、log2_max_pic_order_cnt_lsb_minus4+4ビットである。ph_pic_order_cnt_lsbの値は、0~MaxPicOrderCntLsb-1の範囲内とする。
附属書Cに規定されるように、no_output_of_prior_pics_flagは、ビットストリームの最初のピクチャでないCLVSSピクチャのデコーディング後の、DPBにおける前回デコードされたピクチャの出力に影響を及ぼす。
recovery_poc_cntは、デコードされたピクチャの出力順のリカバリポイントを規定する。現在のピクチャがPHに関連付けられたGDRピクチャであり、現在のGDRピクチャのPicOrderCntValにrecovery_poc_cntの値を加えたものであるPicOrderCntValを有するCLVSにおいて、デコーディング順で現在のGDRピクチャに後続するピクチャが存在する場合、このピクチャpicAをリカバリポイントピクチャと呼ぶ。そうでない場合、現在のピクチャのPicOrderCntValにrecovery_poc_cntの値を加えたものよりも大きいPicOrderCntValを有する出力順の第1のピクチャを、リカバリポイントピクチャと呼ぶ。リカバリポイントピクチャは、現在のGDRピクチャにデコーディング順で先行しないものとする。recovery_poc_cntの値は、0~MaxPicOrderCntLsb-1の範囲内とする。
現在のピクチャがGDRピクチャである場合、変数RpPicOrderCntValは、以下のように導出される。
RpPicOrderCntVal=PicOrderCntVal+recovery_poc_cnt (81)
注2-gdr_enabled_flagが1に等しく、現在のピクチャのPicOrderCntValが関連付けられたGDRピクチャのRpPicOrderCntVal以上である場合、出力順で現在及び後続のデコードされたピクチャが、デコーディング順で関連付けられたGDRピクチャに先行する前のIRAPピクチャ(存在する場合)からデコーディング処理を開始することによって生成された対応するピクチャに完全に一致する。
...
【0056】
3.8. PictureOutputFlagの設定
最近のVVCテキスト(JVET-Q2001-vE/v15)において、変数PictureOutputFlagの値を設定する仕様は、以下のとおりである(8.1.2項 コーディングされたピクチャのデコーディング処理の一部として)。
8.1.2 コーディングされたピクチャに対するデコーディング処理
本項で規定されるデコーディング処理は、各コーディングされたピクチャ(現在のピクチャと呼ばれ、BitstreamToDecodeにおいて変数CurrPicで表される)に適用される。
chroma_format_idcの値に依存して、現在のピクチャのサンプル配列の数は、以下の通りである。
-chroma_format_idcが0に等しい場合、現在のピクチャは、1つのサンプル配列SLで構成される。
-そうでない場合(chroma_format_idcが0と等しくない場合)、現在のピクチャは、3つのサンプル配列SL、SCb、SCrで構成される。
現在のピクチャに対するデコーディング処理は、項目7からの構文要素および大文字変数を入力とする。各NALユニットにおける各構文要素の意味論を解釈するとき、および項目8の残りの部分において、用語「ビットストリーム」(またはその一部、例えば、ビットストリームのCVS)は、BitstreamToDecode(またはその一部)を指す。
separate_colour_plane_flagの値に依存して、デコーディング処理は以下のように構成される。
-separate_colour_plane_flagが0に等しい場合、現在のピクチャを出力として、デコーディング処理が1回呼び出される。
-そうでない場合(separate_colour_plane_flagが1に等しい)、デコーディング処理が3回呼び出される。デコーディング処理への入力は、colour_plane_idの値が同一であるコーディングされたピクチャのすべてのNALユニットである。colour_plane_idの特定の値を有するNALユニットのデコーディング処理は、colour_plane_idの特定の値を有するモノクロカラーフォーマットを備えるCVSのみがビットストリームに存在するかのように規定される。3つのデコーディング処理の各々の出力は、現在のピクチャの3つのサンプル配列の1つに割り当てられ、colour_plane_idが0、1、および2に等しいNALユニットがそれぞれ、SL、SCb、SCrに割り当てられる。
注記-separate_colour_plane_flagが1に等しく、chroma_format_idcが3に等しい場合、変数ChromaArrayTypeは0に等しく導出される。デコーディング処理において、この変数の値を評価し、モノクロピクチャの場合(chroma_format_idcが0に等しい場合)と同一の操作となる。
デコーディング処理は、現在のピクチャCurrPicに対して以下のように動作する。
1.NALユニットのデコーディングは8.2項で規定されている。
2.8.3項の処理は、タイルグループヘッダレイヤおよびそれより上位の構文要素を使用して、以下のデコーディング処理を規定する。
-ピクチャオーダカウントに関連する変数および関数は、8.3.1項で規定されるように導出される。これは、ピクチャの第1のスライスに対してのみ呼び出す必要がある。
非IDRピクチャの各スライスのデコーディング処理の最初に、参照ピクチャリスト0(RefPicList[0])と参照ピクチャリスト1(RefPicList[1])の導出のために、8.3.2項に規定された参照ピクチャリスト構築のためのデコーディング処理が呼び出される。
-8.3.3項の参照ピクチャマーキングのためのデコーディング処理が呼び出され、参照ピクチャは、「参照のために使用されていない」または「長期参照のために使用される」としてマークされてもよい。これは、ピクチャの第1のスライスに対してのみ呼び出す必要がある。
-現在のピクチャが、NoOutputBeforeRecoveryFlagが1に等しいCRAピクチャまたはNoOutputBeforeRecoveryFlagが1に等しいGDRピクチャである場合、8.3.4項で規定される利用不可能な参照ピクチャを生成するためのデコーディング処理が呼び出されるが、ピクチャの最初のスライスに対してのみ呼び出される必要がある。
-PictureOutputFlagは、以下のように設定される。
-以下の条件の1つが真である場合、PictureOutputFlagを0に等しく設定する。
-現在のピクチャはRASL(random access skipped leading)ピクチャであり、関連付けられたIRAPピクチャのNoOutputBeforeRecoveryFlagは1に等しい。
-gdr_enabled_flagは1に等しく、現在のピクチャは、NoOutputBeforeRecoveryFlagが1に等しいGDRピクチャである。
-gdr_enabled_flagは1に等しく、現在のピクチャは、NoOutputBeforeRecoveryFlagが1に等しいGDRピクチャに関連付けられ、現在のピクチャのPicOrderCntValは、関連付けられたGDRピクチャのRpPicOrderCntValよりも小さい。
-sps_video_parameter_set_idが0より大きく、ols_mode_idcが0に等しく、現在のAUに以下の条件をすべて満たすピクチャpicAが含まれる。
-PicAは、1に等しいPictureOutputFlagを有する。
-PicAは、現在のピクチャのものよりも大きいnuh_layer_id nuhLidを有する。
-PicAはOLSの出力レイヤに属する(すなわち、OutputLayerIdInOls[TargetOlsIdx][0]はnuhLidに等しい)。
-sps_video_parameter_set_idが0より大きく、ols_mode_idcが2に等しく、ols_output_layer_flag[TargetOlsIdx][GeneralLayerIdx[nuh_layer_id]]は0に等しい。
-そうでない場合、PictureOutputFlagがpic_output_flagに等しく設定される。
3. 8.4項、8.5項、8.6項、8.7項および8.8項の処理は、すべての構文構造レイヤにおける構文要素を使用したデコーディング処理を規定している。ピクチャを複数のスライスに分割し、複数のスライスを複数のCTU(coding tree unit)に分割することで、それぞれがピクチャのパーティションを形成するように、ピクチャのコーディングされたスライスは、ピクチャのすべてのCTUのためのスライスデータを含むことが、ビットストリーム適合性の要件である。
4.現在のピクチャのすべてのスライスをデコードした後、現在のデコードされたピクチャを「短期参照に使用される」とマークし、RefPicList[0]またはRefPicList[1]における各ILRPエントリを「短期参照に使用される」とマークする。
【0057】
3.9. HRD操作に対するDPBパラメータの設定
最近のVVCテキスト(JVET-Q2001-vE/v15)において、HRD操作のためのDPBパラメータを設定するための仕様は、以下のとおりである(項C.1の一部として)。
C.1 一般
...
各ビットストリーム適合性試験において、CPB(coded picture buffer)のサイズ(ビット数)は、7.4.6.3項で規定されるように、CpbSize[Htid][ScIdx]であり、ScIdxおよびHRDパラメータは、本節において上記で特定され、DPBパラメータmax_dec_pic_buffering_minus1[Htid],max_num_reorder_pics[Htid]およびMaxLatncyPictures[Htid]は、以下のように対象OLSに適用されるdpb_parameters()構文構造で見つけられ、またはそこから導出される。
-対象OLSが1つのレイヤのみを含む場合、dpb_parameters()構文構造は、対象OLSのレイヤとして参照されるSPSにおいて見つけられる。
-そうでない場合(対象OLSは複数の層を含む)、dpb_parameters()は、VPSにおいて見つけられるols_dpb_params_idx[TargetOlsIdx]によって識別される。
...
【0058】
3.10. NoOutputOfPriorPicsFlagの設定
最近のVVCテキスト(JVET-Q2001-vE/v15)において、変数NoOutputOfPriorPicFlagの値を設定する仕様は、(DPBからのピクチャ除去の仕様の一部として)以下のとおりである。
C.3.2 現在のピクチャのデコーディング前のDPBからのピクチャの除去
現在のピクチャのデコーディング前に(ただし、現在のピクチャの最初のスライスのスライスヘッダを構文解析した後に)、DPBからのピクチャの除去は、AU n(現在のピクチャを含む)の最初のDU(decoding unit)のCPB除去時間において瞬時に行われ、以下のように進む。
-8.3.2項で規定される参照ピクチャリスト構築のためのデコーディング処理が呼び出され、8.3.3項で規定されるようにマーキングされる参照ピクチャのためにデコーディング処理が呼び出される。
-現在のAUがAU 0でないCVSS AUである場合、以下の順序付けられたステップが適用される。
1.試験中のデコーダのための変数NoOutputOfPriorPicsFlagは、以下のように導出される。
-現在のAUのどのピクチャに対しても導出されたpic_width_max_in_luma_samples、pic_height_max_in_luma_samples、chroma_format_idc、separate_colour_plane_flag、bit_depth_minus8、max_dec_pic_buffering_minus1[Htid]の値が、同じCLVSの前のピクチャに対して導出されたpic_width_max_in_luma_samples,pic_height_max_in_luma_samples,chroma_format_idc,separate_colour_plane_flag,bit_depth_minus8,or max_dec_pic_buffering_minus1[Htid]それぞれの値とは異なり、no_output_of_prior_pics_flagの値に関わらず、テスト対象のデコーダによってNoOutputOfPriorPicsFlagが1に設定されてもよい(ただし、そうすべきではない)。
注-このような条件下では、NoOutputOfPriorPicsFlagをno_output_of_pics_flagに等しく設定することが好ましいが、この場合、テスト対象のデコーダは、NoOutputOfPriorPicsFlagを1に設定することができる。
-そうでない場合、NoOutputOfPriorPicsFlagは、no_output_of_prior_pics_flagに等しく設定される。
2.テスト中のデコーダに対して導出されたNoOutputOfPriorPicsFlagの値をHRDに適用し、NoOutputOfPriorPicsFlagの値が1に等しい場合、DPB内のすべてのピクチャ記憶バッファは、それらが含むピクチャの出力なしに空になり、DPBフルネスは0に等しく設定される。
-DPBにおける任意のピクチャkについて、以下の条件の両方が真である場合、DPBにおけるこのようなピクチャkはすべて、DPBから除去する。
-ピクチャkは、「参照に使用されない」としてマークされる。
-ピクチャkのPictureOutputFlagが0に等しいか、またはそのDPB出力時間が現在のピクチャnの第1のDU(DU mと表す)のCPB除去時間以下である。即ち、DpbOutputTime[k]がDuCpbRemovalTime[m]以下である。
-DPBから取り除かれた各ピクチャごとに、DPBフルネスを1ずつ減らす。
C.5.2.2 DPBからのピクチャの出力と除去
現在のピクチャのデコーディング前に(但し、現在のピクチャの最初スライスのスライスヘッダを構文解析した後に)、DPBからのピクチャの出力および除去は、現在のピクチャを含むAUの最初DUがCPBから除去される時に瞬時に行われ、以下のように進む。
-8.3.2項で規定される参照ピクチャリスト構築のためのデコーディング処理および8.3.3項で規定される参照ピクチャマーキングのためのデコーディング処理が呼び出される。
-現在のピクチャがピクチャ0でないCLVSSピクチャである場合、以下の順序付けられたステップが適用される。
1.試験中のデコーダのための変数NoOutputOfPriorPicsFlagは、以下のように導出される。
-現在のAUの任意のピクチャに対して導出されたpic_width_max_in_luma_samples,pic_height_max_in_luma_samples,chroma_format_idc,separate_colour_plane_flag,bit_depth_minus8,またはmax_dec_pic_buffering_minus1[Htid]の値が、同じCLVSにおける前のピクチャに対してpic_width_max_in_luma_samples,pic_height_max_in_luma_samples,chroma_format_idc,separate_colour_plane_flag,bit_depth_minus8,またはmax_dec_pic_buffering_minus1[Htid]の値とそれぞれ異なる場合は、NoOutputOfPriorPicsFlagは、no_output_of_prior_pics_flagの値に関わらず、試験中のデコーダによって1に設定されてもよく(ただし、そうすべきではない)。
注-このような条件下では、NoOutputOfPriorPicsFlagをno_output_of_pics_flagに等しく設定することが好ましいが、この場合、テスト対象のデコーダは、NoOutputOfPriorPicsFlagを1に設定することができる。
-そうでない場合、NoOutputOfPriorPicsFlagは、no_output_of_prior_pics_flagに等しく設定される。
2.試験中のデコーダに対して導出されたNoOutputOfPriorPicsFlagの値は、HRDに以下のように適用される。
-NoOutputOfPriorPicsFlagが1に等しい場合、DPB内のすべてのピクチャ記憶バッファは、それらが含むピクチャを出力せずに空になり、DPBフルネスは0に等しく設定される。
-そうでない場合(NoOutputOfPriorPicsFlagが0に等しい)、「出力に必要でない」および「参照に使用されない」とマークされたピクチャを含むすべてのピクチャ記憶バッファは、空にされ(出力されず)、且つ、DPBにおけるすべての空でないピクチャ記憶バッファは、項目C.5.2.4で規定された「バンピング」処理を繰り返し呼び出すことによって空にされ、DPBフルネスは0に等しく設定される。
-そうでない場合(現在のピクチャがCLVSSピクチャでないか、またはCLVSSピクチャがピクチャ0である場合)、「出力に必要でない」および「参照に使用されない」とマークされたピクチャを含むすべてのピクチャ記憶バッファを空にする(出力しない)。空になった各ピクチャ記憶バッファに対して、DPBフルネスを1ずつ減らす。以下の条件のうちの1つ以上が真である場合、項目C.5.2.4で規定される「バンピング」処理が、以下の条件のうちのいずれも真でなくなるまで、空になった追加のピクチャ記憶バッファごとにDPB占有率をさらに1ずつ減らしながら、繰り返して呼び出される。
-DPBにおいて、「出力に必要」とマークされたピクチャの数は、max_num_reorder_pics[Htid]よりも多い。
-max_latency_increase_plus1[Htid]が0に等しくなく、DPB内に、関連付けられた変数PicLatencyCountがMaxLatencyPictures[Htid]以上であることに対して「出力に必要」とマークされたピクチャが少なくとも1つ存在する。
-DPBにおけるピクチャの数は、max_dec_pic_buffering_minus1[Htid]+1以上である。
【0059】
4.開示される技術的解決策によって解決される技術課題
最近のVVCテキスト(JVET-Q2001-vE/v15)における既存のスケーラビリティ設計は、以下の問題を有する。
1)現在、すべてのレイヤのすべてのピクチャに対するピクチャ幅およびピクチャ高さの最大値がVPSにおいて信号通知され、デコーダがDPBにメモリを適切に割り当てることを可能にする。ピクチャの幅および高さと同様に、SPS構文要素chroma_format_idcおよびbit_depth_minus8でそれぞれ現在規定されているクロマフォーマットおよびビット深度も、DPBにおけるピクチャ記憶バッファのサイズに影響を及ぼす。ただし、すべてのレイヤのすべてのピクチャについて、chroma_format_idcおよびbit_depth_minus8の最大値が信号通知されるわけではない。
2)現在、変数NoOutputOfPriorPicsFlagの値の設定は、pic_width_max_in_luma_samplesまたはpic_height_max_in_luma_samplesの値を変更することを含む。しかし、代わりに、すべてのレイヤのすべてのピクチャのピクチャ幅およびピクチャ高さの最大値を使用すべきである。
3)現在、NoOutputOfPriorPicsFlagの設定は、chroma_format_idcまたはbit_depth_minus8の値を変更することを含む。しかし、代わりに、すべてのレイヤのすべてのピクチャに対するクロマフォーマットおよびビット深度の最大値を使用すべきである。
4)現在、NoOutputOfPriorPicSFlagの設定は、separate_colour_plane_flagの値を変更することを含む。しかしながら、4:4:4クロマフォーマットを規定するchroma_format_idcが3に等しい場合にのみseparate_colour_plane_flagは存在し、使用され、一方、4:4:4クロマフォーマットについては、値が0または1に等しいseparate_colour_plane_flagは、デコードされたピクチャを記憶するために必要なバッファサイズに影響しない。よって、NoOutputOfPriorPicsFlagの設定は、separate_colour_plane_flagの値を変更することを含むべきではない。
5)現在、PH for IRAP and GDR ピクチャでは、no_output_of_priorPics_flagが信号通知され、このフラグの意味論とNoOutputOfPriorPicsFlagの設定処理とは共に、no_output_of_prior_pics_flagがレイヤ固有またはPU固有である手法で規定される。しかし、DPB動作はOLS固有またはAU固有であるので、no_output_of_pics_flagの意味論およびNoOutputOfPriorPicsFlagの設定におけるこのフラグの使用の両方を、AU固有の方式で規定するべきである。
6)現在のピクチャのために変数PictureOutputFlagの値を設定するための現在のテキストは、現在のピクチャと同じAUで且つ現在のピクチャよりも上位レイヤにあるピクチャのPictureOutputFlagを使用することを含む。しかし、nuh_layer_idが現在のピクチャのものより大きいピクチャpicAについて、現在のピクチャのPictureOutputFlagを導出する場合、picAのPictureOutputFlagはまだ導出されていない。
7)変数PictureOutputFlagの値を設定する現在のテキストには、以下のような問題がある。OLSのビットストリームには2つのレイヤがあり、上位レイヤのみが出力レイヤであり、特定のAU auAにおいて、上位レイヤのピクチャは、pic_output_flagが0に等しい。デコーダ側において、auAの上位レイヤピクチャは存在せず(例えば、損失またはレイヤダウンスイッチングのため)、一方、auAの下位レイヤピクチャは存在し、pic_output_flagが1に等しい。そして、auAの下位レイヤピクチャのPictureOutputFlagの値を1に等しく設定する。しかしながら、OLSが1つの出力レイヤのみを有し、出力レイヤのピクチャが0に等しいpic_output_flagを有する場合、エンコーダ(またはコンテンツ提供者)は、そのピクチャを含むAUに対してピクチャを出力したくなかったと解釈されるべきである。
8)変数PictureOutputFlagの値を設定する現在のテキストには、以下のような問題がある。OLSのビットストリームには3つ以上のレイヤがあり、トップレイヤのみが出力レイヤである。デコーダ側では、現在のAUのトップレイヤピクチャが存在せず(例えば、ロスまたはレイヤダウンスイッチングのため)、一方、現在のAUのための下位レイヤのピクチャが2つ以上存在し、これらのピクチャは、pict_output_flagが1に等しい場合、このAUのために複数のピクチャが出力される。しかしながら、このことは、OLSには出力レイヤが1つしかないため、エンコーダまたはコンテンツ提供者が1つのピクチャのみを出力することを期待したので問題がある。
9)変数PictureOutputFlagの値を設定する現在のテキストには、以下のような問題がある。OLSモード2(ols_mode_idcが2に等しい場合)は、モード0のように1つの出力レイヤのみを規定することもできるが、出力レイヤピクチャ(最上レイヤピクチャでもある)が存在しない場合のAUのための下位レイヤピクチャの出力動作は、モード0のためにのみ規定される。
10)1つの出力レイヤのみを含むOLSの場合、出力レイヤのピクチャ(これも最上レイヤのピクチャである)がデコーダにとって利用可能でない(例えば、ロスまたはレイヤダウンスイッチングのため)場合、デコーダは、そのピクチャのpic_output_flagが1または0に等しいかどうかを知ることができない。それが1に等しい場合、下位レイヤのピクチャを出力することが妥当であるが、それが0に等しい場合、この特定のOLSのためのこのAUに対するピクチャ出力があるべきでないなどの理由で、エンコーダ(コンテンツ提供者)が値を0に等しくするように、下位レイヤのピクチャを出力することは、ユーザ体験の観点から見ればさらに悪くなるかもしれない。
【0060】
5.実施形態および技術のリスト化
上述した課題等を解決するために、以下に示す方法が開示されている。これらの項目は、一般的な概念を説明するための例であり、狭義に解釈されるべきではない。さらに、これらの項目は、個々に適用されてもよく、または任意の方法で組み合わされてもよい。
課題を解決するための解決策1~5
1)課題1を解決するために、VPSにおいて、すべてのレイヤのすべてのピクチャについて、chroma_format_idcおよびbit_depth_minus8の最大値の一方または両方を信号通知してもよい。
2)課題2を解決するために、変数NoOutputOfPriorPicsFlagの値の設定は、全レイヤの全ピクチャの最大ピクチャ幅と高さの一方または両方に少なくとも基づいてVPSで信号通知するように規定してもよい。
3)課題3を解決するために、変数NoOutputOfPriorPicsFlagの値の設定は、全レイヤの全ピクチャに対するchroma_format_idcとbit_depth_minus8の最大値の一方または両方に少なくとも基づいてVPSで信号通知するように規定してもよい。
4)課題4を解決するために、変数NoOutputOfPriorPicFlagの値の設定は、separate_colour_plane_flagの値に依存しないように規定してもよい。
5)課題5を解決するために、no_output_of_pics_flagの意味論と、NoOutputOfPriorPicsFlagの設定の両方におけるこのフラグの使用とを、AU固有の方式で規定してもよい。
a.一例において、存在する場合、no_output_of_prior_pics_flagの値は、AUにおけるすべてのピクチャについて同じであるべきであり、AUのno_output_of_prior_pics_flagの値は、AUのピクチャのno_output_of_prior_pics_flagの値であると考えられる。
b.代替的に、一例において、irap_or_gdr_au_flagが1に等しい場合、no_output_of_prior_pics_flagをPH構文から除去し、AUD(access unit delimiter)構文に信号通知してもよい。
i.シングルレイヤビットストリームの場合、AUDはオプションであるため、AUDがIRAPまたはGDR AUに存在しない場合、AUDのno_output_of_pics_flagの値は1に等しいと推測してもよい(つまり、エンコーダは、シングルレイヤビットストリームにおけるIRAPまたはGDR AUのno_output_of_pics_flagの値0を信号通知したい場合、ビットストリーム内のそのAUのAUDを信号通知しなければならない。
c.代替的に、一例において、AUの各ピクチャのno_output_of_prior_pics_flagの値は、AUのピクチャごとのno_output_of_prior_pics_flagが0に等しい場合にのみ、0に等しいと見なされてもよく、そうでない場合、AUのno_output_of_prior_pics_flagの値は、1に等しいと考えてもよい。
i.このアプローチの欠点は、NoOutputOfPriorPicsFlagを設定し、CVSS AUのピクチャを出力するには、AU内のすべてのピクチャが到着するのを待つ必要があることである。
課題を解決するための解決策6~10
6)問題6を解決するために、現在のピクチャのためのPictureOutputFlagの設定は、現在のピクチャと同じAUであって現在のピクチャよりも上位レイヤにあるピクチャのpic_output_flag(PictureOutputFlagではなく)に少なくとも基づいて行うようで規定されてもよい。
7)上記課題7~9を解決するために、現在のピクチャが出力レイヤに属していない場合、常に、現在のピクチャのPictureOutputFlagの値を0に設定する。
a.代替的に、問題7および8を解決するために、1つの出力レイヤしかなく、1つのAUに対して出力レイヤ(1つの出力レイヤしかない場合、上層になるべき)が存在しない場合、デコーダが使用可能なAUのすべてのピクチャのうち、nuh_layer_idの値が最も高く、pict_output_flagが1に等しいピクチャに対して、PictureOutputFlagを1に等しく設定し、デコーダが利用可能なAUの他のすべてのピクチャに対しては、0に等しく設定する。
8)問題10を解決するために、AUの出力レイヤピクチャのpic_output_flagの値は、AUDまたはAUにおけるSEIメッセージで信号通知されてもよいし、またはAUにおける1つ以上の他のピクチャのPHで通知されてもよい。
【0061】
6.実施形態
以下は、上記第5章に要約されたいくつかの態様のためのいくつかの例示的な実施形態であり、VVC仕様に適用できる。変更されたテキストは、JVET-Q2001-vE/v15における最新のVVCのテキストに基づく。既に追加または修正された最も関連性のある部分は、太字のイタリック文字で強調表示され、且つ削除された部分の一部は、二重括弧でマークされている(例えば、[[a]]は、「a」という文字の削除を示す)。本質的に編集可能であるため、強調されていない他の何らかの変更がある。
【0062】
6.1. 第一の実施形態
本実施形態は1、2、3、4、5、及び5a項に対するものである。
【0063】
7.3.2.2 映像パラメータセット構文
【表6】
【0064】
...
7.4.3.2 映像パラメータセットRBSP意味論
...
ols_dpb_pic_width[i]は、i番目のOLSのための各ピクチャ記憶バッファの輝度サンプル(luma sample)の単位での幅を規定する。
ols_dpb_pic_height[i]は、i番目のOLSの各ピクチャ記憶バッファの高さを、輝度サンプル単位で規定する。
【化1】
【化2】
ols_dpb_params_idx[i]は、NumLayersInOls[i]が1より大きい場合、i番目のOLSに適用されるdpb_parameters()構文構造の、VPSにおけるdpb_parameters()構文構造のリストにインデックスを規定する。存在する場合、ols_dpb_params_idx[i]の値は、0~vps_num_dpb_params-1の範囲内にあるものとする。ols_dpb_params_idx[i]が存在しない場合、ols_dpb_params_idx[i]の値は0に等しいと推論される。
NumLayersInOls[i]が1に等しい場合は、i番目のOLSに適用されるdpb_parameters()構文構造は、i番目のOLSにおけるレイヤが参照するSPSに存在する。
...
7.4.3.3 シーケンスパラメータセットRBSP意味論
...
1に等しいgdr_enabled_flagは、SPSを参照しているCLVSにおいてGDRピクチャが存在し得ることを規定する。0に等しいgdr_enabled_flagは、SPSを参照しているCLVSにおいてGDRピクチャが存在しないことを規定する。
chroma_format_idcは、第6.2項に規定されるように、輝度サンプリングに対するクロマサンプリングを示す。
【化3】
...
bit_depth_minus8は、輝度およびクロマ配列BitDepthのサンプルのビット深度及びクロマ量子化パラメータレンジオフセットQpBdOffsetの値を以下のように規定する。
BitDepth=8+bit_depth_minus8 (45)
QpBdOffset=6*bit_depth_minus8 (46)
bit_depth_minus8は、0から8までの範囲内にある。
【化4】
...
7.4.3.7 ピクチャヘッダ構造意味論
...
【化5】
【化6】
...
C.1 一般
...
各ビットストリーム適合性試験において、CPBのサイズ(ビット数)は、7.4.6.3項で規定されるように、CpbSize[Htid][ScIdx]であり、ScIdxおよびHRDパラメータは、本節において上記で特定され、DPBパラメータmax_dec_pic_buffering_minus1[Htid],max_num_reorder_pics[Htid]およびMaxLatncyPictures[Htid]は、以下のように対象OLSに適用されるdpb_parameters()構文構造で見つけられ、またはそこから導出される。
【化7】
【化8】
...
C.3.2 現在のピクチャのデコーディング前のDPBからのピクチャの除去
現在のピクチャのデコーディング前に(ただし、現在のピクチャの最初のスライスのスライスヘッダを構文解析した後に)、DPBからのピクチャの除去は、AU n(現在のピクチャを含む)の最初のDUのCPB除去時間において瞬時に行われ、以下のように進む。
-8.3.2項で規定される参照ピクチャリスト構築のためのデコーディング処理が呼び出され、8.3.3項で規定されるようにマーキングされる参照ピクチャのためにデコーディング処理が呼び出される。
-現在のAUがAU 0でないCVSS AUである場合、以下の順序付けられたステップが適用される。
1.試験中のデコーダのための変数NoOutputOfPriorPicsFlagは、以下のように導出される。
【化9】
【化10】
-そうでない場合、NoOutputOfPriorPicsFlagは、現在のAUのno_output_of_prior_pics_flagに等しく設定される。
2.テスト中のデコーダに対して導出されたNoOutputOfPriorPicsFlagの値をHRDに適用し、NoOutputOfPriorPicsFlagの値が1に等しい場合、DPB内のすべてのピクチャ記憶バッファは、それらが含むピクチャの出力なしに空になり、DPBフルネスは0に等しく設定される。
-DPBにおける任意のピクチャkについて、以下の条件の両方が真である場合、DPBにおけるこのようなピクチャkはすべて、DPBから除去する。
-ピクチャkは、「参照に使用されない」としてマークされる。
-ピクチャkのPictureOutputFlagが0に等しいか、またはそのDPB出力時間が現在のピクチャnの第1のDU(DU mと表す)のCPB除去時間以下である。即ち、DpbOutputTime[k]がDuCpbRemovalTime[m]以下である。
-DPBから取り除かれた各ピクチャごとに、DPBフルネスを1ずつ減らす。
C.5.2.2 DPBからのピクチャの出力と除去
現在のピクチャのデコーディング前に(但し、現在のピクチャの最初スライスのスライスヘッダを構文解析した後に)、DPBからのピクチャの出力および除去は、現在のピクチャを含むAUの最初DUがCPBから除去される時に瞬時に行われ、以下のように進む。
-8.3.2項で規定される参照ピクチャリスト構築のためのデコーディング処理および8.3.3項で規定される参照ピクチャマーキングのためのデコーディング処理が呼び出される。
【化11】
1.試験中のデコーダのための変数NoOutputOfPriorPicsFlagは、以下のように導出される。
【化12】
【化13】
【化14】
2.試験中のデコーダに対して導出されたNoOutputOfPriorPicsFlagの値は、HRDに以下のように適用される。
-NoOutputOfPriorPicsFlagが1に等しい場合、DPB内のすべてのピクチャ記憶バッファは、それらが含むピクチャを出力せずに空になり、DPBフルネスは0に等しく設定される。
-そうでない場合(NoOutputOfPriorPicsFlagが0に等しい)、「出力に必要でない」および「参照に使用されない」とマークされたピクチャを含むすべてのピクチャ記憶バッファは、空にされ(出力されず)、且つ、DPBにおけるすべての空でないピクチャ記憶バッファは、項目C.5.2.4で規定された「バンピング」処理を繰り返し呼び出すことによって空にされ、DPBフルネスは0に等しく設定される。
-そうでない場合(現在のピクチャがCLVSSピクチャでないか、またはCLVSSピクチャがピクチャ0である場合)、「出力に必要でない」および「参照に使用されない」とマークされたピクチャを含むすべてのピクチャ記憶バッファを空にする(出力しない)。空になった各ピクチャ記憶バッファに対して、DPBフルネスを1ずつ減らす。以下の条件のうちの1つ以上が真である場合、項目C.5.2.4で規定される「バンピング」処理が、以下の条件のうちのいずれも真でなくなるまで、空になった追加のピクチャ記憶バッファごとにDPB占有率をさらに1ずつ減らしながら、繰り返して呼び出される。
-DPBにおいて、「出力に必要」とマークされたピクチャの数は、max_num_reorder_pics[Htid]よりも多い。
-max_latency_increase_plus1[Htid]が0に等しくなく、DPB内に、関連付けられた変数PicLatencyCountがMaxLatencyPictures[Htid]以上であることに対して「出力に必要」とマークされたピクチャが少なくとも1つ存在する。
-DPBにおけるピクチャの数は、max_dec_pic_buffering_minus1[Htid]+1以上である。
【0065】
6.2. 第二の実施形態
本実施形態は、項目1、2、3、4、5、5cに対するものであり、第1の実施形態の本文と文脈が変更されている。
7.4.3.7 ピクチャヘッダ構造意味論
...
附属書Cで規定されるように、no_output_of_prior_pics_flagは、ビットストリームの最初のAUでないCVSS AUピクチャのデコーディング後の、DPBにおいてあらかじめデコードされたピクチャの出力に影響を及ぼす。
[[no_of_prior_pics_flagの値は、(存在すれば)のAUのすべてのピクチャに対して同じとなることが、ビットストリーム適合性の要件である。
AUのピクチャのPHにno_output_of_prior_pics_flagが存在する場合、AUのno_output_of_prior_pics_flagの値は、AUのピクチャのno_output_of_prior_pics_flagの値である。]]
...
C.3.2 現在のピクチャのデコーディング前のDPBからのピクチャの除去
現在のピクチャのデコーディング前に(ただし、現在のピクチャの最初のスライスのスライスヘッダを構文解析した後に)、DPBからのピクチャの除去は、AU n(現在のピクチャを含む)の最初のDUのCPB除去時間において瞬時に行われ、以下のように進む。
-8.3.2項で規定される参照ピクチャリスト構築のためのデコーディング処理が呼び出され、8.3.3項で規定されるようにマーキングされる参照ピクチャのためにデコーディング処理が呼び出される。
-現在のAUがAU 0でないCVSS AUである場合、以下の順序付けられたステップが適用される。
1.試験中のデコーダのための変数NoOutputOfPriorPicsFlagは、以下のように導出される。
【化15】
【化16】
【化17】
【化18】
2.テスト中のデコーダに対して導出されたNoOutputOfPriorPicsFlagの値をHRDに適用し、NoOutputOfPriorPicsFlagの値が1に等しい場合、DPB内のすべてのピクチャ記憶バッファは、それらが含むピクチャの出力なしに空になり、DPBフルネスは0に等しく設定される。
-DPBにおける任意のピクチャkについて、以下の条件の両方が真である場合、DPBにおけるこのようなピクチャkはすべて、DPBから除去する。
-ピクチャkは、「参照に使用されない」としてマークされる。
-ピクチャkのPictureOutputFlagが0に等しいか、またはそのDPB出力時間が現在のピクチャnの第1のDU(DU mと表す)のCPB除去時間以下である。即ち、DpbOutputTime[k]がDuCpbRemovalTime[m]以下である。
-DPBから取り除かれた各ピクチャごとに、DPBフルネスを1ずつ減らす。
C.5.2.2 DPBからのピクチャの出力と除去
現在のピクチャのデコーディング前に(但し、現在のピクチャの最初スライスのスライスヘッダを構文解析した後に)、DPBからのピクチャの出力および除去は、現在のピクチャを含むAUの最初DUがCPBから除去される時に瞬時に行われ、以下のように進む。
-8.3.2項で規定される参照ピクチャリスト構築のためのデコーディング処理および8.3.3項で規定される参照ピクチャマーキングのためのデコーディング処理が呼び出される。
-現在のAUがAU 0でないCVSS AUである場合、以下の順序付けられたステップが適用される。
1.試験中のデコーダのための変数NoOutputOfPriorPicsFlagは、以下のように導出される。
【化19】
【化20】
【化21】
【化22】
2.試験中のデコーダに対して導出されたNoOutputOfPriorPicsFlagの値は、HRDに以下のように適用される。
-NoOutputOfPriorPicsFlagが1に等しい場合、DPB内のすべてのピクチャ記憶バッファは、それらが含むピクチャを出力せずに空になり、DPBフルネスは0に等しく設定される。
-そうでない場合(NoOutputOfPriorPicsFlagが0に等しい)、「出力に必要でない」および「参照に使用されない」とマークされたピクチャを含むすべてのピクチャ記憶バッファは、空にされ(出力されず)、且つ、DPBにおけるすべての空でないピクチャ記憶バッファは、項目C.5.2.4で規定された「バンピング」処理を繰り返し呼び出すことによって空にされ、DPBフルネスは0に等しく設定される。
-そうでない場合(現在のピクチャがCLVSSピクチャでないか、またはCLVSSピクチャがピクチャ0である場合)、「出力に必要でない」および「参照に使用されない」とマークされたピクチャを含むすべてのピクチャ記憶バッファを空にする(出力しない)。空になった各ピクチャ記憶バッファに対して、DPBフルネスを1ずつ減らす。以下の条件のうちの1つ以上が真である場合、項目C.5.2.4で規定される「バンピング」処理が、以下の条件のうちのいずれも真でなくなるまで、空になった追加のピクチャ記憶バッファごとにDPB占有率をさらに1ずつ減らしながら、繰り返して呼び出される。
-DPBにおいて、「出力に必要」とマークされたピクチャの数は、max_num_reorder_pics[Htid]よりも多い。
-max_latency_increase_plus1[Htid]が0に等しくなく、DPB内に、関連付けられた変数PicLatencyCountがMaxLatencyPictures[Htid]以上であることに対して「出力に必要」とマークされたピクチャが少なくとも1つ存在する。
-DPBにおけるピクチャの数は、max_dec_pic_buffering_minus1[Htid]+1以上である。
【0066】
6.3. 第三の実施形態
本実施形態は、6、7項(変更後のテキストは、8.1.2項に追加された注記を除く)および7a項(8.1.2項に追加された注記)に関する。
7.4.3.7 ピクチャヘッダ構造意味論
...
recovery_poc_cntは、デコードされたピクチャの出力順のリカバリポイントを規定する。
【化23】
【化24】
[[現在のピクチャがGDRピクチャである場合、変数RpPicOrderCntValは、以下のように導出される。
RpPicOrderCntVal=PicOrderCntVal+recovery_poc_cnt (81)]]
【化25】
...
8.1.2 コーディングされたピクチャに対するデコーディング処理
...
【化26】
-[[PictureOutputFlag]は、以下のように設定される。
-以下の条件の1つが真である場合、PictureOutputFlagを0に等しく設定する。
-現在のピクチャはRASLピクチャであり、関連付けられたIRAPピクチャのNoOutputBeforeRecoveryFlagは1に等しい。
-gdr_enabled_flagは1に等しく、現在のピクチャは、NoOutputBeforeRecoveryFlagが1に等しいGDRピクチャである。
-gdr_enabled_flagは1に等しく、現在のピクチャは、NoOutputBeforeRecoveryFlagが1に等しいGDRピクチャに関連付けられ、現在のピクチャのPicOrderCntValは、関連付けられたGDRピクチャのRpPicOrderCntValよりも小さい。
-sps_video_parameter_set_idが0より大きく、ols_mode_idcが0に等しく、現在のAUに以下の条件をすべて満たすピクチャpicAが含まれる。
-PicAは、1に等しいPictureOutputFlagを有する。
-PicAは、現在のピクチャのものよりも大きいnuh_layer_id nuhLidを有する。
-PicAはOLSの出力レイヤに属する(すなわち、OutputLayerIdInOls[TargetOlsIdx][0]はnuhLidに等しい)。
-sps_video_parameter_set_idが0より大きく、ols_mode_idcが2に等しく、ols_output_layer_flag[TargetOlsIdx][GeneralLayerIdx[nuh_layer_id]]は0に等しい。
-そうでない場合、PictureOutputFlagは、pic_output_flagに等しく設定される。]]
...
【0067】
6.4.第四の実施形態
本実施形態は、項目6および7aに対するものである。
8.1.2 コーディングされたピクチャに対するデコーディング処理
...
-PictureOutputFlagは、以下のように設定される。
-以下の条件の1つが真である場合、PictureOutputFlagを0に等しく設定する。
-現在のピクチャはRASLピクチャであり、関連付けられたIRAPピクチャのNoOutputBeforeRecoveryFlagは1に等しい。
-gdr_enabled_flagは1に等しく、現在のピクチャは、NoOutputBeforeRecoveryFlagが1に等しいGDRピクチャである。
-gdr_enabled_flagは1に等しく、現在のピクチャは、NoOutputBeforeRecoveryFlagが1に等しいGDRピクチャに関連付けられ、現在のピクチャのPicOrderCntValは、関連付けられたGDRピクチャのRpPicOrderCntValよりも小さい。
【化27】
-[[sps_video_parameter_set_idが0より大きく、ols_mode_idcが0に等しく、現在のAUに以下の条件をすべて満たすピクチャpicAが含まれる。
-PicAは、1に等しいPictureOutputFlagを有する。
-PicAは、現在のピクチャのものよりも大きいnuh_layer_id nuhLidを有する。
-PicAはOLSの出力レイヤに属する(すなわち、OutputLayerIdInOls[TargetOlsIdx][0]はnuhLidに等しい)。]]
-sps_video_parameter_set_idが0より大きく、ols_mode_idcが2に等しく、ols_output_layer_flag[TargetOlsIdx][GeneralLayerIdx[nuh_layer_id]]は0に等しい。
-そうでない場合、PictureOutputFlagがpic_output_flagに等しく設定される。
...
【0068】
6.5. 第五の実施形態
この実施形態は、6項のみに対するものである。
8.1.2 コーディングされたピクチャに対するデコーディング処理
...
-PictureOutputFlagは、以下のように設定される。
-以下の条件の1つが真である場合、PictureOutputFlagを0に等しく設定する。
-現在のピクチャはRASLピクチャであり、関連付けられたIRAPピクチャのNoOutputBeforeRecoveryFlagは1に等しい。
-gdr_enabled_flagは1に等しく、現在のピクチャは、NoOutputBeforeRecoveryFlagが1に等しいGDRピクチャである。
-gdr_enabled_flagは1に等しく、現在のピクチャは、NoOutputBeforeRecoveryFlagが1に等しいGDRピクチャに関連付けられ、現在のピクチャのPicOrderCntValは、関連付けられたGDRピクチャのRpPicOrderCntValよりも小さい。
-sps_video_parameter_set_idが0より大きく、ols_mode_idcが0に等しく、現在のAUに以下の条件をすべて満たすピクチャpicAが含まれる。
-PicAは、pic_output_flag[[PictureOutputFlag]]が1に等しい。
-PicAは、現在のピクチャのものよりも大きいnuh_layer_id nuhLidを有する。
-PicAはOLSの出力レイヤに属する(すなわち、OutputLayerIdInOls[TargetOlsIdx][0]はnuhLidに等しい)。
-sps_video_parameter_set_idが0より大きく、ols_mode_idcが2に等しく、ols_output_layer_flag[TargetOlsIdx][GeneralLayerIdx[nuh_layer_id]]は0に等しい。
-そうでない場合、PictureOutputFlagがpic_output_flagに等しく設定される。
.
【0069】
図1は、本明細書で開示される様々な技術が実装され得る例示的な映像処理システム1900を示すブロック図である。様々な実装形態は、システム1900のコンポーネントの一部又は全部を含んでもよい。システム1900は、映像コンテンツを受信するための入力ユニット1902を含んでもよい。映像コンテンツは、未加工又は非圧縮フォーマット、例えば、8又は10ビットのマルチコンポーネント画素値で受信されてもよく、又は圧縮又はエンコードされたフォーマットで受信されてもよい。入力ユニット1902は、ネットワークインターフェース、周辺バスインターフェース、又は記憶インターフェースを表してもよい。ネットワークインターフェースの例は、イーサネット(登録商標)、PON(登録商標;Passive Optical Network)等の有線インターフェース、およびWi-Fi(登録商標)(wireless fidelity)またはセルラーインターフェース等の無線インターフェースを含む。
【0070】
システム1900は、本明細書に記載される様々なコーディング又はエンコーディング方法を実装することができるコーディングコンポーネント1904を含んでもよい。コーディングコンポーネント1904は、入力1902からの映像の平均ビットレートをコーディングコンポーネント1904の出力に低減し、映像のコーディングされた表現を生成してもよい。従って、このコーディング技術は、映像圧縮または映像トランスコーディング技術と呼ばれることがある。コーディングコンポーネント1904の出力は、コンポーネント1906によって表されるように、記憶されてもよいし、接続された通信を介して送信されてもよい。入力1902において受信された、記憶された又は通信された映像のビットストリーム(又はコーディングされた)表現は、コンポーネント1908によって使用されて、表示インターフェース1910に送信される画素値又は表示可能な映像を生成してもよい。ビットストリーム表現からユーザが見ることができる映像を生成する処理は、映像展開と呼ばれることがある。さらに、特定の映像処理演算を「コーディング」演算又はツールと呼ぶが、コーディングツール又は演算は、エンコーダ及びそれに対応する、コーディングの結果を逆にするデコーディングツール又は演算が、デコーダによって行われることが理解されよう。
【0071】
周辺バスインターフェースまたは表示インターフェースの例は、USB(登録商標;Universal Serial Bus)またはHDMI(登録商標;High Definition Multimedia Interface)またはディスプレイポート等を含んでもよい。ストレージインターフェースの例は、SATA(Serial Advanced Technology Attachment)、PCI(peripheral component interconnect)、IDE(integrated drive electronics)インターフェース等を含む。本明細書に記載される技術は、携帯電話、ノートパソコン、スマートフォン、又はデジタルデータ処理及び/又は映像表示を実施可能な他のデバイス等の様々な電子デバイスに実施されてもよい。
【0072】
図2は、映像処理装置3600のブロック図である。装置3600は、本明細書に記載の方法の1つ以上を実装するために使用してもよい。装置3600は、スマートフォン、タブレット、コンピュータ、モノのインターネット(IoT)受信機等に実施されてもよい。装置3600は、1つ以上のプロセッサ3602と、1つ以上のメモリ3604と、映像処理ハードウェア3606と、を含んでもよい。1つまたは複数のプロセッサ3602は、本明細書に記載される1つ以上の方法を実装するように構成されてもよい。メモリ(複数可)3604は、本明細書で説明される方法および技術を実装するために使用されるデータおよびコードを記憶するために使用してもよい。映像処理ハードウェア3606は、本明細書に記載される技術をハードウェア回路にて実装するために使用してもよい。
【0073】
図4は、本開示の技法を利用し得る例示的な映像コーディングシステム100を示すブロック図である。
【0074】
図4に示すように、映像コーディングシステム100は、送信元デバイス110と、送信先デバイス120と、を備えてもよい。送信元デバイス110は、映像エンコーディングデバイスとも称され得るエンコードされた映像データを生成する。送信先デバイス120は、送信元デバイス110によって生成されたエンコードされた映像データをデコードしてよく、映像デコーディングデバイスとも呼ばれ得る。
【0075】
送信元デバイス110は、映像ソース112と、映像エンコーダ114と、入出力(I/O)インターフェース116と、を含んでよい。
【0076】
映像ソース112は、映像キャプチャデバイスなどのソース、映像コンテンツプロバイダからの映像データを受信するためのインターフェース、および/または映像データを生成するためのコンピュータグラフィックスシステム、またはこれらのソースの組み合わせを含んでもよい。映像データは、1または複数のピクチャを含んでもよい。映像エンコーダ114は、映像ソース112からの映像データをエンコードし、ビットストリームを生成する。ビットストリームは、映像データのコーディング表現を形成するビットのシーケンスを含んでもよい。ビットストリームは、コーディングされたピクチャおよび関連付けられたデータを含んでもよい。コーディングされたピクチャは、ピクチャのコーディング表現である。関連付けられたデータは、シーケンスパラメータセット、ピクチャパラメータセット、および他の構文構造を含んでもよい。I/Oインターフェース116は、変復調器(モデム)および/または送信機を含んでもよい。エンコードされた映像データは、ネットワーク130aを介して、I/Oインターフェース116を介して送信先デバイス120に直接送信されてよい。エンコードされた映像データは、送信先デバイス120がアクセスするために、記録媒体/サーバ130bに記憶してもよい。
【0077】
送信先デバイス120は、I/Oインターフェース126、映像デコーダ124、および表示デバイス122を含んでもよい。
【0078】
I/Oインターフェース126は、受信機および/またはモデムを含んでもよい。I/Oインターフェース126は、送信元デバイス110または記憶媒体/サーバ130bからエンコードされた映像データを取得してもよい。映像デコーダ124は、エンコードされた映像データをデコードしてもよい。表示デバイス122は、デコードされた映像データをユーザに表示してもよい。表示デバイス122は、送信先デバイス120と一体化されてもよく、または外部表示デバイスとインターフェースするように構成される送信先デバイス120の外部にあってもよい。
【0079】
映像エンコーダ114および映像デコーダ124は、高効率映像コーディング(HEVC)規格、汎用映像コーディング(VVC)規格、および他の現在のおよび/または更なる規格等の映像圧縮規格に従って動作してもよい。
【0080】
図5は、映像エンコーダ200の一例を示すブロック図であり、この映像エンコーダ200は、
図4に示されるシステム100における映像エンコーダ114であってもよい。
【0081】
映像エンコーダ200は、本開示の技術のいずれか又は全部を実行するように構成されてもよい。
図5の実施例において、映像エンコーダ200は、複数の機能性モジュールを含む。本開示で説明される技法は、映像エンコーダ200の様々なモジュール間で共有されてもよい。いくつかの例では、プロセッサは、本開示で説明される技術のいずれかまたはすべてを行うように構成してもよい。
【0082】
映像エンコーダ200の機能コンポーネントは、分割ユニット201、予測ユニット202を含んでもよく、予測ユニット202は、モード選択ユニット203、動き推定ユニット204、動き補償ユニット205、およびイントラ予測ユニット206、残差生成ユニット207、変換ユニット208、量子化ユニット209、逆量子化ユニット210、逆変換ユニット211、再構成ユニット212、バッファ213、およびエントロピーエンコーディングユニット214を含んでもよい。
【0083】
他の例において、映像エンコーダ200は、より多くの、より少ない、又は異なる機能コンポーネントを含んでもよい。一例において、予測ユニット202は、イントラブロックコピー(IBC)ユニットを含んでもよい。IBCユニットは、少なくとも1つの参照ピクチャが現在の映像ブロックが位置するピクチャであるIBCモードにおいて予測を行うことができる。
【0084】
さらに、動き推定ユニット204および動き補償ユニット205などのいくつかのモジュールは、高度に統合されてもよいが、説明のために、
図5の例においては別個に表現されている。
【0085】
分割ユニット201は、1つのピクチャを1または複数の映像ブロックに分割してもよい。映像エンコーダ200及び映像デコーダ300は、様々な映像ブロックサイズをサポートしてもよい。
【0086】
モード選択ユニット203は、例えば、誤りの結果に基づいて、イントラまたはインターコーディングされたモードのうちの1つを選択し、得られたイントラまたはインターコーディングされたブロックを残差生成ユニット207に供給し、残差ブロックデータを生成して再構成ユニット212に供給し、エンコードされたブロックを参照ピクチャとして使用するために再構成してもよい。いくつかの例において、モード選択ユニット203は、インター予測信号およびイントラ予測信号に基づいて予測を行うCIIP(Combination of Intra and Inter Prediction)モードを選択してもよい。また、モード選択ユニット203は、インター予測の場合、ブロックの動きベクトルの解像度(例えば、サブピクセルまたは整数画素精度)を選択してもよい。
【0087】
現在の映像ブロックに対してインター予測を行うために、動き推定ユニット204は、バッファ213からの1または複数の参照フレームと現在の映像ブロックとを比較することで、現在の映像ブロックのための動き情報を生成してもよい。動き補償ユニット205は、現在の映像ブロックに関連付けられたピクチャ以外のバッファ213からのピクチャの動き情報およびデコードされたサンプルに基づいて、現在の映像ブロックのための予測映像ブロックを判定してもよい。
【0088】
動き推定ユニット204および動き補償ユニット205は、現在の映像ブロックがIスライスであるか、Pスライスであるか、またはBスライスであるかによって、例えば、現在の映像ブロックに対して異なる動作を行ってもよい。
【0089】
いくつかの例では、動き推定ユニット204は、現在の映像ブロックに対して単一方向予測を行い、動き推定ユニット204は、現在の映像ブロックに対して、参照映像ブロック用のリスト0またはリスト1の参照ピクチャを検索してもよい。そして、動き推定ユニット204は、参照映像ブロックと、現在の映像ブロックと参照映像ブロックとの間の空間的変位を示す動きベクトルとを含む、リスト0またはリスト1における参照ピクチャを示す参照インデックスを生成してもよい。動き推定ユニット204は、参照インデックス、予測方向インジケータ、および動きベクトルを、現在の映像ブロックの動き情報として出力してもよい。動き補償ユニット205は、現在の映像ブロックの動き情報が示す参照映像ブロックに基づいて、現在のブロックの予測映像ブロックを生成してもよい。
【0090】
他の例において、動き推定ユニット204は、現在の映像ブロックを双方向予測してもよく、動き推定ユニット204は、リスト0における参照ピクチャの中から現在の映像ブロックを求めるための参照映像ブロックを検索してもよく、また、リスト1における参照ピクチャの中から現在の映像ブロックを求めるための別の参照映像ブロックを検索してもよい。そして、動き推定ユニット204は、参照映像ブロックを含むリスト0およびリスト1における参照ピクチャを示す参照インデックスと、参照映像ブロックと現在の映像ブロックとの間の空間的変位を示す動きベクトルとを生成してもよい。動き推定ユニット204は、現在の映像ブロックの参照インデックスおよび動きベクトルを、現在の映像ブロックの動き情報として出力してもよい。動き補償ユニット205は、現在の映像ブロックの動き情報が示す参照映像ブロックに基づいて、現在の映像ブロックの予測映像ブロックを生成してもよい。
【0091】
いくつかの例では、動き推定ユニット204は、デコーダのデコーディング処理のために、動き情報のフルセットを出力してもよい。
【0092】
いくつかの例では、動き推定ユニット204は、現在の映像のための動き情報のフルセットを出力しなくてもよい。むしろ、動き推定ユニット204は、別の映像ブロックの動き情報を参照して、現在の映像ブロックの動き情報を信号通知してもよい。例えば、動き推定ユニット204は、現在の映像ブロックの動き情報が近傍の映像ブロックの動き情報に十分に類似していることを判定してもよい。
【0093】
一例において、動き推定ユニット204は、現在の映像ブロックに関連付けられた構文構造において、現在の映像ブロックが別の映像ブロックと同じ動き情報を有することを映像デコーダ300に示す値を示してもよい。
【0094】
別の例において、動き推定ユニット204は、現在の映像ブロックに関連付けられた構文構造において、別の映像ブロックと、動きベクトル差分(MVD;Motion Vector Difference)とを識別してもよい。動きベクトル差分は、現在の映像ブロックの動きベクトルと、示された映像ブロックの動きベクトルとの差分を示す。映像デコーダ300は、示された映像ブロックの動きベクトルおよび動きベクトル差分を使用して、現在の映像ブロックの動きベクトルを決定してもよい。
【0095】
上述したように、映像エンコーダ200は、動きベクトルを予測的に信号通知してもよい。映像エンコーダ200によって実装され得る予測信号通知技法の2つの例は、AMVP(Advanced Motion Vector Prediction)およびマージモード信号通知を含む。
【0096】
イントラ予測ユニット206は、現在の映像ブロックに対してイントラ予測を行ってもよい。イントラ予測ユニット206が現在の映像ブロックをイントラ予測する場合、イントラ予測ユニット206は、同じピクチャにおける他の映像ブロックのデコードされたサンプルに基づいて、現在の映像ブロックのための予測データを生成してもよい。現在の映像ブロックのための予測データは、予測された映像ブロック及び様々な構文要素を含んでもよい。
【0097】
残差生成ユニット207は、現在の映像ブロックから現在の映像ブロックの予測された映像ブロックを減算することによって(例えば、マイナス符号によって示されている)、現在の映像ブロックのための残差データを生成してもよい。現在の映像ブロックの残差データは、現在の映像ブロックにおけるサンプルの異なるサンプル成分に対応する残差映像ブロックを含んでもよい。
【0098】
他の例において、例えば、スキップモードにおいて、現在の映像ブロックのための残差データがなくてもよく、残差生成ユニット207は、減算演算を行わなくてもよい。
【0099】
変換処理ユニット208は、現在の映像ブロックに関連付けられた残差映像ブロックに1または複数の変換を適用することによって、現在の映像ブロックのための1または複数の変換係数映像ブロックを生成してもよい。
【0100】
変換処理ユニット208が現在の映像ブロックに関連付けられた変換係数映像ブロックを生成した後、量子化ユニット209は、現在の映像ブロックに関連付けられた1または複数の量子化パラメータ(QP:Quantization Parameter)値に基づいて、現在の映像ブロックに関連付けられた変換係数映像ブロックを量子化してもよい。
【0101】
逆量子化ユニット210および逆変換ユニット211は、変換係数映像ブロックに逆量子化および逆変換をそれぞれ適用し、変換係数映像ブロックから残差映像ブロックを再構成してもよい。再構成ユニット212は、予測ユニット202にて生成された1または複数の予測映像ブロックからの対応するサンプルに再構成された残差映像ブロックを加え、現在のブロックに関連付けられた再構成映像ブロックを生成し、バッファ213に記憶してもよい。
【0102】
再構成ユニット212が映像ブロックを再構成した後、映像ブロックにおける映像ブロッキングアーチファクトを縮小するために、ループフィルタリング動作が行われてもよい。
【0103】
エントロピーエンコーディングユニット214は、映像エンコーダ200の他の機能コンポーネントからデータを受信してもよい。エントロピーエンコーディングユニット214がデータを受信すると、エントロピーエンコーディングユニット214は、1または複数のエントロピーエンコーディング動作を行い、エントロピーエンコードされたデータを生成し、エントロピーエンコードされたデータを含むビットストリームを出力してもよい。
【0104】
図6は、映像デコーダ300の一例を示すブロック図であり、この映像デコーダ300は、
図4に示すシステム100における映像デコーダ124であってもよい。
【0105】
映像デコーダ300は、本開示の技術のいずれか又は全部を実行するように構成されてもよい。
図6の実施例において、映像デコーダ300は、複数の機能性コンポーネントを含む。本開示で説明される技法は、映像デコーダ300の様々なコンポーネント間で共有されてもよい。いくつかの例では、プロセッサは、本開示で説明される技術のいずれかまたはすべてを行うように構成してもよい。
【0106】
図6の実施例において、映像デコーダ300は、エントロピーデコーディングユニット301、動き補償ユニット302、イントラ予測ユニット303、逆量子化ユニット304、逆変換ユニット305、および再構成ユニット306、並びにバッファ307を含む。映像デコーダ300は、いくつかの例では、映像エンコーダ200(
図5)に関して説明したエンコーディングパスとほぼ逆のデコーディングパスを行ってもよい。
【0107】
エントロピーデコーディングユニット301は、エンコードされたビットストリームを取り出す。エンコードされたビットストリームは、エントロピーコーディングされた映像データ(例えば、映像データのエンコードされたブロック)を含んでもよい。エントロピーデコーディングユニット301は、エントロピーコーディングされた映像データをデコードし、エントロピーデコードされた映像データから、動き補償ユニット302は、動きベクトル、動きベクトル精度、参照ピクチャリストインデックス、および他の動き情報を含む動き情報を決定してもよい。動き補償ユニット302は、例えば、AMVP及びマージモードを実行することで、このような情報を判定してもよい。
【0108】
動き補償ユニット302は、動き補償されたブロックを生成してもよく、場合によっては、補間フィルタに基づいて補間を実行する。サブピクセルの精度で使用される補間フィルタのための識別子が、構文要素に含まれてもよい。
【0109】
動き補償ユニット302は、映像ブロックのエンコーディング中に映像エンコーダ200によって使用されるような補間フィルタを使用して、参照ブロックのサブ整数画素のための補間値を計算してもよい。動き補償ユニット302は、受信した構文情報に基づいて、映像エンコーダ200が使用する補間フィルタを決定し、補間フィルタを使用して予測ブロックを生成してもよい。
【0110】
動き補償ユニット302は、エンコードされた映像シーケンスのフレームおよび/またはスライスをエンコードするために使用されるブロックのサイズを判定するための構文情報、エンコードされた映像シーケンスのピクチャの各マクロブロックがどのように分割されるかを記述する分割情報、各分割がどのようにエンコードされるかを示すモード、各インターエンコードされたブロックに対する1または複数の参照フレーム(および参照フレームリスト)、およびエンコードされた映像シーケンスをデコードするための他の情報のいくつかを使用してもよい。
【0111】
イントラ予測ユニット303は、例えば、ビットストリームにおいて受信したイントラ予測モードを使用して、空間的に隣接するブロックから予測ブロックを形成してもよい。逆量子化ユニット304は、ビットストリームに提供され、エントロピーデコーディングユニット301によってデコードされた、量子化された映像ブロック係数を逆量子化(すなわち、逆量子化)する。逆変換ユニット305は、逆変換を適用する。
【0112】
再構成ユニット306は、残差ブロックと、動き補償ユニット302又はイントラ予測ユニット303によって生成された対応する予測ブロックとを合計し、デコードされたブロックを形成してもよい。所望であれば、ブロックアーチファクトを除去するために、デコードされたブロックをフィルタリングするためにデブロッキングフィルタを適用してもよい。デコードされた映像ブロックは、バッファ307に記憶され、バッファ307は、後続の動き補償/イントラ予測のために参照ブロックを提供し、また表示デバイスに表示するためにデコードされた映像を生成する。
【0113】
次に、いくつかの実施形態において好適な例を列挙する。
【0114】
以下の項目は、前章に記載された技術の例示的な実施形態を示す。以下の項目は、前章(例えば、項目1)に記載された技術の例示的な実施形態を示す。
【0115】
1.1つ以上の映像ピクチャを含む1つ以上の映像レイヤを有する映像とこの映像のコーディングされた表現との変換を行うこと(3002)を含み、このコーディングされた表現は、この映像のピクセルを表すために使用されるクロマフォーマットインジケータの最大値および/またはビット深度の最大値を示す映像パラメータセットを含む、映像処理方法(
図3に示す方法3000)。
【0116】
以下の項目は、前章(例えば、項目2)に記載された技術の例示的な実施形態を示す。
【0117】
2.1つ以上の映像レイヤを有する映像とこの映像のコーディングされた表現との変換を行うことを含み、この方法は、1つ以上の映像レイヤを有する映像とこの映像のコーディングされた表現との変換を行うことを含み、このコーディングされた表現は、すべての映像レイヤの映像ピクチャに対する最大ピクチャ幅および/または最大ピクチャ高さが、デコーダバッファから除去する前に、デコーダバッファ内のピクチャを出力するかどうかを示す変数の値を制御することを規定するフォーマット規則に準拠する、映像処理方法。
【0118】
3.前記変数は、映像パラメータセットにおいて信号通知される、項目2に記載の方法。
【0119】
以下の項目は、前章(例えば、項目3)に記載された技術の例示的な実施形態を示す。
【0120】
4.1つ以上の映像レイヤを有する映像とこの映像のコーディングされた表現との変換を行うことを含み、このコーディングされた表現は、映像のピクセルを表すために使用されるクロマフォーマットインジケータの最大値および/またはビット深度の最大値が、デコーダバッファ内のピクチャをデコーダバッファから除去する前に出力するかどうかを示す変数の値を制御することを規定するフォーマット規則に準拠する、映像処理方法。
【0121】
5.前記変数は、映像パラメータセットにおいて信号通知される、項目4に記載の方法。
【0122】
以下の項目は、前章(例えば、項目4)に記載された技術の例示的な実施形態を示す。
【0123】
6.1つ以上の映像レイヤを有する映像とこの映像のコーディングされた表現との変換を行うことを含み、このコーディングされた表現は、デコーダバッファ内のピクチャをデコーダバッファから除去する前に出力するかどうかを示す変数の値が、この映像をエンコーディングするために別個の色平面を使用するかどうかに依存しないことを規定するフォーマット規則に準拠する、映像処理方法。
【0124】
以下の項目は、前章(例えば、項目5)に記載された技術の例示的な実施形態を示す。
【0125】
7.1つ以上の映像レイヤを有する映像とこの映像のコーディングされた表現との変換を行うことを含み、このコーディングされた表現は、デコーダバッファ内のピクチャをデコーダバッファから除去する前に出力するかどうかを示す変数の値が、アクセスユニット(AU)レベルでコード化された表現に含まれることを規定するフォーマット規則に準拠する、映像処理方法。
【0126】
8.前記フォーマット規則は、前記値が前記コーディングされた表現におけるすべてのAUに対して同じであることを規定する、項目7に記載の方法。
【0127】
9.前記変数はピクチャヘッダに示される、項目7~8のいずれかに記載の方法。
【0128】
10.変数は、アクセスユニット区切り文字で示される、項目7~8のいずれかに記載の方法。
【0129】
以下の項目は、前章(例えば、項目6)に記載された技術の例示的な実施形態を示す。
【0130】
11.1つ以上の映像レイヤを有する映像とこの映像のコーディングされた表現との変換を行うことを含み、このコーディングされた表現は、アクセスユニットにおいて映像ピクチャに対するピクチャ出力フラグを、アクセスユニットにおいて別の映像ピクチャのpic_output_flag変数に基づいて決定することを規定するフォーマット規則に準拠する、映像処理方法。
【0131】
以下の項目は、前章(例えば、項目7)に記載された技術の例示的な実施形態を示す。
【0132】
12.1つ以上の映像レイヤを有する映像とこの映像のコーディングされた表現との間の変換を行うことを含み、このコーディングされた表現は、出力レイヤに属さない映像ピクチャについて、ピクチャ出力フラグの値を規定するフォーマット規則に準拠する、映像処理方法。
【0133】
13.前記フォーマット規則は、映像ピクチャに対するピクチャ出力フラグの値をゼロに設定することを規定する、項目12に記載の方法。
【0134】
14.前記映像は1つの出力レイヤのみを含み、前記出力レイヤを含まないアクセスユニットが、前記ピクチャ出力フラグ値を、最上レイヤid値を有するピクチャについては論理1に、他のすべてのピクチャについては論理0に設定することでコード化される、項目12に記載の方法。
【0135】
以下の項目は、前章(例えば、項目8)に記載された技術の例示的な実施形態を示す。
【0136】
15.前記ピクチャ出力フラグは、アクセスユニット区切り文字に含まれる、項目1~14のいずれかに記載の方法。
【0137】
16.前記ピクチャ出力フラグは、補足強化情報フィールドに含まれる、項目1~14のいずれかに記載の方法。
【0138】
17.前記ピクチャ出力フラグは、1つ以上のピクチャのピクチャヘッダに含まれる、項目1~14のいずれかに記載の方法。
【0139】
18.前記変換は、前記映像を前記コーディングされた表現にエンコーディングすることを含む、項目1~17のいずれかに記載の方法。
【0140】
19.前記変換は、前記映像の画素値を生成すべく前記コーディングされた表現をデコーディングすることを含む、項目1~17のいずれかに記載の方法。
【0141】
20.項目1~19の1項目以上に記載の方法を実装するように構成されたプロセッサを備える、映像デコーディング装置。
【0142】
21.項目1~19の1項目以上に記載の方法を実装するように構成されたプロセッサを備える映像エンコーディング装置。
【0143】
22.コンピュータプコードが記憶されたコンピュータプログラム製品において、前記コードがプロセッサにより実行されると、前記プロセッサは、項目1~19のいずれかに記載の方法を実装する。
【0144】
23.本明細書に記載の方法、装置またはシステム。
【0145】
第2の節は、前節で論じた技法の例示的な実施例を示す(例えば、項目1~4)。
【0146】
1.フォーマット規則に従って、映像とこの映像のビットストリームとの変換を行うこと712を含み、このビットストリームは、1つ以上の出力レイヤセット(OLS)を含み、各OLSは、1つ以上のコーディングされたレイヤ映像シーケンスを含み、このフォーマット規則は、映像パラメータセットが、1つ以上のOLSごとに、この映像のピクセルを表すために使用されるクロマフォーマットインジケータの最大許容値および/またはビット深度の最大許容値を示すことを規定する、映像処理方法(例えば、
図7Aに示す方法710)。
【0147】
2.OLSのための彩度フォーマットインジケータの最大許容値は、OLSにおける1つ以上のコーディングされたレイヤ映像シーケンスによって参照されるすべてのシーケンスパラメータセットに適用可能である、項目1に記載の方法。
【0148】
3.OLSのためのビット深度の最大許容値は、OLSにおける1つ以上のコード化されたレイヤ映像シーケンスによって参照されるすべてのシーケンスパラメータセットに適用可能である、項目1または2に記載の方法。
【0149】
4.項目1~3のいずれかに記載の方法であって、さらに、複数のコーディングされたレイヤ映像シーケンスを含み、OLSインデックスiを有するOLSのための変換を行うために、規則は、i番目のOLSのための各ピクチャ記憶バッファの幅を示すols_dpb_pic_width[i]、i番目のOLSのための各ピクチャ記憶バッファの高さを示すols_dpb_pic_height[i]を含む構文要素のうちの少なくとも1つ、
i番目のOLSのためのクロマフォーマットインジケータの最大許容値を示す構文要素、および
i番目のOLSのためのビット深度の最大許容値を示す構文要素の値に従って、デコードされたピクチャバッファに対するメモリを割り振ることを規定する、方法。
【0150】
5.前記映像パラメータセットは、前記ビットストリームに含まれる、項目1~4までのいずれか1つに記載の方法。
【0151】
6.前記映像パラメータセットは、前記ビットストリームとは別個に示される、項目1~4までのいずれか1つに記載の方法。
【0152】
7.フォーマット規則に従って、1つ以上の映像レイヤを有する映像とこの映像のビットストリームとの変換を行うこと722を含み、このフォーマット規則は、すべての映像レイヤの映像ピクチャに対する最大ピクチャ幅および/または最大ピクチャ高さが、ビットストリームにおいてデコーディング順で現在のピクチャの前のデコードされたピクチャバッファにおけるピクチャを、デコードされたピクチャバッファからピクチャを除去する前に出力するかどうかを示す変数の値を制御することを規定する、映像処理方法(例えば、
図7Bに示す方法720)。
【0153】
8.前記変数は、映像パラメータセットに含まれる1つ以上の構文要素に少なくとも基づいて導出される、項目7に記載の方法。
【0154】
9.現在のアクセスユニットについて導出される、各ピクチャの最大幅、各ピクチャの最大高さ、クロマフォーマットインジケータの最大許容値、またはビット深度の最大許容値の値が、デコーディング順で前のアクセスユニットについて導出された各ピクチャの最大幅、各ピクチャの最大高さ、彩度フォーマットインジケータの最大許容値、またはビット深度の最大許容値と異なる場合、前記変数の値を1に設定する、項目7に記載の方法。
【0155】
10.前記変数の値が1に等しい場合は、デコーディング順で現在のピクチャの前のデコードされたピクチャバッファにおけるピクチャを、デコードされたピクチャバッファからピクチャを除去する前に出力しないことを示す、項目9に記載の方法。
【0156】
11.前記変数の値は、前記映像のピクセルを表すために使用されるクロマフォーマットインジケータの最大許容値および/またはビット深度の最大許容値にさらに基づく、項目7~10のいずれかに記載の方法。
【0157】
12.前記映像パラメータセットは、前記ビットストリームに含まれる、項目7~11までのいずれか1つに記載の方法。
【0158】
13.前記映像パラメータセットは、前記ビットストリームとは別個に示される、項目7~11までのいずれかに記載の方法。
【0159】
14.フォーマット規則に従って1つ以上の映像レイヤを有する映像と映像のビットストリームとの変換を行うこと732を含み、このフォーマット規則は、映像のピクセルを表すために使用されるクロマフォーマットインジケータの最大許容値および/またはビット深度の最大許容値が、ビットストリームにおいてデコーディング順で現在のピクチャの前のデコードされたピクチャバッファ内のピクチャを、デコードされたピクチャバッファからピクチャを除去する前に出力するかどうかを示す変数の値を制御することを規定する映像処理方法(例えば、
図7Cに示す730)。
【0160】
15.前記変数は、映像パラメータセットに信号通知される1つ以上の構文要素に少なくとも基づいて導出される、項目14に記載の方法。
【0161】
16.現在のアクセスユニットについて導出された各ピクチャの最大幅、各ピクチャの最大高さ、クロマフォーマットインジケータの最大許容値、またはビット深度の最大許容値の値が、デコーディング順で前のアクセスユニットについて導出された各ピクチャの最大幅、各ピクチャの最大高さ、彩度フォーマットインジケータの最大許容値、またはビット深度の最大許容値と異なる場合、前記変数の値を1に設定する、項目14に記載の方法。
【0162】
17.前記変数の値が1に等しい場合は、デコーディング順で現在のピクチャの前のデコードされたピクチャバッファにおけるピクチャを、前記デコードされたピクチャバッファから前記ピクチャを除去する前に出力しないことを示す、項目16に記載の方法。
【0163】
18.前記変数の値は、すべての映像レイヤの映像ピクチャに対する最大ピクチャ幅および/または最大ピクチャ高さにさらに基づく、項目14~17のいずれかに記載の方法。
【0164】
19.前記映像パラメータセットは、前記ビットストリームに含まれる、項目14~18までのいずれか1つに記載の方法。
【0165】
20.前記映像パラメータセットは、前記ビットストリームとは別個に示される、項目14~18までのいずれかに記載の方法。
【0166】
21.規則に従って、1つ以上の映像レイヤを有する映像と、この映像のビットストリームとの変換を行うこと742を含み、この規則は、ビットストリームにおいてデコーディング順で現在のピクチャの前にデコードされたピクチャバッファ内のピクチャが、デコードされたピクチャバッファから除去する前に出力されるかどうかを示す変数の値が、この映像のエンコーディングに別個の色平面を使用するかどうかに依存しないことを規定する、映像処理方法(例えば、
図7Dに示す方法740)。
【0167】
22.別個の色平面を映像をエンコーディングするために使用しない場合、規則は、映像ピクチャに対して1回だけデコーディングを実行することを規定し、または別個の色平面を映像をエンコーディングするために使用する場合、この規則は、ピクチャデコーディングを3回呼び出すことを規定する、項目21に記載の方法。
【0168】
23.前記変換は、前記映像を前記ビットストリームにエンコーディングすることを含む、項目22のいずれか1つに記載の方法。
【0169】
24.前記変換は、前記ビットストリームから前記映像をデコーディングすることを含む、項目1~22までのいずれか1つに記載の方法。
【0170】
25.前記変換は、映像から前記ビットストリームを生成することを含み、前記方法は、前記ビットストリームを非一時的なコンピュータ可読記録媒体に記憶することをさらに含む、項目1~22のいずれか1つに記載の方法。
【0171】
26.項目1~25のずれか1項目以上に記載の方法を実装するように構成されたプロセッサを備える映像処理装置。
【0172】
27.解決策1~25のいずれか1項に記載の方法を含み、かつ前記ビットストリームを非一時的なコンピュータ可読記録媒体に記憶することをさらに含む、映像のビットストリーム記憶する方法。
【0173】
28.実行されると、項目1~25のいずれか1つ以上に記載の方法をプロセッサに実装させるプログラムコードを記憶するコンピュータ可読媒体。
【0174】
29.上述した方法のいずれかに従って生成されたビットストリームを記憶するコンピュータ可読媒体。
【0175】
30.項目1~25のいずれか1つ以上に記載の方法を実装するように構成された、ビットストリーム表現を記憶するための映像処理装置。
【0176】
第3の節は、前章(例えば、項目5)に記載された技術の例示的な実施形態を示す。
【0177】
1.フォーマット規則に従って、1つ以上の映像レイヤを有する映像とこの映像のビットストリームとの変換を行うこと812を含み、このフォーマット規則は、特定のタイプのアクセスユニットをデコーディングするときに、あらかじめデコードされてデコードされたピクチャバッファに記憶されたピクチャをデコードされたピクチャバッファから除去するかどうかを示すフラグの値がこのビットストリームに含まれることを規定する、映像処理方法(例えば、
図8Aに示す方法810)。
【0178】
2.前記フォーマット規則は、アクセスユニット内のすべてのピクチャについて値が同じであることを規定する、項目1に記載の方法。
【0179】
3.前記フォーマット規則は、ビットストリームにおいてデコーディング順で現在のピクチャの前のデコードされたピクチャバッファ内のピクチャを、前記デコードされたピクチャバッファからピクチャを除去する前に出力するかどうかを示す変数の値が前記フラグの値に基づことを規定する、項目1または2に記載の方法。
【0180】
4.前記フラグは、ピクチャヘッダに示される、項目1~3のいずれかに記載の方法。
【0181】
5.前記フラグは、スライスヘッダに示される、項目1~3のいずれかに記載の方法。
【0182】
6.フォーマット規則に従って、1つ以上の映像レイヤを有する映像とこの映像のビットストリームとの変換を行うこと822を含み、このフォーマット規則は、特定のタイプのアクセスユニットをデコーディングするときに、あらかじめデコードされてデコードされたピクチャバッファに記憶されたピクチャをデコードされたピクチャバッファから除去するかどうかを示す第1のフラグの値がピクチャヘッダには示されていないことを規定する、映像処理方法(例えば、
図8Bに示す方法820)。
【0183】
7.第1のフラグがアクセスユニット区切り文字で示される、項目6に記載の方法。
【0184】
8.IRAP(ランダムアクセスポイント内ピクチャ)またはGDR(漸次的デコーディング更新)アクセスユニットを示す第2のフラグは、特定の値を有する、項目6に記載の方法。
【0185】
9.IRAP(ランダムアクセスポイント内ピクチャ)またはGDR(漸次的デコーディング更新)アクセスユニットのためにアクセスユニット区切り文字が存在しない場合、第1のフラグの値は1に等しいと推測される、項目6に記載の方法。
【0186】
10.フォーマット規則に従って、1つ以上の映像レイヤを有する映像とこの映像のビットストリームとの変換を行うこと832を含み、このフォーマット規則は、あらかじめデコードされてデコードされたピクチャバッファに記憶されたピクチャをデコードされたピクチャバッファから除去するかどうかを示すアクセスユニットに関連付けられたフラグの値が、アクセスユニットの各ピクチャのフラグの値に依存することを規定する、映像処理方法(例えば、
図8Cに示す方法830)。
【0187】
11.フォーマット規則は、アクセスユニットのピクチャごとのフラグが0に等しい場合、アクセスユニットのフラグの値は0に等しいと見なされ、そうでない場合、アクセスユニットのフラグの値は1に等しいと見なされることを規定する、項目10に記載の方法。
【0188】
12. 前記変換は、前記ビデオを前記ビットストリームにエンコーディングすることを含む、項目1~11のいずれか1つに記載の方法。
【0189】
13.前記変換は、前記ビットストリームから前記ビデオをデコーディングすることを含む、項目1~11までのいずれか1つに記載の方法。
【0190】
14.前記変換は、映像から前記ビットストリームを生成することを含み、前記方法は、前記ビットストリームを非一時的なコンピュータ可読記録媒体に記憶することをさらに含む、項目1~11のいずれかに記載の方法。
【0191】
15.項目1~14のずれか1項目以上に記載の方法を実装するように構成されたプロセッサを備える映像処理装置。
【0192】
16.項目1~14のいずれか1項に記載の方法を含み、前記ビットストリームを非一時的なコンピュータ可読記録媒体に記憶することをさらに含む、映像のビットストリーム記憶する方法。
【0193】
17.実行されると、項目1~14のいずれか1つ以上に記載の方法をプロセッサに実装させるプログラムコードを記憶するコンピュータ可読媒体。
【0194】
18.上述した方法のいずれかに従って生成されたビットストリームを記憶するコンピュータ可読媒体。
【0195】
19.項目1~14のいずれか1つ以上に記載の方法を実装するように構成された、ビットストリーム表現を記憶するための映像処理装置。
【0196】
第4の節の集合は、前節で論じた技法の例示的な実施形態(例えば、項目6~8)を示す。
【0197】
1.映像処理方法(例えば、
図9Aに示す方法910)は、以下を含む。フォーマット規則に従って、1つ以上の映像レイヤを有する映像とこの映像のビットストリームとの変換を行うこと912を含み、このフォーマット規則は、アクセスユニットにおいてピクチャを出力するかどうかを示す変数の値を、アクセスユニットにおいて別のピクチャを出力するかどうかを示すフラグに基づいて決定することを規定する。
【0198】
2.前記別のピクチャは、前記ピクチャよりも上位レイヤにある、項目1に記載の方法。
【0199】
3.前記フラグは、デコードされたピクチャの出力および除去処理を制御する、項目1または2に記載の方法。
【0200】
4.前記フラグは、シーケンスパラメータセット(SPS)、映像パラメータセット(VPS)、ピクチャパラメータセット(PPS)、ピクチャヘッダ、スライスヘッダ、またはタイルグループヘッダに含まれる構文要素である、項目1または2に記載の方法。
【0201】
5.前記変数の値は、i)映像パラメータセット(VPS)に対する識別子の値を規定するフラグ、ii)現在の映像レイヤが出力レイヤであるかどうか、ii)現在のピクチャがランダムアクセススキップされた先頭ピクチャであるかどうか、漸次的デコーディング更新ピクチャであるかどうか、漸次的デコーディング更新ピクチャの復元ピクチャであるかどうか、またはiii)デコーディング順で現在のピクチャの前のデコードされたピクチャバッファにおけるピクチャを、ピクチャが復元される前に出力するかどうか、のうちの少なくとも1つにさらに基づく、項目1から4のいずれかに記載の方法。
【0202】
6.i)VPSのための識別子の値を規定するフラグが0より大きく、かつ現在の層が出力レイヤでない場合、またはii)以下の条件の1つが真である場合、変数の値を0に等しく設定する、項目5に記載の方法。
【0203】
現在のピクチャは、ランダムアクセススキップされた先頭ピクチャであり、デコーディング順で現在のピクチャの前のデコードされたピクチャバッファにおける関連付けられたランダムアクセスポイント内ピクチャを、ランダムアクセスポイント内ピクチャを復元する前に出力しない。
【0204】
現在のピクチャは、ピクチャを復元する前に出力しないデコーディング順で現在のピクチャより前のデコードされたピクチャバッファ内のピクチャによる漸次的デコーディング更新ピクチャであるか、
ピクチャを復元する前に出力しないデコーディング順で現在のピクチャより前のデコードされたピクチャバッファ内のピクチャによる漸次的デコーディング更新ピクチャの復元ピクチャである。
【0205】
7.i)およびii)の両方が満たされない場合、変数の値はフラグの値に等しく設定される、項目6に記載の方法。
【0206】
8.前記変数の値が0に等しいことは、アクセスユニットにおいてピクチャを出力しないことを示す、項目6に記載の方法。
【0207】
9.変数はPictureOutputFlagであり、フラグはpic_output_flagである、項目1に記載の方法。
【0208】
10.前記フラグは、アクセスユニット区切り文字に含まれる、項目1から9のいずれかに記載の方法。
【0209】
11.前記フラグは、補足強化情報フィールドに含まれる、項目1~9のいずれかに記載の方法。
【0210】
12.前記フラグは、1つ以上のピクチャのピクチャヘッダに含まれる、項目1~9のいずれかに記載の方法。
【0211】
13.フォーマット規則に従って、1つ以上の映像レイヤを有する映像とこの映像のビットストリームとの変換を行うこと922を含み、このフォーマット規則は、ピクチャが出力レイヤに属していない場合、アクセスユニットにおいてあるピクチャを出力するかどうかを示す変数の値を特定の値と等しく設定することを規定する、映像処理方法(例えば、
図9Bに示す方法920)
【0212】
14.前記特定の値がゼロである、項目13に記載の方法。
【0213】
15.フォーマット規則に従って、1つ以上の映像レイヤを有する映像とこの映像のビットストリームとの変換を行うこと932を含み、このフォーマット規則は、映像1つの出力レイヤのみを有している場合、出力レイヤを含まないアクセスユニットは、アクセスユニットにおいてピクチャを出力するかどうかを示す変数を最上レイヤID(識別)値を有するピクチャに対して第1の値に、他のすべてのピクチャに対して第2の値に設定することによってコード化されることを規定する、映像処理方法(例えば、
図9Cに記載の方法930)。
【0214】
16.第1の値は、1であり、第2の値は、0に等しい、項目15に記載の方法。
【0215】
17.前記変換は、前記ビデオを前記ビットストリームにエンコーディングすることを含む、項目1~16のいずれか1つに記載の方法。
【0216】
18.前記変換は、前記ビットストリームから前記ビデオをデコーディングすることを含む、項目1~16までのいずれか1つに記載の方法。
【0217】
19.前記変換は、映像から前記ビットストリームを生成することを含み、前記方法は、前記ビットストリームを非一時的なコンピュータ可読記録媒体に記憶することをさらに含む、項目1~16のいずれか1つに記載の方法。
【0218】
20.項目1~19のずれか1項目以上に記載の方法を実装するように構成されたプロセッサを備える映像処理装置。
【0219】
21.項目1~19のいずれか1つに記載の方法を含み、かつ前記ビットストリームを非一時的なコンピュータ可読記録媒体に記憶することをさらに含む、映像のビットストリーム記憶する方法。
【0220】
22.実行されると、項目1~19のいずれか1つ以上に記載の方法をプロセッサに実装させるプログラムコードを記憶するコンピュータ可読媒体。
【0221】
23.上述した方法のいずれかに従って生成されたビットストリームを記憶するコンピュータ可読媒体。
【0222】
24.項目1~19のいずれか1つ以上に記載の方法を実装するように構成された、ビットストリーム表現を記憶するための映像処理装置。
【0223】
本明細書では、「映像処理」という用語は、映像エンコーディング、映像デコーディング、映像圧縮、または映像展開を指してよい。例えば、映像圧縮アルゴリズムは、映像の画素表現から対応するビットストリーム表現への変換、またはその逆の変換中に適用されてもよい。現在の映像ブロックのビットストリーム表現は、例えば、構文によって規定されるように、ビットストリーム内の同じ場所または異なる場所に拡散されるビットに対応していてもよい。例えば、1つのマクロブロックは、変換およびコーディングされた誤り残差値の観点から、且つビットストリームにおけるヘッダおよび他のフィールドにおけるビットを使用してエンコードされてもよい。さらに、変換中、デコーダは、上記解決策で説明されているように、判定に基づいて、いくつかのフィールドが存在しても存在しなくてもよいという知識を持って、ビットストリームを構文解析してもよい。同様に、エンコーダは、特定の構文フィールドが含まれるべきであるか、または含まれないべきであるかを判定し、構文フィールドをコーディングされた表現に含めるか、またはコーディングされた表現から除外することによって、それに応じてコーディングされた表現を生成してもよい。
【0224】
本明細書に記載された開示された、およびその他の解決策、実施例、実施形態、モジュール、および機能動作の実装形態は、本明細書に開示された構造およびその構造的等価物を含め、デジタル電子回路、またはコンピュータソフトウェア、ファームウェア、若しくはハードウェアで実施されてもよく、またはそれらの1つ以上の組み合わせで実施してもよい。開示された、およびその他の実施形態は、1または複数のコンピュータプログラム製品、すなわち、データ処理装置によって実装されるため、またはデータ処理装置の動作を制御するために、コンピュータ可読媒体上にエンコードされたコンピュータプログラム命令の1または複数のモジュールとして実施することができる。このコンピュータ可読媒体は、機械可読記憶デバイス、機械可読記憶基板、メモリデバイス、機械可読伝播信号をもたらす物質の組成物、またはこれらの1または複数の組み合わせであってもよい。「データ処理装置」という用語は、例えば、プログラマブルプロセッサ、コンピュータ、または複数のプロセッサ、若しくはコンピュータを含む、データを処理するためのすべての装置、デバイス、および機械を含む。この装置は、ハードウェアの他に、当該コンピュータプログラムの実行環境を作るコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはこれらの1または複数の組み合わせを構成するコードを含むことができる。伝播信号は、人工的に生成した信号、例えば、機械で生成した電気、光、または電磁信号であり、適切な受信装置に送信するための情報をエンコードするために生成される。
【0225】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとも呼ばれる)は、コンパイルされた言語または解釈された言語を含む任意の形式のプログラミング言語で記述することができ、また、それは、スタンドアロンプログラムとして、またはコンピューティング環境で使用するのに適したモジュール、コンポーネント、サブルーチン、または他のユニットとして含む任意の形式で展開することができる。コンピュータプログラムは、必ずしもファイルシステムにおけるファイルに対応するとは限らない。プログラムは、他のプログラムまたはデータを保持するファイルの一部(例えば、マークアップ言語文書に格納された1または複数のスクリプト)に記録されていてもよいし、当該プログラム専用の単一のファイルに記憶されていてもよいし、複数の調整ファイル(例えば、1または複数のモジュール、サブプログラム、またはコードの一部を格納するファイル)に記憶されていてもよい。コンピュータプログラムを、1つのサイトに位置する1つのコンピュータ、または複数のサイトに分散され通信ネットワークによって相互接続される複数のコンピュータで実行させるように展開することも可能である。
【0226】
本明細書に記載された処理およびロジックフローは、入力データ上で動作し、出力を生成することによって機能を実行するための1または複数のコンピュータプログラムを実行する1または複数のプログラマブルプロセッサによって行うことができる。処理およびロジックフローはまた、特定用途のロジック回路、例えば、FPGA(Field Programmable Gate Array)またはASIC(Application Specific Integrated Circuit)によって行うことができ、装置はまた、特別目的のロジック回路として実装することができる。
【0227】
コンピュータプログラムの実行に適したプロセッサは、例えば、汎用および専用マイクロプロセッサの両方、並びに任意の種類のデジタルコンピュータの任意の1または複数のプロセッサを含む。一般的に、プロセッサは、リードオンリーメモリまたはランダムアクセスメモリまたはその両方から命令およびデータを受信する。コンピュータの本質的な要素は、命令を実行するためのプロセッサと、命令およびデータを記憶するための1または複数のメモリデバイスとである。一般的に、コンピュータは、データを記憶するための1または複数の大容量記憶デバイス、例えば、磁気、光磁気ディスク、または光ディスクを含んでもよく、またはこれらの大容量記憶デバイスからデータを受信するか、またはこれらにデータを転送するように動作可能に結合されてもよい。しかしながら、コンピュータは、このようなデバイスを有する必要はない。コンピュータプログラム命令およびデータを記憶するのに適したコンピュータ可読媒体は、あらゆる形式の不揮発性メモリ、媒体、およびメモリデバイスを含み、例えば、EPROM(erasable programmable read-only memory)、EEPROM(electrically erasable programmable read-only memory)、フラッシュ記憶装置、磁気ディスク、例えば内部ハードディスクまたはリムーバブルディスク、光磁気ディスク、およびCD-ROM(compact disc, read-only memory)およびDVD-ROM(digital versatile disc read-only memory)ディスク等の半導体記憶装置を含む。プロセッサおよびメモリは、特定用途のロジック回路によって補完されてもよく、または特定用途のロジック回路に組み込まれてもよい。
【0228】
本特許明細書は多くの詳細を含むが、これらは、任意の主題の範囲または特許請求の範囲を限定するものと解釈されるべきではなく、むしろ、特定の技術の特定の実施形態に特有であり得る特徴の説明と解釈されるべきである。本特許文献において別個の実施形態のコンテキストで説明されている特定の特徴は、1つの例において組み合わせて実装してもよい。逆に、1つの例のコンテキストで説明された様々な特徴は、複数の実施形態において別個にまたは任意の適切なサブコンビネーションで実装してもよい。さらに、特徴は、特定の組み合わせで作用するものとして上記に記載され、最初にそのように主張されていてもよいが、主張された組み合わせからの1または複数の特徴は、場合によっては、組み合わせから抜粋されることができ、主張された組み合わせは、サブコンビネーションまたはサブコンビネーションのバリエーションに向けられてもよい。
【0229】
同様に、動作は図面において特定の順番で示されているが、これは、所望の結果を達成するために、このような動作が示された特定の順番でまたは連続した順番で行われること、または示された全ての動作が行われることを必要とするものと理解されるべきではない。また、本特許明細書に記載されている例における様々なシステムの構成要素の分離は、全ての実施形態においてこのような分離を必要とするものと理解されるべきではない。
【0230】
いくつかの実装形態および例のみが記載されており、この特許文献に記載され図示されているコンテンツに基づいて、他の実施形態、拡張および変形が可能である。
【手続補正書】
【提出日】2022-09-28
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
フォーマット規則に従って、1つ以上の映像レイヤを有する映像と前記映像のビットストリームとの変換を行うこと、を含む映像処理方法であって、
前記フォーマット規則は、少なくとも1つのレイヤの映像ピクチャに対する最大ピクチャ幅および/または最大ピクチャ高さが、前記ビットストリームにおいてデコーディング順で現在のピクチャの前のデコードされたピクチャバッファにおけるピクチャを、前記デコードされたピクチャバッファから前記ピクチャを除去する前に出力するかどうかを示す変数の値を制御することを規定する、映像処理方法。
【請求項2】
前記最大ピクチャ幅および/または前記最大ピクチャ高さは、映像パラメータセットに含まれる、請求項1に記載の方法。
【請求項3】
現在のアクセスユニットについて導出された各ピクチャの最大幅、各ピクチャの最大高さ、クロマフォーマットインジケータの最大許容値、またはビット深度の最大許容値の値が、デコーディング順で前のアクセスユニットについて導出された各ピクチャの前記最大幅、各ピクチャの前記最大高さ、クロマフォーマットインジケータの最大許容値、またはビット深度の最大許容値の値と異なる場合に、前記変数の前記値を1に設定し、
前記変数の前記値が1に等しい場合に、デコーディング順で前記現在のピクチャの前の前記デコードされたピクチャバッファにおけるピクチャを、前記デコードされたピクチャバッファから前記ピクチャを除去する前に出力しないことを示す、請求項1に記載の方法。
【請求項4】
前記変数の前記値は、前記映像のピクセルを表すために使用されるクロマフォーマットインジケータの最大許容値および/またはビット深度の最大許容値にさらに基づく、請求項1に記載の方法。
【請求項5】
前記映像のピクセルを表すために使用される前記クロマフォーマットインジケータの前記最大許容値および/またはビット深度の前記最大許容値は、映像パラメータセットに含まれる、請求項4に記載の方法。
【請求項6】
レイヤに対する前記クロマフォーマットインジケータの前記最大許容値は、前記レイヤにおける1つ以上のレイヤ映像シーケンスによって参照されるすべてのシーケンスパラメータセットに適用可能である、請求項4に記載の方法。
【請求項7】
複数のコーディングされたレイヤ映像シーケンスを含み、レイヤインデックスiを有するレイヤに対して前記変換を行うために、前記フォーマット規則は、i番目のレイヤに対する各ピクチャ記憶バッファの幅を示すols_dpb_pic_width[i]、前記i番目のレイヤに対する各ピクチャ記憶バッファの高さを示すols_dpb_pic_height[i]、前記i番目のレイヤに対する前記クロマフォーマットインジケータの前記最大許容値を示す構文要素、および前記i番目のレイヤに対するビット深度の前記最大許容値を示す構文要素、を含む少なくとも1つの構文要素の値に従って、デコードされたピクチャバッファに対するメモリを割り当てることを規定する、請求項4に記載の方法。
【請求項8】
前記変換は、前記映像を前記ビットストリームにエンコーディングすることを含む、請求項1に記載の方法。
【請求項9】
前記変換は、前記ビットストリームから前記映像をデコーディングすることを含む、請求項1に記載の方法。
【請求項10】
プロセッサと命令を備える非一時的メモリとを含む映像データ処理装置であって、前記命令は前記プロセッサによって実行されると、前記プロセッサに、
フォーマット規則に従って、1つ以上の映像レイヤを有する映像と前記映像のビットストリームとの変換を行わせ、
前記フォーマット規則は、少なくとも1つのレイヤの映像ピクチャに対する最大ピクチャ幅および/または最大ピクチャ高さが、前記ビットストリームにおいてデコーディング順で現在のピクチャの前のデコードされたピクチャバッファにおけるピクチャを、前記デコードされたピクチャバッファから前記ピクチャを除去する前に出力するかどうかを示す変数の値を制御することを規定する、映像データ処理装置。
【請求項11】
命令を記憶する非一時的なコンピュータ可読記憶媒体であって、前記命令は、プロセッサに、
フォーマット規則に従って、1つ以上の映像レイヤを有する映像と前記映像のビットストリームとの変換を行わせ、
前記フォーマット規則は、少なくとも1つのレイヤの映像ピクチャに対する最大ピクチャ幅および/または最大ピクチャ高さが、前記ビットストリームにおいてデコーディング順で現在のピクチャの前のデコードされたピクチャバッファにおけるピクチャを、前記デコードされたピクチャバッファから前記ピクチャを除去する前に出力するかどうかを示す変数の値を制御することを規定する、非一時的なコンピュータ可読記憶媒体。
【請求項12】
映像処理装置で行われる方法により生成される映像のビットストリームを記憶する非一時的なコンピュータ可読記録媒体であって、前記方法は、
フォーマット規則に従って、1つ以上の映像レイヤを有する前記映像の前記ビットストリームと前記映像のビットストリームとを生成することを含み、
前記フォーマット規則は、少なくとも1つのレイヤの映像ピクチャに対する最大ピクチャ幅および/または最大ピクチャ高さが、前記ビットストリームにおいてデコーディング順で現在のピクチャの前のデコードされたピクチャバッファにおけるピクチャを、前記デコードされたピクチャバッファから前記ピクチャを除去する前に、出力するかどうかを示す変数の値を制御することを規定する、非一時的なコンピュータ可読記録媒体。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0001
【補正方法】変更
【補正の内容】
【0001】
関連出願の相互参照
本願は、2021年3月16日出願の国際出願番号第PCT/US2021/022547号の国内段階であり、2020年3月17日出願の米国特許仮出願第62/990749号の優先権および利益を主張するものである。法に基づくすべての目的のために、上記出願の開示全体は、本明細書の開示の一部として参照により援用される。
【国際調査報告】