リーディング・ピクチャ(leading picture)を示すための電子デバイスが記載される。電子デバイスは、プロセッサ、およびプロセッサと電子通信を行うメモリを含む。電子デバイスは、メモリに記憶された命令を含む。電子デバイスは、第1のピクチャを符号化する。電子デバイスは、また、リーディング・ピクチャが存在するかどうかを判定する。電子デバイスは、リーディング・ピクチャが存在する場合に、明示的なリーディング・ピクチャ・インジケーター(leading picture indicator)を生成する。電子デバイスは、さらに、リーディング・ピクチャが存在する場合に、明示的なリーディング・ピクチャ・インジケーターを送信する。
第1のピクチャは、クリーンランダムアクセス(CRA:clean random access)またはランダムアクセスピクチャであってもよい。明示的なリーディング・ピクチャ・インジケーターは、CRAピクチャと関連付けられて、少なくとも1つのリーディング・ピクチャがCRAピクチャに続くことを示す。明示的なリーディング・ピクチャ・インジケーターは、リーディング・ピクチャと関連付けられてもよい。明示的なリーディング・ピクチャ・インジケーターは、CRAピクチャのためのシーケンスパラメータセット(SPS:Sequence Parameter Set)、ピクチャパラメータセット(PPS:Picture Parameter Set)、適応パラメータセット(APS:Adaptation Parameter Set)およびスライスヘッダにおけるフラグからなる群のうちの少なくとも1つを含んでもよい。
リーディング・ピクチャが存在しない場合、電子デバイスは、明示的なリーディング・ピクチャ・アブセンス・インジケーター(leading picture absence indicator)を生成する。電子デバイスは、また、明示的なリーディング・ピクチャ・アブセンス・インジケーターを送信する。リーディング・ピクチャが存在するかどうかを判定するステップは、第2のピクチャが復号順には第1のピクチャに続き、出力順には第1のピクチャに先行するかどうかを判定することを含む。
明示的なリーディング・ピクチャ・インジケーターは、ネットワークアクセス層(NAL:Network Access Layer)ユニット・タイプであってもよい。NALユニット・タイプは、リーディング・ピクチャと関連付けられたNALユニット・タイプを含んでもよい。NALユニット・タイプは、後続のリーディング・ピクチャをもつCRAピクチャと関連付けられたNALユニット・タイプを含んでもよい。NALユニット・タイプは、また、後続のリーディング・ピクチャをもたないCRAピクチャと関連付けられたNALユニット・タイプを含んでもよい。NALユニット・タイプは、さらに、CRAピクチャのためのスライスヘッダおよびリーディング・ピクチャのためのスライスヘッダからなる群のうちの少なくとも1つを含んでもよい。
リーディング・ピクチャが存在するかどうかを判定するための電子デバイスも記載される。電子デバイスは、プロセッサ、およびプロセッサと電子通信を行うメモリを含む。電子デバイスは、メモリに記憶された命令も含む。電子デバイスは、ビットストリームを受信する。電子デバイスは、ビットストリームが明示的なリーディング・ピクチャ・インジケーターを含むかどうかに基づいて、リーディング・ピクチャが存在するかどうかを判定する。電子デバイスは、さらに、リーディング・ピクチャが存在するかどうかに基づいて、ビットストリームに対して操作を行う。ビットストリームに対して操作を行うステップは、リーディング・ピクチャが存在する場合に、リーディング・ピクチャを破棄する(除く)ことを含む。
電子デバイスは、処理デバイス(例えば、ネットワークノード)であってもよい。リーディング・ピクチャが存在する場合、リーディング・ピクチャは、ランダムアクセスポイントにおいてCRAピクチャに対応してもよい。
リーディング・ピクチャが存在するかどうかを判定するステップは、ビットストリームが明示的なリーディング・ピクチャ・インジケーターを含む場合に、リーディング・ピクチャが存在すると判定することを含んでもよい。リーディング・ピクチャが存在するかどうかを判定するステップは、ビットストリームが明示的なリーディング・ピクチャ・アブセンス・インジケーターを含む場合、またはビットストリームが明示的なリーディング・ピクチャ・インジケーターを含まない場合に、リーディング・ピクチャが存在しない(absence)と判定することを含んでもよい。
明示的なリーディング・ピクチャ・インジケーターは、CRAピクチャのためのNALユニット・タイプと、SPS、PPS、APSおよびスライスヘッダ中のフラグとからなる群のうちの少なくとも1つを含んでもよい。明示的なリーディング・ピクチャ・インジケーターは、NALユニット・タイプであってもよい。NALユニット・タイプは、後続のリーディング・ピクチャをもたないCRAピクチャと関連付けられたNALユニット・タイプを含んでもよい。
リーディング・ピクチャが存在するかどうかを電子デバイスによって判定するための方法も記載される。方法は、第1のピクチャを符号化するステップを含む。方法は、リーディング・ピクチャが存在するかどうかを判定するステップも含む。方法は、リーディング・ピクチャが存在する場合に、明示的なリーディング・ピクチャ・インジケーターを生成するステップも含む。方法は、リーディング・ピクチャが存在する場合に、明示的なリーディング・ピクチャ・インジケーターを送信するステップも含む。
リーディング・ピクチャが存在するかどうかを電子デバイスによって判定するための方法も記載される。方法は、ビットストリームを符号化するステップを含む。方法は、ビットストリームが明示的なリーディング・ピクチャ・インジケーターを含むかどうかに基づいて、リーディング・ピクチャが存在するかどうかを判定するステップも含む。方法は、リーディング・ピクチャが存在するかどうかに基づいて、ビットストリームに対して操作を行うステップも含む。
本明細書に開示されるシステムおよび方法は、リーディング・ピクチャを識別するための手法を記載する。例えば、本明細書に記載されるいくつかの構成は、CRAピクチャをシグナリングするためのデバイスおよび方法を含む。さらにまた、記載されるデバイスおよび手法のいくつかは、後続のリーディング・ピクチャをもつCRAピクチャ、ならびに後続のリーディング・ピクチャをもたないCRAピクチャの間を区別するために用いられる。
ビットストリーム中のリーディング・ピクチャを識別することがしばしば必要である。既知のシステムは、現在、様々なパラメータセットの広範な符号化および復号操作を行うことによって、ビットストリーム中のリーディング・ピクチャを識別する。例えば、既知のシステムは、SPSおよびPPSを符号化および復号することによって、リーディング・ピクチャを識別する。既知のシステムは、また、ピクチャオーダカウント(POC:picture order count)値を計算して、計算値と対応するCRAピクチャのPOC値とを比較する。既知の方法は、さらに、あるピクチャがリーディング・ピクチャであるか否か判定するために、CRAピクチャと対応する計算値とを比較する。これらのステップを行うことは、システムに有害な影響を及ぼすこともあり、リーディング・ピクチャを識別し、ビットストリームに対して操作を行うためには広範なデータ処理を必要とする。
これらの困難のいくつかを改善することを目指して、本明細書におけるシステムおよび方法は、リーディング・ピクチャを識別するための手法を提供する。いくつかの手法では、CRAピクチャが、ビットストリーム中に後続のリーディング・ピクチャを有するかどうかを示すために、1つ以上のインジケーターが実装される。例えば、一構成において、CRAピクチャが、ビットストリーム中にCRAピクチャに続く1つ以上のリーディング・ピクチャを有するかどうかを示すために、新しいNALユニットが導入される。別の構成では、CRAピクチャに続いてリーディング・ピクチャが存在するかどうかを示すために、SPS、PPSおよび/またはAPS中のフラグが利用される。この手法は、1つ以上の電子デバイスによる広範な符号化または復号なしに、電子デバイスがリーディング・ピクチャを識別できるという有益がある。
CRAピクチャと関連付けられたインジケーターを提供するときに、留意すべきは、CRAピクチャが、ある特定のタイプのNALユニットと関連付けられた複数の符号化スライスを含んだ、符号化されたピクチャを含みうることである。いくつかの場合に、CRAピクチャは、イントラ予測のみを用いて復号された複数のイントラ予測スライス(Iスライス)のみを含みうる。例えば、一構成において、CRAピクチャは、4に等しいNALユニット・タイプ(nal_unit_type)をもつ複数の符号化スライスを含んだ、符号化されたピクチャである。いくつかの場合に、復号順および出力順にCRAピクチャに続くすべての符号化されたピクチャは、復号順または出力順のいずれかにおいてCRAピクチャに先行する任意のピクチャからのインター予測を用いることができない。また、いくつかの場合に、復号順にCRAピクチャに先行する他のピクチャは、出力順においてもCRAピクチャに先行する。
いくつかの構成において、NALユニット・タイプは、NALユニットに含まれるロー・バイト・シーケンス・ペイロード(RBSP:raw byte sequence payload)データ構造のタイプを指定する。一例において、0に等しいか、または24〜63の範囲内のNALユニット・タイプを用いたNALユニットは、様々な構成において指定される復号処理に影響を及ぼさない。一例において、NALユニット・タイプ0および24〜63が様々な用途によって決定されるように用いられることに留意すべきである。本明細書に記載されるいくつかの構成において、デコーダは、予約された、または指定されていない値のNALユニット・タイプを用いたNALユニットの内容を無視できる。
本明細書に開示されるシステムおよび方法に従って実装されるNALユニット・タイプ・コードおよびNALユニット・タイプ・クラスの例が下の表1および表11に含まれる。いくつかの構成は、以下に記載されるものと同様か、または異なるフィールドを含みうることに留意するとよい。いくつかの構成では、表1におけるNALフィールドのいくつかまたはすべてが様々なNALユニット・タイプの例となりうる。いくつかの構成では、いくつかのNALユニット・タイプが異なるフィールドと関連付けられてもよく、シンタックス構造が1つ以上のピクチャと関連付けられてもよい。1つ以上のフィールドのさらなる説明が以下に含まれる。下の表1がビデオ符号化層(VCL:Video Coding Layer)NALユニット・タイプ・クラス、瞬時復号リフレッシュ(IDR:Instantaneous Decoding Refresh)ピクチャおよびテンポラル・レイヤ・アクセス(TLA:Temporal Layer Access)ピクチャの略語を含むことに留意すべきである。表1に関係して含まれるさらなる例は、表11および以下に記載される他の構成にも適用可能である。
この例では、シンタックスが付加拡張情報(SEI:Supplemental enhancement Information)RBSPシンタックスを含む。SEI RBSPは、1つ以上のSEIメッセージを含む。各SEIメッセージは、SEIペイロードのタイプpayloadTypeおよびサイズpayloadSizeを指定する変数を含む。導出されるSEIペイロード・サイズpayloadSizeは、バイト単位で指定され、SEIペイロードにおけるRBSPバイトの数に等しい。
一例において、シンタックスは、アクセスユニットデリミッタRBSPシンタックスも含む。アクセスユニットデリミッタは、符号化されたピクチャに存在するスライスのタイプを示すため、およびアクセスユニット間の境界の検出を容易にするために用いられる。アクセスユニットデリミッタと関連した規範的な復号処理は何もない。
一例において、シンタックスは、フィラー・データRBSPシンタックスも含む。フィラー・データRBSPは、その値が0xFFに等しいバイトを含む。さらにまた、フィラー・データRBSPのための規範的な復号処理は何も指定されていない。ff_byteは、0xFFに等しいバイトである。
スライスレイヤRBSPは、スライスヘッダおよびスライス・データを含み、その後にrbsp_slice_trailing_bitsが続く。例が下の表2に示される。
RBSPスライス・トレイリングビット・シンタックスの例が下の表3に示される。
これらの例において、cabac_zero_wordは、0x0000に等しい2バイトのバイトアラインされた列である。さらに、NumBytesInVcINALunitsは、符号化されたピクチャのすべてのVCLユニットについてのNumBytesinNALunitの合計である。さらにまた、BinCountsInNALunitsは、符号化されたピクチャのすべてのVCL NALユニットの内容を復号するために構文解析処理関数DecodeBin()が呼び出される回数である。
変数RawMinCUBitsおよびPicSizeMinCUsは、次のように導出される。
RawMinCUBits=(1<<Log2MinCUSize)*(1<<Log2MinCUSize)*BitDepthY+2*(1<<Log2MinCUSize−1))*(1<<Log2MinCUSize−1)*BitDepthC、および
PicSizeMinCUs=Ceil(pic_width_in_luna_samples/(1<<Log2MinCUSize))*Ceil(pic_height_in_luma_samples/(1<<Log2MinCUSize))。
この手法では、BinCountsInNALunitsは、
(32/3)*NumBytesInVcINALunits+(RawMinCUBits*PicSizeInMinCUS)/32)を超えることはない。
スライスレイヤのNALユニットの内容を復号することから生じるビンの最大数に対する制約条件は、いくつかのcabac_zero_wordシンタックス要素を挿入して、NumBytesInVcINALunitsの値を増加させることによって満たされることに留意すべきである。(cabac_zero_wordごとにemulation_prevention_three_byteの含有を必要とすることになる、NALユニットの内容に対する制約条件の結果として)各cabac_zero_wordは、NALユニットでは3バイト列0x000003で表される。
RBSPトレイリングビット・シンタックスの一例が下の表4に示される。
表4は、RBSPトレイリングビット・セマンティクスの例を提供する。この例では、rbsp_one_bitは1に等しく、rbsp_alignment_zero_bitは0に等しい。
バイトアラインメント・シンタックスの例が下の表5に示される。
表5は、バイトアラインメント・セマンティクスの例を提供する。この例では、bit_equal_to_oneは、1に等しい。
これらの例において、シーケンスパラメータセットRBSPは、SPSロー・バイト・シーケンス・ペイロードに対応するシンタックス要素を含む。シーケンスパラメータセットRBSPは、PPSロー・バイト・シーケンス・ペイロードに対応するシンタックス要素を含む。シーケンスパラメータセットRBSPは、APSロー・バイト・シーケンス・ペイロードに対応するシンタックス要素を含む。
いくつかの手法では、ビットストリーム中でCRAピクチャに続くリーディング・ピクチャを示すために、信号またはインジケーターがリーディング・ピクチャと関連付けられる。例えば、リーディング・ピクチャは、リーディング・ピクチャと関連付けられたNALユニット・タイプによってリーディング・ピクチャとして示される。明示的なリーディング・ピクチャ・インジケーターをこの手法で提供することは、PPS、SPSまたは他のフィールドの復号または修正を回避することができるという有益がある。さらにまた、この手法では、いくつかの復号操作を行うことなく、1つ以上のリーディング・ピクチャを識別することが可能である。
いくつの手法では、リーディング・ピクチャが存在しないことを示すために、1つ以上のインジケーターが実装される。一例において、ビットストリーム中の1つ以上のリーディング・ピクチャが存在しないことを示すNALユニット、フラグまたは他のインジケーターがCRAピクチャと関連して導入される。このアプローチは、1つ以上のピクチャの広範な符号化なしに、明示的なリーディング・ピクチャ・インジケーターが作成されるという有益がある。
本明細書に開示されるシステムおよび方法は、ビットストリーム・データを処理する際に1つ以上のさらなる利益を提供する。一構成において、ビットストリームは、1つ以上のリーディング・ピクチャに対応する明示的なインジケーターを用いて1つ以上の電子デバイス間で送信される。これは、ビットストリームがリーディング・ピクチャを含むかどうかを知ることが有益である場合に、電子デバイスによる処理の量を削減するために利用される。別の構成の下では、電子デバイスは、ビットストリームの広範な処理なしに、1つ以上のリーディング・ピクチャを破棄する。広範な処理なしにリーディング・ピクチャを破棄することは、1つ以上のピクチャを含んだ信号または表示の品質に対する過度の悪影響なしに、出力または送信されるデータの量を削減することができるという有益がある。いくつかの構成では、これらおよび他の利益が電子デバイス間のより効果的なデータ・ストリーミングに寄与する。
次に図面を参照して様々な構成が記載される。図面中、同様の参照番号は、機能的に類似した要素を示す。本明細書において図面に一般的に記載され、示されるシステムおよび方法は、多種多様に異なった構成に配置され、設計されてもよい。従って、図面に表現されるいくつかの構成の以下のさらに詳細な記載は、特許請求の範囲を限定する意図はなく、システムおよび方法を単に代表するに過ぎない。
図1は、リーディング・ピクチャを識別するためのシステムおよび方法が実装された、1つ以上の電子デバイス102a〜bの例を示すブロック図である。この例では、電子デバイスA102aおよび電子デバイスB102bが示される。しかしながら、留意すべきは、電子デバイスA102aおよび電子デバイスB102bに関して記載される特徴および機能性の1つ以上が、いくつかの構成において単一の電子デバイスに組み合わされてもよいことである。
電子デバイスA102aは、エンコーダ104およびリーディング・ピクチャ・インジケーターモジュール108を含む。電子デバイスA102a内に含まれる要素(例えば、エンコーダ104およびリーディング・ピクチャ・インジケーターモジュール108)のそれぞれは、ハードウェア、ソフトウェアまたは両方の組み合わせで実装されてもよい。
電子デバイスA102aは、入力ピクチャ106を取得する。いくつかの構成において、入力ピクチャ106は、イメージセンサを用いて電子デバイスA102a上に取り込まれてもよく、メモリから読み出されてもよく、および/または別の電子デバイスから受信されてもよい。
エンコーダ104は、符号化されたデータを作り出すために、入力ピクチャ106を符号化する。例えば、エンコーダ104は、一連の入力ピクチャ106(例えば、ビデオ)を符号化する。一構成において、エンコーダ104は、高効率ビデオ符号化(HEVC:high Efficiency Video Coding)エンコーダであってもよい。符号化されたデータは、ビットストリーム114に含められる。エンコーダ104は、入力ピクチャ106に基づいてオーバーヘッド・シグナリングを生成する。
リーディング・ピクチャ・インジケーターモジュール108は、リーディング・ピクチャに対応するインジケーターを供給する。例えば、リーディング・ピクチャ・インジケーターモジュール108は、リーディング・ピクチャが存在するかどうかを判定する。リーディング・ピクチャ・インジケーターモジュール108は、さらに、リーディング・ピクチャが存在する場合に、明示的なリーディング・ピクチャ・インジケーターを生成する。いくつかの構成において、リーディング・ピクチャ・インジケーターモジュール108は、明示的なリーディング・ピクチャ・インジケーターを送信するか、そうでない場合にはそれを1つ以上の電子デバイスと共有する。一例において、電子デバイスA102aは、1つ以上のリーディング・ピクチャ・インジケーターを電子デバイスB102bへ送信する。明示的なリーディング・ピクチャ・インジケーターを生成することは、ビットストリーム中の1つ以上のピクチャを処理するときに、1つ以上のピクチャに対して行われる操作を削減することができるという有益がある。
本明細書に開示されるシステムおよび方法に従って、1つ以上の種類のインジケーターが記載される。電子デバイスA102aによって作り出される様々な種類のインジケーターについて、さらなる詳細が本明細書に示される。例えば、エンコーダ104は、1つ以上のインジケーターを用いてリーディング・ピクチャを識別する。さらなる詳細は、以下に示される。留意すべきは、リーディング・ピクチャ・インジケーターモジュール108が、いくつかの構成ではエンコーダ104内に含まれてもよいことである。リーディング・ピクチャ・インジケーターモジュール108は、1つ以上の電子デバイス102a〜bによるビットストリーム処理の削減を可能にする。
エンコーダ104(および、例えば、リーディング・ピクチャ・インジケーターモジュール108)は、ビットストリーム114を作り出す。ビットストリーム114は、入力ピクチャ106に基づく符号化されたデータを含む。一例において、ビットストリーム114は、符号化されたピクチャ・データを含む。いくつかの構成において、ビットストリーム114は、スライスヘッダ情報、PPS情報、SPS情報、APS情報などのようなオーバーヘッド・データも含む。いくつかの場合に、スライスヘッダ、PPS情報、SPS情報またはAPS情報は、上位シンタックスと呼ばれる。ビットストリーム114は、他のデータも含むことができ、そのいくつかの例が本明細書に記載される。追加の入力ピクチャ106が符号化されるときに、ビットストリーム114は、1つ以上のリーディング・ピクチャを含みうる。加えて、または代わりに、ビットストリーム114は、1つ以上のリーディング・ピクチャ・インジケーターおよび他の符号化されたデータを含みうる。
ビットストリーム114は、デコーダ112へ供給される。一例において、ビットストリーム114は、有線または無線リンクを用いて電子デバイスB102bへ送信される。いくつかの場合に、これは、ネットワーク、例えば、インターネット、ローカルエリアネットワーク(LAN:Local Area Network)、または他のタイプのデバイス間通信用ネットワークを通じて行われる。図1に示されるように、デコーダ112は、電子デバイスA102a上のエンコーダ104とは別に電子デバイスB102b上に実装される。留意すべきは、いくつかの構成において、エンコーダ104およびデコーダ112が同じ電子デバイス上に実装されてもよいことである。例として、エンコーダ104およびデコーダ112を同じ電子デバイス上に実装する実施形態では、デコーダが様々な方法でビットストリーム114を利用できるようになる。例えば、ビットストリーム114は、バスを通じてデコーダ112へ供給されてもよく、またはデコーダ112による読み出しのためにメモリに記憶されてもよい。
デコーダ112は、ハードウェア、ソフトウェアまたは両方の組み合わせで実装されてもよい。一構成において、デコーダ112は、HEVCデコーダであってもよい。デコーダ112は、ビットストリーム114を取得する(例えば、受信する)。デコーダ112は、ビットストリーム114に基づいて1つ以上の復号されたピクチャ118を生成する。復号されたピクチャ118は、表示される、再生される、メモリに記憶される、および/または別のデバイスへ送信されるなどである。
デコーダ112は、リーディング・ピクチャ判定モジュール120を含む。リーディング・ピクチャ判定モジュール120は、ビットストリーム114中にリーディング・ピクチャが含まれるかどうかを電子デバイスB102bが識別することを可能にする。例えば、リーディング・ピクチャ判定モジュール120は、ビットストリーム114がリーディング・ピクチャ・インジケーターを含むかどうかに基づいて、リーディング・ピクチャが存在するかどうかを判定する。加えて、または代わりに、リーディング・ピクチャ判定モジュール120は、リーディング・ピクチャ・アブセンス・インジケーターに基づいて、リーディング・ピクチャが存在するかどうかを判定してもよい。リーディング・ピクチャ判定モジュール120が以下にさらに詳細に記載される。
電子デバイスB102bは、また、ビットストリーム114に対して1つ以上の操作を行う。一例において、ビットストリーム114に対して行われる操作または処理は、リーディング・ピクチャまたはリーディング・ピクチャ・インジケーターが存在するかどうかに基づく。いくつかの構成において、電子デバイスB102b上のデコーダ112または他の要素がビットストリーム114に対して操作を行う。いくつかの構成において、ビットストリーム114に対して行われる操作は、リーディング・ピクチャを破棄すること、または復号されたビットストリーム114を送信することを含む。さらに、ビットストリーム114に対して他の操作が行われてもよい。
いくつかの構成において、電子デバイスB102bは、復号されたピクチャ118を出力する。一例において、復号されたピクチャ118は、別のデバイスへ送信されるか、または電子デバイスA102aへ送り返される。一構成において、復号されたピクチャ118は、電子デバイスB102b上に記憶されるか、そうでない場合には維持される。別の例では、電子デバイスB102bは、復号されたピクチャ118を表示する。他の構成において、復号されたピクチャ118は、ビットストリーム114に対して行われる符号化および他の操作に基づく、異なる特性をもつ入力ピクチャ106の要素を含む。いくつかの構成において、復号されたピクチャ118は、入力ピクチャ106とは異なる解像度、フォーマット、仕様または他の属性をもつピクチャ・ストリームに含められる。
留意すべきは、いくつかの構成または事例において、ビットストリーム114が処理デバイス(例えば、ネットワークノード)へ供給されることである。例として、処理デバイス(例えば、ネットワークノード)は、電子デバイスB102bの一例である。例えば、処理デバイスは、デコーダを含む。代わりに、処理デバイスは、電子デバイスA102aと電子デバイスB102bとの間に介在する別個のデバイスであってもよい。例えば、処理デバイスがビットストリーム114を受信して、それを電子デバイスB102bへ伝えてもよい。いくつかの場合または構成において、処理デバイスまたは電子デバイス102bは、リーディング・ピクチャがビットストリーム114中に存在するかどうかを判定するためのリーディング・ピクチャ判定モジュール120を含む。いくつかの場合または構成において、処理デバイスまたは電子デバイスB102bは、ビットストリーム114からリーディング・ピクチャを破棄することもできる。
留意すべきは、電子デバイス(単数または複数)102に含まれる複数の要素またはそれらの部分の1つ以上がハードウェアで実装されてもよいことである。例えば、これらの要素またはその部分の1つ以上は、チップ、回路素子またはハードウェア・コンポーネントなどとして実装されてもよい。さらに留意すべきは、本明細書に記載される複数の機能または複数の方法の1つ以上がハードウェアで実装されてもよく、および/またはハードウェアを用いて行われてもよいことである。例えば、本明細書に記載される方法の1つ以上は、チップセット、特定用途向け集積回路(ASIC:application specific integrated circuit)、大規模集積回路(LSI:large−scale integrated circuit)または集積回路などで実装されてもよく、および/またはそれらを用いて実現されてもよい。
図2は、リーディング・ピクチャを識別するための方法200の一構成を示すフロー図である。電子デバイス102は、第1のピクチャを符号化する(ステップ202)。第1のピクチャは、電子デバイス102によって取得された1つの入力ピクチャ106、または複数の入力ピクチャ106のストリームのうちの1つであってもよい。いくつかの場合に、第1のピクチャは、CRAピクチャであってもよい。他の場合には、第1のピクチャ以外のピクチャがCRAピクチャであってもよい。例えば、一構成において、CRAピクチャは、ランダムアクセスポイントで生じるピクチャであってもよい。ランダムアクセスポイントとは、データのストリーム(例えば、ビットストリーム)においてビットストリームの復号を開始できる任意のポイントである。ランダムアクセスポイントにおいて生じるCRAピクチャを有する1つの利益は、CRAピクチャに続くビットストリーム中にリーディング・ピクチャが存在するかどうかを判定できることである。CRAピクチャに対するリーディング・ピクチャの位置を知ることは、CRAピクチャが第1のピクチャであるか、またはCRAピクチャがランダムアクセスポイントにあるかどうかに係わらず有益である。加えて、いくつかの構成において、CRAピクチャに対応するインジケーターは、1つ以上のリーディング・ピクチャがCRAピクチャに続くかどうかを示すことができる。いくつかの構成において、電子デバイス102は、複数の入力ピクチャ106を符号化する。
第1のピクチャを符号化するステップ202は、入力ピクチャ106をデジタル・データとして表すことを含む。例えば、第1のピクチャを符号化するステップ202は、入力ピクチャ106の特性(例えば、色、輝度、空間的位置など)を表すビットの列を生成することを含む。いくつかの場合に、入力ピクチャ106は、CRAピクチャとして符号化される(ステップ202)。1つ以上の符号化されたピクチャは、ビットストリーム114に含められて、デコーダ112を含む別の電子デバイス102へ送信される。
電子デバイス102は、リーディング・ピクチャが存在するかどうかを判定する(ステップ204)。リーディング・ピクチャとは、復号順にはCRAピクチャに続き、出力順にはCRAピクチャに先行するピクチャである。例えば、あるピクチャが復号順にはCRAピクチャに続き、出力順(例えば、デコーダ112から出力される順)にはCRAピクチャに先行するようにエンコーダ104によって指定されている場合に、リーディング・ピクチャが存在する。
リーディング・ピクチャが存在するかどうかを判定するステップ204は、1つ以上の手法に従って達成される。一手法において、第1のピクチャがCRAピクチャであり、かつ、復号順にはCRAピクチャに続き、出力順にはCRAピクチャに先行するように(例えば、エンコーダ104によって)指定された別のピクチャが存在する場合に、電子デバイス102は、リーディング・ピクチャが存在すると判定する(ステップ204)。いくつかの構成において、電子デバイス102は、リーディング・ピクチャが存在するかどうかを判定するために、CRAピクチャおよび1つ以上の他のピクチャに対応するデータを読み取る。例として、電子デバイス102は、CRAピクチャおよび1つ以上の他のピクチャの復号順および出力順を指定するデータを読み取る。
いくつかの構成において、出力順は、POCによって決定され、一方で復号順は、シンタックス要素がビットストリーム114中に現れる順序によって決定される。出力順とは、復号されたピクチャが電子デバイス102から出力される順序である。いくつかの構成において、出力順は、復号されたピクチャが復号ピクチャバッファから出力される順序である。復号されたピクチャが復号ピクチャバッファから出力されることになる場合には、ピクチャの出力順は、ピクチャが出力されることになるかどうかに係わらず、POCによって指定される。さらにまた、復号順は、シンタックス要素が復号処理によって処理される順序である。あるピクチャが復号順にはCRAピクチャに続くように指示され、出力順にはCRAピクチャに先行するように指示されているという条件が満たされる場合、電子デバイス102は、リーディング・ピクチャが存在すると判定する(ステップ204)。
電子デバイス102は、リーディング・ピクチャが存在する場合に、明示的なリーディング・ピクチャ・インジケーターを生成する(ステップ206)。いくつかの構成において、電子デバイス102は、1つ以上の明示的なリーディング・ピクチャ・インジケーターを生成するリーディング・ピクチャ・インジケーターモジュール108を含む。一例において、リーディング・ピクチャ・インジケーターモジュール108は、電子デバイス102上のエンコーダ104の一部として含まれる。明示的なリーディング・ピクチャ・インジケーターを生成すること、デコーダによる不必要な処理を削減することができるという有益がある。
明示的なリーディング・ピクチャ・インジケーターを生成する(ステップ206)ために、1つ以上の手法に従うことができる。一手法において、リーディング・ピクチャ・インジケーターモジュール108は、CRAピクチャに対応するNALユニット・タイプを修正または作成することによって、リーディング・ピクチャ・インジケーターを生成してもよい。例えば、NALユニット・タイプが、電子デバイス102によって符号化された第1のピクチャと関連付けられる。例として、NALユニット・タイプがCRAピクチャに対応する。いくつかの構成では、NALユニット・タイプが、1つ以上の後続のリーディング・ピクチャをもつCRAピクチャの符号化スライスを示す明示的なインジケーターであってもよい。リーディング・ピクチャを明示的に示すNALユニット・タイプを作成または修正することは、リーディング・ピクチャを識別するために(例えば、処理デバイス、ネットワークノードまたはデコーダが)追加の復号を行う必要がないという有益がある。また、リーディング・ピクチャを明示的に示すためにNALユニット・タイプだけを用いる構成では、CRAピクチャのSPS、PPSまたは他のフィールドを修正する必要がないことも有益である。
例として、リーディング・ピクチャの存在を示すために明示的なリーディング・ピクチャ・インジケーターを生成する電子デバイス102の一構成が、表1を参照して説明される。一例において、特定のピクチャのスライスを含んだNALユニットに関してNALユニット・タイプが4に等しい場合、その特定のピクチャのすべてのVCL NALユニットは、4に等しいNALユニット・タイプを有する。この例では、4に等しいNALユニット・タイプは、(例えば、CRAピクチャに続く)1つ以上の後続のリーディング・ピクチャをもつCRAピクチャの符号化スライスを示す。
追加または代わりの手法では、電子デバイス102は、フラグを生成することによって明示的なリーディング・ピクチャ・インジケーターを生成してもよい(ステップ206)。例えば、電子デバイス102は、1つ以上のリーディング・ピクチャがCRAピクチャに続くかどうかを示すフラグをCRAピクチャのためのSPS、PPS、APSおよびスライスヘッダの1つ以上に生成する。例えば、リーディング・ピクチャがCRAピクチャに続くと判定された場合に、電子デバイス102は、CRAピクチャの1つ以上のスライスヘッダにフラグを挿入する。
明示的なリーディング・ピクチャ・インジケーターを生成するステップ206のさらに詳細な例が以下に示される。一例において、電子デバイス102は、1つ以上のピクチャ(例えば、第1のピクチャ)のシンタックス構造に付随させるためにフラグまたは他のインジケーターを作成または修正する。例として、リーディング・ピクチャ・インジケーターモジュール108は、CRAピクチャのSPS、PPS、APSまたはスライスヘッダにフラグを挿入することによってリーディング・ピクチャの存在を示す。いくつかの場合に、CRAピクチャに続いてリーディング・ピクチャが存在するかどうかを示すために、フラグが、CRAピクチャのランダムアクセスポイントまたはスライスヘッダで符号化されるか、または送信される。
一例において、リーディング・ピクチャ・インジケーターモジュール108は、SPS中にフラグを生成してもよい。このリーディング・ピクチャ・インジケーターは、SPSの一部として符号化された明示的なインジケーターである。例として、表6は、リーディング・ピクチャ・インジケーターモジュール108によって生成され、SPSに含められたフラグの一構成を示す。一構成において、1に等しいリーディング・ピクチャ・フラグ(例えば、cra_leadingpict_present_flag)は、CRAピクチャに続いてビットストリーム114中にリーディング・ピクチャがあることを示す。SPS中のフラグの例が太字で示される。
この例では、profile_idcおよびlevel_idcは、符号化されたビデオシーケンスが準拠するプロファイルおよびレベルを示す。フィールドreserved_zero_8bitsはゼロに等しく、デコーダがreserved_zero_8bitsの値を無視するものとすることを示す。seq_parameter_set_idによって示されるフィールドは、ピクチャパラメータセットによって参照されるシーケンスパラメータセットを識別する。seq_parameter_set_idの値は、両端値を含めて、0から31までの範囲内にあるものとする。
さらにまた、フィールドrbsp_trailing_bitsについて、シンタックスの一例は、下の表7に示される通りである。
この例では、rbsp_byte[i]は、RBSPのi番目のバイトである。RBSPは、順序付けられたバイト列(SODB)として指定される。RBSPのSODBは、様々な配置を含みうる。例えば、SODBが空(すなわち、長さがゼロ・ビット)であれば、RBSPも空である。SODBが空でなければ、RBSPの最初のバイトがSODBの最上位または最左の8ビットを含み、RBSPの次のバイトがSODBの次の8ビットを含むなど、8ビット未満のSODBが残るまで続く。さらにまた、SODBの後にrbsp_trailing_bits()が存在する。この例では、最後のRBSPバイトの最初のビットは、SODBの任意の残っているビットを含む。次のビットは、1に等しい単一のrbsp_stop_one_bitを含む。rbsp_stop_one_bitがバイトアラインされたバイトの最後のビットでないときには、バイトアラインメントをもたらすために、1つ以上のrbsp_alignment_zero_bitが存在する。さらにまた、いくつかのRBSPでは、RBSPの終端におけるrbsp_trailing_bits()の後に、0x0000に等しい1つ以上のcabac_zero_wordの16ビットのシンタックス要素が存在する。
加えて、または代わりに、リーディング・ピクチャ・インジケーターモジュール108は、PPS中にフラグを生成してもよい。例えば、このリーディング・ピクチャ・インジケーターは、PPSの一部として含まれた明示的なインジケーターである。例として、表8は、リーディング・ピクチャ・インジケーターモジュール108によって生成され、PPSに含まれたフラグを含むコードの一構成を示す。一例において、リーディング・ピクチャ・フラグ(例えば、cra_leadingpict_present_flag)が1に等しいことは、CRAピクチャに続いてビットストリーム114中にリーディング・ピクチャがあることを示す。PPS中のフラグの例が太字で示される。
この例では、pic_parameter_set_idは、スライスヘッダで参照されるピクチャパラメータセットを識別する。さらにまた、pic_parameter_set_idの値は、両端値を含めて、0から255までの範囲内にある。seq_parameter_set_idは、アクティブなシーケンスパラメータセットを参照する。さらにまた、seq_parameter_set_idの値は、両端値を含めて、0から31までの範囲内にある。pps_extension_flagは、HEVC勧告|国際規格に準拠したビットストリーム中では0に等しい。pps_extension_flagに関する1の値は、ITU−T|ISO/IECによる将来の使用のために予約される。デコーダは、ピクチャパラメータセットNALユニット中のpps_extension_flagに関する1の値に続くすべてのデータを無視するものとする。pps_extension_data_flagは、任意の値を有してもよく、HEVC勧告|国際規格に指定されたプロファイルへのデコーダの準拠に影響を及ぼさない。
加えて、または代わりに、リーディング・ピクチャ・インジケーターモジュール108は、APS中にフラグを生成してもよい。このリーディング・ピクチャ・インジケーターは、APSの一部として含まれた明示的なインジケーターである。例として、表9は、リーディング・ピクチャ・インジケーターモジュール108によって生成され、APSに含まれたフラグを含むコードの一構成を示す。一例において、リーディング・ピクチャ・フラグ(例えば、cra_leadingpict_present_flag)が1に等しいことは、CRAピクチャに続いてビットストリーム114中にリーディング・ピクチャがあることを示す。APS中のフラグの例が太字で示される。さらに説明すると、APS識別タグ(aps_id)は、ピクチャのスライスヘッダに対応するデータも含む。いくつかの構成において、aps_idの値は、両端値を含めて、0から所定の限度までの範囲内にある。
この例では、aps_idは、スライスヘッダで参照される適応パラメータセットを識別する。aps_idの値は、両端値を含めて、0からTBDまでの範囲内にある。aps_scaling_list_data_present_flagの値が1に等しいことは、APS中にスケーリング・リスト・パラメータが存在することを示す。aps_scaling_list_data_present_flagが0に等しいことは、APS中にスケーリング・リスト・パラメータが存在しないことを示す。aps_deblocking_filter_flagの値が1に等しいことは、APS中にデブロッキング・パラメータが存在することを明示する。aps_deblocking_filter_flagの値が0に等しいことは、APS中にデブロッキング・パラメータが存在しないことを明示する。aps_sao_interleaving_flagの値が1に等しいことは、現APSを参照しているスライスに関して、スライス・データ中にSAOパラメータがインタリーブされていることを明示する。aps_sao_interleaving_flagの値が0に等しいことは、現APSを参照しているスライスに関して、APS中にSAOパラメータがあることを明示する。アクティブなAPSが何もないときには、aps_sao_interleaving_flagが1であると推測される。aps_sample_adaptive_offset_flagの値が1に等しいことは、現APSを参照しているスライスに関して、SAOがオンであることを明示する。aps_sample_adaptive_offset_flagの値が0に等しいことは、現APSを参照しているスライスに関して、SAOがオフであることを明示する。アクティブなAPSが何もないときには、aps_sample_adaptive_offset_flag値は、0であると推測される。aps_adaptive_loop_filter_flagの値が1に等しいことは、現APSを参照しているスライスに関して、適応ループフィルタ(ALF:adaptive loop filter)が、オンであることを明示する。aps_adaptive_loop_filter_flagの値が0に等しいことは、現APSを参照しているスライスに関して、ALFがオフであることを明示する。アクティブなAPSが何もないときには、aps_adaoptive_loop_filter_flag値は、0であると推測される。aps_extension_flagの値が0に等しいことは、ピクチャパラメータセットのRBSPシンタックス構造中にaps_extension_data_flagシンタックス要素が何も存在しないことを明示する。aps_extension_flagは、HEVC勧告|国際規格に準拠しているビットストリーム中では0に等しい。aps_extension_flagに関する1の値は、ITU−T|ISO/IECによる将来の使用のために予約される。デコーダは、ピクチャパラメータセットNALユニット中のaps_extension_flagに関する1の値に続くすべてのデータを無視する。aps_extension_data_flagは、任意の値を有してもよく、HEVC勧告|国際規格に指定されたプロファイルへのデコーダの準拠に影響を及ぼさない。
加えて、または代わりに、リーディング・ピクチャ・インジケーターモジュール108は、CRAピクチャまたはリーディング・ピクチャの関連付けられたスライスヘッダ中にフラグを生成してもよい。このリーディング・ピクチャ・インジケーターは、スライスヘッダの一部として含まれた明示的なインジケーターである。例として、表10は、リーディング・ピクチャ・インジケーターモジュール108によって生成され、スライスヘッダの一部として含まれたコードの一構成を示す。一例において、リーディング・ピクチャ・フラグ(例えば、cra_leadingpict_present_flag)の値が1に等しいことは、CRAピクチャまたはフラグと関連付けられた別のピクチャに続いてビットストリーム114中にリーディング・ピクチャがあることを示す。スライスヘッダ中のフラグの例が太字で示される。
この例では、first_slice_in_pic_flagは、スライスがピクチャの第1のスライスであるかどうかを示す。first_slice_in_pic_flagが1に等しい場合、変数SliceCbAddrZSおよびスライスCtbAddrRSがともに0に設定されて、復号は、ピクチャ中の第1の符号化ツリーブロック(treeblock)で開始する。slice_addressは、スライスが開始するアドレスをスライス粒度の解像度で指定する。一例において、slice_addressシンタックス要素の長さは、ビット単位で、
(Ceil(Log2(PicWidthInCtbs*PicHeightInCtbs))+SliceGranularity)に等しい。
変数SliceCtbAddrRSは、スライスが符号化ツリーブロック・ラスタスキャン順に開始する符号化ツリーブロックを指定し、次のように導出される。
SliceCtbAddrRS=(slice address>>SliceGranularity)。
変数SliceCbAddrZSは、Zスキャン順に最小符号化ブロック粒度でスライス中の第1の符号化ブロックのアドレスを指定し、次のように導出される。
SliceCbAddrZS=slice_address、および
slice_address<<((log2 diff max min coding block size−SliceGranularity)<<1)。
スライス復号は、スライス開始座標において可能な最大符号化単位で開始する。
上掲の表および付随する説明は、cra_leadingpict_present_flagが含まれる1つの可能な場所を示すことに留意すべきである。他の構成では、1つ以上のフラグがSPS、PPS、APSまたはスライスヘッダの異なる場所で送信される。
加えて、または代わりに、リーディング・ピクチャ・インジケーターモジュール108は、1つ以上のリーディング・ピクチャに対応するNALユニット・タイプを修正または作成してもよい。例えば、リーディング・ピクチャに対応するNALユニット・タイプがリーディング・ピクチャを示す。例として、NALユニット・タイプがCRAピクチャに続くリーディング・ピクチャの符号化スライスを示す。一構成において、リーディング・ピクチャの符号化スライスがCRAピクチャへの参照も含む。
電子デバイス102は、リーディング・ピクチャが存在する場合に、明示的なリーディング・ピクチャ・インジケーターを送信する(ステップ208)。明示的なリーディング・ピクチャ・インジケーターを送信するステップ208は、1つの電子デバイス102のコンポーネント間でデータ(例えば、ビットストリーム114)を伝えること、または1つ以上の電子デバイス102間でビットストリーム114)を送信することを含む。一例において、電子デバイスA102a上のエンコーダ104が1つ以上のリーディング・ピクチャ・インジケーターを含んだビットストリーム114を電子デバイスB102bへ送信する。いくつかの構成において、ビットストリーム114は、電子デバイスB102b上のデコーダ120へ送信される。明示的なリーディング・ピクチャ・インジケーターは、例えば、有線または無線伝送を通じて送信される(ステップ208)。
図3は、リーディング・ピクチャを識別するための方法300のより具体的な構成を示すフロー図である。電子デバイス102は、CRAピクチャを符号化する(ステップ302)。例えば、電子デバイス102は、入力ピクチャ106をCRAピクチャとして符号化する(ステップ302)。例として、電子デバイス102は、図2に関連して上述されたようにCRAピクチャを符号化する(ステップ302)。留意すべきは、いくつかの構成が1つ以上のリーディング・ピクチャ・インジケーターに対応するCRAピクチャを示す一方で、リーディング・ピクチャ・インジケーターは、他のタイプのピクチャに対応してもよいことである。例えば、リーディング・ピクチャ・インジケーターを提供するために提案される多くの手法が、瞬時復号リフレッシュ(IDR)ピクチャに適応できる。一構成において、IDRピクチャは、変数IdrPicFlagが1に等しい符号化されたピクチャである。IDRピクチャでは、復号処理においてすべての参照ピクチャが「参照に不使用」とマーク付けさせる。さらにまた、復号順にIDRピクチャに続くすべての符号化されたピクチャは、復号順にIDRピクチャに先行するいずれのピクチャからのインター予測もなしに復号される。いくつかの構成では、各符号化されたビデオシーケンスまたはピクチャの流れの第1のピクチャがIDRピクチャである。
CRAピクチャを符号化するステップ302は、入力ピクチャ106をデジタル・データとして表すことを含む。例えば、第1のピクチャを符号化するステップ302は、入力ピクチャ106の特性(例えば、色、輝度、空間的位置など)を表すビットの列を生成することを含む。1つ以上の符号化されたピクチャは、ビットストリーム114に含められて、デコーダ112を含む別の電子デバイス102へ送られる。
電子デバイス102は、リーディング・ピクチャが存在するかどうかを判定する(ステップ304)。リーディング・ピクチャは、復号順にはCRAピクチャに続き、出力順にはCRAピクチャに先行するピクチャである。例えば、あるピクチャが復号順にはCRAピクチャに続き、出力順(例えば、デコーダ112から出力される順)にはCRAピクチャに先行するようにエンコーダ104によって明示されている場合には、リーディング・ピクチャが存在する。電子デバイス102は、例えば、図2に関連して上述されたようにリーディング・ピクチャが存在するかどうかを判定する(ステップ304)。
リーディング・ピクチャが存在する場合、電子デバイス102は、明示的なリーディング・ピクチャ・インジケーターを生成する(ステップ306)。電子デバイス102は、1つ以上の手法に従って明示的なリーディング・ピクチャ・インジケーターを生成する(ステップ306)。例えば、電子デバイス102は、リーディング・ピクチャが存在する(例えば、1つ以上のリーディング・ピクチャがCRAピクチャに続く)ことを示す(単数または複数)、CRAピクチャのNALユニット・タイプ、SPS中のフラグ、PPS中のフラグ、APS中のフラグおよびスライスヘッダ中のフラグの1つ以上を生成する(ステップ306)。言い換えれば、明示的なリーディング・ピクチャ・インジケーターの例は、CRAピクチャのNALユニット・タイプ、SPS中のフラグ、PPS中のフラグ、APS中のフラグおよびスライスヘッダ中のフラグの1つ以上を含む。
一手法において、電子デバイス102は、CRAピクチャに対応するNALユニット・タイプを生成する(ステップ306)。例えば、電子デバイス102は、上掲の表1に示されるようなNALユニット・タイプ4を生成する(ステップ306)。このNALユニット・タイプ4は、1つ以上の後続のリーディング・ピクチャをもつCRAピクチャの符号化スライスを示す。
追加または代わりの手法では、電子デバイス102は、CRAピクチャのSPS、PPS、APSおよびスライスヘッダの1つ以上にフラグを生成する(ステップ306)。例えば、電子デバイス102は、上述のように、CRAピクチャのSPS、PPS、APSおよびスライスヘッダの1つ以上において、値が1である1つ以上のcra_leadingpict_present_flagsを生成する(ステップ306)。例として、値が1であるcra_leadingpict_present_flagは、CRAピクチャに続く1つ以上のリーディング・ピクチャが存在することを示す。留意すべきは、1つ以上のリーディング・ピクチャがCRAピクチャに続くことを明示的に示すために、記載される手法の1つだけが実装されてもよく、または記載される手法の2つ以上の組み合わせが実装されてもよいことである。
電子デバイス102は、明示的なリーディング・ピクチャ・インジケーターを送信する(ステップ308)。いくつかの構成において、明示的なリーディング・ピクチャ・インジケーターを送信するステップは、電子デバイス102のコンポーネント間でデータ(例えば、ビットストリーム114)を伝えること、または1つ以上の電子デバイス間でビットストリーム114を伝えることを含む。一例において、電子デバイスA102a上のエンコーダ104は、1つ以上のリーディング・ピクチャ・インジケーターを含んだビットストリーム114を電子デバイスB102b、または電子デバイスB102b上のデコーダ112へ送信する。
電子デバイス102が、リーディング・ピクチャは存在しないと判定した場合、リーディング・ピクチャ・インジケーターモジュール108は、明示的なリーディング・ピクチャ・アブセンス・インジケーターを生成する(ステップ310)。電子デバイス102は、1つ以上の手法に従って明示的なリーディング・ピクチャ・アブセンス・インジケーターを生成する(ステップ310)。例えば、電子デバイス102は、リーディング・ピクチャが存在しない(例えば、CRAピクチャに続かない)ことを示す(単数または複数)、CRAピクチャのNALユニット・タイプ、SPS中のフラグ、PPS中のフラグ、APS中のフラグおよびスライスヘッダ中のフラグの1つ以上を生成する(ステップ310)。言い換えれば、明示的なリーディング・ピクチャ・アブセンス・インジケーターの例は、CRAピクチャのNALユニット・タイプ、SPS中のフラグ、PPS中のフラグ、APS中のフラグおよびスライスヘッダ中のフラグの1つ以上を含む。
一手法において、電子デバイス102は、CRAピクチャに対応するNALユニット・タイプを生成する(ステップ310)。例えば、電子デバイス102は、上掲の表1に示されるようなNALユニット・タイプ16を生成する(ステップ310)。このNALユニット・タイプ16は、後続のリーディング・ピクチャをもたないCRAピクチャの符号化スライスを示す。
追加または代わりの手法では、電子デバイス102は、CRAピクチャのSPS、PPS、APSおよびスライスヘッダの1つ以上にフラグを生成する(ステップ310)。例えば、電子デバイス102は、上述のようにCRAピクチャのSPS、PPS、APSおよびスライスヘッダの1つ以上において、値が0である1つ以上のcra_leadingpict_present_flagsを生成する(ステップ310)。例として、値が0であるcra_leadingpict_present_flagは、CRAピクチャに続く1つ以上のリーディング・ピクチャが存在しないことを示す。留意すべきは、CRAピクチャに続くリーディング・ピクチャがないことを明示的に示すために、記載される手法の1つだけが実装されてもよく、または記載される手法の2つ以上の組み合わせが実装されてもよいことである。
電子デバイス102は、リーディング・ピクチャが存在しない場合に、明示的なリーディング・ピクチャ・アブセンス・インジケーターを送信する(ステップ312)。明示的なリーディング・ピクチャ・アブセンス・インジケーターを送信するステップ312は、1つの電子デバイス102のコンポーネント間でデータを伝えること、あるいは、1つ以上の電子デバイス102間または複数のデバイス上のコンポーネント(例えば、エンコーダ104、デコーダ112)間でビットストリーム114を送信することを含む。明示的なリーディング・ピクチャ・インジケーターまたはアブセンス・インジケーターを提供することは、ビットストリーム114中にリーディング・ピクチャが存在するかどうかを判定するための1つ以上の復号ステップを削減するという有益がある。また、アブセンス・インジケーターを提供するステップは、ビットストリーム114が電子デバイス102を通過するときにビットストリームに対して行われる追加の操作を削減できる。
図4は、リーディング・ピクチャを識別するための方法400の一構成を示すフロー図である。電子デバイス102は、CRAピクチャを符号化する(ステップ402)。例えば、電子デバイス102は、入力ピクチャ106をCRAピクチャとして符号化する。例として、電子デバイス102は、図2に関連して上述されたようにCRAピクチャを符号化する(ステップ402)。
電子デバイス102は、リーディング・ピクチャが存在するかどうかを判定する(ステップ404)。リーディング・ピクチャは、復号順にはCRAピクチャに続き、出力順にはCRAピクチャに先行するピクチャである。例えば、あるピクチャが復号順にはCRAピクチャに続き、出力順(例えば、デコーダ112から出力される順)にはCRAピクチャに先行するようにエンコーダ104によって明示されている場合には、リーディング・ピクチャが存在する。電子デバイス102は、例として、図2に関連して上述されたようにリーディング・ピクチャが存在するかどうかを判定する(ステップ404)。
電子デバイス102は、リーディング・ピクチャが存在する場合に、リーディング・ピクチャと関連付けられた明示的なリーディング・ピクチャ・インジケーターを生成する(ステップ406)。いくつかの構成において、電子デバイス102は、1つ以上のリーディング・ピクチャに対応するNALユニット・タイプを作成することによって、リーディング・ピクチャと関連付けられた明示的なリーディング・ピクチャ・インジケーターを生成する(ステップ406)。例えば、電子デバイス102は、表11に示されるようなNALユニット・タイプ15を生成する(ステップ406)。
例えば、NALユニット・タイプ15は、CRAピクチャに続くリーディング・ピクチャの符号化スライスを示す。例として、特定のピクチャのある1つのスライスを含んだNALユニットに関してNALユニット・タイプが15に等しい場合、その特定のピクチャのすべてのVCL NALユニットは、15に等しいNALユニット・タイプを有する。この例では、15に等しいNALユニット・タイプは、CRAピクチャに続くリーディング・ピクチャの符号化スライスを示す。この手法で明示的なリーディング・ピクチャ・インジケーターを生成することは、CRAピクチャ、またはCRAピクチャと関連付けられた他のデータを修正することなく、リーディング・ピクチャ・インジケーターの識別が容易になるという有益がある。さらにまた、CRAピクチャまたは他のピクチャと関連付けられたSPS、PPSまたは他のフィールドを復号することなく、リーディング・ピクチャ・インジケーターが(例えば、デコーダまたはネットワークノードによって)取得される。いくつかの構成において、リーディング・ピクチャに対応するリーディング・ピクチャ・インジケーターは、1つ以上のリーディング・ピクチャと関連付けられたSPS、PPS、APSまたはスライスヘッダの1つ以上に含められる。
電子デバイス102は、リーディング・ピクチャが存在する場合に、明示的なリーディング・ピクチャ・インジケーターを送信する(ステップ408)。明示的なリーディング・ピクチャ・インジケーターを送信するステップは、1つの電子デバイス102のコンポーネント間でデータ(例えば、ビットストリーム114)を伝えること、または1つ以上の電子デバイス102間でビットストリーム114を送信することを含む。さらにまた、明示的なリーディング・ピクチャ・インジケーターを送信するステップは、1つ以上の電子デバイス102間でデータを伝えるための他の同様の手法を含んでもよい。
図5は、リーディング・ピクチャを識別するための方法500の一構成を示すフロー図である。電子デバイス102は、ビットストリーム114を受信する(ステップ502)。ビットストリーム114を受信するステップ502は、ビットストリームを取得する、読み取るか、そうでない場合にはアクセスすることを含む。いくつかの構成において、ビットストリーム114は、同じ電子デバイス上または異なる電子デバイス102上のエンコーダ104から受信される。一例において、電子デバイスB102bは、ビットストリーム114を電子デバイスA102A上のエンコーダ104から受信する。いくつかの構成において、電子デバイスB102bは、また、ビットストリーム114を受信するデコーダ112を含む。ビットストリーム114は、1つ以上の入力ピクチャ106に基づく符号化されたデータを含む。いくつかの構成において、ビットストリーム114は、明示的なリーディング・ピクチャ・インジケーターおよび明示的なリーディング・ピクチャ・アブセンス・インジケーターのうちの1つ以上を含む。
電子デバイス102は、ビットストリーム114が明示的なリーディング・ピクチャ・インジケーターを含むかどうかに基づいて、リーディング・ピクチャが存在するかどうかを判定する(ステップ504)。加えて、または代わりに、いくつかの構成において、電子デバイス102は、ビットストリーム114が明示的なリーディング・ピクチャ・アブセンス・インジケーターを含むかどうかに基づいて、リーディング・ピクチャが存在しないことを判定する。明示的なリーディング・ピクチャ・インジケーター、または明示的なリーディング・ピクチャ・アブセンス・インジケーターのいずれかを提供することは、リーディング・ピクチャが存在するかどうかを判定するときに電子デバイス102が行う復号または他の処理ステップの量を削減するという有益がある。いくつかの構成において、リーディング・ピクチャ判定モジュール120が、リーディング・ピクチャが存在するか否かを判定する場合には、これによって1つ以上の電子デバイス(例えば、デコーダ)のビットストリーム114に対する不必要な操作をさらに削減できる。
リーディング・ピクチャが存在するか、または存在しないかどうかを判定するステップ504は、ビットストリーム114を読み取るか、そうでない場合にはビットストリーム114にアクセスすることを含む。加えて、または代わりに、いくつかの構成において、電子デバイス102は、ビットストリーム114を部分的に復号する。一構成において、デコーダ112は、リーディング・ピクチャ・インジケーターが存在するか否かを判定するために、ビットストリーム114のいくらかまたはすべてを受信して読み取る。一例において、デコーダ112は、ビットストリーム114を読み取って、リーディング・ピクチャ・インジケーターが存在するか否かを識別するためのリーディング・ピクチャ判定モジュール120を含む。いくつかの構成において、リーディング・ピクチャ判定モジュール120は、ビットストリーム114中にリーディング・ピクチャ・インジケーターが存在するかどうかを判定するために、リーディング・ピクチャ・インジケーターモジュール108とインターフェースで接続される。いくつかの構成において、リーディング・ピクチャ判定モジュール120は、リーディング・ピクチャ・インジケーターモジュール108によって作成または修正された、1つ以上のピクチャや符号化スライスと関連付けられたNALユニット・タイプや1つ以上のフラグ、またはリーディング・ピクチャの有無を示す他の明示的なインジケーターを見ることによって、リーディング・ピクチャ・インジケーターが有るかどうかを判定する。
一手法において、電子デバイス102は、CRAピクチャに対応するNALユニット・タイプに基づいて、リーディング・ピクチャが存在するかどうかを判定する(ステップ504)。例えば、電子デバイス102が上掲の表1に示されるようなNALユニット・タイプ4を受信する場合、電子デバイス102は、1つ以上のリーディング・ピクチャが存在する(例えば、1つ以上のリーディング・ピクチャがCRAピクチャに続く)と判定する(ステップ504)。そのうえ、電子デバイス102がNALユニット・タイプ16を受信する場合、電子デバイス102は、リーディング・ピクチャが何も存在しないと判定する(ステップ504)。
追加または代わりの手法では、電子デバイス102は、CRAピクチャのSPS、PPS、APSおよびスライスヘッダの1つ以上に含まれる1つ以上のフラグに基づいて、リーディング・ピクチャが存在するかどうかを判定する(ステップ504)。例えば、電子デバイス102が、値が1であるcra_leadingpict_present_flagを受信する場合、電子デバイス102は、リーディング・ピクチャが存在すると(例えば、1つ以上のリーディング・ピクチャがCRAピクチャに続くと)判定する(ステップ504)。そのうえ、電子デバイス102が、値が0であるcra_leadingpict_present_flagを受信する場合、電子デバイス102は、リーディング・ピクチャが存在しないと(例えば、いずれのリーディング・ピクチャもCRAピクチャに続かないと)判定する(ステップ504)。従って、明示的なリーディング・ピクチャ・インジケーターの例は、1つ以上のリーディング・ピクチャの存在を示す、CRAピクチャに対応するNALユニット・タイプおよびCRAピクチャのSPS、PPS、APSおよびスライスヘッダの1つ以上に対応する1つ以上のフラグのうちの1つ以上を含む。
加えて、または代わりに、電子デバイス102は、リーディング・ピクチャに対応するNALユニット・タイプに基づいて、リーディング・ピクチャが存在するかどうかを判定する(ステップ504)。例えば、電子デバイス102が上掲の表11に示されるような15のNALユニット・タイプを受信する場合、電子デバイス102は、リーディング・ピクチャが存在すると(例えば、1つ以上のリーディング・ピクチャがCRAピクチャに続くと)判定する(ステップ504)。しかしながら、電子デバイス102が上掲の表11に示されるような15のNALユニット・タイプを受信しない場合、電子デバイス102は、リーディング・ピクチャが存在しないと(例えば、いずれのリーディング・ピクチャもCRAピクチャに続かないと)判定する(ステップ504)。従って、明示的なリーディング・ピクチャ・インジケーターの別の例は、リーディング・ピクチャと関連付けられたNALユニットである。
電子デバイス102は、リーディング・ピクチャが存在するかどうかに基づいて、ビットストリーム114に対して1つ以上の操作を行う(ステップ506)。いくつかの構成において、ビットストリーム114に対して操作を行うステップ506は、1つ以上のリーディング・ピクチャを破棄することを含む。例えば、処理デバイス(例えば、ネットワークノード)またはデコーダは、1つ以上のリーディング・ピクチャをビットストリーム114から破棄する。電子デバイス102がビットストリーム114に対して行う(ステップ506)操作の他の例は、電子デバイス102がビットストリームに含まれるデータまたはピクチャに対して行う読み取り、書き込み、順序変更、削除、復号、送信および他の操作を含む。加えて、または代わりに、ビットストリーム114に対して操作を行うステップ506は、他の因子、例えば、帯域幅の利用可能性、電子デバイス102の能力、ビットストリーム114の仕様および他の特性に基づいてもよい。
一例において、電子デバイス102は、電子デバイス102またはビットストリーム114と関連する他の因子に加えて、明示的なリーディング・ピクチャ・インジケーターの有無に基づいて、1つ以上のリーディング・ピクチャを破棄する。加えて、または代わりに、電子デバイス102は、予測、補償、推定と関連する他のシステムおよび方法、または、デジタルメディアを効率的に表現するための他の手法に基づいて、1つ以上のリーディング・ピクチャを破棄する。他の構成は、1つ以上の電子デバイス102がビットストリーム114に対して行う他の操作を含んでもよい。
図6は、電子デバイス602上のエンコーダ604の一構成を示すブロック図である。留意すべきは、電子デバイス602内に含まれるとして示される要素の1つ以上が、ハードウェア、ソフトウェアまたは両方の組み合わせで実装されてもよいことである。例えば、電子デバイス602は、ハードウェア、ソフトウェアまたは両方の組み合わせで実装されてもよいエンコーダ604を含む。例えば、エンコーダ604は、回路、集積回路、特定用途向け集積回路(ASIC)、実行可能な命令をもつメモリと電子通信を行うプロセッサ、ファームウェア、フィールドプログラマブルゲートアレイ(FPGA:field−programmable gate array)(FPGA)など、またはそれらの組み合わせとして実装される。いくつかの構成では、エンコーダ604がHEVCコーダであってもよい。
電子デバイス602は、ソース634を含む。ソース634は、入力ピクチャ606としてのピクチャまたは画像データ(例えば、ビデオ)をエンコーダ604へ供給する。ソース634の例は、イメージセンサ、メモリ、通信インターフェース、ネットワークインターフェース、無線受信機、ポートなどを含む。
1つ以上の入力ピクチャ606は、フレーム内予測モジュールおよび再構成バッファ640へ供給される。入力ピクチャ606は、動き推定および動き補償モジュール666へ、そして減算モジュール646へも供給される。
フレーム内予測モジュールおよび再構成バッファ640は、1つ以上の入力ピクチャ606および再構成データ680に基づいて、イントラモード情報658およびイントラ信号642を生成する。動き推定および動き補償モジュール666は、1つ以上の入力ピクチャ606および参照ピクチャバッファ696信号698に基づいて、インターモード情報668およびインター信号644を生成する。いくつかの構成において、参照ピクチャバッファ696は、参照ピクチャバッファ696における1つ以上の参照ピクチャからのデータを含む。
エンコーダ604は、モードに従ってイントラ信号642とインター信号644との間で選択を行う。イントラ信号642は、イントラ符号化モードでピクチャ内の空間的特性を活用するために用いられる。インター信号644は、インター符号化モードでピクチャ間の時間的特性を活用するために用いられる。イントラ符号化モードにある間には、イントラ信号642が減算モジュール646へ供給され、イントラモード情報658がエントロピー符号化モジュール660へ供給される。インター符号化モードにある間には、インター信号644が減算モジュール646へ供給され、インターモード情報668がエントロピー符号化モジュール660へ供給される。
減算モジュール646では予測残差648を作り出すために、(モードに依存して)イントラ信号642またはインター信号644のいずれかが入力ピクチャ606から減算される。予測残差648は、変換モジュール650へ供給される。変換モジュール650は、予測残差648を圧縮して、量子化モジュール654へ供給される変換信号652を作り出す。量子化モジュール654は、変換信号652を量子化して、変換および量子化された係数(TQC:transformed and quantized coefficient)656を作り出す。
TQC656は、エントロピー符号化モジュール660および逆量子化モジュール670へ供給される。逆量子化モジュール670は、TQC656に対して逆量子化を行い、逆変換モジュール674へ供給される逆量子化された信号672を作り出す。逆変換モジュール674は、逆量子化された信号672を展開して、再構成モジュール678へ供給される展開された信号676を作り出す。
再構成モジュール678は、展開された信号676に基づいて再構成されたデータ680を作り出す。例えば、再構成モジュール678は、ピクチャを再構成(修正)する。再構成されたデータ680は、デブロッキングフィルタ682へ、ならびにフレーム内モジュールおよび再構成バッファ640へ供給される。デブロッキングフィルタ682は、再構成されたデータ680に基づいてフィルタされた信号684を作り出す。
フィルタ処理された信号684は、サンプル適応オフセット(SAO:sample adaptive offset)モジュール686へ供給される。SAOモジュール686は、エントロピー符号化モジュール660へ供給されるSAO情報688、および適応ループフィルタ(ALF:adaptive loop filter)692へ供給されるSAO信号690を作り出す。ALF692は、参照ピクチャバッファ696へ供給されるALF信号694を作り出す。ALF信号694は、参照信号として用いられる1つ以上のピクチャからのデータを含む。
エントロピー符号化モジュール660は、ビットストリーム614または他の信号を作り出すためにTQC656を符号化する。また、エントロピー符号化モジュール660は、コンテキスト適応型可変長符号化(CAVLC:Context−Adaptive Variable Length Coding)またはコンテキスト適応型2値算術符号化(CABAC:Context−Adaptive Binary Arithmetic Coding)を用いてTQC656を符号化する。特に、エントロピー符号化モジュール660は、イントラモード情報658、インターモード情報668およびSAO情報688の1つ以上に基づいて、TQC656を符号化する。いくつかの構成において、ビットストリーム614は、符号化されたピクチャ・データを含む。一例において、ビットストリーム614は、エンコーダ604から他の別の電子デバイス602へ送信される前に、リーディング・ピクチャ・インジケーターモジュール608へ渡される。
HEVCのようなビデオ圧縮に含まれる量子化は、ある範囲の値を単一の量子値に圧縮することによって達成される損失圧縮技術である。量子化パラメータ(QP:quantization parameter)は、再構成されるビデオの品質および圧縮比の両方に基づいて量子化を行うために用いられる、予め定義されたスケーリング・パラメータである。HEVCでは所与のブロックの特性をブロックサイズおよびその色情報に基づいて表すために、ブロックタイプが定義される。QP、解像度情報およびブロックタイプは、エントロピー符号化の前に決定される。例えば、電子デバイス602(例えば、エンコーダ604)は、エントロピー符号化モジュール660へ供給されるQP、解像度情報およびブロックタイプを決定する。
エントロピー符号化モジュール660は、TQC656のブロックに基づいてブロックサイズを決定する。例えば、ブロックサイズは、TQCのブロックの1次元に沿ったTQC656の数である。言い換えれば、TQCのブロックにおけるTQC656の数は、ブロックサイズの2乗に等しい。例えば、ブロックサイズは、TQCのブロックにおけるTQC656の数の平方根として決定される。解像度は、画素幅×画素高さとして定義される。解像度情報は、ピクチャの幅に対する、ピクチャの高さまたは両方に対する画素の数を含む。ブロックサイズは、TQCの2Dブロックの1次元に沿ったTQCの数として定義されてもよい。
いくつかの構成において、エントロピー符号化モジュール660は、ビットストリーム614または1つ以上のピクチャを含んだ他の信号をリーディング・ピクチャ・インジケーターモジュール608へ送信する。リーディング・ピクチャ・インジケーターモジュール608は、1つ以上の入力ピクチャ606中にリーディング・ピクチャがあるかどうかを判定して、リーディング・ピクチャまたは他のピクチャ(例えば、CRAピクチャ)のいずれかと関連付けられたリーディング・ピクチャ・インジケーターを生成する。いくつかの構成において、リーディング・ピクチャ・インジケーターモジュールは、リーディング・ピクチャの有無を示すために、新しいNALユニット、フラグまたは他のインジケーターを生成する。さらにまた、リーディング・ピクチャ・インジケーターモジュール608は、電子デバイス上に記憶されるか、または別の電子デバイスへ送信されるデータのビットストリーム614に付随させる、またはそれと一緒に送信するために、リーディング・ピクチャ・インジケーターまたはアブセンス・インジケーターを修正または作成する。
リーディング・ピクチャ・インジケーターモジュール608は、入力ピクチャ606と関連付けられた1つ以上のリーディング・ピクチャ・インジケーターを生成するために、種々のモジュールまたはサブモジュールをさらに含んでもよい。例えば、インジケーターモジュール608は、データの流れにリーディング・ピクチャが存在するか否かを示すべく、入力ピクチャ606と関連付けられた明示的なリーディング・ピクチャ・インジケーターを生成するために、SPSモジュール624a、PPSモジュール624b、APSモジュール624c、スライスヘッダ・モジュール624d、NALユニット(NALU:NAL Unit)モジュール624eまたは他のモジュールを含んでもよい。いくつかの構成において、リーディング・ピクチャ・インジケーターは、ピクチャが部分的に符号化されるか、または電子デバイス602の複数のコンポーネントを通過した後に生成されるとよい。この手法は、リーディング・ピクチャが存在するかどうかを判定して、そのインジケーターを提供するための広範な符号化を削減することができるという有益がある。
一構成において、リーディング・ピクチャ・インジケーターモジュール608は、リーディング・ピクチャが存在するかどうかを示すためのフラグまたは他のインジケーターを生成する。例えば、SPSモジュール624aが、1つ以上のリーディング・ピクチャの存在に対応すべくSPS中にフラグを生成する。別の例では、PPSモジュール624bが、1つ以上のリーディング・ピクチャの存在に対応すべくPPS中にフラグまたは他のインジケーターを生成する。別の例では、APSモジュール624cが、1つ以上のリーディング・ピクチャの存在に対応すべくAPS中にフラグを生成する。別の例では、スライスヘッダ・モジュール624dが、1つ以上のリーディング・ピクチャの有無に対応すべくスライスヘッダ(例えば、CRAスライスヘッダ)中にフラグまたは他のインジケーターを生成する。いくつかの実施形態において、本明細書に記載されるモジュールの1つ以上が、1つ以上のリーディング・ピクチャに対応する1つ以上のインジケーターを生成してもよい。
加えて、または代わりに、一構成において、リーディング・ピクチャ・インジケーターモジュール608は、新しいNALユニット・タイプを作成または修正することによって、1つ以上の入力ピクチャと関連付けられた明示的なリーディング・ピクチャ・インジケーターを生成してもよい。一例において、NALUモジュール624eは、1つ以上のリーディング・ピクチャの存在を示す1つ以上のピクチャと関連付けられたNALユニットを生成する。一構成において、NALユニットがCRAピクチャと関連付けられ、NALUモジュール624eは、1つ以上のリーディング・ピクチャがCRAピクチャの後に続くことを示すか、または指示するためのNALユニットを生成する。いくつかの構成において、NALUモジュール624eは、入力ピクチャ606がリーディング・ピクチャであることを示すために、1つ以上のリーディング・ピクチャと関連付けられたNALユニットを生成する。
別の構成では、リーディング・ピクチャ・インジケーターモジュール608は、明示的なリーディング・ピクチャ・アブセンス・インジケーターを生成する。一例において、リーディング・ピクチャ・インジケーターモジュール608は、リーディング・ピクチャが存在しないことを示すために、1つ以上の入力ピクチャ606(例えば、CRAピクチャ)と関連付けられたNALユニット・タイプを生成する。一例において、NALユニット・タイプは、CRAピクチャに続くリーディング・ピクチャが存在しないことを示すCRAピクチャの符号化スライスを含む。
いくつかの構成において、ビットストリーム614は、別の電子デバイスへ送信される。例えば、ビットストリーム614は、通信インターフェース、ネットワークインターフェース、無線送信機、ポートなどへ供給される。例として、ビットストリーム614は、LAN、インターネット、セルラーフォン基地局などを通じて、別の電子デバイスへ送信される。加えて、または代わりに、ビットストリーム614は、電子デバイス602上のメモリまたは他のコンポーネントに記憶される。
図7は、電子デバイス702上のデコーダ712の一構成を示すブロック図である。デコーダ712は、電子デバイス702に含まれてもよい。例えば、デコーダ712は、HEVCデコーダであってもよい。デコーダ712、および/またはデコーダ712に含まれるとして示される要素の1つ以上は、ハードウェア、ソフトウェアまたは両方の組み合わせで実装されてもよい。デコーダ712は、復号のためにビットストリーム714(例えば、ビットストリーム714に含まれる1つ以上の符号化されたピクチャ)を受信する。いくつかの構成において、受信したビットストリーム714は、受信したオーバーヘッド情報、例えば、受信したスライスヘッダ、受信したPPS、受信したバッファ記述情報などを含む。ビットストリーム714に含まれる符号化されたピクチャは、1つ以上の符号化された参照ピクチャ、および/または1つ以上の他の符号化されたピクチャを含んでもよい。いくつかの構成において、ビットストリーム714は、1つ以上の明示的なリーディング・ピクチャ・インジケーターまたはアブセンス・インジケーターを含むか、または伴う。
一構成において、デコーダ712は、リーディング・ピクチャ判定モジュール720を含む。いくつかの構成において、電子デバイス702は、ビットストリーム714を受信し、リーディング・ピクチャ判定モジュール720を通してビットストリーム714を送信する。リーディング・ピクチャ判定モジュール720は、電子デバイス702上のデコーダ712または他のコンポーネントの一部であってもよい。
リーディング・ピクチャ判定モジュール720は、ビットストリーム714が明示的なリーディング・ピクチャ・インジケーターを含むかどうかに基づいて、リーディング・ピクチャが存在するかどうかを判定するための種々のモジュールまたはサブモジュールを含む。例えば、リーディング・ピクチャ判定モジュール720は、リーディング・ピクチャ・インジケーターがビットストリーム714に付随するか、または含まれるかどうかを判定するためのSPSモジュール726a、PPSモジュール726b、APSモジュール726c、スライスヘッダ・モジュール726d、NALUモジュール726eまたは他のモジュールを含む。いくつかの構成において、リーディング・ピクチャ判定モジュール720は、ビットストリーム714がデコーダ712のいくつかの要素を通過する前にビットストリーム714を受信するとよい。この手法は、ビットストリーム714のいくつかあるいはすべてを復号することなく、リーディング・ピクチャが存在するかどうかを識別することができるという有益がある。いくつかの構成では、これによって非効率的な操作、例えば、リーディング・ピクチャが破棄されるようにスケジュールされているときにリーディング・ピクチャを復号することを防止できる。
いくつかの構成において、それぞれのモジュールまたはサブモジュール726は、様々なタイプのインジケーターに基づいて、リーディング・ピクチャが存在するかどうかを判定する。例えば、SPSモジュール726aは、SPSと関連付けられたフラグまたはインジケーターがビットストリーム714とともに存在するかどうかを判定する。PPSモジュール726bは、PPSと関連付けられたフラグまたはインジケーターがビットストリーム714とともに存在するかどうかを判定する。APSモジュール726cは、APSと関連付けられたフラグまたはインジケーターがビットストリーム714とともに存在するかどうかを判定する。スライスヘッダ・モジュール726dは、CRAピクチャまたは他のピクチャのスライスヘッダと関連付けられたフラグまたはインジケーターがビットストリーム714とともに存在するかどうかを判定する。加えて、または代わりに、NALUモジュール726eは、リーディング・ピクチャの有無を示す新しいNALUユニット・タイプがビットストリーム714とともに存在するかどうかを判定する。一構成において、NALUユニットがCRAピクチャと関連付けられ、NALUモジュール726eは、1つ以上のリーディング・ピクチャがCRAピクチャの次に続くと判定する。いくつかの構成において、NALUモジュール726eは、これらのリーディング・ピクチャと関連付けられたNALユニットから1つ以上のリーディング・ピクチャの存在を判定する。
(ビットストリーム714に含まれる1つ以上の符号化されたピクチャで)受信したシンボルは、エントロピー復号モジュール768によってエントロピー復号されて、動き情報信号770、ならびに量子化、スケーリングおよび/または変換された係数772を作り出す。
動き情報信号770は、フレーム間予測信号782を作り出す動き補償モジュール774において、フレームメモリ778からの参照フレーム信号798の一部分と結合される。量子化、スケーリングおよび/または変換された係数772は、逆モジュール762によって逆量子化、スケーリングおよび逆変換されて、復号された残差信号784を作り出す。復号された残差信号784は、予測信号792に加算されて結合信号786を作り出す。予測信号792とは、動き補償モジュール774で作り出されたフレーム間予測信号782、または代わりにフレーム内予測モジュール788によって作り出されたフレーム内予測信号790から選択された信号である。いくつかの構成において、この信号選択は、ビットストリーム714に基づく(例えば、ビットストリーム714によって制御される)。
フレーム内予測信号790は、(例えば、現フレームにおける)結合信号786から予め復号された情報から予測される。結合信号786は、また、デブロッキングフィルタ794によってフィルタされる。フィルタされた結果として生じた信号796は、フレームメモリ778に書き込まれる。フィルタされた結果として生じた信号796は、復号されたピクチャを含む。
フレームメモリ778は、復号されたピクチャに対応するオーバーヘッド情報を含む。例えば、フレームメモリ778は、スライスヘッダ、PPS情報、サイクルパラメータ、バッファ記述情報などを含む。これらの情報の1つ以上は、エンコーダ(例えば、エンコーダ604)からシグナリングされる。フレームメモリ778は、復号されたピクチャ718または他の出力信号を供給する。
いくつかの構成において、デコーダ712は、フレームメモリ778と通信を行うリーディング・ピクチャ判定モジュール720aを含む。例えば、デコーダ712は、ビットストリーム714がデコーダ714を通過するか、またはエントロピー復号される前に、1つ以上のリーディング・ピクチャ・インジケーターに基づいて、あるいはいくつかの場合には、1つ以上のリーディング・ピクチャ・インジケーターまたはアブセンス・インジケーターがビットストリーム714に含まれるか、または付随するかどうかを判定すべく、フレームメモリ778にアクセスすることによって、リーディング・ピクチャが存在するかどうかを判定する。フレームメモリにアクセスするリーディング・ピクチャ判定モジュール720aを含むことは、復号処理に干渉することなく、リーディング・ピクチャが存在するかどうかを判定するための能力を電子デバイス702に与えることができるという有益がある。この手法では、リーディング・ピクチャ判定モジュール720aは、1つ以上のピクチャを修正または復号することなく、フレームメモリ778に専らアクセスすることができる。
図8は、送信用電子デバイス802に利用される様々なコンポーネントを示す。送信用電子デバイス802は、本明細書に記載される電子デバイス(例えば、電子デバイス102、602、702)の1つ以上として実装される。
送信用電子デバイス802は、送信用電子デバイス802の動作を制御するプロセッサ817を含む。プロセッサ817は、コンピュータ処理装置(CPU:Computer Processing Unit)とも呼ばれる。メモリ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によって実行される。
送信用電子デバイス802は、他の電子デバイス(例えば、受信用電子デバイス)と通信するための1つ以上の通信インターフェース819を含む。通信インターフェース819は、有線通信技術、無線通信技術、または両方に基づいてもよい。通信インターフェース819の例は、シリアルポート、パラレルポート、ユニバーサルシリアルバス(USB:Universal Serial Bus)、イーサネットアダプタ、IEEE1394バスインターフェース、小型計算機システムインターフェース(SCSI:small computer system interface)バスインターフェース、赤外線(IR:infrared)通信ポート、Bluetooth無線通信アダプタ、第3世代パートナーシップ・プロジェクト(3GPP:3rd Generation Patnership Project)仕様による無線トランシーバなどを含む。
送信用電子デバイス802は、1つ以上の出力デバイス823および1つ以上の入力デバイス821を含む。出力デバイス823の例は、スピーカ、プリンタなどを含む。送信用電子デバイス802に含まれる出力デバイスの1つのタイプは、表示デバイス825である。本明細書に開示される構成とともに用いられる表示デバイス825は、任意の適切な画像投影技術、例えば、陰極線管(CRT)、液晶表示(LCD)、発光ダイオード(LED)、気体プラズマ、エレクトロルミネセンスなどを利用する。表示コントローラ827は、メモリ811に記憶されたデータを、ディスプレイ825上に示されるテキスト、グラフィックス、および/または動画に(適宜)変換するために提供される。入力デバイス821の例は、キーボード、マウス、マイクロフォン、リモートコントロールデバイス、ボタン、ジョイスティック、トラックボール、タッチパッド、タッチスクリーン、ライトペンなどを含む。
送信用電子デバイス802の様々なコンポーネントは、データバスに加えて、電力バス、制御信号バスおよびステータス信号バスを含むバスシステム829によって結合される。しかしながら、明確にするために、図8では様々なバスがバスシステム829として示される。図8に示される送信用電子デバイス802は、具体的なコンポーネントのリスティングではなく、機能ブロック図である。
図9は、受信用電子デバイス902に利用される様々なコンポーネントを示すブロック図を示す。受信用電子デバイス902は、本明細書に記載される電子デバイス(例えば、電子デバイス102、602、702)の1つ以上として実装される。
受信用電子デバイス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によって実行される。
受信用電子デバイス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は、上掲の図2、図3、図6および他の図面に関連して記載される1つ以上の同様の機能を行うように構成される。図8は、図10の具体的な装置構造の一例を示す。図1および図6の機能の1つ以上を実現するために、他の様々な構造が実装されてもよい。例えば、DSPがソフトウェアによって実現されてもよい。
図11は、リーディング・ピクチャを識別するシステムおよび方法が実装された電子デバイス1102の一構成を示すブロック図である。電子デバイス1102は、ビットストリーム1114、受信手段1135および復号手段1137を含む。受信手段1135および復号手段1137は、上掲の図2、図5、図7および他の図面に関連して記載される1つ以上の同様の機能を行うように構成される。図9は、図11の具体的な装置構造の一例を示す。図1および図7の1つ以上の機能を実現するために、他の様々な構造が実装されてもよい。例えば、DSPがソフトウェアによって実現されてもよい。
図12は、リーディング・ピクチャを識別するためのシステムおよび方法が実装された、いくつかのデバイスを示すブロック図である。一例において、電子デバイスA1202a、電子デバイスB1202bおよび処理デバイス1239が示される。しかしながら、留意すべきは、図12に関連する電子デバイスA1202a、電子デバイスB1202bおよび処理デバイス1239が、図1における電子デバイスA102aおよび電子デバイスB102bと同様に構成されることである。例えば、電子デバイスA1202aは、エンコーダ1204およびリーディング・ピクチャ・インジケーターモジュール1208を含む。エンコーダ1204は、さらに、入力ピクチャ1206を取得または受信する。また、電子デバイスA1202aは、他の図面におけるビットストリーム114と同様のビットストリーム1214aを生成して送ることができる。
一例において、ビットストリーム1214aは、電子デバイスA1202aから処理デバイス1239へ伝えられるか、または送られる。処理デバイスは、リーディング・ピクチャ判定モジュール1220を含む。図12に関連するリーディング・ピクチャ判定モジュール1220は、図1におけるリーディング・ピクチャ判定モジュール120と同様の操作を行い、デコーダに含まれても、含まれなくてもよい。さらにまた、処理デバイスは、他の図面に関連して記載される電子デバイスの一例であってもよい。一例において、処理デバイス1239は、ネットワークノードであってもよい。一例において、処理デバイス1239は、いずれかのリーディング・ピクチャがビットストリーム1214a中にあるかどうかを判定する。さらにまた、処理デバイス1239は、ビットストリーム1214aに対して1つ以上の操作を行う。処理デバイス1239がビットストリーム1214aに対して行う操作の例は、リーディング・ピクチャを破棄すること、ビットストリーム1214aと関連付けられたデータを記憶すること、またはビットストリーム1214aを変換すること、および/またはビットストリーム1214abを電子デバイス1202へ送ることを含む。
一例において、処理デバイス1239は、ビットストリーム1214aを受信し、ビットストリーム1214aに対して操作を行って、ビットストリーム1214bを電子デバイスB1202へ送る。図12に関連して記載される電子デバイスB1202bは、図1における電子デバイスB102bと同様に構成される。電子デバイスB1202bは、また、デコーダ1212を含む。さらにまた、デコーダ1212は、リーディング・ピクチャ判定モジュールを含んでも、含まなくてもよい。一構成において、電子デバイスB1202bは、ビットストリーム1214bに対して操作を行い、出力、例えば、復号されたピクチャ1218を生成する。電子デバイスB1202bは、さらに、復号されたピクチャ1218を記憶、表示、破棄、または別様に処分する。
用語「コンピュータ可読媒体」は、コンピュータまたはプロセッサによってアクセスできる任意の利用可能な媒体を指す。用語「コンピュータ可読媒体」は、本明細書では、非一時的かつ有形のコンピュータおよび/またはプロセッサ可読媒体を示す。限定ではなく、例として、コンピュータ可読またはプロセッサ可読媒体は、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つ以上のステップまたは動作を備える。本方法のステップおよび/または動作は、特許請求の範囲から逸脱することなく、相互に交換されてもよく、および/または単一ステップに組み合わされてもよい。言い換えれば、記載される方法の適切な操作のためにステップまたは動作の特定の順序が必要とされない限り、特定のステップおよび/または動作の順序および/または使用は、特許請求の範囲から逸脱することなく、修正されてもよい。
理解すべきは、特許請求の範囲が上記に示された通りの構成および構成要素には限定されないことである。特許請求の範囲から逸脱することなく、本明細書に記載される配置、操作、ならびにシステム、方法、および装置の詳細に様々な修正、変更および変形がなされてもよい。