Picture coding method
Abstract
A coding procedure to encode, block by block, an image by transforming the image into coefficients that show spatial frequency components, comprising: establish a predictive value of a number of non-null coefficients of a current block to be coded based on the number of non-null coefficients of a coded block located on a periphery of the current block, in which each non-null coefficient has a value other than "0", select a variable length code table based on the established predictive value and code the number of non-zero coefficients of the current block using the selected variable length code table.

Term
Term ended
Projected expiry passed 27 March 2023, 3.5 years ago.
- Priority
- Filed
- Published
- Projected expiry
- Today
3 claims: 1 independent, 2 dependent
- 1ES 2 277 313 T3 REIVINDICACIONES 1. Un procedimiento de codificación para codificar, bloque a bloque, una imagen transformando la imagen en coeficientes que muestran componentes de frecuencia espacial, comprendiendo:establecer un valor predictivo de un número de coeficientes no nulos de un bloque actual que se va a codificar en función del número de coeficientes no nulos de un bloque codificado situado en una periferia del bloque actual, en el que cada coeficiente no nulo tiene un valor distinto de “0”, seleccionar una tabla de códigos de longitud variable en función del valor predictivo establecido y codificar el número de coeficientes no nulos del bloque actual usando la tabla de códigos de longitud variable seleccionada.
- 2El procedimiento de codificación según la reivindicación 1, en el que dicho establecimiento se basa en una pluralidad de los números de coeficientes no nulos de los bloques codificados situados en la periferia del bloque actual.
- 3El procedimiento de codificación según la reivindicación 2, en el que el valor predictivo se establece usando un valor correspondiente a un valor medio de los números de coeficientes no nulos de los bloques codificados situados en la periferia del bloque actual.
Independent claims3
315 paragraphs in 30 sections, as filed
ES 2 277 313 T3
DESCRIPTION
Image coding procedure.
Technical field
The present invention relates to an image encoding method and an image decoding method for digitally encoding an image for transfer or storage.
Previous technique
In general, a moving picture encoding splits an image into a specified number of blocks and performs an intra-picture prediction and an inter-picture prediction of each block. Subsequently, an orthogonal transformation, for example, a discrete cosine transform or the like, is applied for each block of the smallest unit of a division (i.e. 4x4 pixels) in order to carry out encoding using variable length encoding in function of a run-level encoding of coefficients showing spatial frequency components obtained by orthogonal transformation.
Variable-length encoding assigns variable-length codes to values of the coefficients contained in the block to which the orthogonal transformation is applied (level), as well as to numbers that comprise a series of coefficient 0 (execution). In this case, a table that corresponds to the values with variable length codes is called a VLC table. According to the conventional procedure, only one table is prepared as a VLC table respectively for intra-predictive coding and inter-predictive coding (see ISO / IEC 14496-2: 1999 (E) Information Technology - coding of audio visual objects Part 2: Visual (1999-12-01) P.119 7.4.1 Variable length coding).
According to the variable length coding method explained in the existing art, only one table is prepared as a VLC table, respectively, for intra-predictive coding and inter-predictive coding. Therefore, you have the problem that encoding performance varies greatly depending on the quality of a current image to be encoded.
In order to solve this problem, a procedure for preparing a plurality of tables is possible, in order to consult them by changing between them according to the number of coefficients other than 0 contained in a current block to which the orthogonal transformation is applied. To do this, it is necessary to carry out an encoding by applying a variable-length encoding of the numbers of the coefficients other than 0, however, the encoding procedure and the decoding procedure are not yet established.
Document EP 0876058A1 describes that the mode data of a block, to be encoded, is predicted from the already encoded peripheral block mode data and encoded using a table of codewords that is changed according to a ratio of prediction hits. In the codeword table, the length of the codewords is set shorter for encoding modes with a high hit ratio.
Bjontegaard, G. in “Improved Low Complexity Entropy Coding For Tansform Coefficients”, Joint Video Team of ISO / IEC MPEG & ITU-T VCEG (ISO / IEC JTC1 / SC29WG11 and ITU-T SG 16 26) January 29, 2002, P. 1 to 8, describes that the VLC tables are used according to the number of coefficients in a 4 x 4 block.
Description of the invention
The present invention has been devised in view of these circumstances and it is an objective of the present invention to propose an image coding method, as well as an image decoding method that performs a coding of the number of coefficients other than 0 contained in the block. to which the orthogonal transformation is applied with high performance regardless of the current image quality.
In order to solve the problem, which has been mentioned above, an image coding method according to the present invention is proposed, as defined in claim 1.
Therefore, an improvement in encoding performance is realized since optimal variable-length encoding tables can be queried by encoding the number of the non-0 coefficients contained in the current block.
Brief description of the drawings
Fig. 1 is a block diagram showing a structure of an embodiment of an image coding device using an image coding method according to the present invention.
Fig. 2A is a model diagram showing a sketch of a macroblock processing order of each image.
ES 2 277 313 T3
Fig. 2B is a model diagram showing macroblocks belonging to coded blocks that are used as a reference in order to code a number of coefficients of a current block to be coded.
Fig. 3A is a block diagram showing a structure of a coefficient number encoder according to the first embodiment of the present invention. Fig. 3B is a block diagram showing a structure of an example of coefficient number encoder transformation.
Fig. 4A and Fig. 4B are model diagrams showing a physical position of a current block to be encoded and of the encoded blocks to be used as a reference. Fig. 4A presents a use case of three adjacent blocks, while Fig. 4B presents a use case of two adjacent blocks.
Fig. 5 is a model diagram showing an example of a stream when the number of coefficients is transformed into a bit stream by referring to the tables.
Fig. 6A and Fig. 6B are model diagrams showing reference blocks for a current macroblock to be encoded. Fig. 6A presents a use case of three adjacent blocks, while Fig. 6B presents a use case of two adjacent blocks.
Fig. 7A, Fig. 7B and Fig. 7C are model diagrams showing an operation in which a coefficient number storage unit stores the coefficient numbers. Fig. 7A presents a case where a process goes to the next macroblock, while Fig. 7B shows a case where the process goes to the next macroblock. Fig. 7C presents a case where the current macroblock is located at the right edge of the image and the process moves to the next macroblock.
Fig. 8A, Fig. 8B and Fig. 8C are block diagrams showing a structure of a transformation example of a coefficient number encoder according to the first embodiment of the present invention. Fig. 8A shows a case of setting a code table. Fig. 8B shows a case of setting a VLC table. Fig. 8C presents a use case of a single VLC table, without using code tables.
Fig. 9 is a block diagram showing a structure of a transformation example of the coefficient number encoder according to the first embodiment of the present invention.
Fig. 10A is a block diagram showing a structure of a coefficient number encoder according to the second embodiment of the present invention. Fig. 10B is a block diagram showing a structure of an example of coefficient number encoder transformation.
Fig. 11A and Fig. 11B are model diagrams for showing a position of blocks proposed as statistics of the coefficient numbers according to the second and seventh embodiments of the present invention.
Fig. 12A is a block diagram showing a structure of a coefficient number encoder according to the third embodiment of the present invention. Fig. 12B is a block diagram showing a structure of a coefficient number encoder transformation example.
Fig. 13A is a block diagram showing a structure of a coefficient number encoder according to the fourth embodiment of the present invention. Fig. 13B is a block diagram showing a structure of a coefficient number encoder transformation example.
Fig. 14 is a block diagram for showing a method of calculating an evaluation value obtained by changing tables, according to the fourth and ninth embodiments of the present invention.
Fig. 15 is a block diagram showing a structure of an image coding device according to the fifth embodiment of the present invention.
Fig. 16 is a block diagram showing a structure of a coefficient number encoder according to the fifth embodiment of the present invention.
Fig. 17 is a block diagram showing a structure of an embodiment of an image decoding device using an image decoding method according to the present invention.
Fig. 18A is a block diagram showing a structure of a coefficient number decoder according to the sixth embodiment of the present invention. Fig. 18B is a block diagram showing a structure of a coefficient number decoder transformation example.
Fig. 19 is a model diagram showing an example of a stream when a bit stream of a number of coefficients is transformed into the number of coefficients by referring to the tables.
Fig. 20A and Fig. 20B are block diagrams showing a structure of a transformation example of a coefficient number decoder according to the sixth embodiment of the present invention. Fig.
ES 2 277 313 T3
20A presents a case of setting a code table. Fig. 20B shows a case of setting a VLC table. Fig. 20C presents a use case of a VLC table, without using code tables.
Fig. 21 is a block diagram showing a structure of a transformation example of a coefficient number decoder according to the sixth embodiment of the present invention.
Fig. 22A is a block diagram, for explaining a process operation, showing a structure of a coefficient number decoder according to the seventh embodiment of the present invention. Fig. 22B is a block diagram showing a structure of a coefficient number decoder transformation example.
Fig. 23A is a block diagram, for explaining a process operation, showing a structure of a coefficient number decoder according to the eighth embodiment of the present invention.
Fig. 23B is a block diagram showing a structure of a coefficient number decoder transformation example.
Fig. 24A is a block diagram, for explaining a process operation, showing a structure of the coefficient number decoder according to the ninth embodiment of the present invention.
Fig. 24B is a block diagram showing a structure of a coefficient number decoder transformation example.
Fig. 25 is a block diagram, for explaining a process operation, showing a structure of a coefficient number decoder according to the tenth embodiment of the present invention.
Fig. 26A and Fig. 26B are illustrations relating to a recording medium for storing a program to perform an image encoding procedure as well as an image decoding procedure of each embodiment in a computer system. Fig. 26A is an explanatory diagram showing an example of a physical format of a floppy disk that is a main body of a record carrier. Fig. 26B is an explanatory diagram showing a detailed presentation of the flexible disk, a cross-sectional structure, and the flexible disk itself. Fig. 26C is an illustration showing a structure for recording and reproducing the program on the flexible disk FD.
Fig. 27 is a block diagram showing a complete structure of a content provider system that performs a content delivery service.
Fig. 28 is a sketch showing an example of a mobile phone.
Fig. 29 is a block diagram showing an internal structure of the mobile phone.
Fig. 30 is a block diagram showing a complete system of a digital transmission system.
Best mode of carrying out the invention
The following describes the embodiments of the present invention in relation to diagrams and equations.
First form of realization
Fig. 1 is a block diagram showing a structure of an embodiment of an image coding device using an image coding method according to the present invention.
As shown in Fig. 1, the image coding device includes frame memories 101 and 106, an orthogonal transformation unit 102, a quantization unit 103, an inverse quantization unit 104, an inverse orthogonal transformation unit 105, an inter-prediction unit image 107, an intra-image prediction unit 108, a coefficient number detection unit 109, a coefficient number storage unit 110, a coefficient number encoder 111, a coefficient value encoder 112, a bit stream generating unit 113, switches 114 and 115, a difference computing unit 116, and a summation computing unit 117.
Frame memory 101 stores input moving pictures, picture by picture, in the order of display. The inter-image prediction unit 107 detects motion vectors showing a predicted optimal position in the image search area, using image data reconstructed in a coding device as reference images in order to create image data. predictive from motion vectors. The difference calculating unit 116 calculates a difference between the input image data read from the frame memory 101 and the predictive image data input from the inter-image prediction unit 107, in order to create predictive residual image data. .
ES 2 277 313 T3
The intra-image prediction unit 108 creates predictive image data using the image data from the encoded region of the current image and creates predictive residual image data by calculating the difference between the created predictive image data and the input image data. .
The orthogonal transformation unit 102 performs an orthogonal transformation of the input predictive residual image data. The quantization unit 103 performs a quantization of the orthogonally transformed data and creates coefficients that show spatial frequency components, which is a goal of variable length coding. The inverse quantization unit 104 performs an inverse quantization of the coefficients created in the process mentioned above. The inverse orthogonal transformation unit 105 performs an inverse orthogonal transformation of the inversely quantized data and creates reconstructed predictive residual image data. The summation computing unit 117 sums the reconstructed residual image data, input from the inverse orthogonal transformation unit 105, and the predictive image data, input from the inter-predictive unit 107, and creates reconstructed image data. Frame memory 106 stores the created reconstructed image data.
The coefficient number detecting unit 109 detects the number of coefficients having a value other than 0 (hereinafter simply referred to as number of coefficients) from each block by examining the value of the created coefficient. The coefficient number storing unit 110 stores the coefficient numbers detected by the coefficient number detecting unit 109. The coefficient number encoder 111 queries the values of the block's coefficients, which are already encoded and stored in the coefficient number storage unit 110, and performs the encoding of the coefficient numbers using a procedure that is will mention later. The coefficient value encoder 112 performs variable length encoding of the coefficient values themselves by consulting the VLC tables, necessary for variable length encoding, switching between them using the numbers of the coefficients detected by the unit. Detection number of coefficients 109. The bit stream generation unit 113 generates a bit stream by adding other information about the motion vectors or the like, input from the inter-image prediction unit 107, to the coefficient numbers and coefficient values that are encoded.
Next, an explanation is given regarding an operation of an image coding device constructed in accordance with the above.
Moving images proposed for encoding are entered into frame memory 101, image by image, in the order of display, and subsequently rearranged in the order of encoding. Each image is divided into a block of, for example, 16 (horizontal) x 16 (vertical) pixels, called a macroblock, and further processing is performed using the macroblock unit. Fig. 2A is a model diagram showing a sketch of a macroblock processing order of each image, while Fig. 2B is a model diagram showing macroblocks to which the coded blocks belong that are used as a reference in order to code the numbers of the coefficients of the current block. Fig. 2B shows a case where a macroblock MB13 is the current macroblock.
The coding of the macroblocks of each image goes from the upper left, one by one, to the right, as shown in Fig. 2A, goes down one notch when it reaches the right edge and starts again from left to right. The macroblock, which is read from the frame memory 101, is first input to the inter-picture prediction unit 107 when a current macro-block to be encoded is encoded using an inter-picture prediction. The inter-image prediction unit 107 uses the reconstructed image data of the encoded images stored in the frame memory 106 as reference images to detect motion vectors of each block [i.e., 4 (horizontal) x 4 (vertical) pixels] than in an even more divided macroblock. The inter-image prediction unit 107 sends the predictive image data, created by the detected motion vectors, to the difference calculation unit 116. The difference calculating unit 116 creates predictive residual image data by calculating the difference between the predictive image data and the input image data of the current macroblock.
On the contrary, to encode the proposed macroblock by means of an intra-picture prediction, the macroblock that is read from the frame memory 101 is first input into the intra-picture prediction unit 108. The prediction unit intra-image 108 performs an intra-image prediction using the information from the surrounding blocks and creates predictive residual image data.
The predictive residual image data created in this way is subjected to an orthogonal transformation process in the orthogonal transformation unit 102, a quantization process in the quantization unit 103 of each block, and subsequently transformed into the coefficients in those to be carried out variable-length encoding. Said coefficients are input into the coefficient number detection unit 109, into the coefficient value encoder 112, and into the inverse quantization unit 104.
The coefficient number detecting unit 109 detects the number of coefficients in each block having a value other than 0. The detected coefficient numbers are stored in the coefficient number storage unit 110. The coefficient number encoder 111 queries the values by reading from the coefficient number storage unit 110 the numbers of the coefficients of the coded blocks and performs a coding of the number of the coefficients of the current block. Also, the value encoder
ES 2 277 313 T3 of coefficients 112 performs a coding of the values of the coefficients themselves using the numbers of the coefficients detected by the coefficient number detecting unit 109. Finally, the bitstream generating unit 113 generates a final bitstream by adding, to the bitstream, the coefficient numbers and coefficient values, which are encoded, along with other information about the motion vectors. or similar.
The coefficients input into the inverse quantization unit 104 are subjected to the inverse quantization process in the inverse quantization unit 104, as well as the inverse orthogonal transformation process in the inverse orthogonal transformation unit 105, and subsequently transformed into data from reconstructed predictive residual image. Next, the summation computing unit 117 sums the reconstructed predictive residual image data and the predictive image data, input from the inter-image prediction unit 107, to create reconstructed image data and stores them in memory. frame 106.
Therefore, a coding sequence has been explained. Regarding the variable length encoding process of the coefficient numbers carried out by the coefficient number encoder 111, the details are explained in relation to Figs. 3 to 9, as well as in relation to Tables 1 to 7.
Fig. 3A is a block diagram showing, in detail, an internal structure of the coefficient number encoder 111.
In this case, an example of using two tables, a code table and a VLC table, is shown in order to carry out variable-length encoding of the number of coefficients. The code table is a table for transforming the number of coefficients into a code number, while the VLC table is a table for transforming the code number, obtained by the code table, into a variable length code.
As shown in Fig. 3A, the coefficient number encoder 111 includes a predictive value calculating unit 201, a code table storage unit 202, a code table selection unit 203, a selection unit VLC table 204, a VLC table storage unit 205, and a coefficient number encoder 206.
First, the periphery coded block coefficient numbers are input, from the coefficient number storage unit 110 shown in Fig. 1, into the predictive value computing unit 201. The computing unit of the predictive value 201 establishes the predictive value by calculating an average value of said values. Instead of the mean value, a maximum value, a minimum value, or an intermediate value can be used as a procedure to establish the predictive value.
Fig. 4A is a model diagram showing a positional relationship between a current block, to be encoded, and encoded blocks, to be used as a reference. In this case, one X block is a current block, while three blocks in a position of blocks B, C and D are reference blocks. With respect to the three blocks in the position of blocks B, C and D, when the blocks are not encoded or located outside the image or outside the fragment, which is an image divided into a plurality of sections, a change of the reference blocks, as in Table 1.
TABLE 1
<img file="ES2277313T3_D0001.tif" />
Regarding the symbols in Table 1, a symbol O means a coded block and a symbol x means a block that cannot be consulted since it is not coded or located outside the image or outside the fragment. For example, when it is only one block C that cannot be queried, it shows that the reference blocks are A, B, and D. Table 1 shows a relationship between a reference block condition and the blocks that can be queried, however the patterns are not limited to this. Also, if no reference blocks are found, a 0 or other arbitrary value is directly given as a predictive value.
ES 2 277 313 T3
The code table selection unit 203 selects a code table in actual use from a plurality of code tables stored in the code table storage unit 202 according to a predictive value calculated by the predictive value calculating unit. 201.
Table 2 is an example of a code table, in which the coefficient numbers correspond to code numbers, prepared in advance by the code table storage unit 202.
TABLE 2
<img file="ES2277313T3_D0002.tif" />
According to this example, a code table 1, for example, assigns code numbers that are identical to the coefficient numbers, while a code table 2 assigns the code numbers such that a value of 2 of the number of coefficients performs a fundamental role. In this case, four types of code tables are prepared. However, the number of table types and table values are not limited to those used in Table 2. Likewise, Table 3 presents selection criteria for code tables based on a predictive value.
TABLE 3
<td>Predictive value</td><td>Reference table</td>
<td>0 to 2</td><td>Code table 1</td>
<td>3 to 5</td><td>Code table 2</td>
<td>6 to 8</td><td>Code table 3</td>
<td>9 to 16</td><td>Code table 4</td>
According to this example, the code table selection unit 203 selects a code table as follows: It consults a code table 1 when the predictive value calculated by the predictive calculation unit 201 is not greater than 2, while it consults a table. code 2 when the predictive value is greater than or equal to 3 and less than or equal to 5. The predictive value assignment mode and the data items in the reference tables are not limited to those used in Table 3.
The VLC table selection unit 204 selects an actual use VLC table from a plurality of VLC tables stored in the VLC table storage unit 205 according to the predictive value calculated by the predictive calculation unit 201.
Table 4 is an example of a VLC table in which the code numbers prepared in advance by the VLC table storage unit 205 correspond to variable length codes.
ES 2 277 313 T3
TABLE 4
<td>Number of code</td><td>Table of VLC 1</td><td>Table of VLC 2</td><td>Table of VLC 3</td><td>Table of VLC 4</td>
<td> 0</td><td> 0</td><td> 1</td><td> 10</td><td> 100</td>
<td> 1</td><td> 01</td><td> 010</td><td> 11</td><td> 101</td>
<td> 2</td><td> 001</td><td> 011</td><td> 0100</td><td> 110</td>
<td> 3</td><td> 0001</td><td> 00100</td><td> 01012</td><td> 111</td>
<td> 4</td><td> 00001</td><td> 00101</td><td> 0110</td><td> 01000</td>
<td> 5</td><td> 000001</td><td> 00110</td><td> 0111</td><td> 01001</td>
<td> 6</td><td> 0000001</td><td> 00111</td><td> 001000</td><td> 01010</td>
<td> 7</td><td> 00000001</td><td> 0001000</td><td> 001001</td><td> 01011</td>
<td> 8</td><td> 000000001</td><td> 0001001</td><td> 001010</td><td> 01100</td>
According to this example, a VLC table 1, compared to a VLC table 4, is designed with a trend that a number of bits increases if the code number is high and decreases if the code number is low. It shows that VLC table 1 can perform variable-length encoding more efficiently when a probability of code number occurrence is concentrated in the area where the values are low, while VLC table 4 it can perform coding more efficiently when the probability of occurrence is spread out in the area where the values are high. In this case, four types of tables are prepared. However, the number of table types and table values are not limited to those used in Table 4. Also, Table 5 presents VLC table selection criteria based on a predictive value.
TABLE 5
<td>Predictive value</td><td>Reference table</td>
<td>0 to 1</td><td>Λ / LC 1 table</td>
<td>2 to 3</td><td>VLC 2 table</td>
<td>4 to 6</td><td>VLC 3 table</td>
<td>7 to 16</td><td>VLC Table 4</td>
According to this example, the VLC table selection unit 204 selects a VLC table as follows: It queries a VLC table 1 when the predictive value calculated by the predictive value calculation unit 201 is not greater than 1, while querying a table of VLC 2 when the predictive value is greater than or equal to 2 and less than or equal to 3. The mode of assignment of the predictive values and the data elements of the reference tables is not limited to those used in Table 5.
The coefficient number encoder 206 queries the code table and the VLC table, which are selected by the above process, and performs variable length encoding of the number of coefficients of the current input block. The coefficient number encoder 206 first transforms the number of coefficients into a code number using the code table, and then transforms it into a variable length code equivalent to the code number, using the VLC table . Fig. 5 is a model diagram showing a coding example when the predictive value calculated by the predictive calculation unit 201 is "6" and the number of the coefficients in the current block is "4". A code table 3, which is shown in Fig. 5, is selected in the code table selection unit 203 using Table 3 and Table 2 according to the predictive value "6", and also a table is selected. of VLC 3, shown in FIG. 5, in the VLC table selection unit 204 using Table 5 and Table 4. The coefficient number encoder 206 transforms the entered number of coefficients "4" into a code number "2" according to code table 3 and further creates a final bit stream "0100" according to VLC table 3.
Next, details relating to a coefficient number storage process carried out by the coefficient number storage unit 110 are explained. FIG. 6A is a model diagram showing
ES 2 277 313 T3 shows reference blocks with respect to a current macroblock to be encoded in the predictive value calculation unit 201. In this case, a black box containing the blocks encoded as B1 to B16 shows the current macroblock, while a shaded section shows the reference blocks relative to the current macroblock. Also, the numbers assigned to the blocks indicate the coding order of the macroblock.
The coefficient number storage unit 110, for example, at the time of starting the current macroblock processing, shown in Fig. 6A, stores the coefficient numbers detected by the coefficient number detection unit 109, at least of the reference blocks shown in Fig. 6A that are necessary for the current macroblock. Specifically, the coefficient number storage unit 110 stores the detected coefficient numbers according to the blocks of the current macroblock (B1, B2, B3, ... and B16) to be processed sequentially. For example, when the current block is a B6 block, the coefficient number storage unit 110 stores the numbers of each coefficient of B1, B2, B3, B4 and B5, which are already processed, in addition to the reference blocks that are shown shaded in Fig. 6A. Subsequently, the coefficient number storage unit 110 stores the number of coefficients of said block B6 when it is detected by the coefficient number detection unit 109. Therefore, the coefficient number storage unit 110 stores the numbers of the detected coefficients based on the blocks of the current macroblocks (B1, B2, B3, ... and B16) to be processed sequentially.
Therefore, for example, when the current macroblock is a macroblock MB11, shown in Fig. 2, the coefficient number storage unit 110 stores at least the coefficient numbers of the blocks of a lower row and of a right column (shaded blocks) of the macroblock MB11, as shown in Fig. 7A when the processing of the macroblock MB11 finishes and goes to the next macroblock MB12. Then, when the processing of the macroblock MB12 ends and the process proceeds to the next macroblock MB13, the coefficient number storage unit 110 stores at least the numbers of the coefficients of the blocks located in the bottom row and in the right column of the macroblock MB12 in the same way, as well as the coefficient numbers of the blocks in the lower row of macroblock MB11 (shaded blocks) as shown in Fig. 7B.
For example, when the current macroblock is located on the right edge of the image, such as the macroblock MB9 shown in Fig. 2B, the coefficient number storage unit 110 stores at least the coefficient numbers of the image blocks. the bottom row of macroblock MB9 (shaded blocks), as shown in Fig. 7B, when the processing of macroblock MB9 finishes and the process proceeds to the next macroblock MB10.
When the current macroblock is located at the lower edge of the image, such as the MBm shown in Fig. 2B, the coefficient number storage unit 110 stores at least the numbers of the coefficients of the blocks in the right column. of the macroblock MBm, as shown in Fig. 7C, when the processing of the macroblock MBm finishes and the process proceeds to the next macroblock MBn.
Therefore, the coefficient number storage unit 110 stores the coefficient numbers of the blocks to be queried. At an arbitrary time, the information about the number of coefficients of the blocks other than those to be stored, in the above explanation, can be erased if it is no longer used as a reference. For example, it can be cleared when the process moves to the next macroblock, as well as while the macroblock is being processed. Also, the coefficient numbers in the blocks that are no longer used as a reference do not always need an erasure process. For example, the coefficient number storage unit 110 may identify the coefficient numbers of the blocks that are no longer to be queried as unnecessary and may write to them if necessary.
It has been explained above that the numbers of the coefficients of the coded blocks can be queried by storing them in the coefficient number storage unit 110. However, if necessary, a system can be used to calculate the number of coefficients by storing, not the values of the number of the coefficients themselves, but, for example, the values of the coefficients of the blocks that are transformed into components of spatial frequency.
In the present embodiment, it is possible, as mentioned above, to calculate a predictive value using the numbers of the coefficients of the coded adjacent blocks in order to carry out a coding of the number of coefficients, in an efficient way, even of the images whose probability of occurrence of the coefficients is not uniform, consulting the code table and the VLC table, in an adapted way, according to the predictive value.
Also, as described above, it can amount to a fluctuation of a position in which the probability of occurrence of the number of coefficients is the highest in relation to the code table by changing them according to the predictive value. You can also equal the size of the dispersion of the probability of occurrence of the number of coefficients by changing the VLC tables as a reference according to the predictive value. Accordingly, a coding of the number of coefficients can be carried out efficiently.
Also, in the predictive value computing unit 201, only two blocks located at the position of blocks B and D of a current block X to be encoded, as shown in Fig. 4B, can be used instead of use three contiguous blocks as reference blocks, as shown in Fig. 4A. A change is made regarding the
ES 2 277 313 T3 reference blocks, as in Table 6, when either of the two blocks in the position of blocks B and D is not encoded or located outside the image or outside the fragment.
TABLE 6
<img file="ES2277313T3_D0003.tif" />
Regarding the symbols in Table 6, a symbol O means a coded block and a symbol x means a block that cannot be consulted since it is not coded or located outside the image or outside the fragment, as in Table 1. Table 6 shows a relationship between conditions of the reference blocks and the blocks that can be queried, however the patterns are not limited to this. If no reference blocks are found, a 0 or other arbitrary value can be directly given as a predictive value. In this case, the code number storing unit 110 can store only the coefficient numbers detected in the coefficient number detecting unit 109, at least of the reference blocks shown in Fig. 6B, which are required for the current macroblock.
For example, as a method of calculating a predictive value in the predictive value calculating unit 201, an optimal procedure can be selected according to each sequence, each GOP, each image or each fragment instead of setting the procedure of using any one. of an average value, a maximum value, a minimum value or an intermediate value. The code to identify the selected calculation procedure is added to a header section of the sequence, the GOP or the image or fragment. The fragment is an image divided into a plurality of sections. A section of a column in a cross sectional direction, macroblock by macroblock, is an example of this.
Also, for example, any one of a mean value, a maximum value, a minimum value or an intermediate value can be selected according to the mean value of the number of the coefficients of the coded reference blocks. Table 7 shows your selection criteria.
TABLE 7
<img file="ES2277313T3_D0004.tif" />
According to this example, a minimum value of the coefficient numbers from more than one reference block is applied as a predictive value when, for example, a mean value is less than or equal to 4 and a mean value is applied as a predictive value when the mean value is greater than or equal to 5 and less than or equal to 8. The positive effects of improving encoding performance can be obtained in both cases: selecting a maximum value, given that a probability of a higher number of coefficients appearing is higher in the blocks in which the quantization stage is small and the movements are complicated, and selecting a minimum value given that a probability of appearing a lower number of coefficients is higher in the blocks in which the quantization stage is inversely larger and the movement is simple. The mode of assigning the mean value or the data items listed as predictive value calculation procedures are not limited to those listed in Table 7.
The coefficient number encoder 111 of the present embodiment performs variable length encoding of the value of the number of coefficients itself. The difference calculating unit 207 may, however, calculate a differential value between the predictive value, calculated in the predictive value calculating unit 201, and the value of the number of coefficients that is input, in order to carry out a coding of the value obtained with the same process as described in the previous embodiment. Positive effects can be obtained for improving the coding performance of an image in which a change in the number of coefficients
ES 2 277 313 T3 between surrounding blocks is less when luminance and chrominance changes are monotonous on the screen.
Also, the coefficient number encoder 111 performs encoding by changing both the code table and the VLC table according to the predictive value as a function of the number of coefficients in the contiguous blocks. However, these tables can be pinned rather than changed. This can be done by using only one storage unit that has either a certain type of code tables or a certain type of VLC tables, rather than using table selection units. L to Fig. 8A is a block diagram showing a structure of the coefficient number encoder 111 for for performing a variable length coding of the number of coefficients by fixing only a code table. Also, Fig. 8B is a block diagram showing a structure of the number of coefficient encoder 111 for carrying out variable length encoding of the number of coefficients by setting only one VLC table. In case only one code table is set, the coefficient number encoder 111, as shown in Fig. 8A, includes a code table storage unit 301 in place of the code table storage unit 202 and the code table selection unit 203 shown in Fig. 3A. The code table storage unit 301 has one type of code table. Therefore, the coefficient number encoder 206 first transforms the number of coefficients into a code number, using a code table stored in the code table storage unit 301, and subsequently transforms the code number into a code number. variable length, using a VLC table selected by the VLC table selection unit 204.
On the other hand, the coefficient number encoder 111, as shown in Fig. 8B, includes a VLC table storage unit 302 instead of the VLC table storage unit 205 and the table selection unit. of VLC 204 shown in FIG. 3A. The VLC table storage unit 302 has a VLC table type. Therefore, the coefficient number encoder 206, first, transforms the number of coefficients into a code number, using the code table selected by the code table selection unit 203, and subsequently transforms the number code into a variable length code using the VLC table stored in the VLC table storage unit 302.
Therefore, by setting the code table or the VLC table instead of switching between them, the number of change tables can be reduced or the amount of memory to store a plurality of tables can be reduced, although the effects of the Encoding performance decrease more or less.
Also, the coefficient number encoder 111 can perform variable length encoding by changing only the VLC tables according to the predictive value as a function of the coefficient numbers of the contiguous blocks, without using code tables. Fig. 8C is a block diagram showing a structure of the number of coefficient encoder 111 for carrying out variable length encoding of the number of coefficients using only the VLC tables, without code tables. In this case, as shown in Fig. 8C, the coefficient number encoder 111 includes neither the code table storage unit 202 nor the code table selection unit 203. The coefficient number encoder 111 selects a VLC table in actual use from a plurality of VLC tables stored in the VLC table storage unit 304. Subsequently, the coefficient number encoder 206 directly transforms the number of coefficients in a variable length code without transforming it to the code number as shown above. In this case, in the VLC table examples shown in Table 4, the part that is shown as code numbers is given as coefficient number values.
Also, the case where the number of coefficients encoder 111 performs variable length encoding using a differential value between a predictive value and a number of coefficients value, instead of a number of coefficients value can be handled in the same way. Fig. 9 is a block diagram showing, as an example, a structure of the number of coefficients encoder 111 to carry out a variable encoding of a differential value between the predictive value and the number of coefficients by setting both a code table and a VLC table. In this case, the coefficient number encoder 111, as in Fig. 9, includes a code table storage unit 301 in place of the code table storage unit 202 and the code table selection unit 203 shown in Fig. 3A, as well as a code table storage unit. VLC table 302 instead of VLC table storage unit 205 and VLC table selection unit 204. The code table storage unit 301 has one type of code tables, while the VLC table storage unit 302 has one type of VLC tables. Therefore, the coefficient number encoder 206, first, transforms the differential value between the number of coefficients and the predictive value into a code number using the code table stored in the code table storage unit 301. and subsequently transforms the code number into a variable length code using the VLC table stored in the VLC table storage unit 302.
Second embodiment
The structure of the image coding device and the scheme of the coding process, according to the present embodiment, are exactly the same as those described in the first embodiment, with the exception of the number of coefficient encoder 111 which is shown in Fig. 1. In this case, the details, relating to the coefficient number variable-length encoding process carried out by the coefficient number encoder 111 of the second embodiment, are explained using Figs. 10 and 11.
ES 2 277 313 T3
Fig. 10A is a block diagram showing in detail an internal structure of the coefficient number encoder 111.
As shown in Fig. 10A, the coefficient number encoder 111 includes a code table generation unit 701 in place of the code table storage unit 202 and the code table selection unit 203 which is shown in Fig. 3A. The coefficient numbers of the coded blocks are input to the code table generating unit 701 from the coefficient number storage unit 110. The code table generation unit 701 counts the number of coded blocks that have the same number of coefficients as the value of the number of coefficients of each of the values and creates code tables by assigning code numbers in descending order starting from a number of coefficients that registered the highest frequency as a function of the statistic. Fig. 11A is a model diagram showing a position of the coded blocks proposed as statistics. In this case, a P1, a P3 and a P4 are images in which an inter-image prediction coding is carried out, while an I2 is an image in which an intra-image prediction coding is carried out. . Assuming that a current block belongs to P3, all blocks that are encoded using the same procedure as that used for the current block, contained in P1, which is an image just prior to the current image, are proposed as statistics. The case where the equivalent blocks of an image including the coded blocks of the current image are proposed as statistics, as in Fig. 11B, can be treated in the same way. Likewise, a table corresponding to the initial condition in ascending order starting from the number 0 can be used as a code table when there are no code blocks equivalent to an image that can be proposed as statistics. In this case, the blocks equivalent to an image are proposed as statistics, however, the case where the number of blocks, other than this, is used as a parameter can be treated in the same way. In the case of applying a reference procedure, as shown in Fig. 11A, in order to generate a code table, the table can only be generated after the encoding of the current image has started.
Meanwhile, the coefficient numbers of the coded blocks located at the periphery are input to the predictive value calculation unit 201. The predictive value calculation unit 201 sets the predictive value by calculating an average value based on said values, as shown. described in the first embodiment. Instead of the mean value, a maximum value, a minimum value, or an intermediate value can be used as a procedure to establish the predictive value. The coded blocks that are used as a reference are set according to Table 1 using three blocks in the position of blocks B, C and D of the current block X shown in Fig. 4A of the first embodiment. Table 1 shows a relationship between reference block conditions and queryable blocks, however, the patterns are not limited to this. When no reference blocks are found, a 0 value or some other arbitrary value is directly given, as a predictive value.
The predictive value calculated by the predictive value calculating unit 201 is used only in the VLC table selection unit 204. The VLC table selection unit 204 selects, as in the first embodiment, according to said predictive value, a VLC table to encode the number of coefficients from a plurality of VLC tables prepared in advance in the unit of VLC 205 table storage, as shown in Table 4, based on the selection criteria shown in Table 5.
The coefficient number encoder 206 queries the code table created by the code table generation unit 701 and the VLC table selected by the VLC table selection unit 204, and subsequently performs length encoding. variable of the number of coefficients of the current block proposed to encode that is entered in the same way as described in the first embodiment.
Therefore, in the present embodiment, a code table is created by taking statistics of the numbers of the coefficients of the coded blocks, furthermore, a VLC table is established according to the predictive value calculated from the number of the coefficients. of the coded blocks and, consulting both tables, a coding of the number of coefficients can be carried out in an efficient way, even of an image whose frequency of occurrence of coefficients is irregular.
As in the first embodiment, the coded blocks that are used as a reference in the predictive value calculation unit 201 can also be set, as in the first embodiment according to Table 6, using only two blocks located in the position of blocks B and D of the current block X, shown in Fig. 4B, instead of using three contiguous blocks, as shown in Fig. 4A. Table 6 shows a relationship between reference block conditions and queryable blocks, however the patterns are not limited to this. When no reference blocks are found, a 0 value or some other arbitrary value is directly given, as a predictive value.
As in the first embodiment, for example, any one of a mean value, a maximum value, a minimum value or an intermediate value can be selected according to a mean value of the numbers of the coefficients of the coded reference blocks, as a method of calculating a predictive value in the predictive value calculating unit 201, as in the first embodiment. Table 7 shows the selection criteria, however, a mean value assignment mode and the data items indicated as predictive value calculation procedures are not limited to this.
ES 2 277 313 T3
In the present embodiment, the coefficient number encoder 111 performs variable length encoding of the value of the number of coefficients itself. However, as in the first embodiment, as shown in Fig. 10, the subtractor 207 can calculate a differential value between the predictive value calculated by the predictive value calculation unit 201 and the entered value of the number of coefficients and carry out variable-length encoding of the obtained value by the same process as described above.
Also, in the present embodiment the coefficient number encoder 111 performs variable length encoding by changing the VLC tables according to the predictive value as a function of the coefficient numbers of the contiguous blocks. However, you can fix the table instead of changing the VLC tables, as in the first embodiment. In this case, this is done by using only a VLC table storage unit that has a certain type of VLC tables, instead of using the VLC table selection unit.
Third embodiment
The structure of the image coding device and the scheme of the coding process, according to the present embodiment, are exactly the same as those described in the first embodiment, with the exception of the number of coefficient encoder 111 which is shown in Fig. 1. In this case, the details, relating to the coefficient number variable-length encoding process carried out by the coefficient number encoder 111 of the third embodiment, are explained using Figs. 12A and 12B, as well as Tables 8 and 9.
Fig. 12A is a block diagram showing an internal structure of the coefficient number encoder 111 in detail.
As shown in Fig. 12A, the coefficient number encoder 111 does not include the predictive value computing unit 201 shown in Fig. 3A. Therefore, a code table selection unit 901 and a VLC table selection unit 902 select an actual use table differently from the first embodiment by directly using the numbers of the coefficients of the coded blocks, without using a predictive value. Regarding the coded blocks used as a reference, as shown in Fig. 4B, only two blocks are used in the position of block B (top) and block D (left) of the current block X. However, when the blocks located at the top and at the left are not encoded or located outside the image or outside the fragment, you can give a value 0 or another arbitrary value.
Table 8 shows a selection procedure of a code table in the code table selection unit 901.
TABLE 8
<td colspan="2" rowspan="2"></td><td colspan="2">Number of coefficients (top)</td>
<td>0 to 5</td><td>6 to 16</td>
<td rowspan="2">Number of coefficients (left)</td><td>0 to 5</td><td>Code table 1</td><td>Code table 2</td>
<td>6 to 16</td><td>Code table 3</td><td>Code table 4</td>
The code table selection unit 901 classifies into two groups the respective number of coefficients of the blocks located at the top and left of the current block, as shown in Table 8, according to the value and selects a table using a combination of the four thus formed. For example, a code table 2 is selected when the number of coefficients in the left block is 3 and the number of coefficients in the upper block is 8. The procedure for classifying the number of the coefficients in the upper and left blocks and the code table assignment mode are not limited to those used in Table 8.
ES 2 277 313 T3
Table 9 shows a selection procedure of a VLC table in the VLC table selection unit 902.
TABLE 9
<img file="ES2277313T3_D0005.tif" />
The VLC table selection unit 902 selects a VLC table as the actual reference using the selection procedure, as shown in Table 9, as in the case of the code table selection unit 901.
The coefficient number encoder 206 queries the code table selected by the code table selection unit 901 and the VLC table selected by the VLC table selection unit 902 in order to perform length encoding. variable of the number of coefficients of the current block that is entered in the same way as in the first embodiment.
Therefore, in the present embodiment, classifying the coefficient numbers of the coded blocks located at the top and left of the current block into groups "n" according to the value by consulting the code table and the VLC table according to the combination of N x N modes thus formed and switching between them, in an adapted way, can be effectively carried out, the encoding of the number of coefficients of the image whose frequency of occurrence of coefficients is irregular.
In the present embodiment, the coefficient number encoder 111 performs variable length encoding of the value of the number of coefficients itself. The difference calculating unit 207 may, however, calculate a differential value between the predictive value calculated in the predictive value calculating unit 201, as shown in Fig. 12B of the first embodiment, and a value of the number of coefficients entered in order to carry out variable-length encoding.
Also, in the present embodiment, the coefficient number encoder 111 performs variable length encoding, changing both the VLC table and the code table according to the coefficient numbers of the contiguous blocks. However, you can fix any of these tables instead of changing them, as in the first embodiment. In this case, the variable length encoding is done using a storage unit that has either a certain type of code tables or a certain type of VLC tables, instead of using table selection units. Furthermore, variable length encoding can be carried out by changing only the VLC tables according to the coefficient numbers of the contiguous blocks, without using the code tables, as in the first embodiment.
Fourth way of realization
The structure of the image coding device and the scheme of the coding process, according to the present embodiment, are exactly the same as those described in the first embodiment, with the exception of the number of coefficient encoder 111 which is shown in Fig. 1. In this case, the details, relating to the coefficient number variable-length encoding process carried out by the coefficient number encoder 111 of the fourth embodiment, are explained using Figs. 13 and 14.
Fig. 13A is a block diagram showing in detail an internal structure of the coefficient number encoder 111.
The coefficient number encoder 111, as shown in Fig. 13A, includes a table selection unit 1001 in place of the predictive value calculation unit 201, the code table selection unit 203, and the VLC table selection unit 204 shown in FIG. 3A. The table selection unit 1001 directly uses the number of coefficients of the coded blocks without using a predictive value, in order to select actual use tables by evaluating both a code table and a VLC table at the same time, which differs from the first embodiment. Regarding the coded blocks that are used as a reference, the three blocks in the position of the blocks B, C and D of the current block X are used as in Fig. 4A. However, when the blocks located as such are not encoded or located outside the image or outside the fragment, a value of 0 or another arbitrary value can be given.
ES 2 277 313 T3
The table selection unit 1001 calculates the total length of a bit stream that is created as a result of encoding the coefficient numbers of the reference blocks using both the code table and the VLC table at the same time and sets it as an evaluation value. Fig. 14 is a model diagram showing a procedure for carrying out a coding of the coefficient numbers of the three reference blocks using the code tables and the VLC tables and calculating the total length of the obtained bit stream to set it as the evaluation value. Therefore, the table selection unit 1001 carries out this process on all combinations of the code tables and the VLC tables stored in both the code table storage unit 202 and the table storage unit. of VLC 205 and selects a combination of a code table and a VLC table in which the evaluation value obtained is the lesser.
The coefficient number encoder 206 queries the code table and the VLC table, selected by the table selection unit 1001, and performs variable-length encoding of the number of coefficients of the current block being input from it. as described in the first embodiment.
In the present embodiment, as shown above, the encoding of the numbers of the coefficients of the contiguous blocks that are encoded using the code table and the VLC table can be carried out and the total length can be set. of the bit stream at that time as an evaluation value, in order to efficiently carry out the encoding of the number of coefficients even of the image whose frequency of occurrence of coefficients is irregular.
Regarding the coded blocks that are used as a reference, the case in which only two blocks are used in the position of blocks B and D, instead of using three blocks in the position of blocks B, C and D of the block current X, as shown in Fig. 4A, can be treated in the same way. In this sense, when the blocks located at the top and at the left are not encoded or located outside the image or outside the fragment, a value of 0 or another arbitrary value can be given.
In the present embodiment, the coefficient number encoder 111 performs variable length encoding of the value of the number of coefficients itself. However, as in the first embodiment, it is possible, as shown in Fig. 13, that the differential value calculating unit 207 calculates a differential value between the predictive value, calculated by the predictive value calculating unit 201, and the entered value of the number of coefficients and that it performs variable-length encoding of the value obtained by the same process as described in the aforementioned embodiments.
Also, in the present embodiment, the code table and the VLC table are to be changed in the coefficient number encoder 111, however, any of them can be set instead of changing between them.
Fifth way of realization
Fig. 15 is a block diagram showing a structure of an image coding device of the fifth embodiment using an image coding method according to the present invention. A sequence of the encoding process is exactly the same as that of the first embodiment. However, the difference is that the present embodiment does not use the coefficient number storage unit 110, but makes use of an inter-picture prediction mode, in the case of inter-picture prediction coding, and a intra-image prediction mode, in the case of intra-image prediction coding, as reference information of a coefficient number encoder 1201, instead of using the number of the coefficients of the coded blocks as in the first embodiment.
In this case, details regarding an explanation of the variable-length encoding process in the coefficient number encoder 1201, shown in Fig. 15, are explained using Fig. 16, Table 10, and Table 11 .
FIG. 16 is a block diagram showing in detail an internal structure of the coefficient number encoder 1201.
As shown in Fig. 16, the coefficient number encoder 1201 does not include the predictive value computing unit 201, which is shown in Table 3A. An inter-picture prediction mode is input from an inter-picture prediction unit 107 and an intra-picture prediction mode is input from an intra-picture prediction unit 108 on a code table selection unit 1301 and on a table selection unit of VLC 1302. Accordingly, the code table selection unit 1301 selects a table based on the mode: the inter-image prediction mode for inter-image prediction and the intra-image prediction mode for intra-image prediction. Table 10 shows a code table selection procedure in the code table selection unit 1301.
ES 2 277 313 T3
TABLE 10
<td>Reference table</td><td>Prediction mode inter-image</td><td>Prediction mode intra-image</td>
<td>Code table 1</td><td>16x16, 16x8, 8x16</td><td>Flat prediction</td>
<td>Code table 2</td><td>8x8</td><td>Oblique prediction</td>
<td>Code table 3</td><td>8x4, 4x8</td><td>Oblique prediction</td>
<td>Code table 4</td><td>4x4</td><td>Vertical prediction and horizontal</td>
For example, in the case where the current image is encoded using inter-image prediction, a code table 2 is selected for variable-length encoding of the number of coefficients when a prediction of the current block with dimension 8 x 8. The data items are not limited to those used in Table 10. Table 11 shows a selection procedure of the VLC 1302 table selection unit.
TABLE 11
<td>Reference table</td><td>Prediction mode inter-image</td><td>Prediction mode intra-image</td>
<td>VLC table 1</td><td>16x16, 16x8, 8x16</td><td>Flat prediction</td>
<td>VLC 2 table</td><td>8x8</td><td>Oblique prediction</td>
<td>VLC 3 table</td><td>8x4, 4x8</td><td>Oblique prediction</td>
<td>VLC Table 4</td><td>4x4</td><td>Vertical prediction and horizontal</td>
The VLC table selection unit 1302 selects an actual reference VLC table using a selection procedure shown in Table 11, as in the case of the code table selection unit 1301.
The coefficient number encoder 206 queries the code table, selected by the code table selection unit 1301, and a VLC table, selected by the VLC table selection unit 1302, and performs an encoding of variable length of the coefficient numbers of the current block which is entered in the same way as in the first embodiment.
In the present embodiment, as shown above, a coding method is shown which performs efficient coding of the number of coefficients even of the image whose frequency of occurrence of coefficients is irregular, referring to the code table and the table of VLC switching between them, in an adapted way, depending on the mode: inter-image prediction mode, for inter-image prediction coding, and intra-image prediction mode, for intra-image prediction coding.
In the present embodiment, the coefficient number encoder 1201 performs variable-length encoding of the value of the number of coefficients itself, as in the first embodiment. However, as in the first embodiment, a predictive value can be established using the numbers of the coefficients of the contiguous blocks that are encoded, as in the first embodiment, and obtain a differential value between said predictive value and the entered value of the number of coefficients, in order to carry out variable length encoding of the obtained value in the same way as in the above-mentioned embodiments.
Also, in the present embodiment, the coefficient number encoder 1201 performs variable length encoding by changing both the code table and the VLC table. However, you can set any of them instead of changing any or both of them. In this case, this is done by preparing only a storage unit that has a certain type of code tables or a certain type of VLC tables instead of using table selection units.
ES 2 277 313 T3
Sixth embodiment
Fig. 17 is a block diagram showing a structure of an embodiment of an image decoding device using an image decoding method according to the present invention. In this case, the bit stream created by the image encoding device will be input, according to the first embodiment.
The image decoding device includes a bit stream analysis unit 1401, a coefficient number storage unit 1402, a coefficient number decoder 1403, a coefficient value decoder 1404, an inverse quantization unit 1405, an inverse orthogonal transformation unit 1406, a frame memory 1407, an inter-picture prediction decoder 1408, an intra-picture prediction decoder 1409 and a switch 1410.
The bit stream analysis unit 1401 extracts, from the input bit stream, various types of information, such as an encoding mode, motion vectors that are used to encode, a bit stream of the number of coefficients (the number of coefficients showing a spatial frequency component having a value other than 0 from each block) and various types of information about the bit stream of the coefficient value. The coefficient number storage unit 1402 stores the coefficient numbers of the decoded blocks. The coefficient number decoder 1403 decodes the bit stream of the coefficient numbers by querying the coefficient numbers of the decoded blocks.
The coefficient value decoder 1404 decodes the coefficient value bit stream using the coefficient numbers decoded by the coefficient number decoder 1403. The inverse quantization unit 1405 performs an inverse quantization of the decoded coefficients. Inverse orthogonal transformation unit 1406 performs an inverse orthogonal transformation of the inverse quantized data and transforms it into predictive residual image data.
The inter-picture prediction decoder 1408 creates motion-compensated image data based on the motion vectors extracted by the bitstream analysis unit 1401, as well as decoded images or the like when a current macroblock to be decoded it is encoded with inter-image prediction. A summation computing unit 1411 sums the predictive residual image data input from the inverse orthogonal transformation unit 1406 and the motion compensated image data input from the inter-picture prediction decoder 1408 to create decoded image data. . Frame memory 1407 stores the created decoded image data.
Intra-picture prediction decoder 1409 performs intra-picture prediction using information about adjacent decoded blocks to create decoded picture data when the current macroblock is encoded with intra-picture prediction.
Next, an explanation of an operation of an image decoding device constructed in accordance with the above follows.
To begin with, a bit stream is input to bit stream analysis unit 1401. Bit stream analysis unit 1401 extracts various types of motion vector information from the input bit stream, a bit stream of the number of coefficients and a bit stream of the value of the coefficients, and so on. Next, the bit stream analysis unit 1401 respectively sends as follows: the motion vectors to the inter-picture prediction decoding unit 1408, the bit stream of the number of coefficients to the number of coefficient decoder 1403 and the bit stream of coefficient value to coefficient value decoder 1404.
The number of coefficients decoder 1403, into which the bit stream of the number of coefficients is input, decodes said bit stream as the number of coefficients having a value other than 0 in each block. In this case, the coefficient number decoder 1403 performs a decoding by referring to the coefficient numbers of the decoded blocks stored in the coefficient number storage unit 1402 with a procedure that will be explained later. Subsequently, the coefficient value decoder 1404 performs a decoding of the value of the coefficients itself by consulting the code tables and the VLC tables, necessary for variable length decoding, switching between them using number information of the obtained coefficient. by the coefficient number decoder 1403. The obtained coefficient is transformed into predictive residual image data by means of the inverse quantization unit 1405, as well as the inverse orthogonal transformation unit 1406.
Motion vectors extracted by bit stream analysis unit 1401 are input to inter-picture prediction decoder 1408, when a current macroblock to be decoded is encoded with inter-picture prediction. Inter-picture prediction decoder 1408 creates motion compensated image data by storing decoded image data of the decoded images in frame memory 1407 as reference images, based on information about the motion vectors. The motion compensated image data thus obtained is created as decoded image data by adding it to the predictive residual image data in the summation computing unit 1411 and subsequently storing it in the frame memory 1407.
ES 2 277 313 T3
On the other hand, when the current macroblock is encoded using intra-image prediction, the intra-image prediction decoder 1409 performs intra-image prediction using information about the adjacent decoded blocks and decoded image data is created and stored in frame memory 1407. Subsequently, frame memory 1407 sends them as the final output image in the display order.
The scheme of a decoding stream has been explained. Next, using Fig. 18 to Fig. 21, a coefficient number decoding process performed by the coefficient number decoder 1403 is explained in detail.
FIG. 18A is a block diagram showing, in detail, an internal structure of the number of coefficient decoder 1403.
In this case, an example is given of using two tables, a VLC table and a code table, to perform variable length decoding of coefficient numbers. The VLC table is a table that is used to transform a variable length code of a bit stream into a code number, while the code table is a table that is used to transform, the code number obtained by the VLC table, on the number of coefficients.
As shown in Fig. 18A, the coefficient number decoder 1403 includes a predictive value calculation unit 1501, a code table storage unit 1502, a code table selection unit 1503, a selection unit VLC table 1504, a VLC table storage unit 1505, and a coefficient number decoder 1506.
First, the coefficient numbers of the decoded blocks located at the periphery are input, from the coefficient number storage unit 1402, as shown in FIG. 17, into the predictive value computing unit 1501. The predictive value calculation unit 1501 establishes a predictive value by calculating an average value of said values. For coding, a maximum value, a minimum value or an intermediate value can be used according to the method of calculating the predictive value. The decoded blocks to be queried are established following Table 1 using three blocks in the position of blocks B, C and D of the current block X shown in Fig. 4a, as in the first embodiment. Regarding the symbols in Table 1, a symbol o means a coded block and a symbol x means a block that cannot be consulted since it is not coded or located outside the image or outside the fragment. Table 1 shows a relationship between reference block conditions and queryable blocks, however, the patterns are not limited to this. If no reference blocks are found, a 0 or other arbitrary value can be directly given as a predictive value.
The code table selection unit 1503 selects a code table in actual use from a plurality of code tables stored in the code table storage unit 1502, according to the predictive value calculated by the value calculating unit. predictive 1501.
Table 2 is an example of a code table referring to coefficient numbers and code numbers, prepared in advance by the code table storage unit 1502. In this case, four types of code tables are prepared. However, the number of table types and values listed in the tables are not limited to those used in Table 2. However, in this case, you will use the same table as the one used for encoding. Also, Table 3 shows selection criteria for code tables based on a predictive value. The method of assigning the predictive value or the data elements of the table is not limited to those used in Table 3. However, the same table will be used as the one used for coding.
The VLC table selection unit 1504 selects an actual use VLC table from a plurality of VLC tables stored in the VLC table selection unit 1505 according to the predictive value calculated by the predictive value calculating unit 1501.
Table 4 shows an example of a VLC table referring to number of coefficients and code numbers, prepared in advance by the VLC table storage unit 1505. In this case, four types of VLC tables are prepared. However, the number of table types and the values indicated in the tables are not limited to those used in Table 4. However, in this case, the same table will be used as the one used for coding. . Also, Table 5 shows selection criteria for VLC tables based on a predictive value. The method of assigning the predictive value and the data elements indicated in the reference tables are not limited to those used in Table 5. However, in this case, it is conditional on the use of the same table as the which is used for encoding.
The coefficient number decoder 1506 queries the code table, as well as the VLC table, selected in the above process, and performs variable length decoding of a bit stream of the number of coefficients of the current input block. The coefficient number decoder 1506 first transforms the number of coefficients into a code number using the VLC table and subsequently transforms it into a value of the number of coefficients of the code number using the code table. Fig. 19 is a model diagram showing a decoding example when a predictive value calculated in the predictive value calculating unit 1501 is "6" and a bit stream of the number of coefficients of the current block is "0100". If the predictive value is "6", the
ES 2 277 313 T3 code table selection unit 1503 selects a code table 3, shown in Fig. 19, using Table 3 and Table 2 and VLC table selection unit 1504 selects a table of VLC 3, shown in Fig. 19, using Table 5 and Table 4. The coefficient number decoder 1506 transforms the input bit stream "0100" into a code number "2" according to VLC table 3 and subsequently sets the final number of coefficients "4" according to code table 3.
The following describes in detail the coefficient number storage process carried out by the coefficient number storage unit 1402, details are explained. In this case, Fig. 6A which is used for the description of the first embodiment, however, a black box containing coded blocks B1 to B16 shows a current macroblock to be decoded, while the shaded blocks show reference blocks of the current macroblock. The numbers that have been set to the blocks indicate a decoding order that is carried out in the macroblock.
The coefficient number storage unit 1402 stores the coefficient numbers decoded by the coefficient number decoder 1403, at least of the reference blocks that are shaded as shown in FIG. 6A, necessary for the current macroblock in the time to start processing the current macroblock shown in Fig. 6A. Specifically, the coefficient number storage unit 1402 stores the number of the detected coefficients of the blocks of the current macroblock (B1, B2, B3, ... and B16) to be processed sequentially. For example, when a current block is a B6 block, the coefficient number storage unit 1402 stores the numbers of each coefficient of the blocks B1, B2, B3, B4, and B5, which are already processed, in addition to those of the reference blocks, as shown in Fig. 6A. When the coefficient number decoder 1403 decodes the number of coefficients in block B6, the coefficient number storage unit 1402 stores it. Therefore, the coefficient number storage unit 1402 stores the numbers of the coefficients of the blocks of the current macroblock to be processed sequentially.
When a current macroblock is a macroblock MB11, shown in Fig. 2B, the coefficient number storage unit 1402 stores at least the numbers of the coefficients of the blocks in the lower row and in the right column of the macroblock MB11 ( shaded blocks) of Fig. 7A, when the processing of said macroblock MB11 ends and moves to the next macroblock MB12. Next, the coefficient number storage unit 1402 stores at least the numbers of the coefficients of the blocks in the lower row and the right column of the macroblock MB12, in the same way, as well as the numbers of the coefficients of the blocks. from the bottom row of macroblock MB11 (shaded blocks), as shown in Fig. 7B, when the processing of macroblock MB12 ends and the process proceeds to the next macroblock MB13.
When a current macroblock is located on the right edge of the image, as in a macroblock MB9 shown in Fig. 2B, the coefficient number storage unit 1402 stores at least the coefficient numbers of the blocks in the image. bottom row of macroblock MB9 when processing of said macroblock MB9 finishes and goes to the next macroblock MB10.
When a current block is located at the lower edge of the image, such as a macroblock MBm shown in Fig. 2B, the coefficient number storage unit 1402 stores at least the numbers of the coefficients of the blocks in the column. right of said MBm macroblock (shaded blocks) as shown in Fig. 7C.
Therefore, the coefficient number storage unit 1402 stores at least the coefficient numbers of the blocks to be queried. At an arbitrary time, information about the numbers of coefficients of the blocks other than those to be stored can be erased, as described in the previous explanation, when the blocks are no longer used as a reference. For example, information can be cleared when the process moves to the next macroblock, as well as while the macroblock is being processed. Also, the coefficient numbers in the blocks that are not used as a reference do not always need an erasure process. For example, the coefficient number storage unit 1402 can identify, as unnecessary, the coefficient numbers of the blocks that are no longer queried and, if necessary, can write to them.
It has been explained above that the coefficient numbers of the coded blocks can be queried by storing them in the coefficient number storage unit 1402. However, if necessary, a system can be used to calculate the number of coefficients by storing, not the values of the number of coefficients themselves, but, for example, the values of the coefficients of the blocks that indicate components of spatial frequency.
Therefore, in the present embodiment, the predictive value can be calculated using the numbers of coefficients of the decoded adjacent blocks, and the number of coefficients can be decoded by querying the code table and the VLC table, switching between them, in a tailored mode, based on predictive value.
Likewise, it deals with changes in a position in which the probability of the number of coefficients appearing is the highest, consulting the code tables, changing them, in an adapted way, according to the predictive value. At the same time, it is possible to correspond to the amount of the dispersion of the probability of appearance of the number of coefficients consulting the VLC tables, changing them according to the predictive value.
ES 2 277 313 T3
Only two blocks can be used in the position of blocks B and D, as the blocks that will be queried by the predictive value calculation unit 1501 of the current block X, as shown in Fig. 4B, instead of using three contiguous blocks , as shown in Fig. 4A. In this case, changes can be made to the reference blocks, as in Table 6, when the blocks are not decoded or located outside the image or outside the fragment. Regarding the symbols in Table 6, an O symbol means a decoded block and an x symbol means a block that cannot be consulted since it is not decoded or located outside the image or outside the fragment, as in Table 1. Table 6 shows a relationship between reference block conditions and queryable blocks, however, the patterns are not limited to this. When no reference blocks are found, a 0 or other arbitrary value is directly given as a predictive value. However, the same value will be used as the one used for encoding. In this case, the coefficient number storage unit 1402 can store only the coefficient numbers decoded by the coefficient number decoder 1403, at least those of the necessary reference blocks for the current macroblock shown in Fig. 6B.
Also, one can select, as a method for calculating a predictive value in the predictive value calculation unit 1501, for example, an optimal method according to each sequence, each GOP, each image or each fragment, instead of setting the method of use of any one of a mean value, a maximum value, a minimum value, or an intermediate value. In this case, a calculation procedure is established by decoding the signals to identify a calculation procedure described in the header section of the sequence or the image or the fragment, of the bit stream. The fragment is an image divided into a plurality of sections. A section equivalent to a column in the cross direction of each block is an example of this.
Also, as a method for calculating a predictive value in the predictive value calculating unit 1501, for example, any one of a mean value, a maximum value, a minimum value or an intermediate value according to the mean value of the coefficient numbers of the decoded reference blocks. Table 7 shows the selection criteria. The mean value assignment mode and the data elements indicated as predictive value calculation procedures are not limited to those used in Table 7. In this sense, the same procedure will be used as that used for encode.
The present embodiment shows a bit stream decoding process method in which the coefficient number decoder 1403 performs variable length encoding of the actual coefficient number values. However, a decoding of a bit stream can be performed in which a variable length encoding of a differential value between the predictive value and the number of coefficients is performed. In this case, the number of coefficients is established by the fact that the sum calculation unit 1507 adds the predictive value, calculated by the predictive value calculation unit 1501, to the differential value of the number of coefficients decoded by the decoder of number of coefficients 1506.
Also, the coefficient number decoder 1403 performs variable length decoding by changing both the code table and the VLC table according to the predictive value as a function of the coefficient numbers in the contiguous blocks. However, you can set any of them instead of switching between them. In this case, this is done by preparing a storage unit that has either a certain type of code tables or a certain type of VLC tables. FIG. 20A is a block diagram showing a structure of the coefficient number decoder 1403 to perform variable length decoding of the number of coefficients by setting only the code table. Fig. 20B is a block diagram showing a structure of the coefficient number decoder 1403 to perform variable length decoding of the number of coefficients by setting the VLC table only. In case only the code table is set, the coefficient number decoder 1403, as shown in Fig. 20A includes a code table storage unit 1601 in place of the code table storage unit 1502 and the code table selection unit 1503, which are shown in FIG. 18A. The code table storage unit 1601 has a certain type of code tables. The coefficient number decoder 1506 first transforms the variable length code into a code number using the VLC table selected by the VLC table selection unit 1504 and subsequently transforms the code number into the number of coefficients using the code table stored in the code table storage unit 1601.
On the other hand, in case only the VLC table is set, the coefficient number decoder 1403, as shown in Fig. 20B, includes a VLC table storage unit 1602, instead of the VLC table storage unit. VLC table storage 1505 and VLC table selection unit 1504, shown in FIG. 18A. The VLC table storage unit 1602 has a certain type of VLC table. The coefficient number decoder 1506 first transforms a variable length code into a code number using the VLC table stored in the VLC table storage unit 1602 and subsequently transforms the code number into the number of coefficients using the code table selected by the code table selection unit 1503.
Therefore, the memory capacity for storing a plurality of tables can be reduced by setting any one of a code table and a VLC table.
Likewise, variable length decoding can be performed in the coefficient number decoder 1403 by changing only the VLC tables, without using the code tables, according to the predictive value, based on the coefficient numbers of the contiguous blocks. . Fig. 20C is a block diagram showing a
ES 2 277 313 T3 structure of number of coefficients decoder 1403 when variable length decoding of number of coefficients is performed using only VLC table, without using code tables. In this case, as shown in Fig. 20C, the coefficient number decoder 1403 includes neither the code table storage unit 1502 nor the code table selection unit 1503, which are shown in Fig. 18. In the coefficient number decoder 1403, the VLC table selection unit 1603 selects the actual use VLC table from a plurality of VLC tables stored in the VLC table storage unit 1604, depending on the predictive value calculated by predictive value calculation unit 1501. Therefore, the coefficient number decoder 1506 directly transforms a variable length code into the number of coefficients, without transforming the number of coefficients into a code number using the code table as described above.
Therefore, by setting any one of the code table or VLC table, instead of switching between them, the number of change tables can be reduced or an amount of memory can be reduced to store a plurality of tables, although the effects of encoding performance are more or less diminished.
Also, a case where the number of coefficients decoder 1403 decodes a bit stream, in which a variable length encoding of the differential value between the predictive value and the number of coefficients is performed, instead of the value of the number of coefficients, can be treated in the same way. Fig. twenty-one is a block diagram of this example showing a structure of the number of coefficient decoder 1403 for performing a bit stream decoding, in which a variable length decoding of the differential value between the predictive value and the number of coefficients setting both the code table and the VLC table. In this case, as shown in Fig. 21, the coefficient number decoder 1403 includes a code table storage unit 1601, in place of the code table storage unit 1502 and the code table selection unit 1503, which are shown in Fig. 18A, as well as a VLC table storage unit 1602 in place of the VLC table storage unit 1505 and the VLC table selection unit 1504, which are shown in Fig. 18A. Said code table storage unit 1601 has a certain type of code tables, while VLC table storage unit 1602 has a certain type of VLC table. The coefficient number decoder 1506 first transforms a variable length code into a code number using the VLC table stored in the VLC table storage unit 1602, and subsequently transforms the code number into a differential value between the predictive value and the number of coefficients using the code table stored in the code table storage unit 1601. The sum calculating unit 1507 calculates the number of coefficients by adding the differential value to the predictive value.
Seventh embodiment
The structure of the image decoding device and the decoding process scheme are exactly the same as the sixth embodiment, except for the 1403 coefficient number decoder shown in Fig. 17. Regarding the length decoding process coefficient number variable performed by the coefficient number decoder 1403, according to the seventh embodiment, in this case the details are explained using Figs. eleven and 22. The created bit stream will be input into the image encoding device according to the second embodiment.
FIG. 22A is a block diagram showing, in detail, an internal structure of the number of coefficient decoder 1403.
As shown in Fig. 22A, the coefficient number decoder 1403 includes a code table generating unit 1901, instead of the code table storage unit 1502 and the code table selection unit 1503 which are shown in Fig. 18A. The coefficient numbers of the decoded blocks are input from the coefficient number storage unit 1402, which is shown in Fig. 17, in the code table generating unit 1901. The code table generating unit 1901 counts the number of the decoded blocks having the same number of coefficients as the value of the number of coefficients in each value of the number of coefficients and creates code tables by assigning code numbers in descending order starting from a number of coefficients that recorded the highest frequency based on statistics. Fig. 11A is a model diagram showing a position of decoded blocks proposed as statistics. In this case, a P1, a P3 and a P4 are images in which an inter-image prediction is carried out, while an I2 is an image in which an intra-image prediction is carried out. Assuming that a current block to be decoded belongs to P3, all the blocks of P1 are proposed as statistics, an image just prior to the current image decoded with the same procedure. The case where the blocks equivalent to an image including the decoded blocks of the current image are proposed as statistics, it can be treated in the same way. Likewise, a table corresponding to the initial condition is used in ascending order starting from number 0, when there are no decoded blocks equivalent to an image that can be proposed as statistics. In this case, the blocks equivalent to one image are proposed as statistics, however, the case where the number of blocks other than this is used as a parameter can be treated in the same way. In this sense, the same amount will be used as that used for encoding. In the case of generating the code table as described above, referring to Fig. 11A as shown, the table can only be generated once when the current image encoding is started.
ES 2 277 313 T3
Meanwhile, the coefficient numbers of the decoded blocks located at the periphery are input to the predictive value computing unit 1501. The predictive value computing unit 1501 sets the predictive value by computing an average value based on said values, as in the sixth embodiment. Instead of the mean value, a maximum value, a minimum value, or an intermediate value can be used as a procedure to establish the predictive value. As in the sixth embodiment, the decoded blocks used as a reference are established using the three blocks located in the position of blocks B, C and D of the current block X shown in Fig. 4A, according to Table 1. Table 1 shows a relationship between reference block conditions and queryable blocks, however, the patterns are not limited to this. When no reference blocks are found, a 0 value or some other arbitrary value is directly given, as a predictive value. In this sense, the same value will be used as the one used to encode.
The predictive value calculated by the predictive value calculating unit 1501 is used only in the VLC table selection unit 1504. The VLC table selection unit 1504 selects, as in the sixth embodiment, a VLC table to decode the number of coefficients from a plurality of VLC tables prepared in advance in the VLC table storage unit. 1505, as shown in Table 4, based on the selection criteria shown in Table 5.
The coefficient number decoder 1506 queries the code table created by the code table generation unit 1901 and the VLC table selected by the VLC table selection unit 1504 and performs variable length decoding of the stream. bits of the number of coefficients entered in the same way as in the sixth embodiment.
Therefore, in the present embodiment, a code table can be created by taking statistics of the coefficient numbers of the decoded blocks and set up a VLC table according to the calculated predictive value using the coefficient numbers of the decoded blocks. and carry out the decoding of the number of coefficients consulting both tables.
Likewise, the decoded blocks to be used as a reference can be set in the predictive value calculation unit 1501, as in the sixth embodiment, according to Table 6, using only two blocks located in the position of the blocks B and D relative to the current block X shown in Fig. 4B, instead of using three adjacent blocks, as shown in Fig. 4A. Table 6 shows a relationship between reference block conditions and queryable blocks, however the patterns are not limited to this. When no reference blocks are found, a value of 0 or another arbitrary value can be given directly. In this sense, the same value will be used as the one used for encoding.
Also, as a method for calculating the predictive value in the predictive value calculation unit 1501, for example, an optimal method can be selected according to each sequence, each GOP, each image or each fragment, instead of setting the procedure for use any one of a mean value, a maximum value, a minimum value, or an intermediate value. In this case, the calculation procedure is established by decoding the signals to identify the calculation procedure described in the header of the sequence, of the GOP or of the image or fragment, of the bit stream.
Also, for example, any one of a mean value, a maximum value, a minimum value or an intermediate value, according to the mean value of the coefficient numbers of the decoded reference blocks, can be selected as a procedure for calculating a predictive value in the predictive value calculation unit 1501. Table 7 shows your selection criteria. The mean value assignment mode and the data elements indicated as predictive value calculation procedures are not limited to those used in Table 7. In this sense, the same procedure will be used as that used for encode.
Also, the present embodiment shows a process method of decoding a bit stream in which variable length encoding of the values of the number of coefficients themselves is carried out. However, a decoding of a stream of bits can be carried out in which a variable-length encoding of a differential value between a predictive value and the number of coefficients is carried out. In this case, the number of coefficients is established by the fact that the sum calculation unit 1507 adds the differential value between the predictive value, calculated in the predictive value calculation unit 1501, as shown in Fig. 22 , to the number of coefficients decoded by the coefficient number decoder 1506.
Also, in the aforementioned embodiment, the coefficient number decoder 1403 performs variable length decoding by changing the VLC tables according to the predictive value as a function of the coefficient numbers of the adjacent blocks. However, the table can be fixed, instead of switching between them as in the sixth embodiment. In this case, this is done by using only a VLC table storage unit that has a certain type of VLC tables, instead of using the VLC table selection unit.
Eighth form of realization
The structure of the image decoding device and the decoding process scheme are exactly the same as the sixth embodiment, except for the 1403 coefficient number decoder which
ES 2 277 313 T3 is shown in Fig. 17. Regarding the variable length decoding process of the number of coefficients carried out by the number of coefficients decoder 1403, according to the eighth embodiment, in this case the details are explained using Fig. 23, Table 8 and Table 9. The bit stream created by the image encoding device according to the third embodiment will be input.
FIG. 23A is a block diagram showing in detail an internal structure of the coefficient number decoder 1403.
As shown in Fig. 23A, the coefficient number decoder 1403 does not include the predictive value computing unit 1501 shown in Fig. 18A. A code table selection unit 2001 and a table selection unit of VLC 2002 select an actual use table directly using the coefficient numbers of the decoded blocks, without using a predictive value, which differs from the sixth form of realization. Regarding the decoded blocks used as a reference, which are shown in Fig. 4B, only two blocks are used in the position of block B (top) and block D (left) with respect to the current block X. However, When the blocks at the top and at the left are not decoded or located outside the image or the clip, a value of 0 or another arbitrary value can be given. In this sense, the same value will be used as the one used for encoding.
Table 8 shows a code table selection procedure in the code table selection unit 2001. The code table selection unit 2001 classifies the respective numbers of coefficients of the blocks located at the top and into two groups. to the left of the current block, as shown in Table 8, based on value, and selects a table using a combination of the four thus formed. The procedure to classify the number of coefficients of the upper and left blocks and the mode of assignment of the code tables are not limited to those used in Table 8. In this sense, in this case, the same procedure is used than the one used to encode. Also, the VLC table selection unit 2002 selects a VLC table as an actual reference using the selection procedure shown in Table 9, as in the case of the code table selection unit 2001.
The coefficient number decoder 1506 queries the code table, selected by the code table selection unit 2001, and the VLC table, selected by the VLC table selection unit 2002, and performs a decoding of variable length of the number of coefficients of the current block that is entered in the same way as in the sixth embodiment.
The present embodiment, as shown above, classifying the number of coefficients of the decoded blocks located in the upper part and in the left of the current block in groups "N", according to the value consulting the table of codes and the table of VLC, according to the formed combination of N x N modes, and switching between them, in an adapted way, can effectively carry out the decoding of the number of coefficients.
The present embodiment shows a process method of decoding a bit stream in which variable length encoding of the values of the number of coefficients themselves is carried out. However, a decoding of a bit stream can be performed in which a variable length encoding of a differential value between the predictive value and the number of coefficients is performed. In this case, the number of coefficients is established by the fact that the sum calculation unit 1507 adds the differential value between the predictive value, calculated in the predictive value calculation unit 1501, to the number of coefficients decoded by the decoder of number of coefficients 1506.
Also, the coefficient number decoder 1403 performs variable length decoding by changing both the code table and the VLC table according to the coefficient numbers of the contiguous blocks. However, any one of said tables can be fixed instead of switching between them as in the sixth embodiment. In this case, this is done by using a storage unit that has either a certain type of code tables or a certain type of VLC tables, instead of using the table selection units. Furthermore, variable length decoding can be carried out by changing only the VLC tables, without using code tables according to the coefficient numbers of the adjacent blocks, as in the sixth embodiment.
Ninth form of realization
The structure of the image decoding device and the decoding process scheme according to the present embodiment are exactly the same as the sixth embodiment, except for the number of coefficient decoder 1403 shown in Fig. 17 . Regarding the variable length decoding process of the number of coefficients performed by the number of coefficients decoder 1403, according to the ninth embodiment, in this case, the details are explained using Figs. 24 and 14. The bit stream created by the image encoding device according to the fourth embodiment will be input.
FIG. 24A is a block diagram showing, in detail, an internal structure of the coefficient number decoder 1403.
As shown in FIG. 24A, the coefficient number decoder 1403 includes a table selection unit 2101 in place of the predictive value calculation unit 1501 of the code table selection unit.
ES 2 277 313 T3
1503 and VLC table selection unit 1504, shown in FIG. 18A. The table selection unit 2101 directly uses the number of the coefficients of the decoded blocks, without using a predictive value, and selects an actual use table by evaluating both the code table and the VLC table at the same time, which differs of the sixth embodiment. Regarding the decoded blocks that are used as a reference, the three blocks are used in the position of the blocks B, C and D with respect to the current block X, as in Fig. 4A. In this sense, when the blocks thus positioned are neither decoded nor positioned outside the image or outside the fragment, a value of 0 or some other arbitrary value is given as the number of coefficients. However, the same value will be used as the one used for encoding.
As shown in Fig. 14, the table selection unit 2101 calculates a total length of a bit stream that is created as a result of encoding the coefficient numbers of the reference blocks using both the code table and the reference block. VLC table at once and sets it as an evaluation value, as in the fourth embodiment. Therefore, the table selection unit 2101 performs such processing for all combinations of the code table and VLC table stored in both the code table storage unit 1502 and the code table storage unit. VLC table 1505 and selects a combination of a code table and a VLC table in which the obtained evaluation value is the lesser.
The coefficient number decoder 1506 queries the code table and the VLC table selected by the table selection unit 2101 and performs variable-length encoding of the number of coefficients in the current block which is input in the same way as in the sixth embodiment.
Therefore, in the present embodiment, the encoding of the coefficient numbers of the contiguous blocks that are decoded using the code table and the VLC table is carried out, a titration value is set using the total length of the bit stream at that moment and decoding of the number of coefficients is carried out by consulting the code table and the VLC table whose combination generates the lowest evaluation value.
Regarding the decoded blocks that the table selection unit 2101 uses as a reference, a use case of only two blocks located in the position of blocks B and D with respect to the current block X, as shown in Fig. 4B, Instead of using three contiguous blocks, which are shown in Fig. 4A, it can be treated in the same way as in the sixth embodiment. In this sense, when the blocks thus positioned are neither decoded nor positioned outside the image or outside the fragment, a value of 0 or some other arbitrary value can be given as a number of coefficients .
Also, the present embodiment shows a process method of decoding a bit stream in which variable length encoding of the values of the number of coefficients themselves is carried out. However, a decoding of a bit stream can be performed in which a variable length encoding of a differential value between the predictive value and the number of coefficients is performed. In this case, the number of coefficients is established by the fact that the sum calculation unit 1507 adds the differential value between the predictive value, calculated by the predictive value calculation unit 1501, to the number of coefficients decoded by the decoder of number of coefficients 1506, as shown in Fig. 24B.
Also, in the present embodiment, the code table and VLC table are proposed to change in the coefficient number decoder 1403, however, any of them can be set instead of changing between them.
Tenth embodiment
The structure of the image decoding device and the decoding process scheme according to the present embodiment are exactly the same as the sixth embodiment, except for the number of coefficient decoder 1403 shown in Fig. 17 . The present embodiment uses an inter-picture prediction mode, for inter-picture prediction decoding, and an intra-picture prediction mode, for intra-picture prediction decoding, as reference information of the number decoder. coefficients 1403, instead of the coefficient numbers of the coded blocks as in the sixth embodiment. The bit stream that is created in the image encoding device according to the fifth embodiment will be input.
In this case, regarding the coefficient number variable length decoding process performed by the coefficient number decoder 1403 shown in Fig. 17, the details are explained in connection with Fig. 25.
FIG. 25 is a block diagram showing, in detail, an internal structure of the number of coefficient decoder 1403.
As shown in Fig. 25, the coefficient number decoder 1403 does not include the predictive value computing unit 1501 shown in Fig. 18A. The inter-picture prediction mode, for inter-picture prediction decoding, and the intra-picture prediction mode, for intra-picture prediction decoding, are input from the bit stream analysis unit 1401 in one unit. code table selection unit 2201, as well as in a VLC table selection unit 2202. The code table selection unit 2201 selects
ES 2 277 313 T3 a table to be used depending on the mode: the inter-picture prediction mode, for inter-picture prediction decoding, and the intra-picture prediction mode, for intra-picture prediction decoding. picture. Table 10 shows a selection procedure from the code tables stored in the code table selection unit 2201.
For example, in the case where the current image is decoded using inter-image prediction, a code table 2 is selected for a variable-length decoding of the number of coefficients when the current block size 8 x is selected for prediction. 8. The data elements are not limited to those used in Table 10. In this sense, the same data elements will be used as those used for encoding.
Also, the VLC table selection unit 2202 selects a VLC table as the actual reference using the selection procedure shown in Table 11, as in the case of the code table selection unit 2201.
The coefficient number decoder 1506 queries the code table selected by the code table selection unit 2201, as well as the VLC table selected by the VLC table selection unit 2202 in order to perform a decoding of variable length of the number of coefficients of the current block which is entered in the same way as in the sixth embodiment.
Therefore, in the present embodiment, a decoding of the number of coefficients can be carried out by consulting the code table and the VLC table by switching between them, in an adapted way, according to the mode: the inter prediction mode -image, for inter-picture prediction decoding, and intra-picture prediction mode, for intra-picture mode decoding.
The present embodiment shows a process method of decoding a bit stream in which variable length encoding of the values of the number of coefficients themselves is carried out. However, a decoding of a bit stream can be performed in which a variable length encoding of a differential value between a predictive value and a number of coefficients is performed. In this case, the predictive value is established using the numbers of the coefficients of the adjacent decoded blocks and the number of coefficients is established by adding said value to the differential value of the number of coefficients, which is decoded with the number of coefficients decoder 1506 as in the sixth embodiment.
Also, in the present embodiment, the coefficient number decoder 1403 performs variable length decoding by changing both the code table and the VLC table. However, they can be set instead of changing either one or both of them. In this case, this is done by preparing only one storage unit that has either a certain type of code tables or a certain type of VLC tables.
Eleventh embodiment
If a program is recorded to perform the structure of the encoding procedure or the decoding procedure, as shown in the above-mentioned embodiments, on a memory medium, such as a floppy disk, the process as shown in such embodiments it can be easily carried out on a separate computer system.
Figs. 26A, 26B and 26C are illustrations showing the case where the process shown in embodiments 1 to 10 mentioned above is carried out on a computer system using a floppy disk that stores the encoding procedure or the decoding procedure of the aforementioned embodiments.
Fig. 26B shows a detailed presentation of a flexible disk, its cross-sectional structure and the flexible disk itself, while Fig. 26A shows an example of a physical format of the flexible disk as a main body of a recording medium . A flexible disk FD is contained in a housing F, a plurality of tracks Tr are concentrically formed from the periphery to the inside of the disk surface, and each track is divided into 16 sectors Se in the angular direction. Therefore, the floppy disk storing the aforementioned program stores the data, like the aforementioned program, in a designated area on the floppy disk FD.
Fig. 26C shows a structure for recording and reading the program of the flexible disk FD. When the program is recorded on the floppy disk FD the computer system Cs adds the data, like the program, through a floppy disk drive. When the encoding device and the decoding device are built into the computer system with the program from the floppy disk, the floppy disk drive reads the program from the floppy disk and subsequently transfers it to the computer system.
The above explanation is made on the hypothesis that a floppy disk is used as a data recording medium, however the same process can also be carried out using an optical disk. Furthermore, the recording medium is not limited to a floppy disk and an optical disk, but other media capable of recording a program, such as an IC card and a ROM module, can be used.
ES 2 277 313 T3
Next, an explanation is given of the applications of the image encoding method, as well as the image decoding method, as shown in the above-mentioned embodiments, and a system using the same.
Fig. 27 is a block diagram showing an overall configuration of a content provider system ex100 for realizing a content delivery service. The area for providing communication service is divided into cells of the desired size and cell sites ex107 to ex110 which are fixed wireless stations placed in the respective cells.
Said content provider system ex100 is connected to devices, such as a computer ex111, a PDA (personal digital assistant) ex112, a camera ex113, a mobile phone ex114 and a mobile phone with a camera ex115 through the Internet ex101, a provider Internet service ex102, a telephone network ex104 and cell sites ex107 to ex110.
However, the content provider system ex100 is not limited to the configuration as shown in Fig. 27 and may be connected to a combination of any of them. Also, each device may be directly connected to the telephone network ex104 not through cell sites ex107 to ex110.
The ex113 camera is a device capable of filming video, such as a digital video camera. The ex114 mobile phone may be a mobile phone of a PDC (Digital Personal Communications) system, a CDMA (Code Division Multiple Access) system, a W-CDMA (Band Code Division Multiple Access) system broadband) or GSM system (global system for mobile communications), a PHS (personal portable telephone system) or similar.
A real-time recording and playback server ex103 is connected to the camera ex113 via the telephone network ex104 and the cell site ex109, which performs a real or similar distribution using the camera ex113 based on the encoded data transmitted by the Username. The ex113 camera or the server, which transmits the data, can encode the data. Also, image data shot with a camera ex116 can be transmitted to the real-time recording and playback server ex103 through the computer ex111. In this case, the camera ex116 or the computer ex111 can encode the image data. An LSI ex117, included in the computer ex111, or the camera ex116 actually carries out the encoding process. The software for encoding and decoding images can be integrated into any type of storage medium (such as a CD-ROM, a floppy disk and a hard disk) that is a recording medium that can be read by the computer ex111 or the like. Also, a mobile phone with an ex115 camera can transmit the image data. Said image data is the data encoded by the LSI included in the mobile phone ex115.
The content provider system ex100 encodes the content (such as a live video of music) filmed by users using camera ex113, camera ex116 or the like, in the same way as shown in the aforementioned embodiments. , and transmit them to the real-time recording and playback server ex103, while the real-time recording and playback server ex103 performs a real-time distribution of the content data to the client media according to their requests. Client carriers include computer ex111, PDA ex112, camera ex113, mobile phone ex114, etc., capable of decoding the encoded data mentioned above. In the content provider system ex100, the client carriers can therefore receive and reproduce the encoded data and can also receive, decode and reproduce the data in real time in order to carry out a personal transmission.
When each device in the system performs encoding or decoding, the image encoding device or the image decoding device can be used, as shown in the above-mentioned embodiments.
A mobile phone will be explained as an example of the device.
Fig. 28 is a diagram showing the mobile phone ex115 using the image encoding method and the image decoding method that have been explained in the above-mentioned embodiments. The mobile phone ex115 has an antenna ex201 for communicating with the cell site ex110 via radio waves, a camera unit ex203, such as a CCD camera, capable of filming moving and still images, a display unit ex202, such as a liquid crystal display to display the data, such as decoded images and the like, shot by the camera unit ex203 and received by the antenna ex201, a main unit including a set of operation keys ex204, a voice output unit ex208, such as a speaker for sending voice signals, a voice input unit ex205, such as a microphone for inputting voice signals, a storage medium ex207 for storing encoded or decoded data, such as mobile or still image data shot with the camera, received email data and mobile or still image data, and a slot ex206 for attaching the storage medium ex207 to the mobile phone ex115. The ex207 storage media contains a flash memory element, a type of EEPROM (Electrically Erasable and Programmable Read Only Memory) which is a non-volatile memory that can be electrically erased from or rewritten from a plastic enclosure. , such as an SD card.
ES 2 277 313 T3
Next, the mobile phone ex115 will be explained in connection with Fig. 29. In the mobile phone ex115, a main control unit ex311, designed to fully control each unit of the main body containing the display unit ex202, as well as the operation keys ex204, is mutually connected to a supply circuit unit power supply ex310, to an operation input control unit ex304, to an image coding unit ex312, to a camera interface unit ex303, to an LCD control unit (liquid crystal display) ex302, to an image decoding unit ex309, to a multiplexing / demultiplexing unit ex308, to a reading / writing unit ex307, to a modem circuit unit ex306 and to a voice processing unit ex305 via a synchronous transmission channel ex313.
When, by user operation, a call end key or power key is connected, the power supply circuitry unit ex310 supplies power to the respective units from a battery pack in order to activate the mobile phone with digital camera ex115 in a ready state.
In the mobile phone ex115, the voice processing unit ex305 converts the voice signals received by the voice input unit ex205 in talk mode into digital voice data, by controlling the main control unit ex311, which includes a CPU, a ROM and a RAM, the modem circuit unit ex306 performs a spread spectrum processing of the digital voice data and the communication circuit unit ex301 performs a digital-to-analog conversion and a frequency transformation of the data, in order to transmit them through the antenna ex201. Also, in the mobile phone ex115, the communication circuit unit ex301 amplifies the data received by the antenna ex201 in the conversion mode and performs a frequency transformation and an analog-to-digital conversion of the data, the unit of modem circuitry ex306 performs a reverse spread spectrum processing of the data and the voice processing unit ex305 converts it to analog voice data, in order to send them through the voice output unit ex208.
Furthermore, when an e-mail is transmitted in the data communication mode, the text data of the e-mail, entered by operating the operation keys ex204 on the main body, is sent to the main control unit ex311 through the control unit. operation input control ex304. In the main control unit ex311, once the modem circuit unit ex306 performs a spread spectrum processing of the text data and the communication circuit unit ex301 performs a digital-to-analog conversion and a frequency transformation thereof, the data is transmitted to the cell site ex110 through the antenna ex201.
When the image data is transmitted in the data communication mode, the image data shot by the camera unit ex203 is supplied to the image coding unit ex312 through the camera interface unit ex303. When not transmitted, the image data shot with the camera unit ex203 can also be displayed directly on the display unit ex202 via the camera interface unit ex303 and the LCD control unit ex302.
The image encoding unit ex312, including the image encoding device, as explained in the present invention, compresses and encodes the image data supplied from the camera unit ex203 by the encoding method using the encoding device. of images, as shown in the first embodiment mentioned above, in order to transform them into encoded image data, and sends them to the multiplexing / demultiplexing unit ex308. At this time, the mobile phone ex115 sends the voices received by the voice input unit ex205, during filming with the camera unit ex203, to the multiplexing / demultiplexing unit ex308, as digital voice data, via the voice processing unit ex305.
The multiplexing / demultiplexing unit ex308 multiplexes the coded image data supplied from the image coding unit ex312 and the voice data supplied from the voice processing unit ex305 using a predetermined procedure, the modem circuit unit ex306 leads to carry out a spread spectrum process of the multiplexed data, obtained as a consequence of the multiplexing, and the communication circuit unit ex301 performs a digital-to-analog conversion and a frequency transformation of the data for transmission through the antenna ex201.
Regarding the reception of data from a mobile image file that is linked to a web page or the like in the data communication mode, the modem circuit unit ex306 performs an inverse spread spectrum processing of the data received from the cell site ex110 through the antenna ex201 and sends the multiplexed data, obtained as a consequence of the process, to the multiplexing / demultiplexing unit ex308.
In order to decode the multiplexed data received through the antenna ex201, the multiplexing / demultiplexing unit ex308 separates the multiplexed data into an image data bit stream and a voice data bit stream and supplies the voice data. image encoded to image decoding unit ex309 and voice data to voice processing unit ex305, respectively, via synchronous transmission channel ex313.
Next, the image decoding unit ex309, including the image decoding device as explained in the above-mentioned invention, decodes the data bit stream
Image ES 2 277 313 T3 by means of the decoding procedure corresponding to the encoding procedure, as shown in the aforementioned embodiments, to generate reproduced moving image data and supplies this data to the display unit ex202 a via the LCD control unit ex302 and thereby display the image data included, for example, in a moving image file linked to a web page. At the same time, the voice processing unit ex305 converts the voice data into analog voice data, and supplies said data to the voice output unit ex208 and thereby reproduces the included voice data, for example , in the mobile image file linked to a Web page.
The present invention is not limited to the system mentioned above and the image encoding device or the image decoding device of the above-mentioned embodiments can be incorporated into a digital transmission system as follows. shown in Fig. 30. Said digital satellite or terrestrial transmission is lately current. More specifically, a stream of video information bits is transmitted from a transmitting station ex409 to a transmitting satellite ex410 or communicated with it via radio waves. Upon receipt, the transmitting satellite ex410 transmits radio waves for transmission. Subsequently, a domestic antenna ex406 with a satellite transmission reception function receives the radio waves and a television (receiver) ex401 or an external digital television receiver (STB) ex407 decodes the bit stream for reproduction. The image decoding device, as shown in the aforementioned embodiment, may be arranged in the playback device ex403 to read and decode the bit stream recorded on a storage medium ex402 which is a storage medium. recording, such as a CD or DVD. In this case, the reproduced video signals are displayed on a monitor ex404. Likewise, the image decoding device can be arranged in the external digital television receiver ex407 connected to a cable ex405, for a cable television, or to the antenna ex406, for a satellite or terrestrial transmission, in order to reproduce them on a monitor. ex408 from television ex401. The picture decoding device may be built into the television, not the external digital television receiver. Also, a car ex412 having an antenna ex411 can receive signals from satellite ex410 or cell site ex107 to reproduce moving images on a display device, such as a car navigation system ex413.
Furthermore, the image encoding device, as shown in the above-mentioned embodiments, can encode image signals for recording on a recording medium. As a concrete example, there is an ex420 recorder, such as a DVD recorder for recording image signals on a DVD ex421 disc and a disc recorder for recording on a hard disk. They can be recorded on an ex422 SD card. If the ex420 recorder includes the image decoding device, as shown in the embodiments described above, the image signals recorded on the ex421 DVD disc or ex422 SD card can be played back for display on the monitor ex408.
Regarding the structure of the car navigation system ex413, the structure without the camera unit ex203, without the camera interface unit ex303 and without the image coding unit ex312, of the components shown in Fig. 29. The same happens with the computer ex111, the television (receiver) ex401 and others.
Furthermore, three types of structuring are possible for a terminal, such as the mobile phone ex114 mentioned above. A transmitter / receiver terminal provided with both an encoder and a decoder, a transmitter terminal provided only with an encoder, and a receiver terminal provided only with a decoder.
As described above, the image encoding method or the image decoding method of the aforementioned embodiments can be used for any of the aforementioned devices and systems and using this method, The effects described in the above-mentioned embodiments can be obtained.
Also, the present invention is not limited to the embodiments mentioned above and a wide variety of variations or modifications are possible within the scope of the following claims.
An image encoding method according to the present invention improves encoding performance since optimal tables for variable-length encoding can be queried when encoding the number of coefficients other than 0 contained in a current block to be encoded.
Also, an image decoding method according to the present invention correctly decodes a bit stream in which a number of coefficients other than 0 contained in a block are encoded after orthogonal transformation, consulting optimal tables for variable length encoding.
Industrial applicability
Therefore, the image encoding method and the image decoding method according to the present invention are useful as a method both for encoding an image to create a bit stream and for decoding the bit stream. created using devices, such as a mobile phone, a DVD device, a personal computer, or the like.
Contents30
35 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12 Sheet 13 Sheet 14 Sheet 15 Sheet 16 Sheet 17 Sheet 18 Sheet 19 Sheet 20 Sheet 21 Sheet 22 Sheet 23 Sheet 24 Sheet 25 Sheet 26 Sheet 27 Sheet 28 Sheet 29 Sheet 30 Sheet 31 Sheet 32 Sheet 33 Sheet 34 Sheet 35
247 members in 20 offices
Priority claims2
| Document | Office | Kind | Date |
|---|---|---|---|
| 20020112665 | Japan | – | |
| 2002112665 | Japan | A |
Members247
| Document | Office | Kind | |
|---|---|---|---|
| CA2444357A1 | Canada | A1 | |
| CA2732005A1 | Canada | A1 | |
| WO03088675A1 | World Intellectual Property Organization (WIPO) | A1 | |
| AU2003227248A1 | Australia | A1 | |
| TW200307465A | Taiwan Province of China | A | |
| JP2004007506A | Japan | A | |
| MXPA03010115A | Mexico | A | |
| BR0303566A | Brazil | A | |
| US2004184538A1 | United States of America | A1 | |
| EP1478188A1 | European Patent Office (EPO) | A1 | |
| EP1478188A4 | European Patent Office (EPO) | A4 | |
| KR20040099093A | Republic of Korea | A | |
| CN1565130A | China | A | |
| EP1596608A2 | European Patent Office (EPO) | A2 | |
| EP1596608A3 | European Patent Office (EPO) | A3 | |
| EP1478188B1 | European Patent Office (EPO) | B1 | |
| AT312478T | Austria | T | |
| ATE312478T1 | Austria | T1 | |
| DE60302652D1 | Germany | D1 | |
| DK1478188T3 | Denmark | T3 | |
| SI1478188T1 | Slovenia | T1 | |
| KR20060040751A | Republic of Korea | A | |
| KR20060040752A | Republic of Korea | A | |
| KR20060040753A | Republic of Korea | A | |
| ES2252666T3 | Spain | T3 | |
| DE60302652T2 | Germany | T2 | |
| TW200629910A | Taiwan Province of China | A | |
| TW200629911A | Taiwan Province of China | A | |
| TW200629912A | Taiwan Province of China | A | |
| AU2006203176A1 | Australia | A1 | |
| US7095896B2 | United States of America | B2 | |
| JP2006246499A | Japan | A | |
| US2006233449A1 | United States of America | A1 | |
| US2006233450A1 | United States of America | A1 | |
| US2006233451A1 | United States of America | A1 | |
| US2006239575A1 | United States of America | A1 | |
| US2006269154A1 | United States of America | A1 | |
| CN1293762C | China | C | |
| EP1744561A2 | European Patent Office (EPO) | A2 | |
| EP1744562A2 | European Patent Office (EPO) | A2 | |
| EP1596608B1 | European Patent Office (EPO) | B1 | |
| EP1746841A1 | European Patent Office (EPO) | A1 | |
| EP1744561A3 | European Patent Office (EPO) | A3 | |
| EP1744562A3 | European Patent Office (EPO) | A3 | |
| EP1750451A2 | European Patent Office (EPO) | A2 | |
| EP1753246A1 | European Patent Office (EPO) | A1 | |
| AT352951T | Austria | T | |
| ATE352951T1 | Austria | T1 | |
| CN1917643A | China | A | |
| EP1750451A3 | European Patent Office (EPO) | A3 | |
| US7184598B2 | United States of America | B2 | |
| DK1596608T3 | Denmark | T3 | |
| CN1929608A | China | A | |
| DE60311530D1 | Germany | D1 | |
| TWI281352B | Taiwan Province of China | B | |
| CN1976468A | China | A | |
| CN1976469A | China | A | |
| CN1976470A | China | A | |
| CN1976471A | China | A | |
| ES2277313T3This record | Spain | T3 | |
| AU2003227248B2 | Australia | B2 | |
| DE60311530T2 | Germany | T2 | |
| US7305134B2 | United States of America | B2 | |
| US7308143B2 | United States of America | B2 | |
| US7308144B2 | United States of America | B2 | |
| US7308149B2 | United States of America | B2 | |
| US2008056362A1 | United States of America | A1 | |
| US2008063055A1 | United States of America | A1 | |
| US2008063056A1 | United States of America | A1 | |
| MY135378A | Malaysia | A | |
| US2008117969A1 | United States of America | A1 | |
| JP2008160887A | Japan | A | |
| US2008175315A1 | United States of America | A1 | |
| AU2006203176B2 | Australia | B2 | |
| JP2008178128A | Japan | A | |
| JP4130780B2 | Japan | B2 | |
| JP2008182756A | Japan | A | |
| JP2008193725A | Japan | A | |
| AU2008230068A1 | Australia | A1 | |
| AU2008230069A1 | Australia | A1 | |
| JP4185106B2 | Japan | B2 | |
| JP4185560B2 | Japan | B2 | |
| JP4185561B2 | Japan | B2 | |
| JP4185563B2 | Japan | B2 | |
| JP4185564B2 | Japan | B2 | |
| JP4191793B1 | Japan | B1 | |
| JP2008312226A | Japan | A | |
| JP2009005396A | Japan | A | |
| JP2009022039A | Japan | A | |
| US2009034616A1 | United States of America | A1 | |
| AU2008230068B2 | Australia | B2 | |
| AU2008230069B2 | Australia | B2 | |
| JP2009171602A | Japan | A | |
| CN100527838C | China | C | |
| CN100527839C | China | C | |
| CN100527840C | China | C | |
| CN100527841C | China | C | |
| CN100527846C | China | C | |
| EP1744562B1 | European Patent Office (EPO) | B1 | |
| EP1750451B1 | European Patent Office (EPO) | B1 |
Numbers
- Publication
- 2277313
- Application
- 5017701
Titles2
- Spanish
- PROCEDIMIENTO DE CODIFICACION DE IMAGEN.
- English
- IMAGE CODING PROCEDURE.
Classification
- CPC, 10
- H04N19/13
- H04N19/105
- G06T9/004
- H04N19/159
- H04N19/176
- H04N19/61
- H04N19/60
- H04N19/593
- H04N19/11
- H04N19/136
- IPC, 18
- H04N19 13
- G06T9 00
- H03M7 30
- H03M7 40
- H04N19 107
- H04N19 132
- H04N19 134
- H04N19 137
- H04N19 157
- H04N19 176
- H04N19 189
- H04N19 196
- H04N19 423
- H04N19 50
- H04N19 51
- H04N19 60
- H04N19 61
- H04N19 91