JP4345055B2 - Image processing apparatus and method, and printer system - Google Patents

Image processing apparatus and method, and printer system Download PDF

Info

Publication number
JP4345055B2
JP4345055B2 JP2003360725A JP2003360725A JP4345055B2 JP 4345055 B2 JP4345055 B2 JP 4345055B2 JP 2003360725 A JP2003360725 A JP 2003360725A JP 2003360725 A JP2003360725 A JP 2003360725A JP 4345055 B2 JP4345055 B2 JP 4345055B2
Authority
JP
Japan
Prior art keywords
data
image
processing
partial
pixel
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
Application number
JP2003360725A
Other languages
Japanese (ja)
Other versions
JP2005128632A (en
Inventor
光一 黒瀬
健 井熊
武晴 戸口
功一 石井
浩司 柳沢
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2003360725A priority Critical patent/JP4345055B2/en
Priority to US10/953,415 priority patent/US7580151B2/en
Publication of JP2005128632A publication Critical patent/JP2005128632A/en
Application granted granted Critical
Publication of JP4345055B2 publication Critical patent/JP4345055B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Record Information Processing For Printing (AREA)
  • Image Processing (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Description

本発明は、複数のプロセッサを用いて並列に画像処理を行うための技術に関する。   The present invention relates to a technique for performing image processing in parallel using a plurality of processors.

一般に、レーザプリンタシステムでは、RIP(ラスターイメージプロセッサ)により、PDL(ページ記述言語)で記述された印刷対象を印刷イメージに展開し、順次に走査ライン(ラスター)ごとに印刷エンジンに送り出して、印刷を実行する。   Generally, in a laser printer system, a print object described in PDL (page description language) is developed into a print image by a RIP (raster image processor), and sequentially sent to a print engine for each scan line (raster) for printing. Execute.

このとき、印刷イメージを1ページ分全部展開して記憶しておこうとすると、大変多くのメモリ領域が必要となってしまう。そのため、1ページを複数の走査ラインから構成されるバンドに分割し、その単位で印刷イメージを展開するのが普通である。   At this time, if all the print images are developed and stored for one page, a very large memory area is required. Therefore, it is common to divide one page into bands composed of a plurality of scanning lines and develop a print image in that unit.

このようなバンド単位の展開処理を高速に行うために、複数のプロセッサそれぞれに各バンドを割り当てて並列に展開処理を行う構成が提案されている(特許文献1)。
特開2003−51019号公報
In order to perform such band-by-band expansion processing at high speed, a configuration has been proposed in which each band is assigned to each of a plurality of processors and the expansion processing is performed in parallel (Patent Document 1).
JP 2003-51019 A

RIPをホスト装置が備える場合、展開した印刷イメージをプリンタ側に送信する必要がある。この場合、印刷イメージはデータ量が多いことから、ホスト装置において送信する前に圧縮処理を施し、プリンタ側で伸長するという枠組みを取るのが普通である。   When the RIP is provided in the host device, the developed print image needs to be transmitted to the printer side. In this case, since the print image has a large amount of data, it is usual to adopt a framework in which compression processing is performed before transmission by the host device and decompression is performed on the printer side.

ここで、ホスト装置やプリンタが複数のプロセッサを備えている場合、特許文献1のように、複数のプロセッサそれぞれに各バンドを割り当てて並列に圧縮処理や伸長処理を行うという構成が考えられる。   Here, when the host device or the printer includes a plurality of processors, a configuration in which each band is assigned to each of the plurality of processors and compression processing or decompression processing is performed in parallel as in Patent Document 1 can be considered.

しかし、このようなバンド単位に並列化する手法では、個々の走査ライン(個々のバンド)のデータに対しては並列化がなされていない。そのため、最初の1走査ライン(1バンド)について処理結果が得られるまでに必要な時間が単一のプロセッサで処理を行う場合と変わらないといった問題が残る。別言すれば、複数のプロセッサで並列化しているにもかかわらず、実際に印刷が実行されるまでの立ち上がりについてはアドバンテージが得られていない。   However, in such a method of parallelizing in units of bands, data of individual scanning lines (individual bands) is not parallelized. Therefore, there remains a problem that the time required for obtaining the processing result for the first one scanning line (one band) is the same as when processing is performed by a single processor. In other words, despite the parallelization by a plurality of processors, no advantage is obtained with respect to the rise until the actual printing is executed.

また、バンド単位に並列化する手法の場合、スループットを向上させるためには、各プロセッサが自己に割り当てられたバンドについて並列に処理を実行できるように、プロセッサ数分の処理結果を格納するメモリ領域が必要となる。そのため、プロセッサ数を増やして並列度を上げていくと、それに応じて処理に必要なメモリ領域も増加してしまうという問題が生じる。   In addition, in the case of the method of parallelization in units of bands, in order to improve the throughput, a memory area for storing the processing results for the number of processors so that each processor can execute processing in parallel for the band allocated to itself. Is required. Therefore, if the number of processors is increased to increase the degree of parallelism, there arises a problem that the memory area necessary for processing increases accordingly.

本願の発明者らは、上記問題を検討した結果、イメージを構成する少なくとも1つの走査ラインについて、個々の走査ラインを複数の部分領域に分割した場合の、前記部分領域のそれぞれに前記複数のプロセッサのうち少なくとも1つを割り当てて、並列に画像処理を行うことで、上記目的を達成できると考えるに至った。   As a result of studying the above problem, the inventors of the present application have determined that the plurality of processors in each of the partial areas when the individual scan lines are divided into a plurality of partial areas for at least one scan line constituting the image. It came to be thought that the said objective can be achieved by assigning at least one of them and performing image processing in parallel.

ここで、単一のプロセッサで画像処理を実行する場合はもちろんこと、上述のように複数のプロセッサにより並列化を図った場合でも、個々のプロセッサの画像処理においては次のような問題が生じうる。   Here, not only when image processing is executed by a single processor, but also when parallelization is performed by a plurality of processors as described above, the following problems may occur in image processing of individual processors. .

すなわち、従来において画像処理を実行する際、メモリアクセスはバイト単位のアクセスを基本とする場合が多いことから、各画素を1バイト(又はmバイト)で表現し、N画素であればNバイト(又はN×mバイト)のように、バイト単位のデータに対して画像処理を施すように構成するのが一般的であった。   That is, when performing image processing in the past, memory access is often based on byte-by-byte access, so each pixel is represented by 1 byte (or m bytes), and if N pixels, N bytes ( In general, the image processing is performed on byte-unit data such as N × m bytes).

例えば、図15(a)に示すような階調値を持つ18画素のイメージがある場合、従来の構成によれば、図15(b)に示すような18バイトのデータを対象として、画像処理が行われることになる。このような従来構成のもとでは、イメージの各画素が1バイト未満のビット長で表現されている場合でも、これをいったん1バイトに嵩上げしてから画像処理を行うため、イメージ自体の容量よりも多くのメモリ領域が画像処理の実行のために必要となってしまうという問題が生じる。また、嵩上げされた部分(1ビット長の画素であれば、残り7ビット)は本来不要なデータ(未使用ビット)であるにもかかわらず、処理の上では演算対象のデータとして扱われるため、本来不要なデータの演算によって処理時間が増えてしまうという問題も生じる。   For example, when there is an image of 18 pixels having gradation values as shown in FIG. 15A, according to the conventional configuration, image processing is performed on 18-byte data as shown in FIG. 15B. Will be done. Under such a conventional configuration, even if each pixel of the image is expressed with a bit length of less than 1 byte, the image processing is performed after the pixel is raised to 1 byte. However, there arises a problem that a large number of memory areas are required for executing image processing. In addition, although the raised portion (the remaining 7 bits in the case of a 1-bit pixel) is originally unnecessary data (unused bits), it is treated as data to be calculated in processing. There is also a problem that processing time increases due to the calculation of originally unnecessary data.

そこで、本発明は、上記問題を解消し、画像処理を実行する際のメモリ効率の向上、処理時間の短縮を図ることを目的とする。   SUMMARY OF THE INVENTION Accordingly, an object of the present invention is to solve the above-described problems, improve memory efficiency when executing image processing, and reduce processing time.

本願の発明者らは、上記目的を達成すべく種々の構成を検討した結果、画素ごとの階調データをバイト単位で表現して画像処理を施すのではなく、複数画素の階調データを連続して配置したデータ列(ビット列)を生成し、かかる生成されたデータ列に対してバイト単位に画像処理を施すことで、上記問題を解消できると考えるに至った。   The inventors of the present application have studied various configurations in order to achieve the above object, and as a result, the gradation data for each pixel is not expressed in bytes and image processing is performed, but the gradation data for a plurality of pixels is continuously displayed. Thus, it has been considered that the above problem can be solved by generating the arranged data string (bit string) and performing image processing on the generated data string in byte units.

ここで、画像処理として、画像圧縮処理/画像伸長処理を具体的に想定する。この場合、複数画素のデータ列をバイト単位にパックしたものが画像圧縮の対象となり、従って画像伸長結果となるので、最終的に個別の画素データを利用するためには、パックされた状態の画像伸長結果から各画素のデータを個別に取り出す(アンパックする)必要がある。   Here, image compression processing / image expansion processing is specifically assumed as the image processing. In this case, a data sequence of a plurality of pixels packed in byte units becomes an object of image compression, and thus results in an image expansion. Therefore, in order to finally use individual pixel data, a packed image is used. It is necessary to individually extract (unpack) the data of each pixel from the decompression result.

例えば各画素のビット長が一定値の場合、伸長結果の先頭から順にその一定値のビット長のデータを取り出せば、各画素のデータを取り出すことができる。   For example, when the bit length of each pixel is a constant value, the data of each pixel can be extracted by extracting the data having the constant bit length in order from the beginning of the decompression result.

一方、各画素が複数種類のビット長のうちいずれかを取るように構成する場合でも、単一のプロセッサにより画像伸長処理を行うのであれば、各画素のビット長の並びを特定するテーブル(以下、「ビット情報テーブル」と呼ぶ)を参照して、伸長結果の先頭から順に該テーブルに記述されたビット長のデータを取り出すことで、各画素のデータを取り出すことができる。   On the other hand, even when each pixel is configured to take any one of a plurality of types of bit lengths, if the image decompression processing is performed by a single processor, a table (hereinafter referred to as a bit length array) , Referred to as “bit information table”), the data of each pixel can be extracted by extracting the data of the bit length described in the table in order from the beginning of the decompression result.

しかし、上述のように部分領域のそれぞれに複数のプロセッサのうち少なくとも1つを割り当てて並列に画像伸長処理を行う場合は、必ずしも各部分領域の開始位置とビット長の並びの周期パターンの開始位置とが整合するとは限らないため、各プロセッサは、自己の部分領域の先頭から順に周期パターンを当てはめる方法では、各画素の正しいビット長を得ることはできない(適切にアンパックできない)という問題が生じる。   However, as described above, when at least one of a plurality of processors is assigned to each partial area and image decompression processing is performed in parallel, the start position of each partial area and the start position of a periodic pattern of bit lengths are not necessarily included. Therefore, there is a problem that each processor cannot obtain a correct bit length of each pixel (cannot be appropriately unpacked) by applying a periodic pattern in order from the top of its own partial area.

そこで、本発明は、部分領域のそれぞれに複数のプロセッサのうち少なくとも1つを割り当てて並列に画像伸長処理を行う場合に、適切にアンパックできるような枠組みを提供することを目的とする。   Therefore, an object of the present invention is to provide a framework that can be appropriately unpacked when assigning at least one of a plurality of processors to each of the partial areas and performing image expansion processing in parallel.

本発明の画像処理装置は、イメージを構成する少なくとも1つの走査ラインについて、該走査ラインの各画素のビット長がそれぞれL1〜LNである場合に、前記各画素のデータを並べた(L1+・・・+LN)長のデータ列を少なくとも対象として、該走査ラインの画像処理を行うことを特徴とする。   The image processing apparatus according to the present invention arranges data of each pixel when the bit length of each pixel of the scan line is L1 to LN for at least one scan line constituting the image (L1 +... + LN) Image processing of the scanning line is performed at least for a long data string.

本発明の構成によれば、イメージの各画素の階調データをバイト単位に嵩上げしてから画像処理を行う従来の構成に比べて、画像処理の実行に必要なメモリ領域の容量、演算対象となるデータ量を抑制して、効率よく画像処理を実行することができる。   According to the configuration of the present invention, compared to the conventional configuration in which image processing is performed after the gradation data of each pixel of the image is increased in units of bytes, the capacity of the memory area necessary for execution of the image processing, the calculation target, and the like. Therefore, it is possible to efficiently execute image processing.

本発明の画像処理装置は、複数のプロセッサを用いて並列に画像処理を行う画像処理装置であって、イメージを構成する少なくとも1つの走査ラインについて、個々の走査ラインを複数の部分領域に分割した場合の、前記部分領域のそれぞれに前記複数のプロセッサのうち少なくとも1つを割り当てて、並列に画像処理を行う制御手段を備え、前記制御手段は、あるプロセッサに対応する部分領域の各画素のビット長がそれぞれL1〜LNである場合に、該プロセッサが前記各画素のデータを並べた(L1+・・・+LN)長のデータ列を少なくとも対象として該部分領域の画像処理を行うように制御することを特徴とする。   An image processing apparatus of the present invention is an image processing apparatus that performs image processing in parallel using a plurality of processors, and for each of at least one scanning line constituting an image, each scanning line is divided into a plurality of partial regions. Control means for assigning at least one of the plurality of processors to each of the partial areas and performing image processing in parallel, wherein the control means includes a bit of each pixel of the partial area corresponding to a certain processor. When the lengths are L1 to LN, respectively, the processor performs control so that image processing of the partial region is performed at least for a data string of (L1 +... + LN) length in which the data of the respective pixels are arranged. It is characterized by.

好適には、前記イメージにおいて各画素のビット長の並びが周期パターンを構成しており、前記部分領域の境界が前記周期パターンの境界の少なくとも1つと一致していることを特徴とする。この場合、前記周期パターンを記憶する手段を備え、前記制御手段が、前記(L1+・・・+LN)長のデータ列に対して前記周期パターンを当てはめて各画素のビット長を取得し、画素ごとの情報を抽出する構成としてもよい。   Preferably, in the image, an arrangement of bit lengths of each pixel forms a periodic pattern, and a boundary of the partial region coincides with at least one of the boundaries of the periodic pattern. In this case, there is provided means for storing the periodic pattern, and the control means applies the periodic pattern to the (L1 +... + LN) length data string to obtain the bit length of each pixel, and The information may be extracted.

かかる構成によれば、各部分領域の開始位置と周期パターンの開始位置とが常に整合し、前記データ列には先頭から周期パターンに一致したビット長で画素が格納されることになる。そのため、いずれの部分領域についても、前記データ列の先頭から周期パターンの順にビット長のデータを抽出していけば、各画素の階調データを抽出することができる。   According to such a configuration, the start position of each partial region and the start position of the periodic pattern are always matched, and pixels are stored in the data string with a bit length that matches the periodic pattern from the beginning. Therefore, for any partial region, gradation data of each pixel can be extracted if bit length data is extracted in the order of the periodic pattern from the top of the data string.

好適には、前記各画素のビット長L1〜LNのうち少なくとも1つは、他のビット長と異なっていることを特徴とする。   Preferably, at least one of the bit lengths L1 to LN of each pixel is different from other bit lengths.

また好適には、前記画像処理が、画像圧縮処理又は画像伸長処理であることを特徴とする。   Preferably, the image processing is image compression processing or image expansion processing.

本発明のプリンタ制御装置は、複数のプロセッサを用いて並列に画像処理を行う機能を備えるプリンタ制御装置であって、イメージを構成する少なくとも1つの走査ラインについて、個々の走査ラインを複数の部分領域に分割した場合の、前記部分領域のそれぞれに前記複数のプロセッサのうち少なくとも1つを割り当てて並列に画像圧縮処理を行い、各部分領域に対応する圧縮されたデータをプリンタ装置へ送信する制御手段を備え、前記制御手段は、あるプロセッサに対応する部分領域の各画素のビット長がそれぞれL1〜LNである場合に、該プロセッサが前記各画素のデータを並べた(L1+・・・+LN)長のデータ列を少なくとも対象として該部分領域の画像圧縮処理を行うように制御することを特徴とする。   A printer control apparatus according to the present invention is a printer control apparatus having a function of performing image processing in parallel using a plurality of processors, and for each of at least one scan line constituting an image, each scan line is divided into a plurality of partial areas. Control means for assigning at least one of the plurality of processors to each of the partial areas, performing image compression processing in parallel, and transmitting compressed data corresponding to the partial areas to the printer device And when the bit length of each pixel of the partial area corresponding to a certain processor is L1 to LN, the control means arranges the data of each pixel (L1 +... + LN) length Control is performed so as to perform image compression processing of the partial area at least for the data string.

本発明のプリンタ装置は、複数のプロセッサを用いて並列に画像処理を行う機能を備えるプリンタ装置であって、各画素のビット長の並びを特定する周期パターンを記憶する記憶手段と、イメージを構成する少なくとも1つの走査ラインについて、個々の走査ラインを複数の部分領域に分割した場合の、前記部分領域のそれぞれに対応する圧縮部分データをホスト装置から受信し、圧縮部分データに前記複数のプロセッサのうち少なくとも1つを割り当てて並列に画像伸長処理を行う制御手段とを備え、前記制御手段は、あるプロセッサに対応する部分領域の各画素のビット長がそれぞれL1〜LNである場合に、該プロセッサが画像伸長処理の結果として出力した各画素のデータを並べた(L1+・・・+LN)長のデータ列を少なくとも対象として、前記周期パターンを当てはめて各画素のビット長を取得し、画素ごとの情報を抽出することを特徴とする。   The printer device of the present invention is a printer device having a function of performing image processing in parallel using a plurality of processors, and comprises a storage means for storing a periodic pattern for specifying the arrangement of bit lengths of each pixel, and an image For each of the at least one scan line, when each scan line is divided into a plurality of partial areas, the compressed partial data corresponding to each of the partial areas is received from the host device, and the compressed partial data is received from the plurality of processors. Control means for allocating at least one of them and performing image decompression processing in parallel. The control means, when the bit length of each pixel of the partial area corresponding to a certain processor is L1 to LN, respectively, At least a data string of (L1 +... + LN) length in which the data of each pixel output as a result of the image decompression process is arranged. As elephant, by applying the periodic pattern obtains the bit length of each pixel, and extracts the information for each pixel.

本発明のプリンタシステムは、ホスト装置と、該ホスト装置と通信可能に構成されたプリンタ装置とを含んで構成され、ホスト装置及びプリンタ装置のそれぞれが複数のプロセッサを用いて並列に画像処理を行う機能を備えるプリンタシステムであって、ホスト装置は、イメージを構成する少なくとも1つの走査ラインについて、個々の走査ラインを複数の部分領域に分割した場合の、前記部分領域のそれぞれに複数のプロセッサのうち少なくとも1つを割り当てて並列に画像圧縮処理を行い、各部分領域に対応する圧縮されたデータ(以下、「圧縮部分データ」と呼ぶ)をプリンタ装置へ送信する第1制御手段とを備え、 前記第1制御手段は、あるプロセッサに対応する部分領域の各画素のビット長がそれぞれL1〜LNである場合に、該プロセッサが前記各画素のデータを並べた(L1+・・・+LN)長のデータ列を少なくとも対象として該部分領域の画像圧縮処理を行うように制御し、プリンタ装置は、各画素のビット長の並びを特定する周期パターンを記憶する記憶手段と、イメージを構成する少なくとも1つの走査ラインについて、個々の走査ラインを複数の部分領域に分割した場合の、前記部分領域のそれぞれに対応する圧縮部分データをホスト装置から受信し、圧縮部分データに複数のプロセッサのうち少なくとも1つを割り当てて並列に画像伸長処理を行う第2制御手段とを備え、前記第2制御手段は、あるプロセッサに対応する部分領域の各画素のビット長がそれぞれL1〜LNである場合に、該プロセッサが画像伸長処理の結果として出力した各画素のデータを並べた(L1+・・・+LN)長のデータ列を少なくとも対象として、前記周期パターンを当てはめて各画素のビット長を取得し、画素ごとの情報を抽出することを特徴とする。   The printer system according to the present invention includes a host device and a printer device configured to be communicable with the host device, and each of the host device and the printer device performs image processing in parallel using a plurality of processors. A host system having a function, wherein at least one scanning line constituting an image, the host device divides each scanning line into a plurality of partial areas, and each of the partial areas includes a plurality of processors. First control means for performing image compression processing in parallel by assigning at least one, and transmitting compressed data corresponding to each partial area (hereinafter referred to as “compressed partial data”) to a printer device; When the bit length of each pixel of the partial area corresponding to a certain processor is L1 to LN, The processor controls to perform the image compression processing of the partial area for at least a data string of (L1 +... + LN) length in which the data of each pixel is arranged, and the printer device arranges the bit length of each pixel. Storage means for storing a periodic pattern for identifying the compressed partial data corresponding to each of the partial areas when the individual scanning lines are divided into a plurality of partial areas for at least one scanning line constituting the image. Second control means for receiving at least one of a plurality of processors from the host device and performing image decompression processing in parallel by assigning at least one of the plurality of processors to the compressed partial data, wherein the second control means is a partial area corresponding to a certain processor. When the bit length of each pixel is L1 to LN, the data of each pixel output as a result of the image expansion processing by the processor is displayed. The bit length of each pixel is obtained by applying the periodic pattern to at least a data string of (L1 +... + LN) length in which data is arranged, and information for each pixel is extracted.

本発明の画像処理方法は、イメージを構成する少なくとも1つの走査ラインについて、該走査ラインの各画素のビット長がそれぞれL1〜LNである場合に、前記各画素のデータを並べた(L1+・・・+LN)長のデータ列を少なくとも対象として該走査ラインの画像処理を行うことを特徴とする。   According to the image processing method of the present invention, when the bit length of each pixel of the scan line is L1 to LN for at least one scan line constituting the image, the data of each pixel is arranged (L1 +... + LN) Image processing of the scanning line is performed at least for a long data string.

本発明の画像処理方法は、コンピュータにより実施することができるが、そのためのコンピュータプログラムは、CD−ROM、磁気ディスク、半導体メモリ及び通信ネットワークなどの各種の媒体を通じてコンピュータにインストールまたはロードすることができる。また、コンピュータプログラムが、プリンタ用カードやプリンタ用オプションボードに記録されて流通する場合も含む。   The image processing method of the present invention can be implemented by a computer, and a computer program therefor can be installed or loaded on the computer through various media such as a CD-ROM, a magnetic disk, a semiconductor memory, and a communication network. . It also includes the case where a computer program is recorded and distributed on a printer card or printer option board.

本発明によれば、画像処理を実行する際のメモリ効率の向上、処理時間の短縮を図ることができる。また、部分領域のそれぞれに複数のプロセッサのうち少なくとも1つを割り当てて並列に画像伸長処理を行う場合に、適切にアンパックできるような枠組みを提供することができる。   According to the present invention, it is possible to improve memory efficiency and reduce processing time when executing image processing. In addition, it is possible to provide a framework that can be appropriately unpacked when assigning at least one of a plurality of processors to each partial region and performing image decompression processing in parallel.

(第1の実施形態)
図1は、本発明の実施形態のプリンタシステム1のハードウェア構成を示すブロック図である。図1に示すように、プリンタシステム1は、ホスト装置10と、通信ネットワーク(LAN、インターネット、専用線、パケット通信網、それらの組み合わせ等のいずれであってもよく、有線、無線の両方を含む)を介して該ホスト装置10と通信可能に構成されるプリンタ装置(画像形成装置)20とを含んでいる。
(First embodiment)
FIG. 1 is a block diagram showing a hardware configuration of a printer system 1 according to an embodiment of the present invention. As shown in FIG. 1, the printer system 1 may be any of a host device 10 and a communication network (LAN, Internet, dedicated line, packet communication network, a combination thereof, etc., and includes both wired and wireless. ), A printer device (image forming device) 20 configured to be communicable with the host device 10.

ホスト装置10は、メインCPU、並列処理プロセッサ11〜14を備える並列処理ユニット15、ROM、RAM、ユーザインタフェース、通信インタフェース等のハードウェアを備えている。本実施形態では、並列処理ユニット15が4つのプロセッサ11〜14を備える構成としているが、プロセッサ数は設計に応じて2以上の任意の数(例えば8)とすることができる。   The host device 10 includes hardware such as a main CPU, a parallel processing unit 15 including parallel processors 11 to 14, a ROM, a RAM, a user interface, and a communication interface. In the present embodiment, the parallel processing unit 15 includes four processors 11 to 14, but the number of processors can be any number greater than or equal to 2 (for example, 8) depending on the design.

ホスト装置10は、プリンタ装置20に印刷を実行させるため必要な通常の制御機能として、プリンタドライバ手段16を備えている。   The host device 10 includes a printer driver unit 16 as a normal control function necessary for causing the printer device 20 to execute printing.

プリンタドライバ手段16は、通常のプリンタドライバと同様の機能構成であり、例えば、ホスト装置10上で動作するアプリケーションプログラムからの印刷要求に応じて、ポストスクリプト等の所定のプリンタ制御言語により記述された印刷対象データに基づいてラスタイメージを生成するRIP手段、ラスタイメージに対して所定の画像処理(ハーフトーン処理など)を施して印刷イメージを作成する画像処理手段などを備える。   The printer driver unit 16 has the same functional configuration as that of a normal printer driver, and is described in a predetermined printer control language such as a postscript in response to a print request from an application program operating on the host device 10, for example. RIP means for generating a raster image based on data to be printed, image processing means for creating a print image by performing predetermined image processing (halftone processing, etc.) on the raster image, and the like.

ただし、本実施形態のプリンタドライバ手段16は、後述するように、印刷イメージを構成する個々の走査ラインに対し、各画素の階調データが連続して配置されるデータ列を生成するパック処理を施し、並列処理ユニット15を用いて、並列に画像圧縮処理を実行する圧縮制御手段17と、並列処理ユニット15による圧縮処理結果をプリンタ装置20へ転送する転送手段18とを備えている点で、従来の構成と異なっている(図2参照)。   However, as will be described later, the printer driver unit 16 of the present embodiment performs a pack process for generating a data string in which gradation data of each pixel is continuously arranged for each scanning line constituting the print image. And a compression control means 17 for executing image compression processing in parallel using the parallel processing unit 15 and a transfer means 18 for transferring the compression processing result by the parallel processing unit 15 to the printer device 20. This is different from the conventional configuration (see FIG. 2).

なお、これらの各手段は、ホスト装置10内のROMやRAM、外部の記憶媒体等に格納されるプログラムをメインCPUが実行することにより機能的に実現される。   Each of these means is functionally realized by the main CPU executing a program stored in a ROM or RAM in the host device 10 or an external storage medium.

プリンタ装置20は、動力機構部とプリンタコントローラ26を備えている。   The printer device 20 includes a power mechanism unit and a printer controller 26.

動力機構部は、用紙をプリンタ内に供給する給紙機構、印字を行う印刷エンジン、及び用紙をプリンタ機外に排出する排紙機構等により構成される。印刷エンジンは、例えば、インクジェットプリンタや熱転写プリンタのように1文字単位で印刷するシリアルプリンタ、1行単位で印刷するラインプリンタ、ページ単位で印刷するページプリンタ等に対応する各種印刷エンジンを用いることができる。   The power mechanism unit includes a paper feed mechanism that supplies paper into the printer, a print engine that performs printing, and a paper discharge mechanism that discharges paper outside the printer. As the print engine, for example, a serial printer that prints in units of characters, such as an inkjet printer or a thermal transfer printer, a line printer that prints in units of lines, a page printer that prints in units of pages, and the like are used. it can.

プリンタコントローラ26は、メインCPU、プロセッサ21〜24を備える並列処理ユニット25、ROM、RAM、ユーザインタフェース、通信インタフェース等を備えている。なお、本実施形態では、並列処理ユニット25が4つのプロセッサ21〜24を備える構成としているが、プロセッサ数は設計に応じて2以上の任意の数(例えば8)とすることができる。また、動力機構部が独立してCPUを備えていてもよく、その場合は、動力機構部のCPUが、所定の通信路を介して情報処理部のメインCPUと通信を行い、印刷エンジンを制御して印刷動作を行わせることになる。   The printer controller 26 includes a main CPU, a parallel processing unit 25 including processors 21 to 24, a ROM, a RAM, a user interface, a communication interface, and the like. In the present embodiment, the parallel processing unit 25 includes four processors 21 to 24. However, the number of processors can be any number of 2 or more (e.g., 8) depending on the design. In addition, the power mechanism unit may include an independent CPU. In this case, the CPU of the power mechanism unit communicates with the main CPU of the information processing unit via a predetermined communication path to control the print engine. Thus, a printing operation is performed.

プリンタコントローラ26は、通常のプリンタにおけるプリンタコントローラと同様の機能構成であり、例えば、ホスト装置10からコマンドやデータを受信して受信バッファに格納する受信手段、動力機構部を制御して印刷を実行させるエンジン制御手段などを備える。   The printer controller 26 has the same functional configuration as a printer controller in a normal printer. For example, the printer controller 26 receives a command or data from the host device 10 and stores it in a reception buffer, and controls the power mechanism unit to execute printing. The engine control means etc. to be provided are provided.

ただし、本実施形態のプリンタコントローラ26は、後述するように、ビット情報テーブルを記憶する記憶手段27と、並列処理ユニット25を用いて、個々の走査ラインに対して並列に伸長処理を実行する伸長制御手段28と、伸長されたデータから画素ごとのデータを抽出するアンパック手段29と、伸長処理/アンパック処理の結果として得られた印刷イメージを印刷に用いられる順序で印刷エンジンへ転送する転送手段30とを備えている点で、従来の構成と異なっている(図2参照)。   However, as will be described later, the printer controller 26 according to the present embodiment uses the storage unit 27 that stores the bit information table and the parallel processing unit 25 to perform decompression that performs decompression processing in parallel on individual scanning lines. The control means 28, the unpacking means 29 for extracting data for each pixel from the decompressed data, and the transfer means 30 for transferring the print image obtained as a result of the decompression / unpacking process to the print engine in the order used for printing. Is different from the conventional configuration (see FIG. 2).

なお、これらの各手段は、プリンタ装置20内のROMやRAM、外部の記憶媒体等に格納されるプログラムをメインCPUが実行することにより実現される。   Each of these means is realized by the main CPU executing a program stored in a ROM or RAM in the printer device 20, an external storage medium, or the like.

以下、図3等に示すフローチャートや説明図を参照して、プリンタシステム1における印刷処理について説明する。なお、各工程(符号が付与されていない部分的な工程を含む)は処理内容に矛盾を生じない範囲で任意に順番を変更して又は並列に実行することができる。   Hereinafter, the printing process in the printer system 1 will be described with reference to a flowchart and an explanatory diagram shown in FIG. In addition, each process (including the partial process to which the code | symbol is not provided) can be arbitrarily changed in order within the range which does not produce contradiction in the processing content, or can be performed in parallel.

(ホスト装置10における処理)
プリンタドライバ手段16は、外部又はホスト装置10上で動作しているアプリケーションプログラムから印刷要求を受け付けると、プリンタ装置20(プリンタコントローラ26)に対して印刷指示コマンドを送信するとともに、RIP手段などに対して処理の開始を指示する。
(Processing in the host device 10)
When the printer driver unit 16 receives a print request from an application program operating on the outside or the host device 10, the printer driver unit 16 transmits a print instruction command to the printer device 20 (printer controller 26), and also to the RIP unit or the like. To start the process.

RIP手段は、処理開始の指示を受け付けると、アプリケーションプログラムから受け取った、ポストスクリプト等の所定のプリンタ制御言語により記述された印刷対象データに基づいて、ラスタイメージを生成する。なお、アプリケーションプログラム等からラスタイメージの形式で印刷対象データを受け取ることができる場合は、RIP手段による処理は省略できる。   When the RIP unit receives an instruction to start processing, the RIP unit generates a raster image based on print target data described in a predetermined printer control language such as a postscript received from the application program. If the print target data can be received in the form of a raster image from an application program or the like, the processing by the RIP unit can be omitted.

画像処理手段は、前記生成されたラスタイメージに対して所定の画像処理(ハーフトーン処理など)を施し、印刷イメージを生成して、RAMの所定領域に格納する。   The image processing means performs predetermined image processing (halftone processing or the like) on the generated raster image, generates a print image, and stores it in a predetermined area of the RAM.

ここで、本実施形態において採用するハーフトーン処理について説明する。   Here, the halftone process employed in the present embodiment will be described.

本実施形態では、スクリーンテーブルと、ラスタイメージ上の入力階調値と印刷イメージ上の出力階調値との対応関係を複数格納したテーブル(以下、「階調変換テーブル」と呼ぶ。)を用いてハーフトーン処理を行う。   In this embodiment, a screen table and a table (hereinafter referred to as “gradation conversion table”) that stores a plurality of correspondence relationships between input gradation values on a raster image and output gradation values on a print image are used. Halftone processing.

スクリーンテーブルの例を図3(a)に示す。かかる例では9×9サイズのマトリクス内に1〜9の参照番号(識別子)が割り当てられており、各参照番号は、階調変換テーブルに格納される各対応関係を一意に特定している。なお、設計に応じて参照番号を重複させずに割り当ててもよく、また、他の形状・サイズのスクリーンテーブルを用いてもよい。   An example of the screen table is shown in FIG. In this example, reference numbers 1 to 9 (identifiers) are assigned in a 9 × 9 size matrix, and each reference number uniquely identifies each correspondence stored in the gradation conversion table. Note that reference numbers may be assigned without duplication depending on the design, and screen tables having other shapes and sizes may be used.

階調変換テーブルの例を図4に示す。図に示す例では、出力階調値のビット長(表現ビット数)がそれぞれ3ビット、2ビット、1ビットの3種類の対応関係が存在し、参照番号1〜2により特定される対応関係ではビット長は3ビット、参照番号3〜7では2ビット、参照番号8〜9では1ビットとなっている。   An example of the gradation conversion table is shown in FIG. In the example shown in the figure, there are three types of correspondence relationships in which the bit length (number of expression bits) of the output gradation value is 3 bits, 2 bits, and 1 bit, respectively. The bit length is 3 bits, 2 bits for reference numbers 3-7, and 1 bit for reference numbers 8-9.

図からわかるように、ビット長は対応関係(参照番号)が決まれば一意に定まり、対応関係(参照番号)はスクリーンテーブル内の要素位置によって一意に定まることから、ビット長はスクリーンテーブル内の要素位置に応じて定まっているとみなすことができる。図3(b)にスクリーンテーブル内の要素位置にビット長を対応づけたテーブルを示す。かかるテーブルが上述のビット情報テーブルに該当する。   As can be seen from the figure, the bit length is uniquely determined when the correspondence (reference number) is determined, and the correspondence (reference number) is uniquely determined by the element position in the screen table, so the bit length is the element in the screen table. It can be considered that it is determined according to the position. FIG. 3B shows a table in which bit lengths are associated with element positions in the screen table. Such a table corresponds to the bit information table described above.

本ハーフトーン処理では、ラスタイメージの個々の画素に対してスクリーンテーブルを当てはめることで、ラスタイメージ上の1画素が印刷イメージ上の9×9画素に変換される。このとき、印刷イメージ上の9×9画素のそれぞれの階調値は、前記ラスタイメージ上の1画素の階調値を、スクリーンテーブル内の位置に応じて特定される階調変換テーブルを用いてそれぞれ所定のビット長の階調値に変換することで、決定されることになる。従って、このようにして得られた印刷イメージでは、スクリーンテーブル(すなわちビット情報テーブル)を基本パターンとして、ビット長の並びが周期パターンを構成することになる。   In this halftone process, one pixel on the raster image is converted into 9 × 9 pixels on the print image by applying a screen table to each pixel of the raster image. At this time, each gradation value of 9 × 9 pixels on the print image is obtained by using a gradation conversion table in which the gradation value of one pixel on the raster image is specified according to the position in the screen table. Each is determined by converting to a gradation value having a predetermined bit length. Therefore, in the print image obtained in this way, the arrangement of bit lengths forms a periodic pattern using the screen table (that is, the bit information table) as a basic pattern.

このようにしてハーフトーン処理が行われ、印刷イメージが生成されると、圧縮制御手段17は、以下のように並列圧縮処理を実行する。なお、印刷イメージについて1以上の走査ラインが生成された段階で、逐次的に以下の処理を実行するように構成してもよい。   When halftone processing is performed in this way and a print image is generated, the compression control means 17 performs parallel compression processing as follows. Note that the following processing may be executed sequentially when one or more scan lines are generated for the print image.

まず圧縮制御手段17は、前記生成された印刷イメージを構成する主走査方向のライン(以下、単に「走査ライン」と呼ぶ)を副走査方向の順に選択する(図5:ステップS100)。なお、主走査方向、副走査方向は、プリンタ装置20における走査を基準として定めるものとする。   First, the compression control means 17 selects lines in the main scanning direction (hereinafter simply referred to as “scanning lines”) constituting the generated print image in the order of the sub-scanning direction (FIG. 5: Step S100). The main scanning direction and the sub-scanning direction are determined based on scanning in the printer device 20.

次に、圧縮制御手段17は、前記選択した走査ラインを複数の部分領域に分割する(図5:S101)。このとき、圧縮制御手段17は、前記部分領域の境界がビット情報テーブルにより特定される周期パターンの境界の少なくとも1つと一致するように、必要に応じて印刷イメージに対してダミー画素を付加した上で(すなわちパディングを行った上で)分割する(図6参照)。   Next, the compression control means 17 divides the selected scanning line into a plurality of partial areas (FIG. 5: S101). At this time, the compression control unit 17 adds dummy pixels to the print image as necessary so that the boundary of the partial area matches at least one of the boundaries of the periodic pattern specified by the bit information table. (I.e., after padding) (see FIG. 6).

具体的なパディングの方法について説明する。例えば、プロセッサ数をP、印刷イメージの1走査ラインの画素数をM、ビット情報テーブルの水平方向サイズをQとすると、以下のようにパディングで付加するダミー画素数Xを決定する。   A specific padding method will be described. For example, if the number of processors is P, the number of pixels in one scanning line of the print image is M, and the horizontal size of the bit information table is Q, the number of dummy pixels X to be added by padding is determined as follows.

if{ M mod(P×Q)=0 }
then X=0
else X=P×Q−( M mod(P×Q) )
そして、走査ラインの末尾にX個のダミー画素を付加してから、均等なP個の部分領域に分割する。なお、パディングにより付加する画素(ダミー画素)は、その位置さえ記憶しておけば後で除去できるため任意の位置に付加することが可能であるが、ここでは走査ラインの末尾に1ビットのダミー画素を必要な数だけ付加するものとする。このようにパディングした場合、各部分領域の画素数は必ずビット情報テーブルの水平サイズQの倍数となるため、部分領域の境界は周期パターンの境界の少なくとも1つと一致することになる。
if {M mod (P × Q) = 0}
then X = 0
else X = P * Q- (M mod (P * Q))
Then, X dummy pixels are added to the end of the scanning line, and then divided into equal P partial areas. Note that a pixel (dummy pixel) to be added by padding can be removed later if it is stored even if it is stored. However, here, a 1-bit dummy is added at the end of the scanning line. It is assumed that as many pixels as necessary are added. When padding is performed in this way, the number of pixels in each partial area is always a multiple of the horizontal size Q of the bit information table, so that the boundary of the partial area coincides with at least one of the boundaries of the periodic pattern.

以下では、このようにして分割した部分領域を「チャンネル」と呼び、走査ラインにおける並び順にチャンネル番号を付加して各チャンネルを識別するものとする(図7参照)。   Hereinafter, the partial area divided in this way is referred to as a “channel”, and channel numbers are added in order of arrangement in the scanning line to identify each channel (see FIG. 7).

なお、全走査ラインに共通してチャンネルを定めておけば、ステップS101は省略することができる。   Note that step S101 can be omitted if channels are defined in common for all scanning lines.

次に、圧縮制御手段17は、前記選択した走査ラインの各部分データに対し、該部分データ内の各画素の階調データが連続して配置されるデータ列を生成する(パック処理を施す)(図5:ステップS102)。すなわち、部分データの画素数がNであり、各画素のビット長がそれぞれL1〜LNである場合に、前記各画素のデータを並べた(L1+・・・+LN)長のデータ列(以下、「パック部分データ」と呼ぶ)を少なくとも含むデータ列を生成し、RAMの所定領域に格納する。   Next, the compression controller 17 generates, for each partial data of the selected scanning line, a data string in which gradation data of each pixel in the partial data is continuously arranged (a pack process is performed). (FIG. 5: Step S102). That is, when the number of pixels in the partial data is N and the bit length of each pixel is L1 to LN, a data string (hereinafter referred to as “L1 +. A data string including at least “pack partial data” is generated and stored in a predetermined area of the RAM.

例えば図15(a)に示すような階調値を持つ18画素のイメージがあり、各画素のビット長がそれぞれ(L1、・・・、L18)=(1、1、2、2、2、2、2、3、3、1、1、2、2、2、2、2、3、3)である場合、圧縮制御手段17は、図15(c)に示すような、9つの画素の階調データを並べた(1+1+2+2+2+2+2+3+3+1+1+2+2+2+2+2+3+3)=36ビット長のパック部分データを少なくとも含む5バイトのデータ列を生成することになる。このようにして生成されたパック部分データは、最終バイトを除いて、1バイト中に複数画素の階調データが連続して(埋まって)格納されており、従来のように各画素をバイト単位に嵩上げしてデータを扱う場合に生じていた未使用ビットは存在していない。   For example, there is an image of 18 pixels having gradation values as shown in FIG. 15A, and the bit length of each pixel is (L1,..., L18) = (1, 1, 2, 2, 2, 2, 2, 3, 3, 1, 2, 2, 2, 2, 2, 3, 3), the compression control means 17 uses nine pixels as shown in FIG. A 5-byte data string including at least pack part data of 36 bits in length is generated by arranging gradation data (1 + 1 + 2 + 2 + 2 + 2 + 2 + 2 + 3 + 3 + 1 + 1 + 2 + 2 + 2 + 2 + 2 + 2 + 3 + 3). In the pack part data generated in this way, gradation data of a plurality of pixels is continuously stored (buried) in one byte except for the last byte, and each pixel is stored in units of bytes as in the past. However, there is no unused bit that has been generated when handling data by raising it.

次に、圧縮制御手段17は、前記複数のチャンネルのそれぞれにプロセッサ11〜14のうち少なくとも1つを割り当てる(図5:ステップS103)。具体的には、チャンネル1にはプロセッサ11、チャンネル2にはプロセッサ12というように、チャンネルとプロセッサの組み合わせを固定して割り当てるものとする。   Next, the compression control means 17 assigns at least one of the processors 11 to 14 to each of the plurality of channels (FIG. 5: Step S103). Specifically, a combination of a channel and a processor is fixedly assigned, such as a processor 11 for channel 1 and a processor 12 for channel 2.

次に、圧縮制御手段17は、前記割り当てたプロセッサが新たなデータを処理できるかどうかを判断し、処理できる場合には、対応するパック部分データの先頭位置を前記割り当てたプロセッサに渡し、該パック部分データの読み出しを指示する(図5:ステップS104)。   Next, the compression control means 17 determines whether or not the allocated processor can process new data. If the allocated data can be processed, the compression control means 17 passes the head position of the corresponding packed partial data to the allocated processor, and An instruction to read the partial data is given (FIG. 5: Step S104).

ここで、プロセッサが新たなデータを処理できる場合とは、該プロセッサが次の処理結果を新たに書き込むことができる場合である。判断方法としては、例えばプロセッサ11〜14のそれぞれによって書き込み可能な出力バッファが1つの部分データの処理結果に対応する容量である場合、処理結果を転送したかどうかによって新たに書き込みできるか否かが決まるため、プロセッサごとに処理結果が転送済みであるかどうかを示す転送終了フラグを用意して、該フラグに基づいてプロセッサが新たなデータを処理できるかどうかを判断する構成を考えることができる。   Here, the case where the processor can process new data is a case where the processor can newly write the next processing result. As a determination method, for example, when an output buffer writable by each of the processors 11 to 14 has a capacity corresponding to the processing result of one partial data, whether or not new writing can be performed depending on whether or not the processing result has been transferred. Therefore, a configuration can be considered in which a transfer end flag indicating whether or not the processing result has been transferred for each processor is prepared, and whether or not the processor can process new data based on the flag.

次に、圧縮制御手段17は、前記生成された印刷イメージを構成する走査ラインのうち未選択の走査ラインがある場合は、ステップS100に戻る(図5:ステップS105)。   Next, when there is an unselected scan line among the scan lines constituting the generated print image, the compression control unit 17 returns to Step S100 (FIG. 5: Step S105).

並列処理ユニット15の各プロセッサ11〜14は、圧縮制御手段17からパック部分データの先頭位置及び読み出し指示を受け付けると(図8:ステップS200:YES)、RAMの所定領域から該先頭位置に基づいてパック部分データを読み出す(図8:ステップS201)。   When each of the processors 11 to 14 of the parallel processing unit 15 receives the head position and the read instruction of the pack partial data from the compression control means 17 (FIG. 8: Step S200: YES), it is based on the head position from a predetermined area of the RAM. Pack part data is read (FIG. 8: step S201).

そして、前記読み出したパック部分データに対して所定の圧縮処理を実行して圧縮部分データを生成し(図8:ステップS202)、該圧縮部分データを自己の出力バッファに書き込む(図8:ステップS203)。なお、所定の圧縮処理としては、設計に応じて従来の種々の圧縮アルゴリズムを採用することができ、例えば印刷イメージが2値データの場合であれば、JBIG(Joint Bi−level Image Experts Group)のアルゴリズムを採用することが考えられる。   Then, a predetermined compression process is performed on the read packed partial data to generate compressed partial data (FIG. 8: step S202), and the compressed partial data is written in its own output buffer (FIG. 8: step S203). ). As the predetermined compression processing, various conventional compression algorithms can be adopted depending on the design. For example, if the print image is binary data, JBIG (Joint Bi-level Image Experts Group). It is conceivable to adopt an algorithm.

転送手段18は、チャンネルの並び順にサイクリックに該チャンネルに対応するプロセッサを選択する(図9:ステップS300)。   The transfer means 18 cyclically selects a processor corresponding to the channel in the order of channel arrangement (FIG. 9: step S300).

次に、転送手段18は、前記選択したプロセッサにおいてパック部分データの圧縮処理が終了し、かつプリンタ装置20(プリンタコントローラ26)が圧縮部分データを受信可能である場合に(図9:ステップS301:YES)、該プロセッサの出力バッファから圧縮部分データをプリンタ装置20(プリンタコントローラ26)に転送する(図9:ステップS302)。このとき、圧縮部分データの境界が検出できるように、圧縮部分データの終端に(又は最初に)所定の境界情報を追加して転送する。   Next, the transfer means 18 completes the compression process of the pack part data in the selected processor and the printer device 20 (printer controller 26) can receive the compressed part data (FIG. 9: Step S301: YES), the compressed partial data is transferred from the output buffer of the processor to the printer device 20 (printer controller 26) (FIG. 9: Step S302). At this time, predetermined boundary information is added and transferred at the end (or first) of the compressed partial data so that the boundary of the compressed partial data can be detected.

次に、転送手段18は、圧縮部分データの転送が終了した場合、該プロセッサのプロセッサ別転送終了フラグをONとする(図9:ステップS303)。該プロセッサのプロセッサ別転送終了フラグは、圧縮制御手段17が該プロセッサに読み出し指示を与える際にOFFに戻されることになる。   Next, when the transfer of the compressed partial data is completed, the transfer unit 18 turns on the transfer end flag for each processor of the processor (FIG. 9: step S303). The per-processor transfer end flag of the processor is returned to OFF when the compression control means 17 gives a read instruction to the processor.

次に、転送手段18は、前記生成された印刷イメージについて、まだ全ての圧縮部分データを転送していない場合は、ステップS300に戻る(図9:ステップS304)。   Next, the transfer means 18 returns to step S300 when not all the compressed partial data has been transferred for the generated print image (FIG. 9: step S304).

かかる構成によれば、1つの走査ラインを構成する各チャンネルに対して(すなわち、各部分データに対して)並列に圧縮処理が実行されるため、個々の走査ラインについての圧縮処理時間を短縮することができる。特に、最初の1走査ラインの圧縮処理時間が短縮されることで、印刷イメージの圧縮処理を開始してから最初の走査ラインの圧縮処理が終了し、その処理結果がプリンタ装置20(プリンタコントローラ26)へ転送されるまでの時間を短縮すること可能となり、立ち上がりの早い圧縮処理(ひいては印刷処理)を実現することができる。   According to such a configuration, the compression processing is performed in parallel for each channel constituting one scan line (that is, for each partial data), so the compression processing time for each scan line is shortened. be able to. In particular, since the compression processing time for the first scan line is shortened, the compression processing for the first scan line is completed after the compression processing for the print image is started, and the processing result is the printer device 20 (printer controller 26). It is possible to shorten the time until the data is transferred to (), and it is possible to realize a compression process (and thus a print process) that starts quickly.

また、各部分データに対して、複数画素の階調データが連続して配置されるデータ列を生成してから(すなわち、パックしてから)、該データ列を対象として圧縮処理を行う構成としているため、イメージの各画素の階調データをバイト単位に嵩上げしてから画像処理を行う従来の構成に比べて、画像処理の実行に必要なメモリ領域の容量、演算対象となるデータ量を抑制して、効率よく圧縮処理を実行することができる。   In addition, for each partial data, after generating a data string in which gradation data of a plurality of pixels are continuously arranged (that is, after packing), compression processing is performed on the data string. Therefore, compared to the conventional configuration that performs image processing after increasing the gradation data of each pixel of the image in units of bytes, the amount of memory area required for executing image processing and the amount of data to be calculated are suppressed. Thus, the compression process can be executed efficiently.

(プリンタ装置20における処理)
プリンタコントローラ26は、受信手段において受信したコマンドが印刷指示コマンドである場合、エンジン制御手段により動力機構部を制御して印刷の準備を整えるとともに、伸長制御手段28等に対して処理の開始を指示する。
(Processing in the printer device 20)
When the command received by the receiving means is a print instruction command, the printer controller 26 controls the power mechanism unit by the engine control means to prepare for printing, and instructs the expansion control means 28 and the like to start processing. To do.

伸長制御手段28は、処理開始の指示を受け付けると、データ受信バッファから次に読み出される予定の圧縮部分データ(チャンネル)に対して、プロセッサ21〜24のうち少なくとも1つを割り当てる(図10:S400)。   When receiving the instruction to start processing, the decompression control means 28 assigns at least one of the processors 21 to 24 to the compressed partial data (channel) to be read next from the data reception buffer (FIG. 10: S400). ).

具体的には、チャンネル1の圧縮部分データにはプロセッサ21、チャンネル2の圧縮部分データにはプロセッサ22というように、チャンネルとプロセッサの組み合わせを固定して割り当てるものとする。   Specifically, a combination of a channel and a processor is fixedly assigned, such as a processor 21 for the compressed partial data of channel 1 and a processor 22 for the compressed partial data of channel 2.

ここで、データ受信バッファは、例えばRAM上にFIFOタイプのバッファとして(又はFIFOタイプメモリにより)構成することが望ましい。この場合、上述したように、ホスト装置10の転送手段18はチャンネルの並び順に圧縮部分データをプリンタ装置20(プリンタコントローラ26)へ転送する構成となっているため、データ受信バッファにおける圧縮部分データの書き込み/読み出しもチャンネルの並び順となる。そのため、伸長制御手段27は、次に読み出される予定の圧縮部分データがどのチャンネルに対応するかについて特定することができ、プロセッサとチャンネルの組み合わせを固定して割り当てることが可能となる。   Here, it is desirable to configure the data reception buffer as a FIFO type buffer (or by a FIFO type memory) on the RAM, for example. In this case, as described above, since the transfer means 18 of the host device 10 is configured to transfer the compressed partial data to the printer device 20 (printer controller 26) in the order of the channels, the compressed portion data in the data reception buffer is transferred. Writing / reading is also the order of channels. Therefore, the decompression control means 27 can specify which channel the compressed partial data to be read out next corresponds to, and can assign a fixed combination of processor and channel.

次に、伸長制御手段28は、前記割り当てたプロセッサが新たなデータを処理できるかどうかを判断し、可能な場合にはデータ受信バッファからの圧縮部分データの読み出しを指示する(図10:ステップS401)。   Next, the decompression control means 28 determines whether or not the allocated processor can process new data, and if possible, instructs the reading of the compressed partial data from the data reception buffer (FIG. 10: step S401). ).

ここで、例えばプロセッサ21〜24のそれぞれによって書き込み可能な出力バッファが1つの部分データに対応する容量である場合、上記判断は圧縮制御手段17と同様に転送終了フラグに基づいて行うことができる。   Here, for example, when the output buffer writable by each of the processors 21 to 24 has a capacity corresponding to one partial data, the above determination can be made based on the transfer end flag in the same manner as the compression control means 17.

次に、伸長制御手段28は、まだ伸長していない圧縮部分データがある場合はステップS400に戻る(図10:ステップS402)。   Next, when there is compressed partial data that has not been decompressed, the decompression control means 28 returns to step S400 (FIG. 10: step S402).

並列処理ユニット25の各プロセッサ21〜24は、伸長制御手段27から圧縮部分データの読み出し指示を受け付けると(図11:ステップS500:YES)、データ受信バッファの読み出し位置にある圧縮部分データを読み出す(図11:ステップS501)。各プロセッサは、圧縮部分データに対して追加された境界情報を検出することで、圧縮部分データの読み出し開始/終了位置を特定することができる。   When each processor 21 to 24 of the parallel processing unit 25 receives an instruction to read compressed partial data from the decompression control means 27 (FIG. 11: step S500: YES), the compressed partial data at the read position of the data reception buffer is read ( FIG. 11: Step S501). Each processor can identify the read start / end position of the compressed partial data by detecting the boundary information added to the compressed partial data.

