(57)【要約】【課題】バイナリ輪郭画像に対して高速かつ高精度にロスレス圧縮を行うことが可能な画像処理装置、画像処理方法およびプログラムを提供する。【解決手段】本発明に係る画像処理装置では、入力されたデータに対してランレングス符号化処理を行い、データを構成する要素それぞれが有しているデータ値と、データ値を有する要素の頻度とを出力するランレングス符号化部と、ランレングス符号化部により処理された処理対象領域に関する出力値の中から、対象領域を構成する背景画素および輪郭画素の頻度を表す画素頻度情報を抽出する画素頻度情報抽出部と、画素抽出部により抽出された画素頻度情報を、背景画素に関する頻度情報と、輪郭画素に関する頻度情報とに分割する画素頻度情報分割部と、を設け、輪郭画素に関する頻度情報に対して、更にランレングス符号化処理を行う。これにより、バイナリ輪郭画像に対して高速かつ高精度にロスレス圧縮を行うことができる。【選択図】図５
2010136181.tif 000002
【特許請求の範囲】
【請求項１】
背景を表す画素値を有する画素である背景画素と、輪郭を表す画素値を有する画素である輪郭画素とから構成されたバイナリ画像について、前記背景画素のみから構成される行または列の有無を判定し、前記バイナリ画像を表す画素の中から前記背景画素のみから構成される行および列が除去された領域である処理対象領域を選定する処理対象領域選定部と、
入力されたデータに対してランレングス符号化処理を行い、前記データを構成する要素それぞれが有しているデータ値と、前記データ値を有する要素の頻度とを出力するランレングス符号化部と、
前記ランレングス符号化部により処理された前記処理対象領域に関する出力値の中から、前記対象領域を構成する前記背景画素および前記輪郭画素の頻度を表す画素頻度情報を抽出する画素頻度情報抽出部と、
前記画素抽出部により抽出された画素頻度情報を、背景画素に関する頻度情報と、輪郭画素に関する頻度情報とに分割する画素頻度情報分割部と、
を備え、
前記ランレングス符号化部は、前記輪郭画素に関する頻度情報に対して、ランレングス符号化処理を行う、画像処理装置。
【請求項２】
前記ランレングス符号化部は、処理対象領域を画素単位で複数の行または列に区分し、前記複数の行または列を順に連結した一つのデータ配列に対して、前記ランレングス符号化処理を行う、請求項１に記載の画像処理装置。
【請求項３】
前記ランレングス符号化部は、前記輪郭画素に関する頻度情報に対するランレングス符号化処理により、前記輪郭画素の連続数に関する情報と、前記輪郭画素の連続数の頻度に関する情報とを出力し、
前記画像処理装置は、前記背景画素のみから構成される行および列の数に関する情報と、前記背景画素に関する頻度情報と、前記輪郭画素の連続数に関する情報と、前記輪郭画素の連続数の頻度に関する情報と、を互いに関連付けて、前記バイナリ画像を符号化して得られる情報である符号化情報とする符号化情報生成部を更に備える、請求項２に記載の画像処理装置。
【請求項４】
前記輪郭画素から構成される輪郭を表す曲線は、略同一の幅を有する、請求項１に記載の画像処理装置。
【請求項５】
前記バイナリ画像は、生体内に存在する静脈に関するバイナリ画像である、請求項１に記載の画像処理装置。
【請求項６】
背景を表す画素値を有する画素である背景画素と、輪郭を表す画素値を有する画素である輪郭画素とから構成されたバイナリ画像について、前記背景画素のみから構成される行または列の有無を判定し、前記バイナリ画像を表す画素の中から前記背景画素のみから構成される行および列が除去された領域である処理対象領域を選定するステップと、
前記処理対象領域を表すデータに対してランレングス符号化処理を行い、前記処理対象領域を表すデータを構成する画素それぞれが有している画素値と、前記画素値を有する画素の頻度とを出力するステップと、
前記処理対象領域に関する出力値の中から、前記対象領域を構成する前記背景画素および前記輪郭画素の頻度を表す画素頻度情報を抽出するステップと、
抽出された画素頻度情報を、背景画素に関する頻度情報と、輪郭画素に関する頻度情報とに分割するステップと、
前記輪郭画素に関する頻度情報に対してランレングス符号化処理を行うステップと、
を含む、画像処理方法。
【請求項７】
コンピュータに、
背景を表す画素値を有する画素である背景画素と、輪郭を表す画素値を有する画素である輪郭画素とから構成されたバイナリ画像について、前記背景画素のみから構成される行または列の有無を判定し、前記バイナリ画像を表す画素の中から前記背景画素のみから構成される行および列が除去された領域である処理対象領域を選定する手順と、
前記処理対象領域を表すデータに対してランレングス符号化処理を行い、前記処理対象領域を表すデータを構成する画素それぞれが有している画素値と、前記画素値を有する画素の頻度とを出力する手順と、
前記処理対象領域に関する出力値の中から、前記対象領域を構成する前記背景画素および前記輪郭画素の頻度を表す画素頻度情報を抽出する手順と、
抽出された画素頻度情報を、背景画素に関する頻度情報と、輪郭画素に関する頻度情報とに分割する手順と、
前記輪郭画素に関する頻度情報に対してランレングス符号化処理を行う手順と、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法およびプログラムに関する。
【背景技術】
【０００２】
２値化された画像情報であるバイナリ画像は、文字画像、指紋画像、血管画像などに用いられている。また、これらの画像だけでなく、画像の明るさの異なる部分の表示や、画像内の物体と背景とを区分する目的においても、バイナリ画像は用いられている。バイナリ画像を格納しようとする場合には、バイナリ画像に対して圧縮処理（例えば、ロスレス圧縮処理）を施すことで、より多くの画像を格納することが可能となる。
【０００３】
ロスレス（Ｌｏｓｓｌｅｓｓ）圧縮処理のために一般的に用いられる方法として、例えば、ランレングス（Ｒｕｎ−ｌｅｎｇｔｈ）コーディングと、チェーン（Ｃｈａｉｎ）コーディングがある。ランレングスコーディングは、圧縮処理を行う画像の種類によって、圧縮効率が低下する可能性があるという問題がある。他方、チェーンコーディングは、ランレングスコーディングでは圧縮効率が低下するような画像に対しても、効率良く圧縮処理を行うことが可能であるが、ランレングスコーディングに比べて計算時間が長くなるという問題がある。このように、従来では、処理対象画像の種類に応じて、圧縮処理の方法を選択しなければならなかった。
【０００４】
そこで、以下に示す特許文献１では、バイナリ画像を同一の画素値からなる複数の矩形に分割し、各矩形を圧縮処理することで、ランレングスコーディングでは圧縮効率が低下するような画像に対して効率よく圧縮処理を行うことが可能な方法が開示されている。
【０００５】
【特許文献１】特開２００４−１４０７４９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ここで、上記特許文献１に記載の方法では、バイナリ画像全体を縦横走査し、複数の矩形を生成する処理が必要となり、生成された矩形それぞれに対して、ライン上の画素番号、矩形長、矩形幅といった情報が関連付けられる。この際、画素値が頻繁に切り替わるような画像（例えば、輪郭線から構成される画像である輪郭画像など）に対しては、生成される矩形の個数が増加してしまうため、矩形に関連付けられる情報によって、圧縮率の低下が生じうるという問題があった。
【０００７】
そこで、本発明は、このような問題に鑑みてなされたもので、その目的は、バイナリ輪郭画像に対して高速かつ高精度にロスレス圧縮を行うことが可能な、新規かつ改良された画像処理装置、画像処理方法およびプログラムを提供することにある。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明のある観点によれば、背景を表す画素値を有する画素である背景画素と、輪郭を表す画素値を有する画素である輪郭画素とから構成されたバイナリ画像について、前記背景画素のみから構成される行または列の有無を判定し、前記バイナリ画像を表す画素の中から前記背景画素のみから構成される行および列が除去された領域である処理対象領域を選定する処理対象領域選定部と、入力されたデータに対してランレングス符号化処理を行い、前記データを構成する要素それぞれが有しているデータ値と、前記データ値を有する要素の頻度とを出力するランレングス符号化部と、前記ランレングス符号化部により処理された前記処理対象領域に関する出力値の中から、前記対象領域を構成する前記背景画素および前記輪郭画素の頻度を表す画素頻度情報を抽出する画素頻度情報抽出部と、前記画素抽出部により抽出された画素頻度情報を、背景画素に関する頻度情報と、輪郭画素に関する頻度情報とに分割する画素頻度情報分割部と、を備え、前記ランレングス符号化部は、前記輪郭画素に関する頻度情報に対して、ランレングス符号化処理を行う画像処理装置が提供される。
【０００９】
かかる構成によれば、処理対象領域選定部は、バイナリ画像について、背景画素のみから構成される行または列の有無を判定し、バイナリ画像を表す画素の中から背景画素のみから構成される行および列が除去された領域である処理対象領域を選定する。また、ランレングス符号化部は、入力されたデータに対してランレングス符号化処理を行い、データを構成する要素それぞれが有しているデータ値と、データ値を有する要素の頻度とを出力する。また、画素頻度情報抽出部は、ランレングス符号化部により処理された処理対象領域に関する出力値の中から、対象領域を構成する背景画素および輪郭画素の頻度を表す画素頻度情報を抽出する。また、画素頻度情報分割部は、画素抽出部により抽出された画素頻度情報を、背景画素に関する頻度情報と、輪郭画素に関する頻度情報とに分割する。ランレングス符号化部は、輪郭画素に関する頻度情報に対して、更にランレングス符号化処理を行う。これにより、輪郭画素に関する頻度情報を更に圧縮することが可能となる。
【００１０】
前記ランレングス符号化部は、処理対象領域を画素単位で複数の行または列に区分し、前記複数の行または列を順に連結した一つのデータ配列に対して、前記ランレングス符号化処理を行うことが好ましい。
【００１１】
前記ランレングス符号化部は、前記輪郭画素に関する頻度情報に対するランレングス符号化処理により、前記輪郭画素の連続数に関する情報と、前記輪郭画素の連続数の頻度に関する情報とを出力し、前記画像処理装置は、前記背景画素のみから構成される行および列の数に関する情報と、前記背景画素に関する頻度情報と、前記輪郭画素の連続数に関する情報と、前記輪郭画素の連続数の頻度に関する情報と、を互いに関連付けて、前記バイナリ画像を符号化して得られる情報である符号化情報とする符号化情報生成部を更に備えることが好ましい。
【００１２】
前記輪郭画素から構成される輪郭を表す曲線は、略同一の幅を有するものであることが好ましい。
【００１３】
前記バイナリ画像は、生体内に存在する静脈に関するバイナリ画像であってもよい。
【００１４】
上記課題を解決するために、本発明の別の観点によれば、背景を表す画素値を有する画素である背景画素と、輪郭を表す画素値を有する画素である輪郭画素とから構成されたバイナリ画像について、前記背景画素のみから構成される行または列の有無を判定し、前記バイナリ画像を表す画素の中から前記背景画素のみから構成される行および列が除去された領域である処理対象領域を選定するステップと、前記処理対象領域を表すデータに対してランレングス符号化処理を行い、前記処理対象領域を表すデータを構成する画素それぞれが有している画素値と、前記画素値を有する画素の頻度とを出力するステップと、前記処理対象領域に関する出力値の中から、前記対象領域を構成する前記背景画素および前記輪郭画素の頻度を表す画素頻度情報を抽出するステップと、抽出された画素頻度情報を、背景画素に関する頻度情報と、輪郭画素に関する頻度情報とに分割するステップと、前記輪郭画素に関する頻度情報に対してランレングス符号化処理を行うステップと、を含む画像処理方法が提供される。
【００１５】
上記課題を解決するために、本発明の更に別の観点によれば、コンピュータに、背景を表す画素値を有する画素である背景画素と、輪郭を表す画素値を有する画素である輪郭画素とから構成されたバイナリ画像について、前記背景画素のみから構成される行または列の有無を判定し、前記バイナリ画像を表す画素の中から前記背景画素のみから構成される行および列が除去された領域である処理対象領域を選定する手順と、前記処理対象領域を表すデータに対してランレングス符号化処理を行い、前記処理対象領域を表すデータを構成する画素それぞれが有している画素値と、前記画素値を有する画素の頻度とを出力する手順と、前記処理対象領域に関する出力値の中から、前記対象領域を構成する前記背景画素および前記輪郭画素の頻度を表す画素頻度情報を抽出する手順と、抽出された画素頻度情報を、背景画素に関する頻度情報と、輪郭画素に関する頻度情報とに分割する手順と、前記輪郭画素に関する頻度情報に対してランレングス符号化処理を行う手順と、を実行させるためのプログラムが提供される。
【発明の効果】
【００１６】
本発明によれば、バイナリ輪郭画像に対してランレングス符号化処理を施すことで得られる輪郭画素に関する頻度情報に対して、再度ランレングス符号化処理を施す。これにより、バイナリ輪郭画像に対して高速かつ高精度にロスレス圧縮を行うことが可能である。
【発明を実施するための最良の形態】
【００１７】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００１８】
なお、説明は、以下の順序で行うものとする。
（１）目的
（２）本発明の基盤となる技術について
（３）第１の実施形態
（３−１）画像処理装置の構成について
（３−２）画像処理方法について
（３−３）実際の処理結果について
（４）本発明の各実施形態に係る画像処理装置のハードウェア構成について
（５）まとめ
【００１９】
＜目的＞
本発明の各実施形態に係る画像処理装置および画像処理方法について説明するに先立ち、本発明の目的とするところについて、図１を参照しながら詳細に説明する。
【００２０】
図１は、バイナリ画像の種類について説明するための説明図である。バイナリ画像は、画像中に存在する画像情報の密度に応じて、通常の画像と、輪郭画像（または、Ｃｏｎｔｏｕｒ画像とも称する。）と、に大別可能である。通常の画像とは、例えば、一般的な白黒の顔画像や風景画像、物体のシルエット画像などであり、図１（ｂ）や図１（ｄ）が通常の画像に相当する。また、輪郭画像とは、例えば、エッジ画像やパターン画像などであり、図１（ａ）や図１（ｃ）が輪郭画像に相当する。
【００２１】
図１に示したようなバイナリ画像をロスレス圧縮する際に用いられる方法としては、上述のように、ランレングスコーディング（以下、ランレングス符号化とも称する。）と、チェーンコーディングと、がある。
【００２２】
ランレングスコーディング法は、バイナリ画像を構成する各画素の画素値ではなく、ある画素値を有する画素がバイナリ画像中にどのくらい連続して現れるかを記録する。そのため、図１（ｂ）に示したようなバイナリ自然画像や、図１（ｄ）に示したような物体と背景とからなるシルエット画像に対しては、ランレングスコーディングは非常に圧縮効率が良い。逆に、図１（ａ）や図１（ｃ）に示したような文字画像やパターン画像（すなわち、いわゆる輪郭画像）の場合、隣り合う画素同士の画素値の変化が激しくなり、圧縮効率が低下する。
【００２３】
チェーンコーディング法は、ある出発点（すなわち、ある画素）からパターンがどの方向に変化していくのかを追跡し、その変化方向を記録する。そのため、ランレングスコーディング法では圧縮効率が低下するような、隣り合う画素同士の画素値の変化が激しい画像であっても、良好な圧縮効率で圧縮を行うことができる。しかしながら、パターンの変化方向を追跡するために、各画素の近傍に位置する８画素を参照する必要があるため、チェーンコーディング法は、ランレングスコーディング法に比べて計算時間が長くなるという問題がある。
【００２４】
そこで、本発明は、従来のランレングスコーディング法では圧縮効率が低下するバイナリ輪郭画像に対して、高速かつ高精度にロスレス圧縮を行うことが可能な画像処理装置および画像処理方法を提供することを目的とした。
【００２５】
＜本発明の基盤となる技術について＞
次に、図２Ａ〜図４を参照しながら、本発明の基盤となる技術であるランレングスコーディング法と、チェーンコーディング法について、説明する。図２Ａ〜図３Ｃは、ランレングスコーディング法を説明するための説明図である。また、図４は、チェーンコーディング法を説明するための説明図である。なお、図２Ａ〜図４において、白色で表される画素の画素値は０であり、黒色で表される画素の画素値は１であるものとする。
【００２６】
［ランレングスコーディング法について］
まず、ランレングスコーディング法について説明する。
ランレングスコーディング法は、上述のように、ある画素値を有する画素が画像中にどのくらい連続して現れるかに基づいて、画像の圧縮処理を行う方法である。また、本発明で着目しているバイナリ画像は、異なる画素値を有する画素が他の種類の画像に比べて少なく、画像の量子化の度合いが最も粗いものであるといえる。そのため、ランレングスコーディング法は、バイナリ画像に対する圧縮処理としては、適しているともいえる。
【００２７】
例えば、図２Ａに示したようなバイナリ輪郭画像を圧縮処理する場合を考える。この画像は、図２Ａに示したように、縦１６画素×横１６画素から構成される画像である。この画像を、例えば横方向のラインごとにランレングスコーディング法により圧縮処理を行うことを考える。
【００２８】
図２Ａに示した画像は、図から明らかなように、横方向のライン上で、同じ値を有する画素が連続的に続くことが多い画像である。ランレングスコーディング法では、それぞれのラインで、白または黒画素が何点ずつ表れるかに着目する。
【００２９】
図２Ａにおける一番上のラインおよび上から２番目のラインでは、全ての画素が画素値０を有している。そのため、これらのラインにおける画素のデータとして、画素値「０」が１６個連続して記載されたものを作成するよりも、画素値「０」と頻度「１６」をデータとして記載することで、データの圧縮を図ることができる。また、図２Ａの上から３番目のラインでは、ライン左端から、画素値「０」が６回連続し、続いて画素値「１」が６回連続し、続いて画素値「０」が４回連続している。この場合も、ラインを構成する１６画素それぞれの画素値を記録するよりも、画素値を表す配列として「０，１，０」を記録し、頻度を表す配列として「６，６，４」を記録することで、データの圧縮を図ることができる。つまり、ランレングスコーディング法では、図２Ａに示したような縦横２次元の画像に対して、一次元の「画素値を表す配列」と、一次元の「頻度を表す配列」という２種類の配列を準備すれば良いことになる。
【００３０】
ここで、バイナリ画像は、画素値の値として「０」または「１」のどちらかしか現れない。そのため、画素値を表す配列を設ける代わりに、頻度を表す配列の先頭に各ラインの先頭画素（例えば、図２Ａにおける左端の画素）の値を記録し、更に、上述の方法で、各画素値の頻度を表す情報を記載する。このように先頭画素の画素値のみを記録しておくことで、偶数番目に記録されている数字が先頭画素とは異なる値の画素値の頻度であり、奇数番目に記録されている数字が先頭画素と同じ値の画素値の頻度であることが認識できる。例えば、図２Ａにおける上から三番目のラインの場合、先頭画素の画素値が記載されるバッファーに「１」を記録し、続けて頻度を表す配列として「６，６，４」を記録する。このような記録方法を採用することで、データを読み取る際に、頻度を表す配列の第一要素には先頭画素の画素値に当てはめ、頻度を表す配列の残りの要素には、先頭画素の画素値とは異なる値から交互に「０」または「１」を当てはめていけばよい。このような方式を採用することで、図２Ａに示した画像の各ラインは、図２Ｂに示したようなデータで表すことができる。
【００３１】
ここで、図２Ｂに示した記載方法において「：」の左側に記載されている数字は、ラインの左端に位置する画素の画素値を表す。また、「：」の右側に記載されている数字は、「：」の左側に記載されている値の画素値を有する画素が、いくつ連続しているかを表す数値である。
【００３２】
上述のような方法でランレングスコーディング法を適用することにより、２１６ビットのデータであった図２Ａの画像を、１７４ビットに圧縮することが可能である。
【００３３】
また、「０」と「１」とが交互に現れるという特徴を用いると、図２Ｂに示したように画像の各ラインを別々のものとして扱わず、図２Ｃに示したように画像全体を一本のラインとして扱うことで、更なる圧縮の効率化を図ることが可能である。
【００３４】
すなわち、図２Ｃに示したように、図中の矢印方向に沿って処理を行い、画像全体を一本のラインとして考える。この場合、図２Ｃに示した画像は、１６画素からなる１つのラインが１６行分存在するもの（１６画素×１６行）として扱われずに、２５６画素×１行の画像として扱われることとなる。この場合、各ラインの先頭画素の画素値ではなく、画像の先頭画素の画素値だけを記録し、ランレングスコーディング法で画像を符号化していけばよいということになる。この方法を用いると、図２Ａに示した２１６ビットの画像を、図２Ｃに示したように、１６９ビットまで圧縮することができる。
【００３５】
このように、図２Ａ〜図２Ｃで示したような、画素値の値が頻繁に切り替わらない画像の場合は、上述のように、ランレングスコーディング法により画像データを効率よく圧縮可能である。しかしながら、例えば図３Ａに示すような輪郭（Ｃｏｎｔｏｕｒ）画像に対してランレングスコーディング法を適用すると、圧縮効率が低下してしまう。以下では、図３Ａ〜図３Ｃを参照しながら、ランレングスコーディング法を用いて、図２Ａとは別の画像を圧縮した場合について説明する。
【００３６】
図２Ａに示した画像は、画素値が「１」である部分が１つの部分にまとまって存在しており、画素値「０」と画素値「１」とが切り替わる頻度が少ないものであった。他方、図３Ａに示した画像は、画素値「１」の部分がまとまって存在してはおらず、画素値「０」と画素値「１」とが頻繁に切り替わる画像である。図３Ａに示したような画像では、画素値の切り替わる頻度が高くなるため、頻度を表す配列を生成するためには、大量のメモリが必要となる。
【００３７】
すなわち、バイナリ画像は画素値が「０」または「１」であるため、画素値の値を表すためには１ビットのメモリを用いればよいのに対し、頻度は１より大きな値になりえるため、頻度を表す数を格納するためには、数ビットのメモリが必要となる。よって、頻度を表す配列の要素が増えると、必要なビット数も大幅に増えることとなる。
【００３８】
例えば、図２Ｂで示したデータ形式を採用した場合には、頻度の最大値が「１６」であるため、頻度を表す配列の各要素は、４ビットのメモリを要する。よって、図３Ａに示したような輪郭画像の場合は、やはり頻度を表す配列の要素数が増え、本来のビット単位で表される画像よりも、たくさんのメモリが占有されてしまう。
【００３９】
例えば、図３Ｂに示したように、図３Ａに示した画像をラインごとに圧縮した場合には、各ラインにおける頻度を表す配列の要素数が増加し、元来２１６ビットであった画像のサイズが、４３６ビットになってしまう。また、図３Ｃに示したように、画像全体を１つのラインとして処理した場合であっても、３６９ビットの画像となってしまい、元の画像サイズよりも大きな容量となってしまう。
【００４０】
このように、ランレングスコーディング法は、図１（ｂ）や図１（ｄ）に示したようなバイナリ画像に対しては効率よく圧縮を行うことが可能である。しかしながら、ランレングスコーディング法は、図１（ａ）に示した文字画像や図１（ｃ）に示した静脈パターン画像等のように、画素値が頻繁に切り替わる画像に対しては、効率よく圧縮を行うことができない。
【００４１】
［チェーンコーディング法について］
次に、チェーンコーディング法について、図４を参照しながら説明する。
この方式では、画像ではなく、画像内の曲線に注目し符号化を行う。画像内の曲線に着目する場合において、最も単純な圧縮方法は、曲線上のすべての点の座標を覚える方法である。ただし、この場合もやはり、バイナリ画像の画素値が１ビットを占めることに対し曲線の各点の座標がｘとｙ両方向のそれぞれに対して複数ビットを占めるため、効率よく圧縮できない。そのため、チェーンコーディング法では、以下に示すような方法で、画像の圧縮を行う。
【００４２】
まず、チェーンコーディング法では、ある曲線の端点を検出し、検出した端点を基準として着目した点の近傍情報を考慮しながら曲線をたどっていく。すなわち、チェーンコーディング法では、各点の近傍８点の画素値を参照して、曲線が次にどの方向に動くか、つまり、「動きの方向」を検出する。続いて、チェーンコーディング法では、この８種類の「動きの方向」に対して０〜７という番号をつける。そのため、曲線の各点のために１個の「動きの方向」、つまり３ビットが必要になる。従って、チェーンコーディング法において必要なメモリは、ほぼ画像内の曲線上の点数の３倍のビット数になる。ただし、厳密には、出発点の座標を格納するためのメモリが必要となるため、約３倍のビット数よりも少し増加することとなる。
【００４３】
例えば、図３Ａに示した画像を、図４に示したようにチェーンコーディング法を用いて圧縮する場合を考える。ここで、図４において、点線で囲まれた領域に存在する曲線に着目する。チェーンコーディング法では、例えば、上から１番目かつ左から３番目に位置する画素を基準として、近傍情報を考慮しながら曲線をたどっていくこととなる。
【００４４】
このようにして圧縮処理を行うことで、図４に示した２１６ビットの画像は、１７７ビットまで圧縮することが可能となる。
【００４５】
ここで、ランレングスコーディング法では、ある画素に隣接する１つの画素に着目するのに対し、チェーンコーディング法では、ある画素の回り８点を考慮する必要があるため、計算時間（圧縮処理時間）が必要となる。そのため、計算時間の観点では、チェーンコーディング法よりも、ランレングスコーディング法の方が優れている。リアルタイム方式で画像処理を行うような状況を考慮すると、このような計算時間の差が、大きな影響を持つことがある。
【００４６】
従って、ランレングスコーディング法を用いて高い圧縮率を実現できれば、応用の面ではチェーンコーディング法よりも優れた方法となるといえる。そこで、以下で説明する本発明の各実施形態では、ランレングスコーディング法を用いながら、バイナリ輪郭画像を、高精度圧縮することが可能な（すなわち、高い圧縮率を得ることが可能な）情報処理装置および情報処理方法について、詳細に説明を行う。
【００４７】
（第１の実施形態）
＜画像処理装置の構成について＞
続いて、図５〜図７を参照しながら、本発明の第１の実施形態に係る画像処理装置１０の構成について、詳細に説明する。図５は、本実施形態に係る画像処理装置１０の構成を説明するためのブロック図である。図６および図７は、本実施形態に係る画像処理装置について説明するための説明図である。
【００４８】
本実施形態に係る情報処理装置１０は、例えば図５に示したように、処理対象領域選定部１０１と、ランレングス符号化部１０３と、画素頻度情報抽出部１０７と、画素頻度情報分割部１０９と、符号化情報生成部１１３と、記憶部１１５と、を主に備える。
【００４９】
処理対象領域選定部１０１は、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等から構成されている。処理対象領域選定部１０１は、入力されたバイナリ画像について、背景画素のみから構成される行または列の有無を判定し、バイナリ画像を表す画素の中から、背景画素のみから構成される行および列が除去された領域である処理対象領域を選定する。
【００５０】
ここで、上述の背景画素とは、バイナリ画像を構成する画素のうち、背景を表す画素値を有する画素を意味する。また、以下では、輪郭を表す画素値を有する画素のことを、輪郭画素と称することとする。例えば、図１（ａ）に示したような文字画像では、黒色で表される画素（画素値が０である画素）が輪郭画素に対応し、白色で表される画素（画素値が１である画素）が背景画素に対応する。また、図１（ｃ）に示したような静脈パターン画像では、白色で表される画素値が１である画素が輪郭画素に対応し、黒色で表される画素値が０である画素が背景画素に対応する。
【００５１】
より詳細には、処理対象領域選定部１０１は、まず、入力された画像について、背景画素のみから構成される上下の行数と、左右の列数とを特定する。図６に示した例では、入力された１８列×２０行の画像のうち、上４行が背景画素のみから構成される行であり、左２列および右３列が背景画素のみから構成される列である。処理対象領域選定部１０１は、特定した背景画素のみから構成される上下の行数および左右の列数を、後述する符号化情報生成部１１３に伝送する。図６に示した例では、処理対象領域選定部１０１は、上４行および下０行が背景画素のみからなる行であり、左２列および右３列が背景画素のみからなる列である旨を、符号化情報生成部１１３に伝送する。
【００５２】
続いて、処理対象領域選定部１０１は、特定した背景画素のみからなる行または列を除いた領域を、処理対象領域として、後述するランレングス符号化部１０３に伝送する。図６に示した例では、入力された１８列×２０行の画像のうち、上４行分、左２列分および右３列分を除いた１３列×１６行を、処理対象領域として選定する。
【００５３】
ランレングス符号化部１０３は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等から構成されている。ランレングス符号化部１０３は、入力されたデータに対してランレングス符号化処理を行い、データを構成する要素それぞれが有しているデータ値と、各データ値を有する要素の頻度とを出力する。このランレングス符号化部１０３は、例えば図５に示したように、第一次ランレングス符号化部１０５と、第二次ランレングス符号化部１１１と、を更に備える。
【００５４】
第一次ランレングス符号化部１０５は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等から構成されている。第一次ランレングス符号化部１０５は、処理対象領域選定部１０１から伝送された処理対象領域に対応する画像データを、ランレングスコーディング法を用いて符号化する。より詳細には、第一次ランレングス符号化部１０５は、伝送された処理対象領域に対応する画像データを、複数画素×１行の画像データとして処理して、画素値を表す配列と、頻度を表す配列とを生成する。次に、第一次ランレングス符号化部１０５は、生成した画素値を表す配列および頻度を表す配列を、第一次符号化情報として後述する画素頻度情報抽出部１０７に伝送する。
【００５５】
例えば、図６に示した処理対象領域が第一次ランレングス符号化部１０５に入力されると、図７に示したように、画素値「１」と「０」が交互に並ぶ画素値を表す配列と、各画素値の頻度を要素として持つ頻度を表す配列とからなる第一次符号化情報が生成される。第一次ランレングス符号化部１０５は、生成した第一次符号化情報を、画素頻度情報抽出部１０７に伝送する。
【００５６】
また、処理対象領域において最初に処理される画素（例えば、最も左上の画素）が、必ず輪郭画素または背景画素となる場合には、例えば図７に示したように、頻度を表す配列の最初に、先頭画素の画素値を現す情報を記録しなくてもよい。
【００５７】
第二次ランレングス符号化部１１１については、以下で改めて詳細に説明する。
【００５８】
画素頻度情報抽出部１０７は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等から構成されている。画素頻度情報抽出部１０７は、第一次ランレングス符号化部１０５から伝送された画素値を表す配列および頻度を表す配列からなる第一次符号化情報の中から、画素値を表す配列を削除して、頻度を表す配列のみからなる画素頻度情報とする。
【００５９】
例えば、図７に示したような第一次符号化情報が生成され、画素頻度情報抽出部１０７に伝送されると、画素頻度情報抽出部１０７は、第一次符号化情報に含まれる画素値を表す配列を削除して頻度を表す配列を抽出し、図７に示したような画素頻度情報を生成する。
【００６０】
画素頻度情報抽出部１０７は、生成した画素頻度情報を、後述する画素頻度情報分割部１０９に伝送する。
【００６１】
画素頻度情報分割部１０９は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等から構成されている。画素頻度情報分割部１０９は、画素頻度情報抽出部１０７から伝送された画素頻度情報を、輪郭画素に関する頻度を表す配列と、背景画素に関する頻度を表す配列と、に分割する。上述のように、バイナリ画像をランレングス符号化した場合に、頻度を表す配列の奇数番目の配列要素は、処理対象領域において最初に処理される画素の画素値と同じ画素値を有する画素の頻度となる。同様に、頻度を表す配列の偶数番目の配列要素は、最初に処理される画素の画素値とは逆の画素値を有する画素の頻度となる。従って、画素頻度情報分割部１０９は、配列要素が偶数番目か奇数番目かを考慮することで、画素頻度情報を２種類の配列に分割することができる。
【００６２】
例えば図７に示したような画素頻度情報は、画素頻度情報分割部１０９によって、画素値「０」を有する画素の頻度を表す配列と、画素値「１」を有する画素の頻度を表す配列と、に２分割される。
【００６３】
画素頻度情報分割部１０９は、輪郭画素に関する頻度を表す配列を、第二次ランレングス符号化部１１１に伝送する。また、画素頻度情報分割部１０９は、背景画素に関する頻度を表す配列を、後述する符号化情報生成部１１３に伝送する。
【００６４】
バイナリ輪郭画像においては、輪郭線の太さ（幅）がほぼ同一の値となるため、輪郭画素に関する頻度を表す配列は、ほぼ同様の値が格納されることとなる。そのため、輪郭画素に関する頻度を表す配列を再度ランレングス符号化することにより、更に圧縮を図ることが可能となる。このような理由により、本実施形態に係る画素頻度情報分割部１０９は、生成した輪郭画素に関する頻度を表す配列を、第二次ランレングス符号化部１１１に伝送する。他方、背景画素に関する頻度を表す配列には、様々な値が格納されていることが多いため、再度ランレングス符号化を行ったとしても、更なる圧縮を図れない場合がある。そのため、本実施形態に係る画素頻度情報分割部１０９は、背景画素に関する頻度を表す配列は、第二次ランレングス符号化部１１１へと伝送しない。
【００６５】
第二次ランレングス符号化部１１１は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等から構成されている。第二次ランレングス符号化部１１１は、画素頻度情報分割部１０９から伝送された輪郭画素に関する頻度を表す配列を、ランレングスコーディング法を用いて符号化する。これにより、輪郭画素に関する頻度を表す配列から、輪郭画素が連続する数（輪郭画素の連続数）を表す配列と、輪郭画素の連続数の頻度を表す配列とが生成される。
【００６６】
例えば、図７に示した例では、輪郭画素の連続数は、「１」（すなわち、輪郭画素の両隣が背景画素である場合）、３、１、２、１、２、４という配列になり、各連続数の頻度は、それぞれ３９、１、１、１、２、１、１という配列になる。
【００６７】
第二次ランレングス符号化部１１１は、生成した輪郭画素の連続数を表す配列と、輪郭画素の連続数の頻度を表す配列とを、後述する符号化情報生成部１１３へと伝送する。
【００６８】
以上説明したような符号化処理により、図６に示した処理対象領域を表す画像データは、図７の最下部に示したような情報へと圧縮されることとなる。
【００６９】
符号化情報生成部１１３は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ等から構成されている。符号化情報生成部１１３には、処理対象領域選定部１０１から伝送された背景画素のみからなる行および列を表す情報と、画素頻度情報分割部１０９から伝送された背景画素に関する頻度を表す配列とが伝送される。また、符号化情報生成部１１３には、第二次ランレングス符号化部１１１から、輪郭画素の連続数を表す配列と、輪郭画素の連続数の頻度を表す配列とが伝送される。符号化情報生成部１１３は、これらの伝送された情報を互いに関連付けて、入力されたバイナリ輪郭画像を符号化した場合の符号化情報とする。
【００７０】
記憶部１１５には、本実施形態に係る画像処理装置１０によって生成された各種の情報が記録される。また、記憶部１１５には、本実施形態に係る画像処理装置１０によって生成された符号化情報が記録されてもよい。また、記憶部１１５には、本実施形態に係る画像処理装置１０が、何らかの処理を行う際に保存する必要が生じた様々なパラメータや処理の途中経過等、または、各種のデータベース等が、適宜記録されてもよい。この記憶部１１５は、処理対象領域選定部１０１、ランレングス符号化部１０３、第一次ランレングス符号化部１０５、画素頻度情報抽出部１０７、画素頻度情報分割部１０９、第二次ランレングス符号化部１１１、符号化情報生成部１１３が自由に読み書きできる。
【００７１】
なお、上述の説明では、本実施形態に係る画像処理装置１０は、処理対象となる画像を、左上から横方向に右下に向かって処理する場合について説明した。しかしながら、上述の例に限定されるわけではなく、右上から横方向に左下に向かって処理を行っても良い。また、左上から縦方向に右下に向かって処理を行ってもよく、右上から縦方向に左下に向かって処理を行っても良い。
【００７２】
また、上述の説明では、背景画素に関する頻度を表す配列に対して第二次ランレングス符号化を行わない場合について説明したが、上述の例に限定されるわけではない。例えば、背景画素に関する頻度を表す配列を第二次ランレングス符号化し、符号化前のデータ容量よりも符号化後のデータ容量が小さくなる場合には、符号化後のデータを、背景画素に関する符号化情報として利用してもよい。
【００７３】
以上、本実施形態に係る画像処理装置１０の機能の一例を示した。上記の各構成要素は、汎用的な部材や回路を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。また、各構成要素の機能を、ＣＰＵ等が全て行ってもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用する構成を変更することが可能である。
【００７４】
なお、上述のような本実施形態に係る画像処理装置の各機能を実現するためのコンピュータプログラムを作製し、パーソナルコンピュータ等に実装することが可能である。また、このようなコンピュータプログラムが格納された、コンピュータで読み取り可能な記録媒体も提供することができる。記録媒体は、例えば、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリなどである。また、上記のコンピュータプログラムは、記録媒体を用いずに、例えばネットワークを介して配信してもよい。
【００７５】
＜画像処理方法について＞
続いて、図８を参照しながら、本実施形態に係る画像処理方法について、詳細に説明する。図８は、本実施形態に係る画像処理方法について説明するための流れ図である。
【００７６】
まず、処理対象領域選定部１０１は、入力されたバイナリ輪郭画像の中から、輪郭を含む画像部を処理対象領域として選定し、処理対象領域を特定する情報Ａを生成する（ステップＳ１０１）。この処理対象領域を特定する情報Ａは、例えば図６に示した背景画素のみからなる行や列の数を表す情報である。処理対象領域選定部１０１は、選定した処理対象領域を、第一次ランレングス符号化部１０５に伝送する。
【００７７】
次に、第一次ランレングス符号化部１０５は、処理対象領域選定部１０１により選定された処理対象領域をランレングス符号化し（ステップＳ１０３）、第一次符号化情報を生成する。第一次ランレングス符号化部１０５は、生成した第一次符号化情報を、画素頻度情報抽出部１０７に伝送する。
【００７８】
続いて、画素頻度情報抽出部１０７は、第一次ランレングス符号化部１０５から伝送された第一次符号化情報の中から画素値を表す配列を削除して頻度を表す配列を抽出し、情報Ｂとする（ステップＳ１０５）。この情報Ｂは、画素頻度情報に相当する。画素頻度情報抽出部１０７は、抽出した情報Ｂを、画素頻度情報分割部１０９に伝送する。
【００７９】
次に、画素頻度情報分割部１０９は、画素頻度情報抽出部１０７から伝送された情報Ｂを画素値に基づき２分割し、輪郭画素に関する配列である情報Ｃと、背景画素に関する配列である情報Ｄとを生成する（ステップＳ１０７）。画素頻度情報分割部１０９は、生成した情報Ｃを第二次ランレングス符号化部１１１に伝送するとともに、生成した情報Ｄを符号化情報生成部１１３に伝送する。
【００８０】
続いて、第二次ランレングス符号化部１１１は、画素頻度情報分割部１０９から伝送された情報Ｃを更にランレングス符号化し、輪郭画素の連続数を表す配列である情報Ｅと、連続数の頻度を表す配列である情報Ｆとを生成する（ステップＳ１０９）。第二次ランレングス符号化部１１１は、生成した情報Ｅおよび情報Ｆを、符号化情報生成部１１３に伝送する。
【００８１】
次に、符号化情報生成部１１３は、伝送された情報Ａ、情報Ｄ、情報Ｅ、情報Ｆを互いに関連付けて符号化情報とし、保存する（ステップＳ１１１）。
【００８２】
以上説明したように、本実施形態に係る画像処理方法では、演算負荷の軽いランレングスコーディング法を２回用いることにより、輪郭画素の頻度を表す配列を効率よく圧縮することが可能となり、バイナリ輪郭画素を、高速かつ高精度に圧縮することができる。
【００８３】
＜実際の処理結果について＞
続いて、バイナリ輪郭画像の一例として、静脈認証処理に用いられる細線化指静脈画像を例にとって、本実施形態に係る画像処理方法を用いた圧縮処理を行った場合の処理結果について、詳細に説明する。
【００８４】
圧縮処理には、２種類の細線化指静脈画像を用いた。各静脈画像は、１６０×６０ピクセルの大きさを有している。圧縮処理を行わない場合、各静脈画像は、９６００ビット、すなわち、１２００バイトの容量を有する。
【００８５】
本実施形態に係る画像処理方法、一般的なランレングスコーディング法、一般的なチェーンコーディング法の３種類の圧縮方法を用いて、各静脈画像の圧縮処理を行った。圧縮処理の実行に際しては、用いる圧縮方法以外は処理実施条件が同一となるようにし、それぞれの圧縮方法における圧縮後の画像サイズと、圧縮に要する計算時間と、を比較した。
【００８６】
圧縮処理に使用した第１の細線化指静脈画像は、図９の（ａ）に示した画像であり、圧縮処理に使用した第２の細線化指静脈画像は、図９の（ｃ）に示した画像である。
【００８７】
得られた結果を、以下の表１および表２に示した。また、図９は、本実施形態に係る画像処理方法を行った結果を示した説明図であり、図１０は、一般的なチェーンコーディング法による圧縮処理を行った結果を示した説明図である。
【００８８】
【表１】
2010136181.tif 000003
【００８９】
【表２】
2010136181.tif 000004
【００９０】
まず、図９および図１０を参照する。図９および図１０において、（ａ）は、処理対象とした第１の細線化指静脈画像を表し、（ｂ）は、圧縮した画像に対して解凍処理を行った結果を表す。同様に、（ｃ）は、処理対象とした第２の細線化指静脈画像を表し、（ｂ）は、圧縮した画像に対して解凍処理を行った結果を表す。
【００９１】
図９および図１０から明らかなように、本実施形態に係る画像処理方法および一般的なチェーンコーディング法において、解凍処理により得られた画像は入力された画像と同一のものであり、圧縮処理および解凍処理によって画像に劣化が生じていないことがわかる。
【００９２】
表１を参照すると、元来１２００バイトの容量であった画像が、一般的なランレングスコーディング法では８５３バイト、本実施形態に係る画像処理方法では３６５バイト、一般的なチェーンコーディング法では２３２バイトに圧縮された。これは、入力された画像の画像サイズが、それぞれ、約７１％、約３０％、約１９％に圧縮されたことを示す。また、計算時間では、一般的なランレングスコーディング法では０．０３ｍｓｅｃ、本実施形態に係る画像処理方法では０．０４ｍｓｅｃ、一般的なチェーンコーディング法では０．０６ｍｓｅｃであった。
【００９３】
表２を参照すると、元来１２００バイトの容量であった画像が、一般的なランレングスコーディング法では９０９バイト、本実施形態に係る画像処理方法では３７０バイト、一般的なチェーンコーディング法では２２２バイトに圧縮された。これは、入力された画像の画像サイズが、それぞれ、約７６％、約３１％、約１９％に圧縮されたことを示す。また、計算時間では、一般的なランレングスコーディング法では０．０３ｍｓｅｃ、本実施形態に係る画像処理方法では０．０３ｍｓｅｃ、一般的なチェーンコーディング法では０．０６ｍｓｅｃであった。
【００９４】
表１および表２の結果から明らかなように、本実施形態に係る画像処理方法は、一般的なチェーンコーディング法よりは圧縮性能が若干劣るものの、一般的なランレングスコーディング法に比べて約２．５倍程度の圧縮性能を有していることがわかる。また、計算時間に関して、本実施形態に係る画像処理方法は、一般的なランレングスコーディング法と同等の計算時間となっており、一般的なチェーンコーディング法の約半分の計算時間で処理が終了したことがわかる。
【００９５】
このように、本実施形態に係る画像処理方法は、バイナリ輪郭画像に対して、高速かつ高精度にロスレス圧縮を行うことが可能であることがわかった。
【００９６】
＜ハードウェア構成について＞
次に、図１１を参照しながら、本発明の各実施形態に係る画像処理装置１０のハードウェア構成について、詳細に説明する。図１１は、本発明の各実施形態に係る画像処理装置１０のハードウェア構成を説明するためのブロック図である。
【００９７】
画像処理装置１０は、主に、ＣＰＵ９０１と、ＲＯＭ９０３と、ＲＡＭ９０５と、を備える。また、情報処理装置１０は、更に、ホストバス９０７と、ブリッジ９０９と、外部バス９１１と、インターフェース９１３と、入力装置９１５と、出力装置９１７と、ストレージ装置９１９と、ドライブ９２１と、接続ポート９２３と、通信装置９２５とを備える。
【００９８】
ＣＰＵ９０１は、演算処理装置および制御装置として機能し、ＲＯＭ９０３、ＲＡＭ９０５、ストレージ装置９１９、またはリムーバブル記録媒体９２７に記録された各種プログラムに従って、画像処理装置１０内の動作全般またはその一部を制御する。ＲＯＭ９０３は、ＣＰＵ９０１が使用するプログラムや演算パラメータ等を記憶する。ＲＡＭ９０５は、ＣＰＵ９０１の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を一次記憶する。これらはＣＰＵバス等の内部バスにより構成されるホストバス９０７により相互に接続されている。
【００９９】
ホストバス９０７は、ブリッジ９０９を介して、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ／Ｉｎｔｅｒｆａｃｅ）バスなどの外部バス９１１に接続されている。
【０１００】
入力装置９１５は、例えば、マウス、キーボード、タッチパネル、ボタン、スイッチおよびレバーなどユーザが操作する操作手段である。また、入力装置９１５は、例えば、赤外線やその他の電波を利用したリモートコントロール手段（いわゆる、リモコン）であってもよいし、画像処理装置１０の操作に対応した携帯電話やＰＤＡ等の外部接続機器９２９であってもよい。さらに、入力装置９１５は、例えば、上記の操作手段を用いてユーザにより入力された情報に基づいて入力信号を生成し、ＣＰＵ９０１に出力する入力制御回路などから構成されている。画像処理装置１０のユーザは、この入力装置９１５を操作することにより、画像処理装置１０に対して各種のデータを入力したり処理動作を指示したりすることができる。
【０１０１】
出力装置９１７は、取得した情報をユーザに対して視覚的または聴覚的に通知することが可能な装置で構成される。このような装置として、ＣＲＴディスプレイ装置、液晶ディスプレイ装置、プラズマディスプレイ装置、ＥＬディスプレイ装置およびランプなどの表示装置や、スピーカおよびヘッドホンなどの音声出力装置や、プリンタ装置、携帯電話、ファクシミリなどがある。出力装置９１７は、例えば、画像処理装置１０が行った各種処理により得られた結果を出力する。具体的には、表示装置は、画像処理装置１０が行った各種処理により得られた結果を、テキストまたはイメージで表示する。他方、音声出力装置は、再生された音声データや音響データ等からなるオーディオ信号をアナログ信号に変換して出力する。
【０１０２】
ストレージ装置９１９は、画像処理装置１０の記憶部の一例として構成されたデータ格納用の装置である。ストレージ装置９１９は、例えば、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）等の磁気記憶部デバイス、半導体記憶デバイス、光記憶デバイス、または光磁気記憶デバイス等により構成される。このストレージ装置９１９は、ＣＰＵ９０１が実行するプログラムや各種データ、および外部から取得した画像データ等の各種データなどを格納する。
【０１０３】
ドライブ９２１は、記録媒体用リーダライタであり、画像処理装置１０に内蔵、あるいは外付けされる。ドライブ９２１は、装着されている磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリ等のリムーバブル記録媒体９２７に記録されている情報を読み出して、ＲＡＭ９０５に出力する。また、ドライブ９２１は、装着されている磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリ等のリムーバブル記録媒体９２７に記録を書き込むことも可能である。リムーバブル記録媒体９２７は、例えば、ＤＶＤメディア、ＨＤ−ＤＶＤメディア、Ｂｌｕ−ｒａｙメディア等である。また、リムーバブル記録媒体９２７は、コンパクトフラッシュ（登録商標）（ＣｏｍｐａｃｔＦｌａｓｈ：ＣＦ）、メモリースティック、または、ＳＤメモリカード（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ  ｍｅｍｏｒｙ  ｃａｒｄ）等であってもよい。また、リムーバブル記録媒体９２７は、例えば、非接触型ＩＣチップを搭載したＩＣカード（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ  ｃａｒｄ）または電子機器等であってもよい。
【０１０４】
接続ポート９２３は、機器を画像処理装置１０に直接接続するためのポートである。接続ポート９２３の一例として、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）ポート、ｉ．Ｌｉｎｋ等のＩＥＥＥ１３９４ポート、ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）ポート等がある。接続ポート９２３の別の例として、ＲＳ−２３２Ｃポート、光オーディオ端子、ＨＤＭＩ（Ｈｉｇｈ−Ｄｅｆｉｎｉｔｉｏｎ  Ｍｕｌｔｉｍｅｄｉａ  Ｉｎｔｅｒｆａｃｅ）ポート等がある。この接続ポート９２３に外部接続機器９２９を接続することで、画像処理装置１０は、外部接続機器９２９から直接各種のデータを取得したり、外部接続機器９２９に各種のデータを提供したりする。
【０１０５】
通信装置９２５は、例えば、通信網９３１に接続するための通信デバイス等で構成された通信インターフェースである。通信装置９２５は、例えば、有線または無線ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、Ｂｌｕｅｔｏｏｔｈ、またはＷＵＳＢ（Ｗｉｒｅｌｅｓｓ  ＵＳＢ）用の通信カード等である。また、通信装置９２５は、光通信用のルータ、ＡＤＳＬ（Ａｓｙｍｍｅｔｒｉｃ  Ｄｉｇｉｔａｌ  Ｓｕｂｓｃｒｉｂｅｒ  Ｌｉｎｅ）用のルータ、または、各種通信用のモデム等であってもよい。この通信装置９２５は、例えば、インターネットや他の通信機器との間で、例えばＴＣＰ／ＩＰ等の所定のプロトコルに則して信号等を送受信することができる。また、通信装置９２５に接続される通信網９３１は、有線または無線によって接続されたネットワーク等により構成され、例えば、インターネット、家庭内ＬＡＮ、赤外線通信、ラジオ波通信または衛星通信等であってもよい。
【０１０６】
以上、本発明の各実施形態に係る画像処理装置１０の機能を実現可能なハードウェア構成の一例を示した。上記の各構成要素は、汎用的な部材を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用するハードウェア構成を変更することが可能である。
【０１０７】
＜まとめ＞
以上説明したように、本発明の各実施形態に係る画像処理装置および画像処理方法では、バイナリ輪郭画像が有する以下のような特徴を利用することにより、バイナリ輪郭画像を、高速かつ高精度にロスレス圧縮することが可能となる。
【０１０８】
（１）バイナリ画像は画素値「１」と画素値「０」のみから構成されるため、ランレングスコーディング法における「画素値を表す配列」が不要となる。
（２）ランレングスコーディング法における「頻度を表す配列」を、偶数番目の要素の集合と奇数番目の要素の集合とに分割することにより、各画素値の頻度を表す配列を、別個に生成することができる。
（３）バイナリ輪郭画像において、輪郭線はほぼ一定の幅を有しているため、輪郭画素の頻度を表す配列には、同じような値が要素として観測される。
（４）バイナリ輪郭画像では、上端および下端近傍の複数の横線、ならびに、左端および右端近傍の複数の縦線が、背景画素のみから構成される場合が多い。
【０１０９】
本発明の各実施形態に係る画像処理装置および画像処理方法では、処理対象となる画像を、複数の画素×１行のデータであると考え、２回のランレングスコーディング法を行うことにより、輪郭画素に関するデータ配列を、効率よく圧縮することが可能となる。これにより、本発明の各実施形態に係る画像処理装置および画像処理方法では、圧縮に要する計算時間を抑制しながら、圧縮性能を向上させることができる。
【０１１０】
以上、添付図面を参照しながら本発明の好適な実施形態について説明したが、本発明はかかる例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【０１１１】
なお、上述の説明では、処理対象領域を画素単位で複数の行に区分し、複数の行を順に連結した一つのデータ配列に対してランレングス符号化処理を行う場合について説明した。しかしながら、上記例に限定されるわけではなく、処理対象領域を複数の列に区分して、複数の列を順に連結して生成したデータ配列に対して、ランレングス符号化処理を行っても良い。
【図面の簡単な説明】
【０１１２】
【図１】バイナリ画像の種類について説明するための説明図である。
【図２Ａ】ランレングスコーディング法について説明するための説明図である。
【図２Ｂ】ランレングスコーディング法について説明するための説明図である。
【図２Ｃ】ランレングスコーディング法について説明するための説明図である。
【図３Ａ】ランレングスコーディング法について説明するための説明図である。
【図３Ｂ】ランレングスコーディング法について説明するための説明図である。
【図３Ｃ】ランレングスコーディング法について説明するための説明図である。
【図４】チェーンコーディング法について説明するための説明図である。
【図５】本発明の第１の実施形態に係る画像処理装置の構成を説明するためのブロック図である。
【図６】同実施形態に係る画像処理装置について説明するための説明図である。
【図７】同実施形態に係る画像処理装置について説明するための説明図である。
【図８】同実施形態に係る画像処理方法について説明するための流れ図である。
【図９】同実施形態に係る画像処理方法の適用例について説明するための説明図である。
【図１０】チェーンコーディング法を用いた画像処理結果を説明するための説明図である。
【図１１】本発明の各実施形態に係る画像処理装置のハードウェア構成を説明するためのブロック図である。
【符号の説明】
【０１１３】
１０    画像処理装置
１０１    処理対象領域選定部
１０３    ランレングス符号化部
１０５    第一次ランレングス符号化部
１０７    画素頻度情報抽出部
１０９    画素頻度情報分割部
１１１    第二次ランレングス符号化部
１１３    符号化情報生成部
１１５    記憶部
【図１】
2010136181.tif 000005
【図２Ａ】
2010136181.tif 000006
【図２Ｂ】
2010136181.tif 000007
【図２Ｃ】
2010136181.tif 000008
【図３Ａ】
2010136181.tif 000009
【図３Ｂ】
2010136181.tif 000010
【図３Ｃ】
2010136181.tif 000011
【図４】
2010136181.tif 000012
【図５】
2010136181.tif 000013
【図６】
2010136181.tif 000014
【図７】
2010136181.tif 000015
【図８】
2010136181.tif 000016
【図９】
2010136181.tif 000017
【図１０】
2010136181.tif 000018
【図１１】
2010136181.tif 000019