Video signal encoding apparatus

Abstract: A video signal encoding apparatus in which the number of quantization bits used in a quantizing circuit is determined on the basis of the activity index of each video block and the length of coded data or alternatively on the basis of the activity index of each video block and the number of events (each event consisting of the zero run length and nonzero value of quantized data). The video signal is encoded in a compressed form after shuffling the video blocks in such a manner that, when attention is given to any given video block, its four neighboring video blocks belong to units different from the unit to which the attention video block belong. Compression encoding of the video blocks is performed in sequence starting with the center of the screen and then proceeding toward the sides of the screen.

Description: BACKGROUND OF THE INVENTION Field of the Invention The present invention relates to a video signal encoding apparatus according to the pre-characterizing part of claim 1. Description of the Prior Art If video data converted to digital signals is directly recorded on tape or other recording medium, the volume of data will be so great that it will usually exceed the limit of the data amount that the recording medium can hold. Therefore, when recording a digital video signal on tape cr other recording medium, it is necessary to compress it so that the data volume does not exceed the limit. To achieve this, it has been known to compress the video signal by using a high-efficiency encoding apparatus. One example of such high-efficiency encoding that has been widely used is the orthogonal transform encoding method in which transform coefficients obtained by orthogonal-transforming the original signal are quantized for encoding. This method is known to provide high encoding efficiency. In encoding a video signal by this method, the video signal is first divided into blocks each consisting of n × n pixels (where n is an integer), an orthogonal transformation is performed on each block to transform it into a transform coefficient representing n × n frequency regions, and then the transform coefficient is quantized. However, when all blocks are quantized with the same number of bits, adequate image quality can be obtained for the video blocks in flat areas, but noise appears in the video blocks including edge areas since errors are dispersed in the vicinity of the edge areas. An example of an encoding apparatus that overcomes the above problem is disclosed in Japan Patent Application Laid-Open No. JP-A-2-105792. Fig.1 shows a block diagram of the encoding apparatus disclosed in the Patent Publication. The encoding apparatus shown is described below with reference to Fig.1. A video signal is inputted to a blocking circuit 51 where it is divided into blocks, each block then being supplied to an orthogonal transforming circuit 52 for orthogonal transformation. The transform coefficient obtained by the orthogonal transformation is quantized by a quantizing circuit 53. The quantizing circuit 53 has the ability to perform quantization using a variable number of quantization bits. An edge area detecting circuit 54 is provided to detect the edges of the video signal, while a flat area detecting circuit 55 is provided to determine whether the block represents a flat area. Based on the outputs from the edge area detecting circuit 54 and the flat area detecting circuit 55, a block identifying circuit 56 determines whether the block includes an edge area as well as a flat area, the result of which is fed to the quantizing circuit 53 to determine the number of quantization bits. When the whole block is flat or when the whole block has a complicated structure, it is decided to use a smaller bit code for-quantization since noise is not appreciably visible. On the other hand, if the block includes an edge area as well as a flat area, it is decided to use a higher bit code for quantization to prevent the generation of noise in the flat area. Thus, in the encoding apparatus disclosed in the above Patent Publication, in order to overcome the aforementioned problem, the transform coefficients for blocks including both edge and flat areas are quantized using a higher bit code to reduce the noise and thereby improve the image quality after decoding. The determining factors used to detect the edge or flat areas in a block include a variance within the block, the maximum value of the block, the dynamic range of the block, etc. These factors are collectively referred to as the activity index. In the above prior art encoding apparatus, the number of quantization bits (quantization level) is selected for each block on the basis of the activity index. The output of the quantizing circuit 53 of Fig.1 is encoded, usually using entropy encoding such as Huffman encoding, into a variable-length code for transmission. The bit length of one block after variable-length encoding varies from block to block, and in the case of a recording medium such as a helical scan digital video tape recorder (VTR) having a fixed track length, it is convenient to grasp the number of data blocks to be recorded per track. Therefore, it is a usual practice to predetermine at least the number of data blocks to be recorded per track. Also, when block correcting codes (e.g., BCH codes, Reed-Solomon codes, etc.) are employed as error-correcting codes, it may be practiced to fix the data length of variable-length code for each error-correcting block. Usually, in encoding of video signals, one field or frame is divided into N segments (where N is an integer), each segment serving as a unit, and the maximum data amount is set for each of the N units. However, in a channel, such as a digital VTR, in which the data length for the variable-length codes is fixed, the data length of variable-length code may vary from code to code after variable-length encoding depending on the kind of the image processed, and the total code length after variable-length encoding may exceed the fixed length of the channel, resulting in an overflow. If this happens, the transmission will be cut off because of dataflow, and therefore, not only overflown data but also the subsequent data will not be transmitted. This presents the problem of an inability to correctly perform the decoding of the original signal. Variable-length encoding of a television image is usually performed in sequence from left to right and from top to bottom of the television screen. Therefore, the problem is that the above-mentioned cutoff is likely to occur in the center of the television screen where the feature elements of the image are contained. IEEE TRANSACTIONS ON ACOUSTICS AND SPEECH AND SIGNAL PROCESSING; vol. 37, no. 11, November 1989, NY, US, pages 1743-1749, NGAN et al.: "Adaptive Cosine Transform Coding of Images in Perceptual Domain" already discloses a video signal encoding apparatus for compressing and encoding a digital video signal to obtain coded data compressed within a predetermined data amount. This apparatus comprises means for structuring blocks each consisting of a plurality of pixels in the video signal, means for performing an orthogonal transformation on each of the structured blocks to obtain a transform coefficient, means for quantizing the transform coefficient, means for encoding the quantized data to obtain coded data, means for encoding the quantized data to obtain coded data, means for storing the obtained coded data, and means for controlling the quantizing means on the basis of the amount of the coded data stored in the storage means. PAJP, vol. 12, no. 124 (E 601) shows a picture signal transmission system which obtains a smooth reproducing moving image with improved visual characteristic by dividing both surfaces into plural areas, applying priority to the respective areas and transmitting more information of the area of the higher priority than the information of the area of the lower priority. PAJP. vol. 12, no. 355 (E 661) describes a picture compressing device which in order to reduce the number of quantizing errors and to shorten the operating time comprises a preprocessing means which pre-processes original picture data and a rearranging section which rearranges an orthogonally transformed output in blocks of the same frequency component. Further, EP-A-0 322 955 refers to a receiver for a high definition television signal in which the signal prior to transmission is sub-sampled on a block-by-block basis according to the movement. The received sub-sampled signal is applied to a shuffler which shuffles the pixels of blocks in a manner which is the inverse to that performed prior to transmission. SUMMARY OF THE INVENTION It is the object of the invention to provide a video signal encoding apparatus capable of fixing the encoded data length to a predetermined length wherein distortions resulting from transmission cutoffs are not easily visible. This object according to the invention is solved by a video signal encoding apparatus having the features of claim 1. Specific embodiments of this apparatus are defined in claims 2 to 7. According to the present invention, a video signal encoding apparatus for compressing and encoding a digital video signal to obtain coded data compressed within a predetermined data amount, comprising block structuring means for structuring blocks each consisting of a plurality of pixels in said video signal, transformation means for performing an orthogonal transform on each of the structured blocks to obtain a transform coefficient, quantizing means for quantizing the transform coefficient, encoding means for encoding the quantized data to obtain coded data, storage means having a storage capacity approximately equal to said predetermined data amount, for storing the obtained coded data, and control means for controlling the on/off operation of said encoding means on the basis of the amount of the coded data stored in said storage means, is characterized by shuffling means for shuffling the blocks structured by said block structuring means, so that said blocks may be sequentially supplied to said transformation means starting with the blocks in the center of the screen. The above and further objects and features of the invention will more fully be apparent from the following detailed description with accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS Fig. 1 is a diagram showing the configuration of a prior art videod signal encoding apparatus. Fig. 2 is a diagram showing the configuration of a video signal encoding apparatus comprising a variable length encoding circuit and a buffer memory. Fig. 3 is a diagram showing an example of encoding during the process. Fig. 4 is a diagram showing the scanning sequence during encoding. Fig. 5 is a diagram showing an alternative configuration of the apparatus of Fig. 2. Fig. 6 is a diagram showing the configuration of a video signal encoding apparatus in accordance with a first embodiment of the invention. Fig. 7 is a series of diagrams showing in a specific manner the transmission sequences determined by the shuffling circuit shown in Fig. 6. Fig. 8 is a diagram showing an alternative configuration of the first embodiment. Fig. 9 is a diagram showing the configuration of a video signal encoding apparatus of a second embodiment. Fig. 10 is a diagram showing a table of bit code selection for quantization om accordance with the second embodiment. Fig. 11 is a diagram showing the configuration of an event converting circuit in the second embodiment. Fig. 12 is a diagram showing an alternative configuration of the second embodiment. Fig. 13 is a graph showing code length variations equalized by shuffling in the second embodiment. Fig. 14 is a diagram showing shuffling units for a sample ratio of 4:1:1 in the second embodiment. Fig.15 is a diagram showing shuffling units for a sample ratio of 4:2:0 in the second embodiment. Fig.16 is a diagram showing an example of shuffling the second embodiment. Fig.17 is a diagram showing shuffling units for a sample ratio of 4:1:0 in the second embodiment. Fig. 18 is a diagram showing the configuration of a video signal encoding apparatus in accordance with a third embodiment of the invention. Fig.19 is a diagram explaining the operation of shuffling in the third embodiment. Fig. 20 is a diagram explaining the principle of shuffling in the third embodiment. Fig. 21 is a diagram showing an example of shuffling the third embodiment. Fig. 22 is a diagram showing another example of shuffling in the third embodiment. Fig. 23 is a diagram showing still another example o shuffling in the third embodiment. Fig. 24 is a diagram showing the configuration of a shuffling circuit in the third embodiment. In Figure 2, the reference numeral 1 indicates a blocking circuit for dividing the input digital video signal into blocks each consisting of plurality of pixels. Each block is fed from the blocking circuit 1 to a DCT circuit 2. The DCT circuit 2 performs a discrete cosine transform (DCT) on each block and supplies the obtained transform coefficient (DCT coefficient) to a weighting circuit 3. The weighting circuit 3 performs a weighting to each DCT coefficient and supplies the weighted DCT coefficient to a quantizing circuit 4. The quantizing circuit 4 quantizes the weighted DCT coefficient with the number of quantization bits determined by a controller 8, and supplies the quantized DCT coefficient to a variable-length encoding circuit 5 through a switch 7. The variable-length encoding circuit 5 encodes the quantized DCT coefficient into a variable-length code and transfers the variable-length encoded data to a buffer memory 6. The buffer memory 6 is constructed from a RAM or the like and has the storage capacity equivalent to the data length of one track. The switch 7 turns on and off the data input to the variable-length circuit 5. The controller 8 controls the number of quantization bits for the quantizing circuit 4, as well as the switching operation of the switch 7, on the basis of the amount of data stored in the buffer memory 6. The operation will now be described. The data obtained by sampling the video signal is divided by the blocking circuit 1 into blocks each consisting of, for example, eight pixels in both horizontal and vertical directions. The DCT circuit 2 performs a DCT on each block, and the obtained DCT coefficient is then performed a weighting by the weighting circuit 3. At this time, the weighting is performed so that weighting factors for DOT coefficients in higher frequency regions will be smaller values. This is because the visual resolution drops for higher frequency regions, allowing high-efficiency encoding without noticeable degradation. Next, the weighted DCT coefficient is quantized by the quantizing circuit 4. Quantized n-bit data may be expressed as shown in Fig.3, for example. This data is encoded by the variable-length encoding circuit 5 into a variable-length code by performing one-dimensional scanning as shown in Fig.4. The variable-length encoding circuit 5 is a circuit for encoding data into a code whose length depends, for example, on the string of zeros (zero run length) and nonzero value, and usually, the Huffman encoding and like methods are widely used. The output of the variable-length encoding circuit 5 is stored in the buffer memory 6 for transfer to the transmission channel. However, the length of the variable-length code outputted from the variable-length encoding circuit 5 varies according to the image pattern and, depending on the situation, may exceed or may not reach the maximum transmissible code length. The controller 8 predicts an occurrence of excess data by comparing the address value being written in the buffer memory 6 with the limit data length, and outputs signals to control the number of quantization bits for the quantizing circuit 4 and the switching operation of the switch 7. Therefore, even if the data volume instantaneously increases at a particular portion of the image on the television screen, the buffer memory 6 can provide a sufficient capacity for data storage, and there arises no situation that results in an overflow or that causes the controller 8 to direct transmission cutoff. Fig.5 is a block diagram showing an alternative configuration. In this alternative configuration, the controller 8 controls only the switching operation of the switch 7. The preferred embodiment of the present invention will now be described with reference to the accompanying drawings. (Embodiment 1) Fig. 6 is a block diagram showing the configuration of the first embodiment, the reference numerals designating corresponding parts being the same as those in Fig.2. In the first embodiment, there is provided between the blocking circuit 1 and the DCT circuit 2 a shuffling circuit 9 by which the blocks entered from the blocking circuit 1 are shuffled so that the encoding of image data is performed starting preferentially from the center of the television screen, the thus shuffled blocks being supplied to the DCT circuit 2. Fig.7 shows the shuffling sequences performed by the shuffling circuit 9. Fig.7(a) shows an example in which the shuffling is performed in such a manner as to spiral outward from the center of the screen. Fig.7(b) shows an example in which the shuffling is performed in the vertical direction across the screen starting from the center and alternately moving toward both ends of the screen. Furthermore, Fig. 7(c) shows an example in which the shuffling is performed in the horizontal direction across the screen starting from the center and moving alternately toward the top and bottom of the screen. Thus, in the first embodiment, the encoding is performed starting preferentially from the center of the screen, and therefore, if data transmission is cut off because of an occurrence of excess data, since the cutoff occurs in an edge portion of the screen, the distortion resulting from the cutoff is less visible. The shuffling sequences performed by the shuffling circuit 9 are not limited to the methods shown in Figs.7(a), (b), and (c), but instead, random numbers may be used. For example, the television screen may be divided into five sections, as shown in Fig.7(d), and the shuffling sequence within each section may be determined by random numbers, starting from the center section and moving alternately toward both sides of the screen. Fig.8 is a block diagram showing an alternative configuration of the first embodiment. In this alternative configuration, the controller 8 controls only the switching operation of the switch 7. (Embodiment 2) The following describes the second embodiment in which the number of quantization bits is decided on the basis of the activity index of each block and the number of event occurrences. Variable-length encoding means assigning codes of varying lengths according to data occurrence. When the data count is increased (i.e. when tens of thousands to hundreds of thousands of codes are viewed), the bias in the code amount decreases. Further, when tens of thousands to hundreds of thousands of codes are viewed, it has been confirmed by simulation that the average code length per event (one event means one occurrence of zero run length and nonzero value) is stable approximately between 5 to 7 bits. Using this property the other way around, the entire code amount can be predicted fairly accurately by counting the number of events. The second embodiment uses such property of variable-length codes to predict the code amount and decide the number of quantization bits based on the predicted value. Fig.9 is a block diagram showing the configuration of the second embodiment, wherein the same reference numerals a those in Fig.2 refer to the same or corresponding parts for which the description is omitted herein. The quantizing circuit 4 quantizes the weighted DCT coefficient with the number of quantization bits decided by a quantization bit number deciding circuit 14 and supplies the quantized DOT coefficient to the variable-length encoding circuit 5. The variable-length encoding circuit 5 encodes the quantized DCT coefficient into a variable-length code, the variable-length code data then being transferred to a buffer memory 11 constructed from a RAM or the like. The variable-length encoding circuit 5 also supplies data to a data restructuring circuit 10. The data restructuring circuit 10 restructures the data from the variable-length encoding circuit 13. The variable-length encoding circuit 13 encodes the input data into a variable-length code for transfer to a buffer memory 15 constructed from a RAM or the like. A switch 12 selects data output between the buffer memories 11 and 15. The variable-length encoding circuit 5 comprises a zero run counter 31 for counting zero runs in the output of the quantizing circuit 4, an event counter 32 for counting the number of event occurrences by the count value of the zero run counter 31, an event converting circuit 33 for converting an event, as hereinafter described, in accordance with the count value of the event counter 32, and a variable-length encoder 34 for encoding the output of the event converting circuit 33 into a variable-length code. The operation will now be described. Fig. 10 shows an example of quantization bit code selection. In the second embodiment, the predicted memory usage in the buffer memory 11 and the activity index are taken as the deciding factors. Thus, when it is predicted that the usage of the buffer memory 11 is nearing its full capacity, the number of quantization bits is reduced, so that the probability increases that post-quantization values become zero. As a result, the code length after variable-length encoding decreases per pixel. In this manner, the code amount decreases as the buffer memory 11 nears its full capacity, thus providing effective control against overflow. When the situation has reached or is expected to reach the critical point at which an overflow occurs, the variable-length encoding by be cut off at a point at the high frequency side. In the variable-length encoding circuit 5, the zero run counter 31 for counting zero runs is usually provided to count the contents of events (zero run length and nonzero value) preparatory to variable-length encoding. The zero run counter 31 notifies the occurrence of a code for every event to the event counter 32 which counts the number of events to predict the code amount to be generated. For example, the average number of events per block is obtained, which is fed back to the quantization bit number deciding circuit 14 which, considering both the average number and the activity index, decides the number of quantization bits as shown in Fig.10, thereby controlling the code amount. Independently of the above feedback, the number of events is counted by the event counter 32, and after the total number of events has been counted, the event converting circuit 33 performs a control on the code amount. When it is predicted by the event counter 32 that the code amount is likely increased, for example, the control is performed in the following manner. There are some events whose nonzero value may be reduced to zero if the value is divided by 2 and truncated to a whole number. This occurs when the nonzero value is 1. When a new zero value occurs in an event, the run length of that event is added to the run length of the next event and 1 is further added to this sum to provide the run length of a new event. This can be described by the following specific example. Suppose, for example: the kth event has a run length of 5 and a nonzero value of 6; the (k+1)th event has a run length of 2 and a nonzero value of 1; and the (k+2)th event has a run length of 7 and a nonzero value of 17. In this example, if the control is performed as a result of code amount prediction so as to reduce the code amount, the following results will be obtained. The kth event will have a run length of 5 with a nonzero value reduced to 3; the (k+1)th event will have a run length of 2 with a nonzero value reduced to 0; and the (k+2)th event will have a run length of 7 with a nonzero value reduced to 8. Since, at this time, a new zero value occurs in the (k+1)th event, the (k+2)th event is combined with the (k+1)th event to create a new (k+1)th event. The new (k+1)th event has a run length of 10, which is given by 2 + 7 + 1, and a nonzero value of 8. The old (k+3)th event is now a new (k+2)th event, the old (k+4)th event is now a new (k+3)th event, and thus, new events are sequentially created, reducing the number of events by the number of newly generated zero values. Fig. 11 shows the internal configuration of the event converting circuit 33 which performs the above-described operation. The event converting circuit 33 comprises: a delay circuit 35 for outputting the input run length with a delay of one event; an adder 36 which adds the output of the delay circuit 35 to the input run length and further adds 1 to this sum; a switch 37 that can be switched between two input terminals, one terminal being supplied with the output of the delay circuit 35 and the other being supplied with the output of the adder 36; a divider 38 which divides the input nonzero value by 2 and truncates the result to a whole number; a zero judging circuit 39 which judges if the output of the divider 38 is zero or not and which, when the output is zero, issues a control signal to the switch 37 and, when the output is not zero, directly outputs the nonzero value; and a delay circuit 40 for outputting the input nonzero value with a delay of one event. When the control signal is given from the zero judging circuit 39, the switch 37 selects the output of the adder 36 and, when the control signal is not given, is selects the output of the delay circuit 35. The provision of the above configured event converting circuit 33 offers the advantage, for example, that the number of quantization bits, once set for the quantizing circuit 4, can be easily changed using only one zero run counter. Without the event converting circuit 33, two zero run counters, one for prediction of the variable-length code amount and the other for use after changing the number of quantization bits, would be required. Dividing nonzero values is not an essential element for the operation of the event converting circuit 33; it will also be possible to change the contents of an event by forcibly converting to zero a nonzero value whose absolute value is smaller than a value 1. The event conversion does not necessarily have to be performed uniformly on each block, but may be performed adaptively with emphasis, for example, on portions quantized with higher bit codes by the quantizing circuit 4 or on high frequency components. The event conversion using the 1/2 division is equivalent to changing the number of quantization bits from n bits to (n-1) bits. Fig. 12 is a block diagram showing an alternative configuration of the second embodiment. In this configuration, a code amount counter 30 for counting the code amount is used instead of the event counter 32 in Fig. 9. The code amount counter 30 counts the generated code amount from the zero run length and nonzero value supplied from the zero run counter 31. At completion of each block, the number of bits such as EOB (end of block, a character that indicates the completion of a block) are added to the counted amount, which is divided by the number of blocks already counted to predict the entire code volume to be generated. Data that has not been transmitted because of generation of new zeros by the event converting circuit 33 is restructured by the data restructuring circuit 10. If the code amount has failed to reach the predicted value, the restructured data can be encoded as additional data to provide further accurate control. Such additional data is encoded by the variable-length coding circuit 13 and stored in the buffer memory 15, and if the output of the buffer memory 11 falls short of the maximum transmissible code amount, the additional data stored in the buffer memory 15 is transmitted by time-multiplexing through the switch 12, thus enabling the additional data to be transmitted up to the maximum transmissible limit. On the other hand, when the code amount predicted by the event counter 32 or the code volume counter 30 exceeds the maximum transmissible limit, DCT coefficients with smaller absolute values are cut off in ascending order of the absolute value, because DCT coefficients with smaller absolute values less affects the image quality when cut off. Therefore, counting the number of events having DCT coefficients with smaller absolute values is important in grasping the code amount after code amount control. More specifically, if the number of events having DCT coefficients with absolute values 1, 2, or 3 is counted separately by the event counter 32 or the code amount counter 30 and the event conversion is performed using this number information in conjunction with the result of code amount prediction, further accurate control of the code amount can be achieved. That is, the events with an absolute value 1 are converted to non-transmission events by the above-mentioned 1/2 division, and by accurately grasping the number of such non-transmission events, it is possible to increase the control accuracy. For example, in such cases where events with an absolute value 1 seldom occur but events with absolute values 2 or 3 frequently occur, it becomes necessary to create non-transmission events using a 1/4 division, in which case the event converting circuit 33 should be directed to perform a 1/4 division or to forcibly convert the events with absolute values 1, 2, or 3 to non-transmission events. This serves to further enhance the control accuracy. When recording data on a VTR tape using the above described control, the code amount greatly varies depending on the image pattern to be recorded, as previously noted. It is also noted previously that it is convenient to fix the data length to a length calculated by dividing the track length by an integer. It is usually most convenient to fix the data length by dividing one field or one frame or m frames into n units. Fig.13, for example, shows the generated code amount when one frame is divided into 10 units. The symbol -▵- in Fig.13 represents the code amount. As shown, four out of the 10 units largely exceeds the transmissible limit, while the other six units are far below the limit. Since the cutoff control is exercised on the four units to a large extent, the code amount has to be reduced, sacrificing the signal-to-noise ratio to a certain degree, while on the other hand, an improvement in the signal-to-noise ratio is expected for the remaining six units with the addition of additional data, etc. When the code amount is controlled between the units in accordance with the second embodiment, such a bias in the code amount distribution can be disregarded since the code amount overflown from the four units can be transmitted using the other six units (actually, using units in the next frame). However, processing covering too many units only serves to complicate the hardware configuration and does not provide worthwhile advantages. It is therefore important to devise so that the processing will be completed within each unit. That is, it is important to minimize the bias in the code amount within each unit. One approach to this is to equalize the generated code amount between the units by shuffling the blocks so that any given DCT block and four DCT blocks most adjacent to the given DCT block belong to different units. The code amount generated as a result of such shuffling is shown by the symbol -○- in Fig.13. As can be seen from Fig.13, the shuffling has served to substantially equalize the generated code amount. Controlling the code amount within each unit after equalizing is extremely advantageous in terms of the following points. Since the code amount control is performed only within each unit, the hardware is very simple in construction. Even when the code amount control is performed within each unit, there occurs no need to reduce the rate for a particular portion within one frame, as a result of which degradation in the signal-to-noise ratio is prevented from concentrating on a particular portion on the screen. When special replay modes are considered, it will be more convenient if the code amount is controlled after performing the above-mentioned shuffling by grouping together DCT blocks of the chrominance signal having a fewer number of samples. More specifically, when the sample ratio between the luminance and chrominance signals is 4:1:1, for example, four horizontally successive DCT blocks as shown in Fig.14 are grouped into a shuffling unit and shuffling is performed on this unit, after which the code amount is controlled within this unit. In the case of special replay modes, some blocks may not be reproducible, but when shuffling is performed on the above configured unit, reproduction is possible with both the luminance and chrominance signals balanced. Without such shuffling, the second DCT block from left of the luminance signal, for example, may be dropped, resulting in serious degradation in special replay mode image quality. Further, when the sample ratio between the luminance and chrominance signals is 4:2:0 (color line sequential processing), for example, the above-described shuffling is performed by grouping two horizontally adjacent and two vertically adjacent DCT blocks into one shuffling unit. With this grouping, the area size that one DCT block of the chrominance signal takes on the screen becomes equal to the shuffling unit of the luminance signal. With this as one shuffling unit, the shuffling as shown in Fig.16 is performed. Fig.16 shows an example of shuffling in the case of the shuffling unit shown in Fig.15 when the sample ratio between the luminance and chrominance signals is 4:2:0 and when one field is divided into five units. Fig.17 is an example of shuffling when the sample ratio between the luminance and chrominance signals is 4:1:0. (Embodiment 3) When a plurality of blocks is grouped into a unit, has been a usual practice to perform encoding unit by unit starting from a particular position on the screen (e.g. from the upper left of the screen). Therefore, the code amount varies largely from unit to unit, and there arises the problem that the transmission efficiency decreases when the upper limit of data amount is set to match the units having a larger code amount. The third embodiment is provided aiming at overcoming such a problem. Fig.18 is a block diagram showing the configuration a video signal encoding apparatus in accordance with the third embodiment. In Fig.18, the reference numerals 2, 3, 4, and 5 designate a DCT circuit, a weighting circuit, a quantizing circuit, and a variable-length encoding circuit, respectively. These circuits are identical to those shown in Fig.9. At the front stage of the DCT circuit 2, there is provided a blocking/shuffling circuit 41 for dividing a digital video into blocks of a plurality of pixels and shuffling the thus obtained blocks. The block data is supplied from the blocking/shuffling circuit 41 to the DCT circuit 2. The quantizing circuit 4 quantizes the weighted DCT coefficient with the number of quantization bits decided by a quantization bit number deciding circuit 43 and supplies the quantized DCT coefficient to the variable-length encoding circuit 5. The variable-length encoding circuit 5 encodes the quantized DCT coefficient into a variable-length code and supplies the variable-length code data to a buffer memory 42. The operation will now be described. A digital video signal is inputted in scanning line sequence to the blocking/shuffling circuit 41 where the signal is divided into blocks of n × n pixels within one field or one frame and then shuffled in accordance, for example, with the shuffling format shown in Fig.19. One block in Fig.19 corresponds to one DCT block and the outer frame corresponds to that of the television screen. When the luminance signal conforming to the NTSC system is sampled at a rate of 13.5MHz, for example, the effective scanning area per frame covers 720 pixels in the horizontal direction and 486 pixels in the vertical direction. When one frame is divided into blocks of 8 × 8 pixels, for example, there remain six pixels each in the vertical direction; therefore, it is supposed here to encode the picture signal for 720 × 480 pixels, discarding the data for the three horizontal scanning lines from the top and bottom of the screen. Since the video signal is divided into blocks of 8 × 8 pixels, this means 90 × 60 blocks, i.e., 5,400 blocks in total. That is, when the block address in the horizontal direction within one frame is denoted as i and that in the vertical direction as j, i is expressed as 1≦i≦90 and j as 1≦j≦60. Furthermore, the 5,400 blocks are grouped into N units. In Fig.19, N = 5, and the alphabetic characters in A1, B1, etc. assigned to each block indicate the names of the units. Since N = 5, there are five unit names A to E. The numeric parts in A1, B1, etc. are numbers indicating the encoding sequence within each unit. In Fig.19, encoding is performed, as a general rule, from left to right and from top to bottom of the screen. In the example shown, since there are 90 blocks in the horizontal direction, the second line from top in Fig.19 begins with the number 19 which is given by dividing 90 by N (= 5) and adding 1 to the quotient. Therefore, the block address (i, j) for the kth encoding in the uth unit can be expressed by the following equation (1) (provided that (1, 1) indicates the top left corner of the screen and (90. 60) the bottom right corner). .pa For example, when u = 2 and k = 20, the block address is given by: i = 5 × mod(20 - 1, 18) + mod [2 + [(19 × 5)/90] - 1, 5] + 1 = 5 × 1 + mod(2, 5) + 1 = 5 + 2 + 1 = 8 j = [(19 × 5)/90] + 1 = 2 Thus, the block address (8, 2) is obtained. Also, u = 2 indicates the unit name is B, and in Fig. 19, the address (8, 2) designates the block B20. Likewise, the address of the block C57, for example, can be found as follows: i = 5 × mod(57 - 1, 18) + mod [3 + [(56 × 5)/90] - 1, 5] + 1 = 5 × 2 + mod(3 + 3 - 1, 5) + 1 = 10 + 0 + 1 = 11 j = 4 which gives the address (11, 4). That is, Fig.19 shows the arrangement of blocks after performing shuffling as expressed by the equation (1). After the above shuffling, each block is sequentially fed to the DCT circuit 2 for a DCT transform and is then performed a weighting by the weighting circuit 3. The quantization bit number deciding circuit 43 calculates the activity index of each block, on the basis of which the number of quantization bits is decided for the block, the information being fed to the quantizing circuit 4. The weighted DCT coefficient is quantized by the quantizing circuit 4 using the number of quantization bits thus decided, and the quantized data is then encoded by the variable-length encoding circuit 5 using such methods as Huffman encoding, the encoded data being transferred to the buffer memory 42 for storage therein. As the above shuffling, the patterns represented by the blocks to be coded are randomly dispersed, and therefore, the code length is equalized between the units when the number of blocks is greater than a certain degree. According to the simulation conducted by the inventor, it has been found that, when the units are assigned by shuffling as shown in Fig.19, the dispersion value indicating the dispersion of the code amount is reduced to 1/5 to 1/10, compared to when a particular position on the screen is grouped together in a unit without shuffling. Next, the features of this shuffling will be considered. When considering the effects that the shuffling has on the code amount, the point is to avoid concentrating the blocks of the same pattern in the same unit, which leads to the following point when considered in conjunction with pixels. Blocks neighboring an attention block often have similar patterns, therefore, processing is performed to assign neighboring blocks to different units. This processing is described below using the concept of neighborhood. Each of the nine squares in Fig.20 represents a DCT block. There are eight blocks (A to F in Fig.20) that neighbors an attention block. These blocks are referred to as the eight neighboring blocks, of which the four blocks A, B, C, and D that are most adjacent to the attention block are called the four neighboring blocks. Referring back to Fig.19, it can be seen that when attention is given to a given block, none of its four neighboring blocks belong to the same unit as the attention block. Of its eight neighboring blocks, there are only two blocks that belong to the same unit. The four neighboring blocks that are spatially most adjacent to the attention block are thus made to belong to different units in order to prevent similar patterns from being concentrated in one unit. This serves to equalize the code amount. This effect can be achieved not only by the equation (1) but by many other methods. Figs.21 to 23 show only a few examples of the many methods. In the examples of shuffling shown in Figs.21 to 23, there are no four neighboring blocks that belong to the same unit. The block address (i, j) in Fig.21 is expressed by the following equation. .pa i = [ mod(k - 1, 90) N ] × N + [ N + 1 2 ] + (-1) mod(k,N) × [ mod(k, N) 2 ] j = mod(mod(k - 1, 90) + u - 1, N) + 1 + N × [ k - 1 90 ] For example, to find the address of the block D98, since u = 4 and k = 98, i = [{mod(97, 90)}/5] × 5 + 3 + (-1) 3 × [{mod(98, 5)}/2] = 5 + 3 - 1 = 7 j = mod (7 + 4 - 1, 5) + 1 + 5 × 1 = 0 + 1 + 5 = 6 which gives the address (7, 6). The block address (i, j) in Fig.29 is expressed by the following equation. i = mod(mod(k - 1, 90) + u, N) + [ mod(k- 1, 90) N ] × N j = [ k - 1 90 ] × N + [ N + 1 2 ] + (-1) mod(k-1, N) × [ mod(mod(k - 1, 90) , N) + 1 2 ] For example, to find the address of the block E102, since u = 5 and k = 102, i = mod(11 + 5, 5) + [11/5] × 5 = 1 + 10 = 11 j = 1 × 5 + 3 + (-1) × [{mod(11, 5) + 1}/2] = 5 + 3 - 1 = 7 which gives the address (11, 7). Likewise, there exists an equation that realizes the shuffling shown in Fig.23, along with various other equation that achieve various other shuffling formats. The circuit that performs the above shuffling operations can be implemented in the configuration shown in Fig.24. In the figure, the reference numeral 46 designates a block address calculating circuit for calculating the block horizontal address (i) and the block vertical address (j) using the above given equations, and the block address obtained by the block address calculating circuit 46 is supplied to a write/read address generating circuit 45. On the basis of the supplied block address, the write/read address generating circuit 45 outputs a writw/read address to a RAM 44. In the RAM 44, each block is arranged according to the address, thus achieving the shuffling as shown in Figs.19, 21, 22, and 23.