次に、各プロセッサ21〜24は、前記読み出した圧縮部分データに対して所定の伸長処理を実行して、対応するパック部分データを生成し(図11:ステップS502)、該パック部分データを自己の出力バッファに格納する(図11:ステップS503)。なお、伸長処理は、ホスト装置10の並列処理ユニット15において採用した圧縮アルゴリズムに対応する伸長処理を採用する必要がある。   Next, each of the processors 21 to 24 executes a predetermined decompression process on the read compressed partial data to generate corresponding packed partial data (FIG. 11: step S502), and the packed partial data is stored in the processor itself. (FIG. 11: Step S503). The decompression process needs to employ the decompression process corresponding to the compression algorithm employed in the parallel processing unit 15 of the host device 10.

アンパック手段29は、印刷に用いられる順序でデータをアンパックすべく、副走査方向の順に走査ラインを選択する(図12:ステップS600)。   The unpacking means 29 selects scanning lines in the order of the sub-scanning direction in order to unpack the data in the order used for printing (FIG. 12: step S600).

次に、アンパック手段29は、前記選択した走査ラインについて、印刷に用いられる順に、すなわち並び順にチャンネルを選択する(図12:ステップS601)。   Next, the unpacking unit 29 selects channels for the selected scanning line in the order used for printing, that is, in the order of arrangement (FIG. 12: step S601).

