(57)【特許請求の範囲】
【請求項１】
伝送速度と入力フレーム数とに応じてレート制御に必要な初期値を設定する初期化手段と、
バッファモジュールの状態と前記伝送速度とを考慮して目標符号化ビット数、最大許容ビット数及び最小許容ビット数を求める目標ビット演算手段と、
該目標ビット演算手段からの目標符号化ビット数、最大許容ビット数及び最小許容ビット数を利用してレート制御と符号化とを行うレート制御・符号化手段と、
該レート制御・符号化手段からのビット列の大きさと前記目標ビット演算手段からの最小許容ビット数とを比較して、意味のないデータであるスタッフィングビット列を出力するスタッフィング制御手段と、
前記レート制御・符号化手段からのビット列と前記スタッフィング制御手段からのスタッフィングビットとを組合わせて格納し、前記目標ビット演算手段に出力するバッファリング手段と、
該バッファリング手段からのバッファの占有状態の信号に応じてフレームスキップ信号を出力するフレームスキップ手段と、
前記各手段の符号化過程を制御し、前記フレームスキップ手段からのフレームスキップ信号に応じて次の入力フレームを符号化するか否かを決定する制御手段とを含み、
前記目標ビット演算手段は、前記最小許容ビット数（Ｍｉｎ＿ｂｉｔ）をＭｉｎ＿ｂｉｔ＝ｍａｘ｛Ｂｆｄ＋Ｂａ−Ｂｄ、Ｂａ−Ｂｆｅ、０｝として求め、前記最大許容ビット数（Ｍａｘ＿ｂｉｔ）をＭａｘ＿ｂｉｔ＝ｍｉｎ｛Ｂｆｄ、Ｂｅ−Ｂｆｅ｝として求めることを特徴とする実時間画像通信のためのレート制御装置。
（ここで、Ｂｆｄは、復号器バッファモジュールに格納されたビット列を意味し、Ｂａは、一フレームが符号化される間にビット列がバッファに伝送されるビット数であり、Ｂｄは、復号器バッファの大きさであり、Ｂｅは、符号器バッファの大きさであり、Ｂｆｅは、符号器バッファモジュールに格納されたビット列を示し、ｍｉｎ｛｝は、構成元素の中最小値を出力する関数であって、ｍａｘ｛｝は、構成元素の中最大値を出力する関数である。）
【請求項２】
前記スタッフィング制御手段は、前記目標ビット演算手段からの最小許容ビット数と前記レート制御・符号化手段からのビット列の大きさとを比較して、前記ビット列の大きさが前記最小許容ビット数より小さい場合に、これらの差以上のビット数のスタッフィングビット列を前記バッファリング手段に出力することを特徴とする請求項１に記載の実時間画像通信のためのレート制御装置。
【請求項３】
前記レート制御・符号化手段は、現在符号化されるマクロブロックまでのビット列の符号化ビット数の和が前記最大許容ビット数を越える場合に、現在符号化されるマクロブロックのビット列を廃棄してビット列の長さが前記最大許容ビット数を越えないように保障することを特徴とする請求項１に記載の実時間画像通信のためのレート制御装置。
【請求項４】
前記レート制御・符号化手段は、現在マクロブロックのビット列を廃棄する場合に、現在マクロブロックを符号化しなかったことを示すビット列を追加することを特徴とする請求項３に記載の実時間画像通信のためのレート制御装置。
【請求項５】
前記レート制御・符号化手段は、現在符号化されるマクロブロックまでのビット列の符号化ビット数の和が前記最大許容ビット数、または目標符号化ビット数、または最小許容ビット数から計算された所定の許容限界を越える場合に、画素情報を符号化しないことによって、ビット列の長さが前記最大許容ビット数を越えないようにすることを特徴とする請求項１に記載の実時間画像通信のためのレート制御装置。
【請求項６】
前記レート制御・符号化手段は、
前記目標ビット演算手段から目標符号化ビット数と最大許容ビット数、及び最小許容ビット数が入力され、その前のマクロブロックのビット列の大きさが入力され、モデルパラメーターが入力されて、量子化パラメーターと該当マクロブロックの符号化をするか否かとを決定する量子化パラメーター演算手段と、
該量子化パラメーター演算手段からの量子化パラメーターに応じて変換係数の量子化幅を決定し、この値に応じて画素情報符号化判定信号が生成され、画素情報を符号化して、ビット列の大きさを前記量子化パラメーター演算手段に出力する符号化手段と、
該符号化手段からビット列の大きさが入力され、前記量子化パラメーター演算手段から量子化パラメーターが入力されて、モデルパラメータを更新して前記量子化パラメーター演算手段に出力するモデル更新手段と、
前記符号化手段からビット列の大きさが入力され、前記目標ビット演算手段から最大許容ビット数が入力されて、マクロブロックのスキップをするか否かを決定してマクロブロックスキップ信号を出力するマクロブロックスキップ制御手段と、
該マクロブロックスキップ制御手段からのマクロブロックスキップ信号と前記符号化手段からのビット列とを組合わせるビット列の操作手段とを含み、
前記量子化パラメーター演算手段は、
前記目標ビット演算手段からの目標符号化ビット数、最大許容ビット数及び最小許容ビット数に応じてしきい値を計算するしきい値演算部と、
前記目標ビット演算手段からの目標符号化ビット数、最大許容ビット数（ｍａｘ＿ｂｉｔ）及び最小許容ビット数（ｍｉｎ＿ｂｉｔ）と前記モデル更新手段からのモデルパラメーターとに応じて量子化パラメーター（ＱＰ）を計算する量子化パラメーター演算部と、
累積ビット数を格納する格納手段と、
前記符号化手段からのその前のマクロブロックのビット列の大きさと前記格納手段の累積ビット数とを足して前記格納手段に出力する加算部と、
該加算部からの累積ビット数を前記しきい値演算部からのしきい値と比較してマクロブロックの符号化をするか否かを決定する比較部と
を含むことを特徴とする請求項１乃至請求項５のいずれか一項に記載の実時間画像通信のためのレート制御装置。
【請求項７】
前記しきい値演算部でしきい値を計算する時、前記目標ビット演算手段からの目標符号化ビット数、最大許容ビット数、及び最小許容ビット数を全部使用するか、または一部のみを使用することを特徴とする請求項６に記載の実時間画像通信のためのレート制御装置。
【請求項８】
前記量子化パラメーター演算部で量子化パラメーターを求める時、前記目標ビット演算手段からの目標符号化ビット数、最大許容ビット数、及び最小許容ビット数を全部使用するか、または一部のみを使用することを特徴とする請求項６に記載の実時間画像通信のためのレート制御装置。
【請求項９】
一フレームの符号化が全部終了した場合に、次のフレームの累積ビット数を格納できるようにするために、前記格納手段に格納されている累積ビット数を”０”に初期化することを特徴とする請求項６に記載の実時間画像通信のためのレート制御装置。
【請求項１０】
前記比較部は、前記加算部からの累積ビット数を前記しきい値演算部からのしきい値と比較して前記累積ビット数が前記しきい値以下である場合には、画素情報を符号化する画素情報符号化判定信号を出力し、前記累積ビット数が前記しきい値より大きい場合には、バッファのオーバーフローを防止するために、画素情報を符号化しない画素情報符号化判定信号を出力することを特徴とする請求項６に記載の実時間画像通信のためのレート制御装置。
【請求項１１】
前記符号化手段は、
前記量子化パラメーター演算手段からの量子化パラメーターに応じて変換係数を量子化する量子化手段と、
意味のないデータと前記量子化手段の量子化された変換係数のいずれか一つを、前記量子化パラメーター演算手段からの画素情報符号化判定信号に応じて選択する選択手段と
を有することを特徴とする請求項６に記載の実時間画像通信のためのレート制御装置。
【請求項１２】
前記マクロブロックスキップ制御手段は、
累積ビット数を格納する格納手段と、
前記符号化手段からの現在マクロブロックのビット列の大きさと前記格納手段の累積ビット数とを足して前記格納手段に出力する加算手段と、
該加算手段からの累積ビット数を前記目標ビット演算手段からの最大許容ビット数と比較して現在マクロブロックの伝送をするか否かを決定する比較手段と
を有することを特徴とする請求項６に記載の実時間画像通信のためのレート制御装置。
【請求項１３】
前記比較手段は、
前記加算手段からの累積ビット数が前記目標ビット演算手段からの最大許容ビット数より小さい場合には、現在マクロブロックのビット列をそのまま伝送するようにマクロブロックスキップ信号を出力し、前記加算手段からの累積ビット数が前記目標ビット演算手段からの最大許容ビット数より大きい場合には、現在マクロブロックのビット列を出力しないようにマクロブロックスキップ信号を出力することを特徴とする請求項１２に記載の実時間画像通信のためのレート制御装置。
【請求項１４】
一フレームの符号化が全部終了した場合に、次のフレームの累積ビット数を格納できるようにするために、前記格納手段に格納されている累積ビット数を”０”に初期化することを特徴とする請求項１２に記載の実時間画像通信のためのレート制御装置。
【請求項１５】
前記ビット列操作手段は、
前記符号化手段から符号化されたビット列が入力されるか、現在のマクロブロックが符号化されなかったことを知らせるマクロブロックスキップビット列が入力されて、前記マクロブロックスキップ制御手段から現在のマクロブロックが伝送されないようにするマクロブロックスキップ信号が入力された時には、マクロブロックスキップビット列を選択して出力し、現在のマクロブロックが伝送されるようにするマクロブロックスキップ信号が入力された時には、ビット列を選択して出力することを特徴とする請求項６に記載の実時間画像通信のためのレート制御装置。
【請求項１６】
実時間画像通信のためのレート制御装置に適用されるレート制御方法において、
伝送線路の伝送速度と符号化しようとする画像の秒当たりの入力フレーム数に応じてレート制御に必要な初期値を設定する第１ステップと、
現在バッファモジュールの状態と前記伝送線路の伝送速度とを考慮して目標符号化ビット数、最大許容ビット数、及び最小許容ビット数を求める第２ステップと、
前記目標符号化ビット数、最大許容ビット数、及び最小許容ビット数を利用してレート制御と符号化とを行う第３ステップと、
符号化されたビット列の大きさと前記最小許容ビット数とを比較して意味のないデータであるスタッフィングビット列を発生する第４ステップと、
符号化されたビット列と前記スタッフィングビット列とを組合わせて格納し、画像情報を伝送するようにする第５ステップと、
現在のバッファの状態に応じて発生したフレームスキップ信号に応じて次の入力フレームの符号化をするか否かを決定する第６ステップとを含み、
前記最小許容ビット数（Ｍｉｎ＿ｂｉｔ）はＭｉｎ＿ｂｉｔ＝ｍａｘ｛Ｂｆｄ＋Ｂａ−Ｂｄ、Ｂａ−Ｂｆｅ、０｝として求め、前記最大許容ビット数（Ｍａｘ＿ｂｉｔ）は、Ｍａｘ＿ｂｉｔ＝ｍｉｎ｛Ｂｆｄ、Ｂｅ−Ｂｆｅ｝として求めることを特徴とする実時間画像通信のためのレート制御方法。
（ここで、Ｂｆｄは、復号器バッファモジュールに格納されたビット列を意味し、Ｂａは、一フレームが符号化される間にビット列がバッファに伝送されるビット数であり、Ｂｄは、復号器バッファの大きさであり、Ｂｅは、符号器バッファの大きさであり、Ｂｆｅは、符号器バッファモジュールに格納されたビット列を示し、ｍｉｎ｛｝は、構成元素の中最小値を出力する関数であって、ｍａｘ｛｝は、構成元素の中最大値を出力する関数である。）
【請求項１７】
前記第４ステップは、前記最小許容ビット数と前記符号化されたビット列の大きさとを比較して前記ビット列の大きさが前記最小許容ビット数より小さい場合に、これらの差以上のビット数のスタッフィングビット列を発生することを特徴とする請求項１６に記載の実時間画像通信のためのレート制御方法。
【請求項１８】
前記第３ステップのレート制御及び符号化過程は、現在符号化されるマクロブロックまでのビット列の符号化ビット数の和が前記最大許容ビット数を越える場合、現在符号化されるマクロブロックのビット列を廃棄してビット列の長さが前記最大許容ビット数を越えないように保障することを特徴とする請求項１６に記載の実時間画像通信のためのレート制御方法。
【請求項１９】
前記第３ステップのレート制御及び符号化過程は、現在のマクロブロックのビット列を廃棄する場合に、現在のマクロブロックを符号化しなかったことを示すビット列を追加することを特徴とする請求項１８に記載の実時間画像通信のためのレート制御方法。
【請求項２０】
前記第３ステップのレート制御及び符号化過程は、現在符号化されるマクロブロックまでのビット列の符号化ビット数の和が前記最大許容ビット数、または目標符号化ビット数、または最小許容ビット数から計算された所定の許容限界を越える場合に、画素情報を符号化しないことによって、ビット列の長さが前記最大許容ビット数を越えないようにすることを特徴とする請求項１６に記載の実時間画像通信のためのレート制御方法。
【請求項２１】
前記第３ステップは、
前記目標符号化ビット数と最大許容ビット数及び最小許容ビット数とその前のマクロブロックのビット列の大きさとモデルパラメーターとに応じて量子化パラメーターと該当マクロブロックの符号化をするか否かとを決定する第７ステップと、
前記量子化パラメーターに応じて変換係数の量子化幅を決定し、この値に応じて画素情報符号化判定信号が生成され、前記画像情報符号化判定信号に応じて符号化する第８ステップと、
前記符号化されたビット列の大きさと前記量子化パラメーターとに応じてモデルパラメーターを更新して生成する第９ステップと、
前記符号化されたビット列の大きさと前記最大許容ビット数とを比較してマクロブロックのスキップをするか否かを決定してマクロブロックスキップ信号を発生する第１０ステップと、
前記マクロブロックスキップ信号と前記符号化されたビット列とを組合わせる第１１ステップとを含み、
前記第７ステップは、
前記目標符号化ビット数、最大許容ビット数及び最小許容ビット数に応じてしきい値を求める第１２ステップと、
前記目標符号化ビット数（ｔａｒｇｅｔ＿ｂｉｔ）、最大許容ビット数（ｍｉｎ＿ｂｉｔ）及び最小許容ビット数（ｍｉｎ＿ｂｉｔ）と前記モデルパラメーターに応じて量子化パラメーター（ＱＰ）を求める第１３ステップと、
前記符号化されたその前のマクロブロックのビット列の大きさと累積ビット数とを足して新しい累積ビット数を求める第１４ステップと、
新しく得られた該累積ビット数と前記得られたしきい値とを比較してマクロブロックの符号化をするか否か決定する第１５ステップと
を含むことを特徴とする請求項１６乃至２０いずれかに記載の実時間画像通信のためのレート制御方法。
【請求項２２】
前記第１５ステップは、
前記得られた累積ビット数と前記しきい値とを比較して前記累積ビット数が前記しきい値以下である場合には、画素情報を符号化する画素情報符号化判定信号を出力し、前記累積ビット数が前記しきい値より大きい場合には、バッファのオーバーフローを防止するために、画素情報を符号化しない画素情報符号化判定信号を発生することを特徴とする請求項２１に記載の実時間画像通信のためのレート制御方法。
【請求項２３】
前記第１０ステップは、
符号化された現在のマクロブロックのビット列の大きさとその前のマクロブロックまでの累積ビット数とを足して新しい累積ビット数を求める第１２ステップと、
前記得られた累積ビット数を前記最大許容ビット数と比較して、現在のマクロブロックの伝送をするか否かを決定する第１３ステップと
を有することを特徴とする請求項２１に記載の実時間画像通信のためのレート制御方法。
【請求項２４】
前記第１３ステップは、
前記得られた累積ビット数が前記最大許容ビット数より小さい場合には、現在のマクロブロックのビット列をそのまま伝送するように、マクロブロックスキップ信号を出力し、前記得られた累積ビット数が前記最大許容ビット数より大きい場合には、現在のマクロブロックのビット列を出力しないように、マクロブロックスキップ信号を出力することを特徴とする請求項２３に記載の実時間画像通信のためのレート制御方法。
【請求項２５】
前記第１１ステップは、
前記符号化されたビット列と現在のマクロブロックが符号化されなかったことを知らせるマクロブロックスキップビット列とを組合わせるが、現在のマクロブロックが伝送されないようにするマクロブロックスキップ信号が入力された時には、マクロブロックスキップビット列を選択して出力し、現在のマクロブロックが伝送されるようにするマクロブロックスキップ信号が入力された時には、ビット列を選択して出力することを特徴とする請求項２１に記載の実時間画像通信のためのレート制御方法。
【請求項２６】
実時間画像通信のためのレート制御のために、プロセッサを備えたレート制御装置に、
伝送線路の伝送速度と符号化しようとする画像の秒当たりの入力フレーム数とに応じてレート制御に必要な初期値を設定する第１機能と、
現在のバッファモジュールの状態と前記伝送線路の伝送速度とを考慮して目標符号化ビット数、最大許容ビット数、及び最小許容ビット数を求める第２機能と、
前記目標符号化ビット数、最大許容ビット数、及び最小許容ビット数を利用してレート制御と符号化とを行う第３機能と、
符号化されたビット列の大きさと前記最小許容ビット数とを比較して意味のないデータであるスタッフィングビット列を発生する第４機能と、
符号化されたビット列と前記スタッフィングビット列とを組合わせて格納し、画像情報を伝送する第５機能と、
現在のバッファの状態によって発生したフレームスキップ信号に応じて次の入力フレームの符号化をするか否かを決定する第６機能とを含み、
前記第３機能は、
前記目標符号化ビット数と最大許容ビット数、及び最小許容ビット数とその前のマクロブロックのビット列の大きさとモデルパラメーターに応じて量子化パラメーターと該当マクロブロックの符号化をするか否かを決定する第７機能と、
前記量子化パラメーターに応じて変換係数の量子化幅を決定し、符号化するか否かを示す画像情報符号化判定信号に応じて符号化する第８機能と、
前記符号化されたビット列の大きさと前記量子化パラメーターとに応じてモデルパラメーターを更新してモデルパラメーターを生成する第９機能と、
前記符号化されたビット列の大きさと前記最大許容ビット数とを比較してマクロブロックのスキップをするか否かを決定してマクロブロックスキップ信号を発生する第１０機能と、
前記マクロブロックスキップ信号と前記符号化されたビット列とを組合わせる第１１機能と
を実現させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項２７】
前記第７機能は、
前記目標符号化ビット数、最大許容ビット数、及び最小許容ビット数に応じてしきい値を求める第１２機能と、
前記目標符号化ビット数、最大許容ビット数、及び最小許容ビット数と前記モデルパラメーターとに応じて量子化パラメーターを求める第１３機能と、
前記符号化されたその前のマクロブロックのビット列の大きさと累積ビット数とを足して新しい累積ビット数を求める第１４機能と、
前記新しく得られた累積ビット数を前記得られたしきい値と比較してマクロブロックの符号化をするか否かを決定する第１５機能と
を実現させるための請求項２６に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、実時間画像通信サービスのためのレート制御装置及びその制御方法に関し、より詳細には、符号器と復号器バッファのオーバーフロー（ｏｖｅｒｆｌｏｗ）やアンダーフロー（ｕｎｄｅｒｆｌｏｗ）が発生しないようにするために、マクロブロック単位で符号化するか否かを決定して、ビットレートを制御する実時間画像通信サービスのためレート制御装置及びその制御方法に関する。
【０００２】
【従来の技術】
一定の伝送速度を有する伝送線路（ｃｈａｎｎｅｌ）を介して符号化された画像情報を実時間（ｒｅａｌ−ｔｉｍｅ）で伝送するためには、符号化されて伝送される画像情報を一定のビットレート（ｂｉｔ−ｒａｔｅ）に合わせる作業が必要である。このために、一定の大きさを有するバッファを使用して瞬間的に発生する画像情報を格納しておき、これを一定の速度で復号器（ｄｅｃｏｄｅｒ）（または受信器（ｒｅｃｅｉｖｅｒ））に伝送する。この場合、バッファのアンダーフローやオーバーフローが発生しないように保障するために、符号器（ｅｎｃｏｄｅｒ）を制御する方法をレート制御（ｒａｔｅ  ｃｏｎｔｒｏｌ）方法という。
【０００３】
レート制御は、一定の時間間隔で入力される画像（フレーム）をフレーム単位で制御するフレーム単位レート制御方法と、入力画像を一定の大きさのブロックに分けて各ブロック単位で符号化する場合に、これらのブロックをブロック単位で制御する方法とに区分することができる。この場合、符号化単位ブロックをマクロブロック（ｍａｃｒｏｂｌｏｃｋ）という。一般的に、マクロブロック単位レート制御方式は、フレーム単位の演算とマクロブロック単位の演算とが混在している形態に具現される。
【０００４】
以下、図１を参照しながら従来のマクロブロック単位のレート制御装置及びその制御方法を説明する。
【０００５】
図１は、従来のレート制御装置の構成を例示した図であって、フレーム単位の演算モジュール（ｍｏｄｕｌｅ）を示す。
【０００６】
図面に示すように、初期化（ｉｎｉｔｉａｌｉｚａｔｉｏｎ）モジュール１１０は、符号化開始の時、ただ一回行われ、伝送線路の伝送速度（ｂｉｔ  ｒａｔｅ）と符号化しようとする画像の秒当たりの入力フレーム数（ｆｒａｍｅ  ｒａｔｅ）などを外部から入力されてレート制御に必要な初期値を設定して、目標ビット演算モジュール１２０に伝達する。
【０００７】
目標ビット演算（Ｔａｒｇｅｔ  ｂｉｔ  ｃａｌｃｕｌａｔｉｏｎ）モジュール１２０は、現在のバッファの状態と伝送線路の伝送速度とを考慮して、現在の符号化されるフレームの目標符号化ビット数を決定して、マクロブロック単位のレート制御・符号化（ＭＢ  ｒａｔｅ  ｃｏｎｔｒｏｌ＆ｅｎｃｏｄｅｒ）モジュール１３０に出力する。この場合、現在のバッファの状態は、バッファモジュール１４０から直接入力されることもできるし、伝送速度とその前のフレームの符号化ビット数、及びその前のフレームでのバッファ状態から計算することもできる。
【０００８】
マクロブロック単位のレート制御・符号化モジュール１３０は、目標ビット演算モジュール１２０から入力された目標符号化ビット数に近接する符号化ビット数を有するビット列を出力するように、フレームより小さい符号化単位であるマクロブロック単位で符号化過程を制御する。これについては、後に述べる図２を参照して説明する。
【０００９】
バッファモジュール１４０は、マクロブロック単位のレート制御・符号化モジュール１３０から出力されるビット列を入力してこれを格納し、これを伝送線路を介して復号器に伝送するようにし、必要に応じてバッファの占有状態信号を目標ビット演算モジュール１２０に伝達する。バッファモジュール１４０に入力されるビット列は、一般的に可変的な長さを有し、伝送線路を介して伝送される速度は、伝送線路の特徴に応じて可変的な速度または固定された速度を有する。
【００１０】
フレームスキップ（Ｆｒａｍｅ  ｓｋｉｐ）モジュール１５０は、一フレームに対する符号化過程が全部終了する場合に、バッファモジュール１４０から現在の状態を入力して、バッファにビット列が格納されている状態が一定の限度を越える場合に、バッファのオーバーフローによる画像情報の損失を防止するために、次の入力フレームを符号化しないように、制御モジュール１６０にフレームスキップ信号を出力する。
【００１１】
制御（Ｃｏｎｔｒｏｌ  ｌｏｇｉｃ）モジュール１６０は、全体符号化過程を制御する役割を有し、特に、レート制御のためには、フレームスキップモジュール１５０からフレームスキップ信号が入力されて、次の入力フレームの符号化をするか否かを決定する。
【００１２】
図２は、図１のマクロブロック単位レート制御・符号化モジュールの詳細な構成を例示した図であって、マクロブロック単位の演算、及び符号化過程の制御を行う過程を示している。ここで、全ての機能ブロックは、マクロブロック単位で演算を行う。
【００１３】
図２に示すように、量子化パラメーター演算モジュール１３１は、目標ビット演算モジュール１２０からフレーム当たりの目標ビットレート（目標符号化ビット数）が入力され、モデル更新モジュール１３３から量子化パラメーターを計算するためのモデル情報（パラメーター）が入力されて、マクロブロックを量子化するための量子化パラメーター（ＱＰ）を符号化モジュール１３２へ出力する。符号化モジュール１３２は、量子化パラメーター演算モジュール１３１から量子化パラメーターが入力されて、実際に符号化を行ってビット列の大きさをモデル更新モジュール１３３に伝達し、ビット列をバッファモジュール１４０に伝達するモジュールであって、変換器、量子器及び可変長さ符号器等から構成される。
【００１４】
モデル更新モジュール１３３は、各マクロブロックの符号化されたビット列の大きさが符号化モジュール１３２から入力され、量子化パラメーター演算モジュール１３１から量子化パラメーターが入力されて、量子化パラメーター演算モジュール１３１が次の入力マクロブロックの量子化パラメーターを計算するための入力値に使用しできるようにするために、更新された量子化モデルパラメーターを出力する。
【００１５】
上述したように、従来のレート制御技術は、伝送線路による伝送レートを效率的に合わせるための量子化パラメーターを出力することを特徴とする。
【００１６】
【発明が解決しようとする課題】
しかしながら、従来のレート制御技術は、実時間画像伝送時、必然的に存在する復号器のバッファ状態に対する考慮なしに、符号器のバッファ状態のみを考慮するという短所があり、実際符号化されるビット数が目標ビット数より多くなる例外的な状況を考慮しないことによって、バッファのアンダーフローやオーバーフローが発生し得るという問題がある。
【００１７】
本発明は、このような問題に鑑みてなされたもので、その目的とするところは、符号器と復号器のバッファのオーバーフローやアンダーフローが発生しないようにするために、目標ビット数を設定し、最大許容ビット数と最小許容ビット数とを求めて、符号化をするか否かを決定してビットレートを制御するためのレート制御装置及びその制御方法を提供することにある。
【００１８】
【課題を解決するための手段】
本発明は、このような目的を達成するために、請求項１に記載の発明は、伝送速度と入力フレーム数とに応じてレート制御に必要な初期値を設定する初期化手段と、バッファモジュールの状態と前記伝送速度とを考慮して目標符号化ビット数、最大許容ビット数及び最小許容ビット数を求める目標ビット演算手段と、該目標ビット演算手段からの目標符号化ビット数、最大許容ビット数及び最小許容ビット数を利用してレート制御と符号化とを行うレート制御・符号化手段と、該レート制御・符号化手段からのビット列の大きさと前記目標ビット演算手段からの最小許容ビット数とを比較して、意味のないデータであるスタッフィングビット列を出力するスタッフィング制御手段と、前記レート制御・符号化手段からのビット列と前記スタッフィング制御手段からのスタッフィングビットとを組合わせて格納し、前記目標ビット演算手段に出力するバッファリング手段と、該バッファリング手段からのバッファの占有状態の信号に応じてフレームスキップ信号を出力するフレームスキップ手段と、前記各手段の符号化過程を制御し、前記フレームスキップ手段からのフレームスキップ信号に応じて次の入力フレームを符号化するか否かを決定する制御手段とを含み、前記目標ビット演算手段は、前記最小許容ビット数（Ｍｉｎ＿ｂｉｔ）をＭｉｎ＿ｂｉｔ＝ｍａｘ｛Ｂｆｄ＋Ｂａ−Ｂｄ、Ｂａ−Ｂｆｅ、０｝として求め、前記最大許容ビット数（Ｍａｘ＿ｂｉｔ）をＭａｘ＿ｂｉｔ＝ｍｉｎ｛Ｂｆｄ、Ｂｅ−Ｂｆｅ｝として求めることを特徴とする実時間画像通信のためのレート制御装置。（ここで、Ｂｆｄは、復号器バッファモジュールに格納されたビット列を意味し、Ｂａは、一フレームが符号化される間にビット列がバッファに伝送されるビット数であり、Ｂｄは、復号器バッファの大きさであり、Ｂｅは、符号器バッファの大きさであり、Ｂｆｅは、符号器バッファモジュールに格納されたビット列を示し、ｍｉｎ｛｝は、構成元素の中最小値を出力する関数であって、ｍａｘ｛｝は、構成元素の中最大値を出力する関数である。）
【００２０】
請求項２に記載の発明は、請求項１に記載の発明において、前記スタッフィング制御手段が、前記目標ビット演算手段からの最小許容ビット数と前記レート制御・符号化手段からのビット列の大きさとを比較して、前記ビット列の大きさが前記最小許容ビット数より小さい場合に、これらの差以上のビット数のスタッフィングビット列を前記バッファリング手段に出力することを特徴とする。
【００２１】
請求項３に記載の発明は、請求項１に記載の発明において、前記レート制御・符号化手段が、現在符号化されるマクロブロックまでのビット列の符号化ビット数の和が前記最大許容ビット数を越える場合に、現在符号化されるマクロブロックのビット列を廃棄してビット列の長さが前記最大許容ビット数を越えないように保障することを特徴とする。
【００２２】
請求項４の発明は、請求項３に記載の発明において、前記レート制御・符号化手段は、現在マクロブロックのビット列を廃棄する場合に、現在マクロブロックを符号化しなかったことを示すビット列を追加することを特徴とする。
【００２３】
請求項５に記載の発明は、請求項１に記載の発明において、前記レート制御・符号化手段が、現在符号化されるマクロブロックまでのビット列の符号化ビット数の和が前記最大許容ビット数、または目標符号化ビット数、または最小許容ビット数から計算された所定の許容限界を越える場合に、画素情報を符号化しないことによって、ビット列の長さが前記最大許容ビット数を越えないようにすることを特徴とする。
【００２４】
請求項６に記載の発明は、請求項１乃至５いずれかに記載の発明において、前記レート制御・符号化手段は、前記目標ビット演算手段から目標符号化ビット数と最大許容ビット数、及び最小許容ビット数が入力され、その前のマクロブロックのビット列の大きさが入力され、モデルパラメーターが入力されて、量子化パラメーターと該当マクロブロックの符号化をするか否かとを決定する量子化パラメーター演算手段と、該量子化パラメーター演算手段からの量子化パラメーターに応じて変換係数の量子化幅を決定し、この値に応じて画素情報符号化判定信号が生成され、画素情報を符号化して、ビット列の大きさを前記量子化パラメーター演算手段に出力する符号化手段と、該符号化手段からビット列の大きさが入力され、前記量子化パラメーター演算手段から量子化パラメーターが入力されて、モデルパラメータを更新して前記量子化パラメーター演算手段に出力するモデル更新手段と、前記符号化手段からビット列の大きさが入力され、前記目標ビット演算手段から最大許容ビット数が入力されて、マクロブロックのスキップをするか否かを決定してマクロブロックスキップ信号を出力するマクロブロックスキップ制御手段と、該マクロブロックスキップ制御手段からのマクロブロックスキップ信号と前記符号化手段からのビット列とを組合わせるビット列の操作手段とを含み、前記量子化パラメーター演算手段は、前記目標ビット演算手段からの目標符号化ビット数、最大許容ビット数及び最小許容ビット数に応じてしきい値を計算するしきい値演算部と、前記目標ビット演算手段からの目標符号化ビット数、最大許容ビット数（ｍａｘ＿ｂｉｔ）及び最小許容ビット数（ｍｉｎ＿ｂｉｔ）と前記モデル更新手段からのモデルパラメーターとに応じて量子化パラメーター（ＱＰ）を計算する量子化パラメーター演算部と、累積ビット数を格納する格納手段と、前記符号化手段からのその前のマクロブロックのビット列の大きさと前記格納手段の累積ビット数とを足して前記格納手段に出力する加算部と、該加算部からの累積ビット数を前記しきい値演算部からのしきい値と比較してマクロブロックの符号化をするか否かを決定する比較部とを含むことを特徴とする
【００２６】
請求項７に記載の発明は、請求項６に記載の発明において、前記しきい値演算部でしきい値を計算する時、前記目標ビット演算手段からの目標符号化ビット数、最大許容ビット数、及び最小許容ビット数を全部使用するか、または一部のみを使用することを特徴とする。
【００２７】
請求項８に記載の発明は、請求項６に記載の発明において、前記量子化パラメーター演算部で量子化パラメーターを求める時、前記目標ビット演算手段からの目標符号化ビット数、最大許容ビット数、及び最小許容ビット数を全部使用するか、または一部のみを使用することを特徴とする。
【００２８】
請求項９に記載の発明は、請求項６に記載の発明において、一フレームの符号化が全部終了した場合に、次のフレームの累積ビット数を格納できるようにするために、前記格納手段に格納されている累積ビット数を”０”に初期化することを特徴とする。
【００２９】
請求項１０に記載の発明は、請求項６に記載の発明において、前記比較部が、前記加算部からの累積ビット数を前記しきい値演算部からのしきい値と比較して前記累積ビット数が前記しきい値以下である場合には、画素情報を符号化する画素情報符号化判定信号を出力し、前記累積ビット数が前記しきい値より大きい場合には、バッファのオーバーフローを防止するために、画素情報を符号化しない画素情報符号化判定信号を出力することを特徴とする。
【００３０】
請求項１１に記載の発明は、請求項６に記載の発明において、前記符号化手段は、前記量子化パラメーター演算手段からの量子化パラメーターに応じて変換係数を量子化する量子化手段と、意味のないデータと前記量子化手段の量子化された変換係数のいずれか一つを、前記量子化パラメーター演算手段からの画素情報符号化判定信号に応じて選択する選択手段とを有することを特徴とする。
【００３１】
請求項１２に記載の発明は、請求項６に記載の発明において、前記マクロブロックスキップ制御手段が、累積ビット数を格納する格納手段と、前記符号化手段からの現在マクロブロックのビット列の大きさと前記格納手段の累積ビット数とを足して前記格納手段に出力する加算手段と、該加算手段からの累積ビット数を前記目標ビット演算手段からの最大許容ビット数と比較して現在マクロブロックの伝送をするか否かを決定する比較手段とを有することを特徴とする。
【００３２】
請求項１３に記載の発明は、請求項１２に記載の発明において、前記比較手段は、前記加算手段からの累積ビット数が前記目標ビット演算手段からの最大許容ビット数より小さい場合には、現在マクロブロックのビット列をそのまま伝送するようにマクロブロックスキップ信号を出力し、前記加算手段からの累積ビット数が前記目標ビット演算手段からの最大許容ビット数より大きい場合には、現在マクロブロックのビット列を出力しないようにマクロブロックスキップ信号を出力することを特徴とする。
【００３３】
請求項１４に記載の発明は、請求項１２に記載の発明において、一フレームの符号化が全部終了した場合に、次のフレームの累積ビット数を格納できるようにするために、前記格納手段に格納されている累積ビット数を”０”に初期化することを特徴とする。
【００３４】
請求項１５に記載の発明は、請求項６に記載の発明において、前記ビット列操作手段が、前記符号化手段から符号化されたビット列が入力されるか、現在のマクロブロックが符号化されなかったことを知らせるマクロブロックスキップビット列が入力されて、前記マクロブロックスキップ制御手段から現在のマクロブロックが伝送されないようにするマクロブロックスキップ信号が入力された時には、マクロブロックスキップビット列を選択して出力し、現在のマクロブロックが伝送されるようにするマクロブロックスキップ信号が入力された時には、ビット列を選択して出力することを特徴とする。
【００３５】
請求項１６に記載の発明は、実時間画像通信のためのレート制御装置に適用されるレート制御方法において、伝送線路の伝送速度と符号化しようとする画像の秒当たりの入力フレーム数に応じてレート制御に必要な初期値を設定する第１ステップと、現在バッファモジュールの状態と前記伝送線路の伝送速度とを考慮して目標符号化ビット数、最大許容ビット数、及び最小許容ビット数を求める第２ステップと、前記目標符号化ビット数、最大許容ビット数、及び最小許容ビット数を利用してレート制御と符号化とを行う第３ステップと、符号化されたビット列の大きさと前記最小許容ビット数とを比較して意味のないデータであるスタッフィングビット列を発生する第４ステップと、符号化されたビット列と前記スタッフィングビット列とを組合わせて格納し、画像情報を伝送するようにする第５ステップと、現在のバッファの状態に応じて発生したフレームスキップ信号に応じて次の入力フレームの符号化をするか否かを決定する第６ステップとを含み、前記最小許容ビット数（Ｍｉｎ＿ｂｉｔ）はＭｉｎ＿ｂｉｔ＝ｍａｘ｛Ｂｆｄ＋Ｂａ−Ｂｄ、Ｂａ−Ｂｆｅ、０｝として求め、前記最大許容ビット数（Ｍａｘ＿ｂｉｔ）は、Ｍａｘ＿ｂｉｔ＝ｍｉｎ｛Ｂｆｄ、Ｂｅ−Ｂｆｅ｝として求めることを特徴とする実時間画像通信のためのレート制御方法。（ここで、Ｂｆｄは、復号器バッファモジュールに格納されたビット列を意味し、Ｂａは、一フレームが符号化される間にビット列がバッファに伝送されるビット数であり、Ｂｄは、復号器バッファの大きさであり、Ｂｅは、符号器バッファの大きさであり、Ｂｆｅは、符号器バッファモジュールに格納されたビット列を示し、ｍｉｎ｛｝は、構成元素の中最小値を出力する関数であって、ｍａｘ｛｝は、構成元素の中最大値を出力する関数である。）
【００３７】
請求項１７に記載の発明は、請求項１６に記載の発明において、前記第４ステップが、前記最小許容ビット数と前記符号化されたビット列の大きさとを比較して前記ビット列の大きさが前記最小許容ビット数より小さい場合に、これらの差以上のビット数のスタッフィングビット列を発生することを特徴とする。
【００３８】
請求項１８に記載の発明は、請求項１６に記載の発明において、前記第３ステップのレート制御及び符号化過程が、現在符号化されるマクロブロックまでのビット列の符号化ビット数の和が前記最大許容ビット数を越える場合、現在符号化されるマクロブロックのビット列を廃棄してビット列の長さが前記最大許容ビット数を越えないように保障することを特徴とする。
【００３９】
請求項１９に記載の発明は、請求項１８に記載の発明において、前記第３ステップのレート制御及び符号化過程が、現在のマクロブロックのビット列を廃棄する場合に、現在のマクロブロックを符号化しなかったことを示すビット列を追加することを特徴とする。
【００４０】
請求項２０に記載の発明は、請求項１６に記載の発明において、前記第３ステップのレート制御及び符号化過程が、現在符号化されるマクロブロックまでのビット列の符号化ビット数の和が前記最大許容ビット数、または目標符号化ビット数、または最小許容ビット数から計算された所定の許容限界を越える場合に、画素情報を符号化しないことによって、ビット列の長さが前記最大許容ビット数を越えないようにすることを特徴とする。
【００４１】
請求項２１に記載の発明は、請求項１６乃至２０いずれかに記載の発明において、前記第３ステップは、前記目標符号化ビット数と最大許容ビット数及び最小許容ビット数とその前のマクロブロックのビット列の大きさとモデルパラメーターとに応じて量子化パラメーターと該当マクロブロックの符号化をするか否かとを決定する第７ステップと、前記量子化パラメーターに応じて変換係数の量子化幅を決定し、この値に応じて画素情報符号化判定信号が生成され、前記画像情報符号化判定信号に応じて符号化する第８ステップと、前記符号化されたビット列の大きさと前記量子化パラメーターとに応じてモデルパラメーターを更新して生成する第９ステップと、前記符号化されたビット列の大きさと前記最大許容ビット数とを比較してマクロブロックのスキップをするか否かを決定してマクロブロックスキップ信号を発生する第１０ステップと、前記マクロブロックスキップ信号と前記符号化されたビット列とを組合わせる第１１ステップとを含み、前記第７ステップは、前記目標符号化ビット数、最大許容ビット数及び最小許容ビット数に応じてしきい値を求める第１２ステップと、前記目標符号化ビット数（ｔａｒｇｅｔ＿ｂｉｔ）、最大許容ビット数（ｍｉｎ＿ｂｉｔ）及び最小許容ビット数（ｍｉｎ＿ｂｉｔ）と前記モデルパラメーターに応じて量子化パラメーター（ＱＰ）を求める第１３ステップと、前記符号化されたその前のマクロブロックのビット列の大きさと累積ビット数とを足して新しい累積ビット数を求める第１４ステップと、新しく得られた該累積ビット数と前記得られたしきい値とを比較してマクロブロックの符号化をするか否か決定する第１５ステップとを含むことを特徴とする。
【００４３】
請求項２２に記載の発明は、請求項２１に記載の発明において、前記第１５ステップが、前記得られた累積ビット数と前記しきい値とを比較して前記累積ビット数が前記しきい値以下である場合には、画素情報を符号化する画素情報符号化判定信号を出力し、前記累積ビット数が前記しきい値より大きい場合には、バッファのオーバーフローを防止するために、画素情報を符号化しない画素情報符号化判定信号を発生することを特徴とする。
【００４４】
請求項２３に記載の発明は、請求項２１に記載の発明において、前記第１０ステップが、符号化された現在のマクロブロックのビット列の大きさとその前のマクロブロックまでの累積ビット数とを足して新しい累積ビット数を求める第１２ステップと、前記得られた累積ビット数を前記最大許容ビット数と比較して、現在のマクロブロックの伝送をするか否かを決定する第１３ステップとを有することを特徴とする。
【００４５】
請求項２４に記載の発明は、請求項２３に記載の発明において、前記第１３ステップが、前記得られた累積ビット数が前記最大許容ビット数より小さい場合には、現在のマクロブロックのビット列をそのまま伝送するように、マクロブロックスキップ信号を出力し、前記得られた累積ビット数が前記最大許容ビット数より大きい場合には、現在のマクロブロックのビット列を出力しないように、マクロブロックスキップ信号を出力することを特徴とする。
【００４６】
請求項２５に記載の発明は、請求項２１に記載の発明において、前記第１１ステップが、前記符号化されたビット列と現在のマクロブロックが符号化されなかったことを知らせるマクロブロックスキップビット列とを組合わせるが、現在のマクロブロックが伝送されないようにするマクロブロックスキップ信号が入力された時には、マクロブロックスキップビット列を選択して出力し、現在のマクロブロックが伝送されるようにするマクロブロックスキップ信号が入力された時には、ビット列を選択して出力することを特徴とする。
【００４７】
請求項２６に記載の発明は、実時間画像通信のためのレート制御のために、プロセッサを備えたレート制御装置に、伝送線路の伝送速度と符号化しようとする画像の秒当たりの入力フレーム数とに応じてレート制御に必要な初期値を設定する第１機能と、現在のバッファモジュールの状態と前記伝送線路の伝送速度とを考慮して目標符号化ビット数、最大許容ビット数、及び最小許容ビット数を求める第２機能と、前記目標符号化ビット数、最大許容ビット数、及び最小許容ビット数を利用してレート制御と符号化とを行う第３機能と、符号化されたビット列の大きさと前記最小許容ビット数とを比較して意味のないデータであるスタッフィングビット列を発生する第４機能と、符号化されたビット列と前記スタッフィングビット列とを組合わせて格納し、画像情報を伝送する第５機能と、現在のバッファの状態によって発生したフレームスキップ信号に応じて次の入力フレームの符号化をするか否かを決定する第６機能とを含み、前記第３機能は、前記目標符号化ビット数と最大許容ビット数、及び最小許容ビット数とその前のマクロブロックのビット列の大きさとモデルパラメーターに応じて量子化パラメーターと該当マクロブロックの符号化をするか否かを決定する第７機能と、前記量子化パラメーターに応じて変換係数の量子化幅を決定し、符号化するか否かを示す画像情報符号化判定信号に応じて符号化する第８機能と、前記符号化されたビット列の大きさと前記量子化パラメーターとに応じてモデルパラメーターを更新してモデルパラメーターを生成する第９機能と、前記符号化されたビット列の大きさと前記最大許容ビット数とを比較してマクロブロックのスキップをするか否かを決定してマクロブロックスキップ信号を発生する第１０機能と、前記マクロブロックスキップ信号と前記符号化されたビット列とを組合わせる第１１機能とを実現させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体であることを特徴とする。
【００４９】
請求項２７に記載の発明は、請求項２６に記載の発明において、前記第７機能は、前記目標符号化ビット数、最大許容ビット数、及び最小許容ビット数に応じてしきい値を求める第１２機能と、前記目標符号化ビット数、最大許容ビット数、及び最小許容ビット数と前記モデルパラメーターとに応じて量子化パラメーターを求める第１３機能と、前記符号化されたその前のマクロブロックのビット列の大きさと累積ビット数とを足して新しい累積ビット数を求める第１４機能と、前記新しく得られた累積ビット数を前記得られたしきい値と比較してマクロブロックの符号化をするか否かを決定する第１５機能とを実現させるための請求項２６に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体であることを特徴とする。
【００５０】
このように、本発明では、従来の目標ビット演算モジュールで計算されるフレームの目標ビット数と共に符号器バッファと復号器バッファの全てでオーバーフローやアンダーフローが発生しないようにするための最大許容ビット数と最小許容ビット数とを求めた後、これを利用して符号化するか否かを決定してビットレートを制御するようにする。
【００５１】
入力画像信号を符号化するにおいて、符号化ビット数が前記最大許容ビット数を越える場合に、バッファのオーバーフローが発生することとなって、画像情報を失うこととなる。したがって、バッファのオーバーフローを防止するために、入力マクロブロックの一部または全ての画像情報を符号化しない方法を用いる。
【００５２】
これに対する一例として、符号化ビット数が前記最大許容ビット数を越える時点からその後の全てのマクロブロックを符号化しないようにして、符号化されるビット数が前記上限線を越えないようにする方法がある。すなわち、現在符号化されるマクロブロックまでのビット列の符号化ビット数の和が最大許容ビット数を越える場合に、現在符号化されるマクロブロックのビット列を廃棄してビット列の長さが最大許容ビット数を越えないように保障する。そして、上記のように、現在マクロブロックのビット列を廃棄する場合に、現在のマクロブロックに対するビット列を廃棄し、現在のマクロブロックを符号化しなかったことを示すビット列を追加して復号器に伝達する。
【００５３】
一方、フレームの符号化ビット数が最小許容ビット数未満である場合に、最小許容ビット数とフレームビット数との差以上にビット列を拡張して復号器に伝送する方法を使用する。
【００５４】
これに対する一例として、入力フレームの全てのマクロブロックに対する符号化が終了した時点に、符号化ビット数が前記最小許容ビット数より少ない場合に、その差ほど意味のないデータ（したがって、復号器で無視する。すなわち、ビット列を読み出して廃棄する。）で満たしてバッファのアンダーフローを防止する。
【００５５】
一方、現在符号化されるマクロブロックまでのビット列の符号化ビット数の和が最大許容ビット数、または目標符号化ビット数、または最小許容ビット数から計算された許容限界を越える場合に、画素情報を符号化しないことによって、ビット列の長さが最大許容ビット数を越えないようにする方法を使用する。
【００５６】
【発明の実施の形態】
以下、本発明が属する技術分野で通常の知識を有するものが、本発明を容易に実施できるようにするため、本発明の最も好ましい実施の形態を添付した図面を参照しながら説明する。
【００５７】
図３は、本発明にかかる実時間画像通信のためのレート制御装置の一実施の形態を示した構成図であって、フレーム単位のレート制御演算モジュールを示す。
【００５８】
本発明にかかる実時間画像通信のためのレート制御装置は、伝送線路の伝送速度と符号化しようとする画像の秒当たりの入力フレーム数が入力されてレート制御に必要な初期値を設定する初期化モジュール２００と、現在のバッファの状態と伝送線路の伝送速度を考慮して目標符号化ビット数、最大許容ビット数、及び最小許容ビット数を求めて出力する目標ビット演算モジュール３００と、目標ビット演算モジュール３００から入力される目標符号化ビット数、最大許容ビット数、及び最小許容ビット数を利用してマクロブロック単位のレート制御と符号化とを行うマクロブロック単位レート制御・符号化モジュール４００と、マクロブロック単位レート制御・符号化モジュール４００から入力されるビット列の大きさと目標ビット演算モジュール３００から入力される目標符号化ビット数とを比較してスタッフィングビット列を出力するスタッフィング制御モジュール８００と、マクロブロック単位のレート制御・符号化モジュール４００から入力されるビット列とスタッフィング制御モジュール８００から入力されるスタッフィングビットとを組合わせて格納し、目標ビット演算モジュール３００にバッファの占有状態信号を出力し、復号器に画像情報を伝送するバッファモジュール５００と、バッファモジュール５００からバッファの占有状態信号が入力されて、バッファの状態が一定の限度を越える場合に、フレームスキップ信号を出力するフレームスキップモジュール６００と、全体の符号化過程を制御し、フレームスキップモジュール６００からフレームスキップ信号が入力されて、次の入力フレームの符号化をするか否かを決定する制御モジュール７００とを有する。
【００５９】
以下、本発明にかかるレート制御装置の構成及び動作を図３を参照しながらより詳細に説明する。
【００６０】
目標ビット演算モジュール３００は、符号器と復号器バッファのアンダーフローやオーバーフローが発生しないように、目標符号化ビット数を計算して、マクロブロック単位レート制御・符号化モジュール４００に出力する。
【００６１】
これと同時に、符号器と復号器バッファのアンダーフローやオーバーフローが発生しないようにするための最大許容ビット数と最小許容ビット数とを計算して、マクロブロック単位レート制御・符号化モジュール４００に出力することによって、その後のモジュールは、これを参照して発生ビット数がこれらの最小許容ビット数と最大許容ビット数との間にあるようにする。この場合、最小許容ビット数（Ｍｉｎ＿ｂｉｔ）は、次の数式１と同様であって、最大許容ビット数（Ｍａｘ＿ｂｉｔ）は、次の数式と同様である。
【００６２】
数式１：Ｍｉｎ＿ｂｉｔ＝ｍａｘ｛Ｂｆｄ＋Ｂａ−Ｂｄ、Ｂａ−Ｂｆｅ、０｝
数式２：Ｍａｘ＿ｂｉｔ＝ｍｉｎ｛Ｂｆｄ、Ｂｅ−Ｂｆｅ｝
ここで、Ｂｆｄは、復号器バッファの格納された状態を意味し、これは符号器で直接測定が不可能であるので、符号器で計算された値を使用する。Ｂａは、一フレームが符号化される間にビット列がバッファから伝送されるビット数である。Ｂｄは、復号器バッファの大きさであって、Ｂｅは、符号器バッファの大きさである。Ｂｆｅは、符号器バッファの格納された状態を示す。また、ｍｉｎ｛｝は構成元素の中で最小値を出力する関数であって、ｍａｘ｛｝は、構成元素の中で最大値を出力する関数である。
【００６３】
マクロブロック単位レート制御・符号化モジュール４００は、目標ビット演算モジュール３００から出力される目標符号化ビット数、最大許容ビット数、そして最小許容ビット数が入力されて、入力画像を符号化してビット列をバッファモジュール５００に出力し、ビット列の大きさをスタッフィング制御モジュール８００に出力する。これについては、後に述べる図４を参照しながら詳細に説明する。
【００６４】
スタッフィング制御モジュール８００は、目標ビット演算モジュール３００から最小許容ビット数が入力され、マクロブロック単位レート制御・符号化モジュール４００からビット列の大きさが入力されて、ビット列の大きさが最小許容ビット数より小さい場合に、これらの差以上のビット数のスタッフィングビット列（意味のないデータ）をバッファモジュール５００に出力し、バッファモジュール５００でこれらを組合わせて伝送線路を介して画像情報を復号器に伝送する。
【００６５】
前述した目標ビット演算の具体的な方法は、本発明を制限しない。しかし、本発明で最も重要な概念は、目標符号化ビット数のみを利用してレート制御を行う従来の技術に比べて、最大許容ビット数と最小許容ビット数とを予め決定し、これを利用してレート制御を行うという点にある。
【００６６】
図４は、図３のマクロブロック単位レート制御・符号化モジュールの一実施の形態の詳細を示した構成図であって、マクロブロック単位のレート制御演算及び符号化過程の制御を行う過程を示している。
【００６７】
本発明にかかるマクロブロック単位レート制御・符号化モジュール４００は、目標ビット演算モジュール３００から目標符号化ビット数と最大許容ビット数、及び最小許容ビット数が入力され、符号化モジュール４２０からその前のマクロブロックのビット列の大きさが入力され、モデル更新モジュール４３０からモデルパラメーターが入力されて、量子化パラメーターと、該当マクロブロックの符号化をするか否か（ｔｅｘｔｕｒｅ＿ｃｏｄｅｄ）とを決定する量子化パラメーター演算モジュール４１０と、量子化パラメーター演算モジュール４１０から入力される量子化パラメーターに応じて変換係数の量子化幅を決定し、画素情報符号化判定信号に応じて画素情報を符号化する符号化モジュール４２０と、符号化モジュール４２０からビット列の大きさが入力され、量子化パラメーター演算モジュール４１０から量子化パラメーターが入力されて、モデルを更新してモデルパラメーターを量子化パラメーター演算モジュール４１０に出力するモデル更新モジュール４３０と、符号化モジュール４２０からビット列の大きさが入力され、目標ビット演算モジュール３００から最大許容ビット数が入力されて、マクロブロックのスキップをするか否かを決定してマクロブロックスキップ信号を出力するマクロブロックスキップ制御モジュール４４０と、マクロブロックスキップ制御モジュール４４０から入力されるマクロブロックスキップ信号と符号化モジュール４２０から入力されるビット列とを組合わせるビット列操作モジュール４５０とを有する。
【００６８】
以下、このようなマクロブロック単位レート制御・符号化モジュール４００の構成及び動作を図４を参照しながら詳細に説明する。
量子化パラメーター演算モジュール４１０は、目標ビット演算モジュール３００から目標符号化ビット数と、最大許容ビット数と、最小許容ビット数とが入力され、符号化モジュール４２０からその前のマクロブロックの符号化ビット数が入力され、モデル更新モジュール４３０からモデルパラメーターが入力されて、入力マクロブロックを量子化するための量子化パラメーターとマクロブロックの画素情報の符号化をするか否かを示した画像情報符号化判定信号とを符号化モジュール４２０に出力する。この場合、現在までの累積ビット数が最大許容ビット数を越える場合に、画素情報を符号化しない画素情報符号化判定信号を符号化モジュール４２０に出力する。
【００６９】
量子化パラメーター演算モジュール４１０からの出力は、符号化モジュール４２０に入力されて変換係数の量子化に利用される。すなわち、量子化パラメーターにより変換係数の量子化の幅が決定され、画素情報符号化判定信号に応じて画素情報を符号化する。この場合、画素情報が符号化されない場合に、画素情報を除いた残りの画像情報（動き情報（ｍｏｔｉｏｎ  ｉｎｆｏｒｍａｔｉｏｎ）、形状情報（ｓｈａｐｅ  ｉｎｆｏｒｍａｔｉｏｎ）等）のみが符号化される。
【００７０】
モデル更新モジュール４３０は、符号化モジュール４２０からビット列の大きさが入力され、量子化パラメーター演算モジュール４１０から量子化パラメーターが入力されて、量子化パラメーターと生成ビット数との間の関係を表現するモデルを更新して、モデルパラメーターを量子化パラメーター演算モジュール４１０に出力する。モデルパラメーターは、次の入力マクロブロックに対する量子化パラメーターを決定することに利用される。
【００７１】
マクロブロックスキップ制御モジュール４４０は、符号化モジュール４２０から入力マクロブロックのビット列の大きさが入力され、目標ビット演算モジュール３００から最大許容ビット数が入力されて、現在のマクロブロックまでの累積ビットレートの大きさが最大許容ビット数を越える場合に、現在のマクロブロックに対するビット列を廃棄させるように、ビット列操作モジュール４５０にマクロブロックスキップ信号を出力する。
【００７２】
ビット列操作モジュール４５０は、マクロブロックスキップ制御モジュール４４０から現在のマクロブロックのビット列を廃棄する旨のマクロブロックスキップ信号が入力される場合に、入力されたビット列を廃棄し、現在の入力マクロブロックが符号化されなかったことを示す情報のみをビット列に加えてバッファモジュール５００に出力する。
【００７３】
図５は、図４の量子化パラメーター演算モジュールの一実施の形態の詳細を示した構成図である。
【００７４】
本発明にかかる量子化パラメーター演算モジュール４１０は、目標ビット演算モジュール３００から入力される目標符号化ビット数、最大許容ビット数、及び最小許容ビット数に応じてしきい値を計算するしきい値演算部４１１と、目標ビット演算モジュール３００から入力される目標符号化ビット数（ｔａｒｇｅｔ＿ｂｉｔ）、最大許容ビット数（ｍａｘ＿ｂｉｔ）、及び最小許容ビット数（ｍｉｎ＿ｂｉｔ）とモデル更新モジュール４３０から入力されるモデルパラメーターとに応じて量子化パラメーター（ＱＰ）を計算する量子化パラメーター演算部４１２と、累積ビット数を格納するラッチ部４１４と、符号化モジュール４２０から入力されるその前のマクロブロックのビット列の大きさとラッチ部４１４の累積ビット数とを足してラッチ部４１４と比較部４１５とに出力する加算部４１３と、加算部４１３からの累積ビット数をしきい値演算部４１１からのしきい値と比較してマクロブロックの符号化をするか否かを決定する比較部４１５とを有する。
【００７５】
以下、このような量子化パラメーター演算モジュール４１０の構成及び動作を図５を参照しながら詳細に説明する。
【００７６】
図５に示すように、しきい値演算部４１１は、目標ビット演算モジュール３００から目標符号化ビット数（ｔａｒｇｅｔ＿ｂｉｔ）、最大許容ビット数（ｍａｘ＿ｂｉｔ）及び最小許容ビット数（ｍｉｎ＿ｂｉｔ）が入力されてしきい値を計算する。
【００７７】
そして、量子化パラメーター演算部４１２は、目標ビット演算モジュール３００から目標符号化ビット数（ｔａｒｇｅｔ＿ｂｉｔ）、最大許容ビット数（ｍａｘ＿ｂｉｔ）、及び最小許容ビット数（ｍｉｎ＿ｂｉｔ）が入力され、モデル更新モジュール４３０からモデルパラメーターが入力されて、量子化パラメーター（ＱＰ）を計算して符号化モジュール４２０に出力する。
【００７８】
ここで、しきい値と量子化パラメーターとを求める時、三つのビット数を全部使用するか、または一部のみを使用して計算することができる。
そして、ラッチ部４１４は、累積ビット数を格納しておいて、加算部４１３に出力する。
【００７９】
そして、加算部４１３は、符号化モジュール４２０から入力されるその前のマクロブロックのビット列の大きさとラッチ部４１４に格納されている累積ビット数とを足して比較部４１５に出力する。また、加算部４１３は、次のマクロブロックを処理するために、累積ビット数をラッチ部４１４に再入力して格納する。この場合、ラッチ部４１４に格納されている累積ビット数を一フレームの符号化が全部終了した場合に、”０”に初期化して次のフレームの累積ビット数を格納し得るようにする。
【００８０】
そして、比較部４１５は、加算部４１３から入力される累積ビット数をしきい値演算部４１１から入力されるしきい値と比較して累積ビット数がしきい値以下である場合には、画素情報を符号化するように、画素情報符号化判定信号を出力し、累積ビット数がしきい値より大きい場合には、バッファのオーバーフローを防止するために、画素情報を符号化しないように、画素情報符号化判定信号を出力する。
【００８１】
図６は、図４の符号化モジュールの中の量子器の一実施の形態の詳細を示した構成図である。
本発明にかかる量子器は、量子化パラメーター演算モジュール４１０から入力される量子化パラメーター（ＱＰ）に応じて変換係数を量子化する量子化部４２１と、”０”にセッティングされた意味のないデータと、量子化部４２１において量子化された変換係数とのいずれか一つを、量子化パラメーター演算モジュール４１０から入力される画素情報符号化判定信号に応じて選択して出力するスイッチング部４２２とを有する。
【００８２】
以下、このような量子器の構成及び動作を図６を参照しながら詳細に説明する。
まず、画素情報を符号化するようにする画素情報符号化判定信号が入力された場合に、量子化部４２１に入力される変換係数（ｃｏｅｆｆ）は、量子化パラメーター演算モジュール４１０から入力される量子化パラメーター（ＱＰ）に応じて量子化されてスイッチング部４２２に伝達され、スイッチング部４２２は、量子化された変換係数が出力されるようにスイッチングされる。
【００８３】
一方、画素情報を符号化しないようにする画素情報符号化判定信号が入力された場合には、”０”にセッティング（ｓｅｔｔｉｎｇ）されたデータがスイッチング部４２２に伝達され、スイッチング部４２２は、”０”にセッティングされたデータが出力されるようにスイッチングされる。
【００８４】
図７は、図４のマクロブロックスキップ制御モジュールの一実施の形態の詳細を示した構成図である。
本発明にかかるマクロブロックスキップ制御モジュール４４０は、累積ビット数を格納するためのラッチ部４４２と、符号化モジュール４２０から入力される現在のマクロブロックのビット列の大きさとラッチ部４４２の累積ビット数とを足してラッチ部４４２と比較部４４３とに出力する加算部４４１と、加算部４４１から入力される累積ビット数と目標ビット演算モジュール３００から入力される最大許容ビット数と比較して現在のマクロブロックの伝送をするか否かを決定する比較部４４３とを有している。
【００８５】
以下、このようなマクロブロックスキップ制御モジュール４４０の構成及び動作を図７を参照しながら詳細に説明する。
図７に示すように、加算部４４１は、現在のマクロブロックのビット数とラッチ部４４２に格納されている累積ビット数とが入力されて、現在マクロブロックまでの累積ビット数を出力する。加算部４４１で計算された累積ビット数は、目標ビット演算モジュール３００から入力される最大許容ビット数（ｍａｘ＿ｂｉｔ）と共に比較部４４３に入力されて、現在のマクロブロックのビット列に対する伝送をするか否かを示す信号を出力する。すなわち、累積ビット数が最大許容ビット数より小さい場合には、現在のマクロブロックのビット列をそのまま伝送するように、マクロブロックスキップ信号を出力し、累積ビット数が最大許容ビット数より大きい場合には、現在のマクロブロックのビット列を出力しないように、マクロブロックスキップ信号を出力する。
【００８６】
この場合、加算部４４１で計算された累積ビット数は、次のマクロブロックまでの累積ビット数を計算するために、再びラッチ部４４２に格納される。そして、ラッチ部４４２内に格納されている値は、フレームに対する符号化作業が全部終了する場合に、”０”に初期化されて次のフレームの累積ビット数を計算することに利用される。
【００８７】
図８は、図４のビット列操作モジュールの一実施の形態の詳細を示した構成図であって、マクロブロックスキップ信号に応じて現在のマクロブロックのビット列を操作するビット列操作機能ブロックを示す。
【００８８】
図８に示すように、ビット列操作モジュール４５０は、符号化モジュール４２０から符号化されたビット列が入力されるか、現在のマクロブロックが符号化されなかったことを知らせるマクロブロックスキップビット列が入力されて、マクロブロックスキップ制御モジュール４４０から現在のマクロブロックが伝送されないようにするマクロブロックスキップ信号が入力された時には、マクロブロックスキップビット列を選択して出力し、現在のマクロブロックが伝送されるようにするマクロブロックスキップ信号が入力された時には、ビット列を選択して出力するスイッチング部４５１を有する。
【００８９】
一方、復号器では、ビット列を決められた順に復号化を行う途中にマクロブロックスキップ信号が入力されれば、マクロブロックがスキップされたか否かを判断して、スキップされた場合には、決められた方法によりマクロブロックを再現すれば良い。例えば、マクロブロックがスキップされた場合に、その前の再現画像の同じ位置のマクロブロック信号を利用して再現することもできる。
【００９０】
図９は、本発明にかかる実時間画像通信のためのレート制御方法に対する一実施の形態を示したフローチャートである。
まず、ステップＳ１１００で、初期化モジュール２００は、伝送線路の伝送速度と符号化しようとする画像の秒当たりの入力フレーム数とが入力されて、レート制御に必要な初期値を設定する。そして、ステップＳ１２００で、目標ビット演算モジュール３００が現在のバッファの状態と伝送線路の伝送速度とを考慮して目標符号化ビット数、最大許容ビット数、及び最小許容ビット数を求めて出力する。
【００９１】
そして、ステップＳ１３００で、マクロブロック単位レート制御・符号化モジュール４００が、目標ビット演算モジュール３００から入力される目標符号化ビット数、最大許容ビット数、及び最小許容ビット数を利用してマクロブロック単位のレート制御と符号化とを行う。そして、ステップＳ１４００で、スタッフィング制御モジュール８００がマクロブロック単位レート制御・符号化モジュール４００から入力されるビット列の大きさと目標ビット演算モジュール３００から入力される目標符号化ビット数とを比較して、ビット列の大きさが最小許容ビット数より小さい場合に、スタッフィングビット列を出力する。そして、ステップＳ１５００で、バッファモジュール５００がマクロブロック単位レート制御・符号化モジュール４００から入力されるビット列とスタッフィング制御モジュール８００から入力されるスタッフィングビットとを組合わせて格納し、目標ビット演算モジュール３００にバッファの占有状態信号を出力して復号器に画像情報を伝送するようにする。
【００９２】
そして、ステップＳ１６００で、フレームスキップモジュール６００は、バッファモジュール５００からバッファの占有状態信号が入力されて、バッファの状態が一定の限度を越える場合に、フレームスキップ信号を出力する。そして、ステップＳ１７００で、制御モジュール７００が全体符号化過程を制御し、フレームスキップモジュール６００からフレームスキップ信号が入力されて、次の入力フレームの符号化をするか否かを決定する。
【００９３】
図１０は、図９のマクロブロック単位のレート制御と符号化を行うステップＳ１３００に対する一実施の形態の詳細を示したフローチャートである。
【００９４】
まず、ステップＳ１３１０で、量子化パラメーター演算モジュール４１０は、目標ビット演算モジュール３００から目標符号化ビット数と最大許容ビット数及び最小許容ビット数とが入力され、符号化モジュール４２０からその前のマクロブロックのビット列の大きさが入力され、モデル更新モジュール４３０からモデルパラメーターが入力されて量子化パラメーターと該当マクロブロックの符号化をするか否かとを決定する。
【００９５】
そして、ステップＳ１３２０で、符号化モジュール４２０が量子化パラメーター演算モジュール４１０から入力される量子化パラメーターに応じて変換係数の量子化幅を決定し、画素情報符号化判定信号に応じて画素情報を符号化する。
【００９６】
そして、ステップＳ１３３０で、モデル更新モジュール４３０は符号化モジュール４２０からビット列の大きさが入力され、量子化パラメーター演算モジュール４１０から量子化パラメーターが入力されて、モデルを更新してモデルパラメーターを量子化パラメーター演算モジュール４１０に出力する。
【００９７】
そして、ステップＳ１３４０で、マクロブロックスキップ制御モジュール４４０は、符号化モジュール４２０からビット列の大きさが入力され、目標ビット演算モジュール３００から最大許容ビット数が入力されて、二つのビット列を比較してマクロブロックのスキップをするか否かを決定してマクロブロックスキップ信号を出力する。
【００９８】
そして、ステップＳ１３５０で、ビット列操作モジュール４５０がマクロブロックスキップ制御モジュール４４０から入力されるマクロブロックスキップ信号と符号化モジュール４２０から入力されるビット列とを組合わせる。
【００９９】
図１１は、図１０の量子化パラメーター及び符号化をするか否かを決定するステップＳ１３１０に対する一実施の形態の詳細を示したフローチャートである。
【０１００】
まず、しきい値演算部４１１が目標ビット演算モジュール３００から入力される目標符号化ビット数、最大許容ビット数、及び最小許容ビット数に応じてしきい値を計算する。そして、量子化パラメーター演算部４１２が目標ビット演算モジュール３００から入力された目標符号化ビット数（ｔａｒｇｅｔ＿ｂｉｔ）、最大許容ビット数（ｍａｘ＿ｂｉｔ）、及び最小許容ビット数（ｍｉｎ＿ｂｉｔ）とモデル更新モジュール４３０から入力されるモデルパラメーターとに応じて量子化パラメーター（ＱＰ）を計算する。
【０１０１】
そして、加算部４１３が符号化モジュール４２０から入力されるその前のマクロブロックのビット列の大きさとラッチ部４１４の累積ビット数とを足して新しい累積ビット数を求めてラッチ部４１４と比較部４１５とに出力する。
そして、比較部４１５が加算部４１３から入力される累積ビット数を、しきい値演算部４１１から入力されるしきい値と比較して、マクロブロックの符号化をするか否かを決定する。
【０１０２】
本発明について、上記好ましい実施の形態を用いて具体的に説明したが、上記実施の形態は説明のためのものであって、本発明は上記実施の形態に制限されるものではない。また、本発明の技術分野における通常の専門家であるならば、本発明の技術思想の範囲内において、上述の実施の形態に対して種々の変更を行うことが可能である。
【０１０３】
【発明の効果】
以上説明したように本発明によれば、目標ビット数を設定し、最大許容ビット数と最小許容ビット数とを求めて符号化をするか否かを決定して、ビットレートを制御することによって、符号器と復号器のバッファオーバーフローやアンダーフローが発生することを防止できる効果がある。このように本発明を画像符号化装置に適用する場合に、符号器と復号器バッファのアンダーフローやオーバーフローが発生しなくなって再現画像の画質を向上させることのできる効果がある。また、本発明は、特に低伝送レートの特性を有する次世代移動通信網（ＩＭＴ−２０００）または公衆通信網（ＰＳＴＮ：Ｐｕｂｌｉｃ  Ｓｗｉｔｃｈｅｄ  Ｔｅｌｅｐｈｏｎｅ  Ｎｅｔｗｏｒｋ）上での画像通信サービス装置等に有用である。
【図面の簡単な説明】
【図１】従来のレート制御装置の構成を例示した図である。
【図２】図１のマクロブロック単位レート制御・符号化モジュールの詳細構成を例示した図である。
【図３】本発明にかかる実時間画像通信のためのレート制御装置の一実施の形態を示した構成図である。
【図４】図３のマクロブロック単位レート制御・符号化モジュールの一実施の形態の詳細を示した構成図である。
【図５】図４の量子化パラメーター演算モジュールの一実施の形態の詳細を示した構成図である。
【図６】図４の符号化モジュールの中の量子器の一実施の形態の詳細を示した構成図である。
【図７】図４のマクロブロックスキップ制御モジュールの一実施の形態の詳細を示した構成図である。
【図８】図４のビット列操作モジュールの一実施の形態の詳細を示した構成図である。
【図９】本発明にかかる実時間画像通信のためのレート制御方法に対する一実施の形態を示したフローチャートである。
【図１０】図９のマクロブロック単位のレート制御と符号化を行う過程に対する一実施の形態の詳細を示したフローチャートである。
【図１１】量子化パラメーター及び符号化をするか否かを決定する過程に対する一実施の形態の詳細を示したフローチャートである。
【符号の説明】
１１０，２００  初期化モジュール
１２０，３００  目標ビット演算モジュール
１３０，４００  マクロブロック単位レート制御・符号化モジュール
１３１，４１０  量子化パラメーター演算モジュール
１３２，４２０  符号化モジュール
１３３，４３０  モデル更新モジュール
１４０，５００  バッファモジュール
１５０，６００  フレームスキップモジュール
１６０、７００  制御モジュール
４１１  しきい値演算部
４１５，４４３  比較部
４１２  量子化パラメーター演算部
４１３，４４１  加算部
４１４，４４２  ラッチ部
４２１  量子化部
４２２，４５１  スイッチング部
４４０  マクロブロックスキップ制御モジュール
４５０  ビット列操作モジュール
８００  スタッフィング制御モジュール
【図１】
0004205315.tif 000002
【図２】
0004205315.tif 000003
【図３】
0004205315.tif 000004
【図４】
0004205315.tif 000005
【図５】
0004205315.tif 000006
【図６】
0004205315.tif 000007
【図７】
0004205315.tif 000008
【図８】
0004205315.tif 000009
【図９】
0004205315.tif 000010
【図１０】
0004205315.tif 000011
【図１１】
0004205315.tif 000012