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

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

Info

Publication number
JP2011205476A
JP2011205476A JP2010071821A JP2010071821A JP2011205476A JP 2011205476 A JP2011205476 A JP 2011205476A JP 2010071821 A JP2010071821 A JP 2010071821A JP 2010071821 A JP2010071821 A JP 2010071821A JP 2011205476 A JP2011205476 A JP 2011205476A
Authority
JP
Japan
Prior art keywords
picture
time
decoding
time interval
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
JP2010071821A
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 Corp
Original Assignee
JVCKenwood Corp
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 Corp filed Critical JVCKenwood Corp
Priority to JP2010071821A priority Critical patent/JP2011205476A/ja
Publication of JP2011205476A publication Critical patent/JP2011205476A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】従来、アンダーフロー発生時に画像が欠落する。
【解決手段】動画像符号化装置は、第1の時間間隔と、第2の時間間隔とを算出する時間間隔算出器101と、現ピクチャ復号時刻におけるピクチャ復号直後の仮想復号バッファ蓄積量がゼロ以上の場合には、現ピクチャ復号時刻を第1の時刻として設定し、現ピクチャ復号直後の仮想復号バッファ蓄積量が負の場合、現ピクチャ復号時刻後にピクチャ復号直後の仮想復号バッファ蓄積量がゼロ以上となる最初の時刻を第1の時刻として算出するとともに、第1の時刻から次ピクチャ復号時刻までの第3の時間間隔を算出する符号化器103と、第3の時間間隔が第1の時間間隔以上の場合には、第1の時刻を現ピクチャ復号時刻として符号化してピクチャ符号を出力するように制御する符号化制御器106とを有する。
【選択図】図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等の国際標準に基づく符号化方式がある。
ピクチャ毎の発生符号量は、ピクチャ内符号化やピクチャ間符号化等の適用する符号化ピクチャタイプ、そのピクチャの絵柄や動き変化により変動する。符号化動画像を所定の伝送レートで伝送するために、符号化出力段や復号入力段に符号を一時滞留させるための符号バッファを設けて、符号量変動を吸収する。符号化出力段や復号入力段の符号バッファの動作は、符号化や復号の実装方法の違いにより異なる。
このため、一般に国際標準に基づく符号化方式では、仮想復号バッファを規定することで、符号化や復号の実装方法が異なる場合においても相互運用性を確保できるようにしている。例えば、MPEG-2ビデオのVBV (Video buffer verifier)のVBV buffer、MPEG-4 AVCのHRD (Hypothetical reference decoder)のCPB(Coded picture buffer)等の規定がある。
符号化においては、仮想復号バッファがオーバーフローやアンダーフローしないようにピクチャ毎の発生符号量を制御して符号化する。例えば、特許文献1に記載の技術を用いて発生符号量を予測しながら量子化幅の制御することでピクチャ発生符号量を調整して、符号バッファがオーバーフローやアンダーフローしないように制御して符号化する。
しかしながら、シーンチェンジや急激な動き変化等により、ピクチャ発生符号量が急激に多く発生することで、量子化幅の制御が間に合わず、仮想復号バッファをアンダーフローさせてしまう場合がある。そのままでは、符号化出力段の符号バッファがオーバーフローしたり、復号入力段の符号バッファがアンダーフローしたりして、符号欠落等の障害が発生して復号出力する動画像に乱れが生じる。特に、相互運用性の観点から、復号入力段の符号バッファにおけるアンダーフローが発生しないようにする必要がある。例えば、MPEG-2ビデオやMPEG-4 AVCでは、低遅延モード時を除いて、動画像の符号化において、仮想復号バッファのアンダーフローを禁止している。
仮想復号バッファがアンダーフローするような場合、例えば、特許文献2の[従来の技術]に記載のように、符号化や復号が間に合わないと判断して、ピクチャスキップする方法がある。例えば、MPEG-4 AVCの符号化においてピクチャの発生符号量が多くアンダーフローするような場合には、低遅延モード時においては現ピクチャのピクチャ符号はそのままに次ピクチャをピクチャスキップしたり、非低遅延モード時においてはそのピクチャ符号を破棄してアンダーフローを回避したりする。
特に、非低遅延モード時においては、仮想復号バッファのアンダーフローを禁止しているため、ピクチャの発生符号量が多くアンダーフローするような場合には、ピクチャ符号を破棄してアンダーフローを回避する必要がある。
(従来技術の説明)
以下、従来技術について図面により説明する。図7は、従来技術を説明するブロック図である。図8は、従来技術を説明するフローチャートである。図9は、従来技術を説明する仮想復号バッファ推移図である。
従来技術の説明において、所定ピクチャ時間間隔PTの動画像の各ピクチャを、MPEG-4 AVCに準じて、ブロック分割してピクチャ内符号化、もしくは、ピクチャ間符号化するものとする。また、従来技術の説明において、MPEG-4 AVCにおけるHRDのCPB規定に準じて、ピクチャ時間間隔PTをclock tickとして仮想復号バッファの推移を演算するものとする。
(従来技術のブロック図の説明)
まず、従来技術について図7を用いて説明する。
符号化パラメータ設定器701は、符号化レベルと符号化ピクチャサイズを入力して、符号化レベルと符号化ピクチャサイズに基づき、符号化パラメータを設定して出力する。
ここで、符号化レベルとは、MPEG-4 AVCで規定する「プロファイルとレベル」のレベルに相当する。符号化レベルにより、符号化する際の単位時間あたりの最大マクロブロック数、最大ビットレート、復号に必要なメモリ量等を規定する。
符号化器702は、符号化パラメータ設定器701からの符号化パラメータを、例えば、30ピクチャごとにピクチャ符号化直前に符号化する。また、符号化制御器704から指示されたピクチャ復号時刻とピクチャ目標符号量に従い、ピクチャをブロック分割してピクチャ内符号化、もしくは、ピクチャ間符号化して符号を出力する。この際、ピクチャ復号時刻は、ピクチャ符号に付随する補助情報として符号化する。そして、各ピクチャのピクチャ復号時刻とピクチャ符号量を、仮想復号バッファ演算器703に出力する。更に、符号化制御器704からピクチャ符号の出力が指示された場合には、ピクチャ符号を出力し、符号化制御器704からピクチャ符号の破棄が指示された場合には、ピクチャ符号を出力せずに破棄する。
仮想復号バッファ演算器703は、符号化器702からの各ピクチャのピクチャ復号時刻とピクチャ符号量に基づき、MPEG-4 AVCにおけるHRDのCPB規定に従い、所定ピクチャ時間間隔ごとの仮想復号バッファの蓄積量の推移を演算して、符号化制御器704に出力する。また、符号化制御器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を、ピクチャP4の場合には時刻t4を設定する。ピクチャP5の場合には時刻t5を設定する。
ステップS803では、現ピクチャのピクチャ復号直前の仮想復号バッファ蓄積量を最大として、例えば、過去の仮想復号バッファ推移に基づき、ピクチャ目標符号量を設定して、ステップS804に進む。
例えば、図9において、ピクチャP1のピクチャ復号直前の仮想復号バッファ蓄積量はdb1であり、ピクチャP2のピクチャ復号直前の仮想復号バッファ蓄積量はdb2である。ピクチャP1の場合には、仮想復号バッファ蓄積量db1を最大としてピクチャ目標符号量を算出する。ピクチャP2の場合には、仮想復号バッファ蓄積量db2を最大としてピクチャ目標符号量を算出する。
ステップS804では、符号化パラメータを符号化するか否か判断する。例えば、30ピクチャごとに符号化パラメータを符号化、それ以外は符号化しないと判断する。そして、符号化パラメータを符号化すると判断する場合はステップS805に進み、符号化パラメータを符号化しないと判断する場合はステップS806に進む。
ステップS805では、符号化パラメータを符号化して、ステップS806に進む。
ステップS806では、現ピクチャをブロック分割して、ステップS803で設定したピクチャ目標符号量に応じて、ピクチャ内符号化、もしくは、ピクチャ間符号化して、ステップS807に進む。この際、ステップS802で設定したピクチャ復号時刻は、ピクチャ符号に付随する補助情報として符号化する。
ステップS807では、現ピクチャのピクチャ復号時刻において、ピクチャ復号直後の仮想復号バッファ蓄積符号量が負ならばアンダーフロー発生と判断してステップS808に進み、ピクチャ復号直後の仮想復号バッファ蓄積符号量がゼロ以上ならばアンダーフロー発生なしと判断してステップS809に進む。
例えば、図9において、ピクチャP1の場合には、ピクチャ復号時刻t1におけるピクチャ復号直後の仮想復号バッファ蓄積量da1はゼロ以上なので、アンダーフロー発生なしと判断する。ピクチャP3のピクチャ復号時刻t3におけるピクチャ復号直後の仮想復号バッファの蓄積量da3は負なので、アンダーフロー発生と判断する。
ステップS808では、ステップS805における符号化パラメータの符号も含めて、現ピクチャのピクチャ符号を破棄して、ステップS810に進む。
現ピクチャのピクチャ符号を出力せず、以降の符号化において、現ピクチャを参照ピクチャに用いないようにする。また、仮想復号バッファ推移の演算において、現ピクチャをピクチャスキップする。例えば、図9において、ピクチャP3におけるアンダーフロー発生のため、ピクチャP3を破棄してピクチャスキップする。
ステップS809では、現ピクチャのピクチャ符号を出力して、ステップS810に進む。
ステップS810では、動画像の符号化処理を終了するか否かを、例えば、外部からの符号化処理終了コマンドの入力により判断して、符号化を終了しない場合はステップS802に戻り、符号化を終了する場合は一連の処理を終了する。
特開平6−205393号公報 特開2001−298735号公報
伝送レートが低い伝送路を用いて符号化動画像を送る場合には、低符号レートで符号化する必要がある。動画像においてシーンチェンジや急激な動き変化等により、急激に多くのピクチャ符号量が発生することで、量子化幅の制御が間に合わず、仮想復号バッファでアンダーフロー発生する。従来技術において、アンダーフロー回避のためのピクチャ符号の破棄は、画像欠落の障害を招き、復号動画像に情報欠落を生じる。
本発明は、アンダーフロー発生回避のためのピクチャ符号の破棄を抑制するために、 所定条件の時刻をピクチャ復号時刻として符号化することでアンダーフロー発生を抑制することでピクチャ符号の破棄を回避して、復号においてより画像欠落の少ない良好な受信表示が可能となる、動画像符号化装置及び動画像符号化方法の提供を目的とする。
上記目的を達成するため、本発明の動画像符号化装置は、所定ピクチャ時間間隔の動画像の各ピクチャをブロック分割する手段と、第1の単位時間あたりのブロック数を設定する手段と、所定ピクチャ時間間隔に基づき、第1の単位時間あたりのブロック数より少ない第2の単位時間あたりのブロック数となる符号化ピクチャサイズを設定する手段と、符号化ピクチャサイズで各ピクチャを符号化する手段と、符号化ピクチャサイズのピクチャ符号を第1の単位時間あたりのブロック数で復号するに要する第1の時間間隔を算出する手段と、所定ピクチャ時間間隔と第1の時間間隔との時間差以下で、かつ、所定ピクチャ時間間隔の1/N(Nは2以上の自然数)となる第2の時間間隔を算出する手段と、所定ピクチャ時間間隔で、ピクチャごとのピクチャ復号時刻を算出する手段と、第2の時間間隔ごとの仮想復号バッファの蓄積量の推移を算出する手段と、現ピクチャのピクチャ復号時刻におけるピクチャ復号直後の仮想復号バッファ蓄積量がゼロ以上の場合には、現ピクチャのピクチャ復号時刻を第1の時刻として設定し、現ピクチャのピクチャ復号時刻において、ピクチャ復号直後の仮想復号バッファ蓄積量が負の場合には、現ピクチャのピクチャ復号時刻後にピクチャ復号直後の仮想復号バッファ蓄積量がゼロ以上となる最初の時刻を第1の時刻として算出して設定する手段と、第1の時刻から次ピクチャのピクチャ復号時刻までの第3の時間間隔を算出する手段と、第3の時間間隔が第1の時間間隔以上の場合には、第1の時刻を現ピクチャのピクチャ復号時刻として符号化してピクチャ符号を出力するように制御する手段と、を有する。
本発明の動画像符号化装置は、所定ピクチャ時間間隔の動画像の各ピクチャをブロック分割する手段と、第1の単位時間あたりのブロック数を設定する手段と、所定ピクチャ時間間隔に基づき、第1の単位時間あたりのブロック数より少ない第2の単位時間あたりのブロック数となる符号化ピクチャサイズを設定する手段と、符号化ピクチャサイズで各ピクチャを符号化する手段と、符号化ピクチャサイズのピクチャ符号を第1の単位時間あたりのブロック数で復号するに要する第1の時間間隔を算出する手段と、所定ピクチャ時間間隔と第1の時間間隔との時間差以下で、かつ、所定ピクチャ時間間隔の1/N(Nは2以上の自然数)となる第2の時間間隔を算出する手段と、第1の時間間隔以上で所定ピクチャ時間間隔未満、かつ、第2の時間間隔のM倍(Mは自然数)となる第4の時間間隔を算出する手段と、第2の時間間隔ごとの仮想復号バッファの蓄積量の推移を算出する手段と、所定ピクチャ時間間隔で、ピクチャごとのピクチャ復号時刻を算出する手段と、現ピクチャのピクチャ復号時刻におけるピクチャ復号直後の仮想復号バッファ蓄積量がゼロ以上の場合には、現ピクチャのピクチャ復号時刻を第1の時刻として設定し、また、現ピクチャのピクチャ復号時刻におけるピクチャ復号直後の仮想復号バッファ蓄積量が負の場合には、現ピクチャのピクチャ復号時刻後にピクチャ復号直後の仮想復号バッファ蓄積量がゼロ以上となる最初の時刻を第1の時刻として算出する手段と、第1の時刻から第4の時間間隔後の時刻を第2の時刻として算出する手段と、所定ピクチャ時間間隔以上である第5の時間間隔を設定する手段と、現ピクチャのピクチャ復号時刻から第5の時間間隔後の時刻を第3の時刻として、第2の時刻が第3の時刻より前の場合には、第1の時刻を現ピクチャのピクチャ復号時刻として符号化してピクチャ符号を出力するように制御する手段と、次ピクチャを符号化する際に、第2の時刻が次ピクチャのピクチャ復号時刻を超えた場合には、次ピクチャのピクチャ復号時刻を第2の時刻に修正して、次ピクチャを符号化するように制御する手段と、を有する。
本発明の動画像符号化方法は、所定ピクチャ時間間隔の動画像の各ピクチャをブロック分割するステップと、第1の単位時間あたりのブロック数を設定するステップと、所定ピクチャ時間間隔に基づき、第1の単位時間あたりのブロック数より少ない第2の単位時間あたりのブロック数となる符号化ピクチャサイズを設定するステップと、符号化ピクチャサイズで各ピクチャを符号化するステップと、符号化ピクチャサイズのピクチャ符号を第1の単位時間あたりのブロック数で復号するに要する第1の時間間隔を算出するステップと、所定ピクチャ時間間隔と第1の時間間隔との時間差以下で、かつ、所定ピクチャ時間間隔の1/N(Nは2以上の自然数)となる第2の時間間隔を算出するステップと、所定ピクチャ時間間隔で、ピクチャごとのピクチャ復号時刻を算出するステップと、第2の時間間隔ごとの仮想復号バッファの蓄積量の推移を算出するステップと、現ピクチャのピクチャ復号時刻におけるピクチャ復号直後の仮想復号バッファ蓄積量がゼロ以上の場合には、現ピクチャのピクチャ復号時刻を第1の時刻として設定し、現ピクチャのピクチャ復号時刻において、ピクチャ復号直後の仮想復号バッファ蓄積量が負の場合には、現ピクチャのピクチャ復号時刻後にピクチャ復号直後の仮想復号バッファ蓄積量がゼロ以上となる最初の時刻を第1の時刻として算出して設定するステップと、第1の時刻から次ピクチャのピクチャ復号時刻までの第3の時間間隔を算出するステップと、第3の時間間隔が第1の時間間隔以上の場合には、第1の時刻を現ピクチャのピクチャ復号時刻として符号化してピクチャ符号を出力するように制御するステップと、を含む。
本発明の動画像符号化方法は、所定ピクチャ時間間隔の動画像の各ピクチャをブロック分割するステップと、第1の単位時間あたりのブロック数を設定するステップと、所定ピクチャ時間間隔に基づき、第1の単位時間あたりのブロック数より少ない第2の単位時間あたりのブロック数となる符号化ピクチャサイズを設定するステップと、符号化ピクチャサイズで各ピクチャを符号化するステップと、符号化ピクチャサイズのピクチャ符号を第1の単位時間あたりのブロック数で復号するに要する第1の時間間隔を算出するステップと、所定ピクチャ時間間隔と第1の時間間隔との時間差以下で、かつ、所定ピクチャ時間間隔の1/N(Nは2以上の自然数)となる第2の時間間隔を算出するステップと、第1の時間間隔以上で所定ピクチャ時間間隔未満、かつ、第2の時間間隔のM倍(Mは自然数)となる第4の時間間隔を算出するステップと、第2の時間間隔ごとの仮想復号バッファの蓄積量の推移を算出するステップと、所定ピクチャ時間間隔で、ピクチャごとのピクチャ復号時刻を算出するステップと、現ピクチャのピクチャ復号時刻におけるピクチャ復号直後の仮想復号バッファ蓄積量がゼロ以上の場合には、現ピクチャのピクチャ復号時刻を第1の時刻として設定し、また、現ピクチャのピクチャ復号時刻におけるピクチャ復号直後の仮想復号バッファ蓄積量が負の場合には、現ピクチャのピクチャ復号時刻後にピクチャ復号直後の仮想復号バッファ蓄積量がゼロ以上となる最初の時刻を第1の時刻として算出するステップと、第1の時刻から第4の時間間隔後の時刻を第2の時刻として算出するステップと、所定ピクチャ時間間隔以上である第5の時間間隔を設定するステップと、現ピクチャのピクチャ復号時刻から第5の時間間隔後の時刻を第3の時刻として、第2の時刻が第3の時刻より前の場合には、第1の時刻を現ピクチャのピクチャ復号時刻として符号化してピクチャ符号を出力するように制御するステップと、次ピクチャを符号化する際に、第2の時刻が次ピクチャのピクチャ復号時刻を超えた場合には、次ピクチャのピクチャ復号時刻を第2の時刻に修正して、次ピクチャを符号化するように制御するステップと、を含む。
第1の発明により、アンダーフローが発生しても、次ピクチャ復号時刻までに、符号化レベルで規定する単位時間あたりの最大マクロブロック数で1ピクチャを復号する時間間隔以上確保できる期間を設けることができ、この期間にアンダーフローが解消するのであれば、ピクチャ復号時刻を変更することで、アンダーフローすることなくピクチャ符号を破棄せずに符号化できる。
これにより、例えば、所定のピクチャ時間間隔より短い第2の時間間隔で表示することで、画像欠落の少ない表示を提供できる。更に、一般に、ピクチャ間符号化ではピクチャ間隔が大きくなると時間的な相関性が低下して符号化効率が悪くなる問題を回避できる。
第2の発明により、アンダーフローが発生しても、次ピクチャ復号時刻を遅らせることで、第1の発明に比べて、符号化レベルで規定する単位時間あたりの最大マクロブロック数で1ピクチャを復号する時間間隔以上確保できる期間を拡大することができ、この期間にアンダーフローが解消するのであれば、ピクチャ復号時刻を変更することで、第1の発明に比べて、より長い期間、アンダーフローすることなくピクチャ符号を破棄せずに符号化できる。
これにより、第1の発明に比べてより効果的に、例えば、所定のピクチャ時間間隔より短い第2の時間間隔で表示することで、画像欠落の少ない表示を提供できる。更に、一般に、ピクチャ間符号化ではピクチャ間隔が大きくなると時間的な相関性が低下して符号化効率が悪くなる問題を回避できる。
本発明の第1の実施例を示すブロック図である。 本発明の第1の実施例の動作を説明するフローチャートである。 本発明の第1の実施例の動作を説明する仮想復号バッファ推移図である。 本発明の第2の実施例を示すブロック図である。 本発明の第2の実施例の動作を説明するフローチャートである。 本発明の第2の実施例の動作を説明する仮想復号バッファ推移図である。 従来例を示すブロック図である。 従来例の動作を説明するフローチャートである。 従来例の動作を説明する仮想復号バッファ推移図である。 本発明の第3の実施例を示すブロック図である。
以下、本発明の実施の形態について図面により説明する。
図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は、符号化パラメータ設定器101からの符号化パラメータを、例えば、30ピクチャごとにピクチャ符号化直前に符号化する。また、符号化制御器106から指示されたピクチャ復号時刻とピクチャ目標符号量に従い、ピクチャを符号化ピクチャサイズにサイズ変換した後、ブロック分割してピクチャ内符号化、もしくは、ピクチャ間符号化して、ピクチャ復号時刻符号化104に出力する。また、符号化結果として、各ピクチャのピクチャ復号時刻とピクチャ符号量を、仮想復号バッファ演算器105に出力する。
ピクチャ復号時刻符号化器104は、符号化制御器106からの第1の時刻を現ピクチャのピクチャ復号時刻としてピクチャ符号に付随する補助情報を符号化すると共に、符号化器103からの現ピクチャのピクチャ符号に付加する。また、符号化制御器106からピクチャ符号の破棄が指示された場合には、ピクチャ符号を出力せずに破棄し、ピクチャ符号の破棄が指示されない場合には、符号出力としてピクチャ符号を出力する。
仮想復号バッファ演算器105は、符号化器103からの各ピクチャのピクチャ復号時刻とピクチャ符号量に基づき、MPEG-4 AVCにおけるHRDのCPB規定に従い、仮想復号バッファの蓄積量の推移を演算して、符号化制御器106に出力する。
符号化制御器106は、所定ピクチャ時間間隔で符号化順に順次ピクチャごとのピクチャ復号時刻を算出して設定すると共に、仮想復号バッファ演算器105から仮想復号バッファの蓄積量の推移に基づき、ピクチャ目標符号量を算出して設定して、符号化器103にピクチャ符号化を指示する。また、仮想復号バッファ演算器105から仮想復号バッファの蓄積量の推移に基づき、第1の時刻を設定して、ピクチャ復号時刻符号化器104に出力する。更に、符号化制御器106は、仮想復号バッファ演算器105からの仮想復号バッファの蓄積量の推移に基づき、ピクチャ符号を破棄すると判断をした場合には、ピクチャ復号時刻符号化器104にピクチャ符号の破棄を指示する。
(第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と、動画像の所定ピクチャ時間間隔PTとから下記のように算出する。
TQ1 = PT×(NMB2/NMB1) (式1)
N = Ceil(PT/(PT−TQ1))+α (式2)
TQ2 = PT/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を設定する。ピクチャP5の場合には時刻t5を設定する。ピクチャP6の場合には時刻t6を設定する。
ステップS204では、現ピクチャのピクチャ復号直前の仮想復号バッファ蓄積量を最大として、例えば、過去の仮想復号バッファ推移に基づきピクチャ目標符号量を算出して、ステップS205に進む。
例えば、図3において、ピクチャP1のピクチャ復号時刻t1直前の仮想復号バッファ蓄積量はdb1であり、ピクチャP2のピクチャ復号時刻t2直前の仮想復号バッファ蓄積量はdb2である。ピクチャP1の場合には、仮想復号バッファ蓄積量db1を最大として目標符号量を算出する。ピクチャP2の場合には、仮想復号バッファ蓄積量db2を最大としてピクチャ目標符号量を算出する。
ステップS205では、符号化パラメータを符号化するか否か判断する。例えば、30ピクチャごとに符号化パラメータを符号化、それ以外は符号化しないと判断する。そして、符号化パラメータを符号化すると判断する場合はステップS206に進み、符号化パラメータを符号化しないと判断する場合はステップS207に進む。
ステップS206では、符号化パラメータを符号化して、ステップS207に進む。
ステップS207では、現ピクチャを符号化ピクチャサイズ応じてサイズ変換した後、ブロック分割して、ステップS204で設定したピクチャ目標符号量に応じて、ピクチャ内符号化、もしくは、ピクチャ間符号化して、ステップS208に進む。
ステップS208では、現ピクチャのピクチャ復号時刻において、ピクチャ復号直後の仮想復号バッファ蓄積量がゼロ以上アンダーフロー発生なし判断してステップS209に進み、ピクチャ復号直後の仮想復号バッファ蓄積量が負ならばアンダーフロー発生と判断してステップS210に進む。
例えば、図3において、ピクチャP1の場合には、ピクチャ復号時刻t1におけるピクチャ復号直後の仮想復号バッファ蓄積量da1はゼロ以上なので、アンダーフロー発生なしと判断する。ピクチャP2の場合には、ピクチャ復号時刻t2におけるピクチャ復号直後の仮想復号バッファ蓄積量da2は負なので、アンダーフロー発生と判断する。
ステップS209では、現ピクチャのピクチャ復号時刻を第1の時刻として設定し、ステップS214に進む。
ステップS210では、アンダーフロー発生後、現ピクチャのピクチャ復号直後の仮想復号バッファ蓄積量がゼロ以上となる最初の時刻を第1の時刻として設定し、ステップS211に進む。
例えば、図3において、ピクチャP2の場合には、ピクチャ復号時刻t2においてアンダーフロー発生後、ピクチャP2のピクチャ復号直後の仮想復号バッファ蓄積量がゼロ以上となる最初の時刻は、時刻t2.1である。ピクチャP2の場合には、第1の時刻を時刻t2.1と設定する。同様に、ピクチャP4の場合には、ピクチャ復号時刻t4においてアンダーフロー発生後、ピクチャP4のピクチャ復号直後の仮想復号バッファ蓄積量がゼロ以上となる最初の時刻は、時刻t4.2である。ピクチャP4の場合には、第1の時刻を時刻t4.2と設定する。
ステップS211では、第1の時刻から次ピクチャのピクチャ復号時刻までの時間間隔を、第3の時間間隔TQ3として算出して、ステップS212に進む。
例えば、図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)
ステップS212では、第3の時間間隔TQ3と第1の時間間隔TQ1を比較して、TQ3がTQ1未満の場合にはステップS213に進み、TQ3がTQ1以上の場合にはステップS214に進む。
例えば、図3において、ピクチャP2の場合には、(式7)から第3の時間間隔TQ3は1/40秒、(式4)から第1の時間間隔TQ1は1/40秒である。TQ3はTQ1以上なので、ピクチャP2の場合には、ステップS214に進む。ピクチャP4の場合には、(式8)から第3の時間間隔TQ3は1/60秒、(式4)から第1の時間間隔TQ1は1/40秒である。TQ3はTQ1未満なので、ピクチャP4の場合には、ステップS213に進む。
ステップS213では、ステップS206における符号化パラメータの符号も含めて、現ピクチャのピクチャ符号を破棄して、ステップS216に進む。
現ピクチャのピクチャ符号を出力せず、以降の符号化において、現ピクチャを参照ピクチャに用いないようにする。また、仮想復号バッファ推移の演算において、現ピクチャをピクチャスキップする。例えば、図3において、ピクチャP4のピクチャ符号を破棄すると共に、以降の符号化において、ピクチャP4を参照ピクチャに用いないようにする。また、仮想復号バッファ推移の演算において、ピクチャP4をピクチャスキップする。
ステップS214では、第1の時刻を現ピクチャの復号時刻とし、ピクチャ符号に付随する補助情報として符号化して、ステップS215に進む。
ステップS215では、現ピクチャのピクチャ符号を出力して、ステップS216に進む。
ステップS216では、動画像の符号化処理を終了するか否かを、例えば、外部からの符号化処理終了コマンドの入力により判断して、符号化を終了しない場合はステップS203に戻り、符号化を終了する場合は一連の処理を終了する。
以上、第1の実施例では、符号化レベルの入力により間接的に第1の単位時間当たりのマクロブロック数を設定したが、直接的に第1の単位時間当たりのマクロブロック数を設定してもよい。
第1の実施例により、アンダーフローが発生する場合においても、次ピクチャ復号時刻までに、符号化レベルで規定する単位時間あたりの最大マクロブロック数で1ピクチャを復号する時間間隔以上確保できる期間を設けることができ、この期間であれば、第1の時刻をピクチャ復号時刻として符号化することで、仮想復号バッファにおけるアンダーフロー発生を回避でき、ピクチャ符号を破棄せずに出力することができる。
これにより、例えば、所定のピクチャ時間間隔より短い第2の時間間隔で表示することで、画像欠落の少ない表示を提供できる。また、一般に、ピクチャ間符号化ではピクチャ間隔が大きくなると時間的な相関性が低下して符号化効率が悪くなる問題を回避できる。
(第2の実施例のブロック図の説明)
第2の実施例について図4を用いて説明する。
時間間隔算出器401は、符号化レベルと符号化ピクチャサイズを入力して、第1の時間間隔TQ1、第2の時間間隔TQ2、及び、第4の時間間隔TQ4を算出して出力し、また、所定ピクチャ時間間隔以上である第5の時間間隔を設定して出力する。第2の実施例において、MPEG-4 AVCのHRDのCPB規定におけるclock tickとして第2の時間間隔TQ2を用いる。
符号化パラメータ設定器402は、符号化レベルと符号化ピクチャサイズ、及び、時間間隔算出器401からの第2の時間間隔TQ2を入力して、符号化レベル、符号化ピクチャサイズ、及び、MPEG-4 AVCのHRDのCPB規定におけるclock tickとして符号化パラメータに設定して出力する。
符号化器403は、符号化パラメータ設定器401からの符号化パラメータを、例えば、30ピクチャごとにピクチャ符号化直前に符号化する。また、符号化制御器406から指示されたピクチャ復号時刻とピクチャ目標符号量に従い、ピクチャを符号化ピクチャサイズにサイズ変換した後、ブロック分割してピクチャ内符号化、もしくは、ピクチャ間符号化して、ピクチャ復号時刻符号化器404に出力する。また、符号化結果として、各ピクチャのピクチャ復号時刻とピクチャ符号量を、仮想復号バッファ演算器405に出力する。
ピクチャ復号時刻符号化器404は、符号化制御器406からの第1の時刻を現ピクチャのピクチャ復号時刻としてピクチャ符号に付随する補助情報に符号化すると共に、符号化器403からの現ピクチャのピクチャ符号に付加する。また、符号化制御器406からピクチャ符号の破棄が指示された場合には、ピクチャ符号を出力せずに破棄し、ピクチャ符号の破棄が指示されない場合には、符号出力としてピクチャ符号を出力する。
仮想復号バッファ演算器405は、符号化器403からの各ピクチャのピクチャ復号時刻とピクチャ符号量に基づき、MPEG-4 AVCにおけるHRDのCPB規定に従い、仮想復号バッファの蓄積量の推移を演算して、符号化制御器406に出力する。
符号化制御器406は、所定ピクチャ時間間隔で符号化順に順次ピクチャごとのピクチャ復号時刻を算出して設定すると共に、仮想復号バッファ演算器105から仮想復号バッファの蓄積量の推移に基づき、ピクチャ目標符号量を算出して設定して、符号化器403にピクチャ符号化を指示する。また、仮想復号バッファ演算器405から仮想復号バッファの蓄積量の推移に基づき、第1の時刻、及び、第2の時刻を算出して設定して、第1の時刻をピクチャ復号時刻符号化器404に出力する。また、次ピクチャのピクチャ復号時刻を第2の時刻に修正すると判断した場合には、次ピクチャのピクチャ復号時刻を第2の時刻に修正して設定する。更に、仮想復号バッファ演算器405からの仮想復号バッファの蓄積量の推移に基づき、ピクチャ符号を破棄すると判断をした場合には、ピクチャ復号時刻符号化器404にピクチャ符号の破棄を指示する。
(第2の実施例のフローチャートと仮想復号バッファの推移図の説明)
次に、図5と図6を用いて説明する。
ステップS501では、符号化レベルと符号化ピクチャサイズを入力し、第1の時間間隔TQ1、第2の時間間隔TQ2、及び、第4の時間間隔を以下のように算出して、また、所定ピクチャ時間間隔以上の第5の時間間隔を設定して、ステップ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)となる。
また、所定ピクチャ時間間隔以上である第5の時間間隔を設定する。例えば、第5の時間間隔を、所定ピクチャ時間間隔の2倍、すなわち、2ピクチャ分の時間間隔に設定する。
ステップ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を、ピクチャP6の場合には時刻t6を、ピクチャP7の場合には時刻t7を設定する。
ステップS504では、前ピクチャにおいてステップS511で算出して設定した第2の時刻と、現ピクチャにおいてステップS503で設定した現ピクチャのピクチャ復号時刻とを比較する。第2の時刻が現ピクチャのピクチャ復号時刻を超える場合には、ステップS505に進む。また、第2の時刻が現ピクチャのピクチャ復号時刻以前の場合には、ステップS506に進む。
例えば、図6において、ピクチャP2の場合には、前ピクチャP1においてステップS511で算出して設定した第2の時刻T2(P1)は時刻t1.3であり、ピクチャP2のピクチャ復号時刻t2以前なので、ステップS506に進む。ピクチャP3の場合には、前ピクチャP2においてステップS511で算出して設定した第2の時刻T2(P2)は時刻t3.1であり、ピクチャP3のピクチャ復号時刻t3を越えるので、ステップS505に進む。また、ピクチャP6の場合には、前ピクチャP5においてステップS511で算出して設定した第2の時刻T2(P5)は時刻t7であるが、前ピクチャP5において、ステップS510で算出して設定した第1の時刻T1(P5)が時刻t6.1であるため、ステップS514においてピクチャP5のピクチャ符号が破棄して、第2の時刻T2(P5)もゼロにリセットしたので、ステップS506に進む。
ステップS505では、ステップS503で設定した現ピクチャのピクチャ復号時刻を、前ピクチャにおいてステップS511で算出して設定した第2の時刻に修正して、ステップS506に進む。
例えば、図6において、ピクチャP3のピクチャ復号時刻を、時刻t3から時刻t3.1に修正して、ステップS506に進む。
ステップS506では、現ピクチャのピクチャ復号直前の仮想復号バッファ蓄積量を最大として、例えば、過去の仮想復号バッファ推移に基づきピクチャ目標符号量を算出して、ステップS507に進む。
例えば、図6において、ピクチャP1のピクチャ復号時刻t1直前の仮想復号バッファ蓄積量はdb1であり、ピクチャP2のピクチャ復号時刻t2直前の仮想復号バッファ蓄積量はdb2である。ピクチャP1は仮想復号バッファ蓄積量db1を最大としてピクチャ目標符号量を算出する。ピクチャP2は仮想復号バッファ蓄積量db2を最大としてピクチャ目標符号量を算出する。
ステップS507では、符号化パラメータを符号化するか否か判断する。例えば、30ピクチャごとに符号化パラメータを符号化、それ以外は符号化しないと判断する。そして、符号化パラメータを符号化すると判断する場合はステップS508に進み、符号化パラメータを符号化しないと判断する場合はステップS509に進む。
ステップS508では、符号化パラメータを符号化して、ステップS509に進む。
ステップS509では、現ピクチャを符号化ピクチャサイズに応じてサイズ変換した後、ブロック分割して、ステップ506で設定したピクチャ目標符号量に応じて、ピクチャ内符号化、もしくは、ピクチャ間符号化して、ステップS510に進む。
ステップS510では、現ピクチャのピクチャ復号時刻において、ピクチャ復号直後の仮想復号バッファ蓄積量がゼロ以上の場合には、現ピクチャのピクチャ復号時刻を第1の時刻として設定し、また、現ピクチャのピクチャ復号時刻におけるピクチャ復号直後の仮想復号バッファ蓄積量が負の場合には、現ピクチャのピクチャ復号時刻の後にピクチャ復号直後の仮想復号バッファ蓄積量がゼロ以上となる最初の時刻を第1の時刻として設定して、ステップS511に進む。
例えば、図6において、ピクチャP1の場合には、ピクチャ復号時刻t1におけるピクチャ復号直後の仮想復号バッファ蓄積量da1はゼロ以上なので、ピクチャP1における第1の時刻T1(P1)として時刻t1を設定する。ピクチャP2の場合には、ピクチャ復号時刻t2におけるピクチャ復号直後の仮想復号バッファ蓄積量da2は負であり、時刻t2の後にピクチャ復号直後の仮想復号バッファ蓄積量がゼロ以上となる最初の時刻t2.2を第1の時刻T1(P2)として設定する。ピクチャP5の場合には、ピクチャ復号時刻t5におけるピクチャ復号直後の仮想復号バッファ蓄積量da5は負であり、時刻t5の後にピクチャ復号直後の仮想復号バッファ蓄積量がゼロ以上となる最初の時刻t6.1を第1の時刻T1(P5)として設定する。
ステップS511では、ステップS510で設定した第1の時刻から、ステップS501で設定した第4の時間間隔後の時刻を、第2の時刻として設定して、ステップS512に進む。
例えば、図6において、ピクチャP1の場合には、第1の時刻T1(P1)は時刻t1であり、第1の時刻T1(P1)から第4の時間間隔TQ4後の時刻である、時刻t1.3を、第2の時刻T2(P1)として設定する。ピクチャP2の場合には、第1の時刻T1(P2)は時刻t2.2であり、第1の時刻T1(P2)から第4の時間間隔TQ4後の時刻である、時刻t3.1を、第2の時刻T2(P2)として設定する。ピクチャP5の場合には、第1の時刻T2(P5)は時刻t6.1であり、第1の時刻T1(P5)から第4の時間間隔TQ4後の時刻である、時刻t7を、第2の時刻T2(P5)として設定する。
ステップS512では、現ピクチャのピクチャ復号時刻から第5の時間間隔後の時刻を、第3の時刻として算出して設定して、ステップS513に進む。
例えば、ステップS501において第5の時間間隔を2ピクチャ分のピクチャ時間間隔としたので、第3の時刻を次々ピクチャの復号時刻として設定する。すなわち、図6において、ピクチャP1の場合には第3の時刻T3(P1)として時刻t3を設定する。以降、ピクチャP2の場合には第3の時刻T3(P4)として時刻t4を、ピクチャP3の場合には第3の時刻T3(P3)として時刻t5を、ピクチャP4の場合には第3の時刻T3(P4)として時刻t6を、ピクチャP5の場合には第3の時刻T3(P5)として時刻t7を、ピクチャP6の場合には第3の時刻T3(P6)として時刻t8を、ピクチャP7の場合には第3の時刻T3(P7)として時刻t9を設定する。
ステップS513では、ステップS511で設定した第2の時刻と、ステップS512で設定した第3の時刻とを比較する。第2の時刻が第3の時刻以降の場合には、ステップS514に進む。第2の時刻が第3の時刻より前の場合には、ステップS515に進む。
例えば、図6において、ピクチャP5の場合には、第2の時刻T2(P5)は時刻t7であり、第3の時刻T3(P5)である時刻t7以降なので、ステップS514に進む。ピクチャP2の場合には、第2の時刻T2(P2)は時刻t3.1であり、第3の時刻T3(P2)である時刻t4より前なので、ステップS515に進む。
ステップS514では、ステップS508における符号化パラメータの符号も含めて、現ピクチャのピクチャ符号を破棄し、また、ステップS511で算出して設定した第2の時刻をゼロにリセットして、ステップS517に進む。
現ピクチャのピクチャ符号を出力せず、以降の符号化において、現ピクチャを参照ピクチャに用いないようにする。また、仮想復号バッファ推移の演算において、現ピクチャをピクチャスキップする。例えば、図6において、ピクチャP5のピクチャ符号を破棄して、第2の時刻T2(P5)をゼロにリセットすると共に、以降の符号化において、ピクチャP5参照ピクチャに用いないようにする。また、仮想復号バッファ推移の演算において、ピクチャP5をピクチャスキップする。
ステップS515では、第1の時刻を現ピクチャの復号時刻とし、ピクチャ符号に付随する補助情報として符号化して、ステップS516に進む。
ステップS516では、現ピクチャのピクチャ符号を出力して、ステップS517に進む。
ステップS517では、動画像の符号化処理を終了するか否かを、例えば、外部からの符号化処理終了コマンドの入力により判断して、符号化を終了しない場合はステップS503に進み、符号化を終了する場合は一連の処理を終了する。
以上、第2の実施例では、符号化レベルの入力により間接的に第1の単位時間当たりのマクロブロック数を設定したが、直接的に第1の単位時間当たりのマクロブロック数を設定してもよい。
また、第2の実施例では、ステップS512において、第3の時刻を算出して設定するための所定時間間隔を2ピクチャ分のピクチャ時間間隔として次々ピクチャのピクチャ復号時刻と比較したが、所定時間間隔を3ピクチャ分のピクチャ時間間隔としても良いし、1ピクチャ分のピクチャ時間間隔としても良い。所定時間間隔を1ピクチャ分のピクチャ時間間隔とした場合には、第1の実施例と等価である。
第2の実施例により、アンダーフローが発生した場合においても、次ピクチャ復号時刻を遅らせることで、第1の実施例に比べて、符号化レベルで規定する単位時間あたりの最大マクロブロック数で1ピクチャを復号する時間間隔以上確保できる期間を拡大することができ、この期間であれば、仮想復号バッファにおけるアンダーフローを回避でき、ピクチャ符号を破棄せずに出力することができる。
これにより、第1の実施例に比べて、より画像欠落の少ない表示を提供できる。また、一般に、ピクチャ間符号化ではピクチャ間隔が大きくなると時間的な相関性が低下して符号化効率が悪くなる問題をより回避できる。
(第3の実施例の説明)
第1の実施例、及び、第2の実施例により、所定ピクチャ時間間隔の動画像の符号化において、ピクチャスキップ部分を除いても、アンダーフローを回避するためにピクチャ復号時刻を補正することで、連続するピクチャのピクチャ復号時刻の時間間隔が所定ピクチャ時間間隔とならない場合が生じる。復号において、低遅延よりも復号表示におけるピクチャ時間間隔を一定にすることが望まれる場合には、例えば、一連のピクチャ復号時刻と対応するピクチャ表示時刻を所定ピクチャ時間間隔単位の時刻となるよう遅延して補正したり、動画像の復号出力にタイムベースコレクターを介して動画像を遅延して出力したりすればよい。例えば、第1の実施例に対応する復号では所定ピクチャ時間間隔以上、第2の実施例に対応する復号では所定時間間隔以上で遅延して補正すればよい。
第3の実施例として、一連のピクチャ復号時刻と対応するピクチャ表示時刻を所定ピクチャ時間間隔単位の時刻となるよう遅延補正して復号することについて説明する。
図10は、第3の実施例を説明するブロック図である。
分離器1001は、動画像の各ピクチャを符号化して伝送された符号から、符号化パラメータの符号を分離して符号化パラメータ復号器1002に出力すると共に、各ピクチャ符号をピクチャ復号器1004に出力する。
符号化パラメータ復号器1002は、分離器1001からの符号化パラメータの符号を復号して、復号制御器1003に出力する。
復号制御器1003は、符号化パラメータ復号器1002からの符号化パラメータが示す、プロファイルとレベル、ピクチャ時間間隔、ピクチャサイズ、復号に必要なメモリ、ビットレート等、処々の符号化条件に適応して復号するようにピクチャ復号器1004を制御する。
符号化パラメータが示すプロファイルとレベルに適合して復号可能か否かを判定して、復号可能であればピクチャ復号器1004に順次ピクチャ符号を復号するよう制御し、復号できなければ、例えば、復号不可であることをユーザーに画像表示して一連の処理を終了する。
ピクチャ復号器1004への制御は、例えば、プロファイルに準じた符号化方式のサブセットに適応して復号するよう制御したり、レベルに準じたピクチャあたりの最大マクロブロック数、単位時間あたりの最大マクロブロック数、最大ビットレート、復号に必要なメモリに適応して復号するよう制御したり、ピクチャ時間間隔、ピクチャサイズに適応して復号するよう制御したりする。
ピクチャ復号器1004は、復号制御器1003からの制御に従い、分離器1001からの各ピクチャ符号を、付随する補助情報からのピクチャ復号時刻に基づくタイミングで、逐次復号して動画像を出力する。また、外部から表示時刻補正指示があった場合には、一連のピクチャ復号時刻と対応するピクチャ表示時刻を所定ピクチャ時間間隔単位の時刻となるよう遅延して補正した時刻に基づくタイミングで、逐次復号して動画像を出力する。例えば、所定ピクチャ時間間隔PTにおいて、あるピクチャのピクチャ復号時刻DTSからの補正ピクチャ復号時刻DTSrは(式18)による。
DTSr = (INT(DTS/PT)+1)×PT+α (式18)
ここで、第1の実施例に対応する復号では「αは0以上」、第2の実施例に対応する復号では「αは所定時間間隔と所定ピクチャ時間間隔の差分以上」である。
また、ピクチャ復号時刻においてピクチャ符号が不完全、すなわち、ピクチャの復号において、ピクチャ復号器入力段に備える符号バッファがアンダーフローする場合には、ピクチャ復号時刻以降、符号化パラメータから得られるclock tickの時間間隔ごとに、従来技術の説明においてはピクチャ時間間隔PTごとに、符号バッファのアンダーフローが解消してピクチャ符号が完全か確認する。そして、ピクチャ符号が完全となりしだい復号する。
101 時間間隔算出器
102 符号化パラメータ設定器
103 符号化器
104 ピクチャ復号時刻符号化器
105 仮想復号バッファ演算器
106 符号化制御器
401 時間間隔算出器
402 符号化パラメータ設定器
403 符号化器
404 ピクチャ復号時刻符号化器
405 仮想復号バッファ演算器
406 符号化制御器
701 符号化パラメータ設定器
702 符号化器
703 仮想復号バッファ演算器
704 符号化制御器
1001 分離器
1002 符号化パラメータ復号器
1003 復号制御器
1004 ピクチャ復号器

