(57)【要約】【課題】符号化が困難なシーンが連続した場合における、割当て可能なビット数の激減やフレームレートの急変による画質の劣化を防止し得る画像符号化装置等を提供する。【解決手段】フレーム群目標ビット数導出部３１は、残りのフレームに割当て可能なフレーム群単位の総ビット数を記憶部３６から読み出し、前フレームの符号化で使用した発生ビット数を引いて更新し、次フレーム目標ビット数導出部３２に送信する。次フレーム目標ビット数導出部３２は、受信した総ビット数とフレームレート値Ｒｆを考慮した残りのフレーム数とに基づいて、次のフレームに割当てるビット数の目標値を算出する。平均フレームビット数導出部３３は、過去のフレームに割当てられたビット数の平均値を算出する。演算部３４は、算出されたビット数の平均値に所定の係数を掛け、これと上記のビット数の目標値とを比較し、値の大きい方を選択して量子化ステップ導出部３５に送信する。【選択図】　図２
2004007619.tif 000002
【特許請求の範囲】
【請求項１】
フレーム単位で順次入力される画像信号について符号化を行なう画像符号化装置であって、
前記符号化を行なう周期を示すフレームレートを受け付けるフレームレート受付手段と、
複数のフレームから構成されるフレーム群に全体として割り当て可能な総ビット数を特定する総ビット数特定手段と、
前記受け付けられたフレームレートと既に符号化されたフレームのフレーム数とに基づいて、前記フレーム群における未だ符号化されていないフレームのフレーム数を特定するフレーム数特定手段と、
前記特定された総ビット数と前記特定されたフレーム数とに基づいて、次に符号化するフレームに割り当てるビット数の目標値を算出する目標ビット数算出手段と、
前記算出されたビット数の目標値を用いて、次に符号化するフレームに係る量子化ステップを導出する量子化ステップ導出手段と、
前記導出された量子化ステップに基づいて量子化を行ない、当該量子化に基づいて符号化を行なう符号化手段と
を備えることを特徴とする画像符号化装置。
【請求項２】
前記画像符号化装置は、さらに、
前記フレーム群におけるフレームの符号化に伴って割り当てが確定したビット数の平均値を算出する平均値算出手段と、
前記算出された、前記ビット数の目標値と前記ビット数の平均値とに対して所定の演算を行なって新たなビット数の目標値を特定する演算手段とを備え、
前記量子化ステップ導出手段は、前記演算手段によって特定されたビット数の目標値を用いて量子化ステップを導出する
ことを特徴とする請求項１記載の画像符号化装置。
【請求項３】
前記総ビット数特定手段は、
前記フレーム群の先頭のフレームが所定のフレームの場合は、前記全体として割り当て可能なビット数の初期化を行なう総ビット数初期化部と、
前記全体として割り当て可能なビット数から直前の前記符号化により割り当てが確定したビット数を減じて更新する総ビット数更新部とを備える
ことを特徴とする請求項２記載の画像符号化装置。
【請求項４】
前記フレーム数特定手段は、
前記フレーム群における未だ符号化されていないフレームが符号化に要する期間を特定する対象期間特定部と、
前記フレーム群における一のフレームを符号化する毎に、前記受け付けた第２のフレームレートに基づいて前記符号化に要する期間を減じて更新する期間更新部と、
前記更新された符号化に要する期間と前記受け付けられたフレームレートとに基づいて、前記フレーム数を算出するフレーム数算出部とを備える
ことを特徴とする請求項３記載の画像符号化装置。
【請求項５】
前記目標ビット数算出手段は、
前記総ビット数更新部によって更新された総ビット数を前記特定されたフレーム数で除することによって前記ビット数の目標値を算出する
ことを特徴とする請求項４記載の画像符号化装置。
【請求項６】
前記目標ビット数算出手段は、さらに、
前記算出されたビット数の目標値に対して、所定の係数を乗じて新たなビット数の目標値とする
ことを特徴とする請求項５記載の画像符号化装置。
【請求項７】
前記演算手段は、
前記算出された、前記ビット数の目標値と前記ビット数の平均値とを比較して大きい方を前記新たなビット数の目標値として特定する
ことを特徴とする請求項５記載の画像符号化装置。
【請求項８】
前記演算手段は、さらに、
予め設定された下限値と前記特定されたビット数の目標値とを比較して大きい方を前記新たなビット数の目標値として特定する
ことを特徴とする請求項７に記載の画像符号化装置。
【請求項９】
前記平均値算出手段は、さらに、
前記算出されたビット数の平均値に対して、所定の係数を乗じて新たなビット数の平均値とする
ことを特徴とする請求項７に記載の画像符号化装置。
【請求項１０】
前記フレーム群は、複数のフレームセットから構成され、一のフレームセットに対して符号化を終えると、未だ符号化されていない新たなフレームセットを順次追加して新たなフレーム群を構成し、
前記フレームセットを構成するフレームは、ＭＰＥＧ規格におけるＩピクチャ、Ｐピクチャ及びＢピクチャの何れかであり、かつ、当該フレームセットを構成する各ピクチャの並び方が同じであり、
前記総ビット数特定手段は、さらに、
前記フレーム群における前記一のフレームセットに対する符号化に伴ってビット数の割り当てが確定する毎に、予め他のフレームセットに分配されていたビット数と前記一のフレームセットにおいて確定したビット数との差分を加味して、前記新たなフレーム群に全体として割り当て可能な総ビット数と、個々のフレームセットにおける割り当て可能なビット数とを特定し、
前記フレーム数特定手段は、さらに、
前記受け付けられたフレームレートと既に符号化されたフレームのフレーム数とに基づいて、前記他のフレームセットにおける未だ符号化されていないフレームのフレーム数を特定し、
前記目標ビット数算出手段は、さらに、
前記他のフレームセットに割り当て可能なビット数と前記特定されたフレーム数とに基づいて、次に符号化するフレームに割り当てるビット数の目標値を算出する
ことを特徴とする請求項１記載の画像符号化装置。
【請求項１１】
前記フレーム群の最初のフレームは画面内符号化されるフレームである
ことを特徴とする請求項１記載の画像符号化装置。
【請求項１２】
前記フレーム群の最後のフレームは画面内符号化されるフレームの直前のフレームである
ことを特徴とする請求項１記載の画像符号化装置。
【請求項１３】
前記フレーム群の最初のフレームは画面内符号化されるフレームであり、最後のフレームは画面内符号化されるフレームの直前のフレームであることを特徴とする請求項１記載の画像符号化装置。
【請求項１４】
前記画像符号化装置は、さらに、
既に符号化されたが未送信のデータを格納する格納手段と、
前記格納手段に格納されているデータ量に基づいて、次に符号化するフレーム係るフレームレートを計算するフレームレート計算手段を備え、
前記フレームレート受付手段は、前記計算されたフレームレートを受け付ける
ことを特徴とする請求１記載の画像符号化装置。
【請求項１５】
フレーム単位で順次入力される画像信号に対して符号化を行なう画像符号化方法であって、
前記符号化を行なう周期を示すフレームレートを受け付けるフレームレート受付ステップと、
複数のフレームから構成されるフレーム群に全体として割り当て可能な総ビット数を特定する総ビット数特定ステップと、
前記受け付けられたフレームレートと既に符号化されたフレームのフレーム数とに基づいて、前記フレーム群における未だ符号化されていないフレームのフレーム数を特定するフレーム数特定ステップと、
前記特定された総ビット数と前記特定されたフレーム数とに基づいて、次の符号化するフレームに割り当てるビット数の目標値を算出する目標ビット数算出ステップと、
前記算出されたビット数の目標値を用いて、次に符号化するフレームに係る量子化ステップを導出する量子化ステップ導出ステップと、
前記導出された量子化ステップに基づいて量子化を行ない、当該量子化に基づいて符号化を行なう符号化ステップと
を含むことを特徴とする画像符号化方法。
【請求項１６】
前記画像符号化方法は、さらに、
前記フレーム群におけるフレームの符号化に伴って割り当てが確定したビット数の平均値を算出する平均値算出ステップと、
前記算出された、前記ビット数の目標値と前記ビット数の平均値とに対して、所定の演算を行なって新たなビット数の目標値として特定する演算ステップとを含み、
前記量子化ステップ算出ステップは、前記演算ステップによって算出されたビット数の目標値を用いて量子化ステップを導出する
ことを特徴とする請求項１５記載の画像符号化方法。
【請求項１７】
フレーム単位で入力される画像信号に対して符号化を行なう画像符号化装置のためのプログラムであって、
前記符号化を行なう周期を示すフレームレートを受け付けるフレームレート受付ステップと、
複数のフレームから構成されるフレーム群に全体として割り当て可能な総ビット数を特定する総ビット数特定ステップと、
前記受け付けられたフレームレートと既に符号化されたフレームのフレーム数とに基づいて、前記フレーム群における未だ符号化されていないフレームのフレーム数を特定するフレーム数特定ステップと、
前記特定された総ビット数と前記特定されたフレーム数とに基づいて、次に符号化するフレームに割り当てるビット数の目標値を算出する目標ビット数算出ステップと、
前記算出されたビット数の目標値を用いて、次の符号化するフレームに係る量子化ステップを導出する量子化ステップ導出ステップと、
前記導出された量子化ステップに基づいて量子化を行ない、当該量子化に基づいて符号化を行なう符号化ステップと
を含むことを特徴とするプログラム。
【請求項１８】
前記プログラムは、さらに、
前記フレーム群におけるフレームの符号化に伴って割り当てが確定したビット数の平均値を算出する平均値算出ステップと、
前記算出された、前記ビット数の目標値と前記ビット数の平均値とに対して、所定の演算を行なって新たなビット数の目標値として特定する演算ステップとを含み、
前記量子化ステップ算出ステップは、前記演算ステップによって算出されたビット数の目標値を用いて量子化ステップを導出する
ことを特徴とする請求項１７記載のプログラム。
【請求項１９】
フレーム単位で順次入力される画像信号に対して符号化を行なう画像符号化装置のためのプログラムが記録されたコンピュータが読み取り可能な記録媒体であって、
前記プログラムは、
前記符号化を行なう周期を示すフレームレートを受け付けるフレームレート受付ステップと、
複数のフレームから構成されるフレーム群に全体として割り当て可能な総ビット数を特定する総ビット数特定ステップと、
前記受け付けられたフレームレートと既に符号化されたフレームのフレーム数とに基づいて、前記フレーム群における未だ符号化されていないフレームのフレーム数を特定するフレーム数特定ステップと、
前記特定された総ビット数と前記特定されたフレーム数とに基づいて、次に符号化するフレームに割り当てるビット数の目標値を算出する目標ビット数算出ステップと、
前記算出されたビット数の目標値を用いて、次の符号化するフレームに係る量子化ステップを導出する量子化ステップ導出ステップと、
前記導出された量子化ステップに基づいて量子化を行ない、当該量子化に基づいて符号化を行なう符号化ステップと
を含むことを特徴とする記録媒体。
【請求項２０】
フレーム単位で順次入力される画像信号に対して符号化を行なう画像符号化装置のためのプログラムが記録されたコンピュータが読み取り可能な記録媒体であって、
前記プログラムは、
前記符号化を行なう周期を示すフレームレートを受け付けるフレームレート受付ステップと、
複数のフレームから構成されるフレーム群の全体として割り当て可能な総ビット数を特定する総ビット数特定ステップと、
前記受け付けられたフレームレートと既に符号化されたフレームのフレーム数とに基づいて、前記フレーム群における未だ符号化されていないフレームのフレーム数を特定するフレーム数特定ステップと、
前記特定された総ビット数と前記特定されたフレーム数とに基づいて、次に符号化するフレームに割り当てるビット数の目標値を算出する目標ビット数算出ステップと、
前記フレーム群におけるフレームの符号化に伴って割り当てが確定したビット数の平均値を算出する平均値算出ステップと、
前記算出された、前記ビット数の目標値と前記ビット数の平均値とに対して、所定の演算を行なって新たなビット数の目標値として特定する演算ステップと、前記特定されたビット数の目標値を用いて、次に符号化するフレームに係る量子化ステップを導出する量子化ステップ導出ステップと、
前記導出された量子化ステップに基づいて量子化を行ない、当該量子化に基づいて符号化を行なう符号化ステップとを含む
ことを特徴とする記録媒体。
【請求項２１】
フレーム単位で順次入力される画像信号に対して符号化を行なう画像符号化装置であって、
前記画像信号の周波数成分を前記フレーム毎に量子化し、前記量子化された結果に基づいて符号化する符号化手段と、
複数のフレームから構成されるフレーム群に全体として割り当てられた総ビット数と割り当て済みのビット数とに基づいて、次に符号化するフレームの量子化の幅を計算する量子化幅計算手段と、
前記計算された量子化の幅に基づいて、次に符号化するフレームについて符号化すべき周期を示す符号化フレームレートを計算するフレームレート計算手段と、
前記符号化フレームレートに基づいて、前記符号化手段に入力される前記画像信号の取捨を制御する入力制御手段とを備え、
前記符号化手段は、入力された前記画像信号を前記量子化の幅で量子化する
ことを特徴とする画像符号化装置。
【請求項２２】
前記画像符号化装置は、さらに、
前記符号化手段によって符号化された符号化データを保持し、保持している前記符号化データを一定量ずつ外部に出力する送信バッファを備え、
前記量子化幅計算手段は、前記送信バッファ内に未出力のまま残留している符号化データのデータ量に基づいて前記量子化の幅を計算する
ことを特徴とする請求項２１記載の画像符号化装置。
【請求項２３】
前記量子化幅計算手段は、前記符号化によって発生する符号量が所定量を超えると、次に符号化するフレームに係る前記量子化の幅を大きくする
ことを特徴とする請求項２２記載の画像符号化装置。
【請求項２４】
前記量子化幅計算手段は、
前記符号化によって発生する符号量と、所定のしきい値との大小を比較する比較部と、
前記比較の結果、前記発生符号量が前記しきい値を超えると、直前の入力フレームに対して計算された前記量子化の幅に、１より大きい所定の係数を乗算する乗算部と、
前記乗算結果を量子化幅の予測値として、所定の値の範囲から前記予測値に最も近い値を、次に符号化するフレームに係る量子化の幅を決定する量子化幅決定部と
を備えることを特徴とする請求項２３記載の画像符号化装置。
【請求項２５】
前記量子化幅計算手段は、さらに、前記符号化によって発生する符号量が所定量以下になると前記量子化の幅が小さくなるよう計算する
ことを特徴とする請求項２４記載の画像符号化装置。
【請求項２６】
前記乗算部は、さらに、前記比較の結果、前記発生符号量が前記しきい値以下の場合、直前の入力フレームに対して計算された前記量子化の幅に、１より小さい所定の係数を乗算する
ことを特徴とする請求項２５記載の画像符号化装置。
【請求項２７】
前記乗算部は、さらに、前記比較の結果、前記発生符号量が前記しきい値より大きい場合、直前の入力フレームに対して計算された前記量子化の幅に、１より大きい所定の係数を乗算する
ことを特徴とする請求項２５記載の画像符号化装置。
【請求項２８】
前記量子化幅計算手段は、さらに、
前記符号化によって発生する符号量が多くなるほど、前記量子化の幅を大きくする係数の値を前記発生符号量に対応付けて示した係数表を予め保持している係数表保持部と、
前記係数表に基づいて、直前の入力フレームに対して計算された前記量子化の幅に、前記発生符号量に応じた係数を乗算する第２乗算部とを備え、
前記量子化幅決定部は、前記第２乗算部による乗算結果を量子化幅の予測値として、次に符号化するフレームに係る量子化の幅を決定する
ことを特徴とする請求項２４記載の画像符号化装置。
【請求項２９】
前記量子化幅計算手段は、直近のフレームにおいて量子化に用いられた前記量子化の幅に前記係数を乗算して、次に符号化するフレームに係る量子化の幅を計算する
ことを特徴とする請求項２４記載の画像符号化装置。
【請求項３０】
前記フレームレート計算手段は、前記量子化の幅の予測値が所定のしきい値を超えると、次に符号化するフレームに係る符号化フレームレートを大きくする
ことを特徴とする請求項２４記載の画像符号化装置。
【請求項３１】
前記フレームレート計算手段は、前記量子化の幅の予測値が前記しきい値を超えると、現在の符号化フレームレートに、１より大きい所定の係数を乗算して、次に符号化するフレームに係る符号化フレームレートとする
ことを特徴とする請求項３０記載の画像符号化装置。
【請求項３２】
前記フレームレート計算手段は、さらに、前記量子化幅の予測値が前記しきい値以下になると、次に符号化するフレームに係る符号化フレームレートを小さくする
ことを特徴とする請求項３０記載の画像符号化装置。
【請求項３３】
前記フレームレート計算手段は、さらに、前記量子化幅の予測値が前記しきい値以下になると、現在の符号化フレームレートに、１より小さい所定の係数を乗算して、次に符号化するフレームに係る符号化フレームレートとする
ことを特徴とする請求項３１記載の画像符号化装置。
【請求項３４】
前記フレームレート計算手段は、決定された前記量子化の幅が所定のしきい値を超えると、次に符号化するフレームに係る符号化フレームレートを大きくし、前記しきい値以下になると、次に符号化するフレームに係る符号化フレームレートを小さくする
ことを特徴とする請求項２４記載の画像符号化装置。
【請求項３５】
前記フレームレート計算手段は、
決定された前記量子化の幅の平均値を計算する量子化幅平均部を備え、
前記フレームレート計算手段は、前記量子化の幅の平均値が所定のしきい値を超えると、次に符号化するフレームに係る符号化フレームレートを大きくし、前記しきい値以下になると、次に符号化するフレームに係る符号化フレームレートを小さくする
ことを特徴とする請求項２４記載の画像符号化装置。
【請求項３６】
前記フレームレート計算手段は、前記符号化によって発生した符号量が所定のしきい値を超えた場合、さらに、前記計算された符号化フレームレートに１より小さい所定の係数を乗算して、新たに前記計算された符号化フレームレートとする
ことを特徴とする請求項２１記載の画像符号化装置。
【請求項３７】
前記フレームレート計算手段は、前記符号化によって発生した符号量が所定のしきい値以下の場合、さらに、前記計算された符号化フレームレートに１より大きい所定の係数を乗算して、新たに前記計算された符号化フレームレートとする
ことを特徴とする請求項２１記載の画像符号化装置。
【請求項３８】
前記入力制御手段は、さらに、
前記フレームレート計算手段の計算結果である符号化フレームレートの平均値を算出するフレームレート平均部を備え、
前記入力制御手段は、前記フレームレート平均部によって算出された前記平均値に基づいて、前記入力される画像信号の取捨を制御する
ことを特徴とする請求項２１記載の画像符号化装置。
【請求項３９】
フレーム単位の画像信号を符号化する画像符号化装置のためのプログラムであって、
前記画像信号の周波数成分を前記フレーム毎に量子化し、前記量子化された結果に基づいて符号化する符号化ステップと、
前記フレーム群に係る総ビット数と前記割り当て済みのビット数に基づいて、次に符号化すべきフレームの量子化の幅を計算する量子化幅計算ステップと、
前記計算された量子化の幅に基づいて、次に符号化するフレームについて符号化すべき周期を示す符号化フレームレートを計算するフレームレート計算ステップと、
前記符号化フレームレートに基づいて、前記符号化ステップに入力される前記画像信号の取捨を制御する入力制御ステップとを含み、
前記符号化ステップは、入力された前記画像信号を前記量子化の幅で量子化することを特徴とするプログラム。
【請求項４０】
フレーム単位の画像信号を符号化する画像符号化装置のためのプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記プログラムは、
前記画像信号の周波数成分を前記フレーム毎に量子化し、前記量子化された結果に基づいて符号化する符号化ステップと、
前記フレーム群に係る総ビット数と前記割り当て済みのビット数に基づいて、次に符号化すべきフレームの量子化の幅を計算する量子化幅計算ステップと、
前記計算された量子化の幅に基づいて、次に符号化するフレームについて符号化すべき周期を示す符号化フレームレートを計算するフレームレート計算ステップと、
前記符号化フレームレートに基づいて、前記符号化ステップに入力される前記画像信号の取捨を制御する入力制御ステップとを含み、
前記符号化ステップは、入力された前記画像信号を前記量子化の幅で量子化することを特徴とする記録媒体。
【請求項４１】
フレーム単位の画像信号を符号化する画像符号化方法であって、
前記画像信号の周波数成分を前記フレーム毎に量子化し、前記量子化された結果に基づいて符号化する符号化ステップと、
前記フレーム群に係る総ビット数と前記割り当て済みのビット数に基づいて、次に符号化すべきフレームの量子化の幅を計算する量子化幅計算ステップと、
前記計算された量子化の幅に基づいて、次に符号化するフレームについて符号化すべき周期を示す符号化フレームレートを計算するフレームレート計算ステップと、
前記符号化フレームレートに基づいて、前記符号化ステップに入力される前記画像信号の取捨を制御する入力制御ステップとを含み、
前記符号化ステップは、入力された前記画像信号を前記量子化の幅で量子化することを特徴とする画像符号化方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像符号化技術及び画像復号化技術に関し、特に可変ビットレート方式や可変フレームレート方式を用いた画像符号化技術に関する。
【０００２】
【従来の技術】
従来、ＭＰＥＧ（Ｍｏｖｉｎｇ　Ｐｉｃｔｕｒｅ　Ｅｘｐｅｒｔ　Ｇｒｏｕｐ）規格等の画像符号化技術におけるビットレートを制御する方式の一つに可変ビットレート（Ｖａｒｉａｂｌｅ　Ｂｉｔ　Ｒａｔｅ）方式がある。これは、主に符号化データを蓄積するバッファメモリの容量等の制約や、記録媒体に記録する際の映像記録時間の制約を守るため、符号化される画像の複雑さに伴う局所的なビットレートの変化を許容しつつ、所定の時間長（例えば、１秒間）における発生ビット数を一定内に抑えるという制御方式である。つまり、符号化が困難なシーンにおいては符号化のためのビットを多く発生させ（ビットレートが高くなり）、符号化が容易なシーンでは発生させるビット数を少なくする（ビットレートが低くなる）ことにより、シーンに応じて割り当てるビット数を制御するものである。即ち、一定時間内の発生ビット数を一定に保ちつつ（即ち、バッフメモリ容量の制約や記録時間の制約の範囲で）、高画質な画像を再現できるように符号化を行なおうとするものである（例えば、特許文献１参照）。
【０００３】
上記従来の可変ビットレート方式を用いた画像符号化装置について、図３２の画像符号化装置１００を用いて説明する。この画像符号化装置１００は、直交変換部１０５、量子化部１０６、可変長符号化部１０７、逆量子化部１０８、逆直交変換部１０９、フレームメモリ１０２、動き検出部１０３、動き補償部１０４及びビットレート制御部１１０から構成されている。
【０００４】
直交変換部１０５は、受信した被符号化フレーム信号１０１（画像信号データ）に対して、マクロブロック単位で離散コサイン変換（ＤＣＴ：Ｄｉｓｃｒｅｔｅ　ＣｏｓｉｎｅＴｒａｎｓｆｏｒｍ）を行ない、ＤＣＴ係数を生成して量子化部１０６に出力する。ここで、Ｉ（Ｉｎｔｒａ　ｃｏｄｅｄ）ピクチャのフレームについては、画面内符号化モードでＤＣＴ演算が行われる。Ｐ（Ｐｒｅｄｉｃｔｉｖｅ　ｃｏｄｅｄ）ピクチャのフレームについては、時間的に過去に位置するＩピクチャ又はＰピクチャに基づいて前方向予測符号化モードでＤＣＴ演算が行なわれる。Ｂ（Ｂｉｄｉｒｅｃｔｉｏｎａｌｌｙ）ピクチャのフレームについては、時間的に前後に位置するＩピクチャ又はＰピクチャに基づいて両方向予測符号化モードでＤＣＴ演算が行なわれる。
【０００５】
量子化部１０６は、直交変換部１０５から入力したＤＣＴ係数に対し、マクロブロック毎にビットレート制御部１１０から受信した量子化ステップ（又は量子化パラメータでもよい。）で量子化を行ない、可変長符号化部１０７及び逆量子化部１０８に出力する。可変長符号化部１０７は、量子化部１０６から入力した量子化されたＤＣＴ係数等について可変長符号化及び多重化を行ない、出力バッファ（図示せず）に出力する。
【０００６】
逆量子化部１０８は、量子化部１０６から受信した量子化されたＤＣＴ係数に対して逆量子化演算を行ない、逆直交変換部１０９に出力する。逆直交変換部１０９は、逆量子化部１０８から入力した逆量子化されたＤＣＴ係数に基づいて逆直交変換演算を行なって画像信号データを再現し、フレームメモリ１０２に出力する。
【０００７】
フレームメモリ１０２は、Ｉピクチャ又はＰピクチャの復号化された画像信号データと動き補償部１０４で生成された動き補償データとを加算して格納する。動き検出部１０３は、フレームメモリ１０２に格納されている参照画像から動きベクトルを検出し、この動きベクトルを表すデータを動き補償部１０４に出力する。
【０００８】
動き補償部１０４は、Ｐピクチャ又はＢピクチャの符号化のためにフレームメモリ１０２に格納されている参照画像と動き検出部１０３から入力した動きベクトルを表すデータに基づいて動き補償データ（参照画像データ）を生成する。ビットレート制御部１１０は、可変長符号化部１０７から発生ビット数を受信し、この発生ビット数に基づいて、量子化ステップを決定し、この量子化ステップを量子化部１０６に送信する。
【０００９】
全体制御部１４０は、例えば、ＲＯＭやＲＡＭ等を備えるマイクロコンピュータ等であり、画像符号化装置１００全体の制御を行なう部分である。全体制御部１４０は、制御信号等に基づいて、それぞれの処理タイミングの制御等を行なう。
【００１０】
図３３は、従来の画像符号化装置１００におけるビットレート制御部１１０の機能構成を示すブロック図である。図３３に示されるように、ビットレート制御部１１０は、フレーム群目標ビット数導出部１１１、次フレーム目標ビット数導出部１１２及び量子化ステップ導出部１１３から構成される。
【００１１】
フレーム群目標ビット数導出部１１１は、可変長符号化部１０７から発生ビット数Ｎｎ１３１を受信して内部のメモリ（図示せず）に格納する。この際、フレーム群目標ビット数導出部１１１は、発生ビット数Ｎｎ１３１を受信した回数（つまり、符号化を行なったフレームのフレーム数）をカウントする。さらに、フレーム群目標ビット数導出部１１１は、フレーム群単位で未だ符号化されていないフレームに対する割り当て可能なビット数を算出し、次フレーム目標ビット数導出部１１２に送信すると共に、実際の符号化によって生じた発生ビット数Ｎｎ１３１を用いて、上記の割り当て可能なビット数を順次更新する。ここで、「フレーム群」とは、所定の時間長に符号化され得るフレームの集まりをいう。
【００１２】
次フレーム目標ビット数導出部１１２は、フレーム群目標ビット数導出部１１１から受信したフレーム群単位で割り当て可能なビット数に基づいて、次のフレームに割り当てるビット数の目標値を導出し、量子化ステップ導出部１１３に送信する。上記目標値は、その時点のフレーム群単位で割り当て可能なビット数を残りのフレーム数で除することによって算出する。
【００１３】
量子化ステップ導出部１１３は、次フレーム目標ビット数導出部１１２から受信した次のフレームに割り当てるビット数の目標値に基づいて、量子化ステップ１４１（量子化パラメータでもよい。）を算出して量子化部１０６に出力する。
【００１４】
図３４は、従来の画像符号化装置１００の全体制御部１４０及びビットレート制御部１１０における処理の流れを示すフローチャートである。
【００１５】
最初に、ビットレート制御部１１０によって発生ビット数Ｎｎ１３１が受信されると（Ｓ１４０１）、全体制御部１４０は、次の符号化対象のフレームがフレーム群の先頭か否かを判断する（Ｓ１４０２）。この場合、次のフレームがフレーム群の先頭のフレームの場合は（Ｓ１４０２：Ｙｅｓ）、ビットレート制御部１１０は、割当可能ビット数Ｎａ、割当対象期間Ｔａ及び割当対象フレーム数Ｎｔの初期化を行なう（Ｓ１４０５〜１４０７）。ここで、”ＮＡ”は、フレーム群単位に割り当てるビット数の初期値である。”ＴＡ”は、フレーム群全体の期間である。”Ｒｆ”は、本画像符号化装置１００の符号化のフレームレートである。
【００１６】
一方、次のフレームがフレーム群の先頭のフレームでない場合は（Ｓ１４０２：Ｎｏ）、ビットレート制御部１１０は、割当可能ビット数Ｎａ及び割当対象期間Ｔａの更新を行なう（Ｓ１４０３〜１４０４）。
【００１７】
次に、ビットレート制御部１１０は、割当可能ビット数Ｎａと割当対象フレーム数Ｎｔに基づいて割当ビット数Ｎｂを算出し（Ｓ１４０８）、割当対象フレーム数Ｎｔの更新（デクリメント）を行なう（Ｓ１４０９）。
【００１８】
この後、ビットレート制御部１１０は、符号化するフレームについて間引きが必要か否かを判定し、間引きが必要な場合はその旨を全体制御部１４０に通知し（Ｓ１４１０：Ｙｅｓ）する。一方、間引きをする必要がない場合は（Ｓ１４１０：Ｎｏ）、量子化ステップを算出して量子化部１０６に出力する（Ｓ１４１１）。
【００１９】
全体制御部１４０及びビットレート制御部１１０は、以上の処理を符号化処理が終わるまで繰り返す（Ｓ１４０１〜１４１２）。
【００２０】
図３５は、従来のビットレート制御部１１０における割当ビット数Ｎｂの算出方法の具体例を示した図である。なお、この場合は、便宜上、発生ビット数Ｎｎ１３１と割当ビット数Ｎｂとは、一致するものとする。
【００２１】
図３５の例では、３０［ｆｐｓ］で入力される画像信号データ（被符号化フレーム信号１０１）に対して、１５［ｆｐｓ］のフレームレートで符号化が行なわれ、原則として１５フレームで構成されるフレーム群が毎秒１つ生成されることとする。この例では、入力される被符号化フレーム信号１０１を「入力画像フレーム番号１７０１」で表し、符号化フレーム信号１２１を「フレーム群フレーム番号１７０２」で表している。図３５において、フレーム群フレーム番号１７０２及び発生ビット数Ｎｎ１３１の欄が「×」となっているのは、対応する入力画像フレーム番号１７０１のフレームについては符号化がされず、「間引き」されたことを表す。
【００２２】
さらに、図３５において、例えば入力画像フレーム番号「９」（すなわち、フレーム群フレーム番号「５」）に対する発生ビット数Ｎｎは、既に４つのフレームに割り当てられたビット数の合計が１１８０ビットで、残りのフレーム数が「１１」であるため、（（３６００−１１８０）／１１＝２２０ビット）となる。
【００２３】
一方、入力画像フレーム番号「１３」（すなわち、フレーム群フレーム番号「６」）に対する発生ビット数は、入力画像フレーム番号「１１」が「間引き」されているので、既に割り当てられたビット数の合計が１４００ビットで、残りのフレーム数が「９」であるため、小数点以下を切り捨てて（（３６００−１４００）／９＝２４４ビット）となる。
【００２４】
なお、図３５の入力画像フレーム番号「２９」に対応するフレーム群フレーム番号１７０２の欄に記載されている”（１４）”は、入力画像フレーム番号１７０１が「１３」の時点における、最後のフレーム群フレーム番号１７０２の予想値である。
【００２５】
以上のように、従来の画像符号化装置１００では、次の符号化対象のフレームにビットを割り当てている。
【００２６】
【特許文献１】
特開２００１−２５０１５号公報
【００２７】
【発明が解決しようとする課題】
しかしながら、上記の従来技術における可変ビットレートを用いた画像符号化装置１００においては、符号化が困難な（複雑な）フレームが連続する場合、量子化ステップを大きな値に変えても符号化に伴う発生ビット数が多くなる（この場合は、ビットレートの値が大きくなる）。すると、所定の時間長（１つのフレーム群）における発生ビット数を一定に保とうとするために、符号化が困難なフレームが連続した後のフレームについては、割り当てるビット数が少なくなってしまう。このため、後のフレームについては量子化ステップを大きくして符号化しなければならず、それらのフレームの画質が極端に劣化してしまうという第１の問題がある（この場合の現象としては、ビットレートが著しく小さな値となる）。
【００２８】
図３６は、上記従来技術の第１の問題を説明するための図である。図３６では、フレーム１６０１からフレーム１６０２までの１５枚のフレームをフレーム群と定義し、フレーム群毎に、目標値として（上記図３５に示されるように）３６００［ビット］を割り当てることとする。この場合、時刻ｔ１から符号化が困難なシーンが連続し、それらのフレームの符号化に多くのビットが割り当てられた場合は、フレーム群の後半に割り当て得るビット数が少なくなるため、量子化ステップを大きくする必要が出てくるが（これに伴ってビットレートが小さくなる）、量子化ステップを大きな値とした場合は、画質が極端に劣化する。図３６においては、「ｔ３−ｔ４」間で量子化ステップが特に大きくなっており、これに伴って画質の劣化が生じていると推測できる。
【００２９】
さらに、いよいよ割り当て得るビット数が少なくなり、フレーム群の途中でフレームレートを変化させなければ（すなわち、フレームを間引かなければ）ならなくなった場合は、フレームレートが変化したにも拘らず、１つのフレームに割り当てられるビット数は当初のフレームレートに基づいて決定されるので、フレームレートを下げたにも拘らずビット数を多く割り当てることができず、さらにフレームレートを下げるか、量子化ステップを粗くすることが必要となり、さらなる画質の劣化をきたすという第２の問題点がある。
【００３０】
図３７は、上記従来技術の第２の問題を説明するための図である。図３７の例では、符号化が困難なシーンが連続し、それらのフレームの符号化に多くのビットが割り当てられたため、フレームレートを徐々に下げた結果、フレーム間隔が大きく空いてしまい、結局、動きがぎこちない画像となり、画像としての品質が劣化する様子が示されている。
【００３１】
そこで、本発明は、上記課題に鑑みてなされたものであり、符号化が困難なシーンが連続した場合であっても、残りのフレームに割り当て得るビット数が極端に不足することによる画質の劣化を防止すると共に、符号化されるフレームのレートの変化をも考慮しながら高画質の画像のための符号化を可能にする画像符号化装置及びその方法を提供することを目的とする。
【００３２】
【課題を解決するための手段】
上記目的を達成するために、本発明に係る画像符号化装置は、フレーム単位で順次入力される画像信号について符号化を行なう画像符号化装置であって、前記符号化を行なう周期を示すフレームレートを受け付けるフレームレート受付手段と、複数のフレームから構成されるフレーム群に全体として割り当て可能な総ビット数を特定する総ビット数特定手段と、前記受け付けられたフレームレートと既に符号化されたフレームのフレーム数とに基づいて、前記フレーム群における未だ符号化されていないフレームのフレーム数を特定するフレーム数特定手段と、前記特定された総ビット数と前記特定されたフレーム数とに基づいて、次に符号化するフレームに割り当てるビット数の目標値を算出する目標ビット数算出手段と、前記算出されたビット数の目標値を用いて、次に符号化するフレームに係る量子化ステップを導出する量子化ステップ導出手段と、前記導出された量子化ステップに基づいて量子化を行ない、当該量子化に基づいて符号化を行なう符号化手段とを備える。
【００３３】
これにより、フレーム群において一定のビットレートになるように、フレーム群全体に割り当てられた総ビット数と既に割当済みのビット数に基づいて、次の符号化するフレームに割り当てるべきビット数を計算するので、割り当てられるビット数が局所的に偏ってしまう場合を未然に回避して平均化したビット割り当てが可能となり、最終的に極端な画質の劣化を防止することが可能となる。
【００３４】
また、上記目的を達成するために、本発明に係る画像符号化装置は、さらに、前記フレーム群におけるフレームの符号化に伴って割り当てが確定したビット数の平均値を算出する平均値算出手段と、前記算出された、前記ビット数の目標値と前記ビット数の平均値とに対して所定の演算を行なって新たなビット数の目標値を特定する演算手段とを備え、前記量子化ステップ導出手段は、前記演算手段によって特定されたビット数の目標値を用いて量子化ステップを導出することを特徴とする。
【００３５】
これにより、受け付けたフレームレートから算出した未だ符号化されていないフレーム数と、フレーム群における割り当て可能なビット数とに基づいて、次に符号化するフレームに割り当てるべきビット数を決定するので、フレームレートの変化に則した符号化が可能となる。
【００３６】
また、上記目的を達成するために、本発明に係る画像符号化装置は、さらに、既に符号化されたが未送信のデータを格納する格納手段と、前記格納手段に格納されているデータ量に基づいて、次に符号化するフレーム係るフレームレートを計算するフレームレート計算手段を備え、前記フレームレート受付手段は、前記計算されたフレームレートを受け付けることを特徴とする。
【００３７】
これにより、所定の時間長で観測した場合のビットレートを一定に保ちながら、バッファに十分空きがある場合は低い量子化ステップで符号化することで、従来よりも高画質に符号化することができ、かつ複雑なシーンへ移行した場合のフレームレートの急激な低下（多くのフレームが符号化されずスキップされること）を抑制し、従来よりも動きの滑らかな符号化を行なうことが可能となる。
【００３８】
なお、上記目的を達成するために、本発明は、上記画像符号化装置の特徴的な手段をステップとする画像符号化方法として実現したり、これらのステップを含むプログラムとして実現したりすることもできる。そして、そのプログラムは、画像符号化装置が備えるＲＯＭ等に格納しておくだけでなく、ＣＤ−ＲＯＭ等の記録媒体や通信ネットワーク等の伝送媒体を介して流通させることもできる。
【００３９】
【発明の実施の形態】
以下、本発明に係る実施の形態について、図面を参照しながら詳細に説明する。なお、以下の説明では、従来技術と共通する構成については同一の符号を付し、その説明は省略する。
【００４０】
（実施の形態１）
図１は、実施の形態１に係る画像符号化装置１０の機能構成を示すブロック図である。この画像符号化装置１０は、所定の時間長（例えば、１秒間）で観測した場合におけるビットレートを一定に保ちながら、局所的なビットレートの変動をも抑えることにより、より高品質な画像の再現のための符号化を可能とする。
【００４１】
画像符号化装置１０は、フレームメモリ１０２、動き検出部１０３、動き補償部１０４、直交変換部１０５、量子化部１０６、可変長符号化部１０７、逆量子化部１０８、逆直交変換部１０９、フレーム間引部２０、レート制御部３０及び全体制御部４０から構成されている。
【００４２】
フレーム間引部２０は、一定の周期で入力される被符号化フレーム信号１０１に対し、そのフレームの符号化／非符号化を決定すると共に、その時点のフレームレート値Ｒｆ２１をレート制御部３０に通知する。
【００４３】
レート制御部３０は、可変長符号化部１０７から受信した発生ビット数とフレーム間引部２０から通知を受けたフレームレート値Ｒｆ２１とに基づいて、次のフレームの符号化における量子化ステップ（又は量子化パラメータ）を決定し、量子化部１０６に送信する。
【００４４】
全体制御部４０は、例えば、ＲＯＭやＲＡＭ等を備えるマイクロコンピュータであり、画像符号化装置１０全体の制御を行なう。より詳細には、全体制御部４０は、制御信号（図１の全体制御部４０における破線は制御信号線を表している）に基づいて、各部の処理タイミングの制御を行なう。さらに、全体制御部４０は、一定の周期で入力される被符号化フレーム信号１０１のピクチャタイプの識別（Ｉフレーム、Ｂフレーム及びＰフレームの識別）を行ない、その識別結果をレート制御部３０に通知する。
【００４５】
図２は、図１におけるレート制御部３０の詳細な機能構成を示すブロック図である。レート制御部３０は、フレーム群目標ビット数導出部３１、次フレーム目標ビット数導出部３２、平均フレームビット数導出部３３、演算部３４、量子化ステップ導出部３５及び記憶部３６から構成される。
【００４６】
フレーム群目標ビット数導出部３１は、フレーム群単位で、残りの符号化すべき全てのフレームに割り当て可能な総ビット数の目標値を逐次算出し更新する。より詳細に説明すると、フレーム群目標ビット数導出部３１は、可変長符号化部１０７から発生ビット数Ｎｎ１３１を受信して記憶部３６に記憶する。さらに、フレーム群目標ビット数導出部３１は、次の符号化すべきフレームからフレーム群の最後のフレームまでに割り当て可能な総ビット数を記憶部３６から読み出し、この総ビット数から上記の発生ビット数Ｎｎ１３１を減じ、その値を次フレーム目標ビット数導出部３２に送信すると共に記憶部３６に格納する。
【００４７】
次フレーム目標ビット数導出部３２は、フレーム間引部２０から受信したフレームレート値Ｒｆ２１及びフレーム群目標ビット数導出部３１から受信した割り当て可能な総ビット数に基づいて、残りの符号化すべきフレームのフレーム数を考慮し、次のフレームに割り当てるビット数の目標値を算出する。
【００４８】
平均フレームビット数導出部３３は、フレーム間引部２０から受信したフレームレート値Ｒｆ２１及び記憶部３６に記憶されている過去のフレームに割り当てられたビット数に基づいて、割り当てられたビット数の平均値を算出する。
【００４９】
演算部３４は、平均フレームビット数導出部３３で算出されたビット数に、所定の係数（例えば、０．８）を乗じたビット数を算出し、これと次フレーム目標ビット数導出部３２で算出されたビット数の目標値とを比較し、値の大きい方のビット数を選択する。さらに、演算部３４は、選択されたビット数と予め設定されている下限値とを比較し、より大きい値のビット数を選択して（すなわち、下限値を下回らないビット数を選択して）量子化ステップ導出部３５に送信する。なお、上記の所定の係数は、「０．８」に限定するものではなく、０より大きく１以下の他の値であってもよい。
【００５０】
量子化ステップ導出部３５は、演算部３４から受信したビット数と発生ビット数が等しくなるように量子化ステップの値を導出する。
【００５１】
記憶部３６は、可変長符号化部１０７から受信した各フレームを符号化した結果である発生ビット数Ｎｎ１３１を記憶する。さらに、記憶部３６は、フレーム群目標ビット数導出部３１の制御に従ってフレーム群目標ビット数を更新する。
【００５２】
図３は、画像符号化におけるピクチャタイプ別の発生ビット数の一般的な特徴を示す図である。図３に示されるように、通常、画面内符号化（Ｉピクチャ）のフレーム（Ｉフレーム２１０〜２５０）における発生ビット数Ｎｎより、画面間符号化（Ｐピクチャ又はＢピクチャ）のフレーム（Ｐ又はＢフレーム）における発生ビット数Ｎｎの方が少なくなる。従って、Ｉフレームから次のＩフレームまでを１つのフレーム群と定義することによって、他の規則に基づいてフレーム群を定義する場合（例えば、ピクチャタイプと無関係に１５フレーム毎にフレーム群を構成させる場合）に比べ、各フレーム群における発生ビット数の偏りを少なくすることができる。なお、図３の例では、便宜上、各フレーム群の符号化に要する時間をＴＡとし、同一の周期とした。
【００５３】
なお、フレーム群の最初のフレームが上記のＩフレームであったり、フレーム群の最後のフレームがＩフレームであったりすることのみでも、各フレーム群におけるビット数の偏りを少なくする効果が得られ得る。
【００５４】
図４は、上記図３で定義したフレーム群の具体例を示した図である。図４に示されるように、フレーム群３１０は、画面内符号化（Ｉ）フレーム２１０から画面内符号化（Ｉ）フレーム２２０の直前のフレームの１５枚のフレームで構成されることとする。同様に、フレーム群２２０やフレーム群２３０もそれぞれ１５枚のフレームで構成されることとする。この場合、１つのフレーム群に割り当て可能な総ビット数の初期値を予め決定しておく（例えば、３６００「ビット］等」。なお、フレーム群の定義の仕方は図４に限定するものではない。
【００５５】
図５は、上記図３で定義したフレーム群の変形例である。図５に示されるように、上記図４における２つのフレーム群３１０、３２０に相当する第１フレームセットと第２フレームセットからなるフレームの集まりを１つのフレーム群４１０として定義してもよい。この場合、フレーム群４１０に割り当て可能な総ビット数の初期値を７２００［ビット］（第１フレームセット及び第２フレームセットにそれぞれ３６００［ビット］）とする。
【００５６】
図６は、上記図５のように２つのフレームセットでフレーム群を構成することによる効果を説明するための図である。図６（ａ）は、１つのフレーム群の中に符号化が困難なシーンがあった場合でも、次の第２フレームセットにおける割当可能ビット数を含めて次の被符号化フレームの割当ビット数を決定することができるため、よりビットレートの変化を緩和させることが可能となる。例えば、初期値としてフレーム群４１０全体で１０００ビットを割り当て、第１フレームセットに５００ビット、第２フレームセットに５００ビット暫定的に割り当てることとする。この後、実際の符号化で第１フレームセットにおいて７００ビットを使用したとしても、次のフレーム群４２０では、初期値として全体で８００［ビット］（前のフレーム群４１０の残り分３００［ビット］＋新規の第２フレームセット分５００［ビット］）を割り当てるように制御する。
【００５７】
図６（ｂ）は、さらに符号化が困難のためフレームレートが変更させなければならない場合であっても、上記図６（ａ）と同様の方法で、ビットレートが急激に小さな値となる（すなわち、量子化ステップが急激に大きくなる）ことを回避することができる。
【００５８】
図７は、画像符号化装置１０の全体制御部４０及びレート制御部３０における処理の流れを示すフローチャートである。
【００５９】
最初に、レート制御部３０は、可変長符号化部１０７から発生ビット数Ｎｎ１３１を受信し（Ｓ７０１）、フレーム間引部２０からフレームレート値Ｒｆ２１を受信する（Ｓ７０２）。
【００６０】
次に、全体制御部４０は、次のフレームがＩフレームか否かを識別する（Ｓ７０３）。この場合、次のフレームがＩフレームの場合は（Ｓ７０４：Ｙｅｓ）、レート制御部３０は、割当可能ビット数Ｎａ、割当対象期間Ｔａ及び割当対象フレーム数Ｎｔの初期化を行なう（Ｓ７０８〜Ｓ７１０）。
【００６１】
一方、次のフレームがＩフレームでない場合（Ｓ７０４：Ｎｏ）、レート制御部３０は、割当可能ビット数Ｎａ及び割当対象フレーム数Ｎｔの更新を行なう（Ｓ７０５、Ｓ７０６）。さらに、レート制御部３０は、割当対象フレーム数Ｎｔの小数点以下を切り捨てて、このＮｔについて整数化を行なう（Ｓ７０７）。
【００６２】
この後、レート制御部３０は、割当可能ビット数Ｎａ及び割当対象フレーム数Ｎｔに基づいて割当ビット数Ｎｂを算出し（Ｓ７１１）、割当対象期間Ｔａの更新を行なう（Ｓ７１２）。この場合、割当対象期間Ｔａは、フレームレート値Ｒｆ２１の値が同一のフレーム群の途中で変更した場合にも考慮して更新がなされる。
【００６３】
これにより、レート制御部３０は、割当ビット数Ｎｂに基づいて量子化ステップを導出し、可変長符号化部１０７に送信する（Ｓ７１３）。
【００６４】
全体制御部４０及びレート制御部３０は、以上の処理を符号化処理が終わるまで繰り返す（Ｓ７０１〜Ｓ７１４）。
【００６５】
図８は、画像符号化装置１０を用いて符号化を実行した場合のビットレートの変化を示す一例である。図８に示されるビットレートの変化をみてみると、演算部３４における係数（例えば、０．８）のために、従来技術の場合（上記図３６）に比べ、割り当て可能なビット数が少なく抑えられるため、ビットレートの変化が鈍化する傾向にある。さらに、図８においては、上記演算部３４において、下限値を下回らないビット数が選択され、符号化後のビット数がこのビット数になるように量子化ステップが算出される。さらに、算出された量子化ステップに従って符号化が実行され、発生ビットが決定されるため、ビットレートについても下限値以上の値となっている様子が示されている。
【００６６】
図９は、上記図５に示したように、２つのフレームセットで１つのフレーム群を構成した場合のビットレートが変動する様子を示した一例である。図９に示されるように、従来技術（上記図３６）ではビットレートの値が著しく小さく（すなわち、量子化ステップが著しく大きく）なった「ｔ３−ｔ４」間においては、ビットレートの値が小さくなることを抑え、画質の劣化を抑制することができたが、第１フレームセットで多くのビット数を使用した影響が、第２フレームセットの最初の部分（「ｔ４−ｔ６」間）に出ている（すなわち、量子化ステップを小さくできずビットレートの値が小さいままの）様子が示されている。
【００６７】
図１０は、２つのフレームセットで１つのフレーム群を構成し、かつ、フレーム群の途中で符号化のフレームレートが変化した場合におけるビットレートの変化の様子を示した一例である。図１０では、フレームレートが１５［ｆｐｓ］から７．５［ｆｐｓ］に変化しているが、ビットレートの変化の仕方が上記図８のビットレートと同じである（つまり、図１０の場合は、１／２の量子化ステップで符号化を行なって２倍のビット数が発生したために、ビットレートとしては同一になったと想定される場合であり、この場合においても「ｔ３−ｔ４」間で画質の劣化が抑制されている）。
【００６８】
図１１は、上記図２の演算部３４におけるビット数の算出方法の具体例を示した図である。図１１の例では、３０［ｆｐｓ］で入力される被符号化フレーム信号１０１に対して、１５［ｆｐｓ］のフレームレートで符号化が実施されている。この例においても、上記図３７と同様に、入力される被符号化フレーム信号１０１を「入力画像フレーム番号１７０１」で表し、符号化フレーム信号１２１を「フレーム群フレーム番号１１０２」で表している。図１１において、フレーム群フレーム番号１１０２及び発生ビット数Ｎｎ１３１の欄が「×」となっているのは、対応する入力画像フレーム番号１７０１のフレームについては符号化がされず、「間引き」されたことを表す。
【００６９】
さらに、図１１において、例えば入力画像フレーム番号「９」（すなわち、フレーム群フレーム番号「５」）に対する発生ビット数の目標値は、既に割り当てられたビット数の合計が１１８０［ビット］で、残りのフレーム数は「１１」であるため、（（３６００−１１８０）／１１＝２２０［ビット］）となる。また、平均フレームビット数導出部３３における過去のフレームにおける発生ビット数の平均値（１１８０／４＝２９５［ビット］）を算出し、演算部３４において、発生ビット数の平均値に係数（例えば、０．８）を乗じ、これと上記のビット数の目標値とを比較して値の大きい方を選択する。その結果、フレーム群フレーム番号「５」に対する発生ビット数は、２３６［ビット］となる。
【００７０】
一方、入力画像フレーム番号「１３」（すなわち、フレーム群フレーム番号「６」）に対する発生ビット数は、入力画像フレーム番号「１１」のフレームについては「間引き」されているため（従って、フレームレート値Ｒｆ２１が７．５［ｆｐｓ］に変更され）、残りのフレーム数（フレームレート値Ｒｆ２１を７．５［ｆｐｓ］で計算するので）「５」に基づいて計算する。さらに、計算された値に対して小数点以下を切り捨てるので、（３６００−１４１６）／５＝４３６［ビット］となる。また、平均フレームビット数導出部３３における過去のフレームにおける発生ビット数の平均値（１４１６／５＝３８３［ビット］）を算出し、演算部３４において、発生ビット数の平均値に係数（例えば、０．８）を乗じ、これと上記ビット数の目標値とを比較して値の大きい方を選択する。その結果、入力画像フレーム番号「１３」に対する発生ビット数は、４３６［ビット］となる。
【００７１】
図１１と上記従来技術の図３５におけるフレーム群フレーム番号「５」及び「６」の発生ビット数Ｎｎを比較してみると、何れも本画像符号化装置１０（すなわち、上記図１１）における発生ビット数の方が大きな値となっており、より多くのビット数の割り当てができるため、従来より高品質な画像のための符号化が可能であることが明らかである。
【００７２】
なお、上記図１１の入力画像フレーム番号「２９」に対応するフレーム群フレーム番号の欄に２つの数字が記載されているが、”（１５）”は、入力画像フレーム番号が「９」の時点における、フレームレートが１５［ｆｐｓ］の場合のフレーム群フレーム番号１１０２の予想値であり、”（１０）”は、入力画像フレーム番号が「１３」の時点における、フレームレートが７．５［ｆｐｓ］の場合のフレーム群フレーム番号１１０２の予想値である。
【００７３】
なお、上記の実施の形態１では、フレーム間引部２０を設け、フレーム間引部２０から送信されるフレームレート値Ｒｆ２１に基づいて、ビットレートの制御を行なうように構成したが、フレームレートの値はフレーム間引部以外から入手してもよい。
【００７４】
図１２は、上記図１におけるフレーム間引部２０を設けず、その他の部署からフレームレート値Ｒｆ２１の値を入手するように構成した画像符号化装置５０の機能構成の一部を示したブロック図である。画像符号化装置５０が上記図１の画像符号化装置１０と異なる点は、フレーム間引部２０がない点と全体制御部４０に代えて全体制御部６０を備えている点のみである。
【００７５】
また、上記実施の形態における量子化ステップは、量子化パラメータと一意に対応するものであるため、当該量子化ステップを量子化パラメータに置き換えて用いることとしてもよい。
【００７６】
以上のように、本実施の形態に係る画像符号化装置によれば、符号化のフレームレートの変化に対応させながらより割り当てるビット数を決定するので、画像の符号化が困難か否かに関わらず平均的に良好な画質を確保し、極端に動きがぎこちなくなったり画質が劣悪になったりすることを回避することができる。
【００７７】
さらに、上記実施の形態１で示した画像符号化装置によって符号化されたビットストリームは、一般的な画像復号化方法によって復号可能である。また、本実施の形態１による符号化を行なったストリームは画像の複雑さに伴って各フレームの量子化ステップが変動するが、その変動は極端なものではなく、画面内符号化フレームから画面内符号化フレームの直前までのフレームで構成されるフレーム群において、発生ビット数をほぼ一定にすることが可能となる。
【００７８】
なお、上記の実施の形態１では、各フレーム群の符号化に要する周期を「ＴＡ」として同一としたが、同一とする場合に限るものではなく、各フレーム群の符号化に要する時間が異なっていてもよい。
【００７９】
また、上記の実施の形態では、平均フレームビット数導出部で算出されたビット数の平均値にのみ所定の係数（例えば、０．８）を乗じ、これと次フレーム目標ビット数導出部で算出されたビット数の目標値とを比較して値の大きい方のビット数を選択するように構成したが、これら両方に所定の係数を乗じて比較するように構成してもよい。
【００８０】
（実施の形態２）
図１３は、実施の形態２における画像符号化装置２１００の機能構成を示すブロック図である。画像符号化装置２１００は、上記実施の形態１の図５に示すように従来の２倍の数のフレームから構成される一かたまりのフレーム群を考慮しながら、量子化ステップやフレームの間引きを制御することにより、急激なビットレートやフレームレートの変動を抑制しつつ、高画質な符号化を可能とする。
【００８１】
画像符号化装置２１００は、フレーム間引部２１０１、フレームメモリ１０２、動き検出部１０３、動き補償部１０４、直交変換部１０５、量子化部１０６、可変長符号化部１０７、送信バッファ２１０８、逆量子化部２１０９、逆直交変換部２１１０、差分器２１１１、加算器２１１２およびフレームレート制御部２１１３を備える。
【００８２】
フレーム間引部２１０１は、基準となるフレームレート（例えば、３０Ｈｚ）で入力される画像信号の各フレームに対して、フレームレート制御部２１１３から入力される間引き情報に従って間引き処理を行ない、間引きされた画像信号を動き検出部１０３および差分器２１１１に出力する。例えば、フレームレート制御部２１１３からフレーム間引部２１０１に入力される間引き情報の値が「１」のときは、間引きをしないでそのまま符号化を行なう指示を示し、値が「０」のときは、１フレーム間引きを行なって符号化を行なう指示を示すこととする。つまり、フレーム間引部２１０１は、間引き情報が「１」のときは、画像信号として入力されたフレームをそのまま被符号化フレームとして動き検出部１０３および差分器２１１１に出力する。逆に、間引き情報が「０」のときは、入力されたフレームを間引く（例えば、廃棄する）という処理を行なう。
【００８３】
フレームメモリ１０２は、ＲＡＭ又はハードディスク等によって実現され、フレーム単位で画像データを保持するための記憶装置である。さらに、フレームメモリ１０２は、次の画面間予測符号化フレームの参照画像となる参照フレームデータを格納する。動き検出部１０３は、入力された被符号化フレームが画面間予測符号化を行なうフレームの場合、フレームメモリ１０２に格納された参照フレームデータを用いて、被符号化フレームの動きを検出する。動き補償部１０４は、動き検出部１０３によって検出された動きに対応する動き補償データを生成する。この動き補償データは、参照フレームと被符号化フレームとのブロック間の対応を示す動きベクトル、およびその動きベクトルによって示されるブロック間の画像信号の差分を示すデータである。
【００８４】
差分器２１１１は、被符号化フレームが画面間予測符号化を行なうフレームの場合、被符号化フレームの動きベクトルと動き補償部１０４とによって生成された動き補償データに基づく動きベクトルとの差分を求める。一方、被符号化フレームが、画面内予測符号化を行なうフレームの場合、差分器２１１１は、入力された画像信号に対して参照フレームとの差分を求める処理を行わず、画面内で予測を行なった後、直交変換部１０５に画像信号を出力する。
【００８５】
直交変換部１０５は、動き補償部１０４において生成された動き補償データをＤＣＴ（Ｄｉｓｃｒｅｔｅ　Ｃｏｓｉｎｅ　Ｔｒａｎｓｆｏｒｍ）変換などによって周波数成分を表すデータに直交変換し、その変換結果を量子化部１０６に出力する。量子化部１０６は、フレームレート制御部２１１３から入力される量子化ステップを用いて直交変換されたデータを量子化し、その量子化された結果を可変長符号化部１０７および逆量子化部２１０９に出力する。可変長符号化部１０７は、量子化部１０６による量子化されたデータを、ハフマン符号などを用いて可変長符号化する。可変長符号化部１０７で可変長符号化されたデータは、送信バッファ２１０８に格納され、符号化ビットストリームとして出力される。
【００８６】
送信バッファ２１０８は、ＲＡＭなどによって実現されるＦＩＦＯ（Ｆｉｒｓｔ−ＩｎＦｉｒｓｔ−Ｏｕｔ）メモリである。この送信バッファ２１０８は、例えば、上記実施の形態１の図５に示されるように、複数のフレームから構成されるフレーム群に割り当てられた総ビット数を記憶すると共に、内部のデータ残量または空き容量をモニタしており、可変長符号化されたデータが送信バッファ２１０８に送信された時点で、即ち１フレーム分の画像信号の符号化が完了した時点で、送信バッファ２１０８のデータ残量をフレームレート制御部２１１３に送信する。
【００８７】
逆量子化部２１０９は、予測画像を生成するために量子化部１０６によって量子化されたデータを逆量子化し、逆直交変換部２１１０に出力する。逆直交変換部２１１０は、逆量子化部２１０９によって逆量子化されたデータを逆直交変換する。加算器２１１２は、逆直交変換部２１１０によって逆量子化されたデータと動き補償部１０４において生成された動き補償データとを加算してフレームメモリ１０２に出力する。フレームレート制御部２１１３には、送信バッファ２１０８から当該送信バッファ２１０８内のデータ残量が入力される。フレームレート制御部２１１３は、送信バッファ２１０８内のデータ残量に応じた量子化ステップを算出して量子化部１０６に出力すると共に、算出された量子化ステップに応じたフレームレートを計算し、次のフレームを間引くか否かを示す間引き情報を決定してフレーム間引部２１０１に出力する。ここで、「量子化ステップ」とは、各フレームの周波数成分を量子化する際の基準となる値（幅）であり、例えば「１」から「３１」までの自然数（これを「量子化パラメータ」という）によって特定される。この量子化パラメータは、量子化ステップに１対１で対応しており、その数値が大きくなればなるほど、量子化の幅が大きくなるように定義されている。以下では、この量子化パラメータを「量子化ステップ」として説明する。
【００８８】
図１４は、上記図１３におけるフレームレート制御部２１１３の詳細な機能構成を示すブロック図である。フレームレート制御部２１１３は、量子化ステップ予測部２２０１、フレームレート計算部２２０２、量子化ステップ決定部２２０３、フレーム数計算部２２０４および比較器２２０５を備える。量子化ステップ予測部２２０１は、送信バッファ２１０８から入力されたデータ残量に応じて現時点の量子化ステップに対して所定の演算を施し、量子化ステップ予測値を算出してフレームレート計算部２２０２および量子化ステップ決定部２２０３に出力する。　量子化ステップ決定部２０３は、量子化ステップ予測部２０１から入力された量子化ステップ予測値に最も近い「１」から「３１」までの自然数を１つ選択し、選択した自然数を次の量子化ステップに決定する。具体的には、入力された量子化ステップ予測値が小数点以下の値を含む場合には、四捨五入、切捨てまたは切り上げなどの丸め処理を行なう。この場合、その値が「１」未満の場合には「１」を選択し、「３１」を超える場合には「３１」を選択する。
【００８９】
フレームレート計算部２２０２は、送信バッファ２１０８から入力されたデータ残量と、量子化ステップ予測部２０１から入力された量子化ステップ予測値とに基づいて、現在のフレームレートから次の符号化の際における最適フレームレートを計算する。フレーム数計算部２０４は、比較器２０５から出力される間引き情報に基づいて、現在のフレームレートを計算する。比較器２０５は、フレームレート計算部２０２の出力である最適フレームレートと、フレーム数計算部２０４の出力である現在のフレームレートとを比較して、最適フレームレートが現在のフレームレートより大きい場合は、間引きしない旨の指示を示す「１」を間引き情報として出力する。一方、最適フレームレートが現在のフレームレートより小さい場合は、間引きを行なう旨の指示を示す「０」を間引き情報として出力する。
【００９０】
図１５は、上記図１４における量子化ステップ予測部２０１の機能を説明するためのブロック図である。図１５（ａ）は、量子化ステップ予測部２０１内の量子化ステップ予測方法を図式的に示す図である。図１５（ｂ）は、量子化ステップ予測部２０１に保持されている予測係数テーブル３０３を示す図である。量子化ステップ予測部２０１は、図１５（ａ）に示す現在値メモリ２３０２と、図１５（ｂ）に示す予測係数テーブル２３０３とを保持している。現在値メモリ３０２は、符号化開始時においては量子化ステップの初期値を保持しており、符号化開始後には量子化ステップ予測部２０１によって算出された量子化ステップ予測値を保持する。予測係数テーブル３０３は、送信バッファ２１０８のデータ残量と予測係数とが対応付けられて格納されており、量子化ステップ予測部２０１は、送信バッファ２１０８から入力されるデータ残量に対応する予測係数を現在値メモリ３０２に保持している現在の量子化ステップ予測値に乗算して、次のフレームの量子化ステップ予測値を算出する。
【００９１】
図１５（ａ）および図１５（ｂ）に示されるように、予測係数は、送信バッファ２１０８内のデータ残量が５０％以上８０％未満では「１．２」に、８０％以上９０％未満では「１．５」に、９０％以上１００％以下では「２」というように、送信バッファ２１０８内の空き容量が少なくなるほど、その値を大きくして符号化されるデータのビット量が低減するように設定される。また、予測係数は、送信バッファ２１０８のデータ残量が４０％以上５０％未満では、そのままの量子化ステップを維持するように「１」に設定される。上記とは逆に、予測係数は、送信バッファ２１０８のデータ残量が３０％以上４０％未満の場合は「０．８」に、２０％以上３０％未満の場合は「０．５」に、０％以上２０％未満の場合は「０．４」というように設定される。つまり、予測係数は、送信バッファ２１０８内の空き容量が多くなるほど、符号化されるデータのビット量が大きくなるように（即ち、量子化ステップを小さくして量子化をきめ細かく行ない、画質の品質を高めるように）設定される。
【００９２】
例えば、現在値メモリ３０２内の量子化ステップ予測値が「７．５」で、送信バッファ２１０８内のデータ残量が７５％であったとすると、次のフレームでは、現在値メモリ３０２内の量子化ステップ予測値「７．５」に予測係数「１．２」が乗算され、そのフレームに対する量子化ステップ予測値は「９」となる。算出された量子化ステップ予測値「９」は、量子化ステップ予測部２２０１によって現在値メモリ２３０２に上書きされる。この量子化ステップ予測値「９」は、「１」から「３１」までの自然数であるから、量子化ステップ決定部２２０３によって当該フレームに対する量子化ステップとして決定される。当該フレームが量子化ステップ「９」で量子化された後、さらに次のフレームにおいても送信バッファ２１０８のデータ残量が７０％であった場合は、現在値メモリ２３０２内の量子化ステップ予測値「９」には予測係数「１．２」が乗算され、次の量子化ステップ予測値は「１０．８」となる。量子化ステップ決定部２０３が小数以下を四捨五入して量子化ステップを決定するとすると、その次のフレームは量子化ステップ「１１」で量子化されることになる。このように予測係数を設定することによって、送信バッファ２１０８内のデータ残量が５０％以上になると、量子化ステップが増大するので符号化される画像の画質が徐々に荒くなり、符号化されるデータのビット量を徐々に低減させることができる。一方、送信バッファ２１０８内のデータ残量が４０％未満になると、量子化ステップが減少するのでデータのビット量は徐々に増大するが、符号化される画像の画質を徐々に向上させることができる。
【００９３】
図１６は、上記図１４におけるフレームレート計算部２２０２の機能を説明するためのブロック図である。フレームレート計算部２０２は、送信バッファ２１０８のデータ残量と、量子化ステップ予測値とに基づいて最適フレームレートを計算する部署であり、比較器２４０１、比較器２４０２、フレームレートテーブル２４０３、閾値メモリ２４０４、閾値メモリ２４０５および空き容量算出部２４０６を備える。閾値メモリ２４０４および閾値メモリ２４０５は、ラッチ回路またはＲＡＭなどによって実現される。比較器２４０１には、量子化ステップ予測部２２０１の出力である量子化ステップ予測値と、閾値メモリ２４０４に保持されている閾値Ｂとが入力される。比較器２４０１は、この２入力を比較し、例えば量子化ステップ予測値が閾値Ｂを超えると出力Ｄ１として「１」を、量子化ステップ予測値が閾値Ｂ以下であれば出力Ｄ１として「０」を出力する。比較器２４０２には、空き容量算出部２４０６において算出された送信バッファ２１０８の空き容量と、閾値メモリ２４０５に保持されている閾値Ｃとが入力される。比較器２４０２は、この２入力を比較し、例えば送信バッファ２１０８の空き容量が閾値Ｃを超えると出力Ｄ２として「１」を、空き容量が閾値Ｃ以下であれば出力Ｄ２として「０」を出力する。フレームレートテーブル２４０３は、比較器２４０１の出力Ｄ１と、比較器２４０２の出力Ｄ２との組み合わせに対応した最適フレームレートを示すテーブルである。閾値メモリ２４０４は、予め設定された、量子化ステップ予測値の閾値Ｂを保持している。閾値メモリ２４０５は、予め設定された、送信バッファ２１０８の閾値Ｃを保持している。空き容量算出部４０６は、送信バッファ２１０８の全データ容量と、送信バッファ２１０８から入力されるデータ残量とに基づいて、送信バッファ２１０８の現在の空き容量を算出する。
【００９４】
具体的には、フレームレート計算部２２０２は、フレームレートテーブル２４０３に従って、符号化対象のフレームに対する最適フレームレートを計算する。例えば、送信バッファ２１０８の空き容量が閾値Ｃを超え、かつ、量子化ステップ予測値が閾値Ｂ以下である場合、すなわち、量子化ステップが小さい値にも拘らず、送信バッファ２１０８に余裕がある場合、フレームレートが最大になるよう最適フレームレートを（例えば、３０Ｈｚに）決定する。逆に、送信バッファ２１０８の空き容量が閾値Ｃ以下で、かつ、量子化ステップ予測値が閾値Ｂを超える場合、すなわち、量子化ステップが大きくなっているにも拘らず、送信バッファ２１０８に余裕がない場合、フレームレートが最小になるよう最適フレームレートを、（例えば、１０Ｈｚ）に決定する。さらに、送信バッファ２１０８の空き容量と量子化ステップ予測値の何れもが閾値より大きいか、又は何れもが閾値以下の場合、フレームレートが中間の値になるよう、最適フレームレートを決定する。
【００９５】
図１７は、上記図１６におけるフレームレート計算部２２０２の各入力信号および出力信号の一例を示す図である。図１７（ａ）は、フレームレート計算部２２０２の出力信号である最適フレームレートを示す図である。図１７（ｂ）は、フレームレート計算部２０２の一方の入力信号である量子化ステップ予測値を示す図である。図１７（ｃ）は、フレームレート計算部２０２の他方の入力信号である送信バッファ２１０８の空き容量を示す図である。この空き容量は、正確には、入力されたデータ残量から空き容量算出部２４０６によって算出されたものである。図１７（ｂ）の曲線Ｌ１は、時間の経過に伴って量子化ステップ予測値が変化する様子を示し、図１７（ｃ）の曲線Ｌ２は、送信バッファ２１０８の空き容量の時間変化を示している。図１７（ｂ）のように、量子化ステップ予測値が閾値Ｂ以下の間、比較器２４０１は、Ｄ１＝０を出力し、量子化ステップ予測値が閾値Ｂを越えると、比較器２４０１はＤ１＝１を出力する。また、量子化ステップ予測値が再び閾値Ｂ以下となると、比較器４０１はＤ１＝０を出力する。一方、図１７（ｃ）のように、送信バッファ２１０８の空き容量が閾値Ｃ以下の間、比較器２４０２はＤ２＝０を出力し、空き容量が閾値Ｃを超えると、比較器２４０２はＤ２＝１を出力する。また、空き容量が再び閾値Ｃ以下となると、Ｄ２＝０を出力する。
【００９６】
フレームレート計算部２２０２が保持するフレームレートテーブル２４０３には、比較器２４０１の出力Ｄ１の値「０」または「１」と、比較器２４０２の出力Ｄ２の値「０」または「１」との４通りの組み合わせに対応して４種類のフレームレートが記述されている。フレームレート計算部２２０２は、Ｄ１＝０（量子化ステップ予測値が小さい）かつＤ２＝０（空き容量が少ない）の間は、図１７（ａ）のように、最適フレームレートとして２０Ｈｚを出力する。また、図１７（ｂ）および図１７（ｃ）に示されるように、曲線Ｌ１で示される量子化ステップ予測値の方だけが閾値Ｂを越えた場合、すなわち、Ｄ１＝１（量子化ステップ予測値が大きい）かつＤ２＝０（空き容量が少ない）の間は、フレームレート計算部２２０２は、最適フレームレートとして１５Ｈｚを出力する。続いて、量子化ステップ予測値および空き容量の両方ともが閾値を超えると、すなわち、Ｄ１＝１（量子化ステップ予測値が大きい）かつＤ２＝１（空き容量が多い）の間、フレームレート計算部は、２２０２は、量子化ステップを小さく制御するために、最適フレームレートとして２０Ｈｚを出力する。さらに、量子化ステップ予測値の方だけが閾値Ｂ以下となった場合、すなわち、Ｄ１＝０（量子化ステップ予測値が小さい）かつＤ２＝１（空き容量が多い）の間、フレームレート計算部２０２は最適フレームレートとして３０Ｈｚを出力する。このように、フレームレート計算部２０２は、量子化ステップ予測値と送信バッファ２１０８の空き容量とに応じて（ここでは４段階ではあるが）、徐々にフレームレートを増減を行なう。
【００９７】
図１８は、上記図１４に示したフレーム数計算部２０４の動作を説明するための図である。図１８（ａ）は、比較器２２０５から出力される間引き情報の一例を示す図である。図１８（ｂ）は、フレーム数計算部２２０４の詳細な構成を示すブロック図である。図１８（ａ）に示すように、フレーム数計算部２２０４には、比較器２２０５から出力された間引き情報が３０Ｈｚで入力される。この間引き情報は、「０」または「１」の２値信号である。間引き情報の「０」は、当該フレームが間引きされたことを示し、間引き情報の「１」は当該フレームが符号化されたことを示している。図１８（ｂ）のフレーム数計算部２２０４は、比較器２２０５から出力された間引き情報に基づいて現在のフレームレートを計算し、計算結果を所定の周期（例えば、５Ｈｚ）で出力を行なう処理部または回路である。このフレーム数計算部２２０４は、間引き情報メモリ２６０１、カウンタ２６０２および演算器２６０３を備える。間引き情報メモリ２６０１は、先入れ先出しで保持するＦＩＦＯ（ｆｉｒｓｔ＿ｉｎ　ｆｉｒｓｔ＿ｏｕｔ）のメモリ装置であり、３０Ｈｚで入力される１ビットの間引き情報を現フレームから遡って３０フレーム分保持する。カウンタ２６０２は、所定の周期（例えば、５Ｈｚ）で間引き情報メモリ２６０１内の直近の間引き情報が「１」のフレーム数ｍと、間引き情報が「０」のフレーム数ｎとをカウントし、次の周期（例えば、１／５秒後）にｍとｎの値をリセットする。演算器２６０３は、上記所定の周期で「ｍ／（ｍ＋ｎ）」を計算し、その結果を現フレームレートとして出力する。これにより、フレーム数計算部２２０４が、例えば１秒間に５回の現フレームレートを計算して出力した場合は、０．２秒毎により適切な量子化ステップを算出することが可能となる。
【００９８】
フレームレート制御部２１１３の比較器２２０５は、フレーム数計算部２２０４によって計算された現フレームレートと、フレームレート計算部２２０２によって計算された最適フレームレートとを比較して、最適フレームレートが現在のフレームレート以上であれば、符号化の指示を示す「１」を間引き情報として出力する。一方、最適フレームレートが現在のフレームレート未満であれば、間引きの指示を示す「０」を間引き情報として出力する。この結果、被符号化フレームのフレームレートは、フレームレート計算部２２０２によって算出された最適フレームレートに等しくなる。即ち、本画像符号化装置２１００は、送信バッファ２１０８の空き容量に応じて量子化ステップの制御を行なうので、送信バッファ２１０８の空き容量の時間変化をより緩和して量子化ステップを制御した場合、即ち、量子化ステップ予測値と送信バッファ２１０８の空き容量とに応じてフレームレートを徐々に増減させて符号化を行なった場合は、急激な画像の劣化を回避することが可能となる。
【００９９】
図１９は、画像符号化装置２１００における入力画像信号と被符号化フレームの概要を説明するための図である。図１９（ａ）は、画像符号化装置２１００に入力される画像信号の各フレームを示す図である。図１９（ａ）に示すように、画像符号化装置２１００は、上記実施の形態１の図５の場合と同様に、２つのフレームセットで１つのフレーム群２６０４を構成し、このフレーム群２６０４を上記量子化ステップやフレームレートを決定する際の１単位とする。図１９（ｂ）は、画像符号化装置２１００によって符号化された各被符号化フレームを示す図である。
【０１００】
図１９（ａ）に示すように、画像符号化装置２１００に入力される画像信号には符号化が容易なシーンと符号化が困難なシーンとが含まれており、符号化が容易なシーンでは符号化されたデータの発生ビット量は少なくなる。一方、符号化が困難なシーンでは符号化されたデータの発生ビット量が増加する。例えば、時刻ａに符号化が困難なシーンが画像符号化装置２１００に入力されたとすると、符号化が困難なシーンの最初のフレームの符号化による発生ビット量が多いために送信バッファ２１０８の空き容量が少なくなり、量子化ステップ予測部２２０１ではこの空き容量に応じて量子化ステップ予測値が増大される。例えば、量子化ステップ予測部２２０１によって予測された量子化ステップ予測値が、直前フレームに対応する量子化ステップ予測値の１．５倍に大きくされる。これにより、次のフレームの符号化による発生ビット量が抑制される。この結果、符号化による発生ビット量は当初の量子化ステップを用いて量子化した場合ほど大きくならず、送信バッファ２１０８の空き容量も、急激に低下することはない。従って、従来では連続的に大幅なフレーム間引きが必要になる場合であっても、画像符号化装置２１００では、より緩やかにフレームレートを低減することができる。
【０１０１】
それでもなお、上記送信バッファ２１０８の空き容量が低下して閾値Ｃ以下になった場合、フレームレート計算部２０２は最適フレームレートを１段階低いフレームレートに変更する。例えば、時刻ａまで３０Ｈｚのフレームレートで符号化していた場合、フレームレート計算部２２０２は、次のフレームからの最適フレームレートを２０Ｈｚに変更する。このように、量子化ステップを大きくし、フレームレートを小さくしても、なおかつ送信バッファ２１０８の容量に余裕がなく、量子化ステップ予測値がさらに大きくなり、閾値Ｂを超えた場合、フレームレート計算部２２０２は、次の最適フレームレートをさらに１段階低いフレームレートに変更する。例えば、時刻ｂまで２０Ｈｚのフレームレートで符号化していた場合、フレームレート計算部２２０２は次の最適フレームレートを１５Ｈｚに変更する。
【０１０２】
このように、画像符号化装置１００は、符号化が困難なシーンが入力された場合でも、符号化による発生ビット量に応じて量子化ステップ予測値を算出すると共に、その量子化ステップ予測値を最適フレームレートに反映することができるので、より穏やかに段階的にフレームレートを低減していくことができる。逆に、入力される画像信号において、例えば、時刻ｃで、符号化が困難なシーンから符号化が容易なシーンに切り替わった場合にも、まず量子化ステップを小さくすることにより、できるだけ高画質に符号化を行ない、それでもさらに送信バッファに余裕ができた（符号化が容易なシーンである）場合には、フレームレートを１段大きな値に変更するので、より穏やかに段階的にフレームレートを増加することができる。例えば、時刻ｃにおいて符号化が容易なシーンが入力され、量子化ステップを小さくしてもなお、送信バッファ２１０８に余裕ができた場合は、時刻ｄにおいてフレームレートを１段上の２０Ｈｚに変更し、時刻ｅにおいて量子化ステップが十分小さな値になった場合には、フレームレートをもう１段上の３０Ｈｚに変更するので、より穏やかにフレームレートを増加することができる。この結果、画像符号化装置１００によって符号化された画像信号を復号化装置で復号化した場合、符号化が困難なシーンでも、急激に画像が荒くなったり急激に動きがぎこちなくなったりすることなく動画像を再生することができる。逆に、符号化が容易なシーンに切り替わった場合でも、急激に画像の濃淡が滑らかになったり、急激に動きが滑らかになったりすることなく、人の目に不自然さを感じさせずにより画質の高い画像を再生することができる。
【０１０３】
以上のように、本実施の形態の画像符号化装置２１００によれば、所定の時間長（例えば、１秒間）で観測した場合のビットレートを一定に保ちながら、バッファに十分空きがある場合は低い量子化ステップで符号化することで、従来よりも高画質に符号化することができ、かつ複雑なシーンへ移行した場合のフレームレートの急激な低下（多くのフレームが符号化されずスキップされること）を抑制し、従来よりも動きの滑らかな符号化を行なうことができる。
【０１０４】
なお、上記の実施の形態において、フレームレート計算部２２０２は、送信バッファ２１０８のデータ残量と、量子化ステップ予測部２２０１の量子化ステップ予測値とを用いて最適フレームレートを計算することとしたが、本発明はこれに限定されず、何れか一方を用いて計算してもよい。また、フレームレート計算部２２０２は、上記図１６に示したフレームレートテーブル２４０３を用いて、３０Ｈｚ、２０Ｈｚ、１５Ｈｚおよび１０Ｈｚの４段階の最適フレームレートを計算することとしたが、最適フレームレートはこの値に限定されず、また、４段階である必要もない。さらに、このようなフレームレートテーブルを用いて最適フレームレートを計算する必要もなく、例えば、送信バッファの空き容量が閾値Ｃ以上である場合は最適フレームレートを現フレームレートの２倍にし、閾値Ｃ未満の場合は現フレームレートの１／２倍にするというように計算してもよい。また、もう１つの閾値Ｄ（Ｃ＜Ｄ）を設け、送信バッファの空き容量が閾値Ｃ以上である場合は最適フレームレートを現フレームレートの２倍にし、閾値Ｄ未満の場合は現フレームレートの１／２倍にするというように計算してもよい。このようにすることによって、閾値Ｃおよび閾値Ｄのそれぞれの近傍におけるわずかな送信バッファのデータ残量の変化に対して、最適フレームレートがその都度変更されることを防止することができる。また、最適フレームレートは、量子化ステップ予測値の変化に対しても、これと同様の計算を行なって求めてもよい。さらに、最適フレームレートは現フレームレートの１／２倍、２倍といった値に限定されるものではない。以下の実施の形態においても同様である。
【０１０５】
また、上記の実施の形態においては、量子化ステップ予測部２２０１は、上記図１５に示した予測係数テーブル２３０３によって量子化ステップ予測値を計算する場合について説明したが、本発明の量子化ステップ予測方法はこれに限定されず、予め定めた関数を用いて計算するとしてもよい。さらに、予測係数テーブル２３０３内の量子化ステップの予測係数も、「２」「１．５」「１．２」「１」「０．８」「０．５」「０．４」という値に限定されない。以下の実施の形態においても同様である。
【０１０６】
なお、本実施の形態２のフレーム数計算部２２０４は、過去１秒間（即ち、３０フレーム分）の間引き情報を格納するための間引き情報メモリ２６０１を備えることとしたが、本発明はこれに限定されない。また、現フレームレートの計算方法も、上記計算方法に限定されず、他の方法を用いてもよい。以下の実施の形態においても同様である。
【０１０７】
また、上記送信バッファのデータ残量に代えて、平均ビットレートとしてもよい。以下の実施の形態においても同様である。
【０１０８】
以下では、上記のフレームレート制御部２１１３の変形例のフレームレート制御部２８００、３０００及び３４００について説明する。なお、以下の変形例では、上記のフレームレート制御部２１１３同一の構成についてはその説明は省略し、異なる点について重点的に説明することとする。
【０１０９】
図２０は、変形例のフレームレート制御部２８００の機能構成を示すブロック図である。フレームレート制御部２８００は、量子化ステップ予測部２２０１、量子化ステップ決定部２２０３、フレームレート計算部２２０２、フレーム数計算部２２０４および比較器２２０５を備える。フレームレート制御部２８００が上記図１４に示したフレームレート制御部２１１３と異なる点は、フレームレート計算部２２０２に量子化ステップ予測部２２０１の量子化ステップ予測値が入力される代わりに、量子化ステップ決定部２２０３によって決定された量子化ステップが入力される点である。
【０１１０】
図２１は、上記図２０におけるフレームレート計算部２２０２の各入力信号および出力信号の一例を示す図である。図２１（ａ）は、フレームレート計算部２２０２の出力信号である最適フレームレートを示す図である。図２１（ｂ）は、フレームレート計算部２２０２の一方の入力信号である量子化ステップを示す図である。図２１（ｃ）は、フレームレート計算部２２０２の他方の入力信号である送信バッファ２１０８の空き容量を示す図である。量子化ステップ決定部２２０３は、量子化ステップ予測部２２０１において求められた量子化ステップ予測値に基づいて、「１」から「３１」までの整数値を決定し、決定した値を量子化ステップとして出力する。従って、図２１（ｂ）のように、フレームレート制御部２８００に入力される量子化ステップは、量子化ステップ予測値と異なり、最大でも「３１」である。
【０１１１】
このように、フレームレート計算部２２０２は、量子化ステップ予測値の代わりに、量子化ステップ決定部２２０３からの出力である量子化ステップに基づいて最適フレームレートを計算することによって、実際の符号化による発生ビット量から大きくかけ離れることなく最適フレームレートを算出することができる。
【０１１２】
図２２は、変形例のフレームレート制御部３０００の機能構成を示すブロック図である。フレームレート制御部３０００は、量子化ステップ決定部２２０３で得られた量子化ステップから過去に符号化したフレームの平均量子化ステップを求め、求められた平均量子化ステップからフレームレート計算部２２０２の最適フレームレートの計算を行ない、量子化ステップ予測部２２０１、量子化ステップ決定部２２０３、平均量子化ステップ計算部３００１、フレームレート計算部３００２、フレーム数計算部２２０４および比較器２２０５を備える。平均量子化ステップ計算部３００１は、過去１秒間の符号化に用いた量子化ステップの平均値を計算する。フレームレート計算部３００２は、平均量子化ステップ計算部３００１によって計算された量子化ステップの平均値と、送信バッファ２１０８の空き容量とから最適フレームレートを計算する。
【０１１３】
図２３は、上記図２２における平均量子化ステップ計算部３００１の機能を説明するためのブロック図である。平均量子化ステップ計算部３００１は、過去に符号化されたフレームについて量子化ステップの平均値の計算を行ない、量子化ステップメモリ３１０１、間引き情報メモリ３１０２、加算器３１０３および除算器３１０４を備える。量子化ステップメモリ３１０１は、量子化ステップ決定部２２０３の出力である量子化ステップの値を現フレームから１秒間遡って３０フレーム分、先入れ先出しで保持するＦＩＦＯである。間引き情報メモリ３１０２は、比較器２２０５から出力される、各フレームに対応する間引き情報（即ち、例えば、１秒間に３０フレームある場合は全部で３０ビット）を、現フレームから１秒間遡って先入れ先出しで保持するＦＩＦＯである。加算器３１０３は、各フレーム毎に対応する間引き情報と量子化ステップとの乗算した結果を加算して（即ち、過去１秒間に符号化された全てのフレームの量子化ステップを合計し）、除算器３１０４に出力する。除算器３１０４は、加算器３１０３から入力される量子化ステップの合計を、過去１秒間に符号化されたフレームの数で除算して、量子化ステップの平均値を算出する。
【０１１４】
図２４は、上記図２２におけるフレームレート計算部３００２の機能を説明するためのブロック図である。フレームレート計算部３００２は、上記図１６に示したフレームレートテーブル２４０３を保持しており、さらにヒステリシスコンパレータ３２０１、閾値メモリ３２０２、ヒステリシスコンパレータ３２０３、閾値メモリ３２０４および空き容量算出部２４０６を備える。ヒステリシスコンパレータ３２０１は、閾値メモリ３２０２から閾値α１、β１（β１＜α１）が一方の入力端子に入力され、他方の入力端子に入力される平均量子化ステップが閾値α１を超えると、その後、平均量子化ステップが閾値β１以下になるまでＤ１＝１を出力し、平均量子化ステップが閾値β１を超えても閾値α１を超えるまではＤ１＝０を出力する比較器である。閾値メモリ３２０２は、閾値α１およびβ１を保持するラッチ回路またはメモリである。ヒステリシスコンパレータ３２０３は、閾値メモリ３２０４から閾値α２、β２（β２＜α２）が一方の入力端子に入力され、他方の入力端子に入力される送信バッファ２１０８の空き容量がα２を超えるとＤ２＝１を出力し、その後送信バッファ２１０８の空き容量がβ２以下となるまでＤ２＝１を出力する。閾値メモリ３２０４は、閾値α２およびβ２を保持するラッチ回路またはメモリである。
【０１１５】
図２５は、上記図２２におけるフレームレート計算部３００２の各入力信号および出力信号の一例を示す図である。図２５（ａ）は、フレームレート計算部３００２の出力信号である最適フレームレートを示す図である。図２５（ｂ）は、フレームレート計算部３００２の一方の入力信号である平均量子化ステップを示す図である。図２５（ｃ）は、フレームレート計算部３００２の他方の入力信号である送信バッファ２１０８の空き容量を示す図である。図２５（ｂ）に示すように、平均量子化ステップは「１」から「３１」までの値をとるが、必ずしも各フレームの量子化ステップのように自然数ではなく、また、変化の度合いも緩やかで小さくなっている。フレームレート計算部３００２が、このように入力されるヒステリシスコンパレータ３２０１の出力Ｄ１およびヒステリシスコンパレータ３２０３の出力Ｄ２の値に基づいて最適フレームレートを計算する方法はすでに説明した通りである。
【０１１６】
このように、フレームレート制御部３０００は、量子化ステップ予測値の代わりに、平均量子化ステップ計算部３００１からの出力である平均量子化ステップに基づいてフレームレートを制御することによって、量子化ステップの値が閾値付近で上下した場合に、１フレームごとにフレームレートが変更されてしまうことを防止することができる。
【０１１７】
なお、上記実施の形態では、平均量子化ステップ計算部３００１において、過去１秒間に符号化されたフレームにおける量子化ステップの平均値を計算する実施例について説明したが、本発明はこれに限定されず、過去数秒間または過去数フレーム〜数十フレームについて量子化ステップの平均値を算出することとしてもよい。また、符号化されていないフレームも含めて、一律に過去の量子化ステップの平均値を計算するようにしてもよい。
【０１１８】
図２６は、変形例のフレームレート制御部３４００の機能構成を示すブロック図である。フレームレート制御部３４００のフレームレート計算部３４０１は、比較器２４０１および比較器２４０２の代わりにヒステリシスコンパレータ３２０１およびヒステリシスコンパレータ３２０３を備え、上記実施の形態１におけるフレームレート計算部２０２と同様に、最適フレームレートを計算するが、さらに、過去１秒間に計算した最適フレームレートの平均値を求め、求めた平均フレームレートを最適フレームレートとする。
フレームレート制御部３４００は、量子化ステップ予測部２２０１、量子化ステップ決定部２２０３、フレームレート計算部３４０１、フレームレートメモリ３４０２、フレーム数計算部２２０４および比較器２２０５を備える。フレームレート計算部３４０１は、ヒステリシスコンパレータ３２０１の出力Ｄ１およびヒステリシスコンパレータ３２０３の出力Ｄ２を入力して、フレームレートテーブル２４０３の規則（真理値表）に従って最適フレームレートを計算する。さらに、フレームレート計算部３４０１は、過去の複数の最適フレームレートの計算結果からその平均値を計算する。
【０１１９】
フレームレートメモリ３４０２は、フレームレート計算部３４０１の計算結果である最適フレームレートを、現フレームから１秒間遡った３０フレーム分について、先入れ先出しで保持するＦＩＦＯである。
【０１２０】
図２７は、上記図２６におけるフレームレート計算部３４０１およびフレームレートメモリ３４０２の詳細な構成を示すブロック図である。フレームレート計算部３４０１は、フレームレートテーブル２４０３を保持しており、さらに、ヒステリシスコンパレータ３２０１、閾値メモリ３２０２、ヒステリシスコンパレータ３２０３、閾値メモリ３２０４、空き容量算出部２４０６、加算器３５０１および除算器３５０２を備える。フレームレート計算部３４０１は、入力される画像信号のフレーム毎に、量子化ステップ予測部２２０１から量子化ステップ予測値が入力されるヒステリシスコンパレータ３２０１の出力Ｄ１と、送信バッファ２１０８のデータ残量が入力されるヒステリシスコンパレータ３２０３の出力Ｄ２とに基づいて、フレームレートテーブル２４０３から最適フレームレートを算出し、算出された最適フレームレートを３０Ｈｚでフレームレートメモリ３４０２に出力する。加算器３５０１は、フレームレートメモリ３４０２内の各最適フレームレートを加算する。除算器３５０２は、加算器３５０１から出力された値を「３０」で除算し、フレームレートテーブル２４０３を参照して、４段階の最適フレームレートの中から除算結果に最も近いフレームレートを平均最適フレームレートとして決定して出力する。この結果、最適フレームレートが、例えば、３０Ｈｚ→１０Ｈｚと変化するような場合にも、平均最適フレームレートは、必ず３０Ｈｚ→２０Ｈｚ→１５Ｈｚ→１０Ｈｚのように、中間のフレームレートを経由して順次変化するので、符号化におけるフレームレートの制御を、より滑らかに行なうことができる。
【０１２１】
図２８は、上記図２６におけるフレームレート計算部３４０１の各入力信号および出力信号の一例を示す図である。図２８（ａ）は、フレームレート計算部３４０１の出力信号である平均最適フレームレートを示す図である。図２８（ｂ）は、フレームレート計算部３４０１の一方の入力信号である量子化ステップ予測値を示す図である。図２８（ｃ）は、フレームレート計算部３４０１の他方の入力信号である送信バッファ２１０８の空き容量を示す図である。図２８（ａ）に示すように、平均最適フレームレートは、現フレームから１秒間遡って３０フレーム分の最適フレームレートが平均化され、その値に最も近い最適フレームレートが選ばれているため、大きなフレームレートの変更が抑制され、その結果、より動きの滑らかな符号化結果を得ることができる。
【０１２２】
なお、本フレームレート計算部３４０１は、過去１秒間、３０フレーム分の最適フレームレートの平均値を計算すると説明したが、本発明はこれに限定されず、平均値を求める最適フレームレートの範囲は過去何秒間または何フレーム分であってもよい。
【０１２３】
（実施の形態３）
図２９は、実施の形態３における画像符号化装置４１００の機能構成を示すブロック図である。画像符号化装置４１００は、上記実施の形態１の画像符号化装置１０における可変ビットレート方式と上記実施の形態２の画像符号化装置２１００における可変フレームレート方式とを用いて、より適切な符号化を実現する。
【０１２４】
図２９に示すように、画像符号化装置４１００は、送信バッファ２１０８、フレームレート制御部４１１３およびフレーム間引部４１１６を除いて、上記実施の形態１における画像符号化装置１０と同じ機能構成である。なお、以下において、上記実施の形態１又は実施の形態２における機能構成と同じものについては、同一の符番を付し、その説明は省略する。
【０１２５】
フレームレート制御部４１１３は、上記実施の形態２の画像符号化装置２１００のフレームレート制御部２１１３の機能のうち、間引き情報を生成する機能のみを有している。
【０１２６】
フレーム間引部４１１６は、フレームレート制御部４１１３から間引き情報を受信してフレームレートを決定し、決定したその時点のフレームレート値をビットレート制御部３０に通知する。
【０１２７】
図３０は、上記図２９におけるフレームレート制御部４１１３の詳細な機能構成を示すブロック図である。図３０に示すように、フレームレート制御部４１１３は、上記実施の形態２におけるフレームレート制御部２１１３（上記図１４参照）から量子化ステップ予測部２２０１および量子化ステップ決定部２２０３を除いた構成となっている。従って、このフレームレート制御部４１１３は、送信バッファ２１０８から入手したデータ残量に基づいて間引き情報のみを生成し、この間引き情報をフレーム間引部４１１６に送信する。
【０１２８】
以上のように、本実施の形態に係る画像符号化装置４１００により、送信バッファのデータ残量によってフレームレートを制御すると共に、このフレームレートとフレーム群に割り当てられた総ビット数とに基づいて、より好適なビット割り当てを実現することが可能となる。
【０１２９】
（実施の形態４）
以下の実施の形態では、上記実施の形態１〜３における画像符号化装置の構成を画像符号化プログラムのステップとして実現し、上記画像符号化装置と同等の機能を一般的なコンピュータシステム上で実現するための方策について説明する。
【０１３０】
図３１は、画像符号化プログラムを格納したフレキシブルディスクを用いて、上記実施の形態１〜３の画像符号化装置と同等の機能を一般的なコンピュータシステム上で実現する場合の説明図である。
【０１３１】
図３１（ｂ）は、フレキシブルディスクの正面から見た外観、断面構造及びフレキシブルディスクを示し、図３１（ａ）は、記録媒体本体であるフレキシブルディスクの物理フォーマットの例を示している。
【０１３２】
フレキシブルディスク１３０１は、ケース１３０２に内蔵され、当該ディスクの表面には同心円状に外周から内周に向かって複数のトラックが形成され、各トラックは角度方向に１６のセクタに分割されている。従って、前記画像符号化プログラムを格納したフレキシブルディスクでは、前記フレキシブルディスク１３０１上に割り当てられた領域に、前記画像符号化プログラムとしてのデータが記録されている。
【０１３３】
また、図３１（ｃ）は、フレキシブルディスク１３０１に前記画像符号化プログラムの記録再生を行なうための装置の構成を示す。前記画像符号化プログラムをフレキシブルディスク１３０１に記録する場合は、コンピュータシステム１３０４から画像符号化プログラムのデータをフレキシブルディスクドライブ１３０３を介して書き込む。また、フレキシブルディスク１３０１内のプログラムにより前記符号化あるいは復号化装置をコンピュータシステム中に構築する場合は、フレキシブルディスクドライブ１３０３からプログラムを読み出し、コンピュータシステム１３０４に転送する。
【０１３４】
なお、上記の説明ではデータ記録媒体としてフレキシブルディスクを用いて説明を行なったが、光ディスクやＩＣカード、ＲＯＭカセット等、プログラムを記録できる媒体を用いることにより、同様に上記画像符号化装置を実現することができる。
【０１３５】
【発明の効果】
以上のように、本発明に係る画像符号化装置によれば、所定の時間長において一定のビットレートで符号化を行なう場合、フレームの集まりであるフレーム群における発生ビット数の偏りが少なくなるようにフレーム群を構成し、フレーム群における個々のフレームに対して符号化を行なう毎に、次のフレームに割り当てるべきビット数を計算する。さらに、過去のフレームにおける発生ビット数をも参照することで、次のフレームに対して高画質に符号化し得る最適な割当ビット数を導出することができる。つまり、符号化が困難なシーンが連続した場合であっても、その後のシーンに割り当てるビット数が極端に少なくなることを回避し、全体として画像の品質の向上を図ることが可能となる。
【０１３６】
また、本発明に係る画像符号化装置によれば、符号化されるフレームのレートが変動する（可変フレームレートの）場合においても、符号化を行なう毎にその時点のフレームレートを用いた最適なビット数を導出することが可能となるので、所定の時間長における平均ビットレートを一定に保ちつつ、画質の極端な劣化を回避し得る符号化を可能とする。
【０１３７】
また、本発明に係る画像符号化装置によって符号化されたビットストリームは一般的な復号化装置で復号が可能であり、特別な処理をまったく行なうことなく、高画質な復号が可能である。
【０１３８】
さらに、本発明に係る画像符号化装置によれば、現フレームを符号化した結果、発生した符号量に応じて、まず、量子化の幅を調節して各画素の信号解像度を調節することにより次フレームの発生符号量を制御し、量子化幅の調節による発生符号量の制御に応じて、符号化フレームレートを調節することができる。この結果、例えば、量子化幅を大きくすることによって十分、発生符号量が低減したにも拘らずフレーム間引きを発生させ、必要以上に画質を劣化させてしまうという状態の発生を未然に防止して、効率よく符号化による発生符号量を制御することができるという効果がある。
【０１３９】
また、本発明に係る画像符号化装置は、送信バッファの残留符号量から次符号化フレームの量子化幅を計算することにより、例えば、送信バッファに余裕がある場合（すなわち、符号化が容易なシーン）は量子化幅を小さな値とし、逆に送信バッファに余裕がない場合は量子化幅を大きな値とすることで、十分長い時間でのビットレートを一定に保ち、かつできるだけ高画質な符号化を行なうことができるという効果がある。
【０１４０】
さらに、本発明に係る画像符号化装置は、計算された量子化幅の予測値が閾値以上の大きな値となった場合（すなわち符号化が困難な複雑なシーンの場合）に符号化フレームレートを小さな値に変更して、フレームの間引き率を増加する。しかし、量子化幅の制御により発生ビット量が抑制されるので、急激なフレームレートの変化が生じない高画質な符号化を行なうことができるという効果がある。
【０１４１】
また、本発明に係る画像符号化装置によれば、送信バッファの残留符号量によって制御され変動する量子化幅の平均値を用いて符号化フレームレートを制御することによって、現フレームの符号化で極端に符号量が発生し（送信バッファの残留符号量が増加し）次フレームの量子化ステップが大きく制御された場合に、すぐにフレームレートの変更が行われることが抑制され、直後の画像の動きがぎこちなくなることを防止することができる。また同時に、フレームレートの急激な変更が行われることを抑制し、動きの滑らかな符号化を行なうことができるという効果がある。
【図面の簡単な説明】
【図１】実施の形態１における画像符号化装置の機能構成を示すブロック図である。
【図２】図１におけるビットレート制御部の詳細な機能構成を示すブロック図である。
【図３】一般的な画像符号化におけるピクチャタイプ別の発生ビット数の特徴を示す図である。
【図４】図３で定義したフレーム群の具体例である。
【図５】図３で定義したフレーム群の変形例である。
【図６】（ａ）は、上記図５のように２つのフレームセットでフレーム群を構成することによる効果を説明するための図である。（ｂ）は、上記図５のように２つのフレームセットでフレーム群を構成し、かつ、符号化のフレームレートが変化した場合における効果を説明するための図である。
【図７】実施の形態１における画像符号化装置の全体制御部及びビットレート制御部における処理の流れを示すフローチャートである。
【図８】（ａ）は、実施の形態１における画像符号化装置を用いて符号化を実行する場合のフレーム群の構成例を示す図である。（ｂ）は、実施の形態１における画像符号化装置を用いて符号化を実行する場合のビットレートの変化を示す一例である。
【図９】（ａ）は、２つのフレームセットで１つのフレーム群を構成させた場合の各フレームの様子を示した一例である。（ｂ）は、２つのフレームセットで１つのフレーム群を構成させた場合のビットレートの変動の様子を示した一例である。
【図１０】（ａ）は、２つのフレームセットで１つのフレーム群を構成させ、かつ、符号化のフレームレートが変化した場合の各フレームの様子を示した一例である。（ｂ）は、２つのフレームセットで１つのフレーム群を構成させ、かつ、符号化のフレームレートが変化した場合のビットレートの変動の様子を示した一例である。
【図１１】演算部におけるビット数の算出方法の具体例を示した図である。
【図１２】図１においてフレーム間引部を設けず、その他の部署からフレームレート値Ｒｆの値を入手するように構成した画像符号化装置の機能構成の一部を示したブロック図である。
【図１３】実施の形態２に係る画像符号化装置の機能構成を示すブロック図である。
【図１４】図１３におけるレート制御部の詳細な機能構成を示すブロック図である。
【図１５】図１４における量子化ステップ予測部の機能を説明するためのブロック図である。
【図１６】図１４におけるフレームレート計算部の機能を説明するためのブロック図である。
【図１７】図１６におけるフレームレート計算部の各入力信号および出力信号を示す図である。
【図１８】図１４におけるフレーム数計算部の動作を説明するための図である。
【図１９】画像符号化装置の入力画像信号と被符号化フレームとを示す図である。
【図２０】変形例のフレームレート制御部の機能構成を示すブロック図である。
【図２１】図２０におけるフレームレート計算部の各入力信号および出力信号を示す図である。
【図２２】変形例のフレームレート制御部の機能構成を示すブロック図である。
【図２３】図２２における平均量子化ステップ計算部の構成を示すブロック図である。
【図２４】図２２におけるフレームレート計算部の機能を説明するためのブロック図である。
【図２５】図２２におけるフレームレート計算部の各入力信号および出力信号を示す図である。
【図２６】変形例のフレームレート制御部の機能構成を示すブロック図である。
【図２７】図２６におけるフレームレート計算部およびフレームレートメモリの機能を説明するためのブロック図である。
【図２８】図２６におけるフレームレート計算部の各入力信号および出力信号を示す図である。
【図２９】実施の形態３における画像符号化装置の機能構成を示すブロック図である。
【図３０】図２９の画像符号化装置におけるフレームレート制御部の機能構成を示すブロック図である。
【図３１】実施の形態１〜３における画像符号化装置を一般のコンピュータシステムによって実現するためのプログラムを格納し得る記憶媒体を説明するための図である。
【図３２】従来の可変ビットレート方式を用いた画像符号化装置の機能構成を示すブロック図である。
【図３３】従来の画像符号化装置におけるビットレート制御部の機能構成を示すブロック図である。
【図３４】従来の画像符号化装置の全体制御部及びビットレート制御部における処理の流れを示すフローチャートである。
【図３５】従来のビットレート制御部における割当ビット数の算出方法の具体例を示した図である。
【図３６】（ａ）は、従来技術の第１の問題を説明するためのフレーム群の構成例である。（ｂ）は、従来技術の第１の問題を説明するためのビットレートの一例である。
【図３７】（ａ）は、従来技術の第２の問題を説明するためのフレーム群の構成例である。（ｂ）は、従来技術の第２の問題を説明するためのビットレートの一例である。
【符号の説明】
１０　　　画像符号化装置
２０　　　フレーム間引部
３０　　　レート制御部
３１　　　フレーム群目標ビット数導出部
３２　　　次フレーム目標ビット数導出部
３３　　　平均フレームビット数導出部
３４　　　演算部
３５　　　量子化ステップ導出部
３６　　　記憶部
４０　　　全体制御部
５０　　　画像符号化装置
６０　　　全体制御部
１００　　　画像符号化装置
１０１　　　被符号化フレーム信号
１０２　　　フレームメモリ
１０３　　　検出部
１０４　　　補償部
１０５　　　直交変換部
１０６　　　量子化部
１０７　　　可変長符号化部
１０８　　　逆量子化部
１０９　　　逆直交変換部
１１０　　　ビットレート制御部
１１１　　　フレーム群目標ビット数導出部
１１２　　　次フレーム目標ビット数導出部
１１３　　　量子化ステップ導出部
１２１　　　符号化フレーム信号
１４０　　　全体制御部
１４１　　　量子化ステップ
２０１　　　量子化ステップ予測部
２０２　　　フレームレート計算部
２０３　　　量子化ステップ決定部
２０４　　　フレーム数計算部
２０５　　　比較器
３０２　　　現在値メモリ
３０３　　　予測係数テーブル
４０１　　　比較器
４０６　　　容量算出部
１３０１　　　フレキシブルディスク
１３０２　　　ケース
１３０３　　　フレキシブルディスクドライブ
１３０４　　　コンピュータシステム
２１００　　　画像符号化装置
２１０１　　　フレーム間引部
２１０８　　　送信バッファ
２１０９　　　逆量子化部
２１１０　　　逆直交変換部
２１１１　　　差分器
２１１２　　　加算器
２１１３　　　フレームレート制御部
２２０１　　　量子化ステップ予測部
２２０２　　　フレームレート計算部
２２０３　　　量子化ステップ決定部
２２０４　　　フレーム数計算部
２２０５　　　比較器
２３０２　　　現在値メモリ
２３０３　　　予測係数テーブル
２４０１　　　比較器
２４０２　　　比較器
２４０３　　　フレームレートテーブル
２４０４　　　閾値メモリ
２４０５　　　閾値メモリ
２４０６　　　容量算出部
２６０１　　　情報メモリ
２６０２　　　カウンタ
２６０３　　　演算器
２６０４　　　フレーム群
２８００　　　フレームレート制御部
３０００　　　フレームレート制御部
３００１　　　平均量子化ステップ計算部
３００２　　　フレームレート計算部
３１０１　　　量子化ステップメモリ
３１０２　　　情報メモリ
３１０３　　　加算器
３１０４　　　除算器
３２０１　　　ヒステリシスコンパレータ
３２０２　　　閾値メモリ
３２０３　　　ヒステリシスコンパレータ
３２０４　　　閾値メモリ
３４００　　　フレームレート制御部
３４０１　　　フレームレート計算部
３４０２　　　フレームレートメモリ
３５０１　　　加算器
３５０２　　　除算器
４１００　　　画像符号化装置
４１１３　　　フレームレート制御部
４１１６　　　フレーム間引部
【図１】
2004007619.tif 000003
【図２】
2004007619.tif 000004
【図３】
2004007619.tif 000005
【図４】
2004007619.tif 000006
【図５】
2004007619.tif 000007
【図６】
2004007619.tif 000008
【図７】
2004007619.tif 000009
【図８】
2004007619.tif 000010
【図９】
2004007619.tif 000011
【図１０】
2004007619.tif 000012
【図１１】
2004007619.tif 000013
【図１２】
2004007619.tif 000014
【図１３】
2004007619.tif 000015
【図１４】
2004007619.tif 000016
【図１５】
2004007619.tif 000017
【図１６】
2004007619.tif 000018
【図１７】
2004007619.tif 000019
【図１８】
2004007619.tif 000020
【図１９】
2004007619.tif 000021
【図２０】
2004007619.tif 000022
【図２１】
2004007619.tif 000023
【図２２】
2004007619.tif 000024
【図２３】
2004007619.tif 000025
【図２４】
2004007619.tif 000026
【図２５】
2004007619.tif 000027
【図２６】
2004007619.tif 000028
【図２７】
2004007619.tif 000029
【図２８】
2004007619.tif 000030
【図２９】
2004007619.tif 000031
【図３０】
2004007619.tif 000032
【図３１】
2004007619.tif 000033
【図３２】
2004007619.tif 000034
【図３３】
2004007619.tif 000035
【図３４】
2004007619.tif 000036
【図３５】
2004007619.tif 000037
【図３６】
2004007619.tif 000038
【図３７】
2004007619.tif 000039