(57)【要約】【課題】符号化パラメータが短時間に変化することによって画質が短時間に変化することを防止する。【解決手段】現フレームの符号量と目標符号量との誤差を算出するレート誤差算出手段７と、このレート誤差を積算するレート誤差積算手段８と、前フレームの符号量と現フレームの符号量との差を変動量として算出する変動量算出手段１０と、この変動量とレート誤差とレート誤差積算値とを入力して目標符号量の更新を行う目標符号量更新手段１１及び符号化パラメータの更新を行う符号化パラメータ更新手段１２と、符号化パラメータ記憶手段２に記憶された符号化パラメータを用いてフレームデータ符号化手段３が符号化した生成符号量によるレート誤差積算値が所定値を上回った時に、フレーム間引き符号を生成するフレーム間引き符号生成手段１５と、同じく、レート誤差積算値が所定値を下回った時に、冗長符号を生成する冗長符号生成手段１４とを有する。【選択図】  図９
2004289479.tif 000002
【特許請求の範囲】
【請求項１】
動画データから１フレーム分のフレームデータを取得するフレームデータ取得ステップと、フレームデータの符号化を制御するための符号化パラメータを記憶する符号化パラメータ記憶ステップと、その符号化パラメータを用いてフレームデータを符号化するフレームデータ符号化ステップと、符号化された符号化データを出力する符号化データ出力ステップとを有する動画符号化方法において、
目標符号量を記憶する目標符号量記憶ステップと、
前記フレームデータ符号化ステップによって生成された符号量を取得する生成符号量取得ステップと、
この生成符号量取得ステップによって取得された符号量と前記目標符号量との誤差をレート誤差として算出するレート誤差算出ステップと、
このレート誤差算出ステップで算出されたレート誤差を積算してレート誤差積算値として算出するレート誤差積算ステップと、
前記生成符号量取得ステップで取得された符号量と前フレームデータの符号量との差を変動量として算出する変動量算出ステップと、
前記変動量とレート誤差とレート誤差積算値とを入力して前記目標符号量の更新を行う目標符号量更新ステップと、
前記変動量とレート誤差とレート誤差積算値とを入力して前記符号化パラメータの更新を行う符号化パラメータ更新ステップと、
を含み、前記符号化パラメータ記憶ステップによって記憶された符号化パラメータを用いて、フレームデータを前記フレームデータ符号化ステップにより１回の符号化処理で符号化することを特徴とする動画符号化方法。
【請求項２】
前記符号化パラメータ更新ステップは、前記レート誤差を引数とする関数値と、前記レート誤差積算値を引数とする関数値と、前記変動量を引数とする関数値の３者の和に、前記生成符号量取得ステップで取得された符号量を引数とする関数値とを乗算して得られた値を符号化パラメータ更新量とし、この符号化パラメータ更新量に基づいて符号化パラメータの更新を行うことを特徴とする請求項１記載の動画符号化方法。
【請求項３】
前記フレームデータ取得ステップが取得したフレームデータに対し、前記フレームデータ符号化ステップが前記符号化パラメータ記憶ステップで記憶された符号化パラメータを用いて符号化することによって生成された符号量が所定値を下回った時に、前記符号化パラメータ更新ステップの符号化パラメータ更新処理を抑止する符号化パラメータ更新抑止ステップを設けることを特徴とする請求項１または２記載の動画符号化方法。
【請求項４】
前記フレームデータ取得ステップが取得したフレームデータに対し、前記フレームデータ符号化ステップが前記符号化パラメータ記憶ステップで記憶された符号化パラメータを用いて符号化することによって生成された符号量に基づいて算出されたレート誤差積算値が所定値を上回ったとき、フレーム間引き符号を生成するフレーム間引き符号生成ステップを設けることを特徴とする請求項１から３のいずれか１項記載の動画符号化方法。
【請求項５】
前記フレームデータ取得ステップが取得したフレームデータに対し、前記フレームデータ符号化ステップが前記符号化パラメータ記憶ステップで記憶された符号化パラメータを用いて符号化することによって生成された符号量に基づいて算出されたレート誤差積算値が所定値を下回ったとき、冗長符号を生成する冗長符号生成ステップを設けることを特徴とする請求項１から４のいずれか１項記載の動画符号化方法。
【請求項６】
動画データから１フレーム分のフレームデータを取得するフレームデータ取得手段と、フレームデータの符号化を制御するための符号化パラメータを記憶する符号化パラメータ記憶手段と、その符号化パラメータを用いてフレームデータを符号化するフレームデータ符号化手段と、符号化された符号化データを出力する符号化データ出力手段とを有する動画符号化装置において、
目標符号量を記憶する目標符号量記憶手段と、
前記レームデータ符号化手段によって生成された符号量を取得する生成符号量取得手段と、
この生成符号量取得手段によって取得された符号量と前記目標符号量との誤差をレート誤差値として算出するレート誤差算出手段と、
このレート誤差算出手段で算出されたレート誤差を積算してレート誤差積算値として算出するレート誤差積算手段と、
前フレームデータの符号量を記憶する前フレーム符号量記憶手段と、
この前フレーム符号量記憶手段に記憶された符号量と前記生成符号量取得手段で取得された符号量との差を変動量として算出する変動量算出手段と、
前記変動量とレート誤差とレート誤差積算値とを入力して前記目標符号量の更新を行う目標符号量更新手段と、
前記変動量とレート誤差とレート誤差積算値とを入力して前記符号化パラメータの更新を行う符号化パラメータ更新手段と、
を含み、前記符号化パラメータ記憶手段に記憶された符号化パラメータを用いて、フレームデータを前記フレームデータ符号化手段により１回の符号化処理で符号化することを特徴とする動画符号化装置。
【請求項７】
前記符号化パラメータ更新手段は、前記レート誤差を引数とする関数値と、前記レート誤差積算値を引数とする関数値と、前記変動量を引数とする関数値の３者の和に、前記生成符号量取得手段で取得された符号量を引数とする関数値とを乗算して得られた値を符号化パラメータ更新量とし、この符号化パラメータ更新量に基づいて符号化パラメータの更新を行うことを特徴とする請求項６記載の動画符号化装置。
【請求項８】
前記フレームデータ取得手段が取得したフレームデータに対し、前記フレームデータ符号化手段が前記符号化パラメータ記憶手段に記憶された符号化パラメータを用いて符号化することによって生成された符号量が所定値を下回ったときに、前記符号化パラメータ更新手段の符号化パラメータ更新処理を抑止する符号化パラメータ更新抑止手段を設けることを特徴とする請求項６または７記載の動画符号化装置。
【請求項９】
前記フレームデータ取得手段が取得したフレームデータに対し、前記フレームデータ符号化手段が前記符号化パラメータ記憶手段に記憶された符号化パラメータを用いて符号化することによって生成された符号量に基づいて算出されたレート誤差積算値が所定値を上回ったとき、フレーム間引き符号を生成するフレーム間引き符号生成手段を設けることを特徴とする請求項６から８のいずれか１項記載の動画符号化装置。
【請求項１０】
前記フレームデータ取得手段が取得したフレームデータに対し、前記フレームデータ符号化手段が前記符号化パラメータ記憶手段に記憶された符号化パラメータを用いて符号化することによって生成された生成符号量に基づいて算出されたレート誤差積算値が所定値を下回ったとき、冗長符号を生成する冗長符号生成手段を設けることを特徴とする請求項６から９のいずれか１項記載の動画符号化装置。
【請求項１１】
動画データから１フレーム分のフレームデータを取得するフレームデータ取得ステップと、フレームデータの符号化を制御するための符号化パラメータを記憶する符号化パラメータ記憶ステップと、その符号化パラメータを用いてフレームデータを符号化するフレームデータ符号化ステップと、符号化された符号化データを出力する符号化データ出力ステップとを有する動画符号化処理プログラムにおいて、その動画符号化処理プログラムは、
目標符号量を記憶する目標符号量記憶ステップと、
前記フレームデータ符号化ステップによって生成された符号量を取得する生成符号量取得ステップと、
この生成符号量取得ステップによって取得された符号量と前記目標符号量との誤差をレート誤差値として算出するレート誤差算出ステップと、
このレート誤差算出ステップで算出されたレート誤差を積算してレート誤差積算値として算出するレート誤差積算ステップと、
前記生成符号量取得ステップで取得された符号量と前フレームデータの符号量との差を変動量として算出する変動量算出ステップと、
前記変動量とレート誤差とレート誤差積算値とを入力して前記目標符号量の更新を行う目標符号量更新ステップと、
前記変動量とレート誤差とレート誤差積算値とを入力して前記符号化パラメータの更新を行う符号化パラメータ更新ステップと、
を含み、前記符号化パラメータ記憶ステップによって記憶された符号化パラメータを用いて、フレームデータを前記フレームデータ符号化ステップにより１回の符号化処理で符号化することを特徴とする動画符号化処理プログラム。
【請求項１２】
前記符号化パラメータ更新ステップは、前記レート誤差を引数とする関数値と、前記レート誤差積算値を引数とする関数値と、前記変動量を引数とする関数値の３者の和に、前記生成符号量取得ステップで取得された符号量を引数とする関数値とを乗算して得られた値を符号化パラメータ更新量とし、この符号化パラメータ更新量に基づいて符号化パラメータの更新を行うことを特徴とする請求項１１記載の動画符号化処理プログラム。
【請求項１３】
前記フレームデータ取得ステップが取得したフレームデータに対し、前記フレームデータ符号化ステップが前記符号化パラメータ記憶ステップで記憶された符号化パラメータを用いて符号化することによって生成された符号量が所定値を下回った時に、前記符号化パラメータ更新ステップの符号化パラメータ更新処理を抑止する符号化パラメータ更新抑止ステップを設けることを特徴とする請求項１１または１２記載の動画符号化処理プログラム。
【請求項１４】
前記フレームデータ取得ステップが取得したフレームデータに対し、前記フレームデータ符号化ステップが前記符号化パラメータ記憶ステップで記憶された符号化パラメータを用いて符号化することによって生成された符号量に基づいて算出されたレート誤差積算値が所定値を上回ったとき、フレーム間引き符号を生成するフレーム間引き符号生成ステップを設けることを特徴とする請求項１１から１３のいずれか１項記載の動画符号化処理プログラム。
【請求項１５】
前記フレームデータ取得ステップが取得したフレームデータに対し、前記フレームデータ符号化ステップが前記符号化パラメータ記憶ステップで記憶された符号化パラメータを用いて符号化することによって生成された符号量に基づいて算出されたレート誤差積算値が所定値を下回ったとき、冗長符号を生成する冗長符号生成ステップを設けることを特徴とする請求項１１から１４のいずれか１項記載の動画符号化処理プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、動画の符号化方法および動画符号化装置ならびに動画符号化処理プログラムに関する。
【０００２】
【従来の技術】
動画像符号化方法として、大別して２種の方法がある。その１つは符号化パラメータを固定し、１回の符号化処理でデータを符号化する方法である。これは、符号化処理が１回であるために高速であることと、符号パラメータが固定されているために画質の時間的な変動が少ないことが特徴となる。
【０００３】
このような特徴がある反面、この方法においては、符号化処理で生成されるデータ量は入力データに完全に依存し、大きく変動する可能性がある。そのため、単位時間あたりの伝送データ量に制限のある伝送系、また、トータルのデータ量に制限のある蓄積系への適用においては問題がある。これを解決するためには符号化処理で生成されるデータ量を制御する必要がある。
【０００４】
動画符号化方法のもう一つの方法は、上述の課題を解決しようとするものであり、符号化処理で生成されるデータ量の時間的な平均値、つまり平均ビットレートを何らかの方法により一定にするものである。この技術はレート制御と呼ばれる。この手法もまた２種に大別することができる。このレート制御について以下に説明する。
【０００５】
このレート制御手法の一つとして符号量の割り当てによるレート制御があり、これは、各フレームごとに予め符号量の目標値を設定し、符号化パラメータ、つまり符号化される画質を変更しながら複数回の試行を行い、設定された符号量に最も近くなる符号化パラメータで符号化を行う方法であり、これにより、平均ビットレートを所定値の近傍値にレート制御を行うものである。
【０００６】
もう一つの方法としては、符号量の適応によるレート制御があり、これは、各フレームごとの目標符号量は設定せず、複数のフレーム、あるいは、ある時間範囲における平均のビットレートが、設定されたビットレートに近づくように何らかの制御を行う方法である。この分野の従来の技術は、例えばＩＥＥＥ  Ｔｒａｎｓａｃｔｉｏｎ  Ｏｎ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ、ＣＯＭ−３２（１９８４−３）、Ｐ．２２５−２３２、「Ｓｃｅｎｅ  Ａｄａｐｔｉｖｅ  Ｃｏｄｅｒ」に記載されているような手法（これを従来技術１という）がある。
【０００７】
図１５は、この従来技術１の構成を示したものであり、情報量圧縮手段１０１、統計量演算手段１０２、量子化手段１０３、符号量予測手段１０４、符号化手段１０５、バッファ１０６、バッファ占有量検出手段１０７を有した構成となっている。
【０００８】
このような構成において、符号化手段１０５で符号化されたデータは、ＦＩＦＯ（Ｆｉｒｓｔ−Ｉｎ  Ｆｉｒｓｔ−Ｏｕｔ、先入れ先出し）動作を行うバッファ１０６に一旦蓄積され、このバッファ１０６からは目的とするビットレートでデータが読み出され出力される。
【０００９】
ここで、符号化処理を制御する符号化パラメータは、このバッファ１０６の使用量の関数として与えられる。すなわち、バッファ１０６の使用量が増えてくると、バッファ１０６のオーバーフローを防止するために符号化データ量が少なくなるように、つまり、符号化された画質を下げるように（低画質側に）符号化パラメータが更新される。逆に、バッファ１０６の使用量が少なくなると、バッファアンダーフローを防ぐために符号化データ量が多くなるように、つまり符号化された画質を上げるように符号化パラメータが更新される。
【００１０】
図１６はバッファ１０６の使用量に対する符号化パラメータ制御を説明する図であり、この図１６を参照しながらその符号化パラメータ制御の概略を説明する。なお、図１６において、白抜きで表す部分がバッファ６の空き容量を示し、それ以外の斜線模様、縦線模様、横線模様などの施された部分は符号化データの蓄積されている部分を示している。
【００１１】
図１６（ａ）に示すように、バッファ１０６の使用量が増えると、低画質側に符号化パラメータが更新され、その後、図１６（ｂ），（ｃ）に示すように、さらに符号化データが蓄積されると、さらに低画質側に符号化パラメータが更新される。なお、バッファ１０６に蓄積されている符号化データは、その出力側から必要に応じて順次出力されてゆく。
【００１２】
そして、図１６（ｄ）に示すように、バッファ１０６の使用量が減ると、高画質側に符号化パラメータが更新され、その後、図１６（ｅ）に示すように、再び、符号化データが蓄積されてくると、また、低画質側に符号化パラメータが更新される。
【００１３】
図１７は図１６で示した動作をグラフで表したもので、横軸にバッファ１０６の使用量、縦軸に符号化パラメータをとっている。この図１７において、横軸に示すバッファ使用量（ａ），（ｂ），（ｃ），（ｄ）は、図１６の（ａ），（ｂ），（ｃ），（ｄ）に対応する。なお、Ｔは閾値を示している。
【００１４】
このように、従来技術１はバッファ１０６の使用量に対する符号化パラメータ制御を行って符号化されたデータの時間的な平均値が一定となるようにするものであり、これは単純で有効な方法であるが幾つかの問題点がある。それらを改善したものとしては、特開平５−４１８６０「画像圧縮符号化装置」（以下、従来技術２という）、特開平１０−１０８１９７「画像符号化装置、画像符号化制御方法および画像符号化制御用プログラムを記録した媒体」（以下、従来技術３という）、特開平１１−２１５４９７「可変ビットレート符号化方式画像データ圧縮システム」（以下、従来技術４という）、特開２０００−２３１５５「動画像符号化装置」（以下、従来技術５という）などが挙げられる。
【００１５】
従来技術２は、バッファが相対的に小さい場合、同一画像の初めと終りにおいて画質が変化することを防ぐものである。つまり、あるフレームデータを符号化する際に、符号化が進行するにつれてバッファ使用量が増大し、画質を下げる方向に符号化パラメータが変化する。その結果、フレームデータの初めの部分に比較して、終りの方の部分の画質が下がる傾向がある。
【００１６】
そのため、この従来技術２においては、最初に画像全体についてのある種の統計量を調べ、それにより画像の複雑度を判定し、符号化パラメータを調整する。これにより、符号化後の画質が同一画像内において大きく変化しないようにし、かつビットレートの制御された符号化処理を実現するものである。
【００１７】
また、従来技術３は、同一ビットレートにおいては、高周波成分の多い、あるいは、動きの激しい入力画像の方が、それらの少ない画像に比較して、符号化歪が発生しやすく、例えば符号化の際の処理単位であるブロックが目立つことを改善するものである。
【００１８】
そのため、この従来例においては、動きの多さ、高周波成分の多さなどの入力画像の符号化困難度に応じて、時間プリフィルタ、空間プリフィルタを制御し、高周波成分、動き成分の制限を行うものである。その結果、入力データは符号化の容易なものに変換され、符号化データ量を小さくすることができる。それにより符号化歪を少なくし、レート制御を行うものである。
【００１９】
また、従来技術４は、画像の複雑度、符号化困難度などの判定処理に非常に多くの計算量を必要とすると言うことを改善するものである。これは、それ以前に符号化されたデータから得られる符号量を用いて、入力データの複雑度、符号化困難度を推定し、それをもとに符号化パラメータを決定するものである。また、その符号化パラメータを用いて生成された符号化データ量が期待されるものよりも大きくなった場合、符号化パラメータを変更しながら複数回の試行錯誤を行い、符号化パラメータを調整するものである。それによりレート制御を行うものである。
【００２０】
また、従来技術５は、最初に指定されたビットレート、画像サイズ、フレームレートが適切かどうかを判断する。この際、予めＣＩＦ、ＱＣＩＦ、ＳＱＣＩＦなどの画像サイズと、フレームレート、ビットレートなどの平均的な相関データを持っており、これにより、不適切な符号化パラメータを修正する。つまり大きな破綻を引き起こさないパラメータへ予め修正を行い、その後、新たに設定されたフレームレートのフレームデータの各々に対し、設定された符号化パラメータで符号化可能かどうかが判断され、可能であるならば符号化され、可能でないならばそのフレームデータはスキップされ、同時にフレームレートを含む符号化パラメータが修正される。このように、フレームレートの変更を含む符号化パラメータの制御により、レート制御を行うものである。
【００２１】
【特許文献１】
特開平５−４１８６０号公報
【特許文献２】
特開平１０−１０８１９７号公報
【特許文献３】
特開平１１−２１５４９７号公報
【特許文献４】
特開２０００−２３１５５号公報
【非特許文献１】
ＩＥＥＥ  Ｔｒａｎｓａｃｔｉｏｎ  Ｏｎ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ、ＣＯＭ−３２（１９８４−３）、Ｐ．２２５−２３２、「Ｓｃｅｎｅ  Ａｄａｐｔｉｖｅ  Ｃｏｄｅｒ」
【００２２】
【発明が解決しようとする課題】
しかし、上述した従来技術１（非特許文献１に記載の技術）の処理は、出力バッファの残量に対応して、単純に符号化パラメータを変化させるものであるので、短時間に画質が変化する可能性があり、それが全体としての画質を劣化させることにもつながる。
【００２３】
また、従来技術２（特許文献１に記載の技術）においては、画像全体に係わる統計量を求めなければならないため、計算量が多いという問題がある。また、画像全体を一旦蓄積してからでなければ処理ができないために、必要なメモリ量も多く、遅延も発生すると言う問題がある。また、符号量を小さくするようなパラメータにおいては、大きな符号化歪みが発生する可能性がある。さらに、符号化パラメータが短時間に大きく変化し、それに伴い画質が変化する可能性がある。
【００２４】
また、従来技術３（特許文献２に記載の技術）においては、高周波成分、動き成分の制限により符号化歪みを小さくすることは可能である。しかし、これは、本来の画質を劣化させると言うことでもある。また、画像全体についての前処理が必要となり、必要なメモリ量、処理量も多く、遅延も発生する。また、符号化パラメータが短時間に大きく変化し、画質が短時間に変化する可能性がある。
【００２５】
また、従来技術４（特許文献３に記載の技術）においては、シーンが大きく変わる部分、動きが多い部分などの、それ以前からの予測が適合しないフレームにおいては結局複数回の試行錯誤を行うことになり、処理量が削減されない。また、符号量を削減できたとしても、これはそのフレームの画質を大きく劣化させてしまうものである。また逆に、動きが非常に少ない場合、つまり、生成される符号量が非常に少ない場合についての対応は考慮されていないという問題がある。
【００２６】
また、従来技術５（特許文献４に記載の技術）においては、予め持っている画像サイズ、フレームレート、ビットレートについての相関データは、平均的なものでしかなく、例えば、ある画像サイズではあっても動きの非常に多いデータ、逆に動きの非常に少ないデータなどの個別状況に細かく対応できるものではない。また、結局のところ、フレームレートの変動と言うパラメータが追加はされているが、実質的にはＩＥＥＥ文献の方法と同様である。つまり符号化パラメータが短時間に大きく変化し、画質が変化する可能性がある。
【００２７】
そこで本発明は、符号化パラメータが短時間に変化することで画質が短時間に変化することを防ぎ、これによって、たとえば、動きの小さいシーンから動きの激しいシーンに移るような場合、見た目に自然な動きの画像を生成することができる動画符号化方法および動画符号化装置ならびに動画符号化処理プログラムを提供することを目的とする。
【００２８】
【課題を解決するための手段】
上述の目的を達成するために、本発明の動画符号化方法は、動画データから１フレーム分のフレームデータを取得するフレームデータ取得ステップと、フレームデータの符号化を制御するための符号化パラメータを記憶する符号化パラメータ記憶ステップと、その符号化パラメータを用いてフレームデータを符号化するフレームデータ符号化ステップと、符号化された符号化データを出力する符号化データ出力ステップとを有する動画符号化方法において、目標符号量を記憶する目標符号量記憶ステップと、前記フレームデータ符号化ステップによって生成された符号量を取得する生成符号量取得ステップと、この生成符号量取得ステップによって取得された符号量と前記目標符号量との誤差をレート誤差として算出するレート誤差算出ステップと、このレート誤差算出ステップで算出されたレート誤差を積算してレート誤差積算値として算出するレート誤差積算ステップと、前記生成符号量取得ステップで取得された符号量と前フレームデータの符号量との差を変動量として算出する変動量算出ステップと、前記変動量とレート誤差とレート誤差積算値とを入力して前記目標符号量の更新を行う目標符号量更新ステップと、前記変動量とレート誤差とレート誤差積算値とを入力して前記符号化パラメータの更新を行う符号化パラメータ更新ステップとを含み、前記符号化パラメータ記憶ステップによって記憶された符号化パラメータを用いて、フレームデータを前記フレームデータ符号化ステップにより１回の符号化処理で符号化することを特徴としている。
【００２９】
このような動画符号化方法において、前記符号化パラメータ更新ステップは、前記レート誤差を引数とする関数値と、前記レート誤差積算値を引数とする関数値と、前記変動量を引数とする関数値の３者の和に、前記生成符号量取得ステップで取得された符号量を引数とする関数値とを乗算して得られた値を符号化パラメータ更新量とし、この符号化パラメータ更新量に基づいて符号化パラメータの更新を行うようにすることが好ましい。
【００３０】
また、この動画符号化方法において、前記フレームデータ取得ステップが取得したフレームデータに対し、前記フレームデータ符号化ステップが前記符号化パラメータ記憶ステップで記憶された符号化パラメータを用いて符号化することによって生成された符号量が所定値を下回った時に、前記符号化パラメータ更新ステップの符号化パラメータ更新処理を抑止する符号化パラメータ更新抑止ステップを設けることが好ましい。
【００３１】
また、この動画符号化方法において、前記フレームデータ取得ステップが取得したフレームデータに対し、前記フレームデータ符号化ステップが前記符号化パラメータ記憶ステップで記憶された符号化パラメータを用いて符号化することによって生成された符号量に基づいて算出されたレート誤差積算値が所定値を上回ったとき、フレーム間引き符号を生成するフレーム間引き符号生成ステップを設けることが好ましい。
【００３２】
また、この動画符号化方法において、前記フレームデータ取得ステップが取得したフレームデータに対し、前記フレームデータ符号化ステップが前記符号化パラメータ記憶ステップで記憶された符号化パラメータを用いて符号化することによって生成された符号量に基づいて算出されたレート誤差積算値が所定値を下回ったとき、冗長符号を生成する冗長符号生成ステップを設けることが好ましい。
【００３３】
また、本発明の動画符号化装置は、動画データから１フレーム分のフレームデータを取得するフレームデータ取得手段と、フレームデータの符号化を制御するための符号化パラメータを記憶する符号化パラメータ記憶手段と、その符号化パラメータを用いてフレームデータを符号化するフレームデータ符号化手段と、符号化された符号化データを出力する符号化データ出力手段とを有する動画符号化装置において、目標符号量を記憶する目標符号量記憶手段と、前記レームデータ符号化手段によって生成された符号量を取得する生成符号量取得手段と、この生成符号量取得手段によって取得された符号量と前記目標符号量との誤差をレート誤差値として算出するレート誤差算出手段と、このレート誤差算出手段で算出されたレート誤差を積算してレート誤差積算値として算出するレート誤差積算手段と、前フレームデータの符号量を記憶する前フレーム符号量記憶手段と、この前フレーム符号量記憶手段に記憶された符号量と前記生成符号量取得手段で取得された符号量との差を変動量として算出する変動量算出手段と、前記変動量とレート誤差とレート誤差積算値とを入力して前記目標符号量の更新を行う目標符号量更新手段と、前記変動量とレート誤差とレート誤差積算値とを入力して前記符号化パラメータの更新を行う符号化パラメータ更新手段とを含み、前記符号化パラメータ記憶手段に記憶された符号化パラメータを用いて、フレームデータを前記フレームデータ符号化手段により１回の符号化処理で符号化することを特徴としている。
【００３４】
このような動画符号化装置において、前記符号化パラメータ更新手段は、前記レート誤差を引数とする関数値と、前記レート誤差積算値を引数とする関数値と、前記変動量を引数とする関数値の３者の和に、前記生成符号量取得手段で取得された符号量を引数とする関数値とを乗算して得られた値を符号化パラメータ更新量とし、この符号化パラメータ更新量に基づいて符号化パラメータの更新を行うようにすることが好ましい。
【００３５】
この動画符号化装置において、前記フレームデータ取得手段が取得したフレームデータに対し、前記フレームデータ符号化手段が前記符号化パラメータ記憶手段に記憶された符号化パラメータを用いて符号化することによって生成された符号量が所定値を下回ったときに、前記符号化パラメータ更新手段の符号化パラメータ更新処理を抑止する符号化パラメータ更新抑止手段を設けることがこの好ましい。
【００３６】
この動画符号化装置において、前記フレームデータ取得手段が取得したフレームデータに対し、前記フレームデータ符号化手段が前記符号化パラメータ記憶手段に記憶された符号化パラメータを用いて符号化することによって生成された符号量に基づいて算出されたレート誤差積算値が所定値を上回ったとき、フレーム間引き符号を生成するフレーム間引き符号生成手段を設けることが好ましい。
【００３７】
この動画符号化装置において、前記フレームデータ取得手段が取得したフレームデータに対し、前記フレームデータ符号化手段が前記符号化パラメータ記憶手段に記憶された符号化パラメータを用いて符号化することによって生成された生成符号量に基づいて算出されたレート誤差積算値が所定値を下回ったとき、冗長符号を生成する冗長符号生成手段を設けることが好ましい。
【００３８】
また、本発明の動画符号化プログラムは、動画データから１フレーム分のフレームデータを取得するフレームデータ取得ステップと、フレームデータの符号化を制御するための符号化パラメータを記憶する符号化パラメータ記憶ステップと、その符号化パラメータを用いてフレームデータを符号化するフレームデータ符号化ステップと、符号化された符号化データを出力する符号化データ出力ステップとを有する動画符号化処理プログラムにおいて、その動画符号化処理プログラムは、目標符号量を記憶する目標符号量記憶ステップと、前記フレームデータ符号化ステップによって生成された符号量を取得する生成符号量取得ステップと、この生成符号量取得ステップによって取得された符号量と前記目標符号量との誤差をレート誤差値として算出するレート誤差算出ステップと、このレート誤差算出ステップで算出されたレート誤差を積算してレート誤差積算値として算出するレート誤差積算ステップと、前記生成符号量取得ステップで取得された符号量と前フレームデータの符号量との差を変動量として算出する変動量算出ステップと、  前記変動量とレート誤差とレート誤差積算値とを入力して前記目標符号量の更新を行う目標符号量更新ステップと、前記変動量とレート誤差とレート誤差積算値とを入力して前記符号化パラメータの更新を行う符号化パラメータ更新ステップとを含み、前記符号化パラメータ記憶ステップによって記憶された符号化パラメータを用いて、フレームデータを前記フレームデータ符号化ステップにより１回の符号化処理で符号化することを特徴としている。
【００３９】
このような動画符号化プログラムにおいて、前記符号化パラメータ更新ステップは、前記レート誤差を引数とする関数値と、前記レート誤差積算値を引数とする関数値と、前記変動量を引数とする関数値の３者の和に、前記生成符号量取得ステップで取得された符号量を引数とする関数値とを乗算して得られた値を符号化パラメータ更新量とし、この符号化パラメータ更新量に基づいて符号化パラメータの更新を行うことが好ましい。
【００４０】
また、この動画符号化プログラムにおいて、前記フレームデータ取得ステップが取得したフレームデータに対し、前記フレームデータ符号化ステップが前記符号化パラメータ記憶ステップで記憶された符号化パラメータを用いて符号化することによって生成された符号量が所定値を下回った時に、前記符号化パラメータ更新ステップの符号化パラメータ更新処理を抑止する符号化パラメータ更新抑止ステップを設けることが好ましい。
【００４１】
また、この動画符号化プログラムにおいて、前記フレームデータ取得ステップが取得したフレームデータに対し、前記フレームデータ符号化ステップが前記符号化パラメータ記憶ステップで記憶された符号化パラメータを用いて符号化することによって生成された符号量に基づいて算出されたレート誤差積算値が所定値を上回ったとき、フレーム間引き符号を生成するフレーム間引き符号生成ステップを設けることが好ましい。
【００４２】
また、この動画符号化プログラムにおいて、前記フレームデータ取得ステップが取得したフレームデータに対し、前記フレームデータ符号化ステップが前記符号化パラメータ記憶ステップで記憶された符号化パラメータを用いて符号化することによって生成された符号量に基づいて算出されたレート誤差積算値が所定値を下回ったとき、冗長符号を生成する冗長符号生成ステップを設けることが好ましい。
【００４３】
このように本発明では、符号化パラメータ制御にＰＩＤ制御的な手法を用いるが、ＰＩＤ制御そのものではない。すなわち、基本的には、レート誤差Ｅ（ｎ）を引数とする関数ＦＥ（Ｅ）、生成符号の変動量Ｄ（ｎ）を引数とする関数ＦＤ（Ｄ）、レート誤差の積算値を引数とする関数ＦＳ（Ｓ））の和に基づいて符号化パラメータ制御を行うが、それに加えて、生成符号量そのものも制御パラメータとして用いる。
【００４４】
また、動きが小さい、あるいは高周波成分の少ないシーンなどで符号量が所定値を下回ったときに符号化パラメータ更新処理を抑止する処理を加える。また、符合冗長化処理を加える。これによって、符号化パラメータが、短時間に高画質側へ振られ過ぎるのを防ぎ、その動きの小さい、あるいは高周波成分の小さいシーンから、動きの多い、あるいは高周波成分の多いシーンに移ったときに、符号量が急増してレート制御が困難となるのを防ぐことができる。また、符号冗長か処理により、データのアンダーフローを防ぐことができる。
【００４５】
さらに、それに加えて、符号量が多きすぎる場合はフレーム間引きを行う。
【００４６】
本発明が行うフレーム間引きは、たとえば、動きの多い、あるいは高周波成分の多いシーンに移ったときのフレームを間引き、動きの多くなる直前の動きの少なかったフレームを継続して用い、符号量に余裕が生じたところで、動きの激しい部分はできるだけそれに対応した符号量をフレームレートを落とすことなく送るという考え方であり、これによって、動きの激しい部分でのフレームレートの低下を防ぐ。
【００４７】
すなわち、本発明では、たとえば、動きが少ないシーンから動きが急激に多くなるシーンに変わるときに、符号量の急激な増大に対処するために、まずは、動きが急激に大きくなる直前の符合を継続して用いると言うことを指示する小さなフレーム間引き符号を送る。それにより、送ることのできる符号量に余裕ができた時点で、動きの多い画像に対応する符号をフレームレートの削減を行わずに送るようにしている。これは、動きの大きいデータにおいては、低フレームレートでデータを送り続けるよりは、フレーム間引きを行い、その後、通常のフレームレートでデータを送るほうが心理的に高画質に見えるということに対応するものであり、これによって、動きの小さいシーンから動きの激しいシーンに移るような場合、動きの激しいシーンで、より自然な動きの画像を生成することができる。
【００４８】
【発明の実施の形態】
以下、本発明の実施の形態について説明する。なお、この実施の形態で説明する内容は、本発明の動画符号化方法、動画符号化装置についての説明であるとともに、本発明の動画符号化処理プログラムの具体的な処理内容をも含むものである。
【００４９】
まず、本発明の基本的な考え方について説明する。本発明は、いわゆるＰＩＤ制御的な手法を、レート制御のための動画符号化パラメータ制御に用いる。ただし、従来から行われている一般的に行われている単純なＰＩＤ制御ではない。
【００５０】
ＰＩＤ制御そのものは、条件変動がそれ程大きくない場合に有効であるが、動画符号化においては、条件が大きく変化する可能性が多い。そのため、ＰＩＤ制御を単純に実行すると、ビットレートが破綻する場合が考えられる。これに対処するために、符号量が大きすぎる時にはフレーム間引き処理を、符号量が小さすぎる時には符号冗長化処理を付け加え、それらを連携して動作させることにより最適なレート制御を実現する。
【００５１】
ここで、ＰＩＤ制御のＰは比例を意味し、目標ビットレートとの単純な差に対応しパラメータを変化させ、Ｉは積分を意味し、上述の差の積分値に対してパラメータを変化させ、また、Ｄは微分を意味し、上述の差の微分値に対してパラメータを変化させる。
【００５２】
つまり、Ｐは基本的な部分として、誤差がプラスまたはマイナス方向に発生した場合、それを引き戻す方向に制御する。これを示したものが図１であり、レート誤差Ｅが正の方向に大きくなると、符号量を減らす方向に修正され、レート誤差Ｅが負の方向に大きくなると、符号量を増やす方向に修正される。なお、あるｎ番目のフレームにおけるレート誤差Ｅ（ｎ）は、生成符号量をＢ（ｎ）、目標符号量をＴＢ（ｎ）とすると、
Ｅ（ｎ）＝Ｂ（ｎ）−ＴＢ（ｎ）                            （１）
で表される。
【００５３】
Ｉはレート誤差の積算値に対して制御を行うものである。つまり、レート誤差そのものが小さくとも長時間にわたって、それが連続した場合には、トータルとして符号量と目標値との誤差が積算されてしまうために、符号量の制御量を大きくするようにする。これは従来技術１のＩＥＥＥ文献のＦＩＦＯ動作を行うバッファの考え方と類似のものである。このレート誤差の積算値に対する符号量制御を示したものが図２であり、レート誤差積算値Ｓが正の方向に所定量よりも大きくなると、符号量を減らす方向に修正され、レート誤差積算値Ｓが負の方向に所定量よりも大きくなると、符号量を増やす方向に修正される。なお、ｎ番目のフレームにおけるレート誤差積算値Ｓ（ｎ）は、
【００５４】
【数１】
2004289479.tif 000003
【００５５】
で表される。
【００５６】
また、Ｄは誤差に急に大きな変動が起こった場合、それに対応して符号量の制御量を大きくするものである。これを示したものが図３であり、変動量Ｄが正の方向に所定量よりも大きくなると、符号量を減らす方向に修正され、変動量Ｄが負の方向に所定量よりも大きくなると、符号量を増やす方向に修正される。なお、ｎ番目のフレームにおける生成符号量の変動量Ｄ（ｎ）は、
Ｄ（ｎ）＝Ｂ（ｎ）−Ｂ（ｎ−１）                      （３）
で表すことができる。
【００５７】
これは、急激な変化が起こった場合に、それをより速く修正するためのものであるが、この符号を逆にすれば、急激な変化に対する過剰な反応を抑制する目的で使用する事もできる。
【００５８】
たとえば、変動量Ｄが急に小さくなった場合（これは、動きが止まったときに相当する）は、Ｐ，Ｉの制御だけでは、より高画質側への符号化パラメータ修正が行われるが、これは本来無意味である。同時に、高画質側へ符号化パラメータが振られた状態においては、次に動きがあると、符号量が急増し、画質劣化を引き起こす。そのため、Ｄ成分が、符号化パラメータの高画質側への振られすぎを抑止する。
【００５９】
逆に、たとえば、変動量が急に大きくなった場合（これは、シーンが変わったり動きが激しくなったときに相当する）は、Ｐ，Ｉの制御だけでは、より低画質側への符号化パラメータ修正が行われるが、これも適切ではない。また、低画質側へ符号化パラメータが振られた状態においては、次に動きが少なくなったとき、符号量が急減し、画質劣化を引き起こす。そのためＤ成分が、符号化パラメータの低画質側への振られすぎを抑止する。
【００６０】
このように、ＰＩＤ制御は基本的には、上の３つのパラメータ、すなわち、レート誤差Ｅ（ｎ）を引数とする関数ＦＥ（Ｅ）、生成符号の変動量Ｄ（ｎ）を引数とする関数ＦＤ（Ｄ）、レート誤差の積算値を引数とする関数ＦＳ（Ｓ）の和であるが、本発明では、それに加えて、生成符号量そのものも制御パラメータとして用いる。すなわち、生成符号量を引数とする関数をＦＢ（Ｂ）とすれば、符号化パラメータの更新量ΔＰは、
ΔＰ＝ＦＢ（Ｂ）×｛ＦＥ（Ｅ）＋ＦＤ（Ｄ）＋ＦＳ（Ｓ）｝        （４）
と表すことができる。
【００６１】
この（４）式におけるＦＢ（Ｂ）は、符号化パラメータ更新重み係数（以下では単に更新重み係数という）としての意味を有し、生成符号量Ｂに対して図４に示すように、生成符号量Ｂがある下限値ＴＨ１以下である場合とある上限値ＴＨ２以上である場合は、ともにＦＢ（Ｂ）＝０である。したがって、生成符号量Ｂがある下限値ＴＨ１以下の場合とある上限値ＴＨ２以上の場合は、符号化パラメータΔＰは０となり、符号化パラメータの更新がなされない。
【００６２】
本発明では、この生成符号量Ｂがある下限値ＴＨ１以下である場合は冗長符号領域として作動し、生成符号量Ｂがある上限値ＴＨ２以上である場合はフレーム間引き領域として作動する。また、生成符号量Ｂが下限値ＴＨ１と上限値ＴＨ２との間は、更新重み係数ＦＢ（Ｂ）の大きさに応じた符号化パラメータ更新処理がなされる。
【００６３】
このように、状況に応じたフレーム間引き処理と符号冗長化処理が行われる。すなわち、画質を短時間に低画質側へ変化させないと言う処理のために、符号量が急激に多くなる状況（たとえば、動きの少ないシーンから急激に動きの激しいシーンに移り変わる状況）に対しては、その動きの激しい画像に移り変わったときの符号量の大きいフレームについてはフレーム間引き処理で対応する。このとき、符号量の大きいフレームに対応するデータは廃棄され、「その前のフレームを繰り返す」と言うフレーム間引き符号が生成され、動きの激しくなる直前の符号がそのまま用いられる。つまり、動きの大きくなったデータを低いフレームレートで符号化するよりは、それ以前のデータを継続させてトータル符号量の余裕をつくり、符号量の余裕が生じた時点で、動きの大きいデータをフレームレートを落とさずに通常のフレームレートで送るというような制御を行うものである。これは、動きの大きいデータは、より高いフレームレートで送るほうが心理的に高画質に見えるということを利用したものである。
【００６４】
また、画質を短時間に高画質側へ変化させないと言う処理のために符号量が少なくなる状況に対しては、符号冗長化処理で対応する。これは、たとえば、量子化において、量子化係数が１２で、１、２，３と符号化できる係数を、量子化係数が２で、６、１２、１８と符号化するような方法である。これらは、量子化係数と係数の積として、何れも１２、２４，３６を表すが、後者の方が桁数が大きく、より冗長な表現となる。
【００６５】
以下、本発明の具体的な実施形態について説明する。
【００６６】
図５は本発明の実施形態１の構成を説明する図であり、動画データ中より１フレーム分のフレームデータを取得するフレームデータ取得手段１と、フレームデータの符号化を制御するための符号化パラメータを記憶する符号化パラメータ記憶手段２と、この符号化パラメータを用いてフレームデータを符号化するフレームデータ符号化手段３と、符号化データ出力を出力する符号化データ出力手段４と、目標符号量を記憶する目標符号量記憶手段５と、フレームデータ符号化手段３によって生成された符号量（これをここでは生成符号量と呼ぶ）を取得する生成符号量取得手段６と、取得された生成符号量と目標符号量の誤差を算出するレート誤差算出手段７と、そのレート誤差を積算するレート誤差積算手段８と、前フレームデータに対応する符号量を記憶する前フレーム符号量記憶手段９と、この前フレーム符号量と生成符号量取得手段６で取得された現フレームの生成符号量との差を変動量として算出する変動量算出手段１０と、上述のレート誤差とレート誤差積算値と変動量とを入力して目標符号量を更新する目標符号量更新手段１１と、前フレーム符号量とレート誤差とレート誤差積算値と変動量を入力して符号化パラメータを更新する符号化パラメータ更新手段１２とを有している。
【００６７】
このような構成において、ある１フレーム分の符号化処理についてその処理手順を図６のフローチャートを参照しながら説明する。フレームデータ取得手段１は動画データからあるｎ番目のフレームのフレームデータを取得し（ステップＳ１）、その取得したフレームデータをフレームデータ符号化手段３が符号化を行い（ステップＳ２）、その生成符号量を生成符号量取得手段６が取得する（ステップＳ３）。
【００６８】
次に、レート誤差算出手段７が、生成符号量取得手段６で取得された生成符号量と目標符号量記憶手段５に記憶された目標符号量とを用いて、レート誤差Ｅ（ｎ）を上述の（１）式によって算出し、また、レート誤差積算手段８が、（２）式を用いてレート誤差積算値Ｓ（ｎ）を算出し、さらに、変動量算出手段１０が、前フレーム符号量記憶手段９に記憶された前フレーム符号量と現フレーム符号量（生成符号量取得手段６で取得された生成符号量）とから変動量Ｄ（ｎ）を算出する（ステップＳ４）。
【００６９】
そして、これら算出されたレート誤差値、レート誤差積算値、変動量に基づいて、符号化パラメータの更新および目標符号量の更新を行う。
【００７０】
たとえば、符号化パラメータ更新について説明すると、この符号化パラメータ更新は符号化パラメータ更新手段１１がこれらレート誤差値、レート誤差積算値、変動量から得られた符号化パラメータ更新量ΔＰによって符号化パラメータの更新を行う。この符号化パラメータ更新量ΔＰは、前述した（４）式によって求められるものである。なお、（４）式における右辺の｛ＦＥ（Ｅ）＋ＦＤ（Ｄ）＋ＦＳ（Ｓ）｝の項はいわゆるＰＩＤ制御に相当するもので、この｛ＦＥ（Ｅ）＋ＦＤ（Ｄ）＋ＦＳ（Ｓ）｝の項によって得られた値を符号化パラメータの更新量として用いて符号化パラメータの制御を行うことも状況によっては可能となる場合もあるが、本発明では、（４）式に示されるように、｛ＦＥ（Ｅ）＋ＦＤ（Ｄ）＋ＦＳ（Ｓ）｝の項に生成符号量Ｂを引数とする関数ＦＢ（Ｂ）を乗算することによって、符号化パラメータ更新量ΔＰを算出するようにしている。
【００７１】
このようにして、符号化パラメータ更新がなされ（ステップＳ５）、その更新された符号化パラメータを用いて符号化データを符号化しその符号化データを出力（ステップＳ６）し、さらに、（４）式を計算結果に基づいて目標符号量を更新する（ステップＳ７）。
【００７２】
図７は本発明の実施形態２を説明する構成図であり、図５で示した実施形態１の構成に符号化パラメータ抑止手段１３を追加したもので、状況に応じて符号化パラメータ更新手段での符号化パラメータ更新処理を抑制するような動作を可能とするものである。この図７に示す構成は図５で示した構成に符号化パラメータ抑止手段１３を追加しただけであり、その他は図５と同じであるので、同一構成要素には同一符号を付すことでそれらの説明は省略する。
【００７３】
符号化パラメータ抑止手段１３は、フレームデータ符号化手段３が符号化パラメータ記憶手段２に記憶された符号化パラメータを用いて符号化することによって生成された符号量が所定値を下回ったときに、符号化パラメータ更新手段１２の符号化パラメータ更新処理を抑止する動作を行うものである。これは、生成符号量が所定量（たとえば、図４に予め設定された下限値ＴＨ１）よりも小さい場合、高画質画側に符号化パラメータが振られすぎるのを防止するためである。
【００７４】
この図７の構成に対応する処理手順を示すものが図８のフローチャートである。この図８において、ステップＳ１１からステップＳ１４は図６のステップＳ１からステップＳ４と同じ処理であるので、ここでは、それ以降の処理について説明する。
【００７５】
図８のステップＳ１４では図６と同様に、レート誤差値、レート誤差積算値、変動量が算出されると、生成符号量（生成符号量取得手段６で生成された現フレームの生成符号量）が所定値以下か否かを判定し（ステップＳ１５）、生成符号量が所定値以下でなければ、図６のステップＳ５と同様の処理によって符号化パラメータの更新（ステップＳ１６）を行ったのちに、符号化データを出力し（ステップＳ１７）、目標符号量更新を行う（ステップＳ１８）。
【００７６】
一方、生成符号量が所定値以下であった場合は、符号化パラメータ更新を行わずに、ステップＳ１７の符号化データ出力の処理に入る。
【００７７】
このように、生成符号量が所定値以下となった場合は、符号化パラメータ抑止手段１３が符号化パラメ―タ更新手段１２に対して符号化パラメータ更新処理を抑止するように動作する。それによって、生成符号量が所定値（たとえば、図４に示す下限値ＴＨ１）よりも小さくなったような場合でも、符号化パラメータが高画質側に振られ過ぎるのを防止することができる。
【００７８】
図９は本発明の実施形態３を説明する構成図であり、図７で示した実施形態２の構成に冗長符号生成手段１４とフレーム間引き符号生成手段１５が追加されており、状況に応じて冗長符合生成処理またはフレーム間引き処理を行うようにしたものである。この図９に示す構成は図７で示した構成に冗長符号生成手段１４とフレーム間引き符号生成手段１５を追加しただけであり、その他は図４および図６と同じであるので、同一構成要素には同一符号を付すことでそれらの説明は省略する。
【００７９】
冗長符号生成手段１４は、レート誤差積算値が所定値を下回ったときに、冗長符号を生成するものであり、また、フレーム間引き符号生成手段１５は、レート誤差積算値が所定値を上回った時に、フレーム間引き符号を生成するものである。
【００８０】
この図９の構成に対応する処理手順を示すものが図１０のフローチャートである。この図１０において、ステップＳ２１からステップＳ２６は図８のステップＳ１１からステップＳ１６と同じ処理であるので、それ以降の処理について説明する。
【００８１】
ステップＳ２７において、レート誤差積算値が所定値以下か否かを判定し、レート誤差積算値が所定値（予め設定された下限値であり、これは図４のＴＨ１に相当する）以下であれば、符号化データを冗長化する処理を行う（ステップＳ２８）。また、レート誤差積算値が所定値以下でなければ、レート誤差積算値が所定値（予め設定された上限値であり、これは図４のＴＨ２に相当する）以上であるかを判定し（ステップＳ２９）、レート誤差積算値が所定値以上であれば符号化データをフレームデータ間引き符号に置換する（ステップＳ３０）。
【００８２】
また、レート誤差積算値がある範囲以内（図４において予め設定された下限値ＴＨ１から予め設定された上限値ＴＨ２の間）であれば、符号化データの冗長化や符号化データをフレーム間引き符号に置換するといった処理を行うことなく、通常の符号化データ出力、つまり、ステップＳ２６までの処理において制御された符号化パラメータを用いた符号化データ出力を行い（ステップＳ３１）、さらに、目標符号量更新を行う（ステップＳ３２）。
【００８３】
図１１は上述した実施形態３における符号化処理を説明する図であり、横軸に時間をとり、縦軸に積算符号量をとって、それぞれのフレームごとの符号量（太線で示す）の変化の一例を示すものである。また、細かい破線は目標とすべき平均ビットレート（目標値という）Ａを表し、荒い破線は下限値ＴＨ１と上限値ＴＨ２を表している。この下限値ＴＨ１と上限値ＴＨ２は図４における下限値ＴＨ１と上限値ＴＨ２に対応している。
【００８４】
この図１１の例に示すように、時間軸ｔに沿って、個々のフレームで生成される符号量が目標値Ａよりも大きくなれば、次のフレームの符号量を小さくするように符号化パラメータ制御を行い、逆に、あるフレームにおける符号量が目標値よりも小さくくなれば、次のフレームの符号量を大きくするように符号化パラメータ制御を行うというように、目標値Ａに近づくような符号化パラメータ制御を行う。
【００８５】
そして、たとえば、あるフレーム（図１１においては４番目のフレームＦ４）において符号量が上限値ＴＨ２以上となると、フレーム間引き処理を行って、そのフレームＦ４の符号化データは送らずに、次のフレームＦ５で２フレーム分の符号量を割り当てて送る。また、６番目のフレームＦ６のように符号量が下限値ＴＨ１以下となると、そのフレームＦ６において冗長符号化処理を行い、符号量を増やす処理を行う。
【００８６】
このような本発明の実施形態３の符号化処理と前述した各従来技術（従来技術１〜５）とを対比させるために、図１２から図１４にこれら従来技術による符号化処理を示す。これら図１２から図１４は図１１と同じく、横軸に時間、縦軸に積算符号量をとっている。
【００８７】
図１２は従来技術１（非特許文献１として挙げた技術）、従来技術２（特開平５−４１８６０号公報に記載の技術）、従来技術３（特開平１０−１０８１９７号公報に記載の技術）に対応する符号化処理を示すもので、これら従来技術１、従来技術２，従来技術３は、この図１２からもわかるように、ビットレートの変動をできるだけ少なくすることのみの制御であり、画像品質の時間的変動を抑えるというような概念はない。
【００８８】
また、図１３は従来技術４（特開平１１−２１５４９７号公報に記載の技術）に対応する符号化処理を示すもので、この図１３による処理は１パスでの符号化処理であり、この図１３で示す従来技術４の処理が図１２と大きく異なるのは、符号量が大きく変動した場合に、それを目標値Ａに近づけるような合わせ込みを行う処理に入り、目標値Ａに近づけるための合わせ込みを試行錯誤的に行う点である。
【００８９】
すなわち、この従来技術４の場合、符号化が可能か否かを判断する判断線を符号量の上限値ＴＨ２としての判断線（図示の荒い破線）を設定し、符号量がこの判断線を越えると、符号化パラメータを変更しながら複数回の試行錯誤的な調整を行って目標値に近づくような合わせ込み処理を行う必要がある。
【００９０】
これに対して、本発明では、試行錯誤的な合わせ込みを行うのではなく、符号量が上限値（図１１におけるＴＨ２）以上であれば、フレーム間引きを行い、符号量が下限値（図１１におけるＴＨ１）以下であれば、冗長化処理を行って符号量増やす処理を行うというように、本発明ではどのような場合であっても、常に１回しか符号化を行わないのが特徴であり、それによって、処理の高速化が図れる。
【００９１】
また、図１４は従来技術５（特開２０００−２３１５５号公報に記載の技術）に対応する符号化処理を示すもので、この従来技術５では、たとえば、複雑な画像データのように符号量が多い場合、要求されたフレームレートでは処理が不可能という判断を行い、そのような場合は、１フレーム分の間引きを行うというように予めフレームレートを落とす設定を行う。しかし、それでも、予測を超えた大きな符号量が発生したというような場合には、２フレーム分を間引くというように、状況によってはフレームレートの設定を変更するというようなフレームレート制御を行う。
【００９２】
これに対して、本発明はフレームレートを変更するという概念ではなく、前述したように、たとえば、符号量が上限値以上であれば、そのフレームを落とすという考え方である。
【００９３】
確かに、符号量が増大したときには、フレームを間引くという点だけを見れば、本発明は従来技術５と共通点はあるが、この従来技術５では、画像の動きが激しくなって符号量が急激に増大したような場合、その増大した符号量を送って、その増えすぎた符号量をリカバリするために次のフレームの間引き行うというようなフレームレート制御が行われるが、これでは、本来、動きが激しく、多くのフレームレートが必要である場合であっても、その部分でフレームレートが低くなるため、動きにギクシャク感が現れ、見た目に自然な動くの画像が得られないという問題がある。
【００９４】
これに対して、本発明では、動きが多くなったフレームそのものを間引き、動きの激しくなる直前の動きの少なかったフレームをそのまま継続して用い、送ることのできる符号量に余裕が生じたところで、動きの多い部分は、できるだけその動きの多い部分に対応した符号量を、フレームレートを落とすことなく送るという考え方であり、これによって、動きの激しい部分で、フレームレートの減少によって生じるギクシャク感が現れにくくなる。
【００９５】
すなわち、本発明では、たとえば、動きが少ないシーンから動きが急激に多くなるシーンに変わるときに、符号量の急激な増大に対処するために、まずは、動きが急激に大きくなる直前の画像をそのまま用い、送ることのできる符号量に余裕ができた時点で、動きの多い画像に対応する符号量をフレームレートを少なくすることなく送るようにしている。これによって、動きの小さいシーンから動きの激しいシーンに移るような場合、動きの激しいシーンで見た目に自然な動きの画像を生成することができる。
【００９６】
なお、本発明は上述の各実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲で種々変形実施可能となるものである。また、本発明は以上説明した本発明を実現するための処理手順が記述された処理プログラムを作成し、その処理プログラムをフロッピィディスク、光ディスク、ハードディスクなどの記録媒体に記録させておくこともでき、本発明は、その処理プログラムの記録された記録媒体をも含むものである。また、ネットワークから当該処理プログラムを得るようにしてもよい。
【００９７】
【発明の効果】
以上説明したように、本発明によれば、符号化パラメータが短時間に変化することで画質が短時間に変化することを防ぎ、これによって、見た目に自然な動きの画像を生成することができる。たとえば、動きが多い、あるいは高周波成分が多いなど高ビットレートが要求される部分において、符号化パラメータが短時間に低画質側へ振られ過ぎるのを防ぐことができ、これによって、このような動きが多い、あるいは高周波成分が多いシーンから動きの少ない、あるいは高周波成分の少ないシーンに移った時に、画質の劣化を防ぐことができる。また、逆に、動きが少ない、あるいは高周波成分が少ないなど低ビットレートで十分な部分において、符号化パラメータが、短時間に高画質側へ振られ過ぎるのを防ぐことができ、これによって、このような動きの少ない、あるいは高周波成分が少ないシーンから動きが多いあるいは高周波成分が多いシーンに移ったときに、符号量が急増してレート制御が困難となるのを防ぐことができる。
【図面の簡単な説明】
【図１】本発明の基本的な処理を説明するための図であり、レート誤差がプラスまたはマイナス方向に発生した場合の符号量制御を説明する図である。
【図２】本発明の基本的な処理を説明するための図であり、レート誤差積算値がプラスまたはマイナス方向にそれぞれ所定量を超えたときの符号量制御を説明する図である。
【図３】本発明の基本的な処理を説明するための図であり、生成符号の変動量がプラスまたはマイナス方向にそれぞれ所定量を超えたときの符号量制御を説明する図である。
【図４】生成符号量と符号パラメータ更新重みの関係を示す図である。
【図５】本発明の実施形態１を説明する構成図である。
【図６】実施形態１の処理手順を説明するフローチャートである。
【図７】本発明の実施形態２を説明する構成図である。
【図８】実施形態２の処理手順を説明するフローチャートである。
【図９】本発明の実施形態３を説明する構成図である。
【図１０】実施形態３の処理手順を説明するフローチャートである。
【図１１】本発明の実施形態３における符号化処理を説明する図である。
【図１２】従来技術１，２，３の符号化処理を説明する図である。
【図１３】従来技術４の符号化処理を説明する図である。
【図１４】従来技術５の符号化処理を説明する図である。
【図１５】従来技術１の符号化処理を説明する構成図である。
【図１６】図１５で示した従来技術１におけるバッファ１０６の使用量に対する符号化パラメータ制御を説明する図である。
【図１７】図１６で示した動作を横軸にバッファ１０６の使用量、縦軸に符号化パラメータをとって示した図である。
【符号の説明】
１  フレームデータ取得手段
２  符号化パラメータ記憶手段
３  フレームデータ符号化手段
４  符号化データ出力手段
５  目標符号量記憶手段
６  生成符号量取得手段
７  レート誤差算出手段
８  レート誤差積算手段
９  前フレーム符号量記憶手段
１０  変動量算出手段
１１  目標符号量更新手段
１２  符号化パラメータ更新手段
１３  符号化パラメータ更新抑止手段
１４  冗長符号生成手段
１５  フレーム間引き符号生成手段
ＴＨ１  下限値
ＴＨ２  上限値
【図１】
2004289479.tif 000004
【図２】
2004289479.tif 000005
【図３】
2004289479.tif 000006
【図４】
2004289479.tif 000007
【図５】
2004289479.tif 000008
【図６】
2004289479.tif 000009
【図７】
2004289479.tif 000010
【図８】
2004289479.tif 000011
【図９】
2004289479.tif 000012
【図１０】
2004289479.tif 000013
【図１１】
2004289479.tif 000014
【図１２】
2004289479.tif 000015
【図１３】
2004289479.tif 000016
【図１４】
2004289479.tif 000017
【図１５】
2004289479.tif 000018
【図１６】
2004289479.tif 000019
【図１７】
2004289479.tif 000020