Claims (4)

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

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010071821A JP2011205476A (ja) 2010-03-26 2010-03-26 動画像符号化装置及び動画像符号化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010071821A JP2011205476A (ja) 2010-03-26 2010-03-26 動画像符号化装置及び動画像符号化方法

Publications (1)

Publication Number Publication Date
JP2011205476A true JP2011205476A (ja) 2011-10-13

Family

ID=44881622

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010071821A Pending JP2011205476A (ja) 2010-03-26 2010-03-26 動画像符号化装置及び動画像符号化方法

Country Status (1)

Country Link
JP (1) JP2011205476A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013232802A (ja) * 2012-04-27 2013-11-14 Fujitsu Ltd 動画像符号化装置、動画像符号化方法、動画像復号装置及び動画像復号方法
JP2016129418A (ja) * 2016-03-07 2016-07-14 富士通株式会社 動画像復号装置及び動画像復号方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013232802A (ja) * 2012-04-27 2013-11-14 Fujitsu Ltd 動画像符号化装置、動画像符号化方法、動画像復号装置及び動画像復号方法
JP2016129418A (ja) * 2016-03-07 2016-07-14 富士通株式会社 動画像復号装置及び動画像復号方法

Similar Documents

Publication Publication Date Title
EP2985997B1 (en) Low latency video encoder
JP6318158B2 (ja) 参照ピクチャ・リスト変更情報の条件付きシグナリング
KR101697456B1 (ko) 동화상 복호 장치 및 동화상 복호 방법
JP2015057909A (ja) 動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラム
JPWO2009090964A1 (ja) 同期制御方法および情報処理装置
JP2006352198A (ja) 画像符号化装置及び画像符号化プログラム
JP2011205476A (ja) 動画像符号化装置及び動画像符号化方法
JP2011146790A (ja) 動画像復号装置、及び、動画像復号方法
JP2002010271A (ja) ビデオ符号化装置
KR20150081240A (ko) 무손실 비디오 부호화/복호화 방법 및 장치
US9014274B2 (en) Video image encoding device, video image encoding method
JP6182888B2 (ja) 画像符号化装置
JP2013214894A (ja) 画像符号化装置
TWI493942B (zh) 動畫像編碼方法、動畫像編碼裝置及動畫像編碼程式
JP2009246489A (ja) 映像信号切替装置
JP2011135177A (ja) 動画像符号化装置及び動画像符号化方法
KR101629999B1 (ko) 무손실 비디오 부호화/복호화 방법 및 장치
JP4847423B2 (ja) 動画像符号化装置、および、コンピュータプログラム
JP4849441B2 (ja) 動画像符号化装置
JP6011641B2 (ja) 符号化装置
JP2009081728A (ja) 動画像符号化装置、動画像符号化装置の制御方法、および、コンピュータプログラム
JP2005080004A (ja) 動画像符号化装置
JP2005286594A (ja) 映像符号化装置
JP2014011481A (ja) 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
JP2016165122A (ja) 動画像復号方法