Abstract:
The invention provides a picture data decompression apparatus which reduces the time required for decompression of picture data and operates at a high speed. The picture data decompression apparatus includes a module switching section for extracting code patterns in units of n bits the compressed picture data, m decoding and dequantization modules, and an inverse orthogonal transform section for inverse orthogonal transforming decoded and dequantized data from the m decoding and dequantization means. Each of the decoding and dequantization modules decodes and dequantizes, from a code pattern in units of n bits extracted by the module switching section, only a predetermined variable length code of a single unique code pattern of n bits from among m different predetermined patterns. Each of the decoding and dequantization modules performs storage into the dequantized data buffer in order of coded coefficients without performing scanning conversion, and the inverse orthogonal transform section reads out the stored data of the dequantized data buffer designating an address and performs inverse orthogonal transform processing of the thus read out data.

Description:
This is a continuation of application Ser. No. 08/506,975 filed Jul. 28, 1995, and now U.S. Pat. No. 5,907,635 issued May 25, 1999. 
    
    
     BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     This invention relates to a coding and decoding system for picture data which employs orthogonal transform which is one of high efficiency compression coding methods, and more particularly to a picture data decompression apparatus which decompresses compressed picture data obtained by orthogonal transform, quantization and variable length coding of original picture data at a high speed. 
     2. Description of the Related Art 
     A procedure of processing of a conventional picture data decompression apparatus is illustrated in FIG.  12 . 
     Referring to FIG. 12, compressed picture data are first read in at step S 121 , and then at step S 122 , a header of the compressed picture data is analyzed to extract information necessary for decompression of the picture data such as a picture size, a number of blocks to be processed and so forth. Then at step S 123 , variable length codes of the compressed picture data are decoded in units of one block to obtain quantized orthogonal transform coefficients. At subsequent step S 124 , the quantized orthogonal transform coefficients are dequantized, and then at step S 125 , data obtained by such dequantization are written for one block into a memory, and the thus written data are read out from the memory. At step S 126 , the data thus read out are processed by inverse orthogonal transform to obtain picture data for one block. 
     The operations from the decoding processing of variable length codes at step S 123  to the inverse orthogonal transform processing at step S 126  are repeated for all of the blocks extracted in the header analysis processing at step S 122  until it is determined at step S 127  that processing for all of the blocks has been completed. Then at step S 128 , the picture data for one frame are written into a frame memory, and then the compressed picture data are decompressed. In this instance, in the decoding processing of variable length codes at step S 123 , compressed code bits are cut out by a plural number and compared with a code table, and when a coincident bit pattern is found out in the code table, coefficient data corresponding in a one-by-one corresponding relationship to the bit train in the code table can be determined. When no coincident bit pattern is found out in the code table, an additional bit is cut out, and the formerly cut out bits with the additional bit are compared with the code table again. After coefficient data are determined, they are multiplied by a quantization value for dequantization to obtain input data for inverse orthogonal transform. 
     Further, in the data writing and reading out processing at step S 125 , the data are written into the memory in order indicated by the numbers of the data construction in the block illustrated in FIG. 13, and data to be used for inverse orthogonal transform are read in order in the vertical direction and the horizontal direction of the block. 
     In the conventional picture data decompression method described above, a compressed code bit train is cut out by a plurality of bits, and the pattern of the thus cut out bits is compared with a code table. Then, if a coincident pattern is not found out in the code table, then the processing of cutting out a further plurality of bits from the compressed code bit train and comparing the thus cut out bits with the code table again is repeated until a coincident pattern is found out in the code table. Consequently, the conventional picture data compression method is disadvantageous in that it requires much processing time. 
     Further, in order to write data, which remain arranged in order as zigzag-scanned on the coding side, into a memory after dequantization, processing of scanning conversion is required, and the memory is accessed in units of one coefficient. Consequently, the conventional picture data decompression method has disadvantages also in that a very great number of processing steps are required for the microprocessor and also accessing to the memory is complicated, resulting in much processing time. 
     SUMMARY OF THE INVENTION 
     It is an object of the present invention to provide a picture data decompression apparatus which can decompress compressed data at a high speed. 
     In order to attain the object described above, according to the present invention, there is provided a picture data decompression apparatus for decompressing compressed picture data obtained by orthogonal transform, quantization and variable length coding of original picture data, comprising code pattern extraction means for extracting code patterns in units of n bits from the compressed picture data, n being an integral number greater than 1, m decoding and dequantization means each for decoding and dequantizing a code pattern from the code pattern extraction means, m being an integral number greater than 1, and inverse orthogonal transform means for inverse. orthogonal transforming decoded and dequantized data from the m decoding and dequantization means, each of the decoding and dequantization means decoding and dequantizing, from a code pattern of n bits extracted by the code pattern extraction means, only a predetermined variable length code of a single unique code pattern of n bits from among m different predetermined patterns. 
     Preferably, the code pattern extraction means includes a compressed code buffer for storing the compressed picture data, a table for defining a corresponding relationship between the m code patterns of n bits and the m decoding and dequantization means, and switching means for extracting the picture data stored in the compressed code buffer as a code pattern in units of n bits and inputting the thus extracted code pattern into a corresponding one of the decoding and decompression means referring to the table. 
     Preferably, the picture data decompression apparatus further comprises a dequantized data buffer for storing decoded and dequantized data from the m decoding and dequantization means, and each of the decoding and dequantization means includes a buffer address calculation section for calculating a storage address to the dequantized data buffer from a run length of a coded coefficient represented by all or some of bits of a code pattern of n bits inputted thereto, a dequantization calculation section for performing dequantization calculation of a level of a coded coefficient represented by all or some of bits of a code pattern of n bits inputted thereto referring to the dequantization table, and an extraction pointer updating section for updating an extraction pointer for the compressed code buffer by a number equal to a number of effective bits used by the buffer address calculation section and the dequantization calculation section from within a code pattern of n bits inputted thereto. 
     Preferably, each of the decoding and dequantization means performs storage into the dequantized data buffer in order of coded coefficients without performing scanning conversion, and the inverse orthogonal transform means reads out the stored data of the dequantized data buffer designating an address and performs inverse orthogonal transform processing of the thus read out data. 
     In the picture data decompression apparatus, the m different code patterns in units of n bits are decoded and dequantized simultaneously for individual code patterns by the m decoding and dequantization means, the code patterns can be decoded at a comparatively small number of steps, and consequently, the entire decompression processing can be performed at a higher speed than ever. 
     Further, one or a plurality of coefficients regarding data after decoding and decompression processing are stored in order of addresses into the memory without performing scanning conversion simultaneously, and upon inverse orthogonal transform, data are read in designating an address and inverse orthogonal transform of the thus read in data is performed. Consequently, decompression processing can be performed at a high speed without the necessity of processing of scanning conversion upon writing. 
     The above and other objects, features and advantages of the present invention will become apparent from the following description and the appended claims, taken in conjunction with the accompanying drawings in which like parts or elements are denoted by like reference characters. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a block diagram showing an entire construction of a picture data decompression apparatus according to a preferred embodiment of the present invention; 
     FIG. 2 is a block diagram illustrating different functions of a decoding and dequantization module in the picture data decompression apparatus of FIG. 1; 
     FIG. 3 is a flow chart illustrating an outline of a flow of picture data decompression processing of the picture data decompression apparatus of FIG. 1; 
     FIG. 4 is a diagrammatic view illustrating several code patterns handled in the picture data decompression apparatus of FIG. 1 from among 512 different 9-bit code patterns; 
     FIG. 5 is a table illustrating the relationship between a variable code, a run and a level prescribed in the MPEG; 
     FIG. 6 is a flow chart illustrating a flow of processing of the picture data compression apparatus of FIG. 1 after a code pattern of 9 bits is extracted from a compressed code buffer until the code pattern is distributed to one of m decoding and dequantization modules; 
     FIG. 7 is a flow chart illustrating a flow of processing by each of the decoding and dequantization modules shown in FIG. 6; 
     FIG. 8 is a diagrammatic view illustrating the relationship between a dequantization table and a dequantized data buffer in the picture data compression apparatus of FIG. 1; 
     FIGS.  9 (A),  9 (B) and  9 (C) are diagrammatic views illustrating different steps of processing performed by one of the decoding and dequantization modules shown in FIG. 6 in order of processing in a corresponding relationship to FIG. 8; 
     FIGS.  10 (A),  10 (B),  10 (C) and  10 (D) are diagrammatic views illustrating different steps of processing performed by one of the decoding and dequantization modules shown in FIG. 6 in order of processing in a corresponding relationship to FIG. 8; 
     FIG.  11 (A) is a diagrammatic view illustrating a writing order of data into the dequantization data buffer in the picture data decompression apparatus of FIG. 1, and 
     FIG.  11 (B) is a similar view but illustrating a reading out order of data from the dequantization data buffer; 
     FIG. 12 is a flow chart illustrating an outline of a flow of conventional picture data decompression processing; and 
     FIG. 13 is a diagrammatic view illustrating a writing order and a reading out order of data in such conventional picture data decompression processing as illustrated in FIG.  12 . 
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENT 
     Referring first to FIG. 1, there is shown an entire construction of a picture data decompression apparatus according to a preferred embodiment of the present invention. The picture data decompression apparatus shown includes a compressed code buffer  1 , a module switching section  2 , a jump table  3 , m decoding and dequantization modules  4 , a dequantization table  5 , a dequantized data buffer  6 , and an inverse orthogonal transform section  7 . 
     The compressed code buffer  1  stores compressed picture data obtained by orthogonal transform, quantization and variable length coding. The picture data are in the form of variable length codes coded by Huffman coding of picture data in order of zigzag scanning in units of a block of 8×8 picture elements discriminating a run which is a number of preceding coefficients of zero and a level which is a value of a non-zero quantized orthogonal transform coefficient. 
     The module switching section  2  extracts picture data stored in the compressed code buffer  1  in a code pattern in units of n bits and inputs the thus extracted code pattern into a corresponding one of the decoding and dequantization modules  4  referring to the jump table  3 . Code patterns which are processed by the m decoding and dequantization modules  4  are different from one another, and when the code pattern extracted from the compressed code buffer  1  is, for example, “001001000” of 9 bits, the module switching section  2  extracts an address corresponding to the code pattern from the jump table  3 , selects one of the decoding and dequantization modules  4  in accordance with the address and inputs the code pattern into the thus selected decoding and dequantization module  4 . 
     Each of the decoding and dequantization modules  4  has a module configuration by which a code pattern of n bits can be processed at a time and includes, from its functions, as shown in FIG. 2, a buffer address calculation section  8  for calculating a storage address to the dequantized data buffer  6  from a run length of a coded coefficient represented by all or some of bits of a code pattern of n bits inputted thereto, a dequantization calculation section  9  for performing a dequantization calculation of a level of a coded coefficient represented by all or some of the bits of a code pattern of n bits inputted thereto, and an extraction pointer updating section  10  for updating an extraction pointer for the compressed code buffer  1  by a number equal to the number of effective bits used by the buffer address calculation section  8  and the dequantization calculation section  9  from among an inputted n-bit code pattern. 
     FIG. 3 illustrates an outline of a flow of picture data processing where the picture data decompression apparatus shown in FIG. 1 is employed. Referring to FIG. 3, variable length coded picture data are read in at step S 31 , and a header of the compressed picture data is analyzed to extract information necessary for picture data decompression such as a picture size, a number of blocks to be processed and so forth from the compressed picture data at step S 32 . Then at step S 33 , decoding and dequantization processing of variable length codes (VLCs) in units of one block of variable length codes is performed. Here, the picture data decompression apparatus shown in FIG. 1 is characterized in that, in order to assure high speed processing, m code patterns of n bits are decoded and dequantized simultaneously for the individual code patterns. At step S 34 , data after such dequantization are written for one block into a memory, and then, data to be used for inverse orthogonal transform are read out from the memory. The thus read out data are inverse orthogonal transformed at step S 35 . Then, the steps of operations from the decoding and dequantization processing of VLCs at step S 33  to the inverse orthogonal transform processing at step S 33  are repeated for all of the blocks extracted in the header analyzing processing at step S 32 , that is, the steps of operations are repeated until it is discriminated at step S 36  that processing for all of the blocks has been completed. Then at step S 37 , the picture data for one frame are written into the frame memory, and then, the compressed picture data are decompressed. 
     In the following, an example of operation where the number n of code bits to be processed at a time is 9 bits, that is, a code pattern to be extracted from the compressed code buffer  1  by the module switching section  2  is 9 bits, will be described. In ordinary natural pictures, almost all data can be represented in codes of 9 bits or less. 
     A total of 2 9 =512 code patterns from “000000000” to “111111111” are represented with 9 bits. However, if any code pattern from among the 512 different code patterns is not specified in the code table of the MPEG (Moving Picture Experts Group), but shares a bit pattern in common with another non-specified code pattern then these non-specified patterns are treated similarly. By contrast, code patterns which are specified in the code table of the MPEG are treated independently from the non-specified code patterns. The number of different code patterns of 9 bits or less specified in the code table of the MPEG is 177. This will be described with reference to FIG.  4 . For example, with regard to four different code patterns ( 1 ) to ( 4 ) shown, the “111 pattern” pattern from the first to third bits and the “0111 pattern” from the fourth to seventh bits, both commonly included in the code patterns, are specified in the code table of the MPEG, “00” of the eighth and ninth bits in the code pattern ( 1 ), “01” in the code pattern ( 2 ) and “11” in the code pattern ( 3 ) are not specified in the code table, and accordingly, the three code patterns ( 1 ), ( 2 ) and ( 3 ) are handled as a same single pattern although the eighth and ninth bits of them are different from one another. In contrast, since “10” of the eighth and ninth bits in the code pattern ( 4 ) is included in the code table, the code pattern ( 4 ) is determined as a single independent pattern. 
     According to the MPEG, since the 177 code patterns from among the 512 code patterns are significant, the decoding and dequantization modules  4  shown in FIG. 1 are provided by 177 in number in the present picture data decompression apparatus. Further, in the MPEG, 113 VLCs which appear frequently are prepared for a pair of a run and a level of a VLC. FIG. 5 shows some of such VLCs. From among the VLCs shown, those 26 VLCs which are composed of 9 bits or less can each be decoded and quantized, using only a VLC extracted by the module switching section  2 , from a run and a level represented by the VLC since a code pattern extracted by the module switching section  2  is composed of 9 bits. Further, if a plurality of VLCs composed of 9 bits or less are included in a code pattern of 9 bits, then the VLCs can be processed at the same time. Furthermore, since the value of the level processed in each of the decoding and dequantization modules  4  is fixed, no multiplication need be performed newly upon dequantization, but a coefficient can be calculated only by bit shifting and addition. The calculation of a coefficient is given by the following equation:              coefficient   =                level                   (     fixed                 in                 value                 for                 each                 routine     )     ×                              quantization                 table                 value                   =                fixed                 value                   (       ±   1     ∼     ±   6       )                ×                                           quantization                 table                 value                                  
     FIG. 6 illustrates a flow of processing by the picture data decompression apparatus shown in FIG.  1 . Referring to FIG. 6, in order to decode VLCs for one block, a code pattern of 9 bits is read in from the compressed code buffer  1  at step S 61 . Then at step S 62 , an address is extracted from the jump table  3  using the code pattern of 9 bits thus read in as an index, and one of the decoding and dequantization modules  4  designated by the address is selected from among the 177 decoding and dequantization modules  4 . Then, at step S 63 , the code pattern of 9 bits is inputted to the thus selected decoding and dequantization modules  4  so that decoding and dequantization processing is performed for the code pattern. If the VLC (“10”) representing an EOB (End of Block) is included in the code pattern, then the control sequence returns to step S 61 . 
     FIG. 7 illustrates a flow of processing by one of the decoding and dequantization modules  4 . 
     It is assumed that the code pattern of 9 bits extracted from the compressed code buffer  1  is, for example, “000110101” and the effective bit number of the VLC is 7 bits from the first to seventh bits, and when the run length represented by “0001101” of the 7 bits is “1” and the level of it is “2”, the contents of the dequantization table  5  and the dequantized data buffer  6  regarding one block and an address pointer for them are such as illustrated in FIG.  8 . In this instance, in one of the decoding and dequantization modules  4  which corresponds to the code pattern of 9 bits “000110101”, since the run length of the VLC is “1”, the address pointer is first incremented by “1” as seen in FIG.  9 (A) by the buffer address calculation section  8  shown in FIG. 2 at step S 71  illustrated in FIG.  7 . In calculation processing for dequantization at next step S 72 , since the level is “2”, a value (“B”) of the dequantization table  5  designated by the address pointer is shifted one bit leftwardly (or multiplied by 2) by the dequantization calculation section  9  shown in FIG. 2, and a relunctant value (“2B”) is written into the corresponding address of the dequantized data buffer  6  as seen in FIG.  9 (B), whereafter the address pointer is incremented as seen in FIG.  9 (C). In pointer updating processing at next step S 73 , since the effective bit number thus processed is 7 bits, a read pointer for the compressed code buffer  1  is displaced 7 bits, thereby completing the processing by the selected decoding and dequantization module  4 . 
     In contrast, It is assumed here that the code pattern of 9 bits extracted is “011011010” and includes three VLCs, and the run length represented by the first VLC of “0110” is “1” and the level of it is “1”; the run length of the second VLC of “110” is “0” and the level of it is “1”; and the last VLC of “10” is an EOB representing an end of the block, and the effective bit number of the code pattern is 9 bits. In this instance, first at step S 71 , since the run length of the first VLC is “1”, the address pointer is incremented by 1 as seen in FIG.  10 (A), and at next step S 72 , since the level of the first VLC is “1”, a value (“D”) of the dequantization table  5  designated by the address pointer is written as it is (multiplied by 1) into the dequantized data buffer  6  as seen in FIG.  10 (B) and the address pointer is incremented as seen in FIG.  10 (C). Further, since the run length of the second VLC is “0”, the address is maintained, and since the level of the second VLC is “1”, a value (“E”) of the dequantization table  5  designated by the address pointer is written as it is (multiplied by 1) into the dequantized data buffer  6  as seen in FIG.  10 (D). Then, since the third VLC is an EOB, the decoding and decompression processing of the one block is completed, and the address pointer is transferred to a buffer for a next block, and at step S 73 , the read pointer for the compressed code buffer  1  is displaced 9 bits, by which the processing has been completed, at step S 73 , thereby ending the processing illustrated in FIG.  7 . 
     As described above, by processing decoding and dequantization of a variable length code at the time, the value used for multiplication is fixed in any of the decoding and dequantization modules  4 , and consequently, shifting and addition need not be used for calculation of a coefficient and, where the level is “1”, no multiplication need be performed. Consequently, processing of one calculation operation for each one coefficient, which is required conventionally, can be eliminated, and accordingly, high speed processing can be performed even with a CPU (central processing unit) which does not include a multiplier. 
     Further, in successive processing, in data writing and reading processing at step S 34  of FIG. 3, data after decoding and dequantization processing of variable length codes are stored successively in order of coefficients calculated in the decoding and dequantization processing of the variable codes without performing scanning conversion as seen in FIG.  11 (A). In inverse orthogonal transform processing at step S 35  in FIG. 3 by the inverse orthogonal transform section  7 , the data are read out from the dequantized data buffer  6  designating an address directly in order of numerical values illustrated in FIG.  11 (B). Consequently, there is no need of performing scanning conversion upon writing. Further, since data are successively written into the dequantized data buffer  6 , it is also possible to write a plurality of coefficients at the same time, and when compared with the conventional writing and reading processing illustrated in FIG. 13, since no address calculation processing of a memory is involved, higher speed processing can be achieved. On the other hand, since data are read out, also in the picture data decompression apparatus, at random similarly as in the conventional reading out processing, an equal processing time is required. 
     Having now fully described the invention, it will be apparent to one of ordinary skill in the art that many changes and modifications can be made thereto without departing from the spirit and scope of the invention as set forth herein.