次に、アンパック手段29は、前記選択したチャンネルに対応するプロセッサの出力バッファにパック部分データが伸長された状態で格納されているかどうかを判断する(図12:ステップS602)。そして、格納されていると判断した場合に、該パック部分データを読み出す(図12:ステップS603)。   Next, the unpacking means 29 determines whether or not the packed partial data is stored in an expanded state in the output buffer of the processor corresponding to the selected channel (FIG. 12: step S602). When it is determined that the data is stored, the pack partial data is read (FIG. 12: step S603).

ここで、前記読み出したパック部分データにはビット長が異なる画素の階調データが混在してパックされた状態となっているため、このパック部分データから各画素の階調データを抽出するためには、画素ごとの階調データの区切りを知っておく必要がある。本実施形態では、プリンタコントローラ26が、ホスト装置10において実施したハーフトーン処理により特定されるビット情報テーブルを記憶するビット情報テーブル記憶手段27を備えており、該記憶手段27を参照することで画素ごとの階調データの区切りを把握することができるように構成している。   Here, since the read packed portion data is packed with gradation data of pixels having different bit lengths, in order to extract the gradation data of each pixel from the packed portion data. It is necessary to know the separation of gradation data for each pixel. In the present embodiment, the printer controller 26 includes a bit information table storage unit 27 that stores a bit information table specified by the halftone process performed in the host device 10. By referring to the storage unit 27, the pixel information is stored. It is configured so that the separation of the gradation data for each can be grasped.

