Printing device
The printing device with a multi-core CPU and separate controllers effectively processes individual image data by detecting start and end markers, addressing the challenge of handling consecutive image data receipt, ensuring accurate file creation and printing.
Patent Information
- Application Number
- JP2021062500
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2021-04-01
- Publication Date
- 2025-01-17
- Estimated Expiration
- 2041-04-01
AI Technical Summary
Printing devices struggle to appropriately process multiple pieces of image data when they are received consecutively without gaps, leading to improper recognition and processing of the data series.
A printing device with a multi-core CPU and separate controllers for data analysis and rasterization processes, including a memory, communication interface, and specific start and end information detection for image data, allows for appropriate processing of individual image data by generating raster data and printing based on detected start and end markers.
Enables the printing device to accurately process each piece of image data even when multiple pieces are received successively, ensuring proper file creation and printing by detecting start and end markers, thus improving data handling efficiency.
Smart Images

Figure 0007615843000001 
Figure 0007615843000002 
Figure 0007615843000003
Abstract
Description
[Technical field]
[0001] The technical field disclosed in this specification relates to a printing device that prints an image based on received data. [Background technology]
[0002] Conventionally, there is known a printing device that receives a print job and prints an image based on the received print job. For example, Patent Document 1 discloses a printing device that includes a print engine and a controller that causes the print engine to execute a print process, in which the controller analyzes a PDL (short for Page Description Language) command included in the print job to create raster data, and causes the print engine to print an image based on the created raster data. [Prior art documents] [Patent documents]
[0003] [Patent Document 1] JP 2015-123712 A Summary of the Invention [Problem to be solved by the invention]
[0004] Printing devices are required to appropriately process received data on an image data unit basis. However, when multiple pieces of image data are transmitted continuously from an external device without gaps, the printing device may not be able to recognize that the received data is multiple pieces of continuous image data, and in that case, it may not be able to appropriately process each piece of image data.
[0005] This specification discloses a technique for allowing a printing device to appropriately process each piece of image data even when multiple pieces of image data are received consecutively. [Means for solving the problem]
[0006] A printing device that has been made to solve this problem is a printing device that includes a printing unit, a memory, and a communication interface, and the printing device analyzes received data received via the communication interface sequentially from the beginning to acquire image data, and causes the printing unit to print based on the acquired image data, the type of image data to be printed by the printing unit is predetermined, there are multiple types of image data that can be printed, and the multiple types include a specific type that can include multiple pieces of termination information indicating the end of image data in one image data, and further, after starting to analyze the received data, the printing device extracts from the received data beginning information indicating the beginning of image data for the specific type of image data. the printing device detects the end information from the received data after starting the filing, and if the printing device detects other beginning information from the received data after detecting the end information, or if the printing device does not detect the other beginning information and specifies that the detected end information is the last end information included in the received data, the printing device terminates the filing and stores the generated file in the memory, and the printing device reads out the file stored in the memory, performs RIP processing based on the received data indicated by the read file to generate raster data, and causes the printing unit to print based on the generated raster data.
[0007] The printing device disclosed in this specification starts converting the received data into a file when it detects the beginning information of a specific type of image data that can contain multiple pieces of termination information from the received data.The printing device then detects the termination information from the received data and ends the conversion into a file when it detects another beginning information after the termination information, or when it determines that the termination information is the last termination information included in the received data.As a result, even when a specific type of data that can contain multiple pieces of termination information in one image data is received, each image data is appropriately extracted and converted into a file, and each image data can be appropriately processed.
[0008] A control method for implementing the functions of the printing device, a computer program, and a computer-readable storage medium storing the computer program are also novel and useful. Effect of the Invention
[0009] The technology disclosed in this specification realizes a technology that allows a printing device to appropriately process each piece of image data even when multiple pieces of image data are received consecutively. [Brief description of the drawings]
[0010] [Figure 1] 1 is a block diagram showing a schematic configuration of a printer according to an embodiment of the present invention; [Diagram 2] FIG. 11 is a sequence diagram showing a data analysis procedure. [Diagram 3] FIG. 13 is an explanatory diagram showing the configuration of a PCLXL print job including PJL data. [Figure 4] FIG. 1 is an explanatory diagram showing the configuration of a PDF print job including PJL data. [Diagram 5] FIG. 13 is an explanatory diagram showing the configuration of a print job that does not include PJL data. [Figure 6] FIG. 11 is an explanatory diagram showing an example of delimiter information. [Figure 7] FIG. 11 is a sequence diagram showing a filing procedure. [Figure 8] 13 is a flowchart showing a procedure for a filing process. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0011] DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS A printer according to an embodiment of the present invention will be described in detail below with reference to the accompanying drawings. The present embodiment discloses a printer that executes printing based on received image data.
[0012] 1, the printer 1 of this embodiment includes a first controller 10, a second controller 20, and a third controller 30, which are connected to a bus 19. The printer 1 also includes a user interface (hereinafter referred to as "user IF") 13, a communication interface (hereinafter referred to as "communication IF") 14, a print engine 15, and a memory 40, which are connected to the bus 19. The printer 1 is an example of a printing device.
[0013] The first controller 10, the second controller 20, and the third controller 30 execute various processes according to a program read from the memory 40 and based on a user's operation. The first controller 10 of the printer 1 of this embodiment is a multi-core CPU having a first core 11 and a second core 12 as processor cores. The first controller 10 is an example of a controller. On the other hand, the second controller 20 and the third controller 30 are each a single-core CPU having one processor core.
[0014] The first core 11 of the first controller 10 is responsible for, for example, analyzing received data and managing memory and files. The second core 12 of the first controller 10 is responsible for, for example, rasterizing image data and analyzing received data. The second core 12 of this embodiment has a higher clock frequency than the first core 11 and is suitable for rasterization processing, which is a high-load process. The second controller 20 is responsible for, for example, controlling the print engine 15 and the conveying mechanism. The third controller 30 is responsible for, for example, managing colorants and controlling LEDs, etc. The first controller 10, the second controller 20, and the third controller 30 in FIG. 1 are collective names for hardware and software used to control the printer 1, and do not necessarily represent a single piece of hardware actually present in the printer 1.
[0015] The memory 40 stores various programs and various data. The memory 40 is also used as a working area when various processes are executed. An example of the memory 40 is not limited to a ROM, RAM, HDD, etc. built into the printer 1, but may be a computer-readable and writable storage medium. A computer-readable storage medium is a non-transitory medium. In addition to the above examples, non-transitory media also include recording media such as CD-ROM and DVD-ROM. A non-transitory medium is also a tangible medium. On the other hand, an electrical signal carrying a program downloaded from a server on the Internet is a computer-readable signal medium, which is a type of computer-readable medium, but is not included in the non-transitory computer-readable storage medium. The buffers provided in the first controller 10, the second controller 20, and the third controller 30 are also an example of a memory.
[0016] The user IF 13 is, for example, a touch panel, and includes hardware for displaying a screen for notifying the user of information, and hardware for accepting operations by the user. The user IF 13 may be a combination of a display unit and an operation button, etc. The communication IF 14 includes hardware for communicating with an external device such as a personal computer. The communication IF 14 is compatible with a communication standard such as Ethernet (registered trademark), Wi-Fi (registered trademark), USB, etc. The printer 1 may include a plurality of communication IFs 14 compatible with a plurality of communication standards. The print engine 15 includes a configuration for printing an image on a sheet or the like. The image forming method of the print engine 15 is, for example, an electrophotographic method or an inkjet method. The print engine 15 is an example of a printing unit.
[0017] Next, the operation of the printer 1 of this embodiment will be described with reference to a sequence diagram and the like. The following process basically indicates the process of each CPU according to the instructions written in the program. That is, the processes such as "judgment", "extraction", "selection", "calculation", "decision", "identification", "acquisition", "reception", and "control" in the following description represent the process of the CPU. The process by the CPU also includes hardware control using the API of the OS. In this specification, the operation of each program will be described without mentioning the OS. That is, in the following description, a statement to the effect that "program B controls hardware C" may also mean that "program B controls hardware C using the API of the OS". In addition, the process of the CPU according to the instructions written in the program may be described in abbreviated terms. For example, it may be described as "performed by the CPU". In addition, the process of the CPU according to the instructions written in the program may be described in abbreviated terms such as "performed by program A".
[0018] Note that "obtaining" is used as a concept that does not require a request. In other words, the process of receiving data without the CPU requesting it is also included in the concept of "the CPU obtaining data." In addition, "data" in this specification is represented as a bit string that can be read by a computer. Data with the same substantial meaning but different formats will be treated as the same data. The same applies to "information" in this specification. In addition, "requesting" and "instructing" are concepts that indicate outputting information indicating a request or information indicating an instruction to the other party. In addition, information indicating a request or information indicating an instruction will also be simply referred to as "request" and "instruction."
[0019] Furthermore, the process by a CPU to determine whether information A indicates event B is sometimes conceptually described as "determining, from information A, whether event B is present." The process by a CPU to determine whether information A indicates event B or event C is sometimes conceptually described as "determining, from information A, whether event B or event C is present."
[0020] When the printer 1 of this embodiment starts receiving data such as a print job via the communication IF 14, it sequentially analyzes the received data. The data analysis procedure will be described with reference to the sequence diagram of FIG. 2. In the data analysis procedure, as shown in FIG. 2, the first core 11 is provided with a received data analysis unit 111, various processing units 112, and an engine control unit 113. The second core 12 is provided with a RIP unit 121. Note that each unit provided in the first core 11 and the second core 12, such as the received data analysis unit 111, various processing units 112, the engine control unit 113, and the RIP unit 121, is realized by the first core 11 and the second core 12 executing the corresponding program. The communication IF 14 of the printer 1 sequentially stores the received data in an input buffer. The input buffer is a volatile memory that can store data up to several kilobytes, for example.
[0021] The received data analysis unit 111 of the first core 11 acquires received data from the input buffer (S101) and determines whether the received data includes PJL data for a print job (S102). PJL data is data that includes commands and print parameters used to control the printer 1. The print data generated using a printer driver compatible with the printer 1 includes PJL data.
[0022] An example of a print job including PJL data is shown in Fig. 3. The print job 200 shown in Fig. 3 is composed of a header section 201, a body section 202, and a footer section 203. The header section 201 and the footer section 203 are PJL data, and the body section 202 is image data in the PCLXL format. If "[ESC]%-12345X" is detected from the received data, it is determined that PJL data is included (S102: YES), and the received data analysis section 111 analyzes the PJL data while storing the necessary information in memory 40.
[0023] 3, the PJL data in the header section 201 includes various commands that specify, for example, identification information such as the job name and user name of the print job, setting information indicating print settings, and type information indicating the type of image data in the body section 202. The various commands included in the PJL data are examples of printer control commands.
[0024] The received data analysis unit 111 judges whether or not an "ENTER LANGUAGE" command, which is one of the commands of PJL data, has been detected from the received data (S103). There are multiple types of image data that can be printed by the printer 1, such as PCLXL, PDF (Portable Document Format), PostScript, JPEG, etc., and the information indicated by the "ENTER LANGUAGE" command is type information that indicates the type of image data. The "ENTER LANGUAGE" command is an example of a type-specific command. The "ENTER LANGUAGE" command is included, for example, in the last line of the header section 201 of the print job 200 shown in FIG. 3. In other words, the data following the "ENTER LANGUAGE" command is the body section 202, which is image data.
[0025] If the received data analysis unit 111 determines that the "ENTER LANGUAGE" command was not detected in the received data (S103: NO), it further analyzes the received data. If the received data analysis unit 111 receives PJL data that does not include the "ENTER LANGUAGE" command, it determines that the received data is not a job that instructs printing. PJL data that does not include the "ENTER LANGUAGE" command is a job that does not include image data, and is likely not a print job. Examples of PJL data that does not include the "ENTER LANGUAGE" command include a command requesting acquisition of information about the printer 1, or a command requesting an update of firmware.
[0026] When PJL data not including the "ENTER LANGUAGE" command is received, the received data analysis unit 111 passes a processing request to each processing unit 112 of the first core 11 according to the contents of the PJL data (S106). The processing unit 112 performs appropriate processing based on the processing request. For example, if the received command is a command requesting acquisition of information on the printer 1, the processing unit 112 acquires the requested information from each component of the printer 1 and performs processing to return the acquired information. If the received command is a command to change the settings of the printer 1, the processing unit 112 changes and stores the setting information stored in the memory 40. By having the first core 11 execute the processing of PJL data that is not a print job, the second core 12 can concentrate on processing with a high load. Note that even after passing the processing request to the processing unit 112, the received data analysis unit 111 continues analysis until there is no more received data, and waits for the reception of data when analysis of all the received data has been completed.
[0027] On the other hand, if the received data analysis unit 111 determines that the read received data does not contain PJL data (S102: NO), it outputs a document analysis request to the second core 12 together with a pointer indicating the start address of the received data to be analyzed (S111). If the start of the print job does not contain "[ESC]%-12345X", the received data analysis unit 111 determines that PJL data is not included. The analysis process of received data that does not contain PJL data is a process performed by the second core 12, and the document analysis request is an example of a first request.
[0028] Note that the printer 1 may also receive a print job consisting of only image data that does not include PJL data. For example, some programs other than the printer driver corresponding to the printer 1 output print jobs that do not include PJL data. The printer 1 of this embodiment can execute printing based on image data whether it receives the image data itself or a print job that does not include PJL data. In the following, it will be described as receiving a print job even if it receives the image data itself.
[0029] When a document analysis request is input, the second core 12 reads the received data based on the pointer and determines whether the received data includes information indicating image data that requires execution of a filing process (S115). The filing process is a process of filing the received data and storing it in a memory location different from the input buffer, for example, the RAM area or non-volatile memory area of the memory 40. Details of the image data that requires execution of the filing process and details of the filing process will be described later.
[0030] Furthermore, when the received data analysis unit 111 determines that the received data includes PJL data and detects an "ENTER LANGUAGE" command (S103: YES), it outputs a RIP request to the second core 12 (S112). The RIP request is information requesting RIP processing by the second core 12, and is an example of a first request. The received data analysis unit 111 passes the type of image data specified by the "ENTER LANGUAGE" command, information on print parameters acquired from the header section, and a pointer to the top address of the body section, which is the next read position of the input buffer, to the second core 12 along with the RIP request. By passing a pointer to the address of the received data stored in the input buffer, the printer 1 can share the received data between the first core 11 and the second core 12.
[0031] The RIP unit 121 of the second core 12 sequentially reads the received data from the address indicated by the pointer based on the RIP request from the first core 11, and judges whether the received data includes information indicating image data that requires file processing (S116). Details of the image data that requires file processing and details of the process when YES is determined in S116 will be described later.
[0032] When it is determined that the image data does not include information indicating that file conversion processing is required (S116: NO), the RIP unit 121 performs RIP processing (S121) to generate raster data. For example, in the print job 200 shown in FIG. 3, the type of image data is PCLXL, and the head of the body part 202 includes information indicating PCLXL image data. In the PCLXL print job 200, the PJL data in the header part 201 includes all parameters used for RIP processing, so that the RIP unit 121 of the second core 12 can sequentially perform RIP processing from the head of the body part 202 using the parameters input from the first core 11. The PCLXL image data is image data that does not require file conversion processing.
[0033] After starting the RIP process, the RIP unit 121 sequentially rasterizes the received data, and outputs an output request to the engine control unit 113 of the first core 11 each time a predetermined amount of raster data is generated (S123). In the output request, the RIP unit 121 passes information indicating the address of the rasterized image data to the first core 11. The RIP unit 121 may write output command data and raster data to a predetermined buffer that is read by the engine control unit 113. After rasterizing the image data to be RIPed to the end, the RIP unit 121 waits for the next request from the first core 11.
[0034] When the engine control unit 113 of the first core 11 receives enough raster data for the print engine 15 to start printing based on the output request received from the second core 12, it controls the print engine 15 via the second controller 20, etc. (S124) to execute printing.
[0035] Next, a process when it is determined in S115 or S116 of Fig. 2 that the execution of the file conversion process is required will be described. In S115 or S116, the RIP unit 121 determines whether the image data requires the execution of the file conversion process, for example, based on the type of the image data. Image data that requires the execution of the file conversion process is, for example, PDF image data.
[0036] PDF allows incremental updates by adding text and images to an existing file and saving them, and there are cases where further data is added after the termination character indicating the end of the image data. For example, a print job 300 including PDF image data shown in Fig. 4 includes a header section 301, a body section 302, and a footer section 303. The header section 301 and the footer section 303 include PJL data, and the body section 302 includes image data 304 and additional data 305.
[0037] Since the additional data 305 may include print parameters related to printing the image data 304, the printer 1 needs to analyze the additional data 305 before starting the RIP process of the image data 304. However, the input buffer has a limited capacity, and the image data 304 cannot always be stored in the input buffer until the analysis of the additional data 305 is completed. If the head of the body portion includes information indicating PDF image data, the RIP unit 121 determines in S116 that it is necessary to execute a file process in order to prevent the input buffer from becoming full.
[0038] The printer 1 may also receive a print job that contains only a body portion that includes PDF image data and does not include PJL data. For example, a print job 310 shown in Fig. 5 does not include a header portion or a footer portion, and is composed of image data 311 and additional data 312. When the print job 310 is received, the received data analysis unit 111 of the first core 11 judges NO in S102 of Fig. 2, and passes a pointer indicating the start address of the image data 311 and a document analysis request to the second core 12 in S111. The RIP unit 121 of the second core 12 analyzes the received data from the start of the image data 311, and if information indicating PDF image data is included, judges that it is necessary to execute a file processing in S115.
[0039] A predetermined delimiter is added to the beginning of the image data for each type of image data. For example, as shown in FIG. 6, the RIP unit 121 includes delimiter information 51 that stores information on delimiters indicating the beginning and end of image data and information indicating the type of image data in association with each other for various types of image data. The delimiter indicating the beginning of image data is an example of beginning information. The delimiter indicating the end of image data is an example of end information. For example, the beginning of PDF image data includes "%PDF" as a delimiter. When the RIP unit 121 detects "%PDF" from the read-out received data, it determines that it is necessary to execute a file conversion process. "%PDF" is an example of predetermined information. The detection of the delimiter indicating the beginning of image data may be performed by the first core 11.
[0040] PDF is a type of image data that may include additional data such as print parameters after the termination character, and is an example of a specific type. Note that the delimiter indicating the beginning or end of image data may be a string containing multiple characters, and in this specification, a "termination character string" is simply referred to as a "termination character," and a "first character string" is simply referred to as a "first character." The first character and termination character will be described in detail later.
[0041] Next, a procedure when it is determined that the RIP unit 121 needs to execute a file process will be described with reference to the sequence diagram of Fig. 7. As shown in Fig. 7, the first core 11 is provided with a document separator unit 115, a file system unit 116, and a memory management unit 117. The second core 12 is provided with a RIP unit 121 and a file reading unit 122.
[0042] The file system unit 116 of the first core 11 is configured to be able to read from and write to the memory 40 via the memory management unit 117. The file reading unit 122 of the second core 12 differs from the file system unit 116 of the first core 11 in that it is configured to read files from the memory 40, is unable to write to the memory 40, and does not perform memory management.
[0043] When it is determined that the filing process needs to be executed, the RIP unit 121 inputs a filing request and the start address of the image data to the first core 11 (S201). The filing request is an example of a second request. As a result, the first core 11 reads the received data in order from the input address and executes the filing process.
[0044] When outputting the filing request in S201, the RIP unit 121 passes the delimiter information 51 shown in Fig. 6 to the first core 11. The first core 11 executes the filing process using the delimiter information 51. The first core 11 executes the filing process in cooperation with the document separator unit 115, the file system unit 116, and the memory management unit 117.
[0045] Instead of passing the delimiter information 51 from the second core 12 to the first core 11, the first core 11 may also have the delimiter information 51. However, the configuration of the image data and the type of delimiter may change, and in order to configure the delimiter information 51 to be managed by both the first core 11 and the second core 12, the version of the firmware required for analyzing the image data must be the same for both the first core 11 and the second core 12, which makes version management complicated. In this embodiment, the analysis of the image data is concentrated in the second core 12, making version management easy. In particular, when there are multiple types of image data that need to be filed, the program executed by the second core 12 manages the delimiter information 51, making version management easy.
[0046] The procedure of the filing process executed by document separator unit 115 will be described with reference to the flowchart in Fig. 8. The filing process is a process of filing image data and subsequent printing parameters included in a received print job, and saving the file in memory 40. Note that hereinafter, the process of writing to memory or a file will be described as "saving".
[0047] When the filing process starts, the document separator unit 115 passes a file open instruction to the file system unit 116 of the first core 11 (S301). The file system unit 116 that has received the instruction sets a file storage area in association with the file name based on the instruction of S301, and determines its top address.
[0048] The document separator unit 115 acquires the received data from the input buffer (S302) and analyzes the acquired data. The document separator unit 115 determines whether the acquired data contains a termination character of the image data to be filed, based on the delimiter information 51 received from the RIP unit 121 (S303). If the object of the filed processing being executed is PDF, as shown in Fig. 6, the termination character is "%%EOF", so in S303, the document separator unit 115 determines whether the acquired received data contains "%%EOF".
[0049] If it is determined that the acquired data does not contain a termination character (S303: NO), the document separator unit 115 passes the received data acquired in S302 to the file system unit 116 and instructs it to save it in the file opened in S301 (S304). Received data that does not contain a termination character is part of the image data, and indicates that more image data follows. The file system unit 116 instructs the memory management unit 117 to secure memory and save the received data. After S304, the document separator unit 115 returns to S302 and acquires the next data from the input buffer.
[0050] If it is determined that the acquired data includes a termination character (S303: YES), the document separator unit 115 determines whether or not the termination character is at the end of the acquired data, that is, whether or not the acquired data ends with a termination character (S310). If it is determined that the data is at the end (S310: YES), the document separator unit 115 waits a predetermined time (S311) and determines again whether or not the termination character is at the end (S312). The predetermined time is, for example, several tens of milliseconds. If the printer 1 is continuously receiving data, it is highly likely that the printer 1 will receive the next data via the communication IF 14 during this time.
[0051] If it is determined that the termination character is at the end even after waiting for a predetermined time (S312: YES), that is, if no data after the termination character is received within the predetermined time, the document separator unit 115 determines that the data being received ends at the termination character. Then, the document separator unit 115 instructs the file system unit 116 to save the data up to the termination character (S313) and close the file (S314), and ends the filing process. As a result, for example, the data from the first character of the PDF ("%PDF") to the termination character ("%%EOF") is saved as one file.
[0052] If it is determined that the termination character is not the end of the data (S310: NO or S312: NO), the document separator unit 115 analyzes the data following the termination character and attempts to detect the first character (S320). Specifically, the document separator unit 115 determines whether or not there is a first character based on the delimiter information 51. For example, in PDF, as in the print job 310 shown in FIG. 5, there is a termination character "%%EOF" at the end of the image data 311, which is followed by additional data 312. The end of the additional data 312 also contains the same termination character "%%EOF" as the image data 311. In other words, even if there is one termination character, it does not necessarily mean that it is the end of the print job, and the following data needs to be analyzed.
[0053] Also, for example, in the case of a PDF print job that does not include PJL data, multiple print jobs may be sent consecutively as shown in FIG. 5. For example, when a print instruction based on multiple pieces of image data is received, multiple print jobs that do not include PJL data may be sent consecutively. The USB communication protocol specifications make it possible to send image data without gaps between each piece of image data. Note that when sending data from an external device connected to a network, image data is never sent consecutively.
[0054] 5, additional data 312 of print job 310 is followed by image data 321 and additional data 322 of another print job 320. When multiple print jobs that do not include PJL data are transmitted in succession, printer 1 receives the first character of the subsequent print job after the termination character of the previous print job. If there is another first character following the termination character, document separator unit 115 determines that the termination character is the end of the print job.
[0055] In addition, since there may be a small number of characters, such as a few line feed codes, between the termination character at the end of a print job and the first character of the next print job, the document separator unit 115 analyzes a predetermined amount of data, several bytes, beyond the termination character to determine whether there is another first character.
[0056] In the case of a PDF print job that includes PJL data, a body section 302 that includes image data is followed by a footer section 303 of the PJL data, as in print job 300 shown in Fig. 4. If the data indicating PJL data, "[ESC]%-12345X", is present after the termination character, document separator unit 115 determines that the termination character is the end of the data to be filed.
[0057] If it is determined that there is neither a leading character nor PJL data within several bytes (S320: NO), document separator unit 115 determines that the ending character is not the end of the print job, and proceeds to S304. That is, document separator unit 115 instructs file system unit 116 to save the received data acquired in S302 in the open file, and returns to S302 to acquire further data. Then, if document separator unit 115 detects another ending character in the acquired data, it also determines YES in S303 and proceeds to S310.
[0058] On the other hand, if it is determined that the first character or PJL data is within a few bytes (S320: YES), document separator unit 115 instructs file system unit 116 to save the data up to the first character or PJL data (S321) and close the file (S322). If the received data contains the first character or PJL data, the data to be converted into a file is up to the end character. Therefore, document separator unit 115 first closes the open file.
[0059] If the next data is the first character, document separator unit 115 determines whether the first character is the first character of image data that needs to be converted into a file, such as PDF (S323). The part after the first character is another print job. If it is determined based on delimiter information 51 that the subsequent print job needs to be converted into a file (S323: YES), document separator unit 115 instructs file system unit 116 to open the next file (S324), and saves the data after the first character in the opened file (S325).
[0060] When a plurality of print jobs transmitted in succession are received, the document separator unit 115 saves the image data included in each print job in one file. For example, in the example shown in Fig. 5, the document separator unit 115 files the image data 311 and additional data 312 of the print job 310 as one file, closes the file, and then opens another file to save the subsequent data. Then, after S325, the document separator unit 115 returns to S302 to obtain the next data. Then, the document separator unit 115 files the image data 321 and additional data 322 of the subsequent print job 320 as one file.
[0061] Even if the received data contains a first character, if it is determined that the first character is not the first character of the PDF (S323: NO), or if it is determined that the data following the termination character is PJL data, document separator unit 115 ends the filing process. If the data is not a PDF print job, there is no need to file it, so document separator unit 115 ends the filing process and returns to the process of FIG.
[0062] If a first character other than PDF is included, the document separator unit 115 passes a pointer indicating the position of the first character and a document analysis request to the RIP unit 121 of the second core 12, and the RIP unit 121 performs document analysis processing on the data from the first character onwards. If PJL data is included, the document separator unit 115 passes a processing request for the subsequent data to the received data analysis unit 111 of the first core 11 (see FIG. 2).
[0063] Returning to the explanation of Fig. 7, when the filing process is completed, the document separator unit 115 notifies the RIP unit 121 of the second core 12 of the completion of filing (S211). The document separator unit 115 outputs file management information of each created file to the second core 12 as a return value for the filing request input from the second core 12. The file management information is information such as a pointer indicating the top address of the file storage area, a file name, etc., and is an example of file information.
[0064] Note that even before all data has been filed, when the document separator unit 115 closes a file in S322, for example, the document separator unit 115 may output file management information of the closed file to the second core 12. The RIP unit 121 of the second core 12 may start processing the file based on the file management information input from the first core 11.
[0065] The RIP unit 121 passes the file management information input from the first core 11 to the file reading unit 122 of the second core 12 (S213), causing preparation processing for reading the file to be performed. Providing the file reading unit 122 in the second core 12 makes it easier for the RIP unit 121 to access files. The file reading unit 122 of the second core 12 has a simpler configuration than the file system unit 116 of the first core 11, so it is possible to prevent the program size for printing from becoming bloated compared to when both are provided with file systems.
[0066] When the file reading unit 122 has completed the read preparation, the RIP unit 121 reads the image data from the file via the file reading unit 122 (S214) and executes the RIP process (S215). The RIP unit 121 first analyzes the entire image data read from the file, extracts print parameters, and performs the RIP process according to the extracted print parameters. If parameters based on the PJL data have been received from the first core 11, the RIP unit 121 uses them as parameters based on both the parameters received from the first core 11 and the parameters extracted from the file.
[0067] Since filed image data may contain parameters following the image data, appropriate RIP processing can be performed by extracting parameters from the entire file and performing RIP processing according to the extracted parameters. If there are conflicting parameters between the parameters received from the first core 11 and the parameters extracted from the file, the printer 1 will prioritize one of the parameters according to a pre-programmed method. The printer 1 may also accept a selection of the prioritized parameters.
[0068] Then, the RIP unit 121 outputs an output request to the first core 11 every time a predetermined amount of raster data is generated (S216). S216 is the same process as S123 in Fig. 2. Based on the output request, the engine control unit 113 of the first core 11 controls the print engine 15 to execute printing.
[0069] RIP unit 121 repeats reading of the file and RIP processing until the entire processing of the file received from document separator unit 115 is completed. This completes the RIP processing for one print job. Even if multiple print jobs are received in succession, since there is one file for each print job, RIP unit 121 can perform appropriate processing for each print job. This allows printer 1 to form an appropriate printed matter for each print job.
[0070] As described above in detail, when the printer 1 of this embodiment detects the first character of PDF image data, it files the image data. Since PDF image data can contain multiple terminating characters, even if the printer 1 detects a terminating character, it ends the file creation if another first character is detected after the terminating character is detected, or if the terminating character is the last terminating character included in the received data. As a result, even if data of a type that can contain multiple terminating characters is received, each image data is appropriately extracted and filed, so that each image data can be appropriately processed.
[0071] Furthermore, even if the printer 1 of this embodiment detects a termination character again after detecting a termination character, it continues filing until another leading character is detected thereafter or until the termination character is the last termination character included in the received data, so that individual image data can be appropriately extracted. Also, when the printer 1 detects another leading character and that leading character is the leading character of PDF, it starts filing the subsequent image data, so that the subsequent image data can also be appropriately filed. On the other hand, when a leading character other than PDF is detected, the printer 1 ends filing and generates raster data, so that the processing time can be shortened.
[0072] Furthermore, in this embodiment, printer 1 detects PJL data, and if the information indicating the type of image data contained in the PJL data indicates PDF, it begins filing, but if the information indicating the type of image data contained in the PJL data does not indicate PDF, it quickly generates raster data, thereby reducing processing time.
[0073] Furthermore, the printer 1 of this embodiment includes a first core 11 and a second core 12, and the first core 11 performs the file processing, while the second core 12 performs the RIP processing. As a result, among the processes up to printing, the RIP processing, which has a high processing load, is performed by the second core 12, and it is possible to perform processes other than the RIP processing in parallel with the RIP processing, and it is expected that the processing time up to printing will be shortened compared to when each process is performed by one processor core. Furthermore, in this embodiment, the second core 12 includes the delimiter character information 51, and passes it to the first core 11 when performing the file processing, so that an appropriate termination character can be used depending on the type of image data.
[0074] It should be noted that the present embodiment is merely an example and does not limit the present invention in any way. Therefore, the technology disclosed in this specification can be naturally improved and modified in various ways without departing from the scope of the present invention. For example, the printer 1 is not limited to a printer with a single function, but can be applied to any device with a printing function, such as a multifunction device, a copier, or a fax machine. In addition, the image data to be printed by the printer 1 is not limited to a print job sent from a PC or the like, but may be image data obtained from a scanner, a cloud server, a USB memory, or the like.
[0075] For example, if the printer 1 has an insertion port for a USB memory as the communication IF 14, it can accept a print instruction based on image data stored in the inserted USB memory. For example, when a USB memory storing a print job is attached, the printer 1 may acquire data such as the print job from the attached USB memory. When acquiring data from the USB memory, the printer 1 may write the data acquired from the USB memory to the input buffer and perform the process from S101 onwards on the data in the input buffer. Alternatively, the printer 1 may perform the process from S101 onwards on the data acquired from the USB memory without writing it to the input buffer. When acquiring data without going through the input buffer, each process in the embodiment is a process in which the "input buffer" is replaced with the "USB memory". Also, for example, image data may be stored as a file in the USB memory, and in that case, the printer 1 may perform the RIP process on the file stored in the USB memory without storing it as a file in the memory 40.
[0076] Also, for example, when image data is acquired by downloading from a cloud server or the like, the printer 1 may store the entire downloaded image data in a storage location other than the input buffer, and then process the data in the same manner as data acquired from a USB memory. For example, the printer 1 may once convert the entire downloaded image data into a file, and then perform RIP processing on the file.
[0077] In addition, in this embodiment, the printer 1 is provided with the first controller 10 of a multi-core CPU, but it may be a single-core CPU. In addition, in this embodiment, printing is performed every time one page of raster data is generated, but printing may be performed every two or more pages.
[0078] In addition, in this embodiment, the printer 1 executes the filing process when the type of image data is PDF, but the printer 1 may execute the filing process for image data other than PDF. In this case, when the second core 12 detects the first character of the other type of image data to be filed, it inputs a filing request to the first core 11. The first core 11 receives information on the end character of the image data of that type together with the filing request from the second core 12, and files the received data until it detects the end character. Note that, when filed for image data of a type that may not include multiple end characters, the first core 11 may end the filing process at the time when it detects the end character. Specifically, when the first core 11 judges YES in S303 of the file process, it may proceed to S313.
[0079] In addition, in the present embodiment, the second core 12 has a file reading unit 122 that does not write files, but the second core 12 may also have a file system that is capable of writing and reading, like the first core 11. In the present embodiment, the second core 12 has delimiter information 51 and passes it to the first core 11 together with the filing request, but the first core 11 may also have delimiter information 51.
[0080] In addition, in any of the flowcharts disclosed in the embodiments, the order of execution of multiple processes in any of the steps can be arbitrarily changed or the processes can be executed in parallel as long as no contradiction occurs in the process content.
[0081] The processes disclosed in the embodiments may be executed by a single CPU, multiple CPUs, hardware such as ASIC, or a combination of these. The processes disclosed in the embodiments may be realized in various forms, such as a recording medium having a program for executing the processes recorded thereon, or a method. [Explanation of symbols]
[0082] 1. Printer 10 First Controller 11 First Core 12 Second Core 14 Communication Interface 15 Printing Engine 40 Memory
Claims
1. A printing unit; Memory, A communication interface; A printing device comprising: The printing device includes: the data received via the communication interface is analyzed sequentially from the beginning to acquire image data, and the printing unit is caused to print based on the acquired image data, the type of image data to be printed by the printing unit is predetermined, there are a plurality of types of printable image data, and the plurality of types includes a specific type that is capable of including multiple pieces of termination information indicating the termination of the image data in one image data; the printing device includes a controller including a first core that is a processor core and a second core that is a processor core different from the first core; The first core is analyzing the received data received via the communication interface, and when determining that the received data may include image data, outputting a first request to the second core; The second core is after starting an analysis of the received data in response to the first request from the first core, when beginning information indicating a beginning of image data for the specific type of image data is detected from the received data, a second request is output to the first core; The first core is in response to the second request from the second core, starting to file the received data; Furthermore, the first core if the end information is detected from the received data after starting the file conversion, and if another beginning information is detected from the received data after the end information is detected, or if the other beginning information is not detected and the detected end information is identified as the last end information included in the received data, the file conversion is terminated, the generated file is stored in the memory, and file information indicating the stored file is output to the second core; The second core is when the second request is output to the first core, in response to the input of the file information from the first core, reads out the file stored in the memory using the file information input from the first core, and performs RIP processing based on the received data indicated by the read file to generate raster data; If the second request is not output to the first core, the RIP process is performed based on the received data to generate raster data; The first core is causing the printing unit to print based on the raster data generated by the second core; A printing device comprising:
2. 2. The printing device according to claim 1, The printing device includes: the terminal information is detected from the received data after starting the filing, and even if another terminal information is detected from the received data after the detection of the terminal information, the filing is continued even after the detection of the other terminal information, and when the other head information is detected from the received data, or when the other head information is not detected and the detected terminal information is identified as the last terminal information included in the received data, the filing is terminated and the generated file is stored in the memory. A printing device comprising:
3. 2. The printing device according to claim 1, Furthermore, the printing device the end information is detected from the received data after starting the filing, and if another head information is detected from the received data after the end information is detected, the filing is terminated and the generated file is stored in the memory, and if the other head information detected is head information for the specific type of image data, the filing of the next file is started based on the other head information detected. A printing device comprising:
4. 4. The printing device according to claim 3, The printing device includes: the end information is detected from the received data after starting the filing, and if other beginning information is detected from the received data after detecting the end information, the filing is terminated and the generated file is stored in the memory, and if the other beginning information detected is beginning information for the specific type of image data, the filing of the next file is started based on the other beginning information detected, whereas if the other beginning information detected is not beginning information for the specific type of image data, the filing of the next file is not started based on the other beginning information detected, Furthermore, the printing device reading out the file stored in the memory, performing the RIP process based on the data indicated by the read file to generate raster data, and having the printing unit print based on the generated raster data; if data that has not been converted into a file remains in the received data, performing the RIP process based on the remaining data to generate raster data, and having the printing unit print based on the generated raster data; A printing device comprising:
5. 5. The printing device according to claim 1, beginning information and end information are stored in association with each type of image data; The printing device includes: When the start information for the specific type of image data is detected from the received data, a file is started based on the detected start information, the type of image data is further identified based on the detected start information, and the end information corresponding to the identified type of image data is extracted. Furthermore, the printing device after starting the filing, the extracted terminal information is detected from the received data, and if another head information is detected from the received data after the terminal information is detected, or if no other head information is detected and the detected terminal information is identified as the last terminal information included in the received data, the filing is terminated and the generated file is stored in the memory. A printing device comprising:
6. 6. The printing device according to claim 1, The printing device includes: when the end information is detected from the received data after starting to convert the data into a file, detection of the beginning information is attempted from the detection of the end information until a predetermined amount of data is read. A printing device comprising:
7. 7. The printing device according to claim 1, The specific type of image data that can include multiple pieces of termination information in one image data is image data in PDF (Portable Document Format). A printing device comprising:
8. 2. The printing device according to claim 1, The printing device includes: the received data is analyzed, and a printer control command which is a command used to control the printing device is detected from the received data; if the detected printer control command includes a type specifying command which indicates a type of image data, and if the type specifying command included in the detected printer control command indicates the specific type, or if the printer control command is not included in the received data, an attempt is made to detect leading information for the specific type of image data from the received data; and if the leading information for the specific type of image data is detected from the received data, filing is started based on the detected leading information; detects the end information from the received data after starting the file conversion, and if, after detecting the end information, another beginning information is detected from the received data, or if no beginning information is detected and the detected end information is identified as the last end information included in the received data, terminates the file conversion and stores the generated file in the memory; reading out the file stored in the memory, performing the RIP process based on the received data indicated by the read file to generate raster data, and causing the printing unit to perform printing based on the generated raster data; A printing device comprising:
9. 9. The printing device according to claim 8, The printing device includes: the received data is analyzed, and the printer control command which is a command used to control the printing device is detected from the received data, and if the detected printer control command includes a type specifying command which indicates a type of image data, and if the type specifying command included in the detected printer control command indicates the specific type, or if the printer control command is not included in the received data, an attempt is made to detect leading information for the specific type of image data from the received data, and if the leading information for the specific type of image data is detected from the received data, file creation is started based on the detected leading information, detects the end information from the received data after starting the file conversion, and if, after detecting the end information, another beginning information is detected from the received data, or if no beginning information is detected and the detected end information is identified as the last end information included in the received data, terminates the file conversion and stores the generated file in the memory; reading out the file stored in the memory, extracting parameters to be used for the RIP process from the entirety of the read out file, performing the RIP process based on the received data indicated by the file in accordance with the extracted parameters to generate raster data, and causing the printing unit to perform printing based on the generated raster data; A printing device comprising:
10. 10. The printing device according to claim 8 or 9, The printing device includes: analyzing the received data, detecting the printer control command which is a command used to control the printing device from the received data, and if the detected printer control command includes the type specifying command which indicates the type of image data and the type specifying command included in the detected printer control command does not indicate the specific type, not filing the received data, but performing the RIP processing based on the received data to generate raster data, and causing the printing unit to perform printing based on the generated raster data; A printing device comprising:
Citation Information
Patent Citations
Device, method and program for image processing, and device, method and program for file creation
JP2006004183A
Image processing apparatus, pattern image synthesizing method, and pattern image synthesizing program
JP2008072671A
Image forming apparatus
JP2009202488A
Image forming apparatus
JP2011068010A
Apparatus, method and program for forming print data
JP2012111210A