(57)【要約】【課題】副走査方向のシフト処理の処理単位となる所定数の画素データを記憶手段が利用するキャッシュメモリに一度に格納できるようにする。【解決手段】副走査方向シフト処理モジュール１０Ｓは、画像データに対して副走査方向シフト処理を実行する。副走査方向シフト処理において、アドレス変換部３０は、複数の画素データのアドレスを変換する。アドレス変換部３０は、副走査方向シフト処理の処理単位となる所定数の画素データを、ＤＲＡＭ５０のロウバッファに一度に格納できるように複数の画素データのアドレスを変換する。【選択図】図１
2019161338.tif 000002
【特許請求の範囲】
【請求項１】
画像形成時の副走査方向のずれが抑制されるように複数の画素データをシフト処理する処理手段と、
前記複数の画素データを記憶する記憶手段と、
前記シフト処理の処理単位となる所定数の画素データを前記記憶手段が利用するキャッシュメモリに一度に格納できるように前記複数の画素データのアドレスを変換する変換手段と、
を有する画像処理装置。
【請求項２】
請求項１に記載の画像処理装置において、
前記所定数の画素データを前記記憶手段へ書き込む処理において、前記キャッシュメモリへのデータの格納と前記キャッシュメモリからのデータの掃き出しを複数回発生させない、
ことを特徴とする画像処理装置。
【請求項３】
請求項１または２に記載の画像処理装置において、
前記変換手段は、前記キャッシュメモリのデータ格納サイズ以下となる連続アドレスのデータ列に前記所定数の画素データが含まれるように前記複数の画素データのアドレスを変換する、
ことを特徴とする画像処理装置。
【請求項４】
請求項３に記載の画像処理装置において、
前記変換手段は、行列状に配列された前記複数の画素データのアドレスを変換して前記複数の画素データを並び替える処理を実行する、
ことを特徴とする画像処理装置。
【請求項５】
請求項１から４のいずれか１項に記載の画像処理装置において、
前記キャッシュメモリに格納される画素データへの書き込み要求を発行するにあたり、前記所定数の画素データに対応した複数のアクセス要求を一纏めにして連続的に発行する、
ことを特徴とする画像処理装置。
【請求項６】
請求項５に記載の画像処理装置において、
１画素あたりのバイト数と、前記シフト処理の最小補正単位と、前記連続的に発行される複数のアクセス要求の連続発行数と、によってブロックサイズが決定され、
前記シフト処理の処理範囲である最大ライン数と前記ブロックサイズとによって決定されるデータサイズが前記キャッシュメモリのデータ格納サイズ以下となる制約条件を満たすように、前記連続発行数が設定される、
ことを特徴とする画像処理装置。
【請求項７】
コンピュータに、
画像形成時の副走査方向のずれが抑制されるように複数の画素データをシフト処理する機能と、
前記シフト処理の処理単位となる所定数の画素データを記憶手段のキャッシュメモリに一度に格納できるように前記複数の画素データのアドレスを変換する機能と、
を実現させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置およびプログラムに関する。
【背景技術】
【０００２】
画像処理装置が処理対象とする画像データ等をメモリ等の記憶手段に記憶する記憶処理に係る技術が知られている。
【０００３】
例えば、特許文献１には、２つのフレームバッファの同一ロウアドレス上の連続する所定数の同一のカラムアドレス群で構成される２つのセグメントを表す論理アドレス群を、同一ロウアドレス上における連続する２つのセグメントを表す実アドレス群に変換するメモリ制御装置が記載されている。
【０００４】
また、特許文献２には、画像内での主走査方向の画素位置を示す主走査アドレスと副走査方向の画素位置を示す副走査アドレスをＳＤＲＡＭ上のカラムアドレスとロウアドレスとバンクアドレスに割り当てる際に、主走査アドレスのうちバースト転送サイズ分の下位のＮビットはカラムアドレスの下位ビットに割り当て、その上位側に続く所定数のビットはバンクアドレスに割り当ててアドレスマッピングし、バースト転送の切れ目で副走査アドレスを変更しながらマルチバンクオペレーションによってバースト転送を複数回連続的に実行することで、主走査方向１ライン分の読み取りまたは書き込みを行うメモリ制御装置が記載されている。
【０００５】
また、特許文献３には、レジストレーションずれのプロファイルに応じた副走査位置情報を設定し、画像補正処理を、高速ランダムアクセス可能なメモリで構成されたラインバッファを用いた高解像度補正処理と、大容量化が容易なメモリを用いた低解像度補正処理と、の２段階に分けて構成する画像形成装置が記載されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０００−０２９７８２号公報
【特許文献２】特開２０１４−１７８７４５号公報
【特許文献３】特開２０１２−１６８３７２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
画像形成時の副走査方向のずれが抑制されるように複数の画素データをシフトさせる処理を行う場合に、キャッシュメモリを介して、記憶手段にデータを書き込む処理が行われることがある。キャッシュメモリに対して画素データを書き込む処理を行う際に、シフト処理の処理単位となる各画素データの格納先アドレスが、キャッシュメモリのページサイズ以上に離れていると、処理単位のある画素データをキャッシュメモリへ書き込む処理を行った後、同処理単位の次の画素データを書き込む処理を行う前にキャッシュメモリからのデータの掃き出しという余計な処理を行う必要がある。本発明の目的は、そのような余計な処理を減らすことにある。
【課題を解決するための手段】
【０００８】
請求項１に係る発明は、画像形成時の副走査方向のずれが抑制されるように複数の画素データをシフト処理する処理手段と、前記複数の画素データを記憶する記憶手段と、前記シフト処理の処理単位となる所定数の画素データを前記記憶手段が利用するキャッシュメモリに一度に格納できるように前記複数の画素データのアドレスを変換する変換手段と、を有する画像処理装置である。
【０００９】
請求項２に係る発明は、請求項１に記載の画像処理装置において、前記所定数の画素データを前記記憶手段へ書き込む処理において、前記キャッシュメモリへのデータの格納と前記キャッシュメモリからのデータの掃き出しを複数回発生させないことを特徴とする画像処理装置である。
【００１０】
請求項３に係る発明は、請求項１または２に記載の画像処理装置において、前記変換手段は、前記キャッシュメモリのデータ格納サイズ以下となる連続アドレスのデータ列に前記所定数の画素データが含まれるように前記複数の画素データのアドレスを変換することを特徴とする画像処理装置である。
【００１１】
請求項４に係る発明は、請求項３に記載の画像処理装置において、前記変換手段は、行列状に配列された前記複数の画素データのアドレスを変換して前記複数の画素データを並び替える処理を実行することを特徴とする画像処理装置である。
【００１２】
請求項５に係る発明は、請求項１から４のいずれか１項に記載の画像処理装置において、前記キャッシュメモリに格納される画素データへの書き込み要求を発行するにあたり、前記所定数の画素データに対応した複数のアクセス要求を一纏めにして連続的に発行することを特徴とする画像処理装置である。
【００１３】
請求項６に係る発明は、請求項５に記載の画像処理装置において、１画素あたりのバイト数と、前記シフト処理の最小補正単位と、前記連続的に発行される複数のアクセス要求の連続発行数と、によってブロックサイズが決定され、前記シフト処理の処理範囲である最大ライン数と前記ブロックサイズとによって決定されるデータサイズが前記キャッシュメモリのデータ格納サイズ以下となる制約条件を満たすように、前記連続発行数が設定される、ことを特徴とする画像処理装置である。
【００１４】
請求項７に係る発明は、コンピュータに、画像形成時の副走査方向のずれが抑制されるように複数の画素データをシフト処理する機能と、前記シフト処理の処理単位となる所定数の画素データを記憶手段のキャッシュメモリに一度に格納できるように前記複数の画素データのアドレスを変換する機能と、を実現させるプログラムである。
【発明の効果】
【００１５】
キャッシュメモリに対して画素データを書き込む処理を行う際に、シフト処理の処理単位となる各画素データの格納先アドレスが、キャッシュメモリのページサイズ以上に離れていると、処理単位のある画素データをキャッシュメモリへ書き込む処理を行った後、同処理単位の次の画素データを書き込む処理を行う前にキャッシュメモリからのデータの掃き出しという余計な処理を行う必要がある。請求項１に係る発明により、そのような余計な処理を減らすことができるようになる。
【００１６】
請求項２に係る発明により、所定数の画素データを記憶手段へ書き込む処理において、キャッシュメモリへのデータの格納とキャッシュメモリからのデータの掃き出しが複数回発生する場合に比べて、記憶手段の帯域使用率が向上する。
【００１７】
請求項３に係る発明により、所定数の画素データが含まれる連続アドレスのデータ列をキャッシュメモリに一度に格納できるようになる。
【００１８】
請求項４に係る発明により、行列状に配列された複数の画素データが並び替えられる。
【００１９】
請求項５に係る発明により、格納途中でキャッシュメモリ内のデータをクリアせずに所定数の画素データをキャッシュメモリに格納できるようになる。
【００２０】
請求項６に係る発明により、キャッシュメモリのデータ格納サイズに応じた制約条件を満たすように複数のアクセス要求の連続発行数が設定される。
【００２１】
請求項７に係る発明により、副走査方向のシフト処理の処理単位となる所定数の画素データを記憶手段のキャッシュメモリに一度に格納できるプログラムが提供される。
【図面の簡単な説明】
【００２２】
【図１】本発明の具体的な実施態様の一例である画像処理装置を示す図である。
【図２】副走査方向シフト処理の具体例を示す図である。
【図３】画像データを配列順どおりに格納したラインバッファ構成を示す図である。
【図４】副走査方向シフト処理のラインバッファ構成の具体例を示す図である。
【図５】アドレス変換部によるアドレス変換の具体例を示す図である。
【図６】アドレス変換前後のラインバッファ構成の具体例を示す図である。
【図７】アクセス要求の逐次的発行と連続的発行を説明するための図である。
【図８】図１の画像処理装置による連続的なアクセス要求の具体例を示す図である。
【発明を実施するための形態】
【００２３】
図１は、本発明の具体的な実施態様の一例である画像処理装置１００を示す図である。画像処理装置１００は、画像データ（文字や数字や記号のみの画像に関する画像データを含む）に対して画像処理を実行する。例えば、コンピュータ等の外部装置から得られる画像データ又はスキャナ等により読み込まれた画像データが画像処理装置１００によって画像処理される。そして、画像処理装置１００による画像処理後の画像データは、画像形成処理により画像形成される。例えばＬＥＤ（Light Emitting Diode：発光ダイオード）を利用した印刷処理により、画像処理後の画像データに対応した画像が紙等の媒体上に印刷される。
【００２４】
画像処理装置１００は、複数のモジュール１０Ａ〜１０Ｓと、ＤＭＡコントローラ２０とアドレス変換部３０とバスブリッジ４０とＤＲＡＭ（Dynamic Random Access Memory）５０を備えている。複数のモジュール１０Ａ〜１０Ｓは、画像データに対して画像処理を実行する。例えば、モジュール１０Ａ，モジュール１０Ｂ，モジュール１０Ｃ，・・・の順に、各モジュールに応じた画像処理が次々に実行される。
【００２５】
複数のモジュール１０Ａ〜１０Ｓの各モジュールは、ＤＲＡＭ５０内に構成される画像処理用のラインバッファへのパスを備えている。つまり、ＤＭＡコントローラ２０により制御されるＤＭＡ（Direct Memory Access）転送により、バスブリッジ４０を介して、各モジュール（１０Ａ〜１０Ｓ）からＤＲＡＭ５０へのデータの書き込み（write）と、ＤＲＡＭ５０から各モジュール（１０Ａ〜１０Ｓ）へのデータの読み取り（read）が行われる。
【００２６】
複数のモジュール１０Ａ〜１０Ｓの中には、副走査方向シフト処理モジュール１０Ｓが含まれている。副走査方向シフト処理モジュール１０Ｓは、画像データに対して副走査方向シフト処理を実行する。また、副走査方向シフト処理においては、アドレス変換部３０により複数の画素データのアドレスが変換される。副走査方向シフト処理とアドレス変換については後に詳述する。
【００２７】
図１の画像処理装置１００が備える複数のモジュール１０Ａ〜１０Ｓは、例えば、画像処理プロセッサ等のハードウェアを利用して実現される。
【００２８】
また、図１の画像処理装置１００は例えばコンピュータを利用して実現されてもよい。そのコンピュータは、ＣＰＵ等の演算デバイス、メモリやハードディスク等の記憶デバイス、インターネット等の通信回線を利用する通信デバイス、光ディスクや半導体メモリ等の記憶媒体からデータを読み取りデータを書き込むデバイス、ディスプレイ等の表示デバイス、ユーザから操作を受け付ける操作デバイス等のハードウェア資源を備えている。
【００２９】
そして、例えば、図１に示す画像処理装置１００が備える符号を付した複数部分のうちの少なくとも一部の機能に対応したプログラム（ソフトウェア）がコンピュータに読み込まれ、そのコンピュータが備えるハードウェア資源と読み込まれたソフトウェアとの協働により、画像処理装置１００が備える少なくとも一部の機能がコンピュータにより実現される。そのプログラムは、例えば、インターネット等の通信回線を介してコンピュータ（画像処理装置１００）に提供されてもよいし、光ディスクや半導体メモリ等の記憶媒体に記憶されてコンピュータ（画像処理装置１００）に提供されてもよい。
【００３０】
図１に示す画像処理装置１００の全体構成は以上のとおりである。次に、図１の画像処理装置１００により実現される機能等について詳述する。なお、図１に示した構成（部分）については以下の説明において図１の符号を利用する。
【００３１】
図２は、副走査方向シフト処理の具体例を示す図である。図２に示す具体例において、紙等の媒体上に形成される二次元の出力画像は、主走査方向（各ラインの方向）の画像形成動作を副走査方向に移動させながら繰り返す画像形成処理により形成される。カラー画像であれば、例えば、Ｙ（イエロー），Ｍ（マゼンタ），Ｃ（シアン），Ｋ（黒）の４色トナーの各々に対応したＬＥＤプリントヘッドにより画像形成が行われる。例えば、ＹＭＣＫの４色（４トナー）に対応した４本のラインの組により、カラー画像の１ラインが形成される。
【００３２】
ところが、例えばＬＥＤプリントヘッド等により媒体上に画像を形成すると、ＬＥＤプリントヘッドの製造上のばらつき等により、設計上の理想的な主走査方向からラインがずれてしまい、例えば主走査方向に対して傾斜したラインが形成されてしまう。画像形成時の副走査方向のずれ（傾きなど）を抑制するために副走査方向シフト処理が実行される。
【００３３】
図２（Ａ）には、副走査方向シフト処理を無効にした画像形成の具体例が図示されている。入力画像に対して副走査方向シフト処理を行わずに画像形成処理が実行されると、画像形成処理において主走査方向に対して傾斜したラインが形成されてしまう。これにより例えば図２（Ａ）に示す具体例のように、ＹＭＣＫの４色（４トナー）の各々に対応したラインが傾斜した出力画像が形成されてしまう。
【００３４】
これに対し、図２（Ｂ）には、副走査方向シフト処理を有効にした画像形成の具体例が図示されている。副走査方向シフト処理では、画像形成処理において生じるずれ（傾き）の反対方向に入力画像がシフトされる。例えば、ＹＭＣＫの４色（４トナー）の各色（各トナー）ごと、入力画像を構成する画素のラインが副走査方向にシフト（画素位置の移動）される。そして、副走査方向シフト処理による意図的なずれ（傾き）と画像形成処理において生じてしまうずれ（傾き）が打ち消し合うことにより、副走査方向のずれが抑制される。これにより、例えば図２（Ｂ）に示す具体例のように、ラインの傾斜が抑制された（例えばラインの傾斜が無い）出力画像が形成される。
【００３５】
副走査方向シフト処理モジュール１０Ｓは、ＤＲＡＭ５０内に構成される画像処理用のラインバッファを利用して、副走査方向シフト処理を実行する。
【００３６】
図３は、画像データを配列順どおりに格納したラインバッファ構成の具体例を示す図である。画像データは複数のラインで構成されており、各ライン（１ライン）は複数の画素データで構成されている。
【００３７】
図３に示す具体例では、画像データ内における配列順で複数の画素データがラインバッファに格納されている。そして、先頭ラインから順にアドレスが割り当てられ、さらに、各ラインごとに先頭画素から順に各画素データに対してアドレスが割り当てられる。
【００３８】
また、図３に示す具体例において、複数のラインで構成されるシフト処理領域は、副走査方向シフト処理における処理範囲（ラインのずれ（傾き）が抑制される最大ライン数）であり、例えば画像形成処理において生じるずれ（傾き）の大きさ等に応じて適宜に設定される。なお、図３には、シフト処理領域（最大ライン数）が６４ラインの固定値である具体例を示しているが、シフト処理領域の範囲は６４ライン以外であってもよい。
【００３９】
副走査方向シフト処理では、画像形成処理において生じるずれ（傾き）の反対方向に入力画像がシフトされる（図２参照）。
【００４０】
例えば、副走査方向シフト処理の過程で、本来は主走査方向に対して平行な直線のラインで構成されていた入力画像を、副走査方向にずらしながらＤＲＡＭ５０上のラインバッファ空間に書き込み（write）すると、図３に示すラインバッファ構成となる。
【００４１】
なお、図３に示す具体例において、画素データ１６（１），画素データ１６（２），画素データ１６（３），画素データ１６（４）などの各画素データ１６は、１６画素分（１６バイト）の画素データを示している。各画素データ１６は、副走査方向シフト処理における最小補正単位となる。もちろん、１６画素以外の複数画素で最小補正単位が構成されてもよいし、最小補正単位が１画素であってもよい。
【００４２】
ＤＲＡＭ５０へのデータの書き込み（write）処理においては、まず、ＤＲＡＭ５０のキャッシュメモリであるロウバッファに一時的にデータが格納され、ロウバッファからＤＲＡＭ５０の記憶領域にそのデータが記憶される。ロウバッファを介した処理により、ＤＲＡＭ５０へのデータの書き込みの高速化が実現される。
【００４３】
ところが、ＤＲＡＭ５０の記憶領域の容量に対して、ロウバッファのデータ格納サイズ（ページサイズ）は小さい。例えば、図３（図１）に示す具体例において、ロウバッファのデータ格納サイズ（ページサイズ）が４ＫＢ（キロバイト）であると、ロウバッファに一度に格納できるデータサイズは、ページサイズの４ＫＢ以下となる。したがって、ロウバッファのデータ格納サイズ（ページサイズ）以上となるデータをＤＲＡＭ５０に書き込む場合には、ロウバッファへのデータの書き込み（ページオープン）とロウバッファからのデータの掃き出し（ページクローズ）を繰り返す必要がある。
【００４４】
例えば図３に示す具体例において、画素データ１６（１）と画素データ１６（２）と画素データ１６（３）と画素データ１６（４）は、ラインを跨いで書き込み（write）されている。  
【００４５】
ところが、図３の具体例において、画素データ１６（１）と画素データ１６（２）は、ページサイズ（ロウバッファのデータ格納サイズ）の４ＫＢ以上アドレスが離れてしまっている。そのため、画素データ１６（１）を含む連続アドレスの４ＫＢデータ内に画素データ１６（２）は含まれていない。
【００４６】
したがって、画素データ１６（１）と画素データ１６（２）を一度のページオープン（ロウバッファへのデータの書き込み）とページクローズ（ロウバッファからのデータの掃き出し）で処理することができない。
【００４７】
さらに、画素データ１６（２）と画素データ１６（３）、画素データ１６（３）と画素データ１６（４）もページサイズ（ロウバッファのデータ格納サイズ）の４ＫＢ以上アドレスが離れてしまっている。そのため、画素データ１６（２）と画素データ１６（３）も一度のページオープンとページクローズで処理することができず、また、画素データ１６（３）と画素データ１６（４）も一度のページオープンとページクローズで処理することができない。
【００４８】
したがって、図３に示すラインバッファ構成の具体例では、画素データ１６（１）から画素データ１６（４）までの各画素データ１６に対応する主走査方向に対して並行な直線ラインを形成する各画素の連続書き込み要求（write要求）の度にページミス（ページクローズとページオープン）が発生してしまう。  ページミスの発生数が多いほどＤＲＡＭ５０の帯域使用率が悪くなってしまう。
【００４９】
そこで、図１の画像処理装置１００は、図３のラインバッファ構成を変更して、副走査方向シフト処理におけるラインバッファ構成を実現する。
【００５０】
図４は、副走査方向シフト処理におけるラインバッファ構成の具体例を示す図である。図４には、図３のラインバッファ構成を変更した変更後のラインバッファ構成が図示されている。
【００５１】
図４に示す具体例では、６４画素×６４ラインの領域ごとに、その領域に属する画素データのアドレスが連続する連続領域（連続アドレス領域）となるように、ラインバッファ構成が変更される。
【００５２】
１つの連続アドレス領域の大きさ（データ量）は、ＤＲＡＭ５０のキャッシュメモリであるロウバッファのデータ格納サイズ（ページサイズ）以下とされる。図４に示す具体例では、１つの連続アドレス領域の大きさがロウバッファのデータ格納サイズと同じ４ＫＢ（キロバイト）である。
【００５３】
そして、図４に示す具体例では、例えば、副走査方向シフト処理の処理単位となる画素データ１６（１）と画素データ１６（２）と画素データ１６（３）と画素データ１６（４）の４つの画素データ１６が同じ連続アドレス領域に一纏めにされる。
【００５４】
したがって、図４に示す変更後のラインバッファ構成によれば、副走査方向シフト処理の処理単位となる画素データ１６（１）から画素データ１６（４）までの４つの画素データ１６に対応した４つの（４連続の）書き込み要求（write要求）に対して、ページミス（ページクローズとページオープン）が発生しない。
【００５５】
このように、図４に示す変更後のラインバッファ構成では、副走査方向シフト処理の処理単位となる画素データ１６（１）から画素データ１６（４）までの４つの画素データ１６を一度のページオープンでロウバッファに格納することができるためページミス（図３参照）が発生しない。したがって、図３に示すラインバッファ構成の場合に比べて、図４に示す変更後のラインバッファ構成によれば、ＤＲＡＭ５０の帯域使用率が向上する。
【００５６】
なお、画素データ１６（１）から画素データ１６（４）以外にも、副走査方向シフト処理の処理単位となる複数の画素データ（図４の具体例では４つの画素データ１６）が同じ連続アドレス領域に一纏めにされる。これにより、副走査方向シフト処理の処理単位となる複数の画素データが一度のページオープンでロウバッファに格納される。つまり、副走査方向シフト処理の処理単位となる複数の画素データをＤＲＡＭ５０へ書き込む処理において、ロウバッファへのデータの格納とロウバッファからのデータの掃き出しを複数回発生させない処理が実現される。
【００５７】
図４に示す変更後のラインバッファ構成を実現するために、図１のアドレス変換部３０は、副走査方向シフト処理の処理対象となる画像データのアドレスを変換する。アドレス変換部３０は、例えば副走査方向シフト処理前の入力画像（図２参照）を構成する複数の画素データのアドレスを変換する。
【００５８】
図５は、アドレス変換部３０によるアドレス変換の具体例を示す図である。図５には、各画素データの変換前のＤＲＡＭ５０への書き込み先アドレス（inputAddr）から、変換後のＤＲＡＭ５０への書き込み先アドレス（transAddr）を導出するアドレス変換式の具体例が図示されている。また、図５には、変換前のアドレスと変換後のアドレスのビットフィールドが例示されている。図５に例示するアドレス変換式とビットフィールドに含まれる用語（パラメータ）の定義は次のとおりである。
【００５９】
「inputAddr」は、各画素データの変換前のＤＲＡＭ５０への書き込み先アドレスでありアドレス変換部３０に入力される入力アドレスとなる。「lineNo」は変換対象となるアドレスのライン番号であり、「bytesPerline」は１ラインあたりのバイト数である。また、「blockNo」は変換対象となるアドレスのブロック番号であり、「blockSize」は各ブロック（１つのブロック）のサイズであり、「blockOffset」は各ブロック内における書き込み先オフセットである。
【００６０】
「bytesPerPix」は画素のビット深度（１画素あたりのバイト数）であり、「pixNumPerLine」は１ラインの画素数である。「transSizePerReq」は、１ＤＭＡリクエスト（１度のアクセス要求）あたりの連続リード／ライト数であり、副走査方向シフト処理における最小補正単位となる。「reqBurstSize」はリクエスト（アクセス要求）の連続発行数である。
【００６１】
そして、「rowBufSize」はＤＲＡＭ５０のロウバッファサイズであり、「blockNoMax」はブロック番号の最大値であり、「transBlockNoMax」は変換後のブロック番号の最大値である。
【００６２】
なお、図５に示す具体例では、副走査方向シフト処理の最大ライン数「lineNoMax(=transBlockNoMax)」と各ブロックのサイズ「blockSize」の積がＤＲＡＭ５０のロウバッファサイズ「rowBufSize」以下となる制約条件のもとで、アドレス変換式に含まれるパラメータの値を変更することができる。
【００６３】
図６は、アドレス変換前後のラインバッファ構成の具体例を示す図である。図６には、アドレス変換前のラインバッファ構成と、図５に例示したアドレス変換の具体例によるアドレス変換後のラインバッファ構成が図示されている。
【００６４】
図６に示す具体例において、画素データ１６（１）〜（４）は、副走査方向シフト処理の処理単位となる複数の画素データであり、図３における画素データ１６（１）と画素データ１６（２）と画素データ１６（３）と画素データ１６（４）に対応している。
【００６５】
図６に示すアドレス変換前のラインバッファを構成する各画素データに対して、図５に示すアドレス変換を適用すると、図６に示すアドレス変換後のラインバッファ構成が得られる。
【００６６】
図６に示すアドレス変換後のラインバッファ構成において、画素データ１６（１）〜（４）は、変換後のライン番号０（transLineNo=0）に対応した４ＫＢの連続アドレス領域に一纏めにされる。
【００６７】
図６に示す具体例において、ライン方向（図の左右方向）に並ぶ４つの画素データ１６の塊（６４画素＝６４バイト）が１つのブロック（ブロックサイズ６４バイト）を構成する。例えば、アドレス変換前のラインバッファ構成において、各ラインの先頭アドレス側から順に、blockNo=0，blockNo=1，blockNo=2，・・・の複数ブロックが構成される。また、アドレス変換後のラインバッファ構成においても、各ラインの先頭アドレス側から順に、transBlockNo=0，transBlockNo=1，transBlockNo=2，・・・の複数ブロックが構成される。
【００６８】
なお、図６に示す具体例では、画素データ１６（１）〜（４）以外にも、副走査方向シフト処理の処理単位となる複数の画素データが同じ連続アドレス領域に一纏めにされる。例えば、画素データ１６（５）〜（８）は、副走査方向シフト処理の処理単位となる複数の画素データであり、図５に示すアドレス変換を適用すると、図６に示すアドレス変換後のラインバッファ構成において、画素データ１６（５）〜（８）は、変換後のライン番号１（transLineNo=1）に対応した４ＫＢの連続アドレス領域に一纏めにされる。
【００６９】
このように、例えば図５に例示したアドレス変換の具体例により、例えば図６に例示したアドレス変換前後のラインバッファ構成の具体例が実現される。つまり、行列状に配列された複数の画素データによるアドレス変換前のラインバッファ構成から、複数の画素データに関するアドレス変換により複数の画素データが並び替えられ、アドレス変換後のラインバッファ構成が実現される。
【００７０】
また、図１の画像処理装置１００は、画素データのアクセス要求を発行する際に、副走査方向シフト処理の処理単位となる複数の画素データに対応した複数のアクセス要求を一纏めにして連続的に発行する。連続的発行の具体例を説明する前に、アクセス要求の逐次的発行と連続的発行について説明する。
【００７１】
図７は、アクセス要求の逐次的発行と連続的発行を説明するための図である。図７（Ａ）には、逐次的に１つずつＤＭＡ要求（アクセス要求）を発行する具体例が図示されている。図７（Ａ）に示す具体例では、例えば、画像形成処理（印刷処理）の処理速度に応じて、ＤＭＡコントローラ２０が画素データ１６の書き込み要求（Ｗ１６）を逐次的に１つずつ発行し、書き込み要求のあった画素データ１６のアドレスが変換されてから、バスブリッジ４０を介してＤＲＡＭ５０に次々に書き込まれる。
【００７２】
図７（Ａ）に示す具体例では、例えば副走査方向シフト処理においてＤＭＡ要求（Ｗ１６）の間隔が空いてしまうと、ＤＲＡＭ５０のコントローラが副走査方向シフト処理以外からのトランザクション処理のために、ページオープン（ロウバッファへのデータの書き込み）とページクローズ（ロウバッファからのデータの掃き出し）を挿入してしまう場合がある。
【００７３】
そこで、画像処理装置１００（図１）は、ＤＲＡＭ５０のキャッシュメモリであるロウバッファに一度に格納可能なＤＲＡＭ５０の連続アドレス空間へのアクセス要求を発行するにあたり、副走査方向シフト処理の処理単位となる複数の画素データに対応した複数のアクセス要求を一纏めにして連続的に発行する。
【００７４】
図７（Ｂ）には、連続的にＤＭＡ要求（アクセス要求）を発行する具体例が図示されている。図７（Ｂ）に示す具体例では、ＤＭＡコントローラ２０から発行される画素データ１６の書き込み要求（Ｗ１６）が複数（図７の具体例では４）に纏められ、それら複数の書き込み要求に対応した複数の画素データ１６のアドレスが変換されてから、バスブリッジ４０を介してＤＲＡＭ５０に連続的に書き込まれる。
【００７５】
図７（Ｂ）に示す具体例では、例えば副走査方向シフト処理において複数（図７の具体例では４）に纏められたＤＭＡ要求（Ｗ１６）の間隔が空いてしまうことがない。そのため、副走査方向シフト処理以外からのトランザクション処理によるページオープンとページクローズが挿入されない。したがって、図７（Ａ）の逐次的発行に比べて、図７（Ｂ）の連続的発行では、ＤＲＡＭ５０の帯域使用率が向上する。
【００７６】
なお、副走査方向シフト処理におけるアクセス要求の連続発行数は、例えば図５に例示した制約条件を満たすように設定される。例えば、図５に示した具体例では、１画素あたりのバイト数「bytesPerPix」と副走査方向シフト処理における最小補正単位となる「transSizePerReq」とアクセス要求の連続発行数「reqBurstSize」により、ブロックのサイズ「blockSize」が決定される。そして、副走査方向シフト処理の最大ライン数「lineNoMax(=transBlockNoMax)」とブロックのサイズ「blockSize」によって決定されるデータサイズ（制約条件の左辺）が、ＤＲＡＭ５０のロウバッファサイズ「rowBufSize」（制約条件の右辺）以下となる制約条件を満たすように、アクセス要求の連続発行数「reqBurstSize」が設定される。
【００７７】
例えば、１画素あたりのバイト数「bytesPerPix」が１バイトであり、副走査方向シフト処理における最小補正単位となる「transSizePerReq」が１６画素であり、副走査方向シフト処理の最大ライン数「lineNoMax」が６４ラインであり、ＤＲＡＭ５０のロウバッファサイズ「rowBufSize」が４ＫＢであれば、アクセス要求の連続発行数「reqBurstSize」は４以下に設定される。
【００７８】
図８は、図１の画像処理装置１００による連続的なアクセス要求の具体例を示す図である。図８に示す具体例において、副走査方向シフト処理モジュール１０Ｓは、Ｙ（イエロー），Ｍ（マゼンタ），Ｃ（シアン），Ｋ（黒）の各色（各トナー）ごとに副走査方向シフト処理を実行する。
【００７９】
また、図８に示す具体例のＤＭＡコントローラ２０は、副走査方向シフト処理においてＹＭＣＫの各色ごとに、画素データ１６（最小補正単位となる１６画素）に関するＤＭＡ要求（書き込み要求）を発行する。例えば、ＤＭＡＣ（ＷＲ−Ｋ）はＫ（黒）の画素データ１６に関する書き込み要求（Ｗ１６Ｋ）を発行し、ＤＭＡＣ（ＷＲ−Ｃ）はＣ（シアン）の画素データ１６に関する書き込み要求（Ｗ１６Ｃ）を発行し、ＤＭＡＣ（ＷＲ−Ｍ）はＭ（マゼンタ）の画素データ１６に関する書き込み要求（Ｗ１６Ｍ）を発行し、ＤＭＡＣ（ＷＲ−Ｙ）はＹ（イエロー）の画素データ１６に関する書き込み要求（Ｗ１６Ｙ）を発行する。
【００８０】
そして、図８に示す具体例では、ＹＭＣＫの各色に対応した副走査方向シフト処理において、各色に対応した複数のアクセス要求を一纏めにした連続的なアクセス要求が実行される。つまり、各色ごとに、副走査方向シフト処理の処理単位となる複数の画素データに対応した複数の書き込み要求が一纏めにされて連続的に発行される。
【００８１】
例えば、ＤＭＡコントローラ２０のＤＭＡＣ（ＷＲ−Ｋ）から発行されるＫ（黒）の画素データ１６に関する書き込み要求（Ｗ１６Ｋ）が複数（図８の具体例では４）に纏められ、それら複数の書き込み要求（Ｗ１６Ｋ）に対応した複数の画素データのアドレスが変換されてから、バスブリッジ４０を介してＤＲＡＭ５０に連続的に書き込まれる。
【００８２】
また、例えば、ＤＭＡコントローラ２０のＤＭＡＣ（ＷＲ−Ｃ）から発行されるＣ（シアン）の画素データ１６に関する書き込み要求（Ｗ１６Ｃ）が複数（図８の具体例では４）に纏められ、それら複数の書き込み要求（Ｗ１６Ｃ）に対応した複数の画素データのアドレスが変換されてから、バスブリッジ４０を介してＤＲＡＭ５０に連続的に書き込まれる。
【００８３】
同様に、ＤＭＡコントローラ２０のＤＭＡＣ（ＷＲ−Ｍ）から発行されるＭ（マゼンタ）の画素データ１６に関する書き込み要求（Ｗ１６Ｍ）も複数に纏められ、ＤＭＡコントローラ２０のＤＭＡＣ（ＷＲ−Ｙ）から発行されるＹ（イエロー）の画素データ１６に関する書き込み要求（Ｗ１６Ｙ）も複数に纏められる。
【００８４】
このように、図８に示す具体例では、ＹＭＣＫの各色に対応した副走査方向シフト処理において、各色に対応した複数のアクセス要求（書き込み要求）を一纏めにした連続的なアクセス要求（書き込み要求）が実行される。そのため、各色に対応した連続的なアクセス要求（書き込み要求）の間に、その色に対応した副走査方向シフト処理以外からのトランザクション処理によるページオープンとページクローズが挿入されない。したがって、逐次的発行（図７参照）に比べて、図８の具体例ではＤＲＡＭ５０の帯域使用率が向上する。
【００８５】
なお、アドレス変換部３０によるアドレス変換前にＤＭＡコントローラ２０が複数のアクセス要求（書き込み要求）を一纏めにしてから連続的なアクセス要求（書き込み要求）を発行してもよい。また、アドレス変換部３０が複数のアクセス要求（書き込み要求）を一纏めにする処理とアドレス変換を実行してもよい。また、アドレス変換部３０によるアドレス変換後に複数のアクセス要求（書き込み要求）を一纏めにする処理部が設けられてもよい。
【００８６】
また、図８に例示するＤＭＡコントローラ２０は、副走査方向シフト処理において、ＹＭＣＫの各色ごとに読み取り（read）要求を発行する。読み取り要求においては、読み取り対象となる複数の画素データが既にＤＲＡＭ５０内に記憶されているため、副走査方向シフト処理の処理単位となる全画素データ（図８の具体例では１６画素×４＝６４画素の画素データ６４）の一括的な読み取り要求が発行される。
【００８７】
例えば、ＤＭＡＣ（ＲＤ−Ｋ）はＫ（黒）の画素データ６４に関する読み取り要求（Ｒ６４Ｋ）を発行し、ＤＭＡＣ（ＲＤ−Ｃ）はＣ（シアン）の画素データ６４に関する読み取り要求（Ｒ６４Ｃ）を発行し、ＤＭＡＣ（ＲＤ−Ｍ）はＭ（マゼンタ）の画素データ６４に関する読み取り要求（Ｒ６４Ｍ）を発行し、ＤＭＡＣ（ＲＤ−Ｙ）はＹ（イエロー）の画素データ６４に関する読み取り要求（Ｒ６４Ｙ）を発行する。
【００８８】
以上、本発明の好適な実施形態を説明したが、説明した実施形態は、あらゆる点で単なる例示にすぎず、本発明の範囲を限定するものではない。本発明は、その本質を逸脱しない範囲で各種の変形形態を包含する。
【符号の説明】
【００８９】
１０Ｓ  副走査方向シフト処理モジュール、２０  ＤＭＡコントローラ、３０  アドレス変換部、４０  バスブリッジ、５０  ＤＲＡＭ、１００  画像処理装置。
【図１】
2019161338.tif 000003
【図２】
2019161338.tif 000004
【図３】
2019161338.tif 000005
【図４】
2019161338.tif 000006
【図５】
2019161338.tif 000007
【図６】
2019161338.tif 000008
【図７】
2019161338.tif 000009
【図８】
2019161338.tif 000010