JP5194952B2 - Data processing device - Google Patents
Data processing device Download PDFInfo
- Publication number
- JP5194952B2 JP5194952B2 JP2008091529A JP2008091529A JP5194952B2 JP 5194952 B2 JP5194952 B2 JP 5194952B2 JP 2008091529 A JP2008091529 A JP 2008091529A JP 2008091529 A JP2008091529 A JP 2008091529A JP 5194952 B2 JP5194952 B2 JP 5194952B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- memory
- partial
- size
- program
- 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.)
- Active
Links
Images
Landscapes
- Record Information Processing For Printing (AREA)
- Image Generation (AREA)
Description
本発明は、第1データから第2データを作成し、第2データから第3データを作成するデータ処理に関する。 The present invention relates to data processing for creating second data from first data and creating third data from second data.
様々な処理を実行する過程において、メモリフルのエラーが生じないようにメモリ管理を行なう必要がある。例えば、下記の特許文献1には、印刷用データを作成するための2つの処理(ジョブ)を並列的に実行する場合に、各ジョブの状態情報(印刷枚数等の情報)及び優先度情報(コピー優先、プリンタ優先等の情報)に基づいて、一方のジョブのためのメモリ回路と他方のジョブのためのメモリ回路についてメモリ量の配分を修正する技術が開示されている。
It is necessary to perform memory management so that a memory full error does not occur in the process of executing various processes. For example, in
上記の特許文献1のメモリ管理技術は確かに有用かもしれないが、その手法をあらゆるデータ処理技術に適用することはできない。本発明者は、二段階に亘ってデータが変換されるデータ処理装置の開発に携わっている。即ち、この種のデータ処理装置では、第1データから第2データを作成し、その第2データから第3データを作成する。本明細書では、このような二段階に亘ってデータを変換する処理のための新規なメモリ管理技術を提供する。
Although the memory management technique of the above-mentioned
本発明は、第1データから第2データを作成し、前記第2データから第3データを作成するデータ処理装置であり、前記第1データを入力する第1データ入力手段と、前記第1データに含まれる複数個の部分第1データから前記第2データに含まれる複数個の部分第2データを順次作成するための第1プログラムを記憶している第1プログラム記憶手段と、前記第2データに含まれる前記複数個の部分第2データから前記第3データを作成するための第2プログラムを記憶している第2プログラム記憶手段と、前記第2データと前記第3データの両方を格納するために利用されるメモリと、前記第1プログラムに従って処理を実行することが可能であり、前記第2プログラムに従って処理を実行することが可能であり、それらの両処理のためのメモリ管理を統括して実行する制御手段とを備え、前記制御手段は、前記メモリ内の使用可能メモリサイズよりも小さいメモリサイズであって、前記第2データの作成に使用されるべき前記メモリサイズである所定値を特定し、前記複数個の部分第1データのうちの処理対象の部分第1データを処理すべき毎に、仮に、当該処理対象の部分第1データから1個の部分第2データを前記メモリ内に作成したら、前記1個の部分第2データを含む前記メモリ内の2個以上の部分第2データの合計データサイズが、前記所定値以上になるのか否かを判断し、前記合計データサイズが前記所定値以上にならないと判断される場合に、前記処理対象の部分第1データから前記1個の部分第2データを前記メモリ内に作成し、前記合計データサイズが前記所定値以上になると判断される場合において、前記メモリ内に圧縮状態の第3データが存在しない場合に、(A1)前記メモリ内のM個(前記Mは1以上の整数)の部分第2データから前記第3データを前記メモリ内に作成し、(A2)前記メモリ内の前記第3データを圧縮して、前記圧縮状態の第3データを前記メモリ内に作成し、(A3)前記M個の部分第2データを前記メモリから削除し、前記合計データサイズが前記所定値以上になると判断される場合において、前記メモリ内に前記圧縮状態の第3データが存在する場合に、(B1)前記圧縮状態の第3データを伸張して、伸張状態の第3データを前記メモリ内に作成し、(B2)前記メモリ内のN個(前記Nは1以上の整数)の部分第2データと、前記メモリ内の前記伸張状態の第3データと、から、新たな第3データを前記メモリ内に作成し、(B3)前記メモリ内の前記新たな第3データを圧縮して、新たな圧縮状態の第3データを前記メモリ内に作成し、(B4)前記N個の部分第2データを前記メモリから削除し、前記制御手段は、前記メモリ内の前記第3データの合計データサイズが、前記使用可能メモリサイズから前記所定値が減算された値よりも大きくなるのか否かに関わらず、前記(B2)を実行する、ことを特徴とするデータ処理装置である。
本明細書によって開示される1つの形態の技術は、第1データから第2データを作成し、その第2データから第3データを作成するデータ処理装置である。このデータ処理装置は、第1データ入力手段と、第1プログラム記憶手段と、第2プログラム記憶手段と、メモリと、制御手段とを有する。第1データ入力手段は、第1データを入力する。例えば、第1データが他のデバイスから送信される場合、第1データ入力手段は、他のデバイス(パーソナルコンピュータ、サーバ、ポータブルメモリ等)から送信された第1データを入力してもよい。第1プログラム記憶手段は、第1データから第2データを作成するための第1プログラムを記憶している。第2プログラム記憶手段は、第2データから第3データを作成するための第2プログラムを記憶している。メモリは、第2データと第3データの両方を格納するために利用される。制御手段は、第1プログラムに従って処理を実行することが可能であり、第2プログラムに従って処理を実行することが可能であり、それらの両処理のためのメモリ管理を統括して実行する。
The present invention is a data processing apparatus that creates second data from first data and creates third data from the second data, first data input means for inputting the first data, and the first data First program storage means for storing a first program for sequentially creating a plurality of partial second data included in the second data from a plurality of partial first data included in the second data, and the second data Second program storage means for storing a second program for creating the third data from the plurality of partial second data included in the plurality of partial data, and storing both the second data and the third data The memory used for the processing, the processing can be executed according to the first program, the processing can be executed according to the second program, and both of the processing Control means for performing overall memory management, the control means having a memory size smaller than an available memory size in the memory, and the memory size to be used for creating the second data Each time the partial first data to be processed of the plurality of partial first data is to be processed, it is assumed that one partial second from the partial first data to be processed When data is created in the memory, it is determined whether a total data size of two or more partial second data in the memory including the one partial second data is equal to or greater than the predetermined value; When it is determined that the total data size does not exceed the predetermined value, the one partial second data is created in the memory from the partial first data to be processed, and the total data size is When it is determined that the value is equal to or greater than a predetermined value, and there is no compressed third data in the memory, (A1) M pieces of second data in the memory (where M is an integer equal to or greater than 1) To create the third data in the memory, (A2) compress the third data in the memory to create the compressed third data in the memory, and (A3) the M data In the case where the partial second data is deleted from the memory and the total data size is determined to be equal to or larger than the predetermined value, and the third data in the compressed state exists in the memory, (B1) Decompressing the compressed third data to create the decompressed third data in the memory; (B2) N pieces of partial second data in the memory (where N is an integer equal to or greater than 1); The decompressed state in the memory New third data is created in the memory from the third data, and (B3) the new third data in the memory is compressed, and the new compressed third data is stored in the memory. (B4) deleting the N pieces of partial second data from the memory, and the control means determines that the total data size of the third data in the memory is a predetermined value from the usable memory size. Regardless of whether or not becomes larger than the subtracted value, (B2) is executed.
One form of technology disclosed in this specification is a data processing apparatus that creates second data from first data and creates third data from the second data. The data processing apparatus includes first data input means, first program storage means, second program storage means, memory, and control means. The first data input means inputs the first data. For example, when the first data is transmitted from another device, the first data input means may input the first data transmitted from another device (personal computer, server, portable memory, etc.). The first program storage means stores a first program for creating second data from the first data. The second program storage means stores a second program for creating third data from the second data. The memory is used to store both the second data and the third data. The control means can execute the process according to the first program, can execute the process according to the second program, and performs overall memory management for both of these processes.
具体的に言うと、制御手段は、以下の各処理を実行する。
(1)第1データを構成するデータから第2データを作成する。
(2)第1データを構成する次のデータが存在するのか否かを判断する。
(3)上記の(2)で肯定的に判断された場合に、第1データを構成する次のデータから第2データが作成されたら第2データの合計データサイズが所定値以上になるのか否かを判断する。
(4)上記の(3)で否定的に判断された場合に、上記の(1)を実行させる。
(5)第2データから第3データを作成する。
(6)第3データを圧縮することによって圧縮第3データを作成する。
(7)第2データを削除する。
(8)上記の(3)で肯定的に判断された場合に、上記の(5)と(6)と(7)を実行させる。
(9)圧縮第3データを伸張する。
(10)上記の(2)で否定的に判断された場合に、圧縮第3データが存在することを条件として上記の(9)を実行させる。
Specifically, the control means executes the following processes.
(1) The second data is created from the data constituting the first data.
(2) It is determined whether there is next data constituting the first data.
(3) Whether the total data size of the second data is equal to or greater than a predetermined value when the second data is created from the next data constituting the first data when the determination in (2) above is affirmative Determine whether.
(4) When a negative determination is made in the above (3), the above (1) is executed.
(5) Create third data from the second data.
(6) Create compressed third data by compressing the third data.
(7) Delete the second data.
(8) When a positive determination is made in the above (3), the above (5), (6), and (7) are executed.
(9) Decompress the compressed third data.
(10) When a negative determination is made in (2) above, the above (9) is executed on condition that the compressed third data exists.
なお、上記の(3)の処理は、様々な手法を利用して実行することができる。例えば、以下の(A)及び(B)のいずれかの手法を利用することができる。
(A)例えば、制御手段は、第2データを記憶するための第2データ用メモリサイズが予め決められている場合、第1データを構成する次のデータから第2データが作成されたら第2データの合計データサイズが第2データ用メモリサイズ以上になるのか否かを判断してもよい。この場合、第2データ用メモリサイズが上記の(3)の「所定値」になる。
(A’)なお、この例において圧縮第3データが存在している場合、制御手段は、第2データの合計データサイズのみが第2データ用メモリサイズ以上になるのか否かを判断してもよいし、第2データの合計データサイズと圧縮第3データのデータサイズとの和が第2データ用メモリサイズ以上になるのか否かを判断してもよい。後者の場合、上記の(3)の所定値は、第2データ用メモリサイズから圧縮第3データのデータサイズが減算された値になる。即ち、上記の(3)の所定値は、変動値であってもよい(逆に上記の(A)のように固定値でもよい)。
The process (3) can be executed using various methods. For example, any of the following methods (A) and (B) can be used.
(A) For example, when the second data memory size for storing the second data is determined in advance, the control means outputs the second data when the second data is created from the next data constituting the first data. It may be determined whether or not the total data size of the data is greater than or equal to the second data memory size. In this case, the second data memory size becomes the “predetermined value” in (3) above.
(A ′) When the compressed third data is present in this example, the control unit may determine whether only the total data size of the second data is equal to or larger than the second data memory size. Alternatively, it may be determined whether or not the sum of the total data size of the second data and the data size of the compressed third data is greater than or equal to the second data memory size. In the latter case, the predetermined value of (3) is a value obtained by subtracting the data size of the compressed third data from the second data memory size. That is, the predetermined value of (3) may be a fluctuation value (inversely, it may be a fixed value as in (A) above).
(B)また、例えば、制御手段は、第3データを記憶するための第3データ用メモリサイズが予め決められている場合、第1データを構成する次のデータから第2データが作成されたら上記の第3データ用メモリサイズを圧迫することになることになるのか否かを判断してもよい。即ち、制御手段は、第2データの合計データサイズが増加することに起因して、残存メモリサイズが上記の第3データ用メモリサイズ以下になるのか否かを判断してもよい。この例の構成も、「第2データの合計データサイズが所定値以上になるのか否かを判断する」ことに等しい。即ち、「第1データを構成する次のデータから第2データが作成されたら第2データの合計データサイズが所定値以上になるのか否かを判断する」ことは、「第1データを構成する次のデータから第2データが作成されたら第2データの合計データサイズが増加することに起因して、残存メモリサイズが所定値以下になるのか否かを判断する」ことに等しい。この点については、後述の実施例においてさらに詳しく説明する。 (B) Further, for example, when the third data memory size for storing the third data is determined in advance, the control means generates the second data from the next data constituting the first data. It may be determined whether the third data memory size is to be compressed. That is, the control means may determine whether or not the remaining memory size is equal to or smaller than the third data memory size due to an increase in the total data size of the second data. The configuration of this example is also equivalent to “determine whether or not the total data size of the second data is equal to or larger than a predetermined value”. That is, “when the second data is created from the next data constituting the first data, it is determined whether or not the total data size of the second data exceeds a predetermined value” This is equivalent to determining whether or not the remaining memory size is equal to or smaller than a predetermined value due to the increase in the total data size of the second data when the second data is created from the next data. This point will be described in more detail in Examples described later.
このデータ処理装置は、第1プログラムと第2プログラムのそれぞれの処理のメモリ管理を統括的に実行しながら、上記の(1)〜(10)の処理を実行する。メモリを効率的に利用しながら二段階に亘ってデータを変換することができる。仮に、メモリ管理を個別に行なうと、各プログラムの処理のためにメモリを分配する必要がある。この場合、一方のプログラムの処理ではメモリが余っているにもかかわらず、他方のプログラムの処理でメモリがフルになると、その時点でエラーになってしまう。例えば、第2データ用メモリと第3データ用メモリとを個別に管理すると、以下の事象が生じることがある。例えば、上記の(3)で肯定的に判断された場合に、第2データから第3データを作成すると、第3データ用メモリがメモリフルになる可能性がある。第2データ用メモリが余っている状況であっても、第3データ用メモリがメモリフルになると、エラーになってしまう。これに対し、本技術のように各プログラムの処理のためのメモリ管理を統括的に実行すると、各プログラムの処理でメモリを共用することができる。このために、メモリの一部が余っているにもかかわらずメモリフルのエラーが生じてしまうという事象が発生することを避けることができる。上記の例の場合、第2データ用メモリが余っている状況であるのであれば、その余っているメモリを利用して第3データを作成し、その第3データを圧縮することができる(メモリフルのエラーを回避できる)。本技術によると、二段階に亘ってデータを変換する処理においてメモリフルのエラーの発生を抑制することができる。 The data processing apparatus executes the processes (1) to (10) while performing overall memory management of the processes of the first program and the second program. Data can be converted in two stages while efficiently using the memory. If memory management is performed individually, it is necessary to distribute the memory for processing each program. In this case, an error occurs at that point in time when the memory of the other program is full but the memory becomes full by the other program. For example, when the second data memory and the third data memory are individually managed, the following events may occur. For example, if the determination in (3) above is affirmative, if the third data is created from the second data, the third data memory may become full. Even if the second data memory is surplus, an error occurs when the third data memory becomes full. On the other hand, if memory management for the processing of each program is comprehensively executed as in the present technology, the memory can be shared by the processing of each program. For this reason, it is possible to avoid the occurrence of an event that a memory full error occurs even though a part of the memory is left. In the case of the above example, if the second data memory is surplus, the third data can be created using the surplus memory and the third data can be compressed (memory). To avoid full errors). According to the present technology, it is possible to suppress the occurrence of a memory full error in the process of converting data in two stages.
上記の制御手段は、以下の処理を実行するようにしてもよい。即ち、制御手段は、圧縮第3データが存在する状態において上記の(3)で肯定的に判断された場合に、上記の(9)を実行させるとともに、上記の(5)で作成された第3データと上記の(9)で伸張された第3データとを含む新たな第3データについて上記の(6)を実行させてもよい。 The above control means may execute the following processing. That is, the control means causes the above (9) to be executed when the affirmative determination is made in the above (3) in the state where the compressed third data exists, and the control data created in the above (5). The above (6) may be executed for new third data including the three data and the third data expanded in the above (9).
上記の第1データは、例えば、ページ記述言語で記述されたデータ(例えばベクタデータ)であってもよい。また、上記の第2データは、例えば、ページ記述言語と異なる種類の言語で記述されたデータ(例えばベクタデータ)であってもよい。また、上記の第3データは、例えば、ビットマップデータであってもよい。この構成によると、ページ記述言語のデータを異なる種類の言語のデータに変換し、変換後のデータをビットマップデータに変換する処理において、メモリフルのエラーの発生を抑制することができる。なお、本明細書で使用する「ページ記述言語」という用語は、ページという概念を利用してデータを記述するためのあらゆる言語を含む概念である。ページ記述言語の例として、例えば、PDF(Portable document Format)、PS(Post Script)等を挙げることができる。また、ワープロソフト、表計算ソフト、描画ソフト等で利用されている言語の中でページという概念を利用してデータを記述する言語も、ページ記述言語と呼ぶことができる。なお、以下では、ページ記述言語のことをPDL(Page Description Language)と呼ぶことがある。また、この技術は、印刷用ビットマップデータを作成するための技術に限定されることはなく、表示用ビットマップデータを作成するための技術にも利用することができる。上記の「ビットマップデータ」は、多諧調ビットマップデータであってもよいし、印刷用ビットマップデータ(例えば「0」と「1」の二値)であってもよい。 The first data may be data (for example, vector data) described in a page description language, for example. The second data may be data (for example, vector data) described in a language different from the page description language, for example. Further, the third data may be bitmap data, for example. According to this configuration, it is possible to suppress the occurrence of a memory-full error in the process of converting page description language data into different types of language data and converting the converted data into bitmap data. Note that the term “page description language” used in this specification is a concept including all languages for describing data using the concept of a page. Examples of page description languages include PDF (Portable Document Format) and PS (Post Script). A language that describes data using the concept of a page among languages used in word processing software, spreadsheet software, drawing software, and the like can also be called a page description language. In the following, the page description language may be referred to as PDL (Page Description Language). Further, this technique is not limited to the technique for creating the printing bitmap data, and can also be used for the technique for creating the display bitmap data. The “bitmap data” may be multi-tone bitmap data, or may be print bitmap data (for example, binary of “0” and “1”).
なお、制御手段が、上記の(2)の判断を行なうために利用する第1データの単位は、特に限定されない。例えば、制御手段は、上記の(2)において、1ページ分の第1データの中に次のデータが存在するのか否かを判断してもよい。この場合、ページ単位で上記の(2)の判断が行なわれる。即ち、制御手段は、1ページ分のPDLのデータから上記の異なる言語のデータが作成された場合に、上記の(2)で肯定的に判断することになる。一方において、制御手段は、例えば、複数ページ単位(例えば2ページ単位)で上記の(2)の判断を行なってもよいし、所定量のデータサイズを単位として上記の(2)の判断を行なってもよい。 The unit of the first data used for the control means to make the above determination (2) is not particularly limited. For example, the control means may determine whether or not the next data exists in the first data for one page in (2) above. In this case, the above determination (2) is made for each page. That is, the control means makes an affirmative determination in the above (2) when the data in the different language is created from the PDL data for one page. On the other hand, for example, the control means may make the above determination (2) in units of a plurality of pages (for example, in units of two pages), or make the above determination (2) in units of a predetermined amount of data size. May be.
本明細書では、上記のデータ処理装置を実現するためのコンピュータプログラムも提供する。このコンピュータプログラムは、第1データから第2データを作成するための第1プログラムと、第2データから第3データを作成するための第2プログラムとを含んでいる。さらに、このコンピュータプログラムは、第1プログラムに従って第1データから第2データを作成する処理と、第2プログラムに従って第2データから第3データを作成する処理と、それらの両処理のためのメモリのメモリ管理を統括して実行する処理とを含む制御処理をコンピュータに実行させる。この制御処理では、上記の(1)〜(10)の処理が実行される。このコンピュータプログラムによると、二段階に亘ってデータを変換する処理においてメモリフルのエラーの発生を抑制することができるデータ処理装置を実現することができる。 The present specification also provides a computer program for realizing the above data processing apparatus. The computer program includes a first program for creating second data from the first data, and a second program for creating third data from the second data. Furthermore, the computer program includes a process for creating second data from the first data according to the first program, a process for creating third data from the second data according to the second program, and a memory for both of these processes. And causing the computer to execute control processing including processing that performs overall memory management. In this control process, the above processes (1) to (10) are executed. According to this computer program, it is possible to realize a data processing apparatus capable of suppressing the occurrence of a memory full error in the process of converting data in two stages.
ここでは、以下の実施例に記載の技術の特徴の一部をまとめておく。
(形態1)第1データは、複数のコマンドを含んでいてもよい。上記の(1)の処理では、第1データを構成するコマンドから第2データを作成してもよい。上記の(2)の処理では、第1データを構成する次のコマンドが存在するのか否かを判断してもよい。
(形態2)制御手段は、1ページ分の第1データから中間言語データが作成されたことを条件として、そのページのビットマップデータを作成することを開始してもよい。
(形態3)制御手段は、ビットマップデータをバンド単位で順に作成してもよい。「バンド」は、1ページより小さい単位である。即ち、1ページは、複数のバンドの集合である。制御手段は、先頭のバンドのビットマップデータを作成する第1処理と、次のバンドのビットマップデータを作成する第2処理とを実行し、1ページ分の全てのビットマップデータが作成されるまで上記の第2処理を繰り返す。
Here, some of the features of the techniques described in the following embodiments are summarized.
(Mode 1) The first data may include a plurality of commands. In the above process (1), the second data may be created from the command constituting the first data. In the process (2), it may be determined whether or not there is a next command constituting the first data.
(Mode 2) The control means may start creating bitmap data of the page on condition that intermediate language data is created from the first data for one page.
(Mode 3) The control means may sequentially create bitmap data in band units. A “band” is a unit smaller than one page. That is, one page is a set of a plurality of bands. The control means executes a first process for creating bitmap data for the first band and a second process for creating bitmap data for the next band, and all bitmap data for one page is created. The second process is repeated until the above.
(形態4)制御手段は、使用可能なメモリサイズを特定する処理を実行してもよい。
(形態5)制御手段は、第3データを記憶するためのメモリサイズを特定する処理を実行してもよい。
(形態6)制御手段は、第2データを記憶するためのメモリサイズを特定する処理を実行してもよい。
(形態7)制御手段は、形態4〜形態6のいずれかで特定されたメモリサイズに基づいて、上記の(3)の処理を実行してもよい。
(Mode 4) The control means may execute a process for specifying a usable memory size.
(Mode 5) The control means may execute processing for specifying a memory size for storing the third data.
(Mode 6) The control means may execute a process of specifying a memory size for storing the second data.
(Mode 7) The control means may execute the process (3) based on the memory size specified in any of Modes 4 to 6.
図面を参照して実施例を説明する。図1は、本実施例のプリンタネットワークシステム2を示す。プリンタネットワークシステム2は、プリンタ10とPC60とを備える。プリンタ10とPC60は、LAN回線70を介して相互に通信可能である。PC60は、データファイル群(図示省略)を記憶している。PC60は、ユーザの操作に応じて、データファイルを印刷するようにプリンタ10に指示することができる。この場合、PC60は、ユーザの指示に応じてデータファイルをPDLに変換し、PDLで記述されたデータファイルをプリンタ10に送信する。
Embodiments will be described with reference to the drawings. FIG. 1 shows a printer network system 2 of this embodiment. The printer network system 2 includes a printer 10 and a
(プリンタの構成)
図1では、プリンタ10の構成を簡単に示している。プリンタ10は、ネットワークインターフェイス12と、インターフェイス用バッファ13と、PDLデータ変換処理部14と、印刷部40等を有する。ネットワークインターフェイス12には、LAN回線70が接続されている。LAN回線70は、PC60に接続されている。プリンタ10は、ネットワークインターフェイス12とLAN回線70とを介してPC60と通信することができる。インターフェイス用バッファ13は、ネットワークインターフェイス12に入力されたデータを一時的に記憶するためのバッファである。
(Printer configuration)
FIG. 1 simply shows the configuration of the printer 10. The printer 10 includes a
PDLデータ変換処理部14は、制御部16と、プログラム記憶領域18と、共通メモリ28等を有する。制御部16は、プログラム記憶領域18に記憶されているプログラムに従って様々な処理を実行する。制御部16が実行する処理の内容については、後で詳しく説明する。プログラム記憶領域18は、中間言語データ作成プログラム20と、多値BMPデータ作成プログラム22と、メモリ管理プログラム24と、その他のプログラム26とを記憶している。
The PDL data
中間言語データ作成プログラム20は、PDLで記述されたデータ(以下では「PDLデータ」と呼ぶことがある)を中間言語で記述されたデータ(以下では「中間言語データ」と呼ぶことがある)に変換するためのプログラムである。中間言語データ作成プログラム20は、複数種類のPDLのそれぞれに対応するプログラムを含んでいる。例えば、中間言語データ作成プログラム20は、PDFで記述されたデータを中間言語データに変換するためのプログラムと、PSで記述されたデータを同じ中間言語データに変換するためのプログラムとを記憶している。また、本実施例の中間言語では、色を表現するためにCMYKを利用する。PDLデータにおいてRGBを利用して色が表現されている場合、中間言語に変換する際にCMYKに変換される。
The intermediate language
PDLデータから中間言語データを介してビットマップデータを作成する手法(以下では「前者の手法」と呼ぶ)は、PDLデータから直接的にビットマップデータを作成する手法(以下では「後者の手法」と呼ぶ)と比べて、以下の点において効果的である。多くのPDLは、同じタイプのデータを記述することができる。例えば、多くのPDLは、線型グラデーションやテキストを記述することができる。第1PDLと第2PDLのそれぞれによって同じ線型グラデーション(例えば左から右に向かって赤色から青色に変わっていくグラデーション)が記述されている場合を例として説明する。 A technique for creating bitmap data from PDL data via intermediate language data (hereinafter referred to as “the former technique”) is a technique for creating bitmap data directly from PDL data (hereinafter referred to as “the latter technique”). Is effective in the following respects. Many PDLs can describe the same type of data. For example, many PDLs can describe linear gradations and text. An example will be described in which the same linear gradation (for example, gradation changing from red to blue from left to right) is described by each of the first PDL and the second PDL.
上記の例の場合、後者の手法を採用するためには、第1PDLのフォーマットで記述された線型グラデーションのベクタデータからビットマップデータを作成するためのプログラムと、第2PDLのフォーマットで記述された線型グラデーションのベクタデータからビットマップデータを作成するためのプログラムとが必要になる。 In the case of the above example, in order to adopt the latter method, a program for creating bitmap data from linear gradation vector data described in the first PDL format and a linear type described in the second PDL format are used. A program for creating bitmap data from gradation vector data is required.
これに対し、上記の例の場合、前者の手法を採用すると、第1PDLの線型グラデーションのベクタデータから中間言語データが作成され、第2PDLの線型グラデーションのベクタデータから中間言語データ(ベクタデータ)が作成される。この場合、2つの中間言語データは同じになる。そうすると、この中間言語データをビットマップデータに変換するためのプログラムがあれば、第1PDLと第2PDLのどちらで記述された線型グラデーションであっても、ビットマップデータを作成することができる。即ち、前者の手法を採用するためには、第1PDLの線型グラデーションのベクタデータから中間言語データを作成するための第1プログラムと、第2PDLの線型グラデーションのベクタデータから中間言語データを作成するための第2プログラムと、その中間言語データからビットマップデータを作成するための第3プログラムとが必要になる。即ち、第1PDLと第2PDLを処理するためのプログラムにおいて、線型グラデーションのベクタデータからビットマップデータを作成するための第3プログラム(図1の例では多値BMPデータ作成プログラム22)を共通化することができる。確かに、後者の手法と比べると、上記の第1プログラムと第2プログラムが新たに必要になる。しかしながら、ベクタデータ(PDL)をベクタデータ(中間言語)に変換するためのプログラムは、それほど大きなプログラム量を必要としない。ベクタデータをビットマップデータに変換するためのプログラムの方が大きなプログラム量を要する。第1プログラムと第2プログラムが新たに必要にはなるが、第3プログラムを共通化することができるために、全体のプログラム量は後者の手法よりも少なくて済む。
On the other hand, in the case of the above example, if the former method is adopted, intermediate language data is created from the vector data of the linear gradation of the first PDL, and the intermediate language data (vector data) is generated from the vector data of the linear gradation of the second PDL. Created. In this case, the two intermediate language data are the same. Then, if there is a program for converting this intermediate language data into bitmap data, bitmap data can be created for any linear gradation described in either the first PDL or the second PDL. That is, in order to adopt the former method, in order to create intermediate language data from the first PDL linear gradation vector data and the first PDL linear gradation vector data and second PDL linear gradation vector data. And a third program for creating bitmap data from the intermediate language data. That is, in the program for processing the first PDL and the second PDL, the third program (multi-valued BMP
多値BMPデータ作成プログラム22は、中間言語データを多諧調(本実施例ではCMYKの256階調)のビットマップデータに変換するためのプログラムである。なお、以下では、多諧調のビットマップデータのことを「多値BMPデータ」と呼ぶことがある。本実施例では、PDLデータから中間言語データを作成する処理と、中間言語データから多値BMPデータを作成する処理との両方において、共通メモリ28が使用される。これらの両処理で利用される共通メモリ28を管理するために、メモリ管理プログラム24が用意されている。即ち、メモリ管理プログラム24は、上記の両処理のメモリ管理を統括して実行するためのプログラムである。共通メモリ28を利用して上記の両処理がどのようにして実行されるのかについては、後で詳しく説明する。プログラム26は、PDLデータ変換処理において必要な他の処理を実行するためのプログラムである。
The multi-value BMP
印刷部40は、プログラム記憶領域42と、バッファ48と、バンドメモリ50と、印刷機構52等を有する。なお、本実施例では、PDLデータ変換処理部14の制御部16が、印刷部40の制御部を兼用している。即ち、プログラム記憶領域42に記憶されているプログラム44,46に従って制御部16が処理を実行する。しかしながら、PDLデータ変換処理部14の制御部16とは別の専用の制御部を印刷部40に設けてもよい。
The
プログラム記憶領域42は、二値BMPデータ作成プログラム44と、その他のプログラム46とを記憶している。二値BMPデータ作成プログラム44は、PDLデータ変換処理部14で作成された多値BMPデータから印刷用の低階調(本実施例では「0」と「1」の二階調)のビットマップデータを作成するためのプログラムである。なお、以下では、印刷用のビットマップデータのことを「二値BMPデータ」と呼ぶことがある。プログラム46は、印刷処理において必要な他の処理を実行するためのプログラム(例えば印刷機構52を制御するためのプログラム)である。
The
バッファ48は、PDLデータ変換処理部14から送信された多値BMPデータを一時的に記憶するためのバッファである。バンドメモリ50は、少なくとも1バンド分の二値BMPデータを記憶するためのメモリである。「バンド」について簡単に説明しておく。PC60から印刷するように指示された全てのPDLデータに対応する多値BMPデータを作成し、その後に全ての多値BMPデータから全ての二値BMPデータを作成し、その後に印刷を開始するという手法が考えられる。しかしながら、この場合、全てのPDLデータに対応する多値BMPデータ及び二値BMPデータを記憶するための大容量のメモリが必要になる。本実施例のプリンタ10は、多値BMPデータ及び二値BMPデータを記憶するためのメモリ容量を圧縮するために、「バンド」という概念を用いて多値BMPデータ及び二値BMPデータを少しずつ作成して順に印刷する手法を採用する。本実施例では、1つのバンドのバンド幅は、例えば、インクジェットヘッドが1回の走査によって印刷することが可能である範囲(1ページより少ない範囲)に基づいて設定される。
The
詳しくは後述するが、本実施例では、PDLデータ変換処理部14は、1ページ分のPDLデータから1ページ分の中間言語データを作成する。PDLデータ変換処理部14は、1ページ分の中間言語データからページの先頭の1バンド分の多値BMPデータを作成する。1バンド分の多値BMPデータは、PDLデータ変換処理部14から印刷部40に送信される。PDLデータ変換処理部14は、送信された多値BMPデータを削除する。PDLデータ変換処理部14は、これらの処理をバンド単位で繰り返す。例えば、PDLデータ変換処理部14は、1バンド分の多値BMPデータを作成し、それを全て送信し終えてから多値BMPデータを削除し、その後に次のバンドの多値BMPデータを作成してもよい。この場合、PDLデータ変換処理部14は、1バンド分のメモリサイズを共通メモリ28に確保すれば足りる。しかしながら、本実施例では、PDLデータ変換処理部14は、1バンド分の多値BMPデータを印刷部40に送信している間に、次のバンドの多値BMPデータを作成することを開始する。これにより、多値BMPデータを高速で作成して印刷部40に提供することを実現している。この処理を実行する場合、PDLデータ変換処理部14は、少なくとも2バンド分の多値BMPデータを記憶するためのメモリサイズを共通メモリ28に確保する必要がある。1バンド分の多値BMPデータを削除する前に、次のバンドの多値BMPデータを作成することを開始するからである。
As will be described in detail later, in this embodiment, the PDL data
印刷部40は、PDLデータ変換処理部14から送信された1バンド分の多値BMPデータを受信する。印刷部40は、1バンド分の多値BMPデータから1バンド分の二値BMPデータを作成する。印刷部40は、1バンド分の二値BMPデータに従って印刷する。印刷部40は、印刷が終了した二値BMPデータを削除する。例えば、印刷部40は、1バンド分の二値BMPデータを作成し、それを全て印刷し終えてから二値BMPデータを削除し、その後に次のバンドの二値BMPデータを作成してもよい。この場合、バンドメモリ50は、1バンド分のメモリサイズがあれば足りる。しかしながら、本実施例では、印刷部40は、1バンド分の二値BMPデータに従って印刷している間に、次のバンドの二値BMPデータを作成することを開始する。これにより、高速で印刷することを実現している。この処理を実行する場合、バンドメモリ50は、少なくとも2バンド分のBMPデータを記憶するためのメモリサイズが必要である。1バンド分の二値BMPデータを削除する前に、次のバンドの二値BMPデータを作成することを開始するからである。
The
印刷機構52は、印刷媒体を搬送するための機構と、印刷媒体に印刷するための機構(例えばインクジェットタイプやレーザタイプの印刷機構)とを有する。制御部16は、プログラム記憶領域42に記憶されているプログラム46とバンドメモリ50の記憶内容に従って、印刷機構52の駆動制御を実行する。
The
(PDLデータ変換処理)
続いて、制御部16が実行するPDLデータ変換処理の内容について説明する。制御部16は、プログラム20,22,24,26に従ってPDLデータ変換処理を実行する。図2〜図4は、PDLデータ変換処理のフローチャートを示す。PDLデータ変換処理は、PC60からの印刷指示及びPDLデータがネットワークインターフェイス12に入力されたことをトリガとして開始される。ネットワークインターフェイス12に入力されたPDLデータは、インターフェイス用バッファ13に格納される。インターフェイス用バッファ13は、PC60からの全てのPDLデータを同時に記憶することができる程度の大きなメモリサイズを有している必要はなく、少ないメモリサイズを有している。制御部16は、インターフェイス用バッファ13に格納されたPDLデータに対して後述の処理を実行するとPDLデータを削除し、その後に次のPDLデータをPC60からダウンロードすることを繰り返す。
(PDL data conversion process)
Next, the contents of the PDL data conversion process executed by the
まず、制御部16は、共通メモリ28の中の使用可能なメモリサイズを特定する(S10)。次いで、制御部16は、多値BMPデータを作成するために必要なメモリサイズ(以下では「多値BMPデータ用メモリサイズ」と呼ぶことがある)を特定する(S12)。本実施例のS12の処理では、制御部16は、2バンド分の多値BMPデータを作成するために必要なメモリサイズを特定する。しかしながら、制御部16は、2バンド分以上の多値BMPデータを作成するために必要なメモリサイズを特定してもよい。なお、S10で使用可能なメモリサイズを特定するとともにS12で多値BMPデータ用メモリサイズを特定するということは、「PDLデータから中間言語を作成するための処理で使用可能なメモリサイズ(以下では「中間言語データ用メモリサイズ」と呼ぶことがある)を特定する」と言うこともできる。
First, the
次いで、制御部16は、処理対象ページPNとして「1」を特定する(S14)。即ち、1ページ目のPDLデータに基づいて以下の各処理を実行する。制御部16は、処理対象ページ(現段階では1ページ目)のPDLデータがインターフェイス用バッファ13に存在するのか否かを判断する(S16)。ここでNOの場合、図4のS50に進む。一方において、ここでYESの場合、S18に進む。
Next, the
実際のPDLデータは、複数のコマンド(ベクタデータ)によって構成される。1ページ分のPDLデータの中にも複数のコマンドが含まれている。図5は、PDLデータ100の構成を簡単に示す。PDLデータ100は、複数ページ分のデータを含んでいる。第1ページは、複数のコマンドCP1,CP2,CP3、・・・CPnによって構成されている(図5においてはCP1〜CP3のみを記載している)。即ち、第1ページの先頭のコマンドがCP1であり、2番目のコマンドがCP2であり、3番目のコマンドがCP3である。同様に、第2ページ以降も、複数のコマンド(図示省略)によって構成されている。以下の各処理は、1つのコマンドを単位として実行される。即ち、図5の例の場合、コマンドCP1についてS18以降の処理が実行され、次いでコマンドCP2についてS18以降の処理が実行される。第1ページに含まれる最後のコマンドCP3についてS18以降の処理が実行されるまで、このルーチンが繰り返される。 Actual PDL data is composed of a plurality of commands (vector data). A plurality of commands are also included in one page of PDL data. FIG. 5 simply shows the structure of the PDL data 100. The PDL data 100 includes data for a plurality of pages. The first page includes a plurality of commands CP1, CP2, CP3,... CPn (only CP1 to CP3 are shown in FIG. 5). That is, the first command on the first page is CP1, the second command is CP2, and the third command is CP3. Similarly, the second and subsequent pages are also composed of a plurality of commands (not shown). The following processes are executed in units of one command. That is, in the case of the example of FIG. 5, the process after S18 is executed for the command CP1, and then the process after S18 is executed for the command CP2. This routine is repeated until the processes after S18 are executed for the last command CP3 included in the first page.
S18では、制御部16は、インターフェイス用バッファ13に格納されているPDLデータの1つのコマンド(現段階ではコマンドCP1)のデータサイズに基づいて、そのコマンドを中間言語に変換したら多値BMPデータ用のメモリサイズを圧迫してしまうのか否かを判断する。具体的には、以下の処理を行なって判断する。
In S18, the
まず、制御部16は、PDLデータのコマンドのデータサイズを特定する。制御部16は、特定されたデータサイズに基づいて、コマンドから作成されるべき中間言語データのデータサイズを特定する。本実施例では、制御部16は、コマンドのデータサイズと、コマンドから作成されるべき中間言語データのデータサイズとが等しくなるものと推定して、中間言語データのデータサイズを特定する。例えば、コマンドCP1のデータサイズが「XXバイト」である場合、制御部16は、中間言語データのデータサイズとして「XXバイト」を特定する。なお、制御部16は、上記と異なる手法を利用して、PDLデータのコマンドから作成されるべき中間言語データのデータサイズを特定してもよい。例えば、プリンタ10は、PDLデータの各コマンドについて、当該コマンドから作成されるべき中間言語データのデータサイズを記憶していてもよい。この場合、制御部16は、上記の記憶内容を読み込むことによって中間言語データのデータサイズを特定してもよい。また、例えば、プリンタ10は、PDLデータのコマンドのデータサイズに乗算するべき比率を記憶しておいてもよい。この場合、制御部16は、PDLデータのコマンドのデータサイズに上記の比率を乗算することによって、中間言語データのデータサイズを特定してもよい。
First, the
次いで、制御部16は、上記のようにして特定されたデータサイズと、共通メモリ28内に存在する中間言語データのデータサイズとの和(以下では「合計データサイズ」と呼ぶ)とを算出する。例えば、図5のPDLデータ100のコマンドCP1について本処理が実行されている場合、共通メモリ28内に中間言語データは存在しない。この場合、コマンドCP1から作成されるべき中間言語データのデータサイズが上記の合計データサイズになる。続いて、制御部16は、上記の合計データサイズが中間言語データ用メモリサイズ(S10で特定された使用可能なメモリサイズからS12で特定された多値BMP用データサイズを減算した値)を超えるのか否かを判断する。これにより、S18の処理が実行される。なお、S18の処理を実行するための手法は、上記の手法に限られない。他の手法を採用することができる。他の手法については、後で述べる。
Next, the
図6は、共通メモリ28を概略的に示す。符号120は、S10で特定された使用可能なメモリサイズを示す。符号130は、S12で特定された多値BMPデータ用のメモリサイズを示す。符号140は、中間言語データ用メモリサイズを示す。上記のS18の処理では、PDLデータ100のコマンド(現時点ではCP1)を中間言語データに変換したら中間言語データの合計データサイズが中間言語データ用のメモリサイズ140を超えてしまうのか否かを判断する。ここでNOと判断された場合、S20に進む。
FIG. 6 schematically shows the
S20では、制御部16は、PDLデータ100のコマンドCP1から作成されるべき中間言語データのデータサイズを共通メモリ28内に確保する。次いで、制御部16は、中間言語データ作成プログラム20に従って、PDLデータ100のコマンドCP1を中間言語データに変換する(S22)。制御部16は、この中間言語データを共通メモリ28に書き込む。図7は、コマンドCP1から作成された中間言語データCM1が共通メモリ28に格納されている様子を示す。
In S <b> 20, the
続いて、制御部16は、S16に戻って次のコマンドCP2を読み込む。次いで、制御部16は、コマンドCP2を中間言語に変換したら多値BMPデータ用のメモリサイズ130を圧迫してしまうのか否かを判断する(S18)。図7に示すように、コマンドCP2から作成されるべき中間言語データCM2を共通メモリ28に書き込むと、合計データサイズが中間言語データ用メモリサイズ140を超えてしまう。この場合、制御部16は、S18でYESと判断し、図3のS30に進む。
Subsequently, the
S30では、制御部16は、共通メモリ28内に圧縮された多値BMPデータ(以下では「圧縮多値BMPデータ」と呼ぶことがある)が存在するのか否かを判断する。コマンドCP2を処理する時点では、圧縮多値BMPデータは存在しない。この場合、制御部16は、S30でNOと判断し、S32をスキップし、S34に進む。S34では、制御部16は、多値BMPデータ作成プログラム22に従って、中間言語データCM1を多値BMPデータに変換する。制御部16は、この多値BMPデータを共通メモリ28に書き込む。図8は、中間言語データCM1から作成された多値BMPデータCB1が共通メモリ28に格納されている様子を示す。
In S <b> 30, the
次いで、制御部16は、S34で作成された多値BMPデータCB1を圧縮することによって、圧縮多値BMPデータCB1’を作成する(S36)。図9は、圧縮多値BMPデータCB1’が共通メモリ28に格納されている様子を示す。続いて、制御部16は、中間言語データCM1を共通メモリ28から削除する(S38)。この場合、図9に示されるように、中間言語データCM1を格納していた部分が開放される。S38を終えると、制御部16は、図2のS20及びS22を実行する。これにより、コマンドCP2から中間言語データCM2に変換され、中間言語データCM2が共通メモリ28に書き込まれる。図10は、中間言語データCM2が共通メモリ28に格納されている様子を示す。
Next, the
続いて、制御部16は、S16に戻って次のコマンドCP3を読み込む。次いで、制御部16は、コマンドCP3を中間言語に変換したら多値BMPデータ用のメモリサイズ130を圧迫してしまうのか否かを判断する(S18)。図10に示すように、コマンドCP3から作成されるべき中間言語データCM3を共通メモリ28に書き込むと、合計データサイズ(CM2とCM3の合計データサイズ)が中間言語データ用メモリサイズ140を超えてしまう。この場合、制御部16は、S18でYESと判断し、図3のS30に進む。なお、S18の判断処理は、圧縮多値BMPデータCB1’を考慮して実行してもよい。即ち、制御部16は、CM2とCM3の合計データサイズと圧縮多値BMPデータCB1’のデータサイズとの和が、中間言語データ用メモリサイズ140を超えるのか否かを判断してもよい。即ち、この場合、共通メモリ28内のフリーのメモリサイズが多値BMPデータ用メモリサイズ130以下になるのか否かを判断することに等しい。
Subsequently, the
圧縮多値BMPデータCB1’が存在するために、制御部16は、S30でYESと判断する。この場合、制御部16は、圧縮多値BMPデータCB1’を伸張することによって、多値BMPデータCB1を作成する(S32)。図11は、多値BMPデータCB1が共通メモリ28に格納されている様子を示す。次いで、制御部16は、中間言語データCM2を多値BMPデータCB2に変換する(S34)。なお、図11に示されるように、本実施例では、多値BMPデータCB2を作成すると、多値BMPデータの合計データサイズ(CB1とCB2の合計データサイズ)が多値BMPデータ用メモリサイズ130を超えてしまう。しかしながら、中間言語データ用メモリサイズ140が余っているために、その部分も利用しながら多値BMPデータを作成する。即ち、この時点でメモリフルのエラーにならない。S34を実行することによって、多値BMPデータCB1と多値BMPデータCB2とから新たな多値BMPデータCB1,CB2が作成される。
Since the compressed multilevel BMP data CB1 'exists, the
次いで、制御部16は、S34で作成された多値BMPデータCB1,CB2を圧縮することによって、圧縮多値BMPデータCB1’+CB2’を作成する(S36)。図12は、圧縮多値BMPデータCB1’+CB2’が共通メモリ28に格納されている様子を示す。次いで、制御部16は、中間言語データCM2を共通メモリ28から削除する(S38)。S38を終えると、制御部16は、図2のS20及びS22を実行する。これにより、コマンドCP3から中間言語データCM3に変換され、中間言語データCM3が共通メモリ28に書き込まれる。図12は、中間言語データCM3が共通メモリ28に格納されている様子を示す。
Next, the
図5のPDLデータ100のコマンドCP1,CP2,CP3についてS18以降の処理が実行されると、制御部16は、S16でNOと判断する。この場合、図4のS50に進む。S50では、制御部16は、処理対象バンドBNとして「1」を特定する(S50)。制御部16は、処理対象バンド(現時点では「1」)に含まれる圧縮多値BMPデータが共通メモリ28に存在するのか否かを判断する(S52)。例えば、図12に示される圧縮多値BMPデータCB1’+CB2’が処理対象バンドに含まれる場合、制御部16は、S52でYESと判断し、S54に進む。S54では、制御部16は、圧縮多値BMPデータCB1’+CB2’を伸張することによって、多値BMPデータCB1+CB2を作成する。多値BMPデータCB1+CB2は、共通メモリ28に書き込まれる。
When the processes after S18 are executed for the commands CP1, CP2, and CP3 of the PDL data 100 in FIG. 5, the
次いで、制御部16は、処理対象バンド(現時点では「1」)に含まれる中間言語データが共通メモリ28に存在するのか否かを判断する(S56)。例えば、図12に示される中間言語データCM3が処理対象バンドに含まれる場合、制御部16は、S56でYESと判断し、S58に進む。S58では、制御部16は、中間言語データCM3を多値BMPデータCB3に変換する。多値BMPデータCB3は、共通メモリ28に書き込まれる。これにより、上記の多値BMPデータCB1+CB2と多値BMPデータCB3とから新たな多値BMPデータが作成される。制御部16は、多値BMPデータに変換された中間言語データCM3を共通メモリ28から削除する(S60)。
Next, the
続いて、制御部16は、処理対象バンド(現時点では「1」)の多値BMPデータを印刷部40に送信する(S62)。これにより、印刷部40(制御部16)は、処理対象バンドの多値BMPデータから二値BMPデータを作成し、その二値BMPデータに従って印刷を開始する。制御部16は、S62で多値BMPデータの送信を開始するとすぐにS64以降の処理を実行する。まず、制御部16は、処理対象バンドBNをインクリメントする(S64)。現時点では、処理対象バンドBNが「2」になる。次いで、制御部16は、処理対象バンドBNが1ページの最終バンドを超えたのか否かを判断する(S66)。ここでNOの場合、制御部16は、S52以降の処理を繰り返す。なお、制御部16は、S62で1バンド分の多値BMPデータが送信された後に、その多値BMPデータを共通メモリ28から削除する。
Subsequently, the
一方において、S66でYESの場合、即ち、1ページ分の全てのバンドについて処理を終えた場合、制御部16は、処理対象ページPN(現時点では「1」)の次のページのPDLデータがインターフェイス用バッファ13に存在するのか否かを判断する(S68)。例えば、図5のPDL100の場合、第2ページ以降が存在する。この場合、制御部16は、S68でYESと判断し、処理対象ページPNをインクリメントする(S70)。現時点では、処理対象ページPNが「2」になる。次いで、制御部16は、S18に戻って、2ページ目以降について同様に処理を実行する。
On the other hand, in the case of YES in S66, that is, when the processing for all the bands for one page is completed, the
上記のプリンタ10は、中間言語データ作成プログラム20と多値BMPデータ作成プログラム22のそれぞれの処理のメモリ管理を統括的に実行する。メモリを効率的に利用しながら二段階に亘ってデータを変換することができる。仮に、メモリ管理を個別に行なうと、各プログラム20,22の処理のためにメモリを分配する必要がある。この場合、例えば、図11に示すように、中間言語データ用メモリサイズ140ではメモリが余っているにもかかわらず、多値BMPデータ用メモリサイズ130がフルになると、その時点でエラーになってしまう。これに対し、本実施例のプリンタ10のように各プログラム20,22の処理のためのメモリ管理を統括的に実行すると、各プログラム20,22の処理で共通メモリ28を共用することができる。このために、メモリの一部が余っているにもかかわらずメモリフルのエラーが生じてしまうという事象が発生することを避けることができる。本実施例によると、二段階に亘ってデータを変換する処理においてメモリフルのエラーの発生を抑制することができる。
The printer 10 performs overall memory management of the intermediate language
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。上記の実施例の変形例を以下に列挙する。 Specific examples of the present invention have been described in detail above, but these are merely examples and do not limit the scope of the claims. The technology described in the claims includes various modifications and changes of the specific examples illustrated above. The modifications of the above embodiment are listed below.
(1)上述したように、図2のS18の判断処理の手法は様々である。以下の各手法を採用してもよい。例えば、図2のS10において使用可能なメモリサイズとして10000キロバイトが特定され、図2のS12において多値BMPデータ用メモリサイズとして2000キロバイトが特定されたものとする(即ち中間言語データ用及びその他で使用可能なメモリサイズは8000キロバイトである)。この例に基づいて、各手法について説明する。 (1) As described above, there are various methods for the determination process in S18 of FIG. The following methods may be employed. For example, 10000 kilobytes is specified as the usable memory size in S10 of FIG. 2, and 2000 kilobytes is specified as the memory size for multi-level BMP data in S12 of FIG. 2 (that is, for intermediate language data and others). The available memory size is 8000 kilobytes). Based on this example, each method will be described.
(1−1)上記の(1)の例において、7000キロバイトの中間言語データのみが共通メモリ28に存在し、PDLデータの次のコマンドから中間言語データが作成されたら中間言語データの合計データサイズが9000キロバイトになる場合、制御部16は、S18でYESと判断してもよい。即ち、この例の場合、中間言語データの合計データサイズ(9000キロバイト)と中間言語データ用メモリサイズ(8000キロバイト)とを比較することによって、S18の処理を実行することになる。これが上記の実施例の手法である。
(1-1) In the above example (1), only 7000 kilobytes of intermediate language data exists in the
(1−2)上記の(1)の例において、6000キロバイトの中間言語データと1000キロバイトの圧縮多値BMPデータとが共通メモリ28に存在し、次のコマンドから中間言語データが作成されたら中間言語データの合計データサイズが7500キロバイトになる場合、制御部16は、S18でNOと判断してもよい。中間言語データの合計データサイズが7500キロバイトであり、中間言語データ用メモリサイズ(8000キロバイト)を超えないからである。この例の場合、中間言語データの合計データサイズ(7500キロバイト)と中間言語データ用メモリサイズ(8000キロバイト)とを比較することによって、S18の処理を実行することになる。これも上記の実施例の手法である。
(1-2) In the example of (1) above, 6000 kilobytes of intermediate language data and 1000 kilobytes of compressed multi-level BMP data exist in the
(1−3)一方において、上記の(1−2)の例において、制御部16は、S18でYESと判断してもよい。中間言語データの合計データサイズ(7500キロバイト)と圧縮多値BMPデータのデータサイズ(1000キロバイト)との和が8500キロバイトであり、中間言語データ用メモリサイズ(8000キロバイト)を超えるからである。即ち、この例の場合、中間言語データの合計データサイズ(7500キロバイト)と、中間言語データ用メモリサイズ(8000キロバイト)から圧縮多値BMPデータのデータサイズ(1000キロバイト)が減算された値(7000キロ)とを比較することによって、S18の処理を実行することになる。
(1-3) On the other hand, in the example of (1-2) above, the
(1−4)また、上記の(1)の例において、5000キロバイトの中間言語データと他の処理で作成された1000キロバイトの他処理データと1000キロバイトの圧縮多値BMPデータとが共通メモリ28に存在し、次のコマンドから中間言語データが作成されたら中間言語データの合計データサイズが6500キロバイトになる場合、制御部16は、S18でNOと判断してもよい。この例の場合、中間言語データの合計データサイズ(6500キロバイト)と中間言語データ用メモリサイズ(8000キロバイト)とを比較することによって、S18の処理を実行することになる。これは、上記の(1−2)と同様の手法である。
(1-4) In the example of (1) above, 5000 kilobytes of intermediate language data, 1000 kilobytes of other processing data created by other processing, and 1000 kilobytes of compressed multilevel BMP data are shared
(1−5)一方において、上記の(1−4)の例において、制御部16は、S18でYESと判断してもよい。中間言語データの合計データサイズ(6500キロバイト)と上記の他処理データのデータサイズ(1000キロバイト)と圧縮多値BMPデータのデータサイズ(1000キロバイト)との和が8500キロバイトであり、中間言語データ用メモリサイズ(8000キロバイト)を超えるからである。即ち、この例の場合、中間言語データの合計データサイズ(6500キロバイト)と、中間言語データ用メモリサイズ(8000キロバイト)から上記の他処理データ及び圧縮多値BMPデータのデータサイズ(1000+1000キロバイト)が減算された値(6000キロ)とを比較することによって、S18の処理を実行することになる。なお、メモリ容量が不足する場合、上記の他処理データにより占有されているメモリを開放する構成を採用することもできる。
(1-5) On the other hand, in the example of (1-4) above, the
上記の(1−1)〜(1−5)のいずれの手法であっても、PDLデータの次のコマンドから中間言語データが作成されたら中間言語データの合計データサイズが第1所定値以上になるのか否かを判断することになる。即ち、上記の(1−1)、(1−2)、及び、(1−4)では、上記の第1所定値が8000キロバイトである。上記の(1−3)では、上記の第1所定値が7000キロバイトである。上記の(1−5)では、上記の第1所定値が6000キロバイトである。 In any of the above methods (1-1) to (1-5), if the intermediate language data is created from the next command of the PDL data, the total data size of the intermediate language data exceeds the first predetermined value. It will be judged whether or not. That is, in the above (1-1), (1-2), and (1-4), the first predetermined value is 8000 kilobytes. In the above (1-3), the first predetermined value is 7000 kilobytes. In the above (1-5), the first predetermined value is 6000 kilobytes.
なお、上記の(1−3)及び(1−5)の手法は、PDLデータの次のコマンドから中間言語データが作成されたら中間言語データの合計データサイズが増加することに起因して、共通メモリ内の残存メモリサイズが第2所定値以下になるのか否か判断することに等しい。即ち、上記の(1−3)では、上記の残存メモリサイズが1500キロバイト(10000−7500−1000)になり、上記の第2所定値が2000キロバイト(多値BMPデータ用メモリサイズ)になる。また、上記の(1−5)でも、上記の残存メモリサイズが1500キロバイトになり(10000−6500−1000−1000)、上記の第2所定値が2000キロバイトになる。 Note that the above methods (1-3) and (1-5) are common because the total data size of the intermediate language data increases when the intermediate language data is created from the next command of the PDL data. This is equivalent to determining whether the remaining memory size in the memory is equal to or smaller than the second predetermined value. That is, in the above (1-3), the remaining memory size is 1500 kilobytes (10000-7500-1000), and the second predetermined value is 2000 kilobytes (memory size for multi-level BMP data). In the above (1-5), the remaining memory size is 1500 kilobytes (10000-6500-1000-1000), and the second predetermined value is 2000 kilobytes.
(2)上記の実施例では、プリンタ10は、中間言語データから多値BMPデータを作成し、多値BMPデータから二値BMPデータを作成する。しかしながら、プリンタ10は、中間言語データから直接的に二値BMPデータを作成してもよい。この場合、図2〜図4の各処理において、二値BMPデータが作成されることになる。 (2) In the above embodiment, the printer 10 creates multilevel BMP data from the intermediate language data, and creates binary BMP data from the multilevel BMP data. However, the printer 10 may create binary BMP data directly from the intermediate language data. In this case, binary BMP data is created in each process of FIGS.
(3)また、上記の実施例では、プリンタ10は、PDLデータから中間言語データを作成し、中間言語データからBMPデータを作成する。しかしながら、上記の実施例の技術は、二段階に亘ってデータを変換するあらゆる技術に適用することができる。例えば、PDLデータから所定種類のPDLデータ(例えばPDF)を作成し、その所定種類のPDLデータからBMPデータを作成する技術にも適用することができる。 (3) In the above embodiment, the printer 10 creates intermediate language data from PDL data, and creates BMP data from the intermediate language data. However, the technique of the above embodiment can be applied to any technique that converts data in two stages. For example, the present invention can also be applied to a technique for creating a predetermined type of PDL data (for example, PDF) from PDL data and creating BMP data from the predetermined type of PDL data.
(4)上記の実施例では、多値BMPデータをバンド単位で作成するとともに、二値BMPデータをバンド単位で作成する(バンドメモリ50を利用する)。これに代えて、PDLデータ変換処理部14は、1ページ分の多値BMPデータを作成した後に、多値BMPデータを印刷部40に送信するようにしてもよい。この場合、印刷部40は、バンドメモリ50に代えて、少なくとも1ページ分の二値BMPデータを記憶することができるページメモリを利用する。
(4) In the above embodiment, multi-value BMP data is created in band units, and binary BMP data is created in band units (using the band memory 50). Instead of this, the PDL data
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。 The technical elements described in this specification or the drawings exhibit technical usefulness alone or in various combinations, and are not limited to the combinations described in the claims at the time of filing. In addition, the technology illustrated in the present specification or the drawings achieves a plurality of objects at the same time, and has technical utility by achieving one of the objects.
10:プリンタ
12:ネットワークインターフェイス
13:インターフェイス用バッファ
14:PDLデータ変換処理部
16:制御部
18:プログラム記憶領域
20:中間言語データ作成プログラム
22:多値BMPデータ作成プログラム
24:メモリ管理プログラム
28:共通メモリ
40:印刷部
42:プログラム記憶領域
44:二値BMPデータ作成プログラム
48:バッファ
50:バンドメモリ
52:印刷機構
70:LAN回線
100:PDLデータ
120:使用可能なメモリサイズ
130:多値BMPデータ用メモリサイズ
140:中間言語データ用メモリサイズ
CP1,CP2,CP3:PDLデータのコマンド
CM1,CM2,CM3:中間言語データ
CB1,CB2,CB3:多値BMPデータ
CB1’,CB2’,CB3’:圧縮多値BMPデータ
10: Printer 12: Network interface 13: Interface buffer 14: PDL data conversion processing unit 16: Control unit 18: Program storage area 20: Intermediate language data creation program 22: Multi-level BMP data creation program 24: Memory management program 28: Common memory 40: Printing unit 42: Program storage area 44: Binary BMP data creation program 48: Buffer 50: Band memory 52: Printing mechanism 70: LAN line 100: PDL data 120: Usable memory size 130: Multi-value BMP Data memory size 140: Intermediate language data memory size CP1, CP2, CP3: PDL data commands CM1, CM2, CM3: Intermediate language data CB1, CB2, CB3: Multi-valued BMP data CB1 ′, CB2 ′, CB3 ′: Pressure Multilevel BMP data
Claims (4)
前記第1データを入力する第1データ入力手段と、
前記第1データに含まれる複数個の部分第1データから前記第2データに含まれる複数個の部分第2データを順次作成するための第1プログラムを記憶している第1プログラム記憶手段と、
前記第2データに含まれる前記複数個の部分第2データから前記第3データを作成するための第2プログラムを記憶している第2プログラム記憶手段と、
前記第2データと前記第3データの両方を格納するために利用されるメモリと、
前記第1プログラムに従って処理を実行することが可能であり、前記第2プログラムに従って処理を実行することが可能であり、それらの両処理のためのメモリ管理を統括して実行する制御手段とを備え、
前記制御手段は、
前記メモリ内の使用可能メモリサイズよりも小さいメモリサイズであって、前記第2データの作成に使用されるべき前記メモリサイズである所定値を特定し、
前記複数個の部分第1データのうちの処理対象の部分第1データを処理すべき毎に、仮に、当該処理対象の部分第1データから1個の部分第2データを前記メモリ内に作成したら、前記1個の部分第2データを含む前記メモリ内の2個以上の部分第2データの合計データサイズが、前記所定値以上になるのか否かを判断し、
前記合計データサイズが前記所定値以上にならないと判断される場合に、前記処理対象の部分第1データから前記1個の部分第2データを前記メモリ内に作成し、
前記合計データサイズが前記所定値以上になると判断される場合において、前記メモリ内に圧縮状態の第3データが存在しない場合に、
(A1)前記メモリ内のM個(前記Mは1以上の整数)の部分第2データから前記第3データを前記メモリ内に作成し、
(A2)前記メモリ内の前記第3データを圧縮して、前記圧縮状態の第3データを前記メモリ内に作成し、
(A3)前記M個の部分第2データを前記メモリから削除し、
前記合計データサイズが前記所定値以上になると判断される場合において、前記メモリ内に前記圧縮状態の第3データが存在する場合に、
(B1)前記圧縮状態の第3データを伸張して、伸張状態の第3データを前記メモリ内に作成し、
(B2)前記メモリ内のN個(前記Nは1以上の整数)の部分第2データと、前記メモリ内の前記伸張状態の第3データと、から、新たな第3データを前記メモリ内に作成し、
(B3)前記メモリ内の前記新たな第3データを圧縮して、新たな圧縮状態の第3データを前記メモリ内に作成し、
(B4)前記N個の部分第2データを前記メモリから削除し、
前記制御手段は、前記メモリ内の前記第3データの合計データサイズが、前記使用可能メモリサイズから前記所定値が減算された値よりも大きくなるのか否かに関わらず、前記(B2)を実行する、
ことを特徴とするデータ処理装置。 From the first data to create a second data, a data processing device for creating a third data from the second data,
A first data input means for inputting said first data,
A first program storage means for storing a first program for sequentially creating a plurality of partial second data from a plurality of partial first data included in the second data contained in the first data,
A second program storage means for storing a second program for creating the third data from said plurality of partial second data contained in the second data,
A memory used to store both the third data and said second data,
It is possible to execute processing in accordance with the first program, it is possible to execute processing in accordance with the second program, and a control unit which centrally executes memory management for those two processes ,
The control means includes
Specifying a predetermined value which is a memory size smaller than an available memory size in the memory and is the memory size to be used for creating the second data;
Each time the partial first data to be processed of the plurality of partial first data is to be processed, one partial second data is created in the memory from the partial first data to be processed. Determining whether a total data size of two or more partial second data in the memory including the one partial second data is equal to or larger than the predetermined value;
When it is determined that the total data size does not exceed the predetermined value, the one partial second data is created in the memory from the partial first data to be processed,
When it is determined that the total data size is equal to or greater than the predetermined value, when there is no compressed third data in the memory,
(A1) Create the third data in the memory from M partial data (where M is an integer equal to or greater than 1) in the memory,
(A2) compressing the third data in the memory to create the compressed third data in the memory;
(A3) deleting the M partial second data from the memory;
When it is determined that the total data size is equal to or greater than the predetermined value, when the compressed third data exists in the memory,
(B1) Decompressing the compressed third data to create the decompressed third data in the memory;
(B2) New third data is stored in the memory from N partial second data (where N is an integer equal to or greater than 1) in the memory and the third data in the expanded state in the memory. make,
(B3) compressing the new third data in the memory to create new compressed third data in the memory;
(B4) deleting the N partial second data from the memory;
The control means executes (B2) regardless of whether or not the total data size of the third data in the memory is larger than a value obtained by subtracting the predetermined value from the usable memory size. To
A data processing apparatus.
前記第2データは、前記ページ記述言語と異なる種類の言語で記述されたデータであり、
前記第3データは、ビットマップデータである
ことを特徴とする請求項1に記載のデータ処理装置。 The first data is data described in a page description language;
The second data is data described in a language different from the page description language,
The data processing apparatus according to claim 1 , wherein the third data is bitmap data.
そのコンピュータプログラムは、前記第1データに含まれる複数個の部分第1データから前記第2データに含まれる複数個の部分第2データを順次作成するための第1プログラムと、前記第2データに含まれる前記複数個の部分第2データから前記第3データを作成するための第2プログラムとを含んでおり
そのコンピュータプログラムは、前記第1プログラムに従った処理と、前記第2プログラムに従った処理と、それらの両処理のためのメモリ管理を統括して実行する処理とを含む制御処理をコンピュータに実行させ、
前記制御処理では、
メモリ内の使用可能メモリサイズよりも小さいメモリサイズであって、前記第2データの作成に使用されるべき前記メモリサイズである所定値を特定し、
前記複数個の部分第1データのうちの処理対象の部分第1データを処理すべき毎に、仮に、当該処理対象の部分第1データから1個の部分第2データを前記メモリ内に作成したら、前記1個の部分第2データを含む前記メモリ内の2個以上の部分第2データの合計データサイズが、前記所定値以上になるのか否かを判断し、
前記合計データサイズが前記所定値以上にならないと判断される場合に、前記処理対象の部分第1データから前記1個の部分第2データを前記メモリ内に作成し、
前記合計データサイズが前記所定値以上になると判断される場合において、前記メモリ内に圧縮状態の第3データが存在しない場合に、
(A1)前記メモリ内のM個(前記Mは1以上の整数)の部分第2データから前記第3データを前記メモリ内に作成し、
(A2)前記メモリ内の前記第3データを圧縮して、前記圧縮状態の第3データを前記メモリ内に作成し、
(A3)前記M個の部分第2データを前記メモリから削除し、
前記合計データサイズが前記所定値以上になると判断される場合において、前記メモリ内に前記圧縮状態の第3データが存在する場合に、
(B1)前記圧縮状態の第3データを伸張して、伸張状態の第3データを前記メモリ内に作成し、
(B2)前記メモリ内のN個(前記Nは1以上の整数)の部分第2データと、前記メモリ内の前記伸張状態の第3データと、から、新たな第3データを前記メモリ内に作成し、
(B3)前記メモリ内の前記新たな第3データを圧縮して、新たな圧縮状態の第3データを前記メモリ内に作成し、
(B4)前記N個の部分第2データを前記メモリから削除し、
前記制御処理では、前記メモリ内の前記第3データの合計データサイズが、前記使用可能メモリサイズから前記所定値が減算された値よりも大きくなるのか否かに関わらず、前記(B2)を実行する、
ことを特徴とするコンピュータプログラム。 From the first data to create a second data, a computer program for creating a third data from the second data,
The computer program includes a first program for sequentially creating a plurality of partial second data from a plurality of partial first data included in the second data contained in the first data, the second data the computer program includes a second program for creating the third data from said plurality of partial second data included in a processing according to the first program, according to the second program Causing the computer to execute a control process including a process and a process for controlling and executing memory management for both processes,
In the control process,
Specifying a predetermined value which is a memory size smaller than an available memory size in the memory and is the memory size to be used for creating the second data;
Each time the partial first data to be processed of the plurality of partial first data is to be processed, one partial second data is created in the memory from the partial first data to be processed. Determining whether a total data size of two or more partial second data in the memory including the one partial second data is equal to or larger than the predetermined value;
When it is determined that the total data size does not exceed the predetermined value, the one partial second data is created in the memory from the partial first data to be processed,
When it is determined that the total data size is equal to or greater than the predetermined value, when there is no compressed third data in the memory,
(A1) Create the third data in the memory from M partial data (where M is an integer equal to or greater than 1) in the memory,
(A2) compressing the third data in the memory to create the compressed third data in the memory;
(A3) deleting the M partial second data from the memory;
When it is determined that the total data size is equal to or greater than the predetermined value, when the compressed third data exists in the memory,
(B1) Decompressing the compressed third data to create the decompressed third data in the memory;
(B2) New third data is stored in the memory from N partial second data (where N is an integer equal to or greater than 1) in the memory and the third data in the expanded state in the memory. make,
(B3) compressing the new third data in the memory to create new compressed third data in the memory;
(B4) deleting the N partial second data from the memory;
In the control process, (B2) is executed regardless of whether or not the total data size of the third data in the memory is larger than a value obtained by subtracting the predetermined value from the usable memory size. To
A computer program characterized by the above.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008091529A JP5194952B2 (en) | 2008-03-31 | 2008-03-31 | Data processing device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008091529A JP5194952B2 (en) | 2008-03-31 | 2008-03-31 | Data processing device |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009241449A JP2009241449A (en) | 2009-10-22 |
JP5194952B2 true JP5194952B2 (en) | 2013-05-08 |
Family
ID=41303929
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008091529A Active JP5194952B2 (en) | 2008-03-31 | 2008-03-31 | Data processing device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5194952B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4957816B2 (en) * | 2010-02-03 | 2012-06-20 | ブラザー工業株式会社 | PDL data processing apparatus and PDL data processing program |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09277619A (en) * | 1996-04-12 | 1997-10-28 | Brother Ind Ltd | Printer and printing method |
JPH10297050A (en) * | 1997-02-28 | 1998-11-10 | Canon Inc | Output controller, output control method, image processor, image processing method, and recording medium |
JP2000313145A (en) * | 1999-03-01 | 2000-11-14 | Canon Inc | Print controller, data processing method therefor, and recording medium storing computer readable program |
JP4323618B2 (en) * | 1999-05-31 | 2009-09-02 | キヤノン株式会社 | Image processing apparatus and image processing method |
JP2004326266A (en) * | 2003-04-22 | 2004-11-18 | Canon Inc | Print control method, information processing device, and printer |
JP2007172505A (en) * | 2005-12-26 | 2007-07-05 | Konica Minolta Business Technologies Inc | Image forming apparatus, image forming method and program |
JP4816238B2 (en) * | 2006-05-16 | 2011-11-16 | コニカミノルタビジネステクノロジーズ株式会社 | Image forming apparatus, image forming method, and program |
JP4238889B2 (en) * | 2006-07-20 | 2009-03-18 | コニカミノルタビジネステクノロジーズ株式会社 | Image forming apparatus, image forming method, and program |
JP4337885B2 (en) * | 2007-02-15 | 2009-09-30 | コニカミノルタビジネステクノロジーズ株式会社 | Image forming apparatus and image forming method |
-
2008
- 2008-03-31 JP JP2008091529A patent/JP5194952B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2009241449A (en) | 2009-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6192157B1 (en) | Modifications of postscript adaptive data compression (ADC) for 3 plane, 8 bit color images, JPEG lossy compression, and variable Q factors | |
JP4476909B2 (en) | Printing apparatus, printing processing method, printing processing program, and recording medium | |
JP5051327B1 (en) | Image processing apparatus and program | |
JP2011084045A (en) | Image processor, image processing method, and program | |
US20110141508A1 (en) | Variable printing control apparatus and control program | |
JP2008167422A (en) | Color processor, pdl processor, image forming apparatus, color converting method, computer program, and recording medium | |
JP5194952B2 (en) | Data processing device | |
JP5446047B2 (en) | Print control apparatus, image forming system, and program | |
JP4985034B2 (en) | Deployment data creation method, apparatus and program | |
US20040120007A1 (en) | Method and apparatus for forming a display list | |
US20040075859A1 (en) | Printer instruction processing | |
US6985258B1 (en) | Print system | |
US20040012797A1 (en) | Load balancing in image generation | |
US20090244622A1 (en) | Systems and Methods for Rendering Print Data | |
US9300747B2 (en) | Server | |
US20100027037A1 (en) | Image Processing Controller and Image Processing Apparatus | |
JP6185745B2 (en) | Print control apparatus, print control method, and program | |
JP2017194932A (en) | Image processing apparatus, image processing method, and program | |
JP2013119242A (en) | Image forming apparatus, image forming method, and program | |
JP4869890B2 (en) | Image processing apparatus and program | |
JP4259328B2 (en) | Image processing apparatus, printer, and method for reading stored data | |
JP7467211B2 (en) | IMAGE PROCESSING APPARATUS, IMAGE PROCESSING METHOD AND PROGRAM FOR IMAGE PROCESSING APPARATUS | |
JP2007086968A (en) | Print system, printer driver, print controller, and printer | |
JP5574242B2 (en) | Print control apparatus, print control program, and print control method | |
JP2017022656A (en) | Print control device, printer, control method and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100113 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120501 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120702 |
|
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: 20130108 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130121 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20160215 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5194952 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |