Image processing apparatus and image processing method
By rearranging pixel data to ensure consecutive memory access for parallel processing units, the image processing apparatus optimizes memory access, significantly speeding up multilevel conversion processes.
Patent Information
- Application Number
- JP2021054804
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2021-03-29
- Publication Date
- 2025-07-08
- Estimated Expiration
- 2041-03-29
AI Technical Summary
The speed increase of multilevel conversion processes using parallel processing is hindered by inefficient memory access when pixel addresses are irregularly scattered in the memory, leading to decreased efficiency in reading and writing data for each pixel.
The image processing apparatus rearranges pixel data such that target pixels for parallel binarization are stored at consecutive memory addresses, utilizing a conversion unit to reorder and deform the pixel array to optimize memory access, allowing parallel processing units to operate efficiently.
This approach enhances the speed and efficiency of multilevel conversion by ensuring simultaneous access to target pixels, thereby accelerating the overall processing speed and reducing memory access latency.
Smart Images

Figure 0007703876000001 
Figure 0007703876000002 
Figure 0007703876000003
Abstract
Description
Technical Field
[0001] The present invention relates to an image processing apparatus and an image processing method for performing multilevel conversion of image data by an error diffusion method.
Background Art
[0002] The pixel values with multi-level expressions of each pixel of the image data are converted into binary data representing the formation (dot on) or non-formation (dot off) of ink dots by a printer through halftone processing. Also, if the printer can form dots of multiple sizes such as large dots, medium dots, and small dots, the pixel values with multi-level expressions may be converted into four-value data representing any one of large dot on, medium dot on, small dot on, and dot off through halftone processing. The conversion of such data with a small number of gradations such as binary or four-value into data is called multilevel conversion.
[0003] As a method of halftone processing, the error diffusion method is known. Also, an image processing apparatus is disclosed that performs multilevel conversion by the error diffusion method in parallel for a plurality of pixels in which the density errors diffused from other pixels are determined among the unprocessed pixels that have not been multilevel-converted (see Patent Document 1).
Prior Art Documents
Patent Documents
[0004]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0005] For a plurality of pixels in which the density error diffused from other pixels is determined, by performing multi-valued conversion by the error diffusion method in parallel, the speed of the multi-valued conversion process for the entire image data is increased. However, the speed increase by parallel processing is less effective when the access speed to the memory is slow. That is, even if a plurality of processing units try to access a plurality of pixels to be multi-valued and stored in the memory in parallel, in a situation where the addresses where each pixel to be accessed is stored are irregularly scattered in the memory, the efficiency of memory access decreases, and each processing unit cannot quickly read and write data for each multi-valued conversion. Therefore, it is required to truly realize the speed increase by parallel processing by improving the access efficiency to the memory.
Means for Solving the Problem
[0006] Input image data composed of a plurality of pixels two-dimensionally arranged in a first direction and a second direction intersecting each other, and when binarizing the pixels, perform binarization of the input image data by an error diffusion method that diffuses the density error generated during binarization to the surrounding pixels before binarization. When a plurality of pixels in which the density error diffused from other pixels among the pixels before binarization is determined are regarded as target pixels, and binarization by the error diffusion method is performed in parallel for the plurality of target pixels, the image processing apparatus includes: a memory that stores the input image data; an error diffusion processing unit having a plurality of binarization units that perform binarization by the error diffusion method in parallel for the plurality of target pixels; and a conversion unit that converts the arrangement of the pixels of the image data. In the image data before conversion by the conversion unit, among the pixels belonging to one pixel row that is the arrangement of pixels along the first direction, the target pixel to be processed by the first binarization unit, which is one of the plurality of binarization units, is regarded as the first target pixel. In the image data before conversion by the conversion unit, among the pixels belonging to the pixel row adjacent to the pixel row to which the first target pixel belongs in the second direction, the target pixel to be processed by the second binarization unit, which is one of the plurality of binarization units, is regarded as the second target pixel. The conversion unit converts the arrangement of the pixels of the image data so that the first target pixel and the second target pixel are stored at consecutive addresses in the memory. The error diffusion processing unit performs binarization by the first binarization unit on the first target pixel in the image data after conversion by the conversion unit and binarization by the second binarization unit on the second target pixel in the image data after conversion by the conversion unit in parallel.
[0007] When performing binarization of input image data composed of a plurality of pixels two-dimensionally arranged in a first direction and a second direction intersecting each other, and diffusing the density error generated when binarizing the pixels to the surrounding pixels before binarization by an error diffusion method, when binarizing the input image data, a plurality of pixels in which the density error diffused from other pixels among the pixels before binarization is determined are set as target pixels, and for the plurality of target pixels, binarization by the error diffusion method is performed in parallel. An image processing method includes a storage step of storing the input image data in a memory, a conversion step of converting the arrangement of the pixels of the image data, and an error diffusion processing step of performing binarization by the error diffusion method for the plurality of target pixels in parallel using a plurality of binarization units. In the image data before the conversion step, among the pixels belonging to one pixel row which is the arrangement of the pixels along the first direction, the target pixel to be processed by the first binarization unit which is one of the plurality of binarization units is set as the first target pixel, and in the image data before the conversion step, among the pixels belonging to the pixel row adjacent to the pixel row to which the first target pixel belongs in the second direction, the target pixel to be processed by the second binarization unit which is one of the plurality of binarization units is set as the second target pixel. In the conversion step, the arrangement of the pixels of the image data is converted so that the first target pixel and the second target pixel are stored at consecutive addresses in the memory. In the error diffusion processing step, binarization by the first binarization unit for the first target pixel in the image data after the conversion step and binarization by the second binarization unit for the second target pixel in the image data after the conversion step are performed in parallel.
Brief Description of the Drawings
[0008]
Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
Figure 6
Figure 7
Figure 8
Figure 9
Figure 10
Figure 11
Figure 12
Embodiments for Carrying Out the Invention
[0009] Hereinafter, embodiments of the present invention will be described with reference to each figure. Note that each figure is merely an illustration for explaining this embodiment. Since each figure is an illustration, the ratio, shape, etc. may not be accurate, may not be consistent with each other, or a part may be omitted.
[0010] 1. Outline of System Configuration: FIG. 1 simply shows the configuration of a system 30 including an image processing apparatus 10 according to this embodiment. The image processing apparatus 10 includes, in addition to the basic configuration of a computer such as a CPU 11, a ROM 12, and a RAM 13, a communication IF 14, a multi-core processor 15, and other memories and storage devices. IF is an abbreviation for interface. In the image processing apparatus 10, the CPU 11 as a processor executes an image processing method by performing arithmetic processing according to one or more programs 16 stored in the ROM 12 and other memories, using the RAM 13, etc. as a work area.
[0011] Communication IF 14 is a general term for one or more IFs for the image processing apparatus 10 to connect to the outside either wired or wirelessly in accordance with a predetermined communication protocol including a known communication standard. In the example of FIG. 1, the image processing apparatus 10 is communicably connected to the printer 20 through the communication IF 14. The device to which the image processing apparatus 10 is connected is not limited to the printer 20, and for example, it may be connected to a scanner capable of optically reading a document or an external server. Needless to say, the image processing apparatus 10 may have a display unit for displaying visual information to the user, an operation panel for receiving operations from the user, and the like.
[0012] The multi-core processor 15 is a processor having a plurality of cores as the name implies, and is suitable for parallel processing using a plurality of cores. The multi-core processor 15 is, for example, a GPU (Graphics Processing Unit). Alternatively, the CPU 11 itself may be a multi-core processor having a plurality of cores. Hereinafter, the CPU 11 and the multi-core processor 15 may be simply referred to as a processor without distinguishing them.
[0013] The printer 20 is a so-called inkjet printer, and performs printing on a printing medium by ejecting or not ejecting dots of ink or other liquids from each of a plurality of nozzles. The printer 20 can eject inks of a plurality of colors such as cyan (C), magenta (M), yellow (Y), and black (K), for example. The image processing apparatus 10 generates print data used by the printer 20 for printing and transfers it to the printer 20. The image processing apparatus 10 performs multivalued conversion of image data by an error diffusion method in the process of generating the print data.
[0014] The image processing apparatus 10 and the printer 20 may be independent devices as shown in FIG. 1, or may be integrated. That is, the system 30 including the image processing apparatus 10 and the printer 20 may actually be a single printing apparatus. Alternatively, the image processing apparatus 10 may be realized by a plurality of devices connected to be communicable with each other each playing their respective roles.
[0015] 2. Basic Explanation of Parallel Processing of Error Diffusion Method: Next, the basic concept of parallel processing of multilevel conversion by the error diffusion method will be explained. FIG. 2A shows a part of image data 40 to be subjected to multilevel conversion by the error diffusion method. The image data 40 is composed of a plurality of pixels two-dimensionally arranged in the X-axis direction and the Y-axis direction that intersect each other. The X-axis direction corresponds to the first direction, and the Y-axis direction corresponds to the second direction. Hereinafter, the X-axis direction will also be referred to as the X-axis + direction, and the reverse direction of the X-axis direction will also be referred to as the X-axis - direction. Similarly, the Y-axis direction will also be referred to as the Y-axis + direction, and the reverse direction of the Y-axis direction will also be referred to as the Y-axis - direction. Each rectangle constituting the image data 40 represents each pixel.
[0016] Each pixel of the image data 40 has, as data, gradation values for each of a plurality of colors, here, gradation values representing the density for each of the ink colors CMYK used by the printer 20. The gradation value is, for example, a value in the 256 gradation range of 0 to 255. Since the method of multilevel conversion for each color of CMYK is the same, hereinafter, the method of multilevel conversion for one color will be explained. Also, the multilevel conversion may be, for example, 4-level conversion as described above, but hereinafter, binarization will be taken as an example and the explanation will continue. The processor compares the gradation value of the target pixel to be multilevel-converted with a predetermined threshold value. If the gradation value is greater than or equal to the threshold value, "1" meaning dot on is used as the data of the target pixel after multilevel conversion, and if the gradation value is less than the threshold value, "0" meaning dot off is used as the data of the target pixel after multilevel conversion.
[0017] As is known, in the error diffusion method, the density error generated when the target pixel is multilevel-converted is diffused to the surrounding pixels before multilevel conversion. Dot on as a result of multilevel conversion corresponds to the highest density of 255 in the above gradation values. Also, dot off as a result of multilevel conversion corresponds to the lowest density of 0 in the above gradation values. Therefore, the difference between the gradation value before multilevel conversion of a certain pixel and the gradation value corresponding to the result of multilevel conversion is the density error when the said pixel is multilevel-converted.
[0018] In FIG. 2A, pixels that have been multi-valued are indicated by dashed lines, and pixels before multi-valuing are indicated by solid lines. Among the pixels before multi-valuing, the pixels P1, P2, and P3 painted in gray are the target pixels of the current multi-valuing. Here, in the image data, the arrangement of pixels along the X-axis direction is called a "pixel row", and the arrangement of pixels along the Y-axis direction is called a "pixel column". The processor can sequentially perform multi-valuing while switching the target pixels one by one in the +X-axis direction within the pixel row.
[0019] The arrows extending from each of the target pixels P1, P2, and P3 to the surrounding pixels indicate the diffusion range for diffusing the density error. According to the example of FIG. 2A, the density error generated in one pixel is, based on that pixel, distributed to the pixel adjacent in the +X-axis direction, the pixel adjacent in the +Y-axis direction, the pixel at the position one pixel advanced in each of the +X-axis and +Y-axis directions, and the pixel at the position two pixels advanced in the +X-axis direction and one pixel advanced in the +Y-axis direction. The distribution ratio of the density error to each of these diffusion destination pixels may be equal or a weighted ratio.
[0020] Multi-valuing by the error diffusion method is performed on pixels for which the density error diffused from other pixels that have completed multi-valuing has been determined. That the density error has been determined means that no further diffusion of the density error from other pixels is received. At the time shown in FIG. 2A, all of the target pixels P1, P2, and P3 are in a state where the diffused density error has been determined. Also, the diffusion ranges based on each of the target pixels P1, P2, and P3 do not overlap with each other. That is, the processor can perform multi-valuing of a plurality of such related target pixels P1, P2, and P3 in parallel. As can be understood from the above explanation, the gradation value of the target pixel to be compared with the threshold for multi-valuing is the gradation value after correcting the original gradation value of this target pixel by the density error determined for this target pixel.
[0021] According to FIG. 2A, the target pixel P2 belongs to the pixel row adjacent to the pixel row to which the target pixel P1 belongs in the +Y axis direction. Similarly, the target pixel P3 belongs to the pixel row adjacent to the pixel row to which the target pixel P2 belongs in the +Y axis direction. In this way, since the pixels in which the density error diffused from other pixels after multivalue conversion is determined at the same time exist in each pixel row at a certain timing, the processor can perform multivalue conversion on the target pixels belonging to each pixel row in parallel.
[0022] FIG. 3 simply shows the relationship between the multi-core processor 15, the memory controller 17, and the RAM 13 in the image processing apparatus 10. In FIG. 1, the description of the memory controller 17 is omitted. The image data 40 to be multi-valued is stored in the RAM 13. The RAM 13 is, for example, a DRAM (Dynamic Random Access Memory). The multi-core processor 15 has a plurality of cores C1, C2, C3,.... The plurality of cores C1, C2, C3,... correspond to a plurality of "multi-value conversion units" that perform multi-value conversion by the error diffusion method in parallel for a plurality of target pixels. Further, the multi-core processor 15 corresponds to an "error diffusion processing unit" having a plurality of such multi-value conversion units.
[0023] Here, assume a case where the multi-core processor 15 executes multi-value conversion in parallel for the target pixels P1, P2, and P3 shown in FIG. 2A. In this case, for example, the core C1 requests the memory controller 17 for the gradation value of the target pixel P1, the memory controller 17 accesses the RAM 13 in response to the request to read the gradation value of the target pixel P1, and passes the read gradation value of the target pixel P1 to the core C1. The core C1 writes the binarized data obtained by comparing the gradation value of the target pixel P1 acquired via the memory controller 17 with the threshold value into the RAM 13 as the data of the target pixel P1 via the memory controller 17 again.
[0024] Similarly, core C2 requests the memory controller 17 for the gradation value of the target pixel P2, compares the gradation value of the target pixel P2 obtained via the memory controller 17 with a threshold value to perform binarization, and writes the binarized data of the target pixel P2 to the RAM 13 via the memory controller 17. Similarly, core C3 requests the memory controller 17 for the gradation value of the target pixel P3, compares the gradation value of the target pixel P3 obtained via the memory controller 17 with a threshold value to perform binarization, and writes the binarized data of the target pixel P3 to the RAM 13 via the memory controller 17.
[0025] In the RAM 13, the data of each pixel of the image data is stored in consecutive addresses of the memory in accordance with the coordinate order of the pixels. The coordinate order of the pixels is an order starting from the pixel with the smallest (X, Y) which is (1, 1) among the XY coordinates in the X-axis direction and the Y-axis direction, and ending with the pixel with the largest (X, Y). In FIG. 2A, the upper left pixel in the image data 40 is the pixel with (X, Y) = (1, 1). According to the coordinate order of the pixels, in the memory, each pixel in the same pixel row is stored in the order of the X coordinates, and following the last pixel with the largest X coordinate in the image row, the first pixel with the smallest X coordinate in the image row with a Y coordinate one larger follows. Hereinafter, a pixel may be described as pixel (X, Y) in association with its coordinates.
[0026] Therefore, in the RAM 13 storing the image data 40, the target pixels P1, P2, and P3 are stored at respective addresses spaced apart from each other. Of course, the number of target pixels for which the multi-core processor 15 executes multi-value conversion in parallel may be more than three. When a plurality of cores attempt to simultaneously access such scattered addresses via the memory controller 17, the access efficiency to the RAM 13 by the memory controller 17 decreases, and each core is forced to wait for reading and writing of necessary data. That is, even if an attempt is made to perform multi-value conversion for a plurality of target pixels in parallel using a plurality of cores, the high-speedization of the multi-value conversion process is not sufficiently achieved due to the decrease in the access speed to the memory. This embodiment presents improvement measures for such problems as follows.
[0027] 3. From Data Input to Conversion of Pixel Array: FIG. 4 shows, in the form of a block diagram, each function realized by the processor of the image processing apparatus 10 in cooperation with the program 16, divided as a data input unit 50, a conversion unit 51, an error diffusion processing unit 52, a data output unit 53, and a shifted pixel number calculation unit 54. Further, FIG. 4 also shows the processing flow by each function.
[0028] The data input unit 50 inputs the image data 40 to be processed and stores it in the RAM 13. That is, the data input unit 50 performs a storage process of storing the input image data in the memory. The input source of the image data 40 by the data input unit 50 is not particularly limited. The data input unit 50 inputs, for example, the image data 40 generated by reading a document by an external scanner via the communication IF 14. Alternatively, the data input unit 50 inputs the image data 40 stored in an external server or the like via the communication IF 14. Further, the data input unit 50 may capture the image data 40 from a storage medium inside or outside the image processing apparatus 10.
[0029] Note that the format of the image data 40 at the time when the data input unit 50 inputs it is not necessarily CMYK image data in which each pixel has a gradation value for each of CMYK as described above. Therefore, the data input unit 50 appropriately performs necessary processes such as color conversion processing on the input image data, and stores the image data 40 as CMYK image data in the RAM 13.
[0030] Next, the conversion unit 51 converts the pixel array of the image data 40 input by the data input unit 50 and stored in the RAM 13. The process by the conversion unit 51 corresponds to the conversion step. In the present embodiment, in the image data 40 before conversion by the conversion unit 51, a pixel belonging to one pixel row and being a target pixel to be processed by the first binarization unit which is one of a plurality of binarization units is called the "first target pixel". Further, in the image data 40 before conversion by the conversion unit 51, a pixel belonging to a pixel row adjacent to the pixel row to which the first target pixel belongs in the +Y-axis direction and being a target pixel to be processed by the second binarization unit which is one of a plurality of binarization units is called the "second target pixel". That is, the first target pixel and the second target pixel are in a relationship in which binarization by the error diffusion method is performed in parallel. Referring to FIG. 2A, for example, when the target pixel P1 is regarded as the first target pixel, the target pixel P2 corresponds to the second target pixel. Further, for example, when the target pixel P2 is regarded as the first target pixel, the target pixel P3 corresponds to the second target pixel.
[0031] In the present embodiment, the conversion unit 51 converts the pixel array of the image data 40 so that the first target pixel and the second target pixel are stored at consecutive addresses in the RAM 13. As shown in FIG. 4, the conversion unit 51 includes a row-column swapping unit 51a and an image deformation unit 51b. The conversion process of the pixel array by such a conversion unit 51 will be described in detail with reference to FIGS. 5 and 6.
[0032] FIG. 5 shows how the pixel array of the image data 40 in FIG. 2A is converted. There is no difference between the image data 40 in FIG. 2A and the image data 40 in FIG. 5. However, in FIG. 5, coordinates indicating the positions of the pixels are also shown in each of the X-axis direction and the Y-axis direction. Further, in FIG. 5, since it is the situation before performing binarization by the error diffusion method, all the pixels are shown by solid lines. Also in FIG. 5, similar to FIG. 2A, the diffusion range with respect to a certain pixel is shown by an arrow within the image data 40.
[0033] The row-column swapping unit 51a performs a row-column swapping process in which, for each pixel row arranged in order in the Y-axis direction in the image data 40, it rotates and converts them into each pixel column, and arranges each pixel column in order in the X-axis direction. The image data 41 is the image data after performing the row-column swapping process on the image data 40. That is, the row-column swapping unit 51a rotates the pixel row with Y = 1 in the image data 40 to form the pixel column with X = 1 in the image data 41. At this time, the pixel (1, 1), which is the top pixel of the pixel row with Y = 1, rotates the pixel row with Y = 1 so that its coordinates do not change after rotation. Also, the row-column swapping unit 51a rotates the pixel row with Y = 2 in the image data 40 to form the pixel column with X = 2 in the image data 41. At this time, the pixel (1, 2), which is the top pixel of the pixel row with Y = 2, rotates the pixel row with Y = 2 so that it is located at (X, Y) = (2, 1) after rotation. Similarly, the row-column swapping unit 51a rotates the pixel row with Y = 3 in the image data 40 to form the pixel column with X = 3 in the image data 41, and rotates the pixel row with Y = 4 in the image data 40 to form the pixel column with X = 4 in the image data 41.
[0034] Next, the image deformation unit 51b performs a deformation process of deforming the image data 41 after the row-column swapping process in the Y-axis direction according to a predetermined diffusion range of density error. The diffusion range is already defined in the state of the image data 40 as shown in FIG. 2A and FIG. 5. In order for the image deformation unit 51b to perform the deformation process, the shifted pixel number calculation unit 54 calculates the number of shifted pixels according to the diffusion range. The number of shifted pixels is the amount of shift in the Y-axis direction required to make the second target pixel belong to the same pixel row as the first target pixel, and is indicated by the symbol H in FIG. 5. The shifted pixel number calculation unit 54 may be regarded as a part of the conversion unit 51.
[0035] According to the image data 40 in FIG. 2A and FIG. 5, the first pixel of interest and the second pixel of interest, for example, the pixel of interest P1 and the pixel of interest P2, are shifted by two pixels in the X-axis direction. This means that in the image data 41, the first pixel of interest and the second pixel of interest are shifted by two pixels in the Y-axis direction. Therefore, the shifted pixel number calculation unit 54 calculates that the shifted pixel number H = 2. Then, the image deformation unit 51b shifts the pixel column of the image data 41 by the shifted pixel number H in the Y-axis + direction with respect to the pixel column adjacent to this pixel column in the X-axis direction. Note that the method for calculating the shifted pixel number H by the shifted pixel number calculation unit 54 will be described in detail later, including the descriptions of FIG. 2B and FIG. 2C.
[0036] According to FIG. 5, the image deformation unit 51b shifts the pixel column at X = 2 of the image data 41 by two pixels in the Y-axis + direction with respect to the pixel column at X = 1. Similarly, the pixel column at X = 3 of the image data 41 is shifted by two pixels in the Y-axis + direction with respect to the pixel column at X = 2, and the pixel column at X = 4 of the image data 41 is shifted by two pixels in the Y-axis + direction with respect to the pixel column at X = 3. As a result, the image data 42 obtained by performing the deformation process on the image data 41 is obtained. That is, the result of converting the pixel array of the image data 40 is the image data 42. According to the image data 42, the pixels of interest P1, P2, and P3 are continuous in the same pixel row. This means that in the RAM 13, the data of each of the pixels of interest P1, P2, and P3 is stored at consecutive addresses.
[0037] The correspondence relationship between the source pixel and the destination pixel of diffusion according to the diffusion range defined in the state of the image data 40 is maintained even after passing through the conversion of the pixel array by the conversion unit 51. In FIG. 5, the correspondence relationship between the source pixel and the destination pixel of diffusion is indicated by arrows in the image data 41 and the image data 42, indicating that it is maintained even when the relative positions of the pixels change.
[0038] For example, pay attention to the relationship between the pixel (5, 1), which is the pixel of interest P1 in the image data 40 of FIG. 5, and the pixels (6, 1), (5, 2), (6, 2), and (7, 2) to which the density error of this pixel (5, 1) spreads. The pixel (5, 1) of the image data 40 is located at (X, Y) = (1, 5) in the states of the image data 41 and the image data 42. Also, the pixel (6, 1) of the image data 40 is located at (X, Y) = (1, 6) in the states of the image data 41 and the image data 42. The pixel (5, 2) of the image data 40 is located at (X, Y) = (2, 5) in the state of the image data 41 and at (X, Y) = (2, 7) in the state of the image data 42. The pixel (6, 2) of the image data 40 is located at (X, Y) = (2, 6) in the state of the image data 41 and at (X, Y) = (2, 8) in the state of the image data 42. The pixel (7, 2) of the image data 40 is located at (X, Y) = (2, 7) in the state of the image data 41 and at (X, Y) = (2, 9) in the state of the image data 42. Therefore, when the error diffusion processing unit 52 binarizes the pixel at (X, Y) = (1, 5) of the image data 42, the density error of this pixel spreads to the pixels at (X, Y) = (1, 6), (2, 7), (2, 8), and (2, 9) of the image data 42.
[0039] The image data shown in FIGS. 2A and 5 is a part of the image data 40, 41, 42. FIG. 6 shows the conversion of the pixel array by the conversion unit 51 by representing the entire image data. As described above, the image data 40 is subjected to row-column swapping processing by the row-column swapping unit 51a for each pixel row to become the image data 41, and the image data 41 is subjected to deformation processing by the image deformation unit 51b for each pixel column except the pixel column with X = 1 to become the image data 42. Also in FIG. 6, a pair of pixels corresponding to the relationship between the first pixel of interest and the second pixel of interest, such as the pixels of interest P1 and P2, is shown shaded in gray.
[0040] Furthermore, the image deformation unit 51b performs padding processing to fill the areas generated by the shift in the Y-axis direction between pixel columns in the image data 42 after the deformation process with pixels of a predetermined value. The image data 42 has a shape like a parallelogram as a whole because it is shifted in the Y-axis direction for each pixel column. Therefore, when comparing the image data 42 with the bitmap image data that is normally stored in memory assuming a rectangular shape, triangular difference regions 42a and 42b surrounded by broken lines are generated in FIG. 6.
[0041] Therefore, the image deformation unit 51b performs padding processing to fill these regions 42a and 42b with a predetermined value, here pixels with a gradation value of 0. Through the padding process, the image data 42 is shaped into rectangular image data 43 as a whole. Hereinafter, for convenience, the pixels added by the padding process are also referred to as "padding pixels", and the pixels already present at the time of the image data 40 and the image data 41 are also referred to as "actual pixels".
[0042] 4. Method for calculating the number of shifted pixels H: FIGS. 2B and 2C show a part of the image data 40 in the same way as FIG. 2A. The viewing methods of FIGS. 2B and 2C are the same as that of FIG. 2A. The definitions of the diffusion ranges in FIGS. 2A, 2B, and 2C are different from each other. That is, the definition of the diffusion range may adopt any of the examples in FIGS. 2A, 2B, and 2C, or may adopt examples other than FIGS. 2A, 2B, and 2C.
[0043] According to the example of FIG. 2B, the density error generated in one pixel is distributed to the pixel adjacent in the X-axis + direction, the pixel at a position two pixels advanced in the X-axis + direction, the pixels at positions one pixel advanced in the X-axis - direction and the Y-axis + direction respectively, the pixel adjacent in the Y-axis + direction, the pixels at positions one pixel advanced in the X-axis + direction and the Y-axis + direction respectively, and the pixel at a position two pixels advanced in the X-axis + direction and one pixel advanced in the Y-axis + direction, with reference to the said pixel.
[0044] According to the example of FIG. 2C, the density error generated in one pixel is, based on the pixel, the pixel adjacent in the X-axis + direction, the pixels at positions advanced by one pixel in the X-axis - direction and Y-axis + direction respectively, the pixel adjacent in the Y-axis + direction, the pixels at positions advanced by one pixel in the X-axis + direction and Y-axis + direction respectively, the pixel at the position advanced by two pixels in the X-axis + direction and one pixel in the Y-axis + direction, and the pixel at the position advanced by one pixel in the X-axis - direction and two pixels in the Y-axis + direction.
[0045] In the example of FIG. 2B, the processor can perform the multi-valuing of the target pixels P4, P5, and P6 in the state where the diffused density error is determined in parallel. In the example of FIG. 2B, the relationship between the target pixels P4 and P5 corresponds to the relationship between the first target pixel and the second target pixel. Similarly, the relationship between the target pixels P5 and P6 corresponds to the relationship between the first target pixel and the second target pixel. In the example of FIG. 2C, the processor can perform the multi-valuing of the target pixels P7, P8, and P9 in the state where the diffused density error is determined in parallel. In the example of FIG. 2C, the relationship between the target pixels P7 and P8 corresponds to the relationship between the first target pixel and the second target pixel. Similarly, the relationship between the target pixels P8 and P9 corresponds to the relationship between the first target pixel and the second target pixel. Of course, in the present embodiment, the processor does not perform multi-valuing with the pixel arrangement as in FIG. 2B or FIG. 2C, but performs multi-valuing on the image data after converting the pixel arrangement of the image data 40 by the conversion unit 51.
[0046] Considering examples of definitions of various diffusion ranges in this way, the shifted pixel number calculation unit 54, in the image data 40 before the row-column swapping process, sets the pixel row to which one target pixel belongs as the first row pixel row, and the pixel row farthest in the Y-axis + direction from the first row pixel row within the diffusion range based on this target pixel as the Nth row pixel row, where N is an integer of 2 or more and n is an integer from 1 to N - 1. Then, the shifted pixel number calculation unit 54 sets the maximum value among the values obtained by adding 1 to the sum of the number of pixels in the diffusion range in the X-axis + direction within the nth row pixel row and the number of pixels in the diffusion range in the X-axis - direction within the (n + 1)th row pixel row, based on the target pixel, as the shifted pixel number H.
[0047] According to the diffusion range illustrated in FIG. 2A, N = 2 and n = 1. Therefore, the value obtained by adding 1 to the sum of 1, which is the number of pixels in the diffusion range in the +X direction within the first row pixel row, and 0, which is the number of pixels in the diffusion range in the -X direction within the second row pixel row, is 1 + 0 + 1 = 2, and the shift pixel number H = 2.
[0048] According to the diffusion range illustrated in FIG. 2B, N = 2 and n = 1. Therefore, the value obtained by adding 1 to the sum of 2, which is the number of pixels in the diffusion range in the +X direction within the first row pixel row, and 1, which is the number of pixels in the diffusion range in the -X direction within the second row pixel row, is 2 + 1 + 1 = 4, and the shift pixel number H = 4.
[0049] According to the diffusion range illustrated in FIG. 2C, N = 3 and n = 1 or 2. Therefore, when n = 1, the value obtained by adding 1 to the sum of 1, which is the number of pixels in the diffusion range in the +X direction within the first row pixel row, and 1, which is the number of pixels in the diffusion range in the -X direction within the second row pixel row, is 1 + 1 + 1 = 3. Also, when n = 2, the value obtained by adding 1 to the sum of 2, which is the number of pixels in the diffusion range in the +X direction within the second row pixel row, and 1, which is the number of pixels in the diffusion range in the -X direction within the third row pixel row, is 2 + 1 + 1 = 4. Therefore, according to the diffusion range illustrated in FIG. 2C, the shift pixel number calculation unit 54 sets the shift pixel number H = 4.
[0050] The shift pixel number calculation unit 54 obtains the shift pixel number H by such a calculation method, and can obtain the shift pixel number H required to make the first target pixel and the second target pixel in a positional relationship where the diffusion ranges based on each do not overlap belong to the same pixel row after the row-column swapping process. Depending on the definition of the diffusion range, N may be 4 or more. In such a case as well, the maximum value among the values calculated by the above calculation method when n is changed in the range of 1 to N - 1 may be set as the shift pixel number H.
[0051] 5. From error diffusion processing to data output: FIG. 7 illustrates the image data 40. In the example of FIG. 7, for the convenience of the drawing, the image data 40 is composed of 81 pixels of 9×9. Also in FIG. 7, the diffusion ranges described in FIGS. 2A, 5, and 6 are adopted. Further, in FIGS. 7 and FIGS. 8 to 10 described later, similar to FIGS. 2A, 5, and 6, a plurality of target pixels for multivalue conversion at the timing when the diffused density errors are settled are shown painted in gray. In FIG. 7, XY coordinates are described in each pixel. According to this, for example, it can be easily understood that the density error of the pixel (1, 3) is diffused to the pixels (2, 3), (1, 4), (2, 4), and (3, 4).
[0052] FIG. 8 illustrates the image data 43 generated by the conversion unit 51 by converting the pixel array of the image data 40 in FIG. 7. In FIG. 8, for all padding pixels, the gradation value is described as 0. Also in FIG. 8, for the convenience of identification of individual padding pixels, some padding pixels are numbered in parentheses as (1), (2), (3).... Hereinafter, the padding pixels may be described together with the numbers, such as padding pixel 0(1).
[0053] Also in FIG. 8, for the convenience of explanation, the XY coordinates in each actual pixel are described as the XY coordinates in the image data 40 before conversion by the conversion unit 51, rather than the XY coordinates in the image data 43. According to FIG. 8, for example, the pixel (7, 2) is the pixel located at (X, Y)=(7, 2) in the image data 40, and is located at the position of (X, Y)=(2, 9) in the image data 43.
[0054] FIG. 9 is a diagram for explaining parallel processing of binarization using a plurality of cores for the image data 40 in FIG. 7. In the present embodiment, the error diffusion processing unit 52 performs binarization on the image data 43 instead of the image data 40. Therefore, FIG. 9 is described as a comparative example with the present embodiment. In FIG. 9, a plurality of cores C1, C2, C3... respectively show the pixels to be processed, by core and in the processing order. Also, in FIG. 9, the state in which the data of each pixel of the image data 40 is stored in consecutive addresses in the RAM 13 in the order of coordinates is also shown.
[0055] According to FIG. 9, first, the core C1 accesses the RAM 13 and binarizes the data of the pixel (1, 1) which is the first pixel in the order of coordinates. Next, in order to diffuse the density error generated by the binarization of the pixel (1, 1), the core C1 accesses the RAM 13 and distributes the density error to the pixels (2, 1), (1, 2), (2, 2), and (3, 2) which are the diffusion destinations in order. In FIG. 9, a part of the access of the core C1 to each address of the RAM 13 is indicated by a solid arrow.
[0056] When the core C1 continues the binarization of the pixels in the pixel row to which the pixel (1, 1) belongs and the associated error diffusion, and executes the binarization of the pixel (3, 1), the core C2 starts the binarization of the pixel (1, 2). Also, when the cores C1 and C2 continue the binarization and error diffusion respectively, and the core C1 targets the pixel (5, 1) and the core C2 targets the pixel (3, 2) for binarization respectively, the core C3 starts the binarization of the pixel (1, 3). In FIG. 9, a part of the access of the core C2 to each address of the RAM 13 is indicated by a dashed arrow, and a part of the access of the core C3 to each address of the RAM 13 is indicated by a two-dot chain line arrow.
[0057] Here, when paying attention to the timing at which core C1 accesses the data of pixel (5, 1), at the same timing, core C2 tries to access the data of pixel (3, 2), and core C3 tries to access the data of pixel (1, 3). However, the data of each of pixel (5, 1), pixel (3, 2), and pixel (1, 3) are scattered at mutually separated addresses in RAM13. Therefore, as described above, the access efficiency to RAM13 via memory controller 17 decreases, and cores C1, C2, and C3 each have a long waiting time to read and write the necessary data. Even after that, when cores C1, C2, and C3 try to perform error diffusion in parallel to the respective scattered addresses in RAM13, the problem of decreased access speed also occurs. Such a problem of decreased access speed becomes more prominent as the number of cores that try to process multivalued data in parallel increases.
[0058] FIG. 10 is a diagram for explaining parallel processing of multivalued conversion using a plurality of cores for the image data 43 in FIG. 8. The error diffusion processing unit 52 realizes an error diffusion processing step of performing multivalued conversion by the error diffusion method in parallel for a plurality of target pixels using a plurality of multivalued conversion units. Here, the multi-core processor 15 as the error diffusion processing unit 52 is assumed to have cores equal to or more than the number of pixel columns of the image data 43, and the same number of cores C1, C2, C3, C4, C5, C6, C7, C8, C9 as the number of pixel columns of the image data 43 among these plurality of cores proceed with the processing in parallel. In FIG. 10, the pixels to be processed by cores C1 to C9 are shown for each core and in the processing order.
[0059] Also, in FIG. 10, the state in which the data of each pixel of the image data 43 is stored in consecutive addresses in RAM13 in the order of pixel coordinates is also shown. In the RAM13 of FIG. 10, for the actual pixels among the pixels arranged in the order of coordinates in the image data 43 at consecutive addresses, the XY coordinates when it was the image data 40 as in FIG. 8 are described instead of the XY coordinates in the image data 43.
[0060] According to FIG. 10, first, cores C1 to C9 access RAM13 and perform binarization of the data of each pixel constituting the first pixel row of the image data 43 in parallel. That is, core C1 binarizes the pixel (1, 1) which is the first pixel in the coordinate order. In parallel with this, core C2 binarizes the padding pixel 0(1), core C3 binarizes the padding pixel 0(2), core C4 binarizes the padding pixel 0(3), core C5 binarizes the padding pixel 0(4), core C6 binarizes the padding pixel 0(5), core C7 binarizes the padding pixel 0(6), core C8 binarizes the padding pixel 0(7), and core C9 binarizes the padding pixel 0(8).
[0061] In response to the requests from cores C1 to C9, the memory controller 17 accesses the data of the pixel (1, 1) and the padding pixels 0(1) to 0(8) stored in RAM13. Here, since the pixel (1, 1) and the padding pixels 0(1) to 0(8) are stored in consecutive addresses in RAM13, the memory controller 17 can read the data from the pixel (1, 1) to the padding pixel 0(8) in a shorter time compared to the case where they are not stored in consecutive addresses, and transfer the data of the pixels required by each of cores C1 to C9. Also, at the time of writing, the memory controller 17 can continuously write the data for each pixel received from each of cores C1 to C9 to consecutive addresses from the pixel (1, 1) to the padding pixel 0(8) in a short time. Also in FIG. 10, part of the accesses of each core to each address of RAM13 is indicated by arrows such as solid lines, but most of such arrows are omitted for clarity.
[0062] Next, in order to diffuse the density error generated by binarization of pixels (1,1) to padding pixel 0(8), cores C1 to C9 access RAM13 and distribute the density error to the destination pixels for diffusion. That is, core C1 accesses pixel (2,1), which is one of the destinations for diffusion from pixel (1,1), in order to distribute the density error generated by binarization of pixel (1,1). In parallel with this, core C2 accesses padding pixel 0(9), core C3 accesses padding pixel 0(10), core C4 accesses padding pixel 0(11), core C5 accesses padding pixel 0(12), core C6 accesses padding pixel 0(13), core C7 accesses padding pixel 0(14), core C8 accesses padding pixel 0(15), and core C9 accesses padding pixel 0(16). Also in this case, since pixel (2,1) and padding pixels 0(9) to 0(16) are stored in consecutive addresses in RAM13, memory controller 17 can efficiently access these pixels (2,1) to padding pixel 0(16) in response to the requests from cores C1 to C9.
[0063] In this way, cores C1 to C9 proceed with the processing as shown in FIG. 10 by taking a group of pixel rows constituting the image data 43 and performing binarization of each pixel and the accompanying error diffusion in parallel with each other. Note that since there are no padding pixels in the image data 40, 41, and 42, according to the diffusion range that has already been determined at the time of the image data 40, the density error is not diffused from the actual pixels to the padding pixels. Also, since the padding pixels have a gradation value of 0, the result of multivalue conversion becomes dot-off, and there is no density error between the gradation value and the result of multivalue conversion. That is, although the density error is diffused to other padding pixels, since no density error occurs in the padding pixels in the first place, all dot-off is determined for the padding pixels as a result of multivalue conversion by the error diffusion method. Also, the density error diffused from the padding pixels to the actual pixels is actually 0. Therefore, the program 16 may be configured to omit the multivalue conversion and error diffusion to the padding pixels.
[0064] As shown in FIG. 10, cores C1 to C9 that proceed with the processing perform binarization on the pixel row of the image data 43 including the pixel (5, 1) at a certain timing. That is, cores C1 to C9 access in parallel each of the pixel (5, 1), pixel (3, 2), pixel (1, 3), and padding pixels 0(31) to 0(36) that are stored in consecutive addresses in the RAM 13 and perform binarization. Of course, when the pixel (5, 1) is regarded as the first target pixel, the pixel (3, 2) can be regarded as the second target pixel, and when the pixel (3, 2) is regarded as the first target pixel, the pixel (1, 3) can be regarded as the second target pixel.
[0065] After that, as shown in FIG. 10, core C1 accesses and distributes the density error generated by the binarization of the pixel (5, 1) to the pixel (6, 1) which is one of the diffusion destinations. In parallel with this, core C2 accesses and distributes the density error generated by the binarization of the pixel (3, 2) to the pixel (4, 2) which is one of the diffusion destinations, and core C3 accesses and distributes the density error generated by the binarization of the pixel (1, 3) to the pixel (2, 3) which is one of the diffusion destinations. Since these pixels (6, 1), pixel (4, 2), and pixel (2, 3) are also stored in consecutive addresses in the RAM 13, they can be accessed efficiently. When the binarization of the last pixel row including the pixel (9, 9) shown in FIG. 8 as the last pixel is completed, the error diffusion processing unit 52 ends the multivalued conversion of the image data 43 by the error diffusion method.
[0066] The conversion unit 51 performs inverse conversion on the image data 43 after the multivalued conversion by the error diffusion processing unit 52. In this case, the image deformation unit 51b performs a deformation process that is the reverse of the above-described deformation process. That is, the image deformation unit 51b removes the padding pixels from the image data 43 after the multivalued conversion and eliminates all the displacements in the Y-axis direction between the pixel columns according to the number of shifted pixels H to obtain image data having the same shape as the image data 41.
[0067] Further, the row-column permutation unit 51a performs a row-column permutation process reverse to the above-described row-column permutation process on the image data after the reverse deformation process by the image deformation unit 51b, so as to return the pixel array of the multi-valued image data to the same array as the image data 40. That is, the row-column permutation unit 51a rotates each pixel column arranged in order in the X-axis direction in the image data after the reverse deformation process by the image deformation unit 51b in the reverse direction to the above-described row-column permutation process to convert it into each pixel row, and arranges each pixel row in order in the Y-axis direction.
[0068] Then, the data output unit 53 outputs the image data whose pixel array has been restored by the conversion unit 51 to a predetermined output destination. According to FIG. 1, the predetermined output destination is the printer 20 to which the image processing apparatus 10 is connected via the communication IF 14. That is, the printer 20 acquires the image data output by the data output unit 53 as print data, and executes printing on the print medium by ejecting dots of CMYK ink according to the print data. However, the output destination of the image data by the data output unit 53 is not limited to the printer 20, and may be, for example, a monitor that performs image display according to the image data, a server that stores the image data, or the like.
[0069] 6. Processing involving division of image data: The conversion unit 51 may divide the image data 41 after the row-column permutation process into a plurality of regions in the X-axis direction, perform a deformation process for each of the plurality of regions, and the error diffusion processing unit 52 may perform multi-valuing for each of the plurality of regions. Such processing involving division of image data will be described with reference to FIGS. 11 and 12.
[0070] In the example of FIG. 11, the conversion unit 51 divides the image data 41 after the row-column permutation process into four regions 411, 412, 413, and 414 in the X-axis direction. The division here may be understood as equal division or substantially equal division. Of course, the number of divisions is not limited to 4.
[0071] Next, the conversion unit 51 generates enlarged regions 415, 416, 417 from regions 411, 412, 413, 414. Here, among regions 411, 412, 413, 414, attention is paid to region 412 which is the second region in the direction from the X-axis - direction to the X-axis + direction. The conversion unit 51 sets, as the enlarged region 415, the region obtained by combining region 412 and a partial region 411a that is connected to region 412 within region 411 adjacent to region 412 in the X-axis - direction. That is, the conversion unit 51 copies a region having a predetermined width in the X-axis direction along the boundary between region 411 and region 412, and generates the enlarged region 415 by joining the copied region as the partial region 411a to the X-axis - direction side of region 412. As a result, the partial region 411a exists in both region 411 and the enlarged region 415.
[0072] Similarly, the conversion unit 51 sets, as the enlarged region 416, the region obtained by combining region 413, which is the third region in the direction from the X-axis - direction to the X-axis + direction among regions 411, 412, 413, 414, and a partial region 412a that is connected to region 413 within region 412 adjacent to region 413 in the X-axis - direction. Similarly, the conversion unit 51 sets, as the enlarged region 417, the region obtained by combining region 414, which is the rightmost region in the X-axis + direction among regions 411, 412, 413, 414, and a partial region 413a that is connected to region 414 within region 413 adjacent to region 414 in the X-axis - direction. The partial region 412a exists in both region 412 and the enlarged region 416, and the partial region 413a exists in both region 413 and the enlarged region 417.
[0073] The image deformation unit 51b of the conversion unit 51 performs deformation processing using the number of shifted pixels H, regarding each of the region 411, the enlarged regions 415, 416, and 417 as one image data. That is, the image deformation unit 51b deforms the region 411 so that adjacent pixel columns are shifted by the number of shifted pixels H in the Y-axis direction, and fills the difference region generated by this deformation with padding pixels to generate rectangular divided image data 431. The procedure for deforming the region 411 to generate the divided image data 431 is the same as the procedure for generating the image data 43 from the image data 41 described with reference to FIG. 6. Similarly, the image deformation unit 51b deforms the enlarged region 415 so that adjacent pixel columns are shifted by the number of shifted pixels H in the Y-axis direction, and fills the difference region generated by this deformation with padding pixels to generate rectangular divided image data 435. Similarly, the image deformation unit 51b generates divided image data 436 from the enlarged region 416 and generates divided image data 437 from the enlarged region 417.
[0074] The two diagonal dashed lines described for each of the divided image data 431, 435, 436, and 437 are the boundaries between the actual pixels and the padding pixels. Referring to the image data 42 in FIG. 6, the boundary between the actual pixels and the padding pixels is step-shaped, but in FIG. 11, the boundary between the actual pixels and the padding pixels is simply represented by a straight line.
[0075] The error diffusion processing unit 52 performs multivalued conversion by the error diffusion method for each of the divided image data 431, 435, 436, and 437. That is, similar to the multivalued conversion of the image data 43, the divided image data 431 is multivalued by parallel processing using a plurality of cores. Similarly, for the divided image data 435, 436, and 437, each is regarded as one image data and multivalued. FIG. 12 shows the divided image data 431' obtained by multivaluing the divided image data 431, the divided image data 435' obtained by multivaluing the divided image data 435, the divided image data 436' obtained by multivaluing the divided image data 436, and the divided image data 437' obtained by multivaluing the divided image data 437.
[0076] By performing binarization for each region obtained by dividing the image data 41 in this way, the size of the image data to be binarized can be significantly reduced. Here, the number of pixels in the Y-axis direction of the pixel data after transformation using the number of shifted pixels H is the number of pixels obtained by adding (the number of pixel columns - 1) × H to the number of pixels constituting one pixel column before transformation. For example, when the image data 41 has a size of 8000 pixels × 8000 pixels and the number of shifted pixels H = 2, if the entire image data 41 is transformed as shown in FIG. 6, the number of pixels in the Y-axis direction of the image data 42 and 43 becomes approximately 24000, which is three times that before transformation. If the number of shifted pixels H is larger, the number of pixels in the Y-axis direction of the image data 42 and 43 further increases.
[0077] On the other hand, when the image data 41 is divided into four in the X-axis direction as in the example of FIG. 11, the number of pixel columns in the X-axis direction of one region 411 becomes 2000. When the number of shifted pixels H = 2, the number of pixels in the Y-axis direction of the divided image data 431 becomes approximately 12000. This is half of the number of pixels in the Y-axis direction of the image data 42 and 43. Each of the enlarged regions 415, 416, and 417 has, due to the influence of the partial regions 411a, 412a, and 413a, several tens of pixel columns more in the X-axis direction than the region 411. Therefore, the number of pixels in the Y-axis direction of each of the divided image data 435, 436, and 437 is also larger than that of the divided image data 431, but it is still a number obtained by adding several tens to several hundreds of pixels to 12000 pixels. Also, the total number of pixels in the X-axis direction of the divided image data 431, 435, 436, and 437 is approximately the number obtained by adding several tens of pixels × 3 to 8000. Therefore, the total number of pixels of the divided image data 431, 435, 436, and 437 is significantly smaller than the number of pixels of the image data 43 (8000 × approximately 24000). By binarizing the divided image data 431, 435, 436, and 437, the burden on the error diffusion processing unit 52 and the consumption of memory can be suppressed.
[0078] As described above, the difference in the number of pixels of the image data to be binarized between the case where the image data 41 is not divided and the case where it is divided is almost the difference in the number of padding pixels. By increasing the number of divisions of the image data 41, the padding pixels can be further reduced.
[0079] The divided image data 435' shown in FIG. 12 can be divided into a region 435b which is data obtained by binarizing real pixels constituting the region 412 in the enlarged region 415 and some padding pixels of the divided image data 435, and a region 435a which is data obtained by binarizing real pixels constituting a partial region 411a and some padding pixels of the divided image data 435. Similarly, the divided image data 436' can be divided into a region 436b which is data obtained by binarizing real pixels constituting the region 413 in the enlarged region 416 and some padding pixels of the divided image data 436, and a region 436a which is data obtained by binarizing real pixels constituting a partial region 412a and some padding pixels of the divided image data 436. Similarly, the divided image data 437' can be divided into a region 437b which is data obtained by binarizing real pixels constituting the region 414 in the enlarged region 417 and some padding pixels of the divided image data 437, and a region 437a which is data obtained by binarizing real pixels constituting a partial region 413a and some padding pixels of the divided image data 437.
[0080] Since the region 435a of the divided image data 435', the region 436a of the divided image data 436', and the region 437a of the divided image data 437' overlap with a part of the divided image data 431', a part of the region 435b of the divided image data 435', and a part of the region 436b of the divided image data 436', they are unnecessary data as a result of binarization. Therefore, the error diffusion processing unit 52 delivers the divided image data 431', the region 435b of the divided image data 435', the region 436b of the divided image data 436', and the region 437b of the divided image data 437' to the conversion unit 51 as binarized image data. In this way, when one of the plurality of regions 411, 412, 413, 414 is set as the target region, the error diffusion processing unit 52 performs binarization on a region (enlarged region) combining the target region and a partial region connected to the target region in the region adjacent to the target region in the X-axis direction. Then, the data of the target region among the data after binarization of the enlarged region is made a part of the data after binarization of the image data.
[0081] In this way, for the enlarged area 415 obtained by adding the partial area 411a to the area 412, by performing multilevel quantization using the error diffusion method while undergoing transformation into the divided image data 435, it is possible to diffuse the density error generated during the multilevel quantization of each pixel in the partial area 411a to each pixel close to the partial area 411a in the area 412. Therefore, when the divided image data 431' and the area 435b of the divided image data 435' are combined, they are naturally connected and the combined part becomes inconspicuous. Note that the actual combination is performed at the timing when the areas become 411', 412', 413', and 414' as described later.
[0082] Similarly, by performing multilevel quantization using the error diffusion method on the enlarged area 416, it is possible to diffuse the density error generated during the multilevel quantization of each pixel in the partial area 412a to each pixel close to the partial area 412a in the area 413, and when the area 435b of the divided image data 435' and the area 436b of the divided image data 436' are combined, the combined part becomes inconspicuous. Similarly, by performing multilevel quantization using the error diffusion method on the enlarged area 417, it is possible to diffuse the density error generated during the multilevel quantization of each pixel in the partial area 413a to each pixel close to the partial area 413a in the area 414, and when the area 436b of the divided image data 436' and the area 437b of the divided image data 437' are combined, the combined part becomes inconspicuous.
[0083] In the conversion unit 51 that acquires the divided image data 431', the area 435b of the divided image data 435', the area 436b of the divided image data 436', and the area 437b of the divided image data 437b from the error diffusion processing unit 52, the image deformation unit 51b performs the reverse deformation process of the above-described deformation process using the shifted pixel number H. That is, the image deformation unit 51b removes the padding pixels for each of the divided image data 431', the area 435b, the area 436b, and the area 437b, and eliminates the shift corresponding to the shifted pixel number H between adjacent pixel columns. As a result, as shown in FIG. 12, the divided image data 431' is deformed into the area 411', the area 435b is deformed into the area 412', the area 436b is deformed into the area 413', and the area 437b is deformed into the area 414'.
[0084] Regions 411´, 412´, 413´, and 414´ are each image data of the same size as regions 411, 412, 413, and 414. The image deformation unit 51b combines these regions 411´, 412´, 413´, and 414´ to form image data 41´ having the same shape as the image data 41. For this image data 41´, the row-column swapping unit 51a may perform a row-column swapping process that is the reverse of the above-described row-column swapping process.
[0085] 7. Summary: As described above, according to this embodiment, the image processing apparatus 10 inputs image data composed of a plurality of pixels two-dimensionally arranged in a first direction and a second direction that intersect each other, and when performing multivalued conversion of the input image data by an error diffusion method that diffuses the density error generated when the pixels are multivalued to the surrounding pixels before multivalued conversion, a plurality of pixels in which the density error diffused from other pixels among the pixels before multivalued conversion is determined are set as target pixels, and multivalued conversion by the error diffusion method is performed in parallel for the plurality of target pixels. The image processing apparatus 10 includes a memory that stores the input image data, an error diffusion processing unit 52 having a plurality of multivalued conversion units that perform multivalued conversion by the error diffusion method in parallel for the plurality of target pixels, and a conversion unit 51 that converts the arrangement of the pixels of the image data. And, among the pixels belonging to one pixel row that is the arrangement of the pixels along the first direction in the image data before conversion by the conversion unit 51, a target pixel to be processed by the first multivalued conversion unit, which is one of the plurality of multivalued conversion units, is set as the first target pixel, and among the pixels belonging to the pixel row adjacent in the second direction to the pixel row to which the first target pixel belongs in the image data before conversion by the conversion unit 51, a target pixel to be processed by the second multivalued conversion unit, which is one of the plurality of multivalued conversion units, is set as the second target pixel. When this is the case, the conversion unit 51 converts the arrangement of the pixels of the image data so that the first target pixel and the second target pixel are stored at consecutive addresses in the memory, and the error diffusion processing unit 52 performs in parallel the multivalued conversion by the first multivalued conversion unit for the first target pixel in the image data after conversion by the conversion unit 51 and the multivalued conversion by the second multivalued conversion unit for the second target pixel in the image data after conversion by the conversion unit 51.
[0086] According to the above configuration, the error diffusion processing unit 52 targets the image data in which the first target pixel and the second target pixel are stored at consecutive addresses in the memory, and performs the quantization by the first quantization unit for the first target pixel and the quantization by the second quantization unit for the second target pixel in parallel. Therefore, it is possible to access a plurality of target pixels corresponding to the relationship between the first target pixel and the second target pixel stored in the memory at high speed, and to further speed up the quantization of the plurality of target pixels by parallel processing using a plurality of quantization units.
[0087] Also according to the present embodiment, the conversion unit 51 performs a row-column transposition process of converting each pixel row arranged in order in the second direction in the image data into each pixel column which is the arrangement of pixels along the second direction and arranging each pixel column in order in the first direction, and a deformation process of deforming the image data after the row-column transposition process in the second direction according to a predetermined diffusion range of density error, thereby converting the arrangement of the pixels of the image data. According to the above configuration, the conversion unit 51 can convert the pixel arrangement of the image data so that the first target pixel and the second target pixel are stored at consecutive addresses in the memory by executing the row-column transposition process and the deformation process.
[0088] According to the description with reference to FIGS. 5 and 6, the conversion unit 51 subjects the image data 40 to a row-column transposition process to obtain image data 41, and subjects the image data 41 to a deformation process to obtain image data 42. However, the conversion unit 51 only needs to be able to convert the pixel arrangement of the image data 40 into the pixel arrangement of the image data 42 as a result, and does not necessarily have to convert the pixel arrangement in the order as described in FIGS. 5 and 6.
[0089] According to this embodiment, in the image data before the row-column swapping process, the conversion unit 51 sets the pixel row to which the target pixel belongs as the first row pixel row, and sets the pixel row that is the farthest from the first row pixel row in the second direction within the diffusion range centered on the target pixel as the Nth row pixel row, where N is an integer of 2 or more, and n is an integer from 1 to N-1. When the number of pixels in the diffusion range in the first direction within the nth row pixel row and the number of pixels in the diffusion range in the reverse direction of the first direction within the (n+1)th row pixel row are added and 1 is added to the sum, the maximum value among these values is set as the shift pixel number H. In the transformation process, the pixel column of the image data after the row-column swapping process is shifted by the shift pixel number H in the second direction with respect to the pixel column adjacent to the pixel column in the reverse direction of the first direction. According to the above configuration, the conversion unit 51 can appropriately obtain the shift pixel number H required for the transformation process of making the first target pixel and the second target pixel belong to the same pixel row based on the diffusion range defined in the image data before the row-column swapping process.
[0090] According to this embodiment, the conversion unit 52 performs a reverse transformation process on the image data after quantization by the error diffusion processing unit 52, and performs a reverse row-column swapping process on the image data after the reverse transformation process to restore the arrangement of the pixels of the image data. Then, the image processing apparatus 10 outputs the image data whose pixel arrangement has been restored by the conversion unit 51 to a predetermined output destination. According to the above configuration, the image processing apparatus 10 can output the image data whose pixel array has been converted to speed up the parallel processing of quantization to the output destination such as the printer 20 after restoring it to the original pixel array after quantization.
[0091] According to this embodiment, the conversion unit 51 performs padding processing to fill the region generated by the shift in the second direction between the pixel columns in the image data after the transformation process with pixels of a predetermined value, thereby shaping the image data before quantization by the error diffusion processing unit 52. According to the above configuration, the conversion unit 51 can perform shaping of the image data necessary for efficiently performing parallel processing of quantization by a plurality of quantization units.
[0092] Also, according to the present embodiment, the conversion unit 51 divides the image data after the row and column swapping process into a plurality of regions in the first direction, performs a deformation process for each of the plurality of regions, and the error diffusion processing unit 52 may perform binarization for each of the plurality of regions. According to the above configuration, the conversion unit 51 can reduce the image size that the error diffusion processing unit 52 targets for binarization.
[0093] Also, according to the present embodiment, when one of the plurality of regions is a target region, the error diffusion processing unit 52 performs binarization on a region that combines a partial region connected to the target region in a region adjacent to the target region in the reverse direction of the first direction and the target region, and uses the data of the target region among the data after binarization of the region combining the partial region and the target region as part of the image data after binarization by the error diffusion processing unit 52. According to the above configuration, the error diffusion processing unit 52 can make the connection between the binarized target regions natural by performing binarization on the region combining the partial region and the target region.
[0094] The present embodiment discloses not only the image processing apparatus 10 and the system 30, but also a method executed by these apparatuses and systems, and a program 16 that causes a processor to execute the method. Input image data consisting of a plurality of pixels two-dimensionally arranged in a first direction and a second direction that intersect each other, and perform multivalued conversion of the input image data by an error diffusion method that diffuses the density error generated when the pixels are multivalued to the surrounding pixels before multivalued conversion. When performing multivalued conversion, a plurality of pixels in which the density error diffused from other pixels among the pixels before multivalued conversion is determined are set as target pixels, and multivalued conversion by the error diffusion method is performed in parallel for the plurality of target pixels. The image processing method includes a storage step of storing the input image data in a memory, a conversion step of converting the arrangement of the pixels of the image data, and an error diffusion processing step of performing multivalued conversion by the error diffusion method for the plurality of target pixels using a plurality of multivalued conversion units in parallel. And, in the image data before the conversion step, a pixel belonging to one pixel row that is an arrangement of pixels along the first direction, and a target pixel to be processed by the first multivalued conversion unit, which is one of the plurality of multivalued conversion units, is set as the first target pixel. When a pixel belonging to a pixel row adjacent to the pixel row to which the first target pixel belongs in the second direction in the image data before the conversion step and a target pixel to be processed by the second multivalued conversion unit, which is one of the plurality of multivalued conversion units, is set as the second target pixel, in the conversion step, the arrangement of the pixels of the image data is converted so that the first target pixel and the second target pixel are stored at consecutive addresses in the memory. In the error diffusion processing step, multivalued conversion by the first multivalued conversion unit for the first target pixel in the image data after the conversion step and multivalued conversion by the second multivalued conversion unit for the second target pixel in the image data after the conversion step are performed in parallel.
[0095] Supplement the previous description. Assume a case where, in parallel processing by a plurality of cores shown in FIG. 10, the number of cores of the multi-core processor 15 is smaller than the number of pixel columns of the image data 43 in FIG. 8. For example, as shown in FIG. 8, assume that the number of pixel columns of the image data 43 is 9, and the multi-core processor 15 has only cores C1 to C5. In this case, after cores C1 to C5 perform binarization of the pixels (1, 1) belonging to the first pixel row and the padding pixels 0(1) to 0(4) and diffusion of the density error generated by the binarization as shown in FIG. 10, cores C1 to C4 perform binarization of the padding pixels 0(5) to 0(8) belonging to the same first pixel row and diffusion of the density error generated by the binarization. Similarly, after cores C1 to C5 perform binarization of the pixels (2, 1) and the padding pixels 0(9) to 0(12) in the pixel row to which the pixel (2, 1) belongs and diffusion of the density error generated by the binarization as shown in FIG. 10, cores C1 to C4 perform binarization of the padding pixels 0(13) to 0(16) belonging to the same pixel row and diffusion of the density error generated by the binarization. Thereafter, similarly, the processes described as being performed by cores C6 to C9 in FIG. 10 are instead performed by cores C1 to C4.
Explanation of Signs
[0096] 10…Image processing apparatus, 11…CPU, 12…ROM, 13…RAM, 14…Communication IF, 15…Multi-core processor, 16…Program, 17…Memory controller, 20…Printer, 30…System, 40, 41, 42, 43…Image data, 42a, 42b…Difference region, 50…Data input unit, 51…Conversion unit, 51a…Row-column swapping unit, 51b…Image deformation unit, 52…Error diffusion processing unit, 53…Data output unit, 54…Shift pixel number calculation unit, C1, C2, C3, C4, C5, C6, C7, C8, C9…Cores
Claims
1. Input image data composed of a plurality of pixels two-dimensionally arranged in the X-axis direction and the Y-axis direction that intersect each other, and for each pixel of the image data, a gradation value representing the density for a plurality of colors, which is a value corresponding to each pixel, is compared with a predetermined threshold value, and multi-valued conversion into a plurality of values based on the result of the comparison is performed on a target pixel, which is one of the plurality of pixels. When the multi-valued conversion is performed, a density error that occurs, which is the difference between the gradation values for each of the plurality of colors corresponding to the target pixel before the multi-valued conversion and the gradation values for each of the plurality of colors corresponding to the target pixel before the multi-valued conversion that are respectively pre-associated with the plurality of values converted by the multi-valued conversion, is distributed to the pixels around the target pixel, which is a predetermined diffusion range of the density error, at a predetermined distribution ratio by an error diffusion method. When performing multi-valued conversion of the input image data, a plurality of pixels in which the density error diffused from other pixels among the pixels before multi-valued conversion is determined are used as the target pixels, and an image processing apparatus that performs multi-valued conversion by the error diffusion method in parallel for the plurality of target pixels, a memory that stores the input image data, an error diffusion processing unit having a plurality of multi-valued conversion units that perform multi-valued conversion by the error diffusion method in parallel for the plurality of target pixels, and a conversion unit that converts the arrangement of the pixels of the image data, and in the image data before conversion by the conversion unit, for a pixel belonging to one pixel row that is the arrangement of pixels along the X-axis direction, a target pixel that is one of the plurality of multi-valued conversion units is used as a first target pixel, and in the image data before conversion by the conversion unit, for a pixel row adjacent to the pixel row to which the first target pixel belongs in the Y-axis direction, when a target pixel that is one of the plurality of multi-valued conversion units is used as a second target pixel, the conversion unit converts the arrangement of the pixels of the image data so that the first target pixel and the second target pixel are arranged continuously in the X-axis direction, and the error diffusion processing unit performs in parallel the multi-valued conversion by the first multi-valued conversion unit for the first target pixel and the multi-valued conversion by the second multi-valued conversion unit for the second target pixel in the image data after conversion by the conversion unit. An image processing apparatus characterized by the above.
2. The conversion unit converts each pixel row arranged in order in the Y-axis direction in the image data into each pixel column which is an arrangement of pixels along the Y-axis direction, and performs row-column rearrangement processing for arranging the pixel columns in order in the X-axis direction, and performs a first transformation process of shifting the image data after the row-column rearrangement processing by the number of shifted pixels calculated according to a previously determined diffusion range of the density error in the Y-axis direction, thereby converting the arrangement of pixels in the image data. The image processing apparatus according to claim 1 is characterized by this. The conversion unit converts each pixel row arranged in order in the Y-axis direction in the image data into each pixel column which is an arrangement of pixels along the Y-axis direction, and performs row-column rearrangement processing for arranging the pixel columns in order in the X-axis direction, and performs a first transformation process of shifting the image data after the row-column rearrangement processing by the number of shifted pixels calculated according to a previously determined diffusion range of the density error in the Y-axis direction, thereby converting the arrangement of pixels in the image data. The image processing apparatus according to claim 1 is characterized by this. The conversion unit converts each pixel row arranged in order in the Y-axis direction in the image data into each pixel column which is an arrangement of pixels along the Y-axis direction, and performs row-column rearrangement processing for arranging the pixel columns in order in the X-axis direction, and performs a first transformation process of shifting the image data after the row-column rearrangement processing by the number of shifted pixels calculated according to a previously determined diffusion range of the density error in the Y-axis direction, thereby converting the arrangement of pixels in the image data. The image processing apparatus according to claim 1 is characterized by this. The conversion unit converts each pixel row arranged in order in the Y-axis direction in the image data into each pixel column which is an arrangement of pixels along the Y-axis direction, and performs row-column rearrangement processing for arranging the pixel columns in order in the X-axis direction, and performs a first transformation process of shifting the image data after the row-column rearrangement processing by the number of shifted pixels calculated according to a previously determined diffusion range of the density error in the Y-axis direction, thereby converting the arrangement of pixels in the image data. The image processing apparatus according to claim 1 is characterized by this. The conversion unit converts each pixel row arranged in order in the Y-axis direction in the image data into each pixel column which is an arrangement of pixels along the Y-axis direction, and performs row-column rearrangement processing for arranging the pixel columns in order in the X-axis direction, and performs a first transformation process of shifting the image data after the row-column rearrangement processing by the number of shifted pixels calculated according to a previously determined diffusion range of the density error in the Y-axis direction, thereby converting the arrangement of pixels in the image data. The image processing apparatus according to claim 1 is characterized by this. The image processing apparatus according to claim 1, characterized in that.
3. The conversion unit In the image data before the row-column rearrangement processing, the pixel row to which the target pixel belongs is defined as the first pixel row, the pixel row farthest from the first pixel row in the Y-axis direction within the diffusion range based on the target pixel is defined as the Nth pixel row, where N is an integer of 2 or more and n is an integer of 1 to N-1. When this is the case, the maximum value among the values obtained by adding 1 to the sum of the number of pixels in the diffusion range in the X-axis direction within the nth pixel row and the number of pixels in the diffusion range in the reverse direction of the X-axis direction within the (n + 1)th pixel row is used as the number of shifted pixels. In the image data before the row-column rearrangement processing, the pixel row to which the target pixel belongs is defined as the first pixel row, the pixel row farthest from the first pixel row in the Y-axis direction within the diffusion range based on the target pixel is defined as the Nth pixel row, where N is an integer of 2 or more and n is an integer of 1 to N-1. When this is the case, the maximum value among the values obtained by adding 1 to the sum of the number of pixels in the diffusion range in the X-axis direction within the nth pixel row and the number of pixels in the diffusion range in the reverse direction of the X-axis direction within the (n + 1)th pixel row is used as the number of shifted pixels. In the image data before the row-column rearrangement processing, the pixel row to which the target pixel belongs is defined as the first pixel row, the pixel row farthest from the first pixel row in the Y-axis direction within the diffusion range based on the target pixel is defined as the Nth pixel row, where N is an integer of 2 or more and n is an integer of 1 to N-1. When this is the case, the maximum value among the values obtained by adding 1 to the sum of the number of pixels in the diffusion range in the X-axis direction within the nth pixel row and the number of pixels in the diffusion range in the reverse direction of the X-axis direction within the (n + 1)th pixel row is used as the number of shifted pixels. In the image data before the row-column rearrangement processing, the pixel row to which the target pixel belongs is defined as the first pixel row, the pixel row farthest from the first pixel row in the Y-axis direction within the diffusion range based on the target pixel is defined as the Nth pixel row, where N is an integer of 2 or more and n is an integer of 1 to N-1. When this is the case, the maximum value among the values obtained by adding 1 to the sum of the number of pixels in the diffusion range in the X-axis direction within the nth pixel row and the number of pixels in the diffusion range in the reverse direction of the X-axis direction within the (n + 1)th pixel row is used as the number of shifted pixels. In the image data before the row-column rearrangement processing, the pixel row to which the target pixel belongs is defined as the first pixel row, the pixel row farthest from the first pixel row in the Y-axis direction within the diffusion range based on the target pixel is defined as the Nth pixel row, where N is an integer of 2 or more and n is an integer of 1 to N-1. When this is the case, the maximum value among the values obtained by adding 1 to the sum of the number of pixels in the diffusion range in the X-axis direction within the nth pixel row and the number of pixels in the diffusion range in the reverse direction of the X-axis direction within the (n + 1)th pixel row is used as the number of shifted pixels. In the image data before the row-column rearrangement processing, the pixel row to which the target pixel belongs is defined as the first pixel row, the pixel row farthest from the first pixel row in the Y-axis direction within the diffusion range based on the target pixel is defined as the Nth pixel row, where N is an integer of 2 or more and n is an integer of 1 to N-1. When this is the case, the maximum value among the values obtained by adding 1 to the sum of the number of pixels in the diffusion range in the X-axis direction within the nth pixel row and the number of pixels in the diffusion range in the reverse direction of the X-axis direction within the (n + 1)th pixel row is used as the number of shifted pixels. In the first transformation process, the pixel column of the image data after the row-column rearrangement processing is shifted by the number of shifted pixels in the Y-axis direction with respect to the pixel column adjacent to it in the reverse direction of the X-axis direction. In the first transformation process, the pixel column of the image data after the row-column rearrangement processing is shifted by the number of shifted pixels in the Y-axis direction with respect to the pixel column adjacent to it in the reverse direction of the X-axis direction. The image processing apparatus according to claim 2, characterized in that.
4. Having a data output unit The conversion unit executes a second transformation process which is a transformation process opposite to the first transformation process on the image data after multi-valued conversion by the error diffusion processing unit, and executes a row-column rearrangement process opposite to the row-column rearrangement process on the image data after the second transformation process, thereby restoring the arrangement of pixels in the image data. The conversion unit executes a second transformation process which is a transformation process opposite to the first transformation process on the image data after multi-valued conversion by the error diffusion processing unit, and executes a row-column rearrangement process opposite to the row-column rearrangement process on the image data after the second transformation process, thereby restoring the arrangement of pixels in the image data. The conversion unit executes a second transformation process which is a transformation process opposite to the first transformation process on the image data after multi-valued conversion by the error diffusion processing unit, and executes a row-column rearrangement process opposite to the row-column rearrangement process on the image data after the second transformation process, thereby restoring the arrangement of pixels in the image data. The conversion unit executes a second transformation process which is a transformation process opposite to the first transformation process on the image data after multi-valued conversion by the error diffusion processing unit, and executes a row-column rearrangement process opposite to the row-column rearrangement process on the image data after the second transformation process, thereby restoring the arrangement of pixels in the image data. The data output unit outputs the image data in which the arrangement of pixels has been restored by the conversion unit. The image processing apparatus according to claim 2 or claim 3, characterized in that.
5. The conversion unit executes padding processing for filling a region generated by the shift in the Y-axis direction between pixel columns in the image data after the first transformation process with pixels having a previously determined gradation value, thereby shaping the image data before multi-valued conversion by the error diffusion processing unit. The conversion unit executes padding processing for filling a region generated by the shift in the Y-axis direction between pixel columns in the image data after the first transformation process with pixels having a previously determined gradation value, thereby shaping the image data before multi-valued conversion by the error diffusion processing unit. The conversion unit executes padding processing for filling a region generated by the shift in the Y-axis direction between pixel columns in the image data after the first transformation process with pixels having a previously determined gradation value, thereby shaping the image data before multi-valued conversion by the error diffusion processing unit. The image processing apparatus according to any one of claims 2 to 4, characterized in that.
6. An image composed of a plurality of pixels two-dimensionally arranged in the X-axis direction and the Y-axis direction intersecting each other Input image data, and compare the gradation values representing the density for each of the colors with a predetermined threshold value. Based on the result of the comparison, perform multivalued conversion to convert to a plurality of values for one pixel, which is a target pixel among the plurality of pixels. Perform error diffusion, which is the density error that occurs when performing the multivalued conversion, and corresponds to the target pixel before the multivalued conversion for each of the plurality of colors. Calculate the difference between the gradation value for each of the plurality of colors before the multivalued conversion and the gradation value previously associated with each of the plurality of values obtained by converting the gradation values for each of the plurality of colors corresponding to the target pixel before the multivalued conversion by the multivalued conversion. Distribute the difference to the pixels around the target pixel, which is the previously determined diffusion range of the density error, at a predetermined distribution ratio. When performing multivalued conversion of the input image data by the error diffusion method, the density error diffused from other pixels among the pixels before the multivalued conversion is determined. Use a plurality of the determined pixels as the target pixels, and perform multivalued conversion for the plurality of target pixels in parallel by the error diffusion method. An image processing method comprising: a storage step of storing the input image data in a memory; a conversion step of converting the pixel arrangement of the image data; and an error diffusion processing step of performing multivalued conversion for a plurality of the target pixels in parallel by the error diffusion method using a plurality of multivalued conversion units. In the image data before the conversion step, for the pixels belonging to one pixel row, which is the arrangement of pixels along the X-axis direction, among the pixels belonging to the pixel row adjacent to the pixel row in the Y-axis direction to which the first target pixel, which is the target pixel to be processed by the first multivalued conversion unit, one of the plurality of multivalued conversion units, belongs, and for the pixels belonging to the pixel row adjacent to the pixel row in the Y-axis direction to which the first target pixel belongs, when the second target pixel, which is the target pixel to be processed by the second multivalued conversion unit, one of the plurality of multivalued conversion units, is set. In the conversion step, convert the pixel arrangement of the image data so that the first target pixel and the second target pixel are arranged continuously in the X-axis direction. In the error diffusion processing step, perform the multivalued conversion by the first multivalued conversion unit for the first target pixel and the multivalued conversion by the second multivalued conversion unit for the second target pixel in the image data after the conversion step in parallel. An image processing method characterized by the above.
Citation Information
Patent Citations
Halftone processing method
JP1998334231A
JP2000‐125122A
Image processing device, method therefor, control program, and recording medium
JP2003208607A
Image processing apparatus
JP2010154069A