メッセージを送信するための電子デバイスが記載される。電子デバイスは、プロセッサと、プロセッサと電子通信を行うメモリに記憶された命令とを含む。電子デバイスは、符号化ピクチャバッファ(CPB)がサブピクチャ・レベルの動作をサポートするときに、共通復号ユニットCPB除去遅延パラメータをピクチャタイミング付加拡張情報(SEI)メッセージに含めるべきかどうかを確定する。電子デバイスは、また、共通復号ユニットCPB除去遅延パラメータをピクチャタイミングSEIメッセージ(あるいは、いくつかの他のSEIメッセージ、または、いくつかの他のパラメータセット、例えば、ピクチャパラメータセット、シーケンスパラメータセット、ビデオパラメータセットもしくは適合パラメータセット)に含めるべきときには、共通復号ユニットCPB除去遅延パラメータを生成し、共通復号ユニットCPB除去遅延パラメータは、CPBからのアクセスユニットにおけるすべての復号ユニットに適用可能である。電子デバイスは、また、共通復号ユニットCPB除去遅延パラメータをピクチャタイミングSEIメッセージに含めるべきでないときには、アクセスユニットにおける復号ユニットごとに個別の復号ユニットCPB除去遅延パラメータを生成する。電子デバイスは、また、共通復号ユニットCPB除去遅延パラメータか、または復号ユニットCPB除去遅延パラメータをもつピクチャタイミングSEIメッセージを送信する。
共通復号ユニットCPB除去遅延パラメータは、直前の復号ユニットのCPBからの除去後に、ピクチャタイミングSEIメッセージと関連付けられたアクセスユニットにおける現在の復号ユニットをCPBから除去する前に、待機すべきサブピクチャ・クロックティックの量を指定する。
そのうえ、復号ユニットがアクセスユニットにおける第1の復号ユニットであるときに、共通復号ユニットCPB除去遅延パラメータは、先行アクセスユニットにおいて最新のバッファリング期間SEIメッセージと関連付けられたアクセスユニットにおける最後の復号ユニットのCPBからの除去後に、ピクチャタイミングSEIメッセージと関連付けられたアクセスユニットにおける第1の復号ユニットをCPBから除去する前に、待機すべきサブピクチャ・クロックティックの量を指定する。
対照的に、復号ユニットがアクセスユニットにおける第1ではない復号ユニットであるときには、共通復号ユニットCPB除去遅延パラメータは、ピクチャタイミングSEIメッセージと関連付けられたアクセスユニットにおける先行復号ユニットのCPBからの除去後に、ピクチャタイミングSEIメッセージと関連付けられたアクセスユニットにおける現在の復号ユニットをCPBから除去する前に、待機すべきサブピクチャ・クロックティックの量を指定する。
復号ユニットCPB除去遅延パラメータは、最後の復号ユニットのCPBからの除去後に、ピクチャタイミングSEIメッセージと関連付けられたアクセスユニットにおけるi番目の復号ユニットをCPBから除去する前に、待機すべきサブピクチャ・クロックティックの量を指定する。
電子デバイスは、modulo 2(cpb_removal_delay_length_minus1+1)カウンタの剰余に従って、復号ユニットCPB除去遅延パラメータを算出し、ここでcpb_removal_delay_length_minus1+1は、共通復号ユニットCPB除去遅延パラメータの長さである。
電子デバイスは、また、CPBがアクセスユニット・レベルの動作をサポートするときには、先行アクセスユニットにおいて最新のバッファリング期間SEIメッセージと関連付けられたアクセスユニットのCPBからの除去後に、ピクチャタイミングSEIメッセージと関連付けられたアクセスユニット・データをCPBから除去する前に、いくつのクロックティックを待機すべきかを指定するCPB除去遅延パラメータを含んだピクチャタイミングSEIメッセージを生成する。
電子デバイスは、また、CPBがサブピクチャ・レベルまたはアクセスユニット・レベルの動作をサポートするかどうかを確定する。これは、符号化ピクチャバッファ(CPB)が、ピクチャタイミング・フラグの値に基づいてサブピクチャ・レベルの動作をサポートするパラメータを提供するかどうかを示す、ピクチャタイミング・フラグを確定するステップを含む。ピクチャタイミング・フラグは、ピクチャタイミングSEIメッセージに含められる。
共通復号ユニットCPB除去遅延パラメータを含めるべきかどうかを確定するステップは、共通復号ユニットCPB除去遅延パラメータをピクチャタイミングSEIメッセージに含めるべきときに、共通復号ユニットCPB除去遅延フラグを1に設定することを含む。このステップは、共通復号ユニットCPB除去遅延パラメータをピクチャタイミングSEIメッセージに含めるべきでないときに、共通復号ユニットCPB除去遅延フラグを0に設定することも含む。共通復号ユニットCPB除去遅延フラグは、ピクチャタイミングSEIメッセージに含められる。
電子デバイスは、また、CPBがサブピクチャ・レベルの動作をサポートするときに、アクセスユニットにおける復号ユニットごとに、ネットワーク抽象化層(NAL:network abstraction layer)ユニットの量から1を差し引いた値を示す、個別のNALユニット関連パラメータを生成する。代わりに、または加えて、電子デバイスは、アクセスユニットにおける各復号ユニットに共通のNALユニットの量から1を差し引いた値を示す、共通NALパラメータを生成する。
ビットストリームをバッファリングするための電子デバイスも記載される。電子デバイスは、プロセッサと、プロセッサと電子通信を行うメモリに記憶された命令とを含む。電子デバイスは、CPBがアクセスユニットに関してサブピクチャ・レベルでパラメータをシグナリングすることを確定する。電子デバイスは、受信したピクチャタイミング付加拡張情報(SEI)メッセージが共通復号ユニット符号化ピクチャバッファ(CPB)除去遅延フラグを備えるときに、アクセスユニットにおけるすべての復号ユニットに適用可能な、共通復号ユニットCPB除去遅延パラメータを確定する。電子デバイスは、また、ピクチャタイミングSEIメッセージが共通復号ユニットCPB除去遅延フラグを備えないときには、アクセスユニットにおける復号ユニットごとに個別の復号ユニットCPB除去遅延パラメータを確定する。電子デバイスは、また、共通復号ユニットCPB除去遅延パラメータか、または個別の復号ユニットCPB除去遅延パラメータを用いて、CPBから復号ユニットを除去する。電子デバイスは、また、アクセスユニットにおける復号ユニットを復号する。
一構成において、電子デバイスは、ピクチャタイミング・フラグをピクチャタイミングSEIメッセージ中に設定することを確定する。電子デバイスは、また、
に従って、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_removal_delay*tc=du_cpb_removal_delay[num_decoding_units_minus1]*tc,subに従って、CPB除去遅延パラメータcpb_removal_delay、およびdu_cpb_removal_delay[num_decoding_units_minus1]を設定し、ここでdu_cpb_removal_delay[num_decoding_units_minus1]は、num_decoding_units_minus1番目の復号ユニットに関する復号ユニットCPB除去遅延パラメータであり、tcは、クロックティックであり、tc,subは、サブピクチャ・クロックティックであり、num_decoding_units_minus1は、アクセスユニットにおける復号ユニットの量から1を差し引いた値である。
一構成において、電子デバイスは、ピクチャタイミング・フラグをピクチャタイミングSEIメッセージ中に設定することを確定する。電子デバイスは、また、数式:−1≦(cpb_removal_delay*tc−du_cpb_removal_delay[num_decoding_units_minus1]*tc,sub)≦1を満たすように、CPB除去遅延パラメータcpb_removal_delay、およびdu_cpb_removal_delay[num_decoding_units_minus1]を設定し、ここで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秒内に経過する時間ユニットの数である。
低遅延仮想参照デコーダ(HRD:hypothetical reference decoder)フラグ(例えば、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)))に従い、ここで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に関する除去時刻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の最終到着時刻である。
加えて、いくつかのケースでは、復号ユニットの除去時刻およびアクセスユニットの除去時刻を決定するのに上記の択一的な数式のどちらを用いるかをシグナリングするために、ビットストリームの一部においてフラグが送信される。1つのケースでは、フラグは、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:video usability information)でシグナリングされる。別のケースでは、フラグ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)がサブピクチャ・レベルの動作をサポートするときに、共通復号ユニットCPB除去遅延パラメータをピクチャタイミング付加拡張情報(SEI)メッセージに含めるべきかどうかを確定するステップを含む。方法は、共通復号ユニットCPB除去遅延パラメータをピクチャタイミングSEIメッセージに含めるべきときには、共通復号ユニットCPB除去遅延パラメータを生成するステップも含み、共通復号ユニットCPB除去遅延パラメータは、CPBからのアクセスユニットにおけるすべての復号単位に適用可能である。方法は、共通復号ユニットCPB除去遅延パラメータをピクチャタイミングSEIメッセージに含めるべきでないときには、アクセスユニットにおける復号ユニットごとに個別の復号ユニット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:High Efficiency Video Coding)仕様に適合するかどうかを確定するためにHRDが実装される。例として、HRDは、タイプIのビットストリームおよびタイプIIのビットストリームがHEVC仕様に適合するかどうかを確定するために用いられる。タイプIのビットストリームは、ビデオ符号化層(VCL:Video Coding Layer)ネットワークアクセス層(NAL:Network Access Layer)ユニットおよびフィラー・データNALユニットのみを含む。タイプIIのビットストリームは、追加的に他のNALユニットおよびシンタックス要素を含みうる。
ビデオ符号化に関する共同作業チーム(JCTVC:Joint Collaborative Team on Video Coding)の文書JCTVC−I0333は、サブピクチャ・ベースのHRDを含み、ピクチャタイミングSEIメッセージをサポートする。高効率ビデオ符号化(HEVC)委員会草案(JCTVC−I1003)にはこの機能性が取り入れられた。
本明細書に開示されるシステムおよび方法に従って修正されたシンタックスおよびセマンティクスの一例が次のように表(1)に示される。本明細書に開示されるシステムおよび方法による修正は太字で示される。
本明細書に開示されるシステムおよび方法によるバッファリング期間SEIメッセージのセマンティクスに関する例が次のように示される。特に、修正されたシンタックス要素のセマンティクスに関するさらなる詳細が次のように示される。NalHrdBpPresentFlagまたはVclHrdBpPresentFlagが1に等しいときには、バッファリング期間SEIメッセージをビットストリームにおける任意のアクセスユニットと関連付けることができ、バッファリング期間SEIメッセージを各瞬時復号リフレッシュ(IDR:Instantaneous Decoding Refresh)アクセスユニット、各クリーンランダムアクセス(CRA:Clean Random Access)アクセスユニット、およびリカバリポイントSEIメッセージに関連する各アクセスユニットと関連付けることもできる。いくつかの用途では、バッファリング期間SEIメッセージが頻繁に存在することが望ましい。バッファリング期間は、復号順にバッファリング期間SEIメッセージの2つのインスタンス間のアクセスユニットの集合として指定される。
seq_parameter_set_idは、シーケンスHRD属性を含むシーケンスパラメータセットを指定する。seq_parameter_set_idの値は、バッファリング期間SEIメッセージと関連付けられたプライマリ符号化ピクチャによって参照されるピクチャパラメータセットにおけるseq_parameter_set_idの値に等しい。seq_parameter_set_idの値は、両端値を含めて、0から31までの範囲内にある。
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に等しくはなく、90kHzクロック単位でCPBサイズと時間的に等価な、90000*(CpbSize[SchedSelIdx]/BitRate[SchedSelIdx])を超えることはない。
initial_cpb_removal_delay_offset[SchedSelIdx]は、符号化されたアクセスユニットのCPBへの初期配信時刻を指定するために、SchedSelIdx番目のCPBに対してcpb_removal_delayと組み合わせて用いられる。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に等しくはなく、90kHzクロック単位でCPBサイズと時間的に等価な、90000*(CpbSize[SchedSelIdx]/BitRate[SchedSelIdx])を超えることはない。
initial_du_cpb_removal_delay_offset[SchedSelIdx]は、復号ユニットのCPBへの初期配信時刻を指定するために、SchedSelIdx番目のCPBに対してcpb_removal_delayと組み合わせて用いられる。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:raw byte sequence payload)を記憶して、その後、ピクチャタイミングSEIメッセージの構文解析を行うことが、デコーダにとって必要なこともある。
ビットストリームにおけるピクチャタイミングSEIメッセージの存在は、次のように指定される。CpbDpbDelaysPresentFlagが1に等しければ、符号化ビデオシーケンスのすべてのアクセスユニットに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は、modulo 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)出力時刻を計算するために用いられる。これは、アクセスユニットにおける最後の復号ユニットのCPBからの除去後に、復号ピクチャがDPBから出力される前に、いくつのクロックティックを待機すべきかを指定する(JCTVC−I1003のC.2項を参照)。
DPBに関して、ピクチャが依然として「短期参照に使用中」または「長期参照に使用中」とマーク付けされているときには、その出力時刻にピクチャはDPBから除去されない。復号ピクチャでは、1つだけの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()の値によって定められるのと同じ順序である。no_output_of_prior_pics_flagが1に等しいか、または1に等しいと推測される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は、modulo 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は、modulo 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が0より大きい)i番目の復号ユニットは、復号順にアクセスユニットの前の復号ユニットにおける最後の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]は、modulo 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が0に等しいnをもつ復号ユニット(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が0より大きい)i番目の復号ユニットは、復号順にアクセスユニットの前の復号ユニットにおける最後の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]の値をシグナリングするときに、次の制約条件
に従うことであり、ここでdu_cpb_removal_delay[i]は、復号ユニットCPB除去遅延パラメータであり、tcは、クロックティックであり、tc,subは、サブピクチャ・クロックティックであり、num_decoding_units_minus1は、アクセスユニットにおける復号ユニットの量から1を差し引いた値であり、iは、インデックスである。いくつかの実施形態では、上記の制約条件を満たすために許容パラメータを追加することもできる。
アクセスユニット・レベルまたはサブピクチャ・レベルの両方での動作をサポートするために、次のようなビットストリーム制約条件が用いられてもよい。すなわち、変数Tdu(k)を
として定義するものとし、ここでdu_cpb_removal_delay_minus1k[i]およびnum_decoding_units_minus1kは、k番目のアクセスユニットのi番目の復号ユニットに関するパラメータであり(HRDを初期化したアクセスユニットではk=0、およびk<1ではTdu(k)=0)、du_cpb_removal_delay_minus1k[i]+1=du_cpb_removal_delayk[i]は、k番目のアクセスユニットのI番目の復号ユニットに関する復号ユニットCPB除去遅延パラメータであり、num_decoding_units_minus1kは、k番目のアクセスユニットにおける復号ユニットの数であり、tcは、クロックティックであり、tc,subは、サブピクチャ・クロックティックであり、iは、インデックスである。次に、ピクチャタイミング・フラグ(例えば、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は、アクセスユニット・レベルで動作し、各復号ユニットがアクセスユニットである。そうでない場合には、CPBは、サブピクチャ・レベルで動作し、各復号ユニットは、アクセスユニットの部分集合である。
SubPicCpbFlagが0に等しければ、変数CpbRemovalDelay(m)は、復号ユニットmであるアクセスユニットと関連付けられたピクチャタイミングSEIメッセージにおけるcpb_removal_delayの値に設定され、変数Tcは、Tcに設定される。そうでない場合には、変数CpbRemovalDelay(m)は、復号ユニットmを含むアクセスユニットと関連付けられたピクチャタイミングSEIメッセージにおける復号ユニットmに関するdu_cpb_removal_delay[i]の値に設定され、変数Tcは、Tc_subに設定される。
復号ユニットmが0に等しいnをもつ復号ユニット(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,n(m)+(tc_sub *Ceil((taf(m)−tr,n(m))/tc_sub))に従って設定され、ここでtr,n(m)は、最後の復号ユニットmの名目上の除去時刻であり、tc_subは、サブピクチャ・クロックティックであり、Ceil()は、天井関数であり、taf(m)は、最後の復号ユニットmの最終到着時刻であり、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仕様(JCTVC−I1003)の付属書Cが適合に関する仕様を含む)。いくつかのSEIメッセージ情報は、ビットストリーム適合性をチェックして、デコーダの出力タイミングを適合させるために用いられる。
バッファリング期間SEIメッセージは、バッファリング期間に関係するSEIメッセージである。ピクチャタイミングSEIメッセージは、CPB除去タイミングに関係するSEIメッセージである。これらのメッセージは、ビットストリーム到着タイミングおよび符号化ピクチャ除去タイミングを規定するシンタックスおよびセマンティクスを定義する。
符号化ピクチャバッファ(CPB)は、仮想参照デコーダ(HRD)において指定された復号順にアクセスユニットを含んだ先入れ先出しバッファである。アクセスユニットは、復号順に連続したネットワークアクセス層(NAL)ユニットの集合であり、1つだけの符号化ピクチャを含む。符号化ピクチャの符号化スライスNALユニットに加えて、アクセスユニットは、符号化ピクチャのスライスを含まない他のNALユニットも含む。アクセスユニットの復号は、常に復号ピクチャをもたらす。NALユニットは、従うべきデータ・タイプの指標と、必要に応じてエミュレーション防止バイトが点在したロー・バイト・シーケンス・ペイロード形式のそのデータとを含んだシンタックス構造である。
本明細書では、用語「共通」は、一般に1つ以上のものに適用可能なシンタックス要素または変数を指す。例えば、ピクチャタイミングSEIメッセージにおけるシンタックス要素のコンテキストでは、用語「共通」は、シンタックス要素(例えば、common_du_cpb_removal_delay)がピクチャタイミングSEIメッセージと関連付けられたアクセスユニットにおけるすべての復号ユニットに適用可能であることを意味する。加えて、データのユニットは、「n」および「m」で記載され、一般にそれぞれアクセスユニットおよび復号ユニットを指す。
次に、図面を参照して様々な構成が記載される。図面中、同様の参照番号は、機能的に類似した要素を示す。本明細書において図面に一般的に記載され、示されるシステムおよび方法は、多種多様に異なった実装で配置され、設計されてもよい。従って、図面に表現されるいくつかの構成の以下のさらに詳細な記載は、特許請求の範囲を限定するものではなく、システムおよび方法を単に代表するに過ぎない。
図1は、メッセージを送信し、ビットストリームをバッファリングにするためのシステムおよび方法が実装された1つ以上の電子デバイス102の例を示すブロック図である。この例では、電子デバイスA102aおよび電子デバイスB102bが示される。しかしながら、留意すべきは、電子デバイスA102aおよび電子デバイスB102bに関して記載される特徴および機能性の1つ以上がいくつかの構成では単一の電子デバイスに組み合わされてもよいことである。
電子デバイスA102aは、エンコーダ104を含む。エンコーダ104は、メッセージ生成モジュール108を含む。電子デバイスA102a内に含まれるそれぞれの要素(例えば、エンコーダ104およびメッセージ生成モジュール108)は、ハードウェア、ソフトウェアまたは両方の組み合わせで実装されてもよい。
電子デバイスA102aは、1つ以上の入力ピクチャ106を取得する。いくつかの構成において、入力ピクチャ(単数または複数)106は、イメージセンサを用いて電子デバイスA102a上に取り込まれてもよく、メモリから読み出されてもよく、および/または別の電子デバイスから受信されてもよい。
エンコーダ104は、符号化データを作り出すために入力ピクチャ(単数または複数)106を符号化する。例えば、エンコーダ104は、一連の入力ピクチャ106(例えば、ビデオ)を符号化する。一構成において、エンコーダ104は、高効率ビデオ符号化(HEVC)エンコーダであってもよい。符号化データは、デジタルデータ(例えば、ビットストリーム114の一部)である。エンコーダ104は、入力信号に基づいてオーバーヘッド・シグナリングを生成する。
メッセージ生成モジュール108は、1つ以上のメッセージを生成する。例えば、メッセージ生成モジュール108は、1つ以上のSEIメッセージまたは他のメッセージを生成する。サブピクチャ・レベルの動作をサポートするCPBに対して、電子デバイス102は、サブピクチャ・パラメータ(例えば、CPB除去遅延パラメータ)を送信する。特に、電子デバイス102(例えば、エンコーダ104)は、共通復号ユニットCPB除去遅延パラメータをピクチャタイミングSEIメッセージに含めるべきかどうかを確定する。例えば、電子デバイスは、エンコーダ104が共通復号ユニットCPB除去遅延パラメータ(例えば、common_du_cpb_removal_delay)をピクチャタイミングSEIメッセージに含んでいるときには、フラグ(例えば、common_du_cpb_removal_delay_flag)を1に設定する。共通復号ユニットCPB除去遅延パラメータが含まれるときに、電子デバイスは、アクセスユニットにおけるすべての復号ユニットに適用可能な、共通復号ユニットCPB除去遅延パラメータを生成する。言い換えれば、復号ユニットCPB除去遅延パラメータをアクセスユニットにおける復号ユニットごとに含むのではなく、ピクチャタイミングSEIメッセージが関連付けられたアクセスユニットにおけるすべての復号ユニットに共通パラメータが適用される。
対照的に、共通復号ユニットCPB除去遅延パラメータをピクチャタイミングSEIメッセージに含めるべきでないときには、電子デバイス102は、ピクチャタイミングSEIメッセージが関連付けられたアクセスユニットにおける復号ユニットごとに個別の復号ユニットCPB除去遅延を生成する。メッセージ生成モジュール108は、下の図2および図3に関連して記載された手順の1つ以上を行う。
いくつかの構成において、電子デバイスA102aは、ビットストリーム114の一部としてメッセージを電子デバイスB102bへ送信する。いくつかの構成において、電子デバイスA102aは、別の送信110によってメッセージを電子デバイスB102bへ送信する。例えば、別の送信は、ビットストリーム114の一部でなくてもよい。例として、ピクチャタイミングSEIメッセージまたは他のメッセージは、何らかの帯域外メカニズムを用いて送信されてもよい。いくつかの構成において、他のメッセージが上記のピクチャタイミングSEIメッセージの特徴の1つ以上を含みうることに留意すべきである。そのうえ、1つ以上の態様において他のメッセージが上記のSEIメッセージと同様に利用されてもよい。
エンコーダ104(および、例えばメッセージ生成モジュール108)は、ビットストリーム114を作り出す。ビットストリーム114は、入力ピクチャ(単数または複数)106に基づく符号化ピクチャ・データを含む。いくつかの構成において、ビットストリーム114は、ピクチャタイミングSEIメッセージまたは他のメッセージ、スライスヘッダ(単数または複数)、ピクチャパラメータセット(単数または複数)(PPS:Picture Parameter Set(単数または複数))などのような、オーバーヘッド・データも含む。追加の入力ピクチャ106が符号化されたときに、ビットストリーム114は、1つ以上の符号化ピクチャを含む。例として、ビットストリーム114は、対応するオーバーヘッド・データ(例えば、ピクチャタイミングSEIメッセージまたは他のメッセージ)をもつ1つ以上の符号化ピクチャを含む。
ビットストリーム114は、デコーダ112へ供給される。一例において、ビットストリーム114は、有線または無線リンクを用いて電子デバイスB102bへ送信される。いくつかのケースでは、これは、インターネットまたはローカルエリアネットワーク(LAN:Local Area Network)のようなネットワークを通じて行われる。図1に示されるように、デコーダ112は、電子デバイスA102a上のエンコーダ104から分離して電子デバイスB102b上に実装されてもよい。しかしながら、留意すべきは、エンコーダ104およびデコーダ112がいくつかの構成では同じ電子デバイス上に実装されることである。例として、エンコーダ104およびデコーダ112が同じ電子デバイス上に実装される実装では、ビットストリーム114がバスを通じてデコーダ112へ供給されてもよく、またはデコーダ112による読み出しのためにメモリに記憶されてもよい。
デコーダ112は、ハードウェア、ソフトウェアまたは両方の組み合わせで実装されてもよい。一構成において、デコーダ112は、HEVCデコーダであってもよい。デコーダ112は、ビットストリーム114を受信する(例えば、取得する)。デコーダ112は、ビットストリーム114に基づいて1つ以上の復号ピクチャ118を生成する。復号ピクチャ(単数または複数)118は、表示される、再生される、メモリに記憶されるか、および/または別のデバイスへ送信されるなどである。
デコーダ112は、CPB120を含む。CPB120は、符号化ピクチャを一時的に記憶する。CPB120は、データをいつ除去すべきかを確定するために、ピクチャタイミングSEIメッセージに見出されたパラメータを用いる。CPB120がサブピクチャ・レベルの動作をサポートするときには、アクセスユニット全体を一度に除去するのではなく、個々の復号ユニットを除去することができる。
デコーダ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に関連して記載された手順の1つ以上を行う。
上記のHRDは、図1に示されるデコーダ112の一例である。このように、電子デバイス102は、いくつかの構成において、上記のHRDおよびCPB120に従って動作する。
留意すべきは、電子デバイス(単数または複数)102に含まれる要素またはその部分の1つ以上がハードウェアで実装されてもよいことである。例えば、これらの要素またはその部分の1つ以上は、チップ、回路素子またはハードウェア部品などとして実装されてもよい。本明細書に記載される機能または方法の1つ以上は、ハードウェアで実装されてもよく、および/またはハードウェアを用いて行われてもよいことにも留意すべきである。例えば、本明細書に記載される方法の1つ以上は、チップセット、特定用途向け集積回路(ASIC:Application−Specific Integrated Circuit)、大規模集積回路(LSI:Large−Scale Integrated circuit)または集積回路などで実装されてもよく、および/またはそれらを用いて実現されてもよい。
図2は、メッセージを送信するための方法200の一構成を示すフロー図である。方法200は、エンコーダ104またはその1つのサブパーツ(例えば、メッセージ生成モジュール108)によって行われる。エンコーダ104は、CPB120がサブピクチャ・レベルの動作をサポートするかどうかを示すピクチャタイミング・フラグ(例えば、sub_pic_cpb_params_present_flag)を確定する(ステップ202)。例えば、ピクチャタイミング・フラグが1に設定されているときに、CPB120は、アクセスユニット・レベルまたはサブピクチャ・レベルで動作する。ピクチャタイミング・フラグが1に設定されているときでも、実際にサブピクチャ・レベルで動作すべきかどうかの決定は、デコーダ112自体に委ねられることに留意すべきである。
エンコーダ104は、アクセスユニットにおける復号ユニットに関して1つ以上の除去遅延も確定する(ステップ204)。例えば、エンコーダ104は、CPB120からのアクセスユニットにおけるすべての復号ユニットに適用可能な単一の共通復号ユニットCPB除去遅延パラメータ(例えば、common_du_cpb_removal_delay)を確定する。代わりに、エンコーダ104は、アクセスユニットにおける復号ユニットごとに個別の復号ユニットCPB除去遅延(例えば、du_cpb_removal_delay[i])を確定する。
エンコーダ104は、アクセスユニットにおける各復号ユニットのNALユニットの量から1を差し引いた値を示す、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は、無線伝送、有線伝送、デバイスバス、ネットワークなどの1つ以上を通じてメッセージを送信する。例として、電子デバイスA102aは、メッセージをデバイスB102bへ送信する。メッセージは、例えば、ビットストリーム114の一部であってもよい。いくつかの構成において、電子デバイスA102aは、(ビットストリーム114の一部ではない)別の送信110でメッセージをデバイスB102bへ送る(ステップ208)。例として、メッセージは、何らかの帯域外メカニズムを用いて送信されてもよい。いくつかのケースでは、ステップ204、206に示される情報は、ピクチャタイミングSEIメッセージとは異なるSEIメッセージで送信される。さらに別のケースでは、ステップ204、206に示される情報は、パラメータセット、例えば、ビデオパラメータセットおよび/またはシーケンスパラメータセットおよび/またはピクチャパラメータセットおよび/または適応パラメータセットおよび/またはスライスヘッダで送信される。
図3は、アクセスユニットにおける復号ユニットに関して1つ以上の除去遅延を確定するための方法300の一構成を示すフロー図である。言い換えれば、図3に示される方法300は、図2に示される方法200におけるステップ204をさらに説明する。方法300は、エンコーダ104によって行われる。エンコーダ104は、共通復号ユニットCPB除去遅延パラメータ(例えば、common_du_cpb_removal_delay)を含めるべきかどうかを確定する(ステップ302)。これは、共通復号ユニットCPB除去遅延フラグ(例えば、common_du_cpb_removal_delay_flag)が設定されているかどうかを確定するステップを含む。エンコーダ104は、復号ユニットが一定の間隔でCPBから除去される場合に、この共通パラメータを送信する。例えば、各復号ユニットがピクチャの一定数の行に対応するか、または他のなんらかの規則的な構造を有するときにこれが当て嵌まる。
例えば、共通復号ユニットCPB除去遅延フラグは、共通復号ユニットCPB除去遅延パラメータをピクチャタイミングSEIメッセージに含めるべきときに、1に設定され、それを含めるべきでないときには0に設定される。yesであれば(例えば、フラグが1に設定されていれば)、エンコーダ104は、アクセスユニットにおけるすべての復号ユニットに適用可能な共通復号ユニットCPB除去遅延パラメータ(例えば、common_du_cpb_removal_delay)を確定する(ステップ304)。noであれば(例えば、フラグが0に設定されていれば)、エンコーダ104は、アクセスユニットにおける復号ユニットごとに個別の復号ユニットCPB除去遅延パラメータ(例えば、du_cpb_removal_delay[i])を確定する(ステップ306)。
共通復号ユニットCPB除去遅延パラメータがピクチャタイミングSEIメッセージ中に存在すれば、これは、直前の復号ユニットのCPB120からの除去後に、ピクチャタイミングSEIメッセージと関連付けられたアクセスユニットにおける現在の復号ユニットをCPB120から除去する前に、待機すべきサブピクチャ・クロックティックの量を指定する。
例えば、復号ユニットがアクセスユニットにおける第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除去遅延パラメータは、modulo 2(cpb_removal_delay_length_minus1+1)カウンタの剰余に従って算出され、ここでcpb_removal_delay_length_minus1+1は、共通復号ユニットCPB除去遅延パラメータの長さである。
図4は、ビットストリームをバッファリングにするための方法400の一構成を示すフロー図である。方法400は、メッセージ(例えば、ピクチャタイミングSEIメッセージまたは他のメッセージ)を受信する(ステップ402)。電子デバイス102(例えば、電子デバイスB102b)におけるデコーダ112によって行われる。例えば、電子デバイス102は、無線伝送、有線伝送、デバイスバス、ネットワークなどの1つ以上を通じてメッセージを受信する(ステップ402)。例として、電子デバイスB102bは、メッセージを電気デバイスA102aから受信する(ステップ402)。メッセージは、例えば、ビットストリーム114の一部であってもよい。別の例では、電子デバイスB102bは、(例えば、ビットストリーム114の一部ではない)別の送信110でメッセージをデバイスA102aから受信する。例として、ピクチャタイミングSEIメッセージは、何らかの帯域外メカニズムを用いて受信されてもよい。いくつかの構成において、メッセージは、ピクチャタイミング・フラグ、アクセスユニットにおける復号ユニットに関する1つ以上の除去遅延、および1つ以上のNALパラメータのうちの1つ以上を含む。メッセージを受信するステップ402は、ピクチャタイミング・フラグ、アクセスユニットにおける復号ユニットに関する1つ以上の除去遅延、および1つ以上のNALパラメータのうちの1つ以上を受信することを含む。
デコーダ112は、CPB120がアクセスユニット・レベルまたはサブピクチャ・レベルで動作するかどうかを確定する(ステップ404)。例えば、デコーダ112は、低レイテンシーを達成したければ、サブピクチャ・ベースで動作することを決定する。あるいは、決定は、デコーダ112がサブピクチャ・ベースの動作をサポートするのに十分なリソースを有するかどうかに基づく。CPB120がサブピクチャ・レベルで動作する場合、デコーダは、アクセスユニットにおける復号ユニットに関して1つ以上の除去遅延を確定する(ステップ406)。例えば、デコーダ112は、アクセスユニットにおけるすべての復号ユニットに適用可能な単一の共通復号ユニットCPB除去遅延パラメータ(例えば、common_du_cpb_removal_delay)を確定する。あるいは、デコーダ112は、アクセスユニットにおける復号ユニットごとに個別の復号ユニットCPB除去遅延(例えば、du_cpb_removal_delay[i])を確定する。言い換えれば、ピクチャタイミングSEIメッセージは、アクセスユニットにおけるすべての復号ユニットに適用可能な共通パラメータか、または復号ユニットごとに個別のパラメータを含む。
デコーダ112は、また、復号ユニットに関するCPB除去遅延に基づいて、すなわち、アクセスユニットにおけるすべての復号ユニットに適用可能な共通パラメータか、または復号ユニットごとに個別のパラメータのいずれかを用いて、復号ユニットを除去する(ステップ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秒間に経過する時間単位の数である。
低遅延仮想参照デコーダ(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は、アクセスユニットにおける復号ユニットに関して1つ以上の除去遅延を確定するための方法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番目のアクセスユニットのi番目の復号ユニットに関するパラメータであり(HRDを初期化したアクセスユニットに対してk=0、およびk<1ではTdu(k)=0)、du_cpb_removal_delay_minus1k[i]+1=du_cpb_removal_delayk[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_miuns1]に関する値は、−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を差し引いた値である。
図6は、電子デバイス602上のエンコーダ604の一構成を示すブロック図である。留意すべきは、電子デバイス602内に含まれるように示される要素の1つ以上がハードウェア、ソフトウェアまたは両方の組み合わせで実装されてもよいことである。例えば、電子デバイス602は、ハードウェア、ソフトウェアまたは両方の組み合わせで実装されてもよいエンコーダ604を含む。例として、エンコーダ604は、回路、集積回路、特定用途向け集積回路(ASIC)、実行可能な命令をもつメモリと電子通信を行うプロセッサ、ファームウェア、フィールドプログラマブルゲートアレイ(FPGA:field−programmable gate array)など、またはそれらの組み合わせとして実装されてもよい。いくつかの構成において、エンコーダ604は、HEVCコーダであってもよい。
電子デバイス602は、ソース622を含む。ソース622は、ピクチャ、または1つ以上の入力ピクチャ606としての画像データ(例えば、ビデオ)をエンコーダ604へ供給する。ソース622の例は、イメージセンサ、メモリ、通信インターフェース、ネットワークインターフェース、無線受信機、ポートなどを含む。
1つ以上の入力ピクチャ606は、フレーム内予測モジュールおよび再構成バッファ624へ供給される。入力ピクチャ606は、また、動き推定および動き補償モジュール646へ、そして減算モジュール628へ供給される。
フレーム内予測モジュールおよび再構成バッファ624は、1つ以上の入力ピクチャ606および再構成データ660に基づいて、イントラモード情報640およびイントラ信号626を生成する。動き推定および動き補償モジュール646は、1つ以上の入力ピクチャ606および参照ピクチャバッファ676信号678に基づいて、インターモード情報648およびインター信号644を生成する。いくつかの構成において、参照ピクチャバッファ676は、1つ以上の参照ピクチャからのデータを参照ピクチャバッファ676に含む。
エンコーダ604は、モードに従ってイントラ信号626とインター信号644との間で選択を行う。イントラ信号626は、イントラ符号化モードでピクチャ内の空間的特性を活用するために用いられる。インター信号644は、インター符号化モードでピクチャ間の時間的特性を活用するために用いられる。イントラ符号化モードにある間に、イントラ信号626が減算モジュール628へ供給され、イントラモード情報640がエントロピー符号化モジュール642へ供給される。インター符号化モードにある間には、インター信号644が減算モジュール628へ供給され、インターモード情報648がエントロピー符号化モジュール642へ供給される。
減算モジュール628では、予測残差630を作り出すために、(モードに依存して)イントラ信号626またはインター信号644のいずれかが入力ピクチャ606から減算される。予測残差630は、変換モジュール632へ供給される。変換モジュール632は、量子化モジュール636へ供給される変換信号634を作り出すために予測残差630を圧縮する。量子化モジュール636は、変換および量子化された係数(TQC:transformed and quantized coefficient)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:sample adaptive offset)モジュール666へ供給される。SAOモジュール666は、エントロピー符号化モジュール642へ供給されるSAO情報668、および適応ループフィルタ(ALF:adaptive loop filter)672へ供給されるSAO信号670を作り出す。ALF672は、参照ピクチャバッファ676へ供給されるALF信号674を作り出す。ALF信号674は、参照ピクチャとして用いられる1つ以上のピクチャからのデータを含む。
エントロピー符号化モジュール642は、ビットストリームA614a(例えば、符号化ピクチャ・データ)を作り出すためにTQC638を符号化する。例えば、エントロピー符号化モジュール642は、コンテキスト適応型可変長符号化(CAVLC:Context−Adaptive Variable Length Coding)またはコンテキスト適応型2値算術符号化(CABAC:Context−Adaptive Binary Arithmetic Coding)を用いてTQC638を符号化する。特に、エントロピー符号化モジュール642は、イントラモード情報640、インターモード情報648およびSAO情報668のうちの1つ以上に基づいてTQC638を符号化する。ビットストリームA614a(例えば、符号化ピクチャ・データ)は、メッセージ生成モジュール608へ供給される。メッセージ生成モジュール608は、図1に関連して記載されたメッセージ生成モジュール108と同様に構成される。加えて、または代わりに、メッセージ生成モジュール608は、図2および図3に関連して記載された手順の1つ以上を行う。
例えば、メッセージ生成モジュール608は、サブピクチャ・パラメータを含んだメッセージ(例えば、ピクチャタイミングSEIメッセージまたは他のメッセージ)を生成する。サブピクチャ・パラメータは、復号ユニットに関する1つ以上の除去遅延(例えば、common_du_cpb_removal_delayまたはdu_cpb_removal_delay[i])、および1つ以上のNALパラメータ(例えば、common_num_nalus_in_du_minus1またはnum_nalus_in_du_minus1[i])を含む。いくつかの構成では、ビットストリームB614bを作り出すために、メッセージがビットストリームA614aに挿入される。従って、メッセージは、例えば、ビットストリームA614a全体が生成された後に(例えば、ビットストリームB614bの大部分が生成された後に)生成される。他の構成では、メッセージは、ビットストリームA614aには挿入されない(その場合、ビットストリームB614bはビットストリームA614aと同じである)が、別の送信610で供給される。
いくつかの構成において、電子デバイス602は、ビットストリーム614を別の電子デバイスへ送信する。例えば、ビットストリーム614は、通信インターフェース、ネットワークインターフェース、無線送信機、ポートなどへ供給される。例として、ビットストリーム614は、LAN、インターネット、セルラーフォン基地局などを通じて別の電子デバイスへ送信される。加えて、または代わりに、ビットストリーム614は、電子デバイス602上のメモリまたは他のコンポーネントに記憶されてもよい。
図7は、電子デバイス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)720は、符号化ピクチャ・データをエントロピー復号モジュール701へ供給する。符号化ピクチャ・データは、エントロピー復号モジュール701によりエントロピー復号され、それによって動き情報信号703ならびに量子化、スケーリングおよび/または変換された係数705が作り出される。
動き情報信号703は、フレーム間予測信号782を作り出す動き補償モジュール780において、フレームメモリ709からの参照フレーム信号798の一部分と結合される。量子化、デスケーリングおよび/または変換された係数705は、逆モジュール707により逆量子化、スケーリングおよび逆変換され、それによって復号された残差信号784を作り出す。復号された残差信号784は、結合信号786を作り出すために予測信号792に加算される。予測信号792は、動き補償モジュール780によって作り出されたフレーム間予測信号782、またはフレーム内予測モジュール788によって作り出されたフレーム内予測信号790のいずれかから選択された信号である。いくつかの構成において、この信号選択は、ビットストリーム714に基づく(例えば、ビットストリーム714によって制御される)。
フレーム内予測信号790は、(例えば、現フレームにおける)結合信号786から予め復号された情報から予測される。結合信号786は、また、デブロッキングフィルタ794によってフィルタされる。フィルタされて生じた信号796は、フレームメモリ709に書き込まれる。フィルタされて生じた信号796は、復号ピクチャを含む。フレームメモリ709は、復号ピクチャ718を供給する。いくつかのケースでは、709は、復号ピクチャバッファである。
図8は、送信用電子デバイス802において利用される様々なコンポーネントを示す。本明細書に記載される電子デバイス102、602、702の1つ以上は、図8に示される送信用電子デバイス802に従って実装される。
送信用電子デバイス802は、電子デバイス802の動作を制御するプロセッサ817を含む。プロセッサ817は、CPUとも呼ばれる。メモリ811は、リードオンリーメモリ(ROM:read−only memory)、ランダムアクセスメモリ(RAM:random access memory)の両方または情報を記憶する任意のタイプのデバイスを含み、命令813a(例えば、実行可能な命令)およびデータ815aをプロセッサ817へ供給する。メモリ811の一部分は、不揮発性ランダムアクセスメモリ(NVRAM:non−volatile random access memory)も含んでよい。メモリ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:Universal Serial Bus)、イーサネット(登録商標)アダプタ、IEEE1394バスインターフェース、小型計算機システムインターフェース(SCSI:small computer system interface)バスインターフェース、赤外線(IR:infrared)通信ポート、Bluetooth(登録商標)無線通信アダプタ、第3世代パートナーシップ・プロジェクト(3GPP:3rd Generation Partnership Project)仕様による無線トランシーバなどを含む。
送信用電子デバイス802は、1つ以上の出力デバイス823および1つ以上の入力デバイス821を含む。出力デバイス823の例は、スピーカ、プリンタなどを含む。電子デバイス802に含まれる出力デバイスの1つのタイプは、表示デバイス825である。本明細書に開示される構成とともに用いられる表示デバイス825は、任意の適切な画像投影技術、例えば、陰極線管(CRT:cathode ray tube)、液晶表示(LCD:liquid crystal display)、発光ダイオード(LED:light−emitting diode)、気体プラズマ、エレクトロルミネセンスなどを利用する。表示コントローラ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に含まれる出力デバイスの1つのタイプは、表示デバイス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がソフトウェアによって実現されてもよい。
用語「コンピュータ可読媒体」は、コンピュータまたはプロセッサによってアクセスできる任意の利用可能な媒体を指す。用語「コンピュータ可読媒体」は、本明細書では、非一時的かつ有形のコンピュータおよび/またはプロセッサ可読媒体を示す。限定ではなく、例として、コンピュータ可読またはプロセッサ可読媒体は、RAM、ROM、EEPROM(登録商標)、CD−ROMまたは他の光ディスク記憶、磁気ディスク記憶もしくは他の磁気記憶デバイス、あるいは命令の形態の所望のプログラムコードまたはデータ構造を運ぶか、または記憶するために用いることができ、コンピュータまたはプロセッサによってアクセスできる任意の他の媒体を備える。ディスク(disk)およびディスク(disc)は、本明細書では、コンパクトディスク(CD:compact disc)、レーザディスク(laser disc)、光ディスク(optical disc)、デジタルバーサタイルディスク(DVD:digital versatile disc)、フロッピー(登録商標)ディスク(floppy(登録商標) disk)およびBlu−ray(登録商標)ディスク(disc)を含み、ディスク(disk)は、通常、磁気的にデータを再生し、一方でディスク(disc)は、レーザを用いて光学的にデータを再生する。
留意すべきは、本明細書に記載される方法の1つ以上がハードウェアで実装されてもよく、および/またはハードウェアを用いて行われてもよいことである。例えば、本明細書に記載される方法またはアプローチの1つ以上は、チップセット、ASIC、大規模集積回路(LSI)または集積回路などで実装されてもよく、および/またはそれらを用いて実現されてもよい。
本明細書に開示されるそれぞれの方法は、記載される方法を達成するための1つ以上のステップまたは動作を備える。本方法のステップおよび/または動作は、特許請求の範囲から逸脱することなく、相互に交換されてもよく、および/または単一のステップに組み合わされてもよい。言い換えれば、記載される方法の適切な操作のためにステップまたは動作の特定の順序が必要とされない限り、特定のステップおよび/または動作の順序および/または使用は、特許請求の範囲から逸脱することなく、修正されてもよい。
理解すべきは、特許請求の範囲が上に示された通りの構成および構成要素には限定されないことである。特許請求の範囲から逸脱することなく、本明細書に記載される配置、動作、ならびにシステム、方法、および装置の詳細に様々な修正、変更および変形がなされてもよい。