(57)【特許請求の範囲】
【請求項１】
画像データを格納する画像メモリを矩形領域に分割する分割手段と、
前記画像メモリから前記画像データを読み出す入力メモリアドレスを生成する入力アドレス生成手段と、
前記入力アドレス生成手段によって生成された入力メモリアドレスに基づいて、前記画像メモリにバーストアクセスして、画像データを読み出すメモリアクセス制御手段と、
前記入力アドレス生成手段によって生成された入力アドレスに基づいて前記画像データを読み込んで回転処理を施す回転処理手段と、を備え、
前記入力アドレス生成手段は、
前記画像メモリに格納された画像データを読み出す主走査方向の先頭メモリアドレスであって前記分割手段によって分割された矩形領域の先頭アドレスを生成する先頭メモリアドレス生成手段、および、
主走査方向の所定幅における先頭画素からの非アクセス量である先頭非アクセス量、前記主走査方向の所定幅における後端画素に至るまでの非アクセス量である後端非アクセス量、及び前記メモリアクセス制御手段がバーストアクセスする前記矩形領域内におけるバースト長を演算することにより、前記先頭メモリアドレス生成手段によって生成された先頭アドレスに対応する画素以降の読み込みを停止する画素数を演算する非アクセス量演算手段を、有し、
前記メモリアクセス制御手段は、前記先頭アドレスに対応する画素以降、前記非アクセス量演算手段によって前記先頭非アクセス量、前記後端非アクセス量、および前記バースト長に基づいて演算された画素数の画像データを読み飛ばして前記画像メモリにバーストアクセスし、格納された画像データを読み出し、前記回転処理手段によって回転処理を施された画像データを、前記画像メモリにバースト転送するものであることを特徴とする画像処理装置。
【請求項２】
前記画像メモリアクセス制御手段によって読み出された画像データを、画像メモリに格納するための出力メモリアドレスを生成する出力アドレス生成手段を、さらに備え、
前記メモリアクセス制御手段は、前記出力アドレス生成手段によって生成された出力メモリアドレスに基づいて、読み出した前記画像データを、前記画像メモリにバースト転送するものであることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記メモリアクセス制御手段は、前記出力メモリアドレス、および前記バースト長に基づいて、前記読み出した画像データを、前記画像メモリにバースト転送するものであることを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記メモリアクセス制御手段は、前記画像データを前記画像メモリに格納する際に、所定数の画素データに対してマスク処理を施して格納するマスク生成手段を有するものであることを特徴とする請求項２または３に記載の画像処理装置。
【請求項５】
前記マスク生成手段は、
上記先頭読み飛ばしに後続する所定の画素数だけマスク処理を施す先頭マスク生成手段、および、
上記後端読み飛ばしに先行する所定の画素数だけマスク処理を施す後端マスク生成手段を有し、
前記先頭マスク生成手段によるマスク処理、および前記後端マスク生成手段によるマスク処理によって、前記画像データに対してマスク処理を施すものであることを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記分割手段は、前記画像メモリをバイト単位の矩形領域に分割するものであることを特徴とする請求項１〜５のいずれか１つに記載の画像処理装置。
【請求項７】
画像処理装置における画像処理方法であって、
分割手段によって、画像データを格納する画像メモリを矩形領域に分割する分割工程と、
入力アドレス生成手段によって、前記画像メモリから前記画像データを読み出す入力メモリアドレスを生成する入力アドレス生成工程と、
メモリアクセス制御手段によって、前記入力アドレス生成工程で生成された入力メモリアドレスに基づいて、前記画像メモリにバーストアクセスして、画像データを読み出すメモリアクセス制御工程と、
回転処理手段によって、前記入力アドレス生成工程で生成された入力アドレスに基づいて前記画像データを読み込んで回転処理を施す回転処理工程と、を含み、
前記入力アドレス生成工程は、
先頭メモリアドレス生成手段によって、前記画像メモリに格納された画像データを読み出す主走査方向の先頭メモリアドレスであって前記分割工程で分割された矩形領域の先頭アドレスを生成する先頭メモリアドレス生成工程、および、
非アクセス量演算手段によって、主走査方向の所定幅における先頭画素からの非アクセス量である先頭非アクセス量、前記主走査方向の所定幅における後端画素に至るまでの非アクセス量である後端非アクセス量、及び前記メモリアクセス制御手段がバーストアクセスする前記矩形領域内におけるバースト長を演算することにより、前記先頭メモリアドレス生成工程で生成された先頭アドレスに対応する画素以降の読み込みを停止する画素数を演算する非アクセス量演算工程を、含み、
前記メモリアクセス制御工程は、前記先頭アドレスに対応する画素以降、前記非アクセス量演算工程で前記先頭非アクセス量、前記後端非アクセス量、および前記バースト長に基づいて演算された画素数の画像データを読み飛ばして前記画像メモリにバーストアクセスし、格納された画像データを読み出し、前記回転処理工程で回転処理を施された画像データを、前記画像メモリにバースト転送するものであることを特徴とする画像処理方法。
【請求項８】
出力アドレス生成手段によって、前記画像メモリアクセス制御工程で読み出された画像データを、画像メモリに格納するための出力メモリアドレスを生成する出力アドレス生成工程を、さらに含み、
前記メモリアクセス制御工程は、前記メモリアクセス制御手段が、前記出力アドレス生成工程で生成された出力メモリアドレスに基づいて、読み出した前記画像データを、前記画像メモリにバースト転送するものであることを特徴とする請求項７に記載の画像処理方法。
【請求項９】
前記メモリアクセス制御工程は、前記メモリアクセス制御手段が、前記出力メモリアドレス、および前記バースト長に基づいて、前記読み出した画像データを前記画像メモリにバースト転送するものであることを特徴とする請求項８に記載の画像処理方法。
【請求項１０】
前記メモリアクセス制御工程は、前記メモリアクセス制御手段が、前記画像データを前記画像メモリに格納する際に、マスク生成手段によって、所定数の画素データに対してマスク処理を施して格納するマスク生成工程を、含むものであることを特徴とする請求項８または９に記載の画像処理方法。
【請求項１１】
前記マスク生成工程は、
先頭マスク生成手段によって、上記先頭読み飛ばしに後続する所定の画素数だけマスク処理を施す先頭マスク生成工程、および、
後端マスク生成手段によって、上記後端読み飛ばしに先行する所定の画素数だけマスク処理を施す後端マスク生成工程を含み、
前記先頭マスク生成手段によるマスク処理、および前記後端マスク生成手段によるマスク処理によって、前記画像データに対してマスク処理を施すものであることを特徴とする請求項１０に記載の画像処理方法。
【請求項１２】
前記分割工程は、前記分割手段が、前記画像メモリをバイト単位の矩形領域に分割するものであることを特徴とする請求項７〜１１のいずれか１つに記載の画像処理方法。
【請求項１３】
請求項７〜１２のいずれか１つに記載の画像処理方法を、コンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法、その方法をコンピュータに実行させるプログラムに関するものである。
【背景技術】
【０００２】
従来、画像形成装置において、画像を回転するためには、画像をある矩形に区切り、ブロック単位でメモリから読み込み、回転した後、ブロック単位でメモリに書き戻すことを繰り返していた。例えば、１ｂｉｔ２値の画像を回転する際に、一つのブロックを２５６×２５６画素とすると、主走査方向に６４バイト、副走査方向に２５６ラインのブロックを、メモリから回転器のＳＲＡＭ（Ｓｔａｔｉｃ  ＲＡＭ）に読み込みながら回転し、メモリの書き込み位置に書き込んでいた。
【０００３】
ここで、ブロック単位でメモリにアクセスする場合、一般に、ブロックのスタートアドレスが、メモリバス幅というＨＷ制約によって制限を受ける。もしこれを無視して、例えば３２ｂｉｔ幅のメモリに対してバイト単位でスタートアドレスを設定すると、メモリアクセスのアドレス発生方法が複雑になる他、実装に従ってＨＷを設計しないとメモリアクセスの増加によるパフォーマンスの低下がおこる。
【０００４】
例えば、画像を９０度または２７０度回転させる場合、回転後画像の画像配置（メモリ上のアドレス）まで考慮して画像をブロック化しないと、パフォーマンスが低下する。一般に、回転前画像も回転後画像も、特定のバウンダリ制約を満たしたメモリ上のアドレス、主走査長、副走査長の画像しか回転できなかった。従って、回転するためのブロックは固定であり、半端なサイズの画像や、半端なメモリ位置（アドレス）に置かれた画像を回転することは出来なかった。
【０００５】
このような問題を解決するために、特許文献１の技術では、画像の回転処理において、ブロック単位で回転処理を施す回転処理単位を４バイトで行い、これに合わせてメモリへのアクセス単位も４バイトに設定している。同文献の技術においては、入力先頭アドレスが回転処理単位にアラインされていない場合、即ち格子と回転処理単位の先頭部分とが一致していない場合は、入力先頭アドレスの下位数ビットを０にしてアラインさせると同時に、マスク量を計算してマスク処理を施しながら、出力手段に出力させていた。
【０００６】
図１１は、従来例による画像の回転処理における入力アドレスの生成を説明する図である。ここで、回転処理単位１１１０を決定する格子１１０１（図中点線で表された格子）は、下位２ビットを０とするもの、即ち、入力アドレスが［１：０］＝０のものである。図１１に示すように、回転処理単位１１１０は４バイト（３２×３２ビット）であり、メモリへのアクセス単位も４バイトとなる。また、メモリのアドレスはバイト単位である。
【０００７】
この従来例では入力先頭アドレスが回転処理単位にアラインされていない場合、例えば領域１１１１における図中の左上の頂点１１１１ａの場合、入力アドレス変換手段が、入力先頭アドレスの下位数ビットを０にすると同時に、マスク量を計算し、出力手段へ出力する。図中、アラインされていない回転処理単位においては、データ１１２０中のデータ１１２１がマスクされる部分である。従って、有効データは、図中データ１１２２〜１１２４で表されるように、４バイトから１バイトを引いた３バイト分だけとなってしまう。
【０００８】
【特許文献１】特開２００１−２７４９７５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、この方式では、回転ブロックが小さな場合は、入力先頭アドレスを変換しマスク量を計算する回数が増加して、メモリアクセスに無駄があった。また、この方式のままで回転処理単位を大きくした場合には、マスクされるビット数が多くなり、使用しないアドレスの読み込みが増加して、メモリアクセスに無駄があった。
【００１０】
本発明は上記の問題に鑑みてなされ、その目的は、無駄なメモリアクセスを省略でき、画像処理効率の高い画像処理装置、画像処理方法、その方法をコンピュータに実行させるプログラムを提供することである。
【課題を解決するための手段】
【００１１】
上述した課題を解決し、目的を達成するために、請求項１にかかる発明は、画像データを格納する画像メモリを矩形領域に分割する分割手段と、前記画像メモリから前記画像データを読み出す入力メモリアドレスを生成する入力アドレス生成手段と、前記入力アドレス生成手段によって生成された入力メモリアドレスに基づいて、前記画像メモリにバーストアクセスして、画像データを読み出すメモリアクセス制御手段と、前記入力アドレス生成手段によって生成された入力アドレスに基づいて前記画像データを読み込んで回転処理を施す回転処理手段と、を備え、前記入力アドレス生成手段は、前記画像メモリに格納された画像データを読み出す主走査方向の先頭メモリアドレスであって前記分割手段によって分割された矩形領域の先頭アドレスを生成する先頭メモリアドレス生成手段、および、主走査方向の所定幅における先頭画素からの非アクセス量である先頭非アクセス量、前記主走査方向の所定幅における後端画素に至るまでの非アクセス量である後端非アクセス量、及び前記メモリアクセス制御手段がバーストアクセスする前記矩形領域内におけるバースト長を演算することにより、前記先頭メモリアドレス生成手段によって生成された先頭アドレスに対応する画素以降の読み込みを停止する画素数を演算する非アクセス量演算手段を、有し、前記メモリアクセス制御手段は、前記先頭アドレスに対応する画素以降、前記非アクセス量演算手段によって前記先頭非アクセス量、前記後端非アクセス量、および前記バースト長に基づいて演算された画素数の画像データを読み飛ばして前記画像メモリにバーストアクセスし、格納された画像データを読み出し、前記回転処理手段によって回転処理を施された画像データを、前記画像メモリにバースト転送するものであることを特徴とする。
【００１４】
請求項２にかかる発明は、請求項１に記載の画像処理装置において、前記画像メモリアクセス制御手段によって読み出された画像データを、画像メモリに格納するための出力メモリアドレスを生成する出力アドレス生成手段を、さらに備え、前記メモリアクセス制御手段は、前記出力アドレス生成手段によって生成された出力メモリアドレスに基づいて、読み出した前記画像データを、前記画像メモリにバースト転送するものであることを特徴とする。
【００１５】
請求項３にかかる発明は、請求項２に記載の画像処理装置において、前記メモリアクセス制御手段は、前記出力メモリアドレス、および前記バースト長に基づいて、前記読み出した画像データを、前記画像メモリにバースト転送するものであることを特徴とする。
【００１６】
請求項４にかかる発明は、請求項２または３に記載の画像処理装置において、前記メモリアクセス制御手段は、前記画像データを前記画像メモリに格納する際に、所定数の画素データに対してマスク処理を施して格納するマスク生成手段を有するものであることを特徴とする。
【００１７】
請求項５にかかる発明は、請求項４に記載の画像処理装置において、前記マスク生成手段は、上記先頭読み飛ばしに後続する所定の画素数だけマスク処理を施す先頭マスク生成手段、および、上記後端読み飛ばしに先行する所定の画素数だけマスク処理を施す後端マスク生成手段を有し、前記先頭マスク生成手段によるマスク処理、および前記後端マスク生成手段によるマスク処理によって、前記画像データに対してマスク処理を施すものであることを特徴とする。
【００２０】
請求項６にかかる発明は、請求項１〜５のいずれか１つに記載の画像処理装置において、前記分割手段は、前記画像メモリをバイト単位の矩形領域に分割するものであることを特徴とする。
【００２１】
請求項７にかかる発明は、画像処理装置における画像処理方法であって、分割手段によって、画像データを格納する画像メモリを矩形領域に分割する分割工程と、入力アドレス生成手段によって、前記画像メモリから前記画像データを読み出す入力メモリアドレスを生成する入力アドレス生成工程と、メモリアクセス制御手段によって、前記入力アドレス生成工程で生成された入力メモリアドレスに基づいて、前記画像メモリにバーストアクセスして、画像データを読み出すメモリアクセス制御工程と、回転処理手段によって、前記入力アドレス生成工程で生成された入力アドレスに基づいて前記画像データを読み込んで回転処理を施す回転処理工程と、を含み、前記入力アドレス生成工程は、先頭メモリアドレス生成手段によって、前記画像メモリに格納された画像データを読み出す主走査方向の先頭メモリアドレスであって前記分割工程で分割された矩形領域の先頭アドレスを生成する先頭メモリアドレス生成工程、および、非アクセス量演算手段によって、主走査方向の所定幅における先頭画素からの非アクセス量である先頭非アクセス量、前記主走査方向の所定幅における後端画素に至るまでの非アクセス量である後端非アクセス量、及び前記メモリアクセス制御手段がバーストアクセスする前記矩形領域内におけるバースト長を演算することにより、前記先頭メモリアドレス生成工程で生成された先頭アドレスに対応する画素以降の読み込みを停止する画素数を演算する非アクセス量演算工程を、含み、前記メモリアクセス制御工程は、前記先頭アドレスに対応する画素以降、前記非アクセス量演算工程で前記先頭非アクセス量、前記後端非アクセス量、および前記バースト長に基づいて演算された画素数の画像データを読み飛ばして前記画像メモリにバーストアクセスし、格納された画像データを読み出し、前記回転処理工程で回転処理を施された画像データを、前記画像メモリにバースト転送するものであることを特徴とする。
【００２４】
請求項８にかかる発明は、請求項７に記載の画像処理方法において、出力アドレス生成手段によって、前記画像メモリアクセス制御工程で読み出された画像データを、画像メモリに格納するための出力メモリアドレスを生成する出力アドレス生成工程を、さらに含み、前記メモリアクセス制御工程は、前記メモリアクセス制御手段が、前記出力アドレス生成工程で生成された出力メモリアドレスに基づいて、読み出した前記画像データを、前記画像メモリにバースト転送するものであることを特徴とする。
【００２５】
請求項９にかかる発明は、請求項８に記載の画像処理方法において、前記メモリアクセス制御工程は、前記メモリアクセス制御手段が、前記出力メモリアドレス、および前記バースト長に基づいて、前記読み出した画像データを前記画像メモリにバースト転送するものであることを特徴とする。
【００２６】
請求項１０にかかる発明は、請求項８または９に記載の画像処理方法において、前記メモリアクセス制御工程は、前記メモリアクセス制御手段が、前記画像データを前記画像メモリに格納する際に、マスク生成手段によって、所定数の画素データに対してマスク処理を施して格納するマスク生成工程を、含むものであることを特徴とする。
【００２７】
請求項１１にかかる発明は、請求項１０に記載の画像処理方法において、前記マスク生成工程は、先頭マスク生成手段によって、上記先頭読み飛ばしに後続する所定の画素数だけマスク処理を施す先頭マスク生成工程、および、後端マスク生成手段によって、上記後端読み飛ばしに先行する所定の画素数だけマスク処理を施す後端マスク生成工程を含み、前記先頭マスク生成手段によるマスク処理、および前記後端マスク生成手段によるマスク処理によって、前記画像データに対してマスク処理を施すものであることを特徴とする。
【００３０】
請求項１２にかかる発明は、請求項７〜１１のいずれか１つに記載の画像処理方法において、前記分割工程は、前記分割手段が、前記画像メモリをバイト単位の矩形領域に分割するものであることを特徴とする。
【００３１】
請求項１３にかかる発明は、プログラムにおいて、請求項７〜１２のいずれか１つに記
載の画像処理方法を、コンピュータに実行させることを特徴とする。
【発明の効果】
【００３２】
請求項１にかかる発明によれば、画像データを格納する画像メモリから画像データを読み出す入力メモリアドレスを生成し、生成された入力メモリアドレスに基づいて、画像メモリにバーストアクセスして、画像データを読み出すので、メモリアクセスを省略でき、画像処理効率の高い画像処理装置を提供できるという効果を奏する。
【００３３】
また、請求項１にかかる発明によれば、画像メモリに格納された画像データを読み出す主走査方向の先頭メモリアドレスを生成し、生成された先頭メモリアドレスに対応する画素以降の読み込みを停止する画素数を演算し、先頭メモリアドレスに対応する画素以降、演算された画素数の画像データを読み飛ばして画像メモリにバーストアクセスし、格納された画像データを読み出すことによって、不必要な画素に対応するメモリにアクセスすることが無いので、メモリアクセスを省略でき、画像処理効率の高い画像処理装置を提供できるという効果を奏する。
また、請求項１にかかる発明によれば、生成された入力アドレスに基づいて画像データを読み込んで回転処理を施す回転処理し、回転処理を施された画像データを、画像メモリにバースト転送することによって、画像の回転処理においても、メモリアクセスを省略でき、画像処理効率の高い画像処理装置を提供できるという効果を奏する。
【００３４】
請求項１にかかる発明によれば、主走査方向の所定幅における先頭画素からの非アクセス量である先頭非アクセス量を演算し、主走査方向の所定幅における後端画素に至るまでの非アクセス量である後端非アクセス量を演算し、バーストアクセスするバースト長を演算し、先頭メモリアドレス、先頭非アクセス量、後端非アクセス量、およびバースト長に基づいて、画像メモリにバーストアクセスするので、主走査方向に沿った先頭と後端における不必要な画素に対応するメモリにアクセスすることが無いので、メモリアクセスを省略でき、画像処理効率の高い画像処理装置を提供できるという効果を奏する。
また、請求項１にかかる発明によれば、画像メモリを矩形領域に分割し、分割された矩形領域の先頭アドレスを生成し、矩形領域内におけるバースト長を演算してバースト転送することによって、メモリアクセスを省略でき、画像処理効率の高い画像処理装置を提供できるという効果を奏する。
【００３５】
請求項２にかかる発明によれば、読み出された画像データを、画像メモリに格納するための出力メモリアドレスを生成して、出力メモリアドレスに基づいて、読み出した画像データを、画像メモリにバースト転送することによって、不必要な画素に対応するメモリにアクセスすることが無く転送するので、メモリアクセスを省略でき、画像処理効率の高い画像処理装置を提供できるという効果を奏する。
【００３６】
請求項３にかかる発明によれば、出力メモリアドレス、およびバースト長に基づいて、読み出した画像データを画像メモリにバースト転送することによって、出力メモリアドレスにアクセスするだけでバースト書き込みを行うので、メモリアクセスを省略でき、画像処理効率の高い画像処理装置を提供できるという効果を奏する。
【００３７】
請求項４にかかる発明によれば、画像データを画像メモリに格納する際に、所定数の画素データに対してマスク処理を施して格納するので、不必要な書き込みを省略でき、効率が高く、メモリアクセスを省略でき、画像処理効率の高い画像処理装置を提供できるという効果を奏する。
【００３８】
請求項５にかかる発明によれば、マスク処理においては、先頭非アクセス量に後続する所定の画素数だけマスク処理を施し、後端非アクセス量に先行する所定の画素数だけマスク処理を施すことによって、画像データを画像メモリに格納する際に、所定数の画素データに対して主走査方向の所定幅において先頭と後端の両方においてマスク処理を施して格納するので、不必要な書き込みを省略でき、効率が高く、メモリアクセスを省略でき、画像処理効率の高い画像処理装置を提供できるという効果を奏する。
【００４１】
請求項６にかかる発明によれば、分割においては、画像メモリをバイト単位の矩形領域に分割することによって、バイト単位でバーストアクセスすることができるので、メモリアクセスを省略でき、画像処理効率の高い画像処理装置を提供できるという効果を奏する。
【００４２】
請求項７にかかる発明によれば、画像データを格納する画像メモリから画像データを読み出す入力メモリアドレスを生成し、生成された入力メモリアドレスに基づいて、画像メモリにバーストアクセスして、画像データを読み出すので、メモリアクセスを省略でき、画像処理効率の高い画像処理方法を提供できるという効果を奏する。
【００４３】
また、請求項７にかかる発明によれば、画像メモリに格納された画像データを読み出す主走査方向の先頭メモリアドレスを生成し、生成された先頭メモリアドレスに対応する画素以降の読み込みを停止する画素数を演算し、先頭メモリアドレスに対応する画素以降、演算された画素数の画像データを読み飛ばして画像メモリにバーストアクセスし、格納された画像データを読み出すことによって、不必要な画素に対応するメモリにアクセスすることが無いので、メモリアクセスを省略でき、画像処理効率の高い画像処理方法を提供できるという効果を奏する。
また、請求項７にかかる発明によれば、生成された入力アドレスに基づいて画像データを読み込んで回転処理を施す回転処理し、回転処理を施された画像データを、画像メモリにバースト転送することによって、画像の回転処理においても、メモリアクセスを省略でき、画像処理効率の高い画像処理方法を提供できるという効果を奏する。
【００４４】
請求項７にかかる発明によれば、主走査方向の所定幅における先頭画素からの非アクセス量である先頭非アクセス量を演算し、主走査方向の所定幅における後端画素に至るまでの非アクセス量である後端非アクセス量を演算し、バーストアクセスするバースト長を演算し、先頭メモリアドレス、先頭非アクセス量、後端非アクセス量、およびバースト長に基づいて、画像メモリにバーストアクセスするので、主走査方向に沿った先頭と後端における不必要な画素に対応するメモリにアクセスすることが無いので、メモリアクセスを省略でき、画像処理効率の高い画像処理方法を提供できるという効果を奏する。
また、請求項７にかかる発明によれば、画像メモリを矩形領域に分割し、分割された矩形領域の先頭アドレスを生成し、矩形領域内におけるバースト長を演算してバースト転送することによって、メモリアクセスを省略でき、画像処理効率の高い画像処理方法を提供できるという効果を奏する。
【００４５】
請求項８にかかる発明によれば、読み出された画像データを、画像メモリに格納するための出力メモリアドレスを生成して、出力メモリアドレスに基づいて、読み出した画像データを、画像メモリにバースト転送することによって、不必要な画素に対応するメモリにアクセスすることが無く転送するので、メモリアクセスを省略でき、画像処理効率の高い画像処理方法を提供できるという効果を奏する。
【００４６】
請求項９にかかる発明によれば、出力メモリアドレス、およびバースト長に基づいて、読み出した画像データを画像メモリにバースト転送することによって、出力メモリアドレスにアクセスするだけでバースト書き込みを行うので、メモリアクセスを省略でき、画像処理効率の高い画像処理方法を提供できるという効果を奏する。
【００４７】
請求項１０にかかる発明によれば、画像データを画像メモリに格納する際に、所定数の画素データに対してマスク処理を施して格納するので、不必要な書き込みを省略でき、効率が高く、メモリアクセスを省略でき、画像処理効率の高い画像処理方法を提供できるという効果を奏する。
【００４８】
請求項１１にかかる発明によれば、マスク処理においては、先頭非アクセス量に後続する所定の画素数だけマスク処理を施し、後端非アクセス量に先行する所定の画素数だけマスク処理を施すことによって、画像データを画像メモリに格納する際に、所定数の画素データに対して主走査方向の所定幅において先頭と後端の両方においてマスク処理を施して格納するので、不必要な書き込みを省略でき、効率が高く、メモリアクセスを省略でき、画像処理効率の高い画像処理方法を提供できるという効果を奏する。
【００５１】
請求項１２にかかる発明によれば、分割においては、画像メモリをバイト単位の矩形領域に分割することによって、バイト単位でバーストアクセスすることができるので、メモリアクセスを省略でき、画像処理効率の高い画像処理方法を提供できるという効果を奏する。
【００５２】
請求項１３にかかる発明によれば、請求項７〜１２のいずれか１つに記載の画像処理方法を、コンピュータに実行させるプログラムを提供できるという効果を奏する。
【発明を実施するための最良の形態】
【００５３】
以下に添付図面を参照して、この発明にかかる画像処理装置、画像処理方法、その方法をコンピュータに実行させるプログラムの最良な実施の形態、および変形例を詳細に説明する。
【００５４】
（実施の形態）
実施の形態による画像処理装置は、画像情報を読み込み回転処理単位に分割して回転処理を施す際に、回転処理単位の先頭アドレスとバースト長情報を取得し、読み込みの先頭アドレスからバーストアクセスして読み込む。回転後に書き込む際には、書き込みの先頭アドレスからバースト転送して書き込む。
【００５５】
そして、回転処理単位における画素データの先頭アドレスが回転処理単位にアラインされていない場合は、メモリアクセスしない部分を読み飛ばし、かつ画像データのない部分にマスク処理を施して、バースト転送して書き込む。即ち、先頭アドレスを決定し、メモリアクセスしない部分を設定して読み込み、必要なビット数だけのマスクを設定して、バースト転送することによって、回転前画像と回転後画像のスタートアドレスをバイト単位で設定でき、アラインしない領域においては不必要なメモリアクセスを停止し、かつマスク処理を施してバースト転送することによって無駄なメモリアクセスを減らすことができるので、画像の回転処理において回転速度の低下を抑える、回転処理の効率を高めることができる。
【００５６】
図１は、実施の形態による画像処理装置を備えた画像形成装置の機能的ブロック図である。画像形成装置は、スキャナ１、入力処理部２、操作表示部３、出力処理部４、画像出力部５、記憶部（ＨＤＤ）６、および画像処理装置１０を備える。
【００５７】
スキャナ１は、原稿画像を読み取る。スキャナ１は、副走査方向に移動する原稿に読取光を照射し、その反射光をＣＣＤ（Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ）等の光電変換素子で光電変換することによって、当該原稿の画像を読み取る。スキャナ１は、搭載する複数枚の原稿を一枚ずつ送り出すＡＤＦ（Ａｕｔｏ  Ｄｏｃｕｍｅｎｔ  Ｆｅｅｄｅｒ）を備えている場合、ＡＤＦから送られてくる原稿を順次、アナログ画像データとして読み取って、このアナログ画像データを入力処理部２に送信する。
【００５８】
入力処理部２は、スキャナ１が読み取ったアナログデータを受信し、デジタル画像データに変換して記憶部６に出力して格納させ、それと共に、画像処理装置１０に送信する。
【００５９】
操作表示部３は、プレビュー画像を表示し、また操作者による設定入力を受け付ける。操作表示部３は、スキャナ１による読み取り、入力処理部２による入力処理、操作表示部３によるプレビュー画像の表示、出力処理部４による画像の出力処理、および画像出力部５による画像の出力処理などの設定入力を受け付ける。また、操作表示部３は、各種の画像処理が施された場合、処理後の画像を表示する。
【００６０】
操作表示部３は、例えば、液晶ディスプレイ等が用いられ、液晶モニタの上部に、タッチパネルを配置して構成する。操作表示部３は、各種操作キー、および液晶ディスプレイ上に配設されたタッチパネルを有する。操作キーやタッチパネルからは、画像形成装置の操作を行うのに必要な各種操作が行われるとともに、特に、ユーザが印刷したい原稿に対する原稿画像の画像処理（画像加工）、印刷条件に関する設定、後処理に関する設定等の各種設定操作を受け付ける。
【００６１】
操作表示部３は、読み取った画像に対する回転処理を施す要求入力を受け付ける。受け付けられる回転処理の要求は、例えば、時計回りに９０度、１８０度、および２７０度である。あるいは、数値情報による入力を受け付ける構成とすることもできる。また、分度器様のアイコンを表示して、角度を接触入力で受け付ける構成とすることもできる。
【００６２】
画像処理装置１０は、入力処理部２によって処理された画像データを受信し、操作表示部３によって受け付けられた回転処理の要求に従って、読み込んだ画像情報を２次元分布における矩形状の回転処理単位に分割して、回転処理を施し、回転処理後には分割された処理単位を合わせて１つとした画像情報として、操作表示部３における表示として出力する。また出力処理部４における画像出力として出力する。
【００６３】
出力処理部４は、画像処理装置１０によって処理された画像に対して、受け付けられた処理設定に基づいて出力処理を施す。また、出力処理部４は、画像データに対してガンマ変換など各種の必要な画像処理を施す。
【００６４】
出力処理部４は、また、出力処理を施す際に、画像メモリから読み込んで処理を施し、出力する際に、実施の形態による画像処理装置１０によって読み込み、および書き込みの制御を受ける構成とすることができる。
【００６５】
画像出力部５は、出力処理部４によって施された出力処理の設定に従って画像出力する。ここで、画像出力部５が施す出力処理は、出力用紙に画像形成して画像出力するだけでなく、ステープル処理、パンチ穴空け処理など、印刷後の後処理も含む。
【００６６】
記憶部６は、大容量のＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）やハードディスク（ＨＤＤ）等の大容量記憶媒体で構成され、スキャナ１が読み取った画像データをファイル毎に分類して格納する。
【００６７】
本発明の画像処理装置は、実施の形態においては回転処理を施す例について説明するが、画像の回転処理だけではなく、所定のブロックを処理単位とする画像処理であって処理後の画素値が主走査方向に所定の規則で並べられるものに対して、適用することができる。例えば、上記したように出力処理部４が出力処理する際に適用できる。また、入力処理部２において、例えば、γ補正処理を施す際に、一旦記憶部６に格納した画像ファイルを画像メモリに保持し、ここから読み込んで処理を施して再び画像メモリに格納するなどの処理の場合にも、適用することができる。
【００６８】
図２は、実施の形態による画像処理装置の機能的ブロック図である。画像処理装置１０は、画像サイズ設定部１１、回転角度設定部１２、入力アドレス設定部１３、出力アドレス設定部１４、画像分割部１５、入力アドレス生成部１６、出力アドレス生成部１７、メモリ１８、入力部１９、回転部２０、および出力部２１を備える。
【００６９】
画像サイズ設定部１１は、入力処理部２が入力処理を施した画像データから、処理しようとする画像の画像サイズを設定する。ここで、画像データは１ページごとに処理を施す。
【００７０】
回転角度設定部１２は、操作表示部３から操作者が選択入力する画像の回転角度を、処理すべき画像データに設定する。
【００７１】
入力アドレス設定部１３は、メモリ１８に格納された画像情報を回転処理する際に、入力部１９が格納された画像情報１ページ分の全体を読み込む時のスタートアドレスを、設定する。入力アドレス設定部１３は、入力した画像データの横幅および縦の長さの２つのパラメータを設定する。
【００７２】
出力アドレス設定部１４は、メモリ１８に格納された画像情報が回転処理を施され、出力部２１が出力する際に、画像情報１ページ分全体を書き込む時のスタートアドレスを設定する。出力アドレス設定部１４は、メモリに書き込む際の画像データの横幅および縦の長さの２つのパラメータを設定する。
【００７３】
画像分割部１５は、画像サイズ設定部１１によって設定された画像のサイズに従って、画像データに対応するメモリアドレスを、回転処理単位に従って分割する。ここでは、分割される回転処理単位は、横（主走査方向）が４バイト×４の１６バイトであり、縦（副走査方向）が１２８ラインの正方領域とする。このように、従来の分割領域から比較すると相当に大きな領域であるので、主走査方向に最大で１６バイト分をバースト転送することによって、個々の画素点に対応するメモリアドレスにアクセスする必要がないので、メモリアクセスを減らすことができる。本願発明は、さらに、この回転処理単位がメモリにアラインされていない場合に対しても適用できる。
【００７４】
入力アドレス生成部１６は、画像分割部１５によって分割処理された回転処理単位における読み込みアドレス、およびバースト量の情報を生成する。ここで、メモリ１８は、少なくとも１ページ分の画像データを格納するものである。あるいは、メモリ１８は、好適には、読み込みおよび書き込みの２ページ分以上の画像データを格納できる容量を有するものである。
【００７５】
入力アドレス生成部１６は、画像分割部１５から回転処理単位における主走査方向の先頭アドレスを受信し、非アクセス量およびマスク量を演算し、先頭アドレスとバースト量の情報を入力部１９に送信する。
【００７６】
入力部１９は、入力アドレス生成部１６が生成する回転処理単位の１ラインの先頭アドレス、非アクセス量、およびバースト量に従って、メモリ１８から画像情報を読み出す。ここで、回転処理単位における主走査方向の先頭アドレス情報を受け取って、非アクセス量だけ読み飛ばし、１ラインの残りをバーストアクセスすることによって、先頭アドレスより後で非アクセス量より後のメモリアクセスを停止する。続いて、回転処理単位における次のラインの先頭アドレス情報を受け取って、同様の読み込み処理を施す。回転処理単位ごとに、このような読み込み処理を施す。
【００７７】
回転部２０は、ＳＲＡＭ（FFで構成されていても可能）であって、回転処理単位を含む大きさである。回転部２０は、入力部１９によって読み出された回転処理単位の画像情報を、回転処理を施した形で一時的に保持する。
【００７８】
出力部２１は、回転部２０によって回転処理を施されて保持された状態の画像情報を、出力アドレス生成部１７の生成する先頭アドレスによって書き込み、以降は回転処理単位の主走査方向に非アクセス量、マスク量、およびバースト量に基づいてバーストアクセスして１ライン分を書き込む。バーストアクセスして書き込む間は、メモリの読み込みがない。続いて、出力部２１は、回転処理単位における次のラインの先頭アドレス情報を受け取って同様のバーストアクセスによる書き込み処理を施す。回転処理単位ごとに、このような書き込み処理を施す。
【００７９】
図３は、入力アドレス生成部１６の機能的ブロック図である。入力アドレス生成部１６は、回転処理単位の画素を読み込む際の、主走査方向のメモリ先頭アドレス情報、およびバースト長情報を生成する。また、先頭マスク量、および後端マスク量を生成して、入力部１９がマスク処理を施す構成とすることもできる。
【００８０】
入力アドレス生成部１６は、転送量演算および次ラインの先頭アドレス生成部１６１、マスク生成部１６２、メモリアドレス生成部１６３、および非アクセス量演算部１６４を備える。
【００８１】
転送量演算および次ラインの先頭アドレス生成部１６１は、入力アドレス生成部１６の外部からは、画像サイズ設定部１１から、分割前の画像の主走査長の情報を受信する。また、転送量演算および次ラインの先頭アドレス生成部１６１は、画像分割部１５から分割後の回転処理単位における画像主走査長の情報を受信する。また、転送量演算および次ラインの先頭アドレス生成部１６１は、画像分割部１５から分割後の回転処理単位における画像メモリ先頭アドレスの情報を受信する。また、転送量演算および次ラインの先頭アドレス生成部１６１は、画像分割部１５から分割後の回転処理単位における画像副走査長の情報を受信する。
【００８２】
さらに、転送量演算および次ラインの先頭アドレス生成部１６１は、入力アドレス生成部１６の内部からは、マスク生成部１６２からマスク情報を受信し、かつ非アクセス量演算部１６４からバースト長の情報を受信する。
【００８３】
マスク生成部１６２は、先頭マスク生成部１６２ａおよび後端マスク生成部１６２ｂを有し、それぞれ先頭マスク量および後端マスク量の情報を生成する。
【００８４】
非アクセス量演算部１６４は、先頭非アクセス量演算部１６４ａ、後端非アクセス量演算部１６４ｂ、およびバースト長演算部１６４ｃを有し、それぞれ先頭非アクセス量、後端非アクセス量、およびバースト長の情報を演算する。
【００８５】
転送量演算および次ラインの先頭アドレス生成部１６１は、これらの情報から、転送量を演算し、演算結果の転送量の情報を、マスク生成部１６２、メモリアドレス生成部１６３、および非アクセス量演算部１６４に送信する。
【００８６】
メモリアドレス生成部１６３は、入力部１９が読み出すべき回転処理単位の主走査方向のメモリ先頭アドレスの情報を生成して入力部１９に送信する。
【００８７】
非アクセス量演算部１６４の有するバースト長演算部１６４ｃは、バースト長の情報を入力部１９に送信する。
【００８８】
入力部１９は、これら２つの情報によって、回転処理単位における１ライン分の主走査方向の先頭アドレスからメモリに対してバーストアクセスするため、メモリから高速にかつ効率的に読み込むことができる。
【００８９】
先頭マスク生成部１６２ａは、メモリ先頭アドレスの情報を受信し、回転処理単位の副走査方向の先頭においてマスクすべきビットの情報を転送量演算および次ラインの先頭アドレス生成部１６１に送信する。マスクすることによって、アラインされていない部分を見掛け上データの無い状態として読み込む。ここでは、マスク処理を施すのは、書き込み処理の場合だけでよい。
【００９０】
先頭非アクセス量演算部１６４ａは、先頭部分のアラインされていない部分の情報のうち、主走査方向にマスクせずに読み飛ばすべき量を演算する。後端非アクセス量演算部１６４ｂは、後端部分のアラインされていない部分の情報のうち、主走査方向にマスクせずに読み飛ばすべき量を演算する。入力部１９は、これによって、アラインされていない部分のうち、非アクセス量だけ読み飛ばすことによって、メモリアクセスおよび画素値の読み込み無しに、入力処理を行うことができる。
【００９１】
バースト長演算部１６４ｃは、メモリ先頭アドレスを読み込んで読み飛ばした後、メモリアドレスを読み込まずに主走査方向にバーストアクセスするバースト長を演算する。バースト長演算部１６４ｃによって演算されたバースト長の情報は、入力部１９に送信される。入力部１９は、これによって、必要なバースト長だけメモリアクセスすることによって効率的に読み込むことができる。
【００９２】
入力部１９は、回転処理単位における１ライン分の先頭アドレスに従って、回転処理単位の主走査方向の先頭アドレスに対応する画素値を読み出し、そのまま、必要なバースト長分だけバーストアクセスして画素値を読み出す。アラインされたメモリアドレスから実際に必要な画像の存在するアドレスまでは、メモリにアクセスすることがないため、メモリアクセス時間を短縮することができる。そして、回転処理単位内で主走査方向にバースト長だけ読み込んだ後、回転処理単位内でアクセスされていない副走査方向のラインがあった場合は、入力アドレス生成部１６が生成する次のラインの先頭アドレスを受信して、受信した先頭アドレスに従って、上記と同様のバーストアクセスを行う。このようにして、主走査方向のアクセスを順次繰り返すことによって、回転処理単位内の画素データをバーストアクセスによって読み込む。
【００９３】
図４は、入力部によるメモリへのバーストアクセスを説明する模式図である。２次元のメモリ上に分布する画素に対応するメモリアドレス４００は、回転処理単位を格子単位として格子状に分割されている。ここで、格子の縦のラインは、下位４ビットが０のものを取っている。記号では図中［３：０］＝０で表現されるアドレスが縦のラインである。
【００９４】
ここでは、回転処理単位は、１６バイトを主走査方向幅とし、副走査方向に１２８本のラインで構成する。回転処理単位は例えば、図中符号４２０などで表現されるように、１つの格子で囲まれた領域である。ここで、矩形状の画像データに対応するメモリ領域４５１は、画像データの頂点４３１に見るように、入力先頭アドレスが回転処理単位にアラインされていない。即ち、領域４３０および４５０はアラインされていない。それに対して、領域４２０などはアラインされている。
【００９５】
今、アドレスデータ４５１は、領域４５０のある主走査方向１ライン分の画像データを取り出して、模式的に示したもので、１６バイトを主走査方向に模式的に表現している。このアドレスデータ４５１は、先頭アドレスが回転処理単位にアラインされていないので、先頭から８バイトまではメモリアクセス無し（符号４５２）とする。そして、続く９バイト目からの４バイトでは、このバイト内において途中から画素値が始まるので、該途中までの１バイトに対してマスク処理を施す（符号４５３）。そして、３バイト分の有効データ部分および残りのマスク無しの４バイト分の有効データ（符号４５４）が続く。実際上の画素値にアクセスするのは、マスク４５３の部分以降である。
【００９６】
従って、データ４５１においては、メモリアクセス無しに読み飛ばし、入力先頭アドレスをデータ４５３とし、データ４５３においてマスク処理を施し、それ以降の有効データ４５４についてはバーストアクセスして読み込む。
【００９７】
図５は、回転部２０が画像処理単位の画素値に回転処理を施すことを説明する図である。回転部２０は例えばＳＲＡＭによって構成し、回転処理単位に対応する画素値を、回転処理単位の主走査方向１ラインについて読み込んで保持する。即ち、最初のラインとしてＰ１１、Ｐ１２、……、Ｐ１ｎ、次のラインとしてＰ２１、Ｐ２２、……、最後の画素点としてＰｎｎを読み込んで保持する。これをマトリクス表現したのが表５１０である。
【００９８】
回転部２０は、回転角度設定部１２によって設定された回転角度に従って、画像情報に回転処理を施す。この格納された画素点について、設定された角度、例えば９０度回転処理を施して、回転後の画素を模式的に表現する表５５０を得る。ここでは主走査方向に、Ｐｎ１、……Ｐ２１、Ｐ１１が配列され保持される。
【００９９】
出力部２１は、出力アドレス生成部１７が生成する出力先頭アドレス、非アクセス量情報、マスク量情報、およびバースト長情報によって、回転部２０によって回転された画素情報をバースト書き込み処理する。
【０１００】
図６は、出力アドレス生成部１７の機能的ブロック図である。出力アドレス生成部１７は、転送量演算および次ラインの先頭アドレス生成部１７１、マスク生成部１７２、メモリアドレス生成部１７３、および非アクセス量演算部１７４を備える。
【０１０１】
転送量演算および次ラインの先頭アドレス生成部１７１は、入力アドレス生成部１６の時と同様に、画像サイズ設定部１１から分割前の画像の主走査長の情報を受信する。また、画像分割部１５から、分割後の画像主走査長の情報を受信する。また、画像分割部１５から、分割後画像メモリの先頭アドレスの情報を受信する。また、画像分割部１５から、分割後の画像副走査長の情報を受信する。
【０１０２】
さらに、転送量演算および次ラインの先頭アドレス生成部１７１は、マスク生成部１７２からマスク情報を受信し、かつ非アクセス量演算部１７４から、非アクセス量情報およびバースト長の情報を受信する。
【０１０３】
転送量演算および次ラインの先頭アドレス生成部１７１は、これらの情報から転送量を演算し、演算結果の転送量の情報をマスク生成部１７２、メモリアドレス生成部１７３、および非アクセス量演算部１７４に送信する。
【０１０４】
メモリアドレス生成部１７３は、出力部２１がメモリに書き込むべきメモリ先頭アドレスの情報を出力部２１に送信し、非アクセス量演算部１７４ａが演算する非アクセス量、およびバースト長演算部１７４ｃが演算するバースト長の情報を、出力部２１に送信する。
【０１０５】
ここで、マスク生成部１７２は、先頭マスク生成部１７２ａ、および後端マスク生成部１７２ｂを有する。先頭マスク生成部１７２ａは、メモリ先頭アドレスの情報を受信し、回転処理単位の主走査方向の先頭においてマスクするビット情報を転送量演算および次ラインの先頭アドレス生成部１７１に送信する。また、先頭マスク生成部１７２ａは、先頭においてマスクするビットの情報を出力部２１に送信する。出力部２１は、書き込みにおいてマスクすることによって、先端において有効でない画素データの書き込みを停止する。
【０１０６】
後端マスク生成部１７２ｂは、残り画像主走査長の情報を受信し、回転処理単位の主走査方向の後端においてマスクするビットの情報を転送量演算および次ラインの先頭アドレス生成部１７１に送信する。また、後端マスク生成部１７２ｂは、後端においてマスクするビット情報を出力部２１に送信する。出力部２１は、書き込みにおいてマスクすることによって、後端において有効でない画素データの書き込みを停止する。
【０１０７】
メモリアドレス生成部１７３は、回転処理単位における主走査方向のメモリ先頭アドレスの情報を生成して出力部２１に送信する。
【０１０８】
非アクセス量演算部１７４は、先頭非アクセス量演算部１７４ａ、後端非アクセス量演算部１７４ｂ、およびバースト長演算部１７４ｃを有し、それぞれ先頭非アクセス量、後端非アクセス量、およびバースト長の情報を、演算する。
【０１０９】
先頭非アクセス量演算部１７４ａは、先頭部分のアラインされていない部分の情報のうち、マスクせずに書き飛ばすべき量を演算する。後端非アクセス量演算部１７４ｂは、後端部分のアラインされていない部分の情報のうち、マスクせずに書き飛ばすべき量を演算する。バースト長演算部１７４ｃは、書き飛ばすべき量を加算後のメモリアドレスから主走査長によって決定される後端までのバースト数を演算する。バースト長演算部１７４ｃによって演算されたバースト長の情報は出力部２１に送信される。
【０１１０】
出力部２１は、出力アドレス生成部１７によって生成される先頭アドレス、先頭非アクセス量、先頭マスク情報、バースト長、後端マスク情報、および後端非アクセス量に従って、画像情報をメモリに書き込む。即ち、出力部２１は、先頭非アクセス量分のアドレスを加算後のアドレスから、先頭マスク情報、および後端非アクセス量、後端マスク量の情報に従って、書き飛ばしながら、該マスク量だけマスクしつつ、バースト長分の情報を書き込む。
【０１１１】
このようにして、出力部２１は、バーストアクセスして画素情報を書き込む間は、先頭アドレスを出力後、連続した領域に続けて画像データを書き込むので、メモリアクセスを省略できる。そして、回転処理単位内で主走査方向にバースト長だけ書き込んだ後は、同じ回転処理単位内にアクセスされていない次の主走査方向のラインがあった場合は、上記と同様のバーストアクセスを行ってメモリ１８に書き込む。このようにして、主走査方向のバーストアクセスによる書き込み処理を順次施すことによって、回転処理された回転処理単位ごとの画素データを出力する。
【０１１２】
ここで、メモリ空間において回転処理単位が格子にアラインしている場合は、読み飛ばし処理およびマスク処理の必要は生じない。メモリ先頭アドレスに従って、回転処理単位の主走査方向の幅だけ書き込むことができる。
【０１１３】
図７は、実施の形態による入力アドレス生成手順を説明するフローチャートである。入力アドレス生成部１６において、転送量演算および次ラインの先頭アドレス生成部１６１は、最初、分割前の画像主走査長、分割後の画像主走査長、画像メモリ先頭アドレス、および画像副走査長の情報を受信する（ステップＳ１０１）。転送量演算および次ラインの先頭アドレス生成部１６１は、受信したこれらの情報から、メモリ先頭アドレス、および残り画像主走査長を演算する（ステップＳ１０２）。
【０１１４】
非アクセス量演算部１６４は、先端非アクセス量、および後端非アクセス量を演算する（ステップＳ１０３）。図４に示したメモリアクセス無し領域（符号４５２）が先端非アクセス量に相当する部分である。後端非アクセス量は、後端においてアラインされてない領域があった場合に、発生することがあるが、先端と同様であるので説明を省略する。
【０１１５】
メモリアドレス生成部１６３は、回転処理単位における主走査方向の読み込み先頭アドレスを生成して入力部１９へ送信する（ステップＳ１０４）。
【０１１６】
一方、マスク生成部１６２は、先頭マスク量および後端マスク量を生成する（ステップＳ１０５）。図４に示したマスク領域（符号４５３）が先頭マスク量に相当する部分である。後端マスク量は、後端においてアラインされてない領域があった場合に、発生することがあるが、先端と同様であるので説明を省略する。
【０１１７】
バースト長演算部１６４ｃは、バースト長を演算し入力部１９へ送信する（ステップＳ１０６）。バースト量は、一般に、先端アドレスより後で、回転処理単位における後端までの間である。この間は、入力部１９においては、バースト開始アドレス出力後、連続領域に対して一気にバーストアクセスすることができる。
【０１１８】
転送量演算および次ラインの先頭アドレス生成部１６１は、回転処理単位内で処理は完了したか否かを判定し（ステップＳ１０７）、完了しなかったと判定した場合（ステップＳ１０７のＮｏ）、ステップＳ１０２に戻る。アクセスされていない次のラインについて読み込むために、上記と同様のステップを繰り返す。この時、回転処理単位における最初のラインではないので、演算して取得した各情報をフィードバックする（ステップＳ１０２）。
【０１１９】
一方、回転処理単位内での処理が完了したと判定した場合は（ステップＳ１０７のＹｅｓ）、転送量演算および次ラインの先頭アドレス生成部１６１は、１ページ分の回転処理が終了したか否かを判定する（ステップＳ１０８）。１ページ分の回転処理が終了したと判定した場合（ステップＳ１０８のＹｅｓ）、そのまま終了する。１ページ分の回転処理が終了していないと判定した場合（ステップＳ１０８のＮｏ）、再びステップＳ１０１に戻って、アクセスされていない回転処理単位について同様の処理を繰り返す。
【０１２０】
図８は、実施の形態による出力アドレス生成手順を説明するフローチャートである。出力アドレス生成部１７において、転送量演算および次ラインの先頭アドレス生成部１７１は、分割前の画像主走査長、分割後の画像主走査長、画像メモリ先頭アドレス、および画像副走査長の情報を受信する（ステップＳ２０１）。転送量演算および次ラインの先頭アドレス生成部１７１は、メモリ先頭アドレス、および残り画像主走査長を演算する（ステップＳ２０２）。
【０１２１】
非アクセス量演算部１７４は、先端非アクセス量および後端非アクセス量を演算する（ステップＳ２０３）。図４に示した入力データの模式図をそのまま回転処理を施した出力データの模式図として見ると、メモリアクセス無し領域（符号４５２）が先端非アクセス量に相当する部分である。後端非アクセス量は、後端においてアラインされてない領域があった場合に、発生することがあるが、先端と同様であるので説明を省略する。
【０１２２】
メモリアドレス生成部１７３は、書き込み先頭アドレスを生成して出力部へ送信する（ステップＳ２０４）。
【０１２３】
マスク生成部１７２は、先頭マスク量および後端マスク量を生成する（ステップＳ２０５）。マスク生成部１７２は、生成した先頭マスク量および後端マスク量を出力部２１へ送信する（ステップＳ２０６）。ここで、出力部２１は、受信した先頭マスク量、および後端マスク量に相当する画素については、マスク処理を施して出力するので、見掛け上は書き込み処理を施さない。
【０１２４】
バースト長演算部１７４ｃは、バースト長を演算し出力部２１へ送信する（ステップＳ２０７）。出力部２１は、非アクセス量を受信してアラインしていない部分を非アクセス量に従って書き飛ばして書き込みを停止し、先頭マスク量を受信して受信した先頭マスク量に相当する部分にマスク処理を施し、その後において、バースト長に基づいて画素値をバーストアクセスして書き込む。そして、後端マスク処理を施し、その後、後端において非アクセス量の情報に従って、書き飛ばし処理を施す。
【０１２５】
転送量演算および次ラインの先頭アドレス生成部１７１は、回転処理単位内で処理は完了したか否かを判定し（ステップＳ２０８）、完了していないと判定した場合（ステップＳ２０８のＮｏ）、ステップ２０２に戻る。完了したと判定した場合（ステップＳ２０８のＹｅｓ）、転送量演算および次ラインの先頭アドレス生成部１７１は、さらに１ページ分の回転処理が終了したか否かを判定し（ステップＳ２０９）、終了していないと判定した場合（ステップＳ２０９のＮｏ）、ステップ２０１に戻り、終了したと判定した場合（ステップＳ２０９のＹｅｓ）、このページの画像の回転処理を終了する。
【０１２６】
図９は、従来例による画像処理装置と、実施の形態による画像処理装置との画像処理におけるメモリアクセスを説明する図である。図９におけるデータ９１０は、特許文献１の技術によって、主走査方向１６バイトのデータに対してバーストアクセスした場合の態様である。ここでは、アラインしていない回転処理単位の先頭アドレス（［１：０］が０でない場合）をアラインさせて［１：０］＝０とし、不必要な部分をマスク処理する。マスクされた領域が符号９１１で示した部分である。その後に有効データ９１２が続く。しかし、ここでマスク領域９１１も実際には入力部１９が読み込んで、書き込みにおいてマスク処理を施しているため、無駄な読み込みが発生している。
【０１２７】
一方、図９におけるデータ９５０は、実施の形態による技術を１６バイトデータに対するバーストアクセスに適用した場合の処理の態様である。ここでは、不必要な画素に対して、メモリアクセス無しの領域９５１を設定し、その後において必要な部分のみをマスク処理し（符号９５２）、その後に有効データ９５３が続く。このため、メモリアクセス無しの領域９５１の部分は、読み込みを停止して、マスク部分を少なくすることができるので、結局、無駄な読み込みを停止させ、画像処理効率が従来例よりも優れたものとなっている。
【０１２８】
また、従来例においては、回転処理単位を小さく設定して読み込みの無駄を排する場合は、小さく設定した回転処理単位によってバーストアクセスできるバースト長が小さいものとなり、メモリへのアクセスの回数が増加して画像処理効率が高いものとは成らない。これに対して、実施の形態による画像処理装置１０では、回転処理単位を小さく設定する必要が無く、無駄なメモリアクセスを排除することができる。また、回転処理単位を大きく設定すればするほどバースト長を長くとれるので、メモリアクセス数をさらに減少させることができ、画像処理効率は優れたものとすることができる。
【０１２９】
このようにして、実施の形態による画像処理装置は、画像情報を読み込み回転処理単位に分割して回転処理を施す際に、回転処理単位の先頭アドレスとバースト長とを取得して、先頭アドレスのみ出力し、それより後の主走査方向についてはバースト転送することによって、無駄なメモリアクセスを減らして画像の回転速度の低下を最小限に抑えることができる。
【０１３０】
また、２次元で規定されるアドレスの所定の格子と、先頭アドレスとがアラインしない回転処理単位に対しては、メモリアクセスしない部分を設定し、先頭アドレスを決定し、不要なデータについては読み飛ばし、必要なビット数だけマスクして、バースト転送することによって、回転前画像と回転後画像のスタートアドレスをバイト単位で設定でき、かつバースト転送することによって無駄なメモリアクセスを減らして画像の回転処理において回転速度の低下を最小限に抑えることができる。
【０１３１】
（変形例１）
実施の形態による画像処理装置は、画像形成装置に適用されたものとして説明した。しかしながら、本発明の画像処理装置は、画像形成装置にのみ適用できるものではなく、画像データを少なくとも一時的に格納して読み込み、他のメモリに書き込む画像処理を必要とする装置には適用可能である。例えば、文字画像を含む画像を受信して、回転させ、あるいは何らかの画像処理を施して表示画面に表示する携帯電話における画像処理装置としても適用可能である。
【０１３２】
（変形例２）
他の変形例としては、例えば、ＣＣＤ（ChargeCoupledDevice）を介して被写体画像を取り込み、回転させ、あるいは何らかの画像処理を施して表示画面に表示するデジタル方式のカメラにおける画像処理装置としても適用可能である。
【０１３３】
（変形例３）
さらに他の変形例としては、例えば、文字画像を含む画像を読み込んで、回転させ、あるいは何らかの画像処理を施してモニタ画面に表示するパーソナルコンピュータ（ＰＣ）における画像処理プログラムとしても適用可能である。
【０１３４】
（ハードウェア構成など）
図１０は、実施の形態による画像処理装置を備えた画像形成装置のハードウェア構成を示すブロック図である。この画像形成装置は、ファックスやスキャナなどの複合的機能を備える複合機（ＭＦＰ）として構成されている。図に示すように、このＭＦＰは、コントローラ２２１０とエンジン部２２６０とをＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バスで接続した構成となる。コントローラ２２１０は、ＭＦＰ全体の制御、画像表示制御、各種制御、画像処理制御など、ＦＣＵＩ／Ｆ２２３０、操作表示部３からの入力を制御するコントローラである。エンジン部２２６０は、ＰＣＩバスに接続可能な画像処理エンジンなどであり、例えば取得した画像データに対して誤差拡散やガンマ変換などの画像処理部分が含まれる。
【０１３５】
コントローラ２２１０は、ＣＰＵ２２１１と、ノースブリッジ（ＮＢ）２２１３と、システムメモリ（ＭＥＭ−Ｐ）２２１２と、サウスブリッジ（ＳＢ）２２１４と、ローカルメモリ（ＭＥＭ−Ｃ）２２１７と、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）２２１６と、ハードディスクドライブ６とを有し、ノースブリッジ２２１３とＡＳＩＣ２２１６との間をＡＧＰ（Ａｃｃｅｌｅｒａｔｅｄ  Ｇｒａｐｈｉｃｓ  Ｐｏｒｔ）バス２２１５で接続した構成となる。また、ＭＥＭ−Ｐ２２１２は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２２１２ａと、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２２１２ｂとをさらに有する。
【０１３６】
ＣＰＵ２２１１は、ＭＦＰの全体制御を行うものであり、ＮＢ２２１３、ＭＥＭ−Ｐ２２１２およびＳＢ２２１４からなるチップセットを有し、このチップセットを介して他の機器と接続される。
【０１３７】
ＮＢ２２１３は、ＣＰＵ２２１１とＭＥＭ−Ｐ２２１２、ＳＢ２２１４、ＡＧＰ２２１５とを接続するためのブリッジであり、ＭＥＭ−Ｐ２２１２に対する読み書きなどを制御するメモリコントローラと、ＰＣＩマスタおよびＡＧＰターゲットとを有する。
【０１３８】
ＭＥＭ−Ｐ２２１２は、プログラムやデータの格納用メモリ、プログラムやデータの展開用メモリなどとして用いるシステムメモリであり、ＲＯＭ２２１２ａとＲＡＭ２２１２ｂとからなる。ＲＯＭ２２１２ａは、プログラムやデータの格納用メモリとして用いる読み出し専用のメモリであり、ＲＡＭ２２１２ｂは、プログラムやデータの展開用メモリ、画像処理時の画像描画メモリなどとして用いる書き込みおよび読み出し可能なメモリである。
【０１３９】
ＳＢ２２１４は、ＮＢ２２１３とＰＣＩデバイス、周辺デバイスとを接続するためのブリッジである。このＳＢ２２１４は、ＰＣＩバスを介してＮＢ２２１３と接続されており、このＰＣＩバスには、ＦＣＵＩ／Ｆ２２３０なども接続される。
【０１４０】
ＡＳＩＣ２２１６は、マルチメディア情報処理用のハードウェア要素を有するマルチメディア情報処理用途向けのＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）であり、ＡＧＰ２２１５、ＰＣＩバス、ＨＤＤ６およびＭＥＭ−Ｃ２２１７をそれぞれ接続するブリッジの役割を有する。
【０１４１】
このＡＳＩＣ２２１６は、ＰＣＩターゲットおよびＡＧＰマスタと、ＡＳＩＣ２２１６の中核をなすアービタ（ＡＲＢ）と、ＭＥＭ−Ｃ２２１７を制御するメモリコントローラと、ハードウェアロジック等により画像データの回転などを行う複数のＤＭＡＣ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ）と、エンジン部２２６０との間でＰＣＩバスを介してＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）２２４０、ＩＥＥＥ（ｔｈｅ  Ｉｎｓｔｉｔｕｔｅ  ｏｆ  Ｅｌｅｃｔｒｉｃａｌ  ａｎｄ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｅｎｇｉｎｅｅｒｓ）１３９４インタフェース２２５０が接続される。
【０１４２】
ＭＥＭ−Ｃ２２１７は、送信用画像バッファ、符号バッファとして用いるローカルメモリであり、ＨＤＤ６は、画像データの蓄積、プログラムの蓄積、フォントデータの蓄積、フォームの蓄積を行うためのストーレジである。
【０１４３】
ＡＧＰ２２１５は、グラフィック処理を高速化するために提案されたグラフィックスアクセラレータカード用のバスインタフェースであり、ＭＥＭ−Ｐ２２１２に高スループットで直接アクセスすることにより、グラフィクスアクセラレータカードを高速にするものである。
【０１４４】
ＡＳＩＣ２２１６に接続する操作表示部３は、操作者からの操作入力を受け付けて、ＡＳＩＣ２２１６に受け付けられた操作入力情報を送信する。
【０１４５】
なお、実施の形態による画像処理装置を組み込んだＭＦＰで実行される画像処理プログラムは、ＲＯＭ等に予め組み込まれて提供される。
【０１４６】
実施の形態による画像処理装置を組み込んだＭＦＰで実行される画像処理プログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。
【０１４７】
さらに、実施の形態による画像処理装置を組み込んだＭＦＰで実行される画像処理プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、実施の形態による画像処理装置を組み込んだＭＦＰで実行される画像処理プログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。
【０１４８】
実施の形態による画像処理装置を組み込んだＭＦＰで実行される画像処理プログラムは、上述した各部（画像サイズ設定部１１、回転角度設定部１２、入力アドレス設定部１３、出力アドレス設定部１４、画像分割部１５、入力アドレス生成部１６、出力アドレス生成部１７、入力部１９、回転部２０、出力部２１など）を含むモジュール構成となっており、実際のハードウェアとしてはＣＰＵ（プロセッサ）が上記ＲＯＭから画像表示プログラムを読み出して実行することにより上記各部が主記憶装置上に、画像サイズ設定部１１、回転角度設定部１２、入力アドレス設定部１３、出力アドレス設定部１４、画像分割部１５、入力アドレス生成部１６、出力アドレス生成部１７、入力部１９、回転部２０、出力部２１などが主記憶装置上に生成されるようになっている。
【０１４９】
以上説明した本発明の実施の形態あるいは変形例は、説明のための一例であって、本発明はここに説明したこれらの具体例に限定されるものではない。
【産業上の利用可能性】
【０１５０】
以上のように、本発明にかかる画像処理装置、画像処理方法、その方法をコンピュータに実行させるプログラムは、画像処理技術に有用であり、特に、記憶装置から画像データを読み出して処理を施す画像処理技術に適している。
【図面の簡単な説明】
【０１５１】
【図１】実施の形態による画像処理装置を備えた画像形成装置の機能的ブロック図である。
【図２】実施の形態による画像処理装置の機能的ブロック図である。
【図３】入力アドレス生成部１６の機能的ブロック図である。
【図４】バーストアクセスを説明する模式図である。
【図５】回転部２０が画像処理単位の画素値に回転処理を施すことを説明する図である。
【図６】出力アドレス生成部１７の機能的ブロック図である。
【図７】実施の形態による入力アドレス生成手順を説明するフローチャートである。
【図８】実施の形態による出力アドレス生成手順を説明するフローチャートである。
【図９】従来例による画像処理装置と、実施の形態による画像処理装置との画像処理におけるメモリアクセスを説明する図である。
【図１０】実施の形態による画像処理装置を備える画像形成装置の機能的ブロック図である。
【図１１】従来例による画像の回転処理における入力アドレスの生成を説明する図である。
【符号の説明】
【０１５２】
１  スキャナ
２  入力処理部
３  操作表示部
４  出力処理部
５  画像出力部
６  記憶部（ＨＤＤ）
１０  画像処理装置
１１  画像サイズ設定部
１２  回転角度設定部
１３  入力アドレス設定部
１４  出力アドレス設定部
１５  画像分割部
１６  入力アドレス生成部
１７  出力アドレス生成部
１８  メモリ
１９  入力部
２０  回転部
２１  出力部
【図１】
0004732183.tif 000002
【図２】
0004732183.tif 000003
【図３】
0004732183.tif 000004
【図４】
0004732183.tif 000005
【図５】
0004732183.tif 000006
【図６】
0004732183.tif 000007
【図７】
0004732183.tif 000008
【図８】
0004732183.tif 000009
【図９】
0004732183.tif 000010
【図１０】
0004732183.tif 000011
【図１１】
0004732183.tif 000012