以下に、本発明の実施の形態について、図を参照しながら詳細に説明する。以下の説明では、本発明に係る画像処理装置が画像形成装置の一部を成す形態を例示する。
[1.第1実施形態]
図1は、第1実施形態に係る画像形成装置1の機能的構成を示すブロック図である。画像形成装置1は、コピー機能及びスキャナ機能等を有するデジタル複合機である。画像形成装置1は、画像処理装置10、画像入力装置20、画像出力装置30及び送信装置40を備えている。
画像入力装置20、画像処理装置10、画像出力装置30及び送信装置40には、操作パネル50が接続されている。操作パネル50は、ユーザが画像形成装置1の動作モードを設定するための設定ボタン及びテンキー等の操作部(不図示)と、液晶ディスプレイ等で構成される表示部(不図示)とを備える。
画像形成装置1で実行される各種処理は、不図示の制御部(CPU(Central Processing Unit)あるいはDSP(Digital Signal Processor)等のプロセッサを含むコンピュータ)が制御する。画像形成装置1の制御部は、不図示のネットワークカード及びLANケーブルを介して、ネットワークに接続されたコンピュータ及び他のデジタル複合機等とデータ通信を行う。以下、画像形成装置の各部について詳述する。
画像入力装置20は、原稿から画像を光学的に読み取る。画像入力装置20は、たとえばCCD(Charge Coupled Device)を有するカラースキャナよりなり、原稿からの反射光像を、CCDを用いてRGB(R:赤,G:緑,B:青)のアナログ信号として読み取り、画像処理装置10へ出力する。画像入力装置20は、スキャナでなくてもよく、たとえばデジタルカメラ等であってもよい。
画像処理装置10は、前段の画像処理として、画像入力装置20から入力されたRGBのアナログ信号に対して、A/D変換部102、シェーディング補正部104、原稿種別判別部106、入力階調補正部108及び領域分離処理部110にて各後述する画像処理を実行することによって、RGBのデジタル信号(以下、RGB信号という)からなる画像データを生成する。
また、画像処理装置10は、後段の画像処理として、領域分離処理部110が出力したRGB信号に対して色補正部112、黒色生成下色除去部114、空間フィルタ処理部116、出力階調補正部120及び階調再現処理部122にて各後述する画像処理を実行することによって、CMYK(C:シアン,M:マゼンタ,Y:イエロー,K:ブラック)のデジタル信号からなる画像データを生成して、ストリームとして画像出力装置30へ出力する。なお、画像出力装置30へ出力される前に、画像データが記憶部に一旦記憶されてもよい。記憶部は、不揮発性の記憶装置(たとえばハードディスク)である。
画像出力装置30は、画像処理装置10が生成した画像データに基づいて画像を出力する。画像出力装置30は、画像処理装置10から入力された画像データに基づいて、熱転写、電子写真、又はインクジェット等の方式により、記録シート(たとえば記録用紙等)上にカラー画像を形成(印刷)して出力する。
前記では、画像出力装置30はカラー画像を出力する構成とするが、記録シート上にモノクローム画像(白黒画像)を形成して出力する構成であってもよい。この場合、画像処理装置にて、カラー画像の画像データがモノクローム画像の画像データに変換されてから画像出力装置へ出力される。
更にまた、画像処理装置10は、領域分離処理部110が出力したRGB信号に対して色補正部112、空間フィルタ処理部116、解像度変換処理部118、出力階調補正部120及び階調再現処理部122にて各後述する画像処理を実行する。
そして、圧縮処理部124にて画像圧縮処理を実行することによって、圧縮されたカラー画像、グレースケール画像および白黒2値画像の画像データを有する圧縮ファイルを生成し、送信装置40へ出力する。なお、送信装置40へ出力される前に、圧縮ファイルが記憶部に一旦記憶されてもよい。
特に白黒2値画像の圧縮ファイルを生成する際、画像処理装置10は、図2に示すような操作パネルの表示においてカラーモードで白黒2値が選択され、画質優先が選択されている場合や、モード設定で自動が選択され、原稿種別判別部106で原稿がモノクロ原稿であり画質が優先されるべき原稿モードであると判別される場合、領域分離処理部110が出力したRGB信号に対して階調再現処理部122にて疑似階調表現可能な2値化処理を実行すると共に圧縮処理部124で辞書ベースの可逆圧縮を行って送信装置40へ出力する。
また、操作パネルにおいてカラーモードで白黒2値が選択され、サイズ優先が選択されている場合や、モード設定で自動が選択され、原稿種別判別部106で原稿がモノクロ原稿でありサイズが優先されてもよい原稿モードであると判別される場合、領域分離処理部110が出力したRGB信号に対して階調再現処理部122にて単純2値化処理を実行すると共に圧縮処理部でランレングスベースの可逆圧縮を行って送信装置へ40出力する。
送信装置40は、画像処理装置10が生成した圧縮ファイルを外部へ送信する。送信装置は、図示しない公衆回線網、LAN(Local Area Network)又はインターネット等の通信ネットワークに接続可能であり、ファクシミリ又は電子メール等の通信方法により、通信ネットワークを介して外部へ圧縮ファイルを送信する。
たとえば、操作パネルにおいてscan to e-mailモードが選択されている場合、ネットワークカード、モデム等を用いてなる送信装置40は、圧縮ファイルをe-mailに添付し、設定された送信先へ送信する。
なお、ファクシミリ送信を行う場合は、画像形成装置1の制御部が、モデムを用いてなる送信装置にて、相手先との通信手続きを行い、送信可能な状態が確保されたときに、圧縮ファイルに対して圧縮形式の変更等の必要な処理を施してから、相手先に通信回線を介して順次送信する。
また、ファクシミリを受信する場合、画像形成装置1の制御部は、送信装置40にて通信手続きを行いながら、相手先から送信されてくる圧縮ファイルを受信して、画像処理装置10に入力する。
画像処理装置10では、受信した圧縮ファイルに対し、不図示の圧縮/伸張処理部で伸張処理が施される。圧縮ファイルを伸張することによって得られた画像データには、必要に応じて、不図示の処理部で回転処理及び/又は解像度変換処理等が施され、また、出力階調補正部120で出力階調補正が施され、階調再現処理部122で階調再現処理が施される。各種画像処理が施された画像データは、画像出力装置30へ出力され、画像出力装置30にて、記録シート上に画像が形成される。
以下では、画像処理装置10の構成について、画像処理装置10における画像処理を詳述しながら説明する。
A/D変換部102は、画像入力装置20から画像処理装置10へ入力されたRGBのアナログ信号を受け付け、RGBのアナログ信号をRGBのデジタル信号(即ちRGB信号)へ変換し、変換したRGB信号をシェーディング補正部104へ出力する。
シェーディング補正部104は、A/D変換部102から入力されたRGB信号に対して、画像入力装置20の照明系、結像系及び撮像系で生じる各種の歪みを取り除く処理を行う。次いで、シェーディング補正部104は、歪みを取り除いたRGB信号を原稿種別判別部106へ出力する。
原稿種別判別部106では、シェーディング補正部104から入力されたRGBの反射率信号をRGB各色の輝度を示す輝度信号に変換し、エッジ特徴、網点特徴、写真特徴などの特徴量を検出し、文字、印刷写真、又は写真(連続階調写真)等の原稿のモードを判別する原稿種別判別処理が実行される。
また、ACS(Auto Color Select)と呼ばれる原稿のカラー判別を行う処理でRGB各色の輝度情報から入力された画像データがカラー原稿かモノクロ原稿かを判別する。カラー判別の方法は様々であるが、一例として、RGBの各信号の値を比較し、その差が一定の値以上あれば、色画素としてカウントし、色画素としてカウントした画素数が所定閾値以上だったら、その原稿をカラー原稿とし、そうでなければモノクロ原稿とするという方法でカラー判定を行う。
原稿種別判別部106はシェーディング補正部104から入力されたRGB信号をそのまま後段の入力階調補正部108に出力する。原稿種別判別処理の判別結果は、後段の画像処理に反映される。
入力階調補正部108は、RGB信号に対して、カラーバランスの調整、下地濃度の除去、及びコントラストの調整等の画質調整処理を行う。その後、入力階調補正部108は処理を行ったRGB信号を領域分離処理部110へ出力する。
領域分離処理部110は、入力階調補正部108から入力されたRGB信号が表す画像中の各画素を、文字領域、網点領域、又は写真領域のいずれかに分離する。
また、領域分離処理部110は、分離結果に基づき、各画素がいずれの領域に属しているかを示す領域識別信号を、黒色生成下色除去部114、空間フィルタ処理部116及び階調再現処理部122へ出力する。更に、領域分離処理部110は、入力階調補正部108から入力されたRGB信号を、そのまま後段の色補正部112へ出力する。
色補正部112は、最終出力先がカラー画像出力装置の場合、領域分離処理部110から入力されたRGB信号をCMYのデジタル信号(以下、CMY信号という)へ変換し、色再現の忠実化実現のために、不要吸収成分を含むCMY色材の分光特性に基づいた色濁りをCMY信号から取り除く処理を行う。
次いで、色補正部112は、色補正後のCMY信号を黒色生成下色除去部114へ出力する。一方、最終出力先が送信装置40の場合、カラーモードがフルカラーに設定されている場合やカラーモードが自動に設定され、原稿種別判別部106で原稿がカラー原稿であると判別されていた場合、領域分離処理部110から入力されたRGB信号を色空間を表す国際標準規格の一つであるsRGBのデジタル信号(以下、sRGB信号という)へ変換する。
また、カラーモードがグレースケールや白黒2値に設定されている場合やカラーモードが自動に設定され、原稿種別判別部106で原稿がモノクロ原稿であると判別されていた場合、グレースケール信号へ変換する処理を行う。次いで、色補正部112は、色補正後のsRGB信号やグレースケール信号を空間フィルタ処理部116へ出力する。
黒色生成下色除去部114は、色補正部112から入力されたCMY信号に基づき、CMY信号から黒色(K)信号を生成する黒色生成処理と、CMY信号から黒色生成で得たK信号を差し引いて新たなCMY信号を生成する処理とを行う。この結果、CMY3色のデジタル信号は、CMYK4色のデジタル信号(以下、CMYK信号という)に変換される。次いで、黒色生成下色除去部114は、CMY信号を変換したCMYK信号を空間フィルタ処理部116へ出力する。
黒色生成処理の一例としては、一般に、スケルトン・ブラックによる黒色生成を行う方法が用いられる。この方法では、スケルトン・カーブの入出力特性をy=f(x)、入力されるデータをC,M,Y、出力されるデータをC',M',Y',K'、UCR(Under Color Removal)率をα(0<α<1)とすると、黒色生成下色除去処理は、下記の式(1)〜式(4)で表わされる。
K'=f(min(C,M,Y)) ・・・(1)
C'=C−αK' ・・・(2)
M'=M−αK' ・・・(3)
Y'=Y−αK' ・・・(4)
ここで、UCR率α(0<α<1)とは、CMYが重なっている部分をKに置き換えてCMYをどの程度削減するかを示すものである。式(1)は、CMYの各信号強度の内の最も小さい信号強度に応じてK信号が生成されることを示している。
空間フィルタ処理部116は、黒色生成下色除去部114から入力されたCMYK信号または色補正部112から入力されたsRGB信号やグレースケール信号の画像データに対して、領域分離処理部110から入力された領域識別信号に基づいてデジタルフィルタによる空間フィルタ処理を行い、空間周波数特性を補正することによって、画像のぼやけ又は粒状性劣化を改善する。
たとえば、領域分離処理部110にて文字に分離された領域に対しては、空間フィルタ処理部116は、文字の再現性を高めるために、高周波成分の強調量が大きいフィルタを用いて空間フィルタ処理を行う。また、領域分離処理部110にて網点に分離された領域に対しては、空間フィルタ処理部は、入力網点成分を除去するためのローパス・フィルタ処理を行う。
次いで、空間フィルタ処理部116は、処理後のCMYK信号を出力階調補正部120へ、sRGB信号やグレースケール信号を解像度変換処理部118へ出力する。
解像度変換処理部118は、入力画像の解像度から予め指定された出力解像度になるように解像度変換処理を行う。例えば、画僧入力装置から600dpi×600dpiで読み込まれた画像データを操作パネルで指定された300dpi×300dpiに変換するために、水平方向2画素×垂直方向2画素の計4画素のsRGBの各信号やグレースケール信号の各階調値の平均を求めることで入力解像度の半分の出力解像度に変換する。次いで、変換したsRGB信号を圧縮処理部124へ、グレースケール信号を階調再現処理部122又は圧縮処理部124へ出力する。
出力階調補正部120は、空間フィルタ処理部116から入力されたCMYK信号に対して、画像出力装置30の特性に基づく出力階調補正処理を行い、出力階調補正処理後のCMYK信号を階調再現処理部122へ出力する。
階調再現処理部122は、出力階調補正部から入力されたCMYK信号に対して、領域分離処理部110から入力された領域識別信号に基づいて、中間調処理を行う。たとえば、領域分離処理部110にて文字に分離された領域に対しては、階調再現処理部122は、高域周波成分の再現に適した高解像度のスクリーンによる2値化又は多値化の処理を行う。
また、領域分離処理部110にて網点に分離された領域に対しては、階調再現処理部122は、階調再現性を重視したスクリーンでの2値化又は多値化の処理を行い、処理後の画像データを画像出力装置へ出力する。
一方、解像度変換処理部118から入力されたグレースケール信号に対しては、カラーモードが白黒2値で画質優先が選択されている場合やカラーモードが自動に設定され、原稿種別判別部106で原稿がモノクロ原稿であると判別されていて画質が優先されるべき原稿と判別されている場合、白黒2値の中間調処理を行った白黒2値信号を出力する。
また、カラーモードが白黒2値でサイズ優先が選択されている場合やカラーモードが自動に設定され、原稿種別判別部106で原稿がモノクロ原稿であると判別されていてサイズを優先しても良い原稿と判別されている場合、単純2値化処理を行った白黒2値信号を出力する。次いで、階調再現処理部122は、処理後の画像データを圧縮処理部へ出力する。
圧縮処理部124は、原稿種別判別部106から入力された原稿種別判別信号と、sRGB信号やグレースケール信号または白黒2値信号からなる画像データとに基づき、圧縮ファイルを生成する。
圧縮処理部124に入力される画像データがsRGB信号やグレースケール信号の場合、JPEGなどの非可逆圧縮が行われ、圧縮ファイルとして出力される。
一方、白黒2値信号の場合、カラーモードが白黒2値で画質優先が選択されている場合やカラーモードが自動に設定され、原稿種別判別部で原稿がモノクロ原稿と判別されていて画質が優先されるべき原稿と判別されている場合、deflateアルゴリズムなどを用いた辞書ベースの可逆圧縮が行われ、圧縮ファイルとして出力され、カラーモードが白黒2値でサイズ優先が選択されている場合やカラーモードが自動に設定され、原稿種別判別部106で原稿がモノクロ原稿と判別されていてサイズを優先しても良い原稿と判別されている場合、MHやMR、MMRなどで可逆圧縮が行われ、圧縮ファイルとして出力される。
何れかの圧縮が行われた画像データを有する圧縮ファイルは、一旦記憶部に格納され、たとえば、操作パネルにおいて、scan to e-mailモードが選択されている場合、送信装置40から、メールに添付されて、設定された送信先に送信される。
送信装置40で白黒2値画像の画像データを有する圧縮ファイルを送信する際の階調再現処理部122は、入力された画像データに対して2値化処理を実行する。その際の階調再現処理部122の詳細について、以下で説明する。
図3は送信装置で白黒2値画像の画像データを有する圧縮ファイルを送信する際の階調再現処理部122の処理構成を示すブロック図である。
階調再現処理部122は(疑似階調)2値化処理部1222、(単純)2値化処理部1224、2値画像出力選択部1226からなる。(疑似階調)2値化処理部1222は入力された画像データに対し、疑似階調表現可能な2値化方法(誤差拡散法やディザマトリクス法など)で処理を行って白黒2値信号を出力する。
一方、(単純)2値化処理部1224は単純2値化で処理を行って白黒2値信号を出力する。
2値画像出力選択部1226は、操作パネルにおいてカラーモードで白黒2値が選択され、画質優先が選択されている場合や、モード設定で自動が選択され、原稿種別判別部106で原稿がモノクロ原稿と判別されていて画質が優先されるべき原稿モードと判別される場合、(疑似)2値化処理部1222の白黒2値信号を出力する。
また、操作パネルにおいてカラーモードで白黒2値が選択され、サイズ優先が選択されている場合や、モード設定で自動が選択され、原稿種別判別部で原稿がモノクロ原稿と判別されていてサイズが優先されてもよい原稿モードと判別される場合、(単純)2値化処理部1224の白黒2値信号を出力する。
なお、図3では2種類の2値化処理を先に行い、その後、どちらの白黒2値信号を出力するかを選択する構成としたが、それとは逆に、先にどちらの2値化処理部を選択するかを決定し、その後、選択された2値化処理部で白黒2値画像を出力するような構成にしても良い。
送信装置40で白黒2値画像の画像データを有する圧縮ファイルを送信する際の圧縮処理部124は、入力された2値画像データに対して圧縮処理を実行する。その際の圧縮処理部の詳細について、以下で説明する。
図4は送信装置40で白黒2値画像の画像データを有する圧縮ファイルを送信する際の圧縮処理部124の処理構成を示すブロック図である。圧縮処理部124は圧縮処理選択部1242、第1圧縮処理部1244、第2圧縮処理部1246、第3圧縮処理部1248からなる。
圧縮処理選択部1242は、操作パネルにおいてカラーモードで白黒2値が選択され、画質優先が選択されている場合や、モード設定で自動が選択され、原稿種別判別部で原稿がモノクロ原稿と判別されていて画質が優先されるべき原稿モードと判別される場合は、第1圧縮処理部1244を実行する。
また、操作パネルにおいてカラーモードで白黒2値が選択され、サイズ優先が選択されている場合や、モード設定で自動が選択され、原稿種別判別部で原稿がモノクロ原稿と判別されていてサイズが優先されてもよい原稿モードと判別される場合は、第2圧縮処理部1246を実行する。
それ以外の場合(カラーモードでフルカラーやグレースケールが選択された場合や、カラーモードで自動が選択され、原稿種別判別部で原稿がカラー原稿と判別された場合)は第3圧縮処理部1248を実行する。
第1圧縮処理部1244は入力された白黒2値画像データに対し、deflateアルゴリズムなどを用いた辞書ベースの可逆圧縮処理を行って圧縮画像を出力する。第2圧縮処理部1246はMHやMR、MMRなどのランレングスベースの可逆圧縮処理を行って圧縮画像を出力する。第3圧縮処理部1248はJPEGなどの非可逆圧縮処理を行って圧縮画像を出力する。
なお、図4では3種類の圧縮処理部の中から1つの圧縮処理部を選択してから、選択された圧縮処理部で圧縮処理を行う構成としたが、それとは逆に、先に複数の圧縮処理を並行して行い、その後、複数の圧縮ファイルから1種類の圧縮ファイルを選択して出力するような構成にしても良い。
以下では、階調再現処理部122の各処理について図5と図6のフローチャートを用いながら詳述する。
図5は図2の操作パネルにおいてカラーモードで白黒2値が選択される場合の階調再現処理部122のフローチャートである。
まず、入力されたグレースケール画像に対し、誤差拡散処理と単純2値化処理を並列で処理する(ステップS102、ステップS104)。そして、操作パネルの設定でカラーモードの白黒2値が選択された際に選択可能となる「画質優先」か「サイズ優先」の何れのボタンが選択されたかに応じて何れの白黒2値画像を出力するか決定する。
具体的には、サイズ優先が選択されていた場合には(ステップS106;No)、2値画像出力選択部1226で(単純)2値化処理部1224の出力が選択され、単純2値化処理の白黒2値信号を出力する。
一方、画質優先が選択されていた場合には(ステップS106;Yes)、原稿モードの設定も確認する。原稿のモードが文字モードである場合には(ステップS108;No)、2値画像出力選択部1226で(単純)2値化処理部1224の出力が選択され、単純2値化処理の白黒2値信号を出力する(ステップS112)。
それ以外のモードの場合には、2値画像出力選択部1226で(疑似階調)2値化処理部1222の出力が選択され、誤差拡散処理の白黒2値信号を出力する(ステップS108;Yes→ステップS110)。
なお、図2の操作パネルのモード設定でカラーモードの白黒2値を選択した際に選択可能となる「画質優先」と「サイズ優先」のボタンは、初期設定として画質優先が選択された状態になっているものとする。
図6は図2の操作パネルにおいてモード設定で自動が選択される場合の階調再現処理部122のフローチャートである。モード設定が自動の場合、図2の操作パネルのカラーモードと原稿モードは選択不可となり、原稿種別判別部106で、カラーモードと原稿モードが自動的に判別される。
カラーモードの判定はACSで行われるが、ACSで判定された結果がモノクロ原稿でないと判定されていた場合には、階調再現処理は行わずに次の圧縮処理部に進む。もし、モノクロ原稿と判定されていた場合には(ステップS152;Yes)、入力されたグレースケール画像に対し、誤差拡散処理(ステップS154)と単純2値化処理(ステップS156)とを並列で処理する。
そして、原稿種別判別部106で文字モードと判別されている場合には(ステップS158;No)、2値画像出力選択部1226で(単純)2値化処理部1224の出力が選択され、白黒2値信号を出力する。
それ以外の場合には(ステップS158;Yes)、2値画像出力選択部で(疑似階調)2値化処理部1222が選択され、誤差拡散処理の白黒2値信号を出力する(ステップS160)。
なお、図5、図6では疑似階調表現可能な2値化方法として誤差拡散法を用いているが、ディザマトリクス法など他の疑似階調表現可能な2値化方法を用いても構わない。
以下では、圧縮処理部124の処理について図7と図8のフローチャートを用いながら詳述する。
図7は図2の操作パネルにおいてカラーモードで白黒2値が選択される場合の圧縮処理部124のフローチャートである。操作パネルの設定でカラーモードの白黒2値が選択された際に選択可能となる「画質優先」か「サイズ優先」の何れのボタンが選択されたかに応じて何れの圧縮処理を行うか決定する。
具体的には、サイズ優先が選択されていた場合には、MH/MR/MMRなどのランレングスベースの圧縮処理を行う(ステップS202;No→ステップS208)。
一方、画質優先が選択されていた場合には、原稿のモードも確認し、原稿のモードが文字モードである場合には、MH/MR/MMRなどのランレングスベースの圧縮処理を行う(ステップS202;Yes→ステップS204;No→ステップS208)。それ以外の場合には、deflateアルゴリズムなどを用いた辞書ベースの圧縮処理を行う(ステップS202;Yes→ステップS204;Yes→ステップS206)。
図8は図2の操作パネルにおいてモード設定で自動が選択される場合の階調再現処理部122のフローチャートである。モード設定が自動の場合、事前にACSで判定された結果がモノクロ原稿でないと判定されていた場合には、圧縮処理選択部1242でJPEG圧縮(例えば、第3圧縮処理部1248)を選択し圧縮処理を行う(ステップS252;No→ステップS260)。
もし、モノクロ原稿と判定されており、原稿種別判別部106で文字モードと判別されている場合には、圧縮処理選択部1242でMH/MR/MMRなどのランレングスベースの圧縮(例えば、第2圧縮処理部1246)を選択し圧縮処理を行う(ステップS252;Yes→ステップS254;No→ステップS258)。それ以外の場合には、圧縮処理選択部1242でdeflateアルゴリズムなどを用いた辞書ベースの圧縮(例えば、第1圧縮処理部1244)を選択し圧縮処理を行う(ステップS252;Yes→ステップS254;Yes→ステップS256)。
以下では、各階調再現処理の方法について図9を用いて説明する。単純2値化処理は、固定閾値を用いて閾値よりも大きな階調値の画素を白画素、閾値以下の階調値の画素を黒画素に変換する。
図9(a)および図9(d)は階調再現処理部に入力されたグレースケール画像データの一部であり、図9(a)は絵柄の一部を表し、図9(d)は文字の一部を表している。ここで、単純2値化処理の固定閾値が127に設定されていたとすると、図9(a)および図9(d)を単純2値化処理した結果は図9(b)および図9(e)のようになる。なお、図9(b)および図9(e)では、白画素を1、黒画素を0として表している。
一方、誤差拡散処理は、同様に固定閾値で2値化を行うが、その際発生した誤差を周辺画素に重み付けして分配する。具体的に一例を挙げると、注目画素位置をP(x,y)とするとき、周辺画素として、P1(x+1,y)、P2(x−1,y+1)、P3(x,y+1)、P4(x+1,y+1)を選択し、各周辺画素位置に対して重み付けをする。
重み付けの例としては、P1(x+1,y)に対して7/16、P2(x−1,y+1)に対して3/16、P3(x,y+1)に対して5/16、P4(x+1,y+1)に対して1/16を割り当てる。なお、分母の値は分子の合計値であり、画像の端で画素の無い部分に対しては誤差の振り分けができないため、存在する周辺画素のみを選択し、分子の値はそのままで、分母の値を存在する画素の分子の値の合計値として重み付けする。
また、誤差拡散による処理結果は単純2値化同様白画素を1、黒画素を0であるが、誤差を分配する際には、元の階調値との差分となるため、白画素については1ではなく255とみなし、元の階調値との差分を求める。例えば、注目画素値が160の場合、閾値が127に設定されていたとすると、注目画素値は1に変換されると共に、差分値として160−255=−95が算出され、この−95を周辺画素に重み付けして分配することになる。
更に、分配した誤差を加算した結果、周辺画素値が0よりも小さくなってしまう場合はその周辺画素値を0とし、逆に周辺画素値が255よりも大きくなってしまう場合は周辺画素値を255とする。このような方法で処理を行うことで、図9(a)および図9(d)を誤差拡散処理した結果は図9(c)および図9(f)のようになる。
また、誤差拡散処理の代わりにディザマトリクス処理を行っても良い。ここでは、図9(g)に示すような4×4画素サイズのディザマトリクスを使用した例を示す。図9(g)のディザマトリクスの数字は閾値を表しており、この閾値よりも大きな階調値の画素の場合に1を、閾値以下の場合に0とする処理である。例えば、図9(a)の左上の階調値が90であるので、ディザマトリクスの左上の閾値8よりも大きいということから、図9(c’)の左上のように1となる。同様に各画素に対して対応するディザマトリクスの閾値と比較していくと、最終的に、図9(a)および図9(d)をディザマトリクス処理した結果は図9(c’)および図9(f’)のようになる。
これら図9の結果を見ても、絵柄のような階調性のある画像については誤差拡散処理の方が、階調再現性が良く、文字のような直線の多い画像の場合には単純2値化の方が、直線がきれいに再現できていることがわかる。
以下では、圧縮処理の方法について図10を用いて説明する。ランレングスベースの圧縮は、同じもの(ラン)がいくつ連続しているかという情報で置き換えていくデータ圧縮方法である。そのため、ランが連続しているほどデータが圧縮できる。
ランレングスベースのデータ圧縮方法のアルゴリズムを簡単に説明すると、図10(a)の(i)に示すように、A(例えば白画素)という記号とB(例えば黒画素)という記号があり、Aが4つ連続し、次にBが8つ連続し、次にAが2つ連続し、次にBが2つ連続しているという場合を考える。
この場合、元々の記号の数(データ量)は16であるが、これをA4B8A2B2というように記号とその連続数で表現しなおすと、データ量は8で済むことになる。
しかしながら、図10(a)の(ii)に示すように、AとBの連続があまりない場合には、同じように記号とその連続数で表現しなおした場合、元々のデータ量が16に対し、ランレングスベースの圧縮後のデータ量は24となってしまい、元々のデータ量よりも増えてしまっていることがわかる。
このように、ランが連続しているほどデータ量を少なくでき、逆に連続しないと、最悪の場合、データ量が増えてしまうのがランレングスベースのデータ圧縮方法である。このようなデータ圧縮方法を用いた代表的なものにファクシミリで用いられているMHやMR、MMRなどが挙げられる。
一方、辞書ベースの圧縮は、例えば、deflateアルゴリズムの場合、何文字のパターン(単語)がどこにあるかという情報で置き換えていくデータ圧縮方法である。そのため、単語単位で同じパターンが頻繁に出現するほどデータが圧縮できる。
辞書ベースのデータ圧縮方法を簡単に説明すると、図10(a)と同じ記号のデータ列があったときに、図10(b)に示すように表される。ここで、(L,d)はL≦dの場合、L文字の単語がd文字前に存在することを表し、L>dの場合、L文字になるまで手前のd文字を繰り返すことを表す。
つまり、図10(b)の(i)の場合、A(3,1)ということは、L>dなので、3文字になるまで手前の1文字(“A”)を繰り返すことを表し、最初のAと合わせてAが4つ並んでいることを表している。
同様にB(7,1)はL>dなので、Bが合計8つ並んでいることを表し、(4,10)はL≦dなので、4文字の単語(“AABB”)が10文字手前にあることを表している。
更に、図10(b)の(ii)の場合、ABAの後、3文字の単語(“ABA”)が3文字手前にあり、“BB”の後、8文字の単語(“ABAABABB”)が8文字手前にあることを表しており、図10(a)の(ii)と比べると、少ない情報量で表せていることがわかる。
このように、辞書ベースのデータ圧縮方法は長い単語のパターンが頻出するほど、圧縮効果が高くなる。このdeflateアルゴリズムを用いたデータ圧縮方法の代表的なものに、ZIPやGZIPなどが挙げられる。
ランレングスベースのデータ圧縮方法、辞書ベースのデータ圧縮、何れも上記のデータ圧縮のための変換を行った後、それぞれのラン長、単語とその長さ、単語の一致位置といったものをハフマン符号に置き換えることで符号化し、最終的な圧縮ファイルを生成する。
以下では、それぞれの階調再現処理と圧縮処理の組合せによる特長について図11を用いて詳述する。
図11(a)は文字画像に対して単純2値化処理を行った白黒2値画像を表し、図11(b)は文字画像に対して誤差拡散処理を行った白黒2値画像を表している。また、図11(c)は絵柄画像に対して単純2値化処理を行った白黒2値画像を表し、図11(d)は絵柄画像に対して誤差拡散処理を行った白黒2値画像を表している。
図9や図11からわかるように、2値化の方法により、白画素と黒画素の出現の仕方が異なることがわかる。単純2値化処理の場合、水平方向に画素の変化を見ていくと、比較的黒画素や白画素が連続している。
そして、このように画素が連続することで、図11(a)のように文字等の直線が見やすく再現されている。一方、図11(c)のように絵柄は細部が消えて見えなくなってしまっている。
このことより、文字画像などのコントラストのはっきりした線画の画像については単純2値化処理を用いた方が、画質が良くなるということがわかる。
一方、誤差拡散処理の場合、水平方向に画素の変化を見ていくと、比較的白画素と黒画素が短い間で変化していることがわかる。そして、このように画素が局所的に交互に出現することにより、図11(d)のように絵柄の細部が見えるようになり、誤差拡散は2値化する際の誤差を周辺画素に拡散して周辺全体での平均的な輝度を保とうとする2値化手法のため、少し離れた位置から見ると周辺画素と輝度が平均化されて疑似階調として見えるようになる。
一方、文字画像などは平均的な輝度を保とうとするための弊害として、図11(b)のようにエッジ周辺にノイズの画素が出現してしまったり、直線がガタガタになってしまったりしている。このことより、写真や絵柄などの連続階調表現された画像については誤差拡散処理を用いた方が、画質が良くなるということがわかる。
続いて、各階調再現処理に対する各圧縮方法を適用したときの特長であるが、図10を用いて前述したように、MH/MR/MMRなどのランレングスベースの圧縮は、黒画素や白画素が連続するほど高い圧縮効果が期待できる圧縮符号化方式である。
そのため、前述したように単純2値化処理された白黒2値画像の方が、黒画素や白画素が連続しやすいため、効率よく圧縮処理を行えるということがわかる。
一方、誤差拡散された白黒2値画像は黒画素や白画素が連続しづらいため、ランレングスベースの圧縮処理では非効率となり、最悪な場合、元のデータ量よりも圧縮符号化されたデータ量の方が大きくなってしまうこともあり得る。
しかし、黒画素や白画素が連続しづらい誤差拡散された白黒2値画像を何画素かの白画素と黒画素のまとまりで見ていくと、似たようなパターンが出現していることがある。このような場合、ランレングスベースのような画素単位での同色画素の連続性をみるのではなく、図10を用いて前述したように、同一パターンをそのパターンの長さと位置の情報で置き換えていく辞書ベースの圧縮処理の方が圧縮効率を上げられる可能性がある。
そのため、誤差拡散処理された白黒2値画像は、辞書ベースの圧縮処理を用いた方が良いことがわかる。一方、単純2値化された白黒2値画像でも辞書ベースの圧縮処理は可能であり、ランレングスベースの圧縮と同等以上の圧縮率を得られることもあるが、特に単純2値化と相性の良い文字画像の場合などでは、同一パターンの出現頻度よりも同色画素の連続性頻度の方が高く一度に圧縮できるデータ量も大きいので、圧縮効率の点からはランレングスベースの方が良いということになる。
なお、辞書ベースの圧縮処理において、パターンを見つけるときの画素値の取り扱いには、2種類の方法が考えられる。1つは1画素を1文字と考えて単語のパターンを検出する方法、もう1つは、1画素1ビットということから8画素を1バイトとみなし、8画素を1文字と考えて単語単位のパターンを検出する方法である。
辞書ベースの圧縮処理で2値画像データを容易に扱うには1画素を1文字と考えて単語のパターンを検出する方法が良いと考えられるが、圧縮効率を考えるならば、8画素を1文字と考えて単語単位のパターンを検出する方法の方が情報量として8画素が1文字に圧縮されることからも良いと考えられる。
[2.第2実施形態]
づついて、第2実施形態について説明する。第1実施形態では、画像処理装置を画像形成装置が有する画像処理装置に適用した構成について説明したが、第2実施形態では、フラットベッドスキャナ等の画像読取装置が有する画像処理装置に適用した例について説明する。
なお、第1実施形態の説明に用いた図面に記載されている部材と同じ機能を有する部材については、以下の説明においても同じ符号を付記する。また、それらの各部材の詳細な説明はここでは繰り返さない。
図12は、第2実施形態に係る画像処理装置12を備える画像読取装置2の構成を示すブロック図である。図12に示すように、画像読取装置2は、画像処理装置12、画像入力装置20、送信装置40、記憶部(不図示)及び操作パネル50を備えている。
画像処理装置12は、A/D変換部102、シェーディング補正部104、原稿種別判別部106、入力階調補正部108、領域分離処理部110、色補正部112、空間フィルタ処理部116、解像度変換処理部118、出力階調補正部120、階調再現処理部122及び圧縮処理部124を備えている。
画像読取装置2で実行される各種処理は、画像読取装置2に備えられる図示しない制御部(CPU(Central Processing Unit)あるいはDSP(Digital Signal Processor)等のプロセッサを含むコンピュータ)により制御される。
本実施形態では、画像読取装置2は、スキャナに限定されることはなく、たとえば、デジタルスチルカメラ、書画カメラ、あるいは、カメラを搭載した電子機器類(たとえば、携帯電話、スマートフォン、タブレット端末等)であってもよい。
このように、本実施形態によれば、各種装置に、画像読取装置2を組み込むことで、本発明を適用した処理を実現することができる。
[3.第3実施形態]
つづいて、第3実施形態について説明する。第3実施形態は、第1実施形態の図5において、誤差拡散処理と、単純2値化処理とを行った後に、出力されるものを選択したが、先に判定を行ってから2値化処理を行う実施形態である。
第3実施形態では、第1実施形態における階調再現処理部122を図13(a)の階調再現処理部122bに置き換え、図5の処理を図13(b)の処理に置き換えたものである。第1実施形態と同一の構成部、同一の処理について同一の符号を付している。
すなわち、本実施形態によれば、先に画質やモード等が判定され、その後に2値化処理が実行される。これにより、各処理を並列して行う必要がなく、必要な処理だけ行えば良いこととなる。
[4.第4実施形態]
つづいて、第4実施形態について説明する。第4実施形態は、原稿モードをパネルから選択せずに、認識結果に基づいて自動的に設定する実施形態である。
例えば、第3実施形態に適用した場合について、図14を参照して説明する。図14は、図13(b)の処理を置き換えたものであり、同一の処理には同一の符号を付して説明を省略する。
すなわち、第4実施形態においては、画質優先選択がされている場合、原稿には文字が多く含まれている文字原稿か否かを判定する(ステップS402)。認識された原稿に文字が多く含まれている場合には単純2値化処理をして単純2値化された白黒2値信号を出力する(ステップS404;Yes→ステップS104→ステップS112)。
他方、認識された原稿に文字があまり含まれていない場合には誤差拡散処理をして誤差拡散された白黒2値信号を出力する(ステップS404;No→ステップS102→ステップS110)。
このように、本実施形態によれば、利用者が原稿の種類を意識しなくとも、適切な2値化処理が選択され、適切な白黒2値信号が出力されることとなる。
[5.効果]
上記説明した各実施形態によれば、2値画像の電子化ファイルを生成する際、疑似階調表現可能な2値化方法で処理を行った場合に圧縮率の向上が期待できる辞書ベースの可逆圧縮を行って電子化ファイルを作成し、また、単純2値化で処理を行った場合に圧縮率の向上が期待できるランレングスベースの可逆圧縮を行って電子化ファイルを作成することで、各2値化処理された白黒2値画像に対して常に圧縮効率の良い圧縮ファイルを提供することが可能となる。
また、2値画像の電子化ファイルを生成する際、画質を優先すると選択された場合には疑似階調表現可能な2値化方法で処理を行うと共に辞書ベースの可逆圧縮を行って電子化ファイルを作成し、また、ファイルサイズを優先すると選択された場合には単純2値化で処理を行うと共にランレングスベースの可逆圧縮を行って電子化ファイルを作成することで、優先される条件を満たしつつ、極力ファイルサイズを小さくすることが可能となる。
また、2値画像の電子化ファイルを生成する際、写真や絵柄などがある原稿モードと判別された場合には疑似階調表現可能な2値化方法で処理を行うと共に辞書ベースの可逆圧縮を行って電子化ファイルを作成し、また、文字モードと判別された場合には単純2値化で処理を行うと共にランレングスベースの可逆圧縮を行って電子化ファイルを作成することで、それぞれの原稿モードでの2値画像の画質を向上させつつ、極力ファイルサイズを小さくすることが可能となる。
また、写真や絵柄などの画質を優先した白黒2値画像を生成することが可能となる。また、写真や絵柄などの画質を優先した白黒2値画像を生成することが可能となる。
また、deflateアルゴリズムを用いた圧縮処理では、同じ白黒画素の並びのパターンが頻繁に出現するほどデータが圧縮できるため、疑似階調表現可能な2値化処理と組み合わせることで、圧縮率を向上させることが可能となる。
また、MH/MR/MMRを用いた圧縮処理では、黒画素や白画素が連続するほどデータが圧縮できるため、単純2値化処理と組み合わせることで、圧縮率を向上させることが可能となる。
[6.変形例]
上述した実施形態では、本発明に係る画像処理装置を、画像形成装置あるいは画像読取装置に適用する例を示したが、これに限るものではない。本発明に係る画像処理装置を、たとえばサーバ装置に適用してもよい。この場合のサーバ装置の構成の一例は、画像形成装置あるいは画像読取装置の画像入力装置より読み込まれた画像信号を、ネットワークを介して受信する受信装置と、実施の形態1にて説明した画像処理装置と、当該画像処理装置から出力された圧縮画像を、ネットワークを介して送信する送信装置と、を備えたサーバ装置である。
このようにサーバ装置を構成することにより、画像形成装置あるいは画像読取装置にて画像読み取りされた画像信号を、ネットワークを経由して受信し、前記の画像処理装置により白黒2値画像の画像データを有する圧縮ファイルが作成され、出力された圧縮ファイルをユーザの端末装置(たとえば、パーソナルコンピュータやタブレット端末等)に送信する、という使い方が可能となる。
また、このサーバ装置により、既に設置された画像形成装置あるいは画像読取装置を交換することなく、2値化処理と圧縮処理の連携機能を利用することが可能となる。また、このような構成にすることにより、もし、サイズ優先で2値化処理結果に満足がいかなかったり、画質優先で圧縮処理後のファイルサイズが大きすぎたりした場合でも、原稿をスキャンしなおすことなく、サーバ装置のみで、2値化処理と圧縮処理のやり直しが容易に実現可能となる。
前記で説明した画像処理装置やサーバ装置は、集積回路(ICチップ)等に形成された論理回路(ハードウェア)によって実現してもよいし、CPU(Central Processing Unit)を用いてソフトウェアによって実現してもよい。
後者の場合、画像処理装置やサーバ装置は、各機能を実現するソフトウェアであるプログラムの命令を実行するCPU、前記プログラム及び各種データがコンピュータ(又はCPU)で読み取り可能に記録されたROM(Read Only Memory)又は記憶装置(これらを「記録媒体」と称する)、前記プログラムを展開するRAM(Random Access Memory)等を備えている。そして、コンピュータ(又はCPU)が前記プログラムを前記記録媒体から読み取って実行することにより、本発明の目的が達成される。前記記録媒体としては、「一時的でない有形の媒体」、たとえば、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路等を用いることができる。また、前記プログラムは、該プログラムを伝送可能な任意の伝送媒体(通信ネットワークや放送波等)を介して前記コンピュータに供給されてもよい。なお、本発明は、前記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
なお、前記した画像処理装置及び画像処理方法は、入力としてカラーの画像データを扱う構成としたが、これに限るものではなく、グレースケールや白黒2値の画像データを扱う構成であってもよい。
本発明は上述した各実施の形態に限定されるものではなく、種々の変更が可能である。すなわち、本発明の要旨を逸脱しない範囲内において適宜変更した技術的手段を組み合わせて得られる実施の形態についても本発明の技術的範囲に含まれる。