Patent Publication Number: US-5293252-A

Title: Method of compressing digital image data and device thereof

Description:
BACKGROUND OF THE INVENTION 
     This invention relates to a method of compressing digital image data and a device thereof for a digital image recording device, and more particularly to a method of compressing digital image data and a device thereof capable of coding the digital image data within predetermined constant rate data. 
     Generally, there is disclosed a device for recording a color still image converted into digital data on a recording media such as a magnetic tape or an integrated circuit (IC) card. 
     The digital image data is formed properly as a plurality of blocks for performing a conversion-coding such as a discrete cosine transform (DCT) in such digital image recording device. The blocks is produced by dividing an original image by a unit of 8×8 pixels or 16×16 pixels. A conversion factors are produced by applying the DCT conversion coding to the blocks. The conversion factors are Huffman-coded and variable-length-coded through a proper quantization. A union group JPEG (Joint Photographic Experts Group) of the CCITT (Consultative Committee on International Telegraphy and Telephony) and the ISO (International Standard Organization) recommended the method of compressing and coding the digital image data by the above described steps on Feb. 1990. 
     The conventional method described as above has a problem that a quantity of compressed data is changed according to a complexity of an input digital image data. Especially, it is not desirable that the quantity of digital image data is changed in a still video camera for compressing and recording digital data on a record media such as an IC card because the number of scenes of a digital image recorded on the IC card may be changed according to a complexity of the input image contents. 
     Therefore, a user experiences an inconvenience since the number of scenes to be recorded on one IC card made of static random access memory (SRAM) is not predictable. 
     SUMMARY OF THE INVENTION 
     An object of this invention is to provide a method of compressing a digital image data and a device thereof to generate a constant rate data without regard to a complexity of input digital image data, within the extent of not deteriorating a resolution of an image. 
     Another object of this invention is to provide a method of compressing digital image data and a device thereof for coding a digital image data within predetermined constant rate data. 
     Still another object of this invention is to provide a digital image recording device for a convenient use. 
     According to an aspect of the present invention, a format of M×N pixel blocks (where M, N are natural numbers) is made from luminance and sub-sampled chrominance signals, and first to fourth edge values TY, TR-Y, TB-Y, Ai respectively from the luminance, sub-sampled signals and the blocks are detected. A quantization scaling factor is determined by normalizing the first edge value, and the number of bits corresponding to the each block is allocated according to the first to fourth edge values. The number of AC (alternating current) factor bits is allocated by subtracting the number of DC (direct current) factor bits of the each block coded by a one-dimensional Huffman coder from the number of the allocation bits. 
    
    
     BRIEF DESCRIPTION OF DRAWINGS 
     For a better understanding of the invention and to show how the same may be carried into effect, reference will now be made, by way of example, to the accompanying diagrammatic drawings, in which: 
     FIG. 1 is a block diagram of a digital image data compression device according to this invention. 
    
    
     DETAILED DESCRIPTION OF CERTAIN PREFERRED EMBODIMENTS 
     Referring to FIG. 1, a coding circuit according to a digital image compression coding method of JPEG described above, has a coding circuit 100, first and second Huffman coding circuits 216, 218 and a multiplexer 220. A detection circuit has a first edge detector 201 for detecting an edge component of a luminance signal Y, second and third edge detectors 202, 203 for detecting an edge component of each sub-sampled chrominance signal R-Y, B-Y and a fourth edge detector 204 for detecting an edge component of blocks. A decision circuit has a normalization circuit 207 for normalizing an edge component detection value TY of the luminance signal Y detected by the detection circuit to ##EQU1## and a S-factor decision circuit 209 for determining a scaling factor S of a quantization according to a normalization value from the normalization circuit 207. A quantization circuit 106 of the coding circuit 100 quantizes conversion factors which is DCT-processed in two-dimension by a DCT circuit 105, according to an output signal from the S-factor decision circuit 209. Since quantization is performed by multiplying a quantization matrix by 2 -S , a compression ratio of data is inversely proportional to the scaling factor S. 
     A block bit allocation circuit allocates bits corresponding to each block, according to the edge detection values TY, TR-Y, TB-Y and Ai from the fist to fourth edge detectors. The block bit allocation circuit has first to third block bit allocators 210, 211, 212. The first block bit allocator 210 multiplies AL (A is predetermined image compression bits and L is an allocation constant of the luminance signal) by a value of dividing the block edge detection value Ai detected by the fourth edge detector 204 by the luminance signal edge detection value TY detected by the first edge detector 201. The second block bit allocator 211 multiplies AM (A is the predetermined image compression bits and M is an allocation constant of the chrominance signal R-Y) by a value of dividing the block edge detection value Ai by the chrominance signal edge detection value TR-Y detected by the second edge detector 202. The third block bit allocator 212 multiplies AN (A is the predetermined image compression bits and N is an allocation constant of the chrominance signal B-Y) by a value of dividing the block edge detection value Ai by the chrominance signal edge detection value TB-Y detected by the third edge detector 203. 
     An AC factor bit allocator 214 allocates AC factor bits by subtracting DC factor bits of each block coded by one-dimensional Huffman coding from the number of bits allocated by the block bit allocation circuit and supplies the allocated bits to the second Huffman coder circuit 218. The second Huffman coder 218 receiving a signal output from a zig-zag scanner 110, codes the AC factor of block as many as the number of bits received from the AC factor bit allocator 214 during the two-dimensional Huffman coding. 
     A desirable embodiment of the invention is described hereinafter according to the above stated structure. 
     Referring FIG. 1, an original digital chrominance signal R, G, B (red, green and blue) are transmitted as a luminance signal Y and chrominance signals B-Y, R-Y by a coordinate converter 101. The original chrominance signals R, G, B supplied to the coordinate converter 101 is generated from a CCD (Charge Coupled Device). The luminance and chrominance signals output from the coordinate converter 101 are expressed as a determinant as follow. ##EQU2## 
     In the equation (1), the size of image data corresponding to each component may be set as 720 H×480 V (H is a pixel in a horizontal direction and V is a pixel in a vertical direction). Since the luminance signal Y from the coordinate converter 101 has a concentrated energy, the chrominance signals R-Y, B-Y should be sub-sampled point-sequentially. Therefore, the chrominance signals R-Y, B-Y are transmitted as the size of 360 H×480 V by first and second sub-sampling circuits 102, 103, respectively. A block format circuit 104 divides each component into blocks of 8×8 pixels in order of components R-Y, B-Y, and Y for performing a conversion coding. Accordingly, the luminance signal of 720 H×480 V pixels is divided into 90×60 blocks, the sub-sampled chrominance signal R-Y, B-Y of 360 H×480 V pixels is divided into 45×60 blocks, respectively, so that the number of total blocks is 10,800. 
     The first edge detector 201 detects an edge component from the luminance signal Y, the second edge detector 202 detects an edge component from the chrominance signal R-Y sub-sampled by the first sub-sampling circuit 102 and the third edge detector 203 detects an edge component from the chrominance signal B-Y sub-sampled by the second sub-sampling circuit 103. The fourth edge detector 204 detects an edge component of blocks by the block format circuit 104. In this case, the detection of the edge components is performed by utilizing a gray level and direction between adjacent pixels. The edge detection values from the first to fourth edge detectors 201, 202, 203, 204 are referred to as TY, TR-Y, TB-Y and Ai, respectively. 
     The blocks output from the block format circuit 104 is sequentially DCT-converted by DCT circuit 105 in two-dimension. The two-dimensional DCT conversion concentrates an energy distributed to all pixels into several conversion factors of low frequency including DC factor. 
     Since the level of the chrominance signals R-Y, B-Y is from -128 to +128, the level of the DC factor out of conversion factors is from -1024 to +1023, and since the level of the luminance signal Y is from 0 to 255, the DC factor of the converted signals is different from that of the chrominance signals R-Y, B-Y. Accordingly, the two-dimensional DCT should be performed after adding the value of -128 to the luminance signal Y in order that the level of two chrominance and luminance signal might be the same. 
     A quantization circuit 106 quantizes linearly the conversion factors from the DCT circuit 105 according to a quantization step size Q supplied by a multiplier 114. The quantization step size Q is expressed as follows. 
     
         Q=QM×2.sup.-S                                        (2) 
    
     In this case, the QM is a quantization matrix 116 and the S is a scaling factor. It is desirable that a value recommended by the JPEG is used as a value of the quantization matrix 116. The factor output from the quantization circuit 106 depends on the scaling factor and is related to a picture quality. The normalization circuit 207 divides a predetermined value 10 10  by luminance signal edge detection value TY to transmits its result to a S-factor decision circuit 209. The S-factor decision circuit 209 determines a scaling factor of the quantization circuit 106 according to the normalization value. In this case, assuming that the total number of bits of the luminance and the chrominance signals Y, R-Y, B-Y is 5400 kilo-bits, it comes to 675 kilo-bits by compressing by 1/8 and it comes to 37.5 kilo-bits by compressing by 1/16. Accordingly an input image should have a compression ratio of 1/8 or 1/16 according to a normalization value of the input image luminance signal in order to complete a data compression within predetermined constant rate bits for any input image, and it is directly related to a determined value of the scaling factor. The scaling factor is within a value of 5.12 which is divided by an interval 0.02 to turn into 256 pieces. Consequently the scaling factor value is determined to a higher value between 0 and 5.12 in case of the normalization value being high and to a lower value therebetween in case of the normalization value being low. 
     Among the factors quantized linearly by the quantization circuit 106, the DC factor is transmitted to the DPCM (differential pulse code modulation) circuit 108 and the AC factor is transmitted to the zig-zag scanner 110. The DPCM circuit 108 codes the DC factor by the one-dimensional prediction coding and transmits it to the first Huffman coder 216, and the zig-zag scanner 110 scans the AC factors in a zig-zag and transmits it to the second Huffman coder 213. 
     The edge detection values TY, TR-Y, TB-Y are transmitted to the first to third block bit allocators 210, 211, 212 respectively, and the block edge detection value Ai is transmitted commonly to the first to third block bit allocators 210 to 212. The first block bit allocator 210 allocates bits for block on the basis of an equation of ##EQU3## here, the predetermined image compression bits A and the allocation constant L of the luminance signal Y may be set to 337.5 kilobits and 0.76 respectively, in case of the compression ratio being 1/16. The second block bit allocator 211 allocates bits for block on the basis of an equation of ##EQU4## here, the predetermined image compression bits A and the allocation constant M of the chrominance signal TR-Y may be set to 337.5 kilo-bits and 0.11 respectively, in the case of the compression ratio being 1/16. The third block bit allocator 212 allocates bits for block on the basis of an equation of ##EQU5## here, the predetermined image compression bits A and the allocation constant N of the chrominance signal TB-Y may be set to 337.5 kilo-bits and 0.13 respectively, in the case of the compression ratio being 1/16. The percentage of allocating bits for each component block is Y:R-Y:B-Y=76:11:13, which is formed experimentally by a statistical analysis. 
     It should be understood that the edge detection value of block is a factor for judging an extent of complexity of the block during allocating bits, therefore, bits for each block are allocated adaptively. 
     The signal bit-allocated by the first to third block bit allocators 210 to 212 is transmitted to the AC factor bit allocator 214. The AC factor bit allocator 214 subtracts the DC factor bits of each block coded by the first Huffman coder 216 from the allocated bits and transmits its result to the second Huffman coding circuit 218. The reason why the DC factor bits are subtracted from the bits allocated to the AC factor is that the DC factor is an important information for expressing a brightness of the block. Accordingly the bits allocated for coding the AC factor should be a quantity from which the DC factor bits is subtracted. 
     When the second Huffman coder 218 codes signal from the zig-zag scanner 110 by the two-dimensional Huffman coding, it terminates coding for the rest AC factor in case of the bits encoded by the second Huffman coder 218 exceeding the bits allocated by the AC factor bit allocator 214. In case of the encoded bits being less than the bits allocated by the AC factor bit allocator 214, surplus encoded bits is added to allocated bits of a next block, to thereby reduce the bit truncation error. A multiplexer 220 multiplexes the coded DC factor from the first Huffman coder 216 and the coded AC factor from the second Huffman coder 218 to store the signal therefrom in an IC card made of a SRAM. 
     Consequently, input image data may be compressed within predetermined constant rate data, i.e., 337.5 kilo-bits in case of compressing the input image data by a ratio of 1/16. 
     This invention may be applied to a still picture recording and reproducing device such as a still video camera, a CD-ROM (compact disc read only memory) and a DAT (digital audio tape recorder). In addition, it may be also applied to a HDTV (high definition television), a digital VTR (video tape recorder) and a color printer. 
     Since digital image data is coded by compressing within predetermined constant rate data, it is possible to predict the number of output data. Therefore it is convenient for a system user to record digital image data on an IC card made of a SRAM. 
     While the invention has been particularly shown and described with reference to a preferred embodiment, it will be understood by those skilled in the art that modifications in detail may be made without departing from the spirit and scope of the invention.