(57)【特許請求の範囲】
【請求項１】
所定ライン数分のメモリ容量を有する一時記憶手段を利用して、所定容量の画像記憶手段に書き込まれる画像データの傾きを補正する画像処理装置であって、
画像データを前記画像記憶手段に書き込むとともに該画像記憶手段への該画像データの書込ライン数を検出するデータ書込手段と、
前記画像記憶手段の画像データと該画像データの出力先の出力媒体との相対的な傾きを示す傾き情報に基づいて、該画像データの該出力媒体との関係における各画素の画素位置を示す主走査方向及び副走査方向の座標情報を生成する座標生成手段と、
前記画像データを主走査方向において所定の分割数に分割した分割領域毎に、前記座標情報から該画像データの副走査方向の座標値が最小となる最小副走査座標を検出する最小副走査座標検出手段と、
検出された前記分割領域毎の前記最小副走査座標に基づいて、前記画像記憶手段から該各分割領域の前記画像データを読み出す読出アドレスを生成する読出アドレス生成手段と、
前記読出アドレスに基づいて前記画像記憶手段から前記画像データを読み出すとともに、該画像記憶手段からの該画像データの読出ライン数を検出するデータ読出手段と、
前記書込ライン数、前記読出ライン数及び前記座標情報に基づいて、前記データ読出手段による前記画像データの読出待機と待機解除を制御する読出制御手段と、
前記座標情報に基づいて前記一時記憶手段への書込アドレスを生成して、前記データ読出手段の読み出した前記分割領域分の前記画像データを順次該一時記憶手段へ書き込むとともに、該座標情報に基づいて該一時記憶手段からの読出アドレスを生成して、該一時記憶手段から該分割領域分の該画像データを順次読み出す一時記憶制御手段と、
を備え、
前記読出アドレス生成手段は、
前記最小副走査座標の示す前記画像データの傾きが前記分割領域の数との関連において所定の傾き割合を超える毎に、該画像データに対する読出アドレスとして、副走査方向に連続する該分割領域のアドレスを割り当てる読出アドレスを生成し、
前記データ読出手段は、
前記読出アドレスに基づいて前記画像記憶手段から前記分割領域毎に、副走査方向の座標値が最小値を示すラインから副走査方向に連続する複数のラインの画像データを読み出すとともに、副走査方向に連続する該分割領域の数のライン数を纏めて読出ライン数として検出することを特徴とする画像処理装置。
【請求項２】
前記画像処理装置は、
前記一時記憶制御手段が読み出した前記分割領域分の前記画像データを、順次前記画像記憶手段へ書き戻す書戻手段を、
さらに備えていることを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記読み出し制御手段は、前記書込ライン数と前記読出ライン数との差が、最大副走査座標と前記最小副走査座標との差より小さいとき、前記データ読出手段に前記画像データの読出待機をさせ、
前記最大副走査座標は、分割領域毎に前記画像データの副走査方向の座標値が最大となる座標であることを特徴とする請求項１または請求項２記載の画像処理装置。
【請求項４】
前記読出アドレス生成手段は、
前記最小副走査座標に基づいて前記画像データの傾きの向きを判断し、該傾きの向きに応じて、該画像データの主走査方向における前記分割領域の読出順序を決定して、該読出順序に応じて該画像データに対する読出アドレスを生成することを特徴とする請求項１から請求項３のいずれかに記載の画像処理装置。
【請求項５】
画像読取手段で読み取った原稿の画像データを、画像処理部で画像処理した後、画像出力手段で出力媒体へ画像形成出力する画像形成装置であって、
前記画像処理部として、請求項１から請求項４のいずれかに記載の画像処理装置を備えていることを特徴とする画像形成装置。
【請求項６】
所定ライン数分のメモリ容量を有する一時記憶手段を利用して、所定容量の画像記憶手段に書き込まれる画像データの傾きを補正する画像処理装置の実行する画像処理方法であって、
画像データを前記画像記憶手段に書き込むとともに該画像記憶手段への該画像データの書込ライン数を検出するデータ書込処理ステップと、
前記画像記憶手段の画像データと該画像データの出力先の出力媒体との相対的な傾きを示す傾き情報に基づいて、該画像データの該出力媒体との関連における各画素の画素位置を示す主走査方向及び副走査方向の座標情報を生成する座標生成処理ステップと、
前記画像データを主走査方向において所定の分割数に分割した分割領域毎に、前記座標情報から該画像データの副走査方向の座標値が最小となる最小副走査座標を検出する最小副走査座標検出処理ステップと、
検出された前記分割領域毎の前記最小副走査座標に基づいて、前記画像記憶手段から該各分割領域の前記画像データを読み出す読出アドレスを生成する読出アドレス生成処理ステップと、
前記読出アドレスに基づいて前記画像記憶手段から前記画像データを読み出すとともに、該画像記憶手段からの該画像データの読出ライン数を検出するデータ読出処理ステップと、
前記書込ライン数、前記読出ライン数及び前記座標情報に基づいて、前記データ読出処理ステップにおける前記画像データの読出待機と待機解除を制御する読出制御処理ステップと、
前記座標情報に基づいて前記一時記憶手段への書込アドレスを生成して、前記データ読出処理ステップで読み出された前記分割領域分の前記画像データを順次該一時記憶手段へ書き込むとともに、該座標情報に基づいて該一時記憶手段からの読出アドレスを生成して、該一時記憶手段から該分割領域分の該画像データを順次読み出す一時記憶制御処理ステップと、
を有し、
前記読出アドレス生成処理ステップは、前記最小副走査座標の示す前記画像データの傾きが前記分割領域の数との関連において所定の傾き割合を超える毎に、該画像データに対する読出アドレスとして、副走査方向に連続する該分割領域のアドレスを割り当てる読出アドレスを生成し、
前記データ読出処理ステップは、前記読出アドレスに基づいて前記画像記憶手段から前記分割領域毎に、副走査方向の座標値が最小値を示すラインから副走査方向に連続する複数のラインの画像データを読み出すとともに、副走査方向に連続する該分割領域の数のライン数を纏めて読出ライン数として検出することを特徴とする画像処理方法。
【請求項７】
所定ライン数分のメモリ容量を有する一時記憶手段を利用して、所定容量の画像記憶手段に書き込まれる画像データの傾きを補正する画像処理装置の搭載するプログラムであって、
コンピュータに、
画像データを前記画像記憶手段に書き込むとともに該画像記憶手段への該画像データの書込ライン数を検出するデータ書込処理と、
前記画像記憶手段の画像データと該画像データの出力先の出力媒体との相対的な傾きを示す傾き情報に基づいて、該画像データの該出力媒体との関連における各画素の画素位置を示す主走査方向及び副走査方向の座標情報を生成する座標生成処理と、
前記画像データを主走査方向において所定の分割数に分割した分割領域毎に、前記座標情報から該画像データの副走査方向の座標値が最小となる最小副走査座標を検出する最小副走査座標検出処理と、
検出された前記分割領域毎の前記最小副走査座標に基づいて、前記画像記憶手段から該各分割領域の前記画像データを読み出す読出アドレスを生成する読出アドレス生成処理と、
前記読出アドレスに基づいて前記画像記憶手段から前記画像データを読み出すとともに、該画像記憶手段からの該画像データの読出ライン数を検出するデータ読出処理と、
前記書込ライン数、前記読出ライン数及び前記座標情報に基づいて、前記データ読出処理における前記画像データの読出待機と待機解除を制御する読出制御処理と、
前記座標情報に基づいて前記一時記憶手段への書込アドレスを生成して、前記データ読出処理で読み出された前記分割領域分の前記画像データを順次該一時記憶手段へ書き込むとともに、該座標情報に基づいて該一時記憶手段からの読出アドレスを生成して、該一時記憶手段から該分割領域分の該画像データを順次読み出す一時記憶制御処理と、
を実行させ、
前記読出アドレス生成処理は、前記最小副走査座標の示す前記画像データの傾きが前記分割領域の数との関連において所定の傾き割合を超える毎に、該画像データに対する読出アドレスとして、副走査方向に連続する該分割領域のアドレスを割り当てる読出アドレスを生成し、
前記データ読出処理は、前記読出アドレスに基づいて前記画像記憶手段から前記分割領域毎に、副走査方向の座標値が最小値を示すラインから副走査方向に連続する複数のラインの画像データを読み出すとともに、副走査方向に連続する該分割領域の数のライン数を纏めて読出ライン数として検出することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像形成装置、画像処理方法及びプログラムに関し、詳細には、画像記憶手段に対して、書き込みと読み出しを並行して行う画像処理装置、画像形成装置、画像処理方法及びプログラムに関する。
【背景技術】
【０００２】
複合装置、プリンタ装置等の画像形成装置においては、入力される画像データを、一旦画像メモリに書き込んで、該画像メモリから順次画像データを読み出して印刷部で用紙等の出力媒体（以下、単に、用紙という。）へ印刷出力する。
【０００３】
画像形成装置は、従来、画像データの画像メモリへの書き込みと並行して、該画像メモリから画像データの読み出しを行うことで、画像メモリの容量の削減を図っている。
【０００４】
この場合、従来、画像メモリへ書き込まれた画像データのライン数と該画像メモリから読み出されたライン数を比較し、画像データの画像メモリへの書き込みと読み出しを制御する画像データ転送制御処理を行っている（特許文献１等参照）。
【０００５】
従来の制御ライン数比較による画像データ転送制御においては、画像データを任意の処理ライン単位で副走査方向にバンド分割し、そのバンド分の容量の画像メモリを確保して読み書き制御を行い、バンド数分だけ繰り返すことで、小容量の画像メモリで画像データの転送を行っている。
【０００６】
一方、画像形成装置においては、入力画像データに傾きや曲がり等がある場合や、入力画像データに傾きや曲がり等がなくても、印刷部での印刷先の用紙に傾きがある場合がある。このような場合、画像形成装置は、入力画像データの傾きの補正、用紙の傾きに合わせた画像データの傾きの補正のいずれかまたは双方を実行する。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記従来技術にあっては、画像データを任意の処理ライン単位で副走査方向にバンド分割し、そのバンド分の容量の画像メモリを確保して、画像メモリへの画像データの書き込みと読み出しを制御していたため、画像データの傾きを画像メモリからの画像データの読み出し時に補正する場合には、画像データを斜めに読み出すことになるため、正確なライン数比較を行うことができない。その結果、画像メモリへの画像データの書き込みと画像メモリからの画像データの読み出しに不整合が発生して、メモリ制御を適切に行うことができない事態が発生するおそれがあった。
【０００８】
そこで、本発明は、小容量の画像記憶手段を用いて、画像データに対して傾き補正を適切に行うことを目的としている。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、請求項１記載の画像処理装置は、所定ライン数分のメモリ容量を有する一時記憶手段を利用して、所定容量の外部記憶手段に書き込まれる画像データの傾きを補正する画像処理装置であって、画像データを前記外部メモリに書き込むとともに該外部メモリへの該画像データの書込ライン数を検出するデータ書込手段と、前記外部メモリの画像データと該画像データの出力先の出力媒体との相対的な傾きを示す傾き情報に基づいて、該画像データの該出力媒体との関係における各画素の画素位置を示す主走査方向及び副走査方向の座標情報を生成する座標生成手段と、前記画像データを主走査方向において所定の分割数に分割した分割領域毎に、前記座標情報から該画像データの副走査方向の座標値が最小となる最小副走査座標を検出する最小副走査座標検出手段と、検出された前記分割領域毎の前記最小副走査座標に基づいて、前記外部メモリから該各分割領域の前記画像データを読み出す読出アドレスを生成する読出アドレス生成手段と、前記読出アドレスに基づいて前記外部メモリから前記画像データを読み出すとともに、該外部メモリからの該画像データの読出ライン数を検出するデータ読出手段と、前記書込ライン数、前記読出ライン数及び前記座標情報に基づいて、前記データ読出手段による前記画像データの読出待機と待機解除を制御する読出制御手段と、前記座標情報に基づいて前記一時記憶手段への書込アドレスを生成して、前記データ読出手段の読み出した前記分割領域分の前記画像データを順次該一時記憶手段へ書き込むとともに、該座標情報に基づいて該一時記憶手段からの読出アドレスを生成して、該一時記憶手段から該分割領域分の該画像データを順次読み出す一時記憶制御手段と、を備え、前記読出アドレス生成手段は、前記最小副走査座標の示す前記画像データの傾きが前記分割領域の数との関連において所定の傾き割合を超える毎に、該画像データに対する読出アドレスとして、副走査方向に連続する該分割領域のアドレスを割り当てる読出アドレスを生成し、前記データ読出手段は、前記読出アドレスに基づいて前記画像記憶手段から前記分割領域毎に、副走査方向の座標値が最小値を示すラインから副走査方向に連続する複数のラインの画像データを読み出すとともに、副走査方向に連続する該分割領域の数のライン数を纏めて読出ライン数として検出することを特徴としている。
【発明の効果】
【００１０】
本発明によれば、小容量の画像記憶手段を用いて、画像データに対して傾き補正を適切に行うことができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施例を適用した複合装置のブロック構成図。
【図２】コントローラＡＳＩＣのブロック構成図。
【図３】画像処理部のブロック構成図。
【図４】傾き補正処理の説明図。
【図５】第２メインメモリを用いた傾き補正時のコントローラＡＳＩＣにおける画像データの流れを示す図。
【図６】傾き補正処理のシーケンス図。
【図７】画像データのメインメモリへのライト動作とリード動作の説明図。
【図８】図６のメインメモリに格納されている画像データの一例の詳細図。
【図９】内部メモリへの画像データのライト処理の説明図。
【図１０】右下がりの傾きの大きい画像データがメインメモリに格納されている状態の一例を示す図。
【図１１】左下がりの傾きの大きい画像データがメインメモリに格納されている状態の一例を示す図。
【発明を実施するための形態】
【００１２】
以下、本発明の好適な実施例を添付図面に基づいて詳細に説明する。なお、以下に述べる実施例は、本発明の好適な実施例であるので、技術的に好ましい種々の限定が付されているが、本発明の範囲は、以下の説明によって不当に限定されるものではなく、また、本実施の形態で説明される構成の全てが本発明の必須の構成要件ではない。
【実施例１】
【００１３】
図１〜図１１は、本発明の画像処理装置、画像形成装置、画像処理方法及びプログラムの一実施例を示す図であり、図１は、本発明の画像処理装置、画像形成装置、画像処理方法及びプログラムの一実施例を適用した複合装置１のブロック構成図である。
【００１４】
図１において、複合装置１は、スキャナ２、プロッタ３、画像処理ＡＳＩＣ（Application Specific Integrated Circuit）４、コントローラＡＳＩＣ５、ハードディスク６、第２メインメモリ７、チップセット８、ＣＰＵ（Central Processing Unit）９、第１メインメモリ１０及びＩ／Ｏ  ＡＳＩＣ１１等を備えている。複合装置１は、上記各部を使用して、スキャナモード、コピーモード、プリンタモード、データ転送モード等の複数のアプリケーションモード処理を実行する。複合装置１は、後述するように、画像記憶手段である第１メインメモリ１０の使用容量を削減しつつ、該第１メインメモリ１０への画像データの書込ライン数と読出ライン数の制御を適切に行いつつ、画像データに対する傾き補正を行う画像処理を実行する。なお、画像記憶手段としては、第１メインメモリ１０だけでなく、第２メインメモリ７も用いることができる。
【００１５】
スキャナ２は、例えば、ＣＣＤ（Charge Coupled Device ）、ＣＩＳ（Contact Image Sensor：密着イメージセンサ）またはＣＭＯＳ（Complementary Metal Oxide Semiconductor ）等を用いたスキャナ等が用いられている。スキャナ２は、原稿の表面を主走査及び副走査して該原稿の表面の画像を読み取る。スキャナ２は、原稿の表面の画像を読み取ったアナログの画像データを図示しないＡ／Ｄ（アナログ／デジタル）変換器でデジタル変換して、デジタルの表面画像データを画像処理ＡＳＩＣ４に出力する。すなわち、スキャナ２は、原稿の画像を読み取って、プロッタ３で印刷出力する画像データや外部インターフェイスへ出力するための画像データを、画像処理ＡＳＩＣ４に出力する。なお、スキャナ２は、図示しないが、読取位置に搬送される原稿の傾きを検出する原稿スキュー検出センサが配設されており、原稿スキュー検出センサは、検出結果をＣＰＵ９へ出力する。
【００１６】
プロッタ３は、所定の画像形成方式、例えば、電子写真方式でカラー画像を用紙（出力媒体）に印刷出力する。プロッタ３は、例えば、印刷部が電子写真方式の場合には、回転駆動される感光体を中心に、光書込部、現像部及び転写部、定着部、帯電部及びクリーニング部等が配設されている各色（例えば、ＣＭＹＫ色）の印刷ユニットが搬送路上に並んで配設されている。このような電子写真方式のプロッタ３は、その各色の印刷ユニットが、帯電部で一様に帯電された感光体上に、印刷部が画像処理ＡＳＩＣ４からの画像データに基づいて変調した書込光を照射して、静電潜像を形成する。各色の印刷ユニットは、この静電潜像の形成された感光体に現像部から印刷ユニットに対応する色のトナー（現像剤）を供給して現像する。各印刷ユニットは、感光体上のトナー画像を転写部と感光体との間に給紙カセットから用紙搬送部によって搬送されてきた用紙に、各色トナー画像を順次重ねて転写して、カラーのトナー画像の転写が完了した用紙を定着部に搬送して、定着部で定着させる。
【００１７】
画像処理ＡＳＩＣ４は、スキャナ２で読み取られた原稿の画像データに適宜の補正を行った画像データ及び原稿における文字部／写真部、有彩／無彩を判定した画像分離データを生成してコントローラＡＳＩＣ５に出力する。また、画像処理ＡＳＩＣ４は、コントローラＡＳＩＣ５から送られてくる画像データをプロッタ３で印刷できるように画像処理し、プロッタ３の印刷タイミングに合わせて、画像データをプロッタ３へ送る。
【００１８】
コントローラＡＳＩＣ５は、上記画像処理ＡＳＩＣ４に接続されているとともに、ハードディスク６、第２メインメモリ７及びチップセット８に接続されている。コントローラＡＳＩＣ５は、チップセット８越しに第１メインメモリ１０を使って複合装置１で扱う画像データの回転、編集等を、第２メインメモリ７を使用して行う。また、コントローラＡＳＩＣ５は、画像処理ＡＳＩＣ４から送られてきた画像データのハードディスク６への蓄積、ハードディスク６に蓄積した画像データの画像処理ＡＳＩＣ４への送信を行う。
【００１９】
ハードディスク（ＨＤＤ（Hard Disk Drive））６は、コントローラＡＳＩＣ５により、送受信する画像データ及び画像処理済みの画像データの一時保管するのに利用される。
【００２０】
第２メインメモリ７は、上述のように、コントローラＡＳＩＣ５が画像処理を行う際の画像メモリとして利用される。
【００２１】
チップセット８は、ＣＰＵ９とともに用いられ、ＣＰＵ９、コントローラＡＳＩＣ５及びＩ／Ｏ  ＡＳＩＣ１１が、第１メインメモリ１０へアクセスすることを制御する。
【００２２】
第１メインメモリ１０は、ＣＰＵ９が複合装置１を制御するための基本プログラム、本発明の画像処理プログラム及び必要なシステムデータ等が展開され、そのワーク領域として使用されるとともに、画像データ等の一時保管等を行う。したがって、第１メインメモリ１０は、画像記憶手段として機能している。
【００２３】
Ｉ／Ｏ  ＡＳＩＣ１１は、複合装置１に付加機能を与えるための外部インターフェイス、例えば、ネットワークインターフェイス、ＵＳＢ（Universal Serial Bus）、ＳＤ（Secure Digital）カード、操作部、ＳＰＩ（Serial Peripheral Interface）、Ｉ２Ｃ（ＩスクウェアＣ）等のインターフェイスや画像処理を高速化するためのハードウェアアクセラレータ、暗号化処理回路等を備えている。
【００２４】
そして、上記画像処理ＡＳＩＣ４とコントローラＡＳＩＣ５及びコントローラＡＳＩＣ５とチップセット８とは、要求と応答が分離され、応答を待たずに次の要求を発行できる高速のシリアルバスであるＰＣＩ（Peripheral Component Interconnect） Express（以下、ＰＣＩｅという。）で接続されている。
【００２５】
上記コントローラＡＳＩＣ５は、図２に示すようにブロック構成されている。コントローラＡＳＩＣ５は、ＰＣＩｅルートコンプレックス（以下、単に、ＰＣＩｅ Rootという。)２１、圧縮伸長器２２、２３、ＤＭＡＣ２２ａ、２２ｂ、２３ａ、２３ｂ、ダイレクトビデオラインＬｄ、ビデオ入力部２４、ＤＭＡＣ２４ａ、ビデオ出力部２５、２６、２７、２８、ＤＭＡＣ２５ａ〜２５ｄ、２６ａ〜２６ｄ、２７ａ〜２７ｄ、２８ａ〜２８ｄ、アービタ２９、回転器３０、３１、ＤＭＡＣ３０ａ、３０ｂ、３１ａ、３１ｂ、編集器３２、ＤＭＡＣ３２ａ、３２ｂ、３２ｃ、傾き補正部３３、ＤＭＡＣ３３ａ、３３ｂ、ＰＣＩｅエンドポイント（以下、ＰＣＩｅ End Pointという。）３４、レジスタ制御回路３５、ハードディスク制御部３６、ＤＭＡＣ３６ａ及びメモリコントローラ３７等を備えている。
【００２６】
アービタ２９は、全てのＤＭＡＣ（符号省略）、メモリコントローラ３７と接続されており、各ＤＭＡＣ、メモリコントローラ３７からの第１メインメモリ１０、第２メインメモリ７へのアクセス要求をアビトレーション処理する（調停処理を行う）。アービタ２９は、通常は、スキャナデータ（スキャナ２の読み取った画像データ）やプロッタデータ（プロッタ３で印刷する画像データ）のライン等時性を確保するために、ビデオ入出力ＤＭＡＣ２４ａ、２５ａ〜２５ｄ、〜、２８ａ〜２８ｄからのアクセス要求を優先的に処理できるアビトレーションアルゴリズムとなっている。
【００２７】
ＰＣＩｅ End Point３４は、チップセット８と接続されているＰＣＩｅの制御を行ない、アービタ２９でアビトレーションされたＤＭＡＣの要求に従って、第１メインメモリ１０からデータをリードし、また、第１メインメモリ１０にデータをライトする。また、ＰＣＩｅ End Point３４は、チップセット８越しのＣＰＵ９からのコントローラＡＳＩＣ５内の各機能モジュールのレジスタのリード／ライト制御を、レジスタ制御回路３５を介して行う。この各機能モジュールは、圧縮伸長器２２、２３、ビデオ入力部２４、ビデオ出力部２５〜２８、回転器３０、３１、編集器３２、傾き補正部３３及びハードディスク制御部３６等である。
【００２８】
ＰＣＩｅ Root２１は、画像処理ＡＳＩＣ４と接続されているＰＣＩｅの制御を行い、画像処理ＡＳＩＣ４からのスキャナデータのライトの受け付けやプロッタデータのリードの受け付けを行う。
【００２９】
圧縮伸長器２２、２３は、ＤＭＡＣ２２ａ、２３ａを使用して、第１メインメモリ１０上の画像データを読み出して、圧縮または伸長して、ＤＭＡＣ２２ｂ、２３ｂを使用して、第１メインメモリ１０上に書き戻す。
【００３０】
ビデオ入力部２４は、スキャナデータが画像処理ＡＳＩＣ４で処理された後、ＰＣＩｅ Root２１を経由して入力されると、このスキャナデータをＤＭＡＣ２４ａによって第１メインメモリ１０上へライトする。
【００３１】
ダイレクトビデオラインＬｄは、スキャナデータが画像処理ＡＳＩＣ４で処理された後、ＰＣＩｅ Root２１経由で入力され、画像処理ＡＳＩＣ４で指定された第１メインメモリ１０のアドレスに対して画像データをライトする。
【００３２】
ビデオ出力部２５〜２８は、コントローラＡＳＩＣ５内の回転器３０、３１で回転、編集器３２で編集、傾き補正部３３で位置補正等の処理の施された画像データを、ＰＣＩｅ Root２１を経由させて、画像処理ＡＳＩＣ４を介してプロッタ３へ出力する。また、ビデオ出力部２５〜２８は、圧縮伸長器２２、２３で圧縮された画像データを、ＤＭＡＣ２５ｂ、２６ｂ、２７ｂ、２８ｂによって第１メインメモリ１０からリードする。ビデオ出力部２５〜２８は、リードして内部の圧縮伸長器２２、２３で伸長された画像データを、第１メインメモリ１０を介さずに、ＰＣＩｅ Root２１を経由させてそのまま画像処理ＡＳＩＣ４へ出力する。さらに、ビデオ出力部２５〜２８は、ＤＭＡＣ２５ｂ、２６ｂ、２７ｂ、２８ｂによって第１メインメモリ１０上のスタンプ画像を元画像とともにリードして、スタンプ画像と元画像を合成して、ＰＣＩｅ Root２１を経由させて画像処理ＡＳＩＣ４に出力する。また、ビデオ出力部２５〜２８は、不正コピーガードを行うための地紋データ等を画像データに埋め込む機能を備えていてもよい。
【００３３】
回転器３０、３１は、ＤＭＡＣ３０ａ、３１ａによって第１メインメモリ１０上の画像データをリードし、ＣＰＵ９によるレジスタ設定に従って、回転処理を行って、ＤＭＡＣ３０ｂ、３１ｂによって第１メインメモリ１０へ書き戻す。
【００３４】
編集器３２は、ＤＭＡＣ３２ａ、３２ｂによって、２種類の画像データを第１メインメモリ１０からリードして、ＣＰＵ９によるレジスタ設定に従って合成等の編集処理を行い、ＤＭＡＣ３２ｃによって第１メインメモリ１０へ書き戻す。
【００３５】
傾き補正部３３は、スキャナ２で読み取られた画像データの傾きや位置ズレ（スキュー）等を補正し、また、プロッタ３の用紙の傾きに合わせて第１メインメモリ１０から読み取った画像データの傾きを補正する。すなわち、スキャナ２は、ＤＦ（ドキュメントフィーダ）を備えている場合に、該ＤＦでスキャナ２の読取位置へ原稿を搬送したときに、スキャナ２の読み取った画像データが、ＤＦやスキャナ２の原稿搬送系の機械精度によって原稿読取時に若干の位置歪みが発生する。傾き補正部３３は、この傾きを生じたまま第１メインメモリ１０へライトされた画像データをリードし、補正を行いながら第２メインメモリ７へライトさせる。また、プロッタ３は、給紙トレイから用紙搬送部を経由してプロッタ３の印刷部へ用紙を搬送すると、用紙搬送系の機械的精度によって、印刷部に搬送される用紙が傾いた状態で搬送される。そ傾き補正部３３は、傾いていない第１メインメモリ１０の画像データをリードし、用紙の傾きを相殺する傾き補正を行って、第１メインメモリ１０へ書き戻す。
【００３６】
ハードディスク制御部３６は、コントローラＡＳＩＣ５で扱う画像データを一時保存しておくために、第１メインメモリ１０上の画像データを、ＤＭＡＣ３６ａによって、ハードディスク６へライトする。また、ハードディスク制御部３６は、ハードディスク６から画像データをリードして第１メインメモリ１０へライトする。
【００３７】
メモリコントローラ３７は、アービタ２９からの画像データを、第２メインメモリ７へ書き込み、また、第２メインメモリ７の画像データを読み出して、アービタ２９へ出力する。
【００３８】
なお、コントローラＡＳＩＣ５は、圧縮伸長器２２、２３、ビデオ入力部２４、ビデオ出力部２５〜２８、回転器３０、３１、編集器３２、傾き補正部３３の動作において、第１メインメモリ１０を利用して画像データの処理を行っている。ところが、コントローラＡＳＩＣ５は、上記動作処理を、第２メインメモリ７を用いても同様に行うことができる。
【００３９】
傾き補正部３３及びその周辺の回路は、画像処理部（画像処理装置）６０として、図３のように示される。すなわち、画像処理部６０は、入力部２４のＤＭＡＣ２４ａ、傾き補正部３３、傾き補正部３３のＤＭＡＣ３３ａ、３３ｂ及び内部メモリ５０を備えている。そして、傾き補正部３３は、図３に示すように、処理ライン数比較部４１、座標生成部４２、ＳＲＡＭ制御部４３及びレジスタ制御部４４を備えており、ＤＭＡＣ３３ａ、３３ｂ及び内部メモリ５０が接続されている。
【００４０】
内部メモリ５０は、例えば、複数ライン分のＳＲＡＭ（Static Random Access Memory）により構成されており、ＳＲＡＭとしては、例えば、８ライン分が用いられている。内部メモリ５０は、コントローラＡＳＩＣ５においてラインＦＩＦＯ(First In First Out)メモリとして利用される。
【００４１】
傾き補正部３３は、ビデオ入力部２４のＤＭＡＣ２４ａにより第１メインメモリ１０または第２メインメモリ７に書き込まれた画像データに対して、傾き補正処理を施して、第１メインメモリ１０または第２メインメモリ７へ書き戻す。画像処理部６０は、メインメモリとしては、第１メインメモリ１０と第２メインメモリ７のいずれをも使用することができるが、以下の説明では、説明を明確化するために、メインメモリとして、第２メインメモリ７を用いるものとして説明する。
【００４２】
ビデオ入力部２４のライトＤＭＡＣであるＤＭＡＣ２４ａは、スキャナ２で読み取られた画像データを、ラスタイメージで、第２メインメモリ７へ書き込む。したがって、画像データが傾きを有しているときには、画像データは、傾いた状態で、第２メインメモリ７へ書き込まれる。ＤＭＡＣ２４ａは、第２メインメモリ７へ書き込んだ画像データのライン数を、ライトライン数として、傾き補正部３３の処理ライン数比較部４１へ通知する。なお、ＤＭＡＣ２４ａは、第２メインメモリ７へ書き込んだライン数を、ＣＰＵ９に設定された主走査サイズによって管理する。ＤＭＡＣ２４ａは、データ書込手段として機能している。
【００４３】
傾き補正部３３は、上述のように、ＤＭＡＣ３３ａ、３３ｂに接続されている。ＤＭＡＣ３３ａは、リードＤＭＡＣであり、ＤＭＡＣ３３ｂは、ライトＤＭＡＣである。
【００４４】
ＤＭＡＣ３３ａは、傾き補正部３３の座標生成部４２からリードアドレスが入力され、このリードアドレスに基づいて、第２メインメモリ７にメモリアクセス要求を行って、第２メインメモリ７から該リードアドレスの画像データを読み出す。ＤＭＡＣ３３ａは、第２メインメモリ７から読み出した画像データを、傾き補正部３３のＳＲＡＭ制御部４３へ渡し、第２メインメモリ７から読み出した画像データのライン数を検出して、リードライン数として、処理ライン数比較部４１へ通知する。
【００４５】
また、ＤＭＡＣ３３ａは、処理ライン数比較部４１からリードウェイト要求が入力され、該リードウェイト要求が入力されると、該リードウェイト要求（待機要求）が入力されている間、第２メインメモリ７へのアクセスを待つ（待機する）。すなわち、ＤＭＡＣ３３ａは、リードウェイト要求が入力されている間、第２メインメモリ７からの画像データのリードを停止して、リードウェイ要求が解除（待機解除）されるまで、画像データのリードを待つ。
【００４６】
ＤＭＡＣ３３ａは、傾き補正部３３から渡される内部メモリ５０に書き込まれた画像データを、第２メインメモリ７へ書き込む（ライトする）。
【００４７】
レジスタ制御部４４は、ＣＰＵ９によりアクセスされ、画像データの傾き補正に関するパラメータを受け取って、傾き補正部３３の各部４１〜４３に該パラメータを供給する。
【００４８】
座標生成部４２は、原稿の傾きを示す原稿傾き情報、用紙の傾きを示す用紙傾き情報を受け取って、該傾き情報に基づいて、画像データの主走査方向及び副走査方向の位置を示す２次元座標（Ｘ、Ｙ）を生成する。座標生成部４２は、生成した座標情報を、処理ライン数比較部４１及びＳＲＡＭ制御部４３へ出力する。原稿の傾き情報は、スキャナ２の読取位置における原稿の傾きを検出する原稿スキュー検出センサ（図示略）の検出する傾き検出結果である。また、用紙傾き情報は、プロッタ３の印刷位置へ搬送される用紙の傾きを検出する用紙スキュー検出センサ（図示略）の検出する傾き検出結果である。なお、以下の説明においては、説明を明確にするために、原稿の傾きのみを取り上げ、座標生成部４２は、原稿傾き情報に基づいて、座標（Ｘ、Ｙ）を生成するものとして説明する。そして、この座標（Ｘ、Ｙ）は、第２メインメモリ７に書き込まれた画像データの読み出し位置となる。したがって、座標生成部４２は、座標生成手段として機能している。
【００４９】
また、座標生成部４２は、生成したＹ座標から分割領域毎に、最小となるＹ座標を検出して、最小Ｙ座標値（最小副走査座標）として保持する。具体的には、座標生成部４２は、画像データを、主走査方向（Ｘ方向）にｎ等分して、そのｎ等分した分割領域（Ｘ領域）毎に、最小となるＹ座標（副走査座標）を検出する。すなわち、座標生成部４２は、画像データの各画素の座標（Ｘ、Ｙ）を生成する。したがって、座標生成部４２は、最小副走査座標検出手段として機能している。
【００５０】
座標生成部４２は、保持した最小Ｙ座標値に従って、第２メインメモリ７から傾きを補正した状態で画像データを読み出すための物理アドレス（リードアドレス）を生成し、ＤＭＡＣ３３ａへ出力する。したがって、座標生成部４２は、読出アドレス生成手段として機能している。
【００５１】
ＤＭＡＣ３３ａは、上述のように、座標生成部４２からのリードアドレスに従って、第２メインメモリ７から傾きを補正した状態で画像データを読み出して、ＳＲＡＭ制御部４３へ出力し、読み出したライン数を処理ライン数比較部４１へ出力する。したがって、ＤＭＡＣ３３ａは、データ読出手段として機能している。
【００５２】
ＳＲＡＭ制御部４３は、ＤＭＡＣ３３ａからの画像データを、座標生成部４２からの座標情報に基づいて、分割領域単位で、内部メモリ（一時記憶手段）５０に順次書き込む（ライトする）。
【００５３】
また、ＳＲＡＭ制御部４３は、座標生成部４２からの座標情報に基づいて、内部メモリ５０のリードアドレスを生成して、内部メモリ５０から該リードアドレスに従って画像データを傾きが補正された状態で読み出して、ＤＭＡＣ３３ａへ渡す。したがって、ＳＲＡＭ制御部４３は、一時記憶制御手段として機能している。
【００５４】
ＤＭＡＣ３３ｂは、上述のように、傾き補正部３３から渡される画像データを、第２メインメモリ７へ書き込む（ライトする）。したがって、ＤＭＡＣ３３ｂは、書戻手段として機能している。
【００５５】
処理ライン数比較部４１は、ＤＭＡＣ２４ａからのライトライン数、ＤＭＡＣ３３ａからのリードライン数及び座標生成部４２からの座標情報に基づいて、第２メインメモリ７内の画像データを管理して、ＤＭＡＣ３３ａにリードウェイト要求の出力と解除を行う。したがって、処理ライン数比較部４１は、読出制御手段として機能している。
【００５６】
具体的には、処理ライン数比較部４１は、座標生成部４２からの座標情報から各分割領域毎の最小Ｙ座標値と最大Ｙ座標値を検出する。この最小Ｙ座標値と最大Ｙ座標値の差分は、画像データの傾きの大きに比例する。処理ライン数比較部４１は、ライトライン数とリードライン数の差分（｜ライトライン数−リードライン数｜）を、最大Ｙ座標値と最小Ｙ座標値の差分（｜最大Ｙ座標値ー最小Ｙ座標値｜）と比較する。処理ライン数比較部４１は、ライトライン数とリードライン数の差分が、最大Ｙ座標値と最小Ｙ座標値の差分よりも小さいというリードウェイト条件を満たしている間、リードウェイト要求をＤＭＡＣ３３ａへ出力する。すなわち、処理ライン数比較部４１は、リードウェイト条件（｜ライトライン数−リードライン数｜＜｜最大Ｙ座標値ー最小Ｙ座標値｜）を満たしている間、リードウェイト要求をＤＭＡＣ３３ａへ出力する。
【００５７】
すなわち、処理ライン数比較部４１は、第２メインメモリ７へのライトライン数とリードライン数との差分が、画像データの分割領域毎のＹ座標の最大値と最小値の差分よりも小さいというリードウェイト条件を用いて、リードウェイト要求の出力と解除を行う。したがって、画像データの分割領域毎に、第２メインメモリ７からの画像データの読み出しを適切に制御することができ、少ない容量の第２メインメモリ７を有効活用して、画像データの傾きを補正することができる。
【００５８】
なお、複合装置１は、ＲＯＭ、ＥＥＰＲＯＭ（Electrically Erasable and Programmable Read Only Memory ）、ＥＰＲＯＭ、フラッシュメモリ、フレキシブルディスク、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory ）、ＣＤ−ＲＷ（Compact Disc Rewritable ）、ＤＶＤ（Digital Versatile Disk）、ＵＳＢ（Universal Serial Bus）メモリ、ＳＤ（Secure Digital）カード、ＭＯ（Magneto-Optical Disc）等のコンピュータが読み取り可能な記録媒体に記録されている本発明の画像処理方法を実行するプログラムを読み込んで第１メインメモリ１０やハードディスク６等に導入することで、後述する小容量の画像記憶手段を用いて、画像データに対して傾き補正を適切に行う画像処理方法を実行する画像処理装置としての傾き補正部３３を備える画像形成装置として構築されている。このプログラムは、アセンブラ、Ｃ、Ｃ＋＋、Ｃ＃、Ｊａｖａ（登録商標）等のレガシープログラミング言語やオブジェクト指向プログラミング言語等で記述されたコンピュータ実行可能なプログラムであり、上記記録媒体に格納して頒布することができる。
【００５９】
次に、本実施例の作用を説明する。本実施例の複合装置１は、その傾き補正部３３が、小容量の画像記憶手段である第１メインメモリ１０または第２メインメモリ７を用いて、画像データに対して傾き補正を適切に行う。
【００６０】
なお、以下の説明では、スキャナ２で読み取る原稿の傾きによって、スキャナ２で読み取られた原稿の画像データの傾きを補正して、第１メインメモリ１０または第２メインメモリ７へ保管する場合について説明する。本発明は、入力画像データに傾きはないが、プロッタ３での該画像データに基づいて画像を形成する対象の用紙に傾きがある場合にも、同様に適用することができる。
【００６１】
いま、複合装置１は、スキャナ２で読み取った画像データが、図４に示すように、傾いていると、ビデオ入力部２４が、ライトＤＭＡＣであるＤＭＡＣ２４ａが、第１メインメモリ１０または第２メインメモリ７に、傾いた状態で書き込む。なお、複合装置１は、第１メインメモリ１０または第２メインメモリ７を、小容量の画像記憶手段として利用して、画像データに対して傾き補正を行うが、以下の説明では、説明を明確化するために、画像記憶手段として、第２メインメモリ７を用いるものとして説明する。この場合、コントローラＡＳＩＣ５は、図５に太実線矢印で示すように画像データを転送する。すなわち、コントローラＡＳＩＣ５は、スキャナ２からの画像データを、ＰＣＩｅ Root２１、ビデオ入力部２４、ＤＭＡＣ２４ａ、アービタ２９及びメモリコントローラ３７を介して第２メインメモリ７へ書き込む。コントローラＡＳＩＣ５は、第２メインメモリ７の画像データを、メモリコントローラ３７、アービタ２９、ＤＭＡＣ３３ａ及びＤＭＡＣ３３ａを介して、傾き補正部３３へ転送し、また、傾き補正部３３から第２メインメモリ７へ書き戻す。
【００６２】
そして、上記ＤＭＡＣ２４ａは、図４に太実線矢印で示すように、傾いた画像データを、ラスタイメージで、傾いた状態で第２メインメモリ７に書き込む（ライトする）。なお、図４において、「Ｒ」を囲むように描かれている四角が、第２メインメモリ７に書き込まれた画像データを示しており、上側の画像データが傾いた状態で書き込まれている。
【００６３】
傾き補正部３３は、ＤＭＡＣ２４ａにより、傾いた状態で第２メインメモリ７に書き込まれた画像データを、該画像データの座標情報に基づいて、ＤＭＡＣ３３ｂにより、傾きを補正した状態で読み出して、内部メモリ５０を介して第２メインメモリ７へ書き戻す。すなわち、傾き補正部３３は、図４に太線矢印で示すように、傾いてライトされた第２メインメモリ７の画像データを、傾きを補正した状態で、リードして、第２メインメモリ７にライトする。
【００６４】
このとき、傾き補正部３３は、ＤＭＡＣ２４ａによる第２メインメモリ７へのライトライン数とＤＭＡＣ３３ａによる第２メインメモリ７からのリードライン数に基づいて、リードウェイトを制御して、少ない容量の第２メインメモリ７を用いて傾き補正を行う。
【００６５】
そして、複合装置１は、画像データの傾き補正を、図６に示すシーケンスに従って実行する。すなわち、複合装置１は、傾き補正を行う場合、図６に示すように、まず、ＣＰＵ９が、傾き補正を実行するためのパラメータを、傾き補正部３３のレジスタ制御部４４へ設定し、レジスタ制御部４４は、設定されたパラメータを座標生成部４２等に設定する。
【００６６】
座標生成部４２は、設定されたパラメータに基づいて、原稿の傾き、すなわち、画像データの傾きに対応する座標（Ｘ、Ｙ）を生成して、生成した座標情報を、処理ライン数比較部４１、ＤＭＡＣ３３ａ及びＳＲＡＭ制御部４３に出力する。
【００６７】
すなわち、いま、図７に示すように、画像データが、１ラインで、１６３８４画素の１２００ｄｐｉ相当であるとすると、ＤＭＡＣ２４ａは、この画像データを、ライン単位で、傾いた状態で第２メインメモリ７にライトする。
【００６８】
そして、座標生成部４２は、スキュー検出センサによる原稿の傾き検出結果に基づいて、第２メインメモリ７の画像データの主走査方向及び副走査方向の２次元座標（Ｘ、Ｙ）を生成する。座標生成部４２は、この座標情報を、処理ライン数比較部４１、ＤＭＡＣ３３ａ及びＳＲＡＭ制御部４３に出力する。
【００６９】
また、座標生成部４２は、画像データを、主走査方向（Ｘ方向）において、複数ｎの分割領域、図７では、ｎ＝１６の領域に分割して、各分割領域毎に、上記生成した座標のＹ座標の最小となるＹ座標を検出して、最小Ｙ座標値として保持する。座標生成部４２は、最小Ｙ座標値に従って、第２メインメモリ７のリードアドレスを生成して、ＤＭＡＣ３３ａへ出力する。すなわち、座標生成部４２は、図７及び図８に黒四角で示すように、各分割領域毎の最小の物理アドレスを保持しており、この各分割領域毎の最小の物理アドレスからリードアドレスを生成して、ＤＭＡＣ３３ａへ出力する。なお、分割領域は、図６、図７では、副走査方向に１画素分で、主走査方向に１０２４画素分の長方形の領域である。
【００７０】
そして、複合装置１は、図６に示すように、ＣＰＵ９が、ライトＤＭＡＣであるＤＭＡＣ２４ａを起動し、さらに、リードＤＭＡＣであるＤＭＡＣ３３ａを起動する。ＤＭＡＣ２４ａは、起動されると、上述のように、スキャナ２で読み取られた画像データを、ラスタイメージで、第２メインメモリ７へ書き込みを開始し、起動している間は、書き込んだライン数をライトライン数として処理ライン数比較部４１へ渡す。ＤＭＡＣ３３ａは、起動されると、上述のように、座標生成部４２からのリードアドレスに基づいて、第２メインメモリ７から該リードアドレスの画像データを読み出し、起動している間は、読み出したライン数をリードライン数として処理ライン数比較部４１へ渡す。
【００７１】
すなわち、ＤＭＡＣ３３ａは、図７及び図８において、まず、第２メインメモリ７上の先頭の分割領域（Ａ１)の１０２４画素（８ｂｉｔ／画素）を、図８に一点鎖線矢印で示すように、第２メインメモリ７からリードし、ＳＲＡＭ制御部４３へ転送する。ＳＲＡＭ制御部４３は、図９に実線矢印で示すように、この１０２４画素の画像データを内部メモリ５０の８個のＳＲＡＭのうち、先頭のＳＲＡＭの先頭の分割領域（Ａ１)へライトする。
【００７２】
同様に、ＤＭＡＣ３３ａは、図８に一点鎖線矢印で示すように、第２メインメモリ７の２番目の分割領域（Ａ２）の１０２４画素をリードし、ＳＲＡＭ制御部４３へ転送する。ＳＲＡＭ制御部４３は、図９に実線矢印で示すように、この１０２４画素の画像データを内部メモリ５０の８個のＳＲＡＭのうち、先頭のＳＲＡＭの２番目の分割領域（Ａ２)へライトする。
【００７３】
ＤＭＡＣ３３ａ及びＳＲＡＭ制御部４３は、上記リード処理とライト処理を順次行って、第２メインメモリ７上の１ライン分の画像データを、内部メモリ５０の先頭のＳＲＡＭへ転送する。
【００７４】
なお、画像処理部６０は、上記動作を、ＳＲＡＭ制御部４３が、１０２４画素のトグルバッファを有しているときには、該トグルバッファを並列に動作させることで、行ってもよい。
【００７５】
ＤＭＡＣ３３ａ及びＳＲＡＭ制御部４３は、上記動作処理を、分割領域分、本実施例では、１６回繰り返して実行することで、１ライン分の画像データを第２メインメモリ７から内部メモリ５０へ転送する。
【００７６】
ＤＭＡＣ３３ａは、上記動作を画像データの１ライン分実行すると、リードライン数通知を処理ライン数比較部４１へ通知する。ＤＭＡＣ３３ａは、分割領域毎に、その分割領域の画像データのリードが完了すると、リード完了フラグをカウントして、リード完了フラグのカウント数が１ライン分の分割領域数になると、１ラインのリード完了として、リードライン数通知を行う。また、ＤＭＡＣ３３ａは、リードした画像データの画素をカウントして、例えば、１０２４バイト×１６画素カウントすると、１ラインのリード完了として、リードライン数通知を行ってもよい。
【００７７】
また、ＳＲＡＭ制御部４３は、座標生成部４２からの座標情報に従って、内部メモリ５０のリードアドレスを生成する。ＳＲＡＭ制御部４３は、上述のようにして画像データを書き込んだ内部メモリ５０から、生成したリードアドレスに基づいて、画像データをリードし、傾きが補正された状態の画像データをライトＤＭＡＣ３３ａへ転送する。ライトＤＭＡＣ３３ａは、転送されてきた画像データを、図４に示すように、傾きが補正された状態で、書き込む（ライトする）。
【００７８】
処理ライン数比較部４１は、ＤＭＡＣ２４ａからのライトライン数と、ＤＭＡＣ３３ａからのリードライン数及び座標生成部４２からの座標情報に基づいて、第２メインメモリ７内の画像データを管理して、ＤＭＡＣ３３ａにリードウェイト要求の出力と解除を行う。
【００７９】
具体的には、処理ライン数比較部４１は、上述のように、座標生成部４２からの座標情報から各分割領域毎の最小座標に基づいて、最小Ｙ座標値と最大Ｙ座標値を検出する。処理ライン数比較部４１は、ライトライン数とリードライン数の差分（｜ライトライン数−リードライン数｜）を、最大Ｙ座標値と最小Ｙ座標値の差分（｜最大Ｙ座標値ー最小Ｙ座標値｜）と比較する。この最小Ｙ座標値と最大Ｙ座標値の差分は、画像データの傾きの大きに比例し、上記図８では、画像データの傾きが、「１６」となっている。
【００８０】
処理ライン数比較部４１は、ライトライン数とリードライン数の差分が、最大Ｙ座標値と最小Ｙ座標値の差分よりも小さいというリードウェイト条件を満たしている間、リードウェイト要求をリードＤＭＡＣ３３ａへ出力する。すなわち、処理ライン数比較部４１は、リードウェイト条件（｜ライトライン数−リードライン数｜＜｜最大Ｙ座標値ー最小Ｙ座標値｜）を満たしている間、リードウェイト要求をＤＭＡＣ３３ａへ出力する。
【００８１】
すなわち、処理ライン数比較部４１は、第２メインメモリ７へのライトライン数とリードライン数との差分が、画像データの分割領域毎のＹ座標の最大値と最小値の差分よりも小さいというリードウェイト条件を用いて、リードウェイト要求の出力と解除を行う。
【００８２】
したがって、処理ライン数比較部４１は、図６に示すように、ＤＭＡＣ２４ａとＤＭＡＣ３３ａを起動すると、上記リードウェイ条件を満たしているため、このリードウェイ条件を満たさなくなるまで、リードウェイ要求をＤＭＡＣ３３ａに出力する。このリードウェイ要求が出力されている間、ＤＭＡＣ２４ａは、画像データの第２メインメモリ７へのライト処理を行い、ＤＭＡＣ３３ａは、第２メインメモリ７からの画像データのリードを停止する。処理ライン数比較部４１は、リードウェイ条件を満たさなくなると、図６に示すように、ＤＭＡＣ３３ａへのリードウェイ要求を解除する。ＤＭＡＣ３３ａは、リードウェイ要求が解除されると、第２メインメモリ７から画像データのリードを開始して内部メモリ５０へ画像データを転送する。処理ライン数比較部４１は、このＤＭＡＣ２４ａによる画像データの第２メインメモリ７へのライトとＤＭＡＣ３３ａによる第２メインメモリ７からのリードが、リードウェイ条件に基づいて、リードウェイ要求と解除を行う。
【００８３】
したがって、画像データの分割領域毎に、第２メインメモリ７からの画像データの読み出しを適切に制御することができ、少ない容量の第２メインメモリ７を有効活用して、画像データの傾きを補正することができる。
【００８４】
そして、傾き補正部３３は、画像データの傾きが大きくなると、内部メモリ５０のＳＲＡＭの数と１ラインの画像データの画素数から、分割領域の数を変更する必要がある。いま、画像データの傾きが、図１０に示すように、「３２」であると、座標生成部４２の生成する各分割領域の最小Ｙ座標の最小Ｙ座標値と最大Ｙ座標値の差分が、分割数の２倍である。なお、以下の説明においても、メインメモリとして、第２メインメモリ７を用いるものとして説明するが、第１メインメモリ１０を用いても同様である。
【００８５】
この場合、座標生成部４２は、分割数の２倍であるという差分情報から第２メインメモリ７上の画像データのリードアドレスとして、図１０の実線矢印で示す分割領域（Ａ１〜Ａ１６）の順にリードするリードアドレスを生成する。
【００８６】
すなわち、座標生成部４２は、まず、分割領域の最小Ｙ座標を用いて分割領域Ａ１の１０２４画素をリードするリードアドレスを生成し、ＤＭＡＣ３３ａが、該リードアドレスに基づいて分割領域Ａ１の１０２４画素をリードしてＳＲＡＭ制御部４３に転送する。次に、座標生成部４２は、分割領域Ａ１のリードアドレスに、１ライン分のアドレスを加算して、分割領域Ａ２の先頭アドレスを算出し、分割領域Ａ２の１０２４画素のリードアドレスを生成してＤＭＡＣ３３ａに渡す。この分割領域Ａ２は、分割領域Ａ１に対して副走査方向に並んだ領域である。ＤＭＡＣ３３ａは、分割領域Ａ２のリードアドレスに基づいて、該分割領域Ａ２の１０２４画素をリードしてＳＲＡＭ制御部４３に転送する。上記同様に、座標生成部４２は、分割領域Ａ３、Ａ４、・・・Ａ１５、Ａ１６の画像データのリードアドレスを生成してＤＭＡＣ３３ａへ渡し、ＤＭＡＣ３３ａは、該リードアドレスに基づいて分割領域Ａ３、Ａ４、・・・Ａ１５、Ａ１６の画像データをリードする。分割領域Ａ３は、分割領域Ａ２に対して、主走査方向に並んだ領域である。以下、同様に、座標生成部４２は、副走査方向に２つ並び、下側の分割領域に続いて主走査方向に次の副走査方向に２つ並んだ分割領域が並ぶ状態で分割領域のリードアドレスを生成する。
【００８７】
なお、この場合、ＤＭＡＣ３３ａは、分割領域毎に、その分割領域の画像データのリードが完了すると、リード完了フラグを分割数×２カウントして、リード完了フラグのカウント数が１ライン分の分割領域数になると、２ラインのリード完了として、リードライン数通知を行う。また、ＤＭＡＣ３３ａは、リードした画像データの画素をカウントして、例えば、１０２４バイト×１６画素×２カウントすると、２ラインのリード完了として、リードライン数通知を行ってもよい。
【００８８】
また、この場合、処理ライン数比較部４１は、上記同様に、上記リードウェイト条件に基づいて、リードウェイト要求の発行と解除を行う。
【００８９】
そして、複合装置１は、画像データの傾きが、上記例で示した右下がりの傾きではなく、図１１に示すように、左下がり（右上がり）の傾きの場合にも、上記傾き補正処理を同様に実行する。ただし、この場合、複合装置１は、図１１に示す分割領域Ａ１、Ａ２、・・・の順番で、メインメモリ７、１０の画像データを、ＤＭＡＣ３３ａでリードして内部メモリ５０へ転送する。
【００９０】
すなわち、この場合、座標生成部４２は、生成した各分割領域の最小Ｙ座標から生成した最小分割領域の最小Ｙ座標と最大分割領域の最小Ｙ座標を比較する。座標生成部４２は、最小分割領域の最小Ｙ座標が最大分割領域の最小Ｙ座標よりも大きいと、画像データの傾きが右上がり（左下がり）であると判断する。
【００９１】
座標生成部４２は、画像データの傾きが左下がりであると、図１１に示す分割領域Ａ１、Ａ２、・・・、Ａ１５、Ａ１６の順にリードするリードアドレスを生成して、ＤＭＡＣ３３ａへ出力する。ＤＭＡＣ３３ａは、このリードアドレスに基づいて、１０２４画素単位でＹ方向に連続する２つの分割領域の画像データをリードして、ＳＲＡＭ制御部４３に転送し、２ライン単位で、リードライン数通知を処理ライン数比較部４１へ出力する。ＳＲＡＭ制御部４３は、座標生成部４２からの座標情報から画像データが左下がりの傾きであるとわかると、ＤＭＡＣ３３ａから転送されてきた１０２４画素単位の画像データを、内部メモリ５０の最大分割領域側のＳＲＡＭのブロックからライトする。
【００９２】
なお、上記説明においては、主に、スキャナ２で原稿の画像を読み取ったときの傾きの存在する画像データについて説明したが、コンピュータ等の外部装置等から入力される画像データに対しても、同様に適用することができる。
【００９３】
また、外部装置からの画像データに対する傾き補正は、入力画像データに傾きがある場合と、入力画像データに傾きはないとして、出力する用紙等の出力媒体に傾きがある場合とがある。入力画像データに傾きがある場合は、複合装置１は、該傾きを示す情報が外部装置から画像データとともに送られてくるときには、上記スキャナ２で読み取った場合と同様に処理することで対応することができる。
【００９４】
ところが、入力画像データに傾きがないときには、複合装置１は、出力媒体の傾きに対して該傾きに合わせて画像データを傾けて出力することで、出力媒体に対して傾きがない状態で画像を出力することができる。
【００９５】
すなわち、複合装置１は、例えば、外部装置から受信した画像データに基づいてプロッタ３で画像を印刷出力する場合、画像データをビットマップデータに変換して、メインメモリ７、１０に蓄積する。そして、複合装置１は、感光体、すなわち、印刷部へ搬送される用紙の傾きを、用紙の搬送路上に配置されたスキュー検出センサによって検出して、検出結果の傾き情報をＣＰＵ９へ送る。このような用紙の傾きは、搬送路の機械的精度や内部の温度等のさまざまな要因で発生する。
【００９６】
この場合、画像処理部６０は、メインメモリ７、１０に蓄積されている画像データを、用紙の傾き情報に合わせて、上記同様にして、用紙の傾きを相殺するように、メインメモリ７、１０から読み出す。この場合、用紙が左右いずれかに傾いていると、画像処理部６０は、用紙の傾きを相殺する傾きを持たせた状態で、メインメモリ７、１０から画像データを読み出す。
【００９７】
このように傾けた状態でメインメモリ７、１０から画像データを読み出すことで、用紙に対して画像の傾きが補正された状態で印刷出力される。
【００９８】
したがって、用紙等の出力媒体が傾いている場合に、該出力媒体の傾きに合わせて画像データを傾けた状態で、安価にアドレス調整して出力させることができ、安価に、かつ、画像を適切な向きで出力させることができる。
【００９９】
このように、本実施例の複合装置１は、その画像処理装置である傾き補正部３３を有するコントローラＡＳＩＣ５が、所定ライン数分のメモリ容量を有する内部メモリ（一時記憶手段）５０を利用して、所定容量のメインメモリ（画像記憶手段）７、１０に書き込まれる画像データの傾きを補正する画像処理装置であって、画像データを前記メインメモリ７、１０に書き込むとともに該メインメモリ７、１０への該画像データの書込ライン数を検出するＤＭＡＣ（データ書込手段）２４ａと、前記メインメモリ７、１０の画像データと該画像データの出力先の用紙等の出力媒体との相対的な傾きを示す傾き情報に基づいて、該画像データの該出力媒体との関係における各画素の画素位置を示す主走査方向及び副走査方向の座標情報を生成する座標生成部（座標生成手段）４２と、前記画像データを主走査方向において所定の分割数に分割した分割領域毎に、前記座標情報から該画像データの副走査方向において最小値となる最小Ｙ座標（最小副走査座標）を検出する座標生成部（最小副走査座標検出手段）４２と、検出された前記分割領域毎の前記最小Ｙ座標に基づいて、前記メインメモリ７、１０から該各分割領域の前記画像データを読み出す読出アドレスを生成する座標生成部（読出アドレス生成手段）４２と、前記読出アドレスに基づいて前記メインメモリ７、１０から前記画像データを読み出すとともに、該メインメモリ７、１０からの該画像データの読出ライン数を検出するＤＭＡＣ（データ読出手段）３３ａと、前記書込ライン数、前記読出ライン数及び前記座標情報に基づいて、前記ＤＭＡＣ３３ａによる前記画像データのリードウェイト要求（読出待機）と要求解除（待機解除）を制御する処理ライン数比較部（読出制御手段）４１と、前記座標情報に基づいて前記内部メモリ５０への書込アドレスを生成して、前記ＤＭＡＣ３３ａの読み出した前記分割領域分の前記画像データを順次該内部メモリ５０へ書き込むとともに、該座標情報に基づいて該内部メモリ５０からの読出アドレスを生成して、該内部メモリ５０から該分割領域分の該画像データを順次読み出すＳＲＡＭ制御部（一時記憶制御手段）４３と、を備えている。
【０１００】
したがって、簡単な構成で、メインメモリ７、１０への画像データの書き込みと読み出しのライン数を管理しつつ、画像データの傾きを補正することができ、小容量のメインメモリ７、１０を用いて、画像データに対して傾き補正を適切に行うことができる。
【０１０１】
また、本実施例の複合装置１は、所定ライン数分のメモリ容量を有する内部メモリ５０を利用して、所定容量のメインメモリ７、１０に書き込まれる画像データの傾きを補正する画像処理装置としての傾き補正部３３を有するコントローラＡＳＩＣ５の実行する画像処理方法であって、画像データをメインメモリ７、１０に書き込むとともに該メインメモリ７、１０への該画像データの書込ライン数を検出するデータ書込処理ステップと、前記メインメモリ７、１０の画像データと該画像データの出力先の用紙等の出力媒体との相対的な傾きを示す傾き情報に基づいて、該画像データの該出力媒体との関連における各画素の画素位置を示す主走査方向及び副走査方向の座標情報を生成する座標生成処理ステップと、前記画像データを主走査方向において所定の分割数に分割した分割領域毎に、前記座標情報から該画像データの副走査方向において最小値となる最小Ｙ座標を検出する最小副走査座標検出処理ステップと、検出された前記分割領域毎の前記最小Ｙ座標に基づいて、前記メインメモリ７、１０から該各分割領域の前記画像データを読み出す読出アドレスを生成する読出アドレス生成処理ステップと、前記読出アドレスに基づいて前記メインメモリ７、１０から前記画像データを読み出すとともに、該メインメモリ７、１０からの該画像データの読出ライン数を検出するデータ読出処理ステップと、前記書込ライン数、前記読出ライン数及び前記座標情報に基づいて、前記データ読出処理ステップにおける前記画像データのリードウェイト要求と要求解除を制御する読出制御処理ステップと、前記座標情報に基づいて前記内部メモリ５０への書込アドレスを生成して、前記データ読出処理ステップで読み出された前記分割領域分の前記画像データを順次該内部メモリ５０へ書き込むとともに、該座標情報に基づいて該内部メモリ５０からの読出アドレスを生成して、該内部メモリ５０から該分割領域分の該画像データを順次読み出す一時記憶制御処理ステップと、を有している画像処理方法を実行する。
【０１０２】
したがって、簡単な構成で、メインメモリ７、１０への画像データの書き込みと読み出しのライン数を管理しつつ、画像データの傾きを補正することができ、小容量のメインメモリ７、１０を用いて、画像データに対して傾き補正を適切に行うことができる。
【０１０３】
さらに、本実施例の複合装置１は、所定ライン数分のメモリ容量を有する内部メモリ５０を利用して、所定容量のメインメモリ７、１０に書き込まれる画像データの傾きを補正する画像処理装置としての傾き補正部３３を有するコントローラＡＳＩＣ５の搭載するプログラムであって、コンピュータに、画像データを前記メインメモリ７、１０に書き込むとともに該メインメモリ７、１０への該画像データの書込ライン数を検出するデータ書込処理と、前記メインメモリ７、１０の画像データと該画像データの出力先の出力媒体との相対的な傾きを示す傾き情報に基づいて、該画像データの該出力媒体との関連における各画素の画素位置を示す主走査方向及び副走査方向の座標情報を生成する座標生成処理と、前記画像データを主走査方向において所定の分割数に分割した分割領域毎に、前記座標情報から該画像データの副走査方向において最小値となる最小Ｙ座標を検出する最小副走査座標検出処理と、検出された前記分割領域毎の前記最小Ｙ座標に基づいて、前記メインメモリ７、１０から該各分割領域の前記画像データを読み出す読出アドレスを生成する読出アドレス生成処理と、前記読出アドレスに基づいて前記メインメモリ７、１０から前記画像データを読み出すとともに、該メインメモリ７、１０からの該画像データの読出ライン数を検出するデータ読出処理と、前記書込ライン数、前記読出ライン数及び前記座標情報に基づいて、前記データ読出処理による前記画像データの読出待機と待機解除を制御する読出制御処理と、前記座標情報に基づいて前記内部メモリ５０への書込アドレスを生成して、前記データ読出処理で読み出された前記分割領域分の前記画像データを順次該内部メモリ５０へ書き込むとともに、該座標情報に基づいて該内部メモリ５０からの読出アドレスを生成して、該内部メモリ５０から該分割領域分の該画像データを順次読み出す一時記憶制御処理と、を実行させるプログラムを搭載している。
【０１０４】
したがって、簡単な構成で、メインメモリ７、１０への画像データの書き込みと読み出しのライン数を管理しつつ、画像データの傾きを補正することができ、小容量のメインメモリ７、１０を用いて、画像データに対して傾き補正を適切に行うことができる。
【０１０５】
また、本実施例の複合装置１は、その傾き補正部３３を有するコントローラＡＳＩＣ５が、前記ＳＲＡＭ制御部４３が読み出した前記分割領域分の前記画像データを、順次前記メインメモリ７、１０へ書き戻すＤＭＡＣ（書戻手段）３３ｂを、さらに備えている。
【０１０６】
したがって、簡単な構成で、メインメモリ７、１０の画像データを、用紙等の出力媒体との間の相対的な傾きを補正した状態で、メインメモリ７、１０に書き戻すことができ、画像データの利用性を向上させることができる。
【０１０７】
さらに、本実施例の複合装置１の傾き補正部３３を有するコントローラＡＳＩＣ５は、前記読出アドレス生成手段としての座標生成部４２が、前記最小Ｙ座標の示す前記画像データの傾きが前記分割領域の数との関連において所定の傾き割合を超える毎に、該画像データに対する読取アドレスとして、副走査方向に連続する該分割領域のアドレスを割り当てる読出アドレスを生成し、前記データ読出手段としてのＤＭＡＣ３３ａが、前記読出アドレスに基づいて前記メインメモリ７、１０から副走査方向に連続する前記分割領域の前記画像データを読み出すとともに、副走査方向に連続する該分割領域の数のライン数を纏めて読出ライン数として検出する。
【０１０８】
したがって、簡単な構成で、画像データの傾きに応じてメインメモリ７、１０からの分割領域毎の画像データの読み出しを制御して、メインメモリ７、１０への画像データの書き込みと読み出しのライン数を管理しつつ、画像データの傾きを補正することができる。その結果、小容量のメインメモリ７、１０を用いて、種々の傾き程度の傾きのある画像データに対して傾き補正を適切に行うことができる。
【０１０９】
また、本実施例の複合装置１の傾き補正部３３を有するコントローラＡＳＩＣ５は、前記読出アドレス生成手段としての座標生成部４２が、前記最小副走査座標に基づいて前記画像データの傾きの向きを判断し、該傾きの向きに応じて、該画像データの主走査方向における前記分割領域の読出順序を決定して、該読取順序に応じて該画像データに対する読取アドレスを生成する。
【０１１０】
したがって、簡単な構成で、画像データの傾きの向きに応じて、メインメモリ７、１０からの分割領域毎の画像データの読出順序を制御して、画像データの傾きを補正することができる。その結果、小容量のメインメモリ７、１０を用いて、画像データに対して傾き補正を適切に行うことができる。
【０１１１】
以上、本発明者によってなされた発明を好適な実施例に基づき具体的に説明したが、本発明は上記実施例で説明したものに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【符号の説明】
【０１１２】
１  複合装置
２  スキャナ
３  プロッタ
４  画像処理ＡＳＩＣ
５  コントローラＡＳＩＣ
６  ハードディスク（ＨＤＤ）
７  第２メインメモリ
８  チップセット
９  ＣＰＵ
１０  第１メインメモリ
１１  Ｉ／Ｏ  ＡＳＩＣ
２１  ＰＣＩｅルートコンプレックス（ＰＣＩｅ Root)
２２、２３  圧縮伸長器
２２ａ、２２ｂ、２３ａ、２３ｂ  ＤＭＡＣ
Ｌｄ  ダイレクトビデオライン
２４  ビデオ入力部
２４ａ  ＤＭＡＣ
２５、２６、２７、２８  ビデオ出力部
２５ａ〜２５ｄ、２６ａ〜２６ｄ、２７ａ〜２７ｄ、２８ａ〜２８ｄ  ＤＭＡＣ
２９  アービタ
３０、３１  回転器
３０ａ、３０ｂ、３１ａ、３１ｂ  ＤＭＡＣ
３２  編集器
３２ａ、３２ｂ、３２ｃ  ＤＭＡＣ
３３  傾き補正部
３３ａ、３３ｂ  ＤＭＡＣ
３４  ＰＣＩｅエンドポイント（ＰＣＩｅ End Point）
３５  レジスタ制御回路
３６  ハードディスク制御部
３６ａ  ＤＭＡＣ
３７  メモリコントローラ
４１  処理ライン数比較部
４２  座標生成部
４３  ＳＲＡＭ制御部
４４  レジスタ制御部
５０  内部メモリ
【先行技術文献】
【特許文献】
【０１１３】
【特許文献１】特開２０００−２９６６４０号公報
【図１】
0006736881.tif 000002
【図２】
0006736881.tif 000003
【図３】
0006736881.tif 000004
【図４】
0006736881.tif 000005
【図５】
0006736881.tif 000006
【図６】
0006736881.tif 000007
【図７】
0006736881.tif 000008
【図８】
0006736881.tif 000009
【図９】
0006736881.tif 000010
【図１０】
0006736881.tif 000011
【図１１】
0006736881.tif 000012