(57)【要約】【課題】従来、アンダーフロー発生時に画像が欠落する。【解決手段】動画像符号化装置は、第１の時間間隔と、第２の時間間隔とを算出する時間間隔算出器１０１と、現ピクチャ復号時刻におけるピクチャ復号直後の仮想復号バッファ蓄積量がゼロ以上の場合には、現ピクチャ復号時刻を第１の時刻として設定し、現ピクチャ復号直後の仮想復号バッファ蓄積量が負の場合、現ピクチャ復号時刻後にピクチャ復号直後の仮想復号バッファ蓄積量がゼロ以上となる最初の時刻を第１の時刻として算出するとともに、第１の時刻から次ピクチャ復号時刻までの第３の時間間隔を算出する符号化器１０３と、第３の時間間隔が第１の時間間隔以上の場合には、第１の時刻を現ピクチャ復号時刻として符号化してピクチャ符号を出力するように制御する符号化制御器１０６とを有する。【選択図】図１
2011205476.tif 000002
【特許請求の範囲】
【請求項１】
所定ピクチャ時間間隔の動画像の各ピクチャをブロック分割する手段と、
第１の単位時間あたりのブロック数を設定する手段と、
所定ピクチャ時間間隔に基づき、第１の単位時間あたりのブロック数より少ない第２の単位時間あたりのブロック数となる符号化ピクチャサイズを設定する手段と、
符号化ピクチャサイズで各ピクチャを符号化する手段と、
符号化ピクチャサイズのピクチャ符号を第１の単位時間あたりのブロック数で復号するに要する第１の時間間隔を算出する手段と、
所定ピクチャ時間間隔と第１の時間間隔との時間差以下で、かつ、所定ピクチャ時間間隔の１／Ｎ（Ｎは２以上の自然数）となる第２の時間間隔を算出する手段と、
所定ピクチャ時間間隔で、ピクチャごとのピクチャ復号時刻を算出する手段と、
第２の時間間隔ごとの仮想復号バッファの蓄積量の推移を算出する手段と、
現ピクチャのピクチャ復号時刻におけるピクチャ復号直後の仮想復号バッファ蓄積量がゼロ以上の場合には、現ピクチャのピクチャ復号時刻を第１の時刻として設定し、現ピクチャのピクチャ復号時刻において、ピクチャ復号直後の仮想復号バッファ蓄積量が負の場合には、現ピクチャのピクチャ復号時刻後にピクチャ復号直後の仮想復号バッファ蓄積量がゼロ以上となる最初の時刻を第１の時刻として算出して設定する手段と、
第１の時刻から次ピクチャのピクチャ復号時刻までの第３の時間間隔を算出する手段と、
第３の時間間隔が第１の時間間隔以上の場合には、第１の時刻を現ピクチャのピクチャ復号時刻として符号化してピクチャ符号を出力するように制御する手段と、
を有することを特徴とする動画像符号化装置。
【請求項２】
所定ピクチャ時間間隔の動画像の各ピクチャをブロック分割する手段と、
第１の単位時間あたりのブロック数を設定する手段と、
所定ピクチャ時間間隔に基づき、第１の単位時間あたりのブロック数より少ない第２の単位時間あたりのブロック数となる符号化ピクチャサイズを設定する手段と、
符号化ピクチャサイズで各ピクチャを符号化する手段と、
符号化ピクチャサイズのピクチャ符号を第１の単位時間あたりのブロック数で復号するに要する第１の時間間隔を算出する手段と、
所定ピクチャ時間間隔と第１の時間間隔との時間差以下で、かつ、所定ピクチャ時間間隔の１／Ｎ（Ｎは２以上の自然数）となる第２の時間間隔を算出する手段と、
第１の時間間隔以上で所定ピクチャ時間間隔未満、かつ、第２の時間間隔のＭ倍（Ｍは自然数）となる第４の時間間隔を算出する手段と、
第２の時間間隔ごとの仮想復号バッファの蓄積量の推移を算出する手段と、
所定ピクチャ時間間隔で、ピクチャごとのピクチャ復号時刻を算出する手段と、
現ピクチャのピクチャ復号時刻におけるピクチャ復号直後の仮想復号バッファ蓄積量がゼロ以上の場合には、現ピクチャのピクチャ復号時刻を第１の時刻として設定し、また、現ピクチャのピクチャ復号時刻におけるピクチャ復号直後の仮想復号バッファ蓄積量が負の場合には、現ピクチャのピクチャ復号時刻後にピクチャ復号直後の仮想復号バッファ蓄積量がゼロ以上となる最初の時刻を第１の時刻として算出する手段と、
第１の時刻から第４の時間間隔後の時刻を第２の時刻として算出する手段と、
所定ピクチャ時間間隔以上である第５の時間間隔を設定する手段と、
現ピクチャのピクチャ復号時刻から第５の時間間隔後の時刻を第３の時刻として、第２の時刻が第３の時刻より前の場合には、第１の時刻を現ピクチャのピクチャ復号時刻として符号化してピクチャ符号を出力するように制御する手段と、
次ピクチャを符号化する際に、第２の時刻が次ピクチャのピクチャ復号時刻を超えた場合には、次ピクチャのピクチャ復号時刻を第２の時刻に修正して、次ピクチャを符号化するように制御する手段と、
を有することを特徴とする動画像符号化装置。
【請求項３】
所定ピクチャ時間間隔の動画像の各ピクチャをブロック分割するステップと、
第１の単位時間あたりのブロック数を設定するステップと、
所定ピクチャ時間間隔に基づき、第１の単位時間あたりのブロック数より少ない第２の単位時間あたりのブロック数となる符号化ピクチャサイズを設定するステップと、
符号化ピクチャサイズで各ピクチャを符号化するステップと、
符号化ピクチャサイズのピクチャ符号を第１の単位時間あたりのブロック数で復号するに要する第１の時間間隔を算出するステップと、
所定ピクチャ時間間隔と第１の時間間隔との時間差以下で、かつ、所定ピクチャ時間間隔の１／Ｎ（Ｎは２以上の自然数）となる第２の時間間隔を算出するステップと、
所定ピクチャ時間間隔で、ピクチャごとのピクチャ復号時刻を算出するステップと、
第２の時間間隔ごとの仮想復号バッファの蓄積量の推移を算出するステップと、
現ピクチャのピクチャ復号時刻におけるピクチャ復号直後の仮想復号バッファ蓄積量がゼロ以上の場合には、現ピクチャのピクチャ復号時刻を第１の時刻として設定し、現ピクチャのピクチャ復号時刻において、ピクチャ復号直後の仮想復号バッファ蓄積量が負の場合には、現ピクチャのピクチャ復号時刻後にピクチャ復号直後の仮想復号バッファ蓄積量がゼロ以上となる最初の時刻を第１の時刻として算出して設定するステップと、
第１の時刻から次ピクチャのピクチャ復号時刻までの第３の時間間隔を算出するステップと、
第３の時間間隔が第１の時間間隔以上の場合には、第１の時刻を現ピクチャのピクチャ復号時刻として符号化してピクチャ符号を出力するように制御するステップと、
を含むことを特徴とする動画像符号化方法。
【請求項４】
所定ピクチャ時間間隔の動画像の各ピクチャをブロック分割するステップと、
第１の単位時間あたりのブロック数を設定するステップと、
所定ピクチャ時間間隔に基づき、第１の単位時間あたりのブロック数より少ない第２の単位時間あたりのブロック数となる符号化ピクチャサイズを設定するステップと、
符号化ピクチャサイズで各ピクチャを符号化するステップと、
符号化ピクチャサイズのピクチャ符号を第１の単位時間あたりのブロック数で復号するに要する第１の時間間隔を算出するステップと、
所定ピクチャ時間間隔と第１の時間間隔との時間差以下で、かつ、所定ピクチャ時間間隔の１／Ｎ（Ｎは２以上の自然数）となる第２の時間間隔を算出するステップと、
第１の時間間隔以上で所定ピクチャ時間間隔未満、かつ、第２の時間間隔のＭ倍（Ｍは自然数）となる第４の時間間隔を算出するステップと、
第２の時間間隔ごとの仮想復号バッファの蓄積量の推移を算出するステップと、
所定ピクチャ時間間隔で、ピクチャごとのピクチャ復号時刻を算出するステップと、
現ピクチャのピクチャ復号時刻におけるピクチャ復号直後の仮想復号バッファ蓄積量がゼロ以上の場合には、現ピクチャのピクチャ復号時刻を第１の時刻として設定し、また、現ピクチャのピクチャ復号時刻におけるピクチャ復号直後の仮想復号バッファ蓄積量が負の場合には、現ピクチャのピクチャ復号時刻後にピクチャ復号直後の仮想復号バッファ蓄積量がゼロ以上となる最初の時刻を第１の時刻として算出するステップと、
第１の時刻から第４の時間間隔後の時刻を第２の時刻として算出するステップと、
所定ピクチャ時間間隔以上である第５の時間間隔を設定するステップと、
現ピクチャのピクチャ復号時刻から第５の時間間隔後の時刻を第３の時刻として、第２の時刻が第３の時刻より前の場合には、第１の時刻を現ピクチャのピクチャ復号時刻として符号化してピクチャ符号を出力するように制御するステップと、
次ピクチャを符号化する際に、第２の時刻が次ピクチャのピクチャ復号時刻を超えた場合には、次ピクチャのピクチャ復号時刻を第２の時刻に修正して、次ピクチャを符号化するように制御するステップと、
を含むことを特徴とする動画像符号化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画像符号化装置及び動画像符号化方法に関するものである。
【背景技術】
【０００２】
動画像を効率よく伝送するために動画像信号の時間的冗長性、空間的冗長性、統計的冗長性に着目したピクチャ(１画面／１フレーム)内符号化やピクチャ間符号化を用いる。例えば、ISO/IEC 11172-2（通称MPEG-1ビデオ）、ISO/IEC 13818-2（通称MPEG-2ビデオ）、ISO/IEC 14496-2（通称MPEG-4ビデオ）、ISO/IEC 14496-10（通称MPEG-4 AVC）、ITU-T H.261、ITU-T H.263等の国際標準に基づく符号化方式がある。
【０００３】
ピクチャ毎の発生符号量は、ピクチャ内符号化やピクチャ間符号化等の適用する符号化ピクチャタイプ、そのピクチャの絵柄や動き変化により変動する。符号化動画像を所定の伝送レートで伝送するために、符号化出力段や復号入力段に符号を一時滞留させるための符号バッファを設けて、符号量変動を吸収する。符号化出力段や復号入力段の符号バッファの動作は、符号化や復号の実装方法の違いにより異なる。
【０００４】
このため、一般に国際標準に基づく符号化方式では、仮想復号バッファを規定することで、符号化や復号の実装方法が異なる場合においても相互運用性を確保できるようにしている。例えば、MPEG-2ビデオのVBV (Video buffer verifier)のVBV buffer、MPEG-4 AVCのHRD (Hypothetical reference decoder)のCPB（Coded picture buffer)等の規定がある。
【０００５】
符号化においては、仮想復号バッファがオーバーフローやアンダーフローしないようにピクチャ毎の発生符号量を制御して符号化する。例えば、特許文献１に記載の技術を用いて発生符号量を予測しながら量子化幅の制御することでピクチャ発生符号量を調整して、符号バッファがオーバーフローやアンダーフローしないように制御して符号化する。
【０００６】
しかしながら、シーンチェンジや急激な動き変化等により、ピクチャ発生符号量が急激に多く発生することで、量子化幅の制御が間に合わず、仮想復号バッファをアンダーフローさせてしまう場合がある。そのままでは、符号化出力段の符号バッファがオーバーフローしたり、復号入力段の符号バッファがアンダーフローしたりして、符号欠落等の障害が発生して復号出力する動画像に乱れが生じる。特に、相互運用性の観点から、復号入力段の符号バッファにおけるアンダーフローが発生しないようにする必要がある。例えば、MPEG-2ビデオやMPEG-4 AVCでは、低遅延モード時を除いて、動画像の符号化において、仮想復号バッファのアンダーフローを禁止している。
【０００７】
仮想復号バッファがアンダーフローするような場合、例えば、特許文献２の［従来の技術］に記載のように、符号化や復号が間に合わないと判断して、ピクチャスキップする方法がある。例えば、MPEG-4 AVCの符号化においてピクチャの発生符号量が多くアンダーフローするような場合には、低遅延モード時においては現ピクチャのピクチャ符号はそのままに次ピクチャをピクチャスキップしたり、非低遅延モード時においてはそのピクチャ符号を破棄してアンダーフローを回避したりする。
【０００８】
特に、非低遅延モード時においては、仮想復号バッファのアンダーフローを禁止しているため、ピクチャの発生符号量が多くアンダーフローするような場合には、ピクチャ符号を破棄してアンダーフローを回避する必要がある。
（従来技術の説明）
以下、従来技術について図面により説明する。図７は、従来技術を説明するブロック図である。図８は、従来技術を説明するフローチャートである。図９は、従来技術を説明する仮想復号バッファ推移図である。
【０００９】
従来技術の説明において、所定ピクチャ時間間隔ＰＴの動画像の各ピクチャを、MPEG-4 AVCに準じて、ブロック分割してピクチャ内符号化、もしくは、ピクチャ間符号化するものとする。また、従来技術の説明において、MPEG-4 AVCにおけるHRDのCPB規定に準じて、ピクチャ時間間隔ＰＴをclock tickとして仮想復号バッファの推移を演算するものとする。
（従来技術のブロック図の説明）
まず、従来技術について図７を用いて説明する。
【００１０】
符号化パラメータ設定器７０１は、符号化レベルと符号化ピクチャサイズを入力して、符号化レベルと符号化ピクチャサイズに基づき、符号化パラメータを設定して出力する。
【００１１】
ここで、符号化レベルとは、MPEG-4 AVCで規定する「プロファイルとレベル」のレベルに相当する。符号化レベルにより、符号化する際の単位時間あたりの最大マクロブロック数、最大ビットレート、復号に必要なメモリ量等を規定する。
【００１２】
符号化器７０２は、符号化パラメータ設定器７０１からの符号化パラメータを、例えば、３０ピクチャごとにピクチャ符号化直前に符号化する。また、符号化制御器７０４から指示されたピクチャ復号時刻とピクチャ目標符号量に従い、ピクチャをブロック分割してピクチャ内符号化、もしくは、ピクチャ間符号化して符号を出力する。この際、ピクチャ復号時刻は、ピクチャ符号に付随する補助情報として符号化する。そして、各ピクチャのピクチャ復号時刻とピクチャ符号量を、仮想復号バッファ演算器７０３に出力する。更に、符号化制御器７０４からピクチャ符号の出力が指示された場合には、ピクチャ符号を出力し、符号化制御器７０４からピクチャ符号の破棄が指示された場合には、ピクチャ符号を出力せずに破棄する。
【００１３】
仮想復号バッファ演算器７０３は、符号化器７０２からの各ピクチャのピクチャ復号時刻とピクチャ符号量に基づき、MPEG-4 AVCにおけるHRDのCPB規定に従い、所定ピクチャ時間間隔ごとの仮想復号バッファの蓄積量の推移を演算して、符号化制御器７０４に出力する。また、符号化制御器７０４からのピクチャ符号破棄が指示された場合には、仮想復号バッファの蓄積量推移の演算において現ピクチャを破棄する。
符号化制御器７０４は、所定ピクチャ時間間隔で符号化順に順次ピクチャごとのピクチャ復号時刻を算出して設定すると共に、仮想復号バッファ演算器７０３からの仮想復号バッファの蓄積量の推移に基づきピクチャ目標符号量を算出して設定して、符号化器７０２にピクチャ符号化を指示する。また、符号化制御器７０４は、仮想復号バッファ演算器７０３からの仮想復号バッファの蓄積量の推移に基づき、ピクチャ符号を破棄すると判断をした場合には、符号化器７０２にピクチャ符号の破棄を指示する。
（従来技術のフローチャートと仮想復号バッファ推移図の説明）
次に、図８と図９を用いて説明する。
【００１４】
ステップＳ８０１では、符号化レベルと符号化ピクチャサイズを入力して、符号化レベル、符号化ピクチャサイズ、及び、ピクチャ時間間隔ＰＴをMPEG-4 AVCにおけるHRDのCPB規定におけるclock tickとして符号化パラメータを設定して、ステップＳ８０２に進む。
【００１５】
ステップＳ８０２では、所定ピクチャ時間間隔ＰＴで、符号化順に順次、ピクチャごとに算出した時刻を現ピクチャのピクチャ復号時刻として設定して、ステップＳ８０３に進む。
【００１６】
例えば、図９において、時刻（ｔ１、ｔ２、ｔ３、ｔ４、ｔ５、・・・）の隣り合う時間間隔は、ピクチャ時間間隔ＰＴである。そして、ピクチャＰ１の場合には、ピクチャ復号時刻を時刻ｔ１に設定する。以降、ピクチャＰ２の場合には時刻ｔ２を、ピクチャＰ３の場合には時刻ｔ３を、ピクチャＰ４の場合には時刻ｔ４を設定する。ピクチャＰ５の場合には時刻ｔ５を設定する。
【００１７】
ステップＳ８０３では、現ピクチャのピクチャ復号直前の仮想復号バッファ蓄積量を最大として、例えば、過去の仮想復号バッファ推移に基づき、ピクチャ目標符号量を設定して、ステップＳ８０４に進む。
【００１８】
例えば、図９において、ピクチャＰ１のピクチャ復号直前の仮想復号バッファ蓄積量はｄｂ１であり、ピクチャＰ２のピクチャ復号直前の仮想復号バッファ蓄積量はｄｂ２である。ピクチャＰ１の場合には、仮想復号バッファ蓄積量ｄｂ１を最大としてピクチャ目標符号量を算出する。ピクチャＰ２の場合には、仮想復号バッファ蓄積量ｄｂ２を最大としてピクチャ目標符号量を算出する。
【００１９】
ステップＳ８０４では、符号化パラメータを符号化するか否か判断する。例えば、３０ピクチャごとに符号化パラメータを符号化、それ以外は符号化しないと判断する。そして、符号化パラメータを符号化すると判断する場合はステップＳ８０５に進み、符号化パラメータを符号化しないと判断する場合はステップＳ８０６に進む。
【００２０】
ステップＳ８０５では、符号化パラメータを符号化して、ステップＳ８０６に進む。
【００２１】
ステップＳ８０６では、現ピクチャをブロック分割して、ステップＳ８０３で設定したピクチャ目標符号量に応じて、ピクチャ内符号化、もしくは、ピクチャ間符号化して、ステップＳ８０７に進む。この際、ステップＳ８０２で設定したピクチャ復号時刻は、ピクチャ符号に付随する補助情報として符号化する。
【００２２】
ステップＳ８０７では、現ピクチャのピクチャ復号時刻において、ピクチャ復号直後の仮想復号バッファ蓄積符号量が負ならばアンダーフロー発生と判断してステップＳ８０８に進み、ピクチャ復号直後の仮想復号バッファ蓄積符号量がゼロ以上ならばアンダーフロー発生なしと判断してステップＳ８０９に進む。
【００２３】
例えば、図９において、ピクチャＰ１の場合には、ピクチャ復号時刻ｔ１におけるピクチャ復号直後の仮想復号バッファ蓄積量ｄａ１はゼロ以上なので、アンダーフロー発生なしと判断する。ピクチャＰ３のピクチャ復号時刻ｔ３におけるピクチャ復号直後の仮想復号バッファの蓄積量ｄａ３は負なので、アンダーフロー発生と判断する。
【００２４】
ステップＳ８０８では、ステップＳ８０５における符号化パラメータの符号も含めて、現ピクチャのピクチャ符号を破棄して、ステップＳ８１０に進む。
【００２５】
現ピクチャのピクチャ符号を出力せず、以降の符号化において、現ピクチャを参照ピクチャに用いないようにする。また、仮想復号バッファ推移の演算において、現ピクチャをピクチャスキップする。例えば、図９において、ピクチャＰ３におけるアンダーフロー発生のため、ピクチャＰ３を破棄してピクチャスキップする。
【００２６】
ステップＳ８０９では、現ピクチャのピクチャ符号を出力して、ステップＳ８１０に進む。
【００２７】
ステップＳ８１０では、動画像の符号化処理を終了するか否かを、例えば、外部からの符号化処理終了コマンドの入力により判断して、符号化を終了しない場合はステップＳ８０２に戻り、符号化を終了する場合は一連の処理を終了する。
【先行技術文献】
【特許文献】
【００２８】
【特許文献１】特開平６−２０５３９３号公報
【特許文献２】特開２００１−２９８７３５号公報
【発明の概要】
【発明が解決しようとする課題】
【００２９】
伝送レートが低い伝送路を用いて符号化動画像を送る場合には、低符号レートで符号化する必要がある。動画像においてシーンチェンジや急激な動き変化等により、急激に多くのピクチャ符号量が発生することで、量子化幅の制御が間に合わず、仮想復号バッファでアンダーフロー発生する。従来技術において、アンダーフロー回避のためのピクチャ符号の破棄は、画像欠落の障害を招き、復号動画像に情報欠落を生じる。
【００３０】
本発明は、アンダーフロー発生回避のためのピクチャ符号の破棄を抑制するために、  所定条件の時刻をピクチャ復号時刻として符号化することでアンダーフロー発生を抑制することでピクチャ符号の破棄を回避して、復号においてより画像欠落の少ない良好な受信表示が可能となる、動画像符号化装置及び動画像符号化方法の提供を目的とする。
【課題を解決するための手段】
【００３１】
上記目的を達成するため、本発明の動画像符号化装置は、所定ピクチャ時間間隔の動画像の各ピクチャをブロック分割する手段と、第１の単位時間あたりのブロック数を設定する手段と、所定ピクチャ時間間隔に基づき、第１の単位時間あたりのブロック数より少ない第２の単位時間あたりのブロック数となる符号化ピクチャサイズを設定する手段と、符号化ピクチャサイズで各ピクチャを符号化する手段と、符号化ピクチャサイズのピクチャ符号を第１の単位時間あたりのブロック数で復号するに要する第１の時間間隔を算出する手段と、所定ピクチャ時間間隔と第１の時間間隔との時間差以下で、かつ、所定ピクチャ時間間隔の１／Ｎ（Ｎは２以上の自然数）となる第２の時間間隔を算出する手段と、所定ピクチャ時間間隔で、ピクチャごとのピクチャ復号時刻を算出する手段と、第２の時間間隔ごとの仮想復号バッファの蓄積量の推移を算出する手段と、現ピクチャのピクチャ復号時刻におけるピクチャ復号直後の仮想復号バッファ蓄積量がゼロ以上の場合には、現ピクチャのピクチャ復号時刻を第１の時刻として設定し、現ピクチャのピクチャ復号時刻において、ピクチャ復号直後の仮想復号バッファ蓄積量が負の場合には、現ピクチャのピクチャ復号時刻後にピクチャ復号直後の仮想復号バッファ蓄積量がゼロ以上となる最初の時刻を第１の時刻として算出して設定する手段と、第１の時刻から次ピクチャのピクチャ復号時刻までの第３の時間間隔を算出する手段と、第３の時間間隔が第１の時間間隔以上の場合には、第１の時刻を現ピクチャのピクチャ復号時刻として符号化してピクチャ符号を出力するように制御する手段と、を有する。
【００３２】
本発明の動画像符号化装置は、所定ピクチャ時間間隔の動画像の各ピクチャをブロック分割する手段と、第１の単位時間あたりのブロック数を設定する手段と、所定ピクチャ時間間隔に基づき、第１の単位時間あたりのブロック数より少ない第２の単位時間あたりのブロック数となる符号化ピクチャサイズを設定する手段と、符号化ピクチャサイズで各ピクチャを符号化する手段と、符号化ピクチャサイズのピクチャ符号を第１の単位時間あたりのブロック数で復号するに要する第１の時間間隔を算出する手段と、所定ピクチャ時間間隔と第１の時間間隔との時間差以下で、かつ、所定ピクチャ時間間隔の１／Ｎ（Ｎは２以上の自然数）となる第２の時間間隔を算出する手段と、第１の時間間隔以上で所定ピクチャ時間間隔未満、かつ、第２の時間間隔のＭ倍（Ｍは自然数）となる第４の時間間隔を算出する手段と、第２の時間間隔ごとの仮想復号バッファの蓄積量の推移を算出する手段と、所定ピクチャ時間間隔で、ピクチャごとのピクチャ復号時刻を算出する手段と、現ピクチャのピクチャ復号時刻におけるピクチャ復号直後の仮想復号バッファ蓄積量がゼロ以上の場合には、現ピクチャのピクチャ復号時刻を第１の時刻として設定し、また、現ピクチャのピクチャ復号時刻におけるピクチャ復号直後の仮想復号バッファ蓄積量が負の場合には、現ピクチャのピクチャ復号時刻後にピクチャ復号直後の仮想復号バッファ蓄積量がゼロ以上となる最初の時刻を第１の時刻として算出する手段と、第１の時刻から第４の時間間隔後の時刻を第２の時刻として算出する手段と、所定ピクチャ時間間隔以上である第５の時間間隔を設定する手段と、現ピクチャのピクチャ復号時刻から第５の時間間隔後の時刻を第３の時刻として、第２の時刻が第３の時刻より前の場合には、第１の時刻を現ピクチャのピクチャ復号時刻として符号化してピクチャ符号を出力するように制御する手段と、次ピクチャを符号化する際に、第２の時刻が次ピクチャのピクチャ復号時刻を超えた場合には、次ピクチャのピクチャ復号時刻を第２の時刻に修正して、次ピクチャを符号化するように制御する手段と、を有する。
【００３３】
本発明の動画像符号化方法は、所定ピクチャ時間間隔の動画像の各ピクチャをブロック分割するステップと、第１の単位時間あたりのブロック数を設定するステップと、所定ピクチャ時間間隔に基づき、第１の単位時間あたりのブロック数より少ない第２の単位時間あたりのブロック数となる符号化ピクチャサイズを設定するステップと、符号化ピクチャサイズで各ピクチャを符号化するステップと、符号化ピクチャサイズのピクチャ符号を第１の単位時間あたりのブロック数で復号するに要する第１の時間間隔を算出するステップと、所定ピクチャ時間間隔と第１の時間間隔との時間差以下で、かつ、所定ピクチャ時間間隔の１／Ｎ（Ｎは２以上の自然数）となる第２の時間間隔を算出するステップと、所定ピクチャ時間間隔で、ピクチャごとのピクチャ復号時刻を算出するステップと、第２の時間間隔ごとの仮想復号バッファの蓄積量の推移を算出するステップと、現ピクチャのピクチャ復号時刻におけるピクチャ復号直後の仮想復号バッファ蓄積量がゼロ以上の場合には、現ピクチャのピクチャ復号時刻を第１の時刻として設定し、現ピクチャのピクチャ復号時刻において、ピクチャ復号直後の仮想復号バッファ蓄積量が負の場合には、現ピクチャのピクチャ復号時刻後にピクチャ復号直後の仮想復号バッファ蓄積量がゼロ以上となる最初の時刻を第１の時刻として算出して設定するステップと、第１の時刻から次ピクチャのピクチャ復号時刻までの第３の時間間隔を算出するステップと、第３の時間間隔が第１の時間間隔以上の場合には、第１の時刻を現ピクチャのピクチャ復号時刻として符号化してピクチャ符号を出力するように制御するステップと、を含む。
【００３４】
本発明の動画像符号化方法は、所定ピクチャ時間間隔の動画像の各ピクチャをブロック分割するステップと、第１の単位時間あたりのブロック数を設定するステップと、所定ピクチャ時間間隔に基づき、第１の単位時間あたりのブロック数より少ない第２の単位時間あたりのブロック数となる符号化ピクチャサイズを設定するステップと、符号化ピクチャサイズで各ピクチャを符号化するステップと、符号化ピクチャサイズのピクチャ符号を第１の単位時間あたりのブロック数で復号するに要する第１の時間間隔を算出するステップと、所定ピクチャ時間間隔と第１の時間間隔との時間差以下で、かつ、所定ピクチャ時間間隔の１／Ｎ（Ｎは２以上の自然数）となる第２の時間間隔を算出するステップと、第１の時間間隔以上で所定ピクチャ時間間隔未満、かつ、第２の時間間隔のＭ倍（Ｍは自然数）となる第４の時間間隔を算出するステップと、第２の時間間隔ごとの仮想復号バッファの蓄積量の推移を算出するステップと、所定ピクチャ時間間隔で、ピクチャごとのピクチャ復号時刻を算出するステップと、現ピクチャのピクチャ復号時刻におけるピクチャ復号直後の仮想復号バッファ蓄積量がゼロ以上の場合には、現ピクチャのピクチャ復号時刻を第１の時刻として設定し、また、現ピクチャのピクチャ復号時刻におけるピクチャ復号直後の仮想復号バッファ蓄積量が負の場合には、現ピクチャのピクチャ復号時刻後にピクチャ復号直後の仮想復号バッファ蓄積量がゼロ以上となる最初の時刻を第１の時刻として算出するステップと、第１の時刻から第４の時間間隔後の時刻を第２の時刻として算出するステップと、所定ピクチャ時間間隔以上である第５の時間間隔を設定するステップと、現ピクチャのピクチャ復号時刻から第５の時間間隔後の時刻を第３の時刻として、第２の時刻が第３の時刻より前の場合には、第１の時刻を現ピクチャのピクチャ復号時刻として符号化してピクチャ符号を出力するように制御するステップと、次ピクチャを符号化する際に、第２の時刻が次ピクチャのピクチャ復号時刻を超えた場合には、次ピクチャのピクチャ復号時刻を第２の時刻に修正して、次ピクチャを符号化するように制御するステップと、を含む。
【発明の効果】
【００３５】
第１の発明により、アンダーフローが発生しても、次ピクチャ復号時刻までに、符号化レベルで規定する単位時間あたりの最大マクロブロック数で１ピクチャを復号する時間間隔以上確保できる期間を設けることができ、この期間にアンダーフローが解消するのであれば、ピクチャ復号時刻を変更することで、アンダーフローすることなくピクチャ符号を破棄せずに符号化できる。
【００３６】
これにより、例えば、所定のピクチャ時間間隔より短い第２の時間間隔で表示することで、画像欠落の少ない表示を提供できる。更に、一般に、ピクチャ間符号化ではピクチャ間隔が大きくなると時間的な相関性が低下して符号化効率が悪くなる問題を回避できる。
【００３７】
第２の発明により、アンダーフローが発生しても、次ピクチャ復号時刻を遅らせることで、第１の発明に比べて、符号化レベルで規定する単位時間あたりの最大マクロブロック数で１ピクチャを復号する時間間隔以上確保できる期間を拡大することができ、この期間にアンダーフローが解消するのであれば、ピクチャ復号時刻を変更することで、第１の発明に比べて、より長い期間、アンダーフローすることなくピクチャ符号を破棄せずに符号化できる。
【００３８】
これにより、第１の発明に比べてより効果的に、例えば、所定のピクチャ時間間隔より短い第２の時間間隔で表示することで、画像欠落の少ない表示を提供できる。更に、一般に、ピクチャ間符号化ではピクチャ間隔が大きくなると時間的な相関性が低下して符号化効率が悪くなる問題を回避できる。
【図面の簡単な説明】
【００３９】
【図１】本発明の第１の実施例を示すブロック図である。
【図２】本発明の第１の実施例の動作を説明するフローチャートである。
【図３】本発明の第１の実施例の動作を説明する仮想復号バッファ推移図である。
【図４】本発明の第２の実施例を示すブロック図である。
【図５】本発明の第２の実施例の動作を説明するフローチャートである。
【図６】本発明の第２の実施例の動作を説明する仮想復号バッファ推移図である。
【図７】従来例を示すブロック図である。
【図８】従来例の動作を説明するフローチャートである。
【図９】従来例の動作を説明する仮想復号バッファ推移図である。
【図１０】本発明の第３の実施例を示すブロック図である。
【発明を実施するための形態】
【００４０】
以下、本発明の実施の形態について図面により説明する。
【００４１】
図１は、本発明による第１の実施例を説明するブロック図である。図２は、本発明による第１の実施例の説明するフローチャートである。図３は、本発明による第１の実施例を説明する仮想復号バッファ推移図である。図４は、第２の実施例を説明するブロック図である。図５は、本発明による第２の実施例の説明するフローチャートである。図６は、本発明による第２の実施例を説明する仮想復号バッファ推移図である。なお、図１と図４では、後述するように機能ブロックの一部動作が異なる。
【００４２】
また、第１の実施例、及び、第２の実施例の説明において、所定ピクチャ時間間隔ＰＴの動画像の各ピクチャを、MPEG-4 AVCに準じて、ピクチャ内符号化、もしくは、ピクチャ間符号化するものとする。
【実施例１】
【００４３】
（第１の実施例のブロック図の説明）
まず、第１の実施例について図１を用いて説明する。
【００４４】
時間間隔算出器１０１は、符号化レベルと符号化ピクチャサイズを入力して、第１の時間間隔ＴＱ１、及び、第２の時間間隔ＴＱ２を算出して出力する。第１の実施例において、MPEG-4 AVCのHRDのCPB規定におけるclock tickとして第２の時間間隔ＴＱ２を用いる。
【００４５】
符号化パラメータ設定器１０２は、符号化レベルと符号化ピクチャサイズ、及び、時間間隔算出器１０１からの第２の時間間隔ＴＱ２を入力して、符号化レベル、符号化ピクチャサイズ、及び、第２の時間間隔ＴＱ２をMPEG-4 AVCにおけるHRDのCPB規定におけるclock tickとして符号化パラメータに設定して出力する。
【００４６】
符号化器１０３は、符号化パラメータ設定器１０１からの符号化パラメータを、例えば、３０ピクチャごとにピクチャ符号化直前に符号化する。また、符号化制御器１０６から指示されたピクチャ復号時刻とピクチャ目標符号量に従い、ピクチャを符号化ピクチャサイズにサイズ変換した後、ブロック分割してピクチャ内符号化、もしくは、ピクチャ間符号化して、ピクチャ復号時刻符号化１０４に出力する。また、符号化結果として、各ピクチャのピクチャ復号時刻とピクチャ符号量を、仮想復号バッファ演算器１０５に出力する。
【００４７】
ピクチャ復号時刻符号化器１０４は、符号化制御器１０６からの第１の時刻を現ピクチャのピクチャ復号時刻としてピクチャ符号に付随する補助情報を符号化すると共に、符号化器１０３からの現ピクチャのピクチャ符号に付加する。また、符号化制御器１０６からピクチャ符号の破棄が指示された場合には、ピクチャ符号を出力せずに破棄し、ピクチャ符号の破棄が指示されない場合には、符号出力としてピクチャ符号を出力する。
【００４８】
仮想復号バッファ演算器１０５は、符号化器１０３からの各ピクチャのピクチャ復号時刻とピクチャ符号量に基づき、MPEG-4 AVCにおけるHRDのCPB規定に従い、仮想復号バッファの蓄積量の推移を演算して、符号化制御器１０６に出力する。
【００４９】
符号化制御器１０６は、所定ピクチャ時間間隔で符号化順に順次ピクチャごとのピクチャ復号時刻を算出して設定すると共に、仮想復号バッファ演算器１０５から仮想復号バッファの蓄積量の推移に基づき、ピクチャ目標符号量を算出して設定して、符号化器１０３にピクチャ符号化を指示する。また、仮想復号バッファ演算器１０５から仮想復号バッファの蓄積量の推移に基づき、第１の時刻を設定して、ピクチャ復号時刻符号化器１０４に出力する。更に、符号化制御器１０６は、仮想復号バッファ演算器１０５からの仮想復号バッファの蓄積量の推移に基づき、ピクチャ符号を破棄すると判断をした場合には、ピクチャ復号時刻符号化器１０４にピクチャ符号の破棄を指示する。
（第１の実施例のフローチャートと仮想復号バッファの推移図の説明）
次に、図２と図３を用いて説明する。
【００５０】
ステップＳ２０１では、符号化レベルと符号化ピクチャサイズを入力し、第１の時間間隔ＴＱ１と第２の時間間隔ＴＱ２を以下のように算出して、ステップＳ２０２に進む。
【００５１】
入力された符号化レベルに基づく単位時間当たりの最大マクロブロック数を、第１の単位時間あたりのマクロブロック数ＮＭＢ１とする。また、入力された符号化ピクチャサイズは、入力動画像の所定ピクチャ時間間隔において第１の単位時間あたりのマクロブロック数より少ない第２の単位時間あたりのマクロブロック数ＮＭＢ２となる符号化ピクチャサイズである。
【００５２】
第１の時間間隔ＴＱ１は、入力符号化レベルに基づく第１の単位時間あたりのマクロブロック数で、入力動画像の所定ピクチャ時間間隔において第１の単位時間あたりのマクロブロック数より少ない第２の単位時間あたりのマクロブロック数ＮＭＢ２となる符号化ピクチャサイズを復号するのに要する時間間隔である。
【００５３】
第２の時間間隔ＴＱ２は、入力動画像の所定ピクチャ時間間隔と第１の時間間隔ＴＱ１との時間差以下で、かつ、所定ピクチャ時間間隔の１／Ｎ（Ｎは２以上の自然数）となる時間間隔であり、本発明における仮想復号バッファの動作時間単位であり、MPEG-4 AVCにおけるHRDのCPB規定で用いるclock tickである。
【００５４】
第１の時間間隔ＴＱ１、及び、第２の時間間隔ＴＱ２は、符号化レベル入力に基づく第１の単位時間あたりのマクロブロック数ＮＭＢ１と、符号化ピクチャサイズ入力に基づく第２の単位時間あたりのマクロブロック数ＮＭＢ２と、動画像の所定ピクチャ時間間隔ＰＴとから下記のように算出する。
【００５５】
ＴＱ１  ＝  ＰＴ×（ＮＭＢ２／ＮＭＢ１）                            （式１）
Ｎ      ＝  Ｃｅｉｌ（ＰＴ／（ＰＴ−ＴＱ１））＋α                  （式２）
ＴＱ２  ＝  ＰＴ／Ｎ                                                （式３）
ここで、Ｃｅｉｌ（ｘ）は天井関数であり、実数ｘに対してｘ以上の最小の整数を返す。また、αは０以上の任意の整数である。
【００５６】
例えば、以下の条件で符号化する。
【００５７】
（条件１）
ピクチャーレート：  ３０Ｈｚ
ピクチャサイズ：    １２８０×７２０
符号化方式：        ＭＰＥＧ−４  ＡＶＣ
符号化レベル：      レベル３．１
ピクチャ時間間隔は１／３０秒となり、第１の単位時間あたりのマクロブロック数は毎秒１０８０００マクロブロックとなる。このとき、符号化ピクチャサイズを入力動画像に対して水平方向３／４である９６０×７２０とする。第２の単位時間あたりのマクロブロック数は、毎秒８１０００マクロブロックとなる。これにより、第１の時間間隔ＴＱ１、及び、第２の時間間隔ＴＱ２は以下となる。
【００５８】
ＴＱ１  ＝  １／３０×（８１０００／１０８０００）    ＝  １／４０秒       （式４）
Ｎ      ＝  Ｃｅｉｌ（（１／３０）／（（１／３０）−（１／４０））
＝  ４                                                （式５）
ＴＱ２  ＝  （１／３０）／４                          ＝１／１２０秒       （式６）
ここで、（式５）では（式２）におけるαを０としたが、αを１としてもよいし、他の自然数でもよい。
【００５９】
図３は、（条件１）、及び、（式４）から（式６）に基づき作図している。仮想復号バッファは、ピクチャ時間間隔ＰＴの１／４である第２の時間間隔ＴＱ２を単位時間として動作する。また、図３では、小数点を用いて時刻を、例えば、時刻ｔ１、時刻ｔ１．１、時刻ｔ１．２、時刻ｔ１．３のように表す。整数部は、ピクチャ時間間隔ＰＴを単位とする。小数部は、第２の時間間隔ＴＱ２を単位とする。図３では、（式５）に基づきＮを４とするので、小数部は４進法で扱う。すなわち、例えば、以下となる。
【００６０】
時刻ｔ１＝時刻（ｔ１＋０×ＴＱ２）                              （式７）
時刻ｔ１．１＝時刻（ｔ１＋１×ＴＱ２）                              （式８）
時刻ｔ１．２＝時刻（ｔ１＋２×ＴＱ２）                              （式９）
時刻ｔ１．３＝時刻（ｔ１＋３×ＴＱ２）                              （式10）
時刻ｔ１．４＝時刻（ｔ１＋４×ＴＱ２）＝時刻（ｔ１＋ＰＴ）＝時刻ｔ２       （式11）
ステップＳ２０２では、符号化レベルと符号化ピクチャサイズ、及び、第２の時間間隔ＴＱ２を入力して、符号化レベル、符号化ピクチャサイズ、及び、第２の時間間隔ＴＱ２をMPEG-4 AVCにおけるHRDのCPB規定におけるclock tickとして符号化パラメータに設定して、ステップＳ２０３に進む。
【００６１】
ステップＳ２０３では、所定ピクチャ時間間隔ＰＴで、符号化順に順次、ピクチャごとに算出した時刻として現ピクチャのピクチャ復号時刻を設定して、ステップＳ２０４に進む。
【００６２】
例えば、図３において、ピクチャＰ１の場合には、ピクチャ復号時刻を時刻ｔ１に設定する。以降、ピクチャＰ２の場合には時刻ｔ２を、ピクチャＰ３の場合には時刻ｔ３を、ピクチャＰ４の場合には時刻ｔ４を設定する。ピクチャＰ５の場合には時刻ｔ５を設定する。ピクチャＰ６の場合には時刻ｔ６を設定する。
【００６３】
ステップＳ２０４では、現ピクチャのピクチャ復号直前の仮想復号バッファ蓄積量を最大として、例えば、過去の仮想復号バッファ推移に基づきピクチャ目標符号量を算出して、ステップＳ２０５に進む。
【００６４】
例えば、図３において、ピクチャＰ１のピクチャ復号時刻ｔ１直前の仮想復号バッファ蓄積量はｄｂ１であり、ピクチャＰ２のピクチャ復号時刻ｔ２直前の仮想復号バッファ蓄積量はｄｂ２である。ピクチャＰ１の場合には、仮想復号バッファ蓄積量ｄｂ１を最大として目標符号量を算出する。ピクチャＰ２の場合には、仮想復号バッファ蓄積量ｄｂ２を最大としてピクチャ目標符号量を算出する。
【００６５】
ステップＳ２０５では、符号化パラメータを符号化するか否か判断する。例えば、３０ピクチャごとに符号化パラメータを符号化、それ以外は符号化しないと判断する。そして、符号化パラメータを符号化すると判断する場合はステップＳ２０６に進み、符号化パラメータを符号化しないと判断する場合はステップＳ２０７に進む。
【００６６】
ステップＳ２０６では、符号化パラメータを符号化して、ステップＳ２０７に進む。
【００６７】
ステップＳ２０７では、現ピクチャを符号化ピクチャサイズ応じてサイズ変換した後、ブロック分割して、ステップＳ２０４で設定したピクチャ目標符号量に応じて、ピクチャ内符号化、もしくは、ピクチャ間符号化して、ステップＳ２０８に進む。
【００６８】
ステップＳ２０８では、現ピクチャのピクチャ復号時刻において、ピクチャ復号直後の仮想復号バッファ蓄積量がゼロ以上アンダーフロー発生なし判断してステップＳ２０９に進み、ピクチャ復号直後の仮想復号バッファ蓄積量が負ならばアンダーフロー発生と判断してステップＳ２１０に進む。
【００６９】
例えば、図３において、ピクチャＰ１の場合には、ピクチャ復号時刻ｔ１におけるピクチャ復号直後の仮想復号バッファ蓄積量ｄａ１はゼロ以上なので、アンダーフロー発生なしと判断する。ピクチャＰ２の場合には、ピクチャ復号時刻ｔ２におけるピクチャ復号直後の仮想復号バッファ蓄積量ｄａ２は負なので、アンダーフロー発生と判断する。
【００７０】
ステップＳ２０９では、現ピクチャのピクチャ復号時刻を第１の時刻として設定し、ステップＳ２１４に進む。
【００７１】
ステップＳ２１０では、アンダーフロー発生後、現ピクチャのピクチャ復号直後の仮想復号バッファ蓄積量がゼロ以上となる最初の時刻を第１の時刻として設定し、ステップＳ２１１に進む。
【００７２】
例えば、図３において、ピクチャＰ２の場合には、ピクチャ復号時刻ｔ２においてアンダーフロー発生後、ピクチャＰ２のピクチャ復号直後の仮想復号バッファ蓄積量がゼロ以上となる最初の時刻は、時刻ｔ２．１である。ピクチャＰ２の場合には、第１の時刻を時刻ｔ２．１と設定する。同様に、ピクチャＰ４の場合には、ピクチャ復号時刻ｔ４においてアンダーフロー発生後、ピクチャＰ４のピクチャ復号直後の仮想復号バッファ蓄積量がゼロ以上となる最初の時刻は、時刻ｔ４．２である。ピクチャＰ４の場合には、第１の時刻を時刻ｔ４．２と設定する。
【００７３】
ステップＳ２１１では、第１の時刻から次ピクチャのピクチャ復号時刻までの時間間隔を、第３の時間間隔ＴＱ３として算出して、ステップＳ２１２に進む。
【００７４】
例えば、図３において、ピクチャＰ２の場合には、第１の時刻である時刻ｔ２．１から次ピクチャＰ３のピクチャ復号時刻ｔ３までの時間間隔が、第３の時間間隔ＴＱ３である。（条件１）に基づく場合には、ピクチャＰ２における第３の時間間隔ＴＱ３（Ｐ２）は以下となる。
【００７５】
ＴＱ３（Ｐ２）＝ｔ３−ｔ２．１
＝３×ＴＱ２＝３×（１／１２０）＝１／４０秒   （式12）
同様に、ピクチャＰ４の場合には、第１の時刻である時刻ｔ４．２から次ピクチャＰ５のピクチャ復号時刻ｔ５までの時間間隔が、第３の時間間隔ＴＱ３である。（条件１）に基づく場合には、ピクチャＰ４における第３の時間間隔ＴＱ３（Ｐ４）は以下となる。
【００７６】
ＴＱ３（Ｐ４）＝ｔ５−ｔ４．２
＝２×ＴＱ２＝２×（１／１２０）＝１／６０秒   （式13）
ステップＳ２１２では、第３の時間間隔ＴＱ３と第１の時間間隔ＴＱ１を比較して、ＴＱ３がＴＱ１未満の場合にはステップＳ２１３に進み、ＴＱ３がＴＱ１以上の場合にはステップＳ２１４に進む。
【００７７】
例えば、図３において、ピクチャＰ２の場合には、（式７）から第３の時間間隔ＴＱ３は１／４０秒、（式４）から第１の時間間隔ＴＱ１は１／４０秒である。ＴＱ３はＴＱ１以上なので、ピクチャＰ２の場合には、ステップＳ２１４に進む。ピクチャＰ４の場合には、（式８）から第３の時間間隔ＴＱ３は１／６０秒、（式４）から第１の時間間隔ＴＱ１は１／４０秒である。ＴＱ３はＴＱ１未満なので、ピクチャＰ４の場合には、ステップＳ２１３に進む。
【００７８】
ステップＳ２１３では、ステップＳ２０６における符号化パラメータの符号も含めて、現ピクチャのピクチャ符号を破棄して、ステップＳ２１６に進む。
【００７９】
現ピクチャのピクチャ符号を出力せず、以降の符号化において、現ピクチャを参照ピクチャに用いないようにする。また、仮想復号バッファ推移の演算において、現ピクチャをピクチャスキップする。例えば、図３において、ピクチャＰ４のピクチャ符号を破棄すると共に、以降の符号化において、ピクチャＰ４を参照ピクチャに用いないようにする。また、仮想復号バッファ推移の演算において、ピクチャＰ４をピクチャスキップする。
【００８０】
ステップＳ２１４では、第１の時刻を現ピクチャの復号時刻とし、ピクチャ符号に付随する補助情報として符号化して、ステップＳ２１５に進む。
【００８１】
ステップＳ２１５では、現ピクチャのピクチャ符号を出力して、ステップＳ２１６に進む。
【００８２】
ステップＳ２１６では、動画像の符号化処理を終了するか否かを、例えば、外部からの符号化処理終了コマンドの入力により判断して、符号化を終了しない場合はステップＳ２０３に戻り、符号化を終了する場合は一連の処理を終了する。
【００８３】
以上、第１の実施例では、符号化レベルの入力により間接的に第１の単位時間当たりのマクロブロック数を設定したが、直接的に第１の単位時間当たりのマクロブロック数を設定してもよい。
【００８４】
第１の実施例により、アンダーフローが発生する場合においても、次ピクチャ復号時刻までに、符号化レベルで規定する単位時間あたりの最大マクロブロック数で１ピクチャを復号する時間間隔以上確保できる期間を設けることができ、この期間であれば、第１の時刻をピクチャ復号時刻として符号化することで、仮想復号バッファにおけるアンダーフロー発生を回避でき、ピクチャ符号を破棄せずに出力することができる。
【００８５】
これにより、例えば、所定のピクチャ時間間隔より短い第２の時間間隔で表示することで、画像欠落の少ない表示を提供できる。また、一般に、ピクチャ間符号化ではピクチャ間隔が大きくなると時間的な相関性が低下して符号化効率が悪くなる問題を回避できる。
【実施例２】
【００８６】
（第２の実施例のブロック図の説明）
第２の実施例について図４を用いて説明する。
【００８７】
時間間隔算出器４０１は、符号化レベルと符号化ピクチャサイズを入力して、第１の時間間隔ＴＱ１、第２の時間間隔ＴＱ２、及び、第４の時間間隔ＴＱ４を算出して出力し、また、所定ピクチャ時間間隔以上である第５の時間間隔を設定して出力する。第２の実施例において、MPEG-4 AVCのHRDのCPB規定におけるclock tickとして第２の時間間隔ＴＱ２を用いる。
【００８８】
符号化パラメータ設定器４０２は、符号化レベルと符号化ピクチャサイズ、及び、時間間隔算出器４０１からの第２の時間間隔ＴＱ２を入力して、符号化レベル、符号化ピクチャサイズ、及び、MPEG-4 AVCのHRDのCPB規定におけるclock tickとして符号化パラメータに設定して出力する。
【００８９】
符号化器４０３は、符号化パラメータ設定器４０１からの符号化パラメータを、例えば、３０ピクチャごとにピクチャ符号化直前に符号化する。また、符号化制御器４０６から指示されたピクチャ復号時刻とピクチャ目標符号量に従い、ピクチャを符号化ピクチャサイズにサイズ変換した後、ブロック分割してピクチャ内符号化、もしくは、ピクチャ間符号化して、ピクチャ復号時刻符号化器４０４に出力する。また、符号化結果として、各ピクチャのピクチャ復号時刻とピクチャ符号量を、仮想復号バッファ演算器４０５に出力する。
【００９０】
ピクチャ復号時刻符号化器４０４は、符号化制御器４０６からの第１の時刻を現ピクチャのピクチャ復号時刻としてピクチャ符号に付随する補助情報に符号化すると共に、符号化器４０３からの現ピクチャのピクチャ符号に付加する。また、符号化制御器４０６からピクチャ符号の破棄が指示された場合には、ピクチャ符号を出力せずに破棄し、ピクチャ符号の破棄が指示されない場合には、符号出力としてピクチャ符号を出力する。
【００９１】
仮想復号バッファ演算器４０５は、符号化器４０３からの各ピクチャのピクチャ復号時刻とピクチャ符号量に基づき、MPEG-4 AVCにおけるHRDのCPB規定に従い、仮想復号バッファの蓄積量の推移を演算して、符号化制御器４０６に出力する。
【００９２】
符号化制御器４０６は、所定ピクチャ時間間隔で符号化順に順次ピクチャごとのピクチャ復号時刻を算出して設定すると共に、仮想復号バッファ演算器１０５から仮想復号バッファの蓄積量の推移に基づき、ピクチャ目標符号量を算出して設定して、符号化器４０３にピクチャ符号化を指示する。また、仮想復号バッファ演算器４０５から仮想復号バッファの蓄積量の推移に基づき、第１の時刻、及び、第２の時刻を算出して設定して、第１の時刻をピクチャ復号時刻符号化器４０４に出力する。また、次ピクチャのピクチャ復号時刻を第２の時刻に修正すると判断した場合には、次ピクチャのピクチャ復号時刻を第２の時刻に修正して設定する。更に、仮想復号バッファ演算器４０５からの仮想復号バッファの蓄積量の推移に基づき、ピクチャ符号を破棄すると判断をした場合には、ピクチャ復号時刻符号化器４０４にピクチャ符号の破棄を指示する。
（第２の実施例のフローチャートと仮想復号バッファの推移図の説明）
次に、図５と図６を用いて説明する。
【００９３】
ステップＳ５０１では、符号化レベルと符号化ピクチャサイズを入力し、第１の時間間隔ＴＱ１、第２の時間間隔ＴＱ２、及び、第４の時間間隔を以下のように算出して、また、所定ピクチャ時間間隔以上の第５の時間間隔を設定して、ステップＳ５０２に進む。
【００９４】
第１の時間間隔ＴＱ１と第２の時間間隔ＴＱ２の算出方法は、第１の実施例と同様である。第４の時間間隔ＴＱ４の算出方法について以下に説明する。
【００９５】
第４の時間間隔ＴＱ４は、第１の時間間隔ＴＱ１以上でピクチャ時間間隔ＰＴ未満、かつ、第２の時間間隔ＴＱ２のＭ倍（Ｍは自然数）となる時間間隔である。
【００９６】
ＴＱ４  ＝  Ｍ×ＴＱ２                                       （式14）
ＴＱ１  ≦  ＴＱ４  ＜  ＰＴ                                        （式15）
例えば、第１の実施例と同様に (条件１)で符号化する。
【００９７】
（式４）から第１の時間間隔ＴＱ１は１／４０秒、（式６）から第２の時間間隔ＴＱ２は１／１２０秒、ピクチャ時間間隔ＰＴは１／３０であり、第４の時間間隔ＴＱ４は以下となる。
【００９８】
ＴＱ４  ＝  ３×（１／１２０）    ＝１／４０秒               （式16）
１／４０秒  ≦  ＴＱ４  ＜  １／３０秒                       （式17）
ここで、（式16）では（式14）におけるＭを３とした。
【００９９】
また、図６は、（条件１）、（式４）から（式６）、（式16）、及び、（式17）に基づき作図している。仮想復号バッファは、ピクチャ時間間隔ＰＴの１／４である第２の時間間隔ＴＱ２を単位時間として動作する。また、図６では、小数点を用いて時刻を、例えば、時刻ｔ１、時刻ｔ１．１、時刻ｔ１．２、時刻ｔ１．３のように表す。整数部は、ピクチャ時間間隔ＰＴを単位とする。小数部は、第２の時間間隔ＴＱ２を単位とする。図６では、（式５）に基づきＮを４とするので、小数部は４進法で扱う。すなわち、図３と同様に、（式７）から（式11）となる。
【０１００】
また、所定ピクチャ時間間隔以上である第５の時間間隔を設定する。例えば、第５の時間間隔を、所定ピクチャ時間間隔の２倍、すなわち、２ピクチャ分の時間間隔に設定する。
【０１０１】
ステップＳ５０２では、符号化レベルと符号化ピクチャサイズ、及び、第２の時間間隔ＴＱ２を入力して、符号化レベル、符号化ピクチャサイズ、及び、第２の時間間隔ＴＱ２をMPEG-4 AVCのHRDのCPB規定におけるclock tickとして符号化パラメータに設定して、ステップＳ５０３に進む。
【０１０２】
ステップＳ５０３では、所定ピクチャ時間間隔ＰＴで、符号化順に順次、ピクチャごとに算出した時刻として現ピクチャのピクチャ復号時刻を設定して、ステップＳ５０４に進む。
【０１０３】
例えば、図６において、ピクチャＰ１の場合には、ピクチャ復号時刻を時刻ｔ１に設定する。以降、ピクチャＰ２の場合には時刻ｔ２を、ピクチャＰ３の場合には時刻ｔ３を、ピクチャＰ４の場合には時刻ｔ４を、ピクチャＰ５の場合には時刻ｔ５を、ピクチャＰ６の場合には時刻ｔ６を、ピクチャＰ７の場合には時刻ｔ７を設定する。
【０１０４】
ステップＳ５０４では、前ピクチャにおいてステップＳ５１１で算出して設定した第２の時刻と、現ピクチャにおいてステップＳ５０３で設定した現ピクチャのピクチャ復号時刻とを比較する。第２の時刻が現ピクチャのピクチャ復号時刻を超える場合には、ステップＳ５０５に進む。また、第２の時刻が現ピクチャのピクチャ復号時刻以前の場合には、ステップＳ５０６に進む。
【０１０５】
例えば、図６において、ピクチャＰ２の場合には、前ピクチャＰ１においてステップＳ５１１で算出して設定した第２の時刻Ｔ２（Ｐ１）は時刻ｔ１．３であり、ピクチャＰ２のピクチャ復号時刻ｔ２以前なので、ステップＳ５０６に進む。ピクチャＰ３の場合には、前ピクチャＰ２においてステップＳ５１１で算出して設定した第２の時刻Ｔ２（Ｐ２）は時刻ｔ３．１であり、ピクチャＰ３のピクチャ復号時刻ｔ３を越えるので、ステップＳ５０５に進む。また、ピクチャＰ６の場合には、前ピクチャＰ５においてステップＳ５１１で算出して設定した第２の時刻Ｔ２（Ｐ５）は時刻ｔ７であるが、前ピクチャＰ５において、ステップＳ５１０で算出して設定した第１の時刻Ｔ１（Ｐ５）が時刻ｔ６．１であるため、ステップＳ５１４においてピクチャＰ５のピクチャ符号が破棄して、第２の時刻Ｔ２（Ｐ５）もゼロにリセットしたので、ステップＳ５０６に進む。
【０１０６】
ステップＳ５０５では、ステップＳ５０３で設定した現ピクチャのピクチャ復号時刻を、前ピクチャにおいてステップＳ５１１で算出して設定した第２の時刻に修正して、ステップＳ５０６に進む。
【０１０７】
例えば、図６において、ピクチャＰ３のピクチャ復号時刻を、時刻ｔ３から時刻ｔ３．１に修正して、ステップＳ５０６に進む。
【０１０８】
ステップＳ５０６では、現ピクチャのピクチャ復号直前の仮想復号バッファ蓄積量を最大として、例えば、過去の仮想復号バッファ推移に基づきピクチャ目標符号量を算出して、ステップＳ５０７に進む。
【０１０９】
例えば、図６において、ピクチャＰ１のピクチャ復号時刻ｔ１直前の仮想復号バッファ蓄積量はｄｂ１であり、ピクチャＰ２のピクチャ復号時刻ｔ２直前の仮想復号バッファ蓄積量はｄｂ２である。ピクチャＰ１は仮想復号バッファ蓄積量ｄｂ１を最大としてピクチャ目標符号量を算出する。ピクチャＰ２は仮想復号バッファ蓄積量ｄｂ２を最大としてピクチャ目標符号量を算出する。
【０１１０】
ステップＳ５０７では、符号化パラメータを符号化するか否か判断する。例えば、３０ピクチャごとに符号化パラメータを符号化、それ以外は符号化しないと判断する。そして、符号化パラメータを符号化すると判断する場合はステップＳ５０８に進み、符号化パラメータを符号化しないと判断する場合はステップＳ５０９に進む。
【０１１１】
ステップＳ５０８では、符号化パラメータを符号化して、ステップＳ５０９に進む。
【０１１２】
ステップＳ５０９では、現ピクチャを符号化ピクチャサイズに応じてサイズ変換した後、ブロック分割して、ステップ５０６で設定したピクチャ目標符号量に応じて、ピクチャ内符号化、もしくは、ピクチャ間符号化して、ステップＳ５１０に進む。
【０１１３】
ステップＳ５１０では、現ピクチャのピクチャ復号時刻において、ピクチャ復号直後の仮想復号バッファ蓄積量がゼロ以上の場合には、現ピクチャのピクチャ復号時刻を第１の時刻として設定し、また、現ピクチャのピクチャ復号時刻におけるピクチャ復号直後の仮想復号バッファ蓄積量が負の場合には、現ピクチャのピクチャ復号時刻の後にピクチャ復号直後の仮想復号バッファ蓄積量がゼロ以上となる最初の時刻を第１の時刻として設定して、ステップＳ５１１に進む。
【０１１４】
例えば、図６において、ピクチャＰ１の場合には、ピクチャ復号時刻ｔ１におけるピクチャ復号直後の仮想復号バッファ蓄積量ｄａ１はゼロ以上なので、ピクチャＰ１における第１の時刻Ｔ１（Ｐ１）として時刻ｔ１を設定する。ピクチャＰ２の場合には、ピクチャ復号時刻ｔ２におけるピクチャ復号直後の仮想復号バッファ蓄積量ｄａ２は負であり、時刻ｔ２の後にピクチャ復号直後の仮想復号バッファ蓄積量がゼロ以上となる最初の時刻ｔ２．２を第１の時刻Ｔ１（Ｐ２）として設定する。ピクチャＰ５の場合には、ピクチャ復号時刻ｔ５におけるピクチャ復号直後の仮想復号バッファ蓄積量ｄａ５は負であり、時刻ｔ５の後にピクチャ復号直後の仮想復号バッファ蓄積量がゼロ以上となる最初の時刻ｔ６．１を第１の時刻Ｔ１（Ｐ５）として設定する。
【０１１５】
ステップＳ５１１では、ステップＳ５１０で設定した第１の時刻から、ステップＳ５０１で設定した第４の時間間隔後の時刻を、第２の時刻として設定して、ステップＳ５１２に進む。
【０１１６】
例えば、図６において、ピクチャＰ１の場合には、第１の時刻Ｔ１（Ｐ１）は時刻ｔ１であり、第１の時刻Ｔ１（Ｐ１）から第４の時間間隔ＴＱ４後の時刻である、時刻ｔ１．３を、第２の時刻Ｔ２（Ｐ１）として設定する。ピクチャＰ２の場合には、第１の時刻Ｔ１（Ｐ２）は時刻ｔ２．２であり、第１の時刻Ｔ１（Ｐ２）から第４の時間間隔ＴＱ４後の時刻である、時刻ｔ３．１を、第２の時刻Ｔ２（Ｐ２）として設定する。ピクチャＰ５の場合には、第１の時刻Ｔ２（Ｐ５）は時刻ｔ６．１であり、第１の時刻Ｔ１（Ｐ５）から第４の時間間隔ＴＱ４後の時刻である、時刻ｔ７を、第２の時刻Ｔ２（Ｐ５）として設定する。
【０１１７】
ステップＳ５１２では、現ピクチャのピクチャ復号時刻から第５の時間間隔後の時刻を、第３の時刻として算出して設定して、ステップＳ５１３に進む。
【０１１８】
例えば、ステップS５０１において第５の時間間隔を２ピクチャ分のピクチャ時間間隔としたので、第３の時刻を次々ピクチャの復号時刻として設定する。すなわち、図６において、ピクチャＰ１の場合には第３の時刻Ｔ３（Ｐ１）として時刻ｔ３を設定する。以降、ピクチャＰ２の場合には第３の時刻Ｔ３（Ｐ４）として時刻ｔ４を、ピクチャＰ３の場合には第３の時刻Ｔ３（Ｐ３）として時刻ｔ５を、ピクチャＰ４の場合には第３の時刻Ｔ３（Ｐ４）として時刻ｔ６を、ピクチャＰ５の場合には第３の時刻Ｔ３（Ｐ５）として時刻ｔ７を、ピクチャＰ６の場合には第３の時刻Ｔ３（Ｐ６）として時刻ｔ８を、ピクチャＰ７の場合には第３の時刻Ｔ３（Ｐ７）として時刻ｔ９を設定する。
【０１１９】
ステップＳ５１３では、ステップＳ５１１で設定した第２の時刻と、ステップＳ５１２で設定した第３の時刻とを比較する。第２の時刻が第３の時刻以降の場合には、ステップＳ５１４に進む。第２の時刻が第３の時刻より前の場合には、ステップＳ５１５に進む。
【０１２０】
例えば、図６において、ピクチャＰ５の場合には、第２の時刻Ｔ２（Ｐ５）は時刻ｔ７であり、第３の時刻Ｔ３（Ｐ５）である時刻ｔ７以降なので、ステップＳ５１４に進む。ピクチャＰ２の場合には、第２の時刻Ｔ２（Ｐ２）は時刻ｔ３．１であり、第３の時刻Ｔ３（Ｐ２）である時刻ｔ４より前なので、ステップＳ５１５に進む。
【０１２１】
ステップＳ５１４では、ステップＳ５０８における符号化パラメータの符号も含めて、現ピクチャのピクチャ符号を破棄し、また、ステップＳ５１１で算出して設定した第２の時刻をゼロにリセットして、ステップＳ５１７に進む。
【０１２２】
現ピクチャのピクチャ符号を出力せず、以降の符号化において、現ピクチャを参照ピクチャに用いないようにする。また、仮想復号バッファ推移の演算において、現ピクチャをピクチャスキップする。例えば、図６において、ピクチャＰ５のピクチャ符号を破棄して、第２の時刻Ｔ２（Ｐ５）をゼロにリセットすると共に、以降の符号化において、ピクチャＰ５参照ピクチャに用いないようにする。また、仮想復号バッファ推移の演算において、ピクチャＰ５をピクチャスキップする。
【０１２３】
ステップＳ５１５では、第１の時刻を現ピクチャの復号時刻とし、ピクチャ符号に付随する補助情報として符号化して、ステップＳ５１６に進む。
【０１２４】
ステップＳ５１６では、現ピクチャのピクチャ符号を出力して、ステップＳ５１７に進む。
【０１２５】
ステップＳ５１７では、動画像の符号化処理を終了するか否かを、例えば、外部からの符号化処理終了コマンドの入力により判断して、符号化を終了しない場合はステップＳ５０３に進み、符号化を終了する場合は一連の処理を終了する。
【０１２６】
以上、第２の実施例では、符号化レベルの入力により間接的に第１の単位時間当たりのマクロブロック数を設定したが、直接的に第１の単位時間当たりのマクロブロック数を設定してもよい。
【０１２７】
また、第２の実施例では、ステップＳ５１２において、第３の時刻を算出して設定するための所定時間間隔を２ピクチャ分のピクチャ時間間隔として次々ピクチャのピクチャ復号時刻と比較したが、所定時間間隔を３ピクチャ分のピクチャ時間間隔としても良いし、１ピクチャ分のピクチャ時間間隔としても良い。所定時間間隔を１ピクチャ分のピクチャ時間間隔とした場合には、第１の実施例と等価である。
【０１２８】
第２の実施例により、アンダーフローが発生した場合においても、次ピクチャ復号時刻を遅らせることで、第１の実施例に比べて、符号化レベルで規定する単位時間あたりの最大マクロブロック数で１ピクチャを復号する時間間隔以上確保できる期間を拡大することができ、この期間であれば、仮想復号バッファにおけるアンダーフローを回避でき、ピクチャ符号を破棄せずに出力することができる。
【０１２９】
これにより、第１の実施例に比べて、より画像欠落の少ない表示を提供できる。また、一般に、ピクチャ間符号化ではピクチャ間隔が大きくなると時間的な相関性が低下して符号化効率が悪くなる問題をより回避できる。
【実施例３】
【０１３０】
（第３の実施例の説明）
第１の実施例、及び、第２の実施例により、所定ピクチャ時間間隔の動画像の符号化において、ピクチャスキップ部分を除いても、アンダーフローを回避するためにピクチャ復号時刻を補正することで、連続するピクチャのピクチャ復号時刻の時間間隔が所定ピクチャ時間間隔とならない場合が生じる。復号において、低遅延よりも復号表示におけるピクチャ時間間隔を一定にすることが望まれる場合には、例えば、一連のピクチャ復号時刻と対応するピクチャ表示時刻を所定ピクチャ時間間隔単位の時刻となるよう遅延して補正したり、動画像の復号出力にタイムベースコレクターを介して動画像を遅延して出力したりすればよい。例えば、第１の実施例に対応する復号では所定ピクチャ時間間隔以上、第２の実施例に対応する復号では所定時間間隔以上で遅延して補正すればよい。
【０１３１】
第３の実施例として、一連のピクチャ復号時刻と対応するピクチャ表示時刻を所定ピクチャ時間間隔単位の時刻となるよう遅延補正して復号することについて説明する。
【０１３２】
図１０は、第３の実施例を説明するブロック図である。
【０１３３】
分離器１００１は、動画像の各ピクチャを符号化して伝送された符号から、符号化パラメータの符号を分離して符号化パラメータ復号器１００２に出力すると共に、各ピクチャ符号をピクチャ復号器１００４に出力する。
【０１３４】
符号化パラメータ復号器１００２は、分離器１００１からの符号化パラメータの符号を復号して、復号制御器１００３に出力する。
【０１３５】
復号制御器１００３は、符号化パラメータ復号器１００２からの符号化パラメータが示す、プロファイルとレベル、ピクチャ時間間隔、ピクチャサイズ、復号に必要なメモリ、ビットレート等、処々の符号化条件に適応して復号するようにピクチャ復号器１００４を制御する。
【０１３６】
符号化パラメータが示すプロファイルとレベルに適合して復号可能か否かを判定して、復号可能であればピクチャ復号器１００４に順次ピクチャ符号を復号するよう制御し、復号できなければ、例えば、復号不可であることをユーザーに画像表示して一連の処理を終了する。
【０１３７】
ピクチャ復号器１００４への制御は、例えば、プロファイルに準じた符号化方式のサブセットに適応して復号するよう制御したり、レベルに準じたピクチャあたりの最大マクロブロック数、単位時間あたりの最大マクロブロック数、最大ビットレート、復号に必要なメモリに適応して復号するよう制御したり、ピクチャ時間間隔、ピクチャサイズに適応して復号するよう制御したりする。
【０１３８】
ピクチャ復号器１００４は、復号制御器１００３からの制御に従い、分離器１００１からの各ピクチャ符号を、付随する補助情報からのピクチャ復号時刻に基づくタイミングで、逐次復号して動画像を出力する。また、外部から表示時刻補正指示があった場合には、一連のピクチャ復号時刻と対応するピクチャ表示時刻を所定ピクチャ時間間隔単位の時刻となるよう遅延して補正した時刻に基づくタイミングで、逐次復号して動画像を出力する。例えば、所定ピクチャ時間間隔ＰＴにおいて、あるピクチャのピクチャ復号時刻ＤＴＳからの補正ピクチャ復号時刻ＤＴＳｒは（式18）による。
【０１３９】
ＤＴＳｒ  ＝  （ＩＮＴ（ＤＴＳ／ＰＴ）＋１）×ＰＴ＋α                （式18）
ここで、第１の実施例に対応する復号では「αは０以上」、第２の実施例に対応する復号では「αは所定時間間隔と所定ピクチャ時間間隔の差分以上」である。
【０１４０】
また、ピクチャ復号時刻においてピクチャ符号が不完全、すなわち、ピクチャの復号において、ピクチャ復号器入力段に備える符号バッファがアンダーフローする場合には、ピクチャ復号時刻以降、符号化パラメータから得られるclock tickの時間間隔ごとに、従来技術の説明においてはピクチャ時間間隔ＰＴごとに、符号バッファのアンダーフローが解消してピクチャ符号が完全か確認する。そして、ピクチャ符号が完全となりしだい復号する。
【符号の説明】
【０１４１】
１０１  時間間隔算出器
１０２  符号化パラメータ設定器
１０３  符号化器
１０４  ピクチャ復号時刻符号化器
１０５  仮想復号バッファ演算器
１０６  符号化制御器
４０１  時間間隔算出器
４０２  符号化パラメータ設定器
４０３  符号化器
４０４  ピクチャ復号時刻符号化器
４０５  仮想復号バッファ演算器
４０６  符号化制御器
７０１  符号化パラメータ設定器
７０２  符号化器
７０３  仮想復号バッファ演算器
７０４  符号化制御器
１００１  分離器
１００２  符号化パラメータ復号器
１００３  復号制御器
１００４  ピクチャ復号器
【図１】
2011205476.tif 000003
【図２】
2011205476.tif 000004
【図３】
2011205476.tif 000005
【図４】
2011205476.tif 000006
【図５】
2011205476.tif 000007
【図６】
2011205476.tif 000008
【図７】
2011205476.tif 000009
【図８】
2011205476.tif 000010
【図９】
2011205476.tif 000011
【図１０】
2011205476.tif 000012