(57)【要約】【課題】ビットレートを動画像の符号化難度に応じて最適に制御し、画質を安定させる。【解決手段】フレームを符号化した際に発生する符号量を、アンダーフローもオーバーフローも許容する仮想ＶＢＶで管理する。符号化が楽なシーンでも量子化スケールを下げすぎずに仮想ＶＢＶをオーバーフローさせて次に使用できる符号量を「貯蓄」する。逆に符号化が困難なシーンでも量子化スケールを上げすぎずに仮想ＶＢＶをアンダーフローさせ、符号量を「借りて」画質を安定させる。【選択図】  図１
2004328150.tif 000002
【特許請求の範囲】
【請求項１】
動画像の各フレームを圧縮符号化する符号化部と、
前記符号化部で生成された符号が、仮想的な復号化装置の入力バッファに第１のビットレートで供給されるとしたら当該バッファが保持するであろうと予測される第１の符号量を求める第１の検証部と、
前記符号化部で生成された符号が、仮想的な復号化装置の入力バッファに前記第１のビットレートより低い第２のビットレートで供給されるとしたら当該バッファが保持するであろうと予測される第２の符号量及び前記第２の符号量の変化率を求める第２の検証部と、
前記第１の符号量が予め定めた条件を満たす場合に、前記符号化部が１枚のフレームの全体若しく一部分を「符号化不要」として符号化するように、前記符号化部を制御する第１の制御部と、
前記第１の符号量、前記第２の符号量及び前記変化率に基づき、前記符号化部の符号化ビットレートを変える第２の制御部とを備える動画像符号化装置。
【請求項２】
前記第１の検証部は、
前記第１のビットレートとして、前記仮想的な符号化装置の入力ビットレートの最高値を用いる請求項１記載の動画像符号化装置。
【請求項３】
前記第２の検証部は、
前記第２のビットレートとして、前記符号化部で生成される符号の平均ビットレートの目標値を用いる請求項１記載の動画像符号化装置。
【請求項４】
前記符号化部は、量子化を伴う圧縮符号化を行い、
前記第２の制御部は、
前記第２の符号量及び前記変化率に基づき、１または複数のフレームに割り当てる符号量を算出する割り当て符号量算出部と、
前記第１の符号量、前記第２の符号量及び前記変化率に基づいて、量子化の粗さを決めるパラメータである量子化スケールの上限値及び下限値を決定する決定部と、
前記割り当て符号量及び前記量子化スケールの上限値・下限値に基づき、前記符号化部が量子化に用いる量子化スケールの値を変える変更制御部とを備える請求項１記載の動画像符号化装置。
【請求項５】
前記決定部は、
前記第１の符号量が第１の閾値以上の場合に前記上限値を引き上げる手段と、
前記第２の符号量と前記変化率とを用いて評価値を求める手段と、
前記評価値が第２の閾値を下回る場合に、前記上限値を前記評価値に応じて修正する手段と、
前記評価値が第３の閾値を上回る場合に、前記下限値を前記評価値に応じて修正する手段と、
を備える請求項４記載の動画像符号化装置。
【請求項６】
前記変更制御部は、
前記第２の符号量が、前記第２の符号量に関する下限値以上で変動するように量子化スケールの値を変える、
請求項４記載の動画像符号化装置。
【請求項７】
前記変更制御部は、
前記第２の符号量に関する前記下限値を変える手段を備える、
請求項６記載の動画像符号化装置。
【請求項８】
動画像の各フレームを圧縮符号化し、
生成された符号が、仮想的な復号化装置の入力バッファに第１のビットレートで供給されるとしたら当該入力バッファが保持するであろうと予測される第１の符号量を検証し、
生成された符号が、仮想的な復号化装置の入力バッファに前記第１のビットレートより低い第２のビットレートで供給されるとしたら当該入力バッファが保持するであろうと予測される第２の符号量及び前記第２の符号量の変化率を検証し、前記第１の符号量が予め定めた条件を満たした場合に、前記圧縮符号化において、１枚のフレームの全体若しく一部分が「符号化不要」として符号化されるように制御し、
前記第１の符号量、前記第２の符号量及び変化率に基づき、前記圧縮符号化における符号化ビットレートを制御する動画像符号化方法。
【請求項９】
前記圧縮符号化は、量子化を伴う圧縮符号化であり、
前記符号化ビットレートの制御では、
前記第２の符号量及び前記時間変化に基づいて、１または複数のフレームに割り当てる符号量を算出し、
前記第１の符号量、前記第２の符号量及び前記時間変化に基づいて、量子化の粗さを決めるパラメータである量子化スケールの上限値及び下限値を決定し、
前記割り当て符号量及び前記量子化スケールの上限値・下限値に基づき、前記圧縮符号化が量子化に用いる量子化スケールの値を変える請求項８記載の動画像符号化方法。
【請求項１０】
前記第１のビットレートとして、前記仮想的な復号化装置の入力ビットレートの最大値を用い、
前記第２のビットレートとして、前記圧縮符号化で生成される符号の平均ビットレートの目標値を用いる請求項８記載の動画像符号化方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、リアルタイムにビットレートを変動しながら動画像を符号化する装置及び方法に関する。
【０００２】
【従来の技術】
動画像を可変ビットレートで符号化する方式には、例えばＭＰＥＧ−１（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔ  Ｇｒｏｕｐ  ｐｈａｓｅ−１）、ＭＰＥＧ−２、ＭＰＥＧ−４がある。ＭＰＥＧ（ＭＰＥＧ−１、ＭＰＥＧ−２、ＭＰＥＧ−４）では、エントロピー符号化を用いているので、入力動画像の解像度や動きの激しさ等に応じて、一定の画質を得るために必要な符号量が変化する。可変ビットレートの符号化を採用し、動画像の性質に合わせてビットレートを変動させることで、固定ビットレートの符号化に比べて符号量を少なくすることができる。
【０００３】
従来、可変ビットレートで符号化する手法として、事前に符号化対象となる動画像の特性を調査し、特性に基づいて可変ビットレートで符号化を行う２パス可変ビットレート符号化方式やマルチパス可変ビットレート符号化方式がある（例えば、特許文献１）。
【０００４】
２パス可変ビットレート符号化方式やマルチパス可変ビットレート符号化方式では、まず１パス目で符号化難易度、発生符号量、フレームスキップ等の様々な符号化情報を検出する。検出した符号化情報を用いて各シーンに応じた割り当て符号量を算出する。それから、算出した割り当て符号量に基づいて符号化処理を行う。
【０００５】
特許文献１では、１パス目では固定ビットレートで各フレームを符号化して発生符号量を含む統計量を求め、２パス目では得られた統計量に従って各フレームに対して符号量の割り当て及び量子化スケールを決定し、さらには各フレームのフレームスキップの有無も考慮して実際の符号化を行っている。
【０００６】
これらの符号化方式では、実際の符号化の前に１パス目の前処理が必要となるのでリアルタイムな符号化は行えない。
【０００７】
これに対して１パス可変ビットレート符号化方式では、直前の符号化結果に基づいて次に符号化するシーンに割り当てる符号量を求めて１パスで符号化処理を行う（例えば、特許文献２）。
【０００８】
１パス可変ビットレート符号化方式ならばリアルタイムに符号化を行えるが、予測の困難さから２パス可変ビットレート符号化方式に比べると画質が劣りやすく、しかも、符号量を効率良く割り当てることが難しい。
【０００９】
例えば、特許文献２では符号化の困難さが特定の範囲内の場合は目標ビットレートより例えば１０％低いビットレートで固定レート符号化を行い、その分生まれた符号量の余裕分を符号化が困難な場面に割り当てるようにしている。
【００１０】
【特許文献１】
特開２００３−１８６０３公報
【特許文献２】
特開２００１−６９４６３公報
【００１１】
【発明が解決しようとする課題】
しかし、符号化の困難さが特定の範囲にあるシーンとはいえ、一律に目標ビットレートより低い固定ビットレートで符号化したのでは、各シーンに対して適切な符号量を割り当てることはできない。符号化が楽なシーンでは画質が不必要に良くなり、符号化が困難なシーンでは画質が悪くなるという問題がある。
【００１２】
本発明は上記の問題点に着目してなされたものである。符号化が楽なシーンに割り当てる符号量を減らし、その分の符号量を符号化が困難なシーンに割り当てることにより、符号化が楽なシーンの画質を必要十分なレベルで確保するとともに、符号化が困難なシーンの画質を向上させ、動画像全体の画質を安定させた１パス可変ビットレート方式の動画像符号化装置及び方法を提供することを目的とする。
【００１３】
【課題を解決するための手段】
上記課題を解決するために本発明の動画像符号化装置は、動画像の各フレームを圧縮符号化する符号化部と、前記符号化部で生成された符号が、仮想的な復号化装置の入力バッファに第１のビットレートで供給されるとしたら当該バッファが保持するであろうと予測される第１の符号量を求める第１の検証部と、前記符号化部で生成された符号が、仮想的な復号化装置の入力バッファに前記第１のビットレートより低い第２のビットレートで供給されるとしたら当該バッファが保持するであろうと予測される第２の符号量及び前記第２の符号量の変化率を求める第２の検証部と、前記第１の符号量が予め定めた条件を満たす場合に、前記符号化部が１枚のフレームの全体若しく一部分を「符号化不要」として符号化するように、前記符号化部を制御する第１の制御部と、前記第１の符号量、前記第２の符号量及び前記変化率に基づき、前記符号化部の符号化ビットレートを変える第２の制御部とを備える。
【００１４】
本発明の動画像符号化方法は、動画像の各フレームを圧縮符号化し、生成された符号が、仮想的な復号化装置の入力バッファに第１のビットレートで供給されるとしたら当該入力バッファが保持するであろうと予測される第１の符号量を検証し、生成された符号が、仮想的な復号化装置の入力バッファに前記第１のビットレートより低い第２のビットレートで供給されるとしたら当該入力バッファが保持するであろうと予測される第２の符号量及び前記第２の符号量の変化率を検証し、前記第１の符号量が予め定めた条件を満たした場合に、前記圧縮符号化において、１枚のフレームの全体若しく一部分が「符号化不要」として符号化されるように制御し、前記第１の符号量、前記第２の符号量及び変化率に基づき、前記圧縮符号化における符号化ビットレートを制御する。
【００１５】
【発明の実施の形態】
以下、図面を参照して本発明の一実施形態の動画像符号化装置について説明する。
【００１６】
（概要）本実施形態の動画像符号化装置は、動画像をＭＰＥＧ−４方式で１パス可変ビットレート符号化するものである。
【００１７】
特にＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）に代表される可変ビットレートのデータ読み出しが可能な蓄積メディアに記録する動画像データを生成するのに好適な装置である。
【００１８】
（構成）図１は本実施形態の動画像符号化装置の概略構成を説明する図である。
【００１９】
本装置は、外部から入力された動画像信号からＭＰＥＧ−４方式の符号を可変ビットレートで生成する符号化部１０１と、符号化部１０１で生成された符号の量に基づいて仮想的な復号化装置の入力バッファ（仮想入力バッファ）の符号量を求めるＶＢＶ１０２と、符号化部１０１で生成された符号の量に基づいて仮想的な復号化装置の入力バッファ（仮想入力バッファ）の符号量及び符号量の変化率を求める仮想ＶＢＶ１０３を備える。
【００２０】
さらに、ＶＢＶ１０２及び仮想ＶＢＶ１０３でそれぞれ求めた符号量と仮想ＶＢＶ１０３で求めた符号量の変化率とに基づいて符号化部１０１における量子化スケールＱｐの値の上限値と下限値を設定する量子化スケール値域制御部１０４と、符号化部１０１の符号化ビットレートを制御するレート制御部１０５と、フレームスキップの制御を行うスキップ制御部１０６とを備える。
【００２１】
尚、上述した量子化スケールＱｐの上限値及び下限値は、量子化スケールの最大値及び最小値（例えばＭＰＥＧ−４ならば最大値が３１で最小値が１）の範囲内で設定する。
【００２２】
（動作）図１に基づいて、本実施形態の動画像符号化装置の動作の概略を説明する。尚、説明を簡単にするため、双方向予測符号化を用いない場合を例に説明する。
【００２３】
まず、動画像がフレーム毎に入力される。ＭＰＥＧ−４の場合、各フレームはＧＯＰと呼ばれるフレームの束に所属することになる。そこで、Ｊ番目のＧＯＰにおけるＫ番目のフレームを「ＧＯＰ（Ｊ）：：Ｆｒ（Ｋ）」と表す。
【００２４】
フレームＧＯＰ（Ｊ）：：Ｆｒ（Ｋ）が入力されると、符号化部１０１で符号化され、符号ＧＯＰ（Ｊ）：：Ｆｒ（Ｋ）が出力される。
【００２５】
ＶＢＶ１０２及び仮想ＶＢＶ１０３は、符号ＧＯＰ（Ｊ）：：Ｆｒ（Ｋ）の符号量をカウントし、各々の仮想入力バッファの符号量を変化させる。
【００２６】
スキップ制御部１０６は、ＶＢＶ１０２の仮想入力バッファを監視し、アンダーフローする可能性が高い場合は、フレームＧＯＰ（Ｊ）：：Ｆｒ（Ｋ）の次のフレームＧＯＰ（Ｊ）：：Ｆｒ（Ｋ＋１）の符号化をスキップするように符号化部１０１を制御する。
【００２７】
量子化スケール値域制御部１０４は、ＶＢＶ１０２の仮想入力バッファの符号量と、仮想ＶＢＶ１０３の仮想入力バッファの符号量及び変化率に基づいて、量子化スケールの値域を決定する。
【００２８】
レート制御部１０５は、量子化スケール値域制御部１０４で決定された量子化スケールの値域と、仮想ＶＢＶ１０３の仮想入力バッファの符号量及び変化率に基づいて、フレームＧＯＰ（Ｊ）：：Ｆｒ（Ｋ）が属するＧＯＰ（Ｊ）の次のＧＯＰであるＧＯＰ（Ｊ＋１）における符号化ビットレートを決定し、符号化部１０１を制御する。
【００２９】
符号化部１０１は、レート制御部１０５で決定された符号化ビットレートに従ってＧＯＰ（Ｊ＋１）の符号化を行う。
【００３０】
（符号化部１０１）符号化部１０１は、動画像をＭＰＥＧ−４方式でフレーム単位で符号化する。符号化部１０１の構成を図２を用いて説明する。
【００３１】
符号化部１０１は、入力された動画像を順次記憶するフレームメモリ２０１と、動き検出に用いる参照フレームを記憶するフレームメモリ２０２と、動きベクトルを求める動き検出器２０３と、動き補償を行う動き補償器２０４と、動き補償後のフレームと符号化対象フレームとの差分を求める減算器２１７とを備える。
【００３２】
さらに、離散コサイン変換（ＤＣＴ）を行う離散コサイン変換器２０７と、量子化を行う量子化器２０８と、逆量子化を行う逆量子化器２０６と、逆離散コサイン変換（ＩＤＣＴ）を行う逆離散コサイン変換器２０５と、動き補償後のフレームと逆離散コサイン変換によって得られるフレームとの加算を行う加算器２１６と、動きベクトル用可変長符号化器２０９と、ＤＣＴ係数用可変長符号化器２１０と、ビットストリーム多重化器２１１とを備える。
【００３３】
動き検出器２０３は、外部からフレームスキップ制御を受けた場合にはフレームスキップを行い、そのフレームについては符号化を行わないようにする。
【００３４】
量子化器２０８は、外部から与えられる量子化スケール（Ｑｐ）という量子化の粗さを表すパラメータを用いて量子化を行う。ＭＰＥＧ−４の場合は量子化スケールＱｐの最小値が１で最大値が３１である。
【００３５】
量子化スケールＱｐは、値が大きくなるほど量子化が粗くなり画質が低下するが、符号化処理で生成される符号量は減少する。一方、量子化スケールＱｐの値が小さくなるほど量子化が細かくなり画質が向上するが、符号化処理で生成される符号量は増加する。
【００３６】
（ＶＢＶ１０２）ＶＢＶ１０２は、符号化部１０１で生成された符号を、仮想的な復号化装置に最高のビットレート（ピークビットレート）で入力した場合に、仮想的な復号化装置が備える入力バッファ（仮想入力バッファ）が保持するであろうと予測される符号量を求める。
【００３７】
一般的な復号化装置では、あるビットレートで供給された符号は一旦入力バッファに蓄積される。一定時間（例えば１／３０秒）ごとに入力バッファに蓄積された符号を使用して復号化処理が行われる。
【００３８】
入力バッファが保持する符号量は次のように変化する。
（Ｗ）ビットレートの高さに応じて「一定時間」増加する。
（Ｘ）「一定時間」ごとに復号化処理で使用された量だけ減少する。
（Ｙ）以後、（Ｗ）（Ｘ）を繰り返す。
【００３９】
ＶＢＶ１０２は、実際に復号化処理を行うものではない（勿論、復号化処理を実際に行っても構わないが実用的ではないだろう）し、実際にバッファリングを行うものでもない（勿論、実際にバッファリングを行っても構わないが実用的ではないだろう）。ＶＢＶ１０２は、仮想的な復号化装置の入力バッファが保持するであろう符号量の時間推移を求めるものである。
【００４０】
本実施形態のＶＢＶ１０２の構成を図７（Ａ）を用いて説明する。ＶＢＶ１０２は、仮想入力バッファが保持するであろう符号量を記憶するカウンタ７０２と、カウンタ７０２の値を増減させる制御部７０１とを備える。
【００４１】
ＶＢＶ１０２の仮想入力バッファの符号量は次のように変化する。
（１）ピークビットレートに相当する速さで「一定時間」増加する
（２）「一定時間」ごとに復号化処理で使用されると想定される量だけ減少する。
（３）以後、（１）（２）を繰り返す。
【００４２】
上述（２）の「復号化処理で使用されると想定される量」は、符号化部１０１で各フレーム毎に生成された符号の量を用いる。
【００４３】
ＶＢＶ１０２の仮想入力バッファがオーバーフローしそうな場合は、符号量の増加を仮想入力バッファの最大容量を限度に頭打ちにさせて（図３（Ａ））回避する。これは、実際のバッファで言うと、符号の入力を停止させることに相当し、一般的なフロー制御で行える。尚、アンダーフローについては後述するスキップ制御部１０６等で回避する。
【００４４】
（スキップ制御部１０６）スキップ制御部１０６はＶＢＶ１０２の仮想入力バッファを監視し、アンダーフローするのを回避する。
【００４５】
ＶＢＶ１０２の仮想入力バッファはアンダーフローもオーバーフローも許容しない。オーバーフローについては前述したようにＶＢＶ１０２において一般的なフロー制御により回避する。
【００４６】
図３（Ａ）はアンダーフローしそうになった場合のスキップ制御部１０６の挙動を説明する図である。スキップ制御部１０６は、ＶＢＶ１０２の仮想入力バッファがアンダーフローする可能性が高い場合に、符号化部１０１（特に動き検出器２０３）を制御してフレームスキップを発生させる。フレームスキップにより符号化部１０１で生成される符号量を減少すると、復号化で使用される符号量も減るので、ＶＢＶ１０２で扱う仮想入力バッファが保持する符号量は増加しやすくなる。
【００４７】
尚、アンダーフローする可能性が高い場合とは、例えば、保持する符号量がある閾値以下になった場合や、あるフレームを復号化するのに必要な符号量を保持できていない場合が考えられる。
【００４８】
（仮想ＶＢＶ１０３）仮想ＶＢＶ１０３は、仮想的な復号化装置に、符号化部１０１で生成された符号を目標ビットレートで入力した場合に、仮想的な復号化装置が備える入力バッファ（仮想入力バッファ）が保持するであろうと予測される符号量及び符号量の変化率を求める。
【００４９】
目標ビットレートとは、符号化部１０１で動画像を符号化する際の平均ビットレートの目標値である。目標値は、例えば、本実施形態の動画像符号化装置の利用者が指定する。
【００５０】
仮想ＶＢＶ１０３はビットレートを除いてＶＢＶ１０２と同様にして時間推移を求める。仮想ＶＢＶ１０３もまた、実際に復号化処理を行うものではないし、実際にバッファリングを行うものでもない。仮想ＶＢＶ１０３は、仮想入力バッファが保持する符号量の時間推移を求めるものである。
【００５１】
本実施形態の仮想ＶＢＶ１０３の構成を図７（Ｂ）を用いて説明する。仮想ＶＢＶ１０３は、仮想入力バッファが保持するである符号量を記憶するカウンタ７１２と、ある決まったタイミングでの符号量を過去一定時間分記憶する履歴記憶部７１３と、カウンタ７１２の値を増減させるとともに符号量の変化率を求める制御部７１１と、求めた変化率を記憶する変化率記憶部７１４とを備えるものとして実現する。
【００５２】
仮想ＶＢＶ１０３の仮想入力バッファの符号量の変化は次のようになる。
（１）目標ビットレートに相当する速さで「一定時間」増加する
（２）「一定時間」ごとに復号化処理で使用されると想定される量だけ減少する。
（３）以後、（１）（２）を繰り返す。
【００５３】
上述（２）の「復号化処理で使用されると想定される量」は、符号化部１０１で各フレーム毎に生成された符号の量を用いる。
【００５４】
仮想ＶＢＶ１０３は、履歴記憶部７１３が記憶する過去一定時間内の符号量を用いて符号量の変化率を求める。本実施形態では、履歴記憶部７１３は、上述（２）の減少後のタイミングにおける符号量を過去１秒間分記憶しておく。
【００５５】
尚、ＶＢＶ１０２の仮想入力バッファと異なり、仮想ＶＢＶ１０３の仮想入力バッファはオーバーフローとアンダーフローとをある一定の範囲で許容する。図３（Ｂ）は仮想ＶＢＶ１０３がアンダーフローになった状態を説明する図である。また図４（Ｂ）は仮想ＶＢＶ１０３がオーバーフローになった状態を説明する図である。
【００５６】
（量子化スケール値域制御部１０４）量子化スケール値域制御部１０４は、レート制御部１０５で量子化スケールＱｐの値を変化させることのできる範囲（上限値、下限値）を決定する。
【００５７】
量子化スケール値域制御部１０４は、量子化スケールＱｐの上限値（上限Ｑｐ）及び下限値（下限Ｑｐ）を、仮想ＶＢＶ１０３の仮想入力バッファの符号量及び符号量の変化率（増加率、減少率）とＶＢＶ１０２の仮想入力バッファの符号量とに基づいて決定する。
【００５８】
量子化スケールの上限値及び下限値の制御を、図６を用いて説明する。
【００５９】
ＶＢＶ１０２はアンダーフローさせてはならない。従って、ＶＢＶ１０２の仮想入力バッファの符号量を調べ（Ｓ６０１）、符号量が閾値１（予め定めておいたアンダーフローの警戒水準）以下になった場合は上限Ｑｐの値を大きくする（Ｓ６０８）。
【００６０】
次に、仮想ＶＢＶ１０３の仮想入力バッファの符号量及び変化率から、次式を用いて評価値を求める（Ｓ６０２）。次式では、評価値をＳ、符号量をＣ、変化率をＶ、仮想ＶＢＶ１０３の仮想入力バッファの最大容量をＣｍａｘ（すなわち、符号量がこの値より大きくなるとオーバーフロー状態となる）、重み付けの係数α・βとする。
【００６１】
【数１】
2004328150.tif 000003
【００６２】
求めた評価値Ｓを閾値と比較し（Ｓ６０３、Ｓ６０４）、比較した結果に応じて上限Ｑｐ及び下限Ｑｐを修正する。
【００６３】
（１）評価値Ｓが閾値２より小さい場合は、仮想ＶＢＶ１０３の仮想入力バッファがアンダーフロー中か、若しくは、符号化が困難なシーンで仮想ＶＢＶ１０３の仮想入力バッファの符号量が急激に減少中であると考えられる。この場合は、（閾値２−評価値）の値が大きくなるほど上限Ｑｐが大きくなるように上限Ｑｐを修正する（Ｓ６０５）。ただし、上限Ｑｐは量子化スケールＱｐの最大値以下の範囲で修正される。
【００６４】
（２）評価値Ｓが閾値３（ただし、閾値３は閾値２以上とする）より大きい場合は、仮想ＶＢＶ１０３の仮想入力バッファがオーバーフロー中か、若しくは、符号化が楽なシーンで仮想ＶＢＶ１０３の仮想入力バッファの符号量が急激に増加中であると考えられる。この場合は、（評価値−閾値３）の値が大きくなるほど下限Ｑｐが小さくなるように、下限Ｑｐを修正する（Ｓ６０６）。ただし、下限Ｑｐは量子化スケールＱｐの最小値以上の範囲で修正される。
【００６５】
（３）上記（１）（２）いずれにも該当しない場合、すなわち評価値Ｓが閾値２以上で閾値３以下の場合は、上限Ｑｐ及び下限Ｑｐは修正しない（Ｓ６０７）。
【００６６】
上述した制御では、多少のオーバーフローやアンダーフローでは量子化スケールＱｐの値域を大幅に変化させない。また、仮想ＶＢＶ１０３の仮想バッファが保持する符号量の変化率も考慮している。
【００６７】
これにより、仮想ＶＢＶ１０３がアンダーフロー中に符号化が楽なシーンが発生した場合でも、必要以上に量子化スケールＱｐを高く保つことがなくなるので画質が安定する。また、仮想ＶＢＶ１０３がオーバーフロー中に符号化が厳しいシーンが発生した場合でも、必要以上に量子化スケールＱｐを低く保つことがなくなるので画質が安定する。
【００６８】
（レート制御部１０５）レート制御部１０５は、量子化スケールＱｐの値を変化させて符号化のビットレートを制御する。
【００６９】
レート制御部１０５は、仮想ＶＢＶ１０３の仮想入力バッファの符号量と符号量の変化率とを用いて、ＧＯＰ単位の目標符号量を求める。
【００７０】
ＧＯＰ単位の目標符号量は次のようにして定める。
（１）目標ビットレートで固定して符号化を行うと仮定して、ＧＯＰ１つ当たりの符号量（基準符号量）を計算する。最初のＧＯＰについてはここで求めた基準符号量が目標符号量となる。
（２）目標符号量から、実際に発生した符号量を減算して差分を求める。
（３）次のＧＯＰの目標符号量を、基準符号量に差分を加えた値に設定する。
（４）以下、（２）と（３）とを繰り返して、各ＧＯＰの目標符号量を定める。
【００７１】
求めたＧＯＰ単位の目標符号量に応じた適切な量子化スケールＱｐの値を、量子化スケール値域制御部１０４で決定された上限Ｑｐと下限Ｑｐの範囲内で決定する。
【００７２】
目標符号量が多い時は量子化スケールＱｐの値を小さくして符号化部１０１で生成される符号量を増加させ、逆に目標符号量が少ない時は量子化スケールＱｐの値を大きくして符号化部１０１で生成される符号量を減少させる。
【００７３】
（本実施形態の効果）以上、本実施形態の動画像符号化装置ならば、可変ビットレートで符号化を行っているので、符号化が楽なシーンを少ない符号で符号化し、その分符号化が厳しいシーンに多くの符号を割り当てることが可能となる。
【００７４】
また、目標ビットレートとピークビットレートとの２種類で復号化装置側の入力バッファのシミュレーションを行い、その結果に基づいて符号化のレート制御を行っている。これにより、符号量割り当ての自由度が高くできるので、画質を安定させることが可能となる。
【００７５】
目標ビットレートとピークビットレートの差が大きいほど画質を安定させやすくなる。例えば、ＤＶＤに代表される高速データ読み出しが可能な記憶媒体向けの符号化データを、本実施形態の動画像符号化装置で生成すれば、絶大な画質安定効果を得られる。
【００７６】
（変形例）尚、本実施形態ではＭＰＥＧ−４を例に説明したが、例えばＭＰＥＧ−１、ＭＰＥＧ−２、Ｈ．２６４等の動画像符号化方式に応用することも可能である。
【００７７】
ＭＰＥＧ−１、ＭＰＥＧ−２の場合、スキップ制御部１０６は符号化しているフレームのマクロブロックの符号化スキップを制御することになる。
【００７８】
また、本実施形態では仮想ＶＢＶ１０３のアンダーフロー及びオーバーフローに関する制限は特に設けなかったが、制限を設けても良い。
【００７９】
制限の一例として、アンダーフローに対して下限を設けることが考えられる。そして、仮想ＶＢＶの符号量が下限を下回った場合は、例えば上限Ｑｐを最大値に制御して、仮想ＶＢＶ１０３の仮想入力バッファの符号量を回復させると良い。
【００８０】
また、制限の別の例として、オーバーフローに対して上限を設けても良い。仮想ＶＢＶの符号量が上限を超えた場合は、例えば下限Ｑｐを引き下げて符号化部１０１で生成される符号の量を増加させて画質を良くすると良い。
【００８１】
【発明の効果】
本発明によれば、安定した画質で動画像を符号化することが可能となる。
【図面の簡単な説明】
【図１】第１の実施形態の動画像符号化装置の概略構成を説明する図。
【図２】第１の実施形態の動画像符号化装置の構成を説明する図。
【図３】（Ａ）アンダーフローを起こしそうな場面でのＶＢＶの挙動。（Ｂ）アンダーフローを起こした場面での仮想ＶＢＶの挙動。
【図４】（Ａ）オーバーフローを起こしそうな場面でのＶＢＶの挙動。（Ｂ）オーバーフローを起こした場面での仮想ＶＢＶの挙動。
【図５】（Ａ）仮想ＶＢＶがアンダーフロー中に急速に符号量が増えた場合の図。（Ｂ）仮想ＶＢＶがオーバーフロー中に急速に符号量が減った場合の図。
【図６】量子化スケールの制御を説明するフローチャート。
【図７】（Ａ）ＶＢＶ１０２の構成を説明する図。（Ｂ）仮想ＶＢＶ１０３の構成を説明する図。
【符号の説明】
１０１  符号化部
１０２  ＶＢＶ
１０３  仮想ＶＢＶ
１０４  量子化スケール値域制御部
１０５  レート制御部
１０６  スキップ制御部
２０１、２０２  フレームメモリ
２０３  動き検出器
２０４  動き補償器
２０５  逆離散コサイン変換器
２０６  逆量子化器
２０７  離散コサイン変換器
２０８  量子化器
２０９  動きベクトル用可変長符号化器
２１０  ＤＣＴ係数用可変長符号化器
２１１  ビットストリーム多重化器
【図１】
2004328150.tif 000004
【図２】
2004328150.tif 000005
【図３】
2004328150.tif 000006
【図４】
2004328150.tif 000007
【図５】
2004328150.tif 000008
【図６】
2004328150.tif 000009
【図７】
2004328150.tif 000010