JP4110345B2 - 画像圧縮装置および方法、並びにプログラム格納媒体 - Google Patents
画像圧縮装置および方法、並びにプログラム格納媒体 Download PDFInfo
- Publication number
- JP4110345B2 JP4110345B2 JP13669699A JP13669699A JP4110345B2 JP 4110345 B2 JP4110345 B2 JP 4110345B2 JP 13669699 A JP13669699 A JP 13669699A JP 13669699 A JP13669699 A JP 13669699A JP 4110345 B2 JP4110345 B2 JP 4110345B2
- Authority
- JP
- Japan
- Prior art keywords
- value
- scale
- lower limit
- input
- image data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
Description
【発明の属する技術分野】
本発明は、画像圧縮装置および方法、並びにプログラム格納媒体に関し、特に、ブロック毎に設定されるQ(Quantiser)スケール値に下限値を設定し、ブロック毎の極端な情報量の偏りが生じないようにマクロブロックの情報量を制御するようにした画像圧縮装置および方法、並びにプログラム格納媒体に関する。
【0002】
【従来の技術】
MPEG(Moving Picture Experts Group)2に代表される画像圧縮技術は、放送やAV(Audio Visual)機器などに用いられる符号化方式であり、広く一般に用いられるようになっている。
【0003】
図1は、従来の画像圧縮装置の構成例を示している。画像圧縮装置は、画像入力装置1、演算器2、DCT(Discrete Cosine Transform)器4、量子化器5、可変長符号化器6、逆量子化器7、逆DCT器8、演算器9,フレームメモリ11、動き検出器12、動き補償器13、バッファ14、および情報制御器15を有している。
【0004】
画像入力装置1は、画像データを取り込む。画像入力装置1により取り込まれた画像データが、動き補償を必要としないIピクチャである場合、スイッチ3は端子3bに切り替えられ、その画像データは、DCT器4に出力される。画像入力装置1により取り込まれた画像データが、動き補償を必要とするPピクチャ、または、Bピクチャである場合、スイッチ3は端子3aに切り替えられ、取り込まれた画像データは演算器2に出力されると共に、動き検出器12に出力される。
【0005】
演算器2は、画像入力装置1から入力された画像データ(動き補償を必要とするPピクチャ、または、Bピクチャである)に動き補償器12から出力される補償画像を差し引き、スイッチ3を介して、DCT器4に出力する。
【0006】
DCT器4は、入力された画像データをDCT変換し、画像データを周波数毎に並び替え、視覚特性上重要性の高い順に置き換えて、量子化器5に出力する。
【0007】
量子化器5は、DCT器4から入力されたDCT変換されたデータ(DCT係数)を、情報制御器15から入力される同じピクチャで直前のフレームのQスケール値と量子化マトリクスの積で割り算することにより量子化した後、可変長符号化器6に出力する。
【0008】
可変長符号化器6は、量子化されたデータを可変長符号に変換し、バッファ14に出力する。
【0009】
バッファ14は、可変長符号化器6から入力された可変長符号化されたビットストリームを一旦記憶した後、後段の装置へ出力すると共に、記憶するデータ量(符号量)に対応する信号を情報制御器15に出力する。情報制御器15は、入力された符号量からQスケール値を求め、量子化器5および逆量子化器7に出力する。
【0010】
逆量子化器7は、情報制御器15から入力されるQスケール値に基づいて、量子化器5から入力される量子化されたデータを逆量子化し、逆DCT器8に出力する。逆DCT器8は、入力された逆量子化されたデータを逆DCT変換し、演算器9に出力する。
【0011】
入力された画像が、Iピクチャの場合、スイッチ10は、端子10bに接続されるので、演算器9は、入力された画像データをそのまま、フレームメモリ11および動き検出器12に出力する。また、入力された画像データのピクチャの種類がPピクチャまたはBピクチャの場合、スイッチ10が、端子10aに接続されるので、演算器9は、逆DCT器8から出力される画像データに、動き補償器13から出力される補償画像を加算し、フレームメモリ11および動き検出器12に出力する。
【0012】
フレームメモリ11は、入力された画像データを格納し、必要に応じて、動き検出器12および動き補償器13に出力する。
【0013】
動き検出器12は、画像入力装置1から入力された画像データと、フレームメモリ11に格納されている画像データから動きベクトルを検出し、動き補償器13に出力する。動き補償器13は、動き検出器12から入力された動きベクトルに基づいて、フレームメモリ11から読み出された画像に対して動き補償を施して動き補償画像を生成し、演算器2および演算器9(PピクチャまたはBピクチャの場合)に出力する。
【0014】
次に画像圧縮装置の動作について説明する。最初に、画像入力装置1に入力された画像データが、Iピクチャである場合について説明する。このとき、スイッチ3は、端子3bに切り替えられ、画像入力装置1から出力された画像データは、スイッチ3の端子3bを介して、DCT器4に出力される。DCT器4に出力された画像データは、DCT変換され、量子化器5に出力される。
【0015】
量子化器5は、入力されたDCT変換された画像データを、情報制御器15からのQスケール値に基づいて量子化し、可変長符号化器6および逆量子化器7に出力する。
【0016】
逆量子化器7に入力された量子化された画像データは、情報制御器15からのQスケール値に基づいて逆量子化され、逆DCT器8に出力される。逆DCT器8は、逆量子化された画像データを逆DCT変換し、演算器9に出力する。演算器9に出力された逆DCT変換された画像データは、スイッチ10が端子10bに切り替えられているので、そのままフレームメモリ11に出力され、格納される。
【0017】
動き検出器12は、フレームメモリ11から入力された画像データと、画像入力装置1から入力された画像データとから動きベクトルを生成し、動き補償器13に出力する。
【0018】
動き補償器13は、入力された動きベクトルに基づいてフレームメモリ11からの画像データに動き補償を施し、演算器2に出力する。
【0019】
可変長符号化器6に入力された量子化された画像データは、可変長符号に変換され、バッファ14に出力され、格納される。バッファ14に格納されたデータは、適宜読み出され、懇談に出力される。
【0020】
情報制御器15はバッファ14に格納されている符号量に基づいてQスケール値を決定する。
【0021】
次に、画像圧縮装置の画像入力装置1に入力された画像データが、Pピクチャ、または、Bピクチャの場合、スイッチ3が端子3aに切り替えられる。画像入力装置1から出力された画像データは、動き検出器12に出力されると共に、演算器2に入力される。
【0022】
演算器2は、画像入力装置1が出力する画像データから動き補償器13から出力された動き補償画像を差し引き、DCT器4に出力する。以下、逆DCT器8までは、上述のIピクチャの場合と同様に処理される。
【0023】
Pピクチャの場合、スイッチ10は、端子10aに切り替えられる。逆DCT変換された画像データは、演算器9において、動き補償器13から出力された動き補償画像が加算され、元の画像に復元され、フレームメモリ11に出力される。それ以降の処理は、Iピクチャと同様である。
【0024】
次に、上述の量子化器5の量子化処理について説明する。MPEGの規格においては、量子化については、逆量子化についてのみ、詳細な規定がなされているため、量子化を行う際には、逆量子化の規定に含まれるいくつかのパラメータを変化させ、その自由度の範囲で量子化特性を制御することにより、高画質化や視覚特性を反映した符号化を行うことになる。
【0025】
量子化マトリクスは、ブロック内DCT係数値間での相対的な量子化精度を設定するために設けられたマトリクスである。このマトリクスを用いることにより、たとえば、視覚的に劣化の目立ち難い高域成分のDCT係数値を、視覚的に劣化の目立ちやすい低域DCT係数値に比較して、粗く量子化するといった処理が可能となり、量子化特性を視覚特性に合致することができる。また、量子化マトリクスは、ピクチャ単位での設定が可能である。
【0026】
図2は、量子化マトリクスの例を示している。量子化マトリクスは、ユーザがピクチャ単位で設定可能であるが、設定がなされていない場合、図2に示すこのデフォルト値が用いられる。図2(A)は、イントラマクロブロックの量子化マトリクスであり、図2(B)は、ノンイントラマクロブロックの量子化マトリクスである。また、テストモデル5(TM5)においては、図2(C)のノンイントラマブロックの量子化マトリクスが使用される。
【0027】
Qスケール値は、量子化特性のスケーリングを行うことにより発生符号量を制御するためのパラメータであり、ピクチャ単位で設定されるQスケールタイプと、マクロブロック単位で設定される量子化スケールコードにより決定される。
【0028】
図3にQスケールタイプ別のQスケール値とQスケールコードの関係を示す。Qスケールタイプが0であるときは、線形量子化となり、Qスケールコード(1乃至31)の2倍の値がQスケール値(2乃至62)となる。Qスケールタイプが1であるときは、非線型量子化となり、Qスケールコード(1乃至31)は、小さい量子化スケールコードでは、より細かく、大きなスケールコードでは、より粗くスケーリングすることにより、Qスケールコードタイプが0の場合と比べて、広い範囲のQスケール値(1乃至112)に変換される。
【0029】
このQスケール値は、以下に示す3つの段階を経て求められる。
【0030】
第1段階では、フレーム毎のターゲットビットレートが設定される。すなわち、GOP(Group of Picture)の各ピクチャに対する割り当てビット量が、割り当て対象ピクチャを含めGOP内でまだ符号化されていないピクチャに対して割り当てられるビット量Rを基準として配分される。この配分はGOP内の符号化ピクチャ順に繰り返される。
【0031】
次に、この配分について、具体的に説明する。まず、各ピクチャを符号化する際に用いる平均化Qスケールコードと発生符号量との積は、画面が変化しない限り、ピクチャタイプ毎に一定であると仮定する。
【0032】
そこで、各ピクチャを符号化した後、各ピクチャタイプ毎に、画面のグローバルコンプレキシティを示すパラメータXi,Xp,Xbを式(1)乃至式(3)により定義する。このパラメータXi,Xp,Xbにより次のピクチャを符号化する際のQスケールコードと発生符号量の関係を推定することができる。
【0033】
Xi=SiQi・・・(1)
Xp=SpQp・・・(2)
Xb=SbQb・・・(3)
ここで、Si, Sp, Sbは、それぞれ、Iピクチャ、Pピクチャ、または、Bピクチャのピクチャ符号化時の発生符号ビット量を表し、Qi, Qp, Qbは、それぞれ、Iピクチャ、Pピクチャ、または、Bピクチャのピクチャ符号化時の平均Qスケールコードを表している。
【0034】
また、Iピクチャの量子化スケールコードを基準としたPピクチャおよびBピクチャのQスケールコードの比率を、それぞれ、Kp, Kbとして、式(4)と式(5)により定義する。
【0035】
Kp=Qp/Qi・・・(4)
Kb=Qb/Qi・・・(5)
上記の仮定より、GOP中のそれぞれ、Iピクチャ、Pピクチャ、または、Bピクチャの各ピクチャに対する割り当てビット量Ti, Tp, Tbは、以下の式(6)乃至式(8)で示される。
【0036】
Ti=max{R/(1+NpXp/XiKp+NbXb/XiKb), bit rate/(8×picture rate)}・・・(6)
Tp=max{R/(Np+NbKpXb/XbKp), bit rate/(8×picture rate)}・・・(7)
Tb=max{R/(Nb+NpKbXp/XpKb), bit rate/(8×picture rate)}・・・(8)
ここで、Np, Nbは、GOP内でまだ、符号化されていないPピクチャおよびBピクチャの数を表している。すなわち、まず、GOP内の未符号化ピクチャのうち、割り当て対象となるピクチャとピクチャタイプの異なるピクチャについては、画質最適化条件のもとで、そのピクチャの発生する符号量が、割り当て対象ピクチャの発生符号量の何倍となるかが推定される。
【0037】
次に、未符号化ピクチャ全体の発生する推定符号量が、割り当て対象ピクチャの何枚分の符号量に相当するかが求められる。
【0038】
例えば、式(6)の第1引数の分母の第2項のNpXp/XiKpは、GOP内のNp枚の未符号化PピクチャがIピクチャ何枚分の符号量に相当するかを表すものであり、NpにPピクチャ発生符号化ビット数のIピクチャ発生符号化ビット数に対する割合Sp/Siを乗じ、Sp,Siを式(1)、式(2)、式(4)、および式(5)を用いてXi,Xp,Kpで表すことにより得られる。
【0039】
第2段階として、第1段階で求められた各ピクチャに対する割り当てビット量Ti, Tp, Tbと、実際の発生符号量を一致させるため、各ピクチャタイプ毎に独立に設定した3種類のバッファの容量を基準に、Qスケールコードが、マクロブロック単位のフィードバック制御で求められる。
【0040】
そこで、j番目のマクロブロック符号化に対応する仮想バッファの占有率を以下の式(9)乃至式(11)に示す。
【0041】
dj i=d0 i+Bj-1−Ti×(j−1)/MB cnt・・・(9)
dj p=d0 p+Bj-1−Tp×(j−1)/MB cnt・・・(10)
dj b=d0 b+Bj-1−Tb×(j−1)/MB cnt・・・(11)
d0 i, d0 p, d0 bは、各仮想バッファの初期占有率、Bjは、ピクチャの先頭からj番目のマクロブロックまでの発生ビット量、MB cntは、1ピクチャ内のマクロブロック数である。
【0042】
各ピクチャ符号化終了時の仮想バッファ占有量dMB cnti, dMB cntp, dMB cntbは、それぞれ同一のピクチャタイプで、次のピクチャタイプに対する仮想バッファ占有率の初期値d0 i, d0 p, d0 bとして用いられる。
【0043】
次に、j番目のマクロブロックに対するQスケールコードは、以下の式(12)として定義される。
【0044】
Qj=di×31/r・・・(12)
ここで、rは、リアクションパラメータと呼ばれるフィードバックループの応答速度を制御するパラメータであり、式(13)で与えられる。
【0045】
r=2×bit rate/picture rate・・・(13)
尚、シーケンスの最初における仮想バッファ初期値は、以下の式(14)乃至式(16)で表される。
【0046】
d0 i=10×r/31・・・(14)
d0 p=Kp d0 i・・・(15)
d0 b=Kb d0 i・・・(16)
第3段階として、第2段階で求められたQスケールコード(式(12)より)が、視覚的に劣化の目立ちやすい平坦部でより細かく量子化し、劣化の比較的目立ち難い絵柄の複雑な部分でより粗く量子化するように、各ブロック毎のアクティビティによって変化される。
【0047】
アクティビティは、予測誤差ではなく原画の輝度信号画素値を用い、フレームDCT符号化モードにおける4個のブロックとフィールドDCT符号化モードにおける4個のブロックとの合計8個のブロックの画素値を用いて、以下の式(17)乃至式(19)で与えられる。
【0048】
【数1】
【0049】
【数2】
【0050】
【数3】
【0051】
ここで、Pkは、原画の輝度信号ブロック内画素値である。式(17)において、最小値を採るのは、マクロブロック内の一部だけでも平坦部分がある場合には、量子化を細かくするためである。
【0052】
さらに、以下の式(20)によって、その値が、0.5乃至2の範囲をとる正規化アクティビティNactjが求められる。
【0053】
Nactj=(2×actj+avg act)/(actj+2×avg act)・・・(20)
ここで、avg actは、直前に符号化したピクチャでのactjの平均値である。
【0054】
そして、視覚特性を考慮したQスケールコードmquantjは、第2段階で得られたQスケールコードQjに基づいて以下の式(21)で求められる。
【0055】
mquantj=Qj× Nactj・・・(21)
【0056】
【発明が解決しようとする課題】
しかしながら、上述のように求められたQスケール値は、MPEG2のフォーマットで許されている範囲に収まっているか否かの判定がなされ、その範囲が制限されるのみである。そのため、このままでは、ブロックの特徴量次第では、本来与えられたビットレートと、入力画像の兼ね合いに比べると、きわめて小さなQスケール値が求まり、過大な情報を割り当てられ、さらに過大に割り当てられるブロックが存在するため、画像の他の領域への配分が不足するといった場合があるという課題があった。
【0057】
本発明はこのような状況に鑑みてなされたものであり、上記のように求められるQスケール値に下限値を設定することにより、Qスケール値が小さくなりすぎた一部のマクロブロックに過大な情報が割り振られないようにし、他の領域に有効に情報量を割り当てることができるようにさせるものである。
【0058】
【課題を解決するための手段】
請求項1に記載の画像圧縮装置は、画像データを入力する入力手段と、入力手段により入力された画像データのマクロブロック単位のQスケール値を演算する第1の演算手段と、同じピクチャタイプの直前のフレームのQスケール値の平均値に対応する値、フレーム毎の高域成分に対応する値、マクロブロック毎の高域成分に対応する値、または動き補償を行うフレームの残差成分に対応する値を演算し、演算した結果の最小値、および最大値からQスケール値の下限値を選択し、演算結果とする第2の演算手段と、第1の演算手段により演算されたQスケール値と、第2の演算手段により演算された下限値とを比較する比較手段と、比較手段の比較結果に基づいて、下限値よりもQスケール値が小さい場合、Qスケール値を下限値に制限する制限手段とを含むことを特徴とする。
【0059】
請求項2に記載の画像圧縮方法は、画像データを入力する入力ステップと、入力ステップの処理で入力された画像データのマクロブロック単位のQスケール値を演算する第1の演算ステップと、同じピクチャタイプの直前のフレームのQスケール値の平均値に対応する値、フレーム毎の高域成分に対応する値、マクロブロック毎の高域成分に対応する値、または動き補償を行うフレームの残差成分に対応する値を演算し、演算した結果の最小値、および最大値からQスケール値の下限値を選択し、演算結果とする第2の演算ステップと、第1の演算ステップの処理で演算されたQスケール値と、第2の演算ステップの処理で演算された下限値とを比較する比較ステップと、比較ステップの処理の比較結果に基づいて、下限値よりもQスケール値が小さい場合、Qスケール値を下限値に制限する制限ステップとを含むことを特徴とする。
【0060】
請求項3に記載の媒体は、画像データを入力する入力ステップと、入力ステップの処理で入力された画像データのマクロブロック単位のQスケール値を演算する第1の演算ステップと、同じピクチャタイプの直前のフレームのQスケール値の平均値に対応する値、フレーム毎の高域成分に対応する値、マクロブロック毎の高域成分に対応する値、または動き補償を行うフレームの残差成分に対応する値を演算し、演算した結果の最小値、および最大値からQスケール値の下限値を選択し、演算結果とする第2の演算ステップと、第1の演算ステップの処理で演算されたQスケール値と、第2の演算ステップの処理で演算された下限値とを比較する比較ステップと、比較ステップの処理の比較結果に基づいて、下限値よりもQスケール値が小さい場合、Qスケール値を下限値に制限する制限ステップとを含むことを特徴とするプログラムを実行させる。
【0061】
請求項1に記載の画像圧縮装置、請求項2に記載の画像圧縮方法、および請求項3に記載の媒体においては、画像データが入力され、入力された画像データのマクロブロック単位のQスケール値が演算され、同じピクチャタイプの直前のフレームのQスケール値の平均値に対応する値、フレーム毎の高域成分に対応する値、マクロブロック毎の高域成分に対応する値、または動き補償を行うフレームの残差成分に対応する値が演算され、演算された結果の最小値、および最大値からQスケール値の下限値が選択されて、演算結果とされ、演算されたQスケール値と、演算された下限値とが比較され、比較結果に基づいて、下限値よりもQスケール値が小さい場合、Qスケール値が下限値に制限される。
【0062】
【発明の実施の形態】
図4は、本発明を適用した画像圧縮装置の構成例を示したブロック図である。その基本的な構成は、図1に示した場合と同様であるが、この例においては、入力装置21、CPU22、フレームコンプレキシティ演算装置23、アクティビティ演算装置24、および残差演算装置25が設けられている。
【0063】
入力装置21は、ボタンやタッチパネルなどから構成され、Qスケール値の下限値の指定方法を決定するとき、ユーザにより操作される。すなわち、Qスケール値の演算における下限値を設定するために、バッファ14から入力される直前のQスケール値、フレームコンプレキシティ演算装置23から入力されるフレームコンプレキシティC、アクティビティ演算装置24から入力されるアクティビティA、または、残差演算装置25から入力される残差成分Bdのいずれを利用するかが決定される。尚、Qスケール値の下限値の指定方法の詳細については後述する。
【0064】
CPU22は、入力装置21から入力された信号に基づいて、スイッチ23a乃至25aを切り替える。また、CPU22は、この入力装置21からの信号に基づいて、情報制御器15にQスケール値の下限値の設定に、どのパラメータを利用するかを指令する。
【0065】
フレームコンプレキシティ演算装置23は、画像入力装置1からスイッチ23aを介して入力された画像データから、フレームコンプレキシティ(フレームの高域成分を示すパラメータ)Cを演算し、情報制御器15に出力する。フレームコンプレキシティCは、i番目の画素の輝度レベルをYi、フレームの総画素数をNとしたとき、具体的には以下の式(22)を演算することによって求められる。
【0066】
【数4】
【0067】
アクティビティ演算装置24には、逆DCT器8から出力され、演算器9によって復号処理された画像データが、スイッチ24aを介して、入力される。アクティビティ演算装置24は、入力された画像データのアクティビティ(ブロック単位の高域成分を示すパラメータ)を演算する。具体的には、まず、以下の式(23)により、入力画像aijから低域成分画像fmnが生成される。
【数5】
続いて、アクティビティが以下の式(24)より演算される。
【0068】
【数6】
…(24)
【0069】
式(23)と式(24)からアクティビティAは、以下の式(25)のように演算される。
【0070】
【数7】
…(25)
【0071】
残差演算装置25は、動き検出器12と動き補償器13で動き補償処理が実行される際、同時に出力される残差成分Bdを演算し、情報制御器15に出力する。
【0072】
情報制御器15は、CPU22から入力される信号に対応して、バッファ14から入力される直前のQスケール値、フレームコンプレキシティ演算装置23から入力されるフレームコンプレキシティC、アクティビティ演算装置24から入力されるアクティビティA、または、残差演算装置25から入力される残差成分Bdのいずれかを利用して、下限値を設定する。さらに、情報制御器15は、演算した視覚特性を考慮したQスケール値と、この下限値とを比較し、演算結果が、下限値より小さい場合は、これを下限値に置き換え、Qスケール値を決定し、量子化器5および逆量子化器7に出力する。
【0073】
CPU22の指令に基づいて、情報制御器15が、バッファ14から入力される直前のQスケール値に対応して、Qスケール値の下限値を制限する場合、バッファ14に記憶される直前のフレームの平均Qスケール値のAvgQに対応して、Qスケール値の下限値Thは、定数Kを用いて以下の式(26)のように定義される。
【0074】
Th=AvgQ/K・・・(26)
式(26)のように下限値Thを設定することにより、直前のフレームでのQスケール値と比較し、Qスケール値が極端に小さな値となることを防止することができる。
【0075】
CPU22の指令に基づいて、情報制御器15が、フレームコンプレキシティ演算装置23から入力されるフレームコンプレキシティCに対応して、Qスケール値の下限値Thを制限する場合、下限値Thは、定数K1を用いて以下の式(27)により定義される。
【0076】
Th=K1×C/bit rate・・・(27)
所定のK1を設定することによりフレームコンプレキシティ(C)に対応した下限値Thを設定することにより、Qスケール値が極端に小さな値となることを防止することができる。
【0077】
次に、CPU22の指令に基づいて、情報制御器15が、アクティビティ演算装置24から入力されるアクティビティAに対応して、Qスケール値の下限値を制限する場合、下限値Thは、定数K2を用いて以下の式(28)により定義される。
【0078】
Th=K2×A/bit rate・・・(28)
式(28)により所定のK2を設定することによりアクティビティAに対応した下限値Thを設定することにより、Qスケール値が極端に小さな値となることを防止することができる。
【0079】
さらに、CPU22の指令に基づいて、情報制御器15が、残差演算装置25から入力される残差成分Bdに基づいて、Qスケール値の下限値を制限する場合、下限値Thは、定数K3を用いて以下の式(29)のように定義される。
【0080】
Th=K3×Bd/bit rate・・・(29)
式(29)に所定のK3を設定することにより残差成分に対応した下限値Thを設定することにより、Qスケール値が極端に小さな値となることを防止することができる。
【0081】
次に、図5のフローチャートを参照して、Qスケール値を、直前のフレームのQスケール値から得られる値を下限値として設定する場合(式(26)をQスケール値の下限値として設定する場合)の情報制御器15の処理について説明する。
【0082】
ユーザが入力装置21を操作し、Qスケール値の下限値を直前のフレームのQスケール値に対応した値で制御することを指令すると、CPU22は、これに基づいて情報制御器15に対して指令を出すと共に、スイッチ23a,24a,25aをオフにする。そして、画像データが、画像入力装置1を介してDCT器4入力され、DCT変換された後、量子化器5に入力されると処理が開始される。
【0083】
ステップS1において、情報制御器15は、目標とする記録レートを決定する。すなわち、情報制御器15は、式(1)乃至式(3)に示されるXi,Xp,Xbの初期値を設定する。この初期値は、情報制御器15に内蔵されているメモリに予め記憶されている。
【0084】
ステップS2において、情報制御器15は、ステップS1の処理で決定された記録レートに基づいて、次のGOP単位の目標情報量を決定する。すなわち、情報制御器15は、ステップS1の処理で決定されたXi,Xp,Xbの初期値と直前の平均Qスケール値(Qi, Qp, Qb)から、次の目標情報量であるSi, Sp, Sbを設定する。
【0085】
ステップS3において、情報制御器15は、残りのビット量などから次のフレーム単位での目標情報量を設定する。すなわち、情報制御器15は、式(6)乃至式(8)から、次のフレームでの目標情報量を演算し、割り当てビット量Ti, Tp, Tbを設定する。
【0086】
ステップS4において、情報制御器15は、発生情報量およびマクロブロック毎の特徴量を取得する。すなわち、情報制御器15は、式(9)乃至式(11)を演算し、d0 i, d0 p, d0 bを求めて発生情報量を得ると共に、式(12)を演算し、Qスケールコードを演算する。また、情報制御器15は、マクロブロックの特徴量として式(17)乃至式(19)を演算し、さらに、式(20)の正規化アクティビティを求める。
【0087】
ステップS5において、情報制御器15は、次の1ブロック単位のQスケール値(mquantj)を演算する。すなわち、式(21)を演算し、最終的なQスケール値を求める。
【0088】
ステップS6において、情報制御器15は、ステップS5の処理で得られたmquantjが、下限値Thとして式(26)で定義された値以上であるか否かを判定する。mquantjが下限値Th以上の値の場合、ステップS7の処理に進み、情報制御器15は、求められたQスケール値を量子化器5に出力し、量子化させ、可変長符号化器6で、可変長符号化させる。
【0089】
ステップS6において、情報制御器15は、Qスケール値が下限値Th以上ではないと判定した場合、ステップS10において、演算されたQスケール値を、下限値として設定された値で置き換え、ステップS7の処理に進む。
【0090】
ステップS8において、情報制御器15は、フレームの最後か否かを判定する。フレームの最後ではない場合、ステップS4の処理に戻り、それ以降の処理が繰り返される。また、フレームの最後であると判定された場合、ステップS9の処理に進む。ステップS9において、情報制御器15は、この処理がGOPの最後か否かを判定する。GOPの最後ではないとき、ステップS3に戻り、それ以降の処理が繰り返される。GOPの最後であるとき、ステップS2の処理に戻り、それ以降の処理が繰り返される。
【0091】
以上Qスケール値の下限値を、直前のフレームでのQスケール値を用いて制御する場合について説明したが、ユーザが、入力装置21を操作し、フレームコンプレキシティ演算装置23から入力されるフレームコンプレキシティC、アクティビティ演算装置24から入力されるアクティビティA、または、残差演算装置25から入力されるBdを選択した場合、CPU22がそれぞれの選択に応じてスイッチ23a乃至25aを切り替えて、それぞれの下限値Thを情報制御器15に出力し、それに基づいて、図5のステップS6の処理が実行される。
【0092】
以上においては、Qスケール値の下限値の設定をユーザによって選択的に実行してきたが、それぞれの下限値Thを演算し、下限値としてもっとも大きな値、または、もっとも小さな値を選択し、下限値を設定することにより、圧縮率優先の圧縮とするか画質優先の圧縮とするかを選択できるようにしてもよい。
【0093】
Qスケール値の下限値の制御以外の動作は、図1の場合と基本的に同様であるので、ここでは省略する。
【0094】
次に、図6を参照して、上述した一連の処理を実行するプログラムをコンピュータにインストールし、コンピュータによって実行可能な状態とするために用いられる媒体について説明する。
【0095】
プログラムは、図6(A)に示すように、画像圧縮装置31に内蔵されている記録媒体としてのハードディスク32あるいはメモリ33に予めインストールした状態でユーザに提供することができる。
【0096】
あるいはまた、プログラムは、図6(B)に示すように、フロッピーディスク41、CD-ROM(Compact Disk-Read Only Memory)42、MO(Magneto-Optical)ディスク43、DVD(Digital Versatile Disk)44、磁気ディスク45、半導体メモリ46などの記録媒体に、一時的あるいは永続的に格納し、パッケージソフトウェアとして提供することができる。
【0097】
さらに、プログラムは、図6(C)に示すように、ダウンロードサイト51から、無線で衛星52を介して、画像圧縮装置53に転送したり、ローカルエリアネットワーク、インターネットといったネットワーク61を介して、有線または無線で画像圧縮装置53に転送し、画像圧縮装置53において、内蔵するハードディスクなどにダウンロードさせるようにすることができる。
【0098】
本明細書における媒体とは、これら全ての媒体を含む広義の概念を意味するものである。
【0099】
また、本明細書において、媒体により提供されるプログラムを記述するステップは、経時的な要素を含む処理だけでなく、並列的あるいは個別に実行される処理も含むものである。
【0100】
【発明の効果】
請求項1に記載の画像圧縮装置、請求項2に記載の画像圧縮方法、および請求項3に記載の媒体によれば、同じピクチャタイプの直前のフレームのQスケール値の平均値に対応する値、フレーム毎の高域成分に対応する値、マクロブロック毎の高域成分に対応する値、または動き補償を行うフレームの残差成分に対応する値を演算し、演算した結果の最小値、および最大値からQスケール値の下限値を選択し、演算結果とするようにしたので、極端に小さなQスケール値の発生を防止し、過多の情報を割り当てられるブロックの発生を抑え、画面全体にわたって情報配分が適正に行われるようになる。さらに、下限値として最小値または最大値を求めるようにすることで、必要に応じて圧縮優先の圧縮とするか、画質有線の圧縮とするかを選択して圧縮することが可能となる。
【図面の簡単な説明】
【図1】従来の画像圧縮装置の構成例を示すブロック図である。
【図2】量子化マトリクスのデフォルト値を示す図である。
【図3】 Qスケール値とQスケールコードの関係を示す図である。
【図4】本発明を適用した画像圧縮装置の構成例を示すブロック図である。
【図5】図4の情報制御器の処理を説明するフローチャートである。
【図6】媒体を説明する図である。
【符号の説明】
1 画像入力装置,4 DCT器,5 量子化器,6 可変長符号化器,7 逆量子化器,8 逆DCT器,11 フレームメモリ,12 動き検出器,13 動き補償器,14 バッファ,15 情報制御器,21 入力装置,22 CPU,23 フレームコンプレキシティ演算装置,24 アクティビティ演算装置,25 残差演算装置
Claims (3)
- 画像データを圧縮する画像圧縮装置において、
画像データを入力する入力手段と、
前記入力手段により入力された画像データのマクロブロック単位のQスケール値を演算する第1の演算手段と、
同じピクチャタイプの直前のフレームの前記Qスケール値の平均値に対応する値、フレーム毎の高域成分に対応する値、マクロブロック毎の高域成分に対応する値、または動き補償を行うフレームの残差成分に対応する値を演算し、演算した結果の最小値、および最大値から前記Qスケール値の下限値を選択し、演算結果とする第2の演算手段と、
前記第1の演算手段により演算されたQスケール値と、前記第2の演算手段により演算された下限値とを比較する比較手段と、
前記比較手段の比較結果に基づいて、前記下限値よりも前記Qスケール値が小さい場合、前記Qスケール値を前記下限値に制限する制限手段と
を含むことを特徴とする画像圧縮装置。 - 画像データを圧縮する画像圧縮装置の画像圧縮方法において、
画像データを入力する入力ステップと、
前記入力ステップの処理で入力された画像データのマクロブロック単位のQスケール値を演算する第1の演算ステップと、
同じピクチャタイプの直前のフレームの前記Qスケール値の平均値に対応する値、フレーム毎の高域成分に対応する値、マクロブロック毎の高域成分に対応する値、または動き補償を行うフレームの残差成分に対応する値を演算し、演算した結果の最小値、および最大値から前記Qスケール値の下限値を選択し、演算結果とする第2の演算ステップと、
前記第1の演算ステップの処理で演算されたQスケール値と、前記第2の演算ステップの処理で演算された下限値とを比較する比較ステップと、
前記比較ステップの処理の比較結果に基づいて、前記下限値よりも前記Qスケール値が小さい場合、前記Qスケール値を前記下限値に制限する制限ステップと
を含むことを特徴とする画像圧縮方法。 - 画像データを圧縮する画像圧縮装置を制御するコンピュータに、
画像データを入力する入力ステップと、
前記入力ステップの処理で入力された画像データのマクロブロック単位のQスケール値を演算する第1の演算ステップと、
同じピクチャタイプの直前のフレームの前記Qスケール値の平均値に対応する値、フレーム毎の高域成分に対応する値、マクロブロック毎の高域成分に対応する値、または動き補償を行うフレームの残差成分に対応する値を演算し、演算した結果の最小値、および最大値から前記Qスケール値の下限値を選択し、演算結果とする第2の演算ステップと、
前記第1の演算ステップの処理で演算されたQスケール値と、前記第2の演算ステップの処理で演算された下限値とを比較する比較ステップと、
前記比較ステップの処理の比較結果に基づいて、前記下限値よりも前記Qスケール値が小さい場合、前記Qスケール値を前記下限値に制限する制限ステップと
を含む処理を実行させるプログラムが格納されているプログラム格納媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP13669699A JP4110345B2 (ja) | 1999-05-18 | 1999-05-18 | 画像圧縮装置および方法、並びにプログラム格納媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP13669699A JP4110345B2 (ja) | 1999-05-18 | 1999-05-18 | 画像圧縮装置および方法、並びにプログラム格納媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000333182A JP2000333182A (ja) | 2000-11-30 |
JP4110345B2 true JP4110345B2 (ja) | 2008-07-02 |
Family
ID=15181346
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP13669699A Expired - Fee Related JP4110345B2 (ja) | 1999-05-18 | 1999-05-18 | 画像圧縮装置および方法、並びにプログラム格納媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4110345B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4539028B2 (ja) * | 2003-05-14 | 2010-09-08 | ソニー株式会社 | 画像処理装置および画像処理方法、記録媒体、並びに、プログラム |
US9854275B2 (en) | 2011-06-25 | 2017-12-26 | Qualcomm Incorporated | Quantization in video coding |
-
1999
- 1999-05-18 JP JP13669699A patent/JP4110345B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2000333182A (ja) | 2000-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4256574B2 (ja) | 画像信号符号化方法および画像信号符号化装置 | |
US5731837A (en) | Quantization circuitry as for video signal compression systems | |
JP3773585B2 (ja) | 画像符号化装置 | |
US7136531B2 (en) | Image encoder, image encoding method, image encoding computer program, and storage medium | |
US7388995B2 (en) | Quantization matrix adjusting method for avoiding underflow of data | |
JP2003037843A (ja) | 画像処理装置および方法、記録媒体、並びにプログラム | |
JP4908943B2 (ja) | 画像符号化装置及び画像符号化方法 | |
US7451080B2 (en) | Controlling apparatus and method for bit rate | |
JP2004274236A (ja) | 符号化装置および符号化方法、プログラム、並びに記録媒体 | |
JP2000197049A (ja) | 動画像可変ビットレート符号化装置および方法 | |
JP2002094989A (ja) | ビデオ信号符号化装置及びビデオ信号符号化方法 | |
JPH10164577A (ja) | 動画像符号化装置 | |
JPWO2002080567A1 (ja) | 画像信号量子化装置およびその方法 | |
JP4110345B2 (ja) | 画像圧縮装置および方法、並びにプログラム格納媒体 | |
JP3681828B2 (ja) | 画像データの符号量制御方法およびその装置 | |
JP2734905B2 (ja) | 画像符号化装置 | |
JP3151173B2 (ja) | 画像圧縮符号化装置及び方法 | |
JP3858520B2 (ja) | 動画像符号化装置及びその方法 | |
JP3812269B2 (ja) | 動画像符号化装置及びその方法 | |
JP2001078193A (ja) | 動画像圧縮符号化信号変換方法および装置 | |
JPH06165152A (ja) | 画像圧縮符号化装置 | |
JPH04329089A (ja) | 動画像符号化装置 | |
JP3800965B2 (ja) | データレート変換装置 | |
JP3918208B2 (ja) | 映像データ圧縮装置およびその方法 | |
JP4594561B2 (ja) | 符号化装置及び符号化プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060221 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070926 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071004 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071121 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20071212 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080212 |
|
A911 | Transfer of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20080225 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20080312 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080325 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110418 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110418 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120418 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |