Image processing apparatus and method with blocks of compressed data

Abstract: There is disclosed an image processing apparatus in which original image data (from 1) are compressed (at 2) by encoding to a smaller quantity, then the image processing (at 4) is conducted in such compressed form, and thus processed data are released with a high resolving power and a satisfactory tonal rendition. In this manner highly advanced image processing can be achieved with a limited memory capacity.

Description: The present invention relates to an image processing apparatus and a method of image processing, in which compressed image data is stored in a memory device which represents image blocks, each block being obtained by dividing an image frame into a plurality of blocks. Image processing devices are known which are very expensive, being large in size and requiring a significant amount of time to perform a processing operation. Consequently, such machines have only been used as part of sophisticated printing systems. Examples of such systems are the Response 300 series manufactured by Scitex and the Studio-800 series manufactured by Crossfield. In general, an image editing apparatus requires two editing functions. Firstly, high speed processing, performed by hardware circuits and, secondly, software processing performed by a central processing unit. The first of said functions is achieved by hardware, commonly referred to as a pipeline processor, which is applied to certain items of image processing which require high speed. the second function, essentially software, is applied to certain items conducted in an interactive manner with an operator, requiring much greater processing times. Specifically, the pipeline processor is principally applied to successive image processing, such as affine conversion (enlargement, reduction, displacement or rotation) for determining the image layout, spatial filtration (enhancement or smoothing) and colour conversions, with look-up tables. CPU processing is generally applied to complex processes or those which cannot be easily implemented in hardware. Specifically, these include the extraction of an image in an arbitrary shape, the copying of an extracted image to another location and the partial correction of images. These processes generally require creativity on the part of the operator and longer periods of processing time can be tolerated. The processing functions of this type tend to be highly advanced. The system architecture of the image editing apparatus should be designed in order to achieve maximum performance of the two above mentioned editing functions. In order to achieve these functions with sufficiently high speed, it is necessary to consider the structure of the system, the data format to be handled, the flow of signals and the construction of functions etc. Various investigations have led to the following features of a system architecture for a colour image processing apparatus: 1. For achieving image processing, the image data should be maintained as compressed data; 2. Vector quantization is the preferred form of compression in which an m x m block is represented by a code; and 3. Hardware processes are most reasonably conducted as a plurality of successive processes in a pipelined manner, during the transfer of signals to and from disks. With respect to item 1 above, an image editing process with a high resolving power and a high tonal rendition requires a very large memory capacity. As an example, if an A4 sized colour image is read with a resolving power of 16 pel/mm, a data capacity in the region of 48 megabytes is required for the three colours of red, green and blue. For achieving the above mentioned interactive image precessing in a satisfactory manner, it is important to compress the colour image data into a form suitable for processing. In this respect, vector quantization, as mentioned above in item 2, is considered to provide optimum operation. In a high speed hardware processing environment, as identified by item 3 above, a longer processing time will be required if the processing is conducted in two steps, that is, a transfer step of the data from a file, such as from a rigid disk to a memory device and a process step of a hardware process being performed on the memory. Alternatively, high speed processing is achievable if the processing is conducted simultaneously with the transfer of data being performed. In EP-A-0179292 (not published at the present priority date) and in US 4,636,783, systems are disclosed which show the rotation of image data, without compression. This rotation is accomplished by the sequence of shifting whole blocks and then rotating pixels within each block. US 4, 281,312 shows a compression of data by a process of pattern recognition by block by block basis. The present invention provides an image processing apparatus for performing an affine transformation of image data representing an array of pixels defining a colour image, the image data comprising a plurality of colour signal components (Y,I,Q) each comprising respective colour signal data in respect of each of the pixels and the colour signal components collectively defining the intensity and colour of the array of pixels, wherein the apparatus comprises memory means for storing the colour image data as a plurality of arrays of data blocks such that a respective array of data blocks is provided for each of said colour signal components and each data block represents colour signal data for a corresponding block of pixels, wherein the location of each data block in its respective array of data blocks depends upon the position of the corresponding block of pixels in the array of pixels, and wherein each data block is stored in said memory means in a compressed form in accordance with a predetermined image encoding format which, with regard to at least one array of data blocks, compresses the colour signal data for each data block while substantially preserving the resolution of the colour signal data which it contains; and processing means for performing the affine transformation of the image data by (i) a first process in which the data blocks stored in said memory means are shifted in the respective arrays of data blocks so as to change the positions of the corresponding block of pixels in the colour image in accordance with said affine transformation, and (ii) a second process in which the colour signal data within each data block of said at least one array of data blocks is modified while the data blocks remain in said compressed form so as to change the positions of pixels within the corresponding blocks of pixels in accordance with said affine transformation. The invention thereby combines block based compression with affine transformation processing, to achieve high performance with reduced memory requirement. The processing means may operate on blocks of data as they are transferred from one part of memory to another, for example from a main memory to a display memory. In an embodiment wherein each data block of said at least one array of data blocks comprises an average value of the corresponding colour signal data for the corresponding block of pixels and, for each pixel in the corresponding block of pixels, a quantised code indicative of the colour signal data of that pixel relative to said average value, the second process may modify the quantised codes within the compressed data block. In such an embodiment, each data block of said at least one array of data blocks may further comprise a standard deviation of the corresponding colour signal data for the corresponding block of pixels and the above mentioned quantised codes can be normalised in units of the standard deviation. In an alternative embodiment, each of the data blocks of said at least one array of data blocks comprises an average value of the corresponding signal data for the corresponding block of pixels and an angle of rotation of a pattern representing the corresponding block of pixels. In such an embodiment, the second process may operate by modifying the angle of rotation within the compressed data block. The image data may comprise separate luminance and chrominance signals, as desired, and the affine transformation may comprise for example rotation of the image. The invention further provides methods of image processing corresponding to the above. The invention will now be described by way of example only, with reference to the accompanying drawings, in which: Fig. 1 is a block diagram of a colour image processing apparatus constituting an embodiment of the present invention; Figs. 2A and 2B are views of encoded data formats; Figs. 3A to 3G are schematic views showing the concepts of block rotation and in-block rotation; Fig. 4 is a view showing an in-block rotation; Figs. 5A and 5D are views showing processes to which codes are subjected by rotation; Fig. 6 is a block diagram of a rotating circuit; Fig. 1 illustrates an image processing apparatus wherein shown are a reader 1 for reading an original image with a high resolving power and with multiple density levels (a digital value of 2 bits or more); a compressor 2 for encoding image data; a memory 3 of a large capacity for temporarily storing the encoded image data or the data after a processing a before another processing; a pipeline processor 4 for editing input image data in raster form obtained from the memory 3; a random access image memory 5 for storing the results of processing; a decoder 6 for decoding the encoded data into another data of a high resolving power and of multiple density levels; a CPU 8 for controlling the entire apparatus and applying fine processing to the image data; a CRT interface 9 for supplying a cathode ray tube 10 with encoded data; a colour cathode ray tube 10; a converter 11 for converting the signal from reader 1 into a standard colour signal; and a converter 12 for converting the standard colour signal into a signal for a printer. As the pipeline processor 4 is designed to process the image data entered in the sequence of rasters, the memory 3 need not be an expensive random access memory but can be, for example, a rigid disk memory. In operation, image data, obtained by the reader 1 and composed for example of 8 bits per pixel for each of red, green and blue signals, are converted by a converter 11 to obtain a luminance signal Y and colour difference signals I, Q employed in the NTSC system. Such conversion can be achieved by a following matrix calculation of the red, green and blue data in the following manner: wherein the coefficients may be suitably adjusted according to the colour separating characteristics and gamma characteristics of the reader. Said signals Y, I, Q are compressed by a compressor 2 and stored in a disk memory 3 constituting an image data file. The image data in said disk are then read to an IC memory, constituting an image memory 5, for processing or editing. For achieving a high-speed process, basic processes are executed, by a pipeline processor 4, formed as a hardware, through a raster operation, in the transfer form the disk to the image memory 5. The image data on the image memory 5 are processed and edited by a CPU 8. The procedure of image editing is displayed on a colour CRT 10 by a CRT controller 9 for monitoring. The edited result is converted into image data by a decoder 6, and then converted by a converter 12 into colour signals of yellow, magenta, cyan and black for supply to a colour printer 7. In the following there will be explained the method of compression of image data. In a three colour signal system composed of the luminance signal Y and colour difference signals I and Q, it is already known that the visual image quality can be maintain by preserving the spatial frequency of the luminance signal Y, even if the spatial frequency of the colour difference signals I, Q are limited to a certain extent in the high-frequency region. It is therefore considered, in data compression, to reduce the amount of data of a colour image by representing the colour information in the colour difference signals I, Q, for example by the average value in an m x m block wherein m is an integer. The size of said block is selected for examples as 2 x 2, 4 x 4, 6 x 6, etc. according to the variable memory capacity. As an example, in case of a block size of 4 x 4, the aforementioned memory capacity of 48 Mbyte required for an A4-sized image can be reduced to the Y-signal of 16 Mbyte and I, Q signals of 2 Mbyte, or a total of 18 Mbyte, with a compression rate of ca. 2.7. Different from the compression of the signals I, Q, the luminance signal Y requires a compression which satisfactorily preserves the data on resolving power. A first conceivable method is block encoding. In this method the average x and standard deviation o are calculated on the pixel data x in the m x m block. The density of each pixel is represented by several bits, for example by requantising (x - x ) / σ. Fig. 2A shows the format of thus compressed data, in which the average value and the standard deviation are followed by the density information in order to positions of pixels in the block. Consequently a rotation of the pixels in the block can be achieved by changing the sequence of the density information. A second conceivable method is vector quantization of m x m pixels. In this method, the pixel data in the m x m block are represented by the average value x , standard deviation σ, a code indicating image rotation and a code representing image pattern, in order to achieve data compression. Fig. 2B shows the corresponding data format, wherein the rotation code indicates the angle of rotation of the image pattern in the m x m block, and, in the present embodiment, indicates an angle of 0°, 90°, 180° or 270° in two bits. In this method, the pixels in the block can be rotated by a change in the rotation code. In the following there will be explained processes conducted to achieve affine conversion, i.e., enlargement, reduction, displacement or rotation of an image. Among the address (x S , y S ) of an input image on the input memory; an image magnification α in the main scanning direction; an image magnification β in the sub scanning direction; an angle of rotation ; coordinate (x C , y C ) of the center of rotation; an amount of displacement x m in the main scanning direction; an amount of displacement y m in the sub scanning direction; and an address (x D , y D ) in the output memory, there stands a following relationship: The affine conversion is conducted by entering raster source data from the file, reader or image memory, and storing said data in random access in a destination memory, for which the image memory is utlised. Thus the affine conversion can be achieved at a very high speed, by means of the pipeline converter 4, in the course of data transfer from the file to the image memory, in successive manner. The image data are in the aforementioned compressed form, and the address is defined in an address space corresponding to the compressed data. After the determination of the addresses of the encoded data after the affine conversion, there is conducted permutation of the image data in the block, as will be explained in the following for a case of a 2 x 2 block. Fig. 3A shows data of 4 blocks A, B, C, D constituting an original image. If addresses are generated and stored in the destination memory by the above-explained rotation process for a block rotation of 90°, 180° or 270°, the resulting image does not faithfully reproduce the original image, as shown in Figs. 3B, 3C or 3D. Consequently the pixels in each block are rotated according to the angle of rotation to achieve faithful reproduction as shown in Fig. 3E, 3F or 3G, respectively representing a rotation of the pixels of each block by 90°, 180° or 270°. Said rotation can be achieved by varying the rotation code of 2 bits shown in Fig. 2B, without modifying the pattern codes. For a rotation of an arbitrary angle, the rotation in block is selected respectively in four ranges of image rotation of 90° each. As shown in Fig. 4, the angle of image rotation is divided into four ranges of 315° - 45°, 45° - 135°, 135° - 225° and 225° - 315°, and a rotation in the block of 0°, 90°, 180° or 270°, is respectively selected. Figs. 5A to 5D show examples in the block encoding format shown in Fig 3A, of reformatting by rearrangement by rotation in the block, respectively corresponding to a rotation of 0°, 90°, 180° or 270°. The data x and σ are not changed, and the succeeding density data are permutated. The original data sequence ABCD shown in Fig. 5A, corresponding to a rotation of 0°, is changed to BDAC as shown in Fig. 5B corresponding to a rotation of 90°, or DCBA as shown in Fig. 5C for 180°, or CABD as shown in Fig. 5D for 270°. Fig.6 shows an embodiment of a circuit for converting the data format in the block, wherein the input signals x , σ are stored in a buffer 80, and the succeeding density data are separately stored in buffers 81, 82, 83, 84. Selectors 85, 86, 87, 88 receive select signals corresponding to the angle of rotation, from an unrepresented controller. For example there is employed a select signal of 2 bits, in which 0, 1, 2 and 3 respectively corresponding to an angle of 0°, 90°, 180° or 270°. Output lines A, B, C, D of said buffers 81, 82, 83, 84 are connected to input lines X, Y, Z, W of the selectors 85, 86, 87, 88 in different permutations. As an example, in response to the select signal "1", each selector releases a signal received at the input terminal Y, whereby signals B, D, A and C are respectively obtained form the selectors 85, 86, 87 and 88. These output signals are combined with x and o in a buffer 90 to obtain an output data format as shown in Fig. 5. In the foregoing embodiment of block rotation and in-block rotation of the encoded data, the affine conversion is achieved by a combination of a collective rotation of compressed data of an m x m block, and a rotation of compressed data in said m x m block. In order to minimize the deterioration in image quality associated in such operations, (1) the luminance signal Y is subjected to block encoding or vector quantization in a small matrix m o x m o ; and (2) colour difference signal I, Q, only requiring a relatively low resolving power for human eyes, are subjected to block encoding in a relatively large matrix m 1 x m 1 (m 1 > m 0 ), or vector quantization, or direct averaging.