アンパック手段29は、ビット情報テーブル記憶手段27を参照して、前記選択した走査ラインに対応する周期パターン(ビット長の並びパターン)を取得する(図12:ステップS604)。例えば、ビット情報テーブルの垂直方向のサイズをPとすると、第Q走査ラインの周期パターンは、ビット情報テーブルの第(QmodP)ラインのビット長の並びとなる。   The unpacking means 29 refers to the bit information table storage means 27 and acquires a periodic pattern (bit length arrangement pattern) corresponding to the selected scanning line (FIG. 12: step S604). For example, if the vertical size of the bit information table is P, the periodic pattern of the Qth scan line is an array of bit lengths of the (QmodP) line of the bit information table.

そして、前記取得した周期パターンに基づいて、前記パック部分データに含まれる各画素の階調データを抽出する(図12:ステップS605)。ただし、パディングにより追加されたダミー画素については階調データを抽出する必要はない。例えば走査ラインの末尾に1ビットのダミー画素を付加する場合であれば、ホスト装置10からダミー画素数Xの値を受け取り、最終チャンネルのパック部分データについてXビットを残して抽出を終了すればよい。   Then, based on the acquired periodic pattern, gradation data of each pixel included in the pack partial data is extracted (FIG. 12: Step S605). However, it is not necessary to extract gradation data for dummy pixels added by padding. For example, if a 1-bit dummy pixel is added to the end of the scanning line, the value of the number of dummy pixels X is received from the host device 10 and the extraction is completed with the X bits remaining for the pack portion data of the final channel. .

ここで、上述したように、ホスト装置10において実施される圧縮制御処理では、チャンネルの境界がビット情報テーブルにより特定される周期パターンの境界の少なくとも1つと一致するように分割し、その上で各チャンネルの部分データをパックして、パック部分データを生成している。この場合、各チャンネルの開始位置とビット長の並びの周期パターンの開始位置とが常に整合し、パック部分データには先頭から周期パターンに一致したビット長で画素がパックされることになる。そのため、アンパック手段29は、いずれのチャンネルについても、パック部分データの先頭から、前記選択した走査ラインに対応する周期パターンの順にビット長のデータを抽出していけば、該パック部分データに含まれる各画素の階調データを抽出することができる。   Here, as described above, in the compression control processing performed in the host device 10, the channel boundary is divided so as to coincide with at least one of the boundary of the periodic pattern specified by the bit information table, and then each of them is divided. The partial data of the channel is packed to generate packed partial data. In this case, the start position of each channel and the start position of the periodic pattern of the bit length are always matched, and the packed partial data is packed with pixels with the bit length that matches the periodic pattern from the beginning. Therefore, if the unpacking means 29 extracts bit length data in the order of the periodic pattern corresponding to the selected scanning line from the head of the packed portion data for any channel, it is included in the packed portion data. The gradation data of each pixel can be extracted.

図14は、アンパックする様子を示す図である。例えばパック部分データが図14(a)に示すようなデータ列となっており、周期パターンが図14(b)に示すような値を有する場合、各画素の階調データは、図14(c)に示すように、1ビット、1ビット、2ビット、2ビット、2ビット、2ビット、2ビット、3ビット、3ビット、・・・の順にパック部分データから抽出され、図14(d)に示すような値が得られる。   FIG. 14 is a diagram showing a state of unpacking. For example, when the pack portion data is a data string as shown in FIG. 14A and the periodic pattern has a value as shown in FIG. 14B, the gradation data of each pixel is shown in FIG. As shown in FIG. 14 (d), it is extracted from the packed portion data in the order of 1 bit, 1 bit, 2 bits, 2 bits, 2 bits, 2 bits, 2 bits, 3 bits, 3 bits,. The value shown in is obtained.

次に、アンパック手段29は、例えば印刷エンジンが面積階調により印刷可能なタイプであれば、前記パック部分データに含まれる各画素について、該画素の前記抽出した階調データに基づき1ドットあたりの面積比率データ(=該画素の階調値/該画素のビット長の最大階調値)を求め、例えばRAM上に実現されたFIFOタイプの転送用バッファに画素の並び順に格納する(図12:ステップS606)。   Next, if the printing engine is a type that can print by area gradation, for example, the unpacking means 29 is arranged for each pixel included in the packed portion data for each dot based on the extracted gradation data of the pixel. The area ratio data (= the gradation value of the pixel / the maximum gradation value of the bit length of the pixel) is obtained and stored in, for example, a FIFO type transfer buffer realized on the RAM in the order of arrangement of the pixels (FIG. 12: Step S606).

次に、アンパック手段29は、前記選択したチャンネルについて全画素の階調データを抽出し終わった後、前記選択したチャンネルに対応するプロセッサの転送終了フラグをONにする(図12:ステップS607)。なお、各プロセッサの転送終了フラグは、伸長制御手段28が該プロセッサに読み出し指示を与える際に、OFFに戻される。   Next, after extracting the gradation data of all the pixels for the selected channel, the unpack unit 29 turns on the transfer end flag of the processor corresponding to the selected channel (FIG. 12: step S607). The transfer end flag of each processor is returned to OFF when the decompression control means 28 gives a read instruction to the processor.

次に、アンパック手段29は、前記選択した走査ラインについて未選択のチャンネルがある場合はS601へ戻り(図12:ステップS608)、そうでない場合であって未選択の走査ラインがある場合は、次の走査ラインを選択すべくS600に戻る(図12:ステップS609)。   Next, if there is an unselected channel for the selected scanning line, the unpacking unit 29 returns to S601 (FIG. 12: step S608), and if not, if there is an unselected scanning line, The process returns to S600 to select the scan line (FIG. 12: step S609).

転送手段30は、転送用バッファに1走査ライン分のデータが格納されているかどうかを判断し(図13:ステップS700)、格納されていると判断した場合に、その1走査ライン分のデータを読み出して、印刷エンジンへ転送する(図13:ステップS701)。なお、FIFOタイプの転送バッファにはアンパック手段29によって印刷に用いられる順に部分データが格納されているため、転送手段30は、転送バッファから順番に読み出して転送すれば、印刷に用いられる順序で印刷エンジンへ転送することができる。   The transfer means 30 determines whether or not data for one scan line is stored in the transfer buffer (FIG. 13: step S700), and when it is determined that the data is stored, the data for one scan line is stored. The data is read out and transferred to the print engine (FIG. 13: Step S701). Since the partial data is stored in the FIFO type transfer buffer in the order used for printing by the unpack unit 29, the transfer unit 30 prints in the order used for printing if it is read from the transfer buffer in order and transferred. Can be transferred to the engine.

かかる構成によれば、1つの走査ラインを構成する各チャンネルに対して(すなわち、各圧縮部分データに対して)並列に伸長処理が実行されるため、個々の走査ラインについての伸長処理時間を短縮することができる。   According to this configuration, since the decompression process is executed in parallel for each channel constituting one scan line (that is, for each compressed partial data), the decompression process time for each scan line is shortened. can do.

特に、最初の1走査ラインの伸長処理時間が短縮されることで、圧縮された印刷イメージの伸長処理を開始してから最初の走査ラインについて伸長処理が終了し、その処理結果が印刷エンジンへ転送されるまでの時間を短縮すること可能となり、立ち上がりの早い伸長処理(ひいては印刷処理)を実現することができる。   In particular, since the decompression time of the first scan line is shortened, the decompression process is completed for the first scan line after the decompression process of the compressed print image is started, and the processing result is transferred to the print engine. It is possible to shorten the time until the image is processed, and it is possible to realize a decompression process (and thus a print process) that starts quickly.

更に、各プロセッサの出力バッファに1走査ライン分の部分データが揃った段階で印刷エンジンへ転送し、転送が終了した段階で次のラインについて伸長処理を行う、すなわち、走査ライン単位で同期して伸長処理及び転送処理を行う構成となっているため、伸長処理結果である部分データを格納するメモリ領域として最低1走査ライン分の容量のメモリ領域が有れば(具体的には、各プロセッサの出力バッファの容量≧1走査ライン分のメモリ容量/プロセッサ数、となっていれば)、並列化によってスループットを向上させることが可能となる。   Furthermore, when the partial data for one scanning line is prepared in the output buffer of each processor, it is transferred to the printing engine, and when the transfer is completed, the next line is expanded, that is, synchronized in units of scanning lines. Since the decompression process and the transfer process are performed, if there is a memory area with a capacity of at least one scan line as a memory area for storing partial data as a decompression process result (specifically, each processor has If the capacity of the output buffer is equal to or larger than the memory capacity for one scanning line / the number of processors), it is possible to improve the throughput by parallelization.

言い換えれば、従来のように1つの走査ライン(又は1バンド)に1つのプロセッサを割り当てて並列処理した場合には、伸長処理結果を格納するメモリ領域として最低でもプロセッサ数と同数の走査ライン数分(又はバンド数分)のメモリ領域がなければプロセッサ数に応じた並列化による効果が得られないのに対し、本実施形態のように、1つの部分データに1つのプロセッサを割り当てて並列処理した場合には、プロセッサごとに部分データに対応するメモリ領域があれば足り、プロセッサごとに1走査ライン分のメモリ領域を用意する必要はないことから、伸長処理結果を格納するメモリ領域としてプロセッサ数より少ない走査ライン数分のメモリ領域しか利用できない場合でも、プロセッサ数に応じた並列化による効果を得ることができる。   In other words, when one processor is assigned to one scan line (or one band) and processed in parallel as in the prior art, the number of scan lines is the same as the number of processors as the memory area for storing the decompression processing result. If there is no memory area for the number of bands (or the number of bands), the effect of parallelization according to the number of processors cannot be obtained, whereas one processor is assigned to one partial data for parallel processing as in this embodiment. In this case, it is sufficient that each processor has a memory area corresponding to partial data, and it is not necessary to prepare a memory area for one scanning line for each processor. Even when only a small number of memory areas can be used, the effect of parallelization according to the number of processors can be obtained. It can be.

