(57)【要約】本発明は、画像を形成する複数の画素が２次元に配列された第１のビットマップから、第１の方向の解像度を上げた第２のビットマップを作成する方法であり、第１のビットマップから、第１の方向と直交する第２の方向に現れる第１および第２のエッジを検出する第１の検出工程と、これら第１および第２のエッジの間が補間できるときは、第１および第２のエッジにそれぞれ対応する第２のビットマップの第３および第４のエッジの間に、これら第３および第４のエッジを補間するように第１の方向に伸びたエッジを追加する第１の追加工程とを有する。第１および第２のエッジが検出されればスムージングができるので、ルックアップテーブルは不要であり、スムージングする範囲は予め定められた領域に限定されることはなく、長周期の凹凸もスムージングできる。
2003032256.tif 000002
【特許請求の範囲】
【請求項１】
画像を形成する複数の画素が２次元に配列された第１のビットマップから、第１の方向の解像度を上げた第２のビットマップを作成する際に、前記第１のビットマップから、前記第１の方向と直交する第２の方向に現れる第１および第２のエッジを検出する第１の検出工程と、
前記第１および第２のエッジにそれぞれ対応する、前記第２のビットマップの第３および第４のエッジの間に、これら第３および第４のエッジを補間するように前記第１の方向に伸びたエッジを追加する第１の追加工程とを有するビットマップの作成方法。
【請求項２】
前記第１の検出工程では、前記第１の方向に隣接する３つの画素を前記第２の方向に走査し、前記第１および第２のエッジを検出する、請求項１のビットマップの作成方法。
【請求項３】
前記第１の検出工程では、前記第１の方向に隣接する３つの画素の中央をエッジ検出ラインとしたときに、
そのエッジ検出ラインの画素がオフからオンに変わる場合は、前記３つの画素の組合せが「オフ−オフ−オフ」から「オフ−オフ−オン」または「オン−オフ−オフ」に変化した後の位置を前記第１のエッジとし、その後、「オフ−オン−オン」または「オン−オン−オフ」に変化した後の位置を前記第２のエッジとし、
前記エッジ検出ラインの画素がオンからオフに変わる場合は、前記３つの画素の組合せが「オン−オン−オフ」から「オン−オフ−オフ」または「オフ−オン−オン」から「オフ−オフ−オン」に変化した変化前の位置を前記第１のエッジとし、その後、「オフ−オフ−オフ」に変化した変化前の位置を前記第２のエッジとし、
さらに、前記第１および第２のエッジの間に、前記第１のエッジの変化後のパターンまたは前記第２のエッジのパターン以外のものが検出されないときに、前記第１および第２のエッジを有効とする、請求項２のビットマップの作成方法。
【請求項４】
前記第１の追加工程では、前記第３および第４のエッジを結ぶ直線を超えない範囲のエッジを追加する、請求項１のビットマップの作成方法。
【請求項５】
前記第２のビットマップが、前記第２の方向の解像度も向上しているときは、
前記第１のビットマップから、前記第１の方向に現れる第５および第６のエッジを検出する第２の検出工程と、
前記第５および第６のエッジにそれぞれ対応する前記第２のビットマップの第７および第８のエッジの間に、これら第７および第８のエッジを補間するように前記第２の方向に伸びたエッジを追加する第２の追加工程とを有する、請求項１のビットマップの作成方法。
【請求項６】
前記第２の検出工程では、前記第２の方向に隣接する３つの画素を前記第１の方向に走査し、前記第５および第６のエッジを検出する、請求項５のビットマップの作成方法。
【請求項７】
前記第２の検出工程では、前記第２の方向に隣接する３つの画素の中央をエッジ検出ラインとしたときに、
そのエッジ検出ラインの画素がオフからオンに変わる場合は、前記３つの画素の組合せが「オフ−オフ−オフ」から「オフ−オフ−オン」または「オン−オフ−オフ」に変化した後の位置を前記第５のエッジとし、その後、「オフ−オン−オン」または「オン−オン−オフ」に変化した後の位置を前記第６のエッジとし、
前記エッジ検出ラインの画素がオンからオフに変わる場合は、前記３つの画素の組合せが「オン−オン−オフ」から「オン−オフ−オフ」または「オフ−オン−オン」から「オフ−オフ−オン」に変化した変化前の位置を前記第５のエッジとし、その後、「オフ−オフ−オフ」に変化した変化前の位置を前記第６のエッジとし、
さらに、前記第５および第６のエッジの間に、前記第５のエッジの変化後のパターンまたは前記第６のエッジのパターン以外のものが検出されないときに、前記第５および第６のエッジを有効とする、請求項６のビットマップの作成方法。
【請求項８】
前記第２の追加工程では、前記第７および第８のエッジを結ぶ直線を超えない範囲のエッジを追加する、請求項５のビットマップの作成方法。
【請求項９】
画像を形成する複数の画素が２次元に配列された第１のビットマップから、第１の方向の解像度を上げた第２のビットマップを作成するプログラムであって、
前記第１のビットマップから、前記第１の方向と直交する第２の方向に現れる第１および第２のエッジを検出する第１の検出工程と、
前記第１および第２のエッジにそれぞれ対応する前記第２のビットマップの第３および第４のエッジの間に、これら第３および第４のエッジを補間するように前記第１の方向に伸びたエッジを追加する第１の追加工程とを実行するための命令を有するプログラム。
【請求項１０】
前記第１の検出工程では、前記第１の方向に隣接する３つの画素を前記第２の方向に走査し、前記第１および第２のエッジを検出する処理を実行するための命令を有する、請求項９のプログラム。
【請求項１１】
前記第１の検出工程では、前記第１の方向に隣接する３つの画素の中央をエッジ検出ラインとしたときに、
そのエッジ検出ラインの画素がオフからオンに変わる場合は、前記３つの画素の組合せが「オフ−オフ−オフ」から「オフ−オフ−オン」または「オン−オフ−オフ」に変化した後の位置を前記第１のエッジとし、その後、「オフ−オン−オン」または「オン−オン−オフ」に変化した後の位置を前記第２のエッジとし、
前記エッジ検出ラインの画素がオンからオフに変わる場合は、前記３つの画素の組合せが「オン−オン−オフ」から「オン−オフ−オフ」または「オフ−オン−オン」から「オフ−オフ−オン」に変化した変化前の位置を前記第１のエッジとし、その後、「オフ−オフ−オフ」に変化した変化前の位置を前記第２のエッジとし、
さらに、前記第１および第２のエッジの間に、前記第１のエッジの変化後のパターンまたは前記第２のエッジのパターン以外のものが検出されないときに、前記第１および第２のエッジを有効とする処理を実行するための命令を有する、請求項１０のプログラム。
【請求項１２】
前記第１の追加工程では、前記第３および第４のエッジを結ぶ直線を超えない範囲のエッジを追加する処理を実行するための命令を有する、請求項９のプログラム。
【請求項１３】
前記第２のビットマップが、前記第２の方向の解像度も向上しているときは、
前記第１のビットマップから、前記第１の方向に現れる第５および第６のエッジを検出する第２の検出工程と、
前記第５および第６のエッジにそれぞれ対応する前記第２のビットマップの第７および第８のエッジの間に、これら第７および第８のエッジを補間するように前記第２の方向に伸びたエッジを追加する第２の追加工程とを実行するための命令を有する、請求項９のプログラム。
【請求項１４】
前記第２の検出工程では、前記第２の方向に隣接する３つの画素を前記第１の方向に走査し、前記第５および第６のエッジを検出する処理を実行するための命令を有する、請求項１３のプログラム。
【請求項１５】
前記第２の検出工程では、前記第２の方向に隣接する３つの画素の中央をエッジ検出ラインとしたときに、
そのエッジ検出ラインの画素がオフからオンに変わる場合は、前記３つの画素の組合せが「オフ−オフ−オフ」から「オフ−オフ−オン」または「オン−オフ−オフ」に変化した後の位置を前記第５のエッジとし、その後、「オフ−オン−オン」または「オン−オン−オフ」に変化した後の位置を前記第６のエッジとし、
前記エッジ検出ラインの画素がオンからオフに変わる場合は、前記３つの画素の組合せが「オン−オン−オフ」から「オン−オフ−オフ」または「オフ−オン−オン」から「オフ−オフ−オン」に変化した変化前の位置を前記第５のエッジとし、その後、「オフ−オフ−オフ」に変化した変化前の位置を前記第６のエッジとし、
さらに、前記第５および第６のエッジの間に、前記第５のエッジの変化後のパターンまたは前記第６のエッジのパターン以外のものが検出されないときに、前記第５および第６のエッジを有効とする処理を実行するための命令を有する、請求項１４のプログラム。
【請求項１６】
前記第２の追加工程では、前記第７および第８のエッジを結ぶ直線を超えない範囲のエッジを追加する処理を実行するための命令を有する、請求項１３のプログラム。
【請求項１７】
画像を形成する複数の画素が２次元に配列された第１のビットマップから、第１の方向の解像度が向上するように作成されたビットマップであって、
前記第１のビットマップにおける、前記第１の方向と直交する第２の方向に現れる第１および第２のエッジにそれぞれ対応する第３および第４のエッジの間に、これら第３および第４のエッジを補間するように前記第１の方向に伸びた第１の追加のエッジを有するビットマップ。
【請求項１８】
前記第１の追加のエッジは、前記第３および第４のエッジを結ぶ直線を超えない範囲で追加されている、請求項１７のビットマップ。
【請求項１９】
前記第１のビットマップから、前記第２の方向の解像度も向上するように作成されており、
前記第１のビットマップにおける、前記第１の方向に現れる第５および第６のエッジにそれぞれ対応する第７および第８のエッジの間に、これら第７および第８のエッジを補間するように前記第２の方向に伸びた第２の追加のエッジを有する、請求項１７のビットマップ。
【請求項２０】
前記第２の追加のエッジは、前記第７および第８のエッジを結ぶ直線を超えない範囲で追加されている、請求項１７のビットマップ。
【請求項２１】
画像を形成する複数の画素が２次元に配列された第１のビットマップから、第１の方向の解像度を上げた第２のビットマップを作成するビットマップ作成装置であって、
前記第１のビットマップから、前記第１の方向と直交する第２の方向に現れる第１および第２のエッジを検出する第１の検出手段と、
前記第１および第２のエッジにそれぞれ対応する前記第２のビットマップの第３および第４のエッジの間に、これら第３および第４のエッジを補間するように前記第１の方向に伸びたエッジを追加する第１の追加手段とを有するビットマップ作成装置。
【請求項２２】
前記第１の検出手段は、前記第１の方向に隣接する３つの画素を前記第２の方向に走査し、前記第１および第２のエッジを検出する、請求項２１のビットマップ作成装置。
【請求項２３】
前記第１の追加手段は、前記第３および第４のエッジを結ぶ直線を超えない範囲でエッジを追加する、請求項２１のビットマップ作成装置。
【請求項２４】
前記第２のビットマップは、前記第２の方向の解像度も上がっており、
さらに、前記第１のビットマップから、前記第１の方向に現れる第５および第６のエッジを検出する第２の検出手段と、
前記第５および第６のエッジにそれぞれ対応する前記第２のビットマップの第７および第８のエッジの間に、これら第７および第８のエッジを補間するように前記第２の方向に伸びたエッジを追加する第２の追加手段とを有する、請求項２１のビットマップ作成装置。
【請求項２５】
前記第２の追加手段は、前記第７および第８のエッジを結ぶ直線を超えない範囲のエッジを追加する、請求項２４のビットマップ作成装置。
【請求項２６】
請求項２１に記載のビットマップ作成装置と、このビットマップ作成装置を介して生成された前記第２のビットマップを画像として出力する出力機構とを有する画像出力装置。
【請求項２７】
前記出力機構は、前記第２のビットマップにより画像を印刷する印刷機構である画像出力装置。
【発明の詳細な説明】
技術分野
本発明は、画像を表示または印刷する際に、オリジナルの画像が持つ解像度よりも高い解像度に変換する方法および装置に関するものである。
背景技術
プリンタなどにおいては、画像を印刷する際に、オリジナルの画像を形成する画素が２次元に配列されたビットマップを、解像度の大きなビットマップに変換して印刷する。その際に、ビットマップ中の画素パターンのコーナ部分をよりスムーズな表現にすることにより、印刷される画像の品質を向上しているものがある。
コーナ部分をスムージングする方法は、特開平７−２８３９４６号あるいは特開平７−２８８６９３号などに開示されている。従来の方法は、ビットマップからコーナ部分の画素パターンを検出し、その画素パターンを予め用意されたルックアップテーブルのスムージングされた画素パターンと置き換えるものである。また、２つのオリジナルの画素列の平均値を、これら２つのオリジナルの画素列の間に挿入してスムージングする方法も知られている。
２つのオリジナルの画素列の平均値を挿入してスムージングする方法は、処理が簡単であり、ルックアップテーブルを用意する必要もないので、手軽に導入することができる。しかしながら、この方法では、コーナ部分をスムージングするために、コーナ部分に集中して画素が配置されるために段差がかえって目立ちやすくなる。その結果、オリジナルの画像において、斜めの輪郭を表すために複数の段差が断続して形成された部分が波打った状態となり、解像度を上げることによって直線的な輪郭が損なわれるという問題がある。
ルックアップテーブルを用いてスムージングする方法は、スムージングするために配置される画素がコーナ部分に集中しないような画素パターンを予め用意することにより、上記の方法よりも滑らかな輪郭を得ることが可能となる。たとえば、上述した特開平７−２８３９４６号および特開平７−２８８６９３号においては、コーナ部分に画素を追加して埋めるだけでなく、切り取ることによって白／黒のバランスにも配慮しながらスムージングしている。しかしながら、ルックアップテーブルを検索するので、処理時間がかかる。また、ルックアップテーブルを予め生成するのも容易な作業ではない。さらに、ルックアップテーブルとして予め用意できる画素パターンは限られるので、補正できるコーナ部分の範囲も限られる。したがって、短周期の凹凸は極めて良好に補正できる可能性があるが、長周期の凹凸の補正能力はない。このため、上述したような、オリジナルの画像において、斜めの輪郭を表すために複数の段差が断続して形成された部分があると、やはり解像度を上げることにより波打った状態となり、直線的な輪郭が損なわれるという問題が発生する。
そこで、本発明においては、ルックアップテーブルを用いずにスムージングを行うことができ、さらに、長周期の凹凸も良好にスムージングすることができる方法および装置を提供することを目的としている。そして、オリジナルの画像において、斜めの輪郭を表すために複数の段差が断続して形成された部分の解像度を上げるときに、直線的な輪郭を損なうことなくスムージングすることができる方法および装置を提供することを目的としている。
発明の開示
このため、本発明においては、コーナあるいは段差を画素で埋めたり、削ったりしてスムージングするのではなく、隣接する、あるいは並んで現れるコーナ、すなわち、オリジナルのビットマップデータ（本明細書ではビットマップと称する）のある方向に並んで現れるエッジに着目し、解像度を上げる際に、これらのエッジの間を補間するように新たなエッジを配置することによりスムージングする。すなわち、本発明は、画像を形成する複数の画素が２次元に配列された第１のビットマップから、第１の方向の解像度を上げた第２のビットマップを作成する方法であり、第１のビットマップから、第１の方向と直交する第２の方向に現れる第１および第２のエッジを検出する第１の検出工程と、これら第１および第２のエッジの間が補間できるときは、第１および第２のエッジにそれぞれ対応する第２のビットマップの第３および第４のエッジの間に、これら第３および第４のエッジを補間するように第１の方向に伸びたエッジを追加する第１の追加工程とを有する。
本発明のビットマップの作成方法であると、第１および第２のエッジが検出されればスムージングができるので、ルックアップテーブルは不要である。したがって、スムージングする範囲は予め定められた領域に限定されることはなく、長周期の凹凸もスムージングできる。さらに、第２のビットマップの第３および第４のエッジの間に、これら第３および第４のエッジを補間するエッジを追加することにより、いずれかのエッジに集中して画素が配置されることも防止できる。したがって、斜めの輪郭を表すために複数の段差が断続して形成された部分の解像度を上げるときに、直線的な輪郭を損なうことなくスムージングできる。
また、本発明のビットマップの作成方法であると、予めルックアップテーブルを作成する作業は不要であり、また、ルックアップテーブルが不要なので、ルップアップテーブルではカバーできないような範囲の倍率で拡大したり、解像度を上げたりすることができる。したがって、本発明のビットマップ作成方法は、フレキシブルな倍率で画像を拡大することが可能であり、拡大された、あるいは解像度が上がったスムーズな画像を出力することができる。
本発明のビットマップの作成方法は、コンピュータあるいはマイクロプロセッサなどの情報処理装置、端末あるいは制御装置に対して、上記の検出工程と追加工程を実行させることができるプログラム（プログラム製品）または、そのための命令を有するプログラム（プログラム製品）により実行することができる。そして、このプログラムまたはプログラム製品はＲＯＭなどの適当な記録媒体に記録したり、コンピュータネットワークを経由して提供することが可能である。また、第１のビットマップから、解像度を上げる第１の方向に対し直交する第２の方向に並んで現れる第１および第２のエッジを第１の検出手段と、第１および第２のエッジにそれぞれ対応する第２のビットマップの第３および第４のエッジの間に、これら第３および第４のエッジを補間するように第１の方向に伸びたエッジを追加する第１の追加手段としての機能が専用回路、ハードウェアロジック、さらには汎用のマイクロプロセッサあるいはコンピュータに本発明のプログラムをインストールすることにより実現されたビットマップ作成装置により、本発明の作成方法に従って、第１のビットマップから、第１の方向の解像度を上げた第２のビットマップを作成することができる。
したがって、本発明の第２のビットマップは、画像を形成する複数の画素が２次元に配列された第１のビットマップから、第１の方向の解像度が向上するように作成されたビットマップであって、第１のビットマップにおける、第１の方向と直交する第２の方向に現れる第１および第２のエッジにそれぞれ対応する第３および第４のエッジの間に、これら第３および第４のエッジを補間するように第１の方向に伸びた第１の追加のエッジを有するビットマップであり、ディスクなどの適当な記録媒体に記録して提供したり、コンピュータネットワークを介して提供したり、プリンタを介して記録媒体である印刷用紙に印刷して提供することができる。
スムージングは、第１のビットマップにおいて量子化により１画素分だけ増減したエッジに対して行うことが望ましく、２画素分以上、増減しているエッジについてはスムージングを行わずにオリジナルの画像のエッジ形状を残すことが望ましい。したがって、第１の検出工程では、第１の方向に隣接する３つの画素を第１の方向と直交する第２の方向に走査することにより、解像度を上げたときに間隔を空けて並んで現れることになる第１および第２のエッジを検出することが可能である。
第１の検出工程では、第１の方向に隣接する３つの画素の中央をエッジ検出ラインとしたときに、そのエッジ検出ラインの画素がオフからオンに変わる場合は、３つの画素の組合せが「オフ−オフ−オフ」（カラーまたはモノクロにおいては、スムージングの対象となる色（ＲＧＢまたはＹＭＣ）または黒（Ｋ）のドットがオンであり、他の色または白（Ｗ）のドットがオフである。したがって、モノクロにおいては「Ｗ−Ｗ−Ｗ」となる。以降においては参考にモノクロを併記する）から「オフ−オフ−オン（Ｗ−Ｗ−Ｋ）」または「オン−オフ−オフ（Ｋ−Ｗ−Ｗ）」に変化した後の位置を第１のエッジとし、その後、「オフ−オン−オン（Ｗ−Ｋ−Ｋ）」または「オン−オン−オフ（Ｋ−Ｋ−Ｗ）」に変化した後の位置を第２のエッジとすることができる。また、エッジ検出ラインの画素がオンからオフに変わる場合は、３つの画素の組合せが「オン−オン−オフ（Ｋ−Ｋ−Ｗ）」から「オン−オフ−オフ（Ｋ−Ｗ−Ｗ）」または「オフ−オン−オン（Ｗ−Ｋ−Ｋ）」から「オフ−オフ−オン（Ｗ−Ｗ−Ｋ）」に変化した変化前の位置を第１のエッジとし、その後、「オフ−オフ−オフ（Ｗ−Ｗ−Ｗ）」に変化した変化前の位置を第２のエッジとすることができる。さらに、第１および第２のエッジの間に、第１のエッジの変化後のパターンまたは第２のエッジのパターン以外のものが検出されないときに、第１および第２のエッジを並んで現れたエッジとして有効とし、第１および第２のエッジの間を補正する。
さらに、この作成方法では画素を追加することによりスムージングを行う。したがって、白／黒のバランスを著しく不均一にしないように、第１の追加工程では、第３および第４のエッジを結ぶ直線を超えない範囲でエッジを追加することが望ましい。
また、第２のビットマップが、第１の方向と直交する第２の方向の解像度も向上するときは、第２の方向についても上記と同様にスムージングすることが可能である。すなわち、第１のビットマップから、第１の方向に並んで現れる第５および第６のエッジを検出する第２の検出工程と、第５および第６のエッジにそれぞれ対応する第２のビットマップの第７および第８のエッジの間に、これら第７および第８のエッジを補間するように第２の方向に伸びたエッジを追加する第２の追加工程とをさらに設けることが可能である。
第１の方向に走査する際も、同様に、第３および第４のエッジを検出することができる。すなわち、第２の検出工程では、第２の方向に隣接する３つの画素の中央をエッジ検出ラインとしたときに、そのエッジ検出ラインの画素がオフからオンに変わる場合は、３つの画素の組合せが「オフ−オフ−オフ（Ｗ−Ｗ−Ｗ）」から「オフ−オフ−オン（Ｗ−Ｗ−Ｋ）」または「オン−オフ−オフ（Ｋ−Ｗ−Ｗ）」に変化した後の位置を第５のエッジとし、その後、「オフ−オン−オン（Ｗ−Ｋ−Ｋ）」または「オン−オン−オフ（Ｋ−Ｋ−Ｗ）」に変化した後の位置を第６のエッジとし、エッジ検出ラインの画素がオンからオフに変わる場合は、３つの画素の組合せが「オン−オン−オフ（Ｋ−Ｋ−Ｗ）」から「オン−オフ−オフ（Ｋ−Ｗ−Ｗ）」または「オフ−オン−オン（Ｗ−Ｋ−Ｋ）」から「オフ−オフ−オン（Ｗ−Ｗ−Ｋ）」に変化した変化前の位置を第５のエッジとし、その後、「オフ−オフ−オフ（Ｗ−Ｗ−Ｋ）」に変化した変化前の位置を第６のエッジとし、さらに、第５および第６のエッジの間に、第５のエッジの変化後のパターンまたは第６のエッジのパターン以外のものが検出されないときに、第５および第６のエッジが並んで現れたものとして有効とする。さらに、第２の追加工程では、第７および第８のエッジを結ぶ直線を超えない範囲のエッジを追加する。
これらの本発明にかかるビットマップ作成方法は、先に説明したように、プログラムとして提供することも可能であり、専用のチップ（ＡＳＩＣあるいはＬＳＩ）として提供することも可能である。したがって、本発明のビットマップ作成装置と、このビットマップ作成装置を介して生成された第２のビットマップを画像として出力する出力機構とを有する画像出力装置を提供することが可能である。出力機構の１つは、第２のビットマップにより画像を印刷する印刷機構であり、本発明により、第２のビットマップにより、高解像度で、波打ちがなく、スムーズに繋がった輪郭により画像をプリントアウトするプリンタを提供できる。
発明を実施するための最良の形態
以下に図面を参照しながら、本発明についてさらに説明する。図１に、オリジナルのビットマップデータ（第１のビットマップ）の例を示してある。このビットマップデータ（以降ではビットマップ）１は、５行９列（５×９）のビットマップであり、黒色のドットにより、図面上の左側から４つのエッジＥ１、Ｅ２、Ｅ３およびＥ４を備えた画像１１が描かれている。
図２に示したビットマップ８は、オリジナルのビットマップ１の解像度を行方向Ｘに４倍、列方向Ｙに４倍にしたビットマップの例であり、エッジＥ１〜Ｅ４のうち、エッジＥ２〜Ｅ４の各々によって形成されるコーナに、２つのオリジナルの画素列の平均値を挿入してスムージングしている。エッジＥ１はコーナを形成するエッジか不明であるためにスムージングされていない。したがって、エッジＥ４の左側には、コーナＣ４を埋めるためにエッジＥ４の半分の高さのエッジＥ８４が形成され、エッジＥ３の左側には、コーナＣ３を埋めるためにエッジＥ３の半分の高さのエッジＥ８３が形成され、エッジＥ２の左側には、コーナＣ２を埋めるためにエッジＥ２の半分の高さのエッジＥ８２が形成されている。
これらのエッジＥ８２〜Ｅ８４により、コーナＣ２〜Ｃ４が埋まっているので、エッジＥ２〜Ｅ４の近傍はスムージングされており、オリジナルのビットマップ１の画像１１と比較するとエッジＥ２〜Ｅ４は強調されなくなっている。しかしながら、エッジＥ２〜Ｅ４の近傍だけに画素（ドットあるいはピクセル）が追加されているので、エッジＥ２〜Ｅ４は依然として明らかであり、これら３つのエッジＥ２〜Ｅ４が強調された画像であることに代わりはない。逆に、エッジＥ２〜Ｅ４の近傍だけが斜めになっている印象となり、このビットマップ８では、輪郭の曲率が細かく変動して輪郭が波打った印象の画像８１が印刷される。
図３に示したビットマップ９も、オリジナルのビットマップ１の解像度を行方向Ｘに４倍、列方向Ｙに４倍にしたビットマップの例である。このビットマップ９では、ルックアップテーブルを用いて、コーナにドットを追加して埋めるだけでなく、エッジを切り取ることによって白／黒のバランスにも配慮しながらスムージングしている。したがって、エッジＥ４を形成する３つのドットは削られ、コーナＣ４には３つのドットで埋められており、オリジナルの画像１１のコーナＣ４からエッジＥ４の部分は、ほぼ等間隔に配置された４つの細かなエッジＥ９１、Ｅ９２、Ｅ９３およびＥ９４によりほぼ斜めに直線的なイメージでスムージングされている。コーナＣ３からエッジＥ３の部分、コーナＣ２からエッジＥ２の部分も同様にスムージングされている。
したがって、このビットマップ９による画像９１の輪郭には強調されたエッジは見当たらない。しかしながら、輪郭を形成する線は、上記のビットマップ８による画像８１と同様に、曲率が細かく変動し、波打った印象を与える。したがって、このビットマップ９による画像９１は、強調されたエッジが見えないので、上記の画像８１と比較すると輪郭はより滑らかであるが、やはり、輪郭が波打っており、オリジナルの画像１１の直線に近く、曲率が大きく変化しない滑らかな輪郭は現れていない。
図４に示したビットマップ２は、本発明の作成方法により、オリジナルのビットマップ１の解像度を行方向Ｘに４倍、列方向Ｙに４倍にしたビットマップの例である。このビットマップ２では、コーナだけにドットを追加して埋めるのではなく、隣接するオリジナルのエッジの間を直線的に補間するようにエッジを追加している。したがって、ビットマップ２では、オリジナルのエッジの間が直線的にスムージングされており、曲率の変動の少ない、直線的な輪郭により画像２１が描かれている。
すなわち、エッジＥ３とＥ４の間には、これらのエッジＥ３およびＥ４を補間した直線Ｌ３に達しないようにＹ方向に伸びたエッジＥ２７、Ｅ２８およびＥ２９が形成されており、これらのエッジＥ３、Ｅ２７、Ｅ２８、Ｅ２９およびＥ４により直線的な輪郭が描かれている。同様に、エッジＥ２とＥ３の間には、これらのエッジＥ２およびＥ３を補間した直線Ｌ２に達しないようにＹ方向に伸びたエッジＥ２４、Ｅ２５およびＥ２６が形成されており、これらのエッジＥ２、Ｅ２４、Ｅ２５、Ｅ２６およびＥ３により直線的な輪郭が描かれている。さらに、エッジＥ１とＥ２の間には、これらのエッジＥ１およびＥ２を補間した直線Ｌ１に達しないようにエッジＥ２１、Ｅ２２およびＥ２３が形成されており、これらのエッジＥ１、Ｅ２１、Ｅ２２、Ｅ２３およびＥ２により直線的な輪郭が描かれている。
図５に、本発明により高解像度のビットマップを作成する処理をフローチャートにより示してある。まず、ステップ５１でオリジナルのビットマップ１が入力されると、ステップ５２で高解像度のビットマップ２を作成する領域を確保する。高解像度のビットマップの領域は予めメモリに用意されていても良く、このプロセスで動的にメモリ内に領域を獲得しても良い。また、高解像度ビットマップ２を形成するために、一度にビットマップを収納する全ての領域を獲得しても良いが、後述するように、オリジナルのビットマップ１をスキャンする毎に、それに対応する部分の高解像度ビットマップ２を格納する領域を逐次獲得しても良い。さらに、本例では、高解像度ビットマップ２はオリジナルのビットマップ１の整数倍（４×４）としているが、Ｘ方向およびＹ方向（行方向と列方向、あるいは、主走査方向と副走査方向）で任意の倍数とすることができ、もちろん、いずれかの方向は解像度を上げない、すなわち、１倍とすることも可能である。
次に、ステップ５３で、オリジナルのビットマップ１をＹ方向に隣接した３画素づつのデータを、Ｘ方向に走査しながらエッジを検出する（第１の検出工程または検出処理）。すなわち、ビットマップ１の内、Ｙ方向に隣接する３ライン分のデータをＸ方向にスキャンすることにより、オリジナルビットマップ１のエッジを検出する。たとえば、図１において、Ｙ０、Ｙ１およびＹ２のラインをＸ方向にＸ０からＸ８までスキャンする。
この際、まず、ステップ５４で、オリジナルのビットマップ１の黒ドット部分を高解像度ビットマップ２にコピーする。これにより、図６に示すように、オリジナルのビットマップ１の画像１１と同じ画像が、４×４に拡張された高解像度ビットマップ２に再現される。同時に、ステップ５５で、第１のエッジが発見されているか否かを判断する。
第１のエッジが発見されていなければ、ステップ５６で第１のエッジか否かを判断する。エッジとしての認識は、３ライン、たとえばラインＹ０、Ｙ１およびＹ２をＸ方向にスキャンすることにより得られた１つ前の３つのドットパターンと、今回得られたドットパターンとを比較することにより行う。白（Ｗ）から黒（Ｋ）に変化する場合を検討すると、図７（ａ）および（ｂ）に示すように、前のドットパターンＸ７１またはＸ７５が「Ｗ−Ｗ−Ｗ（オン−オン−オン）」で、今回のドットパターンＸ７２またはＸ７６が「Ｗ−Ｗ−Ｋ（オン−オン−オフ）」あるいは「Ｋ−Ｗ−Ｗ（オフ−オン−オン）」の場合であり、このとき、Ｘ７２またはＸ７６の位置のＹ７３またはＹ７５のドットを第１のエッジと認識する。第１のエッジが発見されると、ステップ５７で、フラグあるいはレジスタなどをセットする。
第１のエッジが発見されている場合は、ステップ５８で第２のエッジの検索が継続可能な否かを判定する。図７（ａ）または（ｂ）のドットパターンＸ７３またはＸ７７のように、第１のエッジが発見されたときと同じドットパターンが得られた場合は検索を継続する。また、ドットパターンＸ７４またはＸ７８の場合も検索を継続する。これらのドットパターンＸ７４またはＸ７８は後述するように第２のエッジとなる。このように、得られたドットパターンが第１のエッジと同じ、または黒ドットが１つ増えた場合は検索を継続し、黒ドットが減った場合、または黒ドットが２つ増えた場合はステップ５９で第１のエッジを発見済の状態を解消する。
この３ラインずつをＸ方向（Ｙ方向でも同等であるが）にスキャンしながらエッジを検出する場合、白ドットから黒ドットへの変化と、黒ドットから白ドットへの変化がある。図７（ａ）および（ｂ）に基づき上述した、白ドットから黒ドットへの変化の場合、３ラインの中央のラインをエッジ検出ラインとすると、そのラインのドットが白（Ｗ）で、ドットパターンが「Ｗ−Ｗ−Ｗ」から「Ｗ−Ｗ−黒」あるいは「Ｋ−Ｗ−Ｗ」に変化した位置の黒ドット（Ｋ）となった部分が第１のエッジとなる。そして、それ以降のスキャンで、エッジ検出ラインと第１のエッジのラインが黒で、残りのラインが白となるドットパターン、すなわち、「Ｗ−Ｗ−Ｋ」に対して「Ｗ−Ｋ−Ｋ」、「Ｋ−Ｗ−Ｗ」に対して「Ｋ−Ｋ−Ｗ」のパターンが出現した位置のエッジ検出ラインの黒ドットが第２のエッジとなる。しかしながら、第１のエッジを検出した以降のスキャンで、第１のエッジと同じドットパターンでなく、かつ第２のエッジのドットパターンでもないドットパターンが出現した場合は、補間できるエッジ同士ではないので、既に発見された第１のエッジを無効とし、再度、新たな第１のエッジの検出を開始する。
たとえば、黒ドットが減った場合は、第１のエッジと逆方向に傾いたエッジであり、これらの間を補間することはできない。また、「Ｋ−Ｋ−Ｋ」に変わると、２ドット以上の距離を持つ段差であり、その段差の高さは３ラインの比較では検出できない。２ドット以上の距離のある段差は、曲線あるいは直線をドットに量子化する上で生じたものである可能性はほとんどなく、これをスムージングすることはかえって画像のシャープネスを鈍化することになり、画像の劣化に繋がる。したがって、本例では、１ドットのエッジのみを検出し、スムージングしている。このため、３ラインをスキャンすることにより、スムージングが必要とされるエッジ同士は全て検出することが可能である。
一方、図７（ｃ）および（ｄ）に示すように、黒ドット（Ｋ）から白ドット（Ｗ）への変化の場合は、ドットパターンのエッジ検出ラインのドットが黒で、ドットパターンが「Ｋ−Ｋ−Ｗ」から「Ｋ−Ｗ−Ｗ」に変化（図７（ｄ））、あるいは「Ｗ−Ｋ−Ｋ」から「Ｗ−Ｗ−Ｋ」に変化した位置のエッジ検出ラインの黒ドットが第１のエッジとなる。そして、以降のスキャンで、「Ｋ−Ｗ−Ｗ」あるいは「Ｗ−Ｗ−Ｋ」から「Ｗ−Ｗ−Ｗ」に変化したドットパターンが検出された位置の変化前の黒ドットが第２のエッジとなる。そして、第１のエッジを検出した以降のスキャンで、第１のエッジの次のドットパターン「Ｋ−Ｗ−Ｗ」あるいは「Ｗ−Ｗ−Ｋ」と同じドットパターンでなく、かつ、第２のエッジのパターン「Ｗ−Ｗ−Ｗ」でもないドットパターンが検出された場合は、補間できるエッジ同士ではないので、既に発見された第１のエッジを無効とし、再度新たな第１エッジの検出を開始する。
このようにして検出される第１のエッジから第２のエッジの関係、すなわち、第１および第２のエッジ間の長さは、検出対象となるライン、すなわち、Ｘ方向またはＹ方向の先頭から終端まで有効であり、制限は無い。したがって、非常に長い、距離の離れた凹凸であっても検出することができ、それに応じてスムージングすることが可能である。
ステップ６０において、Ｘ方向に隣接あるいは並んで現れ、さらに補間が可能な第１および第２のエッジが検出されると、ステップ６１において、高解像度ビットマップ２の上の第１および第２のエッジに対応する第３および第４のエッジの補間画像を再現する第１の追加工程または追加処理が行われる。すなわち、図４において、図１に示した第１のビットマップ１をスキャンして発見される第１のエッジＥ１、Ｅ２およびＥ３および第２のエッジＥ２、Ｅ３およびＥ４に対応するエッジ（図４には同じ符号が付してある）の間を補間するようにＹ方向に伸びたエッジＥ２１〜Ｅ２９を追加する。本例の第１の追加工程としての処理では、オリジナルの画像１１の第１と第２エッジに対応する第３と第４のエッジを直線で結び、でき上がった三角形を高解像度ビットマップ２の上に重ねる。この時、完全に三角形の内側に入ってしまうドットを黒ドットとすることで補間してＹ方向に伸びたエッジを形成する。これにより、オリジナルのビットマップ１の特定のエッジ間を直線で結び、でき上がった三角形を高解像度のビットマップ２の上に再現することが可能となる。したがって、ルックアップテーブルを用いずに短時間でよりスムーズな補間が行える。
たとえば、図６において、ラインＹ０、Ｙ１およびＹ２をＸ方向にスキャンすると、エッジＥ３が第１のエッジとして検出され、エッジＥ４が第２のエッジとして検出される。このため、エッジＥ３およびＥ４を直線Ｌ３で結び、この直線Ｌ３に到達しないドットを黒ドットに変換することにより、図４に示した、Ｙ方向に延ばされたエッジＥ２７、Ｅ２８およびＥ２９が形成される。本例では、ドットの一部が直線Ｌ３で形成される三角形の外にはみ出てしまうものは黒ドットに変換せず、追加するエッジは直線Ｌ３を越えてＹ方向に延ばさない。本例のスムージングでは、黒ドットを増やすことにより輪郭を滑らかにしているので、オリジナルの画像１１に対しスムージングされた画像２１は黒ドットの割合が増加する。したがって、スムージングのために追加する黒ドットの数を最小限に抑えることにより、黒／白の割合が大きく変化するのを防止している。
第２のエッジが発見されて、対応する第３および第４のエッジの間の補間が終了すると、ステップ６２で第１のエッジおよび第２のエッジの情報をクリアし、ラインの終端、すなわちＸ方向の終端まで、ステップ５３に戻って上記のエッジを検出する処理と、エッジ間にドットを追加する処理とを繰り返す。そして、ステップ６３でラインの終端までスキャンしたか否かを確認する。ライン終端であった場合は、ステップ６４にてエッジ発見情報をクリアし、ステップ６５で全てのラインをスキャンしたか否かを確認する。ラインが残っている場合は、ステップ６６でラインを１つだけずらし、たとえば、ラインＹ１、Ｙ２およびＹ３をセットする。そして、ステップ５３に戻って、それらの３ラインを新たにＸ方向にスキャンして、新たなエッジの検索と、エッジ間にドットを追加してスムージングする処理を行う。
さらに、ステップ６５でオリジナルのビットマップ１の終端まで、Ｘ方向にスキャンしながらスムージングする処理が完了したか否かどうかの判定を行う。Ｙ方向の全てのラインをスキャンし終えた場合は、ステップ６７で両方向をスキャンしたか否かを確認する。一方が残っている場合は、ステップ６８でスキャン方向をＹ方向に変更し、Ｘ方向に３ラインづつをセットし、上記と同様にＹ方向にスキャンしながらエッジを検出し、検出されたエッジ間にドットを追加してスムージングする処理を行う。すなわち、方向を入れ替えて第２の検出工程と第２の追加工程の処理を行う。
したがって、ステップ５３において、第２の方向であるＸ方向に隣接する３ラインずつがＹ方向にスキャンされる、第２の検出工程が行われる。そして、ステップ５５では第５のエッジが検出され、ステップ６０では第６のエッジが検出される。その結果、ステップ６１では、高解像度となる第２のビットマップ２において、第５および第６のエッジに対応する第７および第８のエッジの間に、これら第７および第８のエッジの間を補間するようにＸ方向に伸びたエッジが追加される。このときも、オリジナルの画像１１の第５と第６のエッジに対応する第７および第８のエッジを直線で結び、でき上がった三角形の内側に完全に入ってしまうドットだけを黒ドットとすることで補間してＸ方向に伸びたエッジを形成する。これにより、Ｙ方向においても、オリジナルのビットマップ１の特定のエッジ間を直線で結んだ、スムーズな補間画像を得ることができる。そして、ステップ６７で両方向のスキャンとスムージングが終了すると、Ｘ方向およびＹ方向に解像度が上げられ、スムージングされた高解像度のビットマップ２が作成される。
汎用のプロセッサで上述したプロセスを実行可能な命令を有するプログラムあるいはプログラム製品を提供し、プロセッサにインストールすることにより、本発明のビットマップの作成方法を実行できる装置を提供することができる。また、上記の各プロセスあるいは一部のプロセスは、ハードウェアで実現することも可能であり、そのような専用回路を備えたＡＳＩＣあるいはＬＳＩを本発明に係るビットマップ作成装置として提供することができる。特に、本発明のビットマップ作成方法は、繰り返しの検出および追加が中心となるので、専用回路化することにより処理速度を向上できる可能性が高い。また、適当な回路を備えた複数のチップを基板上に搭載することにより本発明のピットマップ作成機能を備えた基板を提供することも可能である。
したがって、図８に示すように、図５に示したプロセスにしたがってＸ方向にスキャンしながらエッジを検出する第１の検出機能３２と、Ｘ方向に検出された第１および第２のエッジに対応する第３および第４のエッジの間を補間するようにドットを追加する第１の追加機能３３と、Ｙ方向にスキャンしながらエッジを検出する第２の検出機能３４と、Ｙ方向に検出された第５および第６のエッジに対応する第７および第８のエッジの間を補間するようにドットを追加する第２の追加機能３５とを備えたＡＳＩＣ、ＬＳＩまたはプロセッサ３１、あるいは制御基板を本発明のビットマップ作成装置として提供できる。そして、プロセッサ３１と、このプロセッサ３１を介して処理されたデータ、すなわち、ビットマップを印刷する印刷機構３６を備えたプリンタ３０を提供することにより、ホストコンピュータ９０から供給された低解像度のオリジナルのビットマップ（第１のビットマップ）１を高解像度のビットマップ（第２のビットマップ）２にして印刷機構３６に供給することができる。したがって、プリンタ３０から、第２のビットマップ２により、高解像度で、波打ちがなく、スムーズに繋がった輪郭により画像２ａが印刷されたプリントアウト３９を得ることが可能となる。
図５に示した処理を実行可能なプロセッサ３１は、上述したように、エッジを検出する機能３２および３４、ドットを追加する機能３３および３５を専用回路などのハードウェアロジックで実装したものであっても良い。あるいは、図５に示したエッジを検出する処理と、エッジ間にドットを追加して補間する処理を実行可能な命令を有するプログラムを記憶したＲＯＭあるいはＲＡＭなどの記録媒体を実装したものであっても良い。
さらに、図５に示した処理を、パーソナルコンピュータなどの汎用の情報処理端末で実行可能なプログラム、たとえば、プリンタドライバプログラムを提供することにより、プリンタに対してホスト装置として機能する情報処理端末を本発明におけるビットマップ作成装置として機能させることも可能である。図９に示すホストコンピュータ９０は、低解像度のオリジナルのビットマップ（第１のビットマップ）１を出力するアプリケーション９１、たとえば、ワードプロセッサやＷＷＷブラウザと、第１のビットマップ１を高解像度のビットマップ（第２のビットマップ）２に変換してプリンタ３０に供給するプリンタドライバプログラム（プリンタドライバ）９５がインストールされている。このプリンタドライバ９５は、図５に示したプロセスにしたがってＸ方向にスキャンしながらエッジを検出する第１の検出工程９６と、Ｘ方向に検出された第１および第２のエッジに対応する第３および第４のエッジの間を補間するようにドットを追加する第１の追加工程９７と、Ｙ方向にスキャンしながらエッジを検出する第２の検出工程９８と、Ｙ方向に検出された第５および第６のエッジに対応する第７および第８のエッジの間を補間するようにドットを追加する第２の追加工程９９をホストコンピュータ９０で実行可能な命令を備えている。
したがって、図９に示したホストコンピュータ９０とプリンタ３０とから構成される印刷システム９２においては、アプリケーション９１から供給された低解像度の第１のビットマップ１はプリンタドライバ９５を介して高解像度の第２のビットマップ２に変換されてプリンタ３０に供給される。このため、プリンタ３０から、第２のビットマップ２により印刷された、高解像度で、波打ちがなく、スムーズに繋がった輪郭により画像２ａが描かれたプリントアウト３９を得ることが可能となる。第２のビットマップ２は、ＬＡＮ９２などのコンピュータネットワークを介して提供することも可能であり、また、適当なメモリ９３に記録して提供することも可能である。
なお、上記では、Ｘ方向およびＹ方向に解像度を上げたビットマップを作成する例で説明しているが、解像度いずれか一方にのみ解像度を上げたビットマップであっても同様に作成することが可能である。この場合は、Ｙ方向に解像度を上げたのであれば、Ｘ方向にスキャンするだけで、スムージングすることが可能であり、Ｙ方向にスキャンする必要はない。また、Ｘ方向およびＹ方向に同等に解像度を上げた場合に限らず、Ｘ方向とＹ方向の解像度が異なる場合にも本発明を適用することが可能である。
また、上記では、第２のビットマップ２を画像として出力する出力機構として、第２のビットマップにより画像を印刷する印刷機構を備えたプリンタを画像出力装置として示しているが、第２のビットマップは画素マトリクスあるいは画素パターンであり、画像を出力する機器であれば、プリンタに限らず、他の印刷装置あるいはディスプレイなどにも本発明を適用することが可能である。さらに、上記の例では、簡単のためにモノクロのビットマップを例に本発明を説明しているが、カラー画像用のビットマップにおいても本発明を適用可能である。ＲＧＢ（赤、緑および青）、ＹＭＣ（黄色、マゼンタおよびシアン）あるいはＹＭＣＫ（黄色、マゼンタ、シアンおよび黒）系のカラー画像用のビットマップであると、スムージングの対象となる色のドットが上述したオンのドットに対応し、他の色のドットまたは白色のドットがオフのドットに対応する。
このように、本発明のビットマップの作成方法によれば、画像を印刷あるいは表示するためのビットマップを、より解像度の高いビットマップに変換する際に、オリジナルのビットマップのエッジ間に補間用のエッジを追加することによりスムージングを行い、画質を向上する。このため、作業用ビットマップやルックアップテーブル等を使用せずにスムージングを行うことが可能であり、ルックアップテーブルの作成の手間は不要である。また、ルックアップテーブルを参照する時間を省くことができるので、より短い時間でスムージングすることが可能となる。
さらに、距離は問わずに、ある方向に並んで現れるエッジが検出されれば、その間をスムージングできるので、長周期の凹凸もスムージングの対象とすることが可能となる。したがって、高解像度化することにより輪郭が波打つトラブルも解消することが可能である。また、倍率に関係なくスムージングすることができる。このように、本発明により、より鮮明でシャープな輪郭を持つ画像を出力することができる高解像度のビットマップを短時間に製造することが可能となる。
産業上の利用可能性
本発明のビットマップの作成方法およびビットマップ作成装置は、より解像度が高いビットマップであって、スムージングが施されたビットマップを短時間で作成可能なものであり、シャープで高解像度の画像を短時間に出力可能なプリンタおよびその他の画像出力装置、さらに、それらに対してデータを供給する装置を提供することができる。
【図面の簡単な説明】
図１は、オリジナルのビットマップの例である。
図２は、オリジナルのビットマップを高解像度化し、２つのオリジナルの画素列の平均値を挿入してスムージングした例である。
図３は、オリジナルのビットマップを高解像度化し、ルックアップテーブルを用いて、コーナにドットを追加すると共にエッジを切り取ることによりスムージングした例である。
図４は、オリジナルのビットマップを高解像度化し、本発明の作成方法によりスムージングした例である。
図５は、本発明のビットマップの作成方法の概要を示すフローチャートである。
図６は、図５に示した方法によりスムージングされる過程を示す図である。
図７は、エッジを検出する例を説明する図である。
図８は、本発明のビットマップにより印刷可能なプリンタの概要を示す図である。
図９は、本発明のビットマップを出力可能なホストコンピュータおよびシステムの概要を示す図である。
【図１】
2003032256.tif 000003
【図２】
2003032256.tif 000004
【図３】
2003032256.tif 000005
【図４】
2003032256.tif 000006
【図５】
2003032256.tif 000007
【図６】
2003032256.tif 000008
【図７】
2003032256.tif 000009
【図８】
2003032256.tif 000010
【図９】
2003032256.tif 000011
【手続補正書】
【提出日】平成15年5月23日(2003.5.23)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】請求項２７
【補正方法】変更
【補正の内容】
【請求項２７】
前記出力機構は、前記第２のビットマップにより画像を印刷する印刷機構である、請求項２６の画像出力装置。
【国際調査報告】
2003032256.tif 000012
2003032256.tif 000013
2003032256.tif 000014
2003032256.tif 000015