(57)【要約】      （修正有）【課題】コストの低減と処理の高速化とを両立した画像処理を実現する。【解決手段】画像形成装置１は、ＤＬデータ６１を読み出して印字データ６２を生成するための描画処理を行うハードウェアアクセラレータ２８と、ＤＬデータ６１のメモリアドレスをハードウェアアクセラレータ２８へ入力するＣＰＵと、を備え、少なくともハードウェアアクセラレータ２８又はＣＰＵのいずれか一方は、ＤＬデータ６１に基づいて描画領域を求め、複数の描画領域の相関に基づいて複数の描画領域を包括する描画領域を生成する。【選択図】図４
2011016317.tif 000002
【特許請求の範囲】
【請求項１】
中間言語データに基づいて印刷用のデータを生成する画像処理装置において、
前記中間言語データを読み出して前記印刷用のデータを生成するための描画処理を行うハードウェアアクセラレータと、
前記中間言語データ及び前記印刷用のデータを格納するメモリと、
前記メモリにおける前記中間言語データのメモリアドレスを前記ハードウェアアクセラレータへ入力する制御部と、を備え、
少なくとも前記ハードウェアアクセラレータ又は前記制御部のいずれか一方は、前記中間言語データに基づいて、前記描画処理を行う範囲に対応する描画領域を求め、複数の前記描画領域の相関に基づいて複数の前記描画領域を包括する包括描画領域を生成し、
前記ハードウェアアクセラレータは、前記包括描画領域内について印刷用のデータを生成して前記メモリに転送することを特徴とする画像処理装置。
【請求項２】
少なくとも前記ハードウェアアクセラレータ又は前記制御部のいずれか一方は、前記描画領域の一部又は全部が重なる複数の前記描画領域を統合することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
少なくとも前記ハードウェアアクセラレータ又は前記制御部のいずれか一方は、複数の前記描画領域の分断の有無に基づいて前記包括描画領域を生成することを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
少なくとも前記ハードウェアアクセラレータ又は前記制御部のいずれか一方は、分断された複数の前記描画領域間の距離に基づいて前記包括描画領域を生成することを特徴とする請求項３に記載の画像処理装置。
【請求項５】
少なくとも前記ハードウェアアクセラレータ又は前記制御部のいずれか一方は、分断された複数の前記描画領域間の距離が所定の距離以下であった場合に分断された複数の前記描画領域を包括する前記包括描画領域を生成することを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記中間言語データに基づいて、前記描画処理を行う範囲を示す描画領域を求め、複数の前記描画領域の相関に基づいて前記包括描画領域を生成する処理を前記ハードウェアアクセラレータのみが行うことを特徴とする請求項１から５のいずれか一項に記載の画像処理装置。
【請求項７】
前記描画領域は、前記描画処理を行うために最低限必要な範囲を含む矩形領域であることを特徴とする請求項１から６のいずれか一項に記載の画像処理装置。
【請求項８】
前記ハードウェアアクセラレータによる前記描画処理は複数ライン単位であることを特徴とする請求項１から７のいずれか一項に記載の画像処理装置。
【請求項９】
前記ハードウェアアクセラレータによる前記描画処理はライン単位であることを特徴とする請求項１から７のいずれか一項に記載の画像処理装置。
【請求項１０】
ハードウェアアクセラレータに対して外部に設けられたメモリに格納された中間言語データの、メモリアドレスに基づいて中間言語データを読み出して印刷用のデータを生成するための描画処理を行うハードウェアアクセラレータであって、
前記中間言語データに基づいて、前記描画処理を行う範囲に対応する描画領域を求め、複数の前記描画領域の相関に基づいて複数の前記描画領域を包括する包括描画領域を生成し、当該包括描画領域内について印刷用のデータを生成して前記メモリに転送することを特徴とするハードウェアアクセラレータ。
【請求項１１】
前記描画領域の一部又は全部が重なる複数の前記描画領域を統合することを特徴とする請求項１０に記載のハードウェアアクセラレータ。
【請求項１２】
複数の前記描画領域の分断の有無に基づいて前記包括描画領域を生成することを特徴とする請求項１０又は１１に記載のハードウェアアクセラレータ。
【請求項１３】
分断された複数の前記描画領域間の距離に基づいて前記包括描画領域を生成することを特徴とする請求項１２に記載のハードウェアアクセラレータ。
【請求項１４】
分断された複数の前記描画領域間の距離が所定の距離以下であった場合に分断された複数の前記描画領域を包括する前記包括描画領域を生成することを特徴とする請求項１３に記載のハードウェアアクセラレータ。
【請求項１５】
前記描画領域は、前記描画処理を行うために最低限必要な範囲を含む矩形領域であることを特徴とする請求項１０から１４のいずれか一項に記載のハードウェアアクセラレータ。
【請求項１６】
前記ハードウェアアクセラレータによる前記描画処理は複数ライン単位であることを特徴とする請求項１０から１５のいずれか一項に記載のハードウェアアクセラレータ。
【請求項１７】
前記ハードウェアアクセラレータによる前記描画処理はライン単位であることを特徴とする請求項１０から１５のいずれか一項に記載のハードウェアアクセラレータ。
【請求項１８】
中間言語データに基づいて印刷用のデータを生成する画像処理方法であって、
制御部が前記中間言語データのメモリアドレスをハードウェアアクセラレータへ入力する工程と、
前記ハードウェアアクセラレータが前記中間言語を読み出して前記印刷用のデータを生成するための描画処理を行う工程と、
少なくとも前記ハードウェアアクセラレータ又は制御部のいずれか一方が、前記中間言語データに基づいて、前記描画処理を行う範囲に対応する描画領域を求め、複数の前記描画領域の相関に基づいて複数の前記描画領域を包括する包括描画領域を生成することを特徴とする工程と、
を含むことを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、ハードウェアアクセラレータ及び画像処理方法に関する。
【背景技術】
【０００２】
近年、ＭＦＰ（Multi Function Peripheral）やプリンタ等の画像形成装置に一層の低価格化が求められ、コストを低く抑えることを重視した製品の開発の必要性が高まっている。コストを低く抑えるための一手法として、画像形成装置に搭載するＣＰＵを安価なものとする手法がある。しかし、安価なＣＰＵは演算性能が低いので、単に安価なＣＰＵを用いるのみでは、ＣＰＵの処理速度が低下することにより、画像形成装置の動作の低速化等、画像形成装置の性能低下を生じてしまう。
【０００３】
そこで、ＣＰＵの処理負荷を小さくする方法が考案されている。ＣＰＵの処理負荷を小さくする方法の一つとして、例えば、中間言語データから印字データを生成する処理（ラスタライズ処理）において、色及び濃度が同一である隣接した矩形領域を所定数まとめて多角形領域を作成することにより演算処理量の低減及びメモリ消費量の低減を図る技術がある（例えば特許文献１）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００２−１５３３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に記載の技術では、ＣＰＵの処理負荷を十分に低減できなかった。なぜならば、演算処理量を低減させるための多角形領域を作成するためには、色及び濃度が同一である隣接した矩形領域が所定数存在することを条件とするため、該条件を満たさないラスタライズ処理の処理負荷を軽減することはできないためである。
【０００６】
一方、ＣＰＵの処理負荷を小さくする他の方法として、ラスタライズ処理等の画像処理の一部を専用のハードウェア（以下、専用のハードウェアを「ハードウェアアクセラレータ」と記載する）に行わせてＣＰＵの処理負担を軽減することにより処理の高速化を実現する方法が考案されている。
【０００７】
しかしながら、単にＣＰＵがソフトウェアで行っていた処理をハードウェアアクセラレータによる処理に置き換えるだけでは、処理の高速化やコストの低減を実現できない。
処理の高速化を実現できない理由としては、画像処理を行うとき、画像形成装置のメモリとハードウェアアクセラレータ内のローカルメモリとの間で大量のデータの入出力を伴うことにより、画像形成装置のメモリとハードウェアアクセラレータ内のローカルメモリとの間におけるデータ転送量が増大し、データ転送にかかる時間が長大化して処理速度が低下するためである。
コストの低減を図れない理由としては、前述の画像形成装置のメモリとハードウェアアクセラレータ内のローカルメモリとの間における大量のデータの入出力を行うために、ハードウェアアクセラレータ内のローカルメモリを大容量とする必要が生じるためである。大容量のローカルメモリを有するハードウェアアクセラレータは高価であり、ハードウェアアクセラレータを用いることによるコストの低減を相殺してしまう。
【０００８】
本発明の課題は、コストの低減と処理の高速化とを両立した画像処理を実現することである。
【課題を解決するための手段】
【０００９】
請求項１に記載の発明は、中間言語データに基づいて印刷用のデータを生成する画像処理装置において、前記中間言語データを読み出して前記印刷用のデータを生成するための描画処理を行うハードウェアアクセラレータと、前記中間言語データ及び前記印刷用のデータを格納するメモリと、前記メモリにおける前記中間言語データのメモリアドレスを前記ハードウェアアクセラレータへ入力する制御部と、を備え、少なくとも前記ハードウェアアクセラレータ又は前記制御部のいずれか一方は、前記中間言語データに基づいて、前記描画処理を行う範囲に対応する描画領域を求め、複数の前記描画領域の相関に基づいて複数の前記描画領域を包括する包括描画領域を生成し、前記ハードウェアアクセラレータは、前記包括描画領域内について印刷用のデータを生成して前記メモリに転送することを特徴とする。
【００１０】
請求項２に記載の発明は、請求項１に記載の画像処理装置であって、少なくとも前記ハードウェアアクセラレータ又は前記制御部のいずれか一方は、前記描画領域の一部又は全部が重なる複数の前記描画領域を統合することを特徴とする。
【００１１】
請求項３に記載の発明は、請求項１又は２に記載の画像処理装置であって、少なくとも前記ハードウェアアクセラレータ又は前記制御部のいずれか一方は、複数の前記描画領域の分断の有無に基づいて前記包括描画領域を生成することを特徴とする。
【００１２】
請求項４に記載の発明は、請求項３に記載の画像処理装置であって、少なくとも前記ハードウェアアクセラレータ又は前記制御部のいずれか一方は、分断された複数の前記描画領域間の距離に基づいて前記包括描画領域を生成することを特徴とする。
【００１３】
請求項５に記載の発明は、請求項４に記載の画像処理装置であって、少なくとも前記ハードウェアアクセラレータ又は前記制御部のいずれか一方は、分断された複数の前記描画領域間の距離が所定の距離以下であった場合に分断された複数の前記描画領域を包括する前記包括描画領域を生成することを特徴とする。
【００１４】
請求項６に記載の発明は、請求項１から５のいずれか一項に記載の画像処理装置であって、前記中間言語データに基づいて、前記描画処理を行う範囲を示す描画領域を求め、複数の前記描画領域の相関に基づいて前記包括描画領域を生成する処理を前記ハードウェアアクセラレータのみが行うことを特徴とする。
【００１５】
請求項７に記載の発明は、請求項１から６のいずれか一項に記載の画像処理装置であって、前記描画領域は、前記描画処理を行うために最低限必要な範囲を含む矩形領域であることを特徴とする。
【００１６】
請求項８に記載の発明は、請求項１から７のいずれか一項に記載の画像処理装置であって、前記ハードウェアアクセラレータによる前記描画処理は複数ライン単位であることを特徴とする。
【００１７】
請求項９に記載の発明は、請求項１から７のいずれか一項に記載の画像処理装置であって、前記ハードウェアアクセラレータによる前記描画処理はライン単位であることを特徴とする。
【００１８】
請求項１０に記載の発明は、ハードウェアアクセラレータに対して外部に設けられたメモリに格納された中間言語データの、メモリアドレスに基づいて中間言語データを読み出して印刷用のデータを生成するための描画処理を行うハードウェアアクセラレータであって、前記中間言語データに基づいて、前記描画処理を行う範囲に対応する描画領域を求め、複数の前記描画領域の相関に基づいて複数の前記描画領域を包括する包括描画領域を生成し、当該包括描画領域内について印刷用のデータを生成して前記メモリに転送することを特徴とする。
【００１９】
請求項１１に記載の発明は、請求項１０に記載のハードウェアアクセラレータであって、前記描画領域の一部又は全部が重なる複数の前記描画領域を統合することを特徴とする。
【００２０】
請求項１２に記載の発明は、請求項１０又は１１に記載のハードウェアアクセラレータであって、複数の前記描画領域の分断の有無に基づいて前記包括描画領域を生成することを特徴とする。
【００２１】
請求項１３に記載の発明は、請求項１２に記載のハードウェアアクセラレータであって、分断された複数の前記描画領域間の距離に基づいて前記包括描画領域を生成することを特徴とする。
【００２２】
請求項１４に記載の発明は、請求項１３に記載のハードウェアアクセラレータであって、分断された複数の前記描画領域間の距離が所定の距離以下であった場合に分断された複数の前記描画領域を包括する前記包括描画領域を生成することを特徴とする。
【００２３】
請求項１５に記載の発明は、請求項１０から１４のいずれか一項に記載のハードウェアアクセラレータであって、前記描画領域は、前記描画処理を行うために最低限必要な範囲を含む矩形領域であることを特徴とする。
【００２４】
請求項１６に記載の発明は、請求項１０から１５のいずれか一項に記載のハードウェアアクセラレータであって、前記ハードウェアアクセラレータによる前記描画処理は複数ライン単位であることを特徴とする。
【００２５】
請求項１７に記載の発明は、請求項１０から１５のいずれか一項に記載のハードウェアアクセラレータであって、前記ハードウェアアクセラレータによる前記描画処理はライン単位であることを特徴とする。
【００２６】
請求項１８に記載の発明は、中間言語データに基づいて印刷用のデータを生成する画像処理方法であって、制御部が前記中間言語データのメモリアドレスをハードウェアアクセラレータへ入力する工程と、前記ハードウェアアクセラレータが前記中間言語を読み出して前記印刷用のデータを生成するための描画処理を行う工程と、少なくとも前記ハードウェアアクセラレータ又は制御部のいずれか一方が、前記中間言語データに基づいて、前記描画処理を行う範囲に対応する描画領域を求め、複数の前記描画領域の相関に基づいて複数の前記描画領域を包括する包括描画領域を生成する工程と、を含むことを特徴とする。
【発明の効果】
【００２７】
本発明によれば、コストの低減と処理の高速化とを両立した画像処理を実現することができる。
【図面の簡単な説明】
【００２８】
【図１】本発明による画像処理装置を有する画像形成装置を含むネットワーク構成図である。
【図２】コンピュータの主要構成を示すブロック図である。
【図３】画像形成装置の主要構成を示すブロック図である。
【図４】画像形成装置による画像処理の工程及び機能の一例を示す機能ブロック図である。
【図５】ハードウェアアクセラレータがＤＬデータ及び印字データのうち描画領域Ｆに対応する部分をメモリからローカルメモリへコピーする処理を示す概念説明図である。
【図６】ハードウェアアクセラレータがＤＬデータに基づくオブジェクトを描画する処理を示す概念説明図である。
【図７】ハードウェアアクセラレータから出力された描画領域のデータがメモリの印字データへ反映される処理を示す概念説明図である。
【図８】１バンド分の描画内容の一例を示す説明図である。
【図９】図８に示す描画内容を示すＤＬデータに基づいて求められた描画領域の一例を示す説明図である。
【図１０】ラスタライズ処理におけるハードウェアアクセラレータの処理の流れを示すフローチャートである。
【図１１】図１０のステップＳ４に示す、最適な描画領域を求める処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００２９】
以下、図を参照して本発明の実施の形態の例を詳細に説明する。
図１は、本発明による画像処理装置を有する画像形成装置１を含むネットワーク構成図である。
【００３０】
画像形成装置１、１、１は、回線３を介してコンピュータ２、２と通信可能に接続されている。
回線３は、画像形成装置１、１、１及びコンピュータ２、２によるネットワークを構成する。回線３は、コンピュータ２、２及び画像形成装置１、１、１を通信可能に接続するものであればその形態を問わない。例えば、回線３は、イーサネット（登録商標）、同軸ケーブル、光ファイバー等の有線接続回線や、無線通信を実現するための各種規格等、そのいずれか又は複数の組み合わせによってよい。また、回線３は、ＬＡＮ（Local Area Network）、インターネット、その他のネットワーク規模を問わない。
【００３１】
図２は、コンピュータ２の主要構成を示すブロック図である。
コンピュータ２、２はそれぞれ、ＣＰＵ１１、ＲＡＭ１２、ＲＯＭ１３、ストレージデバイス１４、入力インタフェース（Ｉ／Ｆ）１５、出力Ｉ／Ｆ１６及び通信装置１７を有する。ＣＰＵ１１、ＲＡＭ１２、ＲＯＭ１３、ストレージデバイス１４、入力インタフェース（Ｉ／Ｆ）１５、出力Ｉ／Ｆ１６及び通信装置１７は、バス２０により接続される。
【００３２】
ＣＰＵ１１は、ＲＯＭ１３又はストレージデバイス１４から処理内容に応じたプログラム、データ等を読み出して処理し、コンピュータ２の各種処理及びコンピュータ２の各部の動作制御を行う。
【００３３】
ＲＡＭ１２は、ＣＰＵ１１が行う処理において読み出すプログラム、データ等を記憶すると共に処理によって生成されたデータやパラメータ等を記憶する一次記憶装置として機能する。
【００３４】
ＲＯＭ１３は、ＣＰＵ１１によって読み出されるプログラム、データ等を書き換え不可能な状態で記憶する。
【００３５】
ストレージデバイス１４は、例えばハードディスクやフラッシュメモリ等であり、ＣＰＵ１１によって読み出されるプログラム、データ等を書き換え可能な状態で記憶する。
【００３６】
入力Ｉ／Ｆ１５は、外部入力装置１８等の入力装置による入力を受け付けるインタフェースである。外部入力装置１８は、例えばキーボードやマウス等であり、ユーザの手動操作により入力指示が行われる。
【００３７】
出力Ｉ／Ｆ１６は、外部出力装置１９等の出力装置に対する出力を行うインタフェースである。外部出力装置１９は、例えばＣＲＴや液晶ディスプレイ等の表示装置等であり、ＣＰＵ１１の処理結果に基づいた出力画面を表示する。
【００３８】
通信装置１７は、コンピュータ２を外部の通信回線（例えば回線３）と接続し、外部の機器との通信を可能とする。通信装置１７は、例えばＮＩＣ（Network Interface Card）等であり、通信回線の種類に応じた接続を可能とする装置を用いることができる。
【００３９】
図３は、画像形成装置１の主要構成を示すブロック図である。図１に示す画像形成装置１、１、１は全て同じ構成によるので、以下一つの画像形成装置１について説明する。
画像形成装置１は、ＣＰＵ２１、ＲＡＭ２２、ＲＯＭ２３、ストレージデバイス２４、入力Ｉ／Ｆ２５、画像印刷部２６、通信装置２７及びハードウェアアクセラレータ２８を備える。ＣＰＵ２１、ＲＡＭ２２、ＲＯＭ２３、ストレージデバイス２４、入力Ｉ／Ｆ２５、画像印刷部２６、通信装置２７及びハードウェアアクセラレータ２８は、バス３０により接続される。
【００４０】
ＣＰＵ２１は、ＲＯＭ２３又はストレージデバイス２４から処理内容に応じたプログラム、データ等を読み出して処理し、画像形成装置１の各種処理及び画像形成装置１の各部の動作制御を行う。
【００４１】
ＲＡＭ２２は、ＣＰＵ２１が行う処理において読み出すプログラム、データ等を記憶すると共に処理によって生成されたデータやパラメータ等を記憶する一次記憶装置として機能する。
【００４２】
ＲＯＭ２３は、ＣＰＵ２１によって読み出されるプログラム、データ等を書き換え不可能な状態で記憶する。
【００４３】
ストレージデバイス２４は、例えばハードディスクやフラッシュメモリ等であり、ＣＰＵ２１によって読み出されるプログラム、データ等を書き換え可能な状態で記憶する。
【００４４】
入力Ｉ／Ｆ２５は、外部入力装置２９等の入力装置による入力を受け付けるインタフェースである。外部入力装置２９は、例えばタッチパネルディスプレイを有する入力パネル等であり、ユーザの手動操作により入力指示が行われる。
【００４５】
画像印刷部２６は、後述する印字データ６２に基づいて紙等の印刷媒体に対して画像を形成するエンジンである。
【００４６】
通信装置２７は、画像形成装置１を外部の通信回線（例えば回線３）と接続し、外部の機器との通信を可能とする。通信装置２７は、例えばＮＩＣ（Network Interface Card）等であり、通信回線の種類に応じた接続を可能とする装置を用いることができる。
【００４７】
ハードウェアアクセラレータ２８は、描画処理を行うためのＤＳＰ（Digital Signal Processor）である。ハードウェアアクセラレータ２８は、例えばＡＳＩＣ（Application Specific Integrated Circuit）等であり、本実施形態のハードウェアアクセラレータ２８は描画処理を行う専用のハードウェアである。ハードウェアアクセラレータ２８が行う描画処理については後述する。
ハードウェアアクセラレータ２８は、ローカルメモリ２８Ａを有する。ハードウェアアクセラレータ２８は、データの読み出しや描画処理において、ローカルメモリ２８Ａの記憶領域を用いて処理を行う。
【００４８】
ハードウェアアクセラレータ２８は、画像形成装置１に対して着脱可能に設けられる。図３に示すハードウェアアクセラレータ２８は一つであるが、複数のハードウェアアクセラレータ２８を一つの画像形成装置１に対して設けることもできる。複数のハードウェアアクセラレータ２８を一つの画像形成装置１に対して設けた場合、複数のハードウェアアクセラレータ２８で処理を分担することができる。
【００４９】
次に、画像形成装置１による画像処理について説明する。
図４は、画像形成装置１による画像処理の工程及び機能の一例を示す機能ブロック図である。
まず、コンピュータ２からプリントジョブが送信される（図４の３１）。
プリントジョブはネットワーク５０を介して転送され、画像形成装置１のネットワーク受信処理部５１によって受信される（図４の３２）。ネットワーク５０は、回線３によるコンピュータ２と画像形成装置１との通信接続により構築される。ネットワーク受信処理部５１は、画像形成装置１の通信装置２７による機能である。
【００５０】
ネットワーク受信処理部５１によって受信されたプリントジョブは、解析処理部５２に対して入力され（図４の３３）、解析処理部５２によって解析処理を施される。解析処理では、プリントジョブに含まれるページ記述言語（page description language、以下「ＰＤＬ」と記載する）に基づいて中間言語データ（例えば本実施形態におけるＤＬデータ６１等）を生成する。解析処理部５２は、ＣＰＵ２１が解析処理を行うためのプログラム、データ等をＲＯＭ２３又はストレージデバイス２４から読み出して実行、処理することによって機能する。
解析処理部５２は、解析処理によって生成したＤＬデータ６１をメモリ５４へ格納する（図４の３４）。本実施形態におけるメモリ５４は、ＲＡＭ２２の記憶領域を指す。
【００５１】
メモリ５４に１ページ分の印刷内容に対応した分のＤＬデータ６１が格納されると、解析処理部５２による処理から描画処理部５３による処理へと移行する（図４の３５）。描画処理部５３は、ＤＬデータ６１に基づいてラスタライズ処理を行う。描画処理部５３は、ＣＰＵ２１がラスタライズ処理を行うためのプログラム、データ等をＲＯＭ２３又はストレージデバイス２４から読み出して実行、処理することによって機能する。なお、１ページ分の印刷内容とは、例えば所定サイズ（例えばＡ４）の用紙１ページ分の印刷内容等を指す。
【００５２】
ラスタライズ処理では、ＤＬデータ６１に基づいて印字データ６２が生成される。具体的には、ラスタライズ処理では、所定範囲の描画領域に対して、ＤＬデータ６１に基づくオブジェクトの描画処理が行われることにより印字データ６２が生成される。印字データ６２は、それ以上の加工や処理を要することなく画像印刷部２６による印刷出力を可能とする印刷用のビットマップデータ、或いはこのビットマップデータを圧縮した圧縮ビットマップデータである。
本実施形態において、ＤＬ６１データに基づく描画処理は、ハードウェアアクセラレータ２８によって行われる。なお、所定範囲の描画領域とは、例えば所定サイズ（例えばＡ４）の用紙１ページ分を複数のバンド単位で区切った場合の１バンド分の描画領域等を指す。
【００５３】
ラスタライズ処理において、描画処理部５３は、ラスタライズ処理の対象となるＤＬデータ６１のメモリアドレスを取得してハードウェアアクセラレータ２８へ入力する（図４の３６）。ハードウェアアクセラレータ２８は、入力されたメモリアドレスに基づいてＤＬデータ６１を読み出し（図４の３７）、読み出したＤＬデータ６１に基づいて描画処理を行う。描画処理結果を反映したデータは、ハードウェアアクセラレータ２８から描画処理部５３へ入力される（図４の３８）。描画処理部５３は、ハードウェアアクセラレータ２８から入力されたデータをメモリ５４へ格納し、印字データ６２を生成する（図４の３９）。
【００５４】
メモリ５４に格納された印字データ６２は、画像印刷部２６へ入力され（図４の４０）、印刷出力される（図４の４１）。印字データ６２の印刷出力が終了すると、印刷出力された内容に対応する印字データ６２及びＤＬデータ６１がメモリ５４から削除される。
プリントジョブによる印刷内容が複数ページに亘る場合、ページ数に応じて解析処理以降の処理が繰り返される。
【００５５】
このように、画像形成装置１のＣＰＵ２１は、ＲＯＭ２３又はストレージデバイス２４から処理内容に応じたプログラム、データ等を読み出して実行、処理することにより、前述の解析処理部５２及び描画処理部５３として機能する。即ち、ＣＰＵ２１、ＲＡＭ２２ならびにＲＯＭ２３、ストレージデバイス２４又はその両方は、協働により、画像処理装置として機能する。
【００５６】
なお、図４及び上述の画像処理の流れは概要を示すものであり、実際には異なってもよい。例えば、複数ページの渡る印刷の場合、あるページのラスタライズ処理以降の処理とラスタライズ処理以降の処理が行われているページ以降のページの解析処理とが並列して行われてもよい。
【００５７】
次に、ハードウェアアクセラレータ２８による描画処理について説明する。
図５及至図７は、ハードウェアアクセラレータ２８による描画処理の仕組みを示す概念説明図である。
図５は、ハードウェアアクセラレータ２８がＤＬデータ６１及び印字データ６２のうち描画領域Ｆに対応する部分をメモリ５４からローカルメモリ２８Ａへコピーする処理を示す概念説明図である。
図６は、ハードウェアアクセラレータ２８がＤＬデータ６１に基づくオブジェクト８１、８２を描画する処理を示す概念説明図である。
図７は、ハードウェアアクセラレータ２８から出力された描画領域Ｆのデータがメモリ５４の印字データ６２へ反映される処理を示す概念説明図である。
図５及至図７では、描画処理部５３の記載を省略している。図５及至図７では、ＤＬデータ６１を「ＤＬ」と記載している。
【００５８】
ハードウェアアクセラレータ２８は、描画処理部５３から入力されたメモリアドレスに基づいてＤＬデータ６１を読み出し、メモリ５４からローカルメモリ２８Ａへコピーする（図５の７１）。
【００５９】
ハードウェアアクセラレータ２８は、ローカルメモリ２８ＡへコピーしたＤＬデータ６１に基づいて各ＤＬデータのオブジェクトを描画するための描画領域（例えば図５に示す描画領域Ｆ）を求める（図５の７２）。そして、ハードウェアアクセラレータ２８は、メモリ５４に格納された描画領域のうち、求めた描画領域Ｆに対応する部分をコピーする（図５の７３）。
ラスタライズ処理において、描画処理部５３は、所定範囲（例えば１バンド分）の描画領域に対応する印字データ６２をメモリ５４にあらかじめ格納し、管理する。ハードウェアアクセラレータ２８は、ＤＬデータに基づいて描画領域を求めると、メモリ５４において格納、管理されている印字データ６２のうち描画領域に対応する部分をコピーする。
【００６０】
図５に示す描画領域Ｆはあくまで一例である。読み出したＤＬデータに基づいて描画領域を求める処理においては、メモリ５４とローカルメモリ２８Ａとの間のデータ転送量を必要最低限とするための最適な描画領域を求める処理として、複数の描画領域を一の描画領域として処理するか否かを決定する処理を経る。その詳細は後述する。
【００６１】
描画領域のコピー後、ハードウェアアクセラレータ２８は、図６に示すように、ＤＬデータ６１に基づくオブジェクト（例えば図６のオブジェクト８１、８２等）をコピーした描画領域上に描画する（図６の７４、７５）。
【００６２】
オブジェクトの描画後、ハードウェアアクセラレータ２８は、図７に示すように、描画を完了した描画領域のデータを出力する。出力された描画領域Ｆのデータは描画処理部５３へ入力され、描画処理部５３によってメモリ５４の印字データ６２へ反映される（図７の７６）。
【００６３】
次に、読み出したＤＬデータに基づいて描画領域を求める処理の詳細について、図８及び図９を用いて説明する。
図８は、１バンド分の描画内容の一例を示す説明図である。
図９は、図８に示す描画内容を示すＤＬデータ６１に基づいて求められた描画領域の一例を示す説明図である。
【００６４】
バンドは、所定の一方向に沿った画素の列（ライン）を複数並べて組み合わせることにより構成される。本実施形態では、図８及び図９に示す描画内容の横方向に沿ったラインを縦方向に複数並べて組み合わせることにより１バンド分の描画内容を構成する。
【００６５】
ハードウェアアクセラレータ２８は、まず、描画内容を構成するオブジェクトに対応する描画領域を求める。例えば、図８に示すようなオブジェクト８１〜９３の各々について、各オブジェクトを内包するために最低限必要な範囲を含む矩形領域（例えば図８に示す矩形の描画領域Ｅ１〜１３等）を求める。各オブジェクトはそれぞれ個別のＤＬデータ６１により描画される。
【００６６】
ハードウェアアクセラレータ２８は、同一ライン上に所定の数（以下「所定の数Ｎ」と記載する）以上の描画領域がある場合、隣接する描画領域の相関に基づいて当該隣接する二の描画領域を個別に扱うか否かを決定する。隣接する二の描画領域を個別に扱わない場合、ハードウェアアクセラレータ２８は、当該二の描画領域の統合又は当該二の描画領域を包括する包括描画領域の生成を行う。
本実施形態では、同一ライン上に２以上のオブジェクトがある場合、同一ライン上において隣接する二の描画領域の分断の有無及び分断された複数の描画領域間の距離に基づいて隣接する二のオブジェクトを個別に扱うか否かが決定される。
【００６７】
ハードウェアアクセラレータ２８は、描画領域の一部又は全部が重なる複数の描画領域を統合する。
例えば、図８に示すオブジェクト８１の描画領域Ｅ１とオブジェクト８２の描画領域Ｅ２は互いの一部分において重なるよう配置されている。ハードウェアアクセラレータ２８は、このような描画領域の一部又は全部が重なる複数の描画領域を統合する。その結果、図９に示す描画領域Ｆのように、複数のオブジェクトの描画領域を含む一の包括描画領域が生成される。
【００６８】
これによって、重複する描画領域を個別に処理する場合に比して、重複部分の処理を一括して行うことができ、メモリ５４とローカルメモリ２８Ａ間のデータ転送を効率化することができる。例えば、ハードウェアアクセラレータ２８は、メモリ５４において格納、管理されている印字データのうち描画領域に対応する部分をコピーする。このとき、仮に重複する描画領域を個別に処理する場合、重複箇所を２回以上コピーすることになるが、描画領域の一部又は全部が重なる複数の描画領域を統合することで、重複箇所を複数回コピーする必要がなくなる。
【００６９】
ハードウェアアクセラレータ２８は、分断された複数の描画領域間の距離が所定の距離（以下「所定の距離Ｌ」と記載する）以下であった場合に分断された複数の描画領域を包括する新たな描画領域を生成する。
例えば、図８に示すオブジェクト８４〜９３は、それぞれ他のオブジェクトの描画領域から分断された個別の描画領域Ｅ４〜Ｅ１３を有している。このとき、オブジェクト８４〜９３について、隣接する描画領域間の距離（図８に示す距離Ｌ１〜Ｌ９）は全て所定の距離Ｌ以下である。ハードウェアアクセラレータ２８は、このような隣接する描画領域間の距離が所定の距離Ｌ以下である複数の描画領域を包括する新たな描画領域を生成する。その結果、図９に示す描画領域Ｆ３のように、複数のオブジェクトの描画領域を含む一の包括描画領域が生成される。
【００７０】
これによって、包括描画領域に包括される複数の描画領域を個々に処理する場合に比して、メモリ５４とローカルメモリ２８Ａ間のデータ転送を効率化することができる。
仮に新たな包括描画領域に包括される複数の描画領域を個々に処理する場合、それぞれの描画領域についてメモリ５４において格納、管理されている印字データ６２のうち描画領域に対応する部分をコピーする処理や、描画処理を完了した描画領域をローカルメモリ２８Ａからメモリ５４に書き戻す処理等を行うこととなる。このとき、個々のコピー命令や書き戻し命令に伴うオーバーヘッドの累計が膨大となることにより、オーバーヘッドの処理時間の累積が膨大となり、データ転送に要する時間が長くなってしまう場合がある。これに対して、複数の描画領域を包括する包括描画領域を一の描画処理単位とすることで、個々のコピー命令や書き戻し命令に伴うオーバーヘッドを大幅に削減することができる。つまり、包括描画領域に包括される個々の描画領域間に含まれる描画処理に関係のない範囲を含むことにより増加したデータ量を転送するのに要する時間よりも、個々のコピー命令や書き戻し命令に伴うオーバーヘッドにより増加する処理時間を含めたデータ転送時間の方が大きくなる場合、複数の描画領域を包括する包括描画領域を生成することでメモリ５４とローカルメモリ２８Ａ間のデータ転送量を低減させることができる。
【００７１】
所定の距離Ｌは、包括描画領域に包括される個々の描画領域間に含まれる描画処理に関係のない範囲のデータ量が個々のコピー命令や書き戻し命令に伴うオーバーヘッドによるデータ転送量よりも小さくなる範囲内で設定されることが望ましい。
【００７２】
一方、図８に示すオブジェクト８２の描画領域Ｅ２とオブジェクト８３の描画領域Ｅ３とは分断されており、かつ、互いの描画領域間の距離Ｌ１０が所定の距離Ｌを越えている。ハードウェアアクセラレータ２８は、このような隣接する描画領域間の距離が所定の距離Ｌを超える複数の描画領域を個別の描画領域として処理する。その結果、図９に示す描画領域Ｆ、Ｆ２のように、同一ライン上において複数の描画領域が生成される。
【００７３】
本実施形態では、分断された描画領域が三以上である場合、まず、ライン上で最も左に位置する描画領域と、その描画領域に隣接する描画領域との間の距離に基づいて一の包括描画領域とするか個々の描画領域とするかを決定する。その後、ライン上で最も左に位置する描画領域に隣接する描画領域と、その描画領域に隣接する描画領域との間の距離に基づいて一の包括描画領域とするか個々の描画領域とするかを決定する。以降、ライン上で最も右の描画領域について一の包括描画領域とするか個々の描画領域とするかを決定するまで同様の処理を繰り返す。
【００７４】
分断された二の描画領域を一の包括描画領域として処理する場合、分断された二の描画領域のうち、ライン上において左側に位置する描画領域のライン上における左端（以下「左点」と記載する）から、ライン上において右側に位置する描画領域のライン上における右端（以下「右点」と記載する）までの領域を新たな一の包括描画領域とする。
分断された三以上の描画領域を一の包括描画領域として処理する場合、まず、ライン上において最も左に位置する描画領域と、その描画領域に隣接する描画領域とを一の包括描画領域とする処理を行う。その後、ライン上において最も左に位置する描画領域とその描画領域に隣接する描画領域とを統合した描画領域と、その描画領域に隣接する描画領域とを一の包括描画領域とする処理を行う。以降、一の包括描画領域として処理する描画領域のうちライン上で最も右の描画領域を統合するまで同様の処理を繰り返す。
【００７５】
所定の距離Ｌは、描画領域間の距離の基準となる数値及び単位であればなんでもよい。所定の距離Ｌとして、例えば、所定数の画素や、一ラインの長手方向（幅）の画素数に対する割合等が挙げられる。本実施形態では、所定の距離Ｌとして、所定数の画素（例えば50[ピクセル]等）を用いる。
【００７６】
次に、ラスタライズ処理におけるハードウェアアクセラレータ２８の処理の流れについて図１０及び図１１のフローチャートを用いて説明する。
図１０は、ラスタライズ処理におけるハードウェアアクセラレータ２８の処理の流れを示すフローチャートである。
まず、ハードウェアアクセラレータ２８は、描画処理部５３から入力されたメモリアドレスに基づいてＤＬデータ６１をローカルメモリ２８Ａにコピーする（ステップＳ１）。次に、ハードウェアアクセラレータ２８は、ステップＳ１においてローカルメモリ２８Ａにコピーした全てのＤＬデータ６１について、各ＤＬデータ６１に基づくオブジェクトを描画するための矩形の描画領域を求める（ステップＳ２）。
【００７７】
次に、ハードウェアアクセラレータ２８は、ステップＳ２において求めた矩形の描画領域の重なりに基づいて最低限必要な描画領域を求める（ステップＳ３）。
ステップＳ３では、例えば図８に示すオブジェクト７１の描画領域Ｅ１とオブジェクト７２の描画領域Ｅ２のように、複数のオブジェクトの描画領域が重複している場合に重複している描画領域を含む最低限必要な描画領域（例えば図９に示す描画領域Ｆ等）を求める処理を行う。
【００７８】
次に、ハードウェアアクセラレータ２８は、最適な描画領域を求める処理を行う（ステップＳ４）。
図１１は、図１０のステップＳ４に示す、最適な描画領域を求める処理の流れを示すフローチャートである。
まず、ハードウェアアクセラレータ２８は、処理対象となるライン上に所定の数Ｎ以上の分断された描画領域があるか否かを判定する（ステップＳ１１）。本実施形態では、所定の数Ｎ＝２である。所定の数Ｎは２に限らず、任意の値を設定することができる。
【００７９】
ステップＳ１１において、ライン上に所定の数Ｎ以上の分断された描画領域がない場合（ステップＳ１１：ＮＯ）、ハードウェアアクセラレータ２８は、図１０のステップＳ３以前で求めた最低限必要な描画領域を採用する（ステップＳ１２）。
【００８０】
ステップＳ１１において、ライン上に所定の数Ｎ以上の分断された描画領域がある場合（ステップＳ１１：ＹＥＳ）、ハードウェアアクセラレータ２８は、隣接する描画領域間の距離が所定の距離Ｌ以下であるか否かを判定する（ステップＳ１３）。隣接する描画領域間の距離が所定の距離Ｌ以下である場合（ステップＳ１３：ＹＥＳ）、ハードウェアアクセラレータ２８は、隣接する描画領域のうちライン上において左側の描画領域の左点からライン上において右側の描画領域の右点までの領域を新たな一の包括描画領域とする（ステップＳ１４）。
【００８１】
ステップＳ１３において、隣接する描画領域間の距離が所定の距離Ｌ以下でない場合（ステップＳ１３：ＮＯ）、ハードウェアアクセラレータ２８は、隣接する描画領域のそれぞれについて、図１０のステップＳ３以前で求めた最低限必要な描画領域を採用する（ステップＳ１５）。
【００８２】
ステップＳ１４又はステップＳ１５の処理後、ハードウェアアクセラレータ２８は、処理対象となるライン上の全ての分断された描画領域間の距離をチェックしたか否かを判定する（ステップＳ１６）。全ての分断された描画領域間の距離をチェックしていない場合（ステップＳ１６：ＮＯ）、ステップＳ１３の処理に戻り、ハードウェアアクセラレータ２８はチェックしていない描画領域間の距離について判定を行う。
【００８３】
ステップＳ１２の処理後又はステップＳ１６において処理対象となるライン上の全ての分断された描画領域間の距離をチェックした場合（ステップＳ１６：ＹＥＳ）、ハードウェアアクセラレータ２８は、一バンドを構成する全てのラインについて分断された描画領域の有無及び分断された描画領域間の距離に基づく描画領域のチェックを完了したか否かを判定する（ステップＳ１７）。描画領域のチェックを完了していない場合（ステップＳ１７：ＮＯ）、ステップＳ１１の処理に戻り、ハードウェアアクセラレータ２８は未処理のラインについて処理を行う。描画領域のチェックを完了した場合（ステップＳ１７：ＹＥＳ）、ハードウェアアクセラレータ２８は最適な描画領域を求める処理を終了する。
【００８４】
図１０のステップＳ４、即ち図１１に示す最適な描画領域を求める処理の終了後、ハードウェアアクセラレータ２８は、メモリ５４に格納された描画領域のうち、ステップＳ４までに求めた描画領域に対応する部分をメモリ５４からローカルメモリ２８Ａへコピーする（ステップＳ５）。次に、ハードウェアアクセラレータ２８は、ステップＳ５でコピーした描画領域上にＤＬデータ６１に基づくオブジェクトを描画する（ステップＳ６）。次に、ハードウェアアクセラレータ２８は、ステップＳ６の描画処理を完了した描画領域のデータを出力する（ステップＳ７）。
【００８５】
ステップＳ７の処理後、ハードウェアアクセラレータ２８は、描画処理部５３から入力されたメモリアドレスに対応する全てのＤＬデータ６１について描画処理を完了したか否かを判定する（ステップＳ８）。描画処理部５３から入力されたメモリアドレスに対応する全てのＤＬデータ６１について描画処理を完了していない場合（ステップＳ８：ＮＯ）、ステップＳ１の処理に戻り、ハードウェアアクセラレータ２８は、描画処理を完了していないＤＬデータ６１の描画処理を行う。
ステップＳ８において、描画処理部５３から入力されたメモリアドレスに対応する全てのＤＬデータ６１について描画処理を完了した場合（ステップＳ８：ＹＥＳ）、ハードウェアアクセラレータ２８は処理を終了する。
【００８６】
本実施形態によれば、ハードウェアアクセラレータ２８は、描画領域の相関に基づいて複数の描画領域を包括する包括描画領域を生成する。つまり、複数の描画領域を包括する包括描画領域を生成することによってメモリ５４とローカルメモリ２８Ａとの間のデータ転送量を低減させることができる場合に複数の描画領域を包括する包括描画領域を生成する。これによって、メモリ５４とローカルメモリ２８Ａとの間のデータ転送量を低減させることができ、ハードウェアアクセラレータ２８による描画処理に伴うデータ転送時間を短縮することができるので、従来に比してハードウェアアクセラレータ２８による描画処理を高速化することができる。したがって、ハードウェアアクセラレータの採用によるコストの低減と、ハードウェアアクセラレータによる描画処理の高速化と、を両立した画像処理を実現することができる。
【００８７】
さらに、ハードウェアアクセラレータ２８は、描画領域の一部又は全部が重なる複数の描画領域を統合する。これによって、重複する描画領域を個別に処理する場合に比して、重複部分の処理を一括して行うことができ、メモリ５４とローカルメモリ２８Ａ間のデータ転送を効率化することができる。これによって、ハードウェアアクセラレータ２８による描画処理に伴うデータ転送時間をより短縮することができ、ハードウェアアクセラレータによる描画処理の高速化を実現することができる。
【００８８】
さらに、複数の描画領域の分断の有無に基づいて包括描画領域を生成する。これによって、メモリ５４とローカルメモリ２８Ａ間のデータ転送を効率化することができる。
例えば、複数の描画領域が分断していない、即ち重複していたり連続していたりする場合には、当該複数の描画領域を一括して処理するために複数の描画領域を包括する包括描画領域とすることで、個々の描画領域のコピー命令や書き戻し命令に伴うオーバーヘッドを低減させることができる。
【００８９】
さらに、分断された複数の描画領域間の距離に基づいて包括描画領域を生成する。これによって、メモリ５４とローカルメモリ２８Ａ間のデータ転送を効率化することができる。
例えば、複数の描画領域間の距離が大きく離れているにも関らず複数の描画領域を包括する包括描画領域とした場合、複数の描画領域間の不要な描画領域をもローカルメモリ２８Ａに記憶しなければならなくなる。そこで、このような場合には、複数の描画領域を個々の描画領域として処理することにより、ローカルメモリ２８Ａに要求される記憶容量を必要最低限とすることができる。
【００９０】
さらに、ハードウェアアクセラレータ２８は、隣接する描画領域間の距離が所定の距離Ｌ以下である複数の描画領域を包括する包括描画領域を生成する。新たな描画領域に包括される個々の描画領域間に含まれる描画処理に関係のない範囲のデータを転送するのに要する時間よりも、個々のコピー命令や書き戻し命令に伴うオーバーヘッドにより増加した処理時間を含めたデータ転送時間の方が大きくなる場合、複数の描画領域を包括する包括描画領域を生成することでメモリ５４とローカルメモリ２８Ａ間のデータ転送量を低減させることができる。これによって、包括描画領域に包括される複数の描画領域を個々に処理する場合に比して、メモリ５４とローカルメモリ２８Ａ間のデータ転送を効率化することができる。これによって、ハードウェアアクセラレータ２８による描画処理に伴うデータ転送時間をより短縮することができ、ハードウェアアクセラレータによる描画処理の高速化を実現することができる。
【００９１】
さらに、包括描画領域の生成に関する処理は、ハードウェアアクセラレータ２８が行う。このため、メモリ５４とローカルメモリ２８Ａとの間のデータ転送量低減のための処理の負荷をＣＰＵ２１に掛けることがない。これによって、ハードウェアアクセラレータの導入によるＣＰＵの処理負荷軽減の効果をより一層大きくすることができる。
【００９２】
さらに、ハードウェアアクセラレータ２８による描画処理はバンド単位即ち複数ライン単位であるので、ライン単位で描画処理を行う場合に比して大きな描画領域を一度に処理することができ、ライン単位の小さな描画領域単位で描画処理を行う場合に比して個々のコピー命令や書き戻し命令に伴うオーバーヘッドによるデータ転送量の増大を低減させることができ、ハードウェアアクセラレータ２８による描画処理に伴うデータ転送時間をより短縮することができ、ハードウェアアクセラレータによる描画処理の高速化を実現することができる。
【００９３】
なお、本発明の実施の形態は、今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【００９４】
例えば、前述の実施形態は、画像形成装置１の構成に含まれるＣＰＵがＲＯＭやストレージデバイスからソフトウェアを読み出して実行処理することで画像処理装置として機能しているが、画像形成装置から独立した画像処理装置を個別に設けてもよい。
【００９５】
前述の実施形態では、ＤＬデータに基づく印字データの生成はバンド単位即ち複数のライン単位であるが、ライン単位でもよい。
ライン単位で描画処理を行う場合、ローカルメモリ２８Ａの記憶容量は一ライン上に存在するオブジェクト分のＤＬデータ６１及び一ライン分の描画領域をコピー、格納するための容量があればよく、バンド単位で描画処理を行う場合に比して大幅に少なく済む。このため、ライン単位で描画処理を行う場合、バンド単位で描画処理を行う場合に比してローカルメモリ２８Ａの記憶容量を小さく済ませることができ、ハードウェアアクセラレータ２８のコストをより低減させることができる。
【００９６】
複数の描画領域を包括する描画領域の生成処理は、ハードウェアアクセラレータではなく画像処理装置の制御部（例えば前述の実施形態におけるＣＰＵ２１等）が行ってもよいし、描画領域の決定に関る処理をハードウェアアクセラレータと制御部の協働により行ってもよい。
【００９７】
メモリは、ＲＡＭの記憶領域に限らない。例えば、ストレージデバイスの記憶領域を仮想メモリとして扱い、当該仮想メモリを用いるようにしてもよい。
【符号の説明】
【００９８】
２１    ＣＰＵ
２２    ＲＡＭ
２３    ＲＯＭ
２４    ストレージデバイス
２８    ハードウェアアクセラレータ
６１    ＤＬデータ
６２    印字データ
【図１】
2011016317.tif 000003
【図２】
2011016317.tif 000004
【図３】
2011016317.tif 000005
【図４】
2011016317.tif 000006
【図５】
2011016317.tif 000007
【図６】
2011016317.tif 000008
【図７】
2011016317.tif 000009
【図８】
2011016317.tif 000010
【図９】
2011016317.tif 000011
【図１０】
2011016317.tif 000012
【図１１】
2011016317.tif 000013