電子デバイスにより長期参照ピクチャ・インジケータを送信するための方法が記載される。長期参照ピクチャ・インジケータが、生成される。長期参照ピクチャ・インジケータが、送信される。長期参照ピクチャに対応する絶対ピクチャオーダーカウント(POC)が生成される。絶対POCは、最下位ビット(LSB)値を含む。長期参照ピクチャに対応する絶対POCのLSB値が、送信される。現ピクチャに対応する現ピクチャ使用フラグが、生成される。少なくとも1つのパラメータセットにおける現ピクチャ使用フラグが送信される。
絶対POCのLSB値は、シーケンス・パラメータセット(SPS;Sequence Parameter Set)、適応パラメータセット(APS;Adaptation Parameter Set)、ピクチャパラメータセット(PPS;Picture Parameter Set)、および/またはビデオパラメータセット(VPS;Video Parameter Set)において送信されうる。少なくとも1つのパラメータセットにおける絶対POCおよび現ピクチャ使用フラグに対応する長期インデックスパラメータを含むスライスヘッダも生成されうる。スライスヘッダが、送信されうる。
長期インデックスパラメータにより指示される長期参照ピクチャに対応する絶対POCのデルタ最上位ビット(MSB;most significant bit)サイクルが、必要なら送信されうる。長期参照ピクチャからの1つ以上のPOC LSB値が同じであるとき、絶対POCのデルタMSBサイクルを送信することが必要であろう。絶対POCのデルタMSBサイクルは、スライスヘッダで送信されうる。長期インデックスパラメータは、long_term_idx_sps[i]でありうる。
長期参照ピクチャ・インジケータは、SPS、APS、PPSおよび/またはVPSにおいて送信されうる。現ピクチャ使用フラグは、SPS、APS、PPSおよび/またはVPSにおいて送信されうる。現ピクチャ使用フラグは、現ピクチャを復号する際に絶対POCにより指示されるi番目の長期参照ピクチャを利用すべきかどうかを指定するused_by_curr_pic_lt_sps_flag[i]でありうる。
現ピクチャ使用フラグは、スライスヘッダで送信されなくてもよい。長期参照ピクチャ・インジケータは、長期参照ピクチャ存在フラグでありうる。長期参照ピクチャに対応する絶対POCのLSB値は、スライスヘッダで受信されなくてもよい。
電子デバイスにより長期参照ピクチャ・インジケータを受信するための方法も、記載されうる。長期参照ピクチャ・インジケータが、受信される。少なくとも1つのパラメータセットにおける現ピクチャ使用フラグが、受信される。長期参照ピクチャに対応する絶対ピクチャオーダーカウント(POC)のLSB値が、受信される。現ピクチャ使用フラグに基づいて長期参照ピクチャを利用すべきかどうかについての判定がなされる。
少なくとも1つのパラメータセットにおける絶対POCおよび現ピクチャ使用フラグに対応する長期インデックスパラメータを含むスライスヘッダが、受信されうる。長期インデックスパラメータにより指示される長期参照ピクチャに対応する絶対POCのデルタMSBサイクルが、必要なら受信されうる。長期参照ピクチャを利用すべきものと判定された場合、現ピクチャが長期参照ピクチャに基づいて復号されうる。長期参照ピクチャを利用すべきでないものと判定された場合、現ピクチャが長期参照ピクチャを用いずに復号されうる。
ピクチャを符号化するための電子デバイスが、記載される。電子デバイスは、プロセッサと、プロセッサと電子通信を行うメモリに記憶された命令とを含む。命令は、長期参照ピクチャ・インジケータを生成するために実行可能である。命令は、長期参照ピクチャ・インジケータを送信するために実行可能である。命令は、長期参照ピクチャに対応する絶対ピクチャオーダーカウント(POC)を生成するためにも、実行可能である。絶対POCは、最下位ビット(LSB)値を含む。命令は、加えて、長期参照ピクチャに対応する絶対POCのLSB値を送信するために実行可能である。命令は、さらに、現ピクチャに対応する現ピクチャ使用フラグを生成するために実行可能である。命令は、少なくとも1つのパラメータセットにおける現ピクチャ使用フラグを送信するためにも実行可能である。
ピクチャを復号するための電子デバイスも、記載される。電子デバイスは、プロセッサと、プロセッサと電子通信を行うメモリに記憶された命令とを含む。命令は、長期参照ピクチャ・インジケータを受信するために実行可能である。命令は、少なくとも1つのパラメータセットにおける現ピクチャ使用フラグを受信するためにも実行可能である。命令は、さらに、長期参照ピクチャに対応する絶対ピクチャオーダーカウント(POC)のLSB値を受信するために実行可能である。命令は、加えて、現ピクチャ使用フラグに基づいて長期参照ピクチャを利用すべきかどうかを判定するために実行可能である。
本明細書に開示されるシステムおよび方法は、指定ピクチャに基づいて電子デバイス上で参照ピクチャを追跡するためのいくつかの構成を記載する。例えば、本明細書に開示されるシステムおよび方法は、削減されたオーバーヘッドの参照により、復号ピクチャバッファ(DPB;decoded picture buffer)における復号された参照ピクチャを追跡するステップを記載する。例として、長期参照ピクチャシグナリングのいくつかのアプローチが記載される。留意すべきは、復号ピクチャバッファ(DPB)が、仮想参照デコーダに関して指定された参照、出力リオーダリング、または出力遅延のために、復号されたピクチャを保持するバッファであってもよいことである。
電子デバイス上で、復号ピクチャバッファ(DPB)は、デコーダで再構築(例えば復号)されたピクチャを記憶するために用いられうる。これらの記憶されたピクチャは、次に例えば、インター予測メカニズムにおいて用いられうる。ピクチャが順序を違えて復号される場合、ピクチャを順序の後の方で表示できるようにDPBに記憶しうる。
H.264またはアドバンスビデオ符号化(AVC;advance video coding)規格では、DPB管理(例えば、ピクチャの削除、追加、ピクチャのリオーダリングなど)が、メモリ管理制御動作(MMCO;memory management control operations)を用いて実施される。来るべき高効率ビデオ符号化(HEVC;high efficiency video coding)規格のために、より信頼性のあるDPB管理アプローチが検討されている。より信頼性のあるアプローチの一例は、ビデオ符号化に関する協同作業チーム(JCT‐VC;Joint Collaborative Team on Video Coding)文書JCTVC‐F493からの「参照ピクチャの絶対シグナリング(Absolute signaling of reference pictures)」に詳述されるような、参照ピクチャの絶対シグナリングに基づく。
JCTVC‐F493は、復号ピクチャバッファ(DPB)にどの参照ピクチャが保たれるべきかを識別するための参照ピクチャの絶対シグナリングを概説する。JCTVC‐F493は、バッファ記述を用いた参照ピクチャのロバストエラー管理をサポートする参照ピクチャの絶対シグナリングも提唱する。特に、JCTVC‐F493は、DPBにどの参照ピクチャが維持されるべきかをピクチャオーダーカウント(POC)に基づいて識別する2つの異なるアプローチを概説する。ピクチャオーダーカウント(POC)は、各符号化されたピクチャに関連する変数であればよく、ラップアラウンドを持つ出力順にピクチャ位置の増加とともに増加する値を有する。
一例において、すべてのピクチャが、時間識別子(temporalID)=0を有すると仮定する。さらに、現POC=5であり、現DPBが={3,2}を含むものと仮定する。加えて、ピクチャパラメータセット(PPS;Picture Parameter Set)における定義は、BufferDescription0 ={deltaPOC =−1,temporalID=0},{deltaPOC =−2,temporalID=0}であると仮定する。deltaPOCは、参照ピクチャのPOC値の現ピクチャからの距離を指定し、現ピクチャは、復号されているピクチャでありうる。示される1つのアプローチは、PPSにおけるバッファ記述を参照することである。このアプローチでは、POC=5を持つピクチャャのスライスヘッダは、PPSにBufferDescription0の参照を含む。動作は、POC=2を持つ復号されたピクチャをDPBから落とし、POC=4を持つ復号されたピクチャをDPBに追加することであると仮定する。結果として、DPBは、次に={4,3}を含む。
一構成では、バッファ記述は、POCBDおよびTemporalIDBDと示される2つのリスト、ならびにすべてのピクチャに関して存在する変数NumberOfPicturesInBDとして定義される。このバッファ記述では、POCBDが参照ピクチャのピクチャオーダーカウント値を含み、TemporalIDBDが参照ピクチャの対応する時間識別子を含み、両方のリストがNumberOfPicturesInBD値を含む。
temporalIDが、ビデオ符号化に関する協同作業チーム(JCT‐VC)文書JCTVC‐F803で以下のように定義されうることに留意すべきである。「temporalIDは、NALユニットに関する時間識別子を指定する。temporalIDの値は、アクセスユニットのすべてのNALユニットに関して同じであるものとする。アクセスユニットが、nal_unit_typeが5に等しい任意のNALユニットを含むとき、temporalIDは0に等しいものとする」。NALは「ネットワーク抽象化レイヤ」の略語でありうることに留意すべきである。
別のアプローチは、現POCに対するデルタPOCを用いて、DPBの内容を明示的にシグナリングすることである。このアプローチでは、POC=5を持つピクチャのスライスヘッダは、{deltaPOC=−1,temporalID=0}および{deltaPOC=−2,temporalID=0}を含む。動作は、POC=2を持つ復号されたピクチャをDPBから落とし、復号されたピクチャPOC=4をDPBに追加することであると仮定する。結果として、新しいDPBは={4,3}を含む。
JCTVC‐F493により示されるアプローチのいくつかの利点は、次の通りである。JCTVC‐F493におけるアプローチは、簡易なメカニズムを提供する。そのうえ、ピクチャの損失がデコーダで容易に検出される。加えて、より高位の時間IDを持つピクチャの全レイヤの脱落が検出され、十分にサポートされうる。
しかしながら、JCTVC‐F493に示されるアプローチのいくつかの不利な点は、以下の通りである。長期参照ピクチャをシグナリングするためのビットオーバーヘッドが大きくなる可能性がある。そのうえ、POCを通信するために固定ビット数が割り当てられうる。結果として、用いられるビット数によって許容された最大値に達したときには、POC番号付けが0にラップアラウンドされなければならない。したがって、POCを用いてピクチャを一意的に識別できると保証することができない。
本明細書に開示されるシステムおよび方法は、これらの不利な点を軽減するための助けとなりうる。特に、本明細書に開示されるシステムおよび方法は、絶対長期ピクチャ参照に関連するオーバーヘッドを削減することにより有益であり、ピクチャを一意的に識別することを可能にすることができる(例えば、長期(参照)ピクチャが他の短期または長期ピクチャと混同されることはなく、逆もまた同様であろう)。
本明細書に開示されるシステムおよび方法は、次のように記載される1つ以上のさらなる利益を提供しうる。本明細書に開示されるシステムおよび方法の1つ以上の構成は、利用可能なPOC番号付け空間[数1][0,・・・,MaxPOC−1]を十分に利用することができ、ここで、
であり、log2_max_pic_order_cnt_minus4は、ピクチャオーダーカウントに関する復号処理に用いられる変数「MaxPOC」の値を指定する。例えば、POCラップアラウンド後の[数2][0,・・・,MaxPOC−1]の再使用を解決する1つの従来のアプローチは、ピクチャに識別子(例えば、POC番号)を割り当てるときに現在使用中のPOCをステップオーバーすることを提唱する。この結果、POC空間の一部が用いられないことになる。しかしながら、本明細書に開示されるシステムおよび方法は、POCのステップオーバーおよび関連するPOC空間縮小の課題を解決しうる。
別の利益は、シグナリングに関して本明細書に開示されるシステムおよび方法のいくつかの構成が、各ピクチャで自己完結的でありうることであろう。したがって、(損失または脱落するかもしれない)前のピクチャからの情報伝搬に依存するスキームと比較して、エラー耐性が良好となりうる。例えば、復号ピクチャバッファ(DPB)記述の一構成は、エンコーダと同じDPBを保持するために他のピクチャに組み込まれた情報に依存しない。
本明細書に開示されるシステムおよび方法のいくつかの構成のさらに別の利益は、ピクチャが損失した場合、(次の受信ピクチャにある)バッファ記述がデコーダで利用可能になるとすぐに、その損失を検出できることであろう。これは、デコーダが補正動作を行うことを可能にする。さらに別の利益は、POC解像度が十分な場合、余分なビットをなにも必要としないことである。
JCTVC‐H0496は、クリーンランダムアクセス(CRA;clean random access)ピクチャでビットストリームを開始することを提案する。この機能性は、JCTVC‐H1003に取り入れられている。JCTVC‐H1003は、絶対ピクチャオーダーカウント(POC)を用いない長期参照ピクチャのシグナリングを概説する。
いくつかの既知のアプローチでは、絶対POCを用いない長期参照ピクチャのシグナリングが記載される。例えば、絶対POCを用いない長期参照ピクチャのシグナリングは、ベンジャミン・ブロス(Benjamin Bros)他、「高性能ビデオ符号化(HEVC)テキスト仕様ドラフト7(High efficiency video coding(HEVC)text specification draft7)」、JCTVC‐I1003、ジュネーブ、2012年5月に記載される。
次に、図面を参照して様々な構成を記載するが、図面中、同様の参照番号は機能的に類似した要素を示しうる。本明細書において図面に一般的に記載され、説明されるシステムおよび方法は、多種多様に異なった構成に配置され、設計されてもよい。したがって、図面に表現されるいくつかの構成の以下のさらに詳細な記載は、特許請求の範囲を限定するものではなく、システムおよび方法を単に代表するに過ぎない。
図1は、指定ピクチャに基づいて参照ピクチャを追跡するためのシステムおよび方法が実装されうる、1つ以上の電子デバイス104の例を示したブロックダイアグラムである。この例では、電子デバイスA104aおよび電子デバイスB104bが示される。しかしながら、電子デバイスA104aおよび電子デバイスB104bに関して記載される特徴および/または機能性が、いくつかの構成では単一の電子デバイスに組み合わされてもよいことに留意しなければならない。
電子デバイスA104aは、エンコーダ108およびオーバーヘッド・シグナリングモジュール112を含む。電子デバイスA104a内に含まれる要素(例えば、エンコーダ108およびオーバーヘッド・シグナリングモジュール112)のそれぞれは、ハードウェア、ソフトウェアまたは両方の組み合わせで実装されうる。
電子デバイスA104aは、入力ピクチャ106を取得しうる。いくつかの構成では、入力ピクチャ106は、イメージセンサを用いて電子デバイスA104a上で取り込まれ、メモリから読み出され、および/または別の電子デバイスから受信されうる。
エンコーダ108は、符号化されたデータ110を産出するために、入力ピクチャ106を符号化しうる。例えば、エンコーダ108は、一連の入力ピクチャ106(例えばビデオ)を符号化しうる。一構成では、エンコーダ108は、高効率ビデオ符号化(HEVC)エンコーダでありうる。符号化されたデータ110は、デジタルデータ(例えば、ビットストリーム)でありうる。
オーバーヘッド・シグナリングモジュール112は、符号化されたデータ110に基づいてオーバーヘッド・シグナリングを生成しうる。例えば、オーバーヘッド・シグナリングモジュール112は、符号化されたデータ110にオーバーヘッドデータ、例えば、スライスヘッダ情報、シーケンス・パラメータセット(SPS)情報、適応パラメータセット(APS)情報、ピクチャパラメータセット(PPS)情報、ビデオパラメータセット(VPS)情報、ピクチャオーダーカウント(POC)、参照ピクチャ指定などを追加しうる。
いくつかの構成では、オーバーヘッド・シグナリングモジュール112は、2つのピクチャセット間の遷移を指示するラップ・インジケータを産出しうる。いくつかの構成では、オーバーヘッド・シグナリングモジュール112は、長期参照ピクチャ・インジケータを産出しうる。長期参照ピクチャ・インジケータは、パラメータセット、例えば、シーケンス・パラメータセット(SPS)、ピクチャパラメータセット(PPS)、適応パラメータセット(APS)およびビデオパラメータセット(VPS)の1つ以上においてシグナリングされうる。長期参照ピクチャ・インジケータの送信は、図17と関連してさらに詳細に後述する。例えば、いくつかの構成では、電子デバイスA104aは、図17に関連して説明される方法1700を行いうる。
電子デバイスA104aによって産出されうるオーバーヘッド・シグナリングの種類に関するさらなる詳細が以下に示される。特に、復号に関して以下に記載されるパラメータ、インジケータまたは情報の種類のうち、ゼロ、1つまたはそれ以上が、構成に応じて、オーバーヘッド・シグナリングモジュール112によって産出されうる。いくつかの構成では、オーバーヘッド・シグナリングモジュール112がエンコーダ108内に含まれうることに留意しなければならない。オーバーヘッド・シグナリングモジュール112は、削減されたオーバーヘッドの参照によるピクチャ追跡を可能にすることができる。
エンコーダ108(および、例えばオーバーヘッド・シグナリングモジュール112)は、ビットストリーム114を産出しうる。ビットストリーム114は、入力ピクチャ106に基づいて符号化されたピクチャデータを含みうる。いくつかの構成では、ビットストリーム114は、スライスヘッダ情報、PPS情報等のオーバーヘッドデータも含みうる。オーバーヘッドデータに関するさらなる詳細が以下に示される。追加の入力ピクチャ106が符号化されたとき、ビットストリーム114は、1つ以上の符号化されたピクチャを含みうる。例として、ビットストリーム114は、1つ以上の符号化された参照ピクチャおよび/または他のピクチャを含むことができる。
ビットストリーム114は、デコーダ102へ供給されうる。一例では、ビットストリーム114は、有線または無線リンクを用いて電子デバイスB104bへ伝送されうる。いくつかの場合、この伝送は、インターネットまたはローカルエリアネットワーク(LAN;Local Area Network)等のネットワーク上で行われうる。図1に示されるように、デコーダ102は、電子デバイスA104a上のエンコーダ108とは別に、電子デバイスB104b上に実装されてもよい。しかしながら、いくつかの構成では、エンコーダ108およびデコーダ102が同じ電子デバイス上に実装されてもよいことに留意しなければならない。例として、エンコーダ108およびデコーダ102が同じ電子デバイス上に与えられる実装においては、ビットストリーム114は、バスを通してデコーダ102に供給されるか、あるいはデコーダ102による読み出しのためにメモリに記憶されうる。
デコーダ102は、ハードウェア、ソフトウェアまたは両方の組み合わせで実装されうる。一構成では、デコーダ102は、高効率ビデオ符号化(HEVC)デコーダでありうる。デコーダ102は、ビットストリーム114を受信(例えば取得)しうる。デコーダ102は、ビットストリーム114に基づいて、復号されたピクチャ118(例えば、1つ以上の復号されたピクチャ118)を生成しうる。復号されたピクチャ118は、表示、再生、メモリへの記憶、および/または別のデバイスへの伝送などが行われうる。
デコーダ102は、参照ピクチャ追跡モジュール116を含みうる。参照ピクチャ追跡モジュール116は、デコーダ102が、削減されたオーバーヘッドの参照により、参照ピクチャを追跡することを可能にすることができる。例えば、参照ピクチャ追跡モジュール116は、JCTVC‐F493に示されるアプローチのような従来のアプローチで必要とされるよりも少ないオーバーヘッドを用いて、復号ピクチャバッファ(DPB)における参照ピクチャを追跡することができる。加えて、または代わりに、参照ピクチャ追跡モジュール116は、長期参照ピクチャ・インジケータおよび現ピクチャ使用フラグの1つ以上を受信しうる。例えば、電子デバイスB104bは、以下で図18に関連して説明される方法1800を行うことができる。いくつかの構成においては、参照ピクチャ追跡モジュール116は、1つ以上の長期参照ピクチャを追跡するために絶対POCを利用しうる。長期参照ピクチャ・インジケータの受信に関しては、以下にさらに詳述する。
従来のアプローチでは、例えば、現ピクチャと長期参照ピクチャとの間の関係を指定するために、削減されていないオーバーヘッドの参照が用いられうる。例として、従来のアプローチでは、現ピクチャと長期参照ピクチャとの間の関係は、POC番号付け空間を増加させ、これによりPOCラップアラウンドの課題を回避することによって指定されうる。しかしながら、POC番号付け空間の増加は、POCに関するビット要件を増加させる代償によってのみ達成されうる。この例は、従来のアプローチにおいてPOCラップアラウンドの課題を回避するために用いうるいくつかの可能なメカニズムの1つである。しかしながら、他ならぬこの例が、従来のアプローチでは長期ピクチャに関するオーバーヘッドが大きくなる様態を実証する。
例えば、JCTVC‐F493は、長期ピクチャに関して、絶対POCを指定したバッファ記述にはlongterm_poc[i]フィールドを、時間IDを指定したバッファ記述にはlongterm_temporal_id[i]フィールドを用いた。これは、後に、長期ピクチャに関するメカニズムを含まないJCTVC‐F803において削除された。その後の議論では、(長期ピクチャ)POCをステップオーバーするアプローチが示された。
従来のアプローチでは、問題が生じる可能性がある。第1に、長期参照ピクチャと別のピクチャとの間の関係を指定するために、大量のオーバーヘッドデータが必要でありうる。例として、長期参照ピクチャと別のピクチャとの間のPOCの整数差を適切に表すために、多数のオーバーヘッドビットを割り当てる必要がありうる。第2に、この差を表すために限られたビット数が指定された場合には、(例えば数設定の循環により、)数が再使用されたときに差が曖昧に指示されうる。
参照ピクチャ追跡モジュール116は、参照オーバーヘッドを削減するために、以下にさらに詳細に記載される1つ以上のアプローチまたは方法を用いることができる。いくつかの例には、サイクルパラメータを用いること、およびラップ・インジケータまたはピクチャセット間の遷移に基づいてサイクルパラメータをデクリメントすることが含まれる。加えて、または代わりに、参照ピクチャ追跡モジュール116は、長期参照ピクチャ・インジケータおよび現ピクチャ使用フラグの1つ以上を受信しうる。参照ピクチャ追跡モジュール116は、現ピクチャ使用フラグに基づいて現ピクチャを復号するために長期参照ピクチャを利用すべきかどうかを判定しうる。いくつかの構成において、参照ピクチャ追跡モジュール116は、絶対POCに基づいて長期参照ピクチャを追跡しうる。
本明細書に記載される「参照ピクチャ」は、いくつかの構成では、代わりに参照ピクチャ群(例えば、フレームのグループ)であってもよいことに留意しなければならない。したがって、本明細書に記載される「復号された参照ピクチャ」は、いくつかの構成において、代わりに「復号参照ピクチャ群」であってもよい。例えば、本明細書に開示されるシステムおよび方法と併せて記載されるように、単一の参照ピクチャの代わりに参照ピクチャ群が適用されてもよい。参照ピクチャ群は、1つ以上の参照ピクチャを含みうる。参照ピクチャ群における2つ以上の参照ピクチャは、同じ時間インスタンスまたは異なる(例えば同様の)時間インスタンスに対応しうる。例えば、3次元(3D)符号化シナリオでは、ビットストリーム114は、複数のピクチャを含み、いくつかのピクチャが左ビューを参照し、いくつかのピクチャが右ビューを参照しうる。かくして、参照ピクチャ群は、特定の表示時間に対応する左右両ピクチャを識別することができる。
スケーラブル符号化シナリオ等の別の例では、ビットストリームは、異なる解像度のピクチャを含むことができる。この例では、参照ピクチャ群は、同じピクチャの異なる解像度版を含む(例えば識別する)ことができる。
図2は、デコーダ202の一構成を示したブロックダイアグラムである。デコーダ202は、電子デバイス204に含まれてもよい。例えば、デコーダ202は、高効率ビデオ符号化(HEVC)デコーダでありうる。デコーダ202および/またはデコーダ202に含まれるものとして示される1つ以上の要素は、ハードウェア、ソフトウェアまたは両方の組み合わせで実装されうる。デコーダ202は、ビットストリーム214(例えば、ビットストリーム214に含まれる1つ以上の符号化されたピクチャ)を復号のために受信しうる。いくつかの構成において、受信ビットストリーム214は、受信スライスヘッダ、受信PPS、受信バッファ記述情報等の受信オーバーヘッド情報を含みうる。ビットストリーム214に含まれる符号化されたピクチャは、1つ以上の符号化された参照ピクチャおよび/または1つ以上の他の符号化されたピクチャを含みうる。
(ビットストリーム214に含まれる1つ以上の符号化されたピクチャにおける)受信シンボルは、エントロピー復号モジュール254によってエントロピー復号され、それによって動き情報信号256、ならびに量子化、スケーリングおよび/または変換された係数258を産出しうる。
動き情報信号256は、動き補償モジュール260においてフレームメモリ264からの参照フレーム信号284の一部分と組み合わされ、それによってフレーム間予測信号268を産出しうる。量子化、デスケーリングおよび/または変換された係数258は、逆モジュール262によって逆量子化、スケーリングおよび逆変換され、それによって復号された残差信号270を産出しうる。復号された残差信号270は、結合信号272を産出するために予測信号278に加算されうる。予測信号278は、フレーム間予測信号268か、またはフレーム内予測モジュール274によって産出されたフレーム内予測信号276のいずれかから選択された信号でありうる。いくつかの構成において、この信号選択は、ビットストリーム214に基づきうる(例えば、ビットストリーム214によって制御される)。
フレーム内予測信号276は、(例えば、現フレームにおける)結合信号272から予め復号された情報から予測されうる。結合信号272は、さらにデブロッキングフィルタ280によってフィルタされうる。結果として生じるフィルタされた信号282は、フレームメモリ264に書き込まれうる。結果として生じるフィルタされた信号282は、復号されたピクチャを含みうる。
フレームメモリ264は、本明細書に記載されるような復号ピクチャバッファ(DPB)を含みうる。DPBは、短期または長期参照フレームとして保持されうる1つ以上の復号されたピクチャを含みうる。フレームメモリ264は、復号されたピクチャに対応するオーバーヘッド情報も含みうる。例えば、フレームメモリ264は、スライスヘッダ、ピクチャパラメータセット(PPS)情報、サイクルパラメータ、バッファ記述情報などを含みうる。これらの情報の1つ以上は、エンコーダ(例えば、エンコーダ108、オーバーヘッド・シグナリングモジュール112)からシグナリングされうる。フレームメモリ264は、復号されたピクチャ218を供給することができる。
デコーダ202は、参照ピクチャ追跡モジュール216を含みうる。参照ピクチャ追跡モジュール216は、削減された参照オーバーヘッドにより、フレームメモリ264における1つ以上の参照ピクチャを追跡しうる。一例において、参照ピクチャ追跡モジュール216は、サイクルパラメータを用い、かつ受信されたラップ・インジケータに基づいてサイクルパラメータを修正(例えばデクリメント)して、長期参照ピクチャを追跡しうる。別の例では、復号されているピクチャに対して、すべての参照ピクチャのサイクルパラメータの更新が行われうる。この更新手順は、現ピクチャ(例えば、復号されているピクチャ)毎に一回実行されうる。サイクル間の遷移は、暗黙的にPOCの助けによって追跡されうる。時には、(例えば、順序を違えたピクチャ復号において生じうるように、ピクチャセット「n」からピクチャセット「n−1」へ遷移するときには)サイクルパラメータが増加しうる。指定ピクチャに基づいて参照ピクチャを追跡する1つ以上のアプローチのさらなる詳細が以下に示される。
加えて、または代わりに、参照ピクチャ追跡モジュール216は、長期参照ピクチャ・インジケータを用いて長期参照ピクチャを追跡してもよい。長期参照ピクチャ・インジケータは、シーケンス・パラメータセット(SPS)、ピクチャパラメータセット(PPS)および/または適応パラメータセット(APS)等の、デコーダ202によって取得されるパラメータセットの一部でありうる。長期参照ピクチャ・インジケータの受信および追跡は、図18に関連してさらに詳述する。
参照ピクチャ追跡モジュール216は、現ピクチャ使用フラグを受信しうる。現ピクチャ使用フラグは、1つ以上のパラメータセット(例えばSPS、PPS、APS)において受信されうる。参照ピクチャ追跡モジュール216は、現ピクチャ使用フラグに基づいて現ピクチャを復号するために長期参照ピクチャを利用すべきかどうかを判定しうる。いくつかの構成において、参照ピクチャ追跡モジュール216は、絶対POCに基づいて長期参照ピクチャを追跡しうる。いくつかの構成において、電子デバイス204は、図18に関連して説明される方法1800を行いうる。
本明細書に開示されるシステムおよび方法のいくつかの構成は、修正されたバッファ記述を用いうる。修正されたバッファ記述の例が以下に示される。バッファ記述は、長期参照ピクチャに関する「POC」、「poc_cycle」および「temporalID」を含むように修正されうる。「poc_cycle」は、本明細書に記載されるサイクルパラメータの一例でありうることに留意しなければならない。本明細書に開示されるシステムおよび方法に従って示される(修正された)バッファ記述、(修正された)シンタックスおよび/またはパラメータが、削減されたオーバーヘッドの参照を可能にしうる。
次の表1は、従来のアプローチでのPPS内のバッファ記述と、本明細書に開示されるシステムおよび方法による1つの提案アプローチとを比較した一例を示す。従来のアプローチは、JCTVC‐F493における作業をさらに進めるために作成された「アドホックグループ21の候補作業草案テキスト(candidate working draft text of ad‐hoc group21)」文書(AHG21)に詳述される。AHG21(JCTVC‐F803)が「負のピクチャ」(例えば、負のdeltaPOC値を有するピクチャ)と「正のピクチャ」(例えば、正のdeltaPOC値を有するピクチャ)とを別のグループに分けて指定することに留意しなければならない。
上掲の表1において、[数3](POC0,poc_cycles0,temporalID3)および[数4](POC1,poc_cycles1,temporalID4)は、長期(参照)ピクチャを表す。バッファ記述が、短期参照ピクチャに関しては(それぞれ、POCおよびTemporalIDフィールドに対応する)2つのリストPOCBDおよびTemporalIDBDを含みうることに留意しなければならない。そのうえ、バッファ記述は、長期参照ピクチャに関しては(それぞれPOC、poc_cycleおよびTemporalIDフィールドに対応する)3つのリスト:POCBD、POC_CYCLE_BDおよびTemporalIDBDを含みうる。
いくつかの構成において、複数のバッファ記述が、ピクチャパラメータセット内に定義される。インデックスiを持つ各バッファ記述は、参照ピクチャに関するリスト:POCBD_pps[i]、POC_CYCLE_pps[i]、DeltaPOCBD_pps[i]およびTemporalIDBD_pps[i]ならびに変数NumberOfPicturesInBD_pps[i]を含む。i番目のリストPOCBD_pps[i]は、参照ピクチャのピクチャオーダーカウント値を含む。i番目のリストPOC_CYCLE_pps[i]は、参照ピクチャのpoc_cycle値を含む。i番目のリストTemporalIDBD_pps[i]は、参照ピクチャの対応する時間識別子を含む。そのうえ、i番目のリストTemporalIDBD_pps[i]は、NumberOfPicturesInBD_pps[i]エントリを含む。リスト群は、POC_pps、POC_CYCLE_pps、DeltaPOCBD_ppsおよびTemporalIDBD_ppsと呼ばれる。deltaPOCの参照では、1つのリストDeltaPOCBD_pps[i]が参照ピクチャのdeltaPOC値を含む。アドホックグループ21の候補作業草案テキストにおいて、DeltaPOCBD_ppsがDeltaPOCBDと呼ばれうることに留意しなければならない。リストPOCBD_pps[i]およびリストDeltaPOCBD_pps[i]におけるエントリの合計がNumberOfPicturesInBD_pps[i]の値によって与えられる。そのうえ、POCBD_pps[i]およびPOC_CYCLE_pps[i]のエントリの数は同じである。
AHG21に示されるシンタックスが、固定された長期参照を適切にサポートしないことに留意しなければならない。次のリスティング(1)は、アドホックグループ21(AHG21)の候補作業草案テキストに必要とされるビットストリームシンタックス修正の一例を示す。従来のアプローチに加えられるべき変更は、リスティング(1)に太字テキストで示される。
リスティング(1)
positive_pictures_in_buffer_descriptions_flagは、正のdeltaPOCを持つ任意のバッファ記述ピクチャがあるかどうかを指定する。bits_for_temporal_id_in_buffer_descriptionsは、temporal_id_negative_pps[i][j]、temporal_id_positive_pps[i][j]、temporal_id_poc_pps[i][j]、temporal_id_negative[i]およびtemporal_id_positive[i]に用いられるビット数を指定する。number_of_bdsは、ピクチャパラメータセットにおけるバッファ記述の数を指定する。number_of_negative_pictures_pps[i]は、リストDeltaPOCBD_pps[i]における負値を持つエントリの数を指定する。number_of_negative_pictures_pps[i]は、OffsetBD[i]の値をOffsetBD[i]=number_of_negative_pictures_pps[i]として定義する。number_of_negative_pictures_pps[i]の値は、両端値を含めて、0からmax_num_ref_framesまでの範囲内にあるものとする。negative_delta_poc_minus_one_pps[i][j]は、POC値における絶対距離を指定する。max_num_ref_framesは、シーケンスにおける任意のピクチャをインター予測するための復号処理に用いられうる参照フレーム、相補的な参照フィールド対、および対を成さない参照フィールドの最大数を指定する。ここで、参照フィールドは、参照フレームの一部分を示す。例えば、インターレースビデオを用いたアプリケーションでは、参照フレームが2つの参照フィールドからなりうる。第1の参照フィールドは、参照フレームにおけるデータの第1のサブセットを含むことができ、第2の参照フィールドは、参照フレームにおけるデータの第2のサブセットを含むことができ、第1のサブセットと第2のサブセットとは異なるデータに対応する。
negative_delta_poc_minus_one_pps[i][j]は、jが0に等しければ、変数DeltaPOCBD_pps[i][j]の値をDeltaPOCBD_pps[i][j]=−(negative_delta_poc_minus_one_pps[i][j]+1)として定義する。また、negative_delta_poc_minus_one_pps[i][j]は、j>0であれば、変数DeltaPOCBD_pps[i][j]の値をDeltaPOCBD_pps[i][j]=DeltaPOCBD_pps[i][j−1]−(negative_delta_poc_minus_one_pps[i][j]+1)として定義する。DeltaPOCBD_pps[i][j]は、−1から−MaxPOC/2までの範囲内にあるものとする。
temporal_id_negative_pps[i][j]は、時間識別子を指定し、bits_for_temporal_id_in_buffer_descriptionsビットによって表されるものとする。temporal_id_negative_pps[i][j]は、リストTemporalIDBD_pps[i]に追加される。上記の一構成において、追加操作は、添付操作である。別の構成において、添付操作は、リストにおける項目を所定の順序で置き換える操作である。temporal_id_negative_pps[i][j]は、両端値を含めて、0からmax_temporal_layers_minus1までの範囲内にあるものとする。max_temporal_layers_minus1+1は、シーケンスに存在する時間的レイヤの最大数を指定する。
number_of_positive_pictures_in_bd_pps[i]は、リストDeltaPOCBD_pps[i]における正の値を有するエントリの数を指定する。number_of_positive_pictures_in_bd_pps[i]の値は、両端値を含めて、0からmax_num_ref_frames−OffsetBD[i]までの範囲内にあるものとする。number_of_positive_pictures_in_bd_pps[i]シンタックス要素が存在しないとき、number_of_positive_pictures_in_bd_pps[i]の値は、0に等しいと推定されるものとする。
delta_poc_minus_one_pps[i][j]は、POC値における絶対距離を指定する。delta_poc_minus_one_pps[i][j]は、変数DeltaPOCBD_pps[i][j+OffsetBD[i]]の値を、jが0に等しければ、DeltaPOCBD_pps[i][j+OffsetBD[i]]=delta_poc_minus_one_pps[i][j]+1として、j>0であれば、DeltaPOCBD_pps[i][j+OffsetBD[i]]=DeltaPOCBD_pps[i][j−1+OffsetBD[i]]+delta_poc_minus_one_pps[i][j]+1として定義する。DeltaPOCBD_pps[i][j+OffsetBD[i]]は、1からMaxPOC/2−1までの範囲内にあるものとする。
temporal_id_positive_pps[i][j]は、時間識別子を指定し、bits_for_temporal_id_in_buffer_descriptionsビットによって表されるものとする。temporal_id_positive_pps[i][j]は、変数TemporalIDBD_pps[i][j]の値をTemporalIDBD_pps[i][j+OffsetBD[i]]=temporal_id_positive_pps[i][j]として定義する。temporal_id_positive_pps[i][j]は、両端値を含めて、0からmax_temporal_layers_minus1までの範囲内にあるものとする。
リスティング(1)におけるパラメータの記述の例は、次のように示される。number_of_longterm_pictures_pps[i]は、リストPOCBD_pps[i]およびPOC_CYCLE_BD_pps[i]におけるエントリの数を指定する。number_of_longterm_pictures_pps[i]の値は、両端値を含めて、0からmax_num_ref_framesまでの範囲内にあるものとする。max_num_ref_framesは、短期および長期参照フレームの最大数を指定する。poc_pps[i][j]は、POC値を指定し、リストPOCBD_pps[i]に追加されるべき値を定義する。上記の一構成において、追加操作は、添付操作である。別の構成において、添付(または追加)操作は、リストにおける項目を所定の順序で置き換える操作である。poc_pps[i][j]は、0からMaxPOC−1までの範囲内にあるものとする。
poc_cycle_pps[i][j]は、poc_cycle(例えば、サイクルパラメータ)値を指定し、リストPOC_CYCLE_BD_pps[i]に追加されるべき値を定義する。上記の一構成において、追加操作は、添付操作である。別の構成において、添付(または追加)操作は、リストにおける項目を所定の順序で置き換える操作である。poc_cycle_pps[i][j](例えば、サイクルパラメータ)は、いくつかの構成においてゼロ以下でありうる。かかる場合には、サイクルパラメータを表すために符号付き整数が用いられうる。他の構成では、サイクルパラメータを表すために符号なし整数が用いられてもよい。
temporal_id_poc_pps[i][j]は、時間識別子を指定し、bits_for_temporal_id_in_buffer_descriptions>0であれば存在するものとする。temporal_id_poc_pps[i][j]は、リストTemporalIDBD_pps[i]におけるエントリの値を定義する。temporal_id_poc_pps[i][j]は、リストTemporalIDBD_pps[i]に追加される。上記の一構成において、追加操作は、添付操作である。別の構成において、添付(または追加)操作は、リストにおける項目を所定の順序で置き換える操作である。temporal_id_poc_pps[i][j]は、両端値を含めて、0からmax_temporal_layers_minus1までの範囲内にあるものとする。max_temporal_layers_minus1+1は、シーケンスに存在する時間的レイヤの最大数を指定する。変数NumberOfPicturesInBD_pps[i]が、number_of_negative_pictures_pps[i]+number_of_positive_pictures_pps[i]+number_of_longterm_pictures_pps[i]として算出されうることに留意しなければならない。
i番目のピクチャパラメータセットのバッファ記述で伝送される、参照ピクチャに関する負および正のdeltaPOC値は、リストDeltaPOCBD_pps[i]に追加される。上記の一構成において、追加操作は、添付操作である。別の構成において、添付(または追加)操作は、リストにおける項目を所定の順序で置き換える操作である。
次のリスティング(2)は、複数のバッファ記述が、以下のシンタックスを用いて異なるサイクルパラメータ(例えば、poc_cycles)を持つPPS内に作成されうる代わりの構成例を示す。従来のアプローチに加えられるべき変更は、リスティング(2)に太字テキストで示される。
リスティング(2)
リスティング(2)において、さらなるパラメータの記述の例が次のように示される。1に設定されたときに、poc_cycle_steps_flagは、シグナリングされたバッファ記述モデルとpoc_cycleカウント以外は同一の、追加のバッファ記述を、シグナリングされるバッファ記述モデルに関して生成することを指定する。poc_cycle_steps_flagは、デフォルトで0とする。そのうえ、poc_cycle_stepsは、シグナリングされるバッファ記述モデルに関して生成しなければならない追加のバッファ記述の数を指定する。追加のバッファ記述は、poc_cycleカウントを減少させなければならないということ以外は、シグナリングされたバッファ記述と同一であるものとする。一構成において、生成される追加のバッファ記述は、−1、−2、−3、・・・、−(poc_cycle_steps)のpoc_cycle_pps[i][j]値を有する。
いくつかの構成において、ビットストリーム内で解像度の切り替えを可能にすることができる。これらの構成では、参照ピクチャの解像度が現ピクチャの解像度と異なってもよい。従って、参照ピクチャを正しい解像度にスケーリングするためにどのメカニズムを用いうるかを知ることが有益であろう。メカニズムをシグナリングする一方法は、バッファ記述とともにメカニズムを明示的にシグナリングすることである。例えば、エンコーダ108(例えば、オーバーヘッド・シグナリングモジュール112)がスケーリングパラメータ「s」をデコーダ102へシグナリングしうる。かくして、代わりのバッファ記述を表2に示すことができる。
表(2)において、最初の2つのエントリは、現ピクチャの解像度に一致する解像度を有する。しかしながら、残りの3つのエントリは、異なる解像度を有し、それぞれスケーリングパラメータ[数5]s0、s1.s2を用いうる。スケーリングパラメータは、選択的にシグナリングされうる。例えば、スケーリングパラメータは、現ピクチャおよび参照ピクチャが異なる解像度を有する場合にのみシグナリングされうる。別の構成では、スケーリングパラメータは、常にシグナリングされうる。さらに別の構成では、スケーリングパラメータは、例えば、現ピクチャの特性(例えば、解像度)および参照ピクチャの特性(例えば、解像度)によってインデックス付けされたルックアップテーブルを用いることにより(デコーダによって)暗黙的に推定されうる。
さらに別の構成では、スケーリングパラメータは、バッファ記述に定義されたピクチャの任意のサブセットに関してシグナリングされうる。例えば、スケーリングパラメータは、正のdeltaPOC値を用いてシグナリングされる参照ピクチャのサブセット、負のdeltaPOC値を用いてシグナリングされる参照ピクチャのサブセット、POCおよびpoc_cycleを用いてシグナリングされるピクチャのサブセットに関してシグナリングされうる。一構成において、サブセットはリスト全体を含みうる。一例が次の表(3)に示され、表中、[数6]negativeDeltaPOC0および[数7]negativeDeltaPOC1は、負のデルタPOC値であり、[数8]positiveDeltaPOC2は、正のデルタPOC値であり、[数9]s0、[数10]s1、[数11]s2、[数12]s3、および[数13]s4は、それぞれ第1のエントリ、第2のエントリ、第3のエントリ、第4のエントリおよび第5のエントリに関するスケーリングパラメータである。
さらに別の構成では、スケーリングパラメータは、復号ピクチャバッファに維持されるべき参照ピクチャの1つ以上の解像度を指示しうる。さらに別の構成では、スケーリングパラメータは、動き補償処理に用いるべき参照ピクチャの解像度をシグナリングするために用いられうる。さらに別の構成では、参照ピクチャおよび復号されているピクチャの解像度が同じでない場合、スケーリングパラメータは、予測を生成するために用いるべき動き補償処理を指示する。
一構成において、スケーリングパラメータは、画素における水平および/または垂直解像度の変化をシグナリング(例えば指示)する。一構成において、スケーリングパラメータは、所望の水平および/または垂直解像度と元の水平および/または垂直解像度との間の比をシグナリング(例えば指示)する。一構成において、スケーリングパラメータは、2タプルであり、第1の値は、水平解像度に関するスケーリングを識別し、第2の値は、垂直解像度に関するスケーリングを識別する。
いくつかの構成において、所望の解像度を得るために、参照ピクチャの変換係数がスケーリングパラメータに基づいて処理されうる。これは、参照ピクチャを符号化する間に或る閾値より大きいブロックサイズのみを許容することによって、より良好な解像度の適応を可能にするために有益であろう。
さらに別の構成では、所望の解像度を得るために、参照ピクチャの再構成画素がスケーリングパラメータに基づいて処理されうる。これらの構成が本明細書に開示されるすべての参照ピクチャインデックス付けスキームに適用できることに留意しなければならない。
リスティング(3)は、PPSに関するシンタックスのAHG21からの修正の別の例を示す。特に、リスティング(3)は、AHG21に概説されるような、スライスヘッダに用いられるバッファ記述シンタックスの一例を示す。しかしながら、本明細書に開示されるシステムおよび方法による、AHG21に示されるシンタックスへの修正は、リスティング(3)に太字テキストで示される。
リスティング(3)
リスティング(3)におけるパラメータの記述の例は、次のように示される。number_of_negative_picturesは、負のデルタPOCエントリの数を指定する。number_of_negative_picturesは、Offsetの値をOffset=number_of_negative_picturesとして定義する。number_of_negative_picturesの値は、両端値を含めて、0からmax_num_ref_framesまでの範囲内にあるものとする。
negative_delta_poc_minus_one[i]は、POC値における絶対距離を指定する。negative_delta_poc_minus_one[i]は、変数POCBD[i]の値を、iが0に等しければ、POCBD[i]=(pic_order_cnt+MaxPOC−(negative_delta_poc_minus_one[i]+1))%MaxPOCとして、i>0であれば、POCBD[i]=(POCBD[i−1]+MaxPOC−(negative_delta_poc_minus_one[i]+1))%MaxPOCとして定義する。ここで、pic_order_cntは、スライスヘッダでシグナリングされるような、現ピクチャのPOCである。negative_delta_poc_minus_one[i]の値は、両端値を含めて、0からMaxPOC−1までの範囲内にあるものとする。POCBD[i]の値は、DiffPOC(CurrPic,refPic)の値が−1からMaxPOC/2までの範囲内にあるものとする。ここで、refPicは、POCBD[i]に等しいpic_order_cntを持つ参照ピクチャである。
DiffPOC(picA,picB)は、次のように指定される。
コード1
関数POC(picX)は、次のように指定される。POC(picX)=picXのpic_order_cnt。POC_CYCLE_BD[i]は、i番目の負のdeltaPOC参照ピクチャのpoc_cycleに設定される。i番目の負のdeltaPOC参照ピクチャのpoc_cycleは、指定ピクチャに基づいて算出される。
temporal_id_negative[i]は、時間識別子を指定し、bits_for_temporal_id_in_buffer_descriptionsビットによって表されるものとし、ここでbits_for_temporal_id_in_buffer_descriptionsは、現ピクチャによって用いられるピクチャパラメータセットからのシンタックス要素である。temporal_id_negative[i]は、変数TemporalIDBD[i]の値をTemporalIDBD[i]=temporal_id_negative[i]として定義する。temporal_id_negative[i]は、両端値を含めて、0からmax_temporal_layers_minus1までの範囲内にあるものとする。TemporalIDBD[i]の値は、TemporalIDBD[i]が、POCBD[i]に等しいpic_order_cntを持つ参照ピクチャのNALヘッダでシグナリングされる、temporal_idに等しくなければならないように制限される。
number_of_positive_picturesは、リストDeltaPOCBD_pps[i]における正の値を持つエントリの数を指定する。number_of_positive_picturesの値は、両端値を含めて、0からmax_num_ref_frames−Offsetまでの範囲内にあるものとする。number_of_positive_picturesシンタックス要素が存在しないとき、number_of_positive_picturesの値は、0に等しいと推定するものとする。
delta_poc_minus_one[i]は、POC値における絶対距離を指定する。delta_poc_minus_one[i]は、変数POCBD[i+Offset]の値を、iが0に等しければ、POCBD[i+Offset]=(pic_order_cnt+(delta_poc_minus_one[i]+1))%MaxPOCとして、i>0であれば、POCBD[i+Offset]=(POCBD[i−1+Offset]+(delta_poc_minus_one[i]+1))%MaxPOCとして定義する。ここで、pic_order_cntは、スライスヘッダでシグナリングされるような、現ピクチャのPOCである。delta_poc_minus_one[i]の値は、両端値を含めて、0からMaxPOC−1までの範囲内にあるものとする。POCBD[i+Offset]の値は、DiffPOC(currPic,refPic)の値が1からMaxPOC/2−1までの範囲内にあるものとし、ここでrefPicは、POCBD[i+Offset]に等しいpic_order_cntを持つ参照ピクチャである。POC_CYCLE_BD[i+Offset]は、i番目の正のdeltaPOC参照ピクチャのpoc_cycleに設定される。i番目の正のdeltaPOC参照ピクチャのpoc_cycleは、指定ピクチャに基づいて算出される。
temporal_id_positive[i]は、時間識別子を指定し、bits_for_temporal_id_in_buffer_descriptionsビットによって表されるものとし、ここでbits_for_temporal_id_in_buffer_descriptionsは、現ピクチャによって用いられるピクチャパラメータセットからのシンタックス要素である。temporal_id_positive[i]は、変数TemporalIDBD[i+Offset]の値をTemporalIDBD[i+Offset]=temporal_id_positive[i]として定義する。temporal_id_positive[i]は、両端値を含めて、0からmax_temporal_layers_minus1までの範囲内にあるものとする。TemporalIDBD[i]の値は、TemporalIDBD[i]が、POCBD[i]に等しいpic_order_cntを持つ参照ピクチャのNALヘッダでシグナリングされる、temporal_idに等しくなければならないように制限される。
1に等しいbd_poc_cycle_update_flagは、参照されるバッファ記述のPOC_CYCLE_BD_pps[bd_idx][j]が、現ピクチャに関して、オーバーライドされるべきであることを指定する。いくつかの構成において、将来のフレームも、poc_cycle情報をオーバーライドすることができる。bd_poc_cycle_update_flagが0であれば、参照されるバッファ記述の元のPOC_CYCLE_BD_pps[bd_idx][j]を用いるべきである。poc_cycle_pps_override[j]は、現ピクチャに関してのみ、POC_CYCLE_BD_pps[bd_idx][j]内の値をオーバーライドするために用いるべき値を指定する。代わりの構成では、poc_cycle_pps_override[j]がオフセットを指定する。現ピクチャに関してのみ、POC_CYCLE_BD_pps[bd_idx][j]の代わりに(POC_CYCLE_BD_pps[bd_idx][j]+poc_cycle_pps_override[j])を用いることができる。
poc_pps_override[j]は、現ピクチャに関してのみ、POCBD_pps[bd_idx][j]内の値をオーバーライドするために用いるべき値を指定する。代わりの構成では、poc_pps_override[j]がオフセットを指定する。現ピクチャに関してのみ、POCBD_pps[bd_idx][j]の代わりに(POCBD_pps[bd_idx][j]+poc_pps_override[j])を用いることができる。temporal_id_pps_override[j]は、現ピクチャに関してのみ、TemporalIDBD_pps[bd_idx][j]内の値をオーバーライドするために用いるべき値を指定する。代わりの構成では、temporal_id_pps_override[j]がオフセットを指定する。現ピクチャに関してのみ、TemporalIDBD_pps[bd_idx][j]の代わりに(TemporalIDBD_pps[bd_idx][j]+temporal_id_pps_override[j])を用いることができる。
number_of_longterm_picturesは、リストPOCBDおよびPOC_CYCLE_BDにおける長期ピクチャエントリの数を指定する。number_of_longterm_picturesの値は、両端値を含めて、0からmax_num_ref_framesまでの範囲内にあるものとする。max_num_ref_framesは、短期および長期参照フレームの最大数を指定する。poc[j]は、リストPOCBDに追加されるべきPOC値を指定する。上記の一構成において、追加操作は、添付操作である。別の構成において、添付(または追加)操作は、リストにおける項目を所定の順序で置き換える操作である。poc[j]は、0からMaxPOC−1までの範囲内にあるものとする。
poc_cycle[j](例えば、サイクルパラメータ)は、poc_cycle値を指定し、リストPOC_CYCLE_BDに追加されるべき値を定義する。上記の一構成において、追加操作は、添付操作である。別の構成において、添付(または追加)操作は、リストにおける項目を所定の順序で置き換える操作である。poc_cycle[j]は、ゼロ以下であってもよく、または異なる数値範囲を占めてもよい。
temporal_id_poc[j]は、時間識別子を指定し、bits_for_temporal_id_in_buffer_descriptionビットによって表されるものとする。temporal_id_poc[j]は、リストTemporalIDBDに追加されるべき値を定義する。上記の一構成において、追加操作は、添付操作である。別の構成において、添付(または追加)操作は、リストにおける項目を所定の順序で置き換える操作である。temporal_id_poc[i][j]は、両端値を含めて、0からmax_temporal_layers_minus1までの範囲内にあるものとする。max_temporal_layers_minus1+1は、シーケンスに存在する時間的レイヤの最大数を指定する。
いくつかの構成において、number_of_longterm_pictures_pps[bd_idx]は、リスティング(3)に示される「for」ループより前に伝送され、それによってPPSを持つスライスヘッダへの依存性を回避しうる。代わりに、bd_poc_cycle_update_flagは、別のパラメータnum_longterm_poccycle_override_countで置き換えられうる。例えば、上記のリスティング(3)における該当コードは、「If num_longterm_poccycle_override_count>0 then For(j=0;j<num_longterm_poccycle_override_count;j++){....}」で置き換えられうる。
1に等しいbd_reference_flagは、現ピクチャのバッファ記述が、スライスヘッダで伝送されないシンタックス要素を用いて作成されることを指定する。一構成において、現ピクチャに関するバッファ記述は、ピクチャパラメータセットにおけるシンタックス要素を用いて作成される。0に等しいbuffer_description_reference_flagは、現ピクチャのバッファ記述が、スライスヘッダで伝送されるバッファ記述とスライスヘッダで伝送されないバッファ記述との組み合わせによって作成されることを指定する。一構成において、スライスヘッダで伝送されないバッファ記述は、ピクチャパラメータセットで伝送される。
bd_idxは、利用可能なバッファ記述のセットにおけるバッファ記述を識別する。一構成において、bd_idxは、現ピクチャのバッファ記述の作成に用いるものとするリストPOCBD_pps、DeltaPOCBD_pps、POC_CYCLE_BD_pps、およびTemporalIDBD_ppsにおけるインデックスを指定する。
(DeltaPOCBD_pps[bd_idx],TemporalIDBD_pps[bd_idx])においてdeltaPOC参照されたピクチャに対応する値は、ピクチャオーダーカウント(例えば、POC)、サイクルパラメータ(例えば、poc_cycle)および時間識別子に変換されて、ピクチャバッファ記述リストPOCBD、POC_CYCLE_BDおよびTemporalIDBDに追加される。参照ピクチャに対応するリスト(POCBD_pps[bd_idx]、POC_CYCLE_BD_pps[bd_idx]、TemporalIDBD_pps[bd_idx])における値は、ピクチャバッファ記述リストPOCBD、POC_CYCLE_BDおよびTemporalIDBDに追加される。上記の一構成において、追加操作は、添付操作である。別の構成において、添付(または追加)操作は、リストにおける項目を所定の順序で置き換える操作である。
1に等しいcombine_with_reference_flagは、リストPOCBD、POC_CYCLE_BDおよびTemporalIDBDに値を割り当てるために、アクティブなPPSからのシンタックス要素が、明示的なシグナリングと組み合わせて用いられることを指定する。combine_with_reference_flagシンタックス要素が存在しないとき、combine_with_reference_flagの値は、0に等しいと推定するものとする。
bd_combination_idxは、現ピクチャのバッファ記述の作成のために、明示的なシグナリングと組み合わせて用いるものとする、リストDeltaPOCBD_ppsおよびTemporalIDBD_ppsにおけるインデックスを指定する。bd_combination_idxは、ceil(log2(number_of_bds))ビットによって表されるものとする。bd_combination_idxの値は、0からnumber_of_bds−1までの範囲内にあるものとし、ここでnumber_of_bdsは、現ピクチャによって用いられるピクチャパラメータセットからのシンタックス要素である。次に、所定のメカニズムを用いて、POCBD、POC_CYCLE_BDおよびTemporalIDBDリストにおける現ピクチャに、リストDeltaPOCBD_pps[bd_idx]、POCBD_pps[bd_idx]、POC_CYCLE_BD_pps[bd_idx]およびTemporalIDBD_pps[bd_idx]からの値が追加される。上記の一構成において、追加操作は、添付操作である。別の構成において、添付(または追加)操作は、リストにおける項目を所定の順序で置き換える操作である。
本明細書に記載されるシステムおよび方法が適用されうるやり方のいくつかの例が以下に示される。POC=0オンを持つピクチャは、POC=[数14]MaxPOC−1を持つピクチャおよび後続ピクチャセットからのPOC=0を持つピクチャによって用いられる長期(参照)ピクチャであると仮定する。長期(参照)ピクチャは、様々な方法で指示されうる。
第1の方法では、PPSに、バッファ記述A:{POC=0,poc_cycle=0,temporalID}およびバッファ記述B:{POC=0,poc_cycle=−1,temporalID}を含む2つのバッファ記述がある。POC=[数15]MaxPOC−1を持つピクチャは、バッファ記述Aを指すことになろう。後続ピクチャセットからのPOC=0を持つピクチャは、バッファ記述Bを参照することになろう。
第2の代わりの方法では、POC=[数16]MaxPOC−1を持つピクチャは、バッファ記述Aを指すことになろう。後続ピクチャセットからのPOC=0を持つピクチャは、バッファ記述Aを参照することになろう。バッファ記述Aは、{POC=0,poc_cycle=0,temporalID}に対応する。参照されるピクチャが前の[数17][0,・・・,MaxPOC−1]ピクチャセットに属するので、正しいピクチャを参照するためには、poc_cycleが−1に設定されるべきである。従って、現在0に設定されているバッファ記述Aに関するpoc_cycle値は、スライスヘッダで「−1」を伝送することによって、現スライスに関してのみ、オーバーライド(例えば異なる値に設定)されうる。いくつかの構成において、ピクチャにおける第1のスライスは、現ピクチャに関してのみ、バッファ記述のpoc_cycle値をオーバーライドするために用いられうる。
いくつかの構成において、ハイレベルでシグナリングされる参照ピクチャのリストは、より微細なレベルで修正されうる。例えば、参照ピクチャのリストは、PPSにおいて伝送されるバッファ記述でシグナリングされうる(例えば、ハイレベルでシグナリングされる)。しかしながら、PPSにおいて伝送されるバッファ記述は、修正(例えば、より微細なレベルで修正)されうる。例えば、バッファ記述が、既存のエントリを削除することによって修正されうる。加えて、または代わりに、PPSからのバッファ記述情報が、新しいエントリを追加するか、またはエントリを置き換えるべく修正されうる。PPSからのバッファ記述情報は、例えば、空のスロットがなにも利用できない場合には、所定のメカニズムを用いて新しいエントリを追加し、現エントリを置き換えるべく修正されてもよい。修正を可能にする利益は、よりハイレベルの制御が達成できることである。これは、PPSからのバッファ記述を修正なしに用いる代わりに、または最初の「n」エントリのみを置き換えることに加えて、あるいは置き換えることによって可能である。
いくつかの構成において、スロットリストにおけるエントリを置き換えるために、追加のシンタックスが定義されうる。この場合、置き換えられるリストにおけるインデックス、およびそのインデックスにおいて現エントリを置き換えうるエントリが指定されることになろう。
加えて、または代わりに、スロットリストに空きがない場合、置き換えを伴うリストにエントリを追加するために、追加のシンタックスが定義されうる。この場合、置き換えるべきリストにおけるインデックスは、(例えば、エンコーダ108またはオーバーヘッド・シグナリングモジュール112から)明示的にシグナリングされるか、またはビットストリームで前に伝送された情報を用いて(例えば、デコーダ102によって)暗黙的に推定されうる。
リスティング(4)は、PPSに関するシンタックスのAHG21からの修正の別の例を示す。特に、リスティング(4)は、AHG21に概説されるような、スライスヘッダに用いられるバッファ記述シンタックスの別の例を示す。しかしながら、本明細書に開示されるシステムおよび方法による、AHG21に示されるシンタックスへの修正が、リスティング(4)に太字テキストで示される。
リスティング(4)
リスティング(4)は、リスティング(3)と同様の多くの要素を含む。リスティング(4)は、参照ピクチャの削除および/または追加を可能にするスライスヘッダのシンタックス修正も含む。
リスティング(4)におけるパラメータの記述の例は、次のように示される。bd_poc_cycle_delete_countは、現ピクチャに関して(例えば、現ピクチャに関してのみ)、リスト:POCBD_pps[bd_idx]、temporalIDBD_pps[bd_idx]およびPOC_CYCLE_BD_pps[bd_idx]から削除されるエントリの数を指定する。いくつかの構成において、bd_poc_cycle_delete_countは、0以上でありうる。
bd_pps_delete_idx[j]は、現ピクチャに関して、POC_CYCLE_BD_pps[bd_idx][bd_pps_delete_idx[j]]エントリ、temporalIDBD_pps[bd_idx][bd_pps_delete_idx[j]]エントリ、およびPOCBD_pps[bd_idx][bd_pps_delete_idx[j]]エントリが、リストにおいて削除されることを指定する。いくつかの構成において、ピクチャが一旦削除されると、もはや後続の復号されるピクチャによる参照のためにそれを利用することはできない。他の構成において、すべての削除が一旦完了すると、リストPOCBD_pps[bd_idx]、temporalIDBD_pps[bd_idx]およびPOC_CYCLE_BD_pps[bd_idx]における残りのエントリは、空のスロットを占有するために、最初のインデックス(例えば、ゼロ番目のインデックス)に向って移されうる。この処理は、任意の2つの占有スロット間に空のスロットがなにも残らないように実施されうる。ここで、スロットは、バッファ記述におけるエントリに対応する。例えば、リストが[Slot0=A][Slot1=empty][Slot2=B][Slot3=C][Slot4=empty][Slot5=D]であれば、削除後に、エントリは、任意の2つの占有スロット間に空のスロットがなにも残らなくなるまでスロット0に向って移される。この例では、結果として生じるリストは、[Slot0=A][Slot1=B][Slot2=C][Slot3=D][Slot4=empty][Slot5=empty]である。
bd_poc_cycle_append_countは、現ピクチャに関して、リスト:POCBD_pps[bd_idx]、temporalIDBD_pps[bd_idx]およびPOC_CYCLE_BD_pps[bd_idx]に添付されるべきエントリの数を指定する。いくつかの構成において、bd_poc_cycle_append_countは、0以上でありうる。
poc_pps_append[j]は、現ピクチャに関して(例えば、現ピクチャに関してのみ)、リストPOCBD_pps[bd_idx]に添付されるべきPOC値を指定する。いくつかの構成において、リストに任意の空のスロットが存在する場合、追加は、ゼロインデックスに最も近い空のスロットで開始し、その後、スロットインデックスの昇順に行われうる。
poc_cycle_pps_append[j]は、現ピクチャに関して(例えば、現ピクチャに関してのみ)、リストPOC_CYCLE_BD_pps[bd_idx]に添付されるべきpoc_cycle値を指定する。いくつかの構成において、リストに任意の空のスロットが存在する場合、ゼロインデックスに最も近い空のスロットが最初に満たされうる。さらに、スロットインデックスの昇順にスロットが満たされうる。いくつかの構成において、POCBD_pps[bd_idx]およびPOC_CYCLE_BD_pps[bd_idx]に対してエントリをオーバーライドする、エントリを削除する、およびエントリを添付するこれらの操作が、所定の順序で実施される。
temporal_id_pps_append[j]は、現ピクチャに関して(例えば、現ピクチャに関してのみ)、リストTemporalIDBD_pps[bd_idx]に添付されるべき時間識別子値を指定する。いくつかの構成において、リストに任意の空のスロットが存在する場合、追加は、ゼロインデックスに最も近い空のスロットで開始し、その後、スロットインデックスの昇順に行われうる。
本明細書に開示されるシステムおよび方法の構成のいくつかの例が以下に示される。一構成において、3タプル(POC,poc_cycle,temporalID)は、2タプル(LTSlotIdx,temporalID)に置き換えられうる。LTSlotIndexは、長期DPBにおける位置を指すスロットインデックスでありうる。このアプローチの1つの可能な利益は、ビットレート・オーバーヘッドを削減することである。
別の構成において、3タプル(POC,poc_cycle,temporalID)は、(f(POC,poc_cycle),temporalID)で置き換えられることができ、ここでf(POC,poc_cycle)は、2タプル(POC,poc_cycle)をインデックスへマッピングする関数(例えば、ルックアップテーブル)である。さらに別の構成において、(POC,poc_cycle)の代わりに、絶対POC値を用いることもできる。一例において、この絶対POC値は、絶対POCを指定したJCTVC‐F493のバッファ記述におけるlongterm_poc[i]フィールドとは異なることになろう。特に、JCTVC‐F493のlongterm_poc[i]フィールドは、範囲0およびMaxPOCにおける値をシグナリングできるに過ぎない。しかしながら、本明細書に開示されるシステムおよび方法に従って、絶対POC値は、AVCの最上位ビット(MSB)および最下位ビット(LSB)スキームを用いてシグナリングされ(および場合によっては導出され)、かくして、より大きいビット解像度を提供しうる。代わりに、絶対POC値は、MaxPOCより大きい数空間を用いてシグナリングされてもよい。
別の構成において、本明細書に開示されるシステムおよび方法による絶対POCは、すべての参照ピクチャ(例えば、短期ピクチャおよび長期ピクチャ)を参照するために用いられうる。別の構成において、本明細書に開示されるシステムおよび方法による絶対POCは、deltaPOCのシグナリングの代わりに用いられうる。いくつかの構成において、POCおよびpoc_cycleは、以下の例に示されるように絶対POC値によって置き換えられうる(しかも以下の例には限定されない)。
コード2
この例では、「absolute_poc_pps[i][j]」は、PPS内のi番目のバッファ記述におけるj番目の長期ピクチャエントリに関する絶対ピクチャオーダーカウントである。
コード3
この例では、「absolute_poc[j]」は、バッファ記述におけるj番目の長期ピクチャエントリに関する絶対ピクチャオーダーカウントである。
いくつかの構成において、PPSに、および/またはバッファ記述に典型的に含まれる一部またはすべての情報は、さらに、または代わりに、適応スライスパラメータセットまたは適応パラメータセット(APS:Adaptation Parameter Set)で伝えられうる。この情報は、number_of_longterm_pictures、poc[j]、poc_cycle[j]、temporal_id_poc[j]、number_of_longterm_pictures_pps[i]、poc_pps[i][j]、poc_cycle_pps[i][j]、およびtemporal_id_poc_pps[i][j]の1つ以上を含む。例えば、適応スライスパラメータセットまたは適応パラメータセット(APS)は、参照ピクチャの数(例えば、number_of_longterm_pictures)、ピクチャオーダーカウント(例えば、poc[j])、ピクチャオーダーカウント・サイクルパラメータ(例えば、poc_cycle[j])、時間識別子ピクチャオーダーカウント・パラメータ(例えば、temporal_id_poc[j])、参照ピクチャのピクチャパラメータセット数(例えば、number_of_longterm_pictures_pps[i])、ピクチャパラメータセット・ピクチャオーダーカウント(例えば、poc_pps[i][j])、ピクチャパラメータセット・ピクチャオーダーカウント・サイクルパラメータ(例えば、poc_cycle_pps[i][j])およびピクチャパラメータセット時間識別子ピクチャオーダーカウント・パラメータ(例えば、temporal_id_poc_pps[i][j])の1つ以上を含みうる。
いくつかの構成において、情報poc_cycle[j]は、0とは異なる場合にのみ(例えば、エンコーダ108からデコーダ102、202へ)シグナリングされうる。この場合には、代わりのシンタックスが定義されうる。
さらに別の構成において、PPSに、および/またはバッファ記述に典型的に含まれる一部またはすべての情報は、さらに、または代わりに、バッファ記述情報とは別にスライスヘッダで伝えられうる。例えば、スライスヘッダは、参照ピクチャの数(例えば、number_of_longterm_pictures)、ピクチャオーダーカウント(例えば、poc[j])、ピクチャオーダーカウント・サイクルパラメータ(例えば、poc_cycle[j])、時間識別子ピクチャオーダーカウント・パラメータ(例えば、temporal_id_poc[j])、参照ピクチャのピクチャパラメータセット数(例えば、number_of_longterm_pictures_pps[i])、ピクチャパラメータセット・ピクチャオーダーカウント(例えば、poc_pps[i][j]、ピクチャパラメータセット・ピクチャオーダーカウント・サイクルパラメータ(例えば、poc_cycle_pps[i][j])およびピクチャパラメータセット時間識別子ピクチャオーダーカウント・パラメータ(例えば、temporal_id_poc_pps[i][j])の1つ以上を(バッファ記述コンテナとは別に)伝えることができる。
代わりの構成において、長期(参照)ピクチャは、それをx.yとインデックス付けすることによってシグナリングされることができ、ここでx=poc[j]またはpoc_pps[i][j]であり、yは、長期(参照)ピクチャをサブインデックス付けするために、追加の名前空間/数空間を定義する新しい情報サブインデックスである。この場合、xおよびyエントリは、PPSで、および/または各長期(参照)ピクチャに関する(スライスヘッダにおける)バッファ記述で送信されうる。
いくつかの構成において、すべての(参照)ピクチャ(例えば、長期および短期)は、(例えば、deltaPOCおよびtemporalIDを用いた)デルタ参照か、または(例えば、POC、poc_cycleおよびtemporalIDを用いた)絶対参照のいずれかを用いて参照される。例えば、復号ピクチャバッファ(DPB)全体が、受信されたピクチャのセットを含みうる。これらの受信されたピクチャのサブセットが、デルタ参照を用い、残りの受信されたピクチャが絶対参照を用いてもよい。従来のアプローチが、本明細書に開示されるシステムおよび方法に従って示される(例えば、POCおよびpoc_cycleを用いた)ものと同じ絶対参照を指定しないことに留意しなければならない。記載されるバッファ記述およびシンタックスの構成の1つ以上が、本明細書に記載される方法および/またはアプローチの1つ以上と組み合わせて実装されてもよいことに留意しなければならない。
図3は、指定ピクチャに基づいて、削減されたオーバーヘッドの参照により、参照ピクチャを追跡するための方法300の一構成を示したフローダイアグラムである。電子デバイス204(例えば、デコーダ202)は、ビットストリームを受信しうる(ステップ302)。例えば、デコーダ202は、符号化された参照ピクチャ(および、例として、他の符号化されたピクチャ)を含むビットストリーム214を受信しうる(ステップ302)。いくつかの構成において、ビットストリーム214は、オーバーヘッド情報(例えば、PPS、バッファ記述情報、パラメータ、ラップ・インジケータ、参照ピクチャ指定または識別子など)も含みうる。
電子デバイス204は、復号された参照ピクチャを産出するために、ビットストリーム214の一部分を復号しうる(ステップ304)。例えば、デコーダ202は、フレームメモリ264に記憶される復号された参照ピクチャを産出するために、ビットストリーム214の一部分を復号しうる(ステップ304)。留意すべきは、1つ以上の復号された参照ピクチャを産出するために、ビットストリーム214の1つ以上の部分が復号されうる(ステップ304)ことである。
電子デバイス204は、削減されたオーバーヘッドの参照により、復号ピクチャバッファ(DPB)における復号された参照ピクチャを追跡しうる(ステップ306)。例えば、電子デバイス204は、サイクルパラメータを、復号された参照ピクチャと関連付けることができ、ラップ・インジケータが受信されるか、またはピクチャセット間で遷移が判定された場合、サイクルパラメータを修正(例えば、デクリメントまたはインクリメント)しうる。復号された参照ピクチャを追跡する(ステップ306)ために、他のアプローチが用いられてもよい。さらなる詳細が以下に示される。留意すべきは、DPBが1つ以上の復号された参照ピクチャを含みうることである。
電子デバイス204は、1つ以上の復号された参照ピクチャに基づいて、ピクチャを復号しうる(ステップ308)。例えば、(復号された参照ピクチャを産出するために復号された(ステップ304)部分以外の)ビットストリーム214の一部分が、参照ピクチャに基づいて復号されうる(ステップ308)。例として、(DPBで追跡された)復号された参照ピクチャが、フレーム間予測メカニズムに基づいてフレーム間予測信号268を生成するために、動き補償モジュール260へ供給されうる。フレーム間予測信号268は、次にピクチャを復号する(ステップ308)ために用いられうる。いくつかの構成または例では、ピクチャを復号する(ステップ308)ために、1つ以上の復号された参照ピクチャが追跡され(ステップ306)、用いられうる。
図4は、指定ピクチャに基づいて、削減されたオーバーヘッドの参照により、参照ピクチャを追跡するための方法400のより具体的な構成を示したフローダイアグラムである。この方法400は、POCが再使用されたときにどのピクチャが参照されているかを追跡するための1つのアプローチでありうる。電子デバイス204(例えば、デコーダ202)は、ビットストリーム214を受信しうる(ステップ402)。例えば、デコーダ202は、符号化された参照ピクチャ(および、例えば、他の復号されたピクチャ)を含むビットストリーム214を受信しうる(ステップ402)。いくつかの構成において、ビットストリーム214は、オーバーヘッド情報(例えば、PPS、バッファ記述情報、パラメータ、ラップ・インジケータ、参照ピクチャ指定または識別子など)を含みうる。
電子デバイス204は、復号された参照ピクチャを産出するために、ビットストリーム214の一部分を復号しうる(ステップ404)。例えば、デコーダ202は、フレームメモリ264に記憶される復号された参照ピクチャを産出するために、ビットストリーム214の一部分を復号しうる(ステップ404)。留意すべきは、1つ以上の復号された参照ピクチャを産出するために、ビットストリーム214の1つ以上の部分が復号されうる(ステップ404)ことである。
電子デバイス204は、サイクルパラメータを、復号された参照ピクチャを含む復号ピクチャセットと関連付けうる(ステップ406)。例えば、電子デバイス204は、サイクルパラメータ「poc_cycle」を、復号された参照ピクチャを含む復号ピクチャセットと関連付けうる(ステップ406)。
サイクルパラメータ「poc_cycle」は、次のように定義されうる。範囲[数18][0,・・・,MaxPOC−1]内のピクチャのPOCを表すために固定ビット数が用いられるとき、[数19]MaxPOC個の一意的な整数値が存在する。符号化しているピクチャの数が[数20]MaxPOCを超えた場合、ピクチャ番号付けメカニズムは、既に割り当てられたPOC値を再使用しなければならない。従って、POC番号付けは、一例において次のように進行する:[数21]・・・,[0,・・・,MaxPOC−1]n−2,[数22][0,・・・,MaxPOC−1]n−1,[数23][0,・・・,MaxPOC−1]n,[数24][0,・・・,MaxPOC−1]n+1,・・・。この例における下付き文字は、セット[数25][0,・・・,MaxPOC−1]が繰り返された回数を示す。この下付き文字、またはセット[数26][0,・・・,MaxPOC−1]が繰り返された回数は、[数27]MaxPOCSetIndexとして示されうる。例えば、POC=0および[数28]MaxPOCSetIndex=nを持つピクチャは、(例として、ピクチャセット番号付けが1で開始すると仮定して)シーケンスの[数29](n*MaxPOC+1)番目のピクチャを表す。サイクルパラメータ「poc_cycle」に関するさらなる詳細は、以下の図5に関連して示される。
電子デバイス204は、ラップ・インジケータが受信されたかどうかを判定しうる(ステップ408)。例えば、エンコーダ108または伝送用電子デバイスA104aが、ピクチャセットにおける所定の最大ピクチャ数に達するたびに、エンコーダ108または伝送用電子デバイスA104aは、別のピクチャセットが送信されている(例えば、POCがリセットしているか、または別のサイクルを開始している)ことを指示するために、デコーダ102または受信用電子デバイスB104bによって受信されるラップ・インジケータを送信しうる。さらなる詳細は、添付の図11に関連して示される。
電子デバイス204が、ラップ・インジケータを受信したと判定した(ステップ408)場合、電子デバイス204は、サイクルパラメータを修正(例えばデクリメント)しうる(ステップ410)。例えば、電子デバイス204は、DPBにおけるピクチャ毎、またはピクチャセット毎にサイクルパラメータをデクリメントする。別の例では、電子デバイス204は、サイクルパラメータをインクリメントすることもある。
電子デバイス204は、復号された参照ピクチャに基づいてピクチャを復号しうる(ステップ412)。例えば、(復号された参照ピクチャを産出するために復号された(ステップ404)部分以外の)ビットストリーム214の一部分が、参照ピクチャに基づいて復号されうる(ステップ412)。例として、(DPBで追跡された)復号された参照ピクチャは、フレーム間予測メカニズムに基づいてフレーム間予測信号268を生成するために、動き補償モジュール260へ供給されうる。フレーム間予測信号268は、次にピクチャを復号する(ステップ412)ために用いられうる。いくつかの構成または例では、ピクチャを復号する(ステップ412)ために、1つ以上の復号された参照ピクチャが用いられうる。
図5は、サイクルパラメータによって参照される複数のピクチャセットの一例を示したダイアグラムである。より具体的には、図5は、サイクルパラメータを用い、指定ピクチャに基づいて、削減されたオーバーヘッドの参照により、参照ピクチャを追跡する例を示す。特に、図5は、ピクチャセットA507aに関連するサイクルパラメータ(例えば、poc_cycle=−1)、ピクチャセットB507bに関連するサイクルパラメータ(例えば、poc_cycle=0)、およびピクチャセットC507cに関連するサイクルパラメータ(例えば、poc_cycle=+1)を示す。しかしながら、ピクチャセットA507aがフレームのシーケンスにおける第1のピクチャセットであってもなくてもよいことに留意しなければならない。例えば、1つ以上のピクチャセットがピクチャセットA507aに先行してもよい。そのうえ、ピクチャセットC507cがフレームのシーケンスにおける最後のピクチャセットであってもなくてもよいことに留意しなければならない。例えば、1つ以上のピクチャセットがピクチャセットC507cの後に続いてもよい。
各ピクチャセット507a〜cは、1つ以上のピクチャ501a〜n、503a〜n、505a〜nを含みうる。この例では、各ピクチャセット507a〜cは、[数30]MaxPOC個のピクチャ501、503、505を含む。特に、各ピクチャ501、503、505は、図5に[数31][0,1,2,・・・MaxPOC−1]と示される、対応するピクチャオーダーカウント(POC)を有しうる。
一例において、現在復号されるピクチャを含むピクチャセットのpoc_cycleは、他のピクチャのpoc_cycleを計算するために0に設定されうる。いくつかの場合、ピクチャは順序を違えて復号されうる。例えば、デコーダは、503b、次に505aさらに次に503cを参照することもある。この例では、現在復号されているピクチャは、ピクチャセットB507bにおけるPOC=1を持つピクチャ503bであると仮定する。次に別のピクチャ、例えば、参照ピクチャのpoc_cycleが、現在復号されるピクチャのpoc_cycleに基づいて算出されうる。
図6は、複数のピクチャセットの別の例を示したダイアグラムである。図6は、図5に関連して上述されたピクチャセット507a〜cと同様のピクチャセット607a〜cを含む。各ピクチャセット607a〜cには、1つ以上のピクチャ601a〜c、603a〜n、605a〜nが含まれうる。ピクチャセット607a〜cは、[数32]MaxPOC個のピクチャを含みうる。さらに、各ピクチャ601a〜c、603a〜603n、605a〜605nは、図6に示されるようなセット[数33][0,1,2,・・・,MaxPOC−1]に属する、対応するピクチャオーダーカウント(POC)を有しうる。
ピクチャセット607は、1つ以上のピクチャを含みうる。例えば、ピクチャセットB607bにおけるピクチャ603a〜nは、ピクチャセットとしてグループ化されうる。同様に、ピクチャセットC607cにおけるピクチャ605a〜nは、ピクチャセットに一緒にグループ化されうる。ピクチャセットは、符号化されたときに互いに隣接するピクチャを含んでもよく、または一緒にグループ化されたランダム・ピクチャからなってもよい。別の例では、ピクチャセットが、[数34][0,1,2,・・・,MaxPOC−1]ピクチャからなるpoc_cycleを形成しうる。
いくつかの構成において、ピクチャセット607aは、瞬時復号リフレッシュ(IDR;instantaneous decoding refresh)ピクチャ603a(例えば、IDRアクセスユニット)を含みうる。IDRピクチャ603aは、エンコーダによってビットストリームでシグナリングされうる。加えて、または代わりに、IDRは、ピクチャタイプに基づいて識別されうる。いくつかの構成において、IDRピクチャ603aは、ビットストリーム214におけるいかなる後続ピクチャも、ビットストリーム214における前のピクチャへの参照を必要としないであろうことをデコーダ202に指示しうる。
IDRピクチャ603aがデコーダ202によって復号されたときに、POCは、リセットして所定の値に戻されうる。例えば、ピクチャセットA607aを復号した後に、IDRピクチャ603aが受信またはシグナリングされる。この時点で、POCは、リセットして0に戻されればよく、新しいピクチャセット、ピクチャセットB607bが開始する。言い換えれば、IDRピクチャ603aは、参照ピクチャを指定ピクチャに対して指定しうる。IDRピクチャ603aを送信する1つの利益は、新しい参照ピクチャを導入することでありうる。この利益は、図7に関連して以下にさらに詳細に記載する。
図7は、サイクルパラメータによって参照される複数のピクチャセットのより具体的な例を示したダイアグラムである。図7は、図5に関連して上述されたコンポーネント507a〜c、501、503、505と同様のピクチャセット707a〜dおよびピクチャ701、703、705をそれらに関連するPOCおよびpoc_cycleとともに示す。加えて、図7は、追加ピクチャセット707dを関連するピクチャ731a〜nとともに示す。
図7は、指定ピクチャ703aも示す。一構成において、指定ピクチャに関するサイクルパラメータ(例えば、poc_cycle)は、0に設定されうる。例えば、ピクチャセットにおける第1のピクチャ(例えば、POC=0)が指定ピクチャ(例えば、IDRピクチャ)であるときには、指定ピクチャに関するpoc_cycleは、0でありうる。時間的に後のピクチャセットのサイクルパラメータ(例えば、poc_cycle)は、0に設定されたサイクルパラメータ(例えば、poc_cycle=0)を持つピクチャセットに対して算出されうる。
指定ピクチャの一例は、図6に関連して上述されたIDRピクチャ603aと同様のIDRピクチャ703a(例えば、IDRアクセスユニット)である。便宜上、指定ピクチャ703aは、IDRピクチャとして記載される。しかしながら、留意すべきは、指定ピクチャ703aが、エンコーダによってビットストリームにおけるシグナリングを用いて指示されるか、あるいはデコーダによって暗黙的に決定されうる任意のピクチャであってよいことである。
いくつかの構成において、エンコーダは、IDRピクチャ703aを指示する信号をビットストリームで送信しうる。POCカウンタの値は、この信号に基づいて決定されうる。例えば、この信号は、(例えば、IDRピクチャのPOCが0でなければ)IDRピクチャのPOCを0に設定するように(デコーダに)指示しうる。例として、IDRピクチャ703aは、デコーダに、POCカウンタを初期値、例えば0にリセットさせることができる。poc_cycleもIDRピクチャ703aに基づきうる。POCと同様に、この信号は、poc_cycleが初期値にリセットされるべきであることを指示しうる。別の例では、この信号は、POCまたはpoc_cycleの修正が、(IDRピクチャ703aについてそれらが初期値にある場合には)なにも生じる必要はないことを指示しうる。
IDRピクチャ703aは、指定ピクチャ703aに対して参照ピクチャを追跡するために用いられうるPOCならびにpoc_cycle(および/または、例えば、他のサイクルパラメータ)をセットまたはリセットするためのインジケーションでありうる。例えば、デコーダ202は、セットA707aにおけるピクチャ701a〜cを復号しうる。ピクチャセットA707aは、このピクチャセットに関連するサイクルパラメータpoc_cycle=mを有しうる。IDRピクチャ703aが、次にビットストリーム214からシグナリングされうる。IDRピクチャ703aは、新しいサイクルパラメータ(例えば、poc_cycle=0)を指示し、POC=0を指示しうる。ピクチャセット707b〜dが、次に復号されて、それらに関連するサイクルパラメータが初期値からインクリメントしうる(例えば、それぞれpoc_cycle=0,poc_cycle=+1,poc_cycle=+2)。この例では、時間的に後のピクチャセット707b〜dが、新しく設定されたサイクルパラメータおよびPOCに対して算出される。
前述のように、IDRピクチャ703aは、ビットストリームにおけるいかなる後続ピクチャも、ビットストリーム214におけるピクチャ前のピクチャへの参照を必要としないことをデコーダ202に指示しうる。しかしながら、IDRピクチャ703aは、POCの、またはサイクルパラメータのリセットをまさしくシグナリングしうる。例えば、ピクチャセットAは、poc_cycle=mのサイクルパラメータを有し、m=+5でありうる。IDRピクチャ703aが受信されたときに、mは、m=−1に変更されうる。かくして、IDRピクチャ703aは、参照ピクチャのpoc_cycleを指定ピクチャに対してカウントしうる。言い換えれば、IDRピクチャ703aは、シーケンスにおいて現ピクチャだけでなく、参照ピクチャを指定ピクチャに対して算出するために、poc_cycleカウントをシグナリングしうる。
図8は、指定ピクチャに基づいて、削減されたオーバーヘッドの参照により、参照ピクチャを追跡するための方法800の一構成を示したフローダイアグラムである。電子デバイス204(例えば、デコーダ202)は、ビットストリームを受信して(ステップ802)、復号された参照ピクチャを産出するためにビットストリーム214の一部分を復号しうる(ステップ804)。これは、図3に関連して前述されたのと同様の仕方で生じうる。
電子デバイス204は、指定ピクチャに基づいて、削減されたオーバーヘッドの参照により、復号ピクチャバッファ(DPB)における復号された参照ピクチャを追跡しうる。これは、次のように達成されうる。電子デバイス204(例えば、デコーダ202)は、指定ピクチャを決定しうる(ステップ806)。一構成において、電子デバイス204は、ビットストリーム214で受信された明示的なシグナリングに基づいて、この決定(ステップ806)を行いうる。例として、ビットストリーム214は、指定ピクチャを指定するインジケータを含みうる。一例において、指定ピクチャは、ビットストリーム214で受信されるシグナリングによって(例えば、ピクチャパラメータセット(PPS)、バッファ記述などで)指示される瞬時復号リフレッシュ(IDR)ピクチャでありうる。
電子デバイス204は、指定ピクチャに基づいて、ピクチャオーダーカウント(POC)を決定しうる(ステップ808)。例えば、電子デバイス204は、指定ピクチャに関連するPOCをセットまたはリセットしうる。例として、指定ピクチャに関連するPOCは、0に設定されうる。従って、電子デバイス204は、指定ピクチャに基づいて、POCシーケンスをリセットすることができる。例えば、他のピクチャに関するPOCは、図6に示されるように、指定ピクチャ603aに関連するPOCに基づいて番号付けされうる。
電子デバイス204は、指定ピクチャに基づいて、サイクルパラメータ(例えば、poc_cycle)を決定しうる(ステップ810)。例えば、指定ピクチャを含むピクチャセットに関連するサイクルパラメータは、0にセットまたはリセットされうる。他のピクチャセットに関するサイクルパラメータは、指定ピクチャ(例えば、IDRピクチャ)を含むピクチャセットに基づいて決定(例えば算出)されうる。この一例が図7に示され、同図に関連して説明される。
POCおよびサイクルパラメータ(例えば、poc_cycle)が、指定ピクチャに基づいて決定されたときに、必要に応じて、復号された参照ピクチャのPOCおよびサイクルパラメータが更新されうる。これは、復号ピクチャバッファ(DPB)における復号された参照ピクチャの追跡を可能にしうる。かくして、復号された参照ピクチャを指定ピクチャ(例えば、IDRピクチャ)に基づいて追跡することができる。
電子デバイス204は、DPBから復号された参照ピクチャを取得しうる(ステップ812)。例えば、電子デバイス204は、指定ピクチャに基づいたPOCおよびサイクルパラメータ(例えば、poc_cycle)に従って、DPBから復号された参照ピクチャを読み出すことができる。
電子デバイス204は、復号された参照ピクチャに基づいてピクチャを復号しうる(ステップ814)。これは、図3に関連して上述されたのと同様に生じうる。1つ以上の復号された参照ピクチャからなるセットが、方法800に従って追跡されうることに留意しなければならない。
図9は、指定ピクチャに基づいて、削減されたオーバーヘッドの参照により、参照ピクチャを追跡するための方法900の別の構成を示したフローダイアグラムである。前述のように、電子デバイス204は、ビットストリームを受信しうる(ステップ902)。電子デバイス204は、参照ピクチャ群を産出するために、ビットストリームの1つ以上の部分を復号する(ステップ904)こともできる。復号参照ピクチャ群は、1つ以上の復号された参照ピクチャを含みうる。
電子デバイス204は、指定ピクチャに基づいて、削減されたオーバーヘッドの参照により、復号ピクチャバッファ(DPB)における復号参照ピクチャ群を追跡しうる(ステップ906)。これは、図8に関連して上述されたように行われうる。復号参照ピクチャ群における2つ以上の復号された参照ピクチャは、上記のように、同じまたは異なる時間インスタンス(例えば、同様の時間インスタンス)を参照しうる。
電子デバイス204は、復号参照ピクチャ群における(ピクチャを復号するための)復号された参照ピクチャの解像度が、現ピクチャの解像度と異なるかどうかを随意的に判定しうる(ステップ908)。解像度が2つのピクチャ間で異なれば、電子デバイス204は、ピクチャを復号するためのスケーリングパラメータに基づいて、復号された参照ピクチャの変換係数を処理しうる(ステップ910)。スケーリングパラメータおよび解像度の切り替えに関するさらに詳細な説明は、表(2)に関連して上記に示される。スケーリングパラメータは、明示的にスケーリングパラメータを受信することによって、あるいは(例えば、ルックアップテーブル、ピクチャ解像度特性などを用いて)暗黙的にスケーリングパラメータを決定することによって決定されうることに留意しなければならない。
解像度が同じであるか異なるかに関わらず、電子デバイス204は、復号参照ピクチャ群(例えば、復号参照ピクチャ群における復号された参照ピクチャ)に基づいて、ピクチャを復号しうる(ステップ912)。
図10は、指定ピクチャに基づいて、削減されたオーバーヘッドの参照により、参照ピクチャを追跡するための方法1000の別の構成を示したフローダイアグラムである。電子デバイス204は、ビットストリームを受信して(ステップ1002)、復号された参照ピクチャを産出するためにビットストリームの一部分を復号しうる(ステップ1004)。電子デバイス204は、指定ピクチャに基づいて、削減されたオーバーヘッドの参照により、復号ピクチャバッファ(DPB)における復号された参照ピクチャを追跡しうる(ステップ1006)。これは、上記のように行われうる。
電子デバイス204は、バッファ記述も取得しうる(ステップ1008)。バッファ記述のいくつかの例は、上記に詳述される。例として、上掲の表(1)および表(2)は、様々なバッファ記述の例を含む。バッファ記述は、エンコーダからのパラメータピクチャセット(PPS)の部分としてデコーダによって受信されうる。然るべきバッファ記述へのインデックスも、スライスヘッダの一部としてデコーダによって受信されうる。バッファ記述が一旦取得される(ステップ1008)と、電子デバイス204は、バッファ記述を修正すべきかどうかを判定しうる(ステップ1010)。バッファ記述がなにも修正を必要としなければ、電子デバイス204は、復号された参照ピクチャに基づいてピクチャを復号しうる(ステップ1014)。しかしながら、バッファ記述が修正を必要とすれば、電子デバイス204は、1つ以上のエントリを修正しうる(ステップ1012)。修正(ステップ1012)の例は、エントリを削除すること、エントリを追加すること、またはエントリを置き換えることを含みうる。エントリの削除、追加、または置き換えのさらに詳細な説明は、リスティング(4)の説明に関連して上に記載されている。修正(ステップ1012)が一旦完了すると、電子デバイス204は、復号された参照ピクチャに基づいてピクチャを復号しうる(ステップ1014)。
図11は、本明細書に開示されるシステムおよび方法に従って、ラップ・インジケータをシグナリングする(ステップ1133)一例を示したダイアグラムである。この例では、いくつかのピクチャ1137a〜n、1139a〜n、1141a〜n、1143a〜n、1145a〜n、およびピクチャセット1107a〜eが示される。特に、図11は、対応する現フレームおよびラップ・インジケータのタイミング1149とともに参照バッファ状態1135を経時的に示す。
この例では、poc_cycle=0を持つピクチャセットB1107bにおけるピクチャB01139aが、第1の時刻における現ピクチャまたはフレームであると仮定する。遷移A1147aが生じるときに、ラップ・インジケータがシグナリングされる(ステップ1133a)。第2の時刻では、ピクチャセットC1107cにおけるピクチャC01141aが、現ピクチャまたはフレームである。ピクチャC01141aは、(例えば、ピクチャセットD1107dおよびピクチャセットE1107eにおける)すべての後続ピクチャのための参照ピクチャであると仮定する。例として、ピクチャC01141aは、後続ピクチャ1141b〜n、1143a〜n、1145a〜nを復号するためにDPBに維持すべき長期参照ピクチャでありうる。遷移B1147bが生じるときに、別のラップ・インジケータがシグナリングされる(ステップ1133b)。図示されるように、poc_cycleパラメータは、ラップ・インジケータのシグナリング(ステップ1133)の際に更新される。この手順は、本明細書に開示されたシステムおよび方法に従って、参照ピクチャを追跡するために用いることができる。そのうえ、留意すべきは、POCおよびpoc_cycleが、本明細書に記載されるように、復号された参照ピクチャに基づいてリセットまたはリスタートされうることである。
図11に示されるように、POC番号0から[数35]MaxPOC−1は、ピクチャ1137a〜n、1139a〜n、1141a〜n、1143a〜n、1145a〜nに繰り返して対応する。上記のように、(POC番号0から[数36]MaxPOC−1を持つ)各ピクチャセット1107a〜eが、サイクルパラメータ(例えば、poc_cycle)に対応する。
一構成において、ラップ・インジケータは、現ピクチャセット(例えば、ピクチャセットB1107b)と時間的に後の後続ピクチャセット(例えば、ピクチャセットC1107c)との間の第1の遷移1147aにおいてシグナリングされうる(ステップ1133a)。例えば、POC番号付けが1つの[数37][0,・・・,MaxPOC−1]セットから次へ初めて遷移するときに、ラップ・インジケータがシグナリングされうる(ステップ1133)。いくつかの構成において、ラップ・インジケータは、POC番号付けが1つの[数38][0,・・・,MaxPOC−1]セットから他へ遷移するときに、シグナリングされうる(ステップ1133)。代わりに、ラップ・インジケータは、poc_cycle番号付けが次の[数39][0,・・・,MaxPOC−1]ピクチャセットのために初めて遷移するときに、シグナリングされうる(ステップ1133)。いくつかの構成において、ラップ・インジケータは、poc_cycle番号付けが次の[数40][0,・・・,MaxPOC−1]ピクチャセットのために遷移するときに、シグナリングされうる(ステップ1133)。いくつかの構成において、シグナリングされるラップ・インジケータは、「poc_wraparound」と示される保護メッセージでありうる。本明細書で用いられるところの、「シグナリングされる」とは、エンコーダとデコーダとの間で通信されることを意味しうる。いくつかの構成において、「シグナリングされる」とは、異なる電子デバイス間で通信されることも意味しうる。
保護メッセージは、損失ピクチャの検出のような、所望の機能性を維持するために、電子デバイス204が受信しなければならないメッセージでありうる。メッセージを保護メッセージとして伝送するための1つのメカニズムは、他の情報メッセージと比較したときに、より高い優先度を保護メッセージに割り当てることである。インテリジェントデバイス(例えば、ネットワーク輻輳制御エージェント)は、そのときに、この優先度割り当てを調べて、利用可能なネットワーク帯域幅のような制約条件を満たすために、優先度が低い方のメッセージを落とすことができる。
いくつかの構成において、ラップ・インジケータ(例えば、poc_wraparound)メッセージは、ピクチャパラメータセット(PPS)、スライスヘッダ、適応パラメータセット(APS)またはビットストリームにおける任意の適切な位置でシグナリングされうる。加えて、または代わりに、ラップ・インジケータは、境界外で(例えば、ピクチャ・ビットストリームとは別に)シグナリングされうる。ラップ・インジケータ(例えば、poc_wraparoundメッセージ)がデコーダ102によって受信されるたびに、DPBにおけるすべてのピクチャ(例えば、すべてのピクチャセット)に関するサイクルパラメータ(例えば、poc_cycle)が(例えば、1つ)デクリメントされうる。
以下のリスティング(5)は、ピクチャパラメータセットでラップ・インジケータをシグナリングするために必要とされるビットストリーム・シンタックス修正の例を示す。
リスティング(5)
1に等しい「wrap_indicator_flag」は、POC番号付けが1つの[数41][0,・・・,MaxPOC−1]ピクチャセットから次へ初めて遷移したことを指定する。0に等しい「wrap_indicator_flag」は、別様に指定する。いくつかの構成において、1に等しい「wrap_indicator_flag」は、POC番号付けが1つの[数42][0,・・・,MaxPOC−1]ピクチャセットから他へ遷移することを指定する。0に等しい「wrap_indicator_flag」は、別様に指定する。
いくつかの構成において、1に等しい「wrap_indicator_flag」は、poc_cycleが次の[数43][0,・・・,MaxPOC−1]ピクチャセットのために初めて遷移したことを指定する。0に等しい「wrap_indicator_flag」は、別様に指定する。
いくつかの構成において、1に等しい「wrap_indicator_flag」は、poc_cycleが1つの[数44][0,・・・,MaxPOC−1]ピクチャセットから他へ遷移したことを指定する。0に等しい「wrap_indicator_flag」は、別様に指定する。
いくつかの構成において、「wrap_indicator_flag」は、追加の情報、例えば、遷移の方向を識別するために1つより多いビットを用いうる。別の構成において、「wrap_indicator_flag」は、エントロピー符号化を用いて可変長符号化された符号なし整数としてシグナリングされうる。別の構成において、「wrap_indicator_flag」は、エントロピー符号化を用いて可変長符号化された符号付き整数である。
seq_parameter_set_idは、ピクチャパラメータセットによって参照されるシーケンス・パラメータセットを識別する。seq_parameter_set_idの値は、両端値を含めて、0から31までの範囲内にあるものとする。
pic_parameter_set_idは、スライスヘッダにおいて参照されるピクチャパラメータセットを識別する。pic_parameter_set_idの値は、両端値を含めて、0から255までの範囲内にあるものとする。entropy_coding_mode_flagは、シンタックス要素に適用されるべきエントロピー復号法を選択する。
num_temporal_layer_switching_point_flagsは、いくつの時間切り替えポイントフラグが存在するかを指定する。temporal_id_nesting_flagが1に等しければ、num_temporal_layer_switching_point_flagsは、0に等しいものとする。
temporal_layer_switching_point_flag[i]は、現アクセスポイントが、このアクセスユニットに続くより高位の時間的idレイヤの復号を可能にする、時間切り替えポイントであるかどうかを指定する。temporal_id_nesting_flagが1に等しければ、temporal_layer_switching_point_flag[i]は、1に等しいと推定するものとする。temporal_id_nesting_flagが0に等しく、かつnum_temporal_layer_switching_point_flagsがi未満であれば、temporal_layer_switching_point_flag[i]は、0に等しいと推定するものとする。より高位の時間的レイヤiを復号し始めるときには、必要とされる参照ピクチャの利用可能性が、IDR、またはiより低いtemporal_id値jおよび1に等しいtemporal_switching_flag[j]を持つピクチャの直後に保証されうることに留意しなければならない。
num_ref_idx_l0_default_active_minus1は、0に等しいnum_ref_idx_active_override_flagを持つPおよびBスライスに関して、num_ref_idx_l0_active_minus1がいかに推定されるかを指定する。num_ref_idx_l0_default_active_minus1の値は、両端値を含めて、0から31までの範囲内にあるものとする。
num_ref_idx_l1_default_active_minus1は、0に等しいnum_ref_idx_active_override_flagを持つBスライスに関して、num_ref_idx_l1_active_minus1がいかに推定されるかを指定する。num_ref_idx_l1_default_active_minus1の値は、両端値を含めて、0から31までの範囲内にあるものとする。
pic_init_qp_minus26は、スライス毎にSliceQPYの初期値マイナス26を指定する。初期値は、非ゼロのslice_qp_delta値が復号されたときにスライスレイヤで修正され、非ゼロのcu_qp_delta値が符号化ユニットレイヤで復号されたときにさらに修正される。pic_init_qp_minus26の値は、両端値を含めて、−(26+QpBdOffsetY)から+25までの範囲内にあるものとする。
0に等しいconstrained_intra_pred_flagは、マクロブロック内予測モードを用いて符号化されたマクロブロックの予測のために、イントラ予測が、残差データおよびマクロブロック間予測モードを用いて符号化された隣接マクロブロックの復号サンプルの利用を許可することを指定する。1に等しいconstrained_intra_pred_flagは、制約されたイントラ予測を指定し、その場合、マクロブロック内予測モードを用いて符号化されたマクロブロックの予測は、残差データおよびIマクロブロック・タイプからの復号サンプルのみを用いる。
slice_granularityは、ピクチャ内のスライス粒度を指示する。slice_granularityの値は、Min(Log2MaxCUSize−4,log2_diff_max_min_coding_block_size)以下とする。変数SliceGranularityは、(slice_granularity<<1)の値に設定される。
shared_pps_info_enabled_flagは、ピクチャパラメータセットRBSPにおける共有情報が、参照されるスライスに用いられることを指定する。shared_pps_info_enabled_flagが1に等しければ、ピクチャパラメータセットRBSPにおけるalf_param()が、参照されるスライスに適用されるものとする。そうでない場合は、スライスヘッダ(単数または複数)におけるalf_param()が適用されるものとする。
max_cu_qp_delta_depthは、符号化ユニットに関するQPY値を指定するために用いられる最大許容深さを指定する。max_cu_qp_delta_depthの値は、両端値を含めて、0から15までの範囲内にあるものとする。
変数log2MinCUDQPSizeは、QPYの値を次のようにさらに修正することができる最小符号化ユニットサイズを指定する:log2MinCUDQPSize=Log2MaxCUSize−max_cu_qp_delta_depth。alf_param()は、適応ループフィルタ・パラメータシンタックスを決定する関数である。rbsp_trailing_bits()は、(1に等しい)停止ビット、およびバイトアラインメントが達成されるまでそれに続くゼロビットに対応する関数である。
次のリスティング(6)は、ラップ・インジケータをスライスヘッダでシグナリングするために必要とされるビットストリーム・シンタックス修正の例を示す。
リスティング(6)
1に等しいlightweight_slice_flagは、存在しないスライスヘッダ・シンタックス要素の値が、進行スライスにおけるスライスヘッダ・シンタックス要素の値に等しいと推定されることを指定する。0に等しいlightweight_slice_flagは、スライスヘッダ・シンタックス要素値が、現スライスヘッダで伝送されることを指定する。slice_typeは、スライスP、BまたはIの符号化タイプを指定する。
idr_pic_idは、瞬時復号リフレッシュ(IDR)ピクチャを識別する。IDRピクチャのすべてのスライスにおけるidr_pic_idの値は、変更されないままであるものとする。復号順に2つ連続したアクセスユニットがいずれもIDRアクセスユニットであるとき、第1のかかるIDRアクセスユニットのスライスにおけるidr_pic_idの値は、第2のかかるIDRアクセスユニットにおけるidr_pic_idとは異なるものとする。idr_pic_idの値は、両端値を含めて、0から65535までの範囲内にあるものとする。
pic_order_cntは、符号化されたピクチャのピクチャオーダーカウントを指定し、バッファ記述適用処理および参照ピクチャリスト作成処理における識別子として用いられる。pic_order_cntシンタックス要素は、log2_max_pic_order_cnt_minus4+4ビットで表されるものとする。pic_order_cntの値は、両端値を含めて、0からMaxPOC−1までの範囲内にあるものとする。
1に等しいnum_ref_idx_active_override_flagは、シンタックス要素num_ref_idx_l0_active_minus1がPおよびBスライスに関して存在すること、およびシンタックス要素num_ref_idx_l1_active_minus1がBスライスに関して存在することを指定する。0に等しいnum_ref_idx_active_override_flagは、シンタックス要素num_ref_idx_l0_active_minus1およびnum_ref_idx_l1_active_minus1が存在しないことを指定する。
現スライスがPまたはBスライスであり、field_pic_flagが0に等しく、ピクチャパラメータセットにおけるnum_ref_idx_l0_default_active_minus1の値が15を超えるとき、num_ref_idx_active_override_flagは、1に等しいものとする。現スライスがBスライスであり、field_pic_flagが0に等しく、ピクチャパラメータセットにおけるnum_ref_idx_l1_default_active_minus1の値が15を超えるとき、num_ref_idx_active_override_flagは、1に等しいものとする。num_ref_idx_l0_active_minus1は、スライスを復号するために用いるものとする参照ピクチャリスト0に関する最大参照インデックスを指定する。
現スライスがPまたはBスライスであり、num_ref_idx_l0_active_minus1が存在しないとき、num_ref_idx_l0_active_minus1は、num_ref_idx_l0_default_active_minus1に等しいと推定するものとする。num_ref_idx_l0_active_minus1の範囲は、次のように指定される。field_pic_flagが0に等しければ、num_ref_idx_l0_active_minus1は、両端値を含めて、0から15までの範囲内にあるものとする。MbaffFrameFlagが1に等しいとき、num_ref_idx_l0_active_minus1は、フレーム・マクロブロックの復号に関する最大インデックス値であり、2*num_ref_idx_l0_active_minus1+1は、フィールド・マクロブロックの復号に関する最大インデックス値である。そうでない場合は、(field_pic_flagが1に等しいとき)、num_ref_idx_l0_active_minus1は、両端値を含めて、0から31までの範囲内にあるものとする。
num_ref_idx_l1_active_minus1は、スライスを復号するために用いるものとする参照ピクチャリスト1に関する最大参照インデックスを指定する。現スライスがBスライスであり、num_ref_idx_l1_active_minus1が存在しないとき、num_ref_idx_l1_active_minus1は、num_ref_idx_l1_default_active_minus1に等しいと推定するものとする。num_ref_idx_l1_active_minus1の範囲は、num_ref_idx_l0_active_minus1のl0およびリスト0をそれぞれl1およびリスト1で置き換えたセマンティクスで指定されるように制約される。
no_output_of_prior_pics_flagは、復号ピクチャバッファにおける前に復号されたピクチャが、IDRピクチャの復号後にいかに処理されるかを指定する。IDRピクチャが、ビットストリームにおける第1のIDRピクチャであるとき、no_output_of_prior_pics_flagの値は、復号処理になにも影響を与えない。IDRピクチャが、ビットストリームにおける第1のIDRピクチャではなく、アクティブシーケンス・パラメータセットから導出されるPicWidthInMbs、FrameHeightInMbs、またはmax_dec_frame_bufferingの値が、先行ピクチャに関してアクティブなシーケンス・パラメータセットから導出されるPicWidthInMbs、FrameHeightInMbs、またはmax_dec_frame_bufferingの値と異なるときには、no_output_of_prior_pics_flagの実際値に関わらず、1に等しいno_output_of_prior_pics_flagがデコーダによって推定(されるべきではないが)されうる。
cabac_init_idcは、コンテキスト変数に関する初期化処理に用いられる初期化表を決定するためのインデックスを指定する。cabac_init_idcの値は、両端値を含めて、0から2までの範囲内にあるものとする。
first_slice_in_pic_flagは、スライスが、ピクチャの第1のスライスであるかどうかを指示する。first_slice_in_pic_flagが1に等しければ、変数SliceAddressおよびLCUAddressは、いずれも0に設定され、復号は、ピクチャにおける第1の最大符号化ユニット(LCU;largest coding unit)で開始する。
slice_addressは、スライスが開始するアドレスをスライス粒度解像度で指定し、ビットストリームにおける(Ceil(Log2(NumLCUsInPicture))+SliceGranularity)ビットによって表すものとし、ここで、NumLCUsInPictureは、ピクチャにおけるLCUの数である。変数LCUAddressは、(slice_address>>SliceGranularity)に設定され、ラスタスキャン順にスライスアドレスのLCU部分を表す。変数GranularityAddressは、(slice_address−(LCUAddress<<SliceGranularity))に設定され、zスキャン順に表現されたスライスアドレスのサブLCU部分を表す。変数SliceAddressは、次に(LCUAddress<<(log2_diff_max_min_coding_block_size<<1))+(GranularityAddress<<((log2_diff_max_min_coding_block_size<<1)−SliceGranularity)に設定され、スライス復号は、スライス開始座標において可能な最大符号化ユニットで開始する。
slice_qp_deltaは、符号化ユニットレイヤでcu_qp_deltaの値によって修正されるまで、スライスにおけるすべてのマクロブロックに用いるべき輝度量子化パラメータQPYの初期値を指定する。スライスに関する初期QPY量子化パラメータは、SliceQPY=26+pic_init_qp_minus26+slice_qp_deltaとして計算される。slice_qp_deltaの値は、SliceQPYが、両端値を含めて、−QpBdOffsetYから+51までの範囲内にあるように制限されるものとする。「QpBdOffsetY=6*bit_depth_luma_minus8」は、輝度量子化パラメータ範囲オフセットの値を指定する。「bit_depth_luma_minus8+8」は、輝度アレイのサンプルのビット深度を指定する。pic_init_qp_minus26は、スライス毎にSliceQPYの初期値マイナス26を指定する。
1に等しいcollocated_from_l0_flagは、コロケートパーティションを含むピクチャがリスト0から導出され、そうでない場合はピクチャがリスト1から導出されることを指定する。ref_pic_list_modification()は、参照ピクチャリスト修正のシンタックスを識別する関数である。ref_pic_list_combination()は、参照ピクチャリスト組み合わせのシンタックスを識別する関数である。alf_cu_control_param()は、適応ループフィルタ符号化ユニット制御パラメータのシンタックスを識別する関数である。sao_param()は、サンプル適応オフセットパラメータのシンタックスを識別する関数である。
1に等しいdisable_deblocking_filter_idcは、あるブロックエッジへのデブロッキングフィルタの適用を無効にする。0に等しいdisable_deblocking_filter_idcは、あるブロックエッジへのデブロッキングフィルタの適用を有効にする。デブロッキング処理は、シンタックス要素slice_alpha_c0_offset_div2およびslice_beta_offset_div2の値を用いて制御される。
次のリスティング(7)は、適応パラメータセット(APS)でラップ・インジケータをシグナリングするために必要とされるビットストリーム・シンタックス修正の例を示す。
リスティング(7)
aps_idは、スライスヘッダで参照される適応パラメータセットを識別する。1に等しいaps_sample_adaptive_offset_flagは、SAOが、現APSに参照されるスライスに関してオンであることを指定する。0に等しいとき、aps_sample_adaptive_offset_flagは、SAOが、現APSに参照されるスライスに関してオフであることを指定する。アクティブなAPSがなにもなければ、aps_sample_adaptive_offset_flag値は、0であると推定される。
1に等しいaps_adaptive_loop_filter_flagは、ALFが、現APSに参照されるスライスに関してオンであることを指定する。0に等しいとき、aps_adaptive_loop_filter_flagは、ALFが、現APSに参照されるスライスに関してオフであることを指定する。アクティブなAPSがなにもなければ、aps_adaptive_loop_filter_flag値は、0であると推定される。
1に等しいaps_cabac_use_flagは、sao_param()が存在するときには、CABAC復号処理がsao_param()に用いられ、alf_param()が存在するときには、alf_param()に用いられることを指定する。0に等しいときには、aps_cabac_use_flagは、sao_param()が存在するときには、CAVLC復号処理がsao_param()に用いられ、alf_paramが存在するときには、alf_param()に用いられることを指定する。
aps_cabac_init_idcは、SAOおよびALFのコンテキスト変数に関する初期化処理に用いられる初期化表を決定するためのインデックスを指定する。cabac_init_idcの値は、両端値を含めて、0から2までの範囲内にあるものとする。aps_cabac_init_qp_minus26は、量子化パラメータマイナス26を指定し、この量子化パラメータは、SAOおよびALFのコンテキスト変数に関する初期化処理に用いられる。alf_data_byte_countは、バイト数を指定する。sao_data_byte_pointは、バイト数を指定する。byte_align()は、アラインメントに達するまで0から7ビットを挿入する。
いくつかの構成において、ピクチャパラメータセットは、長期ピクチャのみに対応する複数のバッファ記述を含みうる。次のリスティング(8)は、長期ピクチャのみに対応する複数のバッファ記述をシグナリングするためのビットストリーム・シンタックス修正の例を示す。
リスティング(8)
1に等しい「longterm_pictures_only_flag_pps[i]」は、i番目のバッファ記述が、長期ピクチャ参照のみを含むことを指示する。0に等しい「longterm_pictures_only_flag_pps[i]」は、i番目のバッファ記述が、deltaPOCも長期ピクチャ参照も含むことを指示する。
いくつかの構成において、バッファ記述は、参照に利用できないピクチャを参照しうる。参照に利用できないピクチャは、現ピクチャより前に復号されなかったピクチャを指す。加えて、参照に利用できないピクチャは、現ピクチャより前に復号されたが、もはや参照に利用できないと識別されたピクチャを指す。ピクチャがもはや参照に利用できないと識別するための手順の一例は、IDRフレームの使用による。IDRフレームは、IDRフレームおよびその後に受信されたすべてのピクチャが、IDRフレームを受信する前に受信されたピクチャを参照しないことを示す。かくして、IDRフレームより前に受信されたすべてのフレームは、IDRフレームおよびその後に受信されたフレームの参照にもはや利用できない。
バッファ記述が参照に利用できないピクチャを参照する構成では、デコーダが、現フレームを復号するために用いられる情報を予測するときに、参照に利用できないピクチャの使用を許可しない。一構成において、これは、参照フレームのセットを作成する処理にこのフレームを含めないことによって行われる。従って、参照フレームのセットを作成する処理の出力は、バッファ記述が参照に利用できないピクチャを参照する場合、バッファ記述が参照に利用できないピクチャを参照しない場合、および両方のバッファ記述によって参照される他のピクチャが同じ場合に同じでありうる。別の構成では、参照に利用できないピクチャが、参照フレームのセットを作成する処理に含まれる。従って、参照フレームのセットを作成する処理の出力は、バッファ記述が参照に利用できないピクチャを参照する場合と、バッファ記述が参照に利用できないピクチャを参照しない場合とでは同じでない。この構成では、デコーダが、現フレームを復号するために用いられる情報を予測するときに、参照に利用できないピクチャを選択することを許可しない。
いくつかの構成において、PPSに定義されるi番目の参照ピクチャリスト:POCBD_pps[i]、temporalIDBD_pps[i]、POC_CYCLE_BD_pps[i]、ならびにリストPOCBD、temporalIDBDおよびPOC_CYCLE_BDは、参照ピクチャが、表示順に、(復号されている)現ピクチャに対して過去のピクチャか、または将来のピクチャであるかに基づいて分割される。留意すべきは、iが0からnumber_of_bds−1までの値を取りうることである。
いくつかの構成において、時間識別子は、対応する参照ピクチャが(復号されている)現ピクチャによって用いられるかどうかをシグナリングまたは指示するフラグで置き換えられうる。結果として、temporalIDリストtemporalIDBBD、およびPPStemporalIDBD_pps[i]におけるi番目のtemporalIDリストは、上記フラグを含んだリストusedByCurPicBDおよびusedByCurPicBD_pps[i]によってそれぞれ置き換えられる。いくつかの構成において、フラグの値は、PPSにおいて定義されたi番目の参照ピクチャリスト:POCBD_pps[i]、usedByCurPicBD_pps[i]、POC_CYCLE_BD_pps[i]、ならびにリストPOCBD、usedByCurPicBD、POC_CYCLE_BDを1つ以上のリストに分割するために用いられうる。一構成において、フラグについてゼロ値を持つエントリは、1つのリストに割り当てられ、非ゼロ値(例えば、1)を持つエントリは、別のリストに割り当てられる。留意すべきは、iが0からnumber_of_bds−1までの値を取りうることである。
リスティング(9)は、PPSに関するシンタックスのAHG21からの修正の別の例を示す。特に、リスティング(9)は、AHG21作業草案に概説されるような、スライスヘッダに用いられるバッファ記述シンタックスの別の例を示す。しかしながら、本明細書に開示されるシステムおよび方法による、AHG21作業草案に示されるシンタックスへの修正は、リスティング(9)に太字テキストで示される。
リスティング(9)
リスティング(9)は、リスティング(4)と同様の多く要素を含む。リスティング(9)は、参照ピクチャの選択的な置き換えを可能にするためのスライスヘッダのシンタックス修正も含む。
bd_poc_cycle_replace_countは、リストPOCBD_pps[bd_idx]、POC_CYCLE_BD_pps[bd_idx]およびtemporalIDBD_pps[bd_idx]において選択的に置き換えられるべきエントリの数を指定する。いくつかの構成において、bd_poc_cycle_replace_countは、0以上でありうる。bd_pps_replace_idx[j]は、リスト:POCBD_pps[bd_idx]、POC_CYCLE_BD_pps[bd_idx]およびtemporalIDBD_pps[bd_idx]において置き換えられるべきエントリのインデックスを識別する。
参照されるバッファ記述のPOC_CYCLE_BD_pps[bd_idx][bd_pps_replace_idx[j]]は、現ピクチャに関して置き換えられるべきである。いくつかの構成において、将来のフレームもpoc_cycle情報をオーバーライドすることができる。poc_cycle_pps_replace[j]は、現ピクチャに関してのみ、POC_CYCLE_BD_pps[bd_idx][bd_pps_replace_idx[j]]内の値を置き換えるために用いるべき値を指定する。
poc_pps_replace[j]は、現ピクチャに関してのみ、POCBD_pps[bd_idx][bd_pps_replace_idx[j]]内の値を置き換えるために用いるべき値を指定する。temporal_id_pps_replace[j]は、現ピクチャに関してのみ、TemporalIDBD_pps[bd_idx][bd_pps_replace_idx[j]]内の値を置き換えるために用いるべき値を指定する。
いくつかの構成において、PPSで定義されたi番目の参照ピクチャリスト:POCBD_pps[i]、usedByCurPicBD_pps[i]、POC_CYCLE_BD_pps[i]を分割した場合、分割リストを用いて生成した導出リストに対して、選択的な置き換え、オーバーライド、削除および添付操作が最初に実行される。操作のすべてまたはサブセットが完了した後に、導出リストにおけるエントリは、導出リストを導出した元のリストの分割に戻され(例えば復元され)うる。留意すべきは、iが0からnumber_of_bds−1までの値を取りうることである。
いくつかの構成において、選択的な置き換え、オーバーライド、削除および添付操作は、PPSにおけるバッファ記述に属するリストセット(例えば、(負のdeltaPOCリスト、負のdeltaPOC usedByCurPicBDリスト)セット、(正のdeltaPOCリスト、正のdeltaPOC usedByCurPicBDリスト)セット、および(pocリスト、poc_cycleリスト、pocおよびpoc_cycle usedByCurPicBDリスト)セット)毎に別々にシグナリングされる。別の構成では、スケーリングパラメータリストが、各リストセット内に存在しうる。
いくつかの構成において、ビットストリームが第1の解像度を持つ第1のピクチャおよび第2の解像度を持つ第2のピクチャを含み、第1の解像度と第2の解像度とが等しくなく、かつ第2のピクチャがIDRピクチャではないか、またはシーケンス・パラメータセット(SPS)が第1のピクチャより後かつ第2のピクチャより前に受信されない場合、復号ピクチャバッファは、異なる解像度を有するピクチャを含みうる。エンコーダは、そのときに、参照ピクチャが次のオプションのうちの1つを備えるように復号ピクチャバッファ(DPB)における参照ピクチャが修正されることをデコーダにシグナリングしうる:
(a)第1の解像度、
(b)第2の解像度、または
(c)第1および第2の両方の解像度
いくつかのユースケース例が次のように示される。オプション(a)が有用なのは、参照ピクチャが、低い方の解像度での動き予測にのみ用いられることになる場合である。オプション(a)の例は、図16に説明される第1の例1653aとして示される。
オプション(b)が有用なのは、ビットストリームが第2のピクチャに続く第3のピクチャを含み、第3のピクチャが第1の解像度にあり、DPBに記憶された長期ピクチャが、動き予測に用いられうるときである。オプション(b)の例は、図16に説明される第2の例1653bとして示される。
オプション(c)が有用なのは、参照ピクチャの低い方の解像度版が、低い方の解像度のピクチャに関する動き予測に用いられるときである。加えて、第2のピクチャに続く第3のピクチャを復号するときに、第3のピクチャが第1の解像度にあり、参照ピクチャの高い方の解像度版が、動き予測に用いられるときである。オプション(c)の例は、図16に第3の例1653cとして示される。
解像度の切り替えは、次のリスティング(10)に示されるように、シンタックス修正を用いてシグナリングされうる。本明細書に記載されるシステムおよび方法による修正は、以下に太字テキストで示される。
リスティング(10)
「adaptive_res_coding_flag」が0に等しければ、シーケンスは、解像度の切り替えを受けない。「adaptive_res_coding_flag」が1に等しければ、シーケンスは、解像度の切り替えを受ける。
refPicS0Height[i]およびrefPicS0Width[i]は、負のdeltaPOCに対応するi番目の参照ピクチャの元の高さおよび幅を表す。refPicS1Height[i]およびrefPicS1Width[i]は、正のdeltaPOCに対応するi番目の参照ピクチャの元の高さおよび幅を表す。curPicHeightおよびcurPicWidthは、復号されている現ピクチャの高さおよび幅を表す。
「num_negative_pics」は、続くdelta_poc_s0_minus1[i]およびused_by_curr_pic_s0_flag[i]シンタックス要素の数を指定する。num_positive_picsは、続くdelta_poc_s1_minus1[i]およびused_by_curr_pic_s1_flag1[i]シンタックス要素の数を指定する。
「delta_poc_s0_minus1[i]」プラス1は、2つのピクチャオーダーカウント値の間の絶対差を指定する。delta_poc_s0_minus1[i]の値は、両端値を含めて、0から215−1までの範囲内にあるものとする。delta_poc_s0_minus1[i]は、負のdeltaPOC値に対応する。
0に等しい「used_by_curr_pic_s0_flag[i]」は、現ピクチャより小さいピクチャオーダーカウントを有するi番目の参照ピクチャが、現ピクチャによる参照のために用いられないことを指定する。「delta_poc_s1_minus1[i]」プラス1は、2つのピクチャオーダーカウント値の間の絶対差を指定する。delta_poc_s1_minus1[i]の値は、両端値を含めて、0から215−1までの範囲内にあるものとする。delta_poc_s1_minus1[i]は、正のdeltaPOC値に対応する。
0に等しい「used_by_curr_pic_s1_flag[i]」は、現ピクチャより大きいピクチャオーダーカウントを有するi番目の参照ピクチャが、現ピクチャによる参照のために用いられないことを指定する。
0に等しい「used_by_curr_pic_longterm_flag[i]」は、i番目の長期参照ピクチャが、現ピクチャによる参照のために用いられないことを指定する。
0に等しい「ref_pic_s0_resolution_idx[i]」は、参照ピクチャの解像度を復号されている現ピクチャの解像度と一致させるように、参照ピクチャがスケーリングされることを指定する。1に等しい「ref_pic_s0_resolution_idx[i]」は、参照ピクチャが、参照ピクチャの元の解像度に維持されることを指定する。2に等しい「ref_pic_s0_resolution_idx[i]」は、参照ピクチャの解像度が、その元の解像度と現ピクチャの解像度との両方で保持されることを指定する。「ref_pic_s0_resolution_idx[i]」は、存在しないときに0であると推定される。
0に等しい「ref_pic_s1_resolution_idx[i]」は、参照ピクチャの解像度を復号されている現ピクチャの解像度と一致させるように、参照ピクチャがスケーリングされることを指定する。1に等しい「ref_pic_s1_resolution_idx[i]」は、参照ピクチャが、参照ピクチャの元の解像度に維持されることを指定する。2に等しい「ref_pic_s1_resolution_idx[i]」は、参照ピクチャの解像度が、その元の解像度と現ピクチャの解像度との両方で保持されることを指定する。「ref_pic_s1_resolution_idx[i]」は、存在しないときに0であると推定される。
一構成において、ビットストリームが第1の解像度を持つ第1のピクチャならびに第2の解像度を持つ第2のピクチャおよび第4のピクチャを含み、第1の解像度と第2の解像度とが等しくなく、かつ第2のピクチャがIDRピクチャではないか、またはシーケンス・パラメータセット(SPS)が第1のピクチャより後かつ第2のピクチャより前に受信されない場合、第2のピクチャは、第1の解像度の1つの参照ピクチャのみを参照しうる。第2の構成において、ビットストリームが第1の解像度を持つ第1のピクチャならびに第2の解像度を持つ第2のピクチャを含み、第1の解像度と第2の解像度とが等しくなく、かつ第2のピクチャがIDRピクチャではないか、またはシーケンス・パラメータセット(SPS)が第1のピクチャより後かつ第2のピクチャより前に受信されない場合、第4のピクチャは、第2の解像度の他のピクチャによって参照されない、第1の解像度の1つの参照ピクチャのみを参照しうる。
例えば、同じ解像度の他のピクチャが第4のピクチャに先行した場合、第4のピクチャは、第4のピクチャに先行した同じ解像度のピクチャによって用いられた参照ピクチャに加えて、第1の解像度の1つの参照ピクチャを参照しうる。言い換えれば、第2の解像度のピクチャを復号するときには、ピクチャを復号するときの参照のために、第1の解像度を持つ1つの参照ピクチャのみを用いることができる。第2の解像度を持つピクチャを復号するときの参照のために、第1の解像度を持つピクチャが一旦用いられると、参照のために用いられた第1の解像度を持つそのピクチャは、後続ピクチャを復号するための第2の解像度の解像度を有すると見做される。
図12は、指定ピクチャに基づいて、削減されたオーバーヘッドの参照により、参照ピクチャを追跡するための方法1200の別のより具体的な構成を示したフローダイアグラムである。この方法1200は、POCが再使用されたときにどのピクチャが参照されているかを追跡するための別のアプローチでありうる。電子デバイス204(例えば、デコーダ202)は、ビットストリームを受信しうる(ステップ1202)。例えば、デコーダ202は、符号化された参照ピクチャを含むビットストリーム214を受信しうる(ステップ1202)。いくつかの構成において、ビットストリーム214は、オーバーヘッド情報(例えば、PPS,バッファ記述情報、パラメータ、参照ピクチャ指定または識別子など)も含みうる。
電子デバイス204は、復号された参照ピクチャを産出するために、ビットストリームの一部分を復号しうる(ステップ1204)。例えば、デコーダ202は、フレームメモリ264に記憶される復号された参照ピクチャを産出するために、ビットストリーム214の一部分を復号しうる(ステップ1204)。留意すべきは、1つ以上の復号された参照ピクチャを産出するために、ビットストリーム214の1つ以上の部分が復号されうる(ステップ404)ことである。
電子デバイス204は、サイクルパラメータを、復号された参照ピクチャを含む復号ピクチャセットと関連付けうる(ステップ1206)。例えば、電子デバイス204は、サイクルパラメータ「poc_cycle」を、復号された参照ピクチャを含む復号ピクチャセットまたは復号ピクチャセットにおける各ピクチャと関連付けうる(ステップ1206)。サイクルパラメータ「poc_cycle」は、上にさらに詳細に記載される。
電子デバイス204は、ピクチャセット間の遷移が生じたかどうかを判定しうる(ステップ1208)。例えば、遷移は、復号されている現ピクチャのPOC(例えば、[数45]CurPOC)を調べて、そのPOCを復号された最後のピクチャのPOC(例えば、[数46]LastPOC)と比較することによって判定されうる(ステップ1208)。例として、復号されている現ピクチャのPOC(例えば、[数47]CurPOC)が、最後に復号されたピクチャのPOC(例えば、[数48]LastPOC)より小さく、かつ[数49]LastPOC−CurPOCが閾値[数50]TH_FWDより大きければ、時間的に前のピクチャセットから後のピクチャセットへの遷移が判定されうる(ステップ1208)。しかしながら、復号されている現ピクチャのPOC(例えば、[数51]CurPOC)が、復号された最後のピクチャのPOC(例えば、[数52]LastPOC)より大きく、かつ[数53]CurPOC−LastPOCが閾値[数54]TH_BCKWDより大きければ、時間的に後のピクチャセットから前のピクチャセットへの遷移が判定されうる(ステップ1208)。すべての他のケースでは、遷移がなにも生じなかったと判定されうる(ステップ1208)。いくつかの構成において、閾値は、[数55]TH_FWD=TH_BCKWD=MaxPOC/2の値を取りうる。
電子デバイス204が、2つのピクチャセット間で遷移が生じたと判定した(ステップ1208)場合、電子デバイス204は、サイクルパラメータを修正しうる(ステップ1210)。例えば、遷移が時間的に前のピクチャセットからであるときに、電子デバイス204は、DPBにおけるピクチャ毎またはピクチャセット毎にサイクルパラメータをデクリメントしうる。別の例では、遷移が時間的に後のピクチャセットからであるときに、電子デバイス204は、DPBにおけるピクチャ毎またはピクチャセット毎にサイクルパラメータをインクリメントしうる。かくして、復号されているピクチャに関して、すべての参照ピクチャのサイクルパラメーラの更新が実施されうる。この更新手順(例えば、ピクチャセット間で遷移が生じたかどうかを判定し(ステップ1208)、場合によってはサイクルパラメータ(単数または複数)を修正する(ステップ1210))は、復号されているピクチャ毎に一度実行されうる。
サイクルパラメータ「poc_cycle」の1つの択一的な定義は、(現在)復号されているピクチャに関するpoc_cycleが0であることでありうる。従って、現在復号されているピクチャを含むピクチャセットは、0でありうる。
参照ピクチャ等の任意の他のピクチャのpoc_cycleは、参照ピクチャの[数56]MaxPOCSetIndexマイナス復号されているピクチャの[数57]MaxPOCSetIndexとして算出されうる。例えば、復号されているピクチャの[数58]MaxPOCSetIndexが「n」であり、参照ピクチャが「n」−1の[数59]MaxPOCSetIndexを有すれば、参照ピクチャのpoc_cycleは、[数60](n−1)−n=−1でありうる。
留意すべきは、参照ピクチャに関するpoc_cycleが、参照ピクチャと復号されているピクチャとの間の[数61]MaxPOCSetIndex距離に依存しうることである。これは、1つのピクチャセット[数62][0,・・・,MaxPOC−1]と他のピクチャセット[数63][0,・・・,MaxPOC−1]との間の遷移をエンコーダ108でもデコーダ102でも追跡し続ける(例えば、遷移が生じたかどうかを判定する(ステップ1208))ことによって暗黙的に判定できる。
電子デバイス204は、復号された参照ピクチャに基づいて、ピクチャを復号しうる(ステップ1212)。例えば、(復号された参照ピクチャを産出するためにステップ1204で復号された部分以外の)ビットストリーム214の一部分が、復号された参照ピクチャに基づいて復号されうる(ステップ1212)。例えば、(DPBで追跡された)復号された参照ピクチャは、フレーム間予測メカニズムに基づいてフレーム間予測信号268を生成するために、動き補償モジュール260へ供給されうる。フレーム間予測信号268は、次にピクチャを復号する(ステップ1212)ために用いられうる。いくつかの構成または例では、ピクチャを復号する(ステップ1212)ために、1つ以上の復号された参照ピクチャが用いられうる。
図13は、ピクチャセット間で遷移が生じたかどうかを判定するための方法1300の一構成を示したフローダイアグラムである。例えば、図13は、図12に示されるようにピクチャセット間で遷移が生じたかどうかを判定するステップ1208の一例を提供する。電子デバイス204は、(例えば、「[数64]CurPOC」と示される)復号されている現ピクチャのPOCが、(例えば、「[数65]LastPOC」と示される)最後に復号されたピクチャのPOCより小さいかどうかを判定しうる(ステップ1302)。例として、電子デバイス204は、この判定(ステップ1302)を行うために、復号されている現ピクチャのPOC(例えば、[数66]CurPOC)を最後に復号されたピクチャのPOC(例えば、[数67]LastPOC)と比較しうる。
[数68]CurPOC<LastPOCであれば、電子デバイス204は、[数69]LastPOC−CurPOCが閾値[数70]TH_FWDより大きいかどうかを判定しうる(ステップ1308)。[数71]LastPOC−CurPOCが閾値[数72]TH_FWDより大きければ、電子デバイス204は、時間的に前のピクチャセットから後のピクチャセットへの遷移が生じたと判定しうる(ステップ1308)。しかしながら、[数73]LastPOC−CurPOCが[数74]TH_FWDより大きくなければ、電子デバイス204は、遷移がなにも生じなかったと判定しうる(ステップ1308)。
[数75]CurPOCが[数76]LastPOCより小さくなければ、電子デバイス204は、[数77]CurPOCが[数78]LastPOCより大きいかどうかを判定しうる(ステップ1304)。電子デバイス204が、[数79]CurPOCが[数80]LastPOCより大きいと判定すれば(ステップ1304)、電子デバイス204は、[数81]CurPOC−LastPOCが閾値[数82]TH_BCKWDより大きいかどうかを判定しうる(ステップ1306)。電子デバイスが、[数83]CurPOC−LastPOCが閾値[数84]TH_BCKWDより大きいと判定すれば(ステップ1306)、電子デバイス204は、時間的に後のピクチャセットから前のピクチャセットへの遷移が生じたと判定しうる(ステップ1306)。電子デバイスが、[数85]CurPOC−LastPOCが閾値[数86]TH_BCKWDより大きくないと判定すれば(ステップ1306)、電子デバイス204は、遷移がなにも生じなかったと判定しうる(ステップ1306)。
電子デバイス204が、[数87]CurPOCが[数88]LastPOCより大きくないと判定すれば(ステップ1304)、電子デバイスは、遷移がなにも生じなかったと判定しうる(ステップ1304)。いくつかの構成において、閾値は、[数89]TH_FWD=TH_BCKWD=MaxPOC/2の値を取りうる。
図14は、指定ピクチャに基づいて、削減されたオーバーヘッドの参照により、参照ピクチャを追跡するための方法1400の別のより具体的な構成を示したフローダイアグラムである。この方法1400は、POCが再使用されたときにどのピクチャが参照されているかを追跡するための1つのアプローチでありうる。電子デバイス204(例えば、デコーダ202)は、ビットストリーム214を受信しうる(ステップ1402)。例えば、デコーダ202は、符号化された参照ピクチャ(および、例として、他の符号化されたピクチャ)を含むビットストリーム214を受信しうる(ステップ1402)。いくつかの構成において、ビットストリーム214は、オーバーヘッド情報(例えば、PPS、バッファ記述情報、パラメータ、参照ピクチャ指定または識別子など)を含みうる。
電子デバイス204は、復号された参照ピクチャを産出するために、ビットストリーム214の一部分を復号しうる(ステップ1404)。例えば、デコーダ202は、フレームメモリ264に記憶される復号された参照ピクチャを産出するために、ビットストリーム214の一部分を復号しうる(ステップ1404)。留意すべきは、1つ以上の復号された参照ピクチャを産出するために、ビットストリーム214の1つ以上の部分が復号されうる(ステップ1404)ことである。
電子デバイス204は、サイクルパラメータを、復号された参照ピクチャを含む復号ピクチャセットと関連付けうる(ステップ1406)。例えば、電子デバイス204は、サイクルパラメータ「poc_cycle」を、復号された参照ピクチャを含む復号ピクチャセットと関連付けうる(ステップ1406)。
電子デバイス204は、ピクチャセット間で遷移が生じたかどうかを判定しうる(ステップ1408)。例えば、デコーダ102がピクチャセットにおける所定数のピクチャを復号するたびに、デコーダ102または電子デバイスB104bは、2つのピクチャセット間で遷移が生じたと判定しうる(ステップ1408)。別の例では、デコーダ102が、(例えば、最大値から最小値へリスタートする)POCにおけるサイクルを検出するたびに、デコーダ102または電子デバイスB104bは、2つのピクチャ間で遷移が生じたと判定しうる(ステップ1408)。
電子デバイス204がピクチャセット間で遷移が生じたと判定すれば(ステップ1408)、電子デバイス204は、サイクルパラメータを修正(例えばデクリメント)しうる(ステップ1410)。例えば、電子デバイス204は、DPBにおけるピクチャ毎またはピクチャセット毎にサイクルパラメータをデクリメントする。別の例では、電子デバイス204は、サイクルパラメータをインクリメントすることもある。
電子デバイス204は、復号された参照ピクチャに基づいてピクチャを復号しうる(ステップ1412)。例えば、(復号された参照ピクチャを産出するためにステップ1404で復号された部分以外の)ビットストリーム214の一部分は、参照ピクチャに基づいて復号されうる(ステップ1412)。例として、(DPBで追跡された)復号された参照ピクチャは、フレーム間予測メカニズムに基づいてフレーム間予測信号268を生成するために、動き補償モジュール260へ供給されうる。フレーム間予測信号268は、次にピクチャを復号する(ステップ1412)ために用いられうる。いくつかの構成または例では、ピクチャを復号する(ステップ1412)ために、1つ以上の復号された参照ピクチャが用いられうる。
図15は、電子デバイス1504で利用されうる様々なコンポーネントを示す。電子デバイス1504は、前述された1つ以上の電子デバイス(例えば、電子デバイス104、204)として実装されうる。
電子デバイス1504は、電子デバイス1504の動作を制御するプロセッサ1517を含む。プロセッサ1517は、CPUとも呼ばれうる。メモリ1511は、リードオンリーメモリ(ROM)、ランダムアクセスメモリ(RAM)の両方、または情報を記憶できる任意のタイプのデバイスを含むことができ、命令1513a(例えば、実行可能な命令)およびデータ1515aをプロセッサ1517へ供給する。メモリ1511の一部分が不揮発性ランダムアクセスメモリ(NVRAM)を含んでもよい。メモリ1511は、プロセッサ1517と電子通信しうる。
命令1513bおよびデータ1515bは、プロセッサ1517にも存在しうる。プロセッサ1517に読み込まれた命令1513bおよび/またはデータ1515bは、プロセッサ1517による実行または処理のために読み込まれた、メモリ1511からの命令1513aおよび/またはデータ1515aを含んでもよい。命令1513bは、本明細書に開示されるシステムおよび方法を実装するためにプロセッサ1517によって実行されうる。例えば、電子デバイス1504は、上記および下記の方法300、400、800、900、1000、1200、1300、1400、1700、1800の1つ以上を行いうる。
電子デバイス1504は、他の電子デバイスと通信するための1つ以上の通信インタフェース1519を含みうる。通信インタフェース1519は、有線通信技術、無線通信技術、または両方に基づきうる。通信インタフェース1519の例は、シリアルポート、パラレルポート、ユニバーサルシリアルバス(USB;Universal Serial Bus)、イーサネットアダプタ、IEEE1394バスインタフェース、小型計算機システムインタフェース(SCSI;small computer system interface)バスインタフェース、赤外線(IR)通信ポート、Bluetooth無線通信アダプタ、第3世代パートナーシップ・プロジェクト(3GPP;3rd Generation Partnership Project)による無線トランシーバなどを含む。
電子デバイス1504は、1つ以上の出力デバイス1523および1つ以上の入力デバイス1521を含みうる。出力デバイス1523の例は、スピーカ、プリンタなどを含む。電子デバイス1504に含まれうる出力デバイスの1つのタイプは、表示デバイス1525である。本明細書に開示される構成とともに用いられる表示デバイス1525は、任意の適切な画像投影技術、例えば、陰極線管(CRT)、液晶表示(LCD)、発光ダイオード(LED)、気体プラズマ、エレクトロルミネセンスなどを利用しうる。表示コントローラ1527は、メモリ1511に記憶されたデータを、表示デバイス1525上に示されるテキスト、グラフィックス、および/または動画に(適宜)変換するために提供されうる。入力デバイス1521の例は、キーボード、マウス、マイクロフォン、リモートコントロールデバイス、ボタン、ジョイスティック、トラックボール、タッチパッド、タッチスクリーン、ライトペンなどを含む。
電子デバイス1504の様々なコンポーネントは、データバスに加えて、電力バス、制御信号バスおよびステータス信号バスを含みうるバスシステム1529によって一緒に結合される。しかしながら、明確のために、図15では様々なバスがバスシステム1529として示される。図15に示される電子デバイス1504は、具体的なコンポーネントのリスティングではなく、機能ブロックダイアグラムである。
図16は、本明細書に開示されるシステムおよび方法によるユースケースの例を示したダイアグラムである。特に、3つの例1653a〜cが上記のように示される。これら3つの例は、ビットストリームが第1の解像度を持つ第1のピクチャおよび第2の解像度を持つ第2のピクチャを含む場合、第1の解像度および第2の解像度が等しくない場合、および第2のピクチャがIDRピクチャではないか、またはシーケンス・パラメータセット(SPS)が第1のピクチャより後かつ第2のピクチャより前に受信されない場合に生じうる。
第1の例1653aは、復号ピクチャバッファに記憶された第1の解像度1655aのピクチャおよび第2の解像度1657aのピクチャを示す。第1の例1653aでは、エンコーダは、参照ピクチャが第1の解像度にあるように、復号ピクチャバッファ(DPB)における参照ピクチャが修正されることをデコーダにシグナリングしうる。これが有用なのは、参照ピクチャが、低い方の解像度での動き予測にのみ用いられることになる場合であろう。
第2の例1653bは、復号ピクチャバッファに記憶された第1の解像度1655bのピクチャおよび第2の解像度1657bのピクチャを示す。第2の例1653bでは、エンコーダは、参照ピクチャが第2の解像度にあるように、復号ピクチャバッファ(DPB)における参照ピクチャが修正されることをデコーダにシグナリングしうる。これが有用なのは、ビットストリームが第2のピクチャに続く第3のピクチャを含み、第3のピクチャが第1の解像度にあり、DPBに記憶された長期ピクチャが、動き予測に用いられうるときであろう。
第3の例1653cは、復号ピクチャバッファに記憶された第1の解像度1655cのピクチャと第2の解像度1657cのピクチャとを示す。第3の例1653cでは、エンコーダは、参照ピクチャが第1および第2の両方の解像度にあるように、復号ピクチャバッファ(DPB)における参照ピクチャが修正されることをデコーダにシグナリングしうる。これが有用なのは、第2のピクチャに続く第3のピクチャを復号するときに、第3のピクチャが第1の解像度にあり、参照ピクチャの高い方の解像度版が、動き予測のために用いられるときであろう。
図17は、長期参照ピクチャ・インジケータを送信するための方法1700の一構成を示したフローダイアグラムである。電子デバイス104は、長期参照ピクチャ・インジケータを生成する(ステップ1702)。例えば、長期参照ピクチャ・インジケータは、電子デバイス104のエンコーダ108により生成される(ステップ1702)。電子デバイス104は、SPS、PPS、APSおよびVPSの1つ以上において長期参照ピクチャ・インジケータを生成する(ステップ1702)。長期参照ピクチャ・インジケータは、1つ以上の長期参照ピクチャを指示する。例えば、長期参照ピクチャ・インジケータは、長期参照ピクチャ存在フラグでありうる。長期参照ピクチャは、符号化されたビデオシーケンスにおける任意の符号化されたピクチャのインター予測のために用いられる。
電子デバイス104は、長期参照ピクチャ・インジケータを送信する(ステップ1704)。いくつかの構成において、長期参照ピクチャ・インジケータは、long_term_ref_pics_present_flagにより表される。長期参照ピクチャ・インジケータは、SPS、PPS、APSおよびVPSの1つ以上において送信される(ステップ1704)。加えて、長期参照ピクチャ・インジケータは、ビットストリーム114において送信される(ステップ1704)。
いくつかの構成において、電子デバイス104は、長期参照ピクチャに対応する絶対ピクチャオーダーカウント(POC)を生成すればよく、絶対POCは最下位ビット(LSB)を有する(ステップ1706)。いくつかの構成においては、ピクチャオーダーカウント(POC)という用語は、絶対POCを指すために用いられることに留意しなければならない。さらに、絶対POCという用語は、POC空間のある固定点に対する相対POCに対応する。例えば、すべての絶対POC値が、新たなピクチャオーダーカウント(POC)値を生成するために、何らかの操作によって変換される。いくつかのケースでは、この変換操作は、一定値の減算であってもよい。言い換えれば、本明細書に記載されるいくつかのアプローチにおいて、このようにして変換後に生成された新たなPOC値も、なお絶対POC値と見做されうる。さらに別の構成において、本明細書に記載されるシステムおよび方法の絶対POC値は、変化する動的な(例えば、固定でない)POC値に対する相対POC値でありうる。電子デバイス104は、長期参照ピクチャに対応する絶対POCのLSB値を送信する(ステップ1708)。例えば、電子デバイス104は、符号化されたビデオシーケンスにおける任意の符号化されたピクチャのインター予測のために用いうる長期参照ピクチャの各々に対応する絶対POCのLSB値を送信する(ステップ1708)。1つ以上の長期参照ピクチャに関する絶対POCのLSB値は、1つ以上のパラメータセット(例えば、SPS、PPS、APSおよびVPS)において送信される(ステップ1708)。例えば、いくつかの構成において、長期参照ピクチャに対応する絶対POCのLSB値は、スライスヘッダで送信または受信されなくてよい。絶対POCを送信するために用いられるパラメータセット(単数または複数)は、長期参照ピクチャ・インジケータを送信するために用いられるパラメータセット(単数または複数)と同じでも異なってもよい。参照ピクチャの絶対シグナリングの1つの利益は、バッファ記述を用いて参照ピクチャのロバストエラー管理をサポートしうることであろう。絶対POCのLSB値は、POC LSB値と呼ばれる。
いくつかの構成において、電子デバイス104は、スライスヘッダを生成する(ステップ1710)。スライスヘッダは、長期インデックスパラメータを含む。例えば、長期インデックスパラメータは、long_term_idx_sps[i]である。長期インデックスパラメータは、少なくとも1つのパラメータセットにおける絶対POCおよび現ピクチャ使用フラグに対応する。
いくつかの構成において、電子デバイス104は、必要に応じて、長期インデックスパラメータにより指示される長期参照ピクチャに対応する絶対POCのデルタ最上位ビット(MSB)サイクルを生成および送信する(ステップ1712)。この場合、デルタMSBサイクル値は、現ピクチャのPOC値を考慮することにより算出されうる。ステップ1712で生成および送信されるときには、絶対POCのデルタMSBサイクルは、スライスヘッダに含まれて送信される。絶対POCのデルタMSBサイクルを生成および送信するステップ1712は、長期参照ピクチャからの1つ以上のPOC LSB値が同じであるときに必要となる。それ以外の場合には、絶対POCのデルタMSBサイクルを生成および送信するステップ1712は必須または必要ではないであろう。長期参照ピクチャからの1つ以上のPOC LSB値が同じであるとき、delta_poc_msb_present_flag[i]は1に設定される。長期参照ピクチャからのPOC LSB値が同じでないとき、delta_poc_msb_present_flag[i]は0に設定されうる。例えば、後者の場合には、絶対POCのデルタMSBサイクルを送信することが必要ないであろう。
電子デバイス104は、長期インデックスパラメータを含むスライスヘッダを送信する(ステップ1714)。いくつかの構成において、スライスヘッダは、長期インデックスパラメータによって指示される長期参照ピクチャに対応するPOCのデルタMSBサイクルを有して送信され、および/または含まれる。
電子デバイス104は、現ピクチャに対応する現ピクチャ使用フラグを生成しうる(ステップ1716)。例えば、現ピクチャ使用フラグは、現ピクチャ使用長期SPSフラグ、例えば、used_by_current_pic_lt_sps_flag[i]でありうる。現ピクチャ使用長期SPSフラグ(例えば、used_by_current_pic_lt_sps_flag[i])は、現ピクチャを復号する際に絶対ピクチャオーダーカウント(POC)により指示されるi番目の長期参照ピクチャを利用すべきかどうかを指定する。SPSフラグが記載されているが、SPS、PPS.APSおよびVPSフラグの1つ以上が用いられうることに留意しなければならない。いくつかの場合には、1の値を有するused_by_current_pic_lt_sps_flag[i]が、SPSにおいて各i番目の長期参照ピクチャに関してシグナリングされる。他の場合には、0の値を有するused_by_current_pic_lt_sps_flag[i]が、SPSにおいて各i番目の長期参照ピクチャに関してシグナリングされる。したがって、ABSPOCVALUE1の絶対POC値を有する各長期参照ピクチャに関してSPS、PPS、APSおよび/またはVPSに含まれうる2組の{long_term_ref_pic_poc_sps[i]=ABSPOCVALUE1,used_by_current_pic_lt_sps_flag[i]=1}、{long_term_ref_pic_poc_sps[i]=ABSPOCVALUE1,used_by_current_pic_lt_sps_flag[i]=0}が存在しうる。
電子デバイス104は、少なくとも1つのパラメータセットにおいて現ピクチャ使用フラグを送信する(ステップ1718)。例えば、現ピクチャ使用フラグは、SPS、PPS、APSおよび/またはVPSにおいて送信される(ステップ1718)。このようにして、現ピクチャ使用フラグをSPS、PPS、APSおよび/またはVPSにおいて送信することにより、1つの利益は、スライスヘッダで現ピクチャ使用フラグを指定しなくてもよいことである。言い換えれば、いくつかの構成では、現ピクチャ使用フラグはスライスヘッダで指定されない。
リスティング(11)は、絶対POCを用いたSPSにおける長期参照ピクチャのシグナリングの一例を示す。本明細書に記載されるシステムおよび方法による修正は、下記に太字テキストで示される。
リスティング(11)
リスティング(11)におけるパラメータの記述の例は、次のように示される。
「num_short_term_ref_pic_sets」は、シーケンス・パラメータセットにおいて指定される短期参照ピクチャセットの数を指定する。num_short_term_ref_pic_setsの値は、両端値を含めて、0から64までの範囲である。符号化されたビデオシーケンスは、現ピクチャのスライスヘッダで明示的にシグナリングされる短期参照ピクチャセットを1つまで含むため、デコーダ102は、num_short_term_ref_pic_sets+1の合計数の短期参照ピクチャセットに空間を割り当てなければならない。明示的にシグナリングされる短期参照ピクチャセットは、短期参照ピクチャセットのリストにおいてnum_short_term_ref_pic_setsに等しいインデックスを常に有することとなる。
「short_term_ref_pic_set(i)」は、i番目の短期参照ピクチャセット情報を指す。短期参照ピクチャセットは、シーケンス・パラメータセット(SPS)またはスライスヘッダに存在しうる。短期参照ピクチャセットがスライスヘッダに存在する場合、短期参照ピクチャセットのシンタックス構造の内容は、ピクチャのすべてのスライスヘッダで同じになり、idxの値は、アクティブシーケンス・パラメータセット(SPS)からのシンタックス要素num_ref_pic_setsに等しくなる。
「num_long_term_ref_pics_sps」は、シーケンス・パラメータセットにおいて指定される長期参照ピクチャの数を指定する。num_long_term_ref_pics_spsの値は、両端値を含めて、0から64までの範囲である。
「long_term_ref_pic_poc_lsb_sps[i]」は、シーケンス・パラメータセットにおいて指定されるi番目の長期参照ピクチャのPOCの最下位ビット(LSB)を指定する。long_term_ref_pic_poc_sps[i]を表すために用いられるビットの数は、log2_max_pic_order_cnt_lsb_minus4+4に等しい。
0に等しい「used_by_curr_pic_lt_sps_flag[i]」は、シーケンス・パラメータセットにおいて指定されるi番目の長期参照ピクチャlong_term_ref_pic_poc_lsb_sps[i]は、現ピクチャによる参照のために用いられないことを指定する。1に等しい「used_by_curr_pic_lt_sps_flag[i]」は、シーケンス・パラメータセットにおいて指定されるi番目の長期参照ピクチャlong_term_ref_pic_poc_lsb_sps[i]は、現ピクチャによる参照のために用いられることを指定する。
いくつかの構成においては、long_term_ref_pic_poc_lsb_sps[i]に関連するused_by_curr_pic_lt_sps_flag[i]が、SPSに加えて、またはSPSの代わりにピクチャパラメータセット(PPS)、アクティブパラメータセット(APS)、および/またはビデオパラメータセット(VPS)に含まれる。
下記のリスティング(12)は、リスティング(11)に示した修正と関連してスライスヘッダに加えられる修正の例を示す。しかしながら、「used_by_curr_pic_lt_sps_flag[i]」がSPS(および/または他のパラメータセット)においてシグナリングされる結果、スライスヘッダで指定される必要がないことに留意されたい。本明細書に記載されるシステムおよび方法による修正は、下記に太字テキストで示されうる。
リスティング(12)
リスティング(12)におけるパラメータの記述の例は、次のように示される。「idr_pic_id」は、瞬時復号リフレッシュ(IDR)ピクチャを識別する。IDRピクチャのすべてのスライスにおけるidr_pic_idの値は、変更されないままである。復号順に2つ連続したアクセスユニットがいずれもIDRアクセスユニットであるとき、第1のIDRアクセスユニットのスライスにおけるidr_pic_idの値は、第2のIDRアクセスユニットにおけるidr_pic_idとは異なる。idr_pic_idの値は、両端値を含めて、0から65535までの範囲である。
「no_output_of_prior_pics_flag」は、復号ピクチャバッファにおける前に復号されたピクチャが、IDRピクチャの復号後にいかに処理されるかを指定する。IDRピクチャが、ビットストリームにおける第1のIDRピクチャであるとき、no_output_of_prior_pics_flagの値は、復号処理になにも影響を与えない。IDRピクチャが、ビットストリームにおける第1のIDRピクチャではなく、アクティブSPSから導出されるpic_width_in_luma_samples、pic_height_in_luma_samplesまたはmax_dec_pic_buffering[max_temporal_layers_minus1]の値が、先行ピクチャに関してアクティブなSPSから導出されるpic_width_in_luma_samples、pic_height_in_luma_samplesまたはmax_dec_pic_buffering[max_temporal_layers_minus1]の値と異なるときには、no_output_of_prior_pics_flagの実際値に関わらず、1に等しいno_output_of_prior_pics_flagがデコーダ102によって推定される。しかしながら、1に等しいno_output_of_prior_pics_flagが推定されうるが、一般に、推定されるべきではない。
「pic_order_cnt_lsb」は、現ピクチャに関してピクチャオーダーカウントとMaxPicOrderCntLsbのモジュロを指定する。pic_order_cnt_lsbシンタックス要素の長さは、log2_max_pic_order_cnt_lsb_minus4+4ビットである。pic_order_cnt_lsbの値は、両端値を含めて、0からMaxPicOrderCntLsb −1までの範囲である。pic_order_cnt_lsbが存在しないとき、pic_order_cnt_lsbは0に等しいと推定される。
1に等しい「short_term_ref_pic_set_sps_flag」は、現ピクチャの短期参照ピクチャセットが、アクティブシーケンス・パラメータセットのシンタックス要素を用いて作成されることを示す。0に等しいshort_term_ref_pic_set_sps_flagは、現ピクチャの短期参照ピクチャセットが、スライスヘッダのshort_term_ref_pic_set()シンタックス構造のシンタックス要素を用いて作成されることを示す。
「short_term_ref_pic_set_idx」は、現ピクチャの参照ピクチャセットの作成に用いられる、アクティブSPSにおいて指定される短期参照ピクチャセットのリストのインデックスを指定する。シンタックス要素short_term_ref_pic_set_idxは、Ceil(Log2(num_short_term_ref_pic_sets))ビットにより表される。short_term_ref_pic_set_idxの値は、両端値を含めて、0からnum_short_term_ref_pic_sets−1の範囲であり、num_short_term_ref_pic_setsは、アクティブシーケンス・パラメータセットからのシンタックス要素である。
変数StRpsIdxは、次のリスティング(13)に示されるように導出される。
リスティング(13)
「num_long_term_pics」は、現ピクチャの長期参照ピクチャセットに含まれるべき、スライスヘッダで直接シグナリングされる長期参照ピクチャの数を指定する。num_long_term_picsの値は、両端値を含めて、0からmax_dec_pic_buffering[max_temporal_layers_minus1]−NumNegativePics[StRpsIdx]−NumPositivePics[StRpsIdx]の範囲である。存在しない場合、num_long_term_picsの値は0に等しいと推定される。
「num_long_term_sps」は、アクティブシーケンス・パラメータセットにおいて指定される、現ピクチャの長期参照ピクチャセットに含まれるべき長期参照ピクチャの数を指定する。num_long_term_spsが存在しない場合、値は0に等しいと推定される。num_long_term_spsの値は、両端値を含めて、0からMin(num_long_term_ref_pics_sps,max_dec_pic_buffering[max_temporal_layers_minus1]−NumNegativePics[StRpsIdx]−NumPositivePics[StRpsIdx]−num_long_term_pics)までの範囲である。
「long_term_idx_sps[i]」は、アクティブシーケンス・パラメータセットにおいて指定される長期参照ピクチャのリストに、参照シーケンス・パラメータセットから現ピクチャの長期参照ピクチャセットに継承されるi番目の長期参照ピクチャの、インデックスを指定する。long_term_idx_sps「[i]」の値は、両端値を含めて、0からnum_long_term_ref_pics_sps−1の範囲である。両端値を含めて0からnum_long_term_sps−1までの範囲内の任意のjおよびkの値に関して、jがkより小さい場合、lt_ref_pic_poc_lsb_sps[long_term_idx_sps[j]]は、lt_ref_pic_poc_lsb_sps[long_term_idx_sps[k]]より小さくないものとする。
「poc_lsb_lt[i]」は、現ピクチャの長期参照ピクチャセットに含まれるi番目の長期参照ピクチャのピクチャオーダーカウント値の最下位ビット(LSB)の値を指定する。poc_lsb_lt[i]シンタックス要素の長さは、log2_max_pic_order_cnt_lsb_minus4+4ビットである。両端値を含めてnum_long_term_picsからnum_long_term_pics+num_long_term_sps−1までの範囲内の任意のjおよびkの値に関して、jがkより小さい場合、poc_lsb_lt[j]は、poc_lsb_lt[k]より小さくないものとする。
変数PocLsbLt[i]は、次のリスティング(14)に示されるように導出される。
リスティング(14)
1に等しい「delta_poc_msb_present_flag[i]」は、delta_poc_msb_cycle_lt[i]が存在することを指定する。0に等しいdelta_poc_msb_present_flag[i]は、delta_poc_msb_cycle_lt[i]が存在しないことを指定する。復号ピクチャバッファにピクチャオーダーカウント値の最下位ビットがpoc_lsb_lt[i]に等しい1つ以上の参照ピクチャがあるとき、delta_poc_msb_present_flag[i]が1に等しくなる。
「delta_poc_msb_cycle_lt[i]」は、現ピクチャの長期参照ピクチャセットに含まれるi番目の長期参照ピクチャのピクチャオーダーカウント値の最上位ビットの値を決定するために用いられる。
変数DeltaPocMSBCycleLt[i]は、次のリスティング(15)に示されるように導出される。
リスティング(15)
DeltaPocMSBCycleLt[i]*MaxPicOrderCntLsb+pic_order_cnt_lsb−PocLsbLt[i]の値は、両端値を含めて、1から224−1までの範囲である。
「used_by_curr_pic_lt_flag[i]」は、絶対POCにより指示されるi番目の長期参照ピクチャが、現ピクチャによる参照のために用いられるか用いられないかを指定する。例えば、0に等しいused_by_curr_pic_lt_flag[i]は、現ピクチャの長期参照ピクチャセットに含まれるi番目の長期参照ピクチャが、現ピクチャによる参照のために用いられないことを指定する。参照シーケンス・パラメータセットから継承される長期参照ピクチャに関しては、used_by_curr_pic_lt_flag[i]値は、used_by_curr_pic_lt_flag[i]=used_by_curr_pic_lt_sps_flag[long_term_idx_sps[j]]として導出される。
当然のことながら、リスティング(11)およびリスティング(12)は、SPSにおける現ピクチャ使用フラグ(例えば、used_by_current_pic_lt_sps_flag[i])のシンタックスおよびセマンティクスを提供するが、APS(例えば、used_by_current_pic_lt_aps_flag[i])および/またはPPS(例えば、used_by_current_pic_lt_pps_flag[i])に関して類似のシンタックスおよびセマンティクスが用いられてもよい。
図18は、長期参照ピクチャ・インジケータを受信するための方法1800の一構成を示したフローダイアグラムである。この方法は、電子デバイス104のデコーダ102により行われる。いくつかの構成において、参照ピクチャ追跡モジュール116は、現ピクチャをデコードするために用いられる参照ピクチャを追跡するために、長期参照ピクチャ・インジケータを用いる。
長期参照ピクチャ・インジケータが、受信される(ステップ1802)。長期参照ピクチャ・インジケータは、ビットストリーム114から受信される(ステップ1802)。長期参照ピクチャ・インジケータは、シーケンス・パラメータセット(SPS)、適応パラメータセット(APS)、ピクチャパラメータセット(PPS)および/またはビデオパラメータセット(VPS)において受信される(ステップ1802)。
いくつかの構成において、長期参照ピクチャに対応する絶対POCの最下位ビット(LSB)も受信される(ステップ1804)。絶対POCのLSBは、SPS、PPS、APSおよび/またはVPSにおいて受信される。
いくつかの構成において、スライスヘッダが受信される(ステップ1806)。スライスヘッダは、長期インデックスパラメータを含む。例えば、ステップ1806で受信される長期インデックスパラメータは、long_term_idx_sps[i]である。ステップ1806で受信される長期インデックスパラメータは、少なくとも1つのパラメータセットにおける絶対POCおよび現ピクチャ使用フラグに対応する。
現ピクチャ使用フラグは、少なくとも1つのパラメータセットにおいて受信される(ステップ1808)。いくつかの構成において、長期参照ピクチャ・インジケータは、long_term_ref_pics_present_flagにより表される。現ピクチャ使用フラグは、SPS、PPS、APSおよび/またはVPSにおいて受信される(ステップ1808)。言い換えれば、パラメータセット(単数または複数)は、SPS、PPS、APSおよび/またはVPSである。このようにして、現ピクチャ使用フラグは、スライスヘッダにおいて指定されなくてもよい。ステップ1808で現ピクチャ使用フラグが受信されるパラメータセット(単数または複数)は、長期参照ピクチャ・インジケータが受信されるものと同じまたは異なるパラメータセット(単数または複数)であることができる。
いくつかの構成において、現ピクチャ使用フラグは、現ピクチャ使用長期SPSフラグ、例えば、used_by_current_pic_lt_sps_flag[i]である。現ピクチャ使用長期SPSフラグ(例えば、used_by_current_pic_lt_sps_flag[i])は、現ピクチャを復号する際に絶対POCにより指示されるi番目の長期参照ピクチャを利用すべきかどうかを指定する。
いくつかの構成において、電子デバイス104は、長期インデックスパラメータにより指示される長期参照ピクチャに対応する絶対POCのデルタ最上位ビット(MSB)サイクルを随意的に受信する(ステップ1810)。絶対POCのMSBサイクルは、スライスヘッダから受信および/または取得される。電子デバイス104は、長期参照ピクチャからの1つ以上のPOC LSB値が同じであるとき、絶対POCのデルタMSBサイクルを受信する(ステップ1810)。例えば、長期参照ピクチャからの1つ以上のPOC LSB値が同じであるとき、電子デバイス104は、1に等しいdelta_poc_msb_present_flag[i]を受信する。
長期参照ピクチャからのPOC LSB値が同じでない場合、電子デバイス104は、0に等しいdelta_poc_msb_present_flag[i]を受信する。この場合、電子デバイス104は、絶対POCのデルタMSBサイクルを受信しなくてもよい。言い換えれば、電子デバイス104は、長期インデックスパラメータにより指示される長期参照ピクチャに対応するPOCのデルタ最上位ビット(MSB)サイクルを随意的に受信しうる(ステップ1810)。
電子デバイス104は、現ピクチャ使用フラグに基づいて長期参照ピクチャを利用すべきかどうかを判定する(ステップ1812)。言い換えれば、現ピクチャを復号する際に長期参照ピクチャを利用すべきかどうかを判定する(ステップ1812)ために、現ピクチャ使用フラグが利用される。
長期参照ピクチャを利用すべきものと判定した場合、電子デバイス104は、長期参照ピクチャに基づいて現ピクチャを復号する(ステップ1814)。例えば、参照ピクチャ牽引モジュール116は、現ピクチャを復号するために長期参照ピクチャを用いる。長期参照ピクチャを利用すべきでないものと判定された場合、電子デバイス104は、長期参照ピクチャを用いずに現ピクチャを復号する(ステップ1816)。
いくつかの既知の構成、例えばJCTVC‐I1003において、参照ピクチャセット(RPS)の復号は、ピクチャ毎に1回生じる。RPSの復号は、スライスヘッダの復号の後、かつ任意の符号化ユニットの復号の前およびスライスの参照ピクチャリスト構造に関する復号処理の前に生じる。しかしながら、この復号処理の結果、1つ以上の参照ピクチャが「参照のために用いられない」ものとしてマークされる。
さらに、短期参照ピクチャは、そのPicOrderCntVal値により識別される。PicOrderCntValは、現ピクチャのピクチャオーダーカウントを示す長期参照ピクチャは、そのpic_order_cnt_lsb値により識別される。参照ピクチャセットを導出するために、ピクチャオーダーカウント値の5つのリストが構成されうる。これらの5つのリストは、NumPocStCurrBefore、NumPocStCurrAfter、NumPocStFoll、NumPocLtCurrおよびNumPocLtFoll個の要素をそれぞれ有する、PocStCurrBefore、PocStCurrAfter、PocStFoll、PocLtCurrおよびPocLtFollである。
いくつかの場合には、リスティング(16)に示されるシンタックスが、POC値の5つのリストおよびエントリ数の導出のために適用される。
リスティング(16)
図19Aは、スライスヘッダ1961の一構成を示したブロックダイアグラムである。一システムにおいて、電子デバイス104は、スライスヘッダ1961を送信する。スライスヘッダ1961は、長期参照ピクチャの数についての情報を含む。例えば、スライスヘッダ1961は、スライスヘッダにnum_long_term_picsシンタックス要素を含む)。
スライスヘッダ1961は、デルタPOC情報を有する長期参照ピクチャ(LTRP)の数を表す要素(n)1963を含む。n1963は、長期参照ピクチャデルタPOC情報要素1965の数に対応する。加えて、n1963は、num_long_term_picsとして表される。
1〜n個の長期参照ピクチャデルタPOC情報要素1965がある。言い換えれば、各長期参照ピクチャは、現ピクチャのPOC値に対するその長期参照ピクチャ自体についてのデルタPOC情報を送信することによって識別される。各長期参照ピクチャデルタPOC情報要素1965は、長期参照ピクチャPOC最下位ビット(LSB)1967、長期参照ピクチャデルタPOC最上位ビット(MSB)サイクル存在フラグ1969、長期参照ピクチャデルタMSBサイクル1971および現ピクチャ使用フラグ1973を含む。
長期参照ピクチャPOC LSB1967は、poc_lsb_lt[i]として表される。現ピクチャ使用フラグ1973は、used_by_curr_pic_lt_flag[i]により表される。
長期参照ピクチャデルタPOC MSBサイクル存在フラグ1969は、長期参照ピクチャデルタMSBサイクル1971の存在を指示する。例えば、長期参照ピクチャデルタPOC MSBサイクル存在フラグ1969が1に等しい場合、長期参照ピクチャデルタMSBサイクル1971が存在する。長期参照ピクチャデルタPOC MSBサイクル存在フラグ1969は、delta_poc_msb_present_flag[i]により表される。長期参照ピクチャデルタMSBサイクル1971は、delta_poc_msb_cycle_lt[i]により表される。
図19Bは、本明細書に開示されるシステムおよび方法によるパラメータセット1977およびスライスヘッダ1987の一構成を示したブロックダイアグラムである。図19Bは、本明細書に記載されるシステムおよび方法による、パラメータセット1977およびスライスヘッダ1987を示す。長期参照ピクチャは、長期参照ピクチャの数についての絶対情報をシグナリングすることにより達成される。絶対情報は、パラメータセット1977においてシグナリングされる。パラメータセット1977は、シーケンス・パラメータセット(SPS)、適応パラメータセット(APS)、ピクチャパラメータセット(PPS)情報および/またはビデオパラメータセット(VPS)である。明確のため、図19Bはパラメータセット1977をSPSとして議論した。しかし、当然のことながら、APS、VPSまたはPPSが加えて、または、代わりに用いられてもよい。
パラメータセット1977は、絶対POC情報要素を有する長期参照ピクチャ(LTRP)の数についての情報(m)1979を含む。m1979は、num_long_term_ref_picsにより表される。m1979は、長期参照ピクチャ絶対情報要素1981の数を示す。
1〜m個の要素1981がある。各長期参照ピクチャ絶対情報要素1981は、長期参照ピクチャ絶対POCの最下位ビット(LSB)1983と、現ピクチャ使用フラグ1985とを含む。長期参照ピクチャ絶対POCのLSB1983は、パラメータセット1977(例えば、SPS)におけるlong_term_ref_pic_poc_sps[j]により表される。現ピクチャ使用フラグ1985は、パラメータセット1977(例えば、SPS)におけるused_by_curr_pic_lt_sps_flag[i]により表される。
いくつかの構成においては、long_term_ref_pic_poc_lsb_sps[i]に関連するused_by_curr_pic_lt_sps_flag[i]が、SPSに加えて、または、代わりに、ピクチャパラメータセット(PPS)、アクティブパラメータセット(APS)および/またはビデオパラメータセット(VPS)に含まれる。
スライスヘッダ1987は、パラメータセットから参照される長期参照ピクチャの数を表す要素(i)1989と、長期参照ピクチャインデックス1991とを含む。言い換えれば、i1989は、パラメータセット1977において送信される絶対長期参照ピクチャ情報を参照することにより長期参照ピクチャの数がシグナリングされることを示す。
長期参照ピクチャインデックス1991は、1〜i個の値1992を含む。各長期参照ピクチャインデックス値1992は、パラメータセット1977における長期参照ピクチャ絶対情報要素1981に対応する。いくつかの場合には、長期参照ピクチャインデックス値1992の数は、パラメータセット1977における長期参照ピクチャ絶対情報要素1981の数に対応する。各長期参照ピクチャインデックス値1992は、パラメータセット1977における長期参照ピクチャ絶対情報要素1981に対応する。各長期参照ピクチャインデックス値1992は、long_term_idx_sps[j]により表すことができ、SPSはSPSパラメータセット1977を表す。
スライスヘッダ1987は、デルタPOC情報を有する長期参照ピクチャの数を表す要素(j)1993と、長期参照ピクチャデルタPOC情報1994も含む。n1963、m1979、j1993およびi1989は、上記のシンタックス要素およびリスティングの1つ以上の値と異なる。例えば、j1993およびi1989は、リスティング(11)およびリスティング(12)、または図19A〜19Bと関連して示されるシンタックスにおいて用いられるiおよびjと異なる。
スライスヘッダ1987は、長期参照ピクチャデルタPOC情報要素1994も含む。1〜j個の要素がありうる。各長期参照ピクチャデルタPOC情報要素1994は、長期参照ピクチャデルタPOC最下位ビット(LSB)1995、長期参照ピクチャデルタPOC最上位ビット(MSB)サイクル存在フラグ1996、長期参照ピクチャデルタPOC MSBサイクル1997および現ピクチャ使用フラグ1999を含みうる。長期参照ピクチャデルタPOC最上位ビット(MSB)サイクル存在フラグ1996および長期参照ピクチャデルタPOC MSBサイクル1997は、i1989およびj1993の両方に関して(例えば、パラメータセットから参照されるLTRP毎に、およびPOC情報を有するLTRP毎に)送信されることに留意しなければならない。
長期参照ピクチャPOC LSB1995は、poc_lsb_lt[i]として表される。現ピクチャ使用フラグ1999は、used_by_curr_pic_lt_flag[i]により表され、SPS、APS、PPSおよび/またはVPSにおいてシグナリングされる。現ピクチャ使用フラグ1999は、各長期参照ピクチャデルタPOC情報要素1994に関して送信される。しかしながら、現ピクチャ使用フラグ1999は、パラメータセットから参照される長期参照ピクチャの数(i)1989に関して送信されなくてもよい。
長期参照ピクチャデルタPOC MSBサイクル存在フラグ1996は、長期参照ピクチャデルタPOC MSBサイクル1997の存在を示す。例えば、長期参照ピクチャデルタPOC MSBサイクル存在フラグ1996が1に等しい場合、長期参照ピクチャデルタPOC MSBサイクル1997が存在しうる。長期参照ピクチャデルタPOC MSBサイクル存在フラグ1996は、delta_poc_msb_present_flag[i]により表される。長期参照ピクチャデルタPOC MSBサイクル1997は、delta_poc_msb_cycle_lt[i]により表される。
用語「コンピュータ可読媒体」は、コンピュータまたはプロセッサによってアクセスできる任意の利用可能な媒体を指す。本明細書で用いられるところの、用語「コンピュータ可読媒体」は、非一時的かつ有形のコンピュータおよび/またはプロセッサ可読媒体を示しうる。限定ではなく、例として、コンピュータ可読またはプロセッサ可読媒体は、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;application‐specific integrated circuit)、大規模集積回路(LSI;large‐scale integrated circuit)または集積回路などで実装されてもよく、および/またはそれらを用いて実現されてもよい。
本明細書に開示される方法のそれぞれは、記載される方法を実現するための1つ以上のステップまたは動作を備える。本方法のステップおよび/または動作は、特許請求の範囲から逸脱することなく、相互に交換されても、および/または単一ステップに組み合わされてもよい。言い換えれば、記載される方法の適切な操作のためにステップまたは動作の特定の順序が必要とされない限り、特定のステップおよび/または動作の順序および/または使用は、特許請求の範囲から逸脱することなく、修正されてもよい。
理解すべきは、特許請求の範囲が上記に示された通りの構成およびコンポーネントには限定されないことである。特許請求の範囲から逸脱することなく、本明細書に記載されるシステム、方法、および装置の配置、操作、および詳細に様々な修正、変更および変形がなされてもよい。