U.S. patent application number 09/739969 was filed with the patent office on 2001-05-10 for image coding and decoding methods, image coding and decoding apparatuses, and recording media for image coding and decoding programs.
This patent application is currently assigned to MATSUSHITA ELECTRIC INDUSTRIAL CO., LTD. Invention is credited to Boon, Choong Seng.
Application Number | 20010001018 09/739969 |
Document ID | / |
Family ID | 26403695 |
Filed Date | 2001-05-10 |
United States Patent
Application |
20010001018 |
Kind Code |
A1 |
Boon, Choong Seng |
May 10, 2001 |
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.
Inventors: |
Boon, Choong Seng;
(Moriguchi-shi, JP) |
Correspondence
Address: |
PARKHURST & WENDEL, L.L.P
Suite 210
1421 Prince Street
Alexandria
VA
22314-2805
US
|
Assignee: |
MATSUSHITA ELECTRIC INDUSTRIAL CO.,
LTD
|
Family ID: |
26403695 |
Appl. No.: |
09/739969 |
Filed: |
December 20, 2000 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
09739969 |
Dec 20, 2000 |
|
|
|
09684322 |
Oct 10, 2000 |
|
|
|
09739969 |
Dec 20, 2000 |
|
|
|
09091985 |
Aug 11, 1998 |
|
|
|
09091985 |
Aug 11, 1998 |
|
|
|
PCT/JP97/04037 |
Nov 6, 1997 |
|
|
|
Current U.S.
Class: |
382/246 ;
375/240.23; 375/E7.144; 375/E7.211; 375/E7.213; 375/E7.226;
375/E7.231 |
Current CPC
Class: |
H04N 19/12 20141101;
H04N 19/13 20141101; H03M 7/42 20130101; H03M 7/46 20130101; H04N
19/61 20141101; H04N 19/60 20141101; H03M 7/425 20130101; H04N
19/91 20141101; H04N 19/146 20141101; H03M 7/40 20130101; H03M 7/48
20130101 |
Class at
Publication: |
382/246 ;
375/240.23 |
International
Class: |
G06K 009/36; G06K
009/46 |
Foreign Application Data
Date |
Code |
Application Number |
Nov 6, 1996 |
JP |
8-293512 |
Mar 17, 1997 |
JP |
9-62649 |
Claims
What is claimed is:
1. 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, said method
comprising: a first variable length coding step of obtaining a
first result of comparison from 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 with 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.
2. An image coding method as defined in claim 1 wherein: in the
second variable length coding step, the transformation process is
performed to the quantized transform coefficient, and using the
result of the transformation process, comparison process is
performed with a reference event included in the variable length
code table to obtain a second result of comparison, and if the
second result of comparison shows "matching", a variable length
code corresponding to the reference event is employed and a second
control code set uniquely is added to obtain a second result of
coding; and in the particular coding step, coding process is
performed to the quantized transform coefficient using a prescribed
coding system and a first control code which is distinguishable
from the second control code is added to obtain a result of
particular coding.
3. An image coding method as defined in claim 1 wherein the second
variable length coding step includes: a main second variable length
coding process where the transformation process is performed to the
quantized transform coefficient, and using the result of the
transformation process, comparison process is performed with a
reference event included in the variable length code table to
obtain a main second result of comparison, and if the main second
result of comparison shows "matching", a variable length code
corresponding to the reference event is employed and a second
control code set uniquely is added to obtain a main second result
of coding; and a sub second variable length coding process where,
if the main second result of comparison does not show "matching", a
second transformation process is performed using a prescribed
second function to the quantized transform coefficient to obtain a
sub second result of comparison, and if the sub second result of
comparison shows "matching", a variable length code corresponding
to the reference event is employed and a third control code which
is distinguishable from the second control code is added to obtain
a sub second result of coding; and in the second variable length
coding step, if the sub second result of comparison does not show
"matching", the second result of comparison also does not show
"matching"; and in the particular coding step, coding process is
performed to the quantized transform coefficient using a prescribed
coding system, and a first control code which is distinguishable
from each of the second and third control codes is added to obtain
a result of particular coding.
4. An image coding method as defined in claim 1 wherein: in the
second variable length coding step, the transformation process is
performed to the quantized transform coefficient, and using the
result of the transformation process, comparison process is
performed with a reference event included in the variable length
code table to obtain a second result of comparison, and if the
second result of comparison shows "matching", a variable length
code corresponding to the reference event is employed and a control
code and a second mode code are added to obtain a second result of
coding; and in the particular coding step, coding process is
performed to the quantized transform coefficient using a prescribed
coding system, and a control code and a first mode code which is
distinguishable from the second mode code are added to obtain a
result of particular coding.
5. 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, said method
including 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.
6. 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, said method
including a variable length coding step 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.
7. An image coding apparatus obtaining transform coefficients for
an image to be coded by a prescribed transformation method,
performing quantization process to the transform coefficients using
a prescribed quantization scale to obtain quantized transform
coefficients, and performing variable length coding process to the
quantized transform coefficients referring to a variable length
code table comprising a plurality of reference events paired with
variable length codes, said apparatus including a variable length
coding means for performing: a first variable length coding process
where a first result of comparison is obtained 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", a first result of coding is
obtained using a variable length code corresponding to the
reference event; a second variable length coding process where, if
the first result of comparison does not show "matching", a second
result of comparison is obtained by comparison process between the
quantized transform coefficient and a reference event included in
the variable length code table subject to transformation process
using a prescribed function, and if the second result of comparison
shows "matching", a second result of coding which is
distinguishable. from the first result of coding is obtained
employing a variable length code corresponding to the reference
event; and a particular coding process where, if the second result
of comparison does not show "matching", coding process is performed
to the quantized transform coefficient using a prescribed coding
system, to obtain a result of particular coding which is
distinguishable from each of the first and second results of
coding.
8. An image coding apparatus as defined in claim 7 wherein: in the
second variable length coding process, the variable length coding
means performs the transformation process to the quantized
transform coefficient, and using the result of the transformation
process, performs comparison process with a reference event
included in the variable length code table to obtain a second
result of comparison, and if the second result of comparison shows
"matching", the coding means employs a variable length code
corresponding to the reference event and adds a second control code
set uniquely to obtain a second result of coding; and in the
particular coding process, the variable length coding means
performs coding process to the quantized transform coefficient
using a prescribed coding system and adds a first control code
which is distinguishable from the second control code to obtain a
result of particular coding.
9. An image coding apparatus as defined in claim 7 wherein, as the
second variable length coding process, the variable length coding
means performs: a main second variable length coding process where
the transformation process is performed to the quantized transform
coefficient, and using the result of the transformation process,
comparison process is performed with a reference event included in
the variable length code table to obtain a main second result of
comparison, and if the main second result of comparison shows
"matching", a variable length code corresponding to the reference
event is employed and a second control code set uniquely is added
to obtain a main second result of coding; and a sub second variable
length coding process where, if the main second result of
comparison does not show "matching", a second transformation
process is performed using a prescribed second function to the
quantized transform coefficient, and using the result of the second
transformation process, comparison process is performed with a
reference event included in the variable length code table to
obtain a sub second result of comparison, and if the sub second
result of comparison shows "matching", a variable length code
corresponding to the reference event is employed and a third
control code which is distinguishable from the second control code
is added to obtain a sub second result of coding; and if the sub
second result of comparison does not show "matching", the second
result of comparison also does not show "matching"; and in the
particular coding step, the variable length coding means performs
coding process to the quantized transform coefficient using a
prescribed coding system, and adds a first control code which is
distinguishable from each of the second and third control codes to
obtain a result of particular coding.
10. An image coding apparatus as defined in claim 7 wherein: in the
second variable length coding process, the variable length coding
means performs the transformation process to the quantized
transform coefficient, and using the result of the transformation
process, performs comparison process with a reference event
included in the variable length code table to obtain a second
result of comparison, and if the second result of comparison shows
"matching", the coding means employs a variable length code
corresponding to the reference event and then adds a control code
and a second mode code to obtain a second result of coding; and in
the particular coding process, the variable length coding means
performs coding process to the quantized transform coefficient
using a prescribed coding system, and adds a control code and a
first mode code which is distinguishable from the second mode code
to obtain a result of particular coding.
11. An image coding apparatus obtaining transform coefficients for
an image to be coded by a prescribed transformation method,
performing quantization process to the transform coefficients using
a prescribed quantization scale to obtain quantized transform
coefficients, and performing variable length coding process to the
quantized transform coefficients referring to a variable length
code table comprising a plurality of reference events paired with
variable length codes, said apparatus comprising a variable length
coding means for performing 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 then adding an
auxiliary code obtained by performing coding process to the
remainder using a prescribed coding system, to obtain a result of
coding.
12. An image coding apparatus obtaining transform coefficients for
an image to be coded by a prescribed transformation method,
performing quantization process to the transform coefficients using
a prescribed quantization scale to obtain quantized transform
coefficients, and performing variable length coding process to the
quantized transform coefficients referring to a variable length
code table comprising a plurality of reference events paired with
variable length codes, said apparatus comprising a variable length
coding means which performs 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.
13. An image decoding method in which extraction is performed to
compression-coded data as an object of decoding to obtain a
variable length code included in the data and use the code as an
input variable length code, and an output transform coefficient is
generated from the input variable length code referring to a
variable length code table comprising a plurality of reference
events paired with reference variable length codes, said method
comprising: a coding process decision step of deciding which is the
input variable length code from among a first result of coding
obtained by a variable length coding process, a second result of
coding obtained by a variable length coding process with a
transformation process, and a result of particular coding obtained
by a coding process according to a particular coding system; a
first variable length decoding step of, if the result of decision
in the coding process decision step shows "first result of coding",
performing comparison process between the input variable length
code and a reference variable length code obtained from the
variable length code table by the reference, and if the result of
comparison shows "matching", generating the output transform
coefficient using a reference event corresponding to the reference
variable length code; a second variable length decoding step of, if
the result of decision in the coding process decision step shows
"second result of coding", performing comparison process between
the input variable length code and a reference variable length code
obtained from the variable length code table by the reference, and,
if the result of comparison shows "matching", performing an inverse
transformation process which is an inverse of the transformation
process for coding, with a reference event corresponding to the
reference variable length code, to generate the output transform
coefficient; and a particular decoding step of, if the result of
decision in the coding process decision step shows "result of
particular coding", performing a decoding process to the input
variable length code, which process is an inverse of the coding
process according to a particular coding system which is used for
coding, to generate the output transform coefficient.
14. An image decoding method as defined in claim 13 wherein: in the
coding process decision step, it is decided whether or not the
input variable length code includes one of a second control code
indicating that the input code is obtained by a variable length
coding process with a transformation process and a first control
code indicating that the input code is obtained by a coding process
according to a particular coding system, and if it is decided that
neither of the control codes is included, the first variable length
decoding step is performed, if it is decided that the second
control code is included, the second variable length decoding step
is performed, and if it is decided that the first control code is
included, the particular decoding step is performed.
15. An image decoding method as defined in claim 13 wherein, in the
coding process decision step, it is decided whether or not the
input variable length code includes one of a second control code
indicating that the input code is obtained by a variable length
coding process with a transformation process and a first control
code indicating that the input code is obtained by a coding process
according to a particular coding system, and if it is decided that
neither of the control codes is included, the first variable length
decoding step is preformed, and if it is decided that the first
control code is included, the particular decoding step is
performed; and if it is decided that the second control code is
included, a second control code decision step is further performed
for deciding whether the second control code is a second control
code indicating that the input code is obtained by a variable
length coding process with a first transformation process or a
third control code indicating that the input code is obtained by a
variable length coding process with a second transformation
process; and in the second variable length decision step, if it is
decided that it is the second control code, a first inverse
transformation process which is an inverse of the first
transformation process in coding process is performed, and if it is
decided that it is the third control code, a second inverse
transformation process which is an inverse of the second
transformation process in coding process is performed.
16. An image decoding method as defined in claim 13 wherein: in the
coding process decision step, it is decided whether or not the
input variable length code includes one of a set of control code
and second mode code indicating that the input code is obtained by
a variable length coding process with a transformation process and
a set of control code and second mode code indicating that the
input code is obtained by a coding process according to a
particular coding system; and if it is decided that neither of the
sets is included, the first variable length decoding step is
performed, if it is decided that the set of control code and second
mode code is included, the second variable length decoding step is
performed, and if it is decided that the set of control code and
first mode code is included, the particular decoding step is
performed.
17. An image decoding method in which extraction is performed to
compression-coded data as an object of decoding to obtain a
variable length code included in the data and use the code as an
input variable length code, and a quantization scale used for
coding included in the compression-coded data and an input
auxiliary code obtained based on a remainder derived from a
division process for coding are obtained by extraction, and an
output transform coefficient is generated from the input variable
length code referring to a variable length code table comprising a
plurality of reference events paired with reference variable length
codes, said method comprising a variable length decoding step which
includes the steps of: performing comparison process between the
input variable length code and a reference variable length code
obtained from the variable length code table by the reference, and
if the result of comparison shows "matching", obtaining a reference
event corresponding to the reference variable length code and
multiplying it with the divisor obtained based on the quantization
scale; and performing to the input auxiliary code a decoding
process which is an inverse of the coding process by which the code
is obtained, to obtain an inverse auxiliary coefficient, and
performing addition process to generate an output transform
coefficient.
18. An image decoding method in which extraction is performed to
compression-coded data as an object of decoding to obtain a
variable length code included in the data and use the code as an
input variable length code, a quantization scale used for coding
included in the compression-coded data is obtained by extraction,
and an output variable length coefficient is generated from the
input variable length code referring to a variable length code
table comprising plural reference events paired with reference
variable length codes, said method including: a variable length
decoding step in which comparison process is performed between the
input variable length code and a reference variable length code
obtained from the variable length code table by the reference, and
if the result of comparison shows "matching", a reference event
corresponding to the reference variable length code is obtained and
a transformation process using a prescribed function is performed
based on the quantization scale to generate an output variable
length coefficient.
19. An image decoding apparatus performing extraction to
compression-coded data as an object of decoding to obtain a
variable length code included in the data and use the code as an
input variable length code, and generating an output transform
coefficient from the input variable length code referring to a
variable length code table comprising a plurality of reference
events paired with reference variable length codes, said apparatus
including a variable length decoding means which performs: a coding
process decision process where it is decided which is the input
variable length code from among a first result of coding obtained
by a variable length coding process, a second result of coding
obtained by a variable length coding process with a transformation
process, and a result of particular coding obtained by a coding
process according to a particular coding system; a first variable
length decoding process where, if the result of decision in the
coding process decision process shows "first result of coding",
comparison process is performed between the input variable length
code and a reference variable length code obtained from the
variable length code table by the reference, and, if the result of
comparison shows "matching", the output transform coefficient is
generated using a reference event corresponding to the reference
variable code; a second variable length decoding process where, if
the result of decision in the coding process decision process shows
"second result of coding", comparison process is performed between
the input variable length code and a reference variabie length code
obtained from the variable length code table by the reference, and
if the result of comparison shows "matching", an inverse
transformation process which is an inverse of the transformation
process for coding is performed using a reference event
corresponding to the reference variable length code to generate the
output transform coefficient; and a particular decoding process
where, if the result of decision in the coding process decision
process shows "particular result of coding", a decoding process
which is an inverse of the coding process according to a particular
coding system which is used for coding is performed to the input
variable length code to generate the output transform
coefficient.
20. An image decoding apparatus as defined in claim 19 wherein: in
the coding process decision process, the variable length decoding
means decides whether or not the input variable length code
includes one of a second control code indicating that the input
code is obtained by a variable length coding process with a
transformation process and a first control code indicating that the
input code is obtained by a coding process according to a
particular coding system, and if it is decided that neither of the
control codes is included, the first variable length decoding
process is performed, and if it is decided that a second control
code is included, the first variable length decoding process is
performed, and if it is decided that the first control code is
included, the particular decoding process is performed.
21. An image decoding apparatus as defined in claim 19 wherein: in
the coding process decision process, the variable length decoding
means decides whether or not the input variable length code
includes one of a second control code indicating that the input
code is obtained by a variable length coding process with a
transformation process and a first control code indicating that the
input code is obtained by a coding process according to a
particular coding system, and, if it is decided that neither of the
control codes is included, the first variable length decoding
process is performed, and if it is decided that the first control
code is included, the particular decoding process is performed; if
it is decided that the second control code is included, the
variable length decoding means further performs a second control
code decision process for deciding whether the second control code
is a second control code indicating that the second control code is
obtained by a variable length coding process with a first
transformation process or a third control code indicating that the
second control code is obtained by a variable length coding process
with a second transformation process; and in the second variable
length decoding process, if it is decided that it is the second
control code, a first inverse transformation process which is an
inverse of the first transformation process in coding process is
performed, and if it is decided that it is the third control code,
a second inverse transformation process which is an inverse of the
second transformation process in coding process is performed.
22. An image decoding apparatus as defined in claim 19 wherein, in
the coding process decision process, the variable length decoding
means decides whether or not the input variable length code
includes one of a set of control mode and second mode code
indicating that the input code is obtained by a variable length
coding process with a transformation process and a set of control
code and first mode code indicating that the input code is obtained
by a coding process according to a particular coding system, and,
if it is decided that neither of the sets is included, the first
variable length decoding process is performed, if it is decided
that the set of control code and second mode code is included, the
second variable length decoding process is performed, and if it is
decided that the set of control code and first mode code is
included, the particular decoding process is performed.
23. An image decoding apparatus performing extraction to
compression-coded data as an object of decoding to obtain a
variable length code included in the data and use the code as an
input variable length code, and obtaining, by extraction, a
quantization scale used for coding included in the
compression-coded data and an input auxiliary code obtained based
on a remainder derived from a division process for coding, and
generating an output transform coefficient from the input variable
length code referring to a variable length code table comprising a
plurality of reference events paired with reference variable length
codes, said apparatus comprising a variable length decoding means
for performing the steps of: performing comparison process between
the input variable length code and the reference variable length
code obtained from the variable length code table by the reference,
and if the result of comparison shows "matching", obtaining a
reference event corresponding to the reference variable length code
and multiplying it with the divisor obtained based on the
quantization scale; and performing to the input auxiliary code a
decoding process which is an inverse of the coding process by which
the code is obtained, to obtain an inverse auxiliary code, and
performing addition process to generate an output transform
coefficient.
24. An image decoding apparatus performing extraction to
compression-coded data as an object of decoding to obtain a
variable length code included in the data and use the code as an
input variable length code, and obtaining, by extraction, a
quantization scale used for coding included in the
compression-coded data, and then generating an output transform
coefficient from the input variable length code referring to a
variable length code table comprising a plurality of reference
events paired with reference variable length codes, said apparatus
comprising a variable length decoding means for performing
comparison process between the input variable length code and a
reference variable length code obtained from the variable length
code table by the reference, and if the result of comparison shows
"matching", obtaining a reference event corresponding to the
reference variable length code, and performing transformation
process using a particular function, on the basis of the
quantization scale, to generate an output transform
coefficient.
25. A recording medium in which recorded is an image coding program
which obtains transform coefficients for an image to be coded by a
particular transformation method, performs quantization process to
the transform coefficients using a prescribed quantization scale to
obtain quantized transform coefficients, and then performs variable
length coding process to the quantized transform coefficients
referring to a variable length code table comprising a plurality of
reference events paired with variable length codes, said program
comprising: 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 transformation process using a prescribed
function, and if the second result of comparison shows "matching",
obtaining a second result of coding that 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.
26. A recording medium for image coding program as defined in claim
25 wherein: in the second variable length coding step of the image
coding program, the transformation process is performed to the
quantized transform coefficient, and using the result of the
transformation process, comparison process is performed with a
reference event included in the variable length code table to
obtain a second result of comparison, and if the second result of
comparison shows "matching", a variable length code corresponding
to the reference event is employed and a second control code set
uniquely is added to obtain a second result of coding; and in the
particular coding step of the image coding program, coding process
is performed to the quantized transform coefficient using a
prescribed coding system, and a first control code that is
distinguishable from the second control code is added to obtain a
result of particular coding.
27. A recording medium for image coding program as defined in claim
25 wherein the second variable length coding step of the image
coding program includes: a main second variable length coding
process where the transformation process is performed to the
quantized transform coefficient, and using the result of the
transformation process, comparison process is performed with a
reference event included in the variable length code table to
obtain a main second result of comparison, and if the main second
result of comparison shows "matching", a variable length code
corresponding to the reference event is employed and a second
control code set uniquely is added to obtain a main second result
of coding; and a sub second variable length coding process where,
if the main second result of comparison does not show "matching", a
second transformation process is performed to the quantized
transform coefficient with a prescribed second function, and using
the result of the second transformation process, comparison process
is performed with a reference event included in the variable length
code table to obtain a sub second result of comparison, and if the
sub second result of comparison shows "matching", a variable length
code corresponding to the reference event is employed and a third
control code which is distinguishable from the second control code
is added to obtain a sub second result of coding; and if the sub
second result of comparison does not show "matching", the second
result of comparison also does not show "matching"; and in the
particular coding step of the image coding program, coding process
is performed to the quantized transform coefficient using a
prescribed coding system, and a first control code which is
distinguishable from each of the second and third control codes is
added to obtain a result of particular coding.
28. A recording medium for image coding program as defined in claim
25 wherein: in the second variable length coding step of the image
coding program, the transformation process is performed to the
quantized transform coefficient, and using the result of the
transformation process, comparison process is performed with a
reference event included in the variable length code table to
obtain a second result of comparison, and if the second result of
comparison shows "matching", a variable length code corresponding
to the reference event is employed and a control code and a second
mode code are added to obtain a second result of coding; and in the
particular coding step of the image coding program, coding process
is performed to the quantized transform coefficient using a
prescribed coding system, and a control code and a first mode code
which is distinguishable from the second mode code are added to
obtain a result of particular coding.
29. A recording medium in which recorded is an image coding program
which obtains transform coefficients for an image to be coded by a
prescribed transformation method, performs quantization process to
the transform coefficients using a prescribed quantization scale to
obtain quantized transform coefficients, and then performs variable
length coding process to the quantized transform coefficients
referring to a variable length code table comprising a plurality of
reference events paired with variable length codes, said program
including a variable length coding step which comprises the steps
of: performing division process to the quantized transform
coefficient using a divisor decided on the basis of 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 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.
30. A recording medium in which recorded is an image coding program
which obtains transform coefficients for an image to be coded by a
prescribed transformation method, performs quantization process to
the transform coefficients using a prescribed quantization scale to
obtain quantized transform coefficients, and then performs variable
length coding process to the quantized transform coefficients
referring to a variable length code table comprising a plurality of
reference events paired with variable length codes, said program
including a variable length coding step which comprises the steps
of: performing transformation process using a particular 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.
31. A recording medium in which recorded is an image decoding
program which performs extraction to compression-coded data as an
object of decoding to obtain a variable length code included in the
data and use the code as an input variable length code, and
generates an output transform coefficient from the input variable
length code referring to a variable length code table comprising a
plurality of reference events paired with reference variable length
codes, said program comprising: a coding process decision step of
deciding which is the input variable length code from among a first
result of coding obtained by a variable length coding process, a
second result of coding obtained by a variable length coding with a
transformation process, and a result of particular coding obtained
by a coding process according to a particular coding system; a
first variable length decoding step of, if the result of decision
in the coding process decision step shows "first result of coding",
performing comparison process between the input variable length
code and a reference variable length code obtained from the
variable length code table by the reference, and if the result of
comparison shows "matching", generating the output transform
coefficient using a reference event corresponding to the reference
variable length code; a second variable length decoding step of, if
the result of decision in the coding process decision step shows
"second result of coding", performing comparison process between
the input variable length code and a reference variable length code
obtained from the variable length code table by the reference, and
if the result of comparison shows "matching", performing an inverse
transformation process which is an inverse of the transformation
process used for coding to generate the output transform
coefficient; and a particular decoding step of, if the result of
decision in the coding process decision step shows "result of
particular coding", performing a decoding process to the input
variable length code, which process is an inverse of the coding
process according to a particular coding system for coding, to
generate the output transform coefficient.
32. A recording medium for image decoding program as defined in
claim 31 wherein, in the coding process decision step of the image
decoding program, it is decided whether or not the input variable
length code includes one of a second control code indicating that
the input code is obtained by a variable length coding process with
a transformation process and a first control code indicating that
the input code is obtained by coding process according to a
particular coding system, and if it is decided that none of the
control codes is included, the first variable length decoding step
is performed, if it is decided that the second control code is
included, the second variable length decoding step is performed,
and if it is decided that the first control code is included, the
particular decoding step is performed.
33. A recording medium for image decoding program as defined in
claim 31 wherein: in the coding process decision step of the image
decoding program, it is decided whether or not the input variable
length code includes a second control code indicating that the
input code is obtained by a variable length coding process with a
transformation process and a first control code indicating that the
input code is obtained by a coding process according to a
particular coding system, and if it is decided that none of the
control codes is included, the first variable length decoding step
is performed, and if it is decided that the first control code is
included, the particular decoding step is performed; if it is
decided that the second control code is included, a second control
code decision step is further performed in which it is decided
whether the second control code is a second control code indicating
that the second control code is obtained by a variable length
coding process with a first transformation process or a third
control code indicating that the second control code is obtained by
a variable length coding process with a second transformation
process; and in the second variable length decoding step of the
image decoding program, if it is decided that it is the second
control code, a first inverse transformation process which is an
inverse of the first transformation process in coding process is
performed, and if it is decided that it is the third control code,
a second inverse transformation process which is an inverse of the
second transformation process in coding process is performed.
34. A recording medium for image decoding program as defined in
claim 31 wherein: in the coding process decision step of the image
decoding program, it is decided whether or not the input variable
length code is a set of control code and second mode code
indicating that the input code is obtained by a variable length
coding process with a transformation process and a set of control
code and first mode code indicating that the input code is obtained
by a coding process according to a particular coding system; and if
it is decided that none of the sets is included, the first variable
length decoding step is performed, if it is decided that the set of
control code and second mode code is included, the second variable
length decoding step is performed, and if it is decided that the
set of control code and first mode code is included, the particular
decoding step is performed.
35. A recording medium in which recorded is an image decoding
program which performs extraction to compression-coded data as an
object of decoding to obtain a variable length code included in the
data and use the code as an input variable length code, and obtains
by extraction a quantization scale used for coding which is
included in the compression-coded data and an input auxiliary code
obtained based on a remainder derived from a division process for
coding, and generates an output transform coefficient from the
input variable length code referring to a variable length code
table comprising a plurality of reference events paired with
reference variable length codes, said program including a variable
length decoding step which includes the steps of: performing
comparison process between the input variable length code and a
reference variable length code obtained from the variable length
code table by the reference, and if the result of comparison shows
"matching", obtaining a reference event corresponding to the
reference variable length code and multiplying it with the
remainder obtained based on the quantization scale; and performing
to the input auxiliary code a decoding process which is an inverse
of the coding process by which the code is acquired, to obtain an
inverse auxiliary coefficient, and then performing addition process
to generate an output transform coefficient.
36. A recording medium in which recorded is an image decoding
program which performs extraction to compression-coded data as an
object of decoding to obtain a variable length code included in the
data and use the code as an input variable length code, and obtains
by extraction a quantization scale used for coding which is
included in the compression-coded data, and generates an output
transform coefficient from the input variable length code referring
to a variable length code table comprising a plurality of reference
events paired with reference variable length codes, said program
including a variable length decoding step in which comparison
process is performed between the input variable length code and a
reference variable length code obtained from the variable length
code table by the reference, and if the result of comparison shows
"matching", a reference event corresponding to the reference
variable length code is obtained, and then transformation process
is performed using a prescribed function on the basis of the
quantization scale to generate an output transform coefficient.
Description
TECHNICAL FIELD
1. 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
2. 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.
3. 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.
4. 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.
5. 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.
6. 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.
7. 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.
8. 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.
9. 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.
10. 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.
11. 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.
12. 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.
13. 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.
14. 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.
15. 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
16. 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.
17. 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.
18. 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.
19. 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 thetransformed 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.
20. 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.
21. 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.
22. 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.
23. 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.
24. 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.
25. 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
26. FIG. 1 is a flowchart illustrating the procedure of a variable
length coding method according to a first embodiment of the present
invention.
27. FIG. 2 is a block diagram illustrating the configuration of an
image coding apparatus according to the same embodiment.
28. FIG. 3 are explanatory diagrams illustrating examples of a code
transformed by the variable length coding method according to the
same embodiment.
29. FIG. 4 is a block diagram illustrating the configuration of an
image decoding apparatus according to the same embodiment.
30. FIG. 5 is a flowchart illustrating the procedure of a variable
length decoding method according to the same embodiment.
31. FIG. 6 is a flowchart illustrating the procedure of a variable
length coding method according to a second embodiment of the
present invention.
32. FIG. 7 is an explanatory diagram showing an example of a code
transformed by the variable length coding method according to the
same embodiment.
33. FIG. 8 are flowcharts illustrating the procedure of a variable
length coding method according to a third embodiment of the present
invention.
34. FIG. 9 is an explanatory diagram showing an example of a code
transformed by the variable length coding method according to the
same embodiment.
35. FIG. 10 is a flowchart illustrating the procedure of a variable
length coding method according to a fourth embodiment of the
present invention.
36. FIG. 11 is an explanatory diagram showing an example of a code
transformed by the variable length coding method according to the
same embodiment.
37. FIG. 12 is a flowchart showing the procedure of a variable
length coding method according to a fifth embodiment of the present
invention.
38. 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.
39. FIG. 14 is an explanatory diagram illustrating an example of a
code transformed by the variable length coding method according to
the same embodiment.
40. FIG. 15 is a flowchart illustrating the procedure of a variable
length coding method according to a sixth embodiment of the present
invention.
41. 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.
42. 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.
43. FIG. 18 is a flowchart illustrating the procedure of a prior
art variable length coding method.
44. FIGS. 19 through 22 are diagrams showing examples of variable
length code table used for variable length coding.
45. FIG. 23 are diagrams for explaining fixed length coding
process.
BEST MODES FOR CARRYING OUT THE INVENTION
Embodiment 1
46. 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.
47. 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.
48. 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.
49. 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.
50. 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
objet 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.
51. 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.
52. 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.
53. 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.
54. 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. Herein after 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.
55. 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.
56. 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).
57. 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.
58. 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.
59. 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.
60. 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.
61. 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).
62. The variable length code table shown in FIG. 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.
63. 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.
64. 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.
65. 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 306 and a
variable length code 307 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.
66. 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.
67. Hereinafter a description is given of a decoding process to the
coded data obtained by the image coding process according to the
first embodiment.
68. 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.
69. 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.
70. 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.
71. 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.
72. 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.
73. 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.
74. 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.
75. 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.
76. 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).
77. 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.
78. 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.
79. 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.
80. 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.
81. 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.
82. 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.
83. 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.
84. 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.
85. 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
86. 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.
87. 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.
88. 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.
89. 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.
90. 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.
91. 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.
92. 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.
93. 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, Run)
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).
94. 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.
95. 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.
96. 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.
97. 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.
98. 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.
99. 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.
100. 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.
101. 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.
102. 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.
103. 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
aquadratic function, and changing a dynamic range.
Embodiment 3
104. 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.
105. 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.
106. 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.
107. 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).
108. 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.
109. 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.
110. 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 is set to "10".
111. On the other hand, if step 825 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. The first mode code is set to "11".
112. If any step is performed from among step 810 and steps 824 and
825 shown in FIG. 8(b), in a subsequent step 811, 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 812. On the other hand, if it is not the last one, the
operation is returned to step 82 after j is incremented by 1 in
step 813, whereby a next input event is processed similarly. Thus,
the process is continued to the last non-zero coefficient.
113. Hereinafter a description is given of a decoding process to
the coded data obtained in the image coding process shown in the
third embodiment. The configuration of an image decoding apparatus
according to the third embodiment is identical to that of the image
decoding apparatus of the first embodiment, and thus FIG. 4 will be
used for the description.
114. FIG. 9 is a flowchart showing the procedure of a variable
length decoding method according to the third embodiment. An image
decoding process according to the third embodiment differs from
that of the first embodiment only in the process by the variable
length decoder 408 shown in FIG. 4, and thus a description is given
of the operation by the variable length decoder 408 in the decoding
process with reference to FIG. 9.
115. Steps 901 through 906 are performed in the same manner as
steps 701 through 706 of the second embodiment shown in FIG. 7.
When it is decided in step 905 that a target bit is "1", step 907
is performed in which decision process is performed to know whether
the subsequent one bit is "0"or "1". Then, if it is "0", step 908
is performed, and if it is "1", step 909 is performed.
116. If step 908 is performed, a set of (Last, Run, Level)
corresponding to an input variable length code is obtained using a
variable length code table, and to a Run value thereof,
transformation process is performed using a prescribed function,
and then the result of decoding is output. In the transformation
process according to the third embodiment, a prescribed (Offset+1)
is added to a resultant Run value.
117. On the other hand, if step 909 is performed, an input variable
length code is decoded as a fixed length code toregenerate
coefficients. If any of steps 904, 906, 908, and 909 is performed,
in a subsequent step 910, it is decided whether an input variable
length code is a last input variable length code or not; if it is
the last one, the coding process is completed in step 911. On the
other hand, if it is not the last one, the operation is returned to
step 902 after j is incremented by 1 instep 912, whereby a next
input variable length code is performed in the same manner. Thus,
the process is continued to the last variable length code.
118. As described above, in the image coding method according to
the third embodiment, if a reference event concerned is not found
in a variable length code table in the comparison process in steps
803 through 804 as shown in FIG. 8(a), transformation process is
performed to an input event in step 806, and comparison process is
performed using a resultant first transformed input event in steps
807 through 808; if a matching reference event is not found in the
variable length code table at this time, the process shown in FIG.
8(b) is performed in which transformation process is performed to
an input event in step 821, and in steps 822 through 823,
comparison process is performed using a resultant second
transformed input event; therefore, by performing step 824, a rate
of performing fixed length coding is further reduced in comparison
with the respective rates of the first and second embodiments, and
a possibility that short codes are allocated in variable length
coding is further increased, resulting in improved total
compression ratio of a result of coding.
119. Further, since the image coding apparatus of the third
embodiment comprises a variable length coder 211 performing the
above-described coding method, a result of coding having an
improved 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.
120. Furthermore, according to the image decoding method and image
decoding apparatus of the third embodiment, appropriate decoding
process can be performed corresponding to the result of coding
derived in the above-described manner, to obtain reconstructed
image.
Embodiment 4
121. An image coding method according to a fourth embodiment of the
present invention is intended for increasing a chance of using
variable length code table by a comparison process using plural
variable length code tables, thereby improving coding
efficiency.
122. FIG. 10 is a flowchart showing the procedure of a variable
length coding method according to the fourth embodiment. An image
coding apparatus of the fourth embodiment has the same
configuration as that of the first embodiment, and thus FIG. 2 will
be used for the description.
123. An 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. 10. Here,
first and second variable length code tables are used in the coding
process according to the fourth embodiment. As for the first
variable length code table, the tables shown in FIGS. 19 through 22
are used as in the first to third embodiments. As for the second
variable length code table, on the other hand, a table different
from the first variable length code table is used, and in this
case, used is the one composed of the sets having Level values no
less than ten. As described above, in the fourth embodiment, a
first variable length code table in which most of Level values are
less than ten is used whereas a second variable length code table
is used including the Level values equal to or more than ten; that
is, it is preferable to use a second variable length table composed
of the reference events not included in the first variable length
table.
124. Following the initiation of the process in step 1001, a j-th
input event is derived in step 1002. In step 1003, comparison is
performed between the input event and a reference event included in
a first variable length code table in the variable length coder
211. Next, in step 1004, it is decided whether a reference event
having a matching set of (Last, Run, Level) is found or not in the
comparison process. If it is decided in step 1004 that such
reference event is found, step 1005 is performed; if it is not
found, step 1006 is performed. If step 1005 is performed at this
point, a variable length code corresponding to the reference event
is output, followed by step 1010 which will be described.
125. If step 1006 is performed, on the other hand, comparison is
performed between the input event and a reference event included in
a second variable length code table. Then, in step 1007, it is
decided whether a reference event having matching (Last, Run,
Level) is found or not in the comparison process. If it is decided
in step 1007 that the reference event is found, step 1008 is
performed, and if it is not found, step 1009 is performed. If step
1008 is performed at this point, a variable length code
corresponding to the reference event is obtained, and a control
code set uniquely and a second mode code are added to the code and
output, followed by step 1010 which will be described later. In
this case, "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.
126. If step 1009 is performed, on the other hand, 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.
127. If any of steps 1005, 1008,and 1009 is performed, in a
subsequent step 1010, it is decided whether an input event
processed is a last input event or not, and if it is the last one,
the coding process is completed in step 1011. On the other hand, if
it is not the last one, the operation is returned to step 1002
after j is incremented by 1 in step 1012, whereby a next input
event is performed in the same manner. Thus, the process is
continued to the last non-zero coefficient.
128. Hereinafter a description is given of a decoding process to
the coded data obtained in the image coding process shown in the
fourth embodiment. The configuration of an image decoding apparatus
according to the fourth embodiment is identical to that of the
first embodiment, and thus FIG. 4 will be used for the
description.
129. FIG. 11 is a flowchart showing the procedure of a variable
length decoding method according to the fourth embodiment. An image
decoding process according to the fourth embodiment differs from
that of the first embodiment only in the process by the variable
length decoder 408 shown in FIG. 4, and thus the operation by the
variable length decoder 408 in the decoding process will be
described with reference to FIG. 11.
130. First of all, following the initiation of the process in step
1101, a variable length code of quantized transformed coefficients,
which is a j-th object to be processed, is input as an input
variable length code. In step 1103, it is decided whether the input
variable length code includes a control code or not; if the control
code is not included, step 1104 is performed, and if it is
included, step 1105 is performed. In the case where step 1104 is
performed, that is, in the case where a control code is not
included, a set of (Last, Run, Level) corresponding to the input
variable length code is output by using a first variable length
code table, followed by step 1110 which will be described
later.
131. When it is decided in step 1103 that the control code is
included, decision process is performed in step 1105 to know
whether a next one bit subsequent to the control code is "0" or
"1". Then, if it is "0", step 1106 is performed, whereas step 1108
is performed if it is "1".
132. If step 1106 is performed, a set of (Last, Run, Level)
corresponding to the input variable length code is output by using
the second variable length code table, followed by step 1110 which
will be described later. If step 1108 is performed, on the other
hand, decoding is performed to the input variable length code as a
fixed length code to regenerate the coefficients.
133. If any of steps 1104, 1106, and 1108 is performed, in a
subsequent step 1110, it is decided whether an input variable
length code processed is a last input variable length code or not,
and if it is the last one, the coding process is completed in step
1111. On the other hand, if it is not the last one, the operation
is returned to step 1102 after j is incremented by 1 in step 1112,
whereby a next input variable length code is processed similarly.
Thus, the process is continued to the last variable length
code.
134. As described above, in the image coding method in accordance
with the fourth embodiment, first and second variable length code
tables are used, and if a reference event concerned is not found in
the first variable length code table in a comparison process in
steps 1003 through 1004, a comparison process can be performed with
the second variable length code table; therefore, a rate of
performing fixed length coding in step 1009 is reduced, resulting
in improved whole compression ratio of a result of coding.
According to the fourth embodiment, a plurality of variable length
code tables have to be prepared, and by forming plural tables so
that the events included in one of the tables are different from
those in the other tables, coding efficiency can be improved.
135. Further, since the image coding apparatus of the fourth
embodiment comprises a variable length coder 211 performing the
above-described coding method, it is possible to obtain a result of
coding having improved compression ratio whether the compression
ratio of the compression coding by the coder 203 is high or
low.
136. Furthermore, according to the image decoding method and image
decoding apparatus of the fourth embodiment, appropriate decoding
process can be performed corresponding to a result of coding
deprived in the above-described manner to obtain reconstructed
image.
137. Although in the fourth embodiment two variable length code
tables are used, an arbitrary number of variable length code tables
may be prepared, and a corresponding number of mode codes may be
used to distinguish the plural variable length code tables.
Further, it is possible to distinguish plural variable length code
tables by quantization scales.
Embodiment 5
138. In an image coding method according to a fifth embodiment of
the present invention, a transformation process using division
process is performed to an event which is an object to be coded,
and then comparison is performed with a variable length code
table.
139. FIG. 12 is a flowchart of the procedure of a variable length
coding method according to the fifth embodiment. An image coding
apparatus according to the fifth embodiment has the same
configuration as that of the first embodiment, and thus FIG. 2 will
be used for the description.
140. An image coding process according to the fifth embodiment
differs from that according to 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 of the variable length
coder 211 in the coding process below with reference to FIG. 12.
Following the initiation of the process in step 1201, a j-th input
event consisting of (Last, Run, Level) is obtained instep 1202.
Then, in step 1203, transformation process is performed to the
input event using division process. In the transformation process,
division is performed to the Level value included in an input
event, using a divisor decided based on a quantization scale, to
derive a quotient of the Level. FIG. 13 are diagrams illustrating
relations between quantization scale and divisor. FIG. 13(a) shows
an example of setting with respect to the relation between them,
and indicates that a divisor is set to 2 when a quantization scale
ranges from 1 to 7, and a divisor is 1 when a quantization scale is
identical to or more than 8. This means that if a quantization
scale is equal to or more than 8, division is not carried out. FIG.
13(b) shows another example of setting with respect to the relation
between them, and as shown in the figure, it is possible to
classify quantization scales into three classes and decide a
divisor corresponding to each class.
141. Quantization process is basically a division process, and
quantized transform coefficients tend to have a large value as a
quantization scale decreases; accordingly, when an event is
generated, the Level value included in the event is often large.
The variable length code table shown in FIGS. 19 through 22 is
formed so that it is suitable for the coefficients having a
relatively high compression ratio, and includes many events having
small Level values; therefore, a matching rate for the reference
events included in the table is reduced and a rate of performing
variable length coding is also reduced, resulting in degraded
coding efficiency. Therefore, in the fifth embodiment, when the
quantization scale is small, division is performed to a Level to
generate a transformed input event having a small Level value which
is used for comparison process, thereby improving a rate of
performing variable length coding and increasing a possibility that
short codes are allocated.
142. After the quotient of the Level is derived, in step 1204,
comparison is performed between (Last, Run, quotient of Level) of
the transformed input event and a reference event included in a
variable length code table, and in a subsequent step 1205, decision
process is carried out according to the result of the comparison.
If it is decided in step 1205 that such reference event is found,
step 1206 is performed; if it is not found, step 1208 is
performed.
143. If step 1206 is performed, the variable length code for the
reference event concerned is output, and in a subsequent step 1207,
the remainder of the Level is subjected to fixed length coding and
the result of the coding is output as an input auxiliary code. The
code length of the remainder of the Level is changed depending on a
divisor. For example, in the case of the setting shown in FIG.
13(a), the bit length of a remainder is set to 1 when a divisor is
2, and the bit length of the remainder is set to 0 when the divisor
is 1. In other words, when a divisor is 1, a remainder is actually
not coded. If steps 1206 through 1207 are performed, avariable
length code and an input auxiliary code are output as the results
of coding.
144. On the other hand, if step 1208 is performed, fixed length
coding process is performed to an input event to generate a fixed
length code. Then, the result of the coding is output which is the
fixed length code to which a control code is added.
145. After performing steps 1206 through 1207 or step 1208, in a
subsequent step 1209, it is decided whether an input event
processed is the last input event or not, and if it is the last
one, the coding process is completed in step 1210. On the other
hand, if it is not the last one, the operation is returned to step
1202 after j is incremented by 1 in step 1211, whereby a next input
event is performed in the same manner. Thus, the process is
continued to the last non-zero coefficient. Hereinafter a
description is given of a decoding process to the coded data
obtained by the image coding process shown in the fifth embodiment.
The configuration of an image decoding apparatus according to the
fifth embodiment is identical to that of the first embodiment, and
thus FIG. 4 will be used for the description.
146. FIG. 14 is a flowchart showing the procedure of a variable
length decoding method according to the fifth embodiment. An image
decoding process according to the fifth embodiment differs from
that of the first embodiment only in the process by the variable
length decoder 408 shown in FIG. 4, and thus a description is given
of the operation by the variable length decoder 408 in the decoding
process below with reference to FIG. 14.
147. First of all, following the initiation of the process instep
1401, a variable length code of quantized transform coefficients,
which is a j-th object to be processed, is input as an input
variable length code instep 1402. Since the result of coding
including an input auxiliary code is obtained as described in the
image coding process of the fifth embodiment, the input auxiliary
code is also input together with the variable length code as an
object to be processed at this point. In step 1403, it is decided
whether the input variable length code includes a control code or
not; if it is included, step 1404 is performed, and if it is not
included, step 1405 is performed. In the case where step 1404 is
performed, that is, in the case where the control code is included,
the input variable length code is decoded as a fixed length code to
regenerate and output coefficients, followed by a subsequent step
1408 which will be described.
148. On the other hand, in the case where step 1405 is performed,
that is, in the case where the control code is not included, a set
of (Last, Run, Level) corresponding to the input variable length
code is derived by using a first variable length code table, and
then step 1406 is performed in which transformation process is
performed by multiplying the derived Level value with a prescribed
value. The prescribed value is decided based on a quantization
scale, and in this case, the value shown in FIG. 13 is used
corresponding to the coding process. Then, in step 1407, the input
auxiliary code is subjected to fixed length decoding to obtain a
remainder of the Level, and the remainder is added to a product
derived from the transformation process in step 1406 to obtain a
correct Level value, and the set of (Last, Run, Level) in which
this Level value is used is output as the result of decoding.
149. After performance of step 1404 or steps 1405 through 1407, in
a subsequent step 1408, it is decided whether an input variable
length code processed is a last input variable length code or not;
if it is the last one, the coding process is completed in step
1409. On the other hand, if it is not the last one, the operation
is returned to step 1402 after j is incremented by 1 in step 1410,
whereby a next input variable length code is processed in the same
manner. Thus, the process is continued to the last variable length
code.
150. As described above, in the image coding method according to
the fifth embodiment, as shown in step 1203 of FIG. 12,
transformation process is performed in which division is performed
to the Level value included in an input event which is an object to
be processed, using a number decided based on a quantization scale,
and in step 1204, comparison process is performed using a
transformed input event which has been subjected to the
transformation process; therefore, a matching rate for reference
events included in a variable length code table is increased and a
rate of performing fixed length coding in step 1206 is reduced, and
a possibility that short codes are allocated in variable length
coding is increased as well by using a variable length code,
resulting in improved coding efficiency.
151. Further, since the image coding apparatus of the fifth
embodiment comprises a variable length coder 211 performing the
above-described coding method, it is possible to obtain a result of
coding having improved compression ratio by using a single variable
length code table whether the compression ratio of the compression
coding by the coder 203 is high or low.
152. Furthermore, according to the image decoding method and image
decoding apparatus of the fifth embodiment, appropriate decoding
process can be performed corresponding to the result of coding
derived in the above-described manner to obtain reconstructed
image.
153. Although in the fifth embodiment it is described that
transformation process is performed to Level included in an event,
the transformation process may be performed to Run in place of
Level.
Embodiment 6
154. In an image coding method according to a sixth embodiment of
the present invention, in place of an input event, transformation
process is performed to a reference event, and then comparison is
performed.
155. FIG. 15 is a flowchart showing the procedure of a scale is 3
or 4, Offset=3 when quantization scale is 5 or 6, Offset=2 when
quantization scale is 7 or 8, Offset =1 when quantization scale is
9 or 10, and Offset=0 when quantization scale is equal to or more
than 11. For example, in the case where an event as an object to be
coded is (Last, Run, Level)=(0, 1, 6), if transformation process to
reference event is not performed, this means that a matching
reference event is found in the reference events shown in FIG. 19;
a code corresponding to it is used, and the result of coding
obtained is 13 bits. On the other hand, in the case where
quantization scale is 4 and the same event is used as the object, a
transformation process in which 4 is added to the Level value is
performed to all of the reference events; a variable length code
corresponding to the reference event (0, 1, 2) shown in FIG. 19 is
used and thus 7 bits are obtained, which means that 6 bits are
saved in comparison with the case in which the above-described
transformation process is not performed. Therefore, adding an
Offset to the Level of a reference event is identical to a method
of deducting an Offset from the Level of an event (Last, Run,
Level) which is an object to be coded and comparing it with each
set of a variable length code table.
156. As described in the fifth embodiment, since a value of a
quantized coefficient tends to increase as a quantization scale
decreases, a frequency at which an event having a large Level value
appears is also increased. On the other hand, the variable length
code table shown in FIGS. 19 through 22 is suitable for
coefficients having a high compression ratio, and include many
events having small Level values. Therefore, adding an Offset to a
Level value included in a reference event can raise a rate of
performing variable length coding using short codes, thereby
improving the compression ratio.
157. In step 1505, decision process is performed based on the
result of the comparison in step 1504. If the decision in step 1505
shows a match, step 1507 is carried out after the performance of
step 1506, where a variable length code corresponding to the i-th
reference event is output, followed by step 1509 which will be
described later. On the other hand, if no match is found, step 1507
is performed.
158. In step 1507, it is decided whether the i-th reference event
is a last reference event included in the variable length cod
table; if it is the last reference event, step 1508 is performed.
If it is not the last reference event, the operation is returned to
step 1503 after i is incremented by 1 in step 1512, and the
following steps ending with the decision in step 1507 are performed
again.
159. By the processes in steps 1503 through 1507, the comparison
between a j-th input event and a reference event included in the
variable length code table is repeated until the decision in step
1505 shows a match between them or it is decided in step 1507 that
the treated event is the last one. In other words, the comparison
is continued until variable length coding is performed or the last
one of the variable length code table is compared.
160. In the case where it is decided in step 1507 that the treated
event is the last one, that is, in the case where the comparison
using the table is completed for the j-th input event, it is found
that variable length coding cannot be performed and in step 1508,
fixed length coding is performed to the input event to output the
result of the coding with a control code, followed by step
1509.
161. In step 1509 performed subsequent to step 1506 or step 1508,
it is decided whether an input event processed is a last input
event or not; if it is the last one, the coding process is
completed in step 1510. If it is not the last one, on the other
hand, the operation is returned to step 1502 after j is incremented
by 1 in step 1511, whereby a next input event is processed in the
same manner. Thus, the process is continued to the last non-zero
coefficient.
162. FIG. 16 is a block diagram illustrating the inner
configuration of the variable length coder (211 in FIG. 2) used in
an image coding apparatus according to the sixth embodiment of the
present invention. As shown in the figure, the variable length
coder comprises: a variable length code table 1601, a Level
transformation unit 1602, a comparator 1603, a fixed length coder
1604, and a switch 1605, and receives an input event and a
quantization scale as inputs and outputs a result of coding.
163. The variable length code table 1601 is shown in FIGS. 19
through 22. The Level transformation unit 1602 receives a
quantization scale and a reference event as inputs and transforms a
Level value of the reference event corresponding to the
quantization scale to generate a transformed reference event. The
comparator 1603 performs comparison process between an input event
and the transformed reference event and outputs a control signal
according to the result of the comparison. The fixed length coder
1604 performs fixed length coding process to an input event when it
is input, and outputs the result of the coding. The switch 1605
performs switching according to an output from the comparator 1603
and outputs, as a result of coding, one of an output from the
variable length code table 1601 and an output from the fixed length
coder 1604.
164. Hereinafter a description is given of the operation of the
variable length coder thus constructed, corresponding to the flow
of FIG. 15. In step 1502 of the flow of FIG. 15, when a
quantization scale and an input event (a j-th one) are input to the
variable length coder (211 in FIG. 2), the quantization scale is
input to the Level transformation unit 1602 through a line 1611 and
the input event is input to the comparator 1603 through a line
1612. In step 1503 of the flow of FIG. 15, the Level transformation
unit 1602 derives a reference event (an i-th one) from the variable
length code table through a line 1613, performs transformation
process to the Level value included in the reference event using
the input quantization scale, and outputs a resultant transformed
reference event to the comparator 1603.
165. In step 1505 of the flow of FIG. 15, comparison process and
decision process are performed by the comparator 1603. The
comparator 1603 performs comparison process between the input event
and the transformed reference event which are input, and decides
whether these events match or not. If the decision is "matching",
the comparator 1603 sends a control signal to the variable length
code table 1601 through a line 1615 so that a code corresponding to
the i-th reference event is output, while sending a control signal
to the switch 1605 through a line 1617 so that the output from the
variable length code table 1601 is output from the switch 1605.
Therefore, if the decision in step 1505 shows "matching", in step
1506 of the flow of FIG. 15, a variable length code is output from
the output line 1620 of the switch 1605.
166. On the other hand, if it is found in the comparison process by
the comparator 1603 that those events do not match, a next
reference event (i+1-th one) is input from the variable length code
table 1601 to the Level transformation unit 1602, in response to a
control signal through the line 1615. In the flow of FIG. 15, the
steps starting with step 1503 are performed again after "i" is
incremented in step 1512.
167. When it is checked from the decision in step 1507 that the
comparison process is completed for the last one of the variable
length code table, the comparator 1603 outputs the input event (the
j-th one) to the fixed length coder 1604 through a line 1618, while
sending a control signal to the switch 1605 through a line 1617 so
that the output from the fixed length coder 1604 is used as a code
from the switch 1605.
168. In 1508 of the flow of FIG. 15, the fixed length coder 1604
performs coding process to the input event input and outputs an
obtained result of coding to the switch 1605 through a line 1619.
According to the control signal from the comparator 1603, a fixed
length code is output from the switch 1605 through the line
1620.
169. Following the output from the line 1620, a next input event is
input through the line 1612, whereby the processes to input event
in the flow of FIG. 15 is executed again.
170. The image coding according to the sixth embodiment of the
present invention is thus performed, whereas a decoding process to
the coded data obtained by such image coding is performed in an
image decoding apparatus shown in FIG. 4. An image decoding process
according to the sixth embodiment differs from that of the first
embodiment only in the process by the variable length decoder 408
shown in FIG. 4, and thus a description is given of the decoding
process by the variable length decoder 408 below, with reference to
FIG. 17 showing the inner configuration thereof.
171. As shown in FIG. 17, the variable length decoder comprises: a
variable length code table 1701, a comparator 1702, a Level inverse
transformation unit 1703, a fixed length decoder 1704, and a switch
1705, and it receives an input variable length code and a
quantization scale as inputs and outputs a result of regeneration
derived from the decoding process.
172. The variable length code table 1701 is shown in FIGS. 19
through 22. The comparator 1602 performs comparison process between
an input variable length code and a reference variable length code
and outputs a control signal corresponding to the result of
comparison. The Level inverse transformation unit 1703 receives a
quantization scale and a reference event as inputs, transforms a
value of a Level included in the reference event corresponding to
the quantization scale to generate a transformed reference event.
The fixed length decoder 1704 performs fixed length decoding
process to an input variable length code when it is input and
outputs the result of the decoding. The switch 1705 performs
switching corresponding to the output from the comparator 1702 and
outputs, as a result of regeneration, one of the output from the
variable length code table 1701 and the output from the fixed
length decoder 1704.
173. Hereinafter a description is given of the operation of the
variable length coder thus constructed. When a quantization scale
and an input variable length code are input to the variable length
decoder (408 in FIG. 4), the quantization scale is input to the
Level inverse transformation unit 1703 through a line 1711, and the
input variable length code is input to the comparator 1702 through
a line 1712. The comparator 1702 derives a reference variable
length code from the variable length code table 1701 through a line
1713 and performs comparison between the input variable length code
and the reference variable length code.
174. If the result of the comparison is that these codes match, the
comparator 1702 sends a control signal to the variable length code
table 1701 through a line 1714 so that a reference event
corresponding to the reference variable length code is output,
while sending a control signal to the switch 1705 through a line
1717 so that the code from the variable length code table 1701 is
output from the switch 1705.
175. From the variable length code table, a reference event is
input to the Level inverse transformation unit 1703 through a line
1715 to be subjected to transformation process. The Level inverse
transformation unit 1703 performs the inverse of the transformation
process performed for coding, corresponding to the Level included
in the reference event based on a quantization scale. In the sixth
embodiment, an Offset predetermined according to a quantization
scale is added to the Level value included in a reference value.
This is performed in such a way that Offset=5 when quantization
scale is 1 or 2, Offset=4 when quantization scale is 3 or 4,
Offset= 3 when quantization scale is 5 or 6, Offset=2 when
quantization scale is 7 or 8, Offset=1 when quantization scale is 9
or 10, and Offset=0 when quantization scale is equal to or more
than 11. For example, when an input variable length code is
"0101000", (Last, Run, Level)= (0, 1, 2) is derived as a reference
event from a table shown in FIG. 19. The Level inverse
transformation unit 1603 adds 4 to the Level included in this
reference event input if the input quantization scale is 4, and
outputs the obtained result (0, 1, 6) to the switch 1705 through a
line 1716. Then, corresponding to the control signal from the
comparator 1702, the switch 1705 outputs this result as a result of
regeneration through the line 1720. When the decision shows
"matching", a variable length code is output from the output line
1720 of the switch 1705.
176. On the other hand, when no matching variable length code is
found in the comparison process by the comparator 1703, the
comparator 1703 outputs the input variable length code to the fixed
length decoder 1704 through a line 1718, while sending a control
signal to the switch 1705 through the line 1717 so that a code from
the fixed length decoder 1704 is output from the switch 1705.
Thereby, a result of fixed length decoding is output from the
output line 1720 of the switch 1705.
177. Thus, according to the image coding method according to the
sixth embodiment, the transformation process shown in step 1502 of
FIG. 15 is performed to a reference event included in a variable
length decode table; therefore, a rate of performing variable
length coding and a rate at which short codes are allocated are
increased as in the first embodiment where the same transformation
process is performed to input event, resulting in improved coding
efficiency.
178. Further, since the image coding apparatus according to the
sixth embodiment comprises a variable length coder 211 having the
inner configuration shown in FIG. 16 and implementing the
above-described coding method, a result of coding having improved
compression ratio can be obtained using a single variable length
code table whether the compression ratio of the compression coding
by the coder 203 is high or low.
179. Furthermore, by the image decoding method and image decoding
apparatus according to the sixth embodiment, appropriate decoding
process can be performed corresponding to the result of coding
derived in the above-described manner to obtain a reconstructed
image.
180. Although in the sixth embodiment a method of adding Offset is
used as a transformation process to reference event, the process is
not limited to this method only and other functions may be applied.
For example, the above-described effect can be obtained by the
following methods: changing a multiple to a Level value according
to a quantization scale; subjecting to quadratic function; and
changing a dynamic range of a Level.
181. Further, as is illustrated in the description of the
transformation process to input event in the first embodiment as
well as in other embodiments, it is possible to perform
transformation process to a value of Run of a reference event, in
place of a transformation process to a Level thereof.
182. As described in the embodiments of the present invention, in
any of the embodiments, the procedure presented referring to the
flowchart thereof is just one example, and other procedure
implementing the same coding and decoding methods may be used.
183. Furthermore, the image coding apparatuses and image decoding
apparatuses of the first through sixth embodiments of the present
invention are realized by recording, in recording media, an image
coding program implementing the image coding methods of the
respective embodiments and an image decoding program implementing
the image decoding methods of the respective embodiments, and
running the recorded programs on a computer system including a
personal computer and a work station. Recording media capable of
recording such programs may be employed: for example, floppy disks
or optical disks such as CD-ROM.
Industrial Availability
184. As described above, the image coding methods and image coding
apparatuses of the present invention are able to perform coding
process at a high compression ratio to a wide range of objects
having various compression ratios, using a single variable length
code table, when an object to be processed is the data
compression-coded by subjecting digital image data to DCT or
waveform coding.
185. Further, the image decoding methods and image decoding
apparatuses of the present invention are able to perform
appropriate decoding process to a result of coding which has been
subjected to the above-described efficient coding process, to
obtain reconstructed images.
186. Furthermore, a recording medium containing an image coding
program and a recording medium containing an image decoding program
according to the present invention are able to implement an image
coding apparatus capable of obtaining a result of coding with a
high compression ratio and an image decoding apparatus capable of
appropriately processing the result of coding, utilizing a device
resource fully, by running the recorded programs on a computer
system.
* * * * *