図1Aは、メッセージを送り、かつビットストリームをバッファリングするためのシステムおよび方法が実現され得る、1つまたはそれ以上の電子デバイス102の例を示すブロック図である。この例においては、電子デバイスA102aおよび電子デバイスB102bが示される。しかし、いくつかの構成においては、電子デバイスA102aおよび電子デバイスB102bに関して記載された特徴および機能の1つまたはそれ以上が単一の電子デバイス内に組み合わされてもよいことが留意されるべきである。
電子デバイスA102aはエンコーダ104を含む。エンコーダ104はメッセージ生成モジュール108を含む。電子デバイスA102aに含まれるエレメント(例、エンコーダ104およびメッセージ生成モジュール108)の各々は、ハードウェア、ソフトウェア、または両方の組み合わせにおいて実現されてもよい。
電子デバイスA102aは、1つまたはそれ以上の入力ピクチャ106を得てもよい。いくつかの構成において、入力ピクチャ106は、画像センサを用いて電子デバイスA102aに捕捉されてもよいし、メモリから検索されてもよいし、および/または別の電子デバイスから受信されてもよい。
エンコーダ104は、入力ピクチャ106を符号化して符号化データを生成し得る。たとえば、エンコーダ104は一連の入力ピクチャ106(例、ビデオ)を符号化してもよい。一構成において、エンコーダ104はHEVCエンコーダであってもよい。符号化データはデジタルデータ(例、ビットストリーム114の一部)であってもよい。エンコーダ104は、入力信号に基づくオーバーヘッドシグナリングを生成してもよい。
メッセージ生成モジュール108は、1つまたはそれ以上のメッセージを生成し得る。たとえば、メッセージ生成モジュール108は1つもしくはそれ以上のSEIメッセージまたはその他のメッセージを生成し得る。サブピクチャレベルにおける動作をとりうるCPBに対して、電子デバイス102はサブピクチャパラメータ(例、CPB除去遅延パラメータ)を送ってもよい。特定的には、電子デバイス102(例、エンコーダ104)は、ピクチャタイミングSEIメッセージに共通復号ユニットCPB除去遅延パラメータを含ませるかどうかを判定してもよい。たとえば、エンコーダ104がピクチャタイミングSEIメッセージに共通復号ユニットCPB除去遅延パラメータ(例、common_du_cpb_removal_delay)を含んでいるとき、電子デバイスはフラグ(例、common_du_cpb_removal_delay_flag)を1に設定してもよい。共通復号ユニットCPB除去遅延パラメータが含まれるとき、電子デバイスは、アクセスユニット内のすべての復号ユニットに適用可能な共通復号ユニットCPB除去遅延パラメータを生成してもよい。言換えると、アクセスユニット内の各復号ユニットに対する復号ユニットCPB除去遅延パラメータを含むのではなく、ピクチャタイミングSEIメッセージが関連付けられるアクセスユニット内のすべての復号ユニットに、共通パラメータが適用され得る。
上述の場合に対し、ピクチャタイミングSEIメッセージに共通復号ユニットCPB除去遅延パラメータが含まれないとき、電子デバイス102は、ピクチャタイミングSEIメッセージが関連付けられるアクセスユニット内の各復号ユニットに対して、別個の復号ユニットCPB除去遅延を生成してもよく、いくつかの構成において、電子デバイスA102aは電子デバイスB102bに、ビットストリーム114の一部としてメッセージを送ってもよい。いくつかの構成において、電子デバイスA102aは、分離した送信110によって電子デバイスB102bにメッセージを送ってもよい。たとえば、分離した送信はビットストリーム114の一部でなくてもよい。たとえば、何らかの帯域外機構を用いて、ピクチャタイミングSEIメッセージまたはその他のメッセージが送られてもよい。なお、いくつかの構成においては、その他のメッセージが上述のピクチャタイミングSEIメッセージの特徴の1つまたはそれ以上を含んでいてもよい。さらに、1つまたはそれ以上の局面において、その他のメッセージが上述のSEIメッセージと同様に使用されてもよい。
エンコーダ104(およびたとえばメッセージ生成モジュール108)は、ビットストリーム114を生成し得る。ビットストリーム114は、入力ピクチャ106に基づく符号化ピクチャデータを含み得る。いくつかの構成において、ビットストリーム114はさらに、たとえばピクチャタイミングSEIメッセージまたはその他のメッセージ、スライスヘッダ、PPSなどのオーバーヘッドデータを含んでもよい。付加的な入力ピクチャ106が符号化されるため、ビットストリーム114は1つまたはそれ以上の符号化ピクチャを含んでもよい。たとえば、ビットストリーム114は、1つまたはそれ以上の符号化ピクチャを対応するオーバーヘッドデータ(例、ピクチャタイミングSEIメッセージまたはその他のメッセージ)とともに含んでもよい。
ビットストリーム114はデコーダ112に提供され得る。一例において、ビットストリーム114は、有線または無線リンクを用いて電子デバイスB102bに送信され得る。場合によっては、この送信が、たとえばインターネットまたはローカルエリアネットワーク(Local Area Network:LAN)などのネットワークを通じて行われてもよい。図1Aに示されるとおり、デコーダ112は、電子デバイスA102aのエンコーダ104とは別に電子デバイスB102b上に実現されてもよい。しかし、いくつかの構成においては、エンコーダ104とデコーダ112とが同じ電子デバイス上に実現されてもよいことに留意すべきである。エンコーダ104とデコーダ112とが同じ電子デバイス上に実現される実施においては、たとえばビットストリーム114はバスを通じてデコーダ112に提供されてもよいし、またはデコーダ112による検索のためにメモリに保存されてもよい。
デコーダ112は、ハードウェア、ソフトウェア、または両方の組み合わせにおいて実現されてもよい。一構成において、デコーダ112はHEVCデコーダであってもよい。デコーダ112はビットストリーム114を受信して(例、得て)もよい。デコーダ112は、ビットストリーム114に基づく1つまたはそれ以上の復号ピクチャ118を生成し得る。復号ピクチャ118は表示されるか、再生されるか、メモリに保存されるか、および/または別のデバイスに送信されるなどしてもよい。
デコーダ112はCPB120を含み得る。CPB120は、符号化ピクチャを一時的に保存し得る。CPB120は、データをいつ除去するかを定めるために、ピクチャタイミングSEIメッセージに見出されるパラメータを使用し得る。CPB120がサブピクチャレベルにおける動作をとりうるときは、一度にアクセスユニット全体を除去するのではなく、個々の復号ユニットが除去され得る。デコーダ112は復号ピクチャバッファ(Decoded Picture Buffer:DPB)122を含み得る。各復号ピクチャは、復号プロセスによる参照のため、ならびに出力およびクロッピングのためにDPB122に入れられる。復号ピクチャは、DPB出力時間の後、またはその復号ピクチャがインター予測参照に必要なくなったときに、DPBから除去される。
デコーダ112はメッセージ(例、ピクチャタイミングSEIメッセージまたはその他のメッセージ)を受信し得る。加えて、デコーダ112は、受信したメッセージが共通復号ユニットCPB除去遅延パラメータ(例、common_du_cpb_removal_delay)を含むかどうかを判定し得る。この判定は、ピクチャタイミングSEIメッセージに共通パラメータが存在するときに設定されるフラグ(例、common_du_cpb_removal_delay_flag)を識別することを含み得る。もし共通パラメータが存在すれば、デコーダ112は、アクセスユニット内のすべての復号ユニットに適用可能な共通復号ユニットCPB除去遅延パラメータを定め得る。もし共通パラメータが存在しなければ、デコーダ112は、アクセスユニット内の各復号ユニットに対して別個の復号ユニットCPB除去遅延パラメータを定め得る。デコーダ112はさらに、その共通復号ユニットCPB除去遅延パラメータまたは別個の復号ユニットCPB除去遅延パラメータのいずれかを用いて、CPB120から復号ユニットを除去し得る。
上述のHRDは、図1Aに示されるデコーダ112の一例であり得る。よって、いくつかの構成において、電子デバイス102は上述のHRDおよびCPB120およびDPB122に従って動作してもよい。
なお、電子デバイス102に含まれるエレメントの1つもしくはそれ以上、またはエレメントの一部が、ハードウェアにおいて実現されてもよい。たとえば、これらのエレメントの1つもしくはそれ以上、またはエレメントの一部がチップ、回路、またはハードウェアコンポーネントなどとして実現されてもよい。加えて、本明細書に記載される機能または方法の1つまたはそれ以上が、ハードウェアにおいて実施されるか、および/またはハードウェアを用いて実行されてもよいことに留意すべきである。たとえば、本明細書に記載される方法の1つまたはそれ以上が、チップセット、特定用途向け集積回路(Application−Specific Integrated Circuit:ASIC)、大規模集積回路(Large−Scale Integrated circuit:LSI)、もしくは集積回路などにおいて実施されるか、および/またはこうした回路を用いて実現されてもよい。
図1Bは、エンコーダ1908およびデコーダ1972の別の例を示すブロック図である。この例においては、電子デバイスA1902および電子デバイスB1970が示される。しかし、いくつかの構成においては、電子デバイスA1902および電子デバイスB1970に関して記載された特徴および機能が単一の電子デバイス内に組み合わされてもよいことが留意されるべきである。
電子デバイスA1902はエンコーダ1908を含む。エンコーダ1908は、ベースレイヤエンコーダ1910と、エンハンスメントレイヤエンコーダ1920とを含んでもよい。後で説明するとおり、ビデオエンコーダ1908は、スケーラブルビデオ符号化およびマルチビュービデオ符号化に対して好適である。エンコーダ1908は、ハードウェア、ソフトウェア、または両方の組み合わせにおいて実現されてもよい。一構成において、エンコーダ1908は、スケーラブルおよび/またはマルチビューを含む高効率ビデオ符号化(high−efficiency video coding:HEVC)コーダであってもよい。他のコーダが同様に用いられてもよい。電子デバイスA1902はソース1906を得てもよい。いくつかの構成において、ソース1906は、画像センサを用いて電子デバイスA1902に捕捉されても、メモリから検索されても、または別の電子デバイスから受信されてもよい。
エンコーダ1908はソース1906を符号化して、ベースレイヤビットストリーム1934およびエンハンスメントレイヤビットストリーム1936を生成し得る。たとえば、エンコーダ1908はソース1906内の一連のピクチャ(例、ビデオ)を符号化してもよい。特に、品質スケーラビリティとしても公知であるSNRスケーラビリティに対するスケーラブルビデオ符号化に対しては、ベースレイヤおよびエンハンスメントレイヤエンコーダに同じソース1906が提供され得る。特に、空間スケーラビリティに対するスケーラブルビデオ符号化に対しては、ベースレイヤエンコーダにはダウンサンプリングされたソースが用いられ得る。特に、マルチビュー符号化に対しては、ベースレイヤエンコーダおよびエンハンスメントレイヤエンコーダに異なるビューソースが用いられ得る。エンコーダ1908は、図2Bに関連して後述するエンコーダ1782と類似のものであってもよい。
ビットストリーム1934、1936は、ソース1906に基づく符号化ピクチャデータを含んでもよい。いくつかの構成において、ビットストリーム1934、1936はさらに、たとえばスライスヘッダ情報、PPS情報などのオーバーヘッドデータを含んでもよい。ソース1906内の付加的なピクチャが符号化されるために、ビットストリーム1934、1936は1つまたはそれ以上の符号化ピクチャを含んでもよい。
ビットストリーム1934、1936はデコーダ1972に提供され得る。デコーダ1972は、ベースレイヤデコーダ1980と、エンハンスメントレイヤデコーダ1990とを含んでもよい。ビデオデコーダ1972は、スケーラブルビデオ復号およびマルチビュービデオ復号に対して好適である。一例において、ビットストリーム1934、1936は、有線または無線リンクを用いて電子デバイスB1970に送信され得る。場合によっては、この送信が、たとえばインターネットまたはローカルエリアネットワーク(LAN)などのネットワークを通じて行われてもよい。図1Bに示されるとおり、デコーダ1972は、電子デバイスA1902のエンコーダ1908とは別に電子デバイスB1970上に実現されてもよい。しかし、いくつかの構成においては、エンコーダ1908とデコーダ1972とが同じ電子デバイス上に実現されてもよいことに留意すべきである。エンコーダ1908とデコーダ1972とが同じ電子デバイス上に実現される実施においては、たとえばビットストリーム1934、1936はバスを通じてデコーダ1972に提供されてもよいし、またはデコーダ1972による検索のためにメモリに保存されてもよい。デコーダ1972は、出力として復号ベースレイヤ1992および復号エンハンスメントレイヤピクチャ1994を提供し得る。
デコーダ1972は、ハードウェア、ソフトウェア、または両方の組み合わせにおいて実現されてもよい。一構成において、デコーダ1972は、スケーラブルおよび/またはマルチビューを含む高効率ビデオ符号化(HEVC)デコーダであってもよい。他のデコーダが同様に用いられてもよい。デコーダ1972は、図3Bに関連して後述するデコーダ1812と類似のものであってもよい。加えて、ベースレイヤエンコーダおよび/またはエンハンスメントレイヤエンコーダの各々が、たとえば図1Aに関して説明したものなどのメッセージ生成モジュールを含んでもよい。加えて、ベースレイヤデコーダおよび/またはエンハンスメントレイヤデコーダが、たとえば図1Aに関して説明したものなどの符号化ピクチャバッファおよび/または復号ピクチャバッファを含んでもよい。加えて、図1Bの電子デバイスが、図1Aの電子デバイスの機能に従って適用可能なとおりに動作してもよい。
図2Aは、電子デバイス602のエンコーダ604の一構成を示すブロック図である。なお、電子デバイス602内に含まれるものとして示されるエレメントの1つまたはそれ以上は、ハードウェア、ソフトウェア、または両方の組み合わせにおいて実現されてもよい。たとえば、電子デバイス602は、ハードウェア、ソフトウェア、または両方の組み合わせにおいて実現され得るエンコーダ604を含む。たとえば、エンコーダ604は回路、集積回路、特定用途向け集積回路(ASIC)、実行可能な命令を有するメモリと電子通信を行うプロセッサ、ファームウェア、フィールドプログラマブルゲート配列(field−programmable gate array:FPGA)など、またはその組み合わせとして実現されてもよい。いくつかの構成において、エンコーダ604はHEVCコーダであってもよい。
電子デバイス602はソース622を含み得る。ソース622は、ピクチャまたは画像データ(例、ビデオ)を、1つまたはそれ以上の入力ピクチャ606としてエンコーダ604に提供し得る。ソース622の例は、画像センサ、メモリ、通信インタフェース、ネットワークインタフェース、無線受信機、ポートなどを含んでもよい。
1つまたはそれ以上の入力ピクチャ606は、イントラフレーム予測モジュールおよび再構築バッファ624に提供され得る。加えて、入力ピクチャ606は、動き推定および動き補償モジュール646と、減算モジュール628とに提供され得る。
イントラフレーム予測モジュールおよび再構築バッファ624は、1つまたはそれ以上の入力ピクチャ606および再構築データ660に基づいて、イントラモード情報640およびイントラ信号626を生成してもよい。動き推定および動き補償モジュール646は、1つまたはそれ以上の入力ピクチャ606および復号ピクチャバッファ676からの参照ピクチャ678に基づいて、インターモード情報648およびインター信号644を生成してもよい。いくつかの構成において、復号ピクチャバッファ676は、復号ピクチャバッファ676内に1つまたはそれ以上の参照ピクチャからのデータを含んでもよい。
エンコーダ604は、モードに従ってイントラ信号626とインター信号644との間で選択を行ってもよい。イントラ信号626は、イントラ符号化モードにおいてピクチャ内の空間的特徴を利用するために用いられ得る。インター信号644は、インター符号化モードにおいてピクチャ間の時間的特徴を利用するために用いられ得る。イントラ符号化モードの間は、イントラ信号626が減算モジュール628に提供されてもよく、かつイントラモード情報640がエントロピー符号化モジュール642に提供されてもよい。インター符号化モードの間は、インター信号644が減算モジュール628に提供されてもよく、かつインターモード情報648がエントロピー符号化モジュール642に提供されてもよい。
予測残差630を生成するために、減算モジュール628において(モードによって)イントラ信号626またはインター信号644のいずれかが入力ピクチャ606から減算される。予測残差630は変換モジュール632に提供される。変換モジュール632は予測残差630を圧縮して変換信号634を生成してもよく、変換信号634は量子化モジュール636に提供される。量子化モジュール636は変換信号634を量子化して、変換および量子化係数(transformed and quantized coefficients:TQC)638を生成する。
TQC638は、エントロピー符号化モジュール642および逆量子化モジュール650に提供される。逆量子化モジュール650は、TQC638に対して逆量子化を行って逆量子化信号652を生成し、逆量子化信号652は逆変換モジュール654に提供される。逆変換モジュール654は、逆量子化信号652を展開して展開信号656を生成し、展開信号656は再構築モジュール658に提供される。
再構築モジュール658は、展開信号656に基づいて再構築データ660を生成してもよい。たとえば、再構築モジュール658は(修正された)ピクチャを再構築してもよい。再構築データ660は、デブロッキングフィルタ662と、イントラ予測モジュールおよび再構築バッファ624とに提供され得る。デブロッキングフィルタ662は、再構築データ660に基づいてフィルタ信号664を生成し得る。
フィルタ信号664は、サンプル適応オフセット(sample adaptive offset:SAO)モジュール666に提供され得る。SAOモジュール666は、エントロピー符号化モジュール642に提供されるSAO情報668と、適応ループフィルタ(adaptive loop filter:ALF)672に提供されるSAO信号670とを生成し得る。ALF672はALF信号674を生成し、ALF信号674は復号ピクチャバッファ676に提供される。ALF信号674は、参照ピクチャとして用いられ得る1つまたはそれ以上のピクチャからのデータを含んでもよい。
エントロピー符号化モジュール642は、TQC638を符号化してビットストリームA614a(例、符号化ピクチャデータ)を生成し得る。たとえば、エントロピー符号化モジュール642は、コンテキスト適応型可変長符号化(Context−Adaptive Variable Length Coding:CAVLC)またはコンテキスト適応型2値算術符号化(Context−Adaptive Binary Arithmetic Coding:CABAC)を用いてTQC638を符号化してもよい。特に、エントロピー符号化モジュール642は、イントラモード情報640、インターモード情報648、およびSAO情報668のうちの1つまたはそれ以上に基づいてTQC638を符号化してもよい。ビットストリームA614a(例、符号化ピクチャデータ)は、メッセージ生成モジュール608に提供され得る。メッセージ生成モジュール608は、図1に関連して説明したメッセージ生成モジュール108と同様に構成され得る。
たとえば、メッセージ生成モジュール608は、サブピクチャパラメータを含むメッセージ(例、ピクチャタイミングSEIメッセージまたはその他のメッセージ)を生成してもよい。サブピクチャパラメータは、復号ユニットに対する1つまたはそれ以上の除去遅延(例、common_du_cpb_removal_delayまたはdu_cpb_removal_delay[i])および1つまたはそれ以上のNALパラメータ(例、common_num_nalus_in_du_minus1またはnum_nalus_in_du_minus1[i])を含んでもよい。いくつかの構成において、そのメッセージがビットストリームA614aに挿入されて、ビットストリームB614bが生成され得る。よって、メッセージは、たとえばビットストリームA614a全体が生成された後(例、ビットストリームB614bのほとんどが生成された後)に生成されてもよい。他の構成においては、メッセージがビットストリームA614aに挿入されずに(この場合、ビットストリームB614bはビットストリームA614aと同じであり得る)、分離した送信610において提供されてもよい。
いくつかの構成において、電子デバイス602は、ビットストリーム614を別の電子デバイスに送る。たとえば、ビットストリーム614は通信インタフェース、ネットワークインタフェース、無線送信機、ポートなどに提供され得る。たとえば、ビットストリーム614はLAN、インターネット、携帯電話基地局などを介して別の電子デバイスに送信されてもよい。付加的または代替的に、ビットストリーム614は電子デバイス602のメモリまたはその他のコンポーネントに保存されてもよい。
図2Bは、電子デバイス1702のビデオエンコーダ1782の一構成を示すブロック図である。ビデオエンコーダ1782は、エンハンスメントレイヤエンコーダ1706と、ベースレイヤエンコーダ1709と、解像度アップスケーリングブロック1770と、出力インタフェース1780とを含み得る。本明細書に記載されるとおり、たとえば図2Bのビデオエンコーダは、スケーラブルビデオ符号化およびマルチビュービデオ符号化に対して好適である。
エンハンスメントレイヤエンコーダ1706は、入力ピクチャ1704を受信するビデオ入力1781を含んでもよい。ビデオ入力1781の出力は、予測選択1750の出力を受信する加算器/減算器1783に提供され得る。加算器/減算器1783の出力は、変換および量子化ブロック1752に提供され得る。変換および量子化ブロック1752の出力は、エントロピー符号化1748ブロックならびにスケーリングおよび逆変換ブロック1772に提供され得る。エントロピー符号化1748が行われた後、エントロピー符号化ブロック1748の出力は、出力インタフェース1780に提供され得る。出力インタフェース1780は、符号化ベースレイヤビデオビットストリーム1707と、符号化エンハンスメントレイヤビデオビットストリーム1710との両方を出力してもよい。
スケーリングおよび逆変換ブロック1772の出力は、加算器1779に提供され得る。加算器1779はさらに、予測選択1750の出力を受信し得る。加算器1779の出力は、デブロッキングブロック1751に提供され得る。デブロッキングブロック1751の出力は、参照バッファ1794に提供され得る。参照バッファ1794の出力は、動き補償ブロック1754に提供され得る。動き補償ブロック1754の出力は、予測選択1750に提供され得る。参照バッファ1794の出力は、イントラ予測因子1756にも提供され得る。イントラ予測因子1756の出力は、予測選択1750に提供され得る。予測選択1750はさらに、解像度アップスケーリングブロック1770の出力を受信し得る。
ベースレイヤエンコーダ1709は、ダウンサンプリングされた入力ピクチャ、または別の画像と組み合わせるために好適なその他の画像内容、または代替ビュー入力ピクチャもしくは同じ入力ピクチャ1703(すなわち、エンハンスメントレイヤエンコーダ1706が受信する入力ピクチャ1704と同じ入力ピクチャ)を受信するビデオ入力1762を含んでもよい。ビデオ入力1762の出力は、符号化予測ループ1764に提供され得る。符号化予測ループ1764の出力にエントロピー符号化1766が提供され得る。符号化予測ループ1764の出力は、参照バッファ1768にも提供され得る。参照バッファ1768は、符号化予測ループ1764にフィードバックを提供し得る。参照バッファ1768の出力は、解像度アップスケーリングブロック1770にも提供され得る。エントロピー符号化1766が行われたとき、出力は出力インタフェース1780に提供され得る。所望に応じて、1つまたはそれ以上のメッセージ生成モジュールに、符号化ベースレイヤビデオビットストリーム1707および/または符号化エンハンスメントレイヤビデオビットストリーム1710が提供されてもよい。
図3Aは、電子デバイス702のデコーダ712の一構成を示すブロック図である。デコーダ712は、電子デバイス702に含まれてもよい。たとえば、デコーダ712はHEVCデコーダであってもよい。デコーダ712、およびデコーダ712内に含まれるものとして示されるエレメントの1つまたはそれ以上は、ハードウェア、ソフトウェア、または両方の組み合わせにおいて実現されてもよい。デコーダ712は、復号のためのビットストリーム714(例、ビットストリーム714に含まれる1つまたはそれ以上の符号化ピクチャおよびオーバーヘッドデータ)を受信し得る。いくつかの構成において、受信されたビットストリーム714は、たとえばメッセージ(例、ピクチャタイミングSEIメッセージまたはその他のメッセージ)、スライスヘッダ、PPSなどの受信オーバーヘッドデータを含み得る。いくつかの構成において、デコーダ712は付加的に、分離した送信710を受信し得る。分離した送信710は、メッセージ(例、ピクチャタイミングSEIメッセージまたはその他のメッセージ)を含み得る。たとえば、ピクチャタイミングSEIメッセージまたはその他のメッセージは、ビットストリーム714の代わりに分離した送信710において受信されてもよい。しかし、分離した送信710は任意のものであってもよく、いくつかの構成においては使用されないこともあることが留意されるべきである。
デコーダ712はCPB720を含む。CPB720は、図1に関連して上述したCPB120と同様に構成され得る。デコーダ712は、サブピクチャパラメータを有するメッセージ(例、ピクチャタイミングSEIメッセージまたはその他のメッセージ)を受信して、そのサブピクチャパラメータに基づいて、アクセスユニット内の復号ユニットを除去および復号してもよい。なお、1つまたはそれ以上のアクセスユニットはビットストリームに含まれてもよく、かつ符号化ピクチャデータおよびオーバーヘッドデータの1つまたはそれ以上を含んでもよい。
符号化ピクチャバッファ(Coded Picture Buffer:CPB)720は、符号化ピクチャデータをエントロピー復号モジュール701に提供し得る。符号化ピクチャデータがエントロピー復号モジュール701にエントロピー復号されることによって、動き情報信号703と、量子化、スケーリングおよび/または変換係数705とが生成され得る。
動き情報信号703は、動き補償モジュール780において復号ピクチャバッファ709からの参照フレーム信号798の一部と組み合わされてもよく、動き補償モジュール780はインターフレーム予測信号782を生成し得る。量子化、デスケーリングおよび/または変換係数705が逆モジュール707に逆量子化、スケーリングおよび逆変換されることによって、復号残差信号784が生成され得る。復号残差信号784が予測信号792に加算されて、結合信号786が生成され得る。予測信号792は、動き補償モジュール780が生成したインターフレーム予測信号782か、またはイントラフレーム予測モジュール788が生成したイントラフレーム予測信号790のいずれかから選択された信号であり得る。いくつかの構成において、この信号選択は、ビットストリーム714に基づいて(例、制御されて)いてもよい。
イントラフレーム予測信号790は、(たとえば現フレーム内の)結合信号786からの、以前復号された情報から予測されてもよい。結合信号786はさらに、デブロッキングフィルタ794によってフィルタ処理され得る。結果として得られるフィルタ信号796は、復号ピクチャバッファ709に書込まれ得る。結果として得られるフィルタ信号796は、復号ピクチャを含み得る。復号ピクチャバッファ709は、出力718され得る復号ピクチャを提供し得る。場合によっては、709はフレームメモリとみなされ得る。
図3Bは、電子デバイス1802のビデオデコーダ1812の一構成を示すブロック図である。ビデオデコーダ1812は、エンハンスメントレイヤデコーダ1815と、ベースレイヤデコーダ1813とを含んでもよい。加えてビデオデコーダ812は、インタフェース1889と、解像度アップスケーリング1870とを含んでもよい。本明細書に記載されるとおり、たとえば図3Bのビデオデコーダは、スケーラブルビデオ符号化およびマルチビュービデオ符号化に対して好適である。
インタフェース1889は、符号化ビデオストリーム1885を受信し得る。符号化ビデオストリーム1885は、ベースレイヤ符号化ビデオストリームと、エンハンスメントレイヤ符号化ビデオストリームとからなっていてもよい。これら2つのストリームは別々に送られても、または一緒に送られてもよい。インタフェース1889は、符号化ビデオストリーム1885の一部またはすべてを、ベースレイヤデコーダ1813内のエントロピー復号ブロック1886に提供し得る。エントロピー復号ブロック1886の出力は、復号予測ループ1887に提供され得る。復号予測ループ1887の出力は、参照バッファ1888に提供され得る。参照バッファは、復号予測ループ1887にフィードバックを提供し得る。加えて参照バッファ1888は、復号ベースレイヤビデオストリーム1884を出力し得る。
加えてインタフェース1889は、符号化ビデオストリーム1885の一部またはすべてを、エンハンスメントレイヤデコーダ1815内のエントロピー復号ブロック1890に提供し得る。エントロピー復号ブロック1890の出力は、逆量子化ブロック1891に提供され得る。逆量子化ブロック1891の出力は、加算器1892に提供され得る。加算器1892は、逆量子化ブロック1891の出力と、予測選択ブロック1895の出力とを加算し得る。加算器1892の出力は、デブロッキングブロック1893に提供され得る。デブロッキングブロック1893の出力は、参照バッファ1894に提供され得る。参照バッファ1894は、復号エンハンスメントレイヤビデオストリーム1882を出力し得る。参照バッファ1894の出力は、イントラ予測因子1897にも提供され得る。エンハンスメントレイヤデコーダ1815は、動き補償1896を含み得る。動き補償1896は、解像度アップスケーリング1870の後に行われ得る。予測選択ブロック1895は、イントラ予測因子1897の出力と、動き補償1896の出力とを受信し得る。加えてデコーダは、たとえばインタフェース1889とともに、所望に応じて1つまたはそれ以上の符号化ピクチャバッファを含んでもよい。
図4は、送信電子デバイス802において使用され得るさまざまなコンポーネントを示す。本明細書に記載される電子デバイス102、602、702の1つまたはそれ以上が、図4に示される送信電子デバイス802に従って実現されてもよい。
送信電子デバイス802は、電子デバイス802の動作を制御するプロセッサ817を含む。プロセッサ817は、CPUと呼ばれることもある。リードオンリメモリ(read−only memory:ROM)、ランダムアクセスメモリ(random access memory:RAM)の両方、または情報を保存し得る任意のタイプのデバイスを含み得るメモリ811は、プロセッサ817に命令813a(例、実行可能な命令)およびデータ815aを提供する。メモリ811の一部は、不揮発性ランダムアクセスメモリ(non−volatile random access memory:NVRAM)をさらに含んでもよい。メモリ811は、プロセッサ817と電子通信していてもよい。
加えて、プロセッサ817内にも命令813bおよびデータ815bが存在してもよい。プロセッサ817にロードされた命令813bおよび/またはデータ815bはさらに、プロセッサ817による実行または処理のためにロードされた、メモリ811からの命令813aおよび/またはデータ815aを含み得る。本明細書において開示されるシステムおよび方法を実現するために、プロセッサ817によって命令813bが実行されてもよい。たとえば、上述の方法200、300、400、500の1つまたはそれ以上を実行するために、命令813bが実行可能であってもよい。
送信電子デバイス802は、他の電子デバイス(例、受信電子デバイス)と通信するための1つまたはそれ以上の通信インタフェース819を含んでもよい。通信インタフェース819は、有線通信技術、無線通信技術、またはその両方に基づいていてもよい。通信インタフェース819の例は、シリアルポート、パラレルポート、ユニバーサルシリアルバス(Universal Serial Bus:USB)、イーサネット(登録商標)アダプタ、IEEE1394バスインタフェース、小型コンピュータシステムインタフェース(small computer system interface:SCSI)バスインタフェース、赤外線(infrared:IR)通信ポート、Bluetooth(登録商標)無線通信アダプタ、および第3世代パートナーシッププロジェクト(3rd Generation Partnership Project:3GPP)仕様に従う無線トランシーバなどを含む。
送信電子デバイス802は、1つまたはそれ以上の出力デバイス823および1つまたはそれ以上の入力デバイス821を含んでもよい。出力デバイス823の例は、スピーカ、プリンタなどを含む。電子デバイス802に含まれ得る1つのタイプの出力デバイスは、ディスプレイデバイス825である。本明細書において開示される構成とともに使用されるディスプレイデバイス825は、たとえば陰極線管(cathode ray tube:CRT)、液晶ディスプレイ(liquid crystal display:LCD)、発光ダイオード(light−emitting diode:LED)、気体プラズマ、またはエレクトロルミネセンスなど、任意の好適な画像投影技術を使用してもよい。メモリ811に保存されたデータを、ディスプレイ825において示されるテキスト、グラフィックス、および/または動画に(適宜)変換するために、ディスプレイコントローラ827が提供されてもよい。入力デバイス821の例は、キーボード、マウス、マイクロホン、リモートコントロールデバイス、ボタン、ジョイスティック、トラックボール、タッチパッド、タッチスクリーン、ライトペンなどを含む。
送信電子デバイス802のさまざまなコンポーネントは、バスシステム829によってともに結合されており、バスシステム829は、データバスに加えて電力バス、制御信号バスおよびステータス信号バスを含み得る。しかし、明瞭にするために、図4においてはさまざまなバスがバスシステム829として示される。図4に示される送信電子デバイス802は、特定のコンポーネントのリストではなく、機能ブロック図である。
図5は、受信電子デバイス902において使用され得るさまざまなコンポーネントを示すブロック図である。本明細書に記載される電子デバイス102、602、702の1つまたはそれ以上が、図5に示される受信電子デバイス902に従って実現されてもよい。
受信電子デバイス902は、電子デバイス902の動作を制御するプロセッサ917を含む。プロセッサ917は、CPUと呼ばれることもある。リードオンリメモリ(ROM)、ランダムアクセスメモリ(RAM)の両方、または情報を保存し得る任意のタイプのデバイスを含み得るメモリ911は、プロセッサ917に命令913a(例、実行可能な命令)およびデータ915aを提供する。メモリ911の一部は、不揮発性ランダムアクセスメモリ(NVRAM)をさらに含んでもよい。メモリ911は、プロセッサ917と電子通信していてもよい。
加えて、プロセッサ917内にも命令913bおよびデータ915bが存在してもよい。プロセッサ917にロードされた命令913bおよび/またはデータ915bはさらに、プロセッサ917による実行または処理のためにロードされた、メモリ911からの命令913aおよび/またはデータ915aを含み得る。本明細書において開示されるシステムおよび方法を実現するために、プロセッサ917によって命令913bが実行されてもよい。たとえば、上述の方法200、300、400、500の1つまたはそれ以上を実行するために、命令913bが実行可能であってもよい。
受信電子デバイス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)、気体プラズマ、またはエレクトロルミネセンスなど、任意の好適な画像投影技術を使用してもよい。メモリ911に保存されたデータを、ディスプレイ925において示されるテキスト、グラフィックス、および/または動画に(適宜)変換するために、ディスプレイコントローラ927が提供されてもよい。入力デバイス921の例は、キーボード、マウス、マイクロホン、リモートコントロールデバイス、ボタン、ジョイスティック、トラックボール、タッチパッド、タッチスクリーン、ライトペンなどを含む。
受信電子デバイス902のさまざまなコンポーネントは、バスシステム929によってともに結合されており、バスシステム929は、データバスに加えて電力バス、制御信号バスおよびステータス信号バスを含み得る。しかし、明瞭にするために、図5においてはさまざまなバスがバスシステム929として示される。図5に示される受信電子デバイス902は、特定のコンポーネントのリストではなく、機能ブロック図である。
図6は、メッセージを送るためのシステムおよび方法が実現され得る電子デバイス1002の一構成を示すブロック図である。電子デバイス1002は、符号化手段1031および送信手段1033を含む。符号化手段1031および送信手段1033は、ビットストリーム1014を生成し得る。上記図4は、図6の具体的な装置構造の一例を示すものである。ソフトウェアによってDSPが実現されてもよい。
図7は、ビットストリーム1114をバッファリングするためのシステムおよび方法が実現され得る電子デバイス1102の一構成を示すブロック図である。電子デバイス1102は、受信手段1135および復号手段1137を含み得る。受信手段1135および復号手段1137は、ビットストリーム1114を受信し得る。上記図5は、図7の具体的な装置構造の一例を示すものである。ソフトウェアによってDSPが実現されてもよい。
参照ピクチャセット(reference picture set:RPS)に対する復号プロセスが呼び出され得る。参照ピクチャセットとは、あるピクチャに関連する参照ピクチャのセットであり、復号順で関連ピクチャの前にある、関連ピクチャまたは復号順で関連ピクチャに後続する任意のピクチャのインター予測に用いられ得るすべての参照ピクチャからなる。
ビデオのビットストリームは、一般的にネットワーク抽象化レイヤ(Network Abstraction Layer:NAL)ユニットと呼ばれる論理データパケットに入れられるシンタックス構造を含んでもよい。各NALユニットは、関連するデータペイロードの目的を識別するための、たとえば2バイトNALユニットヘッダ(例、16ビット)などのNALユニットヘッダを含む。たとえば、各符号化スライス(および/またはピクチャ)は、1つまたはそれ以上のスライス(および/またはピクチャ)NALユニットにおいて符号化されてもよい。たとえば補足エンハンスメント情報、時間サブレイヤアクセス(temporal sub−layer access:TSA)ピクチャの符号化スライス、段階的時間サブレイヤアクセス(step−wise temporal sub−layer access:STSA)ピクチャの符号化スライス、符号化スライス非TSA、非STSAトレイリングピクチャ、ブロークンリンクアクセスピクチャの符号化スライス、瞬時復号リフレッシュピクチャの符号化スライス、クリーンランダムアクセスピクチャの符号化スライス、復号可能リーディングピクチャの符号化スライス、廃棄タグ付きピクチャの符号化スライス、ビデオパラメータセット、シーケンスパラメータセット、ピクチャパラメータセット、アクセスユニットデリミタ、シーケンスの最後、ビットストリームの最後、フィラーデータ、および/またはシーケンスエンハンスメント情報メッセージなど、他のカテゴリのデータに対して、他のNALユニットが含まれてもよい。表(1)は、NALユニットコードおよびNALユニットタイプクラスの一例を示すものである。所望に応じて、他のNALユニットタイプが含まれてもよい。加えて、表(1)に示されるNALユニットに対するNALユニットタイプ値の入れ替えおよび再割り当てが行われ得ることが理解されるべきである。さらに、付加的なNALユニットタイプが追加されてもよい。さらに、いくつかのNALユニットタイプが除去されてもよい。
イントラランダムアクセスポイント(intra random access point:IRAP)ピクチャとは、表(1)に示されるとおり、そのピクチャに対する各ビデオ符号化レイヤNALユニットが、両端値を含めてBLA_W_LPからRSV_IRAP_VCL23までの範囲内のnal_unit_typeを有する、符号化ピクチャである。IRAPピクチャは、イントラ(Intra)符号化(I)スライスのみを含む。瞬時復号リフレッシュ(instantaneous decoding refresh:IDR)ピクチャとは、表(1)に示されるとおり、そのピクチャに対する各ビデオ符号化レイヤNALユニットが、IDR_W_RADLまたはIDR_N_LPに等しいnal_unit_typeを有する、IRAPピクチャである。瞬時復号リフレッシュ(IDR)ピクチャはIスライスのみを含み、かつビットストリームにおいて復号順で第1のピクチャであってもよいし、またはビットストリームにおいて後で出現してもよい。各IDRピクチャは、復号順で符号化ビデオシーケンス(coded video sequence:CVS)の第1のピクチャである。ブロークンリンクアクセス(broken link access:BLA)ピクチャとは、表(1)に示されるとおり、そのピクチャに対する各ビデオ符号化レイヤNALユニットが、BLA_W_LP、BLA_W_RADL、またはBLA_N_LPに等しいnal_unit_typeを有する、IRAPピクチャである。BLAピクチャはIスライスのみを含み、かつビットストリームにおいて復号順で第1のピクチャであってもよいし、またはビットストリームにおいて後で出現してもよい。各BLAピクチャは新たな符号化ビデオシーケンスを開始し、復号プロセスに対してIDRピクチャと同じ効果を有する。しかし、BLAピクチャは空でない参照ピクチャセットを示すシンタックスエレメントを含む。
表(2)を参照すると、NALユニットヘッダシンタックスは、2バイトすなわち16ビットのデータを含んでもよい。第1のビットは「forbidden_zero_bit」であり、このビットはNALユニットの最初に常に0に設定される。次の6ビットは「nal_unit_type」であり、この6ビットは表(1)に示されるとおり、NALユニットに含まれるローバイトシーケンスペイロード(raw byte sequence payloads)(「RBSP」)データ構造のタイプを示す。次の6ビットは「nuh_layer_id」であり、この6ビットはレイヤの識別子を示す。場合によっては、これらの6ビットが代わりに「nuh_reserved_zero_6bits」と示されることもある。規格の基本仕様において、nuh_reserved_zero_6bitsは0に等しくてもよい。スケーラブルビデオ符号化および/またはシンタックス拡張において、nuh_layer_idは、この特定のNALユニットがこれら6ビットの値によって識別されるレイヤに属することを示してもよい。次のシンタックスエレメントは「nuh_temporal_id_plus1」である。nuh_temporal_id_plus1マイナス1は、NALユニットに対する時間識別子を示してもよい。変数時間識別子TemporalIdは、TemporalId=nuh_temporal_id_plus1−1と示され得る。時間識別子TemporalIdは、時間サブレイヤを識別するために用いられる。変数HighestTidは、復号される最高時間サブレイヤを識別する。
図8Aを参照すると、前述のとおり、NALユニットヘッダシンタックスは、2バイトすなわち16ビットのデータを含んでもよい。第1のビットは「forbidden_zero_bit」であり、このビットはNALユニットの最初に常に0に設定される。次の6ビットは「nal_unit_type」であり、この6ビットはNALユニットに含まれるローバイトシーケンスペイロード(「RBSP」)データ構造のタイプを示す。次の6ビットは「nuh_reserved_zero_6bits」である。規格の基本仕様において、nuh_reserved_zero_6bitsは0に等しくてもよい。所望に応じて、他の値のnuh_reserved_zero_6bitsが示されてもよい。デコーダは、規格の基本仕様に基づいてストリームを処理するときに、0に等しくない値のnuh_reserved_zero_6bitsを有するすべてのNALユニットを無視(すなわち、ビットストリームから除去して廃棄)してもよい。スケーラブルまたはその他の拡張において、nuh_reserved_zero_6bitsは、スケーラブルビデオ符号化および/またはシンタックス拡張をシグナリングするために、その他の値を示し得る。場合によっては、シンタックスエレメントnuh_reserved_zero_6bitsがreserved_zero_6bitsと呼ばれることがある。場合によっては、図8Bおよび図8Cに示されるとおり、シンタックスエレメントnuh_reserved_zero_6bitsがlayer_id_plus1またはlayer_idと呼ばれることがある。この場合、エレメントlayer_idはlayer_id_plus1マイナス1となる。この場合、このエレメントは、スケーラブル符号化ビデオのレイヤに関係する情報をシグナリングするために使用され得る。次のシンタックスエレメントは「nuh_temporal_id_plus1」である。nuh_temporal_id_plus1マイナス1は、NALユニットに対する時間識別子を示してもよい。変数時間識別子TemporalIdは、TemporalId=nuh_temporal_id_plus1−1と示され得る。
図9を参照すると、一般的なNALユニットシンタックス構造が示される。図8のNALユニットヘッダ2バイトシンタックスは、図9のnal_unit_header()に対する参照に含まれる。残りのNALユニットシンタックスは、主にRBSPに関する。
「nuh_reserved_zero_6bits」を用いるための既存の技術の1つは、nuh_reserved_zero_6bitsの6ビットを別個のビットフィールドに分割する、すなわち依存性ID、品質ID、ビューID、および深さフラグのうちの1つまたはそれ以上に分割することによって、スケーラブルビデオ符号化情報をシグナリングすることであり、このビットフィールドの各々は、スケーラブル符号化ビデオの異なるレイヤの識別を示す。したがってこの6ビットは、この特定のNALユニットがスケーラブル符号化技術のどのレイヤに属するかを示す。次いで、たとえば図10に示されるビデオパラメータセット(video parameter set)(「VPS」)拡張シンタックス(「scalability_type」)などのデータペイロードにおいて、そのレイヤに関する情報が定められる。図10のVPS拡張シンタックスは、符号化ビデオシーケンスにおいて使用されるスケーラビリティタイプと、NALユニットヘッダにおけるlayer_id_plus1(またはlayer_id)を通じてシグナリングされるディメンジョンとを示すスケーラビリティタイプ(シンタックスエレメントscalability_type)に対して4ビットを含む。スケーラビリティタイプが0に等しいとき、符号化ビデオシーケンスは基本仕様に適合し、よってすべてのNALユニットのlayer_id_plus1は0に等しく、エンハンスメントレイヤまたはビューに属するNALユニットは存在しない。より高い値のスケーラビリティタイプは、図11に示されるとおりに解釈される。
layer_id_dim_len[i]は、i番目のスケーラビリティディメンジョンIDのビット長を示す。0から7の範囲のすべてのi値に対するlayer_id_dim_len[i]値の合計は6以下である。vps_extension_byte_alignment_reserved_zero_bitは0である。vps_layer_id[i]は、以下のレイヤ依存性情報が適用されるi番目のレイヤのlayer_idの値を示す。num_direct_ref_layers[i]は、i番目のレイヤが直接依存するレイヤの数を示す。ref_layer_id[i][j]は、i番目のレイヤが直接依存するj番目のレイヤを識別する。
この態様で、既存の技術は、図11に挙げられるスケーラビリティタイプにビットを割り当てるために、NALユニットおよびビデオパラメータセットにおけるスケーラビリティ識別子をシグナリングする。次いで、図11は各スケーラビリティタイプに対して、ディメンジョンがいくつとりうるかを定める。たとえば、スケーラビリティタイプ1は2つのディメンジョン(すなわち、空間および品質)を有する。各ディメンジョンに対して、layer_id_dim_len[i]は、これら2つのディメンジョンの各々に割り当てられるビットの数を定め、layer_id_dim_len[i]のすべての値の総計は6以下であり、6はNALユニットヘッダのnuh_reserved_zero_6bitsにおけるビット数である。よって組み合わせによって、この技術はどのタイプのスケーラビリティが使用されているか、およびNALユニットヘッダの6ビットがスケーラビリティにどのように割り当てられるかを識別する。
以前に説明されたとおり、スケーラブルビデオ符号化とは、1つまたはそれ以上のサブセットビットストリームをさらに含むビデオビットストリームを符号化する技術である。サブセットビデオビットストリームは、サブセットビットストリームに必要とされる帯域幅を低減させるために、より大きなビデオからパケットを落とすことによって導出され得る。サブセットビットストリームは、より低い空間解像度(より小さいスクリーン)、より低い時間解像度(より低いフレームレート)、またはより低品質のビデオ信号を表し得る。たとえば、ビデオビットストリームは5つのサブセットビットストリームを含んでもよく、各々のサブセットビットストリームはベースビットストリームに付加的な内容を加える。ハンヌクセラ(Hannuksela)ら、「高効率ビデオ符号化(HEVC)のスケーラブル拡張のためのテストモデル(Test Model for Scalable Extensions of High Efficiency Video Coding(HEVC))」JCTVC−L0453、上海(Shanghai)、2012年10月は、本明細書においてその全体が引用により援用される。チェン(Chen)ら、「SHVCドラフトテキスト1(SHVC Draft Text 1)」、JCTVC−L1008、ジュネーブ(Geneva)、2013年3月は、本明細書においてその全体が引用により援用される。J.チェン、J.ボイス(Boyce)、Y.イェ(Ye)、M ハンヌクセラ、SHVCドラフト3(SHVC Draft 3)、JCTVC−N1008、ウィーン(Vienna)、2013年8月;およびY.チェン、Y.−K.ワン(Wang)、A.K.ラマスブロマニアン(Ramasubromanian)、MV−HEVC/SHVC HLS:クロスレイヤPOCアライメント(Cross−layer POC Alignment)、JCTVC−N0244、ウィーン、2013年7月の各々は、本明細書においてその全体が引用により援用される。
以前に説明されたとおり、マルチビュービデオ符号化とは、代替ビューを表す1つまたはそれ以上の他のビットストリームをさらに含むビデオビットストリームを符号化する技術である。たとえば、多重ビューは立体ビデオのための一対のビューであってもよい。たとえば、多重ビューは異なる視点からの同じシーンの多重ビューを表してもよい。一般的に、多重ビューは大量のインタービュー統計的依存性を含む。なぜなら、それらの画像は異なる視点からの同じシーンの画像だからである。したがって、時間およびインタービュー予測を組み合わせることによって、効率的なマルチビュー符号化を達成できる。たとえば、時間的に関係するフレームだけでなく、近傍の視点のフレームからも効率的にフレームが予測され得る。ハンヌクセラら、「スケーラブルおよびマルチビュー拡張のための共通仕様テキスト(Common specification text for scalable and multi−view extensions)」、JCTVC−L0452、ジュネーブ、2013年1月は、本明細書においてその全体が引用により援用される。テック(Tech)ら、「MV−HEVCドラフトテキスト3(MV−HEVC Draft Text 3)(ISO/IEC 23008−2:201x/PDAM2)」、JCT3V−C1004_d3、ジュネーブ、2013年1月は、本明細書においてその全体が引用により援用される。G.テック、K.ウェグナー(Wegner)、Y.チェン、M.ハンヌクセラ、J.ボイス、「MV−HEVCドラフトテキスト5(MV−HEVC Draft Text 5)(ISO/IEC 203008−2:201x/PDAM2)」、JCTVC−E1004、ウィーン、2013年8月は、本明細書においてその全体が引用により援用される。
チェンら、「SHVCドラフトテキスト1(SHVC Draft Text 1)」、JCTVC−L1008、ジュネーブ、2013年1月;ハンヌクセラら、「高効率ビデオ符号化(HEVC)のスケーラブル拡張のためのテストモデル(Test Model for Scalable Extensions of High Efficiency Video Coding(HEVC))」、JCTVC−L0453−spec−text、上海、2012年10月;およびハンヌクセラ、「高効率ビデオ符号化(HEVC)のマルチビュー拡張のためのドラフトテキスト(Draft Text for Multiview Extension of High Efficiency Video Coding(HEVC))」、JCTVC−L0452−spec−text−r1、上海、2012年10月の各々は、本明細書においてその全体が引用により援用され、各々は出力順復号ピクチャバッファ(DPB)を有し、出力順復号ピクチャバッファ(DPB)は、DPBからのピクチャ0の出力および除去に対するsps_max_num_reorder_pics[HighestTid]、sps_max_latency_increase_plus1[HighestTid]、およびsps_max_dec_pic_buffering[HighestTid]シンタックスエレメントの使用に基づいて動作する。この情報は、ベースレイヤに対するビデオパラメータセットにおいてシグナリングされ、もしあればエンハンスメントレイヤを含むビデオ内容に対するバッファリング情報を提供する。
図12を参照すると、スケーラブル高効率符号化(scalable high efficiency coding)(「SVHC」)を符号化するとき、ベースレイヤは1つまたはそれ以上のSPSを含んでもよく、さらに1つまたはそれ以上のPPSを含んでもよい。加えて、各エンハンスメントレイヤは1つまたはそれ以上のSPSを含んでもよく、さらに1つまたはそれ以上のPPSを含んでもよい。図12において、SPS+は1つまたはそれ以上のSPS、PPS+は1つまたはそれ以上のPPSが特定のベースまたはエンハンスメントレイヤに対してシグナリングされることを示す。この態様で、ベースレイヤおよび1つまたはそれ以上のエンハンスメントレイヤの両方を有するビデオビットストリームに対して、SPSおよびPPSデータセットの集合的な数が、こうしたデータを送信するために必要とされる帯域幅とともに有意となり、この帯域幅は多くの適用において制限される傾向がある。こうした帯域幅の制限があるために、送信する必要のあるデータを制限し、かつそのデータをビットストリーム内に効果的な態様で位置付けることが望ましい。各レイヤは、あらゆる特定の時間にアクティブにされる1つのSPSおよび/またはPPSを有してもよく、かつ所望に応じて異なるアクティブSPSおよび/またはPPSを選択してもよい。
入力ピクチャは複数の符号化ツリーブロック(例、本明細書においては一般的にブロックと呼ぶ)を含んでもよく、1つまたはいくつかのスライスに分割されてもよい。エンコーダおよびデコーダにおいて用いられる参照ピクチャが同じであり、かつデブロッキングフィルタ処理がスライス境界を越えた情報を使用しないとき、あるスライスが表すピクチャの区域内のサンプルの値は、他のスライスからのデータを使用することなく適切に復号され得る。したがって、あるスライスに対するエントロピー復号およびブロック再構築は、他のスライスに依存しない。特に、エントロピー符号化状態は、各スライスの最初にリセットされてもよい。エントロピー復号および再構築の両方に対する近傍の利用可能性を定めるとき、他のスライスのデータは利用不可能とマーク付けされてもよい。スライスは、並行してエントロピー復号および再構築されてもよい。スライスの境界を越えたイントラ予測および動きベクトル予測は許可されないことが好ましい。これに対し、デブロッキングフィルタ処理は、スライス境界を越えた情報を使用してもよい。
図13は、水平方向に11ブロック、鉛直方向に9ブロックを含む例示的ビデオピクチャ2090を示す(9つの例示的ブロックが2091〜2099とラベル付けされる)。図13は、3つの例示的スライスを示す。すなわち、「SLICE#0」と表示される第1のスライス2080、「SLICE#1」と表示される第2のスライス2081、および「SLICE#2」と表示される第3のスライス2082である。デコーダは、3つのスライス2080、2081、2082を並行して復号および再構築し得る。各々のスライスは、連続的な態様で走査線の順序で送信されてもよい。各スライスに対する復号/再構築プロセスの開始時に、コンテキストモデルは初期化またはリセットされ、他のスライスのブロックは、エントロピー復号およびブロック再構築の両方に対して利用不可能とマーク付けされる。コンテキストモデルは一般的に、エントロピーエンコーダおよび/またはデコーダの状態を表す。よって、たとえば「SLICE#1」内の2093とラベル付けされたブロックなどのブロックに対して、「SLICE#0」内のブロック(たとえば2091および2092とラベル付けされたブロック)は、コンテキストモデル選択または再構築のために使用され得ない。一方で、たとえば「SLICE#1」内の2095とラベル付けされたブロックなどのブロックに対して、「SLICE#1」内の他のブロック(たとえば2093および2094とラベル付けされたブロック)は、コンテキストモデル選択または再構築のために使用され得る。したがって、エントロピー復号およびブロック再構築は、スライス内で連続的に進行する。スライスがフレキシブルブロック順序付け(flexible block ordering:FMO)を用いるものと定められない限り、スライス内のブロックはラスタスキャン順に処理される。
フレキシブルブロック順序付けは、ピクチャがどのようにスライスに分割されるかを修正するためにスライスグループを定める。スライスグループ内のブロックはブロック対スライスグループマップによって定められ、このブロック対スライスグループマップは、スライスヘッダ内のピクチャパラメータセットおよび付加的情報の内容によってシグナリングされる。ブロック対スライスグループマップは、ピクチャ内の各ブロックに対するスライスグループ識別番号からなる。スライスグループ識別番号は、関連ブロックがどのスライスグループに属するかを指定する。各スライスグループは1つまたはそれ以上のスライスに分割されてもよく、スライスとは、特定のスライスグループのブロックのセット内でラスタスキャン順に処理される、同じスライスグループ内の一連のブロックである。エントロピー復号およびブロック再構築は、スライスグループ内で連続的に進行する。
図14は、3つのスライスグループへの例示的なブロック割り当てを示す。3つのスライスグループとは、「SLICE GROUP#0」と表示される第1のスライスグループ2083、「SLICE GROUP#1」と表示される第2のスライスグループ2084、および「SLICE GROUP#2」と表示される第3のスライスグループ2085である。これらのスライスグループ2083、2084、2085は、ピクチャ2090内の2つの前景領域と、背景領域とにそれぞれ関連付けられてもよい。
図14に示されるスライスの配置は、ラスタスキャンまたはラスタスキャン順としても公知である画像スキャン順での一対のブロック間で各スライスを定めることに限定され得る。このスキャン順スライスの配置は計算上効率的であるが、高効率の並行符号化および復号を受けにくい。さらに、このスライスのスキャン順定義は、符号化効率のために非常に好適な共通の特徴を有すると考えられる画像のより小さな局部的領域をともにグループ化しない傾向がある。図14に示されるスライス2083、2084、2085の配置は、自身の配置においては柔軟性が高いが、高効率の並行符号化または復号を受けにくい。さらに、この柔軟性の高いスライスの定義は、デコーダにおいて実現するための計算が複雑である。
図15を参照すると、タイル技術は、画像を(正方形を含む)矩形領域のセットに分割する。各タイル内のブロック(いくつかのシステムにおいては、代替的に最大符号化ユニットまたは符号化ツリーブロックと呼ばれる)は、ラスタスキャン順に符号化および復号される。タイルの配列も、同様にラスタスキャン順に符号化および復号される。したがって、任意の好適な数の列境界(例、0またはそれ以上)が存在してもよく、かつ任意の好適な数の行境界(例、0またはそれ以上)が存在してもよい。よって、フレームはたとえば図15に示される1つのスライスなどの、1つまたはそれ以上のスライスを定め得る。いくつかの実施形態において、異なるタイルに位置するブロックは、イントラ予測、動き補償、エントロピー符号化コンテキスト選択、または近傍ブロック情報に依拠するその他のプロセスに利用できない。
図16を参照すると、画像を3つの矩形の列のセットに分割するタイル技術が示される。各タイル内のブロック(いくつかのシステムにおいては、代替的に最大符号化ユニットまたは符号化ツリーブロックと呼ばれる)は、ラスタスキャン順に符号化および復号される。タイルも同様に、ラスタスキャン順に符号化および復号される。タイルのスキャン順において1つまたはそれ以上のスライスが定められてもよい。各々のスライスは独立に復号可能である。たとえば、スライス1はブロック1〜9を含むものと定められてもよく、スライス2はブロック10〜28を含むものと定められてもよく、スライス3は3つのタイルにまたがるブロック29〜126を含むものと定められてもよい。タイルの使用によって、フレームのより局部的領域でデータを処理することによって、符号化効率が高まる。
図17を参照すると、ベースレイヤおよびエンハンスメントレイヤの各々はタイルを含んでもよく、各タイルは集合的にピクチャまたはピクチャの一部を形成する。ベースレイヤおよび1つまたはそれ以上のエンハンスメントレイヤからの符号化ピクチャは、集合的にアクセスユニットを形成し得る。アクセスユニットはNALユニットのセットとして定義されてもよく、それらのNALユニットは、指定された分類規則に従って互いに関連付けられ、復号順に連続しており、および/または、(ピクチャ順序カウントもしくは別様で)同じ出力時間に関連するすべての符号化ピクチャのVCL NALユニットと、VCL NALユニットに関連する非VCL NALユニットとを含む。VCL NALは、ネットワーク抽象化レイヤのビデオ符号化レイヤである。同様に、符号化ピクチャはピクチャの符号化表現として定義されてもよく、アクセスユニット内に特定の値のnuh_layer_idを有するVCL NALユニットを含み、かつそのピクチャのすべての符号化ツリーユニットを含む。付加的な説明は、B.ブロス(Bros)、W−J.ハン(Han)、J−R.オーム(Ohm)、G.J.サリバン(Sullivan)、およびT−.ウィーガンド(Wiegand)、「高効率ビデオ符号化(HEVC)テキスト仕様ドラフト10(High efficiency video coding(HEVC)text specification draft 10)」、JCTVC−L1003、ジュネーブ、2013年1月;J.チェン、J.ボイス、Y.イェ、M.M.ハンヌクセラ、「SHVCドラフトテキスト2(SHVC Draft Text 2)」、JCTVC−M1008、仁川(Incheon)、2013年5月;G.テック、K.ウェグナー、Y.チェン、M.ハンヌクセラ、J.ボイス、「MV−HEVCドラフトテキスト4(MV−HEVC Draft Text 4)(ISO/IEC 23008−2:201x/PDAM2)」、JCTVC−D1004、仁川、2013年5月に記載されており、その文献の各々は本明細書においてその全体が引用により援用される。
図18A〜18Dを参照すると、各スライスはスライスセグメントヘッダを含み得る。場合によっては、スライスセグメントヘッダがスライスヘッダと呼ばれることもある。スライスセグメントヘッダ内には、インターレイヤ予測に用いられるシンタックスエレメントが含まれる。このインターレイヤ予測は、そのスライスが他のどのレイヤに依存し得るかを定める。言換えると、このインターレイヤ予測は、そのスライスが他のどのレイヤを自身の参照レイヤとして用い得るかを定める。参照レイヤは、サンプル予測および/または動きファイル予測のために用いられ得る。たとえば図19を参照すると、エンハンスメントレイヤ3は、エンハンスメントレイヤ2およびベースレイヤ0に依存し得る。この依存性の関係を、たとえば[2,0]などのリストの形で表現してもよい。
direct_dependency_flag[i][j]が0に等しいとき、インデックスjを有するレイヤはインデックスiを有するレイヤに対する直接参照レイヤではないことが示されることに基づいて、レイヤに対するNumDirectRefLayersが導出されてもよい。direct_dependency_flag[i][j]が1に等しいことは、インデックスjを有するレイヤがインデックスiを有するレイヤに対する直接参照レイヤであり得ることを示す。0からvps_max_layers_minus1の範囲内のiおよびjに対するdirect_dependency_flag[i][j]が存在しないとき、direct_dependency_flag[i][j]は0に等しいと推測される。
direct_dep_type_len_minus2プラス2は、direct_dependency_type[i][j]シンタックスエレメントのビット数を示す。このバージョンのこの仕様に適合するビットストリームにおいて、direct_dep_type_len_minus2の値は0に等しくなる。このバージョンのこの仕様におけるdirect_dep_type_len_minus2の値は0に等しくなるが、デコーダは、両端値を含めて0から30までの範囲内の、その他の値のdirect_dep_type_len_minus2がシンタックスに出現することを可能にする。
変数NumSamplePredRefLayers[i]、NumMotionPredRefLayers[i]、SamplePredEnabledFlag[i][j]、およびMotionPredEnabledFlag[i][j]を導出するために、direct_dependency_type[i][j]が用いられる。このバージョンのこの仕様に適合するビットストリームにおいて、direct_dependency_type[i][j]は、両端値を含めて0から2までの範囲内となる。このバージョンのこの仕様において、direct_dependency_type[i][j]の値は両端値を含めて0から2までの範囲内となるが、デコーダは、両端値を含めて3から232−2までの範囲内のdirect_dependency_type[i][j]の値がシンタックスに出現することを可能にする。
変数NumSamplePredRefLayers[i]、NumMotionPredRefLayers[i]、SamplePredEnabledFlag[i][j]、MotionPredEnabledFlag[i][j]、NumDirectRefLayers[i]、DirectRefLayerIdx[i][j]、RefLayerId[i][j]、MotionPredRefLayerId[i][j]、およびSamplePredRefLayerId[i][j]は、以下のとおりに導出される。
direct_dependency_flag[i][j]、direct_dep_type_len_minus2、direct_dependency_type[i][j]は、図20Aおよび図20Bに示されるvps_extensionシンタックスに含まれ、このシンタックスは、符号化ビデオシーケンスに対するシンタックスを提供するVPSシンタックスにおける参照によって含まれる。
典型的に、ビットストリーム内でシグナリングされる必要がある、参照されるレイヤの数を低減することが望ましく、こうした低減を実現するために、スライスセグメントヘッダ内のその他のシンタックスエレメントが使用されてもよい。その他のシンタックスエレメントは、inter_layer_pred_enabled_flag、num_inter_layer_ref_pics_minus1、および/またはinter_layer_pred_layer_idc[i]を含み得る。これらのシンタックスエレメントは、スライスセグメントヘッダにおいてシグナリングされ得る。
inter_layer_pred_enabled_flagが1に等しいことは、現ピクチャの復号にインターレイヤ予測が用いられ得ることを示す。inter_layer_pred_enabled_flagが0に等しいことは、現ピクチャの復号にインターレイヤ予測が用いられないことを示す。存在しないとき、inter_layer_pred_enabled_flagの値は0に等しいと推測される。
num_inter_layer_ref_pics_minus1プラス1は、インターレイヤ予測のために現ピクチャの復号において用いられ得るピクチャの数を示す。num_inter_layer_ref_pics_minus1シンタックスエレメントの長さは、Ceil(Log2(NumDirectRefLayers[nuh_layer_id]))ビットである。num_inter_layer_ref_pics_minus1の値は、両端値を含めて0からNumDirectRefLayers[nuh_layer_id]−1までの範囲内となる。
変数NumActiveRefLayerPicsは、次のとおりに導出される。
符号化ピクチャのすべてのスライスは、同じ値のNumActiveRefLayerPicsを有する。
inter_layer_pred_layer_idc[i]は、インターレイヤ予測のために現ピクチャによって使用され得るi番目のピクチャのnuh_layer_idを表す変数RefPicLayerId[i]を示す。シンタックスエレメントinter_layer_pred_layer_idc[i]の長さは、Ceil(Log2(NumDirectRefLayers[nuh_layer_id]))ビットである。inter_layer_pred_layer_idc[i]の値は、両端値を含めて0からNumDirectRefLayers[nuh_layer_id]−1までの範囲内であり得る。存在しないとき、inter_layer_pred_layer_idc[i]の値は0に等しいと推測される。
たとえば、システムはさまざまなシンタックスエレメント、特にVPSにおけるdirect_dependency_flag[i][j]をシグナリングしてもよく、direct_dependency_flag[i][j]は、レイヤ3に対するインターレイヤ参照ピクチャセットが[2,0]となるようにする。次いでシステムは、[2]などのスライスセグメントヘッダ内のシンタックスエレメントなどの付加的なシンタックスエレメントを使用することによってインターレイヤ参照ピクチャセットをさらに精密化してもよいし、[0]などの付加的なシンタックスエレメントを使用することによってインターレイヤ参照ピクチャセットをさらに精密化してもよいし、または空集合である[]などの付加的なシンタックスエレメントを使用することによってインターレイヤ参照ピクチャセットをさらに精密化してもよい。しかし、エンコーダの設計によっては、[2,0]の参照ピクチャセットが[2,0]としてシグナリングされることもある。
図21を参照すると、特定のレイヤに対する直接参照レイヤの数(シンタックスにおけるNumDirectRefLayers[num_layer_id])と、同じ特定のレイヤに対するアクティブ参照レイヤの数(シンタックスにおけるNumActiveRefLayerPics)との比較を含むように、スライスセグメントヘッダが修正されてもよい。特に、この比較は「if(NumActiveRefLayerPics!=NumDirectRefLayers[nuh_layer_id])」としてシグナリングされてもよい。よって、もしこれらの数の両方が同数のレイヤを示していれば、ビットストリームにおいてinter_layer_pred_layer_idc[i]をシグナリングする必要はなく、代わりにすでにシグナリングされた他のシンタックスエレメントに基づいて、こうした値が決定/推測され得る。
図22を参照すると、inter_layer_pred_layer_idc[i]に対する値を、それらの値をシグナリングせずに推測するために、図21と類似の態様でスライスセグメントヘッダシグナリングが修正されてもよい。
もしNumActiveRefLayerPicsがNumDirectRefLayers[nuh_layer_id]に等しければ、inter_layer_pred_layer_idc[i]の値は次のとおりに推測され得る。
存在せず、かつNumActiveRefLayerPicsがNumDirectRefLayers[nuh_layer_id]に等しくないとき、inter_layer_pred_layer_idc[i]の値は0に等しいと推測される。
iが0より大きいとき、inter_layer_pred_layer_idc[i]は、inter_layer_pred_layer_idc[i−1]よりも大きくてもよい。
両端値を含めて0からNumActiveRefLayerPics−1までの範囲内のiの各値に対するRefPicLayerId[i]、NumActiveMotionPredRefLayers、および両端値を含めて0からNumActiveMotionPredRefLayers−1までの範囲内のjの各値に対するActiveMotionPredRefLayerId[j]の変数は、以下のとおりに導出され得る。
ピクチャのすべてのスライスは、両端値を含めて0からNumActiveRefLayerPics−1までの範囲内のiの各値に対して、同じ値のinter_layer_pred_layer_idc[i]を有し得る。
VPS拡張において、max_tid_il_ref_pics_plus1[i]がシグナリングされる。max_tid_il_ref_pics_plus1[i]が0に等しいことは、CVS内で、layer_id_in_nuh[i]に等しいnuh_layer_idを有する非IRAPピクチャが、インターレイヤ予測のための参照として使用されないことを示す。max_tid_il_ref_pics_plus1[i]が0より大きいことは、CVS内で、layer_id_in_nuh[i]に等しいnuh_layer_idおよびmax_tid_il_ref_pics_plus1[i]−1より大きいTemporalIdを有するピクチャが、インターレイヤ予測のための参照として使用されないことを示す。存在しないとき、max_tid_il_ref_pics_plus1[i]は未指定である。
両端値を含めて0からNumActiveRefLayerPics−1までの範囲内のiの各値に対して、次の2つの条件のいずれかが真であり得ることがビットストリーム適合の要件であってもよい。
max_tid_il_ref_pics_plus1[LayerIdxInVps[RefPicLayerId[i]]]の値がTemporalIdより大きい。
max_tid_il_ref_pics_plus1[LayerIdxInVps[RefPicLayerId[i]]]およびTemporalIdの値がどちらも0に等しく、かつRefPicLayerId[i]に等しいnuh_layer_idを有する現アクセスユニット内のピクチャがIRAPピクチャである。
別の実施形態においては、両端値を含めて0からNumActiveRefLayerPics−1までの範囲内のiの各値に対して、次の2つの条件のいずれかが真であり得ることがビットストリーム適合の要件であってもよい。
max_tid_il_ref_pics_plus1[LayerIdxInVps[RefPicLayerId[i]]]の値が、RefPicLayerId[i]に等しいnuh_layer_idを有する現アクセスユニット内のピクチャのTemporalIdより大きい。
max_tid_il_ref_pics_plus1[LayerIdxInVps[RefPicLayerId[i]]]の値が0に等しく、かつRefPicLayerId[i]に等しいnuh_layer_idを有する現アクセスユニット内のピクチャがIRAPピクチャである。
両端値を含めて0からNumActiveRefLayerPics−1までの範囲内のiの各値に対して、SamplePredEnabledFlag[nuh_layer_id][RefPicLayerId[i]]またはMotionPredEnabledFlag[nuh_layer_id][RefPicLayerId[i]]の値が1に等しくなることが、ビットストリーム適合の要件であってもよい。
図23を参照すると、スライスセグメントヘッダをシグナリングするための別の実施形態が示される。
図23に示される実施形態に対して、inter_layer_pred_layer_mask[i]が1に等しいことは、レイヤRefLayerId[nuh_layer_id][i]がインターレイヤ予測のために現ピクチャによって使用され得ることを示す。inter_layer_pred_layer_mask[i]が0に等しいことは、レイヤRefLayerId[nuh_layer_id][i]がインターレイヤ予測のために現ピクチャによって使用されないことを示す。
存在しないとき、inter_layer_pred_layer_mask[i]の値は0に等しいと推測される。
両端値を含めて0からNumActiveRefLayerPics−1までの範囲内のiの各値に対するRefPicLayerId[i]、NumActiveMotionPredRefLayers、および両端値を含めて0からNumActiveMotionPredRefLayers−1までの範囲内のjの各値に対するActiveMotionPredRefLayerId[j]の変数は、次のとおりに導出される。
ピクチャのすべてのスライスは、両端値を含めて0からNumDirectRefLayers[nuh_layer_id]−1までの範囲内のiの各値に対して、同じ値のinter_layer_pred_layer_mask[i]を有し得る。
両端値を含めて0からNumActiveRefLayerPics−1までの範囲内のiの各値に対して、次の2つの条件のいずれかが真となることがビットストリーム適合の要件であってもよい。
max_tid_il_ref_pics_plus1[LayerIdxInVps[RefPicLayerId[i]]]の値がTemporalIdより大きい。
max_tid_il_ref_pics_plus1[LayerIdxInVps[RefPicLayerId[i]]]およびTemporalIdの値がどちらも0に等しく、かつRefPicLayerId[i]に等しいnuh_layer_idを有する現アクセスユニット内のピクチャがIRAPピクチャである。
両端値を含めて0からNumActiveRefLayerPics−1までの範囲内のiの各値に対して、SamplePredEnabledFlag[nuh_layer_id][RefPicLayerId[i]]またはMotionPredEnabledFlag[nuh_layer_id][RefPicLayerId[i]]の値が1に等しくなり得ることが、ビットストリーム適合の要件であってもよい。
図23では、inter_layer_pred_layer_mask[i]が1ビットを用いるu(1)によって符号付けされ得ることが示され、inter_layer_pred_layer_idc[i]をシグナリングする図22は、複数のビットを用い得るu(v)によって符号付けされ得る。ある実施形態においては、intra_layer_pred_idc[i]の代わりにinter_layer_pred_layer_mask[i]がシグナリングされる。
図24を参照すると、異なるレイヤ(例、ベースレイヤおよび/エンハンスメントレイヤ)の間の、許可される参照相互関係を制限することによって、システムの複雑性を低減するようなプロファイルを定めることが望ましい。一般的に、シンタックス構造は1つのレイヤが複数の他のレイヤを参照することを許可し、その結果として比較的高いデコーダ複雑性および同様に高いエンコーダ複雑性をもたらす。所望であれば、1つのレイヤが最大ただ1つの他のレイヤを参照することをシンタックス構造が許可するような、複雑性を低減したプロファイルに対する修正されたシンタックス構造が使用されてもよい。シンタックス構造に対するこの制限は、1に設定されたmax_one_active_ref_layer_flagを設定することによってシグナリングされ得る。
VPS拡張において、max_one_active_ref_layer_flagがシグナリングされる。max_one_active_ref_layer_flagが1に等しいことは、CVS内の各ピクチャに対するインターレイヤ予測のために最大1つのピクチャが使用されることを示す。max_one_active_ref_layer_flagが0に等しいことは、CVS内の各ピクチャに対するインターレイヤ予測のために2つ以上のピクチャが使用され得ることを示す。
VPS拡張において、layer_id_in_nuh[i]がシグナリングされる。layer_id_in_nuh[i]は、i番目のレイヤのVCL NALユニットにおけるnuh_layer_idシンタックスエレメントの値を示す。両端値を含めて0からvps_max_layers_minus1までの範囲内のiに対して、存在しないとき、layer_id_in_nuh[i]の値はiに等しいと推測される。iが0より大きいとき、layer_id_in_nuh[i]はlayer_id_in_nuh[i−1]よりも大きくなる。
あるレイヤに対してただ1つの直接参照レイヤが用いられるか、またはCVS内の各ピクチャに対するインターレイヤ予測のために最大1つのピクチャが用いられる場合には、たとえば以下のものなどのビットストリーム制約が含まれ得る。
1つの選択においては、もし各レイヤi=1,...vps_max_layers_minus1に対するNumDirectRefLayers[layer_id_in_nuh[i]]が1に等しければ、max_one_active_ref_layer_flagは1に等しいことがビットストリーム適合の要件であり得る。
別の選択においては、次のとおりにする。
もし各レイヤi=1,...vps_max_layers_minus1に対するNumDirDepFlags[i]が1に等しければ、max_one_active_ref_layer_flagは1に等しいことがビットストリーム適合の要件であり得る。
別の実施形態においては、max_one_active_ref_layer_flagが1に等しく設定されているときに、各ピクチャに対して異なる直接依存レイヤからのインターレイヤ参照ピクチャをシグナリングする能力をとりえないことが望ましい。この実施形態の結果として、出力レイヤセットの復号に対する複雑性が低くなる。この実施形態においては、NumDirectRefLayersが1に等しいことに関する、下に提案されるビットストリーム制約に従うことが要求され得る。
1つの選択においては、もしmax_one_active_ref_layer_flagが1に等しければ、各レイヤi=1,...vps_max_layers_minus1に対するNumDirectRefLayers[layer_id_in_nuh[i]]は1に等しいことがビットストリーム適合の要件である。
別の選択においては、次のとおりにする。
もしmax_one_active_ref_layer_flagが1に等しければ、i=1,...vps_max_layers_minus1に対するNumDirDepFlags[i]は1に等しいことがビットストリーム適合の要件であり得る。
別の実施形態は、インターレイヤ予測シグナリングに関するスライスヘッダにおいて選択されたシンタックスエレメントを条件付きでシグナリングするために、パラメータセット(例、pps、spsおよび/またはvps)において制御されるゲーティングフラグを含み得る。
図25を参照すると、たとえばシンタックスエレメントinter_layer_pred_enabled_flag、num_inter_layer_ref_pics_minus1、および/またはinter_layer_pred_layer_idc[i]は、ilp_slice_signaling_enabled_flagが1に等しいときのみスライスセグメントヘッダにおいてシグナリングされる。よって、ilp_slice_signaling_enabled_flagはゲーティングフラグである。
図26Aおよび図26Bを参照すると、ilp_slice_signaling_enabled_flagは、たとえばビデオパラメータセットなどのパラメータセットにおいてシグナリングされてもよい。図27を参照すると、ilp_slice_signaling_enabled_flagは、たとえばシーケンスパラメータセットなどのパラメータセットにおいてシグナリングされてもよい。図28を参照すると、ilp_slice_signaling_enabled_flagは、たとえばピクチャパラメータセットなどのパラメータセットにおいてシグナリングされてもよい。所望に応じて、ilp_slice_signaling_enabled_flagはビットストリームの別の場所においてシグナリングされてもよい。これらのパラメータセットの各々において、ilp_slice_signaling_enabled_flagは、図示される場所とは異なる任意の場所において送られてもよい。
ilp_slice_signaling_enabled_flagが1に等しいことは、スライスセグメントヘッダ内にinter_layer_pred_enabled_flag、num_inter_layer_ref_pics_minus1、inter_layer_pred_layer_idc[i]が存在することを示す。ilp_slice_signaling_enabled_flagが0に等しいことは、スライスセグメントヘッダ内にinter_layer_pred_enabled_flag、num_inter_layer_ref_pics_minus1、inter_layer_pred_layer_idc[i]が存在しないことを示す。いくつかの実施形態において、ilp_slice_signaling_enabled_flagはilp_slice_signaling_present_flagと呼ばれることもある。
ilp_slice_signaling_enabled_flagが1に等しいとき、inter_layer_pred_enabled_flag、num_inter_layer_ref_pics_minus1、inter_layer_pred_layer_idc[i]、およびNumActiveRefLayersPicsの値は次のとおりに推測される。
NumActiveRefLayerPicsは次のとおりに推測される。
NumActiveRefLayerPics=NumDirectRefLayers[nuh_layer_id]
inter_layer_pred_layer_idc[i]は次のとおりに推測される。
num_inter_layer_ref_pics_minus1は、NumDirectRefLayers[nuh_layer_id]−1に等しいと推測される。
inter_layer_pred_enabled_flagは1に等しいと推測される。
別の実施形態において、シンタックスエレメントの1つまたはそれ以上は、ue(v)の代わりのu(v)の代わりに、既知の固定数のビットを用いてシグナリングされてもよい。たとえば、それらのシンタックスエレメントはu(8)またはu(16)またはu(32)またはu(64)などを用いてシグナリングされてもよい。
別の実施形態において、これらのシンタックスエレメントの1つまたはそれ以上は、たとえばu(v)符号化などの固定数のビットの代わりに、ue(v)または何らかのその他の符号化スキームによってシグナリングされてもよい。
別の実施形態において、さまざまなシンタックスエレメントの名称およびそれらのシンタックスエレメントのセマンティクスは、記載されるシンタックスおよびセマンティクスに比べて、plus1もしくはplus2を加算するか、またはminus1もしくはminus2を減算することによって変更されてもよい。
さらに別の実施形態において、さまざまなシンタックスエレメントは、ビットストリーム内のあらゆる場所でピクチャ毎にシグナリングされてもよい。たとえば、それらのシンタックスエレメントは、スライスセグメントヘッダ、pps/sps/vps/もしくはあらゆるその他のパラメータセット、またはビットストリームのその他の規範的部分においてシグナリングされてもよい。
図29を参照すると、ビデオは、階層的時間予測構造におけるレベルを示す、NALユニットヘッダ内の時間識別子によって示される時間サブレイヤをとってもよい。1つの符号化ビデオシーケンスの復号プロセスの際に、復号時間サブレイヤの数が調整され得る。異なるレイヤは、異なる数のサブレイヤを有し得る。たとえば図29において、ベースレイヤは3つの時間サブレイヤ、すなわちTemporalId 0、TemporalId 1、TemporalId 2を含み得る。たとえば、エンハンスメントレイヤ1は4つの時間サブレイヤ、すなわちTemporalId 0、TemporalId 1、TemporalId 2、およびTemporalId 3を含み得る。アクセスユニットはNALユニットのセットとして定義されてもよく、それらのNALユニットは、指定された分類規則に従って互いに関連付けられ、復号順に連続しており、および/または、(ピクチャ順序カウントもしくは別様で)同じ出力時間に関連するすべての符号化ピクチャのVCL NALユニットと、VCL NALユニットに関連する非VCL NALユニットとを含む。
図29において、ベースレイヤは、エンハンスメントレイヤ1よりも低い全フレームレートを有する。たとえば、ベースレイヤのフレームレートは30Hzすなわち1秒当り30フレームであってもよい。エンハンスメントレイヤ1のフレームレートは60Hzすなわち1秒当り60フレームであってもよい。図29において、いくつかの出力時間において、アクセスユニットはベースレイヤの符号化ピクチャおよびエンハンスメントレイヤ1の符号化ピクチャを含み得る(例、図29のアクセスユニットY)。図29において、いくつかの出力時間において、アクセスユニットはエンハンスメントレイヤ1の符号化ピクチャのみを含み得る(例、図29のアクセスユニットX)。
以前に説明されたとおり、1つまたはそれ以上の他のレイヤに対する1つのレイヤの依存性は、シーケンスに対するVPSにおいてシグナリングされてもよい。加えて、それぞれのレイヤ内の各スライスにおいて、スライスセグメントヘッダシンタックスは、それぞれのスライスに対する依存性の1つまたはそれ以上を除去することによって、この依存性をさらに精密化することを可能にする。たとえば、VPSにおけるレイヤ依存性は、レイヤ3がレイヤ2およびベースレイヤ0に依存することを示してもよい。たとえば、レイヤ3内のスライスは、レイヤ2に対する依存性を除去するようにこの依存性をさらに修正してもよい。
図30A〜30Dを参照すると、スライスセグメントヘッダ(slice_segment_header)は、依存性の識別を容易にするシンタックス構造を含んでおり、そのシンタックス構造の一部が下に抜粋されている。
一例の場合、ベースレイヤは30ヘルツの速度でピクチャを符号化しており、エンハンスメントレイヤは60ヘルツの速度でピクチャを符号化しており、ここでエンハンスメントレイヤの1つおきの符号化ピクチャは、ベースレイヤの符号化ピクチャと整列されない。このシナリオは図29と類似のものである。加えて、一般的にエンハンスメントレイヤの各符号化ピクチャは、ベースレイヤにおける対応する符号化ピクチャを含まなくてもよいことを注記する。場合によっては、エンハンスメントレイヤの符号化ピクチャを有する対応符号化ピクチャがベースレイヤにいくつか存在し得る。残念ながら、このシンタックス構造は、元のビットストリーム内のアクセスユニットにベースレイヤの符号化ピクチャが存在しない場合(例、図29のアクセスユニットX)と、元のビットストリーム内のアクセスユニットにはベースレイヤの符号化ピクチャが存在したが、送信の際に失われた場合との区別ができない。この態様で、ベースレイヤの符号化ピクチャが失われたのか(すなわち損失ピクチャ)、または最初の場所にベースレイヤの符号化ピクチャが存在しなかったのか(すなわち非存在ベースレイヤピクチャ)がデコーダには分からない。
図30A〜30Dに示されるシンタックスを伴っても、システムがスライスセグメントヘッダにおいてレイヤの除去をシグナリングできない条件が存在することが明らかになっている。こうした条件下では、デコーダは、(参照レイヤが異なるフレームレートを有するために)ビットストリームにそのピクチャが存在しないために、AUが現レイヤの直接参照レイヤに対する符号化ピクチャを有さなかった場合と、現レイヤの直接参照レイヤに対する符号化ピクチャが送信中に失われた場合とを区別できない。この特定の条件は3つの条件を含み、その条件とはすなわち、max_one_active_ref_layer_flagが1に等しいとき、NumDirectRefLayers[nuh_layer_id]が1に等しく、および/またはall_ref_layers_active_flagが1に等しいことである。これらの条件の各々に対しては、たとえベースレイヤ(すなわち参照レイヤ)が元のビットストリームにピクチャを有さなかったときでも、インターレイヤ参照ピクチャセットに対する復号プロセスの際に「参照ピクチャなし」が推測される。この推測は不正確であり、最適な挙動ではない。このシナリオにおいて、場合によっては、こうした「参照ピクチャなし」に対して利用不可能な参照ピクチャが再生されて、ベースレイヤ(すなわち参照レイヤ)ピクチャとして使用されるために、誤った動作がもたらされる。
この制限を緩和するために、SHVCおよび/またはMV−HEVCにおいて各レイヤに対する時間サブレイヤの最大数をシグナリングすることが望ましいことが明らかになっている。このシグナリングは、あらゆる好適な態様で達成されてもよい。各レイヤに対する時間サブレイヤの最大数をシグナリングするための第1の技術は、各レイヤに対する最大数を常時明示的にシグナリングすることによるものである。シグナリングのための第2の技術では、各レイヤに対する時間サブレイヤの最大数が、存在フラグにおいて条件付けられてシグナリングされる。シグナリングのための第3の技術では、存在フラグにおいて条件付けられることによって、各レイヤに対する時間サブレイヤの最大数が、前のレイヤに対する時間サブレイヤの最大数に関して予測的に符号化される。加えて、スライスセグメントヘッダシンタックスエレメントnum_inter_layer_ref_pics_minus1およびinter_layer_pred_layer_idc[i]のセマンティクス、ならびにNumActiveRefLayerPicsの導出は、各レイヤに対する時間サブレイヤ情報のシグナリングに基づいて修正されてもよい。付加的または代替的に、損失ピクチャの場合と非存在ピクチャの場合とを同様に明確にするために、スライスセグメントヘッダにおいてNumActiveRefLayerPicsに対してlayer_present_in_au_flag[i]がシグナリングされてもよい。
HEVC(JCTVC−L1003)、SHVC(JCTVC−N1008)およびMV−HEVC(JCT3V−E1004)においては、次のことが要求される。
−アクセスユニットのすべてのVCL NALユニットに対するTemporalIdの値が同じになる。
−アクセスユニットのTemporalIdの値は、アクセスユニットのVCL NALユニットのTemporalIdの値である。
図31を参照すると、修正されたvps_expension()シンタックスは、ビットストリーム全体ではなく、各レイヤに対して存在し得る最大数の時間サブレイヤを明示的にシグナリングすることを含み得る。この態様で、2つの異なるレイヤの各々は、時間サブレイヤの異なる最大数を有し得る。特に、sub_layers_vps_max_minus1[i]プラス1は、layer_id_in_nuh[i]に等しいnuh_layer_idを有するレイヤに対してCVS内に存在し得る時間サブレイヤの最大数を示す。sub_layers_vps_max_minus1[i]の値は、両端値を含めて0からvps_max_sub_layers_minus1までの範囲内となる。存在しないとき、sub_layers_vps_max_minus1[i]はvps_max_sub_layers_minus1に等しくなる。代替的に、sub_layers_vps_max_minus1[i]の値は、両端値を含めて0から6までの範囲内であってもよい。代替的に、図32に示されるとおり、sub_layers_vps_max_minus1[i]の値は、VPS拡張におけるエンハンスメントレイヤに対してのみシグナリングされてもよい。
図33を参照すると、修正されたvps_expension()シンタックスは、存在フラグにおいて条件付けられた、各レイヤに対する最大数をシグナリングすることを含み得る。この態様で、2つの異なるレイヤの各々は、時間サブレイヤの異なる最大数を有し得る。特に、sub_layers_vps_max_minus1_present_flagが1に等しいことは、シンタックスエレメントsub_layers_vps_max_minus1[i]が存在することを示す。sub_layers_vps_max_minus1_present_flagが0に等しいことは、シンタックスエレメントsub_layers_vps_max_minus1[i]が存在しないことを示す。sub_layers_vps_max_minus1[i]プラス1は、layer_id_in_nuh[i]に等しいnuh_layer_idを有するレイヤに対してCVS内に存在し得る時間サブレイヤの最大数を示す。sub_layers_vps_max_minus1[i]の値は、両端値を含めて0からvps_max_sub_layers_minus1までの範囲内となる。存在しないとき、sub_layers_vps_max_minus1[i]はvps_max_sub_layers_minus1に等しくなる。代替的に、sub_layers_vps_max_minus1[i]の値は、両端値を含めて0から6までの範囲内であってもよい。代替的に、図34に示されるとおり、sub_layers_vps_max_minus1[i]の値は、VPS拡張におけるエンハンスメントレイヤに対してのみシグナリングされてもよい。図35を参照すると、修正されたvps_expension()シンタックスは、存在フラグにおいて条件付けられることによって、各レイヤに対する時間サブレイヤの最大数を、前のレイヤに対する時間サブレイヤの最大数に関して予測的に符号化することによってシグナリングすることを含み得る。この態様で、2つの異なるレイヤの各々は、時間サブレイヤの異なる最大数を有し得る。特に、sub_layers_vps_max_minus1_predict_flag[i]が1に等しいことは、sub_layers_vps_max_minus1[i]がsub_layers_vps_max_minus1[i−1]に等しいと推測されることを示す。sub_layers_vps_max_minus1_predict_flag[i]が0に等しいことは、sub_layers_vps_max_minus1[i]が明示的にシグナリングされることを示す。sub_layers_vps_max_minus1_predict_flag[0]の値は、0に等しいと推測される。sub_layers_vps_max_minus1[i]プラス1は、layer_id_in_nuh[i]に等しいnuh_layer_idを有するレイヤに対してCVS内に存在し得る時間サブレイヤの最大数を示す。sub_layers_vps_max_minus1[i]の値は、両端値を含めて1からvps_max_sub_layers_minus1までの範囲内となる。sub_layers_vps_max_minus1_predict_flag[i]が1に等しいとき、sub_layers_vps_max_minus1[i]はsub_layers_vps_max_minus1[i−1]に等しいと推測される。sub_layers_vps_max_minus1[0]の値は、vps_max_sub_layers_minus1に等しいと推測される。代替的に、sub_layers_vps_max_minus1[i]の値は、両端値を含めて0から6までの範囲内であってもよい。代替的に、図36に示されるとおり、sub_layers_vps_max_minus1[i]の値は、VPS拡張におけるエンハンスメントレイヤに対してのみシグナリングされてもよい。
たとえば以下に記載されるとおり、各レイヤに対して存在し得る時間サブレイヤの最大数に関するシグナリング情報を用いる曖昧性を低減するように、前述の3つの条件の1つの出現をNumActiveRefLayerPicsの導出が説明するような態様で、スライスセグメントヘッダが修正されてもよい。
inter_layer_pred_enabled_flagが1に等しいことは、現ピクチャの復号においてインターレイヤ予測が用いられ得ることを示す。inter_layer_pred_enabled_flagが0に等しいことは、現ピクチャの復号においてインターレイヤ予測が用いられないことを示す。num_inter_layer_ref_pics_minus1プラス1は、インターレイヤ予測のために現ピクチャの復号において用いられ得るピクチャの数を示す。num_inter_layer_ref_pics_minus1シンタックスエレメントの長さは、Ceil(Log2(NumDirectRefLayers[nuh_layer_id]))ビットである。num_inter_layer_ref_pics_minus1の値は、両端値を含めて0からNumDirectRefLayers[nuh_layer_id]−1までの範囲内となる。変数NumActiveRefLayerPicsは、次のとおりに導出される。
符号化ピクチャのすべてのスライスは、同じ値のNumActiveRefLayerPicsを有する。inter_layer_pred_layer_idc[i]は、インターレイヤ予測のために現ピクチャによって用いられ得るi番目のピクチャのnuh_layer_idを表す変数RefPicLayerId[i]を示す。シンタックスエレメントinter_layer_pred_layer_idc[i]の長さは、Ceil(Log2(NumDirectRefLayers[nuh_layer_id]))ビットである。inter_layer_pred_layer_idc[i]の値は、両端値を含めて0からNumDirectRefLayers[nuh_layer_id]−1までの範囲内となる。存在しないとき、inter_layer_pred_layer_idc[i]の値は次のとおりに推測される。
変形実施形態においては、存在しないとき、inter_layer_pred_layer_idc[i]の値は次のとおりに推測される。
iが0より大きいとき、inter_layer_pred_layer_idc[i]はinter_layer_pred_layer_idc[i−1]よりも大きくなる。両端値を含めて0からNumActiveRefLayerPics−1までの範囲内のiのすべての値に対して、変数RefPicLayerId[i]は次のとおりに導出される。
両端値を含めて0からNumActiveRefLayerPics−1までの範囲内のiの各値に対して、ピクチャのすべてのスライスは、同じ値のinter_layer_pred_layer_idc[i]を有する。両端値を含めて0からNumActiveRefLayerPics−1までの範囲内のiの各値に対して、次の2つの条件のいずれかが真であることが、ビットストリーム適合の要件である。
(1)max_tid_il_ref_pics_plus1[LayerIdxInVps[RefPicLayerId[i]]]の値がTemporalIdより大きい。
(2)max_tid_il_ref_pics_plus1[LayerIdxInVps[RefPicLayerId[i]]]およびTemporalIdの値がどちらも0に等しく、かつRefPicLayerId[i]に等しいnuh_layer_idを有する現アクセスユニット内のピクチャがIRAPピクチャである。
別の実施形態において、さまざまなシンタックスエレメントの名称およびそれらのシンタックスエレメントのセマンティクスは、記載されるシンタックスおよびセマンティクスに比べて、plus1もしくはplus2を加算するか、またはminus1もしくはminus2を減算することによって変更されてもよい。
別の実施形態において、if文における条件のいくつかは、記載されるシンタックスに比べて、plus1もしくはplus2を加算するか、またはminus1もしくはminus2を減算することによって変更されてもよい。
図37を参照すると、付加的なシグナリング技術は、layer_present_in_au_flag[i]をシグナリングすることを含む。layer_present_in_au_flag[i]が1に等しいことは、RefPicLayerId[i]に等しいnuh_layer_idを有するピクチャが現アクセスユニット内に存在することを示す。layer_present_in_au_flag[i]が0に等しいことは、RefPicLayerId[i]に等しいnuh_layer_idを有するピクチャが現アクセスユニット内に存在しないことを示す。存在しないとき、layer_present_in_au_flag[i]は1に等しいと推測される。
図38を参照すると、付加的なシグナリング技術は、layer_present_in_au_flag[i]をシグナリングすることを含む。layer_present_in_au_flag[i]が1に等しいことは、RefLayerId[nuh_layer_id][i]に等しいnuh_layer_idを有するピクチャが現アクセスユニット内に存在することを示す。layer_present_in_au_flag[i]が0に等しいことは、RefLayerId[nuh_layer_id][i]に等しいnuh_layer_idを有するピクチャが現アクセスユニット内に存在しないことを示す。存在しないとき、layer_present_in_au_flag[i]は1に等しいと推測される。
図39を参照すると、付加的なシグナリング技術は、layer_present_in_au_flag[i]をシグナリングすることを含む。layer_present_in_au_flag[i]が1に等しいことは、layer_id_in_nuh[i]に等しいnuh_layer_idを有するピクチャが現アクセスユニット内に存在することを示す。layer_present_in_au_flag[i]が0に等しいことは、layer_id_in_nuh[i]に等しいnuh_layer_idを有するピクチャが現アクセスユニット内に存在しないことを示す。存在しないとき、layer_present_in_au_flag[i]は1に等しいと推測される。
所望であれば、図37、図38および/または図39において、フラグlayer_present_in_au_flag[i]は次の条件の1つまたはそれ以上が満たされるときにのみシグナリングされてもよい。
第1の条件は、各レイヤに対してただ1つのアクティブ参照レイヤが使用され得る(すなわち、max_one_active_ref_layer_flagが1に等しい)ときである。
第2の条件は、レイヤ間の直接従属関係によって(例、direct_dependency_flag[i][j]によって)シグナリングされたレイヤに対する直接参照レイヤの数が1に等しい(すなわち、NumDirectRefLayers[nuh_layer_id]が1に等しい)ことである。
第3の条件は、レイヤ間の直接従属関係によって(例、direct_dependency_flag[i][j]によって)シグナリングされたレイヤに対するすべての直接参照レイヤが1に等しく、そのレイヤの符号化ピクチャに対するアクティブ参照レイヤである(例、all_ref_layers_active_flagが1に等しい)ことである。
上記3つの条件に対して図40、図41、および図42に示される3つの変形は、それぞれ図37、図38、および図39に対応する。
図43を参照すると、インターレイヤ参照ピクチャセットに対する復号プロセスが修正されてもよい。このプロセスの出力は、インターレイヤ参照ピクチャRefPicSetInterLayer0およびRefPicSetInterLayer1の更新リスト、ならびに変数NumActiveRefLayerPics0およびNumActiveRefLayerPics1である。変数currLayerIdは、現復号ピクチャのnuh_layer_idに等しく設定される。リストRefPicSetInterLayer0およびRefPicSetInterLayer1は最初に空にされ、NumActiveRefLayerPics0およびNumActiveRefLayerPics1は0に等しく設定され、その後に図43に示されるステップが続く。RefPicSetInterLayer0またはRefPicSetInterLayer1には、「参照ピクチャなし」に等しいエントリは存在しない。すべてのレイヤに対するViewId[i]の値は0に等しいため、RefPicSetInterLayer1は常時空である。もし現ピクチャがRADLピクチャであれば、RefPicSetInterLayer0またはRefPicSetInterLayer1にはRASLピクチャであるエントリは存在しない。アクセスユニットは、RASLおよびRADLピクチャの両方を含み得る。
図44を参照すると、インターレイヤ参照ピクチャセットに対する復号プロセスが修正されてもよい。このプロセスの出力は、インターレイヤ参照ピクチャRefPicSetInterLayer0およびRefPicSetInterLayer1の更新リスト、ならびに変数NumActiveRefLayerPics0およびNumActiveRefLayerPics1である。変数currLayerIdは、現復号ピクチャのnuh_layer_idに等しく設定される。リストRefPicSetInterLayer0およびRefPicSetInterLayer1は最初に空にされ、NumActiveRefLayerPics0およびNumActiveRefLayerPics1は0に等しく設定され、その後に図44に示されるステップが続く。RefPicSetInterLayer0またはRefPicSetInterLayer1には、「参照ピクチャなし」に等しいエントリは存在しない。すべてのレイヤに対するViewId[i]の値は0に等しいため、RefPicSetInterLayer1は常時空である。もし現ピクチャがRADLピクチャであれば、RefPicSetInterLayer0またはRefPicSetInterLayer1にはRASLピクチャであるエントリは存在しない。アクセスユニットは、RASLおよびRADLピクチャの両方を含み得る。
図45を参照すると、インターレイヤ参照ピクチャセットに対する復号プロセスが修正されてもよい。このプロセスの出力は、インターレイヤ参照ピクチャRefPicSetInterLayer0およびRefPicSetInterLayer1の更新リスト、ならびに変数NumActiveRefLayerPics0およびNumActiveRefLayerPics1である。変数currLayerIdは、現復号ピクチャのnuh_layer_idに等しく設定される。リストRefPicSetInterLayer0およびRefPicSetInterLayer1は最初に空にされ、NumActiveRefLayerPics0およびNumActiveRefLayerPics1は0に等しく設定され、その後に図45に示されるステップが続く。RefPicSetInterLayer0またはRefPicSetInterLayer1には、「参照ピクチャなし」に等しいエントリは存在しない。すべてのレイヤに対するViewId[i]の値は0に等しいため、RefPicSetInterLayer1は常時空である。もし現ピクチャがRADLピクチャであれば、RefPicSetInterLayer0またはRefPicSetInterLayer1にはRASLピクチャであるエントリは存在しない。アクセスユニットは、RASLおよびRADLピクチャの両方を含み得る。
図46を参照すると、インターレイヤ参照ピクチャセットに対する復号プロセスが修正されてもよい。このプロセスの出力は、インターレイヤ参照ピクチャRefPicSetInterLayer0およびRefPicSetInterLayer1の更新リスト、ならびに変数NumActiveRefLayerPics0およびNumActiveRefLayerPics1である。変数currLayerIdは、現復号ピクチャのnuh_layer_idに等しく設定される。リストRefPicSetInterLayer0およびRefPicSetInterLayer1は最初に空にされ、NumActiveRefLayerPics0およびNumActiveRefLayerPics1は0に等しく設定され、その後に図46に示されるステップが続く。RefPicSetInterLayer0またはRefPicSetInterLayer1には、「参照ピクチャなし」に等しいエントリは存在しない。すべてのレイヤに対するViewId[i]の値は0に等しいため、RefPicSetInterLayer1は常時空である。もし現ピクチャがRADLピクチャであれば、RefPicSetInterLayer0またはRefPicSetInterLayer1にはRASLピクチャであるエントリは存在しない。アクセスユニットは、RASLおよびRADLピクチャの両方を含み得る。
代替的実施形態において、スライスセグメントヘッダにおいてインターレイヤ予測情報をシグナリングするためのシンタックスは、図47に示されるとおりに修正されてもよい。この場合、シンタックスエレメントinter_layer_pred_enabled_flag、num_inter_layer_ref_pics_minus1、およびinter_layer_pred_layer_idc[i]は、たとえ次の条件の1つまたはそれ以上が真であるときにも、常にシグナリングされる。すなわち、max_one_active_ref_layer_flagが1に等しいとき、および/またはNumDirectRefLayers[nuh_layer_id]が1に等しいとき、および/またはall_ref_layers_active_flagが1に等しいときである。
この場合、損失参照レイヤピクチャと、非存在参照レイヤピクチャとに関する曖昧さが取除かれる。この場合には、以下の事項が適用され得る。
inter_layer_pred_enabled_flagが1に等しいことは、現ピクチャの復号にインターレイヤ予測が用いられ得ることを示す。inter_layer_pred_enabled_flagが0に等しいことは、現ピクチャの復号にインターレイヤ予測が用いられないことを示す。num_inter_layer_ref_pics_minus1プラス1は、インターレイヤ予測のために現ピクチャの復号において用いられ得るピクチャの数を示す。num_inter_layer_ref_pics_minus1シンタックスエレメントの長さは、Ceil(Log2(NumDirectRefLayers[nuh_layer_id]))ビットである。num_inter_layer_ref_pics_minus1の値は、両端値を含めて0からNumDirectRefLayers[nuh_layer_id]−1までの範囲内となる。変数NumActiveRefLayerPicsは、次のとおりに導出される。
符号化ピクチャのすべてのスライスは、同じ値のNumActiveRefLayerPicsを有する。inter_layer_pred_layer_idc[i]は、インターレイヤ予測のために現ピクチャによって用いられ得るi番目のピクチャのnuh_layer_idを表す変数RefPicLayerId[i]を示す。シンタックスエレメントinter_layer_pred_layer_idc[i]の長さは、Ceil(Log2(NumDirectRefLayers[nuh_layer_id]))ビットである。inter_layer_pred_layer_idc[i]の値は、両端値を含めて0からNumDirectRefLayers[nuh_layer_id]−1までの範囲内となる。iが0より大きいとき、inter_layer_pred_layer_idc[i]はinter_layer_pred_layer_idc[i−1]よりも大きくなる。両端値を含めて0からNumActiveRefLayerPics−1までの範囲内のiのすべての値に対して、変数RefPicLayerId[i]は次のとおりに導出される。
両端値を含めて0からNumActiveRefLayerPics−1までの範囲内のiの各値に対して、ピクチャのすべてのスライスは、同じ値のinter_layer_pred_layer_idc[i]を有する。両端値を含めて0からNumActiveRefLayerPics−1までの範囲内のiの各値に対して、次の2つの条件のいずれかが真であることが、ビットストリーム適合の要件である。
(1)max_tid_il_ref_pics_plus1[LayerIdxInVps[RefPicLayerId[i]]]の値がTemporalIdより大きい。
(2)max_tid_il_ref_pics_plus1[LayerIdxInVps[RefPicLayerId[i]]]およびTemporalIdの値がどちらも0に等しく、かつRefPicLayerId[i]に等しいnuh_layer_idを有する現アクセスユニット内のピクチャがIRAPピクチャである。
direct_dependency_flag[i][j]が0に等しいとき、インデックスjを有するレイヤはインデックスiを有するレイヤに対する直接参照レイヤではないことが示されることに基づいて、レイヤに対するNumDirectRefLayersが導出されてもよい。direct_dependency_flag[i][j]が1に等しいことは、インデックスjを有するレイヤがインデックスiを有するレイヤに対する直接参照レイヤであり得ることを示す。0からvps_max_layers_minus1までの範囲内のiおよびjに対するdirect_dependency_flag[i][j]が存在しないとき、direct_dependency_flag[i][j]は0に等しいと推測される。
変数NumDirectRefLayers[i]、RefLayerId[i][j]SamplePredEnabledFlag[i][j]、MotionPredEnabledFlag[i][j]、およびDirectRefLayerIdx[i][j]は、次のとおりに導出され得る。
direct_dependency_type[i][j]は、layer_id_in_nuh[i]に等しいnuh_layer_idを有するレイヤと、layer_id_in_nuh[j]に等しいnuh_layer_idを有するレイヤとの間の依存性のタイプを示す。direct_dependency_type[i][j]が0に等しいことは、layer_id_in_nuh[j]に等しいnuh_layer_idを有するレイヤが、layer_id_in_nuh[i]に等しいnuh_layer_idを有するレイヤのインターレイヤサンプル予測に使用されるが、インターレイヤ動き予測には使用されないことを示す。direct_dependency_type[i][j]が1に等しいことは、layer_id_in_nuh[j]に等しいnuh_layer_idを有するレイヤが、layer_id_in_nuh[i]に等しいnuh_layer_idを有するレイヤのインターレイヤ動き予測に使用されるが、インターレイヤサンプル予測には使用されないことを示す。direct_dependency_type[i][j]が2に等しいことは、layer_id_in_nuh[j]に等しいnuh_layer_idを有するレイヤが、layer_id_in_nuh[i]に等しいnuh_layer_idを有するレイヤのインターレイヤサンプル動き予測およびインターレイヤ動き予測の両方に使用されることを示す。direct_dependency_type[i][j]の値は両端値を含めて0から2までの範囲内になるが、このバージョンのこの仕様において、デコーダは、両端値を含めて3から232−2までの範囲内の値のdirect_dependency_type[i][j]がシンタックスに出現することを可能にする。
direct_dependency_flag[i][j]、direct_dep_type_len_minus2、direct_dependency_type[i][j]は図48Aおよび図48Bに示されるvps_extensionシンタックスに含まれ、このシンタックスは、符号化ビデオシーケンスに対するシンタックスを提供するVPSシンタックスにおける参照によって含まれる。
典型的に、ビットストリーム内でシグナリングされる必要がある、参照されるレイヤの数を低減することが望ましく、こうした低減を実現するために、スライスセグメントヘッダ内のその他のシンタックスエレメントが使用されてもよい。その他のシンタックスエレメントは、inter_layer_pred_enabled_flag、num_inter_layer_ref_pics_minus1、および/またはinter_layer_pred_layer_idc[i]を含み得る。これらのシンタックスエレメントは、スライスセグメントヘッダにおいてシグナリングされ得る。
inter_layer_pred_enabled_flagが1に等しいことは、現ピクチャの復号にインターレイヤ予測が用いられ得ることを示す。inter_layer_pred_enabled_flagが0に等しいことは、現ピクチャの復号にインターレイヤ予測が用いられないことを示す。存在しないとき、inter_layer_pred_enabled_flagの値は0に等しいと推測される。
num_inter_layer_ref_pics_minus1プラス1は、インターレイヤ予測のために現ピクチャの復号において用いられ得るピクチャの数を示す。num_inter_layer_ref_pics_minus1シンタックスエレメントの長さは、Ceil(Log2(NumDirectRefLayers[nuh_layer_id]))ビットである。num_inter_layer_ref_pics_minus1の値は、両端値を含めて0からNumDirectRefLayers[nuh_layer_id]−1までの範囲内となる。
変数NumActiveRefLayerPicsは、次のとおりに導出される。
符号化ピクチャのすべてのスライスは、同じ値のNumActiveRefLayerPicsを有する。
inter_layer_pred_layer_idc[i]は、インターレイヤ予測のために現ピクチャによって使用され得るi番目のピクチャのnuh_layer_idを表す変数RefPicLayerId[i]を示す。シンタックスエレメントinter_layer_pred_layer_idc[i]の長さは、Ceil(Log2(NumDirectRefLayers[nuh_layer_id]))ビットである。inter_layer_pred_layer_idc[i]の値は、両端値を含めて0からNumDirectRefLayers[nuh_layer_id]−1までの範囲内であり得る。存在しないとき、inter_layer_pred_layer_idc[i]の値は0に等しいと推測される。
たとえば、システムはさまざまなシンタックスエレメント、特にVPSにおけるdirect_dependency_flag[i][j]をシグナリングしてもよく、direct_dependency_flag[i][j]は、レイヤ3に対するインターレイヤ参照ピクチャセットが[2,0]となるようにする。次いでシステムは、[2]などのスライスセグメントヘッダ内のシンタックスエレメントなどの付加的なシンタックスエレメントを使用することによってインターレイヤ参照ピクチャセットをさらに精密化してもよいし、[0]などの付加的なシンタックスエレメントを使用することによってインターレイヤ参照ピクチャセットをさらに精密化してもよいし、または空集合である[]などの付加的なシンタックスエレメントを使用することによってインターレイヤ参照ピクチャセットをさらに精密化してもよい。しかし、エンコーダの設計によっては、[2,0]の参照ピクチャセットが[2,0]としてシグナリングされることもある。
図48Bにおいて、vps_vui_present_flagが1に等しいことは、VPS内にvps_vui()シンタックス構造が存在することを示す。vps_vui_present_flagが0に等しいことは、VPS内にvps_vui()シンタックス構造が存在しないことを示す。vps_vui_alignment_bit_equal_to_oneは1に等しくてもよい。
VPS VUIは、インターレイヤ予測の制限を示すシンタックスエレメントを含む。使用される空間セグメント化ツールに本質的に依存して、参照レイヤ内の連結された空間セグメントに関する、スライス、タイル、ウェーブフロント符号化ツリーブロック(coded tree block:CTB)行の単位での遅延がシグナリングされてもよい。加えて、フラグに基づいて、CTBの単位での遅延がシグナリングされてもよい。これらのインターレイヤ復号遅延シグナリングはレイヤの並行復号を助けることができ、ここで依存レイヤは、自身の復号を開始する前に各参照レイヤ全体が完全に復号されるのを待つ代わりに、各参照レイヤに対して示される遅延の後に復号を開始できる。
図49は、例示的なVPSビデオユーザビリティ情報(VUI)シンタックスの一部を示す。この図面は図48Bのvps_vui()構造および例示的なvps拡張シンタックスに対応し得る。
図50は、図49に比べてシンタックスにいくつかの相違を有する、別の例示的なVPSビデオユーザビリティ情報(VUI)シンタックスの一部を示す。この図面は図48Bのvps_vui()構造および例示的なvps拡張シンタックスに対応し得る。
VPS VUIは、ビデオに対するビットレートおよびピクチャレート情報に関するシンタックスエレメントを含む。
SHVCにおいて、異なるレイヤは異なるフレームレートを有し得る。その結果、高いフレームレートを有するレイヤは、低いフレームレートを有するレイヤよりも高い値の最大時間サブレイヤを有し得る。サブビットストリーム抽出プロセスが、入力としてのレイヤセットjおよびそのレイヤセットに関連するレイヤ識別子リストによって呼び出されるとき、サブビットストリーム抽出プロセスの出力はレイヤセットのj番目のサブセットである。特定のレイヤセットに対する混合フレームレートの場合、そのレイヤセットにおける時間サブレイヤの最大数は、vps_max_sub_layers_minus1よりも小さくなり得る。この場合、こうしたレイヤセットの(vps_max_sub_layers_minus1+1)サブセットのいくつかが同一となる。これらの同一サブセットに対するビットレートおよびピクチャ情報をシグナリングすることは無駄である。レイヤに対する時間サブレイヤの最大数に関する情報(sub_layers_vps_max_minus1)は、VPSにおいてすでにシグナリングされている。
図50に示されるVPS VUIにおけるビットレートおよびピクチャレート情報のシグナリングの修正は、同一のサブセットに対する情報を送るためにビットを無駄にしないという利益を有する。図50において、ビットレートおよびピクチャレート情報(bit_rate_present_flag[i][j]、pic_rate_present_flag[i][j]、avg_bit_rate[i][j]、max_bit_Rate[i][j]、constant_pic_rate_idc[i][j]、avg_pic_rate[i][j]を含む)は、対応するレイヤセットにおける最大時間サブレイヤまでしかシグナリングされない。よって、対応するレイヤセットにおける最大時間サブレイヤまでしかサブセットに対するビットレートおよびピクチャレート情報をシグナリングしないことが好ましい。
変数MaxSlLayersetMinus1[i]は、次のとおりに導出される。
別の実施形態において、変数MaxSlLayersetMinus1[i]は、次のとおりに導出される。
次いで、サブセットに対するjインデックスが、両端値を含めて0からvps_max_sub_layers_minus1の範囲内ではなく、両端値を含めて0からMaxSlLayersetMinus1[i]の範囲内となるように、導出されたMaxSlLayersetMinus1[i]が用いられる。
bit_rate_present_vps_flagが1に等しいことは、シンタックスエレメントbit_rate_present_flag[i][j]が存在することを示す。bit_rate_present_vps_flagが0に等しいことは、シンタックスエレメントbit_rate_present_flag[i][j]が存在しないことを示す。
pic_rate_present_vps_flagが1に等しいことは、シンタックスエレメントpic_rate_present_flag[i][j]が存在することを示す。pic_rate_present_vps_flagが0に等しいことは、シンタックスエレメントpic_rate_present_flag[i][j]が存在しないことを示す。
bit_rate_present_flag[i][j]が1に等しいことは、i番目のレイヤセットのj番目のサブセットに対するビットレート情報が存在することを示す。bit_rate_present_flag[i]が0に等しいことは、i番目のレイヤセットのj番目のサブセットに対するビットレート情報が存在しないことを示す。サブビットストリーム抽出プロセスが、入力としてのレイヤセットjおよびそのレイヤセットに関連するレイヤ識別子リストによって呼び出されるとき、サブビットストリーム抽出プロセスの出力はレイヤセットのj番目のサブセットである。存在しないとき、bit_rate_present_flag[i][j]の値は0に等しいと推測される。
pic_rate_present_flag[i][j]が1に等しいことは、i番目のレイヤセットのj番目のサブセットに対するピクチャレート情報が存在することを示す。pic_rate_present_flag[i][j]が0に等しいことは、i番目のレイヤセットのj番目のサブセットに対するピクチャレート情報が存在しないことを示す。存在しないとき、pic_rate_present_flag[i][j]の値は0に等しいと推測される。
avg_bit_rate[i][j]は、i番目のレイヤセットのj番目のサブセットの平均ビットレートを、ビット毎秒で示す。この値は、関数BitRateBPS()が次のとおりに示されるとき、BitRateBPS(avg_bit_rate[i][j])によって与えられる。
平均ビットレートは、節F.13に示されるアクセスユニット除去時間に従って導出される。以下において、bTotalはi番目のレイヤセットのj番目のサブセットのすべてのNALユニット内のビット数であり、t
1はVPSが適用される第1のアクセスユニットの除去時間(秒)であり、t
2はVPSが適用される(復号順で)最後のアクセスユニットの除去時間(秒)である。xがavg_bit_rate[i][j]の値を示すとき、以下が適用される。
もしt
1がt
2に等しくなければ、次の条件が真となる。
そうでなければ(t
1がt
2に等しい)、次の条件が真となる。
max_bit_rate_layer[i][j]は、節F.13に示されるアクセスユニット除去時間の任意の1秒時間ウィンドウにおけるi番目のレイヤセットのj番目のサブセットのビットレートに対する上限を示す。ビット毎秒でのビットレートに対する上限は、BitRateBPS(max_bit_rate_layer[i][j])によって与えられる。ビットレート値は、節F.13に示されるアクセスユニット除去時間に従って導出される。以下において、t
1は任意の時点(秒)であり、t
2は
に等しく設定され、bTotalはt
1以上t
2未満の除去時間を有するアクセスユニットのすべてのNALユニットにおけるビット数である。xがmax_bit_rate_layer[i][j]の値を示すとき、t
1のすべての値が次の条件に従う。
constant_pic_rate_idc[i][j]は、i番目のレイヤセットのj番目のサブセットのピクチャレートが一定かどうかを示す。以下において、時間セグメントtSegは、i番目のレイヤセットのj番目のサブセットの復号順で2つまたはそれ以上の連続アクセスユニットの任意のセットであり、auTotal(tSeg)は時間セグメントtSeg内のアクセスユニットの数であり、t
1(tSeg)は時間セグメントtSegの(復号順で)第1のアクセスユニットの除去時間(秒)であり、t
2(tSeg)は時間セグメントtSegの(復号順で)最後のアクセスユニットの除去時間(秒)であり、avgPicRate(tSeg)は時間セグメントtSegにおける平均ピクチャレートであって、次のとおりに示される。
i番目のレイヤセットのj番目のサブセットが1つまたは2つのアクセスユニットしか含まないか、またはすべての時間セグメントにわたってavgPicRate(tSeg)の値が一定であるとき、ピクチャレートは一定である。そうでなければ、ピクチャレートは一定ではない。
constant_pic_rate_idc[i][j]が0に等しいことは、i番目のレイヤセットのj番目のサブセットのピクチャレートが一定ではないことを示す。constant_pic_rate_idc[i][j]が1に等しいことは、i番目のレイヤセットのj番目のサブセットのピクチャレートが一定であることを示す。constant_pic_rate_idc[i][j]が2に等しいことは、i番目のレイヤセットのj番目のサブセットのピクチャレートが一定であっても、または一定でなくてもよいことを示す。constant_pic_rate_idc[i][j]の値は、両端値を含めて0から2までの範囲内となる。
avg_pic_rate[i]は、レイヤセットのj番目のサブセットの、256秒当りのピクチャの単位での平均ピクチャレートを示す。auTotalはi番目のレイヤセットのj番目のサブセットにおけるアクセスユニットの数であり、t
1はVPSが適用される第1のアクセスユニットの除去時間(秒)であり、t
2はVPSが適用される(復号順で)最後のアクセスユニットの除去時間(秒)であるとき、以下が適用される。
もしt
1がt
2に等しくなければ、次の条件が真となる。
そうでなければ(t
1がt
2に等しい)、次の条件が真となる。
現在、DPBサイズセマンティクスにおけるJCTVC−P1008およびJCT3V−G1004において、変数MaxSubLayersInLayerSetMinus1[i]は次のとおりに導出される。
いくつかの実施形態においては、MaxSlLayersetMinus1[i]の上記の導出および提案される導出が、次のとおりにMaxSubLayersInLayerSetMinus1[i]の導出と組み合わされてもよい。
変数MaxSlLayersetMinus1[i]は、次のとおりに導出される。
さらに別の実施形態においては、変数MaxSubLayersInLayerSetMinus1[i]の代わりに、変数MaxSlLayersetMinus1[LayerSetIdxForOutputLayerSet[i]]が直接用いられてもよい。
よって、dpb_sizeは次のとおりにシグナリングされ得る。
MaxSubLayersInLayerSetMinus1[i]を用いるさまざまなパラメータのセマンティクスは、MaxSlLayersetMinus1[LayerSetIdxForOutputLayerSet[i]]を直接使用するように変えられ得る。
sub_layer_flag_info_present_flag[i]が1に等しいことは、両端値を含めて1からMaxSlLayersetMinus1[LayerSetIdxForOutputLayerSet[i]]までの範囲内のiに対するsub_layer_dpb_info_present_flag[i][j]が存在することを示す。sub_layer_flag_info_present_flag[i]が0に等しいことは、0より大きいjの各値に対するsub_layer_dpb_info_present_flag[i][j]が存在しないことを示し、その値は0に等しいと推測される。
sub_layer_dpb_info_present_flag[i][j]が1に等しいことは、j番目のサブレイヤに対して、両端値を含めて0からNumSubDpbs[LayerSetIdxForOutputLayerSet[i]]−1までの範囲内のkに対してmax_vps_dec_pic_buffering_minus1[i][k][j]が存在し、かつj番目のサブレイヤに対してmax_vps_num_reorder_pics[i][j]およびmax_vps_latency_increase_plus1[i][j]が存在することを示す。sub_layer_dpb_info_present_flag[i][j]が0に等しいことは、両端値を含めて0からNumSubDpbs[LayerSetIdxForOutputLayerSet[i]]−1までの範囲内のkに対してmax_vps_dec_pic_buffering_minus1[i][k][j]の値がmax_vps_dec_pic_buffering_minus1[i][k][j−1]に等しく、かつmax_vps_num_reorder_pics[i][j]およびmax_vps_latency_increase_plus1[i][j]の値がそれぞれmax_vps_num_reorder_pics[i][j−1]およびmax_vps_latency_increase_plus1[i][j−1]に等しく設定されることを示す。あらゆる可能な値のiに対するsub_layer_dpb_info_present_flag[i][0]の値は、1に等しいと推測される。存在しないとき、0よりも大きいjおよびあらゆる可能な値のiに対するsub_layer_dpb_info_present_flag[i][j]の値は、0に等しいものと等しいと推測される。
max_vps_dec_pic_buffering_minus1[i][k][j]プラス1は、HighestTidがjに等しいときの、ピクチャ記憶バッファの単位での、i番目の出力レイヤセットにおけるCVSに対するk番目のサブDPBの最大要求サイズを示す。jが0より大きいとき、max_vps_dec_pic_buffering_minus1[i][k][j]はmax_vps_dec_pic_buffering_minus1[i][k][j−1]以上になる。両端値を含めて1からMaxSlLayersetMinus1[LayerSetIdxForOutputLayerSet[i]]までの範囲内のjに対するmax_vps_dec_pic_buffering_minus1[i][k][j]が存在しないとき、max_vps_dec_pic_buffering_minus1[i][k][j]はmax_vps_dec_pic_buffering_minus1[i][k][j−1]に等しいと推測される。
max_vps_layer_dec_pic_buff_minus1[i][k][j]プラス1は、HighestTidがjに等しいときに、DPBに保存される必要のあるi番目の出力レイヤセットにおけるCVSに対するk番目のレイヤの復号ピクチャの最大数を示す。jが0より大きいとき、max_vps_layer_dec_pic_buff_minus1[i][k][j]はmax_vps_layer_dec_pic_buff_minus1[i][k][j−1]以上になる。両端値を含めて0からMaxSlLayersetMinus1[LayerSetIdxForOutputLayerSet[i]]までの範囲内のjに対するmax_vps_layer_dec_pic_buff_minus1[i][k][j]が存在しないとき、max_vps_layer_dec_pic_buff_minus1[i][k][j]はmax_vps_layer_dec_pic_buff_minus1[i][k][j−1]に等しいと推測される。
max_vps_num_reorder_pics[i][j]は、HighestTidがjに等しいときに、復号順でCVSにおけるi番目の出力レイヤセットにおける1に等しいPicOutputFlagを有するピクチャを含む任意のアクセスユニットauAに先行でき、かつ出力順で1に等しいPicOutputFlagを有するピクチャを含むアクセスユニットauAに後続できる、1に等しいPicOutputFlagを有するピクチャを含むアクセスユニットの最大許容数を示す。sub_layer_dpb_info_present_flag[i][j]が0に等しいために、両端値を含めて1からMaxSlLayersetMinus1[LayerSetIdxForOutputLayerSet[i]]までの範囲内のjに対するmax_vps_num_reorder_pics[i][j]が存在しないとき、max_vps_num_reorder_pics[i][j]はmax_vps_num_reorder_pics[i][j−1]に等しいと推測される。
HighestTidがjに等しいときに、出力順でCVSにおける1に等しいPicOutputFlagを有するピクチャを含む任意のアクセスユニットauAに先行、かつ復号順で1に等しいPicOutputFlagを有するピクチャを含むアクセスユニットauAに後続する、i番目の出力レイヤセットにおける1に等しいPicOutputFlagを有するピクチャを含むアクセスユニットの最大数を示すVpsMaxLatencyPictures[i][j]の値を計算するために、0に等しくないmax_vps_latency_increase_plus1[i][j]が使用される。sub_layer_dpb_info_present_flag[i][j]が0に等しいために、両端値を含めて1からMaxSlLayersetMinus1[LayerSetIdxForOutputLayerSet[i]]までの範囲内のjに対するmax_vps_latency_increase_plus1[i][j]が存在しないとき、max_vps_latency_increase_plus1[i][j]はmax_vps_latency_increase_plus1[i][j−1]に等しいと推測される。
max_vps_latency_increase_plus1[i][j]が0に等しくないとき、VpsMaxLatencyPictures[i][j]の値は次のとおりに示される。
max_vps_latency_increase_plus1[i][j]が0に等しいとき、対応する制限は表現されない。max_vps_latency_increase_plus1[i][j]の値は、両端値を含めて0から232−2までの範囲内となる。
別の実施形態において、max_vps_layer_dec_pic_buff_minus1[i][k][j]プラス1は、HighestTidがjに等しいときに、DPBに保存される必要のあるi番目の出力レイヤセットにおけるCVSに対するk番目のレイヤの復号ピクチャの最大数を示す。jが0より大きいとき、max_vps_layer_dec_pic_buff_minus1[i][k][j]はmax_vps_layer_dec_pic_buff_minus1[i][k][j−1]以上になる。両端値を含めて0からMaxSubLayersInLayerSetMinus1[i]までの範囲内のjに対するmax_vps_layer_dec_pic_buff_minus1[i][k][j]が存在しないとき、max_vps_layer_dec_pic_buff_minus1[i][k][j]はmax_vps_layer_dec_pic_buff_minus1[i][k][j−1]に等しいと推測される。
HEVC(JCTVC−L1003)、SHVC(JCTVC−N1008)およびMV−HEVC(JCT3V−E1004)においては、アクセスユニットのすべてのVCL NALユニットに対するTemporalIdの値が同じになることが要求される。アクセスユニットのTemporalIdの値は、アクセスユニットのVCL NALユニットのTemporalIdの値である。
HEVCに対して、アクセスユニットはNALユニットのセットとして定義され、それらのNALユニットは指定された分類規則に従って互いに関連付けられ、復号順に連続しており、かつ厳密に1つの符号化ピクチャを含む。
SHVCおよびMV−HEVCにおいて、アクセスユニットはNALユニットのセットとして定義され、それらのNALユニットは指定された分類規則に従って互いに関連付けられ、復号順に連続しており、かつ同じ出力時間に関連するすべての符号化ピクチャのVCL NALユニットと、VCL NALユニットに関連する非VCL NALユニットとを含む。
SHVCおよびMV−HEVCにおいて、IRAPピクチャはレイヤ間で整列されない。このことは、異なるレイヤに対する頻度の異なるIRAPを可能にする。加えて、レイヤ間での非整列は、他のレイヤに対して同じアクセスユニット内でIRAPピクチャが符号化されることを必要とせずに、任意のレイヤにおけるIRAPピクチャの柔軟な配置を可能にする。しかし、HEVC、SHVCおよびMV−HEVCにおいて、nal_unit_typeが両端値を含めてBLA_W_LPからRSV_IRAP_VCL23までの範囲内にあるとき、すなわち符号化スライスセグメントがIRAPピクチャに属するとき、TemporalIdは0に等しくなる。
よって、SHVCおよびMV−HEVCにおいては、同じアクセスユニット内の他のレイヤのIRAPピクチャを必要とすることなく、アクセスユニット内の任意のレイヤにおいてIRAPピクチャを柔軟に符号化できるが、現在もなお、アクセスユニット内の任意のレイヤにおいてIRAPピクチャが符号化されるときは、同じアクセスユニット内の他のすべてのレイヤが0に等しいTemporalIdを有する符号化ピクチャを有さなければならないことが要求される。この要求によって、とり得る符号化構造の柔軟性に対して不必要な制限が加わると言われている。たとえば、以下のシナリオは現在SHVCおよびMV−HEVCにおいてとりえない。
特定のレイヤ(例、ベースレイヤ)が、各符号化ピクチャがIRAPピクチャである全イントラ構成によって符号化されるとき、他のすべてのレイヤに対するそれらのアクセスユニット内のすべての連結ピクチャは、0に等しいTemporalIdによって(0に等しいTemporalIdを有するIRAPピクチャまたは非IRAPピクチャのいずれかとして)符号化される必要があり、このことはそれらのピクチャに対して時間サブレイヤを使用できないことを意味する。この制限を図51に示す。よって、現在のSHVCおよびMV−HEVC仕様による符号化構成は、ベースレイヤのすべての符号化ピクチャがIRAPピクチャである、図51に示される構成と類似のものにしかなり得ない。この場合、エンハンスメントレイヤ1に対する同じAU内のすべての符号化ピクチャは、0に等しいTemporalIdによって符号化される必要がある。
より柔軟な符号化構造を支援するためのTemporalIDアライメントの変更を以下に説明する。説明される変更は、SHVCおよびMV−HEVCにおいてより柔軟な符号化構造がとりうることを可能にする。以下に説明される変更によって、図52に示される符号化構造がとりうる。図52の符号化構造において、ベースレイヤはすべてIRAPピクチャである符号化ピクチャからなり、よってそれらの符号化ピクチャは0に等しいTemporalIdを有する。しかし、同じAU内のエンハンスメントレイヤ1ピクチャは、TemporalId0とは異なるTemporalIdによって符号化され得る。よって、ベースレイヤピクチャがIRAPピクチャであって0に等しいTemporalIdを有するのと同じAU内で、エンハンスメントレイヤ1ピクチャはTemporalId1を有し得る。
SHVCおよびMV−HEVCにおいてこの柔軟性を達成するための変更を、次に説明する。
非イントラランダムアクセスポイント(Non−intra random access point:非IRAP)アクセスユニットは、中の「符号化ピクチャ」が「IRAPピクチャ」ではない「アクセスユニット」として定義される。
非イントラランダムアクセスポイント(非IRAP)ピクチャは、符号化「ピクチャ」であって、その符号化「ピクチャ」に対する各「VCL NALユニット」が、両端値を含めてBLA_W_LPからRSV_IRAP_VCL23までの範囲内の任意の値を除くVCL NALユニットタイプ値を有するnal_unit_typeを有するような符号化「ピクチャ」として定義される。
なお、非IRAPピクチャとは、BLAピクチャでも、CRAピクチャでも、IDRピクチャでもないピクチャのことである。
nuh_temporal_id_plus1マイナス1は、NALユニットに対する時間識別子を示す。nuh_temporal_id_plus1の値は0に等しくならない。
変数TemporalIdは、TemporalId=nuh_temporal_id_plus1−1と示され得る。
nal_unit_typeが両端値を含めてBLA_W_LPからRSV_IRAP_VCL23までの範囲内にあるとき、すなわち符号化スライスセグメントがIRAPピクチャに属するとき、TemporalIdは0に等しくなる。そうでなければ、nal_unit_typeがTSA_R、TSA_N、STSA_R、またはSTSA_Nに等しいとき、TemporalIdは0に等しくならない。
アクセスユニット内のすべての非IRAP符号化ピクチャのすべてのVCL NALユニットに対して、TemporalIdの値は同じになる。アクセスユニットにおいて、すべてのVCL NALユニットが両端値を含めてBLA_W_LPからRSV_IRAP_VCL23までの範囲内のnal_unit_typeを有するとき、すなわち符号化スライスセグメントがIRAPピクチャに属するとき、アクセスユニットのTemporal IDの値は0である。そうでなければ、アクセスユニットのTemporalIdの値は、アクセスユニット内の非IRAP符号化ピクチャのVCL NALユニットのTemporalIdの値である。
非VCL NALユニットに対するTemporalIdの値は、次のとおりの制約を受ける。
もしnal_unit_typeがVPS_NUTまたはSPS_NUTに等しければ、TemporalIdは0に等しくなり、かつNALユニットを含むアクセスユニットのTemporalIdは0に等しくなる。
そうでなければ、もしnal_unit_typeがEOS_NUTまたはEOB_NUTに等しければ、TemporalIdは0に等しくなる。
そうでなければ、もしnal_unit_typeがAUD_NUTまたはFD_NUTに等しければ、TemporalIdは、NALユニットを含むアクセスユニットのTemporalIdに等しくなる。
そうでなければ、TemporalIdは、NALユニットを含むアクセスユニットのTemporalId以上になる。
なお、NALユニットが非VCL NALユニットであるとき、TemporalIdの値は、その非VCL NALユニットが適用されるすべてのアクセスユニットのTemporalId値の最小値に等しい。nal_unit_typeがPPS_NUTに等しいとき、すべてのPPSはビットストリームの最初に含まれ得るため、TemporalIdは含有アクセスユニットのTemporalId以上であってもよく、ここで第1の符号化ピクチャは0に等しいTemporalIdを有する。nal_unit_typeがPREFIX_SEI_NUTまたはSUFFIX_SEI_NUTに等しいとき、TemporalIdは含有アクセスユニットのTemporalId以上であってもよい。なぜなら、SEI NALユニットは、たとえばバッファリング期間SEIメッセージまたはピクチャタイミングSEIメッセージなどの中に、そのSEI NALユニットを含むアクセスユニットのTemporalIdよりも大きなTemporalId値を有するアクセスユニットを含むビットストリームサブセットに適用される情報を含み得るからである。
変形実施形態において、TemporalIdの値は、アクセスユニット内の両端値を含めてBLA_W_LPからRSV_IRAP_VCL23までの範囲内の値を除く任意の値に等しいnal_unit_typeを有するすべてのVCL NALユニットに対して同じになる。アクセスユニットにおいて、すべてのVCL NALユニットが、両端値を含めてBLA_W_LPからRSV_IRAP_VCL23までの範囲内のnal_unit_typeを有するとき、すなわち符号化スライスセグメントがIRAPピクチャに属するとき、アクセスユニットのTemporal IDの値は0である。そうでなければ、アクセスユニットのTemporalIdの値は、アクセスユニット内の非IRAP符号化ピクチャのVCL NALユニットのTemporalIdの値である。
別の変形実施形態において、TemporalIdの値は、アクセスユニット内の両端値を含めてBLA_W_LPからRSV_IRAP_VCL23までの範囲内の値を除く任意の値に等しいnal_unit_typeを有するすべてのVCL NALユニットに対して同じになる。アクセスユニットのTemporalIdの値は、アクセスユニット内のVCL NALユニットの最高TemporalIdの値である。
さらなる変形実施形態において、TemporalIdの値は、アクセスユニット内のすべての非IRAP符号化ピクチャのすべてのVCL NALユニットに対して同じになる。アクセスユニットのTemporalIdの値は、アクセスユニット内のVCL NALユニットの最高TemporalIdの値である。
以前に述べたとおり、HEVC(JCTVC−L1003)、SHVC(JCTVC−N1008)およびMV−HEVC(JCT3V−E1004)においては、アクセスユニットのすべてのVCL NALユニットに対してTemporalIdの値が同じになることが要求される。
加えてHEVC、SHVC、およびMV−HEVCにおいて、nal_unit_typeが両端値を含めてBLA_W_LPからRSV_IRAP_VCL23までの範囲内にあるとき、すなわち符号化スライスセグメントがIRAPピクチャに属するとき、TemporalIdは0に等しくなる。
さらに、nal_unit_typeがTSA_R、TSA_N、STSA_R、またはSTSA_Nに等しいとき、TemporalIdは0に等しくならないことが要求される。
加えてHEVC、SHVC、およびMV−HEVCにおいては、次のとおりのさらなる制限が存在する。
レイヤlayerAの1つのピクチャpicAがTSA_NまたはTSA_Rに等しいnal_unit_typeを有するとき、layerAの直接または間接参照レイヤにおけるpicAと同じアクセスユニット内の各ピクチャは、TSA_NまたはTSA_Rに等しいnal_unit_typeを有する。
レイヤlayerAの1つのピクチャpicAがSTSA_NまたはSTSA_Rに等しいnal_unit_typeを有するとき、layerAの直接または間接参照レイヤにおけるpicAと同じアクセスユニット内の各ピクチャは、STSA_NまたはSTSA_Rに等しいnal_unit_typeを有する。
よって、HEVC、SHVC、およびMV−HEVCにおける現在のすべての制限によって、同じアクセスユニット内の任意の他のピクチャがIRAPピクチャであるときに、レイヤはTSAまたはSTSAピクチャを符号化できない。さらにこの場合には、レイヤの直接および間接参照レイヤにおいてTSAまたはSTSAピクチャを符号化する必要がある。この現在の制限が図53に示されており、この制限によって符号化構造の柔軟性が低くなる。図53において、エンハンスメントレイヤ1は、ベースレイヤを自身の直接参照レイヤとして使用している。エンハンスメントレイヤ1においてTSAピクチャが符号化されているとき、ベースレイヤの同じアクセスユニットにおいてTSAピクチャが符号化される必要がある。同様に、エンハンスメントレイヤ1においてSTSAピクチャが符号化されているとき、ベースレイヤの同じアクセスユニットにおいてSTSAピクチャが符号化される必要がある。このことが柔軟性を制限する。
より柔軟なシナリオにおいては、もしIDRピクチャが直接または間接参照レイヤの1つにおいて符号化されることができ、かつTSAまたはSTSAピクチャが他のレイヤにおいて符号化されることができれば、そのアクセスユニットにおける時間レイヤアップスイッチングをなおもとりうる。図54は、こうした柔軟な符号化構造を示す。図54の符号化構造において、エンハンスメントレイヤ1においてTSAピクチャが符号化されているとき、図53と同様にベースレイヤの同じアクセスユニットにおいてTSAピクチャが符号化されてもよい。このシナリオは図54に示されていないがとりうる。加えて図54に示されるとおり、出力時間t2において、エンハンスメントレイヤ1においてTSAピクチャが符号化されているとき、ベースレイヤの同じアクセスユニットにおいてIDRピクチャ(または変形実施形態においてはIRAPピクチャ)が符号化されてもよい。同様に図54に示されるとおり、出力時間t3において、エンハンスメントレイヤ1においてSTSAピクチャが符号化されているとき、ベースレイヤの同じアクセスユニットにおいてIDRピクチャ(または変形実施形態においてはIRAPピクチャ)が符号化されてもよい。加えて、図54の符号化構造において、エンハンスメントレイヤ1においてSTSAピクチャが符号化されているとき、図53と同様にベースレイヤの同じアクセスユニットにおいてSTSAピクチャが符号化されてもよい。このシナリオは図54に示されていないがとりうる。図54に示される全体の柔軟性は、現在SHVCおよびMV−HEVCによって許容されていない。
より柔軟な符号化構造を支援するための、TSAおよびSTSAピクチャのアライメントの変更を次に説明する。これらの変更は、TSAおよびSTSAピクチャを使用するときに、図54に示される符号化構造の例およびその他の類似の柔軟な符号化構造を可能にするものである。
nal_unit_typeは、表(1)に示されるとおりのNALユニットに含まれるRBSPデータ構造のタイプを示す。
レイヤlayerAの1つのピクチャpicAがTSA_NまたはTSA_Rに等しいnal_unit_typeを有するとき、layerAの直接または間接参照レイヤにおけるpicAと同じアクセスユニット内の各ピクチャは、TSA_NまたはTSA_RまたはIDR_W_RADLまたはIDR_N_LPに等しいnal_unit_typeを有する。
レイヤlayerAの1つのピクチャpicAがSTSA_NまたはSTSA_Rに等しいnal_unit_typeを有するとき、layerAの直接または間接参照レイヤにおけるpicAと同じアクセスユニット内の各ピクチャは、STSA_NまたはSTSA_RまたはIDR_W_RADLまたはIDR_N_LPに等しいnal_unit_typeを有する。
変形実施形態において、nal_unit_typeは、表(1)に示されるとおりのNALユニットに含まれるRBSPデータ構造のタイプを示す。
レイヤlayerAの1つのピクチャpicAがTSA_NまたはTSA_Rに等しいnal_unit_typeを有するとき、layerAの直接または間接参照レイヤにおけるpicAと同じアクセスユニット内の各ピクチャは、TSA_NまたはTSA_RまたはIDR_N_LPに等しいnal_unit_typeを有する。
レイヤlayerAの1つのピクチャpicAがSTSA_NまたはSTSA_Rに等しいnal_unit_typeを有するとき、layerAの直接または間接参照レイヤにおけるpicAと同じアクセスユニット内の各ピクチャは、STSA_NまたはSTSA_RまたはIDR_N_LPに等しいnal_unit_typeを有する。
変形実施形態において、nal_unit_typeは、表(1)に示されるとおりのNALユニットに含まれるRBSPデータ構造のタイプを示す。
レイヤlayerAの1つのピクチャpicAがTSA_NまたはTSA_Rに等しいnal_unit_typeを有するとき、layerAの直接または間接参照レイヤにおけるpicAと同じアクセスユニット内の各ピクチャは、TSA_NまたはTSA_RまたはIDR_W_RADLまたはIDR_N_LPまたはBLA_W_LPまたはBLA_W_RADLまたはBLA_N_LPに等しいnal_unit_typeを有する。
レイヤlayerAの1つのピクチャpicAがSTSA_NまたはSTSA_Rに等しいnal_unit_typeを有するとき、layerAの直接または間接参照レイヤにおけるpicAと同じアクセスユニット内の各ピクチャは、STSA_NまたはSTSA_RまたはIDR_W_RADLまたはIDR_N_LPまたはBLA_W_LPまたはBLA_W_RADLまたはBLA_N_LPに等しいnal_unit_typeを有する。
変形実施形態において、nal_unit_typeは、表(1)に示されるとおりのNALユニットに含まれるRBSPデータ構造のタイプを示す。
レイヤlayerAの1つのピクチャpicAがTSA_NまたはTSA_Rに等しいnal_unit_typeを有するとき、layerAの直接または間接参照レイヤにおけるpicAと同じアクセスユニット内の各ピクチャは、TSA_NまたはTSA_RまたはIDR_W_RADLまたはIDR_N_LPまたはBLA_W_LPまたはBLA_W_RADLまたはBLA_N_LPまたはCRA_NUTに等しいnal_unit_typeを有する。
レイヤlayerAの1つのピクチャpicAがSTSA_NまたはSTSA_Rに等しいnal_unit_typeを有するとき、layerAの直接または間接参照レイヤにおけるpicAと同じアクセスユニット内の各ピクチャは、STSA_NまたはSTSA_RまたはIDR_W_RADLまたはIDR_N_LPまたはBLA_W_LPまたはBLA_W_RADLまたはBLA_N_LPまたはCRA_NUTに等しいnal_unit_typeを有する。
変形実施形態において、nal_unit_typeは、表(1)に示されるとおりのNALユニットに含まれるRBSPデータ構造のタイプを示す。
レイヤlayerAの1つのピクチャpicAがTSA_NまたはTSA_Rに等しいnal_unit_typeを有するとき、layerAの直接または間接参照レイヤにおけるpicAと同じアクセスユニット内の各ピクチャは、TSA_NまたはTSA_Rに等しいnal_unit_typeを有するか、またはまたは、nal_unit_typeは両端値を含めてBLA_W_LPからRSV_IRAP_VCL23までの範囲内にある。
レイヤlayerAの1つのピクチャpicAがSTSA_NまたはSTSA_Rに等しいnal_unit_typeを有するとき、layerAの直接または間接参照レイヤにおけるpicAと同じアクセスユニット内の各ピクチャは、STSA_NまたはSTSA_Rに等しいnal_unit_typeを有するか、または、nal_unit_typeは両端値を含めてBLA_W_LPからRSV_IRAP_VCL23までの範囲内にある。
nuh_layer_idはレイヤの識別子を示す。
nal_unit_typeがAUD_NUTに等しいとき、nuh_layer_idの値は、アクセスユニット内のすべてのVCL NALユニットのnuh_layer_id値の最小値に等しくなる。
nal_unit_typeがVPS_NUTに等しいとき、nuh_layer_idの値は0に等しくなる。デコーダは、VPS_NUTに等しいnal_unit_typeおよび0より大きいnuh_layer_idを有するNALユニットを無視する。
nuh_temporal_id_plus1マイナス1は、NALユニットに対する時間識別子を示す。nuh_temporal_id_plus1の値は0に等しくならない。
変数TemporalIdは次のとおりに示される。
nal_unit_typeが両端値を含めてBLA_W_LPからRSV_IRAP_VCL23までの範囲内にあるとき、すなわち符号化スライスセグメントがIRAPピクチャに属するとき、TemporalIdは0に等しくなる。そうでなければ、nal_unit_typeがTSA_R、TSA_N、STSA_R、またはSTSA_Nに等しいとき、TemporalIdは0に等しくならない。
アクセスユニット内のすべての非IRAP符号化ピクチャのすべてのVCL NALユニットに対して、TemporalIdの値は同じになる。アクセスユニットにおいて、すべてのVCL NALユニットが両端値を含めてBLA_W_LPからRSV_IRAP_VCL23までの範囲内のnal_unit_typeを有するとき、すなわち符号化スライスセグメントがIRAPピクチャに属するとき、アクセスユニットのTemporal IDの値は0である。そうでなければ、アクセスユニットのTemporalIdの値は、アクセスユニット内の非IRAP符号化ピクチャのVCL NALユニットのTemporalIdの値である。
非VCL NALユニットに対するTemporalIdの値は、次のとおりの制約を受ける。
もしnal_unit_typeがVPS_NUTまたはSPS_NUTに等しければ、TemporalIdは0に等しくなり、かつNALユニットを含むアクセスユニットのTemporalIdは0に等しくなる。
そうでなければ、もしnal_unit_typeがEOS_NUTまたはEOB_NUTに等しければ、TemporalIdは0に等しくなる。
そうでなければ、もしnal_unit_typeがAUD_NUTまたはFD_NUTに等しければ、TemporalIdは、NALユニットを含むアクセスユニットのTemporalIdに等しくなる。
そうでなければ、TemporalIdは、NALユニットを含むアクセスユニットのTemporalId以上になる。
NALユニットが非VCL NALユニットであるとき、TemporalIdの値は、その非VCL NALユニットが適用されるすべてのアクセスユニットのTemporalId値の最小値に等しい。nal_unit_typeがPPS_NUTに等しいとき、すべてのPPSはビットストリームの最初に含まれ得るため、TemporalIdは含有アクセスユニットのTemporalId以上であってもよく、ここで第1の符号化ピクチャは0に等しいTemporalIdを有する。nal_unit_typeがPREFIX_SEI_NUTまたはSUFFIX_SEI_NUTに等しいとき、TemporalIdは含有アクセスユニットのTemporalId以上であってもよい。なぜなら、SEI NALユニットは、たとえばバッファリング期間SEIメッセージまたはピクチャタイミングSEIメッセージなどの中に、そのSEI NALユニットを含むアクセスユニットのTemporalIdよりも大きなTemporalId値を有するアクセスユニットを含むビットストリームサブセットに適用される情報を含み得るからである。
あるべきまたは必要であるとして示される特徴のいずれかが、所望に応じて省略されてもよいことが理解されるべきである。加えて、それらの特徴が所望に応じて異なる組み合わせで組み合わされてもよい。
「コンピュータ読取り可能媒体」という用語は、コンピュータまたはプロセッサによるアクセスが可能なあらゆる利用可能な媒体を示す。本明細書において用いられる「コンピュータ読取り可能媒体」という用語は、非一時的かつ有形なコンピュータおよび/またはプロセッサ読取り可能媒体を示し得る。限定ではなく例として、コンピュータ読取り可能媒体またはプロセッサ読取り可能媒体は、RAM、ROM、EEPROM(登録商標)、CD−ROMもしくはその他の光ディスク記憶装置、磁気ディスク記憶装置もしくはその他の磁気記憶装置、または、命令もしくはデータ構造の形の所望のプログラムコードを保有もしくは保存するために使用でき、かつコンピュータもしくはプロセッサによるアクセスが可能なあらゆるその他の媒体を含んでもよい。本明細書において用いられるディスク(Disk)およびディスク(disc)は、コンパクトディスク(compact disc:CD)、レーザディスク、光ディスク、デジタル多用途ディスク(digital versatile disc:DVD)、フロッピー(登録商標)ディスク、およびBlu−ray(登録商標)ディスクを含み、ここでディスク(disk)は通常データを磁気的に再生するのに対し、ディスク(disc)はデータをレーザによって光学的に再生する。
なお、本明細書に記載される方法の1つまたはそれ以上が、ハードウェアにおいて実施されるか、および/またはハードウェアを用いて実行されてもよい。たとえば、本明細書に記載される方法またはアプローチの1つまたはそれ以上が、チップセット、ASIC、大規模集積回路(LSI)、もしくは集積回路などにおいて実施されるか、および/またはこうした回路を用いて実現されてもよい。
本明細書において開示される各々の方法は、記載される方法を達成するための1つまたはそれ以上のステップまたは動作を含む。これらの方法ステップおよび/または動作は、請求項の範囲から逸脱することなく互いに交換されても、および/または組み合わされて単一のステップにされてもよい。言換えると、記載される方法の適切な動作のために特定の順序のステップまたは動作が必要とされるのでない限り、特定のステップおよび/または動作の順序および/または使用は、請求項の範囲から逸脱することなく修正され得る。
請求項は上記に示された厳密な構成および構成要素に限定されないことが理解されるべきである。請求項の範囲から逸脱することなく、本明細書に記載されるシステム、方法および装置の配置、動作および詳細にさまざまな修正、変更および変形が行われ得る。