(57)【要約】【課題】メモリ容量などの資源が少ない場合にも対応可能な画像の再圧縮手段を提供する。【解決手段】画像を符号化するための方法、システム、コンピュータプログラムに関する。１つの態様では、量子化周波数領域ベクトル(50)が画像(34)の一連のブロック(32)から順次生成される。量子化周波数領域ベクトル(50)の各々は、それぞれの画像ブロック(32)から得られる１組の量子化順方向変換係数(48)を含む。一連の量子化周波数領域ベクトル(50)の各々について、バッファ(38)の現在の入力容量レベルが判定され、現在の入力容量レベルが規定の閾値を下回ると判定されたときには、圧縮率を上げるために量子化周波数領域ベクトル(50)を変更する。変更された量子化周波数領域ベクトル(50)及び変更されていない量子化周波数領域ベクトル(50)を符号化して一連の符号化された画像ブロック(36)を生成する。一連の符号化された画像ブロック(36)はバッファ(38)に格納される。【選択図】図２
2006141018.tif 000002
【特許請求の範囲】
【請求項１】
画像（３４）を処理する方法において、
前記画像（３４）の一連のブロック（３２）から量子化周波数領域ベクトル（５０）を順次生成するステップであって、各量子化周波数領域ベクトル（５０）は、それぞれの画像ブロック（３２）から得られた一組の量子化順方向変換係数を含むことからなる、ステップと、
連続する量子化周波数領域ベクトル（５０）毎に、バッファ（３８）の現在の入力容量レベルを判定し、該現在の入力容量レベルが規定の閾値を下回ると判定された場合に、圧縮率を上げるために前記量子化周波数領域ベクトル（５０）を変更するステップと、
変更された量子化周波数領域ベクトル（５０）および変更されていない量子化周波数領域ベクトル（５０）を符号化して、一連の符号化された画像ブロック（３６）を生成するステップと、
前記一連の符号化された画像ブロック（３６）を前記バッファ（３８）に格納するステップ
を含む、方法。
【請求項２】
現在の入力容量レベルを判定する前記ステップは、目標使用済みメモリレベルを基準として前記バッファ（３８）内の現在の使用済みメモリ量を判定するステップを含む、請求項１に記載の方法。
【請求項３】
現在の入力容量レベルを判定する前記ステップは、前記バッファ（３８）内の現在の空きメモリ量を判定するステップを含む、請求項１に記載の方法。
【請求項４】
量子化周波数領域ベクトル（５０）を変更する前記ステップは、前記量子化周波数領域ベクトル（５０）の圧縮率を、前記現在の入力容量レベルと前記既定の閾値との間の分離度とともに増加する量だけ上げるステップを含む、請求項１に記載の方法。
【請求項５】
量子化周波数領域ベクトル（５０）を変更する前記ステップは、周波数に関するカットオフ係数を上回る一組の前記量子化順方向変換係数を特定し、該特定した一組の係数の係数値を低減するステップを含む、請求項１に記載の方法。
【請求項６】
画像（３４）を処理するシステム（３０）であって、
前記画像（３４）の一連のブロック（３２）から周波数領域ベクトル（４８）を順次生成するように構成された順変換モジュール（４０）であって、各周波数領域ベクトル（４８）が、それぞれの画像のブロック（３２）から得られた一組の順方向変換係数を含むことからなる、順変換モジュール（４０）と、
該順変換モジュール（４０）によって生成された前記周波数領域ベクトル（４８）から量子化周波数領域ベクトル（５０）を順次生成するように構成された量子化モジュール（４２）と、
連続する量子化周波数領域ベクトル（５０）毎に、バッファ（３８）の現在の入力容量レベルを判定し、該現在の入力容量レベルが規定の閾値を下回ると判定された場合に、圧縮率を上げるために前記量子化周波数領域ベクトル（５０）を変更するように構成された動的圧縮調整モジュール（４４）と、
変更された量子化周波数領域ベクトル（５０）および変更されていない量子化周波数領域ベクトル（５０）を符号化して一連の符号化された画像ブロック（３６）を生成し、該一連の符号化された画像ブロック（３６）を前記バッファ（３８）に格納するように構成された符号化モジュール（４６）
を備える、画像を処理するシステム。
【請求項７】
前記動的圧縮調整モジュール（４４）は、目標使用済みメモリレベルを基準として前記バッファ（３８）内の現在の使用済みメモリ量を判定するように構成される、請求項６に記載のシステム。
【請求項８】
前記動的圧縮調整モジュール（４４）は、前記バッファ（３８）内の現在の空きメモリ量を判定するように構成される、請求項６に記載のシステム。
【請求項９】
前記動的圧縮調整モジュール（４４）は、前記量子化周波数領域ベクトル（５０）の圧縮率を、前記現在の入力容量レベルと前記既定の閾値との間の分離度とともに増加する量だけ上げるように構成される、請求項６に記載のシステム。
【請求項１０】
前記動的圧縮調整モジュール（４４）は、周波数に関するカットオフ係数を上回る一組の量子化順方向変換係数を特定し、該特定した一組の係数の係数値を低減するように構成される、請求項６に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像処理技術に関し、特に、画像圧縮技術に関する。
【背景技術】
【０００２】
デジタルカメラ、携帯電話および携帯情報端末のような携帯型電子機器では通常、画像処理に回すことのできるメモリ資源、処理資源、および電力資源が限られた量しかないため、こうした機器に撮像装置を組み込むことは特に難しい。メモリ制約を満たすために、携帯型電子機器用の撮像装置は通常、画像を格納する前に（例えばＪＰＥＧ圧縮方式で）圧縮するイメージプロセッサを備える。ほとんどの画像圧縮法では、画像の見た目を大きく損なうことを回避しながら、画像を表現するために必要なデータ量を低減するために、特定の画像データが選択的に廃棄される。一般に、画像圧縮プロセスの圧縮レベルは画像の内容により異なる。例えば、細部の少ない画像は、細部の多い画像よりも大幅に圧縮することができる。同様に、画像の或る領域が他の領域よりも大幅に圧縮される場合がある。
【０００３】
ＪＰＥＧ画像圧縮法に例示されるような変換符号化は、画像を一組の変換係数で表現することを伴う。変換係数は、画像を表現するために必要なデータ量を低減するために個別に量子化される。原画像の表現は、変換係数に逆変換を適用することによって生成される。ブロック変換符号化は、一般的なタイプの変換符号化方法である。通常のブロック変換符号化プロセスにおいて、画像は、小さな矩形領域（すなわち「ブロック」）に分割されて、順変換操作、量子化操作、および符号化操作が行われる。ブロックの符号化には多くの異なる種類のブロック変換を用いることができる。一般的なタイプのブロック変換には、コサイン変換（最も一般的である）、フーリエ変換、アダマール変換、およびハールウェーブレット変換がある。これらの変換は、Ｍ×Ｎの画像データブロックからＭ×Ｎの変換係数アレイを生成する。ここで、ＭおよびＮは少なくとも１の整数である。
【０００４】
取り込んだ画像を圧縮形式で格納することに加えて、デジタルカメラのなかには、取り込んだ画像の解像度を低くしたものに相当する圧縮されたサムネール画像を格納するものもある。これらのデジタルカメラの多くは、これらの圧縮されたサムネール画像にビットバジェット制約（bit budget constraint）を課す。これらのビットバジェット制約を満たすために、デジタルカメラシステムのなかには、サムネール画像の非ゼロの離散コサイン変換（ＤＣＴ）係数のうち選択されたものを、その値に関係なくゼロに設定するものもある。これらのＤＣＴ係数を選択するプロセスは、周波数の最も高い係数から始まって周波数の低い係数へと進み、圧縮された画像のサイズ（以下、圧縮された画像を圧縮画像ともいう）が最大ビットバジェット未満になるまで続けられる。この手法では、ＤＣＴ係数データを通過するパスの回数は、ビットバジェット、元の圧縮画像サイズ、および画像の内容に依存する。
【０００５】
別の手法では、値が閾値よりも小さく、かつカットオフ順序数（cutoff ordinal number）の後に出現する全てのＤＣＴ係数をゼロに設定することによって、ビットバジェットを満たすように既存のＪＰＥＧファイル（または一組のＤＣＴ係数）のサイズを低減する。この手法では、カットオフ順序数は、カットオフ順序数の漸進的な減少毎に節約されるビット数を追跡し、既存のファイルサイズを要求されたビットバジェットと比較することによって決められる。この手法は、ＤＣＴ係数データを通過する２回のパスを必要とする。すなわち、１回目のパスではビット数の節約を判定し、２回目のパスでは特定の係数をゼロに設定する。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
用途環境（例えばカメラ付き携帯電話）によっては、コスト制約により、画像データに対して複数回のパスを実施するのに十分なメモリ資源、処理資源、および電力資源を備えることができない場合がある。したがって、圧縮画像のサイズを低減するための上述の方法は、これらのタイプの用途環境には最適でない。
【課題を解決するための手段】
【０００７】
本発明は一態様において画像処理方法に関する。本発明のこの方法によれば、量子化周波数領域ベクトル（量子化された周波数領域のベクトルのこと）が一連の画像ブロック（以下、一連の画像ブロックを、画像ブロックシーケンスともいう）から順次生成される。各量子化周波数領域ベクトルは、それぞれの画像ブロックから導出された一組の量子化順方向変換係数（または、量子化順変換係数ともいう）を含む。連続する量子化周波数領域ベクトル毎に、バッファの現在の入力容量レベルが判定されるとともに、現在の入力容量レベルが規定の閾値を下回ると判定された場合に、圧縮率を上げるように量子化周波数領域ベクトルが変更される。変更された量子化周波数領域ベクトルおよび変更されない量子化周波数領域ベクトルが符号化されて、一連の符号化された画像ブロック（以下、一連の符号化された画像ブロックを、符号化画像ブロックシーケンスともいう）が生成される。符号化画像ブロックシーケンスはバッファに格納される。
【０００８】
本発明はまた、上述の画像処理方法を実施するためのシステムおよびコンピュータプログラムに関する。
【０００９】
本発明の他の特徴および利点は、図面および特許請求の範囲を含め、以下の説明から明らかとなるだろう。
【実施例】
【００１０】
以下の説明では、同様の要素には同じ参照番号を付して要素を特定している。さらに、図面は、例示的な実施形態の主要な特徴を図式的に示すことを意図している。図面は、実際の実施形態の全ての特徴を示すことを意図したものではなく、また、図示の要素の相対的な寸法を正確なスケールで描くことも意図されていない。
【００１１】
図１は、ＪＰＥＧ圧縮形式に従って画像１０を圧縮する従来技術の方法を示す。この方法によれば、事前に選択された色空間において原画像１０が未だ指定されていない場合、この事前に選択された輝度に基づく色空間（例えばＹＣｒＣｂ色空間）に原画像１０を変換する（ブロック１２）。事前に選択された色空間における画像の各色平面（カラープレーン）は、以下のように個別に処理されるそれぞれの画像（すなわち画素値アレイ）に対応する。色成分（例えばＣｒ色成分およびＣｂ色成分）をダウンサンプリングする（ブロック１４）。各色平面を画素ブロック（例えば８×８の画素ブロック）に分割する（ブロック１６）。ＤＣＴブロック変換を各画素ブロックに個別に適用する（ブロック１８）。その結果得られたＤＣＴ係数を量子化する（ブロック２０）。量子化された変換係数を、ロスレス（無損失）符号化技法を用いて符号化し、圧縮画像２２を生成する（ブロック２４）。
【００１２】
上記の背景技術の項で説明したように、従来技術の画像圧縮手法のなかには、ビットバジェット制約を満たすために、いくつかのＤＣＴ係数の値をゼロに設定するものもある。しかし、これらの方法は、変換係数データを通過する複数回のパスを必要とするため、メモリ資源および処理資源の制約が厳しい用途には最適でない。一方、以下で詳述される実施形態は、圧縮画像データを格納するために使用されるバッファの現在の入力容量レベルに基づいて符号化プロセスの圧縮レベルを動的に調整する。こうして、これらの実施形態を、必要とされるメモリ資源、処理資源、および電力資源がより少ない効率的なシリアル画像処理パイプラインによって実施することができる。さらに、これらの実施形態の実施（または実装）により、画像の異なる領域の圧縮レベルが動的に変化する。こうして、これらの実施は、追加資源が利用できるようになったときにその資源を有利に使用することができる。例えば、これらの実施は、バッファの現在の入力容量が規定の目標レベルよりも大きいとき（例えば、１つまたは複数の効率的に圧縮された画像領域が処理されバッファに格納された後）は、画像領域において低圧縮（すなわちデータ損失が少ない）を使用してもよい。
【００１３】
図２は、入力画像３４のブロックシーケンス（すなわち、一連の入力画像ブロック）３２を、バッファ３８に格納される符号化画像ブロックシーケンス（すなわち、一連の符号化された画像ブロック）３６に変換するように構成された画像処理システム３０の一実施形態を示す。入力画像３４は、２値画像（例えば暗いドットと明るいドットのパターン）であっても、マルチレベル単色画像（例えばグレーレベル画像）であっても、マルチレベル多色画像であってもよい。一般に、画像処理システム３０は、入力画像３４の各色平面を個別に処理する。
【００１４】
画像処理システム３０は、順変換モジュール４０と、量子化モジュール４２と、動的圧縮調整モジュール４４と、符号化モジュール４６とを含む。一般に、画像処理システム３０のモジュール４０〜４６は、いかなる特定のハードウェアまたはソフトウェア構成にも限定されず、デジタル電子回路内またはコンピュータハードウェア、ファームウェア、デバイスドライバ、あるいはソフトウェア内の環境を含む任意のコンピューティング環境または処理環境において実施されることができる。例えば、いくつかの実施例では、これらのモジュール４０〜４６を、デスクトップコンピュータおよびワークステーションコンピュータ、デジタルスチルカメラ、デジタルビデオカメラ、プリンタ、スキャナ、ならびに携帯型電子機器（例えば、携帯電話、ラップトップコンピュータおよびノートブックコンピュータ、ならびに個人情報端末）を含む多種多様なデジタルおよびアナログ電子機器のうちの任意の１つのハードウェアに埋め込んでもよい。
【００１５】
図９は、電子機器への画像処理システム３０の組み込みを容易にするカメラモジュール９０の例示的な一実施形態を示す。カメラモジュール９０は、レンズアセンブリ９４、イメージセンサ９６（例えば、ＣＣＤイメージセンサまたはＣＭＯＳイメージセンサ）、および画像処理システム３０を収容するハウジング９２を含む。
【００１６】
再び図２を参照すると、動作時において、入力画像３４をＮ個の画像ブロックからなるシーケンス３２に分割する。ここで、Ｎは正の整数値を持つ。いくつかの実施例では、入力画像３４は、画像処理システム３０に組み込むことも組み込まないことも可能なラスタ−ブロック変換器によって８×８画素の画像ブロックに分解される。
【００１７】
順変換モジュール４０は、画像ブロックシーケンス３２から周波数領域ベクトルシーケンス４８を計算する。各周波数領域ベクトルは、Ｎ個の画像ブロック３２のそれぞれから導出されたそれぞれ一組の変換係数を含む。周波数領域ベクトルの係数は、以下のように、周波数領域変換Ｄを画像ブロックに適用することによって計算される。
Ｂ＝ＤＸＤＴ                                                      （１）
ここで、Ｘは画像ブロック３２に対応し、ＤＴは変換Ｄの転置に対応し、Ｂは周波数領域ベクトル４８を形成する画像ブロックＸの変換係数に対応する。
【００１８】
画像ブロック３２には任意の種類のブロック変換を適用することができる。例示的なタイプのブロック変換には、コサイン変換、フーリエ変換、アダマール変換、およびハールウェーブレット変換がある。いくつかの実施例では、Ｄは離散コサイン変換（ＤＣＴ）のようなブロックベースの線形変換である。１次元では、以下の８×８行列によってＤＣＴ変換を小数第４位まで与える。
【００１９】
【数１】
2006141018.tif 000003
【００２０】
いくつかの他の実施例では、Ｄはウェーブレットに基づく分解変換である。これらの実施例の１つでは、例えば、Ｄは、１次元（１Ｄ）シーケンス（例えば画像の列）を、それぞれがサンプル数の半分を有する２つのシーケンス（サブバンドと呼ばれる）に分解する順方向の離散ウェーブレット変換（ＤＷＴ）である。この実施例では、１Ｄシーケンスを以下の手順に従って分解することができる。すなわち、１Ｄシーケンスを解析フィルタバンクによって別個にローパスフィルタリングおよびハイパスフィルタリングし、フィルタリングした信号を２分の１にダウンサンプリングして、ローパスサブバンドおよびハイパスサブバンドを形成する。
【００２１】
量子化モジュール４２は、順変換モジュール４０によって生成される周波数領域ベクトル４８の係数を量子化して、量子化周波数領域ベクトルシーケンス５０を生成する。このプロセスでは、一組の量子化順方向変換係数（ｃｉ）を含む量子化周波数領域ベクトル５０は、それぞれの周波数領域ベクトル４８の対応する変換係数（ｙｉ）を、次の式（３）に従ってステップ幅（ｑｉ）で一様に量子化することによって生成される。
ｃｉ＝ｒｏｕｎｄ（ｙｉ／ｑｉ）                                          （３）
（ｒｏｕｎｄ（ｙｉ／ｑｉ）とは、一般に、（ｙｉ／ｑｉ）の結果を丸め処理（切り捨て処理など）する演算を表す）。ステップ幅ｑｉは、圧縮画像データとともに格納される量子化テーブルまたは行列に格納される。いくつかの実施例では、各周波数領域ベクトル４８および各量子化周波数領域ベクトル５０は、図３に示すジグザグシーケンスに編成される６４個の係数（ｉ＝０，１，．．．，６３）を含む。ここで、それぞれの枠の中の数字は係数の指数（インデックス）（ｉ値）に対応する。これらの実施形態では、指数０はＤＣ係数に対応し、残りの指数（１〜６３）はＡＣ係数に対応し、ＡＣ係数は、ＡＣ周波数が最も低いもの（ｉ＝１）からＡＣ周波数が最も高いもの（ｉ＝６３）へと順番に並べられる。
【００２２】
図４は、画像処理システム３０によって実施される画像処理方法の一実施形態を示す。この方法では、順変換モジュール４０および量子化モジュール４２は、上述のように、入力画像３４のブロックシーケンスから量子化周波数領域ベクトルを順次生成する（ブロック５１）。
【００２３】
処理することのできる量子化周波数領域ベクトル５０がある場合（ブロック５２）、動的圧縮調整モジュール４４がバッファ３８の現在の入力容量レベルを判定する（ブロック５４）。量子化周波数領域ベクトル５０を全て処理し終わった場合（ブロック５２）、プロセスは終了する（ブロック５５）。
【００２４】
いくつかの実施例では、バッファ３８は、画像処理システム３０によって生成された圧縮画像データ全体を格納するように設計される。バッファ３８の固定されたメモリ容量により、画像処理システム３０が所与の入力画像３４について生成する全ての符号化された画像ブロック（以下、符号化された画像ブロックを符号化画像ブロックともいう）３６を格納するために必要な領域（空間）の合計に上限が設定される。これらの実施例では、動的圧縮調整モジュール４４が、符号化モジュール４６によって生成される符号化画像ブロック３６の格納に使用されているバッファ領域の累積量を追跡し、追跡した累積バッファ領域量を目標累積バッファ領域レベルと比較する。目標累積バッファ領域レベルは、処理された画像ブロック３２の数とともに増加する。動的圧縮調整モジュール４４は、符号化モジュール４６から出力される各符号化画像ブロック３６のサイズを監視することによって、または、バッファ３８に現在の使用領域量を問い合わせることによって累積バッファ領域量を追跡することができる。
【００２５】
図５に示すように、いくつかの実施例では、目標累積バッファ領域レベル５６は、バッファ３８に現在格納されている符号化画像ブロック３６の数とともに線形的に増加する。バッファ３８の現在の入力容量レベルは、目標累積バッファ領域レベル５６と実際の累積バッファ領域量との差に対応（または一致）する。実際の使用済みバッファ領域量が目標累積バッファ領域レベル５６よりも小さい場合（例えば図５に示す例ではＬ個のブロックを処理した後）、現在の入力容量レベルは正である。実際の使用済みバッファ領域量が目標累積バッファ領域レベル５６よりも大きい場合（例えば図５に示す例ではＭ個のブロックを処理した後）、現在の入力容量レベルは負である。
【００２６】
図６を参照すると、いくつかの他の実施例では、バッファ３８は循環式バッファ５７（例えばＦＩＦＯバッファ）によって実施される。循環式バッファでは、新たなデータサンプルが以前のデータサンプルに上書きされる間にポインタがデータを移動する。新たなデータサンプルは、フィルポインタ（fill pointer。または、書き込みポインタ）５８が指し示す位置に書き込まれる。新たなデータサンプルが書き込まれる度に、フィルポインタ５８がインクリメントされる。データサンプルは、エンプティポインタ（empty pointer。または、読み出しポインタ）６０が指し示す位置から読み出される。各データサンプルを読み出した後、エンプティポインタ６０がインクリメントされる。フィルポインタ５８が折り返してエンプティポインタ６０に追い着くと、バッファのオーバーフローエラーが生じ、通常はデータサンプルの取得が停止する。これらの実施形態では、バッファのオーバーフローエラーを防ぐために、動的圧縮調整モジュール４４が循環式バッファ５７内の現在の空きメモリ量を追跡する。現在の空きメモリ量は、循環式バッファ５７の現在の入力容量レベルに対応（または一致）する。いくつかの実施例では、動的圧縮調整モジュール４４は、循環式バッファ５７の全メモリ容量と現在の使用済み領域量との差を計算することによって現在の入力容量レベルを計算する。現在の使用済み領域量は、現在のエンプティポインタのアドレスと現在のフィルポインタのアドレスとの差を計算することによって判定することができる。
【００２７】
再び図４を参照すると、バッファ３８の現在の入力容量を判定した後（ブロック５４）、動的圧縮調整モジュール４４がバッファ３８の現在の入力容量レベルを規定の閾値と比較する（ブロック６２）。一般に、規定の閾値は実験的に求めることができる。バッファ３８が、画像処理システム３０によって生成される圧縮画像データ全体を格納するように設計される実施例では、規定の閾値はゼロであってもよい。すなわち、これらの実施例では、動的圧縮調整モジュール４４は、実際の累積バッファ領域量が現在の目標累積バッファ領域レベルよりも大きい場合にのみ、現在の量子化周波数領域ベクトル５０を変更する。バッファ３８が循環式バッファによって実施される実施例では、規定の閾値は、実験的に求められた循環式バッファの全メモリ容量の一部（または、ある割合）に相当（または一致）してもよい。
【００２８】
現在の入力容量レベルが規定の閾値以上である場合（ブロック６２）、動的圧縮調整モジュール４４は、現在の量子化周波数領域ベクトル５０を変更しない。その代わりに、動的圧縮調整モジュール４４は単に、変更されていない現在の量子化周波数領域ベクトル５０を、符号化（ブロック６８）のために符号化モジュール４６に渡す。
【００２９】
現在の入力容量レベルが規定の閾値よりも低い場合（ブロック６２）、動的圧縮調整モジュール４４は、圧縮率を上げるために現在の量子化周波数領域ベクトル５０を変更する（ブロック６４）。具体的には、動的圧縮調整モジュール４４は、周波数に関するカットオフ係数（または、周波数カットオフ係数）を上回る量子化周波数領域ベクトルの全ての係数（すなわち、指数がカットオフ係数の指数よりも高い係数）に対応する選択された一組の係数の係数値を低減する。
【００３０】
再び図２を参照すると、動的圧縮調整モジュール４４は、ルックアップテーブル６６に照会してカットオフ係数を特定する。ルックアップテーブル６６は、現在の入力容量レベルと規定の閾値との差をカットオフ周波数係数の係数番号にマッピングする。一般に、特定のルックアップテーブルにおける、現在の入力容量レベルと規定の閾値との差の、カットオフ係数へのマッピングは実験的に決めることができる。
【００３１】
図７は、値が低減されることになる係数の数が、現在の入力容量レベルが規定の閾値を下回る程度とともに増加する量だけ増加する例示的なマッピングを示す。こうして、現在の量子化周波数領域ベクトル５０の圧縮率は、現在の入力容量レベルが規定の閾値を下回る程度とともに増加する量だけ増加する。いくつかの実施例では、ルックアップテーブル６６は、現在の量子化周波数領域ベクトル５０が符号化されてバッファ３８に格納された後に、バッファ３８の予期された入力容量レベルが規定の閾値レベル以下となるように、選択された量だけ、現在の量子化周波数領域ベクトル５０の圧縮率を上げるように設計される。
【００３２】
図８を参照すると、いくつかの実施例では、ルックアップテーブル６６は、現在の入力容量レベルと規定の閾値との差を、グレーで強調した限定された一組のカットオフ係数（すなわち、係数０、２、５、９、１４、２０、２７、３５、４２、４８、５３、５７、６０、６２、および６３）にマッピングする。これらのカットオフ係数はそれぞれ、入力画像３４の直交空間軸（例えばｘ軸およびｙ軸）に対して対称に分布する、周波数順に並べられたそれぞれの量子化順方向変換係数のシーケンスと関連付けられる。
【００３３】
動的圧縮調整モジュール４４は、カットオフ周波数係数を上回る係数の値を低減することによって、現在の量子化周波数領域ベクトル５０の圧縮率を上げ、それによって、符号化モジュール４６が量子化周波数領域ベクトルを圧縮する能力を高める。係数の値を、ゼロに低減しても、スケーリングファクタによって非ゼロの値に低減してもよい。スケーリングファクタは、全ての係数について同一値を有しても、低い周波数係数についてよりも高い周波数係数についてのほうが大きな値を有してもよい。
【００３４】
再び図４を参照すると、符号化モジュール４６は、動的圧縮調整モジュール４４から出力された現在の（変更されたまたは変更されていない）量子化周波数領域ベクトルを符号化して符号化画像ブロック３６を生成する（ブロック６８）。いくつかの実施例では、符号化モジュール４６は、ロスレス符号化技法を用いて現在の量子化周波数領域ベクトルを符号化する。いくつかの実施例では、符号化モジュール４６は、差分予測プロセスを用いてＤＣ係数を符号化し、ランレングス符号化プロセスを用いてＡＣ係数を符号化する。符号化モジュール４６はさらに、エントロピー符号化プロセス（例えばハフマン符号化プロセスまたは算術符号化プロセス）を用いて、量子化ＤＣ係数および量子化ＡＣ係数を符号化する。
【００３５】
現在の量子化周波数領域ベクトルの量子化順方向変換係数を符号化して画像ブロック３６を生成した後（ブロック６８）、符号化画像ブロック３６をバッファ３８に格納する（ブロック７０）。次に、このプロセスを後続の量子化周波数領域ベクトル５０について繰り返す（ブロック５２、５４、６２、６４、６８、７０）。
【００３６】
本発明は、画像を符号化するための方法、システム、コンピュータプログラムに関する。１つの態様では、量子化周波数領域ベクトル(50)が画像(34)の一連のブロック(32)から順次生成される。量子化周波数領域ベクトル(50)の各々は、それぞれの画像ブロック(32)から得られる１組の量子化順方向変換係数(48)を含む。一連の量子化周波数領域ベクトル(50)の各々について、バッファ(38)の現在の入力容量レベルが判定され、現在の入力容量レベルが規定の閾値を下回ると判定されたときには、圧縮率を上げるために量子化周波数領域ベクトル(50)を変更する。変更された量子化周波数領域ベクトル(50)及び変更されていない量子化周波数領域ベクトル(50)を符号化して一連の符号化された画像ブロック(36)を生成する。一連の符号化された画像ブロック(36)はバッファ(38)に格納される。
【００３７】
他の実施形態は特許請求の範囲に含まれている。
【００３８】
本明細書で説明したシステムおよび方法は、いずれの特定のハードウェアまたはソフトウェア構成にも限定されず、デジタル電子回路内の環境またはコンピュータハードウェア、ファームウェア、あるいはソフトウェア内の環境を含む任意のコンピューティング環境または処理環境において実施されることができる。一般に、システムは、部分的には、コンピュータプロセッサによって実行される、機械読み取り可能な記憶装置に具現化されるコンピュータ処理製品の形態で実施されることができる。いくつかの実施形態では、これらのシステムを、高度な手続き型またはオブジェクト指向型の処理言語で実施することが好ましいが、アルゴリズムは、所望であればアセンブリ言語または機械語で実施されてもよい。いずれにせよ、処理言語はコンパイルされた言語または翻訳された（すなわち、インタプリタにかけた）言語とすることができる。本明細書で説明した方法を、例えば、入力データを操作して出力を生成することによってこれらの方法を実施するために、処理モジュールに編成された命令を実行するコンピュータプロセッサによって実行することができる。
【図面の簡単な説明】
【００３９】
【図１】従来技術のＪＰＥＧ画像圧縮プロセスのフロー図である。
【図２】画像処理システムの一実施形態のブロック図である。
【図３】ある画像ブロックについて、ＪＰＥＧ画像圧縮フォーマットにしたがって、典型的なジグザグ順に配列した６４個のＤＣＴ係数を含む行列を示す図である。
【図４】図２の画像処理システムによって実施される画像処理方法の一実施形態のフロー図である。
【図５】バッファに格納された画像ブロック数の関数としてプロットした使用済みバッファ空間の目標レベルを示すグラフである。
【図６】循環式ＦＩＦＯバッファを示す図である。
【図７】バッファの現在の入力容量レベルと閾値との差をカットオフ係数の指数にマッピングしたグラフである。
【図８】図３に示す６４個のＤＣＴ係数の配置を含む、一組のカットオフ係数の指数を強調した行列を示す図である。
【図９】図２の画像処理システムを組み込んだカメラモジュールの一実施形態のブロック図である。
【符号の説明】
【００４０】
３２  画像ブロックのシーケンス
３４  画像
３８  バッファ
４０  順変換モジュール
４２  量子化モジュール
４４  動的圧縮調整モジュール
４６  符号化モジュール
５０  量子化された周波数領域のベクトル
【図１】
2006141018.tif 000004
【図２】
2006141018.tif 000005
【図３】
2006141018.tif 000006
【図４】
2006141018.tif 000007
【図５】
2006141018.tif 000008
【図６】
2006141018.tif 000009
【図７】
2006141018.tif 000010
【図８】
2006141018.tif 000011
【図９】
2006141018.tif 000012