Claims: A video signal encoding apparatus for compressing and encoding a digital video signal to obtain coded data compressed within a predetermined data amount, comprising: block structuring means (1,41) for structuring blocks each consisting of a plurality of pixels in said video signal; transformation means (2) for performing an orthogonal transform on each of the structured blocks to obtain a transform coeficient; quantizing means (4) for quantizing the transform coefficient; encoding means (5) for encoding the quantized data to obtain coded data; storage means (6), having a storage capacity approximately equal to said predetermined data amount, for storing the obtained coded data; and control means (8) for controlling the on-off operation of said encoding means on the basis of the amount of the coded data stored in said storage means, characterized by shuffling means (9) for shuffling the blocks structured by said block structuring means (1) so that said blocks may be sequentially supplied to said transformation means (2) starting with the blocks in the center of the screen. A video signal encoding apparatus according to claim 1, characterized in that said control means (8) further controls the number of quantization bits for said quantizing means (4) on the basis of the amount of the coded data stored in said storage means. A video signal encoding apparatus according to claim 1, characterized by decision means (43) for deciding the number of quantization bits for said quantizing means on the basis of the activity index of each block and the amount of the obtained coded data; and unit structuring means (41) for structuring units each comprising a plurality of block, prior to the orthogonal transform by said transformation means (2), by shuffling the blocks in such a manner that any given shuffling block and four shuffling blocks most adjacent to said given shuffling block belong to different units. A video signal encoding apparatus according to claim 1, characterized by unit structuring means (41) for structuring units each comprising a plurality of blocks, prior to the orthogonal transform by said transformation means, by shuffling the blocks in such a manner that any given shuffling block and four shuffling blocks most adjacent to said given shuffling block belong to different units; means (31,32) for obtaining the number of events, constituted by the zero run length and nonzero value of quantized data, by scanning the quantized data; and decision means (14) for deciding the number of quantization bits for said quantizing means on the basis of the obtained number of events and the activity index of each block. A video signal encoding apparatus according to claim 1, characterized by means for cumulatively adding the code lengths of coded data, each code length being determined on the basis of the zero run length and nonzero value obtained by scanning the quantized data, and obtaining the quotient of the cumulative sum by the number of blocks; and decision means (14) for deciding the number of quantization bits for said quantizing means (4) on the basis of the obtained quotient and the activity index of each block. A video signal encoding apparatus according to claim 1, characterized by unit structuring means (41) for structuring units each comprising a plurality of blocks, prior to the orthogonal transform by said transformation means, by shuffling the blocks in such a manner that any given shuffling block and four shuffling blocks most adjacent to said given shuffling block belong to different units; means for predicting the amount of coded data to be obtained by encoding the quantized data; and event converting means (33) for converting events constituted by the zero run length and nonzero value of quantized data in accordance with the predicted amount of coded data; said encoding means (5) being provided for encoding data of each of the converted events to obtain coded data. A video signal encoding apparatus as set forth in claim 6, characterized by means (32) for counting the number of events having a nonzero value whose absolute value is smaller than a predetermined value.

Inventors: MISHIMA HIDETOSHI, MISHIMA, HIDETOSHI, Mishima, Hidetoshi, c/o Denshi Shohin Kaihatsu
Applicants: MITSUBISHI ELECTRIC CORP, MITSUBISHI DENKI KABUSHIKI KAISHA
Application year: 1992
Main classification: H04N7
IPC codes: H04N9, H04J3, H04N5, G06T9, H04N7, H04N11, H04N1