(57)【要約】【課題】印刷対象の文書１ページ分の描画データを圧縮形式のみで生成した場合、又は当該描画データをビットマップ形式のみで生成した場合に比して、印刷データの内容に応じて、印刷対象の文書１ページ分の描画データのデータ量を低減する。【解決手段】描画データ生成部５０は、印刷対象の文書において定義された各スキャンラインに対応する複数の描画データを生成する。生成された複数の描画データは、まずはランレングス形式出力部５６から出力され、ランレングス形式の描画データがスキャンラインバッファに格納される。スキャンライン形式変換部６０は、ランレングス形式の描画データに含まれるランの数が所定数を超えると判定すると、当該描画データをビットマップ形式に変換する。これにより、スキャンラインバッファ群５８において、ランレングス形式の描画データとビットマップ形式の描画データとが混在した形式混在描画データが格納される。【選択図】図３
2018079636.tif 000002
【特許請求の範囲】
【請求項１】
印刷データに基づいて、印刷対象の文書における複数の描画領域毎に圧縮形式の描画データを生成する描画データ生成手段と、
生成済みの前記圧縮形式の描画データが第１条件を満たした場合に、当該生成済みの描画データをビットマップ形式に変換して、当該描画領域に対応する描画データをビットマップ形式とし、前記複数の描画領域毎に前記圧縮形式と前記ビットマップ形式のいずれかの形式をとる複数の描画データで構成される形式混在描画データを生成するデータ形式変換手段と、
を備えることを特徴とする画像処理装置。
【請求項２】
前記データ形式変換手段は、前記描画データ生成手段による前記文書１ページ分の圧縮形式の描画データの生成途中において、前記描画データをビットマップ形式の描画データに変換する、
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記第１条件とは、前記圧縮形式の描画データのデータ量が所定量を超えるという条件である、
ことを特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記所定量は、前記描画領域のサイズに応じて決定される、
ことを特徴とする、請求項３に記載の画像処理装置。
【請求項５】
前記所定量は、前記描画領域に対応するビットマップ形式の描画データのデータ容量に基づいて決定される、
ことを特徴とする、請求項４に記載の画像処理装置。
【請求項６】
前記所定量は、前記描画領域のうち、前記圧縮形式の描画データが生成済みの領域に応じて動的に変化する、
ことを特徴とする、請求項４に記載の画像処理装置。
【請求項７】
前記データ形式変換手段は、前記印刷対象の文書が複数のオブジェクトを含み、前記複数のオブジェクトの描画データが順次生成される場合において、前記描画領域における処理対象のオブジェクトが第２条件を満たす場合に、当該描画領域に対応する描画データを前記圧縮形式に再変換する、
ことを特徴とする請求項１に記載の画像処理装置。
【請求項８】
前記第２条件とは、前記描画領域内の前記処理対象のオブジェクト以外の画素数と、前記描画領域において前記処理対象のオブジェクトをランレングス形式の描画データとした場合のランの数との合計が、所定数以下である、という条件である、
ことを特徴とする請求項７に記載の画像処理装置。
【請求項９】
前記形式混在描画データに対して、各前記描画領域に対応した各描画データに対して個別に実行可能な第１の画像処理を実行する第１画像処理手段と、
をさらに備えることを特徴とする請求項１に記載の画像処理装置。
【請求項１０】
前記第１画像処理手段は、各前記描画領域に対応した各描画データに対して前記第１の画像処理を並列に実行する、
ことを特徴とする請求項９に記載の画像処理装置。
【請求項１１】
前記形式混在描画データに基づいて、画像データを生成する画像データ生成手段と、
前記画像データに対して、前記複数の描画領域に跨る第２の画像処理を実行する第２画像処理手段と、
をさらに備えることを特徴とする請求項９に記載の画像処理装置。
【請求項１２】
画像データ生成手段は、前記形式混在描画データを並列処理することで前記画像データを生成する、
ことを特徴とする請求項１１に記載の画像処理装置。
【請求項１３】
前記画像データ生成手段が生成した画像データに基づいて、印刷媒体に対して画像形成処理を実行する画像形成部、
をさらに備えることを特徴とする請求項１１に記載の画像処理装置。
【請求項１４】
印刷データに基づいて、印刷対象の文書における複数の描画領域毎に可逆圧縮形式の描画データを生成する描画データ生成手段、
生成済みの前記可逆圧縮形式の描画データが第１条件を満たした場合に、当該生成済みの描画データを非可逆圧縮形式に変換して、当該描画領域に対応する描画データを非可逆圧縮形式とし、前記複数の描画領域毎に前記可逆圧縮形式と前記非可逆圧縮形式のいずれかの形式をとる複数の描画データを生成するデータ形式変換手段と、
を備えることを特徴とする画像処理装置。
【請求項１５】
コンピュータを、
印刷データに基づいて、印刷対象の文書における複数の描画領域毎に圧縮形式の描画データを生成する描画データ生成手段と、
生成済みの前記圧縮形式の描画データが第１条件を満たした場合に、当該生成済みの描画データをビットマップ形式に変換して、当該描画領域に対応する描画データをビットマップ形式とし、前記複数の描画領域毎に前記圧縮形式と前記ビットマップ形式のいずれかの形式をとる複数の描画データである形式混在描画データを生成するデータ形式変換手段と、
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置及びプログラムに関する。
【背景技術】
【０００２】
従来、画像処理装置においては、ページ記述言語で記述されたＰＤＬデータ、あるいはＰＤＬデータに基づいて生成された中間データに対してラスタライズ処理が施され、印刷処理部が認識可能な画像データに変換される。画像データは、一旦バッファに記憶され、種々の画像処理が施された上で、印刷処理を実行する印刷処理部に出力される。画像データの形式としては、画像データに含まれる画素毎に色データを有するビットマップ形式がある。また、画像データに含まれる少なくとも１つのオブジェクトをランレングス形式で表現する技術も提案されている（例えば特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平５−２２４６３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
画像処理装置における処理の高速化あるいはバッファ容量低減などの観点から、画像処理装置における画像処理の対象あるいは印刷処理部における印刷処理の対象となるデータ（ここでは描画データと記載する）の容量を低減することが望まれている。描画データの容量を低減するには、描画データを圧縮形式（例えばランレングス形式など）で生成することが考えられる。しかしながら、印刷対象の文書の内容によっては、圧縮形式の描画データの方がビットマップ形式の描画データよりもその容量が大きくなってしまう場合がある。例えば、圧縮形式としてランレングス形式を用いる場合、印刷対象の文書が多数のオブジェクトを含み、それらオブジェクトが複雑に重なり合っている場合などには、ランレングス形式の描画データの方がビットマップ形式の描画データよりもかえって容量が大きくなる場合がある。
【０００５】
本発明の目的は、印刷対象の文書１ページ分の描画データを圧縮形式のみで生成した場合、又は当該描画データをビットマップ形式のみで生成した場合に比して、印刷対象の文書の内容に応じて、印刷対象の文書１ページ分の描画データのデータ量を低減することにある。
【課題を解決するための手段】
【０００６】
請求項１に係る発明は、印刷データに基づいて、印刷対象の文書における複数の描画領域毎に圧縮形式の描画データを生成する描画データ生成手段と、生成済みの前記圧縮形式の描画データが第１条件を満たした場合に、当該生成済みの描画データをビットマップ形式に変換して、当該描画領域に対応する描画データをビットマップ形式とし、前記複数の描画領域毎に前記圧縮形式と前記ビットマップ形式のいずれかの形式をとる複数の描画データで構成される形式混在描画データを生成するデータ形式変換手段と、を備えることを特徴とする画像処理装置である。
【０００７】
請求項２に係る発明は、前記データ形式変換手段は、前記描画データ生成手段による前記文書１ページ分の圧縮形式の描画データの生成途中において、前記描画データをビットマップ形式の描画データに変換する、ことを特徴とする請求項１に記載の画像処理装置である。
【０００８】
請求項３に係る発明は、前記第１条件とは、前記圧縮形式の描画データのデータ量が所定量を超えるという条件である、ことを特徴とする請求項１に記載の画像処理装置である。
【０００９】
請求項４に係る発明は、前記所定量は、前記描画領域のサイズに応じて決定される、ことを特徴とする、請求項３に記載の画像処理装置である。
【００１０】
請求項５に係る発明は、前記所定量は、前記描画領域に対応するビットマップ形式の描画データのデータ容量に基づいて決定される、ことを特徴とする、請求項４に記載の画像処理装置である。
【００１１】
請求項６に係る発明は、前記所定量は、前記描画領域のうち、前記圧縮形式の描画データが生成済みの領域に応じて動的に変化する、ことを特徴とする、請求項４に記載の画像処理装置である。
【００１２】
請求項７に係る発明は、前記データ形式変換手段は、前記印刷対象の文書が複数のオブジェクトを含み、前記複数のオブジェクトの描画データが順次生成される場合において、前記描画領域における処理対象のオブジェクトが第２条件を満たす場合に、当該描画領域に対応する描画データを前記圧縮形式に再変換する、ことを特徴とする請求項１に記載の画像処理装置である。
【００１３】
請求項８に係る発明は、前記第２条件とは、前記描画領域内の前記処理対象のオブジェクト以外の画素数と、前記描画領域において前記処理対象のオブジェクトをランレングス形式の描画データとした場合のランの数との合計が、所定数以下である、という条件である、ことを特徴とする請求項６に記載の画像処理装置である。
【００１４】
請求項９に係る発明は、前記形式混在描画データに対して、各前記描画領域に対応した各描画データに対して個別に実行可能な第１の画像処理を実行する第１画像処理手段と、をさらに備えることを特徴とする請求項１に記載の画像処理装置である。
【００１５】
請求項１０に係る発明は、前記第１画像処理手段は、各前記描画領域に対応した各描画データに対して前記第１の画像処理を並列に実行する、ことを特徴とする請求項８に記載の画像処理装置である。
【００１６】
請求項１１に係る発明は、前記形式混在描画データに基づいて、画像データを生成する画像データ生成手段と、前記画像データに対して、前記複数の描画領域に跨る第２の画像処理を実行する第２画像処理手段と、をさらに備えることを特徴とする請求項９に記載の画像処理装置である。
【００１７】
請求項１２に係る発明は、画像データ生成手段は、前記形式混在描画データを並列処理することで前記画像データを生成する、ことを特徴とする請求項１０に記載の画像処理装置である。
【００１８】
請求項１３に係る発明は、前記画像データ生成手段が生成した画像データに基づいて、印刷媒体に対して画像形成処理を実行する画像形成部、をさらに備えることを特徴とする請求項１１に記載の画像処理装置である。
【００１９】
請求項１４に係る発明は、印刷データに基づいて、印刷対象の文書における複数の描画領域毎に可逆圧縮形式の描画データを生成する描画データ生成手段、生成済みの前記可逆圧縮形式の描画データが第１条件を満たした場合に、当該生成済みの描画データを非可逆圧縮形式に変換して、当該描画領域に対応する描画データを非可逆圧縮形式とし、前記複数の描画領域毎に前記可逆圧縮形式と前記非可逆圧縮形式のいずれかの形式をとる複数の描画データを生成するデータ形式変換手段と、を備えることを特徴とする画像処理装置である。
【００２０】
請求項１５に係る発明は、コンピュータを、印刷データに基づいて、印刷対象の文書における複数の描画領域毎に圧縮形式の描画データを生成する描画データ生成手段と、生成済みの前記圧縮形式の描画データが第１条件を満たした場合に、当該生成済みの描画データをビットマップ形式に変換して、当該描画領域に対応する描画データをビットマップ形式とし、前記複数の描画領域毎に前記圧縮形式と前記ビットマップ形式のいずれかの形式をとる複数の描画データである形式混在描画データを生成するデータ形式変換手段と、として機能させることを特徴とするプログラムである。
【発明の効果】
【００２１】
請求項１又は１５に係る発明によれば、印刷対象の文書の１ページ分の描画データを圧縮形式のみで生成した場合、又は当該描画データをビットマップ形式のみで生成した場合に比して、印刷対象の文書の内容に応じて、印刷対象の文書１ページ分の描画データのデータ量を低減することができる。
【００２２】
請求項２に係る発明によれば、描画データの生成途中において第１条件を満たすこととなった描画領域に対応する描画データをビットマップ形式に変換することができる。
【００２３】
請求項３に係る発明によれば、圧縮形式の描画データの容量が所定量を超える場合に、当該描画データをビットマップ形式に変換することができる。
【００２４】
請求項４に係る発明によれば、描画領域のサイズに応じて所定量を決定することができる。
【００２５】
請求項５に係る発明によれば、圧縮形式の描画データのデータ量が、当該描画データをビットマップ形式とした場合のデータ量を超える場合に、当該描画データを圧縮形式からビットマップ形式に変換することができる。
【００２６】
請求項６に係る発明によれば、ビットマップ形式に変換される前における圧縮形式の描画データを生成するための処理量を低減することができる。
【００２７】
請求項７に係る発明によれば、一旦ビットマップ形式に変換された描画データであって、さらに印刷対象の文書に含まれるオブジェクト対する描画処理が進んだ結果、描画領域における処理対象のオブジェクトが第２条件を満たす場合に、当該描画領域に対応する描画データを再度圧縮形式に変換することができる。
【００２８】
請求項８に係る発明によれば、ビットマップ形式の描画データのデータ量が、当該描画データを圧縮形式とした場合のデータ量を超える場合に、当該描画データをビットマップ形式から圧縮形式に再変換することができる。
【００２９】
請求項９に係る発明によれば、全てビットマップ形式の複数の描画データに対して第１の画像処理を行う場合に比して、形式混在描画データに対する第１の画像処理を高速化することができる。
【００３０】
請求項１０に係る発明によれば、並列処理しない場合に比して、形式混在描画データに対する第１の画像処理を高速化することができる。
【００３１】
請求項１１に係る発明によれば、複数の描画領域に跨る第２の画像処理を行うことができる。
【００３２】
請求項１２に係る発明によれば、並列処理しない場合に比して、画像データの生成処理を高速化することができる。
【００３３】
請求項１３に係る発明によれば、形式混在描画データに基づいて生成された画像データに基づいて、印刷媒体に対する画像形成処理を行うことができる。
【００３４】
請求項１４に係る発明によれば、第１条件を満たした場合において、ビットマップ形式に変換する場合に比して描画データのデータ量をより低減させることができる。
【図面の簡単な説明】
【００３５】
【図１】本実施形態に係る画像処理システムの構成概略図である。
【図２】フロントエンド装置及びバックエンド装置の機能構成概略図である。
【図３】本実施形態における描画部の機能構成概略図である。
【図４】各スキャンラインバッファのデータ構造を示す概念図である。
【図５】ランレングス形式の描画データのデータ構造を示す概念図である。
【図６】フォーマットブロックのデータ構造を示す概念図である。
【図７】ランレングス形式の描画データの具体例を示す概念図である。
【図８】図７に示す描画データに対応する描画領域を示す図である。
【図９】印刷対象の文書の内容の例を示す第１の図である。
【図１０】図９におけるスキャンライン１の描画データを示す図である。
【図１１】印刷対象の文書の内容の例を示す第２の図である。
【図１２】図１１におけるスキャンライン１の描画データを示す図である。
【図１３】印刷対象の文書の内容の例を示す第３の図である。
【図１４】図１３におけるスキャンライン１の描画データを示す図である。
【図１５】アクセラレータ部の機能構成概略図である。
【図１６】本実施形態における処理の流れを示す第１のフローチャートである。
【図１７】本実施形態における処理の流れを示す第２のフローチャートである。
【発明を実施するための形態】
【００３６】
以下、本発明の実施形態について説明する。
【００３７】
図１に、本実施形態に係る画像処理システム１０の構成概略図が示されている。画像処理システム１０は、端末装置１２、画像処理装置としての印刷コントローラ１４、及び印刷装置１６を含んで構成される。また、印刷コントローラ１４は、フロントエンド装置１８及びバックエンド装置２０を含んで構成される。端末装置１２とフロントエンド装置１８、フロントエンド装置１８とバックエンド装置２０、及びバックエンド装置２０と印刷装置１６との間は、例えばＬＡＮ（Local  Area  Network）などの通信回線２２、２４、及び２６により通信可能に接続されている。
【００３８】
端末装置１２は、例えばパーソナルコンピュータなどの汎用コンピュータであってよい。端末装置１２は、ユーザの指示に従い、文書の印刷命令である印刷ジョブをフロントエンド装置１８に対して送信する。
【００３９】
フロントエンド装置１８は、端末装置１２から送信された印刷ジョブから中間データを生成し、中間データをバックエンド装置２０に送信する。バックエンド装置２０は、フロントエンド装置１８からの中間データを処理して画像データを生成し、画像データを印刷装置１６に送信する。フロントエンド装置１８及びバックエンド装置２０の詳細な機能構成、及びこれらが行う処理の詳細については後述する。
【００４０】
フロントエンド装置１８は、ＣＰＵ（中央演算装置）、ＲＯＭ（Read Only Memory）やＲＡＭ（Random Access Memory）あるいはハードディスクなどからなる記憶媒体、入出力インターフェース、通信インターフェース、及び表示部などを含むコンピュータであってよい。当該記憶媒体に、フロントエンド装置１８の各部（後述）を機能させるためのプログラムが記憶されており、ＣＰＵが当該プログラムに従って各部を制御する。バックエンド装置２０も同様にコンピュータであってよく、その記憶媒体にバックエンド装置２０の各部（後述）を機能させるためのプログラムが記憶されており、ＣＰＵが当該プログラムに従って各部を制御する。
【００４１】
フロントエンド装置１８及びバックエンド装置２０を実現するハードウエアの１つの具体例として、それぞれがサーバとして機能する複数の情報処理装置を１つの筐体内に搭載したブレードサーバを用いることが考えられる。ブレードサーバは、上述のコンピュータの構成を１枚の基板（ブレード）に実装し、複数のブレードを筐体内に搭載したサーバ装置である。例えば、ブレードサーバに搭載された１つのブレードをフロントエンド装置１８として機能させ、他の１つのブレードをバックエンド装置２０として機能させてもよい。あるいは、例えば、フロントエンド装置１８及びバックエンド装置２０のそれぞれを、ブレードサーバに搭載された複数のブレードにより実現してもよい。また、フロントエンド装置１８及びバックエンド装置２０のを１つのブレードにより実現するようにしてもよい。
【００４２】
画像形成部としての印刷装置１６は、紙などの印刷媒体に対して画像形成処理としての印刷処理を行う装置であり、例えば、連続紙プリンタであってよい。なお、印刷装置１６は、電子写真、インクジェット、又はその他の方式の印刷エンジンにより印刷を行うものとする。なお、本実施形態では、画像処理装置としての印刷コントローラ１４と印刷装置１６が別体となっているが、印刷コントローラ１４と印刷装置１６とが一体となっていてもよい。この場合は、印刷コントローラ１４及び印刷装置１６が画像処理装置を構成することとなる。
【００４３】
図２に、フロントエンド装置１８及びバックエンド装置２０の機能構成の概略が示されている。以下、図２を参照しながら、フロントエンド装置１８及びバックエンド装置２０の詳細について説明する。
【００４４】
フロントエンド装置１８は、印刷ジョブ受信部３０及び論理ページ解釈部３２を含んで構成される。また、バックエンド装置２０は、中間データバッファ３４、描画部３６、アクセラレータ部３８、及び出力バッファ４０を含んで構成される。本実施形態においては、このうち、印刷ジョブ受信部３０、論理ページ解釈部３２、描画部３６の各部は、ＣＰＵや記憶媒体などのハードウェアと、ＣＰＵの動作を規定するソフトウェア（プログラム）との協働により実現される。一方、アクセラレータ部３８は、処理の高速化のためハードウェア（電気電子回路やプロセッサなど）で構成されている。また、中間データバッファ３４及び出力バッファ４０は、バックエンド装置２０を構成するコンピュータの記憶媒体において定義される。
【００４５】
印刷ジョブ受信部３０は、端末装置１２から送信された印刷ジョブを受信する。本実施形態においては、印刷ジョブは、文書の印刷命令と、印刷対象の文書をページ記述言語で記述したＰＤＬデータとを含む。ページ記述言語は、ディスプレイ表示処理、印刷処理などを情報処理機器に実行させるためのコンピュータプログラミング言語である。ＰＤＬデータは、印刷対象の文書を構成する文字や図形などのオブジェクトの位置情報、書式情報及び色情報などを含む。印刷ジョブ受信部３０は、受信した印刷ジョブに含まれるＰＤＬデータを論理ページ解釈部３２に渡す。
【００４６】
論理ページ解釈部３２は、印刷ジョブ受信部３０からのＰＤＬデータに基づいて、印刷データとしての中間データを生成する。中間データの例としては、ディスプレイリストなどが挙げられる。中間データは、印刷対象の文書の構成要素である複数のオブジェクトの描画処理を行う順番を表す描画命令を含む。この描画命令を記述する言語としては、ＰＤＬデータと比較してより詳細な手順を表現する言語が用いられる。例えば、ＰＤＬデータにおいて、文書上におけるあるオブジェクトの位置、形状、及び大きさを表す情報が定義される場合、中間データにおける当該オブジェクトの描画命令では、例えば印刷対象の文書におけるスキャンライン単位で当該オブジェクトの描画の手順を記述したものであり得る。また、中間データは、印刷対象の文書において定義される描画領域（例えばスキャンライン、バンド、タイルなど。詳細は後述）毎におけるオブジェクトの数、各オブジェクトの配置関係（重なり関係含む）、あるいは各オブジェクトの透過率を示す各情報を含んでいる。論理ページ解釈部３２が生成した中間データはバックエンド装置２０へ送信される。
【００４７】
中間データバッファ３４は、フロントエンド装置１８から送信された中間データを格納する。
【００４８】
描画部３６は、中間データバッファ３４に格納された中間データを読み出し、中間データに対して描画処理を行うことで描画データを生成する。描画部３６は、印刷対象の文書において定義される複数の描画領域毎に描画処理を行い、各描画領域に対応する複数の描画データを生成する。描画部３６は、複数の形式の描画データを生成することができる。本実施形態では、描画部３６は、描画領域に含まれる画素毎に色データを有するビットマップ形式の描画データ、及び、ビットマップ形式よりもデータ量を低減し得る圧縮形式の描画データ（詳細後述）を生成することができる。生成された描画データはアクセラレータ部３８に出力される。なお、本実施形態では、描画部３６は中間データに基づいて描画データを生成しているが、必ずしもその必要はなく、例えば印刷データとしてのＰＤＬデータに対して描画処理を行って描画データを生成するようにしてもよい。
【００４９】
このように、本明細書における「描画データ」とは、印刷対象の文書における各描画領域に基づいて生成された各描画領域に対応したデータであって、複数の形式を取り得るデータを意味する。また、「描画処理」とは、各描画領域に対応した複数の描画データを生成する処理を意味する。
【００５０】
本実施形態では、描画領域として１つのスキャンラインが定義される。つまり、本実施形態では、印刷対象の文書のスキャンライン毎に描画データが生成される。スキャンラインは、印刷対象の文書の１方向に伸びる幅１画素分のラインであり、本実施形態ではｘ軸方向（左右方向）に伸長するものとする。また、描画領域としてはスキャンラインに限られず、複数のスキャンラインがまとめられたバンド、あるいは、文書を格子状に分割したときの１つの分割領域であるタイルなどであってもよい。
【００５１】
また、描画部３６は、生成した複数の描画データそれぞれに対して第１の画像処理を行う。第１の画像処理の内容は、各描画領域に対応した各描画データに個別に施すことのできるものである。
【００５２】
描画部３６の詳細な機能構成、並びに、描画処理及び第１の画像処理の詳細については後述する。
【００５３】
生成された複数の描画データは、描画部３６内のバッファ（後述）からアクセラレータ部３８に対してＤＭＡ（Direct Memory Access）転送される。
【００５４】
アクセラレータ部３８は、描画部３６からの印刷対象の文書１ページ分の複数の描画データに対してラスタライズ処理を行うことで、１ページ分の画像データを生成する。画像データは、印刷装置１６が処理可能な形式であって、単一形式（例えばビットマップ形式あるいはランレングス形式）からなるものである。
【００５５】
このように、本明細書における「ラスタライズ処理」とは、複数の描画データをまとめて単一形式のデータに変換することを意味する。また、「画像データ」とは、印刷装置１６が処理可能なデータを意味する。
【００５６】
また、アクセラレータ部３８は、生成した画像データに対して第２の画像処理を行う。本実施形態では、第２の画像処理は、複数の描画領域に対応する複数の描画データがまとめられた画像データに対して行われるため、第２の画像処理としては、複数の描画領域に跨った処理が可能である。
【００５７】
アクセラレータ部３８の詳細な機能構成、並びに、ラスタライズ処理及び第２の画像処理の詳細についても後述する。
【００５８】
アクセラレータ部３８により生成された画像データは、出力バッファ４０に格納される。出力バッファ４０に格納された画像データは、印刷装置１６によって読み出される。印刷装置１６は、出力バッファ４０から読み出した画像データに基づいて印刷処理を行う。
【００５９】
図３に、描画部３６の機能構成の概略が示されている。以下、図３を参照しながら、描画部３６の詳細な機能構成、並びに、描画処理及び第１画像処理の詳細について説明する。
【００６０】
描画データ生成部５０は、中間データバッファ３４に格納された中間データを読み出して、印刷対象の文書において定義された描画領域毎に描画処理を行い、描画データを生成する。描画データ生成部５０が生成する描画データは、圧縮形式（より詳しくは可逆圧縮形式）としてのランレングス形式、又はビットマップ形式のいずれかである。本実施形態では、描画データ生成部５０は、ランレングス形式の描画データを生成する。上述のように、本実施形態では１つの描画領域として１つのスキャンラインが定義されているため、描画データ生成部５０はスキャンライン毎に描画データを生成していく。印刷対象の文書に複数のオブジェクトが含まれている場合には、描画データ生成部５０は、中間データにおいて指示されたオブジェクトの描画処理の順番に基づいて、まず１番目のオブジェクトに対して描画処理を行い、次いで２番目以降のオブジェクトを１つずつ重ねる毎に順次描画処理を行うことで、最終的に全てのオブジェクトが重畳された状態における各スキャンラインに対応する描画データを生成する。
【００６１】
スキャンライン形式判定部５２は、各スキャンラインに対応する各描画データが取るべき形式を判定する。各スキャンラインの描画データの形式は、印刷対象の文書の各スキャンラインの画像内容に応じて決定される。本実施形態では、スキャンライン形式判定部５２は、各描画データの形式として、ランレングス形式又はビットマップ形式のいずれかを決定する。ここでのランレングス形式とは、画素の色を表現する１つ分の色データと、当該色の画素が連続する長さを示すデータとを含む形式である。ランレングス形式によれば、例えば同じ色が連続する画素群が多く存在する場合、画素毎に色データを有するビットマップ形式に比して、描画データのデータ量が低減される。しかし、スキャンラインの画像内容によっては（例えば同じ色が連続する画素群が少ない場合）ランレングス形式の方がかえってデータ量が多くなってしまう場合もある。このように、本実施形態における圧縮形式とは、ビットマップ形式に比してデータ量を低減し得る形式ではあるが、描画領域の内容によっては、ビットマップ形式よりもデータ量が大きくなり得るデータ形式を意味する。
【００６２】
スキャンライン形式判定部５２により、ビットマップ形式であると判定されたスキャンラインに対応する描画データは、描画データ生成部５０からビットマップ形式出力部５４へ送られる。ビットマップ形式出力部５４は、入力されたランレングス形式の描画データをビットマップ形式の描画データに変換して出力する。スキャンライン形式判定部５２により、ランレングス形式であると判定されたスキャンラインに対応する描画データは、描画データ生成部５０からランレングス形式出力部５６へ送られる。ランレングス形式出力部５６は、入力されたランレングス形式の描画データをそのまま出力する。以上のように、本実施形態においては、描画データ生成部５０、スキャンライン形式判定部５２、ビットマップ形式出力部５４、及びランレングス形式出力部５６が描画データ生成手段を構成する。
【００６３】
複数のスキャンラインバッファからなるスキャンラインバッファ群５８は、ビットマップ形式出力部５４又はランレングス形式出力部５６から出力される複数の描画データを格納する。各スキャンラインバッファは、印刷対象の文書の各スキャンラインに対応するものである。つまり、印刷対象の文書のｎ番目のスキャンラインに対応する描画データがスキャンラインバッファｎに格納される。例えば、スキャンラインバッファ０には０番目のスキャンラインに対応する描画データが格納され、スキャンラインバッファ１には１番目のスキャンラインに対応する描画データが格納される。
【００６４】
図４に、各スキャンラインバッファのデータ構造が示されている。各スキャンラインバッファには、対応するスキャンラインの描画データと共に、対応するスキャンラインの描画データの形式を示す形式情報が記憶される。図４に示す通り、本実施形態では、形式情報として「０」が記憶されている場合、当該スキャンラインバッファに対応するスキャンラインの描画データはランレングス形式であることを示す。一方、形式情報として「１」が記憶されている場合、当該スキャンラインバッファに対応するスキャンラインの描画データはビットマップ形式であることを示す。
【００６５】
前述したスキャンライン形式判定部５２は、各スキャンラインバッファに記憶された形式情報を参照することで、各スキャンラインに対応する描画データの形式を判定する。例えば、スキャンライン０に対応する描画データの形式を判定するにあたり、スキャンライン形式判定部５２は、スキャンラインバッファ０に格納された形式情報を参照する。そして、当該形式情報が「０」の場合は、当該描画データがランレングス形式出力部５６に出力され、当該形式情報が「１」の場合は、当該描画データがビットマップ形式出力部５４に出力される。
【００６６】
本実施形態では、印刷対象の文書の各ページの処理の開始時点においては、全てのスキャンラインバッファの形式情報は「０」に初期化される。つまり、各スキャンラインに対応する各描画データは、まずは、ランレングス形式出力部５６からランレングス形式で出力されることとなる。
【００６７】
ここで、本実施形態におけるランレングス形式の描画データのデータ構造について説明する。図５に、本実施形態におけるランレングス形式の描画データのデータ構造が示されている。図５における横軸は、スキャンラインバッファのメモリアドレスを示している。ランレングス形式の描画データは、３種類のデータブロックを含んでいる。すなわち、ラン（同色を有する連続する画素群）のタイプ及びカラーブロックへのポインタを示すフォーマットブロック（図５においてｆｎで示されるブロック）、スキャンライン上におけるランの右端の座標を示す座標ブロック（図５においてｘｒｎで示されるブロック）、及び、ランの色を示すカラーブロック（図５においてｃｏｌｏｒｎで示されるブロック）を含んで構成される。１つのランは、フォーマットブロックと、座標ブロックと、カラーブロックの組によって定義される。なお、ランに色が無い場合（描画指示無しの場合）は、当該ランのカラーブロックは省略可能である。
【００６８】
図５に示されるように、各ランに対応するフォーマットブロック及び座標ブロックは、スキャンラインバッファのメモリアドレスの最小値（０）詰め（図５における左詰め）で順に格納されていく。ランの順番は、スキャンラインに沿ったスキャン方向（例えば印刷対象の文書の左端から右端側へ向かう方向）における順番であってよい。０番目のランであるフォーマットブロックｆ０及び座標ブロックｘｒ０で示されるラン０は、スキャンラインの左端からｘ座標がｘｒ０−１までの画素群であることを示す。また、１番目のランであるフォーマットブロックｆ１及び座標ブロックｘｒ１で示されるラン１は、ｘ座標がｘｒ０（ラン０の右端の次の画素がラン１の左端であるため）からｘｒ１−１までの画素群であることを示す。
【００６９】
一方、各ランに対応するカラーブロックは、スキャンラインバッファのメモリアドレスの最大値（ＡＤＤＲＭＡＸ）詰め（図５における右詰め）で順に格納されていく。これにより、各ランに対応する複数のカラーブロックがスキャンラインバッファのメモリ領域の１つの連続した領域にまとめられることになる。これにより、各ランに対する色変換処理（後述）にあたり、色データをスキャンラインバッファから効率よく読み出すことができる。
【００７０】
図６に、フォーマットブロックのデータ構造が示されている。フォーマットブロックは、ランのタイプを示すタイプ情報、及び対応するカラーブロックのメモリアドレスを示すポインタ情報が含まれる。本実施形態では、ランのタイプとして、スキップ、単色、ビットマップのいずれかが設定される。タイプ情報として「０」を有する場合、当該ランがスキップタイプであることを示し、タイプ情報として「１」を有する場合、当該ランが単色タイプであることを示し、タイプ情報として「２」を有する場合、当該ランがビットマップタイプであることを示す。
【００７１】
スキップタイプとは、当該ランが示す画素群に対しては描画指示がないことを意味する。したがって、スキップタイプのランに対してはカラーブロックが定義されない。単色タイプとは、当該ランが示す画素群は全て同色であることを示す。単色タイプのランに対応するカラーブロックには、当該ランに含まれる画素群の色を示す１つの色データが含まれる。ビットマップタイプとは、当該ランが示す画素群が複数の色を有していることを示す。ビットマップタイプのランに対応するカラーブロックには、当該ランに含まれる各画素毎の色を示す複数の色データが含まれる。
【００７２】
図７に、ランレングス形式の描画データの具体例が示されている。図７の例においては、４つのランが定義されている。１つ目のランはスキップタイプであり、スキャンラインの左端からｘ＝９（ｘ座標が９）までの画素群であることが示されている。１つ目のランはスキップタイプであることから、当該ランに対応するカラーブロックが定義されていない。２つ目のランは単色タイプであり、ｘ＝１０からｘ＝１９までの画素群であることが示されている。２つ目のランには、（Ｙ，Ｍ，Ｃ，Ｋ）＝（０，２５５，２５５，０）（赤）を示す色データを有するカラーブロックが定義されている。これは、ｘ＝１０からｘ＝１９までの画素群の色が赤であることを示している。３つ目のランはビットマップタイプであり、ｘ＝２０からｘ＝２９までの画素群であることが示されている。３つ目のランには、ｘ＝２０からｘ＝２９までの各画素を示す複数の色データを有するカラーブロックが定義されている。ここでは、３つ目のランにおいては、赤からシアンへのグラデーションであるとする。４つ目のランは単色タイプであり、ｘ＝３０からｘ＝３９までの画素群であることが示されている。４つ目のランには、（Ｙ，Ｍ，Ｃ，Ｋ）＝（２５５，０，０，０）（シアン）を示す色データを有するカラーブロックが定義されている。なお、４つ目のランからスキャンラインの右端までの間に描画指示がない場合は、当該ランの記載を省略することができる。例えば、図７の例において、スキャンラインの右端がｘ＝４９である場合、４つ目のランの右端であるｘ＝４０からｘ＝４９までの画素群において描画指示がない場合、当該画素群に対応するスキップタイプのランを示す各ブロックを省略することができる。図７に示されるランレングス形式の描画データは、図８に示すような画像を示すものとなる。
【００７３】
本実施形態におけるランレングス形式の描画データのデータ量は以下の通りであるとする。フォーマットブロックは５バイト（タイプ情報１バイト、ポインタ情報４バイト）であり、座標ブロックは３バイトであり、単色タイプのカラーブロックは４バイトであるとする。ビットマップタイプのカラーブロックのデータ量は、当該ランに含まれる画素数に応じて変動する。具体的には、ビットマップタイプのランに含まれる画素数をｍとすると、４ｍバイトとなる。また、座標ブロックのデータ量は描画領域のサイズに応じて変動し得る。
【００７４】
図３に戻り、データ形式変換手段としてのスキャンライン形式変換部６０は、ビットマップ形式出力部５４又はランレングス形式出力部５６から出力された描画データの形式を、ランレングス形式からビットマップ形式へ、あるいはビットマップ形式からランレングス形式へ変換する処理を行う。
【００７５】
まず、ランレングス形式からビットマップ形式への変換について説明する。スキャンライン形式変換部６０は、ランレングス形式出力部５６から出力されたランレングス形式の描画データが所定の第１条件を満たした場合に、当該描画データをビットマップ形式に変換する。詳しくは、ランレングス形式の描画データのデータ量が所定量を超える場合に、当該描画データをビットマップ形式に変換する。本実施形態では、当該所定量を当該描画データをビットマップ形式とした場合のデータ量に基づいて決定している。本実施形態では、スキャンライン形式変換部６０は、ランレングス形式の描画データのデータ量が、当該描画データをビットマップ形式とした場合のデータ量を超える場合に、当該描画データをビットマップ形式に変換する。当該所定量は、描画領域のサイズ（本実施形態ではスキャンラインの長さ）に応じて決定することができる。例えば、スキャンラインの長さが２０画素である場合、１つの画素を表す色データが４バイト（ＣＭＹＫそれぞれ１バイト）であるとすると、当該スキャンラインに対応するビットマップ形式の描画データのデータ量は２０×４＝８０バイトとなるから、当該所定量を８０バイトと設定することができる。また、このように算出された値（８０バイト）に基づいて、所定量を決定するようにしてもよい。
【００７６】
ある描画データに対して、ランレングス形式とビットマップ形式のいずれのデータ量が大きくなるかは、描画領域のサイズと、ランレングス形式の描画データにおけるランの数とに基づいて推定することができる。例えば、上述の通り、１つのスキャンラインが２０画素の長さである場合、当該スキャンラインに対応するビットマップ形式の描画データのデータ量は８０バイトとなる。一方、全てのランが全て単色タイプであると仮定すると、１つのランのデータ量は１２バイト（フォーマットブロック５バイト、座標ブロック３バイト、カラーブロック４バイト）となる。つまり、全てのランが単色タイプであると仮定した場合、ランが１つ増える度に、ランレングス形式の描画データの容量が１２バイトずつ増えていくことになる。したがって、８０÷１２≒６．６７であるから、ランの数が６個を超える、つまり７個以上である場合は、ビットマップ形式よりもランレングス形式の方が描画データの数が大きくなると推定できる。この場合、スキャンライン形式変換部６０は、ランレングス形式の描画データに７個以上のランが含まれると判定した場合に、当該描画データをビットマップ形式に変換する。もちろん、１つのスキャンラインに含まれるランのタイプがいずれであるかは、文書の内容次第であり事前に把握することができないが、上述のように、ランのタイプが全て単色タイプであると仮定した上で、ランの数の閾値が決定されている。
【００７７】
あるいは、ランレングス形式からビットマップ形式へ描画データを変換する条件としての描画データが含むランの数を、単にスキャンラインの長さに基づいて決定してもよい。例えば、ランの数がスキャンラインの長さの１／４を超える場合に、描画データをビットマップ形式に変換するようにしてもよい。
【００７８】
また、スキャンライン形式変換部６０は、描画データをランレングス形式からビットマップ形式に変換すると共に、当該描画データが格納されるスキャンラインバッファの形式情報（図４参照）を「１」に変更する。これにより、以後、オブジェクトが追加されて、描画データ生成部５０が再度当該スキャンラインに対応する描画データを生成する場合、その描画データはビットマップ形式出力部５４からビットマップ形式として出力されるようになる。
【００７９】
図９〜図１２を参照して、描画データがランレングス形式からビットマップ形式に変換される具体例を説明する。本例における印刷対象の文書は複数のオブジェクトを有している。図９には、そのうち１番目に処理されるｏｂｊ１が示されている。ｏｂｊ１は単色の図形オブジェクトであるとする。ｘ軸方向に並ぶ１列の画素列（２０画素）が１つのスキャンラインである。上述したように、描画データがランレングス形式からビットマップ形式に変換される条件は、ランの数が６を超える（７個以上）であるという条件とする。ここでは、ｙ＝１のスキャンライン１に着目する。
【００８０】
スキャンライン１の描画データは、描画データ生成部５０で生成され、まずはランレングス形式出力部５６からランレングス形式で出力される。まず、ランレングス形式出力部５６は、ｘ＝０の画素（スキップタイプのラン）に関するフォーマットブロック及び座標ブロック（スキップタイプのためカラーブロックは省略される）を出力し、スキャンラインバッファ１に格納する。次いで、ｘ＝１〜ｘ＝１８までの画素群（単色タイプのラン）に関するフォーマットブロック、座標ブロック、及びカラーブロックを出力し、スキャンラインバッファ１に格納する。ｘ＝１９を示すスキップタイプのランに関するデータは、上述の通り省略可能である。スキャンライン１の描画データに含まれるランは以上である。図１０に、スキャンライン１のランレングス形式の描画データが示されている。したがって、スキャンライン１については、ランの数が２であり、ランの数が７個以上であるという条件を満たさないから、スキャンライン形式変換部６０は、スキャンラインバッファ１に格納された描画データをビットマップ形式に変換せず、ランレングス形式のまま維持する。なお、スキャンライン形式変換部６０は、各ランに関するデータブロックがスキャンラインバッファに格納される度に、ランの数が所定ラン数以上であるか否かを判定してよい。
【００８１】
図１１には、２番目に処理されるｏｂｊ２がｏｂｊ１に重畳された様子が示されている。ｏｂｊ２も単色（ただしｏｂｊ１とは異なる色）の図形オブジェクトであるとする。図１１に示される通り、ｏｂｊ２がｏｂｊ１に重畳されたことで、スキャンライン１におけるｘ＝１〜ｘ＝１８までの画素群（単色タイプのラン）の間に、他の色が割り込まれている。したがって、描画データ生成部５０及びランレングス形式出力部５６は、ｘ＝１〜ｘ＝１８まで画素群に対応する単色タイプのランを分割して、割り込まれた色（ｏｂｊ２の色）を表す新たなランを表すデータブロックを追加する処理を行う。
【００８２】
まず、スキャンバッファ１に格納されたランレングス形式の描画データ（図１０参照）のうち、２番目のランの座標ブロックの値が「１９」から「２」に変更される。これにより、２番目のランは、ｘ＝１の１画素に対応するものとなる。次いで、ランレングス形式出力部５６は、新たにｘ＝２〜ｘ＝３までの画素群（ｏｂｊ２に対応する単色タイプのラン）に関する各データブロックを出力する（３つ目のラン）。以後、同様にして、ランレングス形式出力部５６は、ｘ＝４〜ｘ＝７までの画素群（ｏｂｊ１に対応する単色タイプのラン）に関する各データブロック（４つ目のラン）、ｘ＝８〜ｘ＝１１までの画素群（ｏｂｊ２に対応する単色タイプのラン）に関する各データブロック（５つ目のラン）、ｘ＝１２〜ｘ＝１６までの画素群（ｏｂｊ１に対応する単色タイプのラン）に関する各データブロック（６つ目のラン）、ｘ＝１７〜ｘ＝１８までの画素群（ｏｂｊ２に対応する単色タイプのラン）に関する各データブロック（７つ目のラン）を出力する。各ランに関する各データブロックのスキャンラインバッファ１への追加処理が行われる度に、スキャンライン形式変換部６０は、スキャンラインバッファ１に格納されるランの数が７以上となる否かを判定する。したがって、７つ目のランに関する各データブロック（少なくともフォーマットブロック）がランレングス形式出力部５６から出力された時点で、スキャンライン形式変換部６０は、ランの数が７個以上となると判定し、直ちに、スキャンライン１に対応する描画データをビットマップ形式に変換してスキャンラインバッファ１に格納する。そして、ランレングス形式出力部５６は、スキャンラインバッファ１の形式情報を「１」に変更する。
【００８３】
このように、本実施形態においては、スキャンライン形式変換部６０は、描画データの生成途中において、当該描画データが所定の第１条件を満たした場合に、生成済みの描画データをランレングス形式からビットマップ形式に変換する。
【００８４】
なお、ランレングス形式からビットマップ形式へ描画データを変換する条件としての描画データが含むランの数（閾値）を、描画領域のうち、描画処理を終えた（つまりランレングス形式の描画データが生成済みの）領域に応じて、動的に変更するようにしてもよい。上述のように、スキャンラインの長さが２０画素である場合、当該閾値（ランの数）は６個であったが、例えば、当該スキャンラインのうち１０画素分の描画処理を終えた段階の閾値を４個として、１０画素分の描画処理を終えた時点でランの数が４個を超える場合には、その時点で当該スキャンラインに対応する描画データをビットマップ形式に変換するようにしてもよい。このようにすることで、ビットマップ形式へ変換する必要があることをより早期に判断することができる。描画データがビットマップ形式に変換されるのであれば、その前におけるランレングス形式の描画データの生成は無駄な処理となるところ、ビットマップ形式への変換の判断をより早期に行うことで、無駄となる処理量を低減することができる。
【００８５】
次に、一旦ビットマップ形式へ変換された描画データを再度ランレングス形式に戻す処理について説明する。スキャンライン形式変換部６０は、ビットマップ形式に変換済みのスキャンラインに対応する描画データが所定の第２条件を満たした場合に、当該スキャンラインに対応する描画データを再度ランレングス形式に変換する処理を行う。ビットマップ形式からランレングス形式への変換は、印刷対象の文書に含まれる複数のオブジェクトに対して順次描画処理が行われる場合に生じ得る。具体的には、あるスキャンラインにおいて、新たに処理対象となったオブジェクト（特に、透過（オーバープリント）が指定されておらず、それより先に処理されたオブジェクトをノックアウトするオブジェクト）が所定の第２条件を満たした場合に、当該スキャンラインに対応する描画データをランレングス形式に変換する。また、スキャンライン形式変換部６０は、描画データをビットマップ形式からランレングス形式に変換すると共に、当該描画データが格納されるスキャンラインバッファの形式情報（図４参照）を「０」に変更する。
【００８６】
本実施形態では、あるスキャンライン内の処理対象のオブジェクト以外の画素数と、当該スキャンラインにおいて処理対象のオブジェクトをランレングス形式の描画データとした場合のランの数との合計が、所定数以下である、という条件を第２条件としている。当該所定数は、上記第１条件を充足するためのランの数（上述の例では２０画素のスキャンラインに対して６個）である。具体的には、スキャンライン形式変換部６０は、スキャンラインの長さをＬとし、当該スキャンラインにおける処理対象のオブジェクトのランの数をｎ、当該ランの長さの合計をＮ、上記第１条件を充足するためのランの数をＴｈとすると、Ｌ−Ｎ＋ｎ≧Ｔｈが成立する場合に、当該スキャンラインに対応する描画データをランレングス形式に変換する。ここで、Ｌ−Ｎが、スキャンライン内の処理対象のオブジェクト以外の画素数を表している。
【００８７】
例えば、スキャンラインの長さを２０（Ｌ＝２０）、当該スキャンラインにおける処理対象のオブジェクトのランの数を２（ｎ＝２）、当該ランの長さの合計を１６（Ｎ＝１６）、上記第１条件を充足するためのランの数を６（Ｔｈ＝６）である場合を考える。ｎ＝２、Ｎ＝１６であるから、スキャンラインに含まれる２０個の画素のうち、１６個の画素は２つのランで表せることになる。仮に、残り４こ（つまりＬ−Ｎ個）の画素を全て個別のランで表すことになった場合、当該スキャンラインに含まれるランの数は、残り４個の画素にそれぞれ対応する４つのランと、１６個の画素を表す２つのランを足した６個（つまりＬ−Ｎ＋ｎ）となる。これが、第１条件を充足するためのランの数をＴｈである６個以下であれば、当該スキャンラインに対応する描画データは、ビットマップ形式よりもランレングス形式の方がデータ量は小さいと言える。したがって、スキャンライン形式変換部６０は、Ｌ−Ｎ＋ｎ≧Ｔｈが成立する場合に、当該スキャンラインに対応する描画データをランレングス形式に変換する。
【００８８】
図１３〜図１４を参照して、描画データがビットマップ形式からランレングス形式に変換される具体例を説明する。図１３には、図１１に示した印刷対象の文書に対して、さらにｏｂｊ３が重畳された様子が示されている。ｏｂｊ３も単色（ただしｏｂｊ１及びｏｂｊ２とは異なる色）の図形オブジェクトであるとする。また、ｏｂｊ３は、オーバープリントが指定されておらず、ｏｂｊ３により、ｏｂｊ１及びｏｂｊ２がノックアウトされるものとする。
【００８９】
現在ビットマップ形式であるスキャンライン１に着目すると、処理対象のｏｂｊ３は、ｘ＝０からｘ＝１６までの１７個の画素が同色で連続している。つまり、ｎ＝１であり、Ｎ＝１７である。本例では、上述の通り、Ｌ＝２０、及びＴｈ＝６であるから、２０−１７＋１≧６という条件を満たす。したがって、スキャンライン形式変換部６０は、スキャンラインバッファ１に格納されるスキャンライン１に対応する描画データをランレングス形式のデータに変換する。それと共に、ランレングス形式出力部５６は、スキャンラインバッファ１の形式情報を「０」に変更する。変換後のランレングス形式の描画データが図１４に示されている。
【００９０】
上記の処理が、印刷対象の文書に含まれる全てのオブジェクトが重畳されるまで繰り返される。また、上記の処理が、スキャンライン１以外のスキャンラインについても実行される。その結果、スキャンラインバッファ群５８において、ランレングス形式の描画データとビットマップ形式とが混在した複数の描画データが格納され得ることになる。以後、描画領域毎に、ランレングス形式とビットマップ形式とのいずれかの形式をとる複数の描画データ（つまり形式が混在した複数の描画データ）を形式混在描画データと記載する。形式混在描画データは、印刷対象の文書の各描画領域に適した形式（つまりよりデータ量が小さくなる形式）で描画データが生成されている。これにより、全ての描画データをビットマップ形式とした場合、あるいは、全ての描画データをランレングス形式とした場合に比して、形式混在描画データ全体として、データ量を低減させることができる。
【００９１】
本実施形態においては、ランレングス形式の描画データのデータ量が、当該描画データをビットマップ形式とした場合のデータ量を超える場合に、当該描画データがビットマップ形式に変換される。したがって、各スキャンラインバッファの記憶可能容量は、少なくともビットマップ形式の描画データを記憶可能な容量であればよい。記憶可能容量は、描画領域の大きさに基づいて決定される。上述の例のようにスキャンラインが２０画素からなる場合、各スキャンラインバッファは、少なくとも２０×４＝８０バイトの記憶可能容量があればよい。
【００９２】
また、各スキャンラインバッファの記憶可能容量をさらに低減させる観点から、ランレングス形式から変換する際に、ビットマップ形式に代えて、非可逆圧縮形式に描画データを変換するようにしてもよい。非可逆圧縮形式は、ビットマップ形式よりもデータ量が小さい形式であり、例えば、低解像度ビットマップ形式などの形式である。
【００９３】
非可逆圧縮形式に変換することとすれば、さらに各スキャンラインバッファの記憶可能容量を低減できる。例えば、スキャンラインにおいて隣接する２つの画素を１画素にまとめて、解像度が元のビットマップ形式の半分となりデータ量も半分になる低解像度ビットマップ形式を非可逆圧縮形式として採用した場合、各スキャンラインバッファの記憶可能容量は、通常のビットマップ形式に変換する場合に比して半分で足りるようになる。もちろん、非可逆圧縮形式に変換する場合は、ランレングス形式から非可逆圧縮形式へ変換するための条件としては、ランレングス形式の描画データのデータ量が、当該描画データを非可逆圧縮形式とした場合のデータ量を超えるといった条件となる。
【００９４】
特に、印刷装置１６の処理能力に対して印刷対象の文書の解像度が高い場合は、印刷結果における画質劣化をあまり目立たせることなく、各スキャンラインバッファの記憶可能容量を低減できる。また、非可逆圧縮形式に変換される場合であっても、複数の描画データのうち、画質が劣化するのはビットマップ形式の描画データのみであって、ランレングス形式の描画データの画質は維持することができる。
【００９５】
描画領域として、バンドあるいはタイルを採用する場合は、印刷対象の文書のｘ方向のみならず、ｙ方向における圧縮も可能となる。また、描画領域としてバンドあるいはタイルを採用する場合には、非可逆圧縮形式としてＪＰＥＧを採用することもできる。
【００９６】
図３に戻り、色変換手段としての第１画像処理部６２は、スキャンラインバッファ群５８に記憶された形式混在描画データに対して第１の画像処理を行う。形式混在描画データは、各スキャンラインに対応した別個の描画データであるため、第１の画像処理としては、各スキャンラインに対応する各描画データに個別に実行できる処理（他の描画データを参照しない処理）が行われる。本実施形態では、第１の画像処理として、色補正処理及びチャネルスワップ処理を含む色変換処理が実行される。
【００９７】
チャネルスワップ処理とは、例えば印刷装置１６が金トナーあるいは銀トナーなどのメタリックカラーのトナーを備えている場合であって、端末装置１２において当該メタリックカラーを指定した印刷ジョブを生成できない場合に行われる処理である。この場合、基本色のうちの１つ（例えばシアン）がメタリックカラーとして割り当てられ、端末装置１２において印刷ジョブが生成される（当該印刷ジョブにはシアン色が含まれないとする）。まず、基本色の処理においては、メタリックカラーに割り当てられたシアン版（したがって実態はメタリック版）は、印刷装置１６のメタリックカラー処理部へ出力される。次に、特色の処理が行われるが、その際、特色としてシアン成分を有する色（例えば緑）が存在する場合、現在メタリックカラー処理部に割り当てられているシアン版をシアンカラー処理部に割り当てる必要がある。したがって、特色の処理に先立って、シアン版の割り当てがメタリックカラー処理部からシアンカラー処理部へ変更される。このように、ある色の版のカラー処理部への割り当てを変更する処理がチャネルスワップ処理である。
【００９８】
各スキャンラインに対応する各描画データ（形式混在描画データ）は、複数のスキャンラインバッファにそれぞれ格納されているから、第１画像処理部６２は、形式混在描画データに対して色変換処理を並列に実行することができる。これにより、並列処理しない場合に比して、色変換処理を高速に行うことができる。
【００９９】
形式混在描画データを並列処理する場合、第１画像処理部６２を複数設けるようにしてもよい。例えば、第１画像処理部６２を２つ設け、一方の第１画像処理部６２が偶数番目のスキャンラインバッファに記憶された描画データに対して色変換処理を行い、他方の第１画像処理部６２が奇数番目のスキャンラインバッファに記憶された描画データに対して色変換処理を行うようにしてもよい。あるいは、偶数番目、奇数番目という分け方ではなく、２つの第１画像処理部６２のうち、空いている（処理を行っていない）方に順次形式混在描画データを入力するようにしてもよい。
【０１００】
また、第１画像処理部６２は、マルチスレッド処理機能を有していてもよく、複数の描画データを複数のスレッドにおいて並列処理させるようにしてもよい。
【０１０１】
また、形式混在描画データには、ランレングス形式の描画データを含んでいる。上述のように、ランレングス形式の描画データは、複数の画素の色が１つの色データにより表現されている。したがって、ランレングス形式の描画データに対して色変換処理を行う際には、当該１つの色データに対して処理を行うことで、複数の画素に対する色変換処理を行うことができる。このように、ランレングス形式を含む形式混在描画データに対して色変換処理を行うことで、全てビットマップ形式の描画データに対して色変換処理を行う場合に比して、色変換処理の処理量が低減され、色変換処理が高速化される。
【０１０２】
また、上述のように、ランレングス形式の描画データにおいては、色データを含むカラーブロックがメモリ領域においてひとかたまりとなっているため、第１画像処理部６２は、色変換処理にあたって、好適に各スキャンラインバッファから色データを読み出すことができる。
【０１０３】
第１の画像処理が施された形式混在描画データは、アクセラレータ部３８にＤＭＡ転送される。上述の通り、形式混在描画データは、全ての描画データをビットマップ形式とした場合、あるいは、全ての描画データをランレングス形式とした場合に比してデータ量が低減されているから、当該ＤＭＡ転送処理が高速化される。
【０１０４】
図１５に、アクセラレータ部３８の機能構成の概略が示されている。以下、図１５を参照しながら、アクセラレータ部３８の詳細な機能構成、並びに、ラスタライズ処理及び第２の画像処理の詳細について説明する。
【０１０５】
画像データ生成手段としてのビットマップ展開部７０は、スキャンラインバッファ群５８からＤＭＡ転送されてくる印刷対象の文書１ページ分の形式混在描画データ毎にラスタライズ処理を施して、文書１ページ分の画像データを生成する。当該画像データは単一形式からなるものであり、本実施形態ではビットマップ形式である。
【０１０６】
形式混在描画データは、各描画領域に対応した複数の描画データからなるから、第１画像処理部６２同様、ビットマップ展開部７０も、各描画領域に対応した複数の描画データに対してラスタライズ処理を並列に実行することができる。これにより、並列処理しない場合に比して、ラスタライズ処理を高速に行うことができる。
【０１０７】
ビットマップ展開部７０により生成された画像データはビットマップバッファ７２に格納される。
【０１０８】
画像処理実行手段としての第２画像処理部７４は、ビットマップバッファ７２に格納された画像データに対して第２の画像処理を行う。画像データは、形式混在描画データがまとめられたデータであるため、第２の画像処理としては、隣接する各描画領域に跨った処理が可能である。本実施形態では、第２の画像処理として、シャープネス処理、スムージング処理、あるいはｎ×ｎ画素群に対するフィルタ処理などが実行される。
【０１０９】
画像データ変換部７６は、第２の画像処理が施された画像データを印刷装置１６が対応する圧縮形式に変換する。圧縮形式とは例えばランレングス形式などである。圧縮形式に変換された画像データは出力バッファ４０に格納される。なお、画像データ変換部７６による処理は行われなくてもよく、すなわち、ビットマップ形式の画像データが出力バッファ４０に格納されてもよい。
【０１１０】
なお、印刷装置１６が対応可能であるならば、ラスタライズ処理がバイパスされ、形式混在描画データそのものが画像データとして出力バッファ４０に格納されるようにしてもよい。
【０１１１】
以下、図１６及び図１７に示されたフローチャートに従って、描画部３６及びアクセラレータ部３８の処理の流れを説明する。
【０１１２】
図１６のステップＳ１０において、印刷対象の文書の各ページに対する処理を開始する前に、スキャンライン形式変換部６０は、各スキャンラインバッファの形式情報を「０」に初期化する。つまり、各スキャンラインの描画データを形式をランレングス形式に初期化する。
【０１１３】
ステップＳ１２において、描画データ生成部５０は、中間データに含まれるオブジェクトのうち、１つのオブジェクトを選択する。当該オブジェクトは、中間データに含まれるオブジェクトの処理順に従って選択されてよい。
【０１１４】
ステップＳ１４において、描画データ生成部５０は、選択されたオブジェクトについて、各スキャンラインについての描画データを生成する。
【０１１５】
ステップＳ１６において、スキャンライン形式判定部５２は、生成した描画データのうち１つの描画データを選択する。
【０１１６】
ステップＳ１８において、スキャンライン形式判定部５２は、選択した描画データに対応するスキャンラインバッファの形式情報が「０」（ランレングス形式）であるか「１」（ビットマップ形式）であるかを判定する。ここでは、選択した描画データに対応するスキャンラインバッファの形式情報が「０」であるとし、当該描画データはランレングス形式出力部５６からランレングス形式で出力され、ステップＳ２０に進む。
【０１１７】
ステップＳ２０において、スキャンライン形式変換部６０は、ランレングス形式の描画データの各ランに対応する各データブロックがスキャンラインバッファに記憶される毎に、ランの数が所定ラン数を超えるか否かを判定する。当該所定ラン数は、上述の通りスキャンラインの長さに基づいて設定される。
【０１１８】
描画データのラン数が所定ラン数を超えない場合、ステップＳ２２に進み、スキャンライン形式変換部６０は、描画データの形式を変換せず、ランレングス形式を維持する。
【０１１９】
描画データのラン数が所定ラン数を超える場合、ステップＳ２４に進み、スキャンライン形式変換部６０は、当該描画データの形式をビットマップ形式に変換する。次いで、ステップＳ２６において、スキャンライン形式変換部６０は、当該描画データに対応するスキャンラインバッファの形式情報を「１」に変更する。
【０１２０】
ステップＳ２８において、スキャンライン形式判定部５２は、ステップＳ１４において生成した描画データのうち、ステップＳ１８以下の処理が未処理の描画データがあるか否かを判定する。未処理の描画データがある場合、ステップＳ１６に戻り、スキャンライン形式判定部５２は、他の描画データを選択してステップＳ１８以下の処理を繰り返す。１つのオブジェクトについて全てのスキャンラインに対応する描画データについて処理を終えたと判定されると、ステップＳ３０に進む。
【０１２１】
ステップＳ３０において、描画データ生成部５０は、中間データに含まれる全てのオブジェクトについて処理を終えたか否かを判定する。未処理のオブジェクトがある場合、ステップＳ１２に戻り、描画データ生成部５０は、他のオブジェクトを選択し、処理済みのオブジェクトに当該選択したオブジェクトを重畳させたデータに対してステップＳ１４以下の処理を繰り返す。全てのオブジェクトについて処理を終えたと判定されると、図１７のステップＳ４０（後述）に進む。
【０１２２】
再度のステップＳ１８において、選択した描画データに対応するスキャンラインバッファの形式情報が「１」であるかと判定された場合、当該描画データはビットマップ形式出力部５４からビットマップ形式で出力され、ステップＳ３２に進む。
【０１２３】
ステップＳ３２において、スキャンライン形式変換部６０は、ビットマップ形式の描画データにおいて、同色で連続する画素数が所定画素数を超えるか否かを判定する。当該所定画素数は、上述の通りスキャンラインの長さに基づいて設定される。
【０１２４】
ビットマップ形式の描画データにおいて、同色で連続する画素数が所定画素数を超えない場合、ステップＳ３４に進み、スキャンライン形式変換部６０は、描画データの形式を変換せず、ビットマップ形式を維持する。
【０１２５】
ビットマップ形式の描画データにおいて、同色で連続する画素数が所定画素数を超える場合、ステップＳ３６に進み、スキャンライン形式変換部６０は、当該描画データの形式をランレングス形式に再変換する。次いで、ステップＳ３８において、スキャンライン形式変換部６０は、当該描画データに対応するスキャンラインバッファの形式情報を「０」に変更する。
【０１２６】
ステップＳ１２〜ステップＳ３８までの処理が繰り返されることにより、印刷対象の文書１ページ分の形式混在描画データがスキャンラインバッファ群５８に格納される。
【０１２７】
図１７のステップＳ４０において、第１画像処理部６２には、スキャンラインバッファ群５８に格納された形式混在描画データに対して、第１の画像変換処理を行う。上述の通り、第１の画像変換処理とは各描画データに対して個別に施すことができる処理であり、色補正あるいはチャネルスワップ処理などの色変換処理である。色変換処理は、形式混在描画データに対して並列処理されてよい。
【０１２８】
ステップＳ４２において、色変換処理された形式混在描画データはアクセラレータ部３８にＤＭＡ転送され、ビットマップ展開部７０は、形式混在描画データに対してラスタライズ処理を行って文書１ページ分の画像データを生成する。ラスタライズ処理は、形式混在描画データに対して並列に実行されてよい。画像データはビットマップバッファ７２に格納される。
【０１２９】
ステップＳ４４において、第２画像処理部７４は、ビットマップバッファ７２に格納された画像データに対して第２の画像変換処理を行う。上述の通り、第２の画像変換処理とは複数の描画データに跨って施すことができる処理であり、シャープネス処理、スムージング処理、フィルタ処理などである。
【０１３０】
ステップＳ４６において、画像データ変換部７６は、第２の画像変換処理が行われた画像データを印刷装置１６に応じた圧縮形式に変換する。上述の通り、ステップＳ４６の処理はスキップすることができる。
【０１３１】
ステップＳ４８において、アクセラレータ部３８は、画像データを出力バッファ４０に格納する。出力バッファ４０に格納された画像データは、印刷装置１６により読み出される。印刷装置１６は、読み出した画像データに基づいて印刷処理を行う。
【０１３２】
以上説明した実施形態によれば、印刷対象の文書の各描画領域毎に、よりデータ量が小さくなる形式で描画データが生成され、その結果として、形式混在描画データが生成される。したがって、形式混在描画データは、単一のビットマップ形式で生成された描画データ、あるいは単一のランレングス形式で生成された描画データよりもデータ量が低減されている。形式混在描画データのデータ量が低減されることで、スキャンラインバッファの容量低減、第１画像処理部６２による色変換処理の高速化、描画部３６からアクセラレータ部３８へのＤＭＡ転送の高速化、ビットマップ展開部７０によるラスタライズ処理の高速化などが実現される。
【０１３３】
以上、本発明に係る実施形態を説明したが、本発明は上記実施形態に限られるものではなく、本発明の趣旨を逸脱しない限りにおいて種々の変更が可能である。
【符号の説明】
【０１３４】
１０  画像処理システム、１２  端末装置、１４  印刷コントローラ、１６  印刷装置、１８  フロントエンド装置、２０  バックエンド装置、３０  印刷ジョブ受信部、３２  論理ページ解釈部、３４  中間データバッファ、３６  描画部、３８  アクセラレータ部、４０  出力バッファ、５０  描画データ生成部、５２  スキャンライン形式判定部、５４  ビットマップ形式出力部、５６  ランレングス形式出力部、５８  スキャンラインバッファ群、６０  スキャンライン形式変換部、６２  第１画像処理部、７０  ビットマップ展開部、７２  ビットマップバッファ、７４  第２画像処理部、７６  画像データ変換部。
【図１】
2018079636.tif 000003
【図２】
2018079636.tif 000004
【図３】
2018079636.tif 000005
【図４】
2018079636.tif 000006
【図５】
2018079636.tif 000007
【図６】
2018079636.tif 000008
【図７】
2018079636.tif 000009
【図８】
2018079636.tif 000010
【図９】
2018079636.tif 000011
【図１０】
2018079636.tif 000012
【図１１】
2018079636.tif 000013
【図１２】
2018079636.tif 000014
【図１３】
2018079636.tif 000015
【図１４】
2018079636.tif 000016
【図１５】
2018079636.tif 000017
【図１６】
2018079636.tif 000018
【図１７】
2018079636.tif 000019