電子デバイスにおいて参照ピクチャセットをシグナリングするための方法について説明する。現ピクチャに対応する、前にシグナリングされた参照ピクチャセット(RPS)が示される。前にシグナリングされたRPSのピクチャに対して、もしそのピクチャが現ピクチャに対する参照ピクチャとして用いられるのであれば、第1のフラグが設定される。もしそのピクチャが現ピクチャに対する参照ピクチャとして用いられないのであれば、前にシグナリングされたRPSのピクチャに対する第1のフラグは設定されない。ビットストリームが送られる。
現RPSに対する現ピクチャ使用フラグは送られなくてもよい。前にシグナリングされたRPSは、前にシグナリングされたRPSのセットに対するインデックスとしてシグナリングされてもよい。前にシグナリングされたRPSは、前にシグナリングされたRPSの別の参照ピクチャの、少なくとも1つの対応値を含んでもよい。この少なくとも1つの対応値は、前にシグナリングされたRPSの第2の参照ピクチャの現ピクチャ使用フラグ値であってもよい。前にシグナリングされたRPSは、予測短期参照ピクチャセット存在フラグによって示されてもよい。
第1のフラグはピクチャ保持フラグであってもよい。現ピクチャは、ランダムアクセスポイント後の第1のグループオブピクチャ(GOP)の中にあってもよい。前にシグナリングされたRPSは、削除動作を介してシグナリングされてもよい。前にシグナリングされたRPSは、ピクチャパラメータセット(picture parameter set:PPS)、シーケンスパラメータセット(sequence parameter set:SPS)、適応パラメータセット(adaptation parameter set:APS)、ビデオパラメータセット(video parameter set:VPS)、およびスライスヘッダ(slice header:SH)のうちの1つから送られてもよい。前にシグナリングされたRPSは、ビットストリーム内のエレメントから送られてもよい。
加えて、参照ピクチャセットをシグナリングするための電子デバイスについて説明する。この電子デバイスは、プロセッサと、このプロセッサと電子通信を行うメモリに保存された実行可能な命令とを含む。電子デバイスは、現ピクチャに対応する、前にシグナリングされた参照ピクチャセット(RPS)を示す。電子デバイスはさらに、前にシグナリングされたRPSのピクチャに対して、もしそのピクチャが現ピクチャに対する参照ピクチャとして用いられるのであれば、第1のフラグを設定する。電子デバイスはさらに、もしそのピクチャが現ピクチャに対する参照ピクチャとして用いられないのであれば、前にシグナリングされたRPSのピクチャに対する第1のフラグを設定しない。電子デバイスはさらに、ビットストリームを送る。
加えて、電子デバイスにおいて参照ピクチャセットを復号するための方法について説明する。ビットストリームが得られる。現ピクチャが得られる。前にシグナリングされた参照ピクチャセット(RPS)が得られる。前にシグナリングされたRPSのピクチャに対して、もしそのピクチャが現ピクチャに対する参照ピクチャとして用いられる必要があるのであれば、第1のフラグ表示が得られる。もし第1のフラグが正であれば、前にシグナリングされたRPSの少なくとも1つの対応値から第2のフラグが定められる。現ピクチャが復号される。
現ピクチャの復号は、第2のフラグに基づいていてもよい。第1のフラグはピクチャ保持フラグであってもよい。第2のフラグは現ピクチャ使用フラグであってもよい。
少なくとも1つの対応値は、前にシグナリングされたRPSから得られてもよい。少なくとも1つの対応値は、前にシグナリングされたRPSの第2の参照ピクチャの現ピクチャ使用フラグ値であってもよい。少なくとも1つの対応値は、ブール値であってもよい。
現ピクチャは、ランダムアクセスポイント後の第1のグループオブピクチャ(GOP)の中にあってもよい。前にシグナリングされたRPSは、削除動作を介してシグナリングされてもよい。前にシグナリングされたRPSは、ピクチャパラメータセット(PPS)、シーケンスパラメータセット(SPS)、適応パラメータセット(APS)、ビデオパラメータセット(VPS)、およびスライスヘッダ(SH)のうちの1つから得られてもよい。前にシグナリングされたRPSは、ビットストリーム内のエレメントから得られてもよい。
加えて、参照ピクチャセットを復号するための電子デバイスについて説明する。この電子デバイスは、プロセッサと、このプロセッサと電子通信を行うメモリに保存された実行可能な命令とを含む。電子デバイスはビットストリームを得る。加えて電子デバイスは現ピクチャを得る。電子デバイスはさらに、前にシグナリングされた参照ピクチャセット(RPS)を得る。前にシグナリングされたRPSのピクチャに対して、もしそのピクチャが現ピクチャに対する参照ピクチャとして用いられる必要があるのであれば、電子デバイスは第1のフラグ表示を得る。もし第1のフラグが正であれば、電子デバイスは前にシグナリングされたRPSの少なくとも1つの対応値から第2のフラグを定める。加えて、電子デバイスは現ピクチャを復号する。
本明細書において開示されるシステムおよび方法は、電子デバイスにおいて参照ピクチャセット(RPS)信号オーバーヘッドを低減させるためのいくつかの構成を説明するものである。たとえば、本明細書において開示されるシステムおよび方法は、RPSを符号化および復号するステップを説明する。たとえば、RPSを復号するためのいくつかのアプローチが説明される。加えて、信号オーバーヘッドの低減を達成するようにRPSを符号化するためのアプローチも説明される。
RPSは、あるピクチャに関連する参照ピクチャのセットである。RPSは、関連ピクチャのインター予測のために用いられ、および/または復号順で関連ピクチャに続く任意のピクチャに対して用いられ得る、復号順で関連ピクチャの前にある参照ピクチャを含み得る。RPSは、復号化ピクチャバッファ(decoded picture buffer:DPB)の1つまたはそれ以上の参照ピクチャを記述する。この記述は、各ピクチャのスライスヘッダにおいて達成される。以前のビデオ符号化規格、たとえばH.264/AVCなどは、参照ピクチャを相対的な態様で参照していた。参照ピクチャセットの一部ではないDPB内のあらゆるピクチャは、「参照不使用」とマーク付けされてもよい。
DPBは、デコーダにおいて再構築(例、復号)されたピクチャを保存するために用いられてもよい。これらの保存ピクチャは、次いでたとえばインター予測機構などにおいて用いられてもよい。ピクチャがばらばらの順序で復号されるとき、それらのピクチャが後に順序どおりに表示され得るようにDPBに保存されてもよい。加えて、DPB内のピクチャがピクチャ順序カウント(picture order count:POC)に関連付けられてもよい。POCは、各符号化ピクチャに関連付けられた変数であってもよく、かつ出力順でのピクチャ位置の増加とともに増加する値を有する変数であってもよい。言換えると、POCは、ピクチャを表示のための正しい順序で送出するために、デコーダによって用いられ得る。加えてPOCは、参照ピクチャリストの構築および復号化参照ピクチャのマーク付けの際に、参照ピクチャを識別するために用いられ得る。
いくつかの構成において、参照ピクチャは、(たとえばdeltaPOCおよびcurrentPOCを用いた)相対(例、デルタ(delta))参照、または(たとえばPOCを用いた)絶対参照のいずれかを用いて参照される。たとえば、DPBは受信ピクチャのセットを含んでもよい。これらの受信ピクチャのサブセットが相対(例、デルタ)参照を使用してもよく、残りの受信ピクチャは絶対参照を使用してもよい。なお、本明細書に記載されるバッファの記述およびシンタックスの構成の1つまたはそれ以上を、本明細書に記載されるアプローチ(例、方法)の1つまたはそれ以上と組み合わせて実現してもよい。
RPSは、デコーダが保持すべきすべての参照ピクチャの情報のリストを含んでもよい。たとえばこの情報は、deltaPOCと呼ばれるインデックスのセットとして保存されてもよい。deltaPOCは、参照ピクチャのPOCを算出するために用いられてもよい。たとえば、POC_reference=POC_current+deltaPOCなどである。言換えると、復号されるピクチャの現(current)POCと、参照ピクチャのdeltaPOCとを用いることによって、参照ピクチャを相対的態様で位置付けてもよい。加えてRPSは、各参照ピクチャに対する時間ID、および/または、特定の参照ピクチャが現ピクチャによって使用されているかどうかを示すフラグを保存してもよい。
電子デバイスにおいてRPSがどのように働くかの例を以下に示す。インターフレーム(Inter−frame:I−フレーム)ピクチャを受信した後に、2つの双方向(bidirectional)予測(B−フレーム)ピクチャ、次いで2つの双方向予測(b−フレーム)ピクチャが続くものとする。B−フレームは、他のピクチャによる予測のために用いられる双方向予測ピクチャである。b−フレームは、他のピクチャによる予測のために用いられない双方向予測ピクチャである。
言換えると、ピクチャの受信順序はI0−B1−B2−b1−b2である。この例において、GOPサイズは4である。
さらに、I−フレームは0のPOCを有し、第1の受信b−フレームは1のPOCを有し、第2の受信B−フレームは2のPOCを有し、第1の受信b−フレームは3のPOCを有し、第1の受信B−フレームは4のPOCを有するものとする。言換えると、POCの順序はI0−b1−B2−b2−B1である。加えて、I−フレームはB1、B2およびb1に対する参照ピクチャの働きをし、B1はB2およびb2に対する参照ピクチャの働きをし、B2はb1およびb2に対する参照ピクチャの働きをするものとする。
この例において、復号順における第2のピクチャ(例、ピクチャB1/POC4)は、自身のRPSにPOC0(例、I0)のピクチャを含むこととなる。I0/POC0を保存するために、B1は自身のRPSインデックス値にdeltaPOC=−4を書込んでもよい。言換えると、現POCに対する参照POCの差が、インデックス値としてRPSに保存される。
復号順における第3のピクチャ(すなわちピクチャB2/POC2)は、自身のRPSにPOC0およびPOC4(例、B1)のピクチャを含むこととなる。よって、deltaPOC=−2および2というインデックス値がB2のRPSに保存される。
この例を続けると、復号順における第4のピクチャ(すなわちピクチャb2/POC1)は、自身のRPSにPOC0(例、I0)およびPOC2(例、B2)の両方のピクチャを含み得る。さらに、b2/POC1はPOC4(例、B1)も含み得る。なぜなら、POC4(例、B1)のピクチャは将来参照のために用いられるからである。ここで、b2のRPSにdeltaPOC−1、1、3が保存される。なお、RPSには正および負の両方のdeltaPOCが保存され得る。
この例の最後に、復号順における第5のピクチャ((すなわちピクチャb1/POC3)は、自身のRPSにPOC2(例、B2)およびPOC4(例、B1)のピクチャを含み得る。よって、b1のRPSにインデックス値として保存される相対値は、deltaPOC=−1および1である。なお、将来I0が参照に用いられるのでない限り、b1が自身のRPSにPOC0(例、I0)を含む必要はない。b1のRPSにPOC0(例、I0)が含まれないとき、POC0(例、I0)は「参照不使用」とマーク付けされてもよい。
RPSがリストされて構築されると、RPSをシグナリングすることが可能になる。RPSをシグナリングするためのさまざまなやり方が存在する。1つのアプローチに従うと、RPSの取り扱いに関連付けられたテンプレートのセットがピクチャパラメータセット(PPS)においてシグナリングされて、スライスヘッダのRPSインデックスを有する各スライスによって参照される。別の方法では、RPSはスライスヘッダにおいて明示的にシグナリングされてもよい。
以下のリスト(1)は、PPSにおいてRPSをシグナリングするためのシンタックスの一例を示すものである。
リスト(1)
「partial_ref_pic_set_flag」[i]は、部分RPSを生成するために全RPS[i]を使用することを示す。Ref_flagは、全RPS[i]のどの参照インデックスを部分RPSにコピーするかを指定する。
「seq_parameter_set_id」は、ピクチャパラメータセットによって参照されるシーケンスパラメータセットを識別する。seq_parameter_set_idの値は、両端値を含めて、0から31の範囲内となる。
「pic_parameter_set_id」は、スライスヘッダにおいて参照されるピクチャパラメータセットを識別する。pic_parameter_set_idの値は、両端値を含めて、0から255の範囲内となる。「entropy_coding_mode_flag」は、シンタックスエレメントに適用されるエントロピー復号法を示す。
「num_ref_pic_sets」は、ピクチャパラメータセットにおいて指定される参照ピクチャセットの数を指定する。「num_negative_pics」は、以下のdelta_poc_s0_minus1[i]およびused_by_curr_pic_s0_flag[i]シンタックスエレメントの数を指定する。num_positive_picsは、以下の「delta_poc_s1_minus1」[i]およびused_by_curr_pic_s1_flag1[i]シンタックスエレメントの数を指定する。delta_poc_s0_minus1[i]プラス1は、2つのピクチャ順序カウント値の絶対差を指定する。
「used_by_curr_pic_s0_flag」[i]が0に等しいことは、現ピクチャのピクチャ順序カウントよりも小さいピクチャ順序カウントを有するi番目の参照ピクチャが、現ピクチャによる参照のために用いられないことを示す。「delta_poc_s1_minus1」[i]プラス1は、2つのピクチャ順序カウント値の絶対差を指定する。「used_by_curr_pic_s1_flag」[i]が0に等しいことは、現ピクチャのピクチャ順序カウントよりも大きいピクチャ順序カウントを有するi番目の参照ピクチャが、現ピクチャによる参照のために用いられないことを示す。
なお、リスト(1)で用いられるパラメータに対して与えられた定義は、本明細書において与えられるすべてのリストに適用され得る。さらに、後のリストにおいて与えられたパラメータの定義が、前に挙げられたリストにも適用されてもよい。
リスト(2)は、スライスヘッダにおいてRPSをシグナリングするためのシンタックスの一例を示すものである。
リスト(2)
「ref_pic_set_pps_flag」が1に等しいことは、現ピクチャの参照ピクチャセットが、アクティブピクチャパラメータセットのシンタックスエレメントを用いて作成されることを示す。ref_pic_set_pps_flagが0に等しいことは、現ピクチャの参照ピクチャセットが、スライスヘッダにおけるref_pic_set()シンタックス構造のシンタックスエレメントを用いて作成されることを示す。
「ref_pic_set_pps_idx」は、現ピクチャの参照ピクチャセットの作成に用いられるアクティブピクチャパラメータセットにおいて指定された参照ピクチャセットのリストに対するインデックスを指定する。
さらに、ピクチャの復号を助けるために、RPSテンプレートがデコーダにシグナリングされてもよい。テンプレートは、8つのピクチャがともにグループ化された(例、グループオブピクチャ(GOP))ランダムアクセス共通テスト条件に対するものであってもよい。下の表1は、ランダムアクセス共通テスト条件(GOP=8)に対するRPSテンプレートを示す。表1〜4においては、簡便のためにいくつかの用語を略記している。これらの用語は以下のとおりに略記されている。すなわち、Temporal_id(TId)、ref_buf_size(RBS)およびRPSインデックス値(RPSインデックス値)である。
表1
表1において、「タイプ」は使用されたフレームのタイプを示す。この場合、すべてのフレームはB−フレームである。なお、表に示されていないフレーム0はI−フレームである。表1において、Temporal_id(TId)はこのフレームの時間レイヤIDを指定しており、ref_buf_size(RBS)は現ピクチャが必要とする参照バッファサイズであり、ref_picはそのフレームが他のピクチャに対する参照ピクチャであるかどうかを示しており、#ref_picsは参照ピクチャの数であり、RPSインデックス値(RPS Idx値)は各対応フレームに対して各RPSに保存された参照ピクチャのインデックス値を表す。
瞬時復号リフレッシュ(instantaneous decoding refresh:IDR)またはクリーンランダムアクセス(clean random access:CRA)によって、1つまたはそれ以上の利用不可能な参照ピクチャを有するフレームに対して、付加的な部分RPSが生成されてもよい。表2は、ランダムアクセス共通テスト条件に対して生成された部分RPSに対するテンプレートを示す。
表2
部分RPSは、全RPSから作成されてもよい。表1において、フレーム1に対するRPSインデックスは−8、−10、−12および−16である。表2におけるフレーム1に対する部分RPSに対するRPSインデックスは−8のみである。同様に、表2において、部分RPSにおけるフレーム2および3は、表1に示される全RPSのフレームよりも少ない数の参照ピクチャを有する。よってこの例において、部分RPSが含むフレーム当りのRPSインデックス値の数は、全RPSよりも少ない。
表3は、低遅延共通テスト条件に対するテンプレートを示しており、ここでGOPは4に等しい。
表3
表3において、各GOPは4つのピクチャを有する。テンプレート内にも、各POC位置のピクチャに対応する4つのRPSがある。
RPS[0]は、POC1に対するインデックス値[−1,−5,−9,−13]を有し、
RPS[1]は、POC2に対するインデックス値[−1 −2 −6 −10]を有し、
RPS[2]は、POC3に対するインデックス値[−1,−3,−7,−11]を有し、
RPS[3]は、POC4に対するインデックス値[−1,−4,−8,−12]を有する。
これらの値は、シーケンス0,1,2,3,4,5,6,7,8,9,10,11,12,13,14などに対するものである。
表4は、低遅延共通テスト条件に対して生成された部分RPSに対するテンプレートを示すものである。表4は表3の続きである。
表4
表4においては、利用不可能な参照ピクチャを有するフレームに対して、付加的なインデックス参照が生成される。参照ピクチャは、IDRまたはCRAのために利用不可能になることがある。低遅延共通テストの場合に対する部分RPSを生成するとき、IDRまたはCRAの後のGOPにおける最初の数フレームに対するピクチャが選択される。たとえば、シーケンスの最初のフレーム1から4は第1のGOPに属し、第1のGOPは部分RPS[5]からRPS[8]を使用し、これらの部分RPSはRPS[0]からRPS[3]より導出される。フレーム5から8は第2のGOPに属して部分RPS[9]からRPS[12]を使用し、これらの部分RPSもRPS[0]からRPS[3]より導出される。フレーム9は第3のGOPに属して部分RPS[13]を使用し、この部分RPSはRPS[0]から導出される。
いくつかの構成において、部分RPSを導出する電子デバイスは、全RPSから部分RPSを導出するための規則を用いてもよい。たとえば、RPS番号7、8、9、11、12および13はすべて、RPSインデックス値−2(太字で示す)を加えてもよい。なお、このRPSインデックス値は相対的なものであり、現フレーム位置(例、現POC)に依存する。さらに、RPS番号8、9および10の各々は、RPSインデックス値−3(太字で示す)を加える。
たとえば高効率ビデオ符号化(High Efficiency Video Coding:HEVC)テストモデル(test model)(HM)5.0において指定されるアプローチなどの公知のアプローチに従うと、全RPSおよび部分RPSの両方がビットストリームにおいてシグナリングされる。たとえば、全RPSおよび部分RPSを含むRPSテンプレートが、ピクチャの最初にPPSにおいて送られる。このように送られることによって、ビットストリームにおいて不必要なオーバーヘッドが送られることになる。PPSにおいてRPSテンプレートをシグナリングすることによるこのオーバーヘッドは、たとえば数百ビットから数千ビットであり得る。さらに、部分RPSを生成するために、エンコーダにおいても余分かつ不必要な作業が行われる。よって、本明細書において開示されるシステムおよび方法に対する利益の1つは、受信した全RPSに基づいてデコーダ側で部分RPSテンプレートを生成することによって、RPSシグナリングオーバーヘッドが低減されることである。
加えて、たとえばHM5.0において指定されるアプローチなどの公知のアプローチに従うと、1つのRPS内で、負のインデックス間および正のインデックス間で参照ピクチャインデックスが差動符号化される。よって、RPSテンプレートに対するビット数を低減させるために、本明細書において開示されるシステムおよび方法を使用することによって、シグナリングされるビット数を低減させることは有益であり得る。ビット数を低減させることは、たとえばRPSインデックス値のリストを符号化するために必要なビット数を低減させることによって達成され得る。
本明細書において開示されるシステムおよび方法は、RPS信号オーバーヘッドを低減させることにおいて1つまたはそれ以上の付加的な利益を提供し得る。1つの構成においては、正のRPSインデックス値(例、参照インデックス)を符号化するために用いられるビットを低減させるために、正および負の参照インデックスの対称特性が用いられてもよい。別の構成においては、ビットストリームにおいて部分RPSを送るのではなく、デコーダにおいて部分RPSが導出されてもよい。付加的または代替的には、エンコーダおよびデコーダ側の両方で頻繁に使用されるRPSテンプレートを規定して、そのテンプレートがPPSにおいて簡単なインデックスによってシグナリングされることを可能にしてもよい。付加的または代替的には、全RPSを参照し、かつ参照ピクチャのいくつかを削除して部分RPSに到達することによって、部分RPSがシグナリングされてもよい。
ここで図面を参照しながらさまざまな構成について説明する。図面において、類似の参照番号は、機能的に類似するエレメントを示し得る。ここで図面に一般的に記載されて図示されるシステムおよび方法は、多様な異なる構成に配置および設計され得る。よって、図面に表されるいくつかの構成についての以下のより詳細な説明は、請求される範囲を制限することは意図されておらず、単にシステムおよび方法を表すものである。
図1は、RPS信号オーバーヘッドを低減させるためのシステムおよび方法が実現され得る1つまたはそれ以上の電子デバイス102a〜bの例を示すブロック図である。この例においては、電子デバイスA102aと、電子デバイスB102bとが示される。しかし、いくつかの構成においては、電子デバイスA102aおよび電子デバイスB102bに関して記載される特徴および機能の1つまたはそれ以上が、単一の電子デバイス内に組み合わされてもよいことに留意すべきである。
電子デバイスA102aは、エンコーダ104と、RPSインデックスイニシャライザモジュール(イニシャライザモジュール)108とを含む。電子デバイスA102aに含まれるエレメント(例、エンコーダ104およびイニシャライザモジュール108)の各々は、ハードウェア、ソフトウェア、またはその両方の組み合わせにおいて実現されてもよい。
電子デバイスA102aは、入力ピクチャ106を得てもよい。いくつかの構成において、入力ピクチャ106は、メモリから検索されるか、および/または別の電子デバイスから受信されて、画像センサを用いて電子デバイスA104aにおいて捕捉されてもよい。
エンコーダ104は、入力ピクチャ106を符号化して符号化データを生成してもよい。たとえば、エンコーダ104は一連の入力ピクチャ106(例、ビデオ)を符号化してもよい。1つの構成において、エンコーダ104はHEVCエンコーダであってもよい。符号化データはデジタルデータ(例、ビットストリーム)であってもよい。エンコーダ104は、入力信号に基づいてオーバーヘッドシグナリングを生成してもよい。
イニシャライザモジュール108は、RPSインデックス値の処理に用いられ得る。たとえばイニシャライザモジュール108は、正の参照ピクチャの処理に用いられる値を初期化してもよい。このデータはPPSに記録されてもよく、このデータに対するインデックスがピクチャのスライスヘッダにおいてシグナリングされてもよい。
電子デバイスA102aによって生成され得る初期化の種類について、以下により詳細に示す。なお、いくつかの構成において、イニシャライザモジュール108はエンコーダ104内に含まれることがある。イニシャライザモジュール108は、RPSシグナリングオーバーヘッドの低減を可能にし得る。
エンコーダ104(およびたとえばイニシャライザモジュール108)は、ビットストリーム114を生成してもよい。ビットストリーム114は、入力ピクチャ106に基づく符号化ピクチャデータを含んでもよい。いくつかの構成において、ビットストリーム114はさらに、たとえばスライスヘッダ情報、PPS情報などのオーバーヘッドデータを含んでもよい。オーバーヘッドデータについて、以下により詳細に示す。付加的な入力ピクチャ106が符号化されるとき、ビットストリーム114は1つまたはそれ以上の符号化ピクチャを含み得る。たとえばビットストリーム114は、1つまたはそれ以上の符号化参照ピクチャおよび/またはその他のピクチャを含み得る。
ビットストリーム114はデコーダ112に与えられてもよい。一例において、ビットストリーム114は、有線または無線リンクを用いて電子デバイスB102bに送信されてもよい。場合によっては、この送信はたとえばインターネットまたはローカルエリアネットワーク(Local Area Network:LAN)などのネットワークを介して行われてもよい。図1に示されるとおり、デコーダ112は、電子デバイスA102aのエンコーダ104とは分離して、電子デバイスB102bにおいて実現されてもよい。しかし、いくつかの構成においては、エンコーダ104およびデコーダ112が同じ電子デバイスにおいて実現されてもよいことに留意すべきである。エンコーダ104およびデコーダ112が同じ電子デバイスにおいて実現される実施においては、たとえばビットストリーム114はバスを介してデコーダ112に与えられてもよいし、デコーダ112による検索のためにメモリに保存されてもよい。
デコーダ112は、ハードウェア、ソフトウェア、またはその両方の組み合わせにおいて実現されてもよい。1つの構成において、デコーダ112はHEVCデコーダであってもよい。デコーダ112はビットストリーム114を受信(例、取得)してもよい。デコーダ112は、ビットストリーム114に基づいて復号化ピクチャ118(例、1つまたはそれ以上の復号化ピクチャ118)を生成してもよい。復号化ピクチャ118の表示、再生、メモリへの保存、および/または別のデバイスへの送信などが行われてもよい。
デコーダ112は、部分RPS決定モジュール120、RPSテンプレートモジュール122、および/またはRPS削除モジュール124を含んでもよい。部分RPS決定モジュール120は、デコーダ112がデコーダにおいて部分RPSを生成することを可能にしてもよい。たとえば、部分RPS決定モジュール120は、デコーダ112が受信した全RPSに基づいて部分RPSを生成してもよい。部分RPS決定モジュール120については、以下により詳細に説明する。
RPSテンプレートモジュール122は、ビットストリーム114において受信した信号に基づいてRPSテンプレートを作成してもよい。たとえば、RPSテンプレートモジュール122はテンプレートを作成するために、ビットストリームから得られるGOPサイズ、符号化構造および規則を用いてもよい。RPSテンプレートモジュール122については、以下により詳細に説明する。
いくつかの構成において、RPS削除モジュール124は欠損参照ピクチャを識別して、エンコーダ104にフィードバックを送り、1つまたはそれ以上の参照ピクチャが欠損していることをシグナリングしてもよい。RPS削除モジュール124は、現RPSまたは前に受信したRPSの1つまたはそれ以上のピクチャを削除するための、ビットストリーム内の命令を得てもよい。他の構成においては、エンコーダにフィードバックを送ることなくRPS削除命令が受信されてもよい。RPS削除モジュール124については、以下により詳細に説明する。
たとえばスケーラブル符号化シナリオなどの別の例において、ビットストリームは、異なる解像度のピクチャを含むことがある。この例において、参照ピクチャの集合は、同じピクチャの異なる解像度バージョンを含む(例、識別する)ことがある。
図2は、グループオブピクチャ(GOP)228の一構成を示すブロック図である。いくつかの構成において、GOP228は、たとえば最小復号遅延の符号化順を有する階層B構造などの階層符号化構造であってもよい。たとえば、GOP228は、4つの2進階層ステージを有する階層予測構造であってもよい。なお、図2に示すとおり、いくつかの構成においてはGOP228内のピクチャの数が8(例、GOPサイズ=8)であってもよい。
図2は、1つまたはそれ以上のピクチャ226を示す。場合によっては、これらのピクチャは参照ピクチャであり得る。各ピクチャ226は階層ステージに属してもよい。たとえばI−フレームピクチャ226は、たとえばステージ0などのベース階層ステージを有してもよい。場合によっては、I−フレームはIDRピクチャであり得る。B−フレームはステージ1、2または3を有し得る。場合によっては、ステージが時間的スケーラビリティに対応してもよい。言換えると、状態の数が増えるにつれて、現ピクチャを精密化する能力が増す。このやり方で、より低いステージを有するピクチャ226が、より高い対応ピクチャ226を用いて、明瞭さおよび精密さを増すことができる。
GOP228は、表示順またはPOC229によって順序付けられてもよい。しかし、符号化順230またはビットストリームからピクチャが得られる順序は、POC229の順序と異なることがある。
いくつかの構成において、GOP228内のピクチャ226は、対称的な階層パターンで順序付けられる。このタイプの構成において、負の参照ピクチャおよび正の参照ピクチャに対する最小距離は同じであり得る。すなわち、RPSにおける正のdeltaPOCおよび負のdeltaPOCの絶対値は、通常同じである。
たとえば、POC2は、復号される現ピクチャを示す現POC231であるものとする。現POC231によって示されるピクチャを復号するためには、RPSインデックス値232の1つまたはそれ以上を得る必要がある。この例において、現POC231によって示されるピクチャは、復号されるPOC2、POC4およびPOC6によって示されるピクチャを使用する。絶対値を用いる代わりに、現POC231はRPSに保存された相対値を用いて参照ピクチャを位置付ける。いくつかの場合には、ピクチャ226のスライスヘッダから直接RPSが得られる。他の場合には、RPSは、対応するピクチャ226のスライスヘッダからシグナリングされる際に、PPS内に位置する。ここで現POC231は、RPSインデックス値[−2,2,4]を得る。つまり、現POC231はdeltaPOC233a、deltaPOC233bおよびdeltaPOC233cを用いてピクチャ226を復号する。
現POCがPOC2であるこの例において、GOP228の対称的階層の性質は、RPSシグナリングオーバーヘッドの低減に有益であり得る。負のdeltaPOC233a(例、−2)を有する現POC231は、対応する対称的な正のdeltaPOC233b(例、2)を有するものと考えられる。この対称性を用いて、RPS信号オーバーヘッドを低減するためのアプローチが使用され得る。さまざまなこうしたアプローチ(例、方法)については、図5および図6に関連して以下により詳細に説明する。
別の例において、現POCがPOC4であると想定すると、1つのRPSインデックス値はdeltaPOC−4であり得る。加えてPOC4は、自身のRPSにdeltaPOC=4のインデックス値を有してもよく、このインデックス値は参照ピクチャPOC8を示す。現POC=POC4に対するさらなるRPS参照ピクチャは、POC2およびPOC6であってもよい。よってRPSインデックス値は[−4,−2,2,4]であってもよい。
さらに別の例において、現POCがPOC2であると想定すると、RPSはPOC0およびPOC4に対応するピクチャを含み得る。加えて、POC2のRPSにはインデックス値deltaPOC=6が保存されてもよい。なぜなら、deltaPOC=6のRPSインデックス値は、将来のピクチャによって参照ピクチャとして用いられ得るためにデコーダに保持される必要があり得る参照ピクチャを示すからである。言換えると、1つまたはそれ以上のピクチャを示す正のdeltaPOC値を有するRPSインデックス値は、復号される必要があり得る将来のピクチャに対する参照ピクチャの働きをするために、デコーダに保持される必要があり得る。
図3は、電子デバイス302のエンコーダ304の一構成を示すブロック図である。なお、電子デバイス302内に含まれるものとして図示されるエレメントの1つまたはそれ以上は、ハードウェア、ソフトウェア、またはその両方の組み合わせにおいて実現されてもよい。たとえば、電子デバイス302はエンコーダ304を含み、このエンコーダ304はハードウェア、ソフトウェア、またはその両方の組み合わせにおいて実現されてもよい。たとえば、エンコーダ304は回路、集積回路、特定用途向け集積回路(application−specific integrated circuit:ASIC)、実行可能な命令を有するメモリと電子通信を行うプロセッサ、ファームウェア、フィールドプログラマブルゲートアレイ(field−programmable gate array:FPGA)など、またはその組み合わせとして実現されてもよい。いくつかの構成において、エンコーダ304はHEVCコーダであってもよい。
電子デバイス302はサプライヤ334を含んでもよい。サプライヤ334は、ピクチャまたは画像データ(例、ビデオ)をソース306としてエンコーダ304に提供してもよい。サプライヤ334の例は、画像センサ、メモリ、通信インタフェース、ネットワークインタフェース、無線受信機、ポートなどを含む。
ソース306は、イントラフレーム予測モジュールおよび再構築バッファ340に提供されてもよい。加えてソース306は、動き推定および動き補償モジュール366と、減算モジュール346とに提供されてもよい。
イントラフレーム予測モジュールおよび再構築バッファ340は、ソース306および再構築データ380に基づいて、イントラモード情報358およびイントラ信号342を生成してもよい。動き推定および動き補償モジュール366は、ソース306および参照ピクチャバッファ396の信号398に基づいて、インターモード情報368およびインター信号344を生成してもよい。
参照ピクチャバッファ396の信号398は、参照ピクチャバッファ396に保存される1つまたはそれ以上の参照ピクチャからのデータを含んでもよい。加えて参照ピクチャバッファ396は、RPSインデックスイニシャライザモジュール308を含んでもよい。イニシャライザモジュール308は、RPSのバッファリングおよびリスト構築に対応して参照ピクチャ226を処理してもよい。いくつかの構成において、参照ピクチャバッファ396の信号398は、現ピクチャに対応する1つまたはそれ以上の以前の参照ピクチャセット(RPS)を示すデータを含んでもよい。
エンコーダ304は、モードに従ってイントラ信号342とインター信号344との間で選択を行ってもよい。イントラ信号342は、イントラ符号化モードにおいてピクチャ内の空間的特性を利用するために用いられてもよい。インター信号344は、インター符号化モードにおいてピクチャ間の時間的特性を利用するために用いられてもよい。イントラ符号化モードのときは、イントラ信号342が減算モジュール346に提供されてもよく、かつイントラモード情報358がエントロピー符号化モジュール360に提供されてもよい。インター符号化モードのときは、インター信号344が減算モジュール346に提供されてもよく、かつインターモード情報368がエントロピー符号化モジュール360に提供されてもよい。
予測残差348を生成するために、減算モジュール346において(モードによって)イントラ信号342またはインター信号344のいずれかがソース306から減算される。予測残差348は変換モジュール350に提供される。変換モジュール350は予測残差348を圧縮して変換信号352を生成してもよく、変換信号352は量子化モジュール354に提供される。量子化モジュール354は変換信号352を量子化して、変換および量子化係数(transformed and quantized coefficients:TQC)356を生成する。
TQC356は、エントロピー符号化モジュール360および逆量子化モジュール370に提供される。逆量子化モジュール370は、TQC356に対して逆量子化を行って逆量子化信号372を生成し、逆量子化信号372は逆変換モジュール374に提供される。逆変換モジュール374は、逆量子化信号372を展開して展開信号376を生成し、展開信号376は再構築モジュール378に提供される。
再構築モジュール378は、展開信号376に基づいて再構築データ380を生成してもよい。たとえば、再構築モジュール378は(修正された)ピクチャを再構築してもよい。再構築データ380は、デブロッキングフィルタ382と、イントラ予測モジュールおよび再構築バッファ340とに提供されてもよい。デブロッキングフィルタ382は、再構築データ380に基づいてフィルタ信号384を生成してもよい。
フィルタ信号384は、サンプル適応オフセット(sample adaptive offset:SAO)モジュール386に提供されてもよい。SAOモジュール386は、エントロピー符号化モジュール360に提供されるSAO情報388と、適応ループフィルタ(adaptive loop filter:ALF)392に提供されるSAO信号390とを生成してもよい。ALF392はALF信号394を生成し、ALF信号394は参照ピクチャバッファ396に提供される。ALF信号394は、参照ピクチャとして用いられ得る1つまたはそれ以上のピクチャからのデータを含んでもよい。
エントロピー符号化モジュール360は、TQC356を符号化してビットストリーム314を生成してもよい。加えて、エントロピー符号化モジュール360は、コンテキスト適応型可変長符号化(Context−Adaptive Variable Length Coding:CAVLC)またはコンテキスト適応型2値算術符号化(Context−Adaptive Binary Arithmetic Coding:CABAC)を用いてTQC356を符号化してもよい。特に、エントロピー符号化モジュール360は、イントラモード情報358、インターモード情報368およびSAO情報388のうちの1つまたはそれ以上に基づいて、TQC356を符号化してもよい。ビットストリーム314は、符号化されたピクチャデータを含んでもよい。
たとえばHEVCなどのビデオ圧縮に伴われる量子化は、ある範囲の値を単一の量子値に圧縮することによって達成される不可逆圧縮技術である。量子化パラメータ(quantization parameter:QP)は、再構築されたビデオの品質および圧縮比の両方に基づいて量子化を行うために用いられる、予め定義されたスケーリングパラメータである。所与のブロックの特性をブロックサイズおよびブロックの色情報に基づいて表すために、HEVCにおいてブロックタイプが定められる。QP、解像度情報およびブロックタイプは、エントロピー符号化の前に定められてもよい。たとえば、電子デバイス302(例、エンコーダ304)がQP、解像度情報およびブロックタイプを定めてもよく、これらの情報がエントロピー符号化モジュール360に提供されてもよい。
エントロピー符号化モジュール360は、TQC356のブロックに基づいてブロックサイズを定めてもよい。たとえば、ブロックサイズはTQCのブロックの1次元方向のTQC356の数であってもよい。言換えると、TQCのブロック内のTQC356の数は、ブロックサイズの2乗に等しくてもよい。たとえば、ブロックサイズは、TQCのブロック内のTQC356の数の平方根として定められてもよい。解像度は、画素幅掛ける画素高さとして定義されてもよい。解像度情報は、ピクチャの幅、ピクチャの高さ、またはその両方に対する画素数を含んでもよい。ブロックサイズは、TQCの2Dブロックの1次元方向のTQC356の数として定義されてもよい。
いくつかの構成において、ビットストリーム314は別の電子デバイスに送信されてもよい。たとえば、ビットストリーム314は通信インタフェース、ネットワークインタフェース、無線送信機、ポートなどに提供されてもよい。たとえば、ビットストリーム314はLAN、インターネット、携帯電話基地局などを介して別の電子デバイスに送信されてもよい。付加的または代替的に、ビットストリーム314は電子デバイス302のメモリに保存されてもよい。
図4は、電子デバイス302においてRPS信号オーバーヘッドを低減させるための方法400の一構成を示す流れ図である。電子デバイス302は、ピクチャ226を得る(ステップ402)。たとえば、ピクチャ226はサプライヤ334から受信されてもよい。場合によっては、ピクチャ226はリモートソースから得られてもよい。
ピクチャ226は符号化される(ステップ404)。このステップは、たとえばエンコーダ304などで行われてもよい。エンコーダ304はHEVCタイプのエンコーダ304であってもよい。
初期化されたインデックス値に基づいて、ピクチャ226に対応するRPSが示される(ステップ406)。たとえば、この表示はピクチャ226のスライスヘッダ、および/またはピクチャ226のPPSにおいて行われてもよい。初期化された値は、電子デバイス302がRPSを処理することを助け得る。いくつかの場合において、初期化された値はRPS信号オーバーヘッドの低減を助け得る。いくつかの場合においては、初期化された値を用いることによって、より小さなRPSインデックス値がビットストリーム314において送られることとなり、よってオーバーヘッドが低減され得る。たとえば、より小さなRPSインデックス値がより少ないビットで表されることにより、オーバーヘッドが低減され得る。他の場合には、初期化されたインデックス値を用いることによって、1つ小さいRPSインデックス値がビットストリーム314において送られることとなるために、やはりRPSシグナリングオーバーヘッドが低減され得る。
電子デバイス302は、ビットストリームを送る(ステップ408)。ビットストリーム314は、同じ電子デバイス302および/またはリモートデバイスに送られる(ステップ408)。ビットストリーム314は、符号化ピクチャおよびRPSを含んでもよい。
図5は、電子デバイス302においてRPS信号オーバーヘッドを低減させるための方法500のより特定的な構成を示す流れ図である。1つの構成において、電子デバイス302は、前述のとおりにピクチャ226を得て(ステップ502)、ピクチャ226を符号化する(ステップ504)。
電子デバイス302は、相対的な負のRPSパラメータに基づいて、インデックス値を初期化する(ステップ506)。たとえば、電子デバイス302は参照ピクチャを処理して、負および正両方のRPSインデックス値を得てもよい。正および負の参照ピクチャは、個別に処理されてもよい。これらのプロセスを以下のリスト(3)に示す。
リスト(3)は、正のRPSインデックス値を符号化するための公知の方法の1つのシンタックスを示すものである。特定的には、リスト(3)はHM5.0においてランダムアクセス階層Bを処理するために設計されたものである。
リスト(3)
「RPS_deltaPOC」はRPSインデックス値を示す。RPS_deltaPOC[0]からRPS_deltaPOC[num_negative_pics−1]は、負のRPSインデックス値を保存する。RPS_deltaPOC[num_negative_pics]からRPS_deltaPOC[num_negative_pics+num_positive_pics−1]は、正のRPSインデックス値を保存する。
リスト(3)は、正のRPSインデックス値を処理するアプローチの1つに対する擬似コードを示す。たとえば、参照インデックス[−2,−4,2]を有するRPSは、最初に負のRPSピクチャインデックスを符号化する。次いで、正のピクチャインデックスが差動符号化される。この符号化の結果として、4つのRPSインデックス値が得られる。正および負両方の参照RPSインデックス値の処理において、前の(previous)インデックス値すなわち「prev」が0に設定される。このステップは、正のRPSインデックス値を処理するときに常に当てはまる。負のピクチャの数または何らかの負のRPSパラメータとは独立してprevが初期化される。この例において、RPSインデックス値が[−2,−4,2]であるとき、RPSインデックス値を送るために9ビットが必要である。
リスト(3)とは対照的に、本明細書において開示されるシステムおよび方法は、相対的な負のRPSパラメータに基づいてインデックス値が初期化される(ステップ506)ことを記載するものである。すなわち、正のRPSインデックス値が処理されるたびにprevを0に初期化するのではなく、負のRPSパラメータに基づいてprevが初期化される。リスト(4)は、この違いを示す擬似コードの例を示すものである。本明細書において開示されるシステムおよび方法に従うシンタックスの修正を太字で示す。
リスト(4)
リスト(4)に示されるとおり、prevは、負のRPS_deltaPocの最小絶対値マイナス1に初期化されてもよい。なお、RPS_deltaPocおよびRPSインデックス値という用語は、交換可能に用いられ得る。負のRPS_deltaPocの最小絶対値とは、現ピクチャに対してRPSインデックスに保存される最小の負の参照ピクチャの絶対値である。たとえば、現ピクチャが[−4,−6,4]という相対的参照RPSインデックス値を含むとき、−4および−6が負のRPS_deltaPocインデックス値である。各々の絶対値を取ると、それぞれ4および6が得られる。最小値を取ることによって、4が得られる。
公知のアプローチにおいては、符号化される差分値が負でないことを確実にするために、RPS_deltaPOC値は、負のRPS_deltaPOCインデックス値内および正のRPS_deltaPOCインデックス値内で、絶対値によって昇順に配置される。この配置によって、負の数が避けられるために符号化のときのビットを減らすことが可能になる。一般的に負の数は、同じ負の数の絶対値である正のビットよりも、符号化するために多くのビットを必要とする。このアプローチによって、負のRPS_deltaPocの最小絶対値は、RPS_deltaPoc(0)に位置付けられ得る。
この例を適用すると、prev=(負のRPS_deltaPocの最小絶対値)−1、prev=(4)−1=3である。負のRPS_deltaPocの最小絶対値が5である別の例においては、prevは4に等しくなる。よって、prevインデックス値は、たとえば負のRPS_deltaPocの最小絶対値などの負のRPSパラメータ値に依存し得る。
初期化された値を用いて、電子デバイス302はインデックス値に基づいて正の数のピクチャを処理する(ステップ508)。一例において、現ピクチャはRPS参照インデックス値[−2,−4,2]を有するものとする。正の参照ピクチャが処理されて、prevが負のRPS_deltaPocの最小絶対値に対して初期化されるとき、prevは1に等しい(例、(|−2|)−1=1)。第1の正の値(例、2)を処理するために、RPS_deltaPoc(k)−prev−1が用いられる。RPS_deltaPoc(k)は、処理されるべき第1の正のRPSインデックス値の値に等しい。この例において、RPS_deltaPoc(k)は2に等しい。上に示したとおり、prevは1に等しい。よって、RPS_deltaPoc(k)−prev−1=2−1−1=0である。
この処理の結果として、[−2,−4,2]ではなく[−2,−4,0]という符号化が得られる。よって、9ビットではなく8ビットが必要となり、オーバーヘッドが低減される。符号化構造の対称の性質のために、相対的な負のRPSパラメータに基づいてインデックス値を初期化すると、一般的に第1の正のインデックス参照値が0に等しくなる。よって、第1の正のインデックス参照値が増加するに従って、節減されるビット数も増加する。
場合によっては、電子デバイス302は、相対的な負のRPSパラメータに基づいてRPSインデックス値のセットのうち第1の正のRPSインデックス値だけを処理してもよい。後続する正のインデックス値の各々は、リスト(3)に示されるとおりに処理されてもよい。この場合、ビットストリーム114において送られる各ピクチャの各RPSに対する第1の正のインデックス値に対するオーバーヘッドが低減される。
電子デバイス302はビットストリーム114を送る(ステップ510)。本明細書に記載されるシステムおよび方法を適用することによって、ビットストリーム114におけるRPSオーバーヘッドが低減され得る。
図6は、電子デバイス302においてRPS信号オーバーヘッドを低減させるための方法600の、別のより特定的な構成を示す流れ図である。電子デバイス302は、前述のとおりにピクチャ226を得て(ステップ602)、ピクチャ226を符号化する(ステップ604)。
電子デバイスは任意には、第1の正のRPSインデックス値を負のRPSインデックス値によって初期化できるかどうかを示すためにビットストリームにおいて送られる、たとえばsymmetric_flagなどの対称フラグを示す(ステップ606)。たとえば、対称フラグは、インデックス値が負のRPS_deltaPocの最小絶対値に初期化されるべきであることを示してもよい。代替的には、対称フラグは、インデックス値を負のRPS_deltaPocの最小絶対値に初期化しないことを示してもよい。この場合、インデックス値は0に初期化され得る。
電子デバイス302は、インデックス値に基づいて正の数のピクチャを処理する(ステップ608)。いくつかの場合において、インデックス値が初期化されるとき、この処理はスキップされる。言換えると、インデックス値が初期化されるとき、正のRPSインデックス値を処理する第1の反復は、第1の正のRPSインデックス値をRPSに書込むステップをスキップする。正の数が1つしか存在しない場合、正の数の処理は起こらない。電子デバイス302はさらにビットストリーム314を送る(ステップ610)。
リスト(5)は、この方法を適用し得る擬似コードシンタックスの一例を示すものである。本明細書において開示されるシステムおよび方法に従うシンタックスの修正を太字で示す。
リスト(5)
正のRPSインデックス値を処理するステップにおいてj>0であるとき、条件j==0はスキップされる。言換えると、第1の正の参照ピクチャがスキップされる。
ここでj>0の条件に戻る。この場合、正のRPSインデックス値を処理するときに、forループにおいてjは0に初期化される。初期化の際に、正のRPSインデックス値を処理するステップは、第1の正のRPSインデックス値をスキップする。たとえば、RPSインデックス値[−8,−4,4,6]の場合、正のRPSインデックス値を処理するステップにおいて、4はスキップされて、6だけが現ピクチャに対するRPSインデックスに加えられる。
別の例において、インデックス値[−2,−4,2,6]に対して、もしsymmtetic_flagが真であれば、負の参照ピクチャインデックスから導出されるとおり、正のRPS_deltaPOC値に対する第1の値は2に等しくなるはずである。この態様で、正のRPSインデックス値の処理は、第2の正のRPSインデックス値(例、6)から始まってもよい。たとえばランダムアクセス(階層B)などの階層符号化構造では、正および負のRPSインデックスの開始の間の対称条件は、通常真である。この真であることは、deltaPOC参照ピクチャに関する各現ピクチャの対称の性質によるものである。
正のRPSインデックス値がただ1つの場合に、電子デバイス302は正の値の処理をスキップしてもよい。たとえば、インデックス値[−4,−8,4]に対して、処理後に[−4,−8]というRPSがビットストリームに送られてもよい。次いで受信の際に、たとえばデコーダなどの受信電子デバイスがRPSインデックス値[−4,−8]を受信して、復号される現ピクチャに対して参照インデックス値[−4,−8,4]を導出してもよい。よって、各現ピクチャに対する各RPSにおける第1の正の参照ピクチャをスキップすることによって、RPSシグナリングにおける顕著なオーバーヘッドの節減が達成され得る。
たとえば、リスト(6)は、デコーダにおいてRPSインデックス値を処理するためのシンタックスを示すものである。
リスト(6)
リスト(6)は、デコーダによって処理され得るシンタックスの一例を示すものである。このシンタックスは、リスト(5)に関連して述べたアプローチを用いる電子デバイス302によって生成されてもよい。たとえばデコーダは、最小の負のRPSインデックス値が対応する正のRPSインデックス値と対称であるという表示があるかどうかを調べるために、symmertric_flagをチェックしてもよい。もしsymmertric_flagがこうした表示をしていれば、デコードはRPSを復号して、第1の正のRPSインデックス値のRPSインデックス値における最小の負のRPSインデックス値の絶対値を使用してもよい。当然のことながら、リスト(5)に関連して上述した符号化アプローチに対応する、リスト(6)に挙げられるようにピクチャを復号するための他のアプローチが用いられてもよい。
図7は、電子デバイス702のデコーダ712の一構成を示すブロック図である。デコーダ712は、電子デバイス702に含まれていてもよい。たとえば、デコーダ712はHEVCデコーダであってもよい。デコーダ712、および/またはデコーダ712に含まれるものとして図示されるエレメントの1つもしくはそれ以上は、ハードウェア、ソフトウェア、またはその両方の組み合わせにおいて実現されてもよい。デコーダ712は、復号のためのビットストリーム714(例、ビットストリーム714に含まれる1つまたはそれ以上の符号化ピクチャ)を受信してもよい。いくつかの構成において、受信されるビットストリーム714は、たとえば受信スライスヘッダ、受信PPS、受信バッファ記述情報などの受信オーバーヘッド情報を含んでもよい。ビットストリーム714に含まれる符号化ピクチャは、1つもしくはそれ以上の符号化参照ピクチャおよび/または1つもしくはそれ以上のその他の符号化ピクチャを含んでもよい。
(ビットストリーム714に含まれる1つまたはそれ以上の符号化ピクチャ内の)受信シンボルが、エントロピー復号モジュール768によってエントロピー復号されることによって、動き情報信号770と、量子化、スケーリングおよび/または変換された係数772とが生成されてもよい。
動き情報信号770は、動き補償モジュール774において、フレームメモリ778からの参照フレーム信号798の一部と組み合わされてもよく、動き補償モジュール774はインターフレーム予測信号782を生成してもよい。量子化、デスケーリングおよび/または変換された係数772は、逆モジュール762によって逆量子化、スケーリングおよび逆変換されることによって、復号化残差信号784を生成してもよい。復号化残差信号784を予測信号792に加えることによって、結合信号786を生成してもよい。予測信号792は、インターフレーム予測信号782か、またはイントラフレーム予測モジュール788によって生成されるイントラフレーム予測信号790のいずれかから選択される信号であってもよい。いくつかの構成において、この信号選択はビットストリーム714に基づいて(例、制御されて)いてもよい。
イントラフレーム予測信号790は、(たとえば現フレーム内の)結合信号792からの、前に復号された情報から予測されてもよい。結合信号792はさらに、デブロッキングフィルタ794によってフィルタ処理されてもよい。結果として得られるフィルタ処理信号796は、フレームメモリ778に書込まれてもよい。結果として得られるフィルタ処理信号796は、復号化ピクチャを含んでもよい。
フレームメモリ778は、本明細書に記載されるとおりのDPBを含んでもよい。DPBは、短期または長期の参照フレームとして維持され得る1つまたはそれ以上の復号化ピクチャを含んでもよい。フレームメモリ778はさらに、復号化ピクチャに対応するオーバーヘッド情報を含んでもよい。たとえば、フレームメモリ778はスライスヘッダ、PPS情報、サイクルパラメータ、バッファ記述情報などを含んでもよい。これらの情報のうちの1つまたはそれ以上は、エンコーダ(例、エンコーダ304)からシグナリングされてもよい。フレームメモリ778は復号化ピクチャ718を提供してもよい。
デコーダ712は、部分RPS決定モジュール720、RPSテンプレートモジュール722、および/またはRPS削除モジュール724を含んでもよい。部分RPS決定モジュール720は、ビットストリーム714から得られた信号に基づいて部分RPSを生成してもよい。いくつかの場合に、部分RPSは全RPSに基づいて、デコーダ712において定められてもよい。部分RPS決定モジュール720に関するさらなる詳細を以下に説明する。
RPSテンプレートモジュール722は、デコーダ712においてRPSテンプレートを導出してもよい。場合によっては、たとえばGOPサイズ、符号化構造および規則など、ビットストリーム714で受信される信号に基づいて、RPSテンプレートが作成されてもよい。
RPS削除モジュール724は、前に受信したRPSを削除するための表示をデコーダ712において受信してもよい。たとえば、ビットストリーム714はPPS内のフラグと、ピクチャのスライスヘッダ内のビットフィールドとを含んでもよい。RPS削除モジュール724は、欠損参照ピクチャの識別を助けてもよい。RPS削除モジュール724に関するさらなる詳細を以下に示す。
図8は、電子デバイス702においてRPS信号オーバーヘッドを低減させるための方法800の一構成を示す流れ図である。電子デバイス702は、ビットストリーム714を得る(ステップ802)。たとえば、ビットストリーム714はデコーダ712が位置する電子デバイス702から得られてもよいし、代替的には別の電子デバイスから得られてもよい。
電子デバイス702は、ビットストリーム714に基づいてGOPを得る(ステップ804)。いくつかの場合に、GOPはたとえば4または8ピクチャなど、特定数の連続するピクチャとして指定されてもよい。たとえば、電子デバイス702は、8ピクチャを含むGOPを得る(ステップ804)。
電子デバイス702が全RPSを導出し得るさまざまなやり方が存在し得る。1つの構成において、電子デバイス702は、GOPサイズ、符号化構造、およびその他の必要な情報、たとえばPPSなどを受信してもよい。
全RPSを導出するために、電子デバイス702は、符号化構造およびGOPサイズに従って符号化順を定めてもよい。たとえば、低遅延符号化による符号化順は、表示順であり得る。別の場合に、階層Bによる符号化順は、最小復号遅延を用い得る。図2に示された例と類似する1つの例において、サイズ8を有するGOPは、POC8、4、2、1、3、6、5、7の順序で符号化を行う。代替的に、符号化順は低階層からより高階層に向かって符号化されてもよい。この例において、サイズ8を有するGOPは、POC0、8、4、2、6、1、3、5、7の順序で符号化を行う。加えて、どの符号化順を使用するかを示すためにフラグが用いられ得る。場合によって、フラグはビットフラグであり得る。
全RPSを導出するために、電子デバイス702はさらに、符号化構造、時間レイヤid、参照ピクチャの数、ならびにエンコーダおよびデコーダによって設定される付加的な規則に基づいて、参照ピクチャを定めてもよい。たとえば、N参照フレームを伴う低遅延符号化の場合、同じ時間レイヤまたはより低い時間レイヤを有する先行ピクチャは、常に参照ピクチャの働きをし得る。次いで、残りのN−1参照ピクチャに対して、符号化順および/または階層レイヤに依存して参照ピクチャを選択するための付加的な規則が指定され得る。どの規則を用いるべきかを指定するためにパラメータが用いられてもよい。このパラメータの例はreference_picture_selection_ruleであり、以下にリスト(9)に関連して述べられている。
加えて、全RPSを導出するために、電子デバイス702はGOPを符号化順にループに(例、反復)してもよい。電子デバイス702は、後続ピクチャに関連して後に参照される参照ピクチャを追加または保持してもよい。これらの後続ピクチャは、現ピクチャと同じGOPまたは現ピクチャより後のGOPの中にあってもよい。ある参照ピクチャが後に参照のために用いられるとき、その参照ピクチャは将来の使用に対してマーク付けされてもよい。そうでなければ、参照ピクチャは「非参照用」とマーク付けされてもよい。
電子デバイス702は、少なくとも1つの相対インデックス値に基づいて、全RPSから部分RPSを導出する(ステップ806)。たとえば、電子デバイス702は全RPSの導出を試みてもよい。
しかし、いくつかの参照ピクチャが欠損しているか、または得られていないために、部分RPSしか導出されないことがある。
部分RPSは、ピクチャシーケンスの最初に起こるものなどのIDRまたはCRAによって、利用不可能な参照ピクチャを有するフレームに対するものであり得る。たとえば、第1のピクチャはPOC8にあって、RPSインデックス値[−8,−10,−12,−16]を有するものとする。第1の受信ピクチャであるため、このピクチャはまだRPSインデックス値[−10,−12,−16]に対応する参照ピクチャを有さない。この例において、この第1のピクチャは、インデックス参照値[−8,−10,−12,−16]を有する全RPSを使用できない。代わりに、部分RPSはインデックス値[−8]を含み、このインデックス値は、このピクチャ(例、POC8)を復号するために用いられ得る唯一の参照ピクチャを表す。
次いで電子デバイス702は、部分RPSに基づいてピクチャを復号する(ステップ808)。言換えると、電子デバイス702は、電子デバイス702が利用可能な参照ピクチャを用いてピクチャを復号する(ステップ808)。
いくつかの実施において、部分RPSは、電子デバイス302のエンコーダ304側において付加的に導出されてもよい。しかし、部分RPSをデコーダ712において導出することによって、全RPSを送ることに加えて部分RPSを送ることがないために、ビットストリーム714におけるRPSオーバーヘッドが低減される。
リスト(7)は、部分RPSを導出するための1つのアプローチを示すものである。
リスト(7)
リスト(7)において、「num_full_ref_pic_sets」は、ピクチャパラメータセットにおいて指定された全参照ピクチャセットの数を指定する。「num_partial_ref_pic_sets」は、ピクチャパラメータセットにおいて指定された部分参照ピクチャセットの数を指定する。「ref_flag」[j]は、全参照ピクチャセットの内容が部分参照ピクチャセットにコピーされるかどうかを示す。
図9は、電子デバイス702において部分RPSを導出するための方法900の一構成を示す流れ図である。ピクチャを復号するために、電子デバイス702は現ピクチャのRPSを参照する必要があり得る。しかし、全RPSは利用可能でないことがある。この場合には、部分RPSが構築されてもよい。
1つの構成において、部分RPSは電子デバイス702によって構築されてもよい。電子デバイス702は、上述と類似の態様でビットストリーム714を得て(ステップ902)、そのビットストリームに基づいてGOPを得る(ステップ904)。
電子デバイス702は、GOP内の各ピクチャを反復する(ステップ906)。たとえば、電子デバイス702は各ピクチャをループにして、各ピクチャに対応するRPSインデックス値を識別してもよい。場合によっては、複数のGOPに対しても反復が起こり得る。
電子デバイス702は現ピクチャを識別し(ステップ908)、ここでは相対インデックス値が現ピクチャに対応する。たとえば、現ピクチャは電子デバイス702が復号を試みているピクチャであってもよい。加えて、現ピクチャを識別するステップ(ステップ908)において、電子デバイス702はさらに現ピクチャに対するPOCを識別する。たとえば、POCはGOP内の現ピクチャのPOCを指定してもよい。
以下のリスト(8)は、部分RPSを生成するためのシンタックスの例を示すものである。リスト(8)における「current_poc_in_GOP」は、GOPにおける現POCを指定する。current_poc_in_GOPは、1からGOPサイズまでの範囲である。
リスト(8)
電子デバイス702は、現ピクチャの全RPS内の少なくとも1つの相対インデックス値を反復する(ステップ910)。たとえば、現ピクチャがRPSインデックス値[−1,−5,−9,−13]を有するとき、電子デバイスはdeltaPOC=−1、deltaPOC=−5、deltaPOC=−9、およびdeltaPOC=−13に位置する参照ピクチャをループにする。
電子デバイス702は、各相対インデックス値に対して参照ピクチャが利用可能かどうかを判定する(ステップ912)。上記の例において、電子デバイス702は、deltaPOC=−1、−5、−9および−13に位置する参照ピクチャへのアクセスを試みてもよい。しかし、1つまたはそれ以上の参照ピクチャが欠損していることがある。
参照ピクチャが利用可能かどうかを判定する(ステップ912)ための1つのアプローチは、currentPOC+refDeltaPOC<POC_of_Latest_CRAという条件を満たすことによるものである。POC_of_Latest_CRAは、最新のクリーンランダムアクセス(CRA)ピクチャの位置を示す。言換えると、POC_of_Latest_CRAは、最新のIDRまたはCRAピクチャのPOCである。RPSインデックス値が最新CRAピクチャの前に位置する参照ピクチャを示すとき、その参照ピクチャは利用可能にならない。よって、もしcurrentPOC+refDeltaPOC<POC_of_Latest_CRAが満たされれば、その相対参照ピクチャは欠損しており、部分RPSには加えられない。一例として、現ピクチャはPOC1(例、POC=1)を有し、かつPOC_of_Latest_CRAは0であるものとする。再び、現ピクチャはRPSインデックス値[−1,−5,−9,−13]を有するものとする。第1のインデックス値に対して条件currentPOC+refDeltaPOCを適用すると、結果として0(例、1+−1=0)が得られる。条件が満たされない(例、1+−1は、0またはPOC_of_Latest_CRAよりも小さくない)ため、第1の参照インデックス値は部分RPSに加えられる。currentPOC+refDeltaPOCを他のRPS参照インデックス値に適用すると、currentPOC+refDeltaPOCがPOC_of_Latest_CRAよりも小さい結果が生じる。よって、他のインデックス値は部分RPSに加えられない。
別の例として、現ピクチャはPOC5(例、POC=5)を有するものとする。再び、現ピクチャはRPSインデックス値[−1,−5,−9,−13]を有するものとする。RPSインデックス値に対して条件currentPOC+refDeltaPOCを適用すると、結果としてそれぞれ[4,0,−4,−8]が得られる。最初の2つの値は0未満ではないため、対応するRPS参照インデックス値が部分RPSに加えられる。よって、この例において作成される部分RPSは、インデックス値[−1,−5]を有する。
電子デバイス702は、もしそのピクチャが利用可能であれば、参照ピクチャを部分RPSに加える(ステップ914)。加えて電子デバイス702は、部分RPSインデックス値を用いて、現ピクチャを復号する(ステップ916)。
さらに他の構成において、電子デバイス702は部分RPSを評価して、付加的なピクチャを挿入することを決定してもよい。たとえば、参照ピクチャに対するただ1つの参照を有する部分RPSは、その現ピクチャの復号に有用であり得る3つの付加的な参照ピクチャを含むように修正されてもよい。
図10は、電子デバイス702においてRPSテンプレートを導出するための方法1000の一構成を示す流れ図である。表(1)〜(4)に関連して述べたとおり、ビデオ符号化において、頻繁に用いられる符号化構造の処理を助けるために、RPSテンプレートが用いられてもよい。こうした構造の例は、8または16に等しいGOPサイズを有するランダムアクセス階層B符号化構造である。別の例は、4または8に等しいGOPサイズを有する低遅延符号化構造である。
1つの構成において、RPSテンプレートが作成され得る。なお、RPSテンプレートの作成は、PPSにおいて全RPSを送ることなく、エンコーダおよびデコーダの両方の側で導出されてもよい。さらに上述のとおり、RPSテンプレートの導出は、部分RPSの作成に関連して起こってもよいし、部分RPSの作成とは独立に起こってもよい。
電子デバイス702は、ビットストリーム714を得る(ステップ1002)。電子デバイス702は、RPSテンプレートを作成することを示すフラグを得る(ステップ1004)。たとえば、フラグはPPS内に位置して送られてもよい。
別の例として、電子デバイス702は、一般的に用いられるGOPサイズ、符号化構造、時間レイヤ設定および時間インタリーブパターンに対するRPSテンプレートを導出するために用いられる規則のセットを、所有および/または取得してもよい。
これらの規則を用いて、電子デバイス702は、低減された量の情報に基づいてRPSテンプレートを作成する(ステップ1006)。たとえば、GOPサイズ、符号化構造および規則に関する情報を用いることによって、RPSテンプレートが導出されてもよい。たとえば、符号化構造はランダムアクセス(階層B)または低遅延を指定し得る。たとえば、規則は時間レイヤに対する設定を指定し得る。以下のリスト(9)が示す。
以下のリスト(9)は、RPSを導出するためのアプローチのシンタックスを示すものである。
リスト(9)
「derive_rps_with_model_flag」は、デコーダ側でRPSを導出するかどうかを指定する。derive_rps_with_model_flagが0に設定されることは、PPSにおいてRPSを送ることを示す。derive_rps_with_model_flagが1に設定されることは、デコーダにおいてRPSを導出することを示す。
「coding_structure」が0に等しいことは、その符号化構造が階層B符号化であることを意味する。符号化構造が1に等しいことは、その符号化構造が低遅延符号化であることを示す。
「GOP_size_log2」は、GOPサイズのlog2を示す。GOPサイズは2(GOP_size_log2)に等しい。「number_of_reference_pictures(i)」は、i番目の階層レイヤに対する参照ピクチャリスト(例、RefPicList0および/またはRefPicList1)当りに用いられる参照ピクチャの数を指定する。「reference_picture_selection_rule」は、エンコーダおよびデコーダによって参照ピクチャを選択するための一般的に定義された規則を指定する。
「coding_order」は、符号化順を定めるための規則を指定してもよい。coding_order0は第1の符号化順を示してもよく、coding_order1は第2の符号化順を示してもよい。たとえば1つの構成において、coding_order0は最小復号遅延順序を示してもよく、coding_order1は階層優先順序(例、最低階層レイヤからより高い階層レイヤへと符号化する)を示してもよい。
「temporal_layer_exist_flag」は、異なる時間レイヤが存在するかどうかを示す。フラグが0に等しいことは、すべてのフレームが同じ時間レイヤを有することを意味し、フラグが1に等しいことは、異なる時間レイヤが存在することを意味する。
「temporal_id_ordering」は、現GOP内の同じtemporal_idを有するピクチャの順序付けを指定する。たとえば、1の値は、現GOP内の同じtemporal_idを有するピクチャが復号順で連続していることを示す。代替的に、0の値は、現GOP内の同じtemporal_idを有するピクチャが復号順でインタリーブされていることを示す。
作成されたRPSテンプレートを用いて、電子デバイス702はピクチャを復号する(ステップ1008)。非共通RPSコード構造の場合、RPSテンプレートはさらに、PPSおよび/またはスライスヘッダにおいてRPSテンプレートを直接送ってシグナリングされてもよい。
図11は、電子デバイス302において少なくとも1つの参照ピクチャを削除するための表示を作成するための方法1100の一構成を示す流れ図である。たとえばビデオ符号化の共同チーム(Joint Collaborative Team on Video Coding:JCTVC)の文献JCTVC−F803_d5において提供される実施など、いくつかの公知の実施において、前にシグナリングされたRPSに対する削除動作を示すことはサポートされていない。言換えると、PPSは、前に送られたRPSを削除するための信号を送ることをサポートしない。
たとえばJCTVC−G637など、別の公知の実施においては、参照ピクチャセットのプルーニングが提案されている。この実施においては、プルーニングのために、特定のRPSから省略されるいくつかの短期参照ピクチャがPPSにおいてシグナリングされてもよい。RPSにおいてシグナリングされたピクチャのいくつかが利用可能でない1つの例は、ランダムアクセスポイント後の第1のGOPである。しかし、JCTVC−G637は、連続的な負のピクチャのプルーニングのみを可能にするものである。
たとえばJCT−G198など、さらに別の公知の実施においては、一定のdeltaRPS値を送るシグナリングスキームが提案されている。加えて、送られたフィールド値(例、00)が、前の参照ピクチャを使用すべきでない(例、スキップすべきである)ことをシグナリングしてもよい。
いくつかの公知の実施においては、各スライスヘッダにおいて個別に長期参照ピクチャ(long−term reference pictures:LTRP)が明示的にシグナリングされる。よって、LTRPがシグナリングされないとき、LTRPは削除される。したがって、LTRPに対して削除信号を送る必要はないであろう。しかし、LTRPがシグナリングされるいくつかの実施においては、本明細書において開示される削除機構がLTRPに付加的に適用され得る。
本明細書において開示されるシステムおよび方法は、前にシグナリングされたRPSに対する削除動作をシグナリングすることを可能にすることにおける1つまたはそれ以上の付加的な利益を提供し得る。加えて、新たなRPSを効率的にシグナリングすることによって、付加的な利益が得られてもよい。1つの構成において、電子デバイス302は、少なくとも1つの欠損参照ピクチャのフィードバック表示を任意に受信する(ステップ1102)。フィードバックは、同じかまたは異なる電子デバイスからのものであってもよい。たとえば、ピクチャを復号するデコーダ712がRPS内の欠損参照ピクチャを発見して、その欠損参照ピクチャに関するフィードバックを電子デバイス302に送ってもよい。
別の構成において、302はフィードバックを受信しない。代わりに電子デバイス302は、新たなCRAまたはIDRピクチャがシグナリングされた後に削除表示を送ってもよい。たとえば、CRAまたはIDRピクチャは、前に(preciously)受信したRPSにおいてリストされた1つまたはそれ以上の不要な参照ピクチャを削除するための削除表示を電子デバイスが送ることを引き起こしてもよい。
電子デバイス302は、前に提供されたRPSにおいてリストされた少なくとも1つの参照ピクチャを削除するための表示を作成する(ステップ1104)。このステップは、欠損ピクチャを示すフィードバックを受信するステップとともに起こってもよいし、そのステップとは独立に起こってもよい。電子デバイス302は、ビットストリームにおいてこの表示を送る(ステップ1106)。
例として、ランダムアクセスポイント後の第1のGOPの後に、削除表示(例、削除信号)が送られてもよい。このステップは、デコーダ712からフィードバックを受信する必要なく行われてもよい。削除表示は、PPSにおけるフラグとして送られてもよい。たとえば、スライスヘッダに削除ビットフィールドが存在することを示すために、PPSにおいてフラグ値1が送られる。代替的に、スライスヘッダにおいて削除ビットフィールドが送られないことを示すために、PPSにおいてフラグ値0が送られる。
付加的および/または代替的に、削除表示は、示されたRPSにおける各ピクチャに対するスライスヘッダのビットフィールドとして送られてもよい。たとえば、ビットフィールドは、示されたRPSから対応する参照ピクチャを削除することを示すために、スライスヘッダにおいて表示値0を送ってもよく、またはビットフィールドは、対応する参照ピクチャが保持されるべきであることを示すために、スライスヘッダにおいて表示値1を送ってもよい。ビットフィールドは、示されたRPSの各々の参照ピクチャに対するスライスヘッダにおいて送られてもよい。別の構成において、こうしたビットフィールドは、示されたRPSの負の参照ピクチャのみに対するスライスヘッダにおいて送られてもよい。いくつかの構成において、削除表示はPPSおよびビットフィールドの両方において送られてもよい。
以下のリスト(10)は、削除表示を送るためにPPSにおいて用いられ得るシンタックスの一例を提供するものである。本明細書において開示されるシステムおよび方法に従うシンタックスの修正を太字で示す。
リスト(10)
リスト(10)において、delete_pics_info_present_flagが1に等しいことは、スライスヘッダがピクチャパラメータセットに含まれる短期参照ピクチャセットからの削除動作をシグナリングし得ることを示す。delete_pics_info_present_flagが0に等しいことは、ピクチャパラメータセットに含まれる短期参照ピクチャセットに対して、スライスヘッダにおいて削除動作がシグナリングされないことを示す。pic_parameter_set_idおよびseq_parameter_set_idは、上述のとおりに定義される。
以下のリスト(11)は、削除表示を送るためにスライスヘッダにおいて用いられ得るシンタックスの一例を提供するものである。本明細書において開示されるシステムおよび方法に従うシンタックスの修正を太字で示す。
リスト(11)
リスト(11)において、「keep_pic_flag」[j]が1に等しいことは、インデックスshort_term_ref_pic_set_idxを有するピクチャパラメータセット内の参照ピクチャセットからの、対応するj番目の短期参照ピクチャが保持されるべきであることを示す。keep_pic_flag[j]が0に等しいことは、インデックスshort_term_ref_pic_set_idxを有するピクチャパラメータセット内の参照ピクチャセットからの、対応するj番目の短期参照ピクチャが削除(例、省略)されるべきであることを示す。
「pic_order_cnt_lsb」は、ピクチャ順序カウントを、符号化フレームのトップフィールドまたは符号化フィールドに対するMaxPicOrderCntLsbで割った余りを指定する。pic_order_cnt_lsbシンタックスエレメントの長さは、log2_max_pic_order_cnt_lsb_minus4+4ビットである。pic_order_cnt_lsbの値は、両端値を含めて、0からMaxPicOrderCntLsb−1の範囲内となる。「MaxPicOrderCntLsb」は、(「pic_order_cnt_lsb+1」)に対して可能な最大値を示す。「log2_max_pic_order_cnt_lsb_minus4」は、次のようなピクチャ順序カウントに対する復号プロセスにおいて用いられる変数MaxPicOrderCntLsbの値を指定する。すなわち、MaxPicOrderCntLsb=2(log2_max_pic_order_cnt_lsb_minus4+4)である。log2_max_pic_order_cnt_lsb_minus4の値は、両端値を含めて、0から12の範囲内であり得る。
「short_term_ref_pic_set_pps_flag」が1に等しいことは、アクティブピクチャパラメータセットのシンタックスエレメントを用いて、現ピクチャの短期参照ピクチャセットが作成されることを示す。short_term_ref_pic_set_pps_flagが0に等しいことは、スライスヘッダ内のshort_term_ref_pic_set()シンタックス構造のシンタックスエレメントを用いて、現ピクチャの短期参照ピクチャセットが作成されることを示す。
「short_term_ref_pic_set_idx」は、現ピクチャの参照ピクチャセットの作成のために用いられるアクティブピクチャパラメータセットにおいて指定される短期参照ピクチャセットのリストに対するインデックスを指定する。シンタックスエレメントshort_term_ref_pic_set_idxは、ceil(log2(num_short_term_ref_pic_sets))ビットによって表される。short_term_ref_pic_set_idxの値は、両端値を含めて、0からnum_short_term_ref_pic_sets−1の範囲内となり、ここでnum_short_term_ref_pic_setsは、アクティブピクチャパラメータセットからのシンタックスエレメントである。
変数StRpsIdxは、以下のリスト(12)に示されるとおりに導出される。
リスト(12)
リスト(12)において、「short_term_ref_pic_set」は短期参照ピクチャセットを示し、「num_short_term_ref_pic_sets」は短期参照ピクチャセットの総数を示す。
図12は、電子デバイス702において少なくとも1つの参照ピクチャを削除するための方法1200の一構成を示す流れ図である。電子デバイス702は任意に、RPSにおける少なくとも1つの欠損参照ピクチャを検出する(ステップ1202)。たとえば、電子デバイス702は部分RPSの作成に関連して上述したステップと類似のステップを行ってもよく、このステップにおいては、参照ピクチャが利用可能であるかどうかに関する判定が行われる。付加的または代替的に、電子デバイス702は参照ピクチャを呼び出して、その参照ピクチャが欠損もしくは破損していることを発見するか、または他のやり方で欠損参照ピクチャを検出する(ステップ1202)。
電子デバイス702は任意には、その少なくとも1つの欠損参照ピクチャを示すフィードバックを送る(ステップ1204)。たとえば、欠損ピクチャを示すために、欠損POCを示すバックチャネルを通じたフィードバック、RPSまたはさまざまなその他の信号が送られてもよい。
電子デバイス702は、前に得られたRPSにおいてリストされた少なくとも1つの参照ピクチャを削除するための表示を得る(ステップ1206)。1つの場合においては、PPSのフラグと、RPSの各ピクチャに対するスライスヘッダのビットフィールドとからこの信号が得られてもよい。たとえば、delete_pics_info_present_flagおよびkeep_pic_flag[j]がシグナリングされてもよい。
電子デバイス702は、前に得られたRPSの少なくとも1つの参照ピクチャを削除する(ステップ1208)。いくつかの場合においては、削除されるRPSと置き換えるべき後続RPSとともに、削除表示が受信されてもよい。別の場合において、この表示は、もはやさらなるピクチャを復号するために必要とされない、前に受信したRPSを削除することを指定してもよい。さらに別の場合において、この表示は、後続置換RPSが送信され得るように、前に受信したRPSを削除するための表示であってもよい。なお、少なくとも1つの参照ピクチャを削除するための表示を得るステップ(ステップ1206)および少なくとも1つの参照ピクチャを削除するステップ(ステップ1208)は、その前の欠損ピクチャを検出するステップ(ステップ1202)およびフィードバックを送るステップ(ステップ1204)とともに行われてもよいし、それらのステップとは独立に行われてもよい。
この方法の例として、前に得られたRPSがインデックス値[−2,−1,1,3,5]を有し、電子デバイス702が第2の参照ピクチャを削除するための表示を受信するとき、前に得られた参照セットはRPSインデックス値−1を削除する。言換えると、前に得られた参照セットは[−2,1,3,5]となる。
図13は、電子デバイス1302において用いられ得るさまざまなコンポーネントを示す。電子デバイス1302は、本明細書に記載される電子デバイス(例、電子デバイス102、302、702)の1つまたはそれ以上として実現されてもよい。
電子デバイス1302は、電子デバイス1302の動作を制御するプロセッサ1317を含む。プロセッサ1317は、CPUと呼ばれることもある。メモリ1311は、リードオンリメモリ(read−only memory:ROM)、ランダムアクセスメモリ(random access memory:RAM)の両方、または情報を保存し得るあらゆるタイプのデバイスを含んでもよく、プロセッサ1317に命令1313a(例、実行可能な命令)およびデータ1315aを提供する。メモリ1311の一部はさらに、不揮発性ランダムアクセスメモリ(non−volatile random access memory:NVRAM)を含んでもよい。メモリ1311は、プロセッサ1317と電子通信を行ってもよい。
プロセッサ1317内にも命令1313bおよびデータ1315bが存在してもよい。プロセッサ1317にロードされた命令1313bおよび/またはデータ1315bはさらに、プロセッサ1317による実行または処理のためにロードされた、メモリ1311からの命令1313aおよび/またはデータ1315aを含み得る。本明細書において開示されるシステムおよび方法を実現するために、プロセッサ1317によって命令1313bが実行されてもよい。
電子デバイス1302は、他の電子デバイスと通信するための1つまたはそれ以上の通信インタフェース1319を含んでもよい。通信インタフェース1319は、有線通信技術、無線通信技術、またはその両方に基づいていてもよい。通信インタフェース1319の例は、シリアルポート、パラレルポート、ユニバーサルシリアルバス(Universal Serial Bus:USB)、イーサネット(登録商標)アダプタ、IEEE1394バスインタフェース、小型コンピュータシステムインタフェース(small computer system interface:SCSI)バスインタフェース、赤外線(infrared:IR)通信ポート、Bluetooth(登録商標)無線通信アダプタ、および第3世代パートナーシッププロジェクト(3rd Generation Partnership Project:3GPP)仕様に従う無線トランシーバなどを含む。
電子デバイス1302は、1つまたはそれ以上の出力デバイス1323および1つまたはそれ以上の入力デバイス1321を含んでもよい。出力デバイス1323の例は、スピーカ、プリンタなどを含む。電子デバイス1302に含まれ得る1つのタイプの出力デバイスは、ディスプレイデバイス1325である。本明細書において開示される構成とともに使用されるディスプレイデバイス1325は、たとえば陰極線管(cathode ray tube:CRT)、液晶ディスプレイ(liquid crystal display:LCD)、発光ダイオード(light−emitting diode:LED)、気体プラズマ、またはエレクトロルミネセンスなど、あらゆる好適な画像投影技術を用いてもよい。メモリ1311に保存されたデータを、ディスプレイ1325において示されるテキスト、グラフィックス、および/または動画に(適宜)変換するために、ディスプレイコントローラ1327が提供されてもよい。入力デバイス1321の例は、キーボード、マウス、マイクロホン、リモートコントロールデバイス、ボタン、ジョイスティック、トラックボール、タッチパッド、タッチスクリーン、ライトペンなどを含む。
電子デバイス1302のさまざまなコンポーネントは、バスシステム1329によってともに結合されており、バスシステム1329は、データバスに加えて電力バス、制御信号バスおよびステータス信号バスを含んでもよい。しかし、明瞭にするために、図13においてはさまざまなバスがバスシステム1329として示される。図13に示される電子デバイス1302は、特定のコンポーネントのリストではなく、機能ブロック図である。
図14は、電子デバイス702においてピクチャを復号するための方法1400の一構成を示す流れ図である。電子デバイス702はビットストリーム714を得る(ステップ1402)。たとえば、ビットストリーム714は電子デバイス702から(たとえばメモリから)得られてもよいし、別の電子デバイスから受信されてもよい。
電子デバイス702は現ピクチャを得る(ステップ1404)。たとえば、電子デバイス702は、ビットストリーム714に埋め込まれた現ピクチャを得る(ステップ1404)。
電子デバイス702は相対RPSパラメータを得る(ステップ1406)。たとえば、相対RPSはPPSにおいてシグナリングされ得る。したがって、相対RPSパラメータはPPSから得られてもよい。いくつかの構成において、相対RPSパラメータは、負の相対RPSパラメータであり得る。他の構成において、相対RPSパラメータは、正の相対RPSパラメータであり得る。いくつかの構成において、相対的な負のRPSパラメータは、負のRPSインデックス値であり得る。たとえば、負のRPSインデックス値は、得られた現ピクチャに対して相対的であり得る。言換えると、相対RPSインデックス値は、現ピクチャのインデックス位置に対する参照ピクチャの位置を示してもよい。
いくつかの例および構成は、相対RPSパラメータを負のRPSパラメータとして示すが、当然のことながら正のパラメータがそれぞれの態様で用いられてもよい。言換えると、本明細書において、たとえ負の相対RPSパラメータに関連する例が与えられていても、正の相対RPSパラメータを用いた類似の例が使用され得る。同様に、正または負の含意に対する他の例も、多くの場合に反転され得る。
電子デバイス702は、インデックス値を初期化する(ステップ1408)。いくつかの構成において、電子デバイス702は、インデックス値を0に初期化してもよい。他の構成において、電子デバイス702は、得られたパラメータに基づいてインデックス値を初期化してもよい。
電子デバイス702は、インデックス値に基づいて別のRPSパラメータを処理する(ステップ1410)。いくつかの構成において、他のRPSパラメータは正のRPSパラメータであってもよい。他の構成において、他のRPSパラメータは負のRPSパラメータであってもよい。いくつかの構成において、他のRPSパラメータは正のRPSインデックス値であってもよい。たとえば、以下のリスト(13)は、インデックス値に基づいて正のRPSパラメータを処理するための1つのアプローチを示すものである。
リスト(13)
リスト(13)において、value=read()は、ビットストリームから情報を読取ることを表す。いくつかの構成においては、リスト(13)に示されるとおり、インデックス値が「prev」であってもよい。いくつかの構成においては、インデックス値がRPS_deltaPocであってもよい。さらに、いくつかの構成においては、インデックス値が0に初期化されてもよい。他の構成においては、インデックス値が負のRPSインデックス値の最小絶対値に初期化されてもよい。さらに他の構成においては、インデックス値が正のRPSインデックス値の最小値を負にした値(例、最小の正のRPSインデックス値の−1倍)に初期化されてもよい。いくつかの構成または場合において、インデックス値は0でない値に初期化されてもよい。
なお、相対RPSパラメータと同様に、他のRPSパラメータは正または負であってもよい。言換えると、本明細書においてたとえ正のRPSパラメータに関する例が与えられていても、負のRPSパラメータを用いた類似の例が使用され得る。したがって、いくつかの構成においては、相対RPSパラメータが負である一方で、他のRPSパラメータが正であってもよい。代替的に、いくつかの構成においては、相対RPSパラメータが正である一方で、他のRPSパラメータが負であってもよい。一般的に、相対RPSパラメータおよび他のRPSパラメータは、異なる符号(例、負または正)を有し得る。
電子デバイス702は現ピクチャを復号する(ステップ1412)。このステップは、たとえばデコーダ712において行われてもよい。デコーダ712は、HEVCタイプのデコーダ712であってもよい。
図15は、電子デバイスにおいてピクチャを復号するための方法1500のより特定的な構成を示す流れ図である。1つの構成においては、図14に関連して前述したとおり、電子デバイス702はビットストリームを得て(ステップ1502)、現ピクチャを得て(ステップ1504)、相対RPSパラメータを得る(ステップ1506)。
電子デバイス702は、相対RPSパラメータに基づいてインデックス値を初期化する(ステップ1508)。たとえば、リスト(14)は、相対的な負のRPSパラメータに基づいてインデックス値を初期化する(ステップ1508)ためのシンタックスの一例を示すものである。本明細書において開示されるシステムおよび方法に従うシンタックスの修正を太字で示す。いくつかの構成において、リスト(14)に関連して述べられるアプローチは、前述のリスト(4)によるアプローチに対応し得る。
リスト(14)
いくつかの構成において、インデックス値はリスト(14)における「prev」であってもよく、「prev」は前のインデックス値を表してもよい。この場合、prevは、負のRPS_deltaPocの最小絶対値に基づいて初期化されてもよい。「RPS_deltaPOC」はRPSインデックス値を示す。
たとえば、電子デバイス702によって、参照インデックス[−2,−4,2]を有するRPSが得られたものとする。しかしながら、たとえば図4に関連して述べられたアプローチのような符号化のために、電子デバイス702において受信される第1の正のRPSインデックスは0の値を有し得る。負のRPSインデックス値が処理されて、1つまたはそれ以上の相対的な負のRPSパラメータが生成される。ここでは、相対的な負のRPSパラメータとして−2が得られる。
この例を続けると、相対的な負のRPSパラメータに基づいて、インデックス値が初期化される(ステップ1508)。リスト(14)は、相対的な負のRPSパラメータに基づいてprevが初期化され得ることを示す。ここでprevは、相対的な負のRPSパラメータ−2に基づいて初期化される。いくつかの場合に、相対的な負のRPSパラメータは、現ピクチャに対する負のRPSインデックス値のセットから取られる最小絶対値であり得る。よってprevは、負のRPSインデックス値のセットから取られる最小絶対値マイナス1に初期化される。言換えると、prev=1(例、|−2|−1)である。
電子デバイス702は、インデックス値に基づいて別のRPSパラメータを処理する(ステップ1510)。たとえば、上の例に戻ると、電子デバイス702はprev=1に基づいて別のRPSパラメータを処理する(ステップ1510)。1つの場合において、正のRPSパラメータを処理するステップは、RPS_deltaPoc(k)=value+1+prevを使用するステップを含んでもよい。この場合、RPS_deltaPoc(k)は、値(例、0の相対値)プラス1プラスprev(1)に等しくなる。言換えると、RPS_deltaPoc(k)=2である。よってこの例において、生成される正のRPSパラメータは2である。加えて、現ピクチャに対して生成されるRPSインデックス値は[−2,−4,2]である。
RPSインデックス値が得られると、電子デバイス702は現ピクチャを復号する(ステップ1512)。たとえば、現ピクチャは生成されたRPSインデックス値を復号のために用いてもよい。
別の例において、RPSはインデックス値[−4,−6,4]を有するものとする。ここで、−4が負の相対RPSパラメータとして得られる。インデックス値は3に、すなわち負のRPSインデックス値の最小絶対値マイナス1に初期化され得る。言換えると、prev=|−4|−1=3である。正のRPSパラメータ値を処理することによって、RPSインデックス値4が得られる。よってこの例において、RPSインデックス値のセットは[−4,−6,4]となる。
図16は、電子デバイス702においてピクチャを復号するための方法1600の、別のより特定的な構成を示す流れ図である。図14に関連して前述したとおり、電子デバイス702はビットストリームを得て(ステップ1602)、現ピクチャを得て(ステップ1604)、相対RPSパラメータを得る(ステップ1606)。
電子デバイス702は対称フラグを得る(ステップ1608)。いくつかの構成において、対称フラグは、前述した対称フラグと同じかまたは類似のものであってもよい。たとえば、対称フラグは、相対的な負のRPSパラメータが正のRPSパラメータに対応することを示してもよい。たとえば、RPSインデックス値のセット[−2,−6,2,4]が与えられるとき、対称フラグはインデックス値−2がインデックス値2に対応することを示してもよい。
加えて、第1の正のRPSインデックス値が負のRPSインデックス値によって初期化され得るかどうかを示すために、ビットストリーム714においてsymmetric_flagが送られてもよい。たとえば、対称フラグは、インデックス値が負のRPS_deltaPoc値の最小絶対値に初期化されるべきであることを示してもよい。代替的に、対称フラグは、インデックス値を負のRPS_deltaPoc値の最小絶対値に初期化しないことを示してもよい。この場合、インデックス値は0に初期化されてもよい。
電子デバイス702は、相対的な負のRPSパラメータおよび対称フラグに基づいてインデックス値を初期化する(ステップ1610)。一例として、以下のリスト(15)は、相対的な負のRPSパラメータおよび対称フラグに基づいてインデックス値を初期化するステップ(ステップ1610)の1つのアプローチを示すものである。本明細書において開示されるシステムおよび方法に従うシンタックスの修正を太字で示す。
リスト(15)
リスト(15)の1つの構成において、RPS_deltaPOC(num_negative_pics−1)は負のRPSインデックス値を保存する。RPS_deltaPOC(num_negative_pics)からRPS_deltaPOC(num_negative_pics+num_positive_pics−1)は、正のRPSインデックス値を保存する。この場合、上記RPS_deltaPoc(num_negative_pics)は第1の正のRPSインデックス値を保存する。言換えると、RPS_deltaPoc(num_negative_pics)は第1の正のRPSインデックス値を示す。最初に電子デバイス702は、少なくとも1つの正のRPSインデックス値が存在することを確認する。次いで電子デバイス702は、対称フラグが存在するかどうか、およびそのフラグが真に設定されているかどうかを判定する。もし真に設定された対称フラグが存在すれば、電子デバイス702は、相対的な負のRPSパラメータに基づいてインデックス値を初期化する(ステップ1610)。よって、インデックス値の初期化は、相対的な負のRPSパラメータおよび対称フラグの両方に基づいている。この構成において、RPS_deltaPoc(num_negative_pics)のインデックス値は、負のRPS_deltaPocの最小絶対値に初期化される。たとえば、RPSインデックス値[−8,−4,4,6]の場合において、第1の正のRPSインデックス値は4に、すなわち負のRPS_deltaPocの最小絶対値に初期化され得る。
電子デバイス702は、インデックス値に基づいて1つまたはそれ以上の他のRPSパラメータを処理する(ステップ1612)。たとえば上の例において、正のインデックス値4によって、電子デバイス702は第2の正のRPSインデックス値6を生成できてもよい。さらに電子デバイス702は、インデックス値が初期化されるときに、他のRPSパラメータの少なくとも1つを処理するステップをスキップしてもよい。言換えると、第1の正のRPSインデックス値が初期化されるとき、正のRPSインデックス値を処理するステップは、第2の正のRPSインデックス値にスキップする。たとえば上の例において、第1の正のRPSインデックス値が4に初期化されるとき、処理は第2の正のRPSインデックス値にスキップして、6の値を生成する。よってこの例においては、RPSインデックス値のセット[−8,−4,4,6]が得られる。
正のRPSインデックス値が1つしかないいくつかの場合においては、そのインデックス値の初期化の際に、正のRPSインデックス値の処理がスキップされてもよい。たとえば、インデックス値[−4,−8,4]に対して、電子デバイス702はRPSインデックス値[−4,−8]を受信して、復号される現ピクチャに対する参照インデックス値[−4,−8,4]を導出してもよい。よって、各現ピクチャに対する各RPSの第1の正の参照ピクチャの処理をスキップすることによって、処理時間が低減され得る。
RPSインデックス値が得られると、電子デバイス702は現ピクチャを復号する(ステップ1614)。たとえば、現ピクチャは処理されたRPSインデックス値を復号のために用いてもよい。
別の例において、RPSインデックス値[−2,−4,2,6]に対して、もしsymmetric_flagが真であれば、負のRPSインデックス値から導出されるとおり、正のRPS_deltaPOC値に対する第1の値は2に等しいはずである。加えて、初期化されたインデックス値から他の正のRPSインデックス値が生成されてもよい。たとえば、正のRPSインデックス値の処理は第2の正のRPSインデックス値(例、6)から始まってもよく、かつ初期化されたインデックス値2に基づいていてもよい。
図17は、電子デバイス302において参照ピクチャセットをシグナリングするための方法1700の一構成を示す流れ図である。たとえばJCTVC−G637など、公知の実施の1つにおいては、参照ピクチャセットのプルーニングが提案されている。この実施は、ピクチャパラメータセット(PPS)においてシグナリングされる特定の参照ピクチャセット(RPS)から省略されたいくつかの短期参照ピクチャをシグナリングするためのアプローチを提案する。たとえば、RPSにおいてシグナリングされるピクチャのうちのいくつかが、ランダムアクセスポイント後の第1のグループオブピクチャ(GOP)の一部に属するために利用可能でないときに、このアプローチが用いられる。
本明細書において開示されるシステムおよび方法は、参照ピクチャセット(RPS)シグナリングおよび予測に対して1つまたはそれ以上の付加的な利益を提供し得る。たとえば公知のアプローチからの効率改善などの付加的な利益は、部分RPSをシグナリングするときのインターRPSシグナリングおよび予測によって得られてもよい。さらに、本明細書において開示されるシステムおよび方法は、公知のアプローチよりも高い簡潔性を提供し得る。
1つの構成において、電子デバイス302は、現ピクチャに対応する、前にシグナリングされた参照ピクチャセット(RPS)を示す(ステップ1702)。たとえば、電子デバイス302はエンコーダ304であってもよい。エンコーダ304はHEVCタイプのエンコーダ304であってもよい。
現ピクチャは、ランダムアクセスポイント後の第1のGOPに属していてもよい。前にシグナリングされたRPSは、シーケンスパラメータセット(SPS)の一部として、または別のパラメータセット(例、ピクチャパラメータセット(PPS)、適応パラメータセット(APS)、ビデオパラメータセット(VPS)など)の一部として、ランダムアクセスポイントにおいて送られてもよい。代替的に、前にシグナリングされたRPSは、ビットストリームの別のエレメントを用いることによって送られてもよいし、何らかのアウトオブバンド機構から得られてもよい。別の場合において、現ピクチャはランダムアクセスポイント後の第1のGOPに属さなくてもよい。
前にシグナリングされたRPSは、インデックスによって識別され得る。たとえば、インデックスはRPSインデックス、たとえばrps_idx[idx]などであってもよい。インデックスは、現ピクチャの復号に用いられる対応値を含んでもよい。
現ピクチャに対応するRPSは、前にシグナリングされたRPSに対する削除動作によってシグナリングされてもよい。たとえば、参照ピクチャが失われることがあり、その参照ピクチャに対して、デコーダ712がフィードバックを介してエンコーダ304にシグナリングしてもよい。しかし、エンコーダ304はもはやその失われたピクチャを参照フレームとして用いないかもしれない。たとえば、非低遅延条件が存在するときにこの状況が起こり得る。前にシグナリングされたRPSを用いることによって、デコーダ712は1つまたはそれ以上の前に得られた参照ピクチャを用いて現ピクチャを復号できてもよい。
電子デバイス302は、前にシグナリングされたRPSの1つまたはそれ以上のピクチャに対して第1のフラグを設定する(ステップ1704)。そのピクチャが現ピクチャに対する参照ピクチャとして用いられるときに、第1のフラグが設定される(ステップ1704)。たとえば、第1のフラグはブール値を表してもよく、もしそのピクチャが現ピクチャに対する参照ピクチャとして用いられるのであれば「1」に設定されてもよい。代替的に、当然のことながら別の構成においては、そのピクチャが現ピクチャに対する参照ピクチャとして用いられることを示すために、第1のフラグが「0」に設定されてもよい。
本明細書において用いられる、フラグの定義において用いられるときの「正」という用語は、フラグが設定されていることを示す。たとえば、もしそのピクチャが現ピクチャに対する参照ピクチャとして用いられるように第1のフラグが設定されていれば、第1のフラグは正である。もしそのピクチャが現ピクチャに対する参照ピクチャとして用いられないのであれば、フラグは設定されなくてよい(すなわち、正でない)。当然のことながら、いくつかの構成においては、フラグを設定するときに負の値が代替的に用いられてもよい。いくつかの構成において、もしそのピクチャが現ピクチャに対する参照ピクチャとして用いられないのであれば、フラグは省略されてもよい。
前にシグナリングされたRPSは、現ピクチャに対する参照ピクチャとして用いられる複数のピクチャを示してもよい。この場合、現ピクチャに対する参照ピクチャとして用いられる各ピクチャの第1のフラグは、正になるように設定される。言換えると、前にシグナリングされたRPSの各参照ピクチャに対して、もしその参照ピクチャが現ピクチャを復号するための参照ピクチャとして用いられるのであれば、対応するフラグが設定される。加えてこの場合、現ピクチャに対する参照ピクチャとして用いられない各ピクチャの第1のフラグは、正にならないように設定される。
電子デバイス302はビットストリームを送る(ステップ1704)。ビットストリームは、第1のフラグが設定された、前にシグナリングされたRPSを含んでもよい。ビットストリームは、複数の設定された第2のフラグを含んでもよい。各々の設定された第2のフラグは、現ピクチャに対する参照ピクチャとして用いられ得る、前にシグナリングされたRPSの参照ピクチャに対応してもよい。
いくつかの構成において、ビットストリームは、現RPSに対する現ピクチャ使用フラグ値を除外してもよい。言換えると、ビットストリームは、現RPSに対する現ピクチャ使用フラグ値を含まなくてもよい。現RPSに対する現ピクチャ使用フラグ値は、前にシグナリングされたRPSにおいてシグナリングされた1つまたはそれ以上の他の参照ピクチャの対応値に基づいて、たとえばデコーダ712などの電子デバイスによって予測および/または決定され得る。
1つのアプローチにおいて、前にシグナリングされたRPSは、シーケンスパラメータセット(SPS)においてシグナリングされてもよい。以下のリスト(16)は、参照ピクチャセットをシグナリングするために、シーケンスパラメータセットローバイトシーケンスペイロード(raw byte sequence payload:RBSP)において用いられ得るシンタックスの一例を提供するものである。本明細書において開示されるシステムおよび方法に従うシンタックスの修正を太字で示す。
リスト(16)
リスト(16)において、「num_short_term_ref_pic_sets」は、ピクチャパラメータセットにおいて指定される全短期参照ピクチャセットの数を指定する。num_short_term_ref_pic_setsの値は、両端値を含めて、0から64の範囲内にある。
「predicted_short_term_ref_pic_sets_present_flag」が1に等しいことは、全参照ピクチャセットに関連して符号化されたいくつかの予測短期参照ピクチャセットが、このシーケンスパラメータセットに存在することを示す。predicted_short_term_ref_pic_sets_present_flagが0に等しいことは、全参照ピクチャセットに関連して符号化された予測短期参照ピクチャセットが、このシーケンスパラメータセットに存在しないことを示す。
いくつかの構成において、部分短期参照ピクチャセットは、予測短期参照ピクチャセットの一部であってもよい。たとえば、部分短期参照ピクチャセット存在フラグは、予測短期参照ピクチャセット存在フラグの一部であってもよい。
リスト(16)に示されるとおり、前にシグナリングされた参照ピクチャセット(RPS)は、SPSにおけるたとえばpredicted_short_term_ref_pic_sets_present_flagなどのフラグによってシグナリングされてもよい。SPSのビットフィールドは、インターRPS予測が適用されるRPSの各ピクチャに対応してもよい。たとえばビットフィールドは、前にシグナリングされたRPSからの対応する参照ピクチャまたは対応する参照ピクチャ値を保持するか、または廃棄するかを示すために、「1」または「0」の値をシグナリングしてもよい。
「num_predicted_short_term_ref_pic_sets_minus1」は、シーケンスパラメータセットにおいて指定された、予測短期参照ピクチャセットの数マイナス1を示す。num_short_term_ref_pic_sets_minus1の値は、両端値を含めて、0から63の範囲内である。
1つの構成において、デコーダ712は、短期参照ピクチャセットの総数に対して空間を割り当ててもよい。なぜなら、符号化ビデオシーケンスは、現ピクチャのスライスヘッダにおいて明示的にシグナリングされた最大1つの短期参照ピクチャセットを含み得るからである。たとえば、短期参照ピクチャセットの総数は、もしpredicted_short_term_ref_pic_sets_present_flagフラグが1に等しければ、num_short_term_ref_pic_sets+num_predicted_short_term_ref_pic_sets_minus1+1+1に等しく定められ得る。短期参照ピクチャセットの総数は、もしpredicted_short_term_ref_pic_sets_present_flagフラグが0に等しければ、num_short_term_ref_pic_sets+1に等しく定められ得る。
この構成において、もしpredicted_short_term_ref_pic_sets_present_flagフラグが1に等しければ、スライスヘッダの明示的にシグナリングされた短期参照ピクチャセットは、短期参照ピクチャセットのリスト内に常に(num_short_term_ref_pic_sets+num_predicted_short_term_ref_pic_sets_minus1+1)に等しいインデックスを有する。加えて、この構成において、もしpredicted_short_term_ref_pic_sets_present_flagフラグが0に等しければ、スライスヘッダの明示的にシグナリングされた短期参照ピクチャセットは、短期参照ピクチャセットのリスト内に常に(num_short_term_ref_pic_sets+1)に等しいインデックスを有する。
「rps_idx[idx]」は、インデックスidxとともにシグナリングされる予測短期参照ピクチャセットを導出するために用いられる全短期参照ピクチャセットのインデックスを指定する。「num_pics_in_rps_idx[idx]」は、インデックスrps_idx[idx]を有するピクチャパラメータセットの全短期参照ピクチャセットに含まれる、負のピクチャの総数と正のピクチャの総数との合計を指定する。いくつかの構成において、num_pics_in_rps_idx[idx]は、インデックスrps_idx[idx]を有する対応の短期参照ピクチャセットから既知であるため、予測短期参照ピクチャセットにおいてシグナリングされる必要がない。
「keep_pic_flag」[j]が1に等しいことは、この予測参照ピクチャセットを導出するために、インデックスrps_idx[idx]を有するシーケンスパラメータセットの参照ピクチャセットからの、対応するj番目の短期参照ピクチャが保持されるべきであることを示す。keep_pic_flag[j]が0に等しいことは、この予測参照ピクチャセットを導出するために、インデックスrps_idx[idx]を有するピクチャパラメータセットの全短期参照ピクチャセットからの、対応するj番目の短期参照ピクチャが削除(例、省略)されるべきであることを示す。
別のアプローチにおいて、前にシグナリングされたRPSは、ピクチャパラメータセット(PPS)においてシグナリングされてもよい。以下のリスト(17)は、インター参照ピクチャをシグナリングするピクチャパラメータセットローバイトシーケンスペイロード(RBSP)において用いられ得るシンタックスの一例を提供するものである。本明細書において開示されるシステムおよび方法に従うシンタックスの修正を太字で示す。
リスト(17)
図18は、電子デバイス302において参照ピクチャセットをシグナリングするための方法1800の別の構成を示す流れ図である。電子デバイス302は、1つまたはそれ以上の全参照ピクチャセット(RPS)をシグナリングしてもよい。RPSは、前に復号されたピクチャに関連して送られてもよい。
電子デバイス302は、いずれかの予測RPSがシグナリングされるかどうかを定める(ステップ1904)。もしシグナリングされる予測RPSがなければ、電子デバイス302は予測RPSをシグナリングしない(ステップ1806)。たとえば、電子デバイス302は「0」に等しいpredicted_short_term_ref_pic_sets_present_flagをシグナリングする(ステップ1806)。
もしシグナリングされる1つまたはそれ以上の予測RPSがあれば、電子デバイス302はその1つまたはそれ以上の予測RPSをシグナリングする(ステップ1808)。たとえば、電子デバイス302は「1」に等しいpredicted_short_term_ref_pic_sets_present_flagをシグナリングする(ステップ1808)。
電子デバイス302は、予測RPSの数を送る(ステップ1810)。たとえば、電子デバイス302はnum_predicted_short_term_ref_pic_sets_minus1を送る(ステップ1810)。
シグナリングされる各予測RPSに対して、電子デバイス302は、前にシグナリングされた全RPSに対する参照を送る(ステップ1812)。たとえば、電子デバイス302はrps_idx[idx]を送る(ステップ1812)。
前にシグナリングされたRPSの各参照ピクチャに対して、電子デバイス302は、その参照ピクチャが現ピクチャに対する参照ピクチャとして用いられるかどうかをシグナリングする(ステップ1814)。たとえば電子デバイス302は、その参照ピクチャが現ピクチャに対する参照ピクチャとして用いられるかどうかを示す、たとえばピクチャ保持フラグなどのフラグを設定してもよい。
電子デバイス302は、現RPSに対する現ピクチャ使用フラグを除外する、すなわち送らない(ステップ1816)。言換えると、現RPSに対する現ピクチャ使用フラグ値は、電子デバイス302によって表示も、シグナリングも、符号化もされなくてよい。現RPSに対する現ピクチャ使用フラグ値は、たとえばデコーダ712などの電子デバイスによって予測および/または決定されてもよい。
さらに別のアプローチにおいて、前にシグナリングされたRPSは、短期参照ピクチャセットにおいてシグナリングされてもよい。以下のリスト(18)は、参照ピクチャセットをシグナリングするために短期参照ピクチャセットにおいて用いられ得るシンタックスの一例を提供するものである。本明細書において開示されるシステムおよび方法に従うシンタックスの修正を太字で示す。
リスト(18)
さらに他のアプローチにおいて、前にシグナリングされたRPSは、適応パラメータセット(APS)、ビデオパラメータセット(VPS)、スライスヘッダなどにおいてシグナリングされてもよい。さらに、前にシグナリングされたRPSは、ビットストリームの別のエレメントを用いることによってシグナリングされてもよい。
図19は、電子デバイス302において参照ピクチャセットをシグナリングするための方法1900のより特定的な構成を示す流れ図である。電子デバイス302は、予測短期参照ピクチャセット存在フラグを用いて、前にシグナリングされた参照ピクチャセット(RPS)に基づいて予測短期RPSがシグナリングされることを示す(ステップ1902)。たとえば、予測短期参照ピクチャセット存在フラグを用いる現ピクチャは、前にシグナリングされたRPSが現ピクチャの復号に用いるためにシグナリングされるかどうかを示すブール値であってもよい。いくつかの構成において、電子デバイス302はエンコーダ304であってもよい。エンコーダ304はHEVCタイプのエンコーダ304であってもよい。
現ピクチャは、ランダムアクセスポイントおよび/または前にシグナリングされたRPSに対する削除動作の後の、第1のGOPに属してもよい。いずれの場合にも、前にシグナリングされたRPSをシグナリングするステップは、現在公知のアプローチを超える効率の増加を提供し得る。
前にシグナリングされたRPSは、インデックスに対応し得る。たとえば、前にシグナリングされたRPSは、前にシグナリングされたRPSのセットのセットに対するインデックスとしてシグナリングされる。加えてインデックスは、たとえばrps_idx[idx]などのRPSインデックスであってもよい。インデックスは、現ピクチャを復号するために用いられるRPSを予測するために用いられる、前にシグナリングされたRPSを示してもよい。
電子デバイス302は、前にシグナリングされたRPSにおける第2の参照ピクチャの現ピクチャ使用フラグ値を示す(ステップ1904)。第2の参照ピクチャの現ピクチャ使用フラグ値は、現ピクチャに対応する値であってもよい。言換えると、前にシグナリングされたRPSを示すステップ(ステップ1902)において、電子デバイス302は、前にシグナリングされたRPSにおける他の参照ピクチャの1つまたはそれ以上の対応値を示してもよい。前にシグナリングされたRPSにおける他の参照ピクチャの1つまたはそれ以上の対応値は、前にシグナリングされたRPSにおける他の参照ピクチャに対する現ピクチャ使用フラグ値であってもよい。対応値は電子デバイス302によって示され(ステップ1904)、エンコーダ304によって符号化され得る。
電子デバイス302は、前にシグナリングされたRPSのピクチャに対して、もしそのピクチャが現ピクチャに対する参照ピクチャとして用いられるのであれば、ピクチャ保持フラグを設定する(ステップ1906)。1つの構成において、ピクチャ保持フラグは、前にシグナリングされたRPSに対応するインデックスのビットフィールドを表してもよい。たとえば、インデックスrps_idx[idx]に対応するRPSの各参照ピクチャは、対応する参照ピクチャを保持するか廃棄するかを示すピクチャ保持フラグか、または前にシグナリングされたRPSからの対応する参照ピクチャ値をシグナリングされてもよい。
電子デバイス302は、現RPSに対する現ピクチャ使用フラグを除外する(ステップ1908)。言換えると、現RPSに対する現ピクチャ使用フラグ値は、電子デバイス302(例、エンコーダ304)によって表示も、シグナリングも、符号化もされなくてよい。現RPSに対する現ピクチャ使用フラグ値は、たとえばデコーダ712などの電子デバイスによって、前にシグナリングされたRPSの1つまたはそれ以上の他のピクチャの現ピクチャ使用フラグ値に基づいて、予測および/または決定されてもよい。
電子デバイス302はビットストリームを送る(ステップ1910)。ビットストリームは、予測短期参照ピクチャセット存在フラグが設定された、前にシグナリングされたRPSを含んでもよい。ビットストリームはさらに、現ピクチャを復号するために用いられる1つまたはそれ以上の参照ピクチャに対応する、複数の設定された現ピクチャ使用フラグを含んでもよい。
図20は、電子デバイス302において参照ピクチャセットを予測するための方法2000の一構成を示す流れ図である。たとえばHEVCドラフト(Draft)6において提供される実施など、いくつかの公知の実施においては、インターRPS予測がサポートされる。しかし、このアプローチは本明細書に記載されるアプローチよりも複雑であり、かつ効率が低い。
たとえばJCTVC−I0347など、別の公知の実施においては、インターRPS予測のためのシンタックスが提供される。このシンタックスは、delta_rps_signおよびabs_delta_rps_minus1を1つのシンタックスエレメントに併合することによって、HEVCドラフト6のシンタックスを修正したものである。
たとえばJCT−G198など、さらに別の公知の実施においては、インター参照ピクチャセット予測が提案される。この実施の主な使用事例は、前にシグナリングされたRPSに関して新たなRPSを符号化することによって、新たなRPSをシグナリングするためのビット数を低減させることである。この実施において、シグナリングスキームは一定のdeltaRPS値を送る。前のRPSからのPOCをスキップすべき(例、使用すべきでない)かどうかをシグナリングするために、付加的なフィールドが送られ得る。
1つの構成において、電子デバイス302はビットストリームを得る(ステップ2002)。電子デバイス302は現ピクチャを得る(ステップ2004)。たとえば、現ピクチャはビットストリームから得られてもよい。
電子デバイス302は、前にシグナリングされた参照ピクチャセット(RPS)を得てもよい。前にシグナリングされたRPSは、電子デバイス302にすでに存在し得る。この場合、ビットストリームは、前にシグナリングされたRPSの使用を示す、現ピクチャに対する信号を送っていてもよい。
いくつかの構成において、前にシグナリングされたRPSは、エンコーダ304によって送られて、ビットストリームにおいて受信されてもよい。たとえば、ビットストリームは、前にシグナリングされたRPSが現ピクチャを復号するために用いられることを示す第1のフラグを含んでもよい。
前にシグナリングされたRPSは、前のピクチャを復号するために用いられた1つまたはそれ以上のピクチャを含んでもよい。前にシグナリングされたRPSは、インデックスに対応し得る。たとえば、前にシグナリングされたRPSは、前にシグナリングされたRPSのセットのセットに対するインデックスとしてシグナリングされる。インデックスは、対応する参照ピクチャおよび/または現ピクチャの復号に用いられる値を示してもよい。
前にシグナリングされたRPSの各ピクチャに対して、電子デバイスは、もしそのピクチャが現ピクチャに対する参照ピクチャとして用いられる必要があれば、第1のフラグ表示を得る(ステップ2008)。第1のフラグは、そのピクチャが現ピクチャに対する参照ピクチャとして用いられるかどうかを示してもよい。たとえば、第1のフラグはブール値を表してもよく、もしそのピクチャが現ピクチャに対する参照ピクチャとして用いられるのであれば「1」に設定されてもよい。代替的に、当然のことながら別の構成においては、そのピクチャが現ピクチャに対する参照ピクチャとして用いられることを示すために、第1のフラグが「0」に設定されてもよい。
前にシグナリングされたRPSのピクチャが現ピクチャに対する参照ピクチャとして用いられるように第1のフラグが設定されるとき、第1のフラグは正であり得る。もしそのピクチャが現ピクチャに対する参照ピクチャとして用いられないのであれば、フラグは設定されなくてよい(すなわち、正でない)。当然のことながら、いくつかの構成においては、第1のフラグを設定するときに負の値が用いられてもよい。前にシグナリングされたRPSの複数のピクチャが現ピクチャに対する参照ピクチャとして用いられる場合、各ピクチャは対応する第1のフラグを有してもよい。
もし第1のフラグが正であれば、電子デバイス302は、前にシグナリングされたRPSの1つの対応値から第2のフラグを定める(ステップ2010)。
言換えると、もし前にシグナリングされたRPSのピクチャが現ピクチャに対する参照ピクチャとして用いられれば、電子デバイス302は現ピクチャに対する第2のフラグ値を推測してもよい。第2のフラグ値は、前にシグナリングされたRPSの参照ピクチャの第2のフラグ値から推測、予測または決定されてもよい。第2のフラグは、現ピクチャ使用フラグであってもよい。
電子デバイス302は現ピクチャを復号する(ステップ2012)。このステップは、たとえばデコーダ712において行われてもよい。デコーダ712はHEVCタイプのデコーダ712であってもよい。
図21は、電子デバイス302において参照ピクチャセットを予測するための方法2100の別の構成を示す流れ図である。電子デバイス302は、1つまたはそれ以上の、前に受信された全参照ピクチャセット(RPS)に対する信号を得る(ステップ2102)。たとえばその信号は、前のピクチャを復号するために用いられた、前に受信されたRPSを示してもよい。
電子デバイス302は、いずれかの予測RPSがシグナリングされたかどうかを定める(ステップ2104)。もしシグナリングされた予測RPSがなければ、電子デバイス302は予測RPSがないことを示す信号を得る(ステップ2106)。たとえば電子デバイス302は、たとえばpredicted_short_term_ref_pic_sets_present_flagが「0」に等しいなどの信号を得る(ステップ2106)。
もし1つまたはそれ以上のシグナリングされた予測RPSがあれば、電子デバイス302は1つまたはそれ以上の予測RPSを示す信号を得る(ステップ2108)。たとえば電子デバイス302は、たとえばpredicted_short_term_ref_pic_sets_present_flagが「1」に等しいなどの信号を得る(ステップ2108)。
電子デバイス302は、予測RPSの数を得る(ステップ2110)。たとえば電子デバイス302は、num_predicted_short_term_ref_pic_sets_minus1を得る(ステップ2110)。
シグナリングされた各予測RPSに対して、電子デバイス302は、前にシグナリングされた全RPSに対する参照を得る(ステップ2112)。たとえば電子デバイス302は、rps_idx[idx]を得る(ステップ2112)。
前にシグナリングされたRPSの各参照ピクチャに対して、電子デバイス302は、その参照ピクチャが現ピクチャに対する参照ピクチャとして用いられるかどうかの信号を得る(ステップ2114)。たとえば電子デバイス302は、その参照ピクチャが現ピクチャに対する参照ピクチャとして用いられるかどうかを示す、たとえばピクチャ保持フラグなどのフラグを得てもよい。
電子デバイス302は、前にシグナリングされたRPSの対応する参照ピクチャの値から、現ピクチャに対する現ピクチャ使用フラグ値を定める(ステップ2116)。電子デバイス302は、前のRPSにおいてシグナリングされた1つまたはそれ以上の参照ピクチャの1つまたはそれ以上の対応する(例、現ピクチャ使用フラグ値)値に基づいて現ピクチャ使用フラグ値を推測または予測することによって、現ピクチャに対する現ピクチャ使用フラグ値を定める(ステップ2116)。
電子デバイス302は、現ピクチャ使用フラグ値に基づいて現ピクチャを復号する(ステップ2118)。現ピクチャ使用フラグ値は、現ピクチャの現ピクチャ使用フラグ値を含み得る。
図22は、電子デバイスにおいて参照ピクチャセットを予測するための方法2200のより特定的な構成を示す流れ図である。電子デバイス302はビットストリームを得て(ステップ2202)、現ピクチャを得る(ステップ2204)。たとえば、現ピクチャはビットストリームから得られてもよい。
電子デバイス302は、予測短期参照ピクチャ存在フラグに基づいて、前にシグナリングされた参照ピクチャセット(RPS)を得る(ステップ2204)。この態様で、前にシグナリングされて電子デバイス302に存在するRPSが、前に復号された参照ピクチャとともに、現ピクチャを復号するために使用および/または再使用され得る。
予測短期参照ピクチャ存在フラグは、前にシグナリングされたRPSの存在をシグナリングし得る。たとえば、もし予測短期参照ピクチャ存在フラグが設定されていれば、予測短期参照ピクチャ存在フラグは、前にシグナリングされたRPSを電子デバイス302にシグナリングしてもよい。いくつかの構成においては、予測短期参照ピクチャ存在フラグの存在によって、前にシグナリングされたRPSが電子デバイス302にシグナリングされてもよい。
RPSは、実際の現ピクチャまたは前のピクチャとは別に送られてもよい。RPSは、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、別のパラメータセット、および/またはスライスヘッダの一部として送られてもよい。
前にシグナリングされたRPSの各参照ピクチャに対して、電子デバイス302は、もしそのピクチャが現ピクチャに対する参照ピクチャとして用いられる必要があれば、ピクチャ保持フラグ表示を得る(ステップ2206)。ピクチャ保持フラグは、前にシグナリングされたRPSのピクチャが現ピクチャの復号において参照ピクチャとして用いられるかどうかを示す。
電子デバイス302は、ピクチャ保持フラグに基づいて、前にシグナリングされたRPSから対応値を得る(ステップ2210)。たとえば、前にシグナリングされたRPSのピクチャが現ピクチャに対する参照ピクチャとして用いられることをピクチャ保持フラグが示すとき、電子デバイス302は、そのピクチャに対応する、前にシグナリングされたRPSから、たとえば現ピクチャ使用フラグ値などの対応値を得てもよい。いくつかの構成において、前にシグナリングされたRPSの1つまたはそれ以上の参照ピクチャに対する現ピクチャ使用フラグ値は、エンコーダ304によって電子デバイス302に送られてもよい。
電子デバイス302は、前にシグナリングされたRPSの第2の参照ピクチャの対応値から、現ピクチャに対する現ピクチャ使用フラグ値を定める(ステップ2212)。電子デバイス302は、前にシグナリングされたRPSの1つまたはそれ以上の参照ピクチャの1つまたはそれ以上の対応する(例、現ピクチャ使用フラグ値)値に基づいて現ピクチャ使用フラグ値を推測または予測することによって、現ピクチャに対する現ピクチャ使用フラグ値を定めてもよい。
電子デバイス302は、現ピクチャ使用フラグ値に基づいて現ピクチャを復号する(ステップ2214)。現ピクチャ使用フラグ値は、現ピクチャの現ピクチャ使用フラグ値と、シグナリングされた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ユニットが含まれてもよい。表5は、NALユニットコードおよびNALユニットタイプクラスの一例を示すものである。所望に応じて、他のNALユニットタイプが含まれてもよい。加えて、表5に示されるNALユニットに対するNALユニットタイプ値の入れ替えおよび再割り当てが行われ得ることが理解されるべきである。さらに、付加的なNALユニットタイプが追加されてもよい。さらに、いくつかのNALユニットタイプが除去されてもよい。
イントラランダムアクセスポイント(intra random access point:IRAP)ピクチャは符号化ピクチャであって、表5に示されるとおり、その符号化ピクチャに対して、各ビデオ符号化レイヤNALユニットが両端値を含むBLA_W_LPからRSV_IRAP_VCL23の範囲内のnal_unit_typeを有する。IRAPピクチャはイントラ(Intra)符号化(I)スライスのみを含む。瞬時復号リフレッシュ(IDR)ピクチャはIRAPピクチャであって、表5に示されるとおり、そのIRAPピクチャに対して、各ビデオ符号化レイヤNALユニットがIDR_W_RADLまたはIDR_N_LPに等しいnal_unit_typeを有する。瞬時復号リフレッシュ(IDR)ピクチャはIスライスのみを含み、復号順でビットストリームにおける第1のピクチャであってもよいし、もっと後にビットストリームに現れてもよい。各IDRピクチャは、復号順で符号化ビデオシーケンス(coded video sequence:CVS)の第1のピクチャである。ブロークンリンクアクセス(broken link access:BLA)ピクチャはIRAPピクチャであって、表5に示されるとおり、そのIRAPピクチャに対して、各ビデオ符号化レイヤNALユニットがBLA_W_LP、BLA_W_RADLまたはBLA_N_LPに等しいnal_unit_typeを有する。BLAピクチャはIスライスのみを含み、復号順でビットストリームにおける第1のピクチャであってもよいし、もっと後にビットストリームに現れてもよい。各BLAピクチャは新たな符号化ビデオシーケンスを開始し、かつ復号プロセスに対してIDRピクチャと同じ効果を有する。しかし、BLAピクチャは、空でない参照ピクチャセットを指定するシンタックスエレメントを含む。
現ピクチャがIRAPピクチャであるとき、以下が適用される。
−もし現ピクチャがIDRピクチャ、BLAピクチャ、復号順でビットストリームの第1のピクチャ、または復号順でシーケンスNALユニットの最後に続く第1のピクチャであれば、変数NoRaslOutputFlagは1に等しく設定される。
−そうでないとき、もし変数HandleCraAsBlaFlagを現ピクチャに対する値に設定するために何らかの外部手段が利用可能であれば、変数HandleCraAsBlaFlagはその外部手段によって提供される値に等しく設定され、変数NoRaslOutputFlagはHandleCraAsBlaFlagに等しく設定される。
−そうでなければ、変数HandleCraAsBlaFlagは0に等しく設定され、変数NoRaslOutputFlagは0に等しく設定される。
ランダムアクセス復号可能リーディング(RADL)ピクチャは符号化ピクチャであって、その符号化ピクチャに対して、各VCL NALユニットはRADL_RまたはRADL_Nに等しいnal_unit_typeを有する。すべてのRADLピクチャはリーディングピクチャである。RADLピクチャは、同じ関連IRAPピクチャの後続ピクチャの復号プロセスに対する参照ピクチャとして用いられない。存在するとき、すべてのRADLピクチャは、同じ関連IRAPピクチャのすべての後続ピクチャに復号順で先行する。
ランダムアクセススキップリーディング(RASL)ピクチャは符号化ピクチャであって、その符号化ピクチャに対して、各VCL NALユニットはRASL_RまたはRASL_Nに等しいnal_unit_typeを有する。すべてのRASLピクチャは、関連BLAまたはCRAピクチャのリーディングピクチャである。関連IRAPピクチャのNoRaslOutputFlagが1に等しいとき、RASLピクチャはビットストリームに存在しないピクチャに対する参照を含み得るため、RASLピクチャは出力されず、かつ正しく復号可能でないことがある。RASLピクチャは非RASLピクチャの復号プロセスに対する参照ピクチャとして用いられない。存在するとき、すべてのRASLピクチャは、同じ関連IRAPピクチャのすべての後続ピクチャに復号順で先行する。
表6を参照すると、NALユニットヘッダシンタックスは、2バイトすなわち16ビットのデータを含み得る。第1のビットは、NALユニットの最初に常に0に設定される「forbidden_zero_bit」である。次の6ビットは、表5に示されるとおり、NALユニットに含まれるローバイトシーケンスペイロード(「RBSP」)データ構造のタイプを指定する「nal_unit_type」である。次の6ビットは、レイヤの識別子(indentifier)を指定する「nuh_layer_id」である。場合によっては、これらの6ビットは代わりに「nuh_reserved_zero_6bits」と指定されてもよい。nuh_reserved_zero_6bitsは、規格の基礎仕様において0に等しくてもよい。スケーラブルビデオ符号化および/またはシンタックス拡張において、nuh_layer_idは、この特定のNALユニットがこれら6ビットの値によって識別されるレイヤに属することを示してもよい。次のシンタックスエレメントは「nuh_temporal_id_plus1」である。nuh_temporal_id_plus1マイナス1は、NALユニットに対する時間識別子を指定し得る。変数時間識別子TemporalIdは、TemporalId=nuh_temporal_id_plus1−1として示されてもよい。時間識別子TemporalIdは、時間サブレイヤを識別するために用いられる。変数HighestTidは、復号される最高時間サブレイヤを識別するものである。
図23は、RADLおよびRASLピクチャタイプを含むシナリオを示す。図23(b)において、同じ値のPicOrderCntValを有するピクチャに対して、もしRASLピクチャが現レイヤに対する直接参照レイヤである下位レイヤに存在し、かつRADLピクチャが現レイヤに生じていれば、RADLピクチャはHEVCドラフト規格に存在する現RPSの制限によって復号可能にならない。SHVCドラフトテキスト1に記載されるインターレイヤ参照ピクチャセットに対する復号プロセスを現在用いているこの場合において、RASLピクチャはインターレイヤ参照ピクチャセット、すなわち拡張レイヤのRADLピクチャのRefPicSetInterLayerに含まれる。しかし、このことによって、RADLピクチャの関連CRAピクチャにおいてランダムアクセスが行なわれるときに、拡張レイヤのRADLピクチャが復号可能でなくなる。図23(a)は、こうした問題が起こらないシナリオを示す。図23(b)に関して、我々は、拡張レイヤからのRADLピクチャのRefPicSetInterLayerにベースレイヤからのRASLピクチャが含まれなくなる結果をもたらす、参照ピクチャセットに対する制限について説明する。
一実施形態において、その制限は以下のとおりに定義される。
現ピクチャがRADLピクチャであるとき、次のいずれかのピクチャはRefPicSetStInterLayerに含まれない。
−RASLピクチャ
−利用不可能な参照ピクチャを生成するための復号プロセスによって生成されたピクチャ。現ピクチャがBLAピクチャであるか、または1に等しいNoRaslOutputFlagを有するCRAピクチャであるとき、利用不可能な参照ピクチャを生成するための復号プロセスは、符号化ピクチャ当り1回呼び出される。このプロセスは主に、RASLピクチャに対するシンタックス制約の仕様に対してのみ規定される。1に等しいNoRaslOutputFlagを有するIRAPピクチャに関連するRASLピクチャの復号プロセスの仕様全体は、こうしたRASLピクチャの許可されたシンタックス内容に対する制約を規定する目的のみのためのものである。復号プロセスの際に、1に等しいNoRaslOutputFlagを有するIRAPピクチャに関連するあらゆるRASLピクチャは無視されてもよい。なぜなら、これらのピクチャは出力に対して指定されておらず、出力に対して指定されるあらゆる他のピクチャの復号プロセスに影響をもたらさないためである。
別の実施形態において、その制限は以下のとおりに定義される。
−現ピクチャがRADLピクチャであるとき、RASLピクチャはRefPicSetInterLayerに含まれない。
付加的な代替的実施形態において、その制限は以下のとおりに定義される。
現ピクチャがRADLピクチャであるとき、次のいずれかのピクチャはRefPicSetStInterLayerに含まれない。
−RASLピクチャ
−利用不可能な参照ピクチャを生成するための復号プロセスによって生成されたピクチャ。
−復号順で関連IRAPピクチャに先行するピクチャ。
図24は、インターレイヤ参照ピクチャセット(RPS)更新モジュール2418を示すブロック図である。インターレイヤ参照ピクチャセット(RPS)更新モジュール2418は、電子デバイス102bのデコーダ112の一部であってもよい。インターレイヤ参照ピクチャセット(RPS)更新モジュール2418は、インターレイヤ参照ピクチャセット(RPS)(RefPicSetInterLayer)を更新するためにデコーダ112によって用いられてもよい。
インターレイヤ参照ピクチャセット(RPS)更新モジュール2418は、インターレイヤピクチャ2434を含んでもよい。1つの構成において、インターレイヤピクチャ2434は、非IRAP(イントラランダムアクセスポイント)ピクチャまたはイントラランダムアクセスポイント(IRAP)ピクチャであってもよい。インターレイヤピクチャ2434は、ビットストリーム110を介して別の電子デバイス102aから受信されたピクチャであってもよい。インターレイヤ参照ピクチャセット(RPS)更新モジュール2418は、参照ピクチャセット(RPS)にインターレイヤピクチャ2434が加えられるかどうかを定めてもよい。
インターレイヤピクチャ2434は、レイヤ識別子(nuh_layer_id)2436、時間識別子(TemporalId)2438、およびピクチャ順序カウント(POC)2453を含んでもよい。もしインターレイヤピクチャ2434に対するレイヤ識別子(nuh_layer_id)2436が現レイヤに対する直接参照レイヤであるレイヤに対応し、かつインターレイヤピクチャ2434のピクチャ順序カウント(POC)2453が現ピクチャ(nuh_layer_id)2459のピクチャ順序カウント(POC)2461に等しければ、(参照ピクチャセット(RPS)120にインターレイヤピクチャ2434を加えるべきかどうかを定めるために)付加的なチェックが行われる。
インターレイヤ参照ピクチャセットに対する復号プロセスを以下の表7に示す。この擬似コードにおいて、もし現ピクチャがRADLピクチャでなければ、現ピクチャに対する直接参照レイヤであり、かつ現ピクチャと同じピクチャ順序カウント値を有する各レイヤからのインターレイヤ参照ピクチャが、現ピクチャのインターレイヤ参照ピクチャセットRefPicSetInterLayerに加えられる。さらに、もし現ピクチャがRADLピクチャであり、かつインターレイヤ参照ピクチャがRASLピクチャではなくて利用不可能な参照ピクチャでもなければ、現ピクチャと同じピクチャ順序カウント値を有するインターレイヤ参照ピクチャが、現ピクチャのインターレイヤ参照ピクチャセットRefPicSetInterLayerに加えられる。
ここでlayer_id_in_nuh[i]は、i番目のレイヤのVCL NALユニットにおけるnuh_layer_idシンタックスエレメントの値を指定する。存在しないとき、layer_id_in_nuh[i]の値はiに等しいものと推測される。変数LayerIdInVps[layer_id_in_nuh[i]]は、iに等しく設定される。
direct_dependency_flag[i][j]が0に等しいことは、インデックスjを有するレイヤがインデックスiを有するレイヤに対する直接参照レイヤでないことを示す。direct_dependency_flag[i][j]が1に等しいことは、インデックスjを有するレイヤがインデックスiを有するレイヤに対する直接参照レイヤであり得ることを示す。0からvps_max_layers_minus1の範囲におけるiおよびjに対してdirect_dependency_flag[i][j]が存在しないとき、その値は0に等しいものと推測される。変数NumDirectRefLayers[i]およびRefLayerId[i][j]は、次のとおりに導出される。
インターレイヤ参照ピクチャセットに対する復号プロセスのさらなる実施形態を、以下の表8および表9に示す。それらの実施形態は、インターレイヤ参照ピクチャセットの復号において表7と同じかまたは類似の結果を達成するが、少し異なる論理を用いて動作するものである。
変数NumPocTotalCurrは、表10に示されるとおりに導出される。
表10
ここでStRpsIdxは、短期RPSのインデックスである。
num_long_term_spsは、アクティブSPSにおいて指定された候補長期参照ピクチャに基づいて導出される、現ピクチャの長期RPSのエントリの数を指定する。num_long_term_spsの値は、両端値を含めて、0からnum_long_term_ref_pics_spsの範囲内となる。存在しないとき、num_long_term_spsの値は0に等しいものと推測される。
num_long_term_picsは、スライスヘッダにおいて直接シグナリングされる現ピクチャの長期RPSのエントリの数を指定する。存在しないとき、num_long_term_picsの値は0に等しいものと推測される。
lt_idx_sps[i]は、アクティブSPSにおいて指定された候補長期参照ピクチャのリストへの、現ピクチャの長期RPSにおけるi番目のエントリのインデックスを指定する。lt_idx_sps[i]を表すために用いられるビット数は、Ceil(Log2(num_long_term_ref_pics_sps))に等しい。存在しないとき、lt_idx_sps[i]の値は0に等しいものと推測される。lt_idx_sps[i]の値は、両端値を含めて、0からnum_long_term_ref_pics_sps−1の範囲内となる。
poc_lsb_lt[i]は、現ピクチャの長期RPSのi番目のエントリのピクチャ順序カウントをMaxPicOrderCntLsbで割った余りの値を指定する。used_by_curr_pic_lt_flag[i]が0に等しいことは、現ピクチャの長期RPSのi番目のエントリが、現ピクチャによる参照のために用いられないことを示す。
変数PocLsbLt[i]およびUsedByCurrPicLt[i]は、次のとおりに導出される。
−もしiがnum_long_term_spsよりも小さければ、PocLsbLt[i]はlt_ref_pic_poc_lsb_sps[lt_idx_sps[i]]に等しく設定され、UsedByCurrPicLt[i]はused_by_curr_pic_lt_sps_flag[lt_idx_sps[i]]に等しく設定される。
−そうでなければ、PocLsbLt[i]はpoc_lsb_lt[i]に等しく設定され、UsedByCurrPicLt[i]はused_by_curr_pic_lt_flag[i]に等しく設定される。
num_negative_picsは、現ピクチャのピクチャ順序カウント値よりも小さいピクチャ順序カウント値を有するstRpsIdx番目の候補短期RPSにおけるエントリの数を指定する。num_negative_picsの値は、両端値を含めて、0からsps_max_dec_pic_buffering_minus1[sps_max_sub_layers_minus1]の範囲内となる。
num_positive_picsは、現ピクチャのピクチャ順序カウント値よりも大きいピクチャ順序カウント値を有するstRpsIdx番目の候補短期RPSにおけるエントリの数を指定する。num_positive_picsの値は、両端値を含めて、0からsps_max_dec_pic_buffering_minus1[sps_max_sub_layers_minus1]−num_negative_picsの範囲内となる。
delta_poc_s0_minus1[i]プラス1は、iが0に等しいときには、現ピクチャと、現ピクチャのピクチャ順序カウント値よりも小さいピクチャ順序カウント値を有するstRpsIdx番目の候補短期RPSにおけるi番目のエントリとのピクチャ順序カウント値の差を指定し、iが0よりも大きいときは、現ピクチャのピクチャ順序カウント値よりも小さいピクチャ順序カウント値を有するstRpsIdx番目の候補短期RPSにおけるi番目のエントリと、(i+1)番目のエントリとのピクチャ順序カウント値の差を指定する。delta_poc_s0_minus1[i]の値は、両端値を含めて、0から215−1の範囲内となる。
used_by_curr_pic_s0_flag[i]が0に等しいことは、現ピクチャのピクチャ順序カウント値よりも小さいピクチャ順序カウント値を有するstRpsIdx番目の候補短期RPSにおけるi番目のエントリが、現ピクチャによる参照のために用いられないことを示す。
delta_poc_s1_minus1[i]プラス1は、iが0に等しいときには、現ピクチャと、現ピクチャのピクチャ順序カウント値よりも大きいピクチャ順序カウント値を有するstRpsIdx番目の候補短期RPSにおけるi番目のエントリとのピクチャ順序カウント値の差を指定し、iが0よりも大きいときは、現ピクチャのピクチャ順序カウント値よりも大きいピクチャ順序カウント値を有する現候補短期RPSにおける(i+1)番目のエントリと、i番目のエントリとのピクチャ順序カウント値の差を指定する。delta_poc_s1_minus1[i]の値は、両端値を含めて、0から215−1の範囲内となる。
used_by_curr_pic_s1_flag[i]が0に等しいことは、現ピクチャのピクチャ順序カウント値よりも大きいピクチャ順序カウント値を有する現候補短期RPSにおけるi番目のエントリが、現ピクチャによる参照のために用いられないことを示す。
inter_ref_pic_set_prediction_flagが0に等しいとき、変数NumNegativePics[stRpsIdx]、NumPositivePics[stRpsIdx]、UsedByCurrPicS0[stRpsIdx][i]、UsedByCurrPicS1[stRpsIdx][i]、DeltaPocS0[stRpsIdx][i]およびDeltaPocS1[stRpsIdx][i]は、次のとおりに導出される。
変数NumDeltaPocs[stRpsIdx]は、次のとおりに導出される。
NumDeltaPocs[stRpsIdx]=NumNegativePics[stRpsIdx]+NumPositivePics[stRpsIdx]
CRAピクチャのNumPocTotalCurr値に対する制限の変更について、以下に説明する。0より大きいnuh_layer_idを有するCRA NALユニットに対するインターレイヤ予測は許可されるので、しかしインター予測は許可されない。インターレイヤ参照ピクチャセットのピクチャの数を含むために、NumPocTotalCurrは表10に記載されるとおりに算出されるので、我々は以下の、CRAピクチャのNumPocTotalCurr値に対する制限の変更を提案する。
変数NumPocTotalCurrは、表10において指定されるとおりに導出される。NumPocTotalCurrの値に対して以下が適用するのは、ビットストリーム適合性の要求である。
−もし現ピクチャがBLAピクチャまたは0に等しいnuh_layer_idを有するCRAピクチャであれば、NumPocTotalCurrの値は0に等しくなる。
−そうではなく、現ピクチャがPもしくはBスライスを含むか、または0よりも大きいnuh_layer_idを有するCRAピクチャであるときは、NumPocTotalCurrの値は0に等しくならない。
変形実施形態において、NumPocTotalCurrの値に対して以下が適用するのは、ビットストリーム適合性の要求である。
−もし現ピクチャがBLAピクチャまたは0に等しいnuh_layer_idを有するCRAピクチャであれば、NumPocTotalCurrの値は0に等しくなる。
−そうではなく、現ピクチャがPまたはBスライスを含むとき、NumPocTotalCurrの値は0に等しくならない。
さらに他の実施形態において、もし現ピクチャが0より大きいnuh_layer_id値を有するCRAピクチャであれば、NumPocTotalCurrは0に等しくても、等しくなくてもよい。
「コンピュータ読取り可能媒体」という用語は、コンピュータまたはプロセッサによるアクセスが可能なあらゆる利用可能な媒体を示す。本明細書において用いられる「コンピュータ読取り可能媒体」という用語は、非一時的かつ有形の、コンピュータおよび/またはプロセッサ読取り可能媒体を示し得る。限定ではなく例として、コンピュータ読取り可能媒体またはプロセッサ読取り可能媒体は、RAM、ROM、EEPROM、CD−ROMもしくはその他の光ディスク記憶装置、磁気ディスク記憶装置もしくはその他の磁気記憶装置、または、命令もしくはデータ構造の形の所望のプログラムコードを保有もしくは保存するために使用でき、かつコンピュータもしくはプロセッサによるアクセスが可能なあらゆるその他の媒体を含んでもよい。本明細書において用いられるディスク(Disk)およびディスク(disc)は、コンパクトディスク(compact disc:CD)、レーザディスク、光ディスク、デジタル多用途ディスク(digital versatile disc:DVD)、フロッピーディスク、およびBlu−ray(登録商標)ディスクを含み、ここでディスク(disks)は通常磁気的にデータを再生するのに対し、ディスク(discs)はレーザによって光学的にデータを再生するものである。
なお、本明細書に記載される方法の1つまたはそれ以上が、ハードウェアにおいて実現されるか、および/またはハードウェアを用いて実行されてもよい。たとえば、本明細書に記載される方法またはアプローチの1つまたはそれ以上が、チップセット、ASIC、大規模集積回路(large−scale integrated circuit:LSI)、もしくは集積回路などにおいて実現されるか、および/またはそうした回路などを用いて具現化されてもよい。
本明細書において開示される方法の各々は、記載される方法を達成するための1つまたはそれ以上のステップまたは動作を含む。この方法ステップおよび/または動作は、請求項の範囲から逸脱することなく、互いに交換されても、および/または組み合わされて単一のステップにされてもよい。言換えると、記載される方法の適切な動作のためにステップまたは動作の特定の順序が必要でない限り、請求項の範囲から逸脱することなく、特定のステップおよび/または動作の順序および/または使用が変更されてもよい。
請求項は、上に示した正確な構成およびコンポーネントに限定されないことが理解されるべきである。請求項の範囲から逸脱することなく、本明細書に記載されるシステム、方法、および装置の配置、動作、および詳細にさまざまな修正、変更および変形がなされてもよい。