(57)【特許請求の範囲】
【請求項１】
Ｈ．２６４／ＡＶＣの動画像符号化装置において、
Ｈ．２６４／ＡＶＣで規定されるシーケンスパラメータセットのnum_ref_frames_in_pic_order_cnt_cycleフィールドの値を、MaxFrameNumの約数に設定する設定手段と、
画像データを符号化する符号化手段とを有する動画像符号化装置。
【請求項２】
Ｈ．２６４／ＡＶＣの動画像復号化装置において、
リカバリポイントＳＥＩが付与されているピクチャから復号する場合には、Ｈ．２６４／ＡＶＣで規定されるFrameNumOffsetを、MaxFrameNumと等しい値に初期化する初期化手段と、
符号化されたストリームを復号する復号化手段とを有する動画像復号化装置。
【請求項３】
Ｈ．２６４／ＡＶＣの動画像の符号化方法において、
Ｈ．２６４／ＡＶＣで規定されるシーケンスパラメータセットのnum_ref_frames_in_pic_order_cnt_cycleフィールドの値を、MaxFrameNumの約数に設定する動画像符号化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩＴＵ−Ｔ(International Telecommunication Union-Telecommunication Standardization Sector)及びＩＳＯ(International Organization for Standardization)で標準化された動画像符号化方式であるＨ．２６４／ＭＰＥＧ４・ＡＶＣに基づく動画像符号化装置、動画像復号化装置及びその符号化、復号化方法に関する。
【背景技術】
【０００２】
特許文献１には、ビットストリームを再生する場合に、ＳＰＳ情報に続くＩピクチャを最初に検出したときに、デコーダの初期化を行うことで、ランダム再生を容易に行えるようにすることが記載されている。
【０００３】
特許文献２には、符号化データを任意の編集点で切り出す動画像符号化データ編集装置において、編集点以降の符号化データのヘッダ情報を、編集点を先頭とする内容に変更することで、任意の編集点から符号化データを切り出せるようにすることが記載されている。
【０００４】
Ｈ．２６４／ＭＰＥＧ４・ＡＶＣ勧告には、復号化装置側でのピクチャの表示順を表すＰＯＣ(Picture Order Count)が規定されている。ＰＯＣの符号化方法にはＰＯＣタイプ０、ＰＯＣタイプ１、ＰＯＣタイプ２の３種類の方法が規定されており、ＰＯＣタイプ１で符号化されたＰＯＣの復号処理は、Ｈ．２６４／ＭＰＥＧ４・ＡＶＣ勧告の8.2.1.2において、以下のように規定されている。
【０００５】
１．Ｈ．２６４／ＭＰＥＧ４・ＡＶＣの（８−６）式
The variable Frame Num Offset is derived as follows:
if( nal_unit_type＝＝5 )
FrameNumOffset＝0
else if( prevFrameNum＞frame_num )
FrameNumOffset＝prevFrameNumOffset＋MaxFrameNum
else
FrameNumOffset＝prevFrameNumOffset        ・・・・・・式（１）
【０００６】
上記の式（１）は、Frame Num Offsetを求めるものであり、以下のような処理である。
ＮＡＬユニットタイプが「５」であれば、フレーム番号オフセットFrameNumOffsetを「０」に初期化する。ＮＡＬユニットタイプが「５」でなく、かつ前回のフレーム番号が今回のフレーム番号より大きいければ、prevFrameNumOffsetに最大フレーム番号MaxFrameNumを加算した値を、Frame Num Offsetとして設定する。
【０００７】
２．Ｈ．２６４／ＭＰＥＧ４・ＡＶＣの（８−７）式
The variable absFrameNum is derived as follows:
if( num_ref_frames_in_pic_order_cnt_cycle！＝0 )
absFrameNum＝FrameNumOffset＋frame_num
else
absFrameNum＝0
if( nal_ref_idc＝＝0 ＆＆absFrameNum＞0)
absFrameNum＝absFrameNum−1        ・・・・・・・・・式（２）
【０００８】
上記の式（２）は、ＩＤＲ（Instantaneous Decoding Refresh：瞬時復号更新）ピクチャを基準としたピクチャ数であるabsFrameNumを求めるものであり、以下のような処理である。
num_ref_frames_in_pic_order_cnt_cycleが「０」でなければ、FrameNumOffsetにフレーム番号frame_numを加算した値を、absFrameNumとする。num_ref_frames_in_pic_order_cnt_cycleが「０」であれば、absFrameNumを「０」にする。
参照ピクチャか否かを示すフラグnal_ref_idcが「０」で、かつabsFrameNumが０より大きいときには、absFrameNumから「１」減算した値をabsFrameNumに設定する。
【０００９】
３．Ｈ．２６４／ＭＰＥＧ４・ＡＶＣの（８−８）式
When absFrameNum＞0, picOrderCntCycleCnt and frameNumInPicOrderCnt Cycle are derived as follows:
if( absFrameNum＞0 ) {
picOrderCntCycleCnt＝(absFrameNum-1)／num_ref_frames_in_pic_ordercnt_cycle
frameNumInPicOrderCntCycle＝(absFrameNum−1)％num_ref_frames_in_pic_order_cnt_cycle }                        ・・・・式（３）
上記の式（３）は、picOrderCntCycleCntと、frameNumInPicOrderCntCycleを求める処理である。
【００１０】
４．Ｈ．２６４／ＭＰＥＧ４・ＡＶＣの（８−９）式
The variable expectedDeltaPerPicOrderCntCycle is derived as follows:
expectedDeltaPerPicOrderCntCycle＝0
for( i＝0; i＜num_ref_frames_in_pic_order_cnt_cycle; i＋＋)
expectedDeltaPerPicOrderCntCycle＋＝offset_for_ref_frame[ i ]・・式（４）
上記の式（４）は、expectedDeltaPerPicOrderCntCycleを求める処理である。変数ｉの値により定まるoffset_for_ref_frame[ i ]を求める処理である。
【００１１】
５．Ｈ．２６４／ＭＰＥＧ４・ＡＶＣの（８−１０）式
The variable expectedPicOrderCnt is derived as follows:
if( absFrameNum＞0 ){
expectedPicOrderCnt＝picOrderCntCycleCnt＊expectedDeltaPerPicOrderCnt Cycle
for( i＝0; i＜＝frameNumInPicOrderCntCycle; i＋＋)
expectedPicOrderCnt＝expectedPicOrderCnt＋offset_for_ref_frame[ i ]
} else
expectedPicOrderCnt＝0
if( nal_ref_idc＝＝0)
expectedPicOrderCnt＝expectedPicOrderCnt＋offset_for_non_ref_pic
・・・・・・式（５）
【００１２】
上記の式（５）の処理において、絶対フレーム番号absFrameNumが０より大であれば、picOrderCntCycleCntにexpectedDeltaPerPicOrderCnt  Cycleを乗算した値が、expectedPicOrderCntとして求められる。さらに、そのexpectedPicOrderCntに、ピクチャのＰＯＣの差分であるoffset_for_ref_frame[ i ]を加算した値をexpectedPicOrderCnとして求める。
【００１３】
また、参照ピクチャか否かを示すフラグ nal_ref_idcが０であれば、expectedPicOrderCntに非参照フレームのＰＯＣの差分offset_for_non_ref_picを加算した値を、expectedPicOrderCnとして求める。
【００１４】
６．Ｈ．２６４／ＭＰＥＧ４・ＡＶＣの（８−１１）式
The variables TopFieldOrderCnt or BottomFieldOrderCnt are derived as follows:
if(！field_pic_flag ) {
TopFieldOrderCnt＝expectedPicOrderCnt＋delta_pic_order_cnt[ 0 ]
BottomFieldOrderCnt＝TopFieldOrderCnt＋
offset_for_top_to_bottom_field＋delta_pic_order_cnt[ 1 ]
} else if(！bottom_field_flag )
TopFieldOrderCnt＝expectedPicOrderCnt＋delta_pic_order_cnt[ 0 ]
else
BottomFieldOrderCnt＝expectedPicOrderCnt＋offset_for_top_to_bottom_field＋delta_pic_order_cnt[0]                ・・・・・・式（６）
【００１５】
上記の式（６）の処理は、「！field_pic_flag」、つまりフィールドスライスでなければ、expectedPicOrderCntとdelta_pic_order_cnt[ 0 ]を加算した値を、TopFieldOrderCntとして求める。
なお、符号化ストリームから復号化装置が知り得る情報は以下の通りである。
【００１６】
ＮＡＬユニットの種類を示すnal_unit_type、フレーム番号frame_num、最大フレーム番号MaxFrameNum、ＰＯＣの導出に使用されるnum_ref_frames_in_pic_order_cnt_cycle、nal_ref_idc、ＰＯＣタイプ１のＰＯＣの導出に使用されるoffset_for_ref_frame[ i ]、offset_for_non_ref_pic, field_pic_flag、ＰＯＣの計算に使用されるdelta_pic_order_cnt[ 0 ]、delta_pic_order_cnt[ 1 ]、bottom_field_flag。
【特許文献１】特開２００７−３１８６１５号公報
【特許文献２】特開２００７−６７８４２号公報
【非特許文献１】Ye-Kui Wang, 他1名, JVT-F050 POC Recovery in Random Access Point SEI Message, Tampere University of Technology and Nokia Corporation.
【発明の開示】
【発明が解決しようとする課題】
【００１７】
Ｈ．２６４／ＭＰＥＧ４・ＡＶＣにおいては、復号開始可能なピクチャとして、以下の２種類が規定されている。
ＩＤＲ(Instantaneous Decoding Refresh：瞬時復号更新)ピクチャ：Iピクチャであり、シーケンスの最初のピクチャ。
【００１８】
リカバリポイントＳＥＩ（Recovery Point SEI）が付与されたピクチャ：シーケンスの途中のピクチャにリカバリポイントＳＥＩは付与され、シーケンスの途中であっても、このピクチャから引き込み可能であることを示す。
【００１９】
Ｈ．２６４／ＭＰＥＧ４・ＡＶＣ勧告の8.2.1.2のＰＯＣタイプ１の復号においては、ＩＤＲピクチャから復号を開始した場合の処理は規定されている。しかしながら、リカバリポイントＳＥＩを用いたランダムアクセス時（符号化ストリームの途中から復号するとき）は、ＰＯＣタイプ１のＰＯＣを上記の処理で復号しても、ＰＯＣの値がピクチャの表示順と一致しない場合がある。
【００２０】
例えば、最大フレーム番号MaxFrameNum=１６、num_ref_frames_in_pic_order_cnt_cycle=１５とする。ＩＤＲピクチャから数えて３０フレーム目に、引き込み可能ピクチャとしてリカバリポイントＳＥＩが挿入されているとする。また、変数ｉと、offset_for_ref_frame[i] (ｉ＝0・・num_ref_frames_in_pic_order_cnt_cycle-1) は、図８に示すような関係であるとする。さらに、簡単のために、delta_pic_order_cnt[0]、delta_pic_order_cnt[1]は常に「０」とする。また、ＩＤＲピクチャからリカバリポイントＳＥＩのピクチャの間に非参照ピクチャは存在しないものとする。
【００２１】
この場合、引き込み可能ピクチャのフレーム番号は、ＩＤＲピクチャフレーム枚数の最大フレーム番号MaxFrameNumによる剰余の値であるので、３０枚目のピクチャのスライスヘッダに含まれるフレーム番号frame_numフィールドの値は、３０ ｍｏｄ １６、すなわち 「１４」である。
【００２２】
ＩＤＲピクチャから復号した場合には、式（２）より絶対フレーム番号absFrameNumは「３０」となる。そして、式（３）のpicOrderCntCycleCnt及びframeNumInPicOrderCntCycleに上記の値を代入することにより、
picOrderCntCycleCnt＝（３０−１）／１５=１
frameNumInPicOrderCntCycle＝（３０−１）％１５=１４
となる。この場合のトップフィールドのＰＯＣであるTopFieldOrderCntは式（１）〜（６）を用い
expectedDeltaPerPicOrderCntCycle＝２７
expectedPicOrderCnt＝picOrderCntCycleCnt＊picOrderCntCycleCnt＋Σoffset_for_ref_frame[i](i=0…14)＝５４
となる。
【００２３】
他方、リカバリポイントＳＥＩが付与された３０枚目のピクチャから復号を開始する場合には、ピクチャ単位でデコーダ側で取得可能な情報はフレーム番号frame_numのみである。また、式（１）で計算されるフレーム番号オフセットFrameNumOffsetは、ＩＤＲピクチャから、フレーム番号frame_numフィールドが何回キャリーオーバしたか（何回０に戻ったか）を表している。この回数をｋ回とすると式（２）のabsFrameNumは、以下のように書き直せる。
absFrameNum＝ｋ・MaxFrameNum+frame_num
ｋの値はデコーダ側では未知のため、absFrameNumを導出する際にあいまい性が生じる。
【００２４】
例えば、ｋ=０、１、２と仮定すると、
（ａ）ｋ=０の場合
absFrameNum＝１４
picOrderCntCycleCnt＝（１４−１）／１５＝０
frameNumInPicOrderCntCycle＝（１４−１）％１５＝１３
（ｂ）ｋ＝１の場合
absFrameNum＝３０
picOrderCntCycleCnt＝（３０−１）／１５＝１
frameNumInPicOrderCntCycle＝（３０−１）％１５＝１４
（ｃ）ｋ＝２の場合
absFrameNum＝４６
picOrderCntCycleCnt＝（４６−１）／１５＝３
frameNumInPicOrderCntCycle＝（４６−１）％１５＝０
【００２５】
図９は、ｋの値とＰＯＣ差分の関係を示す図である。図９には、引き込み点からのピクチャ枚数と、各ｋ値におけるTopFieldOrderCntと、前ピクチャとのＰＯＣ差分が示されている。なお、ＩＤＲから復号した場合のＰＯＣの真値はｋ=１の場合となる。
【００２６】
図９からも明らかなように、引き込み点からのピクチャ枚数が同じでも、ｋの値により前のピクチャとのＰＯＣの差分が異なっている。
例えば、引き込み点からのピクチャ枚数が５枚目と６枚目のＰＯＣの差分は、ｋ＝０のときのＰＯＣ差分は３、ｋ＝１のときのＰＯＣの差分は２、ｋ＝３のときのＰＯＣの差分は４となり、値が一意にならない。
【００２７】
上述した復号方法では、引き込み時のｋが正しく求まらないと、各ピクチャ間のＰＯＣの差分が正しい値にならない。
上記の問題を解決するために、非特許文献１では、ランダムアクセス時においても、ＰＯＣタイプ１のＰＯＣをＩＤＲピクチャから復号した場合と全く同じＰＯＣの値で復号できるようにするために、フレーム番号オフセットFrameNumOffsetを最大フレーム番号MaxFrameNumで割った値を符号化して送ることを提案している。
【００２８】
この動画像符号化装置によれば、動画像復号化装置側で、リカバリポイントＳＥＩを用いて正しい表示順で復号することができる。
開示の動画像復号化装置は、Ｈ．２６４／ＡＶＣの動画像復号化装置において、リカバリポイントＳＥＩが付与されているピクチャから復号する場合に、Ｈ．２６４／ＡＶＣで規定されるFrameNumOffsetを、MaxFrameNumと等しい値に初期化する初期化手段と、符号化されたストリームを復号する復号化手段とを有する。
【００２９】
本発明の課題は、Ｈ．２６４に基づいて符号化された動画像を、シーケンスの途中のピクチャから復号する場合でも正しい表示順で復号できるようにすることである。
【課題を解決するための手段】
【００３０】
開示の動画像符号化装置は、Ｈ．２６４／ＡＶＣの動画像符号化装置において、Ｈ．２６４／ＡＶＣで規定されるシーケンスパラメータセットのnum_ref_frames_in_pic_order_cnt_cycleフィールドの値を、MaxFrameNumの約数に設定する設定手段と、画像データを符号化する符号化手段とを有する。
【００３１】
この動画像符号化装置によれば、動画像復号化装置側で、リカバリポイントＳＥＩを用いて正しい表示順で復号することができる。
開示の動画像復号化装置は、Ｈ．２６４／ＡＶＣの動画像復号化装置において、リカバリポイントＳＥＩが付与されているピクチャから復号する場合に、Ｈ．２６４／ＡＶＣで規定されるFrameNumOffsetを、MaxFrameNumの整数倍の値に初期化する初期化手段と、符号化されたストリームを復号する復号化手段とを有する。
【００３２】
この動画像復号化装置によれば、リカバリポイントＳＥＩを用いて復号する場合に、ＰＯＣタイプ１の正しいＰＯＣの相対値を得ることができる。これにより、符号化されたストリームを正しい表示順で復号することができる。
【発明の効果】
【００３３】
開示の符号化装置によれば、符号化データのデータ量を増やさずに、復号化装置において、リカバリポイントＳＥＩから正しい表示順で復号できるように画像データを符号化できる。また、開示の符号化装置によれば、リカバリポイントＳＥＩの付与されたピクチャから復号する場合に、正しい表示順で復号することができる。
【発明を実施するための最良の形態】
【００３４】
以下、本発明の好適な実施の形態について説明する。Ｈ．２６４／ＭＰＥＧ４・ＡＶＣ（以下、Ｈ．２６４という）の符号された画像データの復号においては、ＰＯＣ（Picture Order Count）の絶対値は必要でなく、各ピクチャのＰＯＣの相対値が正しければ正しい表示順で復号することができる。
【００３５】
この実施の形態では、符号化装置側において、Ｈ．２６４のシーケンスパラメータセットＳＰＳに規定されるnum_ref_frames_in_pic_order_cnt_cycleフィールドの値を、MaxFrameNumの約数に設定している。
【００３６】
復号装置側では、ＩＤＲピクチャ、あるいはＨ．２６４で規定されるリカバリポイントＳＥＩなどが付与された、引き込み可能なピクチャから符号化を開始する際に次のようにしている。絶対フレーム番号absFrameNumを、フレーム番号frame_numに最大フレーム番号MaxFrameNumの整数倍を加算した値で初期化している。
【００３７】
これにより、リカバリポイントＳＥＩが付与されたピクチャから復号する場合のピクチャ間のＰＯＣの相対値を、ＩＤＲピクチャから復号した場合のピクチャ間のＰＯＣの相対値と同じ値にすることができる。以下、その実現方法を具体的に説明する。
【００３８】
ＰＯＣタイプ１のＰＯＣの復号処理では、フレーム番号オフセットFrameNumOffsetを初期化する必要がある。FrameNumOffsetは、ＩＤＲピクチャの復号時に０に初期化され、その後frame_num＜prev_frame_num（frame_numの前回値）となる毎に最大フレーム番号MaxFrameNumの値が加算されていく。
【００３９】
フレーム番号frame_numは、ＩＤＲピクチャから数えたフレーム数の相対値であり、０≦frame_num＜MaxFrameNum（frame_numの最大値)の条件を満たす。フレーム番号frame_numが、最大フレーム番号MaxFrameNumに等しくなると、再び０からカウントされる。
【００４０】
絶対フレーム番号absFrameNumは、式（２）を参照して以下の式で表せる。
absFrameNum＝FrameNumOffset＋frame_num    ・・・・式（７）
フレーム番号オフセットFrameNumOffsetは、式（１）の定義より、最大フレーム番号MaxFrameNumの定数倍であり、この定数をKとおくと、以下の式で表せる。
absFrameNum＝K・MaxFrameNum＋frame_num      ・・・式（８）
【００４１】
前述した式（２）から、absFrameNum＝absFrameNum−1、であり、式（３）から、frameNumInPicOrderCntCycle＝(absFrameNum−1)％num_ref_frames_in_pic_order_cnt_cycle、であるから、
frameNumInPicOrderCntCycle 
＝(K・MaxFrameNum + frame_num−1)％num_ref_frames_in_pic_order_cnt_cycle
＝(((K・MaxFrameNum)％num_ref_frames_in_pic_order_cnt_cycle)＋frame_num−1)％num_ref_frames_in_pic_order_cnt_cycle        ・・・・式（９）
となる。
【００４２】
上記の式（９）から、ランダムアクセス時に(absFrameNum−1)が不明なためにframeNumInPicOrderCntCycleの値が正しい値とならない問題は、定数Kが不明な問題に帰着できる。
ここで、定数Ｋを含む式、((K・MaxFrameNum)％num_ref_frames_in_pic_order_cnt_cycle)、に着目すると、num_ref_frames_in_pic_order_cnt_cycleを、最大フレーム番号MaxFrameNumの約数に設定すれば、Ｋを含む上記の式の剰余は０となるので、(K・MaxFrameNum)％num_ref_frames_in_pic_order_cnt_cycleの値はKの値に関わらず０になる。
【００４３】
従って、num_ref_frames_in_pic_order_cnt_cycleを、最大フレーム番号MaxFrameNumの約数に設定すれば、Ｋの値によらず、式（９）のframeNumInPicOrderCntCycleの値は一意に求まることになる。
【００４４】
次に、上記のようにして符号化した画像データを復号する場合について説明する。
この実施の形態においては、リカバリポイントＳＥＩが付与されているピクチャから復号する場合に、フレーム番号オフセットFrameNumOffsetを、MaxFrameNumの整数倍に初期化する処理を新たに追加する。例えば、簡単のために、FrameNumOffset＝MaxFrameNum、と初期化する。
【００４５】
この場合、前述した式（１）を、以下の式（１０）に書き換えることができる。
if(nal_unit_type＝＝5)
FrameNumOffset＝0
else if(Recover_Point_SEIからの復号)
FrameNumOffset＝MaxFrameNum
else if(prevFrameNum＞frame_num)
FrameNumOffset＝prevFrameNumOffset＋MaxFrameNum
else
FrameNumOffset＝prevFrameNumOffset        ・・・式（１０）
【００４６】
また、数（１０）を別の表現であらわすと以下のとおりになる。
if( nal_unit_type  = =  5 )
FrameNumOffset = 0
else if(prevFrameNumOffset is unknown)
FrameNumOffset＝MaxFrameNum
else if( prevFrameNum > frame_num )
FrameNumOffset = prevFrameNumOffset + MaxFrameNum
else
FrameNumOffset = prevFrameNumOffset
但し、if(Recover_Point_SEIからの復号)の「Recover_Point_SEIからの復号」は、「prevFrameNumOffset is unknown」と等価である。
【００４７】
上記の処理内容は次の通りである。ＮＡＬユニットタイプが５か否かを判別する。ＮＡＬユニットタイプが５でなければ、リカバリポイントＳＥＩが付与されているピクチャからの復号か否かを判別する。リカバリポイントＳＥＩが付与されているピクチャからの復号であれば、フレーム番号オフセットFrameNumOffsetに最大フレーム番号MaxFrameNumを設定する。
【００４８】
ＭＡＬユニットタイプが５でなければ、さらに、前回のフレーム番号prevFrameNumが、今回のフレーム番号frame_numより大きいか否かを判別する。前回のフレーム番号prevFrameNumが今回のフレーム番号frame_numより大きいときには、フレーム番号が最大値を超えたものと判断し、prevFrameNumOffsetに最大フレーム番号MaxFrameNumを加算した値を、FrameNumOffsetに設定する。
前回のフレーム番号prevFrameNumがframe_numより大きくなければ、revFrameNumOffsetを、FrameNumOffsetとして設定する。
【００４９】
上記の処理により、リカバリポイントＳＥＩが付与されているピクチャから復号する場合に、FrameNumOffsetがMaxFrameNumの整数倍の値に初期化される。そして、符号化装置側で、num_ref_frames_in_pic_order_cnt_cycleの値はMaxFrameNumの約数に設定されているので、式（９）のframeNumInPicOrderCntCycleの値が一意に定まる。その結果、リカバリポイントＳＥＩが付与されているピクチャから復号する場合のＰＯＣの相対値が、ＩＤＲピクチャから復号する場合と同じ値となる。これににより、ピクチャを正しい表示順で復号することができる。
【００５０】
次に、以上のような符号化機能及び復号化機能を有する動画像符号化装置並びに動画像復号化装置について説明する。
図１は、動画像符号化装置（以下、符号化装置という）１１の要部の構成を示す図である。減算器１２は、画像データから予測画像生成部１３で生成される予測画像を減算したデータを直交変換部１４に出力する。直交変換部１４は、減算器１２から出力されるデータを直交変換し、量子化部１５は、そのデータを量子化する。
【００５１】
エントロピー符号化部１６は、パラメータ設定部１７を有する。エントロピー符号化部１６は、画像データの符号化を行い、パラメータ設定部１７は、シーケンスパラメータセットのnum_ref_frames_in_pic_order_cnt_cycleの値の設定等を行う。
【００５２】
逆量子化部１８と逆直交変換部１９は、量子化及び直交変換の逆の処理を行う。逆直交変化部１９で逆変換された画像データは、加算器２０において予測画像と加算され参照画像蓄積部２１に蓄積される。
【００５３】
動きベクトル決定部２２は、現在の画像と参照画像蓄積部２１から出力される参照ピクチャに基づいて動きベクトルを算出し、算出した動きベクトルを予測画像生成部１３とエントロピー符号化部１６に出力する。予測画像生成部１３は、動きベクトルと参照ピクチャに基づいて予測画像を生成し、その予測画像を加算器２０及び減算器１２に出力する。
【００５４】
図２は、符号化装置１１の符号化処理のフローチャートである。エントロピー符号化部１６は、ピクチャをＰＯＣタイプ１で符号化するか否かを判別する(図２、Ｓ１１）。
ＰＯＣタイプ１で符号化する場合には（Ｓ１１、ＹＥＳ）、ステップＳ１２に進み、シーケンスパラメータセットＳＰＳのnum_ref_frames_in_pic_order_cnt_cycleを、最大フレーム番号MaxFrameNumの約数に設定する。
【００５５】
ステップＳ１２の次、またはステップＳ１１の判別がＮＯとのきには、ステップＳ１３に進み、画像データの符号化処理を実行する。
上記のように符号化装置１１が、シーケンスパラメータセットＳＰＳのnum_ref_frames_in_pic_order_cnt_cycleを、最大フレーム番号MaxFrameNumの約数に設定することで、復号化装置３１側でＰＯＣの相対値を一意に求めることができる。また、符号化装置１１は、num_ref_frames_in_pic_order_cnt_cycleの値をMaxFrameNumの約数に設定するだけであるので、符号化データのデータ量は増えない。
【００５６】
図３は、動画像復号化装置（以下、復号化装置という）３１の要部を示す図である。エントロピー復号化部３２は、可変長符号化が行われた画像ストリームを復号する機能と、初期化部３３を有する。初期化部３３は、フレーム番号オフセットの値を最大フレーム番号の整数倍の値に初期化する。
【００５７】
逆量子化部３４は、エントロピー復号化部３２で復号された画像データの逆量子化の処理を行い、逆直交変換部３５は、逆量子化されたデータに対して逆直交変換処理を行う。
加算器３６は、逆直交変換後の画像データと、予測画像生成部３７から出力される予測画像を加算して復号画像を生成する。参照画像蓄積部３８は復号画像を記憶する。
予測画像生成部３７は、参照画像蓄積部３８に記憶されている参照ピクチャと、エントロピー復号化部３２で計算される動きベクトルに基づいて予測画像を生成する。
【００５８】
図４は、復号化装置３１における復号処理のフローチャートである。最初に、ＩＤＲピクチャまたはリカバリポイントＳＥＩをサーチする（Ｓ２１）。
ＰＯＣタイプが「１」か否かを判別する（Ｓ２２）。ＰＯＣタイプが「１」でないときには（Ｓ２２、ＮＯ）、ステップＳ２３に進み、ＰＯＣタイプが「０」か否かを判別する。ＰＯＣタイプが「０」であれば（Ｓ２３、ＹＥＳ）、ステップＳ２４に進み、ＰＯＣタイプ０の初期化処理を行う。ステップＳ２３の判別でＰＯＣタイプが「０」ではないと判定されたときには（Ｓ２３、ＮＯ）、ステップＳ２５に進み、ＰＯＣタイプ２の初期化処理を実行する。
【００５９】
ステップＳ２２において、ＰＯＣタイプが「１」と判定されたときには、ステップＳ２６に進み、リカバリポイントＳＥＩを検出したか否かを判別する。
リカバリポイントＳＥＩを検出した場合には（Ｓ２６、ＹＥＳ）、ステップＳ２７に進み、フレーム番号オフセットFrameNumOffsetの初期値として最大フレーム番号MaxFrameNum（または最大フレーム番号の整数倍の値）を設定する。
【００６０】
ステップＳ２６でリカバリポイントＳＥＩが検出されなかった場合には（Ｓ２６、ＮＯ）、ステップＳ２８に進み、フレーム番号オフセットFrameNumOffsetの初期値として「０」を設定する。
ステップＳ２４、Ｓ２５、Ｓ２７またはＳ２８の次には、ステップＳ２９に進み、ピクチャの復号処理を開始する。
【００６１】
上記の処理により、リカバリポイントＳＥＩが付与されているピクチャから復号する場合には、フレーム番号オフセットFrameNumOffsetの初期値としてMaxFrameNum（またはその整数倍の値）が設定される。そして、num_ref_frames_in_pic_order_cnt_cycleがMaxFrameNumの約数に設定されているので、前述した式（９）の剰余が０となり、式（９）の値が一意に定まる。
【００６２】
図５は、Ｈ．２６４のシーケンスパラメータセットを示す図である。シーケンスパラメータセットには、num_ref_frames_in_pic_order_cnt_cycleが格納されるフィールド５１と、変数ｉの値の範囲を示すフィールド５２と、参照フレームオフセットoffset_for_ref_frame[?i?]が格納されるフィールド５３がある。
本実施の形態においては、フィールド５１のnum_ref_frames_in_pic_order_cnt_cycleには、MaxFrameNumの約数が設定される。
【００６３】
図６は、スライスのフィールドを示す図である。スライスのフィールド６１には、フレーム番号frame_numが格納される。
図７は、変数ｉとoffset_for_ref_frame[i]の関係を示す図である。例えば、ｉ＝０のとき、offset_for_ref_frame[i]＝１、ｉ＝１のとき、offset_for_ref_frame[i]＝２、ｉ＝２のとき、offset_for_ref_frame[i]＝２の関係がある。
【００６４】
図８は、ＩＤＲから復号した場合と、リカバリポイントＳＥＩから復号した場合のパラメータの値とＰＯＣ差分を示す図である。
log2_max_frame_num_minus4＝０とすると、MaxFrameNum＝１６となる。本実施の形態では、num_ref_frames_in_pic_order_cnt_cycleを、MaxFrameNumの約数、例えば、num_ref_frames_in_pic_order_cnt_cycle＝８に設定する。
【００６５】
復号化装置３１においては、式（１０）の処理により、ＮＡＬユニットタイプが５のとき、つまりＩＤＲピクチャの復号の場合には、フレーム番号オフセットFrameNumOffsetは初期値として０が設定される。
【００６６】
ＩＤＲピクチャから復号した場合に、３０枚目のピクチャのフレーム番号オフセットFrameNumOffsetは３２、絶対フレーム番号absFrameNumは４６となる。そして、３０枚目のピクチャのTopFieldOrderCntの値は９４となる。
【００６７】
同様に３１枚目のピクチャのFrameNumOffsetは３２、absFrameNumは４７となる。そして、３１枚目のピクチャのTopFieldOrderCntは９６となる。この場合の前ピクチャとのＰＯＣ差分は２となる。
【００６８】
一方、リカバリポイントＳＥＩから復号した場合には、式（１０）により、フレーム番号オフセットFrameNumOffsetは、最大フレーム番号MaxFrameNumの整数倍の値に初期化される。この場合、MaxFrameNumは１６であるので、FrameNumOffsetは、例えば、１６となる。このとき、絶対フレーム番号MaxFrameNumは、式（７）のFrameNumOffset＋frame_num、となる。符号化装置１１から送られてくるフレーム番号frame_numは１４であるので、absFrameNumは、１６＋１４＝３０となる。このとき、３０枚目のピクチャのTopFieldOrderCntは６２となる。
【００６９】
同様に３１枚目のピクチャのFrameNumOffsetは１６、absFrameNumは３１となる。そして、３２枚目のピクチャのTopFieldOrderCntは６４となる。この場合の前ピクチャとのＰＯＣの差分は２となる。
【００７０】
ＩＤＲピクチャから復号した場合の前ピクチャとのＰＯＣ差分をTopFieldOrderCntの値から計算すると、３１枚目以降のピクチャの前ピクチャとのＰＯＣ差分は、図８に示すように「２，１，２，２，１・・・」となる。
【００７１】
一方、リカバリポイントＳＥＩから復号した場合の前ピクチャとのＰＯＣ差分は、図８に示すように「２、１、２、２、１・・・」となる。
実施の形態の符号化装置１１及び復号化装置３１によれば、ＩＤＲから復号した場合とリカバリポイントＳＥＩから復号した場合でＰＯＣの値は異なるが、ＰＯＣの差分は両者で同じ値となる。Ｈ．２６４においては、ＰＯＣの絶対値が正確である必要なく、ＰＯＣの相対値として正しい値が得られれば、ピクチャを正しい表示順で復号することができる。
【００７２】
従って、実施の形態の符号化及び復号化装置及びその符号化、復号化方法により、リカバリポイントＳＥＩを用いたランダムアクセス時にもピクチャを正しい表示順で復号できる。
また、Ｈ.２６４/ＭＰＥＧＡＶＣ規格のサブクラス７．４．２．１におけるnum_ref_frames_in_pic_order_cnt_cycleについての変更およびＨ.２６４/ＭＰＥＧＡＶＣ規格のサブクラス８．２．１．２におけるＰＯＣタイプ１の復号処理も変更することを以下のとおり提案する。
【００７３】
num_ref_frames_in_pic_order_cnt_cycleの変更について、以下のとおりに示す。
num_ref_frames_in_pic_order_cnt_cycle is used in the decoding process for picture order count as specified in subclause 8.2.1.   The value of num_ref_frames_in_pic_order_cnt_cycle shall be any divisor of MaxFrameNum andin the range of 0 to 255, inclusive. 
Proposed change on equation 8-6 is the following
if( nal_unit_type  = =  5 )
FrameNumOffset = 0
else if( prevFrameNumOffset is unknown )
FrameNumOffset = MaxFrameNum
else if( prevFrameNum > frame_num )
FrameNumOffset = prevFrameNumOffset + MaxFrameNum
else
FrameNumOffset = prevFrameNumOffset
RATIONALE
Equation 8-8 can be written as the following
frameNumInPicOrderCntCycle = (FrameNumOffset + frame_num - 1 ) % num_ref_frames_in_pic_order_cnt_cycle
If the value of num_ref_frames_in_pic_order_cnt_cycle is a divisor of MaxFrameNum, the result of (FrameNumOffset % num_ref_frames_in_pic_order_cnt_cycle) is always zero because FrameNumOffset is the product of MaxFrameNum and non-negative integer. Thus frameNumInPicOrderCntCycle in Equation 8-8 is independent of prevFrameNumOffset.
The values of absNumFrame in Equation 8-7 and frameNumInPicOrderCntCycle in Equation 8-8 for the first decoding picture are (MaxFrameNum + frame_num) and ((frame_num - 1) % num_ref_frames_in_pic_order_cnt_cycle), respectively.
（追記）
As the definition of MaxFrameNum is 2^{log2_max_frame_num_minus4}, num_ref_frames_in_pic_order_cnt_cycle should also be in the form of 2^N where N is non-negative integer.
【図面の簡単な説明】
【００７４】
【図１】符号化装置の要部を示す図である。
【図２】実施の形態の符号化処理のフローチャートである。
【図３】復号化装置の要部を示す図である。
【図４】実施の形態の復号化処理のフローチャートである。
【図５】シーケンスパラメータセットのフィールドを示す図である。
【図６】スライスのフィールドを示す図である。
【図７】変数ｉとoffset_for_ref_frame[ｉ]の関係を示す図である。
【図８】ＩＤＲから復号した場合とリカバリポイントＳＥＩから復号した場合の各フィールドの値とＰＯＣ差分を示す図である。
【図９】変数ｉとoffset_for_ref_frame[ｉ]の関係を示す図である。
【図１０】ｋの値とＰＯＣ差分の関係を示す図である。
【符号の説明】
【００７５】
１１          符号化装置
１４          直交変換部
１５          量子化部
１６          エントロピー符号化部
１７          パラメータ設定部
３１          復号化装置
３２          エントロピー復号化部
３３          初期化部
３４          逆量子化部
３５          逆直交変換部
【図１】
0004935746.tif 000002
【図２】
0004935746.tif 000003
【図３】
0004935746.tif 000004
【図４】
0004935746.tif 000005
【図５】
0004935746.tif 000006
【図６】
0004935746.tif 000007
【図７】
0004935746.tif 000008
【図８】
0004935746.tif 000009
【図９】
0004935746.tif 000010
【図１０】
0004935746.tif 000011