Image signal coding apparatus with switching between variable-length coding and fixed-length coding

Abstract: A pixel block is coded by both of a quadrature transform coding section and a block truncation coding section. A code amount counter determines a first code amount of one-block coded data produced by the quadrature transform coding section. A code amount judgment section compares the first code amount with a threshold that is smaller than or equal to a second code amount of one-block coded data produced by the block truncation coding section, and produces discrimination information indicating a comparison result. A selector selects the coded data that is output from the quadrature transform coding section if the first code amount is smaller than the threshold, and selects the coded data that is output from the block truncation coding section if the first code amount is larger than the threshold. A storage section stores the discrimination information for each pixel block and the coded data that is output from the selector and corresponds to the discrimination information.

Description: BACKGROUND OF THE INVENTION The present invention relates to an image signal coding apparatus according to the preamble of claim 1. From US-5 291 303 a facsimile apparatus is known, wherein a first coder codes image data by a one-dimensional coding method or a two-dimensional coding method, and a second coder performs coding by a second coding method different from the first coding method. When the amount of codes of one line coded by the first coder exceeds a predetermined amount, coding by the first coder is suspended and the image data is coded upon making a change-over to coding by the second coder. In addition, a code resulting from coding by the one or two dimensional coding method and a code resulting from coding by the second coding method can be received and decoded. The apparatus further comprises generating means for generating image data in line units. From JP 6153172 a code quantity control method is known, wherein an input is divided into blocks by a block dividing means. These blocks are transformed by an orthogonal transformation device and coded by a coding means. The coding is then implemented by a fixed length or a variable length coding for each prescribed unit. A code quantity directivity discrimination section discriminates the scanning direction of the code quantity after coding and the scanning direction in the coding unit is implemented in this direction. In such systems as digital copiers and printers that process high-resolution images, a vast amount of image data need to be transferred at high speed within the system. Further, with improvements in the resolution and in the quality of images by employing multi-value and color images instead of binary images, the data amount of each image is now greatly increasing. Therefore, high-speed digital copiers and printers have a problem that the transmission line bandwidth within the system becomes insufficient. Under the above circumstances, it is now being studied to eliminate bottlenecks in terms of the data transmission and storage by introducing an image coding technique into the inside of a system and reducing the data amount by compression in the data transmission and storage. The following conditions should be considered in selecting a coding scheme for the above purpose: Condition 1: high image quality can be attained at a large compression ratio. Condition 2: A worst value of the compression ratio can be assured for each coding unit, and synchronization can be obtained with the pixel clock (fixed period) of input/output devices. In particular, condition 2 needs to be satisfied because of the following backgrounds: Background 1: Where coded data is directly written to a disk to temporarily store an input image with the amount of coded data being varied, a buffer memory is needed. This causes a cost increase. Background 2: In the xerography, since an electrostatic latent image is formed on a photoreceptor rotating at a constant speed with a laser beam modulated by an image signal, the image signal needs to be always provided in synchronism with a fixed clock; that is, the image clock cannot be varied or stopped in accordance with a variation of the image decoding speed. Therefore, where the decoding pixel rate has a variation, a buffer memory is needed as in the case of background 1. This causes a cost increase. Various techniques have been invented to efficiently code gradation images and color images. The coding schemes are classified into the reversible coding which can reproduce the same image as an original image and the non-reversible coding in which a decoded image is not identical to an original image due to an information loss. In general, the non-reversible coding can provide a large compression ratio. Typical examples of the non-reversible coding are the quadrature transform coding and the block truncation coding, which will be briefly explained below. In the quadrature transform coding, an image is divided into pixel blocks (rectangular regions of pixels), and converted to frequency domain signals by quadrature transform on a block-by-block basis. In natural images such as portraits and landscapes, which have strong autocorrelation of pixel values, most of signal power after the quadrature transform concentrates in low-frequency coefficients. A compression effect can be attained as a whole by utilizing this tendency, more specifically, by quantizing, after the quadrature transform, low-frequence coefficients with high accuracy to allocate many bits thereto and quantizing high-frequency coefficients roughly to reduce the number of bits. In the block truncation coding known from SYSTEMS & COMPUTERS IN JAPAN, vol. 73-DII, No. 2, NEW YORK US, pages 266 - 275 an image is divided into pixel blocks (rectangular regions of pixels), and pixels values of a block are approximated by a plurality of representative gradation values and resolution information indicating by which representative value each pixel is expressed. The above two coding schemes are compared with each other in terms of the image quality and the compression ratio. By virtue of high reproduction performance, the quadrature transform coding can code photographic regions at a large compression ratio. However, if it is applied to an image including many edges such as a text, there occurs a problem of image quality deterioration due to reduction of the coding efficiency and discard of high-frequency coefficients, because power spreads to high-frequency coefficients. While the block truncation coding can satisfactorily reproduce an image having steep edges such as a text, it cannot properly reproduce a region having a subtle variation of gradations, such as a photographic region. Next, the two coding schemes are compared with each other in terms of the code amount variation performance. In the quadrature transform coding, the code amount tends to vary constantly from one pixel block to another due to variation of a signal power distribution after the transform depending on the content of a pixel block and mismatching of a code table in variable-length coding. On the other hand, the block truncation coding has a general feature that code amounts of the pixel blocks can be equalized (fixed-length coding) by making the resolution information and the gradation information of each pixel block have constant sizes. Since the quadrature transform coding and the block truncation coding have complementary features as described above, there have been proposed techniques of using those two coding schemes together. For example, Japanese Unexamined Patent Publication No. Sho. 63-306768 discloses a technique of using the above two coding schemes together to improve the image quality. Referring to Fig. 18, a description will be made of a configuration of the conventional technique of this publication. In Fig. 18, a one-block extracting section 1 extracts a pixel block that is a rectangular region of a plurality of pixels from an input image signal. An AC component judgment section 2 compares AC power of the pixel block with a predetermined threshold, and supplies the pixel block to a transform coding section 3 when the AC power is small and to a block truncation coding section 4 when the AC power is large. The transform coding section 3 transform-coding the pixel block and outputs coded data. The block truncation coding section 4 codes, by block truncation coding, the pixel block and outputs coded data. The operation of the above technique will be described with reference to Fig. 18. The AC component judgment section 2 calculates AC power, i.e., a sum of squares of AC components, of a pixel block extracted from an input image signal, and compares it with a predetermined threshold TH AC . If the block AC power is smaller than TH AC , i.e., the pixel block includes only a small amount of AC components such as noise and high-frequency waves, the pixel block is coded by the transform coding section 3. If the block AC power is larger than or equal to TH AC , the pixel block is judged as including a large amount of AC components such as noise and high-frequency components and coded by the block truncation coding section 4. With the above configuration and operation, blurring of outlines in a reproduced image can be prevented which blurring would otherwise occur when a pixel block including a large amount of AC components is subjected to transform coding. The above conventional technique uses together the quadrature transform coding and the block truncation coding to reproduce high quality image irrespective of existence of edges. Although this technique satisfies condition 1 mentioned above, it does not assure a worst value of the code amount, i.e., does not satisfy condition 2. Therefore, this technique cannot be used for suppressing the bandwidth within a system. SUMMARY OF THE INVENTION In view of the above problem, an object of the present invention is to suppress the transmission bandwidth within a system such as a digital copier or a printer and to provide a coding apparatus assuring good image quality and the coding rate/pixel rate being smaller than a predetermined value without depending on variation (existence of edges) of image characteristics from one pixel block to another. This problem is solved by the subject matter of independent claim 1. Preferred embodiments are described in dependent subclaims. Fig. 1(a) shows a general configuration of an image signal coding apparatus according to the present invention. To attain the above objects, the image signal coding apparatus comprises block extracting means 100 for extracting a pixel block of m x n pixels from an image signal, where m and n are positive integers; first coding means 200 for coding the extracted pixel block into variable-length coded data; second coding means 300 for coding the extracted pixel block into fixed-length coded data; code amount counting means 400 for counting code word lengths of the variable-length coded data, to determine a code amount of the pixel block; code amount judging means 500 for comparing the code amount with a first threshold, and outputting a comparison result as discrimination information; selecting means 600 for selecting the variable-length coded data or the fixed-length coded data based on the discrimination information; and storing means 700 for storing the selected coded data and the discrimination information in a correlated manner. Fig. 1(b) shows a general configuration of another image signal coding apparatus according to the invention. To attain the above objects, the image signal coding apparatus comprises block extracting means 100 for extracting a pixel block of mxn pixels from an image signal, where m and n are positive integers; first coding means 200 for coding the extracted pixel block into variable-length coded data; second coding means 300 for coding the extracted pixel block into fixed-length coded data; code amount counting means 400 for counting code word lengths of the variable-length coded data, to determine an intermediate code amount and a code amount of the pixel block; code amount judging means 500 for comparing the code amount of the pixel block with a second threshold, and outputting a comparison result as discrimination information; selecting means 600 for selecting the variable-length coded data or the fixed-length coded data based on the discrimination information; storing means 700 for storing the selected coded data and the discrimination information in a correlated manner; and termination judging means 800 for comparing the intermediate code amount with a third threshold, and for judging based on a comparison result whether a coding operation of the first coding means should be terminated. Each of the above image signal coding apparatus may further comprise dividing means provided upstream of the second coding means 300, for dividing the pixel block of mxn pixels into sub-blocks each including pxq pixels, where p and q are positive integers smaller than m and n, respectively. BRIEF DESCRIPTION OF THE DRAWINGS Figs. 1(a) and 1(b) are block diagrams showing general configurations of coding apparatuses of the present invention; Fig. 2 is a block diagram showing a configuration of a coding apparatus according to a first embodiment of the invention; Figs. 3(a)-3(f) show an example of DCT and quantization; Fig. 4 illustrates transform coefficients; Fig. 5 shows how quantized coefficients are converted to a one-dimensional sequence by a zigzag scan; Fig. 6 shows how a DC coefficient is subjected to grouping; Fig. 7 shows an example of a Huffman code table for a DC coefficient; Fig. 8 shows how an AC coefficient is subjected to grouping; Fig. 9 shows two-dimensional Huffman coding for AC coefficients; Fig. 10 shows an example of a Huffman code table for AC coefficients; Fig. 11 shows an example of coding the quantized coefficients of Fig. 3(c); Fig. 12 shows an output bit sequence; Figs. 13 (a) and 13(b) illustrate an example of block truncation coding in the first embodiment; Fig. 14 is a block diagram showing a configuration of a coding apparatus according to a second embodiment of the invention; Figs. 15(a) and 15(b) illustrate an example of block truncation coding in the second embodiment; Fig. 16 is a block diagram showing a configuration of a coding apparatus according to a third embodiment of the invention; Fig. 17 is a block diagram showing a configuration of a variable-length coding section in the third embodiment; and Fig. 18 is a block diagram showing a configuration of a conventional technique. DESCRIPTION OF THE PREFERRED EMBODIMENTS Embodiment 1 Referring to a block diagram of Fig. 2, a coding apparatus according to a first embodiment of the present invention will be described below. In Fig. 2, a block extracting section 10 extracts a pixel block of mxn pixels (m, n: positive integers) from an image signal. A quadrature transform coding section 20 has the following components. A DCT section 21 performs discrete cosine transform (hereinafter referred to as DCT) on the extracted pixel block and outputs resultant transform coefficients. A quantizing section 22 quantizes the transform coefficients according to prescribed quantizing characteristics and outputs resultant quantized coefficients. A scan converting section 23 rearranges the quantized coefficients by scanning its matrix in a zigzagged manner. A variable-length coding section 24 allocates variable-length codes (VLCs) to a combination of quantized coefficients that have been rearranged into a zigzag scanning order. A buffer 25 stores the variable-length codes in their output order. A block truncation coding section 30 performs block truncation coding on the pixel block and outputs representative gradation values and resolution information. A fixed-length code buffer 33 stores, as coded data, the representative gradation values and resolution information. A code amount counter 40 counts, on a block by block basis, the number of bits of variable-length codes allocated by the variable-length coding section 24. A code amount judgment section 50 compares a count result with a preset threshold and outputs a result of the magnitude comparison as discrimination information. A selector 60 selects the coded data stored in the variable-length code buffer 25 or the fixed-length code buffer 33, and outputs the selected coded data. A storage section 70 stores the discrimination information and the coded data in a correlated manner. Referring to Fig. 2, the operation of the coding apparatus according to the first embodiment will be described. First, the block extracting section 10 extracts a pixel block of mxn pixels (m, n: positive integers) from an image signal. Fig. 3(a) shows an 8x8 pixel block, and the following description is directed to a case where pixel blocks of this size are used. The quadrature transform coding section 20 performs DCT coding, which is one of transform coding schemes, on each extracted pixel block. There is known a DCT type quadrature transform coding scheme that is disclosed in G.K. Wallace: "The JPEG Sill Picture Compression Standard," Communications of the ACM, April 1991. Now, a detailed description will be made of a coding operation of the quadrature transform coding section 20 shown in Fig. 2. The DCT section 21 performs DCT on an input rectangular pixel block of 8x8 pixels. Eighth-order, two-dimensional DCT is given by Equation (1) and its inverse transform is given by Equation (2). where In the above equations, f(i, j) is each element of a pixel block, and i and j represent a position of that element. F(u, v) is an element of transform coefficients, and u, and v represent a position of that element. C(w) means C(u) or C(v). Fig. 3(b) shows transform coefficients that are obtained by performing the 8th-order, two-dimensional DCT of Equation (1) on the pixel block of Fig. 3(a). An element that is located at the top-left corner of a transform coefficient matrix (see Fig. 4), which element corresponds to an average luminance of the pixel block, is called a DC coefficient. Elements other than the DC coefficient are called AC coefficients. Further, as shown in Fig. 4, AC coefficients located closer to the rightmost column correspond to higher frequency components in the horizontal direction and AC coefficients located closer to the bottom row correspond to higher frequency components in the vertical direction. Therefore, the bottom-right element of a matrix corresponds to the highest frequency component in both horizontal and vertical directions. Transform coefficients that are output from the DCT section 21 are quantized by the quantizing section 22 and output as quantized coefficients. The quantization is a process for calculating quotients by dividing elements of transform coefficients by corresponding elements of a quantization matrix, and is defined by the following equations: F Q ( u,v ) = { F(u,v) + Q ( u,v )/2}/ Q ( u,v ) ( F ( u,v ) ≥ 0) F Q ( u,v ) = { F ( u,v )- Q ( u,v )/2}/ Q ( u,v ) ( F ( u,v ) < 0) where F(u, v), Q(u, v) and F Q (u, v) are an element of transform coefficients, an element of a quantization matrix, and an element of quantized coefficients, respectively. Parameters u and v represent an element position. Fig. 3(c) shows an example of a quantization matrix that are determined in consideration of visual characteristics of respective frequency components. In general, as shown in Fig. 3(c), small values are set for coefficients corresponding to low-frequency components to attain highly accurate quantization and large values are set for coefficients corresponding to high-frequency components to perform rough quantization. Fig. 3(d) shows quantized coefficients obtained by linearly quantizing the transform coefficients of Fig. 3(b) by using the quantization coefficients of Fig. 3(c). In the scan converting section 23, the quantized coefficients are zigzag-scanned in the order of numbers 0-63 of a matrix shown in Fig. 5 so as to be converted to a one-dimensional sequence. In the variable-length coding section 24, the one-dimensional quantized coefficients are Huffman-coded. The coding is performed separately for a DC component and AC components with Huffman code tables prepared for those two kinds of components. First, a description will be made of coding of a DC coefficient. To encode a DC component, a difference of the subject DC coefficient from a DC coefficient of the immediately preceding block is calculated and a group number is determined according to a table shown in Fig. 6. The group number thus determined is subjected to Huffman coding. To indicate which value of the group the difference corresponds to, additional bits having the same number of bits as the group number are provided. In the case of the quantized coefficients of Fig. 3(d), if it is assumed that a DC coefficient of the immediately preceding block is 14, the difference of the DC coefficient of the subject block from that of the immediately preceding block is calculated such that 16 - 14 = +2. According to the table of Fig. 6, the group number is determined as 2. According to a code table for DC coefficients shown in Fig. 7, a code corresponding to the group number 2 is found to be a binary code "011." Further, to discriminate among four values of -3, -2, 2 and 3 that belong to the group number 2, 2-bit information is provided. In this case, "10" is provided for the value 2. Next, a description will be made of coding of AC coefficients. AC components are coded in the order of the numbers 1-63 of the matrix shown in Fig. 5. Counting is made in this order until detection of a non-zero coefficient (effective coefficient) to determine the length (zero-run) of consecutive zero coefficients (ineffective coefficients). Upon detection of an effective coefficient, a group number corresponding to the coefficient value is determined according to a table shown in Fig. 8. Additional bits indicating which value of the group the AC coefficient corresponds to are also determined. In a code table for AC coefficients, a Huffman code is allocated to a combination a zero-run of ineffective coefficients and a group number of a subsequent effective coefficient. Fig. 9 shows 256 combinations of a zero-run and a group number, specifically, from (0, 0) to (15, 15). Each combination is given a binary code as shown in Fig. 10. As described above, AC coefficients are coded based on a combination of a zero-run of ineffective coefficient and a group number of a subsequent effective coefficient, and additional bits indicating which value of the group the effective coefficient corresponds to. The above operation continues until all of the effective coefficients of the block are processed. If it is found that all of the remaining AC coefficients of the block are zero, EOB is coded (a block termination code) at that time to complete the one-block process. Fig. 11 shows an example in which the quantized coefficients of Fig. 3(d) are coded by the above procedure. Fig. 12 shows a bit sequence that is output as codes. In this example, information of 512 bits in total in which a pixel consists of 8 bits and a block consists of 8x8 pixels is compressed to 63 bits. In a decoding process, Huffman decoding is performed in a procedure reverse to the above, to reproduce the quantized coefficients of Fig. 3(d). Inversely quantized coefficients shown in Fig. 3(e) are then obtained by multiplying the quantized coefficients by corresponding elements of the quantization matrix of Fig. 3(c). Further, a decoded pixel block shown in Fig. 3(f) is obtained by performing inverse DCT of Equation (2) on the inversely quantized coefficients. With the above processes, image information can be coded and decoded according to the transform coding scheme. In the case of the transform coding scheme, the size of coded data varies depending on the contents of a pixel block. Coded data that are output from the variable-length coding section 24 stored into the variable-length code buffer 25. Next, a detailed description will be made of a coding operation of the block truncation coding section 30. The following description will be directed to a case of binary block truncation coding. First, an average µ of pixel values of a block including mxn (m, n: positive integers) that have been extracted from an image signal by the block extracting section 10 is calculated according to Equation (6). Then, pixel values of the block are compared with the average µ, and pixel values larger than or equal to the average µ are classified as group 1 and pixel values smaller than it are classified as group 0. Letting N A and N B denote the number of pixels classified as group 1 and the number of pixels classified as group 0, respectively, averages A and B of the pixels belonging to groups 1 and 0 are calculated according to Equations (7) and (8), respectively. A and B are called representative gradation values of the respective groups. One-bit information (0 or 1) indicating which group a pixel of the block belongs to is called resolution information. The block truncation coding is completed in the above manner, as a result of which the representative gradation values and the resolution information are stored, as coded data, into the fixed-length code buffer 33. Fig. 13(a) shows an example of coded data and decoded pixel block of the block truncation coding. In the following, it is assumed that the pixel block size is 8 pixels by 8 pixels and each pixel has 8-bit resolution (256 levels). An image is reproduced by replacing positions of pixels having resolution information 0 with the representative gradation value A of group 1 and positions of pixels having resolution information 1 with the representative gradation value B of group 0. Fig. 13(b) shows an example of a configuration of coded data generated by the block truncation coding. The two representative gradation values are assigned 16 bits and the resolution information is assigned 64 bits; that is, one pixel block is coded by use of 80 bits. The compression ratio is calculated as follows: (compression ratio) = (data amount of original pixel block)/(coded data amount) = (8 [pixels] x 8 [pixels] x 8 [bits])/80 [bits] = 6.4 Four-value block truncation coding can be realized in a similar manner. In this case, four representative gradation values are assigned 32 bits and resolution information is assigned 2 bits per pixel, i.e., 2 [bits] x 64 [pixels] = 128 [bits] for the entire block; that is one pixel block is coded by use of 160 bits in total. The compression ratio is calculated as follows: (compression ratio) = (data amount of original pixel block)/(coded data amount) = (8 [pixels] x 8 [pixels] x 8 [bits])/160 [bits] = 3.2 In the case of the block truncation coding, the compression ratio is predetermined by the combination of representative gradation values and resolution information, so that the compression ratio can be made constant without depending on the contents of pixel blocks. Referring to Fig. 2, the code amount counter 40 performs, on a block by block basis, a counting operation to determine the size of variable-length codes that have been assigned by the variable-length coding section 24. The count value is reset to zero upon completion of a one-block operation. The code amount judgment section 50 compares the size of variable-length codes of one pixel block which size has been determined by the code amount counter 40 by the counting operation with the predetermined threshold. A comparison result, i.e., discrimination information, is not only supplied to the selector 60 but also stored into the storage section 70. The threshold may be the size of codes that are output from the block truncation coding section 30. In the case of the above-described binary block truncation coding, 80 bits is set as the threshold. If the size of one-block variable-length codes is smaller than 80 bits, a value 0 is output as 1-bit discrimination information. If the size of one-block variable-length codes is larger than 80 bits, a value 1 is output as 1-bit discrimination information. When receiving discrimination information of 0, the selector 60 reads the coded data stored in the variable-length code buffer 25 and stores it into the storage section 70. When receiving discrimination information of 1, the selector 60 reads the coded data stored in the fixed-length code buffer 33 and stores it into the storage section 70. After execution of the above procedure, the discrimination information for the respective blocks and the corresponding coded data are stored in the storage section 70, and the coding operation is finished. With the above configuration and operation, for any kind of input pixel block, codes of one block are so generated as to have a size that is not larger than the one-block code size of the fixed-length coding. Therefore, the code size variation can be suppressed. As stated in the above description of the prior art, the quadrature transform coding can code an image dominated by gradation such as a photographic region efficiently, i.e., with a small code amount. However, if it is applied to an image including edges such as a text, the efficiency is low (code amount is large). In the first embodiment, by virtue of the adaptation based on the code amount, selection is automatically made such that the quadrature transform coding is applied to a photographic region and the block truncation coding is applied to a text region without performing direct discrimination between a photographic region and a text region. Therefore, the first embodiment can improve the image quality to an extent similar to the case of the conventional technique. Embodiment 2 Referring to a block diagram of Fig. 14, a configuration of a coding apparatus according to a second embodiment of the invention will be described. The components in Fig. 14 that are the same as or similar to those in Fig. 2 are given the same reference numerals and descriptions therefor will be omitted. In Fig. 14, a sub-block dividing section 34 divides a pixel block of mxn pixels (m, n: positive integers) that has been extracted from an image signal by the block extracting section 10 into sub-blocks of pxq pixels (p, q: positive integers smaller than m and n, respectively). The operation of the coding apparatus of the second embodiment will be described with reference to Figs. 15(a) and 15(b). Fig. 15(a) shows an example in which a block of 8x8 pixels is divided into sub-blocks of 4x4 pixels. The block truncation coding section 30 performs, for instance, binary block truncation coding on each sub-block. Fig. 15(b) shows an example of coded data produced by binary block truncation coding that is performed on a sub-block basis. Foe each sub-block, coded data consists of two representative gradation values (2 x 8 bits) and resolution information (4 x 4 = 16 bits) for 16 pixels. Therefore, the code amount per pixel block is 4 x (16 + 16) = 128 bits. In this case, the compression ratio is calculated as follows: (compression ratio) = (data amount of original pixel block)/(coded data amount) = (8 [pixels] x 8 [pixels] x 8 [bits])/128 [bits] = 4 The remaining operation is not described here because it is the same as in the first embodiment except that a threshold of 128 bits is set in the code amount judgment section 50. In the second embodiment, one block can be expressed by eight representative gradation values at the maximum with the number of bits smaller than in 4-value block truncation coding that is performed for each block of 8x8 pixels, while a compression ratio of 4 is assured even in the worst case. The size of sub-blocks is not limited to 4x4 pixels, and the block truncation coding performed for each sub-block is not limited to binary one. Embodiment 3 Referring to a block diagram of Fig. 16, a configuration of a coding apparatus according to a third embodiment of the invention will be described. The components in Fig. 16 that are the same as or similar to those in Figs. 2 and 14 are given the same reference numerals and descriptions therefor will be omitted. Fig. 17 shows a configuration of a variable-length coding section 24a shown in Fig. 16. In Fig. 17, a zero judgment section 80 judges whether an input quantized coefficient is zero or not. A zero-run counter 81 performs a counting operation to determine the length of consecutive zero coefficients. A group number determining section 82 determines a group number of a non-zero coefficient. A code word determining section 83 determines a bit sequence consisting of a variable-length code corresponding to an input zero-run and group number and additional bits. Variable-length codes are registered in a code table 84. A switching section 85 switches between the output of the code word determining section 83 and EOB (end of block, i.e., a block termination code) in accordance with an instruction. A multiplexing section 86 multiplexes outputs of the switching section 85. The operation of the coding apparatus of the third embodiment will be described with reference to Figs. 16 and 17. Descriptions for the same operations as in the first and second embodiments will be omitted. In Fig. 17, quantized coefficients are rearranged into a zigzag-scan order by the scan converting section 23, and then subjected to zero/non-zero judgment in the zero judgment section 80. The length of consecutive zero quantized coefficients is determined by the zero-run counter 81 by its counting operation. A group number of a non-zero coefficient is determined by the group number determining section 82, and output together with additional bits. In the code word determining section 83, a variable code word corresponding to the input zero-run length and group number is read from the code table 84, and a bit sequence is generated which consists of the variable-length code and the additional bits. The length of the bit sequence is output as a code size. The bit sequence is supplied via the switching section 85 and the multiplexing section 86 to the variable-length code buffer 25 and stored therein. Referring to Fig. 16, code sizes are counted, i.e., accumulated by a code amount counter 40. The code amount counter 40 is reset for each pixel block. Successively monitoring the accumulation value of the code amount counter 40, a termination judgment section 51 supplies a forcible termination signal to the variable-length coding section 24a when the accumulation value exceeds a predetermined threshold. For example, the predetermined threshold is the size of codes generated by the block truncation coding section 30 minus the length of EOB. That is, when the accumulation value of code amounts exceeds the threshold by addition of a new bit sequence generated by the code word determining section 83, the forcible termination signal causes the switching section 85 to be so switched as to select EOB instead of the bit sequence, and the one-block coding operation is finished. While the switching section 85 stops outputting codes after outputting EOB, the code word determining section 83 continues to determine code words for the remaining quantized coefficients. The code amount counter 40 continues to accumulate code sizes that are output from the code word determining section 83, to finally determine the total amount of codes that are assigned to all of the quantized coefficients of one pixel block. Comparing the total amount of codes with a predetermined threshold, the code amount judgment section 50 outputs a comparison result as discrimination information. For example, the threshold TH is set larger than an amount C (constant) of codes that are generated by the block truncation coding. Letting V denote a total amount of codes that are to be assigned originally to the entire quantized coefficients of one block in the variable-length coding section 24a, the operation of the selector 60 is set as follows: V ≤ C: Select codes generated by the quadrature transform coding. C < V ≤ TH: Select codes generated by the quadrature transform coding with forcible termination to prevent the total code amount from exceeding C. TH < V: Select codes generated by the block truncation coding. Based on the above setting, in the same manner as in the first embodiment, the code amount judgment section 50 supplies the selector 60 with discrimination information that is 0 when coded data stored-in the variable-length code buffer 25 is to be selected, and is 1 when coded data stored in the fixed-length code buffer 33 is to be selected. The discrimination information is also supplied to the storage section 70 and stored therein. The threshold TH is determined by comparing image quality of a pixel block that should originally have a code amount V (C < V ≤ TH) of the quadrature transform coding but is subjected to forcible termination to prevent the total code amount from exceeding C and image quality of the pixel block reproduced after being subjected to the block truncation coding. With the above configuration and operation, the third embodiment can provide, in addition to the advantages of the first and second embodiments, an improved degree of freedom in switching between the quadrature transform coding and the block truncation coding in accordance with an original document. As described above, according to the invention, a pixel block is coded by the two coding methods at the same time, i.e., by the first coding method for generating variable-length coded data and the second coding method for producing fixed-length coded data. If the amount of coded data produced by the first coding method is larger than the amount of coded data produced by the second coding method, the latter coded data is employed. Therefore, for any input pixel block, it is assured that the compression ratio is larger than that of the second coding method. Conversely, if the amount of coded data produced by the first coding method is smaller than the amount of coded data produced by the second coding method, the former coded data is employed. Therefore, the coding scheme of the invention is more efficient than the case of applying the second coding method to the entire image. Further, according to the invention, if the amount of coded data produced by the first coding method is larger than the amount of coded data produced by the second coding method, and if the amount of the coded data produced by the first coding method is smaller than the predetermined threshold, the output of the coded data produced by the first coding method is forcibly stopped so that the amount of output coded data does not exceed the amount of the coded data produced by the second coding method. Therefore, the degree of freedom in switching between the first coding method and the second coding method in accordance with an original document or a required level of image quality can be improved.

