(57)【特許請求の範囲】
【請求項１】
入力されるＰＤＬデータ内のイメージデータをタイル単位に分割する分割手段と、
前記ＰＤＬデータを解析して生成される描画オブジェクトの描画情報のエッジを検出することによりジョブデータを生成するジョブデータ生成手段と、
可逆圧縮すべきタイル属性か、または非可逆圧縮すべきタイル属性かを、前記分割手段により分割されたタイル毎に判定する第１の判定手段と、
前記第１の判定手段により判定されたタイル属性に応じて、前記タイル毎のイメージデータを可逆圧縮方式で圧縮した中間データまたは前記イメージデータを拡大した後、非可逆圧縮方式で圧縮した中間データを生成する中間データ生成手段と、
前記中間データ生成手段により生成された中間データ内のイメージデータの属性が可逆圧縮すべきタイル属性か、または非可逆圧縮すべきタイル属性かを、前記分割手段により分割されたタイル毎に判定する第２の判定手段と、
前記第２の判定手段が判定するタイル属性に応じて、前記中間データを可逆圧縮方式で伸長した後、拡大処理した中間データからラスタ画像データを生成し、または中間データを非可逆圧縮方式で伸長した中間データからラスタ画像データを生成する中間データレンダリング手段と、を備え、
前記ジョブデータは、辺情報と、塗り合成ストアと、塗り情報とを含む構造であることを特徴とする画像処理装置。
【請求項２】
前記第１の判定手段は、タイル毎に分割されたイメージデータがフラットフィル部でない場合に非逆圧縮すべきタイル属性と判定し、タイル毎に分割されたイメージデータがフラットフィル部である場合に可逆圧縮すべきタイル属性であると判定することを特徴とすることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記第２の判定手段がタイル属性をフラットフィル部であると判定した場合、可逆圧縮すべきタイル属性であると判定し、タイル属性をフラットフィル部でないと判定した場合、非可逆圧縮すべきタイル属性であると判定することを特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記描画オブジェクトは、イメージオブジェクトと、グラフィックスオブジェクトとを含むことを特徴とする請求項１記載の画像処理装置。
【請求項５】
前記グラフィックスオブジェクトは、前記ジョブデータの塗り情報が色データであることを特徴とする請求項４記載の画像処理装置。
【請求項６】
前記グラフィックスオブジェクトは、イメージデータから中間データを生成する前に可逆圧縮され、当該中間データを伸長したラスタ画像データに対して回転または拡大処理を行うことを特徴とする請求項４または５記載の画像処理装置。
【請求項７】
入力されるＰＤＬデータ内のイメージデータをタイル単位に分割する分割手段と、
前記ＰＤＬデータを解析して生成される描画オブジェクトの描画情報のエッジを検出することによりジョブデータを生成するジョブデータ生成手段と、
前記分割手段が分割したタイル領域を属性の異なる像域に分離する分離手段と、
可逆圧縮すべきタイル属性か、または非可逆圧縮すべきタイル属性かを、前記分離手段により分離された像域毎に判定する第１の判定手段と、
前記第１の判定手段により判定されたタイル属性に応じて、前記タイル毎のイメージデータを可逆圧縮方式で圧縮した中間データまたは前記イメージデータを拡大した後、非可逆圧縮方式で圧縮した中間データを生成する中間データ生成手段と、
前記中間データ生成手段により生成された中間データ内のイメージデータの属性が可逆圧縮すべきタイル属性か、または非可逆圧縮すべきタイル属性かを、前記分離手段により分離された像域毎に判定する第２の判定手段と、
前記第２の判定手段が判定するタイル属性に応じて、前記中間データを可逆圧縮方式で伸長した後、拡大処理した中間データからラスタ画像データを生成し、または中間データを非可逆圧縮方式で伸長した中間データからラスタ画像データを生成する中間データレンダリング手段と、を備え、
前記ジョブデータは、辺情報と、塗り合成ストアと、塗り情報とを含む構造であることを特徴とする画像処理装置。
【請求項８】
前記第１の判定手段は、像域毎に分離されたイメージデータがフラットフィル部でない場合に非逆圧縮すべきタイル属性と判定し、タイル毎に分割されたイメージデータがフラットフィル部である場合に可逆圧縮すべきタイル属性であると判定することを特徴とすることを特徴とする請求項７に記載の画像処理装置。
【請求項９】
前記第２の判定手段がタイル属性をフラットフィル部であると判定した場合、可逆圧縮すべきタイル属性であると判定し、タイル属性をフラットフィル部でないと判定した場合、非可逆圧縮すべきタイル属性であると判定することを特徴とする請求項８に記載の画像処理装置。
【請求項１０】
画像処理装置の画像処理方法であって、
入力されるＰＤＬデータ内のイメージデータをタイル単位に分割する分割工程と、
前記ＰＤＬデータを解析して生成される描画オブジェクトの描画情報のエッジを検出することによりジョブデータを生成するジョブデータ生成工程と、
可逆圧縮すべきタイル属性か、または非可逆圧縮すべきタイル属性かを、前記分割工程により分割されたタイル毎に判定する第１の判定工程と、
前記第１の判定工程により判定されたタイル属性に応じて、前記タイル毎のイメージデータを可逆圧縮方式で圧縮した中間データまたは前記イメージデータを拡大した後、非可逆圧縮方式で圧縮した中間データを生成する中間データ生成工程と、
前記中間データ生成工程により生成された中間データ内のイメージデータの属性が可逆圧縮すべきタイル属性か、または非可逆圧縮すべきタイル属性かを、前記分割工程により分割されたタイル毎に判定する第２の判定工程と、
前記第２の判定工程が判定するタイル属性に応じて、前記中間データを可逆圧縮方式で伸長した後、拡大処理した中間データからラスタ画像データを生成し、または中間データを非可逆圧縮方式で伸長した中間データからラスタ画像データを生成する中間データレンダリング工程と、を備え、
前記ジョブデータは、辺情報と、塗り合成ストアと、塗り情報とを含む構造であることを特徴とする画像処理装置の画像処理方法。
【請求項１１】
画像処理装置の画像処理方法であって、
入力されるＰＤＬデータ内のイメージデータをタイル単位に分割する分割工程と、
前記ＰＤＬデータを解析して生成される描画オブジェクトの描画情報のエッジを検出することによりジョブデータを生成するジョブデータ生成工程と、
前記分割工程が分割したタイル領域を属性の異なる像域に分離する分離工程と、
可逆圧縮すべきタイル属性か、または非可逆圧縮すべきタイル属性かを、前記分離工程により分離された像域毎に判定する第１の判定工程と、
前記第１の判定工程により判定されたタイル属性に応じて、前記タイル毎のイメージデータを可逆圧縮方式で圧縮した中間データまたは前記イメージデータを拡大した後、非可逆圧縮方式で圧縮した中間データを生成する中間データ生成工程と、
前記中間データ生成工程により生成された中間データ内のイメージデータの属性が可逆圧縮すべきタイル属性か、または非可逆圧縮すべきタイル属性かを、前記分離工程により分離された像域毎に判定する第２の判定工程と、
前記第２の判定工程が判定するタイル属性に応じて、前記中間データを可逆圧縮方式で伸長した後、拡大処理した中間データからラスタ画像データを生成し、または中間データを非可逆圧縮方式で伸長した中間データからラスタ画像データを生成する中間データレンダリング工程と、を備え、
前記ジョブデータは、辺情報と、塗り合成ストアと、塗り情報とを含む構造であることを特徴とする画像処理装置の画像処理方法。
【請求項１２】
請求項１０または１１に記載の画像処理方法をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理装置の画像処理方法及びプログラムに関するものである。
【背景技術】
【０００２】
画像処理装置におけるレンダリング処理における拡縮処理とは、入力画像の解像度を所定の解像度に拡大または縮小する処理である。また、レンダリング処理における圧縮・伸長処理とは夫々、入力データを基に生成した中間データを圧縮する処理、圧縮した中間データを伸長する処理である。
【０００３】
特許文献１には次の方法が開示されている。画像データの拡大率等に基づいて圧縮率を決定して、画像データを非可逆圧縮してバッファメモリに書き込み、バッファメモリから読み出して伸長した後にレンダリング解像度に拡大する。
【０００４】
特許文献２には次の方法が開示されている。画像データをタイル単位に可逆圧縮して可逆圧縮データを生成する。このとき、タイル毎に画像データの属性に基づいて可逆圧縮すべきか非可逆圧縮すべきかを判定し、可逆／非可逆判定情報を関連付ける。非可逆圧縮すべきと判定されたタイル数が閾値を超える度に、非可逆判定情報を有する可逆圧縮データを低解像度に縮小する。１ページ分の可逆圧縮が終了すると、非可逆判定情報を有する可逆圧縮データを、非可逆圧縮して非可逆圧縮データに置き換える。そして、可逆圧縮データ及び非可逆圧縮データを伸長した後にレンダリング解像度に拡大する。
【０００５】
図１７及び図１８は、従来の圧縮・伸長・拡大処理の例を図示化したものである。
図１７の（Ａ）は、拡大処理をした後に非可逆圧縮を行い、伸長している。結果、圧縮データのデータサイズが肥大する。圧縮データのデータサイズが増加すれば、その転送時間も増加することになる。また、図１７の（Ｂ）では、圧縮データのデータサイズが制限を超えた場合における、従来技術の一対処法を図示化している。図１７の（Ｂ）は、圧縮データのデータサイズが制限を超えると、一旦伸長を行い、当該ページをレンダリングして非可逆圧縮する。この手法によると、１ページ全体を非可逆圧縮するため、出力画像の画質が著しく劣化してしまう。
【０００６】
上述のことから、特にバッファメモリが少ない画像処理装置において、非可逆圧縮をした後に拡大処理を行う手法が用いられている。
図１８では、非可逆圧縮を行った後に、伸長してから拡大処理を行っている。これにより、前記拡大による圧縮データのサイズ増加は防げるものの、非可逆圧縮で生じた画質劣化のノイズが、後の拡大処理によって増幅される。その結果、出力画像の画質が大幅に劣化してしまう。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平１０−３１３４１１号公報
【特許文献２】特開２００８−０７２６２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
従来の画像処理装置における画像処理は上記のように構成されているので、ＰＤＬデータを解析して中間データを生成する処理において、非可逆圧縮の前に、イメージデータ全体を画一的に拡大してしまう。このため、生成された中間データのサイズが大きくなり、イメージデータに対して非可逆圧縮処理を実行する。これにより、中間データからラスタ画像データを生成する際に、画質が大幅に劣化してしまう。
一方、中間データ生成処理において拡大処理を実行せずに、中間データをレンダリングする際に拡大処理すると、中間データ生成処理で実行される非可逆圧縮で生じた画質劣化のノイズが増幅されてしまう。
本発明は上記の課題を解決するためになされたもので、本発明の目的は、ＰＤＬデータから中間データを生成する際のサイズ増加を抑え、ラスタ画像データ生成時の画質劣化を低減できる仕組みを提供することである。
【課題を解決するための手段】
【０００９】
上記目的を達成する本発明の画像処理装置は以下に示す構成を備える。
入力されるＰＤＬデータ内のイメージデータをタイル単位に分割する分割手段と、
前記ＰＤＬデータを解析して生成される描画オブジェクトの描画情報のエッジを検出することによりジョブデータを生成するジョブデータ生成手段と、可逆圧縮すべきタイル属性か、または非可逆圧縮すべきタイル属性かを、前記分割手段により分割されたタイル毎に判定する第１の判定手段と、前記第１の判定手段により判定されたタイル属性に応じて、前記タイル毎のイメージデータを可逆圧縮方式で圧縮した中間データまたは前記イメージデータを拡大した後、非可逆圧縮方式で圧縮した中間データを生成する中間データ生成手段と、前記中間データ生成手段により生成された中間データ内のイメージデータの属性が可逆圧縮すべきタイル属性か、または非可逆圧縮すべきタイル属性かを、前記分割手段により分割されたタイル毎に判定する第２の判定手段と、前記第２の判定手段が判定するタイル属性に応じて、前記中間データを可逆圧縮方式で伸長した後、拡大処理した中間データからラスタ画像データを生成し、または中間データを非可逆圧縮方式で伸長した中間データからラスタ画像データを生成する中間データレンダリング手段と、を備え、前記ジョブデータは、辺情報と、塗り合成ストアと、塗り情報とを含む構造であることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、ＰＤＬデータから中間データを生成する際のサイズ増加を抑え、ラスタ画像データ生成時の画質劣化を低減できる。
【図面の簡単な説明】
【００１１】
【図１】本実施形態を示す画像処理装置の構成を説明するブロック図である。
【図２】画像処理装置の画像処理方法を説明するフローチャートである。
【図３】ラスタ画像処理部（ＲＩＰ）の各種機能を示すブロック図である。
【図４】オブジェクトとスキャンライン（水平線）との様子を示す図である。
【図５】ジョブデータ生成部が生成するジョブデータの構造を示す図である。
【図６】画像処理装置の画像処理方法を説明するフローチャートである。
【図７】ラスタ画像データのデータ構造を説明刷る図である。
【図８】画像処理装置の画像処理方法を説明するフローチャートである。
【図９】画像処理装置の画像処理方法を説明するフローチャートである。
【図１０】画像処理装置の構成を説明するブロック図である。
【図１１】画像処理装置の画像処理方法を説明するフローチャートである。
【図１２】画像処理装置の画像処理方法を説明するフローチャートである。
【図１３】画像処理装置の画像処理方法を説明するフローチャートである。
【図１４】画像処理装置におけるピクセル補間の例を示す図である。
【図１５】画像処理装置の画像処理方法を説明するフローチャートである。
【図１６】画像処理装置の画像処理方法を説明するフローチャートである。
【図１７】従来の圧縮・伸長・拡大処理の例を図示化したものである。
【図１８】従来の圧縮・伸長・拡大処理の例を図示化したものである。
【発明を実施するための形態】
【００１２】
次に本発明を実施するための最良の形態について図面を参照して説明する。
＜システム構成の説明＞
〔第１実施形態〕
【００１３】
図１は、本実施形態を示す画像処理装置の構成を説明するブロック図である。以下、図１を参照して、入力されるＰＤＬデータに基づく中間データを生成した後、当該中間データをレンダリングしてラスタ画像データを生成する画像処理装置を説明する。本実施形態において、オブジェクトとは、入力された描画命令から成る描画要素を指し、例えば、ビットマップグラフィックス、フラットグラフィックス、グラデーショングラフィックス、テキスト等がオブジェクトのタイプに挙げられる。
また、ラスタ画像とは、例えば、ＢＭＰ、ＪＰＥＧ等の写真データを始めとする、ビットマップグラフィックスに分類されるオブジェクトのことを指す。後述する像域判定処理または像域分離処理を実行することで、ラスタ画像は、フラットフィル部（単一の色データ部）、ビットマップ部の２つの画像領域の内、少なくとも１つの画像領域と判定されて分離される。さらに、本実施形態において、入力されるＰＤＬデータは、中間データ生成処理と、中間データを保持する処理、中間データレンダリング処理とを含む一連の画像処理が実行されることで、ラスタ画像データが生成される。
図１において、画像処理装置３００は、描画命令に基づき画像を形成、および出力する装置であり、入力部３０１、解釈部（インタプリタ）３０２、ラスタ画像処理部（ＲＩＰ）３０３、画像形成部３０４、出力部３０５から構成される。
入力部３０１は、画像処理装置３００に接続されている外部装置から描画命令を受け付ける。ここで、外部装置とは、双方向通信可能なインタフェースを介して通信可能なデータ処理装置、サーバ装置等が含まれる。ここで、双方向通信可能なインタフェースには、ＵＳＢインタフェースやネットワークインタフェースが含まれる。また、サーバ装置には、いわゆるクラウドコンピューティング環境に設置されるサーバ装置が含まれる。
【００１４】
解釈部（インタプリタ）３０２は、入力部３０１で受け付けた描画命令を解釈する。本実施形態における描画命令の形式は、ＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）である。
ラスタ画像処理部（ＲＩＰ）３０３は、解釈部（インタプリタ）３０２により解釈された描画命令を基にレンダリングを行い、ラスタ画像を生成する。画像形成部３０４はラスタ画像処理部（ＲＩＰ）３０３により生成されたラスタ画像に対し、ハーフトーン処理等の画像処理を施して出力画像を形成する。出力部３０５は、画像形成部３０４により形成された出力画像を出力する。なお、本実施形態における画像処理装置は、ＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｒｉｎｔｅｒ）であり、出力部３０５は、記録紙に印刷を行うことで出力画像を出力する。
【００１５】
なお、解釈部（インタプリタ）３０２、ラスタ画像処理部（ＲＩＰ）３０３、画像形成部３０４は、各種プログラムをＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）にロードし、ＣＰＵが実行することで実現される。また、ラスタ画像処理部（ＲＩＰ）３０３は、ＣＰＵではなくラスタ画像を生成するためのＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）で実現されても良い。
【００１６】
次に、ラスタ画像処理部（ＲＩＰ）３０３によるラスタ画像の生成処理について詳細に説明する。
図２は、本実施形態を示す画像処理装置の画像処理方法を説明するフローチャートである。本例は、図１に示したラスタ画像処理部（ＲＩＰ）３０３によるラスタ画像生成処理例である。以下、画像処理装置３００のＣＰＵが実行するラスタ画像処理部（ＲＩＰ）３０３によるデータ処理を説明する。
始めに、ラスタ画像処理部（ＲＩＰ）３０３は、図１の解釈部（インタプリタ）３０２で解釈した描画命令に基づき、描画オブジェクトを生成する（Ｓ４０１）。なお、上述の如く、描画オブジェクトの種類は複数存在し、夫々の描画オブジェクトはいずれかのオブジェクトの種類に分類される。
【００１７】
続いて、ラスタ画像処理部（ＲＩＰ）３０３は、Ｓ４０１において生成された描画オブジェクトの座標情報を基に、夫々のオブジェクトのエッジを検出しジョブデータを生成する（Ｓ４０２）。
最後に、ラスタ画像処理部（ＲＩＰ）３０３は、Ｓ４０２において生成されたジョブデータを基に、ラスタ画像をレンダリングする（Ｓ４０３）。なお、ジョブデータについては、後述する。
【００１８】
次に、ラスタ画像処理部（ＲＩＰ）３０３の内部構成について詳細に説明する。
図３は、図１に示したラスタ画像処理部（ＲＩＰ）３０３の各種機能を示すブロック図である。なお、後述する各部は、画像処理装置３００のＣＰＵが各部をモジュールとして構成する場合を示すが、各部の一部をハードウエアとして構成することも可能である。
図３において、ラスタ画像処理部（ＲＩＰ）３０３は、描画オブジェクト生成部５０１、画像記憶部５０２、ジョブデータ生成部５０３、画像読込部５０４、レンダリング部５０５、画像記憶領域５０６、ジョブデータ記憶領域５１８から構成される。
描画オブジェクト生成部５０１は、解釈部（インタプリタ）３０２により解釈された描画命令を受け付けて、オブジェクトを生成する。以下、描画オブジェクトを解析して画像形成部３０４に出力する画像データを生成する処理を説明する。
【００１９】
〔画像記憶部５０２の構成〕
画像記憶部５０２は、ラスタ画像タイプのオブジェクトに対して処理を行うタイル分割部５０７、像域判定部５０８、圧縮方法選択部５０９、ビットマップ回転拡大部５１０、画像圧縮部５１１を備える。
タイル分割部５０７は、ラスタ画像のオブジェクトをタイル単位に分割するモジュールとして機能する。本実施形態において、タイルは、予め定めた縦横のピクセル数（例えば６４×６４ピクセル単位）で区切られた画像ブロックである。
像域判定部５０８は、各タイルがフラットフィル部であるかビットマップ部であるか判定する処理を実行する。本実施形態において、フラットフィル部は全ての画素が同一色であるタイルであり、ビットマップ部は２色以上を有するタイルである。
圧縮方法選択部５０９は、夫々のタイルに適した圧縮方法を選択する。本実施形態において、ビットマップ部のタイルはＪＰＥＧが圧縮方法（非可逆圧縮）として選択されるものとする。なお、フラットフィル部の圧縮方法（可逆圧縮）については後述する。
ビットマップ回転拡大部５１０は、ビットマップ部のタイルを、回転及びレンダリング解像度に拡大する処理を実行する。本実施形態において、ビットマップ回転拡大部５１０は、アフィン変換を用いてビットマップ部の回転及び拡大を同時に行う。画像圧縮部５１１は、各タイルを選択した圧縮方法に従って画像圧縮する。圧縮された各タイルにおけるラスタ画像データは、画像記憶領域５０６に記憶される。
【００２０】
〔ジョブデータ生成部５０３の構成〕
ジョブデータ生成部５０３は、エッジ検出部５１２、ジョブデータ構築部５１３から構成される。エッジ検出部５１２は、オブジェクトのエッジを検出する。ジョブデータ構築部５１３は、辺情報と、塗り合成ストアと、塗り情報とから構成されるジョブデータを生成して、ジョブデータ記憶領域５１８に記憶する。なお、ジョブデータ生成部５０３による、ジョブデータ生成処理については後述する。
【００２１】
〔画像読込部５０４の構成〕
画像読込部５０４は、フラットフィル回転拡大部５１４、画像伸長部５１５から構成され、ラスタ画像タイプのオブジェクトに対して機能する。画像伸長部５１５は、画像記憶領域５０６に保存されている各タイルのラスタ画像データを伸長する。フラットフィル回転拡大部５１４は、画像伸長部５１５により伸長されたラスタ画像データのうち、フラットフィル部のタイルを、回転及びレンダリング解像度に拡大する。なお、フラットフィル部の伸長・回転・拡大の方法については後述する。
【００２２】
〔レンダリング部５０５の構成〕
レンダリング部５０５は、塗り描画部５１６、ジョブデータ評価部５１７から構成される。ジョブデータ評価部５１７は、ジョブデータ記憶領域５１８からジョブデータを読み込んで、それぞれの塗り合成レコードに保持された塗りノード群を、単一の塗りノードへとするために合成演算を行う。なお、塗り合成レコードについては後述する。塗り描画部５１６は、塗り領域の各画素位置におけるラスタ画素値を、ジョブデータ評価部５１７により合成演算された値とし、対応するラスタ画像の記憶領域に書き込む。全ての塗り領域について本処理を行うことにより、ラスタ画像が生成される。
【００２３】
次に、ジョブデータ生成部５０３によるジョブデータ生成処理について詳細に説明する。本実施形態において、ジョブデータ生成処理とは、エッジ検出処理でオブジェクトの輪郭点を抽出し、ジョブデータを生成する処理のことを指す。
図４は、オブジェクトに対してスキャンライン（水平線）が交差している様子を示す図である。
【００２４】
図４において、図中の矢印で示すように（４ライン目）、４つの輪郭点が抽出されている。図４で示すように、スキャンラインとオブジェクトが交差する点（ピクセル）が、輪郭点とみなされる。なお、図４において、Ｐ６０１、Ｐ６０２、Ｐ６０３、Ｐ６０４が輪郭点として抽出されている。
図４に示すように、輪郭点Ｐ６０２、および輪郭点Ｐ６０３のように、オブジェクト同士が重なる領域についても新たな輪郭点が抽出されることになる。この輪郭点を抽出する処理を、描画範囲の各スキャンライン（図４においては、１ライン目から１０ライン目まで）に対して行うことで、オブジェクトによって区分けされる領域（塗り領域）を検出することが可能となる。
【００２５】
図４を基に塗り領域の具体例を述べると、左端から輪郭点Ｐ６０１までが一つの塗り領域になり、第１の塗り領域となる。また、輪郭点Ｐ６０１から輪郭点Ｐ６０２までが一つの塗り領域になり、第２の塗り領域となる。また、輪郭点Ｐ６０２から輪郭点Ｐ６０３までが一つの塗り領域になり、第３の塗り領域となる。また、輪郭点Ｐ６０３から輪郭点Ｐ６０４までが一つの塗り領域となり、第４の塗り領域になる。また、輪郭点Ｐ６０４から右端までが一つの塗り領域になり、第５の塗り領域となる。上述の如く、スキャンライン毎に塗り領域を確定していく。
【００２６】
図５は、図３に示したジョブデータ生成部５０３により生成されたジョブデータの構造を示す図である。本実施形態では、ＰＤＬデータを解析して生成される描画オブジェクトの描画情報のエッジを検出することによりジョブデータ生成部５０３が生成する。  図５に示すように、ジョブデータは、辺情報と、塗り合成ストアと、塗り情報とから構成される。なお、図５の画像データは、前面画像であるフラットグラフィックスオブジェクトと、背面画像であるラスタ画像に対応するイメージオブジェクトが、透過で重なっている。
【００２７】
始めに、辺情報について詳細に説明する。なお、図４には説明上、ラインに対応するＹ方向と、Ｙ方向に直交するＸ方向の座標値を数値で示す。
ジョブデータにおける辺情報には、上述の塗り領域の情報が保持されている。具体的には、夫々のＹ座標における、塗り領域の開始位置と終了位置の情報が保持されている。具体的に図４を用いて述べると、４ライン目（Ｙ座標がＹ＝４）における第１の塗り領域の開始位置は左端から１（Ｘ＝１）、終了位置は２（Ｙ＝２）として保持されている。また、３ライン目の１（Ｘ＝１）から２（Ｘ＝２）までの領域も第１の領域として保持される。これにより、夫々の塗り領域における全ての画素位置を特定することができる。また、辺情報における各塗り領域は、後述する塗り合成ストアのレコード（塗り合成レコード）を参照する。
図５の例では、辺情報７０１の塗り領域は、フラットグラフィックタイプとラスタ画像タイプのオブジェクト要素が重なる塗り領域を表し、塗り合成レコード７０２を参照している。
【００２８】
次に、図５に示す塗り合成ストアについて詳細に説明する。
塗り合成ストアは、複数の塗り合成レコードから構成される。塗り合成レコードは、１つ、または複数の塗りノードで構成される。塗りレコードは、対応する塗り領域内に存在するオブジェクトの重なりの順序をスタックで保持している。
例えば、図５における塗り合成レコード７０２を例に挙げると、グレーのグラフィックのオブジェクトの方が、ラスタ画像のオブジェクトよりも前面であるため、前面（左側）に保持されている。各塗りノードは、後述する塗り情報を参照している。
【００２９】
次に、図５に示す塗り情報について詳細に説明する。
塗り情報は、辺情報の塗り方法を表現する。即ち、塗り情報は、色データから構成されていると言える。オブジェクトタイプがフラットグラフィックスであれば単色の色データであり、ラスタ画像であれば画像記憶領域５０６に記憶されているラスタ画像の色データとなる。
図５の例では、塗りノード７０３はグレーの色データ７０５を参照し、塗りノード７０４はラスタ画像データ７０６を参照している。
次に、画像記憶部５０２におけるタイル分割処理から画像圧縮するまでの処理について詳細に説明する。具体的には、入力されるＰＤＬデータ内のイメージデータをタイル単位に分割し、該分割したタイル属性が可逆圧縮属性か、非可逆圧縮属性かを判定する。そして、タイル単位に中間データを生成するために圧縮処理を行う。その際、Ｓ８０６で圧縮前拡大処理を実行する。また、後述する図８において、保持される中間データを伸長する際に、Ｓ１００６で伸長したデータに対して伸長後拡大処理を行う。
【００３０】
図６は、本実施形態を示す画像処理装置の画像処理方法を説明するフローチャートである。本例は、図３に示した画像記憶部５０２が備えるモジュールによるタイル分割から画像圧縮するまでの処理例であり、ラスタ画像タイプのオブジェクトに対して実行される。なお、各ステップは、画像処理装置３００のＣＰＵが図３に示した画像記憶部５０２に記憶されるモジュールを実行することで実現される。以下の説明では、各モジュールを主体として説明する。なお、本実施形態において、分割されるタイルが１つの色データで満たされる領域をフラットフィル部と呼び、分割されるタイル内の隣接する画素がそれぞれ異なる色値を含む領域をビットマップイメージ部と呼ぶ。また、本実施形態において、可逆圧縮方式に対応するタイル領域の属性はフラットフィル部に対応し、非可逆圧縮方式に対応するタイル領域の属性はビットマップ部に対応する。以下、タイル分割されたタイル属性がフラットフィルであるのか、フラットフィル以外であるのかを判断して異なる圧縮処理を伴って中間データを生成する処理を説明する。また、本実施形態では、後述するＳ８０７において、すなわち、中間データを生成する前のタイミングでイメージデータに対して回転または拡大処理を実行したイメージデータに対して非可逆圧縮処理する。
【００３１】
始めに、描画オブジェクト生成部５０１が生成する描画範囲内から任意の描画オブジェクトを読み込み、ラスタ画像データのループを開始する（Ｓ８０１）。次に、タイル分割部５０７がラスタ画像データをタイル分割する（Ｓ８０２）。Ｓ８０２において、ラスタ画像データをタイル分割した場合、任意のタイルを読み込み、タイルのループを開始する（Ｓ８０３）。Ｓ８０３において、タイル分割部５０７が読み込んだタイルが、フラットフィル部であるか否かを像域判定部５０８が判定する（Ｓ８０４）。
【００３２】
Ｓ８０４において、フラットフィル部であると像域判定部５０８が判定した場合、圧縮方法選択部５０９が選択する圧縮方法に従い画像圧縮部５１１が色データを可逆圧縮して（Ｓ８０５）、Ｓ８０８へ進む。
なお、本実施形態において、色データはチャンネル数から１引いた数値（４ビット長）と１チャンネルあたりの色値のビット長から１引いた数値（４ビット長）と各チャンネルの色値（チャンネル数×色値のビット長）とで構成される形式に可変長符号化される。
図７は、ラスタ画像データが２４ビットＲＧＢ画像（ＲＧＢ夫々が８ビット）であり、当該タイルが緑一色のときの例を示した図である。このため、図７に示す例では、チャンネル数から１引いた数値は２（Ｄ９０１）、１チャンネルあたりの色値のビット長から１引いた数値は７（Ｄ９０２）、各チャンネルの色値は０、２５５、０（Ｄ９０３）となる。
【００３３】
Ｓ８０４において、フラットフィル部でないと像域判定部５０８が判定した場合（本実施形態においては、ビットマップ部を指す）、ビットマップ回転拡大部５１０が画像データを回転・拡大して（Ｓ８０６）、画像圧縮部５１１が非可逆圧縮する（Ｓ８０７）。上述した通り、本実施形態において、ビットマップ回転拡大部５１０による回転・拡大はアフィン変換、画像圧縮部５１１による非可逆圧縮はＪＰＥＧで行う。
【００３４】
Ｓ８０５またはＳ８０７の処理が終了すると、タイル分割部５０７が次のタイルを読み込み（Ｓ８０８）、Ｓ８０３から処理を開始する。
そして、Ｓ８０８で、全てのタイルの読み込みを終了していると判断した場合、画像圧縮部５１１が圧縮したデータを画像記憶領域５０６に記憶する（Ｓ８０９）。そして、Ｓ８０９の処理が終了すると、描画オブジェクト生成部５０１が生成する次の描画オブジェクトを読み込む（Ｓ８１０）。次のラスタ画像データが存在すると描画オブジェクト生成部５０１が判断した場合は、Ｓ８０１から処理を開始する。
一方、Ｓ８１０で、次のラスタ画像データが存在しないと描画オブジェクト生成部５０１が判定した場合は、本処理を終了とする。
【００３５】
次に、画像読込部５０４における画像伸長からフラットフィル部の回転・拡大までの処理について詳細に説明する。
図８は、本実施形態を示す画像処理装置の画像処理方法を説明するフローチャートである。本例は、図３に示した画像読込部５０４による画像伸長からフラットフィル部を回転・拡大するまでの処理例である。なお、各ステップは、画像処理装置３００のＣＰＵが図３に示した画像読込部５０４が備えるモジュールを実行することで実現される。以下の説明では、各モジュールを主体として説明する。また、本実施形態では、後述するＳ１００６において、すなわち、中間データを伸長した後のタイミングで中間データに対して回転または拡大処理を実行する。
【００３６】
始めに、ジョブデータを基に描画領域内の任意のラスタ画像データを選択し、選択したラスタ画像データの参照情報を参照し、ループを開始する（Ｓ１００１）。本実施形態における参照情報は、ラスタ画像データの圧縮データが存在する画像記憶領域５０６内のアドレスである。次に、画像読込部５０４が参照情報を基にラスタ画像データの圧縮データを画像記憶領域５０６から読み込む（Ｓ１００２）。Ｓ１００２において、画像伸長部５１５が圧縮データを読み込むと、任意のタイルを選択し、ループを開始する（Ｓ１００３）。Ｓ１００３において選択したタイルが、フラットフィル部であるか否かを画像読込部５０４が判定する（Ｓ１００４）。
【００３７】
Ｓ１００４において、フラットフィル部でないと画像読込部５０４が判定した場合、即ち、選択したタイルがビットマップ部である場合、画像伸長部５１５がビットマップ部の伸長を行う（Ｓ１００７）。本実施形態では、ＪＰＥＧ方式の伸長アルゴリズムで伸長することとする。このとき、伸長されたラスタ画像データは、伸長済みラスタ画像を一時記憶しておくバッファメモリにおける、当該タイルの領域に展開される。
【００３８】
Ｓ１００４において、フラットフィル部であると画像読込部５０４が判定した場合、画像伸長部５１５が色データの伸長を行う（Ｓ１００５）。具体的には、画像伸長部５１５が前記色データの可逆圧縮符号を復号化して、各チャンネルの色値を得る。
図７の例では、先頭の４ビットを読込んでチャンネル数が３であることを知り、次の４ビットを読込んで１チャンネルあたりの色値のビット長が８であることを知り、最後に３チャンネル分だけ８ビットずつ読込んで、「０、２５５、０」という２４ビットＲＧＢ値を取得する。
Ｓ１００５において、画像伸長部５１５が色データを伸長し終えたら、フラットフィル回転拡大部５１４がこの色データを回転・拡大する（Ｓ１００６）。
具体的には、フラットフィル回転拡大部５１４が画像伸長部５１５により伸長された色データを、伸長済みラスタ画像データを一時記憶しておくバッファメモリにおける、当該タイルの領域に複製して塗り潰す。
【００３９】
画像読込部５０４がＳ１００６またはＳ１００７の処理を終えると、画像読込部５０４が次のタイルを選択しＳ１００３から処理を繰り返す（Ｓ１００８）。そして、タイル処理を終了したら、Ｓ１００９で、画像読込部５０４が描画領域内のラスタ画像データの全タイルに対して、伸長済みラスタ画像データをバッファメモリに記憶して、本処理を終了とする。
【００４０】
次に、レンダリング部５０５によるレンダリング処理について詳細に説明する。
図９は、本実施形態を示す画像処理装置の画像処理方法を説明するフローチャートである。本例は、図２に示したＳ４０３のレンダリング処理例である。なお、各ステップは、画像処理装置３００のＣＰＵが図３に示したレンダリング部５０５が備えるモジュールを実行することで実現される。以下の説明では、各モジュールを主体として説明する。
始めに、ジョブデータ評価部５１７が描画範囲内からスキャンラインを一つ選択し、Ｌｉｎｅに代入する（Ｓ１１０１）。このとき、該描画範囲内のラスタ画像データは、上述した画像読込部５０４の処理によって、既に伸長済みである。次に、Ｌｉｎｅ上に存在する辺情報から塗り領域を一つ選択し、Ｅｄｇｅに代入する（Ｓ１１０２）。
【００４１】
Ｓ１１０２において、ジョブデータ評価部５１７が塗り領域を選択した（Ｅｄｇｅに代入した）場合、塗り領域の参照する塗り合成レコードをＲｅｃｏｒｄに読み込む（Ｓ１１０３）。Ｓ１１０３において読み込んだ塗り合成レコードに、２つ以上の塗りノードが残っているか否かをジョブデータ評価部５１７が判定する（Ｓ１１０４）。
Ｓ１１０４において、塗り合成レコードに２つ以上の塗りノードが残っているとジョブデータ評価部５１７が判定した場合、ジョブデータ評価部５１７がＲｅｃｏｒｄから最前面の塗りノードを取り出して変数Ｓｒｃへ代入する（Ｓ１１０５）。
【００４２】
Ｓ１１０５において、変数Ｓｒｃへ最前面の塗りノードを代入した場合、ジョブデータ評価部５１７が変数Ｒｅｃｏｒｄから最前面の塗りノードをもう１つ取り出して変数Ｄｅｓｔへ代入する（Ｓ１１０６）。Ｓ１１０６において、変数Ｄｅｓｔへ塗りノードを代入した場合、ジョブデータ評価部５１７が変数Ｓｒｃと変数Ｄｅｓｔに対して合成処理を行う。さらに、ジョブデータ評価部５１７が結果として生成された塗りノードを合成結果Ｒｅｓとして（Ｓ１１０７）、合成結果Ｒｅｓを塗りレコードの最前面に挿入する（Ｓ１１０８）。Ｓ１１０８の処理の後は、Ｓ１１０４に戻る。
一方、Ｓ１１０４において、塗りレコードに２つ以上の塗りノードが残っていないとジョブデータ評価部５１７が判定した場合、Ｓ１１０９へ処理が移る。なお、塗りノードが１つだけになっていれば、この塗りノードが最終的な合成結果となっている。
【００４３】
続いて、塗り描画部５１６が塗り領域内の変数Ｌｉｎe上から画素位置を一つ選択し、変数Ｐｏｓへ代入する（Ｓ１１１０）。Ｓ１１１０において、塗り描画部５１６が画素位置を選択した（Ｐｏｓへ代入した）場合、塗り描画部５１６は、選択した画素位置におけるラスタ画素値を合成結果Ｒｅｓから読み込み、変数Ｖａｌへ代入する（Ｓ１１１１）。このとき、合成結果Ｒｅｓが単色の塗り情報を参照していれば、その単色の色データを変数Ｖａｌへ代入することになり、ラスタ画像の塗り情報を参照していれば、画素位置の色データをラスタ画像データから読み込んで変数Ｖａｌへ代入することになる。
【００４４】
Ｓ１１１１において、塗り描画部５１６が合成結果Ｒｅｓを変数Ｖａｌへ代入した場合、変数Ｐｏｓに対応するラスタ画像の画素値を変数Ｖａｌにするため、ラスタ画像の記憶領域にＶａｌの値を書き込む（Ｓ１１１２）。
次に、塗り描画部５１６が塗り領域内のＬｉｎｅ上から別の画素位置を選択する（Ｓ１１１３）。塗り描画部５１６は、別の画素位置を選択した後、Ｓ１１１０から処理を再び開始する。
そして、塗り描画部５１６が塗り領領域内のＬｉｎｅ上の全画素位置についてラスタ画素値の書き込みが終了したと判断した場合、次の辺情報へ処理を移す（Ｓ１１１４）。そして、塗り描画部５１６が変数Ｌｉｎｅ上に存在する全ての塗り領域について処理が終了したと判断した場合、次のスキャンラインへ処理に移す（Ｓ１１１５）。
このように全てのスキャンラインについて処理を行うことより、描画範囲におけるレンダリング処理すなわちラスタ画像の生成が完了する。以上が、レンダリング処理の説明になる。
【００４５】
以上説明したように、本実施形態ではラスタ画像をフラットフィル部のタイルとビットマップ部のタイルとに分けて、フラットフィル部のタイルに対して、可逆圧縮した後に拡大処理を行っている。
一方、ビットマップ部のタイルに対して、拡大した後に非可逆圧縮を行っている。これにより、非可逆圧縮後に拡大することによる画質劣化のノイズ増幅を防ぎつつ、圧縮データのサイズ削減を図ることが可能となる。
〔第２実施形態〕
【００４６】
次に第２実施形態について説明する。
第１実施形態ではラスタ画像データをタイル単位で分割してビットマップ部かフラットフィル部かどうかを判定して画像処理を行う場合について説明した。本実施形態では各タイルをビットマップ部とフラットフィル部とに像域分離して、画像処理を行う例を説明する。
【００４７】
始めに、本実施形態におけるラスタ画像処理部（ＲＩＰ）１２００の構成について説明する。
図１０は、本実施形態を示す画像処理装置の構成を説明するブロック図である。ラスタ画像処理部（ＲＩＰ）１２００と、図３に示したラスタ画像処理部３０３とで構成が異なるのは、画像記憶部１２０２の像域判定部が像域分離部１２０８に置き換わり、画像読込部１２０４に像域結合部１２１９が追加されている点である。なお、図１０に示す１２０８と１２１９以外の各部は、図３に示す５０１〜５０７、５０９〜５１８に対応する図１０に示す１２０１〜１２０７、１２０９〜１２１８とは同様の機能処理を実行するため、詳細な説明は省略する。
【００４８】
図１０において、像域分離部１２０８は、各タイルをビットマップ部とフラットフィル部とに像域分離するモジュールである。像域結合部１２１９は、分離されたビットマップ部とフラットフィル部とを結合して、タイルの形状に戻すモジュールである。なお、第１実施形態と同様に、画像処理装置３００が備えるＣＰＵが上記像域分離部１２０８、像域結合部１２１９に対応するモジュールを実行することで、本実施形態に示す画像処理が実現される。
【００４９】
図１１は、本実施形態を示す画像処理装置の画像処理方法を説明するフローチャートである。本例は、図１０に示した画像記憶部１２０２に記憶される各モジュールによるタイル分割から画像圧縮するまでの処理例である。各ステップは、画像処理装置３００のＣＰＵが上述したモジュールを実行することで実現される。
第１実施形態と異なるのは、像域分離部１２０８によるタイル毎に像域分離する処理（Ｓ１３０４）が加わったことである。これに伴い、さらに像域毎にフラットフィル部か否かの判定結果に応じて圧縮処理するループ（Ｓ１３０５及びＳ１３１１）と、フラットフィル部と判定されなかった像域においてピクセル補間する処理（Ｓ１３０８）が加わったことである。具体的には、入力されるＰＤＬデータ内のイメージデータを像域に分離し、該分離した像域が可逆圧縮領域か、非可逆圧縮領域かを判定する。そして、領域毎の中間データを生成するために圧縮処理を行う。その再、ＳＳ１３０９で圧縮前拡大処理を実行する。また、後述する図１２において、保持される中間データを伸長する際に、Ｓ１４０７で伸長したデータに対して伸長後拡大処理を行う。
【００５０】
図１２は、本実施形態を示す画像処理装置の画像処理方法を説明するフローチャートである。本例は、画像読込部１２０４による画像伸長からフラットフィル部を回転・拡大するまでの処理例である。本実施形態と異なるのは、像域毎にフラットフィル部か否かの判定結果に応じて伸長処理するループ（Ｓ１４０４及びＳ１４０９）と、像域を結合する処理（Ｓ１４１０）が加わったことである。
【００５１】
次に、像域分離部１２０８による像域分離処理について詳細に説明する。像域分離処理は、ラスタ画像を１ライン毎に読み込むことから開始される。なお、像域分離部１２０８は、ラスタ画像を画像処理装置３００の主走査方向に対し１ライン毎に読み込むものとする。
【００５２】
図１３は、本実施形態を示す画像処理装置の画像処理方法を説明するフローチャートである。本例は、図１０に示した像域分離部１２０８による像域分離処理例である。
始めに、任意のスキャンラインを読み込み、スキャンラインのループを開始する（Ｓ１５０１）。Ｓ１５０１において、任意のスキャンラインを読み込んだ場合、スキャンラインの左端のピクセルを読み込み、ピクセルのループを開始する（Ｓ１５０２）。Ｓ１５０２において、スキャンラインの左端のピクセルを読み込んだ場合、読み込んだピクセルが、左隣のランと同色か否かを像域分離部１２０８が判定する（Ｓ１５０３）。Ｓ１５０３において、左隣のランと同色と像域分離部１２０８が判定した場合、左隣のランに、読み込んだピクセルを加える（Ｓ１５０４）。Ｓ１５０３において、左隣のランと同色でない像域分離部１２０８が判定した場合（読み込んだピクセルがスキャンラインにおいて一番左だった場合も含む）、読み込んだピクセルを新しいランとする（Ｓ１５０５）。
Ｓ１５０４、またはＳ１５０５の処理を終えた場合、読み込んだピクセルから次のピクセルへ移動する（Ｓ１５０６）。像域分離部１２０８は、移動したピクセルの色データを読み込み、Ｓ１５０２から処理を開始する。Ｓ１５０６において、読み込んだスキャンライン上の全てのピクセルに対し、Ｓ１５０４、またはＳ１５０５の処理を施した場合、Ｓ１５０７へ処理を移す。
【００５３】
Ｓ１５０７において、像域分離部１２０８は、読み込んだスキャンラインにおける任意のランを読み込み、ランのループを開始する（Ｓ１５０８）。Ｓ１５０８において、読み込んだランと同じ色のランが、一つ前のスキャンライン上に存在し、かつお互いが隣接しているか否かを判定する（Ｓ１５０８）。Ｓ１５０８において、隣接していると像域分離部１２０８が判定した場合、読み込んだランを一つ前のスキャンライン上のランに加え、像域を更新する（Ｓ１５０９）。
【００５４】
Ｓ１５０８において、隣接していないと像域分離部１２０８が判定した場合、読み込んだランを新しい像域とする（Ｓ１５１０）。Ｓ１５０９、またはＳ１５１０の処理を終えた場合、像域分離部１２０８は読み込んだランから次のランへ移動する（Ｓ１５１１）。そして、像域分離部１２０８は、移動したランにおける色データを読み込み、Ｓ１５０７から処理を開始する。Ｓ１５１１において、像域分離部１２０８は、読み込んだスキャンライン上の全てのランに対し、Ｓ１５１０、またはＳ１５１１の処理を施した場合、Ｓ１５１２へ処理を移す。
【００５５】
Ｓ１５１２へ処理を移した場合、像域分離部１２０８は、み込んだスキャンラインから次のスキャンラインへ移動する（Ｓ１５１２）。移動したラインにおけるスキャンラインを読み込み、Ｓ１５０１から処理を開始する。Ｓ１５１２において、像域分離部１２０８はラスタ画像における全てのスキャンラインを読み込んだ場合、Ｓ１５１３へ処理を移す。Ｓ１５１３へ処理を移した場合、像域分離部１２０８は、ラスタ画像の夫々の像域におけるピクセル数をカウントし、ピクセル数が閾値を越える像域をフラットフィル部、閾値を越えなかった像域をビットマップ部とする。以上、説明したように像域分離処理を行う。
【００５６】
次に、各像域の圧縮方法について説明する。圧縮方法選択部１２０９は、夫々の像域に適した圧縮方法を選択する。本実施形態において、ビットマップ部の像域は、ピクセル補間及びＪＰＥＧが圧縮方法として選択されるものとする。なお、フラットフィル部の圧縮方法については後述する。
【００５７】
図１４は、本実施形態を示す画像処理装置におけるピクセル補間の例を示す図である。
図１４において、ラスタ画像データのタイル１６００は、フラットフィル部１６０１及び１６０２と、ビットマップ部１６０３とに像域分離されるものとする。このとき、ビットマップ部１６０３は、フラットフィル部として分離されたピクセル領域を補間されて、タイルの形状になる。
【００５８】
次に、ビットマップ部１６０３のピクセル補間処理について詳細に説明する。ピクセル補間処理は、ラスタ画像のタイルを１ライン毎に読み込むことから開始される。
【００５９】
図１５は、本実施形態を示す画像処理装置の画像処理方法を説明するフローチャートである。本例は、画像圧縮部１２１１による図１４に示したピクセル補間処理例である。
始めに、任意のスキャンラインを読み込み、スキャンラインのループを開始する（Ｓ１７０１）。Ｓ１７０１において、画像圧縮部１２１１は、任意のスキャンラインを読み込んだ場合、スキャンラインの左端のピクセルを読み込み、ピクセルのループを開始する（Ｓ１７０２）。Ｓ１７０２において、スキャンラインの左端のピクセルを読み込んだ場合、読み込んだピクセルが、フラットフィル部に属しているか否かを画像圧縮部１２１１が判定する（Ｓ１７０３）。
【００６０】
Ｓ１７０３において、フラットフィル部に属していると画像圧縮部１２１１が判定された場合、画像圧縮部１２１１は、補間対象のランに、読み込んだピクセルを加える（Ｓ１７０４）。Ｓ１７０３において、フラットフィル部に属していないと画像圧縮部１２１１が判定した場合、画像圧縮部１２１１は、補間対象のランに読み込んだピクセルを複製して（Ｓ１７０５）、補間対象のランをクリアする（Ｓ１７０６）。
Ｓ１７０４、またはＳ１７０６の処理を終えた場合、画像圧縮部１２１１は、読み込んだピクセルから次のピクセルへ移動する（Ｓ１７０７）。画像圧縮部１２１１は、移動したピクセルの色データを読み込み、Ｓ１７０２から処理を開始する。Ｓ１７０７において、画像圧縮部１２１１は、読み込んだスキャンライン上の全てのピクセルに対し、Ｓ１７０４、またはＳ１７０６の処理を施した場合、Ｓ１７０８へ処理を移す。
【００６１】
Ｓ１７０８において画像圧縮部１２１１は、補間対象のランに残っているピクセルがあるか否かを判定する。Ｓ１７０８において、残ピクセルがあると画像圧縮部１２１１が判定した場合、画像圧縮部１２１１は、該残ピクセルがスキャンラインであるか否かを判定する（Ｓ１７０９）。
【００６２】
Ｓ１７０９において、該残ピクセルがスキャンラインであると画像圧縮部１２１１が判定された場合、すなわち読み込んだスキャンライン全体がフラットフィル部に属していた場合、読み込んだスキャンラインを補間対象のスキャンラインに加える（Ｓ１７１０）。一方、Ｓ１７０９において、該残ピクセルがスキャンラインでないと画像圧縮部１２１１が判定した場合、すなわち読み込んだスキャンラインのうち右端部分がフラットフィル部に属していた場合は、Ｓ１７１１へ進む。そして、Ｓ１７１１において、読み込んだスキャンライン上のビットマップ部のうち右端の色値を補間対象のランに複製する。
【００６３】
Ｓ１７１０、またはＳ１７１１の処理を終えた場合、画像圧縮部１２１１は、補間対象のランをクリアする（Ｓ１７１２）。
一方、Ｓ１７０８において、残ピクセルがないと画像圧縮部１２１１が判定した場合、すなわち読み込んだスキャンライン全体がビットマップ部に属している、若しくは補間完了している場合、Ｓ１７１３へ進む。そして、１７１３において、画像圧縮部１２１１は、該スキャンラインの色値を補間対象のスキャンラインに複製して、補間対象のスキャンラインをクリアする（Ｓ１７１４）。
【００６４】
Ｓ１７１２、またはＳ１７１４の処理を終えた場合、画像圧縮部１２１１は、読み込んだスキャンラインから次のスキャンラインへ移動する（Ｓ１７１５）。移動したスキャンラインにおける色データを読み込み、Ｓ１７０１から処理を開始する。Ｓ１７１５において、画像圧縮部１２１１は、タイル内の全てのスキャンラインに対し、Ｓ１７１２、またはＳ１７１４の処理を施した場合、Ｓ１７１６へ処理を移す。
【００６５】
Ｓ１７１６において、画像圧縮部１２１１は、補間対象のスキャンラインに残っているスキャンラインがあるか否かを判定する。Ｓ１７１６において、残スキャンラインがあると画像圧縮部１２１１が判定した場合、Ｓ１７１７へ進む。そして、Ｓ１７１７において、補間対象でない（つまり全体がビットマップ部に属している、若しくは補間完了している）スキャンラインのうち、下端のスキャンラインの色値を、補間対象のスキャンラインに複製する。Ｓ１７１７の処理を終えた場合、画像圧縮部１２１１は、補間対象のスキャンラインをクリアする（Ｓ１７１８）。Ｓ１７１８の処理を終えた場合、またはＳ１７１６において、残スキャンラインがないと画像圧縮部１２１１が判定した場合、ピクセル補間の処理を完了する。
【００６６】
次に、フラットフィル部の圧縮方法について説明する。
本実施形態において、フラットフィル部の各像域は、座標情報と色データとを可逆圧縮される。座標情報は、前記辺情報の塗り領域の情報と同じく、夫々のＹ座標における、像域の開始位置と終了位置で構成される。座標情報は、Ｈｕｆｆｍａｎ符号化によって可変長符号化される。また、色データは、本実施形態と同じ形式に可変長符号化される。
【００６７】
各像域の伸長方法について説明する。ビットマップ部の像域は、ＪＰＥＧ伸長される。また、フラットフィル部の各像域は、座標情報のＨｕｆｆｍａｎ復号化及び、本実施形態と同じ方法による色データの復号化が行われる。
【００６８】
伸長されたフラットフィル部の各像域は、フラットフィル回転拡大部１２１４で回転及び拡大される。本実施形態において、フラットフィル部の各像域は、アフィン変換によって回転・拡大されて、夫々の座標情報を更新する。
【００６９】
次に、像域結合部１２１９による像域結合処理について説明する。
像域結合部１２１９は、夫々のタイルにおいて、伸長されたビットマップ部と、伸長後に回転・拡大されたフラットフィル部とを結合し、タイルの形状に戻す。本実施形態において、像域結合処理は、ピクセル補間により既にタイルと同じ形状になっているビットマップ部に、フラットフィル部のピクセルを上書きすることで行われる。
具体的には以下の手順になる。
ビットマップ部の伸長処理を実行する際に、伸長したラスタ画像データを、伸長済みラスタ画像を一時記憶しておくバッファメモリにおける、当該タイルの領域に展開しておく。そして、像域結合部１２１９が回転・拡大が終わったフラットフィル部の各像域について、夫々の座標情報が対応する、バッファメモリにおける当該タイルの領域に、夫々の色データを上書きで複製する。
以上説明したように、本実施形態ではラスタ画像の各タイルをフラットフィル部の像域とビットマップ部の像域とに像域分離することで、非可逆圧縮後に拡大することによる画質劣化のノイズ増幅を防ぎつつ、圧縮データのサイズ削減を図ることを実現している。
【００７０】
〔第３実施形態〕
次に第３実施形態について説明する。本実施形態では、ビットマップ部と判定された像域に対して、フラットフィル部かビットマップ部かの再判定を行う。
一例では、ビットマップ部と判定された像域において、ピクセル数が閾値未満ならば該像域をフラットフィル部であるとして判定を修正する。
【００７１】
また、別の一例では、ビットマップ部と判定された像域において、フラットフィル部の圧縮方法と、ビットマップ部の回転・拡大・圧縮方法の、両方で圧縮を試みる。そして、フラットフィル部かビットマップ部かの何れか、圧縮データサイズの小さい方を選択することで再判定する。これにより、画質向上及び、圧縮データのさらなるサイズ削減を図っている。
【００７２】
〔第４実施形態〕
次に第４実施形態について説明する。本実施形態では、第１〜第３実施形態においてラスタ画像データの拡大率が１未満である場合、すなわちラスタ画像データを縮小する場合に、該縮小処理をタイル分割の前に行う。
【００７３】
図１６は、本実施形態を示す画像処理方法を説明するフローチャートである。本例は、タイル分割から画像圧縮するまでの処理例である。以下、第２実施形態と異なるステップについて説明する。
先ず、タイル分割前の処理では、ラスタ画像データの拡大率が１より小か否かを判定して（Ｓ１８０２）、拡大率が１より小であると判断した場合、画像データを回転・縮小する（Ｓ１８０３）処理が追加されている。
次に、タイル分割後の処理では、像域分離部１２０８がフラットフィル部でないと判定した像域において、圧縮方法選択部１２０９がラスタ画像データの拡大率が１より大か否かを判定する（Ｓ１８１１）。ここで、拡大率が１より大であると判断した場合のみ画像データをビットマップ回転拡大部１２１０が回転・拡大処理する（Ｓ１８１２）ように処理が変更されている。
【００７４】
以上説明したように、実施例４ではラスタ画像の拡大率に応じて、フラットフィル部かビットマップ部かに関わらず、縮小処理をタイル分割の前に行うように変更する。これにより、圧縮データのさらなるサイズ削減を図っている。
〔その他の実施形態〕
【００７５】
第１、第２実施形態におけるビットマップ部の圧縮処理を以下のように実行するように構成してもよい。
拡大してから非可逆圧縮した圧縮データ（以下、拡大済み圧縮データ）と、拡大しないで非可逆圧縮した圧縮データ（以下、未拡大圧縮データ）の、両方を生成して画像記憶領域５０６（第２実施形態では１２０６）に記憶しておく。
このような構成において、ラスタ画像データの圧縮処理及び、ジョブデータ生成部５０３（第２実施形態では１２０３）がジョブデータ生成を行う。この際、画像記憶領域５０６（第２実施形態では１２０６）を含むバッファメモリが予め定めた制限メモリ量を超えた場合には、拡大圧縮データを削除して、未拡大圧縮データをビットマップ部の圧縮データとして決定する。圧縮処理及びジョブデータ生成処理が全て終わったとき、バッファメモリが予め定めた制限メモリ量を超えていなかった場合には、未拡大圧縮データを削除し、拡大済み圧縮データをビットマップ部の圧縮データとして決定する。
【００７６】
これにより、第１、第２実施形態によってビットマップ部で非可逆圧縮前に拡大処理を行うように変更したことが原因で、バッファメモリが予め定めた制限メモリ量を超えてしまう、という事態を防ぐことが可能になる。
【産業上の利用可能性】
【００７７】
本発明は、プリンタやディスプレイ等の表示装置、または画像出力デバイス等に利用することができる。
【００７８】
本発明の各工程は、ネットワーク又は各種記憶媒体を介して取得したソフトウエア（プログラム）をパソコン（コンピュータ）等の処理装置（ＣＰＵ、プロセッサ）にて実行することでも実現できる。
【００７９】
本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形（各実施形態の有機的な組合せを含む）が可能であり、それらを本発明の範囲から除外するものではない。
【符号の説明】
【００８０】
３０１  入力部
３０２  解釈部
３０３  ラスタ画像処理部
３０４  画像形成部
３０５  出力部
【図１】
0005777398.tif 000002
【図２】
0005777398.tif 000003
【図３】
0005777398.tif 000004
【図４】
0005777398.tif 000005
【図５】
0005777398.tif 000006
【図６】
0005777398.tif 000007
【図７】
0005777398.tif 000008
【図８】
0005777398.tif 000009
【図９】
0005777398.tif 000010
【図１０】
0005777398.tif 000011
【図１１】
0005777398.tif 000012
【図１２】
0005777398.tif 000013
【図１３】
0005777398.tif 000014
【図１４】
0005777398.tif 000015
【図１５】
0005777398.tif 000016
【図１６】
0005777398.tif 000017
【図１７】
0005777398.tif 000018
【図１８】
0005777398.tif 000019