(57)【要約】【課題】目標ビット量を正確に予測し、優れた画質を提供しながらも単純なメカニズムで実時間環境にも適用可能なビット率制御方法を採用したエンコーディング装置と方法及びそのエンコーディング装置を含むマルチメディア装置を開示する。【解決手段】本発明のエンコーディング装置は、ピクチャグループ（Ｇｒｏｕｐ  Ｏｆ  Ｐｉｃｔｕｒｅ：ＧＯＰ）単位でビット量（ｔａｒｇｅｔGOP）を割り当てるＧＯＰビット割り当て部；前記ＧＯＰ内のマクロブロックに対してモードによってマクロブロック単位でビット量を割り当てるマクロブロックビット割り当て部；現在のバッファー状態をチェックし、バッファーが所定の比率以下で占有された場合、前記マクロブロックを変換して獲得したＡＣ係数を用いて量子化パラメーター（ＱＰ：Ｑｕａｎｔｉｚａｔｉｏｎ  Ｐａｒａｍｅｔｅｒ）値を決定して量子化を行う量子化装置；及び可変長符号化（Ｖａｒｉａｂｌｅ  Ｌｅｎｇｔｈ  Ｃｏｄｉｎｇ：ＶＬＣ）を行うＶＬＣ部；を含む。【選択図】図４
2012521141.tif 000002
【特許請求の範囲】
【請求項１】
ピクチャグループ（Ｇｒｏｕｐ  Ｏｆ  Ｐｉｃｔｕｒｅ：ＧＯＰ）単位でビット量（ｔａｒｇｅｔGOP）を割り当てるＧＯＰビット割り当て部；
前記ＧＯＰ内のマクロブロックに対してモードによってマクロブロック単位でビット量を割り当てるマクロブロックビット割り当て部；
現在のバッファー状態をチェックし、バッファーが所定の比率以下で占有された場合、前記マクロブロックを変換して獲得したＡＣ係数を用いて量子化パラメーター（ＱＰ：Ｑｕａｎｔｉｚａｔｉｏｎ  Ｐａｒａｍｅｔｅｒ）値を決定して量子化を行う量子化装置；及び
可変長符号化（Ｖａｒｉａｂｌｅ  Ｌｅｎｇｔｈ  Ｃｏｄｉｎｇ：ＶＬＣ）を行うＶＬＣ部；を含むエンコーディング装置。
【請求項２】
前記ＧＯＰビット割り当て部は、秒当たりの目標ビット率（ｔａｒｇｅｔsec）を秒当たりのフレーム数（ｆｐｓ：ｆｒａｍｅ  ｐｅｒ  ｓｅｃｏｎｄ）で割り、その結果値に主フレーム間隔（Ｉinterval）を掛けることによって前記ＧＯＰ単位ビット量（ｔａｒｇｅｔGOP）を計算することを特徴とする、請求項１に記載のエンコーディング装置。
【請求項３】
前記マクロブロックビット割り当て部は、それぞれの前記ＧＯＰに対するエンコーディングを開始するとき、マクロブロック単位でビット量を割り当て、
前記マクロブロックビット割り当て部は、前記マクロブロックに対する二つのモードであるイントラマクロブロック及びインターマクロブロックのそれぞれに対してビット量を割り当てることを特徴とする、請求項１に記載のエンコーディング装置。
【請求項４】
前記マクロブロックビット割り当て部は、前記ＧＯＰ単位ビット量（ｔａｒｇｅｔGOP）及び前記インターマクロブロックに対する前記イントラマクロブロックのビット量の比（ＲａｔｉｏItop）を用いて前記インターマクロブロックのビット量（ｔａｒｇｅｔinter_MB）を計算することを特徴とする、請求項３に記載のエンコーディング装置。
【請求項５】
前記インターマクロブロックのビット量（ｔａｒｇｅｔinter_MB）は、前記ＧＯＰ単位ビット量（ｔａｒｇｅｔGOP）を主フレーム間隔（Ｉinterval）と前記ビット量の比（ＲａｔｉｏItop）との加算値で割った結果値を再び一つのフレーム内に存在するマクロブロックの数（ＭＢ＿Ｎｕｍ）で割ることによって計算されることを特徴とする、請求項４に記載のエンコーディング装置。
【請求項６】
前記ビット量の比（ＲａｔｉｏItop）は、まず、実験を通して獲得した初期値に設定された後、前記ＧＯＰのそれぞれに対するエンコーディングを開始する度に、以前に使用された平均ビット量の比と現在のビット量の比によってアップデートされることを特徴とする、請求項４に記載のエンコーディング装置。
【請求項７】
前記量子化装置は、
前記マクロブロックに対してイントラ及びインター予測と変換を行う予測及び変換部；
前記変換を通して獲得した前記ＡＣ係数を分析して前記ＱＰ値を決定するＱＰ決定部；
現在のＱＰ値を周辺のＱＰ値と比較し、差値が所定しきい値以内になるように前記現在のＱＰ値を調節するＱＰ調節部；及び
前記ＱＰ値を用いて量子化を行う量子化部；を含むことを特徴とする、請求項１に記載のエンコーディング装置。
【請求項８】
前記バッファーが所定の比率より高く占有された場合、前記量子化部による量子化を行わずに前記ＶＬＣ部によるＶＬＣを行うことを特徴とする、請求項１に記載のエンコーディング装置。
【請求項９】
エンコーディングが行われる信号が入力される入力部；
前記入力部を通して入力された信号をＧＯＰビット割り当て、マクロブロックビット割り当て及びバッファーの状態によって量子化してエンコーディングを行うエンコーディング装置；
前記エンコーディング装置によってエンコーディングされたビットストリームを送信する送信部；
前記エンコーディング装置によってエンコーディングされたビットストリームを格納する格納部；及び
前記入力部、エンコーディング装置、送信部及び格納部を制御する制御部；を含むマルチメディア装置。
【請求項１０】
前記エンコーディング装置は、
ピクチャーグループ（ＧＯＰ）単位でビット量（ｔａｒｇｅｔGOP）を割り当てるＧＯＰビット割り当て部；
前記ＧＯＰ内のマクロブロックに対してモードによってマクロブロック単位でビット量を割り当てるマクロブロックビット割り当て部；
現在のバッファー状態をチェックし、バッファーが所定の比率以下で占有された場合、前記マクロブロックを変換して獲得したＡＣ係数を用いて量子化パラメーター（ＱＰ）値を決定して量子化を行う量子化装置；及び
可変長符号化（ＶＬＣ）を行うＶＬＣ部；を含むことを特徴とする、請求項９に記載のマルチメディア装置。
【請求項１１】
前記ＧＯＰビット割り当て部は、秒当たりの目標ビット率（ｔａｒｇｅｔsec）を秒当たりのフレーム数（ｆｐｓ）で割り、その結果値に主フレーム間隔（Ｉinterval）を掛けることによって前記ＧＯＰ単位ビット量（ｔａｒｇｅｔGOP）を計算し、
前記マクロブロックビット割り当て部は、前記ＧＯＰ単位ビット量（ｔａｒｇｅｔGOP）を主フレーム間隔（Ｉinterval）とインターマクロブロックに対するイントラマクロブロックのビット量の比（ＲａｔｉｏItop）との加算値で割った結果値を再び一つのフレーム内に存在するマクロブロックの数（ＭＢ＿Ｎｕｍ）で割ることによって、前記インターマクロブロックのビット量（ｔａｒｇｅｔinter_MB）を計算することを特徴とする、請求項１０に記載のマルチメディア装置。
【請求項１２】
前記量子化装置は、
前記マクロブロックに対してイントラ及びインター予測と変換を行う予測及び変換部；
前記変換を通して獲得した前記ＡＣ係数を分析して前記ＱＰ値を決定するＱＰ決定部；及び
現在のＱＰ値を周辺のＱＰ値と比較し、差値が所定しきい値以内になるように前記現在のＱＰ値を調節するＱＰ調節部；及び
前記ＱＰ値を用いて量子化を行う量子化部；を含むことを特徴とする、請求項１０に記載のマルチメディア装置。
【請求項１３】
ピクチャーグループ（ＧＯＰ）単位でビット量（ｔａｒｇｅｔGOP）を割り当てるＧＯＰビット割り当て段階；
前記ＧＯＰ内のマクロブロックに対してモードによってマクロブロック単位でビット量を割り当てるマクロブロックビット割り当て段階；
現在のバッファー状態をチェックし、バッファーが所定の比率以下で占有された場合、前記マクロブロックを変換して獲得したＡＣ係数を用いて量子化パラメーター（ＱＰ）値を決定して量子化を行う量子化遂行段階；及び
可変長符号化（ＶＬＣ）を行うＶＣＬ段階；を含むエンコーディング方法。
【請求項１４】
前記ＧＯＰビット割り当て段階は、秒当たりの目標ビット率（ｔａｒｇｅｔsec）を秒当たりのフレーム数（ｆｐｓ：ｆｒａｍｅ  ｐｅｒ  ｓｅｃｏｎｄ）で割り、その結果値に主フレーム間隔（Ｉinterval）を掛けることによって前記ＧＯＰ単位ビット量（ｔａｒｇｅｔGOP）を計算することを特徴とする、請求項１３に記載のエンコーディング方法。
【請求項１５】
前記マクロブロックビット割り当て段階で、前記ＧＯＰ単位ビット量（ｔａｒｇｅｔGOP）を主フレーム間隔（Ｉinterval）とインターマクロブロックに対するイントラマクロブロックのビット量の比（ＲａｔｉｏItop）との加算値で割った結果値を再び一つのフレーム内に存在するマクロブロックの数（ＭＢ＿Ｎｕｍ）で割ることによって、前記インターマクロブロックのビット量（ｔａｒｇｅｔinter_MB）を計算することを特徴とする、請求項１３に記載のエンコーディング方法。
【請求項１６】
前記ビット量の比（ＲａｔｉｏItop）は、まず、実験を通して獲得した初期値に設定された後、前記ＧＯＰのそれぞれに対するエンコーディングを開始する度に、以前に使用された平均ビット量の比と現在のビット量の比によってアップデートされることを特徴とする、請求項１５に記載のエンコーディング方法。
【請求項１７】
前記マクロブロックビット割り当て段階は、前記ＧＯＰに対するエンコーディングを開始するとき、前記マクロブロックが前記ＧＯＰ内の最初のマクロブロックであるかどうかを判断する判断段階、及びマクロブロック単位でビット量を割り当てる割り当て段階を含み、
前記判断段階で前記マクロブロックが最初のマクロブロックである場合、前記割り当て段階で前記マクロブロックに対する二つのモードであるイントラマクロブロック及びインターマクロブロックのそれぞれに対してビット量を割り当てることを特徴とする、請求項１３に記載のエンコーディング方法。
【請求項１８】
前記エンコーディング方法は、
前記量子化段階前に前記バッファーの状態をチェックするバッファーチェック段階をさらに含み、
前記判断段階で、前記マクロブロックが最小のマクロブロックでない場合、前記バッファーチェック段階に移行することを特徴とする、請求項１７に記載のエンコーディング方法。
【請求項１９】
前記量子化遂行段階は、
前記マクロブロックに対してイントラ及びインター予測と変換を行う予測及び変換段階；
前記変換を通して獲得した前記ＡＣ係数を分析して前記ＱＰ値を決定するＱＰ決定段階；
現在のＱＰ値を周辺のＱＰ値と比較し、差値が所定しきい値以内になるように前記現在のＱＰ値を調節するＱＰ調節段階；及び
前記ＱＰ値を用いて量子化を行う量子化段階；を含むことを特徴とする、請求項１３に記載のエンコーディング方法。
【請求項２０】
前記ＱＰ決定段階では、前記ＡＣ係数の分布度を有して前記マクロブロックのビット量を予測し、前記ＱＰ値を決定することを特徴とする、請求項１９に記載のエンコーディング方法。
【請求項２１】
前記バッファーが所定の比率よりも高く占有された場合、前記量子化段階を行わずに前記ＶＬＣ段階を行うことを特徴とする、請求項１３に記載のエンコーディング方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デジタルマルチメディア装置に関するもので、特に、マルチメディア装置でビデオエンコーディングを効率的に行えるエンコーディング装置及び方法に関するものである。
【背景技術】
【０００２】
ビデオエンコーダーは、膨大なデータ容量のビデオ信号を格納及び伝送する前に圧縮形態、すなわち、ビットストリームに変換する装置である。このようなビデオエンコーダーは、ビデオ信号を圧縮するために量子化というテクニックを用いるが、量子化は、量子化パラメーター値を用いて任意の範囲の値をより小さい範囲の値に変換する機能をする。
【０００３】
例えば、量子化の遂行時に量子化パラメーター値が大きいと、量子化された各値の範囲が小さいので、圧縮性能は高いが、量子化された各値と元の信号値との差が大きいため画質が良好でない。その一方、量子化パラメーター値が小さいと、量子化された各値が元の信号値にはより近接するが、量子化された各値の範囲が大きいため圧縮性能が良好でない。
【０００４】
一方、ビデオエンコーダーの出力ビットストリームには、使用目的に応じて固定ビット率（ｃｏｎｓｔａｎｔ  ｂｉｔ  ｒａｔｅ：ＣＢＲ）又は可変ビット率（ｖａｒｉａｂｌｅ  ｂｉｔ  ｒａｔｅ：ＶＢＲ）が使用される。固定ビット率方式は、一定時間に対して一定のビット数にエンコーディングする方式であって、制限された帯域幅や格納媒体を使用するときに用いられ、動きが大きいか複雑な映像である場合に画質が相対的に悪くなるという問題がある。一方、可変ビット率方式は、映像の特性とは関係なく一定の画質でエンコーディングする方式であって、帯域幅が十分であるか、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｉｄｅｏ  Ｄｉｓｋ）などの格納媒体を使用するときに用いられる。
【０００５】
固定ビット率方式で一定のビット数にエンコーディングするためにはビット率制御方法を用い、ビット率、すなわち、ビット量は、量子化パラメーター値とフレームスキップを適宜用いて制御する。ここで、フレームスキップとは、必要に応じて特定フレームに対するエンコーディングを省略することを意味する。
【０００６】
ビット量を小さくするためには、大きい量子化パラメーター値とフレームスキップを使用すればよく、ビット量を大きくするためには、小さい量子化パラメーター値を使用すればよい。量子化パラメーター値は、ビット量のみならず、画質にも大きな影響を及ぼすので、適切な値を使用することが重要である。一方、現在の量子化パラメーター値を決定するビット率制御方法が標準化されていないので、エンコーダーごとにビット率制御方法が異なり得る。また、どのビット率制御方法を使用するかによってエンコーダーの性能に大きな影響を及ぼす。
【０００７】
従来のビット率制御方法は、大きく二つの方法に分けることができる。その一つは、バッファーの充満度、すなわち、バッファーの占有率に比例するように量子化パラメーター値を決定する方法であって、他の一つは、入力映像の複雑度を計算し、複雑度に比例してビットを割り当てる方法である。
【０００８】
前者は、現在のバッファー状態によって量子化パラメーター値を調節する方法であって、残っているバッファー量と伝送媒体の帯域幅などを考慮して量子化パラメーター値を調節する。通常、ＭＰＥＧ系列のＴＭ５とＶＣＥＧ系列のＴＭＮ８などでは、この方法を使用している。後者は、映像の複雑度によって符号化単位ごとにビットを割り当て、量子化パラメーター値を調節する方法である。
【０００９】
現在のバッファー状態によって量子化パラメーター値を調節する前者の方法は、単純であるが、映像が全く考慮されていない。したがって、目標ビット量がよく合う場合もあるが、よく合わない場合が頻繁である。また、画質の変化が激しいので、目障りになるという短所がある。
【００１０】
その一方、入力映像の複雑度を用いてビットを割り当てる方法は、所望のビット率を維持しながらも良好な画質を提供するが、映像の複雑度を分析するためには画素単位で平均及び分散などの複雑な計算を行わなければならないので、エンコーディング速度の低下及びメモリ消費の増加などの問題をもたらす。実際に複雑度分析と関連した多数のアルゴリズムが開発されているが、複雑な計算のため実時間アプリケーションには適用されにくく、実際に使用される例もほぼない。
【発明の概要】
【発明が解決しようとする課題】
【００１１】
本発明は、目標ビット量を正確に予測し、優れた画質を提供しながらも単純なメカニズムで実時間環境にも適用可能なビット率制御方法を採用したエンコーディング装置と方法及びそのエンコーディング装置を含むマルチメディア装置を提供する。
【課題を解決するための手段】
【００１２】
本発明の一実施例は、ピクチャーグループ（Ｇｒｏｕｐ  Ｏｆ  Ｐｉｃｔｕｒｅ：ＧＯＰ）単位でビット量（ｔａｒｇｅｔGOP）を割り当てるＧＯＰビット割り当て部；前記ＧＯＰ内のマクロブロックに対してモードによってマクロブロック単位でビット量を割り当てるマクロブロックビット割り当て部；現在のバッファー状態をチェックし、所定の比率以下で占有された場合、前記マクロブロックを変換して獲得したＡＣ係数を用いて量子化パラメーター（ＱＰ：Ｑｕａｎｔｉｚａｔｉｏｎ  Ｐａｒａｍｅｔｅｒ）値を決定して量子化を行う量子化装置；及び可変長符号化（Ｖａｒｉａｂｌｅ  Ｌｅｎｇｔｈ  Ｃｏｄｉｎｇ：ＶＬＣ）を行うＶＬＣ部；を含むエンコーディング装置を提供する。
【００１３】
本発明において、前記ＧＯＰビット割り当て部は、秒当たりの目標ビット率（ｔａｒｇｅｔsec）を秒当たりのフレーム数（ｆｐｓ：ｆｒａｍｅ  ｐｅｒ  ｓｅｃｏｎｄ）で割り、この結果値に主フレーム（ｋｅｙ  ｆｒａｍｅ）間隔（Ｉinterval）を掛けることによって前記ＧＯＰ単位ビット量（ｔａｒｇｅｔGOP）を計算することができる。また、前記マクロブロックビット割り当て部は、前記マクロブロックに対する二つのモードであるイントラマクロブロック及びインターマクロブロックのそれぞれに対してビット量を割り当てるようになる。例えば、前記インターマクロブロックのビット量（ｔａｒｇｅｔinter_MB）は、前記ＧＯＰ単位ビット量（ｔａｒｇｅｔGOP）を主フレーム間隔（Ｉinterval）と前記ビット量比（ＲａｔｉｏItop）との加算値で割った結果値を再び一つのフレーム内に存在するマクロブロックの数（ＭＢ＿Ｎｕｍ）で割ることによって計算することができる。
【００１４】
本発明において、前記量子化装置は、前記マクロブロックに対してイントラ及びインター予測と変換を行う予測及び変換部；前記変換を通して獲得した前記ＡＣ係数を分析して前記ＱＰ値を決定するＱＰ決定部；現在のＱＰ値を周辺のＱＰ値と比較し、差値が所定しきい値以内になるように前記現在のＱＰ値を調節するＱＰ調節部；及び前記ＱＰ値を用いて量子化を行う量子化部；を含むことができる。
【００１５】
本発明の他の実施例は、エンコーディングが行われる信号が入力される入力部；前記入力部を通して入力された信号をＧＯＰビット割り当て、マクロブロックビット割り当て及びバッファーの状態によって量子化することによってエンコーディングを行うエンコーディング装置；前記エンコーディング装置によってエンコーディングされたビットストリームを送信する送信部；前記エンコーディング装置によってエンコーディングされたビットストリームを格納する格納部；及び前記入力部、エンコーディング装置、送信部及び格納部を制御する制御部；を含むマルチメディア装置を提供する。
【００１６】
本発明の他の実施例は、ピクチャーグループ（ＧＯＰ）単位でビット量（ｔａｒｇｅｔGOP）を割り当てるＧＯＰビット割り当て段階；前記ＧＯＰ内のマクロブロックに対してモードによってマクロブロック単位でビット量を割り当てるマクロブロックビット割り当て段階；現在のバッファー状態をチェックし、所定の比率以下で占有された場合、前記マクロブロックを変換して獲得したＡＣ係数を用いて量子化パラメーター（ＱＰ）値を決定して量子化を行う量子化遂行段階；及び可変長符号化（ＶＬＣ）を行うＶＣＬ段階；を含むエンコーディング方法を提供する。
【００１７】
本発明において、前記エンコーディング方法は、前記量子化段階前に前記バッファーの状態をチェックするバッファーチェック段階をさらに含むことができる。その結果、前記バッファーが所定の比率よりも高く占有された場合、前記量子化段階を行わずに前記ＶＬＣ段階を行うことができる。  
【発明の効果】
【００１８】
本発明に係るエンコーディング装置と方法及びそのエンコーディング装置を含むマルチメディア装置は、比較的単純な方法、すなわち、秒当たりの目標ビット率（ｔａｒｇｅｔsec）、秒当たりのフレーム数（ｆｐｓ：ｆｒａｍｅ  ｐｅｒ  ｓｅｃｏｎｄ）、主フレーム（ｋｅｙ  ｆｒａｍｅ）間隔（Ｉinterval）を用いてＧＯＰ単位ビット量（ｔａｒｇｅｔGOP）を計算し、また、ＧＯＰ単位ビット量（ｔａｒｇｅｔGOP）及びインターマクロブロックに対する前記イントラマクロブロックのビット量の比（ＲａｔｉｏItop）を用いてマクロブロック単位のビット量を計算することによって、優れたビット量の予測と画質を提供することができる。
【００１９】
また、本発明のエンコーディング装置と方法及びマルチメディア装置は、前記のようなビット量の予測と共にバッファー状態をチェックし、必要に応じてマクロブロック単位でのコーディングを省略することによって、オーバーフローの発生を予防することができ、安定的なエンコーディングを行えるようになる。その結果、本発明のエンコーディング装置と方法及びマルチメディア装置は、制限された帯域幅や格納媒体をアプリケーションとして使用するビデオエンコーダーに効果的かつ安定的に用いることができる。
【図面の簡単な説明】
【００２０】
【図１】本発明の一実施例に係るマルチメディア装置に対するブロック構造図である。
【図２】本発明の一実施例に係る図１のマルチメディア装置におけるエンコーディング装置をより詳細に示すブロック構造図である。
【図３】本発明の一実施例に係る図２のエンコーディング装置における量子化装置をより詳細に示すブロック構造図である。
【図４】本発明の他の実施例に係るエンコーディング方法を示すフローチャートである。
【図５】本発明の一実施例に係る図４のエンコーディング方法のうちマクロブロックビット量割り当て段階をより詳細に示すフローチャートである。
【図６】本発明の一実施例に係る図４のエンコーディング方法のうち量子化過程遂行段階をより詳細に示すフローチャートである。
【発明を実施するための形態】
【００２１】
以下では、添付の図面を参照して本発明の好適な実施例を詳細に説明する。以下の説明で、一つの構成要素が他の構成要素に連結されると記述されるとき、これは、他の構成要素に直接連結されたり、それらの間に第３の構成要素が介在することを意味する。また、図面における各構成要素の構造や大きさは、説明の便宜及び明確性のために誇張して示しており、説明と関係のない部分は省略した。図面における同一の符号は同一の要素を称する。一方、使用される各用語は、単に本発明を説明するために使用されたものであって、意味を限定したり、特許請求の範囲に記載した本発明の範囲を制限するために使用されたものではない。
【００２２】
図１は、本発明の一実施例に係るマルチメディア装置に対するブロック構造図である。
【００２３】
図１を参照すると、本実施例に係るマルチメディア装置は、入力部２００、エンコーディング装置１００、送信部３００、格納部４００及び制御部５００を含む。
【００２４】
入力部２００では、エンコーディング装置１００でエンコーディングが行われる信号が入力され、送信部３００では、エンコーディング装置１００を通してエンコーディングされて出力されたビットストリーム信号が送信される。
【００２５】
エンコーディング装置１００は、入力部２００を通して入力された信号に対してＧＯＰビット割り当て及びマクロブロックビット割り当てを通してビット量を制御した後、バッファーの状態によって量子化し、可変長符号化（Ｖａｒｉａｂｌｅ  Ｌｅｎｇｔｈ  Ｃｏｄｉｎｇ：ＶＬＤ）を行うことによって、フレーム別にエンコーディングを行う。このようなエンコーディング装置１００は、秒当たりの目標ビット率（ｔａｒｇｅｔsec）、秒当たりのフレーム数（ｆｐｓ：ｆｒａｍｅ  ｐｅｒ  ｓｅｃｏｎｄ）、主フレーム（ｋｅｙ  ｆｒａｍｅ）間隔（Ｉinterval）、及びインターマクロブロックに対するイントラマクロブロックのビット量の比（ＲａｔｉｏItop）などを用いてビット量を制御する。
【００２６】
それによって、エンコーディング装置１００は、非常に正確なビット量を予測することができ、複雑度を分析するために複雑な計算をするという煩雑さを避けることができる。一方、量子化を行う前にバッファーの状態を検査し、バッファーの占有率によって量子化を行うので、バッファーの過度の占有によるオーバーフローの発生可能性を予防することによって、エンコーディングを非常に円滑に行えるようになる。エンコーディング装置１００については、図２を参照してより詳細に説明する。
【００２７】
格納部４００は、エンコーディング装置１００によってエンコーディングされたビットストリームを格納したり、又はエンコーディング過程中に必要なデータを格納する。制御部５００は、上述した各構成要素、すなわち、入力部２００、エンコーディング装置１００、送信部３００、格納部４００などを全般的に制御する。本図面のマルチメディア装置にエンコーディング装置１００のみが示されているが、本実施例のマルチメディア装置は、デコーディング装置（図示せず）を含むことができる。また、入力部に対応する出力部（図示せず）、及び送信部に対応する受信部（図示せず）なども、本実施例のマルチメディア装置に含ませることができる。
【００２８】
本実施例のマルチメディア装置は、いくつかのパラメーター、すなわち、ｔａｒｇｅｔsec、ｆｐｓ、Ｉinterval、及びＲａｔｉｏItopを用いてＧＯＰ単位ビット量及びマクロブロック単位ビット量を割り当てることができ、また、バッファーの状態をチェックして量子化を行うエンコーディング装置１００を含むことによって、非常に正確なビット量を予測及び制御することができ、さらに、オーバーフローを予防することによってエンコーディングを円滑に行えるマルチメディア装置を具現できるようになる。
【００２９】
図２は、本発明の一実施例に係る図１のマルチメディア装置におけるエンコーディング装置１００をより詳細に示すブロック構造図である。
【００３０】
図２を参照すると、本実施例のエンコーディング装置１００は、ＧＯＰビット割り当て部１２０、マクロブロックビット割り当て部１４０、バッファー状態確認部１５０、量子化装置１６０及びＶＣＬ部１７０を含む。
【００３１】
ＧＯＰビット割り当て部１２０は、ピクチャーグループ（Ｇｒｏｕｐ  Ｏｆ  Ｐｉｃｔｕｒｅ：ＧＯＰ）単位でビット量を割り当てるようになるが、このようなＧＯＰ単位ビット量の割り当てのためには、いくつかのパラメーター、すなわち、秒当たりの目標ビット率（ｔａｒｇｅｔsec）、秒当たりのフレーム数（ｆｐｓ：ｆｒａｍｅ  ｐｅｒ  ｓｅｃｏｎｄ）、主フレーム（ｋｅｙ  ｆｒａｍｅ）間隔（Ｉinterval）を用いる。ＧＯＰ単位ビット量をｔａｒｇｅｔGOPとすると、ｔａｒｇｅｔGOPの計算式は式（１）のように示すことができる。
【００３２】
ｔａｒｇｅｔGOP＝（ｔａｒｇｅｔsec／ｆｐｓ）×Ｉinterval …式（１）
【００３３】
ここで、各パラメーターｔａｒｇｅｔsec、ｆｐｓ、及びＩintervalは、ユーザーによって該当の映像にしたがって設定される値である。ｔａｒｇｅｔsec／ｆｐｓは、フレーム当たりのビット量を意味するようになり、それに主フレーム間隔を掛けると、ＧＯＰ内の全てのフレームのビット量になる。結局、ｔａｒｇｅｔGOPは、主フレーム（Ｋｅｙ  Ｆｒａｍｅ）を含む一つのＧＯＰに割り当てられるビット量を意味するようになる。
【００３４】
マクロブロックビット割り当て部１４０は、ＧＯＰ単位割り当て部１２０によってＧＯＰ単位ビット量割り当てが行われた後、マクロブロック単位でビット量を割り当てる。このようなマクロブロックビット割り当て部１４０は、ＧＯＰを開始する度にイントラとインターマクロブロック当たりのビット量を割り当てるようになるが、このようなイントラとインターマクロブロックに対するビット量の計算式は、次に示す通りである。
【００３５】
ｔａｒｇｅｔinter_MB＝ｔａｒｇｅｔGOP／（Ｉinterval＋ＲａｔｉｏItop）×１／ＭＢ＿Ｎｕｍ  …  式（２）
【００３６】
ｔａｒｇｅｔintra_MB＝ｔａｒｇｅｔinter_MB×ＲａｔｉｏItop …  式（３）
【００３７】
ここで、ｔａｒｇｅｔinter_MBは、インターマクロブロックに対する割り当てビット量を意味し、ｔａｒｇｅｔintra_MBは、イントラマクロブロックに対する割り当てビット量を意味する。また、ＲａｔｉｏItopは、インターマクロブロックに対する前記イントラマクロブロックのビット量の比を意味し、ＭＢ＿Ｎｕｍは、一つのフレーム内に含まれたマクロブロックの数を意味する。
【００３８】
式（２）を検討すると、ｔａｒｇｅｔGOP／（Ｉinterval＋ＲａｔｉｏItop）は、ＲａｔｉｏItopによって決定されるフレーム当たりのビット量になり、フレーム当たりのビット量をフレーム内の全てのマクロブロックで割るようになるので、結局、マクロブロックに対するビット量になる。特に、式（２）は、インターマクロブロックに対するビット量の計算式になる。一方、式（３）は、イントラマクロブロックに対するビット量の計算式であって、イントラマクロブロックに対する計算は、まず、式（２）を通して求めたインターマクロブロックのビット量にＲａｔｉｏItopを掛けることによって簡単に行うことができる。
【００３９】
ここで、ＲａｔｉｏItopは、まず、多様な実験を通して定められた初期値を使用して設定し、その後、ＧＯＰに対するエンコーディングを開始する度に、以前に使用されたインター／イントラマクロブロックで使用された平均ビット量の比と現在のＲａｔｉｏItopを用いて継続してアップデートする。ＲａｔｉｏItopは、厳格な固定ビット率では１でなければならないが、イントラモード（すなわち、イントラマクロブロック）とインターモード（すなわち、インターマクロブロック）に同一のビット量を割り当てると、イントラフレームの画質が大きく低下し、低下したイントラフレームの画質は、ピクチャーグループ内の全てのインターフレームに影響を及ぼすようになり、全フレームの画質減少をもたらす原因になる。したがって、イントラモードにより多くのビット量を割り当てることが望ましい。例えば、ＲａｔｉｏItopは約３〜４であることが望ましい。
【００４０】
参考までに、ピクチャーグループ、すなわち、ＧＯＰは、フレーム内のマクロブロックが全てイントラマクロブロックであるイントラフレーム又は主フレームと、若干のイントラマクロブロックを含み、ほとんどがインターマクロブロックからなるインターフレームとに分けることができる。
【００４１】
バッファー状態確認部１５０は、エンコーディング過程中にバッファーの占有率がどの程度であるかをチェックする機能をする。
【００４２】
量子化装置１６０は、バッファー状態確認部１５０で確認された現在のバッファー状態によって、量子化過程を遂行又は省略する。すなわち、現在のバッファー占有率が所定の比率以下である場合、マクロブロックを変換してＡＣ係数を獲得し、獲得したＡＣ係数を用いて量子化パラメーター（ＱＰ：Ｑｕａｎｔｉｚａｔｉｏｎ  Ｐａｒａｍｅｔｅｒ）値を決定した後、決定された量子化パラメーターを用いて量子化を行う。その一方、バッファーの占有率が所定の比率より高くなると量子化過程を行わない。このようにバッファーの状態によって量子化過程を遂行又は省略することによって、バッファーの過度の占有によるオーバーフローを予防するようになる。量子化装置１６０については、図３を参照してより詳細に説明する。
【００４３】
ＶＬＣ部１８０は、量子化過程が遂行又は省略されたマクロブロックに対して可変長符号化（Ｖａｒｉａｂｌｅ  Ｌｅｎｇｔｈ  Ｃｏｄｉｎｇ：ＶＬＣ）を行うことによって、一つのマクロブロックに対するエンコーディング過程を完了する。
【００４４】
本実施例のエンコーディング装置１００は、単純ないくつかのパラメーターを用いてビット量を計算し、また、バッファーの状態をチェックして量子化過程を省略するテクニックを採用することによって、非常に正確なビット量を予測し、優れた画質を提供することができ、安定的なエンコーディングを行えるようになる。結局、本発明のエンコーディング装置１００は、従来のバッファー状態によってビット量を制御する方法と、複雑度によってビット量を制御する方法とを適宜組み合わせ、ビット量の計算のために複雑度を分析する代わりに、容易に予測変更可能ないくつかのパラメーターを用いて計算することによって、計算式を単純化し、その結果、てエンコーディング速度及びメモリの消費を画期的に改善できるようになる。
【００４５】
図３は、本発明の一実施例に係る図２のエンコーディング装置における量子化装置１６０をより詳細に示すブロック構造図である。
【００４６】
図３を参照すると、本実施例の量子化装置１６０は、予測及び変換部１６２、ＱＰ決定部１６４、ＱＰ調節部１６６及び量子化部１６８を含む。
【００４７】
予測及び変換部１６２は、マクロブロックに対して動き補償などのためのイントラ及びインター予測を行うようになるが、一般に、インター予測は、各ピクチャー間の時間的な重複性を除去して映像を圧縮する方法であって、動き推定及び動き補償などで構成されており、イントラ予測は、フレーム内で空間重複性を減少させる過程でイントラフレームの圧縮効率を高めるために行われる。このようなイントラ／インター予測は、本発明の技術分野で既に広く知られている内容であるので、それについての詳細な説明は省略する。
【００４８】
また、予測及び変換部１６２は、量子化前にドメイン変換を行う機能をする。例えば、ドメイン変換としては、離散コサイン変換（Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ：ＤＣＴ）又はウェーブレット変換を行うことができる。現在、このような多様な変換は、ＪＰＥＧイメージ圧縮、ＭＪＰＥＧ、ＭＰＥＧ及びＤＶビデオ圧縮に主に使用されており、以下では、ＤＣＴ変換を例に挙げて説明する。ＤＣＴも本発明の技術分野で既に広く知られた内容であるので、それについての詳細な説明は省略する。
【００４９】
ＱＰ決定部１６４は、ＤＣＴ変換を通して獲得したＡＣ係数を用いて量子化パラメーター（Ｑｕａｎｔｉｚａｔｉｏｎ  Ｐａｒａｍｅｔｅｒ：ＱＰ）値を決定する。すなわち、ＤＣＴ変換を行うと、ＤＣ（直流成分）係数及びＡＣ（交流成分）係数を得ることができるが、ここで、ＤＣ係数は、ＤＣＴを通して得られた係数ブロックの最も左側上端に位置した１番目の係数であって、低い周波数、すなわち、直流成分を意味する。そして、それ以外の各係数は、高い周波数成分の係数であって、ＡＣ係数という。
【００５０】
このようなＡＣ係数は、分散成分としてラプラシアン（Ｌａｐｌａｃｉａｎ）分布を有し、このような分布度はビット量に比例するという特性を有する。このような特性を有するＡＣ係数分布を有してマクロブロックのビット量を予測し、それに基づいてＱＰ値を決定するようになる。また、ＡＣ係数は、ＤＣＴ変換のみならず、ウェーブレット変換などの他の変換を通して得ることもできる。
【００５１】
ＱＰ調節部１６６は、ＱＰ決定部１６４を通して決定されたＱＰ値を周辺のＱＰ値と比較し、差値が所定しきい値以内になるように調節する。上述したようにＱＰ決定部１６４がＡＣ係数を用いてＱＰ値を決定したとしても、マクロブロック単位でＱＰ値が急激に変わるとブロッキング現象が発生する。そのため、ＱＰ調節部１６６は、ＱＰ決定部１６４を通して決定されたＱＰ値を隣接したマクロブロックのＱＰ値と比較し、その差が所定値以内になるようにＱＰ決定部１６４を通して決定されたＱＰ値を適宜調節する。一方、マクロブロック単位のＱＰ値の計算は、システムを複雑にするので、周期的にＱＰ値を変動させながら複雑度を適宜調節することもできる。
【００５２】
量子化部１６８は、ＱＰ調節部１６６の調節を通して最終的に決定されたＱＰ値を用いて量子化を行う。量子化過程も既に広く知られた内容であるので、それについての詳細な説明は省略する。
【００５３】
本実施例で、量子化装置１６０は、エンコーディング中にバッファーの占有率によって該当のマクロブロックに対する量子化過程を遂行又は中止することができる。その結果、バッファーの過度の占有によるオーバーフローの発生可能性を最小化することができる。
【００５４】
図４は、本発明の他の実施例に係るエンコーディング方法を示すフローチャートである。
【００５５】
図４を参照すると、本実施例のエンコーディング方法は、まず、所定パラメーター、すなわち、ｔａｒｇｅｔsec、ｆｐｓ、及びＩintervalを用いてＧＯＰ単位のビット量を割り当てる（Ｓ１００）。上述したように、ＧＯＰ単位ビット量の割り当ては、前記式（１）を用いて行うことができる。このようなＧＯＰ単位ビット量の割り当て後、マクロブロック単位でビット量を割り当てる（Ｓ１１０）。マクロブロック単位ビット量割り当てについては、図５を参照してより詳細に説明する。
【００５６】
その後、バッファー状態が所定限界占有率を超えたかどうかを判断する（Ｓ１２０）。バッファーが限界占有率を超えた場合は、量子化過程段階（Ｓ１３０）を省略し、該当のマクロブロックをノン―コードタイプ（ｎｏｎ―ｃｏｄｅｄ  ｔｙｐｅ）と決定（Ｓ１６０）してＶＬＣ遂行段階Ｓ１４０に移行する。バッファーが限界占有率を超えていない場合は、量子化過程遂行段階（Ｓ１３０）に移行し、量子化過程が行われた後、ＶＣＬ遂行段階（Ｓ１４０）に移行する。量子化過程遂行段階（Ｓ１３０）については、図６を参照してより詳細に説明する。ＶＬＣ遂行段階（Ｓ１３０）が終了すると、現在のマクロブロックが最後のマクロブロックであるかどうかを判断し（Ｓ１５０）、最後のマクロブロックでない場合は、マクロブロック単位ビット量割り当て段階（Ｓ１１０）に移行し、最後のマクロブロックである場合は、ＧＯＰのエンコーディング過程を終了する。
【００５７】
本実施例に係るエンコーディング方法は、ｔａｒｇｅｔsec、ｆｐｓ、及びＩintervalなどのいくつかのパラメーターを用いてＧＯＰ及びマクロブロックのビット量を容易に計算し、また、バッファーの状態をチェックして量子化過程を省略するテクニックを採用することによって、非常に正確なビット量を予測しながらも、安定的なエンコーディングを行えるようになる。
【００５８】
図５は、図４のエンコーディング方法のうちマクロブロックビット量割り当て段階をより詳細に示すフローチャートである。
【００５９】
図５を参照すると、現在のマクロブロックがＧＯＰ内の最初のマクロブロックであるかどうかを判断する（Ｓ１１２）。最初のマクロブロックである場合は、ｔａｒｇｅｔGOP及びＲａｔｉｏItopを用いてモード、すなわち、イントラモード又はインターモードによるマクロブロック単位のビット量を割り当てる（Ｓ１１４）。マクロブロック単位のビット量割り当ては、式（２）及び式（３）を用いて行うことができる。
【００６０】
現在のマクロブロックがＧＯＰ内の最初のマクロブロックでない場合は、バッファー状態確認段階（Ｓ１２０）に移行する。すなわち、マクロブロック単位のビット量割り当ては、ＧＯＰを開始するとき、ＧＯＰ内に含まれた全てのマクロブロックに対して行うようになる。また、図４のＶＬＣ遂行（Ｓ１４０）後、現在のマクロブロックが最後のマクロブロックであるかどうかを判断し（Ｓ１５０）、最後のマクロブロックでない場合は、ＧＯＰ内の最初のマクロブロックであるかかどうかを判断する段階（Ｓ１１２）に移行する。
【００６１】
図６は、本発明の一実施例に係る図４のエンコーディング方法のうち量子化過程遂行段階をより詳細に示すフローチャートである。
【００６２】
図６を参照すると、まず、インター／イントラ予測及び変換を行う（Ｓ１３２）。次に、変換を通して得たＡＣ係数を用いてＱＰ値を決定する（Ｓ１３４）。その後、現在のＱＰ値と周辺のＱＰ値との差が所定しきい値以内の範囲になるように現在のＱＰ値を調節する（Ｓ１３６）。最後に、調節を通して決定されたＱＰ値を有して量子化を行う（Ｓ１３８）。このような量子化過程は、図３を参照して説明したので、それについての詳細な説明は省略する。一方、上述したように、このような量子化過程遂行段階（Ｓ１３０）は、バッファーの占有率によって省略可能である。
【００６３】
以上、本発明を図面に示した実施例を参考にして説明したが、これは例示的なものに過ぎなく、本技術分野の通常の知識を有する者であれば、これから多様な変形及び均等な他の実施例が可能であることを理解するだろう。したがって、本発明の真の技術的保護範囲は、添付の特許請求の範囲の技術的思想によって定めなければならない。
【産業上の利用可能性】
【００６４】
本発明は、デジタルマルチメディア装置に関するもので、特に、マルチメディア装置でビデオエンコーディングを効率的に行えるエンコーディング装置及び方法に関するものである。本発明に係るエンコーディング装置と方法及びそのエンコーディング装置を含むマルチメディア装置は、比較的単純な方法、すなわち、秒当たりの目標ビット率（ｔａｒｇｅｔsec）、秒当たりのフレーム数（ｆｐｓ：ｆｒａｍｅ  ｐｅｒ  ｓｅｃｏｎｄ）、主フレーム（ｋｅｙ  ｆｒａｍｅ）間隔（Ｉinterval）を用いてＧＯＰ単位ビット量（ｔａｒｇｅｔGOP）を計算し、また、ＧＯＰ単位ビット量（ｔａｒｇｅｔGOP）及びインターマクロブロックに対する前記イントラマクロブロックのビット量の比（ＲａｔｉｏItop）を用いてマクロブロック単位のビット量を計算することによって、優れたビット量の予測と画質を提供することができる。
【図１】
2012521141.tif 000003
【図２】
2012521141.tif 000004
【図３】
2012521141.tif 000005
【図４】
2012521141.tif 000006
【図５】
2012521141.tif 000007
【図６】
2012521141.tif 000008
【国際調査報告】
2012521141.tif 000009
2012521141.tif 000010