(57)【要約】【課題】単純間引きによる画像縮小処理において生じる文字や線の欠落を、より少ない処理コストで防ぐことができる。【解決手段】描画データによって示される画像からイメージ領域を取得する取得手段と、取得手段が取得したイメージ領域に対して縮小命令がなされているか否かを判定する判定手段と、判定手段によって縮小命令がなされていると判定された場合に、取得手段が取得したイメージ領域を構成する画素を二値化して得られる画像について、ヒストグラムを生成する生成手段と、縮小命令で指定される縮小率と生成手段が生成したヒストグラムとに基づき、取得手段が取得したイメージ領域から間引くべき候補ラインを決定し、当該イメージ領域から候補ラインを間引く間引き手段と、を備える。【選択図】図４
2018074237.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションにより生成される描画データに対してライン単位の間引き処理を行う画像処理装置であって、
前記描画データによって示される画像からイメージ領域を取得する取得手段と、
前記取得手段が取得したイメージ領域に対して縮小命令がなされているか否かを判定する判定手段と、
前記判定手段によって前記縮小命令がなされていると判定された場合に、前記取得手段が取得したイメージ領域を構成する画素を二値化して得られる画像について、ヒストグラムを生成する生成手段と、
前記縮小命令で指定される縮小率と前記生成手段が生成したヒストグラムとに基づき、前記取得手段が取得したイメージ領域から間引くべき候補ラインを決定し、当該イメージ領域から前記候補ラインを間引く間引き手段と、を備える
ことを特徴とする画像処理装置。
【請求項２】
前記生成手段は、前記二値化して得られる画像の、各ラインにおける黒画素数を示すヒストグラムを生成し、
前記間引き手段は、
前記縮小率に基づき、前記取得手段が取得したイメージ領域から間引くべき候補ラインを決定する決定手段と、
前記決定手段が決定した候補ラインが前記ヒストグラムのピークに対応するラインであって、かつ、当該候補ラインに、予め定められた画素数以上の黒画素が連続する黒画素群が含まれ、さらに、当該候補ラインの前後のラインに、当該黒画素群と隣接するように、予め定められた画素数以上の白画素が連続する白画素群が含まれる場合に、当該候補ラインの前後のラインのいずれかを新たな候補ラインとして決定し直す最適化処理を実行する最適化手段と、を含む
請求項１に記載の画像処理装置。
【請求項３】
前記最適化手段は、
前記決定手段が決定した候補ラインの前後のラインのいずれかを、新たな候補ラインとして決定し直す場合において、
前記ヒストグラムにおける、前記決定手段が決定した候補ラインの直前のラインと当該直前のラインの一つ前のラインとの度数差と、前記決定手段が決定した候補ラインの直後のラインと当該直後のラインの一つ後のラインとの度数差とを比較し、前記決定手段が決定した候補ラインの前後のラインのうち前記度数差が小さい方を新たな候補ラインとして決定し直す
請求項２に記載の画像処理装置。
【請求項４】
前記最適化手段は、
前記決定手段が決定した候補ラインの前後のラインのいずれかを、新たな候補ラインとして決定し直す場合において、
前記決定手段が決定した候補ラインの直前のラインが、すでに決定された他の候補ラインと連続すると判断した場合には、前記決定手段が決定した候補ラインの直後のラインを新たな候補ラインとして決定し直す
請求項２に記載の画像処理装置。
【請求項５】
前記最適化手段は、
前記ヒストグラムにおける度数が０であるラインが所定のライン数以上続く領域が検出された場合には、検出された当該領域に対しては前記最適化処理を適用しない
請求項２から請求項４のうちのいずれか１項に記載の画像処理装置。
【請求項６】
前記最適化手段は、
前記縮小命令で指定される縮小率に基づき決定したライン数のブロックごとに、前記最適化処理を実行し、
前記ブロックには、前記決定手段が決定した候補ラインが少なくとも１つ含まれる
請求項２から請求項５のうちのいずれか１項に記載の画像処理装置。
【請求項７】
前記最適化手段は、
前記決定手段が決定した候補ラインが前記ヒストグラムのピークに対応するラインでない場合には、前記決定手段が決定した当該候補ラインを含むブロックを分割し、分割して得られる領域ごとに前記最適化処理を実行する
請求項６記載の画像処理装置。
【請求項８】
前記最適化手段は、
前記決定手段が決定した候補ラインの前後のラインのいずれについても、新たな候補ラインとして決定できない場合には、前記決定手段が決定した当該候補ラインを含むブロックに対して、単純間引き以外の他の縮小処理を適用する
請求項６に記載の画像処理装置。
【請求項９】
前記間引き手段による処理が、
印刷時の副走査方向に対応するＹ方向と、印刷時の主走査方向に対応するＸ方向のそれぞれについて実行される
請求項１から請求項８のうちのいずれか１項に記載の画像処理装置。
【請求項１０】
前記生成手段は、
前記イメージ領域がカラー画像である場合には、前記イメージ領域をグレースケール化し、グレースケール化された前記イメージ領域を構成する画素を二値化する
請求項１から請求項９のうちのいずれか１項に記載の画像処理装置。
【請求項１１】
アプリケーションにより生成される描画データに対してライン単位の間引き処理を行う画像処理方法であって、
前記描画データによって示される画像からイメージ領域を取得する取得ステップと、
前記取得されたイメージ領域に対して縮小命令がなされているか否かを判定する判定ステップと、
前記判定ステップにおいて前記縮小命令がなされていると判定された場合に、前記取得されたイメージ領域を構成する画素を二値化して得られる画像について、ヒストグラムを生成する生成ステップと、
前記縮小命令で指定される縮小率と前記生成ステップにおいて生成されたヒストグラムとに基づき、前記取得されたイメージ領域から間引くべき候補ラインを決定し、当該イメージ領域から前記候補ラインを間引く間引きステップと、を含む
ことを特徴とする画像処理方法。
【請求項１２】
コンピュータを請求項１から請求項１０のうちのいずれか１項に記載の画像処理装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザからの印刷指示に応じてグラフィックスエンジンから送信される描画データに基づき、印刷装置が解釈可能な印刷データを生成する技術に関する。
【背景技術】
【０００２】
文字や細線を含むドキュメントを印刷する際、アプリケーションからプリンタドライバに対して、テキスト描画命令やライン描画命令ではなくイメージ描画命令として、描画命令が送られるケースがある。例えば、ドキュメントをスキャンして生成したイメージや、細線の組み合わせで表現したパターン描画イメージがドキュメントに含まれる場合である。また、文字や細線に対して透過やグラデーションのような装飾をアプリケーションで施した場合も、イメージ描画命令がプリンタドライバに送られる。
【０００３】
プリンタドライバにおいてイメージ属性の文字や細線を縮小する場合、バイリニア、バイキュービック、単純間引き（ニアレストネイバ）といった縮小方法が用いられる。バイリニアやバイキュービックといった補間アルゴリズムは、縮小しても細線が消えるようなことはないが、文字や細線のエッジ部分の鮮鋭性が失われる。一方、単純間引きでは鮮鋭性を保つことができるが、文字フォントや細線幅や描画位置によっては、文字や細線の一部が欠落してしまう場合がある。
【０００４】
そこで、単純間引きであっても文字や線が消えないように縮小する方法が提案されている（特許文献１）。特許文献１に記載の方法では、注目ラインとその１つ前のライン（前ライン）とを比較して、データが一致する場合に注目ラインを間引くことで、縮小処理に伴う文字や線の欠落を防止している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−４９９９８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１に記載の方法では、所定ライン数の周期で（例えば１０ラインごとに）間引き処理が繰り返されるが、各周期において早い段階で注目ラインと前ラインとのデータが一致しない場合、ラインの比較回数が多くなり処理コストを増大させる可能性がある。また、特許文献１に記載の方法では、注目ラインと前ラインとを比較する際、１画素ごとに一致するかを判定しているため、処理コストをさらに増大させる可能性がある。
【０００７】
そこで、本発明は、単純間引きによる画像縮小処理において生じる文字や線の欠落を、より少ない処理コストで防ぐことができる画像処理装置、画像処理方法、およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明による画像処理装置は、アプリケーションにより生成される描画データに対してライン単位の間引き処理を行う画像処理装置であって、描画データによって示される画像からイメージ領域を取得する取得手段と、取得手段が取得したイメージ領域に対して縮小命令がなされているか否かを判定する判定手段と、判定手段によって縮小命令がなされていると判定された場合に、取得手段が取得したイメージ領域を構成する画素を二値化して得られる画像について、ヒストグラムを生成する生成手段と、縮小命令で指定される縮小率と生成手段が生成したヒストグラムとに基づき、取得手段が取得したイメージ領域から間引くべき候補ラインを決定し、当該イメージ領域から候補ラインを間引く間引き手段と、を備えることを特徴とする。
【発明の効果】
【０００９】
本発明によれば、単純間引きによる画像縮小処理において生じる文字や線の欠落を、より少ない処理コストで防ぐことができる。
【図面の簡単な説明】
【００１０】
【図１】第１の実施例に係る印刷システムの構成の一例を示すブロック図である。
【図２】図１に示すパーソナルコンピュータのハードウェア構成の一例を示すブロック図である。
【図３】図１に示すパーソナルコンピュータの機能構成の一例を示すブロック図である。
【図４】第１の実施形態における描画イメージの縮小処理を示すフローチャートである。
【図５】描画イメージと、当該描画イメージから生成されるヒストグラムとの一例を示す説明図である。
【図６】第１の実施例における特別間引き処理を示すフローチャートである。
【図７】特別間引き処理を説明するための図である。
【図８】第２の実施例における特別間引き処理を示すフローチャートである。
【図９】第３の実施例における特別間引き処理を示すフローチャートである。
【図１０】白抜き文字の描画イメージと、当該描画イメージから生成されるヒストグラムとの一例を示す説明図である。
【発明を実施するための形態】
【００１１】
以下、本発明を実施するための第１の形態について図面を用いて説明する。なお、以下の実施例において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
【００１２】
［実施例１］
図１は、第１の実施例に係る印刷システムの構成の一例を示すブロック図である。本実施例に係る印刷システムは、パーソナルコンピュータ（ＰＣ）（以下、画像処理装置ともいう。）１０と、プリンタ（以下、印刷装置ともいう。）２０と、を備える。ＰＣ１０とプリンタ２０とは、ＬＡＮ１を介して接続される。ＬＡＮ１はイーサーネットの通信方式に対応している。ＬＡＮ１は、有線と無線のいずれの接続形態であっても良い。またＰＣ１０とプリンタ２０は、ＬＡＮ１の代わりに、Ｂｌｕｅｔｏｏｔｈ（登録商標）やＵＳＢなどで接続されていても良い。
【００１３】
図２は、図１に示すＰＣ１０のハードウェア構成の一例を示すブロック図である。ＰＣ１０は、図２に示すように、ＣＰＵ１０１と、ＲＡＭ１０２と、ＲＯＭ１０３、ネットワークＩ／Ｆ１０５と、キーボードＩ／Ｆ１０６と、ディスプレイＩ／Ｆ１０７と、外部メモリＩ／Ｆ１０８と、を含む。各デバイスは、システムバス１０４で接続される。また、ＰＣ１０は、キーボード１０９と、ディスプレイ１１０と、メモリ１１１とを含む。なお、キーボード１０９、ディスプレイ１１０、及び、メモリ１１１は、ＰＣ１０の外部に配置されていてもよい。
【００１４】
ＣＰＵ１０１は、ＲＡＭ１０２に記憶されているプログラムに従って、システムバス１０４に接続される各デバイスを総括的に制御する。ＲＡＭ１０２は、ＣＰＵ１０１の主メモリ、ワークエリア等として機能する。ＲＯＭ１０３は、各種プログラム及びデータを格納する。ＲＯＭ１０３は、各種フォントを記憶するフォントＲＯＭ１０３ａ、ブートプログラムやＢＩＯＳ等を記憶するプログラムＲＯＭ１０３ｂ、及び、各種データを記憶するデータＲＯＭ１０３ｃを有する。ネットワークＩ／Ｆ１０５は、本実施例ではＬＡＮ１に接続され、プリンタ２０などＬＡＮ１に接続された各装置との通信処理を行なう。キーボードコントローラＩ／Ｆ１０６は、キーボード１０９や不図示のポインティングデバイス（例えばマウス）からのキー入力を制御する。ディスプレイＩ／Ｆ１０７は、ディスプレイ１１０に対する表示処理を制御する。外部メモリＩ／Ｆ１０８は、ハードディスク（ＨＤ）等のメモリ１１１とのアクセスを制御する。メモリ１１１は、オペレーティングシステム（ＯＳ）１１２や、印刷システムを担うソフトウェア１１３や、ユーザファイル、編集ファイル等を含むデータ１１４を記憶する。なお、本実施例では、ＯＳ１１２としてＭｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）が使用されるものとする。
【００１５】
図３は、図１に示すＰＣ１０の機能構成の一例を示すブロック図である。アプリケーション１１は、ユーザの指示に基づきドキュメントを作成する。またアプリケーション１１は、作成したドキュメントに対する印刷指示をユーザから受け付けると、ＧＤＩ１２を用いて、ドキュメントの内容に応じた描画データを生成する。具体的には、アプリケーション１１に対して印刷指示がユーザによって与えられると、アプリケーション１１は、ＧＤＩ（Ｇｒａｐｈｉｃｓ  Ｄｅｖｉｃｅ  Ｉｎｔｅｒｆａｃｅ）のサービス関数群を呼び出す。それにより、ＧＤＩ１２から、ＧＤＩ描画命令が発行される。プリンタドライバ１３は、ＧＤＩ１２が発行するＧＤＩ描画命令により構成される描画データ（以下、「ＧＤＩ形式の描画データ」と呼ぶ。）を、プリンタ２０が解釈可能は印刷データ（いわゆるＰＤＬ（Ｐｒｉｎｔｅｒ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）データ）に変換し、プリンタ２０に出力する。プリンタドライバ１３では、単一または複数のフィルタが順に実行される。フィルタは、印刷処理の単位である。すなわち、あるフィルタの出力がその次に連結されたフィルタの入力となり、各フィルタが順次実行される。それにより、プリンタ２０に送信するためのＰＤＬデータが生成される。本実施例では、プリンタドライバ１３は、レイアウト処理を行うレイアウトフィルタ１４と、レンダリング処理を行うレンダリングフィルタ１５とを有する。レイアウトフィルタ１４は、入力されたＧＤＩ関数に対してＮｕｐ処理などのレイアウト処理を行う。Ｎｕｐ処理とは、Ｎページの論理ページを１ページの物理ページに縮小配置して印刷する処理である。レンダリングフィルタ１５は、入力されたレイアウト処理済みの描画データに対し、拡大縮小、回転などの画像処理を適用して描画オブジェクトを生成し、ＰＤＬデータに変換する。描画データの縮小処理については、アプリケーション１１で予め実行される場合と、プリンタドライバ１３で縮小処理を行う場合とがある。本実施例における縮小処理は、プリンタドライバ１３のレンダリングフィルタ１５が有する縮小処理部１７にて実行される。ポートモニタ１６は、ＰＤＬデータをプリンタ２０にＬＡＮ１を通じて送信する。なお、ここでは、グラフィックスエンジンとしてＧＤＩを例にして説明したが、ＧＤＩ１２の代わりに、その他のグラフィックスエンジンが用いられてもよい。
【００１６】
次に、プリンタドライバ１３における縮小処理を説明する。図４は、第１の実施形態における描画イメージの縮小処理を示すフローチャートである。図５は、描画イメージと、当該描画イメージから生成されるヒストグラムとの一例を示す説明図である。ここでは、縮小処理の対象として、図５（ａ）に示す「電」という描画イメージ５０１を例にする。
【００１７】
ステップＳ４０１において、プリンタドライバ１３のレンダリングフィルタ１５の縮小処理部１７は、アプリケーション１１を介して印刷指示がなされたドキュメント内に存在する、描画イメージを１つずつ取得する。具体的には、縮小処理部１７は、ＧＤＩ１２が発行するＧＤＩ描画命令の中から、イメージ描画命令を１つずつ取得する。それにより、印刷指示がなされたドキュメントに含まれるイメージ属性の領域（描画イメージ）が取得される。以下、描画イメージをイメージ領域ともいう。
【００１８】
ステップＳ４０２において、縮小処理部１７は、上記描画イメージに対して縮小命令がなされているか確認する。具体的には、縮小処理部１７は、イメージ描画命令に、縮小命令が付随しているかを確認する。縮小命令がなされている場合は、処理はステップＳ４０３に進む。一方、縮小命令がなされていない場合は、処理はステップＳ４０８に進む。
【００１９】
ステップＳ４０３において、縮小処理部１７は、描画イメージ５０１を白黒２値画像に変換する。二値化の方法としては、描画イメージが８ｂｉｔのグレースケール画像であって、白画素の画素値が０、黒画素の画素値が２５５である場合、画素値が２５５未満である画素の画素値を０とする方法がある。なお、縮小処理の対象を、純黒の文字や細線ではなく、ある程度の濃さを有する文字や細線とする場合には、所望の濃さに相当する閾値を設定した二値化や、大津の二値化アルゴリズムに従った二値化などを適用すればよい。
【００２０】
ステップＳ４０４において、縮小処理部１７は、描画イメージ５０１のヒストグラムを生成する。図５（ａ）に、「電」という文字の描画イメージ５０１と、そのＹ方向について生成したヒストグラム５０３を示す。ヒストグラム５０３は、描画イメージ５０１のＹ方について、各ラインにおける黒画素数を表している。なお、縮小処理部１７は、描画イメージ５０１のＸ方向についても同様にヒストグラム（図示せず）を生成する。ここで、Ｙ方向は、ドキュメント印刷時の副走査方向に対応する方向である。Ｘ方向は、ドキュメント印刷時の主走査方向に対応する方向である。
【００２１】
ステップＳ４０５において、縮小処理部１７は、生成したヒストグラムに基づいて、間引き最適化対象領域があるか、つまりライン単位の間引き処理を適用した場合に欠落する可能性がある文字や細線を含む領域があるかを判定する。以下、間引き最適化対象領域を文字領域ともいう。例えばヒストグラム５０３を見ると、破線５０５より小さいＹ座標と、破線５０６より大きいＹ座標のヒストグラムの値（度数）は０が続いていて、破線５０５と破線５０６とに挟まれたＹ座標の度数は０以上となっている。このように、ヒストグラムの度数が０であるラインが予め設定したライン数（以下、境界判定ライン数と呼ぶ。）以上続く場合には、文字や細線の境界と判断できる。それにより、破線５０５と破線５０６に挟まれた領域に文字や細線があると推定される。同様の処理がＸ方向においても行われるが、ここでは説明を省略する。領域５０７は、文字や細線があると推定された、間引き最適化対象領域である。
【００２２】
間引き最適化対象領域があると判定された場合は（ステップＳ４０５のＹＥＳ）、縮小処理部１７は、ステップＳ４０６の処理に進む。間引き最適化対象領域がないと判定された場合は（ステップＳ４０５のＮＯ）、縮小処理部１７は、ステップＳ４０７の処理に進んで、通常の単純間引きによる縮小処理を行い、ステップＳ４０８の処理に進む。ここで、通常の単純間引きによる縮小処理とは、上記縮小命令により指定される縮小率に基づき、規則的ラインを間引く処理である。なお、境界判定ライン数をいくつに設定するかにより、文字領域内に含まれる文字や細線の数は異なる。
【００２３】
ステップＳ４０６において、縮小処理部１７は、文字領域５０７に対して特別間引き処理を行い、文字領域以外に対しては通常の間引き処理を行う。ステップＳ４０６の特別間引き処理の詳細については、図６を用いて後述する。そして、処理はステップＳ４０８に進む。
【００２４】
ステップＳ４０８において、縮小処理部１７は、ドキュメント内に他に描画イメージが存在するか判定する。描画イメージが存在すれば（ステップＳ４０８のＹＥＳ）、縮小処理部１７は、ステップＳ４０１の処理に戻り、次の描画イメージに対してステップＳ４０１〜Ｓ４０７の処理を繰り返す。描画イメージがなければ（ステップＳ４０８のＮＯ）、縮小処理部１７は処理を終了する。
【００２５】
なお、ここでは、縮小処理の対象となる描画イメージに１つの文字が含まれる場合を例にしたが、描画イメージには複数の文字が含まれていてもよい。また、上記の処理は、文字以外の細線などにも適用可能である。
【００２６】
続いて、ステップＳ４０６の特別間引き処理について、図６を用いて説明する。図６は、第１の実施例における特別間引き処理を示すフローチャートである。図７は、特別間引き処理を説明するための図である。
【００２７】
ステップＳ６０１において、縮小処理部１７は、上記縮小命令により指定される縮小率に基づき、描画イメージ５０１において、間引き対象となるライン（以下、間引き対象ラインまたは候補ラインと呼ぶ。）を決定する。実際には、間引き対象ラインの座標が算出される。図７（ａ）には、文字領域５０７の拡大図が示されている。例えば文字領域５０７が２／３に縮小される場合、３ラインごとに１ライン間引かれる。つまり、このときの間引き対象ラインは、図７（ａ）において斜線の矢印で示すラインとなる。なお、上述したように、文字領域以外の領域、すなわち、ヒストグラムにおける度数が０であるラインが所定のライン数以上続く領域については、通常の間引き処理が適用される。したがって、以下では、描画イメージ５０１内の文字領域５０７以外の領域に対して行われる処理については説明を省略する。
【００２８】
ステップＳ６０２において、縮小処理部１７は、間引き対象ラインを間引くべきか否かを判定する間引き対象ライン判定（後述する、ステップＳ６０３〜Ｓ６０５の判定処理）において処理単位とするブロックのサイズを算出する。図７（ａ）に示す例では、３ラインごとに間引き対象ラインが１ライン選択される。しかし、ブロックのサイズを３ラインとすると、ブロックの１ライン目の判定時には、その直前のラインの情報が必要になる、また、ブロックの３ライン目の判定時には、その次のラインの情報が必要になる。したがって、間引き対象ライン判定に用いるブロックは、３ライン＋２ラインの５ラインとする。ただし、ブロック内において実際に間引かれるラインは、間引き対象ラインとその前後ラインの３ラインのうちのいずれかである。なお、本実施例では、縮小処理部１７は、Ｙ座標が小さいブロックから順に以降の処理を適用する。また、間引き対象ラインが描画イメージの端に位置する場合は、白画素で構成されたラインを補って判定を行えばよい。
【００２９】
ここから先の説明では、文字領域５０７内のブロック５０２を注目ブロックとする。注目ブロックの中のライン７０１は間引き対象ラインである。ヒストグラム５０４は、注目ブロック５０２に対応する注目ヒストグラムである。
【００３０】
ステップＳ６０３において、縮小処理部１７は、ヒストグラムにおいて、ライン７０１に対応する箇所がピークになっているかを判定する。判定方法としては、例えば、間引き対象ラインの度数が注目ヒストグラム内で一番大きく、その前後ラインとの度数差が、それぞれ所定の閾値以上であればピークとみなす方法がある。本実施例では度数差の閾値＝１０としたときに、注目ヒストグラム５０４では、
Ｙ＝１８の度数が最大
｜（Ｙ＝１８の度数）−（Ｙ＝１７の度数）｜＞１０
｜（Ｙ＝１８の度数）−（Ｙ＝１９の度数）｜＞１０
となる。したがって、縮小処理部１７は、Ｙ＝１８にピークがあると判断できる。ピークありと判定した場合は（ステップＳ６０３のＹＥＳ）、縮小処理部１７は、ステップＳ６０４の処理に進む。なお、図５（ａ）に示す漢字「電」を含む描画イメージ５０１では、水平ライン及び垂直ラインが多く、対応するヒストグラムにもピークが現れやすい。しかし、図５（ｂ）に示すひらがな「ぬ」を含む描画イメージ５０８では、対応するヒストグラム５０９において大きなピークが見られない。したがって、このような描画イメージの一部（ブロック）についてステップＳ６０３の判定がなされた場合には、ピークなしと判定され（ステップＳ６０３のＮＯ）、処理はステップＳ６１０に進む。ステップＳ６１０では、縮小処理部１７は、ステップＳ６０１で算出された間引き対象ライン（図７（ａ）において斜線の矢印で示されるライン）を間引いて、処理を終了する。
【００３１】
ステップＳ６０４において、ピークがあると判定されたライン（ここでは、ライン７０１）に、予め設定した画素数以上連続する黒画素があるかを判定する。ここで、連続する画素数の閾値Ｔｈ＿ｂを８とし、ライン７０１をスキャンして、黒画素が８画素以上連続する黒画素群を探索する。すると、黒画素が９画素連続している黒画素群７０５，７０６が検出される。従って、縮小処理部１７は、ステップＳ６０５の処理に進む。検出された黒画素群についての情報は黒画素連続情報として、黒画素群の開始座標と、黒画素群における黒画素の連続数とともに、縮小処理部１７に記憶される。閾値Ｔｈ＿ｂ以上黒画素が連続する黒画素群が存在しない場合は（ステップＳ６０４のＮＯ）、処理はステップＳ６１０に進む。
【００３２】
続いてステップＳ６０５において、縮小処理部１７は、ライン７０１の前後ライン（ライン７０３，７０４）に黒画素群に隣接する白画素群が存在するか判定する。具体的には、縮小処理部１７は、ライン７０１の前後ラインにおける、黒画素群と同じＸ座標領域に、予め設定した条件を満たす白画素群が存在するかを判定する。図７（ｂ）には、図７（ａ）に示す黒画素群７０５の拡大図が示されている。ここでは、黒画素群７０６と同じＸ座標領域において、閾値Ｔｈ＿ｗ以上白画素が連続する白画素群が存在するかが判定される。本実施例では、閾値Ｔｈ＿ｗは、以下の式により決定される。  
閾値Ｔｈ＿ｗ＝（黒画素群７０６の黒画素連続数／２）
図７（ｂ）に示す例では、ライン７０１の直前のライン７０３の、黒画素群７０６と同じＸ座標領域内に、白画素群７０７が存在する。白画素群７０７では、白画素が６画素連続している。また、ライン７０１の直後のライン７０４の、黒画素群７０６と同じＸ座標領域には、白画素群７０８が存在する。白画素群７０８では、白画素が９画素連続している。白画素群７０７，７０８はいずれも、閾値Ｔｈ＿ｗ（＝９／２）以上白画素が連続しているため（ステップＳ６０５のＹＥＳ）、処理はステップＳ６０６に進む。ライン７０１の前後ラインにおける、黒画素群と同じＸ座標領域に、閾値Ｔｈ＿ｗ以上白画素が連続する白画素群が存在しない場合は（ステップＳ６０５のＮＯ）、処理はステップＳ６１０に進む。
【００３３】
ステップＳ６０６において、縮小処理部１７は、ステップＳ６０３〜Ｓ６０５の判定結果より、間引き対象ライン７０１を間引きした場合に、文字の一部が欠落する可能性があると判定する。そして、縮小処理部１７は、間引き対象ライン７０１を間引き禁止ラインに決定するとともに、間引き対象となる新たな候補ライン（以下、次候補ラインともいう。）を決定する。次候補ラインは、間引き禁止ラインの前後のライン（ここでは、ライン７０３，７０４）のいずれかである。ライン７０３，７０４のどちらを間引くかを決定する方法としては、例えば、ライン７０３，７０４のうち先に出現するライン（すなわち、Ｙ座標が小さいライン）を間引く方法がある。当該方法によれば、ライン７０３が対象となる。また例えば、ライン７０３とその１つ前のライン７１１とのヒストグラム度数差と、ライン７０４とその１つ後のライン７１２との度数差とを比較して、度数差が少ない方のラインを次候補ラインとして選んで間引く方法がある。当該方法では、似たような傾向にあるラインを間引くことができるので、文字の形状をムラなく残しやすくなる。また例えば、ライン７０３，７０４のうち先に出現するライン７０３の１つ前のライン７１１が、ブロック５０２の１つ前のブロックにおいて間引かれている場合には、後に出現するライン７０４を間引く方法がある。これにより、２ライン連続して間引かれることがないので、文字プロポーションの崩れを防ぐことができる。
【００３４】
ステップＳ６０７において、全ブロックに対して処理が終了していなければ（ステップＳ６０７のＮＯ）、縮小処理部１７は、ステップＳ６０９に進む。ステップＳ６０９において、縮小処理部１７は、次の注目ブロックを決定する。そして、縮小処理部１７は、次の注目ブロックについてステップＳ６０３〜Ｓ６０６の処理を繰り返す。本実施例では、次の間引き対象ラインは図７（ａ）に示すライン７０９となり、次の注目ブロックはブロック７１０となる。一方、全ブロックに対して処理が終了していれば（ステップＳ６０７のＹＥＳ）、縮小処理部１７は、ステップＳ６０８の処理に進み、Ｘ方向Ｙ方向の両方について処理を終了したかを判定する。終了していなければ（ステップＳ６０８のＮＯ）、縮小処理部１７は、ステップＳ６０１の処理に戻って、Ｘ方向についてステップＳ６０１〜Ｓ６０７の処理を行う。Ｘ方向Ｙ方向の両方について処理が終了していれば（ステップＳ６０８のＹＥＳ）、縮小処理部１７は処理を終了する。
【００３５】
以上のように、本実施例では、ステップＳ６０１において、縮小率に基づき候補ラインを決定した後に、最適化処理（ステップＳ６０２〜Ｓ６０６の処理）を行って、候補ラインをより適切なラインに切り替える。それにより、単純間引きによる文字や細線の消失をより確実に防ぐことができる。また本実施例では、ヒストグラムを用いて候補ラインを間引くべきか否かを判定しているので、すべてのラインについて、間引くべきか否かの判定を行う必要がなく、処理コストを低減させることができる。また。特許文献１に記載された方法のように、１画素ごとに一致するか否かを判定するような処理を行う必要がないので、処理コストをさらに低減させることができる。
【００３６】
なお、本実施例では、図６に示すフローにて、グレースケール画像中の濃い濃度の文字や線に対して処理を行う場合を例にした。しかし、シアン（Ｃｙａｎ），マゼンタ（Ｍａｇｅｎｔａ），イエロー（Ｙｅｌｌｏｗ），ブラック（Ｂｌａｃｋ）などのカラーを用いて描かれる文字や線に対して処理を行うようにしてもよい。また、赤（Ｒｅｄ），緑（Ｇｒｅｅｎ），青（Ｂｌｕｅ）で描かれる文字や線に対して処理を行うようにしてもよい。このようにカラー画像に対して処理を行う場合には、カラー画像をグレースケール化してから、上記と同様の処理を行えばよい。その際、グレースケール画像への変換にはＮＴＳＣ、ｓＲＧＢなどのグレースケール変換式を用いるとよい。
【００３７】
また、Ｃｙａｎ，Ｍａｇｅｎｔａ，Ｙｅｌｌｏｗ，Ｂｌａｃｋ，Ｒｅｄ，Ｇｒｅｅｎ，Ｂｌｕｅといった純色で描かれたラインを間引き処理の対象とするようにしてもよい。
【００３８】
また、実線だけでなく、点線や破線を処理対象としてもよい。例えば、点線や破線を処理対象に含める場合には、ステップＳ６０３の判定に用いる閾値を、実線のみを処理対象とする場合に比べて低く設定すればよい。また、ステップＳ６０４の判定において、黒画素の連続数ではなく、一定画素数の連続画素内に含まれる黒画素数の割合（例えば、点線であるか否かを判定する場合には５０％）が、所定の閾値以上であるか否かを判定すればよい。
【００３９】
［実施例２］
第１の実施例では、ステップＳ６０３にて、ヒストグラムにおける、間引き対象ラインに対応する箇所にピークが存在しない場合は、ステップＳ６１０にて、当該間引き対象ラインを間引く例を説明した。本実施例では、ステップＳ６０３にてピークなしと判定された場合に、ブロックをさらに小さいパーツに分割して、各パーツに対して間引き対象ライン判定を再度実行する例を説明する。それにより、間引き対象ライン判定の精度をより高くすることができ、画質をさらに向上させることができる。
【００４０】
図８は、第２の実施例における特別間引き処理を示すフローチャートである。図８に示すステップＳ８０１〜Ｓ８０９の処理は、図６に示すステップＳ６０１〜Ｓ６０９の処理と同様であるため、説明を省略する。図８に示すように、本実施例では、ステップＳ８０３の処理において間引き対象ラインにピークがないと判定された場合に（ステップＳ８０３のＮＯ）、ステップＳ８１０〜Ｓ８１５の処理が実行される。
【００４１】
ここで、Ｘ方向に３つの漢字「電」「驚」「三」が並んで配置されている文字領域を例にする。「電」「驚」「三」の各漢字を構成する黒画素の数や配置は、それぞれ異なる。したがって、文字領域に上記３つの漢字が並んで配置されている場合と、いずれか１つの漢字が配置されている場合とでは、Ｙ方向について生成したヒストグラムに現れるピークの位置が異なる可能性がある。そのため、ステップＳ８０３でＮＯと判定された場合に一律に間引き対象ラインを間引いてしまうと、いずれかの漢字の一部を欠落させる可能性がある。そこで、本実施例では、ステップＳ８１０にて、縮小処理部１７は、ブロックをより小さい領域（パーツ）に分割する。分割方法としては、例えば、ブロックのＸ方向（間引き対象ラインの方向）についてヒストグラムを生成して、当該ヒストグラムから特定した文字や細線の境界に従って、ブロックを分割する方法がある。そのような方法によれば、上記３つの漢字が別々のパーツに属するように、ブロックを分割することができる。それにより、上記の例のように複数の文字が並んでいる場合でも、文字の欠落を防止することが可能となる。
【００４２】
ステップＳ８１１にて、縮小処理部１７は、分割して得られた複数のパーツのそれぞれに対して、ステップＳ４０４と同様の処理を行って、各パーツに対応するヒストグラムを算出する。そして、ステップＳ８１２にて、縮小処理部１７は、複数のパーツのうちの１つのパーツについて、ステップＳ８１１で生成したヒストグラムに基づいて、当該パーツ内の間引き対象ラインにピークがあるかを判定する。ステップＳ８１２の処理はステップＳ８０３と同様である。パーツ内の間引き対象ラインにピークがない場合は（ステップＳ８１２のＮＯ）、縮小処理部１７は、ステップＳ８１６の処理に進んで、当該間引き対象ラインを間引いて、処理を終了する。パーツ内の間引き対象ラインにピークがあった場合は（ステップＳ８１２のＹＥＳ）、縮小処理部１７は、ステップＳ８１３の処理に進む。ステップＳ８１３では、ステップＳ８０４〜Ｓ８０６と同様の処理が行われる。
【００４３】
ステップＳ８１４において、縮小処理部１７は、全パーツに対して処理を終了したかを判定する。全パーツに対して処理が終了していなければ（ステップＳ８１４のＮＯ）、縮小処理部１７は、ステップＳ８１５に進む。ステップＳ８１５において、次のパーツが決定される。そして、縮小処理部１７は、次のパーツについてステップＳ８１０〜Ｓ８１３の処理を繰り返す。全パーツに対して処理が終了していれば（ステップＳ８１４のＹＥＳ）、縮小処理部１７は、ステップＳ８０７の処理に進む。
【００４４】
以上のような処理により、描画イメージ内に複数の文字が含まれる場合でも、それぞれの文字について、文字の一部を欠落させることなく間引き処理を適用することができる。したがって、本実施例によれば、文字や細線の間引き処理におけるさらなる画質向上が見込める。なお、ステップＳ８１３においてブロックを分割する際の分割方法は、上記の方法に限られない。例えば、Ｘ方向（間引き対象ラインの方向）にブロックを等分するようにしてもよい。そのような方法によれば、ブロック分割に要する処理時間を短縮することができる。
【００４５】
［実施例３］
本実施例では、間引き対象の次候補ラインが見つからない場合に、単純間引きではなくバイリニアやバイキュービックといった補間アルゴリズムを利用して縮小する。それにより、文字や線の欠落をさらに防止する。なお、間引き対象の次候補ラインがない場合とは、例えば、注目ブロック内に、ピークと判定されたラインが１ラインおきに存在する場合である。具体的な例としては、注目ブロック内において白ラインと黒ラインとが１ラインごとに配置されている場合が考えられる。
【００４６】
図９を用いて、本実施例の処理を説明する。図９は、第３の実施例における特別間引き処理を示すフローチャートである。図９に示すステップＳ９０１〜Ｓ９０５，Ｓ９０９〜Ｓ９１２の処理は、図６に示すステップＳ６０１〜Ｓ６０５，Ｓ６０７〜Ｓ６１０の処理と同様であるため、説明を省略する。
【００４７】
図９に示すように、本実施例では、縮小処理部１７は、ステップＳ９０５の処理の後に、間引き対象の次候補ラインがあるか否かを判定する（ステップＳ９０６）。そして、間引き対象の次候補ラインがある場合は（ステップＳ９０６のＹＥＳ）、縮小処理部１７は、ステップＳ９０７の処理に進む。ステップＳ９０７の処理は、ステップＳ６０６の処理と同様である。一方、間引き対象の次候補ラインがない場合は（ステップＳ９０６のＮＯ）、縮小処理部１７は、ステップＳ９０８の処理に進む。ステップＳ９０８では、単純間引きでなく、バイリニアやバイキュービックといった補間アルゴリズムを用いて縮小処理が行われる。ステップＳ９０８の後、処理はステップＳ９０９に進む。
【００４８】
以上の処理により、例えば、上述した例のように、注目ブロック内に白ラインと黒ラインとが１ラインごとに配置されている場合でも、注目ブロック内の画質（濃度や色合い）を落とすことなく、縮小することができる。また例えば、文字領域に画数の多い複雑な文字が含まれる場合でも、文字プロポーションを崩すことなく縮小することができる。
【００４９】
［実施例４］
第１の実施例では、背景が白で文字が黒である描画イメージ、すなわち黒文字の描画イメージを例にした。本実施例では、背景が黒で文字が白である描画イメージ、すなわち白抜き文字の描画イメージを例にする。
【００５０】
図１０は、白抜き文字の描画イメージと、当該描画イメージから生成されるヒストグラムとの一例を示す説明図である。図１０に示す描画イメージ１００１は、図５に示す描画イメージ５０１の文字領域５０７を白黒反転させたものである。そのため、図１０に示すＹ方向のヒストグラム１００３は、図５（ａ）に示すヒストグラム５０３とは各ピークの向きが逆になる。ステップＳ６０３において、このような描画イメージ（文字領域）に対してピークの判定を行う場合には、注目ヒストグラム内において、間引き対象ラインに対応する度数が一番小さいかを判定すればよい。さらに、間引き対象ラインとその前後ラインとの度数差がそれぞれ所定の閾値以上であるかを判定すればよい。そして、両判定においてＹＥＳと判定された場合には、当該間引き対象ラインがヒストグラムのピークに対応するとみなすことができる。例えば、注目ブロック１００２の注目ヒストグラム１００４において、Ｙ＝１２が間引き対象ラインであるとする。すると、
Ｙ＝１２の度数が最小
｜（Ｙ＝１２の度数）−（Ｙ＝１１の度数）｜＞１０
｜（Ｙ＝１２の度数）−（Ｙ＝１３の度数）｜＞１０
である場合に、Ｙ＝１２においてピークがあると判定される。なお、度数差の閾値を１０とする。
【００５１】
このように、描画イメージに応じてピークの判定条件を変えることにより、白抜き文字の描画イメージなどに対しても、文字や線を欠落させることなく、縮小することができる。
【００５２】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【図１】
2018074237.tif 000003
【図２】
2018074237.tif 000004
【図３】
2018074237.tif 000005
【図４】
2018074237.tif 000006
【図５】
2018074237.tif 000007
【図６】
2018074237.tif 000008
【図７】
2018074237.tif 000009
【図８】
2018074237.tif 000010
【図９】
2018074237.tif 000011
【図１０】
2018074237.tif 000012