JP2011237972A - Data processing device and data processing program - Google Patents

Data processing device and data processing program Download PDF

Info

Publication number
JP2011237972A
JP2011237972A JP2010108119A JP2010108119A JP2011237972A JP 2011237972 A JP2011237972 A JP 2011237972A JP 2010108119 A JP2010108119 A JP 2010108119A JP 2010108119 A JP2010108119 A JP 2010108119A JP 2011237972 A JP2011237972 A JP 2011237972A
Authority
JP
Japan
Prior art keywords
data
thread
band
page
read
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.)
Pending
Application number
JP2010108119A
Other languages
Japanese (ja)
Inventor
Hiroyuki Hara
博幸 原
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 JP2010108119A priority Critical patent/JP2011237972A/en
Priority to CN201010611904.XA priority patent/CN102193882B/en
Priority to US13/048,296 priority patent/US8661209B2/en
Publication of JP2011237972A publication Critical patent/JP2011237972A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide a data processing device capable of reducing a delay in a succeeding process caused by data buffering in a storage.SOLUTION: A main controller 2 queues data writing requests for each of a series of a plurality of band data in order in a writing side thread 31a after notifying a reading side thread 32a of a file identifier in a HDD 4 through the writing side thread 31a. Then, the main controller 2 makes a HDD controller 14 write the series of the plurality of the band data in the order of the queued writing requests using a file writing thread 31b. When the reading side thread 32a receives the file identifier, the main controller 2 queues data reading requests for each of the series of the plurality of the band data in order in the reading side thread 32a and then makes the HDD controller 14 read the series of the plurality of the band data in the order of the queued reading requests using a file reading thread 32b.

Description

本発明は、データ処理装置およびデータ処理プログラムに関するものである。   The present invention relates to a data processing apparatus and a data processing program.

一般的に、コピー機、複合機などの画像形成装置は、各種画像処理を行うデータ処理装置を内蔵している。そのようなデータ処理装置は、画像データをバッファリングする際に、書込側プログラム(例えばある画像処理プログラム)により、1ページ分の画像データを、ハードディスクドライブ(HDD)などのストレージ内のファイルに記憶した後、そのファイルのファイル識別子を読出側プログラム(例えば後段の画像処理プログラム)へ通知する。その読出側プログラムが、ストレージのそのファイルからその画像データを読み出す。   Generally, an image forming apparatus such as a copying machine or a multifunction machine has a built-in data processing device that performs various types of image processing. Such a data processing device, when buffering image data, converts image data for one page into a file in a storage such as a hard disk drive (HDD) by a writing side program (for example, an image processing program). After the storage, the file identifier of the file is notified to a reading side program (for example, a subsequent image processing program). The reading side program reads the image data from the file in the storage.

その他、HDDにデータを書き込む際に、バッファーとしてFIFO(First-In First-Out)を設け、1つのスレッドで、そのFIFOにデータを書き込み、別のスレッドで、そのFIFOからHDDへデータを書き込む技術がある(例えば特許文献1参照)。   In addition, when writing data to the HDD, a FIFO (First-In First-Out) is provided as a buffer, and data is written to the FIFO by one thread, and data is written from the FIFO to the HDD by another thread. (See, for example, Patent Document 1).

特開2007−179496号公報JP 2007-17996 A

上述のように、通常、所定単位(上述の場合、ページ)のデータがストレージへ記憶された後に、そのデータを読み出すため、データ書込とデータ読出が逐次的に行われることになる。このため、所定単位のデータのデータ書込が完了する前は、そのデータを読み出すことができず、バッファリング後の処理に遅延が生じてしまう。   As described above, normally, after data of a predetermined unit (in the above case, page) is stored in the storage, the data is read and read sequentially in order to read the data. For this reason, before the data writing of a predetermined unit of data is completed, the data cannot be read, and a delay occurs in the processing after buffering.

本発明は、上記の問題に鑑みてなされたものであり、ストレージへのデータバッファリングに起因する処理の遅延を低減することができるデータ処理装置およびデータ処理プログラムを得ることを目的とする。   The present invention has been made in view of the above problems, and an object of the present invention is to obtain a data processing device and a data processing program capable of reducing a processing delay caused by data buffering to a storage.

上記の課題を解決するために、本発明では以下のようにした。   In order to solve the above problems, the present invention is configured as follows.

本発明に係るデータ処理装置は、所定単位のデータを構成する一連の複数のデータブロックをストレージに書き込み、ストレージからその一連の複数のデータブロックを読み出すストレージコントローラーと、ストレージコントローラーを制御するプロセッサーを備える。そして、プロセッサーは、(i)書込側プロセスおよび読出側プロセスを生成し、(ii)書込側プロセスで第1スレッドおよび第3スレッドを生成し、(iii)読出側プロセスで第2スレッドおよび第4スレッドを生成し、(iv)ストレージにおける記憶領域の識別子を第1スレッドから第2スレッドへ通知した後、第1スレッドで、一連の複数のデータブロックのそれぞれについてのデータ書込要求を順番にキューイングし、(v)第3スレッドを用いて、キューイングされたデータ書込要求の順番で、ストレージコントローラーに一連の複数のデータブロックを書き込ませ、(vi)第2スレッドで、識別子を受領すると、一連の複数のデータブロックのそれぞれについてのデータ読出要求を順番にキューイングし、(vii)第4スレッドを用いて、キューイングされたデータ読出要求の順番で、ストレージコントローラーに一連の複数のデータブロックを読み出させる。   A data processing apparatus according to the present invention includes a storage controller that writes a series of data blocks constituting a predetermined unit of data to a storage, reads the series of data blocks from the storage, and a processor that controls the storage controller. . The processor then generates (i) a writer process and a reader process, (ii) a first thread and a third thread in the writer process, and (iii) a second thread and in the reader process After the fourth thread is generated and (iv) the storage area identifier in the storage is notified from the first thread to the second thread, the first thread sequentially issues the data write requests for each of the series of data blocks. (V) using the third thread, causing the storage controller to write a series of data blocks in the order of the queued data write request, and (vi) identifying the identifier with the second thread. Upon receipt, the data read requests for each of the series of data blocks are queued in order, and (vii) With threads, in the order of queuing data read request to read out a series of data blocks to the storage controller.

これにより、ストレージへのデータ書込前に、バッファー用の記憶領域の識別子が読出側プロセスへ渡され、書込側プロセスとは独立して読出側プロセスでデータ読出を開始できるため、データ書込途中でもデータ読出を行うことができる。したがって、ストレージへのデータバッファリング後の処理の遅延を低減することができる。さらに、ストレージへの書込を行うプログラムが別のスレッドで動作するため、非同期でのデータ書込となり、書込側プログラムがデータ書込の完了を待たずに別の処理を実行することができる。また、ストレージからの読出を行うプログラムが別のスレッドで動作するため、非同期でのデータ読出となり、読出側プログラムがデータ読出の完了を待たずに別の処理を実行することができる。   As a result, before the data is written to the storage, the identifier of the storage area for the buffer is passed to the reading side process, and data reading can be started by the reading side process independently of the writing side process. Data can be read even in the middle. Therefore, the processing delay after data buffering to the storage can be reduced. Further, since the program for writing to the storage operates in another thread, the data writing is performed asynchronously, and the writing side program can execute another process without waiting for the data writing to be completed. . Further, since the program for reading from the storage operates in another thread, the data reading is performed asynchronously, and the reading side program can execute another process without waiting for the completion of data reading.

また、本発明に係るデータ処理装置は、上記のデータ処理装置に加え、次のようにしてもよい。この場合、データ処理装置は、一連の複数のデータブロックを記憶するメモリーを備える。また、上述の一連の複数のデータブロックは、1つのドキュメント内のいずれかの1ページの画像データを構成する複数のバンドデータである。そして、メモリーは、ドキュメント内の各ページを示すページノードデータを記憶する。さらに、複数のバンドデータは、ドキュメント内の各ページに対して設けられたリンクリストであり、あるページのページノードデータは、そのページについての複数のバンドデータの先頭へのリンクを有する。   In addition to the data processing apparatus described above, the data processing apparatus according to the present invention may be configured as follows. In this case, the data processing apparatus includes a memory that stores a series of a plurality of data blocks. The series of data blocks described above is a plurality of band data constituting one page of image data in one document. The memory stores page node data indicating each page in the document. Further, the plurality of band data is a link list provided for each page in the document, and the page node data of a certain page has a link to the head of the plurality of band data for the page.

これにより、複数ページのバンドデータが、ページごとに、別々のリンクリストとされるため、複数ページのバンドデータから、処理対象のバンドデータを短時間で見つけ出すことができる。   Thereby, since the band data of a plurality of pages is made into a separate link list for each page, the band data to be processed can be found in a short time from the band data of the plurality of pages.

また、本発明に係るデータ処理装置は、上記のデータ処理装置のいずれかに加え、次のようにしてもよい。この場合、プロセッサーは、第3スレッドを用いて、ページノードデータで、複数のバンドデータの先頭位置を特定し、リンクリストを辿って、複数のバンドデータをストレージコントローラーに書き込ませる。   The data processing apparatus according to the present invention may be as follows in addition to any of the data processing apparatuses described above. In this case, the processor uses the third thread to identify the start positions of the plurality of band data with the page node data, and traces the link list to write the plurality of band data to the storage controller.

これにより、複数ページのバンドデータから、書き込み対象のバンドデータを短時間で見つけ出すことができる。   Thereby, it is possible to find out the band data to be written from the band data of a plurality of pages in a short time.

また、本発明に係るデータ処理装置は、上記のデータ処理装置のいずれかに加え、次のようにしてもよい。この場合、プロセッサーは、メモリーに1ページ分の複数のバンドデータを記憶するときに複数のバンドデータの記憶領域を確保し、そのページの書き込みが完了すると記憶領域を解放し、メモリーの残量が不足している場合、他のページについての複数のバンドデータの記憶領域を解放したときに、複数のバンドデータの記憶領域を確保する。   The data processing apparatus according to the present invention may be as follows in addition to any of the data processing apparatuses described above. In this case, the processor secures a storage area for a plurality of band data when storing a plurality of band data for one page in the memory, and releases the storage area when the writing of the page is completed. If there is a shortage, when a plurality of band data storage areas for other pages are released, a plurality of band data storage areas are secured.

これにより、処理が完了したページのバンドデータの記憶領域がただちに解放され、後続のページのバンドデータの記憶領域として利用可能となる。   Thus, the band data storage area of the page for which processing has been completed is immediately released and can be used as the band data storage area of the subsequent page.

また、本発明に係るデータ処理装置は、上記のデータ処理装置のいずれかに加え、次のようにしてもよい。この場合、プロセッサーは、(viii)第3スレッドでデータブロックをメモリーに記憶し、(ix)第1スレッドでデータブロックのデータ書込要求をキューイングするたびにイベントを発行し、(x)ストレージへのデータブロックの書込が完了したときに、第3スレッドでデータブロックをメモリーから消去し、(xi)キューイングされたデータ読出要求を順番に実行するとき、メモリーにデータブロックがあれば、第4スレッドでメモリーからそのデータブロックを読み出し、メモリーにデータブロックがなければ、第4スレッドを用いて、ストレージコントローラーにストレージからデータブロックを読み出させ、(xii)所定のタイミングで、メモリーから読み出されたデータブロックについてのデータ書込要求をキューから削除する。   The data processing apparatus according to the present invention may be as follows in addition to any of the data processing apparatuses described above. In this case, the processor (viii) stores the data block in the memory in the third thread, (ix) issues an event each time a data write request for the data block is queued in the first thread, and (x) storage When the data block is completely written to the memory block, the third thread erases the data block from the memory, and (xi) when executing the queued data read request in sequence, if there is a data block in the memory, The fourth thread reads the data block from the memory, and if there is no data block in the memory, the fourth thread is used to cause the storage controller to read the data block from the storage and (xii) read from the memory at a predetermined timing. Queue data write requests for issued data blocks To remove et al.

これにより、メモリーからデータブロックが読み出されているのにも拘わらずキューに残存しているデータ書込要求に起因する処理遅延を回避することができる。   As a result, it is possible to avoid a processing delay due to a data write request remaining in the queue despite the data block being read from the memory.

また、本発明に係るデータ処理装置は、上記のデータ処理装置のいずれかに加え、次のようにしてもよい。この場合、プロセッサーは、ジョブ完了時に、メモリーから読み出されたデータブロックについてのデータ書込要求をキューから削除する。   The data processing apparatus according to the present invention may be as follows in addition to any of the data processing apparatuses described above. In this case, the processor deletes the data write request for the data block read from the memory from the queue when the job is completed.

また、本発明に係るデータ処理装置は、上記のデータ処理装置のいずれかに加え、次のようにしてもよい。この場合、上述の一連の複数のデータブロックは、ストレージにおけるファイルに書き込まれ、記憶領域の識別子は、ファイルの識別子である。   The data processing apparatus according to the present invention may be as follows in addition to any of the data processing apparatuses described above. In this case, the series of data blocks described above is written in a file in the storage, and the identifier of the storage area is the identifier of the file.

これにより、バッファー用の記憶領域をファイルシステムで管理することができ、各プロセスからのストレージ内のデータへのアクセスを簡単に行うことができる。   As a result, the buffer storage area can be managed by the file system, and the data in the storage from each process can be easily accessed.

本発明によれば、データ処理装置において、ストレージへのデータバッファリングに起因する後段処理の遅延を低減することができる。   According to the present invention, in the data processing apparatus, it is possible to reduce a delay in subsequent processing due to data buffering to the storage.

図1は、本発明の実施の形態に係るデータ処理装置の構成を示すブロック図である。FIG. 1 is a block diagram showing a configuration of a data processing apparatus according to an embodiment of the present invention. 図2は、図1におけるデータ処理回路で取り扱うデータの構成を示す図である。FIG. 2 is a diagram showing a configuration of data handled by the data processing circuit in FIG. 図3は、図1におけるデータ処理回路で取り扱うデータの例を示す図である。FIG. 3 is a diagram showing an example of data handled by the data processing circuit in FIG. 図4は、実施の形態1におけるメインコントローラーを説明するブロック図である。FIG. 4 is a block diagram illustrating the main controller in the first embodiment. 図5は、実施の形態1におけるメインコントローラーの書込側プロセスの動作を説明するフローチャートである。FIG. 5 is a flowchart for explaining the operation of the write-side process of the main controller in the first embodiment. 図6は、実施の形態1におけるメインコントローラーの読出側プロセスの動作を説明するフローチャートである。FIG. 6 is a flowchart for explaining the operation of the reading-side process of the main controller in the first embodiment. 図7は、図4におけるキューシステム内の共有メモリー領域を示す図である。FIG. 7 is a diagram showing a shared memory area in the queue system in FIG. 図8は、実施の形態2におけるメインコントローラーの書込側プロセスの動作を説明するフローチャートである。FIG. 8 is a flowchart for explaining the operation of the write-side process of the main controller in the second embodiment. 図9は、実施の形態2におけるメインコントローラーの読出側プロセスの動作を説明するフローチャートである。FIG. 9 is a flowchart for explaining the operation of the reading-side process of the main controller in the second embodiment. 図10は、実施の形態2におけるRAMからのバンドデータの読出について説明する図である。FIG. 10 is a diagram for explaining reading of band data from the RAM in the second embodiment.

以下、図に基づいて本発明の実施の形態を説明する。   Hereinafter, embodiments of the present invention will be described with reference to the drawings.

実施の形態1. Embodiment 1 FIG.

図1は、本発明の実施の形態に係るデータ処理装置の構成を示すブロック図である。図1に示すデータ処理装置は、データ処理回路1、メインコントローラー2、RAM(Random Access Memory)3、ハードディスクドライブ(HDD)4、スキャナー5、印刷エンジン制御回路6、記憶装置7、用紙に印刷を行う印刷エンジン(図示せず)などを有する。   FIG. 1 is a block diagram showing a configuration of a data processing apparatus according to an embodiment of the present invention. The data processing apparatus shown in FIG. 1 includes a data processing circuit 1, a main controller 2, a RAM (Random Access Memory) 3, a hard disk drive (HDD) 4, a scanner 5, a print engine control circuit 6, a storage device 7, and printing on paper. A print engine (not shown) to perform.

データ処理回路1は、スキャナー5などから画像データを、バンド単位またはページ単位で処理し、HDD4または印刷エンジン制御回路6へ出力する装置である。   The data processing circuit 1 is a device that processes image data from the scanner 5 or the like in band units or page units and outputs the processed image data to the HDD 4 or the print engine control circuit 6.

メインコントローラー2は、データ処理回路1内の各部へ指令を供給する装置である。メインコントローラー2は、バスインタフェース回路11およびバス12を介してデータ処理回路1内の各部へ指令を供給する。メインコントローラー2は、CPU(Central Processing Unit)などのプロセッサーであり、記憶装置7に記憶されているデータ処理プログラム8に従って指令を出力する。   The main controller 2 is a device that supplies commands to each unit in the data processing circuit 1. The main controller 2 supplies a command to each part in the data processing circuit 1 via the bus interface circuit 11 and the bus 12. The main controller 2 is a processor such as a CPU (Central Processing Unit) and outputs a command according to a data processing program 8 stored in the storage device 7.

RAM3は、データ処理回路1による処理においてバンドデータなどを一時的に記憶するためのメモリーである。RAM3としては、例えば、1または複数のDRAM(Dynamic RAM)が使用される。   The RAM 3 is a memory for temporarily storing band data and the like in the processing by the data processing circuit 1. As the RAM 3, for example, one or more DRAMs (Dynamic RAM) are used.

HDD4は、1ページの画像データを構成する一連の複数のバンドデータを一時的に記憶するためのストレージデバイスである。   The HDD 4 is a storage device for temporarily storing a series of a plurality of band data constituting one page of image data.

スキャナー5は、原稿の画像を光学的に読み取り、その画像読み取りにより得られる画像データを出力する装置である。   The scanner 5 is an apparatus that optically reads an image of a document and outputs image data obtained by the image reading.

印刷エンジン制御回路6は、印刷エンジンへ印刷画像データを供給するとともに、印刷エンジンを制御して印刷を実行させる回路である。   The print engine control circuit 6 is a circuit that supplies print image data to the print engine and controls the print engine to execute printing.

記憶装置7は、フラッシュメモリーなどの不揮発性の記憶装置であり、メインコントローラー2の使用する各種プログラムやデータを記憶する。ここでは、データ処理プログラム8が記憶装置7に記憶されている。   The storage device 7 is a non-volatile storage device such as a flash memory, and stores various programs and data used by the main controller 2. Here, the data processing program 8 is stored in the storage device 7.

ここで、データ処理回路1の構成について説明する。   Here, the configuration of the data processing circuit 1 will be described.

データ処理回路1は、バスインタフェース回路11、バス12、メモリーインタフェース13、HDDコントローラー14、データ取得回路15、画像処理回路16、ラスタ処理回路17、ハーフトーン処理回路18、およびデータ出力回路19を有する。なお、データ処理回路1は、ASIC(Application Specific Integrated Circuit)として実現される。   The data processing circuit 1 includes a bus interface circuit 11, a bus 12, a memory interface 13, an HDD controller 14, a data acquisition circuit 15, an image processing circuit 16, a raster processing circuit 17, a halftone processing circuit 18, and a data output circuit 19. . The data processing circuit 1 is realized as an ASIC (Application Specific Integrated Circuit).

バスインタフェース回路11は、メインコントローラー2をバス12に接続する回路である。   The bus interface circuit 11 is a circuit that connects the main controller 2 to the bus 12.

メモリーインタフェース13は、RAM3とバス12との間のデータおよび指令の送受を行う回路である。   The memory interface 13 is a circuit that transmits and receives data and commands between the RAM 3 and the bus 12.

HDDコントローラー14は、メインコントローラー2からの指令に応じて、HDD4に対してデータの読み書きを行う回路である。   The HDD controller 14 is a circuit that reads / writes data from / to the HDD 4 in response to a command from the main controller 2.

データ取得回路15は、メインコントローラー2からの指令に応じて、スキャナー5から画像データをバンドデータとして順番に取得し、RAM3またはHDD4に記憶する回路である。データ取得回路15は、DMA(Direct Memory Access)コントローラーを有する。例えば、バンドデータは、128ライン分のデータであって、1ページにつき58バンド分のバンドデータがある。   The data acquisition circuit 15 is a circuit that sequentially acquires image data as band data from the scanner 5 in accordance with a command from the main controller 2 and stores it in the RAM 3 or the HDD 4. The data acquisition circuit 15 has a DMA (Direct Memory Access) controller. For example, the band data is data for 128 lines, and there is band data for 58 bands per page.

図2は、このデータ処理回路1で取り扱うデータの構成を示す図である。1つのドキュメントは、1または複数のページで構成される。ページは、所定数のバンドで構成される。1つのジョブにより1つのドキュメントについてのデータがメインコントローラー2に供給される。   FIG. 2 is a diagram showing a data structure handled by the data processing circuit 1. One document is composed of one or a plurality of pages. A page is composed of a predetermined number of bands. Data for one document is supplied to the main controller 2 by one job.

ドキュメントの構造は、ノードのリンクリストで表現される。1または複数のドキュメントが、ドキュメントノードデータのリンクリストで表現される。あるドキュメントのドキュメントノードデータに、そのドキュメントを構成する1または複数のページについてのページノードデータのリンクリストがブランチとして接続されている。さらに、あるページのページノードデータに、そのページを構成する複数のバンドについてのバンドデータのリンクリストがブランチとして接続されている。したがって、データ構造は、ドキュメントノードデータ、ページノードデータおよバンドデータによる3層構造となっている。   The document structure is represented by a linked list of nodes. One or more documents are represented by a linked list of document node data. A link list of page node data for one or a plurality of pages constituting the document is connected to the document node data of a document as a branch. Furthermore, a link list of band data for a plurality of bands constituting the page is connected to the page node data of a page as a branch. Therefore, the data structure is a three-layer structure including document node data, page node data, and band data.

図3は、データ処理回路1で取り扱うデータの例を示す図である。図3に示すように、このデータ構造は、ドキュメントリンクリスト、ページリンクリスト、およびバンドリンクリストの3層構造となっている。この例では、ドキュメントリンクリストには、3つのドキュメントノードデータが含まれている。ドキュメント#1のドキュメントノードデータには、ページリンクリストへのリンク情報が含まれており、そのページリンクリストには、2ページのページノードデータが含まれている。ドキュメント#2のドキュメントノードデータには、ページリンクリストへのリンク情報が含まれており、そのページリンクリストには、1ページのページノードデータが含まれている。ドキュメント#3のドキュメントノードデータには、ページリンクリストへのリンク情報が含まれており、そのページリンクリストには、3ページのページノードデータが含まれている。各ページノードデータには、バンドリンクリストへのリンク情報が含まれている。1ページ内のバンド数が一定であるため、バンドリンクリストのサイズは一定である。なお、ドキュメントノードデータは、ドキュメントの識別情報(識別番号など)と、後続のドキュメントノードデータとの連結のためのリンク情報と、ページリンクリストのリンク情報とを有する。ページノードデータは、ページの識別情報(識別番号など)と、後続のページノードデータとの連結のためのリンク情報と、バンドリンクリストのリンク情報とを有する。バンドリンクリストは、所定の数のバンドデータを有する。バンドデータは、1バンド分の画像データと、後続のバンドデータのリンク情報とを有する。   FIG. 3 is a diagram illustrating an example of data handled by the data processing circuit 1. As shown in FIG. 3, this data structure has a three-layer structure of a document link list, a page link list, and a band link list. In this example, the document link list includes three document node data. The document node data of document # 1 includes link information to the page link list, and the page link list includes page node data of two pages. The document node data of document # 2 includes link information to the page link list, and the page link list includes page node data of one page. The document node data of document # 3 includes link information to the page link list, and the page link list includes page node data of three pages. Each page node data includes link information to the band link list. Since the number of bands in one page is constant, the size of the band link list is constant. The document node data includes document identification information (such as an identification number), link information for linking with subsequent document node data, and link information of a page link list. The page node data includes page identification information (such as an identification number), link information for connection with subsequent page node data, and link information of a band link list. The band link list has a predetermined number of band data. The band data includes image data for one band and link information of subsequent band data.

したがって、ドキュメント、ページおよびバンドの番号から、上述のリンクを辿っていくことで、ドキュメント内のあるページのあるバンドのデータを特定し、読み出すことができる。   Therefore, by tracing the above-described link from the document, page, and band numbers, data of a certain band on a certain page in the document can be specified and read out.

画像処理回路16は、メインコントローラー2からの指令に応じて、画像データのバンドデータをRAM3またはHDD4から読み出し、それらのバンドデータに対して所定の画像処理(画像拡大、画像縮小、色変換など)を実行し、処理後のバンドデータをRAM3またはHDD4に記憶する回路である。画像処理回路16は、DMAコントローラーを有する。   The image processing circuit 16 reads band data of the image data from the RAM 3 or the HDD 4 in response to a command from the main controller 2, and performs predetermined image processing (image enlargement, image reduction, color conversion, etc.) on the band data. The band data after processing is stored in the RAM 3 or the HDD 4. The image processing circuit 16 has a DMA controller.

ラスタ処理回路17は、画像データのバンドデータをRAM3またはHDD4から読み出し、それらのバンドデータに対してラスタライズを実行し、ラスタデータを生成する回路である。ラスタデータは、バンドごとに、HDD4に記憶され、ハーフトーン処理実行時にRAM3に読み出される。   The raster processing circuit 17 is a circuit that reads band data of image data from the RAM 3 or the HDD 4, performs rasterization on the band data, and generates raster data. The raster data is stored in the HDD 4 for each band and read out to the RAM 3 when the halftone process is executed.

ハーフトーン処理回路18は、バンドごとにラスタデータをRAM3から読み出し、ハーフトーン処理を実行し、ハーフトーン処理後のデータをRAM3に記憶する回路である。   The halftone processing circuit 18 is a circuit that reads raster data for each band from the RAM 3, executes halftone processing, and stores the data after halftone processing in the RAM 3.

データ出力回路19は、ハーフトーン処理後のデータをRAM3から読み出し印刷エンジン制御回路6へ供給する回路である。   The data output circuit 19 is a circuit that reads out the data after halftone processing from the RAM 3 and supplies the data to the print engine control circuit 6.

データ処理回路1では、スキャナー5から取得された画像データに対して、回転、拡大/縮小などの画像処理が必要に応じて施される。その後、ハーフトーニングで印刷画像データが生成され、印刷エンジン制御回路6へ出力される。これらのデータ処理の途中で、バンド単位でのデータバッファリングにはRAM3が使用され、ページ単位でのデータバッファリングにはHDD4が使用される。   In the data processing circuit 1, image processing such as rotation and enlargement / reduction is performed on the image data acquired from the scanner 5 as necessary. Thereafter, print image data is generated by halftoning and output to the print engine control circuit 6. During these data processing, the RAM 3 is used for data buffering in band units, and the HDD 4 is used for data buffering in page units.

次に、上記データ処理装置による、HDD4へのデータ書込およびデータ読出の動作について説明する。   Next, data writing and data reading operations to the HDD 4 by the data processing apparatus will be described.

メインコントローラー2は、アプリケーション23の動作する書込側スレッドおよび読出側スレッドとは別に、ファイルへバンドデータをデータ書き込む共有ライブラリーのプログラが動作するスレッド、およびファイルからバンドデータを読み出す共有ライブラリーのプログラムが動作するスレッドを生成する。これにより、データ処理装置は、アプリケーション23の処理とは非同期にバンドデータの書込および読出処理を実行する。   The main controller 2 includes a thread in which a shared library program for writing band data to a file operates, and a shared library for reading band data from a file, separately from a writing thread and a reading thread in which the application 23 operates. Create a thread on which the program runs. As a result, the data processing apparatus executes band data writing and reading processing asynchronously with the processing of the application 23.

