Sign up to receive free email alerts when patent applications with chosen keywords are publishedSIGN UP

Abstract:

According to one embodiment, a video encoding apparatus is a video
encoding apparatus for subjecting a video image to motion compensated
prediction coding, includes an acquisition module to acquire available
blocks of blocks having motion vectors from encoded blocks adjacent to a
to-be-encoded block and number of the available blocks, an
acquisition/selection module to select one selection block from the
encoded available blocks, a selection information encoder to encode
selection information specifying the selection block using a code table
corresponding to the number of available blocks, and an image encoder to
subject the to-be-encoded block to motion compensated prediction coding
using a motion vector of the selection block.

Claims:

1. A video encoding apparatus for subjecting a video image to motion
compensated encoding, the apparatus comprising: an acquisition module to
acquire available blocks having motion vectors from encoded blocks
adjacent to a to-be-encoded block and a number of the available blocks; a
selection module to select one selection block from the available blocks;
a selection information encoding module to select one selection code
table from a plurality of code tables depending on the number of the
available blocks and encode selection information for specifying the
selection block using the selected code table; and an image encoding
module to subject the to-be-encoded block to motion compensated
prediction coding using a motion vector of the selection block.

2. The video encoding apparatus according to claim 1, wherein each of the
plurality of code tables is a code table having the same number of
entries as the available blocks.

3. The video encoding apparatus according to claim 2, wherein the code
table when the number of the available blocks is 2 represents the
selection information with a code word of 1 bit, the code table when the
number of the available blocks is 3 represents the selection information
with a variable length code word having a length from 1 bit to 2 bits,
and the code table when the number of the available blocks is 4
represents the selection information with a variable length code word
having a length from 1 bit to 3 bits.

4. The video encoding apparatus according to claim 3, wherein the
acquisition module acquires as the available block a block of a specific
block size having a motion vector from the encoded blocks.

5. The video encoding apparatus according to claim 4, further comprising
a setting module to set a prediction mode of the to-be-encoded block to
any one of (A) a first unidirectional prediction using only a first
vector, (B) a second unidirectional prediction using only a second
vector, and (C) a bidirectional prediction using both the first vector
and the second vector, wherein the acquisition module acquires as the
available block a block of a specific block size having a motion vector
necessary for subjecting the to-be-encoded block to motion compensated
prediction in the prediction mode.

6. A video decoding apparatus for subjecting a video image to motion
compensated prediction decoding, the apparatus comprising: an acquisition
module to obtain available blocks having motion vectors and a number of
the available blocks from decoded blocks adjacent to a to-be-decoded
block; a selection information decoding module to select one selection
code table from a plurality of code tables depending on the number of the
available blocks and decode selection information for specifying the
selection block using a code table corresponding to the number of the
available blocks; a selection module to select one selection block from
the available blocks according to the selection information; and a video
decoding module to subject the to-be-decoded block to motion compensated
prediction decoding using a motion vector of the selection block.

7. The video decoding apparatus according to claim 6, wherein each of the
plurality of code tables is a code table having the same number of
entries as the available blocks.

8. The video decoding apparatus according to claim 7, wherein the code
table when the number of the available blocks is 2 represents the
selection information with a code word of 1 bit, the code table when the
number of the available blocks is 3 represents the selection information
with a variable length code word having a length from 1 bit to 2 bits,
and the code table when the number of the available blocks is 4
represents the selection information with a variable length code word
having a length from 1 bit to 3 bits.

9. The video decoding apparatus according to claim 8, wherein the
acquisition module acquires as the available block a block of a specific
block size having a motion vector from the encoded block.

10. The video decoding apparatus according to claim 9, further comprising
a setting module to set a prediction mode of the to-be-decoded block to
any one of (A) a first unidirectional prediction using only a first
vector, (B) a second unidirectional prediction using only a second
vector, and (C) a bidirectional prediction using both the first vector
and the second vector, wherein the acquisition module acquires as the
available block a block of a specific block size having a motion vector
necessary for subjecting the to-be-decoded block to motion compensated
prediction in the prediction mode.

Description:

CROSS REFERENCE TO RELATED APPLICATIONS

[0001] This application is a Continuation Application of PCT Application
No. PCT/JP2009/061130, filed Jun. 18, 2009, the entire contents of which
are incorporated herein by reference.

FIELD

[0002] Embodiments described herein relate generally to a video encoding
apparatus and a video decoding apparatus which derive a motion vector
from an encoded and decoded image and perform a motion compensated
prediction.

BACKGROUND

[0003] There is a motion compensated prediction as one of techniques used
for encoding a video image.

[0004] In the motion compensated prediction, a video encoding apparatus
acquires a motion vector using a to-be-encoded image to be newly encoded
and a local decoded image already generated and generates a prediction
image by carrying out motion compensation using this motion vector.

[0005] As one of methods for acquiring a motion vector in the motion
compensated prediction, there is a direct mode for generating a
prediction image using a motion vector of a to-be-encoded block derived
from the motion vector of an encoded block (refer to Japanese Patent No.
4020789 and U.S. Pat. No. 7,233,621). Because the motion vector is not
encoded in the direct mode, the number of encoded bits of the motion
vector information can be reduced. The direct mode is employed in
H.264/AVC.

BRIEF DESCRIPTION OF THE DRAWINGS

[0006] FIG. 1 is a block diagram of a video encoding apparatus related to
an embodiment of the present invention.

[0007] FIG. 2 is a flowchart representing a processing procedure of the
video encoding apparatus.

[0008] FIG. 3 is a flowchart representing a processing procedure of an
acquisition/selection module.

[0009]FIG. 4A is a diagram for describing a discrimination method based
on a block size.

[0010] FIG. 4B is a diagram for describing a discrimination method based
on a block size.

[0011] FIG. 4C is a diagram for describing a discrimination method based
on a block size.

[0012] FIG. 5 is a diagram for describing a discrimination method by a
unidirectional or a bidirectional.

[0013] FIG. 6 is a flowchart representing a processing procedure of a
selection information encoder.

[0014] FIG. 7 shows an example of an index of selection information.

[0015] FIG. 8 shows an example of a code table of selection information.

[0016] FIG. 9 is a schematic view of a syntax structure.

[0017] FIG. 10 shows a data structure of a macroblock layer.

[0018] FIG. 11 shows a block diagram of a video decoding apparatus related
to the embodiment of the present invention.

[0020] In general, according to one embodiment, in the direct mode, a
motion vector is generated by a method for calculating a motion vector
from a median value of the motion vector of an encoded block adjacent to
a to-be-encoded block in generating the motion vector of the
to-be-encoded block by prediction. Therefore, degrees of freedom for
calculating the motion vector calculation are low. In addition, when a
method for calculating a motion vector by selecting one from a plurality
of encoded blocks is used for improving the degrees of freedom, the
position of the block must be always sent as motion vector selection
information in order to indicate the selected encoded block. For this
reason, the number of encoded bits may be increased.

[0021] It is an object of the present invention to provide a video
encoding apparatus and a video decoding apparatus which reduce additional
information of motion vector selection information while improving the
degrees of freedom for calculating the motion vector by selecting one
from encoded blocks.

[0022] An aspect of the present invention provides a video encoding
apparatus for subjecting a video image to motion compensated prediction
encoding, the apparatus comprising an acquisition module for acquiring
available blocks having motion vectors and the number of the available
blocks from encoded blocks adjacent to a to-be-encoded block, a selection
module for selecting a selection block from the available blocks of the
encoded blocks, a selection information encoding module for encoding
selection information specifying the selection block using a code table
corresponding to the number of the available blocks, and an image
encoding module for subjecting the to-be-encoded block to motion
compensated prediction encoding using the motion vector of the selected
block.

[0023] Another aspect of the present invention provides a video decoding
apparatus for subjecting a video image to motion compensated prediction
decoding, the apparatus comprising a selection information decoding
module for decoding selection information by switching a code table
according to the number of available blocks of decoded blocks having
motion vectors and neighboring a to-be-decoded block, a selection module
for selecting a selection block from available blocks according to the
selection information, and an image decoding module for subjecting a
to-be-decoded image to motion compensated prediction decoding using a
motion vector of the selection block by the selection module.

[0024] There will now be explained embodiments of the present invention
referring to drawings.

[0025] A video encoding apparatus related to an embodiment is described
with reference to FIG. 1 hereinafter. A subtracter 101 calculates a
difference between an input video signal 11 and a predictive coded video
signal 15, and output a prediction error signal 12. The output terminal
of the subtracter 101 is connected to a variable length encoder 111
through an orthogonal transformer 102 and a quantizer 103. The orthogonal
transformer 102 orthogonal-transforms a prediction error signal 12 from
the subtracter 101, and the quantizer 103 quantizes an orthogonal
transformation coefficient and outputs quantization orthogonal
transformation coefficient information 13. The variable length encoder
111 performs variable length encoding on the quantization orthogonal
transformation coefficient information 13 from the quantizer 103.

[0026] The output terminal of the quantizer 103 is connected to an adder
106 through a dequantizer 104 and an inverse orthogonal transformer 105.
The dequantizer 104 dequantizes the quantized orthogonal transformation
coefficient information 13, and converts it in an orthogonal
transformation coefficient. The inverse orthogonal transformer 105
converts the orthogonal transformation coefficient to a prediction error
signal. The adder 106 adds the prediction error signal of the inverse
orthogonal transformer 105 and the predictive coded video signal 15 to
generate a local decoded image signal 14. The output terminal of the
adder 106 is connected to a motion compensated prediction module 108
through a frame memory 107.

[0027] The frame memory 107 accumulates a local decoded image signal 14. A
setting module 114 sets a motion compensated prediction mode (a
prediction mode) of a to-be-encoded block. The prediction mode includes a
unidirectional prediction using a single reference picture and a
bidirectional prediction using two reference pictures. The unidirectional
prediction includes L0 prediction and L1 prediction of AVC. A motion
compensated prediction module 108 comprises a prediction module 109 and
an acquisition/selection module 110.

[0028] The acquisition/selection module 110 acquires available blocks
having motion vectors and the number of the available blocks from encoded
blocks adjacent to the to-be-encoded block, and selects a selection block
from the available blocks. The motion compensated prediction module 108
performs a prediction using a local decoded image signal 14 stored in the
frame memory 107 as a reference image and generates a predictive coded
video signal 15. The acquisition/selection module 110 selects one block
(a selection block) from the adjacent blocks adjacent to the
to-be-encoded block. For example, the block having an appropriate motion
vector among the adjacent blocks is selected as the selection block. The
acquisition/selection module 110 selects the motion vector of the
selection block as a motion vector 16 to be used for the motion
compensated prediction, and sends it to the prediction module 109. In
addition, the acquisition/selection module 110 generates selection
information 17 of the selection block and sends it to the variable length
encoder 111.

[0029] The variable length encoder 111 has a selection information encoder
112. The selection information encoder 112 subjects the selection
information 17 to variable length encoding while switching a code table
so as to have therein the same number of entries as the available blocks
of encoded blocks. The available block is a block having a motion vector
among encoded blocks adjacent to the to-be-encoded block. A multiplexer
113 multiplexes quantized orthogonal transformation coefficient
information and selection information and output encoded data.

[0030] The action of the video encoding apparatus of the above
configuration will be described referring to the flowchart of FIG. 2.

[0031] At first a prediction error signal 12 is generated (S11). In
generation of this prediction error signal 12, a motion vector is
selected, and a prediction image is generated using the selected motion
vector. The subtracter 101 calculates a difference between the signal of
the prediction image, that is, the prediction image signal 15 and the
input video signal 11 to generate the prediction error signal 12.

[0033] The prediction module 109 of the motion compensated prediction
module 108 subjects the local decoded image signal (reference image) to
motion compensated prediction using the motion vector 16 to generate the
predictive coded video signal 15. The predictive coded video signal 15 is
sent to the subtracter 101 to calculate a difference with respect to the
input video signal 11, and further is sent to the adder 106 to generate
the local decoded image signal 14.

[0034] The acquisition/selection module 110 selects a selection block from
adjacent blocks, generates selection information 17, and sends a motion
vector 16 of the selection block to the prediction module 109 which
performs the motion compensated prediction using the motion vector of the
selection block. The selection information 17 is sent to the selection
information encoder 112. When the selection block is selected from the
adjacent blocks, the adjacent block having the appropriate motion vector
allowing the amount of encoded bits to be decreased is selected.

[0035] The orthogonal transformation coefficient information 13 quantized
with the quantizer 103 also is input to the variable length encoder 111
and is subjected to variable length coding (S18). The
acquisition/selection module 110 outputs the selection information 16
used for motion compensated prediction, and inputs it to the selection
information encoder 112. The selection information encoder 112 switches
the code table so as to have therein the same number of entries as the
available bocks of the encoded blocks neighboring the to-be-encoded block
and having motion vectors, and the selection information 17 is subjected
to variable length coding. The multiplexer 113 multiplexes the quantized
orthogonal transformation coefficient information from the variable
length encoder 111 and the selection information to output a bit stream
of coded data 18 (S19). The coded data 18 is sent to a storage system
(not shown) or a transmission path.

[0036] In the flowchart of FIG. 2, the flow of steps S14 to S17 may be
replaced by the flow of steps S18 and S19.

[0037] In other words, the variable length coding step S18 and
multiplexing step S19 may be executed following the quantization step
S13, and the dequantizing step S14 to the storage step S17 may be
executed following the multiplexing step S19.

[0038] The action of the acquisition/selection module 110 will be
described referring to flowchart shown in FIG. 3.

[0039] At first the available block candidates being the encoded blocks
neighboring the to-be-encoded block and having motion vectors are
searched for (S101). When the available block candidates are searched
for, the block size for motion compensated prediction of these available
block candidates is determined (S102). Next, it is determined whether the
available block candidates are a unidirectional prediction or a
bidirectional prediction (S103). An available block is extracted from the
available block candidates based on the determined result and the
prediction mode of the to-be-encoded block. One selection block is
selected for from the extracted available blocks, and information
specifying the selection block is acquired as selection information
(S104).

[0040] There will be described a process for determining a block size
referring to FIGS. 4A to 4C (S102).

[0041] The adjacent blocks used in the present embodiment are assumed to
be blocks, which are positioned at the left, upper left, upper and upper
right of the to-be-encoded block. Therefore, when the to-be-encoded block
positions the most upper left of the frame, this to-be-encoded block
cannot be applied to the present invention because there is not the
available block adjacent to the to-be-encoded block. When the
to-be-encoded block is on the upper end of the screen, the available
block is only a left block, and when the to-be-encoded block is on the
extreme left and not on the extreme upper end, the two blocks of the
to-be-encoded blocks which position the upper and upper right thereof.

[0042] When the block size is a size 16×16, the block sizes for
motion compensated prediction of the adjacent blocks are four kinds of
size 16×16, size 16×8, size 8×16 and size 8×8 as
shown in FIGS. 4A to 4C. Considering these four kinds, the adjacent
blocks that may be available blocks are 20 kinds as shown in FIGS. 4A to
4C. In other words, there are four kinds for size 16×16 as shown in
FIG. 4A, 10 kinds for size 16×8 as shown in FIG. 4B, and six kinds
for size 8×8 as shown in FIG. 4C. In discrimination of the block
size (S102), the available block is searched for according to the block
size from 20 kinds of blocks. For example, when the size of the available
block is assumed to be only size 16×16, the available blocks
determined by this block size are four kinds of blocks of size
16×16 as shown in FIG. 4A. In other words, the available blocks are
a block on the upper left side of the to-be-encoded block, a block on the
upper side of the to-be-encoded block, and a block on the left side of
the to-be-encoded block and a block on the upper right side of the
to-be-encoded block. In addition, even if the macroblock size was
expanded not less than size 16×16, it can be the available block
similarly to the macroblock size of 16×16. For example, when the
macroblock size is 32×32, the block size for motion compensated
prediction of the adjacent block are four kinds of size 32×32, size
32×16, size 16×32, and size 16×16, and the adjacent
blocks that may be the available blocks are 20 kinds.

[0043] There will be described the determination of the unidirectional
prediction or bidirectional prediction which is executed by the
acquisition/selection module 110 (S103) with reference to FIG. 5.

[0044] For example, the block size is limited to 16×16, and the
unidirectional or bidirectional prediction of the adjacent block with
respect to the to-be-encoded block is assumed to be a case as shown in
FIG. 5. In discrimination of the unidirectional or bidirectional
prediction (S103), the available block is searched for according to the
direction of prediction. For example, the adjacent block having a
prediction direction L0 is assumed to be an available block determined in
the prediction direction. In other words, the upper, left and upper right
blocks of the to-be-encoded blocks shown in FIG. 5 (a) are available
blocks determined in the prediction direction. In this case, the upper
left block of the to-be-encoded blocks is not employed. When the adjacent
block including the prediction direction L1 is assumed to be the
available block determined in the prediction direction, the upper left
and upper blocks of the to-be-encoded blocks shown in FIG. 5 (b) are
available blocks determined in the prediction direction. In this case,
the left and upper right blocks of the to-be-encoded blocks are not
employed. When the adjacent block including the prediction direction
L0/L1 is assumed to be the available block determined in the prediction
direction, only the upper block of the to-be-encoded blocks shown in FIG.
5 (c) is the available block determined in the prediction direction. In
this case, the left, upper left and upper right blocks of the
to-be-encoded blocks are not employed. In addition, the prediction
direction L0 (L1) corresponds to the prediction direction of the L0
prediction (L1 prediction) in AVC.

[0045] There will be described the selection information encoder 112
referring to flowchart shown in FIG. 6.

[0046] The available block of the encoded block having a motion vector is
searched for from among adjacent blocks adjacent to the to-be-encoded
block, and the available block information determined by the block size
and the unidirectional or bidirectional prediction is acquired (S201).
The code tables corresponding to the number of available blocks as shown
in FIG. 8 are switched using this available block information (S202). The
selection information 17 sent from the acquisition/selection module 110
is subjected to variable length coding using a changed code table (S203).

[0047] An example of an index of selection information is explained
referring to FIG. 7 next.

[0048] When there is no available block as shown in FIG. 7 (a), the
selection information is not sent because the present invention is
inapplicable to this block. When there is one available block as shown in
FIG. 7 (b), the selection information is not sent because a motion vector
of an available block used for motion compensation of the to-be-encoded
block is determined in unique. When there are two available blocks as
shown in FIG. 7 (c), the selection information of an index 0 or 1 is
sent. When there are three available blocks as shown in FIG. 7 (d), the
selection information of an index 0, 1 or 2 is sent. When there are four
available blocks as shown in FIG. 7 (e), the selection information of an
index 0, 1, 2 or 3 is sent.

[0049] In addition, as an example of setting an index of the available
block, an example of setting the index to the available block in order of
the left, upper left, upper and upper right of the to-be-encoded blocks
is shown in FIG. 7. In other words, the index is set to the block to be
used except for the block which is not used.

[0050] There will be described a code table of the selection information
17 referring to FIG. 8 next.

[0051] The selection information encoder 112 switches the code table
according to the number of available blocks (S202). As mentioned above,
when there are two or more available blocks, the selection information 17
must be encoded.

[0052] At first when there are two available blocks, indexes 0 and 1 are
needed, and the code table is indicated by the table on the left side of
FIG. 8. When there are three available blocks, indexes 0, 1 and 2 are
needed, and the code table is indicated by the table on the center of
FIG. 8. When there are four available blocks, indexes 0, 1, 2, 3 and 4
are needed, and the code table is indicated by the table on the right
side of FIG. 8. These code tables are switched according to the number of
available blocks.

[0053] There will be explained an encoding method of the selection
information.

[0054] FIG. 9 shows a schematic diagram of a structure of syntax used in
this embodiment.

[0055] The syntax comprises mainly three parts, wherein High Level Syntax
801 is filled with syntax information of the upper layer not less than a
slice. Slice Level Syntax 804 specifies information necessary for every
slice, Macroblock Level Syntax 807 specifies a variable length coded
error signal or mode information which is needed for every macroblock.

[0057] The syntax information necessary for this embodiment is macroblock
layer syntax 808. The syntax is described hereinafter.

[0058] The "available_block_num" shown in FIGS. 10 (a) and (b) indicates
the number of available blocks. When this is two or more, it is necessary
to encode the selection information. In addition, the "mvcopy_flag"
indicates a flag representing whether the motion vector of the available
block is used in the motion compensated prediction. When there are one or
more available blocks and the flag is "1", the motion vector of the
available block can be used in the motion compensated prediction.
Further, the "mv_select_info" indicates the selection information, and
the code table is as described above.

[0059] FIG. 10 (a) shows a syntax when selection information is encoded
after "mb_type." When, for example, the block size is only size
16×16, the "mvcopy_flag and mv_select_info" needs not be encoded if
the "mb_type" is other than 16×16. If mb_type is 16×16,
mvcopy_flag and mv_select_info are encoded.

[0060] FIG. 10 (b) shows a syntax when selection information is encoded
before mb_type. If, for example, mvcopy_flag is 1, it is not necessary to
encode mb_type. If mv_copy_flag is 0, mb_type is encoded.

[0061] In this embodiment, what order may be employed in a scan order for
encoding. For example, a line scan or a Z scan is applicable to the
present invention.

[0062] There will be a video decoding apparatus related to another
embodiment with reference to FIG. 11.

[0063] The coded data 18 output from the video encoding apparatus of FIG.
1 is input to a demultiplexer 201 of the video decoding apparatus as
encoded data 21 to be decoded through a storage system or a transmission
system. The demultiplexer 201 demultiplexes the encoded data 21 to
separate the encoded data 21 into quantization orthogonal transformation
coefficient information and selection information. The output terminal of
the demultiplexer 201 is connected to a variable length decoder 202. The
variable length decoder 202 decodes the quantization orthogonal
transformation coefficient information and the selection information. The
output terminal of the variable length decoder 202 is connected to an
adder 206 via a dequantizer 204 and an inverse orthogonal transformer
205. The dequantizer 204 dequantizes the quantized orthogonal
transformation coefficient information to transform it to an orthogonal
transformation coefficient. The inverse orthogonal transformer 205
subjects the orthogonal transformation coefficient to inverse orthogonal
transform to generate a prediction error signal. The adder 206 adds the
prediction error signal to the predictive coded video signal from a
prediction image generator 207 to produce a video signal.

[0064] The prediction image generator 207 includes a prediction module 208
and an acquisition/selection module 209. The acquisition/selection module
209 selects a selection block from available blocks using selection
information 23 decoded by the selection information decoder 203 of the
variable length decoder 202 and sends a motion vector 25 of the selection
block to a prediction module 208. The prediction module 208
motion-compensates a reference image stored in a frame memory 210 by the
motion vector 25 to produce a prediction image.

[0065] The action of the video decoding apparatus of the above
configuration will be described referring to flowchart of FIG. 12.

[0066] The demultiplexer 201 demultiplexes the coded data 21 (S31), and
the variable length decoder 202 decodes it to produce quantized
orthogonal transformation coefficient information 22 (S32). In addition,
the selection information decoder 203 checks the condition of the
adjacent block adjacent to a to-be-decoded block and decode it by
switching code tables according to the number of the available blocks of
the adjacent encoded blocks having motion vectors as shown in FIG. 8,
similarly to the selection information encoder 112 of the encoding
apparatus, thereby to produce the selection information 23 (S33).

[0067] The quantized orthogonal transformation coefficient information 22
that is information output from the variable length decoder 202 is sent
to the dequantizer 204, and the selection information 23 which is
information output from selection information decoder 203 is sent to the
acquisition/selection module 209.

[0068] The quantization orthogonal transformation coefficient information
22 is dequantized with the dequantizer 204 (S34), and then subjected to
inverse orthogonal transform with the inverse orthogonal transformer 205
(S35). As a result, the prediction error signal 24 is obtained. The adder
206 adds the prediction image signal to the prediction error signal 24 to
reproduce a video signal 26 (S36). The reproduced video signal 27 is
stored in the frame memory 210 (S37).

[0069] The prediction image generator 207 generates the prediction image
26 using the motion vector of the available block that is the decoded
block neighboring the to-be-decoded block and having a motion vector, the
motion vector being a motion vector of a selection block selected on the
basis of the decoded selection information 23. The acquisition/selection
module 209 selects the selection block from the adjacent blocks on the
basis of the available block information of the adjacent block and the
selection information 23 decoded with the selection information decoder
203, similarly to the acquisition/selection module 110 of the coding
apparatus. The prediction module 208 generates the prediction image 26
using this selected motion vector 25, and sends it to the adder 206 to
produce a video signal 27.

[0070] According to the present invention, encoding the selection
information according to the number of available blocks allows the
selection information to be sent using a suitable code table, resulting
in that additional information of the selection information can be
reduced.

[0071] In addition, using the motion vector of the available block for the
motion compensated prediction of the to-be-encoded block allows the
additional information on the motion vector information to be reduced.

[0072] Furthermore, the motion vector calculation method is not fixed and
improves degrees of freedom of motion vector calculation as compared with
a direct mode by selecting an appropriate one from among the available
blocks.

[0073] The technique of the present invention recited in the embodiment of
the present invention may be executed with a computer and also may be
distributed as a program capable of causing a computer to execute by
storing it in a recording medium such as a magnetic disk (flexible disk,
a hard disk, etc.), an optical disk (CD-ROM, DVD, etc.), a semiconductor
memory, etc.

[0074] In addition, the present invention is not limited to the above
embodiments and may be modified in component within a scope without
departing from the subject matter of the invention.

[0075] In addition, it is possible to provide various inventions by
combining appropriately a plurality of components disclosed in the above
embodiments. For example, some components may be deleted from all
components shown in the embodiments. Further, the components of different
embodiments may be combined appropriately.

[0076] The apparatus of the present invention is applied to an image
compression process in a communication, a storage and a broadcast.

[0077] While certain embodiments have been described, these embodiments
have been presented by way of example only, and are not intended to limit
the scope of the inventions. Indeed, the novel embodiments described
herein may be embodied in a variety of other forms; furthermore, various
omissions, substitutions and changes in the form of the embodiments
described herein may be made without departing from the spirit of the
inventions. The accompanying claims and their equivalents are intended to
cover such forms or modifications as would fall within the scope and
spirit of the inventions.