Senior Fitness - Exercise and Nutrition for Aging Men and Women
FREE Article Feed for your website.
Bio-Medical Research Article Database
Informative Articles on Life, Love and Happiness
Tutorials on Business to Writing
Famous Quotes from Famous People
Song Lyric Information
New US Patent Information
Comprehensive List of Content by Category
Online Auctions and Shopping Related Articles
Article Search
Most Recent Articles

Image coding and decoding methods, image coding and decoding apparatuses, and recording media for image coding and decoding programs Number:7,522,775 from the United States Patent and Trademark Office (PTO) owispatent

Home    Author Login    Submit Article    Article Search    Add Your Link    Edit Your Link    Contact Us    Advertising    Disclaimer

   

Google
 

Top Breaking News
     Palestinian Hunger Striker Stirs Emotions by Robert Berger
     Al-Qaida Leader Voices Support for Syrian Uprising by VOA News
     Senegal Youth Mobilizes Before Elections by Nick Loomis

Title: Image coding and decoding methods, image coding and decoding apparatuses, and recording media for image coding and decoding programs

Abstract: In an image coding method of the present invention, after a process such as DCT is performed to digital image data, quantization process is performed, and then, to resultant quantized transform coefficients, variable length coding process is performed with reference to a variable length code table showing how variable length codes are allocated, and in a comparison process between an event derived from the quantized transform coefficients and a reference event included in the variable length code table, transformation process is performed to increase a possibility of performing variable length coding with satisfactory coding efficiency.

Patent Number: 7,522,775 Issued on 04/21/2009 to Boon


Inventors: Boon; Choong Seng (Moriguchi, JP)
Assignee: Panasonic Corporation (Osaka, JP)
Appl. No.: 12/007,563
Filed: January 11, 2008


Related U.S. Patent Documents

Application NumberFiling DatePatent NumberIssue Date
11483821Jul., 20067379606
10392827Mar., 20037116829
09906833Jul., 20016574369
09091985Aug., 19986345123

Foreign Application Priority Data

Nov 06, 1996 [JP] 8-293512
Mar 17, 1997 [JP] 9-062649

Current U.S. Class: 382/233 ; 382/245; 382/248
Current International Class: G06K 9/36 (20060101); G06K 9/46 (20060101)
Field of Search: 382/233,245,248


References Cited [Referenced By]

U.S. Patent Documents
4939583 July 1990 Tsuboi et al.
5384644 January 1995 Yamagami
5400075 March 1995 Savatier
5563593 October 1996 Puri
5729690 March 1998 Jeong et al.
6278801 August 2001 Boon
6345123 February 2002 Boon
6349149 February 2002 Boon
6404929 June 2002 Boon
6490372 December 2002 Boon
6574369 June 2003 Boon
7116829 October 2006 Boon
7379606 May 2008 Boon
Foreign Patent Documents
0 595 242 May., 1994 EP
0 873 018 Oct., 1998 EP
0 663 773 Mar., 2000 EP
0 692 913 Oct., 2001 EP
6-237184 Aug., 1994 JP
6-311534 Nov., 1994 JP
8-079088 Mar., 1996 JP
2000316153 Nov., 2000 JP
WO 95/17073 Jun., 1995 WO
WO 98/20681 May., 1998 WO
Primary Examiner: Tran; Phuoc
Attorney, Agent or Firm: Steptoe & Johnson LLP

Parent Case Text



This is a continuation of application Ser. No. 11/483,821, filed Jul. 11, 2006, now U.S. Pat. No. 7,379,606, which is a continuation of application Ser. No. 10/392,827, filed Mar. 21, 2003, now U.S. Pat. No. 7,116,829, which is a Rule 1.53(b) continuation of application Ser. No. 09/906,833, filed Jul. 18, 2001, now U.S. Pat. No. 6,574,369, which is a continuation of application Ser. No. 09/091,985, filed Aug. 11, 1998, now U.S. Pat. No. 6,345,123.
Claims



The invention claimed is:

1. An image decoding method for extracting a variable length code from compression coded data, obtaining an event corresponding to said variable length code by using a variable length code table wherein a reference event consisting of Last, Run, Level is assigned to each reference variable length code, and deriving an output transform coefficient from said event, the method comprising: judging whether said variable length code includes a control code; obtaining an event corresponding to said variable length code by using said variable length code table when said variable length code does not include said control; and obtaining an event corresponding to said variable length code by using said variable length code table and then obtaining a transformed event by transforming the Run value corresponding to said variable length code using a predetermined function when said variable length code includes said control code which is a second control code.

2. The image decoding method according to claim 1, wherein the predetermined function for transforming the Run value is defined as: the transformed Run value=the resultant Run value+(a predetermined offset value+1).
Description



TECHNICAL FIELD

The present invention relates to image coding and decoding methods, image coding and decoding apparatuses, and recording media for image coding and decoding programs, more specifically, to an image coding process in which a variable coding of high versatility is performed and an image decoding process performed to the result of this image coding.

BACKGROUND ART

Compression coding is essential for efficiently storing or transmitting a digital image. As a method of compressively coding a digital image, used is discrete cosine transformation (DCT) that is a dominant technology in typical standards like JPEG (Joint Photographic Experts Group) and MPEG (Moving Picture Experts Group); In addition, waveform coding methods such as subband coding, wavelet transformation, and fractal are also used as the coding methods as well. To remove redundant signals between images, intra-frame coding is basically preformed based on a spatial correlation within one still image; in addition to this, inter-image coding is also performed in which inter-image prediction using motion compensation is performed based on a temporal correlation between each set of adjacent still images, and a difference signal obtained is subjected to waveform coding. Use of the both methods makes it possible to obtain coded data with a high compression ratio.

