説明

画像データ処理装置、記録装置及び画像データ処理方法

【課題】画像データを処理単位ずつ転送する際の転送速度をさほど落とさず、格納手段における画像データの使用格納領域を少なく抑えることができる画像データ処理装置、記録装置及び画像データ処理方法を提供する。
【解決手段】DRAMに印刷イメージデータPDが格納されている。印刷イメージデータPDは、行方向(ライン方向)(図中の左右方向)に転送単位の4画素に満たない行余りデータDrが、列余りデータDcの末尾に続けて、転送単位の4×4画素領域(図中太線枠領域)が画素で満たされている満データDfの配列範囲(バーストラスターサイズBR)内に収まるように格納されている。印刷イメージデータPDを構成するデータが回転処理のために読み出されるとき、データの配列順序で読み出し可能なアドレスを生成するアドレス生成部を有している。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、格納手段と処理手段との間で処理単位ずつのデータ転送を伴って画像データに処理を施す画像データ処理装置、記録装置及び画像データ処理方法に関する。
【背景技術】
【0002】
例えば特許文献1、2には、インクを噴射する印刷ヘッドを備えた記録装置(流体噴射装置)が開示されている。例えばスキャナーユニットにより読み込まれた画像データに、2値化処理(ハーフトーン処理)、RGB表色系からCMYK表色系への色変換処理、インターレース処理、縦横変換処理(回転処理)などの複数の処理が施され、これらの処理を経て生成されたヘッド制御データに基づき印刷ヘッドは駆動される。このとき、各処理では、処理前の画像データがバッファーから処理ユニットへ処理単位ずつ転送され、処理ユニットで処理が施された処理単位のデータはバッファーへ順次転送される。このときのデータ転送には高速処理可能なバースト転送が採用される(例えば特許文献1、2)。
【0003】
例えば縦横変換処理(回転処理)では、画素の並び順がライン方向(横方向)である画像データを、印刷ヘッドのノズル配列に対応させたラスター方向(縦方向)の画素の並び順とすべく画像データの縦方向と横方向を入れ換える処理が回転ユニットにより行われる。この場合、回転ユニットへバッファーから処理単位のデータずつバースト転送され、縦横変換(回転)後のデータが回転ユニットからバッファーへ順次バースト転送される。
【0004】
図10(a)は回転処理前の画像データ(印刷イメージデータ)を示し、図10(b)は回転処理後の画像データ(ヘッドイメージデータ)を示す。図10(a)では、回転処理前の印刷イメージデータを構成する各画素は、N行×M列のマトリクス状に配列されている。通常、回転処理時の画像データは数100行×数100列ぐらいの画素数であるが、図10では説明を簡単にするため、画素数6行×10列の画像データの例で説明する。ここで、画素の符号「N-M」は、N行M列目の画素データを指す。
【0005】
回転処理では、DRAM100に格納された印刷イメージデータを、例えば4×4画素分の正方領域(正方ブロック)のデータずつ図中に太数字で示す順番で回転ユニットへバースト転送する。そして、回転ユニットは、転送されてきたデータに回転処理(縦横変換処理)を施し、その回転後のデータを、DRAM100へバースト転送し、図10(b)に太数字で示す位置に格納することで、DRAM100に縦横変換されたヘッドイメージデータが生成される。
【0006】
ところで、バースト転送方式では、図10に太線枠で囲った回転処理単位の正方ブロック(4×4画素)のデータを転送する場合、バーストサイズ(16ビット×4)である1行(4画素)ずつ4回転送する。そして、正方ブロックが図10(a)に示す太数字「1」、「2」、…「6」の順番で読出されて回転ユニットへ順次転送される。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2004−122594号公報
【特許文献2】特開2008−221769号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
ところで、図10に示すように、太数字「1」、「2」のデータはその太線枠の領域内が4×4の画素データで満ちた満データになっている。ところが、太数字「3」、「6」のデータは行方向に画素データがバーストサイズの4画素に満たない行余りデータになっており、太数字「4」、「5」、「6」のデータが列方向に画素データが転送回数「4」(4画素)に満たない列余りデータになっている。このため、行余りデータには、図10(a)に網掛けで示すダミーデータを用意し、行余りデータについてもバーストサイズを確保してバースト転送できるようにしていた。この場合、4画素に満たないときだけバースト転送の指定の仕方を変えてダミーデータの転送を回避する方法もあるが、指定の仕方が複雑になって、転送速度が却って遅くなり好ましくない。
【0009】
このため、バースト転送方式で高速転送を行おうとすると、ダミーデータを格納しておく必要があり、ダミーデータの格納領域が余分に必要となるので、データ格納領域(記憶容量)の大きなDRAM100を用意したり、DRAM100における他データの格納領域が圧迫されたりするなどの問題があった。このため、ダミーデータをなるべく減らしたいという要望があった。また、回転処理後のデータが、DRAM100に図10(b)に太数字で示す位置に格納されることでヘッドイメージデータが生成されるが、同図(b)に示すようにDRAM100にダミーデータと一緒に格納されるので、DRAM100の格納領域がダミーデータの分だけ余分に必要なり、前述の問題が同様に発生する。
【0010】
本発明は、上記課題に鑑みてなされたものであり、その目的の一つは、画像データを処理単位ずつ転送する際の転送速度をさほど落とさず、格納手段における画像データの使用格納領域を少なく抑えることができる画像データ処理装置、記録装置及び画像データ処理方法を提供することにある。
【課題を解決するための手段】
【0011】
上記問題点を解決するために、本発明(第1発明)は、画像データに処理を施す画像データ処理装置であって、前記画像データを格納する格納手段と、前記画像データに処理を施す処理手段と、前記画像データを前記格納手段から前記処理手段へ処理単位のデータずつ転送する転送手段とを備え、前記処理手段は、前記格納手段から前記処理単位ずつ転送されてくる前記データに順次処理を施す構成であり、前記格納手段において、前記画像データは、1個が前記処理単位で満たされたX×Y個の満データがX行×Y列のマトリクス配列で格納されるとともに、行方向に前記処理単位に満たない行余りデータがある場合には、当該行余りデータが、満データY列配列幅内に配列されたデータの末尾に続けて前記満データY列配列幅内に収まるようにアラインして格納される構成であり、前記転送手段は、前記格納手段から前記処理手段へ前記データを前記画像データにおける前記アライン前の元の順番で転送することを要旨とする。
【0012】
この発明によれば、処理前の画像データは、格納手段に、行余りデータが、満データY列配列幅内のデータの末尾に続けて満データY列配列幅内に収まるように格納されるので、格納手段における処理前の画像データの使用格納領域を少なく抑えることができる。よって、画像データを処理単位ずつ転送する際の転送速度をさほど落とさず、格納手段における画像データの使用格納領域を少なく抑えることができる。
【0013】
本発明(第2発明)は、画像データに処理を施す画像データ処理装置であって、前記画像データを処理単位のデータずつ読込んで該データに処理を施す処理手段と、処理後の画像データを格納するための格納手段と、前記処理が施された前記処理単位のデータを前記処理手段から前記格納手段へ順次転送して前記格納手段に処理後の画像データを格納させる転送手段とを備え、前記転送手段は、前記処理後の画像データを、前記格納手段に対して、1個が前記処理単位で満たされたY×X個の満データがY行×X列のマトリクス状に配列されるとともに、行方向に前記処理単位に満たない行余りデータがある場合には、当該行余りデータが、満データX列配列幅内に配列されたデータの末尾に続けて、前記満データX列配列幅内に収まるようにアラインして格納させることを要旨とする。
【0014】
この発明によれば、処理後の画像データは、格納手段に、行余りデータが、満データX列配列幅内のデータの末尾に続けて満データX列配列幅内に収まるように格納されるので、格納手段における処理後の画像データの使用格納領域を少なく抑えることができる。よって、画像データを処理単位ずつ転送する際の転送速度をさほど落とさず、格納手段における画像データの使用格納領域を少なく抑えることができる。
【0015】
本発明は、画像データに処理を施す画像データ処理装置であって、処理前の画像データを格納する格納手段と、前記画像データに処理を施す処理手段と、前記処理前の画像データを前記格納手段から前記処理手段へ処理単位のデータずつ転送するとともに、前記処理手段が前記処理単位ずつ転送されてくる前記データに順次処理を施して生成された前記処理後のデータを前記処理手段から前記格納手段へ順次転送することで前記処理が施された画像データを前記格納手段に格納させる転送手段とを備え、前記格納手段において、前記画像データは、1個が前記処理単位で満たされたX×Y個の満データがX行×Y列のマトリクス配列で格納されるとともに、行方向に前記処理単位に満たない行余りデータがある場合には、当該行余りデータが、満データY列配列幅内に配列されたデータの末尾に続けて前記満データY列配列幅内に収まるようにアラインして格納される構成であり、前記転送手段は、前記格納手段から前記処理手段へ前記データを前記画像データにおける前記アライン前の元の順番で転送し、前記処理が施された前記処理単位のデータを前記処理手段から前記格納手段へ順次転送して前記格納手段に処理後の画像データを格納させる転送手段とを備え、前記転送手段は、前記処理後の画像データを、前記格納手段に対して、1個が前記処理単位で満たされたY×X個の満データがY行×X列のマトリクス状に配列されるとともに、前記行余りデータがある場合には、当該行余りデータが、満データX列配列幅内に配列されたデータの末尾に続けて、前記満データX列配列幅内に収まるようにアラインして格納させることを要旨とする。
【0016】
この発明によれば、上記第1発明と上記第2発明との両方の構成を備えるので、格納手段における処理前の画像データの使用格納領域を少なく抑えることができるうえ、処理後の画像データの使用格納領域を少なく抑えることができる。よって、画像データを処理単位ずつ転送する際の転送速度をさほど落とさず、格納手段における画像データの使用格納領域を少なく抑えることができる。
【0017】
本発明の画像データ処理装置では、前記処理手段は画像データに回転処理を施す回転処理手段であり、前記転送手段は、前記処理単位が行方向と列方向で画素数の等しいK×K画素(但しK≧2)の正方ブロックの前記データをバースト転送することを要旨とする。この発明によれば、正方ブロック(K×K画素)のデータの転送をバースト転送で行えるので、K×K画素のデータずつ行われる回転処理を高速に行いつつ、格納手段においてデータの使用格納領域を少なく抑えることができる。
【0018】
本発明の画像データ処理装置では、前記転送手段は、前記格納手段からデータを読み出して転送する際の読出しアドレスを生成するか、又は前記格納手段に転送したデータを書き込む際の書込みアドレスを生成するアドレス生成手段を、更に備えたことを要旨とする。
【0019】
この発明によれば、転送手段は、アドレス生成手段が生成したアドレスを指定して転送の指示を行うことにより、画像データを構成するデータを元の配列順序で転送できる。
本発明の画像データ処理装置では、前記アドレス生成手段は、転送すべきデータが行余りデータであるか否かを判定する判定手段と、データが行余りデータ以外である場合には第1のアドレス生成演算式に従ってアドレスを生成し、データが行余りデータである場合には第2のアドレス生成演算式に従ってアドレスを生成することを要旨とする。
【0020】
この発明によれば、アドレス生成手段は、転送すべきデータが行余りデータであるか否かによって、それぞれに応じた第1又は第2のアドレス生成演算式に従ってアドレスを生成するので、転送手段は、アドレス生成手段が生成したアドレスを指定して転送の指示を行うことにより、画像データを元の配列順序で転送することができる。
【0021】
本発明は、上記発明の画像データ処理装置と、媒体を搬送する搬送手段と、前記搬送手段により搬送される媒体に画像を形成する記録手段とを備え、前記記録手段は前記処理手段による処理が施された画像データに基づき制御されることを要旨とする。
【0022】
この発明の記録装置によれば、上記画像データ処理装置に係る発明と同様の効果を得ることができる。
本発明は、画像データに処理を施す画像データ処理方法であって、格納手段において、前記画像データを、1個が前記処理単位で満たされたX×Y個の満データがX行×Y列のマトリクス配列で格納されるとともに、行方向に前記処理単位に満たない行余りデータがある場合には、当該行余りデータが、満データY列配列幅内に配列されたデータの末尾に続けて前記満データY列配列幅内に収まるようにアラインして格納しておき、前記画像データを前記格納手段から処理手段へ前記処理単位のデータずつ転送する転送ステップと、前記処理手段が、前記格納手段から前記処理単位ずつ転送されてくる前記データに順次処理を施す処理ステップと、を備え、前記転送ステップでは、前記データを前記アライン前の元の順番で前記格納手段から前記処理手段へ転送することを要旨とする。この発明によれば、第1発明に係る画像処理装置と同様の作用効果を得ることができる。
【0023】
本発明は、画像データに処理を施す画像データ処理方法であって、前記画像データを処理単位のデータずつ読込んで処理手段が該データに処理を施す処理ステップと、前記処理が施された前記処理単位のデータを転送手段が前記処理手段から前記格納手段へ順次転送することで前記格納手段に処理後の画像データを格納させる転送ステップと、を備え、前記転送ステップでは、前記転送手段は、1個が前記処理単位で満たされたY×X個の満データがY行×X列のマトリクス状に配列されるとともに、行方向に前記処理単位に満たない行余りデータがある場合には、当該行余りデータが、満データX列配列幅内に配列されたデータの末尾に続けて、前記満データX列配列幅内に収まるようにアラインして格納させることを要旨とする。この発明によれば、第2発明に係る画像処理装置と同様の作用効果を得ることができる。
【図面の簡単な説明】
【0024】
【図1】一実施形態における複合機の斜視図。
【図2】印刷ヘッドの模式底面図。
【図3】複合機の電気的構成を示すブロック図。
【図4】縦横変換処理に係る電気的構成を示すブロック図。
【図5】(a)印刷イメージデータの格納構造、(b)ヘッドイメージデータの格納構造をそれぞれ説明するための模式図。
【図6】(a)印刷イメージデータの格納構造、(b)ヘッドイメージデータの格納構造をそれぞれ示す模式図。
【図7】ソース側のアドレス生成方法を説明する模式図。
【図8】ディスティネーション側のアドレス生成方法を説明する模式図。
【図9】SRAMにおける回転処理を説明する模式図。
【図10】(a)(b)従来技術における回転処理時のデータ格納構造を示す模式図。
【発明を実施するための形態】
【0025】
以下、本発明を具体化した一実施形態を図1〜図9に基づいて説明する。図1は、スキャナー機能を備えた印刷装置である複合機11の斜視図である。記録手段の一例である流体噴射装置としての複合機11は本体12とカバー13とを備える。本体12の下側部分がプリンター部14になっており、上側部分がスキャナー部15になっている。プリンター部14は、例えばインクジェット記録方式を採用する。本体12の前側上段部には、操作パネル17が設けられている。また、本体12の前側下部には、印刷済みの用紙Pが排出される排紙部18が設けられている。本体12において排紙部18の図1における右上位置には、メモリーカード19を挿抜可能なカードスロット20が設けられている。
【0026】
図1に示すように、操作パネル17にはその幅方向中央部に表示部21(例えば液晶ディスプレイ)が設けられている。また、操作パネル17には、電源ボタン22、モード選択ボタン23、印刷/スキャンを開始するスタートボタン24、実行中の動作を中止するストップボタン25等が配設されている。モード選択ボタン23の操作によって、「メモリーカード」「コピー」「スキャン」等を含む5つモードのうち一つを選択でき、メモリーカード19から読み取った画像データに基づく写真等の印刷や、原稿のコピー印刷、原稿のスキャニングなどを行うことができる。
【0027】
図3は、複合機11の電気的構成を示すブロック図である。複合機11は、全体的な制御を司る制御装置30を備える。制御装置30は、プリンター部14及びスキャナー部15を駆動制御する。制御装置30は、プリンター部14を構成するキャリッジモーター27、搬送手段を構成する搬送モーター28及び記録手段の一例である流体噴射ヘッドを構成する印刷ヘッド29を駆動制御することにより、プリンター部14に用紙P(媒体)への印刷を行わせる。
【0028】
この制御装置30には、CPU31(中央処理装置)、ASIC32(Application SpecificIC)、ROM33、メモリーコントローラー34、DRAM35(Dynamic Random Access Memory)及びモーター駆動回路36が備えられている。なお、DRAM35としては、SDRAM(Synchronous DRAM)、DDR SDRAM(Double-Data-Rate SDRAM)、DDR2 SDRAM、DDR3 SDRAMなどが用いられているが、その他、EDO DRAM(Extended Data Out DRAM)、バーストEDO DRAMなどを用いることができる。
【0029】
ROM33には、プログラムや各種制御に必要な設定データなどが記憶されている。CPU31はROM33から読み出したプログラム(例えばファームウェア用プログラム)を実行してコマンド及び指令値をモーター駆動回路36に与えることによりキャリッジモーター27及び搬送モーター28を駆動制御する。これにより、プリンター部14における用紙の搬送制御、及び印刷ヘッド29を備える不図示のキャリッジを主走査方向へ移動させるキャリッジ制御が行われる。
【0030】
また、複合機11は、通信インターフェイス(以下、「通信I/F37」という)を備える。例えば不図示のホスト装置(パーソナルコンピューター等)から転送されてきた印刷データは、通信I/F37が受信する。この通信I/F37に接続されたバス38には、制御装置30を構成するCPU31、ASIC32、ROM33、メモリーコントローラー34、DRAM35及びモーター駆動回路36が接続されるとともに、スキャナー入力回路41、メモリーカード入出力回路42及び操作パネル17が接続されている。
【0031】
スキャナー部15は、原稿を光学的に読み取るラインセンサー15aと、ラインセンサー15aからの読取信号(アナログ信号)をA/D変換して多階調のRGB画像データ(ラインデータ)として出力するA/D変換回路15bとを備える。スキャナー入力回路41は、CPU31の制御の下、スキャナー部15から入力されるRGB画像データに対しライン間補正処理及び解像度変換処理を施す。そして、これらの処理が施されたRGB画像データはASIC32に入力され、不図示の圧縮回路によりJPEG画像データに圧縮される。また、メモリーカード入出力回路42は、スロット20に挿着されたメモリーカード19から例えばJPEG画像データを読み込む。
【0032】
DRAM35は、その一部の記憶領域が画像データ格納用のバッファーとして使用され、入力バッファー35aと中間バッファー35bと出力バッファー35cとを備える。入力バッファー35aには、ホスト装置から受信した印刷データ、スキャナー部15経由及びメモリーカード入出力回路42経由のJPEG画像データなどが格納される。
【0033】
ASIC32は、入力バッファー35aに格納された画像データ(印刷データ、JPEG画像データ等)に、その画像データ種に応じた画像処理を施すため、図3に示すJPEG解凍回路43、画像処理回路44、縦横変換回路45及びヘッド制御ユニット46を内蔵している。
【0034】
JPEG解凍回路43は、入力バッファー35aから読み込んだJPEG画像データを解凍(伸張)してRGB画像データに展開し、その展開したRGB画像データを中間バッファー35bに格納する。
【0035】
画像処理回路44は、中間バッファー35bから読み込んだRGB画像データに対して、解像度変換処理、色変換処理、ハーフトーン処理等を含む公知の画像処理を施す。ここで、解像度変換処理とは、RGB画像データの解像度を表示用解像度から印刷用解像度に変換する処理である。色変換処理とは、RGB画像データをRGB表色系からCMYK表色系のCMYK画像データへ色変換テーブル(図示せず)を参照して変換する処理である。ハーフトーン処理とは、CMYK画像データの画素の階調値(例えば256階調)を、印刷用の階調値(例えば2階調又は4階調など)に変換する処理である。中間バッファー35bは、これらの各画像処理終了後の画像データをそれぞれ格納する3つの格納領域を備え、これらの画像処理を全て終了した最終の印刷イメージデータ(CMYK画像データ)は、中間バッファー35bの最終段の格納領域に格納される。
【0036】
縦横変換回路45は、中間バッファー35bから読み込んだ印刷イメージデータに縦横変換処理を施す。縦横変換処理とは、印刷イメージデータの画素の並び順を、表示用の横方向(ライン方向)の並び順から、印刷ヘッド29のノズル配列(つまりインク噴射順序)に合わせた縦方向(ラスター方向)の並び順に変換する処理である。そして、縦横変換処理後のヘッドイメージデータは出力バッファー35c(イメージバッファー)に格納される。
【0037】
ヘッド制御ユニット46は、出力バッファー35cに格納されたヘッドイメージデータを、印刷ヘッド29による印刷制御(噴射制御)が可能なヘッド制御データに変換する。ヘッド制御データは、ヘッド制御ユニット46から例えば1パス分(印刷ヘッドの1走査分)ずつ印刷ヘッド29へ転送される。印刷ヘッド29は不図示のヘッド駆動回路を内蔵し、ヘッド駆動回路がヘッド制御データに基づきインクの噴射制御を行う。
【0038】
図2は、印刷ヘッドの底面(ノズル開口面)を示す。図2に示すように、印刷ヘッド29のノズル開口面29Aには、副走査方向(図2における上下方向)に一定のノズルピッチで配列された計180個のノズル♯1〜♯180よりなるノズル列が4色分(4列)形成されている。本例では、各ノズル列は、180個ずつのノズル29K,29C,29M,29Yを備え、黒(K)、シアン(C)、マゼンタ(M)、イエロー(Y)のインク滴の噴射に使用される。
【0039】
また、印刷ヘッド29には、図2に示す各ノズル♯1〜♯180と対応する吐出駆動素子48がノズルと同数内蔵されている(但し、図2では印刷ヘッド29の外側に模式的に描いている)。吐出駆動素子48は、例えば圧電振動素子又は静電駆動素子からなる。印刷ヘッド29は、不図示のヘッド駆動回路により、ヘッド制御ユニット46から転送されたヘッド制御データに基づいて吐出駆動素子48の駆動制御を行って、ノズルからの噴射制御を行う。もちろん吐出駆動素子48はノズル通路内のインクを加熱するヒーターでもよく、ヒーターで加熱したインク内に沸騰により発生した気泡の膨張を利用してノズルからインク滴を吐出させる構成でもよい。
【0040】
図2に示す印刷ヘッド29は、プリンター部14において主走査方向(図2における左右方向)に移動可能に設けられた不図示のキャリッジの下部に固定されている。キャリッジモーター27の駆動により、印刷ヘッド29はキャリッジと共に主走査方向に移動し、その移動途中でノズルからインク滴を1ドット間隔で噴射することにより、用紙Pに印刷が施される。
【0041】
図4は、回転処理に係る部分の詳細な構成図を示す。図4に示すように、縦横変換回路45は、バス38に接続された回転ユニット50と、この回転ユニット50に接続されたSRAM70とを備える。DRAM35は、前述の中間バッファー35bと出力バッファー35cとを備える(但し図4では入力バッファー35aを省略している)。図4に示すように、中間バッファー35bには回転ユニット50による回転処理前の印刷イメージデータPDが格納され、出力バッファー35cには回転ユニット50による回転処理後のヘッドイメージデータHDが格納されるようになっている。
【0042】
図4に示す回転ユニット50は、転送手段の一例としてのDMAコントローラー51と、回転手段の一例としての回転処理部52とを備える。DMAコントローラー51は、メモリーコントローラー34に対してアドレスを指定して読出し(リード)又は書込み(ライト)のリクエストを行うことにより、DRAM35との間で行われるデータ転送の制御を司る。詳しくは、DMAコントローラー51は、メモリーコントローラー34に対してDRAM35からの読出しアドレスADreadを指定して、DRAM35(詳しくは中間バッファー35b)から印刷イメージデータPDを設定サイズ(処理単位)のデータずつ回転ユニット50に転送する第1転送機能を有する。また、回転処理部52は、DRAM35内の印刷イメージデータPDのうち回転ユニット50へ設定サイズ(処理単位)ずつ転送されてきたデータをSRAM70に格納し、SRAM70に格納されたデータに回転処理(縦横変換処理)を施す機能を有する。また、DMAコントローラー51は、メモリーコントローラー34に対してDRAM35への書込みアドレスADwriteを指定して、回転処理後のデータをSRAM70からDRAM35(詳しくは出力バッファー35c)へ設定サイズ(処理単位)ずつ転送する第2転送機能を有する。
【0043】
図4に示すように、DMAコントローラー51は、上記第1転送機能及び第2転送機能を実現するための構成として、設定レジスター53、シーケンサー54、第1カウンター55、第2カウンター56、第3カウンター57、第4カウンター58、第1アドレス生成部59、第2アドレス生成部60及び転送指示部61を備える。
【0044】
第1アドレス生成部59は、回転処理前のデータをDRAM35から回転ユニット50へ転送する際の読出しアドレスADreadを生成する。第2アドレス生成部60は、回転処理後のデータをSRAM70からDRAM35へ転送する際の書込みアドレスADwriteを生成する。
【0045】
設定レジスター53には、印刷イメージデータPD及びヘッドイメージデータHDに関する設定情報がCPU31により設定される。設定レジスター53の各種設定情報は、各アドレス生成部59,60がアドレスを生成する際に使用される。また、設定レジスター53には、バースト転送用の設定情報として、バースト転送1回当たりのデータサイズであるバーストサイズBS(本例では16ビット×4)と、転送回数T(本例では4回)とが、CPU31により設定される。
【0046】
シーケンサー54は、各カウンター55〜58の計数処理などを司る。各カウンター55〜58は、回転処理対象のデータのうちの対象画素が印刷イメージデータPDにおける何行目・何列目の画素であるかなどを計数する。各アドレス生成部59,60は、設定レジスター53の設定情報と、各カウンター55〜58の計数値とを用いて、各アドレスADread,ADwriteを生成する。第1アドレス生成部59は読出しアドレスADreadの生成に使用する判定部59a及び演算部59bを備え、第2アドレス生成部60は書込みアドレスADwriteの生成に使用する判定部60a及び演算部60bを備える。なお、本実施形態では、判定部59a,60aにより、判定手段が構成される。
【0047】
転送指示部61は、回転ユニット50とDRAM35との間におけるデータの転送を指示する機能を有する。転送指示部61は、メモリーコントローラー34に対して第1アドレス生成部59の生成した読出しアドレスADreadを指定してリードリクエストを行うことで、DRAM35から回転ユニット50へのデータの転送を行う。また、転送指示部61は、メモリーコントローラー34に対して第2アドレス生成部60の生成した書込みアドレスADwriteを指定してライトリクエストを行うことで、回転ユニット50からDRAM35へのデータの転送を行う。
【0048】
一方、図4に示す回転処理部52は、回転制御部62及びデータレジスター63を備える。DRAM35から回転ユニット50に転送されたデータは、データレジスター63に一旦格納される。回転処理部52は、データレジスター63に回転処理単位のデータが蓄積されると、そのデータをSRAM70に格納する。回転制御部62は、そのデータをSRAM70から再び読込んで回転処理(縦横変換処理)を施しつつ再びSRAM70に書き込むことでデータを90度回転させる。SRAM70は、回転処理用の格納領域をデータ2面分備え、回転制御部62は、2面の格納領域を交互に使用することで回転処理を高速に進める。
【0049】
図4に示すように、DRAM35における中間バッファー35bには、印刷イメージデータPDが、図中に太数字で示す順番にデータが配列されたデータ格納構造で格納されている。これは、画像処理回路44内の不図示のDMAコントローラー(転送手段)が、バースト転送した各データをDRAM35の中間バッファー35bに図4に示す配列で格納したことによる。
【0050】
DMAコントローラー51は、メモリーコントローラー34に対して、読出しアドレスADreadとデータサイズ(バーストサイズBS)とを指定して、リード又はライトのリクエストとを行う。メモリーコントローラー34は、DMAコントローラー51からリードリクエストを受け付けると、DRAM35における指定の読出しアドレスADreadから指定データサイズのデータを順次読み出す。そして、この読み出されたデータは、リードリクエスト元の回転ユニット50へ転送される。また、メモリーコントローラー34は、DMAコントローラー51からライトリクエストを受け付けると、回転ユニット50からバースト転送されてきたデータを、DRAM35における指定の書込みアドレスADwriteに順次書き込む。
【0051】
図5は、DRAMにおけるデータ格納構造を示す。図5(a)は回転処理前の印刷イメージデータを示し、図5(b)は回転処理後のヘッドイメージデータを示す。なお、図5では説明を簡単にするため、図10と同様に、画素配列が6行×10列の画像データを例にしている。
【0052】
図5(a)において、画素の符号「N-M」は、図10と同様、印刷イメージデータPDにおける第N行のM列目の画素データを指す。図5(a)において、太線枠の範囲が、回転処理の1単位となっている。この1単位(処理単位)には、回転処理の前後で行と列の各画素数が同じになるように、K×K画素の正方ブロックが設定される。本実施形態では、一例として4×4画素の正方ブロックが設定される。また、本例では、図5(a)に示すように1画素(1ユニット)はBバイト(本例ではB=16ビット)である。バースト転送1回分のバーストサイズBSは、4画素データ分の4・Bバイトである。図5における太線枠で囲む正方ブロック(処理単位)のデータを転送する場合、まず1行目の4画素分(4・Bバイト)の画素データがバースト転送され、続けて2行目、3行目、4行目の順で4画素分(4・Bバイト)ずつの画素データが順次バースト転送され、原則、処理単位の転送に、転送回数「4回」のバースト転送が行われる。
【0053】
本実施形態では、図5(a)において太線枠で囲まれた太数字「1」、「2」のブロックのデータが、1回の転送単位(処理単位)である4×4画素の正方ブロック内が全て画素データで満たされた満データDfとなっている。また、図5(a)において右側に破線枠で囲む太数字「3」、「6」のブロックのデータが行方向にバーストサイズBSの4画素に満たない行余りデータとなっている。さらに、図5(a)において太線枠で囲む太数字「4」、「5」のブロックのデータが列方向に転送回数「4回」分の4画素に満たない列余りデータDcとなっている。
【0054】
ここで、図5(a)において、印刷イメージデータPDの行方向(図5(a)における横方向)のサイズを「ラスターサイズR」、印刷イメージデータPDの列方向(図5(a)における縦方向)のサイズを「ラインサイズL」と定義する。また、満データDfが行方向に存在する範囲のサイズを「バーストラスターサイズBR」、満データDfが列方向に存在する範囲のサイズを「バーストラインサイズBL」と定義する。なお、各サイズR,L,BR,BLは、画素数に相当する値である。
【0055】
本実施形態では、図5(a)において破線枠で囲まれた行余りデータ「3」、「6」は、DRAM35において、同図(a)に矢印で示す位置に格納される。すなわち、「3」、「6」の行余りデータDrは、列余りデータDcの末尾(図5(a)では画素6-8)に続けて、満データDfの配列幅(つまりバーストラスターサイズBR)内に収まるように配列される。つまり、印刷イメージデータPDは、X・Y個の満データDfがX行Y列のマトリクス状に配列されるとともに、X個の行余りデータDrが、Y個の列余りデータDcの末尾に続けて、満データDfのY列配列幅(Y列分の配列幅)内に収まるように配列された状態でDRAM35に格納される。
【0056】
一方、図5(b)に示すように、回転処理後のヘッドイメージデータHDでは、太線枠で囲まれた太数字「1」、「2」の領域のデータが、1回の転送単位(処理単位)である4×4画素の正方ブロック内が全て画素データで満たされた満データDfとなっている。また、図5(b)において太線枠で囲まれた太数字「3」の領域のデータが、列方向に転送回数「4回」分の4画素に満たない列余りデータDcとなっている。また、図5(b)において右側に破線枠で囲まれた太数字「4」、「5」、「6」の領域のデータは、行方向にバーストサイズBSの4画素に満たない行余りデータとなっている。なお、図5(b)に示すヘッドイメージデータHDは、印刷イメージデータPDを縦横変換したものであるため、その行方向の各サイズと列方向のサイズが逆になっている。すなわち、ヘッドイメージデータHDでは、その行方向(図5(b)における横方向)のサイズが「ラインサイズL」、その列方向(図5(b)における縦方向)のサイズが「ラスターサイズR」となる。また、ヘッドイメージデータHDにおいて満データDfが行方向に存在する範囲のサイズが「バーストラインサイズBL」、満データDfが列方向に存在する範囲のサイズが「バーストラスターサイズBR」となる。
【0057】
本実施形態では、図5(b)において破線枠で囲まれた行余りデータ「4」、「5」、「6」が、DRAM35において同図(b)に矢印で示す位置に配列される。すなわち、「4」、「5」、「6」の行余りデータDrは、「3」の列余りデータDcの末尾(図5(b)では画素4-10)に続けて、満データDfの配列幅(つまりバーストラインサイズBL)内に収まるように配列されるようになっている。つまり、ヘッドイメージデータHDは、Y・X個の満データDfがY行X列のマトリクス状に配列されるとともに、Y個の行余りデータDrが、X個の列余りデータDcの末尾に続けて、満データDfのX列配列幅(X列分の配列幅)内に収まるように配列された状態でDRAM35に格納される。
【0058】
図6は、このようなデータ配列でDRAM35に格納された印刷イメージデータPDと、回転処理後にDRAM35に格納されるヘッドイメージデータHDとのデータ格納構造を示す。印刷イメージデータPDが、DRAM35に図6(a)に示すようにアラインされた状態で格納されることにより、図10の従来技術で多数(図10(a)の例では36個)存在していたダミーデータの数が少なく抑えられている。また、回転処理後のヘッドイメージデータHDが、DRAM35に図6(b)に示すようにアラインされた状態で格納されることにより、図10に示す従来技術で多数(図10(b)の例では36個)存在していたダミーデータの数が少なく抑えられる。
【0059】
ここで、このように印刷イメージデータPDが図6(a)に示すデータ格納構造であっても、データ「1」「2」「3」「4」「5」「6」の順番でバースト転送できる読出しアドレスを指定できるように第1アドレス生成部59(図4参照)が用意されている。また、回転処理後のヘッドイメージデータHDを、DRAM35に図6(b)に示すデータ格納構造で格納できる書込みアドレスを指定できるように第2アドレス生成部60(図4参照)が用意されている。
【0060】
次に、アドレス生成部59,60によるアドレス生成方法を説明する。CPU31が設定レジスター53に設定する設定情報としては、図5に示すラスターサイズR、ラインサイズL、バーストラスターサイズBR、バーストラインサイズBLがある。これらのサイズR,L,BR,BLは、印刷イメージデータPD用とヘッドイメージデータHD用とで別々に設定される。また、CPU31は設定レジスター53に、印刷イメージデータPDのベースアドレスBase Address、及びヘッドイメージデータHDのベースアドレスBase Addressを設定する。また、CPU31は設定レジスター53に、バースト転送条件として、バーストサイズBS(本例では4・Bバイト)及び転送回数T(本例では4回)を設定する。
【0061】
第1カウンター55は、ベースアドレスBase Addressから行方向(ライン方向)(図5(a)における横方向)に何番目(つまり何列目)の画素であるかをデータポジションRPとして計数する。データポジションRPは、0,1,2,…,BR,BR+1,…,R(但しR≧BR)をカウントする。
【0062】
第2カウンター56は、ベースアドレスBase Addressから列方向(ラスター方向)(図5(a)における縦方向)の何番目(つまり何行目)の画素であるかをデータポジションLPとして計数する。第2カウンター56は、第1カウンター55が1行の画素数分に相当するラスターサイズRを計数し終わって、データポジションRPがラスターサイズRに達する(RP=R)度に「1」ずつ加算される。データポジションLPは、0,1,2,…,BL,BL+1,…,L(但しL≧BL)をカウントする。このため、第2カウンター56のデータポジションLPがラインサイズLに達し(LP=L)、かつ第1カウンター55のデータポジションRPがラスターサイズRに達すると(RP=R)、シーケンサー54は印刷イメージデータの全画素について回転処理(つまりアドレス生成処理)が終了したと判断する。
【0063】
第3カウンター57は、4×4画素の正方ブロック内で対象画素が行方向(ライン方向)に何番目(何列目)であるかを計数する。第4カウンター58は、4×4画素の正方ブロック内で対象画素が列方向(ラスター方向)に何番目(つまり何行目)であるかを計数する。第3カウンター57が「1」,「2」,「3」,「4」と計数して正方ブロック内の1行目の4画素を計数し終わると、初期値「1」にリセットされるとともに、第4カウンター58が「1」を加算して2行目を指す「2」になる。次に第3カウンター57が2行目の4画素を計数し終わると第4カウンター58が「3」になり、続いて第3カウンター57が3行目の4画素を計数し終わると第4カウンター58が「4」になり、最後に第3カウンター57が4行目の4画素を計数する。
【0064】
第1カウンター55は、第3及び第4カウンター57,58が第1行第1列目の正方ブロック内の画素を全て計数し終わると、はじめて同一行の次列のブロック内の第1列画素を指すデータポジションRP(この例では「5」)に値を進める。また、第2カウンター56は、図5(a)において1行目の最終列ブロック内の画素を第3及び第4カウンター57,58が全て計数し終わって、1行目の全ブロックの画素を計数し終わると、次行の第1列ブロック内の1行目の画素を指すデータポジションLP(この例では「5」)に値を進める。つまり、第1カウンター55のデータポジションRPは、各行の第1列ブロックで「1,2,3,4」を4回繰り返し、同一行の次列のブロックで「5,6,7,8」を4回繰り返し、同一行第Y列目(満データDfの最終列)のブロックで「4・(Y−1)+1,4・(Y−1)+2,4・(Y−1)+3,4・Y」を4回繰り返す。そして、同一行最終列の(Y+1)列目(行余りデータの列で図5(a)では太数字「3」)のブロックで「BR+1,BR+2,…,BR+r(=R)」を4回繰り返す。但し、rは行余りデータの行方向の画素数(r=R−BR)であり、0≦r<K(=4)である。
【0065】
一方、第2カウンター56は、第1行ブロックで第1列から第(Y+1)列までの各ブロックで「1,2,3,4」を1回ずつ計数し、第2行の各列のブロックで「5,6,7,8」を1回ずつ計数し、第X行(満データDfの最終行)の各列のブロックで「4・(X−1)+1,4・(X−1)+2,4・(X−1)+3,4・X」を1回ずつ計数する。そして、最終の第(X+1)行(列余りデータDcの行)の各列のブロックで「BL+1,BL+2,…,BL+c(=L)」を1回ずつ計数する。但し、cは列余りデータの列方向の画素数(c=L−BL)であり、0≦c<K(=4)である。
【0066】
そして、シーケンサー54は、データポジションLP=LかつデータポジションRP=Rになると、印刷イメージデータPDの全画素データの転送が終了したと判断する。なお、(Y+1)列目のブロックは行余りデータDrが属するブロックを指し、(X+1)行目のブロックは列余りデータDrが属するブロックを指す。このため、行余りデータDrが存在しない場合は最終列が第Y列になり、列余りデータDcが存在しない場合は最終行が第X列になる。
【0067】
以下、図7及び図8を用いてアドレス生成方法を説明する。図7は、第1アドレス生成部59によるソース側アドレス生成方法の説明図、図8は、第2アドレス生成部60によるディスティネーション側アドレス生成方法の説明図である。まず、図7を用いて、第1アドレス生成部59によるソース側アドレス生成方法について説明する。
【0068】
データポジションRPがバーストラスターサイズBR以下(RP≦BR)で満データ内にある場合と、データポジションRPがバーストラスターサイズBRを超えて(RP>BR)行余りデータ内にある場合とで、読出しアドレス生成用の演算式を使い分ける。
【0069】
RP≦BRの場合、DRAM35における印刷イメージデータPDのM行N列の画素M−Nの読出しアドレスADreadは、次式で与えられる。
ADread=Base Address+(M−1)×BR×B+(N−1)×B …(1)
また、RP>BRの場合、DRAM35における印刷イメージデータPDのM行N列の画素M-Nの読出しアドレスADreadは、次式で与えられる。
ADread=Base Address+(BR×L)+(M−1)×(R−BR)×B+(N−BR−1)×B …(2)
図4に示す第1アドレス生成部59の判定部59aは、データポジションRPが、RP≦BRであるか、RP>BRであるかを判定する。第1アドレス生成部59の演算部59bは、上記(1)式と上記(2)式のうち判定部59aの判定結果に応じた一方の演算式に基づき、設定レジスター53の設定値Base Address,BR,L,B及び第1及び第2カウンター55,56の計数値RP(=N),LP(=M)を用いて、読出しアドレスADreadを演算する。但し、このときのベースアドレスBase Addressは、印刷イメージデータPDのものである。なお、印刷イメージデータPDにおいて転送対象の画素データの位置をM行N列で表したときの数値M,Nは、第2カウンター56の計数値としてM(=LP)が与えられ、第1カウンター55の計数値としてN(=RP)が与えられる。
【0070】
演算部59bは、第3カウンター57が「1」のときに、第1及び第2カウンター55,56が計数しているデータポジションRP(=N),LP(=M)のN,Mを用いて、読出しアドレスADreadを演算する。ここで、第3カウンター57が「1」のときとは、1回のバースト転送の対象となる4画素分(バーストサイズBS)のデータにおける先頭画素のポジションを指すときであり、このときのN,Mを用いることにより、ブロック毎に4回行うバースト転送の各回の読出しアドレスADreadを算出できる。なお、前記(1)式が第1のアドレス生成演算式に相当し、前記(2)式が第2のアドレス生成演算式に相当する。
【0071】
なお、画像処理回路44内の不図示の前述のDMAコントローラーは、第1アドレス生成部59と同様の構成の不図示のアドレス生成部を備える。この不図示のアドレス生成部は、内蔵する判定部及び演算部により、第1アドレス生成部59と同様の手法で、判定部の判定結果に応じて前記(1)式又は(2)式を用いて書込みアドレスを算出する。そして、DRAM35におけるその算出した書込みアドレスにバースト転送した各バーストデータを順次書き込むことにより、印刷イメージデータPDを図6(a)に示すデータ格納構造に格納する。
【0072】
次に、図8を用いて、第2アドレス生成部60によるディスティネーション側アドレス生成方法について説明する。
データポジションLPがバーストラインサイズBL以下(LP≦BL)で満データ内にある場合と、データポジションLPがバーストラインサイズBLを超えて(RP>BR)行余りデータ内にある場合とで、書込みアドレス生成用の演算式を使い分ける。
【0073】
LP≦BLの場合、ヘッドイメージデータHDのM行N列の画素データDM-NのDRAM35への書込みアドレスADwriteは、次式で与えられる。
ADwrite=Base Address+(N−1)×BL×B+(M−1)×B …(3)
また、LP>BLの場合、ヘッドイメージデータHDのM行N列の画素データDM-NのDRAM35への書込みアドレスADwriteは、次式で与えられる。
ADwrite=Base Address+(BR×R)+(N−1)×(L−BL)×B+(M−BL−1)×B …(4)
図4に示す第2アドレス生成部60の判定部60aは、データポジションLPが、LP≦BLであるか、LP>BLであるかを判定する。第2アドレス生成部60の演算部60bは、上記(3)式と上記(4)式のうち判定部60aの判定結果に応じた一方の演算式に基づき、設定レジスター53の設定値Base Address,BL,R,B及び第1及び第2カウンター55,56の計数値RP(=M),LP(=N)を用いて、書込みアドレスADwriteを演算する。但し、このときのベースアドレスBase Addressは、ヘッドイメージデータHDのものである。なお、ヘッドイメージデータHDにおいて転送対象の画素データの位置をM行N列で表したときの数値M,Nは、第1カウンター55の計数値としてM(=RP)が与えられ、第2カウンター56の計数値としてN(=LP)が与えられる。
【0074】
演算部60bは、第4カウンター58が「1」のときに、第1及び第2カウンター55,56が計数しているデータポジションRP(=N),LP(=M)のN,Mを用いて、書込みアドレスADwriteを演算する。ここで、第4カウンター58が「1」のときとは、1回のバースト転送の対象となる4画素分(バーストサイズBS)のデータにおける先頭画素のポジションを指すときであり、このときのN,Mを用いることにより、ブロック毎に4回行うバースト転送の各回の書込みアドレスADwriteを算出できる。なお、前記(3)式が第1のアドレス生成演算式に相当し、前記(4)式が第2のアドレス生成演算式に相当する。
【0075】
次に回転ユニット50における縦横変換処理(回転処理)について説明する。なお、以下の説明において、ブロックのデータDf,Dr,Dcを特に区別しない場合は、単にデータDという場合がある。回転ユニット50は、DRAM35(詳しくは第1バッファー35a)に格納された印刷イメージデータPDを4×4画素分のデータずつ回転ユニット50へ転送しつつ、転送されてきたデータに回転処理を施し、回転処理後のデータをDRAM35(詳しくは第2バッファー35b)に順次転送して書き込む。
【0076】
このとき、回転ユニット50の転送指示部61が、メモリーコントローラー34に対して第1アドレス生成部59が生成した読出しアドレスADreadを指定してリードリクエストを行う。その結果、印刷イメージデータPDを構成する4×4画素の正方ブロックのデータDが、バーストサイズBS(4画素データ)ずつの4回のバースト転送により転送される。そして、DRAM35に図6(a)に示すように格納された印刷イメージデータPDは、図6(a)に太数字で示したブロックのデータDの順番で読み出されて回転ユニット50へバースト転送される。回転ユニット50は、4×4画素のブロックずつ転送されてくるデータDに回転処理(縦横変換処理)を施す。
【0077】
図9は、回転ユニットによるデータの回転処理を説明する模式図である。図9において左側が回転前のデータ、右側が回転後のデータを示す。また、図9では各データを上から順番に転送順で示している。なお、左側のデータの左上に示す<>内の数字は、図6に太線枠で示すブロックに付された太数字に対応している。
【0078】
データの回転処理は、図4に示す回転処理部52が行う。回転前のデータDは、一旦データレジスター63に蓄積されてからSRAM70に格納される。
このとき、回転制御部62は、バーストサイズBSずつ4回で転送されてくる4画素データ(以下、「バーストデータ」ともいう)を、SRAM70の1行目〜4行目に順番に格納する。回転制御部62は、SRAM70からデータDを読み込みつつ回転処理を施して回転後のデータを再びSRAM70に書き込む。この回転処理は例えば行方向に読み出した画素データを列方向に書き込むことにより行われる。この回転処理の結果、図9で左側に示す回転前のデータDは、図9で右側に示すデータDのように縦横変換される。
【0079】
ここで、図6(a)における太数字「1」及び「2」の満データDfは、そのときのM,Nを用いて前記(1)式の演算式に基づき算出された読出しアドレスADreadから順次読出されて4回で転送されてきたバーストデータが、図9左側のSRAM70の1行目〜4行目に順次格納されることで、図9左側のように格納される。そして、図9左側の<1>及び<2>の満データDfに回転処理が順次施されて、図9右側に示す回転後のデータDfが生成される。
【0080】
次に、図6に網掛けで示す太数字「3」の行余りデータDrは、列余りデータDcの末尾に続けて満データ配列幅(バーストラスターサイズBR)内に格納されている。このとき、第1アドレス生成部59は、図7における画素1-9のときのM,Nを用いて前記(2)式に基づき、図6(a)における画素1-9を含むバーストデータの読出しアドレスADreadを算出する。この結果、図6(a)における太数字「3」のブロックのうち画素1-9を先頭とする4画素分のバーストデータが図9左側のSRAM70の1行目に格納される。次に第1アドレス生成部59は、図7における画素2-9のときのM,Nを用いて前記(2)式に基づき、図6(a)における画素2-9を含むバーストデータの読出しアドレスADreadを算出する。この結果、図6(a)における太数字「3」のブロックのうち画素2-9を先頭とする4画素分のバーストデータが図9左側のSRAM70の2行目に格納される。以下、同様に、図6(a)における太数字「3」のブロックのうち画素3-9を先頭とする4画素分のバーストデータが図9左側のSRAM70の3行目に格納され、最後に図6(a)における太数字「3」のブロックのうち画素4-9を先頭とする4画素分のバーストデータが図9左側のSRAM70の4行目に格納される。このため、図9左側の<3>における空白の領域には、実際にはバーストデータ中の後側2画素分の不要データが格納されている。そして、この<3>の行余りデータDrに回転処理が施されて、図9右側に示す回転後のデータDcが生成される。
【0081】
同様に列余りデータ<4>及び<5>についても、図9左側に示す配列でSRAM70に格納される。図9左側の<4>、<5>における空白の領域の少なくとも一部には、実際には一緒にバースト転送されてきた不要データが格納されている。そして、<4>及び<5>の列余りデータDcに回転処理が施されて、図9右側に示す回転後のデータDrが生成される。
【0082】
次に、図6に網掛けで示す太数字「6」の行余りデータDrは、満データ配列幅(バーストラスターサイズBR)内に格納されている。このとき、第1アドレス生成部59は、図7における画素5-9のときのM,Nを用いて前記(2)式に基づき、図6(a)における画素5-9を含むバーストデータの読出しアドレスADreadを算出する。この結果、図6(a)における太数字「6」のブロックのうち画素5-9を先頭とする4画素分のバーストデータが図9左側のSRAM70の1行目に格納される。次に第1アドレス生成部59は、図7における画素6-9のときのM,Nを用いて前記(2)式に基づき、図6(a)における画素6-9を含むバーストデータの読出しアドレスADreadを算出する。この結果、図6(a)における太数字「6」のブロックのうち画素6-9を先頭とする4画素分のバーストデータが図9左側のSRAM70の2行目に格納される。このとき、印刷イメージデータPDの全画素のカウント処理が終わり、データポジションRP,LPがRP=RかつLP=Lになるので、印刷イメージデータPDの転送を終了する。図9左側の<6>における空白の領域の一部には、実際にはバーストデータ中の後側2画素分の不要データが格納されている。そして、この<6>の行余りデータDrに回転処理が施されて、図9の右側に示す回転後のデータDrが生成される。
【0083】
このように順次転送されてくるデータDに1つずつ順番に回転処理が施され、回転後のデータを第2アドレス生成部60が生成した書込みアドレスADwriteを指定してメモリーコントローラー34にライトリクエストを行うことにより順次DRAM35に転送する。この結果、回転後のデータDは、図6(b)に太数字で示す配列で格納される。
【0084】
ここで、回転後のデータDをSRAM70からDRAM35へ転送する場合は、図8に破線枠で囲まれた太数字「4」、「5」、「6」のブロックが、書込み先のDRAM35(出力バッファー35c)において行余りデータDrになる(図9右側の<4>〜<6>のブロックを参照)。また、図8に太線枠で囲まれた太数字「3」のブロックが、書込み先のDRAM35(出力バッファー35c)において列余りデータDcになる(図9右側の<3>のブロックを参照)。
【0085】
ここで、図9右側に示す回転後の<1>及び<2>の満データDfは、そのときのM,Nを用いて前記(3)式の演算式に基づき算出された書込みアドレスADwriteを指定してバーストデータずつ読出されてDRAM35へ転送されることで、図6(b)に示す太数字「1」及び「2」のブロックに順次格納される。
【0086】
次に、図9右側に網掛けで示す<3>の列余りデータDcは、そのときのM,Nを用いて前記(3)式の演算式に基づき算出された書込みアドレスADwriteを指定してバーストデータずつ読み出されてDRAM35へ転送されることで、図6(b)に示す太数字「3」のブロックに格納される。この時点では、一緒に転送された不要データが太数字「3」のブロック下側(太数字「4」)の領域に格納される。
【0087】
次に、図9右側に示す<4>、<5>の行余りデータDrは、そのときのM,Nを用いて前記(4)式の演算式に基づき算出された書込みアドレスADwriteを指定してバーストデータずつ読み出されてDRAM35へ転送されることで、図6(b)に示す太数字「4」、「5」のブロックに格納される。このとき、図6(b)における<4>のブロックは、「3」の転送時に書き込まれた不要データに上書きされる。
【0088】
また、このとき、図6(b)における太数字「4」のブロックのうち画素5-1を先頭とする4画素分のバーストデータがまず格納され、次に画素5-2を先頭とする4画素分のバーストデータが格納されて画素5-2、6-2が不要データに上書きされ、以下同様に画素5-3を先頭とする4画素分のバーストデータ、画素5-4を先頭とする4画素分のバーストデータ順次格納される。図6(b)における太数字「5」のブロックも、同様に4画素ずつ4回書き込まれる。このため、図6(b)のブロック「4」、「5」の右側に1行当たり2画素分の不要データ(ダミーデータ)が発生する。
【0089】
そして、図9右側に示す<6>の行余りデータDrは、そのときのM,Nを用いて前記(4)式の演算式に基づき算出された書込みアドレスADwriteを指定してバーストデータずつ読み出されてDRAM35へ転送されることで、図6(b)に示す太数字「6」のブロックに格納される。このとき、4画素ずつ2回書き込まれる。このため、図6(b)のブロック「6」の右側に2画素分の不要データ(ダミーデータ)が発生する(ダミーデータは合計10個)。もちろん、ブロック「6」についても、転送条件を統一し、4画素(バーストデータ)ずつ4回転送する構成としてもよく、この場合、ブロック「6」の下側に6画素分(6・Bバイト)のダミーデータが発生する(ダミーデータは合計16個)。
【0090】
こうしてヘッドイメージデータHDは、図8に破線で示す領域の行余りデータが、図6に示すように満データ配列幅(バーストラインサイズBL)内に収まるように格納される。
【0091】
以上詳述したように、本実施形態では、以下に示す効果を得ることができる。
(1)DRAM35に印刷イメージデータPDを格納する場合、行方向(ライン方向)に転送単位である4×4画素に満たない行余りデータDrを、列余りデータDcの末尾(満データ配列幅内のデータの末尾)に続けて満データ配列幅(バーストラスターサイズBR)内に収まるように格納する構成である。よって、バースト転送を効率よく行うために格納すべきダミーデータを抑制でき、印刷イメージデータPDの格納に必要なDRAM35の使用容量を低減できる。従って、DRAM35の使用容量を節約でき、他のデータの格納に使用可能な格納領域を増やすことができる。よって、印刷イメージデータPDをDRAM35から回転ユニット50へ処理単位(4×4画素の正方領域)ずつバースト転送する際の転送速度をさほど落とさず、DRAM35における印刷イメージデータPDの使用格納領域を少なく抑えることができる。
【0092】
(2)DRAM35にヘッドイメージデータHDを格納する場合、行方向(ラスター方向)に転送単位である4×4画素に満たない行余りデータDrを、列余りデータDcの末尾(満データ配列幅内のデータの末尾)に続けて満データ配列幅(バーストラインサイズBL)内に収まるように格納する構成である。よって、バースト転送を効率よく行うために格納すべきダミーデータを抑制できる。この結果、ヘッドイメージデータHDの格納に必要なDRAM35の使用容量を低減できる。従って、DRAM35の使用容量を節約でき、他のデータの格納に使用可能な格納領域を増やすことができる。よって、回転処理後のデータDを回転ユニット50からDRAM35へ処理単位(4×4画素の正方領域)ずつバースト転送する際の転送速度をさほど落とさず、DRAM35におけるヘッドイメージデータHDの使用格納領域を少なく抑えることができる。
【0093】
(3)図6(a)に示すデータ格納構造を採用しても、第1アドレス生成部59が印刷イメージデータPDを構成するデータDをDRAM35から元の配列順(画像自体の配列順)に読み出し可能なアドレスADreadを生成する。よって、印刷イメージデータPDを構成するデータDをDRAM35から適切な順番で回転ユニット50へ転送できる。
【0094】
(4)回転処理後のデータDをDRAM35へ転送する際に、第2アドレス生成部60が生成した書込みアドレスADwriteを指定するので、行余りデータDrを満データ配列幅内に収まるように図6(b)に示すアラインしたデータ格納構造でヘッドイメージデータHDを格納できる。
【0095】
(5)第1アドレス生成部59は、データポジションRPがBR以下(RP≦BR)であるか否かを判定した判定結果に応じて、使用すべき読出しアドレスADread生成用の演算式を(1)式と(2)式の間で切り替える。よって、印刷イメージデータPDが図6(a)に示すデータ格納構造で格納されていても、適切な読出しアドレスADreadを生成できる。
【0096】
(6)第2アドレス生成部60は、データポジションLPがBL以下(LP≦BL)であるか否かを判定した判定結果に応じて、使用すべきアドレスADwrite生成用の演算式を(3)式と(4)式の間で切り替える。よって、適切な書込みアドレスADwriteを生成して、ヘッドイメージデータHDを図6(b)に示すデータ格納構造で格納できる。
【0097】
(7)印刷イメージデータPDのデータ格納構造をコンパクトにでき、かつ回転処理後のヘッドイメージデータHDのデータ格納構造をコンパクトにできるので、DRAM35において回転処理の前後で使用される格納領域をかなり低減できる。
【0098】
(8)行余りデータDrが満データ配列範囲(バーストラスターサイズBR)内に収まるデータ配列でDRAM35に印刷イメージデータPDを格納したので、DRAM35から回転ユニット50へのデータのバースト転送を高速に行うことができる。従って、バースト転送速度をできるだけ落とさず、DRAM35における印刷イメージデータPDの使用格納領域を効果的に低減できる。
【0099】
(9)処理後のデータをDRAM35に転送する場合、画像データの画像自体の元々の順番で、ブロック「1」、「2」、「3」、「4」、「5」、「6」の順に転送してDRAM35に格納するので、前のブロックの転送時に書き込まれた不要データを、後から転送された後続のブロックで上書きできる。
【0100】
(10)行余りデータDrが満データ配列範囲(バーストラインサイズBL)内に収まるデータ配列でDRAM35にヘッドイメージデータHDを格納したので、回転ユニット50からDRAM35への回転処理後のデータDのバースト転送を高速に行うことができる。従って、バースト転送速度をできるだけ落とさず、DRAM35におけるヘッドイメージデータHDの使用格納領域を効果的に低減できる。
【0101】
(11)搬送モーター28の駆動により搬送される用紙に印刷ヘッド29がインク滴を噴射して画像を形成するプリンター部14を有する複合機11に画像処理装置を設けたので、複合機11においてデータ転送速度の低減を抑えつつ、DRAM35の格納領域を有効活用できる。
【0102】
なお、上記実施形態は以下の形態に変更することもできる。
・処理手段は、回転手段に限定されず、他の処理を行ってもよい。処理手段は、例えば画像処理を行ってもよい。画像処理としては、例えば解像度変換処理、色変換処理、ハーフトーン処理、インターレース処理(マイクロウィーブ処理)等が挙げられる。その他、処理は、圧縮処理や解凍処理でもよい。要するに、画像データを設定サイズずつ処理手段に転送し、処理手段がその転送された設定サイズずつのデータに順次処理を施す構成であれば、処理の種類は特に限定されない。
【0103】
・転送単位(処理単位)は、4×4画素に限定されず、例えば8×8画素、16×16画素、64×64画素の単位でもよい。また、転送単位は、K×K画素の正方ブロックに限定されず、K×J画素(K≠J)の矩形ブロックでもよい。すなわち、処理回路(処理手段)における処理単位に合わせた適宜な転送単位を設定できる。
【0104】
・アドレスの生成に使用するカウンターは2つでもよい。例えば第3及び第4カウンター57,58を廃止し、第1及び第2カウンター55,56の計数値を用いてアドレスを算出する。この場合、第1カウンター55の計数値RPが、「1」、「5」、「9」、…(RP=4・(Y−1)+1)のときに、そのときのRP(=M),LP(=N)を用いて読出しアドレスADreadを演算する。また、第2カウンター56の計数値LPが、「1」、「5」、「9」、…(LP=4・(X−1)+1)のときに、そのときのRP(=M),LP(=N)を用いて書込みアドレスADwriteを演算する構成を採用すればよい。
【0105】
・転送手段の一例であるDMAコントローラー51は、回転ユニット50の外側に独立した回路として設けられていてもよい。また、転送手段の転送方式はバースト転送方式に限定されない。他の転送方式も採用できる。
【0106】
・前記実施形態では、印刷イメージデータPDの格納と、ヘッドイメージデータHDの格納との両方の格納に、本発明のデータ格納構造を採用したが、これら両者のうち一方のみに本発明のデータ格納構造を採用してもよい。例えば図6(a)に示すデータ格納構造でDRAMに格納された印刷イメージデータPDから、前記(1)式又は(2)式を用いて算出した読出しアドレスADreadを指定して読出したデータを、回転処理後に、図10(b)に示すように格納する構成でもよい。この場合、DRAM35における中間バッファー35bの使用格納領域を抑制できる。また、例えば図10(a)に示すデータ格納構造でDRAMに格納された印刷イメージデータから読出したデータを、前記(3)式又は(4)式を用いて算出した書込みアドレスADwriteを指定して図6(b)に示すように格納する構成でもよい。この場合、DRAM35における出力バッファー35cの使用格納領域を抑制できる。
【0107】
・アドレス生成方法(判定部の判定内容・演算部の演算内容等)は、適宜変更してもよい。要するに、目的のアドレスを生成できる方法であれば、他の演算式を用いた演算によりアドレスを生成してもよい。
【0108】
・印刷イメージデータPDとヘッドイメージデータHDは同じDRAMに格納することに限定されず、異なるDRAMに格納する構成としてもよい。
・回転ユニット50は、ハードウェアの構成に限定されず、その一部にソフトウェアの部分を含みハードウェアとソフトウェアとの協働により構成されてもよい。さらには処理速度が多少低下するが、ソフトウェアにより構成されもよい。
【0109】
・前記各実施形態では、インクジェット式のプリンター部14が採用されているが、インク以外の他の流体を噴射したり吐出したりする流体噴射装置を採用してもよい。また、微小量の液滴を吐出させる液体噴射ヘッド等を備える各種の液体噴射装置に流用可能である。この場合、液滴とは、上記液体噴射装置から吐出される液体の状態を言い、粒状、涙状、糸状に尾を引くものも含むものとする。また、ここでいう液体とは、液体噴射装置が噴射させることができるような材料であればよい。例えば、物質が液相であるときの状態のものであればよく、粘性の高い又は低い液状体、ゾル、ゲル水、その他の無機溶剤、有機溶剤、溶液、液状樹脂、液状金属(金属融液)のような流状体、また物質の一状態としての液体のみならず、顔料や金属粒子などの固形物からなる機能材料の粒子が溶媒に溶解、分散または混合されたものなどを含む。また、液体の代表的な例としては上記実施形態で説明したようなインクや液晶等が挙げられる。ここで、インクとは一般的な水性インクおよび油性インク並びにジェルインク、ホットメルトインク等の各種液体組成物を包含するものとする。液体噴射装置の具体例としては、例えば液晶ディスプレイ、EL(エレクトロルミネッセンス)ディスプレイ、面発光ディスプレイ、カラーフィルタの製造などに用いられる電極材や色材などの材料を分散または溶解のかたちで含む液体を噴射する液体噴射装置を挙げることができる。また、バイオチップ製造に用いられる生体有機物を噴射する液体噴射装置、精密ピペットとして用いられ試料となる液体を噴射する液体噴射装置、捺染装置やマイクロディスペンサ等であってもよい。さらに、時計やカメラ等の精密機械にピンポイントで潤滑油を噴射する液体噴射装置、光通信素子等に用いられる微小半球レンズ(光学レンズ)などを形成するために紫外線硬化樹脂等の透明樹脂液を基板上に噴射する液体噴射装置、基板などをエッチングするために酸又はアルカリ等のエッチング液を噴射する液体噴射装置を採用してもよい。そして、これらのうちいずれか一種の液体噴射装置に本発明を適用することができる。また、流体は、トナーなどの粉粒体でもよい。なお、本明細書でいう流体には、気体のみからなるものは含まないものとする。
【0110】
・また、前記各実施形態では、スキャナー機能を備えたカラーインクジェット式のプリンター部14が採用されているが、ワイヤインパクト式記録装置、熱転写式記録装置、電子写真式記録装置等の記録装置を採用してもよい。また、これらの記録装置は、モノクロ記録装置を採用しても良い。また、これらの記録装置は、スキャナー機能を備えない記録装置を採用してもよい。
【0111】
なお、前記実施形態及び変形例から把握される技術的思想を以下に記載する。
(イ)前記転送手段は、前記処理単位のデータの行方向サイズをバーストサイズとし、前記処理単位のデータをバーストサイズずつバースト転送する構成であり、前記行余りデータとは、前記画像データを前記処理単位のデータずつ区分した場合に、行方向に前記バーストサイズに満たないデータであることを特徴とする請求項1乃至6のうちいずれか一項に記載の画像データ処理装置。また、前記行余りデータが、上記(イ)と同様の構成であることを特徴とする請求項8又は9に記載の画像データ処理方法。
【符号の説明】
【0112】
11…記録装置の一例である流体噴射装置としての複合機、14…プリンター部、28…搬送手段の一例である搬送モーター、29…記録手段の一例である流体噴射ヘッドとしての印刷ヘッド、35…格納手段の一例としてのDRAM、35b…処理前の画像データを格納するための格納手段の一例である中間バッファー、35c…処理前の画像データを格納するための格納手段の一例である出力バッファー、50…回転ユニット、51…転送手段の一例としてのDMAコントローラー、52…処理手段及び回転処理手段の一例としての回転処理部、53…設定レジスター、54…シーケンサー、55…第1カウンター、56…第2カウンター、57…第3カウンター、58…第4カウンター、59…アドレス生成手段の一例である第1アドレス生成部、59a…判定手段としての判定部、59b…演算部、60…アドレス生成手段の一例である第2アドレス生成部、60a…判定手段としての判定部、60b…演算部、61…転送指示部、70…SRAM、PD…処理前の画像データの一例である印刷イメージデータ、HD…処理後の画像データの一例であるヘッドイメージデータ、Df…処理単位のデータとしての満データ、Dr…処理単位のデータとしての行余りデータ、Dc…処理単位のデータとしての列余りデータ、BS…バーストサイズ、ADread…アドレスとしての読出しアドレス、ADwrite…アドレスとしての書込みアドレス、P…媒体の一例である用紙。

