動画像データは、一般に非常に大きなデータ量を有する。そのため、動画像データを扱う装置は、動画像データを他の装置へ送信しようとする場合、あるいは、動画像データを記憶装置に記憶しようとする場合、動画像データを符号化することにより圧縮する。代表的な動画像の符号化標準として、International Standardization Organization/International Electrotechnical Commission(ISO/IEC)で策定されたMoving Picture Experts Group phase 2(MPEG-2)、MPEG-4、あるいはH.264 MPEG-4 Advanced Video Coding(MPEG-4 AVC/H.264)が広く利用されている。
このような符号化標準では、符号化対象のピクチャと、その前後のピクチャの情報とを用いて、符号化対象のピクチャを符号化するインター符号化方法、及び符号化対象ピクチャが持つ情報のみを用いて符号化するイントラ符号化方法が採用されている。また、インター符号化方法には、イントラ符号化ピクチャ(Iピクチャ)、一般的に過去のピクチャを予測ピクチャとする前方向予測ピクチャ(Pピクチャ)、及び一般的に過去のピクチャ及び未来のピクチャの両方を予測ピクチャとする双方向予測ピクチャ(Bピクチャ)、の3つのピクチャ種別が存在する。
一般に、インター符号化方法で符号化されたピクチャもしくはブロックの符号量は、イントラ符号化方法で符号化されたピクチャもしくはブロックの符号量に比べて小さい。このように、選択された符号化モードにより、シーケンス内でピクチャの符号量の偏りが生じる。同様に、選択された符号化モードにより、ピクチャ内でブロックの符号量の偏りが生じる。
そこで、符号量が時間的に変動しても、一定の伝送レートにて符号化された動画像を含むデータストリームを伝送できるように、伝送元の装置にデータストリーム用の送信バッファが用意され、また伝送先の装置にデータストリーム用の受信バッファが用意される。
MPEG-2及びMPEG-4 AVC/H.264では、それぞれVideo Buffering Verifier(VBV)とCoded Picture Buffer(CPB)と呼ばれる、理想的な動画像復号装置における受信バッファの動作が規定されている。なお、便宜上、以下では、理想的な動画像復号装置を単に理想復号装置と称する。理想復号装置は、復号処理に要する時間が0である瞬時復号を行うと規定されている。例えば、特許文献1にVBVに関する動画像符号化装置の制御方法が開示されている。
動画像符号化装置は、理想復号装置の受信バッファがオーバーフロー及びアンダーフローしないように、理想復号装置があるピクチャを復号する時刻にそのピクチャのデータが受信バッファに格納されていることを保証するように符号量を制御する。
受信バッファのアンダーフローは、動画像符号化装置が一定の伝送レートで符号化された動画像のデータストリームを送信した場合に、動画像復号装置が復号及び表示するべき時刻までにピクチャを復号するのに必要なデータの伝送が完了しない場合に生じる。すなわち、受信バッファのアンダーフローは、動画像復号装置の受信バッファ内にピクチャを復号するために必要データが存在していないことである。この場合、動画像復号装置は復号処理を行うことが出来ないため、フレームスキップが発生する。
動画像復号装置は、受信バッファのアンダーフローを起こさずに復号処理できるように、ストリームを受信時刻から所定の時間だけ遅延させてからピクチャを表示する。
上述したように、理想復号装置では、処理時間0で、瞬時的に復号処理が完了すると規定される。そのため、動画像符号化装置へのi番目ピクチャの入力時刻をt(i)、理想復号装置における、i番目ピクチャの復号時刻をtr(i)とすれば、そのピクチャが表示可能となる最も早い時刻は、tr(i)と等しい。全てのピクチャにおいてピクチャの表示期間{t(i+1)-t(i)}と{tr(i+1)-tr(i)}が等しくなるので、復号時刻tr(i)は、入力時刻t(i)から固定時間dly分だけ遅延させた時刻{tr(i)=t(i)+dly}となる。従って、動画像符号化装置は、時刻tr(i)までに復号に必要なデータを動画像復号装置の受信バッファに伝送完了させなければならない。
図1を参照しつつ、受信バッファの様子を説明する。図1において横軸は時刻を表し、縦軸は受信バッファのバッファ占有量を表す。そして実線のグラフ100は、各時刻におけるバッファ占有量を表す。
受信バッファでは、所定の伝送レートでバッファ占有量が回復し、各ピクチャの復号時刻にそのピクチャを復号するために用いられる分のデータがバッファから取り出される。i番目ピクチャのデータが、時刻at(i)から受信バッファに入力開始され、i番目ピクチャの最後のデータが時刻ft(i)に入力される。理想復号装置は時刻tr(i)でi番目ピクチャの復号を完了し、その時刻tr(i)においてi番目ピクチャが表示可能となる。ただし、Bピクチャが含まれる場合、ピクチャのリオーダ(符号化順序の入れ替え)が発生しているので、i番目ピクチャについての実際の表示時刻はtr(i)より遅くなることもある。
MPEG-4 AVC/H.264における、各ピクチャの復号時刻、及び表示時刻の記述方法の詳細を以下に説明する。
MPEG-4 AVC/H.264では、画素の復号処理に直接関係しない補足情報は、SEI(Supplemental enhancement information)メッセージで記述される。SEIは、数十種類が規定され、その種別はpayloadTypeパラメータによって識別される。このSEIはピクチャごとに付加される。
再引き込みが可能なピクチャ、すなわち、過去のピクチャがなくても復号可能なピクチャ(一般的にはIピクチャ)には、SEIの一つであるBPSEI(Buffering Period SEI)が付加される。BPSEIには、パラメータInitialCpbRemovalDelayが記述される。パラメータInitialCpbRemovalDelayは、BPSEIが付加されたピクチャの先頭ビットの受信バッファへの到達時刻と、BPSEIが付加されたピクチャの復号時刻との差分値を表す。この差分値の精度は90kHzである。
先頭ピクチャの復号時刻tr(0)は、符号化動画像データの先頭ビットが動画像復号装置に到達した時刻(0とする)、すなわちat(0)からInitialCpbRemovalDelay ÷ 90,000 [sec]だけ遅れた時刻になる。
また、各ピクチャには、一般的に、SEIの一つであるPTSEI(Picture Timing SEI)が付加される。PTSEIには、パラメータCpbRemovalDelay及びDpbOutputDelayが記述される。パラメータCpbRemovalDelayは、直前のBPSEI付加ピクチャの復号時刻とPTSEIが付加されたピクチャの復号時刻との差分値を表す。またパラメータDpbOutputDelayは、PTSEIが付加されたピクチャの復号時刻とそのピクチャの表示時刻との差分値を表す。これら差分値の精度は、1フィールドピクチャ間隔である。したがって、ピクチャがフレームである場合には、パラメータCpbRemovalDelay及びDpbOutputDelayは2の倍数となる。
2番目以降のピクチャの復号時刻tr(i)は、先頭ピクチャの復号時刻tr(0)から、tc * CpbRemovalDelay(i) [sec]だけ遅れた時刻になる。CpbRemovalDelay(i)はi番目のピクチャに付加されるCpbRemovalDelayである。tcはピクチャ間の時間間隔[sec]であり、例えば29.97Hzのプログレッシブ画像の場合、tcは1001/60000である。
BPSEIが付加されたピクチャを含む、各ピクチャの表示時刻は、tr(i)からtc * DpbOutputDelay(i)だけ遅れた時刻になる。DpbOutputDelay(i)はi番目のピクチャに付加されるDpbOutputDelayである。すなわち、時刻tr(0)以降は、tcの整数倍の時刻単位で、ピクチャの復号及び表示が行われる。
動画像データの用途によっては、符号化動画像が編集されることがある。符号化動画像の編集操作は、符号化動画像データを細分化し、それらをつなぎ合わせて別の符号化動画像データを生成するものである。例えば、放送中の符号化動画像の途中に別番組(例えばCM)を挿入する処理(スプライシング)は編集操作の一つである。
フレーム間予測符号化された動画像の編集において、特にインター符号化されたピクチャは、その符号化ピクチャ単独では正常復号できない。そのため、任意のピクチャ位置で二つの符号化動画像データを結合するには、符号化動画像データを編集する装置は、一度結合する二つの符号化動画像データを復号して、復号されたピクチャ単位で結合したのち、その結合された動画像データを再度符号化する。
しかし再符号化処理は煩雑であるため、特にスプライシングといったリアルタイム処理では、結合位置を限定することで、再符号化処理を行わずに符号化動画像データを直接編集することが一般的である。再符号化処理を行わずに符号化動画像データを編集する場合、結合する二つの符号化動画像データのうち、時間的に後ろ側に結合される符号化動画像データの先頭ピクチャはIピクチャとする。また、時間的に後ろ側に結合される符号化動画像データでは、いわゆるクローズドGOP構造、すなわち先頭Iピクチャに続く全てのピクチャが、先頭Iピクチャよりも時間的に過去のピクチャを参照しないように制限される。これにより、編集により所定の結合点にて結合された二つの符号化動画像データのうちの後側の符号化動画像データの先頭Iピクチャ以降の全てのピクチャが正常復号可能となる。
なお、クローズドGOP構造は、非クローズドGOP構造に比べ符号化効率が低下するため、非クローズドGOP構造が採用されることもある。この場合、結合点後の先頭Iピクチャの直後のいくつかのピクチャは正常に復号されないが、それらのピクチャは表示時間的に先頭Iピクチャより先に表示されるピクチャであるため、表示できなくてもよい。そこで、動画像復号装置は、一般的に、結合された二つの符号化動画像データのうち、時間的に前側の符号化動画像データの最終ピクチャを表示後、表示をフリーズするなどして正常復号できなかったピクチャの表示をマスキングする。
従来技術では、フレーム間予測符号化された動画像データが再符号化処理されずに編集された場合でも、結合した二つの符号化動画像データの間で齟齬が生じないように、ヘッダ情報も修正される。
例えば、MPEG-4 AVC/H.264において、ピクチャ間の時間的な関係、及び参照ピクチャの特定のために、スライスヘッダにPOC (Picture Order Count)及びFrameNumが付加される。POCは、相対的なピクチャの表示順番を表す。FrameNumは、符号化動画像中に参照ピクチャが出現する度に1だけ増加する値である。結合した二つの符号化動画像データの間でPOC及びFrameNumが連続する必要があるため、結合する二つの符号化動画像データの内、後ろ側の符号化動画像データの全てのPOC及びFrameNumを書き換える必要が生じる。
一方、非特許文献1に開示された方式では、新たな参照ピクチャの特定方法が導入されたため、FrameNumが廃止されている。また結合する二つの符号化動画像データのうち、後ろ側の符号化動画像データの先頭ピクチャのPOC値は、前側の符号化動画像データとの連続性を持たなくてもよいため、スライスヘッダの変更は不要になる。非特許文献1に開示された方式では、ピクチャの種別として、MPEG-4 AVC/H.264が規定するIDR (Instantaneous Decoding Refresh)ピクチャに加え、CRA (Clean Random Access)ピクチャ、BLA (Broken Link Access)ピクチャ、TFD (Tagged For Discard)ピクチャ、DLP (Decodable Leading Picture)ピクチャ、TP (Trailing Picture)ピクチャが新たに導入されている。
このうち、CRAピクチャ及びBLAピクチャは、共に、再引き込みポイントとなるピクチャである。再引き込みポイントとなるピクチャは、そのピクチャの復号において他のピクチャを参照しないピクチャである。動画像復号装置がCRAピクチャ及びBLAピクチャから復号動作を開始した場合、このCRAピクチャもしくはBLAピクチャの直後に続くTFDピクチャ以外は正常に復号可能である。
TFDピクチャは、CRAピクチャまたはBLAピクチャの直後に出現する、CRAピクチャまたはBLAピクチャよりも時間的及び復号順番的に前のピクチャを参照するピクチャである。MPEG-2に準拠する非クローズドGOP構造の場合、GOP先頭のIピクチャの直後の複数のBピクチャがTFDピクチャに相当する。
BLAピクチャは、符号化動画像データの編集操作により発生する。結合する二つの符号化動画像データのうち、後ろ側の符号化動画像データの先頭ピクチャは一般にはCRAピクチャであるが、このCRAピクチャが、結合された符号化動画像データの途中に位置する場合には、CRAピクチャからBLAピクチャに種別変更される。非特許文献1に開示された方式では、BLAピクチャが出現する場合、POC値が不連続になることが許容される。また、このBLAピクチャの直後のTFDピクチャは、結合した符号化動画像データでは、参照されるべきピクチャが失われているので、その符号化動画像データのどこから復号しても正常に復号できない。そのため、動画像符号化装置は、結合する二つの符号化動画像データのうち、後ろ側の符号化動画像データの先頭BLAピクチャに後続するTFDピクチャを符号化動画像データから削除してもよい。
DLPピクチャは、TFDピクチャと同様に、CRAピクチャまたはBLAピクチャの直後に出現するピクチャである。DLPピクチャは、TDFピクチャと異なり、CRAピクチャまたはBLAピクチャよりも時間的及び復号順番的に前のピクチャを参照しない。このため、DLPピクチャは、CRAピクチャまたはBLAピクチャから復号が開始された場合にも、正常に復号できる。
TPピクチャは、CRAピクチャまたはBLAピクチャ、TFDピクチャ、DLPピクチャよりも復号順番的に後に出現し、またCRAピクチャまたはBLAピクチャよりも時間的に後のピクチャである。したがって、TPピクチャは、CRAピクチャまたはBLAピクチャから復号が開始された場合にも、正常に復号できる。
以下、図を参照しつつ、様々な実施形態による、動画像符号化装置及び動画像復号装置について説明する。この動画像符号化装置は、二つの符号化動画像データを、復号せずに結合する際に、結合点以降のピクチャについての復号時刻及び表示時刻を表すパラメータを修正するために利用される値を算出し、その値を結合点以降のピクチャのヘッダ情報に付加する。これにより、この動画像符号化装置は、二つの符号化動画像データを結合する場合でも、元の符号化動画像データのヘッダ内パラメータの書き換えを不要とする。
本実施形態では、ピクチャは、フレームである。ただし、ピクチャはフレームに限られず、フィールドであってもよい。フレームは、動画像データ中の一つの静止画像であり、一方、フィールドは、フレームから奇数行のデータあるいは偶数行のデータのみを取り出すことにより得られる静止画像である。また、符号化された動画像は、カラー動画像であってもよく、あるいは、モノクロ動画像であってもよい。
図2を参照しつつ、最初に、第1の実施形態における、ピクチャの復号遅延CpbRemovalDelay、及び表示遅延DpbOutputDelayの値について、一つのピクチャ符号化構造を例として説明する。
図2において、ピクチャ符号化構造の一例であるピクチャ符号化構造201は、複数のピクチャを含む。ピクチャ符号化構造201内の一つのブロックが一つのピクチャを表す。各ピクチャに相当するブロックの内部に示された二つの文字のうち、左側の一文字のアルファベットは、そのピクチャに対して適用される符号化モードを表す。I, P, Bはそれぞれ、Iピクチャ、Pピクチャ、Bピクチャを意味する。また、ブロックの内部に示された二つの文字のうちの右側の数字は、動画像符号化装置へ入力される順番である。なお、入力順番は、動画像復号装置から出力される順番と一致する。ピクチャ符号化構造201の上側に示された矢印は、前方向フレーム予測において符号化されるピクチャが参照する参照ピクチャを表す。例えば、ピクチャP4は、ピクチャP4よりも前に位置するピクチャI0を参照する。同様に、ピクチャ符号化構造201の下側に示された矢印は、後方向フレーム予測において符号化されるピクチャが参照する参照ピクチャを表す。例えば、ピクチャB2は、ピクチャB2よりも後に位置するピクチャP4を参照する。
ピクチャ符号化構造201の下側には、動画像復号装置における、ピクチャ符号化構造201に含まれる各ピクチャの復号順序202が示される。復号順序202に示された各ブロックは、それぞれ、一つのピクチャを表し、かつ、各ブロック内の文字は、ピクチャ符号化構造201と同様に、符号化モード及び動画像符号化装置への入力の順番を表す。なお、この復号順序202は、動画像符号化装置による符号化の順序と一致する。各ピクチャの復号順序202の上側、及び下側に示された矢印はそれぞれ、前方向フレーム予測において符号化されるピクチャが参照する参照ピクチャ、後方向フレーム予測において符号化されるピクチャが参照する参照ピクチャを表す。
復号順序202において、下側に"BPSEI"という文字が書かれたピクチャには、BPSEIが付加される。この例では、全てのIピクチャにBPSEIが付加される。すなわち、全てのIピクチャに、Iピクチャの先頭ビットの受信バッファへの到達時刻と、Iピクチャの復号時刻との差分値を表すパラメータInitialCpbRemovalDelayが記述される。
復号順序202の下側に示されたブロック列203は、各ピクチャに付加されるPTSEIに含まれるCpbRemovalDelay及びDpbOutputDelayの値を表す。ブロック列203のうちの上側の各ブロックには、それぞれ、そのブロックの上に位置する復号順序202のピクチャのCpbRemovalDelayの値が示される。一方、ブロック列203のうちの下側の各ブロックには、それぞれ、そのブロックの上に位置する復号順序202のピクチャのDpbOutputDelayの値が示される。CpbRemovalDelayは、BPSEIが付加されたピクチャのうち、符号化順で直前のピクチャからの符号化の順番に相当する。例えば、ピクチャP8は、ピクチャI0から符号化順で5番目である。そして本実施形態では、各ピクチャはフレームであり、ピクチャ間の時間間隔tcがフィールド単位の値であるので、ピクチャP8のCpbRemovalDelayは10(=5*2)となる。
一方、DpbOutputDelayは、動画像復号装置において、各ピクチャを連続して正しい順番で出力するための、表示遅延である。例えばピクチャP4は、DpbOutputDelayが10になっている。これは動画像符号化装置において、入力順番と符号化順番との差が最も大きいピクチャB1を正しく表示するために必要な遅延である。すなわち、ピクチャB1は、ピクチャP4の復号時刻から2ピクチャ時間後に復号されるため、ピクチャP4の表示時刻は、ピクチャB1が表示可能となる最も早い時刻、すなわちピクチャB1の復号時刻から、更に3ピクチャ時間後に表示するようにしなければならない。ピクチャP4の復号時刻と表示時刻との差は5ピクチャ時間になり、DpbOutputDelayは、tcがフィールド単位であることから10となる。
次に、図3を参照しつつ、二つの符号化動画像データを結合した場合に、その二つの符号化動画像データの結合点前後で復号遅延及び表示遅延に矛盾が無いようにするために、結合点より後ろ側の符号化動画像データのピクチャでの復号遅延CpbRemovalDelay及び表示遅延DpbOutputDelayのとるべき値について説明する。
結合点よりも前側に結合される第1の動画像符号化データ301に示された各ブロックは、それぞれ、一つのピクチャを表し、かつ、各ブロック内の文字は、図2と同様に、符号化モード及び動画像符号化装置への入力の順番を表す。この例では、第1の動画像符号化データ301の符号化構造は、図2に示された符号化構造201と同一である。
この例では、第1の動画像符号化データの最後のピクチャB15の直後に、第2の動画像符号化データ302を結合する。第2の動画像符号化データ302についても、各ブロックは、それぞれ、一つのピクチャを表し、かつ、各ブロック内の文字は、符号化モード及び動画像符号化装置への入力の順番を表す。第2の動画像符号化データ302の上側に示された矢印は、それぞれ、符号化されるピクチャB70、B69、B71が前方向フレーム予測において参照する参照ピクチャを表す。また、第2の動画像符号化データ302の下側に示された矢印は、それぞれ、符号化されるピクチャB70、B69、B71が後方向フレーム予測において参照する参照ピクチャを表す。第2の動画像符号化データ302の符号化構造は、ピクチャB70、B69、B71を除き図2に示された符号化構造201と同一である。ピクチャB70、B69、B71の符号化順序は図2に示された符号化構造201に含まれる双方向予測ピクチャの符号化順序と同一である。しかし、ピクチャB70、B69、B71の参照ピクチャは、符号化構造201に含まれる双方向予測ピクチャの参照ピクチャと異なる。ピクチャB70、B71は表示時刻が後のピクチャ、即ちピクチャI72のみを参照する。一方、ピクチャB69は表示時刻が前のピクチャ、即ちI68のみを参照する。このような状況は、例えば、ピクチャB69とピクチャB70との間にシーンチェンジがある場合に生じる。シーンチェンジ境界にて、画像が大きく変化するため、シーンチェンジ境界の近くに位置する双方向予測ピクチャは、より予測効率の良い、シーンチェンジ境界と比べて同じ側にあるピクチャのみを参照するようになる。この例では、B69がTFDピクチャであり、B70及びB71がDLPピクチャである。この例では、第2の動画像符号化データ302のうち、ピクチャI72以降のピクチャが、第1の動画像符号化データのピクチャB15の後に結合される。なお、非特許文献1の方式では、TFDピクチャの表示時刻はDLPピクチャの表示時刻よりも早いこと、及びDLPピクチャは、TPピクチャから参照されないこと、という制約が設けられている。
第2の動画像符号化データ302の下側に示されたブロック列303は、第2の動画像符号化データ302の各ピクチャに付加されるPTSEIに含まれる復号遅延CpbRemovalDelay及び表示遅延DpbOutputDelayの値を表す。ブロック列303のうちの上側の各ブロックには、それぞれ、そのブロックの上に位置する第2の動画像符号化データ302のピクチャの復号遅延CpbRemovalDelayの値が示される。一方、ブロック列303のうちの下側の各ブロックには、それぞれ、そのブロックの上に位置する第2の動画像符号化データ302のピクチャの表示遅延DpbOutputDelayの値が示される。
ブロック列303の下側には、第1の動画像符号化データ301と第2の動画像符号化データ302とが結合された結合動画像符号化データ304が示されている。この例では、結合動画像符号化データ304において、第2の動画像符号化データ302のうちのピクチャB67及び符号化順序でピクチャB67よりも前の符号化ピクチャは含まれない。また、ピクチャB69は、符号化順序でピクチャI72よりも前の符号化ピクチャであるピクチャI68を参照するTFDピクチャである。そのため、ピクチャI72で結合されると、ピクチャB69は正常再生できなくなる。よって、ピクチャB69は結合時に除去される。ただし、ピクチャB69は、除去されずに、結合動画像符号化データ内に残されてもよい。ピクチャB70,B71は、符号化順序でピクチャI72よりも前の符号化ピクチャを参照しないDLPピクチャであり、正常再生が可能である。なおピクチャB70,B71は、P76以降のピクチャから参照されないため、ピクチャB70,B71をTFDピクチャ69と同時に除去しても、P76以降のピクチャの再生に影響しない。
ブロック列305は、結合動画像符号化データ304における、ピクチャI72、B70、B71、P76、B74、B73、B75が持つべき復号遅延CpbRemovalDelay及び表示遅延DpbOutputDelayの値を示す。ブロック列305のうちの上側の各ブロックには、それぞれ、そのブロックの上に位置する結合動画像符号化データ304のピクチャの復号遅延CpbRemovalDelayの値が示される。一方、ブロック列305のうちの下側の各ブロックには、それぞれ、そのブロックの上に位置する結合動画像符号化データ304のピクチャの表示遅延DpbOutputDelayの値が示される。
ピクチャI72の復号遅延CpbRemovalDelayは、結合後に、直前のBPSEIを持つピクチャであるピクチャI12との符号化ピクチャ間隔に合わせる必要がある。この例では、ピクチャI72は、符号化順序に従うとピクチャI12から8番目であるので、復号遅延CpbRemovalDelayは16(=8*2)となる。またピクチャI72の表示遅延DpbOutputDelayも、ピクチャI72よりも後に復号されるピクチャB73を正しく表示するために修正される必要がある。ピクチャI72の表示遅延DpbOutputDelayの値は、ピクチャB69を除去する前と除去した後とで異なる。ピクチャB69を除去した後の表示遅延DpbOutputDelayの値は、復号順番でI72より後の除去ピクチャについての、その除去ピクチャと復号順序で直前のピクチャとの復号時間の差である復号間隔分だけ減少する。この例ではピクチャB69が除去されるピクチャに該当し、B69の復号間隔(B69の復号時刻と、復号順番で直前のピクチャであるB70の復号時刻との差分)は2であるので、ピクチャI72の表示遅延DpbOutputDelayの値は2となる。同様に、ピクチャB70の表示遅延DpbOutputDelayも、復号順番でB70より後の除去ピクチャの復号間隔分、即ち2だけ減少し、2となる。
さらに、ピクチャB71、P76、B74、B73、B75の復号遅延CpbRemovalDelayは、ピクチャB69を除去する前と除去した後とで異なる。ピクチャB69を除去した後のピクチャB71、P76、B74、B73、B75の復号遅延CpbRemovalDelayの値は、それぞれ、除去する前の復号遅延CpbRemovalDelayの値から、復号順番でそれぞれのピクチャI72より前の除去ピクチャの復号間隔分だけ減少する。この例では、ピクチャB71, P76, B74, B73, B75の復号遅延CpbRemovalDelayの値は、それぞれ、元の復号遅延CpbRemovalDelayの値から、TFDピクチャB69の復号間隔2を引いた、4、6、8、10、12となる。なお、DLPピクチャB70については、復号順番でB70よりも前の除去ピクチャがないため、ピクチャB69が除去されてもCpbRemovalDelayの値は不変である。さらに、ピクチャP76、B74、B73、B75については、表示遅延DpbOutputDelayの値は不変である。さらに、結合後の最初のCRAとなるピクチャよりも入力順序で後になるピクチャについては、復号遅延CpbRemovalDelay及び表示遅延DpbOutputDelayの何れも修正する必要はない。
上記のように、二つの符号化動画像データを結合することにより、その結合点よりも後の符号化動画像データに含まれる幾つかのピクチャについては、復号の際に、復号遅延CpbRemovalDelay及び表示遅延DpbOutputDelayを修正する必要がある。そこで、本実施形態では、動画像符号化装置が、結合前の元の動画像符号化データに含まれるピクチャの復号遅延CpbRemovalDelay及び表示遅延DpbOutputDelayの値を修正しなくても、動画像復号装置が、結合動画像符号化データを復号する際に、復号遅延CpbRemovalDelay及び表示遅延DpbOutputDelayの値を適切な値に書き換えるために利用可能なパラメータが、動画像符号化データのヘッダに追加される。
図4を参照しつつ、第1の実施形態における、復号遅延CpbRemovalDelay及び表示遅延DpbOutputDelayの値を適切な値に書き換えるために利用可能なパラメータを含む、符号化動画像データの構造を説明する。
図4に示されるように、一つのピクチャのデータ構造400は、6種類のNetwork Abstraction Layer(NAL) unit410〜415を含む。これらのNAL unit410〜415は、いずれも、非特許文献1の方式及び、MPEG-4 AVC/H.264のNAL unitに準拠する。各NAL unitにはヘッダNUH420が付加される。ヘッダNUH420は、各NAL unitのタイプを表すNalUnitTypeフィールドを含む。NalUnitTypeが'1'もしくは'2'の場合は、TPピクチャであることを表す。NalUnitTypeが'7'の場合は、TFDピクチャ及びDLPピクチャが直後に出現する可能性がある、再引き込み可能なBLAピクチャであることを表す。NalUnitTypeが'8'の場合は、DLPピクチャが直後に出現する可能性がある、再引き込み可能なBLAピクチャであることを表す。NalUnitTypeが'9'の場合は、TFDピクチャ及びDLPピクチャが直後に出現しない、再引き込み可能なBLAピクチャであることを表す。NalUnitTypeが'12'の場合は、再引き込み可能なCRAピクチャであることを表す。NalUnitTypeが'13'の場合は、DLPピクチャであることを表す。NalUnitTypeが'14'の場合は、TFDピクチャであることを表す。
なお、各ピクチャのNalUnitTypeの値は、上記の値以外に設定されてもよい。
以下、各NAL unitについて説明する。
NAL unit410は、デリミタ(DELIM)NAL unitであり、ピクチャの境界であることを示す。
NAL unit411は、シーケンスパラメータセット(SPS)NAL unitであり、SPS NAL unit411には、符号化動画像のシーケンス全体に渡って共通なパラメータが記述される。SPS NAL unit 411は、再引き込みが可能なピクチャに付加される。
NAL unit412は、ピクチャパラメータセット(PPS)NAL unitであり、PPS NAL unit412には、複数の符号化ピクチャで共通なパラメータが記述される。PPS NAL unit412は、再引き込みが可能なピクチャに付加されるほか、他のピクチャにも付加されることがある。
NAL unit413は、BPSEI NAL unitであり、BPSEI NAL unit413は再引き込みが可能なピクチャにのみ付加される。本実施形態では、このBPSEI NAL unit413に、動画像復号装置にて結合点以降のピクチャの復号遅延と表示遅延とを修正するために利用されるパラメータが追加される。
NAL unit414は、PTSEI NAL unitであり、PTSEI NAL unit414は各ピクチャに付加される。
NAL unit415は、スライス(SLICE)NAL unitであり、符号化されたピクチャの実体である。
本実施形態による、BPSEI NAL unit413は、(N+1)個(ただし、Nは0以上の整数)のInitialCpbRemovalDelayフィールドとInitialCpbRemovalDelayOffsetフィールドの組を含む。これらのフィールドの定義は非特許文献1の方式及び、MPEG-4 AVC/H.264と同等であってもよい。
なお、InitialCpbRemovalDelayフィールド及びInitialCpbRemovalDelayOffsetフィールドが複数存在するのは、符号化ビットストリームを(N+1)の種類のビットレートで伝送した場合に適したInitialCpbRemovalDelay及びInitialCpbRemovalDelayOffsetを記述するためである。なおInitialCpbRemovalDelayOffsetは、動画像符号化装置における最初のピクチャの符号化完了時刻と、動画像復号装置に対して符号化ピクチャデータの伝送を開始する時刻との差分を表す。
PTSEI NAL unit414は、復号遅延CpbRemovalDelayフィールドと、表示遅延DpbOutputDelayフィールドと、NumRemovedTfdsフィールドとを含む。NumRemovedTfdsフィールドは、復号遅延と表示遅延の補正に利用される補正情報の一例である。NumRemovedTfdsフィールドには、PTSEIが付加されたピクチャから、復号順番で次のBPSEI付加ピクチャまでの間で、除去されたピクチャの復号間隔の総和が記述される。ピクチャの復号間隔とは、このピクチャに付加されたPTSEIのCpbRemovalDelayフィールド値から、復号順番で直前のピクチャに付加されたPTSEIのCpbRemovalDelayフィールド値を引いた値と定義される。なお、復号順番で直前のピクチャがBLAピクチャの場合は、BLAピクチャに付加されたPTSEIのCpbRemovalDelayフィールド値を0として扱う。符号化ビットストリームを生成した段階では、NumRemovedTfdsフィールド値は0とする。
図5は、第1の実施形態による、動画像符号化装置の概略構成図である。動画像符号化装置1は、制御部11と、符号化制御部12と、ピクチャ符号化部13と、結合点識別情報処理部14と、データ結合部15とを有する。動画像符号化装置1が有するこれらの各部は、それぞれ、別個の回路として動画像符号化装置1に実装される。あるいは、動画像符号化装置1が有するこれらの各部は、その各部の機能を実現する回路が集積された一つの集積回路として動画像符号化装置1に実装されてもよい。あるいはまた、動画像符号化装置1が有するこれらの各部は、動画像符号化装置1が有するプロセッサ上で実行されるコンピュータプログラムにより実現される機能モジュールであってもよい。
制御部11は、動画像データを符号化する際、または符号化動画像データの編集操作を実行する際、動画像符号化装置1の各部の処理を制御する。例えば、制御部11は、シーンチェンジの位置等の動画像データの性質、要求される符号化動画像データの再生画質、圧縮率などに基づいて、符号化しようとする動画像データに対して適用するGOP構造などを決定する。そして制御部11は、GOP構造などを符号化制御部12へ通知する。
まず、動画像データを符号化する動画像符号化処理について説明する。動画像符号化処理では、符号化制御部12及びピクチャ符号化部13が用いられる。
符号化制御部12は、制御部11から通知されたGOP構造に応じて、各ピクチャの符号化順番、符号化モード(例えば、イントラ符号化モード、前方向予測モード、及び双方向予測モードのうちの何れか)などを決定する。そして符号化制御部12は、各ピクチャの符号化モード、GOP構造中の位置等に応じて、CRAピクチャの挿入間隔、符号化時のリオーダリングピクチャ数、及び最大表示遅延を決定する。図2に示された例では、CRAピクチャの挿入間隔は12、リオーダリングピクチャ数は2、最大表示遅延は5である。さらに符号化制御部12は、これらの値に応じて、各ピクチャのヘッダ情報を生成する。
例えば、ピクチャの種別がIピクチャ(CRAピクチャ)、すなわち、他のピクチャを参照せずに符号化されるピクチャで、そのピクチャが符号化動画像データの先頭ピクチャでない場合には、符号化制御部12は、ピクチャ内の各スライスのNUH720のNalUnitTypeを'12'に設定する。符号化動画像データの先頭ピクチャ内の各スライスのNUH720のNalUnitTypeは、10(IDRピクチャ)に設定される。またリオーダリングピクチャ数が1以上の場合、CRAピクチャの直後の、CRAピクチャよりも復号順番及び表示順番が早いピクチャを参照するピクチャについて、符号化制御部12は、NalUnitTypeを'14'(TFDピクチャ)とする。またCRAピクチャの直後の、表示時刻がCRAピクチャより前であり、かつCRAピクチャよりも復号順番及び表示順番が早いピクチャを参照しないピクチャについて、符号化制御部12は、NalUnitTypeを'13'(DLPピクチャ)とする。それ以外のピクチャについては、符号化制御部12は、NalUnitTypeを'1'もしくは'2'(TPピクチャ)とする。
符号化制御部12は、ピクチャ符号化部13に対し、符号化するピクチャ内の各スライスヘッダのNUH720のNalUnitTypeを通知する。また、符号化制御部12は、各ピクチャのPTSEI内の復号遅延CpbRemovalDelay及び表示遅延DpbOutputDelayを、図2のように、ピクチャの予測構造から求め、通知する。
さらに、ピクチャ内の各スライスのNUH720のNalUnitTypeが'10'もしくは'12'の場合、符号化制御部12は、そのピクチャにBPSEIを付加する。
符号化制御部12は、ピクチャごとに、ピクチャ符号化部13に、その符号化モード及びヘッダ情報を通知するとともに、ピクチャの符号化を指示する。
ピクチャ符号化部13は、符号化制御部12からの指示に従い、フレーム間予測符号化が可能な動画像符号化方式の何れかに準拠して、該当ピクチャを指定された符号化モードで符号化する。ピクチャ符号化部13が準拠する動画像符号化方式は、例えば、MPEG-4 AVC/H.264またはMPEG-2とすることができる。そしてピクチャ符号化部13は、符号化された各ピクチャを含む、符号化動画像データを記憶部(図示せず)に記憶する。
次に、二つの符号化動画像データを結合する際の編集処理について説明する。結合点識別情報処理部14及びデータ結合部15は、この編集処理において用いられる。
結合点識別情報処理部14は、例えば、図示しないユーザインターフェース部を介して選択された二つの符号化動画像データを記憶部(図示せず)から読み出す。そして結合点識別情報処理部14は、図示しない外部からの制御信号に従い、その二つの符号化動画像データのうち、時間的に後側に結合される第2の符号化動画像データ内の結合点先頭ピクチャを特定する。外部からの制御信号は、例えば、第2の符号化動画像データ内の、先頭からの符号化ピクチャ数であり、結合点識別情報処理部14は、例えば、この符号化ピクチャ数以前で最も遅いCRAピクチャを結合点とする。
結合点識別情報処理部14は、結合点のCRAピクチャについて、リオーダリング数が1以上である場合、そのピクチャのスライスのNalUnitTypeを'12'からTFDピクチャが出現する可能性があるBLAピクチャであることを表す'7'に書き換える。すなわち、このNalUnitTypeの値が、二つの符号化動画像データがその結合点において結合されたこと、及び、結合点のBLAピクチャよりも符号化順序及び復号順序が後の1以上の符号化ピクチャが除去されたことを示す。また結合点識別情報処理部14は、データ結合部15に対し、第2の符号化動画像データ内の結合点のCRAピクチャ以降の全ピクチャを出力するとともに、結合点CRAピクチャの直後のTFDピクチャを除去する指示を出す。一方、リオーダリング数が0である場合、結合点識別情報処理部14は、結合点のCRAピクチャについて、そのピクチャのスライスのNalUnitTypeを'12'からTFDピクチャ及びDLPピクチャが直後に出現しないBLAピクチャであることを表す'9'に書き換える。
次に、結合点識別情報処理部14は、除去すべきTFDピクチャの復号間隔を算出し、除去すべきTFDピクチャの直前の非TFDピクチャのNumRemovedTfdsフィールドの値を、この非TFDピクチャに後続する、除去したTFDピクチャの復号間隔だけ加算する。各ピクチャの復号間隔が等しい場合には、最終的に、非TFDピクチャのNumRemovedTfdsフィールドの値は、そのピクチャよりも復号順序が後で、かつ、削除されたピクチャのフィールド単位の枚数となる。そして結合点識別情報処理部14は、第2の符号化動画像データ中の、除去されるTFDピクチャよりも復号順番が早いピクチャについて、付加されたPTSEIのNumRemovedTfdsフィールドの値を変更する。
データ結合部15は、結合点よりも時間的に前に結合される第1の符号化動画像データの後に、結合点識別情報処理部14から出力された第2の符号化動画像データを結合する。この時、データ結合部15は、第2の符号化動画像データ中の、先頭ピクチャの直後の、正常復号が保証されないTFDピクチャを除去する。なお、この場合、データ結合部15は、DLPピクチャもTFDピクチャとみなして除去してもよい。
そしてデータ結合部15は、第1の符号化動画像データと第2の符号化動画像データを結合することにより得られた結合符号化動画像データを記憶部(図示せず)に記憶する。
図6は、第1の実施例による動画像符号化装置により実行される動画像符号化処理の動作フローチャートである。なお、図6に示される動作フローチャートにしたがって、動画像符号化装置1は、符号化対象の動画像シーケンス全体を符号化する。
シーケンス全体の符号化処理開始に先立ち、例えば、制御部11によって、GOP構造など、ピクチャ予測構造が決定される(ステップS101)。そしてそのピクチャ予測構造が符号化制御部12へ通知される。
符号化制御部12は、通知されたピクチャ予測構造、及び、動画像データの先頭からの符号化対象ピクチャの位置などに基づいて符号化対象ピクチャに適用される符号化モードを決定し、かつ、その符号化対象ピクチャのヘッダ情報を生成する(ステップS102)。
ステップS102の後、符号化制御部12は、符号化対象ピクチャのデータ、そのピクチャの符号化モード及びヘッダ情報を符号化部13へ通知する。そして符号化部13は、通知された符号化モード及びヘッダ情報に従って、符号化対象ピクチャを符号化し、その符号化されたピクチャのデータにヘッダ情報を付加する(ステップS103)。
その後、制御部11は、動画像シーケンス内に未符号化ピクチャがあるか否か判定する(ステップS104)。未符号化ピクチャがある場合(ステップS104−Yes)、制御部11は、次の未符号化ピクチャを符号化対象ピクチャとして、ステップS102以降の処理を実行する。
一方、未符号化ピクチャがない場合(ステップS104−No)、制御部11は、符号化処理を終了する。
図7は、第1の実施例による動画像符号化装置により実行される動画像編集処理の動作フローチャートである。この例では、DLPピクチャは削除されず、TFDピクチャのみが削除されるものとする。
結合点識別情報処理部14は、TFDピクチャ及びDLPピクチャのうち、削除されなかったピクチャのリストL[]を初期化し、その削除されなかったピクチャの数に2を加算した値を表す変数mを2に初期化する(ステップS201)。なお、変数mは、復号順序で最後のDLPピクチャの後にTFDピクチャが出現しなければ、TFDピクチャ及びDLPピクチャのうち、削除されなかったピクチャの数としてもよい。
次に、結合点よりも前に結合される第1の符号化動画像データのうち、結合点までの符号化ピクチャを順次記憶部(図示せず)から読み出す(ステップS202)。
また結合点識別情報処理部14は、結合点よりも後に結合される第2の符号化動画像データのうち、結合点以降の符号化ピクチャを順次記憶部(図示せず)から読み出す(ステップS203)。次に、結合点識別情報処理部14は、第2の符号化動画像データのうち、読み出された先頭CRAピクチャに対し、各スライスのNUHのNalUnitTypeの値を、BLAピクチャであることを表す値に書き換える(ステップS204)。
次に、結合点識別情報処理部14は、復号順番で次のピクチャのNalUnitTypeが'14'か否か、すなわち、TFDピクチャか否か判定する(ステップS205)。TFDピクチャの場合(ステップS205−Yes)、結合点識別情報処理部14は、TFDピクチャを削除する指示を結合部15へ出力し、かつ、そのTFDピクチャの復号間隔、即ち復号順番でそのTFDピクチャと直前のピクチャとの、PTSEIのCpbRemovalDelay値の差分をリスト[]の0番目からm番目のエントリにそれぞれ加算する(ステップS206)。その後、結合点識別情報処理部14は、ステップS205に戻り、次のピクチャのNalUnitTypeを評価する。
一方、TFDピクチャでない場合(ステップS205−No)、結合点識別情報処理部14は、復号順番で次のピクチャのNalUnitTypeが'13'か否か、すなわち、DLPピクチャか否か判定する(ステップS207)。次のピクチャがDLPピクチャの場合(ステップS207−Yes)、結合点識別情報処理部14は変数mを1増加する(ステップS208)。その後、結合点識別情報処理部14は、再度ステップS205以降の処理を実行する。一方、復号順番で次のピクチャがDLPピクチャでない場合(ステップS207−No)、次のピクチャはTFDピクチャでもDLPピクチャでもないので、TPピクチャである。TPピクチャよりも復号順序が後のピクチャには、TFDピクチャは存在しない。そこで、結合点識別情報処理部14は、リストL[]に基づいて、BLAピクチャ及びDLPピクチャのPTSEIのNumRemovedTfdsフィールドを更新する(ステップS209)。具体的には、結合点識別情報処理部14は、復号順番でBLAピクチャから数えてm番目までの非TFDピクチャについて、k番目のピクチャのPTSEIのNumRemovedTfdsフィールドの値をL[k]に設定する。その後、結合点識別情報処理部14は、BLAピクチャ及び、全後続ピクチャをデータ結合部15へ出力する。
結合部15は、結合点よりも前の第1の符号化動画像データの最後のピクチャに後続して、第2の符号化動画像データのBLAピクチャ以降の各ピクチャを結合する。その際、結合部15は、結合点識別情報処理部14から除去することを通知されたTFDピクチャを除去する。
次に、第1の実施形態による動画像符号化装置1により符号化され、または編集された符号化動画像データを復号する動画像復号装置について説明する。
図8は、第1の実施形態による、動画像復号装置の概略構成図である。動画像復号装置2は、制御部21と、ヘッダ情報解析部22と、ピクチャ復号・表示時刻決定部23と、ピクチャ復号部24と、フレームメモリ25とを有する。動画像復号装置2が有するこれらの各部は、それぞれ、別個の回路として動画像復号装置2に実装される。あるいは、動画像復号装置2が有するこれらの各部は、その各部の機能を実現する回路が集積された一つの集積回路として動画像復号装置2に実装されてもよい。あるいはまた、動画像復号装置2が有するこれらの各部は、動画像復号装置2が有するプロセッサ上で実行されるコンピュータプログラムにより実現される機能モジュールであってもよい。
制御部21は、符号化動画像データを復号する際、動画像復号装置2の各部の処理を制御する。
ヘッダ情報解析部22は、符号化動画像データのヘッダ情報を解析し、ピクチャ復号・表示時刻の決定に必要なパラメータ、例えば、各ピクチャのNalUnitType、及び、PTSEIに含まれるCpbRemovalDelay, DpbOutputDelay及びNumRemovedTfdsを、ピクチャ復号・表示時刻決定部23に出力する。
ピクチャ復号・表示時刻決定部23は、ヘッダ情報解析部22から渡される、復号対象ピクチャのスライスのNUHをチェックする。NUHのNalUnitTypeが'7', '8'もしくは'9'の場合、ピクチャ復号・表示時刻決定部23は、復号対象ピクチャはBLAピクチャであると判断する。
復号対象ピクチャがBLAピクチャである場合、ピクチャ復号・表示時刻決定部23は、BLAピクチャの復号遅延CpbRemovalDelayとして、BLAピクチャに付加されたPTSEIのCpbRemovalDelayの代わりに、以下のようにして求めた値を用いる。
ピクチャ復号・表示時刻決定部23は、BLAピクチャの直前のBPSEIが付加されたピクチャの次のピクチャから、BLAピクチャまでの各ピクチャの復号間隔の総和Aをもとめる。そしてピクチャ復号・表示時刻決定部23は、BLAピクチャの復号遅延CpbRemovalDelayをAとする。なお、各ピクチャの復号間隔が等しい場合には、ピクチャ復号・表示時刻決定部23は、BLAピクチャの直前のBPSEIが付加されたピクチャの次のピクチャから、BLAピクチャまでのフィールド単位のピクチャ数を、BLAピクチャの復号遅延CpbRemovalDelayとしてもよい。
ピクチャ復号・表示時刻決定部23は、さらにBLAピクチャのPTSEIのNumRemovedTfdsフィールドをチェックする。NumRemovedTfdsの値がゼロでない場合には、ピクチャ復号・表示時刻決定部23は、BLAピクチャの直後のTFDピクチャが除去されていると判断し、BLAピクチャの表示遅延DpbOutputDelayからNumRemovedTfdsを減算した値を、BLAピクチャの修正後の表示遅延DpbOutputDelayとする。
ピクチャ復号・表示時刻決定部23は、さらに、復号順番でBLAピクチャ以降のピクチャについても、次のBPSEI付加ピクチャまで、以下の処理を行う。
処理対象のピクチャの復号遅延CpbRemovalDelayについて、ピクチャ復号・表示時刻決定部23は、CpbRemovalDelayの元の値から、BLAピクチャに付加されたPTSEIのNumRemovedTfdsと、その処理対象ピクチャに付加されたPTSEIのNumRemovedTfdsとの差分値(処理対象ピクチャ以降にあった除去済TFDピクチャの復号間隔の総和に相当)を減算した値を、修正後の復号遅延CpbRemovalDelayとする。また、処理対象のピクチャの表示遅延DpbOutputDelayについて、ピクチャ復号・表示時刻決定部23は、DpbOutputDelayの元の値からその処理対象ピクチャに付加されたPTSEIのNumRemovedTfdsを減算した値を、修正後の表示遅延DpbOutputDelayとする。
さらに、ピクチャ復号・表示時刻決定部23は、TPピクチャについては、そのピクチャの復号遅延CpbRemovalDelayの元の値から、BLAピクチャに付加されたPTSEIのNumRemovedTfdsを減算した値を修正後のCpbRemovalDelayの値とする。
上記以外のピクチャについては、ピクチャ復号・表示時刻決定部23は、ピクチャの復号遅延CpbRemovalDelay及び表示遅延DpbOutputDelayを、それぞれ、そのピクチャに付加されたPTSEIのCpbRemovalDelay及びDpbOutputDelayとする。
ピクチャ復号・表示時刻決定部23は、上記の復号遅延CpbRemovalDelayに基づいて、各ピクチャの復号時刻を決定し、その復号時刻に、ピクチャ復号部24に対し復号指示を出す。また、ピクチャ復号・表示時刻決定部23は、上記の表示遅延DpbOutputDelayに基づいて、各ピクチャの表示時刻を決定し、その表示時刻に、フレームメモリ25に対し、表示指示を出す。
ピクチャ復号部24は、復号対象ピクチャについて復号指示を受け取ると、フレームメモリ25に格納された参照ピクチャを用いてその復号対象ピクチャを復号する。そしてピクチャ復号部24は、復号したピクチャをフレームメモリ25に格納させる。なお、ピクチャ復号部24は、動画像符号化装置1の符号化部が準拠する符号化方式と同様の符号化方式に準拠して、復号処理を実行する。
フレームメモリ25は、復号されたピクチャを格納する。またフレームメモリ25は、復号されたピクチャを、そのピクチャよりも後に復号されるピクチャの参照ピクチャとしてピクチャ復号部24に出力する。さらに、フレームメモリ25は、ピクチャ復号・表示時刻決定部23から受け取った表示指示に従い、表示部(図示せず)にピクチャを出力する。
図9は、第1の実施例による動画像復号装置により実行される動画像復号処理の動作フローチャートである。なお、図9に示される動作フローチャートにしたがって、動画像復号装置2は、復号対象の動画像シーケンス全体を復号する。
制御部21は、シーケンス全体の復号処理開始に先立ち、変数flagを初期化し、0に設定する(ステップS301)。変数flagは、CpbRemovalDelay及びDpbOutputDelayの修正が必要な非BLAピクチャか否かを示す変数である。変数flagが'1'であれば、CpbRemovalDelay及びDpbOutputDelayの修正が必要であり、変数flagが'0'であれば、CpbRemovalDelay及びDpbOutputDelayの修正は必要ない。
次に、ヘッダ情報解析部22は、復号対象ピクチャのヘッダ情報を解析し、ピクチャ復号・表示時刻の決定に必要なパラメータを、ピクチャ復号・表示時刻決定部23に出力する。復号対象のピクチャのヘッダ情報を解析する(ステップS302)。
ピクチャ復号・表示時刻決定部23は、変数flagが'1'であるかを判定する(ステップS303)。
変数flagが'1'の場合(ステップS303−Yes)、ピクチャ復号・表示時刻決定部23は、非BLAピクチャである復号対象ピクチャの復号遅延CpbRemovalDelayを、復号対象ピクチャのNumRemovedTfds及び直前のBLAピクチャのNumRemovedTfdsとを用いて修正する(ステップS304)。また、復号対象ピクチャの表示遅延DpbOutputDelayを、復号対象ピクチャのNumRemovedTfdsを用いて修正する。
ステップS304の後、あるいは、ステップS303にて変数flagが'0'である場合(ステップS303−No)、ピクチャ復号・表示時刻決定部23は、復号対象ピクチャにBPSEIが付加されているか判定する(ステップS305)。
復号対象ピクチャにBPSEIが付加されている場合(ステップS305−Yes)、ピクチャ復号・表示時刻決定部23は、復号対象ピクチャがBLAピクチャか否か判定する(ステップS306)。復号対象ピクチャがBLAピクチャでなければ(ステップS306−No)、ピクチャ復号・表示時刻決定部23は、変数flagを0にリセットする(ステップS307)。
一方、復号対象ピクチャがBLAピクチャであれば(ステップS306−Yes)、ピクチャ復号・表示時刻決定部23は、そのピクチャの復号遅延CpbRemovalDelay及び表示遅延DpbOutputDelayを修正するとともに、変数flagを1に設定する(ステップS308)。この場合、上記のように、ピクチャ復号・表示時刻決定部23は、BLAピクチャの復号遅延CpbRemovalDelayを、直前のBPSEIが付加されたピクチャの次のピクチャからBLAピクチャまでの各ピクチャの復号間隔の総和とする。また、ピクチャ復号・表示時刻決定部23は、BLAピクチャの表示遅延DpbOutputDelayを、その元の値からNumRemovedTfdsを減算した値とする。
ステップS307またはS308の後、あるいは、ステップS305にて、復号対象ピクチャにBPSEIが付加されていない場合(ステップS305−No)、制御部21は、符号化動画像データ内に未復号のピクチャがあるか否か判定する(ステップS309)。未復号のピクチャがあれば(ステップS309−Yes)、制御部21は、処理をステップS302へ移行させる。そして復号順序で次のピクチャを復号対象ピクチャとして、ステップS302以降の処理が繰り返される。
一方、未復号のピクチャがなければ(ステップS309−No)、制御部21は、動画像復号処理を終了する。
以上説明してきた、NumRemovedTfdsの導出方法、CpbRemovalDelay及びDpbOutputDelayの修正方法の具体例を、図10を用いて説明する。
結合点よりも前側に結合される第1の動画像符号化データ1001に示された各ブロックは、それぞれ、一つのピクチャを表し、かつ、各ブロック内の文字は、図2と同様に、符号化モード及び動画像符号化装置への入力の順番を表す。
この例では、第1の動画像符号化データの最後のピクチャB11の直後に、第2の動画像符号化データ1002を結合する。第2の動画像符号化データ1002についても、各ブロックは、それぞれ、一つのピクチャを表し、かつ、各ブロック内の文字は、符号化モード及び動画像符号化装置への入力の順番を表す。第2の動画像符号化データ1002の上側に示された矢印は、それぞれ、符号化されるピクチャB4〜B7が前方向フレーム予測において参照する参照ピクチャを表す。また、第2の動画像符号化データ1002の下側に示された矢印は、それぞれ、符号化されるピクチャB4〜B7が後方向フレーム予測において参照する参照ピクチャを表す。
第2の動画像符号化データ1002において、ピクチャB4、B2、B1、B3、B7は、第2の動画像符号化データ1002の下側に表記するように、TFDピクチャである。ピクチャB5及びB7はDLPピクチャである。
第2の動画像符号化データ1002の下側に示されたブロック列1003は、第2の動画像符号化データ1002の各ピクチャに付加されるPTSEIに含まれる復号遅延CpbRemovalDelay及び表示遅延DpbOutputDelayの値を表す。ブロック列1003のうちの上側の各ブロックには、それぞれ、そのブロックの上に位置する第2の動画像符号化データ1002のピクチャの復号遅延CpbRemovalDelayの値が示される。一方、ブロック列1003のうちの下側の各ブロックには、それぞれ、そのブロックの上に位置する第2の動画像符号化データ1002のピクチャの表示遅延DpbOutputDelayの値が示される。
ブロック列1003の下側には、第1の動画像符号化データ1001と第2の動画像符号化データ1002とが結合された結合動画像符号化データ1004が示されている。この例では、結合動画像符号化データ1004において、第2の動画像符号化データ1002のうちのTFDピクチャB4、B2、B1、B3、B7は削除されている。
ブロック列1004の下側には、結合動画像符号化データ1004のNumRemovedfds1005が示される。BLAピクチャであるI8のNumRemovedfdsには、復号順序でI8以降となる、除去したTFDピクチャ(B4、B2、B1、B3、B5)の復号間隔の総和、この例では、I8以降でかつ除去されたピクチャのフィールド単位の枚数である10が格納される。DLPピクチャであるB6のNumRemovedfdsには、復号順序でB6以降となる、除去したTFDピクチャ(B5)の復号間隔の総和、この例では、B6以降でかつ除去されたピクチャのフィールド単位の枚数である2が格納される。ピクチャB7以降は、復号順序で後となる、除去したTFDピクチャは無いため、NumRemovedfdsは0のままである。
結合動画像符号化データ1004のNumRemovedfds1005の下側のブロック列1006は、NumRemovedfdsに基づき修正した、結合動画像符号化データ1004の復号遅延CpbRemovalDelay及び表示遅延DpbOutputDelayの値を表す。ブロック列1006の上側の各ブロックは、その上に示されたピクチャについての修正後の復号遅延CpbRemovalDelayを表し、ブロック列1006の下側の各ブロックは、その上に示されたピクチャについての修正後の表示遅延DpbOutputDelayを表す。
BLAピクチャI8については、表示遅延DpbOutputDelayの元の値20から、NumRemovedfdsの値10を減算した10が、修正後の表示遅延DpbOutputDelayになる。これにより、修正後のピクチャI8の表示遅延DpbOutputDelayも、修正前のその値と同様に、ピクチャI8以降で最もリオーダリング数が多いピクチャB9の表示時刻を基準としたときの、ピクチャI8の復号時刻から表示時刻までの差で表すことができる。
また、DLPピクチャB6については、復号遅延CpbRemovalDelayの元の値10からピクチャI8のNumRemovedfds(=10)とピクチャB6のNumRemovedfds(=2)との差分8を引いた2が修正後の復号遅延CpbRemovalDelayとなる。また、ピクチャB6の表示遅延DpbOutputDelayの元の値6からピクチャB6のNumRemovedfds(2)を引いた4が、修正後の表示遅延DpbOutputDelayになる。ピクチャB7以降のピクチャについては、それぞれ、NumRemovedfdsの値が0であることから、復号遅延CpbRemovalDelayの元の値からピクチャI8のNumRemovedfdsを引いた値が、修正後の復号遅延CpbRemovalDelayとなる。一方、ピクチャB7以降のピクチャについての表示遅延DpbOutputDelayは変化しない。
以上に説明してきたように、この実施形態による動画像符号化装置は、二つ以上の符号化動画像データを復号せずに結合した場合に、その結合により削除されたピクチャの枚数により決定される復号遅延及び表示遅延の修正用のパラメータを符号化動画像データ内に記録しておくだけで、符号化時に決定した復号遅延及び表示遅延のパラメータ値を修正しなくてよい。そしてこの実施形態による動画像復号装置は、符号化動画像データが結合された場合の復号遅延及び表示遅延の修正用のパラメータを利用して、各ピクチャの復号遅延及び表示遅延を修正できるので、適切なタイミングで各ピクチャを復号及び表示できる。
次に、第2の実施形態について説明する。第2の実施形態では、第1の実施形態と比較して、符号化動画像データの構造が異なる。
図11を参照しつつ、第2の実施形態における、符号化動画像データの構造を説明する。図4に示された第1の実施形態による符号化されたピクチャの構造と同様に、一つのピクチャのデータ構造1100は、6種類のNAL unit1110〜1115を含む。このうち、BPSEI1113及びPTSEI1114が、図4に示されたBPSEI413及びPTSEI414と異なる。一方、DELIM1110、SPS1111、PPS1112、SLICE1115、及びNUH1120は、それぞれ、図4に示されたDELIM410、SPS411、PPS412、SLICE415及びNUH420と同等である。
BPSEI1113は、結合時において、BLAピクチャから次のCRAピクチャまでの間に位置するTFDピクチャ及びDLPピクチャのうち、削除されなかったピクチャの枚数に2を加算した数である変数mに1を加えた数を表すNumEntriesフィールドを含む。さらに、BPSEI1113は、NumEntries個のAltCpbRemovalDelayOffsetフィールド及びAltDpbOutputDelayOffsetフィールドを含む。なお、NumEntriesフィールド、AltCpbRemovalDelayOffsetフィールド及びAltDpbOutputDelayOffsetフィールドが、復号遅延及び表示遅延を補正するための補正情報の他の一例である。
一方、PTSEI1140は、PTSEI440と異なり、NumRemovedTfdsフィールドを含まない。
NumEntriesフィールドが0の場合、BPSEIが付加されたピクチャ、及び以降のピクチャ(次のBPSEI付加ピクチャまで)において、CpbRemovalDelay及びDpbOutputDelayの値を動画像復号装置は変更しなくてよい。一方、NumEntriesがゼロでない場合、動画像復号装置は、BPSEIが付加されたピクチャから数えて復号順番でk番目のピクチャの復号遅延CpbRemovalDelayの修正値を、復号遅延CpbRemovalDelayの元の値からAltCpbRemovalDelayOffset[k]を減算することで計算する。同様に、動画像復号装置は、表示遅延DpbOutputDelayの修正値を、表示遅延DpbOutputDelayの元の値からAltDpbOutputDelayOffset[k]を減算することで計算する。
上記のように、第1の実施形態と比較して、CpbRemovalDelayフィールド及びDpbOutputDelayフィールドの補正値を格納するSEIが異なる。そのため、第2の実施形態による動画像符号化装置は、第1の実施形態による動画像符号化装置と比較して、結合点識別情報処理部14の処理が異なる。そこで以下では、結合点識別情報処理部14の処理について説明する。
結合点識別情報処理部14は、図7の動画像編集処理の動作フローチャートに基づき計算される変数mに1を加算した値を、NumEntriesフィールドに格納する。さらに、結合点識別情報処理部14は、k番目(k=[0,m-1])番目のAltCpbRemovalDelayOffsetフィールドに、L[0] - L[k]の値を入れる。またk番目のAltDpbOutputDelayOffsetフィールドに、L[k]の値を入れる。
次に、第2の実施形態による動画像復号装置の動作について説明する。第2の実施形態による動画像復号装置も、第1の実施形態による動画像復号装置と同様の構成を有する。ただし、第1の実施形態と比較して、第2の実施形態による動画像復号装置では、ピクチャ復号・表示時刻決定部23の処理が異なる。そこで以下では、ピクチャ復号・表示時刻決定部23の処理について説明する。
復号対象ピクチャの直前のBPSEI付加ピクチャにおいて、BPSEIのNumEntriesフィールドがゼロでない場合にのみ、ピクチャ復号・表示時刻決定部23は復号対象ピクチャのPTSEIの復号遅延CpbRemovalDelay及び表示遅延DpbOutputDelayの値を以下のように補正する。
直前のBPSEI付加ピクチャ(この場合はBLAピクチャ)から、復号順番をk(k=0,1,2,…)とする。kがNumEntriesと同じか大きい場合、ピクチャ復号・表示時刻決定部23は、そのk番目のピクチャの復号遅延CpbRemovalDelayの元の値から、AltCpbRemovalDelayOffset[NumEntries-1]の値を引いた値を、修正後のCpbRemovalDelayの値とする。一方、kがNumEntriesよりも小さい場合、ピクチャ復号・表示時刻決定部23は、復号遅延CpbRemovalDelayの元の値から、AltCpbRemovalDelayOffset[k]の値を引いた値を、k番目のピクチャについての修正後のCpbRemovalDelay値とし、表示遅延DpbRemovalDelayの元の値からAltDpbRemovalDelayOffset値を引いた値を、修正後のDpbOutputDelayの値とする。
図12は、上記の何れかの実施形態またはその変形例による動画像符号化装置または動画像復号装置の各部の機能を実現するコンピュータプログラムが動作することにより、動画像符号化装置または動画像復号装置として動作するコンピュータの構成図である。
コンピュータ100は、ユーザインターフェース部101と、通信インターフェース部102と、記憶部103と、記憶媒体アクセス装置104と、プロセッサ105とを有する。プロセッサ105は、ユーザインターフェース部101、通信インターフェース部102、記憶部103及び記憶媒体アクセス装置104と、例えば、バスを介して接続される。
ユーザインターフェース部101は、例えば、キーボードとマウスなどの入力装置と、液晶ディスプレイといった表示装置とを有する。または、ユーザインターフェース部101は、タッチパネルディスプレイといった、入力装置と表示装置とが一体化された装置を有してもよい。そしてユーザインターフェース部101は、例えば、ユーザの操作に応じて、符号化する動画像データ、編集する符号化動画像データあるいは復号する符号化動画像データを選択する操作信号をプロセッサ105へ出力する。またユーザインターフェース部101は、プロセッサ105から受け取った、復号された動画像データを表示してもよい。
通信インターフェース部102は、コンピュータ100を、動画像データを生成する装置、例えば、ビデオカメラと接続するための通信インターフェース及びその制御回路を有してもよい。そのような通信インターフェースは、例えば、Universal Serial Bus(ユニバーサル・シリアル・バス、USB)とすることができる。
さらに、通信インターフェース部102は、イーサネット(登録商標)などの通信規格に従った通信ネットワークに接続するための通信インターフェース及びその制御回路を有してもよい。
この場合には、通信インターフェース部102は、通信ネットワークに接続された他の機器から、符号化する動画像データ、編集する符号化動画像データまたは復号する符号化動画像データを取得し、それらのデータをプロセッサ105へ渡す。また通信インターフェース部102は、プロセッサ105から受け取った、符号化動画像データ、結合符号化動画像データまたは復号された動画像データを通信ネットワークを介して他の機器へ出力してもよい。
記憶部103は、例えば、読み書き可能な半導体メモリと読み出し専用の半導体メモリとを有する。そして記憶部103は、プロセッサ105上で実行される、動画像符号化処理または動画像復号処理を実行するためのコンピュータプログラム、及びこれらの処理の途中または結果として生成されるデータを記憶する。
記憶媒体アクセス装置104は、例えば、磁気ディスク、半導体メモリカード及び光記憶媒体といった記憶媒体106にアクセスする装置である。記憶媒体アクセス装置104は、例えば、記憶媒体106に記憶されたプロセッサ105上で実行される、動画像符号化処理または動画像復号処理用のコンピュータプログラムを読み込み、プロセッサ105に渡す。
プロセッサ105は、上記の各実施形態の何れかまたは変形例による動画像符号化処理用コンピュータプログラムを実行することにより、動画像データを符号化する。あるいは、プロセッサ105は、二つの符号化動画像データを結合した結合符号化動画像データを生成する。そしてプロセッサ105は、生成された結合符号化動画像データを記憶部103に保存し、または通信インターフェース部102を介して他の機器へ出力する。さらにプロセッサ105は、上記の各実施形態の何れかまたは変形例による動画像復号処理用コンピュータプログラムを実行することにより、符号化動画像データを復号する。そしてプロセッサ105は、復号された動画像データを記憶部103に保存し、ユーザインターフェース部101に表示し、または通信インターフェース部102を介して他の機器へ出力する。
コンピュータ上で実行されることにより、上述した実施形態またはその変形例による動画像符号化装置及び動画像復号装置の各部の機能を実現するコンピュータプログラムは、半導体メモリまたは光記録媒体などの記録媒体に記録されて配布されてもよい。ただし、そのような記録媒体には、搬送波は含まれない。
上述した実施形態またはその変形例による、動画像符号化装置及び動画像復号装置は、様々な用途に利用される。例えば、この動画像符号化装置及び動画像復号装置は、ビデオカメラ、映像送信装置、映像受信装置、テレビ電話システム、コンピュータあるいは携帯電話機に組み込まれる。
ここに挙げられた全ての例及び特定の用語は、読者が、本発明及び当該技術の促進に対する本発明者により寄与された概念を理解することを助ける、教示的な目的において意図されたものであり、本発明の優位性及び劣等性を示すことに関する、本明細書の如何なる例の構成、そのような特定の挙げられた例及び条件に限定しないように解釈されるべきものである。本発明の実施形態は詳細に説明されているが、本発明の精神及び範囲から外れることなく、様々な変更、置換及び修正をこれに加えることが可能であることを理解されたい。