In the conventional image coding process according to the MPEG standard or the like, after the DCT process or the like, quantization process is performed, followed by variable length coding process. More specifically, a process such as DCT, subband, or wavelet is performed to digital image data, and the transform coefficients obtained by the above process are quantized using a prescribed quantization scale to generate quantized transform coefficients to which variable length coding process is to be performed.

The quantized transform coefficients obtained by quantization process are arranged in a two-dimensional array, and each coefficient indicates zero or non-zero. In the variable length coding process, zigzag scanning is performed to the coefficients (zero and non-zero) arranged in the two-dimensional array in a prescribed scanning order to rearrange the coefficients in one dimension, and thereafter, events are generated from the one-dimensional array of coefficients. Each event consists of a Run that indicates a number of preceding zero coefficients and a Level that indicates the value of a non-zero coefficient. Then, coding is performed by referring to a variable length code table prepared in advance in which a unique variable length code is allocated to each event consisting of a Run and a Level. Moreover, in stead of this method, an alternative method may be used, such as a method of allocating another code which indicates if a coefficient is a last one, or a method of performing coding with reference to a table where variable length codes are allocated to events each consisting of a set of (Run, Level, Last) obtained by adding a Last indicating if a coefficient is a last one to a set of a Run and a Level.

FIG. 18 is a flowchart illustrating the procedure of a prior art coding process to an event consisting of (Last, Run, Level). Hereinafter a description is given of the conventional coding process with reference to the flow of FIG. 18.

Following the initiation of the process in step 1801, a j-th event is input as an input event which is an object to be processed. In step 1803, comparison is performed between this input event and a reference event included in a variable length code table.

FIGS. 19 through 22 show instances of the variable length code table used for the prior art variable length coding process. As illustrated, in the tables, events each consisting of (Last, Run, Level) correspond to codes. In the figures, "s" in a "VLC CODE" cell indicates zero when Level is positive, whereas it indicates 1 when Level is negative. Further, when Last is 0, it indicates that the coefficient concerned is not the last coefficient.

In step 1803 of FIG. 18, by referring to this variable length code table, comparison is performed between the input event and each reference event included in the table consisting of (Last, Run, Level); In step 1804, according to the above comparison process, it is decided whether there is a reference event of which (Last, Run, Level) is identical to that of the input event. When it is decided in step 1804 that there is such reference event, step 1805 is performed, whereas, when such a reference event is not found, step 1806 is performed. At this point, if step 1805 is performed, a variable length code corresponding to the reference event is output, followed by step 1807 which will be described later.

On the other hand, in the case where step 1806 is performed, that is, in the case where the (Last, Run, Level) identical to that of the event as an object to be processed cannot be found when the variable length code table is referred, fixed length coding is performed in step 1806. FIG. 23 are diagrams conceptually illustrating fixed length coding. As shown in the figures, the codes shown in FIG. 23(a) are allocated to RUNs and the codes shown in FIG. 23(b) allocated to Levels, respectively, and these codes are the results of the coding. In this fixed length coding process, a control code for indicating that a result of the coding is a fixed-length code is added in such a way that it is transmitted prior to the result of the coding, so as to distinguish the code obtained by fixed length coding from the code obtained by variable length coding. This control code is called "escape code (ECS)", and in this case, a code "0000011" shown in FIG. 22 is used as the control code. More specifically, when fixed length coding is performed, coded data is obtained comprising a 7-bit ESC code and the code thus allocated subsequent to the ESC code.

Following the performance of step 1805 or step 1806, in the subsequent step 1807, it is decided whether an input event processed is a last input event or not, and if it is decided that the event is the last one, the coding process is completed in step 1808. On the other hand, if it is decided that the event is not the last one, j is incremented by 1 in step 1809 and the operation returns to step 1802, whereby a next input event is processed in the same manner. Thus, the process is continued to the last non-zero coefficient.

As described above, in the prior art image coding process, events are generated for quantized transform coefficients and comparison is made between the event and a reference event included in a variable length code table; if the matching event is found, a variable length code derived from the table is used, whereas, if no matching event is found, a result of fixed length coding, to which a control code (ESC code) is added, is used.

Generally, a variable length code table is formed by investigating statistical distribution using numeral images and allocating shorter codes to the events occurring most frequently, whereby the overall compression ratio is improved. As described above, if coding is not performed using a variable length code table, fixed length coding is performed and the compression ratio is thus degraded; Therefore, it is desired to make a setting which hardly causes fixed length coding. In the prior art image coding, as shown in FIG. 18, if it is decided in step 1804 that there is no reference event concerned, fixed length coding is immediately performed in step 1806, which means that a rate of performing variable length coding with better coding efficiency is directly decided by a rate at which an event concerned is present in a variable length code table.

In image compression coding, however, the statistical distribution of coefficients varies according to the quantization scale, and it is understood that the distribution of coefficients having high compression ratio differs considerably from that having low compression ratio. Therefore, when an appropriate variable length code table is not used for coefficients as objects, the rate at which the event concerned is present in the variable length code table is decreased and the rate of performing fixed length coding is increased, resulting in reduced coding efficiency.