例えば、伸長処理の並列化により、(1走査ラインの伸長処理時間)≒MAX{各プロセッサの圧縮部分データの伸長処理時間}となるため、適切なプロセッサ数を備えることで、(1走査ラインの伸長処理時間)<(印刷エンジンにおける1走査ラインの印刷に要する時間)とすることができ、一定速度でライン単位の印刷データをエンジンに供給し続ける必要があるレーザプリンタ等に対してもリアルタイムに対応することができる。   For example, by parallelizing decompression processing, (expansion processing time of one scan line) ≈MAX {expansion processing time of compressed partial data of each processor}, by providing an appropriate number of processors, Elongation processing time) <(time required for printing one scanning line in the print engine), and in real time even for a laser printer or the like that needs to continuously supply the print data for each line to the engine at a constant speed Can respond.

更に、各プロセッサは、自己の伸長処理結果であるパック部分データがアンパックされ転送用バッファに転送された段階で次の圧縮部分データについて伸長処理を開始することができ、従って、転送用バッファから印刷エンジンへの転送処理と並列に伸長処理を実行することが可能となる。   Furthermore, each processor can start the decompression process for the next compressed partial data when the packed partial data, which is the result of its decompression process, is unpacked and transferred to the transfer buffer. It is possible to execute the decompression process in parallel with the transfer process to the engine.

また、上記構成では、複数画素の階調データが連続して配置されるデータ列(すなわちパック部分データ)が伸長処理の出力対象となることから、イメージの各画素の階調データをバイト単位に嵩上げした状態で伸長結果を出力する従来の構成に比べて、画像処理の実行に必要なメモリ領域の容量、演算対象となるデータ量を抑制して、効率よく伸長処理を実行することができる。   Further, in the above configuration, since the data string (that is, the pack portion data) in which the gradation data of a plurality of pixels are continuously arranged is an output target of the decompression process, the gradation data of each pixel of the image is in byte units. Compared to the conventional configuration in which the expansion result is output in a raised state, the capacity of the memory area necessary for executing the image processing and the amount of data to be calculated can be suppressed, and the expansion processing can be executed efficiently.

(その他)
本発明は上記実施形態に限定されることなく、種々に変形して適用することが可能である。例えば、本発明は、プリンタシステム以外、圧縮/伸長処理以外に対しても適用することができる。
(Other)
The present invention is not limited to the above-described embodiment, and can be variously modified and applied. For example, the present invention can be applied to other than the compression / decompression process other than the printer system.

また例えば、上記実施形態では、イメージを構成する少なくとも1つの走査ラインについて、個々の走査ラインを複数の部分領域に分割した場合の、前記部分領域のそれぞれに前記複数のプロセッサのうち少なくとも1つを割り当てて、並列に画像処理を行う構成について説明したが、本発明はこのような構成に限られず、並列処理を前提とせずに、イメージを構成する少なくとも1つの走査ラインについて、該走査ラインの各画素のビット長がそれぞれL1〜LNである場合に、前記各画素のデータを並べた(L1+・・・+LN)長のデータ列を少なくとも対象として、該走査ラインの画像処理を行う構成とすることもできる。   Further, for example, in the above embodiment, when at least one scanning line constituting an image is divided into a plurality of partial areas, at least one of the plurality of processors is provided in each of the partial areas. Although the configuration in which the image processing is performed in parallel has been described, the present invention is not limited to such a configuration, and the parallel processing is not premised, and at least one scanning line constituting the image is set for each of the scanning lines. When the bit length of each pixel is L1 to LN, the scanning line image processing is performed at least for a data string of (L1 +... + LN) length in which the data of each pixel is arranged. You can also.

また例えば、上記実施形態では、プリンタ装置20が並列処理ユニット25、プリンタコントローラ26を備える構成としているが、本発明は必ずしもこのような構成に限られない。例えば並列処理ユニット25やプリンタコントローラ26をプリンタ装置20に接続可能な外部装置として構成することも考えられる。更には、並列処理ユニット25やプリンタコントローラ26を例えばPCIバス等の規格によりホスト装置10に接続可能な装置として構成してもよい。並列処理ユニット25をホスト装置10に接続する構成の場合、ホスト装置10のメインCPU等によってプリンタコントローラ26の各機能を実現する構成としてもよい。   For example, in the above-described embodiment, the printer device 20 includes the parallel processing unit 25 and the printer controller 26. However, the present invention is not necessarily limited to such a configuration. For example, the parallel processing unit 25 and the printer controller 26 may be configured as external devices that can be connected to the printer device 20. Furthermore, the parallel processing unit 25 and the printer controller 26 may be configured as devices that can be connected to the host device 10 according to a standard such as a PCI bus. When the parallel processing unit 25 is connected to the host device 10, the functions of the printer controller 26 may be realized by the main CPU or the like of the host device 10.

また例えば、上記実施形態では、ラスタイメージ上の1画素を印刷イメージ上の9×9画素に変換するハーフトーン処理について説明したが、例えばラスタイメージ上の1画素を印刷イメージ上の1画素に変換するタイプ等のハーフトーン処理を採用してもよい。   For example, in the above-described embodiment, halftone processing for converting one pixel on the raster image into 9 × 9 pixels on the print image has been described. For example, one pixel on the raster image is converted to one pixel on the print image. A halftone process such as a type to perform may be employed.

また例えば、上記実施形態では、1走査ラインをプロセッサ数に応じて均等に部分領域に分割する構成について説明したが、例えばプロセッサのスペック等に応じて割り当てる部分領域の大小を変えるなど、必ずしも均等に分割しなくてもよい。また、部分領域の分割数(チャンネル数)は、必ずしもプロセッサ数と等しくなくてもよい。   For example, in the above-described embodiment, the configuration in which one scan line is equally divided into partial areas according to the number of processors has been described. However, for example, the size of the partial area to be allocated is changed according to the processor specifications and the like. It is not necessary to divide. Further, the number of divisions (number of channels) of the partial area is not necessarily equal to the number of processors.

また例えば、上記実施形態では、チャンネルとプロセッサの組み合わせを固定して割り当てる構成について説明したが、例えば、処理が終了したプロセッサを次のチャンネルに割り当てるように構成してもよい。この場合、走査ラインごとにプロセッサとチャンネルの対応関係が異なる可能性がある。なお、並列処理ユニット15、25のプロセッサのみならず、メインCPUに対してもチャンネルを割り当てて、並列処理を実行する構成としてもよい。   Further, for example, in the above-described embodiment, the configuration in which the combination of the channel and the processor is fixedly described has been described. However, for example, a processor that has finished processing may be allocated to the next channel. In this case, the correspondence between the processor and the channel may be different for each scan line. Note that not only the processors of the parallel processing units 15 and 25 but also the main CPU may be assigned channels to execute parallel processing.

また例えば、上記実施形態では、プロセッサ11〜14がRAMから部分データを読み出す構成について説明としたが、例えばホスト装置10がRAMからプロセッサ11〜14へ部分データを転送する手段(例えば、DMA転送手段)を備える場合は、圧縮制御手段は該手段に対して指示を行えばよい。この場合、プロセッサ11〜14は該手段からの転送を受けて処理を実行することになる。同様に、例えばプリンタ装置20がデータ受信バッファからプロセッサ21〜24へ圧縮部分データを転送する手段(例えば、DMA転送手段)を備える場合は、伸長制御手段は該手段に対して指示を行えばよく、プロセッサ21〜24は該手段からの転送を受けて処理を実行することになる。   Further, for example, in the above embodiment, the configuration in which the processors 11 to 14 read partial data from the RAM has been described. However, for example, the host device 10 transfers means for transferring partial data from the RAM to the processors 11 to 14 (for example, DMA transfer means). ), The compression control means may instruct the means. In this case, the processors 11 to 14 execute processing upon receiving the transfer from the means. Similarly, for example, when the printer device 20 includes means for transferring compressed partial data from the data reception buffer to the processors 21 to 24 (for example, DMA transfer means), the decompression control means may instruct the means. The processors 21 to 24 execute processing in response to the transfer from the means.

また例えば、上記実施形態では、プロセッサ11〜14(プロセッサ21〜24)のそれぞれによって書き込み可能な出力バッファが1つの部分データの処理結果に対応する容量である場合について説明したが、各プロセッサがそれぞれ前記容量以上の出力バッファに書き込み可能となっていてもよい。この場合、各プロセッサは、出力バッファの容量が許す限り次々と圧縮処理(伸長処理)を行うことができる。なお、各プロセッサの出力バッファは、並列処理ユニット内に備える構成のほか、ホスト装置10やプリンタ装置20のRAMの一部を用いて構成してもよい。   Further, for example, in the above embodiment, the case where the output buffers writable by each of the processors 11 to 14 (processors 21 to 24) has a capacity corresponding to the processing result of one partial data has been described. It may be possible to write to an output buffer that is larger than the capacity. In this case, each processor can perform compression processing (decompression processing) one after another as long as the capacity of the output buffer permits. In addition to the configuration provided in the parallel processing unit, the output buffer of each processor may be configured using a part of the RAM of the host device 10 or the printer device 20.

また例えば、上記実施形態では、印刷イメージの全走査ラインについて並列処理を行う構成について説明したが、印刷イメージを構成する少なくとも1つの走査ラインについて本発明を適用すれば、該走査ラインについて圧縮処理時間/伸長処理時間の短縮という効果を得ることができる。   Further, for example, in the above-described embodiment, the configuration in which the parallel processing is performed for all the scan lines of the print image has been described. However, if the present invention is applied to at least one scan line constituting the print image, the compression processing time for the scan line is determined. / An effect of shortening the extension processing time can be obtained.

また例えば、上記実施形態では、転送手段18が逐次的に圧縮部分データをプリンタ装置20へ転送する構成について説明したが、例えば1走査ライン分が揃うまで待ってバースト的に転送する構成としてもよい。このとき、例えば圧縮部分データをいったんRAMに格納してから転送する構成としてもよい。   Further, for example, in the above embodiment, the configuration in which the transfer unit 18 sequentially transfers the compressed partial data to the printer device 20 has been described. . At this time, for example, the compressed partial data may be stored once in the RAM and then transferred.

また例えば、上記実施形態では、転送手段18がチャンネルの並び順に転送する構成について説明したが、圧縮部分データにチャンネルの識別情報を追加して転送することで、並び順と異なる順序で転送する構成とすることもできる。この場合、伸長制御手段27は、前記識別情報に基づいて割り当てるプロセッサを判断することができる。   Further, for example, in the above-described embodiment, the configuration in which the transfer unit 18 transfers the channel in the order of the channels has been described, but the configuration in which the channel identification information is added to the compressed partial data and transferred to transfer in a different order. It can also be. In this case, the expansion control means 27 can determine the processor to be assigned based on the identification information.

