JP4370346B2 - Image forming apparatus - Google Patents

Image forming apparatus Download PDF

Info

Publication number
JP4370346B2
JP4370346B2 JP2007139096A JP2007139096A JP4370346B2 JP 4370346 B2 JP4370346 B2 JP 4370346B2 JP 2007139096 A JP2007139096 A JP 2007139096A JP 2007139096 A JP2007139096 A JP 2007139096A JP 4370346 B2 JP4370346 B2 JP 4370346B2
Authority
JP
Japan
Prior art keywords
band
data
compression
block
decompression
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
JP2007139096A
Other languages
Japanese (ja)
Other versions
JP2008290376A (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.)
Kyocera Document Solutions Inc
Original Assignee
Kyocera Mita 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 Kyocera Mita Corp filed Critical Kyocera Mita Corp
Priority to JP2007139096A priority Critical patent/JP4370346B2/en
Priority to US12/124,538 priority patent/US8619310B2/en
Publication of JP2008290376A publication Critical patent/JP2008290376A/en
Application granted granted Critical
Publication of JP4370346B2 publication Critical patent/JP4370346B2/en
Priority to US14/076,221 priority patent/US8861013B2/en
Priority to US14/076,218 priority patent/US9202149B2/en
Priority to US14/076,217 priority patent/US8928903B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Description

本発明は、中間コード(ディスプレイリスト)をビットマップ展開し圧縮する画像形成装置に係り、特に、圧縮・伸長プロセッサを用いて、圧縮されたビットマップデータの伸張と、ディスプレイリストのラスタライズ及びそのデータと伸張されたビットマップデータとの合成と、合成されたビットマップデータの圧縮とを3バンド分並列処理する画像形成装置に関する。   The present invention relates to an image forming apparatus that decompresses and compresses an intermediate code (display list), in particular, compresses bitmap data using a compression / decompression processor, rasterizes a display list, and the data. The present invention relates to an image forming apparatus that performs parallel processing of combining the combined bitmap data and decompressed bitmap data and compression of the combined bitmap data for three bands.

ページプリンタでは、解像度向上に伴い、必要なメモリ容量が増加するとともに、処理時間が長くなる。一方、高速なページプリンタを安価に提供するとともに、製品開発期間を短縮することが要求されており、メモリ容量の増大を抑制し、ソフトウェア構成の複雑化を避けるとともに、処理を高速化させる必要がある。   In the page printer, as the resolution is improved, the necessary memory capacity increases and the processing time becomes longer. On the other hand, it is required to provide a high-speed page printer at a low cost and to shorten the product development period, and it is necessary to suppress an increase in memory capacity, avoid a complicated software configuration, and speed up the processing. is there.

下記特許文献1では、所要メモリ容量を低減するために、ページ記述言語で記述された印刷データの1頁分を、例えば512ブロックに分割するとともにブロック毎に中間コードに変換し、ブロック毎にラスタライズしてビットマップデータに変換し、次いで圧縮した後に、メモリに格納している。また、描画対象の重なりを処理するために、圧縮したデータを伸長し、これとラスタライズしたビットマップデータとを合成し、次いで圧縮してメモリに格納している。   In Patent Document 1 below, in order to reduce the required memory capacity, one page of print data described in a page description language is divided into, for example, 512 blocks, converted into intermediate codes for each block, and rasterized for each block. Then, it is converted into bitmap data and then compressed and stored in the memory. Further, in order to process the overlap of drawing objects, the compressed data is decompressed, and this is combined with rasterized bitmap data, and then compressed and stored in the memory.

しかしながら、下記特許文献2にも記載されているように、RIP(Raster Image Processor)部が新たなブロックのデータをビップマップ展開する場合、合成済データを圧縮してメモリに格納し、次いでこのブロックに対応した圧縮データを伸長させてしまうまで待たなければならないので、処理が遅延する。   However, as described in Patent Document 2 below, when a RIP (Raster Image Processor) unit develops a new block of data in a bipmap, the synthesized data is compressed and stored in a memory, and then this block Since it is necessary to wait until the compressed data corresponding to is decompressed, the processing is delayed.

そこで、この特許文献2では、RIP部でブロックを順次連続的にラスタライズし、そのビットマップデータを圧縮して、メモリの代わりにハードディスクに格納し、1頁分についてビットマップ展開処理が終わった後に、各ブロックについて、合成すべき複数の圧縮データをハードディスクから読み出して伸長させ、これらを順次合成させてメモリに格納させている。   Therefore, in this patent document 2, blocks are successively rasterized sequentially by the RIP unit, the bitmap data is compressed and stored in the hard disk instead of the memory, and after the bitmap development processing for one page is completed. For each block, a plurality of compressed data to be combined is read from the hard disk and expanded, and these are sequentially combined and stored in the memory.

一方、下記特許文献3では、複数のハードウェアRIPを並列動作させて処理の高速化を図っている。
特開平4−88749号公報 特開平9−214709号公報 特開平10−289066号公報
On the other hand, in Patent Document 3 below, a plurality of hardware RIPs are operated in parallel to increase the processing speed.
JP-A-4-88749 JP-A-9-214709 JP-A-10-289066

しかし、上記特許文献2では、圧縮データを一時記憶させるために、ハードディスクを用いており、また、圧縮と伸長とを直列処理しているので、処理の高速化が妨げられる。   However, in Patent Document 2, a hard disk is used to temporarily store compressed data, and compression and decompression are serially processed, so that speeding up of processing is hindered.

また、上記特許文献3では、所記憶容量低減のためのバンド単位の処理について開示がなく、ビットマップデータの圧縮や伸長についても開示がない。 Further, in Patent Document 3, where the process is no disclosure about the band unit for main storage capacity reduction, no disclosure also compression and decompression of the bit map data.

本発明の目的は、このような問題点に鑑み、必要なメモリ容量の増大を抑制するとともに、比較的簡単に印刷データを高速にビットマップ展開することが可能な画像形成装置を提供することにある。   In view of such problems, an object of the present invention is to provide an image forming apparatus capable of suppressing the increase in necessary memory capacity and relatively easily and rapidly developing print data in a bitmap. is there.

本発明の他の目的は、必要なメモリ容量の増大を抑制するとともに、比較的簡単且つ効率よく、印刷データを高速にビットマップ展開することが可能な画像形成装置を提供することにある。   Another object of the present invention is to provide an image forming apparatus capable of suppressing the increase in required memory capacity and relatively easily and efficiently developing print data in a high-speed bitmap.

本発明による画像形成装置の第1態様では、CPUと、プログラムが格納されデータ領域が確保され該CPUに結合された記憶装置と、ビットマップデータの圧縮と圧縮されたビットマップデータの伸長とを並列に行うことができる圧縮・伸長プロセッサと、を備え、
ページ記述言語で記述された1頁分の印刷データを複数のバンドに分割し、各バンドの印刷データをブロック毎の中間コードに変換し、中間コードをビットマップ展開する画像形成装置であって、
該データ領域は、それぞれ1バンド分の第1〜3ビットマップデータ領域を有し、
該プログラムは該CPUに対し、第1〜3タスクの各々について3バンド毎のバンド順次ブロック順次に、
(a)各バンドの最初のブロックを除き、該データ領域内の1バンドの圧縮データを、該圧縮・伸長プロセッサを介し伸長させて該第iビットマップデータ領域に格納させ、
(b)該データ領域内の1ブロックの中間コードをラスタライズさせて該第iビットマップデータ領域のデータと合成させ、
(c)該第iビットマップデータ領域のデータを、該圧縮・伸長プロセッサを介し圧縮させて該データ領域に格納させ、
i=1〜3のそれぞれを該第1〜3タスクで並列に実行させるとともに、該第1〜3タスクで処理(a)及び(c)のそれぞれが並列に実行されないようにする。
In a first aspect of the image forming apparatus according to the present invention, a CPU, a storage device in which a program is stored and a data area is secured and coupled to the CPU, compression of bitmap data, and decompression of compressed bitmap data A compression / decompression processor capable of performing in parallel;
An image forming apparatus that divides print data for one page described in a page description language into a plurality of bands, converts the print data of each band into an intermediate code for each block, and develops the intermediate code as a bitmap.
Each of the data areas has first to third bitmap data areas for one band,
The program gives the CPU a band sequential block sequence for every three bands for each of the first to third tasks,
(A) Except for the first block of each band, one band of compressed data in the data area is decompressed via the compression / decompression processor and stored in the i-th bitmap data area;
(B) rasterizing the intermediate code of one block in the data area and combining it with the data in the i-th bitmap data area;
(C) The data in the i-th bitmap data area is compressed through the compression / decompression processor and stored in the data area.
Each of i = 1 to 3 is executed in parallel by the first to third tasks, and each of the processes (a) and (c) is not executed in parallel by the first to third tasks.

本発明による画像形成装置の第2態様では、第1態様において、該プログラムは該CPUに対しさらに、第4タスクにおいて、
(d)該印刷データを、バンド順次ブロック順次に、バンド毎にブロック毎の中間コードに変換させて該データ領域に格納させ、
該第4タスクを該第1〜3タスクと並列に実行させ、処理(d)が完了した後にこの処理(d)に係るバンド及びブロックについて処理(a)を開始させる。
In a second aspect of the image forming apparatus according to the present invention, in the first aspect, the program further executes a fourth task for the CPU.
(D) The print data is converted into an intermediate code for each block for each band in a band sequential block order and stored in the data area;
The fourth task is executed in parallel with the first to third tasks, and after the process (d) is completed, the process (a) is started for the band and block related to the process (d).