図4は、実施の形態1におけるメインコントローラー2の動作を説明するブロック図である。図5は、実施の形態1におけるメインコントローラー2の書込側プロセス21の動作を説明するフローチャートである。図6は、実施の形態1におけるメインコントローラー2の読出側プロセス22の動作を説明するフローチャートである。   FIG. 4 is a block diagram for explaining the operation of the main controller 2 in the first embodiment. FIG. 5 is a flowchart for explaining the operation of the writing process 21 of the main controller 2 in the first embodiment. FIG. 6 is a flowchart for explaining the operation of the reading-side process 22 of the main controller 2 in the first embodiment.

メインコントローラー2では、マルチプロセスおよびマルチスレッド対応のオペレーティングシステムが稼働している。メインコントローラー2は、データ処理プログラム8を実行し、まず、書込側プロセス21および読出側プロセス22を生成する。メインコントローラー2は、書込側プロセス21および読出側プロセス22を使用して、HDD4にデータをバッファリングするアプリケーション23を実行する。アプリケーション23のうち、書込側プログラム41は、書込側プロセス21内の書込側スレッド31aで実行される。メインコントローラー2は、書込側プログラム41を実行することにより、HDDコントローラー14にHDD4へバンドデータを書き込ませることが可能になる。一方、アプリケーション23のうち、読出側プログラム51は、プロセス22内の読出側スレッド32bで実行される。メインコントローラー2は、読出側プログラム51の実行により、HDDコントローラー14にHDD4からバンドデータを読み出させることが可能になる。   In the main controller 2, an operating system that supports multi-process and multi-thread is operating. The main controller 2 executes the data processing program 8 and first generates a writing side process 21 and a reading side process 22. The main controller 2 executes an application 23 for buffering data in the HDD 4 using the writing side process 21 and the reading side process 22. Of the application 23, the writing side program 41 is executed by the writing side thread 31 a in the writing side process 21. The main controller 2 can cause the HDD controller 14 to write band data to the HDD 4 by executing the writing side program 41. On the other hand, in the application 23, the reading side program 51 is executed by the reading side thread 32 b in the process 22. The main controller 2 can cause the HDD controller 14 to read the band data from the HDD 4 by executing the reading side program 51.

そして、メインコントローラー2は、書込側プロセス21内でファイル書込スレッド31bを生成して、そのファイル書込スレッド31bで、ファイルへのデータ書込を行う共有ライブラリーのプログラム71を実行する。メインコントローラー2は、読出プロセス22内でファイル読出スレッド32bを生成して、そのファイル読出スレッド32bで、ファイルからのバンドデータの読出を行う共有ライブラリーのプログラム81を実行する。さらに、メインコントローラー2は、アプリケーション23で発生するデータ書込要求およびデータ読出要求をアクセス要求としてキューシステム91にキューイングし、ファイル書込プログラム71およびファイル読出プログラム81を実行し、キューシステム91にキューイングされているアクセス要求に基づいて、バンドデータの書込および読出を実行していく。これにより、データ処理装置は、アプリケーション23の処理とは非同期にバンドデータの書込および読出を実行する。   Then, the main controller 2 generates a file writing thread 31b in the writing side process 21, and executes the shared library program 71 for writing data to the file by the file writing thread 31b. The main controller 2 generates a file reading thread 32b in the reading process 22, and executes a shared library program 81 for reading band data from the file by the file reading thread 32b. Further, the main controller 2 queues data write requests and data read requests generated by the application 23 as access requests to the queue system 91, executes the file write program 71 and the file read program 81, and sends them to the queue system 91. The band data is written and read based on the queued access request. Thereby, the data processing device executes writing and reading of band data asynchronously with the processing of the application 23.

メインコントローラー2は、ドキュメントのデータを受け付けると、書込側スレッド31aによって、図3に示すような3層構造で、データをRAM3に記憶する。このとき、1つのドキュメントにつき、1つのドキュメントノードデータが、ドキュメントリンクリストに追加され、そのドキュメントに含まれるページの数と同数のページノードデータがページリンクリストに追加される。さらに、各ページについて、バンドリンクリストの記憶領域が新たに確保され、その記憶領域にバンドリンクリストが記憶される。メインコントローラー2は、RAM3に1ページ分の複数のバンドデータを記憶するときにそのページのページノードデータをページリンクリストに追加するとともに複数のバンドデータの記憶領域を確保し、そのページの書き込みが完了するとその記憶領域を解放し、そのページノードデータをページリンクリストから削除する。バンドデータの記憶領域を確保するときにRAM3の残量が不足している場合、メインコントローラー2は、他のページについてのバンドデータの記憶領域を解放するまで待ち、解放したときに、新たなページのバンドデータの記憶領域を確保する。   When the main controller 2 receives the document data, the main controller 2 stores the data in the RAM 3 in a three-layer structure as shown in FIG. At this time, for each document, one document node data is added to the document link list, and the same number of page node data as the number of pages included in the document is added to the page link list. Furthermore, a band link list storage area is newly secured for each page, and the band link list is stored in the storage area. When the main controller 2 stores a plurality of band data for one page in the RAM 3, it adds the page node data of the page to the page link list and secures a storage area for the plurality of band data. When completed, the storage area is released and the page node data is deleted from the page link list. If the remaining amount of RAM 3 is insufficient when the band data storage area is secured, the main controller 2 waits until the band data storage area for the other page is released. A storage area for the band data is secured.

メインコントローラー2は、書込側スレッド31aで書込側プログラム41を実行することにより、バンドデータの書込先となるファイルのファイル識別子を、読出側プロセス22の読出側プログラム51に通知する(ステップS21)。ファイル識別子は、例えばファイル名とされる。メインコントローラー2は、書込側プログラム41に従い、API42でファイルシステム61の共有ライブラリーを呼び出し、そのファイル識別子のファイルをオープンし、ファイルハンドルを生成する(ステップS22)。   The main controller 2 notifies the file identifier of the file to which the band data is written to the reading side program 51 of the reading side process 22 by executing the writing side program 41 in the writing side thread 31a (step S31). S21). The file identifier is, for example, a file name. The main controller 2 calls the shared library of the file system 61 with the API 42 according to the writing side program 41, opens the file with the file identifier, and generates a file handle (step S22).

メインコントローラー2は、ファイルオープン後、書込側スレッド31aで書込側プログラム41に従い、ファイルシステム61のAPI42を呼び出し、ファイル識別子に対応するファイルへのバンドデータのデータ書込要求を順に、キューシステム91にキューイングする。メインコントローラー2は、データ書込要求に応じて、書込側プログラム41に従い、ファイル書込スレッド31bに対して各バンドデータの書込指令を供給する(ステップS23)。書込指令では、書込の対象となるバンドデータの識別情報(つまり、そのバンドデータを含むドキュメントの識別情報、そのバンドデータを含むページの識別情報、およびそのページ内でのバンドデータの識別情報)が指定される。メインコントローラー2は、全てのバンドデータのデータ書込要求をキューイングするまで、ステップS23の処理を繰り返す(ステップS24)。   After the file is opened, the main controller 2 calls the API 42 of the file system 61 according to the write-side program 41 by the write-side thread 31a, and sequentially issues the band data data write requests to the file corresponding to the file identifier in the queue system. Queue to 91. In response to the data write request, the main controller 2 supplies a write command for each band data to the file write thread 31b according to the write side program 41 (step S23). In the write command, the identification information of the band data to be written (that is, the identification information of the document including the band data, the identification information of the page including the band data, and the identification information of the band data in the page) ) Is specified. The main controller 2 repeats the process of step S23 until queuing data write requests for all band data (step S24).

図7は、図4におけるキューシステム91内の共有メモリー領域を示す図である。この共有メモリー領域は、RAM3上に割り当てられ、その物理アドレスが、書込側プロセス21および読出側プロセス22の論理アドレスにマッピングされ、各プロセスから共有メモリー領域へのアクセスが可能となる。キューシステム91において、この共有メモリー領域は、ドキュメントリスト領域、ページリスト領域、FDリスト領域、およびキュー領域を有する。   FIG. 7 is a diagram showing a shared memory area in the queue system 91 in FIG. This shared memory area is allocated on the RAM 3 and its physical address is mapped to the logical address of the writing process 21 and the reading process 22 so that each process can access the shared memory area. In the queue system 91, the shared memory area includes a document list area, a page list area, an FD list area, and a queue area.

ドキュメントリスト領域には、API42またはAPI52により、書込対象または読出対象のバンドデータを含むドキュメントのノードデータが記憶される。ドキュメントのノードデータは、このドキュメントを構成するページのノードデータへのリンク情報を有する。   In the document list area, document node data including band data to be written or read is stored by API 42 or API 52. The node data of the document has link information to the node data of the pages constituting the document.

ページリスト領域には、API42またはAPI52により、書込対象または読出対象のバンドデータを含むページのノードデータが記憶される。ページのノードデータは、このページを構成するバンドのノードデータへのリンク情報、およびファイルディスクリプターへのリンク情報を有する。   The page list area stores node data of pages including band data to be written or read by API 42 or API 52. The node data of the page includes link information to the band node data constituting the page and link information to the file descriptor.

