JP2009116712A - Image forming apparatus - Google Patents
Image forming apparatus Download PDFInfo
- Publication number
- JP2009116712A JP2009116712A JP2007290332A JP2007290332A JP2009116712A JP 2009116712 A JP2009116712 A JP 2009116712A JP 2007290332 A JP2007290332 A JP 2007290332A JP 2007290332 A JP2007290332 A JP 2007290332A JP 2009116712 A JP2009116712 A JP 2009116712A
- Authority
- JP
- Japan
- Prior art keywords
- processing
- heap memory
- program
- forming apparatus
- image forming
- 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.)
- Granted
Links
Images
Landscapes
- Record Information Processing For Printing (AREA)
Abstract
Description
本発明は、複数タスクからのヒープメモリ獲得要求に応答して、必要に応じガベージコレクションを行うヒープメモリ割当プログラムを備えた画像形成装置に係り、特に、メモリ解放を待てば要求サイズのメモリを確保できると予測できる場合にメモリ解放を待つヒープメモリ割当プログラムを備えた画像形成装置に関する。 The present invention relates to an image forming apparatus provided with a heap memory allocation program that performs garbage collection as needed in response to heap memory acquisition requests from a plurality of tasks, and in particular, secures a memory of a requested size when waiting for memory release. The present invention relates to an image forming apparatus provided with a heap memory allocation program that waits for memory release when it can be predicted.
C++やJava(登録商標)等のオブジェクト指向プログラミング言語では、ヒープメモリ内の領域の動的確保及び解放がシステム側(ランタイムライブラリ)で行われる。要求サイズのメモリ領域を確保できない場合、ガベージコレクションが行われて、参照されなくなったオブジェクトが解放され、また、コンパクションが行われて連続した空き領域が生成される。 In an object-oriented programming language such as C ++ or Java (registered trademark), an area in the heap memory is dynamically secured and released on the system side (runtime library). When a memory area of the requested size cannot be secured, garbage collection is performed to release objects that are no longer referenced, and compaction is performed to generate continuous free areas.
しかしながら、ヒープメモリサイズが比較的大きいので、コンパクションでのオブジェクトのコピーに要する時間が比較的長く、また、ガベージコレクションが何時行われるかアプリケーションにおいて予測ができず、不意に処理が遅延する原因となる。 However, since the heap memory size is relatively large, it takes a relatively long time to copy objects in compaction, and the application cannot predict when garbage collection will occur, causing unexpected processing delays. .
そこで、下記特許文献1では、画像形成装置において、外部からの印刷データの待ち受け時間にガベージコレクションを行うことにより、印刷処理への影響を低減している。
しかし、印刷データを受信した後、印刷データを遅滞なく処理して印刷を行いたい場合、処理実行のためのメモリ割当ができなくてガベージコレクションが実行されると、処理が遅延する。 However, when it is desired to process the print data without delay after receiving the print data, the memory is not allocated for execution of the process, and the garbage collection is executed, the process is delayed.
一般に、ガベージコレクション実行時にはその他の全処理が停止されるので、特に、複数の処理を効率よく並列実行している場合、ガベージコレクションが度々実行されると、処理遅延の影響が比較的大きくなる。 In general, all other processes are stopped when garbage collection is executed. Therefore, particularly when a plurality of processes are efficiently executed in parallel, the effect of processing delay becomes relatively large when garbage collection is frequently executed.
本発明の目的は、このような問題点に鑑み、ヒープメモリ確保遅延を抑制することが可能な画像形成装置を提供することにある。 In view of such problems, an object of the present invention is to provide an image forming apparatus capable of suppressing a heap memory securing delay.
本発明の第1態様では、プロセッサと、該プロセッサに結合され、ヒープメモリ割当プログラムが格納された記憶手段と、を有する画像形成装置において、該ヒープメモリ割当プログラムは、該プロセッサに対し、
(a)要求サイズの記憶領域を確保可能か否かを判定させ、肯定判定した場合には要求サイズの記憶領域を確保させ、
(b)処理(a)で否定判定した場合には、第1状態であれば第2状態になるのを待って処理(a)に戻らせ、
(c)処理(b)で該第1状態でなければ、ガベージコレクションを行わせた後に該要求サイズの記憶領域を確保させる。
In a first aspect of the present invention, in an image forming apparatus including a processor and a storage unit coupled to the processor and storing a heap memory allocation program, the heap memory allocation program
(A) Determine whether it is possible to secure a storage area of the requested size, and if affirmative determination is made, secure a storage area of the requested size,
(B) If a negative determination is made in process (a), if it is the first state, the process waits for the second state to return to process (a),
(C) If the process (b) is not in the first state, a storage area of the requested size is secured after garbage collection is performed.
本発明による画像形成装置の第2態様では、第1態様において、該第1状態は、処理中を含むメモリ上ディスプレイリスト残存頁数が2以上であり、該第2状態は、該処理中を含むメモリ上ディスプレイリスト残存頁数が1以下であることを含む。 In a second aspect of the image forming apparatus according to the present invention, in the first aspect, the first state is that the number of remaining pages in the display list in the memory including the processing is two or more, and the second state is that the processing is in progress. The number of remaining pages in the display list on the memory is 1 or less.
本発明による画像形成装置の第3態様では、第2態様において、処理(c)は、該プロセッサに対し、
(c1)該第1状態でなければ、該処理中を含むメモリ上ディスプレイリスト残存頁数が1以下かつ処理中ディスプレイリストの作成済バンド数がラスタライズ開始条件未満の値であるか否かを判定させ、
(c2)処理(c1)で肯定判定した場合には、例外としてラスタライズを開始させ、処理(a)に戻らせ、
(c3)処理(c1)で否定判定した場合には、該ガベージコレクションを行わせた後に該要求サイズの記憶領域を確保させる。
In a third aspect of the image forming apparatus according to the present invention, in the second aspect, the process (c)
(C1) If not in the first state, it is determined whether or not the number of remaining pages in the display list including the processing is 1 or less and the number of created bands of the processing display list is less than the rasterization start condition. Let
(C2) When an affirmative determination is made in process (c1), rasterization is started as an exception, and the process returns to process (a).
(C3) If a negative determination is made in step (c1), a storage area of the requested size is secured after the garbage collection is performed.
本発明による画像形成装置の第4態様では、第3態様において、
処理(c3)は、該プロセッサに対し、
(c31)処理(c1)で否定判定した場合には、記憶領域確保要求が、ディスプレイリスト作成処前の処理を行うプログラムからの要求であるか否かを判定させ、肯定判定した場合には、フォントキャッシュを解放させて処理(a)に戻らせ、
(c32)処理(c31)で否定判定した場合には、該ガベージコレクションを行わせた後に該要求サイズの記憶領域を確保させる。
In a fourth aspect of the image forming apparatus according to the present invention, in the third aspect,
The process (c3)
(C31) If a negative determination is made in the process (c1), it is determined whether or not the storage area securing request is a request from a program that performs a process before the display list creation process. Release the font cache and return to process (a),
(C32) If a negative determination is made in step (c31), a storage area of the requested size is secured after the garbage collection is performed.
本発明の第5態様では、プロセッサと、該プロセッサに結合され、それぞれ異なるタスクとして実行される複数の処理プログラムと、ヒープメモリ管理プログラムとが格納された記憶手段と、を有する画像形成装置において、
該複数の処理プログラムのそれぞれは、該プロセッサに対し、本体処理の前処理として自タスクに対応したセマフォのロックを獲得させ、該本体処理の後処理としてこのロックを解放させ、
該ヒープメモリ管理プログラムは、該タスクと別のタスクとして実行されるヒープメモリ割当プログラムと、該ヒープメモリ割当プログラムと並列実行可能なヒープメモリ解放プログラムとを有し、
該ヒープメモリ割当プログラムは、該プロセッサに対し、要求サイズの記憶領域を確保できないないと判断した場合、ガベージコレクションの前処理として、該複数の処理プログラムのそれぞれに対応したセマフォのロックを獲得させ、該ガベージコレクションを行わせ、該ガベージコレクションの後処理としてこれらセマフォのロックを解放させ、
該ヒープメモリ解放プログラムは該プロセッサに対し、該複数の処理プログラムの任意の1つからの解放要求に応答して、該ヒープメモリの対応する記憶領域を解放させ、
該複数の処理プログラムの任意の1つは、該プロセッサに対し、該ヒープメモリ割当プログラムを介しヒープメモリ割当要求する前に、自タスクに対応したセマフォのロックを解放させ、該ヒープメモリ割当プログラムから戻った後にこのセマフォのロックを獲得させる。
In a fifth aspect of the present invention, in an image forming apparatus comprising a processor, a plurality of processing programs coupled to the processor and executed as different tasks, and storage means storing a heap memory management program,
Each of the plurality of processing programs causes the processor to acquire the lock of the semaphore corresponding to its own task as the preprocessing of the main body processing, and to release the lock as the postprocessing of the main body processing,
The heap memory management program includes a heap memory allocation program that is executed as a task different from the task, and a heap memory release program that can be executed in parallel with the heap memory allocation program.
When the heap memory allocation program determines that the storage area of the requested size cannot be secured for the processor, the heap memory allocation program acquires a semaphore lock corresponding to each of the plurality of processing programs as preprocessing of the garbage collection, Let the garbage collection occur, let the lock on these semaphores be released as post-processing of the garbage collection,
The heap memory release program causes the processor to release a corresponding storage area of the heap memory in response to a release request from any one of the plurality of processing programs,
Any one of the plurality of processing programs causes the processor to release the lock of the semaphore corresponding to the invoking task before requesting heap memory allocation via the heap memory allocation program. Get this semaphore lock after returning.
上記第1態様の構成によれば、第1状態であれば第2状態になるのを待って、要求サイズの記憶領域を確保可能か否かを判定し、否定判定した場合にガベージコレクションを行わせるので、ガベージコレクション実行回数を低減してヒープメモリ確保遅延を抑制することが可能となるという効果を奏する。 According to the configuration of the first aspect, after waiting for the second state to enter the second state, it is determined whether the storage area of the requested size can be secured, and if a negative determination is made, garbage collection is performed. Therefore, there is an effect that it is possible to suppress the heap memory securing delay by reducing the number of times of executing garbage collection.
上記第2態様の構成によれば、該第1状態は処理中を含むメモリ上ディスプレイリスト残存頁数が2以上であり、該第2状態は該処理中を含むメモリ上ディスプレイリスト残存頁数が1以下であることを含むので、効率よくガベージコレクション実行回数を低減してヒープメモリ確保遅延を抑制することが可能となるという効果を奏する。 According to the configuration of the second aspect, the number of remaining pages in the display list in the memory including the processing in the first state is 2 or more, and the number of remaining pages in the display list in the memory including the processing in the second state is the second state. Since it includes 1 or less, there is an effect that it is possible to efficiently reduce the number of garbage collection executions and suppress a heap memory securing delay.
上記第3態様の構成によれば、該第1状態でなくても、該処理中を含むメモリ上ディスプレイリスト残存頁数が1以下かつ処理中ディスプレイリストの作成済バンド数がラスタライズ開始条件未満の値であると判定した場合には、例外としてラスタライズを開始させて、要求サイズの記憶領域が確保可能になるのを待つので、さらに効率よくガベージコレクション実行回数を低減してヒープメモリ確保遅延を抑制することが可能となるという効果を奏する。 According to the configuration of the third aspect, even if the state is not the first state, the number of remaining pages of the display list in the memory including the processing is 1 or less and the number of created bands of the processing display list is less than the rasterization start condition. If the value is determined to be a value, rasterization is started as an exception and waits until a storage area of the requested size can be secured, thus reducing the number of garbage collection executions more efficiently and suppressing the delay in securing heap memory. It is possible to do this.
上記第4態様の構成によれば、記憶領域確保要求が、ディスプレイリスト作成処前の処理を行うプログラムからの要求である場合、フォントキャッシュを解放させて要求サイズの記憶領域が確保可能か否かを判定するので、さらに効率よくガベージコレクション実行回数を低減してヒープメモリ確保遅延を抑制することが可能となるという効果を奏する。 According to the configuration of the fourth aspect, if the storage area securing request is a request from a program that performs processing prior to the display list creation process, whether or not the storage area of the requested size can be secured by releasing the font cache. Therefore, it is possible to reduce the number of garbage collection executions more efficiently and suppress the heap memory allocation delay.
上記第5態様の構成によれば、それぞれ異なるタスクとして実行される複数の処理プログラムのうち、ヒープメモリ割当プログラムを呼び出したもの以外が1頁分処理を終了するまで、該ヒープメモリ割当プログラムにおいてガベージコレクションの実行が待たされるので、この実行の開始時には参照されなくなったデータの量が比較的多いと考えられ、ガベージコレクション実行により確保可能になる連続領域が比較的大きくなって効率よくガベージコレクションを実行することができるとともに、これによりガベージコレクション実行回数を低減してヒープメモリ確保遅延を抑制することが可能となるという効果を奏する。 According to the configuration of the fifth aspect, garbage is allocated in the heap memory allocation program until one page of the plurality of processing programs executed as different tasks other than the one calling the heap memory allocation program is completed. Since collection execution is awaited, the amount of data that is no longer referenced at the start of this execution is considered to be relatively large, and the continuous area that can be secured by executing garbage collection becomes relatively large, and garbage collection is performed efficiently. As a result, it is possible to reduce the number of garbage collection executions and suppress the delay in securing the heap memory.
本発明の他の目的、構成及び効果は以下の説明から明らかになる。 Other objects, configurations and effects of the present invention will become apparent from the following description.
以下、図面を参照して本発明の実施例を説明する。なお、ガベージコレクションに関しては実施例4で説明する。 Embodiments of the present invention will be described below with reference to the drawings. The garbage collection will be described in the fourth embodiment.
図21は、本発明の実施例1に係る画像形成装置10のハードウェア構成を示す概略ブロック図である。
FIG. 21 is a schematic block diagram illustrating a hardware configuration of the
この画像形成装置10では、CPU11、EEPROM12、RAM13、圧縮・伸長プロセッサ14、通信インターフェイス15、パネルインターフェイス16、エンジンコントローラ17及び搬送コントローラ18がバス19で結合され、インターフェイス16、インターフェイスを含むエンジンコントローラ17並びに搬送コントローラ18にそれぞれ操作パネル20、プリントエンジン21及び用紙搬送装置22が結合されている。通信インターフェイス15には、不図示のホストコンピュータが結合される。
In this
EEPROM12には、OS(Operating System)、ドライバ及びアプリケーションが格納される。RAM13には、一時的なデータが格納される。このOSは、アプリケーションのマルチスレッドに対応し、かつ、セマフォ機能を備えている。
The EEPROM 12 stores an OS (Operating System), a driver, and an application. The
圧縮・伸長プロセッサ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 /
操作パネル20は、キー及び表示パネルを供えている。エンジンコントローラ17は、CPUと、プリントエンジン制御用プログラムが格納されたメモリと、受信したビットマップデータを格納するバッファメモリとを備えている。
The
図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
制御部123は、ホストコンピュータからの印刷要求に対し、ホストコンピュータからの印刷データを、通信インターフェイス15を介してバッファメモリ131に格納させる。制御部123は、インタープリタ121を起動させることにより、この印刷データを、各頁について、バンドごとのディスプレイリスト(中間コード)に変換させ、ヒープメモリ132に格納させる。制御部123は、RIP122及び圧縮・伸長プロセッサ14を起動させることにより、それぞれ後述の処理をさせる。
In response to a print request from the host computer, the
図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
図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
バンド数が多いほど、所要メモリ容量を低減することができるが、トータル処理時間が増加するので、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
図2は、ヒープメモリ132に格納されるディスプレイリストのデータ構造を示している。このデータ構造は、リスト構造である。
FIG. 2 shows the data structure of the display list stored in the
Lバンド配列1320は、その要素数がバンド数に等しく、要素i(iは0〜nのいずれか)はディスプレイリストLiのポインタである。各ディスプレイリストLiのブロック数は一定ではない。図1では簡単化のために、各ディスプレイリストLiのブロック数が3である場合を示している。ブロックLijの中間コードは、イメージデータの場合、イメージデータ格納先を示すポインタとデータのバイト数とを含むコードであり、イメージデータ自体はブロックLij内に含まれない。イメージデータがバンド境界を含む場合には、バンド境界で分割されたイメージデータがポインタとデータのバイト数とで同様に指定される。
In the
一方、共有メモリ133には、ビットマップデータ領域133Bと圧縮データ領域133Cとが確保される。また、圧縮・伸長プロセッサ14は互いに並列処理可能な圧縮部141と伸長部142とを備えている。
On the other hand, a
次に、RIP122、圧縮・伸長プロセッサ14及びこれらを制御する制御部123によるバンドiの処理について説明する。ブロック識別変数jの初期値は0である。制御部123は、RIP122を頁毎に開始制御し、制御圧縮・伸長プロセッサ14をバンド毎に開始制御する。
Next, processing of band i by the
(1)j=0の場合は、ステップ(2)へ進む。j>0の場合、伸長部142は、圧縮バンド領域Ciに格納されている圧縮データを呼び出し、元のビットマップデータに伸長させて、サブ領域BMPkに格納する。
(1) If j = 0, go to step (2). When j> 0, the decompressing
(2)RIP122は、ヒープメモリ132内の中間コードブロックLijをビップマップデータに変換して、サブ領域BMPkに格納させることにより、(1)で伸長されたビットマップデータに上書きする。
(2) The
(3)圧縮部141は、サブ領域BMPkに格納されたビットマップデータを圧縮して、圧縮データ領域133C内の圧縮バンド領域Ciに格納する。
(3) The
(4)RIP122は、jを1だけインクリメントし、中間コードブロックLijがヒープメモリ132内に存在すれば、上記ステップ(1)へ戻る。
(4) The
圧縮部141と伸長部142とを並列に動作させることができ、かつ、圧縮・伸長プロセッサ14での処理とディスプレイリスト作成及びラスタライズのソフトウェア処理とを並列に行うことが可能である。一方、同一バンドについて圧縮処理と伸長処理とソフトウェア処理とのうちの任意の2つを同時に行うことができない。そこで、図4に示す如く、同時に3バンドの処理を行う。そして、例えば、バンド0の伸長を行っているときにバンド1の圧縮を行うとともに、バンド2のディスプレイリスト作成とラスタライズとを直列処理する。これら圧縮、伸長及びラスタライズはいずれも、ビップマップデータを取り扱うので、図1に示す如く、ビットマップデータ領域133Bは、BMP0〜BMP2に分割された3バンド分の領域を有している。
The
圧縮部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
図3は、共有メモリ133に格納される、ラスタライズ、圧縮及び伸張に関係したデータの構造を示す。
FIG. 3 shows the structure of data related to rasterization, compression, and expansion stored in the shared
Cバンド配列1330は、その要素数がバンド数に等しく、要素i(iは0〜nのいずれか)は圧縮バンド領域Ciのポインタである。ブロック最大番号配列1331は、その要素数がバンド数に等しく、要素iにはバンドiのブロック番号最大値je(i)が格納されている。Bバンド配列1332は、その要素数が3であり、要素k(kは0〜2のいずれか)はサブ領域BMPkのポインタである。
In the
バンド・ブロック番号変数群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
図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
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
スレッド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
一般に、スレッド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
スレッド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
図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
(S1)i=i0からi0+2までについて順次、ステップS2からS9までの処理を繰り返す。
(S1) The processes from step S2 to S9 are repeated sequentially for i = i0 to
(S2)ヒープメモリ132内に中間コードブロックLijを作成する。
(S2) An intermediate code block Lij is created in the
(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
(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
(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
(S11)圧縮部141の処理完了イベント発生を待つ。このイベント発生により、ウエイト状態が解除されてステップS12へ進む。ウエイト状態解除前は、OSにより直ぐに次のスレッドに切り替えられるので、図5の処理遅延が防止される。
(S11) Wait for the processing completion event of the
(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
(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
図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
(S21)伸長部142の処理完了イベント発生を待つ。このイベント発生により、ウエイト状態が解除されてステップS22へ進む。ウエイト状態解除前は、OSにより直ぐに次のスレッドに切り替えられる。
(S21) Wait for the processing completion event of the
(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
(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
以上のような処理により、1頁分の圧縮データ(頁データ)が圧縮データ領域133C上に生成される。制御部123はこれに応答して、上記3スレッドとは別の、制御部123に含まれるスレッドThPを生成し開始させる。
Through the above processing, one page of compressed data (page data) is generated in the compressed
スレッドThPでは、エンジンコントローラ17のデータ入力がレディ状態であることを確認して、この頁データをバンド順次に、伸長部143を介し、伸長させエンジンコントローラ17へ転送させる。この際、バンドiに関しては、伸長部143に、伸長対象データ先頭アドレスとしてCバンド配列1330の要素iの内容と、転送先アドレスとしてエンジンコントローラ17のアドレスとが供給される。
In the thread ThP, it is confirmed that the data input of the
エンジンコントローラ17は、転送されたビットマップデータを受け取ってそのバッファメモリに格納した後、直列データに変換しさらにビデオ信号に変換してプリントエンジン21へ供給する。プリントエンジン21は、この信号とエンジンコントローラ17からの制御信号とに基づき、感光ドラムに静電潜像を形成させ、これにトナーを付着させて現像し、そのトナー像を用紙に転写させ、加熱及び加圧によりトナー像を用紙に定着させる。一方、CPU11は、プログラムに従って、搬送コントローラ18を介し用紙搬送装置22に対し用紙をプリントエンジン21へ搬送させ、印刷された用紙を搬送させてトレイ上に排紙させる。
The
図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
また、圧縮1チャンネル伸長2チャンネルのハードウェア圧縮伸長プロセッサ14を用いるとともに、圧縮・伸長プロセッサ14に対する伸長及び圧縮の開始制御を上記のようなスレッドTh1、Th2及びThPで実行しているので、これらの処理のCPU負荷が比較的小さい。このため、これらスレッドによるスレッドTh0の処理遅延が比較的小さく、また、並列処理により、全体として効率よく高速処理することが可能となる。さらに、多スレッド化によりプログラム構造が簡単化されるので、開発期間を短縮して製造コストを削減することが可能となる。
Since the compression /
なお、伸長部143をエンジンコントローラ17に備えてエンジンコントローラ17側で伸長させることにより、頁データ転送効率を高めてもよい。
Note that the page data transfer efficiency may be increased by providing the
上記実施例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
図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
スレッド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
(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
(S35)圧縮部141に対し圧縮Cikの処理を開始させる。この際、圧縮部141には、圧縮データ格納先先頭アドレスとしてCバンド配列1330の要素iの内容と、圧縮対象データ先頭アドレスとしてBバンド配列1332の要素kの内容とが供給される。
(S35) The
(S36)ステップS35で開始制御された圧縮部141の処理完了イベントが発生すると、そのイベントハンドラにおいて、図15の圧縮完了フラグFc(k)の値を1にして、ステップS37へ進む。
(S36) When the processing completion event of the
(S37)(i,j)を実施例1で述べたようにバンド順次ブロック順次における次の値にする。 (S37) (i, j) is set to the next value in the band sequential block sequence as described in the first embodiment.
(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
(S3B)ステップS3Aで開始制御された伸長部142の処理完了イベントが発生すると、そのイベントハンドラにおいて、図15の伸長完了フラグFd(k)の値を1にしてステップS32へ進む。
(S3B) When the processing completion event of the
(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, the page data decompression / transfer control with another thread ThP reduces the overhead and the processing efficiency is better than the page data decompression / transfer control with each of the threads Th0A to Th2A.
図17は、本発明の実施例4に係る、ホストコンピュータから印刷データを受信した後、中間言語に変換する迄の部分の機能ブロック図である。ラスタライズ以降の処理は図1と同じである。 FIG. 17 is a functional block diagram of a part from receiving print data from the host computer to converting it into an intermediate language according to the fourth embodiment of the present invention. The processing after rasterization is the same as in FIG.
この実施例4では、制御部123Aがホストコンピュータから通信インターフェイス15を介した印刷要求を受け付けると、印刷データ前処理部124のスレッドを生成する。印刷データ前処理部124はこれに応答して、通信インターフェイス15を介し受信した1頁分の印刷データ1321をヒープメモリ132に格納する。制御部123Aは、改ページコマンド受信毎に、印刷データ前処理部124のスレッドを生成する。印刷データ前処理部124は、図1の制御部123の一部に相当し、図17の制御部123Aは、図1の制御部123からこの印刷データ前処理部124を除いたものに相当する。
In the fourth embodiment, when the control unit 123A receives a print request from the host computer via the
EEPROM12(図21)には特定の書体のフォントファイル125が格納されており、印刷データ前処理部124は、印刷データがこの書体を使用している場合、フォントファイル125を参照し印刷データ中の文字コード列を文字列イメージ1321aに変換する。この際、フォントキャッシュ1322にその文字コードの文字イメージが存在すればこれを用い、存在しなければ、これを文字イメージに変換してフォントキャッシュ1322に格納する。印刷データ前処理部124は、図形オブジェクトを台形等の基本図形に変換することにより、図1のRIP122での処理時間を短縮させてもよい。
The
印刷データ前処理部124は、受信開始時にインタープリタ121のスレッドを生成する。
The print data preprocessing unit 124 generates a thread of the
インタープリタ121は、これに応答して、印刷データ前処理部124による処理と並列して、上記実施例1で述べた処理を行い、ヒープメモリ132にディスプレイリスト1323を1頁分作成する。文字列イメージ1321aは、印刷データ1321内のイメージオブジェクトと同様に(実施例1参照)、ディスプレイリスト1323内のポインタによりリンクされている。
In response to this, the
印刷データ前処理部124及びインタープリタ121はそれぞれ、ヒープメモリ管理部126を介してヒープメモリ132内の領域の確保及び解放を行う。
Each of the print data preprocessing unit 124 and the
図18は、ヒープメモリ管理部126関係の構成を示す概略ブロック図である。
FIG. 18 is a schematic block diagram showing a configuration related to the heap
ヒープメモリ管理部126は、メモリ割当メソッド1260と、メモリ解放メソッド1261と、カウントメソッド1262とを備えている。メモリ割当メソッド1260及びメモリ解放メソッド1261はそれぞれ、印刷データ前処理部124又はインタープリタ121とは別のスレッドで実行される。一方、RAM13の一部領域であるスタティックメモリ134には、ヒープメモリ管理部126で使用されるヒープメモリ上印刷データ残存頁数1340とヒープメモリ上ディスプレイリスト残存頁数1341とが確保される。ここに「残存頁数」は、処理中の頁も含む頁数である。
The heap
印刷データ残存頁数1340の初期値は0であり、印刷データ前処理部124は、印刷データ1321をヒープメモリ132内に1頁読み込む毎にカウントメソッド1262を介し印刷データ残存頁数1340を1だけインクリメントし、インタープリタ121からの解放指令に応答して、メモリ解放メソッド1261を介し該当頁の印刷データ1321(ディスプレイリスト1323からリンクされているイメージは対象外)をメモリから解放させ、カウントメソッド1262を介し印刷データ残存頁数1340を1だけデクリメントする。この解放指令は、インタープリタ121が1頁分のディスプレイリスト作成を終了したときに供給される。
The initial value of the print data remaining
ディスプレイリスト残存頁数1341の初期値は0であり、インタープリタ121は、ディスプレイリスト1323をヒープメモリ132内に1頁作成する毎にカウントメソッド1262を介しディスプレイリスト残存頁数1341を1だけインクリメントし、図1のRIP122からの解放指令に応答して、メモリ解放メソッド1261を介し該当頁のディスプレイリスト1323をメモリから解放させ、カウントメソッド1262を介しディスプレイリスト残存頁数1341を1だけデクリメントする。この解放指令は、RIP122が1頁分のラスタライズを終了したときに供給される。
The initial value of the display list remaining
メモリ割当メソッド1260は、後述の所定条件を満たしていないことによりメモリ解放メソッド1261による解放を待っても要求サイズの記憶領域を確保できないないと判断した場合に、ガベージコレクタGCを呼び出す。メモリ解放メソッド1261は、メモリ割当メソッド1260と並列に実行される。このガベージコレクタGCは、システム側(ランタイムライブラリ内)であっても、アプリケーション側プログラムであってもよい。
The memory allocation method 1260 calls the garbage collector GC when it is determined that the storage area of the requested size cannot be secured even after waiting for the release by the
従来では、該条件を満たしているか否かを判定せずに、要求サイズの記憶領域を確保できないないと判断した場合にガベージコレクタGCが呼び出されていたので、処理に遅延が生ずる原因となっていた。しかし、本実施例4によれば、該条件を満たしている場合にはメモリ解放を待ってメモリ確保処理を行うので、ガベージコレクタGCが呼び出される確率が低減して、ガベージコレクタGCの実行による処理遅延を抑制できるという効果を奏する。 Conventionally, the garbage collector GC is called when it is determined that the storage area of the requested size cannot be secured without determining whether or not the condition is satisfied, which causes a delay in processing. It was. However, according to the fourth embodiment, when the condition is satisfied, the memory securing process is performed after the memory is released, so that the probability that the garbage collector GC is called is reduced, and the process by the execution of the garbage collector GC is performed. There is an effect that the delay can be suppressed.
ガベージコレクタGC実行中に他のスレッドが動作していると、オブジェクト参照が変化してガベージコレクションに誤りが生ずる。また、コンパクション中にコピー元のデータが変化するとコピーに誤りが生ずる。 If another thread is operating during execution of the garbage collector GC, the object reference changes and an error occurs in garbage collection. Further, if the copy source data changes during compaction, an error occurs in copying.
そこで、OSの機能であるバイナリセマフォを使用して、ヒープメモリ132を使用する、ヒープメモリ管理部126外のスレッド、本実施例4では印刷データ前処理部124のスレッドとインタープリタ121のスレッドとが動作を停止するのを待ってから、ガベージコレクタGCの実行を開始させる。
Therefore, a thread outside the heap
図19は、ヒープメモリ132を使用する、ヒープメモリ管理部126外の任意のスレッドAでの、主にセマフォのロック獲得とロック解放とを示すフローチャートである。
FIG. 19 is a flowchart showing mainly semaphore lock acquisition and lock release in an arbitrary thread A outside the heap
ステップS41での本体処理(1頁分の処理)の前処理として、ステップS40において、自スレッドAに対応したセマフォのロックを獲得し、ステップS41の後処理としてこのロックを解放させる。 As a pre-process of the main body process (process for one page) in step S41, a lock of the semaphore corresponding to the own thread A is acquired in step S40, and this lock is released as a post-process of step S41.
これにより、メモリ割当メソッド1260のスレッド(スレッドB)においてガベージコレクタGC呼び出し前(図20のステップS58)にこのセマフォのロックを獲得しようとすると、スレッドAに対応したセマフォのロックが既に獲得されていた場合、スレッドBは、OSにより待ち行列に入れられて、ステップS12の処理終了までウエイト状態となる。 As a result, when the thread of the memory allocation method 1260 (thread B) tries to acquire the lock of the semaphore before the garbage collector GC is called (step S58 in FIG. 20), the lock of the semaphore corresponding to the thread A is already acquired. If this happens, the thread B is queued by the OS and remains in a wait state until the processing in step S12 ends.
またステップS41内において、ステップS411でメモリ割当メソッド1260を呼び出す場合、その前処理として、ステップS410で、自スレッドAに対応したセマフォのロックを解放させ、ステップS411の後処理としてこのロックを獲得する。 In step S41, when the memory allocation method 1260 is called in step S411, as a pre-processing, the lock of the semaphore corresponding to the own thread A is released in step S410, and this lock is acquired as a post-processing in step S411. .
これにより、スレッドAがメモリ割当メソッド1260のスレッド(スレッドB)を生成してメモリ割当要求した場合、スレッドBはガベージコレクタGC呼び出し前(図20のステップS58)にスレッドAに対応したセマフォを獲得できるので、スレッドA、B間でのデッドロックが回避される。 Thus, when thread A creates a thread (thread B) of the memory allocation method 1260 and requests memory allocation, thread B acquires a semaphore corresponding to thread A before the garbage collector GC is called (step S58 in FIG. 20). As a result, deadlock between threads A and B is avoided.
図20は、メモリ割当メソッド1260の処理を示すフローチャートである。このメソッドのスレッドBは、印刷データ前処理部124又はインタープリタ121がヒープメモリ割当要求する際に、印刷データ前処理部124又はインタープリタ121により生成される。
FIG. 20 is a flowchart showing the processing of the memory allocation method 1260. The thread B of this method is generated by the print data preprocessing unit 124 or the
(S50)要求サイズの記憶領域の確保可否を判定し、肯定判定した場合には該確保を実行する。 (S50) It is determined whether or not the storage area of the requested size can be secured, and if the determination is affirmative, the securing is executed.
(S51)ステップS50で確保できた場合には図20の処理を終了(スレッドBが自動消滅)し、そうでない場合にはステップS52へ進む。 (S51) If it can be secured in step S50, the processing of FIG. 20 is terminated (thread B is automatically extinguished), otherwise, the process proceeds to step S52.
(S52)ディスプレイリスト残存頁数1341の値が2以上であれば、1頁分のディスプレイリスト1323の解放が間近と推定できるので、ステップS53へ進み、そうでなければステップS54へ進む。
(S52) If the value of the display list remaining
(S53)ディスプレイリスト残存頁数1341がデクリメントされてイベントが発生するのを待つ。このデクリメントイベント発生に応答して、ステップS50へ戻る。
(S53) The display list remaining
(S54)ディスプレイリスト1323の完了バンド数iがit未満(ラスタライズ開始条件未満)であればステップS55へ進み、そうでなければステップS56へ進む。ここで、図14のステップS32での待ち時間を無くするために、原則としてi=itである場合に図14の処理が開始される。
(S54) If the number of completed bands i in the
(S55)この原則の例外として、図14の処理を開始させることにより、図14の処理が終わってディスプレイリスト1323が1頁分解放されるのを待ち、ステップS50へ戻る。
(S55) As an exception to this principle, by starting the process of FIG. 14, the process of FIG. 14 is completed and the
(S56)印刷データ前処理部124からのメモリ割当要求であればステップS57へ進み、そうでなければステップS58へ進む。 (S56) If it is a memory allocation request from the print data preprocessing unit 124, the process proceeds to step S57; otherwise, the process proceeds to step S58.
(S57)フォントファイル125を解放させて、ステップS50へ戻る。この場合、ステップS51で否定判定したときにはステップS51からステップS58へ進む(不図示)。
(S57) The
(S58)ヒープメモリ132を使用する、ヒープメモリ管理部126外の各スレッドに対応したセマフォのロックを獲得する。獲得できない場合、スレッドBは、この獲得ができるまでOSにより待ち行列に入れられる。本実施例4では、印刷データ前処理部124とインタープリタ121の一方のスレッドからのメモリ割当要求であり、該一方についてはステップS411の処理によりセマフォのロックを直ぐに獲得できるので、他方のスレッドがステップS42を処理するまで、スレッドBはOSにより待ち行列に入れられる。
(S58) A semaphore lock corresponding to each thread outside the heap
(S59)ガベージコレクタGCを呼び出す。 (S59) Call the garbage collector GC.
ステップS58でウエイト中にインタープリタ121の処理が終了した場合、ラスタライズが終了して参照されなくなったディスプレイリスト1323中のバンド及びこれにリンクされた、印刷データ1321中のイメージデータが、ガベージコレクタGCにより解放され、その量は比較的多い。このため、ガベージコレクション実行により確保可能になる連続領域が比較的大きくなって効率よくガベージコレクションを実行することができるとともに、これによりガベージコレクション実行回数を低減してヒープメモリ確保遅延を抑制することが可能となる。
When the processing of the
(S5A)ヒープメモリ132を使用する、ヒープメモリ管理部126外の各スレッドに対応したセマフォのロックを解放する。
(S5A) The semaphore lock corresponding to each thread outside the heap
(S5B)要求サイズの記憶領域の確保可否を判定し、肯定判定した場合には該確保を実行する。 (S5B) Whether or not the storage area of the requested size can be secured is determined, and when the determination is affirmative, the securing is executed.
(S5C、S5D)ステップS5Bで確保できなかった場合には、メモリフルエラーの異常表示を操作パネル20に表示させてプリントジョブを異常終了する。
(S5C, S5D) If it cannot be secured in step S5B, an abnormal display of memory full error is displayed on the
なお、本発明には外にも種々の変形例が含まれる。 The present invention includes various modifications in addition to the above.
例えば、バンド・ブロック番号変数群1333のデータ更新は、ラスタライズ等の処理開始前であってもよいことは勿論である。
For example, the data update of the band / block
また、上記実施例では、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
また、メモリ割当メソッド1260は、ステップS50〜S57の処理に特徴があるので、セマフォを用いずにメモリ割当メソッド1260から、印刷データ前処理部124とインタープリタ121のうち動作中のスレッドを停止させて、ガベージコレクタGCを実行させる構成であってもよい。また、該動作中のスレッドを停止させずに、これによりエラーが生じたら該エラーを修正する公知の方法を適用してもよい。
Further, the memory allocation method 1260 is characterized by the processing of steps S50 to S57. Therefore, the operating thread of the print data preprocessing unit 124 and the
さらに、メモリ割当メソッド1260は、ステップS58〜S5Aの処理にも特徴があるので、この場合にはステップS52〜S57の処理を含まない構成であってもよい。 Further, since the memory allocation method 1260 is also characterized by the processing of steps S58 to S5A, in this case, the configuration may not include the processing of steps S52 to S57.
また、図19のステップS411での本体処理は1頁分に限定されず、所定バンド数などの所定量であればよい。 Also, the main body process in step S411 in FIG. 19 is not limited to one page, and may be a predetermined amount such as a predetermined number of bands.
また、印刷データ前処理部124又はインタープリタ121を複数の機能に分割してそれぞれをスレッドで実行する構成であってもよい。
Alternatively, the print data preprocessing unit 124 or the
10 画像形成装置
11 CPU
12 EEPROM
121 インタープリタ
122 RIP
123 制御部
124 印刷データ前処理部
125 フォントファイル
126 ヒープメモリ管理部
1260 メモリ割当メソッド
1261 メモリ解放メソッド
1262 カウントメソッド
13 RAM
131 バッファメモリ
132 ヒープメモリ
1321 印刷データ
1321a 文字列イメージ
1322 フォントキャッシュ
1323 ディスプレイリスト
133 共有メモリ
134 スタティックメモリ
1340 印刷データ残存頁数
1341 ディスプレイリスト残存頁数
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 サブ領域
GC ガベージコレクタ
10
12 EEPROM
121
123 Control Unit 124 Print
131
Claims (10)
該プロセッサに結合され、ヒープメモリ割当プログラムが格納された記憶手段と、
を有する画像形成装置において、
該ヒープメモリ割当プログラムは、該プロセッサに対し、
(a)要求サイズの記憶領域を確保可能か否かを判定させ、肯定判定した場合には要求サイズの記憶領域を確保させ、
(b)処理(a)で否定判定した場合には、第1状態であれば第2状態になるのを待って処理(a)に戻らせ、
(c)処理(b)で該第1状態でなければ、ガベージコレクションを行わせた後に該要求サイズの記憶領域を確保させる、
ことを特徴とする画像形成装置。 A processor;
Storage means coupled to the processor and storing a heap memory allocation program;
In an image forming apparatus having
The heap memory allocation program
(A) Determine whether it is possible to secure a storage area of the requested size, and if affirmative determination is made, secure a storage area of the requested size,
(B) If a negative determination is made in process (a), if it is the first state, the process waits for the second state to return to process (a),
(C) If the process (b) is not in the first state, a storage area of the requested size is secured after garbage collection is performed.
An image forming apparatus.
(c1)該第1状態でなければ、該処理中を含むメモリ上ディスプレイリスト残存頁数が1以下かつ処理中ディスプレイリストの作成済バンド数がラスタライズ開始条件未満の値であるか否かを判定させ、
(c2)処理(c1)で肯定判定した場合には、例外としてラスタライズを開始させ、処理(a)に戻らせ、
(c3)処理(c1)で否定判定した場合には、該ガベージコレクションを行わせた後に該要求サイズの記憶領域を確保させる、
ことを特徴とする請求項2に記載の画像形成装置。 The process (c)
(C1) If not in the first state, it is determined whether or not the number of remaining pages in the display list including the processing is 1 or less and the number of created bands of the processing display list is less than the rasterization start condition. Let
(C2) When an affirmative determination is made in process (c1), rasterization is started as an exception, and the process returns to process (a).
(C3) If a negative determination is made in step (c1), a storage area of the requested size is secured after the garbage collection is performed.
The image forming apparatus according to claim 2.
(c31)処理(c1)で否定判定した場合には、記憶領域確保要求が、ディスプレイリスト作成処前の処理を行うプログラムからの要求であるか否かを判定させ、肯定判定した場合には、フォントキャッシュを解放させて処理(a)に戻らせ、
(c32)処理(c31)で否定判定した場合には、該ガベージコレクションを行わせた後に該要求サイズの記憶領域を確保させる、
ことを特徴とする請求項3に記載の画像形成装置。 The process (c3)
(C31) If a negative determination is made in the process (c1), it is determined whether or not the storage area securing request is a request from a program that performs a process before the display list creation process. Release the font cache and return to process (a),
(C32) If a negative determination is made in step (c31), a storage area of the requested size is secured after the garbage collection is performed.
The image forming apparatus according to claim 3.
該プロセッサに結合され、それぞれ異なるタスクとして実行される複数の処理プログラムと、ヒープメモリ管理プログラムとが格納された記憶手段と、
を有する画像形成装置において、
該複数の処理プログラムのそれぞれは、該プロセッサに対し、本体処理の前処理として自タスクに対応したセマフォのロックを獲得させ、該本体処理の後処理としてこのロックを解放させ、
該ヒープメモリ管理プログラムは、該タスクと別のタスクとして実行されるヒープメモリ割当プログラムと、該ヒープメモリ割当プログラムと並列実行可能なヒープメモリ解放プログラムとを有し、
該ヒープメモリ割当プログラムは、該プロセッサに対し、要求サイズの記憶領域を確保できないないと判断した場合、ガベージコレクションの前処理として、該複数の処理プログラムのそれぞれに対応したセマフォのロックを獲得させ、該ガベージコレクションを行わせ、該ガベージコレクションの後処理としてこれらセマフォのロックを解放させ、
該ヒープメモリ解放プログラムは該プロセッサに対し、該複数の処理プログラムの任意の1つからの解放要求に応答して、該ヒープメモリの対応する記憶領域を解放させ、
該複数の処理プログラムの任意の1つは、該プロセッサに対し、該ヒープメモリ割当プログラムを介しヒープメモリ割当要求する前に、自タスクに対応したセマフォのロックを解放させ、該ヒープメモリ割当プログラムから戻った後にこのセマフォのロックを獲得させる、
ことを特徴とする画像形成装置。 A processor;
A plurality of processing programs coupled to the processor and executed as different tasks, and storage means storing a heap memory management program;
In an image forming apparatus having
Each of the plurality of processing programs causes the processor to acquire the lock of the semaphore corresponding to its own task as the preprocessing of the main body processing, and to release the lock as the postprocessing of the main body processing,
The heap memory management program includes a heap memory allocation program that is executed as a task different from the task, and a heap memory release program that can be executed in parallel with the heap memory allocation program.
When the heap memory allocation program determines that the storage area of the requested size cannot be secured for the processor, the heap memory allocation program acquires a semaphore lock corresponding to each of the plurality of processing programs as preprocessing of the garbage collection, Let the garbage collection occur, let the lock on these semaphores be released as post-processing of the garbage collection,
The heap memory release program causes the processor to release a corresponding storage area of the heap memory in response to a release request from any one of the plurality of processing programs,
Any one of the plurality of processing programs causes the processor to release the lock of the semaphore corresponding to the invoking task before requesting heap memory allocation via the heap memory allocation program. Get this semaphore lock after returning,
An image forming apparatus.
(a)要求サイズの記憶領域の確保可否を判定させ、肯定判定した場合には該確保を実行させて割当要求処理を終了させ、
(b)処理(a)で否定判定した場合には、該ヒープメモリ解放プログラムの実行を待てば該要求サイズの記憶領域を確保できると推定できる第1所定状態であるか否かを判定させ、
(c)処理(b)で肯定判定した場合には、第2所定状態になるのを待って処理(a)に戻らせ、
(d)処理(b)で否定判定した場合には、該ガベージコレクションを行わせ、
(e)該ガベージコレクション後に該要求サイズの記憶領域を確保させる、
ことを特徴とする請求項5に記載の画像形成装置。 The heap memory allocation program responds to an allocation request from any one of the plurality of processing programs to the processor,
(A) Whether to secure a storage area of the requested size is determined. If the determination is affirmative, the allocation request processing is terminated by executing the allocation,
(B) If a negative determination is made in the process (a), it is determined whether or not it is a first predetermined state in which it can be estimated that a storage area of the required size can be secured if the heap memory release program is executed,
(C) If an affirmative determination is made in process (b), the process waits for the second predetermined state to return to process (a);
(D) When a negative determination is made in the process (b), the garbage collection is performed.
(E) ensuring a storage area of the requested size after the garbage collection;
The image forming apparatus according to claim 5.
処理(c)の該第2所定状態は、該頁が1頁であることを含む、
ことを特徴とする請求項6に記載の画像形成装置。 In the first predetermined state of the process (b), the number of remaining display lists on the memory including unprocessed is 2 or more,
The second predetermined state of the processing (c) includes that the page is one page.
The image forming apparatus according to claim 6.
(d1)処理(b)で否定判定した場合には、該残存頁数が1以下であり、かつ、中間言語の作成済バンド数がラスタライズ開始条件未満の値であるか否かを判定させ、
(d2)処理(d1)で肯定判定した場合には、ラスタライズ処理プログラムを強制実行させた後に処理(a)に戻らせ、
(d3)処理(d2)で否定判定した場合には、該ガベージコレクションを行わせる、
ことを特徴とする請求項7に記載の画像形成装置。 Process (d)
(D1) If a negative determination is made in step (b), it is determined whether or not the number of remaining pages is 1 or less and the number of generated bands in the intermediate language is a value less than the rasterization start condition.
(D2) If an affirmative determination is made in process (d1), the rasterization process program is forcibly executed and then the process is returned to process (a).
(D3) If a negative determination is made in step (d2), the garbage collection is performed.
The image forming apparatus according to claim 7.
該プロセッサに対し、受信した印刷データを該ヒープメモリに格納させる処理プログラムと、
該プロセッサに対し、該ヒープメモリ内の該印刷データを中間言語に変換させて該ヒープメモリに格納させる処理プログラムと、
を有することを特徴とする請求項9に記載の画像形成装置。 The plurality of processing programs are:
A processing program for causing the processor to store the received print data in the heap memory;
A processing program that causes the processor to convert the print data in the heap memory into an intermediate language and store the converted data in the heap memory;
The image forming apparatus according to claim 9, further comprising:
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007290332A JP5150214B2 (en) | 2007-11-08 | 2007-11-08 | Image forming apparatus |
US12/124,538 US8619310B2 (en) | 2007-05-25 | 2008-05-21 | Image forming apparatus |
US14/076,218 US9202149B2 (en) | 2004-05-25 | 2013-11-10 | Image forming apparatus |
US14/076,221 US8861013B2 (en) | 2007-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 |
---|---|---|---|
JP2007290332A JP5150214B2 (en) | 2007-11-08 | 2007-11-08 | Image forming apparatus |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009116712A true JP2009116712A (en) | 2009-05-28 |
JP5150214B2 JP5150214B2 (en) | 2013-02-20 |
Family
ID=40783775
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007290332A Expired - Fee Related JP5150214B2 (en) | 2004-05-25 | 2007-11-08 | Image forming apparatus |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5150214B2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013178634A (en) * | 2012-02-28 | 2013-09-09 | Ricoh Co Ltd | Electronic device |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1097435A (en) * | 1996-09-20 | 1998-04-14 | Nec Corp | Resource allocation system |
JPH10320264A (en) * | 1997-05-20 | 1998-12-04 | Fujitsu Ltd | Memory space control system |
JP2006344184A (en) * | 2005-06-10 | 2006-12-21 | Kyocera Mita Corp | Image formation device |
-
2007
- 2007-11-08 JP JP2007290332A patent/JP5150214B2/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1097435A (en) * | 1996-09-20 | 1998-04-14 | Nec Corp | Resource allocation system |
JPH10320264A (en) * | 1997-05-20 | 1998-12-04 | Fujitsu Ltd | Memory space control system |
JP2006344184A (en) * | 2005-06-10 | 2006-12-21 | Kyocera Mita Corp | Image formation device |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013178634A (en) * | 2012-02-28 | 2013-09-09 | Ricoh Co Ltd | Electronic device |
Also Published As
Publication number | Publication date |
---|---|
JP5150214B2 (en) | 2013-02-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9202149B2 (en) | Image forming apparatus | |
JP3872558B2 (en) | Fallback processing for page generation using memory reduction techniques | |
US8141076B2 (en) | Cell processor methods and apparatus | |
US8625133B2 (en) | Print data processing apparatus, print data processing method, and storage medium | |
JP5655392B2 (en) | Print image processing apparatus and program | |
JP5051327B1 (en) | Image processing apparatus and program | |
JP5150214B2 (en) | Image forming apparatus | |
US8614822B2 (en) | Print data processing apparatus, print data processing method, and storage medium | |
JP4343976B2 (en) | Image forming apparatus | |
JP4343975B2 (en) | Image forming apparatus | |
JP4343974B2 (en) | Image forming apparatus | |
JP4370346B2 (en) | Image forming apparatus | |
US9870184B2 (en) | Information processing apparatus combining multiple filters, recording medium, and control method | |
JP5251995B2 (en) | Image data generating apparatus, image forming apparatus, and program | |
JP2010282152A (en) | Image forming apparatus | |
US10262247B2 (en) | Image forming apparatus for converting print data into intermediate data, method for controlling image forming apparatus, and storage medium | |
US10121098B2 (en) | Image forming apparatus having plurality of processing units for generating intermediate data, and method for controlling the image forming apparatus | |
JP7186541B2 (en) | IMAGE PROCESSING DEVICE, CONTROL METHOD THEREOF, AND PROGRAM | |
JP2019057207A (en) | Print controller, image forming system, and image forming apparatus | |
JP2009053829A (en) | Information processor and information processing program | |
JP2022094793A (en) | Image formation device, image formation method, and program | |
JP5252136B2 (en) | Image data generator | |
JP5252116B2 (en) | Image data generator | |
JP2014078175A (en) | Information processor, control method thereof, and program | |
JP5212566B2 (en) | Image data generating apparatus, image forming apparatus, and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100927 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120807 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20121001 |
|
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: 20121106 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20121203 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5150214 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20151207 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |