Image processing device, image processing method, and program

The image processing apparatus addresses the challenge of linking PDL object information to gamut mapping by generating and analyzing bitmap data to apply appropriate gamut mapping, ensuring accurate color reproduction in printed documents.

JP7748417B2Active Publication Date: 2025-10-02CANON KK
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2023086426
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2023-05-25
Publication Date
2025-10-02
Estimated Expiration
2043-05-25

AI Technical Summary

Technical Problem

Existing methods for gamut mapping in printers fail to accurately link object information from PDL descriptions to appropriate gamut mapping methods due to variations in PDL descriptions across different PC applications and the difficulty in determining color distribution when objects are overlaid.

Method used

An image processing apparatus that generates first and second bitmap data from PDL data, analyzes the second bitmap data, associates it with a print color gamut, and corrects it using a gamut mapping table, followed by quantization to generate quantized image data.

Benefits of technology

Enables appropriate gamut mapping for documents described in PDL, ensuring accurate color reproduction by selecting the optimal gamut mapping method for each region of the document.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007748417000001
    Figure 0007748417000001
  • Figure 0007748417000002
    Figure 0007748417000002
  • Figure 0007748417000003
    Figure 0007748417000003
Patent Text Reader

Abstract

To provide a technique for appropriately performing gamut mapping on a manuscript described using PDL.SOLUTION: Intermediate data are generated based on PDL data. First bit map data and second bit map data that are different from the first bit map data are generated based on the intermediate data. A gamut mapping table which associates the second bit map data with a printing color area is obtained on the basis of an analyzed result of the first bit map data. The second bit map data are corrected based on the gamut mapping table. Quantization image data are generated based on the corrected second bit map data.SELECTED DRAWING: Figure 3
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates to an image processing device, an image processing method, and a program. [Background technology]

[0002] Printers are known that receive a digital document described in a specific color space, map each color in the specific color space to a color gamut that can be reproduced by the printer, and output the resulting image. There are several possible methods for mapping colors to a color gamut that can be reproduced by the printer (hereinafter referred to as gamut mapping). For example, with regard to multiple gamut mapping methods based on "perceptual" and "absolute colorimetric" perspectives, the optimal method varies depending on the content information in the document.

[0003] Patent Document 1 discloses a method of acquiring object information in a document from description data in a page description language (hereinafter, PDL), and applying an optimal lookup table (hereinafter, LUT) to the object. [Prior art documents] [Patent documents]

[0004] [Patent Document 1] Japanese Patent Application Laid-Open No. 2004-306465 Summary of the Invention [Problem to be solved by the invention]

[0005] However, in Patent Document 1, object information is acquired by decoding the PDL description. Even if information such as "text," "photo (JPEG-based embedded)," and "line" can be acquired from the PDL description, this information cannot be linked to a gamut mapping method. PDL descriptions may vary depending on the PC application, not the printer or printer system. For example, whether table borders are included in "line" information depends on the application. Furthermore, the optimal gamut mapping method depends not only on the object information but also on the color distribution. When objects are overlaid, it is difficult to determine the color distribution of the objects from the PDL description.

[0006] Therefore, an object of the present invention is to provide a technique for performing appropriate gamut mapping for a document written in PDL. [Means for solving the problem]

[0007] In order to achieve the object of the present invention, an image processing apparatus according to an embodiment of the present invention includes: a generating unit that generates first bitmap data and second bitmap data different from the first bitmap data based on PDL data; an analysis means for analyzing the first bitmap data; and associating the second bitmap data with a print color gamut in accordance with the analysis result of the first bitmap data. The image processing device is characterized by comprising a correction means for correcting the second bitmap data based on a gamut mapping table, and a quantization means for generating quantized image data based on the corrected second bitmap data. [Effects of the Invention]

[0008] According to the present invention, it is possible to provide a technique for performing appropriate gamut mapping for an original document described in a PDL. [Brief explanation of the drawings]

[0009] [Figure 1] FIG. 2 is a diagram showing the arrangement of a printing unit of a serial image processing apparatus 100 according to the first embodiment. [Figure 2]FIG. 2 is a schematic diagram of a controller unit of the image processing device 100. [Figure 3] 4 is a flowchart illustrating the overall processing of the image processing device according to the first embodiment. [Figure 4] 10 is a flowchart illustrating image analysis processing in S303 according to the first embodiment. [Figure 5] 10 is a flowchart for explaining the region division processing in S401 according to the first embodiment. [Figure 6A] FIG. 10 is a diagram showing an example of a region analysis result in S402 according to the first embodiment. [Figure 6B] FIG. 10 is a diagram showing an example of a region analysis result in S402 according to the first embodiment. [Figure 6C] FIG. 10 is a diagram showing an example of a region analysis result in S402 according to the first embodiment. [Figure 7] 10 is a flowchart for explaining the mapping table creation process in S403 according to the first embodiment. [Figure 8] 10 is a flowchart for explaining the correction processing of image data to be printed in step S305 according to the first embodiment. [Figure 9] 3A to 3C are diagrams illustrating an outline of print image data and analysis image data according to the first embodiment. [Figure 10] FIG. 1 is a diagram illustrating mapping. [Figure 11] 10 is a flowchart illustrating the overall processing of an image processing apparatus according to a second embodiment. [Figure 12] 10 is a flowchart illustrating the overall processing of an image processing apparatus according to a third embodiment. [Figure 13] 13A to 13C are views for explaining an example of a reduction process of print image data according to the third embodiment. [Figure 14] 13 is a flowchart illustrating a case where fallback processing occurs during builder processing according to the fourth embodiment. [Figure 15] 15A to 15C are diagrams for explaining the contents of intermediate data in each state in the processing of FIG. 14. DETAILED DESCRIPTION OF THE INVENTION

[0010] Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. Note that the following embodiments do not limit the disclosure according to the claims. Although multiple features are described in the embodiments, not all of these multiple features are necessarily essential to the disclosure, and multiple features may be combined arbitrarily. Furthermore, in the accompanying drawings, the same reference numerals are used to designate the same or similar components, and redundant explanations will be omitted.

[0011] (First embodiment) FIG. 1 is a diagram showing the configuration of a printing unit of a serial image processing apparatus 100 according to the first embodiment.

[0012] The print head unit 101 is mounted on a carriage 102 that moves at a constant speed in a main-scanning direction 110, and ejects ink droplets at a frequency corresponding to the constant speed.

[0013] After each main print scan, the print paper 103 is transported a predetermined distance in the sub-scanning direction 111. During transport, the print paper 103 is sandwiched between a roller pair of a paper feed roller 104 and an auxiliary roller 105, and a roller pair of a transport roller 106 and an auxiliary roller 107. By intermittently repeating these main print scans and transport operations, an image is printed in stages on the print paper 103.

[0014] In the print head unit 101, black (K), cyan (C), magenta (M), and yellow (Y) recording heads are arranged in parallel in a main scanning direction 110 as shown in Figure 1. Each color recording head has multiple recording elements arranged in a sub-scanning direction 111.

[0015] FIG. 2 is a schematic diagram of the controller unit of the image processing device 100. As shown in FIG.

[0016] The host computer 201 is an information processing device (e.g., a PC) that creates a print job consisting of PDL (Page Description Language) data and printing condition information required for printing. The printing condition information includes information such as the type and size of printing paper and print quality.

[0017] The controller 202 is a control device that controls the image processing device 100. Next, the internal configuration of the controller 202 will be described.

[0018] The ROM 203 is a readable memory that stores a program for controlling the image processing device 100 .

[0019] The CPU 204 controls the image processing device 100 by executing a program stored in the ROM 203 .

[0020] The host IF control unit 206 communicates with the host computer 201 , receives print jobs and the like, and stores the print jobs and the like in the RAM 205 .

[0021] The RAM 205 is a readable and writable memory used as an area for executing programs and storing data.

[0022] The image processing unit 207 performs quantization processing to generate printable quantized image data from the PDL data in the RAM 205 in accordance with the printing conditions included in the print job, and stores the generated quantized image data in the RAM 205. The configurations of the RAM 205 and the image processing unit 207 will be described later.

[0023] The head IF control unit 208 transmits the quantized image data in the RAM 205 to the head control unit 209 .

[0024] The head control unit 209 outputs print data 210 based on information acquired from the controller 202 (head IF control unit 208 ), and controls the print head unit 101 to record an image on the printing paper 103 .

[0025] The shared bus 211a is connected to the ROM 203, CPU 204, RAM 205, host IF control unit 206, image processing unit 207, and head IF control unit 208. Communication between the connected components is possible via this shared bus 211a.

[0026] Furthermore, each of the main data processing units and each area of ​​the RAM 205 in this embodiment will be described.

[0027] The RAM 205 includes a PDL area 220, an intermediate data area 221, a bitmap data area 222, and a correction data area 223. The RAM 205 also includes other areas, but their description will be omitted.

[0028] The PDL area 220 is an area that holds PDL data of a print job.

[0029] The intermediate data area 221 is an area for storing intermediate data generated by the CPU 204 from PDL data.

[0030] The bitmap data area 222 is an area for storing bitmap data generated by the renderer unit 211 from the intermediate data.

[0031] The correction data area 223 is an area that holds correction value table data generated by the analysis unit 212. The renderer unit 211 reads the intermediate data from the intermediate data area 221, generates bitmap data for each band, and stores the bitmap data in the bitmap data area 222. Here, bitmap data refers to information in which an image is recorded as a series of pixel values. The number of channels in bitmap data is 1Ch, 3Ch, 4Ch, etc. The number of bits in bitmap data is 8 bits, 16 bits, etc. For example, when the bitmap data is represented by RGB information, the pixel value information may be a sequential data sequence such as RGBRGBRGB... or a data sequence such as RRRRR...RRGGGGG...GGBBBBB...BB.

[0032] The analysis unit 212 reads and analyzes bitmap data from the bitmap data area 222, calculates correction data based on the analysis result, and stores the correction data in the correction data area 223.

[0033] The correction unit 213 reads the bitmap data of the printing target and the correction data for the corresponding area from the bitmap data area 222 and the correction data area 223, and performs correction processing on the bitmap data using the correction data.

[0034] The quantization unit 214 performs quantization processing on the corrected bitmap data, and stores the quantized image data in an area different from the PDL area 220 to the correction data area 223 of the RAM 205.

[0035] The JPEG encoder 215 performs JPEG compression on bitmap data under specific conditions. The JPEG decoder 216 performs JPEG decoding on JPEG data under specific conditions.

[0036] <Bitmap data conversion of PDL data (builder process and rendering)> This embodiment describes a method for generating bitmap data from PDL data. PDL data describes print content by combining information such as text and images on a page-by-page basis. Without inspecting the PDL for one page, it is impossible to determine which drawing data will be drawn at which position on the page. On the other hand, a method that processes consecutive pixel positions is preferable for generating bitmap data quickly. This method also provides efficient memory access to the RAM 205 and is expected to enable the rapid generation of equivalent pixels. Therefore, the PDL is inspected, and "intermediate data" is generated by processing the PDL data as drawing information that facilitates the generation of bitmap data. This method of efficiently generating bitmap data based on the intermediate data is common. In this embodiment, the process leading up to the generation of intermediate data is referred to as "builder processing," and the process leading up to the generation of bitmap data is referred to as "rendering." Furthermore, in this embodiment, the builder processing is performed by the CPU 204, and the rendering is performed by the renderer unit 211. Furthermore, the intermediate data is formatted to execute drawing commands. It is desirable to execute these commands on the intermediate data so that bitmap data can be generated raster by raster from the beginning of the page. Therefore, in this embodiment, intermediate data is described as information including drawing commands, but is not limited to the above intermediate data as long as it is information converted from PDL data into information that can be processed efficiently by the renderer unit 211.

[0037] 3 is a flowchart illustrating the overall processing of the image processing device according to the first embodiment. By executing the processing in FIG. 3, it becomes possible to set areas in the analysis image data to which gamut mapping means should be applied, and to select an appropriate gamut mapping means for each area according to the analysis results of each area.

[0038] In S301, the CPU 204 obtains PDL data from the PDL area 220 of the RAM 205. The CPU 204 performs builder processing on the PDL data to generate intermediate data. The CPU 204 stores the intermediate data in the intermediate data area 221. After completing generation of all intermediate data, the CPU 204 deletes the PDL data from the PDL area 220.

[0039] In S302, the CPU 204 reads the intermediate data from the intermediate data area 221 of the RAM 205 and causes the renderer unit 211 to perform image analysis rendering on the intermediate data. The CPU 204 stores the bitmap data (first bitmap data) obtained by the rendering in the bitmap data area 222. The bitmap data (image) is generated in bitmap format, making it possible to obtain pixel values ​​corresponding to each coordinate. In S302, the intermediate data is rendered at the resolution required for the image analysis in S303. When image analysis is performed on bitmap data at the printing resolution, the image is analyzed pixel by pixel, which imposes a high processing load. Furthermore, in analysis processing that requires judgment from the entire image, bitmap data at the printing resolution must be stored in the RAM 205. Therefore, the rendering resolution in S303 can be determined based on the characteristics of the analysis processing and the required performance of the system. In this embodiment, the printing resolution is set to 600 dpi and the analysis resolution is set to 150 dpi, as an example, but this is not limited to these values.

[0040] In S303, the CPU 204 reads out the bitmap data rendered at the analysis resolution, and performs image analysis of the bitmap data using the analysis unit 212. Details of the image analysis process will be described with reference to FIG.

[0041] FIG. 4 is a flowchart illustrating the image analysis process of S303 according to the first embodiment.

[0042] In S401, the analysis unit 212 divides the analysis image data into one or more regions using bitmap data rendered at the analysis resolution (hereinafter referred to as analysis image data). Details of the region division process will be described later with reference to FIG.

[0043] In S402, the analysis unit 212 performs type analysis for each region based on the region information divided in S401. Details of the region analysis process will be described later with reference to Figs. 6A to 6C.

[0044] In S403, the analysis unit 212 creates an appropriate mapping table for each region based on the region information and pixel values ​​of the region analyzed in S402. The analysis unit 212 stores the created mapping table in the correction data region 223 of the RAM 205. The specific process of creating a region mapping table for each region of the analysis image data will be described later with reference to FIG.

[0045] FIG. 5 is a flowchart illustrating the region division process in S401 according to the first embodiment.

[0046] In S501 , the CPU 204 acquires the image data for analysis from the bitmap data area 222 .

[0047] In S502, the analysis unit 212 determines whether or not there is a blank for each pixel in the analysis image data. In this embodiment, pixels whose pixel values ​​are all R=G=B=255 are considered to be blank.

[0048] In S503, the analysis unit 212 sets the initial value of each pixel of the analysis image data based on the following setting conditions. (Setting conditions) - Set region number "-1" for non-blank pixels - Set the maximum area number to "0" Specifically, the analysis unit 212 sets the initial value of each pixel as follows. Blank pixel (x1,y1) area_number[x1][y1]=0 Non-blank pixel (x2,y2)area_number[x2][y2]=-1 Maximum area number max_area_number=0 At the completion of the process of S503, the region numbers of all pixels will have been set to "0" or "-1."

[0049] In S504, the analysis unit 212 detects pixels in the analysis image data whose area number is "-1" based on the following determination condition: Specifically, the determination is made as follows. (Determination condition) if(area_number[x][y]=-1) → detected else → not detected When the analysis unit 212 detects the first pixel with the region number "-1", the process proceeds to S505.

