(57)【要約】  【課題】  あるランレングスに対する縮小演算をする際、既に演算された同一ラインの他ランレングスを参照して、画素欠落の少ない縮小画像を得ること。  【解決手段】  ＢＷ(ｍ)＝１は、縮小演算しているランレングスの論理が黒であることを意味しており、Ｄ(ｍ)＝０は、縮小後にそのランレングスに隣接するランレングスの論理が白である旨を意味している。縮小演算によってランレングスが０になってしまう黒画素列について、縮小後に変化点となる予定であったものを抽出する条件を示している（図３）。この条件を満たす場合、決定値ＮＬ(ｍ)を１とし、ＭＯＤ(ｍ)は暫定値ＭＯＤ'(ｍ)からｙを減算する（Ｓ８）。その後Ｄ(ｍ＋１)は、前記同様ＢＷ(ｍ)を代入する（Ｓ６）。一方、ＢＷ(ｍ)＝１かつＤ(ｍ)＝０かどうか判定し、条件を満たさない場合（Ｓ７；Ｎ）、暫定値ＮＬ'(ｍ)、ＭＯＤ'(ｍ)がそれぞれ決定値ＮＬ(ｍ)、ＭＯＤ(ｍ)となる（Ｓ９）。【選択図】    図２
2005092757.tif 000002
【特許請求の範囲】
【請求項１】
２値画像データに対して一方向における白黒各々のランレングスを単位として変換することにより、その方向に対する縮小画像データを得るランレングス縮小を行う画像処理装置において、
任意のランレングスに対する縮小演算に際して、既に縮小演算された同一ラインの他ランレングスを参照して縮小演算を行うことを特徴とする画像処理装置。
【請求項２】
任意のランレングスに対する縮小演算に際して、既に縮小演算された同一ラインの他ランレングスのうち、縮小後に隣接するランレングスを参照して縮小演算することを特徴とする請求項１記載の画像処理装置。
【請求項３】
任意のランレングスＡの演算結果が０であった場合、既に演算された同一ラインの他ランレングスのうち、縮小後に隣接するランレングスＢの論理がランレングスＡと逆の論理であったときは、前記ランレングスＡの演算結果を強制的に１にし、ランレングスＢの論理がランレングスＡと同じ論理であった場合は、そのまま０とすることを特徴とする請求項２記載の画像処理装置。
【請求項４】
任意のランレングスＡの論理が黒画素で、且つ演算結果が０であった場合、既に演算された同一ラインの他ランレングスのうち、縮小後に隣接するランレングスＢの論理が白画素であったときは、前記ランレングスＡの演算結果を強制的に１にし、ランレングスＢの論理がランレングスＡと同じ黒画素であったときは、そのまま０とすることを特徴とする請求項２記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファクシミリや複写機における２値画像データ縮小する画像処理装置に関する。
【背景技術】
【０００２】
ファクシミリの画像に代表される２値画像データは、変倍率に応じて画素単位に規則正しく変倍処理を施すと様々な不都合が発生する。特に縮小時は顕著であり、規則正しく単純に間引き処理を施すと、罫線や文字中の線、アンダーラインなど細い線などに画像欠落が生じることがあった。そのため、文字の欠落や判別がしにくかったり、罫線やアンダーラインが消失することがあった。そのため、従来より特に縮小方式について様々な対策が提案されている。
【特許文献１】特開平５−２５０４６８号
【特許文献２】特開平１０−３４１３３５号
【発明の開示】
【発明が解決しようとする課題】
【０００３】
特許文献１記載の発明では、乗算結果の整数部が０の際には原画像の１画素が縮小画素の１画素に変換されるようにする手段と、１画素に変換したことによって生じた負の小数部の値が所定値を越える際には、原画像の１画素が縮小画像に変換されない手段を具備することで、白黒が交互に発生するような原画像の縮小においてつぶれや変形を最小限に抑えることを目的としている。しかし、この方式は原画像が１画素のランレングスに限定されている上、一般的な２値画像で重要な情報となる黒のランレングスに対する保存という面で不十分といえる。
【０００４】
また、特許文献２記載の発明では、一方の方向に対する１ライン分の画像データをランレングス単位で変倍率を乗じて変倍後のランレングスを求め、各々の変倍後のランレングスの小数部を変倍後の１ラインのドット数に合うように小さいものから順に切り捨て変倍後のイメージを作るもので、そのとき例外処理として変倍後のランレングスの整数部が０のときは切り捨てるのを後回しにし、それでも縮小が十分でないときは白ドットから削除する方式を提案している。
この方式によれば、縮小により消滅する（整数部０の）ランレングスの発生を避けることができるが、１ライン全てのランレングス縮小演算が終了しなければ最終的な縮小画像データを生成することができず、また各ランレングスの整数部と小数部を対応づけて格納するバッファメモリが１ライン分必要となる。これは変倍処理を少ないメモリリソースで実現しようとする場合の障害となるだけでなく、処理自体をＣＰＵによるソフトウェアで実現するケースを想定した場合に、ＣＰＵに負担をかけることになりかねない。
そこで、１ライン分の２値画像データをランレングス単位で縮小する演算方式にあって、比較的簡素な逐次演算処理で縮小データをリアルタイムに算出でき、かつ小さい黒ランレングスを消失させないことで画像上重要な情報を保存可能なことが望ましい。
【０００５】
そこで、本発明の第１の目的は、あるランレングスに対する縮小演算をする際、既に縮小演算された同一ラインの他ランレングスを参照することで、対象のランレングスにおける縮小演算時の例外的処理を可能とし、画素欠落の少なく良好な縮小画像を得ることができる画像処理装置を提供することである。
【０００６】
本発明の第２の目的は、あるランレングスに対する縮小演算をする際、既に縮小処理された同一ラインの他のランレングスの中で、縮小後の画像において隣接するランレングスを参照することで、対象のランレングスにおける縮小演算時の例外的処理を可能とし、隣接画素との関連を重視した縮小画像を得ることが可能な画像処理装置を提供することである。
【０００７】
本発明の第３の目的は、あるランレングスに対する縮小演算結果が０であった場合、既に縮小処理された同一ラインの他のランレングスのうち、縮小後の画像において隣接するランレングスの論理が演算対象のランレングスの論理と異なるときは、縮小演算結果を強制的に１にすることで、原画像における変化点を縮小画像において極力保存することができる画像処理装置を提供することである。
本発明の第４の目的は、あるランレングスの論理が黒画素で、かつ縮小演算結果が０であった場合、既に縮小処理された同一ラインの他ランレングスのうち、縮小後の画像において隣接するランレングスの論理が白画素であったときは、演算結果を強制的に１にすることで、原画像における黒画素を極力保存することができる画像処理装置を提供することである。
【課題を解決するための手段】
【０００８】
請求項１記載の発明では、２値画像データに対して一方向における白黒各々のランレングスを単位として変換することにより、その方向に対する縮小画像データを得るランレングス縮小を行う画像処理装置において、任意のランレングスに対する縮小演算に際して、既に縮小演算された同一ラインの他ランレングスを参照して縮小演算を行うことにより、前記第１の目的を達成する。
【０００９】
請求項２記載の発明では、請求項１記載の発明において、任意のランレングスに対する縮小演算に際して、既に縮小演算された同一ラインの他ランレングスのうち、縮小後に隣接するランレングスを参照して縮小演算することにより、前記第２の目的を達成する。
【００１０】
請求項３記載の発明では、請求項２記載の発明において、任意のランレングスＡの演算結果が０であった場合、既に演算された同一ラインの他ランレングスのうち、縮小後に隣接するランレングスＢの論理がランレングスＡと逆の論理であったときは、前記ランレングスＡの演算結果を強制的に１にし、ランレングスＢの論理がランレングスＡと同じ論理であった場合は、そのまま０とすることにより、前記第３の目的を達成する。
【００１１】
請求項４記載の発明では、請求項２記載の発明において、任意のランレングスＡの論理が黒画素で、且つ演算結果が０であった場合、既に演算された同一ラインの他ランレングスのうち、縮小後に隣接するランレングスＢの論理が白画素であったときは、前記ランレングスＡの演算結果を強制的に１にし、ランレングスＢの論理がランレングスＡと同じ黒画素であったときは、そのまま０とすることにより、前記第４の目的を達成する。
【発明の効果】
【００１２】
請求項１記載の発明では、あるランレングスに対する縮小演算に際して、既に演算された同一ラインの他のランレングスを参照しているので、縮小後の画像を考慮した上で逐次的に縮小画像を生成することができる。
請求項２記載の発明では、あるランレングスに対する縮小演算に際して、既に演算された同一ラインの他のランレングスのうち、縮小後に隣接するランレングスを参照するので、縮小後のドット連結性を考慮した上で逐次的に縮小画像を生成することができる。
【００１３】
請求項３記載の発明では、あるランレングスＡの演算結果が０であった場合に、既に演算された縮小後に隣接するランレングスＢの論理がランレングスＡと逆の場合は演算結果を１に、論理が同じ場合は０のままにしているので、縮小後の画像を逐次生成できる上、白または黒の孤立ドットが消失することを極力防ぐことができる。
請求項４記載の発明では、あるランレングスＡが黒画素で、かつ演算結果が０であった場合に、既に演算された縮小後に隣接するランレングスＢの論理が白画素である場合は演算結果を１に、黒画素である場合は０のままにしているので、縮小後の画像を逐次生成できる上、一般的に画像情報として重要な黒画素の孤立ドットが消失することを極力防ぐことができる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の好適な実施の形態を、図１ないし図５を参照して詳細に説明する。
図１は、本発明の実施の形態に係る２値画像データを縮小する画像処理システムの構成例を示した図である。この画像システムは、ＣＰＵ（中央演算処理装置）１、ＲＯＭ（リード・オンリ・メモリ）２、ＲＡＭ（ランダム・アクセス・メモリ）３、ＤＭＡＣ（ダイレクト・メモリ・アクセス・コントローラ）４、ＩＭＥＭ５より構成されている。
ＣＰＵ１は、装置全体の制御と画像データの縮小演算を行い、その制御手順はＲＯＭ２に格納されているプログラムに従って行われる。ＲＡＭ３は、画像データの処理に必要なワークエリアを確保するランダム・アクセス・メモリである。ＤＭＡＣ（ダイレクト・メモリ・アクセスコントローラ）４は、システム内の画像データの転送を専用に制御するＤＭＡコントローラであり、ＩＭＥＭは、画像データを保存するための大容量メモリである。このＩＭＥＭには少なくとも１ページ分の２値画像データが保存されているものとし、縮小処理に際しては、１ライン単位にＲＡＭ３へ転送され、ＲＡＭ３上でランレングス単位の縮小処理を施し、１ライン分の縮小データを生成の上、再度ＩＭＥＭ５へ戻すものとする。
【００１５】
この処理を１ページ分のライン数にわたって繰り返すことで１ページ分の画像データの縮小処理が完了する。但し、上記画像データの流れは、本実施の形態を適用するシステムの動作例として示すもので、これ以外の方式でも実現することが可能である。例えば、ＩＭＥＭ５からＲＡＭ３へランレングス単位に画像データを転送し、縮小処理を施すことでＲＡＭ３上に１ライン分の縮小画像データを形成する手順も考えられる。
また、他の実現手段としてＣＰＵ１によるソフトウェア方式を例としているが、実現手段についてもこれに限定されるものではない。つまり、縮小方法をハードウェアで構成することも可能である。
【００１６】
次に、本実施の形態の処理手順を、図２のフローチャートを参照して説明する。
まず、ここで用いる記号の説明をする。ｍはランレングスの識別番号であり、０は初期状態を規定するための架空のランレングスである。本実施の形態に係る縮小方式は白黒両方のランレングスに対して同じ処理を施すため、ｍが１つ増加するとランレングスの論理（白か黒か）は切り替わる。ＢＷ(ｍ)は、ｍ番目のランレングスの論理を表すもので、ここでは１が黒、０が白と規定している。この論理定義は逆であっても本実施の形態を実現することが可能である。
【００１７】
このフローチャートでは１番目のランレングスの論理を黒と仮定している。１番面のランレングスの論理を白と過程しても方式自体に影響は及ばない。Ｄ(ｍ)は、ｍ番目のランレングスに対して、縮小後に隣接するランレングスの論理を表しており、ＢＷ(ｍ)同様１が黒、０が白と規定する。Ｄ(ｍ)の論理をＢＷ(ｍ)と同様にするかどうかは方式自体に影響を及ぼすものではない。
隣接するランレングスは、既に縮小処理が終わっていることが条件であり、ｍ番目のランレングスに対しては(ｍ−１)番目以前のランレングスがその候補となる。(ｍ−１)番目の縮小後ランレングスが０でなければ、Ｄ(ｍ)はＢＷ(ｍ−１)となるが、(ｍ−１)番目の縮小後ランレングスが０の場合は、(ｍ−２)番目以前のランレングスの論理となる。
ＮＬ(ｍ)は、縮小後のランレングスを表しており、ＮＬ'(ｍ)は、ＮＬ(ｍ)を決定するための暫定ランレングスである。ＭＯＤ(ｍ)は、ＮＬ(ｍ)を算出する際に発生する剰余（整数）である。縮小率はｘ／ｙ（ｘ、ｙは正の整数、ｘ＜ｙ）で表され、ＭＯＤ(ｍ)はｙの値より必ず小さく、ＭＯＤ(ｍ)が縮小後の１画素に満たない端数であることを意味している。
【００１８】
このフローチャートは、１ライン分の縮小処理について示したものである。まず、初期状態を設定する（ステップ１）。縮小率は、ｘ／ｙで表されるが、例えば５０％の場合はｘ＝１、ｙ＝２でよい。Ｄ(１)＝０は最初のランレングスが縮小された場合、隣接するランレングスの論理を表すものであるが、初期状態としては白と仮定する。これについても制約になるものではないが、一般的に有効画像領域外を白として扱う場合が多いため白と仮定している。
ＭＯＤ(０)は、架空のランレングスの縮小演算による剰余となるので０とする。このような初期状態で実際のランレングスに対して縮小演算を行う。ｍがインクリメントして第１番目のランレングスの処理に入る（ステップ２）。暫定ランレングスＮＬ'(ｍ)を式(1)に基づいて算出する（ステップ３）。
【００１９】
ＮＬ'(ｍ)  ＝  ｉｎｔ [｛Ｌ(ｍ)* ｘ  + ＭＯＤ(ｍ−１)｝／ｙ]    ・・・(1)
【００２０】
この式（１）において、intは剰余切り捨てによる整数化処理である。Ｌ(ｍ)はｍ番目のランレングス値である。
続いて、暫定剰余ＭＯＤ'(ｍ)を式(2)に基づいて算出する。
【００２１】
ＭＯＤ'(ｍ)  ＝  ｍｏｄ [｛Ｌ(ｍ)* ｘ  + ＭＯＤ(ｍ−１)｝／ｙ]  ・・・(2)
【００２２】
この式（２）において、ｍｏｄは剰余の算出処理である。
ＮＬ'(ｍ)が算出されたら、その値が０か否かを判断する（ステップ４）。ＮＬ'(ｍ)が０でない場合は（ステップ４；Ｙ）、暫定値ＮＬ'(ｍ)、ＭＯＤ'(ｍ)がそれぞれ決定値ＮＬ(ｍ)、ＭＯＤ(ｍ)となる（ステップ５）。同時にＤ(ｍ＋１)＝ＢＷ(ｍ)と決定する（ステップ６）。
一方、ＮＬ'(ｍ)が０であった場合（ステップ４；Ｎ）、更にＢＷ(ｍ)＝１かつＤ(ｍ)＝０かどうか判定する（ステップ７）。
【００２３】
ここで、この物理的意味を解説する。ＢＷ(ｍ)＝１は、今、縮小演算しているランレングスの論理が黒であることを意味しており、Ｄ(ｍ)＝０は、縮小後にそのランレングスに隣接するランレングスの論理が白であることを意味している。つまり、縮小演算によってランレングスが０になってしまう黒画素列について、縮小後に変化点となる予定であったものを抽出する条件を示している（図３参照）。
この条件を満たす場合（ステップ７；Ｙ）、決定値ＮＬ(ｍ)を１とし、ＭＯＤ(ｍ)は暫定値ＭＯＤ'(ｍ)からｙを減算する（ステップ８）。このステップ７とステップ８が本実施の形態の特徴部分である。
その後、Ｄ(ｍ＋１)は、前記同様ＢＷ(ｍ)を代入する（ステップ６）。一方、ＢＷ(ｍ)＝１かつＤ(ｍ)＝０かどうか判定した結果、この条件を満たさない場合（ステップ７；Ｎ）、暫定値ＮＬ'(ｍ)、ＭＯＤ'(ｍ)がそれぞれ決定値ＮＬ(ｍ)、ＭＯＤ(ｍ)となる（ステップ９）。しかし、Ｄ(ｍ＋１)についてはＤ(ｍ)をそのまま代入する（ステップ１０）。これは、ランレングスが消失するため、次のランレングスに対して隣接するランレングスの論理が変化しないことを意味している。
上述のような処理を１ライン分のランレングスにわたって繰り返すことで１ラインの縮小処理を完了する。
【００２４】
次に、この処理手順に従って縮小を行う例を説明する。
図４は、本実施の形態による縮小方式によって縮小を施した画素列のイメージを示しており、その演算過程を図５の表に示してある。ｍ＝１〜４までのランレングスについてはＮＬ'(ｍ)≠０であり、図２のフローチャートのステップ４における判定は全て「Ｙｅｓ」である。
ｍ＝５のランレングスの演算時、ＮＬ'(ｍ)＝０となり同図ステップ４の判定が「Ｎｏ」となる。このとき、ＢＷ(ｍ)＝１であり、かつＤ(ｍ)＝０であるので、ステップ７は「Ｙｅｓ」となる。よって、強制的にＮＬ(ｍ)＝１となり、ＭＯＤ(ｍ)＝ＭＯＤ'(ｍ)―ｙの演算が施され、結果ＭＯＤ(ｍ)＝−１となる。
ｍ＝６のランレングスにおいては、やはりＮＬ'(ｍ)＝０となるが、ＢＷ(ｍ)＝０であり、Ｄ(ｍ)＝１であるので、ステップ７は「Ｎｏ」となる。その場合、ＮＬ(ｍ)、ＭＯＤ(ｍ)はＮＬ'(ｍ)、ＭＯＤ'(ｍ)の値がそのまま代入される。
【００２５】
ｍ＝７では同様にＮＬ'(ｍ)＝０となり、ＢＷ(ｍ)＝１であるがＤ(ｍ)＝１であるのでｍ＝６同様の処理となる。
以下、ｍ＝９でもｍ＝５と同じ処理が施され、黒画素が保存される。
図５のＮＬ(ｍ)の値が縮小後のランレングスになるので、その結果は、図４の縮小後の画像のようになる。
【図面の簡単な説明】
【００２６】
【図１】本発明の実施の形態に係る２値画像データを縮小する画像処理システムの構成例を示した図である。
【図２】本実施の形態の処理手順を図２のフローチャートである。
【図３】消失する黒画素を保存する条件を説明する図である。
【図４】本実施の形態による縮小方式によって縮小を施した画素列のイメージを示した図である。
【図５】図４の演算結果を示した表である。
【符号の説明】
【００２７】
１  ＣＰＵ（中央演算処理装置）
２  ＲＯＭ（リード・オンリ・メモリ）
３  ＲＡＭ（ランダム・アクセス・メモリ）
４  ＤＭＡＣ
５  ＩＭＥＭ
【図１】
2005092757.tif 000003
【図２】
2005092757.tif 000004
【図３】
2005092757.tif 000005
【図４】
2005092757.tif 000006
【図５】
2005092757.tif 000007