第1の態様は、ビデオデコーダにより実施される方法に関し、ビデオデコーダにより、コーディングピクチャと補足エンハンスメント情報(SEI)メッセージとを含むビットストリームを受信するステップであり、SEIメッセージは、サブレイヤ上の復号ユニット(DU)ベースの仮想参照デコーダ(HRD)動作に対応するコーディングピクチャバッファ(CPB)パラメータを含む、ステップと、ビデオデコーダにより、ビットストリームからコーディングピクチャを復号して復号ピクチャを取得するステップと、を含む。
この方法は、サブレイヤ上の復号ユニット(DU)ベースのHRD動作に対応するピクチャレベルのコーディングピクチャバッファ(CPB)パラメータが補足エンハンスメント情報(SEI)メッセージに含まれることを保証する手法を提供する。ピクチャレベルのCPBパラメータがSEIメッセージに含まれるため、HRDは、DUベースのHRD動作を使用して、ビットストリーム適合についてビットストリーム内のサブレイヤをテストすることができ、これは、サブレイヤが適切にコーディングされ、及び/又は適切に復号可能であることを保証する。したがって、ビデオコーディングにおけるコーダ/デコーダ(「コーデック」としても知られる)は、現在のコーデックと比較して改善される。実際問題として、改善されたビデオコーディングプロセスは、ビデオが送信、受信、及び/又は視聴されるとき、ユーザにより良いユーザ体験を提供する。
任意で、前述の態様のいずれかにおいて、態様の別の実装は、CPBパラメータが、2つの復号ユニットのCPB除去時間の間の継続時間を指定することを提供する。
任意で、前述の態様のいずれかにおいて、態様の別の実装は、SEIメッセージが、ピクチャタイミング(PT)SEIメッセージであることを提供する。
任意で、前述の態様のいずれかにおいて、態様の別の実装は、CPBパラメータが、PT SEIメッセージに関連づけられたアクセスユニット(AU)のための共通CPB除去遅延増分及びCPB除去遅延増分を含むことを提供する。
任意で、前述の態様のいずれかにおいて、態様の別の実装は、SEIメッセージが、PT SEIメッセージであって、該PT SEIメッセージに関連づけられたAU内の復号ユニットの数を指定する、PT SEIメッセージであることを提供する。
任意で、前述の態様のいずれかにおいて、態様の別の実装は、SEIメッセージが、PT SEIメッセージであって、該PT SEIメッセージに関連づけられたAUの復号ユニット(DU)内のネットワーク抽象化レイヤ(NAL)ユニットの数を指定する、PT SEIメッセージであることを提供する。
任意で、前述の態様のいずれかにおいて、態様の別の実装は、SEIメッセージが、復号ユニット情報(DUI)SEIメッセージであって、該DUI SEIメッセージを含むSEI NALユニットの時間識別子(ID)を提供する、DUI SEIメッセージであることを提供する。
任意で、前述の態様のいずれかにおいて、態様の別の実装は、時間IDが、DUI SEIメッセージにCPB除去遅延情報が含まれる最も高いサブレイヤを指定することを提供する。
任意で、前述の態様のいずれかにおいて、態様の別の実装は、復号ピクチャを電子デバイスのディスプレイに表示することを提供する。
第2の態様は、ビデオエンコーダにより実施される方法に関し、当該方法は、ビデオエンコーダにより、コーディングピクチャと補足エンハンスメント情報(SEI)メッセージとを含むビットストリームを生成するステップであり、SEIメッセージは、サブレイヤ上の復号ユニット(DU)ベースの仮想参照デコーダ(HRD)動作に対応するコーディングピクチャバッファ(CPB)パラメータを含む、ステップと、ビデオエンコーダにより、CPBパラメータを使用してサブレイヤ上のDUベースのHRD動作を実行して、ビットストリームが適合しているかどうかを決定するステップと、ビデオエンコーダにより、DUベースのHRD動作の実行に基づいてビットストリームが適合しているとき、ビデオデコーダに向けての通信のためにビットストリームを記憶するステップと、を含む。
この方法は、サブレイヤ上の復号ユニット(DU)ベースのHRD動作に対応するピクチャレベルのコーディングピクチャバッファ(CPB)パラメータが補足エンハンスメント情報(SEI)メッセージに含まれることを保証する手法を提供する。ピクチャレベルのCPBパラメータがSEIメッセージに含まれるため、HRDは、DUベースのHRD動作を使用して、ビットストリーム適合についてビットストリーム内のサブレイヤをテストすることができ、これは、サブレイヤが適切にコーディングされ、及び/又は適切に復号可能であることを保証する。したがって、ビデオコーディングにおけるコーダ/デコーダ(「コーデック」としても知られる)は、現在のコーデックと比較して改善される。実際問題として、改善されたビデオコーディングプロセスは、ビデオが送信、受信、及び/又は視聴されるとき、ユーザにより良いユーザ体験を提供する。
任意で、前述の態様のいずれかにおいて、態様の別の実装は、CPBパラメータが、2つの復号ユニットのCPB除去時間の間の継続時間を指定し、ビットストリームが、CPB除去時間の間の継続時間が超えられていないとき適合していることを提供する。
任意で、前述の態様のいずれかにおいて、態様の別の実装は、SEIメッセージが、ピクチャタイミング(PT)SEIメッセージであることを提供する。
任意で、前述の態様のいずれかにおいて、態様の別の実装は、CPBパラメータが、PT SEIメッセージに関連づけられたアクセスユニット(AU)のための共通CPB除去遅延及びCPB除去遅延を含むことを提供する。
任意で、前述の態様のいずれかにおいて、態様の別の実装は、PT SEIメッセージが、PT SEIメッセージに関連づけられたAU内の復号ユニットの数と、PT SEIメッセージに関連づけられたAUの復号ユニット(DU)内のネットワーク抽象化レイヤ(NAL)ユニットの数を指定することを提供する。
任意で、前述の態様のいずれかにおいて、態様の別の実装は、SEIメッセージが、復号ユニット情報(DUI)SEIメッセージであって、該DUI SEIメッセージを含むSEI NALユニットの時間識別子(ID)を提供する、DUI SEIメッセージであることを提供する。
任意で、前述の態様のいずれかにおいて、態様の別の実装は、DUI SEIメッセージが、DUI SEIメッセージにCPB除去遅延情報が含まれる最も高いサブレイヤの時間IDを指定することを提供する。
第3の態様は、復号デバイスに関し、当該復号デバイスは、コーディングピクチャと補足エンハンスメント情報(SEI)メッセージとを含むビットストリームを受信するように構成された受信器であり、SEIメッセージは、サブレイヤ上の復号ユニット(DU)ベースの仮想参照デコーダ(HRD)動作に対応するコーディングピクチャバッファ(CPB)パラメータを含む、受信器と、受信器に結合されたメモリであり、命令を記憶する、メモリと、メモリに結合されたプロセッサであり、命令を実行して、当該復号デバイスに、ビットストリームからコーディングピクチャを復号して復号ピクチャを取得することをさせるように構成される、プロセッサと、を含む。
復号デバイスは、サブレイヤ上の復号ユニット(DU)ベースのHRD動作に対応するピクチャレベルのコーディングピクチャバッファ(CPB)パラメータが補足エンハンスメント情報(SEI)メッセージに含まれることを保証する手法を提供する。ピクチャレベルのCPBパラメータがSEIメッセージに含まれるため、HRDは、DUベースのHRD動作を使用して、ビットストリーム適合についてビットストリーム内のサブレイヤをテストすることができ、これは、サブレイヤが適切にコーディングされ、及び/又は適切に復号可能であることを保証する。したがって、ビデオコーディングにおけるコーダ/デコーダ(「コーデック」としても知られる)は、現在のコーデックと比較して改善される。実際問題として、改善されたビデオコーディングプロセスは、ビデオが送信、受信、及び/又は視聴されるとき、ユーザにより良いユーザ体験を提供する。
任意で、前述の態様のいずれかにおいて、態様の別の実装は、CPBパラメータが、2つの復号ユニットのCPB除去時間の間の継続時間を指定することを提供する。
任意で、前述の態様のいずれかにおいて、態様の別の実装は、SEIメッセージが、PT SEIメッセージに関連づけられたアクセスユニット(AU)内の復号ユニットの数を指定するPT SEIメッセージであって、CPBパラメータが、PT SEIメッセージに関連づけられたAUのための共通CPB除去遅延及びCPB除去遅延を含むことを提供する。
任意で、前述の態様のいずれかにおいて、態様の別の実装は、SEIメッセージが、復号ユニット情報(DUI)SEIメッセージであって、該DUI SEIメッセージを含むSEI NALユニットの時間識別子(ID)を提供する、DUI SEIメッセージであることを提供する。
任意で、前述の態様のいずれかにおいて、態様の別の実装は、時間IDが、DUI SEIメッセージにCPB除去遅延情報が含まれる最も高いサブレイヤを指定することを提供する。
第4の態様は、符号化デバイスに関し、当該符号化デバイスは、命令を含むメモリと、メモリに結合されたプロセッサであり、命令を実施して、当該符号化デバイスに、コーディングピクチャと補足エンハンスメント情報(SEI)メッセージとを含むビットストリームを生成し、SEIメッセージは、サブレイヤ上の復号ユニット(DU)ベースのHRD動作に対応するコーディングピクチャバッファ(CPB)パラメータを含み、CPBパラメータを使用してサブレイヤ上のDUベースのHRD動作を実行して、ビットストリームが適合しているかどうかを決定することをさせるように構成される、プロセッサと、プロセッサに結合された送信器であり、DUベースのHRD動作の実行に基づいてビットストリームが適合しているとき、ビデオビットストリームをビデオデコーダに向けて送信するように構成される、送信器と、を含む。
符号化デバイスは、サブレイヤ上の復号ユニット(DU)ベースのHRD動作に対応するピクチャレベルのコーディングピクチャバッファ(CPB)パラメータが補足エンハンスメント情報(SEI)メッセージに含まれることを保証する手法を提供する。ピクチャレベルのCPBパラメータがSEIメッセージに含まれるため、HRDは、DUベースのHRD動作を使用して、ビットストリーム適合についてビットストリーム内のサブレイヤをテストすることができ、これは、サブレイヤが適切にコーディングされ、及び/又は適切に復号可能であることを保証する。したがって、ビデオコーディングにおけるコーダ/デコーダ(「コーデック」としても知られる)は、現在のコーデックと比較して改善される。実際問題として、改善されたビデオコーディングプロセスは、ビデオが送信、受信、及び/又は視聴されるとき、ユーザにより良いユーザ体験を提供する。
任意で、前述の態様のいずれかにおいて、態様の別の実装は、CPBパラメータが、2つの復号ユニットのCPB除去時間の間の継続時間を指定し、ビットストリームが、CPB除去時間の間の継続時間が超えられていないとき適合していることを提供する。
任意で、前述の態様のいずれかにおいて、態様の別の実装は、SEIメッセージが、ピクチャタイミング(PT)SEIメッセージであることを提供する。
任意で、前述の態様のいずれかにおいて、態様の別の実装は、CPBパラメータが、PT SEIメッセージに関連づけられたアクセスユニット(AU)のための共通CPB除去遅延及びCPB除去遅延を含むことを提供する。
任意で、前述の態様のいずれかにおいて、態様の別の実装は、PT SEIメッセージが、PT SEIメッセージに関連づけられたAU内の復号ユニットの数と、PT SEIメッセージに関連づけられたAUの復号ユニット(DU)内のネットワーク抽象化レイヤ(NAL)ユニットの数を指定することを提供する。
任意で、前述の態様のいずれかにおいて、態様の別の実装は、SEIメッセージが、復号ユニット情報(DUI)SEIメッセージを含むSEIネットワーク抽象化レイヤ(NAL)ユニットの時間識別子(ID)を提供するDUI SEIメッセージであることを提供する。
任意で、前述の態様のいずれかにおいて、態様の別の実装は、DUI SEIメッセージが、DUI SEIメッセージにCPB除去遅延情報が含まれる最も高いサブレイヤの時間識別子(ID)を指定することを提供する。
第5の態様は、コーディング装置に関する。コーディング装置は、符号化すべきピクチャを受信し、又は復号すべきビットストリームを受信するように構成された受信器と、受信器に結合された送信器であり、ビットストリームをデコーダに送信し、又は復号画像をディスプレイに送信するように構成される、送信器と、受信器又は送信器のうちの少なくとも1つに結合されるメモリであり、命令を記憶するように構成される、メモリと、メモリに結合されたプロセッサであり、メモリに記憶された命令を実行して、本明細書に開示される方法のいずれかを実行するように構成される、プロセッサと、を含む。
コーディング装置は、サブレイヤ上の復号ユニット(DU)ベースのHRD動作に対応するピクチャレベルのコーディングピクチャバッファ(CPB)パラメータが補足エンハンスメント情報(SEI)メッセージに含まれることを保証する手法を提供する。ピクチャレベルのCPBパラメータがSEIメッセージに含まれるため、HRDは、DUベースのHRD動作を使用して、ビットストリーム適合についてビットストリーム内のサブレイヤをテストすることができ、これは、サブレイヤが適切にコーディングされ、及び/又は適切に復号可能であることを保証する。したがって、ビデオコーディングにおけるコーダ/デコーダ(「コーデック」としても知られる)は、現在のコーデックと比較して改善される。実際問題として、改善されたビデオコーディングプロセスは、ビデオが送信、受信、及び/又は視聴されるとき、ユーザにより良いユーザ体験を提供する。
任意で、前述の態様のいずれかにおいて、態様の別の実装は、復号ピクチャを表示するように構成されたディスプレイを提供する。
第6の態様は、システムに関する。当該システムは、エンコーダと、エンコーダと通信するデコーダと、を含み、エンコーダ又はデコーダは、本明細書に開示される復号デバイス、符号化デバイス、又はコーディング装置を含む。
このシステムは、サブレイヤ上の復号ユニット(DU)ベースのHRD動作に対応するピクチャレベルのコーディングピクチャバッファ(CPB)パラメータが補足エンハンスメント情報(SEI)メッセージに含まれることを保証する手法を提供する。ピクチャレベルのCPBパラメータがSEIメッセージに含まれるため、HRDは、DUベースのHRD動作を使用して、ビットストリーム適合についてビットストリーム内のサブレイヤをテストすることができ、これは、サブレイヤが適切にコーディングされ、及び/又は適切に復号可能であることを保証する。したがって、ビデオコーディングにおけるコーダ/デコーダ(「コーデック」としても知られる)は、現在のコーデックと比較して改善される。実際問題として、改善されたビデオコーディングプロセスは、ビデオが送信、受信、及び/又は視聴されるとき、ユーザにより良いユーザ体験を提供する。
第7の態様は、コーディングする手段に関する。当該コーディングする手段は、符号化すべきピクチャを受信し、又は復号すべきビットストリームを受信するように構成された受信手段と、受信手段に結合された送信手段であり、ビットストリームを復号手段に送信し、又は復号画像を表示手段に送信するように構成される、送信手段と、受信手段又は送信手段のうちの少なくとも1つに結合された記憶手段であり、命令を記憶するように構成される、記憶手段と、記憶手段に結合された処理手段であり、記憶手段に記憶された命令を実行して、本明細書に開示される方法のいずれかを実行するように構成される、処理手段と、を含む。
このコーディングする手段は、サブレイヤ上の復号ユニット(DU)ベースのHRD動作に対応するピクチャレベルのコーディングピクチャバッファ(CPB)パラメータが補足エンハンスメント情報(SEI)メッセージに含まれることを保証する手法を提供する。ピクチャレベルのCPBパラメータがSEIメッセージに含まれるため、HRDは、DUベースのHRD動作を使用して、ビットストリーム適合についてビットストリーム内のサブレイヤをテストすることができ、これは、サブレイヤが適切にコーディングされ、及び/又は適切に復号可能であることを保証する。したがって、ビデオコーディングにおけるコーダ/デコーダ(「コーデック」としても知られる)は、現在のコーデックと比較して改善される。実際問題として、改善されたビデオコーディングプロセスは、ビデオが送信、受信、及び/又は視聴されるとき、ユーザにより良いユーザ体験を提供する。
明確さの目的で、前述の実施形態のいずれか1つは、本開示の範囲内の新たな実施形態を作り出すために、他の前述の実施形態のいずれか1つ以上と組み合わせることができる。
これら及び他の特徴は、添付の図面及び特許請求の範囲に関連して解される以下の詳細な説明から、より明確に理解されるであろう。
最初に、1つ以上の実施形態の例示的な実装が以下に提供されるが、開示されるシステム及び/又は方法は、現在知られ又は存在するかにかかわらず、任意の数の手法を使用して実施され得ることを理解されたい。本開示は、本明細書に例示及び説明される例示的な設計及び実施を含む、以下に示される例示的な実装、図面、及び手法に決して限定されるべきでないが、添付の特許請求の範囲及びそれらの同等物の全範囲の範囲内で修正され得る。
以下の用語は、本明細書において逆の文脈で使用されない限り、以下のように定義される。具体的には、以下の定義は、本開示に対するさらなる明確さを提供することを意図している。しかしながら、用語は、異なる文脈において別様に記載されることがある。したがって、以下の定義は補足とみなされるべきであり、本明細書においてそのような用語に関して提供される説明の他の定義を制限するものとみなされるべきではない。
ビットストリームは、エンコーダとデコーダとの間における伝送のために圧縮されたビデオデータを含むビットのシーケンスである。エンコーダは、符号化プロセスを利用してビデオデータをビットストリームに圧縮するように構成されるデバイスである。デコーダは、復号プロセスを利用してビットストリームからのビデオデータを表示のために再構成するように構成されるデバイスである。ピクチャは、フレーム又はそのフィールドを作り出す、ルマ(luma)サンプルのアレイ及び/又はクロマ(chroma)サンプルのアレイである。符号化又は復号されているピクチャは、議論の明確さのために、カレント(current)ピクチャと呼ばれることがある。ネットワーク抽象化レイヤ(network abstraction layer、NAL)ユニットは、所望に応じて分散される、ローバイトシーケンスペイロード(Raw Byte Sequence Payload、RBSP)の形式のデータとデータのタイプの指標とエミュレーション防止バイト(emulation prevention bytes)とを含むシンタックス構造である。ビデオコーディングレイヤ(video coding layer、VCL)NALユニットは、ピクチャのコーディングスライスなどの、ビデオデータを含むようにコーディングされたNALユニットである。非VCL NALユニットは、ビデオデータの復号、適合チェックの実行、又は他の動作をサポートするシンタックス及び/又はパラメータなどの、非ビデオデータを含むNALユニットである。アクセスユニット(access unit、AU)は、指定された分類ルールに従って互いに関連づけられ、1つの特定の出力時間に属する、NALユニットのセットである。復号ユニット(decoding unit、DU)は、AU又はAUのサブセット、及び関連づけられた非VCL NALユニットである。レイヤは、指定された特性(例えば、共通の解像度、フレームレート、画像サイズなど)を共有するVCL NALユニットと、関連づけられた非VCL NALユニットのセットである。復号順序は、シンタックス要素が復号プロセスにより処理される順序である。ビデオパラメータセット(video parameter set、VPS)は、ビデオ全体に関連するパラメータを含むデータユニットである。
時間スケーラブルビットストリームは、様々な時間的解像度/フレームレートを提供する複数のレイヤでコーディングされたビットストリームである(例えば、各レイヤは、異なるフレームレートをサポートするようにコーディングされる)。サブレイヤは、特定の時間識別子値を有するVCL NALユニットと、関連づけられた非VCL NALユニットとを含む、時間スケーラブルビットストリームの時間スケーラブルレイヤである。例えば、時間サブレイヤは、指定されたフレームレートに関連づけられたビデオデータを含むレイヤである。サブレイヤ表現は、特定のサブレイヤ及びより低いサブレイヤのNALユニットを含むビットストリームのサブセットである。したがって、1つ以上の時間サブレイヤを組み合わせて、指定されたフレームレートを有するビデオシーケンスを結果としてもたらすように復号することができるサブレイヤ表現を達成することができる。出力レイヤセット(output layer set、OLS)は、出力レイヤとして1つ以上のレイヤが指定されるレイヤのセットである。出力レイヤは、出力のため(例えば、ディスプレイに対して)に指定されたレイヤである。OLSインデックスは、対応するOLSを一意に識別するインデックスである。ゼロ番目の(第0の)OLSは、最も低いレイヤ(最低レイヤ識別子を有するレイヤ)のみを含み、したがって出力レイヤのみを含むOLSである。時間識別子(ID)は、ビデオシーケンスにおける時間位置に対応するデータを示すデータ要素である。サブビットストリーム抽出プロセスは、ターゲットOLSインデックス及びターゲット最高時間IDにより決定される、ターゲットセットに属さないNALユニットを、ビットストリームから除去するプロセスである。サブビットストリーム抽出プロセスは、ターゲットセットの一部であるビットストリームからのNALユニットを含む出力サブビットストリームを結果としてもたらす。
HRDは、エンコーダ上で動作するデコーダモデルである。HRDは、符号化プロセスにより生成されたビットストリームの変動性をチェックして、指定された制約との適合性を検証する。ビットストリーム適合テストは、符号化ビットストリームが汎用ビデオコーディング(Versatile Video Coding、VVC)などの標準に準拠するかどうかを決定するためのテストである。HRDパラメータは、HRDの動作条件を初期化及び/又は定義するシンタックス要素である。シーケンスレベルのHRDパラメータは、コーディングビデオシーケンス全体に適用されるHRDパラメータであり、一方、ピクチャレベルのHRDパラメータは、コーディングビデオシーケンス内のピクチャに適用されるHRDパラメータである。最大HRD時間ID(Htid)は、OLS HRDパラメータのi番目のセットにHRDパラメータが含まれる最高サブレイヤ表現の時間IDを指定する。動作点(operation point、OP)は、OLSインデックス及び最高時間IDにより識別されるOLSの時間サブセットである。コーディングピクチャバッファ(coded picture buffer、CPB)は、ビットストリーム適合検証の間の使用のために復号順序でコーディングピクチャを含む、HRDにおける先入れ先出しバッファである。復号ピクチャバッファ(decoded picture buffer、DPB)は、参照、出力再順序付け、及び/又は出力遅延のために復号されたピクチャを保持するバッファである。
補足エンハンスメント情報(supplemental enhancement information、SEI)メッセージは、復号されたピクチャ内のサンプルの値を決定するために復号プロセスにより必要とされない情報を伝達する、指定されたセマンティクスを有するシンタックス構造である。バッファリング期間(buffering period、BP)SEIメッセージは、HRDを初期化してCPBを管理するためのHRDパラメータを含むSEIメッセージである。ピクチャタイミング(picture timing、PT)SEIメッセージは、CPB及び/又はDPBにおけるAUについての配信情報を管理するためのHRDパラメータを含むSEIメッセージである。復号ユニット情報(decoding unit information、DUI)SEIメッセージは、CPB及び/又はDPBにおけるDUについての配信情報を管理するためのHRDパラメータを含むSEIメッセージである。
CPB除去遅延は、対応するカレントAUが除去及びDPBへの出力の前にCPB内に残ることができる時間の期間である。初期CPB除去遅延は、ビットストリーム、OLS、及び/又はレイヤ内の各ピクチャ、AU、及び/又はDUに対するデフォルトCPB除去遅延である。CPB除去オフセットは、CPB内の対応するAUの境界を決定するために使用されるCPB内の位置である。初期CPB除去オフセットは、ビットストリーム、OLS、及び/又はレイヤ内の各ピクチャ、AU、及び/又はDUに関連づけられたデフォルトCPB除去オフセットである。復号ピクチャバッファ(DPB)出力遅延情報は、対応するAUが出力の前にDPB内に残ることができる時間の期間である。CPB除去遅延情報は、対応するDUの、CPBからの除去に関連する情報である。配信スケジュールは、CPB及び/又はDPBなどのメモリ位置への及び/又はメモリ位置からの、ビデオデータの配信のタイミングを指定する。
時間サブレイヤの最大数は、BP SEIメッセージにおいて初期CPB除去遅延及び初期CPB除去オフセットが示されるサブレイヤの最大数である。共通CPB除去遅延増分は、ピクチャタイミングSEIメッセージに関連づけられたAU内の復号順序における任意の2つの連続したDUの名目上の(nominal)CPB除去時間の間の、クロックサブティック(clock sub-ticks)の単位の継続時間(duration)を指定する。共通CPB除去遅延増分は、さらに、仮想ストリームスケジューラ(hypothetical stream scheduler、HSS)のためにCPBへの復号ユニットデータの到着の最も早い可能な時間を計算するために使用される。
復号ユニットの数は、ピクチャタイミングSEIメッセージが関連づけられたAU内のDUの数を指定する。NALユニットの数は、PT SEIメッセージが関連づけられたAUのi番目のDU内のNALユニットの数を指定する。共通CPB除去遅延フラグは、シンタックス要素共通CPB除去遅延増分がPT SEIメッセージに存在するかどうかを指定する。
CPB除去遅延増分は、PT SEIメッセージに関連づけられたAU内の復号順序における(i+1)番目のDUの名目上のCPB除去時間とi番目のDUの名目上のCPB除去時間との間の、クロックサブティックの単位の継続時間を指定する。
VPS最大サブレイヤマイナス1(vps_max_sublayers_minus1)シンタックス要素は、VPSにより指定されたレイヤに存在し得る時間サブレイヤの最大数を指定するシンタックス要素である。
本明細書において、以下の頭字語、アクセスユニット(AU)、コーディングツリーブロック(Coding Tree Block、CTB)、コーディングツリーユニット(Coding Tree Unit、CTU)、コーディングユニット(Coding Unit、CU)、コーディングレイヤビデオシーケンス(Coded Layer Video Sequence、CLVS)、コーディングレイヤビデオシーケンス開始(Coded Layer Video Sequence Start、CLVSS)、コーディングビデオシーケンス(Coded Video Sequence、CVS)、コーディングビデオシーケンス開始(Coded Video Sequence Start、CVSS)、合同ビデオエキスパートチーム(Joint Video Experts Team、JVET)、仮想参照デコーダ(HRD)、動き制約型タイルセット(Motion Constrained Tile Set、MCTS)、最大転送ユニット(Maximum Transfer Unit、MTU)、ネットワーク抽象化レイヤ(NAL)、出力レイヤセット(OLS)、ピクチャ順序カウント(Picture Order Count、POC)、ランダムアクセスポイント(Random Access Point、RAP)、ローバイトシーケンスペイロード(RBSP)、シーケンスパラメータセット(SPS)、ビデオパラメータセット(VPS)、汎用ビデオコーディング(VVC)が使用される。
最小限のデータ損失でビデオファイルのサイズを低減するために、多くのビデオ圧縮手法が利用され得る。例えば、ビデオ圧縮手法は、ビデオシーケンスにおけるデータ冗長性を低減又は除去するために、空間的(例えば、イントラピクチャ)予測及び/又は時間的(例えば、インターピクチャ)予測を実行することを含むことができる。ブロックベースのビデオコーディングでは、ビデオスライス(例えば、ビデオピクチャ又はビデオピクチャの一部)は、ビデオブロックにパーティション化され得、これは、ツリーブロック、コーディングツリーブロック(CTB)、コーディングツリーユニット(CTU)、コーディングユニット(CU)、及び/又はコーディングノードと呼ばれることもある。ピクチャのイントラコーディング(I)スライスにおけるビデオブロックは、同じピクチャ内の近隣ブロック内の参照サンプルに関して空間予測を使用してコーディングされる。ピクチャのインターコーディング一方向予測(P)又は双方向予測(B)スライスにおけるビデオブロックは、同じピクチャ内の近隣ブロック内の参照サンプルに関して空間予測を、又は他の参照ピクチャ内の参照サンプルに関して時間予測を利用することによりコーディングされ得る。ピクチャは、フレーム及び/又は画像として参照されることがあり、参照ピクチャは、参照フレーム及び/又は参照画像として参照されることがある。空間的又は時間的予測は、画像ブロックを表す予測ブロックを結果としてもたらす。残差データは、元の画像ブロックと予測ブロックとの間の画素差を表す。したがって、インターコーディングブロックは、予測ブロックを形成する参照サンプルのブロックを指し示す動きベクトルと、コーディングブロックと予測ブロックとの間の差を示す残差データに従って符号化される。イントラコーディングブロックは、イントラコーディングモード及び残差データに従って符号化される。さらなる圧縮のために、残差データは、画素ドメインから変換ドメインに変換されてもよい。これらは残差変換係数を結果としてもたらし、これは量子化することができる。量子化された変換係数は、最初、2次元アレイに配置され得る。量子化された変換係数は、変換係数の1次元ベクトルを生成するためにスキャンすることができる。一層多くの圧縮を達成するために、エントロピーコーディングが適用され得る。このようなビデオ圧縮手法を以下により詳細に論じる。
符号化されたビデオが正確に復号可能であることを保証するために、ビデオは、対応するビデオコーディング標準に従って符号化され、復号される。ビデオコーディング標準には、国際電気通信連合(International Telecommunication Union、ITU)標準化部門(Standardization Sector)(ITU-T)H.261、国際標準化機構/国際電気標準会議(International Organization for Standardization、ISO/International Electrotechnical Commission、IEC)モーションピクチャエキスパートグループ(Motion Picture Experts Group、MPEG)-1 パート2、ITU-T H.262、ISO/IEC MPEG-2 パート2、ITU-T H.263、ISO/IEC MPEG-4 パート2、ITU-T H.264又はISO/IEC MPEG-4 パート10としても知られる高度ビデオコーディング(Advanced Video Coding、AVC)、及びITU-T H.265又はMPEG-H パート2としても知られる高効率ビデオコーディング(High Efficiency Video Coding、HEVC)が含まれる。AVCには、スケーラブルビデオコーディング(Scalable Video Coding、SVC)、マルチビュービデオコーディング(Multiview Video Coding、MVC)及びマルチビュービデオコーディングプラス深度(Multiview Video Coding plus Depth、MVC+D)、並びに3次元(3D)AVC(3D-AVC)などの拡張が含まれる。HEVCには、スケーラブルHEVC(SHVC)、マルチビューHEVC(MV-HEVC)、3D HEVC(3D-HEVC)などの拡張が含まれる。ITU-TとISO/IECの合同ビデオエキスパートチーム(JVET)は、汎用ビデオコーディング(VVC)と呼ばれるビデオコーディング標準の開発を開始している。VVCは、JVET-O2001-v14を含む作業原案(WD)に含まれている。
最新のVVC原案は、ピクチャタイミング(PT)SEIメッセージ、復号ユニット情報(DUI)SEIメッセージ、AUベースのHRD動作(例えば、AU全体に適用されるHRD動作)、及び復号ユニット(DU)ベースのHRD動作(例えば、AUにおける1つの復号ユニット又はピクチャに適用されるHRD動作)の詳細を提供している。
レイヤとサブレイヤの双方に対するAUベースのHRD動作に必要とされるピクチャレベルのコーディングピクチャバッファ(CPB)パラメータは、PT SEIメッセージにおいてシグナリングされる。レイヤに対するDUベースのHRD動作に必要とされるピクチャレベルのCPBパラメータは、PT SEIメッセージ又はDUI SEIメッセージのいずれかでシグナリングされる。しかしながら、サブレイヤに対するDUベースのHRD動作に必要とされるピクチャレベルのCPBパラメータは、PT SEIメッセージ及びDUI SEIメッセージから欠落している。
本明細書に開示されるのは、サブレイヤ上のDUベースのHRD動作に対応するピクチャレベルのCPBパラメータがSEIメッセージに含まれることを保証する手法である。ピクチャレベルのCPBパラメータがSEIメッセージに含まれるため、HRDは、DUベースのHRD動作を使用して、ビットストリーム適合についてビットストリーム内のサブレイヤをテストすることができ、これは、サブレイヤが適切にコーディングされ、及び/又は適切に復号可能であることを保証する。したがって、ビデオコーディングにおけるコーダ/デコーダ(「コーデック」としても知られる)は、現在のコーデックと比較して改善される。実際問題として、改善されたビデオコーディングプロセスは、ビデオが送信、受信、及び/又は視聴されるとき、ユーザにより良いユーザ体験を提供する。
図1は、ビデオ信号をコーディングする一例示的な動作方法100のフローチャートである。具体的には、ビデオ信号は、エンコーダで符号化される。符号化プロセスは、ビデオファイルサイズを低減するための様々なメカニズムを利用することによりビデオ信号を圧縮する。より小さいファイルサイズは、関連する帯域幅オーバーヘッドを低減すると同時に、圧縮されたビデオファイルをユーザに向けて送信することを可能にする。次いで、デコーダは、圧縮されたビデオファイルを復号して、エンドユーザに対する表示のために元のビデオ信号を再構成する。復号プロセスは、一般に、符号化プロセスを反映して、デコーダがビデオ信号を一貫して再構成することを可能にする。
ステップ101において、ビデオ信号がエンコーダに入力される。例えば、ビデオ信号は、メモリに記憶された非圧縮ビデオファイルでもよい。別の例として、ビデオファイルは、ビデオカメラなどのビデオ捕捉デバイスにより捕捉され、ビデオのライブストリーミングをサポートするように符号化されてもよい。ビデオファイルは、オーディオ成分とビデオ成分の双方を含むことができる。ビデオコンポーネントは、シーケンスで見られるときに動きの視覚的な印象を与える一連の画像フレームを含む。フレームは、本明細書においてルマ成分(又は、ルマサンプル)と呼ばれる光と、クロマ成分(又は、色サンプル)と呼ばれる色との観点で表現される、画素を含む。いくつかの例において、フレームは、3次元表示をサポートするための深度値をさらに含んでもよい。
ステップ103において、ビデオはブロックにパーティション化される。パーティション化は、圧縮のために各フレーム内の画素を正方形及び/又は矩形ブロックにサブ分割する(subdividing)ことを含む。例えば、高効率ビデオコーディング(HEVC)(H.265及びMPEG-H パート2としても知られる)において、フレームは、最初、所定のサイズ(例えば、64画素×64画素)のブロックであるコーディングツリーユニット(CTU)に分割することができる。CTUは、ルマサンプルとクロマサンプルの双方を含む。コーディングツリーを利用して、CTUをブロックに分割し、次いで、さらなる符号化をサポートする構成が達成されるまでブロックを再帰的にサブ分割することができる。例えば、フレームのルマ成分は、個々のブロックが比較的均質の光値を含むまでサブ分割されてもよい。さらに、フレームのクロマ成分は、個々のブロックが比較的均質の色値を含むまでサブ分割されてもよい。したがって、パーティション化メカニズムは、ビデオフレームの内容に応じて変動する。
ステップ105において、ステップ103でパーティション化された画像ブロックを圧縮するために、様々な圧縮メカニズムが利用される。例えば、インター予測及び/又はイントラ予測が利用されてもよい。インター予測は、共通のシーン内のオブジェクトが連続したフレームに現れる傾向があるという事実を活用するように設計されている。したがって、参照フレーム内のオブジェクトを示すブロックは、隣接するフレーム内に繰り返し記述される必要はない。具体的には、テーブルなどのオブジェクトは、複数のフレームにわたって一定の位置に留まり得る。したがって、テーブルは1回記述され、隣接するフレームは参照フレームを参照することができる。複数のフレームにわたってオブジェクトをマッチングするために、パターンマッチングメカニズムが利用されてもよい。さらに、例えば、オブジェクト移動又はカメラ移動に起因して、動くオブジェクトが複数のフレームにわたって表現されることがある。特定の例として、ビデオは、複数のフレームにわたって画面を横切って移動する自動車を示すことがある。このような移動を記述するために、動きベクトルを利用することができる。動きベクトルは、フレーム内のオブジェクトの座標から参照フレーム内のオブジェクトの座標へのオフセットを提供する2次元ベクトルである。このように、インター予測は、カレントフレーム内の画像ブロックを、参照フレーム内の対応するブロックからのオフセットを示す動きベクトルのセットとして符号化することができる。
イントラ予測は、共通フレーム内のブロックを符号化する。イントラ予測は、ルマ及びクロマ成分がフレーム内に密集する傾向があるという事実を活用する。例えば、樹木の一部における緑色のパッチは、同様の緑色のパッチに隣接して位置づけられる傾向がある。イントラ予測は、複数の方向予測モード(例えば、HEVCにおいて33)、planarモード、及びdirect current(DC)モードを利用する。方向モードは、カレントブロックが、対応する方向の近隣ブロックのサンプルと類似/同じであることを示す。planarモードは、行/列に沿った一連のブロック(例えば、平面)を、行の端における近隣ブロックに基づいて補間できることを示す。planarモードは、事実上、値を変化させる際に比較的一定の傾きを利用することにより、行/列にわたっての光/色の滑らかな遷移を示す。DCモードは、境界平滑化に利用され、ブロックが方向予測モードの角度方向に関連づけられた全ての近隣ブロックのサンプルに関連づけられた平均値と類似/同じであることを示す。したがって、イントラ予測ブロックは、画像ブロックを、実際の値の代わりに様々な関係予測モード値として表現することができる。さらに、インター予測ブロックは、画像ブロックを、実際の値の代わりに動きベクトル値として表現することができる。いずれの場合も、予測ブロックは、いくつかの場合、画像ブロックを正確に表現しない可能性がある。いずれの差も、残差ブロックに記憶される。ファイルをさらに圧縮するために、残差ブロックに変換が適用されてもよい。
ステップ107において、様々なフィルタリング手法が適用され得る。HEVCでは、フィルタは、ループ内フィルタリングスキームに従って適用される。上記で論じられたブロックベースの予測は、デコーダにおけるブロック状の画像の作成を結果としてもたらす可能性がある。さらに、ブロックベースの予測スキームは、ブロックを符号化し、次いで、符号化されたブロックを後の使用のために参照ブロックとして再構成することがある。ループ内フィルタリングスキームは、雑音抑制フィルタ、デブロッキングフィルタ、適応ループフィルタ、及びサンプル適応オフセット(sample adaptive offset、SAO)フィルタをブロック/フレームに反復的に適用する。これらのフィルタは、そのようなブロッキングアーチファクトを軽減し、それにより、符号化されたファイルは正確に再構成することができるように、する。さらに、これらのフィルタは、再構成された参照ブロック内のアーチファクトを軽減し、それにより、アーチファクトが、再構成された参照ブロックに基づいて符号化される後続ブロック内にさらなるアーチファクトを作り出す可能性がより低い。
ひとたびビデオ信号がパーティション化され、圧縮され、フィルタリングされると、結果として生じるデータは、ステップ109においてビットストリームに符号化される。ビットストリームは、上記で論じられたデータと、デコーダでの適切なビデオ信号再構成をサポートするのに望ましい任意のシグナリングデータを含む。例えば、このようなデータは、パーティションデータ、予測データ、残差ブロック、及びコーディング命令をデコーダに提供する様々なフラグを含んでもよい。ビットストリームは、要求に対するデコーダに向けての送信のためにメモリに記憶されてもよい。ビットストリームは、さらに、複数のデコーダに向けてブロードキャスト及び/又はマルチキャストされてもよい。ビットストリームの作成は、反復プロセスである。したがって、ステップ101、103、105、107、及び109は、多くのフレーム及びブロックにわたって連続的に及び/又は同時に発生し得る。図1に示された順序は、議論の明確さと容易さのために提示されており、ビデオコーディングプロセスを特定の順序に限定することを意図したものではない。
デコーダは、ビットストリームを受信し、ステップ111において復号プロセスを開始する。具体的には、デコーダは、エントロピー復号スキームを利用して、ビットストリームを対応するシンタックス及びビデオデータにコンバートする。デコーダは、ビットストリームからのシンタックスデータを利用して、ステップ111でフレームのパーティションを決定する。パーティション化は、ステップ103におけるブロックパーティション化の結果とマッチしなければならない。ステップ111で利用されるエントロピー符号化/復号を次に説明する。エンコーダは、圧縮プロセスの間、入力画像における値の空間的位置づけに基づいていくつかの可能な選択肢からブロックパーティション化スキームを選択することなどの、多くの選択を行う。厳密な選択肢をシグナリングすることは、多数のビン(bins)を利用する可能性がある。本明細書で用いられるとき、ビンは、変数として扱われるバイナリ値(例えば、コンテキストに依存して変化し得るビット値)である。エントロピーコーディングは、エンコーダが特定のケースに対して明らかに実行できないオプションを破棄し、許容可能なオプションのセットを残すことを可能にする。各許容可能なオプションは、次いで、コードワードを割り当てられる。コードワードの長さは、許容可能なオプションの数に基づく(例えば、2つのオプションに対して1つのビン、3つから4つのオプションに対して2つのビンなど)。エンコーダは、次いで、選択されたオプションに対してコードワードを符号化する。このスキームは、コードワードのサイズを低減し、なぜならば、コードワードは、全ての可能なオプションの潜在的に大きいセットからの選択を一意に示すのと対照的に、許容可能なオプションの小さいサブセットからの選択を一意に示すのに望ましいほど大きいためである。デコーダは、次いで、エンコーダと同様の方法で許容可能なオプションのセットを決定することにより、選択を復号する。許容可能なオプションのセットを決定することにより、デコーダは、コードワードを読み取り、エンコーダによりなされた選択を決定することができる。
ステップ113において、デコーダはブロック復号を実行する。具体的には、デコーダは、逆変換を利用して残差ブロックを生成する。次いで、デコーダは、残差ブロック及び対応する予測ブロックを利用して、パーティション化に従って画像ブロックを再構成する。予測ブロックは、ステップ105においてエンコーダで生成される、イントラ予測ブロックとインター予測ブロックの双方を含み得る。次いで、再構成された画像ブロックは、ステップ111で決定されたパーティション化データに従って、再構成されたビデオ信号のフレームに位置づけられる。ステップ113のためのシンタックスも、上記で論じたエントロピーコーディングを介してビットストリーム内でシグナリングされてもよい。
ステップ115において、再構成されたビデオ信号のフレームに対して、エンコーダにおけるステップ107と同様の方法で、フィルタリングが実行される。例えば、ブロッキングアーチファクトを除去するために、雑音抑制フィルタ、デブロッキングフィルタ、適応ループフィルタ、及びSAOフィルタをフレームが適用されてもよい。ひとたびフレームがフィルタリングされると、ビデオ信号は、ステップ117において、エンドユーザが見るためにディスプレイに出力することができる。
図2は、ビデオコーディングのための一例示的なコーディング及び復号(コーデック)システム200の概略図である。具体的には、コーデックシステム200は、動作方法100の実施をサポートするための機能性を提供する。コーデックシステム200は、エンコーダ及びデコーダの双方で利用されるコンポーネントを示すように一般化されている。コーデックシステム200は、動作方法100のステップ101及び103に関して論じたように、ビデオ信号を受信及びパーティション化し、これは、パーティション化されたビデオ信号201を結果としてもたらす。次いで、コーデックシステム200は、方法100のステップ105、107、及び109に関して論じたように、エンコーダとして機能するとき、パーティション化されたビデオ信号201をコーディングビットストリームに圧縮する。デコーダとして機能するとき、コーデックシステム200は、動作方法100におけるステップ111、113、115、及び117に関して論じたように、ビットストリームからの出力ビデオ信号を生成する。コーデックシステム200は、一般コーダ制御コンポーネント211、変換スケーリング及び量子化コンポーネント213、イントラピクチャ推定コンポーネント215、イントラピクチャ予測コンポーネント217、動き補償コンポーネント219、動き推定コンポーネント221、スケーリング及び逆変換コンポーネント229、フィルタ制御分析コンポーネント227、ループ内フィルタコンポーネント225、復号ピクチャバッファコンポーネント223、ヘッダフォーマッティング(header formatting)及びコンテキスト適応二値算術コーディング(context adaptive binary arithmetic coding、CABAC)コンポーネント231を含む。こうしたコンポーネントは、図示のように結合される。図2において、黒線は、符号化/復号されるべきデータの移動を示し、破線は、他のコンポーネントの動作を制御する制御データの移動を示す。コーデックシステム200のコンポーネントは全て、エンコーダ内に存在し得る。デコーダは、コーデックシステム200のコンポーネントのサブセットを含み得る。例えば、デコーダは、イントラピクチャ予測コンポーネント217、動き補償コンポーネント219、スケーリング及び逆変換コンポーネント229、ループ内フィルタコンポーネント225、及び復号ピクチャバッファコンポーネント223を含んでもよい。次に、これらのコンポーネントについて説明する。
パーティション化されたビデオ信号201は、コーディングツリーにより画素のブロックにパーティション化されている、捕捉されたビデオシーケンスである。コーディングツリーは、様々な***モードを利用して、画素のブロックを画素のより小さいブロックにサブ分割する。次いで、これらのブロックは、より小さいブロックにさらにサブ分割することができる。ブロックは、コーディングツリー上のノードとして参照され得る。より大きい親ノードは、より小さい子ノードに***される。ノードがサブ分割される回数は、ノード/コーディングツリーの深さとして参照される。分割されたブロックは、いくつかの場合、コーディングユニット(CU)に含めることができる。例えば、CUは、ルマブロック、赤色差クロマ(Cr)ブロック、及び青色差クロマ(Cb)ブロックを、CUに対する対応するシンタックス命令と共に含む、CTUのサブ部分とすることができる。***モードには、ノードを、利用される***モードに依存して変わる形状の2つ、3つ、又は4つの子ノードにそれぞれパーティション化するために利用される、二分木(binary tree、BT)、三分木(triple tree、TT)、及び四分木(quad tree、QT)を含むことができる。パーティション化されたビデオ信号201は、圧縮のために、一般コーダ制御コンポーネント211、変換スケーリング及び量子化コンポーネント213、イントラピクチャ推定コンポーネント215、フィルタ制御分析コンポーネント227、及び動き推定コンポーネント221に転送される。
一般コーダ制御コンポーネント211は、アプリケーション制約に従ってビデオシーケンスの画像のビットストリームへのコーディングすることに関連する判断を行うように構成される。例えば、一般コーダ制御コンポーネント211は、ビットレート/ビットストリームサイズ対再構成品質の最適化を管理する。そのような判断は、ストレージ空間/帯域幅の可用性及び画像解像度要求に基づいて行われてもよい。一般コーダ制御コンポーネント211は、さらに、バッファアンダーラン及びオーバーラン問題を軽減するために、送信速度に照らしてバッファ利用を管理する。これらの問題を管理するために、一般コーダ制御コンポーネント211は、他のコンポーネントによるパーティション化、予測、及びフィルタリングを管理する。例えば、一般コーダ制御コンポーネント211は、動的に圧縮複雑性を増加させて解像度を増加させ、帯域幅使用を増加させ、あるいは圧縮複雑性を減少させて解像度及び帯域幅使用を減少させることができる。したがって、一般コーダ制御コンポーネント211は、ビデオ信号再構成品質をビットレートの懸念とバランスさせるために、コーデックシステム200の他のコンポーネントを制御する。一般コーダ制御コンポーネント211は、他のコンポーネントの動作を制御する制御データを作成する。制御データも、デコーダで復号するためのパラメータをシグナリングするために、ビットストリーム内に符号化されるようにヘッダフォーマッティング及びCABACコンポーネント231に転送される。
パーティション化されたビデオ信号201は、さらに、インター予測のために動き推定コンポーネント221及び動き補償コンポーネント219に送信される。パーティション化されたビデオ信号201のフレーム又はスライスは、複数のビデオブロックに分割されてもよい。動き推定コンポーネント221及び動き補償コンポーネント219は、時間予測を提供するために、1つ以上の参照フレーム内の1つ以上のブロックに対して受信したビデオブロックのインター予測コーディングを実行する。コーデックシステム200は、複数のコーディングパスを実行して、例えば、ビデオデータの各ブロックに対して適切なコーディングモードを選択することができる。
動き推定コンポーネント221及び動き補償コンポーネント219は、高度に統合され得るが、概念的な目的のために別個に図示されている。動き推定コンポーネント221により実行される動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、例えば、予測ブロックに対するコーディングオブジェクトの変位を示すことができる。予測ブロックは、画素差の観点で、コーディングされるブロックに密接にマッチすることが見い出されるブロックである。予測ブロックは、参照ブロックと呼ばれることもある。このような画素差は、絶対差の和(sum of absolute difference、SAD)、二乗差の和(sum of square difference、SSD)、又は他の差メトリックにより決定されてもよい。HEVCは、CTU、コーディングツリーブロック(CTB)、及びCUを含むいくつかのコーディングオブジェクトを利用する。例えば、CTUはCTBに分割することができ、次いで、CTBはCUに含めるためにCBに分割することができる。CUは、CUのための予測データを含む予測ユニット(prediction unit、PU)及び/又は変換された残差データを含む変換ユニット(transform unit、TU)として符号化することができる。動き推定コンポーネント221は、レート歪み最適化プロセスの一部としてレート歪み分析を使用することにより、動きベクトル、PU、及びTUを生成する。例えば、動き推定コンポーネント221は、カレントのブロック/フレームに対する複数の参照ブロック、複数の動きベクトルなどを決定することができ、最良のレート歪み特性を有する参照ブロック、動きベクトルなどを選択することができる。最良のレート歪み特性は、ビデオ再構成の品質(例えば、圧縮によるデータ損失の量)とコーディング効率(例えば、最終符号化のサイズ)の双方をバランスさせる。
いくつかの例において、コーデックシステム200は、復号ピクチャバッファコンポーネント223に記憶された参照ピクチャのサブ整数画素位置の値を計算することができる。例えば、ビデオコーデックシステム200は、参照ピクチャの1/4画素位置、1/8画素位置、又は他の分数画素位置の値を補間することができる。したがって、動き推定コンポーネント221は、フル画素位置及び分数画素位置に対する動き探索を実行し、分数画素精度を有する動きベクトルを出力することができる。動き推定コンポーネント221は、PUの位置を参照ピクチャの予測ブロックの位置と比較することにより、インターコーディングスライス内のビデオブロックのPUのための動きベクトルを計算する。動き推定コンポーネント221は、計算された動きベクトルを、符号化するためにヘッダフォーマッティング及びCABACコンポーネント231へ動きデータとして、及び動き補償コンポーネント219へ動きとして出力する。
動き補償コンポーネント219により実行される動き補償は、動き推定コンポーネント221により決定された動きベクトルに基づいて予測ブロックを取り出し又は生成することを含むことができる。再びになるが、動作推定コンポーネント221及び動作補償コンポーネント219は、いくつかの例において機能的に統合されてもよい。カレントビデオブロックのPUのための動きベクトルを受信すると、動き補償コンポーネント219は、動きベクトルが指し示す予測ブロックの位置を特定することができる。次いで、コーディングされているカレントビデオブロックの画素値から予測ブロックの画素値を減算し、画素差値を形成することにより、残差ビデオブロックが形成される。一般に、動き推定コンポーネント221は、ルマ成分に対して動き推定を実行し、動き補償コンポーネント219は、クロマ成分とルマ成分の双方に対して、ルマ成分に基づいて計算された動きベクトルを使用する。予測ブロック及び残差ブロックは、変換スケーリング及び量子化コンポーネント213に転送される。
パーティション化されたビデオ信号201は、さらに、イントラピクチャ推定コンポーネント215及びイントラピクチャ予測コンポーネント217に送信される。動き推定コンポーネント221及び動き補償コンポーネント219と同様に、イントラピクチャ推定コンポーネント215及びイントラピクチャ予測コンポーネント217は高度に統合され得るが、概念的な目的のために別個に図示されている。イントラピクチャ推定コンポーネント215及びイントラピクチャ予測コンポーネント217は、上述したようにフレーム間で動き推定コンポーネント221及び動き補償コンポーネント219により実行されるインター予測の一代替として、カレントフレーム内のブロックに対するカレントブロックをイントラ予測する(intra-predict)。特に、イントラピクチャ推定コンポーネント215は、カレントブロックを符号化するために使用するイントラ予測モードを決定する。いくつかの例において、イントラピクチャ推定コンポーネント215は、複数のテストされたイントラピクチャ予測モードから、カレントブロックを符号化するための適切なイントラ予測モードを選択する。次いで、選択されたイントラ予測モードは、符号化するためにヘッダフォーマッティング及びCABACコンポーネント231に転送される。
例えば、イントラピクチャ推定コンポーネント215は、様々なテストされたイントラ予測モードについてレート歪み分析を使用してレート歪み値を計算し、テストされたモードの中で最良のレート歪み特性を有するイントラ予測モードを選択する。レート歪み分析は、一般に、符号化ブロックと、符号化ブロックを生成するために符号化された元の非符号化ブロックとの間の歪み(又は、誤差)の量、並びに符号化ブロックを生成するために使用されたビットレート(例えば、ビット数)を決定する。イントラピクチャ推定コンポーネント215は、様々な符号化ブロックについて歪み及びレートから比率を計算し、どのイントラ予測モードがブロックに対する最良のレート歪み値を示すかを決定する。さらに、イントラピクチャ推定コンポーネント215は、レート歪み最適化(rate-distortion optimization、RDO)に基づく深度モデリングモード(depth modeling mode、DMM)を使用して深度マップの深度ブロックをコーディングするように構成されてもよい。
イントラピクチャ予測コンポーネント217は、エンコーダ上で実施されるとき、イントラピクチャ推定コンポーネント215により決定された選択されたイントラ予測モードに基づいて予測ブロックから残差ブロックを生成し、あるいは、デコーダ上で実施されるとき、ビットストリームから残差ブロックを読み取ることができる。残差ブロックは、行列として表される、予測ブロックと元のブロックとの間の値の差を含む。次いで、残差ブロックは、変換スケーリング及び量子化コンポーネント213に転送される。イントラピクチャ推定コンポーネント215及びイントラピクチャ予測コンポーネント217は、ルマ成分及びクロマ成分の双方に対して動作することができる。
変換スケーリング及び量子化コンポーネント213は、残差ブロックをさらに圧縮するように構成される。変換スケーリング及び量子化コンポーネント213は、離散コサイン変換(discrete cosine transform、DCT)、離散サイン変換(discrete sine transform、DST)、又は概念的に類似した変換などの変換を残差ブロックに適用し、残差変換係数値を含むビデオブロックを生成する。ウェーブレット変換、整数変換、サブバンド変換、又は他のタイプの変換も使用することができる。変換は、残差情報を画素値ドメインから、周波数ドメインなどの変換ドメインにコンバートすることができる。変換スケーリング及び量子化コンポーネント213は、さらに、変換された残差情報を、例えば周波数に基づいてスケーリングするように構成される。そのようなスケーリングは、異なる周波数情報が異なる粒度で量子化されるように、残差情報にスケールファクタを適用することを含み、これは、再構成されたビデオの最終的な視覚品質に影響を及ぼし得る。変換スケーリング及び量子化コンポーネント213は、さらに、ビットレートをさらに低減するために、変換係数を量子化するように構成される。量子化プロセスは、係数の一部又は全てに関連づけられたビット深度を低減することができる。量子化の度合いは、量子化パラメータを調整することにより修正されてもよい。いくつかの例において、変換スケーリング及び量子化コンポーネント213は、次いで、量子化された変換係数を含む行列のスキャンを実行することができる。量子化された変換係数は、ビットストリーム内に符号化されるようにヘッダフォーマッティング及びCABACコンポーネント231に転送される。
スケーリング及び逆変換コンポーネント229は、動き推定をサポートするために、変換スケーリング及び量子化コンポーネント213の逆の動作を適用する。スケーリング及び逆変換コンポーネント229は、逆のスケーリング、変換、及び/又は量子化を適用して、例えば、別のカレントブロックのための予測ブロックになり得る参照ブロックとしての後の使用のために、画素ドメイン内の残差ブロックを再構成する。動き推定コンポーネント221及び/又は動き補償コンポーネント219は、後のブロック/フレームの動き推定における使用のために、残差ブロックを対応する予測ブロックに加算することにより参照ブロックを計算することができる。スケーリング、量子化、及び変換の間に作り出されるアーチファクトを軽減するために、再構成された参照ブロックにフィルタが適用される。さもなければ、このようなアーチファクトは、後続のブロックが予測されるとき、不正確な予測を引き起こす(及び、さらなるアーチファクトを作り出す)可能性がある。
フィルタ制御分析コンポーネント227及びループ内フィルタコンポーネント225は、フィルタを残差ブロックに、及び/又は再構成された画像ブロックに適用する。例えば、スケーリング及び逆変換コンポーネント229からの変換された残差ブロックを、イントラピクチャ予測コンポーネント217及び/又は動き補償コンポーネント219からの対応する予測ブロックと組み合わせて、元の画像ブロックを再構成することができる。次いで、再構成された画像ブロックにフィルタが適用され得る。いくつかの例において、フィルタは、代わりに、残差ブロックに適用されてもよい。図2の他のコンポーネントと同様に、フィルタ制御分析コンポーネント227及びループ内フィルタコンポーネント225は高度に統合され、一緒に実施され得るが、概念的な目的のために別個に示されている。再構成された参照ブロックに適用されるフィルタは、特定の空間領域に適用され、そのようなフィルタがどのように適用されるかを調整するために複数のパラメータを含む。フィルタ制御分析コンポーネント227は、再構成された参照ブロックを分析して、そのようなフィルタがどこに適用されるべきかを決定し、対応するパラメータを設定する。このようなデータは、符号化のためのフィルタ制御データとしてヘッダフォーマッティング及びCABACコンポーネント231に転送される。ループ内フィルタコンポーネント225は、フィルタ制御データに基づいてそのようなフィルタを適用する。フィルタは、デブロッキングフィルタ、ノイズ抑制フィルタ、SAOフィルタ、及び適応ループフィルタを含んでもよい。そのようなフィルタは、例に依存して、空間/画素ドメインで(例えば、再構成された画素ブロックに)、又は周波数ドメインで適用され得る。
エンコーダとして動作するとき、フィルタリングされた再構成された画像ブロック、残差ブロック、及び/又は予測ブロックは、上記で論じたように、動き推定における後の使用のために復号ピクチャバッファコンポーネント223に記憶される。デコーダとして動作するとき、復号ピクチャバッファコンポーネント223は、再構成及びフィルタリングされたブロックを記憶し、出力ビデオ信号の一部としてディスプレイに向けて転送する。復号ピクチャバッファコンポーネント223は、予測ブロック、残差ブロック、及び/又は再構成された画像ブロックを記憶することができる任意のメモリデバイスであってよい。
ヘッダフォーマッティング及びCABACコンポーネント231は、コーデックシステム200の様々なコンポーネントからデータを受信し、そのようなデータをデコーダに向けての送信のためにコーディングビットストリームに符号化する。具体的には、ヘッダフォーマッティング及びCABACコンポーネント231は、一般制御データ及びフィルタ制御データなどの制御データを符号化するために、様々なヘッダを生成する。さらに、イントラ予測及び動きデータを含む予測データ、並びに量子化された変換係数データの形式の残差データは全て、ビットストリームに符号化される。最終的なビットストリームは、元のパーティション化されたビデオ信号201を再構成するためにデコーダにより望まれる全ての情報を含む。そのような情報は、イントラ予測モードインデックステーブル(コードワードマッピングテーブルとも呼ばれる)、様々なブロックに対する符号化コンテキストの定義、最も可能性の高いイントラ予測モードの指標、パーティション情報の指標などをさらに含んでもよい。このようなデータは、エントロピーコーディングを利用することにより符号化され得る。例えば、情報は、コンテキスト適応可変長コーディング(context adaptive variable length coding、CAVLC)、CABAC、シンタックスベースのコンテキスト適応二値算術コーディング(SBAC)、確率間隔パーティション化エントロピー(probability interval partitioning entropy、PIPE)コーディング、又は別のエントロピーコーディング手法を利用することにより符号化されてもよい。エントロピーコーディングに続いて、コーディングビットストリームは、別のデバイス(例えば、ビデオデコーダ)に送信されてもよく、あるいは後の送信又は取り出しのためにアーカイブされてもよい。
図3は、一例示的なビデオエンコーダ300を示すブロック図である。ビデオエンコーダ300は、コーデックシステム200の符号化機能を実施するため、及び/又は動作方法100のステップ101、103、105、107、及び/又は109を実施するために利用されてもよい。エンコーダ300は、入力ビデオ信号をパーティション化し、パーティション化されたビデオ信号301を結果としてもたらし、これは、パーティション化されたビデオ信号201と実質的に同様である。次いで、パーティション化されたビデオ信号301は、エンコーダ300のコンポーネントにより圧縮され、ビットストリームに符号化される。
具体的には、パーティション化されたビデオ信号301は、イントラ予測のために、イントラピクチャ予測コンポーネント317に転送される。イントラピクチャ予測コンポーネント317は、イントラピクチャ推定コンポーネント215及びイントラピクチャ予測コンポーネント217と実質的に同様でもよい。さらに、パーティション化されたビデオ信号301は、復号ピクチャバッファコンポーネント323内の参照ブロックに基づくインター予測のために、動き補償コンポーネント321に転送される。動き補償コンポーネント321は、動き推定コンポーネント221及び動き補償コンポーネント219と実質的に同様でもよい。イントラピクチャ予測コンポーネント317及び動き補償コンポーネント321からの予測ブロック及び残差ブロックは、残差ブロックの変換及び量子化のために、変換及び量子化コンポーネント313に転送される。変換及び量子化コンポーネント313は、変換スケーリング及び量子化コンポーネント213と実質的に同様でもよい。変換及び量子化された残差ブロック、及び対応する予測ブロックは(関連づけられた制御データとともに)、ビットストリームへのコーディングのためにエントロピーコーディングコンポーネント331に転送される。エントロピーコーディングコンポーネント331は、ヘッダフォーマッティング及びCABACコンポーネント231と実質的に同様でもよい。
変換及び量子化された残差ブロック、及び/又は対応する予測ブロックは、さらに、動き補償コンポーネント321による使用のための参照ブロックへの再構成のために、変換及び量子化コンポーネント313から逆変換及び量子化コンポーネント329に転送される。逆変換及び量子化コンポーネント329は、スケーリング及び逆変換コンポーネント229と実質的に同様でもよい。ループ内フィルタコンポーネント325内のループ内フィルタが、さらに、例に依存して、残差ブロック及び/又は再構成された参照ブロックに適用される。ループ内フィルタコンポーネント325は、フィルタ制御分析コンポーネント227及びループ内フィルタコンポーネント225と実質的に同様でもよい。ループ内フィルタコンポーネント325は、ループ内フィルタコンポーネント225に関して論じられたように複数のフィルタを含むことができる。次いで、フィルタリングされたブロックは、動き補償コンポーネント321による参照ブロックとしての使用のために、復号ピクチャバッファコンポーネント323に記憶される。復号ピクチャバッファコンポーネント323は、復号ピクチャバッファコンポーネント223と実質的に同様でもよい。
図4は、一例示的なビデオデコーダ400を示すブロック図である。ビデオデコーダ400は、コーデックシステム200の復号機能を実施するため、及び/又は動作方法100のステップ111、113、115、及び/又は117を実施するために利用されてもよい。デコーダ400は、ビットストリームを、例えばエンコーダ300から受信し、エンドユーザに対する表示のために、ビットストリームに基づいて再構成された出力ビデオ信号を生成する。
ビットストリームは、エントロピー復号コンポーネント433により受信される。エントロピー復号コンポーネント433は、CAVLC、CABAC、SBAC、PIPEコーディング、又は他のエントロピーコーディング手法などのエントロピー復号スキームを実施するように構成される。例えば、エントロピー復号コンポーネント433は、ビットストリーム内にコードワードとして符号化されたさらなるデータを解釈するためのコンテキストを提供するために、ヘッダ情報を利用することができる。復号された情報は、一般制御データ、フィルタ制御データ、パーティション情報、動きデータ、予測データ、及び残差ブロックからの量子化された変換係数などの、ビデオ信号を復号するための任意の所望の情報を含む。量子化された変換係数は、残差ブロックへの再構成のために、逆変換及び量子化コンポーネント429に転送される。逆変換及び量子化コンポーネント429は、逆変換及び量子化コンポーネント329と同様でもよい。
再構成された残差ブロック及び/又は予測ブロックは、イントラ予測動作に基づく画像ブロックへの再構成のために、イントラピクチャ予測コンポーネント417に転送される。イントラピクチャ予測コンポーネント417は、イントラピクチャ推定コンポーネント215及びイントラピクチャ予測コンポーネント217と同様でもよい。具体的には、イントラピクチャ予測コンポーネント417は、予測モードを利用してフレーム内の参照ブロックの位置を特定し、その結果に残差ブロックを適用して、イントラ予測された画像ブロックを再構成する。再構成されたイントラ予測画像ブロック、及び/又は残差ブロック及び対応するインター予測データは、復号ピクチャバッファコンポーネント423にループ内フィルタコンポーネント425を介して転送され、これらは、それぞれ、復号ピクチャバッファコンポーネント223及びループ内フィルタコンポーネント225と実質的に同様でもよい。ループ内フィルタコンポーネント425は、再構成された画像ブロック、残差ブロック、及び/又は予測ブロックをフィルタリングし、そのような情報は、復号ピクチャバッファコンポーネント423に記憶される。復号ピクチャバッファコンポーネント423からの再構成された画像ブロックは、インター予測のために動き補償コンポーネント421に転送される。動き補償コンポーネント421は、動き推定コンポーネント221及び/又は動き補償コンポーネント219と実質的に同様でもよい。具体的には、動き補償コンポーネント421は、参照ブロックからの動きベクトルを利用して予測ブロックを生成し、その結果に残差ブロックを適用して画像ブロックを再構成する。結果として生じる再構成されたブロックは、さらに、ループ内フィルタコンポーネント425を介して復号ピクチャバッファコンポーネント423に転送されてもよい。復号ピクチャバッファコンポーネント423は、さらなる再構成された画像ブロックを記憶し続け、これは、パーティション情報を介してフレームに再構成することができる。このようなフレームは、さらに、シーケンス内に配置されてもよい。シーケンスは、再構成された出力ビデオ信号としてディスプレイに向けて出力される。
図5は、一例示的なHRD500を示す概略図である。HRD500は、コーデックシステム200及び/又はエンコーダ300などのエンコーダにおいて利用されてもよい。HRD500は、ビットストリームがデコーダ400などのデコーダに転送される前に、方法100のステップ109で作成されたビットストリームをチェックすることができる。いくつかの例において、ビットストリームが符号化されるとき、ビットストリームはHRD500を通して連続的に転送され得る。ビットストリームの一部が、関連づけられた制約に適合するのに失敗する場合、HRD500は、そのような失敗をエンコーダに示して、エンコーダに、ビットストリームの対応するセクションを異なるメカニズムで再符号化させることができる。
HRD500は、仮想ストリームスケジューラ(hypothetical stream scheduler、HSS)541を含む。HSS541は、仮想配信メカニズム(hypothetical delivery mechanism)を実行するように構成されたコンポーネントである。仮想配信メカニズムは、HRD500に入力されたビットストリーム551のタイミング及びデータフローに関してビットストリーム又はデコーダの適合をチェックするために使用される。例えば、HSS541は、エンコーダから出力されたビットストリーム551を受信し、ビットストリーム551に対する適合テストプロセスを管理することができる。特定の例において、HSS541は、コーディングピクチャがHRD500を通って移動するレートを制御し、ビットストリーム551が不適合データを含まないことを検証することができる。
HSS541は、ビットストリーム551を所定のレートでCPB543に転送することができる。HRD500は、復号ユニット(DU)553内のデータを管理することができる。DU553は、AU又はAUのサブセット、及び関連づけられた非ビデオコーディングレイヤ(VCL)ネットワーク抽象化レイヤ(NAL)ユニットである。具体的には、AUは、出力時間に関連づけられた1つ以上のピクチャを含む。例えば、AUは、単一レイヤビットストリーム内の単一ピクチャを含んでもよく、マルチレイヤビットストリーム内の各レイヤのピクチャを含んでもよい。AUの各ピクチャは、対応するVCL NALユニットに各々含まれるスライスに分割され得る。したがって、DU553は、1つ以上のピクチャ、ピクチャの1つ以上のスライス、又はこれらの組み合わせを含んでもよい。さらに、AU、ピクチャ、及び/又はスライスを復号するために使用されるパラメータを、非VCL NALユニットに含めることができる。したがって、DU553は、DU553内のVCL NALユニットの復号をサポートするために必要とされるデータを含む非VCL NALユニットを含む。CPB543は、HRD500における先入れ先出しバッファである。CPB543は、復号順序のビデオデータを含むDU553を含む。CPB543は、ビットストリーム適合検証の間の使用のためにビデオデータを記憶する。
CPB543は、DU553を復号プロセスコンポーネント545に転送する。復号プロセスコンポーネント545は、VVC標準に適合するコンポーネントである。例えば、復号プロセスコンポーネント545は、エンドユーザにより利用されるデコーダ400をエミュレートすることができる。復号プロセスコンポーネント545は、例示的なエンドユーザデコーダにより達成できるレートでDU553を復号する。復号プロセスコンポーネント545が、CPB543のオーバーフローを防止するほど十分に速くDU553を復号できない場合、ビットストリーム551は、標準に適合せず、再符号化されるべきである。
復号プロセスコンポーネント545は、DU553を復号し、これは、復号されたDU555を作り出す。復号されたDU555は復号されたピクチャを含む。復号されたDU555は、DPB547に転送される。DPB547は、復号ピクチャバッファコンポーネント223、323、及び/又は423と実質的に同様でもよい。インター予測をサポートするために、復号されたDU555から取得される参照ピクチャ556としての使用のためにマークされたピクチャは、さらなる復号をサポートするために、復号プロセスコンポーネント545に返される。DPB547は、復号されたビデオシーケンスを一連のピクチャ557として出力する。ピクチャ557は、エンコーダによりビットストリーム551に符号化されたピクチャを一般に反映する再構成されたピクチャである。
ピクチャ557は、出力クロップコンポーネント(output cropping component)549に送られる。出力クロップコンポーネント549は、ピクチャ557に適合クロップウィンドウを適用するように構成される。これは、出力クロップピクチャ(output cropped pictures)559を結果としてもたらす。出力クロップピクチャ559は、完全に再構成されたピクチャである。したがって、出力クロップピクチャ559は、エンドユーザがビットストリーム551を復号すると見るであろうものを模倣する。こうして、エンコーダは、出力クロップピクチャ559をレビューして、符号化が満足なものであることを保証することができる。
HRD500は、ビットストリーム551内のHRDパラメータに基づいて初期化される。例えば、HRD500は、VPS、SPS、及び/又はSEIメッセージからHRDパラメータを読み取ることができる。次いで、HRD500は、そのようなHRDパラメータ内の情報に基づいて、ビットストリーム551に対して適合テスト動作を実行することができる。特定の例として、HRD500は、HRDパラメータから1つ以上のCPB配信スケジュール(delivery schedules)561を決定することができる。配信スケジュールは、CPB及び/又はDPBなどのメモリ位置への及び/又はメモリ位置からのビデオデータの配信のタイミングを指定する。したがって、CPB配信スケジュール561は、CPB543への/CPB543からの、AU、DU553、及び/又はピクチャの配信のタイミングを指定する。HRD500は、DPB547に対して、CPB配信スケジュール561に類似したDPB配信スケジュールを利用してもよいことに留意されたい。
ビデオは、様々なネットワーク条件のためと同様に、様々なレベルのハードウェア能力を有するデコーダによる使用のために、異なるレイヤ及び/又はOLSにコーディングされ得る。CPB配信スケジュール561は、これらの問題を反映するように選択される。したがって、より高いレイヤのサブビットストリームは、最適なハードウェア及びネットワーク条件に対して指定され、したがって、より高いレイヤは、DPB547に向けてのDU553の転送のためにCPB543内の大量のメモリと短い遅延を利用する、1つ以上のCPB配信スケジュール561を受信することができる。同様に、より低いレイヤのサブビットストリームは、限られたデコーダハードウェア能力及び/又は不十分なネットワーク条件に対して指定される。したがって、より低いレイヤは、DPB547に向けてのDU553の転送のためにCPB543内の少量のメモリとより長い遅延を利用する、1つ以上のCPB配信スケジュール561を受信することができる。次いで、OLS、レイヤ、サブレイヤ、又はこれらの組み合わせを、対応する配信スケジュール561に従ってテストして、結果として生じるサブビットストリームが、サブビットストリームに対して期待される条件下で正確に復号できることを保証することができる。CPB配信スケジュール561は各々、スケジュールインデックス(ScIdx)563に関連づけられる。ScIdx563は、配信スケジュールを識別するインデックスである。したがって、ビットストリーム551内のHRDパラメータは、ScIdx563によりCPB配信スケジュール561を示すとともに、HRD500がCPB配信スケジュール561を決定し、CPB配信スケジュール561を対応するOLS、レイヤ、及び/又はサブレイヤと相互に関連づけることを可能にするのに十分なデータを含むことができる。
図6は、インターレイヤ予測621に対して構成された一例示的なマルチレイヤビデオシーケンス600を示す概略図である。マルチレイヤビデオシーケンス600は、例えば、方法100に従って、コーデックシステム200及び/又はエンコーダ300などのエンコーダにより符号化され、コーデックシステム200及び/又はデコーダ400などのデコーダにより復号され得る。さらに、マルチレイヤビデオシーケンス600は、HRD500などのHRDにより標準適合についてチェックすることができる。マルチレイヤビデオシーケンス600は、コーディングビデオシーケンス内のレイヤのための一例示的な適用を示すために含まれる。マルチレイヤビデオシーケンス600は、レイヤN 631及びレイヤN+1 632などの複数のレイヤを利用する任意のビデオシーケンスである。
一例において、マルチレイヤビデオシーケンス600は、インターレイヤ予測621を利用し得る。インターレイヤ予測621は、ピクチャ611、612、613、及び614と、ピクチャ615、616、617、及び618との間で異なるレイヤにおいて適用される。図示の例では、ピクチャ611、612、613、及び614は、レイヤN+1 632の一部であり、ピクチャ615、616、617、及び618は、レイヤN 631の一部である。レイヤN 631、及び/又はレイヤN+1 632などのレイヤは、類似のサイズ、品質、解像度、信号対雑音比、能力などのような、特性の類似値に全て関連づけられているピクチャのグループである。レイヤは、VCL NALユニット及び関連づけられた非VCL NALユニットのセットとして形式的に定義され得る。VCL NALユニットは、ピクチャのコーディングスライスなどのビデオデータを含むようにコーディングされたNALユニットである。非VCL NALユニットは、ビデオデータの復号、適合チェックの実行、又は他の動作をサポートするシンタックス及び/又はパラメータなどの非ビデオデータを含むNALユニットである。
図示の例では、レイヤN+1 632は、レイヤN 631より大きい画像サイズに関連づけられている。したがって、レイヤN+1 632内のピクチャ611、612、613、及び614は、この例では、レイヤN 631内のピクチャ615、616、617、及び618より大きいピクチャサイズ(例えば、より大きい高さ及び幅であり、したがってより多くのサンプル)を有する。しかしながら、このようなピクチャは、他の特性により、レイヤN+1 632とレイヤN 631との間で分離することができる。2つのレイヤ、レイヤN+1 632及びレイヤN 631のみが示されているが、ピクチャのセットは、関連づけられた特性に基づいて任意の数のレイヤに分離することができる。レイヤN+1 632及びレイヤN 631は、レイヤIDにより示されてもよい。レイヤIDは、ピクチャに関連づけられるデータの項目であり、ピクチャが示されたレイヤの一部であることを示す。したがって、各ピクチャ611~618は、対応するレイヤIDに関連づけられて、どのレイヤN+1 632又はレイヤN 631が対応するピクチャを含むかを示すことができる。例えば、レイヤIDは、NALユニットヘッダレイヤ識別子(nuh_layer_id)を含んでもよく、これは、(例えば、レイヤ内のピクチャのスライス及び/又はパラメータを含む)NALユニットを含むレイヤの識別子を指定するシンタックス要素である。レイヤN 631などの、より低い品質/ビットストリームサイズに関連づけられたレイヤは、一般に、より低いレイヤIDを割り当てられ、より低いレイヤとして参照される。さらに、レイヤN+1 632などの、より高い品質/ビットストリームサイズに関連づけられたレイヤは、一般に、より高いレイヤIDを割り当てられ、より高いレイヤとして参照される。
異なるレイヤ631~632内のピクチャ611~618は、代替で表示されるように構成される。このように、異なるレイヤ631~632内のピクチャは、ピクチャが同じAUに含まれる限り、時間ID622を共有することができる。時間ID622は、ビデオシーケンスにおける時間位置に対応するデータを示すデータ要素である。AUは、指定された分類ルールに従って互いに関連づけられ、1つの特定の出力時間に属する、NALユニットのセットである。例えば、AUは、ピクチャ611及びピクチャ615などの異なるレイヤにおける1つ以上のピクチャを、そのようなピクチャが同じ時間ID622に関連づけられているとき、含むことができる。特定の例として、デコーダは、より小さいピクチャが望まれる場合、カレント表示時間におけるピクチャ615を復号し、表示してもよく、あるいは、デコーダは、より大きいピクチャが望まれる場合、カレント表示時間におけるピクチャ611を復号し、表示してもよい。したがって、より高いレイヤN+1 632におけるピクチャ611~614は、(ピクチャサイズの差にもかかわらず、)より低いレイヤN 631における対応するピクチャ615~618と実質的に同じ画像データを含む。具体的には、ピクチャ611は、ピクチャ615と実質的に同じ画像データを含み、ピクチャ612は、ピクチャ616と実質的に同じ画像データを含む、などである。
ピクチャ611~618は、同じレイヤN 631、又はN+1 632内の他のピクチャ611~618を参照することによりコーディングすることができる。同じレイヤ内の別のピクチャを参照してピクチャをコーディングすることは、インター予測623を結果としてもたらす。インター予測623は、実線矢印により示される。例えば、ピクチャ613は、レイヤN+1 632内のピクチャ611、612、及び/又は614のうちの1つ又は2つを参照として使用するインター予測623を利用することによりコーディングされてもよく、これにおいて、一方向のインター予測では1つのピクチャが参照され、かつ/あるいは、双方向のインター予測では2つのピクチャが参照される。さらに、ピクチャ617は、レイヤN 631内のピクチャ615、616、及び/又は618のうちの1つ又は2つを参照として使用するインター予測623を利用することによりコーディングされてもよく、これにおいて、一方向のインター予測では1つのピクチャが参照され、かつ/あるいは、双方向のインター予測では2つのピクチャが参照される。ピクチャが、インター予測623を実行するときに同じレイヤ内の別のピクチャのための参照として使用されるとき、ピクチャは、参照ピクチャと呼ばれることがある。例えば、ピクチャ612は、インター予測623に従ってピクチャ613をコーディングするために使用される参照ピクチャであり得る。インター予測623は、マルチレイヤの文脈においてイントラレイヤ予測とも呼ぶこともできる。このように、インター予測623は、参照ピクチャとカレントピクチャが同じレイヤ内にある場合に、カレントピクチャと異なる参照ピクチャ内の指示されたサンプルを参照することにより、カレントピクチャのサンプルをコーディングするメカニズムである。
ピクチャ611~618は、異なるレイヤ内の他のピクチャ611~618を参照することによりコーディングすることもできる。このプロセスは、インターレイヤ予測621として分かり、破線矢印で示されている。インターレイヤ予測621は、カレントピクチャと参照ピクチャが異なるレイヤ内にあり、したがって異なるレイヤIDを有する場合に、参照ピクチャ内の指示されたサンプルを参照することにより、カレントピクチャのサンプルをコーディングするメカニズムである。例えば、より低いレイヤN 631内のピクチャを参照ピクチャとして使用して、より高いレイヤN+1 632における対応するピクチャをコーディングすることができる。特定の例として、ピクチャ611は、インターレイヤ予測621に従ってピクチャ615を参照することによりコーディングすることができる。このような場合、ピクチャ615は、インターレイヤ参照ピクチャとして使用される。インターレイヤ参照ピクチャは、インターレイヤ予測621に使用される参照ピクチャである。ほとんどの場合、インターレイヤ予測621は、ピクチャ611などのカレントピクチャが、ピクチャ615などの、同じAUに含まれ、かつより低いレイヤにあるインターレイヤ参照ピクチャのみを使用することができるように、制約される。複数のレイヤ(例えば、2つより多く)が利用可能であるとき、インターレイヤ予測621は、カレントピクチャより低いレベルの複数のインターレイヤ参照ピクチャに基づいてカレントピクチャを符号化/復号することができる。
ビデオエンコーダは、マルチレイヤビデオシーケンス600を利用して、インター予測623及びインターレイヤ予測621の多くの異なる組み合わせ及び/又は順列を介して、ピクチャ611~618を符号化することができる。例えば、ピクチャ615は、イントラ予測に従ってコーディングされてもよい。次いで、ピクチャ616~618は、参照ピクチャとしてピクチャ615を使用することにより、インター予測623に従ってコーディングすることができる。さらに、ピクチャ611は、インターレイヤ参照ピクチャとしてピクチャ615を使用することによりインターレイヤ予測621に従ってコーディングされてもよい。次いで、ピクチャ612~614は、参照ピクチャとしてピクチャ611を使用することによりインター予測623に従ってコーディングすることができる。このように、参照ピクチャは、異なるコーディングメカニズムのために単一レイヤ参照ピクチャ及びインターレイヤ参照ピクチャの双方として機能することができる。より低いレイヤN 631のピクチャに基づいて、より高いレイヤN+1 632のピクチャをコーディングすることにより、より高いレイヤN+1 632は、インター予測623及びインターレイヤ予測621より一層低いコーディング効率を有するイントラ予測の利用を回避することができる。したがって、イントラ予測の不十分なコーディング効率を、最も小さい/最も低い品質のピクチャに限定し、したがって、最小量のビデオデータをコーディングすることに限定することができる。参照ピクチャ及び/又はインターレイヤ参照ピクチャとして使用されるピクチャは、参照ピクチャリスト構造に含まれる参照ピクチャリストのエントリ内に示すことができる。
このような動作を実行するために、レイヤN 631、及びレイヤN+1 632などのレイヤを、OLS625に含めることができる。OLS625は、1つ以上のレイヤが出力レイヤとして指定されるレイヤのセットである。出力レイヤは、出力(例えば、ディスプレイへ)のために指定されたレイヤである。例えば、レイヤN 631は、単にインターレイヤ予測621をサポートするために含まれてもよく、決して出力されなくてもよい。このような場合、レイヤN+1 632は、レイヤN 631に基づいて復号され、出力される。このような場合、OLS625は、出力レイヤとしてレイヤN+1 632を含む。OLS625が出力レイヤのみを含むとき、OLS625は、0番目のOLSとして参照される。0番目のOLSは、最も低いレイヤ(最低レイヤ識別子を有するレイヤ)のみを含むOLSであり、したがって出力レイヤのみを含む。他の場合に、OLS625は、異なる組み合わせで多くのレイヤを含んでもよい。例えば、OLS625内の出力レイヤは、1つ、2つ、又は多くのより低いレイヤに基づくインターレイヤ予測621に従ってコーディングすることができる。さらに、OLS625は、複数の出力レイヤを含んでもよい。したがって、OLS625は、1つ以上の出力レイヤと、出力レイヤを再構成するために必要とされる任意のサポートレイヤを含むことができる。マルチレイヤビデオシーケンス600は、レイヤの異なる組み合わせを各々利用する多くの異なるOLS625を利用することによりコーディングすることができる。OLS625は各々、対応するOLS625を一意に識別するインデックスであるOLSインデックス629に関連づけられる。
HRD500において標準適合についてのマルチレイヤビデオシーケンス600をチェックすることは、レイヤ631~632及びOLS625の数に依存して複雑になる可能性がある。HRD500は、マルチレイヤビデオシーケンス600を、テストのために動作点627のシーケンスに分離してもよい。動作点627は、OLSインデックス629及び最高時間ID622により識別される、OLS625の時間サブセットである。特定の例として、第1の動作点627は、時間IDゼロから時間ID200までの第1のOLS625内の全てのピクチャを含むことができ、第2の動作点627は、時間ID201から時間ID400までの第1のOLS625内の全てのピクチャを含むことができる、などである。特定の時点にテストするために選択された動作点627は、テスト下のOP(ターゲットOp(targetOp))と呼ばれる。したがって、ターゲットOpは、HRD500で適合テストのために選択される動作点627である。
図7は、時間スケーラビリティに対して構成された一例示的なマルチレイヤビデオシーケンス700を示す概略図である。マルチレイヤビデオシーケンス700は、例えば、方法100に従って、コーデックシステム200及び/又はエンコーダ300などのエンコーダにより符号化され、コーデックシステム200及び/又はデコーダ400などのデコーダにより復号され得る。さらに、マルチレイヤビデオシーケンス700は、HRD500などのHRDにより標準適合についてチェックすることができる。マルチレイヤビデオシーケンス700は、コーディングビデオシーケンス内のレイヤについての別の例示的な適用を示すために含まれる。例えば、マルチレイヤビデオシーケンス700は、別個の実施形態として利用されてもよく、あるいはマルチレイヤビデオシーケンス600に関して記載される手法と組み合わせられてもよい。
マルチレイヤビデオシーケンス700は、サブレイヤ710、720、及び730を含む。サブレイヤは、特定の時間識別子値を有するVCL NALユニット(例えば、ピクチャ)と、関連づけられた非VCL NALユニット(例えば、サポートパラメータ)とを含む、時間スケーラブルビットストリームの時間スケーラブルレイヤである。サブレイヤ710は、ベースレイヤとして参照されてもよく、サブレイヤ720及び730は、エンハンスメントレイヤとして参照されてもよい。図示のように、サブレイヤ710は、毎秒30フレームなどの第1のフレームレートのピクチャ711を含む。サブレイヤ710は、サブレイヤ710がベース/最低フレームレートを含むため、ベースレイヤである。サブレイヤ720は、サブレイヤ710のピクチャ711から時間的にオフセットされているピクチャ721を含む。その結果、サブレイヤ710とサブレイヤ720を組み合わせることができ、これは、サブレイヤ710単体のフレームレートよりも集合的により高いフレームレートを結果としてもたらす。例えば、サブレイヤ710及び720は、毎秒60フレームの組み合わせフレームレートを有することができる。したがって、サブレイヤ720は、サブレイヤ710のフレームレートを強化する。さらに、サブレイヤ730は、サブレイヤ720及び710のピクチャ721及び711からさらに時間的にオフセットされているピクチャ731を含む。したがって、サブレイヤ730は、サブレイヤ710をさらに強化するために、サブレイヤ720及び710と組み合わせることができる。例えば、サブレイヤ710、720、及び730は、毎秒90フレームの組み合わせフレームレートを有することができる。
サブレイヤ表現740は、サブレイヤ710、720、及び/又は730を組み合わせることにより動的に作成することができる。サブレイヤ表現740は、特定のサブレイヤ及びより低いサブレイヤのNALユニットを含むビットストリームのサブセットである。図示の例では、サブレイヤ表現740は、サブレイヤ710、720、及び730の組み合わせられたピクチャ711、721、及び731であるピクチャ741を含む。したがって、マルチレイヤビデオシーケンス700は、サブレイヤ710、720、及び/又は730の所望のセットを含むサブレイヤ表現740を選択することにより、所望のフレームレートに時間的にスケーリングすることができる。サブレイヤ表現740は、レイヤとしてサブレイヤ710、720、及び/又は730を含むOLSを利用することにより作成されてもよい。このような場合、サブレイヤ表現740は、出力レイヤとして選択される。このように、時間スケーラビリティは、マルチレイヤメカニズムを使用して達成できるいくつかのメカニズムの1つである。
図8は、一例示的なビットストリーム800を示す概略図である。例えば、ビットストリーム800は、方法100に従って、コーデックシステム200及び/又はデコーダ400により復号するために、コーデックシステム200及び/又はエンコーダ300により生成することができる。さらに、ビットストリーム800は、マルチレイヤビデオシーケンス600及び/又は700を含んでもよい。さらに、ビットストリーム800は、HRD500などのHRDの動作を制御するための様々なパラメータを含んでもよい。そのようなパラメータに基づいて、HRDは、復号するデコーダに向けての送信の前に標準との適合についてビットストリーム800をチェックすることができる。
ビットストリーム800は、VPS811、1つ以上のSPS813、複数のピクチャパラメータセット(PPS)815、複数のスライスヘッダ817、画像データ820、BP SEIメッセージ819、PT SEIメッセージ818、及びDUI SEIメッセージ816を含む。VPS811は、ビットストリーム800全体に関連するデータを含む。例えば、VPS811は、ビットストリーム800で使用されるOLS、レイヤ、及び/又はサブレイヤに関連するデータを含んでもよい。SPS813は、ビットストリーム800に含まれるコーディングビデオシーケンス内の全てのピクチャに共通のシーケンスデータを含む。例えば、各レイヤは、1つ以上のコーディングビデオシーケンスを含むことができ、各コーディングビデオシーケンスは、対応するパラメータについてSPS813を参照することができる。SPS813内のパラメータは、ピクチャサイズ設定、ビット深度、コーディングツールパラメータ、ビットレート制限などを含むことができる。各シーケンスがSPS813を参照するが、いくつかの例において単一のSPS813が複数のシーケンスのためのデータを含んでもよいことに留意されたい。PPS815は、ピクチャ全体に適用されるパラメータを含む。したがって、ビデオシーケンス内の各ピクチャは、PPS815を参照することができる。各ピクチャがPPS815を参照するが、いくつかの例において単一のPPS815が複数のピクチャのためのデータを含んでもよいことに留意されたい。例えば、複数の類似のピクチャが、類似のパラメータに従ってコーディングされてもよい。このような場合、単一のPPS815は、このような類似のピクチャのためのデータを含むことができる。PPS815は、対応するピクチャ内のスライス、量子化パラメータ、オフセット等に利用可能なコーディングツールを示すことができる。
スライスヘッダ817は、ピクチャ内の各スライスに特有であるパラメータを含む。したがって、ビデオシーケンスにおいてスライスごとに1つのスライスヘッダ817が存在し得る。スライスヘッダ817は、スライスタイプ情報、POC、参照ピクチャリスト、予測重み、タイルエントリポイント、デブロッキングパラメータなどを含むことができる。いくつかの例において、ビットストリーム800は、単一ピクチャ内の全てのスライスに適用されるパラメータを含むシンタックス構造であるピクチャヘッダをさらに含んでもよいことに留意されたい。この理由のために、ピクチャヘッダとスライスヘッダ817は、いくつかの文脈で交換可能に使用されることがある。例えば、特定のパラメータを、そのようなパラメータがピクチャ内の全てのスライスに共通であるかどうかに依存して、スライスヘッダ817とピクチャヘッダとの間で移動してもよい。
画像データ820は、インター予測及び/又はイントラ予測に従って符号化されたビデオデータ、並びに対応する変換及び量子化された残差データを含む。例えば、画像データ820は、AU821、DU822、及び/又はピクチャ823を含んでもよい。AU821は、指定された分類ルールに従って互いに関連づけられ、1つの特定の出力時間に属する、NALユニットのセットである。DU822は、AU又はAUのサブセット、及び関連づけられた非VCL NALユニットである。ピクチャ823は、フレーム又はそのフィールドを作り出すルマサンプルのアレイ及び/又はクロマサンプルのアレイである。平易な言語では、AU821は、ビデオシーケンスにおいて指定された時点に表示され得る様々なビデオデータと、サポートするシンタックスデータを含む。したがって、AU821は、単一レイヤビットストリーム内の単一のピクチャ823、又は、マルチレイヤビットストリームにおいて同じ時点に全て関連づけられた複数のレイヤからの複数のピクチャを含んでもよい。一方、ピクチャ823は、表示のために出力され、又は出力のための他のピクチャ823のコーディングをサポートするために使用され得るコーディングされた画像である。DU822は、1つ以上のピクチャ823と、復号に必要とされる任意のサポートシンタックスデータとを含むことができる。例えば、DU822及びAU821は、簡素なビットストリームにおいて(例えば、AUが単一のピクチャを含むとき)交換可能に使用されてもよい。しかしながら、より複雑なマルチレイヤビットストリーム(例えば、マルチレイヤビデオシーケンス600を含むビットストリーム)では、DU822は、AU821からのビデオデータの一部のみを含むことができる。例えば、AU821は、いくつかのレイヤ(例えば、レイヤ631、632)及び/又はサブレイヤ(例えば、サブレイヤ710、720、730)にピクチャ823を含んでもよく、これにおいて、ピクチャ823の一部は、異なるOLSに関連づけられる。このような場合、DU822は、指定されたOLS及び/又は指定されたレイヤ/サブレイヤからのピクチャ823のみを含むことができる。
ピクチャ823は、1つ以上のスライス825を含む。スライス825は、単一のNALユニット829に排他的に含まれるピクチャ823の整数個の完全なタイル又は整数個の連続した完全なコーディングツリーユニット(CTU)行(例えば、タイル内)として定義され得る。スライス825は、さらに、CTU及び/又はコーディングツリーブロック(CTB)に分割される。CTUは、コーディングツリーによりパーティション化できる所定サイズのサンプルのグループである。CTBは、CTUのサブセットであり、CTUのルマ成分又はクロマ成分を含む。CTU/CTBは、さらに、コーディングツリーに基づいてコーディングブロックに分割される。次いで、コーディングブロックは、予測メカニズムに従って符号化/復号することができる。
ビットストリーム800は、NALユニット829のシーケンスである。NALユニット829は、ビデオデータ及び/又はサポートシンタックスのためのコンテナである。NALユニット829は、VCL NALユニット又は非VCL NALユニットとすることができる。VCL NALユニットは、コーディングスライス825及び関連づけられたスライスヘッダ817などのビデオデータを含むようにコーディングされたNALユニット829である。非VCL NALユニットは、ビデオデータの復号、適合チェックの実行、又は他の動作をサポートするシンタックス及び/又はパラメータなどの非ビデオデータを含むNALユニット829である。例えば、非VCL NALユニットは、VPS811、SPS813、PPS815、BP SEIメッセージ819、PT SEIメッセージ818、DUI SEIメッセージ816、又は他のサポートシンタックスを含むことができる。
ビットストリーム800は、HRD500などのHRDによる適合テストをサポートする1つ以上のSEIメッセージを含むことができる。SEIメッセージは、復号されたピクチャ内のサンプルの値を決定するために復号プロセスにより必要とされない情報を伝達する、指定されたセマンティクスを有するシンタックス構造である。例えば、SEIメッセージは、HRDプロセスをサポートするためのデータ、又はデコーダでビットストリーム800を復号することに直接関連しない他のサポートデータを含んでもよい。例えば、ビットストリーム800は、BP SEIメッセージ819、PT SEIメッセージ818、及びDUI SEIメッセージ816を含んでもよい。
BP SEIメッセージ819は、HRDを初期化してCPBを管理するためのHRDパラメータ870を含むSEIメッセージである。例えば、BP SEIメッセージ819は、ビットストリーム800に対して適合テストを実行するときに採用され得る、CPB配信スケジュール561などのCPB配信スケジュールを記述するデータを含んでもよい。配信スケジュールは、配信スケジュールのタイミング(例えば、どれほどの頻度でデータを除去するか)を記述する値と、転送されるデータの量(例えば、どれほど多くのデータを各発生において除去するか)を記述する値とのペアにより、記述されてもよい。BP SEIメッセージ819は、適合チェックの開始点であるべきAU又はDU(例えば、AU821又はDU822)と、各データユニットに使用すべきデフォルトスケジュールを示すデータペアを示す。特定の例において、BP SEIメッセージ819は、初期CPB除去遅延837と、初期CPB除去オフセット839を含むことができる。初期CPB除去遅延837は、ビットストリーム、OLS、及び/又はレイヤ内の各ピクチャ、AU、及び/又はDUに対するデフォルトCPB除去遅延である。初期CPB除去オフセット839は、ビットストリーム、OLS及び/又はレイヤ内の各ピクチャ、AU、及び/又はDUに関連づけられたデフォルトCPB除去オフセットである。初期CPB除去遅延837と初期CPB除去オフセット839のペアを利用することにより、HRDは、適合テストの間にCPBからデータユニット(AU又はDU)を除去するときに使用すべきCPB配信スケジュールを決定することができる。
一実施形態において、BP SEIメッセージ819は、BP SEIメッセージ819内に初期CPB除去遅延837及び初期CPB除去オフセット839が示される時間サブレイヤの最大数841を含む。この時間サブレイヤの最大数841は、bp_max_sublayers_minus1に指定される。bp_max_sublayers_minus1の値は、0から、vps_max_sublayers_minus1に指定される、VPS811内に指定されるサブレイヤの最大数843の範囲内であり、始めと終わりを含む(inclusive)ものとする。vps_max_sublayers_minus1に1を加えた値は、VPS811により指定されたレイヤに存在し得る時間サブレイヤの最大数を指定する。vps_max_sublayers_minus1の値は、0~6の範囲内であり、始めと終わりを含むものとする。
PT SEIメッセージ818は、CPB及び/又はDPBにおけるAUについての配信情報を管理するためのHRDパラメータ880(ピクチャレベルのCPBパラメータとしても知られる)を含むSEIメッセージである。例えば、PT SEIメッセージ818は、対応するAUに対してHRD適合テストを実施する際の使用のためのさらなるパラメータを含んでもよい。特定の例において、PT SEIメッセージ818は、CPB除去遅延835及びDPB出力遅延833を含むことができる。CPB除去遅延835は、対応するカレントAUが除去及びDPBへの出力の前にCPB内に残ることができる時間の期間である。例えば、先行するAUがBP SEIメッセージ819に関連づけられている場合に、復号順序においてカレントAU及び先行するAUの除去の間のクロックティックの数を計算するために、CPB除去遅延835が使用されてもよい。したがって、CPB除去遅延835は、カレントAUに対する除去遅延が、BP SEIメッセージ819内の初期CPB除去遅延837により記述されるデフォルト除去遅延と異なることを示す。さらに、CPB除去遅延835は、デフォルト値からのカレントAUに対する除去遅延の差の値を含む。DPB出力遅延833は、対応するAUが出力の前にDPB内に残ることができる時間の期間を記述する情報である。具体的には、DPB出力遅延833は、DPBからのピクチャの出力時間を、したがって、ピクチャ/AUがCPBからの除去の後にDPB内に残ることができる時間の量を決定するために利用されてもよい。HRDにおける出力時間は、デコーダにおける表示のためのピクチャの期待される出力に対応する。
一実施形態において、PT_SEIメッセージ818は、pt_du_common_cpb_removal_delay_increment_minus1に指定される、共通CPB除去遅延増分845を含む。共通CPB除去遅延増分845に1を加えた値は、Htid iがiに等しいときにピクチャタイミングSEIメッセージ818に関連づけられたAU(例えば、AU821)内の復号順序における任意の2つの連続したDU(例えば、DU822)の名目上のCPB除去時間の間の、クロックサブティック(clock sub-ticks)の単位の継続時間を指定し、これにおいて、Htidは、復号される最も高い時間サブレイヤを識別する。この値は、さらに、仮想ストリームスケジューラ(HSS)のためのCPBへの復号ユニットデータの到着の最も早い可能な時間を計算するために使用される。このシンタックス要素の長さは、du_cpb_removal_delay_increment_length_minus1+1ビットである。
一実施形態において、PT SEIメッセージ818は、pt_num_decoding_units_minus1に指定される、復号ユニットの数847を含む。復号ユニットの数847に1を加えた値は、ピクチャタイミングSEIメッセージ818が関連づけられたAU(例えば、AU821)内のDU(例えば、DU822)の数を指定する。num_decoding_units_minus1の値は、0~PicSizeInCtbsY-1の範囲内であり、始めと終わりを含むものとする。一実施形態において、PicSizeInCtbsYシンタックス要素は、CTBに測定されたピクチャのサイズ(例えば、CTBで測定されたピクチャの幅×CTBで測定されたピクチャの高さ)を表す。
一実施形態において、PT SEIメッセージ818は、PT SEIメッセージ81が関連づけられたAUのi番目のDU内のNALユニットの数849を含む。NALユニットの数849は、pt_num_nalus_in_du_minus1[i]として指定される。pt_num_nalus_in_du_minus1[i]の値は、0~PicSizeInCtbsY-1の範囲であり、始めと終わりを含むものとする。
一実施形態において、PT SEIメッセージ818は、pt_du_common_cpb_removal_delay_flagとして指定される、共通CPB除去遅延フラグ851を含む。1に等しい共通CPB除去遅延フラグ851は、pt_du_common_cpb_removal_delay_increment_minus1[i])として指定されるシンタックス要素の共通CPB除去遅延増分845がPT_SEIメッセージ818に存在することを指定する。0に等しいDU共通CPB除去遅延フラグ851は、シンタックス要素の共通CPB除去遅延増分845が存在しないことを指定する。PT SEIメッセージ818に存在しないとき、共通CPB除去遅延フラグ851は、0に等しいように推論される。
一実施形態において、AUの第1のDUは、AU内の復号順序における最初のpt_num_nalus_in_du_minus1[0]+1個の連続したNALユニットである。AUのi番目の(iは0より大きい)DUは、復号順序における、AUの前のDU内の最後のNALユニットの直後のpt_num_nalus_in_du_minus1[i]+1個の連続したNALユニットである。一実施形態において、各DU内に少なくとも1つのVCL NALユニットがあり、VCL NALユニットに関連づけられた全ての非VCL NALユニットは、VCL NALユニットと同じDU内に含まれる。
一実施形態において、PT_SEIメッセージ818は、pt_du_cpb_removal_delay_increment_minus1に指定される、CPB除去遅延増分853を含む。CPB除去遅延増分853に1を加えた値は、Htidがjに等しいときにPT SEIメッセージ818に関連づけられたAU内の復号順序における、(i+1)番目のDUの名目上のCPB除去時間とi番目のDUの名目上のCPB除去時間との間の、クロックサブティックの単位の継続時間を指定する。この値は、さらに、HSSのためのCPBへのDUデータの到着の最も早い可能な時間を計算するために使用される。このシンタックス要素の長さは、bp_du_cpb_removal_delay_increment_length_minus1+1ビットである。
一実施形態において、PT SEIメッセージ818は、VPS811の代わりに、又はVPS811に追加で、サブレイヤの最大数843を含む。
DUI SEIメッセージ816は、CPB及び/又はDPBにおけるDUについての配信情報を管理するためのHRDパラメータ890(ピクチャレベルのCPBパラメータとしても知られる)を含むSEIメッセージである。例えば、DUI SEIメッセージ816は、対応するDUに対するHRD適合テストを実行する際の使用のためのさらなるパラメータを含んでもよい。上述のように、AUは1つ以上のDUを含むことがある。したがって、DUをチェックするための情報は、AUをチェックするための情報と異なる可能性がある。特定の例として、DUI SEIメッセージ816は、CPB除去遅延情報831を含んでもよい。CPB除去遅延情報831は、CPBからの対応するDUの除去に関する情報である。例えば、CPB除去遅延情報831は、復号順序におけるカレントDUと先行するDUとの除去の間のクロックティックの数を計算するために使用されてもよい。
一実施形態において、DUI SEIメッセージ816は、BP SEIメッセージ819内に初期CPB除去遅延837及び初期CPB除去オフセット839が示される時間サブレイヤの最大数841を含む。この時間サブレイヤの最大数841は、bp_max_sublayers_minus1に指定される。bp_max_sublayers_minus1の値は、0から、vps_max_sublayers_minus1に指定される、VPS811内に指定されるサブレイヤの最大数843の範囲内であり、始めと終わりを含むものとする。vps_max_sublayers_minus1に1を加えた値は、VPS811により指定されたレイヤに存在し得る時間サブレイヤの最大数を指定する。vps_max_sublayers_minus1の値は、0~6の範囲内であり、始めと終わりを含むものとする。
一実施形態において、DUI SEIメッセージ816は、VPS811の代わりに、又はVPS811に追加で、サブレイヤの最大数843を含む。
前述の説明により理解できるように、BP SEIメッセージ819、PT SEIメッセージ818、及びDUI SEIメッセージ816は、相当量の情報を含む。一実施形態において、PT SEIメッセージ818及び/又はDUI SEIメッセージ816におけるHRDパラメータ880及び/又は890(ピクチャレベルのCPBパラメータとしても知られる)は、ビットストリーム適合についてテストするために、サブレイヤ上のDUベースのHRD動作を実行するために使用される。
例として、HRDは、各レイヤについて、ピクチャタイミングSEIメッセージに関連づけられたアクセスユニット内の復号順序における、任意の2つの連続した復号ユニットの名目上のCPB除去時間の間の、PT SEIメッセージ818及び/又はDUI SEIメッセージ816に指定された継続時間が、超えられているかどうかを決定する。継続時間が超えられているとき、ビットストリームは適合せず、改訂されたCPBパラメータを有する新しいビットストリームがエンコーダにより生成され、テストされる。このプロセスは、継続時間が超えられなくなるまで繰り返してもよく、これは、ビットストリームが標準(例えば、VVC標準)に適合することを意味する。
HRDは、さらに、各レイヤについて、ピクチャタイミングSEIメッセージに関連づけられたアクセスユニット内の復号順序における、(i+1)番目の復号ユニットのCPB除去時間とi番目の復号ユニットのCPB除去時間との間の、PT SEIメッセージ818及び/又はDUI SEIメッセージ816に指定された継続時間が、超えられているかどうかを決定することができる。継続時間が超えられているとき、ビットストリームは適合せず、改訂されたCPBパラメータを有する新しいビットストリームがエンコーダにより生成され、テストされる。このプロセスは、継続時間が超えられなくなるまで繰り返してもよく、これは、ビットストリームが標準(例えば、VVC標準)に適合することを意味する。
ひとたび適合ビットストリームが得られると、そのビットストリームは記憶され、デコーダに向けて通信され得る。一実施形態において、BP SEIメッセージ819、PT SEIメッセージ818、及びDUI SEIメッセージ816は、デコーダがビットストリームに含まれるピクチャいずれかを復号する際にこの情報を使用しない可能性があるとしても、ビットストリームに含まれたままである。
ビットストリーム適合についてビットストリーム内のサブレイヤをテストするためにDUベースのHRD動作を使用するHRDの一例示的な実装は、以下のシンタックス及びセマンティクスで提供される。
ピクチャタイミングSEIメッセージシンタックスは以下のとおりである。
ピクチャタイミングSEIメッセージのセマンティクスの一例は、以下のとおりである。
ピクチャタイミングSEIメッセージは、SEIメッセージに関連づけられたアクセスユニットについてのCPB除去遅延及びDPB出力遅延情報を提供する。
num_decoding_units_minus1に1を加えた値は、ピクチャタイミングSEIメッセージが関連づけられたアクセスユニット内の復号ユニットの数を指定する。num_decoding_units_minus1の値は、0~PicSizeInCtbsY-1の範囲内であり、始めと終わりを含むものとする。
1に等しいdu_common_cpb_removal_delay_flagは、シンタックス要素du_common_cpb_removal_delay_increment_minus1[i]が存在することを指定する。0に等しいdu_common_cpb_removal_delay_flagは、シンタックス要素du_common_cpb_removal_delay_increment_minus1[i]が存在しないことを指定する。
du_common_cpb_removal_delay_increment_minus1[i]に1を加えた値は、Htid iがiに等しいときにピクチャタイミングSEIメッセージに関連づけられたアクセスユニット内の復号順序における任意の2つの連続した復号ユニットの名目上のCPB除去時間の間の、クロックサブティックの単位(節C.1を参照)の継続時間を指定する。この値は、さらに、VVC標準のアネックスCに規定されるように、HSSのためのCPBへの復号ユニットデータの到着の最も早い可能な時間を計算するために使用される。このシンタックス要素の長さは、du_cpb_removal_delay_increment_length_minus1+1ビットである。
num_nalus_in_du_minus1[i]に1を加えた値は、ピクチャタイミングSEIメッセージが関連づけられたアクセスユニットのi番目の復号ユニット内のNALユニットの数を指定する。num_nalus_in_du_minus1[i]の値は、0~PicSizeInCtbsY-1の範囲内であり、始めと終わりを含むものとする。
アクセスユニットの最初の復号ユニットは、アクセスユニット内の復号順序における最初num_nalus_in_du_minus1[0]+1個の連続したNALユニットを含む。アクセスユニットのi番目の(iは0より大きい)復号ユニットは、復号順序における、アクセスユニットの前の復号ユニット内の最後のNALユニットの直後のnum_nalus_in_du_minus1[i]+1個の連続したNALユニットを含む。各復号ユニット内に少なくとも1つのVCL NALユニットがあるものとする。VCL NALユニットに関連づけられた全ての非VCL NALユニットは、VCL NALユニットと同じ復号ユニットに含まれるものとする。
du_cpb_removal_delay_increment_minus1[i][j]に1を加えた値は、Htid iがj等しいときにピクチャタイミングSEIメッセージに関連づけられたアクセスユニット内の復号順序における、(i+1)番目の復号ユニットの名目上のCPB除去時間とi番目の復号ユニットの名目上のCPB除去時間との間の、クロックサブティックの単位の継続時間を指定する。この値は、さらに、VVC標準のアネックスCに規定されるように、HSSのためのCPBへの復号ユニットデータの到着の最も早い可能な時間を計算するために使用される。このシンタックス要素の長さは、du_cpb_removal_delay_increment_length_minus1+1ビットである
一例示的な復号ユニット情報SEIメッセージシンタックスは、以下のとおりである。
ピクチャタイミングSEIメッセージセマンティクスの一例は、以下のとおりである。
復号ユニット情報SEIメッセージは、SEIメッセージに関連づけられた復号ユニットについてのCPB除去遅延情報を提供する。
以下は、復号ユニット情報SEIメッセージシンタックス及びセマンティクスに適用される。
- シンタックス要素decoding_unit_hrd_params_present_flag、decoding_unit_cpb_params_in_pic_timing_sei_flag、及びdpb_output_delay_du_length_minus1、並びに変数CpbDpbDelaysPresentFlagは、復号ユニット情報SEIメッセージが適用される動作点のうちの少なくとも1つに適用可能であるgeneral_hrd_parameters()シンタックス構造内のシンタックス要素内で見つかり、あるいは該シンタックス要素から導出される。
- ビットストリーム(又は、その一部)は、復号ユニット情報SEIメッセージが適用される動作点のいずれかに関連づけられたビットストリームサブセット(又は、その一部)を参照する。
動作点に対する復号ユニット情報SEIメッセージの存在は、以下のとおり指定される。
- CpbDpbDelaysPresentFlagが1に等しく、decoding_unit_hrd_params_present_flagが1に等しく、decoding_unit_cpb_params_in_pic_timing_sei_flagが0に等しい場合、動作点に適用可能な1つ以上の復号ユニット情報SEIメッセージは、CVS内の各復号ユニットに関連づけられるものとする。
- そうでない場合、CpbDpbDelaysPresentFlagが1に等しく、decoding_unit_hrd_params_present_flagが1に等しく、decoding_unit_cpb_params_in_pic_timing_sei_flagが1に等しい場合、動作点に適用可能な1つ以上の復号ユニット情報SEIメッセージは、CVS内の各復号ユニットに関連づけられても又はそうでなくてもよい。
- そうでない場合(CpbDpbDelaysPresentFlagが0に等しく、又はdecoding_unit_hrd_params_present_flagが0に等しい)、CVSには、動作点に適用可能な1つ以上の復号ユニット情報SEIメッセージに関連づけられた復号ユニットがないものとする。
復号ユニット情報SEIメッセージに関連づけられたNALユニットのセットは、復号ユニット情報SEIメッセージを含むSEI NALユニットと、異なる値のdecoding_unit_idxを有する復号ユニット情報SEIメッセージを含む後続のSEI NALユニットまでのアクセスユニット内の全ての後続NALユニットを、復号順序で含む。各復号ユニットは、少なくとも1つのVCL NALユニットを含むものとする。VCL NALユニットに関連づけられた全ての非VCL NALユニットは、VCL NALユニットを含む復号ユニットに含まれるものとする。
復号ユニット情報SEIメッセージシンタックスのTemporalIdは、復号ユニット情報SEIメッセージを含むSEI NALユニットのTemporalIdである。
decoding_unit_idxは、復号ユニット情報SEIメッセージに関連づけられた復号ユニットの、カレントアクセスユニット内の復号ユニットのリストに対する、0から開始するインデックスを指定する。decoding_unit_idxの値は、0~PicSizeInCtbsY-1の範囲内であり、始めと終わりを含むものとする。
duIdxの特定の値により識別される復号ユニットは、duIdxに等しいdecoding_unit_idxを有する全ての復号ユニット情報SEIメッセージに関連づけられた全てのNALユニットを含み、該NALユニットのみを含む。このような復号ユニットは、duIdxに等しいdecoding_unit_idxを有する復号ユニット情報SEIメッセージと関連づけられたものとして参照される。
duIdxA及びduIdxBそれぞれに等しいdecoding_unit_idxを有する1つのアクセスユニット内の任意の2つの復号ユニットduA及びduBについて、duIdxAがduIdxBより小さい場合、duAは、復号順序においてduBの前に来るものとする。
1つの復号ユニットのNALユニットは、復号順序において、別の復号ユニットの任意の2つのNALユニットの間に存在しないものとする。
dui_max_sub_layers_minus1に1を加えた値は、復号ユニット情報SEIメッセージにCPB除去遅延情報が含まれる最高サブレイヤ表現のTemporalIdを指定する。dui_max_sub_layers_minus1の値は、0~vps_max_sub_layers_minus1の範囲内であり、始めと終わりを含むものとする。
du_spt_cpb_removal_delay_increment[i]は、カレントアクセスユニット内の復号順序における最後の復号ユニットの名目上のCPB時間と、Htid iがiに等しいときに復号ユニット情報SEIメッセージに関連づけられた復号ユニットの名目上のCPB時間との間の、クロックサブティックの単位の継続時間を指定する。この値は、さらに、アネックスCに規定されるように、HSSのためのCPBへの復号ユニットデータの到着の最も早い可能な時間を計算するために使用される。このシンタックス要素の長さは、du_cpb_removal_delay_increment_length_minus1+1である。復号ユニット情報SEIメッセージに関連づけられた復号ユニットが、カレントアクセスユニット内の最後の復号ユニットであるとき、du_spt_cpb_removal_delay_increment[i]の値は、0に等しいものとする。
1に等しいdpb_output_du_delay_present_flagは、復号ユニット情報SEIメッセージにおけるpic_spt_dpb_output_du_delayシンタックス要素の存在を指定する。0に等しいdpb_output_du_delay_present_flagは、復号ユニット情報SEIメッセージにpic_spt_dpb_output_du_delayシンタックス要素がないことを指定する。
pic_spt_dpb_output_du_delayは、DecodingUnitHrdFlagが1に等しいとき、ピクチャのDPB出力時間を計算するために使用される。これは、復号されたピクチャがDPBから出力される前に、CPBからのアクセスユニット内の最後の復号ユニットの除去の後、いくつのサブクロックティックを待つべきかを指定する。存在しないとき、pic_spt_dpb_output_du_delayの値は、pic_dpb_output_du_delayに等しいように推論される。シンタックス要素pic_spt_dpb_output_du_delayの長さは、dpb_output_delay_du_length_minus1+1によりビット単位で与えられる。
同じアクセスユニットに関連づけられ、同じ動作点に適用され、1に等しいdpb_output_du_delay_present_flagを有する全ての復号ユニット情報SEIメッセージが、同じ値のpic_spt_dpb_output_du_delayを有すものとすることは、ビットストリーム適合の要件である。
出力タイミング適合デコーダから出力されるピクチャのpic_spt_dpb_output_du_delayから導出される出力時間は、復号順序において後続のCVS内の全てのピクチャのpic_spt_dpb_output_du_delayから導出される出力時間の前に来るものとする。
このシンタックス要素の値により確立されるピクチャ出力順序は、PicOrderCntValの値により確立されるのと同じ順序であるものとする。
ピクチャが、1に等しいか又は1に等しいように推論されるno_output_of_prior_pics_flagを有するCLVSSピクチャより復号順序において前に来るため、「バンピング(bumping)」プロセスにより出力されないこうしたピクチャについて、pic_spt_dpb_output_du_delayから導出される出力時間は、同じCVS内の全てのピクチャに対するPicOrderCntValの値の増加とともに増加するものとする。
CVS内の任意の2つのピクチャについて、DecodingUnitHrdFlagが1に等しいときの2つのピクチャの出力時間の間の差は、DecodingUnitHrdFlagが0に等しいときの同じ差と同一であるものとする。
図9は、ビデオデコーダ(例えば、ビデオデコーダ400)により実施される復号の方法900の一実施形態である。方法900は、ビットストリームがビデオエンコーダ(例えば、ビデオエンコーダ300)から直接又は間接的に受信された後に実行されてもよい。方法900は、サブレイヤ上でDUベースのHRD動作を実行するために使用されるピクチャレベルのコーディングピクチャバッファ(CPB)パラメータが補足エンハンスメント情報(SEI)メッセージに含まれることを保証することにより、復号プロセスを改善する。ピクチャレベルのCPBパラメータがSEIメッセージに含まれるため、HRDは、DUベースのHRD動作を使用して、ビットストリーム適合についてビットストリーム内のサブレイヤをテストすることができ、これは、サブレイヤが適切にコーディングされ、及び/又は適切に復号可能であることを保証する。したがって、ビデオコーディングにおけるコーダ/デコーダ(「コーデック」としても知られる)は、現在のコーデックと比較して改善される。実際問題として、改善されたビデオコーディングプロセスは、ビデオが送信、受信、及び/又は視聴されるとき、ユーザにより良いユーザ体験を提供する。
ブロック902において、ビデオデコーダが、コーディングピクチャとSEIメッセージとを含むビットストリームを受信する。SEIメッセージは、サブレイヤ(例えば、サブレイヤ710、720、730)上のDUベースのHRD動作を実行するために使用されるCPBパラメータ(例えば、ピクチャレベルのCPBパラメータとして参照されるHRDパラメータ880及び/又は890)を含む。DU822などのDUに対応するDUベースのHRD動作は、AU821などのAUに対応するAUベースのHRD動作とは異なる。上述のように、DUベースのHRD動作は、ビットストリーム適合のために、マルチレイヤビデオシーケンス600及び/又はマルチレイヤビデオシーケンス700を含むビットストリーム800などのビットストリームについてテストする目的で、HRD(例えば、HRD500)により実施される。
一実施形態において、CPBパラメータは、2つの復号ユニットのCPB除去時間の間の継続時間を指定する。一実施形態において、SEIメッセージは、ピクチャタイミング(PT)SEIメッセージである。一実施形態において、CPBパラメータは、PT SEIメッセージに関連づけられたAUのための共通CPB除去遅延及びCPB除去遅延を含む。
一実施形態において、SEIメッセージは、PT SEIメッセージであって、該PT SEIメッセージに関連づけられたAU内の復号ユニットの数を指定する、PT SEIメッセージである。一実施形態において、SEIメッセージは、PT SEIメッセージであって、該PT SEIメッセージに関連づけられたAUのDU内のNALユニットの数を指定する、PT SEIメッセージである。本明細書で用いられるとき、最も高いサブレイヤは、ベースレイヤ(例えば、サブレイヤ710)から最も離れたエンハンスメントレイヤ(例えば、サブレイヤ730)である。
一実施形態において、SEIメッセージは、復号ユニット情報(DUI)SEIメッセージであって、該DUI SEIメッセージを含むSEI NALユニットの時間IDを提供する、DUI SEIメッセージである。一実施形態において、時間IDは、DUI SEIメッセージにCPB除去遅延情報が含まれる最も高いサブレイヤを指定する。
ブロック904において、ビデオデコーダは、ビットストリームからコーディングピクチャを復号して、復号ピクチャを取得する。その後、復号ピクチャは、電子デバイス(例えば、スマートフォン、タブレット、ラップトップ、パーソナルコンピュータなど)のディスプレイ又は画面上でのユーザに対する表示のために画像又はビデオシーケンスを生成又は作成するために使用され得る。一実施形態において、PT SEIメッセージ818及び/又はDUI SEIメッセージ816に含まれるピクチャレベルのCPBパラメータは、コーディングピクチャを復号する際に使用されない。
図10は、ビデオエンコーダ(例えば、ビデオエンコーダ300)により実施されるビデオビットストリームを符号化する方法1000の一実施形態である。方法1000は、ピクチャ(例えば、ビデオからの)がビデオビットストリームに符号化され、ビデオデコーダ(例えば、ビデオデコーダ400)に向けて送信されるべきときに実行されてもよい。方法1000は、サブレイヤ上のDUベースのHRD動作を実行するために使用されるピクチャレベルのコーディングピクチャバッファ(CPB)パラメータが補足エンハンスメント情報(SEI)メッセージに含まれることを保証することにより、符号化プロセスを改善する。ピクチャレベルのCPBパラメータがSEIメッセージに含まれるため、HRDは、DUベースのHRD動作を使用して、ビットストリーム適合についてビットストリーム内のサブレイヤをテストすることができ、これは、サブレイヤが適切にコーディングされ、及び/又は適切に復号可能であることを保証する。したがって、ビデオコーディングにおけるコーダ/デコーダ(「コーデック」としても知られる)は、現在のコーデックと比較して改善される。実際問題として、改善されたビデオコーディングプロセスは、ビデオが送信、受信、及び/又は視聴されるとき、ユーザにより良いユーザ体験を提供する。
ブロック1002において、ビデオエンコーダが、コーディングピクチャとSEIメッセージとを含むビットストリームを生成する。SEIメッセージは、サブレイヤ(例えば、サブレイヤ710、720、730)上のDUベースのHRD動作を実行するために使用されるCPBパラメータ(例えば、ピクチャレベルのCPBパラメータとして参照されるHRDパラメータ880及び/又は890)を含む。DU822などのDUに対応するDUベースのHRD動作は、AU821などのAUに対応するAUベースのHRD動作とは異なる。上述のように、DUベースのHRD動作は、ビットストリーム適合のために、マルチレイヤビデオシーケンス600及び/又はマルチレイヤビデオシーケンス700を含むビットストリーム800などのビットストリームについてテストする目的で、HRD(例えば、HRD500)により実施される。
一実施形態において、CPBパラメータは、2つの復号ユニットのCPB除去時間の間の継続時間を指定する。一実施形態において、SEIメッセージは、ピクチャタイミング(PT)SEIメッセージである。一実施形態において、CPBパラメータは、PT SEIメッセージに関連づけられたアクセスユニット(AU)のための共通CPB除去遅延及びCPB除去遅延を含む。一実施形態において、PT SEIメッセージは、PT SEIメッセージに関連づけられたAU内の復号ユニットの数と、PT SEIメッセージに関連づけられたAUの復号ユニット(DU)内のネットワーク抽象化レイヤ(NAL)ユニットの数とを指定する。
一実施形態において、SEIメッセージは、復号ユニット情報(DUI)SEIメッセージであって、該DUI SEIメッセージを含むSEI NALユニットの時間識別子(ID)を提供する、DUI SEIメッセージである。一実施形態において、DUI SEIメッセージは、DUI SEIメッセージにCPB除去遅延情報が含まれる最も高いサブレイヤの時間識別子(ID)を指定する。
ブロック1004において、ビデオエンコーダが、CPBパラメータを使用してサブレイヤ上のDUベースのHRD動作を実行して、ビットストリームが適合しているかどうかを決定する。
一実施形態において、ビットストリームは、CPB除去時間の間の継続時間が超えられていないとき、適合している。
ブロック1006において、ビデオエンコーダが、DUベースのHRD動作の実行に基づいてビットストリームが適合しているとき、ビデオデコーダに向けての通信のためにビットストリームを記憶する。ビットストリームは、ビットストリームがビデオデコーダに向けて送信されるまで、メモリに記憶されてもよい。ひとたびビデオデコーダにより受信されると、符号化されたビットストリームを復号して(例えば、上述のように)、電子デバイス(例えば、スマートフォン、タブレット、ラップトップ、パーソナルコンピュータなど)のディスプレイ又は画面上でのユーザに対する表示のために画像又はビデオシーケンスを生成又は作成することができる。
図11は、本開示の一実施形態によるビデオコーディングデバイス1100(例えば、ビデオエンコーダ300又はビデオデコーダ400)の概略図である。ビデオコーディングデバイス1100は、本明細書に記載される開示の実施形態を実施するのに適する。ビデオコーディングデバイス1100は、データを受信するための入口ポート1110及び受信器ユニット(Rx)1120と、データを処理するためのプロセッサ、論理ユニット、又は中央処理装置(CPU)1130と、データを送信するための送信器ユニット(Tx)1140及び出口ポート1150と、データを記憶するためのメモリ1160を含む。さらに、ビデオコーディングデバイス1100は、光又は電気信号が出る又は入るために、入口ポート1110、受信器ユニット1120、送信器ユニット1140、及び出口ポート1150に結合された光対電気(optical-to-electrical、OE)コンポーネント及び電気対光(electrical-to-optical、EO)コンポーネントを含んでもよい。
プロセッサ1130は、ハードウェア及びソフトウェアにより実現される。プロセッサ1130は、1つ以上のCPUチップ、コア(例えば、マルチコアプロセッサとして)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、及びデジタル信号プロセッサ(DSP)として実現されてもよい。プロセッサ1130は、入口ポート1110、受信器ユニット1120、送信器ユニット1140、出口ポート1150、及びメモリ1160と通信する。プロセッサ1130は、コーディングモジュール1170を含む。コーディングモジュール1170は、上述の開示された実施形態を実施する。例えば、コーディングモジュール1170は、様々なコーデック機能を実現し、処理し、準備し、あるいは提供する。したがって、コーディングモジュール1170を含めることは、ビデオコーディングデバイス1100の機能性に対する実質的な改善を提供し、ビデオコーディングデバイス1100の異なる状態への変換をもたらす。あるいは、コーディングモジュール1170は、メモリ1160に記憶される命令として実現され、プロセッサ1130により実行される。
ビデオコーディングデバイス1100は、さらに、ユーザとの間でデータを通信するための入力及び/又は出力(I/O)デバイス1180を含んでもよい。I/Oデバイス1180は、ビデオデータを表示するためのディスプレイ、オーディオデータを出力するためのスピーカなどの出力デバイスを含んでもよい。I/Oデバイス1180は、さらに、キーボード、マウス、トラックボールなどの入力デバイス、及び/又はそのような出力デバイスと対話するための対応するインターフェースを含んでもよい。
メモリ1160は、1つ以上のディスク、テープドライブ、及びソリッドステートドライブを含み、オーバーフローデータ記憶デバイスとして使用されて、プログラムが実行のために選択されたときにそのようなプログラムを記憶し、プログラムの実行の間に読み出される命令及びデータを記憶してもよい。メモリ1160は、揮発性及び/又は不揮発性でもよく、読取専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、三値連想メモリ(ternary content-addressable memory、TCAM)、及び/又はスタティックランダムアクセスメモリ(SRAM)でもよい。
図12は、コーディングする手段1200の一実施形態の概略図である。一実施形態において、コーディングする手段1200は、ビデオコーディングデバイス1202(例えば、ビデオエンコーダ300又はビデオデコーダ400)内に実装される。ビデオコーディングデバイス1202は、受信手段1201を含む。受信手段1201は、符号化すべきピクチャを受信し、又は復号すべきビットストリームを受信するように構成される。ビデオコーディングデバイス1202は、受信手段1201に結合された送信手段1207を含む。送信手段1207は、ビットストリームをデコーダに送信し、又は復号画像を表示手段(例えば、I/Oデバイス1180の1つ)に送信するように構成される。
ビデオコーディングデバイス1202は、記憶手段1203を含む。記憶手段1203は、受信手段1201又は送信手段1207のうちの少なくとも1つに結合される。記憶手段1203は、命令を記憶するように構成される。ビデオコーディングデバイス1202は、処理手段1205をさらに含む。処理手段1205は、記憶手段1203に結合される。処理手段1205は、本明細書に開示される方法を実行するために、記憶手段1203に記憶された命令を実行するように構成される。
さらに、本明細書に記載された例示的な方法のステップは必ずしも記載された順序で実施される必要はなく、そのような方法のステップの順序は単に例示的なものであると理解されるべきであることを理解されたい。同様に、このような方法にさらなるステップが含まれてもよく、特定のステップが本開示の様々な実施形態と矛盾しない方法において省略され、又は組み合わせられてもよい。
本開示においていくつかの実施形態が提供されたが、開示されたシステム及び方法は、本開示の主旨又は範囲から逸脱することなく多くの他の特定の形態で具現化され得ることを理解されたい。本例は、限定的なものでなく例示的なものとみなされるべきであり、その意図は、本明細書に与えられた詳細に限定されるべきではない。例えば、様々な要素又はコンポーネントが組み合わせられ、又は別のシステムに統合されてもよく、あるいは特定の特徴が省略されてもよく、又は実現されなくてもい。
さらに、様々な実施形態において個別又は別個として記載及び例示された手法、システム、サブシステム、及び方法は、本開示の範囲から逸脱することなく組み合わせられ、あるいは他のシステム、モジュール、手法、又は方法と統合され得る。互いに結合され、又は直接結合され、又は通信するものとして示され又は論じられた他のアイテムは、電気的か、機械的か、又はその他の方法でかに関わらず、何らかのインターフェース、デバイス、又は中間コンポーネントを介して間接的に結合され、あるいは通信してもよい。変更、置換、及び改変の他の例が当業者により確認可能であり、本明細書に開示された主旨及び範囲から逸脱することなくなされ得る。