〔実施形態1〕
メッセージを送信するための電子装置を記載する。当該電子装置は、プロセッサと該プロセッサと電子的に通信するメモリに保存された指示とを含んでいる。符号化画像バッファ(CPB)がサブピクチャレベルの動作をサポートする場合、上記電子装置は、画像タイミング付加エンハンスメント情報(SEI)メッセージに共通復合化ユニットCPB削除遅延パラメータ(removal delay parameter)を含むべきかを決定する。また、上記共通復号化ユニットCPB削除遅延パラメータが、画像タイミングSEIメッセージ(または、例えば、画像パラメータセット、シーケンスパラメータセット、映像パラメータセットまたは適応パラメータセットのような他の何らかのSEIメッセージまたは他の何らかのパラメータセット)に含まれるべきである場合、上記電子装置は、上記共通復号化ユニットCPB削除遅延パラメータを生成する。ここで、上記共通復号化ユニットCPB削除遅延パラメータは、上記CPBからのアクセスユニットにおける全復号化ユニットに適用できる。また、上記共通復号化ユニットCPB削除遅延パラメータが上記画像タイミングSEIメッセージ含まれるべきでない場合、上記電子装置は、上記アクセスユニットにおける復号化ユニットごとに別の復号化ユニットCPB削除遅延パラメータを生成する。さらにまた、上記電子装置は、上記共通復号化ユニットCPB削除遅延パラメータまたは上記復号化ユニットCPB削除遅延パラメータと共に上記画像タイミングSEIメッセージを送信する。
上記共通復号化ユニットCPB削除遅延パラメータは、直前の復号化ユニットを上記CPBから削除した後から上記画像タイミングSEIメッセージに関連する上記アクセスユニットにおける現在の復号化ユニットを上記CPBから削除するまでに待つべきサブピクチャクロックティック(sub-picture clock ticks)の量を規定してもよい。
さらに、復号化ユニットがアクセスユニットにおける第1の復号化ユニットである場合、上記共通復号化ユニットCPB削除遅延パラメータは、前のアクセスユニットにおける最も近いバッファリング期間SEIメッセージに関連するアクセスユニットにおける最新の復号化ユニットを上記CPBから削除した後から上記画像タイミングSEIメッセージに関連する上記アクセスユニットにおける上記第1の復号化ユニットを上記PCBから削除するまでに待つべきサブピクチャクロックティックの量を規定してもよい。
一方、上記復号化ユニットがアクセスユニットにおける第1の復号化ユニットではない場合、上記共通復号化ユニットCPB削除遅延パラメータは、上記画像タイミングSEIメッセージに関連する上記アクセスユニットにおける前の復号化ユニットを上記CPBから削除した後から上記画像タイミングSEIメッセージに関連する上記アクセスユニットにおける現在の復号化ユニットを上記CPBから削除するまでに待つべきサブピクチャクロックティックの量を規定してもよい。
上記復号化ユニットCPB削除遅延パラメータは、上記最新の復号化ユニットを上記CPBから削除した後から上記画像タイミングSEIメッセージに関連する上記アクセスユニットにおけるi番目の復号化ユニットを上記CPBから削除するまでに待つべきサブピクチャクロックティックの量を規定してもよい。
上記電子装置は、モジュロ2(cpb_removal_delay_length_minus1 + 1)計数器の剰余(remainder)によって、上記復号化ユニットCPB削除遅延パラメータを算出してもよい。ここで、cpb_removal_delay_length_minus1 + 1は、共通復号化ユニットCPB削除遅延パラメータの長さである。
さらに、上記CPBがアクセスユニットレベルの動作をサポートする場合、上記電子装置は、前のアクセスユニットにおける最も近いバッファリング期間SEIメッセージに関連するアクセスユニットを上記CPBから削除した後から上記画像タイミングSEIメッセージに関連する上記アクセスユニットデータを上記CPBから削除するまでに待つべきクロックティックの数を規定するCPB削除遅延パラメータを含む画像タイミングSEIメッセージを生成してもよい。
さらに、上記電子装置は、上記CPBがサブピクチャレベルの動作またはアクセスユニットレベルの動作のどちらをサポートするかを決定してもよい。この工程は、符号化画像バッファ(CPB)が、画像タイミングフラグの値に基づいてサブピクチャレベルの動作をサポートするパラメータを提供するかどうかを示す画像タイミングフラグを決定する工程を含んでいてもよい。上記画像タイミングフラグが、上記画像タイミングSEIメッセージに含まれていてもよい。
上記共通復号化ユニットCPB削除遅延パラメータが上記画像タイミングSEIメッセージに含まれるべき場合、共通復号化ユニットCPB削除遅延パラメータを含むかどうかの決定には、共通復号化ユニットCPB削除遅延フラグを1に設定する工程を含んでいてもよい。さらに、上記共通復号化ユニットCPB削除遅延パラメータが上記画像タイミングSEIメッセージに含まれるべきでない場合、この決定は、上記共通復号化ユニットCPB削除遅延フラグを0に設定する工程を含んでいてもよい。上記共通復号化ユニットCPB削除遅延フラグは、上記画像タイミングSEIメッセージに含まれていてもよい。
さらに、上記CPBがサブピクチャレベルの動作をサポートする場合、上記電子装置は、アクセスユニットにおける各復号化ユニットに対するNALユニットの1でオフセットされる量を示す別のネットワーク抽象化レイヤ(NAL)ユニット関連パラメータを生成してもよい。代わりに、または、追加で、上記電子装置は、アクセスユニットにおける各復号化ユニットに共通のNALユニットの1でオフセットされる量を示す共通NALパラメータを生成してもよい。
さらに、ビットストリームをバッファリングするための電子装置を記載する。当該電子装置は、プロセッサと該プロセッサと電子的に通信するメモリに保存された指示とを含んでいる。上記電子装置は、CPBがアクセスユニットに対するサブピクチャレベルのパラメータを信号で伝達することを決定する。また、受信された画像タイミング付加エンハンスメント情報(SEI)メッセージが上記共通復号化ユニット符号化画像バッファ(CPB)削除遅延フラグを含む場合、上記電子装置は、上記アクセスユニットにおける全復号化ユニットに適用可能な共通復号化ユニットCPB削除遅延パラメータを決定する。さらに、上記画像タイミングSEIメッセージが上記共通復号化ユニットCPB削除遅延フラグを含まない場合、上記電子装置は、上記アクセスユニットにおける復号化ユニットごとに別の復号化ユニットCPB削除遅延パラメータを決定する。さらに、上記電子装置は、上記共通復号化ユニットCPB削除遅延パラメータまたは上記別の復号化ユニットCPB削除遅延パラメータを用いて、上記CPBから復号化ユニットを削除する。さらに、上記電子装置は上記アクセスユニットにおける上記復号化ユニットを復号する。
ある構成において、上記電子装置は、上記画像タイミングSEIメッセージに画像タイミングフラグが設定されることを決定する。また、上記電子装置は、下記数式1によって、CPB削除遅延パラメータ(cpb_removal_delay)を設定してもよい。
式中、du_cpb_removal_delay[i]は、上記復号化ユニットCPB削除遅延パラメータであり、tcはクロックティックであり、tc,subはサブピクチャクロックティックであり、num_decoding_units_minus1は、上記アクセスユニットにおいて復号化ユニットの1でオフセットされる量であり、iはインデックスである。
あるいは、上記電子装置は、下記数式を満たすようにCPB削除遅延パラメータ(cpb_removal_delayおよびdu_cpb_removal_delay[num_decoding_units_minus1])を設定してもよい。
式中、du_cpb_removal_delay[i]は、上記復号化ユニットCPB削除遅延パラメータであり、tcはクロックティックであり、tc,subはサブピクチャクロックティックであり、num_decoding_units_minus1は、上記アクセスユニットにおいて復号化ユニットの1でオフセットされる量であり、iはインデックスである。
あるいは、上記電子装置は、下記式によって、CPB削除遅延パラメータ(cpb_removal_delayおよびdu_cpb_removal_delay[num_decoding_units_minus1])を設定してもよい。
cpb_removal_delay*tc = du_cpb_removal_delay[num_decoding_units_minus1]* tc_sub、
式中、du_cpb_removal_delay[num_decoding_units_minus1]は、上記「num_decoding_units_minus1」番目の復号化ユニットに対する上記復号化ユニットCPB削除遅延パラメータであり、tcはクロックティックであり、tc,subはサブピクチャクロックティックであり、num_decoding_units_minus1は、上記アクセスユニットにおいて復号化ユニットの1でオフセットされる量である。
ある構成において、上記電子装置は、画像タイミングフラグが上記画像タイミングSEIメッセージに設定されることを決定する。また、上記電子装置は、以下の式を満たすようにCPB削除遅延パラメータ(cpb_removal_delayおよびdu_cpb_removal_delay[num_decoding_units_minus1])を設定してもよい。
-1<=(cpb_removal_delay*tc - du_cpb_removal_delay[num_decoding_units_minus1]* tc,sub) <=1
式中、du_cpb_removal_delay[num_decoding_units_minus1]は、上記「num_decoding_units_minus1」番目の復号化ユニットに対する上記復号化ユニットCPB削除遅延パラメータであり、tcはクロックティックであり、tc,subはサブピクチャクロックティックであり、num_decoding_units_minus1は、上記アクセスユニットにおいて復号化ユニットの1でオフセットされる量である。
ClockDiff変数は、以下のように定義してもよい。
ClockDiff = (num_units_in_tick-(num_units_in_sub_tick*(num_decoding_units_minus1+1)) / time_scale)
式中、num_units_in_tickは、クロックティック計数器の1増分に対応する周波数time_scale(Hz)で動作するクロックの時間単位の数であり、num_units_in_sub_tickは、サブピクチャクロックティック計数器の1増分に対応する上記周波数time_scale(Hz)で動作するクロックの時間単位の数であり、num_decoding_units_minus1+1は上記アクセスユニットにおける復号化ユニットの量であり、time_scaleは1秒間に経過する上記時間単位の数である。
低遅延仮想参照復号装置(low delay hypothetical reference decoder:HRD)フラグ(例:low_delay_hrd_flag)が1に設定されており、tr,n( m ) < taf( m )であり、画像タイミングフラグが1に設定されており、上記CPBがサブピクチャレベルで動作しており、かつ、ClockDiffがゼロより大きい場合、復号化ユニットmに対する上記削除時間tr( m )は、以下の式によって決定される。
tr( m ) = tr,n( m ) + tc_sub* Ceil( ( taf( m ) - tr,n( m ) ) / tc_sub ) + ClockDiff
式中、tr,n( m )は上記復号化ユニットmの公称削除時間であり、tc_subはサブピクチャクロックティックであり、Ceil()は天井関数であり、taf( m )は復号化ユニットmの最終到着時間である。
低遅延仮想参照復号装置(HRD)フラグ(例:low_delay_hrd_flag)が1に設定され、tr,n( n ) < taf( n )であり、画像タイミングフラグが1に設定されており、上記CPBがアクセスユニットレベルで動作しており、かつ、ClockDiffがゼロより大きい場合、アクセスユニットnに対する上記削除時間tr( n )は、以下の式によって決定される。
tr( n )= tr,n( n ) + tc* Ceil( ( taf( n ) - tr,n( n ) ) / tc ) - ClockDiff
式中、tr,n( n )は上記アクセスユニットnの公称削除時間であり、tcはクロックティックであり、Ceil()は天井関数であり、taf( n )はアクセスユニットnの最終到着時間である。
低遅延仮想参照復号装置(HRD)フラグ(例:low_delay_hrd_flag)が1に設定されており、tr,n( m ) < taf( m )であり、画像タイミングフラグが1に設定されており、かつ、上記CPBがサブピクチャレベルで動作している場合、アクセスユニットの最新の復号化ユニットmに対する上記削除時間tr( m )は、以下の式によって決定される。
tr( m ) = tr,n( m ) + max( (tc_sub* Ceil( ( taf( m ) - tr,n( m ) ) / tc_sub ))、(tc * Ceil( ( taf( n ) - tr,n( n ) ) / tc )))
式中、tr,n( m )は上記最新の復号化ユニットmの公称削除時間であり、tc_subはサブピクチャクロックティックであり、Ceil()は天井関数であり、taf( m )は最新の復号化ユニットmの最終到着時間であり、tr,n( n )は上記アクセスユニットnの公称削除時間であり、tcはクロックティックであり、taf( n )はアクセスユニットnの最終到着時間である。
低遅延仮想参照復号装置(HRD)フラグが1に設定されており、tr,n( n ) < taf( n )であり、画像タイミングフラグが1に設定されており、かつ、上記CPBがアクセスユニットレベルで動作している場合、アクセスユニットnに対する上記削除時間tr( n )は、以下の式によって決定される。
tr( n ) = tr,n( n ) + max( (tc_sub* Ceil( ( taf( m ) - tr,n( m ) ) / tc_sub ))、(tc * Ceil( ( taf( n ) - tr,n( n ) ) / tc )))
式中、tr,n( m )は上記最新の復号化ユニットnの公称削除時間であり、tc_subはサブピクチャクロックティックであり、Ceil()は天井関数であり、taf( m )は最新の復号化ユニットmの最終到着時間であり、tr,n( n )は上記アクセスユニットnの公称削除時間であり、tcはクロックティックであり、taf( n )はアクセスユニットnの最終到着時間である。
低遅延仮想参照復号装置(HRD)フラグ(例:low_delay_hrd_flag)が1に設定されており、tr,n( m ) < taf( m )であり、画像タイミングフラグが1に設定されており、かつ、上記CPBがサブピクチャレベルで動作している場合、アクセスユニットの最新の復号化ユニットmに対する上記削除時間tr(m)は、以下の式によって決定される。
tr( m ) = tr,n( m ) + min( (tc_sub* Ceil( ( taf( m ) - tr,n( m ) ) / tc_sub )), (tc * Ceil( ( taf( n ) - tr,n( n ) ) / tc)))
式中、tr,n( m )は上記最新の復号化ユニットmの公称削除時間であり、tc_subはサブピクチャクロックティックであり、Ceil()は天井関数であり、taf( m )は最新の復号化ユニットmの最終到着時間であり、tr,n( n )は上記アクセスユニットnの公称削除時間であり、tcはクロックティックであり、taf( n )はアクセスユニットnの最終到着時間である。
低遅延仮想参照復号装置(HRD)フラグが1に設定されており、tr,n( n ) < taf( n )であり、画像タイミングフラグが1に設定されており、かつ、上記CPBがアクセスユニットレベルで動作している場合、アクセスユニットnに対する上記削除時間tr( n )は、以下の式によって決定される。
tr( n ) = tr,n( n ) + min( (tc_sub* Ceil( ( taf( m ) - tr,n( m ) ) / tc_sub ))、(tc * Ceil( ( taf( n ) - tr,n( n ) ) / tc )))
式中、tr,n( m )は上記最新の復号化ユニットnの公称削除時間であり、tc_subはサブピクチャクロックティックであり、Ceil()は天井関数であり、taf( m )は最新の復号化ユニットmの最終到着時間であり、tr,n( n )は上記アクセスユニットnの公称削除時間であり、tcはクロックティックであり、taf( n )はアクセスユニットnの最終到着時間である。
低遅延仮想参照復号装置(HRD)フラグ(例:low_delay_hrd_flag)が1に設定されており、tr,n( m ) < taf( m )であり、画像タイミングフラグが1に設定されており、かつ、上記CPBがサブピクチャレベルで動作している場合、アクセスユニットの最新の復号化ユニットmに対する上記削除時間tr(m)は、以下の式によって決定される。
tr( m ) = tr,n( m ) + (tc* Ceil( ( taf( n ) - tr,n( n ) ) / tc ))
式中、tr,n( m )は上記最新の復号化ユニットmの公称削除時間であり、tc_subはサブピクチャクロックティックであり、Ceil()は天井関数であり、taf( m )は最新の復号化ユニットmの最終到着時間であり、tr,n( n )は上記アクセスユニットnの公称削除時間であり、tcはクロックティックであり、taf( n )はアクセスユニットnの最終到着時間である。
低遅延仮想参照復号装置(HRD)フラグが1に設定されており、tr,n( n ) < taf( n )であり、画像タイミングフラグが1に設定されており、かつ、上記CPBがアクセスユニットレベルで動作している場合、アクセスユニットnに対する上記削除時間tr( n )は、以下の式によって決定される。
tr( n ) = tr,n( n ) + (tc* Ceil( ( taf( n ) - tr,n( n ) ) / tc ))
式中、tr,n( m )は上記最新の復号化ユニットnの公称削除時間であり、tc_subはサブピクチャクロックティックであり、Ceil()は天井関数であり、taf( m )は最新の復号化ユニットmの最終到着時間であり、tr,n( n )は上記アクセスユニットnの公称削除時間であり、tcはクロックティックであり、taf( n )はアクセスユニットnの最終到着時間である。
低遅延仮想参照復号装置(HRD)フラグ(例:low_delay_hrd_flag)が1に設定されており、tr,n( m ) < taf( m )であり、画像タイミングフラグが1に設定されており、かつ、上記CPBがサブピクチャレベルで動作している場合、上記最新の復号化ユニットではない復号化ユニットmに対する上記削除時間は、tr( m ) = taf( m )(式中、taf( m )は復号化ユニットmの最終到着時間)として設定される。低遅延仮想参照復号装置(HRD)フラグ(例:low_delay_hrd_flag)が1に設定されており、tr,n( m ) < taf( m )であり、画像タイミングフラグが1に設定されており、かつ、上記CPBがサブピクチャレベルで動作している場合、アクセスユニットの最新の復号化ユニットmである復号化ユニットmに対する上記削除時間tr( m )は、以下の式によって決定される。
tr( m ) = tr,n( m ) + (tc_sub* Ceil( ( taf( m ) - tr,n( m ) ) / tc_sub ))
式中、tr,n( m )は上記最新の復号化ユニットmの公称削除時間であり、tc_subはサブピクチャクロックティックであり、Ceil()は天井関数であり、taf( m )は最新の復号化ユニットmの最終到着時間であり、tr,n( n )は上記アクセスユニットnの公称削除時間であり、tcはクロックティックであり、taf( n )はアクセスユニットnの最終到着時間であり、taf( m )は、アクセスユニットnにおける最新の復号化ユニットmの最終到着時間である。
低遅延仮想参照復号装置(HRD)フラグ(例:low_delay_hrd_flag)が1に設定されており、tr,n( m ) < taf( m )であり、画像タイミングフラグが1に設定されており、かつ、上記CPBがサブピクチャレベルで動作している場合、上記最新の復号化ユニットではない復号化ユニットmに対する上記削除時間は、tr( m ) = taf( m )(式中、taf( m )は復号化ユニットmの最終到着時間)として設定される。低遅延仮想参照復号装置(HRD)フラグ(例:low_delay_hrd_flag)が1に設定されており、tr,n( m ) < taf( m )であり、画像タイミングフラグが1に設定されており、かつ、上記CPBがサブピクチャレベルで動作している場合、アクセスユニットの最新の復号化ユニットmである復号化ユニットmに対する上記削除時間tr( m )は、以下の式によって決定される。
tr( m ) = tr,n( m ) + (tc* Ceil( ( taf( m ) - tr,n( m ) ) / tc))
式中、tr,n( m )は上記最新の復号化ユニットmの公称削除時間であり、tc_subはサブピクチャクロックティックであり、Ceil()は天井関数であり、taf(m)は最新の復号化ユニットmの最終到着時間であり、tr,n( n )は上記アクセスユニットnの公称削除時間であり、tcはクロックティックであり、taf( n )はアクセスユニットnの最終到着時間であり、taf( m )は、アクセスユニットnにおける最新の復号化ユニットmの最終到着時間である。
低遅延仮想参照復号装置(HRD)フラグ(例:low_delay_hrd_flag)が1に設定されており、tr,n( m ) < taf( m )であり、画像タイミングフラグが1に設定されており、かつ、上記CPBがサブピクチャレベルで動作している場合、復号化ユニットmに対する上記削除時間は、tr( m ) = taf( m )として設定される。式中、tr,n( m )は、上記復号化ユニットmの公称削除時間であり、tc_subはサブピクチャクロックティックであり、Ceil()は天井関数であり、taf( m )は復号化ユニットmの最終到着時間であり、tr,n( n )は、上記アクセスユニットnの公称削除時間であり、tcはクロックティックであり、taf( n )はアクセスユニットnの最終到着時間であり、taf( m )は、上記アクセスユニットnにおける復号化ユニットmの最終到着時間である。
低遅延仮想参照復号装置(HRD)フラグが1に設定されており、tr,n( n ) < taf( n )であり、画像タイミングフラグが1に設定されており、かつ、上記CPBがアクセスユニットレベルで動作している場合、アクセスユニットnに対する上記削除時間tr( n )は、tr( n ) = taf( n )によって決定される。式中、tr,n( m )は、上記最新の復号化ユニットnの公称削除時間であり、tc_subはサブピクチャクロックティックであり、Ceil()は天井関数であり、taf( m )は最新の復号化ユニットmの最終到着時間であり、tr,n( n )は、上記アクセスユニットnの公称削除時間であり、tcはクロックティックであり、taf( n )はアクセスユニットnの最終到着時間である。
さらに、上記復号化ユニットの削除時間および上記アクセスユニットの削除時間を決定するために上記代替式のうちのいずれが用られるかを信号で伝達するために、フラグが上記ビットストリームの一部で送信される場合もある。ある場合には、上記フラグはdu_au_cpb_alignment_mode_flagと呼ばれる。du_au_cpb_alignment_mode_flagが1であれば、サブピクチャに基づくモードで動作するCPBの動作をアクセスユニットモードで動作する上記CPBと同調させる上記式が用いられる。du_au_cpb_alignment_mode_flagが0であれば、サブピクチャに基づくモードで動作するCPBの動作を上記アクセスユニットモードで動作する上記CPBと同調させない上記式が用いられる。
ある場合には、上記フラグ(du_au_cpb_alignment_mode_flag)は、ビデオユーザビリティ情報(VUI)において信号で伝達されてもよい。別の場合には、上記フラグ(du_au_cpb_alignment_mode_flag)は、画像タイミングSEIメッセージで送信されてもよい。さらに別の場合、上記フラグ(du_au_cpb_alignment_mode_flag)は、上記ビットストリームの別の標準的部位で送信されてもよい。本明細書において開示されるシステムおよび方法に係る変形シンタックスおよびセマンティックスの一例を以下の表0に示す。
ここで、様々な変数に対して上で用いられるものと異なるシンボル(名称)が用いられる場合もあることに注意すべきである。例えば、アクセスユニットnのtr( n )が、CpbRemovalTime( n )とも称される場合がある。また、復号化ユニットnのtr( m )が、CpbRemovalTime( m )とも称される場合がある。tc_subが、ClockSubTickと称される場合もある。tcがClockTickと称される場合もある。アクセスユニットmのtaf( n )が、アクセスユニットnのFinalArrivalTime( n )と称される場合もある。復号化ユニットmのtaf( m )が、FinalArrivalTime( m )と称される場合もある。tr,n( n )が、上記アクセスユニットnのNominalRemovalTime( n )と称される場合もある。tr,n( m )が、上記復号化ユニットmのNominalRemovalTime( m )と称される場合もある。
さらに、電子装置によりメッセージを送信する方法を記載する。この方法は、符号化画像バッファ(CPB)がサブピクチャレベルの動作をサポートする場合に、画像タイミング付加エンハンスメント情報(SEI)メッセージに共通復号化ユニットCPB削除遅延パラメータを含むべきかどうかを決定する工程を含んでいる。さらに、上記方法は、上記画像タイミングSEIメッセージに上記共通復号化ユニットCPB削除遅延パラメータが含まれるべき場合に、上記共通復号化ユニットCPB削除遅延パラメータを生成する工程を含んでいる。ここで、上記共通復号化ユニットCPB削除遅延パラメータは、上記CPBからのアクセスユニットにおける全復号化ユニットに適用できるものである。さらに、上記方法は、上記画像タイミングSEIメッセージに上記共通復号化ユニットCPB削除遅延パラメータが含まれるべきでない場合に、上記アクセスユニットにおける復号化ユニットごとに別の復号化ユニットCPB削除遅延パラメータを生成する工程を含んでいる。さらに、上記方法は、上記共通復号化ユニットCPB削除遅延パラメータまたは上記復号化ユニットCPB削除遅延パラメータと共に上記画像タイミングSEIメッセージを送信する工程を含んでいる。
さらに、電子装置によってビットストリームをバッファリングする方法を記載する。上記方法は、CPBがアクセスユニットに対してサブピクチャレベルのパラメータを信号で伝達することを決定する工程を含んでいる。また、上記方法は、受信された画像タイミング付加エンハンスメント情報(SEI)メッセージが上記共通復号化ユニット符号化画像バッファ(CPB)削除遅延フラグを含む場合、上記アクセスユニットにおける全復号化ユニットに適用可能な共通復号化ユニットCPB削除遅延パラメータを決定する工程を含んでいる。さらに、上記方法は、上記画像タイミングSEIメッセージが上記共通復号化ユニットCPB削除遅延フラグを含まない場合、上記アクセスユニットにおける復号化ユニットごとに別の復号化ユニットCPB削除遅延パラメータを決定する工程を含んでいる。さらに、上記方法は、上記共通復号化ユニットCPB削除遅延パラメータまたは上記別の復号化ユニットCPB削除遅延パラメータを用いて、上記CPBから復号化ユニットを削除する工程を含んでいる。さらに、上記方法は上記アクセスユニットにおける上記復号化ユニットを復号する工程を含んでいる。
本明細書中に開示される上記システム及び方法は、メッセージを送信し、ビットストリームをバッファリングする電子装置を説明する。例えば、本明細書中に開示される上記システム及び方法は、サブピクチャパラメータで始まるビットストリームのバッファリングを説明する。いくつかの構成において、本明細書中に開示される上記システム及び方法は、サブピクチャに基づく仮想参照復号装置(HRD)パラメータを信号で伝達する工程を説明する場合がある。例えば、本明細書中に開示される上記システム及び方法は、画像タイミング付加エンハンスメント情報(SEI)メッセージの変更を説明する。本明細書中に開示される上記システム及び方法(例:上記HRDの変形)は、定期的に、各サブピクチャが到着してCPBから削除される場合に、パラメータのよりコンパクトな信号伝達をもたらす。
さらに、上記サブピクチャレベルCPB削除遅延パラメータが存在する場合、上記符号化画像バッファ(CPB)は、アクセスユニットレベルまたはサブピクチャレベルで動作してもよい。また、本システム及び方法は、上記サブピクチャレベルのCPBの動作と上記アクセスユニットレベルのCPBの動作とが同じタイミングでの復号化ユニット削除をもたらすように、ビットストリーム上の制約を課してもよい。具体的には、サブピクチャモードで動作している場合のアクセスユニットにおける最新の復号化ユニットの削除のタイミングが、アクセスユニットモードで動作している場合のアクセスユニットの削除のタイミングと同じになる。
ここで、「仮想」という用語がHRDについて用いられるが、上記HRDが物理的に実装されていてもよいということに注意すべきである。例えば,実際の復号装置の実装を説明するのに「HRD」が用いられてもよい。いくつかの構成において、ビットストリームが高効率映像符号化方式(HEVC)仕様に適合するかどうかを判定するために、HRDが実装されていてもよい。例えば、HRDが、タイプIビットストリームおよびタイプIIビットストリームがHEVC仕様に適合するかどうかを判定するために用いられてもよい。タイプIビットストリームは、映像符号化レイヤ(VCL)ネットワーク抽象化レイヤ(NAL)ユニットとフィラーデータ(filler data)NALユニットとのみを含んでいてもよい。タイプIIビットストリームは、さらに別のNALユニットとシンタックス要素とを含んでいてもよい。
映像符号化国際標準のHEVC標準化の共同チーム(JCTVC)の文献のJCTVC−I0333は、サブピクチャに基づくHRDを含んでおり、画像タイミングSEIメッセージをサポートしている。この機能性は、高効率映像符号化方式(HEVC)委員会草案(JCTVC−I1003)に組み込まれ、参照によりその全体が本明細書に援用される。B.Bros、W−J.Han、J−R.Ohm、G.J.Sullivan、WangおよびT−.Wiegandの「High efficiency video coding (HEVC) text specification draft 10 (for DFIS & Last Call)」、JCTVC−J10003_v34、ジュネーヴ、2013年1月がここで参照によりその全体が本明細書に援用される。B.Bros、W−J.Han、J−R.Ohm、G.J.Sullivan、WangおよびT−.Wiegandの「High efficiency video coding (HEVC) text specification draft 10」、JCTVC−L1003、ジュネーヴ、2013年1月がここで参照によりその全体が本明細書に援用される。
本明細書中に開示される上記システム及び方法に係る変形シンタックスおよびセマンティックスの一例を以下の表1に示す。
本明細書中に開示される上記システム及び方法に係るバッファリング期間SEIメッセージセマンティックスに関する例を以下に挙げる。特に、上記変形シンタックス要素のセマンティックスに関する追加の詳細を以下に記載する。NalHrdBpPresentFlagまたはVclHrdBpPresentFlagが1に等しい場合、バッファリング期間SEIメッセージは、上記ビットストリームにおける任意のアクセスユニットと関係付けられることができ、かつ、バッファリング期間SEIメッセージは、各IDRアクセスユニット、各CRAアクセスユニット、および、リカバリーポイントSEIメッセージに関連する各アクセスユニットに関連付けられていてもよい。いくつかの適用において、バッファリング期間SEIメッセージが頻繁に存在することが望ましいといえる。バッファリング期間は、復号化順序におけるバッファリング期間SEIメッセージの2つのインスタンス間のアクセスユニットのセットとして規定される。
seq_parameter_set_idは、シーケンスHRD属性を含む上記シーケンスパラメータセットを規定する。seq_parameter_set_idの値は、上記バッファリング期間SEIメッセージに関連する主符号化画像に参照される上記画像パラメータセットにおけるseq_parameter_set_idの値に等しくてもよい。上記seq_parameter_set_idの値は、0以上30以下の範囲の値であってもよい。
initial_cpb_removal_delay[ SchedSelIdx ]は、HRD初期化後の第1のバッファリング期間に対して、上記バッファリング期間SEIメッセージに関連する上記アクセスユニットと関連付けられる上記符号化データの第1番目のビットの上記CPBにおける到着時間と上記と同じアクセスユニットと関連付けられる上記符号化データの上記CPBからの削除時間との間のSchedSelIdx番目のCPBに対する遅延を規定する。上記シンタックス要素は、initial_cpb_removal_delay_length_minus1 + 1により与えられるビットで表される長さを有している。これは、90kHzクロックを単位にしている。initial_cpb_removal_delay[ SchedSelIdx ]は、0に等しくなることはなく、かつ、90000 * (CpbSize[ SchedSelIdx ] / BitRate[ SchedSelIdx ])を超えることはなく、CPBの大きさは、90kHzクロック単位の倍数である時間に相当する。
initial_cpb_removal_delay_offset [ SchedSelIdx ]は、上記CPBへの符号化されたアクセスユニットの初期デリバリー時間を規定するために、上記cpb_removal_delayと組み合わせてSchedSelIdx番目のCPBに対して用いられる。initial_cpb_removal_delay_offset[ SchedSelIdx ]は、90kHzクロックを単位にしている。上記initial_cpb_removal_delay_offset[ SchedSelIdx ]シンタックス要素は、ビットで表される長さがinitial_cpb_removal_delay_length_minus1 + 1で与えられる固定長の符号である。このシンタックス要素は、復号装置では用いられず、(例えば、JCTVC−I1003のアネックスCに規定される)デリバリースケジューラ(HSS)にのみ必要とされる。
符号化映像シーケンス全体にわたって、initial_cpb_removal_delay[ SchedSelIdx ]とinitial_cpb_removal_delay_offset[ SchedSelIdx ]との合計は、SchedSelIdxの各値に対して定数であってもよい。
initial_du_cpb_removal_delay[ SchedSelIdx ]は、HRD初期化後の第1のバッファリング期間に対して、上記バッファリング期間SEIメッセージに関連する上記アクセスユニットにおける第1の復号化ユニットと関連付けられる符号化データの第1番目のビットの上記CPBにおける到着時間と、上記と同じ復号化ユニットと関連付けられる上記符号化データの上記CPBからの削除時間との間のSchedSelIdx番目のCPBに対する遅延を規定する。上記シンタックス要素は、initial_cpb_removal_delay_length_minus1 + 1により与えられるビットで表される長さを有している。これは、90kHzクロックを単位にしている。initial_du_cpb_removal_delay[ SchedSelIdx ]は、0に等しくはならず、かつ、90000 * (CpbSize[ SchedSelIdx ] / BitRate[ SchedSelIdx ])を超えることはなく、CPBの大きさは、90kHzクロック単位の倍数である時間に相当する。
initial_du_cpb_removal_delay_offset[ SchedSelIdx ]は、上記CPBへの復号化ユニットの初期デリバリー時間を規定するために、上記cpb_removal_delayと組み合わせてSchedSelIdx番目のCPBに対して用いられる。
initial_cpb_removal_delay_offset[ SchedSelIdx ]は、90kHzクロックを単位にしている。上記initial_du_cpb_removal_delay_offset[ SchedSelIdx ]シンタックス要素は、ビットで表される長さがinitial_cpb_removal_delay_length_minus1 + 1で与えられる固定長の符号である。このシンタックス要素は、復号装置では用いられず、(例えば、JCTVC−I1003のアネックスCに規定される)デリバリースケジューラ(HSS)にのみ必要とされる。
符号化映像シーケンス全体にわたって、initial_du_cpb_removal_delay[ SchedSelIdx ]とinitial_du_cpb_removal_delay_offset[ SchedSelIdx ]との合計は、SchedSelIdxの各値に対して定数であってもよい。
本明細書中に開示される上記システム及び方法に係る画像タイミングSEIメッセージセマンティックスに関する例を以下に挙げる。特に、上記変形シンタックス要素のセマンティックスに関する追加の詳細を記載する。
上記画像タイミングSEIメッセージの上記シンタックスは、上記画像タイミングSEIメッセージに関連する上記符号化画像に対してアクティブな上記シーケンスパラメータセットの内容に依存する。しかし、瞬時復号リフレッシュ(IDR)アクセスユニットの画像タイミングSEIメッセージの前に、同じアクセスユニットにおけるバッファリング期間SEIメッセージが来なければ、上記符号化画像の第1の符号化スライスネットワーク抽象化レイヤ(NAL)ユニットの復号化まで、上記関連シーケンスパラメータセットの活性化(および、上記ビットストリームにおける第1番目の画像ではないIDR画像に対しては、上記符号化画像がIDR画像であるという決定)は発生しない。上記符号化画像の上記符号化スライスNALユニットは、NALユニット順で上記画像タイミングSEIメッセージに従うので、上記符号化画像に対してアクティブになる上記シーケンスパラメータのパラメータの決定まで、復号装置が、上記画像タイミングSEIメッセージを含むローバイトシーケンスペイロード(RBSP)を保存し、その後、上記画像タイミングSEIメッセージの構文解析を実行する必要がある場合もある。
上記ビットストリームにおける画像タイミングSEIメッセージの存在は以下のように規定される。CpbDpbDelaysPresentFlagが1に等しい場合、一つの画像タイミングSEIメッセージが上記符号化映像シーケンスのアクセスユニットごとに存在してもよい。そうでない場合(CpbDpbDelaysPresentFlagが0に等しい)、上記符号化映像シーケンスのどのアクセスユニットにも画像タイミングSEIメッセージは存在することはない。
cpb_removal_delayは、前のアクセスユニットにおける最も近いバッファリング期間SEIメッセージに関連する上記アクセスユニットを上記CPBから削除した後から上記画像タイミングSEIメッセージに関連する上記アクセスユニットデータをバッファから削除するまでに待つべきクロックティックの数(JCTVC−I1003のサブクローズE.2.1参照)を規定する。また、この値は、JCTVC−I1003のアネックスCに規定されるように、上記HSS用に上記CPBに復号化ユニットデータが到着できる最も早い時間を算出するためにも用いられる。上記シンタックス要素は、ビットで表される長さがcpb_removal_delay_length_minus1 + 1で与えられる固定長の符号である。上記cpb_removal_delayは、モジュロ2(cpb_removal_delay_length_minus1 + 1)計数器の剰余である。
cpb_removal_delayは、異なる符号化映像シーケンスのアクセスユニットであってもよい、バッファリング期間SEIメッセージを含む上記前のアクセスユニットの上記削除時間に対するクロックティックの数を規定するが、上記シンタックス要素cpb_removal_delayの(ビットで表す)長さを決定するcpb_removal_delay_length_minus1の値は、上記画像タイミングSEIメッセージに関連する上記主符号化画像に対してアクティブな上記シーケンスパラメータセットに符号化されたcpb_removal_delay_length_minus1の値である。
dpb_output_delayは、上記画像の復号化画像バッファ(DPB)出力時間を算出するために用いられる。dpb_output_delayは、上記CPBからアクセスユニットにおける最新の復号化ユニットを削除した後から上記復号化画像が上記DPBから出力されるまでに待つべきクロックティックの数を規定する(JCTVC−I1003のサブクローズC.2参照)。
上記DPBについて、「短期参照用に使用」または「長期参照用に使用」と記されている状態のままにある場合、画像は、上記DPBからその出力時間には削除されない。一つのみのdpb_output_delayが復号化画像用に規定される。上記シンタックス要素dpb_output_delayの長さは、dpb_output_delay_length_minus1 + 1によりビットで与えられる。max_dec_pic_buffering[ max_temporal_layers_minus1 ]が0に等しい場合、dpb_output_delayは0に等しくてもよい。
JCTVC−I1003のサブクローズC.2に規定されるような出力タイミング適合復号装置から出力される任意の画像の上記dpb_output_delayから導かれる上記出力時間は、復号化順序において任意の後続の符号化映像シーケンスにおける全画像のdpb_output_delayから導かれる上記出力時間に先行してもよい。このシンタックス要素の値により定められた画像出力順序は、サブクローズにより規定されたPicOrderCnt( )の値により定められるものと同じ順序である。1に等しい、または、1に等しいと推定されるno_output_of_prior_pics_flagを有するIDR画像に復号化順序において先行するがためにサブクローズの「バンピング(bumping)」工程によって出力されない画像について、dpb_output_delayから導かれる上記出力時間は、同じ符号化映像シーケンス内の全画像に対するPicOrderCnt( )の値の増大と共に増大してもよい。
num_decoding_units_minus1+1は、上記画像タイミングSEIメッセージが関連する上記アクセスユニットにおける復号化ユニットの数を規定する。num_decoding_units_minus1の値は、0以上PicWidthInCtbs * PicHeightInCtbs - 1以下であってもよい。
1に等しいcommon_du_cpb_removal_delay_flagは、上記シンタックス要素common_du_cpb_removal_delayが存在することを規定する。
0に等しいcommon_du_cpb_removal_delay_flagは、上記シンタックス要素common_du_cpb_removal_delayが存在しないことを規定する。
common_du_cpb_removal_delayは、以下の通りに情報を規定する。復号化ユニットが上記画像タイミングSEIメッセージに関連する上記アクセスユニットにおける第1の復号化ユニットであれば、common_du_cpb_removal_delayは、前のアクセスユニットにおける上記最も近いバッファリング期間SEIメッセージに関連する上記アクセスユニットにおいて上記最新の復号化ユニットを上記CPBから削除した後から上記画像タイミングSEIメッセージに関連する上記アクセスユニットにおいて第1の復号化ユニットを上記CPBから削除するまでに待つべきサブピクチャクロックティックの数を規定する(JCTVC−I1003のサブクローズE.2.1参照)。
上記の場合でなければ、common_du_cpb_removal_delayは、上記画像タイミングSEIメッセージに関連する上記アクセスユニットにおける前の復号化ユニットを上記CPBから削除した後から上記画像タイミングSEIメッセージに関連する上記アクセスユニットにおける現在の復号化ユニットを上記CPBから削除するまでに待つべきサブピクチャクロックティックの数を規定する(JCTVC−I1003のサブクローズE.2.1参照)。また、この値は、アネックスCに規定されるように、上記HSS用に上記CPBに復号化ユニットデータが到着できる最も早い時間を算出するために用いられる。上記シンタックス要素は、ビットで表される長さがcpb_removal_delay_length_minus1 + 1で与えられる固定長の符号である。上記common_du_cpb_removal_delayは、モジュロ2(cpb_removal_delay_length_minus1 + 1)計数器の剰余である。
common_du_cpb_removal_delayを規定する代替的な方法は以下のとおりである。
common_du_cpb_removal_delayは、上記最新の復号化ユニットを上記CPBから削除した後から上記画像タイミングSEIメッセージに関連する上記アクセスユニットにおける現在の復号化ユニットを上記CPBから削除するまでに待つべきサブピクチャクロックティックの数を規定する(JCTVC−I1003のサブクローズE.2.1参照)。また、この値は、アネックスCに規定されるように、上記HSS用に上記CPBに復号化ユニットデータが到着できる最も早い時間を算出するために用いられる。上記シンタックス要素は、ビットで表される長さがcpb_removal_delay_length_minus1 + 1で与えられる固定長の符号である。上記common_du_cpb_removal_delayは、モジュロ2(cpb_removal_delay_length_minus1 + 1)計数器の剰余である。
common_du_cpb_removal_delayは、異なる符号化映像シーケンスのアクセスユニットであってもよい、バッファリング期間SEIメッセージを含む上記前のアクセスユニットにおける第1の復号化ユニットの上記削除時間に対するサブピクチャクロックティックの数を規定するが、上記シンタックス要素common_du_cpb_removal_delayの(ビットで表す)長さを決定するcpb_removal_delay_length_minus1の値は、上記画像タイミングSEIメッセージに関連する上記符号化画像に対してアクティブな上記シーケンスパラメータセットに符号化されたcpb_removal_delay_length_minus1の値である。
num_nalus_in_du_minus1[ i ]+1は、上記画像タイミングSEIメッセージが関連する上記アクセスユニットのi番目の復号化ユニットにおけるNALユニットの数を規定する。num_nalus_in_du_minus1[ i ]の値は、0以上PicWidthInCtbs * PicHeightInCtbs - 1以下の範囲にあってもよい。
上記アクセスユニットの上記第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ユニットが同じ復号化ユニットに含まれていてもよい。
du_cpb_removal_delay[ i ]は、前のアクセスユニットにおける上記最も近いバッファリング期間SEIメッセージに関連する上記アクセスユニットにおける上記第1の復号化ユニットを上記CPBから削除した後から上記画像タイミングSEIメッセージに関連する上記アクセスユニットにおけるi番目の復号化ユニットを上記CPBから削除するまでに待つべきサブピクチャクロックティックの数を規定する(JCTVC−I1003のサブクローズE.2.1参照)。また、この値は、(例えば、JCTVC−I1003のアネックスCに規定されるように)上記HSS用に上記CPBに復号化ユニットデータが到着できる最も早い時間を算出するために用いられる。上記シンタックス要素は、ビットで表される長さがcpb_removal_delay_length_minus1 + 1で与えられる固定長の符号である。上記du_cpb_removal_delay[ i ]は、モジュロ2(cpb_removal_delay_length_minus1 + 1)計数器の剰余である。
du_cpb_removal_delay[ i ]は、異なる符号化映像シーケンスのアクセスユニットであってもよい、バッファリング期間SEIメッセージを含む上記前のアクセスユニットにおける第1の復号化ユニットの上記削除時間に対するサブピクチャクロックティックの数を規定するが、上記シンタックス要素du_cpb_removal_delay[ i ]の(ビットで表す)長さを決定するcpb_removal_delay_length_minus1の値は、上記画像タイミングSEIメッセージに関連する上記符号化画像に対してアクティブな上記シーケンスパラメータセットに符号化されたcpb_removal_delay_length_minus1の値である。
ある構成において、復号化ユニット削除および復号化ユニットの復号化のタイミングは以下の通りに実装してもよい。
SubPicCpbFlagが0に等しければ、変数CpbRemovalDelay( m )は、復号化ユニットmである上記アクセスユニットに関連する上記画像タイミングSEIメッセージにおけるcpb_removal_delayの値に設定され、かつ、変数Tcがtcに設定される。上記の場合でなく、SubPicCpbFlagが1に等しく、かつ、common_du_cpb_removal_delay_flagが0であれば、変数CpbRemovalDelay( m )は、復号化ユニットmを含む上記アクセスユニットに関連する上記画像タイミングSEIメッセージにおいて、復号化ユニットm(mは0からnum_decoding_units_minus1の範囲で変動する)のdu_cpb_removal_delay[ i ] の値に設定され、かつ、変数Tcがtc_subに設定される。
場合によっては、SubPicCpbFlagが1に等しく、かつ、common_du_cpb_removal_delay_flagが0であれば、変数CpbRemovalDelay( m )は、復号化ユニットmを含む上記アクセスユニットに関連する上記画像タイミングSEIメッセージにおいて、復号化ユニットm(mは0からnum_decoding_units_minus1の範囲で変動する)の(m+1)*du_cpb_removal_delay[ i ]の値に設定され、かつ、変数Tcがtc_subに設定される。
上記の場合でなく、SubPicCpbFlagが1に等しく、かつ、common_du_cpb_removal_delay_flagが1であれば、変数CpbRemovalDelay( m )は、復号化ユニットmを含む上記アクセスユニットに関連する上記画像タイミングSEIメッセージにおいて、復号化ユニットmのcommon_du_cpb_removal_delayの値に設定され、かつ、変数Tcがtc_subに設定される。
復号化ユニットmが、nが0に等しい上記復号化ユニット(上記HRDを初期化する上記アクセスユニットの上記第1の復号化ユニット)である場合、上記CPBからの上記復号化ユニットの上記公称削除時間は、tr,n( 0 ) = InitCpbRemovalDelay[ SchedSelIdx ] / 90000で規定される。
復号化ユニットmが上記HRDを初期化しないバッファリング期間の第1のアクセスユニットの上記第1の復号化ユニットである場合、上記CPBからの上記復号化ユニットの上記公称削除時間は、以下の式で規定される。
tr,n( m ) = tr,n( mb ) + Tc * CpbRemovalDelay( m )、
式中、tr,n(mb)は、先のバッファリング期間の上記第1の復号化ユニットの上記公称削除時間である。
復号化ユニットmがバッファリング期間の第1の復号化ユニットである場合、mbは、上記復号化ユニットmの削除時間tr,n( m )でのmに等しく設定される。バッファリング期間の第1の復号化ユニットではない復号化ユニットmの上記公称削除時間tr,n( m )は、以下の式で与えられる。
tr,n( m ) = tr,n( mb ) + Tc * CpbRemovalDelay( m )、
式中、tr,n( mb )は、現在のバッファリング期間の上記第1の復号化ユニットの上記公称削除時間である。
復号化ユニットmの上記削除時間は、以下のように規定される。low_delay_hrd_flagが0に等しい、または、tr,n( m ) >= taf( m )であれば、復号化ユニットmの上記削除時間は、tr( m ) = tr,n( m )により規定される。上記の場合でなければ(low_delay_hrd_flagが1に等しく、かつ、tr,n( m ) < taf( m ))、復号化ユニットmの上記削除時間は、tr( m ) = tr,n( m ) + Tc * Ceil( ( taf( m ) - tr,n( m ) ) / Tc)で規定される。後者の事例(low_delay_hrd_flagが1に等しく、かつ、tr,n( m ) < taf( m )である)は、復号化ユニットmのサイズ(b( m ))が非常に大きいので、上記公称削除時間での削除が妨げられることを示す。
他の場合、復号化ユニットmの上記削除時間は以下のように規定される。low_delay_hrd_flagが0に等しい、または、tr,n( m ) >= taf( m )である場合、復号化ユニットmの上記削除時間は、tr( m ) = tr,n( m )で規定される。上記の場合でなければ(low_delay_hrd_flagが1に等しく、かつ、tr,n( m ) < taf( m )である)、上記アクセスユニットにおける最新の復号化ユニットではない復号化ユニットmの上記削除時間は、tr( m ) = taf( m )で規定され、かつ、上記アクセスユニットにおける最新の復号化ユニットである復号化ユニットmの上記削除時間はtr( m ) = tr,n( m ) + Tc * Ceil( ( taf( m ) - tr,n( m ) ) / tc)で規定される。後者の事例(low_delay_hrd_flagが1に等しく、かつ、tr,n( m ) < taf( m )である)は、復号化ユニットmのサイズ(b( m ))が非常に大きいので、上記公称削除時間での削除が妨げられることを示す。
他の場合、復号化ユニットmの上記削除時間は以下のように規定される。low_delay_hrd_flagが0に等しい、または、tr,n( m ) >= taf( m )である場合、復号化ユニットmの上記削除時間は、tr( m ) = tr,n( m )で規定される。上記の場合でなければ(low_delay_hrd_flagが1に等しく、かつ、tr,n( m ) < taf( m )である)、上記アクセスユニットにおける最新の復号化ユニットではない復号化ユニットmの上記削除時間は、tr( m ) = taf( m )で規定され、かつ、上記アクセスユニットにおける最新の復号化ユニットである復号化ユニットmの上記削除時間はtr( m ) = tr,n( m ) + tc * Ceil( ( taf( m ) - tr,n( m ) ) /tc)で規定される。後者の事例(low_delay_hrd_flagが1に等しく、かつ、tr,n( m ) < taf( m )である)は、復号化ユニットmのサイズ(b( m ))が非常に大きいので、上記公称削除時間での削除が妨げられることを示す。
他の場合、復号化ユニットmの上記削除時間は以下のように規定される。low_delay_hrd_flagが0に等しい、または、tr,n( m ) >= taf( m )である場合、復号化ユニットmの上記削除時間は、tr( m ) = tr,n( m )で規定される。上記の場合でなければ(low_delay_hrd_flagが1に等しく、かつ、tr,n( m ) < taf( m )である)、復号化ユニットmの上記削除時間は、tr( m ) = taf( m )で規定される。後者の事例(low_delay_hrd_flagが1に等しく、かつ、tr,n( m ) < taf( m )である)は、復号化ユニットmのサイズ(b( m ))が非常に大きいので、上記公称削除時間での削除が妨げられることを示す。
SubPicCpbFlagが1に等しい場合、アクセスユニットnの公称CPB削除時間tr,n( n )は、アクセスユニットnにおける上記最新の復号化ユニットの公称CPB削除時間に設定され、アクセスユニットnの上記CPB削除時間tr( n )は、アクセスユニットnにおける上記最新の復号化ユニットの上記CPB削除時間に設定される。
SubPicCpbFlagが0に等しい場合、各復号化ユニットがアクセスユニットである。したがって、アクセスユニットnの上記公称CPB削除時間および上記CPB削除時間は、復号化ユニットnの上記公称CPB削除時間および上記CPB削除時間である。
上記復号化ユニットは、復号化ユニットmのCPB削除時間に、瞬時に復号化される。
本明細書中に開示される上記システム及び方法に係る画像タイミングSEIメッセージの変形シンタックスおよびセマンティックスの別の例を以下の表2に示す。本明細書中に開示される上記システム及び方法に係る変更は、太字で表示されている。
表2に示された例は、復号化ユニットを削除する場合に上記CPBから削除されるべきデータの量を決定するために用いてもよいシンタックス要素(common_num_nalus_in_du_minus1)を含んでいる。common_num_nalus_in_du_minus1+1は、上記画像タイミングSEIメッセージが関連する上記アクセスユニットの各復号化ユニットにおけるNALユニットの数を規定する。common_num_nalus_in_du_minus1の値は、0以上PicWidthInCtbs * PicHeightInCtbs - 1以下の範囲の値であってもよい。
上記アクセスユニットの上記第1の復号化ユニットは、上記アクセスユニットにおける復号化順序における始めのcommon_num_nalus_in_du_minus1 + 1個の連続するNALユニットで構成される。上記アクセスユニットの上記i番目(iは0より大きい)の復号化ユニットは、復号化順序で上記アクセスユニットの先の復号化ユニットにおける上記最新のNALユニットの直後に来るcommon_num_nalus_in_du_minus1 + 1個の連続するNALユニットで構成される。各復号化ユニットには少なくとも1個のVCL NALユニットが存在していてもよい。VCL NALユニットに関連するすべての非VCL NALユニットが同じ復号化ユニットに含まれていてもよい。
本明細書中に開示される上記システム及び方法に係る画像タイミングSEIメッセージの変形シンタックスおよびセマンティックスの別の例を以下の表3に示す。本明細書中に開示される上記システム及び方法に係る変更は、太字で表示されている。
表3に示された例は、1に等しい場合に上記シンタックス要素(common_num_nalus_in_du_minus1)が存在することを規定するシンタックス要素(common_num_nalus_in_du_flag)を含んでいる。0に等しいcommon_num_nalus_in_du_flagは、上記シンタックス要素(common_num_nalus_in_du_minus1)が存在しないことを規定する。
さらに別の実施形態のフラグ(common_du_cpb_removal_delay_flag、common_num_nalus_in_du_minus1)は送信されることはない。代わりに、シンタックス要素(common_num_nalus_in_du_minus1およびcommon_du_cpb_removal_delay)を毎回送信することができる。この場合、これらの要素が信号で伝達されていないことを示すために、これらのシンタックス要素に対して0の値(または他の値)を使うことができる。
上記画像タイミングSEIメッセージの上記シンタックス要素およびセマンティックスに対する変更に追加して、本システムおよび方法は、サブピクチャに基づくCPBの動作とアクセスユニットレベルのCPB動作とが同じタイミングでの復号化ユニット削除をもたらすように、ビットストリーム上の制約も実装してもよい。
sub_pic_cpb_params_present_flagが1に等しく、つまり、サブピクチャレベルCPB削除遅延パラメータが存在する場合、上記CPBは、アクセスユニットレベルまたはサブピクチャレベルで動作してもよい。0に等しいsub_pic_cpb_params_present_flagは、サブピクチャレベルCPB削除遅延パラメータが存在せず、上記CPBがアクセスユニットレベルで動作することを規定する。sub_pic_cpb_params_present_flagが不在の場合、その値は0に等しいと推定される。
アクセスユニットレベルまたはサブピクチャレベルの両方での動作をサポートするために、以下のビットストリーム上の制約が用いられてもよい。sub_pic_cpb_params_present_flagが1であれば、cpb_removal_delayの値とすべてのiに対するdu_cpb_removal_delay[i]の値とを信号で伝達する(signalingする)際に以下の制約に従っていることがビットストリーム適合性の要件となる。
式中、du_cpb_removal_delay[i]は上記復号化ユニットCPB削除遅延パラメータであり、tcはクロックティックであり、tc,subはサブピクチャクロックティックであり、num_decoding_units_minus1は、上記アクセスユニットにおける復号化ユニットの1でオフセットされる量であり、iはインデックスである。いくつかの実施形態において、上記制約を満たすために耐性パラメータ(a tolerance parameter)を追加できる。
アクセスユニットレベルまたはサブピクチャレベルの両方の動作をサポートするために、変数Tdu(k)を以下の通りに定義した、以下のようなビットストリーム上の制約を用いてもよい。
式中、du_cpb_removal_delay_minus1k[ i ]およびnum_decoding_units_minus1kは、k番目のアクセスユニット(上記HRDを初期化する上記アクセスユニットについてk=0であり、かつ、k<1についてTdu(k)=0である)のI番目の復号化ユニットに対するパラメータであり、du_cpb_removal_delay_minus1k[ i ]+1=du_cpb_removal_delay_minus1k[i]は、上記k番目のアクセスユニットの上記I番目の復号化ユニットに対する上記復号化ユニットCPB削除遅延パラメータであり、かつ、num_decoding_units_minus1kは、上記k番目のアクセスユニットにおける復号化ユニットの数であり、tcはクロックティックであり、tc,subはサブピクチャクロックティックであり、iおよびkはインデックスである。そして、上記画像タイミングフラグ(例:sub_pic_cpb_params_present_flag)が1に設定されている場合、以下の制約が真である。
(au_cpb_removal_delay_minus1 + 1)*tc == Tdu(k)、
式中、(au_cpb_removal_delay_minus1 + 1)=cpb_removal_delay、つまり、上記CPB削除遅延である。したがって、この場合、上記CPB削除遅延(au_cpb_removal_delay_minus1 + 1)は、サブピクチャに基づくCPBの動作とアクセスユニットに基づくCPBの動作とが同じタイミングでのアクセスユニット削除および上記アクセスユニットの最新の復号化ユニット削除をもたらすように設定される。
アクセスユニットレベルまたはサブピクチャレベルの両方での動作をサポートするために、以下のビットストリーム上の制約が用いられてもよい。sub_pic_cpb_params_present_flagが1であれば、cpb_removal_delayの値とすべてのiに対するdu_cpb_removal_delay[i]の値とを信号で伝達する際に以下の制約に従っていることがビットストリーム適合性の要件となる。
式中、du_cpb_removal_delay[i]は上記復号化ユニットCPB削除遅延パラメータであり、tcはクロックティックであり、tc,subはサブピクチャクロックティックであり、num_decoding_units_minus1は、上記アクセスユニットにおける復号化ユニットの1でオフセットされる量であり、iはインデックスである。
アクセスユニットレベルまたはサブピクチャレベルの両方での動作をサポートするために、以下のビットストリーム上の制約が用いられてもよい。sub_pic_cpb_params_present_flagが1であれば、cpb_removal_delayおよびdu_cpb_removal_delay[num_decoding_units_minus1]の値を信号で伝達する際に以下の制約に従っていることがビットストリーム適合性の要件となる。
cpb_removal_delay*tc = du_cpb_removal_delay[num_decoding_units_minus1]* tc,sub、
式中、du_cpb_removal_delay[num_decoding_units_minus1]は「num_decoding_units_minus1」番目の復号化ユニットに対する上記復号化ユニットCPB削除遅延パラメータであり、tcはクロックティックであり、tc,subはサブピクチャクロックティックであり、num_decoding_units_minus1は、上記アクセスユニットにおける復号化ユニットの1でオフセットされる量である。いくつかの実施形態において、上記制約を満たすために耐性パラメータを追加できる。
アクセスユニットレベルまたはサブピクチャレベルの両方での動作をサポートするために、以下のビットストリーム上の制約が用いられてもよい。sub_pic_cpb_params_present_flagが1であれば、cpb_removal_delayおよびすべてのiに対するdu_cpb_removal_delay[i]の値を信号で伝達する際に以下の制約に従っていることがビットストリーム適合性の要件となる。
-1<=(cpb_removal_delay*tc - du_cpb_removal_delay[num_decoding_units_minus1]* tc,sub) <=1、
式中、du_cpb_removal_delay[num_decoding_units_minus1]は「num_decoding_units_minus1」番目の復号化ユニットに対する上記復号化ユニットCPB削除遅延パラメータであり、tcはクロックティックであり、tc,subはサブピクチャクロックティックであり、num_decoding_units_minus1は、上記アクセスユニットにおける復号化ユニットの1でオフセットされる量である。
更に、本発明のシステムおよび方法は、復号化ユニット削除のタイミングを変更してもよい。サブピクチャレベルCPB削除遅延パラメータが存在する場合、「大画像」(low_delay_hrd_flagが1であり、かつ、tr,n( m ) < taf( m )である場合)に対する復号化ユニットの上記削除時間は、クロックティック計数器およびサブピクチャクロックティック計数器に起因して発生する可能性がある差を補償するように変更されてもよい。
sub_pic_cpb_params_present_flagが1に等しい場合、サブピクチャレベルCPB削除遅延パラメータが存在し、上記CPBは、アクセスユニットレベルまたはサブピクチャレベルで動作してもよい。0に等しいsub_pic_cpb_params_present_flagは、サブピクチャレベルCPB削除遅延パラメータが存在せず、上記CPBがアクセスユニットレベルで動作することを規定する。sub_pic_cpb_params_present_flagが存在しない場合、その値は、0に等しいと推定される。
具体的には、以下に復号化ユニット削除のタイミングと復号化ユニットの復号化の実装の一例を挙げる。変数SubPicCpbPreferredFlagは、外部手段によって規定されるか、または、外部手段によって規定されない場合は、0に設定される。変数SubPicCpbFlagは、SubPicCpbFlag = SubPicCpbPreferredFlag && sub_pic_cpb_params_present_flagで導かれる。SubPicCpbFlagが0に等しければ、上記CPBはアクセスユニットレベルで動作し、各復号化ユニットはアクセスユニットである。SubPicCpbFlagが0に等しくなければ、上記CPBは、サブピクチャレベルで動作し、各復号化ユニットは、アクセスユニットの部分集合である。
SubPicCpbFlagが0に等しければ、変数CpbRemovalDelay( m )は、復号化ユニットmである上記アクセスユニットに関連する上記画像タイミングSEIメッセージにおけるcpb_removal_delayの値に設定され、変数Tcはtcに設定される。SubPicCpbFlagが0に等しくなければ、上記変数CpbRemovalDelay( m )は、復号化ユニットmを含む上記アクセスユニットに関連する上記画像タイミングSEIメッセージにおける復号化ユニットmのdu_cpb_removal_delay[ i ]の値に設定され、かつ、変数Tcがtc_subに設定される。
復号化ユニットmが、nが0に等しい上記復号化ユニット(上記HRDを初期化する上記アクセスユニットの上記第1の復号化ユニット)である場合は、上記CPBからの上記復号化ユニットの上記公称削除時間が、
tr,n( 0 ) = InitCpbRemovalDelay[ SchedSelIdx ] / 90000
により規定される。
復号化ユニットmが、上記HRDを初期化しないバッファリング期間の第1のアクセスユニットの第1の復号化ユニットである場合、上記CPBからの上記復号化ユニットの上記公称削除時間は、以下により規定される。
tr,n( m ) = tr,n( mb ) + Tc * CpbRemovalDelay( m )、
式中、tr,n(mb)は、上記先のバッファリング期間の上記第1の復号化ユニットの上記公称削除時間である。
復号化ユニットmがバッファリング期間の第1の復号化ユニットである場合、mbは、上記復号化ユニットmの上記削除時間tr,n( m )におけるmに等しくなるように設定される。
バッファリング期間の第1の復号化ユニットではない復号化ユニットmの上記公称削除時間tr,n( m )は、以下の式で与えられる。
tr,n( m ) = tr,n( mb ) + Tc * CpbRemovalDelay( m )、
式中、tr,n(mb)は、現在のバッファリング期間の第1の復号化ユニットの上記公称削除時間である。
復号化ユニットmの上記削除時間は、以下のように規定される。変数ClockDiffは、ClockDiff = (num_units_in_tick-(num_units_in_sub_tick*(num_decoding_units_minus1+1)) / time_scale)と定義される。ある場合において、以下の式を満たすように、パラメータnum_units_in_tick、num_units_in_sub_tick、num_decoding_units_minus1が信号で伝達されることがビットストリーム適合性の要件となっていてもよい。
(num_units_in_tick-(num_units_in_sub_tick*(num_decoding_units_minus1+1))) >=0
別の場合において、以下の式を満たすように、パラメータnum_units_in_tick、num_units_in_sub_tick、num_decoding_units_minus1が信号で伝達されることがビットストリーム適合性の要件となってもよい。
(num_units_in_tick-(num_units_in_sub_tick*(num_decoding_units_minus1+1))) <=0
もしlow_delay_hrd_flagが0に等しい、または、tr,n( m ) >= taf( m )ならば、復号化ユニットmの上記削除時間は、tr( m ) = tr,n( m )で規定される。
上記の場合でなく(low_delay_hrd_flagが1に等しく、かつ、tr,n( m ) < taf( m )である)、かつ、sub_pic_cpb_params_present_flagが1に等しく、上記CPBがサブピクチャレベルで動作する場合に、ClockDiffがゼロより大きければ、上記アクセスユニットnの最新の復号化ユニットである場合の復号化ユニットmの上記削除時間は、tr( m ) = tr,n( m ) + Tc * Ceil( ( taf( m ) - tr,n( m ) ) / Tc) + ClockDiffで規定される。
上記の場合でなく(low_delay_hrd_flagが1に等しく、かつ、tr,n( m ) < taf( m )である)、かつ、sub_pic_cpb_params_present_flagが1に等しく、上記CPBがアクセスユニットレベルで動作する場合に、ClockDiffがゼロより小さければ、アクセスユニットnの上記削除時間は、tr( m ) = tr,n( m ) + tc * Ceil( ( taf( m ) - tr,n( m ) ) / tc ) - ClockDiffで規定される。
上記の場合でなければ(low_delay_hrd_flagが1に等しく、かつ、tr,n( m ) < taf( m )である)、復号化ユニットmの上記削除時間は、tr( m ) = tr,n( m ) + Tc * Ceil( ( taf( m ) - tr,n( m ) ) / Tc)で規定される。後者の場合(low_delay_hrd_flagが1に等しく、かつ、tr,n( m ) < taf( m )である)は、復号化ユニットmのサイズb( m )が非常に大きく、上記公称削除時間での削除が妨げられることを示す。
上記の場合でなく(low_delay_hrd_flagが1に等しく、かつ、tr,n( m ) < taf( m )である)、かつ、画像タイミングフラグが1に設定されており、上記CPBがサブピクチャレベルで動作している場合、アクセスユニットの最新の復号化ユニットmの削除時間tr( m )は、以下の式によって設定される。
tr( m ) = tr,n( m ) + min( (tc_sub* Ceil( ( taf( m ) - tr,n( m ) ) / tc_sub ))、(tc * Ceil( ( taf( n ) - tr,n( n ) ) / tc )))、
式中、tr,n( m )は、上記最新の復号化ユニットmの上記公称削除時間であり、tc_subは、サブピクチャクロックティックであり、Ceil()は、天井関数であり、taf( m )は、最新の復号化ユニットmの最終到着時間であり、tr,n( n )は、上記アクセスユニットnの上記公称削除時間であり、tcはクロックティックであり、taf( n )は、アクセスユニットnの最終到着時間である。
上記の場合でなく(low_delay_hrd_flagが1に等しく、かつ、tr,n( n ) < taf( n )である)、かつ、画像タイミングフラグが1に設定されており、上記CPBがアクセスユニットレベルで動作している場合、アクセスユニットnの削除時間tr( n )は、以下の式によって設定される。
tr( n ) = tr,n( n ) + min( (tc_sub* Ceil( ( taf( m ) - tr,n( m ) ) / tc_sub )), (tc * Ceil( ( taf( n ) - tr,n( n ) ) / tc)))、
式中、tr,n( m )は、上記最新の復号化ユニットnの上記公称削除時間であり、tc_subは、サブピクチャクロックティックであり、Ceil()は、天井関数であり、taf( m )は、最新の復号化ユニットmの最終到着時間であり、tr,n( n )は、上記アクセスユニットnの上記公称削除時間であり、tcはクロックティックであり、taf( n )は、アクセスユニットnの最終到着時間である。
上記の場合でなく(low_delay_hrd_flagが1に等しく、かつ、tr,n( m ) < taf( m )である)、かつ、画像タイミングフラグが1に設定されており、上記CPBがサブピクチャレベルで動作している場合、アクセスユニットの最新の復号化ユニットmの削除時間tr( m )は、以下の式によって設定される。
tr( m ) = tr,n( m ) + (tc* Ceil( ( taf( n ) - tr,n( n ) ) / tc ))、
式中、tr,n( m )は、上記最新の復号化ユニットmの上記公称削除時間であり、tc_subは、サブピクチャクロックティックであり、Ceil()は、天井関数であり、taf( m )は、最新の復号化ユニットmの最終到着時間であり、tr,n( n )は、上記アクセスユニットnの上記公称削除時間であり、tcはクロックティックであり、taf( n )は、アクセスユニットnの最終到着時間である。
上記の場合でなく(low_delay_hrd_flagが1に等しく、かつ、tr,n( n ) < taf( n )である)、かつ、画像タイミングフラグが1に設定されており、上記CPBがアクセスユニットレベルで動作している場合、アクセスユニットnの削除時間tr( n )は、以下の式によって設定される。
tr( n ) = tr,n( n ) + (tc* Ceil( ( taf( n ) - tr,n( n ) ) / tc ))、
式中、tr,n( m )は、上記最新の復号化ユニットnの上記公称削除時間であり、tc_subは、サブピクチャクロックティックであり、Ceil()は、天井関数であり、taf( m )は、最新の復号化ユニットmの最終到着時間であり、tr,n( n )は、上記アクセスユニットnの上記公称削除時間であり、tcはクロックティックであり、taf( n )は、アクセスユニットnの最終到着時間である。
上記の場合でなく(low_delay_hrd_flagが1に等しく、かつ、tr,n( m ) < taf( m )である)、かつ、画像タイミングフラグが1に設定されており、上記CPBがサブピクチャレベルで動作している場合、上記アクセスユニットの最新の復号化ユニットではない復号化ユニットの削除時間は、tr( m ) = taf( m )(式中、taf( m )は、復号化ユニットmの最終到着時間である)として設定される。そして、アクセスユニットの最新の復号化ユニットmの削除時間tr( m )は、以下の式によって設定される。
tr( m ) = tr,n( m ) + (tc_sub* Ceil( ( taf( m ) - tr,n( m ) ) / tc_sub ))、
式中、tr,n( m )は、上記最新の復号化ユニットmの上記公称削除時間であり、tc_subは、サブピクチャクロックティックであり、Ceil()は、天井関数であり、taf( m )は、最新の復号化ユニットmの最終到着時間であり、tr,n( n )は、上記アクセスユニットnの上記公称削除時間であり、tcはクロックティックであり、taf( n )は、アクセスユニットnの最終到着時間であり、taf( m )は、上記アクセスユニットnにおける最新の復号化ユニットmの最終到着時間である。
上記の場合でなく(low_delay_hrd_flagが1に等しく、かつ、tr,n( m ) < taf( m )である)、かつ、画像タイミングフラグが1に設定されており、上記CPBがサブピクチャレベルで動作している場合、上記アクセスユニットの最新の復号化ユニットではない復号化ユニットの削除時間は、tr( m ) = taf( m )(式中、taf( m )は、復号化ユニットmの最終到着時間である)として設定される。そして、アクセスユニットの最新の復号化ユニットmの削除時間tr( m )は、以下の式によって設定される。
tr( m ) = tr,n( m ) + (tc* Ceil( ( taf( m ) - tr,n( m ) ) / tc ))、
式中、tr,n( m )は、上記最新の復号化ユニットmの上記公称削除時間であり、tc_subは、サブピクチャクロックティックであり、Ceil()は、天井関数であり、taf( m )は、最新の復号化ユニットmの最終到着時間であり、tr,n( n )は、上記アクセスユニットnの上記公称削除時間であり、tcはクロックティックであり、taf( n )は、アクセスユニットnの最終到着時間であり、taf( m )は、上記アクセスユニットnにおける最新の復号化ユニットmの最終到着時間である。
上記の場合でなく(low_delay_hrd_flagが1に等しく、かつ、tr,n( m ) < taf( m )である)、かつ、画像タイミングフラグが1に設定されており、上記CPBがサブピクチャレベルで動作している場合、上記復号化ユニットの削除時間は、以下の式として設定される。
tr( m ) = taf( m )、
式中、tr,n( m )は、上記復号化ユニットmの上記公称削除時間であり、tc_subは、サブピクチャクロックティックであり、Ceil()は、天井関数であり、taf( m )は、復号化ユニットmの最終到着時間であり、tr,n( n )は、上記アクセスユニットnの上記公称削除時間であり、tcはクロックティックであり、taf( n )は、アクセスユニットnの最終到着時間であり、taf( m )は、上記アクセスユニットnにおける上記復号化ユニットmの最終到着時間である。
上記の場合でなく(low_delay_hrd_flagが1に等しく、かつ、tr,n( n ) < taf( n )である)、かつ、画像タイミングフラグが1に設定されており、上記CPBがアクセスユニットレベルで動作している場合、アクセスユニットnの削除時間tr( n )は、以下の式によって設定される。
tr( n ) = taf( n )、
式中、tr,n( m )は、上記最新の復号化ユニットnの上記公称削除時間であり、tc_subは、サブピクチャクロックティックであり、Ceil()は、天井関数であり、taf( m )は、最新の復号化ユニットmの最終到着時間であり、tr,n( n )は、上記アクセスユニットnの上記公称削除時間であり、tcはクロックティックであり、taf( n )は、アクセスユニットnの最終到着時間である。
SubPicCpbFlagが1に等しい場合、アクセスユニットnの上記公称CPB削除時間tr,n( n )は、アクセスユニットnにおける最新の復号化ユニットの上記公称CPB削除時間に設定され、アクセスユニットnの上記CPB削除時間tr( n )は、アクセスユニットnにおける上記最新の復号化ユニットの上記CPB削除時間に設定される。
SubPicCpbFlagが0に等しい場合、各復号化ユニットはアクセスユニットである。よって、アクセスユニットnの上記公称CPB削除時間および上記CPB削除時間は、復号化ユニットnの上記公称CPB削除時間および上記CPB削除時間である。上記復号化ユニットは、復号化ユニットmのCPB削除時間に、瞬時に復号化される。
上の記述に示されるように、本明細書中に開示される上記システム及び方法は、サブピクチャに基づくパラメータを伝える画像タイミングSEIメッセージのビットストリームを変更するシンタックスおよびセマンティックスを実現する。いくつかの構成において、本明細書中に開示される上記システム及び方法をHEVC仕様に適用してもよい。
便宜上、本明細書中に開示される上記システム及び方法に適用できるいくつかの定義が以下の通り与えられる。ランダムアクセスポイントは、現在の画像および出力順において、前記現在の画像の後にくる全画像を復号化するために、ビットストリームの復号化が上記ランダムアクセスポイントに先行するビットストリームにおけるどのポイントへのアクセスをも必要としない場合のデータストリーム(例:上記ビットストリーム)における任意のポイントであってもよい。
バッファリング期間は、復号化順序における上記バッファリング期間SEIメッセージにおける2つのインスタンス間のアクセスユニットのセットとして規定されてもよい。付加エンハンスメント情報(SEI)は、VCL NALユニットからの符号化画像のサンプルを復号化するために必要とされない情報を含んでいてもよい。SEIメッセージは、復号化、表示、あるいは、その他目的に関係する手順において役に立つものであってもよい。適合する復号装置は、HEVC仕様(例えば、HEVC仕様のアネックスC(JCTVC−I1003)は、適合仕様を含んでいる)へ出力順を適合させる目的でこの情報を処理することを求められることはない。あるSEIメッセージ情報が、ビットストリームの適合性を確認するため、および、出力タイミングに関する復号装置の適合を確認するために用いられてもよい。
バッファリング期間SEIメッセージは、バッファリング期間に関連するSEIメッセージであってもよい。画像タイミングSEIメッセージは、CPBの削除時間に関連するSEIメッセージであってもよい。これらのメッセージは、ビットストリームの到着時間および符号化画像の削除時間を定義するシンタックスおよびセマンティックスを定義してもよい。
符号化画像バッファ(CPB)は、仮想参照復号装置(HRD)において規定される復号化順序でアクセスユニットを含む先入先出バッファであってもよい。アクセスユニットは、復号化順序で連続するネットワーク抽象化レイヤ(NAL)ユニットのセットであってもよく、厳密に一つの符号化画像を含んでいてもよい。上記符号化画像の符号化スライスのNALユニットに加えて、上記アクセスユニットは、上記符号化画像のスライスを含んでいない他のNALユニットも含んでいてもよい。アクセスユニットの復号化は、常に、復号化画像をもたらす。NALユニットは、続くデータのタイプの表示を含むシンタックス構造およびエミュレーション防止バイトと共に必要に応じて組み入れられるローバイトシーケンスペイロードの形式のそのデータを含むバイトであってもよい。
本明細書中に用いられる、用語「共通」は、通常、一つ以上のものに適用可能なシンタックス要素または変数を指す。例えば、画像タイミングSEIメッセージにおけるシンタックス要素の内容において、用語「共通(common)」は、上記シンタックス要素(例:common_du_cpb_removal_delay)が上記画像タイミングSEIメッセージに関連するアクセスユニットにおける全復号化ユニットに適用できることを意味していてもよい。さらに、「n」および「m」で記載されるデータのユニットは、通常、それぞれ、アクセスユニットおよび復号化ユニットを指す。
類似する符号が機能上類似する構成要素を示す図面を参照して、以下に、様々な構成を記載する。本明細書において概要を記載され、図に示される上記システムおよび方法は、幅広く様々に異なる構成にして、設計することが可能である。よって、図面に表されるようないくつかの構成の以下のより詳細な記載は、請求の範囲を限定するものではなく、上記システムおよび方法の単に代表的なものである。
図1Aは、メッセージを送信し、ビットストリームをバッファリングするためのシステムおよび方法を実装できる一つ以上の電子装置102の例を示すブロック図である。この例において、電子装置A102aおよび電子装置B102bが示される。ここで、電子装置A102aおよび電子装置B102bに関して記載される特徴および機能性の一つ以上のものは、いくつかの構成において、一つの電子装置に一体化されてもよいことに注意すべきである。
電子装置A102aは、符号化装置104を含んでいる。上記符号化装置104は、メッセージ生成モジュール108を含んでいる。電子装置A102aの中に含まれる各構成要素(例:上記符号化装置104および上記メッセージ生成モジュール108)は、ハードウェア、ソフトウェア、または、両者の組み合わせで実装してもよい。
電子装置A102aは、一つ以上の入力画像106を取得してもよい。いくつかの構成において上記入力画像106は、画像センサを用いて電子装置A102aで取得、メモリから取得、および/または、他の電子装置から取得してもよい。
上記符号化装置104は、符号化データを作り出すために、上記入力画像106を符号化してもよい。例えば、上記符号化装置104は、一連の入力画像106(例:映像)を符号化してもよい。ある構成において、上記符号化装置104は、HEVC符号化装置であってもよい。上記符号化データは、デジタルデータ(例:ビットストリーム114の一部)であってもよい。上記符号化装置104は、入力信号に基づき、オーバーヘッドシグナリングを発生させてもよい。
上記メッセージ生成モジュール108は、一つ以上のメッセージを生成してもよい。例えば、上記メッセージ生成モジュール108は、一つ以上のSEIメッセージまたは他のメッセージを生成してもよい。サブピクチャレベルの動作をサポートするCPBに対して、上記電子装置102は、サブピクチャパラメータ(例:CPB削除遅延パラメータ)を送信してもよい。具体的には、上記電子装置102(例:上記符号化装置104)は、画像タイミングSEIメッセージに共通復号化ユニットCPB削除遅延パラメータを含むかどうかを決定してもよい。例えば、上記符号化装置104が上記画像タイミングSEIメッセージに共通復号化ユニットCPB削除遅延パラメータ(例:common_du_cpb_removal_delay)を含んでいる場合、上記電子装置は、フラグ(例:common_du_cpb_removal_delay_flag)を1に設定してもよい。上記共通復号化ユニットCPB削除遅延パラメータが含まれる場合、上記電子装置は、アクセスユニットにおける全復号化ユニットに適用できる上記共通復号化ユニットCPB削除遅延パラメータを生成してもよい。すなわち、アクセスユニットにおける復号化ユニットごとに復号化ユニットCPB削除遅延パラメータを含むよりも、共通パラメータが、上記画像タイミングSEIメッセージが関連する上記アクセスユニットにおける全復号化ユニットに適用されてもよい。
一方、上記画像タイミングSEIメッセージに上記共通復号化ユニットCPB削除遅延パラメータが含まれるべきでない場合、上記電子装置102は、上記画像タイミングSEIメッセージが関連する上記アクセスユニットにおける復号化ユニットごとに別の復号化ユニットCPB削除遅延を発生してもよい。メッセージ生成モジュール108は、以下の図2および図3に関連して記載される手順のうちの一つ以上を実行してもよい。
いくつかの構成において、電子装置A102aは、ビットストリーム114の一部として電子装置B102bに上記メッセージを送信してもよい。いくつかの構成において、電子装置A102aは、別の伝送110で上記メッセージを電子装置B102bに送信してもよい。例えば、上記別の伝送は、ビットストリーム114の一部でなくてもよい。例えば、画像タイミングSEIメッセージまたは他のメッセージは、ある帯域外機構を用いて送信してもよい。いくつかの構成において、他のメッセージが、上に記載の画像タイミングSEIメッセージの特徴の一つ以上を含んでいてもよい。さらに、一つ以上の態様において、上記他のメッセージを上に記載のSEIメッセージと同様に利用してもよいことに注意すべきである。
上記符号化装置104(および、例えば、メッセージ生成モジュール108)は、ビットストリーム114を作り出してもよい。上記ビットストリーム114は、上記入力画像106に基づく符号化画像データを含んでいてもよい。いくつかの構成において、上記ビットストリーム114は、画像タイミングSEIメッセージまたは他のメッセージ、スライスヘッダー、PPSなどのオーバーヘッドデータを含んでいてもよい。追加入力画像106が符号化される時に、上記ビットストリーム114は、一つ以上の符号化画像を含んでもよい。例えば、上記ビットストリーム114は、対応するオーバーヘッドデータ(例:画像タイミングSEIメッセージまたは他のメッセージ)と共に一つ以上の符号化画像を含んでいてもよい。
上記ビットストリーム114は、復号装置112に与えられてもよい。一例において、上記ビットストリーム114は、有線または無線リンクを用いて、電子装置B102bへ伝送してもよい。いつくかの場合において、これはインターネットまたはローカルエリア・ネットワーク(LAN)のようなネットワーク上で行われてもよい。図1Aに示されるように、上記復号装置112は、電子装置A102aの上記符号化装置104とは別に、電子装置B102bで実装してもよい。ここで、いくつかの構成において、上記符号化装置104と復号装置112とが、同じ電子装置に実装されてもよいことに注意すべきである。上記符号化装置104および復号装置112が同じ電子装置で実装されるように実施する場合、例えば、上記ビットストリーム114は、上記復号装置112へバスを経由して与えられてもよいし、上記復号装置112により取得されるようにメモリに保存されていてもよい。
上記復号装置112は、ハードウェア、ソフトウェア、または、両者の組み合わせにより実装してもよい。ある構成において、上記復号装置112は、HEVC復号装置であってもよい。上記復号装置112は、上記ビットストリーム114を受信(例:取得)してもよい。上記復号装置112は、上記ビットストリーム114に基づいて一つ以上の復号化画像118を生成してもよい。上記復号化画像118の表示、再生、メモリ保存、他の装置への伝送などのうちいずれか一つ以上をしてもよい。
上記復号装置112は、CPB120を含んでいてもよい。上記CPB120は、符号化画像を一時的に保存してもよい。上記CPB120は、いつデータを削除するかを決定するために、画像タイミングSEIメッセージにおいて見つけられるパラメータを用いてもよい。上記CPB120がサブピクチャレベルの動作をサポートする場合、一度にアクセスユニット全体が削除されるのではなく、個別の復号化ユニットが削除されてもよい。上記復号装置112は、復号化画像バッファ(DPB)122を含んでいてもよい。各復号化画像は、出力およびクロッピングのためだけでなく、復号化処理の参照用に上記DPB122に配置される。復号化画像は、DPB出力時間の後半に、または、インター予測参照用に必要とされなくなった時に、上記DPBから削除される。
上記復号装置112は、メッセージ(例:画像タイミングSEIメッセージまたは他のメッセージ)を受信してもよい。さらに、上記復号装置112は、上記受信したメッセージが共通復号化ユニットCPB削除遅延パラメータ(例:common_du_cpb_removal_delay)を含んでいるかを判定してもよい。これの判定には、上記画像タイミングSEIメッセージに上記共通パラメータが存在する場合に設定されるフラグ(例:common_du_cpb_removal_delay_flag)を識別する工程が含まれていてもよい。上記共通パラメータが存在すれば、上記復号装置112は上記アクセスユニットにおける全復号化ユニットに適用可能な上記共通復号化ユニットCPB削除遅延パラメータを決定できる。上記共通パラメータが存在しなければ、上記復号装置112は、上記アクセスユニットにおける復号化ユニットごとに別の復号化ユニットCPB削除遅延パラメータを決定してもよい。さらに、上記復号装置112は、上記共通復号化ユニットCPB削除遅延パラメータまたは上記別の復号化ユニットCPB削除遅延パラメータを用いて、上記CPB120から復号化ユニットを削除してもよい。上記CPB120は、以下の図4および図5に関係して記載される手順のうちの一つ以上を実行してもよい。
上に記載されたHRDは、図1Aに示される上記復号装置112の一例であってもよい。よって、いくつかの構成において、電子装置102は、上記のHRD、CPB120およびDPB122に基づいて動作してもよい。
上記電子装置102に含まれる構成要素またはその部分の一つ以上がハードウェアで実装されてもよいことに注意すべきである。例えば、これらの構成要素またはその部分の一つ以上が、チップ、電気回路またはハードウェア部品などとして実装されていてもよい。本明細書において記載される上記機能および方法の一つ以上が、ハードウェアを用いて実装、および/または、実行されてもよいことにも注意をすべきである。例えば、本明細書において記載される上記方法のうちの一つ以上が、チップセット、特定用途向け集積回路(ASIC)、大規模集積回路(LSI)または集積回路等として実装、および/または、それらを用いて実現されてもよい。
図1Bは、符号化装置1908および復号装置1972の別の例を示すブロック図である。本例において、電子装置A1902および電子装置B1970が示される。しかし、いくつかの構成において、電子装置A1902および電子装置B1970に関連して記載される特徴および機能性は、一つの電子装置に一体化されていてもよいことに注意すべきである。
電子装置A1902は、上記符号化装置1908を含んでいる。上記符号化装置1908は、ベースレイヤ符号化装置1910およびエンハンスメントレイヤ符号化装置1920を含んでいてもよい。上記映像符号化装置1908は、後述するように、スケーラブル映像符号化およびマルチビュー映像符号化に適している。上記符号化装置1908は、ハードウェア、ソフトウェア、または、両者の組み合わせにより実装されていてもよい。ある構成において、上記符号化装置1908は、高効率映像符号化方式(HEVC)符号化装置であり、スケーラブルおよび/またはマルチビューを含んでいてもよい。別の符号化装置を同様に用いてもよい。電子装置A1902は、ソース1906を取得してもよい。いくつかの構成において、上記ソース1906は、画像センサを用いて電子装置A1902で取得、メモリから取得、または、別の電子装置から受信してもよい。
上記符号化装置1908は、ベースレイヤビットストリーム1934およびエンハンスメントレイヤビットストリーム1936を作り出すために、上記ソース1906を符号化してもよい。例えば、上記符号化装置1908は、上記ソース1906における一連の画像(例:映像)を符号化してもよい。特に、品質スケーラビリティとしても知られるSNRスケーラビリティに関するスケーラブル映像符号化の目的で、同じソース1906を上記ベースレイヤおよび上記エンハンスメントレイヤ符号化装置に与えてもよい。特に、空間スケーラビリティのスケーラブル映像符号化の目的で、ダウンサンプルしたソースを上記ベースレイヤ符号化装置に使用してもよい。特に、マルチビュー符号化の目的で、異なるビューソースを上記ベースレイヤ符号化装置および上記エンハンスメントレイヤ符号化装置に使用してもよい。上記符号化装置1908は、図6Bに関連して後述する符号化装置1782に似ていてもよい。
上記ビットストリーム1934、1936は、上記ソース1906に基づく符号化画像データを含んでいてもよい。いくつかの構成において、上記ビットストリーム1934、1936は、スライスヘッダー情報やPPS情報などのようなオーバーヘッドデータも含んでいてもよい。上記ソース1906における追加画像が符号化される時に、上記ビットストリーム1934、1936は、一つ以上の符号化画像を含んでもよい。
上記ビットストリーム1934、1936は、上記復号装置1972に与えられてもよい。上記復号装置1972は、ベースレイヤ復号装置1980およびエンハンスメントレイヤ復号装置1990を含んでいてもよい。上記映像復号装置1972は、スケーラブル映像復号化およびマルチビュー映像復号化に適している。一例において、上記ビットストリーム1934、1936は、有線または無線リンクを用いて、電子装置B1970に伝送されてもよい。いくつかの場合、これの伝送は、インターネットまたはローカルエリア・ネットワーク(LAN)のようなネットワーク上で行われてもよい。図1Bに示すように、上記復号装置1972は、電子装置A1902の上記符号化装置1908とは別に電子装置B1970に実装されてもよい。ここで、いくつかの構成において、上記符号化装置1908および復号装置1972が同じ電子装置に実装されていてもよいことに注意すべきである。上記符号化装置1908と復号装置1972とが同じ電子装置に実装されるように実施する場合、例えば、上記ビットストリーム1934、1936は、上記復号装置1972へバスを経由して与えられてもよいし、上記復号装置1972により取得されるようにメモリに保存されていてもよい。上記復号装置1972は、出力として、復号化ベースレイヤ1992および復号化エンハンスメントレイヤ画像1994を供給してもよい。
上記復号装置1972は、ハードウェア、ソフトウェア、または両者の組み合わせにより実装してもよい。ある構成において、上記復号装置1972は、高効率映像符号化方式(HEVC)復号装置であり、スケーラブルおよび/またはマルチビューを含んでいてもよい。別の復号装置を同様に用いてもよい。上記復号装置1972は、図7Bに関連して後述する復号装置1812に類似するものであってもよい。また、上記ベースレイヤ符号化装置および/または上記エンハンスメントレイヤ符号化装置のそれぞれが、図1Aに関連して記載されたもののような、メッセージ生成モジュールを含んでいてもよい。また、上記ベースレイヤ復号装置および/または上記エンハンスメントレイヤ復号装置は、図1Aに関連して記載されたもののような符号化画像バッファおよび/または復号化画像バッファを含んでいてもよい。さらに、図1Bの上記電子装置は、適用できる場合、図1Aの上記電子装置の機能に基づいて動作してもよい。
図2は、メッセージを送信するための方法200の一構成を示すフローチャートである。上記方法200は、符号化装置104またはその副部品の一つ(例:メッセージ生成モジュール108)によって実行してもよい。上記符号化装置104は、CPB120がサブピクチャレベルの動作をサポートするかどうかを示す画像タイミングフラグ(例:sub_pic_cpb_params_present_flag)を決定してもよい(202)。例えば、上記画像タイミングフラグが1に設定されている場合、上記CPB120は、アクセスユニットレベルまたはサブピクチャレベルで動作してもよい。上記画像タイミングフラグが1に設定されている場合であっても、上記サブピクチャレベルで実際に動作するかの決定は上記復号装置112自体に委ねられることに注意すべきである。
また、上記符号化装置104は、アクセスユニットにおける復号化ユニットに対する一つ以上の削除遅延を決定してもよい(204)。例えば、上記符号化装置104が、上記CPB120からの上記アクセスユニットにおける全復号化ユニットに適用可能な一つの共通復号化ユニットCPB削除遅延パラメータ(例:common_du_cpb_removal_delay)を決定してもよい。あるいは、上記符号化装置104は、上記アクセスユニットにおける復号化ユニットごとに別の復号化ユニットCPB削除遅延(例:du_cpb_removal_delay[i])を決定してもよい。
さらに上記符号化装置104は、上記アクセスポイントにおける各復号化ユニット内のNALユニットの1でオフセットされる量を示す一つ以上のNALパラメータを決定してもよい(206)。例えば、上記符号化装置104は、上記CPB120からの上記アクセスユニットにおける全復号化ユニットに適用可能な一つの共通NALパラメータ(例:common_num_nalus_in_du_minus1)を決定してもよい。あるいは、上記符号化装置104は、上記アクセスユニットにおける復号化ユニットごとに別の復号化ユニットCPB削除遅延(例:num_nalus_in_du_minus1[i])を決定してもよい。
また、上記符号化装置104は、上記画像タイミングフラグ、上記削除遅延および上記NALパラメータを含む画像タイミングSEIメッセージを送付してもよい(208)。また、上記画像タイミングSEIメッセージは、他のパラメータ(例:cpb_removal_delay、dpb_output_delayなど)も含んでいてもよい。例えば、上記電子装置102は、一つ以上の無線伝送、有線伝送、デバイスバス、ネットワークなどを経由して上記メッセージを伝送してもよい。例えば、電子装置A102aは、上記メッセージを電子装置B102bへ送信してもよい。上記メッセージは、例えば、上記ビットストリーム114の一部であってもよい。いくつかの構成において、電子装置A102aは、(上記ビットストリーム114の一部ではない)別の伝送110で上記メッセージを電子装置B102bへ送信してもよい(208)。
例えば、上記メッセージは、ある帯域外機構を用いて送信されてもよい。ある場合においては、204、206で示される上記情報は画像タイミングSEIメッセージとは異なるSEIメッセージで送信されてもよい。さらに別の場合、204、206に示される上記情報は、パラメータセット(例えば、映像パラメータセットおよび/またはシーケンスパラメータセットおよび/または画像パラメータセット および/または適応パラメータセットおよび/またはスライスヘッダー)で送信されてもよい。
図3は、アクセスユニットにおける復号化ユニットに対する一つ以上の削除遅延を決定する方法300の一構成を示すフローチャートである。すなわち、図3に示される上記方法300は、図2に示される上記方法200におけるステップ204をさらに図示するものであってもよい。上記方法300は、符号化装置104により実行してもよい。上記符号化装置104は、共通復号化ユニットCPB削除遅延パラメータ(例:common_du_cpb_removal_delay)を含むかどうかを決定してもよい(302)。
この決定は、共通復号化ユニットCPB削除遅延フラグ(例:common_du_cpb_removal_delay_flag)が設定されているかどうかを判定する工程を含んでいてもよい。上記復号化ユニットが上記CPBから定期的に削除される場合、符号化装置104はこの共通パラメータを送信してもよい。この場合とは、例えば、各復号化ユニットが画像の一定数の行に対応する場合、または、他の規則的な構造を有する場合であってもよい。
例えば、上記共通復号化ユニットCPB削除遅延パラメータが上記画像タイミングSEIメッセージに含まれるべきである場合、上記共通復号化ユニットCPB削除遅延フラグを1に設定してもよく、上記共通復号化ユニットCPB削除遅延パラメータが上記画像タイミングSEIメッセージに含まれるべきでない場合、上記共通復号化ユニットCPB削除遅延フラグを0に設定してもよい。Yes(例:フラグが1に設定されている)であれば、上記符号化装置104は、アクセスユニットにおける全復号化ユニットに適用可能な共通復号化ユニットCPB削除遅延パラメータ(例:common_du_cpb_removal_delay)を決定してもよい(304)。No(例:フラグが0に設定されている)であれば、上記符号化装置104は、アクセスユニットにおける復号化ユニットごとに別の復号化ユニットCPB削除遅延パラメータ(例:du_cpb_removal_delay[i])を決定してもよい(306)。
共通復号化ユニットCPB削除遅延パラメータが画像タイミングSEIメッセージに存在するのであれば、共通復号化ユニットCPB削除遅延パラメータは、直前の復号化ユニットを上記CPB120から削除した後から上記画像タイミングSEIメッセージに関連する上記アクセスユニットにおける現在の復号化ユニットを上記CPB120から削除するまでに待つべきサブピクチャクロックティックの量を規定してもよい。
例えば、復号化ユニットが第1のアクセスユニットにおける第1の復号化ユニットである場合、上記共通復号化ユニットCPB120の削除遅延パラメータは、前のアクセスユニットにおける最も近いバッファリング期間SEIメッセージに関連するアクセスユニットにおける最新の復号化ユニットを上記CPB120から削除した後から上記画像タイミングSEIメッセージに関連する上記アクセスユニットにおける上記第1の復号化ユニットを上記CPB120から削除するまでに待つべきサブピクチャクロックティックの量を規定してもよい。
上記復号化ユニットがアクセスユニットにおける第1の復号化ユニットではない場合、上記共通復号化ユニットCPB削除遅延パラメータは、上記画像タイミングSEIメッセージに関連する上記アクセスユニットにおける前の復号化ユニットを上記CPB120から削除した後から上記画像タイミングSEIメッセージに関連する上記アクセスユニットにおける現在の復号化ユニットを上記CPBから削除するまでに待つべきサブピクチャクロックティックの量を規定してもよい。
逆に、共通復号化ユニットCPB削除遅延パラメータ(例:common_du_cpb_removal_delay)が、画像タイミングSEIメッセージにおいて送付されない場合、別の復号化ユニットCPB削除遅延パラメータ(例:du_cpb_removal_delay[i])がアクセスユニットにおける復号化ユニットごとの上記画像タイミングSEIメッセージに含まれていてもよい。上記復号化ユニットCPB削除遅延パラメータ(例:du_cpb_removal_delay[i])は、上記最新の復号化ユニットを上記CPB120から削除した後から上記画像タイミングSEIメッセージに関連する上記アクセスユニットにおけるi番目の復号化ユニットを上記CPB120から削除するまでに待つべきサブピクチャクロックティックの量を規定してもよい。上記復号化ユニットCPB削除遅延パラメータは、モジュロ2(cpb_removal_delay_length_minus1 + 1)計数器の剰余(cpb_removal_delay_length_minus1 + 1は共通復号化ユニットCPB削除遅延パラメータの長さである)によって算出されてもよい。
図4は、ビットストリームをバッファリングする方法400の一構成を示すフローチャートである。上記方法400は、電子装置102(例:電子装置B102b)における復号装置112により実行されてもよく、この電子装置102は、メッセージ(例:画像タイミングSEIメッセージまたは他のメッセージ)を受信してもよい(402)。例えば、上記電子装置102は、無線伝送、有線伝送、デバイスバス、ネットワークなどのうちの一つ以上を経由して上記メッセージを受信してもよい(402)。例えば、電子装置B102bは、電子装置A102aから上記メッセージを受信してもよい(402)。上記メッセージは、例えば、上記ビットストリーム114の一部であってもよい。別の例において、電子装置B102bは、(例えば、上記ビットストリーム114の一部ではない)別の伝送110において、上記メッセージを電子装置A102から上記メッセージを受信してもよい。例えば、上記画像タイミングSEIメッセージは、ある帯域外機構を用いて受信されてもよい。いくつかの構成において、上記メッセージは、画像タイミングフラグと、アクセスユニットにおける復号化ユニットに対する一つ以上の削除遅延と、一つ以上のNALパラメータとのうちの一つ以上を含んでいてもよい。したがって、上記メッセージの受信(402)が、画像タイミングフラグと、アクセスユニットにおける復号化ユニットの一つ以上の削除遅延と、一つ以上のNALパラメータとのうちの一つ以上の受信を含んでいてもよい。
上記復号装置112は、CPB120がアクセスユニットレベルで動作するのか、サブピクチャレベルで動作するのかを決定してもよい(404)。例えば、復号装置112は、低遅延を達成したい場合、サブピクチャに基づいて動作することを決定してもよい。あるいは、上記決定は上記復号装置112がサブピクチャに基づく動作をサポートするのに十分なリソースを有しているかどうかに基づいていてもよい。上記CPB120がサブピクチャレベルで動作するならば、上記復号装置は、アクセスユニットにおける復号化ユニットに対する一つ以上の削除遅延を決定してもよい(406)。例えば、上記復号装置112は、上記アクセスユニットにおける全復号化ユニットに適用可能な一つの共通復号化ユニットCPB削除遅延パラメータ(例:common_du_cpb_removal_delay)を決定してもよい。あるいは、上記復号装置112は、上記アクセスユニットにおける復号化ユニットごとに別の復号化ユニットCPB削除遅延(例:du_cpb_removal_delay[i])を決定してもよい。すなわち、上記画像タイミングSEIメッセージは、アクセスユニットにおける全復号化ユニットに適用可能な共通パラメータまたは復号化ユニットごとに別のパラメータを含んでいてもよい。
さらに、上記復号装置112は、上記復号化ユニットに対する上記削除遅延に基づいて、すなわち、アクセスユニットにおける全復号化ユニットに適用可能な共通パラメータを用いて、または、復号化ユニットごとに別のパラメータを用いて、復号化ユニットを削除してもよい(408)。また、上記復号装置112は、上記復号化ユニットを復号化してもよい(410)。
上記復号装置112は、削除時間を決定する時に、様々な信号伝達されたパラメータより決定した変数ClockDiffを用いてもよい。具体的には、ClockDiffは、以下の式で決定されてもよい。
ClockDiff = (num_units_in_tick-(num_units_in_sub_tick*(num_decoding_units_minus1+1)) / time_scale)、
式中、num_units_in_tickはクロックティック計数器の1増分に対応する周波数time_scale(Hz)で動作するクロックの時間単位の数であり、num_units_in_sub_tickはサブピクチャクロックティック計数器の1増分に対応する上記周波数time_scale(Hz)で動作するクロックの時間単位の数であり、num_decoding_units_minus1+1は上記アクセスユニットにおける復号化ユニットの量であり、time_scaleは1秒間に経過する上記時間単位の数である。
低遅延仮想参照復号装置(hypothetical reference decoder:HRD)フラグ(例:low_delay_hrd_flag)が1に設定されており、tr,n( m ) < taf( m )であり、画像タイミングフラグが1に設定されており、上記CPBがサブピクチャレベルで動作しており、かつ、ClockDiffがゼロより大きい場合、復号化ユニットmに対する上記削除時間tr( m )は、以下の式によって決定される。
tr( m ) = tr,n( m ) + tc_sub* Ceil( ( taf( m ) - tr,n( m ) ) / tc_sub ) + ClockDiff
式中、tr,n( m )は上記復号化ユニットmの公称削除時間であり、tc_subはサブピクチャクロックティックであり、Ceil()は天井関数であり、taf( m )は復号化ユニットmの最終到着時間である。
低遅延仮想参照復号装置(HRD)フラグ(例:low_delay_hrd_flag)が1に設定され、tr,n( n ) < taf( n )であり、画像タイミングフラグが1に設定されており、上記CPBがアクセスユニットレベルで動作しており、かつ、ClockDiffがゼロより大きい場合、アクセスユニットnに対する上記削除時間tr( n )は、以下の式によって決定される。
tr( n )= tr,n( n ) + tc* Ceil( ( taf( n ) - tr,n( n ) ) / tc ) - ClockDiff
式中、tr,n( n )は上記アクセスユニットnの公称削除時間であり、tcはクロックティックであり、Ceil()は天井関数であり、taf( n )はアクセスユニットnの最終到着時間である。
低遅延仮想参照復号装置(HRD)フラグ(例:low_delay_hrd_flag)が1に設定されており、tr,n( m ) < taf( m )であり、画像タイミングフラグが1に設定されており、かつ、上記CPBがサブピクチャレベルで動作している場合、アクセスユニットの最新の復号化ユニットmに対する上記削除時間tr(m)は、以下の式によって決定される。
tr( m ) = tr,n( m ) + max( (tc_sub* Ceil( ( taf( m ) - tr,n( m ) ) / tc_sub ))、(tc * Ceil( ( taf( n ) - tr,n( n ) ) / tc )))
式中、tr,n( m )は上記最新の復号化ユニットmの公称削除時間であり、tc_subはサブピクチャクロックティックであり、Ceil()は天井関数であり、taf( m )は最新の復号化ユニットmの最終到着時間であり、tr,n( n )は上記アクセスユニットnの公称削除時間であり、tcはクロックティックであり、taf(n)はアクセスユニットnの最終到着時間である。
低遅延仮想参照復号装置(HRD)フラグが1に設定されており、tr,n( n ) < taf( n )であり、画像タイミングフラグが1に設定されており、かつ、上記CPBがアクセスユニットレベルで動作している場合、アクセスユニットnに対する上記削除時間tr( n )は、以下の式によって決定される。
tr( n ) = tr,n( n ) + max( (tc_sub* Ceil( ( taf( m ) - tr,n( m ) ) / tc_sub ))、(tc * Ceil( ( taf( n ) - tr,n( n ) ) / tc )))
式中、tr,n( m )は上記最新の復号化ユニットnの公称削除時間であり、tc_subはサブピクチャクロックティックであり、Ceil()は天井関数であり、taf( m )は最新の復号化ユニットmの最終到着時間であり、tr,n( n )は上記アクセスユニットnの公称削除時間であり、tcはクロックティックであり、taf( n )はアクセスユニットnの最終到着時間である。
低遅延仮想参照復号装置(HRD)フラグ(例:low_delay_hrd_flag)が1に設定されており、tr,n( m ) < taf( m )であり、画像タイミングフラグが1に設定されており、かつ、上記CPBがサブピクチャレベルで動作している場合、アクセスユニットの最新の復号化ユニットmに対する上記削除時間tr(m)は、以下の式によって決定される。
tr( m ) = tr,n( m ) + min( (tc_sub* Ceil( ( taf( m ) - tr,n( m ) ) / tc_sub ), (tc * Ceil( ( taf( n ) - tr,n( n ) ) / tc))
式中、tr,n( m )は上記最新の復号化ユニットmの公称削除時間であり、tc_subはサブピクチャクロックティックであり、Ceil()は天井関数であり、taf( m )は最新の復号化ユニットmの最終到着時間であり、tr,n( n )は上記アクセスユニットnの公称削除時間であり、tcはクロックティックであり、taf( n )はアクセスユニットnの最終到着時間である。
低遅延仮想参照復号装置(HRD)フラグが1に設定されており、tr,n( n ) < taf( n )であり、画像タイミングフラグが1に設定されており、かつ、上記CPBがアクセスユニットレベルで動作している場合、アクセスユニットnに対する上記削除時間tr( n )は、以下の式によって決定される。
tr( n ) = tr,n( n ) + min( (tc_sub* Ceil( ( taf( m ) - tr,n( m ) ) / tc_sub ))、(tc * Ceil( ( taf( n ) - tr,n( n ) ) / tc )))
式中、tr,n( m )は上記最新の復号化ユニットnの公称削除時間であり、tc_subはサブピクチャクロックティックであり、Ceil()は天井関数であり、taf( m )は最新の復号化ユニットmの最終到着時間であり、tr,n( n )は上記アクセスユニットnの公称削除時間であり、tcはクロックティックであり、taf( n )はアクセスユニットnの最終到着時間である。
低遅延仮想参照復号装置(HRD)フラグ(例:low_delay_hrd_flag)が1に設定されており、tr,n( m ) < taf( m )であり、画像タイミングフラグが1に設定されており、かつ、上記CPBがサブピクチャレベルで動作している場合、アクセスユニットの最新の復号化ユニットmに対する上記削除時間tr(m)は、以下の式によって決定される。
tr( m ) = tr,n( m ) + (tc* Ceil( ( taf( n ) - tr,n( n ) ) / tc ))
式中、tr,n( m )は上記最新の復号化ユニットmの公称削除時間であり、tc_subはサブピクチャクロックティックであり、Ceil()は天井関数であり、taf( m )は最新の復号化ユニットmの最終到着時間であり、tr,n( n )は上記アクセスユニットnの公称削除時間であり、tcはクロックティックであり、taf( n )はアクセスユニットnの最終到着時間である。
低遅延仮想参照復号装置(HRD)フラグが1に設定されており、tr,n( n ) < taf( n )であり、画像タイミングフラグが1に設定されており、かつ、上記CPBがアクセスユニットレベルで動作している場合、アクセスユニットnに対する上記削除時間tr( n )は、以下の式によって決定される。
tr( n ) = tr,n( n ) + (tc* Ceil( ( taf( n ) - tr,n( n ) ) / tc ))
式中、tr,n( m )は上記最新の復号化ユニットnの公称削除時間であり、tc_subはサブピクチャクロックティックであり、Ceil()は天井関数であり、taf( m )は最新の復号化ユニットmの最終到着時間であり、tr,n( n )は上記アクセスユニットnの公称削除時間であり、tcはクロックティックであり、taf( n )はアクセスユニットnの最終到着時間である。
低遅延仮想参照復号装置(HRD)フラグ(例:low_delay_hrd_flag)が1に設定されており、tr,n( m ) < taf( m )であり、画像タイミングフラグが1に設定されており、かつ、上記CPBがサブピクチャレベルで動作している場合、アクセスユニットの最新の復号化ユニットではない復号化ユニットに対する削除時間は、tr( m ) = taf( m )(式中、taf( m )は、復号化ユニットmの最終到着時間である)として設定される。そして、アクセスユニットの最新の復号化ユニットmに対する削除時間tr( m )は、以下の式によって設定される。
tr( m ) = tr,n( m ) + (tc_sub* Ceil( ( taf( m ) - tr,n( m ) ) / tc_sub ))、
式中、tr,n( m )は、上記最新の復号化ユニットmの上記公称削除時間であり、tc_subは、サブピクチャクロックティックであり、Ceil()は、天井関数であり、taf( m )は、最新の復号化ユニットmの最終到着時間であり、tr,n( n )は、上記アクセスユニットnの上記公称削除時間であり、tcはクロックティックであり、taf( n )は、アクセスユニットnの最終到着時間であり、taf( m )は、上記アクセスユニットnにおける最新の復号化ユニットの最終到着時間である。
低遅延仮想参照復号装置(HRD)フラグ(例:low_delay_hrd_flag)が1に設定されており、tr,n( m ) < taf( m )であり、画像タイミングフラグが1に設定されており、かつ、上記CPBがサブピクチャレベルで動作している場合、アクセスユニットの最新の復号化ユニットではない復号化ユニットに対する削除時間は、tr( m ) = taf( m )(式中、taf( m )は、復号化ユニットmの最終到着時間である)として設定される。そして、アクセスユニットの最新の復号化ユニットmに対する削除時間tr( m )は、以下の式によって設定される。
tr( m ) = tr,n( m ) + (tc* Ceil( ( taf( m ) - tr,n( m ) ) / tc ))、
式中、tr,n( m )は、上記最新の復号化ユニットmの上記公称削除時間であり、tc_subは、サブピクチャクロックティックであり、Ceil()は、天井関数であり、taf( m )は、最新の復号化ユニットmの最終到着時間であり、tr,n( n )は、上記アクセスユニットnの上記公称削除時間であり、tcはクロックティックであり、taf( n )は、アクセスユニットnの最終到着時間であり、taf( m )は、上記アクセスユニットnにおける最新の復号化ユニットの最終到着時間である。
低遅延仮想参照復号装置(HRD)フラグ(例:low_delay_hrd_flag)が1に設定されており、tr,n( m ) < taf( m )であり、画像タイミングフラグが1に設定されており、かつ、上記CPBがサブピクチャレベルで動作している場合、上記復号化ユニットに対する上記削除時間は、tr( m ) = taf( m )として設定される。式中、tr,n( m )は、上記復号化ユニットmの公称削除時間であり、tc_subはサブピクチャクロックティックであり、Ceil()は天井関数であり、taf( m )は復号化ユニットmの最終到着時間であり、tr,n( n )は、上記アクセスユニットnの公称削除時間であり、tcはクロックティックであり、taf( n ) はアクセスユニットnの最終到着時間であり、taf( m )は、上記アクセスユニットnにおける上記復号化ユニットの最終到着時間である。
低遅延仮想参照復号装置(HRD)フラグが1に設定されており、tr,n( n ) < taf( n )であり、画像タイミングフラグが1に設定されており、かつ、上記CPBがアクセスユニットレベルで動作している場合、アクセスユニットnに対する上記削除時間tr( n )は、以下の式によって決定される。
tr( n ) = taf( n )、
式中、tr,n( m )は上記最新の復号化ユニットnの公称削除時間であり、tc_subはサブピクチャクロックティックであり、Ceil()は天井関数であり、taf( m )は最新の復号化ユニットmの最終到着時間であり、tr,n( n )は上記アクセスユニットnの公称削除時間であり、tcはクロックティックであり、taf( n )はアクセスユニットnの最終到着時間である。
上記CPBがアクセスユニットレベルで動作していれば、上記復号装置112は、CPB削除遅延パラメータを決定してもよい(412)。このパラメータは、上記受信された画像タイミングSEIメッセージ(例:cpb_removal_delay)に含まれていてもよい。また、上記復号装置112は、上記CPB削除遅延パラメータに基づいてアクセスユニットを削除して(414)、上記アクセスユニットを復号化してもよい(416)。すなわち、上記復号装置112は、上記アクセスユニット内の復号化ユニットを復号化するよりは、全アクセスユニットを一度に復号化してもよい。
図5は、アクセスユニットにおける復号化ユニットに対する一つ以上の削除遅延を決定する方法500の一構成を示すフローチャートである。すなわち、図5に示される上記方法500は、図4に示される上記方法400におけるステップ406をさらに図示するものであってもよい。上記方法500は、復号装置112により実行されてもよい。上記復号装置112は、受信された画像タイミングSEIメッセージが共通復号化ユニットCPB削除遅延パラメータを含むかどうかを判定してもよい(502)。これの判定には、共通復号化ユニットCPB削除遅延フラグ(例:common_du_cpb_removal_delay_flag)が設定されているかどうかを判定する工程を含んでいてもよい。Yesならば、上記復号装置112は、アクセスユニットにおける全復号化ユニットに適用可能な共通復号化ユニットCPB削除遅延パラメータ(例:common_du_cpb_removal_delay)を決定してもよい(504)。Noであれば、上記復号装置112は、アクセスユニットにおける復号化ユニットごとに別の復号化ユニットCPB削除遅延パラメータ(例:du_cpb_removal_delay[i])を決定してもよい(506)。
上記画像タイミングSEIメッセージセマンティックスの変更に加えて、本システムおよび方法は、サブピクチャに基づくCPBの動作およびアクセスユニットに基づくCPBの動作が同じ復号化ユニット削除のタイミングをもたらすように、ビットストリーム上の制約を課してもよい。具体的には、上記画像タイミングフラグ(例:sub_pic_cpb_params_present_flag)が1に設定される場合、上記CPB削除遅延は下記によって設定できる。
式中、du_cpb_removal_delay[i]は上記復号化ユニットCPB削除遅延パラメータであり、tcはクロックティックであり、tc,subはサブピクチャクロックティックであり、num_decoding_units_minus1は、上記アクセスユニットにおける復号化ユニットの1でオフセットされる量であり、iはインデックスである。
または、上記CPB削除遅延は、次に記載するように設定してもよい。まず変数Tdu(k)を以下のように定義する。
式中、du_cpb_removal_delay_minus1k[i]およびnum_decoding_units_minus1kは、k番目のアクセスユニット(上記HRDを初期化する上記アクセスユニットについてk=0であり、かつ、k<1についてTdu(k)=0である)のI番目の復号化ユニットに対するパラメータであり、du_cpb_removal_delay_ minus1k[i]+1=du_cpb_removal_delay_minus1k[i]は、上記k番目のアクセスユニットの上記I番目の復号化ユニットに対する上記復号化ユニットCPB削除遅延パラメータであり、かつ、num_decoding_units_minus1kは、上記k番目のアクセスユニットにおける復号化ユニットの数であり、tcはクロックティックであり、tc,subはサブピクチャクロックティックであり、iおよびkはインデックスである。そして、上記画像タイミングフラグ(例:sub_pic_cpb_params_present_flag)が1に設定されている場合、以下の条件が真である。
(au_cpb_removal_delay_minus1 + 1)*tc == Tdu(k)、
式中、(au_cpb_removal_delay_minus1 + 1)=cpb_removal_delay、つまり、上記CPB削除遅延である。したがって、この場合、上記CPB削除遅延(au_cpb_removal_delay_minus1 + 1)は、サブピクチャに基づくCPBの動作とアクセスユニットに基づくCPBの動作とが同じタイミングでのアクセスユニット削除および上記アクセスユニット削除の最新の復号化ユニット削除をもたらすように設定される。
あるいは、上記CPB削除遅延は以下の式によって設定されてもよい。
式中、du_cpb_removal_delay[i]は上記復号化ユニットCPB削除遅延パラメータであり、tcはクロックティックであり、tc,subはサブピクチャクロックティックであり、num_decoding_units_minus1は、上記アクセスユニットにおける復号化ユニットの1でオフセットされる量であり、iはインデックスである。
あるいは、cpb_removal_delayおよびdu_cpb_removal_delay[num_decoding_units_minus1]は、以下の式によって設定されてもよい。
cpb_removal_delay*tc = du_cpb_removal_delay[num_decoding_units_minus1]* tc,sub、
式中、du_cpb_removal_delay[num_decoding_units_minus1]は「num_decoding_units_minus1」番目の復号化ユニットに対する上記復号化ユニットCPB削除遅延パラメータであり、tcはクロックティックであり、tc,subはサブピクチャクロックティックであり、num_decoding_units_minus1は、上記アクセスユニットにおける復号化ユニットの1でオフセットされる量である。
上記画像タイミングSEIメッセージセマンティックスの変更に加えて、本システムおよび方法は、サブピクチャに基づくCPBの動作とアクセスユニットに基づくCPBの動作とが同じタイミングでの復号化ユニット削除をもたらすように、ビットストリーム上の制約を課してもよい。具体的には、上記画像タイミングフラグ(例:sub_pic_cpb_params_present_flag)が1に設定される場合、cpb_removal_delayおよびdu_cpb_removal_delay[num_decoding_units_minus1]の値は次の式を満たすように設定してもよい。
-1<=(cpb_removal_delay*tc - du_cpb_removal_delay[num_decoding_units_minus1]* tc,sub) <=1、
式中、du_cpb_removal_delay[num_decoding_units_minus1]は「num_decoding_units_minus1」番目の復号化ユニットに対する上記復号化ユニットCPB削除遅延パラメータであり、tcはクロックティックであり、tc,subはサブピクチャクロックティックであり、num_decoding_units_minus1は、上記アクセスユニットにおける復号化ユニットの1でオフセットされる量である。
図6Aは、電子装置602の符号化装置604の一構成を示すブロック図である。上記電子装置602に含まれているように示される一つ以上の要素は、ハードウェア、ソフトウェアまたは両者の組み合わせで実装してもよい。例えば、上記電子装置602は、符号化装置604を含んでおり、この符号化装置604はハードウェア、ソフトウェアまたは両者の組み合わせで実装してもよい。例えば、上記符号化装置604は、実行可能な命令、ファームウェア、フィールド・プログラマブル・ゲート・アレイ(FPGA)など、または、これらの組み合わせを備えるメモリと電気的に通信する回路、集積回路、特定用途向け集積回路(ASIC)、プロセッサとして実装してもよい。いくつかの構成において、上記符号化装置604は、HEVC符号化装置であってもよい。
上記電子装置602は、ソース622を含んでいてもよい。上記ソース622は、一つ以上の入力画像606としての画像または画像データ(例:映像)を上記符号化装置604に供給してもよい。上記ソース622の例には、画像センサ、メモリ、通信インターフェース、ネットワークインターフェース、無線受信器、ポートなどを含んでいてもよい。
一つ以上の入力画像606は、フレーム内予測モジュール/再構成バッファ624に与えられてもよい。また、入力画像606は、動き推定/動き補償モジュール646と減算モジュール628とに与えられてもよい。
上記フレーム内予測モジュール/再構成バッファ624は、一つ以上の入力画像606および再構成データ660に基づいてイントラモード情報640およびイントラ信号626を生成してもよい。上記動き推定/動き補償モジュール646は、一つ以上の入力画像606および復号化画像バッファ676からの参照画像678に基づいて、インターモード情報648およびインター信号644を生成してもよい。いくつかの構成において、上記復号化画像バッファ676は、上記復号化画像バッファ676に一つ以上の参照画像からのデータを含んでいてもよい。
上記符号化装置604は、モードに合わせて上記イントラ信号626と上記インター信号644とから選択してもよい。上記イントラ信号626は、イントラ符号化モードにおいて画像内の空間的特徴を利用するために用いられてもよい。上記インター信号644は、インター符号化モードにおいて画像間の時間特性を利用するために用いられてもよい。上記イントラ符号化モードの間には、上記イントラ信号626が上記減算モジュール628に与えられてもよく、また、上記イントラモード情報640がエントロピー符号化モジュール642に与えられてもよい。上記インター符号化モードの間には、上記インター信号644は上記減算モジュール628に与えられてもよく、また、上記インターモード情報648は、上記エントロピー符号化モジュール642に与えられてもよい。
(上記モードに依存して)上記イントラ信号626と上記インター信号644とのどちらかが、予測残差630を作り出すために、上記減算モジュール628で入力画像606から差し引かれる。上記予測残差630は、変換モジュール632に与えられる。上記変換モジュール632は、量子化モジュール636に与えられる変換信号634を作り出すために上記予測残差630を圧縮してもよい。上記量子化モジュール636は、変換および量子化された係数(TQC)638を作り出すために、上記変換信号634を量子化する。
上記TQC638は、エントロピー符号化モジュール642および逆量子化モジュール650に与えられる。上記逆量子化モジュール650は、逆変換モジュール654に与えられる逆量子化信号652を作り出すために、上記TQC638に逆量子化を実行する。上記逆変換モジュール654は、再構成モジュール658に与えられる解凍信号656を作り出すために、上記逆量子化信号652を解凍する。
上記再構成モジュール658は、上記解凍信号656に基づいて再構成データ660を作り出してもよい。例えば、上記再構成モジュール658は、(変形)画像を再構築してもよい。上記再構成データ660は、非ブロック化フィルタ662と上記フレーム内予測モジュール/再構成バッファ624とに与えられてもよい。上記非ブロック化フィルタ662は、上記再構成データ660に基づいてフィルタされた信号664を作り出してもよい。
上記フィルタされた信号664は、サンプルアダプティブオフセット(SAO)モジュール666に与えられてもよい。上記SAOモジュール666は、上記エントロピー符号化モジュール642に与えられるSAO情報668を作り出してもよいし、適応ループフィルタ(ALF)672に与えられるSAO信号670を作り出してもよい。上記ALF672は、上記復号化画像バッファ676に与えられるALF信号674を作り出す。上記ALF信号674は、参照画像として用いてもよい一つ以上の画像からのデータを含んでいてもよい。
上記エントロピー符号化モジュール642は、ビットストリームA614a(例:符号化画像データ)を作り出すために、上記TQC638を符号化してもよい。例えば、上記エントロピー符号化モジュール642は、コンテンツ適応可変長符号化(CAVLC)またはコンテキスト適応バイナリ算術符号化(CABAC)を用いて上記TQC638を符号化してもよい。特に、上記エントロピー符号化モジュール642は、イントラモード情報640、インターモード情報648およびSAO情報668のうちの一つ以上に基づいて上記TQC638を符号化してもよい。ビットストリームA614a(例:符号化画像データ)は、メッセージ生成モジュール608に与えられてもよい。上記メッセージ生成モジュール608は、図1に関連して記載された上記メッセージ生成モジュール108と同様に構成されてもよい。追加的に、あるいは、代替的に、上記メッセージ生成モジュール608が、図2および図3に関連して記載された手順のうちの一つ以上を実行してもよい。
例えば、上記メッセージ生成モジュール608が、サブピクチャパラメータを含むメッセージ(例:画像タイミングSEIメッセージまたは他のメッセージ)を生成してもよい。上記サブピクチャパラメータは、復号化ユニットに対する一つ以上の削除遅延(例:common_du_cpb_removal_delayまたは du_cpb_removal_delay[i])および一つ以上のNALパラメータ(例:common_num_nalus_in_du_minus1 or num_nalus_in_du_minus1[i])を含んでいてもよい。いくつかの構成において、上記メッセージが、ビットストリームB614bを作り出すために、ビットストリームA614aに挿入されてもよい。したがって、上記メッセージは、例えば、上記ビットストリームA614a全体が生成された後で(例:ビットストリームB614bのほとんどが生成された後で)生成されてもよい。他の構成において、上記メッセージは、ビットストリームA614aに挿入されることはない(この場合、ビットストリームB614bはビットストリームA614aと同じであろう)が、別の伝送信号610に与えられてもよい。
いくつかの構成において、上記電子装置602は、別の電子装置に上記ビットストリーム614を別の電子装置に送信する。例えば、上記ビットストリーム614は、通信インターフェース、ネットワークインターフェース、無線送信器、ポートなどに与えられてもよい。例えば、上記ビットストリーム614は、LAN、インターネット、携帯電話基地局などを経由して別の電子装置に送信されてもよい。上記ビットストリーム614は、追加的に、または、代替的に、上記電子装置602のメモリまたは他の部品に保存されてもよい。
図6Bは、電子装置1702の映像符号化装置1782の一構成を示すブロック図である。上記映像符号化装置1782は、エンハンスメントレイヤ符号化装置1706、ベースレイヤ符号化装置1709、解像度アップスケーリングブロック1770および出力インターフェース1780を含んでいてもよい。例えば、図6Bの上記映像符号化装置は、本明細書中に記載のように、スケーラブル映像符号化およびマルチビュー映像符号化に適している。
上記エンハンスメントレイヤ符号化装置1706は、入力画像1704を受信する映像入力装置1781を含んでいてもよい。上記映像入力装置1781の出力は、予測選択1750の出力を受信する加算器/減算器1783に与えられてもよい。上記加算器/減算器1783の出力は、変換/量子化ブロック1752に与えられてもよい。上記変換/量子化ブロック1752の出力は、エントロピー符号化ブロック1748およびスケーリング/逆変換ブロック1772に与えられてもよい。エントロピー符号化1748が実行された後、上記エントロピー符号化ブロック1748の出力は、出力インターフェース1780に与えられてもよい。上記出力インターフェース1780は、符号化ベースレイヤ映像ビットストリーム1707と符号化エンハンスメントレイヤ映像ビットストリーム1710との両方を出力してもよい。
上記スケーリング/逆変換ブロック1772の出力は、加算器1779に与えられてもよい。上記加算器1779も、上記予測選択1750の出力を受信してもよい。上記加算器1779の出力は、非ブロック化ブロック1751に与えられてもよい。上記非ブロック化ブロック1751の出力は、参照バッファ1794に与えられてもよい。上記参照バッファ1794の出力は、動き補償ブロック1754に与えられてもよい。上記動き補償ブロック1754の出力は上記予測選択1750に与えられてもよい。上記参照バッファ1794の出力は、イントラ予測器1756にも与えられてもよい。上記イントラ予測器1756の出力は、上記予測選択1750に与えられてもよい。また、上記予測選択1750は、上記解像度アップスケーリングブロック1770の出力をも受信してもよい。
ベースレイヤ符号化装置1709は、ダウンサンプルされた入力画像、別の画像と組み合わせるのに適した他の画像コンテンツ、または別の表示入力画像、または同じ入力画像1703(すなわち、エンハンスメントレイヤ符号化装置1706より受信する入力画像1704と同じ画像)を受信する映像入力装置1762を備える。映像入力装置1762の出力を符号化予測ループ1764に供給する。エントロピー符号化1766は、符号化予測ループ1764の出力に対して行われる。符号化予測ループ1764の出力は、参照バッファ1768にも供給される。参照バッファ1768は、符号化予測ループ1764に対してフィードバックを行う。参照バッファ1768の出力は、解像度アップスケーリングブロック1770にも供給される。エントロピー符号化1766が行われると、出力が出力インターフェース1780に供給される。符号化ベースレイヤ映像ビットストリーム1707および/または符号化エンハンスメントレイヤ映像ビットストリーム1710は、必要に応じて1以上のメッセージ作成モジュールに供給される。
図7Aは、電子装置702の復号装置712の一構成を示すブロック図である。復号装置712は電子装置702に備えられる。例えば、復号装置712はHEVC復号装置である。復号装置712、および復号装置712に含まれる要素のうち1以上の要素は、ハードウェアによって実現されてもよいし、ソフトウェアによって実現されてもよいし、あるいは、ハードウェアとソフトウェアの両方の組み合せによって実現されてもよい。復号装置712は、ビットストリーム714(例えば、ビットストリーム714に含まれる1以上の符号化画像およびオーバーヘッドデータ)を受信して復号化する。いくつかの構成では、受信したビットストリーム714には、メッセージ(例えば、画像タイミングSEIメッセージまたは他のメッセージ)、スライスヘッダー、PPS等の受信オーバーヘッドデータが含まれる。いくつかの構成では、復号装置712は、さらに別の送信710を受信してもよい。別の送信710には、メッセージ(例えば、画像タイミングSEIメッセージまたは他のメッセージ)が含まれる。例えば、画像タイミングSEIメッセージまたは他のメッセージはビットストリーム714ではなく、別の送信710の形で受信されてもよい。なお、別の送信710は任意であり、いくつかの構成においては使用されない。
復号装置712はCPB720を含む。CPB720は、上述した図1を通じて説明したCPB120と同様に構成される。追加的または代替的に、復号装置712は、図4および図5を通じて説明した工程のうち1以上の工程を行う。例えば、復号装置712は、サブピクチャパラメータと共にメッセージ(例えば、画像タイミングSEIメッセージまたは他のメッセージ)を受信し、サブピクチャパラメータに基づくアクセスユニットで復号化ユニットを削除して復号化する。なお、1以上のアクセスユニットは、ビットストリームに含まれていてもよく、符号化画像データおよびオーバーヘッドデータのうち1以上のデータを含んでいてもよい。
符号化画像バッファ(CPB)は、符号化画像データをエントロピー復号化モジュール701に供給する。符号化画像データは、エントロピー復号化モジュール701によってエントロピー復号化され、これにより、動き情報信号703および、量子化、スケーリング、および/または変換された係数705が生成される。
動き情報信号703は、フレーム間予測信号782を生成する動き補償モジュール780において、復号化画像バッファ709から出力された参照フレーム信号798の一部と組み合わされる。上記量子化、デスケーリング、および/または変換された係数705は、逆モジュール707によって逆量子化、スケーリング、および逆変換され、これにより復号化残差信号784が生成される。復号化残差信号784は予測信号792に加えられて、混合信号786が生成される。上記予測信号792は、動き補償モジュール780によって生成されるフレーム間予測信号782またはフレーム内予測モジュール788によって生成されるフレーム内予測信号790のいずれから選択される信号である。いくつかの構成において、この信号決定は、ビットストリーム714に基づいて(例えば制御によって)行われる。
フレーム内予測信号790は、(例えば、現在のフレームにおける)混合信号786から以前に復号化された情報から予測される。また、上記混合信号786は、非ブロック化フィルタ794によってフィルタリングされる。その結果得られるフィルタリングされた信号796は、復号化画像バッファ709に書き込まれる。上記フィルタリングされた信号796は復号化画像を含む。復号化画像バッファ709は、出力される復号化画像718を供給する。709をフレームメモリとして考える場合もある。
図7Bは、電子装置1802の映像復号装置1812の一構成を示すブロック図である。映像復号装置1812は、エンハンスメントレイヤ復号装置1815と、ベースレイヤ復号装置1813とを含む。映像復号装置812は、インターフェース1889と、解像度アップスケーリング1870とをさらに含む。図7Bの映像復号装置は、本明細書に記載のように、例えば、スケーラブル映像復号化およびマルチビュー映像復号化に適している。
上記インターフェース1889は、符号化映像ストリーム1885を受信する。符号化映像ストリーム1885は、ベースレイヤ符号化映像ストリームおよびエンハンスメントレイヤ符号化映像ストリームからなる。これらの2つのストリームは、別々にまたは一緒に送信される。上記インターフェース1889は、符号化映像ストリーム1885の一部またはすべてを、ベースレイヤ復号装置1813のエントロピー復号化ブロック1886に供給する。上記エントロピー復号化ブロック1886の出力は、復号化予測ループ1887に供給される。復号化予測ループ1887の出力は、参照バッファ1888に供給される。参照バッファは、復号化予測ループ1887に対してフィードバックを行う。また、参照バッファ1888は、復号化ベースレイヤ映像ストリーム1884を出力する。
上記インターフェース1889は、符号化映像ストリーム1885の一部またはすべてを、エンハンスメントレイヤ復号装置1815のエントロピー復号化ブロック1890に供給する。上記エントロピー復号化ブロック1890の出力は、逆量子化ブロック1891に供給される。上記逆量子化ブロック1891の出力は、加算器1892に供給される。上記加算器1892は、逆量子化ブロック1891の出力と予測選択ブロック1895の出力とを加算する。加算器1892の出力は、非ブロック化ブロック1893に供給される。上記非ブロック化ブロック1893の出力は、参照バッファ1894に供給される。上記参照バッファ1894は、復号化エンハンスメントレイヤ映像ストリーム1882を出力する。また、上記参照バッファ1894の出力は、イントラ予測器1897に供給される。上記エンハンスメントレイヤ復号装置1815は、動き補償1896を含む。上記動き補償1896は、解像度アップスケーリング1870の後に行われる。上記予測選択ブロック1895は、イントラ予測器1897の出力と動き補償1896の出力とを受信する。また、復号装置は、必要に応じて、例えば、インターフェース1889と共に1以上の符号化画像バッファを含む。
図8は、送信用電子装置802に用いられる様々な構成部材を示す。本明細書に記載する電子装置102、602、702のうち1以上の電子装置は、図8に示す送信用電子装置802に基づいて実現される。
上記送信用電子装置802は、当該電子装置802の動作を制御するプロセッサ817を備える。上記プロセッサ817は、CPUとも称することがある。メモリ811は、読み出し専用メモリ(ROM)およびランダムアクセスメモリ(RAM)または情報を格納するあらゆる種類の装置の両方を備え、指示813a(例えば、実行可能な指示)とデータ815aとをプロセッサ817に供給する。また、メモリ811の一部には、不揮発性のランダムアクセスメモリ(NVRAM)が含まれる。上記メモリ811は、プロセッサ817と電子通信を行っている。
指示813bおよびデータ815bは、プロセッサ817に存在する。また、プロセッサ817にロードされた指示813bおよび/またはデータ815bは、プロセッサ817による実行または処理のためにロードされたメモリ811からの指示813aおよび/またはデータ815aを含む。指示813bがプロセッサ817によって実行されることで、本明細書に開示するシステムおよび方法が実現される。例えば、指示813bは、上記に記載の方法200、300、400、500の1以上の方法が行われるように実行可能となっている。
送信用電子装置802は、他の電子装置(例えば、受信用電子装置)と通信するための1以上の通信インターフェース819を備える。上記通信インターフェース819は、有線通信技術、無線通信技術、あるいは両方に基づく。通信インターフェース819の例として、シリアルポート、パラレルポート、ユニバーサル・シリアルバス(USB)、イーサネット(登録商標)・アダプタ、IEEE1394バスインターフェース、小型コンピュータシステムインターフェース(SCSI)バスインターフェース、赤外線(IR)通信ポート、Bluetooth(登録商標)無線通信アダプタ、第3世代パートナーシッププロジェクト(3GPP)の仕様に準拠した無線送受信機などが挙げられる。
送信用電子装置802は、1以上の出力装置823および1以上の入力装置821を備える。出力装置823の例として、スピーカー、プリンター等が挙げられる。電子装置802に備えられる出力装置の一つとして、表示装置825が挙げられる。本明細書に開示された構成で使用される表示装置825は、陰極線管(CRT)、液晶ディスプレイ(LCD)、発光ダイオード(LED)、ガスプラズマ、エレクトロルミネッセンス等の、任意の好適な画像投影技術を利用する。表示制御装置827は、メモリ811に格納されたデータをテキスト、グラフィックス、および/または動画像に(必要に応じて)変換して表示装置825に表示するために設けられる。入力装置821の例として、キーボード、マウス、マイクロホン、リモコン、ボタン、ジョイスティック、トラックボール、タッチパッド、タッチスクリーン、ライトペン等が挙げられる。
送信用電子装置802の様々な構成部材は、データバスに加えて、電力バス、制御信号バス、およびステータス信号バスを含むバスシステム829を介して結合されている。しかし、図8には、理解しやすいように、バスシステム829として様々なバスが示されている。図8に示す送信用電子装置802は、特定の部材の一覧表ではなく、機能ブロック図である。
図9は、受信用電子装置902に用いられる様々な構成部材を示すブロック図である。本明細書に記載される電子装置102、602、702のうち1以上の電子装置は、図9に示す受信用電子装置902に基づいて実現される。
上記受信用電子装置902は、当該電子装置902の動作を制御するプロセッサ917を備える。上記プロセッサ917は、CPUとも称することがある。メモリ911は、読み出し専用メモリ(ROM)、およびランダムアクセスメモリ(RAM)または情報を格納する任意の種類の装置の両方を備え、指示913a(例えば、実行可能な指示)とデータ915aとをプロセッサ917に供給する。また、メモリ911の一部には、不揮発性のランダムアクセスメモリ(NVRAM)が含まれる。上記メモリ911は、プロセッサ917と電子通信を行っている。
指示913bおよびデータ915bは、プロセッサ917に存在する。また、プロセッサ917にロードされた指示913bおよび/またはデータ915bは、プロセッサ917による実行または処理のためにロードされたメモリ911からの指示913aおよび/またはデータ915aを含む。指示913bがプロセッサ917によって実行されることで、本明細書に開示されたシステムおよび方法が実現される。例えば、指示913bは、上記に記載の方法200、300、400、500の1以上の方法が行われるように実行可能となっている。
受信用電子装置902は、他の電子装置(例えば、送信用電子装置)と通信するための1以上の通信インターフェース919を備える。上記通信インターフェース919は、有線通信技術、無線通信技術、あるいは両方に基づく。通信インターフェース919の例として、シリアルポート、パラレルポート、ユニバーサル・シリアルバス(USB)、イーサネット(登録商標)・アダプタ、IEEE1394バスインターフェース、小型コンピュータシステムインターフェース(SCSI)バスインターフェース、赤外線(IR)通信ポート、Bluetooth(登録商標)無線通信アダプタ、第3世代パートナーシッププロジェクト(3GPP)の仕様に準拠した無線送受信機などが挙げられる。
受信用電子装置902は、1以上の出力装置923および1以上の入力装置921を備える。出力装置923の例として、スピーカー、プリンター等が挙げられる。電子装置902に備えられる出力装置の一つとして、表示装置925が挙げられる。本明細書に開示された構成で使用される表示装置925は、陰極線管(CRT)、液晶ディスプレイ(LCD)、発光ダイオード(LED)、ガスプラズマ、エレクトロルミネッセンス等の、任意の好適な画像投影技術を利用する。表示制御装置927は、メモリ911に格納されたデータをテキスト、グラフィックス、および/または動画像に(必要に応じて)変換して表示装置925に表示するために設けられる。入力装置921の例として、キーボード、マウス、マイクロホン、リモコン、ボタン、ジョイスティック、トラックボール、タッチパッド、タッチスクリーン、ライトペン等が挙げられる。
受信用電子装置902の様々な構成部材は、データバスに加えて、電力バス、制御信号バス、およびステータス信号バスを含むバスシステム929を介して結合されている。しかし、図9には、理解しやすいように、バスシステム929として様々なバスが示されている。図9に示す受信用電子装置902は、特定の部材の一覧表ではなく、機能ブロック図である。
図10は、メッセージを送信するためのシステムおよび方法を実装する電子装置1002の一構成を示すブロック図である。電子装置1002は、符号化手段1031および送信手段1033を備える。符号化手段1031および送信手段1033は、上述した図1、図2、図3、図6および図8のうち1以上の図を通じて説明した機能のうち、1以上の機能を実行するように構成されている。例えば、符号化手段1031および送信手段1033は、ビットストリーム1014を生成する。上述した図8は、図10の具体的な装置構造の一例を示す。他の様々な構造は、図1、図2、図3、図6および図8に示す1以上の機能を実現するために実装される。例えば、DSPはソフトウェアによって実現される。
図11は、ビットストリーム1114をバッファリングするためのシステムおよび方法を実装する電子装置1102の一構成を示すブロック図である。電子装置1102は、受信手段1135および復号化手段1137を備える。受信手段1135および復号化手段1137は、上述した図1、図4、図5、図7および図9のうち1以上の図を通じて説明した機能のうち、1以上の機能を実行するように構成されている。例えば、受信手段1135および復号化手段1137は、ビットストリーム1114を受信する。上述した図9は、図11の具体的な装置構造の一例を示す。他の様々な構造は、図1、図4、図5、図7および図9に示す1以上の機能を実現するために実装される。例えば、DSPはソフトウェアによって実現される。
図12は、復号化画像バッファ(DPB)の動作を行うための方法1200の一構成を示すフロー図である。方法1200は、符号化装置104またはそのサブパーツ(例えば、復号化画像バッファモジュール676)の一つによって実行される。方法1200は、電子装置102(例えば、電子装置B102b)の復号装置112によって実行される。追加的または代替的に、方法1200は、復号装置712またはそのサブパーツ(例えば、復号化画像バッファモジュール709)の一つによって実行される。復号装置は、画像の第1のスライスヘッダーを解析する(1202)。現在の画像を復号化する前(ただし、現在の画像の第1のスライスのスライスヘッダーを解析した後)にDPBからの画像の出力および削除は、現在の画像を含むアクセスユニットの第1の復号化ユニットがCPBから削除されて以下のように進行すると、同時に行われる。
−参照画像セット(RPS)の復号化処理が行われる。参照画像セットは、ある画像に関連する一連の参照画像であって、復号順序で関連画像の前に存在するすべての参照画像からなり、関連画像、または復号順序で関連画像に続く任意の画像のインター予測のために使用される。
−映像のビットストリームは、一般的にネットワーク抽象化レイヤ(NAL)ユニットと呼ばれる論理データパケットへと配置(placed into)されるシンタックス構造を含む。各NALユニットは、2バイトのNALユニットヘッダー(例えば、16ビット)等のNALユニットヘッダーを含み、関連するデータペイロードの目的を特定する。例えば、各符号化スライス(および/または画像)は、1以上のスライス(および/または画像)NALユニットで符号化される。他のNALユニットは、例えば、付加エンハンスメント情報、一時的サブレイヤアクセス(TSA)画像の符号化スライス、段階的一時的サブレイヤアクセス(STSA)画像の符号化スライス、非TSAの符号化スライス、非STSAトレイリング画像、リンク破損アクセス画像の符号化スライス、瞬時復号リフレッシュ画像の符号化スライス、クリーンランダムアクセス画像の符号化スライス、復号可能な先行画像の符号化スライス、タグ付き破棄画像の符号化スライス、映像パラメータセット、シーケンスパラメータセット、ピクチャパラメータセット、アクセスユニットデリミタ、シーケンスの終端、ビットストリームの終端、フィルターデータ、および/またはシーケンスエンハンスメント情報メッセージ等の他のカテゴリーのデータのために含まれてもよい。表4に、NALユニットコードおよびNALユニットの種別の一例を示す。他の種類のNALユニットが必要に応じて含まれてもよい。また、表4に示すNALユニットのNALユニットの種類の値を入れ替えてもよいし、再割り当てしてもよい。また、さらなるNALユニットの種類が追加されてもよい。また、一部の種類のNALユニットが削除されてもよい。
イントラランダムアクセスポイント(IRAP)画像とは、表4に示すようにBLA_W_LPからRSV_IRAP_VCL23まで(BLA_W_LPおよびRSV_IRAP_VCL23を含む)の範囲でnal_unit_typeを有する各映像符号化レイヤのNALユニットのための符号化画像である。IRAP画像はイントラ符号化(I)スライスのみを含む。瞬時復号リフレッシュ(IDR)画像とは、表4に示すようにIDR_W_RADLまたはIDR_N_LPと同等のnal_unit_typeを有する各映像符号化レイヤのNALユニットのためのIRAP画像である。瞬時復号リフレッシュ(IDR)画像は、Iスライスのみを含み、復号化順序におけるビットストリームの第1画像であってもよく、ビットストリームの後ろの方に現れてもよい。各IDR画像は、復号化順序における符号化映像シーケンス(CVS)の第1画像である。リンク破損アクセス(BLA)画像とは、表4に示すようにBLA_W_LP、BLA_W_RADL、またはBLA_N_LPと同等のnal_unit_typeを有する各映像符号化レイヤのNALユニットのためのIRAP画像である。BLA画像は、Iスライスのみを含み、復号化順序におけるビットストリームの第1画像であってもよく、ビットストリームの後ろの方に現れてもよい。各BLA画像は、新しい符号化映像シーケンスを開始し、復号化処理においてIDR画像と同じ効果を有する。しかし、BLA画像は、空ではない参照画像セットを指定するシンタックス要素を含む。
表5を参照すると、NALユニットヘッダーシンタックスは、2バイト、すなわち16ビットのデータを含む。最初のビットは、"forbidden_zero_bit"であり、NALユニットの開始時に常に0に設定される。次の6ビットは、"nal_unit_type"であり、表4に示すNALユニットに含まれるローバイトシーケンスペイロード(RBSP)データ構造の種類を指定する。次の6ビットは、"nuh_layer_id"であり、レイヤの識別子を指定する。これらの6ビットは、代わりに、"nuh_reserved_zero_6bits"として指定される場合もある。上記nuh_reserved_zero_6bitsは、規格の基本仕様では0に等しい。スケーラブル映像符号化および/またはシンタックス拡張において、nuh_layer_idはこの特定のNALユニットがこれらの6ビットの値で識別されるレイヤに属することを指定している。次のシンタックス要素は、"nuh_temporal_id_plus1"である。上記nuh_temporal_id_plus1 minus 1 は、NALユニットの一時的識別子を指定している。変数一時的識別子TemporalIdは、TemporalId=nuh_temporal_id_plus1−1として指定される。上記一時的識別子TemporalIdは、一時的サブレイヤを識別するために使用される。変数HighestTidは、復号化対象となる、最上位の一時的サブレイヤを識別する。
表6は、例示的なシーケンスパラメータセット(SPS)のシンタックス構造を示す。
pic_width_in_luma_samplesは、輝度サンプルユニットにおける各復号化画像の幅を指定する。pic_width_in_luma_samplesは、0に等しくないものとする。
pic_height_in_luma_samplesは、輝度サンプルユニットにおける各復号化画像の高さを指定する。pic_height_in_luma_samplesは、0に等しくないものとする。
sps_max_sub_layers_minus1+1は、SPSを参照する各CVSに存在する一時的サブレイヤの最大数を指定する。sps_max_sub_layers_minus1の値は、0以上6以下の範囲であるものとする。
sps_sub_layer_ordering_info_present_flagフラグが1に等しい場合は、sps_max_dec_pic_buffering_minus1[i]、sps_max_num_reorder_pics[i]、およびsps_max_latency_increase_plus1[i]のシンタックス要素が、sps_max_sub_layers_minus1+1サブレイヤに対して存在することを指定する。sps_sub_layer_ordering_info_present_flagが0に等しい場合は、sps_max_dec_pic_buffering_minus1[sps_max_sub_layers_minus1]、sps_max_num_reorder_pics[sps_max_sub_layers_minus1]、およびsps_max_latency_increase_plus1[sps_max_sub_layers_minus1]の値がすべてのサブレイヤに該当することを指定する。
sps_max_dec_pic_buffering_minus1[i]+1は、HighestTidがiに等しいときの、画像保存バッファのユニットでのCVS用の復号化画像バッファの最大必要サイズを指定する。sps_max_dec_pic_buffering_minus1[i]の値は、MaxDpbSizeが最大復号化画像バッファのサイズを画像保存バッファユニットで指定する場合、0以上MaxDpbSize−1以下の範囲の値であるものとする。iが0よりも大きい時、sps_max_dec_pic_buffering_minus1[i]はsps_max_dec_pic_buffering_minus1[i-1]以上であるものとする。sps_sub_layer_ordering_info_present_flagが0に等しいことにより、sps_max_dec_pic_buffering_minus1[i]においてiが0以上sps_max_sub_layers_minus1−1以下の範囲に対して存在しない場合、sps_max_dec_pic_buffering_minus1[i]はsps_max_dec_pic_buffering_minus1[sps_max_sub_layers_minus1]に等しいと推定される。
sps_max_num_reorder_pics[i]は、HighestTidがiに等しい場合に、復号順序においてCVS内で任意の画像に先行するとともに出力順序においてその画像に続く画像の最大許容数を示す。sps_max_num_reorder_pics[i]の値は、0以上sps_max_dec_pic_buffering_minus1[i]以下の範囲の値であるものとする。iが0よりも大きい時、sps_max_num_reorder_pics[i]がsps_max_num_reorder_pics[i-1]以上であるものとする。sps_sub_layer_ordering_info_present_flagが0に等しいことにより、sps_max_num_reorder_pics[i]においてiが0以上sps_max_sub_layers_minus1−1以下の範囲に対して存在しない場合、sps_max_num_reorder_pics[i]はsps_max_num_reorder_pics[ sps_max_sub_layers_minus1 ]に等しいと推定される。
0に等しくないsps_max_latency_increase_plus1[i]は、HighestTidがiに等しい場合に、出力順序においてCVS内で任意の画像に先行するとともに復号順序においてその画像に続く画像の最大数を指定する値、SpsMaxLatencyPictures[i]を算出するために用いられる。
sps_max_latency_increase_plus1[i]が0に等しくない場合、SpsMaxLatencyPictures[i]の値は次のように指定される。
SpsMaxLatencyPictures[i]=sps_max_num_reorder_pics[i]+ sps_max_latency_increase_plus1[i]−1
sps_max_latency_increase_plus1[i]が0に等しい場合、対応する制限は表されない。
sps_max_latency_increase_plus1[i]の値は、0以上 232−2以下の範囲の値であるものとする。
sps_sub_layer_ordering_info_present_flagが0に等しいことにより、sps_max_latency_increase_plus1[i]においてiが0以上sps_max_sub_layers_minus1−1以下の範囲に対して存在しない場合、sps_max_latency_increase_plus1[i]はsps_max_latency_increase_plus1[ sps_max_sub_layers_minus1 ]に等しいと推定される。
現在の画像がIRAP画像である時、以下の事項が該当する。
−現在の画像がIDR画像、BLA画像、復号順序におけるビットストリームの第1画像、または復号順序においてシーケンスNALユニットの末尾に続く第1画像である場合、変数NoRaslOutputFlagは1に等しく設定される。
−あるいは、変数HandleCraAsBlaFlagを現在の画像の値に設定するための何らかの外部手段が利用可能である場合、変数HandleCraAsBlaFlagは、その外部手段が提供する値に等しい値に設定され、変数NoRaslOutputFlagはHandleCraAsBlaFlagに等しい値に設定される。
−あるいは、変数HandleCraAsBlaFlagは0に等しく設定され、変数NoRaslOutputFlagは、0に等しく設定される。
現在の画像が、画像0ではない、1に等しい変数NoRaslOutputFlagを有するIRAP画像である場合、以下の順序付けられた工程が適用される。
1.変数NoOutputOfPriorPicsFlagは、テスト中の復号装置のために以下のように導き出される。
−現在の画像がCRA画像である場合、(no_output_of_prior_pics_flagの値に関係なく)NoOutputOfPriorPicsFlagは1に等しく設定される。
−あるいは、アクティブなSPSから導き出されたpic_width_in_luma_samples、pic_height_in_luma_samples、またはsps_max_dec_pic_buffering_minus1[HighestTid]の値が、前の画像のためにアクティブなSPSから導き出されたpic_width_in_luma_samples、pic_height_in_luma_samples、またはsps_max_dec_pic_buffering_minus1[HighestTid]の値とそれぞれ異なる場合、NoOutputOfPriorPicsFlagは、no_output_of_prior_pics_flagの値に関係なく、テスト中の復号装置によって1に設定されてもよい(が、必ずしも設定されなくてもよい)。
−あるいは、NoOutputOfPriorPicsFlagはno_output_of_prior_pics_flagに等しく設定される。
2.テスト中の復号装置のために導き出されるNoOutputOfPriorPicsFlagの値は、HRDのために以下のように適用される。
−NoOutputOfPriorPicsFlagが1に等しい場合、DPB内の全ての画像保存バッファは、当該画像保存バッファが格納する画像を出力せずに空になり、DPBフルネス(fullness)は0に等しく設定される。
−あるいは(NoOutputOfPriorPicsFlagが0に等しい場合)、「出力不要」および「参照に不使用」とマーキングされている画像を格納しているすべての画像保存バッファは(出力せずに)空になり、「バンピング」工程1204を繰り返し実行することでDPB内の空になっていないすべての画像保存バッファが空になり、DPBフルネスは0に等しく設定される。
−あるいは(現在の画像が1に等しいNoRaslOutputFlagを有するIRAP画像ではない場合)、「出力不要」および「参照に不使用」と記されている画像を格納しているすべての画像保存バッファは(出力せずに)空になる。各画像保存バッファが空になると、DPBフルネスは1ずつ減少される。下記条件の1以上が真である時、下記条件がすべて真でなくなるまで、空になる画像保存バッファが増えるごとにDPBフルネスを1ずつ減少させながら、「バンピング」工程1204を繰り返し実行する。
1.DPB内の、その特定のnuh_layer_idの値を有する画像であって、「出力要」とマーキングされた画像の数が、アクティブなシーケンスパラメータセット(その特定のnuh_layer_idの値が0に等しい場合)に由来する、またはその特定のnuh_layer_idの値に対応するアクティブなレイヤのシーケンスパラメータセットに由来するsps_max_num_reorder_pics[HighestTid]よりも大きい。
2.アクティブなシーケンスパラメータセット(その特定のnuh_layer_idの値が0に等しい場合)に由来する、またはその特定のnuh_layer_idの値に対応するアクティブなレイヤのシーケンスパラメータセットに由来するsps_max_latency_increase_plus1[ HighestTid ] が0に等しくないとともに、DPB内の、その特定のnuh_layer_idの値を有する画像であって、関連する変数PicLatencyCountが、その特定のnuh_layer_idの値に対応するSpsMaxLatencyPictures[HighestTid]以上である「出力要」とマーキングされた画像が少なくとも一つある場合。
3.DPB内の、その特定のnuh_layer_idの値を有する画像であって、「出力要」とマーキングされた画像の数が、アクティブなシーケンスパラメータセット(その特定のnuh_layer_idの値が0に等しい場合)に由来する、またはその特定のnuh_layer_idの値に対応するアクティブなレイヤのシーケンスパラメータセットに由来するsps_max_dec_pic_buffering[ HighestTid ]+1以上である。
ブロック1206(画像復号化およびマーキング)における画像復号処理は、現在の画像を含むアクセスユニットの最新の復号化ユニットがCPBから削除されると同時に実行される。
DPB内の、現在の画像のnuh_layer_idの値に等しいnuh_layer_idの値を有する画像であって、「出力要」とマーキングされた各画像について、関連する変数PicLatencyCountはPicLatencyCount+1に等しく設定される。
画像の最新の復号化ユニットが復号化された後に、現在の画像が復号化されたと考えられる。現在の復号化画像は、DPB内の空の画像保存バッファに保存され、次の事項が適用される。
−現在の復号化画像が1に等しいPicOutputFlagを有する場合、「出力要」とマーキングされ、その関連する変数PicLatencyCountが0に等しく設定される。
−あるいは(現在の復号化画像が0に等しいPicOutputFlagを有する場合)、「出力不要」とマーキングされる。
現在の復号化画像は「短期参照用に使用」とマーキングされる。
下記条件の1以上が真である時、下記条件がすべて真でなくなるまで、追加的な「バンピング」工程1208を繰り返し実行する。
−DPB内の、現在の画像のnuh_layer_idの値に等しいnuh_layer_idを有する画像であって、「出力要」とマーキングされた画像の数が、アクティブなシーケンスパラメータセット(現在の画像のnuh_layer_idの値が0に等しい場合)に由来する、または現在の画像のnuh_layer_idの値に対応するアクティブなレイヤのシーケンスパラメータセットに由来するsps_max_num_reorder_pics[ HighestTid ]よりも大きい。
−アクティブなシーケンスパラメータセット(現在の画像のnuh_layer_idの値が0に等しい場合)に由来する、または現在の画像のnuh_layer_idの値に対応するアクティブなレイヤのシーケンスパラメータセットに由来するsps_max_latency_increase_plus1[ HighestTid ] が0に等しくないとともに、DPB内の、その特定のnuh_layer_idの値を有する画像であって、関連する変数PicLatencyCountが、その特定のnuh_layer_idの値に対応するSpsMaxLatencyPictures[ HighestTid ]以上である「出力要」とマーキングされた画像が少なくとも一つある。
上記「バンピング」工程1204および追加的なバンピング工程1208は、工程の観点から同一のものであり、次の順序付けされた工程からなる。すなわち、初めて出力される画像は、DPB内の「出力要」とマーキングされたすべての画像のうち、ピクチャオーダーカウント(picture order count)(PicOrderCntVal)の最も小さい値を有する画像として選択される。ピクチャオーダーカウントは、各画像に関連付けされる変数であり、CVS内のすべての画像のうち、関連する画像を一意に識別する。また、上記ピクチャオーダーカウントは、当該関連する画像が復号化画像バッファから出力される時、復号化画像バッファから出力される同じCVSに保存されている他の画像の出力順序の位置に対して、出力順序における当該関連画像の位置を示す。
−これらの画像は、0に等しいnuh_layer_idを有する画像のためのアクティブなシーケンスパラメータセットまたは当該画像のnuh_layer_idに等しいnuh_layer_idの値に対応するアクティブなレイヤのシーケンスパラメータセットに指定されたコンフォーマンスクロッピングウィンドウ(conformance cropping window)を用いてクロップされ、クロップされた画像はnuh_layer_idの昇順で出力され、当該画像は、「出力不要」とマーキングされる。
−「参照に不使用」とマーキングされた画像を含み、クロップされて出力された画像の一つを含んでいた各画像保存バッファが空になる。
図13Aを参照すると、上述したように、NALユニットヘッダーシンタックスは、2バイト、すなわち16ビットのデータを含む。最初のビットは、"forbidden_zero_bit"であり、NALユニットの開始時に常に0に設定される。次の6ビットは、"nal_unit_type"であり、NALユニットに含まれるローバイトシーケンスペイロード(RBSP)データ構造の種類を指定する。次の6ビットは、"nuh_reserved_zero_6bits"である。nuh_reserved_zero_6bits は、規格の基本仕様では0に等しい。必要に応じてnuh_reserved_zero_6bitsの他の値を指定することができる。復号装置は、規格の基本仕様に基づいてストリームを扱う時に、0に等しくないnuh_reserved_zero_6bitsの値を有するNALユニットをすべて無視する(つまり、ビットストリームから削除して破棄する)。スケーラブル拡張または他の拡張において、スケーラブル映像符号化および/またはシンタックス拡張を信号化するために、nuh_reserved_zero_6bitsは他の値を指定することもできる。シンタックス要素nuh_reserved_zero_6bitsがreserved_zero_6bitsと称される場合もある。シンタックス要素nuh_reserved_zero_6bitsは、図13Bおよび図13Cに示すように、layer_id_plus1またはlayer_idと称される場合もある。この場合、要素layer_idはlayer_id_plus1−1である。この場合、スケーラブル符号化映像のレイヤに関連する情報を信号化するために用いられる。次のシンタックス要素は、"nuh_temporal_id_plus1"である。nuh_temporal_id_plus1−1は、NALユニットのための一時的識別子を指定する。変数一時的識別子TemporalIdは、TemporalId=nuh_temporal_id_plus1−1で指定される。
一般的なNALユニットのシンタックス構造を図14に示す。図13に示すNALユニットヘッダーの2バイトのシンタックスは、図14に示すnal_unit_header()を参照して含まれる。NALユニットシンタックスの剰余は、主にRBSPに関連する。
"nuh_reserved_zero_6bits"を用いる既存の技術の一つは、6ビットのnuh_reserved_zero_6bitsをスケーラブル符号化映像の異なるレイヤの識別をそれぞれ参照する別個のビットフィールド、すなわち1以上の依存性ID、品質ID、ビューID、および深度フラグに分割することで、スケーラブル映像符号化情報を信号化するためのものである。そのため、上記6ビットは、この特定のNALユニットが、スケーラブル符号化技術のどのレイヤに属しているのかを示す。そして、図15に示すような映像パラメータセット(VPS)の拡張シンタックス("scalability_type")等のデータペイロードにおいて、レイヤの情報が定義される。図15に示すVPS拡張シンタックスは、符号化映像シーケンスで使用されているスケーラビリティタイプと、NALユニットヘッダーにおけるlayer_id_plus1(またはlayer_id)を介して信号化されるディメンション(dimensions)とを指定する、4ビットのスケーラビリティタイプ(シンタックス要素scalability_type)を含む。スケーラビリティタイプが0に等しい場合、符号化映像シーケンスは基本仕様に準拠する。そのため、すべてのNALユニットのlayer_id_plus1は0に等しくなり、エンハンスメントレイヤまたはビューに属しているNALユニットがなくなる。図16に示すように、スケーラビリティタイプの値が高くなることがわかる。
layer_id_dim_len[i]は、i番目のスケーラビリティディメンションIDの長さをビット単位で指定する。layer_id_dim_len[i]の値の和は、0から7までの範囲のすべてのiの値について、6以下である。vps_extension_byte_alignment_reserved_zero_bitは0である。vps_layer_id[i]は、以下のレイヤ依存性情報が適用されるi番目のレイヤのレイヤIDの値を指定する。num_direct_ref_layers[i]は、i番目のレイヤが直接依存するレイヤの数を指定する。ref_layer_id[i][j]は、i番目のレイヤが直接依存するj番目のレイヤを識別する。
このように、既存の技術は、NALユニット内および映像パラメータセット内の各スケーラビリティの識別子を信号化して、図16に記載のスケーラビリティタイプのあいだでビットを割り当てる。次に、各スケーラビリティタイプについて、多くのディメンション(dimensions)をサポートする方法を図16に定義する。例えば、スケーラビリティタイプ1は、2つのディメンション(すなわち、空間および品質)を有する。各ディメンションについて、layer_id_dim_len[i]は、これら2つのディメンションにそれぞれ割り当てられるビット数を定義し、layer_id_dim_len[i]のすべての値の総和は、NALユニットヘッダーのnuh_reserved_zero_6bitsのビット数である6以下となる。このように、この技術を併用することで、どのタイプのスケーラビリティが使用中であるかと、NALユニットヘッダーの6ビットがスケーラビリティ間でどのように割り当てられるかが識別される。
図16に示すような異なるスケーラビリティディメンションの決まった組み合わせは多くの用途に適しているが、図16には含まれていない望ましい組み合せもある。図17を参照すると、修正された映像パラメータセットの拡張シンタックスは、シンタックス要素nuh_reserved_zero_6bitsのビットごとにスケーラビリティタイプを指定する。vps_extension_byte_alignment_reserved_zero_bitは0に設定される。max_num_layers_minus1_bitsは、図13においてlayer_id_plus1またはnuh_reserved_zero_6bitsと称するNALユニットヘッダーの最初の2バイトのシンタックス要素に使用されるビットの総数を示す。scalability_map[i]は、シンタックス要素layer_id_plus1のビットごとにスケーラビリティタイプを指定する。シンタックス要素layer_id_plus1は、代わりに、シンタックス要素nuh_reserved_zero_6bitsまたはrserved_zero_6bitsと呼ばれる場合もある。シンタックス要素layer_id_plus1のすべてのビットのためのスケーラビリティマップは、符号化映像シーケンスで使用されているスケーラビリティを共に指定する。スケーラビリティタイプのそれぞれの識別子の実際の値は、NALユニットヘッダーのlayer_id_plus1(nuh_reserved_zero_6bits)フィールドにおけるそれらの対応するビットを介して信号化される。scalability_map[i]がiのすべての値について0に等しい場合、符号化映像シーケンスは基本仕様に準拠する。そのため、NALユニットのlayer_id_plus1の値は0に等しくなり、エンハンスメントレイヤまたはビューに属しているNALユニットがなくなる。vps_layer_id[i]は、以下のレイヤ依存性情報が適用されるi番目のレイヤのレイヤIDの値を指定する。num_direct_ref_layers[i]は、i番目のレイヤが直接依存するレイヤの数を指定する。ref_layer_id[i][j]は、i番目のレイヤが直接依存するj番目のレイヤを識別する。
図18に示すように、scalability_map[i]の値が高くなることがわかる。scalability_map [i]には、(0)無し、(1)空間、(2)品質、(3)深度、(4)マルチビュー、(5)未指定、(6)予約済、(7)予約済、といったスケーラビリティディメンションが含まれる。
したがって、NALユニットヘッダーの各ビットは、映像パラメータセット内の3ビットに基づいてスケーラビリティスケーラビリティディメンション(例えば、無し、空間、品質、深度、マルチビュー、未指定、予約済)が何であるかが解釈される。例えば、layer_id_plus1のすべてのビットが空間スケーラビリティに対応することを信号化するために、VPS内のscalability_mapの値は、NALユニットヘッダーの6ビットについて、001 001 001 001 001 001と符号化される。また、例えば、layer_id_plus1の3ビットが空間スケーラビリティに対応し、3ビットが空間スケーラビリティに対応することを信号化するために、VPS内のscalability_mapの値は、NALユニットヘッダーの6ビットについて、001 001 001 010 010 010と符号化される。
図19を参照すると、他の実施形態においては、num_scalability_dimensions_minus1を用いてNALユニットヘッダーの6ビットにスケーラビリティディメンションの数を信号化する映像パラメータセットが含まれる。num_scalability_dimensions_minus1+1は、シンタックス要素layer_id_plus1、nuh_reserved_zero_6bits、および/または reserved_zero_6bitsを介して信号化されるスケーラビリティディメンションの数を示す。scalability_map[i]は、図17に関連して上述したように、同じセマンティクスを有する。num_bits_for_scalability_map[i]は、I番目のスケーラビリティディメンションについて、長さをビット単位で指定する。i=0であるnum_bits_for_scalability_map[i]〜num_scalability_dimensions_minus1のすべての総和は、6に等しい(あるいは、シンタックス要素layer_id_plus1、vps_reserved_zero_6bits、max_num_layers_minus1、reserved_zero_6bits、nuh_reserved_zero_6bitsに使用されるビット数に等しい)。
図17および図19に関して、必要に応じて他の変形例を用いてもよい。一実施形態では、例えば、scalability_map[i]は、u(4)または、u(n)(n>3またはn<3)で信号化されてもよい。この場合、scalability_map[i]の高い値は、映像技術の特定のプロファイルに準拠するビットストリームに予約済として指定される。例えば、スケーラビリティマップの値6〜15は、scalability_map[i]をu(4)で信号化する時に「予約済」として指定される。他の実施形態においては、例えば、scalability_map[i]は、ue(v)またはその他のコード体系によって信号化されてもよい。他の実施形態においては、例えば、scalability_map[i]の値を単調な非降順(または非昇順)で配置するという制限が指定される。これにより、NALユニットヘッダー中のlayer_id_plus1 field内に様々なスケーラビリティディメンションフィールドが連続するようになる。
シンタックス要素「layer_id_plus1」または「nuh_reserved_zero_6bits」を用いてスケーラブル映像符号化を信号化する別の既存の技術は、映像パラメータセット中の一般的なルックアップテーブルを信号化することで、NALユニットヘッダー内のlayer_id_plus1をレイヤ識別にマッピングするために存在する。図20を参照すると、既存の技術では、ルックアップテーブルのi番目のレイヤについてディメンションタイプとディメンション識別の数を指定する映像パラメータセットを含む。特に、vps_extension_byte_alignment_reserved_zero_bitは0である。num_dimensions_minus1[i]+1は、i番目のレイヤについて、ディメンションタイプ(dimension_type[i][j])およびディメンション識別子(dimension_id[i][j])の数を指定する。上記dimension_type[i][j]は、図31に示すように、iに等しいlayer_idまたはlayer_id_plus1を有するi番目のレイヤのj番目のスケーラビリティディメンションタイプを指定する。図21に示すように、識別されるディメンションは、(0)ビューオーダーidx、(1)深度フラグ、(2)依存性ID、(3)品質ID、(4)〜(15)予約済を含む。dimension_id[i][j]は、存在しない場合0だと推定されるi番目のレイヤのj番目のスケーラビリティディメンションタイプの識別子を指定する。num_direct_ref_layers[i]は、i番目のレイヤが直接依存するレイヤの数を指定する。ref_layer_id[i][j]は、i番目のレイヤが直接依存するj番目のレイヤを識別する。残念なことに、図20に示す提案された実施形態では、非実際的なほど大きなルックアップテーブルとなっている。
図22を参照すると、修正された映像パラメータセット拡張は、スケーラビリティディメンションと併用されるスケーラビリティマスクを含む。上記scalability_maskは、図23に示すスケーラビリティマップのシンタックスで表すような一つのスケーラビリティディメンションに対応する各ビットを用いて、0と1のビットのパターンを信号化する。特定のスケーラビリティディメンションの値が1である場合、このスケーラビリティディメンションがこのレイヤ(I番目のレイヤ)に存在することを示す。特定のスケーラビリティディメンションの値が0である場合、このスケーラビリティディメンションがこのレイヤ(I番目のレイヤ)に存在しないことを示す。例えば、00100000といった一連のビットは、品質スケーラビリティを意味する。存在する特定のスケーラビリティディメンションの実際の識別子の値は、信号化されたscalability_id[j]の値で示される。num_scalability_types[i]の値は、1の値を有するscalability_mask内のビットの総数に等しい。
したがって、
となる。
上記scalability_id[j]は、scalability_maskの値で信号化されたスケーラビリティタイプの値に対応するj番目のスケーラビリティディメンションの識別子の値を示す。
図24を参照すると、図22の変形例は、ループの外で信号化されているスケーラビリティマスクを含む。これにより、各レイヤの識別のための一つの共通のマスクが得られる。図25を参照すると、本変形例では、対応する例示的な映像パラメータセットは、含まれていないスケーラビリティマスクを有するスケーラブルな識別(scalable identification)を含む。この場合、シンタックス要素scalable_id[j]は、図22のシンタックス要素scalability_id[j]と同じように解釈される。
図26を参照すると、図22の変形例は、ループの外で信号化されているスケーラビリティマスク(scalability_mask)を含む。これにより、各レイヤの識別のための一つの共通のマスクが得られる。上記scalability_maskは、図27に示すスケーラビリティマップのシンタックスで表すような一つのスケーラビリティディメンションに対応する各ビットを用いて、0と1のビットのパターンを信号化する。特定のスケーラビリティディメンションの値が1である場合、このスケーラビリティディメンションがこのレイヤ(i番目のレイヤ)に存在することを示す。特定のスケーラビリティディメンションの値が0である場合、このスケーラビリティディメンションがこのレイヤ(i番目のレイヤ)に存在しないことを示す。例えば、00100000といった一連のビットは、品質スケーラビリティを意味する。存在する特定のスケーラビリティディメンションの実際の識別子の値は、信号化されたscalability_id[j]の値で示される。num_scalability_types[i]の値は、1の値を有するscalability_mask内のビットの総数に等しい。したがって、
となる。
この場合、変数scalability_id[j]は、代わりに、変数dimension_id[i][j]と呼ばれる。dimension_id[i][j]は、i番目のレイヤのj番目のスケーラビリティディメンションのスケーラビリティの識別子を指定する。次に、変数ScalabilityId[i][j]は以下のように導き出される。
ScalabilityId[i][k]は、対応するスケーラビリティタイプについて、ディメンションIDを以下のように信号化する。
DependencyId[i][1]は、i番目のレイヤの空間スケーラビリティディメンションについての依存性IDである。QualityId[i][2]は、i番目のレイヤの品質スケーラビリティディメンションについての品質IDである。depthFlag[i][3]は、i番目のレイヤの深度スケーラビリティディメンションについての深度フラグ/深度IDである。ViewId[i][4]は、i番目のレイヤのマルチビュースケーラビリティディメンションについてのビューIDである。
また、図26において、1に等しいavc_base_codec_flagは、ベースレイヤがRec. ITU-T H.264 | ISO/IEC 14496-10に準拠することを指定し、1に等しいavc_base_codec_flagはHEVCに準拠することを指定する。vps_nuh_layer_id_presnet_flagは、NALユニットヘッダーのlayer_idの値を信号化する変数layer_id_in_nuh[i]が信号化されているかを示す。
他の実施形態において、シンタックス要素scalability_mask[i]、scalability_maskおよびscalability_id[j]のうち1以上のシンタックス要素は、u(8)とは異なる数のビットを用いて信号化されてもよい。例えば、上記シンタックス要素は、u(16)またはu(n)(n>8またはn<8)を用いて信号化してもよい。他の実施形態において、これらのシンタックス要素のうち1以上のシンタックス要素は、ue(v)を用いて信号化してもよい。scalability_maskは、シンタックス要素layer_id_plus1、vps_reserved_zero_6bits、max_num_layers_minus1、reserved_zero_6bitsおよび/またはnuh_reserved_zero_6bitsにおけるNALユニットヘッダーにおいて信号化される。いくつかの実施形態において、システムは、上記の処理をVPSのNALユニットのみについて、非VPSのNALユニットのみについて、またはすべてのNALユニットについて行ってもよい。さらに他の実施形態において、scalability_maskは、ビットストリーム中の任意の箇所で、画像ごとに信号化してもよい。例えば、scalability_maskは、スライスヘッダー、ピクチャパラメータセット、映像パラメータセット、もしくはその他のパラメータセット、または上記ビットストリーム中の規準を定める他の部分において信号化してもよい。
なお、図13のNALユニットヘッダー中のシンタックス要素nuh_reserved_zero_6bitsまたはlayer_id_plus1が6ビットであるため、図13、15、18、20、21、22、23および対応する記載は、6ビットを表す。しかし、そのシンタックス要素に6ビットではない異なる数のビットを使用した場合には、上記の記載をすべて変更することができる。例えば、図17においてそのシンタックス要素(nuh_reserved_zero_6bitsまたはlayer_id_plus1)に、9ビットを代わりに使用した場合、the value of max_num_layer_minus1のビットの値は、9となり、scalability_map[i]は6ビットではなく、9ビットの各ビットについて信号化される。
図24を参照すると、図22の変形例は、レイヤ依存性情報を信号化するためのシンタックスを備える。新たなシンタックス要素layer_dependency_information_patternを定義する。
layer_dependency_information_patternは、vps_max_layers_minus1に等しい長さを用いて、0と1のビットのパターンを信号化する。i番目のビットの値が0である場合、layer_id (i+1)を有するレイヤが独立したレイヤであることを示す。i番目のビットの値が1である場合、layer_id (i+1)を有するレイヤが1以上の他のレイヤに依存する依存レイヤであることを示す。
NumDepLayersの値は、1の値を有するlayer_dependency_information_patternのビットの総数に等しい。したがって、
となる。
図29を参照すると、図26の変形例は、レイヤ依存性情報を信号化するためのシンタックスを備える。新たなシンタックス要素layer_dependency_flag[i]を定義する。上記layer_dependency_flag[i]は、あるレイヤが他のレイヤに依存する場合に信号化する。フラグの値が0である場合、layer_id iを有するレイヤが独立したレイヤであることを示す。i番目のビットの値が1である場合、layer_id iを有するレイヤが依存レイヤであることを示す。
図30を参照すると、図26の変形例は、レイヤ依存性情報を信号化するためのシンタックスを備える。新たなシンタックス要素layer_dependency_map[i]を定義する。上記layer_dependency_map[i]は、vps_max_layers_minus1に等しい長さを用いて、0と1のビットのパターンを信号化する。layer_dependency_map[i]のk番目のビットの値が0である場合、レイヤiがlayer_id (k+1)を有するレイヤに依存しないことを示す。layer_dependency_map[i]のk番目のビットの値が1である場合、レイヤiがlayer_id (k+1)を有するレイヤに依存することを示す。
図31を参照すると、図26の変形例は、レイヤ依存性情報を信号化するためのシンタックスを備える。新たなシンタックス要素layer_dependency_information_patternを定義する。
上記layer_dependency_information_patternは、vps_max_layers_minus1に等しい長さを用いて、0と1のビットのパターンを信号化する。i番目のビットの値が0である場合、layer_id (i+1)を有するレイヤが独立したレイヤであることを示す。i番目のビットの値が1である場合、layer_id (i+1)を有するレイヤが1以上の他のレイヤに依存する依存レイヤであることを示す。NumDepLayersの値は、1の値を有するlayer_dependency_information_patternのビットの総数に等しい。したがって、
となる。
layer_dependency_map[i]は、vps_max_layers_minus1に等しい長さを用いて、0と1のビットのパターンを信号化する。layer_dependency_map[i]のk番目のビットの値が0である場合、レイヤiがlayer_id (k+1)を有するレイヤに依存しないことを示す。layer_dependency_map[i]のk番目のビットの値が1である場合、レイヤiがlayer_id (k+1)を有するレイヤに依存することを示す。
図32を参照すると、図26の変形例は、レイヤ依存性情報を信号化するためのシンタックスを備える。図28は、図27に示すシンタックスに基づくシンタックスの変形例である。新たなシンタックス要素layer_dependency_information_patternを定義する。
layer_dependency_information_patternは、vps_max_layers_minus1に等しい長さを用いて、0と1のビットのパターンを信号化する。i番目のビットの値が0である場合、layer_id (i+1)を有するレイヤが独立したレイヤであることを示す。i番目のビットの値が1である場合、layer_id (i+1)を有するレイヤが1以上の他のレイヤに依存する依存レイヤであることを示す。
NumDepLayersの値は、1の値を有するlayer_dependency_information_patternのビットの総数に等しい。したがって、
となる。
シンタックス要素num_direct_ref_layers[i]およびref_layer_id[i][j]は、layer_dependency_information_pattern(i)の値が1である場合にのみ信号化される。なお、layer_depdndency_information_pattern(i)はシンタックス要素layer_dependency_patternのi番目のビットである。
図33を参照すると、図26の変形例は、レイヤ依存性情報を信号化するためのシンタックスを備える。図29は、図31に示すシンタックスに基づくシンタックスの変形例である。新たなシンタックス要素layer_dependency_information_patternを定義する。
layer_dependency_information_patternは、vps_max_layers_minus1に等しい長さを用いて、0と1のビットのパターンを信号化する。i番目のビットの値が0である場合、layer_id (i+1)を有するレイヤが独立したレイヤであることを示す。i番目のビットの値が1である場合、layer_id (i+1)を有するレイヤが1以上の他のレイヤに依存する依存レイヤであることを示す。
NumDepLayersの値は、1の値を有するlayer_dependency_information_patternのビットの総数に等しい。したがって、
となる。
layer_dependency_map[i]は、vps_max_layers_minus1に等しい長さを用いて、0と1のビットのパターンを信号化する。layer_dependency_map[i]のk番目のビットの値が0である場合、レイヤiがlayer_id (k+1)を有するレイヤに依存しないことを示す。layer_dependency_map[i]のk番目のビットの値が1である場合、レイヤiがlayer_id (k+1)を有するレイヤに依存することを示す。シンタックス要素layer_dependency_map[i]は、layer_dependency_information_pattern(i)の値が1である場合にのみ信号化される。なお、layer_depdndency_information_pattern(i)はシンタックス要素layer_dependency_patternのi番目のビットである。
他の実施形態において、シンタックス要素layer_dependency_information_patternは、一連の1ビットのフラグの値として信号化されてもよい。この場合、vps_max_layers_minus1の1ビットの値の合計は次のように信号化される。
他の実施形態において、シンタックス要素layer_dependency_map[i]は、一連の1ビットのフラグの値として信号化されてもよい。この場合、vps_max_layers_minus1の1ビットの値の合計は次のように信号化される。
他の実施形態において、上記シンタックス要素layer_dependency_information_pattern、layer_dependency_mapのうちの一または複数は、u(v)の代わりに既知の一定数のビットを用いて信号化してもよい。例えば、上記シンタックス要素は、u(64)を用いて信号化してもよい。
他の実施形態において、上記シンタックス要素layer_dependency_information_pattern、layer_dependency_mapのうちの一または複数は、ue(v)またはその他のコード体系によって信号化してもよい。
他の実施形態において、種々のシンタックス要素の名称およびセマンティクスは、上述のシンタックスおよびセマンティクスと比較して、plus1もしくはplus2を加算、またはminus1もしくはminus2を減算することによって変更してもよい。
さらに他の実施形態において、layer_dependency_information_pattern、layer_dependency_map、layer_dependency_flag[i]などの種々のシンタックス要素は、上記ビットストリーム中の任意の箇所で、画像ごとに信号化してもよい。例えば、スライスヘッダー、pps/sps/vps/apsもしくはその他のパラメータセット、または上記ビットストリーム中の規準を定める他の部分において信号化してもよい。
先述したように、スケーラブル映像符号化は、一または複数のサブセットビットストリームを含む映像ビットストリームを符号化する技術である。サブセット映像ビットストリームは、より大きい映像からパケットを減らして上記サブセットビットストリームに必要とされる帯域幅を削減することによって得られ得る。上記サブセットビットストリームは、より低い空間分解能(より小さい画面)、より低い時間分解能(より低いフレームレート)、またはより低い品質の映像信号を表すこともある。例えば、映像ビットストリームは5つのサブセットビットストリームを含み、これらサブセットビットストリームのそれぞれがベースビットストリームに追加内容を追加するものであってもよい。Hannukselaらによる2012年10月の上海でのJCTVC−L0453「Test Model for Scalable Extensions of High Efficiency Video Coding (HEVC)」の全体が、本明細書中に参考として援用される。Chenらによる2013年3月のジュネーヴでのJCTVC−L1008「SHVC Draft Text 1」の全体が、本明細書中に参考として援用される。Wangらによる2013年4月の仁川でのJCTVC−M0268「AHG9: On VPS and SPS in HEVC 3DV and scalable extensions」の全体が、本明細書中に参考として援用される。
先述したように、マルチビュー映像符号化は、代替ビュー(alternative view)を表す一または複数の他のビットストリームを含む映像ビットストリームを符号化する技術である。例えば、多重ビュー(multiple view)は、立体視的な映像のための一対のビューであってもよい。例えば、多重ビューは、異なる視点からの同一のシーンの多重ビューを表すものであってもよい。多重ビューは、その画像が異なる視点からの同一のシーンの画像であるため、一般にビュー間の統計的な依存性を多く含む。したがって、時間的な予測とビュー間の予測とを組み合わせることで、効率的なマルチビュー符号化を実現できる可能性がある。例えば、フレームは、時間的に関係するフレームからだけではなく、隣接する視点のフレームからも、効率的に予測できる可能性がある。Hannukselaらによる2013年1月のジュネーヴでのJCTVC−L0452「Common specification text for scalable and multi-view extensions」の全体が、本明細書中に参考として援用される。Techらによる2013年1月のジュネーヴでのJCT3V−C1004_d3「MV-HEVC Draft Text 3 (ISO/IEC 23008-2:201x/PDAM2)」の全体が、本明細書中に参考として援用される。
Chenらによる2013年1月のジュネーヴでのJCTVC−L1008「SHVC Draft Text 1」、Hannukselaらによる2012年10月の上海でのJCTVC−L0453−spec−text「Test Model for Scalable Extensions of High Efficiency Video Coding (HEVC)」、およびHannukselaによる2012年10月の上海でのJCTVC−L0452−spec−text−r1「Draft Text for Multiview Extension of High Efficiency Video Coding (HEVC)」は、それぞれの全体が、本明細書中に参考として援用されるが、JCTVC−L0452およびJCTVC−L0453のそれぞれが、出力動作点の概念を有する。これはその後、JCTVC−L1008において出力レイヤセットの概念へと変化した。シンタックス要素num_output_operation_pointsについては、output_op_point_index[]およびoutput_layer_flag[][]がJCTVC−L0453およびLCTVC−L0452の出力動作点のために定義され、JCTVC−L1008においてnum_output_layer_sets、output_layer_set_idx[]、およびoutput_layer_flag[][]に改変された。これらの文献のそれぞれにおいて、レイヤ依存性変化SEIメッセージが定義される。上記SEIメッセージにより、上記SEIメッセージを含む現在のアクセスユニットから開始するレイヤ依存性情報変化を信号化できる。
Chenらによる2013年1月のジュネーヴでのJCTVC−L1008「SHVC Draft Text 1」、Hannukselaらによる2012年10月の上海でのJCTVC−L0453−spec−text「Test Model for Scalable Extensions of High Efficiency Video Coding (HEVC)」、およびHannukselaによる2012年10月の上海でのJCTVC−L0452−spec−text−r1「Draft Text for Multiview Extension of High Efficiency Video Coding (HEVC)」は、それぞれの全体が、本明細書中に参考として援用されるものであり、それぞれが、上記DPBからの画像0の出力および削除のためのシンタックス要素sps_max_num_reorder_pics[HighestTid]、sps_max_latency_increase_plus1[HighestTid]、およびsps_max_dec_pic_buffering[HighestTid]を用いることに基づいて動作する出力順序復号化画像バッファ(DPB)を有する。この情報は、上記ベースレイヤのための映像パラメータセット中に信号化されており、これにより、上記エンハンスメントレイヤがあればそれを含む映像内容のためのバッファ用情報が得られる。
図34に、映像パラメータセットの他の例を示す。図34の映像パラメータセットは、特に、関連する映像パラメータセット拡張(vps_extension)への参照を含む。このvps_extensionは、vps_extension_flag、vps_extension2_flag、および/またはvps_extension_data_flagによって信号化してもよい。
図35に、映像パラメータセット拡張の他の例を示す。図35の映像パラメータセット拡張は、特に、num_output_layer_setsへの参照を含むが、これは、ビットストリームのレイヤセットのうち、復号装置が視聴者に対して出力するレイヤを定義するものである。num_output_layer_setsは、出力レイヤがoutput_layer_set_index[ i ]およびoutput_layer_flag[ lsIdx ][ j ]によって指定されるレイヤセットの数を指定する。num_output_layer_setsは、存在しないとき、その値は0と等しいものと推定される。出力レイヤを記述するレイヤセットは、出力レイヤセットである。
output_layer_set_idx[ i ]は、output_layer_flag[ lsIdx][ j ]が存在するレイヤセットのインデックスlsIdxを指定する。
output_layer_flag[ lsIdx ][ j ]が1と等しい場合は、nuh_layer_idがjと等しいレイヤがlsIdx番目のレイヤセットの対象出力レイヤであることを指定する。output_layer_flag[ lsIdx ][ j ]の値が0と等しい場合は、nuh_layer_idがjと等しいレイヤがlsIdx番目のレイヤセットの対象出力レイヤではないことを指定する。
上記num_output_layer_setsが上述のようにvps_extensionに定義されることで、上記num_output_layer_setsは、新しい映像パラメータセットを対応する映像パラメータセット拡張とともに送ることで更新することができる。しかしながら、上記新しい映像パラメータセットを上記対応する映像パラメータセット拡張とともに送ることで、利用可能な帯域幅が著しく減少する結果になる。そのうえ、新しい映像パラメータセットは、例えばイントラランダムアクセスポイント画像などの一定種類の画像でしか有効化し得ない。
例えば、ビットストリームは、ベースレイヤ0と、4つのエンハンスメントレイヤ、すなわち、エンハンスメントレイヤ1、エンハンスメントレイヤ2、エンハンスメントレイヤ3、およびエンハンスメントレイヤ4とを含んでいてもよい。第一のレイヤセットは、ベースレイヤ0およびエンハンスメントレイヤ1であってもよい。第二のレイヤセットは、ベースレイヤ0、エンハンスメントレイヤ1、およびエンハンスメントレイヤ2であってもよい。第三のレイヤセットは、ベースレイヤ0、エンハンスメントレイヤ1、およびエンハンスメントレイヤ3であってもよい。第四のレイヤセットは、ベースレイヤ0およびエンハンスメントレイヤ4であってもよい。上記出力レイヤセットは、出力として得られることがあるレイヤセットの特定のレイヤを定義する。例えば、出力レイヤセット1は、レイヤ0は出力であり、レイヤ1は出力ではないことを定義してもよい。例えば、出力レイヤセット2は、レイヤ0は出力であり、レイヤ1は出力であり、レイヤ2は出力ではないことを定義してもよい。例えば、出力レイヤセット3は、レイヤ0は出力ではなく、レイヤ1は出力ではなく、レイヤ3は出力であることを定義してもよい。例えば、出力レイヤセット4は、レイヤ0は出力であり、レイヤ4は出力ではないことを定義してもよい。出力レイヤの数を制限することは、制限された復号化能力のを融通するのに有用である。場合によっては、異なるレイヤ間の依存性のいくつかを無効にして、他のレイヤの復号化および/または復号装置能力の余地を作ることが望ましい。レイヤ依存性のいくつかが変化する場合は、他のレイヤを有効にする、無効にする、および/または出力レイヤとして追加することが同様に望ましい。例えば、レイヤ依存性変化によって、特定の対象レイヤ(例えば、MV−HEVCでのビュー)を復号化するために復号化する必要があるレイヤの数が少なくなる可能性がある。よって、復号装置が、レイヤ依存性変化の後に、ハードウェアの制限によって以前は復号化・出力できなかったレイヤ(および、例えば、追加ビュー)を復号化・出力できる可能性がある。現在は、新しい映像パラメータセットを送ることなく出力レイヤセットにおける変化を信号化できる機構は存在しない。
図36を参照すると、SEIメッセージシンタックスを使用して、上記出力レイヤセット、すなわち、output_layer_sets_change(payloadSize)の変化を容易にすることができる。このSEIメッセージは、上記出力層セット情報変化が上記SEIメッセージを含む現在のアクセスユニットから開始し、アクティブな映像パラメータセットに対して解釈されることを示す。1より大きい数の映像パラメータセットが上記ビットストリームとともに含まれていてもよく、上記アクティブな映像パラメータセットは所望のように変更される。出力レイヤセット変化SEIメッセージは、存在するとき、現在のアクセスユニットとそれに続くすべてのアクセスユニットからなる対象アクセスユニットセットに対して、復号化順序で、次の出力レイヤセット変化SEIメッセージまたは符号化映像シーケンスの末尾のうちの、いずれか復号化順序の早い方まで適用される。出力レイヤセット変化SEIメッセージには、蓄積効果がない方が好ましい。
active_vps_idは、上記変化または追加が適用された出力レイヤセット情報を含むアクティブな映像パラメータセットを特定する。active_vps_idの値は、上記SEIメッセージを含むアクセスユニットのVCL NALユニットに対するアクティブな映像パラメータセットのvideo_parameter_set_idの値と等しい。
num_changed_output_layer_setsは、active_vps_idで特定されたアクティブな映像パラメータセットのvps拡張部で出力レイヤが指定される変化した出力レイヤセットの数を指定する。num_changed_output_layer_setsの値は、0以上num_output_layer_sets以下の範囲になるであろう。存在しないとき、num_changed_output_layer_setsの値は0と等しいものと推定される。
changed_output_layer_sets_idx_entry'[ i ]は、output_layer_flag[ clsIdx ][ j ]の変化が適用されるactive_vps_idによって特定されるvps拡張での出力レイヤセットのエントリのリスト中のインデックスエントリを特定する。changed_output_layer_set_idx_entry[ i ]の値は、0以上num_output_layer_sets以下の範囲になるであろう。jがiと等しくない場合、changed_output_layer_sets_idx_entry[ i ]は、changed_output_layer_sets_idx_entry[ j ]と等しくない。
output_layer_flag'[ clsIdx ][ j ]が1と等しい場合は、nuh_layer_idがjと等しいレイヤがclsIdx番目のレイヤセットの対象出力レイヤであることを指定する。output_layer_flag[ clsIdx ][ j ]の値が0と等しい場合は、nuh_layer_idがjと等しいレイヤがclsIdx番目のレイヤセットの対象出力レイヤではないことを指定する。
clsIdxが0以上vps_num_layer_sets_minus1以下の範囲であり、jが0以上63以下の範囲である場合に、output_layer_flag[ clsIdx ][ j ]が存在しないとき、output_layer_flag[ clsIdx ][ j ]は(j = = LayerSetLayerIdList[ clsIdx ][ NumLayersInIdList[ clsIdx ] - 1 ])と等しいものと推定される。
num_addl_output_layer_setsは、出力レイヤがaddl_output_layer_set_idx[ i ]およびoutput_layer_flag[ addllsIdx ][ j ]によって指定される追加レイヤセットの数を指定する。存在しないとき、num_addl_output_layer_setsの値は0と等しいものと推定される。addl_output_layer_sets_idx'[ i ]は、output_layer_flag[addllsIdx][j]が存在するレイヤセットのインデックスaddllsIdxを特定する。
output_layer_flag'[ addllsIdx ][ j ]が1と等しい場合は、nuh_layer_idがjと等しいレイヤがaddllsIdx番目のレイヤセットの対象出力レイヤであることを指定する。output_layer_flag[ addllsIdx ][ j ]の値が0と等しい場合は、nuh_layer_idがjと等しいレイヤがaddllsIdx番目のレイヤセットの対象出力レイヤではないことを指定する。
addllsIdxが0以上vps_num_layer_sets_minus1以下の範囲であり、jが0以上63以下の範囲である場合に、output_layer_flag[ addllsIdx ][ j ]が存在しないとき、output_layer_flag[ addllsIdx ][ j ]は、(j = = LayerSetLayerIdList[ addllsIdx ][ NumLayersInIdList[ addllsIdx ] - 1 ])と等しいものと推定される。
addllsIdxが0以上vps_num_layer_sets_minus1以下の範囲であり、jが0以上63以下の範囲である場合に、output_layer_flag[ addllsIdx ][ j ]が存在しないとき、および、clsIdxが0以上vps_num_layer_sets_minus1以下の範囲であり、jが0以上63以下の範囲である場合に、output_layer_flag[ clsIdx ][ j ]が存在しないとき、output_layer_flag[ addllsIdx ][ j ]は、(j = = LayerSetLayerIdList[ addllsIdx ][ NumLayersInIdList[ addllsIdx ] - 1 ])と等しいものと推定される。
addllsIdxが0以上vps_num_layer_sets_minus1以下の範囲であり、jが0以上63以下の範囲である場合に、output_layer_flag[ addllsIdx ][ j ]が存在しないとき、および、clsIdxが0以上vps_num_layer_sets_minus1以下の範囲であり、jが0以上63以下の範囲である場合に、output_layer_flag[ clsIdx ][ j ]が存在しないとき、output_layer_flag[ clsIdx ][ j ]は、(j = = LayerSetLayerIdList[ clsIdx ][ NumLayersInIdList[ clsIdx ] - 1 ])と等しいものと推定される。
所望であれば、出力レイヤの対象リストを得ることもできる。対象出力レイヤ特定リストtargetOpLayerIdListは、nuh_layer_idの値のリストを、選択された出力レイヤセットの出力レイヤであるnuh_layer_idの値の小さい順に指定するものであり、以下のように得ることができる。
選択された出力レイヤセットoLsIdxについては、対象出力レイヤ特定リストtargetOpLayerIdListを以下のように得られる。
対象出力レイヤセットは、関連する対象出力レイヤ特定リストtargetOpLayerIdListによって特定してもよい。
上記選択された出力レイヤセットoLsIdxは、出力レイヤセット変化SEIメッセージがない場合、0〜num_output_layer_setsである。
上記選択された出力レイヤセットoLsIdxは、出力レイヤセット変化SEIメッセージが存在する場合、0〜num_output_layer_sets+num_addl_output_layer_setsである。
所望であれば、復号化済みレイヤの対象リストを得ることもできる。対象復号化済みレイヤ特定リストtargetDLayerIdListは、上記選択された出力レイヤセットのために復号化する必要があるnuh_layer_idの値のリストを指定するものであり、以下のように得ることができる。
上記選択された出力レイヤセットoLsIdxについては、対象出力レイヤ特定リストtargetOpLayerIdListを以下のように得られる。
対象復号化済みレイヤ特定リストtargetDLayerIdListは、以下のように得られる。
上記targetDLayerIdListをnuh_layer_idの値の小さい順に並べることによって、最終的なtargetDLayerIdListを得られる場合もある。
対象復号化済みレイヤセットは、関連する対象復号化済みレイヤ特定リストtargetDLayerIdListによって特定される。上記targetDLayerIdListは、JCTVC−L1008のレイヤ特定リストTargetDecLayerIdListと同じ場合もある。JCTVC−L1008は、復号化されるNALユニットのnuh_layer_idの値のリストを、nuh_layer_idの値の小さい順に指定する。
上記選択された出力レイヤセットoLsIdxは、出力レイヤセット変化SEIメッセージが存在しない場合、0〜num_output_layer_setsである。
上記選択された出力レイヤセットoLsIdxは、出力レイヤセット変化SEIメッセージが存在する場合、0〜num_output_layer_sets+num_addl_output_layer_setsである。
図37を参照すると、他のSEIメッセージシンタックスを用いて、上記出力レイヤセットの変化、すなわちoutput_layer_sets_change(payloadSize)を容易にしてもよい。
num_deleted_output_layer_setsは、削除されて、もはや存在しない出力レイヤセットの数を指定する。num_deleted_output_layer_setsの値は、0以上num_output_layer_sets以下の範囲である。存在しないとき、num_deleted_output_layer_setsの値は、0と等しいものと推定される。
deleted_output_layer_sets_idx_entry'[ i ]は、出力レイヤセットのエントリのリスト中で、削除されて、もはや存在しないと示されるインデックスエントリを特定する。deleted_output_layer_set_idx_entry[ i ]の値は、0以上num_output_layer_sets以下の範囲になるだろう。上記deleted_output_layer_sets_idx_entry[ i ]は、jがiと等しくない場合、deleted_output_layer_sets_idx_entry[ j ]と等しくない。
num_changed_output_layer_setsは、active_vps_idで特定されたアクティブな映像パラメータセットのvps拡張部で出力レイヤが指定される変化した出力レイヤセットの数を指定する。num_changed_output_layer_setsの値は、0以上num_output_layer_sets−num_deleted_output_layer_sets以下の範囲になるであろう。存在しないとき、num_changed_output_layer_setsの値は0と等しいものと推定される。
所望であれば、出力レイヤの対象リストを得ることもできる。対象出力レイヤ特定リストtargetOpLayerIdListは、nuh_layer_idの値のリストを、選択された出力レイヤセットの出力レイヤであるnuh_layer_idの値の小さい順に指定するものであり、以下のように得ることができる。
上記選択された出力レイヤセットoLsIdxについては、対象出力レイヤ特定リストtargetOpLayerIdListを以下のように得られる。
対象出力レイヤセットは、関連する対象出力レイヤ特定リストtargetOpLayerIdListによって特定される。
上記選択された出力レイヤセットoLsIdxは、出力レイヤセット変化SEIメッセージが存在しない場合、0からnum_output_layer_setsまでのあいだである。
上記選択された出力レイヤセットoLsIdxは、出力レイヤセット変化SEIメッセージが存在する場合、0からnum_output_layer_sets−num_deleted_output_layer_sets+num_addl_output_layer_setsまでのあいだである。
所望であれば、復号化済みレイヤの対象リストを得ることもできる。
対象復号化済みレイヤ特定リストTargetDLayerIdListは、上記選択された出力レイヤセットのために復号化する必要があるnuh_layer_idの値のリストを指定するものであり、以下のように得ることができる。
上記選択された出力レイヤセットoLsIdxについては、対象出力レイヤ特定リストtargetOpLayerIdListを以下のように得ることができる。
さらに、対象復号化済みレイヤ特定リストtargetDLayerIdListは、以下のように得ることができる。
上記targetDLayerIdListをnuh_layer_idの値の小さい順に並べることによって、最終的なtargetDLayerIdListを得られる場合もある。
対象復号化済みレイヤセットは、関連する対象復号化済みレイヤ特定リストtargetDLayerIdListによって特定される。上記targetDLayerIdListは、JCTVC−L1008のレイヤ特定リストTargetDecLayerIdListと同じ場合もある。JCTVC−L1008は、復号化されるNALユニットのnuh_layer_idの値のリストを、nuh_layer_idの値の小さい順に指定する。
上記選択された出力レイヤセットoLsIdxは、出力レイヤセット変化SEIメッセージが存在しない場合、0からnum_output_layer_setsまでのあいだである。
上記選択された出力レイヤセットoLsIdxは、出力レイヤセット変化SEIメッセージが存在する場合、0からnum_output_layer_sets−num_deleted_output_layer_sets+num_addl_output_layer_setsまでのあいだである。
上記出力レイヤセット変化SEIメッセージは、効果が蓄積するものではないと定義される。他の実施形態において、このメッセージシンタックスおよび/またはセマンティクスは、蓄積するものであると定義することができる。この場合、上記復号装置(および符号化装置)は、(vps拡張からの)num_output_layer_sets、および/またはnum_deleted_output_layer_sets、および/またはnum_changed_output_layer_sets、および/またはnum_addl_output_layer_setsの以前の値のすべてについて記録を取ることができ、新しいSEIメッセージが信号化されるたびに、これらの変化を蓄積することができる。
他の実施形態において、上記シンタックス要素のうちの一または複数は、u(v)の代わりに、ue(v)の代わりに既知の一定の数のビットを用いて信号化してもよい。例えば、上記シンタックス要素は、u(8)、u(16)、u(32)、またはu(64)などを用いて信号化してもよい。
他の実施形態において、これらのシンタックス要素のうちの一または複数は、u(v)符号化などの一定の数のビットの代わりに、ue(v)またはその他のコード体系で信号化することもできる。
他の実施形態において、種々のシンタックス要素の名称およびセマンティクスは、上述のシンタックスおよびセマンティクスと比較して、plus1もしくはplus2を加算、またはminus1もしくはminus2を減算することによって変更してもよい。
さらに他の実施形態において、出力レイヤセットSEIメッセージに含まれる種々のシンタックス要素は、ビットストリーム中の任意の箇所で、画像ごとに、または、他の周波数で、信号化してもよい。例えば、上記シンタックス要素は、スライスヘッダー、pps/sps/vps/適応パラメータセットもしくはその他のパラメータセット、または上記ビットストリーム中の規準を定める他の部分において信号化してもよい。
さらに他の実施形態において、種々のシンタックス要素は、ビットストリーム中の任意の箇所で、画像ごとに、または、他の周波数で、信号化してもよい。例えば、上記シンタックス要素は、スライスヘッダー、pps/sps/vps/適応パラメータセットもしくはその他のパラメータセット、または上記ビットストリーム中の規準を定める他の部分において信号化してもよい。
さらに他の実施形態において、本発明において定義される、出力レイヤセットに関する概念は、すべてJCTVC−L0452およびJCTVC−L0453で定義される出力動作点、ならびに/またはJCTVC−L1003で定義される動作点に適用し得る。
〔実施形態2〕
本発明に係る他の実施例を以下に説明する。なお、説明の便宜上、実施例1にて説明した対応部材と同じ機能を有する部材については、同じ符号を付与し、本実施例ではその説明を省略する。
出力順序復号化画像バッファ(DPB)から画像を出力および削除するためのシンタックス要素ps_max_num_reorder_pics[HighestTid]、sps_max_latency_increase_plus1[HighestTid]およびsps_max_dec_pic_buffering[HighestTid]の使用に基づいてのDPBの信号化は、例えばユーザの視聴嗜好に基づいてコンテンツが符号化された後に変化する傾向にある様々な数のエンハンスメントレイヤが使用された場合や、ユーザの視聴嗜好に基づいてコンテンツが符号化された後に変化する傾向にあるマルチビューエンハンスメントレイヤが使用された場合など、スケーラブル映像符号化に起因する可能性のあるバッファ特性の要因とはならないと結論付けられた。また、出力順序復号化画像バッファ(DPB)から画像を出力および削除するためのシンタックス要素ps_max_num_reorder_pics[HighestTid]、sps_max_latency_increase_plus1[HighestTid]およびsps_max_dec_pic_buffering[HighestTid]の使用に基づいてのDPBの信号化は、復号装置が特定の動作点で動作する場合および/または復号装置が選択された出力レイヤセットを出力する場合に、DPBのメモリ使用という点で最適ではない可能性があると結論付けられた。視聴嗜好においてのこのような違いを調整するために、上記出力順序復号化画像バッファ(DPB)は、さらにおよび/または代わりに上記映像パラメータセット拡張(VPS拡張)と共に含まれるシンタックス要素に基づいていてもよく、それにより一または複数のエンハンスメントレイヤ用のシンタックス要素を提供する。このように、上記シンタックス要素はユーザの視聴嗜好に対応する傾向にある特定の動作点または出力レイヤセットに適するように特別に選択されてもよい。
DPBバファリング関連パラメータvps_max_dec_pic_buffering_minus1、vps_max_num_reorder_pics、vps_max_latency_increase_plus1は一または複数の動作点および/またはVPS拡張における出力レイヤセット用のCVSのためのサブレイヤ用に信号化されてもよい。同様に、上記システムは、DPBバファリングパラメータが試験用動作点または選択された出力レイヤセット用に信号化される場合は、VPS拡張から信号化された当該DPBバファリングパラメータを使用するために出力順序DPB用の動作およびバンピング工程を定義してもよい。又は、現在のレイヤのlayer_idにより、アクティブなSPS(現在の画像のnuh_layer_idに対応するcurrLayerIdが0に等しい場合)あるいはアクティブレイヤPSからの対応SPSレベルパラメータが使用される。パラメータvps_max_dec_pic_buffering_minus1、vps_max_num_reorder_pics、vps_max_latency_increase_plus1は、それぞれmax_vps_dec_pic_buffering_minus1、max_vps_num_reorder_pics、max_vps_latency_increase_plus1と称される場合もある。
別の場合には、上記DPBバファリング関連パラメータmax_vps_dec_pic_buffering_minus1はVPS拡張における一または複数の出力レイヤセット用のCVSのためのサブレイヤ用に信号化される。上記出力レイヤセットは動作点に対応してもよい。上記DPBバファリング関連パラメータmax_vps_num_reorder_pics、max_vps_latency_increase_plus1はVPS拡張におけるそれぞれのレイヤ用のCVSのためのサブレイヤ用に信号化されてもよい。同様に、上記システムは、DPBバファリングパラメータが試験用動作点または選択された出力レイヤセット用に信号化される場合は、VPS拡張から信号化された当該DPBバファリングパラメータを使用するために出力順序DPB用の動作およびバンピング工程を定義してもよい。又は、現在のレイヤのlayer_idにより、アクティブなSPS(現在の画像のnuh_layer_idに対応するcurrLayerIdが0に等しい場合)あるいはアクティブレイヤPSからの対応SPSレベルパラメータが使用される。
図38Aには、vps_extensionの変形例が示されている。当該変形VPS拡張は、新しいシンタックス、すなわちnum_op_dpb_info_parametersおよびoperation_point_layer_set_idx[i]を含んでいる。この変形VPS拡張は、他のビットストリーム、対象最高TemporalId、および対象レイヤ識別子リストを入力としたサブビットストリーム抽出工程の動作により当該他のビットストリームから作成されたビットストリームである動作点をユニットとして定義されてもよい。
num_output_layer_setsはレイヤセットの数を特定し、その数だけ出力レイヤがoutput_layer_set_index[ i ]およびoutput_layer_flag[ lsIdx ][ j ]によって特定される。出力レイヤが存在しない場合、num_output_layer_setsの値は0に等しいと推測される。出力レイヤを説明するレイヤセットが出力レイヤセットである。
output_layer_set_idx[ i ]はレイヤセットのインデックスlsIdxを特定し、そのインデックスだけoutput_layer_flag[ lsIdx][ j ]が存在する。
1に等しいoutput_layer_flag[ lsIdx ][ j ]は、jに等しいnuh_layer_idのレイヤがlsIdx番目のレイヤセットの対象出力レイヤであることを特定する。0に等しいoutput_layer_flag[ lsIdx ][ j ]の値は、jに等しいnuh_layer_idのレイヤがlsIdx番目のレイヤセットの対象出力レイヤではないことを特定する。
上記num_op_dpb_info_parametersは、動作点をユニットとして定義される、VPS拡張RBSPに存在するシンタックス構造op_dpb_parameters( )の数を定義する。num_op_dpb_info_parameters復号装置は0以上vps_num_layer_sets_minus1以下の範囲である。
operation_point_layer_set_idx[ i ]は、VPS拡張におけるi番目のシンタックス構造op_dpb_info_parameters( )が適用される動作点によって定義されるレイヤセットのリスト内にインデックスを特定する。上記operation_point_layer_set_idx[ i ]の値は0以上vps_num_layer_sets_minus1以下の範囲でもよい。ビットストリームの適合性のため、operation_point_layer_set_idx[ i ]はiに等しくないどのjにおいてもoperation_point_layer_set_idx[ j ]に等しくない。
図39Aにおいて、op_dpb_info_parametersはvps_max_sub_layers_minus1[ j ]、vps_sub_layer_ordering_info_present_flag[ j ]、vps_max_dec_pic_buffering_minus1[ j ] [ k ]、vps_max_num_reorder_pics[ j ] [ k]、およびvps_max_latency_increase_plus1[ j ] [ k ]を特定する。
vps_max_sub_layers_minus1[ j ] plus 1はサブレイヤの数が含まれていることを示している。当該vps_max_sub_layers_minus1[ j ] plus 1はjに等しいnuh_layer_idのレイヤ用のCVSにおいて存在する可能性のある一時的サブレイヤの最大数を特定する。vps_max_sub_layers_minus1[ j ]の値は0以上6以下の範囲である。
上記vps_sub_layer_ordering_info_present_flag[ j ]は、シンタックスが全てのレイヤを含む一つのセット用のものか又はそれぞれ個別のレイヤ用のものかを示す。1に等しいvps_sub_layer_ordering_info_present_flag[ j ]は、vps_max_sub_layers_minus1[ j ] + 1 サブレイヤ用のjに等しいnuh_layer_idのレイヤ用にvps_max_dec_pic_buffering_minus1[ j ][ k ]、vps_max_num_reorder_pics[ j ][ k ]、およびvps_max_latency_increase_plus1[ j ][ k ]が存在することを特定する。0に等しいvps_sub_layer_ordering_info_present_flag[ j ]は、vps_max_dec_pic_buffering_minus1[ j ][ vps_max_sub_layers_minus1[ j ] ]、vps_max_num_reorder_pics[ j ][ vps_max_sub_layers_minus1[ j ] ]、およびvps_max_latency_increase_plus1[ j ][ vps_max_sub_layers_minus1[ j ] ]の値がjに等しいnuh_layer_idのレイヤ用の全てのサブレイヤに適用されることを特定する。
The vps_max_dec_pic_buffering_minus1[ j ][ k ] plus 1は、HighestTidがkに等しい場合に画像保存バッファのユニットにおけるjに等しいnuh_layer_idのレイヤ用のCVS用の上記復号化画像バッファの最大必要サイズを特定する。上記vps_max_dec_pic_buffering_minus1[ j ][ k ]の値は0以上(サブクローズA.4に特定されるように)MaxDpbSize - 1以下の範囲である。kが0よりも大きい場合、vps_max_dec_pic_buffering_minus1[ j ][ k ]はvps_max_dec_pic_buffering_minus1[ j ][ k - 1 ]以上である。vps_max_dec_pic_buffering_minus1[ j ][ k ]は、vps_sub_layer_ordering_info_present_flag[ j ]が0に等しいために0以上vps_max_sub_layers_minus1[ j ] - 1以下の範囲であるkにおいて存在しない場合、vps_max_dec_pic_buffering_minus1[ j ] [ vps_max_sub_layers_minus1[ j ] ]に等しいと推定される。
上記vps_max_num_reorder_pics[ j ][ k ]はHighestTidがkに等しい場合に、復号化順序ではjに等しいnuh_layer_idのレイヤ用のCVSにおける画像に先行し、出力順序ではその画像の後になる画像の最大許容数を示す。上記vps_max_num_reorder_pics[ j ][ k ]の値は0以上vps_max_dec_pic_buffering_minus1[ j ][ k ]以下の範囲である。kが0よりも大きい場合、vps_max_num_reorder_pics[ j ][ k ]はvps_max_num_reorder_pics[ j ][ k- 1 ]以上である。vps_max_num_reorder_pics[ j ][ k ]は、vps_sub_layer_ordering_info_present_flag[ j ]が0に等しいために0以上vps_max_sub_layers_minus1[ j ] - 1以下の範囲であるkにおいて存在しない場合、vps_max_num_reorder_pics[ j ][ vps_max_sub_layers_minus1[ j ] ]に等しいと推定される。
0に等しくないvps_max_latency_increase_plus1[ j ][ k ]は、HighestTidがkに等しい場合、出力順序においてはjに等しいnuh_layer_idのレイヤ用のCVSにおける画像に先行し、復号化順序においてはその画像の後になる画像の最大数を特定するVpsMaxLatencyPictures[ j ][ k ]の値を計算するために使用される。
Vps_max_latency_increase_plus1[ j ][ k ]が0に等しくない場合、VpsMaxLatencyPictures[ j ][ k ]の値は以下のように特定されてもよい:
VpsMaxLatencyPictures[ j ][ k ] = vps_max_num_reorder_pics[ j ][ k ] + vps_max_latency_increase_plus1[ j ][ k ] - 1。
vps_max_latency_increase_plus1[ j ][ k ]が0に等しい場合、対応する制限はない。
vps_max_latency_increase_plus1[ j ][ k ]の値は0以上232−2以下の範囲である。vps_max_latency_increase_plus1[ j ][ k]は、vps_sub_layer_ordering_info_present_flag[ j ]が0に等しいために0以上vps_max_sub_layers_minus1[ j ] - 1以下の範囲のkに存在しない場合、vps_max_latency_increase_plus1[ j ][ vps_max_sub_layers_minus1[ j ] ]に等しいと推定される。
'vps_max_sub_layers_minus1'[ id ] [ j ] plus 1は、index idと関連する動作点用のjに等しいnuh_layer_idのレイヤ用のCVSにおいて存在する可能性のある一時的サブレイヤの最大数を特定する。vps_max_sub_layers_minus1[ id ] [ j ]の値は0以上6以下の範囲である。
1に等しい'vps_sub_layer_ordering_info_present_flag'[ id ] [ j ]は、vps_max_sub_layers_minus1[ id ][ j ] + 1サブレイヤ用のindex idと関連する動作点用のjに等しいnuh_layer_idのレイヤ用にvps_max_dec_pic_buffering_minus1[ id ][ j ][ k ]、vps_max_num_reorder_pics[ id ][ j ][ k ]、およびvps_max_latency_increase_plus1[ id ][ j ][ k ]が存在することを特定する。
0に等しいvps_sub_layer_ordering_info_present_flag[ id ][ j ]は、vps_max_dec_pic_buffering_minus1[ id ][ j ][ vps_max_sub_layers_minus1[ id ][ j ] ]、vps_max_num_reorder_pics[ id ][ j ][ vps_max_sub_layers_minus1[ id ][ j ] ]、およびvps_max_latency_increase_plus1[ id ][ j ][ vps_max_sub_layers_minus1[ id ][ j ] ]の値が、index idと関連する動作点用のjに等しいnuh_layer_idのレイヤ用の全てのサブレイヤに適用されることを特定する。
'vps_max_dec_pic_buffering_minus1'[ id ][ j ][ k ] plus 1は、HighestTidがkに等しい場合、画像保存バッファのユニットにおけるindex idと関連する動作点用のjに等しいnuh_layer_idのレイヤ用のCVS用の上記復号化画像バッファの最大必要サイズを特定する。vps_max_dec_pic_buffering_minus1[ id ][ j ][ k ]の値は0以上(サブクローズA.4に特定されるように)MaxDpbSize - 1以下の範囲である。kが0よりも大きい場合、vps_max_dec_pic_buffering_minus1[ id ][ j ][ k ]はvps_max_dec_pic_buffering_minus1[ id ][ j ][ k - 1 ]以上である。vps_max_dec_pic_buffering_minus1[ id ][ j ][ k ]は、vps_sub_layer_ordering_info_present_flag[ id ][ j ]が0に等しいために0以上vps_max_sub_layers_minus1[ id ][ j ] - 1以下のkにおいて存在しない場合、vps_max_dec_pic_buffering_minus1[ id ][ j ][ vps_max_sub_layers_minus1[ id ][ j ] ]に等しいと推定される。
'vps_max_num_reorder_pics'[ id ][ j ][ k ]は、HighestTidがkに等しい場合、復号化順序においてはindex idと関連する動作点用のjに等しいnuh_layer_idのレイヤ用のCVSにおける画像に先行し出力順序においてはその画像の後になる画像の最大許容数を示す。vps_max_num_reorder_pics[ id ][ j ][ k ]の値は0以上vps_max_dec_pic_buffering_minus1[ id ][ j ][ k ]以下の範囲である。kが0より大きい場合、vps_max_num_reorder_pics[ id ][ j ][ k ]はvps_max_num_reorder_pics[ id ][ j ][ k- 1 ]以上である。vps_max_num_reorder_pics[ id ][ j ][ k ]が、vps_sub_layer_ordering_info_present_flag[ id ][ j ]が0に等しいために0以上vps_max_sub_layers_minus1[ id ][ j ] - 1以下の範囲のkにおいて存在しない場合、vps_max_num_reorder_pics[ id ][ j ][ vps_max_sub_layers_minus1[ id ][ j ] ]に等しいと推定される。
0に等しくない'vps_max_latency_increase_plus1'[ id ] [ j ][ k ]は、HighestTidがkに等しい場合、出力順序においてはindex idと関連する動作点用のjに等しいnuh_layer_idのレイヤ用のCVSにおける画像に先行し復号化順序においてはその画像の後になる画像の最大数を特定するVpsMaxLatencyPictures[ id ][ j ][ k ]の値を計算する為に使用される。
vps_max_latency_increase_plus1[ id ][ j ][ k ]が0に等しくない場合、VpsMaxLatencyPictures[ id ][ j ][ k ]の値は以下のように特定される:
VpsMaxLatencyPictures[ id ][ j ][ k ] = vps_max_num_reorder_pics[ id ][ j ][ k ] + vps_max_latency_increase_plus1[ id ][ j ][ k ] - 1。
vps_max_latency_increase_plus1[ id ][ j ][ k ]が0に等しい場合、対応する制限はない。
vps_max_latency_increase_plus1[ id ][ j ][ k ]は0以上232−2以下の範囲である。vps_max_latency_increase_plus1[ id ][ j ][ k]は、vps_sub_layer_ordering_info_present_flag[ id ][ j ]が0に等しいために0以上vps_max_sub_layers_minus1[ id ][ j ] - 1以下の範囲であるkにおいて存在しない場合、vps_max_latency_increase_plus1[ id ][ j ][ vps_max_sub_layers_minus1[ id ][ j ] ]に等しいと推定される。
図39Bにおいて、上記op_dpb_info_parametersはop_dpb_info_parameters(id,j)に示されるようにさらに変形されてもよい。この場合、VPS拡張のシンタックスは図38Bに示されるようであってもよい。仮想参照復号装置(HRD)がビットストリームおよび復号装置の適合性を確認するために使用される。二種類のビットストリームまたはビットストリームサブセットが映像符号化国際標準のHEVC標準化の共同チーム(JCT−VC)のHRD適合性確認を受ける。タイプIビットストリームと呼ばれる一つ目の種類は、ビットストリームにおけるすべてのアクセスユニット用の、VCLNALユニットおよびFD_NUT(フィラーデータNALユニット)に等しいnal_unit_typeのNALユニットを含むNALユニットストリームである。タイプIIビットストリームと呼ばれる二つ目の種類は、上記VCLNALユニットおよびビットストリームにおけるすべてのアクセスユニット用の上記フィラーデータNALユニットに加え、少なくとも以下を含む:(a)フィラーデータNALユニット以外の他の非VCLNALユニットおよび(b)上記NALユニットストリームからバイトストリームを形成する全てのシンタックス要素:leading_zero_8bits、zero_byte、start_code_prefix_one_3bytes、およびtrailing_zero_8bits。
HRDに必要な、上記非VCLNALユニットの上記シンタックス要素(または当該シンタックス要素のいくつかのためのデフォルトの値)はクローズ7のセマンティックスサブクローズならびにアネックスDおよびEにおいて特定される。
二種類のHRDパラメータセット(NALHRDパラメータおよびVCLHRDパラメータ)が使用される。上記HRDパラメータセットは、SPSシンタックス構造またはVPSシンタックス構造の一部でもよいhrd_parameters( )シンタックス構造を通して信号化される。
ビットストリームの適合性の確認のために多くの試験が必要になる場合がある。確認中のビットストリームを試験用ビットストリームと称す。それぞれの試験において、以下の工程が記載順に適用される:
(1)TargetOpと示される試験用動作点が選択される。TargetOpのレイヤ識別子リストOpLayerIdListは、昇順に一覧化されたnuh_layer_idの値によって構成され、試験用ビットストリームにおいて存在する上記nuh_layer_idの値のサブセットである、TargetOpに関連するビットストリームサブセットにおいて存在する。上記TargetOpのOpTidは、TargetOpに関連するビットストリームサブセットにおいて存在する最高値のTemporalIdに等しい。
(2)TargetDecLayerIdListは、TargetOpのOpLayerIdListに等しく設定され、HighestTidはTargetOpのOpTidに等しく設定され、クローズ10において特定された上記サブビットストリーム抽出工程は上記試験用ビットストリーム、HighestTid、およびTargetDecLayerIdListを入力として実行され、そしてその出力はBitstreamToDecodeに割り当てられる。
(3)TargetOpに適用可能なhrd_parameters( )シンタックス構造およびsub_layer_hrd_parameters( )シンタックス構造が選択される。上記TargetDecLayerIdListが試験用ビットストリームにおいて存在する全てのnuh_layer_idの値を含む場合、上記アクティブなSPSにおける(または本明細書の記載されない外部手段を介して供される)すべてのhrd_parameters( )シンタックス構造が選択される。または、TargetOpに適用されるアクティブなVPSにおける(または本明細書の記載されない外部手段を介して供される)hrd_parameters( )シンタックス構造が選択される。上記選択されたhrd_parameters( )シンタックス構造の範囲内でBitstreamToDecodeがタイプIビットストリームである場合、条件“if( vcl_hrd_parameters_present_flag )”の直後にくるsub_layer_hrd_parameters( HighestTid ) シンタックス構造が選択され、変数NalHrdModeFlagは0に等しく設定される;そうでない場合(BitstreamToDecodeがタイプIIビットストリームの場合)、条件“if( vcl_hrd_parameters_present_flag )”(この場合、変数NalHrdModeFlagは0に等しく設定される)または条件“if( nal_hrd_parameters_present_flag )”(この場合、変数NalHrdModeFlagは1に等しく設定される)の直後にくるsub_layer_hrd_parameters( HighestTid ) シンタックス構造が選択される。BitstreamToDecodeがタイプIIビットストリームでありNalHrdModeFlagが0に等しい場合、(アネックスBに特定される)NALユニットストリームが存在する場合に当該NALユニットストリームからバイトストリームを形成するフィラーデータNALユニットを除く全ての非VCLNALユニットまた全てのシンタックス要素leading_zero_8bits、zero_byte、start_code_prefix_one_3bytes、およびtrailing_zero_8bitsがBitstreamToDecodeから破棄され、残りのビットストリームはBitstreamToDecodeに割り当てられる。
ビットストリームの適合性の確認のために多くの試験が必要になる別の場合がある。確認中のビットストリームを試験用ビットストリームと称す。それぞれの試験において、以下の工程が記載順に適用される:
(1)TargetOpLsと示される試験用出力レイヤセットが選択される。output_layer_set_idx[]によりTargetOpLsにおいて参照される動作点が試験用動作点である。TargetOpLsのレイヤ識別子リストOpLayerIdListは、昇順に一覧化されたnuh_layer_idの値によって構成され、試験用ビットストリームにおいて存在する上記nuh_layer_idの値のサブセットである、TargetOpおよびにTargetOpLsに関連するビットストリームサブセットにおいて存在する。上記TargetOpのOpTidは、TargetOpに関連するビットストリームサブセットにおいて存在する最高値のTemporalIdに等しい。
(2)TargetDecLayerIdListは選択された出力レイヤセットTargetOpLs用の対象復号化レイヤ識別子リストtargetDLayerIdListに等しく設定され、HighestTidはTargetOpのOpTidに等しく設定され、クローズ10において特定された上記サブビットストリーム抽出工程は上記試験用ビットストリーム、HighestTid、およびTargetDecLayerIdListを入力として実行され、そしてその出力はBitstreamToDecodeに割り当てられる。
(3)TargetOpに適用可能なhrd_parameters( )シンタックス構造およびsub_layer_hrd_parameters( )シンタックス構造が選択される。上記TargetDecLayerIdListが試験用ビットストリームにおいて存在する全てのnuh_layer_idの値を含む場合、上記アクティブなSPSにおける(または本明細書の記載されない外部手段を介して供される)全てのhrd_parameters( )シンタックス構造が選択される。又は、TargetOpに適用されるアクティブなVPSにおける(又は本明細書の記載されない外部手段を介して供される)hrd_parameters( )シンタックス構造が選択される。上記選択されたhrd_parameters( )シンタックス構造の範囲内でBitstreamToDecodeがタイプIビットストリームである場合、条件“if( vcl_hrd_parameters_present_flag )”の直後にくるsub_layer_hrd_parameters( HighestTid ) シンタックス構造が選択され、変数NalHrdModeFlagは0に等しく設定される;そうでない場合(BitstreamToDecodeがタイプIIビットストリームの場合)、条件“if( vcl_hrd_parameters_present_flag )”(この場合、変数NalHrdModeFlagは0に等しく設定される)または条件“if( nal_hrd_parameters_present_flag )”(この場合、変数NalHrdModeFlagは1に等しく設定される)の直後にくるsub_layer_hrd_parameters( HighestTid ) シンタックス構造が選択される。BitstreamToDecodeがタイプIIビットストリームでありNalHrdModeFlagが0に等しい場合、(アネックスBに特定される)NALユニットストリームが存在する場合に当該NALユニットストリームからバイトストリームを形成するフィラーデータNALユニットを除く全ての非VCLNALユニットまた全てのシンタックス要素leading_zero_8bits、zero_byte、start_code_prefix_one_3bytes、およびtrailing_zero_8bitsがBitstreamToDecodeから破棄され、残りのビットストリームはBitstreamToDecodeに割り当てられる。
適合復号装置はこの項目に規定されるすべての要件を満たしていてもよい。
(1)特定のプロファイル、階層、レベルへの適合性を要求する復号装置は、アネックス Aに規定されるような方法で、サブクローズC.4に規定されるビットストリーム適合性要件に適合するすべてのビットストリームを首尾よく復号化することができるものとする。ただし、VCL NALユニットにおいて参照されるすべてのVPS、SPS、および、PPS、そして、適切なバッファリング期間および画像タイミングSEIメッセージがビットストリームにおいて(非VCL NALユニットによって)または本明細書に規定されていない外部手段によってタイムリーに復号装置へ伝達される。
(2)ビットストリームが、予約済と規定された値を有するシンタックス要素を含む場合で、復号装置がシンタックス要素または予約済の値を有するシンタックス要素を含むNALユニットを無視するものとすると規定される場合、そうでなければ、ビットストリームが本明細書に適合する場合、適合復号装置は、適合ビットストリームを復号化するのと同じ方法で当該ビットストリームを復号化するものとし、シンタックス要素または規定されたように予約済の値を有するシンタックス要素を含むNALユニットを無視するものとする。
出力タイミングの適合性と出力順の適合性との2種類の復号装置の適合性がある。
復号装置の適合性をチェックするには、サブクローズC.4に規定されるような要求されるプロファイル、階層、レベルに適合する試験ビットストリームが、仮想ストリームスケジューラ(hypothetical stream scheduler)(HSS)によって、HRDと試験用復号装置(DUT)との両方へ配信される。HRDによって出力されるすべてのクロップされた復号化画像もDUTによって出力されるものとする。DUTによって出力される、クロップされた復号化画像それぞれはPicOutputFlagが1に等しい画像であるものとし、そのようなDUTによって出力される、クロップされた復号化画像それぞれに対して、出力されるすべてのサンプルの値が、規定された復号化処理によって作製されるサンプルの値と等しいものとする。
出力タイミングに関する復号装置の適合性については、HSSは、規定されたプロファイル、階層、レベル用のアネックスAに規定されたようにビットレートおよびCPBのサイズが制限されたSchedSelIdxの値のサブセットからのみ選択されるデリバリースケジュールに従って動作するか、または、アネックスAに規定されたようにビットレートおよCPBのサイズが制限された以下に規定されるような「補間」デリバリースケジュールに従って動作する。HRDとDUTの両方に対して同じデリバリースケジュールが用いられる。
HRDパラメータおよびバッファリング期間SEIメッセージが0よりも大きいcpb_cnt_minus1[ HighestTid ]とともに存在する場合、ピークビットレートr、CPBサイズc(r)、および、最初のCPB削除遅延
を有すると規定された「補間」デリバリースケジュールを用いて動作するHSSから配信されるようなビットストリームを復号化装置は、次のように復号化することができる。
0より大きいどのSchedSelIdxおよびrについても、BitRate[ SchedSelIdx - 1 ] <= r <= BitRate[ SchedSelIdx ]であり、rおよびc(r)が規定されたプロファイル、階層、レベル用の最大ビットレートおよびバッファサイズについてアネックスAに規定されたような制限の範囲内である。InitCpbRemovalDelay[ SchedSelIdx ] はバッファリング期間毎に異なっていてもよく、再計算されるべきでる。
出力タイミングに関する復号装置の適合性については、上述したようなHRDが用いられ、画像出力の(最初のビットの配信時間に関する)タイミングがHRDおよびDUTの両方に対して一定の遅延まで同じである。
出力順に関する復号装置の適合性については、以下が適用される。
(1)DUTからの「請求により」、HSSはビットストリームBitstreamToDecodeをDUTへ配信する。これは、DUTが処理を進めるためによりビットを必要とするときのみ、HSSはビットを(復号化順に)配信することを意味する。また、これは、この試験について、DUTの符号化画像バッファが、一番大きい復号化ユニットのサイズくらい小さいことを意味する。
(2)以下に記載される変形HRDを用いる。アネックスAにおいて規定されたようにビットレートとCPBサイズが制限されたようなビットストリームBitstreamToDecodeにおいて規定されたスケジュールのうちひとつによって、HSSはビットストリームをHRDへ配信する。画像出力の順序はHRDおよびDUTの両方において同じであるものとする。
(3)HRD CPBサイズは、サブクローズE.2.3に規定されるようにCpbSize[ SchedSelIdx ]によって与えられる。ここで、SchedSelIdxおよびHRDパラメータはサブクローズC.1に規定されるように選択される。DPBサイズは、(現在の復号化画像に対するnuh_layer_idが0に等しい場合)アクティブSPSから、もしくは、現在の復号化画像のnuh_layer_id の値に対するアクティブなSPSからsps_max_dec_pic_buffering_minus1[ HighestTid ] + 1によって与えられる。動作点DPB情報パラメータop_dpb_info_parameters()が選択された出力レイヤセットに対して存在する場合、DPBサイズはcurrLayerIdが0に等しい場合にvps_max_dec_pic_buffering_minus1[ HighestTid ]によって与えられるか、またはcurrLayerIdが0より大きい時に試験用動作点のためのcurrLayerId用のvps_max_dec_pic_buffering_minus1[ CurrLayerId ][ HighestTid ]に設定される場合がある。ここで、currLayerIdは現在の復号化画像のnuh_layer_idである。動作点DPB情報パラメータop_dpb_info_parameters ()が試験用動作点に対して存在しない場合、DPBサイズは、(現在の復号化画像に対するnuh_layer_idが0に等しい場合)アクティブなSPSから、または、現在の復号化画像のnuh_layer_id の値に対してアクティブなレイヤSPSからsps_max_dec_pic_buffering_minus1[ HighestTid ] + 1によって与えられる。
出力レイヤセットDPB情報パラメータoop_dpb_info_parameters()が選択された出力レイヤセットに対して存在する場合、DPBサイズはcurrLayerIdが0に等しい場合にvps_max_dec_pic_buffering_minus1[ HighestTid ]によって与えられるか、または上記選択された出力レイヤセット用のcurrLayerId用のvps_max_dec_pic_buffering_minus1[ CurrLayerId ][ HighestTid ]に設定される場合がある。ここで、currLayerIdは現在の復号化画像のnuh_layer_idである。出力レイヤセットDPB情報パラメータoop_dpb_info_parameters ()が選択された出力レイヤセットに対して存在しない場合、DPBサイズは、(現在の復号化画像に対するnuh_layer_idが0に等しい場合)アクティブなSPSから、または、現在の復号化画像のnuh_layer_id の値に対してアクティブなレイヤSPSからsps_max_dec_pic_buffering_minus1[ HighestTid ] + 1によって与えられる。
HRDに対するCPBからの削除時間は、最終ビット到着時間であり、復号化が差し迫っている。このHRDのDPBの動作はサブクローズC.5.2からC.5.2.3.に記載されている。
復号化画像バッファは画像保存バッファを含む。0に等しいnuh_layer_idに対する画像保存バッファの数はアクティブなSPSから得られる。各0でないnuh_layer_id値に対する画像保存バッファの数は、その0でないnuh_layer_id値に対するアクティブなレイヤSPSから得られる。画像保存バッファはそれぞれ、「参照用に使用」とマーキングされた復号化画像を含むか、今後の出力の為に保持される。サブクローズF.13.5.2.2に規定されるようなDPBからの画像の出力および削除の処理が起動され、続いて、サブクローズF.13.5.2.3に規定されるような画像復号化、マーキング、追加バンピング、そして保存の処理が起動される。「バンピング」処理はサブクローズF.13.5.2.4に規定されており、サブクローズF.13.5.2.2およびF.13.5.2.3に規定されるように起動される。
現在の画像の復号化の前の(しかし、現在の画像の第1のスライスのスライスヘッダーを解析した後の)DPBからの画像の出力および削除は、現在の画像を含むアクセスユニットの第1の復号化ユニットがCPBから削除され次のように進んだときに、瞬時に起こる。
サブクローズ8.3.2に規定されるようなRPSに対する復号化処理が起動される。
(1)現在の画像が、NoRaslOutputFlagが1に等しくnuh_layer_idが0に等しいIRAP画像であって、画像0ではないIRAP画像である場合、以下の順序の工程が適用される。
(A)変数NoOutputOfPriorPicsFlagが、以下の様に、試験用復号装置に対して得られる。
(i)現在の画像がCRA画像である場合、(no_output_of_prior_pics_flagの値とは関係なく)NoOutputOfPriorPicsFlagを1に等しくなるように設定する。
(ii)そうでない場合は、アクティブなSPSから得られるpic_width_in_luma_samples、pic_height_in_luma_samples、またはsps_max_dec_pic_buffering_minus1[ HighestTid ]の値が、先行する画像に対してアクティブなSPSから得られるpic_width_in_luma_samples、pic_height_in_luma_samples、またはsps_max_dec_pic_buffering_minus1[ HighestTid ]のそれぞれの値と異なる場合、no_output_of_prior_pics_flagの値に関係なく、NoOutputOfPriorPicsFlagは試験用復号装置によって1に設定されてもよい(しかしながら、必ずしも設定されなくてもよい)。これらの条件のもとではNoOutputOfPriorPicsFlagをno_output_of_prior_pics_flagに等しくなるように設定することが好ましいが、この場合、試験用復号装置はNoOutputOfPriorPicsFlagを1に設定することができる。
(iii)そうでない場合は、NoOutputOfPriorPicsFlagはno_output_of_prior_pics_flagに等しくなるよう設定される。
(B)試験用復号装置に対して得られたNoOutputOfPriorPicsFlagの値は、以下の様に、HRDに対して適用される。
(i)NoOutputOfPriorPicsFlagが1に等しい場合、DPBにおける全ての画像保存バッファは、それらが含んでいる画像の出力はされず、空にされ、そしてDPBフルネスが0に設定される。
(ii)そうでない場合(NoOutputOfPriorPicsFlagが0に等しい場合)、「出力不要」および「参照に不使用」とマーキングされた画像を含むすべての画像保存バッファが(出力は行わずに)空にされ、そして、サブクローズF.13.5.2.4に規定される「バンピング」処理を繰り返し起動することによってDPBにおけるすべての非空の画像保存バッファが空にされ、そしてDPBフルネスが0に設定される。
(iii)そうでない場合(現在の画像が、NoRaslOutputFlagが1でありnuh_layer_idが0であるIRAP画像でない場合)、「出力不要」および「参照に不使用」とマーキングされた、画像を含むすべての画像保存バッファが(出力を行わずに)空にされる。空にされた各画像保存バッファについて、DPBフルネスが1だけ減少する。変数currLayerIdは現在の復号化画像のnuh_layer_idに等しくなるように設定される。
変数MaxNumReorderPics[ TargetOp ][ currLayerId ][ HighestTid ]、MaxLatencyIncreasePlus1[ TargetOp ][ currLayerId ][ HighestTid ]、MaxLatencyPictures[ TargetOp][ currLayerId ][ HighestTid ]、MaxDecPicBufferingMinus1[ TargetOp ] [ currLayerId ][ HighestTid ]は現在の試験用動作点(operation point under test)に基づいて以下のように導き出される。
(1)動作点DPB情報パラメータop_dpb_info_parameters()が試験用動作点TargetOpに対して存在するならば、MaxNumReorderPics[ TargetOp ] [ currLayerId ][HighestTid ]は、currLayerIdが0の場合にvps_max_num_reorder_pics[ HighestTid ]に設定され、currLayerIdが0より大きい場合に上記試験用動作点用のcurrLayerIdに対するvps_max_num_reorder_pics[ TargetOp ][ CurrLayerId ][ HighestTid ]に設定される。上記の場合でなく、動作点DPB情報パラメータop_dpb_info_parameters()が上記試験用動作点に対して存在しないならば、MaxNumReorderPics[ TargetOp ] [ currLayerId ][HighestTid ]は、アクティブSPSに由来する(currLayerIdが0の場合)、あるいはcurrLayerId 値に対するアクティブレイヤ SPSに由来する、sps_max_num_reorder_pics[ HighestTid ]に設定される。
(2)動作点DPB情報パラメータop_dpb_info_parameters()が試験用動作点TargetOpに対して存在するならば、MaxLatencyIncreasePlus1[ TargetOp ][ currLayerId ][ HighestTid ]は、currLayerIdが0の場合にvps_max_latency_increase_plus1[ HighestTid ]に設定され、currLayerIdが0より大きい場合に上記試験用動作点用のcurrLayerIdに対するvps_max_latency_increase_plus1[ TargetOp ][ CurrLayerId ][ HighestTid ]に設定される。動作点DPB情報パラメータop_dpb_info_parameters()が上記試験用動作点に対して存在するならば、MaxLatencyPictures[ TargetOp ][ currLayerId ][ HighestTid ]は、currLayerIdが0の場合にVpsMaxLatencyPictures[ HighestTid ]に設定され、currLayerIdが0より大きい場合に上記試験用動作点用のcurrLayerIdに対するVpsMaxLatencyPictures[ TargetOp ][ CurrLayerId ][ HighestTid ]に設定される。上記の場合でなく、動作点DPB情報パラメータop_dpb_info_parameters()が上記試験用動作点に対して存在しないならば、MaxLatencyIncreasePlus1[ TargetOp ][ currLayerId ][ HighestTid ]は、アクティブSPSのsps_max_latency_increase_plus1[ HighestTid ]に設定されるか(currLayerIdが0の場合)、あるいはcurrLayerId 値に対するアクティブレイヤSPSのsps_max_latency_increase_plus1[ HighestTid ]に設定され、MaxLatencyPictures[ TargetOp ] [ currLayerId ][ HighestTid ]は、アクティブSPSに由来する(currLayerIdが0の場合)、あるいはcurrLayerId 値に対するアクティブレイヤSPSに由来する、SpsMaxLatencyPictures[ HighestTid ]に設定される。
(3)動作点DPB情報パラメータop_dpb_info_parameters()が試験用動作点TargetOpに対して存在するならば、MaxDecPicBufferingMinus1[ TargetOp ] [ currLayerId ][HighestTid ]は、currLayerIdが0の場合、vps_max_dec_pic_buffering_minus1[ HighestTid ]に設定され、currLayerIdが0より大きい場合、上記試験用動作点用のcurrLayerIdに対するvps_max_dec_pic_buffering_minus1[ TargetOp ] [ CurrLayerId ][ HighestTid ]に設定される。上記の場合でなく、動作点DPB情報パラメータop_dpb_info_parameters()が上記試験用動作点に対して存在しないならば、MaxDecPicBufferingMinus1[ TargetOp ][ currLayerId ][HighestTid ]は、アクティブSPSに由来する(currLayerIdが0の場合)sps_max_dec_pic_buffering_minus1[ HighestTid ]に設定されるか、currLayerId 値に対するアクティブレイヤSPSに由来するsps_max_dec_pic_buffering_minus1[ HighestTid ]に設定される。
以下の条件の一または複数が真ならば、サブクローズF.13.5.2.4で規定された「バンピング」工程は、空にされた追加画像保存バッファごとに一つずつDPBフルネスをさらに減らしつつ、繰り返し呼び出され、最終的には以下の条件のすべてが真でなくなる。
(1)DPB内の、currLayerIdに等しいnuh_layer_idを有する、「出力要」とマークされた画像の数は、MaxNumReorderPics[ TargetOp ] [CurrLayerId][HighestTid]より大きい。
(2)MaxLatencyIncreasePlus1[ TargetOp ] [CurrLayerId][HighestTid]が0と等しくなく、DPB内には、currLayerIdに等しいnuh_layer_idを有し、「出力要」とマークされた少なくとも一つの画像が存在し、この画像に関連付けられた変数PicLatencyCount[ currLayerId ]は、MaxLatencyPictures[ TargetOp ] [CurrLayerId][HighestTid]以上である。
(3)DPB内の、currLayerIdに等しいnuh_layer_idを有する画像の数は、MaxDecPicBuffering[ TargetOp ] [CurrLayerId][HighestTid]以上である。
このサブクローズに規定されたこれらのプロセスは、現在の画像を含むアクセスユニットnの最後の復号化ユニットがCPBから削除されるとすぐに行われる。
変数currLayerIdは、現在の復号化画像のnuh_layer_idに等しく設定される。
DPB内の、「出力要」とマークされ、currLayerIdに等しいnuh_layer_id値を有する画像ごとに、関連する変数PicLatencyCount[ currLayerId ]がPicLatencyCount[ currLayerId ] + 1に等しく設定される。
現在の画像は、当該画像の最後の復号化ユニットが復号化されてから、復号されたと見なされる。現在の復号化された画像は、DPB内の空の画像保存バッファに保存され、以下の事項が該当する。
(A)現在の復号化画像が1に等しいPicOutputFlagを有しているならば、「出力要」とマークされ、それと関連する変数PicLatencyCount[ currLayerId ]が0に等しく設定される。
(B)そうではないならば(現在の復号化画像が0に等しいPicOutputFlagを有しているならば)、「出力不要」とマークされる。
現在の復号化画像は「短期参照のために使用」とマークされる。
以下の条件の一または複数が真ならば、サブクローズF.13.5.2.4で規定された「バンピング」プロセスは繰り返し呼び出され、最終的には以下の条件のすべてが真でなくなる。
(A)DPB内の、currLayerIdに等しいnuh_layer_idを有し、「出力要」とマークされた画像の数は、MaxNumReorderPics[ TargetOp ] [CurrLayerId][HighestTid]より大きい。
(B)MaxLatencyIncreasePlus1[ TargetOp ] [CurrLayerId][HighestTid]が0と等しくなく、DPB内で、currLayerIdに等しいnuh_layer_idを有する少なくとも一つの画像が存在し、その画像に関連した変数PicLatencyCount[ currLayerId ] は、MaxLatencyPictures[ TargetOp ] [CurrLayerId][HighestTid]以上である。
他の場合では、変数MaxNumReorderPics[ currLayerId ][ HighestTid ]、MaxLatencyIncreasePlus1[ currLayerId ][ HighestTid ]、MaxLatencyPictures[ currLayerId ][ HighestTid ]、MaxDecPicBufferingMinus1[ currLayerId ][ HighestTid ]は以下のように導き出してもよい。
(1)動作点DPB情報パラメータop_dpb_info_parameters()が試験用動作点に対して存在するならば、MaxNumReorderPics[ currLayerId ][HighestTid ]は、currLayerIdが0のときにはvps_max_num_reorder_pics[ HighestTid ]に設定されるか、あるいはcurrLayerIdが0より大きいときには、上記試験用動作点用のcurrLayerIdに対するvps_max_num_reorder_pics[ CurrLayerId ][ HighestTid ]に設定される。上記の場合でなく、動作点DPBパラメータop_dpb_info_parameters()が試験用動作点に存在しないならば、MaxNumReorderPics[ currLayerId ][ HighestTid ]は、アクティブSPSに由来する(currLayerIdが0の場合)sps_max_num_reorder_pics[ HighestTid ]、あるいはcurrLayerId 値に対するアクティブレイヤSPSに由来するsps_max_num_reorder_pics[ HighestTid ]に設定される。
(2)動作点DPB情報パラメータop_dpb_info_parameters()が試験用動作点に対して存在するならば、MaxLatencyIncreasePlus1[ currLayerId ][ HighestTid ]は、currLayerIdが0のときにはvps_max_latency_increase_plus1[ HighestTid ] に設定されるか、あるいはcurrLayerIdが0より大きいときには、上記試験用動作点用のcurrLayerIdに対するvps_max_latency_increase_plus1[ CurrLayerId ][ HighestTid ]に設定される。動作点DPB情報パラメータop_dpb_info_parameters()が試験用動作点に対して存在するならば、 MaxLatencyPictures[ currLayerId ][ HighestTid ] は、currLayerIdが0のときにはVpsMaxLatencyPictures [ HighestTid ] に設定され、あるいはcurrLayerIdが0より大きいときには、上記試験用動作点用のcurrLayerIdに対するVpsMaxLatencyPictures [ CurrLayerId ][ HighestTid ]に設定される。上記の場合でなく、動作点DPB情報パラメータop_dpb_info_parameters() が試験用動作点に対して存在しないならば、MaxLatencyIncreasePlus1[ currLayerId ][ HighestTid ]は、アクティブSPS(currLayerIdが0である場合)のsps_max_latency_increase_plus1[ HighestTid ] に設定されるか、あるいはthe active layer SPS for the value of currLayerIdのsps_max_latency_increase_plus1[ HighestTid ]に設定され、MaxLatencyPictures[ currLayerId ][ HighestTid ] は、アクティブSPS(currLayerIdが0である場合)に由来するSpsMaxLatencyPictures [ HighestTid ] あるいはthe active layer SPS for the value of currLayerIdに由来するSpsMaxLatencyPictures [ HighestTid ]に設定される。
(3)動作点DPB情報パラメータop_dpb_info_parameters()が選択された試験用動作点に対して存在するならば、MaxDecPicBufferingMinus1[ currLayerId ][HighestTid ] は、currLayerIdが0のときには、vps_max_dec_pic_buffering_minus1[ HighestTid ]に設定され、あるいはcurrLayerIdが0より大きいときには、上記試験用動作点用のcurrLayerIdに対するvps_max_dec_pic_buffering_minus1[ CurrLayerId ][ HighestTid ]に設定される。上記の場合でなく、動作点DPB情報パラメータop_dpb_info_parameters() が試験用動作点に対して存在しないならば、 MaxDecPicBufferingMinus1[ currLayerId ][HighestTid ] は、アクティブSPS(currLayerIdが0である場合)に由来するsps_max_dec_pic_buffering_minus1[ HighestTid ] に設定されるか、あるいはcurrLayerId 値に対するアクティブレイヤSPSに由来するsps_max_dec_pic_buffering_minus1[ HighestTid ]に設定される。
以下の条件の一または複数が真ならば、サブクローズF.13.5.2.4で規定された「バンピング」工程は、空にされた追加画像保存バッファごとに一つずつDPBフルネスをさらに減らしつつ、繰り返し呼び出され、最終的には以下の条件のすべてが真でなくなる。
(1)DPB内の、currLayerIdに等しいnuh_layer_idを有する、「出力要」とマークされた画像の数は、MaxNumReorderPics[CurrLayerId][HighestTid]より大きい。
(2)MaxLatencyIncreasePlus1[CurrLayerId][HighestTid]が0と等しくなく、DPB内には、currLayerIdに等しいnuh_layer_idを有し、「出力要」とマークされた少なくとも一つの画像が存在し、この画像に関連付けられた変数PicLatencyCount[ currLayerId ] はMaxLatencyPictures[CurrLayerId][HighestTid]以上である。
(3)DPB内の、currLayerIdに等しいnuh_layer_idを有する画像の数は、MaxDecPicBuffering[CurrLayerId][HighestTid]以上である。
このサブクローズに規定されたこれらのプロセスは、現在の画像を含むアクセスユニットnの最後の復号化ユニットがCPBから削除されるとすぐに行われる。
変数currLayerIdは、現在の復号化画像のnuh_layer_idに等しく設定される。
DPB内の、「出力要」とマークされ、currLayerIdに等しいnuh_layer_id値を有する画像ごとに、関連する変数PicLatencyCount[ currLayerId ] がPicLatencyCount[ currLayerId ] + 1に等しく設定される。
現在の画像は、当該画像の最後の復号化ユニットが復号化されてから、復号されたと見なされる。現在の復号化された画像は、DPB内の空の画像保存バッファに保存され、以下の事項が該当する。
(A)現在の復号化画像が1に等しいPicOutputFlagを有しているならば、「出力要」とマークされ、それと関連する変数PicLatencyCount[ currLayerId ]が0に等しく設定される。
(B)そうではないならば(現在の復号化画像が0に等しいPicOutputFlagを有しているならば)、「出力不要」とマークされる。
現在の復号化画像は「短期参照のために使用」とマークされる。
以下の条件の一または複数が真ならば、サブクローズF.13.5.2.4で規定された「バンピング」工程は繰り返し呼び出され、最終的には以下の条件のすべてが真でなくなる。
(A)DPB内の、currLayerIdに等しいnuh_layer_idを有し、「出力要」とマークされた画像の数は、MaxNumReorderPics[CurrLayerId][HighestTid]より大きい。
(B)MaxLatencyIncreasePlus1[CurrLayerId][HighestTid]が0と等しくなく、DPB内に、currLayerIdに等しいnuh_layer_idを有する少なくとも一つの画像が存在し、その画像に関連した変数PicLatencyCount[ currLayerId ] は、MaxLatencyPictures[CurrLayerId][HighestTid]以上である。
「バンピング」工程は、以下の順序のステップからなる。
(A)最初に出力するべき画像は、DPB内にある「出力要」とマークされたすべての画像の中でPicOrderCntValの値がもっとも小さいものとして選ばれる。
(B)これらの画像は、0に等しいnuh_layer_idを有する画像用のアクティブSPSまたは当該画像のnuh_layer_idに等しいnuh_layer_id値用のアクティブレイヤSPSで規定されたコンフォーマンスクロッピングウィンドウを用いてクロップされ、クロップされた画像はnuh_layer_idの昇順に出力され、当該画像は「出力不要」とマークされる。
(C)「参照に不使用」とマークされた画像を有し、画像のうち、クロップされ、出力された一つを含んでいた画像保存バッファそれぞれが空になる。
VPS拡張は、必要なら追加の変更をしてもよい。
図40を参照すると、追加の変更として、DPBパラメータが、動作点用ではなく出力レイヤセット用のVPS拡張に送られてもよく、当該VPS拡張でのoops_dpb_info_parameters(j)を図41に示す。
num_dpb_info_parametersは、VPS拡張RBSPに存在するoop_dpb_parameters( )シンタックス構造の数を規定する。num_dpb_info_parameters復号装置は、0以上num_output_layer_sets以下の範囲内で存在するものとする。
output_point_layer_set_idx[ i ] は、VPS拡張内のi th oop_dpb_info_parameters( )シンタックス構造が適用される対象出力レイヤセットのリストに、上記インデックスを特定する(specifies the index, into the list of target output layer sets)。
output_point_layer_set_idx[ i ] の値は、0以上num_output_layer_sets以下の範囲内にあるものとする。iと等しくないいかなるjについても、output_point_layer_set_idx [ i ]がoutput_point_layer_set_idx [ j ]と等しくないものとするというのがビットストリームコンフォーマンスの要件である。
図42を参照すると、the oop_dpb_info_paremters(c)をさらに変更して、VPS拡張におけるシンタックスを図43に示すようにしてもよい。
図44を参照すると、the oop_dpb_info_paremters(c)をさらに変更して、VPS拡張におけるシンタックスを図45と図46に示すようにしてもよい。
VPS拡張におけるシンタックスの代替手段の一例として、
を以下のように変えてもよい。
vps_max_layer_idは、CVS内のすべてのNALユニットのnuh_layer_idの最大許可値を特定する。vps_max_layers_minus1はCVS内に存在するレイヤの最大数を特定するものであり、レイヤは、例えば、空間スケーラブルレイヤ(spatial scalable layer)、品質スケーラブルレイヤ(quality scalable layer)、texture view、またはdepth viewであってもよい。
VPS拡張におけるシンタックスの代替手段の他の一例として、
を以下のように変えてもよい。
選択された出力レイヤセットインデックスoplsIdxに対するnumOutputLayersは以下のように導き出される。
VPS拡張におけるシンタックスの代替手段の他の一例として、
を以下のように変えてもよい。
選択されたoplsIdxに対するnumOutputLayersは以下のように導き出される。
そして、選択されたoplsIdxに対する対象復号化レイヤ識別子リストtargetDLayerIdListおよびnumDecodedLayersは、以下のように導き出される。
一実施形態では、以下のように、付加フラグを信号化して、oop_dpb_information_parametersが特定のレイヤに対して信号化されたか示してもよい。
vps_layer_info_present_flag[j]が1の場合、特定の出力レイヤセットに対してj番目のレイヤにoop_dpb_info_parametersが存在することを規定する。vps_layer_info_present_flag[j]が0の場合、特定の出力レイヤセットに対してj番目のレイヤにoop_dpb_info_parametersが存在しないことを規定する。
他の実施形態では、num_dpb_info_parameters復号装置は0以上1024以下の範囲であるものとする。さらに他の実施形態では、1024の代わりに異なる一定の数値を用いることができる。
代わりとなる実施形態では、output_point_layer_set_idx[ i ]は、0以上1023以下の範囲にある。
図47を参照すると、出力レイヤセットと動作点と独立して、各レイヤごとにVPS拡張でDPBパラメータが送られるとき、他の修正VPS拡張とlayer_dpb_info(i)を用いてもよい。
図48を参照すると、修正されたlayer_dpb_info(i)を用いてもよく、VPSから信号化されたシンタックス要素vps_max_sub_layer_minus1がすべてのレイヤに用いられ、oop_dpb_info_parameters(id) / op_dpb_info_parameters( id)において別々に信号化されない。
図49Aと49Bを参照し、修正されたvps_extensionの一例を示す。修正されたvps拡張は、新しいシンタックス、すなわち、max_sub_layers_vps_predict_flag[i]、 max_sub_layers_vps_minus1[i] num_dpb_info_parameters、output_point_layer_set_idx[i]、oop_dpb_maxbuffering_parameters(i)、およびlayer_dpb_info_parameters(i)を含む。num_output_layer_setsは、出力レイヤがoutput_layer_set_index[ i ]およびoutput_layer_flag[ lsIdx ][ j ]と特定されるレイヤセットの数を規定する。存在しないときは、num_output_layer_setsの値は0だと推定される。複数の出力レイヤを記述するレイヤセットは、出力レイヤセットである。
'max_sub_layers_vps_predict_flag'[ i ]が1のときは、max_sub_layers_vps_minus1[ i ]はmax_sub_layers_vps_minus1[ i - 1 ]に等しいと推定されると規定する。
max_sub_layers_vps_predict_flag[ i ]が0のときは、max_sub_layers_vps_minus1[ i ]は明示的に信号化される。max_sub_layers_vps_predict_flag[ 0 ]の値は0だと推定される。
'max_sub_layers_vps_minus1'[ i ] plus 1は、iに等しいnuh_layer_idを有するレイヤに対してCVS内にあるかもしれない一時的サブレイヤの最大数を規定する。max_vps_sub_layers_vps_minus1[ i ]の値は、0以上6以下の範囲であるものとする。いくつかの場合では、max_sub_layers_vps_minus1[i]は、SPSシンタックス要素sps_max_sub_layers_minus1の推定に用いられる。max_sub_layers_vps_predict_flag[ i ]が1のときは、max_sub_layers_vps_minus1[ i ]はmax_sub_layers_vps_minus1[ i - 1 ]に等しいと推定される。max_sub_layers_vps_minus1[ 0 ]の値は、vps_max_sub_layers_minus1に等しいと推定される。
0以上num_dpb_info_parameters- 1以下の範囲にあるsetID用の変数MaxSubLayers[ setId ]は、以下のように導き出される。
'num_dpb_info_parameters'は、VPS拡張RBSPに存在するoop_dpb_maxbuffering_parameters( i )シンタックス構造の数を規定する。num_dpb_info_parameters復号装置は、0以上numOutputLayerSets以下の範囲にあるものとする。
'output_point_layer_set_idx'[ i ]は、VPS拡張内のi th oop_dpb_maxbuffering_parameters( i )シンタックス構造が適用される出力レイヤセットのリストに、上記インデックスを特定する。
output_point_layer_set_idx[ i ]の値は、0以上numOutputLayerSets以下の範囲にあるものとする。ビットストリームコンフォーマンスは、以下のように要請している。
iに等しくないいかなるjに対しても、output_point_layer_set_idx [ i ]はoutput_point_layer_set_idx [ j ]と等しくないものとする。
図50を参照すると、oop_dpb_maxbuffering_parametersは、'sub_layer_vps_buf_info_present_flag'[ i ]、 'max_vps_dec_pic_buffering_minus1'[ i ][ j ]を規定する。
'sub_layer_vps_buf_info_present_flag'[ i ]が1だと、max_vps_dec_pic_buffering_minus1[ i ][ j ]がMaxSubLayers[ i ] sub-layersに対して存在すると規定する。sub_layer_vps_buf_info_present_flag[ i ]が0だと、max_vps_dec_pic_buffering_minus1[ i ][ MaxSubLayers[ i ] - 1 ]の値はすべてのサブレイヤに当てはまると規定する。
'max_vps_dec_pic_buffering_minus1'[ i ][ j ] plus 1は、HighestTidがjに等しいとき、画像保存バッファのユニットでインデックスiと関連した出力レイヤセット内のhighestLayerIdに等しいnuh_layer_idを有するレイヤ用のCVSに対する復号化画像バッファの最大必要サイズを規定する。max_vps_dec_pic_buffering_minus1[ i ][ j ]の値は、0以上MaxDpbSize - 1 (サブクローズA.4で規定したように)以下の範囲であるものとする。jが0より大きい場合、max_vps_dec_pic_buffering_minus1[ i ][ j ]はmax_vps_dec_pic_buffering_minus1[ i ][ j - 1 ]より大きいか等しくあるものとする。いくつかの場合では、max_vps_dec_pic_buffering_minus1[ i ][ j ]は、SPSシンタックス要素sps_max_dec_pic_buffering_minus1[ j ]の値を推定するために用いられる。sub_layer_vps_buf_info_present_flag[ i ]が0に等しいために、0以上MaxSubLayers[ i ] - 2以内のiに対してmax_vps_dec_pic_buffering_minus1[ i ][ j ]が存在しないとき、max_vps_dec_pic_buffering_minus1[ i ][ j ]はmax_vps_dec_pic_buffering_minus1[ i ][ MaxSubLayers[ i ] - 1]に等しいと考えられる。
jの各値に対するmax_vps_dec_pic_buffering_minus1[ 0 ][ j ]の値は、vps_max_dec_pic_buffering_minus1[ j ]に等しいと推定される。
図51を参照すると、layer_dpb_info_parametersは'sub_layer_vps_ordering_info_present_flag'[ i ]、max_vps_num_reorder_pics[ i ][ j ]、'max_vps_latency_increase_plus1'[ i ][ j ]を規定する。
'sub_layer_vps_ordering_info_present_flag'[ i ]は、1に等しいとき、max_vps_num_reorder_pics[ i ][ j ]とmax_vps_latency_increase_plus1[ i ][ j ]とがmax_sub_layers_vps_minus1 + 1のサブレイヤに対して存在すると規定する。
sub_layer_vps_ordering_info_present_flag[ i ]は、0に等しいとき、max_vps_num_reorder_pics[ i ][ vps_max_sub_layers_minus1 ]とmax_vps_latency_increase_plus1[ i ][ max_sub_layers_vps_minus1 ]の値がすべてのサブレイヤに適用されると規定する。
'max_vps_num_reorder_pics'[ i ][ j ]は、nuh_layer_idがiであるレイヤに対するCVSにおいて復号化順で任意の画像に先行し得る画像であって、HighestTidがjに等しいときに出力順でその画像の後に続く画像の最大許容数を示す。max_vps_num_reorder_pics[ i ][ j ]の値は0からmax_vps_dec_pic_buffering_minus1[ i ][ j ]までの範囲にあるものとする。jが0よりも大きい場合、max_vps_num_reorder_pics[ i ][ j ]はmax_vps_num_reorder_pics[ i ][ j- 1 ]よりも大きいか等しいものとする。max_vps_num_reorder_pics[ i ][ j ]はSPSシンタックス要素sps_max_num_reorder_pics[ j ]の値を推測するために用いられることもある。max_vps_num_reorder_pics[ i ][ j ]が、sub_layer_vps_ordering_info_present_flag[ i ]が0に等しいために、0からmax_sub_layers_vps_minus1[ i ] - 1までの範囲にあるiに対して存在しない場合、max_vps_num_reorder_pics[ i ][ max_sub_layers_vps_minus1[ i ] ]に等しいと推測される。
max_vps_latency_increase_plus1[ i ][ j ]は、0に等しくないとき、nuh_layer_idがiであるレイヤに対するCVSにおいて出力順で任意の画像に先行し得る画像であって、HighestTid がjに等しいときに復号化順でその画像の後に続く画像の最大数を規定するVpsMaxLatencyPictures[ i ][ j ]の値を演算するのに用いられる。
max_vps_latency_increase_plus1[ i ][ j ]が0に等しくないとき、VpsMaxLatencyPictures[ i ][ j ]の値は次のように規定される。
VpsMaxLatencyPictures[ i ][ j ] = max_vps_num_reorder_pics[ i ][ j ] + max_vps_latency_increase_plus1[ i ][ j ] - 1
max_vps_latency_increase_plus1[ i ][ j ]が0に等しいとき、対応する制限は表わされない。
max_vps_latency_increase_plus1[ j ][ k ]の値は0から232−2までの範囲にあるものとする。max_vps_latency_increase_plus1[ i ][ j ]はSPSシンタックス要素sps_max_latency_increase_plus1[ j ]の値を推測するために用いられる場合もある。max_vps_latency_increase_plus1[ i ][ j ]が、sub_layer_vps_ordering_info_present_flag[ i ]が0に等しいために、0からmax_sub_layers_vps_minus1[ i ] - 1までの範囲にあるiに対して存在しない場合、max_vps_latency_increase_plus1[ i ][ max_sub_layers_vps_minus1[ i ] ]と等しいと推測される。
図52を参照すると、vps_extensionの変形例が示されている。vps_extensionの変形例は、新しいシンタックス、すなわち、条件付きで信号化されたsub_layer_vps_buf_info_predict_flag[ i ]、sub_layer_vps_ordering_info_predict_flag[ i ]を有する、図49におけるシンタックスの更なる変形例を含む。sub_layer_vps_buf_info_predict_flag[ i ]は、1に等しいとき、max_vps_dec_pic_buffering_minus1[ i ][ j ]がjの各値について、max_vps_dec_pic_buffering_minus1[ i - 1 ][ j ]と等しいと推測されると規定する。
sub_layer_vps_buf_info_predict_flag[ i ]は、0に等しいとき、jの少なくともひとつの値に対するmax_vps_dec_pic_buffering_minus1[ i ][ j ]が明確に信号化されると規定する。sub_layer_vps_buf_info_predict_flag[ 0 ]は0に等しいと推測される。sub_layer_vps_buf_info_predict_flag[ i ]は、存在しないとき、0に等しいと推測される。
sub_layer_vps_ordering_info_predict_flag[ i ]は、1に等しいとき、シンタックス要素sub_layer_vps_ordering_info_present_flag[ i ]、max_vps_num_reorder_pics[ i ][ j ]、およびmax_vps_latency_increase_plus1[ i ][ j ]は、それぞれ、sub_layer_vps_ordering_info_present_flag[ i - 1 ]、max_vps_num_reorder_pics[ i - 1 ][ j ]、および max_vps_latency_increase_plus1[ i 1 ][ j ]に等しいと推測されると規定する。sub_layer_vps_ordering_info_predict_flag[ i ]は、0に等しいとき、シンタックス要素sub_layer_vps_ordering_info_present_flag[ i ]、 max_vps_num_reorder_pics[ i ][ j ]、 およびmax_vps_latency_increase_plus1[ i ][ j ]が明確に信号化されることを示す。sub_layer_vps_ordering_info_predict_flag[ i ]の値は、存在しないとき、0に設定される。
図52における他のシンタックス要素およびそれらの意味論的意味は図49におけるシンタックス要素およびそれらの意味論的意味と同じである。
図53を参照すると、vps_extensionの変形例が示されている。vps extensionの変形例は、図49におけるシンタックスの更なる変形例を含む。出力レイヤセットiにおける最上位レイヤidに対してoop_dpb_maxbuffering_parameters(i)パラメータの1セットを信号化する図49と比べて、図53では、oop_dpb_maxbuffering_parameters(i,j)は、特定の出力レイヤセットiの各レイヤjに対して信号化される。
図54を参照すると、oop_dpb_maxbuffering_parametersはsub_layer_vps_buf_info_present_flag[ i ][ k ]、max_vps_dec_pic_buffering_minus1[ i ][ k ][ j ]を規定する。
sub_layer_vps_buf_info_present_flag[ i ][ k ]は、1に等しいとき、max_vps_dec_pic_buffering_minus1[ i ][ k ][ j ]がmax_sub_layers_vps_minus1[ k ]のサブレイヤに対して存在すると規定する。sub_layer_vps_buf_info_present_flag[ i ]は、0に等しいとき、max_vps_dec_pic_buffering_minus1[ i ][ k ][max_sub_layers_vps_minus1[ k ]]の値がすべてのサブレイヤに適用されると規定する。
max_vps_dec_pic_buffering_minus1[ i ][ k ][ j ] plus 1は、HighestTidがjに等しい場合、画像保存バッファのユニットにおいてインデックスiと関連付けられた出力レイヤセットのnuh_layer_idがkであるレイヤに対するCVS用の復号化画像バッファの最大所要サイズを規定する。max_vps_dec_pic_buffering_minus1[ i ][ k ][ j ]の値は0から(サブクローズA.4に規定されるように)MaxDpbSize - 1までの範囲にあるものとする。
jが0より大きい場合、max_vps_dec_pic_buffering_minus1[ i ][ k ][ j ]はmax_vps_dec_pic_buffering_minus1[ i ][ k ][ j - 1 ] より大きいか等しいものとし、SPSシンタックス要素sps_max_dec_pic_buffering_minus1[ j ]の値を推測するため用いられる。
max_vps_dec_pic_buffering_minus1[ i ][ j ]が、sub_layer_vps_buf_info_present_flag[ i ][ k ]が0に等しいために、0からmax_sub_layers_vps_minus1[ k ] - 1までの範囲にあるiに対して存在しない場合、max_vps_dec_pic_buffering_minus1[ i ][ k ] [ max_sub_layers_vps_minus1[ k ]]に等しいと推測される。
iおよびjの各値に対するmax_vps_dec_pic_buffering_minus1[ i ][ 0 ][ j ]の値はvps_max_dec_pic_buffering_minus1[ j ]と等しいと推測される。
図55を参照すると、oop_dpb_maxbuffering_parametersはsub_layer_vps_buf_info_present_flag[ i ][ k ]、max_vps_dec_pic_buffering_minus1[ i ][ k ][ j ]を規定する。図55は、oop_dpb_maxbuffering_parametersに対する図54のシンタックスと比べると、oop_dpb_maxbuffering_parametersに対する異型シンタックスである。
0からnum_dpb_info_parameters - 1までの範囲にあるsetIdに対する変数MaxSubLayers[ setId ][ k ]は次のように得られる。
この場合、oop_dpb_maxbuffering_parametersパラメータ(i,k)は図55の様に定義される。
図56を参照すると、vps_extensionの変形例が示されている。vps extensionの変形例は、新しいシンタックスを有する、図52におけるシンタックスの更なる変形例を含む。出力レイヤセットiにおける最上位レイヤidに対してoop_dpb_maxbuffering_parameters(i)パラメータの1セットを信号化する図52と比べて、図53では、この異型oop_dpb_maxbuffering_parameters(i,j)は、特定の出力レイヤセットiの各レイヤjに対して信号化される。
oop_dpb_maxbuffring_parameters(I,k)は図57に示されるとおりである。
図58を参照すると、oop_dpb_maxbuffering_parametersはsub_layer_vps_buf_info_present_flag[ i ][ k ]、max_vps_dec_pic_buffering_minus1[ i ][ k ][ j ]を規定する。図57のoop_dpb_maxbuffering_parametersに対するシンタックスと比べると、図58はoop_dpb_maxbuffering_parametersに対する異型シンタックスである。
0からnum_dpb_info_parameters - 1までの範囲にあるsetIdに対する変数MaxSubLayers[ setId ][ k ]は次のように得られる。
この場合、oop_dpb_maxbuffering_parametersパラメータ(i,k)は図58の様に定義される。
図59を参照すると、vps_extensionの変形例が示されている。vps extensionの変形例は、新しいシンタックス、すなわち、条件付きで信号化された追加フラグlayer_dpb_info_parameters_presence_flagを有する、図56におけるシンタックスの更なる変形例を含む。layer_dpb_info_parameters_presence_flagは、VPS拡張におけるlayer_dpb_info_parameters(i)の信号化を任意のものにする。
layer_dpb_info_parameters_presence_flag[ i ]は、1に等しいとき、シンタックス要素sub_layer_vps_ordering_info_predict_flag[ i ]およびlayer_dpb_info_parameters(i)がvps_max_num_layers_minus1レイヤに対して存在すると規定する。layer_dpb_info_parameters_presence_flag[ i ]は、0に等しいとき、シンタックス要素sub_layer_vps_ordering_info_predict_flag[ i ]およびlayer_dpb_info_parameters(i)がvps_max_num_layers_minus1レイヤに対して存在しないと規定する。
oop_dpb_maxbuffring_parameters(i,k)は図60に示されるとおりである。
図61を参照すると、oop_dpb_maxbuffering_parametersはsub_layer_vps_buf_info_present_flag[ i ][ k ]、 max_vps_dec_pic_buffering_minus1[ i ][ k ][ j ]を規定する。図60のoop_dpb_maxbuffering_parametersに対するシンタックスと比べると、図61はoop_dpb_maxbuffering_parametersに対するシンタックスの変形例である。
0からnum_dpb_info_parameters - 1までの範囲にあるsetIdに対する変数MaxSubLayers[ setId ][ k ]は次のように得られる。
この場合、oop_dpb_maxbuffering_parametersパラメータ(i,k)は図61の様に定義される。
VPS拡張におけるシンタックスのもうひとつの例として、
が
に変化してもよい。
このようにインデックスkは1の代わりに0で始まってもよい。
VPS拡張におけるシンタックスのもうひとつの例として、
が
に変化してもよい。
vps_max_layer_idはCVSにおけるすべてのNALユニットのnuh_layer_idの最大許容値を規定する。vps_max_layers_minus1はCVSに存在していてもよいレイヤの最大数を規定する。レイヤは、例えば、空間スケーラブルそう、品質スケーラブルレイヤ、a texture view or a depth view.
VPS拡張におけるシンタックスの他のもうひとつの例として、
が
に変化してもよい。
式中、numOutputLayersは次の様に得られる
もしくは、次のように変更してもよい。
ある実施の形態では、追加フラグは、oop_dpb_information_parametersが次のように特定のレイヤに対して信号化されるかどうかを示すように信号化してもよい。
vps_layer_info_present_flag[ k ]は、1に等しいとき、oop_dpb_maxbuffering_parametersが特定の出力レイヤセットのk番目のレイヤに対して存在すると規定する。vps_layer_info_present_flag[ k ]は、0に等しいとき、oop_dpb_maxbuffering_parametersが特定の出力レイヤセットのk番目のレイヤに対して存在しないと規定する。
HRDに必要な非VCL NALユニットのシンタックス要素(もしくは、シンタックス要素のいくつかに対するそれらのデフォルト値)がアネックスDおよびEのサブクローズ7の意味的項目に規定されている。
2種類のHRDパラメータセット(NAL HRDパラメータおよびVCL HRDパラメータ)が用いられる。HRDパラメータセットは、SPSシンタックス構造もしくはVPSシンタックス構造の一部であってもよいhrd_parameters( )シンタックス構造を介して信号化される。
ビットストリームの適合性をチェックするために複数の試験が行われてもよい。なお、当該ビットストリームは試験用ビットストリームと呼ばれる。各試験について、以下の工程が記載された順に適用される。
(1)TargetOpLsと表される試験用出力レイヤセットを選択する。TargetOpLs においてoutput_layer_set_idx[]によって参照される動作点は試験用動作点を特定する。 TargetOpLsの出力レイヤ識別子リストOpLayerIdListは、試験用ビットストリームに存在するnuh_layer_id値のサブセットである、TargetOpおよびTargetOpLsに関連付けられたビットストリームサブセットにおいて値の小さい順で存在するnuh_layer_id値のリストからなる。TargetOpのOpTidは、TargetOpと関連付けられたビットストリームサブセットに存在する最も高いTemporalIdと等しい。
(2)TargetDecLayerIdListを、選択された出力レイヤセットTargetOpLsに対する対象復号化レイヤ識別子リストtargetDLayerIdListに等しくなるように設定する。HighestTidをTargetOpのOpTidに等しくなるように設定し、条項10で規定されたようなサブビットストリーム抽出プロセスを試験用ビットストリーム、HighestTid、およびTargetDecLayerIdListを入力として用い起動し、そして、出力をBitstreamToDecodeに割り当てる。
(3)TargetOpに適用可能なhrd_parameters( )シンタックス構造とsub_layer_hrd_parameters( )シンタックス構造とを選択する。もし、TargetDecLayerIdListが試験用ビットストリームに存在するすべてのnuh_layer_id値を含む場合、アクティブなSPSにおける(または、本明細書に規定されていない外部手段を介して提供される)hrd_parameters( )シンタックス構造が選択される。そうでなければ、TargetOpに適用されるアクティブVPSにおける(または、本明細書に規定されていないある外部手段を介して提供される)hrd_parameters( )シンタックス構造が選択される。選択されたhrd_parameters( )シンタックス構造のうち、もしBitstreamToDecodeがタイプIビットストリームである場合、条件「if( vcl_hrd_parameters_present_flag )」のすぐ後に続くsub_layer_hrd_parameters( HighestTid )シンタックス構造が選択され、変数NalHrdModeFlagが0に等しくなるように設定される。そうでなければ(BitstreamToDecodeがタイプIIビットストリームである場合)、条件「if( vcl_hrd_parameters_present_flag )」(この場合、変数NalHrdModeFlagは0に等しくなるように設定される)または条件「if( nal_hrd_parameters_present_flag )」(この場合、変数NalHrdModeFlagが1に等しくなるように設定される)のいずれかのすぐ後に続くsub_layer_hrd_parameters( HighestTid )シンタックス構造が選択される。BitstreamToDecodeがタイプIIビットストリームである場合で、NalHrdModeFlagが0に等しい場合、フィラーデータNALユニットを除くすべての非VCL NALユニット、および、存在する場合、(アネックスBに規定されるように)NALユニットストリームからバイトストリームを形成するすべてのleading_zero_8bits, zero_byte、start_code_prefix_one_3bytes、trailing_zero_8bitsシンタックス要素がBitstreamToDecodeから廃棄され、残りのビットストリームがBitstreamToDecodeに割り当てられる。
適合復号装置はこの項目に規定されるすべての要件を満たしていてもよい。
(1)特定のプロファイル、階層、レベルへの適合性を要求する復号装置は、アネックスAに規定されるような方法で、サブクローズC.4に規定されるビットストリーム適合性要件に適合するすべてのビットストリームを首尾よく復号化することができるものとする。ただし、VCL NALユニットにおいて参照されるすべてのVPS、SPS、および、PPS、そして、適切なバッファリング期間および画像タイミングSEIメッセージがビットストリームにおいて(非VCL NALユニットによって)または本明細書に規定されていない外部手段によってタイムリーに復号装置へ伝達される。
(2)ビットストリームが、予約済と規定された値を有するシンタックス要素を含む場合で、復号装置がシンタックス要素または予約済の値を有するシンタックス要素を含むNALユニットを無視するものとすると規定される場合、そうでなければ、ビットストリームが本明細書に適合する場合、適合復号装置は、適合ビットストリームを復号化するのと同じ方法で当該ビットストリームを復号化するものとし、シンタックス要素または規定されたように予約済の値を有するシンタックス要素を含むNALユニットを無視するものとする。
出力タイミングの適合性と出力順の適合性との2種類の復号装置の適合性がある。
復号装置の適合性をチェックするため、サブクローズC.4に規定されるような要求されるプロファイル、階層、レベルに適合する試験ビットストリームが、仮想ストリームスケジューラ(hypothetical stream scheduler)(HSS)によって、HRDと試験用復号装置(DUT)との両方へ配信される。HRDによって出力されるすべてのクロップされた復号化画像もDUTによって出力されるものとする。DUTによって出力される、クロップされた復号化画像それぞれはPicOutputFlagが1に等しい画像であるものとし、そのようなDUTによって出力される、クロップされた復号化画像それぞれに対して、出力されるすべてのサンプルの値が、規定された復号化処理によって作製されるサンプルの値と等しいものとする。
出力タイミングに関する復号装置の適合性については、HSSは、規定されたプロファイル、階層、レベル用のアネックスAに規定されたようにビットレートおよびCPBのサイズが制限されたSchedSelIdxの値のサブセットからのみ選択されるデリバリースケジュールに従って動作するか、または、アネックスAに規定されたようにビットレートおよCPBのサイズが制限された以下に規定されるような「補間」デリバリースケジュールに従って動作する。HRDとDUTの両方に対して同じデリバリースケジュールが用いられる。
HRDパラメータおよびバッファリング期間SEIメッセージが0よりも大きいcpb_cnt_minus1[ HighestTid ]とともに存在する場合、ピークビットレートr、CPBサイズc(r)、および、初期のCPB削除遅延
初期のCPB削除遅延
を有すると規定された「補間」デリバリースケジュールを用いて動作するHSSから配信されるようなビットストリームを復号化装置は、次のように復号化することができる。
0より大きいどのSchedSelIdxおよびrについても、BitRate[ SchedSelIdx - 1 ] <= r <= BitRate[ SchedSelIdx ]であり、rおよびc(r)が規定されたプロファイル、階層、レベル用の最大ビットレートおよびバッファサイズについてアネックスAに規定されたような制限の範囲内である該当する。InitCpbRemovalDelay[ SchedSelIdx ] はあるバッファリング期間から他のものへ異なっていてもよく、再計算されるべきである。
出力タイミングに関する復号装置の適合性については、上述したようなHRDが用いられ、画像出力の(最初のビットの配信時間に関する)タイミングがHRDおよびDUTの両方に対して一定の遅延まで同じである。
出力順に関する復号装置の適合性については、以下が適用される。
(1)DUTからの「請求により」、HSSはビットストリームBitstreamToDecodeをDUTへ配信する。これは、DUTが処理を進めるためによりビットを必要とするときのみ、HSSはビットを(復号化順に)配信することを意味する。また、これは、この試験について、DUTの符号化画像バッファが、一番大きい復号化ユニットのサイズくらい小さいことを意味する。
(2)以下に記載される変形HRDを用いる。アネックスAにおいて規定されたようにビットレートとCPBサイズが制限されたようなビットストリームBitstreamToDecodeにおいて規定されたスケジュールのうちひとつによって、HSSはビットストリームをHRDへ配信する。画像出力の順序はHRDおよびDUTの両方において同じであるものとする。
(3)HRD CPBサイズは、サブクローズE.2.3に規定されるようにCpbSize[ SchedSelIdx ]によって与えられる。ここで、SchedSelIdxおよびHRDパラメータはサブクローズC.1に規定されるように選択される。DPBサイズは、(現在の復号化画像に対するnuh_layer_idが0に等しい場合)アクティブSPSから、もしくは、現在の復号化画像のnuh_layer_id の値に対するアクティブなSPSからsps_max_dec_pic_buffering_minus1[ HighestTid ] + 1によって与えられる。
出力レイヤセットDPB情報パラメータoop_dpb_maxbuffering_parameters()が選択された出力レイヤセットに対して存在する場合、DPBサイズはmax_vps_dec_pic_buffering_minus1[CurrLayerId][HighestTid]によって与えられることもある。ここで、currLayerIdは現在の復号化画像のnuh_layer_idである。出力レイヤセットDPB情報パラメータoop_dpb_maxbuffering_parameters ()が選択された出力レイヤセットに対して存在しない場合、DPBサイズは、(現在の復号化画像に対するnuh_layer_idが0に等しい場合)アクティブなSPSから、または、現在の復号化画像のnuh_layer_id の値に対してアクティブなレイヤSPSからsps_max_dec_pic_buffering_minus1[ HighestTid ] + 1によって与えられる。
HRDに対するCPBからの削除時間は、最終ビット到着時間であり、復号化が差し迫っている。このHRDのDPBの動作はサブクローズC.5.2からC.5.2.3.に記載されている。
復号化画像バッファは画像保存バッファを含む。0に等しいnuh_layer_idに対する画像保存バッファの数はアクティブなSPSから得られる。各0でないnuh_layer_id値に対する画像保存バッファの数は、その0でないnuh_layer_id値に対するアクティブなレイヤSPSから得られる。画像保存バッファはそれぞれ、「参照用に使用」とマーキングされた復号化画像を含むか、今後の出力のために保持される。サブクローズF.13.5.2.2に規定されるようなDPBからの画像の出力および削除の処理が起動され、続いて、サブクローズF.13.5.2.3に規定されるような画像復号化、マーキング、追加バンピング、そして保存の処理が起動される。「バンピング」処理はサブクローズF.13.5.2.4に規定されており、サブクローズF.13.5.2.2およびF.13.5.2.3に規定されるように起動される。
現在の画像の復号化の前の(しかし、現在の画像の第1のスライスのスライスヘッダーを解析した後の)DPBからの画像の出力および削除は、現在の画像を含むアクセスユニットの第1の復号化ユニットがCPBから削除され次のように進んだときに、瞬時に起こる。
サブクローズ8.3.2に規定されるようなRPSに対する復号化処理が起動される。
(1)現在の画像が、NoRaslOutputFlagが1に等しくnuh_layer_idが0に等しいIRAP画像であって、画像0ではないIRAP画像である場合、以下の順序の工程が適用される。
(A)変数NoOutputOfPriorPicsFlagが、以下の様に、試験用復号装置に対して得られる。
(i)現在の画像がCRA画像である場合、(no_output_of_prior_pics_flagの値とは関係なく)NoOutputOfPriorPicsFlagを1に等しくなるように設定する。
(ii)そうでなければ、アクティブなSPSから得られるpic_width_in_luma_samples、pic_height_in_luma_samples、またはsps_max_dec_pic_buffering_minus1[ HighestTid ]の値が、先行する画像に対してアクティブなSPSから得られるpic_width_in_luma_samples、pic_height_in_luma_samples、またはsps_max_dec_pic_buffering_minus1[ HighestTid ]のそれぞれの値と異なる場合、no_output_of_prior_pics_flagの値に関係なく、NoOutputOfPriorPicsFlagは試験用復号装置によって1に設定されてもよい(しかしながら、必ずしも設定されなくてもよい)。これらの条件のもとではNoOutputOfPriorPicsFlagをno_output_of_prior_pics_flagに等しくなるように設定することが好ましいが、この場合、試験用復号装置はNoOutputOfPriorPicsFlagを1に設定することができる。
(iii)そうでない場合、NoOutputOfPriorPicsFlagはno_output_of_prior_pics_flagに等しくなるよう設定される。
(B)試験用復号装置に対して得られたNoOutputOfPriorPicsFlagの値は、以下の様に、HRDに対して適用される。
(i)NoOutputOfPriorPicsFlagが1に等しい場合、DPBにおける全ての画像保存バッファは、それらが含んでいる画像の出力はされず、空にされ、そしてDPBフルネスが0に設定される。
(ii)そうでない場合(NoOutputOfPriorPicsFlagが0に等しい場合)、「出力不要」および「参照に不使用」とマーキングされた画像を含むすべての画像保存バッファが(出力は行わずに)空にされ、そして、サブクローズF.13.5.2.4に規定される「バンピング」処理を繰り返し起動することによってDPBにおけるすべての非空の画像保存バッファが空にされ、そしてDPBフルネスが0に設定される。
(iii)そうでない場合(現在の画像が、NoRaslOutputFlagが1でありnuh_layer_idが0であるIRAP画像でない場合)、「出力不要」および「参照に不使用」とマーキングされた、画像を含むすべての画像保存バッファが(出力を行わずに)空にされる。空にされた各画像保存バッファについて、DPBフルネスが1だけ減少する。変数currLayerIdは現在の復号化画像のnuh_layer_idに等しくなるように設定される。
変数MaxNumReorderPics[ currLayerId ][ HighestTid ]、MaxLatencyIncreasePlus1[ currLayerId ][ HighestTid ]、MaxLatencyPictures[ currLayerId ][ HighestTid ]、MaxDecPicBufferingMinus1[ currLayerId ][ HighestTid ]は次のように得られる。
レイヤDPB情報パラメータlayer_dpb_info_parameters()がVPSに存在するならば、MaxNumReorderPics[ currLayerId ][HighestTid ] は、currLayerIdが0に等しいときは vps_max_num_reorder_pics[ HighestTid ] に設定され、currLayerIdが0より大きいときはcurrLayerId に対するmax_vps_num_reorder_pics[ CurrLayerId ][ HighestTid ]に設定される。そうではない場合は、レイヤDPB情報パラメータlayer_dpb_info_parameters()が存在しないならば、MaxNumReorderPics[ currLayerId ][ HighestTid ]は、アクティブSPSに由来する(currLayerIdが0に等しいとき)sps_max_num_reorder_pics[ HighestTid ]に設定され、currLayerId 値に対するアクティブレイヤSPSに由来するsps_max_num_reorder_pics[ HighestTid ]に設定される。
レイヤDPB情報パラメータlayer_dpb_info_parameters()がVPSに存在するならば、MaxLatencyIncreasePlus1[ currLayerId ][ HighestTid ]は、currLayerIdが0に等しいときはvps_max_latency_increase_plus1[ HighestTid ]に設定され、currLayerIdが0より大きいときは、currLayerId に対するmax_vps_latency_increase_plus1[ CurrLayerId ][ HighestTid ]に設定される。レイヤDPB情報パラメータlayer_dpb_info_parameters()がVPSに存在するならば、MaxLatencyPictures[ currLayerId ][ HighestTid ]は、currLayerIdが0に等しいときはSpsMaxLatencyPictures [ HighestTid ] に設定され、currLayerIdが0より大きいときはcurrLayerIdに対するVpsMaxLatencyPictures [ CurrLayerId ][ HighestTid ]に設定される。そうではない場合は、レイヤDPB情報パラメータlayer_dpb_info_parameters()が試験用動作点に対して存在しないならば、MaxLatencyIncreasePlus1[ currLayerId ][ HighestTid ]は、アクティブSPS(currLayerIdが0に等しいとき)のsps_max_latency_increase_plus1[ HighestTid ] に設定されるか、the active layer SPS for the value of currLayerIdのsps_max_latency_increase_plus1[ HighestTid ]に設定され、MaxLatencyPictures[ currLayerId ][ HighestTid ]は、(currLayerIdが0に等しいときは)アクティブSPSに由来するSpsMaxLatencyPictures[ currLayerId ][ HighestTid ]に設定されるか、the active layer SPS for the value of currLayerIdに由来するSpsMaxLatencyPictures[ currLayerId ][ HighestTid ]に設定される。
動作点DPB情報パラメータoop_dpb_maxbuffering_parameters ()が選択された出力レイヤセットに対して存在するならば、MaxDecPicBufferingMinus1[ currLayerId ][HighestTid ]は、currLayerIdが0に等しいときはvps_max_dec_pic_buffering_minus1[ HighestTid ]に設定され、currLayerIdが0より大きいときは試験用動作点用のcurrLayerIdに対するmax_vps_dec_pic_buffering_minus1[ CurrLayerId ][ HighestTid ]に設定される。そうではない場合は、動作点DPB情報パラメータoop_dpb_maxbuffering_parameters ()が試験用動作点に対して存在しないならば、MaxDecPicBufferingMinus1[ currLayerId ][HighestTid ] は、(currLayerIdが0に等しいときは)アクティブSPSに由来するsps_max_dec_pic_buffering_minus1[ HighestTid ]に設定されるか、currLayerId値に対するアクティブレイヤSPSに由来するsps_max_dec_pic_buffering_minus1[ HighestTid ]に設定される。
以下の条件の一または複数が真ならば、サブクローズF.13.5.2.4で規定された「バンピング」工程は、空にされた追加画像保存バッファごとに一つずつDPBフルネスをさらに減らしつつ、繰り返し呼び出され、最終的には以下の条件のすべてが真でなくなる。
(1)DPB内の、currLayerIdに等しいnuh_layer_idを有する、「出力要」とマークされた画像の数は、MaxNumReorderPics[CurrLayerId][HighestTid]より大きい。
(2)MaxLatencyIncreasePlus1[CurrLayerId][HighestTid]が0と等しくなく、DPB内には、currLayerIdに等しいnuh_layer_idを有し、「出力要」とマークされた少なくとも一つの画像が存在し、この画像に関連付けられた変数PicLatencyCount[ currLayerId ] はMaxLatencyPictures[CurrLayerId][HighestTid]以上である。
(3)DPB内の、currLayerIdに等しいnuh_layer_idを有する画像の数は、MaxDecPicBuffering[CurrLayerId][HighestTid]以上である。
このサブクローズに規定されたこれらのプロセスは、現在の画像を含むアクセスユニットnの最後の復号化ユニットがCPBから削除されるとすぐに行われる。
変数currLayerIdは、現在の復号化画像のnuh_layer_idに等しく設定される。
DPB内の、「出力要」とマークされ、currLayerIdに等しいnuh_layer_id値を有する画像ごとに、関連する変数PicLatencyCount[ currLayerId ] がPicLatencyCount[ currLayerId ] + 1に等しく設定される。
現在の画像は、当該画像の最後の復号化ユニットが復号化されてから、復号されたと見なされる。現在の復号化された画像は、DPB内の空の画像保存バッファに保存され、以下の事項が該当する。
(A)現在の復号化画像が1に等しいPicOutputFlagを有しているならば、「出力要」とマークされ、それと関連する変数PicLatencyCount[ currLayerId ]が0に等しく設定される。
(B)そうではないならば(現在の復号化画像が0に等しいPicOutputFlagを有しているならば)、「出力不要」とマークされる。
現在の復号化画像は「短期参照のために使用」とマークされる。
以下の条件の一または複数が真ならば、サブクローズF.13.5.2.4で規定された「バンピング」工程は繰り返し呼び出され、最終的には以下の条件のすべてが真でなくなる。
(A)DPB内の、currLayerIdに等しいnuh_layer_idを有し、「出力要」とマークされた画像の数は、MaxNumReorderPics[CurrLayerId][HighestTid]より大きい。
(B)MaxLatencyIncreasePlus1[CurrLayerId][HighestTid]が0と等しくなく、DPB内に、currLayerIdに等しいnuh_layer_idを有する少なくとも一つの画像が存在し、その画像に関連した変数PicLatencyCount[ currLayerId ] は、MaxLatencyPictures[CurrLayerId][HighestTid]以上である。
「バンピング」工程は、以下の順序のステップからなる。
(A)最初に出力するべき画像は、DPB内にある「出力要」とマークされたすべての画像の中でPicOrderCntValの値がもっとも小さいものとして選ばれる。
(B)これらの画像は、0に等しいnuh_layer_idを有する画像用のアクティブSPSまたは当該画像のnuh_layer_idに等しいnuh_layer_id値用のアクティブレイヤSPSで規定されたコンフォーマンスクロッピングウィンドウを用いてクロップされ、クロップされた画像はnuh_layer_idの昇順に出力され、当該画像は「出力不要」とマークされる。
(C)「参照に不使用」とマークされた画像を有し、画像のうち、クロップされ、出力された一つを含んでいた画像保存バッファそれぞれが空になる。
図62を参照し、修正されたシーケンスパラメータセット(sps)の一例を示す。修正spsはsps_dpb_params_present_flagを含む。このフラグの値およびnuh_layer_idの値に基づいた一実施形態では、シンタックス要素のいくつか(例えば、sps_sub_layer_ordering_info_present_flag、sps_max_dec_pic_buffering_minus1[i]、sps_max_num_reorder_pics[i]、sps_max_latency_incease_plus1[i])は信号化されなくてもよい。
sps_dpb_params_present_flagが0に等しい場合は、nuh_layer_id >0のSPSに対して、the syntax elements sps_sub_layer_ordering_info_present_flag、sps_max_dec_pic_buffering_minus1[ i ]、sps_max_num_reorder_pics[ i ]、 およびsps_max_latency_increase_plus1[ i ]が当該SPSに存在しないと規定する。これらのパラメータの値は、アクティブVPS拡張で信号化されたパラメータsub_layer_vps_buf_info_present_flag[ i ]、max_vps_num_reorder_pics[ i ][ j ]、およびmax_vps_latency_increase_plus1[ i ][ j ]の値に等しく設定される。sps_dpb_params_present_flagが1に等しい場合は、nuh_layer_id >0のSPSに対して、the syntax elements sps_sub_layer_ordering_info_present_flag、sps_max_dec_pic_buffering_minus1[ i ]、sps_max_num_reorder_pics[ i ]、およびsps_max_latency_increase_plus1[ i ]が当該SPSに存在すると規定する。
他の実施形態において、上記シンタックス要素の一または複数は、u(v)の代わりにue(v)の代わりに既知の一定数のビットを用いて信号化してもよい。例えば、上記シンタックス要素は、u(8) またはu(16)またはu(32)またはu(64)等を用いて信号化してもよい。
他の実施形態において、上記シンタックス要素の一または複数は、u(v)符号化のような一定数のビットの代わりに、ue(v)またはその他のコード体系によって信号化してもよい。
他の実施形態において、種々のシンタックス要素の名称およびセマンティクスは、上述のシンタックスおよびセマンティクスと比較して、plus1もしくはplus2を加算、またはminus1もしくはminus2を減算することによって変更してもよい。
さらに他の実施形態において、種々のシンタックス要素は、上記ビットストリーム中の任意の箇所で、画像ごとに信号化してもよい。例えば、スライスセグメントヘッダー、pps/sps/vpsもしくはその他のパラメータセット、または上記ビットストリーム中の規準を定める他の部分において信号化してもよい。
さらに他の実施形態において、本発明において出力レイヤセットに関して定義したすべての概念は、出力動作点[2,3] および/または動作点[1]に適用できる。
〔実施形態3〕
映像符号化の方法を開示する。当該方法は現在の画像の第一スライスヘッダーの解析を開始する工程を含む。復号化画像バッファ(DPB)によって行われる工程のうち、どの工程が画像に基づくものであり、どの工程がアクセスユニット(AU)に基づくものかを決定する。上記DPBからの削除を行う。上記DPBからの画像出力を行う。上記DPB内での現在の復号化画像の復号化および保存を行う。上記DPB内での上記現在の復号化画像をマーキングする。上記DPBからの追加画像出力を行う。
いくつかの構成では、上記DPBからの上記削除および出力は、AU出力フラグ、AUによるRASL不出力フラグ、および/またはAUによる先行画像不出力フラグなどの少なくとも一つのAU出力フラグに基づいていてもよい。当該AU出力フラグはビットストリームおよび他の条件において信号化されたシンタックス要素に基づいて得られたものであってよい。これらAUフラグはアクセスユニット(AU)レベルで得られ、用いられるフラグを表す。いくつかの構成では、これらは、画像出力フラグ(例えば、pic_output_flag)、画像RASL不出力フラグ(picture no rasl output flag)(例えば、NoRaslOutputFlag)、および/または画像の先行画像不出力フラグ(picture no output of prior pictures flag)(例えば、no_output_of_prior_pics flag)などの画像レベルで信号化される、または、得られる同様のフラグとは異なるフラグである。
ある構成では、第一AU出力フラグが上記DPBにより得られかつ上記DPBによって用いられ、第二AU出力フラグが上記DPBにより得られかつ上記DPBによって用いられてもよい。他の構成では、上記第一スライスヘッダーに画像出力フラグがある場合は、AUにおけるすべての符号化画像に対して、すべての画像出力フラグシンタックス要素値が同じ値に制限されていてもよい。いくつかの構成では、上記第一スライスヘッダーに画像不出力フラグがある場合は、AUにおけるすべての符号化画像に対して、すべての画像出力フラグシンタックス要素値が同じ値に制限されている。
ある構成では、上記削除は画像に基づき、上記画像出力はAUに基づき、上記保存および復号化は画像に基づき、上記マーキングは画像に基づき、上記追加画像出力はAUに基づいてもよい。上記DPBからの上記削除では、上記現在の画像の復号化の前に、上記DPBから一または複数の画像の削除を行ってもよい。
他の構成では、上記削除は画像に基づき、上記画像出力、上記復号化および保存、上記マーキング、および上記追加画像出力はAUに基づいてもよい。さらに他の構成では、上記削除、上記画像出力、上記復号化および保存、上記マーキング、および上記追加画像出力はAUに基づいてもよい。他の構成では、上記削除、上記復号化および保存、および上記マーキングは画像に基づき、上記画像出力および上記追加画像出力はAUに基づいてもよい。さらに他の構成では、上記削除、上記画像出力、上記復号化および保存、上記マーキング、および上記追加画像出力は画像に基づいてもよい。
上記DPB内での上記現在の復号化画像をマーキングする工程は、参照マーキング工程と出力マーキング工程とを含んでいてもよい。上記参照マーキング工程は画像に基づき、上記出力マーキング工程はAUに基づいてよい。空の保存バッファにおける上記DPBに復号化画像が保存されている場合は、DPBフルネスが一だけ増加し、上記DPBから画像が出力される場合は、上記DPBフルネスが一だけ減少してもよい。上記DPBフルネスはレイヤごとに追跡されてもよい。上記DPBフルネスは出力レイヤセットごとに追跡されてもよい。
上記DPBは、異なる解像度、異なる色深度(bit-depth)、および異なる色度のうち一つまたは複数を有する複数の復号化画像用に、別々に特定され管理されている複数の画像バッファを有してもよい。上記DPBは、複数の画像保存バッファの共通プールを有していてもよく、大きさ、解像度、および色深度(bit-depth)の少なくとも一つに基づいて、当該複数の画像保存バッファに復号化画像が保存されてもよい。ある構成では、当該複数の画像保存バッファのうちの一つの画像バッファスロットに復号化画像が保存されてもよい。
上記方法はスケーラブル高効率映像符号化方式(SHVC)基準に合致する電子装置内の復号装置によって行われてもよい。また、上記方法はマルチビュー高効率映像符号化方式(MV−HEVC)基準に合致する電子装置内の復号装置によって行われてもよい。
また、映像符号化のために構成された電子装置を開示する。当該電子装置はプロセッサと、上記プロセッサと電子的に通信するメモリとを備える。上記メモリに保存された指示を処理することにより、現在の画像の第一スライスヘッダーの解析を開始する。また、上記メモリに保存された指示を処理することにより、復号化画像バッファ(DPB)によって行われる工程のうち、どの工程が画像に基づくものであり、どの工程がアクセスユニット(AU)に基づくものかを決定する。上記メモリに保存された指示を処理することにより、上記DPBからの削除も行う。上記メモリに保存された指示を処理することにより、上記DPBからの画像出力も行う。上記メモリに保存された指示を処理することにより、上記DPB内での現在の復号化画像の復号化および保存も行う。上記メモリに保存された指示を処理することにより、上記DPB内での上記現在の復号化画像のマーキングも行う。上記メモリに保存された指示を処理することにより、上記DPBからの追加画像出力も行う。
類似する符号が機能上類似する構成要素を示す図面を参照して、以下に、様々な構成を記載する。本明細書において概要を記載され、図に示される上記システムおよび方法は、幅広く様々に異なる構成にして、設計することが可能である。よって、図面に表されるようないくつかの構成の以下のより詳細な記載は、請求の範囲を限定するものではなく、上記システムおよび方法の単に代表的なものである。
図63は、複数の電子装置2102a−b間における映像符号化を示すブロック図である。第1の電子装置2102aおよび第2の電子装置2102bが示されている。しかしながら、いくつかの構成では、第1の電子装置2102aおよび第2の電子装置2102bに関して説明される特徴および機能性のうち、ひとつまたは複数の特徴および機能性を組み合わせてひとつの電子装置102としてもよい。各電子装置102は映像を符号化および/または複号化するよう構成されていてもよい。電子装置102はハイブリッド復号化画像バッファ(DPB)動作を利用するように構成されていてもよい。ハイブリッド復号化画像バッファ(DPB)動作では、復号化画像バッファ(DPB)116で行われる削除、出力(バンピング)、保存、マーキング、追加出力(バンピング)の各種工程が画像単位またはアクセスユニット(AU)単位で発生するシナリオを参照する。これら工程の特定の組み合わせは画像単位またはアクセスユニット(AU)単位で行われていると見なされるが、画像単位またはアクセスユニット(AU)単位でこれらの工程それぞれを独立して行うことのすべてのあり得る組み合わせがサポートされている。
ここでは、アクセスユニット(AU)とは、規定された分類規則に従って互いに関連付けられたネットワーク抽象化レイヤ(NAL)ユニットのセットである。ネットワーク抽象化レイヤ(NAL)ユニットのセットは、復号化順に連続するものであって、同じ出力時間に関連付けられたすべての符号化画像の映像符号化レイヤ(VCL)NALユニットおよびそれらの関連付けられた非VCL NALユニットとを含むものである。ベースレイヤはすべてのVCL NALユニットが0に等しいnuh_layer_idを有するレイヤである。符号化画像は、nuh_layer_idが特定の値であるVCL NALユニットを含む画像であって、その画像のすべての符号化ツリーユニットを含む画像のコード化表現である。符号化画像はレイヤ成分と呼ばれることもある。画像もしくはアクセスユニット(AU)に基づく工程の更なる詳細については、図69、70に関連して説明する。
ある構成では、各電子装置102は高効率映像符号化(HEVC)方式、スケーラブル高効率映像符号化(SHVC)方式、またはマルチビュー高効率映像符号化(MV−HWVC)方式に適合していてもよい。HEVC方式はH.264/MPEG・4 AVC (Advanced Video coding)にとって代わる映像圧縮技術であり、映像画質が改良され、圧縮率が高くなっている。ここでは、モノクロフォーマットの輝度サンプル(luma samples)のアレイ、もしくは、4:2:0、4:2:2、4:4:4のカラーフォーマット、または他のカラーフォーマットの輝度サンプルのアレイと2つの対応するクロマサンプルの配列である。仮想参照復号装置(HRD)の動作および出力順復号化画像バッファ(DPB)116の動作は、JCTVC‐M1008,JCTVC‐L1008,JCTVC‐D1004,JCT3V‐C1004、JCTVC‐L0453およびJCTVC‐L0452におけるSHVCおよびMV‐HEVCについて説明されている。
第1の電子装置2102aは符号化装置2108およびオーバーヘッドシグナリングモジュール2112を備えるていてもよい。第1の電子装置2102aは入力画像2106を得てもよい。いくつかの構成では、入力画像2106は、第1の電子装置2102aにおいてイメージセンサを用いてキャプチャされてもよく、メモリから検索されてもよく、そして/または他の電子装置102によって受信されてもよい。符号化装置2108は入力画像2106を符号化して符号化データ2110を作製してもよい。例えば、符号化装置2108は一連の入力画像2106(例えば、映像)を符号化してもよい。符号化データ2110はデジタルデータ(例えば、ビットストリーム)であってもよい。
オーバーヘッドシグナリングモジュール2112は符号化データ2110に基づいてオーバーヘッドシグナリングを生成してもよい。例えば、オーバーヘッドシグナリングモジュール2112は、スライスヘッダー情報、映像パラメータセット(VPS)情報、シーケンスパラメータセット(SPS)情報、画像パラメータセット(PPS)情報、ピクチャオーダーカウント(picture order count)(POC)、参照画像指示(reference picture designation)などの符号化データ2110にオーバーヘッドデータを加えてもよい。いくつかの構成では、オーバーヘッドシグナリングモジュール2112は、2つの画像セットの間の移行(transition)を示すラップインジケータ(wrap indicator)を作製してもよい。
符号化装置2108(および、例えば、オーバーヘッドシグナリングモジュール2112)はビットストリーム2114を作製してもよい。ビットストリーム2114は入力画像2106に基づく符号化画像データを含んでいてもよい。いくつかの構成では、ビットストリーム2114は、スライスヘッダー情報、VPS情報、SPS情報、PPS情報などのオーバーヘッドデータも含んでいてもよい。追加入力画像2106が符号化されるとき、ビットストリーム2114はひとつまたは複数の符号化データを含んでいてもよい。例えば、ビットストリーム2114はひとつまたは複数の符号化参照画像および/または他の画像を含んでいてもよい。
ビットストリーム2114は復号装置2104に供給されてもよい。一例を挙げれば、ビットストリーム2114は、有線または無線リンクを用いて第2の電子装置2102bに送信されてもよい。場合によっては、インターネットやローカルエリアネットワーク(LAN)などのネットワークを介して送信されてもよい。図63に示すように、復号装置2104は、第1の電子装置2102aにおける符号化装置2108から独立して、第2の電子装置2102bにおいて実現されてもよい。しがしながら、いくつかの構成では、符号化装置2108と復号装置2104は同じ電子装置102において実現されてもよい。符号化装置2108と復号装置2104が同じ電子装置において実現される場合、例えば、ビットストリーム2114は、バスを介して復号装置2104に供給されるか、または、復号装置2104が検索できるようメモリに格納されていてもよい。
復号装置2104はビットストリーム2114を受信(例えば、取得)してもよい。復号装置2104はビットストリーム2114に基づいて復号化画像2118(例えば、ひとつまたは複数の復号化画像2118)を生成してもよい。復号化画像2118は表示され、再生され、メモリに保存されて、そして/または他の装置などに送信されてもよい。
復号装置2104は復号化画像バッファ(DPB)116を備えていてもよい。復号化画像バッファ(DPB)116は、仮想参照復号装置(HRD)に対して規定された、参照用、出力再順序付け、出力遅延用の復号化画像を保持するバッファであってもよい。電子装置102において、復号化画像バッファ (DPB)116は、復号装置2104で再構成(例えば、復号化)された画像を保存するために用いられてもよい。これらの保存された画像は、例えば、インター予測機構で用いられてもよい。画像が順序通りに復号されない場合、それら画像は、あとで順番に表示されるように復号化画像バッファ(DPB)116に保存されてもよい。
H.264またはadvance video coding (AVC)方式では、復号化画像バッファ(DPB)116の管理(例えば、削除、画像の追加、画像の再順序付けなど)がメモリ管理制御動作(MMCO)を用いて行われる。多くの様々な復号化画像バッファ(DPB)116管理アプローチが検討されている。
復号装置2104はハイブリッド復号化画像バッファ(DPB)動作モジュール2120を備えていてもよい。ハイブリッド復号化画像バッファ(DPB)動作モジュール2120は、画像に基づく工程2122による復号化画像バッファ(DPB)116管理アプローチ、および/または、アクセスユニット(AU)に基づく工程2124による復号化画像バッファ(DPB)116管理アプローチを可能にする。例えば、削除、保存、参照マーキングのために画像に基づく工程2124を用いることの利点のひとつは、最適な復号化画像バッファ(DPB)116メモリが様々なレイヤによって用いられるということである。したがって、画像に基づく工程を用いる際の全体で要求されるメモリは低くてもよい。出力(出力、出力マーキング、追加出力を含む)のためにアクセスユニット(AU)に基づく工程2124を用いることの利点のひとつは、出力プロセスが単純になるということである。
図64はハイブリッド復号化画像バッファ(DPB)116動作の方法2200を示すフローチャートである。当該方法2200は、第2の電子装置102における復号装置2104の一部としての復号化画像バッファ(DPB)116によって行われてもよい。ある構成では、当該方法2200はハイブリッド復号化画像バッファ(DPB)動作モジュール2120によって行われてもよい。復号化画像バッファ(DPB)116は現在の画像の第一スライスヘッダーの解析を始める(2202)。復号化画像バッファ(DPB)116は、ハイブリッド復号化画像バッファ(DPB)動作のどの工程が画像に基づくか、どの工程がアクセスユニット(AU)に基づくかを決定する(2204)。
復号化画像バッファ(DPB)116は、復号化画像バッファ(DPB)116から、(出力せずに)削除する(2206)。上記削除によって、現在の画像を復号化する前に復号化画像バッファ(DPB)116から画像を削除する。復号化画像バッファ(DPB)116は、復号化画像バッファ(DPB)116から画像出力(バンピング)する(2208)。画像出力(バンピング)は、符号化画像バッファ(CPB)削除時間(coded picture buffer (CPB) removal time)に復号化画像バッファ(DPB)116から画像を出力することをいう。いくつかの構成では、「バンピング」は復号化画像バッファ(DPB)116からひとつ以上の画像を出力することを指すために用いてもよい。したがって、「バンピング」と「出力」は同じように用いられる。
復号化画像バッファ(DPB)116は、復号化画像バッファ(DPB)116内の現在の画像を復号化(2210)し保存する。復号化画像バッファ(DPB)116は、復号化画像バッファ(DPB)116に保存された現在の復号化画像をマーキングする(2212)。例えば、復号化画像バッファ(DPB)116は、「参照用に不使用」、「参照用に使用」、「出力要」、や「出力不要」などと現在の復号化画像をマーキングする(2122)。復号化画像バッファ(DPB)116は、復号化画像バッファ(DPB)116から別の画像出力(追加バンピング)も行ってもよい(2214)。いくつかの構成では、復号化画像バッファ(DPB)116からの画像の削除/バンピングは、ある条件が満たされるまで行われてもよい。
図65はハイブリッド復号化画像バッファ(DPB)116の動作の他の方法2300を示すフローチャートである。例えば、図65の上記方法2300は、ハイブリッド復号化画像バッファ(DPB)116の好ましい動作方法である。上記方法2300は、電子装置102上の復号装置2104の一部としての復号化画像バッファ(DPB)116によって行われてもよい。一構成において、上記方法2300は、ハイブリッド復号化画像バッファ(DPB)動作モジュール2120によって行われてもよい。上記復号化画像バッファ(DPB)116は、現在の画像の第1スライスヘッダーの解析を開始してもよい(2302)。「ハイブリッド」という語は、上記復号化画像バッファ(DPB)116のいくつかの動作工程が画像に基づいて行われ、上記復号化画像バッファ(DPB)116のいくつかの動作工程がアクセスユニット(AU)に基づいて行われることを指す。上記復号化画像バッファ(DPB)116は、上記復号化画像バッファ(DPB)116から、(出力せずに)画像に基づく削除をしてもよい(2304)。上記復号化画像バッファ(DPB)116は、上記復号化画像バッファ(DPB)116から、アクセスユニット(AU)に基づく画像出力(バンピング)を行ってもよい(2306)。上記復号化画像バッファ(DPB)116は、上記復号化画像バッファ(DPB)において、画像に基づいて現在の画像を復号化し保存してもよい(2308)。
上記復号化画像バッファ(DPB)116は、上記復号化画像バッファ(DPB)において、画像に基づいて現在の復号化画像のマーキングを行ってもよい(310)。上記復号化画像バッファ(DPB)116によって行われる上記マーキングする工程は、さらに参照マーキング工程および出力マーキング工程の両方を含んでもよい。本明細書では、画像が「参照用に不使用」または「参照用に使用」であるとマーキングすることを、参照マーキング工程と称する。上記復号化処理動作中のどの時点においても、上記復号化画像バッファ(DPB)116における復号化画像には、「参照用に不使用」、「短期参照用に使用」、または「長期参照用に使用」のいずれか一つのみをマーキングすることができる。これらのマーキングのうちの一つを画像に割り当てるということは、上記画像に割り当てられている他のマーキングを削除するということになる。画像が「参照用に使用」とマーキングされたという場合、これは、その画像が「短期参照用に使用」もしくは「長期参照用に使用」とマーキングされたことをまとめて指すが、その両方としてマーキングされることはない。本明細書では、画像が「出力要」または「出力不要」であることをマーキングすることを、出力マーキング工程と称する。
上記復号化画像バッファ(DPB)116は、上記参照マーキング工程および上記出力マーキング工程が画像に基づきまたはアクセスユニット(AU)に基づき行われるように動作してもよい。一般的に、これら二つのマーキングする工程のすべての可能な組み合わせ(通常は四つの組み合わせ)は、個々に、画像に基づきまたはアクセスユニット(AU)に基づき行われる。しかしながら、上記参照マーキング工程を画像に基づいて行い、上記出力マーキング工程をアクセスユニット(AU)に基づいて行うことが好ましい。
上記復号化画像バッファ(DPB)116は、アクセスユニット(AU)に基づいて現在の復号化画像の出力をマーキングしてもよい(2312)。上記復号化画像バッファ(DPB)116は、上記復号化画像バッファ(DPB)116から、アクセスユニット(AU)に基づいて他の画像出力(追加バンピング)を行ってもよい(2314)。いくつかの構成においては、上記復号化画像バッファ(DPB)116からの画像の削除/バンピングを、所定の条件を満たすまで繰り返してもよい。
いくつかのアプローチにおいて、上記スライスセグメントヘッダーのフラグに対して、ビットストリーム上の適合制約(bitstream conformance constraints)が必要であってもよい。いくつかの場合において、上記制約は、同じアクセスユニット(AU)に属する画像にわたるフラグに適用されてもよい。例えば、ビットストリーム上の適合制約に従うために、pic_output_flagおよび/またはno_output_of_prior_pics_flagというフラグが必要であってもよい。例えば、JCTVC−L1003、JCTVC−M1008、およびJCT3V−D1004のそれぞれには、pic_output_flagおよびno_output_of_prior_pics_flagを用いた上記スライスセグメントヘッダーにおける信号化が記載されている。さらに、PicOutputFlag、NoRaslOutputFlag、およびNoOutputOfPriorPicsFlag等のフラグは、上記シンタックス要素およびNALユニットタイプに基づいて生成することができる。
JCTVC−L1003、JCTVC−M1008、およびJCT3V−D1004は、HEVC、SHVC、およびMV−HEVCに対するDPBについての記載も含んでいる。JCTVC−M1008 SHVC Draft Text 1では、HEVCのスケーラブル拡張用のテキストドラフトが提示されている。JCT3V−D1004 MV−HEVC Draft Text 4では、HEVCのマルチビュー拡張用のテキストドラフトが記載されている。
JCTVC−L1003、JCTVC−M1008、および/またはJCT3V−D1004に従って、上記映像符号化ビットストリームは、一般にネットワーク抽象化レイヤ(NAL)ユニットと呼ばれる論理データパケットに置かれるシンタックス構造を含んでもよい。各NALユニットは、関連データペイロードの目的を識別するための2バイトのNALユニットヘッダー(例えば16ビット)等のNALユニットヘッダーを含む。例えば、各符号化スライス(および/または画像)は、一または複数のスライス(および/または画像)NALユニットにおいて符号化されてもよい。他のNALユニットは、例えば、付加エンハンスメント情報、一時的サブレイヤアクセス(TSA)画像の符号化スライス、段階的な一時的サブレイヤアクセス(STSA)画像の符号化スライス、非TSAトレイリング画像(trailing picture)の符号化スライス、非STSAトレイリング画像の符号化スライス、区切られたリンクアクセス画像(broken link access picture)の符号化スライス、瞬時復号化更新画像の符号化スライス、クリーンランダムアクセス画像の符号化スライス、復号可能リーディング画像の符号化スライス、廃棄タグ付き画像、映像パラメータセット、シーケンスパラメータセット、画像パラメータセット、アクセスユニットデリミタ、シーケンスの終端、ビットストリームの終端、フィラーデータおよび/またはシーケンスエンハンスメント情報メッセージの符号化スライス等の他のデータカテゴリー用に含まれていてもよい。下記表(7)は、NALユニットコードおよびNALユニットタイプクラスの一例を示す。他のNALユニットタイプも任意に含まれていてもよい。
なお、表(7)に記載の上記NALユニットのNALユニットタイプ値は、再配置および再割り当てされてもよい。また、更なるNALユニットタイプが追加または削除されてもよい。
イントラランダムアクセスポイント(IRAP)画像は、下記表(7)に示す通り、各映像符号化レイヤNALユニットがBLA_W_LPからRSV_IRAP_VCL23を含む範囲のnal_unit_typeを持つ符号化画像である。IRAP画像は、イントラ符号化(I)スライスのみを含む。
瞬時復号化更新(IDR)画像は、表(7)に示す通り、各映像符号化レイヤNALユニットがIDR_W_RADLまたはIDR_N_LPに等しいnal_unit_typeを持つIRAP画像である。瞬時復号化更新(IDR)画像は、Iスライスのみを含み、復号化順序においてビットストリームの一番目の画像であってもよく、ビットストリームにおいて後の方に現れてもよい。
各IDR画像は、復号化順序における符号化映像シーケンス(CVS)の一番目の画像である。区切られたリンクアクセス(BLA)画像は、表(7)に示す通り、各映像符号化レイヤNALユニットがBLA_W_LP、BLA_W_RADL、またはBLA_N_LPに等しいnal_unit_typeを持つIRAP画像である。
BLA画像は、Iスライスのみを含み、復号化順序においてビットストリームの一番目の画像であってもよく、ビットストリームにおいて後の方に現れてもよい。各BLA画像は新しい符号化映像シーケンスを開始し、上記復号化処理においてIDR画像と同じ効果がある。しかしながら、BLA画像は、非空の参照画像セットを特定するシンタックス要素を含む。
下記の表(8)から、上記NALユニットヘッダーシンタックスは2バイトのデータ、つまり、16ビットを含んでもよい。一番目のビットは、NALユニットの開始時において常にゼロに設定される「forbidden_zero_bit」であってもよい。次の6ビットは、上記表(7)に示す通り、NALユニットに含まれるローバイトシーケンスペイロード(「RBSP」)のデータ構造のタイプを特定する「nal_unit_type」であってもよい。次の6ビットは、レイヤの識別子を特定する「nuh_layer_id」であってもよい。いくつかの場合において、代わりに、これらの6ビットは「nuh_reserved_zero_6bits」として特定されてもよい。上記nuh_reserved_zero_6bitsは、基準の基礎仕様において0に等しくてもよい。スケーラブル映像符号化および/またはシンタックス拡張において、nuh_layer_idは、この特定のNALユニットがこれらの6ビットの値によって識別されたレイヤに属していることを特定してもよい。
次のシンタックス要素は「nuh_temporal_id_plus1」であってもよい。上記nuh_temporal_id_plus1 minus 1は、NALユニットの一時的識別子を特定してもよい。変数の一時的識別子TemporalIdは、TemporalId = nuh_temporal_id_plus1 - 1のように特定されてもよい。上記一時的識別子TemporalIdは、一時的サブレイヤを識別するのに使われる。変数HighestTidは、復号化されるべき最上位の一時的サブレイヤを識別する。
下記の表(9)は、典型的なシーケンスパラメータセット(SPS)のシンタックス構造を示す。pic_width_in_luma_samplesは、輝度サンプル(luma samples)のユニットにおける各復号化画像の幅を特定する。pic_width_in_luma_samplesは、0に等しいということはない。pic_height_in_luma_samplesは、輝度サンプルのユニットにおける各復号化画像の高さを特定する。pic_height_in_luma_samplesは、0に等しいということはない。
sps_max_sub_layers_minus1 plus 1は、SPSを参照する各CVSに存在してもよい一時的サブレイヤの最大数を特定する。sps_max_sub_layers_minus1の値は、0から6を含む範囲である。
フラグsps_sub_layer_ordering_info_present_flagが1に等しい場合は、シンタックス要素sps_max_dec_pic_buffering_minus1[ i ]、sps_max_num_reorder_pics[ i ]、およびsps_max_latency_increase_plus1[ i ]が、sps_max_sub_layers_minus1 + 1のサブレイヤに対して存在していることを特定する。sps_sub_layer_ordering_info_present_flagが0に等しい場合は、sps_max_dec_pic_buffering_minus1[ sps_max_sub_layers_minus1 ]、sps_max_num_reorder_pics[ sps_max_sub_layers_minus1 ]、およびsps_max_latency_increase_plus1[ sps_max_sub_layers_minus1 ]の値がすべてのサブレイヤに適用されることを特定する。
sps_max_dec_pic_buffering_minus1[ i ] plus 1は、HighestTidがiに等しい場合の、画像保存バッファのユニットにおけるCVSについての上記復号化画像バッファの最大必要サイズを特定する。sps_max_dec_pic_buffering_minus1[ i ]の値は、0以上MaxDpbSize - 1以下の範囲であり、ここで、MaxDpbSizeは画像保存バッファのユニットにおける最大復号化画像バッファサイズを特定する。iが0よりも大きい場合、sps_max_dec_pic_buffering_minus1[ i ]はsps_max_dec_pic_buffering_minus1[ i - 1 ]以上である。sps_sub_layer_ordering_info_present_flagが0に等しく、よってsps_max_dec_pic_buffering_minus1[ i ]が0以上sps_max_sub_layers_minus1 - 1以下の範囲のiに対して存在しない場合、sps_max_dec_pic_buffering_minus1[ sps_max_sub_layers_minus1 ]に等しいと推定される。
sps_max_num_reorder_pics[ i ]は、HighestTidがiに等しい場合に、復号化順序ではCVSの画像に先行し、出力順序ではその画像の後になる画像の最大許容数を示す。sps_max_num_reorder_pics[ i ]の値は、0以上sps_max_dec_pic_buffering_minus1[ i ]以下の範囲である。iが0よりも大きい場合、sps_max_num_reorder_pics[ i ]はsps_max_num_reorder_pics[ i - 1 ]以上であってもよい。sps_sub_layer_ordering_info_present_flagが0に等しく、よってsps_max_num_reorder_pics[ i ]が0以上sps_max_sub_layers_minus1 - 1以下の範囲のi用に存在しない場合、sps_max_num_reorder_pics[ sps_max_sub_layers_minus1 ]に等しいと推定される。
0に等しくないsps_max_latency_increase_plus1[ i ]は、HighestTidがiに等しい場合に、出力順序ではCVSの画像に先行し、復号化順序ではその画像の後になる画像の最大数を特定するSpsMaxLatencyPictures[ i ]の値を計算するために使用されてもよい。sps_max_latency_increase_plus1[ i ]が0に等しくない場合、SpsMaxLatencyPictures[ i ]の値は以下の通り特定される:SpsMaxLatencyPictures[ i ] = sps_max_num_reorder_pics[ i ] + sps_max_latency_increase_plus1[ i ] - 1。sps_max_latency_increase_plus1[ i ]が0に等しい場合、対応する制限はない。
sps_max_latency_increase_plus1[ i ]の値は、0以上232−2以下の範囲である。sps_sub_layer_ordering_info_present_flagが0に等しく、よってsps_max_latency_increase_plus1[ i ]が0以上sps_max_sub_layers_minus1 - 1以下の範囲のi用に存在しない場合、sps_max_latency_increase_plus1[ sps_max_sub_layers_minus1 ]に等しいと推定される。
さらに、JCTVC−L1003はHEVC基準を記載する。例えば、pic_out_flagおよびno_output_of_prior_pics_flagに関する詳細が下記の表(10)に記載されている。
表(10)において、IDR、またはJCTVC−L1003のアネックスCにて特定されるように、ビットストリームにおける一番目の画像ではないBLA画像、の復号化の後、no_output_of_prior_pics_flagは上記復号化画像バッファ(DPB)における先の復号化画像の出力に影響を及ぼす。
output_flag_present_flagが1に等しい場合は、pic_output_flagシンタックス要素が、関連するスライスヘッダー中に存在することを示す。output_flag_present_flagが0に等しい場合は、pic_output_flagシンタックス要素が、関連するスライスヘッダー中には存在しないことを示す。pic_output_flagは、JCTVC−L1003のアネックスCで特定されるように復号化画像の出力および削除の処理に影響を及ぼす。pic_output_flagが存在しない場合、1に等しいと推定される。
一般的な(JCTVC−L1003の8.1にあるような)復号化処理用に、PicOutputFlagは下記の様に設定される:
‐現在の画像がRASL画像であり、関連するIRAP画像のNoRaslOutputFlagが1に等しい場合、PicOutputFlagは0に等しく設定されてもよい。
‐そうでない場合、PicOutputFlagはpic_output_flagに等しく設定されてもよい。
加えて、利用できない参照画像を生成する一般的な(JCTVC−L1003の8.3.3.1にあるような)復号化処理中に、生成した画像のPicOutputFlagの値を、ある条件下で0に等しく設定してもよい。
現在の画像がIRAP画像の場合、下記の通りである:
‐現在の画像がIDR画像、BLA画像、復号化順序でビットストリームの一番目の画像、または復号化順序でシーケンスNALユニットの終端に続く一番目の画像である場合、変数NoRaslOutputFlagは1に等しく設定されてもよい。
‐別の場合として、JCTVC−L1003にて特定されないある外部の手段を用いて、変数HandleCraAsBlaFlagを現在の画像用の値に設定する場合、変数HandleCraAsBlaFlagは上記外部の手段によって得られた値に等しく設定されてもよく、変数NoRaslOutputFlagはHandleCraAsBlaFlagに等しく設定されてもよい。
‐別の場合として、変数HandleCraAsBlaFlagは0に等しく設定されてもよく、変数NoRaslOutputFlagは0に等しく設定されてもよい。
上述したとおり、アクセスユニット(AU)とは、特定の分類規則に従って互いに関連し、復号化順序で連続し、同じ出力時間に関連するすべての符号化画像の映像符号化レイヤ(VCL)NALユニットおよびそれらの関連する非VCL NALユニットを含む、ネットワーク抽象化レイヤ(NAL)ユニットのセットを指す。上記ベースレイヤは、すべてのVCL NALユニットが0に等しいnuh_layer_idを持つレイヤである。符号化画像は、nuh_layer_idが特定の値であるVCL NALユニットを含み、その画像のすべての符号化ツリーユニットを含む画像のコード化表現である。いくつかの場合において、符号化画像はレイヤ成分と呼ばれてもよい。画像に基づくまたはアクセスユニット(AU)に基づく工程の更なる詳細については、図69および図70に関連して下記に記載する。
いくつかの構成において、pic_output_flagおよび/またはno_output_of_prior_pics_flagに対するビットストリーム上の適合制約は、アクセスユニット(AU)の符号化画像に使われてもよい。加えて、3つの新しいアクセスユニット出力フラグ、つまり、AU出力フラグ(例えば、AuOutputFlag)、AUによるRASL不出力フラグ(AU no RASL output flag)(例えば、AuNoRaslOutputFlag)、およびAUによる先行画像不出力フラグ(AU no output of prior pictures flag)(例えば、AuNoOutputOfPriorPicsFlag)が、様々なシンタックス要素の値およびAUの符号化画像用のNALユニットタイプに基づいて、AU用に生成されてもよい。いくつかの構成において、画像の出力および削除は、SHVCおよびマルチビューHEVC用のこれらの3つのフラグ(例えば、AuOutputFlag、AuNoRaslOutputFlag、およびAuNoOutputOfPriorPicsFlag)に基づいて行われてもよい。
例えば、HEVC拡張用のビットストリーム上の適合制約が、本明細書におけるシステムおよび方法において記載されているように従われてもよい。特に、ビットストリーム上の適合制約は、SHVCビットストリームに適用されてもよい。加えて、ビットストリーム上の適合制約は、MV−HEVCビットストリームに適用されてもよい。
一構成において、スライスセグメントヘッダーシンタックス要素pic_output_flagが存在する場合、その値が、アクセスユニット(AU)における符号化画像のすべてのスライスセグメントヘッダーにおいて同じであることが必要であってもよい。他の構成において、スライスセグメントヘッダーシンタックス要素pic_output_flagが存在する場合、その値が、符号化画像が同じNALユニットタイプである場合にアクセスユニット(AU)における符号化画像のすべてのスライスセグメントヘッダーにおいて同じであってもよい。
一構成において、nuh_layer_idの値が対象レイヤのnuh_layer_idに等しいスライスセグメントに対するスライスセグメントヘッダーシンタックス要素pic_output_flagが存在する場合、その値が、アクセスユニット(AU)におけるそのような符号化画像のすべてのスライスセグメントヘッダーにおいて同じであってもよい。他の構成において、nuh_layer_idの値が対象レイヤのnuh_layer_idに等しくないスライスセグメントに対するスライスセグメントヘッダーシンタックス要素pic_output_flagが存在する場合、その値が、アクセスユニット(AU)におけるそのような符号化画像のすべてのスライスセグメントヘッダーにおいて0であってもよい。
一構成において、対象レイヤは、JCTVC−L1003、JCTVC−M1008、またはJCT3V−D1004に規定されるとおり、レイヤセット、対象レイヤセット、または出力レイヤセットに属するレイヤであってもよい。他の構成において、対象レイヤは復号化されるべきレイヤであってもよい。さらに他の構成において、対象レイヤは、復号化および出力されるべきレイヤであってもよい(表示されるかそうでなければ出力される)。
いくつかの構成において、スライスセグメントヘッダーシンタックス要素no_output_of_prior_pics_flagが存在する場合、その値が、アクセスユニット(AU)における符号化画像のすべてのスライスセグメントヘッダーにおいて同じであってもよい。他の構成において、スライスセグメントヘッダーシンタックス要素no_output_of_prior_pics_flagが存在する場合、その値が、符号化画像が同じNALユニットタイプである場合にアクセスユニット(AU)における符号化画像のすべてのスライスセグメントヘッダーにおいて同じであってもよい。一構成において、nuh_layer_idの値が対象レイヤのnuh_layer_idに等しいスライスセグメントに対するスライスセグメントヘッダーシンタックス要素no_output_of_prior_pics_flagが存在する場合、その値が、アクセスユニット(AU)におけるそのような符号化画像のすべてのスライスセグメントヘッダーにおいて同じであってもよい。
ある構成において、上記シンタックス要素pic_output_flagおよび/またはno_output_of_prior_pics_flagは、nuh_layer_id > 0の時に信号化されなくてもよい。この場合、nuh_layer_id > 0のレイヤの値は、0に等しいnuh_layer_idのそれらの信号化された値に等しいと推定される。
いくつかの構成においては、AuOutputFlagおよびAuNoRaslOutputFlag等の追加のフラグを用いてもよい。上記フラグAuOutputFlagおよびAuNoRaslOutputFlagは多数のアプローチに従って得られてもよい。一アプローチまたは構成において、2つのフラグAuOutputFlagおよびAuNoRaslOutputFlagが生成され、DPBの動作に使用されてもよい。AUにおけるすべての画像に対してPicOutputFlagが1に等しい場合、AuOutputFlagは1に等しく設定されてもよい。そうではない場合、AuOutputFlagは0に等しく設定されてもよい。
他のアプローチにおいて、AUにおける少なくとも一つの画像に対してPicOutputFlagが1に等しい場合、AuOutputFlagは1に等しく設定されてもよい。そうではない場合、AuOutputFlagは0に等しく設定されてもよい。したがって、この場合、AUにおけるすべての画像に対してPicOutputFlagが0に等しい場合、AuOutputFlagは0に等しく設定されてもよい。
更に他のアプローチにおいて、AUにおけるすべての対象出力レイヤに属する画像に対するPicOutputFlagが1に等しい場合、AuOutputFlagは1に等しく設定されてもよい。そうではない場合、AuOutputFlagは0に等しく設定されてもよい。
更に他のアプローチにおいて、AUにおける少なくとも一つの対象出力レイヤに属する画像に対してPicOutputFlagが1に等しい場合、AuOutputFlagは1に等しく設定されてもよい。そうではない場合、AuOutputFlagは0に等しく設定されてもよい。
一アプローチにおいて、AUにおけるすべての画像に対してNoRaslOutputFlagが1に等しい場合、AuNoRaslOutputFlagは1に等しく設定されてもよい。そうではない場合、AuNoRaslOutputFlagは0に等しく設定されてもよい。
他のアプローチにおいて、AUにおける少なくとも一つの画像に対してNoRaslOutputFlagが1に等しい場合、AuNoRaslOutputFlagは1に等しく設定されてもよい。そうではない場合、AuNoRaslOutputFlagは0に等しく設定されてもよい。したがって、この場合、AUにおけるすべての画像に対してNoRaslOutputFlagが0に等しい場合、AuNoRaslOutputFlagは0に等しく設定されてもよい。
更に他のアプローチにおいて、AUにおけるすべての対象出力レイヤに属する画像に対するNoRaslOutputFlagが1に等しい場合、AuNoRaslOutputFlagは1に等しく設定されてもよい。そうではない場合、AuNoRaslOutputFlagは0に等しく設定されてもよい。
更に他のアプローチにおいて、AUにおける少なくとも一つの対象出力レイヤに属する画像に対してNoRaslOutputFlagが1に等しい場合、AuNoRaslOutputFlagは1に等しく設定されてもよい。そうではない場合、AuNoRaslOutputFlagは0に等しく設定されてもよい。
上述のアプローチおよび構成のいくつかにおいて、PicOutputFlagの代わりにAuOutputFlagを使ってDPBが動作してもよい。加えて、NoRaslOutputFlagの代わりにAuNoRaslOutputFlagを使ってDPBが動作してもよい。
本発明のシステムおよび方法において、AuOutputFlagやAuNoRaslOutputFlag等のAU出力フラグを使用する例を、下記リスト1Aおよびリスト2Aに示す。また、下記リスト1、リスト1A、リスト2、およびリスト2Aに記載の通り、AU出力フラグAuNoOutputOfPriorPicsFlagがDPBの動作用に生成および使用されてもよい。
本発明のシステムおよび方法は、規格の変更によって実施されてもよい。下記リスト1は、本発明のシステムおよび方法に適合するように変更されるJCTVC−L1003のセクションを示す。
リスト1
リスト1
上記のリスト1において、PSBは画像保存バッファ(picture storage buffer)を指す。DPBフルネスは、復号化画像バッファ(DPB)116のフルネスを記す変数を指す。
下記のリスト1Aは、本発明のシステムおよび方法を可能にするためのリスト1のセクションC.3.2へのもう一つのアプローチを提供する。いくつかの構成では、リスト1Aは、JCTVC-L1003のセクションC.3.2に対する変更を表すだけである。リスト1Aは、上記のように定義したフラグAuNoOutputOfPriorPicsFlagとAuNoRaslOutputFlagを用いてもよい。
リスト1A
リスト1A
下記のリスト2は、本発明のシステムおよび方法を包含するために変更されるJCTVC-L1008のセクションを提供する。
リスト2
リスト2
下記のリスト2Aは、本発明のシステムおよび方法を可能にするためのリスト2のセクションF.13.5.2.2へのもう一つのアプローチを提供する。いくつかの構成では、リスト2Aは、JCTVC-L1008のセクションF.13.5.2.2に対する変更を表すだけである。リスト2Aは、上記のように定義したフラグAuNoOutputOfPriorPicsFlagとAuNoRaslOutputFlagを用いてもよい。
リスト2A
リスト2A
或る構成において、上記のリスト1、リスト1A、リスト2、およびリスト2Aで提案されているテキストにおける"current picture"は、全て、"current decoded picture"に置き換えてもよい。
下記のリスト3は、本発明のシステムおよび方法を包含するための復号化を行う付加的なセクションを提供する。リスト3は、本発明のシステムおよび方法を包含するために変更されるJCTVC-L1003(つまり、HEVC規格バージョン34)のセクションを提供する。
リスト3
リスト3
さまざまな工程が画像に基づく、またはアクセスユニットに基づく画像に基づくハイブリッド復号化画像バッファ(DPB)116を定義するのに、多くの異なる変形例が可能である。
図66は、復号装置2404の一構成を示すブロック図である。復号装置2404は電子装置2402に含まれていてもよい。例えば、復号装置2404は、高効率映像符号化(HEVC)復号装置であってもよい。復号装置2404および/または復号装置2404に含まれているものとして示された一または複数の要素は、ハードウェアで実施してもよいし、ソフトウェアで実施してもよいし、それらの組み合わせで実施してもよい。復号装置2404は、復号用のビットストリーム2414(例えば、ビットストリーム2414に含まれる一または複数の符号化画像)を受け取ってもよい。いくつかの構成では、受け取られたビットストリーム2414は、受け取られたオーバーヘッド情報(例えば、受け取られたスライスヘッダー)、受け取られたPPS、受け取られたバッファ記述情報などを含んでもよい。ビットストリーム2414に含まれた符号化画像は、一または複数の符号化参照画像および/または一または複数の他の符号化画像を含んでいてもよい。
(ビットストリーム2414に含まれる上記一または複数の符号化画像内の)受け取られたシンボルは、エントロピー復号モジュール454によってエントロピー復号化されて動き情報信号456と量子化、縮小化、および/または変形係数458とを生成することができる。
動き情報信号456は、動き補償モジュール460におけるフレームメモリ464からの参照フレーム信号484の一部と結び付いてもよく、それによってフレーム間予測信号468を生成してもよい。量子化、縮小化、および/または変形係数458は、逆モジュール462によって逆に量子化、縮小化、逆に変形し、それによって復号化残余信号470を生成してもよい。復号化残余信号470を予測信号478に加えて、復号信号472を生成してもよい。予測信号478は、上記フレーム間予測信号468、またはフレーム内予測モジュール474によって生成されるフレーム内予測信号476のいずれかから選ばれる信号であってもよい。いくつかの構成では、この信号選択はビットストリーム2414に基づいて(例えば、制御されて)いる。
フレーム内予測信号476は、結合信号472(例えば、現在のフレーム内の)から前回復号化された情報から予測してもよい。結合信号472は、脱ブロッキングフィルタ480でフィルタしてもよい。その結果生成されるフィルタ後信号482をフレームメモリ464に書き込んでもよい。その結果生成されるフィルタ後信号482は復号化画像を含んでいてもよい。
フレームメモリ464は、以下に説明する復号化画像バッファ(DPB)2416を含んでいてもよい。復号化画像バッファ(DPB)2416は、ハイブリッド復号化画像バッファ(DPB)116動作が可能であってもよい。復号化画像バッファ(DPB)2416は、短期または長期参照フレームとして維持することができる一または複数の復号化画像を含んでいてもよい。フレームメモリ464は、復号化された画像に対応するオーバーヘッド情報を含んでいてもよい。例えば、フレームメモリ464は、スライスヘッダー、映像パラメータセット(VPS)情報、シーケンスパラメータセット(SPS)情報、画像パラメータセット(PPS)情報、サイクルパラメータ、バッファ記述情報等を含んでもよい。これらの情報の一または複数を、符号化装置(例えば、符号化装置2108、オーバーヘッドシグナリングモジュール2112)から信号化してもよい。
図67Aは、映像符号化のために、エンハンスメントレイヤとベースレイヤを用い、当該エンハンスメントレイヤとベースレイヤに異なる復号化画像バッファ(DPB)51a−bと異なるハイブリッド復号化画像バッファ(DPB)動作モジュール520a−bとを用いる様子を示すブロック図である。第一電子装置502aと第二電子装置502bを示す。第一電子装置502aは、エンハンスメントレイヤ符号化装置526とベースレイヤ符号化装置528とを含む映像符号化装置508を備えていてもよい。第一電子装置502a内に含まれる要素のそれぞれ(つまり、エンハンスメントレイヤ符号化装置526とベースレイヤ符号化装置528)は、ハードウェアで実施しても、ソフトウェアで実施しても、あるいはその両者の組み合わせで実施してもよい。第一電子装置502aは、入力画像2506を取得してもよい。いくつかの実施形態では、入力画像2506は、画像センサを用いたり、メモリから読み出したり、他の電子装置502から受け取ったりして、第一電子装置502a上に記録してもよい。
エンハンスメントレイヤ符号化装置526は、入力画像2506を符号化して符号化データを生成してもよい。例えば、エンハンスメントレイヤ符号化装置526は、一連の入力画像2506(例えば、映像)を符号化してもよい。符号化されたデータは、符号化エンハンスメントレイヤ映像ビットストリーム530に含まれてもよい。エンハンスメントレイヤ符号化装置526は、入力画像2506に基づいて、オーバーヘッド信号を生成してもよい。
エンハンスメントレイヤ映像復号装置534は、復号化画像バッファ(DPB)516aとハイブリッド復号化画像バッファ(DPB)動作モジュール520aを含んでもよい。同様に、ベースレイヤ復号装置536は、復号化画像バッファ(DPB)516bとハイブリッド復号化画像バッファ(DPB)動作モジュール520bを含んでもよい。
ベースレイヤ符号化装置528も、入力画像2506を符号化してもよい。一つの構成では、エンハンスメントレイヤ符号化装置526に用いられたのと同じ入力画像2506が、ベースレイヤ符号化装置528に用いられてもよい。他の構成では、エンハンスメントレイヤ符号化装置526に用いられたのとは異なる(しかし類似した)入力画像2506が、ベースレイヤ符号化装置528に用いられてもよい。例えば、信号‐ノイズ比(SNR)の拡張性(品質拡張性とも呼ぶ)のために、同じ入力画像2506が、エンハンスメントレイヤ符号化装置526とベースレイヤ符号化装置528の両方に用いられてもよい。他の例として、空間拡張性のため、ベースレイヤ符号化装置528は、間引きした画像を用いてもよい。さらに他の例では、マルチビュー拡張性のため、ベースレイヤ符号化装置528は、異なるビュー画像を用いてもよい。ベースレイヤ符号化装置528は、符号化ベースレイヤ映像ビットストリーム532に含まれる符号化データを生成してもよい。
符号化エンハンスメントレイヤ映像ビットストリーム530と符号化ベースレイヤ映像ビットストリーム532はそれぞれ、入力画像2506に基づく符号化データを含んでもよい。一例では、符号化エンハンスメントレイヤ映像ビットストリーム530と符号化ベースレイヤ映像ビットストリーム532は、符号化画像データを含んでもよい。いくつかの構成では、符号化エンハンスメントレイヤ映像ビットストリーム530および/または符号化ベースレイヤ映像ビットストリーム532は、シーケンスパラメータセット(SPS)情報、画像パラメータセット(PPS)情報、映像パラメータセット(VPS)情報、スライスヘッダー情報等のオーバーヘッドデータを含んでもよい。
符号化エンハンスメントレイヤ映像ビットストリーム530が第二電子装置502bに供給されてもよい。同様に、符号化ベースレイヤ映像ビットストリーム532が第二電子装置502bに供給されてもよい。第二電子装置502bは映像復号装置2504を備えていてもよい。映像復号装置2504は、エンハンスメントレイヤ復号装置534とベースレイヤ復号装置536とを含んでいてもよい。一つの構成では、符号化ベースレイヤ映像ビットストリーム530はベースレイヤ復号装置536に復号化され、一方、符号化エンハンスメントレイヤ映像ビットストリーム530はエンハンスメントレイヤ復号装置536に復号化される。
一例では、符号化エンハンスメントレイヤ映像ビットストリーム530と符号化ベースレイヤ映像ビットストリーム532は、有線または無線で第二電子装置502bに送信されてもよい。いくつかの場合、この送信は、インターネット、ローカルエリア・ネットワーク(LAN)、または機器間の通信を行う他の種類のネットワークなどのネットワークを介して行われる。なお、いくつかの構成では、符号化装置(つまり、エンハンスメントレイヤ符号化装置526とベースレイヤ符号化装置528)と復号装置2504(例えば、ベースレイヤ復号装置536とエンハンスメントレイヤ復号装置534)は、同じ電子装置502で実施されてもよい(つまり、第一電子装置502aと第二電子装置502bは、一つの電子装置502の一部)。符号化装置と復号装置が同じ電子装置502で実施される例では、符号化エンハンスメントレイヤ映像ビットストリーム530と符号化ベースレイヤ映像ビットストリーム532は、映像復号装置2504にさまざまな方法で供給しうる。例えば、符号化エンハンスメントレイヤ映像ビットストリーム530と符号化ベースレイヤ映像ビットストリーム532は、映像復号装置2504に母線を介して供給されてもよいし、メモリに保存され、映像復号装置2504に読み出されてもよい。
映像復号装置2504は、符号化エンハンスメントレイヤ映像ビットストリーム530と符号化ベースレイヤ映像ビットストリーム532に基づいて、一または複数の復号化画像を生成してもよい。復号化画像2118(エンハンスメントレイヤ復号化画像538とベースレイヤ復号化画像540を含んでいてもよい)は、表示、再生、メモリへの保存、および/または他の機器への送信などをされてもよい。
一例では、復号化画像2118は、他の機器へ送信されるか、第一電子装置502aへ戻されてもよい。復号化画像2118はまた、第二電子装置502bに保存されるか、あるいはその他のかたちで保持されてもよい。他の例では、第二電子装置502bは、復号化画像2118を表示してもよい。他の構成では、復号化画像2118は入力画像2506の諸要素を含んでもよい。当該諸要素は、ビットストリーム2114に加えられた符号化あるいは他の操作に応じて異なる性質を持つ。いくつかの構成では、復号化画像2118は、入力画像2506とは異なる解像度、フォーマット、仕様または他の性質を持つ画像ストリームに含まれてもよい。
図67Bは、共有復号化画像バッファ(DPB)516cと共有ハイブリッド復号化画像バッファ(DPB)動作モジュール520cを、ベースレイヤとエンハンスメントレイヤ双方に用いることを示すブロック図である。図67Bは、エンハンスメントレイヤ映像復号装置534とベースレイヤ復号装置536が復号化画像バッファ(DPB)516cとハイブリッド復号化画像バッファ(DPB)動作モジュール520cを共有すること以外は、図67Aと同じ要素を含む。
図68は、ハイブリッド復号化画像バッファ(DPB)116動作を示すタイミング図である。図68のハイブリッド復号化画像バッファ(DPB)116動作は、削除、保存、参照マーキングが画像に基づいて行われ、出力、出力マーキング、追加出力がアクセスユニット(AU)ベースで行われる、好ましい変形例の諸工程を示す。理想的な復号化画像バッファ(DPB)116と仮想参照復号装置(HRD)は、示されたさまざまな工程(例えば、削除621a‐b、出力623、保存625a‐c、マーキング627a‐c、629および追加出力631)がすべて同時に行われるように動作する。これらの工程のシーケンスとタイミングオフセットは、個々の工程間に、説明のために描いたものである。復号装置間の出力タイミングの一致(output timing decoder conformance)のため、画像出力のタイミング(第一ビットの送出時間に対するタイミング)は、仮想参照復号装置(HRD)と試験用復号装置(DUT)の両方で、定められた遅れに到達するまでは同じである。したがって、図示されたタイミングオフセットは、HRDに対する定められた遅れを導入するDUTに起こり得る。
第一エンハンスメントレイヤ(EL1)2642aの復号化画像バッファ(DPB)116、第二エンハンスメントレイヤ(EL2)2642bの復号化画像バッファ(DPB)116、ベースレイヤ(BL)2644の復号化画像バッファ(DPB)116を図示する。符号化画像バッファ(CPB)削除時間2646を図示する。符号化画像バッファ(CPB)削除時間2646の経過後、画像に基づく削除(出力なし)621aが第二エンハンスメントレイヤ(EL2)2642bの復号化画像バッファ(DPB)116によって行われ、画像に基づく削除(出力なし)621bがベースレイヤ(BL)2644の復号化画像バッファ(DPB)116によって行われてもよい。タイミングオフセット後、アクセスユニット(AU)に基づく画像出力(バンピング(bumping))623が、ベースレイヤ(BL)2644の復号化画像バッファ(DPB)116、第一エンハンスメントレイヤ(EL1)2642aの復号化画像バッファ(DPB)116、および第二エンハンスメントレイヤ(EL2)2642bの復号化画像バッファ(DPB)116によって行われてもよい。
別のタイミングオフセット後の、現在の復号化画像関連プロセス613を図示する。画像に基づく保存工程625a‐cは、ベースレイヤ(BL)2644の復号化画像バッファ(DPB)116、第一エンハンスメントレイヤ(EL1)2642aの復号化画像バッファ(DPB)116、および第二エンハンスメントレイヤ(EL2)2642bの復号化画像バッファ(DPB)116によって行われてもよい。ベースレイヤ(BL)2644、第一エンハンスメントレイヤ(EL1)2642a、および第二エンハンスメントレイヤ(EL2)2642bの画像それぞれの復号化後、保存工程を行ってもよい。保存工程625はさらに細分してもよい。保存工程625において、復号化された画像は、空の保存バッファ内の復号化画像バッファ(DPB)116内に保存され、復号化画像バッファ(DPB)フルネスが一だけ増やされる。また、画像が復号化画像バッファ(DPB)116から(出力なしに)削除されるときは、復号化画像バッファ(DPB)フルネスが一だけ減らされる。同様に、画像が復号化画像バッファ(DPB)116からはじき出される(bumped)とき(バンピング(bumping)中あるいは追加バンピング中)、復号化画像バッファ(DPB)フルネスが一だけ減らされる。
復号化画像バッファ(DPB)116は、異なる特徴を有する複数の復号化画像用に、別々に特定され管理されている複数の画像バッファを有してもよい。例えば、復号化画像バッファ(DPB)116は、異なる解像度、異なる色深度(bit-depth)、および/または異なる色度を有する複数の復号化画像用に、別々に特定され管理されている複数の画像バッファを有してもよい。
復号化画像は、代わりに、復号化画像バッファ(DPB)116内の複数の画像保存バッファの共通プールに保存されてもよい。例えば、二つの付加下位ケースを用いて、バンピング/削除プロセスおよびレベル定義に影響する復号化画像バッファ(DPB)116のサイズ制限を決定してもよい。バイト基準の復号化画像バッファ(DPB)116の制限では、解像度および/または色深度に基づいてサイズを考慮して復号化画像を保存してもよい。復号化画像バッファ(DPB)116のサイズ制限は、復号化画像それぞれの解像度と色深度を考慮するバイト制限と定義できる。画像に基づく復号化画像バッファ(DPB)116の制限では、復号化画像を保存してもよい(そして、画像バッファスロットを一つ占めると考えられる)。その場合、復号化画像バッファ(DPB)116のサイズ制限は、復号化画像それぞれの解像度と色深度を考慮することなく、画像スロット数の制限と定義できる。
一つの構成では、復号化画像バッファ(DPB)フルネスはレイヤごとに監視してもよい。例えば、レイヤごとに、復号化画像バッファ(DPB)116のサイズ制限を信号化し、バンピング(bumping)を行ってもよい。それぞれのレイヤが独自の画像保存バッファを有している場合、変数DPBFullness[nuh_layer_id]を用いて、それぞれのレイヤの復号化画像バッファ(DPB)フルネスを監視してもよい。nuh_layer_idと等しいレイヤID値を有するレイヤから画像が削除されると、変数DPBFullness[nuh_layer_id]がDPBFullness[nuh_layer_id]-1に設定されてもよい(すなわち、DPBFullness[nuh_layer_id]が一だけ減らされてもよい)。この場合、当該画像は画像保存バッファPSB[nuh_layer_id]から削除された。
同様に、nuh_layer_idと等しいレイヤID値を有する現在復号化された画像が復号化画像バッファ(DPB)116に保存されると、変数DPBFullness[nuh_layer_id]はDPBFullness[nuh_layer_id]+1に設定される(すなわち、DPBFullness[nuh_layer_id]が一だけ増やされる)。この場合、当該画像は画像保存バッファPSB[nuh_layer_id]に保存された。
復号化画像バッファ(DPB)フルネスはまた、出力レイヤセットごとに監視することもできる。その場合、出力レイヤセットごとに特定された制限に基づいて、復号化画像バッファ(DPB)116のサイズ制限を信号化し、バンピング(bumping)を行ってもよい。DPBフルネス値は、試験用動作点(operation point under test)と関連付けられた出力レイヤセットごとに監視することができる。こうして、画像が上記出力レイヤセットに属するレイヤから削除されると、復号化画像バッファ(DPB)フルネスの値が、DPBFullness=DPBFullness-1と、一だけ減らされてもよい。同様に、現在復号化された画像が復号化画像バッファ(DPB)116に保存されると、復号化画像バッファ(DPB)フルネスが、DPBFullness=DPBFullness+1と、一だけ増やされてもよい。
現在の復号化画像関連プロセス613のうち、マーキングプロセス611を図示する。マーキングプロセス611は、参照マーキング627a‐cと出力マーキング629を含む。保存工程625a‐cからのタイミングオフセット後、画像に基づく参照マーキング工程627a‐cが、ベースレイヤ(BL)2644の復号化画像バッファ(DPB)116、第一エンハンスメントレイヤ(EL1)2642aの復号化画像バッファ(DPB)116、および第二エンハンスメントレイヤ(EL2)2642bの復号化画像バッファ(DPB)116によって行われてもよい。別のタイミングオフセット後、アクセスユニット(AU)に基づく出力マーキング工程629が、ベースレイヤ(BL)2644の復号化画像バッファ(DPB)116、第一エンハンスメントレイヤ(EL1)2642aの復号化画像バッファ(DPB)116、および第二エンハンスメントレイヤ(EL2)2642bの復号化画像バッファ(DPB)116によって行われてもよい。現在の復号化画像関連プロセス613が終了すると、アクセスユニット(AU)に基づく画像出力(追加バンピング)工程631が、ベースレイヤ(BL)2644の復号化画像バッファ(DPB)116、第一エンハンスメントレイヤ(EL1)2642aの復号化画像バッファ(DPB)116、および第二エンハンスメントレイヤ(EL2)2642bの復号化画像バッファ(DPB)116によって行われてもよい。
図69は、第二エンハンスメントレイヤ(EL2)942bが、ベースレイヤ(BL)944および第一エンハンスメントレイヤ(EL1)942aより低い画像率を有する場合の、符号化画像およびアクセスユニット(AU)用のレイヤのネットワーク抽象化レイヤ(NAL)ユニットのための構造およびタイミングを示すブロック図である。EL1符号化画像953aの各NALユニットを、第一エンハンスメントレイヤ(EL1)942aに沿って図示する。EL2符号化画像953bの各NALユニットを、第二エンハンスメントレイヤ(EL2)942bに沿って図示する。ベースレイヤ符号化画像953cの各NALユニットを、ベースレイヤ(BL)944に沿って図示する。
時間t1において、EL1符号化画像953aの各NALユニット、EL2符号化画像953bの各NALユニット、ベースレイヤ符号化画像953cの各NALユニットは、アクセスユニット(AU)955aの一部である。時間t2において、EL1符号化画像953aの各NALユニットとベースレイヤ符号化画像953cの各NALユニットは、アクセスユニット(AU)955bの一部である。時間t3において、EL1符号化画像953aの各NALユニット、EL2符号化画像953bの各NALユニット、ベースレイヤ符号化画像953cの各NALユニットは、アクセスユニット(AU)955cの一部である。時間t4において、EL1符号化画像953aの各NALユニットとベースレイヤ符号化画像953cの各NALユニットは、アクセスユニット(AU)955dの一部である。
図70は、ベースレイヤ(BL)1044が、第一エンハンスメントレイヤ(EL1)1042aおよび第二エンハンスメントレイヤ(EL2)1042bより低い画像率を有する場合の、符号化画像およびアクセスユニット(AU)用のレイヤのネットワーク抽象化レイヤ(NAL)ユニットのための構造およびタイミングを示すブロック図である。EL1符号化画像1053aの各NALユニットを、第一エンハンスメントレイヤ(EL1)1042aに沿って図示する。EL2符号化画像1053bの各NALユニットを、第二エンハンスメントレイヤ(EL2)1042bに沿って図示する。ベースレイヤ符号化画像1053cの各NALユニットを、ベースレイヤ(BL)1044に沿って図示する。
時間t1において、EL1符号化画像1053aの各NALユニット、EL2符号化画像1053bの各NALユニット、ベースレイヤ符号化画像1053cの各NALユニットは、アクセスユニット(AU)1055aの一部である。時間t2において、EL1符号化画像1053aの各NALユニットとEL2符号化画像1053bの各NALユニットは、アクセスユニット(AU)1055bの一部である。時間t3において、EL1符号化画像1053aの各NALユニット、EL2符号化画像1053bの各NALユニット、ベースレイヤ符号化画像1053cの各NALユニットは、アクセスユニット(AU)1055cの一部である。時間t4において、EL1符号化画像1053aの各NALユニットとEL1符号化画像1053bの各NALユニットは、アクセスユニット(AU)1055dの一部である。
「コンピュータで読み取り可能な媒体」という用語は、コンピュータまたはプロセッサでアクセス可能なすべての入手可能な媒体を指す。本明細書での「コンピュータで読み取り可能な媒体」という用語は、非一時的で実体のあるコンピュータおよび/またはプロセッサで読み取り可能な媒体を示してもよい。コンピュータで読み取り可能な媒体またはプロセッサで読み取り可能な媒体の例として、RAM、ROM、EEPROM(登録商標)、CD‐ROMまたは他の光学ディスク記録装置、磁気ディスク記録装置または他の磁気記録装置、あるいは所望のプログラムコードを指示またはデータ構造のかたちで運搬または保存するのに使用でき、コンピュータまたはプロセッサでアクセス可能な他のすべての媒体を指す。本明細書において、ディスクは、コンパクトディスク(CD)、レーザーディスク(登録商標)、光学ディスク、デジタル多用途ディスク(DVD)、フロッピーディスク、ブルーレイ(c)ディスクが挙げられるが、これらに限定されるものではない。ディスク(disk)は通常、データを磁気的に再生するものであり、ディスク(disc)はレーザを受けてデータを光学的に再生するものである。
なお、本明細書に記載された方法の一つまたは複数は、ハードウェアを用いて実施および/または実行してもよい。例えば、本明細書に記載された方法またはアプローチの一つまたは複数は、チップセット、ASIC、LSI、または集積回路等を用いて実施および/または実現してもよい。
本明細書で開示された方法のそれぞれは、所望の方法を実現するための一または複数の工程または作用を含む。当該方法の複数の工程および/または複数の作用は、本願クレームの範囲から外れない限りにおいて、相互の交換および/または組み合わせて一つの工程にすることを行ってもよい。つまり、記載中の方法の適切な動作のために工程または作用を特定の順序にする必要があるのでない限り、特定の工程および/または作用の順序および/または仕様は、本願クレームの範囲から外れない限りにおいて、修正してもよい。
なお、本願クレームは、上記で説明した構成および要素そのものだけに限定されるものではない。本願クレームの範囲から外れない限りにおいて、本明細書に記載したシステム、方法、および装置の配置、動作、および詳細に対して、さまざまな修正、変化、変形を加えてよい。