【特許請求の範囲】
【請求項1】
画像データに処理を施す画像データ処理装置であって、
前記画像データを格納する格納手段と、
前記画像データに処理を施す処理手段と、
前記画像データを前記格納手段から前記処理手段へ処理単位のデータずつ転送する転送手段とを備え、
前記処理手段は、前記格納手段から前記処理単位ずつ転送されてくる前記データに順次処理を施す構成であり、
前記格納手段において、前記画像データは、1個が前記処理単位で満たされたX×Y個の満データがX行×Y列のマトリクス配列で格納されるとともに、行方向に前記処理単位に満たない行余りデータがある場合には、当該行余りデータが、満データY列配列幅内に配列されたデータの末尾に続けて前記満データY列配列幅内に収まるようにアラインして格納される構成であり、
前記転送手段は、前記格納手段から前記処理手段へ前記データを前記画像データにおける前記アライン前の元の順番で転送することを特徴とする画像データ処理装置。
【請求項2】
画像データに処理を施す画像データ処理装置であって、
前記画像データを処理単位のデータずつ読込んで該データに処理を施す処理手段と、
処理後の画像データを格納するための格納手段と、
前記処理が施された前記処理単位のデータを前記処理手段から前記格納手段へ順次転送して前記格納手段に処理後の画像データを格納させる転送手段とを備え、
前記転送手段は、前記処理後の画像データを、前記格納手段に対して、1個が前記処理単位で満たされたY×X個の満データがY行×X列のマトリクス状に配列されるとともに、行方向に前記処理単位に満たない行余りデータがある場合には、当該行余りデータが、満データX列配列幅内に配列されたデータの末尾に続けて、前記満データX列配列幅内に収まるようにアラインして格納させることを特徴とする画像データ処理装置。
【請求項3】
画像データに処理を施す画像データ処理装置であって、
処理前の画像データを格納する格納手段と、
前記画像データに処理を施す処理手段と、
前記処理前の画像データを前記格納手段から前記処理手段へ処理単位のデータずつ転送するとともに、前記処理手段が前記処理単位ずつ転送されてくる前記データに順次処理を施して生成された前記処理後のデータを前記処理手段から前記格納手段へ順次転送することで前記処理が施された画像データを前記格納手段に格納させる転送手段とを備え、
前記格納手段において、前記画像データは、1個が前記処理単位で満たされたX×Y個の満データがX行×Y列のマトリクス配列で格納されるとともに、行方向に前記処理単位に満たない行余りデータがある場合には、当該行余りデータが、満データY列配列幅内に配列されたデータの末尾に続けて前記満データY列配列幅内に収まるようにアラインして格納される構成であり、
前記転送手段は、前記格納手段から前記処理手段へ前記データを前記画像データにおける前記アライン前の元の順番で転送し、
前記処理が施された前記処理単位のデータを前記処理手段から前記格納手段へ順次転送して前記格納手段に処理後の画像データを格納させる転送手段とを備え、
前記転送手段は、前記処理後の画像データを、前記格納手段に対して、1個が前記処理単位で満たされたY×X個の満データがY行×X列のマトリクス状に配列されるとともに、前記行余りデータがある場合には、当該行余りデータが、満データX列配列幅内に配列されたデータの末尾に続けて、前記満データX列配列幅内に収まるようにアラインして格納させることを特徴とする画像データ処理装置。
【請求項4】
前記処理手段は画像データに回転処理を施す回転処理手段であり、
前記転送手段は、前記処理単位が行方向と列方向で画素数の等しいK×K画素(但しK≧2)の正方ブロックの前記データをバースト転送することを特徴とする請求項1乃至3のうちいずれか一項に記載の画像データ処理装置。
【請求項5】
前記転送手段は、前記格納手段からデータを読み出して転送する際の読出しアドレスを生成するか、又は前記格納手段に転送したデータを書き込む際の書込みアドレスを生成するアドレス生成手段を、更に備えたことを特徴とする請求項1乃至4のうちいずれか一項に記載の画像データ処理装置。
【請求項6】
前記アドレス生成手段は、転送すべきデータが行余りデータであるか否かを判定する判定手段と、
データが行余りデータ以外である場合には第1のアドレス生成演算式に従ってアドレスを生成し、データが行余りデータである場合には第2のアドレス生成演算式に従ってアドレスを生成することを特徴とする請求項5に記載の画像データ処理装置。
【請求項7】
請求項1乃至6のいずれか一項に記載の画像データ処理装置と、
媒体を搬送する搬送手段と、
前記搬送手段により搬送される媒体に画像を形成する記録手段とを備え、
前記記録手段は前記処理手段による処理が施された画像データに基づき制御されることを特徴とする記録装置。
【請求項8】
画像データに処理を施す画像データ処理方法であって、
格納手段において、前記画像データを、1個が処理単位で満たされたX×Y個の満データがX行×Y列のマトリクス配列で格納されるとともに、行方向に前記処理単位に満たない行余りデータがある場合には、当該行余りデータが、満データY列配列幅内に配列されたデータの末尾に続けて前記満データY列配列幅内に収まるようにアラインして格納しておき、
前記画像データを前記格納手段から処理手段へ前記処理単位のデータずつ転送する転送ステップと、
前記処理手段が、前記格納手段から前記処理単位ずつ転送されてくる前記データに順次処理を施す処理ステップと、を備え、
前記転送ステップでは、前記データを前記アライン前の元の順番で前記格納手段から前記処理手段へ転送することを特徴とする画像データ処理方法。
【請求項9】
画像データに処理を施す画像データ処理方法であって、
前記画像データを処理単位のデータずつ読込んで処理手段が該データに処理を施す処理ステップと、
前記処理が施された前記処理単位のデータを転送手段が前記処理手段から格納手段へ順次転送することで前記格納手段に処理後の画像データを格納させる転送ステップと、を備え、
前記転送ステップでは、前記転送手段は、1個が前記処理単位で満たされたY×X個の満データがY行×X列のマトリクス状に配列されるとともに、行方向に前記処理単位に満たない行余りデータがある場合には、当該行余りデータが、満データX列配列幅内に配列されたデータの末尾に続けて、前記満データX列配列幅内に収まるようにアラインして格納させることを特徴とする画像データ処理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2011−182106(P2011−182106A)
【公開日】平成23年9月15日(2011.9.15)
【国際特許分類】
【出願番号】特願2010−42829(P2010−42829)
【出願日】平成22年2月26日(2010.2.26)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】