Orthogonal transform coding apparatus

Abstract: In an orthogonal transform coding apparatus for performing high efficiency coding using orthogonal transformation, a plurality of quantizers are provided, the coded data amount of said plurality of quantizers are respectively calculated, an optimum quantizer to make the data amount less than a specific value is selected to quantize the coded data amount, and the quantized values are encoded in the variable-length form and transmitted.

Description: This invention relates to an orthogonal transform coding apparatus for use in high-efficiency coding of picture signals. High-efficiency encoding has been important with development of digital technology of picture signals. As the high efficiency encoding technology, orthogonal transform coding has been known, in which time sequential signals to be inputted are transformed to orthogonal components such as, for example, frequency components. As the orthogonal transformation, a Fourier transformation, a discrete cosine transformation (hereinafter abbreviatedly called DCT) and a Hadamard transformation are well known. Especially, DCT has been noticed as the orthogonal transformtechnology suitable for processing picture information. An example of the high efficiency coding will be explained below by referring to Fig. 29 showing an example of a conventional high efficiency encoding apparatus using DCT. In Fig. 29, the reference numeral 1 indicates an input unit, 2 does a blocking unit, 3 a DCT unit, 4 an adaptive quantizer, 5 a variable length encoder, 6 a data buffer and 7 an output unit. A digital image signal inputted from the input unit 1 is sent to the blocking unit 2 to be separated into blocks on a DCT unit basis. In the high efficiency encoding of image pictures, two dimensional DCT for a block constructed of a total of 64 picture elements made of horizontal 8 pixels and vertical 8 pixels is often used. The image signals thus blocked are subjected to the two dimensional DCT by the DCT unit 3 to transform into DCT components. The DCT components thus obtained are quantized by the adaptive quantizer 4, then subjected to variable length coding by the variable length encoder 5 and adjusted to a predetermined rate by the data buffer 6 and sent to the output unit 7. The variable length encoding is a way of coding in which a codeword of higher generation probability is assigned by a shorter code and a codeword of lower generation probability is assigned by a longer code. Table 1 shows the correspondence between three bit data 0, 1, 2 -----, 7 and their variable length codes. In this example, numbers 0 and 1 are assigned by 2 bit code, 2 and 3 by three bit code, 4, 5, 6, and 7 are assigned by 4 bit code. Data Variable length code 0 0 0 1 0 1 2 1 0 0 3 1 0 1 4 1 1 0 0 5 1 1 0 1 6 1 1 1 0 7 1 1 1 1 Since the DCT components show usually exponential distribution, the general probability of 0 and 1 is considerably larger than that of 4, 5, 6 and 7, the average bit number of them after encoding is smaller than 3 bit. In this case, however, it is noted that when the variable length encoding is used, the data rate after encoding may change depending on the picture quality. As a result, in the conventional apparatus shown in Fig. 29, in order to prevent an over flow or under flow in the data buffer 6, the adaptive quantizer 4 controls to increase the quantization width when the amount of data in the data buffer 6 is increased and to decrease the quantization width when the data amount is decreased. The conventional high efficiency coding apparatus using DCT has problems which are as follows; (1) Since the variable length encoding is used, even if one error bit occurs, code synchronization is disturbed, although it depends on the transmission line, and decoding of data is prevented. Such transmission error causes the picture quality to be largely deteriorated. Therefore, it is difficult to employ the conventional DCT apparatus particularly in devices in which transmission errors can occur in a high probability such as VTR. (2) In order to maintain the data rate constant, conventionally there is used a feed-back system using a buffer. However, actual image data are unbalanced and it is difficult to obtain the optimum coding by the feed-back technique. Particularly, when the data amount of the front half of picture images is small and that of the rear half thereof is large, unnecessary data are assigned to the front half, the data amount in the rear half becomes short, resulting in a remarkable degradation in picture quality. In order to solve these problems pointed out with the conventional apparatus, we invented and proposed an apparatus in which the data amount after encoding is estimated before quantizing to determine an optimum quantization and the variable length encoding can be completely achieved in a small range (see US Patent Application Serial No. 535,027 "An Apparatus for Orthogonal Transform Coding"), published as US Patent US-A-5,073,821. An object of this invention is to provide a method of realizing this invention more efficiently. European Patent Application EP-A-0267579 discloses an image coding system for monitoring an amount of information by forming a histogram. In an image coding system having a plurality of coding characteristics, such as quantization characteristics, a coding control circuit selects either one of the coding characteristics by forming a histogram in response to a sequence of coefficients resulting from a sequence of digital image signals, to monitor an amount of information in every one of predetermined intervals. The amount of information is calculated by summing up the coefficients in relation to every one of the coding characteristics. An optimum one of the coding characteristics is indicated by the coding control circuit to code the coeffieient sequence into a sequence of coded signals in accordance with the optimum coding characteristic. The coefficient sequence in each frame may be divided into a sequence of blocks each of which is judged to be either valid or invalid in relation to each coding characteristic. The article "Rate Adaptive Communication" by Andrew G Tescher (NTC '78 Conf Rec 1978 National Telecoms Conf vol 2, 3 December 1978, (EEE, New York, US) discusses the theory of rate adaptive communication and buffering concepts. A utilization procedure for post-buffer control is presented, and examples with transform coding are discussed. According to the present invention there is provided an orthogonal transform coding apparatus comprising: large blocking means for assembling sample values of an input signal to form a large block of the sampled values; small blocking means for dividing said large block into a plurality of small blocks; orthogonal transform means for orthogonally transforming the sample values in each of the small blocks to obtain orthogonally transformed components; a plurality of kinds of quantizers each for quantizing the orthogonally transformed components to obtain quantized data; a data amount estimating means for estimating a data amount of coded data; a quantizer selecting means for selecting a quantizer among the plurality of kinds of quantizers according to the data amount estimated by the data amount estimating means such that a total data amount of coded data in the large block becomes within a predetermined range; variable length encoding means for encoding a quantized data by the quantizer selected by said quantizer selecting means to obtain actual coded data; and transmission means for transmitting the actual coded data, characterized in that: said large blocking means assembles sample values in a frame of an input signal to form a large block of the sampled values which is smaller than the frame; said data amount estimating means estimates a data amount of coded data which would be obtained by variable length encoding the quantized data quantized by at least a part of the plurality of kinds of quantizers in each of the plurality of small blocks to obtain a plurality of data amount values corresponding to said at least a part of the plurality of quantizers with respect to the plurality of small blocks; and said quantizer selecting means selects, from among the plurality of kinds of quantizers, a quantizer which gives an optimum data amount of the coded data with respect to each of the plurality of small blocks according to the data amount values estimated by the data amount estimating means such that a total data amount of coded data in respect of the large block becomes an optimum data amount which is either a maximum data amount not larger than an actually transmittable data amount or a minimum data amount not smaller than the actually transmittable data amount, and outputs a selection signal indicative of the selected quantizer. Further, the quantizer selecting means may perform the steps of estimating the data amount obtained by the quantizer producing approximately the n/2th largest amount of coded data in a case where there are n candidates of quantizer, selecting only a quantizer producing a data amount smaller than a data amount produced by the quantizer which has been subjected to the data estimation in a case where the estimated quantized data amount is larger than a transmittable data amount, and on the contrary, in a case where the estimated quantized data amount is smaller than the transmittable data amount, selecting only a quantizer producing a data amount larger than the data amount produced by the quantizer which has been subjected to the data estimation, whereby the number of the candidates of quantizer is approximately halved, and repeats the abovementioned process so as to select an optimum quantizer. Still further, the quantizer selecting means may perform the steps of dividing the. small blocks included in a large block into a front half including quantizers from the top one to the jth one and a rear half including the remainder, selecting one quantizer from each of the front half and rear half as to produce nearest quantized values to each other, and transmitting the coded value and the information of the quantizers thus selected in the front half and rear half and of the number j. In a case where there are n candidates of quantizer and m small blocks in a large block, supposing that the data amount in the jth small block of the ith quantizer is expressed as D(i,j), if D(i,j) ≧ D(i-1,j) when 1≦i<n, the data amount storing means stores first D(o,j) for the m small blocks into a memory, next, if S(i,j) = D(i,j) - D(i-1,j) when 1≦i<n, the data amount storing means stores S(i,j) into the memory successively in regard to i, the quantizer selecting means reads and adds D(o,j) in the m small blocks successively from O to m-1 in regard to j, then, to the result thus obtained are successively added S(i,j) in the order of S(0,0) S(0,1) ... S(0,m-1), S(1,0) ..., S(n-1,m-1), i and j with respect to the equation S(i,j) when the result thus obtained exceeds the transmittable data amount are detected, an ith quantizer is selected for the small blocks from the Oth up to (j-1)th or jth small block, and an (i-1)th quantizer is selected for the small blocks coming thereafter. In a case where there are n kinds of quantizer and m small blocks included in a large block, supposing that the data amount in the jth small block of the ith quantizer is expressed as D(i,j), if D(i,j) ≧ D(i-1,j) when 1≦i<n, the data amount storing means stores S(i,j) = D(i,j) - D(i-1,j) for the m small blocks into a memory successively in regard to i, simultaneously stores a sum AD(i) which is the total data amount of the m small blocks corresponding to each quantizer in regard to i, the quantizer selecting means first compares the sum AD(i) with the transmittable data amount in regard to i of being 1≦i<n, the maximum AD(k) not exceeding the transmittable data amount and k are fetched, next, to said maximum AD(k) are successively added S(k+1,j) in the order of j = 0, 1 ... , m-1, j with respect to the equation S(k+1,j) when the result thus added exceeds the transmittable data amount is detected, a (k+1)th quantizer is selected for the small blocks from Oth to (j-1)th or jth small block, and a kth quantizer is selected for the small blocks coming thereafter. The transmission means may re-arrange the quantized values of a small block in a transmission region made by the smallest square (hereinafter defined as transmission region) in the order from the low frequency value to the high frequency value in both horizontal and vertical directions so as to include all of non-zero values with the quantized value representing the lowest frequency component as one apex (origin), and transmits only the coded word of the quantized values included in the transmission region and information on the transmission region. Also, the transmission means may re-arrange the quantized values of a small block in the order from the lowest frequency value to the highest frequency value in both horizontal and vertical directions, and transmit the coded word of the quantized values representing from the lowest frequency component up to the highest frequency component in both horizontal and vertical directions in the order from the coded word of the quantized values representing the low frequency value, and does not transmit the coded word of the quantized values coming after the quantized value representing the highest non-zero frequency value using the end signal or information capable of determining the position of the last quantized value. In this case, the variable length encoding means encodes the quantized value with the code length 2K+1 or 2K for the quantized value the figure number of the absolute value of which is K, and the data amount estimating means calculates the data amount of the coded quantized values in the small blocks of one quantizer according to the following equation 2 x ΣKi + M where, Ki is the figure number of the absolute value of the ith quantizer, and M is the number of the quantized values to be transmitted. Further, the variable length encoding means may encode the quantized value with the code length 1 for the quantized value O and the data amount estimating means calculates the data amount of the coded quantized values in the small blocks of one quantizer according to the following equation Σ(Ni-1) + M where, Ni is a code length of the ith quantized value, and M is the number of the quantized values to be transmitted. The quantizing means may sort the orthogonally transformed components into r groups including from a group representing the high frequency level up to a group representing the low frequency level, and prepares s kinds of quantization widths, thus all of the quantizers performing quantization in combination with the r groups of the orthogonally transformed components with the s kinds of quantization widths. Fig. 1 is a block diagram showing a digital VTR using this invention. Fig. 2 is a block diagram showing an example of an orthogonal transform coding apparatus in accordance with this invention; Fig. 3 to 5 are respectively block diagrams showing examples of the large block unit used in the apparatus of this invention. Figs. 6 to 9 are respectively block diagrams showing examples of the orthogonal transform unit used in the apparatus of this invention. Figs. 10 to 12 are respectively block diagrams showing examples of the transmission unit used in the apparatus of this invention. Figs. 13, 16, 17 and 18 are respectively block diagram showing examples of the variable length encoding unit used in the apparatus of this invention. Fig. 14 and 15 are respectively block diagrams showing examples of the data amount estimating unit used in the apparatus of this invention. Figs. 19 to 22 are block diagrams and an explanatory drawing showing examples of the quantizing unit used in the apparatus of this invention. Fig. 23 to 28 are block diagrams and flow charts showing examples of the quantizer selecting unit used in the apparatus of this invention. Fig. 29 is a block diagram of a conventional orthogonal transform coding apparatus of the prior art. First, outlines of a device in which this invention is applied will be shown by referring to the block diagram shown in Fig. 1, in which a digital VTR is used as an example. In Fig. 1, the reference numeral 8 indicates an input unit, 9 does an A/D converter, 10 an orthogonal transform coding apparatus according to this invention, 11 a magnetic head and 12 a magnetic tape. Television signals inputted from the input unit 8 are subjected to A/D conversion into sample values of digital picture signals by the A/D converter 9. The digital picture signal sample values thus converted are subjected to data compression by the orthogonal transform coding apparatus 10 thereby to be recorded through the magnetic head 11 in the magnetic tape 12. To employ the orthogonal transform apparatus of this invention in a picture recording device or picture transmission device such as digital VTR enables to decrease the data rate and provide a longer time recording. Next, the details of this invention will be explained while showing embodiments. Fig. 2 is a block diagram of an orthogonal transform coding apparatus according to this invention. In Fig. 2, the reference numeral 13 indicates an input unit, 14 does a large blocking unit, 15 a small blocking unit, 16 an orthogonal transform unit, 17 a data buffer, 18 a data amount estimating unit, 19 a quantizer selecting unit, 20 a quantizer, 21 a variable length encoder, 22 a transmission unit and 23 an output unit. Picture signals inputted from the input unit 13 are divided through the large blocking unit 14 into a plurality of large blocks each of which comprises a plurality of sample values. Each of large blocks is further divided through the small blocking unit 15 into a plurality of small blocks each being formed in a rectangular shape on the picture plane thereof. The small-blocked sample values are orthogonally transformed by the orthogonal transform unit 16. The orthogonal components thus orthogonally transformed are sent to the buffer 17 and data amount estimating unit 18 on a large block unit basis. In the data amount estimating unit 18, the data amount of coded orthogonal components in every small block is calculated for a plurality of quantizers prepared in advance, then one of the quantizers is selected for every small block by the quantizer selecting unit 19 based on the result of the calculation. At the same time, the orthogonal components inputted into the buffer 17 are delayed until the quantizer is selected. The orthogonal components sent from the buffer 17 are quantized in the selected one of the quantizers 20 by the quantizer selection unit 19 and the orthogonal components thus quantized are subjected to variable length coding by the variable length encoder 21. The quantized value coded in the variable length form is sent through the transmission unit 22 to the output unit 23. As explained above, in this invention, by estimating the data amount before quantization, it becomes possible to select the optimum quantizer. Also, since it is possible to accurately control the data amount differently from the feed-back control used in the prior art, it becomes possible to encode the data in the variable length form of a constant length of a small range, thus the variable length encoding is able to be employed in the digital VTR in which transmission errors occur frequently. The detailed explanations will be made below on respective components shown in Fig. 2. The large blocking unit 14 is explained first by referring to Fig. 3 showing a block diagram thereof. Fig. 3 is a block diagram showing a first example of the large blocking unit shown in Fig. 2. In Fig. 3, 24 is an input terminal, 25 a memory, 26 an address controller, and 27 an output terminal. The sample value inputted from the input terminal 24 is sent to the memory 25 and outputted to the output terminal 27 according to the control of the address controller 26. As shown above, in the large blocking unit 14, the input signals are stored in the memory 25 and outputted for every large block. Fig. 4 is a diagram for explaining the operation of the large blocking unit shown in Fig. 2. In Fig. 4, shaded ones show small blocks. An assembly of the shaded small blocks forms a large block. In this embodiment, the large block is formed by assembling small blocks situated at various positions on the picture plane in a shuffling manner. As a result, the amount of information contained in the respective large blocks is substantially equal to each other since the amount of information on the picture plane is scattered. Accordingly, even if the amount of information is irregularly positioned on the picture plane, it is possible to compress the data highly efficiently. Moreover, since the data rate of compressed codewords can be averaged, it is easy to control the data amount as to be constant on a large block unit basis. Such blocking can be made by controlling the output address in the address controller 26 shown in Fig. 3. Fig. 5 is a block diagram showing a second example of the large blocking unit shown in Fig. 2. In Fig. 5, 28 is a luminance signal input terminal, 29 a first color difference signal input terminal, 30 a second color difference signal input terminal, 31 a frame memory, 32 an address controller and 33 an output terminal. Sample values inputted from the luminance signal input terminal 28, first color difference signal input terminal 29 and second color difference signal input terminal 30 are inputted to the frame memory 31 and outputted to the output terminal 32 according to the control by the address controller 32. In the second example shown in Fig. 5, each of the large blocks is formed by the luminance signals, the first color difference signals and second color difference signals containing them substantially at the same rate. In general, the amount of information of the luminance signals and the color difference signals is unbalanced. Since each large block contains the same rate of the luminance signals and the first and second color difference signals, it becomes possible to average the amount of information similar to the first example of the large blocking unit 14. In case where the input signals are R, G and B signals, the amount of information can be averaged by forming all of the large blocks so as to contain the R, G and B signals substantially at the same rate. Next, the small blocking unit 15 will be explained below, which divides the sample values of each of the large blocks into blocks for orthogonal transformation. The circuit for the small blocking comprises a memory and an address controller substantially the same as the circuit for the large blocking as shown in Fig. 3. However, it is noted that the small blocking unit basically forms a two-dimensional block or a three-dimensional block including the time axis in accordance with the orthogonal transformation, thus being possible to use a decreased capacity of memory compared to that in the large blocking unit. In practical use, the large blocking unit and the small blocking unit may be constructed by one memory and one address controller to decrease the circuit scale, and the processing order of the small blocking and the large blocking can be exchanged. Similar to the large blocking unit, the small blocking unit may be formed by various shapes. Next, the orthogonal transform coding unit 16 will be explained blow. For the sake of brevity, an example of orthogonal transformation is made by the discrete cosine transformation (DCT) using a small block consisting of 64 pixels of horizontal 8 pixels x vertical 8 pixels on the picture plane is typically explained. Fig. 6 is a block diagram showing an example of the orthogonal transform coding unit 16 shown in Fig. 2. In Fig. 6, 34 is an input terminal of the sample value of the small block, 35 a horizontal DCT unit, 36 a data arranging unit, 37 a vertical DCT unit and 38 an output terminal. The sample value small-blocked in the small blocking unit 15 in Fig. 2 is inputted through the input terminal 34 shown in Fig. 6 into the orthogonal transform coding unit 16 and discretely transformed in the horizontal direction by the horizontal DCT unit 35. The orthogonal components thus transformed in the DCT unit 35 are arranged in the vertical direction in the data arranging unit 36. The orthogonal components thus arranged are discretely transformed in the vertical direction in the DCT unit 37 and outputted to the output terminal 38. Both of the horizontal and vertical orthogonal components for every small block which have been subjected to the DCT transformation in the horizontal direction and vertical direction are inputted to the buffer 17 and the data amount estimating unit 18 shown in Fig. 3 in the order of the orthogonal components representing the low frequency range. Although the above examples are described in connection with the two-dimensional DCT, in this invention, various kinds of DCT can be employed, three-dimensional orthogonal transformation containing time axis direction can be used. The simplest example of the three-dimensional orthogonal transformation is shown in Fig. 8. In Fig. 8, 39 is an input terminal, 40 a field buffer, 41 a first field DCT unit, 42 a second field DCT unit, 43 an adder, 44 a subtracter, and 45 an output terminal. The signals inputted from the input terminal 19 are subjected to two-dimensional DCT transformation in the first DCT unit 41 and are also inputted simultaneously to the field buffer 40. The signal delayed by one field by the field buffer 40 are subjected to two-dimensional DCT in the second field DCT 42. The output signals from the first field DCT unit 41 and second field DCT unit 42 are added in the adder 43 and subtracted in the subtracter 44 and the results of both calculations are outputted to the output terminal 45. In the example shown in Fig. 8, the DCT transformed orthogonal components between two different fields situated at the same spatial position on the picture plane are added on one hand and subtracted on the other hand. In this case, the added components are quantized in the quantizer having a small quantization width and the subtracted components are quantized in the quantizer having a large quantization width, so that it becomes possible to compress the data amount while suppressing visual distortion of picture. To calculate the sum and difference of the data is a lowest dimensional (two-dimensional) orthogonal transformation, but it becomes possible to employ higher orthogonal transformation by using information of more fields. A method which does not need the field buffer 40 can be provided in which the input of the three-dimensional DCT shown in Fig. 8 is made after being subjected to non-interlace transformation in the large blocking. At the same time, the three-dimensional DCT of (8 x 4 x 2) as shown in Fig. 8 and the two-dimensional DCT of (8 x 8) being subjected to non-interlace transformation as shown in Fig. 7 can be switched depending on the movement between the fields. The transmission unit 22 shown in Fig. 2 will be explained below. A first example of the transmission unit 22 is explained by referring to Fig. 9 showing the quantized values of the orthogonal components which are subjected to two-dimensional orthogonal transformation. The transmission unit 22 is adapted to transmit only the portion surrounded by the smallest rectangular portion (the portion surrounded by the solid lines in Fig. 9) containing all of only non-zero quantized values with the lowest frequency component (the quantized values at the position of horizontal 0 and vertical 0 and hereinafter called origin) in the horizontal direction and vertical direction as an apex. It is noted, in this case, that the data on the origin are always transmitted. Accordingly, the transmission range of this block (the rectangular range in Fig. 9) is decided by the position of the quantized value representing the non-zero highest frequency components in each of the horizontal and vertical directions. The number of quantized values to be transmitted is decided by the area of the transmission range, so that it can be easily calculated by the product of the position of the highest frequency in the horizontal direction and the highest frequency in the vertical direction. In this example, the information of the transmission range can be represented by the horizontal coordinate 3 bits and the vertical coordinate 3 bits, being 6 bits in total. As a result, the data amount after the coding of each small block is the sum of the variable-length coded word contained in the transmission range and the information of the transmission range. Next, the structure of the first example of the transmission unit 22 will be explained below by referring to Fig. 10. In Fig. 10, 46 is an input terminal, 47 a horizontal direction high range detecting unit, 48 a vertical direction high range detecting unit, 49 a buffer, 50 a transmission range detecting unit, 51 a gate, and 52 an output terminal. The quantized values inputted from the input terminal 46 are applied to the horizontal direction high range detecting unit 47 and vertical direction high range detecting unit 48. In the horizontal direction high range detecting unit 47, a position is detected where the highest frequency component of non-zero quantized value in the horizontal direction exists. In the vertical direction high range detecting unit 48, a position is detected where the highest frequency component of non-zero quantized value in the vertical direction exists. The position thus detected is made as the origin of the rectangular shape shown in Fig. 10. Using the outputs of the horizontal direction high range detecting unit 47 and vertical direction high range detecting circuit 48, the transmission range detecting unit 50 sends only the quantized values in the transmission range to the output terminal 52 through the gate 51 among the quantized values to be delayed by the buffer 49. At the same time, the transmission range detecting unit 50 outputs the information representing the transmission range. Fig. 11 shows the transmission order of a second example of the transmission unit of this invention. In the second example, the orthogonally transformed components are encoded in the order of the numbers shown in Fig. 11 from the lowest frequency component in both the horizontal direction and vertical direction in the small block and transmitted. The coded words after the quantized value representing the non-zero highest frequency are replaced by the codeword representing the end signal of transmission. By this process, since it is possible to concentrate the high range values which have high generation probability of 0 to the rear half, it makes possible to elongate the length of the consecutive 0. Instead of the end signal of transmission shown above, there may be used information representing the final coded word. Also, the transmission orders other than this are available in the practical use. Fig. 12 shows the transmission unit of the second example. In Fig. 12, 53 is an input terminal, 54 a rearranging unit, 55 a buffer, 56 a final portion detecting unit, 57 an end signal insertion unit and 58 an output terminal. The quantized values inputted from the input terminal 53 are re-arranged in the order shown in Fig. 11 in the re-arranging unit 54 and sent to the buffer 55. The final portion detecting unit 56 detects the portion of the non-zero final quantized value among the quantized values thus re-arranged. The quantized values outputted from the buffer 55 have the final consecutive quantized values of 0 replaced by the end signal in the end signal insertion unit 56 according to the information from the final portion detecting unit 56 and sent to the output terminal 58. Next, explanations will be made below on the variable length encoding unit shown in Fig. 2 by referring to Fig. 13 which is a block diagram of a first example thereof. In Fig. 13, 59 is an input terminal, 60 a ROM (Read Only Memory), and 61 an output terminal. The quantized values outputted from the input terminal 59 are encoded in a variable length manner by the ROM 60 and outputted to the output terminal 61. An example of the variable length encoding is explained below using the circuit shown in Fig. 13. In a first example of the variable length encoding unit, such a code that the code length is 1 bit for the quantized value 0 is used. Namely, the code length Ni for the quantized value Ri is expressed as; when Ri = 0, Ni = 1. A first example of the data amount estimating unit for calculating the data amount when the variable length encoding unit as shown above is used is shown in Fig. 14. In Fig. 14, 62 is an input terminal, 63 a (code length - 1) counting unit, 64 a transmission range counting unit, 65 an adder, 66 a data amount summing unit, 67 an adder, and 68 an output terminal. The orthogonally transformed components inputted from the input terminal 62 are applied to the (code length - 1) counting unit 63 for calculating the value of (code length - 1). The output from the (code length - 1) counting unit 63 is added to the total data amount of the (code length - 1) of the previous (code length - 1) data amount outputted from the data amount summing unit 66 and the data amount of the total value is applied again to the data amount summing unit 66. Simultaneously, in the transmission range counting unit 64, the number of codewords to be actually transmitted is counted and the value thus counted is added to the sum of the (code length - 1) outputted from the data amount summing unit 66 in the adder 67 and then, outputted to the output terminal 68. The first variable length encoding unit makes code length as 1 for the quantized value of 0. As a result, the value of the (code length - 1) becomes 0. Accordingly, the sum of the (code length - 1) for the all input signals and the number of codewords to be transmitted is equal to the sum of the code length of the signal to be transmitted. Therefore, the calculation of the data amount and the calculation of the transmission range can be made simultaneously, there does not need to detect the transmission range in advance. As a result, it becomes possible to halve the time of the data amount estimation. Next, a second example of the variable length encoding unit shown in Fig. 2 will be explained using Table 2. The quantized values to be inputted are expressed in binary form as; (S, X 7 , X 6 , X 5 , X 4 , X 3 , X 2 , X 1 , X 0 ). Wherein S is a bit for the sign of plus and minus and X 0 to X 7 represent binary value of the absolute value of the quantized values. X 7 is the most significant position and X 0 is the least significant position. The quantized values represented by 9 bits are encoded in a variable length manner according to the rule shown in Table 2. In this example, it can be encoded into the variable length code without any complicated calculation. As a result, it becomes possible to encode without using ROM shown in Fig. 13. Variable length encoding Quantized value to be inputted Variable length code word X 0 =···=X 7 =0 0 X 0 =1, X 1 =···=X 7 =0 10S X 1 =1, X 2 =···=X 7 =0 110X 0 S X 2 =1, X 3 =···=X 7 =0 1110X 0 X 1 S X 3 =1, X 4 =···=X 7 =0 11110X 0 X 1 X 2 S X 4 =1, X 5 =···=X 7 =0 111110X 0 X 1 X 2 X 3 S X 5 =1, X 6 =···=X 7 =0 1111110X 0 X 1 X 2 X 3 X 4 S X 6 =1, X 7 =0 11111110X 0 X 1 X 2 X 3 X 4 X 5 S X 7 =1 11111111SX 0 X 1 X 2 X 3 X 4 X 5 X 6 In the second example, the code length Ni for the number of figures Ki of the absolute value of the quantized value is expressed as; Ni = 2 x Ki + 1. Thus, the code length for the quantized values can be easily calculated. Fig. 15 is a second example of the data amount estimating unit for the second variable length encoding unit. In Fig. 15, 69 is an input terminal, 70 a figure number counting unit, 71 a transmission range counting unit, 72 an adder, 73 a figure number summing unit, 74 a doubler, 75 an adder and 76 an output terminal. The figure number counting unit 70 calculates the figure number of the absolute value of the quantized values of the orthogonally transformed components inputted from the input terminal 69. The output of the figure number counting unit 71 is added in the adder 72 to the total value of the respective figure numbers which has been summed for the previous signals before outputted from the figure number summing unit 73 and the summed value thus obtained is inputted again to the figure number summing unit 73. Simultaneously, in the transmission range counting unit 71, the number of codewords to be actually transmitted is calculated and the calculated number is added to the value obtained by doubling through the doubler 74 the total number of figures outputted from the figure number counting unit 73 in the adder 75 and outputted to the output terminal 76. In the second variable length encoding unit, since the code length is expressed as (twice the figure number of the quantized value + 1), the data amount can be easily estimated. Next, a third example of the variable length encoding unit shown in Fig. 2 will be explained below. Almost all orthogonally transformed components are 0. As a result, the probability of consecutive generation of 0s of the quantized values is high. Thus, by encoding the length of the consecutive 0s of the quantized values in the run length code, the data amount can be compressed (in this case, the run length shows the length of consecutive 0s). Furthermore, by encoding the length of consecutive 0s of the quantized values and the first non-zero quantized value following thereto collectively as one codeword, more effective compression becomes possible. This coding method is called 2 dimension encoding. The third variable length encoding unit is explained by referring to Fig. 16. In Fig. 16, 77 is an input terminal, 78 a 0 detecting unit, 79 a 0 run length detecting unit, 80 a 2 dimension encoding unit, and 81 an output terminal. The quantized values inputted from the input terminal 77 are subjected to the detection whether or not each of the quantized value is 0 in the 0 detecting unit 78. If the quantized value is 0, the previous run length value summed in the 0 run length detecting unit 79 is added by 1. When non-zero quantized value is detected in the 0 detecting unit 78, the 2 dimension encoding unit 80 performs the 2 dimension encoding by using the non-zero quantized value thus detected and the 0 run length value obtained from the 0 run length detecting unit 79 and outputs the 2 dimension code thus obtained to the output terminal 81, while the run length value summed in the 0 run length detecting unit 79 is reset to 0. So processed as above that even when the generation probability of 0 is high, the data amount can be more efficiently compressed. Next, a fourth example of the variable length encoding unit as shown in Fig. 2 will be explained below. In general, in picture information, energy is large in the low frequency component and decreases as the frequency component becomes high. As a result, even in case of the orthogonal components which have been orthogonally transformed, the low frequency component (the component on the upper right in Fig. 7) has a comparatively large value. Accordingly, the data amount reduction effect of the variable length encoding on the orthogonal component representing the low frequency becomes small. In the fourth variable length coding unit, the fixed length encoding is applied to the orthogonal component thus representing the low frequency and on the other hand, the variable length encoding is applied to the orthogonal component representing the medium/high frequency. This example is explained by referring to Fig. 17. In Fig. 17, 82 is an input terminal, 81 a switch, 84 a fixed length encoding unit, 85 a variable length encoding unit, 86 a low frequency range detecting unit, and 87 an output terminal. The quantized value of the orthogonal components inputted from the input terminal 82 is judged in the low frequency range detecting unit 86 whether it is of the low frequency or the medium/high frequency. The low frequency range detecting unit 86 can be made of a counter for the practical purpose. When the low frequency range detecting unit 86 detects it as to be low, the quantized value of the orthogonal components is inputted through the switch 83 to the fixed length encoding unit 84 for encoding in the fixed length form and outputted to the output terminal 87. On the other hand, when it detects it as to be medium or high, the quantized value of the orthogonal components is inputted through the switch 83 to the variable length encoding unit 85 for encoding in the variable length form and outputted to the output terminal 87. With the structure as shown above, it becomes possible to encode only the low frequency portion in the fixed length form. Next, a fifth example of the variable length encoding unit shown in Fig. 2 will be explained below. As explained in the fourth variable length coding unit, in this example, the orthogonally transformed component has different distributions in the low and high frequency ranges. As a result, for the low frequency range, the code length for small quantized values is set to be comparatively large and that for large quantized values is set to be comparatively small, and on the other hand, for the high frequency range, the code length for small quantized values is set to be comparatively small and that for large quantized values is set to be comparatively large, so that the data amount can be more efficiently reduced. The fifth variable length encoding unit will be explained by referring to Fig. 18. In Fig. 18, 88 is an input terminal, 89 a switch, 90 a first variable length encoding unit, 91 a second variable length encoding unit, 92 a low frequency range detecting unit, and 93 an output terminal. The quantized value of the orthogonal components inputted from the input terminal 88 is judged in the low frequency range detecting unit 92 whether it is of the low frequency range or the high frequency range. The low frequency range detecting unit 92 can be made of a counter for the practical purpose. When detected as to be of the low frequency range, the quantized value of the orthogonal components is sent through the switch 89 to the first variable length encoding unit 90 for encoding in the variable length form and outputted to the output terminal 93. On the other hand, when detected as to be of the high frequency range, the quantized value of the orthogonal components is sent through the switch to the second variable length encoding unit 91 for encoding in the variable length form and outputted to the output terminal 93. With the structure as above, the variable length encoding can be applied as to be adapted to the low frequency range and high frequency range. Also, in this example, the quantized value is divided into two, the low and high frequency ranges, but to can be divided into more ranges, and the variable length encoding can be applied as to be adapted to each range thus divided. Next, the quantizing unit of this invention will be explained below. Fig. 19 is a first example of the quantizing unit shown in Fig. 2. In Fig. 19, 94 is an input terminal, 95 a switch, 96 a 2 multiplier, 97 a bit shifter 98 a controller, 99 a rounding unit and 100 an output terminal. The signal inputted from the input terminal 94 is selected by the switch 95 according to the control of the controller 98 whether it is subjected to 2 multiplication in the 2 multiplier 96 and sent to the bit shifter 97 or directly sent to the bit shifter 97. In the bit shifter 97, the signal thus sent is shifted by a specific number of bits according to the control of the controller 98, then rounded in the rounding unit 99 and sent to the output terminal 100. With the arrangement in this example shown in Fig. 19, the multiplication (or the division) of various constants can be realized through the controller 98 by combining the 2 multiplier 96 and the bit shifter 97. As a result, a quantizing unit having a plurality of the quantization widths (multiplier factor) can be easily realized. In addition, in Fig. 19, an arrangement without using the switch 95 and 2 multiplier 96 is possible realizable. In such case, as the quantizing unit is made of a bit shifter only, it can be realized further easily. A second example of the quantizing unit shown in Fig. 2 will be explained below. Fig. 20 shows that the orthogonal components of (8 x 8) DCT blocks explained in Fig. 7 are divided into four ranges excepting DC components (shaded area in Fig. 20). The numerals shown in Fig. 20 indicate the numbers of respective ranges. Generally, human vision is sensitive to the distortion of low frequency components and insensitive to that of high frequency components. As a result, by quantizing the high frequency component in larger quantization width, the compression of the data amount can be improved while making visual deterioration small. In the second quantizing unit, the quantization width is controlled by range shown in Fig. 20. Table 3 shows the relation of the range and quantization. With the quantization shown in Table 3, 16 kinds of quantizing means are available (columnar direction of Table 3), and each quantizing means has four frequency ranges as shown in Fig. 20 (row direction of Table 3). The fractions shown in Table 3 each indicates the multiplier factor of multiplication (the inverse number of quantization range) to be executed the quantization for a quantizing means (column) and range (row). For example, in the fifth quantizing means, the multiplication of 1/4 is executed for the orthogonal component in the second range (quantized with the quantization width of 4). As seen from table 3, the multiplier factor to be actually employed in this example has five kinds ranging from 1/16 to 1. As a result, the combination of five kinds of the quantization width and four kinds of range makes 16 kinds of the quantizing means realizable. By introducing such quantizing means into this example, a large number of quantizing means can be realized despite of using simple quantization by use of a bit shifter, so that the data amount can be more precisely controlled. In addition, by making the quantization width larger for the high frequency range, the visual picture deterioration can be reduced. Referring to the data amount estimation for the quantizing means shown in Table 3, the data amounts for the five kinds of quantization width are calculated independently for every four kinds of range, and then the results thus calculated can be combined to calculate the data amounts for the 16 kinds of quantizing means. Therefore, the circuit scale of the data amount estimating unit can be made small. Quantization Range 1 2 3 4 0 1 / 8 1 / 16 1 / 16 1 / 16 1 1 / 8 1 / 8 1 / 16 1 / 16 2 1 / 8 1 / 8 1 / 8 1 / 16 3 1 / 8 1 / 8 1 / 8 1 / 8 4 1 / 4 1 / 8 1 / 8 1 / 8 5 1 / 4 1 / 4 1 / 8 1 / 8 6 1 / 4 1 / 4 1 / 4 1 / 8 7 1 / 4 1 / 4 1 / 4 1 / 4 8 1 / 2 1 / 4 1 / 4 1 / 4 9 1 / 2 1 / 2 1 / 4 1 / 4 10 1 / 2 1 / 2 1 / 2 1 / 4 11 1 / 2 1 / 2 1 / 2 1 / 2 12 1 1 / 2 1 / 2 1 / 2 13 1 1 1 / 2 1 / 2 14 1 1 1 1 / 2 15 1 1 1 1 Fig. 21 shows a third example of the quantizing unit shown in Fig. 2. In Fig. 21, 101 is an input terminal, 102 a quantizer, 103 a non-zero detecting unit, 104 a reversed quantizer, 105 a subtracter, 106 an adder, 107 a quantization error summing unit, and 108 an output terminal. The signals inputted from the input terminal 101 are quantized in the quantizer 102 and sent to the output terminal 108. On the other hand, the outputs from the quantizer 102 are sent to the non-zero detecting unit 103 to detect whether or not the output is 0. If it is not 0, the non-zero output is sent to the reversed quantizer 104 to be subjected to reversed quantization. The output thus reversely quantized outputted from the reversed quantizer 104 is sent to the subtracter 105 to calculate the quantization error between the thus reversed value and the value of the input signal. The quantization error thus calculated is added in the adder 106 to the total value of the previous quantization errors of the quantized values outputted from the quantization error summing unit 107 and sent again to the quantization error summing unit 107. In such a manner as shown above, the total quantization errors of one small block are summed and outputted to the output terminal 108. In this example of the quantization, an average value of the quantization errors of non-zero quantized values for every small block is calculated and outputted with the quantized value. The quantization errors in the orthogonal transformation are often uneven on a small block basis. Therefore, the quantization errors are calculated for every small block and the correction is made using the data of the quantization errors thus calculated at the time of the decoding thereby enable to improve the quantization distortion. The signals representing the quantization error for one small block to be transmitted at this time can be represented by a few bits, thus increment of the data amount being very small. In a fourth example of the quantizing unit shown in Fig. 2, signals situated on the same positions in the frame direction or the field direction are quantized by separate quantizers of different quantizing properties for every frame or every field. The fourth quantizing unit will be explained below using Fig. 22. In Fig. 22, 109 an input terminal, 110 an adder, 111 an offset generating unit, 112 a frame number input unit, 113 a quantizer, 114 a quantization controller and 115 an output terminal. The orthogonal components inputted from the input terminal 109 are added to the offset value outputted from the offset generating unit 111 in the adder 110 and quantized in the quantizer 113 in accordance with the information obtained from the quantization controller 114 and sent to the output terminal 115. On the other hand, in the offset generating unit 111, the offset value is generated in accordance with the present frame number inputted from the frame number input unit 112 and the information inputted from the quantization controller 114. For example, when the quantization is made in a large quantization width in accordance with the information from the quantization controller 114, the offset value is made large, and different offset values are outputted in cases that the frame number is odd and even. By using the fourth quantizing unit, it becomes possible to provide the quantization error with a variation for every frame. As a result, in the still picture, it becomes possible to cancel the quantization error on a frame to frame basis. In addition, due to the fact that the quantization error differs on a frame to frame basis, the distortion can be scattered time to time, so that the block distortion can be decreased. In this example, the rounding operation is controlled by means of the offset value to provide the quantization property with a variation, however, it can be realized by varying the quantization property itself of the quantizer in a frame to frame manner. Next, the quantizer selecting unit shown in Fig. 2 will be explained. A first example of the quantizer selecting unit-operates in such a manner as described below. Namely, when there are n candidates of quantizer, the data amount after encoding is estimated for the quantizer producing about n/2th-largest amount of coded data. When the estimated quantized data amount is larger than a transmittable value, the candidate quantizers are limited to quantizers that produce a data amount smaller than the data amount produced by the selected quantizer for performing the data amount estimation. On the other hand, when the estimated data amount is smaller than the transmittable value, the candidate ones are limited to quantizers that produce a data amount larger than the data amount by the selected quantizer for performing the data amount estimation. In this way, the number of the candidate quantizers is approximately halved by one data amount estimation and the above-mentioned operation is repeated, thus the optimum quantizers can be selected. By this method, it is possible to select the optimum quantizers by performing about log 2 n times of data amount estimation when there are n candidate quantizers. An example of the process described above is shown in the flow chart form in Fig. 23. In which, 116 indicates a start step, 117 does a second quantization estimation, 118 a third quantization estimation, 119 and 120 each an overflow detection, 121 a first quantization output, 122 a second quantization output and 123 a third quantization output. In this example, there are provided with three quantizing units, larger quantized values are generated in the order of the third quantization, second quantization and first quantization for the same input value. First, the second quantization estimation is made in the step 117 using the second quantization for the input signal. Then, the process goes to the step 119 for detecting whether or not the data amount for the second quantization obtained in the second quantization step 117 exceeds the transmittable limit. In this case, if exceeding, the first quantization is selected to be ended. On the other hand, if not exceeding, the process goes to the step 118 for estimating the data amount using the third quantization. Then, the process goes to the step 120 for detecting whether or not the data amount quantized in the third quantization exceeds the transmittable limit. In this case, if detected to be exceeded, the second quantization is selected to be ended. On the other hand, if detected not to be exceeded, the process goes to the step 123 for performing the third quantization and goes to the end. As explained above, in the first example of the quantizer selecting unit, it becomes possible to decrease greatly the calculation amount for the data amount estimation. Also, in this example, such a quantizer that produces the maximum data amount not exceeding the transmittable limit is selected, however, there may be selected such a quantizer that produces the minimum data amount not less than the transmittable limit. In a second example of the quantizer selecting unit, the small blocks contained in one large block are divided into two, namely the front half and rear half, with the boundary of the jth small block counted from the front top one. For these two groups thus divided, two quantizers having the nearest data amount after encoding are selected. In transmitting, the information of the values of the order numbers i and j of the selected quantizer to be used in the front half or the rear half are encoded and transmitted. In the second example, only two kinds of the quantizing unit are used in one large block. By this limitation, since the number of the combination of the quantizers in the large block can be largely decreased, leading to the decrease of the calculation amount. In addition, the two kinds of the quantizing unit are selected from the groups of the small blocks consisting of the front half and rear half divided in the large block. As a result, the information representing what quantizer is to be used may be expressed only by the boundary of the front half and rear half (namely, the jth small block) in the large block, so that the information to be transmitted can be made small in amount. Here, a concrete example will be shown. It is assumed that there are 16 kinds of the quantizer and one large block consists of 30 small blocks. Also, it is assumed that the data amount of the jth small block in the ith quantizer is expressed as D(i,j) and the following S(i,j) is defined as; S(i,j) = D(i,j) - D(i-1,j) (where it is assumed that D(-1,j) = 0 and D(i,j) ≧D(i-1,j)) Using the above equation, calculation is made for 30 small blocks to obtain Table 4 and stored in a memory. The optimum values i and j are calculated according to the flow chart shown in Fig. 24 using the data amount shown in Table 4. In Fig. 24, 124 indicates a start step, 125 an initial value setting, 126 a total data amount calculation, 127 an overflow detection, 128 an increment, 129 a j detection, 130 an i increment, 131 an i detection, 132 an overflow processing, and 133 an output terminal. First, in the step 125, the initial value is set as the total data amount TD = -CD (CD is the target data amount after compression) and i = j = 0. In the step 126, the total data amount is calculated by the equation TD = TD + S(i,j). In the step 127, whether or not the value of TD is larger than 0 is detected, in case of being more than 0, the process goes to the step 133 to output the values i and j and the process goes to the end. In case when the value of TD is negative, the process goes to the step 128 to calculate j = j + 1. The process goes to the step 129 to detect whether or not the value of j is 30, in case of not being 30, the process goes to the step 126. In case of being 30, the process goes to the step 130 to calculate i = i + 1 and j = 0. In the i detection step 131, whether or not the value of i is 16, in case of not being 16, the process goes to the step 126. On the other hand, in case of being 16, the process goes to the step 132 for making i = 15 and j = 29, and the values i and j are outputted in the step 133 and the process goes to the end. By this way, the values i and j can be calculated. Since the values i and j can be expressed by 4 bits and 5 bits, respectively, the information what quantizer is selected can be transmitted by 9 bits for each large block. A second example of the second quantizer selecting unit will be explained below. In this example, one large block consists of 30 small blocks and there exist 16 kinds of the candidate quantizer. In addition, assuming that the data amount of the jth small block in the ith quantizer is expressed by D(i,j), similar to in the first example, the following S(i,j) is defined as; S(i,j) = D(i,j) - D(i-1,j) With the equation shown above, calculations are made for obtaining Table 5 and stored in a memory in the same manner as in obtaining Table 4. In this example, using the data amount tabulatedly shown in Table 5 and according to the flow chart shown in Fig. 25, the optimum values of i and j are determined. In Fig. 25, 134 indicate a start step, 135 an initial i value setting, 136 a first data amount comparison, 137 an i decrement, 138 an overflow detection, 139 a TD/initial j value setting, 140 a TD increment, 141 a second data amount comparison, 142 a j increment, 143 a j overflow detection, 144 a j decrement, 145 a j setting and 146 an output terminal. Next, the operation of the flow chart shown in Fig. 25 will be explained. First, in the initial i value setting step 135, the initial value i is set to 15. In the step 136, AD(i) and CD (the data amount actually transmittable) are compared, and if AD(i) ≦ CD, the process goes to the step 139, and if AD(i) > CD, the process goes to the step 137 to calculate i = i-1, and goes to the step 138. In the step 138, whether or not the value of i is 0, and if i = 0, the process goes to the step 145 to set the value J to 29, and the values i and j are outputted to the step 146. On the other hand, if i ≠ 0, the process goes to the 136. In the step 139, TD = AD(i) and j = 0 are set. Then, in the step 140, TD = TD + S(i,j) is calculated and the process goes to the step 141. In the step 141, TD and CD are compared, and if TD > CD, the process goes to the step 144, and if TD ≦ CD, the process goes to the step 142 to calculate j = j + 1 and goes to the step 143. In the step 143, whether or not the value j is 30, and if j = 30, the process goes to the step 144, and if j ≠ 30, the process goes to the step 140. In the step 144, j = j-1 is calculated and the values i and j are outputted to the output terminal step 146. Thus, the values i and j can be obtained. Also, in this example, since the values i and j can be expressed by 4 bits and 5 bits, respectively, the information on what quantizer is selected can be transmitted by 9 bits for every large block. In addition, in this example, the value i is determined first and then, the value j is determined, so that the calculation amount can be decreased and the calculation time can be shortened. A third example of the quantizer selecting unit detects a dynamic range for each small block, and for the small block detected to have a large dynamic range, a quantizer having a large quantization width is selected, and for the small block detected to have a small dynamic range, a quantizer having a small quantization width is selected. In the transmission, the information on what quantizer is selected is encoded for each small block and transmitted. Fig. 26 shows an example of the third quantizer selecting unit. In Fig. 26, 147 is an input terminal, 148 a dynamic range detecting unit, 149 a quantizer sorting unit, and 150 an output terminal. The data for each small block inputted from the input terminal 147 is sent to the dynamic range detecting unit 148 to detect the dynamic range thereof. As a method of performing such detection, there exists such a technique that the detection is made by the value of the orthogonal component whose absolute value is maximum in the small block. The quantizer sorting unit 149 sorts the quantizers for such small block in response to the dynamic range thus detected and the result thus obtained is outputted to the output terminal 150. For example, if the small block is sorted into four kinds according to the size of the dynamic range, the output from the quantizer sorting unit 149 can be expressed by 2 bits. Also, as an actual method of selecting the quantizer, the quantization width of the small block is made large as the dynamic range thereof becomes large. As a result, if the quantizer as shown in Table 3 is used, the small block having larger dynamic range is assigned a quantizer having a small number. Also, as a method of making the data amount constant, the second quantizer selecting unit is possibly applied. In this case, if Table 4 or 5 is to be prepared, it can be realized by shifting the position where the data is to be written for each small block in the columnar direction in advance. That is, in preparing Table 4, a small block having large dynamic range shifts the corresponding row thereto downward to be written, and on the other hand, a small block having small dynamic range shifts the corresponding row thereto upward to be written. By this way, by detecting Table 4 in the columnar direction, in the small block having large dynamic range, the data amount of a quantizer having large quantization width is written and on the other hand, the small block having small dynamic range has the data amount of a quantizer having small quantization width written. As a result, by applying such an algorithm as shown in Fig. 24 or 25 in accordance with the table prepared as above, the combination of the quantizers becomes possible to make the data amount constant. This method will be explained by referring to Fig. 27. In Fig. 27, 151 is an input terminal, 152 a memory, 153 an address generating unit, and 154 a quantizer sorting unit. The data amount on a small block unit basis inputted from the input terminal 151 is stored in the memory 152 in accordance with the address generated by the address generating unit 153. The address generating unit 153 controls the address for every small block in accordance with the signal inputted from the quantizer sorting unit 154. This example describes the method of controlling the input address of the memory, but the same effect can be obtained by controlling the output address of the memory. In general, in case of a picture having large dynamic range, the visual picture deterioration thereof can be difficult to detect and in case of a picture having small dynamic range, it can be easily detected. As a result, by assigning a quantizer having large quantization width to such a small block that the maximum value of the absolute value of the quantized value (dynamic range) is large, the data amount can be largely compressed while suppressing the visual picture deterioration. A fourth example of the quantizer selecting unit will be shown below. In the fourth example, the quantizer selecting unit is designed or adapted to select a quantizer having large quantization width for the signals which are difficult to detect the visual picture deterioration and a quantizer having small quantization width for the signals which are easy to detect the visual picture deterioration for the brightness signal and two color difference signals. This will be explained below by referring to Fig. 28. In Fig. 28, 155 is a number input terminal for every small block, 156 a brightness signal, first color difference signal and second color difference signal judging unit, 157 a quantizer sorting unit and 158 an output terminal. In response to the number of a small block (processing order) inputted from the input terminal, the unit 156 judges whether the small block thus inputted is of the brightness, first color difference or second color difference signal. In the quantizer selecting unit 157, in accordance with the result of judgement shown above, the quantizer corresponding to the small block is sorted and the result thus sorted is outputted to the output terminal 158. Also, in the actual selection of the quantizer, it can be realized by controlling the address to the memory and applying the quantizer selecting unit shown in the second example as shown in Fig. 27. As explained above, the quantizer selecting unit as designed as above of this invention makes it possible to make the circuit scale small in calculating the data amount by decreasing the figure number of operations. In this case, some errors may be generated between the estimated data amount and the actually transmittable data amount, however, the possibility to vary the quantized values to be selected by the errors thus generated is considerably small. As a result, almost no deterioration in picture quality results and a reduction in circuit scale becomes possible. Finally, the process order of the components including the large blocking, small blocking and orthogonal transform units may be changed variously other than the orders shown in the above-mentioned examples. With the arrangement as described above, this invention makes possible that the coded data amount is read in advance thereby to quantize it always using an optimum quantizer. Also, different from the conventional feed-back control technology, the data amount can be precisely controlled, so that such a variable length encoding can be provided that the code length becomes constant in a small range. Accordingly, even in case of an equipment in which transmission line errors may be often occurred as in, for example, a digital VTR, it is possible to use the variable length encoding. In addition, use of the quantizer, data amount estimating unit or the like according to this invention makes it possible to make the equipment in comparatively small circuit scale, which means that the practical effects of this invention are extremely large.

Claims: An orthogonal transform coding apparatus comprising: large blocking means (14) for assembling sample values of an input signal to form a large block of the sampled values; small blocking means (15) for dividing said large block into a plurality of small blocks; orthogonal transform means (16) for orthogonally transforming the sample values in each of the small blocks to obtain orthogonally transformed components; a plurality of kinds of quantizers (20) each for quantizing the orthogonally transformed components to obtain quantized data; a data amount estimating means (18) for estimating a data amount of coded data; a quantizer selecting means (19) for selecting a quantizer (20) among the plurality of kinds of quantizers according to the data amount estimated by the data amount estimating means (18) such that a total data amount of coded data in the large block becomes within a predetermined range; variable length encoding means (21) for encoding data quantized by the quantizer (20) selected by said quantizer selecting means (19) to obtain actual coded data; and transmission means (22) for transmitting the actual coded data, characterized in that: said large blocking means (14) assembles sample values in a frame of an input signal to form a large block of the sampled values which is smaller than the frame; said data amount estimating means (18) estimates a data amount of coded data which would be obtained by variable length encoding the quantized data quantized by at least a part of the plurality of kinds of quantizers (20) in each of the plurality of small blocks to obtain a plurality of data amount values corresponding to said at least a part of the plurality of quantizers with respect to the plurality of small blocks; and said quantizer selecting means (19) selects, from among the plurality of kinds of quantizers (20), a quantizer which gives an optimum data amount of the coded data with respect to each of the plurality of small blocks according to the data amount values estimated by the data amount estimating means (18) such that a total data amount of coded data in respect of the large block becomes an optimum data amount which is either a maximum data amount not larger than an actually transmittable data amount or a minimum data amount not smaller than the actually transmittable data amount, and outputs a selection signal indicative of the selected quantizer. An orthogonal transform coding apparatus according to claim 1, wherein the data amount estimating means (18) includes a data amount storing means for storing the plurality of data amount values estimated by the data amount estimating means. An apparatus according to Claim 1 or 2, wherein said quantizer selecting means (19) first finds, among n kinds of quantizers (20), a quantizer which gives a n/2-th largest amount of coded data, where n is the number of quantizers to be searched to find an optimum quantizer among the plurality of kinds of quantizers, and then determines that quantizer candidates to be searched next are only quantizers which give amounts of coded data each being smaller than the n/2-th largest amount of data if the n/2-th amount of data is larger than a transmittable amount of data or only quantizers which give amounts of coded data each being larger than the n/2-th larges amount of data if the n/2-th amount of data is smaller than the transmittable amount of data, said quantizer selecting means repeating these operations until an optimum quantizer to be selected is found. An orthogonal transform coding apparatus as claimed in Claims 1,2 or 3, wherein said quantizer selecting means (19) includes means for dividing the small blocks included in a large block into a front half including quantizers (20) from a top one to a jth one and a rear half including the remainder, and means for selecting one quantizer from each of the front half and rear half so as to produce nearest quantized values to each other, and means for coding and transmitting information of the quantizers thus selected in the front and rear halves and of the number j. An orthogonal transform coding apparatus as claimed in Claim 2, wherein when there are n quantizer candidates and m small blocks in one large block, and the amount of data in the jth small block of the ith quantizer is expressed as D(i,j), if D(i,j) ≥ D(i-1,j) when 1 ≤ i < n, said amount of data storing means first stores D(o,j) for said m small blocks in a memory, and then, if S(ij) =D(i,j) - D(i-1,j) when 1 ≤ i < n, said data amount storing means successively stores S(i,j) in said memory with regard to i, and said quantizer selecting means (19) reads and successively adds D(o,j) in said m small blocks from 0 to m-1 with regard to j, and then, to the result thus added are successively added S(i,j) in the order of S(0,0), S(0,1) ..., S(0,m-1), S(1,0)..., and S(n-1,m-1), i and j with respect to the equation S(i,j) when the added result exceeds the transmittable amount of data, and an ith quantizer (20) is selected for the small blocks from a 0th up to a (j-1)th or jth small block, and an (i-1)th quantizer is selected for the small blocks coming thereafter. An orthogonal transform coding apparatus as claimed in Claim 2, wherein when there are n kinds of quantizers (20) and m small blocks included in one large block, and the amount of data in the jth small block of the ith quantizer is expressed as D(i,j), if D(i,j) ≥ D(i-1,j) when 1 ≤ i < n, said data amount storing means successively stores S(i,j) = D(i,j) - D(i-1,j) for said m small blocks in a memory with regard to i, and simultaneously stores a sum AD(i) which is a total amount of data of said m small blocks corresponding to each quantizer with regard to i, and the quantizer selecting means (19) first compares said sum AD(i) with the transmittable amount of data with regard to i where 1 ≤ i < n, and the maximum sum AD (K) not exceeding the transmittable amount of data and K are fetched, and then, to said maximum sum AD (K) are added S (k+1,j) in order of j = 0,1, ..., m-1 in a successive manner, j with respect to an equation S(k+1,j) when the added result exceeds the transmittable amount of data, and a (k+1)th quantizer is selected for the small blocks from a 0th to a (j-1)th or jth small block, and a kth quantizer is selected for the small blocks coming thereafter. An orthogonal transform coding apparatus as claimed in Claim 3, wherein said data amount estimating means (18) roughly estimates the amount of data which is smaller than that needed to actually calculate the amount of data. An orthogonal transform coding apparatus as claimed in Claims 1,2 or 3 wherein said quantizer selecting means (19) detects the dynamic range for each small block, and then sorts each small block into a plurality of groups according to said dynamic range, and then selects a quantizer having a large quantization width for small block groups having a small dynamic range, and transmits the thus obtained result together with information showing that each small block is included in a particular group. An orthogonal transform coding apparatus as claimed in Claim 8, wherein the dynamic range detected by said quantizer selecting means (19) for each small block is represented by a maximum value of an absolute value of the orthogonally transformed components included in each small block. An orthogonal transform coding apparatus as claimed in Claims 1,2 or 3, wherein for a luminance signal and two color difference signals, said quantizer selecting means (19) selects a quantizer with a large quantization width for signals in which it is difficult to recognize visual picture degradation and a quantizer with a small quantization width for signals in which it is easy to recognize visual picture degradation. An orthogonal transform coding apparatus as claimed in Claim 1 or 2, wherein when writing a difference of quantizer for the small blocks different in a dynamic range from each other or for a luminance signal and two color difference signals and the amount of data for each small block in a memory, said quantizer selecting means (19) controls a writing address or reading address of the memory for every small block according to the difference of the quantizer thus written. An orthogonal transform coding apparatus as claimed in Claims 1,2 or 3, wherein said transmission means rearranges the quantized values of a small block in a transmission region, in the order from a low frequency value to a high frequency value in both horizontal and vertical directions so as to include all non-zero values with a quantized value representing a lowest frequency component as one apex and transmits only a coded word of quantized values included in the transmission region and information of the transmission region. An orthogonal transform coding apparatus as claimed in Claims 1,2 or 3, wherein said transmission means (22) rearranges the quantized values of a small block in the order from a lowest frequency value to a highest frequency value in both horizontal and vertical directions and transmits a coded word of quantized values representing from a lowest frequency component up to a highest frequency component in both horizontal and vertical directions in the order from a coded word of quantized values representing the low frequency value, and fails to transmit a code word of quantized values coming after the quantized value representing a highest non-zero frequency value using an end signal or information capable of determining a position of a last quantized value. An orthogonal transform coding apparatus as claimed in Claim 1 or 2, wherein said variable length encoding means (21) encodes a quantized value with a code length 1 for a quantized value 0 and the data amount estimating means (18) calculates an amount of the coded quantized values in the small blocks of one quantizer according to the equation: Σ (Ni-1) + M where, Ni is a code length of the ith quantized value, and M is the number of the quantized values to be transmitted. An orthogonal transform coding apparatus as claimed in Claim 14, wherein said variable length encoding means (21) encodes a quantized value with a code length 2K + 1 or 2K for a quantized value whose absolute value is K, and said data amount estimating means (18) calculates an amount of data of the encoded quantized values in the small blocks of one quantizer according to the equation 2 X Σ Ki + M where Ki is the absolute value of the ith quantizer, and M is the number of the quantized values to be transmitted. An orthogonal transform coding apparatus as claimed in Claim 13, wherein said variable length encoding means (21) encodes the quantized values in the order defined by said transmission means (22), and when the quantized value is 0, expresses the number of the quantized values of zero successively appeared thereto and the non-zero quantized values appeared first by one coded word. An orthogonal transform coding apparatus as claimed in Claims 1,2 or 3, wherein said variable length encoding means (21) encodes orthogonally transformed components representing a low frequency level in a fixed length form and orthogonally transformed components representing a high frequency level in a variable length form. An orthogonal transform coding apparatus as claimed in Claims 1,2 or 3, wherein said variable length encoding means (21) uses variable-length codes for orthogonally transformed components representing a low frequency level which are different from variable-length codes for orthogonally transformed components representing a high frequency level. An orthogonal transform coding apparatus as claimed in Claims 1,2 or 3, wherein the quantization width is expressed as a power of 2 or as the product of a power of 2 and a specific constant, and a means for effecting the quantization or inverse quantization comprises one of a bit shifter and a combination of a bit shifter and a multiplier of said specific constant. An orthogonal transform coding apparatus as claimed in Claims 1,2 or 3, wherein said quantizing means (20) sorts the orthogonally transformed components into r groups including from a group representing a high frequency level up to a group representing a low frequency level, and prepares s kinds of quantization widths, thus all of the quantizers performing quantization in combination of said r groups of the orthogonally transformed components with said s kinds of quantization widths. An orthogonal transform coding apparatus as claimed in Claims 1,2 or 3, wherein said quantizing means (20) transmits an average value of quantization errors of non-zero quantized values for every small block and corrects inversely quantized values during decoding using said average value of quantization errors. An orthogonal transform coding apparatus as claimed in Claims 1,2 or 3, wherein said quantizing means (20) quantizes signals placed at a same position on a picture plane using quantizers having different quantization characteristics for every frame or field.

Inventors: TATSURO JURI, TATSURO, JURI
Applicants: MATSUSHITA ELECTRIC IND CO LTD, MATSUSHITA ELECTRIC INDUSTRIAL CO., LTD.
Application year: 1991
Main classification: H04N7
IPC codes: G06T9, H03M7, H04N7, H04N1, H04N11