Claims: An image processing apparatus for performing an affine transformation of image data representing an array of pixels defining a colour image, the image data comprising a plurality of colour signal components (Y,I,Q) each comprising respective colour signal data in respect of each of the pixels and the colour signal components collectively defining the intensity and colour of the array of pixels, wherein the apparatus comprises: memory means (3,5) for storing the colour image data as a plurality of arrays of data blocks such that a respective array of data blocks is provided for each of said colour signal components and each data block represents colour signal data for a corresponding block of pixels, wherein the location of each data block in its respective array of data blocks depends upon the position of the corresponding block of pixels in the array of pixels, and wherein each data block is stored in said memory means in a compressed form in accordance with a predetermined image encoding format which, with regard to at least one array of data blocks, compresses the colour signal data for each data block while substantially preserving the resolution of the colour signal data which it contains; and processing means (4) for performing the affine transformation of the image data by: (i) a first process in which the data blocks stored in said memory means are shifted in the respective arrays of data blocks so as to change the positions of the corresponding block of pixels in the colour image in accordance with said affine transformation, and (ii) a second process in which the colour signal data within each data block of said at least one array of data blocks is modified while the data blocks remain in said compressed form so as to change the positions of pixels within the corresponding blocks of pixels in accordance with said affine transformation. An apparatus according to claim 1, wherein the colour signal components comprise a luminance component and first and second chrominance components, and wherein said at least one array of data blocks is constituted by colour signal data of the luminance component. An apparatus according to claim 2, wherein each of the data blocks representing said first and second chrominance components comprises an average value of the corresponding colour signal data for the corresponding block of pixels. An apparatus according to claim 2 or 3, wherein each of the data blocks representing said luminance component represents a block of m 0 x m 0 pixels and each of the data blocks representing said first and second chrominance components represents a block of m 1 x m 1 pixels and wherein m 1 is greater than m 0 . An apparatus according to any preceding claim, wherein each data block of said at least one array of data blocks comprises an average value of the corresponding colour signal data for the corresponding block of pixels and, for each pixel in the corresponding block of pixels, a quantised code indicative of the colour signal data of that pixel relative to said average value, and wherein the second process modifies said codes within the compressed data block. An apparatus according to claim 5, wherein each data block of said at least one array of data blocks further comprises a standard deviation of the corresponding colour signal data for the corresponding block of pixels, and wherein said quantised codes indicative of the colour signal data relative to said average value are normalised in units of said standard deviation. An apparatus according to any of claims 1 to 4, wherein each of the data blocks of said at least one array of data blocks comprises an average value of the corresponding signal data for the corresponding block of pixels and an angle of rotation of a pattern representing the corresponding block of pixels, and wherein the second process operates by modifying said angle of rotation. An apparatus according to any preceding claim, further comprising display means (10) for displaying an image in accordance with the processed image data stored in said memory means. An apparatus according to any preceding claim, wherein said affine transformation comprises rotation of the image. An apparatus according to claim 9, comprising selection means (85, 86, 87, 88) for variably selecting degrees of rotation in accordance with the selection signal, and wherein said processing means (4) is operable to perform said first and second processes according to the selected degree of rotation. A method of performing an affine transformation of image data representing an array of pixels defining a colour image, the image data comprising a plurality of colour signal components (Y,I,Q) each comprising respective colour signal data in respect of each of the pixels and the colour signal components collectively defining the intensity and colour of the array of pixels, wherein the method comprises the steps of: storing the colour image data as a plurality of arrays of data blocks such that a respective array of data blocks is provided for each of said colour signal components and each data block represents colour signal data for a corresponding block of pixels, wherein the location of each data block in its respective array of data blocks depends upon the position of the corresponding block of pixels in the array of pixels, and wherein each data block is stored in a compressed form in accordance with a predetermined image encoding format which, with regard to at least one array of data blocks, compresses the colour signal data for each data block while substantially preserving the resolution of the colour signal data which it contains; and performing the affine transformation of the image data by: (i) shifting the stored data blocks in the respective arrays of data blocks so as to change the positions of the corresponding block of pixels in the colour image in accordance with said affine transformation, and (ii) modifying the colour signal data within each data block of said at least one array of data blocks while the data blocks remain in said compressed form so as to change the positions of pixels within the corresponding blocks of pixels in accordance with said affine transformation. A method according to claim 11, wherein the colour signal components comprise a luminance component and first and second chrominance components, and wherein said at least one array of data blocks is constituted by colour signal data of the luminance component. A method according to claim 12, wherein each of the data blocks representing said first and second chrominance components comprises an average value of the corresponding colour signal data for the corresponding block of pixels. A method according to claim 12 or 13, wherein each of the data blocks representing said luminance component represents a block of m 0 x m 0 pixels and each of the data blocks representing said first and second chrominance components represents a block of m 1 x m 1 pixels and wherein m 1 is greater than m 0 . A method according to any of claims 11 to 14, wherein each data block of said at least one array of data blocks comprises an average value of the corresponding colour signal data for the corresponding block of pixels and, for each pixel in the corresponding block of pixels, a quantised code indicative of the colour signal data of that pixel relative to said average value, and wherein said modifying step modifies said codes within the compressed data block. A method according to claim 15, wherein each data block of said at least one array of data blocks further comprises a standard deviation of the corresponding colour signal data for the corresponding block of pixels, and wherein said quantised codes indicative of the colour signal data relative to said average value are normalised in units of said standard deviation. A method according to any of claims 11 to 14, wherein each of the data blocks of said at least one array of data blocks comprises an average value of the corresponding signal data for the corresponding block of pixels and an angle of rotation of a pattern representing the corresponding block of pixels, and wherein said modifying step modifies said angle of rotation. A method according to any of claims 11 to 17, further comprising the step of displaying an image in accordance with the processed image data. A method according to any of claims 11 to 18, wherein said affine transformation comprises rotation of the image. A method according to claim 19, comprising the step of variably selecting degrees of rotation in accordance with a selection signal, and wherein said performing step performs said shifting and modifying steps according to the selected degree of rotation.

Inventors: KAWAMURA NAOTO, OSAWA HIDEFUMI, SATO MAMORU, KAWAMURA, NAOTO, OSAWA, HIDEFUMI, SATO, MAMORU
Applicants: CANON KK, CANON KABUSHIKI KAISHA
Application year: 1986
Main classification: G06T9
IPC codes: G06T9, G06T11