(57)【特許請求の範囲】
【請求項１】
画像データに基づいて、描画される画像の輪郭位置を認識する認識手段と、
前記認識手段によって認識された輪郭位置に対応する画素である注目画素の濃度を決定する濃度決定手段と、
前記注目画素について前記濃度決定手段によって決定された濃度を示す濃度情報と前記注目画素の位置をその１つ手前で処理した画素の位置に対する相対位置で表す位置情報とを有する中間コード画像データを生成する中間コード画像データ生成手段と、
を具備することを特徴とする画像処理装置。
【請求項２】
前記中間コード画像データ生成手段によって生成された中間コード画像データに従ってビットマップデータを生成するラスタライズ手段を具備することを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記画像データに基づいて、描画される画像の輪郭のエッジ方向を判別する判別手段を具備し、
前記中間コード画像データ生成手段は、前記認識手段によって認識された輪郭位置および前記濃度決定手段によって決定された濃度を示す濃度情報に加えて、前記判別手段によって判別されたエッジ方向を示すデータを有する中間コード画像データを生成することを特徴とする請求項１または２記載の画像処理装置。
【請求項４】
前記中間コード画像データ生成手段は、前記認識手段によって認識された輪郭位置よりも内側に位置する画像の位置情報を有する中間コード画像データをさらに生成し、
前記ラスタライズ手段は、前記輪郭位置に対応する中間コード画像データに従って生成したビットマップデータと、前記輪郭位置の内側に位置する画像に対応する中間コード画像データに従って生成したビットマップデータとを重畳して出力することを特徴とする請求項２または３記載の画像処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、入力される画像データから中間コード画像データを作成した後、ラスタデータに変換する画像処理装置に関する。
【０００２】
【従来の技術】
近年、コンピュータ等の画像編集装置は、編集された画像（文字を含む）をカラープリンタ等でプリントアウトする際、再現性や精度等を向上させるために、上記画像を、１ページ分の画像を構成する各描画オブジェクト（テキスト、グラフィックス、イメージ）を表現するページ記述言語（以下、ＰＤＬという）によって記述されたコード画像データとして出力する。このとき、プリンタ等の画像形成装置では、入力されるＰＤＬを解釈し、ラスタデータに変換して印刷・描画するようになっている。このような状況において、画像処理装置では、ＰＤＬで記述された画像データ内に存在する文字／図形の輪郭部を滑らかに出力する方法が提案されている。
【０００３】
まず、従来技術の１つとして、ＰＤＬを文字／線画部データと文字／線画以外の絵柄部に分離し、文字／線画部データについてはデバイスの解像度でラスタライズ（各画素の階調は各色２値）を行い、絵柄部と合成した後、多値ビデオ信号と画素の属性を示す信号とに基づいてパターンマッチングを行うことにより、図形の輪郭部を検出し、輪郭部については中間調画像データを生成して出力するものがある。
【０００４】
次に、異なる解像度の記憶方式として、例えば特開平３−２４００９９号公報で開示されているように、解像度の異なる領域をブロック単位で管理する方式がある。この方式では、全ての画素を高解像度で保持するよりは、記憶容量を少なくすることができる。
【０００５】
また、特公平８−１４７８６号公報では、文字の輪郭情報を階調の異なる複数の等高線で表現し、指定された大きさでラスタライズを行うものである。
【０００６】
【発明が解決しようとする課題】
従来技術において、多値ビデオ信号と画素の属性を示す信号とに基づいてパターンマッチングを行う方式では、パターンマッチング処理を行うための専用の回路が必要となり、回路規模が大となるとともに、コストアップにつながるという問題があった。
【０００７】
また、特開平３−２４００９９号では、ブロックのポジションと解像度しか管理していないので、輪郭であるか否かの判断が不可能であり、輪郭部を滑らかにすることはできない。仮に、文字／線画の輪郭部に高解像度のブロックを割り当て、輪郭部以外に低解像度のブロックを割り当てたとしても、同一ブロック内に文字／線画以外の絵柄部が混在してしまう恐れがあり、輪郭部だけを滑らかにすることができないという問題があった。
【０００８】
また、特公平８−１４７８６号では、輪郭情報を複数のベクトルデータで持たせるので、コード量は圧倒的に少なくて済むが、ラスタライズに多くの時間がかかるという問題があった。
【０００９】
この発明は上述した事情に鑑みてなされたもので、ラスタライズに使用されるメモリ容量を最小限に抑えることができ、かつオブジェクト単位で図形の斜線や曲線部を滑らかに出力することができる画像処理装置を提供することを目的としている。
【００１０】
【課題を解決するための手段】
上述した問題点を解決するために、請求項１記載の発明では、画像データに基づいて、描画される画像の輪郭位置を認識する認識手段と、前記認識手段によって認識された輪郭位置に対応する画素である注目画素の濃度を決定する濃度決定手段と、前記注目画素について前記濃度決定手段によって決定された濃度を示す濃度情報と前記注目画素の位置をその１つ手前で処理した画素の位置に対する相対位置で表す位置情報とを有する中間コード画像データを生成する中間コード画像データ生成手段と、を具備することを特徴とする。
【００１１】
また、請求項２記載の発明では、請求項１記載の画像処理装置において、前記中間コード画像データ生成手段によって生成された中間コード画像データに従ってビットマップデータを生成するラスタライズ手段を具備することを特徴とする。
【００１２】
この発明によれば、画像データから中間コード画像データを生成する際に、中間コード画像データ生成手段により、認識手段によって認識された輪郭位置および濃度決定手段によって決定された濃度を示す濃度情報を有する中間コード画像データを生成するようにしたので、ラスタライズに使用されるメモリ容量を最小限に抑えることが可能となり、かつオブジェクト単位で図形の斜線や曲線部を滑らかに出力することが可能となる。
【００１３】
【発明の実施の形態】
次に図面を参照してこの発明の実施形態について説明する。
【００１４】
Ａ．実施形態の構成
図１は本発明の一実施形態による画像処理装置の構成を示すブロック図である。図において、入力部１は、コンピュータ等からのＰＤＬを受信し、入力画像解析部に供給する。入力画像解析部２は、上記ＰＤＬを解析し、オブジェクトの属性（文字、グラッフィックス、ラスタ（スキャン画像））を示すトークンを取り出し、文字であれば、文字描画部３へ供給し、グラッフィックスであれば、グラフィックス描画部４へ供給し、スキャン画像であれば、ラスタ描画部５へ供給する。
【００１５】
文字描画部３は、指定された書体／文字コードなどから中間コード画像データを生成するまでの前処理を行う。例えば、アウトラインフォントデータでは、文字コードに対応するベクトルデータをフォントデータから捜し出し、ヒンティング処理を行ったベクトルデータに対して、輪郭画素の位置およびその画素の濃度を決定し、これら輪郭画素の位置情報および濃度情報を有する中間コード画像データを生成する。生成されたパターンは、通常、フォントキャッシュ（図示略）上に置かれる。グラッフィックス描画部４は、例えばパス上に生成されたベクトルデータに対して、輪郭画素の位置およびその画素の濃度を決定し、これら輪郭画素の位置情報および濃度情報を有する中間コード画像データを生成する。また、ラスタ描画部５は、面順次／点順次補正、階調数の補正、色変換、拡大、縮小、回転等の処理を施す。
【００１６】
次に、中間コード画像データ合成部６は、文字描画部３、グラッフィクス描画部４およびラスタ描画部５の各部で新たに生成された中間コード画像データと生成済みのものとを合成し、出力制御部７に供給する。出力制御部７は、中間コード画像データからデバイスの解像度、階調数に応じたビデオ信号を生成する。同時に、画素単位で画像の属性を表す信号を生成するようにしてもよい。なお、ページメモリを持たずに、出力装置のプロセススピードに同期できるような出力方法としては、専用のハードウェアを用いて中間コード画像データからビデオ信号への変換を行うものや、変換されたビデオ信号をブロック単位で圧縮した後、出力装置のプロセススピードに合わせて解凍していく方法がある。出力装置８は、出力制御部からのビデオ信号に従ってレーザ光をオン／オフ制御し、感光体上に潜像イメージを形成し、トナー像を用紙に転写する。
【００１７】
Ｂ．実施形態の動作
次に、本実施形態の動作を説明する。以下では、ＰＤＬをラスタライズし、中間コード画像データを生成した後、出力装置へ送出するというラスタライズ処理、該ラスタライズ処理における中間コード画像データ生成処理、中間コード画像データをデコードし、ビデオ信号を生成するデコード処理について説明する。
【００１８】
Ｂ−１．ラスタライズ処理
まず、図２は、上述した画像処理装置のラスタライズ処理を説明するためのフローチャートである。まず、ステップＳａ１において、連続して入力されるＰＤＬを解析し、トークンを切り出し、ステップＳａ２で、切り出されたトークンがページの終了であるか否かを判断する。ここで、トークンがページの終了を示すものでない場合には、切りだしたトークンが文字であれば、ステップＳａ３に進み、グラフィックスであれば、ステップＳａ４に進み、スキャン画像であれば、ステップＳａ５に進む。
【００１９】
ステップＳａ３では、文字描画部３により、指定された書体／文字コードなどから、文字コードに対応するベクトルデータを捜し出し、該ベクトルデータに従って中間コード画像データを生成する。また、ステップＳａ４では、グラフィックス描画部４により、パス上に生成されたベクトルデータに従って中間コード画像データを生成する。なお、中間コード画像データの生成については後述する。また、ステップＳａ５では、ラスタ描画部５により、面順次／点順次補正、階調数の補正、色変換、拡大、縮小、回転等の処理を施す。
【００２０】
次に、ステップＳａ６において、中間コード画像データ合成部６により、各部で新たに作成された中間コード画像データと生成済みの中間コード画像データとを合成し、ステップＳａ１に戻る。以下、１ページ分が終了するまで、上記ステップＳａ１〜Ｓａ６を繰り返し、中間コード画像データの生成および合成を行う。
【００２１】
そして、１ページ分の処理が終了すると、ステップＳａ７に進み、出力制御部７により、合成された中間コード画像データをデコードし、デバイスの解像度、階調数に応じたビデオ信号を生成し、ステップＳａ８で、生成したビデオ信号を出力装置８に送出する。なお、ビデオ信号の生成について後述する。
【００２２】
Ｂ−２．中間コード画像データ生成処理
次に、図３は、上述した文字描画部３またはグラフィックス描画部４における図形の輪郭部の中間コード画像データの生成について説明するためのフローチャートである。ここで、図５（ａ）は、ベクトルデータで表される図形（文字の一部）を示す概念図である。図形の輪郭が通過する画素においては、図示するように、ほとんどが図形の一部となる画素や、ほとんど輪郭がかかっていない画素など、さまざまである。そこで、まず、輪郭が通過する画素において、輪郭が通過する位置（図形に含まれる程度）に応じて、その画素の濃度を決定する。また、これに並行して、１つ前の画素に対する相対座標値を算出する。
【００２３】
まず、ステップＳｂ１で、ベクトルデータの始点がデバイス座標のどの画素に属するかを算出する。次に、ステップＳｂ２で、予め設定された分割数（例えば縦に４分割）で画素を分割し、注目する分割画素の座標値を算出する。次に、ステップＳｂ３で、ベクトルデータと分割画素の座標値とを比較し、注目している分割画素を塗りつぶすか否かを判断する。例えば、ベクトルデータと分割画素の座標値とを比較することで、分割画素の中点を含む／含まない、あるいは面積が半分以上／以内などのアルゴリズムを用いて、塗りつぶすか否かを決定すればよい。
【００２４】
次に、上記算出済み分割画素数、すなわち塗りつぶし判断を終了した分割画素数（≦４）が予め設定されている分割数（＝４）より小さいか否かを判断し、予め設定されている分割数に満たない場合には、まだ、全ての分割画素について塗りつぶしの判断が終了していないので、ステップＳｂ２に戻る。以下、ステップＳｂ２〜ステップＳｂ４を繰り返し実行し、注目している輪郭画素の全ての分割画素に対して、塗りつぶすか否かを判断する。そして、予め設定されている分割数より大となる場合、すなわち、注目している輪郭画素の全ての分割画素に対する塗りつぶし判断が終了すると、ステップＳｂ５に進み、各分割画素の２値データ（塗りつぶすか「１」、塗りつぶさないか「０」）を集計して注目画素の濃度値を算出する。
【００２５】
この例では、１画素を縦に４分割しているので、図５（ｂ）に示すように、１画素に４段階の濃度（６３，１２７，１９１，２５５）を与えることが可能である。例えば、４つに分割した分割画素のうち、１つの分割画素を塗りつぶすと判断した場合には、その画素の濃度は「６３」となり、２つの分割画素を塗りつぶすと判断した場合には、その画素の濃度は「１２７」となる。同様に、３つの分割画素を塗りつぶすと判断した場合には、その画素の濃度は「１９１」となり、４つの分割画素を塗りつぶすと判断した場合には、その画素の濃度は「２５５」となる。
【００２６】
上記ステップＳｂ２〜Ｓｂ５の処理に並行して、ステップＳｂ６およびステップＳｂ７の処理が実行される。ステップＳｂ６では、注目画素がベクトルデータの始点であるか否かを判断し、ベクトルデータの始点であれば、後述するステッＳ８に進む。一方、ベクトルデータの始点でなければ、ステップＳｂ７で、１つ前に処理した輪郭画素の絶対座標値と注目画素の絶対座標値との相対位置を求め、該相対位置の座標値を注目画素の座標値（相対座標値）を算出する。つまり、チェイン符号化する。
【００２７】
次に、ステップＳｂ８において、上記注目画素の濃度値および相対座標値とをセットにしてエンコードし、中間コード画像データの１セルを生成する。ここで、図６は、濃度値および相対座標値から中間コード画像データを生成する方法を説明するための概念図である。例えば、相対座標値に関しては、１つ前の輪郭画素が右上にあった場合には、注目画素の相対位置ＤＺを表すコードは「００１」となり、１つ前の輪郭画素が左上にあった場合には、注目画素の相対位置を表すコードＤＺは「１１１」となる。また、濃度値に関しては、濃度値「６３」のコードＤｅｎは「００」、濃度値「１２７」のコードＤｅｎは「０１」、濃度値「１９１」のコードＤｅｎは「１０」、濃度値「２５５」のコードＤｅｎは「１１」となる。
【００２８】
また、図７は、中間コード画像データを構成するセルのデータ構造を示す概念図である。１つの輪郭画素は、１つのセルで、位置情報と濃度情報とが表される。このとき、ベクトルデータの始点の輪郭画素は、デバイスの絶対座標（Ｘ，Ｙ：各々、１６ビット）と濃度を表すコードＤｅｎ（２ビット）とからなるロングタイプのセルを用い、始点以外の輪郭画素は、上記相対座標値から得られた相対位置ＤＺ（３ビット）と濃度を表すコードＤｅｎ（２ビット）とからなるショートタイプのセルを用いる。
【００２９】
このように中間コード画像データの１セルを生成した後、次に、ステップＳｂ９に進み、処理したセル数をカウントアップする。そして、ステップＳｂ１０で、ベクトルデータの終点であるか否かを判断し、終点でなければ、ステップＳｂ２（またはＳｂ６）に戻り、次の輪郭画素に対して、ステップＳｂ２〜Ｓｂ９を繰り返し実行する。以下、全ての輪郭画素に対しての中間コード画像データ生成の処理が終了すると、ステップＳｂ１１に進み、ヘッダ部を生成する。ヘッダ部は、トータルセル数、データの属性が「輪郭」であることを示す情報、１ショートセルの長さ、濃度値のビット数（以下に示す例ならば２ビット）などからなる。次に、ステップＳｂ１２で、ヘッダ部を中間コード画像データに追加し、中間コード画像データを、最終的に図８に示すデータ構成とし、当該処理を終了する。上記中間コード画像データは、前述したように、図２に示すステップＳａ７で出力制御部７に送出し、デコードする。
【００３０】
Ｂ−３．デコード処理
次に、図４は、上述した出力制御部７における中間コード画像データのデコード処理について説明するためのフローチャートである。まず、ステップＳｃ１で、中間コード画像データを読み出し、先頭のヘッダ部を抽出する。また、デコードが未処理であるセル数の初期値にヘッダ部のトータルセル数を代入する。次に、ステップＳｃ２で、抽出したヘッダ部内の画像属性が「輪郭」であるか否かを判断し、「輪郭」でなければ、ステップＳｃ１０に進み、従来通り、オブジェクトの属性を判別し、それぞれ決められたデコード方法（例えばランレングス法）でデコードする。一方、画像属性が「輪郭」であれば、ステップＳｃ３に進み、処理対象とするセルを示すポインタが示すセルを抽出する。
【００３１】
次に、ステップＳｃ４で、抽出したセルのタイプ（ショートセルかロングセル）を示すフラグを読み、ショートセルかロングセルかを判断する。そして、ロングセルならば、ステップＳｃ５に進み、ショートセルならば、ステップＳｃ６に進む。ステップＳｃ５では、ベクトルデータの始めの画素の情報であるロングセルをデコードし、画素の絶対座標値と濃度値とを求め、１つ前の輪郭画素の絶対座標値にデコードした画素の絶対座標値を代入する。一方、ステップＳｃ６では、ショートセルをデコードし、予め記憶されている１つ前の輪郭画素の絶対座標値とデコードした相対座標値から注目画素の絶対座標値を求め、１つ前の輪郭画素の絶対座標値に注目画素の絶対座標値を代入する。
【００３２】
次に、ステップＳｃ７で、ラスタデータ保持機構の該当位置（絶対座標値）にデコードした濃度値を書く。すなわち、濃度を示すコードＤｅｎが「００」ならば、濃度値「６３」、コードＤｅｎが「０１」ならば、濃度値「１２７」、コードＤｅｎが「１０」ならば、濃度値「１９１」、コードＤｅｎが「１１」ならば、濃度値「２５５」となる。次に、ステップＳｃ８で、デコードしていない未処理セル数を１つ減らす。そして、ステップＳｃ９で、上記未処理セル数を参照し、未処理セルが存在するか否かを判断し、未処理セルが存在するならば、ステップＳｃ３に戻る。以下、未処理セルがなくなるまで、ステップＳｃ３〜Ｓｃ９を繰り返し実行し、順次、デコードしていく。そして、未処理セルがなくなると、当該処理を終了する。
【００３３】
Ｃ．変形例
次に、本発明の変形例について説明する。本変形例では、中間コード画像データの生成（エンコード）処理において、輪郭画素の濃度値を決定するときに、どの分割画素を塗りつぶすか判断する際、塗りつぶす分割画素に応じて、１画素のどの部分を上記濃度値で塗りつぶすかを指示するデータ、言い換えると、輪郭（エッジ）の画素中の位置（エッジ方向）を示すデータを付加し、中間コード画像データをデコードする際には、輪郭画素を所定の分割数で分割し、上記エッジ方向を示すデータに従って、輪郭画素中の所定の分割画素を所定の濃度値で塗りつぶすようにする。
【００３４】
ここで、図９（ａ）〜（ｄ）は、エッジ方向を考慮した場合の分割画素パターンの例を示す概念図である。図９（ａ）は、画素を縦方向に２分割し、３通りのパターンを用いるものである。この場合、エッジ方向を示すデータとして２ビット必要となる。次に、図９（ｂ）は、画素を縦方向に４分割し、７通り（３ビット）のパターンを用いるものである。また、図９（ｃ）は、縦横方向にそれぞれ２分割し、１３通り（４ビット）のパターンを用いるものである。そして、図９（ｄ）は、縦方向に３分割、横方向に２分割し、２５通り（５ビット）のパターンを用いるものである。
【００３５】
出力装置では、ビデオ信号を三角波によりパルス幅変調し、レーザ光のオン／オフ制御を行うようになっている。そこで、上述したように、エッジ方向に応じた分割画素を塗りつぶすには、周期または位相の異なる複数の三角波を用いてパルス幅変調を行えば、容易に実現することが可能である。この場合、輪郭画素においては、エッジ方向に応じてその分割画素が所定の濃度値で塗りつぶされるので、図形の斜線や曲線部をより滑らかに出力することができる。
【００３６】
なお、上述した実施形態では、コンピュータ等から入力されるＰＤＬを解釈し、中間コード画像データを生成し、該中間コード画像データに従ってビットマップデータを生成して印字するプリンタ装置を想定して説明したが、これに限らず、中間コード画像データの生成までを行い、該生成した中間コード画像データを外部のプリンタ装置へ出力するコンピュータであってもよい。この場合、プリンタ装置側が、中間コード画像データをデコードし、ビットマップデータを生成する出力制御部７およびビットマップデータを印字する出力装置８を具備するものとする。
【００３７】
また、上述した実施形態では、輪郭画素のみの中間コード画像データを生成するようにしたが、これに限らず、輪郭位置よりも内側に位置する画像の位置情報を有する中間コード画像データをさらに生成し、出力制御部において、輪郭位置に対応する中間コード画像データに従って生成したビットマップデータと、輪郭位置の内側に位置する画像に対応する中間コード画像データに従って生成したビットマップデータとを重畳して出力するようにしてもよい。
【００３８】
【発明の効果】
以上、説明したように、請求項１記載の発明によれば、画像データから中間コード画像データを生成する際に、中間コード画像データ生成手段により、認識手段によって認識された輪郭位置および濃度決定手段によって決定された濃度を示す濃度情報を有する中間コード画像データを生成するようにしたので、ラスタライズに使用されるメモリ容量を最小限に抑えることができ、かつオブジェクト単位で図形の斜線や曲線部を滑らかに出力することがという利点が得られる。
【００３９】
また、請求項２記載の発明によれば、ラスタライズ手段により、前記中間コード画像データ生成手段によって生成された中間コード画像データに従ってビットマップデータを生成するようにしたので、ラスタライズに使用されるメモリ容量を最小限に抑えることができ、かつオブジェクト単位で図形の斜線や曲線部を滑らかに出力することができるという利点が得られる。
【図面の簡単な説明】
【図１】  本発明の一実施形態による画像処理装置の構成を示す概念図である。
【図２】  ラスタライズ処理を説明するためのフローチャートである。
【図３】  文字描画部３またはグラフィックス描画部４における図形の輪郭部の中間コード画像データの生成（エンコード）について説明するためのフローチャートである。
【図４】  出力制御部７における中間コード画像データのデコード処理について説明するためのフローチャートである。
【図５】  中間コード画像データの生成（エンコード）における濃度値の決定方法を説明するための概念図である。
【図６】  濃度値および相対座標値から中間コード画像データを生成する方法を説明するための概念図である。
【図７】  中間コード画像データを構成するセルのデータ構造を示す概念図である。
【図８】  中間コード画像データのデータ構成を示す概念図である。
【図９】  変形例において、エッジ方向を考慮した場合の分割画素パターンの例を示す概念図である。
【符号の説明】
１  入力部
２  入力画像解析部
３  文字描画部（認識手段、濃度決定手段、中間コード画像データ生成手段、判別手段）
４  グラフィックス描画部（認識手段、濃度決定手段、中間コード画像データ生成手段、判別手段）
５  ラスタ描画部
６  中間コード画像データ合成部
７  出力制御部（ラスタライズ手段）
８  出力装置
【図１】
0003716528.tif 000002
【図２】
0003716528.tif 000003
【図３】
0003716528.tif 000004
【図４】
0003716528.tif 000005
【図５】
0003716528.tif 000006
【図６】
0003716528.tif 000007
【図７】
0003716528.tif 000008
【図８】
0003716528.tif 000009
【図９】
0003716528.tif 000010