[0050] If the analysis unit 212 does not determine in S505 that there is no pixel with region number "-1" in the analysis image data (No in S505), the process proceeds to S506. On the other hand, if the analysis unit 212 determines that there is no pixel with region number "-1" in the analysis image data (Yes in S505), the process proceeds to S510. Here, if it is determined that the region numbers of all pixels are not "-1", this means that all pixels are blank pixels or any region number (except "-1") has been set.

[0051] In S506, the analysis unit 212 increments the maximum region number by +1 and sets the updated maximum region number as the region number of the pixel. Specifically, the maximum region number is set for the detected pixel (x3, y3) as follows: max_area_number=max_area_number+1 area_number[x3][y3]=max_area_number For example, since this is the first area detected after the process of S506 is executed, the maximum area number is "1" and the area number of the pixel is also "1". Thereafter, each time the process of S506 is executed again, the number of areas increases by 1. Thereafter, in S507 to S509, the process of expanding consecutive non-blank pixels into the same area is performed.

[0052] In S507, the analysis unit 212 searches for a pixel that is an adjacent pixel to the pixel with the maximum region number and has the region number “−1.” Specifically, the following determination is made. if (area_number[x][y]=max_area_number) if((area_number[x-1][y]=-1)or (area_number[x+1][y]=-1)or (area_number[x][y-1]=-1)or (area_number[x][y+1]=-1)) → Detected else → not detected

[0053] In S508, when the analysis unit 212 detects the first adjacent pixel with the region number "-1", it determines that an adjacent pixel with the region number "-1" has been detected (Yes in S508), and proceeds to S509. On the other hand, if the region numbers of all adjacent pixels are not "-1" (No in S508), the analysis unit 212 determines that an adjacent pixel with the region number "-1" has not been detected (No in S508), and returns the process to S504.

