(57)【特許請求の範囲】
【請求項１】
第１の画像データの高周波成分を積分して第１の積分値を得る高周波積分部と、
周波数特性の変化をもたらす画像処理を前記第１の画像データに対して施すことにより得られる第２の画像データについて、前記周波数特性の変化に応じて、前記高周波積分部から得た前記第１の積分値を補正して第２の積分値を得る補正部と、
前記第２の画像データが入力され、前記補正部から得た前記第２の積分値に基づいて、前記第２の画像データが圧縮された場合のバイト数を求め、求めた前記バイト数に基づいて、前記第２の画像データを一度で所定のバイト数まで圧縮するための量子化スケールを算出する量子化スケール算出部と、
前記量子化スケール算出部が算出した量子化スケールを用いて前記第２の画像データの圧縮を実行する圧縮実行部と、を備えることを特徴とする画像圧縮装置。
【請求項２】
被写体を撮像して前記第１の画像データを得る撮像部と、
前記第１の画像データに対して前記画像処理を施し、前記第２の画像データを生成する画像処理部と、をさらに備えた撮像装置であることを特徴とする請求項１に記載の画像圧縮装置。
【請求項３】
高周波積分部が、第１の画像データの高周波成分を積分して第１の積分値を得、
補正部が、周波数特性の変化をもたらす画像処理を前記第１の画像データに対して施すことにより得られる第２の画像データについて、前記周波数特性の変化に応じて、前記第１の積分値を補正して第２の積分値を得、
量子化スケール算出部が、前記第２の積分値に基づいて、前記第２の画像データが圧縮された場合のバイト数を求め、求めた前記バイト数に基づいて、前記第２の画像データを一度で所定のバイト数まで圧縮するための量子化スケールを算出し、
圧縮実行部が、算出された前記量子化スケールを用いて前記第２の画像データの圧縮を実行することを特徴とする画像圧縮方法。
【請求項４】
周波数特性の変化をもたらす画像処理を第１の画像データに対して施すことにより得られる第２の画像データを圧縮する際に、
前記第１の画像データの高周波成分を積分して第１の積分値を得、
前記周波数特性の変化に応じて、前記第１の積分値を補正して第２の積分値を得、
前記第２の積分値に基づいて、前記第２の画像データが圧縮された場合のバイト数を求め、求めた前記バイト数に基づいて、前記第２の画像データを一度で所定のバイト数まで圧縮するための量子化スケールを算出し、
算出された前記量子化スケールを用いて前記第２の画像データの圧縮を実行する処理をコンピュータに行わせることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像圧縮技術、特に、画像をＪＰＥＧ方式で圧縮する技術に関する。
【背景技術】
【０００２】
近年、画素数の膨大化や連写機能の搭載など、デジタルカメラは高機能化の一途をたどっている。そのため、撮像して得た画像を圧縮する処理の高速化が要求されている。
【０００３】
特許文献１には、ＪＰＥＧ方式で画像データを一度で所定のバイト数まで圧縮する手法が開示されている。この手法は、まず、画像データの高周波成分を積分して得た積分値に基づいて、該画像データが圧縮された場合のバイト数を算出し、算出したバイト数に基づいて、該画像データを一度で上記所定のバイト数まで圧縮するための量子化スケールを算出する。そして、算出された量子化スケールに基づいて上記画像データの圧縮に用いられる量子化テーブルを作成し、作成した量子化テーブルで該画像データを圧縮する（請求項１）。
【０００４】
なお、量子化スケールは、Ｑスケール、Ｑ値とも呼ばれ、ＪＰＥＧ方式で圧縮する際に使用される量子化テーブル（ＱテーブルやＤＱＴなど）の算出に用いられるものであり、１から１００までの値である。Ｑスケールが小さいほど、圧縮率が高くなる。
【０００５】
また、特許文献１には、上記画像データに対して所定の画像信号処理が施された場合には、画像信号処理後の画像データを圧縮する際に、画像信号処理後の画像データから高周波成分を積分することが開示されている（請求項４）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００３−１９９０１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
近年のデジタルカメラは、撮像して得たオリジナルの画像に対して様々な画像処理を施すようになっている。例えば、「美肌モード」や「夜景モード」などを備えたデジタルカメラは、オリジナル画像に対してこれらのモードに応じた画像処理を施してからメモリカードなどの記録媒体に記録する。また、特に携帯電話機に付属されたデジタルカメラでは、オリジナル画像に対して、撮像者が確認するための表示用、保存用、サムネイル用の複数の異なるサイズの画像を得るリサイズ処理が行われている。
【０００８】
上記種々の画像処理が画像の周波数特性に変化をもたらすため、オリジナル画像に対してこれらの画像処理を施して得た画像を圧縮する際に、特許文献１に記載された手法のように、オリジナル画像に対して画像処理を施して得た画像毎に、高周波成分の積分、量子化スケールの算出などを行うことが考えられる。
【０００９】
しかし、オリジナル画像に対して複数の異なる画像処理を施して得た複数の画像夫々に高周波成分を積分するのでは、処理時間がかかるという問題がある。
【００１０】
本発明は、上記事情に鑑みてなされ、画像の圧縮を高速に行える技術を提供する。
【課題を解決するための手段】
【００１１】
本発明の１つの態様は、周波数特性の変化をもたらす画像処理を第１の画像データに対して施すことにより得られる第２の画像データを圧縮する方法である。この方法は、第１の画像データの高周波成分を積分して第１の積分値を得、画像処理がもたらす周波数特性の変化に応じて、第１の積分値を補正して第２の積分値を得る。そして、第２の積分値に基づいて、第２の画像データが圧縮された場合のバイト数を求め、求めたバイト数に基づいて、第２の画像データを一度で所定のバイト数まで圧縮するための量子化スケールを算出し、算出された量子化スケールを用いて第２の画像データの圧縮を実行する。
【００１２】
なお、上記態様の方法をシステムや装置などに置き換えて表現したものや、上記方法をコンピュータに実行せしめるプログラムなども、本発明の態様としては有効である。
【発明の効果】
【００１３】
本発明にかかる技術によれば、画像の圧縮を高速にできる。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施の形態にかかるデジタルカメラを示す図である。
【図２】図１に示すデジタルカメラにおける高周波積分部が用いるフィルタの例を示す図である。
【図３】図１に示すデジタルカメラにおける補正部の処理を説明するための図である。
【図４】図１に示すデジタルカメラにおけるＱスケール算出部の処理を説明するための図である（その１）。
【図５】図１に示すデジタルカメラにおけるＱスケール算出部の処理を説明するための図である（その２）。
【図６】図１に示すデジタルカメラにおける処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００１５】
説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、様々な処理を行う機能ブロックとして図面に記載される各要素は、ハードウェアは、ＣＰＵ、メモリ、その他の回路で構成することができ、ソフトウェアは、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
【００１６】
また、上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体（ｎｏｎ−ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（ｔａｎｇｉｂｌｅ  ｓｔｏｒａｇｅ  ｍｅｄｉｕｍ）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  ＰＲＯＭ）、フラッシュＲＯＭ、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００１７】
図１は、本発明の実施の形態にかかるデジタルカメラ１００を示す図である。デジタルカメラ１００は、撮像部１１０、画像処理部１２０、高周波積分部１３０、補正部１４０、エンコーダ１５０を備える。
【００１８】
撮像部１１０は、被写体を撮像して第１の画像データＰ０（以下単に画像データという）を得て、画像処理部１２０と高周波積分部１３０に出力する。
【００１９】
画像処理部１２０は、第１の画像データＰ０に対して複数の異なる画像処理を施して、複数の第２の画像データ（画像データＰ１、画像データＰ２、画像データＰ３）を得る。ここで、例として、画像処理部１２０が行う複数の画像処理は、解像度変換率（拡縮率）が異なる３つの解像度変換処理（リサイズ処理）であるとする。
【００２０】
画像処理部１２０は、第２の画像データＰ１、Ｐ２、Ｐ３をエンコーダ１５０に出力すると共に、第１の画像データＰ０から第２の画像データＰ１、Ｐ２、Ｐ３を得る際の夫々の解像度変換率Ｒ１、Ｒ２、Ｒ３を補正部１４０に出力する。
【００２１】
高周波積分部１３０は、第１の画像データＰ０の高周波成分を積分するものであり、例えば、第１の画像データＰ０から高周波成分を抽出し、抽出した高周波成分を絶対値化して絶対値を求め、求められた絶対値を積分して積分値Ｓ０を得る。
【００２２】
本実施の形態のデジタルカメラ１００において、高周波積分部１３０は、画像データＰ０から高周波数成分を抽出する際に、図２に示すオン中心型の２次元フィルタを用いる。オン中心型の２次元フィルタとは、注目画素にポジティブな係数、その周辺画素にネガティブな係数をかけたものの総和を計算するフィルタである。図２において、「Ｈ」と「Ｌ」はそれぞれ画素にかける係数であり、「Ｈ」は正の値、「Ｌ」は負の値を表す。本実施の形態において、高周波積分部１３０は、図２に示す２次元フィルタを用いて、フィルタの係数をかけた画素値の総和を中心画素の周波数成分積算値として出力する。
【００２３】
図２に示す２次元フィルタを用いることにより、水平方向と垂直方向の両方の高周波数成分を同時に求めることができる。
【００２４】
また、２次元フィルタを用いる場合、２次元フィルタの垂直方向分のライン数がメモリに格納されていれば、注目画素の周波数成分積分値を計算することができるため、高周波積分部１３０は、画像データＰ０の全てが計算用のメモリ（図示せず）に格納されるのを待たずに、画像データＰ０を計算用のメモリに格納しながら周波数成分積分値の計算ができるため、処理を高速化することができる。さらに、高周波積分部１３０における計算用のメモリも、フィルタ処理に必要な数ライン分の容量があればよいので、積分値Ｓ０を得るための計算用のメモリの容量を削減することができる。
【００２５】
補正部１４０は、画像処理部１２０により行われた各画像処理がもたらす周波数特性の変化に応じて、高周波積分部１３０から得た積分値Ｓ０を補正して、画像データＰ１、Ｐ２、Ｐ３に夫々対応する第２の積分値（Ｓ１、Ｓ２、Ｓ３）を得てエンコーダ１５０に出力する。
【００２６】
本実施の形態において、補正部１４０は、解像度変換処理時の解像度変換率と、高周波成分の積分値の変化率（以下単に「積分値変化率」という）との対応関係を示すテーブル（図示せず）を保持しており、このテーブルに基づいて積分値Ｓ０を補正する。
【００２７】
図３は、補正部１４０に保持されているテーブルの一例を示す。図３のテーブルが示すように、解像度変換率が大きくなるほど、積分値変化率が小さくなる。具体的には、画像処理が拡大処理（解像度変換率＞１）である場合には、拡大率が大きくなるほど積分値変化率が小さくなり、画像処理が縮小処理（周波数積分値変化率＜１）である場合には、縮小率が大きくなるほど（解像度変換率が小さいほど）積分値変化率が大きくなる。
【００２８】
図３に示すようなテーブルは、画像データＰ０を取得する撮像部１１０に含まれる撮像素子（図示せず）特性などに依存するが、デジタルカメラ１００の設計者により設計時に設定することや、シミュレーションなどによって取得することなどが可能である。
【００２９】
補正部１４０は、図３に示すテーブルを参照して、画像処理部１２０からの解像度変換率Ｒ１、Ｒ２、Ｒ３夫々に対応する積分値変化率を取得し、取得した積分値変化率を積分値Ｓ０に乗算することによって、積分値Ｓ１、Ｓ２、Ｓ３を得る。
【００３０】
エンコーダ１５０は、ＪＰＥＧ方式で圧縮を行うものであり、Ｑスケール算出部１５２と圧縮実行部１５４を備える。
【００３１】
Ｑスケール算出部１５２は、補正部１４０からの積分値Ｓ１、積分値Ｓ２、積分値Ｓ３に基づいて、画像データＰ１、Ｐ２、Ｐ３を一度で所定のバイト数まで圧縮するための量子化スケールＱ１、Ｑ２、Ｑ３を算出して圧縮実行部１５４に出力する。
【００３２】
具体的には、Ｑスケール算出部１５２は、まず、積分値Ｓ１に基づいて、画像データＰ１が圧縮された場合のバイト数Ｂ１を求める。
【００３３】
図４は、Ｑスケールが１００である場合に、画像の高周波成分の積分値と、該画像の圧縮後のバイト数との関係を示す。図中、横軸は１画素あたりの積分値であり、縦軸は圧縮後における１画素当たりのバイト数である。Ｑスケール算出部１５２は、図４に相当する内部データを参照して、積分値Ｓ１と、画像データＰ１の画素数とから、Ｑスケールが１００である場合における画像データＰ１の圧縮後の１画素当たりのバイト数（以下「バイト数Ｂ１」とする）を求める。
【００３４】
そして、Ｑスケール算出部１５２は、求められたバイト数Ｂ１に基づいて、画像データＰ１を一度で所定のバイト数まで圧縮するための量子化スケールＱ１を算出する。
【００３５】
図５は、画像データを圧縮時に用いられたＱスケール（横軸）と、該画像データの圧縮後の１画素当たりのバイト数（縦軸）との関係を示す。図５に示す曲線は、画像データに含まれる高周波成分の多少によって変動するものであり、高周波数成分が多くなるほど、曲線が上方、すなわち１画素当たりのバイト数/画素が増える方向にシフトし、高周波成分が少なくなるほど、曲線が下方、すなわち１画素当たりのバイト数/画素が減少する方向にシフトする。
【００３６】
Ｑスケール算出部１５２は、平均的な高周波成分を有する画像データについての、図５に示す曲線に対応する内部データを保持しており、この内部データを参照して、量子化スケールＱ１を算出する。
【００３７】
具体的には、Ｑスケール算出部１５２は、図５に示す曲線から量子化スケールＱ１を求めるために、まず、下記の式（１）に従って、図５に示す曲線における、画像データＰ１の圧縮後の１画素当たりのバイト数（以下「バイト数Ｂ２」とする）を求める。この処理は、実質的には、バイト数Ｂ１に基づいて、目標の所定のバイト数を図５に示す曲線にスケーリングする処理である。
Ｂ２≒目標の所定のバイト数×ｇ（１００）÷Ｂ１    （１）
但し，ｇ（）：図５に示す曲線に対応した、Ｑスケールをパラメータとする関数
【００３８】
次に、Ｑスケール算出部１５２は、図５に示す曲線に該当する内部データにおける、式（１）に算出したバイト数Ｂ２に対応する量子化スケールを量子化スケールＱ１として取得する。
【００３９】
Ｑスケール算出部１５２は、同様に、量子化スケールＱ２とＱ３を算出する。
【００４０】
なお、上記「所定のバイト数」は、画像データＰ１、Ｐ２、Ｐ３に対して予め設定されており、デジタルカメラ１００の仕様によっては、画像データＰ１、Ｐ２、Ｐ３について、同様の値とする場合と、それぞれ異なる値とする場合がある。
【００４１】
圧縮実行部１５４は、Ｑスケール算出部１５２が算出した量子化スケールＱ１、Ｑ２、Ｑ３を用いて、画像データＰ１、Ｐ２、Ｐ３を夫々圧縮して圧縮画像データＤ１、Ｄ２、Ｄ３を得る。
【００４２】
具体的には、圧縮実行部１５４は、量子化スケールＱ１を用いて画像データＰ１の圧縮に用いられる量子化テーブルを作成し、作成して量子化テーブルを用いて画像データＰ１を圧縮して圧縮画像データＤ１を得る。
圧縮画像データＤ２、Ｄ３についても同様な処理によって得る。
【００４３】
これらの圧縮画像データＤ１、Ｄ２、Ｄ３は、それぞれの用途に応じて後段の処理が行われる。例えば、圧縮画像データＤ１は、撮像者の確認用に表示され、圧縮画像データＤ２は、デジタルカメラ１００の図示しないメモリカードなどの記録媒体に記録され、圧縮画像データＤ３は、サムネイル画像として、圧縮画像データＤ２と共に記録媒体に記録される。
【００４４】
図６は、デジタルカメラ１００における処理の流れを示すフローチャートである。まず、高周波積分部１３０は、撮像部１１０が被写体を撮像して得た画像データＰ０の高周波成分を積分して積分値Ｓ０を得る（Ｓ１００）。そして、補正部１４０は、画像処理部１２０が画像データＰ０に対して解像度変換処理して画像データＰ１、Ｐ２、Ｐ３を得る際の解像度変換率Ｒ１、Ｒ２、Ｒ３に応じて積分値Ｓ０を補正して積分値Ｓ１、Ｓ２、Ｓ３を得る（Ｓ１１０）。そして、エンコーダ１５０におけるＱスケール算出部１５２は、ステップＳ１１０で補正部１４０が算出した積分値Ｓ１、Ｓ２、Ｓ３に基づいて、Ｑスケールが１００である場合における、画像データＰ１、Ｐ２、Ｐ３の圧縮後のバイト数を算出する（Ｓ１２０）と共に、算出したバイト数に基づいて、画像データＰ１、Ｐ２、Ｐ３について、一度で所定のバイト数まで圧縮するための量子化スケールＱ１、Ｑ２、Ｑ３を夫々算出する（Ｓ１３０）。圧縮実行部１５４は、Ｑスケール算出部１５２が算出した量子化スケールＱ１、Ｑ２、Ｑ３に基づいて、画像データＰ１、Ｐ２、Ｐ３を圧縮するための量子化テーブルを夫々作成し、作成した量子化テーブルで画像データＰ１、Ｐ２、Ｐ３を圧縮する（Ｓ１４０、Ｓ１５０）。
【００４５】
このように、本実施の形態のデジタルカメラ１００は、撮像して得た画像データＰ０をリサイズして得た夫々サイズの異なる画像データＰ１、Ｐ２、Ｐ３を圧縮するために夫々の量子化スケールＱ１、Ｑ２、Ｑ３を求める際に、画像データＰ０の高周波成分の積分値Ｓ０を補正することにより、画像データＰ１、Ｐ２、Ｐ３の高周波成分の積分値Ｓ１、Ｓ２、Ｓ３を得ている。これにより、圧縮される画像データ毎に該画像データから直接高周波成分の積分値を求める手法より、処理の高速化を図ることができる。
【００４６】
以上、実施の形態をもとに本発明を説明した。実施の形態は例示であり、本発明の主旨から逸脱しない限り、上述した各実施の形態に対してさまざまな変更、増減を行ってもよい。これらの変更、増減が行われた変形例も本発明の範囲にあることは当業者に理解されるところである。
【００４７】
例えば、上述した実施の形態のデジタルカメラ１００は、リサイズにより得られる画像データの圧縮に本発明の技術を適用したものである。本発明にかかる技術は、シャープネス処理など、周波数特性の変化をもたらすいかなる画像処理により得られる画像データの圧縮にも適用することができる。
【００４８】
また、デジタルカメラ１００において、撮像部１１０が被写体を撮像して得た画像データＰ０から高周波成分の積分値Ｓ０を求め、該積分値Ｓ０を補正して積分値Ｓ１、Ｓ２、Ｓ３を得ている。処理をより高速化するために、例えば、撮影直前のプレビュー画像のデータから高周波成分の積分値を求めておき、撮影後には、プレビュー画像のデータから求められた高周波成分の積分値を補正して、画像処理部１２０が得た画像データＰ１、Ｐ２、Ｐ３の積分値Ｓ１、Ｓ２、Ｓ３を得るようにしてもよい。補正する際には、例えば、図３に示す曲線に対応する、プレビュー画像のデータを画像データＰ１に変換するための画像処理に応じた関係を用いればよい。画像データＰ２、Ｐ３についても同様である。
【００４９】
また、実際に圧縮が行われる画像データＰ１、Ｐ２、Ｐ３のうちのいずれか１つ（例えば画像データＰ１）から高周波成分の積分値を求め、求められた積分値に基づいて該画像データＰ１の量子化スケールを算出して圧縮を行うと共に、他の画像データ（Ｐ２、Ｐ３）の高周波成分の積分値については、画像データＰ１の高周波成分の積分値を補正して得るようにしてもよい。これにより、画像データＰ０を格納するメモリが必要ではなくなるため、メモリ容量を削減することができる。
【００５０】
また、いずれか１つの画像データから高周波成分の積分値を求める際に、最もサイズの小さい画像データ（例えばサムネイル画像のデータ）を選択することが好ましい。これにより、処理速度の向上や、メモリ容量の削減を一層図ることができる。
【００５１】
また、図３、図４、図５の各図は、統計的に求められた曲線であるため、誤差が生じ得る。より精確に画像を目的の所定のバイト数に圧縮するためには、例えば、デジタルカメラ１００の手法により各画像データを一度圧縮し、その結果（圧縮後のバイト数）に基づいて、Ｑスケールを再計算して再度圧縮するようにしてもよい。
【符号の説明】
【００５２】
１００  デジタルカメラ
１１０  撮像部
１２０  画像処理部
１３０  高周波積分部
１４０  補正部
１５０  エンコーダ
１５２  Ｑスケール算出部
１５４  圧縮実行部
【図１】
0005641898.tif 000002
【図２】
0005641898.tif 000003
【図３】
0005641898.tif 000004
【図４】
0005641898.tif 000005
【図５】
0005641898.tif 000006
【図６】
0005641898.tif 000007