以下、図1〜図9を用い、本発明の実施形態を説明する。以下では、画像処理装置として複合機100を例に挙げ説明する。本実施の形態に記載されている構成、配置等の各要素は、発明の範囲を限定せず、単なる説明例にすぎない。
(複合機100)
図1を用いて実施形態に係る複合機100の一例を説明する。図1は、実施形態に係る複合機100の一例を示す図である。
複合機100は制御部1、記憶部2、画像読取部3、操作パネル4、印刷部5、通信部12を含む。
制御部1は複合機100の動作を制御する。制御部1は、CPU10、画像処理部11を含む。記憶部2は、RAM21(第1記憶部に相当)、ROM22(第2記憶部に相当)、ストレージ23(第2記憶部に相当)を含む。ROM22は、例えば、フラッシュROM22である。ストレージ23は、HDDやSSDのような大容量の不揮発性記憶装置である。記憶部2は、各種データ、制御用プログラムを記憶する。例えば、記憶部2は制御用データ、設定データ、画像データを記憶する。CPU10は、記憶部2に記憶されたプログラム、データに基づき各部(画像読取部3、操作パネル4、印刷部5、通信部12)を制御する。画像処理部11は各種画像処理を行う。例えば、画像処理部11は、画像処理専用の回路(ASIC)である。例えば、画像処理部11は、ページ記述言語で記述されたデータを解析し、画像データ(ラスターイメージ)を生成する。
原稿読み取りのとき、制御部1は、画像読取部3に原稿の読み取りを行わせる。画像読取部3は原稿画像データを生成する。原稿読み取りのため、画像読取部3は、光源(ランプ)、レンズ、イメージセンサー(ラインセンサー)を含む。
操作パネル4は、表示パネル41、タッチパネル42、ハードキー43を含む。表示パネル41は、画面、画像を表示する。制御部1は表示パネル41の表示を制御する。制御部1は、ジョブの設定に用いる操作画像を表示パネル41に表示させる。操作画像は、例えば、ボタンやキーである。タッチパネル42は、使用者の操作を受け付ける。タッチパネル42は、表示パネル41の上面に設けられる。タッチパネル42はタッチ位置を認識する。タッチパネル42の出力に基づき、制御部1は、操作された操作画像を認識する。操作された操作画像に基づき、制御部1は、使用者の操作内容を認識する。ハードキー43も使用者の操作を受け付ける。
印刷部5は、給紙部51、用紙搬送部52、画像形成部53、定着部54を含む。給紙部51には、用紙がセットされる。印刷ジョブのとき、制御部1は給紙部51に用紙を供給させる。制御部1は用紙を用紙搬送部52に搬送させる。制御部1はページ画像データに基づくトナー像を画像形成部53に形成させる。制御部1は、搬送される用紙へのトナー像の転写を画像形成部53に行わせる。制御部1は、用紙に転写されたトナー像の定着を定着部54に行わせる。制御部1は、機外に向けて定着後の用紙を用紙搬送部52に排出させる。
通信部12はコンピューター200と通信する。通信部12はコネクタ、通信用回路、通信用メモリー、通信ソフトウェアを含む。通信部12はコンピューター200から印刷用データ6を受信する。制御部1は受信した印刷用データ6に基づき印刷部5に印刷させる(プリントジョブ)。
(コンピューター200と印刷用データ6)
次に、図2を用いて、実施形態に係るコンピューター200の一例を説明する。図2は、実施形態に係るコンピューター200の一例を示す図である。
コンピューター200は通信部12と通信可能に接続される。コンピューター200は複数台でもよい。図2では、便宜上、1台のみコンピューター200を図示している。コンピューター200はPCやサーバーである。なお、コンピューター200は、印刷用データ6を作成し、複合機100に印刷用データ6を送信できるものであればよい。例えば、コンピューター200は、スマートフォンやタブレット型コンピューターでもよい。
コンピューター200は、処理部201、記憶部202、ディスプレイ203、入力デバイス204、ネットワーク通信部205を含む。
処理部201は、コンピューター200の動作を制御する。例えば、処理部201は、CPU201aを含む基板である。処理部201は、OS、ソフトウェア206、データに基づき、コンピューター200の動作を制御する。記憶部202はROM22、RAM21、HDDを含む。記憶部202は、コンピューター200のOS、プログラム、ソフトウェア206、データを不揮発的に記憶する。処理部201は、記憶部202の記憶内容に従って、コンピューター200の各部を制御する。
処理部201は、各種情報をディスプレイ203に表示させる。ディスプレイ203は、例えば、液晶パネル又は有機ELパネルを含む。入力デバイス204は、使用者の操作を受け付けるデバイスである。入力デバイス204は処理部201と接続される。入力デバイス204は、例えば、キーボードやマウスである。ネットワーク通信部205は通信回路、通信用ソフトウェアを含む。ネットワーク通信部205は、処理部201の指示に応じて複合機100の通信部12と通信する。印刷のため、ネットワーク通信部205は、複合機100の通信部12に向けて、印刷用データ6を送信する。
コンピューター200の記憶部202には、ソフトウェア206がインストールされる。例えば、ワープロソフト、表計算ソフト、画像データ編集ソフト、ブラウザソフトがインストールされる。また、コンピューター200の記憶部2には、プリンタードライバー207がインストールされる。プリンタードライバー207は、複合機100で印刷を行うためのソフトウェアである。
ソフトウェア206で作成した文書を印刷したいとき、使用者は、ソフトウェア206で印刷コマンドを実行する。入力デバイス204は印刷コマンドの実行を受け付ける。印刷コマンドが実行されたとき、処理部201は、プリンタードライバー207に基づき、印刷用データ6を生成する。処理部201は、複合機100の通信部12に向けて、生成した印刷用データ6をネットワーク通信部205に送信させる。通信部12が受信した印刷用データ6は記憶部2に記憶される。
図2に印刷用データ6の一例を示す。例えば、印刷用データ6は、PDLデータ61、設定データ62を含む。プリンタードライバー207に基づき、処理部201は、文書内容(印刷内容)をページ記述言語で記述したPDLデータ61を生成する。処理部201は、使用者により設定された設定値を含む設定データ62を印刷用データ6に含める。
(印刷用データ6の処理の流れ)
次に、図3を用いて、実施形態に係る複合機100において、印刷用データ6を受信したときの処理の流れの一例を説明する。図3は、実施形態に係る複合機100において、印刷用データ6を受信したときの処理の流れの一例を示す図である。
図3のスタートは、通信部121が受信した印刷用データ6が記憶部2に記憶された時点である。図3の処理は、ページごとに行われる。複数ページの印刷ジョブのとき、図3の処理は、複数回繰り返される。
まず、制御部1は、PDLデータ61に基づき、ページ画像データを生成する(ステップ♯11)。ページ画像データは、ビットマップデータ(ラスターイメージデータ)である。言い換えると、制御部1は、PDLデータ61に基づき、ラスターイメージデータを生成する。
具体的に、制御部1はPDLデータ61を解析する。PDLデータ61は、印刷の出力イメージをページ記述言語で記述したデータである。そのため、PDLデータ61では、印刷する記号や図形、印刷する記号や図形の位置、印刷する記号や図形の書式が記述される。制御部1は、記述内容を解析する。制御部1は、解析結果に基づき(PDLデータ61の記述に基づき)、ページ画像データを生成する。ページ画像データは、1ページ分の画像データである。印刷はページ画像データに基づき行われる。印刷用データ6が複数ページ分のPDLデータ61を含むとき、制御部1は複数のページ画像データを生成する。
次に、制御部1は、ページ画像データへの画像処理を画像処理部11に行わせる(ステップ♯12)。画像処理部11は設定データ62を参照する。設定データ62に基づき、実行すべき画像処理を認識する。例えば、プリンタードライバー207で縮小率が設定されたとき、設定データ62には縮小率が含まれる。画像処理部11は、設定データ62に基づき、縮小処理を行う。さらに、画像処理部11は、ページ画像データの形式を、画像形成部53でのトナー像形成するためのデータ形式に変換する。
制御部1は、画像処理部11が処理を完了したページ画像データに基づき、印刷部5に印刷させる(ステップ♯13)。画像処理部11は1ラインずつページ画像データを印刷部5に送信する。印刷部5は、受信したページ画像データに基づき、1ラインずつトナー像を生成する。トナー像の転写に間に合うように、制御部1は用紙の供給、搬送を行う。させる。制御部1は、トナー像の定着を定着部54に行わせる。そして、制御部1は、印刷済用紙を排出トレイに排出させる(ステップ♯14)。これにより、1ページの印刷が完了する(エンド)。
(記号画像データ7のキャッシュ)
図4〜図8を用い、実施形態に係る複合機100での記号画像データ7のキャッシュの一例を説明する。図4は実施形態に係る複合機100の一例を示す図である。図5は実施形態に係る複合機100において、再現可能に記号画像データ7をキャッシュする処理の流れの一例を示す図である。図6は、実施形態に係る複合機100において、再現可能に記号画像データ7をキャッシュする手法の一例を示す図である。図7は実施形態に係る管理テーブル91の一例を示す。図8は実施形態に係る解析結果データ9の一例を示す。
コンピューター200には、ファイルを扱うためのソフトウェア206がインストールされる。ソフトウェア206には、記号(テキストデータ)入力できるものがある。例えば、文書を作成するソフトウェア206では、入力デバイス204を用いて、記号を入力する。本発明において、記号には、文字、数字、記述用記号(狭義の記号)が含まれる。文字は、例えば、アルファベットである。記述用記号は文書の記述に用いられる記号である。記述用記号は、例えば、アットマーク、ピリオド、カンマ、コロン、セミコロンである。記号は、ファイル内でテキストとして扱われる。使用者は、記号を並べて(組み合わせて)単語、文章を入力する。
記号(テキスト)を含むファイルを印刷したいとき、使用者は、入力デバイス204を用いて、ファイルの印刷コマンドを入力する。印刷コマンドが入力されたとき、コンピューター200(処理部201)は、PDLデータ61を生成する。PDLデータ61には、ファイルに含まれる記号(種類、記号コード)、各記号の位置、サイズ(ポイント)、フォントが記述される。
ページ画像データを生成するとき、画像処理部11は、PDLデータ61に含まれる全ての記号の画像データ(記号画像データ7)を用意する。画像処理部11は、同じ記号について、フォントが異なれば、異なる記号画像データ7を用意する。また、画像処理部11は、同じ記号について、サイズが異なれば、異なる記号画像データ7を用意する。例えば、12ポイントの「A」という記号と、10ポイントの「A」という記号がPDLデータ61に記述されているとき、画像処理部11は、12ポイントの「A」の記号画像データ7と、10ポイントの「A」の記号画像データ7を用意する。また、フォントαの「A」という記号と、フォントβの「A」という記号がPDLデータ61に記述されているとき、画像処理部11は、フォントαの「A」の記号画像データ7と、フォントβの「A」の記号画像データ7を用意する。
ここで、複合機100は、記号画像データ7のキャッシュ機能を有する。用意すべき記号の記号画像データ7が再現可能にキャッシュされていないとき、画像処理部11は、記号画像データ7を新たに生成する。用意すべき記号の記号画像データ7が再現可能にキャッシュされているとき、キャッシュされたデータを用いて、画像処理部11は記号画像データ7を再現する。
複合機100は、記号画像データ7を生成するためのデータ(フォントデータ24)を記憶する。フォントデータ24は、ROM22とストレージ23の一方、又は、両方に不揮発的に記憶される。様々なフォントに対応するため、複数種のフォントデータ24が記憶される。ROM22、ストレージ23の何れか一方又は両方は、フォントデータ24を記憶する第2記憶部として機能する。
画像処理部11は、フォントデータ24を用いて、記号画像データ7を生成する。制御部1は、生成した記号画像データ7を再現可能にキャッシュ領域8に記憶させる。複合機100では、RAM21にキャッシュ領域8が設けられる。RAM21の記憶領域の一部がキャッシュ領域8に割り当てられる。つまり、RAM21は、記号画像データ7を再現するためのキャッシュ領域8を含む第1記憶部として機能する。制御部1はキャッシュ領域8の記憶を制御する。
キャッシュ領域8は、第1キャッシュ領域81と第2キャッシュ領域82を含む。第1キャッシュ領域81は、記号画像データ7の一部を記憶する。なお、第1キャッシュ領域81が記号画像データ7の全部を記憶する場合もあり得る。第2キャッシュ領域82は解析結果データ9を記憶する。解析結果データ9の詳細は後述する。また、制御部1は管理テーブル91を生成する。管理テーブル91は再現可能な記号画像データ7を判定するためのデータである。画像処理部11は、管理テーブル91を参照して、キャッシュ領域8に記憶されている記号を認識する。制御部1は、管理テーブル91をRAM21(記憶部2)に記憶させる。
次に、図5、図6を用いて、複合機100での記号画像データ7のキャッシュ保存の処理の一例を説明する。図5のスタートは、再現可能にキャッシュ領域8に保存されていない記号画像データ7を新たに生成した時点である。言い換えると、新たに記号画像データ7を生成した時点である。
まず、画像処理部11は、新たに生成した記号画像データ7を複数のブロックに分割する(ステップ♯21)。図6を用いて、記号画像データ7の分割を説明する。図6の最上段の画像は、新たに生成された記号画像データ7の一例を示す。図6では、アルファベットの「A」の記号画像データ7を生成した場合を例として説明する。図6に示す記号画像データ7のフォントは、Arial Blackである。ブロックは矩形である。各ブロックの大きさは、等しい又はほぼ等しい。図6の例では、各ブロックの大きさは等しい。画像処理部11は、各ブロックのサイズを異ならせてもよい。
画像処理部11は、上下方向において、複数の線で記号画像データ7を区切る。また、画像処理部11は、左右方向において、複数の線で記号画像データ7を区切る。図6では、左右方向で6つ、上下方向で4つに記号画像データ7を分割する例を示している。図6の中段の左側の図は、1つの記号画像データ7を24個に分割した例を示す。なお、分割数は24に限られない。
画像処理部11は、各ブロックの番号(順番)を定める。図6の中段の右側の図は、24個のブロックのそれぞれに割り振られた番号を示す。番号の付し方は、予め定められる。図6に示すように、画像処理部11は、左上隅を1番とする。画像処理部11は、左から右に番号を付す。右端のブロックに到ったとき、画像処理部11は、1段下の最も左のブロックに次の番号を付す。画像処理部11は、右下隅のブロックまで順に番号を付す。
次に、画像処理部11は、各ブロックを解析する(ステップ♯22)。具体的に、画像処理部11は、それぞれのブロックが、空白ブロックであるか、塗りつぶしブロックであるか、混在ブロックであるかを解析する。空白ブロックは空白を示す画素のみのブロックである。塗りつぶしブロックは、記号を構成する画素のみのブロックである。混在ブロックは空白を示す画素と記号を構成する画素を含むブロックである。
ここで、画像処理部11は、記号画像データ7として2値の画像データを生成する。記号画像データ7の画素の画素値は、1又は0の何れかとされる。例えば、空白を示す画素の画素値は「0」とされる。記号を構成する画素の画素値は「1」とされる。画像処理部11は、ページ画像データに記号画像データ7を埋め込むとき、あるいは、ページ画像データの生成後、記号を構成する画素の色をPDLデータ61で指定された色に変換する。
フォント及び記号によっては、ブロックの画像が対称の関係となる場合がある。例えば、アルファベットは対称性のある文字が多い。ここでの対称は線対称である。ブロックの矩形の枠線のうち、上下にのびる2つの枠線の一方が対称軸である。画像処理部11は、対称の関係にある2つの混在ブロックを抽出する。そして、画像処理部11は、対称の関係にある2つの混在ブロックのうち、何れか一方を通常ブロックと解析する。画像処理部11は、他方を対称ブロックと解析する。つまり、画像処理部11は、通常ブロックと対称ブロックの何れかに混在ブロックを分類する。
図6の最下段の図は、記号画像データ7の各ブロックの解析例を示す。図6の記号画像データ7では、1番、6番、7番、12番のブロックが空白ブロックと解析される。また、3番、4番、14番、17番、20番、23番のブロックが塗りつぶしブロックと解析される。2番、8番、9番、13番、15番、19番、21番のブロックが通常ブロックと解析される。5番、10番、11番、16番、18番、22番、24番のブロックが対称ブロックと解析される。
そして、画像処理部11は、それぞれのブロックの解析結果を示す解析結果データ9を生成する(ステップ♯23)。続いて、制御部1は、通常ブロックの画像データ(通常ブロックの画像データ)を第1キャッシュ領域81に記憶させる(ステップ♯24)。つまり、制御部1は、混在ブロックと解析したブロックの画像データを第1キャッシュ領域81に記憶させる。しかし、制御部1は、混在ブロックのうち、対称ブロックと解析したブロックの画像データを第1キャッシュ領域81に記憶させない。更に、制御部1は、管理テーブル91を更新する(ステップ♯25)。
管理テーブル91は、第1キャッシュ領域81に記憶される通常ブロックの画像データに関する情報を含む。図7は、実施形態にかかる管理テーブル91の一例を示す。制御部1は、フォント、記号コード、フォント、ポイント(サイズ)、ブロック番号、アドレスを管理テーブル91に記入する。
制御部1は、第1キャッシュ領域81に格納された通常ブロックの画像データの記号コードを管理テーブル91に書き込む。記号コードは、記号の種類を示すためのコード(番号)である。記号コードはキャラクターコードと称されることもある。複合機100では、予め、コードが各記号に割り当てられる。例えば、アルファベットの大文字、小文字のそれぞれに、固有の記号コードが割り当てられる。制御部1は、記号コードにより、どの記号の通常ブロックが第1キャッシュ領域81に記憶されているかを認識できる。
制御部1は、第1キャッシュ領域81に記憶している画像データのフォントを管理テーブル91に書き込む。どのフォントを用いるかは、PDLデータ61で定義されている。図7では、Arial BlackやTahomaのフォントを例に挙げている。制御部1は、第1キャッシュ領域81に記憶している画像データのサイズ(ポイント)を管理テーブル91に書き込む。ポイントは、PDLで定義されている記号のサイズである。制御部1は、第1キャッシュ領域81に記憶している画像データのブロック番号を管理テーブル91に書き込む。また、制御部1は、通常ブロックの画像データが記憶されているアドレスも管理テーブル91に書き込む。アドレスは、RAM21(第1キャッシュ領域81)内の記憶場所を示す。管理テーブル91により、制御部1は、通常ブロックの画像データが第1キャッシュ領域81に記憶されている記号、フォント、サイズ、ブロック番号、格納アドレスを認識できる。
更に、制御部1は、解析結果データ9を第2キャッシュ領域82に記憶させる(ステップ♯26)。図8は解析結果データ9の一例を示す。解析結果データ9には、記号コード、フォント、サイズ(ポイント)、空白ブロックと解析したブロック番号、塗りつぶしブロックと解析したブロック番号、通常ブロックと解析したブロック番号、対称ブロックと解析したブロック番号が含まれる。対称ブロックについては、対称の関係にある通常ブロックの番号も解析結果データ9に含められる。図8では、括弧内の数字が対称の関係にある通常ブロックの番号である。
ステップ♯26により、記号画像データ7のキャッシュ保存フローが終了する。これにより、あるフォント、あるサイズ、ある記号の記号画像データ7が再現可能にキャッシュ領域8に一時的に保持される。
(ページ画像データの生成)
次に、図9を用いて、実施形態に係る複合機100でのページ画像データの生成処理の一例を説明する。図9は、実施形態に係る複合機100でのページ画像データの生成時の処理の流れの一例を示す図である。
図9のスタートは、ページ画像データの生成を開始する時点である。まず、画像処理部11は、PDLデータ61で記述された記号のうち、記号を1つ選択する(ステップ♯31)。言い換えると、画像処理部11は、PDLデータ61のうち、未処理の記号を1つ選択する。記号の選択順は予め定められる。例えば、画像処理部11は、ページの上側から順に未処理の記号を選択する。また、同じ高さに記号が複数位置する場合、画像処理部11は、左から順番に未処理の記号を選択する。
次に、画像処理部11は、用意すべき記号画像データ7を確認する(ステップ♯32)。具体的に、画像処理部11は、記号の種類(記号コード)、フォント、サイズを確認する。そして、画像処理部11は、選択した記号の記号画像データ7が再現可能にキャッシュされているか否かを確認する(ステップ♯33)。つまり、ページ画像データを生成するとき、画像処理部11は、ページ画像データに含める記号がキャッシュ領域8に記憶されたデータに基づき再現できるか否かを判定する。
具体的に、画像処理部11は管理テーブル91を参照する。選択した記号と、記号コード、フォント及びサイズが同じ記号画像データ7の一部と解析結果データ9がキャッシュ領域8に記憶されているとき、画像処理部11は再現可能にキャッシュされていると判定する。一方、選択した記号と、記号コード、フォント及びサイズが同じ記号画像データ7の一部と解析結果データ9がキャッシュ領域8に記憶されていないとき、画像処理部11は、再現可能にキャッシュされていないと判定する。
再現不能なとき(ステップ♯33のNo)、画像処理部11は、選択した記号(ページ画像データに含める記号)の記号画像データ7を新たに生成する(ステップ♯34)。画像処理部11は、記憶部2(ROM22又はストレージ23)のフォントデータ24を用いて記号画像データ7を生成する。画像処理部11は、新たに生成した記号画像データ7をページ画像データに埋め込む(ステップ♯35)。これにより、ページ画像データに記号が含められる。
続いて、画像処理部11は、記号画像データ7の分割とブロックの解析を行う(ステップ♯36)。そして、画像処理部11は、全ての通常ブロックの画像データを第1キャッシュ領域81の空き領域に記憶できるか否かを確認する(ステップ♯37)。言い換えると、画像処理部11は、第1キャッシュ領域81が空き容量不足か否かを確認する(ステップ♯37)。
空き容量不足のとき(満杯のとき、ステップ♯37のNo)、制御部1は、最も使用されていない記号の混在ブロック(通常ブロック)の画像データと解析結果データ9をキャッシュ領域8から消去する(ステップ♯38)。ここで、制御部1は、再現可能にキャッシュされた記号画像データ7のそれぞれのヒット率を管理する。制御部1は、最もヒット率が低い記号画像データ7の通常ブロックの画像データと解析結果データ9を消去する。
空き容量があるとき(ステップ♯37のYes)、又は、ステップ♯38の後、制御部1は、混在ブロック(通常ブロック)の画像データと解析結果データ9をキャッシュ領域8に記憶させる(ステップ♯39)。
一方、再現可能なとき(ステップ♯33のYes)、画像処理部11は、キャッシュ領域8に記憶された混在ブロック(通常ブロック)の画像データと、解析結果データ9を用いて、記号画像データ7を再現する(ステップ♯310)。
具体的に、画像処理部11は解析結果データ9を参照する。再現する記号画像データ7のうち、空白ブロックについては、画像処理部11は、全画素の画素値を、空白の画素値とする(例えば、画素値=ゼロ)。塗りつぶしブロックについては、画像処理部11は、全画素の画素値を、高濃度の画素値とする(例えば、画素値=1)。
通常ブロックを再現するとき、画像処理部11は第1キャッシュ領域81の画像データ(通常ブロックの画像データ)を用いる。通常ブロックの画像データを読み出すとき、画像処理部11は、管理テーブル91を参照する。画像処理部11は、対応する通常ブロックの画像データを第1キャッシュ領域81から読み出す。
対称ブロックを再現するとき、画像処理部11は読み出し済の通常ブロックの画像データを用いる。対称ブロックの再現よりも先に、通常ブロックの画像データの読み出しが行われる。画像処理部11は、解析結果データ9を参照する。画像処理部11は、対称ブロックと対称の関係にあるブロック番号(通常ブロック)を確認する。画像処理部11は、対称の関係にある通常ブロックの画像データを反転させ、対称ブロックの画像データを再現する。画像処理部11は、通常ブロックの画像データの左右を反転した画像データを生成する。言い換えると、画像処理部11は、線対称に左右を反転させた画像データを生成する。画像処理部11は反転した画像データを対称ブロックの画像データとして用いる。
画像処理部11は、空白ブロック、塗りつぶしブロック、通常ブロック、対称ブロックの各ブロックの画像データを番号順に組み合わせる。これにより、画像処理部11は、1つの記号画像データ7を再現する。画像処理部11は、再現した記号画像データ7をページ画像データに埋め込む(ステップ♯311)。
ステップ♯39、又は、ステップ♯311の後、画像処理部11は、ページ内の全ての記号の処理が完了したか否かを確認する(ステップ♯312)。言い換えると、画像処理部11は、ページ内の全記号をページ画像データに埋め込んだか否かを確認する。全記号の処理が完了していないとき(ステップ♯311のNo)、フローはステップ♯31に戻る。全記号の処理が完了したとき(ステップ♯311のYes)、フローは終了する(エンド)。
このようにして、実施形態に画像処理装置(複合機100)は、画像処理部11、第1記憶部(RAM21)、制御部1を含む。画像処理部11は、記号の画像データである記号画像データ7を生成する。第1記憶部は、記号画像データ7を再現するためのキャッシュ領域8を含む。制御部1は、キャッシュ領域8の記憶を制御する。キャッシュ領域8は、記号画像データ7の一部又は全部を記憶する第1キャッシュ領域81と、解析結果データ9を記憶する第2キャッシュ領域82を含む。画像処理部11は、新たに生成した記号画像データ7を複数のブロックに分割する。画像処理部11は、それぞれのブロックが、空白ブロックであるか、塗りつぶしブロックであるか、混在ブロックであるかを解析する。画像処理部11は、それぞれのブロックの解析結果を示す解析結果データ9を生成する。空白ブロックは空白を示す画素のみのブロックである。塗りつぶしブロックは、記号を構成する画素のみのブロックである。混在ブロックは空白を示す画素と記号を構成する画素を含むブロックである。制御部1は、混在ブロックの画像データを第1キャッシュ領域81に記憶させる。制御部1は、空白ブロックと塗りつぶしブロックの画像データを第1キャッシュ領域81に記憶させない。制御部1は、解析結果データ9を第2キャッシュ領域82に記憶させる。画像処理部11は、キャッシュ領域8に記憶された混在ブロックと、解析結果データ9を用いて、記号画像データ7を再現する。
従来、記号画像データ7の全てをキャッシュ領域8に格納していた。画像処理装置によれば記号画像データ7のうち、一部(混在ブロック)のみをキャッシュ領域8に記憶させる。1つの記号画像データ7を再現可能にキャッシュする場合、キャッシュ領域8に格納する画像データのサイズを従来よりも減らすことができる。従って、大きなサイズの記号画像データ7をキャッシュ領域8に記憶させることが可能になる。キャッシュ領域8に記号画像データ7の全てを記憶させなくても、解析結果データ9に基づき、必要なときに、記号画像データ7を直ちに再現することができる。また、1つの記号画像データ7のキャッシュに必要なデータ量が減るので、キャッシュできる記号(記号画像データ7)の種類、パターンを増やすことができる。従って、ヒット率を高めることができ、記号画像データ7の生成回数を減らすことができる。印刷に用いるページ画像データの生成に要する時間を従来よりも減らすことができる。
画像処理部11は、記号画像データ7を複数のブロックに分割したとき、対称の関係にある2つの混在ブロックを抽出する。画像処理部11は、対称の関係にある2つの混在ブロックのうち、何れか一方を通常ブロックと解析し、他方を対称ブロックと解析する。制御部1は、通常ブロックの画像データを第1キャッシュ領域81に記憶させる。制御部1は、対称ブロックの画像データを第1キャッシュ領域81に記憶させない。記号画像データ7を再現するとき、制御部1は、第1キャッシュ領域81に記憶された通常ブロックの画像データを反転させて対称ブロックを再現し、1つの記号画像データ7を再現する。これにより、キャッシュ領域8に記憶させる画像データを減らすことができる。キャッシュ領域8に記憶させる画像データを減らしても、必要なときに、記号画像データ7を直ちに再現することができる。
画像処理装置は、記号画像データ7を生成するためのフォントデータ24を記憶する第2記憶部(ROM22、ストレージ23)を含む。画像処理部11は、ページ画像データを生成するとき、ページ画像データに含める記号がキャッシュ領域8に記憶されたデータに基づき再現できるか否かを判定する。再現可能なとき、画像処理部11は、ページ画像データに含める記号に対応する混在ブロックの画像データと解析結果データ9を用いて、記号画像データ7を再現する。画像処理部11は、再現した記号画像データ7をページ画像データに埋め込む。再現不能なとき、画像処理部11は、フォントデータ24を用いて、ページ画像データに含める記号の記号画像データ7を新たに生成する。制御部1は、新たに生成された記号画像データ7の混在ブロックの画像データと解析結果データ9をキャッシュ領域8に記憶させる。これにより、キャッシュ領域8に記憶された混在ブロック(通常ブロック)の画像データと、解析結果データ9を用いて、記号画像データ7を再現しつつ、ページ画像データを生成することができる。ページ画像データに含まれる全ての記号について記号画像データ7を生成しないですむ場合がある。従って、短時間でページ画像データを生成することができる。
新たに記号画像データ7を生成したとき、制御部1は、第1キャッシュ領域81の空き容量が不足しているか否かを確認する。制御部1は、空き容量が不足しているとき、最も使用されていない記号の混在ブロックの画像データと解析結果データ9をキャッシュ領域8から消去する。制御部1は、新たに生成した記号画像データ7の混在ブロックの画像データと解析結果データ9をキャッシュ領域8に記憶させる。これにより、キャッシュ領域8から不要な記号の画像データと解析結果データ9を消去することができる。新たに生成した記号画像データ7を再現可能にキャッシュすることができる。
画像処理部11は、同じ記号について、フォントごと、かつ、サイズごとに異なる記号画像データ7を生成する。これにより、フォント、サイズに応じた記号画像データ7を生成することができる。フォント、サイズに応じた記号画像データ7をキャッシュ領域8に格納することができる。キャッシュ領域8の画像データと解析結果データ9に基づき、必要なとき、直ちに記号画像データ7を再現することができる。
以下、変形例を説明する。上記の説明では、混在ブロックが対称ブロックか否かを解析する例を説明した。画像処理部11が対称ブロックか否かを解析しないようにしてもよい。制御部1は、混在ブロックの画像データを全て、第1キャッシュ領域81に記憶させてもよい。
また、上記の説明では、記号画像データ7を24個のブロックに分割する例を説明した。記号画像データ7の分割数は固定でもよい。一方で、画像処理部11は、記号画像データ7のサイズに応じて、分割数を変えてもよい。例えば、記号画像データ7のサイズが大きいほど、分割数を増やしてもよい。分割数をふやすことで、積極的に空白ブロックと塗りつぶしブロックを増やし、第1キャッシュ領域81に記憶する画像データの合計サイズを減らすようにしてもよい。これにより、記号画像データ7のブロックの分割数を記号画像データ7のサイズに応じて調整することができる。
本発明の実施形態を説明したが、本発明の範囲はこれに限定されるものではなく、発明の主旨を逸脱しない範囲で種々の変更を加えて実施することができる。