バンドリスト領域には、API42またはAPI52により、書込対象または読出対象のバンドのノードデータが記憶される。バンドのノードデータは、このバンドの属するドキュメントおよびページのIDやシリアル番号を有し、さらに、ファイル内でのバンドデータの識別情報(シリアル番号など)を有する。   In the band list area, node data of a band to be written or read is stored by the API 42 or API 52. The node data of the band has the ID and serial number of the document and page to which the band belongs, and further has identification information (serial number and the like) of the band data in the file.

FDリスト領域には、API42またはAPI52により、ページごとに、そのページに対応するファイルのファイルディスクリプターが書き込まれる。   In the FD list area, a file descriptor of a file corresponding to the page is written for each page by API 42 or API 52.

キュー領域には、API42またはAPI52により、バンドデータごとにアクセス要求が書き込まれる。アクセス要求は、アクセス種別(書き込みまたは読み出し)、および対象のバンドデータの識別情報を含む。したがって、1つのキューに、データ書込要求とデータ読出要求が混在する。   In the queue area, an access request is written for each band data by API 42 or API 52. The access request includes an access type (write or read) and identification information of target band data. Therefore, a data write request and a data read request are mixed in one queue.

このキューシステム91へのアクセスは、セマフォにより排他制御され、書込側スレッド31a,ファイル書込スレッド31b,読出側スレッド32a,ファイル読出スレッド32bのうちの2つ以上から同時にアクセスできないようになっている。   Access to the queue system 91 is controlled exclusively by a semaphore, and cannot be simultaneously accessed from two or more of the writing thread 31a, the file writing thread 31b, the reading thread 32a, and the file reading thread 32b. Yes.

一方、メインコントローラー2は、ファイル書込スレッド31bで、ファイル書込プログラム71に従い、キュー内のアクセス要求を検索する(ステップS31)。メインコントローラー2は、キュー内に、書込指令のあったバンドデータのデータ書込要求を発見すると(ステップS32)、そのデータ書込要求により指定されたバンドデータおよび書込先を、キューシステム91に書き込まれている構造データおよびファイルディスクリプターから特定する。メインコントローラー2は、ファイル書込スレッド31bでRAM3からDMA転送でそのバンドデータをHDDコントローラー14へ読み出す。   On the other hand, the main controller 2 searches the access request in the queue by the file writing thread 31b according to the file writing program 71 (step S31). When the main controller 2 finds a data write request for the band data for which a write command has been issued in the queue (step S32), the main controller 2 determines the band data and write destination specified by the data write request as the queue system 91. Identifies from the structure data and file descriptor written in The main controller 2 reads the band data from the RAM 3 to the HDD controller 14 by DMA transfer from the file writing thread 31b.

このとき、書き込み対象のバンドデータの属するドキュメントおよびページが、データ書込要求から特定され、まず、書き込み対象のバンドデータの属するドキュメントのドキュメントノードデータが特定され、そのドキュメントノードデータに接続しているページリンクリストにおいて、書き込み対象のバンドデータの属するページのページノードデータが特定される。そして、そのページノードデータに接続されているバンドリンクリストにおいて、書き込み対象のバンドデータが特定される。   At this time, the document and page to which the band data to be written belongs are specified from the data write request. First, the document node data of the document to which the band data to be written belongs is specified and connected to the document node data. In the page link list, page node data of a page to which the band data to be written belongs is specified. Then, the band data to be written is specified in the band link list connected to the page node data.

そして、HDDコントローラー14は、読み出されたバンドデータを特定された書込先に書き込む(ステップS33)。   Then, the HDD controller 14 writes the read band data to the specified writing destination (step S33).

1つのバンドデータのデータ書込が完了すると、メインコントローラー2は、ファイル書込スレッド31bで、ファイル書込プログラム71に従い、そのバンドデータのデータ書込要求をキューから削除し(ステップS34)、API42へバンドデータのデータ書込完了通知を供給する(ステップS35)。   When the data writing of one band data is completed, the main controller 2 deletes the data writing request of the band data from the queue according to the file writing program 71 by the file writing thread 31b (step S34), and the API 42 A data write completion notice of the band data is supplied to (step S35).

このように、キューイングされているデータ書込のアクセス要求は、アプリケーション23とは別のファイル書込スレッド31bのファイル書込プログラム71を実行することにより、非同期で処理されていく。   As described above, the queued data write access request is processed asynchronously by executing the file write program 71 of the file write thread 31 b different from the application 23.

そして、API42へデータ書込完了通知が供給されると、メインコントローラー2はAPI42により、イベントを発行する(ステップS26)。メインコントローラー2は、書込側スレッド31aで書込側プログラム41に従い、そのデータ書込が完了したバンドデータをRAM3から消去する(ステップS27)。   When the data write completion notification is supplied to the API 42, the main controller 2 issues an event through the API 42 (step S26). The main controller 2 erases the band data for which data writing has been completed from the RAM 3 in accordance with the write side program 41 by the write side thread 31a (step S27).

そして、1ページ分のすべてのバンドデータの書込が完了すると(ステップS28)、メインコントローラー2は、書込側プログラム41に従い、API42を用いてファイルシステム61の共有ライブラリーを呼び出し、ファイル識別子に対応するファイルをクローズする(ステップS29)。   When the writing of all the band data for one page is completed (step S28), the main controller 2 calls the shared library of the file system 61 using the API 42 according to the writing program 41, and sets the file identifier. The corresponding file is closed (step S29).

一方、メインコントローラー2は、読出側スレッド32aで読出側プログラム51を実行する。ここで、読出側プログラム51は、書込側とは非同期で動作している。メインコントローラー2は、読出側スレッド32aで読出側プログラム51に従い、書込側スレッド31aからファイル識別子を受領すると(ステップS41)、そのファイル識別子に対応するファイルをオープンし、ファイルハンドルを生成する(ステップS42)。   On the other hand, the main controller 2 executes the reading side program 51 by the reading side thread 32a. Here, the reading side program 51 operates asynchronously with the writing side. When the main controller 2 receives a file identifier from the writing thread 31a in accordance with the reading program 51 in the reading thread 32a (step S41), the main controller 2 opens a file corresponding to the file identifier and generates a file handle (step S41). S42).

そして、メインコントローラー2は、ファイルオープン後、読出側スレッド32aで読出側プログラム51に従い、ファイルシステム61のAPI52を呼び出し、ファイル識別子に対応するファイルからの各バンドデータのデータ読出要求を順に、キューシステム91にキューイングする。メインコントローラー2は、データ読出要求に応じて、読出側プログラム51に従い、ファイル読出スレッド32bに対して各バンドデータの読出指令を供給する(ステップS43)。読出指令では、読出の対象となるバンドデータの識別情報(つまり、そのバンドデータを含むドキュメントの識別情報、そのバンドデータを含むページの識別情報、およびそのページ内でのバンドデータの識別情報)が指定される。メインコントローラー2は、全てのバンドデータのデータ読出要求をキューイングするまで、ステップS43の処理を繰り返す(ステップS44)。   Then, after the file is opened, the main controller 2 calls the API 52 of the file system 61 in accordance with the read-side program 51 by the read-side thread 32a, and sequentially issues a data read request for each band data from the file corresponding to the file identifier in the queue system. Queue to 91. In response to the data read request, the main controller 2 supplies a read command for each band data to the file read thread 32b according to the read-side program 51 (step S43). In the read command, identification information of the band data to be read (that is, identification information of the document including the band data, identification information of the page including the band data, and identification information of the band data in the page) It is specified. The main controller 2 repeats the process of step S43 until queuing data read requests for all band data (step S44).

一方、メインコントローラー2は、ファイル読出スレッド32bで、そのバンドデータの書込完了時のイベントを受領すると(ステップS51)、ファイル読出プログラム81に従い、キュー内のデータ読出要求を検索する(ステップS52)。メインコントローラー2は、キュー内に、読出指令のあったバンドデータのアクセス要求を発見すると(ステップS53)、ファイルシステム61のAPI52を呼び出して、バンドデータをHDD4内のファイルから読み出すようHDDコントローラー14を制御する(ステップS54)。このとき、そのデータ読出要求により指定されたバンドデータおよび読出元が、キューシステム91に書き込まれている構造データおよびファイルディスクリプターから特定される。HDDコントローラー14は、特定された読出元からそのバンドデータを読み出す。メインコントローラー2は、ファイル読出プログラムコード81に従い、読み出されたバンドデータをDMA転送でRAM3に書き込まれる。   On the other hand, when the file read thread 32b receives the event at the completion of writing the band data (step S51), the main controller 2 searches for a data read request in the queue according to the file read program 81 (step S52). . When the main controller 2 finds an access request for the band data for which a read command has been issued in the queue (step S53), the main controller 2 calls the API 52 of the file system 61 and causes the HDD controller 14 to read the band data from the file in the HDD 4. Control (step S54). At this time, the band data and the reading source designated by the data reading request are specified from the structure data and the file descriptor written in the queue system 91. The HDD controller 14 reads the band data from the specified reading source. The main controller 2 writes the read band data in the RAM 3 by DMA transfer according to the file reading program code 81.