また例えば、上記実施形態では、転送手段30が1走査ライン分のデータが揃ったところで印刷エンジンへデータを転送する構成について説明しているが、印刷エンジンのタイプによっては、1走査ライン分のデータが揃うのを待つことなく、又は複数走査ライン分のデータ(例えば1バンド分のデータ)が揃ったところで、印刷エンジンへデータを転送する構成としてもよい。   Further, for example, in the above-described embodiment, a configuration has been described in which the transfer unit 30 transfers data to the print engine when data for one scan line is prepared. However, depending on the type of print engine, data for one scan line is described. Alternatively, the data may be transferred to the print engine without waiting for the data to be aligned or when the data for a plurality of scanning lines (for example, data for one band) is prepared.

また例えば、上記実施形態では、走査ラインごとにチャンネル単位で並列に圧縮/伸長処理を行う構成を前提として、主走査方向について境界一致条件(チャンネル境界が周期パターンの境界の少なくとも1つと一致しているという条件)を満たすように分割する構成としているが、本発明は必ずしもこのような構成に限られるものではない。例えば、複数の走査ラインをまとめてバンドを構成し、バンドごとにチャンネル単位で並列に圧縮/伸長処理を行う構成としてもよく、この場合、副走査方向について境界一致条件(バンド境界が周期パターンの境界の少なくとも1つと一致しているという条件)を満たすようにバンド分割を行う構成を考えることができる。   Further, for example, in the above embodiment, on the premise of the configuration in which compression / decompression processing is performed in parallel for each scanning line for each scanning line, the boundary matching condition (the channel boundary matches with at least one of the boundary of the periodic pattern) However, the present invention is not necessarily limited to such a configuration. For example, a plurality of scanning lines may be combined to form a band, and compression / expansion processing may be performed in parallel for each band in units of channels. In this case, boundary matching conditions (band boundary is a periodic pattern) in the sub-scanning direction may be used. It is possible to consider a configuration in which band division is performed so as to satisfy a condition that it matches at least one of the boundaries.

本発明の実施形態におけるプリンタシステムのハードウェア構成を示すブロック図である。1 is a block diagram illustrating a hardware configuration of a printer system according to an embodiment of the present invention. プリンタドライバ手段16、プリンタコントローラ26の機能構成図を示すブロック図である。2 is a block diagram showing a functional configuration diagram of a printer driver means 16 and a printer controller 26. FIG. スクリーンテーブル、ビット情報テーブルを説明するための図である。It is a figure for demonstrating a screen table and a bit information table. 階調変換テーブルを説明するための図である。It is a figure for demonstrating a gradation conversion table. 圧縮制御手段17の処理内容を示すフローチャートである。4 is a flowchart showing processing contents of a compression control means 17; パディングを行って部分領域に分割する様子を説明するための図である。It is a figure for demonstrating a mode that it divides | segments into a partial area | region by performing padding. チャンネルを説明するための図である。It is a figure for demonstrating a channel. 並列処理ユニット15における処理内容を示すフローチャートである。3 is a flowchart showing processing contents in a parallel processing unit 15. 転送手段18の処理内容を示すフローチャートである。4 is a flowchart showing processing contents of a transfer means 18; 伸長制御手段28の処理内容を示すフローチャートである。5 is a flowchart showing the processing contents of the expansion control means 28. 並列処理ユニット25における処理内容を示すフローチャートである。4 is a flowchart showing processing contents in a parallel processing unit 25. アンパック手段29の処理内容を示すフローチャートである。It is a flowchart which shows the processing content of the unpack means 29. FIG. 転送手段30における処理内容を示すフローチャートである。4 is a flowchart showing processing contents in a transfer means 30. アンパックする様子を説明するための図である。It is a figure for demonstrating a mode that it unpacks. 従来構成及び本発明における、画素データが格納される様子を説明するための図である。It is a figure for demonstrating a mode that pixel data is stored in a conventional structure and this invention.

符号の説明Explanation of symbols

1 プリンタシステム、10 ホスト装置、 11〜14 並列処理用プロセッサ、 15 並列処理ユニット、 16 プリンタドライバ手段、 17 圧縮制御手段、 18 転送手段、 20 プリンタ装置、 21〜24 並列処理用プロセッサ、 25 並列処理ユニット、 26 プリンタコントローラ、 27 ビット情報テーブル記憶手段、 28 伸長制御手段、 29 アンパック手段、30 転送手段   DESCRIPTION OF SYMBOLS 1 Printer system, 10 Host apparatus, 11-14 Processor for parallel processing, 15 Parallel processing unit, 16 Printer driver means, 17 Compression control means, 18 Transfer means, 20 Printer apparatus, 21-24 Processor for parallel processing, 25 Parallel processing Unit, 26 printer controller, 27 bit information table storage means, 28 decompression control means, 29 unpack means, 30 transfer means

Claims (1)

ホスト装置と、該ホスト装置と通信可能に構成されたプリンタ装置とを含んで構成され、ホスト装置及びプリンタ装置のそれぞれが、バイト単位でメモリアクセスを実行する複数のプロセッサを用いて並列に画像処理を行う機能を備えるプリンタシステムであって、
ホスト装置は、
階調変換テーブルによりハーフトーン処理を行うことにより、イメージの各画素の階調データを、ビット長が周期パターンを持つ階調データに変換する画像処理手段と、
イメージを構成する少なくとも1つの走査ラインについて、各部分領域の境界が前記周期パターンの境界の少なくとも1つと一致するようにパディングを行った上で、複数の部分領域へ分割し、前記部分領域のそれぞれに複数のプロセッサのうち少なくとも1つを割り当てて並列に画像圧縮処理を行うように制御する圧縮制御手段と、
走査ラインにおける部分領域の並び順に、各部分領域に対応する圧縮されたデータ(以下、「圧縮部分データ」と呼ぶ)をプリンタ装置へ送信する転送手段とを備え、
前記圧縮制御手段は、
あるプロセッサに対応する部分領域の各画素の前記画像処理手段によって変換された後の階調データのビット長がL1〜LN(L1〜LNのうち少なくとも1つは、他のビット長と異なっている)である場合に、前記画像処理手段によって変換された後の階調データを並べた(L1+・・・+LN)長のデータ列を生成し、かかる生成されたデータ列を対象として該プロセッサが該部分領域の画像圧縮処理を行うように制御し、
プリンタ装置は、
前記周期パターンを記憶する記憶手段と、
前記圧縮部分データをホスト装置から受信し、前記圧縮部分データに複数のプロセッサのうち少なくとも1つを割り当てて並列に画像伸長処理を行うように制御する伸長制御手段と、
画像伸長処理後のデータ列に前記周期パターンを当てはめて各画素のビット長を取得し、前記圧縮部分データに対応する部分領域の各画素の階調データを取得するアンパック手段と、
前記アンパック手段が取得した階調データに基づき、印字を行う印刷エンジンと、を備えることを特徴とするプリンタシステム。
A host apparatus and a printer apparatus configured to be communicable with the host apparatus, and each of the host apparatus and the printer apparatus performs image processing in parallel using a plurality of processors that execute memory access in units of bytes. A printer system having a function of performing
The host device
Image processing means for converting the gradation data of each pixel of the image into gradation data having a bit pattern having a periodic pattern by performing halftone processing using a gradation conversion table;
For at least one scanning line constituting the image , padding is performed so that the boundary of each partial area coincides with at least one of the boundaries of the periodic pattern, and then divided into a plurality of partial areas. a compression control section for controlling the image compression processing in the row Migihitsuji in parallel by assigning at least one of the plurality of processors,
Transfer means for transmitting compressed data corresponding to each partial area (hereinafter referred to as “compressed partial data”) to the printer device in the arrangement order of the partial areas in the scanning line ;
The compression control means includes
The bit length of the gradation data after being converted by the image processing means of each pixel in the partial region corresponding to a certain processor is at least one of L1 to LN (at least one of L1 to LN is different from other bit lengths) ) , A (L1 +... + LN) -length data sequence in which the gradation data converted by the image processing means are arranged is generated, and the processor sets the generated data sequence as the target. Control to perform partial area image compression,
The printer device
Storage means for storing the cycle pattern,
An elongate control means for the compressed partial data received from the host device is controlled to perform image decompression processing in parallel by assigning at least one of the compressed partial data to a plurality of processors,
An unpacking unit that obtains the bit length of each pixel by applying the periodic pattern to the data string after the image decompression process, and obtains the gradation data of each pixel in the partial region corresponding to the compressed partial data;
A printer system comprising: a print engine that performs printing based on the gradation data acquired by the unpacking unit .
JP2003360725A 2003-10-01 2003-10-21 Image processing apparatus and method, and printer system Expired - Fee Related JP4345055B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2003360725A JP4345055B2 (en) 2003-10-21 2003-10-21 Image processing apparatus and method, and printer system
US10/953,415 US7580151B2 (en) 2003-10-01 2004-09-30 Image processing system and method, printing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003360725A JP4345055B2 (en) 2003-10-21 2003-10-21 Image processing apparatus and method, and printer system

Publications (2)

Publication Number Publication Date
JP2005128632A JP2005128632A (en) 2005-05-19
JP4345055B2 true JP4345055B2 (en) 2009-10-14

Family

ID=34640954

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003360725A Expired - Fee Related JP4345055B2 (en) 2003-10-01 2003-10-21 Image processing apparatus and method, and printer system

Country Status (1)

Country Link
JP (1) JP4345055B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006338269A (en) 2005-06-01 2006-12-14 Canon Inc Record system, recording method, recorder and driver
JP4424313B2 (en) 2006-01-30 2010-03-03 コニカミノルタビジネステクノロジーズ株式会社 Image processing apparatus and image forming apparatus
JP5183443B2 (en) * 2008-11-27 2013-04-17 京セラドキュメントソリューションズ株式会社 Image forming apparatus

Also Published As

Publication number Publication date
JP2005128632A (en) 2005-05-19

Similar Documents

Publication Publication Date Title
US7580151B2 (en) Image processing system and method, printing system
US6860203B2 (en) Method and apparatus for printing computer generated images
JP2008193529A (en) Scanning converter, and scanning conversion method
JP3660154B2 (en) Image processing device for printing
JP4345055B2 (en) Image processing apparatus and method, and printer system
JP6772020B2 (en) Image processing device, control method of image processing device, and program
US6995862B1 (en) Image processing apparatus and method and computer program product
JP3655457B2 (en) Printer control device
JP4389199B2 (en) Printer system
JP4200884B2 (en) Image decompression apparatus and method, and image processing system
JP4323618B2 (en) Image processing apparatus and image processing method
JP5093576B2 (en) Printing control apparatus and image forming system
JP4182428B2 (en) Image decompression apparatus and method, and image processing system
JP3573035B2 (en) Color printing system and drawing command generation method used therefor
JP2001096854A (en) Apparatus and method for printing processing
JP5202265B2 (en) Image processing apparatus, program, and control method for image processing apparatus
JP2011197956A (en) Printer control device, and printer apparatus and control method thereof
JPH03114856A (en) Printer data management system
JP4369137B2 (en) Image processing device for printing
JPH11179975A (en) Color printer control device
JP2004254187A (en) Information processor
JP2000255116A (en) Apparatus for processing printing and method for processing printing
JP2005244748A (en) Image processing method and image processing apparatus
JP2000047976A (en) Printer control unit
JPH05205015A (en) Image processor

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060929

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090327

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090401

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090528

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: 20090619

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090702

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120724

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120724

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130724

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees