Variable length coding method
Abstract
This record has no abstract on file.
Term
Term ended
Expired 16 November 2025, 0.9 years ago.
- Priority
- Filed
- Granted
- Expired
- Today
3 claims: 2 independent, 1 dependent
- 1Coded to variable length code the coefficient value of the frequency componentThe waySelection to select a code table based on the number information of uncoded zero coefficients indicating the number of zero coefficients corresponding to the uncoded run value among the coefficients having a coefficient value of zero.Steps andA coding step of variable-length coding the unencoded run value using the selected code table, andHave, A coding method characterized by that. 周波数成分の係数値を可変長符号化する符号化方法であって、前記係数値がゼロの係数のうち、符号化されていないラン値に対応するゼロ係数の個数を示す未符号化ゼロ係数の個数情報に基づいて符号表を選択する選択ステップと、前記選択された符号表を用いて前記符号化されていないラン値を可変長符号化する符号化ステップと、を有する、 ことを特徴とする符号化方法。
- 3It is a coding device that encodes the coefficient value of the frequency component with variable length.A means for selecting a code table based on the number information of uncoded zero coefficients indicating the number of zero coefficients corresponding to uncoded run values among the coefficients having a coefficient value of zero. It has a coding means for variable-length coding the unencoded run value using the selected code table. Coding characterized byapparatus。 周波数成分の係数値を可変長符号化する符号化装置であって、前記係数値がゼロの係数のうち、符号化されていないラン値に対応するゼロ係数の個数を示す未符号化ゼロ係数の個数情報に基づいて符号表を選択する手段と、 前記選択された符号表を用いて前記符号化されていないラン値を可変長符号化する符号化手段とを有する、 ことを特徴とする符号化装置。
Independent claims2
292 paragraphs, as filed
The present invention<u style="single">Mark</u>Numbering method<u style="single">And coding device</u>In particular, a plurality of coefficients (quantization coefficients) obtained by quantizing the frequency components of image data.<u style="single">Variable length coding</u>By processing<u style="single">Convert to coded data</u>how to<u style="single">And equipment</u>It is about.
In recent years, we have entered the multimedia era in which audio, images, and other information are handled in an integrated manner, and conventional information media, that is, means for transmitting information such as newspapers, magazines, televisions, radios, and telephones to people, has become It has come to be taken up as a target. In general, multimedia refers to expressing not only characters but also figures, sounds, especially images, etc. in association with each other at the same time. However, in order to make the above-mentioned conventional information media a target of multimedia, the information is converted into a digital format. Is an indispensable condition.
However, when the amount of information handled by each of the above information media is estimated as the amount of digital information, the amount of information per character is 1 to 2 bytes in the case of characters, whereas the amount of information per second in the case of voice is 64 kbits (telephone quality). ) Furthermore, the amount of information required for moving images is 100 Mbits (current TV reception quality) or more per second, and it is not realistic to handle the enormous amount of information as it is in digital format with the above information media. For example, videophones have already been put into practical use by the Integrated Services Digital Network (ISDN), which has a transmission speed of 64 kbps to 1.5 Mbps, but the output video of a TV camera with a large amount of information is directly used in ISDN. It is impossible to send.
Therefore, information compression technology is required. For example, in the case of videophones, the H.261 and H.263 standards internationally standardized by the ITU-T (International Telecommunication Union Telecommunication Standardization Division). Video compression technology is used. In addition, according to the MPEG-1 standard information compression technology, it is possible to put image information together with audio information on a normal music CD (compact disc).
Here, MPEG (Moving Picture Experts Group) is an international standard for digital compression of moving image signals, and MPEG-1 reduces moving image signals up to 1.5 Mbps, that is, TV signal information to about 1/100. It is a standard that compresses to. In addition, since the transmission speed for the MPEG-1 standard is mainly limited to about 1.5 Mbps, the moving image signal is 2 to 15 Mbps in MPEG-2, which is standardized to meet the demand for higher image quality. Is compressed to.
Furthermore, at present, the working group (ISO / IEC JTC1 / SC29 / WG11), which has been standardizing MPEG-1 and MPEG-2, has standardized MPEG-4, which has a higher compression ratio. Initially, MPEG-4 introduced powerful error tolerance technology that not only enables highly efficient coding at low bit rates, but also reduces subjective image quality deterioration even if transmission line errors occur. .. In addition, ITU-T is advancing standardization activities for H.26L as a next-generation image coding method, and at present, the coding method called Test Model 8 (TML8) is the latest.
FIG. 30 is a block diagram showing a conventional image coding device. The image coding device 201a blocks the input image signal Vin so as to correspond to a unit area (block) composed of a certain number of pixels, and outputs a blocked image signal BlkS, and a blocker Blk thereof. It has a frequency converter Trans that converts the frequency of the output BlkS and outputs the frequency component TransS corresponding to each block. Here, the block is a region of a predetermined size in a picture (image space), which is a unit of coding processing of an image signal, and is composed of a fixed number of pixels. Here, the image signal Vin corresponds to a moving image composed of a plurality of pictures.
Further, the image coding device 201a has a quantization device Q that quantizes the output (frequency component) TransS of the frequency converter and outputs a quantization component (quantization coefficient) QS corresponding to each block. It has a encoder RLE0a that performs variable-length coding processing on the output (quantization component) QS of the quantizer.
Next, the operation will be described. When the image signal Vin is input to the image encoding device 201a, the blocker Blk divides the input image signal Vin into block-based image signals, and the image signal corresponding to each block (blocked image). Signal) Generate BlkS. The frequency converter Trans converts the blocked image signal BlkS into a frequency component TransS using DCT (discrete cosine transform), wavelet transform, or the like. The quantizer Q quantizes the frequency component TransS based on the quantization parameter QP in a predetermined quantization step, outputs the quantization component QS, and outputs the quantization parameter QP. Then, the encoder RLE0a performs a variable-length coding process on the quantization component QS and outputs a coded stream Str0a.
FIG. 31 is a block diagram for explaining the encoder RLE0a constituting the image coding device 201a. This encoder RLE0a is a zigzag scan device Scan that converts the output (quantization component) QS of the quantizer Q having a two-dimensional array into the quantization component Coef having a one-dimensional array (that is, in a predetermined order). It also has a variable-length encoder VLC that performs variable-length coding processing on the quantization component Coef output from the zigzag scan device Scan.
When the quantization component QS output from the quantizer Q is input to such a encoder RLE0a, the zigzag scan device Scan scans the quantization component QS having a two-dimensional array from the quantizer Q. It is converted to a quantization component Coef having a one-dimensional array (predetermined order) and output.
FIG. 43 is a diagram for specifically explaining the conversion process of the quantized component QS in the zigzag scan device Scan. As shown in FIG. 43, the quantization component QS output from the quantizer Q is a two-dimensional array, that is, each quantization component QS has its horizontal frequency on the two-dimensional frequency domain Fr. It has an array arranged in a matrix according to the height of the frequency and the height of the frequency in the vertical direction.
The zigzag scan device Scan performs a process of scanning the quantization component QS having a two-dimensional array in a zigzag manner as shown by arrows Y1 to Y7, and transforms it into a quantization component Coef having a one-dimensional array. Convert. That is, by this scan process, a predetermined order along the scan path is set for a plurality of quantization components QS having a two-dimensional array.
Then, the variable-length encoder VLC uses a code table showing the correspondence between the numerical value indicating the magnitude of the quantization component and the code (code word), and the quantization component Coef output from the zigzag scan device Scan. Is assigned a code to, and the quantization component is converted into a coded stream Str0a for each block.
FIG. 32 is a block diagram for explaining an image decoding device 202a corresponding to the image coding device 201a shown in FIG. 30. The image decoding device 202a decodes the coded stream Str0a output from the conventional image coding device 201a shown in FIG.
The image decoding device 202a includes a decoder RLD0a that performs decoding processing on the coded stream Str0a output from the image coding device 201a, and an output (decoding quantization component) DQS of the decoder RLD0a. It has an inverse quantizer IQ that performs dequantization processing on the image.
Further, the image decoding device 202a includes a reverse frequency converter ITrans that performs reverse frequency conversion processing on the output (decoding frequency component) ITransS of the reverse quantizer IQ, and an output (decoding) of the reverse frequency converter ITrans. Blocked image signal) Based on DBlkS, it has a deBlk device that generates a decoded image signal Vout corresponding to each picture.
Next, the operation will be described. When the coded stream Str0a from the image coding device 201a is input to the image decoding device 202a, the decoder RLD0a performs a decoding process on the coded stream Str0a to perform the decoding quantization component DQS. Is output. The operation of the decoder RLD0a is opposite to the operation of the encoder RLE0a.
Further, the inverse quantizer IQ performs the reverse operation of the quantizer Q, that is, the operation of dequantizing the decoding quantization component DQS with reference to the quantization parameter QP, and outputs the decoding frequency component ITransS. Further, the inverse frequency converter ITrans performs the reverse operation of the frequency converter Trans, that is, the operation of restoring the decoded frequency component ITransS to the decoded image signal DBlkS corresponding to each block by using the inverse DCT or the inverse wavelet transform. Then, the deBlk device DeBlk integrates the decoded image signal DBlkS of each block and outputs the decoded image signal Vout corresponding to each picture.
FIG. 33 is a block diagram for explaining the decoder RLD0a constituting the image decoding device 202a. This decoder RLD0a performs variable-length decoding processing on the coded stream Str0a to decode the quantization component Coef corresponding to each code contained in the coded stream Str0a. And an inverse zigzag scan device IScan that restores the decoding quantization component DQS having a two-dimensional array from the decoding quantization component Coef having a one-dimensional array output from the variable length decoder VLD. ing.
In such a decoder RLD0a, the variable-length decoder VLD decodes the coded stream Str0a by the reverse operation of the variable-length encoder VLC, and the quantization component Coef corresponding to the code (codeword). Is output. Then, the inverse zigzag scan device IScan operates in the opposite manner to the zigzag scan device Scan, and the quantization component Coef having a one-dimensional array output from the variable length decoder VLD is converted into a decoding quantum having a two-dimensional array. It is restored to the conversion component DQS and output to the above inverse quantizer IQ.
Patent Document 1 discloses a method of dividing an image signal into a luminance signal and a color difference signal and performing variable length coding processing.
By the way, a plurality of quantization coefficients in which a certain order is set corresponding to each of the above blocks have a plurality of coefficients (0 coefficients) whose values are 0 after a coefficient whose value is not 0 (non-zero coefficient). It is highly redundant data such as continuous data. Therefore, in the coding of such a quantization coefficient, a method of coding by excluding the redundant information, for example, a run value indicating the number of consecutive 0 coefficients and a non-following 0 coefficient A run-length coding method is used in which the quantization coefficient is encoded using a level value indicating the value of the 0 coefficient.
Hereinafter, a conventional image coding apparatus using the run-length coding method will be described. FIG. 34 is a block diagram showing a conventional image coding device that performs run-length coding. This image coding device 201b encodes the output (quantization component) QS of the quantizer Q by performing run-length coding instead of the encoder RLE0a in the image coding device 201a shown in FIG. It is provided with a run-length encoder RLE0b that outputs a stream Str0b, and other configurations are the same as those of the image encoding device 201a.
Further, the operation of the image coding device 201b is different from that of the image coding device 201a only in the operation of the encoder RLE0b.
FIG. 35 is a block diagram showing a specific configuration of the encoder RLE0b of the image coding device 201b. Like the above-mentioned encoder RLE0a, this run-length encoder RLE0b is a quantum having a one-dimensional array (that is, a predetermined order) of the output (quantization component) QS of the quantizer Q having a two-dimensional array. It has a zigzag scan device Scan that converts to the quantized component Coef.
Then, this run length encoder RLE0b measures the number of continuous quantization component (0 coefficient) Coefs whose value is 0, and outputs a run value Run indicating the number of continuous 0 coefficients. The run measuring instrument RunCal and the level measuring instrument LevCal that measures the value of the quantization component Coef (non-zero coefficient) whose value is not 0 following the 0 coefficient and outputs the level value Lev indicating the value of the non-zero coefficient. And have.
Further, this run length encoder RLE0b is a variable length encoder LevVLC that outputs a code string (level value code string) LStr by subjecting the level value Lev, which is the output of the level measuring instrument LevCal, to variable length coding processing. And the variable length encoder RunVLC that outputs the code string (run value code string) RStr by applying variable length coding processing to the run value Run that is the output of the run measuring instrument RunCal, and the level value code string LStr. It has a multiplexing device MUX that multiplexes the run value code string RStr for each block and outputs the multiplex coded stream Str0b.
Next, the operation will be described. The zigzag scanner Scan converts the quantization component QS having a two-dimensional array output from the quantizer Q into a quantization component Coef having a one-dimensional array (in a predetermined order) and outputs it. The conversion process of the quantized component QS by the zigzag scan device Scan is performed in the same manner as that of the encoder RLE0a of the image coding device 201a.
Then, the run measuring instrument RunCal measures the number of consecutive 0 coefficients based on the quantization component Coef output from the zigzag scan device Scan, and outputs a run value Run indicating the number. Further, the level measuring instrument LevCal measures the value of the non-zero coefficient following the continuous 0 coefficient based on the quantization component Coef output from the zigzag scan device Scan, and obtains the level value Lev indicating this value. Output.
Here, when the run measuring instrument RunCal detects the highest frequency component (the last of the non-zero coefficients) in the target block to be processed, it generates a special value called EOB (the end of the block). Then, the higher frequency components after that notify that the values are all 0.
Further, the variable-length encoder RunVLC performs a variable-length coding process for assigning a code (code word) to the run value by a code table or arithmetic calculation for the run value Run which is the output of the run measuring instrument RunCal. The code string RStr is output, and the variable-length encoder LevVLC uses a code table or arithmetic calculation for the level value Lev, which is the output of the level measuring instrument LevCal. The code string LStr is output after performing variable-length coding processing.
Then, the multiplexing device MUX multiplexes the code string LStr and the code string RStr for each block and outputs a multiplex coded stream Str0b.
Here, the multiplexing process of the code string LStr and the code string RStr is, for example, for each block, for all the level values corresponding to the target block after the code string RStr for all the run values corresponding to the target block. The code string LStr is followed, or the code string LStr for all level values corresponding to the target block is followed by the code string RStr for all run values corresponding to the target block .
A plurality of quantization coefficients having a certain order in this way, a run value Run indicating the number of quantization components (0 coefficients) Coefs whose values are 0, and a quantum whose value is not 0 following the 0 coefficients. In an image encoder that encodes using a level value Lev that indicates the value of the quantization component Coef (non-zero coefficient), multiple quantization coefficients should be encoded with high coding efficiency by eliminating the redundant information. Can be done.
FIG. 36 is a block diagram for explaining an image decoding device 202b corresponding to the image coding device 201b shown in FIG. 34. The image decoding device 202b decodes the coded stream Str0b output from the conventional image coding device 201b shown in FIG. 34.
The image decoding device 202b performs run-length decoding processing on the coded stream Str0b output from the image coding device 201b instead of the decoding supply RLD0a in the image decoding device 202a shown in FIG. 32. It is provided with the run-length decoder RLD0b to be applied, and other configurations are the same as those of the image decoding apparatus 202a.
Further, the operation of the image decoding device 202b is different from that of the image decoding device 202a only in the operation of the decoder RLD0b.
FIG. 37 is a block diagram showing a specific configuration of the run-length decoder RLD0b of the image decoding device 202b. This run-length decoder RLD0b is a separator DMUX that separates the code string LStr corresponding to the level value and the code string RStr corresponding to the run value from the multiple coding stream Str0b output from the image coding device 201b. And, the variable length decoder LevVLD that performs variable length decoding processing on the code string LStr to restore the level value Lev, and the variable length decoding process that performs variable length decoding processing on the code string RStr to restore the run value Run. An inverse zigzag scan device IScan that restores the decoding quantization component DQS having a two-dimensional array from the variable length decoder RunVLD and the decoding quantization component having a one-dimensional array represented by the level value Lev and the run value Run. And have.
Next, the operation will be described. In the image decoding device 202b, the run-length decoder RLD0b operates in the opposite manner to the run-length encoder RLE0b. That is, the run-length decoder RLD0b separates the code string LStr corresponding to the level value and the code string RStr corresponding to the run value from the multi-coded stream Str0b.
Then, the variable-length decoder LevVLD decodes the code string LStr corresponding to the level value by the reverse operation of the variable-length encoder LevVLC, and outputs the level value Lev. Further, the variable-length decoder RunVLD decodes the code string RStr corresponding to the run value by the reverse operation of the variable-length encoder RunVLC, and outputs the run value Run.
The inverse zigzag scan device IScan operates in the opposite direction to the zigzag scan device Scan, from a quantization component having a one-dimensional array represented by the above level value Lev and a run value Run to a decoding quantization component having a two-dimensional array. Restore the DQS and output it to the above inverse quantizer IQ. However, unlike the reverse zigzag scanr IScan shown in FIG. 33, this reverse zigzag scanr IScan (see FIG. 37) has a level value Lev and a run value Run, and therefore the reverse zigzag scanr IScan shown in FIG. 37. Has the function of converting the coefficients represented by the level value Lev and the run value Run into the quantization component Coef.
The decoding process for decoding a plurality of quantization coefficients having a certain order in this way is followed by a run value Run indicating the number of quantization component (0 coefficient) Coefs whose value is 0, and the 0 coefficient. In an image decoding device that uses a level value Lev that indicates the value of the quantization component Coef (non-zero coefficient) whose value is not 0, the redundant information is eliminated by run-length coding of multiple quantization coefficients. The coded data obtained by coding with high coding efficiency can be satisfactorily decoded.
Hereinafter, another example of the conventional image coding apparatus using the run-length coding method will be described. FIG. 38 is a block diagram showing another example of an image coding apparatus using a conventional run-length encoder. Almost all conventional image coding devices that comply with standards such as MPEG, ITU H.261, and H.263 and the currently being developed H.26L draft standard (TML8) have the configuration shown in Fig. 38. ..
Similar to the image coding device 201b shown in FIG. 34, the image coding device 201c encodes the quantization coefficient using the run value and the level value, but the image coding device 201c is an image. Instead of separately variable-length coding the run value and the level value as in the coding device 201b, the variable-length coding process is applied to the pair consisting of the run value and the level value (run level pair). ..
That is, in the image coding device 201c, similarly to the image coding device 201b, the blocker Blk into which the image signal Vin is input, the frequency converter Trans that frequency-converts the output BlkS, and the output of the converter are used. (Frequency component) It has a quantizer Q that quantizes TransS. Then, the image coding device 201c performs run-length coding for converting the run-level pair consisting of the run value and the level value into a variable-length code for the output (quantization component) QS of the quantizer. It has a length encoder RLE0c.
Next, the operation will be described. The blocker Blk divides the image signal Vin into block-based image signals to generate a pixel value component (blocked image signal) BlkS. The frequency converter Trans converts the pixel value component BlkS into a frequency component TransS using DCT (discrete cosine transform), wavelet transform, or the like. The quantizer Q quantizes the frequency component TransS based on the quantization parameter QP, outputs the quantization component QS, and outputs the quantization parameter Q. The run-length encoder RLE0c applies run-length coding to the quantization component QS and outputs a coded stream Str0c.
Here, the block is a region of a predetermined size in a picture, which is a unit of coding processing of an image signal, and is composed of a fixed number of pixels. Further, here, the run-length coding includes a run value indicating the number of continuous quantization components (0 coefficient) whose value is 0, and a quantization component whose value is not 0 following the 0 coefficient. Processing to convert a pair with a level value indicating a (non-zero coefficient) value into a variable length code, in other words, one variable length code (codeword) for the above run value and level value pair (run level pair) This is the process of allocating.
Next, the run-length encoder RLE0c will be described in detail. FIG. 39 is a block diagram showing a conventional run-length encoder RLE0c. Similar to the run-length encoder RLE0b shown in FIG. 35, this run-length encoder RLE0c is a one-dimensional array (that is, a predetermined array) of the output (quantization component) QS of the quantizer Q having a two-dimensional array. A zigzag scan device Scan that converts to a quantization component Coef with (order) and a run measuring device that measures the number of continuous quantization component (0 coefficient) Coefs whose value is 0 and outputs a run value Run. It has a RunCal and a level measuring instrument LevCal that measures the value of the quantization component Coef (non-zero coefficient) whose value is not 0 following the 0 coefficient and outputs the level value Lev.
Then, this run length encoder RLE0c calculates the code number Code corresponding to the pair of the level value Lev and the run value Run by a code table or arithmetic calculation based on the outputs of the run measuring instrument RunCal and the level measuring instrument LevCal. It has a run-level code converter RunLevEnc and a variable-length encoder VLC that assigns a code word to a code number Code and generates a coded stream Str0c corresponding to the above image signal Vin.
Next, the operation will be described. In this run-length encoder RLE0c, like the run-length encoder RLE0b, the zigzag scan device Scan has a one-dimensional array of the quantization component QS having a two-dimensional array output from the quantizer Q (predetermined). It is converted to a quantization component Coef having (order of) and output.
FIG. 43 is a diagram for specifically explaining the conversion process of the quantized component QS in the zigzag scan device Scan. As shown in FIG. 43, the quantization component QS output from the quantizer Q is a two-dimensional array, that is, each quantization component QS has its horizontal frequency on the two-dimensional frequency domain Fr. It has an array arranged in a matrix according to the size of the components and the size of the frequency components in the vertical direction.
The zigzag scan device Scan performs a process of scanning the quantization component QS having a two-dimensional array in a zigzag manner as shown by arrows Y1 to Y7, and transforms it into a quantization component Coef having a one-dimensional array. Convert. That is, by this scan process, a predetermined order along the scan path is set for a plurality of quantization components QS having a two-dimensional array.
Then, the run measuring instrument RunCal measures the number of consecutive 0 coefficients based on the quantization component Coef output from the zigzag scan device Scan, and outputs a run value Run indicating the number. Further, the level measuring instrument LevCal measures the value of the non-zero coefficient following the continuous 0 coefficient based on the quantization component Coef output from the zigzag scan device Scan, and obtains the level value Lev indicating this value. Output. Here, when the run measuring instrument RunCal detects the highest frequency component (the last of the non-zero coefficients) in the target block to be processed, it generates a special value called EOB (the end of the block). Then, the higher frequency components after that notify that the values are all 0.
Further, the runlevel code converter RunLevEnc calculates the code number Code corresponding to the pair of the level value Lev and the run value Run by a code table or arithmetic calculation based on the outputs of the run level measuring instrument RunCal and the level measuring instrument LevCal. calculate. The variable-length encoder VLC encodes the code number Code obtained by the converter RunLevEnc, that is, assigns a code word (bit string) to the code number Code and generates a coded stream Str0.
FIG. 42 shows an example of a code table used in the run-length encoder RLE0c. The code table (first code table) T1 shown in FIG. 42 shows the code table of the DC component of the color difference signal conforming to the draft H.26L standard (TML8) under development. This code table T1 is a regular build VLC that can calculate the code number corresponding to the pair of level value and run value by arithmetic operation from the level value and run value, and the level value and run in arithmetic operation. It consists of an irregular part (table look up VLC) in which the code number corresponding to the pair of values cannot be calculated. A bit string (not shown) as a codeword corresponding to one-to-one is assigned to each code number Code, but a short code word is assigned to the code number Code having a small value.
Next, a conventional image decoding device corresponding to the image coding device 201c will be described. FIG. 40 is a block diagram showing an image decoding device 202c using the conventional run-length decoder RLD0c. The image decoding device 202c decodes the coded stream Str0c output from the conventional image coding device 201c shown in FIG. 39.
Similar to the image decoding device 202b shown in FIG. 36, the image decoding device 202c decodes the quantization coefficient using the run value and the level value, and the image decoding device 202c is the above-mentioned image. Variable-length decoding of run values and level values, as in the decoding device 202b, is not performed separately for run values and level values, but variable-length decoding of pairs consisting of run values and level values (run-level pairs). It is the one that performs the conversion.
That is, the image decoding device 202c performs a run-length decoding process using a run-level pair consisting of a run value and a level value on the coded stream Str0c output from the image coding device 201c. It has a decoder RLD0c. Further, the image decoding device 202c is the same as the image decoding device 202b, and is a dequantizer IQ that performs dequantization processing on the output (decoding quantization component) DQS of the run length decoder RLD0c. Based on the inverse frequency converter ITrans that performs inverse frequency conversion processing on the output (decoding frequency component) ITransS of the inverse quantizer IQ and the output (decoded pixel value component) DBlkS of the inverse frequency converter ITrans. It has a deBlk device that generates a decoded image signal Vout corresponding to each picture.
Next, the operation will be described. In the image decoding device 202c, the run-length decoder RLD0c operates in the opposite manner to the run-length encoder RLE0c. That is, the run-length decoder RLD0c performs run-length decoding processing on the coded stream Str0c and outputs the decoding quantization component DQS. The inverse quantizer IQ outputs the decoding frequency component ITransS by performing the operation opposite to that of the quantizer Q, that is, the operation of dequantizing the decoding quantization component DQS with reference to the quantization parameter QP. The inverse frequency converter ITrans operates in the opposite manner to the frequency converter Trans, that is, the decoded pixel value signal (decoded blocked image signal) DBlkS corresponding to each block by using the inverse DCT or the inverse wavelet transform of the decoding frequency component ITransS. Perform the operation to restore to. The inverse blocker DeBlk integrates the decoded pixel value component DBlkS of each block and outputs the decoded image signal Vout corresponding to each picture.
Next, the run-length decoder RLD0c will be described in detail. FIG. 41 is a block diagram for explaining a specific configuration of the run-length decoder RLD0c.
This run-length decoder RLD0c performs variable-length decoding processing on the coded stream Str0c to obtain a code number Code corresponding to each code (codeword) contained in the coded stream Str0c. Based on the chemical device VLD, the run level acquirer RunLevDec that acquires the pair of the level value Lev and the run value Run corresponding to the code number Code, and the paired level value Lev and the run value Run, the level value Lev. It has an inverse zigzag scan device IScan that restores the decoding quantization component DQS having a two-dimensional array from the decoding quantization component having a one-dimensional array represented by the run value Run.
Next, the operation will be described. In this run-length decoder RLD0c, the variable-length decoder VLD decodes the coded stream Str0c by the reverse operation of the variable-length encoder VLC, and obtains the code number Code corresponding to the code word (bit string). Output. The runlevel acquirer RunLevDec outputs the paired level Lev value and run value Run corresponding to the code number Code by referring to the code table or by arithmetic operation in the reverse operation of the runlevel code converter RunLevEnc. To do. The inverse zigzag scan device IScan operates in the opposite direction to the zigzag scan device Scan, and from the quantization component having a one-dimensional array represented by the above paired level value Lev and run value Run, the decoding quantum having a two-dimensional array. The chemical component DQS is restored and output to the above inverse quantizer IQ.
In Patent Document 2, a plurality of coefficients having a certain order, a run value Run indicating the number of quantization component (0 coefficient) Coefs whose value is 0, and a value following the 0 coefficient are 0. A run-length coding method for coding using a level value Lev indicating the value of a non-quantized component Coef (non-zero coefficient) is disclosed.
Further, Patent Document 3 describes that in a method of predictively coding digital video data, when a differential motion vector value is encoded using a variable length coding table, the variable length is changed according to the magnitude of the differential motion vector value. A method of switching the coding table (VLC table) is disclosed.
Further, as another method of variable-length coding of a pixel value, arithmetic coding is known in which variable-length coding is performed by an arithmetic operation using the probability that a pixel value takes a predetermined value. In arithmetic coding, since the code can be derived from the probability, the probability table in which the probability corresponding to each event is described corresponds to the VLC table. In Non-Patent Document 1, the pixel value of the pixel to be coded is arithmetically coded by switching the probability table based on the prediction method (context) of the pixel to be coded predicted from the pixel values of the peripheral pixels thereof. The method is described.<patcit num="1"><text>Japanese Unexamined Patent Publication No. 6-311534</text></patcit><patcit num="2"><text>Japanese Patent Application Laid-Open No. 6-237184</text></patcit><patcit num="3"><text>Japanese Patent No. 3144456 (Japanese Patent Laid-Open No. 8-79088)</text></patcit><nplcit num="1"><text>Written by Koichi Miki, "All about MPEG-4", published by Kogyo Chosakai, September 30, 1998, first edition, first edition, p.69-73</text></nplcit>
<p> The encoder RLE0a of the conventional image coding apparatus 201a described above encodes a plurality of quantization coefficients obtained by quantizing the frequency components of image data in a variable length for each fixed processing unit (block). However, it uses a fixed code table that shows a plurality of correspondences between numerical information indicating the magnitude of each quantization coefficient and a code (code word), and variable length coding processing by this encoder. Then, there is a problem that the redundant information existing in the quantization coefficient, which is the data to be processed, cannot be sufficiently removed, and there is still room for improving the compression rate.</p><p> Further, like the encoders RLE0b and RLE0c of the conventional image coding devices 201b and 201c, the number of quantization component (0 coefficient) Coefs whose values are 0 can be used for variable-length coding of a plurality of quantization coefficients. Even in a run-length encoder that uses a run value indicating the value of Coef (non-zero coefficient) following the 0 coefficient and a level value indicating the value of the non-zero quantization component Coef (non-zero coefficient), the variable length coding process is performed. The removal of redundant information present in the quantization factor was not sufficient.</p><p> Further, the decoder RLD0a of the conventional image decoding apparatus 202a or the run-length decoders RLD0b, RLD0c of the conventional image decoding apparatus 202b, 202c are used in the variable-length coding process for the quantization coefficient. It corresponds to a encoder that cannot sufficiently remove the redundant information existing in the conversion coefficient.</p><p> Further, in the method of predictively coding digital video data, when the difference motion vector value is encoded using the variable length coding table, the variable length coding table (VLC table) is used according to the magnitude of the difference motion vector value. ) Is an effective coding table in the variable-length coding process for data having the characteristic that multiple 0 coefficients are continuous, such as the quantization coefficient obtained by quantizing the frequency component of the image signal. I didn't know how to switch.</p><p> The present invention has been made to solve the above-mentioned problems, and the redundancy of information existing in the data (quantization coefficient) to be subjected to the variable length coding process is measured by the characteristics of the quantization coefficient and the quantization. A coding method and a coding method that can be removed more effectively depending on the situation of the coding process for the coefficient, and thereby further improve the compression rate of the image signal or the like.<u style="single">Mark</u>Issue<u style="single">apparatus</u>The purpose is to get.</p>
<p> The coding method according to the present invention is<u style="single">Coded to variable length code the coefficient value of the frequency component</u>The way<u style="single">Selection to select a code table based on the number information of uncoded zero coefficients indicating the number of zero coefficients corresponding to the uncoded run value among the coefficients having a coefficient value of zero.</u>Steps and<u style="single">It has a coding step of variable-length coding the unencoded run value using the selected code table.</u>It is characterized by that.</p><p> The coding method according to the present invention is<u style="single">In the coding method, in the selection step, when the coefficient value of the frequency component is variable-length coded in block units, a code table is selected based on the number information of the uncoded zero coefficient.</u>It is characterized by that.</p><p> The present invention<u style="single">An uncoded zero coefficient that indicates the number of zero coefficients corresponding to unencoded run values among the coefficients whose coefficient values are zero, which is a coding device for variable-length coding the coefficient values of frequency components. It has a means for selecting a code table based on the number information and a coding means for variable-length coding the unencoded run value using the selected code table.</u>It is characterized by that.</p>
<p> According to the variable-length coding method according to the present invention, it is a variable-length coding method for encoding coefficient data composed of a plurality of coefficients, and for each of the above coefficients, numerical information indicating the magnitude of the coefficient and numerical information indicating the magnitude of the coefficient. A coding step of performing a coding process for converting the coefficient data into coded data composed of a plurality of codes using a plurality of code tables indicating correspondence with the code is included, and the coding step includes the code table. , Information about the processed coefficient that has been encoded, and a code table selection step that selects according to at least one of the parameters related to the generation of the coefficient, and the unencoded coefficient that has not been encoded. On the other hand, since it includes a code assignment step of assigning a code using the selected code table, redundant information included in the coefficient data to be subjected to the variable length coding process is the coefficient. It will be effectively removed by selecting a code table according to the characteristics of the coefficients that make up the data and the status of the coding process for the coefficient, which will increase the coding efficiency of the variable length coding process for image signals and the like. There is an effect that can be improved.</p><p> According to the present invention, in the variable length coding method, the coefficient is obtained by quantizing the frequency component of the image data based on the quantization step corresponding to the image data, and is obtained by the code table. Since the selection step is characterized in that the code table used in the code assignment step is selected according to the size of the quantization step, the coding is always suitable for the size of the quantization step. There is an effect that the code table that maximizes the efficiency can be used.</p><p> According to the present invention, in the variable-length coding method, the coding process for the coefficient is a run value indicating the number of consecutive 0 coefficients whose value is 0, and a non-zero coefficient value following the 0 coefficient. The level value indicating the above is converted into a code, and the code table selection step is performed from a plurality of code tables indicating the correspondence between the run value and the code according to the size of the quantization step. A first selection process for selecting one code table and a second selection for selecting one code table according to the size of the quantization step from a plurality of code tables showing the correspondence between the level value and the code. At least one of the processes is selected, and the code assignment step is based on the selected code table, and the run value corresponding to the uncoded coefficient that has not been coded and the run value corresponding to the uncoded coefficient. Since the code is assigned to at least one of the level values, the code assignment to at least one of the run value and the level value is always the sum of the assigned codes suitable for the size of the quantization step. There is an effect that it can be performed by using a code table that minimizes the number of bits.</p><p> According to the present invention, in the variable length coding method, the coding process for the above coefficient is a run value indicating the number of consecutive 0 coefficients whose value is 0, and a value of a non-zero coefficient following the 0 coefficient. A run level pair consisting of a level value indicating the above is converted into a code, and the code table selection step is a plurality of codes indicating the correspondence between the run level pair and the code according to the size of the quantization step. One code table is selected from the code table, and the code allocation step is based on the selected code table, and the run level pair corresponding to the uncoded coefficient which has not been subjected to the coding process is used. Since the code is assigned, the code is always assigned to the run-level pair using a code table suitable for the size of the quantization step and which minimizes the total number of bits of the code to be assigned. There are effects that can be done.</p><p> According to the present invention, in the variable length coding method, the code table selection step selects the code table used in the code allocation step according to the information regarding the processed coefficient to which the code processing has been performed. Therefore, there is an effect that the coding process for the quantization coefficient can always be performed using a code table suitable for the number of uncoded coefficients and having the maximum coding efficiency.</p><p> According to the present invention, in the variable-length coding method, the coding process for the coefficient is a run value indicating the number of consecutive 0 coefficients whose value is 0, and a non-zero coefficient value following the 0 coefficient. The level value indicating the above is converted into a code, and the code table selection step converts a plurality of code tables indicating the correspondence between the run value and the code into processed coefficients that have been coded. From the first selection process, which selects one code table according to the information about the corresponding run value, and the plurality of code tables showing the correspondence between the above level values and the codes, to the processed coefficients that have been coded. The selection process of at least one of the second selection processes for selecting one code table according to the information about the corresponding level value is performed, and the code allocation step is based on the selected code table. Since the code is assigned to at least one of the run value and the level value corresponding to the unencoded coefficient not subjected to the above-mentioned coding process, the code for at least one of the run value and the level value is assigned. There is an effect that the allocation can always be performed using a code table that maximizes the coding efficiency and is suitable for the number of uncoded coefficients.</p><p> According to the present invention, in the variable length coding method, the code table selection step is the number of processed run values to which a code is assigned from a plurality of code tables indicating the correspondence between the run values and the codes. One code table is selected accordingly, and the code assignment step assigns a code to the uncoded run value to which the code is not assigned based on the selected code table. As a feature, there is an effect that the code can always be assigned to the run value by using the code table that is suitable for the number of uncoded run values and has the maximum coding efficiency.</p><p> According to the present invention, in the variable-length coding method, the coding process for the coefficient is a run value indicating the number of consecutive 0 coefficients whose value is 0, and a non-zero coefficient value following the 0 coefficient. The run level pair consisting of the level value indicating the above is converted into a code, and the code table selection step is performed according to the information about the run level pair corresponding to the processed coefficient subjected to the coding process. One code table is selected from a plurality of code tables indicating the correspondence between the level pair and the code, and the code allocation step is based on the selected code table and is not subjected to the coding process. Since the code is assigned to the run-level pair corresponding to the uncoded coefficient, the code assignment to the run-level pair is always suitable for the number of uncoded coefficients, and the coding efficiency is maximum. There is an effect that can be performed by using the code table.</p><p> According to the present invention, in the variable length coding method, the coefficient is obtained by quantizing the frequency component of the image data based on the quantization step corresponding to the image data, and is the coding. The step is characterized in that the coding process for the coefficient is performed so that the code is assigned to the plurality of coefficients constituting the coefficient data in descending order of the frequency component of the corresponding image data. There is an effect that the total number of bits of the code assigned to the coefficient can be further reduced.</p><p> According to the present invention, in the variable-length coding method, the coding process for the coefficients includes a run value indicating the number of consecutive 0 coefficients whose values are 0 for each block consisting of a certain number of coefficients. The run level pair consisting of the level value indicating the value of the non-zero coefficient following the 0 coefficient is converted into a code, and the code table selection step is coded in the target block to be the target of the coding process. Correspondence between the run level pair and the code is determined according to the sum of the number of processed coefficients that have been processed and the number of uncoded non-zero coefficients that have not been encoded in the target block. One code table is selected from the plurality of code tables shown, and the code assignment step assigns a code to the run-level pair corresponding to the uncoded coefficient in the target block based on the selected code table. Since it is characterized by being assigned, it is possible to use a code table that excludes pairs of run values and level values that are unlikely to appear, which has the effect of improving variable-length coding efficiency. is there.</p><p> According to the present invention, in the variable length coding method, the coding process for the above coefficient is a run value indicating the number of consecutive 0 coefficients whose value is 0, and a non-zero coefficient value following the 0 coefficient. A run level pair consisting of a level value indicating the above is converted into a code, and the coding step converts the correspondence between the run level pair and the corresponding code into a run value forming the run level pair. Based on the first code table shown according to the combination of the and level values, the correspondence between the run level pair and the code in the first code table is regularly changed, and the first code table is A code table processing step for creating a second code table having a different correspondence between the run-level pair and the code is included, and the code table selection step has processed one of the first and second code tables. Since the data is selected according to at least one of the information on the coefficient and the parameter on the generation of the coefficient, the first code table used when assigning a code to the pair of the run value and the level value is the first. And the optimum one of the second code tables is selected, and the redundancy of the information existing in the data to be processed can be removed more effectively. As a result, the compression rate of the image signal or the like can be further improved, and its practical value is high.</p><p> According to the present invention, in the variable length coding method, in the first and second code tables, each run level pair is associated with a shorter code as the level value forming the run level pair is smaller. The second code table is characterized in that, on average, the level value of the run level pair to which a short code is associated is smaller than that of the first code table. There is an effect that it is effective when the quantization parameter of the coefficient constituting the processing target data is large.</p><p> According to the present invention, in the variable length coding method, in the first and second code tables, each run level pair is associated with a shorter code as the run value forming the run level pair is smaller. The second code table is characterized in that, on average, the run value of the run level pair to which the short code is associated is smaller than that of the first code table. This is effective when the quantization parameters of the coefficients constituting the processing target data are small.</p><p> According to the present invention, in the variable-length coding method, the coding process for the coefficient is to convert the run-level pair into a code for each block consisting of a certain number of coefficients, and the code table processing. The step is characterized in that the second code table is created according to the number of processed coefficients to which the coding process is performed in the target block to be coded. , The second code table can be made to exclude the pair of the run value and the level value that may not appear, which has the effect of further improving the variable length coding efficiency.</p><p> According to the present invention, in the variable length coding method, the code assignment step assigns a code to the runlevel pair in order from the runlevel pair corresponding to the high coefficient of the frequency component of the image data. Therefore, the improvement of the variable-length coding efficiency by excluding the pair of the run value and the level value which is unlikely to appear in the second code table should be made larger. Has the effect of being able to.</p><p> According to the present invention, in the variable length coding method, the second code table is regularly calculated out of a plurality of correspondences between runlevel pairs and codes included in the first code table. Since only the possible correspondence is changed, there is an effect that the arithmetic processing required for creating the second code table can be reduced.</p><p> According to the present invention, in the variable length coding method, the coefficients constituting the coefficient data are obtained by quantizing the frequency component of the image data based on the quantization step according to the image data. The code table selection step is a code table switching step in which switching between the first code table and the second code table is performed based on the size of the quantization step. As a code table used for the variable length coding process of the coefficients constituting the target data, there is an effect that a code table suitable for the quantization step can be used.</p><p> According to the present invention, in the variable length coding method, the code table selection step is a code table switching step in which switching between the first code table and the second code table is performed based on a switching instruction signal. Since the coding step is characterized in that the switching instruction signal is coded, a code table used for the variable length coding process of the coefficient is used according to the characteristics of the data to be processed. It has the effect of being able to switch.</p><p> According to the present invention, in the variable-length coding method, the coding process for the coefficient is to convert the run-level pair into a code for each block consisting of a fixed coefficient, and the code table processing step. The above-mentioned second code table is obtained by the number of processed coefficients in the target block to be encoded and the uncoded uncoded in the target block. Since it is created according to the sum of the number of non-zero coefficients, the second code table is assumed to exclude the pair of run value and level value that may not appear. This has the effect of further improving the variable length coding efficiency.</p><p> According to the variable-length coding device according to the present invention, it is a variable-length coding device that encodes coefficient data composed of a plurality of coefficients, and for each of the above coefficients, numerical information indicating the magnitude of the coefficient and numerical information. The coding unit includes a coding unit that performs a coding process for converting the coefficient data into coded data composed of a plurality of codes using a plurality of code tables indicating correspondence with the code, and the coding unit uses the code table. , Information on the processed coefficient that has been subjected to the coding process, and a code table selection unit that selects according to at least one of the parameters related to the generation of the coefficient, and the uncoded coefficient that has not been subjected to the coding process. On the other hand, since it has a code assigning unit for assigning a code using the selected code table, redundant information included in the coefficient data to be subjected to the variable length coding process can be obtained. It is effectively removed by selecting a code table according to the characteristics of the coefficients constituting the coefficient data and the state of the coding process for the coefficient, and thereby the coding efficiency of the variable length coding process for the image signal or the like. Has the effect of being able to greatly improve.</p><p> According to the present invention, in the variable length coding apparatus, the coefficient is obtained by quantizing the frequency component of the image data based on the quantization step corresponding to the image data, and is obtained by the code table. Since the selection unit is characterized in that the code table used in the code assignment unit is selected according to the size of the quantization step, the coding unit is always suitable for the size of the quantization step. There is an effect that the code table that maximizes the efficiency can be used.</p><p> According to the present invention, in the variable length coding apparatus, the code table selection unit selects the code table used in the code allocation unit according to the information regarding the processed coefficient to which the coding process has been performed. Therefore, there is an effect that the coding process for the quantization coefficient can always be performed using a code table suitable for the number of uncoded coefficients and having the maximum coding efficiency.</p><p> According to the present invention, in the variable length coding apparatus, the coding process for the coefficient is a run value indicating the number of consecutive 0 coefficients whose value is 0, and a non-zero coefficient value following the 0 coefficient. The level value indicating the above is converted into a code, and the code table selection unit converts the processed run value to which the code is assigned from a plurality of code tables indicating the correspondence between the run value and the code. One code table is selected according to the number, and the code assigning unit assigns a code to the uncoded run value to which the code is not assigned based on the selected code table. Therefore, there is an effect that the code can always be assigned to the run value by using the code table that is suitable for the number of uncoded run values and has the maximum coding efficiency.</p><p> According to the present invention, in the variable length coding apparatus, the coefficient is obtained by quantizing the frequency component of the image data based on the quantization step corresponding to the image data, and is the coding. The unit is characterized in that the coding process for the coefficient is performed so that the code is assigned to the plurality of coefficients constituting the coefficient data in descending order of the frequency component of the corresponding image data. There is an effect that the total number of bits of the code assigned to the coefficient can be further reduced.</p><p> According to the program storage medium according to the present invention, the storage medium stores a program that performs a variable-length coding process for encoding coefficient data composed of a plurality of coefficients by a computer, and the above program is used for each of the above coefficients. Then, using a plurality of code tables indicating the correspondence between the numerical information indicating the magnitude of the coefficient and the code, a coding step of performing a coding process for converting the coefficient data into coded data composed of a plurality of codes is performed. The coding step includes a coding table selection step of selecting the coding table according to at least one of the information about the processed coefficient subjected to the coding process and the parameter related to the generation of the coefficient, and the above-mentioned code. Since it includes a code assignment step of assigning a code to an uncoded coefficient that has not been subjected to the coding process using the above-selected code table, it is subject to the variable-length coding process. Variable-length coding with high coding efficiency that can effectively remove redundant information contained in the coefficient data by selecting a code table according to the characteristics of the coefficients that make up the coefficient data and the status of coding processing for the coefficient. There is an effect that the processing can be realized by software.</p><p> According to the variable-length decoding method according to the present invention, it is a variable-length decoding method for decoding coded data composed of a plurality of codes obtained by variable-length coding of coefficient data composed of a plurality of coefficients. , Decoding that restores the coded data to coefficient data consisting of the plurality of coefficients by using a plurality of code tables indicating the correspondence between the numerical information indicating the magnitude of the coefficient and the code for each of the above codes. The decoding step includes a decoding step of performing the coding process, and the decoding step selects the code table according to at least one of the information regarding the processed coefficient subjected to the coding process and the parameter regarding the generation of the coefficient. It is characterized in that it includes a code table selection step and a numerical value acquisition step of acquiring numerical information corresponding to the undecoded code that has not been subjected to the decoding process by using the selected code table. , Variable-length decoding processing corresponding to variable-length coding processing with high coding efficiency that can effectively remove redundant information contained in the coefficient data and encode the coefficient data by switching the code table. Has the effect of being able to do.</p><p> According to the present invention, in the variable-length decoding method, the coefficient is obtained by quantizing the frequency component of the image data based on the quantization step corresponding to the image data, and is obtained by the above-mentioned code table. Since the selection step is characterized in that the code table used in the numerical value acquisition step is selected according to the size of the quantization step, the coding is always suitable for the size of the quantization step. There is an effect that the variable-length decoding process corresponding to the variable-length coding process using the code table that maximizes the efficiency can be performed.</p><p> According to the present invention, in the variable length decoding method, the decoding process for the code includes the code, a run value indicating the number of consecutive 0 coefficients whose value is 0, and a non-following the 0 coefficient. It is restored to a level value indicating the value of the 0 coefficient, and the code table selection step is 1 from a plurality of code tables showing the correspondence between the run value and the code, depending on the size of the quantization step. A first selection process for selecting one code table and a second selection for selecting one code table according to the size of the quantization step from a plurality of code tables showing the correspondence between the level value and the code. At least one of the processes is selected, and the numerical value acquisition step is based on the selected code table and has a run value corresponding to the undecoded code that has not been decoded. Since it is characterized by acquiring at least one of the level values, the sign assignment for at least one of the run value and the level value is always the total bit of the assigned sign, which is suitable for the magnitude of the quantization step. There is an effect that the variable-length decoding process corresponding to the variable-length coding process performed by using the code table having the minimum number can be performed.</p><p> According to the present invention, in the variable length decoding method, the decoding process for the code includes a run value indicating the number of consecutive 0 coefficients whose value is 0, and a non-following the 0 coefficient. It is restored to a run level pair consisting of a level value indicating the value of the 0 coefficient, and the code table selection step shows the correspondence between the run level pair and the sign according to the size of the quantization step. One code table is selected from a plurality of code tables, and the numerical value acquisition step is a run level corresponding to the undecoded code which has not been subjected to the decoding process based on the selected code table. Since the pair is acquired, the code assignment to the run-level pair is always performed by using a code table suitable for the size of the quantization step and which minimizes the total number of bits of the allocated code. There is an effect that the variable length decoding process corresponding to the variable length coding process to be performed can be performed.</p><p> According to the present invention, in the variable length decoding method, the code table selection step selects the code table used in the numerical value acquisition step according to the information regarding the processed coefficient obtained by the decoding process. Therefore, the quantization coefficient is always variable according to the variable-length coding process that encodes using a code table that is suitable for the number of undecoded coefficients and has the maximum coding efficiency. There is an effect that long decoding processing can be performed.</p><p> According to the present invention, in the variable length decoding method, the decoding process for the code includes a run value indicating the number of consecutive 0 coefficients whose value is 0, and a non-following the 0 coefficient. It restores to a level value indicating the value of the 0 coefficient, and the code table selection step is a processed run value obtained by decoding processing from a plurality of code tables indicating the correspondence between the run value and the code. According to the information about the processed level value obtained by the decoding process from the first selection process of selecting one code table according to the information about the code table and the plurality of code tables showing the correspondence between the above level values and the codes. At least one of the second selection processes for selecting one code table is selected, and the numerical value acquisition step is subjected to the decoding process based on the selected code table. Since it is characterized in that at least one of the run value and the level value corresponding to the undecoded code that has not been obtained is acquired, the code assignment for at least one of the run value and the level value is always assigned to the undecoded coefficient. There is an effect that the variable-length decoding process corresponding to the variable-length coding process performed by using the code table that maximizes the coding efficiency suitable for the number of the above can be performed.</p><p> According to the present invention, in the variable length decoding method, the code table selection step is the number of processed run values obtained by the decoding process from a plurality of code tables indicating the correspondence between the run values and the codes. One code table is selected according to the above, and the numerical value acquisition step acquires a run value corresponding to the undecoded code that has not been subjected to the decoding process based on the selected code table. Therefore, the variable-length coding process is always performed by using a code table that is suitable for the number of undecoded run values and has the maximum coding efficiency. There is an effect that the variable length decoding process corresponding to the above can be performed.</p><p> According to the present invention, in the variable length decoding method, the decoding process for the code includes a code, a run value indicating the number of consecutive 0 coefficients whose value is 0, and a non-zero following the 0 coefficient. It restores to a run-level pair consisting of a level value indicating the value of the coefficient, and the code table selection step sets the run-level pair and the code according to the information about the run-level pair obtained by the decoding process. One code table is selected from a plurality of code tables indicating the correspondence of the above, and the numerical value acquisition step is based on the selected code table, and the undecoded code which has not been subjected to the decoding process is selected. Since the corresponding run-level pair is acquired, the code is always assigned to the run-level pair by using a code table that is suitable for the number of undecoded coefficients and has the maximum coding efficiency. There is an effect that the variable length decoding process corresponding to the variable length coding process to be performed can be performed.</p><p> According to the present invention, in the variable length decoding method, the coefficient is obtained by quantizing the frequency component of the image data based on the quantization step corresponding to the image data, and the decoding is performed. The step is characterized in that the decoding process for the code is performed so that the numerical information corresponding to the code is acquired in order from the one having the highest frequency component of the corresponding image data. There is an effect that the variable length decoding process corresponding to the variable length coding process capable of further reducing the total number of bits of the assigned code can be performed.</p><p> According to the present invention, in the variable length decoding method, the decoding process for the code is continuous with the code having a value of 0 for each block consisting of a certain number of coefficients constituting the coefficient data. It restores to a run level pair consisting of a run value indicating the number of 0 coefficients and a level value indicating a non-0 coefficient value following the 0 coefficient, and the code table selection step is the target of the decoding process. The number of processed coefficients obtained by the decoding process of the block in the target block and the number of undecoded non-zero coefficients obtained by the decoding process of the block in the target block. One code table is selected from a plurality of code tables indicating the correspondence between the run level pair and the code according to the sum, and the numerical value acquisition step is the target based on the selected code table. Since it is characterized in that the run level pair corresponding to the undecoded coefficient in the block is acquired, it is highly efficient to use a code table excluding the run value / level value pair that is unlikely to appear. There is an effect that the variable length decoding process corresponding to the variable length coding process can be realized.</p><p> According to the present invention, in the variable length decoding method, the decoding process for the code includes a code constituting the coded data, a run value indicating the number of consecutive 0 coefficients whose value is 0, and a run value. The decoding step restores the run level pair consisting of the level value indicating the value of the non-zero coefficient following the 0 coefficient, and the decoding step determines the correspondence between the run level pair and the corresponding code. Based on the first code table shown according to the combination of the run value and the level value forming the run level pair, the correspondence between the run level pair and the code in the first code table is regularly changed. The first code table includes a code table processing step for creating a second code table in which the correspondence between the run level pair and the code is different, and the code table selection step includes the first and second codes. Since one of the tables is selected according to at least one of the information regarding the processed coefficient and the parameter regarding the generation of the coefficient, the code is converted into a pair of a run value and a level value. As the code table to be used in this case, the most suitable code table of the first and second code tables will be selected. As a result, the variable-length decoding process corresponding to the variable-length coding process that more effectively removes the redundancy of the information existing in the data to be processed can be satisfactorily performed, and its practical value is high. ..</p><p> According to the present invention, in the variable length decoding method, in the first and second code tables, each runlevel pair is associated with a shorter code as the level value forming the runlevel pair is smaller. The second code table is characterized in that, on average, the level value of the runlevel pair to which a short code is associated is smaller than that of the first code table. This is effective when the quantization parameter related to the coefficients constituting the processing target data is large.</p><p> According to the present invention, in the variable length decoding method, in the first and second code tables, each runlevel pair is associated with a shorter code as the run value forming the runlevel pair is smaller. The second code table is characterized in that, on average, the run value of the runlevel pair to which the short code is associated is smaller than that of the first code table. This is effective when the quantization parameters of the coefficients constituting the processing target data are small.</p><p> According to the present invention, in the variable length decoding method, the decoding process for the code performs restoration of the code to a run-level pair for each block composed of a certain number of coefficients constituting the coefficient data. In the code table processing step, the second code table is created according to the number of processed coefficients obtained by the decoding process in the target block to be the decoding process. Since it is characterized by being present, the second code table can be made to exclude the pair of run value and level value which is unlikely to appear, whereby a more efficient variable-length coding process can be performed. There is an effect that the variable length decoding process corresponding to the above can be realized.</p><p> According to the present invention, in the variable length decoding method, in the numerical value acquisition step, the runlevel pairs corresponding to the symbols are acquired in order from the runlevel pair having the highest frequency component of the corresponding image data. Therefore, the second code table is a variable-length coding process in which the compression ratio is further improved by excluding the pair of run value and level value that may not appear. There is an effect that the corresponding variable length decoding process can be realized.</p><p> According to the present invention, in the variable length decoding method, the second code table is regularly calculated out of a plurality of correspondences between runlevel pairs and codes included in the first code table. Since only the possible correspondence is changed, there is an effect that the arithmetic processing required for creating the second code table can be reduced.</p><p> According to the present invention, in the variable length decoding method, the coefficients constituting the coefficient data are obtained by quantizing the frequency component of the image data based on the quantization step according to the image data. The code table selection step is characterized in that the switching between the first code table and the second code table is performed based on the size of the quantization step. As a code table used for the variable length decoding process of the constituent coefficients, there is an effect that a code table suitable for the quantization step can be used.</p><p> According to the present invention, in the variable length decoding method, the code table selection step includes a code table switching step of switching between the first code table and the second code table based on a switching instruction signal. The decoding step is characterized in that the decoding process of the switching instruction signal is performed. Therefore, a code table used for the variable length decoding process is set according to the characteristics of the data to be processed. It has the effect of being able to switch.</p><p> According to the present invention, in the variable-length decoding method, the decoding process for the code is to restore the code to a run-level pair for each block consisting of a certain coefficient constituting the coefficient data. In the code table processing step, the second code table is subjected to the number of processed coefficients obtained by the decoding process for the block in the target block to be decoded, and the processing coefficient in the target block. Since it is created according to the sum of the number of undecoded non-zero coefficients that has not yet been obtained in the decoding process for the block, it is unlikely to appear as the second code table. There is an effect that the variable length decoding process corresponding to the more efficient variable length coding process can be realized by using the one excluding the pair of the run value and the level value.</p><p> According to the variable length decoding device according to the present invention, it is a variable length decoding device that decodes coded data composed of a plurality of codes obtained by variable length coding of coefficient data composed of a plurality of coefficients. , Decoding that restores the coded data to coefficient data consisting of the plurality of coefficients by using a plurality of code tables indicating the correspondence between the numerical information indicating the magnitude of the coefficient and the code for each of the above codes. The decoding unit includes a decoding unit that performs the decoding process, and the decoding unit selects the code table according to at least one of the information regarding the processed coefficient subjected to the decoding process and the parameter related to the generation of the coefficient. It is characterized by having a code table selection unit and a numerical value acquisition unit that acquires numerical information corresponding to the undecoded code that has not been decoded by using the selected code table. Therefore, the coefficient data can be encoded by effectively removing the redundancy of the information of the coefficient data by switching the code table. Variable-length decoding corresponding to the variable-length coding process with high coding efficiency. There is an effect that processing can be performed.</p><p> According to the present invention, in the variable length decoding apparatus, the above coefficient is obtained by quantizing the frequency component of the image data based on the quantization step corresponding to the image data, and is obtained by the above code table. Since the selection unit is characterized in that the code table used in the numerical value acquisition unit is selected according to the size of the quantization step, the coding unit is always suitable for the size of the quantization step. There is an effect that the variable-length decoding process corresponding to the variable-length coding process using the code table that maximizes the efficiency can be performed.</p><p> According to the present invention, in the variable length decoding apparatus, the code table selection unit selects the code table used in the numerical value acquisition unit according to the information regarding the processed coefficient obtained by the decoding process. Therefore, the quantization coefficient is always variable according to the variable-length coding process that encodes using a code table that is suitable for the number of undecoded coefficients and has the maximum coding efficiency. There is an effect that long decoding processing can be performed.</p><p> According to the present invention, in the variable length decoding apparatus, the decoding process for the code is performed on the code, a run value indicating the number of consecutive 0 coefficients whose value is 0, and a non-following the 0 coefficient. The code table selection unit restores the level value to the level value indicating the value of the 0 coefficient, and the code table selection unit uses the processed run value obtained by the decoding process from a plurality of code tables indicating the correspondence between the run value and the code. One code table is selected according to the number of the code tables, and the numerical value acquisition unit is based on the selected code table and has a run value corresponding to the undecoded code that has not been subjected to the decoding process. The variable length code is always assigned to the run value by using a code table suitable for the number of undecoded run values and having the maximum coding efficiency. There is an effect that the variable length decoding process corresponding to the conversion process can be performed.</p><p> According to the present invention, in the variable length decoding apparatus, the coefficient is obtained by quantifying the frequency component of the image data based on the quantization step corresponding to the image data, and the decoding is performed. The unit is characterized in that the decoding process for the code is performed so that the numerical information corresponding to the code is acquired in order from the one having the highest frequency component of the corresponding image data. There is an effect that the variable length decoding process corresponding to the variable length coding process capable of further reducing the total number of bits of the assigned code can be performed.</p><p> According to the program storage medium according to the present invention, a computer performs a variable-length decoding process for decoding coded data consisting of a plurality of codes obtained by variable-length coding the coefficient data consisting of a plurality of coefficients. The above-mentioned program uses a plurality of code tables indicating the correspondence between the numerical information indicating the magnitude of the above-mentioned coefficient and the above-mentioned code for each of the above-mentioned codes, and the above-mentioned coded data is stored in the storage medium. The decoding step includes a decoding step of performing a decoding process for restoring the coefficient data composed of the plurality of coefficients, and the decoding step includes information on the processed coefficient obtained by performing the coding process on the code table, and the coefficient. Numerical value to acquire the numerical information corresponding to the undecoded code that has not been decoded and the code table selection step that is selected according to at least one of the parameters related to the generation of the above-selected code table. Since it includes an acquisition step, the coefficient data can be encoded by effectively removing redundant information included in the coefficient data by switching the code table. Variable with high coding efficiency. There is an effect that the variable length decoding process corresponding to the long coding process can be realized by software.</p>
First, the basic principle of the present invention will be described. In general, when the quantization step is coarse, the absolute value of the quantization component becomes small, so that the run (the length following the 0 coefficient) becomes long and the absolute value of the level value (the value of the non-zero coefficient) becomes small. On the contrary, when the quantization step is dense, the absolute value of the quantization component becomes large, so that the run becomes short and the absolute value of the level value becomes large.
Further, if the variable-length coding of many quantization components has already been completed in the block to be processed and the number of uncoded quantization components is small, the number of uncoded quantization components is exceeded. Run values cannot occur. Therefore, if the pair of the run value and the level value is removed from the code table, the coding efficiency is improved.
From this point of view, the present invention has a magnitude of the quantization coefficient according to the situation of the variable-length coding process or the variable-length decoding process for the quantization coefficient and the parameter (quantization parameter) related to the generation of the quantization coefficient. This is to switch the code table showing the correspondence between the numerical information indicating the code and the code, and thereby more effectively remove the redundant information existing in the data (quantization coefficient) to be processed for the variable length coding process. It is a thing.
For example, the switching of the code table is performed on the code table (first code table) used in the conventional variable-length coding or decoding process and the data to be processed created based on the first code table. This is done by selecting one of the second code table and the optimized second code table according to the processing status for the quantization coefficient. However, it is not always necessary to create the second code table based on the first code table, and the code table that is a candidate for selection may be a code table suitable for the data to be processed.
Hereinafter, embodiments of the present invention will be described with reference to FIGS. 1 to 25. (Embodiment 1) FIG. 1 is a block diagram for explaining an image coding apparatus according to the first embodiment of the present invention. The image coding device 101 of the first embodiment performs variable-length coding processing on the output (quantization component) QS of the quantizer Q in the conventional image coding device 201b shown in FIG. 34 to code. Instead of the run-length encoder RLE0b that outputs the quantized stream Str0b, the output QS of the quantizer Q is subjected to variable-length coding processing based on the quantization parameter QP and the VLC selection signal VlcSel. It is equipped with a run-length encoder RLE1 that outputs a quantized stream Str1.
Here, the quantization parameter QP is a parameter representing the magnitude of the quantization step, and the quantization step is substantially proportional to the quantization parameter QP. In other words, when the quantization parameter QP is large, the absolute value of the quantization component becomes small, so the 0 run of the quantization component (the length of consecutive lines of 0 components) becomes long, and the level value. The absolute value of is smaller.
FIG. 2 is a block diagram for explaining a specific configuration of the run-length encoder RLE1. This run-length encoder RLE1 has a one-dimensional array (that is, a one-dimensional array (that is, a quantization component) QS of the quantizer Q having a two-dimensional array, similar to the conventional run-length encoder RLE0b shown in FIG. The number of consecutive 0 coefficients is measured by measuring the number of consecutive quantized component (0 coefficient) Coefs whose value is 0 and the zigzag scan device Scan that converts to the quantized component Coef having a predetermined order). The run measuring instrument RunCal that outputs the run value Run indicating the value of, and the level value indicating the value of the non-0 coefficient by measuring the value of the quantization component Coef (non-zero coefficient) whose value is not 0 following the 0 coefficient. It has a level measuring instrument LevCal that outputs Lev.
FIG. 3 (a) shows a two-dimensional array of the quantized components Q1 to Q16 corresponding to one block, and FIG. 3 (b) shows an arrow indicating the scan path of the quantized components Q1 to Q16 by the zigzag scanner Scan. It is shown by A1 to A15. Here, the quantization component Q1 is a quantization of the DC component of the frequency component of the image signal, and the quantization components Q2 to Q16 are the quantization of the AC component of the frequency component of the image signal. Further, FIG. 3 (c) shows a one-dimensional array (coding order) of the quantization components Q1 to Q16 obtained by the zigzag scan by the zigzag scan device Scan, and FIG. 3 (d) shows the quantization component. A one-dimensional array of specific numerical values indicating the sizes of Q1 to Q16 is shown.
Then, the run length encoder RLE1 rearranges the level value Lev, which is the output of the level measuring instrument LevCal, and the run value Run, which is the output of the run measuring instrument RunCal. It has a replacement device Rreodr and a number measuring instrument NumClc that measures and outputs the number Cnum of uncoded coefficients in the target block based on the output of the run measuring instrument RunCal. FIG. 3 (e) shows the order of run values and level values obtained from the numerical values of the quantized components having the sequences shown in FIGS. 3 (c) and 3 (d), and FIG. 3 (f) shows the order of the rearranged values. The order of run values and level values is shown.
Further, the run-length encoder RLE1 performs a variable-length coding process on the output ROLev of the ordinal reorderer Lreodr based on the above-mentioned quantization parameter QP and switching signal VldSel, and performs a code string (level value code string). ) The variable length encoder LVLC that outputs LStr and the output RORun of the order reorderer Rreodr are subjected to variable length coding processing based on the number of unencoded coefficients Cnum, and the code string (run value). It has a variable length encoder RVLC that outputs a code string) RStr, and a multiplexing device MUX that multiplexes the code string LStr and the code string RStr for each block and outputs a multiple coded stream Str1.
FIG. 4 is a diagram illustrating the variable length coding process of the variable length encoder LVLC, FIG. 4 (a) is an explanatory diagram of the flow of the variable length coding process of the level value, and FIG. 4 (b) is an explanatory diagram. It is explanatory drawing of the code table used in the variable length coding process of the level value.
FIG. 4 (b) shows the array Alev of the level value (Level), the sequence Ca1 of the code (code word) when the quantization parameter QP is smaller than the threshold value, and the code (code word) when the quantization parameter QP is equal to or more than the threshold value. The sequence Ca2 of (codeword) is shown.
Here, the code table L1 is composed of an array Alev of level values (Level) and an array Ca1 of codes (codewords) when the quantization parameter QP is smaller than the threshold value, and the quantization parameter QP is more than the threshold value. When it is small, the correspondence between the level value (Level) and the code is shown. The code table L2 is composed of an array Alev of level values (Level) and an array Ca2 of codes (codewords) when the quantization parameter QP is equal to or greater than the threshold value, and the quantization parameter QP is equal to or greater than the threshold value. The correspondence between the level value (Level) and the code in the case is shown.
FIG. 5 is a diagram illustrating the variable length coding process of the variable length encoder RVLC, FIG. 5 (a) is an explanatory diagram of the flow of the variable length coding process of the run value, and FIG. 5 (b) is an explanatory diagram. It is explanatory drawing of the code table used in the variable length coding process of the run value.
Figure 5 (b) shows the array Arun of the run value (Run), the sequence Cb1 of the code (codeword) when the number of uncoded 0 coefficients is 1, and the number of uncoded 0 coefficients is 2. Sequence Cb2 of code (codeword) in a certain case, array Cb3 of code (codeword) when the number of uncoded 0 coefficients is 3, and code when the number of uncoded 0 coefficients is 4. (Codeword) array Cb4, code (codeword) array Cb5 when the number of uncoded 0 coefficients is 5, and code (codeword) when the number of uncoded 0 coefficients is 6. Cb6, an array Cb7 of codes (codewords) when the number of uncoded 0 coefficients is 7, and an array Cb8 of codes (codewords) when the number of uncoded 0 coefficients is 8 or more. Is shown.
Here, the code table R1 is composed of an array Arun of run values (Run) and an array Cb1 of codes (codewords) when the number of uncoded 0 coefficients is 1, and is composed of uncoded 0. The correspondence between the run value (Run) and the code when the number of coefficients is 1 is shown. Similarly, in the code tables R2, R3, R4, R5, R6, R7, the array Arun of the run value (Run) and the number of uncoded 0 coefficients are 2,3,4,5,6,7, respectively. It is composed of an array of case codes (codewords) Cb2, Cb3, Cb4, Cb5, Cb6, Cb7, and the number of uncoded 0 coefficients is 2,3,4,5,6,7. , The correspondence between the run value (Run) and the code is shown. Further, the code table R8 is composed of an array Arun of run values (Run) and an array Cb8 of codes (codewords) when the number of uncoded 0 coefficients is 8 or more, and is composed of uncoded 0. The correspondence between the run value (Run) and the code when the number of coefficients is 8 or more is shown.
Next, the operation will be described. In the image coding device 101 of the first embodiment, the blocking device Blk, the frequency converter Trans, and the quantizer Q are the conventional image coding device 201a (see FIG. 30) or the image coding device 201b (FIG. 30). It works in the same way as (see 34).
That is, when the image signal Vin is input to the image coding device 101a, the blocker Blk divides the input image signal Vin into blocks, and the image signal (pixel value component) BlkS corresponding to each block. To generate. The frequency converter Trans converts the pixel value component BlkS into a frequency component TransS using DCT (discrete cosine transform), wavelet transform, or the like. The quantizer Q quantizes the frequency component TransS based on the quantization parameter QP in a predetermined quantization step, outputs the quantization component QS, and outputs the quantization parameter QP. The run-length encoder RLE1 applies variable-length coding processing to the quantization component QS and outputs a coded stream Str1.
Hereinafter, the operation of the run-length encoder RLE1 will be described in detail. The zigzag scan device Scan performs a zigzag scan of the quantization component QS (that is, a plurality of quantization coefficients Q1 to Q16 having a two-dimensional array shown in FIG. 3A) output from the quantizer Q. The quantization component QS is converted into the quantization component Coef and output. Here, in the zigzag scan of the quantization component QS, a plurality of quantization coefficients Q1 to Q16 having a two-dimensional array shown in FIG. 3 (a) are set to the paths shown by arrows A1 to A15 in FIG. 3 (b). By scanning along the line, an array of a plurality of quantization coefficients Q1 to Q16 is converted into a one-dimensional array (processing order) shown in FIG. 3 (c). Note that Fig. 3 (d) shows an array of specific numerical values (20, -10,5,0,2,0,0,0,1) of the plurality of quantization coefficients Q1 to Q16 subjected to the above zigzag scan. , 0,0,0, -1,0,0,1) are shown.
The run measuring instrument RunCal measures the number of consecutive 0 coefficients based on the quantization component Coef output from the zigzag scan device Scan, and outputs a run value Run indicating the number. In FIG. 3 (e), the specific run values sequentially output from the run measuring instrument RunCal are shown in the order of output (0,0,0,1,3,3,2). On the other hand, the level measuring instrument LevCal measures the value of the non-zero coefficient following the continuous 0 coefficient based on the quantization component Coef output from the zigzag scan device Scan, and outputs the level value Lev indicating this value. To do. Figure 3 (e) shows the specific level values that are sequentially output from the level measuring instrument LevCal in the order in which they are output (20, -10, 5, 2, 1, -1,1). ..
The order sorter Rreodr rearranges the order of the run values sequentially output from the run measuring instrument RunCal in the reverse order of the output order. Figure 3 (f) shows the specific order of the run values (2,3,3,1,0,0,0) sorted by the order sorter Rreodr. In addition, the number measuring instrument NumClc measures the number of uncoded coefficients based on the run value Run output from the run measuring instrument RunCal, and outputs the number of uncoded coefficients (number of uncoded coefficients) Cnum. To do. On the other hand, the order sorter Lreodr rearranges the order of the level values sequentially output from the level measuring instrument LevCal in the reverse order of the output order. Figure 3 (f) shows the specific order of level values (1, -1,1,2,5, -10,20) sorted by the order sorter Lreodr.
The variable length encoder RVLC is based on the uncoded 0 coefficient number Cnum output from the number measuring instrument NumClc, with respect to the rearranged run value RORun which is the output of the order sorter Rreodr. A variable-length coding process for assigning a code (codeword) to the run value RORun is performed using a plurality of code tables showing the correspondence between the run value and the code (codeword), and the run value code string RStr is output. On the other hand, the variable-length encoder LVLC is the output of the above-mentioned order sorter Lreodr based on the quantization parameter QP from the quantizer Q and the selection signal VlcSel instructing the selection of the variable-length coding from the outside. A variable-length coding process that assigns a code (codeword) to a level value ROLev using a plurality of code tables showing the correspondence between the level value and the code (codeword) for a certain sorted level value ROLev. And output the level value code string LStr.
Then, the multiplexing device MUX multiplexes the level value code string LStr and the run value code string RStr for each block and outputs the multiplex coded stream Str1.
Here, in the multiplexing process of the level value code string LStr and the run value code string RStr, for example, for each block, after the code string RStr for all the run values corresponding to the target block, all corresponding to the target block. The code string LStr for the level value of is followed, or the code string LStr for all the level values corresponding to the target block is followed by the code string RStr for all the run values corresponding to the target block. Hereinafter, the operation of the variable length encoder LVLC will be described in detail with reference to FIG.
The variable-length encoder LVLC acquires the quantization parameter QP from the quantizer Q (step Sa1), and the value of the acquired quantization parameter QP is held in the variable-length encoder LVLC. It is determined whether or not it is equal to or higher than the threshold value of the quantization parameter QP (step Sa2).
As a result of this determination, if the value of the obtained quantization parameter QP is smaller than the threshold of the quantization parameter QP, the code table L1 consisting of the level value array Alev and the code (codeword) array Ca1 (Fig. 4 (Fig. 4 (Fig. 4)) b) Refer to) (see step Sa3), and if the value of the obtained quantization parameter QP is equal to or greater than the threshold of the quantization parameter QP, from the level value array Alev and the code (codeword) array Ca2. Select the code table L2 (see Figure 4 (b)) (step Sa4).
After that, the variable length encoder LVLC determines whether or not there is an unencoded level value Lev in the target block (step Sa5), and if there is an unencoded level value Lev in the target block, the selected code. Using the table, the level value Lev coding process, that is, the process of assigning the corresponding code to the level value is performed (step Sa6), and then the above step Sa5 process is performed. On the other hand, as a result of the determination in step Sa5, if there is no uncoded level value Lev in the target block, the variable length coding process for the level value Lev is terminated.
The variable-length encoder LVLC is specified regardless of the magnitude of the quantization parameter QP when the variable-length coding process using a specific code table is specified in advance by the VLC selection signal VlcSel. The variable length coding process for the level value is performed using the code table of.
Next, the operation of the variable length encoder RVLC will be described in detail with reference to FIG. The variable-length encoder RVLC determines whether or not there is an uncoded non-zero coefficient in the target block based on the output (number of uncoded coefficients) Cnum of the number measuring instrument NumClc, and this (step Sb1). If there is an uncoded non-zero coefficient as a result of the determination, the number of uncoded 0 coefficients in the target block is measured based on the output Cnum from the number measuring instrument NumClc (step Sb2).
Then, the variable-length encoder RVLC selects a code table according to the number of measured uncoded 0 coefficients (step Sb3). Specifically, when the number of uncoded 0 coefficients is 1, select code table R1 (see Fig. 5 (b)) consisting of an array of run values Arun and an array of codes (codewords) Cb1. .. Similarly, if the number of uncoded 0 coefficients is 2, the code table R2 is selected, if the number is 3, the code table R3 is selected, and if the number is 4, the code table R4 is selected. Further, when the number of uncoded 0 coefficients is 5, the code table R5 is selected, when the number is 6, the code table R6 is selected, and when the number is 7, the code table R7 is selected. Then, when the number of uncoded 0 coefficients is 8 or more, the code table R8 is selected.
Next, the variable-length encoder RVLC uses the selected code table to perform the coding process of the run value Run, that is, the process of assigning the corresponding code to the run value (step Sb4), and then the above. Perform the determination process in step Sb1.
If there is no uncoded non-zero coefficient as a result of the determination in step Sb1, the variable-length coding process for the run value is terminated.
Subsequently, a specific example will be described of the point that the coding efficiency is improved by selecting the code table based on the quantization parameter at the time of variable length coding of the level value as described above. In FIG. 6, when the quantization parameter QP is relatively small, that is, the output (level value) of the rearranged level measuring instrument LevCal output from the order reorderer Lreodr is shown in FIG. 3 (f). Indicates the total number of bits of the code assigned to these level values when 1, -1,1,2,5, -10,20.
When it is determined that the quantization parameter QP is equal to or higher than the threshold value and the code table L2 is used, a code (code word) is assigned to each level value as shown in FIG. 6 (a), and the assigned code is assigned. The total number of bits of is 75 bits.
On the other hand, when it is determined that the quantization parameter QP is smaller than the threshold value and the code table L1 is used, a code (code word) is assigned to each level value as shown in FIG. 6 (b). The total number of bits of the code is 47 bits.
In this way, when the value of the quantization parameter QP is relatively small, the frequency of occurrence of the quantization coefficient with a large value is high, so even a level value with a relatively large absolute value compared to the code table L2 can be used. It is effective to select the code table L1 to which the short code is associated on average in order to improve the coding efficiency.
FIG. 7 shows that when the quantization parameter QP is relatively large, that is, the output (level value) of the rearranged level measuring instrument LevCal output from the ordinal reorderer Lreodr is shown in FIG. 3 (f). Unlike 1, -1,1,1,1,-2,3, it shows the total number of bits of the code assigned to these level values. When it is determined that the quantization parameter QP is equal to or higher than the threshold value and the code table L2 is used, a code (code word) is assigned to each level value as shown in FIG. 7 (a), and the assigned code is assigned. The total number of bits of is 15 bits.
On the other hand, when it is determined that the quantization parameter QP is smaller than the threshold value and the code table L1 is used, a code (code word) is assigned to each level value as shown in FIG. 7 (b). The total number of bits of the code is 17 bits.
In this way, when the value of the quantization parameter QP is relatively large, the frequency of occurrence of the quantization coefficient with a large value is low, so the concentration is concentrated on the level value whose absolute value is relatively small compared to the code table L1. It is effective to select the code table L2 to which the short codes are associated with each other in order to improve the coding efficiency.
FIG. 8 is assigned to these run values when the run values output from the run measuring instrument RunCal are 0,0,0,1,3,3,2 as shown in FIG. 3 (e). Indicates the total number of bits of the code. When the code table R8 shown in FIG. 5 is always used without rearranging the run values and switching the code table as in the run length encoder RLE1, each run value is described in FIG. 8 (a). A code (code word) is assigned as shown in, and the total number of bits of the assigned code is 21 bits.
When the run values are rearranged and the code table is switched according to the number of uncoded 0 coefficients as in the run length encoder RLE1, each run value is as shown in FIG. 8 (b). A code (code word) is assigned, and the total number of bits of the assigned code is 13 bits. Here, each time a code is assigned to one run value, the number of uncoded coefficients is reduced by the value obtained by adding 1 to the run value encoded immediately before. This is because there is always one non-zero coefficient after a single or consecutive zero coefficient. Also, the uncoded 0 coefficient obtained from the plurality of sorted run values corresponding to one block, which is output from the order sorter Rreodr, is 15. This is because the block to be processed always has one non-zero coefficient.
When the run values are not rearranged as in the run length encoder RLE1 and only the code table is switched according to the number of uncoded 0 coefficients, the run values are shown in Fig. 8 (c). Codes (codewords) are assigned as shown, and the total number of bits assigned to the code is 20 bits.
As described above, in the image coding apparatus 101 of the first embodiment, the quantization coefficient obtained by quantizing the frequency component of the image signal is continuous, and the quantization component (0 coefficient) Coef whose value is 0 is continuous. A run-length encoder RLE1 that encodes using a run value Run indicating the number of, and a level value Lev indicating the value of the non-zero quantization component Coef (non-zero coefficient) following the 0 coefficient. Since it is provided, the quantization coefficient can be encoded with high coding efficiency by eliminating the redundant information.
Further, in the run-length encoder RLE1 of the first embodiment, a code table is selected according to the magnitude of the quantization parameter QP, and the level value is variable-length coded using the selected code table. Since it is equipped with a long encoder LVLC, the total number of bits of the code assigned to the level value can be reduced. Further, in the run length encoder RLE1, a plurality of run values measured from the quantization coefficient to which a certain processing order is given are rearranged in order from the one corresponding to the quantization coefficient having the highest frequency component. A variable-length encoder that selects a code table according to the number of uncoded 0 coefficients in the target block and the device Rreodr, and uses the selected code table to perform variable-length coding of the rearranged run values. Since it is equipped with RVLC, it is possible to effectively reduce the total number of bits of the code assigned to the run value and improve the coding efficiency.
In the first embodiment, the variable length encoder RVLC selects a code table according to the number of uncoded 0 coefficients in the target block (that is, the output Cnum of the number measuring instrument NumClc). The variable length encoder RVLC may select a code table based on not only the output Cnum of the number measuring instrument NumClc but also the above VLC selection signal VlcSel. For example, in the variable-length encoder RVLC, when the variable-length coding process using a specific code table is specified in advance by the VLC selection signal VlcSel, regardless of the number of uncoded 0 coefficients in the target block, The variable-length coding process for the run value may be performed using the specific code table.
(Embodiment 2) FIG. 9 is a block diagram for explaining the image decoding apparatus according to the second embodiment of the present invention. The image decoding device 102 of the second embodiment decodes, for example, the coded stream Str1 output from the image coding device 101 of the first embodiment.
Then, the image decoding device 102 replaces the run-length decoder RLD0b that performs variable-length decoding processing on the input coded stream Str0b in the conventional image decoding device 202b shown in FIG. 36. It is equipped with a run-length decoder RLD1 that restores the quantization coefficient by performing variable-length decoding processing on the input encoded stream Str1 based on the quantization parameter QP and the VLD selection signal VldSel. , Other configurations are the same as the image decoding apparatus 202b shown in FIG.
FIG. 10 is a block diagram for explaining a specific configuration of the run-length decoder RLD1. Similar to the conventional run-length decoder RLD0b shown in FIG. 37, the run-length decoder RLD1 has a code string LStr corresponding to the level value from the multiple coding stream Str1 output from the image encoding device 101. It has a separator DMUX that separates the code string RStr corresponding to the run value.
Then, the run-length decoder RLD1 performs variable-length decoding processing on the level value code string LStr separated from the multi-coding stream Str1 based on the quantization parameter QP and the VLD selection signal VldSel. Then, for the variable length decoder LVLD that restores the level value ROLev and the run value code string RStr separated from the multiplex coded stream Str1, the variable length decoding process is performed based on the number of undecoded coefficients. It has a variable length decoder RVLD that restores the run value RORun.
The run-length decoder RLD1 performs a rearrangement process on the level value ROLev, which is the output of the variable-length decoder LVLD, in the reverse order of the order sorter Lreodr on the coding side, and performs the rearrangement processing on the coding side. The order reverse sorter LIreodr that restores the output Lev of the level measuring instrument and the run value RORun that is the output of the variable length decoder RVLD are arranged in the reverse order of the order sorter Rreodr on the coding side. The number of undecoded coefficients in the target block based on the order reverse reorderer RIreodr that performs the reordering process and restores the output Run of the run measuring instrument on the coding side and the output Run of the order reverse reorderer RIreodr. It has a number measuring instrument NumClc that measures and outputs Cnum.
Further, the run-length decoder RLD1 is an inverse zigzag that restores the decoding quantization component DQS having a two-dimensional array from the decoding quantization component having a one-dimensional array represented by the level value Lev and the run value Run. It has a scan device IScan.
FIG. 11 is a diagram illustrating the variable length decoding process of the variable length decoder LVLD, and FIG. 11 (a) is an explanatory diagram of a flow of the variable length decoding process for restoring the level value, FIG. 11 (b). ) Is an explanatory diagram of a code table used in the variable length decoding process. The code tables L1 and L2 used in the variable-length decoding process of the level value are the same as the code tables L1 and L2 used in the level value coding process in the run-length encoder RLE1 of the first embodiment, respectively. belongs to.
FIG. 12 is a diagram for explaining the variable length decoding process of the variable length decoder RVLD, and FIG. 12 (a) is an explanatory diagram of the flow of the variable length decoding process for restoring the run value, FIG. 12 (b). ) Is an explanatory diagram of a code table used in the variable length decoding process. The code tables R1 to R8 used in the variable length decoding process of the run value are the same as the code tables R1 to R8 used in the run value coding process in the run length encoder RLE1 of the first embodiment. belongs to.
Next, the operation will be described. When, for example, the multiple coding stream Str1 from the image coding device 101 of the first embodiment is input to the image decoding device 102, the run-length decoder RLD1 decodes the coded stream Str1. The decoding processing is performed and the decoding quantization component DQS is output. The operation of the run-length decoder RLD1 is opposite to the operation of the run-length encoder RLE1.
That is, in the run length decoder RLD1, the separator DMUX separates the level value code string LStr corresponding to the level value and the run value code string RStr corresponding to the run value from the input multiple coded stream Str1. The output is output to the variable length decoder LVLD and the variable length decoder RVLD, respectively.
The variable length decoder LVLD is a level value code string from the separator DMUX based on the quantization parameter QP from the quantizer Q and the external VLD selection signal VldSel instructing the selection of variable length decoding. For LStr, the level value ROLev corresponding to each code (codeword) is acquired by using a plurality of code tables showing the correspondence between the level value and the code (codeword), and the order reverse sorter LIreodr is used. Output. On the other hand, the variable-length decoder RVLD has the run value and the code (for the run value code string RStr from the separator DMUX, based on the number of undecoded coefficients Cnum output from the number measuring instrument NumClc. The run value ROLev corresponding to each code (codeword) is acquired by using a plurality of code tables showing the correspondence with the codeword) and output to the order reverse sorter RIreodr.
The reordering reorderer LIreodr performs a reordering process on the level value ROLev, which is the output of the variable length decoder LVLD, in the reverse order of the reordering reorderer Lreodr on the coding side, and performs reordering processing on the coding side. Restore the output Lev of the level instrument. On the other hand, the order reordering device RIreodr encodes the run value RORun, which is the output of the variable length decoder RVLD, by performing the reordering process opposite to that of the order reorderer Rreodr on the coding side. Restore the output Run of the run instrument on the side. Further, the number measuring instrument NumClc measures the number Cnum of the undecoded coefficients in the target block based on the output Run of the order reverse reordering device RIreodr, and outputs the number Cnum to the variable length decoder RVLD.
Then, the inverse zigzag scan device IScan operates in the opposite manner to the zigzag scan device Scan, and from the quantization component having a one-dimensional array represented by the above level value Lev and the run value Run, the decoding quantum having a two-dimensional array. The chemical component DQS is restored and output to the above inverse quantizer IQ.
Hereinafter, the operation of the variable length decoder LVLD will be described in detail with reference to FIG. The variable-length decoder LVLD acquires the quantization parameter QP from the quantization device Q of the image coding apparatus 101 (step Sc1), and the value of the acquired quantization parameter QP is the variable-length decoder LVLD. It is determined whether or not it is equal to or greater than the threshold value of the quantization parameter QP held in (step Sc2).
As a result of this determination, if the value of the obtained quantization parameter QP is smaller than the threshold of the quantization parameter QP, the code table L1 consisting of the level value array Alev and the code (code word) array Ca1 (Fig. 11 (Fig. 11) b) Refer to) (step Sc3), and if the obtained quantization parameter QP value is equal to or greater than the quantization parameter QP threshold, from the level value array Alev and the code (codeword) array Ca2. Select the code table L2 (see Figure 11 (b)) (step Sc4).
After that, the variable length decoder LVLD determines whether or not there is an undecoded level value Lev in the target block (step Sc5), and if there is an undecoded level value Lev in the target block, the selected code. Using the table, a decoding process for restoring the level value Lev, that is, a process for acquiring the level value corresponding to the code (step Sc6) is performed, and then the above step Sc5 process is performed. On the other hand, as a result of the determination in step Sc5, if there is no undecoded level value Lev in the target block, the variable length decoding process for restoring the level value Lev is terminated.
When the variable length decoding process using a specific code table is specified in advance by the above VLD selection signal VldSel, the variable length decoder LVLD is specified regardless of the size of the quantization parameter QP. The variable length decoding process that restores the level value is performed using the code table of.
Next, the operation of the variable length decoder RVLD will be described in detail with reference to FIG. The variable length decoder RVLD determines whether or not there is an undecoded non-zero coefficient in the target block based on the output (number of undecoded coefficients) Cnum of the number measuring instrument NumClc (step Sd1). As a result of this determination, if there is an undecoded non-zero coefficient, the number of undecoded 0 coefficients in the target block is measured based on the number of undecoded coefficients Cnum (step Sd2).
Then, the variable length decoder RVLD selects a code table according to the number of measured undecoded 0 coefficients (step Sd3). Specifically, when the number of undecoded 0 coefficients is 1, select the code table R1 (see FIG. 12 (b)) consisting of the run value array Arun and the code (code word) array Cb1. .. Similarly, when the number of undecoded 0 coefficients is 2, the code table R2 is selected, when the number is 3, the code table R3 is selected, and when the number is 4, the code table R4 is selected. Further, when the number of undecoded 0 coefficients is 5, the code table R5 is selected, when the number is 6, the code table R6 is selected, and when the number is 7, the code table R7 is selected. Then, when the number of undecoded 0 coefficients is 8 or more, the code table R8 is selected.
Next, the variable-length decoder RVLD uses the selected code table to perform a decoding process that restores the run value Run, that is, a process that acquires the run value corresponding to each code (step Sd4), and then performs a process. , The determination process of the above step Sd1 is performed.
If there is no undecoded non-zero coefficient as a result of the determination in step Sd1, the variable-length decoding process for restoring the run value is terminated.
In the image decoding apparatus 102 of the second embodiment, the inverse quantizer IQ, the inverse frequency converter ITrans, and the inverse blocker DeBlk are the conventional image decoding apparatus 202a (see FIG. 32) or the image decoding. It operates in the same way as that of the computerized device 202b (see FIG. 36).
That is, the inverse quantizer IQ performs the reverse operation of the quantizer Q, that is, the operation of dequantizing the decoding quantization component DQS with reference to the quantization parameter QP, and outputs the decoding frequency component ITransS. In addition, the inverse frequency converter ITrans uses the reverse operation of the frequency converter Trans, that is, the decoding frequency component ITransS is decoded by the inverse DCT or the inverse wavelet transform, and the decoding frequency component ITransS corresponding to each block is decoded corresponding to each block. Performs the operation of restoring to the pixel value signal DBlkS. Then, the inverse blocker DeBlk integrates the decoded pixel value component DBlkS of each block and outputs the decoded image signal Vout corresponding to each picture.
As described above, in the image decoding apparatus 102 of the second embodiment, the run value Run indicating the number of consecutive 0 coefficient Coefs for the run code string RStr and the level code string LStr constituting the coded data, and the 0 Since it is equipped with a run-length decoder RLD1 that converts to a level value Lev indicating the value of the non-zero coefficient following the coefficient and restores the quantization coefficient based on the run value and the level value, the quantization coefficient is redundant. It is possible to satisfactorily perform a decoding process corresponding to a variable-length coding process that can eliminate information and encode with high coding efficiency.
Further, in the run-length decoder RLD1 of the second embodiment, a code table is selected according to the magnitude of the quantization parameter QP, and variable-length decoding is performed using the selected code table to restore the level value. Since the variable length decoder LVLD is provided, it is possible to satisfactorily decode the level value code string in which the total number of bits of the code assigned to the level value is reduced.
Further, in the run-length decoder RLD1, a code table is selected according to the number of undecoded 0 coefficients in the target block, and the code string corresponding to the rearranged run values is selected using the selected code table. The variable length decoder RVLD to decode and the run value obtained by the decoding are rearranged in the reverse order of the run value reordering process in the run length encoder RLD1, RIreodr. Therefore, it is possible to satisfactorily decode the run value coded string in which the total number of bits of the code assigned to the run value is effectively reduced.
In the second embodiment, the variable length decoder RVLD selects a code table according to the number of undecoded 0 coefficients in the target block (that is, the output Cnum of the number measuring instrument NumClc). The variable length decoder RVLD may select a code table based on not only the output Cnum of the number measuring instrument NumClc but also the VLD selection signal VldSel. For example, in the variable length decoder RVLD, when the variable length decoding process using a specific code table is specified in advance by the VLD selection signal VldSel, regardless of the number of undecoded 0 coefficients in the target block, The variable length decoding process for restoring the run value may be performed using the specific code table.
(Embodiment 3) FIG. 13 is a block diagram for explaining the image coding apparatus according to the third embodiment of the present invention. The image coding device 103 of the third embodiment performs variable-length coding processing on the output (quantization component) QS of the quantizer Q in the conventional image coding device 201c shown in FIG. 38 to code. Instead of the run-length encoder RLE0c that outputs the quantized stream Str0c, the output QS of the quantizer Q is subjected to variable-length coding processing based on the quantization parameter QP or the VLC selection signal VlcSel. It is equipped with a run-length encoder RLE2 that outputs a quantized stream Str2. The other devices in the image coding device 103 of the third embodiment are the same as those in the conventional image coding device 201c.
That is, the run-length encoder RLE2 corresponds to a pair of run values and level values (hereinafter referred to as a run-level pair) and a corresponding code, similarly to the conventional run-length encoder RLE0c. It has a first code table T1 (see FIG. 42) showing the relationship according to the combination of the run value and the level value. Then, the run-length encoder RLE2 regularly changes the correspondence between the pair of the run value and the level value and the code in the first code table based on the first code table. A second code table having a different correspondence from the first code table is created, and the first and second code tables are obtained from the quantization parameter QP output from the quantizer Q or from the outside. One of them is selected based on the VLC selection signal VlcSel of the above, and a code is assigned to the pair of the run value and the level value related to the coefficient in the processing target data based on the selected code table.
Here, the quantization parameter QP is a parameter representing the magnitude of the quantization step, and the quantization step is substantially proportional to the quantization parameter QP. In other words, when the quantization parameter QP is large, the absolute value of the quantization component becomes small, so the 0 run of the quantization component (the length of consecutive lines of 0 components) becomes long, and the level value. The absolute value of is smaller. Therefore, in this case, the coding efficiency can be improved by selecting a code table in which a small code is assigned to a runlevel pair having a large run value and a small level value. On the contrary, when the quantization parameter QP is small, the absolute value of the quantization component is large, so a code table in which a small code is assigned to a runlevel pair having a small run value and a large level value is selected. Thereby, the coding efficiency can be improved.
Further, the run-length encoder RLE2 selects a code table used in the coding process by the selection signal VlcSel when the VLC selection signal VlcSel from the outside of the image coding device 103 is input. .. Therefore, an appropriate code table can be selected from the outside according to the image characteristics (magnitude of image movement, complexity of movement, fineness of pattern, etc.), or the code table can be selected on the image coding device 103 side. When creating a stream that can be decoded by an image decoding device that has only one, the image coding device 103 should always use a predetermined code table by the VLC selection signal VlcSel. Can be done. That is, it is also possible to perform the variable length coding process using only one code table without switching the code table.
FIG. 14 is a block diagram for explaining a specific configuration of the run-length encoder RLE2. The run-length encoder RLE2 has a one-dimensional array (that is, a one-dimensional array (that is, a quantization component) QS of the quantizer Q having a two-dimensional array, similar to the conventional run-length encoder RLE0c (see FIG. 39). , A zigzag scan device Scan that converts to a quantized component Coef having a predetermined order), and a continuous number of quantized component (0 coefficient) Coefs whose value is 0 are measured, and a run value Run is output. It has a run measuring instrument RunCal and a level measuring instrument LevCal that measures the value of the quantization component Coef (non-zero coefficient) whose value is not 0 following the 0 coefficient and outputs the level value Lev.
Then, in the third embodiment, the run-length encoder RLE2 transfers the output (run value) Run of the run measuring instrument RunCal to the run value Run1 representing the upper digit of the run value Run and the run value Run. The run converter RunConv and the output (level value) Lev of the level measuring instrument LevCal, which perform the conversion process for separating into the run value Run2 representing the lower digit, based on the quantization parameter QP or the VLC selection signal VlcSel, are used. Level conversion that separates the level value Lev1 representing the upper digit of the level value Lev and the level value Lev2 representing the lower digit of the level Lev based on the quantization parameter QP or the VLC selection signal VlcSel. It has a vessel LevConv.
Further, the run-length encoder RLE2 calculates a run-level code conversion that calculates a code number Code corresponding to a pair of a run value Run1 and a level value Lev1 (hereinafter referred to as a run-level upper digit pair) by a code table or arithmetic calculation. Based on the correspondence between the device RunLevEnc and the runlevel upper digit pair and the code number Code obtained in this way, the runlevel upper digit corresponding to the higher frequency component corresponding to the target block to be processed. The process of rearranging the order of the runlevel upper digit pairs so that the pairs have smaller code numbers is performed according to the quantization parameter QP or the VLC selection signal VlcSel, and the rearranged runlevel upper digit pairs are rearranged. It has an order changer ReOdr that outputs the code number ReOdrCode corresponding to.
Further, the run length encoder RLE2 is a position calculator PosClc that calculates the number of coded quantization components (coded coefficients) from the run value Run and outputs the number of coded coefficient Pos. Number conversion that outputs the code number ExtCode corresponding to the run level pair indicated by the second code table from the level value Lev2 and the run value Run2 based on the correspondence between the run level upper digit pair and the code number ReOdrCode. It has a device CodeTrans and a variable-length coder VLC that assigns a bit string (code word) to the code number ExtCode to generate a coded stream Str.
The zigzag scan device Scan, the run measuring instrument RunCal, the level measuring instrument LevCal, and the variable length encoder VLC in the run length encoder RLE2 are the same as those in the conventional run length encoder RLE0c shown in FIG. It is the same.
Next, the action and effect will be described. The zigzag scanner Scan converts the quantization component QS having a two-dimensional array into a quantization component Coef having a one-dimensional array, that is, in a set order, and outputs the result. The run measuring instrument RunCal measures the number of consecutive 0 components (quantized component whose value is 0) Coef, and outputs a run value Run indicating the number. Further, the level measuring instrument LevCal measures the value of the non-zero component (quantized component whose value is not 0 following the 0 component) Coef, and outputs the level value Lev indicating the value of the non-zero component.
The run converter RunConv performs a conversion process that separates the above run value Run into a run value Run1 representing the upper digit of the run value Run and a run value Run2 representing the lower digit of the run value Run. The level converter LevConv performs a conversion process that separates the level value Lev into a level value Lev1 representing the upper digit of the level value Lev and a level value Lev2 representing the lower digit of the level value Lev.
The runlevel code converter RunLevEnc calculates the code number Code corresponding to the pair of the level value Lev1 and the run value Run1 (runlevel upper pair) by the code table (first code table) shown in FIG. 42 or arithmetic calculation. .. The order sorter ReOdr performs the process of rearranging the order of the runlevel upper digit pairs based on the quantization parameter QP or the VLC selection signal VlcSel, and the code number corresponding to the rearranged runlevel upper digit pairs. Output ReOdrCode. By the process of rearranging the order of the runlevel upper digit pairs, the correspondence between the runlevel upper digit pairs and the code number Code obtained by the runlevel code converter RunLevEnc is higher in the target block to be processed. The smaller code numbers are converted into the corresponding correspondences for the runlevel upper digit pairs corresponding to the frequency components.
The position calculator PosClc calculates the number of coded components from the run value Run and outputs the number of coded coefficient Pos. The number converter CodeTrans outputs the code number ExtCode corresponding to the runlevel pair from the level value Lev2 and the run value Run2 based on the correspondence between the runlevel upper digit pair and the code number ReOdrCode. At this time, in the number converter CodeTrans, the number of encoded coefficients Pos output from the position calculator PosClc is used to calculate how many uncoded components are present.
Here, the code number ExtCode corresponding to the runlevel pair output from the number converter CodeTrans is in the second code table in which the correspondence between the runlevel pair and the code number is different from that of the first code table. It was obtained based on. Further, in this second code table, a code table in which the correspondence between the runlevel pair and the code number is different from that of the first code table is created by the rearrangement processing by the order changer ReOdr. A code table created by the reordering device ReOdr is subjected to a runlevel pair corresponding to a run value Run exceeding the number of uncoded components based on the number of encoded coefficients Pos by the number converter CodeTrans. It was created by assuming that the correspondence with the code number is not included.
Then, the variable-length encoder VLC assigns a bit string (codeword) to the code number ExtCode to generate a coded stream Str2.
FIG. 15 shows an example of a second code table created based on the first code table by the run-length encoder RLE2. Here, the first code table is the same as the code table shown in FIG. 42 used in the conventional run-length encoder RLE0c. In the first and second code tables, a bit string (code word) corresponding to one-to-one is assigned to the code number Code, but a short code word may be assigned to the code number Code having a small value. Needless to say.
FIG. 15 (a) shows, as an example of the second code table, the second code table T2a suitable when the quantization parameter QP is small. This second code table T2a is created as follows. First, 1/2 of the level value Lev is assigned as the level value Lev1, and the absolute value of Lev1 × 2-Lev is assigned to the level value Lev2.
Here, when the level value Lev is an odd number, the value obtained by dividing an even number whose absolute value is 1 larger than the level value Lev by 2 is defined as the level value Lev1. That is, when the level value Lev is positive, the level value Lev1 is assigned a value of 1/2 of (Lev + 1), and when the level value Lev is negative, the level value Lev1 is (Lev-1). A value of 1/2 is assigned.
Then, according to the combination of the level value Lev1 and the run value Run, the code number Code corresponding to the pair of the level value Lev1 and the run value Run is acquired from the first code table (see FIG. 42).
Furthermore, if the Lev value is positive, the code number Code corresponding to the pair of the level value Lev1 and the run value Run is based on the following equation (1), and if the Lev value is negative, based on the following equation (2). Will be converted. The second code table T2a shows the correspondence between the code numbers obtained as a result of this conversion and the runlevel pairs. 2 × (Code-Lev2) -1 (1) 2 × (Code-Lev2) (2) For example, the runlevel pair (level =-) of the code table (first code table) in Fig. 42. Focusing on 2, run = 1), the code number code corresponding to this runlevel pair is the value "10" shown in the first code table T1 shown in FIG. 42 to the second code in FIG. 15 (a). Converted to "12" shown in Table T2a.
That is, in this case, since the runlevel pair (Lev, Run) is (-2,1), Lev1 and Lev2 are calculated as follows. Lev1 = Lev (1/2) = -1 Lev2 = | Lev1 2-Lev | = | -1 2- (-2) | = 0 Therefore, (Lev1, Run) is (-1,1) And this runlevel pair corresponds to the code number (code = 6) in the first code table (Fig. 42).
Therefore, when the code number corresponding to the runlevel pair (Lev, Run) = (-2,1) is calculated using Eq. (2), 2 × (Code-Lev2) = 2 × (6-0) = It becomes 12.
The code table of FIG. 15 (a) has a smaller code number (that is, a shorter code) for a runlevel pair having a smaller run value and a larger level value than the code table shown in FIG. It is characterized by being assigned a word), and is suitable when the quantization parameter QP is small.
FIG. 15 (b) shows, as another example of the second code table, the second code table T2b, which is suitable when the quantization parameter QP is large.
This second code table T2b is created as follows. First, the run value Run1 is assigned a value of 1/2 of the run value Run, and the run value Run2 is assigned the absolute value of Run1 × 2-Run. Here, if the run value Run is an odd number, the run value Run1 is assigned an integer portion of a value of 1/2 of (Run + 1).
Then, according to the combination of the level value Lev and the run value Run1, the code number Code corresponding to the pair of the level value Lev and the run value Run1 is acquired from the first code table (see FIG. 42).
Furthermore, if the Lev value is positive, the code number Code corresponding to the pair of the level value Lev and the run value Run1 is based on the following equation (3), and if the Lev value is negative, based on the following equation (4). Will be converted. The second code table T2b shows the correspondence between the code number obtained as a result of this conversion and the runlevel pair. 2 × (Code + Run2) -1 (3) 2 × (Code + Run2) -2 (4)
For example, focusing on the runlevel pair (level = -1, run = 2) of the code table (first code table) of FIG. 42, the code number code corresponding to this runlevel pair is the first code shown in FIG. 42. The value "12" shown in the code table T1 of is converted to "10" shown in the second code table T2b of FIG. 15 (b).
That is, in this case, since the runlevel pair (Lev, Run) is (-1,2), Run1 and Run2 are calculated as follows. Run1 = Run · (1/2) = 1 Run2 = | Run1 · 2-Run | = | 1-2 -2 | = 0 Therefore, (Lev, Run1) becomes (-1,1), and this runlevel The pair corresponds to the code number (code = 6) in the first code table (Fig. 42).
Therefore, when the code number corresponding to the runlevel pair (Lev, Run) = (-1,2) is calculated using Eq. (4), 2 × (Code + Run2) = 2 × (6-0)- 2 = 10.
The second code table T2b shown in FIG. 15 (b) is smaller than the code table (first code table) T1 shown in FIG. 42 with respect to a runlevel pair having a large run value and a small level value. It is characterized by being assigned a code number (that is, a short codeword), and is suitable when the quantization parameter QP is large.
FIG. 16 shows another example of the second code table created based on the first code table by the run length encoder RLE2. Here, the first code table is the same as the code table T1 shown in FIG. 42 used in the conventional run-length encoder RLE0c.
In the number converter CodeTrans, the number of unencoded components (the number of unencoded coefficients) existing in the processing target block is calculated based on the number of encoded coefficients Pos output from the position calculator PosClc. .. Then, it is assumed that the second code table created from the first code table does not include the code word corresponding to the run level pair containing the run values equal to or more than the number of unencoded components. This enables coding with good compression efficiency.
FIG. 16A shows a second code table T2c created when the number of unencoded components is 3 or more. FIG. 16 (b) shows the second code table T2d created when the number of unencoded components is 2. FIG. 16 (c) shows the second code table T2e created when the number of unencoded components is 1.
In this way, by deleting the correspondence between the runlevel pair including the unused run value and the code from the code table, a short codeword is assigned even for the same runlevel pair. For example, in the second code table T2e shown in FIG. 16 (c), the code number [7] corresponds to the runlevel pair having the run value [0] and the level value [4], and FIG. In the second code table T2d shown in b), the code number [11] corresponds to the runlevel pair having the run value [0] and the level value [4]. In the code table T2c of 2, a code number (not shown) having a larger value corresponds to a runlevel pair having a run value [0] and a level value [4].
FIG. 17 shows an example of the coding order in the run-length encoder RLE2 in the image coding apparatus 103 of the third embodiment. In general, the absolute value of the level value corresponding to the low frequency component is large, and in the code table, the code number code having a large value corresponds to the runlevel pair corresponding to the low frequency component. On the contrary, the absolute value of the level value corresponding to the high frequency component is small, and in the code table, the code number having a small value corresponds to the runlevel pair corresponding to the high frequency component.
As described in FIG. 16, the improvement in compression efficiency obtained by deleting the code number (code word) corresponding to the run level pair containing the run value equal to or greater than the number of uncoded components from the code table is the number of uncoded components. Is larger as the value is smaller, and the larger the absolute value of the level value is, the larger the ratio of the size of the code number assigned is smaller than that before the reduction of the code number as described above.
Therefore, when encoding the quantization component with the run-length encoder RLE2 as in the image coding device 103 of the third embodiment, it corresponds to a low frequency component having a large absolute value of the level value. By coding the quantization component to be performed later, the compression efficiency can be further improved.
That is, in the order reorderer ReOdr, the quantization component is changed from the run level pair of the quantization component corresponding to the high frequency component, which is the final non-zero component, to the low frequency component, as shown by the arrows X1 to X7 shown in FIG. Sorted in the order of the run-level pairs of the quantization components corresponding to, and after the code word corresponding to the run-level pairs of the quantization component with the lowest frequency component, the last encoded component in the block to be processed. Add an EOB to indicate that. Thereby, the compression efficiency can be improved.
Further, in the third embodiment, since the quantization parameter QP and the VLC selection signal VlcSel are supplied to the level converter LevConv, the run converter RunConv, the order changer ReOdr, and the number converter CodeTrans, the quantization parameter QP It is possible to switch the code table according to the above, or to select an appropriate code table from the outside according to the content of the image (the amount of movement of the image, the complexity of the movement, the fineness of the pattern).
For example, by switching the code table used for the coding process by the VLC selection signal VlcSel from the outside of the image coding device, the image coding device decodes with a decoding device having only one code table. You can create possible streams.
As described above, in the third embodiment, in the image coding apparatus 103 that encodes the quantization coefficient of the image signal as the data to be processed, run-length coding in which a variable length code is assigned to the quantization coefficient using a code table. A device RLE2 is provided, and the run-length encoder RLE2 creates a second code table optimized for the data to be processed based on the first code table, and creates a second code table optimized for the data to be processed, and a quantization parameter QP or VLC selection signal. Since either the first code table or the second code table is selected as the code table used for assigning the variable length code based on VlcSel, redundant information existing in the data to be processed can be removed more effectively. This makes it possible to further improve the compression rate of the image signal and the like.
In the third embodiment, as a run-length encoding unit RLE2, as shown in FIG. 14, like various equipment for compressibility improvement, i.e. the run converter RunConv, level converter LevConv, order sorting unit Although the one having ReOdr and the number converter CodeTrans is shown, the run-length encoder RLE1 may have only a part of the equipment for improving the compression ratio. In this case, the implementation of the run-length encoder RLE2 becomes simple.
Further, in the third embodiment, the second code table is a part that constitutes the first code table and can be regularly generated by arithmetic operations (regularly build VLC) and a part that cannot be regularly generated (table). It is assumed that the correspondence between run-level pairs and code numbers has been changed in both parts of look up VLC), but the first code table is the part that can be regularly generated by arithmetic operations (regularly build VLC). And a part that cannot be generated regularly (table look up VLC), the second code table is a part of the first code table, which is an easy-to-use regular arithmetic operation. Only the part that can be generated by may be converted, in which case the run-length encoder RLE2 can be implemented more easily.
Further, in the third embodiment, in the run-length encoder in which the variable-length coding of the quantization component is performed using a run-level pair, the quantization component is variable-length in order from the one corresponding to the higher frequency component. Although the one to be encoded is shown, the run-length encoder is a run-length encoding in which the run value and the level value corresponding to the quantization component of the target block are separately variable-length coded as in the first embodiment. Needless to say, in the device, the run value and the level value corresponding to the quantization component of the target block may be variable-length coded in order from the one corresponding to the higher frequency component.
(Embodiment 4) FIG. 18 is a block diagram for explaining the image decoding apparatus according to the fourth embodiment of the present invention. The image decoding device 104 of the fourth embodiment performs variable-length decoding processing on the coded stream Str0c in the conventional image decoding device 202c shown in FIG. 40 and outputs the decoding quantization component DQS. Instead of the run-length decoder RLD0c, the coded stream Str2 is subjected to variable-length decoding processing based on the quantization parameter QP or variable-length decoding selection signal (VLD selection signal) VldSel for decoding quantization. It is equipped with a run-length decoder RLD2 that outputs the component DQS. The other devices in the image decoding device 104 of the fourth embodiment are the same as those in the conventional image decoding device 202c.
That is, the run-length decoder RLD2 corresponds to a pair of run values and level values (hereinafter referred to as a run-level pair) and a code corresponding to the pair of run values (hereinafter referred to as run-level pairs), similarly to the conventional run-length decoder RLD0c. It has a first code table T1 (see FIG. 42) showing the relationship according to the combination of the run value and the level value. Then, the run-length decoder RLD2 regularly changes the correspondence between the pair of the run value and the level value and the code in the first code table based on the first code table. A second code table having a different correspondence from the first code table is created, and the first and second code tables are displayed by the quantization parameter QP output from the quantizer Q or from the outside. One of them is selected based on the VLD selection signal VldSel, and the codewords (bit strings) constituting the coded stream Str2 are run values related to the coefficients in the data to be processed based on the selected code table. And to convert to a pair of level values.
As described above, the quantization parameter QP is a parameter representing the magnitude of the quantization step, and the quantization step is substantially proportional to the quantization parameter QP. In other words, when the quantization parameter QP is large, the absolute value of the quantization component becomes small, so the 0 run of the quantization component (the length of consecutive lines of 0 components) becomes long, and the level value The absolute value becomes smaller. Therefore, in this case, the coding efficiency can be improved by selecting a code table in which a small code is assigned to a runlevel pair having a large run value and a small level value. On the contrary, when the quantization parameter QP is small, the absolute value of the quantization component is large, so a code table in which a small code is assigned to a runlevel pair having a small run value and a large level value is selected. Thereby, the coding efficiency can be improved.
FIG. 19 is a block diagram showing a specific configuration of the run-length decoder RLD2. The run-length decoder RLD2 has a variable-length decoder VLD like the conventional run-length decoder RLD0c, and the decoder VLD is the image encoding device 103 of the third embodiment. The coded stream Str2 output from is decoded and the code number ExtCode is output.
Then, in the fourth embodiment, the run-length decoder RLD2 has the code number PrmCode corresponding to the runlevel upper digit pair consisting of the level value Lev1 and the run value Run1 from the code number ExtCode, and the level value Lev2 and the run. A low frequency run of the number inverse converter ICodeTrans that performs the number inverse conversion process that separates the value Run2 based on the above quantization parameter QP or VLD selection signal VldSel, and a plurality of code numbers PrmCode corresponding to the block to be processed. It has an order reverse sorter IReOdr that outputs a plurality of code number Codes corresponding to the block, which are sorted in order from the one corresponding to the level pair and have the sorted order.
Further, the run-length decoder RLD2 acquires a run-level pair corresponding to the code number Code by a code table or an arithmetic calculation, and outputs a run value Lev1 and a run value Run1 constituting the run-level pair. From the level acquirer RunLevDec, the run value Run1 representing the upper digit of the run value Run, and the run value Run2 value representing the lower digit of the run value Run, the run inverse converter IRunConv that restores the run value Run, It has a level inverse converter ILevConv that restores the level value Lev from the level value Lev1 that represents the upper digit of the level value Lev and the level value Lev2 that represents the lower digit of the level value Lev.
Further, the run-length decoder RLD2 has an inverse zigzag scan device IScan similar to the conventional run-length decoder RLD0c, and this scan device IScan is represented by a level value Lev and a run Run value. A quantization component having a one-dimensional array is converted into a decoding quantization component DQS having a two-dimensional array and output.
The variable length decoder VLD, runlevel acquirer RunLevDec, and reverse zigzag scanr IScan in the above run-length decoder RLD2 are the same as those in the conventional run-length decoder RLD0c shown in FIG. Is.
Next, the action and effect will be described. In the run-length decoder RLD2, the variable-length decoder VLD operates in the opposite manner to the variable-length encoder VLC. That is, the variable length decoder VLD decodes the coded stream Str2 and outputs the code number ExtCode corresponding to the code word (bit string) constituting the stream. Based on the above quantization parameter QP or VLD selection signal VldSel, the number inverse converter ICodeTrans performs an operation opposite to that of the number converter CodeTrans, and from the code number ExtCode, a runlevel consisting of a level value Lev1 and a run value Run1. Separate the code number PrmCode corresponding to the high-order digit pair from the level value Lev2 and the run value Run2.
The reorder reorderer IReOdr operates in the reverse manner to the reorder reorderer ReOdr based on the above-mentioned quantization parameter QP or VLD selection signal VldSel. As a result, the plurality of code numbers PrmCode corresponding to the blocks to be processed are sorted in order from the one corresponding to the low frequency runlevel pair, and the plurality of code numbers corresponding to the blocks having the sorted order are performed. The code number Code is output. The runlevel acquirer RunLevDec acquires the runlevel pair corresponding to the code number Code by a code table or an arithmetic calculation, and outputs the level value Lev1 and the run value Run1 constituting the acquired runlevel pair.
The run inverse converter IRunConv operates in the opposite manner to the run converter RunConv based on the above quantization parameter QP or VLD selection signal VldSel, and has a run value Run1 representing the upper digit of the run value Run and a run value Run. Restore the run value Run from the run value Run2, which represents the lower digit of. Further, the level inverse converter ILevConv operates in the opposite manner to the level converter LevConv based on the above quantization parameter QP or VLD selection signal VldSel, and has a level value Lev1 representing the upper digit of the level value Lev and a level. Restore the level value Lev from the level value Lev2, which represents the lower digit of the value Lev.
Here, in the number inverse converter ICodeTrans, the order inverse selector IReOdr, the run inverse converter IRunConv, and the level inverse converter ILevConv, the first and second first and second ones are determined by the quantization parameter QP or the VLD selection signal VldSel. The code table is selected and the operation based on the selected code table is performed.
Then, the inverse zigzag scan device IScan performs the opposite operation to the above zigzag scan device Scan based on the level value Lev and the run value Run, and is quantized having a one-dimensional array represented by the level value Lev and the run run value. The component is converted into a decoding quantization component DQS having a two-dimensional array and output.
In addition, in this run-length decoder RLD2, when the VLD selection signal VldSel is input from the outside, the content of the image (magnitude of image movement, movement complexity, pattern) indicated by the VLD selection signal VldSel. An appropriate code table is selected according to the fineness).
Further, in the fourth embodiment, the quantization parameter QP and the VLD selection signal VldSel are supplied to the number inverse converter ICodeTrans, the order inverse selector IReOdr, the run inverse converter IRunConv, and the level inverse converter ILevConv. Therefore, the code table can be switched according to the quantization parameter QP, and the appropriate code table can be selected according to the characteristics of the image, that is, the amount of motion of the image, the complexity of the motion, the fineness of the pattern, etc. It can be selected from the outside.
As described above, in the fourth embodiment, in the image decoding apparatus 104 that decodes the coded data obtained by variable-length coding the quantization coefficient of the image signal, the variable-length code is quantized by using the code table. The run-length decoder RLD2 is provided, and the run-length decoder RLD2 creates a second code table optimized for the data to be processed based on the first code table, and quantizes the data. Since either the first or second code table is selected as the code table used for conversion of the variable length code to the quantization coefficient based on the conversion parameter QP or the VLD selection signal VldSel, it exists in the data to be processed. Decoding processing corresponding to variable-length coding processing that can more effectively remove information redundancy can be performed satisfactorily.
In the fourth embodiment, as the run-length decoder RLD2, as shown in FIG. 19, various devices for improving the compression ratio, that is, the number reverse converter ICodeTrans, the order reverse reorderer IReOdr, and the run reverse. Although those having the converter IRunConv and the level inverse converter ILevConv are shown, the run-length decoder RLD2 may have only a part of the equipment for improving the compression ratio. In this case, the implementation of the run-length decoder RLD2 is simple.
Further, in the fourth embodiment, the second code table is a part (regularly build VLC) that constitutes the first code table and can be regularly generated by arithmetic operations, and a part (table) that cannot be regularly generated. It is assumed that the correspondence between run-level pairs and code numbers has been changed in both parts of look up VLC), but the first code table is the part that can be regularly generated by arithmetic operations (regularly build VLC). And a part that cannot be generated regularly (table look up VLC), the second code table is a part of the first code table, which is an easy-to-use regular arithmetic operation. Only the part that can be generated by may be converted, in which case the implementation of the run-length decoder RLD2 becomes easier.
Further, in the fourth embodiment, in a run-length decoder in which variable-length decoding of the coded data of the quantization component is performed using a run-level pair, the coded data of the quantization component is converted into a higher frequency component. The variable length decoding is shown in order from the one corresponding to the above, but the run length decoder is the coded data of the run value and the level value corresponding to the quantization component of the target block as in the second embodiment. In the run-length decoder that performs variable-length decoding separately, the coded data of the run value and the level value corresponding to the quantization component of the target block are variable-length decoded in order from the one corresponding to the higher frequency component. It may be a thing.
(Embodiment 5) FIG. 20 is a block diagram for explaining the image coding apparatus according to the fifth embodiment of the present invention. The image coding device 105 of the fifth embodiment replaces the run-length encoder RLE2 in the image coding device 103 of the third embodiment shown in FIG. 13, and has a run-level pair similar to the run-length encoder RLE2. It is equipped with a run-length encoder RLE3 that encodes the number of non-zero components. The other devices in the image coding device 105 of the fifth embodiment are the same as those in the image coding device 103 of the third embodiment.
FIG. 21 shows a specific configuration of the run-length encoder RLE3 in the image coding device 105. The run-length encoder RLE3 of the fifth embodiment is non-zero based on the input quantization component instead of the position calculator PosClc in the run-length encoder RLE2 of the third embodiment shown in FIG. Calculate the number of encoded coefficients Pos2 based on the non-zero coefficient measuring instrument NZcount that measures the number of coefficients NZnum, the measured number of non-zero coefficients NZnum, and the run value Run measured by the run measuring instrument RunCal. It is equipped with a position calculator PosClc2.
Further, the run-length encoder RLE3 of the fifth embodiment is different from the variable-length encoder VLC of the run-length encoder RLE2 of the third embodiment, and is different from the output (code number) ExtCode of the number converter CodeTrans. Is encoded, and the number of non-zero components NZnum is encoded.
The other configurations in the run-length encoder RLE3 are the same as those in the run-length encoder RLE2 of the third embodiment.
Next, the action and effect will be described. The operation of the blocker Blk, the frequency converter Trans, and the quantizer Q of the image coding device 105 of the fifth embodiment is the same as that of the image coding device 103 of the third embodiment, and this Devices other than the non-zero coefficient measuring instrument NZcount, the position measuring instrument PosClc2, the number converter CodeTrans, and the variable length encoder VLC2 of the run length encoder RLE3 of the fifth embodiment, that is, the scan device Scan, the run measuring instrument RunCal, Since the operation of the level measuring instrument LevCal, the run converter RunConv, the level converter LevConv, the run level code converter RunLevEnc, and the order changer ReOdr is exactly the same as that of the run length encoder RLE2 of the third embodiment. The operations of the non-zero coefficient measuring instrument NZcount, the position measuring instrument PosClc2, the number converter CodeTrans, and the variable length encoder VLC2 will be mainly described below.
When the quantization component QS output from the quantizer Q is input to the run-length encoder RLE3, in the run-length encoder RLE3, the non-zero coefficient measuring instrument NZcount is based on the quantization component QS, and each block. The number of non-zero components NZnum in the plurality of quantization components corresponding to is measured, and the number NZnum of the non-zero components is output to the position calculator PosClc2 and the variable-length encoder VLC2.
The position calculator PosClc2 is based on the number of non-zero components NZnum from the non-zero coefficient measuring instrument NZcount and the run value Run from the run measuring instrument RunCal, and the number of encoded 0 components and non-zero components in the target block. The sum of the numbers of is calculated, and the calculated value Pos2 is output.
The number converter CodeTrans outputs the code number ExtCode corresponding to the runlevel pair from the level value Lev2 and the run value Run2 based on the correspondence between the runlevel upper digit pair and the code number ReOdrCode. At this time, in the number converter CodeTrans, the calculated value Pos2 output from the position computer PosClc2 is used to calculate the number of uncoded components in the target block.
Here, the code number ExtCode corresponding to the runlevel pair output from the number converter CodeTrans is in the second code table in which the correspondence between the runlevel pair and the code number is different from that of the first code table. It was obtained based on. Further, in this second code table, a code table in which the correspondence between the runlevel pair and the code number is different from that of the first code table is created by the rearrangement processing by the order changer ReOdr, and further, the above-mentioned code table is created. The code table created by the reordering device ReOdr is subjected to the number converter CodeTrans based on the above calculated value Pos2, and the runlevel pair whose run value exceeds the maximum run value Run is assigned a code number without assigning a code. It was created by associating with ExtCode.
Then, the variable-length encoder VLC2 encodes the number of non-zero components NZnum and assigns a bit string (codeword) to the code number ExtCode to generate a coded stream Str3. I do.
The operation of the variable length encoder VLC2 will be described in detail below. Unlike the variable-length encoder VLC of the third embodiment, the variable-length encoder VLC2 of the fifth embodiment not only encodes the code number ExtCode corresponding to the run-level pair of the target block, but also encodes the target. The number of non-zero components of a block, NZnum, is encoded before the code number ExtCode of the block is encoded.
In this way, if the number of non-zero components NZnum is encoded before the code number ExtCode of the block is encoded, the number of non-zero components NZnum of the target block can be decoded first at the time of decoding, and the number of non-zero components can be decoded first. When the number of runlevel pairs corresponding to the number NZnum is restored, it becomes possible to determine that the restoration of the last runlevel pair of the target block is completed. As a result, the special value EOB (the value transmitted after the last non-zero component) to be encoded at the end of the target block, which was required in the variable length encoder VLC of the third embodiment, is variable length encoded. It is not required for the VLC2 device.
Next, the operation of the position calculator PosClc2 and the number converter CodeTrans will be described in detail. Assuming that there are N Blocks of the quantization component QS of the target block, including the 0 component and the non-zero component, the maximum run length (maximum number of consecutive 0 coefficients) is NBlock- from the number of non-0 coefficients of the target block NZnum. It becomes NZnum pieces. In addition, the maximum run value (maximum number of consecutive 0 coefficients) MaxRun (1) at the time when the coding of the first runlevel pair is completed is as follows using the run value FRun of the first runlevel pair of the target block. It is expressed by equation (5). MaxRun (1) = NBlock-NZnum-FRun (5)
In general, the maximum run value MaxRun (i) at the time when the coding of the i-th runlevel pair in the block is completed is expressed by the following equation (6). MaxRun (i) = NBlock-NZnum-{Sum of run values from 1st to (i) th} (6)
Therefore, the position calculator PosClc2 outputs the calculated value Pos2 shown by the following equation (7), so that the maximum run value MaxRun (i) is the value indicated by the equation (8) in the number converter CodeTrans. Instruct. Pos2 = NZnum + {sum of run values from 1st to (i) th} (7) MaxRun (i) = NBlock-Pos2 (8)
The number converter CodeTrans associates a second code table with a code number ExtCode that does not assign a code to a runlevel pair whose run value exceeds the maximum run value MaxRun. As a result, it is possible to reduce the redundancy of the coding process by assigning the code to the runlevel pair, which should not occur, and improve the compression rate.
When the variable-length coding process is performed on the quantization component, the first and second code tables are generated by the first part (regularly build VLC) that can be generated by an arithmetic operation and a regular operation. When using a variable-length code table composed of a second part (table look up VLC) that cannot be performed, the second code table is based on the maximum run value of both parts with respect to the first code table. However, in the second code table, only the first part that can be generated by an arithmetic operation that is easy to operate is changed with respect to the first code table according to the maximum run value. It may be a thing.
In addition, when the variable-length code table is changed according to the maximum run value MaxRun (i) at the time when the coding of the i-th runlevel pair is completed, the code table is changed, and the run value Run is the maximum run value MaxRun. Instead of assigning no code to runlevel pairs that exceed (i), the variable-length code table is directly unsigned to runlevel pairs whose run value Run exceeds the maximum run value MaxRun (i). You may switch to.
FIG. 24 is a diagram showing an example of a variable length code table. The code table Ta (FIG. 24 (a)) has a shorter code assigned to a smaller run value than the code table Tb (FIG. 24 (b)). In (b)), the code assigned to the small run value is a shorter code than that in the code table Tc (Fig. 24 (c)).
Further, the code table Tc (Fig. 24 (c)) is a code table in which the code assigned to the Level value having a smaller absolute value is a shorter code than the code table Tb (Fig. 24 (b)). Tb (Fig. 24 (b)) is a shorter code assigned to the Level value having a smaller absolute value than the code table Ta (Fig. 24 (a)).
Therefore, when the maximum run value MaxRun is small, the code table Ta in Fig. 24 (a), when the maximum run value MaxRun is large, the code table Tc in Fig. 24 (c), and when the maximum run value MaxRun is an intermediate value. It is recommended to select and use the code table Tb shown in FIG. 24 (b).
As described above, in the fifth embodiment, in the image coding apparatus 105 that encodes the quantization coefficient obtained by quantizing the frequency component of the image signal, a variable length code is used for the quantization coefficient by using a code table. A run-length encoder RLE3 to be assigned is provided, and in the run-length encoder RLE3, the number of processed coefficients subjected to the coding process in the target block of the coding process and the number of processed coefficients in the target block and the coding process in the target block. It is unlikely to appear depending on the sum of the number of uncoded non-zero coefficients that have not been applied, in other words, the number of non-zero coefficients of the target block and the number of processed run values of the target block. Since the code table excluding the run-level pair is selected, there is an effect that the variable-length coding efficiency can be improved.
In the fifth embodiment, as the run-length encoder, the number of non-zero components of the target block is NZnum in the encoder that performs variable-length coding for the quantization component of each block using a run-level pair. However, the run-length encoder is a code for separately variable-length coding the run value and the level value for the quantization component of each block, for example, as in the first embodiment. The device may encode the number of non-zero components of the target block, NZnum. In this case, the maximum run value in the target block can be obtained by subtracting the number of non-zero components NZnum from the number of all components in the target block.
(Embodiment 6) FIG. 22 is a block diagram for explaining the image decoding apparatus according to the sixth embodiment of the present invention. The image decoding device 106 of the sixth embodiment replaces the run-length decoder RLD2 in the image decoding device 104 of the fourth embodiment shown in FIG. 18 by the decoding process of the coded data for each block. It is equipped with a run-length decoder RLD3 that restores runlevel pairs and the number of non-zero components. The other devices in the image decoding device 106 of the sixth embodiment are the same as those in the image decoding device 104 of the fourth embodiment.
FIG. 23 shows a specific configuration of the run-length decoder RLD3 in the image decoding apparatus 106. The run-length decoder RLD3 of the sixth embodiment replaces the position computer PosClc in the run-length decoder RLD2 of the fourth embodiment shown in FIG. 19, and is a decoded run in the target block of the decoding process. It is equipped with a position calculator PosClc2 that calculates the sum Pos2 of these numbers based on the number of values and the number of non-zero coefficients NZnum in the target block.
Further, the variable length decoder VLD2 of the run-length decoder RLD3 of the sixth embodiment is different from the variable-length decoder VLD of the run-length decoder RLD2 of the fourth embodiment, and has a code number ExtCode. Along with the decoding process that restores the number of encoded non-zero components, the decoding process that restores the number of encoded non-zero components NZnum is performed.
Next, the action and effect will be described. The operations of the inverse quantizer IQ, the inverse frequency converter ITrans, and the inverse blocker DeBlk of the image decoding apparatus 106 of the sixth embodiment are the same as those of the image decoding apparatus 104 of the fourth embodiment. Further, the devices other than the variable length decoder VLD2, the position measuring instrument PosClc2, and the number reverse converter ICodeTrans of the run length decoder RLD3 of the sixth embodiment, that is, the order reverse reordering device IReOdr and the run level acquirer RunLevDec. The operation of the level inverse converter ILevConv, the run inverse converter IRunConv, and the inverse zigzag scan device IScan is exactly the same as that of the run-length decoder RLD2 of the fourth embodiment. The operation of the chemical device VLD2, the position measuring device PosClc2, and the number inverse converter ICodeTrans will be described.
The variable-length decoder VLD2 decodes the coded stream Str3 and outputs a code number ExtCode corresponding to the code word (bit string) constituting the stream. The number inverse converter ICodeTrans is based on at least one of the above quantization parameters QP and VLD selection signal VldSel, and the addition value Pos2 of the number of decoded coefficients and the number of undecoded non-zero coefficients, and the number converter CodeTrans. Performs the reverse operation to separate the code number PrmCode corresponding to the run level upper digit pair consisting of the level value Lev1 and the run value Run1 from the code number ExtCode, and the level value Lev2 and the run value Run2.
Then, the order reverse reordering device IReOdr, the runlevel acquirer RunLevDec, the run reverse converter IRunConv, the level reverse converter ILevConv, and the reverse zigzag scan device IScan perform the same operations as those in the fourth embodiment.
Here, in the number inverse converter ICodeTrans, the order inverse selector IReOdr, the run inverse converter IRunConv, and the level inverse converter ILevConv, at least one of the quantization parameter QP and the VLD selection signal VldSel and the coefficient addition value. Based on Pos2, the first and second code tables are selected, and the operation based on the selected code table is performed.
The operation of the variable length decoder VLD2 will be described in detail below. Unlike the variable-length decoder VLD of the fourth embodiment, the variable-length decoder VLD2 of the sixth embodiment not only decodes the code number ExtCode corresponding to the runlevel pair, but also decodes the code of the target block. Decode the number of non-zero components that have been converted to NZnum. If the number of non-zero components NZnum can be obtained by decoding, it can be determined that the NZnumth runlevel pair is the last runlevel pair of the target block when the NZnum runlevel pairs are decoded. As a result, the value EOB to be encoded at the end of the target block required by the variable-length decoder VLD is no longer required by the variable-length decoder VLD2.
For example, if the quantization component QS of the target block has N Blocks including 0 and non-zero components, the maximum run value (maximum number of consecutive 0 coefficients) is calculated from the number of non-zero coefficients of the target block, NZnum. NBlock-There are NZnum pieces. Further, the maximum run value (maximum number of consecutive 0 coefficients) MaxRun (1) at the time of decoding to restore the first runlevel pair is as described in the fifth embodiment (NBlock-NZnum-). FRun)
In general, the maximum run value MaxRun (i) at the time of decoding to restore the i-th runlevel pair in a block is MaxRun (i) = NBlock-NZnum- {1st, as shown below. It is the sum of the runlevels from to (i) th.
Therefore, the position calculator PosClc2 outputs the coefficient addition value Pos2 [= NZnum + {sum of the runlevels from the 1st to the (i) th}] to output the i-th runlevel pair to the number converter CodeTrans. Indicates that the maximum runlevel at the time of decryption to be restored is (NBlock-Pos2).
In the number inverse converter ICodeTrans, a code number ExtCode corresponding to a code is obtained by using a code table in which a code is not assigned to a code number corresponding to a runlevel pair whose run value exceeds the maximum run value Run. The code assigned to the code number can be decoded by the code assignment that avoids the code assignment to the runlevel pair that should not occur.
When the variable length decoding process is performed, the first and second code tables include a first part (regularly build VLC) that can be generated by an arithmetic operation and a second part (regularly build VLC) that cannot be generated regularly. When a variable-length code table composed of (table look up VLC) is used, the second code table may be obtained by changing both parts of the first code table according to the maximum run value. However, in the second code table, only the first part that can be generated by an arithmetic operation that is easy to calculate may be changed with respect to the first code table according to the maximum run value.
Also, when changing the variable-length code table according to the maximum run value MaxRun at the time when decoding to restore the i-th run level pair is completed, the code table is changed and the run value exceeds the maximum run value MaxRun. Instead of assigning no code to the run-level pair, a variable-length code table can be, for example, code table Ta shown in FIG. 24 (a), code table Tb shown in FIG. 24 (b), or FIG. 24 (c). You may switch directly to the code table Tc shown in.
For example, if the maximum run value MaxRun is small, the code table Ta in Fig. 24 (a), if the maximum run value MaxRun is large, the code table Tc in Fig. 24 (c), and if the maximum run value MaxRun is an intermediate value. It is recommended to select and use the code table Tb shown in FIG. 24 (b).
As described above, in the sixth embodiment, the variable length code corresponds to the image decoding apparatus 106 that recovers the quantization coefficient obtained by quantizing the frequency component of the image signal by the decoding process of the coded data. A run-length decoder RLD3 that acquires a quantization coefficient using a code table is provided, and the run-length decoder RLD3 includes the number of processed coefficients that have been decoded in the target block and the target. A code table excluding run-level pairs that are unlikely to appear is selected according to the sum of the number of undecrypted non-zero coefficients in the block that have not been decoded. It is possible to satisfactorily perform the decoding process corresponding to the variable-length coding process that can more effectively remove the redundant information existing in the quantization coefficient.
In the sixth embodiment, as the run-length decoder, the target block is encoded in the decoder that performs variable-length decoding on the quantization component of each block using the run-level pair. Although the one that decodes the number of non-zero components NZnum is shown, the run-length decoder obtains the run value and the level value corresponding to the quantization component of each block, for example, as in the second embodiment. In a run-length decoder that separately performs variable-length decoding, the number of encoded non-zero components NZnum of the target block may be decoded. In this case, when the NZnum level values are decoded, it can be determined that the NZnumth level value is the last level value of the target block.
Further, in each of the above embodiments, an example of switching the code table with the quantization parameter QP has been described, but other parameters may be used instead of the quantization parameter QP. For example, new parameters may be introduced and explicitly switched block by block.
Further, in each of the above-described embodiments, as a method of variable-length coding (decoding) of coefficients such as quantization components, a method using a VLC table is performed, and the above-mentioned coding (decoding) processing is performed. Although the VLC table is switched according to the information on the coefficient and at least one of the parameters related to the generation of the coefficient, the variable length coding (decoding) method of the coefficient such as the quantization component of the present invention is described. It is not limited to the one using VLC table. For example, the method of variable-length coding the quantization component in the first, third, and fifth embodiments is a variable-length coding method that does not use the VLC table, and is information on the processed coefficient and the above coefficient. The code table corresponding to the VLC table may be switched according to at least one of the parameters related to generation. Further, the method of variable-length decoding of the encoded data of the quantization component according to the second, fourth, and sixth embodiments is the variable-length decoding method that does not use the VLC table, and the information regarding the processed coefficient, And the code table corresponding to the VLC table may be switched according to at least one of the parameters related to the generation of the coefficient.
Further, in each of the above embodiments, an image coding device that performs variable-length coding processing or an image decoding device that performs variable-length decoding processing is realized by hardware, but these devices are software. It may be realized by wear. In this case, by recording the program for performing the variable-length coding process or the variable-length decoding process shown in each of the above embodiments on a data storage medium such as a flexible disk, the image coding apparatus or the image The decoding device can be easily realized in an independent computer system.
FIG. 25 is a diagram for explaining a computer system that performs the variable length coding processing of the above embodiments 1, 3 and 5 or the variable length decoding processing of the embodiments 2, 4 and 6. FIG. 25 (a) shows the appearance, cross-sectional structure, and flexible disk body of the flexible disk, which is a storage medium for programs used in a computer system, and FIG. 25 (b) shows the physical format of the flexible disk body. An example of is shown. The flexible disk FD has the disk body D built in the case F, and a plurality of track Trs are concentrically formed on the surface of the disk body D from the outer circumference to the inner circumference, and each track is formed. It is divided into 16 sectors Se in the angular direction. Therefore, in the flexible disk FD in which the program is stored, a program for performing the variable-length coding process or the variable-length decoding process is recorded in the storage area allocated on the disk body D.
Further, FIG. 25 (c) shows a configuration for recording / reproducing the above program on the flexible disk FD. When recording the above program on the flexible disk FD, the above program is written from the computer system Cs to the flexible disk FD via the flexible disk drive. When the image encoding device or the image decoding device is constructed in the computer system by the program recorded in the flexible disk FD, the program is read from the flexible disk by the flexible disk drive and transferred to the computer system.
In the above description, a flexible disk is shown as a recording medium for recording a program for performing variable-length coding processing or variable-length decoding processing. However, even if an optical disk is used as this recording medium, the flexible disk can be used. As in the case of use, variable-length coding processing or variable-length decoding processing by software can be performed. The recording medium is not limited to these, and any medium such as a CD-ROM, a memory card, a ROM cassette, etc. that can record a program can be used. Even when these recording media are used, the flexible disk or the like can be used. A variable-length coding process or a variable-length decoding process can be performed by a computer system in the same manner as in the case of using.
Further, an application example of the image coding method and the image decoding method shown in the above embodiment and a system using the same will be described below. FIG. 26 is a block diagram showing the overall configuration of the content supply system 1100 that realizes the content distribution service. The communication service providing area is divided into areas (cells) of a desired size, and base stations 1107 to 1110, which are fixed radio stations, are installed in each cell.
In this content supply system 1100, for example, a computer 1111, a PDA (personal digital assistant) 1112, a camera 1113, a mobile phone 1114, and a camera are connected to the Internet 1101 via an Internet service provider 1102, a telephone network 1104, and base stations 1107-1110. Each device such as the mobile phone 1200 with is connected.
However, the content supply system 1100 is not limited to the one including all of the plurality of devices shown in FIG. 26, and may include some of the plurality of devices shown in FIG. 26. Further, each device may be directly connected to the telephone network 1104 without going through the base stations 1107 to 1110, which are fixed radio stations.
Here, the camera 1113 is a device capable of shooting a moving image such as a digital video camera. In addition, the mobile phone is a PDC (Personal Digital Communications) system, a CDMA (Code Division Multiple Access) system, a W-CDMA (Wideband-Code Division Multiple Access) system, or a GSM (Global System for Mobile Communications) system mobile phone. Alternatively, it may be PHS (Personal Handyphone System) or the like, and any method may be used.
In addition, the streaming server 1103 is connected to the camera 1113 via the base station 1109 and the telephone network 1104, and in this system, live distribution is performed based on the encoded data transmitted by the user using the camera 1113. Etc. are possible. The captured data may be encoded by the camera 1113 or by a server or the like that performs data transmission processing. Further, the moving image data obtained by capturing the moving image with the camera 1116 may be transmitted to the streaming server 1103 via the computer 1111. The camera 1116 is a device capable of shooting still images and moving images such as a digital camera. In this case, the moving image data may be encoded by either the camera 1116 or the computer 1111. Further, the coding process is performed by the LSI 1117 of the computer 1111 and the camera 1116.
The software for image coding / decoding may be stored in a storage medium (CD-ROM, flexible disk, hard disk, etc.) which is a recording medium readable by a computer 1111 or the like. Further, the moving image data may be transmitted by the mobile phone 1200 with a camera. This moving image data is data encoded by the LSI of the mobile phone 1200.
In this content supply system 1100, the content photographed by the user with the camera 1113, the camera 1116, etc. (for example, a video captured by a live music) is encoded from the camera in the same manner as in the above embodiment, and is encoded by the streaming server 1103. On the other hand, the content data is stream-delivered from the streaming server 1103 to the requested client.
Clients include a computer 1111, a PDA 1112, a camera 1113, a mobile phone 1114, and the like, which can decode the coded data.
In such a content supply system 1100, the encoded data can be received and played on the client side, and further, by receiving, decoding, and playing back in real time on the client side, personal broadcasting can also be performed. It is feasible.
The image coding device or the image decoding device shown in each of the above embodiments may be used for coding and decoding of each device constituting this system.
A mobile phone will be described as an example. FIG. 27 is a diagram showing a mobile phone 1200 using the image coding method and the image decoding method described in the above embodiment.
This mobile phone 1200 has an antenna 1201 for transmitting and receiving radio waves to and from the base station 1110, a camera unit 1203 capable of capturing images and still images of a CCD camera, and an image and antenna 1201 captured by the camera unit 1203. It has a display unit 1202 such as a liquid crystal display that displays data such as images received in.
Further, the mobile phone 1200 includes a main body unit 1204 to which a plurality of operation keys are attached, an audio output unit 1208 such as a speaker for performing audio output, and an audio input unit 1205 such as a microphone for performing audio input. , Recording media 1207 for storing encoded or decrypted data such as captured video or still image data, received mail data, video data or still image data, and mobile phone 1200 It has a slot portion 1206 for mounting the recording media 1207 on the.
Here, the recording medium 1207 contains a flash memory element, which is a type of EEPROM (Electrically Erasable and Programmable Read Only Memory), which is a non-volatile memory that can be electrically rewritten or erased in a plastic case such as an SD card. Is.
Further, the mobile phone 1200 will be described in detail with reference to FIG. 28. The mobile phone 1200 has a main control unit 1241 that collectively controls each unit of the main body unit including the display unit 1202 and the operation key 1204.
The mobile phone 1200 includes a power supply circuit unit 1240, an operation input control unit 1234, an image coding unit 1242, a camera interface unit 1233, an LCD (Liquid Crystal Display) control unit 1232, an image decoding unit 1239, a multiplex separation unit 1238, and recording. It has a reproduction unit 1237, a modulation / demodulation circuit unit 1236, and an audio processing unit 1235. Each part of the mobile phone 1200 is connected to each other via the synchronization bus 1250.
When the call end and the power key are turned on by the user's operation, the power supply circuit unit 1240 starts the digital mobile phone 1200 with a camera in an operable state by supplying the power of the battery pack to each unit. To do.
In the mobile phone 1200, each unit is operated under the control of the main control unit 1241 including the CPU, ROM, RAM, and the like. That is, in the mobile phone 1200, the voice signal obtained by voice input to the voice input unit 1205 in the voice call mode is converted into digital voice data by the voice processing unit 1235. The digital audio data is subjected to spread spectrum processing by the modulation / demodulation circuit unit 1236, further subjected to digital-to-analog conversion processing and frequency conversion processing by the transmission / reception circuit unit 1231, and transmitted via the antenna 1201.
Further, in the mobile phone 1200, the received signal received by the antenna 1201 in the voice call mode is amplified and subjected to frequency conversion processing and analog-digital conversion processing. The received signal is further subjected to spectrum reverse diffusion processing by the modulation / demodulation circuit unit 1236, converted into an analog audio signal by the audio processing unit 1235, and this signal is output via the audio output unit 1208.
Further, in the mobile phone 1200, when transmitting an e-mail in the data communication mode, the text data of the e-mail input by the operation of the operation key 1204 of the main body is sent to the main control unit 1241 via the operation input control unit 1234. It is sent. In the main control unit 1241, the text data is subjected to spread spectrum processing by the modulation / demodulation circuit unit 1236, digital-to-analog conversion processing and frequency conversion processing by the transmission / reception circuit unit 1231, and then transmitted to the base station 1110 via the antenna 1201. Each part is controlled so as to be.
In the mobile phone 1200, when the image data is transmitted in the data communication mode, the image data captured by the camera unit 1203 is supplied to the image coding unit 1242 via the camera interface unit 1233. Further, in the mobile phone 1200, when the image data is not transmitted, the image data obtained by the imaging by the camera unit 1203 may be directly displayed on the display unit 1202 via the camera interface unit 1233 and the LCD control unit 1232. It is possible.
The image coding unit 1242 includes the image coding device described in each of the above embodiments. The image coding unit 1242 converts the image data supplied from the camera unit 1203 into coded image data by compressing and coding the image data according to the image coding method of the above embodiment, and sends the image data to the multiple separation unit 1238. .. At the same time, at the same time, the mobile phone 1200 transmits the voice input to the voice input unit 1205 during imaging by the camera unit 1203 to the multiplex separation unit 1238 as digital voice data via the voice processing unit 1235.
The multiplexing separation unit 1238 multiplexes the coded image data supplied from the image coding unit 1242 and the audio data supplied from the audio processing unit 1235 by a predetermined method. The multiplexed data obtained as a result is subjected to spread spectrum processing by the modulation / demodulation circuit unit 1236, further subjected to digital-to-analog conversion processing and frequency conversion processing by the transmission / reception circuit unit 1231, and transmitted via the antenna 1201.
Further, in the mobile phone 1200, when receiving the data of the moving image file linked to the homepage or the like in the data communication mode, the received signal received from the base station 1110 via the antenna 1201 is spectrum reverse spread by the modulation / demodulation circuit unit 1236. Processing is performed, and the resulting multiplexed data is sent to the multiplexing separator 1238.
Further, when decoding the multiplexed data received via the antenna 1201, the multiplexing separator 1238 separates the multiplexed data into a coded bit stream of image data and a coded bit stream of audio data. Separately, the coded image data is supplied to the image decoding unit 1239 and the audio data is supplied to the audio processing unit 1235 via the synchronization bus 1250.
Next, the image decoding unit 1239 is provided with an image decoding device according to an embodiment of the present invention. The image decoding unit 1239 generates reproduced moving image data by decoding the coded bit stream of the image data by a decoding method corresponding to the coding method according to the embodiment of the present invention described above, and displays the reproduced moving image data on the LCD. It is supplied to the display unit 1202 via the control unit 1232. As a result, for example, the moving image data included in the moving image file linked to the home page is displayed. At the same time, the voice processing unit 1235 converts the voice data into an analog voice signal and then supplies the voice data to the voice output unit 1208. As a result, for example, the audio data included in the moving image file linked to the home page is reproduced.
The system to which the image coding method and the image decoding method of each embodiment of the present invention described above can be applied is not limited to the example of the content supply system.
For example, recently, digital broadcasting by satellite and terrestrial broadcasting has become a hot topic, and the image encoding device or image decoding device of the above embodiment can be applied to a digital broadcasting system as shown in FIG. 29. ..
Specifically, a coded bitstream of video information is transmitted from the broadcasting station 1409 to a satellite 1410 such as a communication satellite or a broadcasting satellite by wireless communication. When the broadcasting satellite 1410 receives the coded bitstream of the video information, a radio wave for broadcasting is output, and this radio wave is received by a home antenna 1406 equipped with satellite broadcasting receiving equipment. For example, in a device such as a television (receiver) 1401 or a set-top box (STB) 1407, the encoded bitstream is decoded and the video information is reproduced.
Further, the image decoding device shown in the above embodiment can also be mounted on the playback device 1403 that reads and decodes the coded bit stream recorded on the storage medium 1402 such as a CD or DVD which is a recording medium. Is.
In this case, the reproduced video signal is displayed on the monitor 1404. In addition, an image decoding device is mounted in a set-top box 1407 connected to a cable TV cable 1405 or a satellite / terrestrial broadcasting antenna 1406, and the output of the image decoding device is reproduced on the TV monitor 1408. The configuration is also conceivable. In this case, the image decoding device may be incorporated in the television instead of the set-top box. Further, the vehicle 1412 having the antenna 1411 can receive a signal from the satellite 1410 or the base station 1107 or the like and reproduce the moving image on the display device such as the car navigation system 1413 mounted on the vehicle 1412.
Further, the image signal can be encoded by the image coding apparatus shown in the above embodiment and recorded on a recording medium.
Specific examples of the recording device include a recorder 1420 such as a DVD recorder that records an image signal on a DVD disc 1421 and a disc recorder that records an image signal on a hard disk. Further, the image signal can be recorded on the SD card 1422. Further, if the recorder 1420 is provided with the image decoding device shown in the above embodiment, the recorder 1420 can reproduce the image signal recorded on the DVD disc 1421 or the SD card 1422 and display it on the monitor 1408. ..
As the configuration of the car navigation system 1413, for example, among the configurations of the mobile phone shown in FIG. 28, those having a portion other than the camera unit 1203, the camera interface unit 1233, and the image coding unit 1242 can be considered, and the same thing can be said. Computer 1111 and television (receiver) 1401 etc. can be considered.
Further, in the terminal such as the mobile phone 1114, in addition to the transmission / reception type terminal having both the encoder and the decoder, the transmitting terminal having only the encoder and the receiving terminal having only the decoder are implemented in three ways. The format is conceivable.
As described above, the image coding method or the image decoding method shown in the above-described embodiment can be used for any of the above-mentioned devices / systems, and by doing so, the effects described in the above-described embodiment can be used. Can be obtained.
Furthermore, it goes without saying that the embodiments of the present invention and application examples thereof are not limited to those shown in the present specification.
The present invention provides redundancy of information existing in data (quantization coefficient) subject to variable-length coding processing.<u style="single">, It can be removed more effectively depending on the characteristics of the quantization coefficient and the status of the coding process for the quantization coefficient, which can further improve the compression rate of the image signal and the like.</u>It is a thing.
<figref num="1">It is a block diagram for demonstrating the image coding apparatus 101 according to Embodiment 1 of this invention.</figref><figref num="2">It is a block diagram which shows the run-length encoder RLE1 which constitutes the image coding apparatus 101 of Embodiment 1.</figref><figref num="3">It is a figure for demonstrating the zigzag scan (Fig. (A)-Fig. (D)) and the rearrangement of a run value, a level value (Fig. ..</figref><figref num="4">It is a figure explaining the processing in the variable length encoder LVLC of the run length encoder RLE1, FIG. 4 (a) is the flow of the variable length coding processing of a level value, and FIG. 4 (b) is the level value. The code table used in the variable length coding process of is shown.</figref><figref num="5">It is a figure explaining the processing in the variable length encoder RVLC of the run length encoder RLE1, the flow of the variable length coding processing of a run value (Fig. (A)), and the variable length coding of the run value. The code table (Fig. (B)) used in the processing is shown.</figref><figref num="6">When the total number of bits of the code assigned to the level value (quantization parameter relatively small) by the variable length encoder LVLC is used in the case of using the code table L2 (Fig. (A)) and the case of using the code table L1. (Fig. (B)) is shown separately.</figref><figref num="7">When the total number of bits of the code assigned to the level value (relatively large quantization parameter) in the variable-length encoder LVLC is used in the case of using the code table L2 (Fig. (A)) and the case of using the code table L1. (Fig. (B)) is shown separately.</figref><figref num="8">When a specific code table is used for the total number of bits of the code assigned to the run value by the variable length encoder RVLC (Fig. (A)), the code table is switched and the run value is rearranged. (Fig. (B)) is shown separately for the case where only the code table is switched (Fig. (C)).</figref><figref num="9">It is a block diagram for demonstrating the image decoding apparatus 102 according to Embodiment 2 of this invention.</figref><figref num="10">It is a block diagram which shows the run-length decoder RLD1 which constitutes the image decoding apparatus 102 of Embodiment 2.</figref><figref num="11">It is a figure explaining the variable length decoding process of the said variable length decoder LVLD, the flow of the variable length decoding process which restores a level value (FIG. (a)), and the code table used in the variable length decoding process. (Fig. (B)) is shown.</figref><figref num="12">It is a figure explaining the variable-length decoding process of the said variable-length decoder RVLD, the flow of the variable-length decoding process which restores a run value (FIG. (a)), and the code table used in the variable-length decoding process. (Fig. (B)) is shown.</figref><figref num="13">It is a block diagram for demonstrating the image coding apparatus 103 according to Embodiment 3 of this invention.</figref><figref num="14">It is a block diagram which shows the run-length encoder RLE2 which constitutes the image coding apparatus 103 of Embodiment 3.</figref><figref num="15">It is a figure which shows the example T2a (Fig. (A)), T2b (Fig. (B)) of the code table (second code table) created by the run length encoder RLE2 of Embodiment 3.</figref><figref num="16">Other Examples of Code Table (Second Code Table) Created by Run Length Encoder RLE2 of Embodiment 3 T2c (Fig. (A)), T2d (Fig. (B)), T2e (Fig. It is a figure which shows c)).</figref><figref num="17">It is a figure which shows the example of the coding order of the quantization component in the run-length encoder RLE2 of Embodiment 3 above.</figref><figref num="18">It is a block diagram for demonstrating the image decoding apparatus 104 according to Embodiment 4 of this invention.</figref><figref num="19">It is a block diagram which shows the run-length decoder RLD2 which constitutes the image decoding apparatus 104 of the said Embodiment 4.</figref><figref num="20">It is a block diagram for demonstrating the image coding apparatus 105 according to Embodiment 5 of this invention.</figref><figref num="21">It is a block diagram which shows the run length encoder RLE3 which comprises the image coding apparatus 105 of Embodiment 5.</figref><figref num="22">It is a block diagram for demonstrating the image decoding apparatus 106 according to Embodiment 6 of this invention.</figref><figref num="23">It is a block diagram which shows the run-length decoder RLD3 which comprises the image decoding apparatus 106 of Embodiment 6.</figref><figref num="24">Examples of variable-length code tables used in the run-length encoder RLE3 of the fifth embodiment and the run-length decoder RLD3 of the sixth embodiment Ta (Fig. (A)), Tb (Fig. (B)), Tc It is a figure which shows (Fig. (C)).</figref><figref num="25">A data storage medium (FIGS. (a) and (b)) containing a program for performing the variable-length coding process or the variable-length decoding process of each of the above embodiments by a computer system, and the above computer system (FIG. (c)). )) Is a diagram for explaining).</figref><figref num="26">It is a figure explaining the application example of the image coding method and the image decoding method of each said embodiment, and shows the content supply system which realizes the content distribution service.</figref><figref num="27">It is a figure explaining the mobile phone using the image coding method and the image decoding method of each said embodiment.</figref><figref num="28">It is a block diagram which shows the detailed structure of the mobile phone shown in FIG. 27.</figref><figref num="29">It is a conceptual diagram which shows the digital broadcasting system which used the image coding apparatus or the image decoding apparatus of each said embodiment.</figref><figref num="30">It is a block diagram which shows the conventional image coding apparatus 201a.</figref><figref num="31">It is a block diagram for demonstrating the encoder RLE0a which constitutes the conventional image coding apparatus 201a.</figref><figref num="32">It is a block diagram for demonstrating the conventional image decoding apparatus 202a corresponding to the conventional image coding apparatus 201a.</figref><figref num="33">It is a block diagram for demonstrating the decoder RLD0a constituting the conventional image decoding apparatus 202a.</figref><figref num="34">It is a block diagram which shows the image coding apparatus 201b which performs the conventional run length coding.</figref><figref num="35">It is a block diagram for demonstrating the run-length encoder RLE0b constituting the conventional image coding apparatus 201b.</figref><figref num="36">It is a block diagram for demonstrating the conventional image decoding apparatus 202b corresponding to the conventional image coding apparatus 201b.</figref><figref num="37">It is a block diagram for demonstrating the run-length decoder RLD0b constituting the conventional image decoding apparatus 202b.</figref><figref num="38">It is a block diagram for demonstrating another image coding apparatus 201c which performs conventional run-length coding.</figref><figref num="39">It is a block diagram which shows the run-length encoder RLE0c which constitutes the conventional image coding apparatus 201c.</figref><figref num="40">It is a block diagram for demonstrating the conventional image decoding apparatus 202c corresponding to the conventional image coding apparatus 201c.</figref><figref num="41">It is a block diagram for demonstrating the run-length decoder RLD0c constituting the conventional image decoding apparatus 202c.</figref><figref num="42">It is a figure which shows the example of the coding table used in the run-length encoder RLE0c which constitutes the conventional image coding apparatus 201c.</figref><figref num="43">It is a figure which shows the example of the coding order of the quantization component in the conventional run length encoder RLE0a, RLE0b, RLE0c.</figref>
Code description
101,103,105 Image Encoding Device 102,104,106 Image Decoding Device 1100 Content Supply System 1200 Mobile Phone 1400 Digital Broadcasting System Blk Blocker CodeTrans Number Converter DeBlk Reverse Blocker DMUX Separator ICodeTrans Number Reverse Converter ILevConv Level Reverse Converter IQ Reverse Quantizer IReOdr Order reverse sorter IRunConv Run reverse converter IScan Reverse zigzag scan device ITrans Reverse frequency converter LevCal Level measuring device LevConv Level converter Lreodr, Rreodr Order changer LIreodr, RIreodr Order changer MUX multiplexing NumClc Counting Instrument PosClc Position Calculator Q Quantizer ReOdr Order Sorter RLD1, RLD2, RLD3 Run Length Decoder RLE1, RLE2, RLE3 Run Length Encoder RunCal Run Measuring Instrument RunConv Run Converter RunLevEnc Run Level Code Converter RunLevDec Run Level Acquirer Scan Zigzag Scan Trans Frequency Converter LVLC, RVLC, VLC, VLC2 Variable Length Encoder LVLD, RVLD, VLD, VLD2 Variable Length Decoder Cs Computer System FD Flexible Disk FDD Flexible Disk Drive
Every citation, both ways
| Document | Relation | Office |
|---|---|---|
| JP2000341694A | Cites | Japan |
| JP09294268A | Cites | Japan |
| JP03285460A | Cites | Japan |
155 members in 14 offices
Priority claims10
| Document | Office | Kind | Date |
|---|---|---|---|
| 2001358197 | Japan | A | |
| 2001358197 | Japan | – | |
| 2002099227 | Japan | A | |
| 2002099227 | Japan | – | |
| 2005332053 | Japan | A | |
| 20012001358197 | – | – | – |
| 2002200299227 | – | – | – |
| JP20010358197 | – | – | – |
| JP20020099227 | – | – | – |
| JP20050332053 | – | – | – |
Members155
| Document | Office | Kind | |
|---|---|---|---|
| CA2450360A1 | Canada | A1 | |
| CA2467266A1 | Canada | A1 | |
| CA2607755A1 | Canada | A1 | |
| CA2608610A1 | Canada | A1 | |
| WO03044964A1 | World Intellectual Property Organization (WIPO) | A1 | |
| WO03045065A2 | World Intellectual Property Organization (WIPO) | A2 | |
| AU2002357584A1 | Australia | A1 | |
| AU2002357584A2 | Australia | A2 | |
| AU2002366142A1 | Australia | A1 | |
| JP2004007376A | Japan | A | |
| WO03045065A3 | World Intellectual Property Organization (WIPO) | A3 | |
| BR0206628A | Brazil | A | |
| BR0206629A | Brazil | A | |
| MXPA04000912A | Mexico | A | |
| EP1413139A2 | European Patent Office (EPO) | A2 | |
| KR20040054621A | Republic of Korea | A | |
| KR20040054794A | Republic of Korea | A | |
| MXPA04004770A | Mexico | A | |
| CN1524384A | China | A | |
| EP1453208A1 | European Patent Office (EPO) | A1 | |
| US2004174278A1 | United States of America | A1 | |
| US2005015248A1 | United States of America | A1 | |
| CN1586042A | China | A | |
| US2005185853A1 | United States of America | A1 | |
| US2005185854A1 | United States of America | A1 | |
| US2005190085A1 | United States of America | A1 | |
| US6954157B2 | United States of America | B2 | |
| US6967600B2 | United States of America | B2 | |
| US6992605B2 | United States of America | B2 | |
| US2006071831A1 | United States of America | A1 | |
| JP2006141040A | Japan | A | |
| JP2006157904A | Japan | A | |
| US7109898B2 | United States of America | B2 | |
| US2006261987A1 | United States of America | A1 | |
| US2006262987A1 | United States of America | A1 | |
| US2006273940A1 | United States of America | A1 | |
| US7161508B2 | United States of America | B2 | |
| US2007024474A1 | United States of America | A1 | |
| US2007024475A1 | United States of America | A1 | |
| US2007030183A1 | United States of America | A1 | |
| CN1301014C | China | C | |
| CN1946185A | China | A | |
| CN1946186A | China | A | |
| CN1946187A | China | A | |
| AU2002357584B2 | Australia | B2 | |
| AU2007202509A1 | Australia | A1 | |
| AU2007202520A1 | Australia | A1 | |
| CN101001385A | China | A | |
| CN101005625A | China | A | |
| CN101005626A | China | A | |
| US7283071B2 | United States of America | B2 | |
| CN101064843A | China | A | |
| US7312730B2 | United States of America | B2 | |
| US7312731B2 | United States of America | B2 | |
| US7339506B2 | United States of America | B2 | |
| US2008074296A1 | United States of America | A1 | |
| KR20080041752A | Republic of Korea | A | |
| KR20080044350A | Republic of Korea | A | |
| KR20080044351A | Republic of Korea | A | |
| KR20080044352A | Republic of Korea | A | |
| KR20080044353A | Republic of Korea | A | |
| KR20080044354A | Republic of Korea | A | |
| JP4100552B2 | Japan | B2 | |
| US7411526B2 | United States of America | B2 | |
| JP2008206188A | Japan | A | |
| JP4158985B2This record | Japan | B2 | |
| JP4158986B2 | Japan | B2 | |
| JP4158993B1 | Japan | B1 | |
| JP4158994B1 | Japan | B1 | |
| JP4158995B1 | Japan | B1 | |
| JP4158996B2 | Japan | B2 | |
| JP4158997B1 | Japan | B1 | |
| JP4158998B1 | Japan | B1 | |
| JP4158999B1 | Japan | B1 | |
| JP2008252902A | Japan | A | |
| JP2008252903A | Japan | A | |
| JP2008252904A | Japan | A | |
| JP2008259217A | Japan | A | |
| JP2008259218A | Japan | A | |
| JP2008259219A | Japan | A | |
| US7541948B2 | United States of America | B2 | |
| KR100913633B1 | Republic of Korea | B1 | |
| KR20090098924A | Republic of Korea | A | |
| KR100921030B1 | Republic of Korea | B1 | |
| KR100921031B1 | Republic of Korea | B1 | |
| KR100921032B1 | Republic of Korea | B1 | |
| KR100921033B1 | Republic of Korea | B1 | |
| KR100921034B1 | Republic of Korea | B1 | |
| KR20090120016A | Republic of Korea | A | |
| AU2007202520B2 | Australia | B2 | |
| KR20090122311A | Republic of Korea | A | |
| AU2007202509B2 | Australia | B2 | |
| CA2450360C | Canada | C | |
| CN100586190C | China | C | |
| KR100947399B1 | Republic of Korea | B1 | |
| AU2010200906A1 | Australia | A1 | |
| AU2010200907A1 | Australia | A1 | |
| KR20100042666A | Republic of Korea | A | |
| KR20100042667A | Republic of Korea | A | |
| KR20100042668A | Republic of Korea | A |
36 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Written notification of registration of transferJAPANESE INTERMEDIATE CODE: R350R350 | R350 | |
| Written request for registration of change of domicileJAPANESE INTERMEDIATE CODE: R313531S531 | S531 | |
| Request for trust registration of transfer of rightJAPANESE INTERMEDIATE CODE: R313135S131 | S131 | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Written notification of registration of transferJAPANESE INTERMEDIATE CODE: R350R350 | R350 | |
| Request for trust registration of transfer of rightJAPANESE INTERMEDIATE CODE: R313135S131 | S131 | |
| Request for trust registration of transfer of rightJAPANESE INTERMEDIATE CODE: R313135S131 | S131 | |
| Written request for trust registrationJAPANESE INTERMEDIATE CODE: R313Z02SZ02 | SZ02 | |
| Written request for trust registrationJAPANESE INTERMEDIATE CODE: R313Z02SZ02 | SZ02 | |
| Request for trust registration of transfer of rightJAPANESE INTERMEDIATE CODE: R313135S131 | S131 | |
| Written request for trust registrationJAPANESE INTERMEDIATE CODE: R313Z02SZ02 | SZ02 | |
| Receipt of annual feesJAPANESE INTERMEDIATE CODE: R250R250 | R250 | |
| Written notification of registration of transferJAPANESE INTERMEDIATE CODE: R350R350 | R350 | |
| Request for change of ownership or part of ownershipJAPANESE INTERMEDIATE CODE: R313113S111 | S111 | |
| Written notification of registration of transferJAPANESE INTERMEDIATE CODE: R350R350 | R350 | |
| Request for change of ownership or part of ownershipJAPANESE INTERMEDIATE CODE: R313113S111 | S111 | |
| Written request for registration of change of nameJAPANESE INTERMEDIATE CODE: R313533S533 | S533 | |
| Renewal fee payment (event date is renewal date of database)FPAY | FPAY | |
| Renewal fee payment (event date is renewal date of database)FPAY | FPAY | |
| Renewal fee payment (event date is renewal date of database)FPAY | FPAY | |
| Renewal fee payment (event date is renewal date of database)FPAY | FPAY | |
| Renewal fee payment (event date is renewal date of database)FPAY | FPAY | |
| Certificate of patent or registration of utility modelJAPANESE INTERMEDIATE CODE: R150R150 | R150 | |
| Certificate of patent or registration of utility modelJAPANESE INTERMEDIATE CODE: R150R150 | R150 | |
| First payment of annual fees (during grant procedure)JAPANESE INTERMEDIATE CODE: A61A61 | A61 | |
| Written decision to grant a patent or to grant a registration (utility model)JAPANESE INTERMEDIATE CODE: A01A01 | A01 | |
| Written decision to grant a patent or to grant a registration (utility model)JAPANESE INTERMEDIATE CODE: A01A01 | A01 | |
| Decision of grant or rejection writtenTRDD | TRDD | |
| Written amendmentJAPANESE INTERMEDIATE CODE: A523A521 | A521 | |
| Notification of reasons for refusalJAPANESE INTERMEDIATE CODE: A131A131 | A131 | |
| Report on retrievalJAPANESE INTERMEDIATE CODE: A971007A977 | A977 | |
| Written amendmentJAPANESE INTERMEDIATE CODE: A523A521 | A521 |
Numbers
- Publication
- 4158985
- Publication, DOCDB
- 4158985
- Publication, EPODOC
- JP4158985B
- Application
- 332053
- Application, DOCDB
- 2005332053
- Application, EPODOC
- JP20050332053
Titles2
- English
- Coding method and coding device
- Japanese
- 符号化方法、及び符号化装置
Classification
- IPC, 13
- H03M7 42
- G06T9 00
- H04N1 41
- H04N19 13
- H04N19 134
- H04N19 136
- H04N19 196
- H04N19 60
- H04N19 625
- H04N19 63
- H04N19 91
- H04N19 93
- H04N7 30