(57)【要約】【課題】  画像データに対して複数の処理を連続して行うことで、処理終了までの時間を短縮させた画像処理アクセラレータを提供する。【解決手段】  メモリ５１２から読み出した画像データにダミーデータを付加して、ダミーデータを付加した画像データのデータ数が、描画プロセッサ５１１が画像データに回転処理を行う場合の処理単位の整数倍のデータ数となるようにし、ダミーデータを付加した画像データをメモリ５１２に記憶させる処理と、メモリ５１２に記憶された、ダミーデータを付加した画像データを処理単位ごとに読み出し、読み出した処理単位ごとの画像データを回転処理しながら第１の画像処理を行って、メモリ５１２に記憶させる処理とを実行する描画プロセッサ５１１を備えている。【選択図】        図２
2011204025.tif 000002
【特許請求の範囲】
【請求項１】
上位装置からの画像処理を指示する画像処理命令に基づいて、複数種類の画像処理を実行する複数の描画処理手段と、
前記上位装置から送られた画像データを記憶する記憶手段とを有し、
前記複数の描画処理手段は、前記記憶手段から読み出した画像データにダミーデータを付加し、該ダミーデータを付加した画像データのデータ数が、前記描画処理手段が画像データに回転処理を行う場合の処理単位の主走査方向又は副走査方向の整数倍のデータ数となるようにし、前記ダミーデータを付加した画像データを前記記憶手段に記憶させる第１描画処理手段と、
前記記憶手段に記憶された、前記ダミーデータを付加した画像データを前記処理単位ごとに読み出し、該読み出した前記処理単位ごとの画像データを回転処理しながら第１の画像処理を行って、前記記憶手段に記憶させる第２描画処理手段と、
を有することを特徴とする画像処理アクセラレータ。
【請求項２】
前記記憶手段に記憶した前記ダミーデータを付加した画像データを前記処理単位のデータ数ごとに読み出して第２の画像処理を行った後に、画像データに付加された前記ダミーデータを取り除き、前記ダミーデータを取り除いた画像データを前記記憶手段に記憶させる第３描画処理手段を有することを特徴とする請求項１記載の画像処理アクセラレータ。
【請求項３】
前記複数の描画処理手段は、具備する回路の接続構成を変更して、任意の論理関数を生成する論理セルを複数備え、前記複数の論理セル間の接続状態を更新することで回路機能を再構成可能なプログラマブル論理回路装置であることを特徴とする請求項１又は２記載の画像処理アクセラレータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理アクセラレータに関する。
【背景技術】
【０００２】
画像処理などのデータ処理を実行する際、高速処理を実現するために、制御部（ＣＰＵ）やメインメモリとは別に、画像処理を行うアクセラレータとメモリとを用意し、画像処理等のデータ処理をアクセラレータに任せる仕組みが提案されている。
【０００３】
特許文献１は、メモリのワードのＢＩＴ幅Ｍと画素のＢＩＴ幅ＮがＭ／Ｎの整数倍でないデータに対しても、高速な回転処理を実現する画像回転処理装置に関する技術を開示している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−２４２２１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は、画像データに対して複数の処理を連続して行うことで、処理終了までの時間を短縮させた画像処理アクセラレータを提供することを目的とする。
【課題を解決するための手段】
【０００６】
かかる目的を達成するために請求項１記載の発明は、上位装置からの画像処理を指示する画像処理命令に基づいて、複数種類の画像処理を実行する複数の描画処理手段と、前記上位装置から送られた画像データを記憶する記憶手段とを有し、前記複数の描画処理手段は、前記記憶手段から読み出した画像データにダミーデータを付加し、該ダミーデータを付加した画像データのデータ数が、前記描画処理手段が画像データに回転処理を行う場合の処理単位の主走査方向又は副走査方向の整数倍のデータ数となるようにし、前記ダミーデータを付加した画像データを前記記憶手段に記憶させる第１描画処理手段と、前記記憶手段に記憶された、前記ダミーデータを付加した画像データを前記処理単位ごとに読み出し、該読み出した前記処理単位ごとの画像データを回転処理しながら第１の画像処理を行って、前記記憶手段に記憶させる第２描画処理手段とを備えている。
【０００７】
請求項２記載の発明は、請求項１記載の発明において、前記記憶手段に記憶した前記回転処理長さのデータ数ごとの画像データを読み出して第２の画像処理を行った後に、前記回転処理長さのデータ数ごとの画像データに付加された前記ダミーデータを取り除き、前記ダミーデータを取り除いた画像データを前記記憶手段に記憶させる第３描画処理手段を有している。
【０００８】
請求項３記載の発明は、請求項１又は２記載の発明において、前記複数の描画処理手段は、具備する回路の接続構成を変更して、任意の論理関数を生成する論理セルを複数備え、前記複数の論理セル間の接続状態を更新することで回路機能を再構成可能なプログラマブル論理回路装置であるとよい。
【発明の効果】
【０００９】
請求項１記載の発明によれば、画像データに対して複数の処理を連続して行うことで、処理終了までの時間を短縮させた画像処理アクセラレータを提供することができる。
【００１０】
請求項２記載の発明によれば、不要なデータを取り除いて記憶手段に画像データを記憶させることができる。
【００１１】
請求項３記載の発明によれば、画像処理アクセラレータが処理する画像処理を変更することができる。
【図面の簡単な説明】
【００１２】
【図１】本発明を適用した画像形成装置の構成を示す図である。
【図２】画像処理アクセラレータの構成の一例を示す図である。
【図３】描画プロセッサの構成の一例を示す図である。
【図４】制御部と画像処理アクセラレータとにおいて行われる画像処理と、処理の流れとを示す図である。
【図５】描画プロセッサによる画像処理の処理手順を示すシーケンスチャートである。
【図６】描画プロセッサにより画像データにダミーデータを付加する様子を示す図であり、（Ａ）は、メモリに格納された圧縮画像データを示し、（Ｂ）は、伸張器により圧縮画像データを伸張処理する様子を示し、（Ｃ）は、伸張処理したＲＧＢの画像データにダミーデータを付加する様子を示し、（Ｄ）は、ダミーデータを付加した画像データをメモリに格納した様子を示す図である。
【図７】描画プロセッサにより画像データの１ラインごとにダミーデータを付加する様子を示す図である。
【図８】アラインメント回路の構成の一例を示す図である。
【図９】アラインメント回路の処理タイミングを示すタイミングチャートである。
【図１０】（Ａ）は、メモリに格納された画像データを示し、（Ｂ）及び（Ｃ）は、描画プロセッサにより回転処理しながら色変換する様子を示す図であり、（Ｄ）は、回転処理した画像データをメモリに格納する様子を示す図である。
【図１１】読出コマンドでメモリから読み出される画像データと、書込コマンドでメモリに書き込まれる画像データとを示す図である。
【図１２】トリミング回路の構成の一例を示す図である。
【図１３】トリミング回路の処理タイミングを示すタイミングチャートである。
【発明を実施するための形態】
【００１３】
以下、添付図面を参照しながら本発明の好適な実施例を説明する。
【実施例】
【００１４】
まず、図１を参照しながら本発明を画像形成装置に適用した実施例の構成について説明する。
画像形成装置１は、制御部１０と、入出力インターフェース（以下、インターフェースをＩ／Ｆと略記する）２０と、ネットワークＩ／Ｆ８０と、グラフィックＩ／Ｆ９０とを内部バス１５で接続した構成を備える。入出力Ｉ／Ｆ２０には、操作部３０、スキャナ４０、画像処理アクセラレータ５０、画像形成部６０、記憶装置７０が接続されている。
また、画像形成装置１は、ネットワークＩ／Ｆ８０を介してネットワーク１００に接続している。ネットワーク１００には、画像形成装置１に画像データを送信して、画像形成装置１に画像の形成を依頼するコンピュータ装置１０１が接続している。以下、画像形成装置１の各部について説明する。
【００１５】
制御部１０は、ハードウェアとしてＣＰＵ（Central Processing Unit）１１と、ＲＯＭ（Read Only Memory）１２と、ＲＡＭ（Random Access Memory）１３とを備える。ＲＯＭ１２には、ＣＰＵ１１が制御に使用する制御プログラムが記録されている。ＣＰＵ１１は、起動すると、制御プログラムをＲＯＭ１２から読み出してＲＡＭ１３に記憶させる。その後、ＣＰＵ１１は、ＲＡＭ１３に記憶したプログラムに従って処理を実行する。ＲＡＭ１３は、ＣＰＵ１１のワークメモリとして使用され、ＣＰＵ１１が演算に使用するデータ等が記憶される。
【００１６】
操作部３０は、テンキーや操作ボタンなどを備えている。入出力Ｉ／Ｆ２０は、操作部３０で入力を受け付けた操作情報を、制御部１０に送る。制御部１０は、操作部３０で受け付けた操作情報に従って、画像処理アクセラレータ５０に画像の処理を指示したり、画像形成部６０に画像の形成を指示する。
【００１７】
スキャナ４０は、原稿台上に置かれた原稿の画像を読み込み、読み込んだ画像データを入出力Ｉ／Ｆ２０を介して記憶装置７０に送り、記憶装置７０に記憶させる。
【００１８】
画像処理アクセラレータ５０は、制御部１０からの指示により、入出力Ｉ／Ｆ２０を介して記憶装置７０から画像データを読み出し、読み出した画像データに、伸張、縮小、回転、色補正、色空間の変換などの画像処理を行う。なお、画像処理アクセラレータ５０の詳細については後述する。
画像形成部６０は、画像処理アクセラレータ５０により画像処理された画像データを取得して、所定の用紙に画像を形成する。
【００１９】
記憶装置７０は、ハードディスク装置等の磁気記憶装置である。記憶装置７０は、ネットワーク１００に接続したコンピュータ装置１０１等の外部機器から送られる文書データや画像データを記憶する。
【００２０】
グラフィックＩ／Ｆ９０は、制御部１０で処理されたグラフィックデータを表示部９１に表示させるためのインタフェースであり、表示部９１に表示させるためにグラフィックデータを波形電気信号に変換する。
【００２１】
ネットワークＩ／Ｆ８０は、例えば、ＬＡＮ（Local Area Network）等のネットワーク１００に接続したコンピュータ装置１０１と通信を行う通信インタフェースである。ネットワークＩ／Ｆ８０は、ネットワーク１００に接続したコンピュータ装置１０１や画像形成装置（不図示）等の外部機器から送られる文書データや画像データを受信して、受信した文書データや画像データを制御部１０の制御により、記憶装置７０に送って記憶させる。
【００２２】
次に、画像処理アクセラレータ５０の詳細について図２を参照しながら説明する。図２には、画像処理アクセラレータ５０のハードウェア構成の一例を示す。
画像処理アクセラレータ５０は、複数の描画部５１０、５２０、５３０を備え、各描画部５１０、５２０、５３０は、バス５５を介して入出力Ｉ／Ｆ２０に接続している。描画部５１０は、描画プロセッサ５１１とメモリ５１２とを備えている。同様に、描画部５２０は、描画プロセッサ５２１とメモリ５２２とを備え、描画部５３０は、描画プロセッサ５３１とメモリ５３２とを備える。なお、本実施例では、描画部を３つ設けた画像処理アクセラレータ５０を例に説明するが、描画部５１０、５２０、５３０の数は、３つに限られるわけではなく、４つ以上であってもよい。
【００２３】
描画プロセッサ５１１、５２１、５３１は、制御部１０から送られた画像処理命令に基づいて、複数種類の画像処理を実行するプロセッサである。
【００２４】
メモリ５１２、５２２、５３２は、それぞれ、描画プロセッサ５１１、５２１、５３１に対応して設けられており、描画プロセッサ５１１、５２１、５３１により処理される画像データを一時的に格納する。
【００２５】
次に、描画プロセッサ５１１の構成を図３を参照して説明する。なお、描画プロセッサ５２１、５３１も同様な構成を備えているので、描画プロセッサ５１１の説明を他の描画プロセッサ５２１、５３１の説明に代える。
【００２６】
描画プロセッサ５１１には、動的にチップ内部の回路の接続構成を変更して、任意の論理関数を生成する論理セルを複数備え、複数の論理セル間の接続状態を更新することで回路機能を再構成可能なプロセッサ（ダイナミック・リコンフィギュアラブル・プロセッサ）を用いている。
【００２７】
描画プロセッサ５１１は、図３に示すように、システム制御部５１１１と、演算器群５１１２と、結線情報格納部５１１３と、高速バススイッチ５１１４と、メモリＩ／Ｆ５１１５と、バスＩ／Ｆ５１１６と、ダイレクト入出力Ｉ／Ｆ５１１７とを備えている。
【００２８】
演算器群５１１２は、加算器、乗算器等の各種演算器と、演算器が演算に使用する画像データ等を一時的に記憶するバッファとを備える。結線情報格納部５１１３は、演算器群５１１２の各種演算器を組み合わせて画像処理機能を実現するための結線情報を格納する。
【００２９】
システム制御部５１１１は、制御部１０から送られた処理命令を受け付けると、結線情報格納部５１１３に格納されている結線情報に基づいて演算器群５１１２の各種演算器の接続を変更し、処理命令で要求された画像処理を実現する処理回路を実現する。
【００３０】
メモリＩ／Ｆ５１１５は、メモリ５１２との間でデータの送受信を行うためのインターフェースである。バスＩ／Ｆ５１１６は、入出力Ｉ／Ｆ２０に接続し、入出力Ｉ／Ｆ２０に接続した他の装置（例えば、制御部１０）との間でデータや処理命令の送受信を行うインターフェースである。ダイレクト入出力Ｉ／Ｆ５１１７は、他の描画プロセッサ５２１に対してパイプラン処理により直接画像データを転送するためのインターフェースである。
【００３１】
高速バススイッチ５１１４は、システム制御部５１１１、演算器群５１１２、メモリＩ／Ｆ５１１５、バスＩ／Ｆ５１１６間のデータ転送の経路を高速に切り替えるためのバススイッチである。
【００３２】
描画プロセッサ５１１〜５１３は、上述の構成を備えることで、制御部１０から指定された画像処理機能を短時間で実現することができる。
【００３３】
次に、図４を参照して、制御部１０と、画像処理アクセラレータ５０とにおいて行われるＲＩＰ（Raster Image processing）処理の流れについて説明する。なお、ＲＩＰ処理とは、画像データを画像形成部６０が処理可能なラスタデータに変換してページイメージを作成する処理である。
【００３４】
まず、制御部１０は、コンピュータ装置１０１から受信した処理データを、画像処理アクセラレータ５０に処理させる画像データと、制御部１０のソフトウェアでＲＩＰ処理するテキストデータとに分割する。そして、制御部１０は、画像処理命令と共に画像データを画像処理アクセラレータ５０に送信する。
【００３５】
画像処理アクセラレータ５０は、受信した画像処理命令に基づいて、制御部１０か送られた画像データに対して、ＪＰＥＧ（Joint Photographic Experts Group）伸張処理、拡大・縮小処理、色空間変換処理等の各種画像処理を行う。その後、画像処理アクセラレータ５０は、画像データにＲＩＰ処理を行ってＹ（イエロー）Ｍ（マゼンタ）Ｃ（シアン）Ｋ（ブラック）形式の画像データを生成する。画像処理部１０は、生成したＹＭＣＫ形式の画像データを制御部１０に送る。なお、制御部１０により分離されたテキストデータについては、制御部１０内でソフトウェアによりＲＩＰ処理が行われる。
【００３６】
制御部１０は、画像処理アクセラレータ５０からＹＭＣＫ形式の画像データを受け取って、ＹＭＣＫ形式の画像データと、ソフトウェアによりＲＩＰ処理を行ったテキストデータとを合成して、ＹＭＣＫ各色ごとに２値画像を生成する。そして、制御部１０は、２値画像となった画像データを再度、画像処理アクセラレータ５０に送信して、回転処理、圧縮処理を実行させる。画像処理アクセラレータ５０は、回転処理、圧縮処理した画像データを画像形成部６０に送る。画像形成部６０は、画像処理アクセラレータ５０で画像処理された圧縮画像データを受信して伸張し、所定の用紙に画像を形成する。
【００３７】
次に、図５を参照しながら画像処理アクセラレータ５０の処理手順を説明する。図５には、制御部１０と、画像処理アクセラレータ５０との処理手順を示すシーケンス図を示す。
まず、制御部１０は、制御部１０のＲＡＭ１３に格納した、圧縮された画像データを、画像処理を行わせる描画部５１０（５２０、５３０）に送る。なお、以下では、描画部５１０が画像処理を担当するものとして説明を行う。描画部５１０の描画プロセッサ５１１は、制御部１０から送られた圧縮画像データをメモリ５１２に格納する。描画プロセッサ５１１は、メモリ５１２に格納した圧縮画像データを読み出して、演算器群５１１２に含まれるバッファ（図７に示す入力バッファ６００や出力バッファ７００）に格納する。そして、描画プロセッサ５１１は、演算器群５１１２に含まれる演算器で圧縮画像データをＪＰＥＧ（Joint Photographic Experts Group）伸張し、伸張したＲ（レッド），Ｇ（グリーン），Ｂ（ブルー）の画像データにダミーデータを付加する。描画プロセッサ５１１は、ダミーデータを付加した画像データをメモリ５１２に送って格納する。ここまでの処理が、描画プロセッサ５１１が、メモリ５１２から読み出した画像データに対して行う一連の処理の１つ目の処理である。
図６（Ａ）に示すメモリ５１２に格納された画像データは、圧縮された圧縮画像データである。描画プロセッサ５１１は、メモリ５１２に格納された圧縮画像データを読み出して入力バッファ６００（図７参照）に格納する。描画プロセッサ５１１は、入力バッファ６００から圧縮画像データを読み出して、読み出した圧縮画像データをＲ１，Ｇ１，Ｂ１（図６（Ｂ）参照）に伸張処理しながら伸張した画像データにダミーデータＤ１（図６（Ｃ）参照）を付加する。そして描画プロセッサ５１１は、ダミーデータを付加した画像データを出力バッファ７００（図７参照）に格納する（図６（Ｄ）参照）。描画プロセッサ５１１は、出力バッファ７００に格納した、ダミーデータを付加された画像データを、メモリ５１２に格納して一連の処理の１つ目の処理を終了させる。なお、画像データに付加されるダミーデータは、１画素分の画像データ（ＲＧＢの画像データ）に１つずつ付加される。１画素分のＲＧＢの画像データにダミーデータを付加することで、１画素分のＲＧＢの画像データとダミーデータとを合わせたデータ数が４ｂｙｔｅとなる。データ数を４ｂｙｔｅに調整することで、描画プロセッサ５１１が、ＲＧＢの画像データとダミーデータとを１セットとして、入力バッファ６００から画像データを読み出すことができる。例えば、ダミーデータが付加されていない画像データ「Ｒ１，Ｂ１，Ｇ１，Ｒ２，Ｂ２，Ｇ２，・・・」を描画プロセッサ５１１が入力バッファ６００から読み出す場合、読み出される画像データが「Ｒ１，Ｂ１，Ｇ１，Ｒ２，」となってしまうこともある。この場合、すでに読み出されている「Ｒ２」の画像データと、新たに読み出した「Ｂ２，Ｇ２」の画像データとを組み合わせる処理を行わなければならない。このような手間を省くため、ＲＧＢの画像データにダミーデータを付加する。すなわち、ＲＧＢの画像データにダミーデータＤを付加しておくことで、描画プロセッサ５１１が入力バッファ６００から読み出す画像データの単位が「Ｒ１，Ｂ１，Ｇ１，Ｄ１，」となり、ＲＧＢの画像データがばらばらに入力バッファ６００から読み出されることがない。
【００３８】
次に、描画プロセッサ５１１は、メモリ５１２から画像データを再度読み出し、画像データの主走査方向の１ラインごとにダミーデータを付加して、１ラインごとに区切られたバウンダリーデータに変換する。バウンダリーデータに変換された画像データは、描画プロセッサ５１１によってメモリ５１２に再度格納される。ここまでの処理が、描画プロセッサ５１１が、メモリ５１２から読み出した画像データに対して行う一連の処理の２つ目の処理である。なお、主走査方向の１ラインとは、描画プロセッサ５１１が、画像データに回転処理を行う場合の処理単位の主走査方向の整数倍の長さを備えている。例えば、図１０（Ａ）に示す例では、描画プロセッサ５１１は、６４ｂｙｔｅ（主走査方向）×１６ライン（副走査方向）＝１６画素（主走査方向）×１６ライン（副走査方向）のデータ長の画像データを処理単位ブロックとして、後述する回転処理を行う。図１０（Ａ）に示す例では、処理単位ブロックがＸ方向に４個あるため、６４×４＝２５６ｂｙｔｅが主走査方向の１ラインの長さ（データ数）である。なお、以下では、画像データの主走査方向（図１０（Ａ）に示す横方向）をＸ方向とも呼び、副走査方向（図１０（Ａ）に示す縦方向）をＹ方向とも呼ぶ。
【００３９】
図７を参照しながら主走査方向の１ラインごとに区切られたバウンダリーデータに変換する処理について詳細に説明する。図７（Ａ）には、描画プロセッサ５１１によってメモリ５１２から読み出され、演算器群５１１２の入力バッファ６００に格納された画像データを示す。また、図７（Ｂ）には、描画プロセッサ５１１によって入力バッファ６００から読み出された画像データにダミーデータが付加して、演算器群５１１２の出力バッファ７００に格納した画像データを示す。図７（Ａ）に示すように入力バッファ６００に格納された画像データは、Ｘ方向の１ラインが２４０ｂｙｔｅの画像データを複数ライン（１ページ分）つなげた画像データである。すなわち、各ライン間に区切りはなく、連続する画像データである。このような構成の画像データに、図７（Ｂ）に示すようにダミーデータを付加し、Ｘ方向の１ラインが２４０ｂｙｔｅの画像データと１６ｂｙｔｅのダミーデータとを含む画像データとする。また、画像データにダミーデータを付加することで、Ｘ方向の１ラインごとに区切られた画像データとする。
【００４０】
なお、上述した説明では、描画プロセッサ５１１は、Ｘ方向（主走査方向）の１ラインごとにダミーデータを付加して、Ｘ方向１ラインごとに区切られたバウンダリーデータとすると説明した。これ以外に、描画プロセッサ５１１は、画像データのＹ方向（副走査方向）にもダミーデータを付加して、Ｙ方向１ラインごとに区切られたバウンダリーデータとしてもよい。Ｙ方向のライン数も、描画プロセッサ５１１が、画像データに回転処理を行う場合の処理単位のＹ方向の整数倍の長さを備えている。
【００４１】
次に、描画プロセッサ５１１は、メモリ５１２から画像データを再度読み出して、読み出した画像データを回転処理しながら、色空間の変換処理、色補正処理等の画像処理（本願発明の第１の画像処理に該当する）を行う。色空間の変換処理とは、例えば、ＲＧＢ形式の画像データをＹＭＣＫ形式の画像データに変換する処理である。処理後の画像データは、描画プロセッサ５１１によりメモリ５１２に再度書き込まれる。ここまでの処理が、描画プロセッサ５１１が、メモリ５１２から読み出した画像データに対して行う一連の処理の３つ目の処理である。なお、描画プロセッサ５１１が行う１つ目の一連の処理で、画像データに付加されたダミーデータは、描画プロセッサ５１１が画像データの色空間の変換処理を行う前に画像データから削除される。
【００４２】
次に、描画プロセッサ５１１は、メモリ５１２から画像データを再度読み出して、読み出した画像データに再度色補正（本発明の第２の画像処理に該当する）を行って、色補正後の画像データからダミーデータを消去する。ダミーデータを消去した画像データは、描画プロセッサ５１１によりメモリ５１２に再度書き込まれる。ここまでの処理が、描画プロセッサ５１１が、メモリ５１２から読み出した画像データに対して行う一連の処理の４つ目の処理である。そして、この画像データ（多値）に対して同様に描画プロセッサ５１１でスクリーン処理をすることにより、印刷に適した２値画像データを得て、メモリ５１２に格納する。
【００４３】
次に、描画プロセッサ５１１が行う２つ目の一連の処理のうち、画像データにダミーデータを付加するアラインメント回路２００について図８、９を参照しながら説明する。このアラインメント回路２００は、結線情報格納部５１１３に格納されている結線情報に基づいて、演算器群５１１２の各種演算器を組み合わせることで、演算器群５１１２に形成される。
アラインメント回路２００は、ＦＩＦＯメモリ２０１と、第１レジスタ２０２と、第２レジスタ２０３と、実データカウンタ２０４と、出力データカウンタ２０５と、ダミーデータカウンタ２０６と、ＯＲ回路２０７とを備える。
【００４４】
ＦＩＦＯメモリ２０１は、メモリ５１２から読み込んだ画像データを入力する。また、ＦＩＦＯメモリ２０１は、実データカウンタ２０４の出力信号（Read Enable信号）を入力する。ＦＩＦＯメモリ２０１の出力側は、第１レジスタ２０２と実データカウンタ２０４と出力データカウンタ２０５とに接続している。
ＦＩＦＯメモリ２０１は、画像データを入力すると（図９（Ａ）に示すInput Data）、画像データの入力タイミングに１クロック遅れて、Not Empty信号（図９（Ｂ）参照）を実データカウンタ２０４と出力データカウンタ２０５とに出力する。なお、クロックとは、アラインメント回路２００が同期をとる為に使用しているクロック信号である。また、ＦＩＦＯメモリ２０１は、実データカウンタ２０４から出力されるRead enable信号がアクティブの状態（なお、図９のタイミングチャートでは、信号レベルがハイレベルになることでアクティブ状態になるものとする）となると、メモリ５１２から入力した画像データ（図９（Ｆ）に示すFIFO Read Data信号参照）を第１レジスタ２０２に出力する。
【００４５】
実データカウンタ２０４は、入力側をＦＩＦＯメモリ２０１と出力データカウンタ２０５とに接続し、出力側がダミーデータカウンタ２０６とＦＩＦＯメモリ２０１とに接続している。実データカウンタ２０４は、画像データのデータ数を１ラインごとに１画素ずつカウントするカウンタである（図９（Ｄ）Actual data Counter参照）。なお、図９（Ａ）に示す画像データ(Input Data)は、１ライン分の画像データをＮ個（０、１、・・・Ｎ−１）として示している。実データカウンタ２０４は、ＦＩＦＯメモリ２０１からNot Empty信号を入力すると、このNot Empty信号の入力タイミングから１クロック遅れて、クロック信号のカウントを開始する。また、実データカウンタ２０４は、クロック信号のカウントを開始すると、ＦＩＦＯメモリ２０１にRead Enable信号を出力する。実データカウンタ２０４から送られるRead Enable信号がアクティブな状態のときに、ＦＩＦＯメモリ２０１は、第１レジスタ２０２へ画像データを出力する。また、Read Enable信号がアクティブな状態ではなくなると、ＦＩＦＯメモリ２０１は、画像データの第１レジスタ２０２への出力を停止する。また、実データカウンタ２０４は、画像データの１ライン分の画像データをカウントすると、ダミーデータカウンタ２０６に１ライン分の画像データのカウントが終了したことを通知する通知信号を出力する。
【００４６】
出力データカウンタ２０５は、入力側をＦＩＦＯメモリ２０１と、出力データカウンタ２０５の出力側に接続している。また、出力データカウンタ２０５は、出力側を実データカウンタ２０４と出力データカウンタ２０５の入力側に接続している。実データカウンタ２０４は、アラインメント回路２００が実際に出力する１ラインの画像データのデータ数をカウントするカウンタである。例えば、ＦＩＦＯメモリ２０１に入力した画像データの、１ライン分のデータ数がＮ個であり、付加するダミーデータのデータ数が３個であった場合、出力データカウンタ２０５は、０からＮ＋２までのＮ＋３をカウントする（図９（Ｃ）参照）。出力データカウンタ２０５は、画像データの１ライン分のデータ数と、１ラインに付加するダミーデータのデータ数とをカウントすると、リセット信号（Reset）を実データカウンタ２０４と出力データカウンタ２０５とに出力する。リセット信号（Reset）を入力した実データカウンタ２０４と出力データカウンタ２０５は、カウント値をリセットする。
【００４７】
ダミーデータカウンタ２０６は、入力側を実データカウンタ２０４に接続している。また、ダミーデータカウンタ２０６は、出力側をＯＲ回路２０７に接続している。ダミーデータカウンタ２０６は、実データカウンタ２０４が画像データの１ライン分のデータをカウントすると出力する通知信号を入力する。ダミーデータカウンタ２０６は、この通知信号を入力すると、クロック信号のカウントを開始し、画像データの１ラインに付加するダミーデータのデータ数分をカウントする。ダミーデータカウンタ２０６は、カウント動作を行っている間、ＯＲ回路２０７にValid2信号（図９（Ｉ）参照）を出力する。
【００４８】
第１レジスタ２０２は、入力側をＦＩＦＯメモリ２０１に接続し、出力側を第２レジスタ２０３とＯＲ回路２０７に接続している。第１レジスタ２０２は、ＦＩＦＯメモリ２０１から出力される画像データを入力して、入力した画像データを第２レジスタ２０３に出力する。また、第１レジスタ２０２は、ＦＩＦＯメモリ２０１から画像データを入力している期間、有効な画像データを入力していることを示すValid1信号をＯＲ回路２０７に出力する（図９（Ｇ）参照）。
【００４９】
ＯＲ回路２０７は、入力側をダミーデータカウンタ２０６と第１レジスタ２０２とに接続し、出力側を第２レジスタ２０３に接続する。
ＯＲ回路２０７は、第１レジスタ２０２からValid1信号を入力し、ダミーデータカウンタ２０６からValid2信号を入力する。ＯＲ回路２０７は、Valid1信号とValid2信号との少なくとも一方の信号状態がアクティブな状態のときにアクティブとなるValid信号を第２レジスタ２０３に出力する（図９（Ｊ）参照）。
【００５０】
第２レジスタ２０３は、入力側を第１レジスタ２０２とＯＲ回路２０７とに接続し、１ライン毎にダミーデータが付加された画像データを出力する。
第２レジスタ２０３は、第１レジスタ２０２から画像データを入力して、ＯＲ回路２０７からValid信号を入力する。第２レジスタ２０３は、Valid信号の信号レベルがアクティブレベルとなると、第１レジスタ２０２から入力した画像データを出力する。また、Valid信号がアクティブな状態であって、第１レジスタ２０２から新たな画像データが入力されなくなると、最後に入力した画像データ（図９（Ｋ）に示すＮ−１の画像データ）をコピーして出力する。第２レジスタ２０３から出力された画像データは、メモリ５１２に送られ格納される。      
【００５１】
次に、図１０を参照しながら、メモリ５１２から読み出された画像データに回転処理を行いながら、色空間の変換処理を施して、処理後の画像データを再度メモリ５１２に格納する手順について説明する。なお、回転処理とは、画像データをメモリ５１２から読み出してから、再度、メモリ５１２に格納するまでの一連の処理を示している。
図１０（Ａ）には、メモリ５１２に記憶した１ページ分の画像データを示す。図１０（Ａ）に示す画像データは、ダミーデータが付加され、１ラインが２５６ｂｙｔｅの画像データとしてメモリ５１２に記憶されている。ダミーデータを付加して６４ｂｙｔｅの整数倍の画像データとしたのは、描画プロセッサ５１１は、６４ｂｙｔｅのデータ長の画像データを処理単位として回転処理を行うためである。
【００５２】
描画プロセッサ５１１は、画像データを回転処理する場合、１ページ分の画像データを、図１０（Ａ）に示す複数の矩型領域に区切り、区切られた矩型領域ごとに回転処理を行う。図１０（Ａ）には、描画プロセッサ５１１が回転処理を行う領域を１２個の矩型領域（ａ，ｂ，ｃ，・・・ｋ，ｌ）（以下、ブロックと呼ぶ）を示す。本実施例では１６画素（６４ｂｙｔｅ）×１６画素を1ブロックとしている。描画プロセッサ５１１は、図１０（Ａ）に示すａ，ｂ，ｃ，・・・ｋ，ｌのブロックの順に、画像データを読み出して入力バッファ６００に記憶させる。描画プロセッサ５１１は、図１０（Ａ）に示すようにブロックａの画像データをＸ方向の正方向に沿って１ライン分読み出し、１ライン分の画像データを読み出すと、読み出し位置をＹ方向の負の方向に移動して次の１ライン分の画像データを読み込む。なお、各ブロック（ａ，ｂ，ｃ，・・・ｋ，ｌ）のＸ方向の長さが、描画プロセッサ５１１が回転処理の処理単位とする６４ｂｙｔｅである。
図１０（Ｂ）には、メモリ５１２から読み出され、入力バッファ６００に格納されたブロックａの画像データを示す。なお、他のブロックの画像データについても同様にメモリ５１２から読み出され、入力バッファ６００に格納される。
【００５３】
描画プロセッサ５１１は、各ブロックの画像データを入力バッファ６００に格納すると、入力バッファ６００に格納した画像データに色空間の変換等の処理を行い、変換後の画像データを、回転させながら出力バッファ７００に格納する。図１０（Ｃ）に、出力バッファ７００に格納されたブロックａの画像データを示す。図１０（Ｃ）に示すように、描画プロセッサ５１１は、Ｘ方向の正方向に沿って読み出したブロックａの画像データを出力バッファ７００のＹ方向に沿って書き込んでいき、各ブロックの画像データを回転させる。色空間の変換と、回転処理とを行った描画プロセッサ５１１は、出力バッファ７００に格納された画像データをメモリ５１２に書き込む。
図１０（Ｄ）には、処理後の画像データが書き込まれるメモリ５１２の領域を示す。図１０（Ｄ）に示すように描画プロセッサ５１１は、ブロックａの画像データをまずメモリ５１２に書き込む。画像データの書き込み方向は、図１０（Ｄ）に示すようにメモリ５１２のＸ方向の正方向に沿って書き込まれる。１ライン分の画像データを書き込むと、描画プロセッサ５１１は、画像データの書き込み位置をＹ方向の正の方向に移動させ、次の１ライン分の画像データをメモリ５１２に書き込む。ブロックａの書き込みが終わると、描画プロセッサ５１１はブロックｂを書き込む。ブロックｂは、図１０（Ｄ）に示すようにブロックａの右隣り（Ｘ方向の正方向）に書き込まれる。ブロックａ〜ブロックｃまでの画像データのメモリ５１２への書き込みが終わると、描画プロセッサ５１１は、ブロックｄをブロックａの下（Ｙ方向の正方向）に書き込む。以下、同様の手順で、ブロックｄ〜ｆ、ブロックｇ〜ｉ、ブロックｊ〜ｌの画像データがメモリ５１２に書き込まれる。
【００５４】
図１１には、描画プロセッサ５１１内部のメモリＩ／Ｆ回路５１１５からの読出コマンドで、メモリ５１２から読み出される画像データのデータ数と、描画プロセッサ５１１内部のメモリＩ／Ｆ回路５１１５からの書込コマンドでメモリ５１２に書き込まれる画像データのデータ数とを示す。
図１１に示すように、描画プロセッサ５１１は、バーストアクセスによってメモリ５１２から画像データを読み出して入力バッファ６００に書き込む。１つの読出コマンドでメモリ５１２から８ワードの画像データが読み出される。１ワードには、図１１に示すように２画素分の画像データが含まれ、１画素の画像データは、ＣＭＹＫ１バイト計４バイトであるので、８×８で６４ｂｙｔｅのデータとなる。同様に、描画プロセッサ５１１からの書込コマンドでメモリ５１２に一度に書き込まれる画像データ数も６４ｂｙｔｅとなる。この６４ｂｙｔｅが図１０（Ａ）に示す１ブロックのＸ方向の１ライン分の画像データ（１６画素）となる。
【００５５】
次に、描画プロセッサ５１１が行う４つ目の一連の処理のうち、画像データからダミーデータを削除するトリミング回路３００について図１２、１３を参照しながら説明する。このトリミング回路３００も、結線情報格納部５１１３に格納されている結線情報に基づいて、演算器群５１１２の各種演算器を組み合わせることで、演算器群５１１２に形成される。
トリミング回路３００は、図１２に示すように、第３レジスタ３０１と、第４レジスタ３０２と、画素カウンタ３０３と、第１比較器３０４と、第２比較器３０５と、ＡＮＤ回路３０６とを備える。
【００５６】
演算器群５１１２に構成される前段の処理回路で処理された画像データは、第３レジスタ３０１に送られる。第３レジスタ３０１の出力側は、画素カウンタ３０３と第４レジスタ３０２とに接続している。
第３レジスタ３０１は、前段の処理回路で処理された画像データを入力して、入力した画像データを第４レジスタ３０２に出力する。また、第３レジスタ３０１は、画像データを入力するごとに、画素カウンタ３０３に通知信号を出力する。
【００５７】
画素カウンタ３０３は、入力側で第３レジスタ３０１に接続し、出力側で第１比較器３０４と第２比較器３０５とに接続している。画素カウンタ３０３は、第３レジスタ３０１が画像データを入力したタイミングから１クロック遅れて第３レジスタ３０１に入力される画像データの画素数のカウントを開始する（図１３（Ｂ）Count参照）。画素カウンタ３０３のカウントするカウント値は、第１比較器３０４と第２比較器３０５とに出力される。
【００５８】
第１比較器３０４の入力側は、画素カウンタ３０３に接続し、出力側はＡＮＤ回路３０６に接続している。第１比較器３０４は、予め設定された設定値が記録されており、画素カウンタ３０３から出力されるカウント値がこの設定値となるとアクティブ状態となり、画素カウンタ３０３が１ライン分の画像データをカウントするとアクティブ状態ではなくなるValid1信号をＡＮＤ回路３０６に出力する(図１３（Ｃ）Valid1信号参照)。この予め設定された値は、画像データの先頭側に付加されたダミーデータをカウントするためのカウント値である。なお、図７、８、９に示す例では、１ライン分の画像データの後端側にダミーデータを付加した例を説明したが、画像データは回転処理等を行っているため、ダミーデータが１ラインの画像データの先頭に位置している場合もある。この様な場合に、１ラインの画像データの先頭に付加されたダミーデータを削除するための、第１比較器３０４を設けている。
【００５９】
第２比較器３０５の入力側は、画素カウンタ３０３に接続し、出力側はＡＮＤ回路３０６に接続している。第２比較器３０５は、予め設定された設定値が記録されており、画素カウンタ３０３がカウントを開始するとアクティブ状態となり、画素カウンタ３０３のカウント値が設定値となると、アクティブな状態ではなくなるValid2信号をＡＮＤ回路３０６に出力する（図１３（Ｄ）Valid2信号参照）。この予め設定された設定値は、画像データの後端側に付加されたダミーデータをカウントするためのカウント値である。
【００６０】
ＡＮＤ回路３０６は、入力側で第１比較器３０４と第２比較器３０５とに接続しており、出力側で第４レジスタ３０２に接続している。
ＡＮＤ回路３０６は、第１比較器３０４から出力されるValid1信号と、第２比較器３０５から出力されるValid2信号とが共にアクティブ状態にあるときに、アクティブ状態となるValid信号を第４レジスタ３０２に出力する(図１３（Ｅ）Valid信号参照)。なお、アラインメントとトリミングは１色の多値画像についてのみ記載したが、本実施例ではＹＭＣＫ４色分の回路が並列に接続され、同時に４色のアラインメント、およびトリミング処理を実施する。
【００６１】
第４レジスタ３０２は、入力側で第３レジスタ３０１とＡＮＤ回路３０６とに接続している。第４レジスタ３０２は、ＡＮＤ回路３０６から送られるValid信号がアクティブ状態のときに、第３レジスタ３０１から入力した画像データを出力する(図１３（Ｆ）Trimed Data参照)。第４レジスタ３０２から出力された画像データは、メモリ５１２に送られ記憶される。
【００６２】
以上のように本実施例では、描画プロセッサ５１１（５２１、５３１）は、メモリ５１２（５２２、５３２）から読み出された画像データに、回転処理、色変換処理、色空間変換の処理を連続して行い、処理後の画像データをメモリ５１２に格納している。従って、複数の処理をまとめて行うので、処理終了までの時間が短縮される。
【００６３】
上述した実施例は、本発明の好適な実施の例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施が可能である。
【符号の説明】
【００６４】
１  画像形成装置
１０  制御部（上位装置）
５０  画像処理アクセラレータ
５１０、５２０、５３０  描画部
５１１、５２１、５３１  描画プロセッサ（第１、第２、第３描画処理手段）
５１２、５２２、５３２  メモリ（記憶手段）
【図１】
2011204025.tif 000003
【図２】
2011204025.tif 000004
【図３】
2011204025.tif 000005
【図４】
2011204025.tif 000006
【図５】
2011204025.tif 000007
【図６】
2011204025.tif 000008
【図７】
2011204025.tif 000009
【図８】
2011204025.tif 000010
【図９】
2011204025.tif 000011
【図１０】
2011204025.tif 000012
【図１１】
2011204025.tif 000013
【図１２】
2011204025.tif 000014
【図１３】
2011204025.tif 000015