Claims: An image signal coding apparatus comprising: block extracting means (100) for extracting a pixel block of m x n pixels from an image signal, where m and n are positive integers; first coding means (20) for coding the extracted pixel block into variable-length coded data, comprising a code word determining section (83) for generating a bit sequence consisting of the variable-length coded data and additional bits; second coding means (30) for coding the extracted pixel block into fixed-length coded data of a predetermined code amount (C); code amount counting means (40) for counting code word lengths of the variable-length coded data to determine an accumulated intermediate code amount and an accumulated code amount of the pixel block; code amount judging means (50) for comparing the accumulated code amount with a first threshold (TH), and for comparing the intermediate code amount with a second threshold, and outputting a comparison result as discrimination information; selecting means (60) for selecting the variable-length coded data (V) when the discrimination information indicates that the code amount of the pixel block is smaller than the first threshold (TH), and selecting the fixed-length coded data when the discrimination information indicates that the code amount of the pixel block is larger than the first theshold (TH), storing means (70) for storing the selected coded data and the discrimination information in a correlated manner; characterized in that the apparatus further comprises: termination judging means (51) for terminating a coding operation of the first coding means (20) when the intermediate code amount reaches the second threshold and the code amount of the pixel block is smaller than the first threshold (TH); and switching means (85) which is so switched by a forcible termination signal as to select end of block (EOB) instead of a new bit sequence, finishing the one-block coding operation, when by the addition of the new bit sequence the accumulated intermediate code amount exceeds the second threshold. The image signal coding apparatus according to claim 1 further comprising: termination judging means for comparing the intermediate code amount with a third threshold, and for judging based on a comparison result whether a coding operation of the first coding means (20) should be terminated. The image signal coding apparatus according to claim 1 or 2, further comprising dividing means provided upstream of the second coding means (30) for dividing the pixel block of m x n pixels into sub-blocks each including p x q pixels, where p and q are positive integers smaller than m and n, respectively. The image signal coding apparatus according to claim 1, wherein the first threshold (TH) is larger than or equal to the code amount of the fixed-length coded data of one pixel block. The image signal coding apparatus accoding to claim 1, wherein the second threshold is smaller than the code amount of the fixed length coded data of one pixel block. The image signal coding apparatus according to claim 2, wherein the third threshold is smaller than or equal to a code amount of the fixed-length coded data of one pixel block. The image signal coding apparatus according to claim 1 or 2, wherein the first coding means (20) performs quadrature transform coding. The image signal coding apparatus according to claim 1 or 2, wherein the second coding means (30) performs block truncation coding.

Inventors: SUZUKI KAZUHIRO, SUZUKI, KAZUHIRO
Applicants: FUJI XEROX CO LTD, FUJI XEROX CO., LTD.
Application year: 1995
Main classification: H04N1
IPC codes: H04N1, H04N7, G06T9