JP4389199B2 - Printer system - Google Patents

Printer system Download PDF

Info

Publication number
JP4389199B2
JP4389199B2 JP2003343692A JP2003343692A JP4389199B2 JP 4389199 B2 JP4389199 B2 JP 4389199B2 JP 2003343692 A JP2003343692 A JP 2003343692A JP 2003343692 A JP2003343692 A JP 2003343692A JP 4389199 B2 JP4389199 B2 JP 4389199B2
Authority
JP
Japan
Prior art keywords
transfer
processor
data
printer
partial
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
JP2003343692A
Other languages
Japanese (ja)
Other versions
JP2005108114A (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 JP2003343692A priority Critical patent/JP4389199B2/en
Priority to US10/953,415 priority patent/US7580151B2/en
Publication of JP2005108114A publication Critical patent/JP2005108114A/en
Application granted granted Critical
Publication of JP4389199B2 publication Critical patent/JP4389199B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)
  • Record Information Processing For Printing (AREA)
  • Image Processing (AREA)
  • Storing Facsimile Image Data (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.

そこで、本発明は、個々の走査ラインについて処理の高速化を図り、特に、最初の処理結果が得られるまでに要する時間(立ち上がり時間)を短縮することを目的とする。   Therefore, the present invention aims to increase the processing speed for each scanning line, and in particular to shorten the time (rise time) required until the first processing result is obtained.

また、本発明は、複数のプロセッサにより並列化した場合に、必要なメモリ領域を抑制しつつ、スループットの向上を実現することを目的とする。   Another object of the present invention is to realize an improvement in throughput while suppressing a necessary memory area when parallelized by a plurality of processors.

本発明の画像処理装置は、複数のプロセッサを用いて並列に画像処理を行う画像処理装置であって、イメージを構成する少なくとも1つの走査ラインについて、個々の走査ラインを複数の部分領域に分割した場合の、前記部分領域のそれぞれに前記複数のプロセッサのうち少なくとも1つを割り当てて、並列に画像処理を行うことを特徴とする。かかる構成によれば、個々の走査ラインについての画像処理時間を短縮することができる。特に、最初の1走査ラインの画像処理時間が短縮されることで、イメージの画像処理を開始してから最初の走査ラインの画像処理が終了し、その処理結果を利用できるようになるまでの時間を短縮すること可能となり、立ち上がりの早い画像処理の流れを実現することができる。   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. In this case, at least one of the plurality of processors is assigned to each of the partial areas, and image processing is performed in parallel. According to such a configuration, the image processing time for each scanning line can be shortened. In particular, by shortening the image processing time for the first scanning line, the time from the start of image processing to the end of the first scanning line image processing and the use of the processing result Can be shortened, and a flow of image processing that rises quickly can be realized.

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

また好適には、画像処理結果を格納するメモリ領域として、前記複数のプロセッサ数より少ない走査ライン数分のメモリ領域を備えることを特徴とする。   Preferably, the memory area for storing the image processing result is provided with memory areas corresponding to the number of scanning lines smaller than the number of the plurality of processors.

また好適には、走査ラインにおける部分領域の並び順に、対応する画像処理結果を後段の処理装置へ転送する手段を備えることを特徴とする。   Preferably, the apparatus further comprises means for transferring corresponding image processing results to a subsequent processing apparatus in the arrangement order of the partial areas in the scanning line.

また好適には、1走査ライン分の画像処理結果が揃った場合に、該画像処理結果を後段の処理装置へ転送する手段を備えることを特徴とする。   Preferably, the image processing apparatus further comprises means for transferring the image processing result to a subsequent processing apparatus when the image processing results for one scanning line are obtained.

このような本発明の構成によれば、最低1走査ライン分の画像処理結果を格納する容量のメモリ領域が有れば、並列化によって画像処理のスループットを向上させることが可能となる。   According to such a configuration of the present invention, if there is a memory area having a capacity for storing an image processing result for at least one scanning line, it is possible to improve the throughput of the image processing by parallelization.

本発明のプリンタ制御装置は、複数のプロセッサを用いて並列に画像処理を行う機能を備えるプリンタ制御装置であって、イメージを構成する少なくとも1つの走査ラインについて、個々の走査ラインを複数の部分領域に分割した場合の、前記部分領域のそれぞれに前記複数のプロセッサのうち少なくとも1つを割り当てて並列に画像圧縮処理を行い、各部分領域に対応する圧縮されたデータをプリンタ装置へ送信することを特徴とする。   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. And assigning at least one of the plurality of processors to each of the partial areas, performing image compression processing in parallel, and transmitting the compressed data corresponding to each partial area to the printer device. Features.

本発明のプリンタ装置は、複数のプロセッサを用いて並列に画像処理を行う機能を備えるプリンタ装置であって、イメージを構成する少なくとも1つの走査ラインについて、個々の走査ラインを複数の部分領域に分割した場合の、前記部分領域のそれぞれに対応する圧縮部分データをホスト装置から受信し、圧縮部分データに前記複数のプロセッサのうち少なくとも1つを割り当てて並列に画像伸長処理を行うことを特徴とする。   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 for each of at least one scan line constituting an image, each scan line is divided into a plurality of partial areas. In this case, the compressed partial data corresponding to each of the partial areas is received from the host device, and at least one of the plurality of processors is assigned to the compressed partial data to perform image decompression processing in parallel. .

本発明のプリンタシステムは、ホスト装置と、該ホスト装置と通信可能に構成されたプリンタ装置とを含んで構成され、ホスト装置及びプリンタ装置のそれぞれが複数のプロセッサを用いて並列に画像処理を行う機能を備えるプリンタシステムであって、ホスト装置は、イメージを構成する少なくとも1つの走査ラインについて、個々の走査ラインを複数の部分領域に分割した場合の、前記部分領域のそれぞれに複数のプロセッサのうち少なくとも1つを割り当てて並列に画像圧縮処理を行い、各部分領域に対応する圧縮されたデータ(以下、「圧縮部分データ」と呼ぶ)をプリンタ装置へ送信し、プリンタ装置は、イメージを構成する少なくとも1つの走査ラインについて、個々の走査ラインを複数の部分領域に分割した場合の、前記部分領域のそれぞれに対応する圧縮部分データをホスト装置から受信し、圧縮部分データに複数のプロセッサのうち少なくとも1つを割り当てて並列に画像伸長処理を行うことを特徴とする。   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. Image compression processing is performed in parallel by assigning at least one, and compressed data corresponding to each partial area (hereinafter referred to as “compressed partial data”) is transmitted to the printer device, and the printer device forms an image. For at least one scan line, the portion when each scan line is divided into a plurality of partial regions Receiving the compressed partial data corresponding to the respective frequency from the host device, and performs image expansion processing in parallel by assigning at least one of the compressed partial data to the plurality of processors.

本発明の画像処理方法は、複数のプロセッサを用いて並列に画像処理を行う画像処理方法であって、イメージを構成する少なくとも1つの走査ラインについて、個々の走査ラインを複数の部分領域に分割した場合の、前記部分領域のそれぞれに前記複数のプロセッサのうち少なくとも1つを割り当てて並列に画像処理を行うことを特徴とする。   The image processing method of the present invention is an image processing method for performing image processing in parallel using a plurality of processors, and for each of at least one scanning line constituting the image, each scanning line is divided into a plurality of partial regions. In this case, at least one of the plurality of processors is assigned to each of the partial areas, and image processing is performed in parallel.

本発明の画像処理方法は、コンピュータにより実施することができるが、そのためのコンピュータプログラムは、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.

本発明によれば、イメージを構成する個々の走査ラインについて処理の高速化を図り、必要なメモリ領域を抑制しつつ、スループットの向上を実現することができる。   According to the present invention, it is possible to increase the throughput while increasing the processing speed of individual scanning lines constituting an image and suppressing a necessary memory area.

(第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 print target data, image processing means for creating a print image by performing predetermined image processing (screen processing or the like) on the raster image, and the like.

ただし、本実施形態のプリンタドライバ手段16は、後述するように、並列処理ユニット15を用いて、印刷イメージを構成する個々の走査ラインに対して並列に画像圧縮処理を実行する圧縮制御手段17、並列処理ユニット15による圧縮処理結果をプリンタ装置20へ転送する転送手段18を備えている点で、従来の構成と異なっている(図2参照)。   However, as will be described later, the printer driver means 16 of the present embodiment uses a parallel processing unit 15 to perform compression control means 17 for executing image compression processing in parallel on individual scanning lines constituting a print image. This is different from the conventional configuration in that a transfer means 18 for transferring the compression processing result by the parallel processing unit 15 to the printer device 20 is provided (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は、後述するように、並列処理ユニット25を用いて、個々の走査ラインに対して並列に伸長処理を実行する伸長制御手段27、並列処理ユニット25による伸長処理結果を印刷に用いられる順序で印刷エンジンへ転送する転送手段28を備えている点で、従来の構成と異なっている(図2参照)。   However, as will be described later, the printer controller 26 of the present embodiment uses the parallel processing unit 25 to perform decompression control means 27 that performs decompression processing in parallel on individual scanning lines, and decompression processing by the parallel processing unit 25. This is different from the conventional configuration in that it includes transfer means 28 for transferring the results to the print engine in the order used for printing (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〜図9に示すフローチャートを参照して、プリンタシステム1における印刷処理について説明する。なお、各工程(符号が付与されていない部分的な工程を含む)は処理内容に矛盾を生じない範囲で任意に順番を変更して又は並列に実行することができる。   Hereinafter, the printing process in the printer system 1 will be described with reference to the flowcharts shown in FIGS. 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における処理:図3〜図5)
プリンタドライバ手段16は、外部又はホスト装置10上で動作しているアプリケーションプログラムから印刷要求を受け付けると、プリンタ装置20(プリンタコントローラ26)に対して印刷指示コマンドを送信するとともに、RIP手段などに対して処理の開始を指示する。
(Processing in the host device 10: FIGS. 3 to 5)
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 (screen processing or the like) on the generated raster image, generates a print image, and stores it in a predetermined area of the RAM.

圧縮制御手段17は、前記生成された印刷イメージを構成する主走査方向のライン(以下、単に「走査ライン」と呼ぶ)を副走査方向の順に選択する(ステップS100)。なお、主走査方向、副走査方向は、プリンタ装置20における走査を基準として定めるものとする。   The compression control unit 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 (step S100). The main scanning direction and the sub-scanning direction are determined based on scanning in the printer device 20.

次に、圧縮制御手段17は、前記選択した走査ラインを複数の部分領域に分割する(S101)。以下では、かかる部分領域を「チャンネル」と呼び、走査ラインにおける並び順にチャンネル番号を付加して各チャンネルを識別するものとする(図10参照)。   Next, the compression control means 17 divides the selected scanning line into a plurality of partial areas (S101). Hereinafter, such a partial area 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. 10).

次に、圧縮制御手段17は、前記選択した走査ラインにおいて各チャンネルに含まれる印刷イメージ(以下、「部分データ」と呼ぶ)の先頭位置を特定する(ステップS102)。例えば、1走査ラインが2048画素である場合、1つの走査ラインをプロセッサ数に応じて均等に4つの部分領域に分割し、第1画素、第512画素、第1024画素、第1536画素をそれぞれ部分データの先頭位置として特定することが考えられる。   Next, the compression control means 17 specifies the head position of a print image (hereinafter referred to as “partial data”) included in each channel in the selected scanning line (step S102). For example, when one scan line is 2048 pixels, one scan line is equally divided into four partial areas according to the number of processors, and the first pixel, the 512th pixel, the 1024th pixel, and the 1536th pixel are respectively partial. It may be possible to specify the head position of data.

なお、全走査ラインに共通してチャンネルを定め、予め各チャンネルの部分データの先頭位置を特定しておけば、ステップS101〜102は省略することができる。   Note that steps S101 to S102 can be omitted if channels are defined in common for all scanning lines and the head position of partial data of each channel is specified in advance.

次に、圧縮制御手段17は、前記複数のチャンネルのそれぞれにプロセッサ11〜14のうち少なくとも1つを割り当てる(ステップ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 (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は、前記割り当てたプロセッサが新たなデータを処理できるかどうかを判断し、処理できる場合には、対応する部分データの先頭位置を前記割り当てたプロセッサに渡し、該部分データの読み出しを指示する(ステップ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 partial data to the allocated processor, and the partial data Is read out (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に戻る(ステップ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 (Step S105).

並列処理ユニット15の各プロセッサ11〜14は、圧縮制御手段17から部分データの先頭位置及び読み出し指示を受け付けると(ステップS200:YES)、前記生成した印刷イメージを格納したRAMの所定領域から該先頭位置に基づいて部分データを読み出す(ステップS201)。   When each of the processors 11 to 14 of the parallel processing unit 15 receives the start position and read instruction of the partial data from the compression control means 17 (step S200: YES), it starts from the predetermined area of the RAM storing the generated print image. Partial data is read based on the position (step S201).

そして、前記読み出した部分データに対して所定の圧縮処理を実行して圧縮部分データを生成し(ステップS202)、該圧縮部分データを自己の出力バッファに書き込む(ステップS203)。なお、所定の圧縮処理としては、設計に応じて従来の種々の圧縮アルゴリズムを採用することができ、例えば印刷イメージが2値データの場合であれば、JBIG(Joint Bi−level Image Experts Group)のアルゴリズムを採用することが考えられる。   Then, a predetermined compression process is performed on the read partial data to generate compressed partial data (step S202), and the compressed partial data is written in its own output buffer (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は、チャンネルの並び順にサイクリックに該チャンネルに対応するプロセッサを選択する(ステップS300)。   The transfer means 18 cyclically selects a processor corresponding to the channel in the order of channel arrangement (step S300).

次に、転送手段18は、前記選択したプロセッサにおいて部分データの圧縮処理が終了し、かつプリンタ装置20(プリンタコントローラ26)が圧縮部分データを受信可能である場合に(ステップS301:YES)、該プロセッサの出力バッファから圧縮部分データをプリンタ装置20(プリンタコントローラ26)に転送する(ステップS302)。このとき、圧縮部分データの境界が検出できるように、圧縮部分データの終端に(又は最初に)所定の境界情報を追加して転送する。   Next, when the partial data compression processing is completed in the selected processor and the printer device 20 (printer controller 26) can receive the compressed partial data (step S301: YES), the transfer means 18 The compressed partial data is transferred from the output buffer of the processor to the printer device 20 (printer controller 26) (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とする(ステップ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 (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に戻る(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 (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.

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

伸長制御手段27は、処理開始の指示を受け付けると、データ受信バッファから次に読み出される予定の圧縮部分データ(チャンネル)に対して、プロセッサ21〜24のうち少なくとも1つを割り当てる(S400)。   When receiving the processing start instruction, the decompression control means 27 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 (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.

次に、伸長制御手段27は、前記割り当てたプロセッサが新たなデータを処理できるかどうかを判断し、可能な場合にはデータ受信バッファからの圧縮部分データの読み出しを指示する(ステップS401)。   Next, the decompression control means 27 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 (step S401).

ここで、例えばプロセッサ21〜24のそれぞれによって書き込み可能な出力バッファが1つの部分データに対応する容量である場合、上記判断は圧縮制御手段17と同様に転送終了フラグに基づいて行うことができる。ただし、後述するように、転送手段28の動作によって走査ライン単位で転送処理が行われるため、プロセッサ別に転送終了フラグを用意する必要はなく、上記判断は、走査ラインの先頭チャンネルに割り当てたプロセッサについてのみ行えばよいことになる。   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. However, as will be described later, since transfer processing is performed in units of scan lines by the operation of the transfer means 28, there is no need to prepare a transfer end flag for each processor, and the above determination is made for the processor assigned to the first channel of the scan line. You only have to do it.

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

並列処理ユニット25の各プロセッサ21〜24は、伸長制御手段27から圧縮部分データの読み出し指示を受け付けると(ステップS500:YES)、データ受信バッファの読み出し位置にある圧縮部分データを読み出す(ステップS501)。各プロセッサは、圧縮部分データに対して追加された境界情報を検出することで、圧縮部分データの読み出し開始/終了位置を特定することができる。   When each processor 21 to 24 of the parallel processing unit 25 receives an instruction to read compressed partial data from the expansion control unit 27 (step S500: YES), the compressed partial data at the read position of the data reception buffer is read (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は、前記読み出した圧縮部分データに対して所定の伸長処理を実行して、対応する部分データを生成し(ステップS502)、該部分データを自己の出力バッファに格納する(ステップS503)。なお、伸長処理は、ホスト装置10の並列処理ユニット15において採用した圧縮アルゴリズムに対応する伸長処理を採用する必要がある。   Next, each of the processors 21 to 24 executes a predetermined decompression process on the read compressed partial data, generates corresponding partial data (step S502), and stores the partial data in its own output buffer. (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.

転送手段28は、印刷に用いられる順序でデータを送信すべく、副走査方向の順に走査ラインを選択する(S600)。   The transfer unit 28 selects scanning lines in the order of the sub-scanning direction in order to transmit data in the order used for printing (S600).

次に、転送手段28は、前記選択した走査ラインについて、1走査ライン分の部分データが全て伸長された状態で各プロセッサの出力バッファに格納されているかどうかを判断する(S601)。   Next, the transfer unit 28 determines whether or not the partial data for one scan line is stored in the output buffer of each processor in a state where all the partial data for the selected scan line is expanded (S601).

そして、全て伸長された状態で格納されていると判断した場合に、前記選択した走査ラインについて、印刷に用いられる順序でデータを送信すべく、チャンネルの並び順に、対応するプロセッサの出力バッファから部分データを読み出して、印刷エンジンへ転送する(S602)。   When it is determined that all the data is stored in an expanded state, the data is transmitted in the order in which the selected scanning lines are used for printing in the order in which the channels are arranged. Data is read out and transferred to the print engine (S602).

転送手段28は、1走査ライン分のデータの転送が終了した場合、転送終了フラグをONとする(S603)。なお、転送終了フラグは、印刷制御手段が次のラインについてチャンネル1のプロセッサに読み出し指示を与える際にOFFに戻されることになる。   When the transfer of the data for one scanning line is completed, the transfer unit 28 sets the transfer end flag to ON (S603). Note that the transfer end flag is turned OFF when the print control unit gives a read instruction to the processor of the channel 1 for the next line.

そして、前記生成された印刷イメージについて未選択の走査ラインがある場合は、S600に戻る(S604)。   If there is an unselected scan line for the generated print image, the process returns to S600 (S604).

かかる構成によれば、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.

(転送手段28の変形例:図9)
転送手段28の構成では、各プロセッサは1走査ライン分のデータが揃わないと次の走査ラインについての伸長処理を行うことができないため、伸長処理についてはプロセッサ数に応じた並列化による効果を得ることができるものの、伸長処理と印刷エンジンへの転送処理とを並列に実行することはできない。
(Modification of transfer means 28: FIG. 9)
In the configuration of the transfer means 28, each processor cannot perform the decompression process for the next scan line unless the data for one scan line is prepared. Therefore, the decompression process has the effect of parallelization according to the number of processors. However, the decompression process and the transfer process to the print engine cannot be executed in parallel.

そこで、本変形例では、転送手段28に代えて、FIFOタイプの転送用バッファ、各プロセッサの出力バッファから転送用バッファへ転送する第1の転送手段281、転送用バッファから印刷エンジンへ転送する第2の転送手段282を設けることで、伸長処理と印刷エンジンへの転送処理を並列に実行できる構成とする。転送用バッファは、例えばRAM上に、又は専用のFIFOタイプメモリとして構成することができる。また、各転送手段281、282は、プリンタ装置20内のROMやRAM、外部の記憶媒体等に格納されるプログラムをメインCPUが実行することにより実現される。   Therefore, in this modification, instead of the transfer means 28, a FIFO type transfer buffer, a first transfer means 281 for transferring from the output buffer of each processor to the transfer buffer, and a first transfer from the transfer buffer to the print engine. By providing the second transfer means 282, the decompression process and the transfer process to the print engine can be executed in parallel. The transfer buffer can be configured, for example, on a RAM or as a dedicated FIFO type memory. The transfer units 281 and 282 are realized by the main CPU executing a program stored in a ROM or RAM in the printer device 20 or an external storage medium.

具体的には、第1の転送手段281は、印刷に用いられる順序でデータを送信すべく、副走査方向の順に走査ラインを選択する(S700)。   Specifically, the first transfer unit 281 selects scan lines in the order of the sub-scanning direction in order to transmit data in the order used for printing (S700).

次に、第1の転送手段281は、前記選択した走査ラインについて、印刷に用いられる順に、すなわち並び順にチャンネルを選択する(S701)。   Next, the first transfer unit 281 selects channels for the selected scanning lines in the order used for printing, that is, in the order of arrangement (S701).

次に、第1の転送手段281は、前記選択したチャンネルに対応するプロセッサの出力バッファに部分データが伸長された状態で格納されているかどうかを判断する(S702)。そして、格納されていると判断した場合に、前記選択したチャンネルに対応するプロセッサの出力バッファから部分データを読み出して転送用バッファに格納し(S703)、前記選択したチャンネルに対応するプロセッサの転送終了フラグをONにする(S704)。なお、各プロセッサの転送終了フラグは、伸長制御手段が該プロセッサに読み出し指示を与える際に、OFFに戻される。   Next, the first transfer means 281 determines whether or not the partial data is stored in an expanded state in the output buffer of the processor corresponding to the selected channel (S702). If it is determined that the data is stored, the partial data is read from the output buffer of the processor corresponding to the selected channel and stored in the transfer buffer (S703), and the transfer of the processor corresponding to the selected channel is completed. The flag is turned ON (S704). Note that the transfer end flag of each processor is returned to OFF when the decompression control means gives a read instruction to the processor.

次に、第1の転送手段281は、前記選択した走査ラインについて未選択のチャンネルがある場合はS701へ戻り(S705)、そうでない場合であって未選択の走査ラインがある場合は、次の走査ラインを選択すべくS700に戻る(S706)。   Next, if there is an unselected channel for the selected scanning line, the first transfer means 281 returns to S701 (S705), otherwise, if there is an unselected scanning line, The process returns to S700 to select a scan line (S706).

一方、第2の転送手段282は、転送用バッファに1走査ライン分のデータが格納されているかどうかを判断し(S800)、格納されていると判断した場合に、その1走査ライン分のデータを読み出して、印刷エンジンへ転送する(S801)。なお、FIFOタイプの転送バッファには第1の転送手段によって印刷に用いられる順に部分データが格納されているため、第2の転送手段282は、転送バッファから順番に読み出して転送すれば、印刷に用いられる順序で印刷エンジンへ転送することができる。   On the other hand, the second transfer means 282 determines whether or not data for one scanning line is stored in the transfer buffer (S800), and if it is determined that the data is stored, the data for one scanning line is determined. Is transferred to the print engine (S801). Since partial data is stored in the FIFO type transfer buffer in the order used for printing by the first transfer means, the second transfer means 282 reads the data from the transfer buffer in order and transfers it. It can be transferred to the print engine in the order used.

かかる変形例の構成では、各プロセッサは、自己の処理結果である部分データが転送用バッファに転送された段階で次の圧縮部分データについて伸長処理を開始することができ、従って、転送バッファから印刷エンジンへの転送処理(第2の転送手段による処理)と並列に伸長処理を実行することが可能となる。   In the configuration of such a modified example, each processor can start the decompression process for the next compressed partial data at the stage when the partial data that is the processing result of the processor is transferred to the transfer buffer. It is possible to execute the decompression process in parallel with the transfer process to the engine (process by the second transfer unit).

(その他)
本発明は上記実施形態に限定されることなく、種々に変形して適用することが可能である。例えば、本発明は、イメージを圧縮/伸長するシステムであれば、プリンタシステム以外に対しても適用することができる。
(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 a system other than a printer system as long as the system compresses / decompresses an image.

また例えば、上記実施形態では、プリンタ装置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走査ラインをプロセッサ数に応じて均等に部分領域に分割する構成について説明したが、例えばプロセッサのスペック等に応じて割り当てる部分領域の大小を変えるなど、必ずしも均等に分割しなくてもよい。また、部分領域の分割数(チャンネル数)は、必ずしもプロセッサ数と等しくなくてもよい。   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.

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

本発明の実施形態におけるプリンタシステムのハードウェア構成を示すブロック図である。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. 圧縮制御手段17の処理内容を示すフローチャートである。4 is a flowchart showing processing contents of a compression control means 17; 並列処理ユニット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; 伸長制御手段27の処理内容を示すフローチャートである。4 is a flowchart showing the processing contents of an expansion control means 27. 並列処理ユニット25における処理内容を示すフローチャートである。4 is a flowchart showing processing contents in a parallel processing unit 25. 転送手段28の処理内容を示すフローチャートである。3 is a flowchart showing processing contents of a transfer means 28. 転送手段28の変形例における処理内容を示すフローチャートである。10 is a flowchart showing processing contents in a modification of the transfer means 28. チャンネルを説明するための図である。It is a figure for demonstrating a channel.

符号の説明Explanation of symbols

1 プリンタシステム、10 ホスト装置、 11〜14 並列処理用プロセッサ、 15 並列処理ユニット、 16 プリンタドライバ手段、 17 圧縮制御手段、 18 転送手段、 20 プリンタ装置、 21〜24 並列処理用プロセッサ、 25 並列処理ユニット、 26 プリンタコントローラ、 27 伸長制御手段、 28 転送手段   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 expansion control means, 28 transfer means

Claims (1)

ホスト装置と、該ホスト装置と通信可能に構成されたプリンタ装置とを含んで構成され、ホスト装置及びプリンタ装置のそれぞれが複数のプロセッサを用いて並列に画像処理を行う機能を備えるプリンタシステムであって、
ホスト装置は、
イメージを構成する少なくとも1つの走査ラインについて、個々の走査ラインを複数の部分領域に分割した場合の、前記部分領域のそれぞれに前記ホスト装置の複数のプロセッサのうち少なくとも1つを割り当てて並列に画像圧縮処理を行う圧縮制御手段と、
前記ホスト装置のプロセッサごとに設けられた、各部分領域に対応する圧縮されたデータ(以下、「圧縮部分データ」と呼ぶ)が転送済みであるかどうかを示す転送終了フラグと、
走査ラインにおける部分領域の並び順に圧縮部分データをプリンタ装置へ送信し、圧縮部分データの転送が終了した場合に、該圧縮部分データに対応するプロセッサの前記転送終了フラグをONとする転送手段と、を備え、
前記圧縮制御手段は、前記転送終了フラグがONを示すプロセッサについて新たなデータを処理できると判断し、該プロセッサに対応する部分領域に含まれる印刷イメージの圧縮処理を該プロセッサに指示し、該プロセッサに対応する前記転送終了フラグをOFFとし、
プリンタ装置は、
印字を行う印刷エンジンと、
イメージを構成する少なくとも1つの走査ラインについて、個々の走査ラインを複数の部分領域に分割した場合の、前記部分領域のそれぞれに対応する圧縮部分データをホスト装置から受信するFIFOタイプのデータ受信バッファと、
圧縮部分データに前記プリンタ装置の複数のプロセッサのうち少なくとも1つを割り当てて並列に画像伸長処理を行う伸長制御手段と、
FIFOタイプの転送用バッファと、
前記プリンタ装置の各プロセッサの出力バッファから前記転送用バッファへ転送する第1の転送手段と、
前記転送用バッファから前記印刷エンジンへ転送する第2の転送手段と、を備え、
前記第1の転送手段は、副走査方向の順に走査ラインを選択し、前記選択した走査ラインについて、走査ラインにおける並び順に部分領域を選択し、該部分領域に対応する前記プリンタ装置のプロセッサの出力バッファに、該部分領域の印刷イメージが伸長された状態で格納されているかどうかを判断し、格納されている場合は、前記選択した部分領域に対応するプロセッサの出力バッファから該部分領域の印刷イメージを読み出して前記転送用バッファに格納し、
前記第2の転送手段は、前記転送用バッファに1走査ライン分のデータが格納されているかどうかを判断し、格納されている場合は、前記転送用バッファから該1走査ライン分のデータを読み出して前記印刷エンジンへ転送する
ことを特徴とするプリンタシステム。
A printer system that includes a host device and a printer device configured to be able to communicate with the host device, and each of the host device and the printer device has a function of performing image processing in parallel using a plurality of processors. And
The host device
When at least one scan line constituting the image is divided into a plurality of partial areas, at least one of the plurality of processors of the host device is assigned to each of the partial areas, and the images are arranged in parallel. a compression control unit intends row compression process,
A transfer end flag provided for each processor of the host device and indicating whether or not the compressed data corresponding to each partial area (hereinafter referred to as “compressed partial data”) has been transferred;
Transfer means for transmitting the compressed partial data to the printer device in the order of arrangement of the partial areas in the scan line and turning on the transfer end flag of the processor corresponding to the compressed partial data when the transfer of the compressed partial data is completed; With
The compression control means determines that new data can be processed for the processor whose transfer end flag is ON, and instructs the processor to compress the print image included in the partial area corresponding to the processor. The transfer end flag corresponding to
The printer device
A print engine for printing,
A FIFO type data reception buffer for receiving compressed partial data corresponding to each of the partial areas when at least one scan line constituting the image is divided into a plurality of partial areas from a host device ; ,
Decompression control means for assigning at least one of a plurality of processors of the printer device to compressed partial data and performing image decompression processing in parallel ;
FIFO type transfer buffer,
First transfer means for transferring from the output buffer of each processor of the printer apparatus to the transfer buffer;
Second transfer means for transferring from the transfer buffer to the print engine,
The first transfer means selects scanning lines in the order of the sub-scanning direction, selects partial areas in the order of arrangement in the scanning lines for the selected scanning lines, and outputs from the processor of the printer device corresponding to the partial areas It is determined whether or not the print image of the partial area is stored in the buffer in a decompressed state. If it is stored, the print image of the partial area is output from the output buffer of the processor corresponding to the selected partial area. Is read and stored in the transfer buffer,
The second transfer means determines whether or not data for one scanning line is stored in the transfer buffer, and if stored, reads the data for one scanning line from the transfer buffer. And transferring to the print engine .
JP2003343692A 2003-10-01 2003-10-01 Printer system Expired - Fee Related JP4389199B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2003343692A JP4389199B2 (en) 2003-10-01 2003-10-01 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
JP2003343692A JP4389199B2 (en) 2003-10-01 2003-10-01 Printer system

Publications (2)

Publication Number Publication Date
JP2005108114A JP2005108114A (en) 2005-04-21
JP4389199B2 true JP4389199B2 (en) 2009-12-24

Family

ID=34537586

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003343692A Expired - Fee Related JP4389199B2 (en) 2003-10-01 2003-10-01 Printer system

Country Status (1)

Country Link
JP (1) JP4389199B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5231926B2 (en) * 2008-10-06 2013-07-10 キヤノン株式会社 Information processing apparatus, control method therefor, and computer program
JP2011158951A (en) 2010-01-29 2011-08-18 Konica Minolta Business Technologies Inc Image processing apparatus, program, and image processing method

Also Published As

Publication number Publication date
JP2005108114A (en) 2005-04-21

Similar Documents

Publication Publication Date Title
JP4389199B2 (en) Printer system
JP4345055B2 (en) Image processing apparatus and method, and printer system
JP4200884B2 (en) Image decompression apparatus and method, and image processing system
US6166824A (en) Print data processing and compression apparatus
JP3655457B2 (en) Printer control device
JP2018058295A (en) Image processing apparatus, image processing method and program
JP5093576B2 (en) Printing control apparatus and image forming system
JP2002067399A (en) Printer controller
JP4182428B2 (en) Image decompression apparatus and method, and image processing system
JP5202265B2 (en) Image processing apparatus, program, and control method for image processing apparatus
JP2004134962A (en) Image compression method
JP2004254187A (en) Information processor
JP4517680B2 (en) Host-based printer, host-based printer system, and printing method
JP6264757B2 (en) Image forming apparatus, image forming system, image forming apparatus control method, and image forming apparatus control program
JPH11179975A (en) Color printer control device
JP2000047976A (en) Printer control unit
JP2011197956A (en) Printer control device, and printer apparatus and control method thereof
JP2006168051A (en) Printing device
JP2000225735A (en) Image printer
JP2005244748A (en) Image processing method and image processing apparatus
JP2006164066A (en) Data processing system, data processor, data processing method and control program
JPH09200420A (en) Print system
JP2002211052A (en) Printing control device, method of controlling printing, and computer-readable memory medium containing program for executing the method
JPH0926861A (en) Printer
JP2003335001A (en) Printing apparatus

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060928

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090313

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090317

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090514

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

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

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

Free format text: PAYMENT UNTIL: 20121016

Year of fee payment: 3

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20131016

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees