(57)【特許請求の範囲】
【請求項１】
復号側でのバッファの占有量を推測するための仮想バッファを参照しながら符号化を実行する動画像符号化装置において、
１画像が画面内符号化されたときの発生符号量を推定する発生符号量推定手段と、
前記１画像分の推定された発生符号量が取り去られたときの前記仮想バッファのバッファ占有量を推定するバッファ占有量推定手段と、
前記仮想バッファのバッファ占有量に対ししきい値を設定し、当該しきい値と１画像が符号化された直後の前記推定されたバッファ占有量とを比較して、当該バッファ占有量が前記しきい値を下回った場合に、フレームレートをバッファ占有量が前記しきい値を下回る前のレートより低いレートに更新するフレームレート更新手段と、
所望のフレームレートを指定するフレームレート指定手段と、
前記フレームレート更新手段により選択されたフレームレートと、前記指定されているフレームレ−トとの差が所定値以上か否かを判定するフレームレート判定手段と、
前記判定されたフレームレートの差が所定値未満の場合は画面内符号化を実行し、前記判定されたフレームレートの差が所定値以上である場合は画面間符号化によって符号化を実行するように制御する符号化制御手段と、
を具備することを特徴とする動画像符号化装置。
【請求項２】
前記フレームレート更新手段は、前記仮想バッファのバッファ占有量に対し複数のしきい値を設定し、当該複数のしきい値のうち、最も大きい値を有するしきい値から最も低い値を有するしきい値によって区切られた複数の領域で、１画像が符号化された直後の前記仮想バッファのバッファ占有量が低い領域に属するほど、フレームレートが順に低くなるように更新することを特徴とする請求項１記載の動画像符号化装置。
【請求項３】
過去のある時間内に画面内符号化されたフレームの数を算出するフレーム数算出手段と、
前記算出されたフレーム数が所定数未満か否かを判定するフレーム数判定手段と、
前記フレーム数が所定数以上の場合は画面間符号化を実行するように制御する制御手段と、
をさらに具備することを特徴とする請求項１又は２記載の動画像符号化装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、動画像を圧縮したり、圧縮された動画像を伸張するための動画像符号化装置に関し、特に、圧縮された動画像を伸張して鮮明な画像を出力するための動画像符号化装置に関する。
【０００２】
【従来の技術】
この発明での動画像符号化装置とは、ＩＴＵ−Ｔ（International Telecommunication Union-Telecommunication sector）勧告のＨ．２６ｘやＩＳＯ／ＩＥＣ（International Standards Organization/International Electrotechnical Commission）標準のＭＰＥＧ（Moving Picture Experts Group）に代表される動画像符号化方式によって、動画像を符号化するための装置である。すなわち、動画像符号化装置は、動き補償および直交変換（たとえば、離散コサイン変換）等を用いてフレーム単位で符号化を実行する。
【０００３】
ＩＴＵ−Ｔ勧告のＨ．２６ｘやＩＳＯ／ＩＥＣ標準のＭＰＥＧに代表される動画像符号化方式は、一般に、入力される映像信号に対して空間的および時間的相関関係により圧縮をかける。この圧縮により得られるデータをもとに、所定の順序にしたがってさらに可変長符号化を行い、符号列（ビットストリーム）を生成する。
【０００４】
動画像符号化装置は、所定の符号化パラメータにしたがって指定された符号量のビットストリームを出力しなければならない。さらにデコーダ側のバッファにおいて、オーバーフローやアンダーフローが生じないように、エンコーダ側でデコーダ側のバッファの占有量を想定して発生符号量を制御しなくてはならない。このバッファは、ＶＢＶ（Video Buffering Verifier）バッファと呼ばれる。また、単に仮想バッファと呼ぶこともある。ＶＢＶバッファの容量は、ＭＰＥＧ−４ではプロファイルとレベルによって上限値が決まっている。発生符号量は、フレームをマクロブロック（ＭＢ：MacroBlock）ごとにＤＣＴが実行された結果得られた離散コサイン変換（ＤＣＴ：Discrete Cosine Transform）係数を量子化するために使用される量子化スケールにより制御される。一般に、発生符号量と量子化スケールとは反比例の関係にある。この性質を利用して発生符号量を自在に変化させることが可能である。
【０００５】
しかし、一般的に量子化スケールには制限があるため、量子化スケールだけで発生符号量を制御することは不可能である。そこで、発生符号量が目標値よりも多い場合は、フレームスキップ数が増やされる。フレームスキップ数を増やすことで、符号化すべきフレームを遅らせ、ＶＢＶバッファのアンダーフローをふせぐことができる。また、発生符号量が目標値よりも少ない場合は、スタッフィングが実行される。スタッフィングは、冗長なビットを挿入することで、ＶＢＶバッファのオーバーフローをふせぐ。
【０００６】
図１は、仮想バッファを制御する従来の方法を示す図であって、時間に対する仮想バッファのバッファ占有量を示す。
フレームスキップの制御方法としては、ＶＢＶバッファにある境界値（Ｂ（ｍｉｎ））を設ける。これを下回る場合（図１に示される時刻ｔ４）はフレームスキップ数を増やし、境界値を越すまでスキップすることでバッファ量を増加させる。
【０００７】
【発明が解決しようとする課題】
しかしながら、この方法によると、発生符号量が多い状態が続く場合は、バッファ占有量が少ない状態が続き、バッファ占有量が境界値周辺を上下動する。たとえば、図１に示されている時刻ｔ４と時刻ｔ５のように上下動する。ゆえに、フレームスキップ数を増やしてバッファの回復を行う動作と所定のフレームスキップの動作とが繰り返される。その結果、フレーム間隔が不安定な状態となり見た目にも非常に品質が悪くなる。
【０００８】
さらに、画質の向上やエラー耐性、ランダムアクセス性を考慮して、ビットストリーム中にＩ−ＶＯＰ（Ｉ−ＶＯＰ：Intra-Video Object Plane）を挿入する場合がある。Ｉ−ＶＯＰは比較的符号量が多いため、頻繁にＩ−ＶＯＰを挿入すると、ＶＢＶバッファがアンダーフロー傾向になる。また、前記境界値周辺でＩ−ＶＯＰを挿入することにより急激にフレームスキップ数が増えるという問題がある。
【０００９】
そこで、これら従来における問題に鑑み、この発明の目的は、動画像の見た目の品質を向上させ、スムーズに安定した動画像が再生されることが可能になる動画像符号化装置を提供することである。
【００１０】
【課題を解決するための手段】
上記目的を達成するためにこの発明は、復号側でのバッファの占有量を推測するための仮想バッファを参照しながら符号化を実行する動画像符号化装置において、
１画像が画面内符号化されたときの発生符号量を推定する発生符号量推定手段と、
前記１画像分の推定された発生符号量が取り去られたときの前記仮想バッファのバッファ占有量を推定するバッファ占有量推定手段と、
前記仮想バッファのバッファ占有量に対ししきい値を設定し、当該しきい値と１画像が符号化された直後の前記推定されたバッファ占有量とを比較して、当該バッファ占有量が前記しきい値を下回った場合に、フレームレートをバッファ占有量が前記しきい値を下回る前のレートより低いレートに更新するフレームレート更新手段と、
所望のフレームレートを指定するフレームレート指定手段と、
前記推定されたフレームレートと、前記指定されているフレームレ−トとの差が所定値以上か否かを判定するフレームレート判定手段と、
前記判定されたフレームレートの差が所定値未満の場合は画面内符号化を実行し、前記判定されたフレームレートの差が所定値以上である場合は画面間符号化によって符号化を実行するように制御する符号化制御手段と、
を具備することを特徴とするものである。
【００１１】
この動画像符号化装置は、Ｉ−ＶＯＰ符号化後の仮想バッファを予測し、その予測値から得られるフレームレートが現在のフレームレートから大きく変動するときは、Ｉ−ＶＯＰの符号化を行わない。
【００１２】
また、仮想バッファに複数の制御ポイントを設け、そのポイントごとに異なるフレームレートを設定するフレームレート更新部を設ける。この複数ポイントごとに設定されたフレームレートをビデオの符号化部に送り、符号化部は指定されたフレームレートにしたがって入力される画像をスキップし、符号化を行う。
【００１３】
さらに、仮想バッファのバッファ占有量から所定の時間内に含まれるべきＩ−ＶＯＰの数を制御し、バッファアンダーフローを抑制する。
【００１４】
【発明の実施の形態】
以下、図面を参照してこの発明の動画像符号化装置の実施形態を説明する。
（第１の実施形態）
図２は、第１の実施形態における動画像符号化装置の電気的な内部構成を示す機能ブロック図である。
この発明の動画像符号化装置は、符号化部１、出力バッファ２、仮想バッファ３、フレームレート更新部４、発生符号量制御部５、符号化モード設定部６、および装置制御部７からなる。
【００１５】
符号化部１は、符号化するべき画像信号を画像入力装置から入力する。画像入力装置は、ディジタルビデオカメラ、あるいは録画再生機器のような動画像信号の信号源である。入力した画像信号が、所定の動画像圧縮方式、すなわち、ＩＳＯ／ＩＥＣ標準のＭＰＥＧ−４方式やＩＴＵ−Ｔ勧告のＨ．２６３方式、またはこれらを変更した方式にしたがって、符号化される。符号化は、動画像圧縮方式にしたがって、入力した画像信号に含まれるフレームそれぞれを所定のマクロブロックに分割する。符号化モード設定部６から、各マクロブロックを符号化する符号化モード（イントラ符号化またはインター符号化）が入力される。
【００１６】
以下では、ＭＰＥＧ−４（Moving Picture Experts Group Phase 4）における動画像符号化方式について述べる。
映像信号は、複数のビデオオブジェクトプレーン（ＶＯＰ：Video Object Plane）から構成される。ＶＯＰは矩形状の場合、ＭＰＥＧ−１、２におけるフレームおよびフィールドに相当する。ＶＯＰ単位で空間的および時間的相関関係により圧縮を行う。ＶＯＰは、輝度信号と色差信号を有して、複数のＭＢから構成される。ＭＢは、輝度信号に対して縦横１６画素からなる。空間的圧縮および時間的圧縮は、このＭＢ単位に実行される。空間的圧縮では、ＤＣＴと量子化によって画像が圧縮される。時間的圧縮では、動き補償（ＭＣ：Motion Compensation）によって、画像が圧縮される。
【００１７】
ＶＯＰ単位の圧縮方法には、空間的圧縮のみで符号化される画面内符号化（イントラ符号化）と、空間的圧縮と時間的圧縮によって符号化される画面間符号化（インター符合化）がある。画面内符号化されたＶＯＰは、Ｉ−ＶＯＰ（Intra-VOP）と呼ばれる。画面間符号化されたＶＯＰは、Ｐ−ＶＯＰ（Predictive-VOP）とＢ−ＶＯＰ（Bi-directionally predictive-VOP）との２種類がある。Ｐ−ＶＯＰは、参照ＶＯＰとして時間的に前に符号化されたＶＯＰのみが参照されたＶＯＰであって、片方向のＭＣが実行されて、符号化されたＶＯＰである。また、Ｂ−ＶＯＰは、参照ＶＯＰとして時間的に前後に符号化されたＶＯＰが参照されたＶＯＰであって、双方向のＭＣが実行されて、符号化されたＶＯＰである。ここで参照ＶＯＰとは、過去にＩ−ＶＯＰまたはＰ−ＶＯＰとして符号化され画面間符号化で用いるために復号されたＶＯＰの中で、現在符号化すべきＶＯＰに対して時間的に隣接するＶＯＰである。１度の画面間符号化では、高々２つのＶＯＰが参照される。また、Ｉ−ＶＯＰに含まれるＭＢは、すべてイントラで符号化されなければならない。一方、ＰおよびＢ−ＶＯＰに含まれる各ＭＢは、イントラ、インターのどちらを用いて符号化されても良い。ここで、「ＶＯＰを画面内符号化する」、「ＶＯＰをイントラ符号化する」、および「Ｉ−ＶＯＰで符号化する」は、すべて同様の内容を示す。したがって、このいずれの表現も内容的な違いはなく、同様の内容を意味する。
【００１８】
以下、ＭＢ単位の符号化処理を簡単に述べる。
符号化すべきＭＢを含むＶＯＰがＩ−ＶＯＰの場合は符号化部１が、輝度信号と色差信号について、量子化されたＤＣＴ係数を可変長符号化により圧縮する。量子化されたＤＣＴ係数は、輝度信号と色差信号とについて、ＤＣＴと量子化とが実行されて算出される。そして、ヘッダ情報とともに所定の順序にしたがってビットストリームを作成する。
【００１９】
一方、符号化すべきＭＢを含むＶＯＰがＩ−ＶＯＰ以外の場合は符号化部１が、符号化すべきＭＢとの輝度信号における差分値（ＭＣ誤差）が最も小さくなる参照ＶＯＰ上のＭＢが探し出される。参照ＶＯＰは、符号化すべきＭＢを含むＶＯＰに対して、時間的に隣接している符号化されたＶＯＰである。参照ＶＯＰ上のＭＢで、符号化すべきＭＢとの輝度信号における差分値（ＭＣ誤差）が最も小さくなるような、ＭＢが探し出される。このＭＢを探し出すために、ブロックマッチングに代表される動き検出法が使用される。符号化すべきＭＢからＭＣ誤差が最も小さくなるＭＢまでの動きを示すベクトルが生成される。このベクトルは、動きベクトルと呼ばれる。ＭＣ誤差に対して、ＤＣＴと量子化とが実行される。得られた動きベクトルと、輝度信号および色差信号のＭＣ誤差について量子化されたＤＣＴ係数とを可変長符号化により圧縮する。これら圧縮された動きベクトルと量子化されたＤＣＴ係数とが、ヘッダ情報とともに所定の順序にしたがってビットストリームとして生成される。
【００２０】
また、フレームレート更新部４から、出力される動画像のフレームレートを指定する制御信号が符号化部１に出力される。さらに、発生符号量制御部５から、符号化によって発生する符号量の目標値を指定する制御信号が符号化部１に出力される。これら、フレームレートと発生符号量の目標値とが指定されて、符号化部１はフレームスキップまたはスタッフィングを実行する。そして、可変長符号化された符号列は、出力バッファ２に出力される。
【００２１】
出力バッファ２は、符号化部１で符号化された符号化列を、目標のビットレートで出力する。このビットレートは、装置制御部７で設定される。また、ＶＯＰの発生符号量を算出し、算出された発生符号量を仮想バッファ３と発生符号量制御部５に出力する。
【００２２】
仮想バッファ３は、装置制御部７で設定されたバッファ占有量の初期値（図１のＢ0）がバッファ占有量に設定される。最初のフレームの符号化後、出力バッファ２から得られる最初のフレームの発生符号量（図１のｄ０）を、バッファ占有量から減少させる（図１のＢ’０）。その後、つぎに符号化するフレームまでの時間（図１のＴ：フレーム間隔）にビットレートを乗じた値を、バッファ占有量に増加させる（図１のＢ１）。これ以降、出力バッファ２から得られる発生符号量を、バッファ占有量から減少させ、つぎのフレーム間隔にビットレートを乗じた値を、バッファ占有量に増加させる、ということをフレームごとに実行する。また、仮想バッファ３は、時刻ごとのバッファ占有量を、フレームレート更新部４、発生符号量制御部５、および符号化モード設定部６へ与える。
【００２３】
フレームレート更新部４は、１枚分の符号量が取り去られた後のバッファ占有量を検査し、あらかじめ設定されたフレームスキップを実行するバッファ占有量に対応するしきい値（制御ポイント）に応じたフレームレートを符号化モード設定部６および符号化部１に出力する。複数の制御ポイントに応じたフレームレートを符号化モード設定部６および符号化部１に出力する。
【００２４】
発生符号量制御部５は、出力バッファ２から得られる符号化したＶＯＰの発生符号量と、符号化したＶＯＰの量子化スケールの平均値とを、符号化モード別に記憶し、これを符号化モード設定部６へと与える。また、つぎに符号化すべきＶＯＰ符号化モードを、所定の規則（たとえば、ＭＰＥＧ−２のＧＯＰ構造）や後述する動画像の変化を考慮して決定し、これを符号化モード設定部６へと与える。また、仮想バッファ３のバッファ占有量から、つぎに符号化すべきＶＯＰの量子化スケールやスタッフィングビット数などを、符号化部１へと与える。
【００２５】
符号化モード設定部６は、発生符号量制御部５で決定された符号化モードで符号化された場合の発生符号量を推定する。この符号量と、仮想バッファ３から得られるバッファ占有量とから符号化後の仮想バッファ３のバッファ占有量を推定する。そして、推定されたバッファ占有量に対応するフレームレートに適する符号化モードを指定する制御信号を符号化部１に出力する。
【００２６】
装置制御部７は、符号化部１、出力バッファ２、仮想バッファ３、フレームレート更新部４、および発生符号量制御部５を制御する。たとえば、装置が出力すべきビットストリームの制御をする。具体的には、目標となる発生符号量（目標ビットレート）を発生符号量制御部５に指示する。発生符号量制御部５は、この目標ビットレートに合うように、符号化部１に様々な符号化パラメタ（量子化スケール、スタッフィングビット数、符号化モード、およびフレームスキップ数）を与え、発生符号量を制御している。また、目標となる、単位時間当りのフレーム数（目標フレームレート）をフレームレート更新部４に指示する。さらに、仮想バッファ３に初期遅延量の値を指示する。また、誤り耐性などの符号化モードの設定条件を発生符号量制御部５に設定する。さらに、制御ポイントを設定してもよい。
また、装置制御部７は、装置に入力される画像信号の制御も実行する。
【００２７】
図３は、符号化後のフレームレートを推定することによって、符号化する方式を設定するフロー図である。
【００２８】
画質の向上やエラー耐性、ランダムアクセス性を考慮して、ビットストリーム中にＩ−ＶＯＰで符号化されることがある。一般的に、Ｐ−ＶＯＰやＢ−ＶＯＰで符号化を行うよりも、Ｉ−ＶＯＰで符号化を行う方が発生する符号量は多くなることが知られている。
【００２９】
したがって、頻繁にＩ−ＶＯＰを挿入すると、仮想バッファ３がアンダーフロー傾向になる。特に、バッファ占有量が低い場合（たとえば、図１、図４または図５のＢ（ｍｉｎ）の場合）で比較的発生符号量の多いＩ−ＶＯＰで符号化を行うと、Ｂ（ｍｉｎ）を下回り、フレームスキップ数が急激に増加し、目標フレームレートが急激に小さくなる場合が起こりうる。このように目標フレームレートが急激に変動している符号化された動画像を、ユーザが見た場合、見栄えが悪いと感じることが多い。そこで、Ｉ−ＶＯＰの挿入により目標フレームレートが急激に変動してしまう場合には、Ｉ−ＶＯＰで符号化をしないように制御する。
【００３０】
動画像の符号化が開始されると、ステップＳＴ−Ａ１でＶＯＰをイントラ符号化するか否かが判定される。この判定は、発生符号量制御部５が実行する。たとえば、動画像が劇的に変化する（シーンチェンジ）場合は、ＶＯＰをイントラ符号化する等の制御をする。発生符号量制御部５がＶＯＰをイントラ符号化すると判定した場合は、ステップＳＴ−Ａ３に進む。一方、発生符号量制御部５がＶＯＰをイントラ符号化しないと判定した場合は、ステップＳＴ−Ａ２に進む。
【００３１】
ステップＳＴ−Ａ２では、ＶＯＰをインター符号化する。ここでは、Ｐ−ＶＯＰに符号化する。また、Ｐ−ＶＯＰだけでなく、Ｂ−ＶＯＰに符号化するように設定されてもよい。また、発生符号量制御部５が判断して、Ｐ−ＶＯＰまたはＢ−ＶＯＰのいずれかに符号化するように設定してもよい。さらに、後述するようにステップＳＴ−Ａ３、およびＳＴ−Ａ４においてＩ−ＶＯＰについて実行されることをＰ−ＶＯＰについても実行されてもよい。すなわち、Ｐ−ＶＯＰで符号化後のフレームレートが推定されて、このフレームレートが所定値以上である場合は、Ｂ−ＶＯＰで符号化するように設定されていてもよい。
【００３２】
ステップＳＴ−Ａ３では、Ｉ−ＶＯＰに符号化後のフレームレートを推定する。そして、ステップＳＴ−Ａ４では、ステップＳＴ−Ａ３で推定されたフレームレートと所望のフレームレートとの差が、所定値より小さいか否かが判定される。すなわち、ステップＳＴ−Ａ３で推定されたフレームレートがその直前のフレームレートに比較して急激に変化しているか否かが判定される。この場合は、その差が所定値よりも小さい場合は、フレームレートが急激に変化していないと判定されることになる。この所定値は、装置制御部７によって与えられる。
ステップＳＴ−Ａ４で、ステップＳＴ−Ａ３で推定されたフレームレートと所望のフレームレートとの差が、所定値より小さい場合は、ステップＳＴ−Ａ５に進む。一方、ステップＳＴ−Ａ３で推定されたフレームレートと所望のフレームレートとの差が、所定値より小さくない場合は、ステップＳＴ−Ａ２に進む。
【００３３】
フレームレートを推定するには、Ｉ−ＶＯＰで符号化後の仮想バッファ３のバッファ占有量を知る必要がある。すなわち、Ｉ−ＶＯＰで符号化した場合の符号量が必要になる。そこで、以前に符号化したＩ−ＶＯＰの符号量とその量子化スケールの平均値とから、符号化モード設定部６がＩ−ＶＯＰの符号量を推測する。この推測されたＩ−ＶＯＰの符号量と、符号化直前の仮想バッファ３のバッファ占有量とにより、Ｉ−ＶＯＰに符号化した場合の仮想バッファ３のバッファ占有量を計算して推測することが可能になる。バッファ占有量が推測されると、フレームレートを推定することができる。
【００３４】
ステップＳＴ−Ａ５では、Ｉ−ＶＯＰで動画像を符号化する。そして、つぎのＶＯＰを符号化するために、ステップＳＴ−Ａ１に戻る。そして、全ての動画像を符号化するまで、上記ステップを繰り返す。
【００３５】
図４は、従来の方法によってある動画像を符号化する場合での、時間に対する仮想バッファ３のバッファ占有量の一例を示す図である。図５は、図４に示されるように符号化される動画像を、第１の実施形態における動画像符号化装置を使用して符号化した場合の、時間に対する仮想バッファ３のバッファ占有量を示す図である。
【００３６】
図３に示したフロー図にしたがって符号化を実行することにより、図４でＶＯＰをイントラ符号化している時刻ｔＩで、ＶＯＰをイントラ符号化しないでＰ−ＶＯＰ符号化した場合を図５は示している。すなわち、図４および図５に示されている時刻ｔＩにおいて、図４では、Ｉ−ＶＯＰに符号化しているが、図５では、Ｐ−ＶＯＰに符号化している。
【００３７】
図５では、図３に示したようにＩ−ＶＯＰに符号化した後のフレームレートを推定して、そのフレームレートの変化が所定値以内である場合には、Ｉ−ＶＯＰに符号化される（図５の時刻ｔ’Ｉ）。図４に示される時刻ｔＩでＩ−ＶＯＰ符号化されると、フレームスキップが図４に示されるように、Ｉ−ＶＯＰに符号化される前後で大きく変動する。図５では、時刻ｔＩで符号化する時点で図３に示される方法により、時刻ｔＩの前後ではＩ−ＶＯＰに符号化されるとフレームレートが大きく変動してしまうことを避けるために時刻ｔＩではＰ−ＶＯＰに符号化する。
【００３８】
その結果、図４に示されるように時刻ｔＩの前後に見られるようなフレームスキップ数の変動はなくなり、変動の少ないフレームスキップを得ることが可能になる。したがって、動画像全体を通じて画質向上を実現することが可能になる。
【００３９】
（第２の実施形態）
この発明の第２の実施形態に係る動画像符号化装置の構成は、第１の実施形態に係る動画符号化装置の構成と同様である。すなわち、この発明の動画像符号化装置は、符号化部１、出力バッファ２、仮想バッファ３、フレームレート更新部４、発生符号量制御部５、符号化モード設定部６、および装置制御部７からなる。ただし、フレームレート更新部４および発生符号量制御部５の動作が異なる。以下、この相違点を中心にして第２の実施形態を説明する。
【００４０】
図６は、この発明の第２の実施形態における時間に対する仮想バッファ３のバッファ占有量を示す図であって、フレームスキップを実行するバッファ占有量に対応するしきい値（制御ポイント）を３段階設定した場合（図６に示されているＢ１、Ｂ２、およびＢ（ｍｉｎ））の時間に対する仮想バッファ３のバッファ占有量の履歴（破線）と、制御ポイントを１つのみ設定した場合（図６に示されているＢ（ｍｉｎ））の時間に対する仮想バッファ３のバッファ占有量の履歴（実線）とを示す図である。
【００４１】
図６の破線に示されている例では、上記のしきい値である制御ポイントが３段階設けられている。一番大きな値としてＢ１、つぎに大きな値としてＢ２、最終的な限界値としてＢ（ｍｉｎ）が設定されている。Ｂ（ｍｉｎ）は、１画像がインター符号化された程度の大きさであり、Ｂ１とＢ２との差、およびＢ２とＢ（ｍｉｎ）との差も１画像がインター符号化された程度の大きさである。しかし、これらの値は特に限定する必要はなく、動画像符号化装置の製造者が所望の値に自在に設定することが可能である。
仮想バッファ３内のバッファ占有量は、フレームレート更新部４に入力され、３段階に設定された制御ポイントに応じた目標フレームレートを符号化モード設定部６および符号化部１に出力する。
【００４２】
また、目標フレームレートをたとえば、秒１５枚とする。すなわち、通常の制御では、符号化するフレーム間隔が２枚ごとスキップする枚数は１枚という設定で符号化を実行する。フレームレート更新部４には通常動作でのスキップ枚数は１、Ｂ１を下回った場合のスキップ枚数は２、Ｂ２を下回った場合のスキップ枚数は３、Ｂ（ｍｉｎ）を下回った場合はバッファが回復するまでのスキップ枚数だけスキップするという条件が入力されている。
【００４３】
図６に示されている最初の状態（時間が０からｔ３まで）では、バッファ占有量が十分であるため制御ポイントを設定しない場合（実線の履歴）、および制御ポイントを設定する場合（破線の履歴）ともに同様なバッファ占有量の履歴を示す。ｔ０からｔ３まで、一定の時間間隔Ｔを保っている。この時間間隔（フレームスキップ）は、フレームレートに反比例している。ゆえに、図６のｔ０からｔ３までフレームレートは、秒１５枚をキープし、１枚スキップしながら符号化されている。時刻ｔ３において、第１の制御ポイントＢ１を下回る。したがって、フレームレート更新部４においてＢ１に対応するスキップ枚数２が選択される。すると、フレームスキップ数が増える。換言すれば、フレームレートが遅くなる。図６では、つぎに符号化される時刻をｔ’４とすると、ｔ’４−ｔ３＞Ｔになる。その後のｔ’４、ｔ’５、ｔ’６では、それぞれスキップ枚数が３、２、３と続く。このように、図６に示した符号化例では、制御ポイントを３つ設定した場合は、フレームスキップ数は、３枚より多くなっていない。したがって、全体を通してＢ（ｍｉｎ）を下回る機会が著しく減少し、大きなフレームスキップを必要としなくなる。
【００４４】
一方、制御ポイントＢ１およびＢ２が設定されていない場合は、時刻ｔ３において、スキップ枚数は１のままである。そして、この場合は、つぎに符号化する時刻ｔ４においてＢ（ｍｉｎ）を下回る。ゆえに、バッファアンダーフローを防ぐために、大きなフレームスキップが実行される。図６の場合は、スキップ枚数は３枚より多くなってしまう。また、Ｂ（ｍｉｎ）以上のスキップ枚数は常に１であるので、符号量の多いフレームがあると時刻ｔ６の場合のように、バッファ占有量が再びＢ（ｍｉｎ）を下回ってしまう場合が頻発しうる。その結果、フレームスキップ数が１と３の間をゆらぎ、フレームスキップ数の変動が大きくなる。また、この場合であれば、Ｂ１の制御ポイントの周辺を行ったり来たりする場合でも、フレームスキップ数の変動は１枚ですむため、見た目には大きな変動を感じさせずにすむ。
【００４５】
以上のように、制御ポイントが複数ある場合は、制御ポイントが１つしかない場合に比較して、フレームスキップ数のゆらぎの大きさが小さい。したがって、見た目には大きな変動を感じさせずにすむ。バッファ占有量のフレームスキップ数が１枚ずつ段階的に変化するように設定されているので、フレームスキップ数が突然２枚変化する可能性は、制御ポイントが１つしかない場合に比較して格段に少なくなる。さらにはバッファ占有量が全体を通して高い値で推移するため量子化スケール値を粗くすることも少なくなり、全体を通した画質向上を実現できる。
【００４６】
図７は、図３の工程に加えて、過去の所定時間内のイントラ符号化されたＶＯＰの数を確認することによって符号化する方式を設定する工程を含むフロー図である。
【００４７】
第１の実施形態での符号化の動作を示すフローに１つのステップが加わったものが第２の実施形態での符号化の動作を示すフローである。すなわち図３のステップＳＴ−Ａ１とステップＳＴ−Ａ３との間に新たなステップが付加される。新たなステップは、頻繁にＩ−ＶＯＰで符号化されないようにするためのものである。
【００４８】
上述したように、一般的にＰ−ＶＯＰやＢ−ＶＯＰで符号化を行うよりも、Ｉ−ＶＯＰで符号化を行う方が発生する符号量は多くなる。したがって、頻繁にＩ−ＶＯＰを挿入すると、仮想バッファ３がアンダーフロー傾向になる。たとえば、動画像が劇的に変化するシーンチェンジの場合は、ＶＯＰをイントラ符号化することが多く、シーンチェンジが頻出する場合は仮想バッファ３がアンダーフロー傾向になりやすい。そこで、Ｉ−ＶＯＰを頻繁に挿入しないように制御する。その方法として第２の実施形態では、ある一定時間内で符号化されたＶＯＰのうち、Ｉ−ＶＯＰで符号化される最大のＶＯＰ数を制限する。
【００４９】
具体的には、発生符号量制御部５がＶＯＰをイントラ符号化すると決定した場合に、ステップＳＴ−Ｂ１からステップＳＴ−Ｂ３に進む。ステップＳＴ−Ｂ３では、過去の所定時間内にＩ−ＶＯＰに符号化されたＶＯＰ数をあらかじめ設定してある所定数と比較する。Ｉ−ＶＯＰに符号化されたＶＯＰ数が所定数以上である場合には、バッファ占有量が小さくバッファアンダーフローが発生しやすい状態であるとみなす。この場合は、Ｉ−ＶＯＰに符号化せず、Ｐ−ＶＯＰで符号化する（ＳＴ−Ｂ２）。また、設定してある所定数は、通常、仮想バッファ３の大きさに依存して決定される。
過去の所定時間内のＩ−ＶＯＰ数は、たとえば符号化モード設定部６がカウントしておき、ＶＯＰが符号化されるごとにアップデートされるように設定しておく。
【００５０】
この結果、ステップＳＴ−Ｂ３によって、Ｉ−ＶＯＰが頻繁に挿入され仮想バッファ３がバッファアンダーフロー傾向になることを抑制することができる。
【００５１】
ほかのステップは、すべて第１の実施形態で示した図３と同様である。
【００５２】
図８は、図６に示されたしきい値を設定して、図７のフロー図に示される方法を使用して、動画像を符号化した場合の、時間に対する仮想バッファ３のバッファ占有量を示す図である。
【００５３】
バッファ占有量が時刻ｔ１、ｔ２、ｔ３等のＢ１またはＢ２以下にある場合は、Ｂ２以上Ｂ１未満、Ｂ（ｍｉｎ）以上Ｂ２未満、Ｂ（ｍｉｎ）未満にしたがって、段階的にフレームスキップ数が多くされる。その結果、隣同士のフレームでは、スキップする枚数に最大１枚の差があるだけである。ところで、バッファ占有量がＢ（ｍｉｎ）未満の場合は、隣のフレームとの間でスキップする枚数差が１枚以上である可能性はある。しかし、Ｂ（ｍｉｎ）以上のしきい値Ｂ１およびＢ２で段階的にフレームスキップ数が増加されているので、スキップ枚数差が２枚以上になる場合は少ない。
したがって、ユーザは、見た目に画像が大きく変動することなく、スムーズに安定した動画像を見ることが可能になる。また、バッファ占有量が全体を通して高い値で推移するため量子化スケール値を粗くすることも少なくなり、全体を通した画質向上を実現できる。
【００５４】
また、バッファ占有量に無関係に、ある一定時間内で符号化されたＶＯＰのうち、Ｉ−ＶＯＰで符号化される最大のＶＯＰ数を制限している。さらに、あるＶＯＰを符号化する際に、フレームレートがどう変化するかを推定して、その推定されたフレームレートにしたがって、イントラ符号化をするかインター符号化をするかが決定される。
したがって、フレームレートが急激に低下することを避けることができる。ゆえに、バッファアンダーフローを防ぐことが可能になる。また、フレームスキップ数が急に増えることも防ぐことができる。その結果、ユーザは、見た目に画像が大きく変動することなく、スムーズに安定した動画像を見ることが可能になる。また、バッファ占有量が全体を通して高い値で推移するため量子化スケール値を粗くすることも少なくなり、全体を通した画質向上を実現できる。
【００５５】
この発明は、上述した実施の形態に限定されるものではなく、その技術的範囲において種々変形して実施することができる。
【００５６】
【発明の効果】
この発明の動画像符号化装置によれば、フレームスキップ数が大きく変動することを避けることができるので、見た目に画像が大きく変動することなく、スムーズに安定した動画像を見ることが可能になる。
【００５７】
また、バッファ占有量が全体を通して高い値で推移させることが可能になる。したがって、量子化スケール値を粗くすることも少なくなり、全体を通した画質向上を実現できる。
【図面の簡単な説明】
【図１】仮想バッファを制御する従来の方法を示す図であって、時間に対する仮想バッファのバッファ占有量を示す図である。
【図２】この発明の実施形態における動画像符号化装置の電気的な内部構成を示す機能ブロック図である。
【図３】この発明の第１の実施形態における符号化する方式を設定するための手順を示すフロー図であって、符号化後のフレームレートを推定することによって、符号化する方式を設定するフロー図である。
【図４】従来の方法によってある動画像を符号化する場合での、時間に対する仮想バッファのバッファ占有量の一例を示す図である。
【図５】図４に示されるように符号化される動画像を、この発明の第１の実施形態における動画像符号化装置を使用して符号化した場合の、時間に対する仮想バッファのバッファ占有量を示す図である。
【図６】この発明の第２の実施形態における時間に対する仮想バッファのバッファ占有量を示す図であって、フレームスキップを実行するバッファ占有量に対応するしきい値（制御ポイント）を３段階設定した場合の時間に対する仮想バッファのバッファ占有量の履歴（破線）と、制御ポイントを１つのみ設定した場合の時間に対する仮想バッファのバッファ占有量の履歴（実線）とを示す図である。
【図７】この発明の第２の実施形態における符号化する方式を設定するための手順を示すフロー図であって、図３の工程に加えて、過去の所定時間内のイントラ符号化されたＶＯＰの数を確認することによって符号化する方式を設定する工程を含むフロー図である。
【図８】図６に示されたしきい値を設定して、図７のフロー図に示される方法を使用して、動画像を符号化した場合の、時間に対する仮想バッファのバッファ占有量を示す図である。
【符号の説明】
１      符号化部
２      出力バッファ
３      仮想バッファ
４      フレームレート更新部
５      発生符号量制御部
６      符号化モード設定部
７      装置制御部
【図１】
0004718736.tif 000002
【図２】
0004718736.tif 000003
【図３】
0004718736.tif 000004
【図４】
0004718736.tif 000005
【図５】
0004718736.tif 000006
【図６】
0004718736.tif 000007
【図７】
0004718736.tif 000008
【図８】
0004718736.tif 000009