JP2011135177A - 動画像符号化装置及び動画像符号化方法 - Google Patents

動画像符号化装置及び動画像符号化方法 Download PDF

Info

Publication number
JP2011135177A
JP2011135177A JP2009290822A JP2009290822A JP2011135177A JP 2011135177 A JP2011135177 A JP 2011135177A JP 2009290822 A JP2009290822 A JP 2009290822A JP 2009290822 A JP2009290822 A JP 2009290822A JP 2011135177 A JP2011135177 A JP 2011135177A
Authority
JP
Japan
Prior art keywords
picture
time
time interval
decoding
calculating
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2009290822A
Other languages
English (en)
Inventor
Ichiro Ando
一郎 安藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
JVCKenwood Holdings Inc
Original Assignee
JVCKenwood Holdings Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by JVCKenwood Holdings Inc filed Critical JVCKenwood Holdings Inc
Priority to JP2009290822A priority Critical patent/JP2011135177A/ja
Publication of JP2011135177A publication Critical patent/JP2011135177A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】従来、アンダーフロー発生時に画像が欠落する。
【解決手段】動画像符号化装置は、ピクチャを第1の単位時間あたりのブロック数で復号するに要する第1の時間間隔と、所定ピクチャ時間間隔と第1の時間間隔との時間差以下で、かつ、所定ピクチャ時間間隔の1/N(Nは2以上の自然数)となる第2の時間間隔とを算出する時間間隔算出器101と、現ピクチャのピクチャ復号時刻において、ピクチャ復号直後の仮想復号バッファ蓄積量が負の場合、現ピクチャのピクチャ復号時刻後にピクチャ復号直後の仮想復号バッファ蓄積量がゼロ以上となる最初の時刻を第1の時刻として算出するとともに、第1の時刻から次ピクチャのピクチャ復号時刻までの第3の時間間隔を算出する符号化器103と、第3の時間間隔が第1の時間間隔以上の場合、次ピクチャを符号化するように制御する符号化制御器105とを有する。
【選択図】図1

Description

本発明は、動画像符号化装置及び動画像符号化方法に関するものである。
動画像を効率よく伝送するために動画像信号の時間的冗長性、空間的冗長性、統計的冗長性に着目したピクチャ(1画面/1フレーム)内符号化やピクチャ間符号化を用いる。例えば、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等の国際標準に基づく符号化方式がある。
ピクチャ毎の発生符号量は、ピクチャ内符号化やピクチャ間符号化等の適用する符号化ピクチャタイプ、そのピクチャの絵柄や動き変化により変動する。符号化動画像を所定の伝送レートで伝送するために、符号化出力段や復号入力段に符号を一時滞留させるための符号バッファを設けて符号量変動を吸収する。符号バッファがオーバーフロー(蓄積符号量が余剰)やアンダーフロー(蓄積符号量が不足)すると符号欠落等の障害が発生して復号出力する動画像に乱れが生じる。
符号化側では、出力符号の符号量変動が復号側入力段の符号バッファで吸収できるように符号化する必要がある。例えば、特許文献1に記載の技術を用いて発生符号量を予測しながら量子化幅を制御することでピクチャ発生符号量を調整して、符号バッファがオーバーフローやアンダーフローしないようにする。
符号化出力段や復号入力段の符号バッファの動作は、符号化や復号の実装方法の違いにより異なる。このため、一般に国際標準に基づく符号化方式では、仮想復号バッファを規定することで、符号化や復号の実装方法が異なる場合においても相互運用性を確保できるようにしている。例えば、MPEG-2ビデオのVBV (Video buffer verifier)のVBV buffer、MPEG-4 AVCのHRD (Hypothetical reference decoder)のCPB(Coded picture buffer)等の規定がある。
符号バッファを大きくして一時滞留時間を長くすることで、より大きな符号量変動が吸収できる。すなわち、オーバーフローやアンダーフローの発生を抑制できるが、一時滞留時間を長くすることで遅延が増大する。
テレビ電話、テレビ会議、遠隔操作のための監視システム等の用途では、できる限り遅延を小さくすることが求められる。符号バッファにおける一時滞留時間を短くすることで遅延を小さくできるが、シーンチェンジや急激な動き変化等による符号量変動を吸収できずに復号入力段の符号バッファがアンダーフローする可能性が高くなる。
このため、MPEG-2ビデオやMPEG-4 AVC等では、低遅延モードとして符号化することで、アンダーフローの発生を許容している。
符号化時に仮想復号バッファがアンダーフローした場合、例えば、特許文献2の[従来の技術]に記載のように、符号化や復号が間に合わないと判断してピクチャスキップする。
(従来技術の説明)
以下、従来技術について図面により説明する。図7は、従来技術を説明するブロック図である。図8は、従来技術を説明するフローチャートである。図9は、従来技術を説明する仮想復号バッファ推移図である。
従来技術の説明において、所定ピクチャ時間間隔PTの動画像の各ピクチャを、MPEG-4 AVCに準じて、ブロック分割してピクチャ内符号化、もしくは、ピクチャ間符号化するものとする。また、従来技術の説明において、MPEG-4 AVCにおけるHRDのCPB規定に準じて、ピクチャ時間間隔PTをclock tickとして仮想復号バッファの推移を演算するものとする。
(従来技術のブロック図の説明)
まず、従来技術について図7を用いて説明する。
符号化パラメータ設定器701は、符号化レベルと符号化ピクチャサイズを入力して、符号化レベルと符号化ピクチャサイズに基づき、符号化パラメータを設定して出力する。
ここで、符号化レベルとは、MPEG-4 AVCで規定する「プロファイルとレベル」のレベルに相当する。符号化レベルにより、符号化する際の単位時間あたりの最大マクロブロック数、最大ビットレート、復号に必要なメモリ量等を規定する。
符号化器702は、符号化パラメータ設定器701からの符号化パラメータを、例えば、30ピクチャごとにピクチャ符号化直前に符号化する。また、符号化制御器704から指示されたピクチャ復号時刻とピクチャ目標符号量に従い、ピクチャをブロック分割してピクチャ内符号化、もしくは、ピクチャ間符号化して符号を出力する。この際、ピクチャ復号時刻は、ピクチャ符号に付随する補助情報として符号化する。更に、符号化制御器704からピクチャスキップの指示があった場合には、ピクチャを符号化せずにピクチャスキップする。処理結果として、各ピクチャのピクチャ復号時刻とピクチャ符号量を、仮想復号バッファ演算器703に出力する。
仮想復号バッファ演算器703は、符号化器702からの各ピクチャのピクチャ復号時刻とピクチャ符号量に基づき、MPEG-4 AVCにおけるHRDのCPB規定に従い、所定ピクチャ時間間隔ごとの仮想復号バッファの蓄積量の推移を演算して、符号化制御器704に出力する。
符号化制御器704は、所定ピクチャ時間間隔で符号化順に順次ピクチャごとのピクチャ復号時刻を算出して設定すると共に、仮想復号バッファ演算器703からの仮想復号バッファの蓄積量の推移に基づきピクチャ目標符号量を算出して設定して、符号化器702にピクチャ符号化を指示する。また、符号化制御器704は、仮想復号バッファ演算器703からの仮想復号バッファの蓄積量の推移に基づき次ピクチャをピクチャスキップすると判断をした場合には、符号化器702に次ピクチャのピクチャスキップを指示する。
(従来技術のフローチャートと仮想復号バッファ推移図の説明)
次に、図8と図9を用いて説明する。
ステップS801では、符号化レベルと符号化ピクチャサイズを入力して、符号化レベル、符号化ピクチャサイズ、及び、ピクチャ時間間隔PTをMPEG-4 AVCにおけるHRDのCPB規定におけるclock tickとして符号化パラメータを設定して、ステップS802に進む。
ステップS802では、所定ピクチャ時間間隔PTで、符号化順に順次、ピクチャごとに算出した時刻を現ピクチャのピクチャ復号時刻として設定して、ステップS803に進む。
例えば、図9において、時刻(t1、t2、t3、t4、t5、・・・)の隣り合う時間間隔は、ピクチャ時間間隔PTである。そして、ピクチャP1の場合には、ピクチャ復号時刻を時刻t1に設定する。以降、ピクチャP2の場合には時刻t2を、ピクチャP3の場合には時刻t3を設定する。図9には現れていないが、ピクチャP4の場合には時刻t4を設定する。ピクチャP5の場合には時刻t5を設定する。
ステップS803では、前ピクチャにおいてステップS809で「次ピクチャのピクチャスキップ指示」を設定した場合には、ステップS804に進み、前ピクチャにおいてステップS809の処理を通過していない場合には、ステップS805に進む。ここで、「次ピクチャのピクチャスキップ指示」は、初期値として解除されている。
ステップS804では、現ピクチャをピクチャスキップすると共に、「次ピクチャのピクチャスキップ指示」を解除して、ステップS802に戻る。
例えば、図9において、ピクチャP4の場合には、前ピクチャP3においてステップS809で「次ピクチャのピクチャスキップ指示」を設定したので、ステップS803からステップS804に進み、ステップS804でピクチャスキップしたので、図中に表記がない。
ステップS805では、現ピクチャのピクチャ復号直前の仮想復号バッファ蓄積量を最大として、例えば、過去の仮想復号バッファ推移に基づき、ピクチャ目標符号量を算出して、ステップS806に進む。
例えば、図9において、ピクチャP1のピクチャ復号直前の仮想復号バッファ蓄積量はdb1であり、ピクチャP2のピクチャ復号直前の仮想復号バッファ蓄積量はdb2である。ピクチャP1の場合には、仮想復号バッファ蓄積量db1を最大としてピクチャ目標符号量を算出する。ピクチャP2の場合には、仮想復号バッファ蓄積量db2を最大としてピクチャ目標符号量を算出する。
ステップS806では、符号化パラメータを符号化するか否か判断する。例えば、30ピクチャごとに符号化パラメータを符号化、それ以外は符号化しないと判断する。そして、符号化パラメータを符号化すると判断する場合はステップS807に進み、符号化パラメータを符号化しないと判断する場合はステップS808に進む。
ステップS807では、符号化パラメータを符号化して、ステップS808に進む。
ステップS808では、現ピクチャをブロック分割して、ステップS805で設定したピクチャ目標符号量に応じて、ピクチャ内符号化、もしくは、ピクチャ間符号化して、ステップS809に進む。この際、ステップS802で設定したピクチャ復号時刻は、ピクチャ符号に付随する補助情報として符号化する。
ステップS809では、現ピクチャのピクチャ復号時刻において、ピクチャ復号直後の仮想復号バッファ蓄積符号量が負ならばアンダーフロー発生と判断してステップS810に進み、ピクチャ復号直後の仮想復号バッファ蓄積符号量がゼロ以上ならばアンダーフロー発生なしと判断してステップS810に進む。
例えば、図9において、ピクチャP1の場合には、ピクチャ復号時刻t1におけるピクチャ復号直後の仮想復号バッファ蓄積量da1はゼロ以上なので、アンダーフロー発生なしと判断する。ピクチャP3のピクチャ復号時刻t3におけるピクチャ復号直後の仮想復号バッファの蓄積量da3は負なので、アンダーフロー発生と判断する。ピクチャP3は、時刻t4においてピクチャ復号直後の仮想復号バッファ蓄積量da3.4がゼロ以上となり、時刻t4においてピクチャP3の復号が完了する。すなわち、ピクチャP3の復号完了時刻は、時刻t4である。
ステップS810では、次ピクチャを符号化せずにピクチャスキップするように「次ピクチャのピクチャスキップ指示」を設定して、ステップS811に進む。
例えば、図9において、ピクチャP3の場合には、「次ピクチャのピクチャスキップ指示」を設定する。
ステップS811では、動画像の符号化処理を終了するか否かを、例えば、外部からの符号化処理終了コマンドの入力により判断して、符号化を終了しない場合はステップS802に戻り、符号化を終了する場合は一連の処理を終了する。
特開平6−205393号公報 特開2001−298735号公報
しかしながら、符号化におけるピクチャスキップは、復号において受信表示動画像の画像欠落を招く。これにより、例えば、遠隔操作のための監視システム等では、重要な画像を受信表示できずに見落とすことで操作に支障を来たす恐れがある。
また、符号バッファにおける一時滞留時間を短くしつつ、仮想復号バッファのアンダーフロー発生を抑えるためにビットレートを低く符号化する方法がある。しかしながら、ビットレート低下に伴い画質劣化を招く。
本発明は、アンダーフロー発生時においても、所定条件においてピクチャスキップを回避することで画像欠落を抑制することができ、また、仮想復号バッファのアンダーフロー発生を抑えるためにビットレートを低く符号化による画質劣化を抑制することができ、復号において良好な受信表示を可能とする動画像符号化装置及び動画像符号化方法の提供を目的とする。
上記目的を達成するため、本発明の動画像符号化装置は、所定ピクチャ時間間隔の動画像の各ピクチャをブロック分割する手段と、第1の単位時間あたりのブロック数を設定する手段と、所定ピクチャ時間間隔に基づき、第1の単位時間あたりのブロック数より少ない第2の単位時間あたりのブロック数となる符号化ピクチャサイズを設定する手段と、符号化ピクチャサイズで各ピクチャを符号化する手段と、符号化ピクチャサイズのピクチャ符号を第1の単位時間あたりのブロック数で復号するに要する第1の時間間隔を算出する手段と、所定ピクチャ時間間隔と第1の時間間隔との時間差以下で、かつ、所定ピクチャ時間間隔の1/N(Nは2以上の自然数)となる第2の時間間隔を算出する手段と、所定ピクチャ時間間隔で、ピクチャごとのピクチャ復号時刻を算出する手段と、第2の時間間隔ごとの仮想復号バッファの蓄積量の推移を算出する手段と、現ピクチャのピクチャ復号時刻において、ピクチャ復号直後の仮想復号バッファ蓄積量が負の場合には、現ピクチャのピクチャ復号時刻後にピクチャ復号直後の仮想復号バッファ蓄積量がゼロ以上となる最初の時刻を第1の時刻として算出する手段と、第1の時刻から次ピクチャのピクチャ復号時刻までの第3の時間間隔を算出する手段と、第3の時間間隔が第1の時間間隔以上の場合には、次ピクチャを符号化するように制御する手段と、を有する。
本発明の動画像符号化装置は、所定ピクチャ時間間隔の動画像の各ピクチャをブロック分割する手段と、第1の単位時間あたりのブロック数を設定する手段と、所定ピクチャ時間間隔に基づき、第1の単位時間あたりのブロック数より少ない第2の単位時間あたりのブロック数となる符号化ピクチャサイズを設定する手段と、符号化ピクチャサイズで各ピクチャを符号化する手段と、符号化ピクチャサイズのピクチャ符号を第1の単位時間あたりのブロック数で復号するに要する第1の時間間隔を算出する手段と、所定ピクチャ時間間隔と第1の時間間隔との時間差以下で、かつ、所定ピクチャ時間間隔の1/N(Nは2以上の自然数)となる第2の時間間隔を算出する手段と、第1の時間間隔以上で所定ピクチャ時間間隔未満、かつ、第2の時間間隔のM倍(Mは自然数)となる第4の時間間隔を算出する手段と、第2の時間間隔ごとの仮想復号バッファの蓄積量の推移を算出する手段と、所定ピクチャ時間間隔で、ピクチャごとのピクチャ復号時刻を算出する手段と、現ピクチャのピクチャ復号時刻におけるピクチャ復号直後の仮想復号バッファ蓄積量がゼロ以上の場合には、現ピクチャのピクチャ復号時刻を第2の時刻として設定し、また、現ピクチャのピクチャ復号時刻におけるピクチャ復号直後の仮想復号バッファ蓄積量が負の場合には、現ピクチャのピクチャ復号時刻後にピクチャ復号直後の仮想復号バッファ蓄積量がゼロ以上となる最初の時刻を第2の時刻として算出する手段と、第2の時刻から第4の時間間隔後の時刻を第3の時刻として算出する手段と、次ピクチャを符号化する際に、第3の時刻が次ピクチャのピクチャ復号時刻を超えた場合には、次ピクチャのピクチャ復号時刻を第3の時刻に修正して、次ピクチャを符号化するように制御する手段と、を有する。
本発明の動画像符号化方法は、所定ピクチャ時間間隔の動画像の各ピクチャをブロック分割するステップと、第1の単位時間あたりのブロック数を設定するステップと、所定ピクチャ時間間隔に基づき、第1の単位時間あたりのブロック数より少ない第2の単位時間あたりのブロック数となる符号化ピクチャサイズを設定するステップと、符号化ピクチャサイズで各ピクチャを符号化するステップと、符号化ピクチャサイズのピクチャ符号を第1の単位時間あたりのブロック数で復号するに要する第1の時間間隔を算出するステップと、所定ピクチャ時間間隔と第1の時間間隔との時間差以下で、かつ、所定ピクチャ時間間隔の1/N(Nは2以上の自然数)となる第2の時間間隔を算出するステップと、第2の時間間隔ごとの仮想復号バッファの蓄積量の推移を算出するステップと、所定ピクチャ時間間隔で、ピクチャごとのピクチャ復号時刻を算出するステップと、現ピクチャのピクチャ復号時刻において、ピクチャ復号直後の仮想復号バッファ蓄積量が負の場合には、現ピクチャのピクチャ復号時刻後にピクチャ復号直後の仮想復号バッファ蓄積量がゼロ以上となる最初の時刻を第1の時刻として算出するステップと、第1の時刻から次ピクチャのピクチャ復号時刻までの第3の時間間隔を算出するステップと、第3の時間間隔が第1の時間間隔以上の場合には、次ピクチャを符号化するように制御するステップと、を含む。
本発明の動画像符号化方法は、所定ピクチャ時間間隔の動画像の各ピクチャをブロック分割するステップと、第1の単位時間あたりのブロック数を設定するステップと、所定ピクチャ時間間隔に基づき、第1の単位時間あたりのブロック数より少ない第2の単位時間あたりのブロック数となる符号化ピクチャサイズを設定するステップと、符号化ピクチャサイズで各ピクチャを符号化するステップと、符号化ピクチャサイズのピクチャ符号を第1の単位時間あたりのブロック数で復号するに要する第1の時間間隔を算出するステップと、所定ピクチャ時間間隔と第1の時間間隔との時間差以下で、かつ、所定ピクチャ時間間隔の1/N(Nは2以上の自然数)となる第2の時間間隔を算出するステップと、第1の時間間隔以上で所定ピクチャ時間間隔未満、かつ、第2の時間間隔のM倍(Mは自然数)となる第4の時間間隔を算出するステップと、第2の時間間隔ごとの仮想復号バッファの蓄積量の推移を算出するステップと、所定ピクチャ時間間隔で、ピクチャごとのピクチャ復号時刻を算出するステップと、現ピクチャのピクチャ復号時刻におけるピクチャ復号直後の仮想復号バッファ蓄積量がゼロ以上の場合には、現ピクチャのピクチャ復号時刻を第2の時刻として設定し、また、現ピクチャのピクチャ復号時刻におけるピクチャ復号直後の仮想復号バッファ蓄積量が負の場合には、現ピクチャのピクチャ復号時刻後にピクチャ復号直後の仮想復号バッファ蓄積量がゼロ以上となる最初の時刻を第2の時刻として設定するステップと、第2の時刻から第4の時間間隔後の時刻を第3の時刻として設定するステップと、次ピクチャを符号化する際に、第3の時刻が次ピクチャのピクチャ復号時刻を超えた場合には、次ピクチャのピクチャ復号時刻を第3の時刻に修正して、次ピクチャを符号化するように制御するステップと、を含む。
第1の発明により、アンダーフローが発生しても、次ピクチャ復号時刻までに、符号化レベルで規定する単位時間あたりの最大マクロブロック数で1ピクチャを復号する時間間隔以上確保できる期間を設けることができ、この期間であれば次ピクチャをピクチャスキップせずに符号化できる。
これにより、例えば、所定のピクチャ時間間隔より短い第2の時間間隔で復号画像を表示することで画像欠落が抑制され、また、仮想復号バッファのアンダーフロー発生を抑えるためにビットレートを低く符号化することによる画質劣化が抑制されて、復号において良好な受信表示が可能となる。また、一般に、ピクチャ間符号化では、ピクチャ間隔が大きくなると時間的な相関性が低下して符号化効率が悪くなる問題を回避できる。
第2の発明により、アンダーフローが発生しても、次ピクチャ復号時刻を遅らせることで、第1の発明に比べて、符号化レベルで規定する単位時間あたりの最大マクロブロック数で1ピクチャを復号する時間間隔以上確保できる期間を拡大することができ、この期間であれば次ピクチャをピクチャスキップせずに符号化できる。
これにより、第1の発明に比べて、画像欠落が抑制され、また、仮想復号バッファのアンダーフロー発生を抑えるためにビットレートを低く符号化することによる画質劣化が抑制されて、復号において良好な受信表示が可能となる。また、一般に、ピクチャ間隔が大きくなると時間的な相関性が低下して符号化効率が悪くなる問題を回避できる。
本発明の第1の実施例を示すブロック図である。 本発明の第1の実施例の動作を説明するフローチャートである。 本発明の第1の実施例の動作を説明する仮想復号バッファ推移図である。 本発明の第2の実施例を示すブロック図である。 本発明の第2の実施例の動作を説明するフローチャートである。 本発明の第2の実施例の動作を説明する仮想復号バッファ推移図である。 従来例を示すブロック図である。 従来例の動作を説明するフローチャートである。 従来例の動作を説明する仮想復号バッファ推移図である。
以下、本発明の実施の形態について図面により説明する。
図1は、本発明による第1の実施例を説明するブロック図である。図2は、本発明による第1の実施例の動作を説明するフローチャートである。図3は、本発明による第1の実施例を説明する仮想復号バッファ推移図である。図4は、第2の実施例を説明するブロック図である。図5は、本発明による第2の実施例の動作を説明するフローチャートである。図6は、本発明による第2の実施例を説明する仮想復号バッファ推移図である。なお、図1と図4では、後述するように機能ブロックの一部動作が異なる。
また、第1の実施例、及び、第2の実施例の説明において、所定ピクチャ時間間隔PTの動画像の各ピクチャを、MPEG-4 AVCに準じて、ピクチャ内符号化、もしくは、ピクチャ間符号化するものとする。
(第1の実施例のブロック図の説明)
まず、第1の実施例について図1を用いて説明する。
時間間隔算出器101は、符号化レベルと符号化ピクチャサイズを入力して、第1の時間間隔TQ1、及び、第2の時間間隔TQ2を算出して出力する。第1の実施例において、MPEG-4 AVCのHRDのCPB規定におけるclock tickとして第2の時間間隔TQ2を用いる。
符号化パラメータ設定器102は、符号化レベルと符号化ピクチャサイズ、及び、時間間隔算出器101からの第2の時間間隔TQ2を入力して、符号化レベル、符号化ピクチャサイズ、及び、第2の時間間隔TQ2をMPEG-4 AVCにおけるHRDのCPB規定におけるclock tickとして符号化パラメータに設定して出力する。
符号化器103は、符号化パラメータ設定器102からの符号化パラメータを、例えば、30ピクチャごとにピクチャ符号化直前に符号化する。また、符号化制御器105から指示されたピクチャ復号時刻とピクチャ目標符号量に従い、ピクチャを符号化ピクチャサイズにサイズ変換した後、ブロック分割してピクチャ内符号化、もしくは、ピクチャ間符号化して符号を出力する。この際、ピクチャ復号時刻は、ピクチャ符号に付随する補助情報として符号化する。更に、符号化制御器105からピクチャスキップの指示があった場合には、ピクチャを符号化せずにピクチャスキップする。処理結果として、各ピクチャのピクチャ復号時刻とピクチャ符号量を、仮想復号バッファ演算器104に出力する。
仮想復号バッファ演算器104は、符号化器103からの各ピクチャのピクチャ復号時刻とピクチャ符号量に基づき、MPEG-4 AVCにおけるHRDのCPB規定に従い、仮想復号バッファの蓄積量の推移を演算して、符号化制御器105に出力する。
符号化制御器105は、所定ピクチャ時間間隔で符号化順に順次ピクチャごとのピクチャ復号時刻を算出して設定すると共に、仮想復号バッファ演算器104からの仮想復号バッファの蓄積量の推移に基づきピクチャ目標符号量を算出して設定して、符号化器103にピクチャ符号化を指示する。また、符号化制御器105は、仮想復号バッファ演算器104からの仮想復号バッファの蓄積量の推移に基づき次ピクチャをピクチャスキップすると判断した場合には、符号化器103に次ピクチャのピクチャスキップを指示する。
(第1の実施例のフローチャートと仮想復号バッファの推移図の説明)
次に、図2と図3を用いて説明する。
ステップS201では、符号化レベルと符号化ピクチャサイズを入力し、第1の時間間隔TQ1と第2の時間間隔TQ2を以下のように算出して、ステップS202に進む。
入力された符号化レベルに基づく単位時間当たりの最大マクロブロック数を、第1の単位時間あたりのマクロブロック数NMB1とする。また、入力された符号化ピクチャサイズは、入力動画像の所定ピクチャ時間間隔において第1の単位時間あたりのマクロブロック数より少ない第2の単位時間あたりのマクロブロック数NMB2となる符号化ピクチャサイズである。
第1の時間間隔TQ1は、入力符号化レベルに基づく第1の単位時間あたりのマクロブロック数で、入力動画像の所定ピクチャ時間間隔において第1の単位時間あたりのマクロブロック数より少ない第2の単位時間あたりのマクロブロック数NMB2となる符号化ピクチャサイズを復号するのに要する時間間隔である。
第2の時間間隔TQ2は、入力動画像の所定ピクチャ時間間隔と第1の時間間隔TQ1との時間差以下で、かつ、所定ピクチャ時間間隔の1/N(Nは2以上の自然数)となる時間間隔であり、本発明においる仮想復号バッファの動作時間単位であり、MPEG-4 AVCにおけるHRDのCPB規定で用いるclock tickである。
第1の時間間隔TQ1、及び、第2の時間間隔TQ2は、符号化レベル入力に基づく第1の単位時間あたりのマクロブロック数NMB1と、符号化ピクチャサイズ入力に基づく第2の単位時間あたりのマクロブロック数NMB2と、動画像の所定ピクチャ時間間隔TPとから下記のように算出する。
TQ1 = TP×(NMB2/NMB1) (式1)
N = Ceil(TP/(TP−TQ1))+α (式2)
TQ2 = TP/N (式3)
ここで、Ceil(x)は天井関数であり、実数xに対してx以上の最小の整数を返す。また、αは0以上の任意の整数である。
例えば、以下の条件で符号化する。
(条件1)
ピクチャーレート: 30Hz
ピクチャサイズ: 1280×720
符号化方式: MPEG−4 AVC
符号化レベル: レベル3.1
ピクチャ時間間隔は1/30秒となり、第1の単位時間あたりのマクロブロック数は毎秒108000マクロブロックとなる。このとき、符号化ピクチャサイズを入力動画像に対して水平方向3/4である960×720とする。第2の単位時間あたりのマクロブロック数は、毎秒81000マクロブロックとなる。これにより、第1の時間間隔TQ1、及び、第2の時間間隔TQ2は以下となる。
TQ1 = 1/30×(81000/108000) = 1/40秒 (式4)
N = Ceil((1/30)/((1/30)−(1/40))
= 4 (式5)
TQ2 = (1/30)/4 =1/120秒 (式6)
ここで、(式5)では(式2)におけるαを0としたが、αを1としてもよいし、他の自然数でもよい。
図3は、(条件1)、及び、(式4)から(式6)に基づき作図している。仮想復号バッファは、ピクチャ時間間隔PTの1/4である第2の時間間隔TQ2を単位時間として動作する。また、図3では、小数点を用いて時刻を、例えば、時刻t1、時刻t1.1、時刻t1.2、時刻t1.3のように表す。整数部は、ピクチャ時間間隔PTを単位とする。小数部は、第2の時間間隔TQ2を単位とする。図3では、(式5)に基づきNを4とするので、小数部は4進法で扱う。すなわち、例えば、以下となる。
時刻t1=時刻(t1+0×TQ2) (式7)
時刻t1.1=時刻(t1+1×TQ2) (式8)
時刻t1.2=時刻(t1+2×TQ2) (式9)
時刻t1.3=時刻(t1+3×TQ2) (式10)
時刻t1.4=時刻(t1+4×TQ2)=時刻(t1+PT)=時刻t2 (式11)
ステップS202では、符号化レベルと符号化ピクチャサイズ、及び、第2の時間間隔TQ2を入力して、符号化レベル、符号化ピクチャサイズ、及び、第2の時間間隔TQ2をMPEG-4 AVCにおけるHRDのCPB規定におけるclock tickとして符号化パラメータに設定して、ステップS203に進む。
ステップS203では、所定ピクチャ時間間隔PTで、符号化順に順次、ピクチャごとに算出した時刻として現ピクチャのピクチャ復号時刻を設定して、ステップS204に進む。
例えば、図3において、ピクチャP1の場合には、ピクチャ復号時刻を時刻t1に設定する。以降、ピクチャP2の場合には時刻t2を、ピクチャP3の場合には時刻t3を、ピクチャP4の場合には時刻t4を設定する。図3には現れていないが、ピクチャP5の場合には時刻t5を設定する。ピクチャP6の場合には時刻t6を設定する。
ステップS204では、前ピクチャにおいてステップS214で「次ピクチャのピクチャスキップ指示」を設定した場合には、ステップS205に進み、前ピクチャにおいてステップS214の処理を通過していない場合には、ステップS206に進む。ここで、「次ピクチャのピクチャスキップ指示」は、初期値として解除されている。
ステップS205では、現ピクチャをピクチャスキップすると共に、「次ピクチャのピクチャスキップ指示」を解除して、ステップS203に戻る。
例えば、図3において、ピクチャP5の場合には、前ピクチャP4においてステップS214で「次ピクチャのピクチャスキップ指示」を設定したので、ステップS204からステップ205に進み、ステップS205でピクチャスキップしたので、図中に表記がない。
ステップS206では、現ピクチャのピクチャ復号直前の仮想復号バッファ蓄積量を最大として、例えば、過去の仮想復号バッファ推移に基づきピクチャ目標符号量を算出して、ステップS207に進む。
例えば、図3において、ピクチャP1のピクチャ復号時刻t1直前の仮想復号バッファ蓄積量はdb1であり、ピクチャP2のピクチャ復号時刻t2直前の仮想復号バッファ蓄積量はdb2である。ピクチャP1の場合には、仮想復号バッファ蓄積量db1を最大として目標符号量を算出する。ピクチャP2の場合には、仮想復号バッファ蓄積量db2を最大としてピクチャ目標符号量を算出する。
ステップS207では、符号化パラメータを符号化するか否か判断する。例えば、30ピクチャごとに符号化パラメータを符号化、それ以外は符号化しないと判断する。そして、符号化パラメータを符号化すると判断する場合はステップS208に進み、符号化パラメータを符号化しないと判断する場合はステップS209に進む。
ステップS208では、符号化パラメータを符号化して、ステップS209に進む。
ステップS209では、現ピクチャを符号化ピクチャサイズ応じてサイズ変換した後、ブロック分割して、ステップS206で設定したピクチャ目標符号量に応じて、ピクチャ内符号化、もしくは、ピクチャ間符号化して、ステップS210に進む。この際、ステップS203で設定したピクチャ復号時刻は、ピクチャ符号に付随する補助情報として符号化する。
ステップS210では、現ピクチャのピクチャ復号時刻において、ピクチャ復号直後の仮想復号バッファ蓄積量が負ならばアンダーフロー発生と判断してステップS211に進み、ピクチャ復号直後の仮想復号バッファ蓄積量がゼロ以上ならばアンダーフロー発生なしと判断してステップS215に進む。
例えば、図3において、ピクチャP1の場合には、ピクチャ復号時刻t1におけるピクチャ復号直後の仮想復号バッファ蓄積量da1はゼロ以上なので、アンダーフロー発生なしと判断する。ピクチャP2の場合には、ピクチャ復号時刻t2におけるピクチャ復号直後の仮想復号バッファ蓄積量da2は負なので、アンダーフロー発生と判断する。
ステップS211では、アンダーフロー発生後、現ピクチャのピクチャ復号直後の仮想復号バッファ蓄積量がゼロ以上となる最初の時刻を第1の時刻として設定し、ステップS212に進む。
例えば、図3において、ピクチャP2の場合には、ピクチャ復号時刻t2においてアンダーフロー発生後、ピクチャP2のピクチャ復号直後の仮想復号バッファ蓄積量がゼロ以上となる最初の時刻は、時刻t2.1である。ピクチャP2の場合には、第1の時刻を時刻t2.1と設定する。同様に、ピクチャP4の場合には、ピクチャ復号時刻t4においてアンダーフロー発生後、ピクチャP4のピクチャ復号直後の仮想復号バッファ蓄積量がゼロ以上となる最初の時刻は、時刻t4.2である。ピクチャP4の場合には、第1の時刻を時刻t4.2と設定する。
ステップS212では、第1の時刻から次ピクチャのピクチャ復号時刻までの時間間隔を、第3の時間間隔TQ3として算出して、ステップS213に進む。
例えば、図3において、ピクチャP2の場合には、第1の時刻である時刻t2.1から次ピクチャP3のピクチャ復号時刻t3までの時間間隔が、第3の時間間隔TQ3である。(条件1)に基づく場合には、ピクチャP2における第3の時間間隔TQ3(P2)は以下となる。
TQ3(P2)=t3−t2.1
=3×TQ2=3×(1/120)=1/40秒 (式12)
同様に、ピクチャP4の場合には、第1の時刻である時刻t4.2から次ピクチャP5のピクチャ復号時刻t5までの時間間隔が、第3の時間間隔TQ3である。(条件1)に基づく場合には、ピクチャP4における第3の時間間隔TQ3(P4)は以下となる。
TQ3(P4)=t5−t4.2
=2×TQ2=2×(1/120)=1/60秒 (式13)
ステップS213では、第3の時間間隔TQ3と第1の時間間隔TQ1を比較して、TQ3がTQ1未満の場合にはステップS214に進み、TQ3がTQ1以上の場合にはステップS215に進む。
例えば、図3において、ピクチャP2の場合には、(式7)から第3の時間間隔TQ3は1/40秒、(式4)から第1の時間間隔TQ1は1/40秒である。TQ3はTQ1以上なので、ピクチャP2の場合には、ステップS215に進む。ピクチャP4の場合には、(式8)から第3の時間間隔TQ3は1/60秒、(式4)から第1の時間間隔TQ1は1/40秒である。TQ3はTQ1未満なので、ピクチャP4の場合には、ステップS214に進む。
ステップS214では、次ピクチャを符号化せずにピクチャスキップするように「次ピクチャのピクチャスキップ指示」を設定して、ステップS215に進む。
例えば、図3において、ピクチャP4の場合には、「次ピクチャのピクチャスキップ指示」を設定する。
ステップS215では、動画像の符号化処理を終了するか否かを、例えば、外部からの符号化処理終了コマンドの入力により判断して、符号化を終了しない場合はステップS203に進み、符号化を終了する場合は一連の処理を終了する。
以上、第1の実施例では、符号化レベルの入力により間接的に第1の単位時間当たりのマクロブロック数を設定したが、直接的に第1の単位時間当たりのマクロブロック数を設定しても良い。
また、MPEG-4 AVC規定と異なるが、符号化レベルで規定する単位時間当たりの最大マクロブロック数を第2の単位時間当たりのマクロブロック数として符号化ピクチャサイズを定めて、第2の単位時間当たりのマクロブロック数より多い第1の単位時間当たりのマクロブロック数を設定してもよい。この場合、例えば、第1の単位時間当たりのマクロブロック数を符号化パラメータとして所定ピクチャ数ごとに符号化する。復号側では、符号化レベルと共に第1の単位時間当たりのマクロブロック数に基づき、符号化側からの符号を復号可能か判断して可能なら復号すればよい。
第1の実施例により、アンダーフローが発生しても、次ピクチャ復号時刻までに、符号化レベルで規定する単位時間あたりの最大マクロブロック数で1ピクチャを復号する時間間隔以上確保できる期間を設けることができ、この期間であれば次ピクチャをピクチャスキップせずに符号化できる。復号側では、所定のピクチャ時間間隔より短い第2の時間間隔で表示することで、例えば、本発明により毎秒30ピクチャの動画像を符号化し、復号側では毎秒120ピクチャ表示とすることで、画像欠落の少ない表示を提供できる。また、仮想復号バッファのアンダーフロー発生を抑えるためにビットレートを低く符号化することによる画質劣化を解決できる。更に、一般に、ピクチャ間符号化ではピクチャ間隔が大きくなると時間的な相関性が低下して符号化効率が悪くなる問題を回避できる。
(第2の実施例のブロック図の説明)
第2の実施例について図4を用いて説明する。
時間間隔算出器401は、符号化レベルと符号化ピクチャサイズを入力して、第1の時間間隔TQ1、第2の時間間隔TQ2、及び、第4の時間間隔TQ4を算出して出力する。第2の実施例において、MPEG-4 AVCのHRDのCPB規定におけるclock tickとして第2の時間間隔TQ2を用いる。
符号化パラメータ設定器402は、符号化レベルと符号化ピクチャサイズ、及び、時間間隔算出器401からの第2の時間間隔TQ2を入力して、符号化レベル、符号化ピクチャサイズ、及び、MPEG-4 AVCのHRDのCPB規定におけるclock tickとして符号化パラメータに設定して出力する。
符号化器403は、符号化パラメータ設定器402からの符号化パラメータを、例えば、30ピクチャごとにピクチャ符号化直前に符号化する。また、符号化制御器405から指示されたピクチャ復号時刻とピクチャ目標符号量に従い、ピクチャを符号化ピクチャサイズにサイズ変換した後、ブロック分割してピクチャ内符号化、もしくは、ピクチャ間符号化して符号を出力する。この際、指定ピクチャ復号時刻は、ピクチャ符号に付随する補助情報として符号化する。更に、符号化制御器405からピクチャスキップの指示があった場合には、ピクチャを符号化せずにピクチャスキップする。処理結果として、各ピクチャのピクチャ復号時刻とピクチャ符号量を、仮想復号バッファ演算器404に出力する。
仮想復号バッファ演算器404は、符号化器403からの各ピクチャのピクチャ復号時刻とピクチャ符号量に基づき、MPEG-4 AVCにおけるHRDのCPB規定に従い、仮想復号バッファの蓄積量の推移を演算して、符号化制御器405に出力する。
符号化制御器405は、所定ピクチャ間隔で符号化順に順次ピクチャごとのピクチャ復号時刻を算出すると共に、仮想復号バッファ演算器404からの仮想復号バッファの蓄積量の推移に基づき、第2の時刻、及び、第3の時刻を算出して設定し、ピクチャ復号時刻を第3の時刻に修正すると判断した場合には、ピクチャ復号時刻を第3の時刻に修正して設定する。また、仮想復号バッファ演算器404からの仮想復号バッファの蓄積量の推移に基づきピクチャ目標符号量を算出して設定する。そして、符号化器403にピクチャ符号化を指示する。更に、仮想復号バッファ演算器404からの仮想復号バッファの蓄積量の推移に基づき、次ピクチャをピクチャスキップすると判断した場合には、符号化器403に次ピクチャのピクチャスキップを指示する。
(第2の実施例のフローチャートと仮想復号バッファの推移図の説明)
次に、図5と図6を用いて説明する。
ステップS501では、符号化レベルと符号化ピクチャサイズを入力し、第1の時間間隔TQ1、第2の時間間隔TQ2、及び、第4の時間間隔TQ4を以下のように算出して、ステップS502に進む。
第1の時間間隔TQ1と第2の時間間隔TQ2の算出方法は、第1の実施例と同様である。第4の時間間隔TQ4の算出方法について以下に説明する。
第4の時間間隔TQ4は、第1の時間間隔TQ1以上でピクチャ時間間隔PT未満、かつ、第2の時間間隔TQ2のM倍(Mは自然数)となる時間間隔である。
TQ4 = M×TQ2 (式14)
TQ1 ≦ TQ4 < PT (式15)
例えば、第1の実施例と同様に (条件1)で符号化する。
(式4)から第1の時間間隔TQ1は1/40秒、(式6)から第2の時間間隔TQ2は1/120秒、ピクチャ時間間隔PTは1/30であり、第4の時間間隔TQ4は以下となる。
TQ4 = 3×(1/120) =1/40秒 (式16)
1/40秒 ≦ TQ4 < 1/30秒 (式17)
ここで、(式16)では(式14)におけるMを3とした。
また、図6は、(条件1)、(式4)から(式6)、(式16)、及び、(式17)に基づき作図している。仮想復号バッファは、ピクチャ時間間隔PTの1/4である第2の時間間隔TQ2を単位時間として動作する。また、図6では、小数点を用いて時刻を、例えば、時刻t1、時刻t1.1、時刻t1.2、時刻t1.3のように表す。整数部は、ピクチャ時間間隔PTを単位とする。小数部は、第2の時間間隔TQ2を単位とする。図6では、(式5)に基づきNを4とするので、小数部は4進法で扱う。すなわち、図3と同様に、(式7)から(式11)となる。
ステップS502では、符号化レベルと符号化ピクチャサイズ、及び、第2の時間間隔TQ2を入力して、符号化レベル、符号化ピクチャサイズ、及び、第2の時間間隔TQ2をMPEG-4 AVCのHRDのCPB規定におけるclock tickとして符号化パラメータに設定して、ステップS503に進む。
ステップS503では、所定ピクチャ時間間隔PTで、符号化順に順次、ピクチャごとに算出した時刻として現ピクチャのピクチャ復号時刻を設定して、ステップS504に進む。
例えば、図6において、ピクチャP1の場合には、ピクチャ復号時刻を時刻t1に設定する。以降、ピクチャP2の場合には時刻t2を、ピクチャP3の場合には時刻t3を、ピクチャP4の場合には時刻t4を、ピクチャP5の場合には時刻t5を設定する。図6には現れていないが、ピクチャP6の場合には時刻t6を設定する。ピクチャP7の場合には時刻t7を設定する。
ステップS504では、前ピクチャにおいてステップS516で「次ピクチャのピクチャスキップ指示」を設定した場合には、ステップS505に進み、前ピクチャにおいてステップS516の処理を通過していない場合には、ステップS506に進む。ここで、「次ピクチャのピクチャスキップ指示」は、初期値として解除されている。
ステップS505では、現ピクチャをピクチャスキップすると共に、「次ピクチャのピクチャスキップ指示」を解除して、ステップS503に戻る。
例えば、図6において、ピクチャP6の場合には、前ピクチャP5においてステップS516で「次ピクチャのピクチャスキップ指示」を設定したので、ステップS504からステップ505に進み、ステップS505でピクチャスキップしたので、図中に表記がない。
ステップS506では、前ピクチャにおいてステップS513で算出して設定した第3の時刻と、現ピクチャにおいてステップS503で設定した現ピクチャのピクチャ復号時刻とを比較する。第3の時刻が現ピクチャのピクチャ復号時刻を超える場合には、ステップS507に進む。また、第3の時刻が現ピクチャのピクチャ復号時刻以前の場合には、ステップS508に進む。なお、第3の時刻の初期値はゼロである。
例えば、図6において、ピクチャP2の場合には、前ピクチャP1においてステップS513で算出して設定した第3の時刻T3(P1)は時刻t1.3であり、ピクチャP2のピクチャ復号時刻t2以前なので、ステップS508に進む。ピクチャP3の場合には、前ピクチャP2においてステップS511で算出して設定した第3の時刻T3(P2)は時刻t3.1であり、ピクチャP3のピクチャ復号時刻t3を越えるので、ステップS507に進む。ピクチャP7の場合には、ステップS505においてピクチャP6をピクチャスキップしたので、前ピクチャをピクチャP5とする。前ピクチャP5においてステップS513で算出して設定した第3の時刻T3(P5)は時刻t7であり、ピクチャP7の復号時刻t7以前なので、ステップS508に進む。
ステップS507では、ステップS503で設定した現ピクチャのピクチャ復号時刻を、前ピクチャにおいてステップS513で算出して設定した第3の時刻に修正して、ステップS508に進む。
例えば、図6において、ピクチャP3のピクチャ復号時刻を、時刻t3から時刻t3.1に修正して、ステップS508に進む。
ステップS508では、現ピクチャのピクチャ復号直前の仮想復号バッファ蓄積量を最大として、例えば、過去の仮想復号バッファ推移に基づきピクチャ目標符号量を算出して、ステップS509に進む。
例えば、図6において、ピクチャP1のピクチャ復号時刻t1直前の仮想復号バッファ蓄積量はdb1であり、ピクチャP2のピクチャ復号時刻t2直前の仮想復号バッファ蓄積量はdb2である。ピクチャP1は仮想復号バッファ蓄積量db1を最大としてピクチャ目標符号量を算出する。ピクチャP2は仮想復号バッファ蓄積量db2を最大としてピクチャ目標符号量を算出する。
ステップS509では、符号化パラメータを符号化するか否か判断する。例えば、30ピクチャごとに符号化パラメータを符号化、それ以外は符号化しないと判断する。そして、符号化パラメータを符号化すると判断する場合はステップS510に進み、符号化パラメータを符号化しないと判断する場合はステップS511に進む。
ステップS510では、符号化パラメータを符号化して、ステップS511に進む。
ステップS511では、現ピクチャを符号化ピクチャサイズに応じてサイズ変換した後、ブロック分割して、ステップ508で設定したピクチャ目標符号量に応じて、ピクチャ内符号化、もしくは、ピクチャ間符号化して、ステップS512に進む。この際、指定ピクチャ復号時刻は、ピクチャ符号に付随する補助情報として符号化する。
ステップS512では、現ピクチャのピクチャ復号時刻において、ピクチャ復号直後の仮想復号バッファ蓄積量がゼロ以上の場合には、現ピクチャのピクチャ復号時刻を第2の時刻として設定し、また、現ピクチャのピクチャ復号時刻におけるピクチャ復号直後の仮想復号バッファ蓄積量が負の場合には、現ピクチャのピクチャ復号時刻の後にピクチャ復号直後の仮想復号バッファ蓄積量がゼロ以上となる最初の時刻を第2の時刻として設定して、ステップS513に進む。
例えば、図6において、ピクチャP1の場合には、ピクチャ復号時刻t1におけるピクチャ復号直後の仮想復号バッファ蓄積量da1はゼロ以上なので、ピクチャP1における第2の時刻T2(P1)として時刻t1を設定する。ピクチャP2の場合には、ピクチャ復号時刻t2におけるピクチャ復号直後の仮想復号バッファ蓄積量da2は負であり、時刻t2の後にピクチャ復号直後の仮想復号バッファ蓄積量がゼロ以上となる最初の時刻t2.2を第2の時刻T2(P2)として設定する。ピクチャP5の場合には、ピクチャ復号時刻t5におけるピクチャ復号直後の仮想復号バッファ蓄積量da5は負であり、時刻t5の後にピクチャ復号直後の仮想復号バッファ蓄積量がゼロ以上となる最初の時刻t6.1を第2の時刻T2(P5)として設定する。
ステップS513では、ステップS512で設定した第2の時刻から、ステップS501で設定した第4の時間間隔後の時刻を、第3の時刻として設定して、ステップS514に進む。
例えば、図6において、ピクチャP1の場合には、第2の時刻T2(P1)は時刻t1であり、第2の時刻T2(P1)から第4の時間間隔TQ4後の時刻である、時刻t1.3を、第3の時刻T3(P1)として設定する。ピクチャP2の場合には、第2の時刻T2(P2)は時刻t2.2であり、第2の時刻T2(P2)から第4の時間間隔TQ4後の時刻である、時刻t3.1を、第3の時刻T3(P2)として設定する。ピクチャP5の場合には、第2の時刻T2(P5)は時刻t6.1であり、第2の時刻T2(P5)から第4の時間間隔TQ4後の時刻である、時刻t7を、第3の時刻T3(P5)として設定する。
ステップS514では、所定ピクチャ時間間隔PTで、符号化順に順次、ピクチャごとに算出した現ピクチャから2ピクチャ後の時刻を、次々ピクチャのピクチャ復号時刻として設定して、ステップS515に進む。
例えば、図6において、ピクチャP1の場合には、時刻t3を、次々ピクチャのピクチャ復号時刻として設定する。以降、ピクチャP2の場合には時刻t4を、ピクチャP3の場合には時刻t5を、ピクチャP4の場合には時刻t6を、ピクチャP5の場合には時刻t7を設定する。ピクチャP6の場合には時刻t8を設定する。ピクチャP7の場合には時刻t9を設定する。
ステップS515では、ステップS513で設定した第3の時刻と、ステップS514で設定した次々ピクチャのピクチャ復号時刻を比較する。第3の時刻が次々ピクチャのピクチャ復号時刻以降の場合には、ステップS516に進む。第3の時刻が次々ピクチャのピクチャ復号時刻より前の場合には、ステップS517に進む。
例えば、図6において、ピクチャP5の場合には、第3の時刻T3(P5)は時刻t7であり、次々ピクチャのピクチャ復号時刻である時刻t7以降なので、ステップS516に進む。ピクチャP2の場合には、第3の時刻T3(P2)は時刻t3.1であり、次々ピクチャのピクチャ復号時刻である時刻t4より前なので、ステップS517に進む。
ステップS516では、次ピクチャを符号化せずにピクチャスキップするように「次ピクチャのピクチャスキップ指示」を設定して、ステップS517に進む。
例えば、図6において、ピクチャP5の場合には、「次ピクチャのピクチャスキップ指示」を設定する。
ステップS517では、動画像の符号化処理を終了するか否かを、例えば、外部からの符号化処理終了コマンドの入力により判断して、符号化を終了しない場合はステップS503に進み、符号化を終了する場合は一連の処理を終了する。
以上、第2の実施例では、符号化レベルの入力により間接的に第1の単位時間当たりのマクロブロック数を設定したが、直接的に第1の単位時間当たりのマクロブロック数を設定してもよい。
また、MPEG-4 AVC規定と異なるが、符号化レベルで規定する単位時間当たりの最大マクロブロック数を第2の単位時間当たりのマクロブロック数として符号化ピクチャサイズを定めて、第2の単位時間当たりのマクロブロック数より多い第1の単位時間当たりのマクロブロック数を設定してもよい。
更に、第2の実施例では、図5のステップS515において、第3の時刻が次々ピクチャのピクチャ復号時刻と比較して、第3の時刻が「次々ピクチャのピクチャ復号時刻以降の場合」には、図5のステップS516において、「次ピクチャのピクチャスキップ指示」を設定したが、「次々ピクチャのピクチャ復号時刻以降の場合」に代えて「次々ピクチャのピクチャ復号時刻を越えた場合」としてもよい。また、遅延は大きくなるが、「次々ピクチャのピクチャ復号時刻」に代えて、より後の、例えば、現ピクチャから3ピクチャ後の「次々々ピクチャのピクチャ復号時刻」を用いてもよい。
第2の実施例により、アンダーフローが発生した場合においても、次ピクチャ復号時刻を遅らせることで、第1の実施例に比べて、符号化レベルで規定する単位時間あたりの最大マクロブロック数で1ピクチャを復号する時間間隔以上確保できる期間を拡大することができ、この期間であれば次ピクチャをピクチャスキップせずに符号化できる。
これにより、第1の実施例に比べて、より画像欠落の少ない表示を提供できる。また、仮想復号バッファのアンダーフロー発生を抑えるためにビットレートを低く符号化することによる画質劣化を解決できる。更に、一般に、ピクチャ間符号化ではピクチャ間隔が大きくなると時間的な相関性が低下して符号化効率が悪くなる問題をより回避できる。
第1の実施例と同様に、復号側において、所定のピクチャ時間間隔より短い第2の時間間隔で表示することで、例えば、本発明により毎秒30ピクチャの動画像を符号化し、復号側では毎秒120ピクチャで表示することで、画像欠落の少ない表示を提供できる。
なお、MPEG2(ISO/IEC 13818-2:2000)、及び、MPEG4−AVC(ISO/IEC 14496-10:2009)では、低遅延モードとして符号化する場合のみ、アンダーフロー発生を許可しているが、本発明の技術は、アンダーフロー発生を許容可能とすれば、低遅延モードに限らず適用することができる。
101 時間間隔算出器
102 符号化パラメータ設定器
103 符号化器
104 仮想復号バッファ演算器
105 符号化制御器
401 時間間隔算出器
402 符号化パラメータ設定器
403 符号化器
404 仮想復号バッファ演算器
405 符号化制御器
701 符号化パラメータ設定器
702 符号化器
703 仮想復号バッファ演算器
704 符号化制御器

Claims (4)

  1. 所定ピクチャ時間間隔の動画像の各ピクチャをブロック分割する手段と、
    第1の単位時間あたりのブロック数を設定する手段と、
    所定ピクチャ時間間隔に基づき、第1の単位時間あたりのブロック数より少ない第2の単位時間あたりのブロック数となる符号化ピクチャサイズを設定する手段と、
    符号化ピクチャサイズで各ピクチャを符号化する手段と、
    符号化ピクチャサイズのピクチャ符号を第1の単位時間あたりのブロック数で復号するに要する第1の時間間隔を算出する手段と、
    所定ピクチャ時間間隔と第1の時間間隔との時間差以下で、かつ、所定ピクチャ時間間隔の1/N(Nは2以上の自然数)となる第2の時間間隔を算出する手段と、
    所定ピクチャ時間間隔で、ピクチャごとのピクチャ復号時刻を算出する手段と、
    第2の時間間隔ごとの仮想復号バッファの蓄積量の推移を算出する手段と、
    現ピクチャのピクチャ復号時刻において、ピクチャ復号直後の仮想復号バッファ蓄積量が負の場合には、現ピクチャのピクチャ復号時刻後にピクチャ復号直後の仮想復号バッファ蓄積量がゼロ以上となる最初の時刻を第1の時刻として算出する手段と、
    第1の時刻から次ピクチャのピクチャ復号時刻までの第3の時間間隔を算出する手段と、
    第3の時間間隔が第1の時間間隔以上の場合には、次ピクチャを符号化するように制御する手段と、
    を有することを特徴とする動画像符号化装置。
  2. 所定ピクチャ時間間隔の動画像の各ピクチャをブロック分割する手段と、
    第1の単位時間あたりのブロック数を設定する手段と、
    所定ピクチャ時間間隔に基づき、第1の単位時間あたりのブロック数より少ない第2の単位時間あたりのブロック数となる符号化ピクチャサイズを設定する手段と、
    符号化ピクチャサイズで各ピクチャを符号化する手段と、
    符号化ピクチャサイズのピクチャ符号を第1の単位時間あたりのブロック数で復号するに要する第1の時間間隔を算出する手段と、
    所定ピクチャ時間間隔と第1の時間間隔との時間差以下で、かつ、所定ピクチャ時間間隔の1/N(Nは2以上の自然数)となる第2の時間間隔を算出する手段と、
    第1の時間間隔以上で所定ピクチャ時間間隔未満、かつ、第2の時間間隔のM倍(Mは自然数)となる第4の時間間隔を算出する手段と、
    第2の時間間隔ごとの仮想復号バッファの蓄積量の推移を算出する手段と、
    所定ピクチャ時間間隔で、ピクチャごとのピクチャ復号時刻を算出する手段と、
    現ピクチャのピクチャ復号時刻におけるピクチャ復号直後の仮想復号バッファ蓄積量がゼロ以上の場合には、現ピクチャのピクチャ復号時刻を第2の時刻として設定し、また、現ピクチャのピクチャ復号時刻におけるピクチャ復号直後の仮想復号バッファ蓄積量が負の場合には、現ピクチャのピクチャ復号時刻後にピクチャ復号直後の仮想復号バッファ蓄積量がゼロ以上となる最初の時刻を第2の時刻として算出する手段と、
    第2の時刻から第4の時間間隔後の時刻を第3の時刻として算出する手段と、
    次ピクチャを符号化する際に、第3の時刻が次ピクチャのピクチャ復号時刻を超えた場合には、次ピクチャのピクチャ復号時刻を第3の時刻に修正して、次ピクチャを符号化するように制御する手段と、
    を有することを特徴とする動画像符号化装置。
  3. 所定ピクチャ時間間隔の動画像の各ピクチャをブロック分割するステップと、
    第1の単位時間あたりのブロック数を設定するステップと、
    所定ピクチャ時間間隔に基づき、第1の単位時間あたりのブロック数より少ない第2の単位時間あたりのブロック数となる符号化ピクチャサイズを設定するステップと、
    符号化ピクチャサイズで各ピクチャを符号化するステップと、
    符号化ピクチャサイズのピクチャ符号を第1の単位時間あたりのブロック数で復号するに要する第1の時間間隔を算出するステップと、
    所定ピクチャ時間間隔と第1の時間間隔との時間差以下で、かつ、所定ピクチャ時間間隔の1/N(Nは2以上の自然数)となる第2の時間間隔を算出するステップと、
    第2の時間間隔ごとの仮想復号バッファの蓄積量の推移を算出するステップと、
    所定ピクチャ時間間隔で、ピクチャごとのピクチャ復号時刻を算出するステップと、
    現ピクチャのピクチャ復号時刻において、ピクチャ復号直後の仮想復号バッファ蓄積量が負の場合には、現ピクチャのピクチャ復号時刻後にピクチャ復号直後の仮想復号バッファ蓄積量がゼロ以上となる最初の時刻を第1の時刻として算出するステップと、
    第1の時刻から次ピクチャのピクチャ復号時刻までの第3の時間間隔を算出するステップと、
    第3の時間間隔が第1の時間間隔以上の場合には、次ピクチャを符号化するように制御するステップと、
    を含むことを特徴とする動画像符号化方法。
  4. 所定ピクチャ時間間隔の動画像の各ピクチャをブロック分割するステップと、
    第1の単位時間あたりのブロック数を設定するステップと、
    所定ピクチャ時間間隔に基づき、第1の単位時間あたりのブロック数より少ない第2の単位時間あたりのブロック数となる符号化ピクチャサイズを設定するステップと、
    符号化ピクチャサイズで各ピクチャを符号化するステップと、
    符号化ピクチャサイズのピクチャ符号を第1の単位時間あたりのブロック数で復号するに要する第1の時間間隔を算出するステップと、
    所定ピクチャ時間間隔と第1の時間間隔との時間差以下で、かつ、所定ピクチャ時間間隔の1/N(Nは2以上の自然数)となる第2の時間間隔を算出するステップと、
    第1の時間間隔以上で所定ピクチャ時間間隔未満、かつ、第2の時間間隔のM倍(Mは自然数)となる第4の時間間隔を算出するステップと、
    第2の時間間隔ごとの仮想復号バッファの蓄積量の推移を算出するステップと、
    所定ピクチャ時間間隔で、ピクチャごとのピクチャ復号時刻を算出するステップと、
    現ピクチャのピクチャ復号時刻におけるピクチャ復号直後の仮想復号バッファ蓄積量がゼロ以上の場合には、現ピクチャのピクチャ復号時刻を第2の時刻として設定し、また、現ピクチャのピクチャ復号時刻におけるピクチャ復号直後の仮想復号バッファ蓄積量が負の場合には、現ピクチャのピクチャ復号時刻後にピクチャ復号直後の仮想復号バッファ蓄積量がゼロ以上となる最初の時刻を第2の時刻として設定するステップと、
    第2の時刻から第4の時間間隔後の時刻を第3の時刻として設定するステップと、
    次ピクチャを符号化する際に、第3の時刻が次ピクチャのピクチャ復号時刻を超えた場合には、次ピクチャのピクチャ復号時刻を第3の時刻に修正して、次ピクチャを符号化するように制御するステップと、
    を含むことを特徴とする動画像符号化方法。
JP2009290822A 2009-12-22 2009-12-22 動画像符号化装置及び動画像符号化方法 Pending JP2011135177A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009290822A JP2011135177A (ja) 2009-12-22 2009-12-22 動画像符号化装置及び動画像符号化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009290822A JP2011135177A (ja) 2009-12-22 2009-12-22 動画像符号化装置及び動画像符号化方法

Publications (1)

Publication Number Publication Date
JP2011135177A true JP2011135177A (ja) 2011-07-07

Family

ID=44347478

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009290822A Pending JP2011135177A (ja) 2009-12-22 2009-12-22 動画像符号化装置及び動画像符号化方法

Country Status (1)

Country Link
JP (1) JP2011135177A (ja)

Similar Documents

Publication Publication Date Title
JP4528694B2 (ja) 動画像符号化装置
JP2008219870A (ja) 動画像符号化方法及び動画像符号化装置
JP2008017229A (ja) 動画像符号化装置
KR20090042235A (ko) 화상 처리 장치 및 방법과 프로그램
JP2010130558A (ja) 動画像符号化装置および動画像符号化方法
JP5004180B2 (ja) 動画像符号化装置および復号装置
JP2007013298A (ja) 画像符号化装置
JP5213964B2 (ja) 動画像符号化装置及び動画像復号装置
JP2011146790A (ja) 動画像復号装置、及び、動画像復号方法
WO2017163619A1 (ja) 映像切替装置を備えた符号化装置および映像切替検知方法を含む符号化方法
JP2010130351A (ja) 動き補償装置
WO2016116984A1 (ja) 動画像符号化装置、動画像符号化方法および動画像符号化プログラム
JP2011205476A (ja) 動画像符号化装置及び動画像符号化方法
JP2008160402A (ja) 符号化装置及び方法並びに画像符号化装置
JP2011135177A (ja) 動画像符号化装置及び動画像符号化方法
TWI493942B (zh) 動畫像編碼方法、動畫像編碼裝置及動畫像編碼程式
JP2007266679A (ja) 動画像符号化装置
JP6182888B2 (ja) 画像符号化装置
JP2009246489A (ja) 映像信号切替装置
US9661323B2 (en) Method of encoding picture and picture encoding device
KR100987922B1 (ko) 선택적 참조영상을 이용한 움직임 보상기법을 적용한 동영상 압축부호화장치및 복호화 장치와 움직임 보상을 위한 선택적 참조영상 결정방법
JP4847423B2 (ja) 動画像符号化装置、および、コンピュータプログラム
JP4849441B2 (ja) 動画像符号化装置
JP2011239255A (ja) 映像符号化方法,映像符号化装置および映像符号化プログラム
JP2007221202A (ja) 動画像符号化装置及び動画像符号化プログラム