1つのバンドデータのデータ読出が完了すると、メインコントローラー2は、ファイル読出スレッド32bで、ファイル読出プログラム81に従い、そのバンドデータのデータ読出要求をキューから削除し(ステップS55)、API52へバンドデータのデータ読出完了通知を供給する(ステップS56)。   When the data reading of one band data is completed, the main controller 2 deletes the data reading request of the band data from the queue in the file reading thread 32b according to the file reading program 81 (step S55), and sends the band data to the API 52. A data read completion notification is supplied (step S56).

このようにして、書込側からのイベントにつき1つずつ、バンドデータが順番に読み出される。そして、メインコントローラー2は、読出側スレッド32aで読出側プログラム51に従い、データ読出完了通知のたびに、1ページ分のすべてのバンドデータの読出が完了したか否かを判定する(ステップS46)。1ページ分のすべてのバンドデータの読出が完了すると、メインコントローラー2は、API52を用いてファイルシステム61の共有ライブラリーを呼び出し、ファイル識別子に対応するファイルをクローズする。(ステップS47)ここで、HDDコントローラー14は、クローズされたファイルをHDD4から消去する。   In this way, the band data is read in order for each event from the writing side. Then, the main controller 2 determines whether or not reading of all band data for one page has been completed for each data reading completion notification in accordance with the reading side program 51 in the reading side thread 32a (step S46). When the reading of all band data for one page is completed, the main controller 2 calls the shared library of the file system 61 using the API 52, and closes the file corresponding to the file identifier. (Step S47) Here, the HDD controller 14 erases the closed file from the HDD 4.

以上のように、上記実施の形態1によれば、メインコントローラー2は、(i)書込側プロセス21で書込側スレッド31aおよびファイル書込スレッド31bを生成し、(ii) 読出側プロセス22で読出側スレッド32aおよびファイル読出スレッド32bを生成し、(iii) 書込側スレッド31aから読出側スレッド32aへ、HDD4におけるファイルの識別子を通知した後に、書込側スレッド31aで一連の複数のバンドデータのそれぞれについてのデータ書込要求を順番にキューイングし、(iv) ファイル書込スレッド31bを用いて、キューイングされたデータ書込要求の順番で、HDDコントローラー14に一連の複数のバンドデータを書き込ませ、(v) 読出側スレッド32aで、ファイルのファイル識別子を受領すると、一連の複数のバンドデータのそれぞれについてのデータ読出要求を順番にキューイングし、(vi) ファイル読出スレッド32bを用いて、キューイングされたデータ読出要求の順番で、HDDコントローラー14に一連の複数のバンドデータを読み出させる。   As described above, according to the first embodiment, the main controller 2 (i) generates the write-side thread 31a and the file-write thread 31b in the write-side process 21, and (ii) the read-side process 22 (Iii) after writing the identifier of the file in the HDD 4 from the writing thread 31a to the reading thread 32a, the writing thread 31a generates a series of a plurality of bands. A data write request for each of the data is queued in order, and (iv) a series of a plurality of band data is sent to the HDD controller 14 in the order of the queued data write request using the file write thread 31b. (V) When the reading-side thread 32a receives the file identifier of the file, Queue data read requests for each of the data in order, and (vi) use the file read thread 32b to read a series of band data to the HDD controller 14 in the order of the queued data read requests Let

これにより、HDD4への書込を行うプログラム71が別のスレッド31bで動作するため、非同期でのデータ書込となり、書込側プログラム41がデータ書込の完了を待たずに別の処理を実行することができる。また、HDD4からの読出を行うプログラム81が別のスレッド32bで動作するため、非同期でのデータ読出となり、読出側プログラム51がデータ読出の完了を待たずに別の処理を実行することができる。   As a result, since the program 71 for writing to the HDD 4 operates in another thread 31b, the data writing is performed asynchronously, and the writing program 41 executes another process without waiting for the completion of the data writing. can do. Further, since the program 81 for reading from the HDD 4 operates in another thread 32b, the data is read asynchronously, and the reading side program 51 can execute another process without waiting for the completion of the data reading.

また、上記実施の形態1によれば、1ページ分のバンドデータは、ドキュメント内の各ページに対して設けられたリンクリストとされ、RAM3に記憶され、さらに、RAM3には、ドキュメント内の各ページを示すページノードデータが記憶される。あるページのページノードデータは、そのページについての複数のバンドデータの先頭へのリンクを有する。   Further, according to the first embodiment, band data for one page is stored in the RAM 3 as a link list provided for each page in the document. Page node data indicating a page is stored. The page node data of a certain page has a link to the head of a plurality of band data for the page.

これにより、複数ページのバンドデータが、ページごとに、別々のリンクリストとされるため、複数ページのバンドデータから、処理対象のバンドデータを短時間で見つけ出すことができる。   Thereby, since the band data of a plurality of pages is made into a separate link list for each page, the band data to be processed can be found in a short time from the band data of the plurality of pages.

実施の形態2. Embodiment 2. FIG.

本発明の実施の形態2では、書込側スレッド31aにおいて、バンドデータのデータ書込のキューイングが完了した時点でイベントを発行する。ファイル読出スレッド32bにおいて、RAM3上にバンドデータがあればRAM3からそのバンドデータを読み出し、RAM3上にバンドデータがなければHDD4のファイルからそのバンドデータを読み出す。   In the second embodiment of the present invention, an event is issued when queuing of band data writing is completed in the writing thread 31a. In the file reading thread 32b, if there is band data on the RAM 3, the band data is read from the RAM 3, and if there is no band data on the RAM 3, the band data is read from the file on the HDD 4.

なお、実施の形態2に係るデータ処理装置の基本的な構成は、実施の形態1(図1)と同様であるので、その説明を省略する。実施の形態2におけるメインコントローラー2の動作は、実施の形態1のものと異なるので、その点について以下に説明する。実施の形態2における基本的なプログラム構成は、実施の形態1のもの(図4)と同様であるが、書込側スレッド31aとファイル読出スレッド32bによる動作が実施の形態1のもの(図4)とは異なる。   Note that the basic configuration of the data processing apparatus according to the second embodiment is the same as that of the first embodiment (FIG. 1), and a description thereof will be omitted. Since the operation of the main controller 2 in the second embodiment is different from that of the first embodiment, this point will be described below. The basic program configuration in the second embodiment is the same as that in the first embodiment (FIG. 4), but the operations by the writing thread 31a and the file reading thread 32b are the same as those in the first embodiment (FIG. 4). ) Is different.

図8は、実施の形態2におけるメインコントローラー2の書込側プロセス21の動作を説明するフローチャートである。図9は、実施の形態2におけるメインコントローラー2の読出側プロセス22の動作を説明するフローチャートである。   FIG. 8 is a flowchart for explaining the operation of the writing process 21 of the main controller 2 according to the second embodiment. FIG. 9 is a flowchart for explaining the operation of the reading-side process 22 of the main controller 2 in the second embodiment.

図8に示すように実施の形態2では、メインコントローラー2は、書込側スレッド31aで、バンドデータの書込完了時ではなく、バンドデータのキューイング(ステップS23)が終了するたびに、イベントを発行する(ステップS61)。   As shown in FIG. 8, in the second embodiment, the main controller 2 causes the write-side thread 31a to execute an event every time band data queuing (step S23) ends, not when band data writing is completed. Is issued (step S61).

そして、図9に示すように、メインコントローラー2は、ファイル読出スレッド32bで、キューにおいてアクセス要求を発見したときに、読出対象のバンドデータがRAM3上に残っているか否かを調べる(ステップS71)。その結果、読出対象のバンドデータがRAM3上に残っていれば、メインコントローラー2は、ファイル読出しスレッド32でファイル読出しプログラムに従い、バンドデータをRAM3から読み出す(ステップS72)。読出対象のバンドデータがRAM3上に残っていなければ、メインコントローラー2は、ファイル読出しスレッドでファイル読出しプログラムに従い、バンドデータをHDD4のファイルから読み出すようHDDコントローラーを制御する。このとき、HDDコントローラー14は、バンドデータをHDD4から読み出す(ステップS54)。   Then, as shown in FIG. 9, when the file read thread 32b finds an access request in the queue, the main controller 2 checks whether or not the band data to be read remains on the RAM 3 (step S71). . As a result, if the band data to be read remains on the RAM 3, the main controller 2 reads the band data from the RAM 3 according to the file reading program by the file reading thread 32 (step S72). If the band data to be read does not remain on the RAM 3, the main controller 2 controls the HDD controller to read the band data from the file in the HDD 4 according to the file read program by the file read thread. At this time, the HDD controller 14 reads band data from the HDD 4 (step S54).

このように、読出対象のバンドデータがRAM3上に残っている場合、バンドデータがHDD4からではなくRAM3から読み出される。このため、そのバンドデータについてのデータ書込要求によるHDD4へのバンドデータの書き込みは不要である。しかし、そのデータ書込要求はキューシステム91に残ったままとなっている。このような不要なデータ書込要求があるジョブ(ドキュメント)について残っていると、読出側でそのジョブが完了しても(つまり、そのドキュメントの読み出しが完了しても)、そのデータ書込要求が処理されるまで、書き込み側ではそのジョブが完了しないため、後続の処理が遅延してしまう。このため、メインコントローラー2は、読出側スレッド31によって、所定のタイミングで、RAM3から既に読み出されたバンドデータについてのデータ書込要求をキューから削除する。この実施の形態では、データ書込要求の削除のタイミングは、読出側でのジョブ完了時とされる。   As described above, when band data to be read remains on the RAM 3, the band data is read from the RAM 3 instead of from the HDD 4. Therefore, it is not necessary to write the band data to the HDD 4 in response to a data write request for the band data. However, the data write request remains in the queue system 91. If a job (document) having such an unnecessary data write request remains, even if the job is completed on the reading side (that is, reading of the document is completed), the data write request Until the process is completed, the job is not completed on the writing side, and the subsequent processing is delayed. Therefore, the main controller 2 deletes the data write request for the band data already read from the RAM 3 from the queue at a predetermined timing by the reading-side thread 31. In this embodiment, the timing for deleting the data write request is when the job is completed on the reading side.