Generally, as the quantization scale is increased, the compression ratio of quantized transform coefficients is increased, but the event derived from such quantized transform coefficients tends to have a smaller value of Level. The variable length code table shown in FIGS. 19 to 22 includes many events having small Level values to which short codes are allocated, and is suitable for use in the case where quantized transform coefficients having relatively high compression ratio are used as processing objects. Therefore, if the quantization scale is small and the compression ratio of quantized transform coefficients is low, many of the events derived have large Level values. So, the rate at which an event concerned is not present in such variable length code table is increased and the events present in the table are often allocated relatively long codes, resulting in increased bit number of the result of the coding. In other words, employing a variable length code table formed for low compression ratio in coding at high compression ratio leads to decrease in coding efficiency.

As described above, when a variable length code table set properly is not used for the coefficients which are the processing objects of variable length coding, since variable length coding cannot be performed and fixed length coding is performed more frequently, and the amount of bits is increased even when variable length coding is performed, the amount of code is increased and improvement of compression ratio is prevented, which is a problem of the prior art image coding process.

DISCLOSURE OF THE INVENTION

The present invention is proposed in view of the above-described problems, and has an object to realize that in image coding, any object of coding in a wide range, which ranges from the one having high compression ratio to the one having low compression ratio, is coded with improved efficiency using a single variable length code table.

To solve the above-described problems, provided is an image coding method of the present invention in which transform coefficients are obtained for an image to be coded by a prescribed transformation method, quantization process is performed to the transform coefficients using a prescribed quantization scale to obtain quantized transform coefficients, and variable length coding process is performed to the quantized transform coefficients referring to a variable length code table comprising a plurality of reference events paired with variable length codes, and the method includes: a first variable length coding step of obtaining a first result of comparison by comparison process between the quantized transform coefficient and a reference event included in the variable length code table, and if the first result of comparison shows "matching", obtaining a first result of coding using a variable length code corresponding to the reference event; a second variable length coding step of, if the first result of comparison does not show "matching", obtaining a second result of comparison by comparison process between the quantized transform coefficient and a reference event included in the variable length code table subject to a transformation process using a prescribed function, and if the second result of comparison shows "matching", obtaining a second result of coding which is distinguishable from the first result of coding using a variable length code corresponding to the reference event; and a particular coding step of, if the second result of comparison does not show "matching", performing coding process to the quantized transform coefficient using a prescribed coding system to obtain a result of coding which is distinguishable from each of the first and second results of coding; therefore, a rate of performing variable length coding is raised, and a compression ratio of resultant coded data is increased, thereby improving efficiency of coding process using a variable length code table.

Another image coding method of the present invention in which transform coefficients are obtained for an image to be coded by a prescribed transformation method, quantization process is performed to the transform coefficients using a prescribed quantization scale to obtain quantized transform coefficients, and variable length coding process is performed to the quantized transform coefficients referring to a variable length code table comprising a plurality of reference events paired with variable length codes, includes a variable length coding step which comprises the steps of: performing division process to the quantized transform coefficient using a divisor decided based on the quantization scale, to obtain a quotient and a remainder; obtaining a result of comparison with quotient by comparison process with a reference event included in the variable length code table, using the quotient; and, if the result of comparison with quotient shows "matching", employing a variable length code corresponding to the reference event and adding an auxiliary code obtained by performing coding process to the remainder using a prescribed coding system, to obtain a result of coding; The transformation process using division increases a matching rate in comparison, thereby improving efficiency of coding process utilizing a variable length code table.

Still another image coding method of the present invention is an image coding method in which transform coefficients are obtained for an image to be coded by a prescribed transformation method, quantization process is performed to the transform coefficients using a prescribed quantization scale to obtain quantized transform coefficients, and variable length coding process is performed to the quantized transform coefficients referring to a variable length code table comprising a plurality of reference events paired with variable length codes, wherein, a variable length coding step is performed which comprises the steps of: performing transformation process with a prescribed function to a reference event included in the variable length code table, based on the quantization scale, to generate a transformed event; obtaining a result of transformation comparison by comparison process between the quantized transform coefficient and the transformed event; and, if the result of transformation comparison shows "matching", obtaining a result of coding using a variable length code corresponding to the reference event based on which the transformed reference event is generated; the transformation process applied to a reference event included in a variable length code table raises a matching rate in comparison, thereby improving efficiency of coding process utilizing a variable length code table.

According to the present invention which is described above, an effect is available that a wide range of images (ranging from the one having a high compression ratio to the one having a low compression ratio) can be coded with improved efficiency, using a single variable length code table.

Further, the image coding apparatus of the present invention can obtain a result of coding having high compression ratio by implementing the above-described image coding method.

Furthermore, in an image decoding method of the present invention, appropriate decoding process is performed to the result of coding obtained by the above image coding method.

Still furthermore, the image decoding apparatus of the present invention can perform appropriate decoding process to the result of coding obtained by the above image coding apparatus.

Moreover, a recording medium for image coding program of the present invention, when an image coding program implementing the above-described image coding method is recorded, implements an image coding apparatus capable of obtaining results of coding with high compression ratio utilizing a device resource, by running the program on a computer system.

In addition, a recording medium for image decoding program of the present invention, when an image decoding program implementing the above-described image decoding method is recorded, implements an image decoding apparatus capable of performing appropriate decoding process to results of coding with high compression ratio utilizing a device resource, by running the program on a computer system.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a flowchart illustrating the procedure of a variable length coding method according to a first embodiment of the present invention.

FIG. 2 is a block diagram illustrating the configuration of an image coding apparatus according to the same embodiment.

FIG. 3 are explanatory diagrams illustrating examples of a code transformed by the variable length coding method according to the same embodiment.

FIG. 4 is a block diagram illustrating the configuration of an image decoding apparatus according to the same embodiment.

FIG. 5 is a flowchart illustrating the procedure of a variable length decoding method according to the same embodiment.

FIG. 6 is a flowchart illustrating the procedure of a variable length coding method according to a second embodiment of the present invention.

FIG. 7 is an explanatory diagram showing an example of a code transformed by the variable length coding method according to the same embodiment.

FIG. 8 are flowcharts illustrating the procedure of a variable length coding method according to a third embodiment of the present invention.

FIG. 9 is an explanatory diagram showing an example of a code transformed by the variable length coding method according to the same embodiment.

FIG. 10 is a flowchart illustrating the procedure of a variable length coding method according to a fourth embodiment of the present invention.

FIG. 11 is an explanatory diagram showing an example of a code transformed by the variable length coding method according to the same embodiment.

FIG. 12 is a flowchart showing the procedure of a variable length coding method according to a fifth embodiment of the present invention.

FIG. 13 are diagrams illustrating relations between quantization scales and divisors used for transformation process in the variable length coding method according to the same embodiment.

FIG. 14 is an explanatory diagram illustrating an example of a code transformed by the variable length coding method according to the same embodiment.

FIG. 15 is a flowchart illustrating the procedure of a variable length coding method according to a sixth embodiment of the present invention.

FIG. 16 is a block diagram illustrating the inner configuration of a variable length coder included in the image coding apparatus according to the same embodiment.

FIG. 17 is a block diagram illustrating the inner configuration of a variable length decoder included in the image decoding apparatus according to the same embodiment.

FIG. 18 is a flowchart illustrating the procedure of a prior art variable length coding method.

FIGS. 19 through 22 are diagrams showing examples of variable length code table used for variable length coding.

FIG. 23 are diagrams for explaining fixed length coding process.

BEST MODES FOR CARRYING OUT THE INVENTION

Embodiment 1

An image coding method according to a first embodiment of the present invention is intended to increase chances of using a variable length code table by performing transformation process to events which are objects to be coded, thereby improving coding efficiency.

FIG. 1 is a flowchart showing the procedure of a variable length coding method according to the first embodiment of the present invention. Further, FIG. 2 is a block diagram illustrating the configuration of an image coding apparatus performing the variable length coding process according to the first embodiment, and FIG. 3 are diagrams showing examples of the result of the variable length coding.

Initially, a description is given of the image coding apparatus according to the first embodiment, using FIG. 2. As shown in the figure, the image coding apparatus according to the first embodiment comprises: a first adder 202, a coder 203, a second adder 210, a variable length coder (VLC) 211, a frame memory (FM) 213, a motion extractor (ME) 214, and a motion compensator (MC) 215, and it receives from an input terminal 201 digital image data which is an object of coding process and outputs from an output terminal 206 the coded data which is the output of the image coding apparatus. The coder 203 contains a discrete cosine transformation unit (DCT) 204 and a quantizer (Q) 205, and the decoder 207 also contains an inverse quantizer (IQ) 208 and an inverse discrete cosine transformation unit (IDCT) 209.

Hereinafter a description is given of the operation of the image coding apparatus thus constructed. First of all, an image to be coded, which is digital image data, is input to the input terminal 201. The image to be coded is divided into a plurality of adjacent small regions. In the first embodiment, an image to be coded is divided into a plurality of adjacent 16.times.16 blocks and coding process is performed for each of the divided blocks.

An object block, which is a block as an object to be coded, is input to the first adder 202 through a line 216 as well as to the motion extractor 214 through a line 225. Further, the frame memory 213 stores a previous reconstructed image, which will be described later, and the motion extractor 214 receives the stored image through a line 224 and performs motion extraction process to the object block to be coded using the image as a reference image, to obtain a motion vector. In the motion extraction process, motion displacement information which gives a prediction signal of minimum error to an object block to be coded is obtained by block matching or other method, and the motion displacement information is treated as a motion vector. The motion extractor 214 outputs the motion vector to the motion compensator 215. The motion vector is also output through a line 228 to the variable length coder 211 where it is transformed into a variable length code and added to a result of coding as a part of side information.

The motion compensator 215 also uses the image stored in the frame memory 213 as a reference image, generates a predicted block from this reference image and the motion vector and outputs it to the first adder 202 through a line 226 as well as to the second adder 210 through a line 227. The first adder 202 derives a difference between the input object block and the input predicted block to generate a difference block, and outputs it to the coder 203 through a line 217.

The difference block is compression-coded at the coder 203. In the first embodiment, the difference block is input to the discrete cosine transformation unit 204 and transformed into coefficients in a frequency domain; the coefficients in the frequency domain are input through a line 218 to the quantizer 205 which performs quantization process using a prescribed quantization scale. When the first adder 202 does not derive a difference, that is, intra-image coding is performed, the object block is input to the coder 203 where it is processed in the same manner in which the difference block is processed.

Quantized transform coefficients and the quantization scale used for the quantization process are output from the quantizer 205 through a line 219 to the variable length coder 203 where coding process is performed and the result of coding is output together with the side information including the motion vector and the quantization scale to an output terminal 206. The quantized transform coefficients are, at the same time, output to the decoder 207 where expansion process is performed. In the first embodiment, inverse quantization is performed using the above quantization scale in the inverse quantizer 208 and the result is input through a line 221 to the inverse discrete cosine transformation unit 209 where spatial domain data is derived by an inverse of discrete cosine transformation process. The difference block obtained by expansion in the decoder 207 is output through a line 221 to the second adder 210 where a predicted block transmitted through a line 227 is added to generate a reconstructed block. This reconstructed block is output through a line 222 to the frame memory 213 and stored therein to be used as a reference image in the subsequent coding process.

In the image coding apparatus of the first embodiment, the variable length coder 211 receives, as inputs, quantized transform coefficients and side information which includes quantization scale, motion vector, and others, and transforms them into variable length codes or fixed length codes. Hereinafter a description is given of the operation for the process to quantized transform coefficients by the variable length coder 211, with reference to the flow of FIG. 1.

As described in the explanation for the prior art, transform coefficients are obtained in a form of two-dimensional array which is composed of zero coefficients and non-zero coefficients; for this two-dimensional array, rearrangement is performed in a prescribed order (in zigzags) to obtain a one-dimensional array, and events are made each consisting of a number of proceeding zero coefficients (Run) and a value of non-zero coefficient (Level). Further, Last is added which is the information indicating whether a transform coefficient represented by Level is the last coefficient in a block or not. An event thus formed which consists of (Last, Run, Level) is treated as an input event which is an object to be processed by the variable length decoder 211.

Following the initiation of the process in step 101, a j-th input event is obtained in step 102. In step 103, comparison is performed between the input event and a reference event present in a variable length code table in the variable length coder 211. As for the variable length code table, the tables of FIGS. 19 to 22 used in the prior art are used, and comparison is performed with each reference event included in the table and consisting of (Last, Run, Level).

In step 104, it is decided whether a reference event having a matching (Last, Run, Level) is found in the above comparison process or not. When it is decided in step 104 that the reference event is found, step 105 is performed, and when it is not found, step 106 is performed. At this point, if step 105 is performed, a variable length code corresponding to the reference event is output, followed by step 111.

On the other hand, if step 106 is performed, transformation process using a prescribed function is performed to the Level included in the input event to generate a transformed input event. In step 107 which follows, comparison is performed between a transformed input event and a reference event as in the case of step 103. In step 108 which follows, it is decided whether a matching reference event is found or not, and when a reference event is found, step 110 is performed, and when it is not found, step 109 is performed. At this point, if step 110 is performed, a result of coding is output which is the variable length code corresponding to the reference event to which a second control code uniquely set in advance is added, followed by step 111.

On the other hand, if step 109 is performed, the coding process as shown in FIG. 23 is performed to the input event to generate a fixed length code. Then, a result of coding is output which is the fixed length code to which a first control code distinguishable from the second control code is added.

If either step 110 or step 109 is performed, in a step 111 which follows, it is decided whether an input event processed is a last input event or not, and if the event is the last one, the coding process is completed in step 112. On the other hand, when the event is not the last one, j is incremented by 1 in step 113, and the operation returns to step 102, whereby a next input event is processed in the same manner. Thus, the process is continued to the last non-zero coefficient.

In the first embodiment, a process of deduction of an Offset value having a prescribed value is used as a prescribed function for obtaining a transformed input event from the input event. More specifically, a transformed input event is derived by deducing an Offset from the value of Level of the input event. It is preferable to deduct an Offset from the absolute value of Level and then append a sign code of Level (positive or negative). The offset may be a single value, or it may have a variable value corresponding to values of Last and Run. In the first embodiment, this can be obtained from the table of FIGS. 19 to 22 in such a way that the maximum Level value for each set of (Last, Run) is used as an Offset value: for example, Offset=12 for (Last, Run)=(0,0), Offset=6 for (Last, Run)=(0,1), and Offset=4 for (Last, Run)=(0,2).

The variable length code table shown in FIGS. 19 to 22 is suitable for transform coefficients having relatively high compression ratio, and many of the Levels included in the events within the table have small values. Therefore, for an input event whose matching event is not present in the table, the deduction process is performed to the Level value thereof to obtain a transformed input event having a small Level value, thereby increasing the rate of performing variable length coding as well as the rate of using short codes allocated to the events having small Level values in the table.

Further, as a first control code, "0000011" is used which is identical to the ESC code shown in FIG. 23 used in the prior art; as a second control code, the ESC code repeated twice is used.

FIG. 3 are diagrams illustrating examples of the result of the coding. Here the coding process according to the first embodiment is compared with the prior art coding process, using FIG. 3. Now it is considered that an event having (Last, Run, Level)=(0, 0, 13) is an object to be coded. The variable length code table shown in FIGS. 19 to 22 does not have this set, (0, 0, 13). Therefore, if the prior art coding process shown in FIG. 23 is performed as described above, the fixed length coding process shown in FIG. 23 is performed as described above, and ESC code is added to this to be output. FIG. 3(a) shows the result of this process, and 6 bits 303 and 8 bits 304 both representing Levels are output subsequent to 7 bits 301 as ESC code and 1 bit 302 representing Last. Therefore, Levels are represented by 303 showing zero-run and the fixed length code 304. Thus, 22 bits are required in total.

On the other hand, in the result of the process according to the first embodiment, when the reference event concerned is not present in the variable length code table in steps 103 through 104 of the flow of FIG. 1, fixed length coding is not performed immediately unlike the case of the prior art, and transformation process and comparison are performed again as shown in steps 106 through 108. In the transformation process, transformation is performed by deducting Offset (=12) from the Level value 13 to obtain a Level value of 1, thereby obtaining a transformed input event, (0,0,1). As shown in FIG. 18, since the event (0,0,1) is provided in the variable length code table, step 110 following step 108 is performed. Therefore, as shown in FIG. 3(b), the result of the coding is derived comprising a second control code 806 and a variable length code 807 corresponding to (0,0,1). Therefore, in this case, 17 bits are required in total, which means that the amount of code is reduced in comparison with the prior art case requiring 22 bits.

In the flow of FIG. 1, when a reference event concerned is not present in the variable length code table in the comparison process using the transformed input event, the process in step 109 is identical to that in the prior art. Therefore, in the first embodiment, at worst case, the coding identical to the prior art one can be performed. When the length of code to which the second control code is added is longer than that of the code to which the first control code is added, less number of bits can be obtained by coding with a first control code and a fixed length code.

Hereinafter a description is given of a decoding process to the coded data obtained by the image coding process according to the first embodiment.

FIG. 4 is a block diagram illustrating the configuration of an image decoding apparatus according to the first embodiment. As shown in FIG. 4, the image decoding apparatus according to the first embodiment comprises: a data analyzer (DA) 402, an adder 406, a variable length decoder (VLD) 408, a decoder 403, a frame memory (FM) 409, and a motion compensator (MC) 410, and it receives coded data which is an object of decoding process from an input terminal 401 and outputs decoded data which is the apparatus output of the image decoding apparatus from an output terminal 407. Further, the decoder 403 contains an inverse quantizer (IQ) 404 and an inverse discrete cosine transformation unit (IDCT) 405.

As for the image decoding apparatus of the first embodiment which is constructed above, a description is given of the operation for performing the decoding process to coded data which has been compression-coded by the image coding apparatus shown in FIG. 2.

Coded data as an object to be processed is input to the input terminal 501, and then analyzed by the data analyzer 502 to derive a variable length code according to quantized transform coefficients, and the codes of the side information including quantization scale and motion vector. Among them, the quantization scale and the variable length code of the quantized transform coefficients are transmitted to the variable length decoder 508 through a line 512, and the motion vector to the motion compensator 510 through a line 518. In the variable length decoder 508, the variable length code of the quantized transform coefficients is decoded into transform coefficients by referring to the variable length code table, and then the coefficients are rearranged to obtain compressed difference blocks and the blocks are output to the decoder 503.

In the decoder 503, the compressed difference block is expanded to generate a difference block. In the decoder 403 of the first embodiment, inverse quantization is performed using a quantization scale in the inverse quantizer 404, and the inverse discrete cosine transformation unit 405 performs transformation to the result so that a frequency-domain signal is transformed to a spatial domain signal. This signal is output as a difference block to an adder 406.

On the other hand, in the motion compensator 510 receiving the motion vector as an input, an address is generated based on the motion vector, for use to access a frame memory 409, and with respect to the image stored in the frame memory 409, a predicted block is generated. The predicted block generated is output to the adder 406 where addition process is performed between it and the difference block obtained by expansion to generate a reconstructed block. The image thus reconstructed is output from the output terminal 407 as the output of the image decoding apparatus, as well as to the frame memory 409 to be stored therein.

FIG. 5 is a flowchart showing the procedure of the variable length decoding method by the variable length decoder 508. Hereinafter a description is given of the operation of the coefficient variable length decoder 508 in the decoding process, with reference to the flow of FIG. 5.

Initially, following the initiation of the process in step 501, a variable length code obtained based on quantized transform coefficients, which is a j-th object to be processed, is input as an input variable length code. In step 503, it is decided whether the input variable length code includes a control code or not, and if it does not include a control code, step 504 is performed; if it includes the code, step 505 is performed. In the case where step 504 is performed, that is, in the case where no control code is included, a set of (Last, Run, Level) corresponding to the input variable length code is output by referring to the variable length code table, followed by step 510 which will be described later.

On the other hand, in the case where step 505 is performed, that is, in the case where a control code is included, it is decided whether the control code is a second control code or not; if it is the second control code, step 506 is performed, and if it is not that code, step 507 is performed. In the case where step 506 is executed, that is, in the case where the control code is a second control code, a set of (Last, Run, Level) corresponding to the input variable length code is obtained by using the variable length code table, and the Level value thereof is transformed with a predetermined function and the result is output, followed by step 510 which will be described later. In the first embodiment, a process of adding a predetermined Offset is performed, the value of this Offset varies according to a set of (Last, Run) as described above.

Here taken into account is the decoding process to the code shown in FIG. 3(b). If it is decided in step 505 that it is a second control code, step 506 is performed. Therefore, a set of (Last, Run, Level) corresponding to a part of the code, "100", which is shown as 306 in FIG. 3(b), can be obtained by referring to the variable length code table, and Offset=12 is added to this Level to regenerate the original set, (Last, Run, Level)=(0,0,13).

On the other hand, if step 507 is executed, it is also decided whether the control code is a first control code or not. If it is the first control code, step 508 is performed, but if it not the first control code, it is understood that the control code other than first and second control codes has been added. Therefore, in step 509, the decoding process is stopped or an error processing such as letting the user know that the decoding process is stopped. On the other hand, in the case where step 508 is performed, that is, in the case where it is a first control code, it is decoded as a fixed length code to regenerate coefficients.

If any of the steps 504, 506, and 508 is performed, in step 510 which follows, it is decided whether the processed input variable length code is the last one or not, and if it is the last one, the coding process is completed in step 511. On the other hand, if it is not the last one, the operation is returned to step 502 after j is incremented by 1, whereby a next input variable length code is processed in the same manner. Thus, the process is continued to the last variable length code.

As described above, according to the first coding method of the first embodiment, as shown in FIG. 1, if the reference event concerned is not included in the variable length code table in the comparison process in steps 103 through 104, the transformation process to the input event is performed in step 106, and in steps 107 through 108, comparison process is performed with the resultant transformed input event. Therefore, the rate of performing fixed length coding in step 109 can be reduced, and the possibility that short codes are allocated in variable length coding is increased by using the transformed input event, resulting in improved compression ratio of the result of coding as a whole.

Further, since the image coding apparatus of the first embodiment comprises the variable length coder 211 performing the above-described coding method, a result of coding with a high compression ratio can be obtained by using a single variable length code table whether the compression ratio of the compression coding in the coder 203 is high or low.

Furthermore, the image decoding method and image decoding apparatus according to the first embodiment are able to perform appropriate decoding process according to the result of coding obtained in the above-described manner to obtain reconstructed image.

Although it is described that, in the coding process depicted in the first embodiment, discrete cosine transformation is performed for compression coding, waveform coding such as wavelet coding may be applied instead of it and enables performing the same coding process.

Further, although in the coding process described in the first embodiment, a Level value of an input event is transformed in the transformation process for the input event, a Run value of the input event may be transformed instead. In this case, the maximum Run value corresponding to the set of (Last, Level) of each reference event in the variable length code table of FIGS. 19 to 22 is used as an Offset value, and (Offset+1) is deducted from the Run value of an input event to obtain a transformed input event. The transformation process may also be performed by other method such as multiplying a Level value or a Run value, performing a process using a quadratic function, or changing a dynamic range. It is also possible to transform a Level or a Run in a variable length code table with a prescribed function and then perform compression process, in place of performing a prescribed function to a Level or a Run of an input event.

As described above, when a Run value is transformed in coding process instead of a Level value, (Offset+1) is added to the Run value subjected to variable length decoding to generate an original Run value. In this case, the Offset value is the maximum Run value corresponding to a set of (Last, Level), as explained above.

Although in the first embodiment a description is given of the procedures of the coding and decoding processes with reference to the flowcharts of FIGS. 1 and 5, the coding and decoding processes are not limited to these procedures, and the procedures enabling the same processes can also improve coding efficiency and implement a suitable decoding process to the result of the coding.

Embodiment 2

In an image coding method according to a second embodiment of the present invention, transformation process is performed to an event as an object to be coded, as in the first embodiment, and the number of bits can be reduced by using mode code.

FIG. 6 is a flowchart showing the procedure of a variable length coding method according to the second embodiment. The image coding apparatus of the second embodiment also has the same configuration as that of the first embodiment, and thus FIG. 2 will be used for the description.

The image coding process according to the second embodiment differs from that of the first embodiment only in the process by the variable length coder 211 shown in FIG. 2, and thus a description is given of the operation by the variable length coder 211 in the coding process below with reference to FIG. 6.

Steps 601 through 608 are performed in the same manner as steps 101 through 108 in the first embodiment, and in step 108, decision is made based on a comparison between a transformed input event and a reference event of a variable length code table. If it is decided that there is a matching reference event, step 610 is performed; if such event is not found, step 609 is performed.

If step 610 is performed, a result of coding is output which is a variable length code corresponding to the reference event to which a control code set uniquely in advance and a second mode code are added, followed by step 611. Here, "0000011", which is identical to the ESC code shown in FIG. 22, is used as a control code, and "0" is used as the second mode code.

On the other hand, if step 609 is performed, the coding process shown in FIG. 23 is performed to an input event to generate a fixed length code. Then, a result of coding is output which is the fixed length code to which a control code and a first mode code are added. "1" is used as a first mode code.

If either step 610 or step 609 is performed, in a subsequent step 611, it is decided whether an input event processed is a last input event or not, and if the event is the last one, the coding process is completed in step 612. On the other hand, if the event is not the final one, the operation returns to step 602 after j is incremented by 1 in step 613, whereby a next input event is processed similarly. Thus, the process is continued to the last non-zero coefficient.

In the second embodiment, transformation is performed using an Offset corresponding to a Level of an input event to generate a transformed input event. As in the first embodiment, the Offset may take a fixed value or a variable value corresponding to a set of a Last and a Run. In this embodiment, used as an Offset is the maximum Level value corresponding to each set of (Last, Pun) obtainable from the variable length code table shown in FIGS. 19 through 22, in such a way that Offset=12 for (Last, Run)=(0,0), Offset=6 for (Last, Run)=(0,1), and Offset=4 for (Last, Run)=(0,2).

Hereinafter a description is given of a decoding process to the coded data obtained in the image coding process illustrated in the second embodiment. The configuration of the image decoding apparatus according to the second embodiment is identical to that of the first embodiment, and thus FIG. 4 will be used for the description.

FIG. 7 is a flowchart showing the procedure of a variable length decoding method according to the second embodiment. The image decoding process according to the second embodiment differs from that of the first embodiment only in the process of the variable length decoder 408 shown in FIG. 4, and thus the operation by the variable length decoder 408 in the decoding process is described below with reference to FIG. 7.

Steps 701 though 704 are performed in the same manner as steps 501 through 504 according to the first embodiment (see FIG. 5), and then decision process is performed in step 705. If it is decided in step 703 that a control code is found, a decision process is performed to know whether a next one bit subsequent to the control code is "0" or "1". Then, if the bit is "0", step 706 is performed, and if the bit is "1", step 708 is performed.

If step 706 is performed, a set of (Last, Run, Level) corresponding to an input variable length code is obtained using a variable length code table, and transformation process is performed using a prescribed function corresponding to the Level value, and then the result of the decoding is output. In the transformation process of the second embodiment, a prescribed Offset is added to an obtained Level value. The Offset value takes a variable value corresponding to a set of (Last, Run), as described above.

On the other hand, if step 708 is performed, an input variable length code is decoded as a fixed length code to regenerate coefficients. If any of steps 704, 706, and 708 is performed, in a subsequent step 710, it is decided whether an input variable length code processed is the last input variable length code or not, and if the code is the last one, the coding process is completed in step 711. On the other hand, if it is not the last one, the operation is returned to step 702 after j is incremented by 1 in step 712, whereby a next input variable length code is processed in the same manner. Thus, the process is continued to the last variable length code.

As described above, in the image coding method according to the second embodiment, if a matching reference event is not present in a variable length code table in the comparison process in steps 603 through 604, transformation process is performed to an input event in step 606, and in steps 607 through 608, comparison process is performed using a transformed input event obtained, as shown in FIG. 6; therefore, a rate of performing fixed length coding in step 609 is reduced, and a possibility that short codes are allocated in variable length coding is increased due to use of a transformed input event, resulting in improved total compression ratio of a result of coding. Moreover, since a one-bit mode code is used in step 609 or step 610 to make a distinction between fixed length coding and a Level subjected to Offset process, a merit is available that a total number of bits of the result of coding can be reduced in comparison with the case of the first embodiment where first and second control codes are used.

Further, since the image coding apparatus according to the second embodiment comprises the variable length coder 211 performing the above-described coding method, a result of coding with an improved compression ratio can be obtained using a single variable length code table whether the compression ratio of the compression coding at the coder 203 is high or low.

Furthermore, the image decoding method and image decoding apparatus according to the second embodiment enable performing appropriate decoding process corresponding to the result of coding derived in the above-described manner to obtain reconstructed image.

Although in the second embodiment only one mode code is used, two or more mode codes may be used to distinguish plural modes. For example, a mode in which a value of a run of zero is changed may be added as a third mode.

Although in the second embodiment a Level of an input event is transformed to obtain a transformed input event as in the first embodiment, it is possible to transform a Run thereof. Further, although transformation process is performed using an Offset here, other method may be used such as multiplying a Level, subjecting to a quadratic function, and changing a dynamic range.

Embodiment 3

In an image coding method according to a third embodiment of the present invention, transformation process is performed to an event which is an object to be coded, as in the first and second embodiments, and coding efficiency can be improved by performing transformation process repetitively.

FIG. 8 are flowcharts showing the procedure of a variable length coding method according to the second embodiment. An image coding apparatus of the third embodiment has the same configuration as that of the first embodiment, too, and thus FIG. 2 will be used for the description.

The image coding process according to the third embodiment differs from that of the first embodiment only in the process by the variable length coder 211 shown in FIG. 2, and thus a description is given of the operation by the variable length coder 211 in the coding process below with reference to FIG. 8.

In the flow of FIG. 8(a), steps 801 through 805 are performed in the same manner as steps 101 through 105 of the first embodiment. In the third embodiment, in the transformation process in step 806, a first transformed input event is obtained by transformation process using a prescribed function. Here, the transformation process is performed in the same manner as in the first embodiment, and a first transformed input event is obtained by deducting a prescribed Offset from a Level value included in an input event. In this case, the maximum Level value corresponding to each set of (Last, Run) available in the variable length code table shown in FIGS. 19 to 22 is used as an Offset: for example, Offset=12 for (Last, Run)=(0,0), Offset=6 for (Last, Run)=(0,1), and Offset=4 for (Last, Run)=(0,2).

In step 807, comparison is performed between a first transformed input event and a reference event included in the variable length code table, and in step 808, decision is made based on the comparison. If it is decided in step 810 that a matching reference event is found, step 810 is performed, and if not found, the procedure shown in FIG. 8(b) is performed. When step 810 is performed, a result of coding is output which is a variable length code corresponding to the reference event to which a control code set uniquely in advance and a second mode code are added, followed by step 811. Here, "0000011", which is identical to the ESC code shown in FIG. 22, is used as a control code, and "0" is used as a second mode code.

On the other hand, when the procedure shown in FIG. 8(b) is performed, a Run of an input event is transformed using a prescribed function to derive a second transformed input event. In the third embodiment, a prescribed value Offset is deducted from a Run value to generate a second transformed input event having a new Run value. In this case, the maximum Run value corresponding to each set of (Last, Level) in the variable length code table is used as an Offset.

In step 822, comparison is performed between the second transformed input event and a reference event included in the variable length code table, and in step 823, decision is made based on the comparison. If it is decided that a matching reference event is found, step 824 is performed; if it is not found, step 825 is performed. If step 824 is performed at this point, a result of coding is output which is a variable length code corresponding to the reference event to which a control code and a third mode code are added, followed by step 811 shown in FIG. 8(a). The third mode code


Free Web Sudoku Puzzles.
Solve with your browser.
          4 1   8
9       6 7 5    
  2 7            
3     8       4  
8               5
  9       3     6
            3 6  
    3 2 8       7
6   2 3          
What is it?



Add Your Site · Terms Of Service · Privacy Policy


DISCLAIMER
Linkgrinder is a free service that searches the Internet and indexes all files found so that you may search quickly and easily for shared files. These files are created and made available individually by users whose identity we are not aware of and who we have no control over. In essence we function like a search engine tool; these files ARE NOT STORED OR SERVED BY OUR NETWORK. We are not responsible for any materials obtained by using our service. We do not monitor any of the contents of these files. These files may contain viruses, illegal materials, materials inappropriate for minors, offensive files and the like. BY USING OUR SERVICE, YOU ASSUME FULL RESPONSIBILITY FOR DOWNLOADING THESE MATERIALS AND WILL INDEMNIFY US FOR ANY DAMAGES THAT MAY BE INCURRED.

For More Specific Information VIEW OUR TERMS OF SERVICE.

Thank you and Enjoy!