説明

画像処理装置及び画像処理方法

【課題】 圧縮後の画像特徴を失うことなく、ノイズを含んだ画像データを高圧縮率で圧縮することが可能な画像処理装置及び画像処理方法を提供すること。
【解決手段】 入力された画像に対して、ユーザによる入力または予め設定された2以上の整数を除数として用い、画像の各画素の画素値を除数で割ったときの商と剰余を算出し、商の画素値からなる商成分データと剰余の画素値からなる剰余成分データとに分離する剰余成分分離手段と、前記剰余成分分離手段によって分離された各成分をそれぞれ圧縮し、それぞれの成分の圧縮データを出力するデータ圧縮手段とを備えることを特徴とする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像データの圧縮を行う画像処理装置及び画像処理方法に関するものである。
【背景技術】
【0002】
データ圧縮は主にデータを記憶装置に保存したり、ネットワークを介してデータを転送する場合に、保存領域や転送時間の削減のために用いられる。
データ圧縮には可逆圧縮と非可逆圧縮がある。可逆圧縮は圧縮前のデータを完全に復元することができるのに対して非可逆圧縮は圧縮前のデータを完全に復元することはできない。
【0003】
一般的なファイル圧縮には可逆圧縮が用いられるが、画像や音声の圧縮には非可逆圧縮も利用される。
可逆圧縮の例としてはハフマン符号化がある(非特許文献1)。これは、データ中に頻繁に出現するシンボルには短い符号を、逆に出現頻度が少ないシンボルには長い符号を与えて置き換えることで、全体のデータ量を削減するものである。
また、LZ77に代表される辞書式符号化では、データ中に既に出現しているフレーズがデータの後方に出現した場合に、先のフレーズの出現位置への参照に置き換えることで、頻出するフレーズを符号化するもので、前記ハフマン符号化などと組み合わせることで高い圧縮率を実現しているアルゴリズムが多数提案されている。画像圧縮の例ではpng形式やgif形式(特許文献1)に可逆圧縮が利用されている。
【0004】
また,非可逆の画像圧縮の例としてはjpeg形式がある。これは離散コサイン変換を用いて画像を周波数成分に分離し、人間が認識できない高周波成分を除去することで、高い圧縮率を実現している。
画像データは単に閲覧目的で利用されるだけでなく、画像解析処理によって画像特徴を抽出することにも利用される。解析処理には膨大な枚数の画像データを用いることも多く、データの保存領域や転送時間の削減のためには、画像の圧縮は重要な技術となっている。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】文書データ圧縮アルゴリズム入門―ハフマン符号・算術符号・LZ符号などをCで実現 (IFエッセンス・シリーズ)、植松 友彦、CQ出版(1994/10)
【特許文献】
【0006】
【特許文献1】特開平8−237138号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかし、可逆圧縮では、例えば特定のシンボルやフレーズが頻出するなどのデータの特徴を利用して圧縮を行うため、ノイズのような乱数性の強い成分を含んだ画像データを圧縮した場合の圧縮率は低くなるという問題がある。
また、非可逆圧縮の場合、画像解析処理にとって重要な特徴まで除去しかねないという問題がある。例えば、明るさの異なる2つの画素が、圧縮後には同じ明るさになったり、明るさの大小関係が逆転してしまう可能性がある。非可逆圧縮は主に人間が認識できないような成分や特徴を除去することで圧縮を行うため、除去した特徴や成分が機械的な解析処理に影響を及ぼす可能性は高いという問題がある。
【0008】
本発明の目的は、圧縮後の画像特徴を失うことなく、ノイズを含んだ画像データを高圧縮率で圧縮することが可能な画像処理装置及び画像処理方法を提供することにある。
【課題を解決するための手段】
【0009】
上記課題を解決するため、本発明に係る画像処理装置は、入力された画像に対して、ユーザによる入力または予め設定された2以上の整数を除数として用い、画像の各画素の画素値を除数で割ったときの商と剰余を算出し、商の画素値からなる商成分データと剰余の画素値からなる剰余成分データとに分離する成分分離手段と、前記成分分離手段によって分離された各成分をそれぞれ圧縮し、それぞれの成分の圧縮データを出力するデータ圧縮手段とを備えることを特徴とする。
また、最も圧縮率が高い前記除数を入力画像ごとに探索する手段をさらに備えることを特徴とする。
さらに、前記各成分の圧縮データを復元し、復元した商成分に前記除数を画素毎に乗算し、その乗算値に前記復元した剰余成分を加算して圧縮前の画像を復元し、復元画像を出力する圧縮データ復元手段をさらに備えることを特徴とする。
また、前記データ圧縮手段は、前記剰余成分を破棄し、商成分のみの圧縮データを出力することを特徴とする。
【0010】
本発明に係る画像処理方法は、入力された画像に対して、ユーザによる入力または予め設定された2以上の整数を除数として用い、画像の各画素の画素値を除数で割ったときの商と剰余を算出し、商の画素値からなる商成分データと剰余の画素値からなる剰余成分データとに分離するステップと、前記分離された各成分をそれぞれ圧縮し、それぞれの成分の圧縮データを出力するステップとを備えることを特徴とする。
また、最も圧縮率が高い前記除数を入力画像ごとに探索するステップをさらに備えることを特徴とする。
また、前記各成分の圧縮データを復元し、復元した商成分に前記除数を画素毎に乗算するステップと、その乗算値に前記復元した剰余成分を加算して圧縮前の画像を復元し、復元画像を出力するステップをさらに備えることを特徴とする。
また、前記データ圧縮手段は、前記剰余成分を破棄し、商成分のみの圧縮データを出力するステップを備えることを特徴とする。
【発明の効果】
【0011】
本発明によれば、剰余成分に乱数性の高いパターンが出現するようなノイズ成分の多い画像の場合、商成分と剰余成分を分離してそれぞれ圧縮することで、画像全体としての圧縮率が高くなる。そして、各成分の圧縮に可逆圧縮を用いた場合、処理全体も可逆圧縮となるので、画像解析処理への影響を少なくすることができる。
剰余成分を破棄した場合は非可逆圧縮となるが、商成分の圧縮に適切なアルゴリズムを選択すれば、画素値の大小関係は逆転しないので、画像解析処理への影響を小さくすることができる。
【図面の簡単な説明】
【0012】
【図1】本発明の実施形態を示すシステム構成図である。
【図2】図1の実施形態におけるデータ形式を表す図である。
【図3】図1の実施形態の全体処理を示すフローチャート図である。
【図4】図1の実施形態の分離圧縮処理を示すフローチャート図である。
【図5】図1の実施形態の剰余成分分離処理を示すフローチャート図である。
【図6】図1の実施形態の画像復元処理を示す図である。
【発明を実施するための形態】
【0013】
図1は、本発明の実施の形態を示すシステム構成図である。
図1において、処理装置101は、分離圧縮処理部(103)と画像復元処理部(104)を含むプログラム(102)を実行する。また、プログラム実行時に必要な作業領域や入出力データを格納するための記憶装置と、入出力データを送受信するためのネットワーク環境も必要に応じて装備している。
プログラム102は、記憶装置またはネットワークを介して画像データ105が入力されると、それを分離圧縮処理部103で処理し、成分分離データ106を記憶装置に格納するか、またはネットワークを介して出力する。
また、記憶装置またはネットワークを介して成分分離データ107が入力されると、それを画像復元処理部104で処理し、成分分離データ108を記憶装置に格納するか、またはネットワークを介して出力する。
【0014】
図2は、本実施形態で用いるデータ形式を表す図である。
データ形式は、本実施例で扱う画像データと、画像データに処理を行った場合の成分分離データがある。
まず画像データについて説明する。
画像データは、画像の幅(201)、高さ(202)、画素当たりデータ量(203)、その他ヘッダ情報(204)、画素値配列(205)からなる。
画素当たりデータ量(203)は、画素1つ当たりの色情報を表すのに必要なビット数である。これと幅(201)と高さ(202)を掛けることで、画素値配列(205)のサイズが算出できる。なお、本実施形態ではモノクロ画像を対象とするが、カラー画像に対しては、例えば赤、緑、青の各成分ごとに分けて処理するなど、容易に拡張可能である。
その他ヘッダ情報(204)には、例えば画像データの作成日時や画素値配列(205)を画像として展開するときの方向、RGBやCMYなどの画素の色形式といった、画像に関する諸情報を格納するものである。
画像データにおける201〜204をまとめて、画像のヘッダ情報と呼ぶことがある。
【0015】
次に、成分分離データについて説明する。
成分分離データは、指定された除数で画素値を割ったときの商と剰余を個別の配列に分離したデータであり、画像の幅(206)、高さ(207)、画素当たりデータ量(208)、その他ヘッダ情報(209)、除数(210)、商成分圧縮方式ID(211)、商成分配列サイズ(212)、商成分配列(213)、剰余成分圧縮方式ID(214)、剰余成分配列サイズ(215)、剰余成分配列(216)からなる。
206〜209は画像データのヘッダ情報201〜204と同一である。
成分分離データに画像データを設定する場合、206〜209のヘッダ情報は、画像のヘッダ情報201〜204からそのままコピーされる。
除数(210)は、画像の画素値を商成分と剰余成分に分離するときに用いる整数値である。成分分離データをCと表記したとき、その除数をC.Mと表記することがある。
除数に「1」を設定した場合は、全ての画素値データは商成分にのみ格納され、剰余成分は意味を持たない。
商成分圧縮方式ID(211)は、商成分配列(213)を圧縮するときに用いた圧縮方式を特定するためのIDである。
圧縮方式には可逆圧縮や非可逆圧縮として既に提案されているものを利用してよい。また、圧縮を行わずそのままの画素値を残す方式IDとして'raw'が利用できる。
利用可能な圧縮方式には、それに対応するデータ復元方式も用意されているものとする。
商成分配列サイズ(212)は、商成分配列(213)の配列サイズを格納する。
商成分配列(213)には、画像の画素値または商成分圧縮方式ID(211)で指定された圧縮方式によって画素値配列を圧縮したデータ列を格納する。成分分離データCの商成分配列をC.Pと表記することがある。
剰余成分圧縮方式ID(214)、剰余成分配列サイズ(215)、剰余成分配列(216)は それぞれ商成分に対する情報211〜213を、剰余成分に置き換えたものである。
成分分離データCの剰余成分配列をC.Qと表記することがある。
なお、商成分配列(213)や剰余成分配列(216)に対する圧縮処理、復元処理を実行して、配列データを入れ替える場合には、対応する配列サイズ(212、215)も同時に修正し、後方に続くデータは、その配列の次の位置に自動的に移動されるものとする。
【0016】
図3は、本実施形態の全体処理を示すフローチャートである。
まず、圧縮対象の画像データが入力されたならば、その画像データが画像データか成分分離データかを調べる(ステップ301)。画像データである場合には、ステップ302以降の手順で圧縮処理を行い、成分分離データである場合は、画像復元処理を行う(ステップ317)。画像復元処理の詳細は図6で説明する。
以下、入力データが画像である場合の圧縮処理について説明する。
まず、結果として出力する分離データCを準備する(ステップ302)。
次に、Cに画像Iのデータを設定する(ステップ303)。ここでは、画像Iのヘッダ情報はそのままコピーし、画素値配列はCの商成分として格納する。
【0017】
次に、圧縮サイズが最小となる除数を探索するかチェックする(ステップ304)。探索する場合は以下に進む。
まず、Cの除数C.Mに「1」を代入する。除数1はデータを商成分と剰余成分に分離しないことを意味する。
次に、商成分C.Pを圧縮する(ステップ306)。このとき用いる圧縮方式は既知のものであってよい。また、使用する圧縮方式は予め決められたものでもよいし、画像ごとに圧縮方式を識別するIDを入力し、圧縮方式を自動的に選択する方法を採ってもよい。
配列を圧縮したら、Cの商成分圧縮方式IDを設定し、C.Pの配列サイズも同時に更新する。
【0018】
次に、分離データTを準備する(ステップ307)。
次に、除数T.Mに2を代入する(308)。初期値は2以上の整数であれば任意に設定可能である。
次に、T.Mが予め設定された上限値未満か調べる(ステップ309)。除数の上限は任意に設定可能であるが、本実施形態では画像データで指定されている画素当たりデータ量(203)から算出された画素値の最大値の半分を上限とする。
T.Mが上限未満の場合、まず、Tに画像Iを設定する(ステップ310)。設定方法はステップ303と同様である。
次に、Tに対して分離圧縮処理を実行する(ステップ311)。分離圧縮処理の詳細は図4で説明する。
【0019】
次に、分離データCとTの圧縮後のサイズを比較する(ステップ312)。Tの方が小さい場合は、CにTを代入する(ステップ313)。
次に、T.Mに「1」を加え(ステップ314)、ステップ309に戻る。ステップ309でT.Mが上限以上の場合は、処理を終了する。
以上により、圧縮サイズが最小となる除数C.Mが求まる。
ステップ304で除数の探索を行わない場合は、まず、除数C.Mを初期化する(ステップ315)。除数は予め決められた値でもよいし、画像ごとに入力してもよい。
次に、Cに対して分離圧縮処理を実行し(ステップ316)、処理を終了する。
以上のように、入力画像毎に圧縮サイズが最小となる除数を求めて圧縮処理を行うことにより、圧縮対象の画像にノイズ成分が多い場合であっても高い圧縮率で画像データを圧縮可能になり、画像解析処理への影響を少なくすることができる。
【0020】
図4は、本実施形態における分離圧縮処理を示すフローチャートである。
まず、入力された分離データCに対して剰余成分分離処理を実行する(ステップ401)。この処理の詳細は図5で説明する。
次に、Cの商成分配列C.Pを圧縮する(ステップ402)。このとき用いる圧縮方式は既知のものであってよい。また、使用する圧縮方式は予め決められたものでもよいし、画像ごとに圧縮方式を識別するIDを入力し、そのIDで圧縮方式を選択するようにしてもよい。
配列を圧縮したら、Cの商成分圧縮方式IDを設定し、C.Pの配列サイズも同時に更新する。
次に、剰余成分を破棄するかチェックする(ステップ403)。これは予め決めておいても良いし、画像ごとに別途入力してもよい。
ステップ403がYesの場合は、剰余成分C.Qを破棄する(ステップ404)。このとき同時に剰余成分配列サイズには「0」を代入する。
ステップ403がNoの場合は、剰余成分C.Qを圧縮する(ステップ405)。このとき用いる圧縮方式は商成分の場合と同様に既知のものであってよいし、使用する圧縮方式は予め決められたものでもよいし、画像ごとに圧縮方式を識別するIDを入力してもよい。
配列を圧縮したら、Cの剰余成分圧縮方式IDを設定し、C.Qの配列サイズも同時に更新する。
ここで、剰余成分C.Qを破棄した場合、非可逆圧縮となるが、商成分の圧縮に適切なアルゴリズムを選択すれば、画素値の大小関係は逆転しないので、画像解析処理への影響を小さくすることができる。
【0021】
図5は、本実施形態における剰余成分分離処理のフローチャートである。
この処理には分離データCが入力され、商成分に元の画像のデータが格納され、これから分離処理を行うのに必要な除数が設定されている。
まず、配列p.qを準備する(ステップ501)。pは処理後に商成分となるデータを、qは剰余成分となるデータを格納するための領域である。p,qはCの商成分配列と同じサイズだけ確保する。
次に、変数iに「0」を代入する(ステップ502)。次に、iが画素数未満の間、以下を実行する(ステップ503)。まず、C.P[i]を除数C.Mで割った剰余を q[i] に代入する(ステップ504)。次に、C.P[i]を除数C.Mで割った商をp[i]に代入する(505)。
次に、iに「1」を加えて(ステップ606)、ステップ503に戻る。
ステップ503でNoの場合、まず、配列pを商成分C.Pに代入する(ステップ507)。
次に、配列qを剰余成分C.Qに設定し(ステップ508)、処理を終了する。このとき、Cの剰余成分配列サイズも同時に配列qのサイズに更新する。
【0022】
図6は、本実施形態にける画像復元処理のフローチャートである。
まず、入力された分離データCの商成分配列C.Pを、その圧縮方式IDで指定された方式に対する復元方式で復元する(ステップ601)。剰余成分C.Qのサイズが「0」の場合は何もしない。
次に 除数C.Mが1より大きくかつ剰余成分C.Qのサイズが「0」より大きいか調べる(602)。
Yesの場合は、まず、剰余成分C.Qを、その圧縮方式IDで指定された方式に対する復元方式で復元する(ステップ603)。次に変数iに「0」を代入する(ステップ604)。そして、iが画素数未満の間、以下を実行する(ステップ605)。
まず、iの位置の商成分と剰余成分と除数から、元の画素値を算出して、商成分を更新する(ステップ606)。画素値は C.P[i] × C.M + C.Q[i] で算出する。ここで、C.Pは商成分配列、C.Qは剰余成分配列、C.Mは除数を表す。ここで、C.Qのサイズが「0」の場合は、C.Q[i]は常に「0」とみなす。
次に、iに「1」を加えて(ステップ607)、ステップ605に戻る。
一方、ステップ602でNoだった場合(剰余成分がなかった場合)と、ステップ605でNoだった場合は、Cのヘッダ情報(206〜209)と商成分C.Pから復元画像Iを生成し(ステップ608)、処理を終了する。
【符号の説明】
【0023】
101…処理装置
102…プログラム
103…分離圧縮処理部
104…画像復元処理部
105…入力画像データ
106…出力分離圧縮データ
107…入力分離圧縮データ
108…出力画像データ

【特許請求の範囲】
【請求項1】
入力された画像に対して、ユーザによる入力または予め設定された2以上の整数を除数として用い、画像の各画素の画素値を除数で割ったときの商と剰余を算出し、商の画素値からなる商成分データと剰余の画素値からなる剰余成分データとに分離する成分分離手段と、前記成分分離手段によって分離された各成分をそれぞれ圧縮し、それぞれの成分の圧縮データを出力するデータ圧縮手段とを備えることを特徴とする画像処理装置。
【請求項2】
最も圧縮率が高い前記除数を入力画像ごとに探索する手段をさらに備えることを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記各成分の圧縮データを復元し、復元した商成分に前記除数を画素毎に乗算し、その乗算値に前記復元した剰余成分を加算して圧縮前の画像を復元し、復元画像を出力する圧縮データ復元手段をさらに備えることを特徴とする請求項1または2に記載の画像処理装置。
【請求項4】
前記データ圧縮手段は、前記剰余成分を破棄し、商成分のみの圧縮データを出力することを特徴とする請求項1または2に記載の画像処理装置。
【請求項5】
入力された画像に対して、ユーザによる入力または予め設定された2以上の整数を除数として用い、画像の各画素の画素値を除数で割ったときの商と剰余を算出し、商の画素値からなる商成分データと剰余の画素値からなる剰余成分データとに分離するステップと、前記分離された各成分をそれぞれ圧縮し、それぞれの成分の圧縮データを出力するステップとを備えることを特徴とする画像処理方法。
【請求項6】
最も圧縮率が高い前記除数を入力画像ごとに探索するステップをさらに備えることを特徴とする請求項5に記載の画像処理方法。
【請求項7】
前記各成分の圧縮データを復元し、復元した商成分に前記除数を画素毎に乗算するステップと、その乗算値に前記復元した剰余成分を加算して圧縮前の画像を復元し、復元画像を出力するステップをさらに備えることを特徴とする請求項5または6に記載の画像処理方法。
【請求項8】
前記データ圧縮手段は、前記剰余成分を破棄し、商成分のみの圧縮データを出力するステップを備えることを特徴とする請求項5または6に記載の画像処理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate