(57)【要約】【課題】復号装置においてバッファ破綻を生じさせることがなく、バッファ破綻回避操作に起因する画質劣化を極力低減する動画像符号化装置を提供する。【解決手段】動画像符号化装置は、所定の目標ビットレートを平均ビットレートとする符号化データ出力のための各フレームの符号量である中間符号量を算出する中間符号量算出手段と、中間符号量と目標ビットレートより、バッファ占有量の遷移を算出するバッファ遷移算出手段と、バッファ破綻発生を判定するためのバッファ占有量の閾値を有し、閾値に基づく判定によりバッファ破綻が発生する場合は、バッファ破綻発生直前のバッファ占有量の極点から、バッファ破綻発生直後のバッファ占有量の極点までの区間である調整区間内において、中間符号量及び／又は目標ビットレートを調整してバッファ占有量を閾値以内に変更する調整手段とを備えている。【選択図】図２
2007208377.tif 000002
【特許請求の範囲】
【請求項１】
動画像符号化装置であって、
所定の目標ビットレートを平均ビットレートとする符号化データ出力のための各フレームの符号量である中間符号量を算出する中間符号量算出手段と、
中間符号量と目標ビットレートより、バッファ占有量の遷移を算出するバッファ遷移算出手段と、
バッファ破綻発生を判定するためのバッファ占有量の閾値を有し、閾値に基づく判定によりバッファ破綻が発生する場合は、バッファ破綻発生直前のバッファ占有量の極点から、バッファ破綻発生直後のバッファ占有量の極点までの区間である調整区間内において、中間符号量及び／又は目標ビットレートを調整してバッファ占有量を閾値以内に変更する調整手段と、
を有することを特徴とする動画像符号化装置。
【請求項２】
調整手段は、フレーム順にバッファ破綻発生を判定し、バッファ破綻発生による調整を行った場合、該調整を行った調整区間以後については、該調整による変更後のバッファ占有量に基づきバッファ破綻発生を判定すること、
を特徴とする請求項１に記載の動画像符号化装置。
【請求項３】
調整手段は、１つ以上の調整区間で調整を行った場合、バッファ遷移算出手段が算出したバッファ占有量からの調整に伴う変更分を、最後の極点から最終フレームの区間で補償すること、
を特徴とする請求項１又は２に記載の動画像符号化装置。
【請求項４】
調整手段が出力する、調整後の中間符号量である割当符号量に基づき、量子化パラメータを決定する量子化パラメータ決定手段と、
量子化パラメータ決定手段が決定する量子化パラメータに基づき動画像の符号化を行って符号化データを生成する動画像符号化手段と、
を有し、
調整手段は、調整区間内において、中間符号量のみを調整すること、
を特徴とする請求項１から３のいずれか１項に記載の動画像符号化装置。
【請求項５】
調整手段が出力する割当符号量に基づき、量子化パラメータを決定する量子化パラメータ決定手段と、
量子化パラメータ決定手段が出力する量子化パラメータに基づき動画像の符号化を行って符号化データを生成し、符号化データを、調整手段が出力する割当ビットレート情報と共に出力する動画像符号化手段と、
を有し、
割当ビットレート情報は、調整後の目標ビットレートについての情報であり、
割当符号量は、中間符号量に等しいこと、
を特徴とする請求項１から３のいずれか１項に記載の動画像符号化装置。
【請求項６】
量子化パラメータ決定手段は、１回目の符号化では所定の量子化パラメータを出力し、２回目の符号化では割当符号量に基づく量子化パラメータを出力し、
中間符号量算出手段は、１回目の符号化で動画像符号化手段が生成する符号化データの各フレームの符号量である観測符号量に基づき、中間符号量を算出すること、
を特徴とする請求項４又は５に記載の動画像符号化装置。
【請求項７】
目標ビットレートは、１回目の符号化での観測符号量から算出される平均ビットレートから算出したものであること、
を特徴とする請求項６に記載の動画像符号化装置。
【請求項８】
動画像の符号化方法であって、
所定の目標ビットレートを平均ビットレートとする符号化データ出力のための各フレームの符号量である中間符号量を算出するステップと、
中間符号量と目標ビットレートより、バッファ占有量の遷移を算出するステップと、
算出したバッファ占有量と閾値に基づき、バッファ破綻発生を判定するステップと、
閾値に基づく判定でバッファ破綻が発生する場合は、バッファ破綻発生直前のバッファ占有量の極点から、バッファ破綻発生直後のバッファ占有量の極点までの区間である調整区間内において、中間符号量及び／又は目標ビットレートを調整してバッファ占有量を閾値以内に変更するステップと、
を有することを特徴とする動画像の符号化方法。
【請求項９】
コンピュータを、
請求項１から７のいずれか１項に記載の動画像符号化装置として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画像の符号化技術に関し、より詳しくは、目標とする平均ビットレートの符号化データを出力するために必要であり、かつ、復号装置においてバッファを破綻、つまり、バッファのオーバフロー及びアンダフローを発生させることのない各フレームの符号量を算出し、算出した符号量となるように符号化を行う動画像の符号化技術に関する。
【背景技術】
【０００２】
特許文献１には、動画像の各フレームの符号化に必要な符号量を、事前解析により決定し、決定した符号量で符号化した場合における符号化用バッファのバッファ占有量の遷移を計算し、符号化用バッファの破綻が生じる場合には、符号化用バッファの破綻回避のために、フレームの符号量を調整する符号化方法について記載されている。ここで、バッファの破綻とは、バッファにおいてオーバフロー又はアンダフローが発生することをいう。
【０００３】
図６は、特許文献１に記載の符号化方法を説明する図であり、符号化用バッファのバッファ占有量と時間との遷移関係を示したものである。符号化用バッファには、動画像のフレームの符号化が行われる度に符号化データが入力されるため、フレーム間隔毎にバッファ占有量が垂直に立ち上がり、また、符号化用バッファからは一定のビットレートにて符号化データが読み出されるため、時間の経過と共に、ビットレートに応じた傾きでバッファ占有量が減少する。
【０００４】
各フレームの符号量と、フレーム間隔毎に符号化用バッファから読み出されるデータ量とが等しい場合、バッファ占有量はほぼ一定の値となるが、動き補償予測等を用いる各種動画像の圧縮符号化方式では、符号量はフレームごとに異なり、したがって、バッファ占有量は時間と共に増減する。
【０００５】
図６においては、符号８０で示すフレーム位置においてオーバフローが発生している。特許文献１によると、符号８０で示すフレーム位置でのオーバフローを回避するため、符号８０で示すフレーム以前のフレームの符号量を減少させ、減少させた符号量だけ、区間９２で示す、符号８０で示すフレーム以後のフレームの符号量を増加させている。尚、アンダフローの場合も、符号量の減少／増加がオーバフローのときと反転する以外は同じである。
【０００６】
【特許文献１】特開２００２−２３２８８２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
特許文献１では、バッファ破綻が生ずるフレーム以前のフレームの符号量を、オーバフローの場合は減少させ、アンダフローの場合は増加させることで、バッファ破綻を回避し、かつ、バッファ破綻が生ずるフレーム以後のフレームで、バッファ破綻の回避のために増加又は減少させた符号量の補償を行っているが、調整するフレームの範囲については規定されていない。
【０００８】
例えば、図６に示す区間９０のように、オーバフロー発生時点直近の、わずかなフレームで調整を行うと、１フレーム当たりの符号量を大きく減少させねばならず、符号量を減少させたフレームの画質の劣化が顕著になってしまう。一方、図６に示す区間９１のように、オーバフロー発生時点のかなり前のフレームからフレームの符号量を減少させると、例えば、符号８１で示すフレーム位置のようなバッファ占有量が少ない位置において、符号量の調整による他のアンダフローを発生させてしまう可能性が増大する。また、バッファ占有量の遷移の傾向が同じ区間は、フレームに割り当てられる符号量がほぼ同じであり、画像性質も同様な傾向を示す区間であると考えられる。逆に言うと、図６の符号８１で示すフレーム位置のような、バッファ占有量の遷移の傾向が変化する点は、画像性質の変化点であると考えられる。このため、区間９１の様に、バッファ占有量の遷移の傾向が変化する符号８１で示すフレーム位置を跨ぐ区間においてフレームの符号量を調整すると、符号８１で示すフレーム位置を境に主観画質に悪影響を与える可能性がある。
【０００９】
したがって、本発明は、復号装置においてバッファを破綻させることがなく、バッファ破綻回避のためのバッファ占有量の調整に起因する画質劣化を極力低減する動画像符号化装置、方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明における動画像符号化装置によれば、
動画像符号化装置であって、所定の目標ビットレートを平均ビットレートとする符号化データ出力のための各フレームの符号量である中間符号量を算出する中間符号量算出手段と、中間符号量と目標ビットレートより、バッファ占有量の遷移を算出するバッファ遷移算出手段と、バッファ破綻発生を判定するためのバッファ占有量の閾値を有し、閾値に基づく判定によりバッファ破綻が発生する場合は、バッファ破綻発生直前のバッファ占有量の極点から、バッファ破綻発生直後のバッファ占有量の極点までの区間である調整区間内において、中間符号量及び／又は目標ビットレートを調整してバッファ占有量を閾値以内に変更する調整手段とを有することを特徴とする。
【００１１】
本発明の動画像符号化装置における他の実施形態によれば、
調整手段は、フレーム順にバッファ破綻発生を判定し、バッファ破綻発生による調整を行った場合、該調整を行った調整区間以後については、該調整による変更後のバッファ占有量に基づきバッファ破綻発生を判定することも好ましい。
【００１２】
また、本発明の動画像符号化装置における他の実施形態によれば、
調整手段は、１つ以上の調整区間で調整を行った場合、バッファ遷移算出手段が算出したバッファ占有量からの調整に伴う変更分を、最後の極点から最終フレームの区間で補償することも好ましい。
【００１３】
更に、本発明の通信装置における他の実施形態によれば、
調整手段が出力する、調整後の中間符号量である割当符号量に基づき、量子化パラメータを決定する量子化パラメータ決定手段と、量子化パラメータ決定手段が決定する量子化パラメータに基づき動画像の符号化を行って符号化データを生成する動画像符号化手段と、
を有し、調整手段は、調整区間内において、中間符号量のみを調整することも好ましい。
【００１４】
更に、本発明の通信装置における他の実施形態によれば、
調整手段が出力する割当符号量に基づき、量子化パラメータを決定する量子化パラメータ決定手段と、量子化パラメータ決定手段が出力する量子化パラメータに基づき動画像の符号化を行って符号化データを生成し、符号化データを、調整手段が出力する割当ビットレート情報と共に出力する動画像符号化手段とを有し、割当ビットレート情報は、調整後の目標ビットレートについての情報であり、割当符号量は、中間符号量に等しいことも好ましい。
【００１５】
更に、本発明の通信装置における他の実施形態によれば、
量子化パラメータ決定手段は、１回目の符号化では所定の量子化パラメータを出力し、２回目の符号化では割当符号量に基づく量子化パラメータを出力し、中間符号量算出手段は、１回目の符号化で動画像符号化手段が生成する符号化データの各フレームの符号量である観測符号量に基づき、中間符号量を算出することも好ましい。
【００１６】
更に、本発明の通信装置における他の実施形態によれば、
目標ビットレートは、１回目の符号化での観測符号量から算出される平均ビットレートから算出したものであることも好ましい。
【００１７】
本発明における動画像符号化方法によれば、
動画像の符号化方法であって、所定の目標ビットレートを平均ビットレートとする符号化データ出力のための各フレームの符号量である中間符号量を算出するステップと、中間符号量と目標ビットレートより、バッファ占有量の遷移を算出するステップと、算出したバッファ占有量と閾値に基づき、バッファ破綻発生を判定するステップと、閾値に基づく判定でバッファ破綻が発生する場合は、バッファ破綻発生直前のバッファ占有量の極点から、バッファ破綻発生直後のバッファ占有量の極点までの区間である調整区間内において、中間符号量及び／又は目標ビットレートを調整してバッファ占有量を閾値以内に変更するステップとを有することを特徴とする。
【００１８】
本発明におけるプログラムによれば、
コンピュータを、前記動画像符号化装置として機能させることを特徴とする。
【発明の効果】
【００１９】
中間符号量に基づく符号化によるバッファ破綻発生の可能性を閾値に基づき判定し、閾値に基づく判定でバッファ破綻が発生する場合、バッファ破綻発生の事前回避のためのバッファ占有量の調整を、調整に起因する他のアンダフロー又はオーバフローを発生させない最大区間である、バッファ破綻発生直前のバッファ占有量の極点から、バッファ破綻発生直後のバッファ占有量の極点までとすることで、調整により他のアンダフロー又はオーバフローを発生させることなく、かつ、バッファ破綻発生の事前回避に伴う画質の劣化を極力抑えることができる。
【発明を実施するための最良の形態】
【００２０】
本発明を実施するための最良の実施形態について、以下では図面を用いて詳細に説明する。
【００２１】
本発明による符号化装置は、２パス符号化、即ち、符号化対象動画像の発生符号量を把握するため所定の量子化パラメータを用いて１回目の符号化を行い、１回目の符号化結果から、目標ビットレートとなる符号化データを得るための各フレームの符号量を決定し、決定した符号量となるように量子化パラメータを制御しながら２回目の符号化を行い動画像の符号化データの出力を行う。ここで、目標ビットレートとは、実際に出力すべき動画像の符号化データの全符号量を記録時間で除した値、即ち、実際に出力すべき動画像の平均ビットレートであり、明示的に外部より指定する場合と、１回目の所定の量子化パラメータによる符号化で得られた平均ビットレートを使用する場合が考えられる。以下、機能ブロック図に基づき本発明による動画像符号化装置を説明する。
【００２２】
図１は、本発明による動画像符号化装置の機能ブロック図である。図１によると動画像符号装置は、割当符号量算出部１と、量子化パラメータ決定部２と、動画像符号化部３とを備えている。
【００２３】
動画像符号化部３は、直交変換部３１と、量子化部３２と、逆量子化部３３と、直交逆変換部３４と、フレームメモリ３５と、動き補償部３６と、動きベクトル検出部３７と、符号化部３８と、多重化部３９と、符号化バッファ４０とを備え、量子化パラメータ決定部２が出力する量子化パラメータに基づき入力される動画像の符号化を行って符号化データを生成し、後述するＣＢＲ（Ｃｏｎｓｔａｎｔ  Ｂｉｔ  Ｒａｔｅ）制御の場合には、動き補償部３６が出力する動きベクトルと、符号化に関するモード情報と、符号化データを含む符号化ストリームを出力し、更に、後述するＶＢＲ（Ｖａｒｉａｂｌｅ  Ｂｉｔ  Ｒａｔｅ）制御の場合には、ＣＢＲ制御の場合に加え、割当符号量算出部１が出力する割当ビットレート情報を含む符号化ストリームを出力する。ここで、モード情報とは、動画像の画像サイズ、初期化情報、マクロブロック毎のＩｎｔｒａ／Ｉｎｔｅｒ符号化モード及び量子化パラメータ等からなる情報である。
【００２４】
ここで、割当ビットレート情報とは、ビットレートの瞬時値についての情報であり、割当ビットレート情報が示すビットレートの平均は目標ビットレートに一致し、例えば、符号化装置が通信及び／又は放送機器であれば符号化データの伝送路への出力速度制御に使用され、符号化装置が記録機器であれば、復号装置が記録媒体から符号化データを読出して復号を行う際の速度制御に使用する。割当ビットレート情報を変更する時間単位は任意であるが、例えば、フレーム間隔の整数倍を使用する。
【００２５】
直交変換部３１は、入力画像のフレームと、動き補償部３６が出力する動き補償後のフレームとの差分である入力信号に対し、例えば離散コサイン変換等の直交変換を行い変換後の信号を出力する。量子化部３２は、量子化パラメータ決定部２が決定する量子化パラメータに従い直交変換部３１からの入力信号の量子化を行い、符号化部３８は、量子化後の信号の符号化を行って符号化データを多重化部３９に出力する。
【００２６】
また、量子化部３２の出力は、逆量子化部３３及び直交逆変換部３４で、それぞれ、量子化部３２と直交変換部３１での処理と逆の処理が行われ、直交変換部３１の入力信号に逆変換される。直交逆変換部３４から出力される、直交変換部３１の入力信号に逆変換した信号は、動き補償部３６が出力する動き補償後のフレームと加算されるが、直交変換部３１の入力信号は、入力画像のフレームと動き補償後のフレームとの差分であるため、加算後の信号は、入力画像のフレームをローカルデコードしたものであり、この入力画像のフレームをローカルデコードした信号は、一旦フレームメモリ３５に入力される。動きベクトル検出部３７は、入力画像のフレームと、フレームメモリ３５に蓄積されている過去の入力画像をローカルデコードした信号から動きベクトルを求め、動き補償部３６は、動きベクトルと、フレームメモリ３５に蓄積されている過去の入力画像をローカルデコードした信号から、動き補償後のフレームを求めて出力する。
【００２７】
多重化部３９は、符号化部３８からの符号化データと、動きベクトル検出部３７からの動きベクトルと、割当符号量算出部１からの割当ビットレート情報と、モード情報を多重化して符号化ストリームとして符号化バッファ４０に蓄積し、符号化バッファ４０に蓄積された符号化ストリームは、例えば、符号化装置が通信及び／又は放送機器であれば伝送路に、符号化装置が記録機器であればハードディスク等の記録媒体に出力される。
【００２８】
量子化パラメータ決定部２は、１回目の符号化においては、予め定められた量子化パラメータを量子化部３２に出力し、割当符号量算出部１は、この予め定められた量子化パラメータで得られる符号化データの各フレームの符号量を観測符号量として監視する。
【００２９】
ＣＢＲ制御の場合、割当符号量算出部１は、１回目の符号化で得られる観測符号量から、目標ビットレートを達成するための、各フレームに割り当てる割当符号量を決定して、割当符号量を量子化パラメータ決定部２に出力する。また、ＶＢＲ制御の場合、割当符号量算出部１は、更に、割当ビットレート情報を決定して、割当ビットレート情報を多重化部３９に出力する。
【００３０】
量子化パラメータ決定部２は、２回目の符号化においては、各フレームの符号量が、割当符号量算出部１が決定した割当符号量となるように、１回目の符号化で用いた量子化パラメータと、そのときの観測符号量に基づき量子化パラメータを決定し、決定した量子化パラメータを量子化部３２に出力する。更に、決定した量子化パラメータで得られる発生符号量を符号化部３８から取得し、発生符号量と割当符号量の差に基づき、量子化部３２に出力する量子化パラメータを調整する。
【００３１】
図２は割当符号量算出部１の機能ブロック図である。図２によると、割当符号量算出部１は、中間符号量算出部１１と、バッファ遷移算出部１２と、調整部１３とを有する。割当符号量算出部１は、ＣＢＲ制御と、ＶＢＲ制御の両制御が可能であるが、まず、ＣＢＲ制御について説明を行い、その後、ＶＢＲ制御についてＣＢＲ制御との相違点を中心に説明する。
【００３２】
中間符号量算出部１１は、１回目の符号化で得られた各フレームの観測符号量と、予め設定された目標ビットレートに基づき、各フレームに割り当てる仮の符号量である中間符号量を算出する。具体的には、第ｉ番目のフレームの観測符号量がＭ［ｉ］、観測符号量の動画像を構成する全フレームについての和をＭＡ、動画像の記録時間をＲＴ、目標ビットレートをＴＢＲとすると、第ｉ番目のフレームの中間符号量Ｉ［ｉ］は、
Ｉ［ｉ］＝Ｍ［ｉ］×ＴＢＲ／（ＭＡ／ＲＴ）
として決定する。ここで、ＭＡ／ＲＴは、１回目で使用する固定的な量子化パラメータで得られる平均ビットレートを表し、この平均ビットレートに対する目標ビットレートの比で、観測符号量を調整したものが中間符号量となるようにする。各フレームの符号化で得られる符号量を中間符号量と等しくなるように量子化パラメータを調整すると、その平均的なビットレートは目標ビットレートと等しくなるが、中間符号量での符号化については、復号装置でのバッファの制約、いわゆる、ＶＢＶ（Ｖｉｄｅｏ  Ｂｕｆｆｅｒｉｎｇ  Ｖｅｒｉｆｉｅｒ）の規定を満足するものであるか否かが不明であるため、バッファ遷移算出部１２にて、復号装置でのバッファ占有量の遷移を算出する。
【００３３】
バッファ遷移算出部１２は、まず、中間符号量算出部１１が求めた中間符号量と目標ビットレートに基づき、フレームの進行に伴う、復号装置でのバッファ占有量の遷移を求める。バッファ占有量は、読出直前占有量と、読出直後占有量の両方を求める。読出直前占有量とは、復号装置がフレーム信号の復号のため、フレームの符号化データをバッファから読み出す直前のバッファ占有量であり、読出直後占有量とは、復号装置がフレーム信号の復号のため、フレームの符号化データをバッファから読み出した直後のバッファ占有量である。復号装置において、第ｉ番目のフレームを読み出す直前の読出直前占有量をＢＢＬ［ｉ］、第ｉ番目のフレームを読み出した直後の読出直後占有量をＡＢＬ［ｉ］、動画像のフレーム間隔をＦＰとすると、
ＢＢＬ［ｉ］＝ＴＢＲ×ＦＰ＋ＡＢＬ［ｉ―１］
ＡＢＬ［ｉ］＝ＢＢＬ［ｉ］−Ｉ［ｉ］
となる。
ここで、ＴＢＲは目標ビットレートであり、Ｉ［ｉ］は、第ｉ番目のフレームの中間符号量である。
【００３４】
図３は、本発明の説明に用いるバッファ占有量の遷移である。復号装置のバッファには、目標ビットレートにて符号化データが入力されるため、時間の進行に伴い、目標ビットレートに応じた傾斜でバッファ占有量が増加する。一方、復号装置はフレーム間隔毎にフレームの符号化データをバッファから読み出すため、フレーム間隔毎に、フレームの符号量だけバッファ占有量は減少する。フレームの符号量は一定でないため、バッファ占有量は時間と共に変動する。
【００３５】
図３のバッファ占有量の遷移を示すグラフにおいて、垂直にバッファ占有量が減少しているところが、復号装置のバッファからフレームの符号化データが読み出された時点であり、この上側のバッファ占有量が読出前占有量であり、下側のバッファ占有量が読出後占有量である。尚、読出前占有量の初期値、つまりＢＢＬ［１］は、任意の値を使用可能であるが、例えば、ＭＰＥＧ（Ｍｏｔｉｏｎ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔ  Ｇｒｏｕｐ）方式では、標準的な値として、バッファ容量の２／３となる値を使用する。
【００３６】
尚、図３のグラフは復号装置でのバッファ占有量であり、図６に示す特許文献１に記載のグラフは符号化装置でのバッファ占有量であるため、グラフの形状が反転している。本発明においては、ＶＢＶの定義に従い、復号装置でのバッファ占有量に基づき説明を行うが、このバッファ占有量は、符号化装置での符号化に伴うフレームの符号量と、符号化装置の符号化バッファ４０からの出力レートである目標ビットレート、言い換えると復号装置におけるバッファへの入力レートから計算されるものであり、符号化装置でのバッファ占有量と置き換えることも可能である。
【００３７】
以後、ある読出前占有量が、１つ前の読出占有量より大きく、かつ、１つ後の読出前占有量以上である場合、この読出前占有量の位置を極大点と呼び、ある読出後占有量が、１つ前の読出前占有量より小さく、かつ、１つ後の読出後占有量以下である場合、この読出後占有量の位置を極小点と呼ぶものとする。図３において、符号１００、１０１、１０２及び１０３は、極大点を示し、符号２００、２０１及び２０２は、極小点を示している。また、極大点のバッファ占有量を極大値、極小点のバッファ占有量を極小値と、更に、極大点及び極小点をまとめて極点と、極大値及び極小値をまとめて極値と呼ぶものとする。
【００３８】
調整部１３は、占有量の下限を示す下限閾値と、占有量の上限を示す上限閾値とを有し、第１番目のフレームの符号化データ読出し位置から順に、読出後占有量が下限閾値以上であり、かつ、読出前占有量が上限閾値以下に収まっているか否かを検査する。画像の最終フレームまで下限閾値以上、上限閾値以下に収まっている場合、調整部１３は、復号装置におけるバッファの破綻の発生はないと判断し、中間符号量を割当符号量としてそのまま出力する。また、ＣＢＲ制御における割当ビットレート情報として、フレーム読み出し位置に係らず、常に目標ビットレートに等しい値を出力する。
【００３９】
一方、調整部１３は、読出後占有量が下限閾値を下回る場合は、復号装置においてバッファのアンダフローが、読出前占有量が上限閾値を上回る場合は、復号装置においてバッファのオーバフローが発生すると判断し、調整区間に含まれるフレームの中間符号量を調整してバッファ占有量を閾値以内に変更する。ここで、調整区間とは、閾値に基づく判定によるバッファ破綻発生直前のバッファ占有量の極点から、バッファ破綻発生直後のバッファ占有量の極点までの区間をいう。具体的には、アンダフロー回避のための調整区間は、下限閾値を下回る直前の極大点から、下限閾値を下回った後の最初の極小点までの区間であり、オーバフロー回避のための調整区間は、上限閾値を上回る直前の極小点から、上限閾値を上回った後の最初の極大点までの区間である。
【００４０】
図３（ａ）に示すグラフでは、アンダフロー発生と判定され、このアンダフロー回避のための調整区間は、極大点１００から極小点２００までであり、図３（ｂ）に示すグラフでは、オーバフロー発生と判定され、このオーバフロー回避のための調整区間は、極小点２０１から極大点１０２までである。尚、上限閾値の典型的な例は復号装置のバッファ容量であり、下限閾値の典型的な例は“０”であるが、それ以外の値も使用可能である。
【００４１】
尚、以後の説明において、下限閾値及び上限閾値をまとめて閾値と呼び、バッファ占有量が下限閾値を下回っていること、及び、バッファ占有量が上限閾値を上回っていることをまとめて閾値超過と呼ぶ。
【００４２】
バッファ破綻回避のために調整すべき符号量である調整対象符号量３００は、閾値超過後の最初の極値と、アンダフロー又はオーバフロー判定のための閾値との差である。具体的には、アンダフローの場合には、調整区間の極小値と下限閾値との差であり、オーバフローの場合には、調整区間の極大値と上限閾値との差である。調整部１３は、調整対象符号量３００を、調整区間に含まれるフレームの中間符号量を調整することで吸収し、最終的に各フレームに割り当てる符号量である割当符号量を出力する。また、ＣＢＲ制御のため、割当ビットレート情報は、フレーム位置に係わらず目標ビットレートと等しい値を出力する。
【００４３】
具体的には、アンダフローが発生している図３（ａ）では、調整対象符号量３００を調整区間に含まれる６フレームに分配し、各フレームの調整後の符号量を、中間符号量から、分配した符号量を減じた値とする。分配の方法としては、調整対象符号量３００を、単に調整区間に含まれるフレーム数で割る方法がある。
【００４４】
図４（ａ）は、ＣＢＲ制御における調整後のバッファ占有量を示す図であり、実線が調整後の、点線が調整前の占有量を示している。図４（ａ）に示す様に、調整区間内においては、調整後のグラフの垂直に立ち下がる部分が調整前から同じ長さだけ短くなっており、この長さは、調整対象符号量３００を調整区間に含まれるフレーム数で割った値に相当する。また、ＣＢＲ制御では、復号装置のバッファへの入力ビットレートは一定であるため、調整後及び調整前では、傾斜部分の傾きは同じである。尚、分配の方法としては、調整対象符号量３００を、調整区間に含まれるフレームの中間符号量の比に応じて配分する等、他の方法であってもよい。
【００４５】
同様に、オーバフローが発生している図３（ｂ）においては、調整対象符号量３００を調整区間に含まれる６フレームに分配し、各フレームの調整後の符号量を、中間符号量に分配した符号量を加えた値とする。分配の方法としては、アンダフローで説明したのと同様である。
【００４６】
図４（ｂ）は、ＣＢＲ制御における調整後のバッファ占有量を示す図であり、実線が調整後の、点線が調整前の占有量を示している。図４（ｂ）に示す様に、調整区間内において、調整後のグラフの垂直に立ち下がる部分は調整前から同じ長さだけ長くなっており、この長さは、調整対象符号量３００を調整区間に含まれるフレーム数で割った値に相当する。また、ＣＢＲ制御では、復号装置のバッファへの入力ビットレートは一定であるため、調整後及び調整前では、傾斜部分の傾きは同じである。
【００４７】
アンダフロー回避のため、調整対象符号量３００だけ符号量を減少させ、また、オーバフロー回避のため、調整対象符号量３００だけ符号量を増加させることにより、調整区間以後のバッファ占有量の遷移は、バッファ遷移算出部１２で算出した値から調整対象符号量３００だけ変更される。調整部１３は、フレーム順に、バッファ破綻発生を判定していき、バッファ破綻が発生した時点で、調整区間での符号量の調整を行い、調整を行った場合、調整区間以後については、調整した符号量を加味した、つまり変更後のバッファ占有量の遷移でバッファ破綻の発生を判定し、バッファ破綻が発生する場合には、同様の処理で符号量の調整を行う。
【００４８】
つまり、符号量の調整を行う度に、調整区間以後のバッファ占有量の遷移は、調整前のバッファ占有量の遷移から調整対象符号量３００だけ平行移動したものとなる。したがって、調整部１３が、最後の極点を処理した段階での調整後のバッファ占有量は、バッファ遷移算出部１２が算出した最後の極点でのバッファ占有量から、各調整区間での調整対象符号量３００の和だけ平行移動したものとなる。ここで、調整対象符号量３００の和は、アンダフロー回避のため、符号量を減少させた場合には調整対象符号量３００を負の値とし、オーバフロー回避のため、調整対象符号量３００を増加させた場合には調整対象符号量３００を正の値として計算したものである。調整部１３は、この変動分を最後の極点から最後のフレームまでの区間にて補償する。
【００４９】
アンダフロー及び／又はオーバフロー事前回避のための極点区間における符号量調整の結果生じる動画像全体の符号量増減を、上述した最後の区間で調整することは、複数の点でアンダフロー及び／又はオーバフローが発生していたとしても、アンダフロー及び／又はオーバフロー事前回避のための符号量の増減を合算した上で最後にまとめて調整するため、アンダフロー及び／又はオーバフローが発生するたびに調整を行う方法に比べ、処理を簡略化できる利点がある。しかしながら、アンダフロー回避のための調整を行う場合、調整区間で符号量の調整を行うと共に、調整区間以降にある任意の極小点から１つ後の極大点の１区間又は複数区間で、減少させた符号量の調整を行い、オーバフロー回避のための調整を行う場合、調整区間で符号量の調整を行うと共に、調整区間以降にある任意の極大点から１つ後の極小点の１区間又は複数区間で、増加させた符号量の調整を行う構成とすることも可能である。
【００５０】
続いて、ＶＢＲ制御時の動作を、ＣＢＲ制御時の動作との相違点を中心に説明する。中間符号量算出部１１及びバッファ遷移算出部１２の動作は、ＣＢＲ制御時と同一であり、また、調整部１３での動作も、バッファ占有量が常に下限閾値以上、上限閾値以下である場合、つまりバッファが破綻しない場合にはＣＢＲ制御時と同一である。
【００５１】
一方、バッファが破綻する場合、ＣＢＲ制御においては、調整区間内のフレームの中間符号量を調整するが、ＶＢＲ制御においては、調整区間内の目標ビットレートからの調整を行う。調整部１３は、調整後の目標ビットレートを割当ビットレート情報として出力し、中間符号量を、そのまま割当符号量として出力する。
【００５２】
具体的には、アンダフローが発生している図３（ａ）において、調整部１３は、調整区間内で、調整対象符号量３００だけ復号装置のバッファに入力されるデータ量を増加させるように目標ビットレートを増加させる。増加させるビットレートは、例えば、調整対象符号量３００を対象区間の時間で除した値を、目標ビットレートに加える方法があるが、他の方法であってもよい。
【００５３】
図５（ａ）は、ＶＢＲ制御における調整後のバッファ占有量を示す図であり、実線が調整後の、点線が調整前の占有量を示している。図５（ａ）に示す様に、調整区間内において、調整後のグラフの増加部分の傾きは、調整前から所定の値だけ増加しており、この傾きの増加分は、調整対象符号量３００を調整区間の時間で割った値に相当する。また、ＶＢＲ制御においては中間符号量と割当符号量は常に一致するため、調整後及び調整前では、垂直に立ち下がる部分の長さは同じである。
【００５４】
同様に、オーバフローが発生している図３（ｂ）において、調整部１３は、調整区間内で、調整対象符号量３００だけ復号装置のバッファに入力されるデータ量を減少させるように目標ビットレートを減少させる。減少させるビットレートは、例えば、調整対象符号量３００を対象区間の時間で除した値を、目標ビットレートから減ずる方法があるが、他の方法であってもよい。図５（ｂ）は、ＶＢＲ制御における調整後のバッファ占有量を示す図であり、実線が調整後の、点線が調整前の占有量を示している。
【００５５】
図５（ｂ）示す様に、ＶＢＲ制御では調整区間内において、調整後のグラフの増加部分の傾きは、調整前から所定の値だけ減少しており、この傾きの減少分は、調整対象符号量３００を調整区間の時間で割った値に相当する。また、中間符号量と割当符号量は常に一致するため、調整後及び調整前では、垂直に立ち下がる部分の長さは同じである。
【００５６】
以上、所定の量子化パラメータを用いた１回目の符号化で発生する観測符号量から、目標ビットレートを得るための中間符号量を算出して、中間符号量で符号化した場合における復号装置でのバッファ破綻を閾値を用いて判定し、閾値超過直前のバッファ占有量の極点から、閾値超過直後のバッファ占有量の極点までの区間で、上限閾値以下、下限閾値以上となる様にバッファ占有量の調整を行って、バッファ破綻を回避する。
【００５７】
バッファ占有量の調整は、上述したように中間符号量又は目標ビットレートを調整することにより行うが、中間符号量及び目標ビットレートの両方を調整することにより行うことも当然可能である。また、符号量の調整を行う場合において、調整区間内の全フレームの符号量の増減を行うことも必須ではなく、例えば、所定の符号量以上のフレームのみで調整を行う等の方法を使用しても良い。
【００５８】
本発明による符号化では、符号量の調整に伴うバッファ破綻を生じさせず、かつ、バッファ破綻回避に伴う画質の劣化を極力抑えることを可能とする。これは、バッファ破綻を生じさせることのない最大区間であり、かつ、画像性質が類似する区間として、閾値超過直前と直後の極点区間でのみバッファ占有量の調整を行うためである。
【００５９】
尚、本発明による動画像符号化装置、符号化方法は、コンピュータに上述した処理を行わせるプログラムにより実現することが可能である。
【図面の簡単な説明】
【００６０】
【図１】本発明による符号化装置の機能ブロック図である。
【図２】割当符号量算出部の機能ブロック図である。
【図３】バッファ占有量の遷移を示す図である。
【図４】ＣＢＲ制御時の中間符号量の調整を示す図である。
【図５】ＶＢＲ制御時の中間符号量の調整を示す図である。
【図６】従来技術による動画像の符号化方法を説明する図である。
【符号の説明】
【００６１】
１  割当符号量算出部
２  量子化パラメータ決定部
３  動画像符号化部
３１  直交変換部
３２  量子化部
３３  逆量子化部
３４  直交逆変換部
３５  フレームメモリ
３６  動き補償部
３７  動きベクトル検出部
３８  符号化部
３９  多重化部
４０符号化バッファ
１１  中間符号量算出部
１２  バッファ遷移算出部
１３  調整部
８０、８１  フレーム位置
９０、９１、９２  区間
１００、１０１、１０２、１０３  極大点
２００、２０１、２０２  極小点
３００  調整対象符号量
【図１】
2007208377.tif 000003
【図２】
2007208377.tif 000004
【図３】
2007208377.tif 000005
【図４】
2007208377.tif 000006
【図５】
2007208377.tif 000007
【図６】
2007208377.tif 000008