JP6844459B2 - Image processing system, image processing method and image processing device, and image forming system - Google Patents
Image processing system, image processing method and image processing device, and image forming system Download PDFInfo
- Publication number
- JP6844459B2 JP6844459B2 JP2017138560A JP2017138560A JP6844459B2 JP 6844459 B2 JP6844459 B2 JP 6844459B2 JP 2017138560 A JP2017138560 A JP 2017138560A JP 2017138560 A JP2017138560 A JP 2017138560A JP 6844459 B2 JP6844459 B2 JP 6844459B2
- Authority
- JP
- Japan
- Prior art keywords
- memory
- unit
- image data
- buffer
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Record Information Processing For Printing (AREA)
- Memory System (AREA)
- Storing Facsimile Image Data (AREA)
Description
本発明は、画像処理システム、画像処理方法および画像処理装置、ならびに、画像形成システムに関する。 The present invention relates to an image processing system, an image processing method and an image processing apparatus, and an image forming system.
画像データに従いインクをノズルから吐出することで媒体に印字を行うインクジェットプリンタが知られている。一般的には、インクジェットプリンタは、インクを吐出するノズルが媒体の搬送方向である副走査方向に沿って配列されたノズル列を有するヘッド(IJヘッドと呼ぶ)を備える。インクジェットプリンタは、このIJヘッドを副走査方向と直交する主走査方向に走査させることで、複数ラインの印字を纏めて実行でき、効率的に印字を行うことが可能となる。 An inkjet printer that prints on a medium by ejecting ink from a nozzle according to image data is known. Generally, an inkjet printer includes a head (referred to as an IJ head) having a nozzle array in which nozzles for ejecting ink are arranged along a sub-scanning direction which is a transport direction of a medium. By scanning the IJ head in the main scanning direction orthogonal to the sub-scanning direction, the inkjet printer can collectively perform printing of a plurality of lines, and can efficiently perform printing.
このようなインクジェットプリンタでは、ヘッドの配置に合わせて画像データを並び替える処理が必要となる。例えば、印字を行うための画像データがホストコンピュータからインクジェットプリンタに供給される。画像データは、一般的には、画像の左上から主走査方向に連続したアドレスに従い、インクジェットプリンタが備えるメモリ上に書き込まれる。一方、IJヘッドは、上述したように、副走査方向に複数ライン分の印字を纏めて実行する。したがって、メモリ上の画像データに効率良くアクセスするためには、画像データのメモリ上の配置を90°または270°回転させる回転処理(縦横変換処理)が必要となる。画像データの回転処理としては、複数の方法が既に知られている。 In such an inkjet printer, it is necessary to perform a process of rearranging the image data according to the arrangement of the heads. For example, image data for printing is supplied from a host computer to an inkjet printer. Image data is generally written in a memory provided in an inkjet printer according to addresses continuous from the upper left of the image in the main scanning direction. On the other hand, as described above, the IJ head collectively executes printing for a plurality of lines in the sub-scanning direction. Therefore, in order to efficiently access the image data in the memory, a rotation process (vertical / horizontal conversion process) for rotating the arrangement of the image data in the memory by 90 ° or 270 ° is required. A plurality of methods are already known for the rotation processing of image data.
例えば、特許文献1には、1ページの画像データのmライン分をバッファメモリに一時蓄積し、バッファメモリからnドット×mドット単位で画像データを読み出して回転処理を行う技術が開示されている。また、特許文献2には、ビットマップ形式のメモリに記憶された2値画像データを90°単位の回転方向に応じてバイト単位で読み出し、2値画像データの各ビットを回転方向に応じて抽出することで画像データの回転処理を行う技術が開示されている。
For example,
しかしながら、従来の、ハードウェアを用いた画像データの回転処理は、回路規模が大きくなり、インクジェットプリンタのコストが嵩んでしまうという問題点があった。ハードウェアを用いた高速な回転処理は、例えば、メモリに対してバーストアクセスを行うことで実行可能となる。この場合、バースト転送をより大きな単位で実行することでメモリアクセスの効率を向上させることができる一方で、ブロック単位で回転処理を行う回路の規模が大きくなってしまう。 However, the conventional rotation processing of image data using hardware has a problem that the circuit scale becomes large and the cost of the inkjet printer increases. High-speed rotation processing using hardware can be executed, for example, by performing burst access to the memory. In this case, the efficiency of memory access can be improved by executing the burst transfer in a larger unit, but the scale of the circuit that performs the rotation process in the block unit becomes large.
上述した特許文献1では、メモリに対してブロック単位でのアクセスが必要となり、大きな単位でバースト転送を行った場合に回転処理を行う回路規模が大きくなるという問題点は、解決できていない。また、上述した特許文献2では、バイト単位で読み出した1バイトのデータから1ビットを抽出しているため、同じデータを8回読み出すことになり、処理の高速化が難しい。
In the above-mentioned
また、インクジェットプリンタ本体のコストを削減するために、画像データの回転処理を、画像データを供給するホストコンピュータ側で実行する事も考えられる。しかしながら、ホストコンピュータにおけるデータ処理は、一般的にはバイト単位で行われるため、例えば1画素のデータサイズが1バイト未満である画像データを回転させる場合、ビット単位の処理が必要となり、処理効率が悪く処理に時間を要してしまうおそれがあるという問題点があった。 Further, in order to reduce the cost of the main body of the inkjet printer, it is conceivable to execute the rotation processing of the image data on the host computer side that supplies the image data. However, since data processing in the host computer is generally performed in byte units, for example, when rotating image data in which the data size of one pixel is less than 1 byte, bit unit processing is required, resulting in high processing efficiency. There is a problem that it may take a long time for processing.
本発明は、上記に鑑みてなされたものであって、画像データの回転処理を、より高速および低コストで実現可能とすることを目的とする。 The present invention has been made in view of the above, and an object of the present invention is to make it possible to realize rotation processing of image data at higher speed and lower cost.
上述した課題を解決し、目的を達成するために、本発明は、情報処理装置と画像処理装置とを含む画像処理システムであって、第1のメモリに記憶される、アドレスが連続する第1の方向に直交する第2の方向に第1の数のラインを含む2次元の画像データに対して、第1の方向に第2の数の画素を含む第1の処理単位で第1の縦横変換を施す第1の変換部と、第1の変換部で第1の縦横変換を施された画像データを、第2のメモリのアドレスが連続する第3の方向に書き込む書き込み部と、第2のメモリに書き込まれた画像データを、バーストアクセスにより、所定数の第1の処理単位を含む第2の処理単位で読み出す読み出し部と、読み出し部により第2のメモリから読み出された第2の処理単位の画像データに対して、画素単位で第2の縦横変換を施す第2の変換部と、それぞれ第1の数の画素が格納可能な、第1の処理単位に含まれる画素数に対応する数のラインメモリを含むバッファメモリと、第2の変換部で第2の縦横変換が施された第2の処理単位の画像データを、ラインメモリの指定したアドレスに書き込むバッファ書き込み部と、複数のラインメモリから1のラインメモリを順次に選択し、選択したラインメモリから画像データを読み出すバッファ読み出し部とを備え、前記第1の変換部は、前記第1のメモリに記憶される前記画像データを、前記第1の処理単位毎に、アドレスが連続する第1の方向に直交する第2の方向に向けて読み出すことで、前記画像データに対して前記第1の縦横変換を施し、前記第2の変換部は、画素単位でアクセスが可能な第3メモリに書き込んだ処理ブロック分の画素を、書き込み時と異なる方向に読み出す。
In order to solve the above-mentioned problems and achieve the object, the present invention is an image processing system including an information processing device and an image processing device, and is stored in a first memory and has a first continuous address. For two-dimensional image data including a first number of lines in a second direction orthogonal to the direction of, a first vertical and horizontal unit in a first processing unit containing a second number of pixels in the first direction. A first conversion unit that performs conversion, a writing unit that writes image data that has undergone first vertical / horizontal conversion in the first conversion unit in a third direction in which the addresses of the second memory are continuous, and a second A reading unit that reads the image data written in the memory in the second processing unit including a predetermined number of the first processing units by burst access, and a second reading unit that reads the image data from the second memory by the reading unit. Corresponds to the second conversion unit that performs the second vertical / horizontal conversion on the image data of the processing unit in pixel units, and the number of pixels included in the first processing unit that can store the first number of pixels respectively. A buffer memory including the number of line memories to be used, and a buffer writing unit for writing the image data of the second processing unit subjected to the second vertical / horizontal conversion in the second conversion unit to the specified address of the line memory. The first conversion unit includes a buffer reading unit that sequentially selects one line memory from the line memory of the above and reads image data from the selected line memory, and the first conversion unit stores the image data stored in the first memory. Is read out in the second direction orthogonal to the first direction in which the addresses are continuous for each of the first processing units, thereby performing the first vertical-horizontal conversion on the image data, and then performing the first vertical-horizontal conversion. The
本発明によれば、画像データの回転処理がより高速および低コストで実現可能となるという効果を奏する。 According to the present invention, there is an effect that the rotation processing of image data can be realized at higher speed and lower cost.
以下に添付図面を参照して、画像処理システム、画像処理方法および画像処理装置、ならびに、画像形成システムの実施形態を詳細に説明する。 Hereinafter, embodiments of an image processing system, an image processing method and an image processing apparatus, and an image forming system will be described in detail with reference to the accompanying drawings.
(各実施形態に適用可能なシステムの概要)
図1は、各実施形態に適用可能な画像形成システムの一例の構成を示す。図1において、画像形成システム1は、それぞれLAN(Local Area Network)といったネットワーク2を介して接続される、プリンタ10とホストコンピュータ(ホストPC)20とを含む。画像形成装置または画像処理装置としてのプリンタ10は、ホストPC20からネットワーク2を介して送信された画像データを受信し、受信した画像データに基づき、紙などの印字媒体に対して印字を行う。
(Outline of system applicable to each embodiment)
FIG. 1 shows an example configuration of an image forming system applicable to each embodiment. In FIG. 1, the
例えば、ホストPC20は、プリンタ10の印字を制御するためのプログラムであるプリンタドライバが搭載される。ホストPC20は、例えば文書作成用アプリケーションプログラムを用いて文書データを生成し、生成された文書データをプリンタドライバに渡す。プリンタドライバは、渡された文書データからページ記述言語で記述された印刷データを生成し、生成した印刷データに従いRIP(Raster Image Process)によりラスタイメージによる画像データを生成し、生成した画像データをプリンタ10に転送する。プリンタ10は、ホストPC20から転送された画像データに従い、印字媒体に対する印字を実行する。
For example, the
なお、図1では、プリンタ10とホストPC20とがネットワーク2を介して接続されるように示したが、これはこの例に限定されない。例えば、プリンタ10とホストPC20とがUSB(Universal Serial Bus)といったシリアルインターフェイスを介して接続されていてもよい。また、プリンタ10とホストPC20との接続は、有線接続に限らず、無線通信により接続されていてもよい。
Although FIG. 1 shows that the
各実施形態に適用されるプリンタ10は、画像データに従いインクをノズルから吐出することで媒体に印字を行うインクジェットプリンタである。インクジェットプリンタは、インクを吐出するノズルが印字媒体の搬送方向である副走査方向に沿って配列されたノズル列を有するヘッド(IJヘッドと呼ぶ)を、副走査方向と直交する主走査方向に走査させて印字を行う。
The
図2は、各実施形態に適用可能なIJヘッドの構成の例を示す。図2において、IJヘッド13は、シアン、マゼンタ、イエローおよびブラックそれぞれの色のインクを吐出するノズルがYドット(Yは1以上の整数)分整列したノズル列130C、130M、130Yおよび130Kが設けられる。このIJヘッド13を、ノズル列130C、130M、130Yおよび130Kと直交する方向に移動させながら各ノズルからインクを吐出することで、Yドットの幅で纏めて印字を実行できる。IJヘッド13は、例えば電圧を加えることで変形するピエゾ素子を用いてインクの吐出を制御する。
FIG. 2 shows an example of the configuration of the IJ head applicable to each embodiment. In FIG. 2, the
なお、以下では、IJヘッド13を移動させながら各ノズル列130C、130M、130Yおよび130Kからインクを吐出する動作を、走査と呼ぶ。
In the following, the operation of ejecting ink from the
図3は、各実施形態に適用可能な、IJヘッド13による印字動作の例を示す。図3において、用紙15は、IJヘッド13による印字が行われる印字媒体である。IJヘッド13により、用紙15に対して印刷対象である画像データ30に従い印字を行う。図3の例では、用紙15は、図中に矢印で示されるように、図の下側から上側に向けた方向に搬送されるものとし、搬送方向の先頭側の端を用紙15の先端とし、搬送方向の後端側の端を用紙15の後端とする。
FIG. 3 shows an example of a printing operation by the
IJヘッド13の各ノズル列130C、130M、130Yおよび130Kが用紙15の搬送方向と並行になるように、IJヘッド13の方向を定める。用紙15を固定し、IJヘッド13を用紙の搬送方向と直交する方向に走査させることで、用紙15に対し、搬送方向と直交する方向に、搬送方向にYドット分の幅で、印字を行うことができる。
The direction of the
以下では、図3に示されるように、IJヘッド13の初期位置を用紙15の左端側とし、用紙15の左端側から右端側に向けてIJヘッド13による走査を行う経路を往路、用紙15の右端側から左端側に向けてIJヘッド13による走査を行う経路を復路と呼ぶ。
In the following, as shown in FIG. 3, the initial position of the
プリンタ10は、例えば、用紙15を固定させてIJヘッド13を往路で走査させて、画像データ30における1スキャン分の画像データ311による印字を行う。プリンタ10は、IJヘッド13による用紙15の右端側までの印字が完了すると、その位置でIJヘッド13を停止させて用紙15をYドットに対応する距離だけ搬送する。プリンタ10は、用紙15の右端側に停止されたIJヘッド13を復路で走査させて、画像データ30における1スキャン分の画像データ312による印字を行う。プリンタ10は、IJヘッド13による用紙15の左端側までの印字が完了すると、その位置でIJヘッド13を停止させて、さらに用紙15をYドットに対応する距離だけ搬送する。
The
プリンタ10は、このIJヘッド13の往路および復路の動作と、用紙15の搬送動作とを繰り返し、各スキャンによる画像データ30の各画像データ311、312、313、…、31mによる印字を順次実行する。これにより、用紙15に対して画像データ30による画像が形成される。
The
図3の例では、印刷対象となる画像データ30は、用紙15の左上隅に対応する位置を原点とし、原点から左方向(X方向とする)にX画素の幅を有し、原点から下方向(Y方向とする)にm×Yライン(mは1以上の整数)の長さ(高さ)を有するものとする。なお、ラインは、画素がX方向に1列に整列された画素列である。一例として、A4サイズの用紙15に対して、X方向に8インチ、Y方向に11インチの画像データ30による画像全体が印字可能である。
In the example of FIG. 3, the
例えば、印刷対象となる画像データ30の解像度を320ドット/インチとし、Y=320として各ノズル列130C、130M、130Yおよび130Kがそれぞれ320個のノズルを備える場合を考える。この場合、IJヘッド13の往路、復路の移動、および、用紙15の搬送を11回実行する(m=11)ことで、画像データ30による用紙15に対する印字が完了する。
For example, consider a case where the resolution of the
なお、インクの吐出に係るIJヘッド13の移動の動作を主走査と呼び、用紙15を搬送させることでIJヘッド13による印字位置を変更する動作を副走査と呼ぶ。また、IJヘッド13の移動方向に平行な方向を主走査方向、用紙15の搬送方向に平行な方向を副走査方向と呼ぶ。
The operation of moving the
上述したような、副走査方向に各ノズルが整列されたノズル列130C、130M、130Yおよび130Kを備えるIJヘッド13の主走査により印字を行う場合、画像データ30をIJヘッド13の走査方向(往路、復路)に応じた角度で回転させ画像データ30の縦横を回転させて、IJヘッド13に供給することが好ましい。
When printing is performed by the main scanning of the
図4を用いて、実施形態に適用可能な画像データ30の回転について説明する。画像データ30は、DRAM(Dynamic Random Access Memory)といったメモリに書き込まれる。IJヘッド13には、このメモリに書き込まれた画像データのうち1スキャン分の画像データが読み出されて供給される。一般的に、画像データは、メモリのアドレスが主走査方向に連続するようにメモリに書き込まれる。
The rotation of the
図4(a)は、メモリ40に画像データ30が書き込まれた様子を概略的に示す。図4(a)において、メモリ40は、アドレスad[0]、ad[1]、…、ad[k]、ad[k+1]、…として示されるように、図の左方向に向けてメモリアドレスが連続しているものとする。画像データ30は、メモリアドレスが主走査方向に連続するように、メモリ40に書き込まれる。
FIG. 4A schematically shows how the
IJヘッド13を往路にて走査させる場合、IJヘッド13に対して、図4(a)の画像データ311の左端の、副走査方向の列から画像データを供給する必要がある。一方、IJヘッド13を復路にて走査させる場合は、IJヘッド13に対して、画像データ311の右端の、副走査方向の列から画像データを供給する必要がある。
When scanning the
上述したように、IJヘッド13は、各ノズル列130C、130M、130Yおよび130Kが副走査方向に平行に配列されており、ノズル列数(この場合は4列)に対応する数のラインを、副走査方向に纏めて印字する。一方、画像データ30は、メモリアドレスが主走査方向に連続するようにメモリ40に書き込まれている。そのため、メモリ40からの、IJヘッド13に供給するための画像データ30の読み出しは、メモリ40のアドレスが不連続な方向でメモリ40にアクセスして行うことになる。
As described above, in the
DRAMなどにおいては、連続したアドレスに対するアクセスであれば、1のアドレス指定に対して、指定されたアドレスから連続する複数のアドレスから一度にデータを読み出して転送するバースト転送を利用でき、効率良くメモリアクセスを実行可能である。しかしながら、不連続なアドレスに対するアクセスの場合、バースト転送が利用できないため、メモリアクセスの効率を向上させるのが困難となる。 In DRAM and the like, for access to consecutive addresses, burst transfer can be used to read and transfer data from multiple consecutive addresses from the specified address at once for one address designation, and memory can be efficiently used. Access is feasible. However, in the case of access to discontinuous addresses, burst transfer cannot be used, which makes it difficult to improve the efficiency of memory access.
そのため、メモリ40に書き込まれた1スキャン分の画像データ311を、図4(b)および図4(c)に示されるように、IJヘッド13の走査方向(往路、復路)に応じて、右回りで90°または270°回転させてメモリ上に配置する。
Therefore, as shown in FIGS. 4 (b) and 4 (c), the image data 31 1 for one scan written in the
図4(b)は、往路の例を示している。往路の場合、メモリ40上の画像データ311に対して右回りで90°の回転を施し、第Yラインから第0ラインに向けてメモリアドレスが連続するように、画像データをメモリに書き込む。したがって、回転された画像データ311は、各ラインにおいて位置の対応する各画素が連続したメモリアドレスに書き込まれる。この連続したメモリアドレス対するアクセスにより、各画素のデータを纏めて読み出してIJヘッド13に転送することができる。
FIG. 4B shows an example of the outbound route. In the case of the outbound route, the
図4(c)は、復路の例を示している。復路の場合、メモリ40上の画像データ311に対して右回りで270°の回転を施し、第0ラインから第Yラインに向けてメモリアドレスが連続するように、画像データをメモリに書き込む。この場合も上述した270°の回転の場合と同様に、回転された画像データ311は、各ラインにおいて位置の対応する各画素が連続したメモリアドレスに書き込まれ、各画素のデータを纏めて読み出してIJヘッド13に転送することができる。
FIG. 4 (c) shows an example of the return route. In the case of the return route, the
なお、図4(b)および図4(c)何れの場合も、図中の上端の行から下端の行に向けて順次、読み出しが行われる。 In both cases of FIGS. 4B and 4C, reading is performed sequentially from the uppermost row to the lowermost row in the drawing.
(既存技術による回転処理の例)
ここで、理解を容易とするために、既存の方法による、画像データのハードウェアによる回転処理について、図5を用いて概略的に説明する。図5では、印刷対象となる画像データ30に含まれる各スキャンの画像データ311〜31mのうち1つの画像データ(画像データ31kとする)を右回りに90°回転させる場合について示している。
(Example of rotation processing by existing technology)
Here, in order to facilitate understanding, the rotation processing of the image data by the hardware by the existing method will be schematically described with reference to FIG. In Figure 5, shows the case where 90 ° rotating one image data (the
図5(a)において、画像データ31kは、図の横方向にX画素、縦方向にYラインを有する画像データが含まれる。ここで、図5(a)の画像データ31kにおいて、左上隅を原点とし、右方向に画素アドレスが増加し、下方向にラインアドレスが増加するものとする。この画像データ31kの左下から左上に向けて、矩形領域33、33、…毎に、順に画像データを読み出す。この例では、各矩形領域33は、4画素×4ラインのサイズを有する。
In FIG. 5A, the image data 31k includes image data having X pixels in the horizontal direction and Y lines in the vertical direction of the figure. Here, in the image data 31k of FIG. 5A, it is assumed that the upper left corner is the origin, the pixel address increases in the right direction, and the line address increases in the downward direction. From the lower left to the upper left of the
矩形領域33において、矢印34で示される方向に配置される各画素は、メモリ上の連続したアドレスに配置されるため、バーストアクセスが可能である。このバーストアクセスが可能な各画素を1回のアクセス単位(バーストサイズ)として各画素を読み出すことで、画像データの読み出しを行う。図5(a)の例では、1回のバーストアクセスにより4画素が読み出され、図中にアクセス順(1)〜(4)として示されるように、下から上方向への4回のバーストアクセスにより矩形領域33内の画像データの読み出しが行われる。
In the
図5(a)の例では、1回のバーストアクセスにより矩形領域33から4画素の画像データが読み出されている。メモリから読み出された画像データ31kは、図5(b)の左側に例示されるように、例えば画素単位でアクセスが可能なメモリ35に画素毎に書き込まれる。図5(b)の左側の例では、メモリ35の横1列がバーストサイズとされ、矩形領域33においてバーストアクセスされた順に、メモリ35の図中で上端から下端に向けて各画素が書き込まれる。
In the example of FIG. 5A, image data of 4 pixels is read from the
このメモリ35から画素単位で画像データを読み出して、読み出した各画素を、同様に画素単位でアクセスが可能な他のメモリ36(図5(b)右側参照)に書き込む。このとき、メモリ35から読み出した各画素を、配置位置をメモリ35における配置位置に対して右回り(時計回り)に90°回転させて縦横変換を行い、メモリ36に書き込む。例えば、図5(b)を参照し、メモリ35において上端の1行に左から右に向けて書き込まれる各画素A、B、CおよびDが、メモリ36の右端の1列に、上から下に向けて書き込まれる。
Image data is read from the
このメモリ36に書き込まれた各画素を、図5(c)に示すように、メモリ30と同様に、図の横方向にアドレスが連続するメモリ30’に書き込む。このとき、メモリ36の横方向の1行の4画素をバースト単位として、メモリ36に書き込まれた各画素を4回のバーストアクセスによりメモリ36から読み出して、矩形領域33’で示されるように、各画素をメモリ30’に書き込む。
As shown in FIG. 5C, each pixel written in the
図5(a)における1つの矩形領域33から読み出された画像データが、メモリ35および36を用いて90°回転され、図5(c)に示す矩形領域33’単位でメモリに書き込まれる。図5(a)において、画像データ31の下端から上端に向けた矩形領域33単位でのメモリからの読み出しにおいて、上端部の矩形領域33においてアクセス順(Y−3)からアクセス順Yの読み出しが行われることで、矩形領域33単位の列321での処理が完了する。列321の処理が完了すると、画像データ31kにおいて矩形領域33単位で右側に1列分移動して、次の列322において、再び下端から上端に向けてメモリからの読み出しが行われる。
The image data read from one
この画像データ31kにおける矩形領域33単位の下端から上端に向けた読み出しに応じて、メモリ30’の左端から右端に向けて、メモリ36から読み出された画像データが矩形領域33’単位で書き込まれる。図5(a)に示す、画像データ31kにおける列321のメモリからの読み出しの完了に応じて、図5(c)に示す、メモリ36から読み出された画像データの、矩形領域33’単位での行321’のメモリ30’への書き込みが完了する。画像データ31kにおいて、メモリ30からの読み出し領域の矩形領域33単位での右側への1列分の移動に応じて、メモリ30’では、矩形領域33’単位で下側に1行分移動(例えば行321’から行322’移動)して、メモリ36から読み出された画像データの書き込みが実行される。
In response to the reading from the lower end to the upper end of the
なお、270°の回転の場合は、回転の元画像データとなる画像データ31kにおいて、90°回転と逆の順序でメモリ30からの読み出しが行われる。より具体的には、画像データ31kにおける右上隅から下端に向けて矩形領域33単位でメモリ30からの読み出しを行い、1列分の処理が完了すると、左側に1列分移動して、同様に上端から下端から上端に向けて読み出しを行う。回転後のメモリ30’に対する画像データの書き込みは、上述した90°回転の場合と同様である。
In the case of rotation of 270 °, the image data 31k , which is the original image data of rotation, is read from the
ここで、メモリ読み出しに際してバーストサイズを大きくすると、転送効率を向上させることができる。しかしながら、バーストサイズを大きくすることで、1度に縦横変換を行うサイズが大きくなり、縦横変換処理に係る回路の規模が増大することになる。図5(a)〜図5(c)の例では、バーストサイズを大きくすることで、メモリ35および36の規模が増大する。
Here, if the burst size is increased when reading the memory, the transfer efficiency can be improved. However, by increasing the burst size, the size for performing the vertical / horizontal conversion at one time becomes large, and the scale of the circuit related to the vertical / horizontal conversion processing increases. In the examples of FIGS. 5A to 5C, increasing the burst size increases the scale of the
一方、バーストサイズが小さい場合、1度に縦横変換する画像データのサイズが小さくて済むため縦横変換の回路規模は小さくなるが、画像データの転送効率の向上が難しい。また、回転処理として求めるパフォーマンスがそれほど高くなかったとしても、バーストサイズが小さいアクセスを行う機能があると、他の機能のメモリアクセスの効率を向上させることが困難となる可能性がある。特に、少ないリソースで機能を実現する必要がある組み込みシステムにおいては、重要な問題となる。 On the other hand, when the burst size is small, the size of the image data to be vertically and horizontally converted at one time is small, so that the circuit scale of the vertical and horizontal conversion is small, but it is difficult to improve the transfer efficiency of the image data. Further, even if the performance required for rotation processing is not so high, it may be difficult to improve the efficiency of memory access of other functions if there is a function for performing access with a small burst size. In particular, it becomes an important problem in embedded systems that need to realize functions with a small amount of resources.
(第1の実施形態のより詳細な説明)
次に、第1の実施形態についてより詳細に説明する。図6は、第1の実施形態に適用可能なホストPC20のハードウェア構成の例を示す。図6において、ホストPC20は、CPU(Central Processing Unit)2000と、ROM(Read Only Memory)2001と、RAM(Random Access Memory)2002と、グラフィクスI/F(インタフェース)2003と、ストレージ2004と、データI/F2005と、通信I/F2006とを備え、これら各部がバス2010により互いに通信可能に接続される。
(A more detailed description of the first embodiment)
Next, the first embodiment will be described in more detail. FIG. 6 shows an example of the hardware configuration of the
ストレージ2004は、データを不揮発に記憶する記憶媒体であって、ハードディスクドライブやフラッシュメモリを適用できる。ストレージ2004は、CPU2000が動作するためのプログラムやデータが記憶される。
The
CPU2000は、例えば、ROM2001やストレージ2004に予め記憶されたプログラムに従い、RAM2002をワークメモリとして用い、このホストPC20の全体の動作を制御する。グラフィクスI/F2003は、CPU2000によりプログラムに従い生成された表示制御信号に基づき、ディスプレイ2007が対応可能な表示信号を生成する。ディスプレイ2007は、グラフィクスI/F2003から供給された表示信号に応じた画面を表示する。
The
データI/F2005は、外部の機器との間でデータの送受信を行う。データI/F2005としては、例えばUSBを適用可能である。この例では、データI/F2005に、ユーザ入力を受け付ける入力デバイスとしてキーボード2008aおよびポインティングデバイス2008bが接続されている。また、データI/F2005に通信方式に対応するケーブル2008cを接続させることで、このケーブル2008cを介した外部の機器との通信が可能となる。通信I/F2006は、CPU2000の指示に従い、ネットワーク2に対する通信を制御する。
The data I /
図7は、第1の実施形態に適用可能なプリンタ10のハードウェア構成の例を示す。図7において、プリンタ10は、コントローラ11と、印字部12と、IJヘッド13と、駆動系14aおよび14bと、DRAM(Dynamic RAM)1007と、を含む。これらのうち、駆動系14aは、モータおよび各種機構を含み、IJヘッド13を主走査方向に移動させるための駆動系である。また、駆動系14bは、モータおよび各種機構を含み、用紙15を副走査方向に移動(搬送)させるための駆動系である。IJヘッド13は、図2を用いて説明したように、副走査方向にそれぞれ320ドットのノズルが整列するノズル列130C、130M、130Yおよび130Kを含む。
FIG. 7 shows an example of the hardware configuration of the
なお、コントローラ11は、汎用のSoC(System-on-a-chip)を用いて構成することができる。また、印字部12は、汎用のSoCが持たないインクジェット方式によるプリンタ独自の機能を含むため、例えばFPGA(Field-Programmable Gate Array)を用いて構成する。
The
コントローラ11は、CPU1000と、ROM1001と、OP(オペレーションパネル)制御部1002と、OP1002aと、データI/F1003と、外部I/F1004と、メモリコントローラ(MEMC)1005と、内部I/F1006と、を含み、これら各部がバス1010により互いに通信可能に接続される。また、コントローラ11に対して、SDRAM(Synchronous Dynamic Random Access Memory)1007が接続される。
The
CPU1000は、例えば、ROM1001に予め記憶されたプログラムに従い、後述するDRAM1007をワークメモリとして用い、このプリンタ10の全体の動作を制御する。OP制御部1002は、OP1002aにプリンタ10の操作画面を表示させると共に、OP1002aに対してなされたユーザ操作を受け付ける。
The
データI/F1003は、外部の機器との間でデータの送受信を行う。データI/F1003としては、例えばUSBを適用可能である。プリンタ10は、このデータI/F1003と、上述したホストPC20のデータI/F2005とをケーブル2008cで接続することで、ホストPC20との間でデータ通信を行うことができる。外部I/F1004は、CPU1000の指示に従い、ネットワーク2に対する通信を制御する。プリンタ10は、この外部I/F1004により、ネットワーク2を介してホストPC20との間でデータ通信を行うことができる。
The data I / F 1003 transmits / receives data to / from an external device. As the data I / F1003, for example, USB can be applied. The
内部I/F1006は、コントローラ11と印字部12とを接続しコントローラ11と印字部12との間で通信を行うためのインタフェースである。内部I/F1006としては、PCIーExpress(Peripheral Component Interconnect-Express)に準じたインタフェースを適用することができる。この場合、内部I/F1006は、PCIーExpressにおけるルートコンプレックスの機能を含む。
The internal I /
MEMC1005は、SDRAM1007と接続され、SDRAM1007に対する読み書きの制御を行う。MEMC1005およびSDRAM1007は、SDRAM1007に対する1つのアドレス指定で複数のアドレスに纏めてアクセスするバーストアクセスと、バーストアクセスによるバースト転送が可能である。
The MEMC1005 is connected to the
ホストPC20から例えばネットワーク2を介して送信された画像データは、外部I/F1004により受信され、外部I/F1004からバス1010を介してMEMC1005に渡される。MEMC1005は、バス1010を介して受け取った画像データをSDRAM1007に書き込む。また、MEMC1005は、SDRAM1007から書き込まれた画像データを読み出して、バス1010を介して内部I/F1006に渡す。
The image data transmitted from the
なお、図7では、バス1010が、画像データの転送と、CPU1000に係る制御情報などの転送とで共通して用いられているが、これはこの例に限定されない。例えば、画像データが転送される画像バスと、制御情報が転送されるバスとをそれぞれ設けてもよい。
In FIG. 7, the
印字部12は、内部I/F1020と、RDMAC1021と、変換部1022と、ヘッド駆動部1023と、印字制御部1024と、を含む。内部I/F1020は、コントローラ11の内部I/F1006と接続され、印字部12とコントローラ11との間で通信を行うためのインタフェースである。内部I/F1020は、コントローラ11側の内部I/F1006がPCIーExpressによるインタフェースである場合、これに対応し、PCIーExpressにおけるエンドポイントの機能を含む。
The
RDMAC1021は、コントローラ11に接続されMEMC1005に制御されるSDRAM1007からのデータの読み出しを行うDMAC(Direct Memory Access Controller)である。
The
例えば、RDMAC1021は、内部I/F1020および1006を介して、MEMC1005に対してアドレスを指定し、指定したアドレスからのデータの読み出しを指示する。MEMC1005は、この指示に従いSDRAM1007の指定されたアドレスからデータを読み出し、読み出したデータを、内部I/F1006および1020を介してRDMAC1021に転送する。RDMAC1021は、転送されたデータを変換部1022に渡す。
For example, the
変換部1022は、詳細を後述する、第1の実施形態に係る第2の縦横変換処理を行う。変換部1022は、第2の縦横変換処理を施した画像データをヘッド駆動部1023に供給する。ヘッド駆動部1023は、変換部1022から供給された画像データに基づき、IJヘッド13のピエゾ素子を駆動するための駆動波形を生成し、IJヘッド13に供給する。
The
印字制御部1024は、例えばMPU(Micro Processing Unit)、ROM、タイミング生成器および各種のインタフェースを含み、ROMに予め記憶されるプログラムに従い、各種インタフェースを介して、ヘッド駆動部1023およびIJヘッド13、ならびに、各駆動系14aおよび14bの動作の制御を行う。例えば、印字制御部1024は、タイミング生成器により所定のタイミングを指示する各種の制御信号を生成する。印字制御部1024は、生成した各種の制御信号を、RDMAC1021、変換部1022、ヘッド駆動部1023、各駆動系14aおよび14bにそれぞれ供給し、RDMAC1021、変換部1022、ヘッド駆動部1023、各駆動系14aおよび14bの各部における処理のタイミングを制御する。
The
図8は、第1の実施形態に係る変換部1022の構成の例を示す。図8において、変換部1022は、変換メモリ1220と、変換メモリ制御部1222と、バッファメモリ1230と、バッファ制御部1231と、を含む。変換メモリ制御部1222は、変換メモリ1220に対するアクセス制御を行い、変換メモリ1220に対するデータの書き込みと、変換メモリ1220からのデータの読み出しとを制御する。バッファ制御部1231は、バッファメモリ1230に対するアクセス制御を行い、バッファメモリ1230に対するデータの書き込みと、バッファメモリ1230からのデータの読み出しとを制御する。
FIG. 8 shows an example of the configuration of the
RDMAC1021から変換部1022に渡された画像データは、変換メモリ制御部1222により、画素単位でアクセス可能な変換メモリ1220に書き込まれる。変換メモリ制御部1222は、変換メモリ1220から、所定のタイミングで画像データを読み出し、読み出した画像データをバッファ制御部1231に渡す。バッファ制御部1231は、変換メモリ制御部1222から渡された画像データを、複数のラインメモリを含むバッファメモリ1230に書き込む。バッファ制御部1231は、バッファメモリ1230の各ラインメモリから所定のタイミングで画像データを読み出し、読み出した画像データを変換部1022から出力する。
The image data passed from the
図9−1は、第1の実施形態に係るホストPC20およびプリンタ10の機能を説明するための一例の機能ブロック図である。図9−1の例は、印刷対象となる画像データ30における、IJヘッド13の往路または復路において処理対象となる1スキャン分の画像データ31kについて、横サイズがX画素、縦サイズがYライン、1画素がPビットの2次元の画像データを定義し、また、Aバイトの処理単位を定義する。Aバイト内の画素数Bは、(A×8)/Pとして求められる。なお、X、Y、P、AおよびBは、それぞれ1以上の整数である。
FIG. 9-1 is a functional block diagram of an example for explaining the functions of the
図9−1において、ホストPC20は、第1変換部200と、送信部201と、画像処理部202と、第1メモリ210とを含む。これらのうち、第1変換部200、送信部201および画像処理部202は、ホストPC20のCPU2000上で、第1の実施形態に係るプログラムが実行されることで実現される。ここで、第1変換部200、送信部201および画像処理部202を実現させるためのプログラムは、例えば、ホストPC20からプリンタ10の動作制御などを行うためのドライバプログラムに含まれる。また、第1メモリ210は、ホストPC20のRAM2002の所定領域を適用することができる。
In FIG. 9-1, the
画像処理部202は、例えばホストPC20に搭載される文書作成用アプリケーションプログラムを用いて作成された文書データが渡される。画像処理部202は、渡された文書データに基づきページ記述言語で記述された印刷データを生成し、生成した印刷データに従いRIPによりラスタイメージによる画像データを生成する。画像処理部202は、生成した画像データを、第1メモリ210に書き込む。
The
第1変換部200は、第1メモリ210に書き込まれた画像データに対して、Aバイト単位で縦横変換を行う第1の縦横変換処理を施す。送信部201は、第1変換部200により画像データに第1の縦横変換処理が施された画像データを、Aバイト単位でネットワーク2を介してプリンタ10に送信する。
The
ホストPC20における第1の実施形態に係る各機能を実現するためのプログラム(例えばドライバプログラム)は、インストール可能な形式または実行可能な形式のファイルでCD(Compact Disk)、フレキシブルディスク(FD)、DVD(Digital Versatile Disk)などのコンピュータで読み取り可能な記録媒体に記録して提供される。これに限らず、当該プログラムを、インターネットなどのネットワークに接続されたコンピュータ上に格納し、当該ネットワークを介してダウンロードさせることにより提供してもよい。また、当該プログラムをインターネットなどのネットワークを経由して提供または配布するように構成してもよい。
A program (for example, a driver program) for realizing each function according to the first embodiment on the
当該プログラムは、第1変換部200、送信部201および画像処理部202を含むモジュール構成となっている。実際のハードウェアとしては、CPU2000がストレージ2004などの記憶媒体から当該プログラムを読み出して実行することにより、上述した各部がRAM2002などの主記憶装置上にロードされ、第1変換部200、送信部201および画像処理部202が主記憶装置上に生成されるようになっている。
The program has a modular structure including a
図9−1において、プリンタ10は、受信部100と、書き込み部101と、読み出し部102と、第2変換部103と、バッファ書き込み部104と、バッファ読み出し部105と、第2メモリ110と、第3メモリ111と、バッファメモリ1230と、を含む。
In FIG. 9-1, the
受信部100は、ホストPC20から送信された画像データを受信する。書き込み部101は、受信部100で受信された画像データを、第2メモリ110の連続したアドレスに順次書き込む。読み出し部102は、第2メモリ110に書き込まれた画像データをバーストアクセスにより読み出す。なお、書き込み部101および読み出し部102は、図7のMEMC1005に対応し、第2メモリ110は、図7に示したSDRAM1007の所定の記憶領域を適用することができる。
The receiving
第2変換部103は、読み出し部102に対して、第2メモリ110からの第2変換部103の処理ブロック分の画像データの読み出しを要求する。第2変換部103における処理ブロックは、Aバイト分の画素×B画素によるブロックである。この例では、AバイトがB個の画素を含むため、処理ブロックは、B画素×Bライン(B画素×B画素)からなるブロックとなる。読み出し部102は、この要求に応じて、第2メモリ110から当該処理ブロック分の画像データを読み出して第2変換部103に渡す。
The
第2変換部103は、読み出し部102から渡された処理ブロック分の画像データを画素単位で第3メモリ111に書き込む。なお、第2変換部103は、図8の変換メモリ制御部1222に対応し、第3メモリ111は、図8を用いて説明した変換メモリ1220に対応する。第2変換部103は、処理ブロック分の画像データが第3メモリ111に書き込まれると、書き込まれた画像データを画素単位で読み出して出力する。
The
このとき、第2変換部103は、第3メモリに書き込まれた画像データを、各画素の書き込み順の方向に対して90°または270°回転させた方向に従い画素単位で読み出す。これにより、第2変換部103は、処理ブロック内で、画像データに対して画素単位で第2の縦横変換処理を施す。第2変換部103は、第2の縦横変換処理により縦横変換された画像データを出力する。
At this time, the
より具体的には、第2変換部103は、読み出し部102から渡された画像データを、第3メモリ111に対し、画素単位で、第3メモリ111の左端から右端の方向に向けた行方向に書き込む。ここで、第2変換部103は、元データである画像データ30の各ラインの、ライン方向(横方向)の画素位置の一致する各画素が、第3メモリ111の縦方向すなわち列方向で揃うように、画像データの書き込みを行う。そして、第2変換部103は、第3メモリ111から、画像データを列毎に読み出す。
More specifically, the
バッファ書き込み部104は、第2変換部103から出力された画像データをバッファメモリ1230に書き込む。バッファメモリ1230は、複数本(B本=(A×8)/P本)のラインメモリを含む。各ラインメモリは、バッファ番号BNUM「0」〜「B−1」が割り当てられる。バッファメモリ1230に含まれる各ラインメモリは、Aバイト単位で(Y/B)の深さのサイズ、すなわち、(Y/B)×Aバイトのサイズを有する。バッファメモリ1230は、この深さに応じてアドレスADが指定される。すなわち、バッファメモリ1230に対するアクセスは、アドレスADと、バッファ番号BNUMと、を指定して行われる。バッファ読み出し部105は、バッファメモリ1230から画像データを読み出して出力する。
The
このように、バッファ書き込み部104およびバッファ読み出し部105は、図8を用いて説明したバッファ制御部1231に含まれる機能である。
As described above, the
バッファ読み出し部105から出力された画像データは、ヘッド駆動部1023に渡される。
The image data output from the
図9−2は、上述の図9−1の例に対して具体的な数値を導入した例を示す。図9−2の例では、1スキャン分の画像データ31kの縦サイズがY=320ライン、1画素が2ビット(P=2)、第1変換部200における処理単位を4バイト(A=4)とする。また、上述した1画素が2ビットであるので、Aバイト(=4バイト)内の画素数Bは、B=(4×8)/2=16個となる。
FIG. 9-2 shows an example in which specific numerical values are introduced with respect to the above-mentioned example of FIG. 9-1. In the example of FIG. 9-2, the vertical size of the image data 31 k for one scan is Y = 320 lines, one pixel is 2 bits (P = 2), and the processing unit in the
なお、画像データ31kの横方向のサイズ(X画素)は、特に限定されないが、横サイズが4バイト単位のバイトバウンダリではない場合は、画像データ31kの各ラインの後端に無効画素を付加して横方向のサイズが4バイト単位のバイトバウンダリになるよう、調整する。以下では、無効画素数Z=13であるものとする。
The horizontal size (X pixels) of the
図9−2の例では、第1メモリ210は、少なくともX画素×320ラインのサイズを持つ画像データ30が格納される。第1変換部200は、この第1メモリ210に格納される画像データ30のX画素×320ラインの画像データ31k毎に、4バイトを処理単位として処理を行う。また、第3メモリ111は、16画素×16ラインの画像データを画素単位で書込み可能であり、第2変換部103は、これに対応し、16画素×16ライン(16画素×16画素)の処理ブロック内で画像データの縦横変換を行う。
In the example of FIG. 9-2, the
また、バファメモリ112は、B本=16本のラインメモリを含み、各ラインメモリは、バッファ番号BNUM「0」〜「15」が割り当てられる。また、各ラインメモリは、4バイト単位で320/16=20の深さのサイズ、すなわち、4バイト×20=640ビットのサイズを持ち、1画素が2ビットであるので、1のラインメモリに対して320画素を書き込み可能である。さらに、各ラインメモリの深さ=20であることから、バッファメモリ1230は、深さ方向にアドレスAD「0」〜「19」を持つ。
Further, the buffer memory 112 includes B lines = 16 line memories, and buffer numbers BNUM "0" to "15" are assigned to each line memory. Further, each line memory has a depth size of 320/16 = 20 in 4-byte units, that is, a size of 4 bytes × 20 = 640 bits, and one pixel is 2 bits, so that one line memory can be used. On the other hand, 320 pixels can be written. Further, since the depth of each line memory is 20, the
(第1の実施形態に係る処理の詳細)
次に、第1の実施形態に係る処理について、より詳細に説明する。なお、第1変換部200の処理対象となる、1スキャン分の画像データ31kのサイズ、第1の変換部200の処理単位、第3メモリ111のサイズ、第2変換部103による処理の処理単位である処理ブロックのサイズ、バッファメモリ1230に関する各値は、それぞれ、上述した図9−2に示した値であるものとする。
(Details of processing according to the first embodiment)
Next, the process according to the first embodiment will be described in more detail. Incidentally, be processed by the
(第1の実施形態に係る、IJヘッドの往路における90°回転処理)
先ず、図10−1〜図10−6、および、図11を用いて、第1の実施形態に係る、IJヘッド13の往路における90°回転処理について説明する。図10−1は、印刷対象の画像データ30における、1スキャン分の画像データ31kが第1メモリ210に書き込まれた様子を模式的に示す。画像データ31kは、第1メモリ210のアドレスが連続する横方向をX方向とし、縦方向をY方向として第1メモリ210上に配置される。
(90 ° rotation processing on the outward path of the IJ head according to the first embodiment)
First, the 90 ° rotation process on the outward path of the
図10−1(c)において、画像データ31kは、縦方向がライン毎に区切られ、横方向が、第1変換部200による処理単位である4バイトのバイトバウンダリに区切られて示されている。各区画のデータは、ライン位置を値p、横方向の処理単位毎の位置を値q(p,qは整数:0≦p≦319,0≦q≦n)として、それぞれ第1メモリ210上でのアドレス「pLーqW」が割り当てられている。
In FIG. 10-1 (c), the
なお、ライン位置および横方向の処理単位の位置は、図において第1メモリ210の左上隅を原点とし、ライン位置は原点から下方向に向けて増加し、処理単位の位置は原点から右方向に向けて増加するものとする。これは、以降の同様な表記について共通である。また、以下では、特に記載の無い限り、『第1メモリ210上でのアドレス「pLーqW」の画像データ』、をデータ「pLーqW」として説明を行う。
The line position and the position of the processing unit in the horizontal direction have the origin at the upper left corner of the
また、画像データ31kにおいて、縦方向のサイズは上述したように320ラインであり、横方向のサイズであるX画素は、n個(nは1以上の整数)の処理単位が含まれるサイズを有する。したがって、データ「0L−0W」、「319L−0W」、「0L−nW」および「319L−nW」が、それぞれ、画像データ31kの左上隅、左下隅、右上隅および右下隅における、第1変換部200による処理単位とされる。
Further, in the
さらに、図10−1(c)に示す画像データ31kにおいて、縦方向に連続する処理単位が「列」を形成する。例えば、各データ「pL−qW」において、値qが等しい各画像データにより、1つの列が形成される。
Further, in the
図10−1(a)は、画像データ31kの第1ライン目(p=0)の先頭側(左端側、q=0)のデータ「0L−0W」の構成例を示す。この例では、処理単位が4バイト、1画素が2ビットであるので、データ「0L−0W」は、4バイト/2ビット=16個の画素を含む。また、この例では、各画素は、左端側から右端側に向けて、データ「0L−0W」内での位置に対応する#0〜#15の各番号を与えられて示されている。この、データ「0L−0W」の構成は、画像データ31kに含まれる全てのデータ「pLーqW」に共通である。
FIG. 10-1 (a) shows a configuration example of the data “0L-0W” on the head side (left end side, q = 0) of the first line (p = 0) of the image data 31 k. In this example, since the processing unit is 4 bytes and 1 pixel is 2 bits, the data "0L-0W" includes 4 bytes / 2 bits = 16 pixels. Further, in this example, each pixel is given a number of # 0 to # 15 corresponding to the position in the data "0L-0W" from the left end side to the right end side. This configuration of the data "0L-0 W" is common to all data included in the
図10−1(b)は、画像データ31kの第1ライン目の後端側(右端側、q=n)のデータ「0L−nW」の構成例を示す。上述したように、画像データ31kにZ個の無効画素が存在すると見做される場合、このZ個の無効画素は、画像データ31kの各ラインの後端側に配置される。この例では、Z=13とされて13個の無効画素が存在し、図10−1(b)において、この13個の無効画素が色を変えて示されている。この13個の無効画素が含まれる構成は、画像データ31kの各ラインの後端の各データ「pLーnW」について共通である。
FIG. 10-1 (b) shows a configuration example of the data "0L-nW" on the rear end side (right end side, q = n) of the first line of the image data 31 k. As described above, when it is considered that Z invalid pixels exist in the image data 31 k , the Z invalid pixels are arranged on the rear end side of each line of the image data 31 k. In this example, Z = 13 and 13 invalid pixels exist, and in FIG. 10-1 (b), these 13 invalid pixels are shown in different colors. Configuration included the 13 amino invalid pixels are common for each data of the rear end of each line of the
第1変換部200は、第1メモリ210から画像データ31kを読み出す処理を、処理単位すなわちデータ「pLーqW」毎に行う。また、90°回転の場合、第1変換部200は、画像データ31kの下端から上端に向けて、データ「pLーqW」を順次、第1メモリ210から読み出す。より具体的には、第1変換部200は、先ず、画像データ31kの左下隅のデータ「319L−0W」を読み出し、次にデータ「318Lー0W」を読み出す。以降、第1変換部200は、図中に矢印Aで示されるように、この列の上端のデータ「0L−0W」まで、順次、各データ「pL−qW」を読み出す。
The
このように、第1変換部200は、第1メモリ210に書き込まれた画像データ31kを、処理単位すなわちデータ「pLーqW」毎に、アドレスが連続する方向と直交する方向に向けて読み出すことで、画像データ31kに対して第1の縦横変換処理を行う。
Thus, the
第1変換部200は、第1メモリ210からの1列分のデータ「319L−0W」〜「0L−0W」」の読み出しを完了すると、読み出し位置を処理単位分(Aバイト=4バイト)分右に移動させ、下端から上端に向けて、各データ「319Lー1W」〜「0L−1W」の読み出しを実行する。第1変換部200は、この処理を、画像データ31kの右端の列(データ「319L−nW」〜「0L−nW」)の読み出しが完了するまで繰り返す。
When the
第1変換部200は、例えば処理単位のデータ「pL−qW」を読み出す毎に、読み出したデータ「pL−qW」を、送信部201によりプリンタ10に送信する。この処理単位のデータ「pL−qW」は、プリンタ10において受信部100に受信され、書き込み部101に渡される。書き込み部101は、渡されたデータ「pL−qW」を、第2メモリ110の連続するアドレスに順次書き込む。
For example, every time the data "pL-qW" of the processing unit is read, the
図10−2は、書き込み部101により第2メモリ110に各データ「pL−qW」が書き込まれた様子を模式的に示す。第2メモリ110は、図において右方向にアドレスが連続する。書き込み部101は、ホストPC20から送信されたデータ「pL−qW」を、受信順に、図中に矢印Bで示されるように、第2メモリ110の左上隅からアドレスが連続する方向に順次書き込んでいく。
FIG. 10-2 schematically shows how each data “pL−qW” is written to the
より具体的には、書き込み部101は、画像データ31kについて最初に受信したデータ「319L−0W」を第2メモリ110の左上隅に書き込み、次に受信したデータ「318L−0W」を、先に書き込んだデータ「319L−0W」の右隣に書き込む。この処理を、第1変換部200による、図10−1(c)に示す画像データ31kの1列分の読み出しが完了するまで繰り返す。図10−2の例では、第1変換部200が画像データ31kの左端の列の上端から読み出したデータ「0L−0W」が第2メモリ110の右端に書き込まれている。
More specifically, the
書き込み部101は、ホストPC20から送信された、第1メモリ210の1列分のデータ「pL−0W」の第2メモリ110への書き込みが完了すると、第1メモリ210の次の列のデータ「pLー1W」を、第2メモリ110の次のラインに、左端側から、連続するアドレスに順次書き込んでいく。
When the
第1変換部200による、画像データ31kの右端の列(データ「319L−nW」〜「0L−nW」)の読み出しに応じて、書き込み部101により、このデータ「319L−nW」〜「0L−nW」が第2メモリ110に書き込まれる。ここで、第1メモリ210には、処理単位のデータ「pL−qW」が縦方向に連続する列が、(X/4バイト)本、すなわち、(X画素/16画素)本、含まれる。したがって、第1メモリ210上の画像データ31kの全てのデータ「pL−qW」が第2メモリ110に書き込まれた場合、第2メモリ110には、処理単位のデータ「pL−qW」によるラインが(X画素/16画素)本、書き込まれることになる。
According to a
第2メモリ110に書き込まれた各データ「pL−qW」は、読み出し部102に読み出されて第2変換部103に渡される。より具体的には、読み出し部102は、第2メモリ110上の各データ「pL−qW」を、右上のデータ「319L−0W」からバーストアクセスにより順次読み出し、第2変換部103の処理ブロック分のデータ「pL−qW」を第2変換部103に渡す。
Each data "pL-qW" written in the
上述したように、第2変換部103が処理対象とする処理ブロックは、Aバイト×Bライン、すなわち、第1変換部200による処理単位の16個分のデータを含むブロックである。図10−1(c)および図10−2において、第1メモリ210から最初に読み出された、1つの処理ブロックに相当する16個のデータ「319L−0W」〜「304L−0W」を、実線太枠により示している。読み出し部101は、これらデータ「319L−0W」〜「304L−0W」をバーストアクセスにより読み出して、第2変換部103に渡す。
As described above, the processing block to be processed by the
ここで、第2メモリ110において、各データ「pL−qW」は、第1メモリ210の各データ「pL−qW」の1列毎に、アドレスが連続する方向に順次書き込まれている。そのため、読み出し部102は、第1メモリ210における1列分のデータ「pL−qW」を、バーストアクセスを用いて読み出すことができる。一例として、処理ブロック単位でバースト転送を行う場合、Aバイト×Bライン=4バイト×16=64バイトなので、64ビットバスの場合、8バースト転送となる。
Here, in the
第2変換部103は、読み出し部102から渡された処理ブロック分のデータ「pL−qW」を第3メモリ111に書き込む。第3メモリ111は、画素単位で画像データの記憶が可能な複数の記憶領域を含む。第2変換部103は、各データ「pL−qW」に含まれる各画素を、第3メモリ111の各記憶領域に書き込む。
The
図10−3は、読み出し部102から渡された、第1メモリ210から最初に読み出された処理ブロックに相当する各データ「319L−0W」〜「304L−0W」が第3メモリ111に書き込まれた様子を模式的に示す。
In FIG. 10-3, the data “319L-0W” to “304L-0W” corresponding to the processing block first read from the
図10−3の例では、第3メモリ111は、第2変換部103の処理ブロックに対応して、横方向に16画素(Aバイト)、縦方向に16ライン(Bライン)のサイズを有し、画素単位でアクセスが可能な16×16個の記憶領域1110、1110、…を含む。第3メモリ111は、例えば、図10−3のマトリクスの横方向(行)における位置と、縦方向(列)における位置と、を指定することで、各記憶領域1110、1110、…のうち指定された記憶領域1110にアクセスできる。このようなメモリは、例えばFF(Flip-Flop)を用いて構成することができる。
In the example of FIG. 10-3, the
第2変換部103は、読み出し部102から渡された各データ「319L−0W」〜「304L−0W」を、第2メモリ110における配置順に従い、第3メモリ111における各記憶領域1110、1110、…によるマトリクスの上端の行から順に書き込む。
The
より具体的には、第2変換部103は、第2メモリ110において第1ライン目の先頭に配置されたデータ「319L−0W」に含まれる各画素#0〜#15(図10−1(a)参照)を、第3メモリ111の上端の行である1行目の各記憶領域1110、1110、…にそれぞれ書き込む。また、第2変換部103は、第2メモリ110においてデータ「319L−0W」の隣に配置されたデータ「318L−0W」に含まれる各画素#0〜#15を、第3メモリ111の2行目の各記憶領域1110、1110、…にそれぞれ書き込む。
More specifically, the
以降、第2変換部103は、読み出し部102から渡された各データ「pL−qW」に含まれる各画素#0〜#15を、第3メモリ111の各行における各記憶領域1110に、それぞれ書き込む。第2変換部103は、この処理を、読み出し部102から渡された処理ブロックのデータ「304L−0W」に含まれる各画素#0〜#15の、第3メモリ111の下端の行の各記憶領域1110、1110、…に対する書き込みが完了するまで繰り返す。
After that, the
このように、第2変換部103により、処理ブロックの各データ「pL−qW」にそれぞれ含まれる各画素#0〜#15が、第3メモリ111の各行の各記憶領域1110に書き込まれる。これにより、各データ「pL−qW」内で位置が対応する各画素が、第3メモリ111における、当該位置に対応する列の記憶領域1110、1110、…に整列して書き込まれる。図10−3の例では、第3メモリ111の左端の1列に、各データ「319L−0W」〜「304L−0W」における16個の画素#0がそれぞれ書き込まれる。この列の右隣の列は、各データ「319L−0W」〜「304L−0W」における16個の画素#1がそれぞれ書き込まれる。
In this way, the
以降、第3メモリ111の、各データ「pL−qW」の画素#nが書き込まれる列を、「画素#nの列」などと呼ぶ。
Hereinafter, the column in which the pixel # n of each data “pL−qW” is written in the
1つの処理ブロック分のデータの第3メモリ111に対する書き込みが完了すると、第2変換部103は、第3メモリ111から、書き込まれた各画素を読み出してバッファ書き込み部104に渡す。ここで、第2変換部103は、第3メモリ111から列毎に画素を読み出してバッファ書き込み部104に渡す。第2の変換部103が第3メモリ111に行方向に書き込まれた各画素を列方向に読み出すことで、画像データの縦横が画素単位で変換される(第2の縦横変換処理)。
When the writing of the data for one processing block to the
図10−4は、バッファメモリ1230にデータ「319L−0W」〜「0L−0W」が書き込まれた様子を模式的に示す。図10−4の例では、バッファメモリ1230は、それぞれ4バイト(=Aバイト)単位で深さ20(=Y/B)のサイズを持つ、16本(B本)のラインメモリ1120、1120、…を含む。各ラインメモリ1120、1120、…は、それぞれバッファ番号BNUM「0」〜「15」が与えられている。
FIG. 10-4 schematically shows how the data “319L-0W” to “0L-0W” are written in the
また、バッファメモリ1230は、深さ方向(図の横方向)に、深さに応じたアドレスAD「0」〜「19」を持つ。バッファメモリ1230の1つのアドレスADは、第2変換部103の処理ブロック分、すなわち、第3メモリ111に記憶される全画素の書き込みが可能である。図10−3および図10−4の例では、図10−3に示される第3メモリ111に書き込まれる全データ「319L−0W」〜「304L−0W」が、バッファメモリ1230において、図10−4に実線太枠および色を変えて示す、4バイト幅の1列に書き込まれる。
Further, the
バッファ書き込み部104は、深さ方向のアドレスADを指定し、第2変換部103から渡された第3メモリ111の各列の画素を、16本のラインメモリ1120、1120、…それぞれのアドレスADに示される位置に書き込む。このとき、バッファ書き込み部104は、第3メモリ111の各列の画素を、その列の各データ「pL−qW」内での画素位置に対応するバッファ番号BNUMのラインメモリ1120の、指定されたアドレスADに書き込む。
The
一例として、第1メモリ210の左下隅のデータ「319L−0W」を含む処理ブロックであるデータ「319L−0W」〜「304L−0W」をバッファメモリ1230に書き込む場合を考える。この場合、バッファ書き込み部104は、バッファメモリ1230のアドレスAD「0」を指定する。さらに、バッファ書き込み部104は、図10−3に示される、第3メモリ111における画素#0の列(左端の列)から読み出された16個の画素を書き込むためのバッファ番号BNUMとして、バッファ番号BNUM「0」を指定する。
As an example, consider a case where data "319L-0W" to "304L-0W", which are processing blocks including the data "319L-0W" in the lower left corner of the
バッファ書き込み部104は、バッファ番号BNUM「0」で指定されるラインメモリ1120の、指定されたアドレスAD「0」の位置に、第2変換部103から渡された、各データ「319L−0W」〜「304L−0W」の画素#0を、各データ「319L−0W」〜「304L−0W」のライン番号の降順に、左詰めで書き込んでいく。すなわち、図10−4に点線太枠および色を変えて示す各L画素#0の領域において、左端にデータ「319L−0W」の画素#0が書き込まれ、その右隣にデータ「318L−0W」の画素#0が書き込まれる。当該領域の右端には、データ「304L−0W」の画素#0が書き込まれる。
The
バッファ書き込み部104は、同様にして、第2変換部103から渡された、第3メモリ111の画素#1の列、画素#2の列、…、画素#15の列の各画素を、バッファメモリ1230のバッファ番号BNUM「1」〜「15」でそれぞれ指定される各ラインメモリ1120の、アドレスAD「0」で指定される位置に書き込む。バッファ書き込み部104は、アドレスAD「0」に対する書き込みが完了すると、その旨を第2変換部103に通知する。
Similarly, the
第2変換部103は、バッファ書き込み部104から、アドレスAD「0」に対する書き込み完了の通知を受け取ると、読み出し部102に対して、第2メモリ110からの次の処理ブロック分のデータの読み出しを要求する。読み出し部102は、この要求に応じて第2メモリ110から次の処理ブロック分のデータ(例えばデータ「303L−0W」〜「288L−0W」)を読み出し、第2変換部103に渡す。
When the
第2変換部103は、読み出し部102から渡されたデータを、上述したようにして、画素単位で第3メモリ111に書き込む。第2変換部103は、処理ブロック分の画像データの第3メモリ111への書き込みが完了すると、第3メモリ111に書き込まれた各画素を列毎に読み出して、バッファ書き込み部104に渡す。バッファ書き込み部104は、バッファメモリ1230に対してアドレスADを昇順に指定する。バッファ書き込み部104は、第2変換部103から渡された第3メモリ111の画素#0〜#15の各列の各画素を、バッファメモリ1230のバッファ番号BNUM「0」〜「15」でそれぞれ指定される各ラインメモリ1120の、アドレスAD「1」で指定される位置に書き込む。バッファ書き込み部104は、アドレスAD「1」に対する書き込みが完了すると、その旨を第2変換部103に通知する。
The
このような、第2変換部103から読み出し部102への処理ブロック分の画像データの読み出しの要求から、バッファ書き込み部104による、当該要求に応じて取得した処理ブロック分の各画素データのバッファメモリ1230への書き込みの処理を、Y/B回、すなわち20回繰り返す。これにより、第1メモリ210上の1スキャン分の画像データ31kにおける、先頭の1列分の画像データがバッファメモリ1230に書き込まれることになる。
From such a request for reading the image data of the processing block from the
ここで、第1メモリ210上の画像データ31kの各ラインにおける、ライン上での位置が対応する320個の画素が、バッファメモリ1230の各ラインメモリ1120にそれぞれ書き込まれている。例えば、各ライン上の左端の320個の各画素#0がバッファ番号BNUM「0」のラインメモリ1120に書き込まれ、次の320個の各画素#1がバッファ番号BNUM「1」のラインメモリ1120に書き込まれる。
Here, in each line of the
バッファ読み出し部105は、図10−4の矢印Cとして示されるように、各ラインメモリ1120をバッファ番号BNUMの昇順に従い順次指定する。バッファ読み出し部105は、指定されたバッファ番号BNUMのラインメモリ1120に対して、バッファメモリ1230のアドレスを示すアドレスADを昇順に指定し、当該ラインメモリ1120からアドレスADに従い画素を読み出す。バッファ読み出し部105は、読み出した各画素を、ヘッド駆動部1023を介して、IJヘッド13の各ノズル列130C、130M、130Yおよび130Kに、指定されたラインメモリ1120毎に供給する。
The
例えば、ヘッド駆動部1023は、バッファ番号BNUM「0」のラインメモリ1120から読み出した320個の画素に基づき、ノズル列130Cの各ノズルを駆動する。同様に、ヘッド駆動部1023は、バッファ番号BNUM「1」のラインメモリ1120から読み出した320個の画素に基づき、ノズル列130Mの各ノズルを駆動する。
For example, the
バッファメモリ1230に書き込まれた全ての画素データの読み出しが完了すると、第1メモリ210上の1スキャン分の画像データ31kにおける、次の1列分(例えばデータ「0L−1W」、「1L−1W」、…の列)の画像データをバッファメモリ1230に書き込む処理が行われる。
When the reading of all the pixel data written in the
図10−1〜図10−4を用いて説明した処理を行うことで、図4(a)および図4(c)を用いて説明した、IJヘッド13の往路における、1スキャン分の画像データ311の90°回転が実現できる。
By performing the processing described with reference to FIGS. 10-1 to 10-4, the image data for one scan in the outward path of the
第1の実施形態では、この回転処理を、第1メモリ210に書き込まれる1スキャン分の画像データ31kの、アドレスが連続する方向と直交する方向へのバイトバウンダリの処理単位での読み出しと、画素単位でアクセスが可能な第3メモリ111に書き込まれた処理ブロック分の画素を、書き込み時と異なる方向に読み出す処理とを組み合わせて行っている。そのため、画像データ31kの90°の回転処理において、効率良くメモリアクセスを実行でき、回転処理を高速化が可能である。
In the first embodiment, this rotation process is performed by reading the
第1の実施形態では、第3メモリ111から画像データ31kにおける各ラインの画素位置を合わせて読み出した各画素を、バッファメモリ1230が有するラインメモリ1120に書き込み、ラインメモリ1120から読み出した画素を、IJヘッド13を駆動するヘッド駆動部1023に渡している。そのため、画像データ31kの90°の回転処理において、回転処理後の画像データを書き込むフレームメモリが不要である。
In the first embodiment, each pixel is read in conjunction pixel positions of each line in the
さらに、第1の実施形態では、第1メモリ210に対するアクセスに、矩形アクセスを行うDMACを用いていないため、コストを削減することが可能である。さらにまた、矩形アクセスを行うDMACを用いる際の、回転後のフレームメモリも不要である。
Further, in the first embodiment, since the DMAC that performs rectangular access is not used for the access to the
なお、上述の、第1メモリ210上の画像データ31kに対する列毎の処理は、例えば、印字制御部1024が、RDMAC1021による読み出し処理、変換部1022による第2の変換処理、ヘッド駆動部1023によるIJヘッド13の駆動処理、駆動系14aおよび14bによる各機構の駆動処理を適切にタイミング制御することで実現できる。
Incidentally, the above-described processing for each column with respect to the
次に、第1の実施形態に係る無効画素の処理について説明する。上述したように、画像データ31kの横方向のサイズが4バイト単位のバイトバウンダリではない場合、図10−1(b)に示したように、画像データ31kの各ラインの後端にZ個(Z=13とする)の無効画素を付加する。この場合、画像データ31kの各ラインの後端を含む列の各データ「0L−nW」〜「319L−nW」については、第3メモリ111から読み出した各画素をバッファメモリ1230に書き込む際に、無効画素を考慮した処理が行われる。
Next, the processing of invalid pixels according to the first embodiment will be described. As described above, when the horizontal size of the image data 31 k is not a 4-byte unit byte boundary, Z is formed at the rear end of each line of the image data 31 k as shown in FIG. 10-1 (b). Add the number of invalid pixels (Z = 13). In this case, the data "0L-nW '~ of the column that contains the rear end of each line of the
図10−5は、読み出し部102から渡された、第1メモリ210から最後に読み出された、第2変換部103の処理ブロックに相当する各データ「15L−nW」〜「0L−nW」が第3メモリ111に書き込まれた様子を模式的に示す。なお、図10−1(c)においては右上、図10−2においては右下にそれぞれ点線太枠で示した範囲に含まれるデータが、図10−5に示される各データ「15L−nW」〜「0L−nW」に対応する。
FIG. 10-5 shows the data “15L-nW” to “0L-nW” that correspond to the processing block of the
図10−5に色を変えて示されるように、第3メモリ111の右端からZ列(13列)が、無効画素が書き込まれる領域となる。図10−6は、第3メモリ111から読み出された各画素がバッファメモリ1230の各ラインメモリ1120、1120、…に書き込まれた様子を模式的に示す。この場合、バッファ番号BNUM「3」〜「15」で指定されるZ本(13本)の各ラインメモリ1120、1120、…に無効画素が書き込まれる(図中に点線太枠、色を変えて示す)。
As shown in different colors in FIG. 10-5, the Z column (13 columns) from the right end of the
バッファ読み出し部105は、各ラインメモリ1120、1120、…からの画素の読み出しの際に、これら無効画素が書き込まれる各ラインメモリ1120のバッファ番号BNUM「3」〜「15」を指定しない。すなわち、バッファ読み出し部105は、第1変換部200の処理単位のAバイトに含まれる画素数Bから無効画素数Zを減じた値(B−Z)に応じて、バッファ番号BNUM「0」〜「2」の各ラインメモリ1120から画素を読み出す。
The
図11は、第1の実施形態に係る、IJヘッド13の往路における90°回転処理を示す一例のフローチャートである。なお、ここでは、バッファメモリ1230のアドレスADについて、バッファ書き込み部104がバッファメモリ1230への書き込みの際に用いるアドレスADを、書き込みアドレスWADRとする。また、バッファ読み出し部105がバッファメモリ1230からの読み出しの際に用いるアドレスADを、読み出しアドレスRADRとする。
FIG. 11 is a flowchart of an example showing the 90 ° rotation process in the outward path of the
ステップS100で、第1変換部200は、第1メモリ210に書き込まれた、1スキャン分の画像データ31kに対して第1の縦横変換処理を施す。すなわち、図10−1(c)を用いて説明したように、第1変換部200は、第1メモリ210に書き込まれた1スキャン分の画像データ31kを、Aバイトの処理単位(データ「pL−qW」)毎に、アドレスが連続する方向と直交する方向に向けて読み出す。第1変換部200により第1メモリから読み出されたデータ「pL−qW」は、ホストPC20からプリンタ10に送信され、書き込み部101により、第2メモリ110の連続するアドレスに順次書き込まれる。
In step S100, the
次のステップS101で、第1変換部200は、第1メモリ210からの1列分(Aバイト×Yライン)の処理が完了したか否かを判定する。第1変換部200は、1列分の処理が完了していないと判定した場合(ステップS101、「No」)、処理をステップS100に戻す。一方、第1変換部200は、1列分の処理が完了したと判定した場合(ステップS101、「Yes」)、処理をステップS102に移行させる。
In the next step S101, the
ステップS102で、バッファ書き込み部104は、書き込みアドレスWADRの値を「値0」に初期化する。例えば、バッファ書き込み部104は、バッファメモリ1230の書き込みアドレスWADRを指定する書き込みアドレスカウンタを含み、ステップS102で、この書き込みアドレスカウンタの値を初期化する。次のステップS103で、読み出し部102は、第2メモリ110から、第2変換部103の処理ブロック分のデータを読み出し、読み出したデータを第2変換部103に入力する。
In step S102, the
次のステップS104で、第2変換部103は、読み出し部102から渡された処理ブロック分のデータに対して第2の縦横変換処理を施す。すなわち、図10−3を用いて説明したように、第2変換部103は、読み出し部102から渡された処理ブロック分のデータを、画素単位でアクセス可能な第3メモリ111に対し、行方向に従い書き込む。第2変換部103は、第3メモリ111に書き込まれたデータを、列方向に従い画素単位で読み出し、処理ブロック分のデータの画素単位での縦横変換を行う。第2変換部103は、第3メモリ111から読み出した各列のデータを、バッファ書き込み部104に渡す。
In the next step S104, the
次のステップS105で、バッファ書き込み部104は、第2変換部103から渡されたデータを、バッファメモリ1230が含む各ラインメモリ1120に書き込む。より具体的には、バッファ書き込み部104は、第2変換部103から渡された第3メモリ111の画素#0〜#15の各列のデータを、書き込みアドレスWADRに従い、バッファメモリ1230に含まれる、画素#0〜#15に応じて指定されたバッファ番号BNUM「0」〜「15」のラインメモリ1120、1120、…に書き込む。
In the next step S105, the
バッファ書き込み部104は、第3メモリ111から読み出された処理ブロック分のデータのバッファメモリ1230への書き込みが完了すると、処理をステップS106に移行させる。バッファ書き込み部104は、ステップS106で、アドレスWADRの値を「1」だけインクリメントする。
When the
次のステップS107で、バッファ書き込み部104は、ステップS103〜ステップS106の処理がバッファメモリ1230の深さ分、すなわち、Y/B回繰り返されたか否かを判定する。バッファ書き込み部104は、繰り返されていないと判定した場合(ステップS107、「No」)、処理をステップS103に戻す。一方、バッファ書き込み部104は、処理がY/B回繰り返されたと判定した場合(ステップS107、「Yes」)、処理をステップS108に移行させる。
In the next step S107, the
ステップS108で、バッファ読み出し部105は、読み出しアドレスRADRの値を値「0」に初期化する。例えば、バッファ読み出し部105は、バッファメモリ1230の読み出しアドレスRADRの値を指定する読み出しアドレスカウンタを含み、ステップS108で、この読み出しアドレスカウンタの値を初期化する。次のステップS109で、バッファ読み出し部105は、バッファ番号BNUMを「0」に初期化する。
In step S108, the buffer read
次のステップS110で、バッファ読み出し部105は、バッファメモリ1230に対して読み出しアドレスRADRと、バッファ番号BNUMとを指定する。バッファ読み出し部105は、バッファメモリ1230に含まれる各ラインメモリ1120のうち、バッファ番号BNUMで指定されるラインメモリ1120の、読み出しアドレスRADRで指定する位置からデータを読み出す。
In the next step S110, the
次のステップS111で、バッファ読み出し部105は、読み出しアドレスRADRを1だけインクリメントする。次のステップS112で、バッファ読み出し部105は、読み出しアドレスRADRの値が値「Y/B−1」と一致するか否か、換言すれば、読み出しアドレスRADRがバッファメモリ1230の深さ方向の最大のアドレスを示しているか否かを判定する。バッファ読み出し部105は、読み出しアドレスRADRの値が値「Y/B−1」と一致しないと判定した場合(ステップS112、「No」)、処理をステップS110に戻す。一方、バッファ読み出し部105は、読み出しアドレスRADRの値が値「Y/B−1」と一致すると判定した場合(ステップS112、「Yes」)、処理をステップS113に移行させる。
In the next step S111, the buffer read
ステップS113で、バッファ読み出し部105は、バッファ番号BNUMを1だけインクリメントして、処理をステップS114に移行させる。ステップS114で、バッファ読み出し部105は、バッファ番号BNUMがバッファメモリ1230において読み出しを行う最後のラインメモリ1120のバッファ番号BNUMとなっているか否かを判定する。
In step S113, the
図10−1(b)を用いて説明したように、画像データ31kの横方向のサイズが4バイト単位のバイトバウンダリではない場合、画像データ31kの各ラインの後端にZ個の無効画素を付加している。そのため、ステップS114におけるバッファ番号BNUMの判定条件は、現在バッファメモリ1230に書き込まれているデータが、画像データ31kの第1メモリ210上での後端列のデータであるか否かで異なる。
As described with reference FIG. 10-1 (b), if the horizontal size of the
ステップS114で、バッファ読み出し部105は、現在バッファメモリ1230に書き込まれているデータが後端列のデータである場合には、無効画素数Zを考慮し、バッファ番号BNUMが値「B−Z−1」であるか否かを判定する。バッファ読み出し部105は、バッファ番号BNUMが値「B−Z−1」ではないと判定した場合(ステップS114、「No」)、処理をステップS110に戻す。一方、バッファ読み出し部105は、バッファ番号BNUMが値「B−Z−1」であると判定した場合(ステップS114、「Yes」)、処理をステップS115に移行させる。
In step S114, when the data currently written in the
一方、バッファ読み出し部105は、現在バッファメモリ1230に書き込まれているデータが後端列以外のデータである場合には、バッファ番号BNUMが値「B−1」であるか否かを判定する。バッファ読み出し部105は、バッファ番号BNUMが値「B−1」ではないと判定した場合(ステップS114、「No」)、処理をステップS110に戻す。一方、バッファ読み出し部105は、バッファ番号BNUMが値「B−1」であると判定した場合(ステップS114、「Yes」)、処理をステップS115に移行させる。
On the other hand, when the data currently written in the
ステップS115で、バッファ読み出し部105は、第1メモリ210上の画像データ31kにおける全列分の処理が完了したか否かを判定する。バッファ読み出し部105は、全列分の処理が完了したと判定した場合(ステップS115、「Yes」)、図11のフローチャートによる一連の処理を終了させる。
In step S115, the
一方、バッファ読み出し部105は、ステップS115で、全列分の処理が終了していないと判定した場合(ステップS115、「No」)、処理をステ116に移行させる。ステップS116で、バッファ読み出し部105は、第1変換部200に対して、第1メモリ210から画像データ31kの次の列の各データ「pL−qW」を読み出す指示を出す。バッファ読み出し部105は、ステップS116の処理後、処理をステップS100に戻す。
On the other hand, when the
(第1の実施形態に係る、IJヘッドの復路における270°回転処理)
次に、図12−1〜図12−6、および、図13を用いて、第1の実施形態に係る、IJヘッド13の復路における270°回転処理について説明する。第1の実施形態に係る270°回転処理は、上述した90°回転処理に対して、主に、第1メモリ210からのデータの読み出し順と、バッファメモリ1230からのデータの読み出し順とが異なる。以下、90°回転処理に対して異なる点を中心に、説明を行う。
(270 ° rotation process on the return path of the IJ head according to the first embodiment)
Next, the 270 ° rotation process in the return path of the
図12−1は、印刷対象の画像データ30における、1スキャン分の画像データ31kが第1メモリ210に書き込まれた様子を模式的に示す。この図12−1(a)、図12−1(b)および図12−1(c)に示す各データ「pL−qW」の配置、ならびに、ラインの先頭側および後端側の画素の配置は、上述した図10−1(a)、図10−1(b)および図10−1(c)と同一であるので、ここでの説明を省略する。
Figure 12-1 in the
第1の実施形態において、第1変換部200は、270°回転の場合、画像データ31kの右端の列から、上端から下端に向けて、データ「pLーqW」を順次、第1メモリ210から読み出す。より具体的には、第1変換部200は、先ず、画像データ31kの右上隅のデータ「0L−nW」を読み出し、次にデータ「1LーnW」を読み出す。以降、第1変換部200は、図中に矢印Dで示されるように、この列の下端のデータ「319L−nW」まで、順次、各データ「pL−qW」を読み出す。
In a first embodiment, the
このように、270°回転処理においても、第1変換部200により、第1メモリ210に書き込まれた画像データ31kを、データ「pLーqW」毎に、アドレスが連続する方向と直交する方向に向けた読み出しが行われることで、画像データ31kに対して第1の縦横変換処理が行われる。
Thus, also in the 270 ° rotation processing, by the
第1変換部200は、第1メモリ210からの1列分のデータ「0L−nW」〜「319L−nW」」の読み出しを完了すると、読み出し位置を処理単位分(Aバイト=4バイト)分左に移動させ、上端から下端に向けて、各データ「0Lー(n−1)W」〜「319L−(n−1)W」の読み出しを実行する。第1変換部200は、この処理を、画像データ31kの左端の列(データ「0L−0W」〜「319L−0W」)の読み出しが完了するまで繰り返す。
When the
第1変換部200は、読み出したデータ「pL−qW」を送信部201によりプリンタ10に送信する。この処理単位のデータ「pL−qW」は、プリンタ10において受信部100に受信されて書き込み部101に渡される。書き込み部101は、受信部100から渡されたデータ「pL−qW」を、第2メモリ110の連続するアドレスに順次書き込む。
The
図12−2は、書き込み部101により第2メモリ110に各データ「pL−qW」が書き込まれた様子を模式的に示す。書き込み部101は、ホストPC20から送信されたデータ「pL−qW」を、受信順に、図中に矢印Bで示されるように、第2メモリ110の左上隅からアドレスが連続する方向に順次書き込んでいく。
FIG. 12-2 schematically shows how each data “pL−qW” is written to the
より具体的には、書き込み部101は、画像データ31kについて最初に受信したデータ「0L−nW」を第2メモリ110の左上隅に書き込み、次に受信したデータ「1L−nW」を、先に書き込んだデータ「0L−nW」の右隣に書き込む。この処理を、第1変換部200による、図12−1(c)に示す画像データ31kの1列分の読み出しが完了するまで繰り返す。第1変換部200が画像データ31kの右端の列の下端から読み出したデータ「319L−nW」が第2メモリ110の右端に書き込まれ、第1メモリ210の右端の1列のデータ「0L−nW」〜「319L−nW」が、横方向に整列される。
More specifically, the
書き込み部101は、ホストPC20から送信された、第1メモリ210の1列分のデータ「pL−nW」の第2メモリ110への書き込みが完了すると、第1メモリ210の次の列のデータ「pL−(n−1)W」を、第2メモリ110の左端側から、連続するアドレスに順次書き込んでいく。第1変換部200による、画像データ31kの左端の列(データ「0L−0W」〜「319L−0W」)の読み出しに応じて、書き込み部101により、このデータ「0L−0W」〜「319L−0W」が第2メモリ110に書き込まれる。
When the
第2メモリ110に書き込まれた各データ「pL−qW」は、読み出し部102に読み出されて第2変換部103に渡される。より具体的には、読み出し部102は、第2メモリ110上の各データ「pL−qW」を、右上のデータ「0L−nW」からバーストアクセスにより順次読み出し、第2変換部103の処理ブロック分のデータ「pL−qW」を第2変換部103に渡す。
Each data "pL-qW" written in the
図12−1(c)および図12−2において、第1メモリ210から最初に読み出された、1つの処理ブロックに相当するデータ「0L−nW」〜「15L−nW」を、実線太枠により示している。読み出し部101は、これらデータ「0L−nW」〜「15L−nW」をバーストアクセスにより読み出して、第2変換部103に渡す。
In FIGS. 12-1 (c) and 12-2, the data "0L-nW" to "15L-nW" corresponding to one processing block first read from the
第2変換部103は、読み出し部102から渡された処理ブロック分のデータ「pL−qW」を第3メモリ111に書き込む。第2変換部103は、各データ「pL−qW」に含まれる各画素を、上述した90°回転処理の場合と同様にして、第3メモリ111の各記憶領域に書き込む。
The
図12−3は、読み出し部102から渡された、第1メモリ210から最初に読み出された処理ブロックに相当する各データ「0L−nW」〜「15L−nW」が第3メモリ111に書き込まれた様子を模式的に示す。図12−3の例では、第3メモリ111の左端の1列に、各データ「0L−nW」〜「15L−nW」における16個の画素#0がそれぞれ書き込まれる。この列の右隣の列は、各データ「0L−nW」〜「15L−nW」における16個の画素#1がそれぞれ書き込まれる。
In FIG. 12-3, the data “0L-nW” to “15L-nW” corresponding to the processing blocks first read from the
1つの処理ブロックに含まれる各データ「pL−qW」に含まれる各画素の第3メモリ111に対する書き込みが完了すると、第2変換部103は、第3メモリ111から、書き込まれた各画素を列毎に読み出してバッファ書き込み部104に渡す。
When the writing to the
このように、270°回転処理においても、第2変換部103が第3メモリ111に行方向に書き込まれた各画素を列方向に読み出すことで、画像データの縦横を画素単位で変換する第2の縦横変換処理が行われる。
In this way, even in the 270 ° rotation process, the
図12−4は、バッファメモリ1230にデータ「0L−nW」〜「319L−nW」が書き込まれた様子を模式的に示す。この例では、図12−3に示される第3メモリ111に書き込まれる全データ「0L−nW」〜「15L−nW」が、バッファメモリ1230において、図12−4に実線太枠により示す、4バイト幅の1列に書き込まれる。
FIG. 12-4 schematically shows how the data “0L-nW” to “319L-nW” are written in the
また、バッファ書き込み部104は、図12−4に示されるように、上述した90°回転処理の場合と同様にして、第2変換部103から渡された、第3メモリ111の画素#0の列、画素#1の列、…、画素#15の列の各画素を、バッファメモリ1230のバッファ番号BNUM「0」〜「15」でそれぞれ指定される各ラインメモリ1120の、アドレスAD「0」で指定される位置に書き込む。
Further, as shown in FIG. 12-4, the
バッファ書き込み部104は、以降、上述した90°回転処理の場合と同様にして、バッファメモリ1230に対してアドレスADを昇順に指定する。バッファ書き込み部104は、第2変換部103から渡された第3メモリ111の画素#0〜#15の各列の各画素を、バッファメモリ1230のバッファ番号BNUM「0」〜「15」でそれぞれ指定される各ラインメモリ1120の、アドレスAD「1」で指定される位置に書き込む。この処理をY/B回、すなわち20回繰り返すことで、第1メモリ210上の1スキャン分の画像データ31kにおける、後端の1列分の画像データがバッファメモリ1230に書き込まれる。
Hereinafter, the
バッファ読み出し部105は、図12−4の矢印Eとして示されるように、各ラインメモリ1120をバッファ番号BNUMの降順に従い順次指定する。バッファ読み出し部105は、指定されたバッファ番号BNUMのラインメモリ1120に対して、バッファメモリ1230のアドレスを示すアドレスADを昇順に指定し、当該ラインメモリ1120からアドレスADに従い画素を読み出す。バッファ読み出し部105は、読み出した各画素を、ヘッド駆動部1023を介して、IJヘッド13の各ノズル列130C、130M、130Yおよび130Kに、指定されたラインメモリ1120毎に供給する。
The
ここで、第1の実施形態に係る270°回転処理においては、第1変換部200は、第1メモリ210上の画像データ31kの左端の列からデータ「pL−qW」の読み出しを開始している。そのため、図12−3に色を変えて示されるように、第3メモリ111の右端からZ列(13列)が、無効画素が書き込まれる領域となる。したがって、図12−4に示されるように、バッファ番号BNUM「3」〜「15」で指定されるZ本(13本)の各ラインメモリ1120、1120、…に無効画素が書き込まれる(図中に色を変えて示す)。バッファ読み出し部105は、各ラインメモリ1120、1120、…からの画素の読み出しの際に、これら無効画素が書き込まれる各ラインメモリ1120のバッファ番号BNUM「3」〜「15」を指定しない。
Here, in the 270 ° rotation process according to the first embodiment, the
図12−5は、読み出し部102から渡された、第1メモリ210から最後に読み出された処理ブロックに相当する各データ「304L−0W」〜「319L−0W」が第3メモリ111に書き込まれた様子を模式的に示す。図12−5の例では、第3メモリ111の左端の1列に、各データ「319L−0W」〜「304L−0W」における16個の画素#0がそれぞれ書き込まれる。この列の右隣の列は、各データ「319L−0W」〜「304L−0W」における16個の画素#1がそれぞれ書き込まれる。
In FIG. 12-5, the data “304L-0W” to “319L-0W” corresponding to the processing block last read from the
1つの処理ブロックに含まれる各データ「pL−qW」に含まれる各画素の第3メモリ111に対する書き込みが完了すると、第2変換部103は、第3メモリ111から、書き込まれた各画素を列毎に読み出してバッファ書き込み部104に渡す。
When the writing to the
図12−6は、バッファメモリ1230にデータ「0L−0W」〜「319L−0W」が書き込まれた様子を模式的に示す。この例では、図12−5に示される第3メモリ111に書き込まれる全データ「304L−0W」〜「319L−0W」が、バッファメモリ1230において、図12−6に実線太枠により示す、4バイト幅の1列に書き込まれる。
FIG. 12-6 schematically shows how the data “0L-0W” to “319L-0W” are written in the
また、バッファ書き込み部104は、図12−6に示されるように、第2変換部103から渡された、第3メモリ111の画素#0の列、画素#1の列、…、画素#15の列の各画素を、バッファメモリ1230のバッファ番号BNUM「0」〜「15」でそれぞれ指定される各ラインメモリ1120の、アドレスAD「0」で指定される位置に書き込む。
Further, as shown in FIG. 12-6, the
バッファ書き込み部104は、以降、上述した図12−4による説明と同様にして、アドレスADを昇順に指定して、バッファメモリ1230に対してアドレスAD「1」〜「15」に対する書き込みを実行する。これにより、第1メモリ210上の1スキャン分の画像データ31kにおける1列分の画像データがバッファメモリ1230に書き込まれる。
Hereinafter, the
バッファ読み出し部105は、図12−6の矢印Eとして示されるように、各ラインメモリ1120をバッファ番号BNUMの降順に従い順次指定し、指定されたバッファ番号BNUMのラインメモリ1120に対して、アドレスADを昇順に指定し、当該ラインメモリ1120からアドレスADに従い画素を読み出す。バッファ読み出し部105は、読み出した各画素を、ヘッド駆動部1023を介して、IJヘッド13の各ノズル列130C、130M、130Yおよび130Kに、指定されたラインメモリ1120毎に供給する。
As shown by the arrow E in FIG. 12-6, the
バッファメモリ1230に書き込まれた全ての画素データの読み出しが完了すると、第1メモリ210上の1スキャン分の画像データ31kにおける、次の1列分(例えばデータ「0L−(n−1)W」、「1L−(n−1)W」、…の列)の画像データをバッファメモリ1230に書き込む処理が行われる。
When the reading of all the pixel data written in the
図12−1〜図12−6を用いて説明した処理を行うことで、図4(a)および図4(b)を用いて説明した、IJヘッド13の復路における、1スキャン分の画像データ311の270°回転が実現できる。
By performing the processing described with reference to FIGS. 12-1 to 12-6, the image data for one scan in the return path of the
図13は、第1の実施形態に係る、IJヘッド13の復路における270°回転処理を示す一例のフローチャートである。なお、図13のフローチャートにおいて、上述した図11のフローチャートと共通する部分には同一の符号を付して、詳細な説明を省略する。
FIG. 13 is a flowchart of an example showing the 270 ° rotation process in the return path of the
図13において、ステップS100〜ステップS108の処理は、ステップS100の第1縦横変換処理における、第1変換部200による第1メモリ210からのデータの読み出し順以外は、図11の90°回転処理のステップS100〜ステップS108の処理と、略同様であるので、詳細な説明を省略する。
In FIG. 13, the processes of steps S100 to S108 are the 90 ° rotation processes of FIG. 11 except for the order of reading data from the
図13において、ステップS108でバッファ読み出しアドレスRADRの値が値「0」に初期化されると、処理がステップS120に移行される。ステップS120で、バッファ読み出し部105は、第1メモリ210上の画像データ31kにおいて現在処理対象としている列が、第1メモリ210上の後端列(読み出し処理を最初に行う列)であるか否かを判定する。
In FIG. 13, when the value of the buffer read address RADR is initialized to the value “0” in step S108, the process shifts to step S120. In step S120, whether the buffer read
バッファ読み出し部105は、後端列であると判定した場合(ステップS120、「Yes」)、処理をステップS121に移行させる。ステップS121で、バッファ読み出し部105は、バッファ番号BNUMの値を、無効画素数を考慮した値「B−Z−1」に初期化する。一方、バッファ読み出し部105は、現在処理対象としている列が後端列ではないと判定した場合(ステップS120、「No」)、処理をステップS122に移行させる。ステップS122で、バッファ読み出し部105は、バッファ番号BNUMを値「B−1」に初期化する。
When the
バッファ読み出し部105は、ステップS121またはステップS122でバッファ番号BNUMを初期化すると、処理をステップS110に移行させる。ステップS110〜ステップS112の処理は、図11の90°回転処理のステップS110〜ステップS112の処理と、略同様である。
When the buffer number BNUM is initialized in step S121 or step S122, the
すなわち、バッファ読み出し部105は、ステップS110で、バッファメモリ1230に対して読み出しアドレスRADRと、バッファ番号BNUMとを指定し、読み出しアドレスRADRおよびバッファ番号BNUMに従い、バッファメモリ1230からデータを読み出す。バッファ読み出し部105は、次のステップS111で、読み出しアドレスRADRを1だけインクリメントし、次のステップS112で、読み出しアドレスRADRの値が値「Y/B−1」と一致するか否かを判定する。バッファ読み出し部105は、読み出しアドレスRADRの値が値「Y/B−1」と一致しないと判定した場合(ステップS112、「No」)、処理をステップS110に戻す。一方、バッファ読み出し部105は、読み出しアドレスRADRの値が値「Y/B−1」と一致すると判定した場合(ステップS112、「Yes」)、処理をステップS123に移行させる。
That is, in step S110, the buffer read
ステップS123で、バッファ読み出し部105は、バッファ番号BNUMを1だけデクリメントし、読み出しアドレスRADRを値「0」に初期化する。次のステップS124で、バッファ読み出し部105は、バッファ番号BNUMが値「0」であるか否かを判定する。バッファ読み出し部105は、バッファ番号BNUMが値「0」ではないと判定した場合(ステップS124、「No」)、処理をステップS110に戻す。一方、バッファ読み出し部105は、バッファ番号BNUMが値「0」であると判定した場合(ステップS124、「Yes」)、処理をステップS115に移行する。
In step S123, the buffer read
ステップS115で、バッファ読み出し部105は、第1メモリ210上の画像データ31kにおける全列分の処理が完了したか否かを判定する。バッファ読み出し部105は、全列分の処理が完了したと判定した場合(ステップS115、「Yes」)、図13のフローチャートによる一連の処理を終了させる。また、バッファ読み出し部105は、全列分の処理が終了していないと判定した場合(ステップS115、「No」)、処理をステップS116に移行させ、第1変換部200に対して、第1メモリ210から画像データ31kの次の列の各データ「pL−qW」を読み出す指示を出す。バッファ読み出し部105は、ステップS116の処理後、処理をステップS100に戻す。
In step S115, the
図14は、第1の実施形態に係る90°および270°回転処理のタイミングの例を示すタイミングチャートである。図14(a)は、書き込み部101による第2メモリ110への書き込み、図14(b)は、読み出し部102による第2メモリ110からの読み出しのタイミングの例をそれぞれ示す。図14(c)は、第2変換部103による第3メモリ111への書き込みのタイミングの例を示す。また、図14(d)は、バッファ書き込み部104によるバッファメモリ1230への書き込み、図14(e)は、バッファ読み出し部105によるバッファメモリ1230からの読み出しのタイミングの例をそれぞれ示す。
FIG. 14 is a timing chart showing an example of the timing of the 90 ° and 270 ° rotation processing according to the first embodiment. FIG. 14A shows an example of the timing of writing to the
第1メモリ210から第1変換部200が読み出した、1列目のデータ「pL−qW」の、書き込み部101による第2メモリ110への書き込みが完了すると(図14(a))、読み出し部102により、第2メモリ110から、書き込みが完了したデータ「pL−qW」が第2変換部103の処理ブロック(Aバイト×Bライン)毎に読み出される(図14(b))。第2変換部103は、読み出し部102により読み出された、第2変換部103の処理ブロック分(Aバイト×Bライン)のデータ「pL−qW」を、画素単位で行方向に従い第3メモリ111に書き込む(図14(c))。バッファ書き込み部104は、第3メモリ111への処理ブロック分の書き込みが完了すると、第3メモリ111から、列毎に画素を読み出す。バッファ書き込み部104は、第3メモリ111から列毎に読み出した画素を、バッファメモリ1230に含まれる、列に対応するバッファ番号BNUMのラインメモリ1120に書き込む(図14(d))。
When the writing of the data "pL-qW" in the first column read from the
この、図14(b)〜図14(d)の処理を、Y/B回繰り返すことで、図14(a)に示した、第2メモリ110に対して書き込まれた1列目のデータ「pL−qW」のバッファメモリ1230への書き込みが完了する。バッファメモリ1230への1列目のデータ「pL−qW」の書き込みが完了すると、第1メモリ210から第1変換部200が読み出した2列目のデータ「pL−qW」の、第2メモリ110への書き込みが開始される(図14(a))。
By repeating the process of FIGS. 14 (b) to 14 (d) Y / B times, the data of the first column written to the
また、バッファメモリ1230への1列目のデータ「pL−qW」の書き込みが完了すると、2列目のデータ「pL−qW」の第2メモリ110への書き込みと並行して、バッファメモリ1230からのデータの読み出しが開始される(図14(e))。バッファ読み出し部105は、読み出しアドレスRADRをインクリメントしながら指定したバッファ番号BNUMのラインメモリ1120からデータを読み出す。バッファ読み出し部105は、バッファ番号BNUM「0」〜「15」の各ラインメモリ1120について、画像の回転方向に従った順序でデータを読み出す。バッファ読み出し部105は、第2メモリ110に書き込まれた1列目のデータのバッファメモリ1230からの読み出しを、第2メモリ110に対する2列目のデータ「pL−qW」の書き込みが完了するまでの期間に完了させる。
Further, when the writing of the data "pL-qW" in the first column to the
以上の処理が、第1メモリ210上の画像データ31kの全列分の処理が完了するまで繰り返される。
The above processing is repeated until the processing of all columns of
(第2の実施形態)
次に、第2の実施形態について説明する。上述した第1の実施形態では、90°回転処理と270°回転処理とで、第1メモリ210からのデータの読み出し順を異ならせ、第2メモリ110からのデータの読み出し順を共通としていた。これに対して、第2の実施形態では、90°回転処理と270°回転処理とで、第1メモリ210からのデータ読み出し順を共通とし、第2メモリ110からのデータの読み出し順を異ならせる。
(Second embodiment)
Next, the second embodiment will be described. In the first embodiment described above, the 90 ° rotation process and the 270 ° rotation process have different reading orders of data from the
なお、第2の実施形態では、第1の実施形態で説明した画像形成システム1、ホストPC20およびプリンタ10の構成および機能をそのまま適用できる。また、第2の実施形態において、90°回転処理は、第1の実施形態で説明した90°回転処理と同一なので、ここでの説明を省略する。
In the second embodiment, the configurations and functions of the
図15−1〜図15−6、および、図16を用いて、第2の実施形態に係る、IJヘッド13の復路における270°回転処理について説明する。
The 270 ° rotation process in the return path of the
図15−1は、印刷対象の画像データ30における、1スキャン分の画像データ31kが第1メモリ210に書き込まれた様子を模式的に示す。この図15−1(a)、図15−1(b)および図15−1(c)に示す各データ「pL−qW」の配置、ならびに、ラインの先頭側および後端側の画素の配置は、上述した図10−1(a)、図10−1(b)および図10−1(c)と同一であるので、ここでの説明を省略する。
Figure 15-1, the
さらに、第2の実施形態では、第1変換部200による、第1メモリ210からの画像データ31kの読み出し、および、第1変換部200に読み出された各データ「pL−qW」の書き込み部101による第2メモリ110への書き込み処理は、上述した第1の実施形態における90°回転処理の場合と同一である。図15−2は、書き込み部101により第2メモリ110に各データ「pL−qW」が書き込まれた様子を模式的に示す。
Furthermore, writing in the second embodiment, by the
第2メモリ110に書き込まれた各データ「pL−qW」は、読み出し部102に読み出されて第2変換部103に渡される。第2の実施形態では、読み出し部102は、第2メモリ110上の各データ「pL−qW」を、左下のデータ「319L−nW」からバーストアクセスにより順次読み出し、第2変換部103の処理ブロック分のデータ「pL−qW」を第2変換部103に渡す。
Each data "pL-qW" written in the
図15−1(c)および図15−2において、第1メモリ210から最初に読み出された、1つの処理ブロックに相当するデータ「319L−nW」〜「304L−nW」を、実線太枠により示している。読み出し部101は、これらデータ「319L−nW」〜「304L−nW」をバーストアクセスにより読み出して、第2変換部103に渡す。
In FIGS. 15-1 (c) and 15-2, the data "319L-nW" to "304L-nW" corresponding to one processing block first read from the
第2変換部103は、読み出し部102から渡された処理ブロック分のデータ「pL−qW」を第3メモリ111に書き込む。図15−3は、読み出し部102から渡された、第2メモリ110から最初に読み出された、処理ブロックに相当する各データ「319L−nW」〜「304L−nW」が第3メモリ111に書き込まれた様子を模式的に示す。図15−3の例では、第3メモリ111の左端の1列に、各データ「319L−nW」〜「304L−nW」における16個の画素#0がそれぞれ書き込まれる。この列の右隣の列は、各データ「319L−nW」〜「304L−nW」における16個の画素#1がそれぞれ書き込まれる。
The
1つの処理ブロックに含まれる各データ「pL−qW」に含まれる各画素の第3メモリ111に対する書き込みが完了すると、第2変換部103は、第3メモリ111から、書き込まれた各画素を列毎に読み出してバッファ書き込み部104に渡す。
When the writing to the
図15−4は、バッファメモリ1230にデータ「319L−nW」〜「0L−nW」が書き込まれた様子を模式的に示す。この例では、図15−3に示される第3メモリ111に書き込まれる全データ「319L−nW」〜「304L−nW」が、バッファメモリ1230において、図15−4に実線太枠により示す、4バイト幅の1列に書き込まれる。
FIG. 15-4 schematically shows how the data “319L-nW” to “0L-nW” are written in the
また、バッファ書き込み部104は、図15−4に示されるように、上述した90°回転処理の場合と同様にして、第2変換部103から渡された、第3メモリ111の画素#0の列、画素#1の列、…、画素#15の列の各画素を、バッファメモリ1230のバッファ番号BNUM「0」〜「15」でそれぞれ指定される各ラインメモリ1120の、アドレスAD「0」で指定される位置に書き込む。
Further, as shown in FIG. 15-4, the
バッファ書き込み部104は、以降、上述した90°回転処理の場合と同様にして、バッファメモリ1230に対して昇順にアドレスADを指定する。バッファ書き込み部104は、第2変換部103から渡された第3メモリ111の画素#0〜#15の各列の各画素を、バッファメモリ1230のバッファ番号BNUM「0」〜「15」でそれぞれ指定される各ラインメモリ1120の、アドレスAD「1」で指定される位置に書き込む。この処理をY/B回、すなわち20回繰り返すことで、第1メモリ210上の1スキャン分の画像データ31kにおける、後端の1列分の画像データがバッファメモリ1230に書き込まれる。
Hereinafter, the
バッファ読み出し部105は、図15−4の矢印Fとして示されるように、各ラインメモリ1120をバッファ番号BNUMの降順に従い順次指定する。バッファ読み出し部105は、指定されたバッファ番号BNUMのラインメモリ1120に対して、バッファメモリ1230のアドレスを示すアドレスADを降順に指定し、当該ラインメモリ1120からアドレスADに従い画素を読み出す。
The
すなわち、第2の実施形態では、各ラインメモリ1120のアドレスAD「0」には、画像データ31kの第319ライン〜第304ラインのデータが書き込まれ、アドレスAD「15」には、画像データ31kの第15ライン〜第0ラインのデータが書き込まれる。270°回転処理では、第0ライン〜第15ラインのデータが先に必要となるため、アドレスADを降順で指定する。
That is, in the second embodiment, the address AD "0" of each
バッファ読み出し部105は、読み出した各画素を、ヘッド駆動部1023を介して、IJヘッド13の各ノズル列130C、130M、130Yおよび130Kに、指定されたラインメモリ1120毎に供給する。
The
ここで、第2の実施形態に係る270°回転処理においては、読み出し部102は、第2メモリ110からのデータ「pL−qW」の読み出しを、第1メモリ210上の画像データ31kの右下隅のデータに対応するデータ「319LーnW」から開始している。そのため、図15−3に色を変えて示されるように、第3メモリ111の右端からZ列(13列)が、無効画素が書き込まれる領域となる。
Here, in the 270 ° rotation processing according to the second embodiment, the
したがって、図15−4に示されるように、バッファ番号BNUM「3」〜「15」で指定されるZ本(13本)の各ラインメモリ1120、1120、…に無効画素が書き込まれる(図中に色を変えて示す)。バッファ読み出し部105は、各ラインメモリ1120、1120、…からの画素の読み出しの際に、これら無効画素が書き込まれる各ラインメモリ1120のバッファ番号BNUM「3」〜「15」を指定しない。
Therefore, as shown in FIG. 15-4, invalid pixels are written in the Z (13)
図15−5は、読み出し部102から渡された、第2メモリ110から最後に読み出された処理ブロックに相当する各データ「15L−0W」〜「0L−0W」が第3メモリ111に書き込まれた様子を模式的に示す。図15−5の例では、第3メモリ111の左端の1列に、各データ「15L−0W」〜「0L−0W」における16個の画素#0がそれぞれ書き込まれる。この列の右隣の列は、各データ「15L−0W」〜「0L−0W」における16個の画素#1がそれぞれ書き込まれる。
In FIG. 15-5, the data “15L-0W” to “0L-0W” corresponding to the processing block last read from the
1つの処理ブロックに含まれる各データ「pL−qW」に含まれる各画素の第3メモリ111に対する書き込みが完了すると、第2変換部103は、第3メモリ111から、書き込まれた各画素を列毎に読み出してバッファ書き込み部104に渡す。
When the writing to the
図15−6は、バッファメモリ1230にデータ「0L−0W」〜「319L−0W」が書き込まれた様子を模式的に示す。この例では、図15−5に示される第3メモリ111に書き込まれる全データ「15L−0W」〜「0L−0W」が、バッファメモリ1230において、図15−6に実線太枠により示す、4バイト幅の1列に書き込まれる。
FIG. 15-6 schematically shows how the data “0L-0W” to “319L-0W” are written in the
また、バッファ書き込み部104は、図15−6に示されるように、第2変換部103から渡された、第3メモリ111の画素#0の列、画素#1の列、…、画素#15の列の各画素を、バッファメモリ1230のバッファ番号BNUM「0」〜「15」でそれぞれ指定される各ラインメモリ1120の、アドレスAD「0」で指定される位置に書き込む。
Further, as shown in FIG. 15-6, the
バッファ書き込み部104は、以降、上述した図15−4による説明と同様にして、バッファメモリ1230に対してアドレスAD「1」〜「15」に対する書き込みを実行する。これにより、第1メモリ210上の1スキャン分の画像データ31kにおける1列分の画像データがバッファメモリ1230に書き込まれる。
Hereinafter, the
バッファ読み出し部105は、図15−6の矢印Fとして示されるように、各ラインメモリ1120をバッファ番号BNUMの降順に従い順次指定する。バッファ読み出し部105は、指定されたバッファ番号BNUMのラインメモリ1120に対して、バッファメモリ1230のアドレスを示すアドレスADを降順に指定し、当該ラインメモリ1120からアドレスADに従い画素を読み出す。
The
バッファ読み出し部105は、読み出した各画素を、ヘッド駆動部1023を介して、IJヘッド13の各ノズル列130C、130M、130Yおよび130Kに、指定されたラインメモリ1120毎に供給する。
The
図16は、第2の実施形態に係る270°回転処理を示す一例のフローチャートである。なお、図16のフローチャートにおいて、上述した図11および図13のフローチャートと共通する部分には同一の符号を付して、詳細な説明を省略する。 FIG. 16 is a flowchart of an example showing the 270 ° rotation process according to the second embodiment. In the flowchart of FIG. 16, the same reference numerals are given to the parts common to the flowcharts of FIGS. 11 and 13 described above, and detailed description thereof will be omitted.
図16において、ステップS100で、第1変換部200は、第1メモリ210に書き込まれた、1スキャン分の画像データ31kに対して第1の縦横変換処理を施す。すなわち、第1変換部200は、第1メモリ210に書き込まれた1スキャン分の画像データ31kを、処理単位毎に、左下から上方向に向けて読み出す。第1変換部200により第1メモリから読み出されたデータは、ホストPC20からプリンタ10に送信され、書き込み部101により、第2メモリ110の連続するアドレスに順次書き込まれる。
In FIG. 16, in step S100, the
次のステップS130で、第1変換部200は、画像データ31kの全列分(Aバイト×Yライン×X/16)の処理が完了したか否か、すなわち、第1メモリ210からの読み出しと、第2メモリ110への書き込みとが完了したか否かを判定する。第1変換部200は、完了していないと判定した場合(ステップS130、「No」)、処理をステップS100に戻し、画像データ31kの次の列について処理を行う。一方、第1変換部200は、画像データ31kの全列分の処理が完了したと判定した場合(ステップS130、「Yes」)、処理をステップS102に移行する。
In the next step S130, the
ステップS102〜ステップS107の処理は、上述した図13のフローチャートにおけるステップS102〜ステップS107の処理と略同様であるので、詳細な説明を省略する。なお、ステップS104の第2縦横変換処理は、第2変換部103により、第2メモリ110の左下からデータの読み出しを開始し、右上にてデータの読み出しが完了する処理となる。
Since the processing of steps S102 to S107 is substantially the same as the processing of steps S102 to S107 in the flowchart of FIG. 13 described above, detailed description thereof will be omitted. The second vertical / horizontal conversion process in step S104 is a process in which the
図16において、バッファ書き込み部104は、ステップS107で、処理がY/B回繰り返されたと判定した場合(ステップS107、「Yes」)、処理をステップS131に移行させる。ステップS131で、バッファ読み出し部105は、バッファメモリ1230の読み出しアドレスRADRを値「B−1」に初期化する。
In FIG. 16, when the
次のステップS120で、バッファ読み出し部105は、第1メモリ210上の画像データ31kにおいて現在処理対象としている列が、第1メモリ210上の後端列(読み出し処理を最初に行う列)であるか否かを判定する。バッファ読み出し部105は、後端列であると判定した場合(ステップS120、「Yes」)、処理をステップS121に移行させ、バッファ番号BNUMの値を値「B−Z−1」に初期化する。一方、バッファ読み出し部105は、現在処理対象としている列が後端列ではないと判定した場合(ステップS120、「No」)、処理をステップS122に移行させ、バッファ番号BNUMを値「B−1」に初期化する。
In the next step S120, the
バッファ読み出し部105は、ステップS121またはステップS122でバッファ番号BNUMを初期化すると、処理をステップS110に移行させる。ステップS110で、バッファ読み出し部105は、バッファメモリ1230に対して読み出しアドレスRADRと、バッファ番号BNUMとを指定し、バッファメモリ1230に含まれる各ラインメモリ1120のうち、バッファ番号BNUMで指定されるラインメモリ1120の、読み出しアドレスRADRで指定する位置からデータを読み出す。バッファ読み出し部105は、データの読み出しを行うと、処理をステップS132に移行させる。
When the buffer number BNUM is initialized in step S121 or step S122, the
ステップS132で、バッファ読み出し部105は、読み出しアドレスRADRを1だけデクリメントする。次のステップS133で、バッファ読み出し部105は、読み出しアドレスRADRの値が値「0」であるか否かを判定する。バッファ読み出し部105は、読み出しアドレスRADRの値が値「0」ではないと判定した場合(ステップS133、「No」)、処理をステップS110に戻す。一方、バッファ読み出し部105は、読み出しアドレスRADRの値が値「0」であると判定した場合(ステップS133、「Yes」)、処理をステップS134に移行させる。
In step S132, the buffer read
ステップS134で、バッファ読み出し部105は、バッファ番号BNUMを1だけデクリメントし、読み出しアドレスRADRを値「B−1」に初期化する。
In step S134, the buffer read
次のステップS124で、バッファ読み出し部105は、バッファ番号BNUMが値「0」であるか否かを判定する。バッファ読み出し部105は、バッファ番号BNUMが値「0」ではないと判定した場合(ステップS124、「No」)、処理をステップS110に戻す。一方、バッファ読み出し部105は、バッファ番号BNUMが値「0」であると判定した場合(ステップS124、「Yes」)、処理をステップS115に移行する。
In the next step S124, the
ステップS115で、バッファ読み出し部105は、第1メモリ210上の画像データ31kにおける全列分の処理が完了したか否かを判定する。バッファ読み出し部105は、全列分の処理が完了したと判定した場合(ステップS115、「Yes」)、図16のフローチャートによる一連の処理を終了させる。
In step S115, the
一方、バッファ読み出し部105は、全列分の処理が終了していないと判定した場合(ステップS115、「No」)、処理をステップS135に移行させ、第2変換部103に対して、第2メモリ110から次の行の各データ「pL−qW」を読み出す指示を出す。バッファ読み出し部105は、ステップS135の処理後、処理をステップS102に戻す。
On the other hand, when the
なお、第2の実施形態において、各処理のタイミングは、第1の実施形態において図14を用いて説明したタイミングを適用できるので、ここでの説明を省略する。 In the second embodiment, the timing of each process can be applied to the timing described with reference to FIG. 14 in the first embodiment, and thus the description thereof will be omitted here.
上述したように、第2の実施形態では、90°回転処理と、270°回転処理とで、第1変換部200の処理内容を変える必要が無い。そのため、IJヘッド13の往路および復路において、ホストPC20側では同じ処理を実行し、プリンタ10側で90°回転処理および270°回転処理のうち何れを実行するかを決定できる。
As described above, in the second embodiment, it is not necessary to change the processing content of the
なお、第2の実施形態に係る270°回転処理は、第1メモリ210から最後に読み出される列のデータを、第2変換部103において最初に処理している。一方、第1の実施形態に係る270°回転処理では、第1メモリ210から最初に読み出される列のデータを、第2変換部103において最初に処理している。そのため、処理速度については、第1の実施形態による270°回転処理の方が有利である。
In the 270 ° rotation process according to the second embodiment, the
また、第2の実施形態に係る270°回転処理では、第1メモリ210から最後に読み出される列のデータを、第2変換部103において最初に処理するため、第2メモリ110は、少なくとも1スキャン分の画像データ31kを記憶可能な容量を必要とする。一方、第1の実施形態に係る270°回転処理では、第1メモリ210から最初に読み出される列のデータを、第2変換部103において最初に処理しているため、第2メモリ110は、少なくとも画像データ31kの第1メモリ210における1列分のデータを記憶可能な容量を持てば良く、メモリ容量の点で、有利である。
Further, in the 270 ° rotation process according to the second embodiment, since the data of the column finally read from the
(第3の実施形態)
次に、第3の実施形態について説明する。第3の実施形態は、上述した第1の実施形態に係るプリンタ10の変換部1022において、バッファメモリ1230を2つ設け、この2つのバッファメモリ1230をトグルで切り替えるようにしたものである。
(Third Embodiment)
Next, a third embodiment will be described. In the third embodiment, the
図17は、第3の実施形態に係る変換部1022’の一例の構成を示す。なお、図17において、上述した図8と共通する部分には同一の符号を付して、詳細な説明を省略する。 FIG. 17 shows the configuration of an example of the conversion unit 1022'according to the third embodiment. In FIG. 17, the same reference numerals are given to the parts common to those in FIG. 8 described above, and detailed description thereof will be omitted.
図17において、変換部1022’は、図8の変換部1022と比較して、2つのバッファメモリ1230aおよび1230bと、これらバッファメモリ1230aおよび1230bを切り替えるための切替部1232aおよび1232bと、を含む点が異なる。バッファメモリ1230aおよび1230bは、それぞれ図9−1、図9−2に示したバッファメモリ1230と同一の構成を有する。なお、図17において、バッファメモリ1230aおよび1230bは、それぞれバッファメモリ#1、バッファメモリ#2としても示されている。
In FIG. 17, the conversion unit 1022'contains two
また、バッファ制御部1231’は、図8のバッファ制御部1231の機能、すなわち、図9−1、図9−2のバッファ書き込み部104およびバッファ読み出し部105の機能に加え、切替部1232aおよび1232bを制御する機能を含む。バッファ制御部1231’は、バッファメモリ1232aおよび1232bのうち一方に書き込みが行われている期間は、他方からの読み出しが可能なように、切替部1232aおよび1232bをトグルで切り替える。
Further, the buffer control unit 1231'in addition to the functions of the
図18は、第3の実施形態に係る90°および270°回転処理のタイミングの例を示すタイミングチャートである。図18(a)〜図18(c)は、それぞれ上述した図14(a)〜図14(c)と同様、書き込み部101による第2メモリ110への書き込み、読み出し部102による第2メモリ110からの読み出し、第2変換部103による第3メモリ111への書き込みのタイミングの例をそれぞれ示す。
FIG. 18 is a timing chart showing an example of the timing of the 90 ° and 270 ° rotation processing according to the third embodiment. 18 (a) to 18 (c) are the same as those in FIGS. 14 (a) to 14 (c) described above, in which the
また、図18(d)は、バッファ制御部1231’によるバッファメモリ1230aおよび1230bへの書き込みのタイミングの例、図18(e)は、バッファ制御部1231’によるバッファメモリ1230aおよび1230bからの読み出しのタイミングの例をそれぞれ示す。なお、図18(d)および図18(e)において、バッファメモリ1230aをバッファ#1、バッファメモリ1230bをバッファ#2としてそれぞれ示している。
Further, FIG. 18 (d) shows an example of the timing of writing to the
第1メモリ210から第1変換部200が読み出した、1列目のデータ「pL−qW」の、書き込み部101による第2メモリ110への書き込みが完了する(図18(a))。読み出し部102は、この1列目のデータ「pL−qW」の第2メモリ110への書き込みが完了した後の時点t1において、第2メモリ110から、書き込みが完了した1列目のデータ「pL−qW」の第2変換部103の処理ブロック毎の読み出しを開始する(図18(b))。
The writing of the data "pL-qW" in the first column read from the
第2変換部103は、読み出し部102により読み出された、第2変換部103の処理ブロック分のデータを、画素単位で行方向に従い第3メモリ111に書き込む(図18(c))。バッファ書き込み部104は、例えば時点t1において、データの書き込み先をバッファメモリ1230aに設定する。第2変換部103は、第3メモリ111への処理ブロック分の書き込みが完了すると、第3メモリ111から列毎にデータを読み出す。バッファ書き込み部104は、第2変換部103により第3メモリ111から読み出されたデータを、バッファメモリ1230aに含まれる、列に対応するバッファ番号BNUMのラインメモリ1120に書き込む(図18(d))。
The
この、図18(b)〜図18(d)の処理を、Y/B回繰り返すことで、図18(a)に示した、第2メモリ110に対して書き込まれた1列目のデータ「pL−qW」のバッファメモリ1230aへの書き込みが完了する(時点t2)。
By repeating the process of FIGS. 18 (b) to 18 (d) Y / B times, the data of the first column written to the
バッファ読み出し部105は、例えばこの時点t2において、データの読み出し元をバッファメモリ1230aに設定する。バッファ読み出し部105は、時点t2において、バッファメモリ1230aからの、書き込みが完了した当該1列目のデータ「pL−qW」の読み出しを開始する(図18(e))。
Buffer read
一方、書き込み部101は、時点t1において、第1メモリ210から第1変換部200が読み出した2列目のデータ「pL−qW」の、第2メモリ110への書き込みを開始する(図18(a))。
On the other hand, the
以降、第1列目の処理と同様にして、読み出し部102は、第2メモリ110からの、書き込みが完了した2列目のデータ「pL−qW」の第2変換部103の処理ブロック毎の読み出しを開始する(図18(b)、時点t2)。第2変換部103は、読み出し部102により読み出された、第2変換部103の処理ブロック分のデータを、画素単位で行方向に従い第3メモリ111に書き込む(図18(c))。
After that, in the same manner as the processing of the first column, the
バッファ書き込み部104は、時点t2において、データの書き込み先をバッファメモリ1230aからバッファメモリ1230bに切り替える。第2変換部103は、第3メモリ111への処理ブロック分の書き込みが完了する毎に、第3メモリ111から列毎にデータを読み出す。バッファ書き込み部104は、第2変換部103により第3メモリ111から読み出されたデータを、バッファメモリ1230bに含まれる、列に対応するバッファ番号BNUMのラインメモリ1120に書き込む処理を行う(図18(d))。
Buffer
一方、書き込み部101は、時点t2において、第1メモリ210から第1変換部200が読み出した3列目のデータ「pL−qW」の、第2メモリ110への書き込みを開始する(図18(a))。
On the other hand, the
このように、第3の実施形態では、時点t2において、バッファ読み出し部105による、バッファメモリ1230aからの、書き込みが完了した当該1列目のデータ「pL−qW」の読み出しと、バッファ書き込み部104による、バッファメモリ1230bに対する2列目のデータ「pL−qW」の書き込みと、を並行して実行することができる。
Thus, in the third embodiment, at time t 2, by the buffer read
時点t3において、2列目のデータ「pL−qW」のバッファメモリ1230bへの書き込みが完了する。バッファ書き込み部104は、この時点t3において、データの書き込み先をバッファメモリ1230bからバッファメモリ1230aに切り替える。また、バッファ読み出し部105は、この時点t3において、データの読み出し元をバッファメモリ1230aからバッファメモリ1230bに切り替える。
At time t 3, writing to the
時点t3以降も、上述と同様に、3列目のデータ「pL−qW」について、第2メモリ110からの読み出しと(図18(b))、第3メモリ111への書き込みと(図18(c))、が行われ、また、バッファメモリ1230aに対する書き込みと(図18(d))、バッファメモリ1230bからの読み出しと(図18(e))、が並行して実行される。
Also time t 3 or later, in the same manner as described above, the third column of the data "pL-QW", and reading from the second memory 110 (FIG. 18 (b)), and writing to the third memory 111 (FIG. 18 (C)), and writing to the
このように、第3の実施形態によれば、2つのバッファメモリ1230aおよび1230bの書き込みおよび読み出しをトグルで切り替えることで、バッファ書き込み部104による書き込み処理と、バッファ読み出し部105による読み出し処理とを並行して実行できる。そのため、バッファ読み出し部105から連続的にデータを出力することが可能となり、プリンタ10の印刷性能を向上できる。
As described above, according to the third embodiment, the write process by the
なお、この第3の実施形態は、上述した第1の実施形態および第2の実施形態に適用可能である。 The third embodiment can be applied to the first and second embodiments described above.
(第4の実施形態)
次に、第4の実施形態について説明する。第4の実施形態は、上述の第3の実施形態の構成に加えて、第2メモリ110として、第2変換部103の処理ブロック分の容量を有するメモリを2面、有し、この2面のメモリの第1面のメモリと第2面のメモリとをトグルで切り替えて用いる例である。図19は、第4の実施形態に係るSDRAM1007の構成例を示す。
(Fourth Embodiment)
Next, a fourth embodiment will be described. In the fourth embodiment, in addition to the configuration of the third embodiment described above, the
図19の例では、SDRAM1007は、記憶領域内に、それぞれ、少なくとも第2変換部103の処理ブロック分のサイズを有する、それぞれ第1面のメモリおよび第2面のメモリとしてのメモリ領域1007aおよび1007bを含む。また、これらメモリ領域1007aおよび1007bは、SDRAM1007においてアドレスが連続する方向に、当該処理ブロック分のサイズを有する。なお、図19では、メモリ領域1007aおよび1007bを、それぞれメモリ領域#1、メモリ領域#2としても示されている。
In the example of FIG. 19, the
MEMC1005’は、切替部1100aおよび1100bにより、これらメモリ領域1007aおよび1007bの書き込みおよび読み出しをトグルで切り替える。例えば、MEMC1005’は、メモリ領域1007aおよび1007bのうち一方に書き込みが行われている期間は、他方からの読み出しが可能なように、切替部11100aおよび1100bをトグルで切り替える。
The MEMC1005'toggle the writing and reading of the
なお、図19では、切替部1100aおよび1100bがMEMC1005’の外部に設けられているように示されているが、これはこの例に限定されない。すなわち、切替部1100aおよび1100bがMEMC1005’の内部に含まれる構成であってもよい。
Although it is shown in FIG. 19 that the switching
図20は、第4の実施形態に係る90°回転および270°回転の例を示すタイミングチャートである。図20(a)は、書き込み部101によるメモリ領域1007aおよび1007bに対する書き込みのタイミングの例を示す。また、図20(b)は、読み出し部102によるメモリ領域1007aおよび1007bからの読み出しのタイミングの例を示す。なお、図20(a)および図20(b)においては、メモリ領域1007aおよび1007bを、それぞれR#1、R#2として示している。
FIG. 20 is a timing chart showing an example of 90 ° rotation and 270 ° rotation according to the fourth embodiment. FIG. 20A shows an example of the timing of writing to the
図20(c)は、第2変換部103による第3メモリ111への書き込みのタイミングの例を示す。図20(d)は、バッファメモリ1230aおよび1230bへの書き込みのタイミングの例、図20(e)は、バッファメモリ1230aおよび1230bからの読み出しのタイミングの例をそれぞれ示す。なお、図20(d)および図20(e)において、バッファメモリ1230aをバッファ#1、バッファメモリ1230bをバッファ#2としてそれぞれ示している。
FIG. 20C shows an example of the timing of writing to the
先ず、書き込み部101は、第1メモリ210すなわちSDRAM1007へのデータの書き込み先として、メモリ領域1007aを設定する。書き込み部101は、第1メモリ210から第1変換部200が読み出した1列目のデータ「pL−qW」における、1番目の処理ブロック分のデータを、メモリ領域1007aに書き込む(図20(a))。書き込み部101は、処理ブロック分のデータの書き込みが完了すると(時点t10)、データの書き込み先をメモリ領域1007aからメモリ領域1007bに切り替え、書き込みの完了を読み出し部102に通知する。書き込み部101は、第1メモリ210から第1変換部200が読み出した1列目のデータ「pL−qW」における2番目の処理ブロック分のデータをメモリ領域1007bに書き込む。
First, the
読み出し部102は、時点t10での書き込み部101からの書き込み完了の通知に応じて、第1メモリ210からのデータの読み出し元として、メモリ領域1007aを設定し、メモリ領域1007aから1番目の処理ブロックのデータを読み出す(図20(b))。第2変換部103は、読み出し部102により読み出された1番目の処理ブロック分のデータを第3メモリ111に書き込む(図20(c))。
Reading
バッファ書き込み部104は、例えば時点t10において、データの書き込み先をバッファメモリ1230aに設定する。第2変換部103は、第3メモリ111への1番目の処理ブロック分の書き込みが完了すると、第3メモリ111から列毎にデータを読み出す。バッファ書き込み部104は、第2変換部103により第3メモリ111から読み出されたデータを、バッファメモリ1230aに含まれる、列に対応するバッファ番号BNUMのラインメモリ1120に書き込む(図20(d))。
Buffer
書き込み部101は、第1メモリ210から第1変換部200が読み出した1列目のデータ「pL−qW」における2番目の処理ブロック分のデータの、メモリ領域1007bへの書き込みが完了すると、データの書き込み先をメモリ領域1007bからメモリ領域1007aに切り替え、書き込みの完了を読み出し部102に通知する。書き込み部101は、第1メモリ210から第1変換部200が読み出した1列目のデータ「pL−qW」の3番目の処理ブロック分のデータをメモリ領域1007aに書き込む。
When the writing of the data for the second processing block in the data "pL-qW" of the first column read by the
読み出し部102は、書き込み部101からの書き込み完了の通知に応じて、メモリ領域1007bから2番目の処理ブロック分のデータを読み出す(図20(b))。読み出し部102は、メモリ領域1007bからの2番目の処理ブロック分のデータの読み出しが完了すると、読み出し完了を書き込み部101に通知する。
The
第2変換部103は、読み出し部102により読み出された2番目の処理ブロック分のデータを第3メモリ111に書き込む(図20(c))。第2変換部103は、第3メモリ111への1番目の処理ブロック分の書き込みが完了すると、第3メモリ111から列毎に2番目の処理ブロック分のデータを読み出す。バッファ書き込み部104は、第2変換部103により第3メモリ111から読み出されたデータを、バッファメモリ1230aに含まれる、列に対応するバッファ番号BNUMのラインメモリ1120に書き込む(図20(d))。
The
この、図20(a)〜図20(d)の処理を、メモリ領域1007aおよび1007bを処理ブロックの書き込み毎にトグルで切り替えながら、Y/B回繰り返す。これにより、図20(a)に示した、第2メモリ110に対して書き込まれた1列目のデータ「pL−qW」のバッファメモリ1230aへの書き込みが完了する(時点t11)。
The processing of FIGS. 20A to 20D is repeated Y / B times while switching the
バッファ読み出し部105は、例えばこの時点t11において、データの読み出し元をバッファメモリ1230aに設定する。バッファ読み出し部105は、時点t11において、バッファメモリ1230aからの、書き込みが完了した当該1列目のデータ「pL−qW」の読み出しを開始する(図20(e))。
Buffer read
書き込み部101は、上述のようにして、データの書き込み先をメモリ領域1007aおよび1007bで切り替えながら、第1メモリ210から第1変換部200が読み出した1列目のデータ「pL−qW」を処理ブロック毎に、メモリ領域1007aおよび1007bに交互に書き込む。
As described above, the
書き込み部101は、当該1列目のデータ「pL−qW」の書き込みが完了すると、同様にして、第1メモリ210から第1変換部200が読み出した2列目のデータ「pL−qW」の処理ブロック毎の、メモリ領域1007aおよび1007bへの書き込みを実行する(図20(a))。書き込み部101は、2列目のデータ「pL−qW」における1番目の処理ブロック分の例えばメモリ領域1007aへの書き込みが完了すると(時点t11)、書き込みの完了を読み出し部102に通知する。書き込み部101は、処理ブロック分の書き込みの完了毎に、書き込み完了を読み出し部102に通知する。
When the writing of the data "pL-qW" in the first column is completed, the
読み出し部102は、書き込み部101からの書き込み完了の通知に応じて、時点t11において、メモリ領域1007aから2列目のデータ「pL−qW」の1番目の処理ブロック分の読み出しを開始する。読み出し部102は、メモリ領域1007aからの2列目のデータ「pL−qW」の1番目の処理ブロック分のデータの読み出しが完了すると、読み出し完了を書き込み部101に通知する。以降、メモリ領域1007aおよび1007bを交互に切り替えながら、2列目のデータ「pL−qW」の処理ブロック毎の読み出しを行う(図20(b))。
Reading
以下、同様にして、第2変換部103は、読み出し部102により処理ブロック毎に読み出されたデータを第3メモリ111に書き込む(図20(c))。第2変換部103は、第3メモリ111への処理ブロック毎の書き込みの完了に応じて、第3メモリ111から列毎でのデータの読み出しを実行する。
Hereinafter, in the same manner, the
バッファ書き込み部104は、時点t11において、データの書き込み先をバッファメモリ1230aからバッファメモリ1230bに切り替える。第2変換部103は、第3メモリ111への処理ブロック分の書き込みが完了する毎に、第3メモリ111から列毎にデータを読み出す。バッファ書き込み部104は、第2変換部103により読み出されたデータを、バッファメモリ1230bに含まれる、列に対応するバッファ番号BNUMのラインメモリ1120に書き込む処理を行う(図20(d))。
Buffer
書き込み部101は、当該2列目のデータ「pL−qW」の書き込みが完了すると、同様にして、第1メモリ210から第1変換部200が読み出した3列目のデータ「pL−qW」の処理ブロック毎の、メモリ領域1007aおよび1007bへの書き込みを実行する。書き込み部101は、2列目のデータ「pL−qW」における1番目の処理ブロック分の例えばメモリ領域1007aへの書き込みが完了すると(時点t12)、書き込みの完了を読み出し部102に通知する。読み出し部102は、書き込み部101からの書き込み完了の通知に応じて、時点t12において、メモリ領域1007aから2列目のデータ「pL−qW」の1番目の処理ブロック分の読み出しを開始する。
When the writing of the data "pL-qW" in the second column is completed, the
図21は、第4の実施形態に係る、書き込み部101および読み出し部102による、書き込み完了通知および読み出し完了通知のタイミングの例を示す。図21(a)は、メモリ領域1007aおよび1007bに対する書き込み処理時間が、読み出し処理時間よりも長い場合の例を示す。また、図21(b)は、メモリ領域1007aおよび1007bに対する書き込み処理時間が、読み出し処理時間よりも短い場合の例を示す。
FIG. 21 shows an example of the timing of the writing completion notification and the reading completion notification by the
なお、図21(a)および図21(b)において、メモリ領域1007aおよび1007bを、それぞれ領域#1、領域#2として示している。
In addition, in FIG. 21A and FIG. 21B,
図21(a)および図21(b)の何れにおいても、書き込み部101からの書き込み完了通知に応じて、読み出し部102による読み出し処理が開始される。図21(a)の例では、読み出し処理に要する時間が書き込み処理に要する時間よりも短いため、書き込み処理を、書き込み先のメモリ領域1007aおよび1007bを交互に切り替えながら、連続して実行できる。
In both FIGS. 21 (a) and 21 (b), the read process by the
一方、図21(b)の例では、読み出し処理に要する時間が書き込み処理に要する時間よりも長いため、書き込み部101は、書き込み先のメモリ領域1007aまたは1007bからの読み出しが完了した旨を示す読み出し完了通知を読み出し部102から受けるまで待機して、書き込み処理を開始する。
On the other hand, in the example of FIG. 21B, since the time required for the read process is longer than the time required for the write process, the
このように、書き込み完了通知および読み出し完了通知を用いることで、書き込み部101による書き込み処理、および、読み出し部102による読み出し処理の時間の短長に関わらず、メモリ領域1007aおよび1007bに対する書き込みおよび読み出しを、適切に制御することが可能である。
In this way, by using the write completion notification and the read completion notification, the writing and reading to the
上述したように、第4の実施形態によれば、第2メモリ110としてのメモリ領域1007aおよび1007bを、第2変換部103の処理ブロック毎に切り替えて、第1の変換部200により第1メモリ210から読み出されたデータ「pL−qW」のメモリ領域1007aおよび1007bへの書き込み、および、メモリ領域1007aおよび1007bを実行している。
As described above, according to the fourth embodiment, the
ここで、上述した第1の実施形態では、第2メモリ110として、1スキャンによる画像データ31kの1列分の容量が必要であり、第2の実施形態では、当該画像データ31k全体に対応する容量が必要となる。また、第3の実施形態では、第1変換部200で読み出された1列分のデータ「pL−qW」を書き込みながら、その前の列のデータ「pL−qW」を並行して読み出す必要があるため、当該画像データ31kの2列分の容量が必要となる。一方、第4の実施形態では、第2メモリ110としての容量は、第2変換部103の処理ブロックの2つ分(Aバイト×Bライン×2)があればよく、メモリ容量を削減できる。
Here, in the first embodiment described above, the capacity of one column of image data 31 k by one scan is required as the
また、第4の実施形態では、第1変換部200により第1メモリ210から読み出されたデータ「pL−qW」の1処理ブロック分のメモリ領域1007aへの書き込みが完了した時点で、当該メモリ領域1007aからのデータの読み出しを開始できる。そのため、処理開始から先頭のデータが出力できるまでの時間を短縮できる。
Further, in the fourth embodiment, when the writing of the data "pL-qW" read from the
なお、この第4の実施形態は、上述した第1の実施形態および第2の実施形態に適用可能である。 The fourth embodiment is applicable to the first and second embodiments described above.
(他の実施形態)
上述した第1〜第4の実施形態では、ホストPC20とプリンタ10とを含む画像形成システム1において、第1変換部200および第1メモリ210がホストPC20に含まれ、プリンタ10は、ホストPC20の第1変換部200により第1縦横変換処理を施された画像データに対して、第2変換部103により第2縦横変換処理を施していた。これはこの例に限定されず、第1変換部200をプリンタ10に含めた構成とすることも可能である。
(Other embodiments)
In the first to fourth embodiments described above, in the
この場合、例えば、第1変換部200は、プリンタ10からホストPC20に対して、ホストPC20が有する第1メモリ210に記憶される画像データの、処理単位での読み出しを第1メモリ210上での画像データの列毎に要求する。第1変換部200は、ホストPC20から送信された処理単位の画像データを、書き込み部101に渡す。
In this case, for example, the
これに限らず、第1変換部200および第1メモリ210をプリンタ10に含ませてもよい。
Not limited to this, the
なお、上述の各実施形態は、本発明の好適な実施の例ではあるがこれに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変形による実施が可能である。 It should be noted that each of the above-described embodiments is an example of a preferred embodiment of the present invention, but is not limited thereto, and can be implemented by various modifications without departing from the gist of the present invention.
1 画像形成システム
10 プリンタ
11 コントローラ
12 印字部
13 IJヘッド
15 用紙
20 ホストPC
30,311,312,313,31k,31m 画像データ
101 書き込み部
102 読み出し部
103 第2変換部
104 バッファ書き込み部
105 バッファ読み出し部
110 第2メモリ
111 第3メモリ
200 第1変換部
210 第1メモリ
1005,1005’ MEMC
1007 SDRAM
1021 RDMAC
1022,1022’ 変換部
1023 ヘッド駆動部
1110 記憶領域
1120 ラインメモリ
1220 変換メモリ
1222 変換メモリ制御部
1230,1230a,1230b バッファメモリ
1231,1231’ バッファ制御部
1
30, 31 1 , 31 2 , 31 3 , 31 k , 31 m
1007 SDRAM
1021 RDMAC
1022,
Claims (10)
第1のメモリに記憶される、アドレスが連続する第1の方向に直交する第2の方向に第1の数のラインを含む2次元の画像データに対して、該第1の方向に第2の数の画素を含む第1の処理単位で第1の縦横変換を施す第1の変換部と、
前記第1の変換部で前記第1の縦横変換を施された前記画像データを、第2のメモリのアドレスが連続する第3の方向に書き込む書き込み部と、
前記第2のメモリに書き込まれた前記画像データを、バーストアクセスにより、所定数の前記第1の処理単位を含む第2の処理単位で読み出す読み出し部と、
前記読み出し部により前記第2のメモリから読み出された前記第2の処理単位の前記画像データに対して、画素単位で第2の縦横変換を施す第2の変換部と、
それぞれ前記第1の数の画素が格納可能な、前記第1の処理単位に含まれる画素数に対応する数のラインメモリを含むバッファメモリと、
前記第2の変換部で前記第2の縦横変換が施された前記第2の処理単位の画像データを、前記ラインメモリの指定したアドレスに書き込むバッファ書き込み部と、
複数の前記ラインメモリから1のラインメモリを順次に選択し、選択した該ラインメモリから前記画像データを読み出すバッファ読み出し部とを備え、
前記第1の変換部は、前記第1のメモリに記憶される前記画像データを、前記第1の処理単位毎に、アドレスが連続する第1の方向に直交する第2の方向に向けて読み出すことで、前記画像データに対して前記第1の縦横変換を施し、
前記第2の変換部は、画素単位でアクセスが可能な第3メモリに書き込んだ処理ブロック分の画素を、書き込み時と異なる方向に読み出す
画像処理システム。 An image processing system that includes an information processing device and an image processing device.
With respect to the two-dimensional image data stored in the first memory and including the first number of lines in the second direction orthogonal to the first direction in which the addresses are continuous, the second in the first direction. A first conversion unit that performs a first vertical / horizontal conversion in a first processing unit containing the number of pixels of
A writing unit that writes the image data that has undergone the first vertical / horizontal conversion in the first conversion unit in a third direction in which the addresses of the second memory are continuous.
A reading unit that reads out the image data written in the second memory in a second processing unit including a predetermined number of the first processing units by burst access.
A second conversion unit that performs a second vertical / horizontal conversion on a pixel-by-pixel basis with respect to the image data of the second processing unit read from the second memory by the reading unit.
A buffer memory including a number of line memories corresponding to the number of pixels included in the first processing unit, each capable of storing the first number of pixels, and a buffer memory.
A buffer writing unit that writes the image data of the second processing unit that has undergone the second vertical / horizontal conversion in the second conversion unit to a designated address in the line memory, and a buffer writing unit.
A buffer read unit for sequentially selecting one line memory from the plurality of the line memories and reading the image data from the selected line memory is provided .
The first conversion unit reads out the image data stored in the first memory in each of the first processing units in a second direction orthogonal to the first direction in which the addresses are continuous. Therefore, the first vertical / horizontal conversion is performed on the image data, and the image data is subjected to the first vertical / horizontal conversion.
The second conversion unit is an image processing system that reads out the pixels of the processing block written in the third memory, which can be accessed in pixel units, in a direction different from that at the time of writing.
前記第1の縦横変換を、前記画像データを90°回転させて前記バッファメモリに書き込む場合と、前記画像データを270°回転させて前記バッファメモリに書き込む場合と、で異なる順序により実行する
請求項1に記載の画像処理システム。 The first conversion unit is
A claim that the first vertical / horizontal conversion is executed in a different order depending on whether the image data is rotated by 90 ° and written to the buffer memory or the image data is rotated by 270 ° and written to the buffer memory. The image processing system according to 1.
前記第1の縦横変換を、前記画像データを90°回転させて前記バッファメモリに書き込む場合と、前記画像データを270°回転させて前記バッファメモリに書き込む場合と、で同一の順序により実行する
請求項1に記載の画像処理システム。 The first conversion unit is
A request to execute the first vertical / horizontal conversion in the same order in a case where the image data is rotated by 90 ° and written to the buffer memory and a case where the image data is rotated by 270 ° and written to the buffer memory. Item 1. The image processing system according to item 1.
前記バッファ読み出し部が、2つの前記バッファメモリのうち一方のバッファメモリに書き込まれた、前記第1のメモリにおける前記第1の処理単位の幅の列に対応する前記画像データを読み出す処理と、
前記書き込み部が、2つの前記バッファメモリのうち他方のバッファメモリに対して、前記第1のメモリにおける次の前記列に対応する前記画像データを書き込む処理と、
を並行して実行する
請求項1乃至請求項3の何れか1項に記載の画像処理システム。 Equipped with the two buffer memories
A process in which the buffer read unit reads out the image data corresponding to a column having a width of the first processing unit in the first memory, which is written in one of the two buffer memories.
A process in which the writing unit writes the image data corresponding to the next column in the first memory to the other buffer memory of the two buffer memories.
The image processing system according to any one of claims 1 to 3, wherein the image processing system is executed in parallel.
前記書き込み部は、
前記第1面のメモリおよび前記第2面のメモリのうち前記読み出し部による画素の読み出しが行われていないメモリに前記第2の処理単位での画像データの書き込みを行い、
前記読み出し部は、
前記第1面のメモリおよび前記第2面のメモリのうち前記書き込み部による前記第2の処理単位での画素の書き込みが完了したメモリから該第2の処理単位で画像データを読み出す
請求項4に記載の画像処理システム。 Wherein the second memory, respectively with the second memory of the first surface writable image data in the processing unit and the second surface of the memory,
The writing unit
The image data in the second processing unit is written to the memory on the first surface and the memory on the second surface in which the pixels are not read by the reading unit.
The reading unit is
The fourth aspect of the present invention is to read image data in the second processing unit from the memory on the first surface and the memory in which the writing of pixels in the second processing unit is completed by the writing unit among the memories on the second surface. The image processing system described.
前記第1のメモリに記憶される前記画像データの前記第1の方向の画素数が前記第1の処理単位の整数倍ではない場合に、該画素数が前記第1の処理単位の整数倍に満たない数に対応する無効画素を、前記ラインのそれぞれに付加し、
前記バッファ読み出し部は、
前記ラインメモリに書き込まれている前記無効画素を読み出さない
請求項1乃至請求項5の何れか1項に記載の画像処理システム。 The first conversion unit is
When the number of pixels in the first direction of the image data stored in the first memory is not an integral multiple of the first processing unit, the number of pixels becomes an integral multiple of the first processing unit. Invalid pixels corresponding to the number less than the number are added to each of the lines.
The buffer reading unit is
The image processing system according to any one of claims 1 to 5, which does not read the invalid pixels written in the line memory.
第1のメモリに記憶される、アドレスが連続する第1の方向に直交する第2の方向に第1の数のラインを含む2次元の画像データに対して、該第1の方向に第2の数の画素を含む第1の処理単位で第1の縦横変換を施す第1の変換ステップと、
前記第1の変換ステップにより前記第1の縦横変換を施された前記画像データを、第2のメモリのアドレスが連続する第3の方向に書き込む書き込みステップと、
前記第2のメモリに書き込まれた前記画像データを、バーストアクセスにより、所定数の前記第1の処理単位を含む第2の処理単位で読み出す読み出しステップと、
前記読み出しステップにより前記第2のメモリから読み出された前記第2の処理単位の前記画像データに対して、画素単位で第2の縦横変換を施す第2の変換ステップと、
それぞれ前記第1の数の画素が格納可能な、前記第1の処理単位に含まれる画素数に対応する数のラインメモリを含むバッファメモリと、
前記第2の変換ステップで前記第2の縦横変換が施された前記第2の処理単位の画像データを、それぞれ前記第1の数の画素が格納可能な、前記第1の処理単位に含まれる画素数に対応する数のラインメモリを含むバッファメモリの、該ラインメモリの指定したアドレスに書き込むバッファ書き込みステップと、
複数の前記ラインメモリから1のラインメモリを順次に選択し、選択した該ラインメモリから前記画像データを読み出すバッファ読み出しステップとを含み、
前記第1の変換ステップは、前記第1のメモリに記憶される前記画像データを、前記第1の処理単位毎に、アドレスが連続する第1の方向に直交する第2の方向に向けて読み出すことで、前記画像データに対して前記第1の縦横変換を施し、
前記第2の変換ステップは、画素単位でアクセスが可能な第3メモリに書き込んだ処理ブロック分の画素を、書き込み時と異なる方向に読み出す、
画像処理方法。 An image processing method in an image processing system including an information processing device and an image processing device.
With respect to the two-dimensional image data stored in the first memory and including the first number of lines in the second direction orthogonal to the first direction in which the addresses are continuous, the second in the first direction. The first conversion step of performing the first vertical / horizontal conversion in the first processing unit including the number of pixels of
A writing step of writing the image data subjected to the first vertical / horizontal conversion by the first conversion step in a third direction in which the addresses of the second memory are continuous, and
A read-out step of reading out the image data written in the second memory in a second processing unit including a predetermined number of the first processing units by burst access.
A second conversion step of performing a second vertical / horizontal conversion on a pixel-by-pixel basis on the image data of the second processing unit read from the second memory by the reading step.
A buffer memory including a number of line memories corresponding to the number of pixels included in the first processing unit, each capable of storing the first number of pixels, and a buffer memory.
The image data of the second processing unit subjected to the second vertical / horizontal conversion in the second conversion step is included in the first processing unit in which the first number of pixels can be stored. A buffer write step of writing to a specified address of the line memory of a buffer memory including a number of line memories corresponding to the number of pixels, and
A buffer read step of sequentially selecting one line memory from the plurality of the line memories and reading the image data from the selected line memory is included.
In the first conversion step, the image data stored in the first memory is read out in each of the first processing units in a second direction orthogonal to the first direction in which the addresses are continuous. Therefore, the first vertical / horizontal conversion is performed on the image data, and the image data is subjected to the first vertical / horizontal conversion.
In the second conversion step, the pixels of the processing block written in the third memory, which can be accessed in pixel units, are read out in a direction different from that at the time of writing.
Image processing method.
前記第2のメモリに書き込まれた前記画像データを、バーストアクセスにより、所定数の前記第1の処理単位を含む第2の処理単位で読み出す読み出し部と、
前記読み出し部により前記第2のメモリから読み出された前記第2の処理単位の前記画像データに対して、画素単位で第2の縦横変換を施す第2の変換部と、
それぞれ前記第1の数の画素が格納可能な、前記第1の処理単位に含まれる画素数に対応する数のラインメモリを含むバッファメモリと、
前記第2の変換部で前記第2の縦横変換が施された前記第2の処理単位の画像データを、前記ラインメモリの指定したアドレスに書き込むバッファ書き込み部と、
複数の前記ラインメモリから1のラインメモリを順次に選択し、選択した該ラインメモリから前記画像データを読み出すバッファ読み出し部とを備え、
前記第1の変換部は、前記第1のメモリに記憶される前記画像データを、前記第1の処理単位毎に、アドレスが連続する第1の方向に直交する第2の方向に向けて読み出すことで、前記画像データに対して前記第1の縦横変換を施し、
前記第2の変換部は、画素単位でアクセスが可能な第3メモリに書き込んだ処理ブロック分の画素を、書き込み時と異なる方向に読み出す
画像処理装置。 With respect to the two-dimensional image data stored in the first memory and including the first number of lines in the second direction orthogonal to the first direction in which the addresses are continuous, the second in the first direction. The image data subjected to the first vertical-horizontal conversion transmitted from the information processing apparatus including the first conversion unit that performs the first vertical-horizontal conversion in the first processing unit including the number of pixels of A writing unit that writes in the third direction in which the addresses of the two memories are continuous, and
A reading unit that reads out the image data written in the second memory in a second processing unit including a predetermined number of the first processing units by burst access.
A second conversion unit that performs a second vertical / horizontal conversion on a pixel-by-pixel basis with respect to the image data of the second processing unit read from the second memory by the reading unit.
A buffer memory including a number of line memories corresponding to the number of pixels included in the first processing unit, each capable of storing the first number of pixels, and a buffer memory.
A buffer writing unit that writes the image data of the second processing unit that has undergone the second vertical / horizontal conversion in the second conversion unit to a designated address in the line memory, and a buffer writing unit.
A buffer read unit for sequentially selecting one line memory from the plurality of the line memories and reading the image data from the selected line memory is provided .
The first conversion unit reads out the image data stored in the first memory in each of the first processing units in a second direction orthogonal to the first direction in which the addresses are continuous. Therefore, the first vertical / horizontal conversion is performed on the image data, and the image data is subjected to the first vertical / horizontal conversion.
The second conversion unit is an image processing device that reads out the pixels of the processing block written in the third memory, which can be accessed in pixel units, in a direction different from that at the time of writing.
第1のメモリに記憶される、アドレスが連続する第1の方向に直交する第2の方向に第1の数のラインを含む2次元の画像データに対して、該第1の方向に第2の数の画素を含む第1の処理単位で第1の縦横変換を施す第1の変換部と、
前記第1の変換部で前記第1の縦横変換を施された前記画像データを、第2のメモリのアドレスが連続する第3の方向に書き込む書き込み部と、
前記第2のメモリに書き込まれた前記画像データを、バーストアクセスにより、所定数の前記第1の処理単位を含む第2の処理単位で読み出す読み出し部と、
前記読み出し部により前記第2のメモリから読み出された前記第2の処理単位の前記画像データに対して、画素単位で第2の縦横変換を施す第2の変換部と、
それぞれ前記第1の数の画素が格納可能な、前記第1の処理単位に含まれる画素数に対応する数のラインメモリを含むバッファメモリと、
前記第2の変換部で前記第2の縦横変換が施された前記第2の処理単位の画像データを、前記ラインメモリの指定したアドレスに書き込むバッファ書き込み部と、
複数の前記ラインメモリから1のラインメモリを順次に選択し、選択した該ラインメモリから前記画像データを読み出すバッファ読み出し部と、
バッファ読み出し部により前記バッファメモリから読み出された前記画像データに従い印刷媒体に画像を形成する画像形成部とを備え、
前記第1の変換部は、前記第1のメモリに記憶される前記画像データを、前記第1の処理単位毎に、アドレスが連続する第1の方向に直交する第2の方向に向けて読み出すことで、前記画像データに対して前記第1の縦横変換を施し、
前記第2の変換部は、画素単位でアクセスが可能な第3メモリに書き込んだ処理ブロック分の画素を、書き込み時と異なる方向に読み出す
画像形成システム。 An image forming system including an information processing device and an image forming device.
With respect to the two-dimensional image data stored in the first memory and including the first number of lines in the second direction orthogonal to the first direction in which the addresses are continuous, the second in the first direction. A first conversion unit that performs a first vertical / horizontal conversion in a first processing unit containing the number of pixels of
A writing unit that writes the image data that has undergone the first vertical / horizontal conversion in the first conversion unit in a third direction in which the addresses of the second memory are continuous.
A reading unit that reads out the image data written in the second memory in a second processing unit including a predetermined number of the first processing units by burst access.
A second conversion unit that performs a second vertical / horizontal conversion on a pixel-by-pixel basis with respect to the image data of the second processing unit read from the second memory by the reading unit.
A buffer memory including a number of line memories corresponding to the number of pixels included in the first processing unit, each capable of storing the first number of pixels, and a buffer memory.
A buffer writing unit that writes the image data of the second processing unit that has undergone the second vertical / horizontal conversion in the second conversion unit to a designated address in the line memory, and a buffer writing unit.
A buffer read unit that sequentially selects one line memory from the plurality of the line memories and reads the image data from the selected line memory.
It is provided with an image forming unit that forms an image on a print medium according to the image data read from the buffer memory by the buffer reading unit.
The first conversion unit reads out the image data stored in the first memory in each of the first processing units in a second direction orthogonal to the first direction in which the addresses are continuous. Therefore, the first vertical / horizontal conversion is performed on the image data, and the image data is subjected to the first vertical / horizontal conversion.
The second conversion unit is an image forming system that reads out the pixels of the processing block written in the third memory, which can be accessed in pixel units, in a direction different from that at the time of writing.
前記印刷媒体を副走査方向に移動させる印刷媒体移動部と、
それぞれ前記ラインメモリから読み出された画像データに含まれる画素に従いインクを吐出する前記第1の数のノズルが前記副走査方向に整列したヘッドを主走査方向に移動させるヘッド移動部と
を備える
請求項9に記載の画像形成システム。 The image forming part is
A print medium moving unit that moves the print medium in the sub-scanning direction,
A claim including a head moving unit in which the first number of nozzles, each of which ejects ink according to pixels included in image data read from the line memory, moves heads aligned in the sub-scanning direction in the main scanning direction. Item 9. The image forming system according to Item 9.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2017138560A JP6844459B2 (en) | 2017-07-14 | 2017-07-14 | Image processing system, image processing method and image processing device, and image forming system |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2017138560A JP6844459B2 (en) | 2017-07-14 | 2017-07-14 | Image processing system, image processing method and image processing device, and image forming system |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2019022071A JP2019022071A (en) | 2019-02-07 |
| JP6844459B2 true JP6844459B2 (en) | 2021-03-17 |
Family
ID=65353226
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2017138560A Expired - Fee Related JP6844459B2 (en) | 2017-07-14 | 2017-07-14 | Image processing system, image processing method and image processing device, and image forming system |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP6844459B2 (en) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2025047729A1 (en) * | 2023-08-31 | 2025-03-06 | ヌヴォトンテクノロジージャパン株式会社 | Memory system, memory controller, external memory, memory control method, and operation method |
Family Cites Families (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH02199594A (en) * | 1989-01-30 | 1990-08-07 | Fujitsu Ltd | Image rotating circuit |
| JP4109725B2 (en) * | 1995-05-01 | 2008-07-02 | キヤノン株式会社 | Image processing apparatus and method |
| JP2005109856A (en) * | 2003-09-30 | 2005-04-21 | Canon Electronics Inc | Picture rotation circuit and picture processor having the same |
| JP2005293118A (en) * | 2004-03-31 | 2005-10-20 | Toshiba Solutions Corp | Disk cache control circuit, disk control device, and disk cache control method |
| JP2008035035A (en) * | 2006-07-27 | 2008-02-14 | Murata Mach Ltd | Image processing apparatus |
| JP4201031B2 (en) * | 2006-07-27 | 2008-12-24 | 村田機械株式会社 | Image processing device |
| JP4553015B2 (en) * | 2008-01-25 | 2010-09-29 | コニカミノルタビジネステクノロジーズ株式会社 | Image forming apparatus |
-
2017
- 2017-07-14 JP JP2017138560A patent/JP6844459B2/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP2019022071A (en) | 2019-02-07 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3884498B2 (en) | Printer and method for printing raster images | |
| US5838888A (en) | Image recorder | |
| JP4687745B2 (en) | Image processing apparatus, image recording system, and program | |
| US6009245A (en) | Serial printer, and image buffer access method for serial printer | |
| JPH05304591A (en) | Preparing device for full page bit map for raster device and scan-out method for frame buffer | |
| JP6844459B2 (en) | Image processing system, image processing method and image processing device, and image forming system | |
| JP2000280564A (en) | Printing method and printing system | |
| JP5245221B2 (en) | Droplet discharge device | |
| US5887989A (en) | Low cost digital printer | |
| US9384431B2 (en) | Image processing apparatus, method, and storage medium that perform quantizing processing of image data for at least N colors | |
| JP2018149755A (en) | Image forming apparatus, ink discharge method, and liquid discharge apparatus | |
| JP2011076156A (en) | Apparatus and method for processing image | |
| US9789718B2 (en) | Printing apparatus and control method of the same | |
| JP4544141B2 (en) | Image processing device, printer driver, printing system, program | |
| JP4461890B2 (en) | Printing device | |
| JP4826099B2 (en) | Printing system, printing method and adjustment method | |
| JP5736826B2 (en) | Image data processing apparatus, recording apparatus, and image data processing method | |
| JP3446906B2 (en) | Host for supplying data to recording apparatus and method for supplying data | |
| JP4007179B2 (en) | Printing system that prints while performing image processing by sharing between image processing device and printing device | |
| JP2001096854A (en) | Apparatus and method for printing processing | |
| JP5446108B2 (en) | Control device and printing device | |
| JP2005305832A (en) | Printing device | |
| JP5151328B2 (en) | Image forming apparatus, image transfer method, program, and recording medium | |
| JP5343504B2 (en) | Inkjet recording apparatus, image forming system, image forming method, and program | |
| US5956472A (en) | Data processing method and data processing apparatus and printer using data processing apparatus |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200226 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20201021 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20201110 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210112 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20210126 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210208 |
|
| R151 | Written notification of patent or utility model registration |
Ref document number: 6844459 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
| LAPS | Cancellation because of no payment of annual fees |