図10は、実施の形態2におけるRAM3からのバンドデータの読出について説明する図である。図10に示すように、バンドデータは、RAM3内の所定の共有メモリー領域に記憶され、この共有メモリー領域の物理アドレスは、各プロセス21,22の論理アドレスにマッピングされ、各プロセス21,22の各スレッド31a,31b,32a,32bから共有メモリー領域へのアクセスが可能となっている。   FIG. 10 is a diagram for explaining reading of band data from the RAM 3 in the second embodiment. As shown in FIG. 10, the band data is stored in a predetermined shared memory area in the RAM 3, and the physical address of this shared memory area is mapped to the logical address of each process 21, 22. Each thread 31a, 31b, 32a, 32b can access the shared memory area.

以上のように、上記実施の形態2によれば、メインコントローラー2は、(i) 書込側プロセス21で、1つのバンドデータをRAM3に記憶し、(ii) 書込側スレッド31aで1つのバンドデータのデータ書込み要求をキューイングするたびにイベントを発行し、(iv)HDD4へのバンドデータのデータ書込が完了したときに、読出側スレッド32aでそのバンドデータをRAM3から消去し、(v)キューイングされたデータ読出要求を順番に実行するとき、読出対象のバンドデータがRAM3にあれば、ファイル読出スレッド32bで、HDD4からバンドデータを読み出さずにRAM3からそのバンドデータを読み出し、(vi) RAM3にそのバンドデータがなければ、HDDコントローラー14にHDD4からそのバンドデータを読み出させる。   As described above, according to the second embodiment, the main controller 2 (i) stores one band data in the RAM 3 in the writing side process 21 and (ii) one in the writing side thread 31a. An event is issued each time a band data write request is queued. (Iv) When the band data write to the HDD 4 is completed, the read-side thread 32a erases the band data from the RAM 3 ( v) When sequentially executing the queued data read requests, if the band data to be read is in the RAM 3, the file read thread 32b reads the band data from the RAM 3 without reading the band data from the HDD 4, vi) If the band data is not stored in the RAM 3, the HDD controller 14 is caused to read the band data from the HDD 4.

これにより、RAM3にバンドデータが残っていれば、ただちにRAM3上のバンドデータを使用できる。このため、HDD4からの読み出しより短時間でデータを読み出すことができ、データ読出時の遅延を低減することができる。   As a result, if band data remains in the RAM 3, the band data on the RAM 3 can be used immediately. For this reason, data can be read out in a shorter time than reading from the HDD 4, and a delay in data reading can be reduced.

また、上記実施の形態2によれば、メインコントローラー2は、所定のタイミングで、RAM3から読み出されたバンドデータについてのデータ書込要求をキューから削除する。   Further, according to the second embodiment, the main controller 2 deletes the data write request for the band data read from the RAM 3 from the queue at a predetermined timing.

これにより、HDD4を介さずにRAM3からバンドデータが読み出されているのにも拘わらずキューに残存しているデータ書込要求に起因する処理遅延を回避することができる。   Thereby, it is possible to avoid a processing delay due to a data write request remaining in the queue even though the band data is read from the RAM 3 without going through the HDD 4.

なお、上述の各実施の形態は、本発明の好適な例であるが、本発明は、これらに限定されるものではなく、本発明の要旨を逸脱しない範囲において、種々の変形、変更が可能である。   Each embodiment described above is a preferred example of the present invention, but the present invention is not limited to these, and various modifications and changes can be made without departing from the scope of the present invention. It is.

例えば、上記実施の形態2において、読出側スレッド32aでRAM3からバンドデータを読み出している最中に、書込側においてそのバンドデータの、HDD4への書込が完了した場合、メインコントローラー2は、書込側スレッド31aで、読出側スレッド32aでのバンドデータの読出が完了した後に、そのバンドデータをRAM3から削除してもよい。例えば、バンドデータの記憶領域へのアクセスを排他制御すれば、このような処理が実現可能である。   For example, in the second embodiment, when the band data is read from the RAM 3 by the reading side thread 32a and the writing of the band data to the HDD 4 is completed on the writing side, the main controller 2 In the writing thread 31a, the band data may be deleted from the RAM 3 after the reading of the band data in the reading thread 32a is completed. For example, such processing can be realized by exclusively controlling access to the storage area of the band data.

また、上記各実施の形態において、HDD4へデータを書き込み前に、データを圧縮し、HDD4からデータを読み出した後に、データを伸張するようにしてもよい。圧縮・伸張の方式としては、JPEG(Joint Photographic Experts Group)方式、RLE(Run Length Encoding)方式などが使用可能である。   In each of the above embodiments, data may be compressed before data is written to the HDD 4, and data may be decompressed after data is read from the HDD 4. As a compression / decompression method, a JPEG (Joint Photographic Experts Group) method, an RLE (Run Length Encoding) method, or the like can be used.

また、上記各実施の形態において、書込側から読出側へ通知するファイル識別子には、ファイルハンドルを使用してもよい。   In each of the above embodiments, a file handle may be used as a file identifier notified from the writing side to the reading side.

また、上記各実施の形態においては、ファイルシステム61を使用してHDD4に対するデータの読み書きを行っているが、ファイルシステム61はなくてもよい。その場合には、ファイル識別子の代わりに、1ページ分のバンドデータを記憶するHDD4上の記憶領域の識別情報(例えばアドレスとサイズなど)が使用される。   In the above embodiments, the file system 61 is used to read / write data from / to the HDD 4, but the file system 61 may not be provided. In that case, identification information (for example, address and size) of a storage area on the HDD 4 that stores band data for one page is used instead of the file identifier.

また、上記各実施の形態において、書込側プロセス21のアプリケーションと読出側プロセス22のアプリケーションとは、別々の独立したプログラムとしてもよい。   In each of the above embodiments, the application of the writing side process 21 and the application of the reading side process 22 may be separate and independent programs.

また、上記各実施の形態においては、ストレージとしてHDD4が使用されているが、SSD(Solid State Drive)などの半導体メモリーを使用した記憶装置を使用してもよい。   In each of the above embodiments, the HDD 4 is used as a storage, but a storage device using a semiconductor memory such as an SSD (Solid State Drive) may be used.

また、上記各実施の形態においては、書込側および読出側のプロセスは、それぞれ1つであるが、書込側および読出側のいずれも複数の同様のプロセスが生成されてもよい。その場合でも、実施の形態1,2におけるキューシステム91は1つで足りる。   In each of the above embodiments, there is one process on the writing side and one on the reading side, but a plurality of similar processes may be generated on both the writing side and the reading side. Even in that case, one queue system 91 in the first and second embodiments is sufficient.

また、上記各実施の形態においては、単一のメモリーコントローラー2で書込側および読出側の両方のプロセスを処理しているが、複数のプロセシングエレメントを有するプロセッサーで、書込側および読出側のプロセスを別々に処理するようにしてもよい。   In each of the above embodiments, the single memory controller 2 processes both the write side and the read side. However, in the processor having a plurality of processing elements, the write side and the read side are processed. You may make it process a process separately.

また、上記各実施の形態においては、バンドデータに分割された画像データを処理しているが、本発明は、他の種別のデータを所定のサイズのブロックへ分割し、そのブロックごとに処理をする装置にも適用可能である。   In each of the above embodiments, image data divided into band data is processed. However, the present invention divides other types of data into blocks of a predetermined size, and performs processing for each block. It is applicable also to the apparatus which performs.

本発明は、例えば、コピー機、複合機などの画像形成装置内の画像処理装置に適用可能である。   The present invention can be applied to, for example, an image processing apparatus in an image forming apparatus such as a copier or a multifunction peripheral.

2 メインコントローラー(プロセッサーの一例)
3 RAM(メモリーの一例)
4 HDD(ストレージの一例)
8 データ処理プログラム
21 書込側プロセス
22 読出側プロセス
31a 書込側スレッド(第1スレッドの一例)
31b ファイル書込スレッド(第3スレッドの一例)
32a 読出側スレッド(第2スレッドの一例)
32b ファイル読出スレッド(第4スレッドの一例)
41 書込側プログラム
51 読出側プログラム
2 Main controller (example of processor)
3 RAM (an example of memory)
4 HDD (an example of storage)
8 Data processing program 21 Write process 22 Read process 31a Write thread (an example of a first thread)
31b File writing thread (example of third thread)
32a Reading-side thread (an example of a second thread)
32b File reading thread (an example of a fourth thread)
41 Write side program 51 Read side program

Claims (7)

