(57)【要約】【課題】  本発明は、ページ記述言語から生成した中間データをもとに、ラスタ画像を生成する画像形成装置において、回路規模を増大させることなく、デコードデータ処理の負荷を軽減させることを目的とする。【解決手段】  本発明は、画素単位に展開されたデータをメモリに格納する第１の処理部と、連続する同一画素値から構成されるリージョン単位のデータを、画素単位のデータに展開して前記メモリに格納する第２の処理部と、前記中間データに含まれるイメージデータをデコードして得られるデコードデータを、第１の処理部もしくは第２の処理部に転送するデコード処理部と、を有し、前記デコード処理部は、前記中間データに含まれるデータ形式に応じて、前記デコードデータを、前記第１の処理部と前記第２の処理部とのいずれに転送するかを選択することを特徴とする。【選択図】  図２
2020090075.tif 000002
【特許請求の範囲】
【請求項１】
ページ記述言語から生成した中間データをもとに、ラスタ画像を生成する画像形成装置であって、
画素単位に展開されたデータをメモリに格納する第１の処理部と、
連続する同一画素値から構成されるリージョン単位のデータを、画素単位のデータに展開して前記メモリに格納する第２の処理部と、
前記中間データに含まれるイメージデータをデコードして得られるデコードデータを、第１の処理部もしくは第２の処理部に転送するデコード処理部と、
前記デコードデータと、前記中間データに含まれるグラフィックデータとを、前記中間データに含まれる描画命令に従って前記リージョン単位に合成処理をして得られる合成結果を第２の処理部に転送する合成処理部と、を有し、
前記デコード処理部は、前記中間データに含まれるデータ形式に応じて、前記デコードデータを、前記第１の処理部と前記第２の処理部とのいずれに転送するかを選択することを特徴とする画像形成装置。
【請求項２】
前記デコード処理部は、前記中間データに含まれるデータ形式が、全面ラスタ画像化されたデータではない場合は画素単位に展開して第１の処理部に転送し、全面ラスタ画像化されたデータである場合はリージョン単位に第２の処理部に転送することを特徴とする請求項１に記載の画像形成装置。
【請求項３】
前記デコード処理部は、前記中間データに含まれるイメージデータのデータ形式が、属性データの場合は画素単位に展開して第１の処理部に転送し、画像データである場合はリージョン単位に第２の処理部へ転送することを特徴とする請求項１に記載の画像形成装置。
【請求項４】
前記中間データに含まれるデータ形式が、ページごとに決められるものである、ことを特徴とする請求項１乃至請求項３のいずれか１項に記載の画像形成装置。
【請求項５】
前記中間データに含まれるデータ形式は、バンドごとに決められていることを特徴とする請求項１乃至３のいずれか１項に記載の画像形成装置。
【請求項６】
前記デコード処理部は、前記中間データに含まれるイメージデータのデータ形式が、非可逆圧縮の方式である場合は画素単位に展開して第１の処理部に転送し、可逆圧縮の方式である場合はリージョン単位に第２の処理部に転送することを特徴とする請求項１に記載の画像形成装置。
【請求項７】
前記デコード処理部は、タイルごとに、画素単位に展開して第１の処理部に転送するか、リージョン単位に第２の処理部に転送するかを切り替えることを特徴とする請求項６に記載の画像形成装置。
【請求項８】
前記デコード処理部は、前記中間データに含まれるイメージデータのデータ形式が、非可逆圧縮の領域と可逆圧縮の領域が混載するハイブリッド圧縮方式である場合、前記イメージデータに含まれる非可逆圧縮の領域が可逆圧縮の領域よりも多い場合は画素単位に展開して第１の処理部に転送し、前記イメージデータに含まれる非可逆圧縮の領域が可逆圧縮の領域よりも少ない場合はリージョン単位に第２の処理部に転送することを特徴とする請求項６または請求項７に記載の画像形成装置。
【請求項９】
前記デコード処理部は、前記中間データに含まれるイメージデータのデータ形式が、非可逆圧縮の領域と可逆圧縮の領域が混載するハイブリッド圧縮方式である場合、前記イメージデータに含まれる非可逆圧縮の領域が予め定められた閾値よりも多い場合は画素単位に展開して第１の処理部に転送し、前記イメージデータに含まれる非可逆圧縮の領域が予め定められた閾値よりも少ない場合はリージョン単位に第２の処理部に転送することを特徴とする請求項６または請求項７に記載の画像形成装置。
【請求項１０】
前記デコード処理部は、ハイブリッド圧縮方式のイメージデータを処理する場合に、ライン単位に、画素単位に展開して第１の処理部に転送するか、リージョン単位に第２の処理部に転送するかを切り替える、ことを特徴とする請求項８または請求項９に記載の画像形成装置。
【請求項１１】
前記デコード処理部は、前記中間データに含まれるイメージデータのデータ種別が、属性データである場合、前記イメージデータにテキスト属性が含まれる場合は画素単位に展開して第１の処理部に転送し、前記イメージデータにテキスト属性が含まれない場合はリージョン単位に第２の処理部に転送することを特徴とする請求項１に記載の画像形成装置。
【請求項１２】
前記デコード処理部は、前記中間データに含まれるイメージデータのデータ種別が、属性データである場合、前記イメージデータに含まれるリージョン数が予め定められた閾値よりも多い場合は画素単位に展開して第１の処理部に転送し、前記イメージデータに含まれるリージョン数が予め定められた閾値よりも少ない場合はリージョン単位に第２の処理部に転送することを特徴とする請求項１に記載の画像形成装置。
【請求項１３】
前記デコード処理部は、データ種別が属性データであるイメージデータを処理する場合に、タイル単位に、画素単位に展開して第１の処理部に転送するか、リージョン単位に第２の処理部に転送するかを切り替えることを特徴とする請求項１１または請求項１２に記載の画像形成装置。
【請求項１４】
前記デコード処理部は、データ種別が属性データであるイメージデータを処理する場合に、ラインごとに、画素単位に展開して第１の処理部に転送するか、リージョン単位に第２の処理部に転送するかを切り替えることを特徴とする請求項１１または請求項１２に記載の画像形成装置。
【請求項１５】
ページ記述言語から生成した中間データをもとに、ラスタ画像を生成する画像形成方法であって、
第１の処理部が、画素単位に展開されたデータをメモリに格納する第１の処理工程と、
第２の処理部が、連続する同一画素値から構成されるリージョン単位のデータを、画素単位のデータに展開して前記メモリに格納する第２の処理工程と、
デコード処理部が、前記中間データに含まれるイメージデータをデコードして得られるデコードデータを、第１の処理部もしくは第２の処理部に転送するデコード工程と、
合成処理部が、前記デコードデータと、前記中間データに含まれるグラフィックデータとを、前記中間データに含まれる描画命令に従って前記リージョン単位に合成処理をして得られる合成結果を第２の処理部に転送する合成処理工程と、を有し、
前記デコード処理工程では、前記中間データに含まれるデータ形式に応じて、前記デコードデータを、前記第１の処理部と前記第２の処理部とのいずれに転送するかを選択することを特徴とする画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ページ記述言語で記述されたデータを変換した中間データから、ラスタ画像を生成する画像形成装置に関する。
【背景技術】
【０００２】
ＰＤＬ（ページ記述言語）では画像を描画オブジェクトの集合として表現しており、描画オブジェクトは輪郭を成す境界と色によって表現される。ＰＤＬを印刷装置によって印刷するために、ＰＤＬを中間データに変換した後に、中間データをラスタ画像に変換する技術が普及している。中間データは、ある領域の色を示すグラフィックデータや圧縮・非圧縮のイメージデータなどの描画オブジェクトと、イメージデータのデコード命令や、オブジェクトの座標や重なり、透過率を考慮してラスタ画像を生成するための合成命令などの描画命令とを含む。デコード命令に従ってデコード処理したイメージデータと、グラフィックデータの色データとを、合成命令に従って合成処理することでラスタ画像が生成される。この中間データからラスタ画像を生成するレンダリング処理を高速に行うためには、デコード処理と合成処理を並列に処理するアーキテクチャが用いられる。例えば、ラスタ画像上の複数ラインをまとめたバンド単位に合成処理をする画像形成装置において、当該バンドに含まれるイメージデータを先行的にデコード処理して、デコードデータを中間バッファに格納する。また、中間バッファに格納されたデコードデータを用いて当該バンドの合成処理を行うのと並列に、次のバンドに含まれるイメージデータをデコード処理して、デコードデータをもう一つの中間バッファに格納する。そうすることで、次のバンドの合成処理はデコード処理を待たずに開始でき、デコード処理時間が隠ぺいされるため、高速に動作することができる。
【０００３】
近年、プリンタの高速化、低コスト（省メモリ）化はますます進んでおり、そのためには並列処理以外にもさまざまな手法が用いられている。例えば、重ねあわせるグラフィックデータやイメージデータ、およびその合成命令が同一である画素ライン上の連続領域（リージョン）に対しては、それらを一括で合成することで処理量を削減でき、合成処理の高速化が実現される。グラフィックデータはある境界内の色を示しているため、その境界内に含まれる連続画素をひとつのリージョンとして扱うことができる。また、中間バッファに格納されたイメージのデコードデータは、中間データの描画命令に含まれるアフィン変換パラメータをもとに回転や拡大処理をして読み出される。この拡大処理がニアレストネイバー方式で行われる場合、拡大率によって同一の色データが複数画素続くため、この連続画素もひとつのリージョンとして扱うことができる。これらリージョン単位に一括で合成処理を行い、合成結果を画素単位のデータに展開することで、ラスタ画像を効率よく生成することができる。
【０００４】
また、ＰＤＬが複雑な形状の描画オブジェクトや、非常に多くの描画オブジェクトを含む場合、中間データも多数の境界データやイメージデータを含み、データ量やデコードに必要になる中間バッファのメモリ量が増大する。そこで、描画オブジェクトの一部または全てをソフト処理によりラスタ画像に変換した中間データを生成して、データ量やデコードに必要な中間バッファのメモリ量を削減することがある。
【０００５】
そこで、ページ全面がイメージ化されたデータを、出力経路を切り替えて高速転送する提案がなされている。特許文献１では、圧縮データと非圧縮のデータが混在している場合に、当該イメージの圧縮／非圧縮の情報により、伸長処理をしてから出力メモリに書き出す経路と、直接出力メモリに書き出す経路を切り替えている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００１−１１３７５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１によれば、非圧縮データを直接出力バッファに出力することで冗長な処理を省いて高速化を図っているが、イメージデータを非圧縮化することは必要なメモリ量が増加し、コスト増加を招いてしまうため好ましくない。また、ページ全面がラスタ画像化されたデータは、出力解像度のイメージデータであるため処理するデータ量が多く、デコード処理の負荷増加によりレンダリングシステム全体の性能劣化を招くという問題がある。
【０００８】
本発明は上記課題を鑑み、ページ記述言語から生成した中間データをもとに、ラスタ画像を生成する画像形成装置において、回路規模を増大させることなく、デコードデータ処理の負荷を軽減させることを目的とする。
【課題を解決するための手段】
【０００９】
本発明は、ページ記述言語から生成した中間データをもとに、ラスタ画像を生成する画像形成装置であって、画素単位に展開されたデータをメモリに格納する第１の処理部と、連続する同一画素値から構成されるリージョン単位のデータを、画素単位のデータに展開して前記メモリに格納する第２の処理部と、前記中間データに含まれるイメージデータをデコードして得られるデコードデータを、第１の処理部もしくは第２の処理部に転送するデコード処理部と、前記デコードデータと、前記中間データに含まれるグラフィックデータとを、前記中間データに含まれる描画命令に従って前記リージョン単位に合成処理をして得られる合成結果を第２の処理部に転送する合成処理部と、を有し、前記デコード処理部は、前記中間データに含まれるデータ形式に応じて、前記デコードデータを、前記第１の処理部と前記第２の処理部とのいずれに転送するかを選択することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、ページ記述言語から生成した中間データをもとに、ラスタ画像を生成する画像形成装置において、回路規模を増大させることなく、デコードデータ処理の負荷を軽減させることが出来る。
【図面の簡単な説明】
【００１１】
【図１】第１〜３実施形態における画像形成装置の構成例を示すブロック図である。
【図２】第１〜３実施形態における画像形成部の構成例を示すブロック図である。
【図３】第１実施形態におけるデコード処理部の処理の流れを示すフローチャートである。
【図４】第１〜３実施形態における画素単位（ワード単位）のコマンド転送を行う場合のコマンド例を示す図である。
【図５】第１〜３実施形態におけるリージョン単位のコマンド転送を行う場合のコマンド例を示す図である。
【図６】第２実施形態におけるデコード処理部の処理の流れを示すフローチャートである。
【図７】第２〜３実施形態におけるデコード処理部の処理の流れを示すフローチャートである。
【図８】第３実施形態におけるハイブリッド圧縮方式のタイルを模した図である。
【図９】第３実施形態におけるデコード処理部の処理の流れを示すフローチャートである。
【図１０】第３実施形態におけるハイブリッド圧縮方式のタイルライン単位に、デコード処理部の処理および出力経路を判定する様子を模した図である。
【図１１】各画素に付与される属性データを示す図である。
【図１２】画像データと属性データがそれぞれ別プレーンとしてＤＲＡＭに展開されている状態を示す概念図である。
【図１３】第４〜６実施形態における画素単位（ワード単位）のコマンド転送を行う場合のコマンド例を示す図である。
【図１４】第４〜６実施形態におけるリージョン単位のコマンド転送を行う場合のコマンド例を示す図である。
【図１５】第４実施形態におけるデコード処理部の処理の流れを示すフローチャートである。
【図１６】第５実施形態におけるデコード処理部の処理の流れを示すフローチャートである。
【図１７】テキスト属性を含むタイルを示す概念図である。
【図１８】第５実施形態における６４×６４画素のタイルライン単位に、デコード処理部の処理および出力経路を判定する様子を模した図である。
【図１９】第６実施形態におけるデコード処理部の処理の流れを示すフローチャートである。
【図２０】第６実施形態における６４×６４画素のタイルライン単位に、デコード処理部の処理および出力経路を判定する様子を模した図である。
【発明を実施するための形態】
【００１２】
（第１実施形態）
図１は、本発明における画像形成装置のシステム構成図である。画像形成装置１００は、ＣＰＵ１０１、ＤＲＡＭ１０２、画像入力部１０３、画像形成部１０４、画像処理部１０５、印字処理部１０６が、バス１０７を介して接続されている。ＣＰＵ１０１は不図示のＲＯＭに格納された制御プログラムを読み出し実行することにより、演算処理や画像形成装置１００各部の動作を統括的に制御する。ＤＲＡＭ１０２は、読み出し及び書き込み可能なメモリであり、画像データなどの各種データを一時的に格納するための記憶媒体である。画像入力部１０３は、不図示のホストＰＣやサーバーから転送されるＰＤＬ（ページ記述言語）やＰＤＬを解釈して描画オブジェクトや描画命令の集合に変換した中間データを受信し、ＤＲＡＭ１０２に格納する。画像入力部１０３がＰＤＬを受信した場合は、ＣＰＵ１０１あるいは不図示のハードウェアによって中間データに変換し、ＤＲＡＭ１０２に格納する。画像形成部１０４は、ＤＲＡＭ１０２から中間データの描画オブジェクトや描画命令を読み出し、その命令に従ってラスタ画像を生成する。画像処理部１０５は、画像形成部１０４が生成したラスタ画像に対して所定の画像処理を施し、印字データを生成する。印字処理部１０６は、インクジェットやレーザービーム方式のプリンタエンジンであり、画像処理部１０５が生成した印字データに従って、印字処理を実行する。
【００１３】
図２は、本実施形態における画像形成部１０４の構成を示すブロック図である。画像形成部１０４は、動作制御部２００、合成処理部２０１、デコード処理部２０２、リージョン展開処理部２０３、データ送受信部２０４およびＤＭＡＣ２０５から成る。以下、それぞれの処理の基本的な動作を説明する。
【００１４】
データ送受信部２０４は、キャッシュ２０９を持ち、バースト転送によりバス１０７を介したＤＲＡＭ１０２へのデータの読み出し／書き込みを行う。ＤＲＡＭ１０２への書き込みは、画素単位（ワード単位）に入力されたデータをもとに行う。
【００１５】
ＤＭＡＣ２０５は、書き込み先のアドレス情報と転送量情報を含む不図示のディスクリプタに従って、入力されたデータをバースト転送によりバス１０７を介したＤＲＡＭ１０２へ書き込む。
【００１６】
動作制御部２００は、中間データに含まれる制御情報を読み出し、該制御情報に従って合成処理部２０１とデコード処理部２０２の動作を制御する。制御情報は、合成処理部２０１とデコード処理部２０２を効率よく並列動作するための情報を含む。例えば、動作の連携単位をバンドとすると、効率よく並列動作するためには、バンドの合成処理に必要なイメージデータを先行的にデコード処理して、デコードデータを中間バッファに用意しておく必要がある。そのため動作制御部２００は、制御情報に従って、処理バンドの合成処理に必要なイメージデータのデコード処理を開始するようデコード処理部２０２に通知する。デコード処理部２０２は、通知を受けたのちデコード処理を開始し、処理完了後、動作制御部２００に完了通知をする。動作制御部２００は、デコード処理部２０２のデコード完了通知を受けて、処理バンドの合成処理を開始するように合成処理部２０１に通知する。それと同時に、次の処理バンドの合成処理に必要なイメージデータのデコード処理を開始するようデコード処理部２０２に通知する。そうすることで、合成処理部２０１とデコード処理部２０２の並列動作を効率的に制御することができる。ただし、動作制御部２００の代わりに、合成処理部２０１とデコード処理部２０２の少なくともどちらか一方が、中間データの制御情報をもとに連携する仕組みによっても実現できる。
【００１７】
デコード処理部２０２は、デコード手段２０６と出力経路切替手段２０７、リージョン生成手段２０８を有する。中間データに含まれるイメージデータおよびデコード命令を読み出し、デコード手段２０６によりデコード処理したデコードデータをＤＲＡＭ１０２の中間バッファに書き出す。デコード前の圧縮データは、例えば６４×６４画素のタイル領域に対して、特定の圧縮形式で圧縮されたデータを扱うものとする。その場合、動作の連携単位であるバンドは、連続する複数タイルで構成されている。もちろん、圧縮データは６４×６４画素のタイル単位に限られるものではない。中間データに含まれるデータ形式に応じて出力先を切り替える出力経路切替手段２０７と、デコードデータを同一画素値が連続するリージョン単位にまとめたリージョンデータを生成するリージョン生成手段２０８については、後述する。デコードするイメージデータの数や、圧縮データとデコードデータのデータ量などはページに含まれる描画オブジェクトによって異なるため、ＤＲＡＭ１０２へのランダムアクセスが発生する。そのため、キャッシュ機構などを有したデータ送受信部２０４経由でデータの読み書きを行うことが効率的である。
【００１８】
合成処理部２０１は、中間データのグラフィックデータや描画命令、中間バッファのデコードデータを読み出し、描画命令に含まれる座標や重なり、透過率に応じた合成処理を同一の描画オブジェクトおよび描画命令から成る連続画素領域のリージョン単位に行う。
【００１９】
リージョン展開処理部２０３は、リージョン単位に合成処理された合成結果を画素単位のデータに展開する。すなわち、リージョン展開処理部２０３とＤＭＡＣ２０５は、連続する同一画素値をまとめたリージョン単位のデータを受け取り、画素単位のデータに展開してからＤＲＡＭ１０２へ格納する。
【００２０】
本実施形態においては、動作制御部２００、合成処理部２０１はデータ送受信部２０４を経由してＤＲＡＭ１０２にアクセスする構成としているが、それぞれが直接、ＤＲＡＭ１０２にアクセスする構成でもよい。また、ラスタ画像専用のＤＭＡＣ２０５と、ランダムアクセスが可能なデータ送受信部２０４とを用意することで、効率的なデータ転送が可能になる。また、本実施形態の好適な構成として、デコード処理部２０２をソフトウェア処理するものとして説明するが、画像形成部１０４におけるそれぞれの処理はハードウェアとソフトウェアのどちらで構成されてもよい。デコード処理部２０２をソフトウェア処理にすることで、様々な圧縮方式のデコードに対応できる。また、将来的な圧縮方式の拡張に対しても回路を追加することなく対応できる。
【００２１】
一方、このような画像形成装置においては、描画オブジェクトの一部またはすべてを予めソフト処理によりラスタ画像に変換した中間データを生成することがある。ソフト処理は、ＣＰＵ１０１や不図示のホストＰＣによって行われる。ソフト処理によって予めラスタ画像を含む中間データにする目的は、使用するメモリ量の削減やハードウェアの回路削減がある。例えば、ＰＤＬが複雑な形状の描画オブジェクトや、非常に多くの描画オブジェクトを含む場合、中間データも多数の境界データやイメージデータを含み、データ量やデコードに必要になる中間バッファのバッファ量が増大する。そのため、予めラスタ画像に変換して圧縮することで、中間データのデータ量やデコードに必要になる中間バッファのバッファ量などを抑制できる。あるいは、ＰＤＬに含まれる描画命令の種類は多数に及ぶため、それらのレンダリング処理の全てをハードウェアで対応すると、回路規模が増大してしまう。そのため、例えば出現頻度の低い描画命令をハードウェアがサポートせずに、ソフト処理によりラスタ画像化することで、回路を削減しつつ、あらゆるＰＤＬの描画を保証することができる。中でも、処理の連携単位であるバンドや、ページ単位に全面ラスタ画像化することを、フルフラットニングと呼ぶことにする。以下、ページ単位の中間データにフルフラットニングされたバンドを含む場合における、画像形成部１０４を構成するそれぞれの処理を説明する。
【００２２】
データ送受信部２０４およびＤＭＡＣ２０５は、入力されたデータに対して行う処理が前述した基本的な動作と変わらないため、説明は省略する。
【００２３】
動作制御部２００は、中間データに含まれる制御情報を読み出し、該制御情報に従ってデコード処理部２０２のみを動作させる。あるいは、中間データに含まれる、処理バンドがフルフラットニングされているか否かの情報を読み出し、それに応じて処理を切り替えてもよい。フルフラットニングされている場合は、既にオブジェクトの回転や拡大を含む合成処理を終えているため、合成処理部２０１の処理を省略でき、デコード処理部２０２のデコード結果を直接出力バッファに書き出すことで処理の短縮を図ることができる。すなわち、合成処理部２０１は処理を行わず、リージョン展開処理部２０３およびＤＭＡＣ２０５に対するデータ入力も行わない。このような特徴を鑑み、デコード処理部２０２は図３のようなフローで、処理および出力経路を切り替える。
【００２４】
まず、ページレンダリング開始後、動作制御部２００からのデコード処理開始の通知を受信する（ＳＴＥＰ３００）。さらに、動作制御部２００から当該バンドのデータ形式が、フルフラットニングされたデータであるか否かの情報を受信する（ＳＴＥＰ３０１）。ＳＴＥＰ３００とＳＴＥＰ３０１は、動作制御部２００から通知および情報を受信してもよいし、デコード処理部２０２が中間データの制御情報を読み込んで、自らを制御してもよい。続いて、受信した情報からフルフラットニングされたデータではないと判断された場合、ＳＴＥＰ３０９へ進み（ＳＴＥＰ３０２）、処理タイルのデコード命令を受信する（ＳＴＥＰ３０９）。処理タイルのデコード命令は、少なくとも当該タイルの圧縮方式や、中間バッファへの書き込みアドレスか、それがわかるタイル位置情報などを含む。続いて、圧縮データを受信して、前記デコード命令に従い、受信した圧縮データをデコード処理する（ＳＴＥＰ３１０）。そして、デコードした結果を画素単位（ワード単位）にデータ送受信部２０４へコマンド転送する（ＳＴＥＰ３１１）。コマンドは、書き込みアドレスか、それがわかるタイル位置情報と、画素値のデータとを含む。ＳＴＥＰ３０９〜３１１までをタイルの圧縮データすべてに対して行った後（ＳＴＥＰ３１２）、バンド内に未処理のタイルがないかを判定し（ＳＴＥＰ３１３）、バンド内のすべてのタイルのデコード処理が完了した場合は、ＳＴＥＰ３１４へ進む。一方、ＳＴＥＰ３０２において、フルフラットニングされたデータであると判断された場合、ＳＴＥＰ３０３へ進み、デコード命令を受信する（ＳＴＥＰ３０３）。このとき、デコード命令は、少なくとも当該タイルの圧縮方式を含む。中間データ内の圧縮データの順番が、ＤＭＡＣ２０５の転送順と予め整合がとられていれば、出力バッファへの書き込みアドレスか、それがわかるタイル位置情報などは省くことができる。続いて、圧縮データを受信して、前記デコード命令に従い、受信した圧縮データをデコード処理する（ＳＴＥＰ３０４）。デコード処理後、あるいはデコード処理の途中で、出力の画素値が同一である画素ライン上の連続領域を判定し、当該領域をひとつのリージョンとして、リージョン単位のデータを生成する（ＳＴＥＰ３０５）。生成したリージョンデータを、リージョン展開処理部２０３へコマンド転送する（ＳＴＥＰ３０６）。コマンドは、リージョンの開始画素位置と終了画素位置を示す情報と、そのリージョン内の画素値のデータを含む。ＳＴＥＰ３０３〜３０６までをタイルの圧縮データすべてに対して行った後（ＳＴＥＰ３０７）、バンド内に未処理のタイルがないかを判定し（ＳＴＥＰ３０８）、バンド内のすべてのタイルのデコード処理が完了した場合は、ＳＴＥＰ３１４へ進む。ＳＴＥＰ３１４では、バンドのデコード処理完了を動作制御部２００へ通知し（ＳＴＥＰ３１４）、ページ内の全バンドの処理が完了したかどうかを判定する（ＳＴＥＰ３１５）。ページ内の全バンドの処理が完了していない場合は、ＳＴＥＰ３００に戻り次のバンドの処理に移り、ページ内の全バンドの処理が完了した場合は、ページレンダリング完了として処理を終える。デコード処理部２０２の出力経路切替手段２０７は、ＳＴＥＰ３０２の判定によって、ＳＴＥＰ３０６でリージョン展開処理部２０３へ転送するか、ＳＴＥＰ３１１でデータ送受信部２０４へ転送するかを切り替える。リージョン生成手段２０８は、ＳＴＥＰ３０５の処理を示す。また、本フローチャートでは、バンド単位に処理を切り替えるフローを説明したが、もちろんページ単位に処理を切り替えてもよい。
【００２５】
図４は、デコード処理部２０２がデータ送受信部２０４に対して生成するコマンドの例である。コマンドは、２ビットのｉｄと３０ビットのａｄｄｒｅｓｓ、各８ビットのｃｏｌｏｒ０〜３のフィールドで構成される。ｉｄは、例えばデータ送受信部２０４が書き込みリクエストなのか読み出しリクエストなのかを識別する情報であり、ａｄｄｒｅｓｓはデータ送受信部２０４がＤＲＡＭ１０２に書き込む中間バッファの書き込みアドレスを示す。ｃｏｌｏｒ０〜３のそれぞれは、ＲＧＢやＣＭＹＫ、属性データなど、１画素分の画素データを示している。もちろん、コマンドを構成するフィールドの要素数やビット幅はこれに限られるものではない。
【００２６】
図５は、デコード処理部２０２がリージョン展開処理部２０３に対して生成するコマンドの例である。コマンドは、４ビットのｉｄと各６ビットのｓｔａｒｔＸ、ｅｎｄＸ、Ｙ、各８ビットのｃｏｌｏｒ０〜３のフィールドで構成される。ｉｄは、例えば当該コマンドの種類を示す情報である。ｓｔａｒｔＸ、ｅｎｄＸは、それぞれ６４×６４画素で構成されるタイル内の水平方向の画素位置で、リージョンの開始位置と終了位置を示す。リージョン開始位置と終了位置で挟まれる領域は、当該コマンドのｃｏｌｏｒ０〜３が示す画素データから成ることを示す。なお、本実施形態においては、リージョンを「ライン上の連続領域」と定義しており、同一画素値の画素がタイルラインを跨った場合は別リージョンとして扱うが、同一画素値の画素がタイルラインを跨った場合でも一つのリージョンとして扱う仕様も考えられる。その場合は、図５で示されるｒｅｓｅｒｖｅｄ領域にタイル内の垂直方向のリージョン終了位置を示すフィールド（Ｙ）を設けてもよい。Ｙで示す垂直方向の画素位置と、ｅｎｄＸが示す水平方向の画素位置を用いて、同一画素値の画素がタイルラインを跨った場合でも一つのリージョンとして扱うことができる。
【００２７】
続いて、本実施形態における、圧縮データの圧縮方式に応じたリージョンデータの生成方法について、詳細に説明する。デコードデータのリージョンデータ生成方法は、圧縮データをデコードする際に得られる中間コードなどを踏まえて生成することで、処理の効率化が実現できる。例えば、グラフィックなどのように、色数が少なかったり、コントラストの大きい画像には、エッジと呼ばれる色の変化を表す境界の位置座標と、そのエッジ間の色情報とを結びつて圧縮する可逆圧縮方式などが用いられる。このようなエッジ情報を圧縮した圧縮方式の場合は、デコード途中の中間コードとして色の開始位置と終了位置から成るリージョンデータが得られる。そのため、中間コードから、画素単位のデータに展開することなく、リージョン単位のコマンドを生成することができ、デコード処理の短縮もできる。一方、自然画などのように、色数の多い画像に対して行うＪＰＥＧなどの非可逆圧縮方式の場合は、デコードした結果をタイル単位のラスタ順に並べて、画素値が一致する場合はそれを連続領域としてカウントする。異なる画素値であった場合は、これまでカウントした数値をもとに図５に示すリージョン単位のコマンド生成し、リージョン展開処理部２０３へ転送する。これをタイルの最終画素まで行い、最終画素ではカウントした値をもとにリージョン単位のコマンドを生成し、リージョン展開処理部２０３へ転送する。
【００２８】
フルフラットニングしたデータは、境界内の色を示すグラフィックデータや、拡大処理後のイメージデータを含む。そのため、フルフラットニングした中間データに含まれるイメージデータは、拡大前かつ自然画に近い画像が多く含まれるフルフラットニングしていない中間データのイメージデータに比べて、同一画素値が並ぶリージョンが多く含まれる。そこで、上述のようにデコード処理部２０２がリージョンデータを生成することで、デコード処理部２０２がデコード結果を転送するために発行するコマンド数を大幅に削減し、デコード処理の高速化を実現できる。前述したとおり、フルフラットニングした中間データのレンダリング処理は、デコード処理部２０２のデコード結果を出力バッファに書き出すことで完了する。そのため、デコード処理部２０２の処理速度が、レンダリングシステムの処理速度に大きく影響しており、デコード処理の高速化はレンダリングシステムの高速化に繋がる。
【００２９】
以上説明したように、本実施形態によれば、フルフラットニングした中間データか否かによって、デコード処理部２０２の処理及び出力経路を切り替えることで、フルフラットニング時におけるレンダリングシステムの高速化を実現できる。
【００３０】
（第２実施形態）
以下、本発明に係る第２実施形態について説明する。上述した第１実施形態では、フルフラットニングされているか否かを判定し、それによってデコード処理部２０２の処理および出力経路を切り替える例を説明した。しかしながら、処理タイルにおいて、同一の画素値が連続する領域が非常に少ない場合は、リージョンデータを生成する負荷が増える一方、発行するコマンド数の削減が効かず、処理速度の低下を招いてしまう可能性がある。このような問題に対して、フルフラットニングされた中間データをレンダリング処理するにあたって、中間データに含まれるイメージデータのデータ形式に応じてデコード処理部２０２の処理および出力経路を切り替える構成でもよい。中間データに含まれるイメージデータのデータ形式とは、例えば可逆圧縮方式や非可逆圧縮方式といった圧縮方式を示す。以下、本実施形態における処理の流れを説明する。
【００３１】
図６は、本実施形態におけるデコード処理部２０２の処理の流れを示すフローチャートである。画像形成部１０４におけるデコード処理部２０２以外の処理に関しては、第１実施形態で説明した処理と同様であるため、説明を省略する。
【００３２】
まず、ページレンダリング開始後、動作制御部２００からのデコード処理開始の通知と、当該バンドのデータ形式の情報を受信し、フルフラットニングされたデータであるか否かの判定を行う。ＳＴＥＰ６００〜ＳＴＥＰ６０２の処理は、ＳＴＥＰ３００〜ＳＴＥＰ３０２の処理と同様である。続いて、受信した情報がフルフラットニングデータでなかった場合、ＳＴＥＰ６０８へ進み、処理タイルのデコード命令を受信して、画素単位（ワード単位）のコマンド転送を行うデコード処理を実施する。このＳＴＥＰ６０８〜ＳＴＥＰ６１０の処理も、ＳＴＥＰ３０９〜ＳＴＥＰ３１３の処理と同様である。一方、ＳＴＥＰ６０２において、フルフラットニングデータであった場合、ＳＴＥＰ６０３へ進み、デコード命令を受信する（ＳＴＥＰ６０３）。このとき、処理タイルのデコード命令は、少なくとも当該タイルのデータ形式である圧縮方式や、出力バッファへの書き込みアドレスか、それがわかるタイル位置情報などを含む。さらに、その圧縮データが可逆圧縮データであるか、あるいは非可逆圧縮データであるかの判定を行う（ＳＴＥＰ６０４）。可逆圧縮データではなかった場合、ＳＴＥＰ６０５へ進み、画素単位（ワード単位）のコマンド転送を行うデコード処理を実施する（ＳＴＥＰ６０５）。ＳＴＥＰ６０５の処理は、説明の都合上、図７（ａ）に示しているが、図７（ａ）のＳＴＥＰ７００〜ＳＴＥＰ７０２の処理は、図３におけるＳＴＥＰ３１０〜ＳＴＥＰ３１３の処理と同様である。一方、可逆圧縮データであった場合、ＳＴＥＰ６０６へ進み、リージョン単位のコマンド転送を行うデコード処理を実施する（ＳＴＥＰ６０６）。ＳＴＥＰ６０６の処理も、同様に図７（ｂ）に示しているが、図７（ｂ）のＳＴＥＰ７０３〜ＳＴＥＰ７０６の処理は、図３におけるＳＴＥＰ３０４〜ＳＴＥＰ３０７の処理と同様である。なお、ＤＭＡＣ２０５は、第１実施形態と同様に不図示のディスクリプタに従って動作してもよいし、コマンドに含まれる書き込みアドレスの情報を受け取って、動作してもよい。タイルのデコード処理が完了すると、バンドのデコード処理が完了したかどうかを判定し、完了していない場合はＳＴＥＰ６０３に戻って次のタイルの圧縮形式に従ってデコード処理を行う（ＳＴＥＰ６０７）。バンドのデコード処理が完了した場合は、動作制御部へバンドのデコード処理完了を通知し、ページ内の全バンドの処理が完了したかどうかを判定する（ＳＴＥＰ６１２）。ページ内の全バンドの処理が完了していない場合は、ＳＴＥＰ６００に戻り次のバンドの処理に移り、ページ内の全バンドの処理が完了した場合は、ページレンダリング完了として処理を終える。
【００３３】
フラットニングされたデータの中でも、グラフィックデータなどのようにリージョンが大きいデータは可逆圧縮方式が選択されやすい。また、自然画のように、同一画素値が連続しにくく、リージョンが小さいデータは非可逆圧縮方式が選択されやすい。そのため、リージョンが大きい可逆圧縮方式の場合はリージョンデータを生成して高速化を図り、リージョンが小さい非可逆圧縮方式の場合はリージョンデータを生成せずに画素毎にコマンド転送する。そうすることで、データに応じた最適な処理および出力経路を選択でき、デコード処理の高速化が実現できる。
【００３４】
以上説明したように、本実施形態によれば、処理タイルのイメージデータが可逆圧縮か非可逆圧縮かによって、デコード処理部２０２の処理及び出力経路を切り替えることで、レンダリングシステムの高速化を実現できる。
【００３５】
（第３実施形態）
以下、本発明に係る第３実施形態について説明する。上述した第２実施形態では、処理タイルのイメージデータが可逆圧縮か非可逆圧縮かによって、デコード処理部２０２の処理および出力経路を切り替える例を説明した。以下では、可逆圧縮領域と非可逆圧縮領域が混載するハイブリッド圧縮のデータ形式を含む中間データをレンダリング処理する場合における、デコード処理部２０２の処理の流れを説明する。
【００３６】
図８は、タイルのハイブリッド圧縮方式における、可逆圧縮画素と非可逆圧縮画素が占める領域を模した図である。図の簡略化のため、１６×１６画素の小さなタイルを示している。ハッチがかかった正方形は非可逆圧縮方式で圧縮される領域で、ハッチのない正方形が可逆圧縮方式で圧縮される領域である。ハイブリッド圧縮方式のイメージデータは、それぞれ別々にデコードされたのち、領域がどちらの圧縮方式で圧縮されているかの情報をもとに、デコードデータを選択して出力される。
【００３７】
本実施形態においては、この可逆圧縮領域が占める割合によってデコード処理部２０２の処理および出力経路を切り替える。図９は、本実施形態におけるデコード処理部２０２の処理の流れを示すフローチャートである。画像形成部１０４におけるデコード処理部２０２以外の処理に関しては、第１実施形態で説明した処理と同様であるため、説明を省略する。
【００３８】
また、デコード処理部２０２に関しても、バンド単位のデータ形式がフルフラットニングされたデータではなかった場合は、第２実施形態で示すフローと同様である。同様に、フルフラットニングされたデータであった場合においても、処理タイルが可逆圧縮データあるいは非可逆圧縮データであった場合は、第２実施形態で示すフローと同様である。一方、ＳＴＥＰ９０３で受信したデコード命令から、処理タイルのイメージデータのデータ形式がハイブリッド圧縮方式であると判定された場合は、ＳＴＥＰ９０８に進む。ＳＴＥＰ９０８では、可逆圧縮領域と非可逆圧縮領域がそれぞれ占める画素領域を比較する。可逆圧縮領域が非可逆圧縮領域よりも大きい場合は、リージョン単位のコマンド転送を行うデコード処理を実施する（ＳＴＥＰ９０９）。逆に、非可逆圧縮領域が可逆圧縮領域よりも大きい場合は、画素単位（ワード単位）のコマンド転送を行うデコード処理を実施する（ＳＴＥＰ９１０）。ハイブリッド圧縮方式において、可逆圧縮領域が非可逆圧縮領域よりも多いかどうかの判定は、ハイブリッドで圧縮するときに判定され、中間データに処理を切り替える情報として格納されていることが望ましい。
【００３９】
こうすることで、ハイブリット圧縮方式であっても、可逆圧縮領域が多くを占める場合はリージョン生成処理を行って高速化を図り、非可逆圧縮領域が多くを占める場合はリージョンを生成するための処理を省き、高速化することができる。しかしながら、ハイブリッド圧縮領域は必ず画素単位（ワード単位）のコマンド転送を行うデコード処理を実施してもよいし、リージョン単位のコマンド転送を行うデコード処理を行ってもよい。また、予め閾値を設けて、タイル内に含まれる可逆圧縮領域が該閾値を超えるか否かでデコード処理部２０２の処理および出力経路を切り替えてもよい。こうすることで、中間データに含まれるデータ形式に合わせた最適な処理を選択することができる。
【００４０】
また、本実施形態においては、タイル単位にデコード処理部２０２の処理および出力経路を切り替える例を説明したが、ハイブリッド圧縮データのタイルライン単位に、デコード処理部２０２の処理および出力経路を切り替えてもよい。図１０は、ハイブリッド圧縮データのタイルに対して、処理１か、処理２か、をライン単位に示した図である。ここで、処理１は、各ラインの非可逆圧縮画素の占める画素数によって、画素単位（ワード単位）のコマンド転送を行うデコード処理である。また、処理２は、リージョン単位のコマンド転送を行うデコード処理である。このように、予め閾値を設けて、タイルラインに含まれる可逆圧縮の画素数が該閾値を超えるか否かでデコード処理部２０２の処理および出力経路を切り替えてもよい。
【００４１】
以上説明したように、本実施形態によれば、処理タイルのイメージデータがハイブリッド圧縮方式であっても、デコード処理部２０２の処理及び出力経路を最適に切り替えて、レンダリングシステムの高速化を実現できる。
【００４２】
（第４実施形態）
以下、本発明に係る第４実施形態について説明する。上述した第１実施形態では、フルフラットニングされているか否かを判定し、それによってデコード処理部２０２の処理および出力経路を切り替える例を説明した。当該フルフラットニングにより、ページ単位に全面ラスタ画像化された画素データは、モノクロ画像であれば１画素８ビット、ＲＧＢ画像であれば１画素２４ビット、ＣＭＹＫ画像であれば１画素３２ビットで構成される。
【００４３】
さて、一般的な画像形成装置において、画像処理部１０５は、画像形成部１０４が生成したラスタ画像に対して所定の画像処理を施す際に、各画素の属性データを参照し、該属性に適した画像処理を行う事で、印字データの高画質化を実現している。図１１は、各画素に付与される属性データを示しており、本実施形態においては、背景、イメージ、グラフィック、テキストの４種類で、即ち１画素２ビットで構成される。
【００４４】
フルフラットニングにより、ページ単位に全面ラスタ画像化された画素データが、画像データと属性データを持つ場合、画像データと属性データは別プレーンとなり、１画素あたりのビット深度が異なる２ページのデータとして、ＤＲＡＭ１０２に展開される。図１２は、フルフラットニングデータが、画像データと属性データを持つ場合に、それぞれ別プレーンとしてＤＲＡＭに展開されている状態を示す概念図である。画像データがＲＧＢ画像であれば、１コンポーネントあたり８ビットで、１画素２４ビットで構成される。一方、属性データは、図１１で示した通り、１画素２ビットで構成される。
【００４５】
図１３は、属性データが１画素２ビットの場合に、デコード処理部２０２がデータ送受信部２０４に対して生成するコマンドの例である。コマンドは、２ビットのｉｄと３０ビットのａｄｄｒｅｓｓ、各２ビットのａｔｔｒｉｂｕｔｅ（図中ではａｔｔｒに短縮表記）０〜１５のフィールドで構成される。ｉｄは、例えばデータ送受信部２０４が書き込みリクエストなのか読み出しリクエストなのかを識別する情報であり、ａｄｄｒｅｓｓはデータ送受信部２０４がＤＲＡＭ１０２に書き込む中間バッファの書き込みアドレスを示す。ａｔｔｒｉｂｕｔｅ０〜１５のそれぞれは、各画素の属性データを示しており、即ち当該１コマンドで、１６画素分の属性データを送信することができる。もちろん、コマンドを構成するフィールドの要素数やビット幅はこれに限られるものではない。
【００４６】
図１４は、デコード処理部２０２がリージョン展開処理部２０３に対して生成するコマンドの例である。コマンドは、４ビットのｉｄと各６ビットのｓｔａｒｔＸ、ｅｎｄＸ、Ｙ、２ビットのａｔｔｒｉｂｕｔｅ（図中ではａｔｔｒに短縮表記）のフィールドで構成される。ｉｄは、例えば当該コマンドの種類を示す情報である。ｓｔａｒｔＸ、ｅｎｄＸは、それぞれ６４×６４画素で構成されるタイル内の水平方向の画素位置で、リージョンの開始位置と終了位置を示す。リージョン開始位置と終了位置で挟まれる領域は、当該コマンドのａｔｔｒｉｂｕｔｅが示す属性データから成ることを示す。なお、本実施形態においては、リージョンを「ライン上の連続領域」と定義しており、同一画素値の画素がタイルラインを跨った場合は別リージョンとして扱うが、同一画素値の画素がタイルラインを跨った場合でも一つのリージョンとして扱う仕様も考えられる。その場合は、図１４で示されるｒｅｓｅｒｖｅｄ領域にタイル内の垂直方向のリージョン終了位置を示すフィールド（Ｙ）を設けてもよい。Ｙで示す垂直方向の画素位置と、ｅｎｄＸが示す水平方向の画素位置を用いて、同一画素値の画素がタイルラインを跨った場合でも一つのリージョンとして扱うことができる。
【００４７】
上記の通り、画像データと比較して、属性データのデータサイズは著しく小さいため、画素単位のコマンド転送でも、１コマンドで１６画素を送信する事ができ、十分に高速と言える。これに対し、リージョン単位のコマンド転送では、１６画素以上のリージョンでない限り、コマンド数の削減にはならず、リージョンデータを生成する負荷も増え、処理速度の低下を招いてしまう可能性がある。このような問題に対して、フルフラットニングされた中間データをレンダリング処理するにあたって、画像データであるか属性データであるかに応じて、デコード処理部２０２の処理および出力経路を切り替える構成でもよい。以下、本実施形態における処理の流れを説明する。
【００４８】
図１５は、本実施形態におけるデコード処理部２０２の処理の流れを示すフローチャートである。画像形成部１０４におけるデコード処理部２０２以外の処理に関しては、第１実施形態で説明した処理と同様であるため、説明を省略する。
【００４９】
まず、ページレンダリング開始後、動作制御部２００からのデコード処理開始の通知と、当該バンドのデータ形式の情報を受信し、フルフラットニングされたデータであるか否かの判定を行う。ＳＴＥＰ１５００〜ＳＴＥＰ１５０２の処理は、ＳＴＥＰ３００〜ＳＴＥＰ３０２の処理と同様である。続いて、受信した情報がフルフラットニングデータでなかった場合、ＳＴＥＰ１５１０へ進み、処理タイルのデコード命令を受信して、画素単位のコマンド転送を行うデコード処理を実施する。このＳＴＥＰ１５１０〜ＳＴＥＰ１５１２の処理も、ＳＴＥＰ３０９〜ＳＴＥＰ３１３の処理と同様である。一方、ＳＴＥＰ１５０２において、フルフラットニングデータであった場合、ＳＴＥＰ１５０３に進み、処理しようとしている全面ラスタ画像のデータ種別が、画像データプレーンであるか属性データプレーンであるか、判定を行う。
【００５０】
この判定に特別な情報は不要であり、例えば属性付きのフルフラットニングデータを処理する場合は、１ページ目が画像データで、２ページ目が属性データといったように、仕様を定義しておけばよい。あるいは、奇数バンド目が画像データで、偶数バンド目が属性データとする事も考えられる。
【００５１】
画像データである場合は、ＳＴＥＰ１５０４へ進み、デコード命令を受信し（ＳＴＥＰ１５０４）、リージョン単位のコマンド転送を行うデコード処理を実施する（ＳＴＥＰ１５０５）。タイルのデコード処理が完了すると、バンドのデコード処理が完了したかどうかを判定し（ＳＴＥＰ１５０６）、完了していない場合はＳＴＥＰ１５０４に戻って次のタイルのデコード処理を行う。一方、属性データである場合は、ＳＴＥＰ１５０７へ進み、デコード命令を受信し（ＳＴＥＰ１５０７）、画素単位のコマンド転送を行うデコード処理を実施する（ＳＴＥＰ１５０８）。タイルのデコード処理が完了すると、バンドのデコード処理が完了したかどうかを判定し（ＳＴＥＰ１５０９）、完了していない場合はＳＴＥＰ１５０７に戻って次のタイルのデコード処理を行う。バンドのデコード処理が完了した場合は、画像データでも属性データでも同様に、動作制御部へバンドのデコード処理完了を通知し（ＳＴＥＰ１５１３）、ページ内の全バンドの処理が完了したかどうかを判定する（ＳＴＥＰ１５１４）。ページ内の全バンドの処理が完了していない場合は、ＳＴＥＰ１５００に戻り次のバンドの処理に移り、ページ内の全バンドの処理が完了した場合は、ページレンダリング完了として処理を終える。なお、ＤＭＡＣ２０５は、第１実施形態と同様に不図示のディスクリプタに従って動作してもよいし、コマンドに含まれる書き込みアドレス情報を受け取って、動作してもよい。
【００５２】
フラットニングされたデータの中でも、データサイズが大きい画像データでは、リージョン圧縮による高速化を大抵は見込める。一方で、データサイズが小さい属性データでは、リージョン圧縮による高速化を見込めないばかりか、逆に処理速度の低下を招く場合がある。そのため、データサイズが大きい画像データはリージョンデータを生成して高速化を図り、データサイズが小さい属性データはリージョンデータを生成せずに画素毎にコマンド転送する。そうすることで、データに応じた最適な処理および出力経路を選択でき、デコード処理の高速化が実現できる。
【００５３】
以上説明したように、本実施形態によれば、フルフラットニングされた中間データにおいて、画像データであるか属性データであるかに応じて、デコード処理部の処理及び出力経路を切り替えることで、レンダリングシステムの高速化を実現できる。
【００５４】
（第５実施形態）
以下、本発明に係る第５実施形態について説明する。上述した第４実施形態では、フルフラットニングされた中間データにおいて、画像データであるか属性データであるかに応じて、デコード処理部２０２の処理および出力経路を切り替える例を説明した。その際に、データサイズが小さい属性データでは、リージョン圧縮による高速化が見込めないため、リージョンデータを生成せずに画素毎にコマンド転送している。しかしながら、例えば自然画像が印字領域の全面に配置される全面イメージなど、同一の属性値（全面イメージであればイメージ属性）が連続するケースでは、属性データであってもリージョン圧縮による高速化を見込める。このような問題に対して、フルフラットニングされた中間データをレンダリング処理するにあたって、属性データである場合に、処理されるタイルの属性パターンに応じて、デコード処理部２０２の処理および出力経路を切り替える構成でもよい。以下、本実施形態における処理の流れを説明する。
【００５５】
図１６は、本実施形態におけるデコード処理部２０２の処理の流れを示すフローチャートである。画像形成部１０４におけるデコード処理部２０２以外の処理に関しては、第１実施形態で説明した処理と同様であるため、説明を省略する。また、デコード処理部２０２の処理についても、ＳＴＥＰ１６０３で属性データと判定された場合（ＳＴＥＰ１６０７〜ＳＴＥＰ１６１１）以外は、第４実施形態で説明した処理と同様であるため、説明を省略する。
【００５６】
ＳＴＥＰ１６０３において、処理しようとしている全面ラスタ画像のデータ種別が、画像データプレーンであるか属性データプレーンであるか、判定を行う。属性データである場合は、ＳＴＥＰ１６０７へ進み、デコード命令を受信し（ＳＴＥＰ１６０７）、処理タイル内にテキスト属性が含まれるか判定する（ＳＴＥＰ１６０８）。処理タイル内にテキスト属性が含まれる場合は、画素単位のコマンド転送を行うデコード処理を実施し（ＳＴＥＰ１６０９）、テキスト属性が含まれない場合は、リージョン単位のコマンド転送を行うデコード処理を実施する（ＳＴＥＰ１６１０）。タイルのデコード処理が完了すると、バンドのデコード処理が完了したかどうかを判定し（ＳＴＥＰ１６１１）、完了していない場合はＳＴＥＰ１６０７に戻って次のタイルのデコード処理を行う。
【００５７】
ＳＴＥＰ１６０８での判定方法は、１タイル分のバッファメモリ（６４×６４画素×２ビット）を保持し、１タイルのデコード結果の中にテキスト属性が含まれるかどうか、デコード処理しながら確認していく方法が考えられる。あるいは、圧縮時に判定され、中間データに処理を切り替える情報として格納されているものを参照してもよい。図１７は、テキスト属性を含むタイルを示す概念図である。属性情報は画素単位で付与され、ちょうど図１７の漢字部分における画素の属性がテキストあり、該文字の画素を含むタイルがテキスト属性を含むタイルと判定される。
【００５８】
フラットニングされた属性データの中でも、図１１における背景属性、イメージ属性、グラフィック属性は、一定の大きさをもつ領域に付与され、リージョンが大きくなる傾向が強い。例えば、自然画のように、同一画素が連続しにくい領域であっても、属性としてはイメージ属性で連続する事になる。その一方で、テキスト属性は、テキストが描画された部分のみに付与されるため、一定の大きさをもつ領域というよりは、離散的に配置される傾向が強く、その結果として、テキスト属性を含むタイルは、リージョンが小さいデータになりやすい。そのため、テキスト属性を含むタイルの場合は、リージョンデータを生成せずに画素毎にコマンド転送し、テキスト属性を含まない（背景属性、イメージ属性、グラフィック属性を含む）タイルは、リージョンデータを生成して高速化を図る。そうすることで、データに応じた最適な処理および出力経路を選択でき、デコード処理の高速化が実現できる。
【００５９】
また、本実施形態においては、タイル単位にデコード処理部２０２の処理および出力経路を切り替える例を説明したが、６４画素のタイルライン単位に、デコード処理部２０２の処理および出力経路を切り替えてもよい。図１８は、６４×６４画素のタイルに対して、各ラインにおえけるテキスト属性の有無に応じて、画素単位のコマンド転送を行うデコード処理（処理１）か、リージョン単位のコマンド転送を行うデコード処理（処理２）か、をライン単位に示した図である。説明の都合上、最も細かい描画単位は４×４画素とし、解像度を落としているが、図１８における、１ライン〜４ラインにはテキスト属性が含まれず、処理２が選択される。引き続きそれ以降、５ライン〜５６ラインにはテキスト属性が含まれ、処理１が選択され、５７〜６４ラインにはテキスト属性が含まれず、処理２が選択される。
【００６０】
以上説明したように、本実施形態によれば、フルフラットニングした中間データにおいて、属性データであった場合に、処理タイルないし処理ラインにテキスト属性を含むか否かに応じて、デコード処理部２０２の処理及び出力経路を切り替える。こうする事により、レンダリングシステムの高速化を実現できる。
【００６１】
（第６実施形態）
以下、本発明に係る第６実施形態について説明する。上述した第５実施形態では、フルフラットニングされた中間データにおいて、属性データであった場合に、処理タイルないし処理ラインにテキスト属性を含むか否かに応じて、デコード処理部２０２の処理及び出力経路を切り替える例を説明した。その際に、テキスト属性を含む場合はリージョンが小さくなりやすいため、リージョンデータを生成せずに画素毎にコマンド転送し、テキスト属性を含まない場合はリージョンが大きくなりやすいため、リージョン圧縮による高速化を図っている。即ち、テキスト属性の有無からリージョンの大きさを推測しているわけだが、直接的にリージョンの大きさを参照し、デコード処理部２０２の処理及び出力経路を切り替える構成でもよい。以下、本実施形態における処理の流れを説明する。
【００６２】
図１９は、本実施形態におけるデコード処理部２０２の処理の流れを示すフローチャートである。画像形成部１０４におけるデコード処理部２０２以外の処理に関しては、第１実施形態で説明した処理と同様であるため、説明を省略する。また、デコード処理部２０２の処理についても、ＳＴＥＰ１９０３で属性データと判定された場合（ＳＴＥＰ１９０７〜ＳＴＥＰ１９１１）以外は、第４実施形態で説明した処理と同様であるため、説明を省略する。ＳＴＥＰ１９０３において、処理しようとしている全面ラスタ画像のデータ種別が、画像データプレーンであるか属性データプレーンであるか、判定を行う。属性データである場合は、ＳＴＥＰ１９０７へ進み、デコード命令を受信し（ＳＴＥＰ１９０７）、処理タイル内のリージョン数が予め設けた閾値以上であるか否かを判定する（ＳＴＥＰ１９０８）。処理タイル内のリージョン数が該閾値以上である場合は、画素単位のコマンド転送を行うデコード処理を実施し（ＳＴＥＰ１９０９）、該閾値未満である場合は、リージョン単位のコマンド転送を行うデコード処理を実施する（ＳＴＥＰ１９１０）。タイルのデコード処理が完了すると、バンドのデコード処理が完了したかどうかを判定し（ＳＴＥＰ１９１１）、完了していない場合はＳＴＥＰ１９０７に戻って次のタイルのデコード処理を行う。
【００６３】
ＳＴＥＰ１９０８での判定方法は、１タイル分のバッファメモリ（６４×６４画素×２ビット）を保持し、デコード処理しながらリージョン数をカウントしていき、閾値との大小比較を行う方法が考えられる。あるいは、圧縮時にカウントされ、処理を切り替える情報として中間データに格納されているリージョン数を参照し、閾値との大小比較を行ってもよい。なお、当該閾値は静的に定められていてもよいし、あるいは例えばＣＰＵ１０１から、画像形成部１０４が保持する不図示の設定レジスタを経由して、デコード処理部２０２の外部端子に入力されても構わない。具体的な閾値の値としては、例えば以下の算出方法が考えられる。図１３で示した通り、属性データの場合は画素単位のコマンド転送でも、１コマンドで１６画素を送信することができ、１タイルに含まれる４０９６（＝６４×６４）画素を全て画素単位にコマンド転送しても、２５６（＝４０９６÷１６）回のコマンド転送となる。従って、処理タイル内のリージョン数が、２５６以上である場合は、リージョン単位でコマンド転送してもコマンド数の削減にはならず、リージョンデータを生成する負荷も増え、処理速度の低下を招いてしまう可能性がある。従って、閾値としては２５６を設定してもよいし、リージョンデータを生成する負荷を鑑みて、マージンを含めた２５６より小さな値を設定することも考えられる。以上より、リージョン数が閾値以上の場合は、リージョンデータを生成せずに画素毎にコマンド転送し、リージョン数が閾値未満である場合は、リージョンデータを生成して高速化を図る。そうすることで、データに応じた最適な処理および出力経路を選択でき、デコード処理の高速化が実現できる。
【００６４】
また、本実施形態においては、タイル単位にデコード処理部２０２の処理および出力経路を切り替える例を説明したが、６４画素のタイルライン単位に、デコード処理部２０２の処理および出力経路を切り替えてもよい。図２０は、６４×６４画素のタイルに対して、各ラインのリージョン数が閾値以上であるか否かに応じて、画素単位のコマンド転送を行うデコード処理（処理１）か、リージョン単位のコマンド転送を行うデコード処理（処理２）か、をライン単位に示した図である。閾値の値は、例えば以下のように算出すればよい。図１３で示した通り、属性データの場合は画素単位のコマンド転送でも、１コマンドで１６画素を送信することができ、１ラインに含まれる６４画素を全て画素単位にコマンド転送しても、４（＝６４÷１６）回のコマンド転送となる。従って、処理ライン内のリージョン数が、４以上である場合は、リージョン単位でコマンド転送してもコマンド数の削減にはならず、リージョンデータを生成する負荷も増え、処理速度の低下を招いてしまう可能性がある。以上より、閾値としては４を設定している。説明の都合上、最も細かい描画単位は４×４画素とし、解像度を落としているが、図２０における、１ライン〜８ラインはリージョン数が４未満であり、処理２が選択される。引き続きそれ以降、９ライン〜５２ラインはリージョン数が４以上であり、処理１が選択され、５３ライン〜６４ラインはリージョン数が４未満であり、処理２が選択される。以上説明したように、本実施形態によれば、処理タイルないし処理ラインのリージョン数が予め設けた閾値以上であるか否かに応じて、デコード処理部２０２の処理及び出力経路を切り替える。こうする事により、レンダリングシステムの高速化を実現できる。
【符号の説明】
【００６５】
１００  画像形成装置
１０１  ＣＰＵ
１０２  ＤＲＡＭ
１０３  画像入力部
１０４  画像形成部
１０５  画像処理部
１０６  印字処理部
１０７  バス
２００  動作制御部
２０１  合成処理部
２０２  デコード処理部
２０３  リージョン展開処理部
２０４  データ送受信部
２０５  ＤＭＡＣ
２０６  デコード手段
２０７  出力経路切替手段
２０８  リージョン生成手段
２０９  キャッシュ
【図１】
2020090075.tif 000003
【図２】
2020090075.tif 000004
【図３】
2020090075.tif 000005
【図４】
2020090075.tif 000006
【図５】
2020090075.tif 000007
【図６】
2020090075.tif 000008
【図７】
2020090075.tif 000009
【図８】
2020090075.tif 000010
【図９】
2020090075.tif 000011
【図１０】
2020090075.tif 000012
【図１１】
2020090075.tif 000013
【図１２】
2020090075.tif 000014
【図１３】
2020090075.tif 000015
【図１４】
2020090075.tif 000016
【図１５】
2020090075.tif 000017
【図１６】
2020090075.tif 000018
【図１７】
2020090075.tif 000019
【図１８】
2020090075.tif 000020
【図１９】
2020090075.tif 000021
【図２０】
2020090075.tif 000022