(57)【要約】【課題】  レンダリング処理における、ビットマップフォントのエッジ抽出において、入力されたビットマップの条件(幅、高さ、フォント種、文字コード、文字セット等)によっては、一度にエッジ抽出を行うピクセル数が固定されている場合、冗長な処理になる可能性がある。【解決手段】  ビットマップフォントの条件に応じて、一度にエッジ抽出を行うピクセル数を可変にする。またその際、エッジからピクセル座標を算出するルックアップテーブルサイズの削減と算出処理時間削減の為、一度に抽出出来るエッジ数に制限を設け、制限を越えた場合、ピクセル数を少なくする。【選択図】  図８
2010262374.tif 000002
【特許請求の範囲】
【請求項１】
ＤＬデータをレンダリングしビットマップを生成する画像処理装置において、ビットマップフォントからエッジを抽出する際、
処理を行うビットマップを取得するステップと、
入力されたビットマップフォントの幅と高さを取得するステップと、
入力されたビットマップフォントの幅と高さに応じて、一度にエッジ抽出するピクセル数を決定するステップと、
決定したピクセル数を元にエッジを抽出する為のルックアップテーブルをロードするステップと、
一度にエッジ抽出を行うピクセル数を元にビットマップフォントのエッジ数を取得するステップと、
取得したエッジ数が想定しているエッジ数より多い場合、エッジを抽出するピクセル数を少なくし、再度エッジ数を取得するステップと、
想定しているエッジ数より少ない場合、ロードされているルックアップテーブルからエッジとなるピクセル座標を取得するするステップと
上記、ビットマップフォントのエッジ抽出を、入力ビットマップデータ分繰り返すステップを持つことを特徴とする画像処理方法。
【請求項２】
入力されたビットマップフォントのフォント種がＤＬ生成処理部からレンダリング部に伝えられることが可能な場合、ビットマップフォント種に応じて、一度にエッジ抽出するピクセル数を決定するステップを持つことを特徴とする請求項１に記載の画像処理方法。
【請求項３】
入力されたビットマップフォントの文字コードがＤＬ生成処理部からレンダリング部に伝えられることが可能な場合、文字コードに応じて、一度にエッジ抽出するピクセル数を決定するステップを持つことを特徴とする請求項１に記載の画像処理方法。
【請求項４】
入力されたビットマップフォントの文字セットがＤＬ生成処理部からレンダリング部に伝えられることが可能な場合、文字セットに応じて、一度にセット抽出するピクセル数を決定するステップを持つことを特徴とする請求項１に記載の画像処理方法。
【請求項５】
入力されたビットマップフォントの解像度がＤＬ生成処理部からレンダリング部に伝えられることが可能な場合、解像度に応じて、一度にセット抽出するピクセル数を決定するステップを持つことを特徴とする請求項１に記載の画像処理方法。
【請求項６】
ルックアップテーブルをロードするＲＯＭ、またはＲＡＭサイズに応じて、一度に抽出するエッジ数を決定するステップを持つことを特徴とする請求項１に記載の画像処理方法。
【請求項７】
ＤＬデータをレンダリングしビットマップを生成する画像処理装置において、ビットマップフォントからエッジを抽出する際、
処理を行うビットマップを取得する手段と、
入力されたビットマップフォントの幅と高さを取得する手段と、
入力されたビットマップフォントの幅と高さに応じて、一度にエッジ抽出するピクセル数を決定する手段と、
決定したピクセル数を元にエッジを抽出する為のルックアップテーブルをロードする手段と、
一度にエッジ抽出を行うピクセル数を元にビットマップフォントのエッジ数を取得する手段と、
取得したエッジ数が想定しているエッジ数より多い場合、エッジを抽出するピクセル数を少なくし、再度エッジ数を取得する手段と、
想定しているエッジ数より少ない場合、ロードされているルックアップテーブルからエッジとなるピクセル座標を取得するする手段と
上記、ビットマップフォントのエッジ抽出を、入力ビットマップデータ分繰り返す手段を持つことを特徴とする印刷処理装置。
【請求項８】
入力されたビットマップフォントのフォント種がＤＬ生成処理部からレンダリング部に伝えられることが可能な場合、ビットマップフォント種に応じて、一度にエッジ抽出するピクセル数を決定する手段を持つことを特徴とする請求項７に記載の印刷処理装置。
【請求項９】
入力されたビットマップフォントの文字コードがＤＬ生成処理部からレンダリング部に伝えられることが可能な場合、文字コードに応じて、一度にエッジ抽出するピクセル数を決定する手段を持つことを特徴とする請求項７に記載の印刷処理装置。
【請求項１０】
入力されたビットマップフォントの文字セットがＤＬ生成処理部からレンダリング部に伝えられることが可能な場合、文字セットに応じて、一度にセット抽出するピクセル数を決定する手段を持つことを特徴とする請求項７に記載の印刷処理装置。
【請求項１１】
入力されたビットマップフォントの解像度がＤＬ生成処理部からレンダリング部に伝えられることが可能な場合、解像度に応じて、一度にセット抽出するピクセル数を決定する手段を持つことを特徴とする請求項７に記載の印刷処理装置。
【請求項１２】
ルックアップテーブルをロードするＲＯＭ、またはＲＡＭサイズに応じて、一度に抽出するエッジ数を決定する手段を持つことを特徴とする請求項７に記載の印刷処理装置。
【請求項１３】
ＤＬデータをレンダリングしビットマップを生成する画像処理装置において、ビットマップフォントからエッジを抽出する際、
処理を行うビットマップを取得する工程と、
入力されたビットマップフォントの幅と高さを取得する工程と、
入力されたビットマップフォントの幅と高さに応じて、一度にエッジ抽出するピクセル数を決定する工程と、
決定したピクセル数を元にエッジを抽出する為のルックアップテーブルをロードする工程と、
一度にエッジ抽出を行うピクセル数を元にビットマップフォントのエッジ数を取得する工程と、
取得したエッジ数が想定しているエッジ数より多い場合、エッジを抽出するピクセル数を少なくし、再度エッジ数を取得する工程と、
想定しているエッジ数より少ない場合、ロードされているルックアップテーブルからエッジとなるピクセル座標を取得するする工程と
上記、ビットマップフォントのエッジ抽出を、入力ビットマップデータ分繰り返す工程を持つことを特徴とする印刷処理を行う制御プログラムを記憶した媒体。
【請求項１４】
入力されたビットマップフォントのフォント種がＤＬ生成処理部からレンダリング部に伝えられることが可能な場合、ビットマップフォント種に応じて、一度にエッジ抽出するピクセル数を決定する工程を持つことを特徴とする印刷処理を行う制御プログラムを記憶した請求項１３に記載の媒体。
【請求項１５】
入力されたビットマップフォントの文字コードがＤＬ生成処理部からレンダリング部に伝えられることが可能な場合、文字コードに応じて、一度にエッジ抽出するピクセル数を決定する工程を持つことを特徴とする印刷処理を行う制御プログラムを記憶した請求項１３に記載の媒体。
【請求項１６】
入力されたビットマップフォントの文字セットがＤＬ生成処理部からレンダリング部に伝えられることが可能な場合、文字セットに応じて、一度にセット抽出するピクセル数を決定する工程を持つことを特徴とする印刷処理を行う制御プログラムを記憶した請求項１３に記載の媒体。
【請求項１７】
入力されたビットマップフォントの解像度がＤＬ生成処理部からレンダリング部に伝えられることが可能な場合、解像度に応じて、一度にセット抽出するピクセル数を決定する工程を持つことを特徴とする印刷処理を行う制御プログラムを記憶した請求項１３に記載の媒体。
【請求項１８】
ルックアップテーブルをロードするＲＯＭ、またはＲＡＭサイズに応じて、一度に抽出するエッジ数を決定する工程を持つことを特徴とする印刷処理を行う制御プログラムを記憶した請求項１３に記載の媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ビットマップフォントのエッジ抽出制御方法を有する画像形成装置及び画像形成方法ならびに画像形成方法を実行するプログラムに関するものである。
【背景技術】
【０００２】
これまでのビットマップフォントのエッジ抽出処理の特許として、「特許文献１」に示すように、入力したビットマップ画像のエッジ抽出を行うハード回路と、抽出したエッジを元に描画オブジェクトを生成するソフト処理をパイプライン処理で行うことにより高速化を図っていた。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−１６４６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら上述した従来の技術では、図５に示すようにエッジ抽出を行うピクセル数が固定されている為、入力されたビットマップのサイズやフォントの種類によっては処理が冗長に行われている可能性があった。
【課題を解決するための手段】
【０００５】
上記の問題を解決する為に、本発明は、
ＤＬデータをレンダリングしビットマップを生成する画像処理装置において、ビットマップフォントからエッジを抽出する際、
処理を行うビットマップを取得する手段と、
入力されたビットマップフォントの幅と高さを取得する手段と、
入力されたビットマップフォントの幅と高さに応じて、一度にエッジ抽出するピクセル数を決定する手段と、
決定したピクセル数を元にエッジを抽出する為のルックアップテーブルをロードする手段と、
一度にエッジ抽出を行うピクセル数を元にビットマップフォントのエッジ数を取得する手段と、
取得したエッジ数が想定しているエッジ数より多い場合、エッジを抽出するピクセル数を少なくし、再度エッジ数を取得する手段と、
想定しているエッジ数より少ない場合、ロードされているルックアップテーブルからエッジとなるピクセル座標を取得するする手段と
上記、ビットマップフォントのエッジ抽出を、入力ビットマップデータ分繰り返す。
【発明の効果】
【０００６】
上記解決手段から、
「一度にエッジ抽出するピクセル数を入力されたビットマップの条件に応じて変更する」ことにより、従来に比べエッジ抽出処理が高速に行うことが可能になった。
【０００７】
また、「一度に抽出出来るエッジ数に制限を設ける」ことにより、一度にエッジ抽出するピクセル数が大きくなった場合でも、エッジになるピクセル座標を求める為のルックアップテーブルを保持するＲＡＭ、ＲＯＭ容量をおさえることが出来る。
【図面の簡単な説明】
【０００８】
【図１】本発明の一実施例の印刷装置（ＭＦＰ）の構造を示す側断面図である。
【図２】実施形態における各機器のコントロールユニットの構成例を示すブロック図である。
【図３】実施形態におけるシステム構成の一例を示す図である。
【図４】実施形態におけるコントローラソフトウェアの構成の一例を示すブロック図である。
【図５】従来のビットマップのエッジ抽出処理を説明する図である。
【図６】実施形態におけるエッジ抽出を行うピクセルを変えた場合を示す図である。
【図７】実施形態における一度に抽出するエッジ数を変えた場合を示す図である。
【図８】実施形態における処理のフローを示した図である。
【発明を実施するための形態】
【０００９】
（実施例１）
以下、本発明を実施するための最良の形態について、図面を参照して説明する。
【００１０】
＜画像処理装置の構成＞
本実施例を適用するに好適な１Ｄカラー系ＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ：マルチファンクション周辺機器）の構成について、図１を用いて説明する。
【００１１】
１Ｄカラー系ＭＦＰは、スキャナ部、レーザ露光部、感光ドラム、作像部、定着部、給紙／搬送部及び、これらを制御する不図示のプリンタ制御部から構成される。
【００１２】
スキャナ部は、原稿台に置かれた原稿に対して、照明を当てて原稿画像を光学的に読み取り、その像を電気信号に変換して画像データを作成する工程である。
【００１３】
レーザ露光部は、前記画像データに応じて変調されたレーザ光などの光線を等角速度で回転する回転多面鏡（ポリゴンミラー）に入射させ、反射走査光として感光ドラムに照射する。
【００１４】
作像部は、感光ドラムを回転駆動し、帯電器によって帯電させ、前記レーザ露光部によって感光ドラム上に形成された潜像をトナーによって現像化し、そのトナー像をシートに転写する。その際に転写されずに感光ドラム上に残った微小トナーを回収するといった一連の電子写真プロセスを実行して作像する。その際、シートが転写ベルトの所定位置に巻きつき、４回転する間に、マゼンタ（Ｍ）、シアン（Ｃ）、イエロー（Ｙ）、ブラック（Ｋ）のトナーを持つそれぞれの現像ユニット（現像ステーション）が入れ替わりで順次前述の電子写真プロセスを繰り返し実行する。４回転の後、４色のフルカラートナー像を転写されたシートは、転写ドラムを離れ、定着部へ搬送される。
【００１５】
定着部は、ローラやベルトの組み合わせによって構成され、ハロゲンヒータなどの熱源を内蔵し、前記作像部によってトナー像が転写されたシート上のトナーを、熱と圧力によって溶解、定着させる。
【００１６】
給紙／搬送部は、シートカセットやペーパーデッキに代表されるシート収納庫を一つ以上持っており、前記プリンタ制御部の指示に応じてシート収納庫に収納された複数のシートの中から一枚分離し、作像部・定着部へ搬送する。シートは作像部の転写ドラムに巻きつけられ、４回転した後に定着部へ搬送される。４回転する間に前述のＹＭＣＫ各色のトナー像がシートに転写される。また、シートの両面に画像形成する場合は、定着部を通過したシートを再度作像部へ搬送する搬送経路を通るように制御する。
【００１７】
プリンタ制御部は、ＭＦＰ全体を制御するＭＦＰ制御部と通信して、その指示に応じて制御を実行すると共に、前述のスキャナ、レーザ露光、作像、定着、給紙／搬送の各部の状態を管理しながら、全体が調和を保って円滑に動作できるよう指示を行う。
【００１８】
＜システム構成＞
図３は、本実施形態に係る画像処理システムの全体構成を示すブロック図である。図３において、画像処理システムは、互いにＬＡＮ（Local Area Network）Ｎ１等を介して接続された、ＭＦＰ１、ＭＦＰ２、ＭＦＰ３で構成されている。
【００１９】
各ＭＦＰはそれぞれＨＤＤ（Hard Disk Drive：二次記憶装置）Ｈ１、Ｈ２、Ｈ３を具備している。ＭＦＰに搭載されているプリンタエンジン（以降、エンジン）の解像度はＭＦＰ毎に異なっており、ＭＦＰ１とＭＦＰ３は６００ｄｐｉ、ＭＦＰ２は１２００ｄｐｉである。また、ＭＦＰに搭載されているレンダラ（ラスタライザ）の種類もＭＦＰ毎に異なっており、ＭＦＰ１とＭＦＰ２のレンダラは同種（図中には「Ｒａ」と図示）、ＭＦＰ３だけ異なる種類（「Ｒｂ」と図示）である。一般にレンダラはＡＳＩＣなどのハードウェアで構成されるため、異なる種類のレンダラは異なる種類の描画命令群を処理することができない。この描画命令群を一般にディスプレイリストと呼ぶ。ディスプレイリストはハードウェアで処理可能なインストラクションであり、複雑な描画記述を持つベクタデータからソフトウェアで生成され、解像度依存である。
【００２０】
ＭＦＰ１、ＭＦＰ２、ＭＦＰ３はネットワークプロトコルを使用して互いに通信することができる。なお、ＬＡＮ  Ｎ１上に接続されるこれらのＭＦＰは上記のような物理的な配置に限定されなくても良い。また、ＬＡＮ  Ｎ１上にはＭＦＰ以外の機器（例えばＰＣ、各種サーバ、プリンタなど）が接続されていても良い。
【００２１】
＜コントローラユニットの構成＞
図２は、本実施形態におけるＭＦＰのコントロールユニット（コントローラ）の一構成例を示すブロック図である。図２において、コントロールユニット２００は、画像入力デバイスであるスキャナ２０１や画像出力デバイスであるプリンタエンジン２０２と接続し、画像データの読み取りやプリント出力のための制御を行う。また、コントロールユニット２００は、ＬＡＮ  Ｎ１や公衆回線２０４と接続することで、画像情報やデバイス情報をＬＡＮ  Ｎ１経由で入出力するための制御を行う。
【００２２】
ＣＰＵ２０５はＭＦＰ全体を制御するための中央処理装置である。ＲＡＭ２０６は、ＣＰＵ２０５が動作するためのシステムワークメモリであり、入力された画像データを一時記憶するための画像メモリでもある。さらに、ＲＯＭ２０７はブートＲＯＭであり、システムのブートプログラムが格納されている。ＨＤＤ２０８はハードディスクドライブであり、各種処理のためのシステムソフトウェア及び入力された画像データを等格納する。操作部Ｉ／Ｆ２０９は、画像データ等を表示可能な表示画面を有する操作部２１０に対するインタフェース部であり、操作部２１０に対して操作画面データを出力する。また、操作部Ｉ／Ｆ２０９は、操作部２１０から操作者が入力した情報をＣＰＵ２０５に伝える役割をする。ネットワークインタフェース２１１は、例えばＬＡＮカード等で実現され、ＬＡＮ  Ｎ１に接続して外部装置との間で情報の入出力を行う。さらにまた、モデム２１２は公衆回線２０４に接続し、外部装置との間で情報の入出力を行う。以上のユニットがシステムバス２１３上に配置されている。
【００２３】
イメージバスＩ／Ｆ２１４は、システムバス２１３と画像データを高速で転送する画像バス２１５とを接続するためのインタフェースであり、データ構造を変換するバスブリッジである。画像バス２１５上には、ラスタイメージプロセッサ２１６、デバイスＩ／Ｆ２１７、スキャナ画像処理部２１８、プリンタ画像処理部２１９、画像編集用画像処理部２２０、カラーマネージメントモジュール２３０が接続される。
【００２４】
ラスタイメージプロセッサ（ＲＩＰ）２１６は、ページ記述言語（ＰＤＬデータ）コードや後述するベクトルデータをイメージに展開する。デバイスＩ／Ｆ部２１７は、スキャナ２０１やプリンタエンジン２０２とコントロール２００とを接続し、画像データの同期系／非同期系の変換を行う。
【００２５】
また、スキャナ画像処理部２１８は、スキャナ２０１から入力した画像データに対して、補正、加工、編集等の各種処理を行う。プリンタ画像処理部２１９は、プリント出力する画像データに対して、プリンタエンジンに応じた補正、解像度変換等の処理を行う。画像編集用画像処理２２０は、画像データの回転や、画像データの圧縮伸長処理等の各種画像処理を行う。ＣＭＭ２３０は、画像データに対して、プロファイルやキャリブレーションデータに基づいた、色変換処理（色空間変換処理ともいう）を施す専用ハードウェアモジュールである。プロファイルとは、機器に依存した色空間で表現したカラー画像データを機器に依存しない色空間（例えばＬａｂなど）に変換するための関数のような情報である。キャリブレーションデータとは、カラー複合機３におけるスキャナ部２０１やプリンタエンジン２０２の色再現特性を修正するためのデータである。
【００２６】
＜コントローラソフトウェア構成＞
図４は、ＭＦＰの動作を制御するコントローラソフトウェアの構成を示すブロック図である。
【００２７】
プリンタインターフェイス４００は、外部との入出力のための手段である。プロトコル制御部４０１は、ネットワークプロトコルを解析・送信することによって外部との通信を行う手段である。
【００２８】
ＰＤＬデータ解析部４０２は、ＰＤＬデータを解析し、より処理しやすい形式のディスプレイリストに変換する手段である。ＰＤＬデータ解析部４０２において生成されたディスプレイリストはデータ描画部４０３に渡されて処理される。データ描画部４０３は上記ディスプレイリストをビットマップデータに展開するものであり、展開されたビットマップデータはページメモリ４０４に逐次描画されて行く。
【００２９】
ページメモリ４０４はレンダラが展開するビットマップデータを一次的に保持する揮発性のメモリである。
【００３０】
パネル入出力制御部は操作パネルからの入出力を制御するものである。
【００３１】
ドキュメント記憶部４０６はデータファイルを記憶する手段であり、ハードディスク等の二次記憶装置によって実現される。
【００３２】
スキャン制御部４０７はスキャナから入力した画像データに対して、補正、加工、編集などの各種処理を行う。
【００３３】
印刷制御部４０８は、ページメモリ４０４の内容をビデオ信号に変換処理し、プリンタエンジン部４０９へ画像転送を行なう。プリンタエンジン部１４００は受け取ったビデオ信号を記録紙に可視画像形成するための印刷機構部である。
【００３４】
＜これまでのビットマップエッジ抽出処理＞
図５は、これまでのビットマップのエッジ抽出処理を示す図である。
【００３５】
１スキャンライン分のエッジ抽出処理はｄ５０１で開始される。
【００３６】
処理を行うビットマップデータは、ｄ５０２‘に示される形式でメモリ上に展開されている。
【００３７】
ビットマップデータは、1ピクセルをあらわすのに1ビット（塗りは１、白は０）必要とするので、８ピクセルをあらわすのに８ビット（１バイト）必要とする。よって、ｄ５０２’の左側の丸印一つ分には８ピクセル分の情報が入っている。
【００３８】
また、このフローチャートで出てくる「処理するデータ数」とは、１スキャンラインのビットマップを表すデータの個数で、例えばビットマップの幅が４０ピクセルの場合、４０(ピクセル)÷８(ピクセル／バイト)＝５(バイト)となる。この５という値はビットマップの左端を処理する時点の値で、８ピクセル処理される毎にマイナス１される。
【００３９】
上記説明した８ピクセル分のビットマップデータがすべて白、つまり０ｘ００の場合、かつ、処理を行うデータの残数が０でないかの判断をｄ５０２で行う。
【００４０】
この判断がＹＥＳの場合、処理するデータの残数をマイナス1し、処理中のＸ座標をプラス８する処理をｄ５０３で行う。
【００４１】
そして次に白を検出処理するビットマップデータ（ｄ５０２‘の右側の丸印へ）に移動する処理をｄ５０４で行う。
【００４２】
ｄ５０２からｄ５０４までの処理をｄ５０２の条件がＮＯになるまで繰り返す。
【００４３】
ｄ５０２がＮＯの場合、処理を行うデータの残数をｄ５０５で行いＹＥＳの場合、ｄ５０６で処理するデータの残数をマイナス１する。
【００４４】
次に処理を行うピクセルデータからエッジになるピクセルの抽出処理をｄ５０８で行う。
【００４５】
その際使用するルックアップテーブルはｄ５０７とｄ５０７‘であらわされる。この中で「／＊〜＊／」ではさまれた部分はコメントなので処理で使われる値ではない。また、｛  ｝内の値で、１番目に現れる値はエッジの個数、次に現れる値はエッジとなるピクセル座標である。よって、例えば「０ｘ０２」が入ってきた場合、ルックアップテーブルは｛２、６、７｝となり、これはエッジ数が２つ、エッジとなるＸ座標が６ピクセル目と７ピクセル目ということになる。
【００４６】
ｄ５０８で検出した座標に現在処理中のＸ座標を加えた値をｄ５０９で保存する。
【００４７】
次に処理中のＸ座標をプラス８して、次にエッジ検出処理するビットマップデータをｄ５１０で取得してｄ５０５に戻る。
【００４８】
ｄ５０５がＮＯだった場合、処理中のピクセルに終了を意味するフラグをｄ５１１で付加し、ｄ５１２で１スキャンライン分のエッジ抽出処理を終了する。
【００４９】
＜本特許におけるビットマップエッジ抽出処理１＞
ここで、図６を使って本特許におけるビットマップのエッジ抽出について説明する。
【００５０】
ｄ６０１にあるように、入力されたビットマップの幅が大きい場合、一度にエッジ抽出のピクセル数を大きくする。この図では４０ピクセルに含まれるエッジを一度に抽出する例を示している。
【００５１】
ｄ６０２は入力されたビットマップデータを示す例で、１行で４０ピクセル（８バイト）分のデータを表している(図ｄ６０２の「(０、０)⇒」や「（０、９）⇒」はどのピクセルからのデータかを示している為、実際のメモリ上に現れるものではない)。
【００５２】
また、ｄ６０３は４０ピクセル内に含まれるエッジをすべて検出する為に必要なルックアップテーブルの例を示している。
【００５３】
ｄ６０４にあるように、従来８ピクセルに含まれるエッジを一度に抽出する場合、１スキャンライン当たり５回の処理が必要で、４０スキャンラインあるデータの場合、合計２００回処理が必要だった。一方本特許では、１スキャンライン当たり１回の処理で、４０スキャンラインあるデータの場合、合計４０回の処理ですむ為、１６０回の処理を削減することが可能になる。
【００５４】
ここでは、ビットマップ幅が大きい場合を挙げたが、フォントの種類、出力解像度、文字飾り、文字セット、文字コードにより、一度にエッジ抽出するピクセル数を変えてもよい。
【００５５】
＜本特許におけるビットマップエッジ抽出処理２＞
次に、図７を使って、図６での処理における問題を解決する為の処理を説明する。ｄ７０１では３２ピクセルに含まれるエッジを一度に抽出する為のルックアップテーブルを示している。エッジを一度に抽出する為には、３２ビットのＯＮ／ＯＦＦの全組み合わせを表現する為に、約４３億パターン必要となる。
【００５６】
さらに、現在エッジを抽出している３２ピクセルの１ピクセル前のピクセルが塗りか白かにより、パターンは２倍になり合計８６億パターン必要となる。
【００５７】
８６億パターンのルックアップテーブルをＲＯＭやＲＡＭにおいて処理するには、膨大なサイズが必要となり問題となる。また、検索に要する時間も大きくなることが予想される。
【００５８】
上記の問題を解決する為に、ｄ７０２に示すように、３２ピクセルに含まれるエッジを一度に抽出するのではなく、３２ピクセルにエッジが１つ、もしくはない場合のみを抽出するように変更する。この２種類のエッジ抽出の為のルックアップテーブルは３２（エッジ１つ、前のピクセル白）＋３２（エッジ１つ、前のピクセル塗り）＋２（エッジなし）＝６６パターンとなる。
【００５９】
ｄ７０２の横の図の濃いラインで表されるように、エッジが２つあった場合は、ｄ７０２ではエッジが抽出出来ないので、ｄ７０３に示すように、一度に処理するピクセル数を半分にする。つまり、３２÷２＝１６ピクセル中にエッジが１つ、もしくはない場合のみを抽出するようにする。この場合のエッジ抽出の為のルックアップテーブルは、１６（エッジ１つ、前のピクセル白）＋１６（エッジ１つ、前のピクセル塗り）＋２（エッジなし）＝３４パターンとなる。
【００６０】
ｄ７０４に示すように、もし、１６ピクセルにエッジが２つ以上あった場合は、３２ピクセルから１６ピクセルに分割したように、１６ピクセルを８ピクセルに分割してエッジ抽出処理を行う。８ピクセルの場合は、８ピクセル内に含まれるすべてのエッジを抽出することにする。この場合のエッジ抽出の為のルックアップテーブルは、２５６（エッジ１つ、前のピクセル白）２５６（エッジ１つ、前のピクセル塗り）＋２（エッジなし）＝５１４パターンとなる。
【００６１】
３２ピクセル、１６ピクセル、８ピクセルのパターンを合計すると、６１４パターンとなり、８ピクセルのみに比べても、１００パターンの増加にとどまっている。
【００６２】
この説明では、一度にエッジを抽出するピクセル数を半分ずつにしていったが、半分にこだわる必要はなく、任意の値で分割してかまわない。また、この説明では、３２ピクセル、１６ピクセルで抽出するエッジ数は１またはなしとしたが、任意の個数抽出しても構わない。
【００６３】
＜本特許におけるビットマップエッジ抽出フロー＞
最後にこれまで述べた本特許をフローチャートで説明する。
【００６４】
まず、ｄ８０１で処理を開始する。次にｄ８０３でエッジ抽出を行うビットマップデータをｄ８０２から入力する。その後、ｄ８０５でエッジ抽出を行うビットマップデータに関するフォントに関する情報をｄ８０４から入力する。ｄ８０５で入力した情報を元に、ｄ８０６で一度にエッジ抽出を行うピクセル数を決定する。ｄ８０８においてｄ８０６で決定されたピクセル数に応じたルックアップテーブルをｄ８０７からロードする。ｄ８０９において、ｄ８０６で決定したピクセル分のビットマップデータを読み込む。ｄ８１０において、ｄ８０９で読み込んだデータに含まれるエッジ数を取得する。ｄ８１１において、ｄ８１０で取得したエッジ数が想定したエッジ数より多いか判断する。多い場合、ｄ８０９で取得したビットマップデータを分割し新しいビットマップデータを作成し、ｄ８１０に戻る。ｄ８１１がＮＯだった場合、ｄ８０８でロードしたルックアップテーブルからエッジとなるピクセルの座標を取得する。ｄ８１４ですべてのビットマップデータの処理が終わったか否かを判断し、ＮＯだった場合、ｄ８０９に戻る。ｄ８１４がＹＥＳだった場合、ｄ８１４でビットマップエッジ抽出処理を終了する。
【００６５】
（他の実施形態）
以上、代表的な実施形態を詳述したが、本発明は、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。例えば、スキャナ、プリンタ、ＰＣ、複写機、複合機及びファクシミリ装置の如くである。
【００６６】
本発明は、前述した実施形態の各機能を実現するソフトウェアプログラムを、システム若しくは装置に対して直接または遠隔から供給し、そのシステム等に含まれるコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される。
【００６７】
従って、本発明の機能・処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、上記機能・処理を実現するためのコンピュータプログラム自体も本発明の一つである。
【００６８】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等、プログラムの形態を問わない。
【００６９】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷなどがある。また、記録媒体としては、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ、ＤＶＤ−Ｒ）などもある。
【００７０】
また、プログラムは、クライアントコンピュータのブラウザを用いてインターネット／イントラネットのウェブサイトからダウンロードしてもよい。すなわち、該ウェブサイトから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードしてもよいのである。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるウェブサイトからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明の構成要件となる場合がある。
【００７１】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布してもよい。この場合、所定条件をクリアしたユーザにのみ、インターネット／イントラネットを介してウェブサイトから暗号化を解く鍵情報をダウンロードさせ、その鍵情報で暗号化されたプログラムを復号して実行し、プログラムをコンピュータにインストールしてもよい。
【００７２】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現されてもよい。なお、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行ってもよい。もちろん、この場合も、前述した実施形態の機能が実現され得る。
【００７３】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれてもよい。そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行ってもよい。このようにして、前述した実施形態の機能が実現されることもある。
【符号の説明】
【００７４】
２００  コントロールユニット
２０１  スキャナ
２０２  プリンタエンジン
２１０  操作部
３０１  ジョブコントロール処理
４００  プロトコル制御部
４０１  ベクタデータ生成部
４０２  ＰＤＬデータ解析部
４０３  データ描画部
４０４  ページメモリ
４０５  パネル入出力制御部
４０６  ドキュメント記憶部
４０７  スキャン制御部
４０８  出力制御部
４０９  プリンタエンジン部
【図１】
2010262374.tif 000003
【図２】
2010262374.tif 000004
【図３】
2010262374.tif 000005
【図４】
2010262374.tif 000006
【図５】
2010262374.tif 000007
【図６】
2010262374.tif 000008
【図７】
2010262374.tif 000009
【図８】
2010262374.tif 000010