所定単位のデータを構成する一連の複数のデータブロックをストレージに書き込み、前記ストレージからその一連の複数のデータブロックを読み出すストレージコントローラーと、
前記ストレージコントローラーを制御するプロセッサーを備え、
前記プロセッサーは、
書込側プロセスおよび読出側プロセスを生成し、
前記書込側プロセスで第1スレッドおよび第3スレッドを生成し、
前記読出側プロセスで第2スレッドおよび第4スレッドを生成し、
前記ストレージにおける記憶領域の識別子を前記第1スレッドから前記第2スレッドへ通知した後、前記第1スレッドで、前記一連の複数のデータブロックのそれぞれについてのデータ書込要求を順番にキューイングし、
前記第3スレッドを用いて、キューイングされた前記データ書込要求の順番で、前記ストレージコントローラーに前記一連の複数のデータブロックを書き込ませ、
前記第2スレッドで、前記識別子を受領すると、前記一連の複数のデータブロックのそれぞれについてのデータ読出要求を順番にキューイングし、
前記第4スレッドを用いて、キューイングされた前記データ読出要求の順番で、前記ストレージコントローラーに前記一連の複数のデータブロックを読み出させること、
を特徴とするデータ処理装置。
A storage controller that writes a series of data blocks constituting a predetermined unit of data to the storage and reads the series of data blocks from the storage; and
A processor for controlling the storage controller;
The processor is
Create a writer process and a reader process,
Creating a first thread and a third thread in the writing process;
Generating a second thread and a fourth thread in the reading process;
After notifying the storage area identifier in the storage from the first thread to the second thread, the first thread sequentially queues data write requests for each of the series of data blocks,
Using the third thread to cause the storage controller to write the series of data blocks in the order of the queued data write requests;
When the second thread receives the identifier, it queues data read requests for each of the series of data blocks in sequence,
Using the fourth thread to cause the storage controller to read the series of data blocks in the order of the queued data read requests;
A data processing apparatus.
前記一連の複数のデータブロックを記憶するメモリーを備え、
前記一連の複数のデータブロックは、1つのドキュメント内のいずれかの1ページの画像データを構成する複数のバンドデータであり、
前記メモリーは、前記ドキュメント内の各ページを示すページノードデータを記憶し、
前記複数のバンドデータは、前記ドキュメント内の各ページに対して設けられたリンクリストであり、
あるページの前記ページノードデータは、そのページについての前記複数のバンドデータの先頭へのリンクを有すること、
を特徴とする請求項1記載のデータ処理装置。
A memory for storing the series of data blocks;
The series of a plurality of data blocks is a plurality of band data constituting image data of one page in one document,
The memory stores page node data indicating each page in the document;
The plurality of band data is a link list provided for each page in the document,
The page node data of a page has a link to the head of the plurality of band data for the page;
The data processing apparatus according to claim 1.
前記プロセッサーは、前記第3スレッドを用いて、前記ページノードデータで、前記複数のバンドデータの先頭位置を特定し、前記リンクリストを辿って、前記複数のバンドデータを前記ストレージコントローラーに書き込ませることを特徴とする請求項2記載のデータ処理装置。   The processor uses the third thread to identify the head position of the plurality of band data with the page node data, and traces the link list to cause the storage controller to write the plurality of band data. The data processing apparatus according to claim 2. 前記プロセッサーは、前記メモリーに1ページ分の前記複数のバンドデータを記憶するときに前記複数のバンドデータの記憶領域を確保し、そのページの書き込みが完了すると前記記憶領域を解放し、前記メモリーの残量が不足している場合、他のページについての前記複数のバンドデータの記憶領域を解放したときに、前記複数のバンドデータの記憶領域を確保することを特徴とする請求項2記載のデータ処理装置。   The processor secures a storage area for the plurality of band data when storing the plurality of band data for one page in the memory, and releases the storage area when the writing of the page is completed. 3. The data according to claim 2, wherein when the remaining amount is insufficient, a storage area for the plurality of band data is secured when the storage area for the plurality of band data for other pages is released. Processing equipment. 前記プロセッサーは、
前記第3スレッドで前記データブロックをメモリーに記憶し、
前記第1スレッドで前記データブロックのデータ書込要求をキューイングするたびにイベントを発行し、
前記ストレージへの前記データブロックの書込が完了したときに、前記第3スレッドで前記データブロックをメモリーから消去し、
前記キューイングされた前記データ読出要求を順番に実行するとき、前記メモリーに前記データブロックがあれば、前記第4スレッドで前記メモリーからそのデータブロックを読み出し、前記メモリーに前記データブロックがなければ、前記第4スレッドを用いて、前記ストレージコントローラーに前記ストレージから前記データブロックを読み出させ、
所定のタイミングで、前記メモリーから読み出されたデータブロックについての前記データ書込要求をキューから削除すること、
を特徴とする請求項1記載のデータ処理装置。
The processor is
Storing the data block in a memory in the third thread;
Issue an event each time the first thread queues a data write request for the data block;
When the writing of the data block to the storage is completed, the third thread erases the data block from the memory,
When executing the queued data read requests in sequence, if the data block exists in the memory, the fourth thread reads the data block from the memory, and if the data block does not exist in the memory, Using the fourth thread, the storage controller is caused to read the data block from the storage,
Deleting the data write request for the data block read from the memory at a predetermined timing from the queue;
The data processing apparatus according to claim 1.
前記プロセッサーは、ジョブ完了時に、前記メモリーから読み出されたデータブロックについての前記データ書込要求をキューから削除することを特徴とする請求項5記載のデータ処理装置。   6. The data processing apparatus according to claim 5, wherein when the job is completed, the processor deletes the data write request for the data block read from the memory from the queue. 前記一連の複数のデータブロックは、前記ストレージにおけるファイルに書き込まれ、
前記記憶領域の識別子は、前記ファイルの識別子であること、
を特徴とする請求項1から請求項6のうちのいずれか1項記載のデータ処理装置。
The series of data blocks is written to a file in the storage;
The identifier of the storage area is the identifier of the file;
The data processing device according to claim 1, wherein the data processing device is a data processing device.
JP2010108119A 2010-03-15 2010-05-10 Data processing device and data processing program Pending JP2011237972A (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2010108119A JP2011237972A (en) 2010-05-10 2010-05-10 Data processing device and data processing program
CN201010611904.XA CN102193882B (en) 2010-03-15 2010-12-17 Data processing apparatus and data processing method
US13/048,296 US8661209B2 (en) 2010-03-15 2011-03-15 Data processing apparatus, data processing method, and computer-readable recording medium for writing and reading data to and from a storage

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010108119A JP2011237972A (en) 2010-05-10 2010-05-10 Data processing device and data processing program

Publications (1)

Publication Number Publication Date
JP2011237972A true JP2011237972A (en) 2011-11-24

Family

ID=45325891

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010108119A Pending JP2011237972A (en) 2010-03-15 2010-05-10 Data processing device and data processing program

Country Status (1)

Country Link
JP (1) JP2011237972A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012212267A (en) * 2011-03-30 2012-11-01 Kyocera Document Solutions Inc Data processing device and data processing program

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10214247A (en) * 1996-11-28 1998-08-11 Hitachi Ltd External storage device interface
JP2002011925A (en) * 2001-05-22 2002-01-15 Seiko Epson Corp Printer, its controlling method and medium recording program

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10214247A (en) * 1996-11-28 1998-08-11 Hitachi Ltd External storage device interface
JP2002011925A (en) * 2001-05-22 2002-01-15 Seiko Epson Corp Printer, its controlling method and medium recording program

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN6013005588; TIFF Revision 6.0, 19920603, p.13-14, 16, 19-20, Adobe Developers Assosication *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012212267A (en) * 2011-03-30 2012-11-01 Kyocera Document Solutions Inc Data processing device and data processing program

Similar Documents

Publication Publication Date Title
US8661209B2 (en) Data processing apparatus, data processing method, and computer-readable recording medium for writing and reading data to and from a storage
JP2008269282A (en) Information processing device, method and program
US9172839B2 (en) Image forming apparatus, control method and storage medium
JP6748445B2 (en) Image forming apparatus, control method of image forming apparatus, and program
US20120268757A1 (en) Image forming apparatus and image forming method
JP5298154B2 (en) Data processing apparatus and data processing program
JP5097788B2 (en) Data processing apparatus and data processing program
JP6904697B2 (en) Information processing device and communication control method
US20120320423A1 (en) Printing apparatus provided with plural processing systems for generating print data, printing method and recording medium
US20100328715A1 (en) Image processing apparatus, and control method thereof and program
JP2011237972A (en) Data processing device and data processing program
JP5232728B2 (en) Image forming apparatus
US10089561B2 (en) Generating a raster image region by rendering in parallel plural regions of smaller height and segmenting the generated raster image region into plural regions of smaller width
US10121098B2 (en) Image forming apparatus having plurality of processing units for generating intermediate data, and method for controlling the image forming apparatus
US9558432B2 (en) Buffer management technology in image forming apparatus
JP4848866B2 (en) Image processing apparatus and program
US20160358052A1 (en) Information processing apparatus, information processing method, and storage medium
JP3907484B2 (en) Information processing apparatus, control method thereof, and program
JP5246308B2 (en) Image processing apparatus and program
JP3214617B2 (en) Multi-value image printer
JP2001243028A (en) Medium with printing control program recorded and printing controller and printing control method
JP2018106223A (en) Printing control program, printing control apparatus, and printing control method
JP2018042054A (en) Information processing unit and program
JP2003229998A (en) Digital image reading and forming apparatus
JP2006130776A (en) Image processing apparatus and method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120427

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120727

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120821

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121016

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130213