(57)【要約】【課題】従来の動画像符号化装置では、符号化の難しいシーケンスは画質劣化が大きく、符号化の易しいシーケンスは極端に画質が良くなるという、シーケンス間での画質差が生じるという課題がある。【解決手段】符号化過不足符号量算出部２０１は、ＧＯＰ毎の発生符号量からＧＯＰ毎の基準目標符号量を差し引いて過不足符号量を算出する。符号配分率算出部２０３は、バッファ充足率が０以上で、かつ、過不足符号量が０以上のときは、第１の非線形関数に従ってバッファ充足率から符号量配分率を算出し、バッファ充足率が０以上で、かつ、過不足符号量が負のときは、第２の非線形関数に従ってバッファ充足率から符号量配分率を算出し、バッファ充足率が負のときは符号量配分率を０とする。符号量配分率に応じて量子化部１０３に供給する量子化ステップの変化率が従来よりも小さく設定される。【選択図】図１
2007116655.tif 000002
【特許請求の範囲】
【請求項１】
符号化対象の動画像信号と参照画像信号とから予測手段にて所定の符号化単位で予測信号を生成し、その予測信号と前記動画像信号との差分信号を直交変換手段により直交変換して直交変換係数を生成し、前記直交変換係数を外部からの量子化ステップに基づき量子化した信号から、参照画像信号生成手段により前記参照画像信号を生成すると共に、可変長符号化手段で可変長符号化して符号化信号を出力する符号化部と、
前記可変長符号化手段における所定の画像群符号化単位毎の発生符号量と予め定められた基準目標符号量との差分である過不足符号量に応じて、前記可変長符号化手段における所定の画像群符号化単位毎の発生符号量を前記基準目標符号量となるように、前記符号化部へ供給する前記量子化ステップを可変制御する符号化制御部と
よりなる動画像符号化装置であって、
前記符号化制御部は、
前記可変長符号化手段における前記画像群符号化単位毎の発生符号量から前記画像群符号化単位毎の前記基準目標符号量を差し引いて、前記過不足符号量を算出する過不足符号量算出手段と、
前記過不足符号量を積算して得たバッファ充足量と、前記可変長符号化手段内の前記画像群符号化単位毎の符号を蓄積するバッファの許容バッファサイズとの比であるバッファ充足率を算出するバッファ充足率算出手段と、
前記バッファ充足率が０以上で、かつ、前記過不足符号量が０以上のときは、第１の非線形関数に従って前記バッファ充足率から符号量配分率を算出し、前記バッファ充足率が０以上で、かつ、前記過不足符号量が負のときは、第２の非線形関数に従って前記バッファ充足率から前記符号量配分率を算出し、前記バッファ充足率が負のときは前記符号量配分率を０とする符号量配分率算出手段と、
前記符号量配分率算出手段で算出された前記符号量配分率と前記過不足符号量とから、現在の画像群符号化単位の目標符号量を算出する目標符号量算出手段と、
前記目標符号量算出手段で算出された前記現在の画像群符号化単位の目標符号量と、一つ前の画像群符号化単位の目標符号量との比から前記量子化ステップを算出する量子化ステップ算出手段と
を有し、前記第１の非線形関数は、前記バッファ充足率の増加に従い前記符号量配分率を非線形的に増加させる関数であり、前記第２の非線形関数は、前記バッファ充足率の増加に従い前記符号量配分率を非線形的に減少させる関数であることを特徴とする動画像符号化装置。
【請求項２】
前記符号化制御部は、
前記目標符号量から算出された現在の画像群符号化単位に含まれる画像目標符号量を算出する画像目標符号量算出手段と、
前記画像目標符号量により所定の符号化単位で固定ビットレートの量子化ステップを算出する固定ビットレート量子化ステップ算出手段と、
前記可変長符号化手段から出力される符号を予め定められたバッファに蓄積し、該バッファの蓄積符号量が前記画像目標符号量に関連した所定の容量を下回っているかどうかを監視するバッファ容量監視手段と、
前記バッファ容量監視手段により、前記バッファの蓄積符号量が前記所定の容量を下回っていると判定されたときは、前記固定ビットレート量子化ステップ算出手段により算出された前記固定ビットレートの量子化ステップを前記符号化部へ出力し、前記バッファの蓄積符号量が前記所定の容量を超えていると判定されたときは、前記量子化ステップ算出手段により算出された可変ビットレートの量子化ステップを前記符号化部へ出力する量子化ステップ切替出力手段と
を更に有することを特徴とする請求項１記載の動画像符号化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は動画像符号化装置に係り、特にリアルタイムで可変ビットレート符号化制御を行う際に好適な動画像符号化装置に関する。
【背景技術】
【０００２】
動画像信号を伝送若しくは蓄積する場合、効率化のため圧縮符号化してビットストリームとすることが多い。動画像の圧縮符号化方式としてはＭＰＥＧ（Moving Picture Experts Group）等の方式が標準化され、広く用いられている。よって、動画像信号をＭＰＥＧ等の方式で圧縮し、ビットストリームとして扱うことは、伝送系若しくは蓄積系の効率的な利用において重要である。
【０００３】
ＭＰＥＧ等の方式において、発生符号量をある単位時間内で一定に保つ制御方式として、ＭＰＥＧ−２のテストモデル５（Test Model 5：ＴＭ５）における固定ビットレート（ＣＢＲ）制御方式が知られている。しかし、一般に、動画像信号は定常的ではないため、入力動画像信号の情報量は時間経過に伴って変化する。そのため、入力動画像信号を符号化する場合に、可変ビットレート（ＶＢＲ）制御方式を用いると、同じ符号量で固定ビットレート制御方式に比べて高画質を実現できることが知られている。
【０００４】
上記の可変ビットレート制御方式には、シーケンス全体を一定の量子化幅を用いて仮符号化処理した際に発生する符号量を基に、配分する符号量を設定し、本符号化処理を実行する“２パス”可変ビットレート制御方式がある。この“２パス”可変ビットレート制御方式は、シーケンス全体の符号化特性を予め知った上で符号化を行うため、高画質を実現することができる。
【０００５】
しかし、上記の“２パス”可変ビットレート制御方式では、仮符号化処理と本符号化処理を行う必要があり、本符号化処理のみに比べおよそ２倍の処理量がかかる。ゆえに、放送や通信等の手段により送られてくる動画像信号を、リアルタイムに符号化して光ディスクや磁気ディスク等の記録媒体に記録する装置には適さない。
【０００６】
そこで、リアルタイムに可変ビットレート制御を実現し、符号化する方式として“１パス”可変ビットレート制御方式がある。この“１パス”可変ビットレート制御方式は、単位時間当たりの発生符号量を監視し、その時の単位時間当たりの割当符号量と比較して、次の符号化単位の割当符号量を算出し、その算出した割当符号量に応じて、次の符号化単位の量子化幅を変化させるものである。
【０００７】
“１パス”可変ビットレート制御方式の従来例として、発生符号量と予め設定された平均ビットレートとの過不足量から画像単位毎に量子化幅を調整することを特徴とする動画像符号化装置が従来から知られている（例えば、特許文献１、特許文献２参照）。具体的には、上記の従来の動画像符号化装置における“１パス”可変ビットレート制御方式は、バッファの占有量に比例して目標とするビットレートを設定し、目標とするビットレートに近付くような量子化幅を設定するものである。
【０００８】
また、その他の１パス可変ビットレート制御方式を採用した従来の動画像符号化装置として、発生符号量の余裕分であるマージンを設定して、一定の割合でマージンを配分する方式の動画像符号化装置も知られている（例えば、特許文献３参照）。
【０００９】
【特許文献１】特開２０００−２６１８００号公報
【特許文献２】再公表特許ＷＯ  ００／６８５４２号
【特許文献３】特開２００１−２５０１５号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、特許文献１若しくは特許文献２に記載の従来の動画像符号化装置における１パス可変ビットレート制御方式では、バッファの占有量と目標ビットレートが比例の関係にあるため、また、特許文献３記載の従来の動画像符号化装置では、マージンを一定の割合で配分するために、符号化の難しいシーケンスと符号化の簡単なシーケンスとが交互に続くような場合に、符号化の難しいシーケンスの後半部分において、特許文献１若しくは特許文献２に記載の従来の動画像符号化装置ではバッファ占有量の増大により、特許文献３記載の従来の動画像符号化装置では、マージンの減少による配分符号量の減少により、それぞれ量子化幅が大きくなり、発生符号量を強引に抑制するために、画質劣化が目立つという課題がある。
【００１１】
また、上記の各特許文献記載の従来の動画像符号化装置では、バッファ占有量が減少する場合、すなわち、符号化の易しいシーケンスの場合に、量子化幅を小さくしようとするため、無駄に符号量を使うことになる。従って、以上より上記の各特許文献記載の従来の動画像符号化装置では、符号化の難しいシーケンスは画質劣化が大きく、符号化の易しいシーケンスは極端に画質が良くなるという、シーケンス間での画質差が生じるという課題がある。
【００１２】
本発明は以上の点に鑑みなされたもので、符号化の難しいシーケンスと符号化の簡単なシーケンスが交互に続くような場合に、符号化の難しいシーケンスにおける画質劣化を低減すると共に、符号化の簡単なシーケンスと符号化の難しいシーケンス間での画質差を抑制し得る、１パス可変ビットレート制御方式による動画像符号化を行う動画像符号化装置を提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記の目的を達成するため、本発明は、符号化対象の動画像信号と参照画像信号とから予測手段にて所定の符号化単位で予測信号を生成し、その予測信号と動画像信号との差分信号を直交変換手段により直交変換して直交変換係数を生成し、直交変換係数を外部からの量子化ステップに基づき量子化した信号から、参照画像信号生成手段により参照画像信号を生成すると共に、可変長符号化手段で可変長符号化して符号化信号を出力する符号化部と、可変長符号化手段における所定の画像群符号化単位毎の発生符号量と予め定められた基準目標符号量との差分である過不足符号量に応じて、可変長符号化手段における所定の画像群符号化単位毎の発生符号量を基準目標符号量となるように、符号化部へ供給する量子化ステップを可変制御する符号化制御部とよりなる動画像符号化装置であって、
符号化制御部は、可変長符号化手段における画像群符号化単位毎の発生符号量から画像群符号化単位毎の基準目標符号量を差し引いて過不足符号量を算出する過不足符号量算出手段と、過不足符号量を積算して得たバッファ充足量と、可変長符号化手段内の画像群符号化単位毎の符号を蓄積するバッファの許容バッファサイズとの比であるバッファ充足率を算出するバッファ充足率算出手段と、バッファ充足率が０以上で、かつ、過不足符号量が０以上のときは、第１の非線形関数に従ってバッファ充足率から符号量配分率を算出し、バッファ充足率が０以上で、かつ、過不足符号量が負のときは、第２の非線形関数に従ってバッファ充足率から符号量配分率を算出し、バッファ充足率が負のときは符号量配分率を０とする符号量配分率算出手段と、符号量配分率算出手段で算出された符号量配分率と過不足符号量とから、現在の画像群符号化単位の目標符号量を算出する目標符号量算出手段と、目標符号量算出手段で算出された現在の画像群符号化単位の目標符号量と、一つ前の画像群符号化単位の目標符号量との比から量子化ステップを算出する量子化ステップ算出手段とを有し、第１の非線形関数は、バッファ充足率の増加に従い符号量配分率を非線形的に増加させる関数であり、第２の非線形関数は、バッファ充足率の増加に従い符号量配分率を非線形的に減少させる関数であることを特徴とする。
【００１４】
この発明では、画像群符号化単位毎の発生符号量から画像群符号化単位毎の基準目標符号量を差し引いて算出した過不足符号量と、過不足符号量を積算して得たバッファ充足量と画像群符号化単位毎の符号を蓄積するバッファの許容バッファサイズとから算出したバッファ充足率とに基づいて、バッファ充足率が０以上で、かつ、過不足符号量が０以上のときは、第１の非線形関数に従ってバッファ充足率から符号量配分率を算出し、バッファ充足率が０以上で、かつ、過不足符号量が負のときは、第２の非線形関数に従ってバッファ充足率から符号量配分率を算出し、更にその符号量配分率と過不足符号量とから現在の画像群符号化単位の目標符号量を算出し、一つ前の画像群符号化単位の目標符号量とから量子化ステップを算出するようにしたため、単調増加関数又は単調減少関数に従って符号量配分率を算出した後、目標符号量及び量子化ステップを算出する従来に比べて、量子化ステップの変化率を小さくできる。
【００１５】
すなわち、この発明では、バッファ充足率が０以上で、かつ、過不足符号量が０以上のときは、バッファ充足率の増加に従い符号量配分率を非線形的に増加させる第１の非線形関数に従って符号量配分率を算出することにより、従来に比べて量子化ステップの変化率を小さくし、バッファ充足率が０以上で、かつ、過不足符号量が負のときは、バッファ充足率の増加に従い符号量配分率を非線形的に減少させる第２の非線形関数に従って符号量配分率を算出することにより、従来に比べて量子化ステップの変化率を小さくする。
【００１６】
また、上記の目的を達成するため、本発明は、上記の符号化制御部を、目標符号量から算出された現在の画像群符号化単位に含まれる画像目標符号量を算出する画像目標符号量算出手段と、画像目標符号量により所定の符号化単位で固定ビットレートの量子化ステップを算出する固定ビットレート量子化ステップ算出手段と、可変長符号化手段から出力される符号を予め定められたバッファに蓄積し、バッファの蓄積符号量が画像目標符号量に関連した所定の容量を下回っているかどうかを監視するバッファ容量監視手段と、バッファ容量監視手段により、バッファの蓄積符号量が所定の容量を下回っていると判定されたときは、固定ビットレート量子化ステップ算出手段により算出された固定ビットレートの量子化ステップを符号化部へ出力し、バッファの蓄積符号量が所定の容量を超えていると判定されたときは、量子化ステップ算出手段により算出された可変ビットレートの量子化ステップを符号化部へ出力する量子化ステップ切替出力手段とを更に有する構成としたことを特徴とする。
【００１７】
この発明では、可変ビットレートの量子化ステップで画像群符号化単位での量子化パラメータ制御を行っているときに、バッファの蓄積符号量が所定の容量を下回っていると判定されたときは、固定ビットレートの量子化ステップを符号化部へ出力して固定ビットレートで動作させるようにしたため、規定されたバッファ容量を保ちながら、可変ビットレートの制御が可能にできる。
【発明の効果】
【００１８】
本発明によれば、バッファ充足率が０以上で、かつ、過不足符号量が０以上のときは、バッファ充足率の増加に従い符号量配分率を非線形的に増加させる第１の非線形関数に従って符号量配分率を算出することにより、従来に比べて量子化ステップの変化率を小さくするようにしたため、符号化の難しいシーケンスと簡単なシーケンスが交互に続くような場合は、バッファ充足率が０以上で、かつ、過不足符号量が０以上であり、このときは難しいシーケンスにおいて量子化ステップの変化率を小さくすることができ、これにより符号化の難しいシーケンスの後半部分における画質劣化を従来よりも抑制することが可能である。
【００１９】
また、本発明によれば、バッファ充足率が０以上で、かつ、過不足符号量が負のときは、バッファ充足率の増加に従い符号量配分率を非線形的に減少させる第２の非線形関数に従って符号量配分率を算出することにより、従来に比べて量子化ステップの変化率を小さくするようにしたため、符号化が易しい（簡単な）シーケンスが続くようなバッファ充足率が０以上で、かつ、過不足符号量が負のときも、量子化ステップの変化率を従来よりも小さくすることができるため、必要以上に量子化ステップを小さくして余分な符号量を使うことがなく、符号化が易しいシーケンスにおいて極端に画質が良くなるという現象を抑制でき、シーケンス間で画質を保つことが可能である。本発明では以上の効果を持つ、１パス可変ビットレート制御方式を実現可能である。
【００２０】
更に、本発明によれば、可変ビットレートの量子化ステップで画像群符号化単位での量子化パラメータ制御を行っているときに、バッファの蓄積符号量が所定の容量を下回っていると判定されたときは、固定ビットレートの量子化ステップを符号化部へ出力して固定ビットレートで動作させることで、規定されたバッファ容量を保ちながら、可変ビットレートの制御を行うようにしたため、符号化の規格に沿ったビットストリームを従来に比べ高画質で生成することができる。
【発明を実施するための最良の形態】
【００２１】
次に、本発明の実施の形態について図面と共に説明する。図１は本発明になる動画像符号化装置の一実施の形態のブロック図を示す。ただし、本実施の形態では、画像群符号化単位を数枚の画像の集合であるＧＯＰ（Group Of Pictures）とし、画像タイプ別符号化単位を一枚のピクチャであるとする。また、本明細書において、「画像群」とは画像タイプ別符号化単位の集合であり、「画像タイプ」とは、画面内予測画像（I-picture：Ｉピクチャ）、画面間前方向予測画像（P-picture：Ｐピクチャ）、画面間両方向予測画像（B-picture：Ｂピクチャ）であるものとする。
【００２２】
図１に示すように、本実施の形態の動画像符号化装置は、入力動画像信号を符号化する動画像符号化部１００と、符号化する動画像信号の可変ビットレート制御を行う符号化制御部２００とから構成される。動画像符号化部１００は、予測部１０１、直交変換部１０２、量子化部１０３、可変長符号化部１０４、逆量子化部１０５、逆直交変換部１０６、画像メモリ部１０７、減算器１０８から構成される。符号化制御部２００は、符号化過不足符号量算出部２０１、バッファ充足率算出部２０２、符号配分率算出部２０３、目標ビットレート算出部２０４、画像タイプ別目標符号量算出部２０５、画像タイプ別量子化ステップ算出部２０６から構成される。
【００２３】
次に、図１の動画像符号化装置の動作について説明する。まず、動画像符号化部１００の動作について説明する。動画像符号化部１００は、動画像信号と符号化制御部２００からの量子化ステップを入力として受け、符号化ビットストリームを出力とする、ＭＰＥＧ等における符号化装置と同様の構成で動画像信号を符号化する。動画像符号化部１００に入力された動画像信号は、予測部１０１にて後述する参照画像信号を用いて、画面内予測、または過去・未来の復号画像との画面間予測により予測画像信号とされる一方、減算器１０８を通して直交変換部１０２に供給される。
【００２４】
直交変換部１０２は、画面内予測画像を生成するときには、減算器１０８をスルーして入力された動画像信号に対して直交変換を行い、画面間前方向予測画像又は画面間両方向予測画像を生成するときには、減算器１０８で入力動画像信号（原画像）と予測部１０１で生成された予測画像との差分信号に対して直交変換を行い、それぞれ周波数係数（直交変換係数）に変換する。量子化部１０３は、直交変換部１０２から入力された周波数係数を、後述する符号化制御部２００からの量子化ステップに従って量子化を行い、量子化係数に変換する。
【００２５】
可変長符号化部１０４は、量子化部１０３から入力された量子化係数に対してエントロピー符号化などを行って符号列へと変換し、動画像信号の符号化ビットストリームを生成して外部へ出力する。また、上記の量子化係数は、逆量子化部１０５により逆量子化された後、逆直交変換部１０６により逆直交変換された後、予測部１０１からの予測画像信号と加算器１０９で加算されることにより、復号画像信号とされる。この復号画像信号は、画像メモリ部１０７に蓄積され、予測部１０１における、過去・未来の参照用画像信号として用いられる。
【００２６】
次に、符号化制御部２００の動作について説明する。符号化制御部２００は、符号化発生符号量を入力とし、量子化ステップを出力とする、可変ビットレート制御を行う。符号化過不足符号量算出部２０１は、予め設定されている目標ビットレートと、動画像符号化部１００の可変長符号化部１０４より入力される符号化発生符号量とを基に、発生符号量の目標符号量との差分符号量を求め、その差分符号量をバッファ充足率算出部２０２へ出力する。バッファ充足率算出部２０２は、上記の差分符号量より、可変長符号化部１０４内の符号化バッファの充足量を求め、符号化バッファの大きさに対するバッファ充足率を算出する。
【００２７】
符号配分率算出部２０３は、バッファ充足率算出部２０２により算出されたバッファ充足率より、目標ビットレートから溢れた符号量の次の画像群符号化単位に対する目標ビットレートの変動符号量を算出する。目標ビットレート算出部２０４は、符号配分率算出部２０３で算出された変動符号量と、目標ビットレートとに基づいて、次の画像群符号化単位の目標ビットレートを算出する。
【００２８】
画像タイプ別目標符号量算出部２０５は、目標ビットレート算出部２０４にて算出された、次の画像群符号化単位の目標ビットレートより、画像タイプ別の目標符号量を求め、次の画像群符号化単位における画像タイプ別符号化単位の目標符号量を算出する。画像タイプ別量子化ステップ算出部２０６は、符号化した画像群符号化単位における画像タイプ別目標符号量と、画像タイプ別目標符号量算出部２０５で算出した次の画像タイプ別符号化単位の目標符号量とより、次の画像タイプ別量子化ステップを算出する。算出された次の画像タイプ別量子化ステップは、動画像符号化部１００の量子化部１０３に入力され、その量子化ステップによる量子化を行わせる。
【００２９】
次に、符号化制御部２００の動作を更に詳細に説明する。ただし、以下では、画像群符号化単位をＧＯＰと呼ぶ。また、画像を単にピクチャと呼ぶ。また、符号量とバッファの単位は[bits]であり、ビットレートの単位は[bps]である。符号化制御部２００では、まず、符号化過不足符号量算出部２０１により図２のフローチャートに従った動作を行う。
【００３０】
すなわち、符号化過不足符号量算出部２０１は、予め定められた平均ビットレート（基準目標ビットレート：ＴＢ＿ｉｎｔ）に基づいて、次式によりＧＯＰの基準目標符号量（Ｔ＿ｉｎｔ）を算出する（図２のステップＳ１０）。
【００３１】
Ｔ＿ｉｎｔ＝ＴＢ＿ｉｎｔ×Ｎ／ＰＲ          （１）
ただし、（１）式中、ＰＲはピクチャレート（固定値）、Ｎは符号化したＧＯＰを構成するピクチャの枚数である。
【００３２】
続いて、符号化過不足符号量算出部２０１は、算出した基準目標符号量（Ｔ＿ｉｎｔ）と、動画像符号化部１００内の可変長符号化部１０４からのＧＯＰ発生符号量（Ｓ＿ｇｏｐ）とより、ＧＯＰの過不足符号量（ｄＳ＿ｇｏｐ）を求める（図２のステップＳ１１）。このＧＯＰの過不足符号量（ｄＳ＿ｇｏｐ）は、ＧＯＰ発生符号量（Ｓ＿ｇｏｐ）と、ＧＯＰの基準目標符号量（Ｔ＿ｉｎｔ）との差分で与えられる。従って、ＧＯＰの過不足符号量ｄＳ＿ｇｏｐは次式で与えられる。
【００３３】
ｄＳ＿ｇｏｐ＝Ｓ＿ｇｏｐ−Ｔ＿ｉｎｔ          （２）
ただし、（２）中、ｄＳ＿ｇｏｐの初期値は０である。
【００３４】
（２）式から分かるように、上記のＧＯＰの過不足符号量ｄＳ＿ｇｏｐが正ならば、符号化が難しく目標符号量に対して発生符号量が上回ったことを意味し、負ならば符号化が容易で目標符号量に対して発生符号量が下回ったことを意味する。
【００３５】
次に、バッファ充足率算出部２０２が図３のフローチャートに従った動作をする。まず、バッファ充足率算出部２０２は、上記のＧＯＰの過不足符号量（ｄＳ＿ｇｏｐ）より、可変長符号化部１０４内のバッファの充足量（ＢｋｔＦｌｎｓ）を算出する（図３のステップＳ２０）。このバッファ充足量（ＢｋｔＦｌｎｓ）は、ＧＯＰ過不足符号量の積算であるから、次式で与えられる。
【００３６】
BktFlns＝min（BktBufSize,max(−BktBufSize,BktFlns−dS_gop)）      （３）
ただし、（３）式中、ｍｉｎ（ａ，ｂ）はａ≦ｂならばａ，ｂ＜ａならばｂを返し、ｍａｘ（ａ，ｂ）はａ≧ｂならばａ，ａ＜ｂならばｂを返す。また、ＢｋｔＦｌｎｓの初期値は０であり、ＢｋｔＢｕｆＳｉｚｅはバッファの許容バッファサイズを示す。また、次式の不等式が成立する。
【００３７】
−ＢｋｔＢｕｆＳｉｚｅ≦ＢｋｔＦｌｎｓ≦ＢｋｔＢｕｆＳｉｚｅ
続いて、バッファ充足率算出部２０２は、算出したバッファ充足量（ＢｋｔＦｌｎｓ）に基づいて、バッファ充足率（ＢｋｔＦｌｎｓＲａｔｅ）を求める（ステップＳ２１）。ここで、バッファ充足率（ＢｋｔＦｌｎｓＲａｔｅ）は、バッファの許容バッファサイズ（ＢｋｔＢｕｆＳｉｚｅ）に対するバッファ充足量（ＢｋｔＦｌｎｓ）の割合であるから、次式で与えられる。
【００３８】
ＢｋｔＦｌｎｓＲａｔｅ＝ＢｋｔＦｌｎｓ／ＢｋｔＢｕｆＳｉｚｅ      （４）
ただし、ＢｋｔＦｌｎｓＲａｔｅの初期値は０である。また、−１≦ＢｋｔＦｌｎｓＲａｔｅ≦１である。
【００３９】
次に、符号配分率算出部２０３が図４のフローチャートに従った動作をする。符号配分率算出部２０３は、バッファ充足率算出部２０２からの、バッファ充足率（ＢｋｔＦｌｎｓＲａｔｅ）と符号量配分率（ＢｉｔＤｉｓｔＲａｔｅ）の関係を表す関数を用いて、符合量の配分率を求める（図４のステップＳ３０〜Ｓ３５）。すなわち、符号配分率算出部２０３は、まず、上記のバッファ充足率（ＢｋｔＦｌｎｓＲａｔｅ）が０以上であるかどうか判定し（図４のステップＳ３０）、０以上であるときには、前記ＧＯＰ過不足符号量（ｄＳ＿ｇｏｐ）が０以上であるかどうか判定する（図４のステップＳ３１）。
【００４０】
ＧＯＰ過不足符号量（ｄＳ＿ｇｏｐ）が０以上であるときには、（２）式からバッファが正方向に溜まっている場合、すなわち、可変長符号化部１０４内にあるバッファに蓄積される符号量が、時間の経過につれて増加している場合であり、増加傾向にあるほど符号量配分率（ＢｉｔＤｉｓｔＲａｔｅ）を大きくする（図４のステップＳ３２）。すなわち、ステップＳ３２では、難しいシーケンスが続いて、バッファに蓄積される符号量（ＧＯＰ発生符号量）が時間の経過につれて増加しているので、レートを上げるために符号量配分率（ＢｉｔＤｉｓｔＲａｔｅ）を大きくする。
【００４１】
一方、ステップＳ３１でＧＯＰ過不足符号量（ｄＳ＿ｇｏｐ）が負であると判定されたときには、バッファに正方向に符号量が殆ど溜まっていない場合、すなわち、上記バッファに蓄積される符号量（ＧＯＰ発生符号量）が増加していないか、時間の経過につれて減少している場合であり、減少傾向にあるほど符号量配分率（ＢｉｔＤｉｓｔＲａｔｅ）を大きくする（図４のステップＳ３３）。すなわち、バッファ充足率（ＢｋｔＦｌｎｓＲａｔｅ）が正で絶対値が小さく、ＧＯＰ過不足符号量（ｄＳ＿ｇｏｐ）が負の場合は、バッファに符号量が正方向に溜まっている状態で、簡単なシーケンスによりバッファの符号量が減少する場合であり、このときには、難しいシーケンスを符号化するときに備えてバッファに余裕を持たせるため、上記のステップＳ３３において、符号量配分率（ＢｉｔＤｉｓｔＲａｔｅ）を小さくしようとする。
【００４２】
また、ステップＳ３０でバッファ充足率（ＢｋｔＦｌｎｓＲａｔｅ）が負であると判定されたときには、符号量配分率（ＢｉｔＤｉｓｔＲａｔｅ）は０とする（図４のステップＳ３４）。すなわち、ステップＳ３０でバッファ充足率（ＢｋｔＦｌｎｓＲａｔｅ）が負であると判定されたときには、可変長符号化部１０４内のバッファに蓄積される符号の符号量が負方向に溜まる場合、換言すると、バッファに蓄積される符号量が時間の経過と共に減少する場合は、簡単なシーケンスが続いているとみなし、上記のステップ３４にて符号量配分率（ＢｉｔＤｉｓｔＲａｔｅ）を０とすることで、常に基準目標レートに設定するのである。
【００４３】
これにより、レートを上げる方向に配分しないようにすることで、再び難シーケンスに切り替わるときに多めに符号量を配分させることができる。符号配分率算出部２０３は、上記のステップＳ３２、Ｓ３３又はＳ３４の処理により算出した符号量配分率（ＢｉｔＤｉｓｔＲａｔｅ）を出力する（図４のステップＳ３５）。
【００４４】
以上のステップＳ３２、Ｓ３３、Ｓ３４において算出する符号量配分率（ＢｉｔＤｉｓｔＲａｔｅ）を、関数ｆで表現すると、以下のように表される。ここで、関数表記において簡易化のため、ＢｋｔＦｌｎｓＲａｔｅ＝ｘ，ＢｉｔＤｉｓｔＲａｔｅ＝ｙとする。
【００４５】
（i）ＢｋｔＦｌｎｓＲａｔｅ≧０、かつ、ｄＳ＿ｇｏｐ≧０の場合（図４のＳ３０Yes，Ｓ３１Yes，Ｓ３２，Ｓ３５）
ｙ＝ｆ（ｘ）          （５）
（ii）ＢｋｔＦｌｎｓＲａｔｅ≧０、かつ、ｄＳ＿ｇｏｐ＜０の場合（図４のＳ３０Yes，Ｓ３１No，Ｓ３３，Ｓ３５）
ｙ＝ｆ（−ｘ＋１）          （６）
（iii）ＢｋｔＦｌｎｓＲａｔｅ＜０の場合（図４のＳ３０No，Ｓ３４，Ｓ３５）
ｙ＝０                      （７）
例えば、上記のｆを線形関数とすると、以下のように表される。
【００４６】
ｆ（ｘ）＝ｘ                    （８）
従って、バッファ充足率（ＢｋｔＦｌｎｓＲａｔｅ＝ｘ）に対する符号量配分率（ＢｉｔＤｉｓｔＲａｔｅ＝ｙ）を線形関係にすると、図８に示すように表される。すなわち、図８に実線で示すｙ＝ｘの直線は、（５）式に（８）式を代入した直線であるため、次式で表される関係を示す。
【００４７】
BitDistRate＝BktFlnsRate   (０≦BitDistRate≦１，dS_gop≧０)      （９）
また、図８に点線で示すｙ＝−ｘ＋１の直線は、（６）式に（８）式を代入した直線であるため、次式で表される関係を示す。
【００４８】
BitDistRate＝−BktFlnsRate＋１  (０≦BitDistRate≦１，dS_gop＜０)  （１０）
これに対し、上記のｆを非線形関数である指数関数とすると、例えば以下のように表される。
【００４９】
ｆ（ｘ）＝α・（βｘ−１）    （β＝（α＋１）／α）          （１１）
バッファに符号があまり溜まっていないときは、レートを減らす方向（ＤＳ＿ＧＯＰ＞０）にあまり分配しないようにし、レートを増やす方向（ＤＳ＿ＧＯＰ＜０）に多めに分配するようにするには、ｆを指数関数とし、適当なαとβを定めることが望ましい。例えば、α＝１とすると、（１１）式からβ＝２となるから、指数関数ｆは以下のように表される。
【００５０】
ｆ（ｘ）＝２ｘ−１          （１２）
従って、バッファ充足率（ＢｋｔＦｌｎｓＲａｔｅ＝ｘ）に対する符号量配分率（ＢｉｔＤｉｓｔＲａｔｅ＝ｙ）を（１２）式に示される非線形関係にすると、図９に示すように表される。すなわち、図９に実線で示すｙ＝２ｘ−１の曲線は、（５）式と（１２）式とから得られる曲線であるため、次式で表される関係を示す。
【００５１】
BitDistRate＝２BktFlnsRate−１  (０≦BitDistRate≦１，dS_gop≧０)      （13）
また、図９に点線で示すｙ＝２(-x+１）−１の曲線は、（６）式と（１２）式とから得られる曲線であるため、次式で表される関係を示す。
【００５２】
BitDistRate＝２(-BktFlnsRate+1)−１  (０≦BitDistRate≦１，dS_gop＜０)    （14）
本実施の形態では、以上のような、バッファ充足率（BktFlnsRate）と基準目標ビットレート（ＴＢ＿ｉｎｔ）とから、過不足符号量（ｄＳ＿ｇｏｐ）を基にした符号量配分率（BitDistRate）の関数ｆを指数関数に設定することで、目標ビットレート（ＴＢ＿ｇｏｐ）を算出し、可変ビットレート制御を行う。
【００５３】
次に、図１の目標ビットレート算出部２０４の動作について、図５のフローチャートと共に説明する。目標ビットレート算出部２０４は、符号量配分率（ＢｉｔＤｉｓｔＲａｔｅ）とＧＯＰの過不足符号量（ｄＳ＿ｇｏｐ）から現ＧＯＰの目標符号量（Ｔ＿ｇｏｐ）を算出する（図５のステップＳ４０〜Ｓ４２）。
【００５４】
すなわち、目標ビットレート算出部２０４は、ＧＯＰの過不足符号量（ｄＳ＿ｇｏｐ）に対して、符号量配分率（ＢｉｔＤｉｓｔＲａｔｅ）を掛けたものが次のＧＯＰの目標符号量（Ｔ＿ｇｏｐ）に加算する配分符号量（ｄＤｉｓｔＢｉｔ）となるので、まず、以下の式により配分符号量（ｄＤｉｓｔＢｉｔ）を算出する（図５のステップＳ４０）。
【００５５】
ｄＤｉｓｔＢｉｔ＝ｄＳ＿ｇｏｐ×ＢｉｔＤｉｓｔＲａｔｅ      （１５）
ただし、ｄＤｉｓｔＢｉｔの初期値は０である。
【００５６】
従って、配分レート（dDistRate）は、現（これから符号化する）ＧＯＰのピクチャ枚数Ｎに対して、以下のように表される。
【００５７】
ｄＤｉｓｔＲａｔｅ＝ｄＤｉｓｔＢｉｔ×ＰＲ／Ｎ        （１６）
ここで、バッファ充足量（BktFlns）が正で、一つ前のＧＯＰ符号量が目標符号量（T_gop）を超えている場合は、配分レート（dDistRate）は０以下となる。すなわち、一つ前のＧＯＰ符号量（S_gop）が目標符号量（T_gop）を超えている場合（S_gop＞T_gop）は、（２）式よりdS_gopが負となる。符号量配分率（BitDistRate）は（１３）式より常に０以上であるから、（１５）式より配分符号量（dDistBit）は０以下となる。従って、（１６）式より、配分レート（dDistRate）も０以下となる。同様に、バッファ充足量（BktFlns）が正で、一つ前のＧＯＰ符号量が目標符号量（T_gop）を下回った場合は、配分レート（dDistRate）は正となる。
【００５８】
続いて、目標ビットレート算出部２０４は、現ＧＯＰの目標ビットレート（ＴＢ＿ｇｏｐ）を算出する（図５のステップＳ４１）。ここで、現ＧＯＰの目標ビットレート（TB_gop）は、一つ前のＧＯＰの目標ビットレートに配分ビットレート（dDistRate）を加算したものになるので、次式で表される。
【００５９】
ＴＢ＿ｇｏｐ＝ＴＢ＿ｇｏｐ＋ｄＤｉｓｔＲａｔｅ          （１７）
そして、目標ビットレート算出部２０４は、ステップＳ４１で算出した現ＧＯＰの目標ビットレートを用いて、現ＧＯＰの目標符号量（Ｔ＿ｇｏｐ）を次式により算出する（図５のステップＳ４２）。
【００６０】
Ｔ＿ｇｏｐ＝ＴＢ＿ｇｏｐ×Ｎ／ＰＲ                      （１８）
ただし、上式中、Ｔ＿ｇｏｐの初期値はＴ＿ｉｎｔである。
【００６１】
次に、図１の画像タイプ別目標符号量算出部２０５の動作について、図６に示すフローチャートと共に説明する。画像タイプ別目標符号量算出部２０５は、上記の目標ビットレート算出部２０４において（１８）式により算出された現ＧＯＰの目標符号量（Ｔ＿ｇｏｐ）と、可変長符号化部１０４からのピクチャ複雑度（Ｘ＿ｐｉｃ）とを用いて、画像タイプ別に目標符号量（Ｔ＿ｐｉｃ）を算出する（図６のステップＳ５０）。
【００６２】
ここで、上記のピクチャ複雑度（Ｘ＿ｐｉｃ）を、ピクチャの発生符号量とピクチャ内の量子化パラメータの平均値との積とすると、例えば、ＭＰＥＧ−２におけるＴｅｓｔ Ｍｏｄｅｌ ５に準拠する場合、以下の（１９）式〜（２１）式で画像タイプ別に目標符号量（Ｔ＿ｐｉｃ）が求められる。
【００６３】
なお、「量子化パラメータ」とは、量子化ステップ値に対応する符号化パラメータである。量子化パラメータと量子化ステップは、例えば、ＭＰＥＧ−１では線形の関係であり、ＭＰＥＧ−２やＭＰＥＧ−４  ＡＶＣ等では非線形の関係である。ただし、以下の（１９）式〜（２１）式における（Ｉ）、（Ｐ）、（Ｂ）はＩピクチャ、Ｐピクチャ、Ｂピクチャの変数であることを示している。また、Ｋｐ，Ｋｂはそれぞれ、Ｐピクチャ，Ｂピクチャの量子化パラメータにおける、Ｉピクチャの量子化パラメータを基準とした比率であり、例えば、Ｋｐ＝１.０、Ｋｂ＝１.４である。また、Ｎ＿ｐｉｃは画像タイプ別の符号化ピクチャ枚数である。
【００６４】
Ｔ＿ｐｉｃ（Ｉ）＝Ｔ＿ｇｏｐ／Ｚ（Ｉ）          （１９）
Z(I)＝N_pic(I)＋{(N_pic(P)×X_pic(P))/(X_pic(I)×Kp)}
＋{(N_pic(P)×X_pic(P))/(X_pic(I)×Kp)}
Ｔ＿ｐｉｃ（Ｐ）＝Ｔ＿ｇｏｐ／Ｚ（Ｐ）          （２０）
Z(P)＝{(N_pic(I)×X_pic(I)×Kp)/X_pic(P)}＋N_pic(P)                ＋{(N_pic(B)×X_pic(B)×Kp)/(X_pic(P)×Kb)}
Ｔ＿ｐｉｃ（Ｂ）＝Ｔ＿ｇｏｐ／Ｚ（Ｂ）          （２１）
Z(B)＝{(N_pic(I)×X_pic(I)×Kb)/X_pic(B)}
＋{(N_pic(P)×X_pic(P)×Kb)/(X_pic(B)×Kp)＋N_pic(B)}
次に、画像タイプ別量子化ステップ算出部２０６の動作について、図７のフローチャートと共に説明する。画像タイプ別量子化ステップ算出部２０６は、画像タイプ別目標符号量算出部２０５により、（１９）式〜（２１）式により算出された上記の画像タイプ別目標符号量（Ｔ＿ｐｉｃ（ｎ）：ｎはＧＯＰ番号）と前ＧＯＰの画像タイプ別目標符号量（Ｔ＿ｐｉｃ（ｎ−１））との比から画像タイプ別の量子化ステップを設定する（図７のステップＳ６０）。
【００６５】
すなわち、ＭＰＥＧ−４  ＡＶＣを例にとると、量子化ステップと発生符号量は比例関係にあることから、画像タイプ別量子化ステップ算出部２０６は、画像タイプ別目標符号量（Ｔ＿ｐｉｃ（ｎ）：ｎはＧＯＰ番号）と前ＧＯＰの画像タイプ別目標符号量（Ｔ＿ｐｉｃ（ｎ−１））との比により、画像タイプ別に量子化ステップを設定する。すなわち、ＧＯＰ番号ｎの量子化ステップをＱｓｔｅｐ＿ｇｏｐ（ｎ）、ＧＯＰ番号（ｎ−１）の量子化ステップをＱｓｔｅｐ＿ｇｏｐ（ｎ−１）とすると、画像タイプ別量子化ステップ算出部２０６は、ＧＯＰ番号ｎの画像タイプ別目標符号量Ｔ＿ｐｉｃ（ｎ）とＧＯＰ番号（ｎ−１）の画像タイプ別目標符号量Ｔ＿ｐｉｃ（ｎ−１）との比を用いて、以下の式で画像タイプ別量子化ステップを算出する。
【００６６】
Qstep_gop(n)＝Qstep_gop(n-1)×(T_pic(n-1)/T_pic(n))      （２２）
画像タイプ別量子化ステップ算出部２０６が、（２２）式により各ピクチャタイプ別にそれぞれ算出した画像タイプ別量子化ステップは、図１の量子化部１０３に入力され、ここで直交変換部１０２から供給される周波数変換係数の量子化を行わせる。これにより、量子化部１０３で生成された量子化係数は、可変長符号化部１０４にて可変長符号化されて動画像信号の符号化ビットストリームを生成する。
【００６７】
なお、以上で求めた量子化ステップを、ＧＯＰ内のピクチャ別に算出してもよいし、また、ピクチャ内の符号化単位であるマクロブロック毎に算出してもよい。これらの算出方法は、例えば、ＭＰＥＧ−２におけるＴｅｓｔ Ｍｏｄｅｌ ５のような方法を適用してもよいし、他の方法であってもよい。
【００６８】
以上説明したように、本実施の形態では、バッファ充足率（BktFlnsRate）から所定の非線形関数である指数関数に従って符号量配分率（BitDistRate）を算出し、その符号量配分率（BitDistRate）とＧＯＰの過不足符号量(dS_gop)とから現ＧＯＰの目標符号量(T_gop)を算出し、現ＧＯＰの目標符号量(T_gop)と一つ前のＧＯＰの目標符号量との比に応じて量子化ステップを設定し、その量子化ステップで動画像信号を量子化することで可変ビットレート制御を行う。従って、本実施の形態によれば、例えば、バッファ充足率（BktFlnsRate）が少ないときは、符号量配分率（BitDistRate）を上記の指数関数の設定により従来よりも小さくすることで、量子化ステップの変化率を従来の比例関係に比べ小さくすることができる。
【００６９】
すなわち、基準目標ビットレートから過不足符号量を基にした符号量配分率は、従来の比例関係では（９）式を基に表現されていたのに対して、本実施の形態では（１３）式を基に指数関数的に設定されるので、バッファ充足率が少ない場合には、量子化ステップの変化率を小さくできる。
【００７０】
このことについて具体例を挙げて説明する。バッファ充足率（BktFlnsRate）が少ない例として、例えばBktFlnsRate＝０.１であるときは、本実施の形態では符号量配分率（BitDistRate）は（１３）式からBitDistRate＝（２０.１）−１＝０.０７である。一方、従来は（９）式からBitDistRate＝０.１である。よって、本実施の形態の方が、符号量分配率（BitDistRate）は小さくなる。
【００７１】
また、ＧＯＰの過不足符号量(dS_gop)が負、すなわち、ＧＯＰの発生符号量が目標符号量(T_gop)を超えた場合、配分レート（dDistRate）は（１５）式及び（１６）式より負となり、（１７）式より現ＧＯＰ目標ビットレート（TB_gop）は、一つ前のＧＯＰ目標ビットレートより小さくなる。例えば、dS_gop＝−１０００００[bits]、ＰＲ＝３０[Hz]、Ｎ＝１５、一つ前のＧＯＰ目標ビットレート(TB_gop)を３０００００[bits]とすると、本実施の形態では、符号量配分率（BitDistRate）が上記のように０.０７であるから、配分符号量（dDistBit）は（１５）式より−７０００[bits]（＝−１０００００×０.０７）となる。これに対し、従来は符号量配分率（BitDistRate）が上記のように０.１であるから、配分符号量（dDistBit）は（１５）式より−１００００[bits]（＝−１０００００×０.１）となる。
【００７２】
従って、配分レート（dDistRate）は（１６）式より、本実施の形態では−１４０００[bps]（＝−７０００×（３０／１５））、従来は−２００００[bps]（＝−１００００×（３０／１５））となる。これにより、現ＧＯＰの目標ビットレート(TB_gop)は、（１７）式より本実施の形態では、２８６０００[bps]（＝３０００００＋（−１４０００））となるのに対し、従来は２８００００[bps]（＝３０００００＋（−２００００））となる。従って、現ＧＯＰの目標符号量（T_gop）は、（１８）式により本実施の形態では、１４３０００[bits]（＝２８６０００×（１５／３０））となるのに対し、従来は１４００００[bits]（＝２８００００×（１５／３０））となる。
【００７３】
ここで、（１９）式〜（２１）式よりピクチャタイプ別目標符号量(T_pic)は、現ＧＯＰの目標符号量（T_gop）に比例し、また、（２２）式より量子化ステップの変化率は現在のピクチャタイプ別目標符号量と前ＧＯＰのピクチャタイプ別目標符号量との比（T_pic(n-1)/T_pic(n))により表現されるため、現ＧＯＰの目標符号量（T_gop）が従来に比べて大きな値の本実施の形態の方が、現在のピクチャタイプ別目標符号量(T_pic(n))と一つ前のピクチャタイプ別目標符号量(T_pic(n-1))の差は小さくなる。従って、本実施の形態の方が従来よりも量子化ステップの変化率が小さくなる。
【００７４】
この結果、符号化の難しいシーケンスと簡単なシーケンスが交互に続くような場合に、本実施の形態では難しいシーケンスにおいて量子化ステップの変化率を小さくすることができ、これにより符号化の難しいシーケンスの後半部分における画質劣化を従来よりも抑制することが可能である。また、符号化が易しい（簡単な）シーケンスにおいても、本実施の形態では同様に量子化ステップの変化率を従来よりも小さくすることができるため、必要以上に量子化ステップを小さくして余分な符号量を使うことがなく、符号化が易しいシーケンスにおいて極端に画質が良くなるという現象を抑制でき、シーケンス間で画質を保つことが可能である。
【００７５】
次に、本発明の他の実施の形態について説明する。図１０は本発明になる動画像符号化装置の他の実施の形態の要部のブロック図を示す。同図中、図１と同一構成部分には同一符号を付し、その説明を省略する。この実施の形態は、図１０に示すように、符号化制御部２００’が、図１の符号化制御部２００に、量子化ステップ算出モード切替部２０７、ピクチャ単位符号量制御部２０７、スイッチＳＷ１、及びスイッチＳＷ２を追加した構成とすることにより、予め規定された仮想的なバッファである符号化バッファ（Coding Picture Buffer：ＣＰＢ）容量を守る（アンダーフローを防ぐ）ための制御により、符号化規格を遵守し、かつ、従来に比べ画質を均一化したビットストリームを生成するための符号量制御モード切替手法の実施の形態である。すなわち、この実施の形態は、図１と共に説明した上記の実施の形態に、ピクチャ単位の固定ビットレート符号量制御と、符号量制御モード切替手法とを付加したものである。
【００７６】
次に、この実施の形態の動作について図１１及び図１２を併せ参照して説明する。図１１は本発明になる動画像符号化装置の他の実施の形態におけるＣＰＢアンダーフロー防止処理のフローチャートを示す。このフローチャートはピクチャ単位で実行される。また、図１２はこの実施の形態における時間に伴うＣＰＢ充足量の変化とＣＰＢ充足量によるアンダーフロー防止の様子を示す。
【００７７】
図１０の量子化ステップ算出モード切替部２０７は、可変長符号化部１０４から出力された符号を内部に設けられた仮想的なバッファであるＣＰＢに蓄積すると共に、スルーで符号化過不足符号量算出部２０１又はピクチャ単位符号量制御部２０８へスイッチＳＷ１を介して出力する。また、量子化ステップ算出モード切替部２０７は、ＣＰＢの蓄積符号量であるＣＰＢ充足量により、符号量制御モード（以下、ｒｃ＿ｍｏｄｅ）を可変ビットレート（ＶＢＲ）モードと固定ビットレート（ＣＢＲ）モードを切り替えるため、まず画像目標符号量である最大ピクチャビット量を設定する（図１１のステップＳ１０１）。
【００７８】
ここでは、シーンチェンジ直後のＩピクチャにのみ初期設定のピクチャターゲット（目標符号量）を用い、そうでない場合は前のＩピクチャの発生符号量を最大ピクチャビット量として設定する。最大ピクチャビット量をMaxPictureBitsとすると、最大ピクチャビット量は以下の式で表される。ここで、Ｔ（Ｉ）はＩピクチャの目標符号量、Ｓ（Ｉ）はＧＯＰで１つ前のＩピクチャの発生符号量である。
【００７９】
（ｉ）シーンチェンジ直後のＩピクチャ
MaxPictureBits＝Ｔ（Ｉ）              （２３）
（ii）シーンチェンジ直後のＩピクチャ以外のピクチャ
MaxPictureBits＝Ｓ（Ｉ）              （２４）
更に、上式で、最大ピクチャビット量MaxPictureBitsを大きくすることでＣＰＢ充足量に対して余裕を持たせるため、予め定めたMaxPicBitsRatio（≧１.０）を乗算する。
【００８０】
MaxPictureBits＝MaxPictureBits×MaxPicBitsRatio    （２５）
この（２５）式で表される最大ピクチャビット量MaxPictureBitsがステップＳ１０１で設定される最大ピクチャビット量である。
【００８１】
続いて、量子化ステップ算出モード切替部２０７は、この最大ピクチャビット量MaxPictureBitsがＣＰＢ充足量以上であるかどうか判定し（図１１のステップＳ１０２）、ＣＰＢ充足量以上であるときには、符号量制御モードがＶＢＲモードであるかどうか判定する（図１１のステップＳ１０３）。最大ピクチャビット量MaxPictureBitsがＣＰＢ充足量以上の場合、次のピクチャをＶＢＲモードで符号化した場合に、ＣＰＢの充足量を下回ってアンダーフローを起こしてしまう可能性があると判断し、マクロブロック単位で符号量を制御するＣＢＲモードの動作に切り替える（図１１のステップＳ１０４）。
【００８２】
この切り替えにより図１０のスイッチＳＷ１が端子ａ側から端子ｂ側へ切り替わると共に、スイッチＳＷ２が端子ｃ側から端子ｄ側へ切り替わる。ＣＢＲモードでは仮想バッファとピクチャターゲットを更新し、符号量制御のための初期設定をする。
【００８３】
すなわち、CpbFullnessをＣＰＢの充足量とすると、符号量制御モード（ｒｃ＿ｍｏｄｅ）が
MaxPictureBits≧CpbFullness
で、ＶＢＲモードのときには、符号量制御モード（ｒｃ＿ｍｏｄｅ）はＣＢＲモードとなる（図１１のステップＳ１０４）。
【００８４】
上記のステップＳ１０４で符号量制御モードがＣＢＲモードに設定された場合、又は上記のステップＳ１０３で符号量制御モードがＶＢＲモードではない（ＣＢＲモードである）と判定された場合、ピクチャ単位符号量制御部２０８は、ＧＯＰ初期量子化ステップを用いて仮想バッファｄ０（）（カッコ内はピクチャタイプを示す）を次の（２６）式に基づいて初期化する（図１１のステップＳ１０５）。
【００８５】
ｄ０（Ｉ）＝ｉｎｉｔｉａｌＱＳ（Ｉ）×ｒ／ＱＳ＿ＭＡＸ
ｄ０（Ｐ）＝Ｋｐ×ｄ０（Ｉ）
ｄ０（Ｂ）＝Ｋｂ×ｄ０（Ｉ）                                （２６）
ただし、（２６）式中、ｉｎｉｔｉａｌＱＳ（Ｉ）はＩピクチャの初期量子化ステップ、ｒは量子化ステップの応答速度を示すリアクションパラメータ、ＱＳ＿ＭＡＸは量子化ステップの最大値である。また、ＫｐはＩピクチャのとの量子化ステップ比を示すＰピクチャの量子化ステップ比率、ＫｂはＢピクチャの量子化ステップ比率である。
【００８６】
続いて、ピクチャ単位符号量制御部２０８は、ＧＯＰ目標符号量（ＧＯＰ割り当て符号量Ｇ）を設定する（図１２のステップＳ１０６）。ＣＢＲモードの場合、確実な符号量制御のためのピクチャターゲット（目標符号量）を算出する。このとき、現ピクチャがシーンチェンジ直後のＧＯＰに属しているかどうかでＧＯＰ目標符号量（ＧＯＰ割り当て符号量Ｇ）の算出方法が変わるので、ピクチャ単位でシーンチェンジが発生したかどうか検出する。１つのＧＯＰを構成するピクチャの枚数は、シーンチェンジが発生しない場合は一定枚数であるが、シーンチェンジが発生したピクチャはＩピクチャとなり、新しいＧＯＰの先頭ピクチャとして符号化される。そこで、シーンチェンジが発生したピクチャの符号化順（伝送順）で直後のＧＯＰ（以下、これをシーンチェンジ直後のＧＯＰという）であるかどうか検出する。このシーンチェンジ直後のＧＯＰは、新しいＧＯＰの先頭ピクチャ（シーンチェンジ検出によりＩピクチャとなったピクチャ）を含むＧＯＰとなる。
【００８７】
（Ａ）シーンチェンジ直後のＧＯＰではない場合、ＧＯＰの目標ビットレート比（rate_ratio）によってＧＯＰ残符号量を制御する。ＧＯＰの目標ビットレート比（rate_ratio）は以下の式で表される。
【００８８】
rate_ratio＝Bitrate_For_Previous/Bitrate_For_Current      （２７）
ただし、（２７）式中、Bitrate_For_Previousは前ＧＯＰのビットレート、Bitrate_For_Currentは現ＧＯＰの目標ビットレートである。
【００８９】
ステップＳ１０６で算出するＧＯＰ目標符号量、すなわちＧＯＰ割り当て符号量（Ｇ）は、前のＧＯＰの発生ビットレート（Coded_Bitrate）と（２７）式の目標ビットレート比（rate_ratio）とに基づいて、次式により算出される。これにより，急激なビットレート低下を抑制する。
【００９０】
Ｇ＝(Coded_Bitrate×Ｎ×rate_ratio/picture_rate)    （２８）
ＧＯＰ残符号量（Ｒ）はＧＯＰ割り当て符号量（Ｇ）に等しい。
【００９１】
Ｒ＝Ｇ                （２９）
次に、ピクチャ単位符号量制御部２０８は、ピクチャタイプ別目標符号量を設定する（図１１のステップＳ１０７）。符号化順（伝送順）で次のピクチャまで巻き込まないようにＣＰＢ増加分（Ｐ，Ｂは半分）（PictureIncBits）を最大（Ｔｍａｘ）とする。ただし、PictureIncBitsはピクチャ単位のＣＰＢ増加量、Ｔｍａｘはピクチャタイプ別目標符号量の最大値である。これらの間には、次式の関係がある。
【００９２】
（ａ）Ｉピクチャの場合
Ｔｍａｘ＝PictureIncBits          （３０）
（ｂ）Ｐピクチャ、Ｂピクチャの場合
Ｔｍａｘ＝PictureIncBits／２        （３１）
更に、ピクチャタイプ別目標符号量の最大値（Ｔｍａｘ）は、前の同タイプピクチャ発生符号量（Ｓ）と比較して、次式に示すように小さい方を次のピクチャのピクチャタイプ別目標符号量の最大値とする。
【００９３】
Ｔｍａｘ＝ｍｉｎ(Ｔｍａｘ,Ｓ)      （３２）
小さい方をとる理由は、ピクチャタイプ別目標符号量の最大値Ｔｍａｘを前の同タイプのピクチャと同程度の発生符号量（Ｓ）かそれ以下とすれば、ＣＰＢのアンダーフローを防ぐことができるためである。
【００９４】
なお、ピクチャタイプ別目標符号量の最大値Ｔｍａｘは、ＣＰＢのピクチャ単位のバッファ増加分（PictureIncBits）及び前の同タイプのピクチャ発生符号量（Ｓ）に基づき決定される。ここで、ＣＰＢにおけるピクチャ単位のバッファ増加分（PictureIncBits）とは、最大ビットレート（符号化前に定めた固定値：”MaxBitRate”とする）をピクチャレート（ＰＲ）で除算した値となり、次式で表される。
【００９５】
PictureIncBits＝MaxBitRate／ＰＲ      （３３）
また、前の同タイプのピクチャ発生符号量（Ｓ）は、シーンチェンジがない場合にのみ定義される。例えば、
Ｉ（０）、Ｐ（１）、Ｂ（２）、Ｂ（３）、Ｐ（４）、Ｂ（５）、Ｂ（６）、Ｐ（７）、Ｂ（８）、Ｂ（９）、Ｐ（１０）、Ｂ（１１）、Ｂ（１２）、Ｉ（１３）（ただし、括弧内の数字は符号化順を示す）
の順で符号化する場合、Ｉ（１３）の前の同タイプのピクチャ発生符号量Ｓは、Ｉ（０）の発生符号量のことである。同様に、例えば、Ｐ（７）の前の同タイプのピクチャ発生符号量ＳはＰ（４）の発生符号量のことを意味し、たとえば、Ｂ（３）の前の同タイプのピクチャ発生符号量ＳはＢ（２）の発生符号量を意味する。ここでは、シーンチェンジがないとしているので、ＧＯＰの構成とは関係なく、Ｉ（１３）に対するＩ（０）のように、同タイプのピクチャ発生符号量ＳはＧＯＰを跨いで異なるＧＯＰのピクチャの発生符合量を指すこともある。
【００９６】
以上により、ステップＳ１０７で設定されるピクチャタイプ別目標符号量Ｔは、以下の通りとなる。なお、Ｔ（Ｉ）はＩピクチャの目標符号量、Ｔ（Ｐ）はＰピクチャの目標符号量、Ｔ（Ｂ）はＢピクチャの目標符号量である。
【００９７】
Ｔ(Ｉ)＝R/(1.0＋N(P)・X(P)/(X(I)・Kp)＋N(B)・X(B)/(X(I)・Kb))
Ｔ(Ｉ)＝min(Tmax,max(T(I),Tmin))                              （３４）
Ｔ(Ｐ)＝R/(Kp・X(I)/X(P)＋N(P)＋N(B)・Kp・X(B)/(Kb・X(P)))
Ｔ(Ｐ)＝min(Tmax,max(T(P),Tmin))                              （３５）
Ｔ(Ｂ)＝R/(1.0・Kb・X(I)/X(B)＋N(B)＋N(P)・Kb・X(P)/(Kp・X(B)))
Ｔ(Ｂ)＝min(Tmax,max(T(B),Tmin))                              （３６）
（Ｂ）シーンチェンジ直後のＧＯＰの場合
この場合、ピクチャタイプ別目標符号量Ｔ（Ｔ（Ｉ）、Ｔ（Ｐ）、Ｔ（Ｂ））はＧＯＰ初期設定時に算出されているので、次式により画面内アクティビティ平方比によって更新する。
【００９８】
Ｔ＝Ｔ×Sqrt(CurIntAveACT/BasicActivity)                  （３７）
ただし、上式中、CurIntAveACTは現在のピクチャのアクティビティであり、BasicActivityは、アクティビティの基準値（定数）である。なお、ＧＯＰ初期設定時は、（２８）式におけるＧＯＰ割り当て符号量Ｇを（１）式のＧＯＰ基準目標符号量（Ｔ＿ｉｎｔ）とし、また、（２９）式によりＲ＝Ｇであり、このＲ（＝Ｔ＿ｉｎｔ）を（３４）式〜（３６）式に代入することにより、（３７）式右辺のピクチャタイプ別目標符号量Ｔ（Ｔ（Ｉ）、Ｔ（Ｐ）、Ｔ（Ｂ））が求められる。
【００９９】
また、符号化順（伝送順）で次のピクチャまで巻き込まないように、ピクチャ単位のＣＰＢ増加量PictureIncBitsをＩピクチャの場合は最大（Ｔｍａｘ）とし、Ｐピクチャ、Ｂピクチャの場合は最大値（Ｔｍａｘ）の２倍とする。すなわち、次式で表される。
【０１００】
（ａ）Ｉピクチャの場合
Ｔｍａｘ＝PictureIncBits          （３８）
（ｂ）Ｐピクチャ、Ｂピクチャの場合
Ｔｍａｘ＝PictureIncBits／２      （３９）
更に、ピクチャタイプ別目標符号量Ｔは、その最小値（Ｔｍｉｎ）と比べて大きい方と、その最大値（Ｔｍａｘ）と比較して小さい方を次のピクチャのピクチャタイプ別目標符号量Ｔとする。
【０１０１】
Ｔ＝ｍｉｎ(Ｔｍａｘ，ｍａｘ（Ｔ,Ｔｍｉｎ）)      （４０）
以上で、図１１のステップＳ１０７でのピクチャタイプ別目標符号量が設定される。続いて、ピクチャ単位符号量制御部２０８はマクロブロック毎に符号量制御を行うことで、ＣＰＢアンダーフローを防止する（図１１のステップＳ１０８）。ここで、ステップＳ１０８のマクロブロック単位での符号量制御については、以上で求められた、ピクチャタイプ別の目標符号量を基準とした制御方法であればよく、例えばＴＭ５による方式であってもよいし、他の方法であってもよい。
【０１０２】
ここでは、一例としてＴＭ５の方式によるマクロブロック単位の固定ビットレート量子化ステップ算出方法を示す。（２６）式によってピクチャタイプ別に設定した仮想バッファｄ０（Ｉ）、ｄ０（Ｐ）、ｄ０（Ｂ）を用いて、量子化ステップをマクロブロック単位のフィードバック制御で求める。ｊ番目のマクロブロックの符号化に先立ち、ピクチャタイプ別の仮想バッファｄ０の占有量ｄ[j](I)、ｄ[j](P)、ｄ[j](B)を以下の式により求める。
【０１０３】
ｄ[j](I)＝d0(I)＋B[j-1]−(T(I)×(j-1)/NumMB)
ｄ[j](P)＝d0(P)＋B[j-1]−(T(P)×(j-1)/NumMB)
ｄ[j](B)＝d0(B)＋B[j-1]−(T(B)×(j-1)/NumMB)
ここで、B[j]はピクチャ内のｊ番目までのマクロブロックを符号化した際に発生した符号量、また、NumMBはピクチャ内のマクロブロック個数である。また、ｊ＝０の場合は、上式は次のようになる。
【０１０４】
d[0](I)＝d0(I)
d[0](P)＝d0(P)
d[0](B)＝d0(B)
ｊ番目のマクロブロックに対するＩピクチャ、Ｐピクチャ、Ｂピクチャの各量子化ステップQstep[j](I)、Qstep[j](P)、Qstep[j](B)は、Ｉピクチャ、Ｐピクチャ、Ｂピクチャの各量子化パラメータをそれぞれQP[j](I)、QP[j](P)、QP[j](B)とすると、以下の式で求められる。
【０１０５】
QP[j](I)＝d[j](I)×５１／ｒ        
Qstep[j](I)＝２((QP[j](I)−4)/6)        (４１ａ)
QP[j](P)＝d[j](P)×５１／ｒ    
Qstep[j](P)＝２((QP[j](P)−4)/6)        (４１ｂ)
QP[j](B)＝d[j](B)×５１／ｒ  
Qstep[j](B)＝２((QP[j](B)−4)/6)        (４１ｃ)
ステップＳ１０８の符号量制御後は、図１に示した実施の形態と同様の動作によるピクチャ符号化が行われる。
【０１０６】
なお、図１０の量子化ステップ算出モード切替部２０７は、図１１のステップＳ１０２で最大ピクチャビット量がＣＰＢ充足量未満であると判定したときは、符号量制御モード（ｒｃ＿ｍｏｄｅ）を可変ビットレート（ＶＢＲ）モードとし、スイッチＳＷ１を端子ａ側に接続すると共にスイッチＳＷ２を端子ｃ側に接続し、前述したピクチャ単位符号量制御部２０８の処理は行わない。すなわち、ＣＰＢ充足量に余裕ができたため、ＶＢＲモードでの符号化に戻る（図１１のステップＳ１０９）。
【０１０７】
以上の図１１の処理について図１２と共に更に説明する。シーンチェンジがない場合に、Ｉ（０）、Ｐ（１）、Ｂ（２）、Ｂ（３）、Ｐ（４）、Ｂ（５）、Ｂ（６）、・・・（ただし、括弧内の数字は符号化順を示す）の順で符号化する場合、Ｉ（０）ピクチャをＶＢＲモードで符号化すると、右肩上がりの斜線で示される固定値のＣＰＢ増加分（PictureIncBits）だけ発生符号量Ｓ（Ｉ（０））が増加する。
【０１０８】
ここで、図１２に３０１で示す、発生符号量Ｓ（Ｉ（０））の最大ピクチャビット量（MaxPicBitsRatio）倍の値が、同図に点線３０２で示すＣＰＢアンダーフロー警戒線であり、ＣＰＢ充足量（CpbFullness）が、このＣＰＢアンダーフロー警戒線を下回ると、ＣＰＢアンダーフローを警戒し、ＣＢＲモードで動作する。図１２の例では、Ｐ（４）ピクチャの発生符号量によりＣＰＢアンダーフロー警戒線３０２を下回る。このとき、（２４）式、（２５）式と、
S(I(0))×MaxPictureBits≧CpbFullness
の条件で、ＶＢＲモードのときには、符号量制御モードはＣＢＲモードに切り替わる（図１１のステップＳ１０４）。
【０１０９】
続いて、Ｂ（５）ピクチャの目標符号量Ｔ（Ｂ（５））は、（３２）式及び（３６）式から、Ｂ（５）のピクチャタイプ別目標符号量の最大値Ｔｍａｘ（Ｂ（５））と、Ｂ（５）ピクチャの前の同タイプのＢ（３）のピクチャ発生符号量Ｓ（Ｂ（３））（これは（３２）式のＳに相当）と、Ｔ（Ｂ（５））の中から最小のものを選択される。ここでは、Tmax（B(5)）が選択されるものとすると、これは（３１）式よりPictureIncBits/2である。
【０１１０】
すなわち、この場合の、Ｂ（５）ピクチャの目標符号量Ｔ（Ｂ（５））は、ＣＰＢの増加分（PictureIncBits）の１／２倍の値を超えないため、図１２に３０３で示すように、マクロブロック制御により、ほぼ正確にピクチャ毎のＣＰＢの増加分（PictureIncBits）の１／２倍以下に発生符号量が抑えられ、図１２に示すように、ＣＰＢ充足量はＣＰＢアンダーフロー警戒線３０２より上となる。
【０１１１】
仮に、ピクチャＢ（５）の符号化時にアンダーフロー警戒線３０２を下回っても、次のピクチャＢ（６）も同様にＣＰＢ増加分の１／２倍程度で符号化されるため、これを繰り返すと、いずれはＣＰＢ充足量はアンダーフロー警戒線３０２より上となる。よって、本実施の形態により、ＣＰＢのアンダーフローを防止することができる。
【０１１２】
以上の図１０〜図１２と共に説明した実施の形態によれば、ＶＢＲモードではスイッチＳＷ１を端子ａ側に接続し、かつ、スイッチＳＷ２を端子ｃ側に接続して、図１等と共に説明した先の実施の形態による可変ビットレートの量子化ステップで量子化部１０３を制御しＧＯＰ単位での量子化パラメータ制御を行いながら、最大ピクチャビット量がＣＰＢ充足量以上の時には、スイッチＳＷ１を端子ｂ側に接続し、かつ、スイッチＳＷ２を端子ｄ側に接続してＣＢＲモードとし、ピクチャ単位符号量制御部２０８から出力される固定ビットレートの量子化ステップで量子化部１０３を制御することで、規定されたバッファ容量を保ちながら、ＶＢＲ制御が可能であるため、符号化の規格に沿ったビットストリームを従来に比べ高画質で生成することができる。
【０１１３】
なお、本発明は以上の実施の形態に限定されるものではなく、本発明は上記した装置の機能をプログラムによりコンピュータに実現させるようにしてもよい。このプログラムは、記録媒体から読み取られてコンピュータに取り込まれてもよいし、通信ネットワークを介して伝送されてコンピュータに取り込まれてもよい。また、本発明は、量子化・符号化を行う信号の圧縮方式に適用可能であり、例えば、動画像信号だけでなくオーディオ信号にも適用可能である。
【図面の簡単な説明】
【０１１４】
【図１】本発明の動画像符号化装置の一実施の形態のブロック図である。
【図２】図１中の符号化過不足符号量算出部の動作説明用フローチャートである。
【図３】図１中のバッファ充足率算出部の動作説明用フローチャートである。
【図４】図１中の符号配分率算出部の動作説明用フローチャートである。
【図５】図１中の目標ビットレート算出部の動作説明用フローチャートである。
【図６】図１中の画像タイプ別目標符号量算出部の動作説明用フローチャートである。
【図７】図１中の画像タイプ別量子化ステップ算出部の動作説明用フローチャートである。
【図８】図１中の符号配分率算出部におけるバッファ充足率と符号配分率の関係（線形）の一例を表す図である。
【図９】図１中の符号配分率算出部におけるバッファ充足率と符号配分率の関係（非線形）の他の例を表す図である。
【図１０】本発明の動画像符号化装置の他の実施の形態の要部のブロック図である。
【図１１】図１０の要部の動作説明用フローチャートである。
【図１２】本発明の他の実施の形態における時間に伴うＣＰＢ充足量の変化とＣＰＢ充足量によるアンダーフロー防止の様子を示す図である。
【符号の説明】
【０１１５】
１００  動画像符号化部
１０１  予測部
１０２  直交変換部
１０３  量子化部
１０４  可変長符号化部
１０５  逆量子化部
１０６  逆直交変換部
１０７  画像メモリ部
２００、２００’  符号化制御部
２０１  符号化過不足符号量算出部
２０２  バッファ充足率算出部
２０３  符号配分率算出部
２０４  目標ビットレート算出部
２０５  画像タイプ別目標符号量算出部
２０６  画像タイプ別量子化ステップ算出部
２０７  量子化ステップ算出モード切替部
２０８  ピクチャ単位符号量制御部
ＳＷ１、ＳＷ２  スイッチ
【図１】
2007116655.tif 000003
【図２】
2007116655.tif 000004
【図３】
2007116655.tif 000005
【図４】
2007116655.tif 000006
【図５】
2007116655.tif 000007
【図６】
2007116655.tif 000008
【図７】
2007116655.tif 000009
【図８】
2007116655.tif 000010
【図９】
2007116655.tif 000011
【図１０】
2007116655.tif 000012
【図１１】
2007116655.tif 000013
【図１２】
2007116655.tif 000014