【文献】
Benjamin Bross, Woo-Jin Han, Jens-Rainer Ohm, Gary J. Sullivan, Thomas Wiegand,High Efficiency Video Coding (HEVC) text specification draft 9,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 11th Meeting: Shanghai, CN,2012年12月18日,pp.39, 80, 98-102,[JCTVC-K1003_v13]
【文献】
Hendry, Byeong Moon Jeon,AHG9: On RPS derivation and marking process for long-term reference pictures,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 12th Meeting: Geneva, CH,2013年 1月11日,[JCTVC-L0254_r1]
【文献】
Adarsh K. Ramasubramonian, Ye-Kui Wang, Rajan Joshi, Ying Chen,AHG13: Signalling of long-term reference pictures in the slice header,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 10th Meeting: Stockholm, SE,2012年 7月11日,[JCTVC-J0115]
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0009】
本明細書に記載される実施形態は、符号化/復号を用いる任意のビデオコーダ/デコーダ(コーデック)に対応しうるが、例示的実施形態は、単に説明の目的で、H.264/AVCエンコーダおよびH.264/AVCデコーダに関して記載される。多くのビデオ符号化技術は、ブロックベースのハイブリッドビデオ符号化アプローチに基づき、情報源符号化技術は、フレーム間とも考えうるピクチャ間予測、フレーム内とも考えうるピクチャ内予測、および予測残差の変換符号化のハイブリッドである。フレーム間予測は時間的冗長性を利用し、フレーム内および予測残差の変換符号化は空間的冗長性を利用することができる。
【0010】
図1は、電子デバイス102の例示的なエンコーダ104を示したブロック図である。電子デバイス102内に含まれるものとして示された要素の1つ以上は、ハードウェアおよび/またはソフトウェアで実装されうることに注意しなければならない。例えば、電子デバイス102はエンコーダ104を含むが、エンコーダ104は、ハードウェアおよび/またはソフトウェアで実装されればよい。
【0011】
電子デバイス102は、供給器134を含んでもよい。供給器134は、ピクチャまたは画像データ(例えばビデオ)をソース106としてエンコーダ104に供給することができる。供給器134の非限定的な例には、画像センサ、メモリ、通信インタフェース、ネットワークインタフェース、無線受信器、ポート、ビデオフレームコンテンツ、前に符号化されたビデオコンテンツ、符号化されていないビデオコンテンツなどが含まれる。
【0012】
ソース106が、フレーム内予測モジュールおよび再構築バッファ140に供給されうる。ソース106は、動き推定および動き補償モジュール166に、さらに減算モジュール146にも供給されうる。
【0013】
フレーム内予測モジュールおよび再構築バッファ140は、ソース106および再構築データ180に基づいて、イントラモード情報148およびイントラ信号142を発生させうる。動き推定および動き補償モジュール166は、ソース106と参照ピクチャバッファ196の信号198とに基づいて、インターモード情報168およびインター信号144を発生させうる。
【0014】
参照ピクチャバッファ196の信号198は、参照ピクチャバッファ196に格納された1つ以上の参照ピクチャからのデータを含みうる。参照ピクチャバッファ196は、RPSインデックス初期化モジュール108も含みうる。初期化モジュール108は、RPSのバッファリングおよびリスト構築に対応する参照ピクチャを処理しうる。
【0015】
エンコーダ104は、モードにしたがってイントラ信号142とインター信号144との間で選択することができる。イントラ符号化モードにおいてピクチャ内の空間的特徴を利用するために、イントラ信号142を使用することができる。インター符号化モードにおいてピクチャ間の時間的特徴を利用するために、インター信号144を使用することができる。一方、イントラ符号化モードは、イントラ信号142が減算モジュール146に供給され、イントラモード情報158がエントロピー符号化モジュール160に供給されればよい。一方、インター符号化モードは、インター信号144が減算モジュール146に供給され、インターモード情報168がエントロピー符号化モジュール160に供給されればよい。
【0016】
予測残差148を生成するために、減算モジュール146で(モードに応じて)イントラ信号142またはインター信号144のいずれかが、ソース106から減算される。予測残差148は、変換モジュール150に供給される。変換モジュール150は、予測残差148を圧縮して、量子化モジュール154に供給される変換信号152を生成することができる。量子化モジュール154は、変換信号152を量子化して、変換・量子化された係数(TQC;transformed and quantized coefficient)156を生成する。
【0017】
TQC156は、エントロピー符号化モジュール160および逆量子化モジュール170に供給される。逆量子化モジュール170は、TQC156に逆量子化を行って、逆変換モジュール174に供給される逆量子化信号172を生成する。逆変換モジュール174は、逆量子化信号172を伸張して、再構築モジュール178に供給される伸張信号176を生成する。
【0018】
再構築モジュール178は、伸張信号176に基づいて再構築データ180を生成することができる。例えば再構築モジュール178は、(修正された)ピクチャを再構築することができる。再構築データ180は、デブロッキングフィルタ182に、そしてイントラ予測モジュールおよび再構築バッファ140に、供給されればよい。デブロッキングフィルタ182は、再構築データ180に基づいて、フィルタされた信号184を生成しうる。
【0019】
フィルタされた信号184は、サンプル適応オフセット(SAO;sample adaptive offset)モジュール186に供給されればよい。SAOモジュール186は、エントロピー符号化モジュール160に供給されるSAO情報188と、適応ループフィルタ(ALF;adaptive loop filter)192に供給されるSAO信号190とを生成しうる。ALF192は、参照ピクチャバッファ196に供給されるALF信号194を生成する。ALF信号194は、参照ピクチャとして使用することができる1つ以上のピクチャからのデータを含みうる。
【0020】
エントロピー符号化モジュール160は、TQC156を符号化して、ビットストリーム114を生成しうる。また、エントロピー符号化モジュール160は、コンテキスト適応型可変長符号化(CAVLC;Context‐Adaptive Variable Length Coding)またはコンテキスト適応型2値算術符号化(CABAC;Context‐Adaptive Binary Arithmetic Coding)を用いてTQC156を符号化しうる。特に、エントロピー符号化モジュール160は、イントラモード情報158、インターモード情報168およびSAO情報188のうちの1つ以上に基づいてTQC156を符号化しうる。ビットストリーム114は、符号化ピクチャデータを含みうる。エンコーダは、一般にマクロブロックと呼ばれるブロックのシーケンスとしてフレームを符号化することが多い。
【0021】
HEVC等のビデオ圧縮に関わる量子化は、ある範囲の値を1つの値に圧縮することにより達成される、損失を伴う圧縮技術である。量子化パラメータ(QP;quantization parameter)は、再構築されたビデオの品質および圧縮率の両方に基づいて量子化を行うために使用される所定のスケーリングパラメータである。ブロックタイプは、HEVCにおいて所与のブロックの特徴をブロックサイズおよびその色情報に基づいて表すように定義される。QP、解像度情報、およびブロックタイプは、エントロピー符号化の前に決定されればよい。例えば、電子デバイス102(例えばエンコーダ104)がQP、解像度情報、およびブロックタイプを決定し、これらがエントロピー符号化モジュール160に供給されればよい。
【0022】
エントロピー符号化モジュール160は、TQC156のブロックに基づいてブロックサイズを決定してもよい。例えばブロックサイズは、1次元のTQCのブロックに沿ったTQC156の数であればよい。換言すれば、TQCのブロックの中のTQC156の数は、ブロックサイズの2乗に等しければよい。例えば、TQCのブロックの中のTQC156の数の平方根としてブロックサイズが決定されればよい。解像度は、画素幅x画素高さとして定義できる。解像度情報には、ピクチャの幅、ピクチャの高さ、または両方の画素数を含みうる。ブロックサイズは、1次元のTQCの2Dブロックに沿ったTQC156の数として定義できる。
【0023】
一部の構成では、ビットストリーム114は、別の電子デバイスに伝送されてもよい。例えば、ビットストリーム114は、通信インタフェース、ネットワークインタフェース、無線伝送器、ポートなどに供給されればよい。例えば、ビットストリーム114は、LAN、インターネット、携帯電話基地局などを介して別の電子デバイスへ伝送されればよい。ビットストリーム114は、追加的または代替的に電子デバイス102または他の電子デバイスのメモリに格納されてもよい。
【0024】
図2は、電子デバイス202上の例示的なデコーダ212を示したブロック図である。デコーダ212は、電子デバイス202に含まれていてもよい。例えばデコーダ212は、HEVCデコーダであればよい。デコーダ212および/またはデコーダ212に含まれるものとして図示された要素の1つ以上は、ハードウェアおよび/またはソフトウェアで実装されてもよい。デコーダ212は、復号のためにビットストリーム214(例えばビットストリーム214に含まれる1つ以上の符号化されたピクチャ)を受信すればよい。一部の構成では、受信ビットストリーム214は、受信スライスヘッダ、受信PPS、受信バッファ記述情報等の、受信オーバーヘッド情報を含めばよい。ビットストリーム214に含まれる符号化されたピクチャは、1つ以上の符号化された参照ピクチャおよび/または1つ以上の他の符号化されたピクチャを含めばよい。
【0025】
(ビットストリーム214に含まれる1つ以上の符号化されたピクチャの中の)受信シンボルは、エントロピー復号モジュール268によってエントロピー復号され、これにより動き情報信号270ならびに量子化、スケーリングおよび/または変換された係数272が生成される。
【0026】
動き情報信号270は、動き補償モジュール274で、フレームメモリ278からの参照フレーム信号298の一部分と組み合わされ、それによってフレーム間予測信号282を生成しうる。量子化、デスケーリングおよび/または変換された係数272は、逆モジュール262によって逆量子化、スケーリングおよび逆変換され、それによって復号された残差信号284を生成しうる。復号された残差信号284は、結合信号286を生成するために予測信号292に加算されうる。予測信号292は、フレーム間予測信号282か、またはフレーム内予測モジュール288によって生成されたフレーム内予測信号290のいずれかから選択された信号であればよい。いくつかの構成において、この信号選択は、ビットストリーム214に基づいてもよい(例えば、ビットストリーム214によって制御される)。
【0027】
フレーム内予測信号290は、(例えば、現フレームにおいて)前に復号された結合信号292からの情報から予測できる。結合信号292は、さらにデブロッキングフィルタ294によりフィルタされればよい。結果として生じるフィルタされた信号296は、フレームメモリ278に書き込まれればよい。結果として生じるフィルタされた信号296は、復号されたピクチャを含みうる。
【0028】
フレームメモリ778は、本明細書に記載されるDPBを含みうる。DPBは、短期または長期参照フレームとして保持されうる1つ以上の復号されたピクチャを含みうる。フレームメモリ278は、復号されたピクチャに対応するオーバーヘッド情報も含みうる。例えばフレームメモリ278は、スライスヘッダ、PPS情報、サイクルパラメータ、バッファ記述情報などを含めばよい。これらの情報の1つ以上は、エンコーダ(例えばエンコーダ104)からシグナリングされてもよい。フレームメモリ278は、復号されたピクチャ718を供給しうる。
【0029】
複数のマクロブロックを含む入力ピクチャは、1つまたはいくつかのスライスに分割されうる。エンコーダおよびデコーダで使用される参照ピクチャが同じであり、デブロッキングフィルタリングがスライス境界を越える情報を使用しないならば、スライスが表すピクチャのエリア内のサンプルの値は、他のスライスからのデータを使用せずに適切に復号できる。したがって、あるスライスのエントロピー復号およびマクロブロック再構築は、他のスライスに依存しない。特に、各スライスの開始時にエントロピー符号化状態がリセットされればよい。他のスライスのデータは、エントロピー復号および再構築の両方のための近傍利用可能性を定義する際に利用不可能としてマークされればよい。スライスは、並列にエントロピー復号および再構築されればよい。イントラ予測および動きベクトル予測は、スライスの境界を越えられないのが好ましい。対して、デブロッキングフィルタリングは、スライス境界を越える情報を使用してもよい。
【0030】
図3は、水平方向に11個のマクロブロック、垂直方向に9個のマクロブロックを含む、例示的ビデオピクチャ90を示す(9個の例示的なマクロブロックが91〜99と標識されている)。
図3は、「スライス#0」と示された第1のスライス89、「スライス#1」と示された第2のスライス88、および「スライス#2」と示された第3のスライス87の、3つの例示的なスライスを示す。H.264/AVCデコーダは、3つのスライス87、88、89を並列に復号および再構築しうる。各スライスが、走査線順に逐次伝送されてもよい。各スライスの復号/再構築処理の始めに、エントロピー復号268が初期化またはリセットされ、他のスライスのマクロブロックが、エントロピー復号およびマクロブロック再構築のいずれにも利用不可能としてマークされる。したがって、「スライス#1」の中のあるマクロブロック、例えば93と標識されたマクロブロックについて、「スライス#0」の中のマクロブロック(例えば91および92と標識されたマクロブロック)をエントロピー復号または再構築のために使用することはできない。一方、「スライス#1」の中にあるマクロブロック、例えば95と標識されたマクロブロックについて、「スライス#1」の中の他のマクロブロック(例えば93および94と標識されたマクロブロック)をエントロピー復号または再構築のために使用することはできる。したがって、エントロピー復号およびマクロブロック再構築は、スライス内で順次進行する。スライスがフレキシブルマクロブロック順序付け(FMO;flexible macroblock ordering)を用いて定義されない限り、スライス内のマクロブロックは、ラスタ走査順に処理される。
【0031】
フレキシブルマクロブロック順序付けは、スライスグループを定義して、1つのピクチャがどのようにスライスに分割されるかを変更する。スライスグループ内のマクロブロックは、マクロブロック対スライスグループマップにより定義され、マクロブロック対スライスグループマップは、ピクチャパラメータセットのコンテンツおよびスライスヘッダ中の追加情報によってシグナリングされる。マクロブロック対スライスグループマップは、ピクチャ内の各マクロブロックに対するスライスグループ識別番号からなる。スライスグループ識別番号は、関連するマクロブロックがどのスライスグループに属するかを指定する。各スライスグループは、1つ以上のスライスに分割することができ、スライスは、特定のスライスグループのマクロブロックのセット内でラスタ走査順に処理される同じスライスグループ内の一連のマクロブロックである。エントロピー復号およびマクロブロック再構築は、スライスグループ内で順次進行する。
【0032】
図4は、「スライスグループ#0」と示された第1のスライスグループ86、「スライスグループ#1」と示された第2のスライスグループ85、および「スライスグループ#2」と示された第3のスライスグループ84の3つのスライスグループへの、例示的なマクロブロックの割り当てを示す。これらのスライスグループ84、85、86は、ピクチャ90の中の2つの前景領域および1つの背景領域にそれぞれ関連付けられる。
【0033】
ピクチャは、1つ以上のスライスに分割されてもよく、エンコーダおよびデコーダで使用される参照ピクチャが同一であるならば、スライスは、当該スライスが表すピクチャのエリア内のサンプルの値を、他のスライスからのデータを用いずに正しく再構築できるという点で、自己完結的である。スライス内の全ての再構築されたマクロブロックは、再構築のための近傍の定義において利用可能である。
【0034】
スライスは、1つより多くのエントロピースライスに分割されてもよく、エントロピースライスは、当該エントロピースライスが表すピクチャのエリアを、他のエントロピースライスからのデータを用いずに正しくエントロピー復号できるという点で、自己完結的である。各エントロピースライスの復号開始時に、エントロピー復号268がリセットされればよい。他のエントロピースライス中のデータは、エントロピー復号のための近傍利用可能性を定義する際に利用不可能としてマークされうる。
【0035】
ピクチャを復号するために構成されたデバイスは、現ピクチャを含む一連のピクチャを含むビットストリームを取得または別途受信する。デバイスは、現ピクチャまたはビットストリームにおいてピクチャがシグナリングされる順序で現ピクチャに後続するピクチャの復号に使用できる他のフレームの識別のために使用できる、参照ピクチャセット(RPS)パラメータをさらに取得する。
【0036】
RPSは、現フレームに関連する参照ピクチャのセットの識別を提供する。RPSは、現ピクチャのインター予測に使用できる、復号順で現ピクチャより前の参照ピクチャを識別し、および/または現ピクチャのインター予測に使用できる、復号順で現ピクチャの後の参照ピクチャを識別しうる。例えば、システムがフレーム1、3、5を受信し、5が3を参照に使用し、エンコーダがフレーム1をフレーム7の予測に使用する場合、5のRPSは、フレーム1がフレーム5の参照に使用されなくても、フレーム3および1の両方をフレームメモリ278に維持するようシグナリングしうる。一実施形態では、5のRPSは、[−2 −4]であればよい。加えて、フレームメモリ278は、表示ピクチャバッファ、または同等にDPBと呼称されてもよい。
【0037】
RPSは、後の使用のために復号ピクチャバッファ(DPB;decoded picture buffer)に少なくとも限られた持続時間にわたり保持されるべき1つ以上の参照ピクチャを記述する。このRPSの識別は、各ピクチャのスライスヘッダに、ピクチャとともに、および/またはピクチャ群とともに、含まれればよい。加えて、RPSのリストが、ピクチャパラメータセット(PPS;picture parameter set)で送信されてもよい。そして、スライスヘッダは、そのスライスでの使用をシグナリングするために、PPSで送信されるRPSの1つを指せばよい。例えば、ピクチャ群のRPSが、ピクチャパラメータセット(PPS)においてシグナリングされればよい。現フレームのRPSの一部ではない、DPBの任意のピクチャは、「参照のために用いられない」ものとしてマークされればよい。
【0038】
DPBは、デコーダで再構築された(例えば復号された)ピクチャを格納するために使用されうる。これらの格納されたピクチャはその後、例えばインター予測技術において使用することができる。また、DPB内のピクチャは、ピクチャオーダーカウント(POC)に関連付けられればよい。POCは、各符号化ピクチャに関連付けられ、出力順におけるピクチャ位置の増加に伴って増加する値を有する、変数とすることができる。換言すると、POCは、ピクチャを表示のために正しい順番で送るためにデコーダにより使用されうる。POCは、参照ピクチャリストの構築中の参照ピクチャの識別および復号された参照ピクチャの識別にも使用されうる。さらに、POCは、エンコーダからデコーダへの伝送中に失われたピクチャの識別に使用されうる。
【0039】
図5を参照すると、エンコーダからデコーダに供給されるフレームのセット300の一例が示されている。各フレームは、関連するPOC310を有していればよい。図のように、POCは、負の数から大きな正数までインクリメントしてもよい。一部の実施形態では、POCは、ゼロからより大きな正数までインクリメントするだけでもよい。POCは、典型的にはフレーム毎に1ずつインクリメントされるが、1つ以上のPOCがスキップされ、または他の方法で省略される場合もある。例えば、エンコーダ中のフレームのセットのPOCは、0、1、2、3、4、5などとすることができる。例えば、エンコーダ中の同じフレームのセットまたは別のフレームのセットのPOCが、0、1、2、4、5などであり、POC3がスキップされ、または他の方法で省略されてもよい。
【0040】
POCが十分に大きくなるのに伴い、POCを用いて各フレームを識別するために多数のビットが必要となるであろう。エンコーダは、各フレームを識別するために、4ビットなど、POCの最下位ビット(LSB)の選択された数を使用することにより、特定のPOCを識別するために使用されるビット数を削減することができる。現フレームを復号するために用いられる参照フレームは、現フレームの時間的に近くに位置することが多いため、この識別技術は適切であり、システムの計算複雑度の低減およびビデオのビットレートの全体的削減がもたらされる。ピクチャを識別するために使用するLSBの数は、ビットストリームにおいてデコーダにシグナリングされてもよい。
【0041】
図のように、POCのLSBの選択された数が4の場合、LSBが4ビットであり、LSBインデックスは16値(2^4)毎に繰り返す。したがって、フレーム0は0の値を有するLSBを有し、フレーム1は1の値を有するLSBを有し、・・・、フレーム14は14の値を有するLSBを有し、フレーム15は15の値を有するLSBを有する。しかし、フレーム16は再び0の値を有するLSBを有し、フレーム17は再び1の値を有するLSBを有し、フレーム20は4の値を有するLSBを有する。LSB識別子(一般にPOCのLSB、または同等にPOC LSBとも呼称される)は、LSB=POC%16の特徴を有していればよく、%は、16(2^最下位ビットの数、ここでは4)で割った後の余りである。同様に、POCを識別するためのLSBの選択された数がNビットである場合、LSB識別子は、LSB=POC%(2^N)の特徴を有していればよく、2^Nは、2のN乗を示す。フレームを識別するためにビットストリームにPOCを含めるより、エンコーダがデコーダへのビットストリームにおいてLSBインデックス(一般にPOCのLSB、または同等にPOC LSBとも呼称される)を供給するのが好ましい。
【0042】
現フレームまたは現フレームの後のフレームのインター予測に用いられる参照フレームは、相対(例えばデルタ)参照(例えばdeltaPOCおよびcurrentPOCを使用して)または絶対参照(例えばPOCを使用して)のいずれかを用いてRPSにより識別できる。例えば、POC5 310により識別され、LSB5 320としてビットストリームでデコーダにシグナリングされるフレームは、[−5,−2,−1]の関連するRPS330を有しうる。RPS値の意味は後述する。
【0043】
図5の一部を示した
図6を参照すると、[−5,−2,−1]のRPSは、5つ前のフレーム320、2つ前のフレーム321、および1つ前のフレーム322を含むフレームを指す。このRPSはさらに、
図6に示すように、それぞれ0、3、および4のPOC値を指す。RPSは、現フレームのPOC値と、前のフレームのPOC値との間の差を指すのが典型的である。例えば、5のPOC値を有する現フレームについての[−5,−2,−1]のRPSは、5−5=0;5−2=3;および5−1=4のPOC値を有するフレームを指す。本明細書の例には示していないが、RPSは、将来のフレームも含むことができることに注意されたい。これらの将来のフレームは、RPSにおいて正のデルタPCO値を用いて示されることとなる。
【0044】
1つ以上のPOC値がスキップされ、または別途ビットストリームの一部で省略される場合など、POC値が連続していない場合、
図7に示されるように、現フレームのPOC値と前のフレームのPOC値との間の差は、前のフレームと現フレームとの間に出力されるフレームの数と異なりうる。RPSは、フレームとともに供給される、またはフレームのセットとともに供給されるなど、任意の適切な様式でビットストリームにおいてシグナリングされればよい。
【0045】
図8を参照すると、参照フレームをシグナリングするための別の技術は、一般に長期ピクチャと呼ばれる絶対参照をフレームに関連するRPSにおいて用いることである。参照フレームが絶対参照を用いてシグナリングされるか相対参照を用いてシグナリングされるかに応じて、動きベクトル予測技術等の復号処理が異なりうる。絶対参照(便宜上LTと呼ぶ)は、前のフレームまたは後続フレーム等の参照フレームに関連する特定のLSBカウント値を指す。例えば、LT=3(LT3)の絶対参照は、POC LSB値が3の参照フレームを指す。したがって、[LT3,−5]のRPSは、POC LSB値が3の参照フレーム、およびPOCが現フレームのPOCマイナス5に等しい参照フレームを指す。
図8では、このRPSは、POCが3に等しい参照フレーム444、およびPOCが0に等しい参照フレーム320に対応する。典型的には、LT3は、POC LSB値が3に等しい、現フレームより前の最初のフレームを指す。一実施形態では、LT3は、POC LSB値が3である、出力順で現フレームより前の最初のフレームを指す。第二の実施形態では、LT3は、POC LSB値が3である、伝送順で現フレームより前の最初のフレームを指す。このようなシステムは、多くのビットストリームに適するが、LSBカウント値が3の直前のフレームとは異なる、LSBカウント値が3のフレームを選択するために十分に強力ではない。
【0046】
図9を参照すると、例えばエンコーダがフレーム31(POC=31)を符号化しており、システムが、POC LSB=0(LT0)の長期ピクチャの使用をシグナリングする場合、フレーム16(POC=16)がLSB=0である1つ前のフレームであることから、このシグナリングはフレーム16(POC=16)を指す(A)。しかし、エンコーダが、同様に0のLSBカウント値を持つ長期ピクチャフレーム0をシグナリングしたかったとしても、このように1つ前のフレームを参照するスキームでは達成できない。この限界を克服するための一つの技術は、長期フレームLSBまたはPOC LSBをシグナリングするために使用される最下位ビットの数を増加させることである。このような最下位ビット数の増加は可能であるが、その結果、相当の追加ビットがビットストリームに追加される。
【0047】
ビットストリームに追加される追加ビットがより少なくなる、より好適な技術は、対応するPOC LSB値を持つ1つ前のフレームとは異なる長期ピクチャをシグナリングすることである。例えば、システムは、[LT0|2]として絶対参照を有する現フレームのRPSを指示しうる。ここで0は、POC LSBカウント値を指し、2は、POC LSBカウント値が0に等しい前のフレームのうちで使用すべきフレームを指し、ここでは2つ前の0のPOC LSB値(例えば
図9のフレーム0)を指す。2つ目の参照が含まれない場合、システムは、直前のPOC LSB=0[LT0]のフレーム(例えば
図9のフレーム16)にデフォルトすればよい。
【0048】
多くの場合、絶対参照を用いて対応するPOC LSB値を持つ最初の直前のフレームではないフレームをシグナリングする要求の発生頻度は比較的稀であろう。絶対参照を用いて対応するPOC LSB値を持つ最初の直前のフレームとは異なるフレームをシグナリングする能力を可能にしながら、使用すべきフレームを示す全体のビットレートをさらに削減するために、システムは、重複技術を使用することができる。例えば、RPSが[LT0,LT0|3]のように構築されればよい。同じRPS信号内のLT0の重複は、POC LSB値が0の異なるフレーム、ここでは3つ前に生じる0のPOC LSB値を使用するようデコーダにシグナリングする。一般に、特定のPOC LSB値が特定のPOC LSB値のサイクルに含まれない可能性を除けば、所望のPOC LSB値は、指示された前のフレームの発生に対応する。
【0049】
図10を参照すると、重複技術は、以下のように示すことができる。RPSは、POC LSB値を有する長期ピクチャの信号を含む(400)(例えば[LT3])。同じRPSは、同じPOC LSB値を有する長期ピクチャの別の信号を含む(410)(例えば[LT3,LT3])。同じRPSは、所望のフレームの位置を示す、同じLSBカウント値(410)を有する2番目の長期ピクチャの別の信号を含む(420)[LT3,LT3|2]。
【0050】
所望のフレームの位置のシグナリングは、任意の適切な様式で行われればよい。例えば
図11を参照すると、所望のフレームの位置は、現フレームに対していくつか前のPOC LSB値のサイクル、例えば3つ前のサイクル等であればよい。例えば
図12を参照すると、位置は、現フレームからオフセットしたフレーム数の絶対値に基づいてもよい。例えば
図13を参照すると、位置は、所望のPOC LSB値を持つ最初の直前のフレームに対して数サイクル前のPOC LSB値に基づいてもよい。例えば
図14を参照すると、位置は、所望のPOC LSB値を持つ最初の直前のフレームに対してオフセットしたフレーム数の絶対値に基づいてもよい。
【0051】
そのような技術の一つの実装例は、以下のシンタックスを使用しうる。
【表1】
【0052】
1に等しいfirst_slice_segment_in_pic_flagは、スライスセグメントが復号順でピクチャの最初のスライスセグメントであることを指定する。0に等しいfirst_slice_segment_in_pic_flagは、スライスセグメントが復号順でピクチャの最初のスライスセグメントではないことを指定する。
【0053】
no_output_of_prior_pics_flagは、復号ピクチャバッファ内の前に復号されたピクチャが、IDRまたはBLAピクチャの復号後にいかに処理されるかを指定する。現ピクチャがCRAピクチャであるとき、または現ピクチャがビットストリームの最初のピクチャであるIDRまたはBLAピクチャであるときには、no_output_of_prior_pics_flagの値は、復号プロセスに影響を与えない。現ピクチャがビットストリームの最初のピクチャではないIDRまたはBLAピクチャであり、アクティブシーケンスパラメータセットから導出されるpic_width_in_luma_samplesもしくはpic_height_in_luma_samplesまたはsps_max_dec_pic_buffering[HighestTid]の値が、先行するピクチャに関してアクティブなシーケンスパラメータセットから導出されるpic_width_in_luma_samplesもしくはpic_height_in_luma_samplesまたはsps_max_dec_pic_buffering[HighestTid]の値と異なるときには、no_output_of_prior_pics_flagの実際値に関わらず、1に等しいno_output_of_prior_pics_flagがデコーダによって推定(されるべきではないが)される。ここで、HighestTidは、最大時間識別子値を指す。
【0054】
slice_pic_parameter_set_idは、使用中のピクチャパラメータセットのpps_pic_parameter_setの値を指定する。slice_pic_parameter_set_idの値は、両端値を含めて、0から63までの範囲内にあるものとする。
【0055】
1に等しいdependent_slice_segment_flagは、存在しない各スライスセグメントヘッダのシンタックス要素の値が、スライスヘッダ中の対応するスライスセグメントヘッダのシンタックス要素の値に等しいと推定されることを指定する。dependent_slice_segment_flagが存在しない場合、dependent_slice_segment_flagの値は0に等しいと推定される。
【0056】
変数SliceAddrRSは、次のように導出される。dependent_slice_segment_flagが0に等しければ、SliceAddrRSは、slice_segment_addressに等しく設定される。そうでない場合は、SliceAddrRSは、符号化ツリーブロックアドレスがctbAddrTStoRS[ctbAddrRStoTS[slice_segment_address]−1]である符号化ツリーブロックを含む先行スライスセグメントのSliceAddrRSに等しく設定される。
【0057】
slice_segment_addressは、ピクチャの符号化ツリーブロックのラスタスキャンにおける、スライスセグメントの最初の符号化ツリーブロックのアドレスを指定する。slice_segment_addressシンタックス要素の長さは、Ceil(Log2(PicSizeInCtbsY))ビットである。slice_segment_addressの値は、両端値を含めて、1からPicSizeInCtbsY−1までの範囲内にあるものとし、slice_segment_addressの値は、同じ符号化ピクチャの他のいずれの符号化スライスセグメントのNALユニットのslice_segment_addressの値とも等しくないものとする。slice_segment_addressが存在しないとき、slice_segment_addressは0に等しいと推定される。
【0058】
変数CtbAddrInRSは、ピクチャの符号化ツリーブロックラスタスキャンにおける符号化ツリーブロックアドレスを指定し、slice_segment_addressに等しく設定される。変数CtbAddrInTSは、タイルスキャンにおける符号化ツリーブロックアドレスを指定し、CtbAddrRStoTS[CtbAddrInRS]に等しく設定される。変数CuQpDeltaは、cu_qp_delta_absを含む符号化ユニットについての輝度信号量子化パラメータとその予測値との間の差分を指定し、0に等しく設定される。
【0059】
slice_reserved_undetermined_flag[i]は、将来のITU‐T|ISO/IECによる規格のためにリザーブされたセマンティクスおよび値を有する。デコーダは、slice_reserved_undetermined_flag[i]の存在および値を無視するものとする。
【0060】
slice_typeは、以下のテーブルにしたがってスライスの符号化タイプを指定する。
【0062】
nal_unit_typeが、両端値を含めて16から23までの範囲内の値を有するとき(RAPピクチャ)、slice_typeは2に等しいものとする。
【0063】
sps_max_dec_pic_buffering[TemporalId]が0に等しいとき、slice_typeは2に等しいものとする。
【0064】
pic_output_flagは、復号ピクチャの出力および削除プロセスに影響する。pic_output_flagが存在しないとき、pic_output_flagは1に等しいものと推定される。
【0065】
colour_plane_idは、separate_colour_plane_flagが1に等しいときの、現スライスRBSPに関連する色平面を指定する。colour_plane_idの値は、両端値を含めて0から2までの範囲内にあるものとする。0、1、および2に等しいcolour_plane_idはそれぞれ、Y、CbおよびCr平面に対応する。
【0066】
pic_order_cnt_lsbは、現ピクチャについてのピクチャオーダーカウントをMaxPicOrderCntLsbで割った余りを指定する。pic_order_cnt_lsbシンタックス要素の長さは、log2_max_pic_order_cnt_lsb_minus4+4ビットである。pic_order_cnt_lsbの値は、両端値を含めて、0からMaxPicOrderCntLsb−1までの範囲内にあるものとする。pic_order_cnt_lsbが存在しないとき、ほとんどの場合pic_order_cnt_lsbは0に等しいものと推定される。
【0067】
1に等しいshort_term_ref_pic_set_sps_flagは、現ピクチャの短期参照ピクチャセットが、アクティブシーケンスパラメータセット内のシンタックス要素を使用して作成されることを指定する。0に等しいshort_term_ref_pic_set_sps_flagは、現ピクチャの短期参照ピクチャセットが、スライスヘッダ内のshort_term_ref_pic_set()シンタックス構造のシンタックス要素を使用して作成されることを指定する。
【0068】
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が存在しない場合、short_term_ref_pic_set_idxの値は0に等しいものと推定される。short_term_ref_pic_set_idxの値は、両端値を含めて、0からnum_short_term_ref_pic_sets−1までの範囲内にあるものとする。
【0069】
変数StRpsIdxは、以下のように導出される:short_term_ref_pic_set_sps_flagが1に等しい場合、StRpsIdxは、short_term_ref_pic_set_idxに等しく設定される。そうでない場合は、StRpsIdxは、num_short_term_ref_pic_setsに等しく設定される。
【0070】
num_long_term_spsは、現ピクチャの長期参照ピクチャセットに含まれる、アクティブシーケンスパラメータセットにおいて指定される候補長期参照ピクチャの数を指定する。num_long_term_spsの値は、両端値を含めて、0からMin(num_long_term_ref_pics_sps,sps_max_dec_pic_buffering[sps_max_sub_layers_minus1]−NumNegativePics[StRpsIdx]−NumPositivePics[StRpsIdx])までの範囲内にあるものとする。num_long_term_spsが存在しない場合、num_long_term_spsの値は0に等しいものと推定される。
【0071】
num_long_term_picsは、現ピクチャの長期参照ピクチャセットに含まれる、スライスヘッダにおいて指定される長期参照ピクチャの数を指定する。num_long_term_picsの値は、両端値を含めて、0からsps_max_dec_pic_buffering[sps_max_sub_layers_minus1]−NumNegativePics[StRpsIdx]−NumPositivePics[StRpsIdx]−num_long_term_spsまでの範囲内にあるものとする。存在しない場合、num_long_term_picsの値は0に等しいものと推定される。
【0072】
lt_idx_sps[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までの範囲内にあるものとする。
【0073】
poc_lsb_lt[i]は、現ピクチャの長期参照ピクチャセットに含まれるi番目の長期参照ピクチャのピクチャオーダーカウントをMaxPicOrderCntLsbで割った余りの値を指定する。poc_lsb_lt[i]シンタックス要素の長さは、log2_max_pic_order_cnt_lsb_minus4+4ビットである。
【0074】
0に等しいused_by_curr_pic_lt_flag[i]は、現ピクチャの長期参照ピクチャセットに含まれるi番目の長期参照ピクチャが、現ピクチャによる参照のために用いられないことを指定する。
【0075】
変数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]に等しく設定される。
【0076】
1に等しいdelta_poc_msb_present_flag[i]は、delta_poc_msb_cycle_lt[i]が存在することを指定する。0に等しいdelta_poc_msb_present_flag[i]は、delta_poc_msb_cycle_lt[i]が存在しないことを指定する。復号ピクチャバッファにピクチャオーダーカウントをMaxPicOrderCntLsbで割った余りがPocLsbLt[i]に等しい参照ピクチャが1つより多くあるとき、delta_poc_msb_present_flag[i]は1に等しいものとする。
【0077】
delta_poc_msb_cycle_lt[i]は、現ピクチャの長期参照ピクチャセットに含まれるi番目の長期参照ピクチャのピクチャオーダーカウント値の最上位ビットの値を決定するために用いられる。delta_poc_msb_cycle_lt[i]が存在しないとき、delta_poc_msb_cycle_lt[i]は0に等しいものと推定される。
【0078】
変数DeltaPocMSBCycleLt[i]は、以下のように導出される:
【数1】
【0079】
長期参照ピクチャセットに関して、復号プロセスが以下のように行われうる:
【0080】
このプロセスは、ピクチャ毎に1回、スライスヘッダの復号の後であるが、任意の符号化ユニットの復号より前およびスライスの参照ピクチャリスト構築のための復号プロセスより前に、呼び出される。このプロセスの結果、DPBの1つ以上の参照ピクチャが、「参照のために用いられない」または「長期参照のために用いられる」ものとしてマークされうる。
【0081】
参照ピクチャセットは、現在および将来の符号化ピクチャの復号プロセスで使用される参照ピクチャの絶対記述であることに注意されたい。参照ピクチャセットシグナリングは、参照ピクチャセットに含まれる全ての参照ピクチャが明示的にリストされるという意味で、明示的である。
【0082】
ピクチャは、「参照のために用いられない」、「短期参照のために用いられる」、または「長期参照のために用いられる」ものとしてマークされうるが、これら3つの中の1つとしてのみマークされる。ピクチャにこれらのマーキングのうちの1つを割り当てることにより、これらのマーキングのうちの別のマーキングが、適用可能な場合に黙示的に削除される。ピクチャが「参照のために用いられる」ものとしてマークされていると言うときには、「短期参照のために用いられる」または「長期参照のために用いられる」ものとしてマークされたピクチャ(両方ではない)を集合的に指す。
【0083】
現ピクチャがビットストリームの最初のピクチャであるとき、DPBは空のピクチャのセットに初期化される。
【0084】
現ピクチャがIDRピクチャまたはBLAピクチャであるとき、現在DPB内にある全ての参照ピクチャ(もしあれば)が、「参照のために用いられない」ものとしてマークされる。
【0085】
短期参照ピクチャは、そのPicOrderCntVal値により識別される。長期参照ピクチャは、そのPicOrderCntVal値またはpic_order_cnt_lsb値により識別される。
【0086】
参照ピクチャセットを導出するために、ピクチャオーダーカウント値の5つのリストが構築される;NumPocStCurrBefore、NumPocStCurrAfter、NumPocStFoll、NumPocLtCurr、およびNumPocLtFollの要素数をそれぞれ有する、PocStCurrBefore、PocStCurrAfter、PocStFoll、PocLtCurrおよびPocLtFollである。
【0087】
現ピクチャがIDRピクチャである場合、PocStCurrBefore、PocStCurrAfter、PocStFoll、PocLtCurr、およびPocLtFollは全て空に設定され、NumPocStCurrBefore、NumPocStCurrAfter、NumPocStFoll、NumPocLtCurr、およびNumPocLtFollは全て0に設定される。
【0088】
そうでない場合は、ピクチャオーダーカウント値の5つのリストおよびエントリ数の導出に以下が適用される。
【数2】
ここでPicOrderCntValは、現ピクチャのピクチャオーダーカウントである。
【0089】
代替的実施形態においては、delta_poc_msb_present_flag[i]につき以下のセマンティクスを定義することができる。
【0090】
1に等しいdelta_poc_msb_present_flag[i]は、delta_poc_msb_cycle_lt[i]が存在することを指定する。0に等しいdelta_poc_msb_present_flag[i]は、delta_poc_msb_cycle_lt[i]が存在しないことを指定する。復号ピクチャバッファにピクチャオーダーカウントをMaxPicOrderCntLsbで割った余りがPocLsbLt[i]に等しい参照ピクチャが1つより多くあるとき、delta_poc_msb_present_flag[i]は1に等しいものとする。上述の条件に基づいて現ピクチャにつきdelta_poc_msb_present_flag[i]が1に等しく設定されると、復号順でそれ以降のピクチャから、0のTemporalId値を有し、TRAIL_R、TSA_R、STSA_Rのうちの1つであるNALユニットタイプを有する復号順で最初のピクチャまでを含む、全てのピクチャにつき、delta_poc_msb_present_flag[i]が1に設定されるものとする。
【0091】
さらに別の実施形態においては、delta_poc_msb_present_flag[i]につき以下のセマンティクスを定義することができる。
【0092】
1に等しいdelta_poc_msb_present_flag[i]は、delta_poc_msb_cycle_lt[i]が存在することを指定する。0に等しいdelta_poc_msb_present_flag[i]は、delta_poc_msb_cycle_lt[i]が存在しないことを指定する。復号ピクチャバッファにピクチャオーダーカウントをMaxPicOrderCntLsbで割った余りがPocLsbLt[i]に等しい参照ピクチャが1つより多くあるとき、delta_poc_msb_present_flag[i]は1に等しいものとする。上述の条件に基づいて現ピクチャにつきdelta_poc_msb_present_flag[i]が1に等しく設定されると、復号順でそれ以降のピクチャから、0のTemporalId値を有し、TRAIL_Rのうちの1つであるNALユニットタイプを有する復号順で最初のピクチャまでを含む全てのピクチャにつき、delta_poc_msb_present_flag[i]が1に設定されるものとする。
【0093】
さらなる代替的実施形態においては、delta_poc_msb_present_flag[i]につき以下のセマンティクスを定義することができる。
【0094】
1に等しいdelta_poc_msb_present_flag[i]は、delta_poc_msb_cycle_lt[i]が存在することを指定する。0に等しいdelta_poc_msb_present_flag[i]は、delta_poc_msb_cycle_lt[i]が存在しないことを指定する。復号ピクチャバッファにピクチャオーダーカウントをMaxPicOrderCntLsbで割った余りがPocLsbLt[i]に等しい参照ピクチャが1つより多くあるとき、delta_poc_msb_present_flag[i]は1に等しいものとする。上述の条件に基づいて現ピクチャにつきdelta_poc_msb_present_flag[i]が1に等しく設定されると、復号順でそれ以降のピクチャから、0のTemporalId値を有し、TRAIL_R、TSA_R、STSA_R、RADL_R、RASL_Rのうちの1つであるNALユニットタイプを有する復号順で最初のピクチャまでを含む全てのピクチャにつき、delta_poc_msb_present_flag[i]が1に設定されるものとする。
【0095】
さらなる代替的実施形態においては、delta_poc_msb_present_flag[i]につき以下のセマンティクスを定義することができる。
【0096】
1に等しいdelta_poc_msb_present_flag[i]は、delta_poc_msb_cycle_lt[i]が存在することを指定する。0に等しいdelta_poc_msb_present_flag[i]は、delta_poc_msb_cycle_lt[i]が存在しないことを指定する。復号ピクチャバッファにピクチャオーダーカウントをMaxPicOrderCntLsbで割った余りがPocLsbLt[i]に等しい参照ピクチャが1つより多くあるとき、delta_poc_msb_present_flag[i]は1に等しいものとする。上述の条件に基づいて現ピクチャにつきdelta_poc_msb_present_flag[i]が1に等しく設定されると、復号順でそれ以降のピクチャから、0のTemporalId値を有する復号順で最初のピクチャまでを含む全てのピクチャにつき、delta_poc_msb_present_flag[i]が1に設定されるものとする。
【0097】
さらなる代替的実施形態においては、delta_poc_msb_present_flag[i]につき以下のセマンティクスを定義することができる。
【0098】
1に等しいdelta_poc_msb_present_flag[i]は、delta_poc_msb_cycle_lt[i]が存在することを指定する。0に等しいdelta_poc_msb_present_flag[i]は、delta_poc_msb_cycle_lt[i]が存在しないことを指定する。復号ピクチャバッファにピクチャオーダーカウントをMaxPicOrderCntLsbで割った余りがPocLsbLt[i]に等しい参照ピクチャが1つより多くあるとき、delta_poc_msb_present_flag[i]は1に等しいものとする。上述の条件に基づいて現ピクチャにつきdelta_poc_msb_present_flag[i]が1に等しく設定されると、0より大きいTemporalId値を有するかまたはTRAIL_N、TSA_N、STSA_N、RADL_N、RASL_N、RSV_VCL_N10、RSV_VCL_N12もしくはRSV_VCL_N14のうちの1つであるNALユニットタイプを有する復号順で後続する全てのピクチャにつき、delta_poc_msb_present_flag[i]が1に設定されるものとする。
【0099】
さらなる代替的実施形態においては、delta_poc_msb_present_flag[i]につき以下のセマンティクスを定義することができる。
【0100】
1に等しいdelta_poc_msb_present_flag[i]は、delta_poc_msb_cycle_lt[i]が存在することを指定する。0に等しいdelta_poc_msb_present_flag[i]は、delta_poc_msb_cycle_lt[i]が存在しないことを指定する。復号ピクチャバッファにピクチャオーダーカウントをMaxPicOrderCntLsbで割った余りがPocLsbLt[i]に等しい参照ピクチャが1つより多くあるとき、delta_poc_msb_present_flag[i]は1に等しいものとする。上述の条件に基づいて現ピクチャにつきdelta_poc_msb_present_flag[i]が1に等しく設定されたら、復号順でそれ以降のピクチャから、0に等しい時間識別子値を有し、参照ピクチャとして使用されるか、または個別に破棄できない復号順で最初のピクチャまでを含む全てのピクチャにつき、delta_poc_msb_present_flag[i]が1に設定されるものとする。
【0101】
さらなる代替的実施形態においては、delta_poc_msb_present_flag[i]につき以下のセマンティクスを定義することができる。
【0102】
1に等しいdelta_poc_msb_present_flag[i]は、delta_poc_msb_cycle_lt[i]が存在することを指定する。0に等しいdelta_poc_msb_present_flag[i]は、delta_poc_msb_cycle_lt[i]が存在しないことを指定する。復号ピクチャバッファにピクチャオーダーカウントをMaxPicOrderCntLsbで割った余りがPocLsbLt[i]に等しい参照ピクチャが1つより多くあるとき、現ピクチャと、復号順で現ピクチャ以降のピクチャから、0のTemporalId値を有し、TRAIL_Rのうちの1つであるNALユニットタイプを有する、現ピクチャ以降の復号順で最初のピクチャまでを含む全てのピクチャとにつき、delta_poc_msb_present_flag[i]は1に等しいものとする。
【0103】
さらなる代替的実施形態においては、delta_poc_msb_present_flag[i]につき以下のセマンティクスを定義することができる。
【0104】
1に等しいdelta_poc_msb_present_flag[i]は、delta_poc_msb_cycle_lt[i]が存在することを指定する。0に等しいdelta_poc_msb_present_flag[i]は、delta_poc_msb_cycle_lt[i]が存在しないことを指定する。復号ピクチャバッファにピクチャオーダーカウントをMaxPicOrderCntLsbで割った余りがPocLsbLt[i]に等しい参照ピクチャが1つより多くあるとき、現ピクチャと、復号順で現ピクチャ以降のピクチャから、0のTemporalId値を有し、TRAIL_R、TSA_R、STSA_Rのうちの1つであるNALユニットタイプを有する、現ピクチャ以降の復号順で最初のピクチャまでを含む全てのピクチャとにつき、delta_poc_msb_present_flag[i]は1に等しいものとする。
【0105】
さらなる代替的実施形態においては、delta_poc_msb_present_flag[i]につき以下のセマンティクスを定義することができる。
【0106】
1に等しいdelta_poc_msb_present_flag[i]は、delta_poc_msb_cycle_lt[i]が存在することを指定する。0に等しいdelta_poc_msb_present_flag[i]は、delta_poc_msb_cycle_lt[i]が存在しないことを指定する。復号ピクチャバッファにピクチャオーダーカウントをMaxPicOrderCntLsbで割った余りがPocLsbLt[i]に等しい参照ピクチャが1つより多くあるとき、現ピクチャと、復号順で現ピクチャ以降のピクチャから、0のTemporalId値を有し、TRAIL_R、TSA_R、STSA_R、RADL_R、RASL_Rのうちの1であるNALユニットタイプを有する、現ピクチャ以降の復号順で最初のピクチャまでを含む全てのピクチャとにつき、delta_poc_msb_present_flag[i]は1に等しいものとする。
【0107】
さらなる代替的実施形態においては、delta_poc_msb_present_flag[i]につき以下のセマンティクスを定義することができる。
【0108】
1に等しいdelta_poc_msb_present_flag[i]は、delta_poc_msb_cycle_lt[i]が存在することを指定する。0に等しいdelta_poc_msb_present_flag[i]は、delta_poc_msb_cycle_lt[i]が存在しないことを指定する。復号ピクチャバッファにピクチャオーダーカウントをMaxPicOrderCntLsbで割った余りがPocLsbLt[i]に等しい参照ピクチャが1つより多くあるとき、現ピクチャと、復号順で現ピクチャ以降のピクチャから、0より大きいTemporalId値を有するかまたはTRAIL_N、TSA_N、STSA_N、RADL_N、RASL_N、RSV_VCL_N10、RSV_VCL_N12もしくはRSV_VCL_N14のうちの1つであるNALユニットタイプを有する全てのピクチャとにつき、delta_poc_msb_present_flag[i]は1に等しいものとする。
【0109】
さらなる代替的実施形態においては、delta_poc_msb_present_flag[i]につき以下のセマンティクスを定義することができる。
【0110】
1に等しいdelta_poc_msb_present_flag[i]は、delta_poc_msb_cycle_lt[i]が存在することを指定する。0に等しいdelta_poc_msb_present_flag[i]は、delta_poc_msb_cycle_lt[i]が存在しないことを指定する。復号ピクチャバッファにピクチャオーダーカウントをMaxPicOrderCntLsbで割った余りがPocLsbLt[i]に等しい参照ピクチャが1つより多くあるとき、現ピクチャと、復号順で現ピクチャ以降のピクチャから、0のTemporalId値を有する、現ピクチャ以降の復号順で最初のピクチャまでを含む全てのピクチャとにつき、delta_poc_msb_present_flag[i]は1に等しいものとする。
【0111】
さらなる代替的実施形態においては、delta_poc_msb_present_flag[i]につき以下のセマンティクスを定義することができる。
【0112】
1に等しいdelta_poc_msb_present_flag[i]は、delta_poc_msb_cycle_lt[i]が存在することを指定する。0に等しいdelta_poc_msb_present_flag[i]は、delta_poc_msb_cycle_lt[i]が存在しないことを指定する。復号ピクチャバッファにピクチャオーダーカウントをMaxPicOrderCntLsbで割った余りがPocLsbLt[i]に等しい参照ピクチャが1つより多くあるとき、現ピクチャと、復号順で現ピクチャ以降のピクチャから、0のTemporalId値を有し、参照ピクチャとして使用されるか、または個別に破棄できない、現ピクチャ以降の復号順で最初のピクチャまでを含む全てのピクチャとにつき、delta_poc_msb_present_flag[i]は1に等しいものとする。
【0113】
ここでnal_unit_typeは、以下のセマンティクスにより定義される。
【0114】
nal_unit_typeは、以下のテーブルyに指定されるようにNALユニットに含まれるRBSPデータ構造のタイプを指定する。
【表3】
【0116】
アクセスユニット:特定の分類ルールにしたがって互いに関連し、復号順で連続し、正確に1つの符号化ピクチャを含む、NALユニットのセット。
【0117】
アクセスユニットは、符号化ピクチャの符号化スライスセグメントのNALユニットを含むのに加え、符号化ピクチャのスライスセグメントを含まない他のNALユニットも含みうる。アクセスユニットの復号の結果、常に復号されたピクチャが生じる。
【0118】
関連非VCL NALユニット:特定のVCL NALユニットが非VCL NALユニットの関連VCL NALユニットである、非VCL NALユニット。
【0119】
関連RAPピクチャ:復号順で前のRAPピクチャ(あれば)。
【0120】
関連VCL NALユニット:nal_unit_typeがEOS_NUT、EOB_NUT、FD_NUT、またはSUFFIX_SEI_NUTに等しく、またはRSV_NVCL45からRSV_NVCL47の範囲内にあり、もしくはUNSPEC48からUNSPEC63の範囲内にある非VCL NALユニットについては、復号順で先行するVCL NALユニット;nal_unit_typeが他の値に等しい非VCL NALユニットについては、復号順で次のVCL NALユニット。
【0121】
ブロークンリンクアクセス(BLA;broken link access)アクセスユニット:符号化ピクチャがBLAピクチャであるアクセスユニット。
【0122】
ブロークンリンクアクセス(BLA)ピクチャ:各スライスセグメントがBLA_W_LP、BLA_W_RADLまたはBLA_N_LPに等しいnal_unit_typeを有するRAPピクチャ。
【0123】
BLAピクチャはIスライスのみを含み、復号順でビットストリームの最初のピクチャでもよいし、またはビットストリームの後の方で現れてもよい。各BLAピクチャは、新たな符号化ビデオシーケンスを開始し、復号プロセスに対してIDRピクチャと同じ影響を持つ。しかし、BLAピクチャは、空でない参照ピクチャセットを指定するシンタックス要素を含む。BLAピクチャがBLA_W_LPに等しいnal_unit_typeを有するときには、ビットストリーム中に存在しないピクチャの参照を含みうるためにデコーダにより出力されず復号できないかもしれない関連RASLピクチャを該BLAピクチャが有しうる。BLAピクチャがBLA_W_LPに等しいnal_unit_typeを有するときには、該BLAピクチャは復号されるよう指定された関連RADLピクチャも有しうる。BLAピクチャがBLA_W_RADLに等しいnal_unit_typeを有するときには、関連RASLピクチャを有しないが、復号されるよう指定された関連RADLピクチャを有しうる。BLAピクチャがBLA_N_LPに等しいnal_unit_typeを有するときには、関連リーディングピクチャを有しない。
【0124】
クリーンランダムアクセス(CRA;clean random access)アクセスユニット:符号化ピクチャがCRAピクチャであるアクセスユニット。
【0125】
クリーンランダムアクセス(CRA)ピクチャ:各スライスセグメントがCRA_NUTに等しいnal_unit_typeを有するRAPピクチャ。
【0126】
CRAピクチャはIスライスのみを含み、復号順でビットストリームの最初のピクチャでもよいし、またはビットストリームの後の方で現れてもよい。CRAピクチャは、関連RADLまたはRASLピクチャを有しうる。CRAピクチャが、復号順でビットストリームの最初のピクチャであるときには、そのCRAピクチャは、復号順で符号化ビデオシーケンスの最初のピクチャであり、関連RASLピクチャは、ビットストリーム中に存在しないピクチャの参照を含みうるためにデコーダにより出力されず復号できないかもしれない。
【0127】
フィラーデータNALユニット:nal_unit_typeがFD_NUTに等しいNALユニット。
【0128】
瞬時復号リフレッシュ(IDR;instantaneous decoding refresh)アクセスユニット:符号化ピクチャがIDRピクチャであるアクセスユニット。
【0129】
瞬時復号リフレッシュ(IDR)ピクチャ:各スライスセグメントがIDR_W_RADLまたはIDR_N_LPに等しいnal_unit_typeを有するRAPピクチャ。
【0130】
IDRピクチャはIスライスのみを含み、復号順でビットストリームの最初のピクチャであってもよいし、またはビットストリームの後の方で現れてもよい。各IDRピクチャは、復号順で符号化ビデオシーケンスの最初のピクチャである。IDRピクチャがIDR_W_RADLに等しいnal_unit_typeを有するときには、該IDRピクチャは関連RADLピクチャを有しうる。IDRピクチャがIDR_N_LPに等しいnal_unit_typeを有するときには、該IDRピクチャは関連リーディングピクチャを有しない。IDRピクチャは、関連RASLピクチャを有しない。
【0131】
長期参照ピクチャ:「長期参照のために用いられる」ものとしてマークされたピクチャ。
【0132】
長期参照ピクチャセット:長期参照ピクチャを含みうる2つの参照ピクチャセットリスト。
【0133】
ネットワーク抽象化層(NAL;network abstraction layer)ユニット:続くデータのタイプの指示およびそのデータを必要に応じてエミュレーション防止バイトがちりばめられたRBSPの形で含むバイトを含むシンタックス構造。
【0134】
ネットワーク抽象化層(NAL)ユニットストリーム:一連のNALユニット。
【0135】
非参照ピクチャ:「参照のために用いられない」ものとしてマークされたピクチャ。
【0136】
非参照ピクチャは、復号順で後続のピクチャの復号プロセスにおけるインター予測のために使用できないサンプルを含む。
【0137】
ピクチャパラメータセット(PPS):各スライスセグメントヘッダに含まれるシンタックス要素により定義されるゼロ以上の符号化ピクチャ全体に適用されるシンタックス要素を含むシンタックス構造。
【0138】
プレフィックスSEI NALユニット:PREFIX_SEI_NUTに等しいnal_unit_typeを有するSEI NALユニット。
【0139】
ランダムアクセス復号可能リーディング(RADL;random access decodable leading)アクセスユニット:符号化ピクチャがRADLピクチャであるアクセスユニット。
【0140】
ランダムアクセス復号可能リーディング(RADL)ピクチャ:各スライスセグメントがRADL_NUTに等しいnal_unit_typeを有する符号化ピクチャ。
【0141】
全てのRADLピクチャは、リーディングピクチャである。RADLピクチャは、同じ関連RAPピクチャのトレイリングピクチャの復号プロセスのために参照ピクチャとして用いられない。存在する場合、全てのRADLピクチャは、復号順で同じ関連RAPピクチャの全てのトレイリングピクチャに先行する。
【0142】
ランダムアクセスポイント(RAP;random access point)アクセスユニット:符号化ピクチャがRAPピクチャであるアクセスユニット。
【0143】
ランダムアクセスポイント(RAP)ピクチャ:各スライスセグメントが両端値を含めて7から12までの範囲内のnal_unit_typeを有する符号化ピクチャ。
【0144】
RAPピクチャはIスライスのみを含み、BLAピクチャ、CRAピクチャまたはIDRピクチャでありうる。ビットストリームの最初のピクチャは、RAPピクチャでなければならない。必要なパラメータセットをアクティブ化が必要な際に利用できるならば、復号順でRAPピクチャに先行するいずれのピクチャの復号プロセスも行わずに、RAPピクチャおよび復号順で後続する全ての非RASLピクチャを適切に復号することができる。RAPピクチャではないIスライスのみを含むピクチャもストリーム中に存在しうる。
【0145】
ランダムアクセススキップリーディング(RASL;random access skipped leading)アクセスユニット:符号化ピクチャがRASLピクチャであるアクセスユニット。
【0146】
ランダムアクセススキップリーディング(RASL)ピクチャ:各スライスセグメントがRASL_NUTに等しいnal_unit_typeを有する符号化ピクチャ。
【0147】
全てのRASLピクチャは、関連BLAまたはCRAピクチャのリーディングピクチャである。関連RAPピクチャがBLAピクチャであるか、またはビットストリームの最初の符号化ピクチャであるとき、RASLピクチャは、ビットストリームに存在しないピクチャの参照を含みうるために出力されず適切に復号できないかもしれない。RASLピクチャは、非RASLピクチャの復号プロセスのための参照ピクチャとして用いられない。存在する場合、全てのRASLピクチャは、復号順で同じ関連RAPピクチャの全てのトレイリングピクチャに先行する。
【0148】
ローバイトシーケンスペイロード(RBSP;raw byte sequence payload):NALユニットにカプセル化された整数のバイト数を含むシンタックス構造。RBSPは、空であるか、またはRBSPストップビットを従え、0に等しいゼロ以上の後続ビットを従えたシンタックス要素を含むデータビットのストリングの形式を有する。
【0149】
ローバイトシーケンスペイロード(RBSP)ストップビット:ローバイトシーケンスペイロード(RBSP)内のデータビットのストリングの後に存在する1に等しいビット。RBSPの終端からRBSP内の最後の0ではないビットであるRBSPストップビットを探索することにより、RBSP内のデータビットのストリングの終端の位置を特定できる。
【0150】
参照ピクチャ:短期参照ピクチャまたは長期参照ピクチャであるピクチャ。
【0151】
参照ピクチャは、復号順で後続するピクチャの復号プロセスにおけるインター予測に使用されうるサンプルを含む。
【0152】
シーケンスパラメータセット(SPS):各スライスセグメントヘッダに含まれるシンタックス要素により参照されるピクチャパラメータセットに含まれるシンタックス要素の内容により決定される、ゼロ以上の符号化ビデオシーケンス全体に適用されるシンタックス要素を含むシンタックス構造。
【0153】
短期参照ピクチャ:「短期参照のために用いられる」ものとしてマークされたピクチャ。
【0154】
段階的時間サブレイヤアクセス(STSA:step‐wise temporal sub‐layer access)アクセスユニット:符号化ピクチャがSTSAピクチャであるアクセスユニット。
【0155】
段階的時間サブレイヤアクセス(STSA)ピクチャ:各スライスセグメントがSTSA_RまたはSTSA_Nに等しいnal_unit_typeを有する符号化ピクチャ。
【0156】
STSAピクチャは、当該STSAピクチャと同じTemporalIdのピクチャをインター予測参照に使用しない。STSAピクチャと同じTemporalIdを有する復号順でSTSAピクチャに続くピクチャは、STSAピクチャと同じTemporalIdを有する復号順でSTSAピクチャより前のピクチャを、インター予測参照に使用しない。STSAピクチャは、当該STSAピクチャで直近下位のサブレイヤから当該STSAピクチャを含むサブレイヤへの上方切り替えを可能にする。STSAピクチャは、0より大きいTemporalIdを有しなければならない。
【0157】
サフィックスSEI NALユニット:SUFFIX_SEI_NUTに等しいnal_unit_typeを有するSEI NALユニット。
【0158】
補足的な付加情報(SEI;supplemental enhancement information)NALユニット:PREFIX_SEI_NUTまたはSUFFIX_SEI_NUTに等しいnal_unit_typeを有するNALユニット。
【0159】
時間サブレイヤアクセス(TSA:temporal sub‐layer access)アクセスユニット:符号化ピクチャがTSAピクチャであるアクセスユニット。
【0160】
時間サブレイヤアクセス(TSA)ピクチャ:各スライスセグメントがTSA_RまたはTSA_Nに等しいnal_unit_typeを有する符号化ピクチャ。
【0161】
TSAピクチャおよび復号においてTSAピクチャに続くピクチャは、TSAピクチャのTemporalId以上のTemporalIdのピクチャをインター予測参照に使用しない。TSAピクチャは、当該TSAピクチャで直近下位のサブレイヤから当該TSAピクチャを含むサブレイヤまたは任意のより上位のサブレイヤへの上方切り替えを可能にする。TSAピクチャは、0より大きいTemporalIdを有しなければならない。
【0162】
トレイリングピクチャ:出力順で関連RAPピクチャに続くピクチャ。
【0163】
ビデオ符号化レイヤ(VCL;video coding layer)NALユニット:VCL NALユニットとして分類されるnal_unit_typeのリザーブド値を有する符号化スライスセグメントNALユニットおよびNALユニットのサブセットの集合名。
【0164】
ビデオパラメータセット(VPS;video parameter set):各スライスセグメントヘッダに含まれるシンタックス要素により参照されるピクチャパラメータセットに含まれるシンタックス要素により参照されるシーケンスパラメータセットに含まれるシンタックス要素の内容により決定される、ゼロ以上の符号化ビデオシーケンス全体に適用されるシンタックス要素を含むシンタックス構造。
【0165】
ここで、時間識別子値は、以下のように定義される。
【0166】
nuh_temporal_id_plus1−1は、NALユニットの時間識別子を指定する。nuh_temporal_id_plus1の値は、0に等しくないものとする。
【0168】
TemporalId=nuh_temporal_id_plus1−1として指定される。
【0169】
nal_unit_typeが、両端値を含めて16から23までの範囲内にある場合(RAPピクチャの符号化スライスセグメント)、TemporalIdは0に等しいものとする;そうでない場合は、nal_unit_typeがTSA_R、TSA_N、STSA_RまたはSTSA_Nに等しいとき、TemporalIdは0に等しくないものとする。
【0170】
TemporalIdの値は、アクセスユニットの全てのVCL NALユニットにつき同じとする。アクセスユニットのTemporalIdの値は、当該アクセスユニットのVCL NALユニットのTemporalIdの値である。
【0171】
例えば
図15を参照すると、ピクチャBに関して、復号ピクチャバッファにピクチャオーダーカウントをMaxPicOrderCntLsbで割った余りがPocLsbLt[i]に等しい1つより多くの参照ピクチャがあり、そのためdelta_poc_msb_present_flag[i]は1に等しくなる。そして、本明細書に記載される実施形態にしたがって、delta_poc_msb_present_flag[i]は、ピクチャCおよびDについても1に等しく設定される。ピクチャDは、TemporalId=0に帰属するため、復号順でDに後続するピクチャは、それらの後続ピクチャに関して復号ピクチャバッファにピクチャオーダーカウントをMaxPicOrderCntLsbで割った余りがPocLsbLt[i]に等しい1つより多くの参照ピクチャがない限り、delta_poc_msb_present_flag[i]を1に設定する必要はない。
【0172】
以上の明細書において使用される用語および表現は、制限ではなく説明のための用語として使用され、このような用語および表現の使用には、図と共に記載された特徴またはその一部の等価物を除外する意図はなく、本発明の範囲は、以下の請求の範囲のみにより制限されることが理解されよう。