[0054] In S509, the analysis unit 212 sets the region number of the adjacent pixel (pixel with region number "-1") to the maximum region number value. Specifically, the analysis unit 212 sets the maximum region number value for the detected adjacent pixel by performing the following process, with the pixel of interest position set to (x4, y4). if((area_number[x4-1][y4]=-1) area_number[x4-1][y4]=max_area_number if((area_number[x4+1][y4]=-1) area_number[x4+1][y4]=max_area_number if((area_number[x4][y4-1]=-1) area_number[x4][y4-1]=max_area_number if((area_number[x4][y4+1]=-1) area_number[x4][y4+1]=max_area_number After updating the region number of the adjacent pixel in S509, the analysis unit 212 returns the process to S507 and determines whether there are any other adjacent non-blank pixels. If there are no more non-blank adjacent pixels (i.e., if there are no more pixels to be assigned the maximum region number), the analysis unit 212 returns the process to S504.

[0055] In S510, the analysis unit 212 sets the maximum region number value as the number of regions. That is, the maximum region number value set so far becomes the number of regions present in the analysis image data. This completes the region division process for the analysis image data.

[0056] Fig. 9 is a diagram illustrating an overview of the printing image data and the analysis image data according to the first embodiment. Fig. 9 shows the printing image data 901, the analysis image data 902, and the distribution of each area after the area division of the analysis image data 902 is completed.

[0057] Printing image data 901 is image data with printing resolution. Analysis image data 902 is image data with analysis resolution. Areas 903, 904, and 905 represent the areas after area division of analysis image data 902 is completed. Area 903 (shown as area 1) contains photograph data. Area 904 (shown as area 2) contains data of the gradation portion. Area 905 (shown as area 3) contains data of the text portion. Therefore, the result of area division in analysis image data 902 indicates the number of areas as 3.

[0058] 9, the analysis unit 212 (area division means) divides the area so that at least one blank tile is provided between one area (e.g., area 903) and another area (e.g., area 904) and the areas are spatially separated from each other. In other words, the analysis unit 212 determines that multiple pixels that are not separated by even a single blank tile are adjacent to each other, and therefore performs area division processing by regarding them as the same area.

[0059] The analysis unit 212 is not limited to the above method and may use other methods to divide the analysis image data 902. For example, the region may be divided starting from a non-blank pixel, or the region may be divided based on the tendency values ​​of not only adjacent pixels but also wider surrounding pixels.

[0060] 6A to 6C are diagrams showing an example of the results of the area type analysis in S402 according to the first embodiment.

[0061] Fig. 6A shows a state in which one area 600 is set for the character "i" as a result of the area division process in S401. Fig. 6B shows a state in which one area 601 is set for the circular gradation as a result of the area division process in S401.

[0062] Area 600 or area 601 is a rectangle that surrounds the text or circular gradation, but when the area division method described in S401 is used, it will be divided at the boundary with the white pixel. For ease of understanding, a rectangular area is set based on the Y coordinates of the topmost and bottommost pixels of the area and the X coordinates of the rightmost and leftmost pixels of the area, based on the results of area division performed in S401.

[0063] In this embodiment, the presence or absence of an edge in the halftone frame area is determined using an edge detection area 602 and an edge detection area 603. There are various methods for determining the presence or absence of an edge, but here, as an example, edge determination processing is performed using "same pixels," "similar pixels," and "different pixels."

[0064] As shown in FIG. 6C, pixels within THa to THb are classified as same pixels, pixels within THc to THd as similar pixels, and all other pixels as different pixels. Here, the value compared with TH may be RGB information, YCbCr information, or information on any one channel, with no restrictions on the number or type of channels. The values ​​of THa to THd may be different for each color information; for example, different thresholds may be set for all RGB. By comparing all pixels in the edge detection areas 602 and 603 with the center pixel, the number of same pixels, similar pixels, and different pixels contained in the edge detection areas 602 and 603 can be determined. The analysis unit 212 scans the entire edge detection areas 602 and 603 and creates a histogram accumulating the number of same pixels, similar pixels, and different pixels. Since the central pixel (shown as a rectangular area including diagonal lines) of the edge detection area 602 needs to scan the entire area 600, the edge of the edge detection area 602 can be scanned even if it is outside the area 600. Similarly, the edge of the edge detection area 603 can be scanned even if it is outside the area 601.

[0065] Histogram 604 shows the results of edge detection processing for region 600. Histogram 605 shows the results of edge detection processing for region 601. According to the frequency distribution of histogram 604, region 600 (including "i") in FIG. 6A has many identical pixels and different pixels, but few similar pixels. According to the frequency distribution of histogram 605, region 601 (including circular gradation) in FIG. 6B has more similar pixels than region 600.

[0066] Based on the frequency distribution of the three types of pixels in histograms 604 and 605, it can be determined whether region 600 and region 601 contain "text or graphics" or "photograph or gradation." For example, if the number of similar pixels in histogram 604 is low, the analysis unit 212 determines that region 600 contains "text or graphics." In this way, by setting thresholds for identical pixels, similar pixels, and different pixels, it can be determined whether each region contains "text or graphics" or "photograph or gradation." For example, the analysis unit 212 determines whether each region contains "text or graphics" based on whether the following conditions are met: Based on the determination results for each pixel in each region, the type that is most prevalent within the region may be used as the type determination result for the region; or, for example, if the region has even a slight characteristic of "photograph or gradation," the type determination result for the region may be "photograph or gradation." Same pixel index > TH same && Similar pixel index < TH near && Different pixel index > TH other

[0067] The above edge detection analysis process is an example, and is not limited to this. For example, the same pixels, similar pixels, and different pixels may be compared using the cumulative value obtained from the number of pixels determined as a result of determining all pixels and the above formula, or the number of pixels determined as a result of determining the area may be converted into the area ratio of the region and then compared using the above formula. In this embodiment, the edge detection process using the edge detection area 602 and the edge detection area 603 has been described, but edge detection may also be performed using the color distribution within the region.

[0068] FIG. 7 is a flowchart illustrating the mapping table creation process in S403 according to the first embodiment.

[0069] In step S701, the CPU 204 acquires image data for analysis from the bitmap data area 222.

[0070] In S702, the analysis unit 212 acquires the print gamut required to create the mapping table. The print gamut is information indicating the range of colors that can be reproduced when the printer prints, and differs depending on the printing paper (plain paper, photo paper) and print mode (draft, standard, fine, etc.). Generally, the print gamut is wider when printing on photo paper than when printing on plain paper. The print gamut becomes wider in the order of draft mode, standard mode, and fine mode. This is because the more ink used in printing, and the more of the printed ink that is present on the surface of the printing paper, the better the color reproduction of the printed result.

[0071] Various methods can be used to represent the print color gamut, but one method is to represent it as a set of lightness (L: Lightness), chroma (C: Chroma), and hue (H: Hue). Specifically, the print color gamut is represented by describing the maximum chroma for each lightness and hue, using a table such as the one shown below. Cmax_Table[L][H] (L=0~100, H=0~360)

[0072] Here, there are 101 types of L and 360 types of H, resulting in 36,360 (=101×360) sets of C information. Note that the number of gradations of L and H may be reduced to reduce the capacity of the mapping table.

[0073] For example, the print gamut is stored in advance in the ROM 203 of the printer, and the CPU 204 reads out the print gamut from the ROM 203. As described above, the print gamut is predetermined as the performance of the printer (printing device). Therefore, for example, print patches are printed in advance with each RGB value, and the maximum saturation for each lightness and hue is set based on the measurement results of the print patches.

[0074] In S703, the analysis unit 212 determines whether the area of ​​the analysis image data includes "text or graphics" based on the area analysis result of S402. If the analysis unit 212 determines that the area includes "text or graphics" (Yes in S703), the process proceeds to S704. If the analysis unit 212 determines that the area does not include "text or graphics" (No in S703), the process proceeds to S708.

[0075] In S704, the analysis unit 212 acquires the pixel value of one pixel in the region of the image data for analysis.

[0076] In S705, the analysis unit 212 determines whether the pixel value acquired in S704 is within the print gamut acquired in S702. Specifically, the analysis unit 212 converts the RGB values, which are the acquired pixel values, into lightness, saturation, and hue. Since RGB values ​​are generally sRGB values, this embodiment will be described using sRGB values ​​as an example. For example, a conversion table sRGBtoLCH[Rin][Gin][Bin][0-2] that converts sRGB values ​​into lightness, saturation, and hue is stored in advance in the ROM 203 of the printer. Then, the analysis unit 212 calculates Lin, Cin, and Hin using the sRGB values ​​as follows: Lin=sRGBtoLCH[Rin][Gin][Bin][0] Cin=sRGBtoLCH[Rin][Gin][Bin][1] Hin=sRGBtoLCH[Rin][Gin][Bin][2] Then, the analysis unit 212 performs a comparison process shown in the following formula to determine whether Lin, Cin, and Hin are present in the print color gamut. If(Cin<=Cmax_Table[Lin][Hin]) → within printing color gamut Else →Out of print gamut

[0077] If the analysis unit 212 determines that Lin, Cin, and Hin are present in the print gamut (Yes in S705), the process proceeds to S706. On the other hand, if the analysis unit 212 determines that Lin, Cin, and Hin are not present in the print gamut (No in S705), the process proceeds to S708.

[0078] In S706, the analysis unit 212 determines whether the determination of all pixels in the region has been completed. If the analysis unit 212 determines that the determination of all pixels in the region has been completed (Yes in S706), the process proceeds to S707. On the other hand, if the analysis unit 212 determines that the determination of all pixels in the region has not been completed (No in S706), the process returns to S704, and the above process is performed on the next pixel in the partial page.

[0079] In S707, the analysis unit 212 sets the "colorimetric" mapping table as the mapping table for the region, and then ends the process. Setting the "colorimetric" mapping table will be described later with reference to FIG. 10. The process of S707 is performed when all pixels in the region are within the print gamut. Therefore, when the "colorimetric" mapping table is used for a region made up of multiple colors within the printer's reproduction gamut, no reduction in color difference occurs in the region.

[0080] In S708, the analysis unit 212 sets the "perceptual" mapping table as the mapping table for the region and terminates the process. Setting the "perceptual" mapping table will be described later with reference to FIG. 10. The process of S708 is performed when the pixels in the region include pixels outside the print color gamut. Therefore, using the "colorimetric" mapping table for a region composed of multiple colors outside the printer's reproduction color gamut may result in a decrease in color difference in the region. Another condition for performing the process of S708 is when the region includes a "photograph or gradation." "Photographs or gradations" often have characteristics such as gradual pixel tones, and the decrease in gradation that can occur when using the "colorimetric" mapping table may also occur in the region. Therefore, in S708, the analysis unit 212 sets the "perceptual" mapping table as the mapping table for the region.

[0081] FIG. 10 is a diagram illustrating mapping.

[0082] Figure 10(a) shows the relationship between the color space of a standard display and the color space of a printer. Specifically, the solid line 1001 in Figure 10(a) represents the sRGB color space defined as IEC 61966-2-1:1999 in the L*a*b* uniform color space. The solid line 1001 also represents the color space that the original data (PDL data) from the host computer 201 can adopt. The print gamut 1002 (shown by the dashed line) in Figure 10(a) represents the color reproduction range of the printer.

[0083] When colors displayed on a standard display are output by the image processing device 100, colors outside the color gamut of the image processing device 100 must be mapped to appropriate colors within the gamut. This mapping is generally called color space compression (color mapping). Generally, there are multiple methods of color space compression, and the appropriate method is used depending on the purpose. In Figure 10(a), WP10011 and WP10021 are the brightest colors (WP: white point) within the gamut of the standard display and printer, respectively. Also, BP10012 and BP10022 are the darkest colors (BP: black point) within the gamut of the standard display and printer, respectively.

[0084] FIG. 10(b) is a diagram illustrating "perceptual" mapping. As shown by the bold solid line 1011 in FIG. 10(b), the white point (WP10011) and black point (BP10012) of the standard display are mapped to the white point (WP10021) and black point (BP10022) of the printer, respectively. Other colors are then converted so that the correlation between the white point and the black point is maintained. The entire color space 1001 of the standard display is converted to fit within the printer's print gamut 1002 (by compressing saturation in the color direction). Therefore, colors in the color space 1001 of the standard display are converted to the bold solid line 1011, and colors in the original print gamut 1002 are converted to the bold dashed line 1012. The "perceptual" mapping in FIG. 10(b) is suitable for processing photographs and other images with a large number of colors. As shown in FIG. 10(b), the color gamut of the standard display is compressed in both lightness and saturation.

[0085] Figure 10(c) is a diagram illustrating absolute colorimetric mapping. As shown in Figure 10(c), this method does not compress colors within the printer's print gamut, but compresses colors outside the print gamut using both lightness and saturation. The thick arrow 1021 in Figure 10(c) indicates the direction of the color compression process. The multiple colors included in the area of ​​the thick arrow 1021 are displayed as different colors on a standard display, but after mapping, they become the same color at the end of the arrow.

[0086] Figure 10(d) is a diagram illustrating relative colorimetric mapping. As shown in Figure 10(d), only the white point of the standard display is mapped to the white point of the printer. Then, colors within the printer's print gamut are not compressed, and colors outside the print gamut are compressed in both lightness and saturation. "Relative colorimetric mapping" can reproduce the relative color difference between each color on the standard display and white as the relative color difference between each color and paper white during printing. In Figure 10(d), the multiple colors included in the area indicated by the thick arrow 1031 were represented as different colors on the standard display, but after mapping, they become the same color at the end of the arrow.

[0087] Alternatively, the white point and black point of a standard display may be mapped to the white point and black point of a printer, respectively, and then saturation compression may be performed on colors outside the printer's print gamut without compressing colors within the printer's print gamut. Examples of the "colorimetric mapping" set in S707 of FIG. 7 include the "absolute colorimetric mapping" described in FIG. 10(c) and the "relative colorimetric mapping" described in FIG. 10(d), but other methods may also be used. When using "relative colorimetric mapping" or other methods, mapping to the white point and black point must be performed before processing in S705. Specifically, in FIG. 10(d) (where only the white point is mapped), if the L value of the white point of the printer's print gamut is set to Lmax (the L value range is 0 to 100), the following formula is used for determination: Lin2 = Lin-(100-Lmax) If(Cin<=Cmax_Table[Lin2][Hin]) →Within printing color gamut Else →Out of print gamut

[0088] Furthermore, when mapping both the white point and the black point, the L value of the white point of the printer's printing gamut is set to Lmax (the L value range is 0 to 100), and the L value of the black point is set to Lmin. In this case, the determination is made using the following formula: Lin2=(Lmax-Lmin)*Lin / 100+Lmin If(Cin<=Cmax_Table[Lin2][Hin]) →Within printing color gamut Else →Out of print gamut

[0089] As described above, an appropriate mapping method can be selected for each region of the analysis image data. That is, "perceptual" mapping is set for regions containing color information outside the print color gamut and regions containing photographs or gradations, and "colorimetric" mapping is set for regions not containing color information outside the print color gamut. This allows mapping with reduced saturation for digital documents composed of colors that can be reproduced by a printer. Also, mapping with reduced color difference between colors for digital documents composed of multiple colors outside the printer's reproduction color gamut can be performed. Returning to the explanation of Figure 3.

[0090] In S304, the CPU 204 reads the intermediate data from the intermediate data area 221 and performs print rendering on the intermediate data using the renderer unit 211 to generate bitmap data (second bitmap data). The CPU 204 stores the bitmap data in the bitmap data area 222. An image obtained by rendering the intermediate data is generated in bitmap format, and the CPU 204 can obtain pixel values ​​corresponding to each coordinate. In S304, the intermediate data is rendered at the resolution required for printing. When the rendering process is completed using all of the information in the intermediate data, the CPU 204 deletes the intermediate data from the intermediate data area 221.

[0091] In S305, the correction unit 213 corrects the bitmap data rendered at the printing resolution (hereinafter referred to as print image data) using the gamut mapping table in the correction data area 223. The correction process for the print image data will be described in detail with reference to FIG.

[0092] FIG. 8 is a flowchart illustrating the correction process of the print image data in S305 according to the first embodiment.

[0093] In step S801 , the CPU 204 obtains print image data from the bitmap data area 222 .

[0094] In S802, the correction unit 213 acquires the pixel value of one pixel from the print image data.

[0095] In S803, the correction unit 213 retrieves from the correction data area 223 a mapping table associated with the area number corresponding to the acquired pixel value. If the resolutions of the analysis image data and the print image data are different, the pixel values ​​must be associated with each other, taking into account the difference in resolution. For example, suppose the resolution of the analysis image data is 150 dpi and the resolution of the print image data is 600 dpi. In this case, each pixel in the analysis image data is enlarged to 4x4 pixels and assigned to the print image data. Even if the resolution of the analysis image data is low, non-blank pixels are not lost when reduced by interpreting the drawing command during rendering and rendering at a low resolution. Therefore, the corresponding area in the print image data can be covered by enlarging the analysis result (analysis image data). On the other hand, pixel values ​​may be directly written in the drawing command. In this case, rendering at a reduced resolution may result in pixel loss. Therefore, the reduction resolution value can be set depending on the desired level of image conversion accuracy and the required speed.

[0096] In S804, the correction unit 213 performs gamut mapping on the target pixel using the corresponding gamut mapping table.

[0097] In S805, the correction unit 213 determines whether gamut mapping processing has been completed for all pixels. If the correction unit 213 determines that the determination for all pixels has been completed (Yes in S805), the processing ends. On the other hand, if the correction unit 213 determines that the determination for all pixels has not been completed (No in S805), the processing returns to S802, and the above processing is performed for the next pixel.

[0098] The image correction means is not limited to the above, and may, for example, perform colorimetric gamut mapping on all pixels in the print image data for which "colorimetric" gamut mapping is desirable, and then perform perceptual gamut mapping on all pixels for which "perceptual" gamut mapping is desirable. In this case, the amount of gamut mapping table loading can be reduced, improving processing efficiency.

[0099] In S306, the CPU 204 performs predetermined processing on the print image data corrected in S305. Specifically, the CPU 204 performs ink color separation, output characteristic conversion, and quantization processing on each pixel of the corrected print image data using the quantization unit 214. The CPU 204 stores the quantized image data in the RAM 205. The head control unit 209 reads the quantized image data via the head IF control unit 208, and outputs the quantized image data (information capable of ejecting ink droplets) to the print head unit 101, and printing begins.

[0100] As described above, in the first embodiment, analysis processing is performed on intermediate data obtained by builder processing of PDL data, using analysis image data generated by further rendering. The analysis image data has the minimum resolution required for analysis processing, making it possible to reduce memory size. By analyzing the analysis image data, stable analysis results can be obtained without relying on external applications, making it possible to select gamut mapping with a granularity different from that of the PDL (description language).

[0101] (Second embodiment) In the second embodiment, differences from the first embodiment will be described. In the first embodiment, PDL data was converted into intermediate data by builder processing. By storing the intermediate data, rendering processing at each resolution for analysis and printing was realized. In the first embodiment, image analysis was performed at an appropriate resolution within the image processing device 100, satisfying the processing speed while obtaining stable analysis results that are not dependent on external applications. In the second embodiment, a configuration will be described in which data is stored in the form of PDL data rather than intermediate data.

[0102] 11 is a flowchart illustrating the overall processing of the image processing apparatus according to the second embodiment. Note that the second embodiment will be described with respect to differences from the first embodiment.

[0103] In S1101, the CPU 204 obtains PDL data sent by an application from the PDL area 220. The CPU 204 interprets the PDL data through builder processing and generates intermediate data. Here, the CPU 204 does not delete the PDL data from the PDL area 220, but holds the PDL data.

[0104] In S302, the CPU 204 performs rendering for image analysis based on the intermediate data. In S302, the intermediate data is rendered at the resolution required for image analysis in S303. If the intermediate data was saved in the intermediate data area 221 in S1101, it is deleted when rendering is completed.

[0105] In S1102, the CPU 204 acquires PDL data from the PDL area 220. The CPU 204 interprets the PDL data through builder processing and generates intermediate data. After generating the intermediate data, the CPU 204 deletes the PDL data from the PDL area 220.

[0106] In S304, the CPU 204 performs printing rendering based on the intermediate data. In S304, rendering is performed at the resolution required for image correction in S305. If the intermediate data is saved in the intermediate data area 221 as of S1102, it is deleted when rendering is completed.

[0107] The difference from the first embodiment is that the data held during the image analysis process is not the intermediate data in the intermediate data area 221 but the PDL data in the PDL area 220.

[0108] In the second embodiment, PDL data is stored in memory (RAM 205), and rendering to the PDL data is performed twice: once during image analysis and once during printing. Compared to the first embodiment, the second embodiment stores PDL data instead of intermediate data, which further reduces memory size.

[0109] (Third embodiment) In the third embodiment, differences between the first and second embodiments will be described. In the first embodiment, PDL data was converted into intermediate data by a builder process, and the intermediate data was stored. In the second embodiment, PDL data was stored, and intermediate data for analysis and printing was generated. In the third embodiment, bitmap data is stored instead of intermediate data and PDL data.

[0110] 12 is a flowchart illustrating the overall processing of the image processing apparatus according to the third embodiment. Note that the third embodiment will explain the differences between the first and second embodiments.

[0111] In S1201, the CPU 204 performs rendering based on the intermediate data. The rendering resolution is a printing resolution (600 dpi) that is higher than the analysis resolution (150 dpi). The CPU 204 may delete the PDL data at the end of S301, and may also delete the intermediate data at the end of S1201. The CPU 204 stores the 600 dpi bitmap data (hereinafter referred to as print image data) in the bitmap data area 222.

[0112] In step S1202, the CPU 204 reduces the image data for analysis based on the print image data. The resolution of the analysis image data is 150 dpi.

[0113] FIG. 13 is a diagram illustrating an example of a process for reducing print image data according to the third embodiment.

[0114] The CPU 204 generates 150 dpi analysis image data by extracting one pixel from every 4 x 4 pixel interval from the 600 dpi print image data shown in Figure 13. The reduction method is not limited to pixel extraction. For example, instead of extracting pixels, the print image data may be reduced by outputting the average value of 4 x 4 pixels as the output value. While the extraction process has the advantage of efficient processing speed, the reduction method can be appropriately determined based on the target processing speed required for the reduced image generation process and the compatibility with the analysis content performed in the analysis process. When the reduction method is extraction, the characteristics of the original image (print image data) may not be captured. For example, if the content of the original image repeats white and black at a specific frequency, the extraction result may be only white or only black depending on the frequency and phase of the extraction interval. When global region discrimination is required as part of the analysis process, performing average reduction and outputting the intermediate value between white and black preserves the characteristics of the original image region.

[0115] On the other hand, there is also a method for outputting the maximum and minimum pixel values ​​for 4x4 pixels in print image data. When using the maximum pixel value, white (255 in 8-bit) is output preferentially over black (0 in 8-bit). Using the maximum pixel value is effective when the goal is to extract only solid areas of 4x4 pixels or larger, without extracting areas such as halftone dots and lines from the original image (600 dpi bitmap data) during output. For example, when switching the quantization threshold matrix through analysis, it may be desirable to switch only solid areas, since it is easier for the quantization algorithm to design graininess and density for solids.

[0116] When the minimum pixel value is used, black is output preferentially over white. Like the average value, it is effective when you want to distinguish between large areas, and its distinctive feature is that the pixel values ​​at the time of input are not changed relative to the average value. For example, when analyzing what colors are composed of within an area, it is preferable to output reduced pixel values ​​rather than a method in which reduced pixel values ​​are changed by averaging.

[0117] The CPU 204 stores the analysis image data, which is obtained by reducing the print image data, on the recording medium. The CPU 204 also maintains the print image data stored on the recording medium. Note that if the analysis image data can be generated by a sampling process as in this method, the pixel values ​​used for image analysis in S303 can be obtained from the recording medium by skipping the print image data. Returning to the explanation of Figure 12.

[0118] In S305, the CPU 204 uses 600 dpi print image data. As described above, in the third embodiment, the rendered print image data is stored in memory. During image analysis, analysis image data obtained by scaling the print image data to the resolution required for analysis is used. During printing, the analysis image data is corrected. Compared to the first embodiment, the third embodiment has the effect of reducing the processing load because the rendering process is not performed twice. Compared to the second embodiment, the third embodiment has the effect of reducing the processing load because the build process and rendering are not performed twice.

[0119] (Fourth embodiment) It has been explained that the intermediate data in the first embodiment is generated as a result of builder processing by the CPU 204, and that the intermediate data is data generated based on PDL data. It has also been explained that the intermediate data becomes bitmap data through rendering processing by the renderer unit 211. In the fourth embodiment, a "fallback process" will be explained when the capacity of the RAM 205 is insufficient when generating intermediate data.

[0120] <Fallback processing during rendering> The fallback process will be described below. When generating intermediate data, if the volume of the intermediate data exceeds a certain data volume, or if it is determined that the work area of ​​RAM 205 for processing the intermediate data will exceed a certain data volume, the generated intermediate data is rendered to generate bitmap data. Then, the intermediate data created up to that point is deleted. This bitmap data is used as the background image of the drawing area, and the background image is compressed to reduce the capacity of RAM 205. The series of processes described above is the fallback process.

[0121] After that, when one page's worth of intermediate data has been generated, the compressed background image is expanded and converted into bitmap data, and the remaining intermediate data for one page is also rendered into the bitmap data, finally generating one page's worth of bitmap data.

[0122] Since the background image is usually compressed, the volume of the added intermediate data is smaller than the volume of the original intermediate data. Therefore, by generating the remaining intermediate data in the free space created by compressing the background image, it is possible to process large-sized intermediate data in the limited space of RAM 205.

[0123] <Fallback processing flowchart> FIG. 14 is a flowchart illustrating a case where fallback processing occurs during builder processing according to the fourth embodiment.

[0124] When the builder process is started in S301 of FIG. 3, the CPU 204 acquires PDL data from the PDL area 220 in S2001. The CPU 204 then inspects the PDL data and generates multiple drawing commands so that bitmap data can be generated from the top of the page. A collection of drawing commands is called a "drawing command group." Data that includes the drawing command group becomes intermediate data.

[0125] In S2002, the CPU 204 generates drawing commands one by one from the PDL data.

[0126] In S2003, the CPU 204 calculates the free space in the intermediate data area 221.

[0127] In S2004, the CPU 204 compares the capacity for storing the drawing commands generated in S2002 with the free space calculated in S2003, and determines whether the drawing commands can be saved in the intermediate data area 221. If the CPU 204 determines that the drawing commands can be saved in the intermediate data area 221 (Yes in S2004), the process proceeds to S2009. On the other hand, if the CPU 204 determines that the drawing commands cannot be saved in the intermediate data area 221 (No in S2004), the process proceeds to S2005. When generating the first drawing command, there is sufficient free space in the intermediate data area 221, so the case where the drawing commands are saved in the intermediate data area 221 will be described first.

[0128] In S2009, the CPU 204 saves the group of drawing commands in the intermediate data area 221. At this time, if there is a drawing command for the same page, the CPU 204 adds a newly generated drawing command so that it can be placed following the previous drawing command, and places it as a group of drawing commands.

[0129] In S2010, the CPU 204 determines whether generation of one page of intermediate data is complete. If the CPU 204 determines that generation of one page of intermediate data is complete (Yes in S2010), it ends the builder process and deletes the PDL data from the PDL area 220. On the other hand, if the CPU 204 determines that generation of one page of intermediate data is not complete (No in S2010), it returns the process to S2002 and generates the next drawing command.

[0130] Continuing with the explanation of the case where generation of one page of intermediate data is not complete, the processes of S2002 and S2003 are executed again. If the CPU 204 determines in S2004 that there is no free space in the intermediate data area 221 or that the free space is insufficient, the process proceeds to S2005. In many cases, the process proceeds to S2005 because a command with a large capacity has been generated, such as when image data is embedded in the generated drawing command.

[0131] In S2005, the CPU 204 instructs the renderer unit 211 to generate bitmap data using the intermediate data. Based on the instruction to generate bitmap data, the renderer unit 211 performs rendering using the group of drawing commands in the intermediate data area 221 and the drawing commands newly generated in S2002, and writes the bitmap data to the bitmap data area 222. This bitmap data becomes the "background image."

[0132] In S2006, the CPU 204 instructs the JPEG encoder 215 to JPEG compress the bitmap data (background image) generated in S2005 and generate compressed data of the background image.

[0133] In S2007, the CPU 204 deletes various data used to generate the background image. Specifically, the various data includes the group of drawing commands and drawing commands used in S2005, and the bitmap data generated in S2005. Furthermore, the size of the background image generated in S2007 is smaller than the group of drawing commands and drawing commands used in S2005. Therefore, by deleting the various data, new capacity can be secured for the drawing commands that could not be saved in the intermediate data area 221. If the size of the background image is larger than the group of drawing commands and drawing commands used in S2005, or if the size of the background image is larger than a predetermined capacity, the compression rate used in S2006 may be increased and the compression process may be performed again. Note that although the various data are described as being "deleted," it is sufficient to set the area of ​​unnecessary data as free space; there is no need to overwrite the area of ​​unnecessary data with zero data.

[0134] In S2008, CPU204 is S2006 The background image generated in step S2002 is saved in intermediate data area 221, and the process proceeds to step S2010. A case where CPU 204 determines in step S2010 that generation of intermediate data has not been completed and the process proceeds to step S2002 will be described.

[0135] The processes of S2002 and S2003 are executed again, and if the CPU 204 determines in S2004 that there is free space in the intermediate data area 221, the process proceeds to S2009. At this time, because there is a background image in the intermediate data area 221, the drawing commands are placed so as not to overwrite the background image. The above process is then repeated until the generation of the intermediate data is completed or the drawing commands can no longer be saved in the intermediate data area 221.

[0136] Again, a case will be described in which the CPU 204 determines in S2004 that the drawing command cannot be saved in the intermediate data area 221 and the process proceeds to S2005.

[0137] In S2005, the CPU 204 instructs the renderer unit 211 to generate bitmap data using the intermediate data. Based on the instruction from the CPU 204, the renderer unit 211 performs rendering using the group of drawing commands in the intermediate data area 221, the drawing commands newly generated in S2002, and the compressed background image, and writes the bitmap data to the bitmap data area 222. At this time, the background image is decoded by the JPEG decoder 216, but the decoding instruction may be directed to either the CPU 204 or the renderer unit 211 as long as rendering can be performed on the decoded background image.

[0138] Next, the processing of S2006 is executed. In S2007, since the number of old background images to be deleted increases, the group of drawing commands used in S2005, the drawing commands, the background image, and the bitmap data generated in S2005 are deleted. In S2008, the background image generated in S2007 is saved again in the intermediate data area 221. Thereafter, the processing proceeds to S2010, and if it is determined that the intermediate data generation processing has not yet been completed, the processing described up to this point is performed.

[0139] In this way, when fallback processing occurs, the last generated background image and the group of drawing commands that were not deleted are saved in the intermediate data area 221 as intermediate data.

[0140] The processing of S302 (rendering for image analysis) in the fourth embodiment will be described. In the first embodiment, intermediate data was described as being "read out." However, when fallback processing occurs, the intermediate data includes a compressed background image in addition to the group of drawing commands. Therefore, the CPU 204 causes the renderer unit 211 to perform rendering for image analysis using the group of drawing commands in the intermediate data area 221 and the compressed background image. At this time, the background image is decoded by the JPEG decoder 216, but the decoding instruction may be directed to either the CPU 204 or the renderer unit 211 as long as rendering can be performed on the decoded background image.

[0141] The processing of S304 (rendering for printing) in the fourth embodiment will be described. In the first embodiment, the intermediate data was described as being "read out." However, when fallback processing occurs, the intermediate data includes a compressed background image in addition to the group of drawing commands. Therefore, the CPU 204 instructs the renderer unit 211 to read out the intermediate data using the group of drawing commands in the intermediate data area 221 and the compressed background image. for printingRendering is performed. At this time, the background image is decoded by the JPEG decoder 216, but as long as rendering can be performed on the decoded background image, the decoding instruction may be directed to the CPU 204 or the renderer unit 211. Also, as in the first embodiment, once all rendering processing is complete, the CPU 204 can delete the intermediate data from the intermediate data area 221 at this point.

[0142] <Explanation of intermediate data during fallback processing> FIG. 15 is a diagram for explaining the contents of the intermediate data in each state in the process of FIG.

[0143] The horizontal axis of table 2100 indicates the state of the intermediate data (state 1 to state 5). Intermediate data represents a group of drawing commands and a background image. Table 2100 shows how the group of drawing commands and background image of the intermediate data are generated and deleted. Below, we will explain what kind of intermediate data is stored in intermediate data area 221 in each state.

[0144] State 1 is a state in which a first group of drawing commands is generated in the first S2004 of Fig. 14 when there is free space in the intermediate data area 221, and the first group of drawing commands is stored in the intermediate data area 221. The intermediate data area 221 does not contain a background image as intermediate data, but contains the first group of drawing commands, which is a collection of multiple drawing commands.

[0145] State 2 is a state in which, while maintaining State 1, fallback rendering processing is performed in the next step S2004 when there is no free space in the intermediate data area 221, and a compressed background image (first background image) is stored in the intermediate data area 221. Note that, since the first background image has been generated, the first group of drawing commands has been deleted from the intermediate data area 221.

[0146] State 3 is a state in which, while maintaining State 2, a second group of drawing commands is generated in the next step S2004 when there is free space in the intermediate data area 221, and the second group of drawing commands is stored in the intermediate data area 221. Therefore, the first background image and the second group of drawing commands exist in the intermediate data area 221.

[0147] State 4 is a state in which, while maintaining State 3, fallback rendering processing is performed in the next step S2004 when there is no free space, and the compressed background image (second background image) is stored in the intermediate data area 221. Note that, since the second background image has been generated, the first background image and the second group of drawing commands have been deleted from the intermediate data area 221.

[0148] State 5 is a state in which, while maintaining State 4, a third group of drawing commands is generated in S2004 if there is free space, and the third group of drawing commands is stored in intermediate data area 221. Therefore, the second background image and the third group of drawing commands exist in intermediate data area 221. Then, when the intermediate data is completed in State 5, CPU 204 performs rendering for image analysis and rendering for printing using the intermediate data in State 5.

[0149] As described above, in the fourth embodiment, when the volume of intermediate data generated during builder processing increases and fallback processing occurs, intermediate data including drawing commands and a background image is generated. As a result, the fourth embodiment can perform image analysis rendering, printing rendering, and image correction in the same way as the first embodiment, without relying on the contents of the PDL data.

[0150] (Other embodiments) In the first to fourth embodiments, the analysis process for selecting a mapping table and the correction process for individually applying a color design table were described as examples. However, while the present invention is effective in systems that perform image analysis and correction, it is not limited to image analysis and correction. For example, an analysis process for distinguishing between solid and non-solid areas in an original image may be performed, and the quantization threshold matrix may be switched depending on the analysis results. When determining whether a solid is present, as described in the description of FIG. 13, halftone dots and lines can be easily removed by selecting the maximum pixel value using the reduction method when reducing an image. Although the reduction window size is limited in the reduction method used when reducing an image, analysis of reduced images can also determine whether a solid is present over a larger area. For solid areas, a threshold matrix can be selected that distributes dots within the area and maintains the graininess and density at the time of input. For non-solid areas, a matrix can be selected that prioritizes shape over graininess and concentrates dots.

[0151] In the above embodiment, a serial type image processing device 100 has been described, but the present invention is not limited to this as long as the features and configuration are similar. The image processing device 100 may use a line head, or may have a configuration in which serial types are arranged vertically.

[0152] Furthermore, although the above embodiment has been described as an inkjet printer, the present invention is not limited to this as long as the printer has similar characteristics and configuration. For example, the present invention may be a laser printer that uses toner, or a copier.

[0153] Furthermore, in the above embodiment, the term "PDL" is used simply, but any PDL that can generate intermediate data in the builder process may be used, such as PostScript and PDF, or a PDL unique to the printer manufacturer.

[0154] Furthermore, in the above embodiment, the image processing unit 207 is described as being equipped with a hardware processing unit including the renderer unit 211 and the analysis unit 212, but as long as the processing of each flowchart described in this embodiment can be realized, some of the processing in the image processing unit 207 may be performed by the CPU 204. For example, the processing of the renderer unit 211 and the analysis unit 212 may be software processing by the CPU 204.

[0155] Furthermore, in the above embodiment, the PDL area 220, the intermediate data area 221, the bitmap data area 222, and the correction data area 223 are arranged in the RAM 205, but they are not limited to the RAM 205 as long as they are a rewritable storage device. For example, an HDD and an eMMC separate from the RAM 205 may have all or part of the PDL area 220 to the correction data area 223.

[0156] (Other Examples) The present invention can also be realized by supplying a program that realizes one or more functions of the above-described embodiments to a system or device via a network or a storage medium, and having one or more processors in the computer of the system or device read and execute the program. It can also be realized by a circuit (e.g., ASIC) that realizes one or more functions.

[0157] The disclosure of this specification includes the following image processing device, image processing method, and program. (Item 1) a first generating means for generating intermediate data based on the PDL data; second generating means for generating first bitmap data and second bitmap data different from the first bitmap data based on the intermediate data; an acquisition means for acquiring a gamut mapping table that associates the second bitmap data with a print color gamut based on an analysis result of the first bitmap data; a correction means for correcting the second bitmap data based on the gamut mapping table; and a quantization means for generating quantized image data based on the corrected second bitmap data. 1. An image processing device comprising: (Item 2) The resolution of the first bitmap data is lower than the resolution of the second bitmap data. 2. The image processing device according to item 1, (Item 3) the gamut mapping table includes a perceptual mapping table and a colorimetric mapping table; 3. The image processing device according to item 1 or 2, characterized in that: (Item 4) after the acquisition means acquires the gamut mapping table, the correction means deletes the first bitmap data and corrects the second bitmap data based on the gamut mapping table; 4. The image processing device according to any one of items 1 to 3, (Item 5) a first storage means for storing the PDL data; the first generating means generates the intermediate data based on the PDL data held by the first holding means; the second means generates the first bitmap data and the second bitmap data based on the generated intermediate data. 5. The image processing device according to any one of items 1 to 4, (Item 6) further comprising second storage means for storing the intermediate data generated by the first generation means; the second generating means generates the first bitmap data and the second bitmap data based on the intermediate data held by the second holding means. 6. The image processing device according to any one of items 1 to 5, (Item 7) the second generation means, when the second storage means stores a first intermediate data group that is a part of the intermediate data, and when the size of a second intermediate data group that the second storage means receives after the first intermediate data group exceeds the available space of the second storage means, generates a first background image based on the first intermediate data group and the second intermediate data group; the second storage means deletes the first intermediate data group and stores the first background image. 7. The image processing device according to item 6, (Item 8) the second storage means stores the first background image and the third intermediate data group when the size of a third intermediate data group received after the second intermediate data group does not exceed the available space of the second storage means. 8. The image processing device according to item 7, (Item 9) the second generation means generates a second background image different from the first background image based on the third intermediate data group and the fourth intermediate data group when a capacity of a fourth intermediate data group received by the second storage means after the third intermediate data group exceeds an available capacity of the second storage means; the second storage means deletes the first background image and the third intermediate data group, and stores the second background image. 9. The image processing device according to item 8, (Item 10) the second generating means generates the first bitmap data and the second bitmap data based on the final storage result of the second storage means. 10. The image processing device according to any one of items 7 to 9, (Item 11) a compression processing means for performing an image compression process on the first background image and the second background image; and a decoding means for decoding the first background image and the second background image that have been subjected to image compression processing. 10. The image processing device according to item 9, (Item 12) the second generating means generates the first bitmap data by rendering based on the intermediate data, and generates the second bitmap data by performing predetermined image processing using the generated first bitmap data. 12. The image processing device according to any one of items 1 to 11, (Item 13) the predetermined image processing is processing to reduce the size of the second bitmap data; Item 13. The image processing device according to item 12. (Item 14) a first generation step of generating intermediate data based on the PDL data; a second generating step of generating first bitmap data and second bitmap data different from the first bitmap data based on the intermediate data; an acquisition step of acquiring a gamut mapping table that associates the second bitmap data with a print color gamut based on an analysis result of the first bitmap data; a correcting step of correcting the second bitmap data based on the gamut mapping table; a quantization step of generating quantized image data based on the corrected second bitmap data. An image processing method comprising: (Item 15) 14. A program for causing a computer to function as the image processing device according to any one of items 1 to 13.

[0158] The invention is not limited to the above-described embodiments, and various changes and modifications can be made without departing from the spirit and scope of the invention. Accordingly, the following claims are appended to apprise the public of the scope of the invention. [Explanation of symbols]

[0159] 201: Host computer 202: Controller 203:ROM 204:CPU 205:RAM 206: Host IF control unit 207: Image processing unit 208: Head IF control unit 209: Head control unit 210: Print data 211: Renderer 212: Analysis Department 213: Correction unit 214: Quantization section 215: JPEG encoder 216: JPEG decoder 220:PDL area 221: Intermediate data area 222: Bitmap data area 223: Correction data area

Claims

1. a generating means for generating first bitmap data and second bitmap data different from the first bitmap data based on PDL data; an analyzing means for analyzing the first bitmap data; a correcting means for correcting the second bitmap data based on a gamut mapping table that associates the second bitmap data with a print color gamut according to an analysis result of the first bitmap data; a quantization means for generating quantized image data based on the corrected second bitmap data.

1. An image processing device comprising:

2. the generating means generates intermediate data based on the PDL data; the generating means generates the first bitmap data and the second bitmap data based on the intermediate data.

2. The image processing device according to claim 1, wherein:

3. The resolution of the first bitmap data is lower than the resolution of the second bitmap data.

2. The image processing device according to claim 1, wherein:

4. the gamut mapping table includes a perceptual mapping table and a colorimetric mapping table; 2. The image processing device according to claim 1, wherein:

5. a first storage means for storing the PDL data; the generating means generates intermediate data based on the PDL data stored in the first storing means; the generating means generates the first bitmap data and the second bitmap data based on the generated intermediate data.

2. The image processing device according to claim 1, wherein:

6. The system further includes a second storage unit for storing the intermediate data generated by the generation unit, the generating means generates the first bitmap data and the second bitmap data based on the intermediate data held by the second holding means.

3. The image processing device according to claim 2.

7. the generating means generates a first background image based on the first intermediate data group and the second intermediate data group when the second holding means holds a first intermediate data group that is a part of the intermediate data and the size of a second intermediate data group that the second holding means receives after the first intermediate data group exceeds the available space of the second holding means; the second storage means deletes the first intermediate data group and stores the compressed data of the first background image.

7. The image processing device according to claim 6,

8. the second storage means stores the compressed data of the first background image and the third intermediate data group when the size of a third intermediate data group received after the second intermediate data group does not exceed the available space of the second storage means.

8. The image processing device according to claim 7,

9. the generating means generates a second background image different from the first background image based on the third intermediate data group and the fourth intermediate data group when the size of a fourth intermediate data group received by the second holding means after the third intermediate data group exceeds the available space of the second holding means; the second storage means deletes the compressed data of the first background image and the third intermediate data group, and stores the compressed data of the second background image.

9. The image processing device according to claim 8,

10. the generating means generates the first bitmap data and the second bitmap data based on the final storage result of the second storage means.

8. The image processing device according to claim 7,

11. a compression processing means for performing an image compression process on the first background image and the second background image; a decoding unit for decoding the first background image and the second background image that have been subjected to image compression processing.

10. The image processing device according to claim 9,

12. the generating means generates the second bitmap data by rendering based on the intermediate data, and generates the first bitmap data by performing predetermined image processing using the generated second bitmap data.

3. The image processing device according to claim 2.

13. the predetermined image processing is processing to reduce the size of the second bitmap data; 13. The image processing device according to claim 12.

14. The image processing device described in Claim 1, characterized in that the analysis means sets the gamut mapping table based on the analysis results of the first bitmap data.

15. a generating step of generating first bitmap data and second bitmap data different from the first bitmap data based on the PDL data; an analyzing step of analyzing the first bitmap data; a correcting step of correcting the second bitmap data based on a gamut mapping table that associates the second bitmap data with a print color gamut according to an analysis result of the first bitmap data; a quantization step of generating quantized image data based on the corrected second bitmap data. An image processing method comprising:

16. A program for causing a computer to function as the image processing device according to any one of claims 1 to 14.

Citation Information

Patent Citations

  • Method of correcting color in printer, incidental information extracting device, and printer

    JP2004306465A

  • Printer and printing method

    JP2007276425A

  • Color gamut conversion device, digital camera, color gamut conversion program, and color gamut conversion method

    JP2014033275A

  • Image processing apparatus, image processing method, and program

    JP2023060805A