本発明による画像形成装置の第3態様では、第2態様において、該データ領域にはさらに、該第1〜3ビットマップデータ領域の各々に関し、処理(a)及び(c)のそれぞれを完了したか否かを示す情報が格納され、
該プログラムは該CPUに対しさらに、該第1〜3ビットマップデータ領域の各々に関し処理(a)及び(c)の完了時に該情報を更新させ、該情報に基づいて、該第1〜3タスクで処理(a)及び(c)のそれぞれが並列に実行されないように制御させる。
In a third aspect of the image forming apparatus according to the present invention, in the second aspect, each of the processes (a) and (c) is completed for each of the first to third bitmap data areas. Information indicating whether or not
The program further causes the CPU to update the information when the processes (a) and (c) are completed for each of the first to third bitmap data areas, and based on the information, the first to third tasks Thus, the processes (a) and (c) are controlled not to be executed in parallel.

上記第1態様の構成によれば、ビットマップデータ領域が3バンド分で足りるので、必要なメモリ容量の増大を抑制することができ、また、1つのバンドについて伸長、ラスタライズ及び圧縮の一連の処理が1つのタスク内でシーケンシャルに行われるので、その同期をタスク間で取る必要がなく、しかも3バンド分について圧縮及び伸長のそれぞれをほぼ連続的に行うことができるので、比較的簡単に印刷データを高速にビットマップ展開することができるという効果を奏する。その上、第1〜3タスクで共通の関数を用いることができるので、メモリ使用量を削減することができるという効果を奏する。この簡単化は、開発期間短縮及び設計変更容易化に寄与する。   According to the configuration of the first aspect, since the bitmap data area is sufficient for three bands, an increase in necessary memory capacity can be suppressed, and a series of processes of expansion, rasterization, and compression is performed for one band. Is performed sequentially within one task, so there is no need to synchronize between tasks, and since compression and decompression can be performed almost continuously for three bands, print data can be relatively easily The bitmap can be developed at a high speed. In addition, since a common function can be used in the first to third tasks, the memory usage can be reduced. This simplification contributes to shortening the development period and facilitating design changes.

上記第2態様の構成によれば、第1〜3タスクのラスタライズに関係したディスプレイリスト作成が第4タスクで第1〜3タスクと並列に行われるので、第1〜3タスクのそれぞれでディスプレイリストを作成する場合よりもオーバヘッドが少なくなり、処理効率がよいという効果を奏する。   According to the configuration of the second aspect, display list creation related to rasterization of the first to third tasks is performed in parallel with the first to third tasks in the fourth task. The overhead is smaller than that in the case of creating the file, and the processing efficiency is improved.

上記第3態様の構成によれば、比較的簡単に第1〜3タスク間の同期をとることができるという効果を奏する。   According to the configuration of the third aspect, the first to third tasks can be synchronized relatively easily.

本発明の他の目的、構成及び効果は以下の説明から明らかになる。   Other objects, configurations and effects of the present invention will become apparent from the following description.

以下、図面を参照して本発明の実施例を説明する。   Embodiments of the present invention will be described below with reference to the drawings.

図17は、本発明の実施例1に係る画像形成装置10のハードウェア構成を示す概略ブロック図である。   FIG. 17 is a schematic block diagram illustrating a hardware configuration of the image forming apparatus 10 according to the first embodiment of the invention.

この画像形成装置10では、CPU11、EEPROM12、RAM13、圧縮・伸長プロセッサ14、通信インターフェイス15、パネルインターフェイス16、エンジンコントローラ17及び搬送コントローラ18がバス19で結合され、インターフェイス16、インターフェイスを含むエンジンコントローラ17並びに搬送コントローラ18にそれぞれ操作パネル20、プリントエンジン21及び用紙搬送装置22が結合されている。通信インターフェイス15には、不図示のホストコンピュータが結合される。   In this image forming apparatus 10, a CPU 11, an EEPROM 12, a RAM 13, a compression / decompression processor 14, a communication interface 15, a panel interface 16, an engine controller 17, and a transport controller 18 are connected by a bus 19, and an engine controller 17 including an interface 16 and an interface. In addition, an operation panel 20, a print engine 21, and a paper transport device 22 are coupled to the transport controller 18. A host computer (not shown) is coupled to the communication interface 15.

EEPROM12には、OS(Operating System)、ドライバ及びアプリケーションが格納される。RAM13には、一時的なデータが格納される。   The EEPROM 12 stores an OS (Operating System), a driver, and an application. The RAM 13 stores temporary data.

圧縮・伸長プロセッサ14は、例えばASIC(Application Specific Integrated Circuit)で構成され、圧縮処理と伸長処理とを同時に行うことができる。圧縮・伸長プロセッサ14は、互いに並列処理可能な圧縮部141、伸長部142及び伸長部143(図図1参照)と、DMAC(Direct Memory Access Controller)とを備え、RAM13内のデータを圧縮部141、伸長部142又は伸長部143にDMAでブロック転送させて圧縮又は伸長を行い、その結果をRAM13又はエンジンコントローラ17へDMAでブロック転送させることが可能である。DMACは、圧縮・伸長プロセッサ14と別体であってもよい。   The compression / decompression processor 14 is composed of, for example, an ASIC (Application Specific Integrated Circuit), and can perform compression processing and decompression processing simultaneously. The compression / decompression processor 14 includes a compression unit 141, an expansion unit 142 and an expansion unit 143 (see FIG. 1) that can be processed in parallel with each other, and a DMAC (Direct Memory Access Controller), and compresses data in the RAM 13 into a compression unit 141. The decompression unit 142 or the decompression unit 143 can perform block transfer by DMA to perform compression or decompression, and block the result to the RAM 13 or the engine controller 17 by DMA. The DMAC may be separate from the compression / decompression processor 14.

操作パネル20は、キー及び表示パネルを供えている。エンジンコントローラ17は、CPUと、プリントエンジン制御用プログラムが格納されたメモリと、受信したビットマップデータを格納するバッファメモリとを備えている。   The operation panel 20 includes keys and a display panel. The engine controller 17 includes a CPU, a memory that stores a print engine control program, and a buffer memory that stores received bitmap data.

図1は、ホストコンピュータから受信した印刷データをビットマップ展開する部分の機能ブロック図である。   FIG. 1 is a functional block diagram of a part that develops a bitmap of print data received from a host computer.

この印刷データは、頁記述言語(PDL)で記述されており、通信インターフェイス15を介してバッファメモリ131に格納される。図1において、バッファメモリ131、ヒープメモリ132及び共有メモリ133はRAM13中の記憶領域である。インタープリタ121、RIP122及び制御部123はいずれも、上記アプリケーションプログラムの一部に対応しており、CPU11により実行される。   This print data is described in a page description language (PDL) and is stored in the buffer memory 131 via the communication interface 15. In FIG. 1, a buffer memory 131, a heap memory 132, and a shared memory 133 are storage areas in the RAM 13. The interpreter 121, the RIP 122, and the control unit 123 all correspond to a part of the application program and are executed by the CPU 11.

制御部123は、ホストコンピュータからの印刷要求に対し、ホストコンピュータからの印刷データを、通信インターフェイス15を介してバッファメモリ131に格納させる。制御部123は、インタープリタ121を起動させることにより、この印刷データを、各頁について、バンドごとのディスプレイリスト(中間コード)に変換させ、ヒープメモリ132に格納させる。制御部123は、RIP122及び圧縮・伸長プロセッサ14を起動させることにより、それぞれ後述の処理をさせる。   In response to a print request from the host computer, the control unit 123 stores print data from the host computer in the buffer memory 131 via the communication interface 15. The control unit 123 activates the interpreter 121 to convert the print data into a display list (intermediate code) for each page and store the print data in the heap memory 132. The control unit 123 activates the RIP 122 and the compression / decompression processor 14 to perform the processes described later.

図10(A)〜(C)は、ディスプレイリスト概略説明図である。   10A to 10C are schematic diagrams for explaining the display list.

図10(A)に示す如く、1頁分の印刷データ30には、図形オブジェクト31〜34がこの順にPDLで記述されており、これらを記述順にラスタライズすることにより、ビットマップデータ領域上で、図形オブジェクト31に図形オブジェクト33が上書きされ、図形オブジェクト33に図形オブジェクト34が上書きされて、図10(A)に示すような画像が得られる。必要なメモリ容量を低減するために、図10(B)に示すように、印刷データ30をバンド40〜43に分割するとともに、ラスタライズを高速処理するために、分割されたオブジェクトを中間コードに変換する。一般に、オブジェクトには図形オブジェクト以外に文字オブジェクト及びイメージオブジェクトが含まれる。オブジェクトの中間コード化において、ベクトルデータの文字オブジェクトは、イメージデータに変換される。   As shown in FIG. 10A, the graphic objects 31 to 34 are described in PDL in this order in the print data 30 for one page, and by rasterizing them in the description order, The graphic object 33 is overwritten on the graphic object 31, and the graphic object 34 is overwritten on the graphic object 33, so that an image as shown in FIG. 10A is obtained. In order to reduce the required memory capacity, as shown in FIG. 10B, the print data 30 is divided into bands 40 to 43, and the divided objects are converted into intermediate codes for high-speed rasterization processing. To do. In general, objects include character objects and image objects in addition to graphic objects. In the intermediate coding of an object, a vector data character object is converted into image data.

図10(C)は、印刷データ30に含まれる各図形オブジェクトがバンド毎の中間コードデータに変換されている状態をイメージ的に示す。図中の中間コードブロックLijは、バンドiのディスプレイリストを構成するj番目のブロックであることを示している。図形の合成が適正に行われるようにするために、各バンドでのブロック記述順は、図形オブジェクトの記述順に従っている。例えばバンド41のディスプレイリストでのブロック記述順は、中間コードブロックL10、L11、L12、L21となっている。   FIG. 10C conceptually shows a state in which each graphic object included in the print data 30 is converted into intermediate code data for each band. The intermediate code block Lij in the figure indicates that it is the jth block constituting the display list of band i. In order to properly combine the figures, the block description order in each band follows the description order of the graphic objects. For example, the block description order in the display list of the band 41 is intermediate code blocks L10, L11, L12, and L21.

バンド数が多いほど、所要メモリ容量を低減することができるが、トータル処理時間が増加するので、RAM13の容量に応じてバンド数が決定され、この値は例えば36である。また、メモリ管理を容易にするために、1ブロックの最大記憶容量が決定され、この容量の各ブロックLijに、できるだけ多くの中間コードが詰め込まれる。   As the number of bands increases, the required memory capacity can be reduced. However, since the total processing time increases, the number of bands is determined according to the capacity of the RAM 13, and this value is, for example, 36. In order to facilitate memory management, the maximum storage capacity of one block is determined, and as many intermediate codes as possible are packed in each block Lij of this capacity.

図2は、ヒープメモリ132に格納されるディスプレイリストのデータ構造を示している。このデータ構造は、リスト構造である。   FIG. 2 shows the data structure of the display list stored in the heap memory 132. This data structure is a list structure.

Lバンド配列1320は、その要素数がバンド数に等しく、要素i(iは0〜nのいずれか)はディスプレイリストLiのポインタである。各ディスプレイリストLiのブロック数は一定ではない。図1では簡単化のために、各ディスプレイリストLiのブロック数が3である場合を示している。ブロックLijの中間コードは、イメージデータの場合、イメージデータ格納先を示すポインタとデータのバイト数とを含むコードであり、イメージデータ自体はブロックLij内に含まれない。   In the L band array 1320, the number of elements is equal to the number of bands, and the element i (i is one of 0 to n) is a pointer of the display list Li. The number of blocks in each display list Li is not constant. FIG. 1 shows a case where the number of blocks in each display list Li is 3 for simplification. In the case of image data, the intermediate code of the block Lij is a code including a pointer indicating the image data storage destination and the number of data bytes, and the image data itself is not included in the block Lij.

一方、共有メモリ133には、ビットマップデータ領域133Bと圧縮データ領域133Cとが確保される。また、圧縮・伸長プロセッサ14は互いに並列処理可能な圧縮部141と伸長部142とを備えている。   On the other hand, a bitmap data area 133B and a compressed data area 133C are secured in the shared memory 133. The compression / decompression processor 14 includes a compression unit 141 and an expansion unit 142 that can perform parallel processing.

次に、RIP122、圧縮・伸長プロセッサ14及びこれらを制御する制御部123によるバンドiの処理について説明する。ブロック識別変数jの初期値は0である。制御部123は、RIP122を頁毎に開始制御し、縮・伸長プロセッサ14をバンド毎に開始制御する。 Next, processing of band i by the RIP 122, the compression / decompression processor 14, and the control unit 123 that controls them will be described. The initial value of the block identification variable j is 0. Controller 123 starts control to each page of RIP122, it starts controlling the compression and decompression processor 14 for each band.

(1)j=0の場合は、ステップ(2)へ進む。j>0の場合、伸長部142は、圧縮バンド領域Ciに格納されている圧縮データを呼び出し、元のビットマップデータに伸長させて、サブ領域BMPkに格納する。   (1) If j = 0, go to step (2). When j> 0, the decompressing unit 142 calls the compressed data stored in the compressed band area Ci, decompresses the compressed data to the original bitmap data, and stores it in the sub-area BMPk.

(2)RIP122は、ヒープメモリ132内の中間コードブロックLijをビップマップデータに変換して、サブ領域BMPkに格納させることにより、(1)で伸長されたビットマップデータに上書きする。   (2) The RIP 122 overwrites the bitmap data expanded in (1) by converting the intermediate code block Lij in the heap memory 132 into the bit map data and storing it in the sub-region BMPk.

(3)圧縮部141は、サブ領域BMPkに格納されたビットマップデータを圧縮して、圧縮データ領域133C内の圧縮バンド領域Ciに格納する。   (3) The compression unit 141 compresses the bitmap data stored in the sub-region BMPk and stores it in the compressed band region Ci in the compressed data region 133C.

(4)RIP122は、jを1だけインクリメントし、中間コードブロックLijがヒープメモリ132内に存在すれば、上記ステップ(1)へ戻る。   (4) The RIP 122 increments j by 1, and if the intermediate code block Lij exists in the heap memory 132, returns to the above step (1).

圧縮部141と伸長部142とを並列に動作させることができ、かつ、圧縮・伸長プロセッサ14での処理とディスプレイリスト作成及びラスタライズのソフトウェア処理とを並列に行うことが可能である。一方、同一バンドについて圧縮処理と伸長処理とソフトウェア処理とのうちの任意の2つを同時に行うことができない。そこで、図4に示す如く、同時に3バンドの処理を行う。そして、例えば、バンド0の伸長を行っているときにバンド1の圧縮を行うとともに、バンド2のディスプレイリスト作成とラスタライズとを直列処理する。これら圧縮、伸長及びラスタライズはいずれも、ビップマップデータを取り扱うので、図1に示す如く、ビットマップデータ領域133Bは、BMP0〜BMP2に分割された3バンド分の領域を有している。   The compression unit 141 and the decompression unit 142 can be operated in parallel, and the processing by the compression / decompression processor 14 and the software processing for display list creation and rasterization can be performed in parallel. On the other hand, any two of compression processing, decompression processing, and software processing cannot be performed simultaneously for the same band. Therefore, as shown in FIG. 4, three band processing is performed simultaneously. For example, when band 0 is being expanded, band 1 is compressed, and band 2 display list creation and rasterization are serially processed. Since all of these compression, decompression, and rasterization handle bipmap data, as shown in FIG. 1, the bitmap data area 133B has an area for three bands divided into BMP0 to BMP2.

圧縮部141の平均圧縮率を1/c(c=圧縮後のサイズ/圧縮前のサイズ)、1頁のバンド数をn+1とすると、1頁分のビットマップデータに対する圧縮データと3バンド分ビットマップ領域との合計の圧縮率は、3/(n+1)+1/cとなる。例えば、n=35、c=10の場合、圧縮率は3/36+1/10=11/60となる。   When the average compression rate of the compression unit 141 is 1 / c (c = size after compression / size before compression) and the number of bands on one page is n + 1, the compressed data and the bits for three bands for the bitmap data for one page The total compression ratio with the map area is 3 / (n + 1) + 1 / c. For example, when n = 35 and c = 10, the compression ratio is 3/36 + 1/10 = 11/60.

図3は、共有メモリ133に格納される、ラスタライズ、圧縮及び伸張に関係したデータの構造を示す。   FIG. 3 shows the structure of data related to rasterization, compression, and expansion stored in the shared memory 133.

Cバンド配列1330は、その要素数がバンド数に等しく、要素i(iは0〜nのいずれか)は圧縮バンド領域Ciのポインタである。ブロック最大番号配列1331は、その要素数がバンド数に等しく、要素iにはバンドiのブロック番号最大値je(i)が格納されている。Bバンド配列1332は、その要素数が3であり、要素k(kは0〜2のいずれか)はサブ領域BMPkのポインタである。   In the C band array 1330, the number of elements is equal to the number of bands, and the element i (i is any one of 0 to n) is a pointer of the compression band region Ci. The block maximum number array 1331 has the same number of elements as the number of bands, and the element i stores the block number maximum value je (i) of the band i. The number of elements of the B band array 1332 is 3, and the element k (k is any of 0 to 2) is a pointer of the sub-region BMPk.

バンド・ブロック番号変数群1333には、変数R、C及びDについてそれぞれ、現在の処理対象のバンド番号とブロック番号との組(i,j)、(p,q)及び(r,s)が格納される。変数R、C及びDは、スレッド間でブロックの処理完了を通知して(図5のステップS5、図6(A)のステップS16及び図6(B)のステップS24)、次のブロックの処理開始時点を適正にするために、すなわち、同一バンドに関し、伸張が完了してからラスタライズし、ラスタライズが完了してから圧縮し、圧縮が完了してから伸張を行うために用いられる。以下の例では、バンド・ブロック番号変数群1333には次の又は処理中の処理対象のバンド番号とブロック番号とが格納されるが、このデータは、1つ前の処理対象の処理完了も意味している。   In the band / block number variable group 1333, for the variables R, C, and D, pairs (i, j), (p, q), and (r, s) of the current band number and block number to be processed are respectively stored. Stored. The variables R, C, and D notify the completion of block processing between threads (step S5 in FIG. 5, step S16 in FIG. 6A, and step S24 in FIG. 6B), and processing of the next block In order to make the start point appropriate, that is, for the same band, the rasterization is performed after the expansion is completed, the rasterization is performed after the rasterization is completed, and the compression is performed after the compression is completed. In the example below, the band / block number variable group 1333 stores the band number and block number of the next or processing target being processed, but this data also means the completion of the processing of the previous processing target. is doing.

図7は、ソフトウェアと圧縮部141と伸長部142との並列処理を示す概略タイミングチャートである。図7は、バンド0〜2のそれぞれが3ブロックのディスプレイリストを有する場合を示す。図8は、バンドBND0〜BND2毎に図7の処理を再配列したものを示している。   FIG. 7 is a schematic timing chart showing parallel processing of the software, the compression unit 141, and the decompression unit 142. FIG. 7 shows a case where each of the bands 0 to 2 has a display list of 3 blocks. FIG. 8 shows a rearrangement of the processing of FIG. 7 for each of the bands BND0 to BND2.

Lij、Rij、Cij及びDijはそれぞれ、バンドi及びブロックjに関するディスプレイリスト作成、ラスタライズ、圧縮及び伸長の処理を示す。   Lij, Rij, Cij, and Dij indicate display list creation, rasterization, compression, and decompression processing for band i and block j, respectively.

図1及び図7において、制御部123のソフトウェア構成を簡単にするために、圧縮部141及び伸長部142に対する処理開始制御はそれぞれ、制御部123でのスレッドTh1及びTh2で行われる。インタープリタ121及びRIP122の処理は、スレッドTh0での処理である。すなわち、3スレッドによる並列処理が行われる。   In FIG. 1 and FIG. 7, in order to simplify the software configuration of the control unit 123, processing start control for the compression unit 141 and the decompression unit 142 is performed by threads Th <b> 1 and Th <b> 2 in the control unit 123, respectively. The processes of the interpreter 121 and the RIP 122 are processes in the thread Th0. That is, parallel processing by three threads is performed.

スレッドTh0は、制御部123により生成されて開始される。スレッドTh0において、中間コードブロックL00の作成処理が行われ、次いでラスタライズR00の処理が行われ、ラスタライズR00が完了すると、スレッドTh0によりスレッドTh1が生成されて開始される。スレッドTh1により、圧縮部141を介して圧縮C00の処理が行われ、圧縮C00の処理が完了すると、スレッドTh1により、Th2が生成されて開始される。スレッドTh1及びTh2によりそれぞれ、圧縮部141及び伸長部142を介して圧縮C10及び伸長D00の処理が行われる。   The thread Th0 is generated and started by the control unit 123. In the thread Th0, an intermediate code block L00 creation process is performed, and then a rasterize R00 process is performed. When the rasterize R00 is completed, a thread Th1 is generated and started by the thread Th0. The process of compression C00 is performed by the thread Th1 via the compression unit 141, and when the process of compression C00 is completed, Th2 is generated and started by the thread Th1. The threads Th1 and Th2 perform compression C10 and decompression D00 via the compression unit 141 and the decompression unit 142, respectively.

一般に、スレッドTh0では、中間コードブロックLijの作成及びラスタライズRijの処理がバンド順次ブロック順次に行われ、通常、圧縮Cijを開始する時点では、ラスタライズRijの処理が完了している。ここにバンド順次ブロック順次とは、ブロックj及びバンドi0の初期値を共に0とし、バンドi及びブロックjを次のように変化させることを意味する。   In general, in the thread Th0, the intermediate code block Lij creation and rasterization Rij processing are performed in the band sequential block order, and the rasterization Rij processing is usually completed at the time when compression Cij is started. Here, the band sequential block sequential means that the initial values of the block j and the band i0 are both 0, and the band i and the block j are changed as follows.

(a)ブロックjを一定にしてバンドiをi0、i0+1、i0+2と順次変化させ、
(b)jがブロック番号最大値je(i)より小さければブロックjを1だけインクリメントさせて、(a)へ戻り、そうでなければ(d)へ進む。
(A) With block j kept constant, band i is sequentially changed to i0, i0 + 1, i0 + 2,
(B) If j is smaller than the block number maximum value je (i), the block j is incremented by 1, and the process returns to (a). Otherwise, the process proceeds to (d).

(d)i0+2がバンド番号最大値nより小さければj=0とし且つi0を3だけインクリメントさせて、(a)へ戻る。   (D) If i0 + 2 is smaller than the band number maximum value n, j = 0 and i0 is incremented by 3, and the process returns to (a).

スレッドTh1では、1ブロックに対する圧縮部141の処理完了通知に応答してバンド順次ブロック順次になるようにバンドp及びブロックqが更新され、対応するラスタライズRpqの処理が完了していることを条件に、圧縮部141に対し圧縮Cpqの処理を開始させる。試験例では、図7に示すように、圧縮Cpqを間断なく連続的に行うことができた。   In the thread Th1, the band p and the block q are updated so that the band sequential block sequential is made in response to the processing completion notification of the compression unit 141 for one block, and the processing of the corresponding rasterization Rpq is completed. Then, the compression unit 141 is caused to start the compression Cpq process. In the test example, as shown in FIG. 7, the compression Cpq could be continuously performed without interruption.

スレッドTh2では、1ブロックに対する伸長部142の完了通知に応答してバンド順次ブロック順次になるようにバンドr及びブロックsが更新され、伸長部142に対し伸長Drsの処理を開始させる。ただし、各バンドrについて、最後のブロックje(r)に関しては、伸長Drsの処理を開始させない。   In the thread Th2, the band r and the block s are updated so that the band sequential block sequential in response to the completion notification of the decompression unit 142 for one block, and the decompression unit 142 starts the process of decompression Drs. However, for each band r, the process of decompression Drs is not started for the last block je (r).

図5は、スレッドTh0の処理を示すフローチャートである。i0の初期値は0である。以下、カッコ内は図中のステップ識別符号を示す。   FIG. 5 is a flowchart showing the processing of the thread Th0. The initial value of i0 is 0. In the following, the step identification codes in the figure are shown in parentheses.

(S0)ブロック最大番号配列1331の要素iに格納されている値je(i)を読み出し、ステップS1〜SAの処理を、ブロックjが0からje(i)までについて順次繰り返す。   (S0) The value je (i) stored in the element i of the block maximum number array 1331 is read, and the processing of steps S1 to SA is sequentially repeated for the block j from 0 to je (i).

(S1)i=i0からi0+2までについて順次、ステップS2からS9までの処理を繰り返す。   (S1) The processes from step S2 to S9 are repeated sequentially for i = i0 to i0 + 2.

(S2)ヒープメモリ132内に中間コードブロックLijを作成する。   (S2) An intermediate code block Lij is created in the heap memory 132.

(S3、S4)j=0であれば、サブ領域BMPkをゼロクリアする。ここにkはi=i0+kを満たす値である。   (S3, S4) If j = 0, the sub-region BMPk is cleared to zero. Here, k is a value satisfying i = i0 + k.

(S5)バンド・ブロック番号変数群1333の変数Dの内容rsを見て伸張Di(j−1)の処理が完了しているか否か(ただし、j=0の場合には伸張D(i−1)jの処理が完了しているか否か)を判定し、すなわち、r=i且つs=jであるか否かを判定し、肯定判定した場合にはステップS6へ進む。   (S5) Whether or not the process of expansion Di (j-1) is completed by looking at the content rs of variable D of band block number variable group 1333 (however, if j = 0, expansion D (i- 1) Whether or not the processing of j has been completed is determined, that is, whether or not r = i and s = j is determined. If the determination is affirmative, the process proceeds to step S6.

(S6)ヒープメモリ132からこの中間コードブロックLijを読出し、ラスタライズしてビットマップデータ領域133Bのサブ領域BMPkに上書きする。   (S6) The intermediate code block Lij is read from the heap memory 132, rasterized, and overwritten on the sub area BMPk of the bitmap data area 133B.

(S7、S8)i0=0かつj=0であれば、スレッドTh1を生成し開始させる。   (S7, S8) If i0 = 0 and j = 0, the thread Th1 is generated and started.

(S9)バンド・ブロック番号変数群1333の変数Rの内容(i,j)を上記のように更新する。すなわち、(i,j)をバンド順次ブロック順次の次の値にする。   (S9) The contents (i, j) of the variable R in the band / block number variable group 1333 are updated as described above. That is, (i, j) is set to the next value of the band sequential block sequential.

(SC)i0を3だけインクリメントする。   (SC) Increment i0 by 3.

(SD)i0>nであれば処理を終了し、そうでなければステップS0へ戻る。   If (SD) i0> n, the process is terminated; otherwise, the process returns to step S0.

図6(A)は、スレッドTh1での処理を示すフローチャートである。   FIG. 6A is a flowchart showing processing in the thread Th1.

(S10)バンド・ブロック番号変数群1333の変数Cの内容(p,q)を読み出し、圧縮部141に対し圧縮Cpqの処理を開始させる。この際、圧縮部141には、圧縮データ格納先先頭アドレスとしてCバンド配列1330の要素iの内容と、圧縮対象データ先頭アドレスとしてBバンド配列1332の要素kの内容が供給される。ここにkは、pを3で割ったときの剰余である。   (S10) The contents (p, q) of the variable C in the band / block number variable group 1333 are read, and the compression unit 141 starts the process of compression Cpq. At this time, the compression unit 141 is supplied with the contents of the element i of the C band array 1330 as the compressed data storage destination start address and the contents of the element k of the B band array 1332 as the compression target data start address. Here, k is a remainder when p is divided by 3.

(S11)圧縮部141の処理完了イベント発生を待つ。このイベント発生により、ウエイト状態が解除されてステップS12へ進む。ウエイト状態解除前は、OSにより直ぐに次のスレッドに切り替えられるので、図5の処理遅延が防止される。   (S11) Wait for the processing completion event of the compression unit 141 to occur. When this event occurs, the wait state is canceled and the process proceeds to step S12. Since the OS immediately switches to the next thread before the wait state is released, the processing delay of FIG. 5 is prevented.

(S12、S13)p=0かつq=0であれば、スレッドTh2を生成し開始させる。   (S12, S13) If p = 0 and q = 0, a thread Th2 is generated and started.

(S14)p=nであり、かつ、q=je(n)であれば処理を終了し、そうでなければステップS15へ進む。   (S14) If p = n and q = je (n), the process ends. If not, the process proceeds to step S15.

(S15)バンド・ブロック番号変数群1333の変数Cの内容(p,q)を上記のように更新する。   (S15) The contents (p, q) of the variable C in the band block number variable group 1333 are updated as described above.

(S16)バンド・ブロック番号変数群1333の変数Rの内容ijを見てRpqの処理が完了しているか否かを判定し、すなわち、0≦q≦je(p)−1のときはi=p且つj=q+1であるか否かを判定しq=je(p)のときはi=p+1且つj=0であるか否かを判定し、肯定判定した場合にはステップS10へ戻る。   (S16) By looking at the contents ij of the variable R in the band block number variable group 1333, it is determined whether or not the processing of Rpq is completed. That is, if 0 ≦ q ≦ je (p) −1, i = It is determined whether or not p and j = q + 1. When q = je (p), it is determined whether i = p + 1 and j = 0. If the determination is affirmative, the process returns to step S10.

図6(B)は、スレッドTh3での処理を示すフローチャートである。   FIG. 6B is a flowchart showing processing in the thread Th3.

(S20)バンド・ブロック番号変数群1333の変数Dの内容(r,s)を読み出し、伸長部142に対し伸張Dpqの処理を開始させる。この際、伸長部142には、伸張対象先頭アドレスとしてCバンド配列1330の要素iの内容と、伸張データ格納先先頭アドレスとしてBバンド配列1332の要素kの内容が供給される。ここにkは、rを3で割ったときの剰余である。   (S20) The contents (r, s) of the variable D in the band / block number variable group 1333 are read, and the decompression unit 142 starts the decompression Dpq process. At this time, the contents of the element i of the C band array 1330 are supplied to the decompression unit 142 as the decompression target start address, and the contents of the element k of the B band array 1332 are provided as the decompression data storage destination top address. Here, k is a remainder when r is divided by 3.

(S21)伸長部142の処理完了イベント発生を待つ。このイベント発生により、ウエイト状態が解除されてステップS22へ進む。ウエイト状態解除前は、OSにより直ぐに次のスレッドに切り替えられる。   (S21) Wait for the processing completion event of the decompression unit 142 to occur. When this event occurs, the wait state is canceled and the process proceeds to step S22. Before the wait state is canceled, the OS immediately switches to the next thread.

(S22)r=nであり、かつ、s=je(n)−1であれば処理を終了し、そうでなければステップS23へ進む。   (S22) If r = n and s = je (n) −1, the process is terminated; otherwise, the process proceeds to step S23.

(S23)バンド・ブロック番号変数群1333の変数Dの内容(r,s)を上記のように更新する。   (S23) The contents (r, s) of the variable D of the band / block number variable group 1333 are updated as described above.

(S24)バンド・ブロック番号変数群1333の変数Cの内容pqを見てCrsの処理が完了しているか否かを判定し、すなわち、0≦s≦je(r)−1のときはp=r且つq=s+1であるか否かを判定しs=je(r)のときはp=r+1且つq=0であるか否かを判定し、肯定判定した場合にはステップS20へ戻る。   (S24) The contents pq of the variable C in the band / block number variable group 1333 are viewed to determine whether or not the Crs processing has been completed. That is, when 0 ≦ s ≦ je (r) −1, p = It is determined whether r and q = s + 1. When s = je (r), it is determined whether p = r + 1 and q = 0. If the determination is affirmative, the process returns to step S20.

以上のような処理により、1頁分の圧縮データ(ページデータ)が圧縮データ領域133C上に生成される。制御部123はこれに応答して、上記3スレッドとは別の、制御部123に含まれるスレッドThPを生成し開始させる。   Through the above processing, one page of compressed data (page data) is generated in the compressed data area 133C. In response to this, the control unit 123 generates and starts a thread ThP included in the control unit 123, which is different from the above three threads.

スレッドThPでは、エンジンコントローラ17のデータ入力がレディ状態であることを確認して、このページデータをバンド順次に、伸長部143を介し、伸長させエンジンコントローラ17へ転送させる。この際、バンドiに関しては、伸長部143に、伸長対象データ先頭アドレスとしてCバンド配列1330の要素iの内容と、転送先アドレスとしてエンジンコントローラ17のアドレスとが供給される。   In the thread ThP, it is confirmed that the data input of the engine controller 17 is in the ready state, and this page data is expanded in band order via the expansion unit 143 and transferred to the engine controller 17. At this time, for the band i, the contents of the element i of the C band array 1330 are supplied to the decompression unit 143 as the decompression target data start address, and the address of the engine controller 17 as the transfer destination address.

エンジンコントローラ17は、転送されたビットマップデータを受け取ってそのバッファメモリに格納した後、直列データに変換しさらにビデオ信号に変換してプリントエンジン21へ供給する。プリントエンジン21は、この信号とエンジンコントローラ17からの制御信号とに基づき、感光ドラムに静電潜像を形成させ、これにトナーを付着させて現像し、そのトナー像を用紙に転写させ、加熱及び加圧によりトナー像を用紙に定着させる。一方、CPU11は、プログラムに従って、搬送コントローラ18を介し用紙搬送装置22に対し用紙をプリントエンジン21へ搬送させ、印刷された用紙を搬送させてトレイ上に排紙させる。   The engine controller 17 receives the transferred bitmap data, stores it in its buffer memory, converts it into serial data, further converts it into a video signal, and supplies it to the print engine 21. Based on this signal and a control signal from the engine controller 17, the print engine 21 forms an electrostatic latent image on the photosensitive drum, develops it by attaching toner to the photosensitive drum, transfers the toner image to a sheet, and heats it. Then, the toner image is fixed on the paper by pressing. On the other hand, according to the program, the CPU 11 causes the paper transport device 22 to transport the paper to the print engine 21 via the transport controller 18, transports the printed paper, and discharges it onto the tray.

図9は、圧縮されたページデータの伸長・転送処理と他の処理とを示す概略タイムチャートである。   FIG. 9 is a schematic time chart showing decompression / transfer processing of compressed page data and other processing.

このような処理により、スレッドTh0〜Th2による2頁目の各バンドの伸長・ラスタライズ・圧縮処理と、スレッドThPによる1頁目のページデータ伸長・転送処理とが並列に実行され、3頁目についても同様である。   By such processing, the expansion / rasterization / compression processing of each band of the second page by the threads Th0 to Th2 and the page data expansion / transfer processing of the first page by the thread ThP are executed in parallel. Is the same.

本実施例1によれば、ビットマップデータ領域133Bが3バンド分で足りるので、必要なメモリ容量の増大を抑制することができ、また、3バンド分が伸長、ラスタライズ及び圧縮に関し互いにずれて並列処理されるので、圧縮及び伸長のそれぞれを殆ど連続的に行うことができ、印刷データを高速にビットマップ展開することができるという効果を奏する。さらに、伸長、ラスタライズ及び圧縮のそれぞれが異なるタスクで並列処理されるので、比較的簡単に圧縮及び伸長のそれぞれを殆ど連続的に行うことができるという効果を奏する。   According to the first embodiment, since the bitmap data area 133B is sufficient for three bands, an increase in necessary memory capacity can be suppressed, and the three bands are shifted in parallel with respect to expansion, rasterization, and compression. Since it is processed, each of compression and decompression can be performed almost continuously, and the print data can be bitmap-developed at high speed. Furthermore, since decompression, rasterization, and compression are performed in parallel by different tasks, there is an effect that compression and decompression can be performed almost continuously relatively easily.

また、圧縮1チャンネル伸長2チャンネルのハードウェア圧縮伸長プロセッサ14を用いるとともに、圧縮・伸長プロセッサ14に対する伸長及び圧縮の開始制御を上記のようなスレッドTh1、Th2及びThPで実行しているので、これらの処理のCPU負荷が比較的小さい。このため、これらスレッドによるスレッドTh0の処理遅延が比較的小さく、また、並列処理により、全体として効率よく高速処理することが可能となる。さらに、多スレッド化によりプログラム構造が簡単化されるので、開発期間を短縮して製造コストを削減することが可能となる。   Since the compression / decompression processor 14 uses the compression / decompression processor 14 and the compression / decompression processor 14 performs the decompression and compression start control by the threads Th1, Th2 and ThP as described above. The CPU load for this process is relatively small. For this reason, the processing delay of the thread Th0 due to these threads is relatively small, and high-speed processing as a whole can be efficiently performed by parallel processing. Further, since the program structure is simplified by the multi-threading, the development period can be shortened and the manufacturing cost can be reduced.

なお、伸長部143をエンジンコントローラ17に備えてエンジンコントローラ17側で伸長させることにより、ページデータ転送効率を高めてもよい。   Note that the page data transfer efficiency may be increased by providing the decompression unit 143 in the engine controller 17 and decompressing the decompression unit 143 on the engine controller 17 side.

上記実施例1では、ディスプレイリスト作成とラスタライズの処理を直列に行っていたが、両者を別スレッドにして並列処理することも可能であり、これを本発明の実施例2として以下に説明する。   In the first embodiment, the display list creation and rasterization processing are performed in series. However, it is also possible to perform both processes in separate threads, which will be described below as a second embodiment of the present invention.

図12に示すように、ディスプレイリストのみの処理を行うスレッドTh3を、スレッドTh0よりも前に生成して開始させ、バンド順次ブロック順次に(i,j)を更新して中間コードブロックLijの作成処理を行う。   As shown in FIG. 12, a thread Th3 for processing only the display list is generated and started before the thread Th0, and the intermediate code block Lij is created by updating (i, j) in the band sequential block order. Process.

図11は、この場合のスレッドTh0での処理を示すフローチャートである。図5の処理と異なるのは、ステップS2及びS5の替わりにステップS3aにおいて、伸張Di(j−1)のみならず中間コードブロックLijの作成完了も待つ点である。中間コードブロックLijの作成完了を通知するために、1333に変数Lを追加し、スレッドTh3で1ブロックの中間コード作成処理を完了する毎に、バンド番号及びブロック番号を更新する。   FIG. 11 is a flowchart showing processing in the thread Th0 in this case. A difference from the processing of FIG. 5 is that, in step S3a instead of steps S2 and S5, not only expansion Di (j−1) but also completion of creation of the intermediate code block Lij is awaited. In order to notify the completion of the creation of the intermediate code block Lij, a variable L is added to 1333, and the band number and the block number are updated every time one block of intermediate code creation processing is completed in the thread Th3.

図13は、バンドBND0〜BN2毎に図12の処理を再配列したものを示す図である。   FIG. 13 is a diagram showing a rearranged process of FIG. 12 for each of the bands BND0 to BN2.

他の点は、実施例1と同じである。   The other points are the same as those in the first embodiment.

本実施例2によれば、ディスプレイリスト作成とラスタライズとが並列処理させるので、それぞれの処理が簡単になり、また、ラスタライズの休止期間に対するラスタライズ実行時間が比較的小さいので、時分割並列処理におけるディスプレイリスト作成とラスタライズとの間の切り替えのオーバヘッドが比較的小さくなり、全体として効果的である。   According to the second embodiment, since display list creation and rasterization are processed in parallel, the respective processes are simplified, and the rasterization execution time is relatively small during the rasterization pause period. The overhead of switching between list creation and rasterization is relatively small and effective as a whole.

上記実施例1及び2では、伸長開始制御とラスタライズと圧縮開始制御とをそれぞれ異なるスレッドで実行するとともに、各スレッドで3バンド分をバンド順次に処理する場合を説明したが、各スレッドで1バンド分の伸長開始制御とラスタライズと圧縮開始制御とを実行することもできる。この場合、3スレッドのそれぞれは、変数領域のみ互いに異なる同一関数を用いることができる。   In the first and second embodiments, the case where the decompression start control, rasterization, and compression start control are executed by different threads and three bands are sequentially processed by each thread has been described. It is also possible to execute the decompression start control, rasterization, and compression start control for the minute. In this case, each of the three threads can use the same function that is different only in the variable area.

圧縮及び伸長のそれぞれについては同時に1バンド分しか処理できないので、スレッド間で同期を取る必要がある。このため、図15に示す如く、サブ領域BMPk、k=0〜2のそれぞれについて、圧縮完了フラグFc(k)及び伸長完了フラグFd(k)を、共有メモリ133内に備える。共有メモリ133内にはまた、図3のバンド・ブロック番号変数群1333の替わりに、中間コードブロックの作成がどこまで完了しているかを示すバンド・ブロック番号変数1333aが備えられている。図15の他の点は図3と同一である。   Since only one band can be processed at the same time for each of compression and decompression, it is necessary to synchronize between threads. Therefore, as shown in FIG. 15, the compression completion flag Fc (k) and the expansion completion flag Fd (k) are provided in the shared memory 133 for each of the sub-regions BMPk, k = 0 to 2. In the shared memory 133, a band block number variable 1333a indicating how far the creation of the intermediate code block has been completed is provided instead of the band block number variable group 1333 of FIG. Other points in FIG. 15 are the same as those in FIG.

図16は、スレッドTh0A、Th1A、Th2A及びTh3と、圧縮部141及び伸長部142の処理との概略タイミングチャートである。図16では複雑化を避けるため、圧縮及び伸長とスレッドとの間の関係を示す点線はスレッドTh0Aについてのみ記載している。   FIG. 16 is a schematic timing chart of the threads Th0A, Th1A, Th2A, and Th3 and the processing of the compression unit 141 and the expansion unit 142. In FIG. 16, in order to avoid complication, a dotted line indicating a relationship between compression and decompression and a thread describes only the thread Th0A.

スレッドTh3は図12のそれと同じであり、スレッドTh0A〜Th2Aと並列に処理される。スレッドTh0A、Th1A及びTh2Aはそれぞれ、スレッドTh3で中間コードブロックL00、L10及びL20の作成が完了したタイミングで生成され開始される。この生成及び開始は、スレッドTh3で行っても、不図示の別スレッドで行ってもよい。   The thread Th3 is the same as that of FIG. 12, and is processed in parallel with the threads Th0A to Th2A. The threads Th0A, Th1A, and Th2A are generated and started at the timing when the creation of the intermediate code blocks L00, L10, and L20 is completed in the thread Th3, respectively. This generation and start may be performed by the thread Th3 or by another thread (not shown).

図12では、圧縮Cij及び伸長Dijの2番目のインデックスjはブロック番号を表していたが、図16での対応する2番目のインデックスはサブ領域BMPkのkを示している。そこで、図14ではこれらをCik及びDikと表している。すなわち、圧縮Cikは、サブ領域BMPkのビットマップデータを圧縮してバンドiの圧縮データ領域に格納することを意味し、伸長Dikは、バンドiの圧縮データ領域に格納されているデータを伸長してサブ領域BMPkに格納することを意味する。   In FIG. 12, the second index j of the compressed Cij and the expanded Dij represents the block number, but the corresponding second index in FIG. 16 indicates k of the sub-region BMPk. Therefore, in FIG. 14, these are represented as Cik and Dik. That is, the compression Cik means that the bitmap data of the sub-region BMPk is compressed and stored in the compressed data region of the band i, and the decompression Dik decompresses the data stored in the compressed data region of the band i. Storing in the sub-region BMPk.

図14は、スレッドTh0A〜Th2Aのうちの任意のスレッドThkで実行される処理を示すフローチャートである。   FIG. 14 is a flowchart showing processing executed by an arbitrary thread Thk among the threads Th0A to Th2A.

(S30)バンド識別変数iにkを代入し、このバンドのブロック識別変数jに初期値0を代入する。   (S30) k is substituted into the band identification variable i, and the initial value 0 is substituted into the block identification variable j of this band.

(S31)サブ領域BMPkをゼロクリアする。   (S31) The sub-region BMPk is cleared to zero.

(S32)中間コードブロックLijの作成が完了していれば、ステップS33へ進む。   (S32) If the creation of the intermediate code block Lij is completed, the process proceeds to step S33.

(S33)ラスタライズRijの処理を行う。   (S33) Rasterize Rij processing is performed.

(S34)圧縮Ci(k−1)が完了するのを待つ。すなわち、スレッドTh(k−1)Aで開始制御された圧縮部141の処理完了イベントが発生すると、そのイベントハンドラにおいて、図15の圧縮完了フラグFc(k−1)の値が1であれば、この値を0にしてステップS35へ進み、そうでなければこのイベントハンドラを抜け、OSにより次のスレッドに切り替えられる。ただし、Ci(k−1)及びFc(k−1)において、k=0の場合にはk=3とみなす。圧縮部141の処理完了イベントが発生していないウエイト状態解除前は、OSにより直ぐに次のスレッドに切り替えられるので、図14の処理遅延が防止される。この点は、他のウエイト状態についても同様である。   (S34) Wait for compression Ci (k-1) to complete. That is, when the processing completion event of the compression unit 141 controlled to start with the thread Th (k−1) A occurs, if the value of the compression completion flag Fc (k−1) in FIG. If this value is set to 0, the process proceeds to step S35. Otherwise, the event handler is exited, and the OS switches to the next thread. However, in Ci (k-1) and Fc (k-1), when k = 0, it is considered that k = 3. Since the OS immediately switches to the next thread before releasing the wait state in which the processing completion event of the compression unit 141 has not occurred, the processing delay in FIG. 14 is prevented. This also applies to other wait states.

(S35)圧縮部141に対し圧縮Cikの処理を開始させる。この際、圧縮部141には、圧縮データ格納先先頭アドレスとしてCバンド配列1330の要素iの内容と、圧縮対象データ先頭アドレスとしてBバンド配列1332の要素kの内容とが供給される。   (S35) The compression unit 141 starts the compression Cik process. At this time, the compression unit 141 is supplied with the contents of the element i of the C band array 1330 as the compressed data storage destination start address and the contents of the element k of the B band array 1332 as the compression target data start address.

(S36)ステップS35で開始制御された圧縮部141の処理完了イベントが発生すると、そのイベントハンドラにおいて、図15の圧縮完了フラグFc(k)の値を1にして、ステップS37へ進む。   (S36) When the processing completion event of the compression unit 141 whose start is controlled in step S35 occurs, the event handler sets the value of the compression completion flag Fc (k) in FIG. 15 to 1, and proceeds to step S37.

(S37)ブロック順次になるようにjの値を更新する。 (S37) The value of j is updated so that it becomes block sequential.

(S38)j=je(i)であればステップS3Cへ進み、そうでなければステップS39へ進む。   (S38) If j = je (i), the process proceeds to step S3C; otherwise, the process proceeds to step S39.

(S39)伸長Di(k−1)が完了するのを待つ。すなわち、図15の伸長完了フラグFd(k−1)の値が1であれば、この値を0にしてステップS3Aへ進む。ただし、Di(k−1)及びFd(k−1)において、k=0の場合にはk=3とみなす。   (S39) Wait for the expansion Di (k-1) to be completed. That is, if the value of the expansion completion flag Fd (k−1) in FIG. 15 is 1, this value is set to 0 and the process proceeds to step S3A. However, in Di (k−1) and Fd (k−1), k = 3 is considered when k = 0.

(S3A)伸長部142に対し伸張Dikの処理を開始させる。この際、伸長部142には、伸張対象先頭アドレスとしてCバンド配列1330の要素iの内容と、伸張データ格納先先頭アドレスとしてBバンド配列1332の要素kの内容が供給される。   (S3A) The expansion unit 142 starts the expansion Dik process. At this time, the contents of the element i of the C band array 1330 are supplied to the decompression unit 142 as the decompression target start address, and the contents of the element k of the B band array 1332 are provided as the decompression data storage destination top address.

(S3B)ステップS3Aで開始制御された伸長部142の処理完了イベントが発生すると、そのイベントハンドラにおいて、図15の伸長完了フラグFd(k)の値を1にしてステップS32へ進む。   (S3B) When the processing completion event of the decompression unit 142 controlled to start in step S3A occurs, the event handler sets the value of the decompression completion flag Fd (k) in FIG. 15 to 1 and proceeds to step S32.

(S3C)iを3だけインクリメントし、また、jを0に初期化する。   (S3C) Increment i by 3 and initialize j to 0.

(S3D)i>nであれば処理を終了し、そうでなければステップS31へ戻る。   (S3D) If i> n, the process is terminated; otherwise, the process returns to step S31.

他の点は、実施例1と同じである。   The other points are the same as those in the first embodiment.

本実施例3によれば、3バンド分について圧縮及び伸長のそれぞれをほぼ連続的に行うことができるので、印刷データを高速にビットマップ展開することができる。   According to the third embodiment, since compression and decompression can be performed almost continuously for the three bands, print data can be bitmap-developed at high speed.

また、1つのバンドについて伸長、ラスタライズ及び圧縮の一連の処理が1つのスレッド内でシーケンシャルに行われるので、その同期をスレッド間で取る必要がない。   In addition, since a series of processing of expansion, rasterization, and compression is performed sequentially within one thread for one band, it is not necessary to synchronize between the threads.

また、スレッドTh0A〜Th2Aで共通の関数を用いることができるので、実施例1及び2の場合よりもメモリ使用量を削減することができる。   Further, since a common function can be used in the threads Th0A to Th2A, the memory usage can be reduced as compared with the cases of the first and second embodiments.

さらに、ディスプレイリスト作成がスレッドTh0A〜Th2Aと異なるスレッドで実行されるので、スレッドTh0A〜Th2Aの各々でディスプレイリストを作成する場合よりもオーバヘッドが少なくなり、処理効率がよい。   Furthermore, since the display list creation is executed by a thread different from the threads Th0A to Th2A, the overhead is reduced and the processing efficiency is better than when the display list is created by each of the threads Th0A to Th2A.

同様に、スレッドTh0A〜Th2Aの各々でページデータ伸長・転送制御する場合よりも別スレッドThPでページデータ伸長・転送制御した方が、オーバヘッドが少なくなり、処理効率がよい。   Similarly, when the page data decompression / transfer control is performed by another thread ThP, the overhead is reduced and the processing efficiency is better than when the page data decompression / transfer control is performed by each of the threads Th0A to Th2A.

なお、本発明には外にも種々の変形例が含まれる。   The present invention includes various modifications in addition to the above.

例えば、バンド・ブロック番号変数群1333のデータ更新は、ラスタライズ等の処理開始前であってもよいことは勿論である。   For example, the data update of the band / block number variable group 1333 may be performed before the start of the process such as rasterization.

また、上記実施例では、2つのビットマップデータの合成が、一方のビットマップデータに対する他方のビットマップデータの上書きである場合を説明したが、ビットマップデータ間の論理演算を行うことによる合成であってもよい。   In the above-described embodiment, the case has been described in which the combination of two bitmap data is an overwrite of the other bitmap data with respect to one bitmap data. There may be.

さらに、マルチタスクとして、マルチスレッドの替わりにマルチプロセスを用いてもよい。   Furthermore, as a multitask, a multiprocess may be used instead of a multithread.

さらにまた、CPU11としてダブルコアCPUを用い、一方のコアと圧縮・伸張プログラムとの組を圧縮・伸長プロセッサとして用いる構成であってもよい。この場合、圧縮処理と伸張処理とをマルチタスク処理する。   Further, a double core CPU may be used as the CPU 11, and a combination of one core and a compression / decompression program may be used as a compression / decompression processor. In this case, the compression process and the decompression process are multitasked.

本発明の実施例に係る、ホストコンピュータから受信した印刷データをビットマップ展開する部分の機能ブロック図である。FIG. 4 is a functional block diagram of a portion that develops a bitmap of print data received from a host computer according to an embodiment of the present invention. ディスプレイリストのデータ構造説明図である。It is data structure explanatory drawing of a display list. ラスタライズ、圧縮及び伸張に関係したデータ構造説明図である。It is data structure explanatory drawing related to rasterization, compression, and expansion | extension. バンド処理順説明図である。It is band processing order explanatory drawing. スレッドTh0で行われるディスプレイリスト作成及びラスタライズの処理を示すフローチャートである。12 is a flowchart showing display list creation and rasterization processing performed in a thread Th0. (A)はスレッドTh1で行われる圧縮処理のフローチャートであり、(B)はスレッドTh2で行われる伸張処理のフローチャートである。(A) is a flowchart of compression processing performed in the thread Th1, and (B) is a flowchart of decompression processing performed in the thread Th2. 図5、図6(A)及び図6(B)での処理結果の一部を示す概略タイミングチャートである。FIG. 7 is a schematic timing chart showing a part of the processing results in FIG. 5, FIG. 6 (A) and FIG. 6 (B). バンドBND0〜BN2毎に図7の処理を再配列したものを示す図である。It is a figure which shows what rearranged the process of FIG. 7 for every band BND0-BN2. 圧縮されたページデータの伸長・転送処理と他の処理とを示す概略タイムチャートである。10 is a schematic time chart showing decompression / transfer processing of compressed page data and other processing. (A)〜(C)は、ディスプレイリスト概略説明図である。(A)-(C) are display list schematic explanatory drawings. 本発明の実施例2に係るディスプレイリスト作成及びラスタライズの処理を示すフローチャートである。It is a flowchart which shows the display list preparation and rasterization process which concern on Example 2 of this invention. 実施例2での処理結果の一部を示す概略タイミングチャートである。12 is a schematic timing chart showing a part of the processing result in the second embodiment. バンドBND0〜BN2毎に図12の処理を再配列したものを示す図である。It is a figure which shows what rearranged the process of FIG. 12 for every band BND0-BN2. 本発明の実施例3に係るスレッドTh0A〜Th2Aの任意の1つで実行される処理を示すフローチャートである。It is a flowchart which shows the process performed by arbitrary one of thread | sled Th0A-Th2A which concerns on Example 3 of this invention. 本発明の実施例3に係るラスタライズ、圧縮及び伸張に関係したデータ構造説明図である。It is data structure explanatory drawing related to the rasterization based on Example 3 of this invention, compression, and expansion | extension. 実施例3での処理結果の一部を示す概略タイミングチャートである。10 is a schematic timing chart showing a part of the processing result in the third embodiment. 本発明の実施例に係る画像形成装置のハードウェア構成を示す概略ブロック図である。1 is a schematic block diagram illustrating a hardware configuration of an image forming apparatus according to an embodiment of the present invention.

符号の説明Explanation of symbols

10 画像形成装置
11 CPU
12 EEPROM
121 インタープリタ
122 RIP
123 制御部
13 RAM
131 バッファメモリ
132 ヒープメモリ
133 共有メモリ
133C 圧縮データ領域
133B ビットマップデータ領域
1320 Lバンド配列
1330 Cバンド配列
1331 ブロック最大番号配列
1332 Bバンド配列
1333 バンド・ブロック番号変数群
14 圧縮・伸長プロセッサ
141 圧縮部
142、143 伸長部
15 通信インターフェイス
16 パネルインターフェイス
17 エンジンコントローラ
18 搬送コントローラ
19 バス
20 操作パネル
21 プリントエンジン
22 用紙搬送装置
30 印刷データ
31〜34 図形オブジェクト
40〜43 バンド
Th0〜Th3、Th0A、Th1A、Th2A、ThP スレッド
L0〜Ln ディスプレイリスト
Lij 中間コードブロック
Rij ラスタライズ
Cpq 圧縮
Drs 伸長
BND0〜BND2 バンド
BMP0〜BMP2 サブ領域
10 Image forming apparatus 11 CPU
12 EEPROM
121 interpreter 122 RIP
123 Control unit 13 RAM
131 Buffer Memory 132 Heap Memory 133 Shared Memory 133C Compressed Data Area 133B Bitmap Data Area 1320 L Band Array 1330 C Band Array 1331 Block Maximum Number Array 1332 B Band Array 1333 Band Block Number Variable Group 14 Compression / Expansion Processor 141 Compression Unit 142, 143 Expansion unit 15 Communication interface 16 Panel interface 17 Engine controller 18 Transport controller 19 Bus 20 Operation panel 21 Print engine 22 Paper transport device 30 Print data 31-34 Graphic object 40-43 Bands Th0-Th3, Th0A, Th1A, Th2A , ThP thread L0-Ln Display list Lij Intermediate code block Rij Rasterize Cpq Shrinkage Drs extension BND0~BND2 band BMP0~BMP2 sub-region

Claims (5)

CPUと、プログラムが格納されデータ領域が確保され該CPUに結合された記憶装置と、ビットマップデータの圧縮と圧縮されたビットマップデータの伸長とを並列に行うことができる専用の圧縮・伸長プロセッサと、を備え、
ページ記述言語で記述された1頁分の印刷データを複数のバンドに分割し、各バンドの印刷データをブロック毎の中間コードに変換し、中間コードをビットマップ展開する画像形成装置であって、
該データ領域は、それぞれ1バンド分の第1〜3ビットマップデータ領域を有し、
該プログラムは該CPUに対し、i=1〜3の各々について第iタスクで、
(a)各バンドの最初のブロックを除き、該データ領域内の1バンドの圧縮データを、該圧縮・伸長プロセッサを介し伸長させて該第iビットマップデータ領域に格納させ、
(b)該データ領域内の1ブロックの中間コードをラスタライズさせて該第iビットマップデータ領域のデータと合成させ、
(c)該第iビットマップデータ領域のデータを、該圧縮・伸長プロセッサを介し圧縮させて該データ領域に格納させる、
処理を、3バンド毎のブロック順次バンド順次に実行させるとともに、該第1〜3タスクがこの順にずれてバンド順次に実行開始され並列に実行され且つ該第1〜3タスクで処理(a)及び(c)のそれぞれが並列に実行されないようにすることを特徴とする画像形成装置。
A CPU, a storage device in which a program is stored and a data area is secured and coupled to the CPU, and a dedicated compression / decompression processor that can perform compression of bitmap data and decompression of compressed bitmap data in parallel And comprising
An image forming apparatus that divides print data for one page described in a page description language into a plurality of bands, converts the print data of each band into an intermediate code for each block, and develops the intermediate code as a bitmap.
Each of the data areas has first to third bitmap data areas for one band,
The program is the i-task for each of i = 1 to 3,
(A) Except for the first block of each band, one band of compressed data in the data area is decompressed via the compression / decompression processor and stored in the i-th bitmap data area;
(B) rasterizing the intermediate code of one block in the data area and combining it with the data in the i-th bitmap data area;
The data of (c) said i bitmap data area, Ru by compression through the compression and decompression processor is stored in the data area,
The processing is executed in block sequential band order for every three bands, and the first to third tasks are shifted in this order and started to be executed sequentially in parallel and executed in parallel between the first to third tasks (a). And (c) are prevented from being executed in parallel.
該プログラムは該CPUに対しさらに、第4タスクにおいて、
(d)該印刷データを、バンド順次ブロック順次に、バンド毎にブロック毎の中間コードに変換させて該データ領域に格納させ、
該第4タスクを該第1〜3タスクと並列に実行させ、処理(d)が完了した後にこの処理(d)に係るバンド及びブロックについて処理(a)を開始させることを特徴とする請求項1に記載の画像形成装置。
The program further provides the CPU with a fourth task:
(D) The print data is converted into an intermediate code for each block for each band in a band sequential block order and stored in the data area;
The fourth task is executed in parallel with the first to third tasks, and after the process (d) is completed, the process (a) is started for the band and the block related to the process (d). The image forming apparatus according to 1.
該データ領域にはさらに、該第1〜3ビットマップデータ領域の各々に関し、処理(a)及び(c)のそれぞれを完了したか否かを示す情報が格納され、
該プログラムは該CPUに対しさらに、該第1〜3ビットマップデータ領域の各々に関し処理(a)及び(c)の完了時に該情報を更新させ、該情報に基づいて、該第1〜3タスクで処理(a)及び(c)のそれぞれが並列に実行されないように制御させる、
ことを特徴とする請求項2に記載の画像形成装置。
The data area further stores information indicating whether or not each of the processes (a) and (c) has been completed for each of the first to third bitmap data areas,
The program further causes the CPU to update the information when the processes (a) and (c) are completed for each of the first to third bitmap data areas, and based on the information, the first to third tasks To control each of the processes (a) and (c) not to be executed in parallel.
The image forming apparatus according to claim 2.
該データ領域は、該バンド毎かつブロック毎の中間コードが格納される領域と、該バンド毎の圧縮データが格納される領域とを有することを特徴とする請求項1乃至3のいずれか1つに記載の画像形成装置。   4. The data area according to claim 1, wherein the data area includes an area for storing an intermediate code for each band and for each block, and an area for storing compressed data for each band. The image forming apparatus described in 1. 該圧縮・伸長プロセッサは、該CPUに結合されたASICであることを特徴とする請求項1乃至4のいずれか1つに記載の画像形成装置。   The image forming apparatus according to claim 1, wherein the compression / decompression processor is an ASIC coupled to the CPU.
JP2007139096A 2004-05-25 2007-05-25 Image forming apparatus Expired - Fee Related JP4370346B2 (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2007139096A JP4370346B2 (en) 2007-05-25 2007-05-25 Image forming apparatus
US12/124,538 US8619310B2 (en) 2007-05-25 2008-05-21 Image forming apparatus
US14/076,221 US8861013B2 (en) 2007-05-25 2013-11-10 Image forming apparatus
US14/076,218 US9202149B2 (en) 2004-05-25 2013-11-10 Image forming apparatus
US14/076,217 US8928903B2 (en) 2007-05-25 2013-11-10 Image forming apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007139096A JP4370346B2 (en) 2007-05-25 2007-05-25 Image forming apparatus

Publications (2)

Publication Number Publication Date
JP2008290376A JP2008290376A (en) 2008-12-04
JP4370346B2 true JP4370346B2 (en) 2009-11-25

Family

ID=40165608

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007139096A Expired - Fee Related JP4370346B2 (en) 2004-05-25 2007-05-25 Image forming apparatus

Country Status (1)

Country Link
JP (1) JP4370346B2 (en)

Also Published As

Publication number Publication date
JP2008290376A (en) 2008-12-04

Similar Documents

Publication Publication Date Title
US9202149B2 (en) Image forming apparatus
JP4543340B2 (en) Image processing apparatus, image forming system, and program
JP5051327B1 (en) Image processing apparatus and program
JP5655392B2 (en) Print image processing apparatus and program
US8526049B2 (en) Systems and methods for display list management
AU2012203635B2 (en) Print control device and program
JP2000313145A (en) Print controller, data processing method therefor, and recording medium storing computer readable program
JP6135329B2 (en) Print data processing apparatus, program, and system
JP4343975B2 (en) Image forming apparatus
JP4343976B2 (en) Image forming apparatus
JP4370346B2 (en) Image forming apparatus
JP4343974B2 (en) Image forming apparatus
US10325189B2 (en) Image processing apparatus and image processing method that perform, in units of band areas, rasterization based on second intermediate data stored in a first memory area and compressed raster data stored in a second memory area
JP5150214B2 (en) Image forming apparatus
JP3871011B2 (en) Information processing apparatus and information processing method
CN110741408A (en) Image processing apparatus, image processing method, and image processing program
JP3772407B2 (en) Image processing device
JP2013119242A (en) Image forming apparatus, image forming method, and program
JPH11165434A (en) Lithography processing device
EP2293180B1 (en) PDL data processing device and PDL data creating device
JP5574242B2 (en) Print control apparatus, print control program, and print control method
JP2019155657A (en) Image processing system, image processing method, and program
JP2000255118A (en) Apparatus for processing printing and method for processing printing
JP2018079636A (en) Image processing device and program
JPH1188658A (en) Image-forming device

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090120

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090323

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

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

R155 Notification before disposition of declining of application

Free format text: JAPANESE INTERMEDIATE CODE: R155

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090831

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

Year of fee payment: 3

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

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

Free format text: PAYMENT UNTIL: 20120904

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20120904

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130904

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees