Sign In to Follow Application
View All Documents & Correspondence

“Image Decoder Apparatus&Nbsp; Image Encoder Apparatus And Method And Program Thereof”

Abstract: A first decoding processing unit 521 obtains a difference motion vector by performing decoding of an encoded stream. A second decoding processing unit 522 obtains prediction motion vector selecting information by decoding the encoded stream. A motion vector selecting unit 525 sets candidates of the prediction motion vector as to the block to be decoded, and selects a motion vector indicated in prediction motion vector selecting information, from prediction motion vector candidates,; and an adding unit 526 calculates a motion vector of the block to be decoded by adding the difference motion vector to the prediction motion vector. The prediction motion vector is optimized, thereby improving encoding efficiency and image quality.

Get Free WhatsApp Updates!
Notices, Deadlines & Correspondence

Patent Information

Application #
Filing Date
30 November 2012
Publication Number
15/2016
Publication Type
INA
Invention Field
ELECTRONICS
Status
Email
Parent Application

Applicants

SONY CORPORATION
1-7-1 Konan  Minato-ku  Tokyo 108-0075

Inventors

1. KENJI KONDO
c/o SONY CORPORATION  1-7-1 Konan  Minato-ku  Tokyo 108-0075

Specification

IMAGE DECODING DEVICE, IMAGE ENCODING DEVICE AND METHOD
THEREOF, AND PROGRAM
Technical. Field
[0001]
The present invention relates to an image decoding
device, an image encoding device and the method thereof and
a program. More specifically, improvement of encoding
efficiency and image quality will be realized by performing
optimization of prediction motion vector.
Background Art
[0002]
In recent years, there has come into widespread use
devices which handle image information as digital in order
to perform highly effective information transmission and
storage at that time, for example, compliant to formats such
as MPEG or the like to compress the image by orthogonal
transform such as discrete cosine transform or the like and
motion compensation, both in broadcasting and general
households.
[0003]
In particular, MPEG2 (ISO / IEC 13818-2) is defined as
SP263812
a general-purpose image encoding format, and has widely been
employed now by a broad range of applications for
professional usage and for consumer usage. By employing the
MPEG2 compression format, a code amount (bit rate) of 4
through 8 Mbps is allocated in the event of an interlaced
scanning image of standard resolution having 720 x 480
pixels, for example, whereby excellent image quality can be
realized. Also, a code amount (bit rate) of 18 through 22
Mbps is allocated in the event of an interlaced scanning
image of high resolution having 1920 x 1088 pixels, whereby
excellent image quality can be realized.
[0004]
With MPEG2, high image quality encoding adapted to
broadcasting usage is a principal object, but does not
handle a lower code amount (bit rate) than the code amount
of MPEG1, i.e., an encoding format having a higher
compression rate. According to the spread of personal
digital assistants, it has been expected that needs for such
an encoding format will increase from now on, and in
response to this, standardization of the MPEG4 encoding
format has been performed. With regard to an image encoding
format, the specification thereof was confirmed as
international standard as ISO/IEC 14496-2 in December in
1998.
[0005]
SP263812
Further, in recent years, standardization of a standard
called H.26L (ITU-T Q6/l6 VCEG) has progressed, originally
intended for image encoding for videoconferencing usage.
With H.26L, it has been known that as compared to a
conventional encoding format such as MPEG2 or MPEG4, though
greater computation amount is required for encoding and
decoding thereof, higher encoding efficiency is realized.
Also, currently, as part of activity of MPEG4,
standardization based on this H.26L, to realize higher
encoding efficiency, is being performed as Joint Model of
Enhanced-Compression Video Coding. As for the schedule of
standardization, this has been made an international
Standard called H.264 and MPEG-4 Part 10 (Advanced Video
Coding, hereinafter written as H.264/AVC) by March of 2003.
[0006]
Also, with the H.264/AVC format, the calculating amount
is enormous because search of motion vectors is performed in
each of multiple block sizes, and accordingly processing
time is increased and higher processing capability is
required to the computing circuit. Thus, an invention
according to PTL 1 has been made so as to shorten processing
time at the time of searching motion vector and reduce
computing amount, by using a median of motion vectors of
adjacent blocks as a prediction motion vector.
Citation List
SP263812
Patent Literature
[0007]
PTL 1: Japanese Unexamined Patent Application
Publication No. 2006-025033
Summary of Invention
Technical Problem
[0008]
Incidentally, with encoding of image data, reduction of
encoding amount is performed by taking difference between a
motion vector and a prediction motion vector of a block to
be encoded, and encoding the difference motion vector
thereof and including this in stream information. Here, in
the event of using a middle value (median) of motion vectors
in adjacent blocks as a prediction motion vector, such as
with the H.264/AVC format, the median is not necessarily an
optimal prediction motion vector.
[0009]
Fig. 1 is a diagram to illustrate a conventional
deciding method of a prediction motion vector. Note that,
of adjacent blocks adjacent to a block to be encoded, with
an encoded block where encoding processing has been already
performed at the time of the block to be encoded being
subjected to encoding processing, a motion vector of the
adjacent block on the left side, for example, will be called
motion vector MV A. Also, the motion vectors of the
SP263812
adjacent blocks on the upper side and upper-right side will
be called motion vectors MV -B and MV C, respectively.
[0010]
As shown (A) in Fig. 1, in the event of the prediction
block size (motion compensation block size) being small,
there are many cases where there is little difference
between motion vector MVob of the block to be encoded and
motion vectors MV A, MV-B, and MV C of the adjacent blocks.
That is to say, prediction precision is higher when the
middle value MV and is used. On the contrary, as shown (B)
in Fig. 1, in the event of the prediction block size being
large, the adjacent blocks include regions farther away from
the block to be encoded. Accordingly, a case occurs where
there is a large difference between the middle value MV and
and the motion vector MVob of the block to be encoded, which
will lead to deterioration of the prediction precision, as
compared with the case where the prediction block size is
smaller.
[0011]
Accordingly, an object of the present invention is to
provide an image decoding device, an image encoding device
and the method thereof, and a program which can realize
improvement of encoding efficiency and image quality by
performing optimization of the prediction motion vector.
Solution to Problem
SP263812
[0012]
A first aspect of the present invention is an image
decoding device including: a first decoding processing unit
configured to obtain a difference motion vector by
performing decoding of an encoded stream; a second decoding
processing unit configured to obtain prediction motion
vector selecting information by decoding the encoded stream;
a motion vector selecting unit configured to set prediction
motion vector candidates as to a block to be decoded, and
select a motion vector, indicated in the prediction motion
vector selecting information, from prediction motion vector
candidates; and an adding unit configured to calculate a
motion vector of the block to be decoded by adding the
difference motion vector to the prediction motion vector.
[0013]
With this invention, with regard to a block to be
decoded, candidates of prediction motion vectors are set
using motion vectors of the adjacent blocks which have been
decoded and which are adjacent to this block. Also,
candidates of prediction motion vectors are set in each case
where case classifying is performed according to the
difference of the motion vectors of adjacent blocks which
have been decoded, for example. Here, in the event that the
size of the block is great, more candidates of the
prediction motion vector are set as compared with a case
- 7 -
SP263812
where the block size is smaller. Also, for example, case
classifying is performed according to the difference of the
motion vector of the adjacent block which has decoded, and
the candidate of the prediction motion vector is set in each
case. Also, motion vectors with difference occurring which
exceeds a threshold value are each taken prediction motion
vector candidates. Out of these candidates, the motion
vector indicated in the prediction motion vector selecting
information obtained by decoding an encoded stream is
selected as a prediction motion vector. This prediction
motion vector and the difference motion vector obtained by
decoding the encoded stream are added, and the motion vector
of the block to be decoded is calculated.
[0014]
A second aspect of the present invention is an image
decoding method including: a process of obtaining a
difference motion vector by decoding an encoded stream; a
process of obtaining prediction motion vector selecting
information by decoding the encoded stream; a process of
setting prediction motion vector candidates as to a block to
be decoded, and selecting a motion vector, indicated in
prediction motion vector selecting information, from
prediction motion vector candidates; and a process of
calculating a motion vector of the block to be decoded by
adding the difference motion vector to the prediction motion
SP263812
vector.
[0015]
A third aspect of the present invention is a program
causing a computer to execute image decoding, the program
causing the computer to execute: a procedure of obtaining
the difference motion vector by decoding an encoded stream;
a procedure of obtaining prediction motion vector selecting
information by decoding the encoded stream; a procedure of
setting prediction motion vector candidates as to a block to
be decoded, and selecting a motion vector, indicated in the
prediction motion vector selecting information, from
prediction motion vector candidates; and a procedure of
calculating a motion vector of the block to be decoded by
adding the difference motion vector to the prediction motion
vector.
[0016]
A fourth aspect of the present invention is an image
encoding device including: a motion vector selecting unit
configured to set prediction motion vector candidates as to
a block to be encoded, and select from the candidates a
motion vector where encoding efficiency is best, as a
prediction motion vector; a first encoding processing unit
configured to perform encoding of a difference motion vector
indicating the difference between the prediction motion
vector selected by the motion vector selecting unit and a
SP263812
motion vector of the block to be encoded; and a second
encoding processing unit configured to perform encoding of
prediction motion vector selecting information indicating
which motion vector has been selected from the prediction
motion vector candidates.
[0017]
With this invention, with a block to be encoded, a
candidates of prediction motion vectors are set using motion
vectors of adjacent blocks which have been decoded and which
are adjacent to this block. Also, the candidates of the
prediction motion vector are set in each case where case
classifying is performed according to the difference of the
motion vector of the adjacent block which has been decoded,
for example. Here, in the event that the size of the block
is,great, more candidates of the prediction motion vector
are set as compared with the case where the block size is
smaller. Also, for example, case classifying is performed
according to the difference of the motion vector of the
adjacent block is performed, and the candidate of the
prediction motion vector is set in each case. Also, motion
vectors with difference occurring which exceeds a threshold
value are each taken prediction motion vector candidates.
Out of these candidates, a prediction motion vector is
selected, and the difference motion vector indicating the
difference between the selected prediction motion, vector and
- 10 -
SP263812
the motion vector of the block to be encoded is encoded.
Also, in the event that multiple candidates of the
prediction motion vector exist, prediction motion vector
selecting information indicating which motion vector has
been selected from the multiple candidates is encoded.
Further, with the selecting of the prediction motion vector
from the candidates, the motion vector where the encoding
efficiency is best is selected as the prediction motion
vector.
[0018]
A fifth aspect of the present invention is an image
decoding method comprising: a process of setting prediction
motion vector candidates as to a block to he encoded, and
selecting from the candidates a motion vector where encoding
efficiency is best, as a prediction motion vector; a process
of performing encoding of a difference motion vector
indicating the difference between the selected prediction
motion vector and a motion vector of the block to be
encoded; and a process of performing encoding of the
prediction motion vector selecting information indicating
which motion vector has been selected from the prediction
motion vector candidates.
[0019]
A sixth aspect of the present invention is a program
causing a computer to execute image decoding, the program
- 11 -
SP263812
causing the computer to execute: a procedure of setting
prediction motion vector candidates as to a block to be
encoded, and selecting from the candidates a motion vector
where the encoding efficiency is the best, as a prediction
motion vector; a procedure of performing encoding of a
difference motion vector indicating the difference between
the selected prediction motion vector and a motion vector of
the block to be encoded; and a procedure of performing
encoding of the prediction motion vector selecting
information indicating which motion vector has been selected
from the prediction motion vector candidates.
[0020]
Note that a program according to the present invention
is a program which can be provided by recoding medium,
communication medium, and storage medium such as optical
disc, magnetic disk, and semiconductor memory, for example,
or communication medium such as a network, which are
provided with a computer-readable form as to a generalpurpose
computer system which can execute various programs.
Providing such a program with a computer-readable form
enables realizing processing in accordance with the program
on the computer system.
Advantageous Effects of Invention
[0021]
According to the present invention, in image decoding,
- 12 -
SP263812
as to the block to be decoded, a candidate of the prediction
motion vector is set using this block and the motion vector
of the adjacent block which has been decoded. Also, the
motion vector indicated in the prediction motion vector
selecting information obtained by performing lossless
decoding on an encoded stream is selected from the
candidates so as to be prediction motion vector. The motion
vector of the block to be decoded is calculated by adding
the difference motion vector obtained by performing lossless
decoding on theses prediction motion vector and encoded
stream. Also, with encoding of image, a candidate of the
prediction motion vector is set as to the block to be
encoded, and the motion vector where the encoding efficiency
is best is selected from this candidate as prediction motion
vector. Also, encoding of the difference motion vector
indicating the difference of the prediction motion vector
and the motion vector of the block to be encoded, and the
prediction motion vector selecting information indicating
which motion vector has been selected from the candidates
are performed: Thus, the motion vector of which the
encoding efficiency is best is selected from the candidates
of the prediction motion vectors and used, and accordingly
reduction of code amount needed for transmission of the
motion vector is realized, thereby improving encoding
efficiency. Also, along with the reduction of the code
- 13 -
SP263812
amount needed for the transmission of the motion vector,
raising bit rate of the quantized data can be enabled and
image quality can be improved.
Brief Description of Drawings
[0022]
[Fig. 1] Fig. 1 is a block diagram to illustrate a
conventional deciding method of a prediction motion vector.
[Fig. 2] Fig. 2 is a diagram illustrating a
configuration of an image encoding device.
[Fig. 3] Fig. 3 is a diagram to illustrate case
classifying in accordance with prediction block sizes, and
candidates of the prediction motion vectors in each case.
[Fig. 4] Fig. 4 is a diagram illustrating a
configuration regarding motion vectors at a lossless
encoding unit.
[Fig. 5] Fig. 5 is a diagram illustrating prediction
block sizes used in image encoding processing.
[Fig. 6] Fig. 6 is a flowchart illustrating operation
of the image encoding processing.
[Fig. 7] Fig. 7 is a flowchart illustrating prediction
processing.
[Fig. 8] Fig. 8 is a flowchart illustrating intra
prediction processing.
[Fig. 9] Fig. 9 is a flowchart illustrating inter
prediction processing.
14 -
SP263812
[Fig. 10] Fig. 10 is a flowchart illustrating encoding
processing regarding the motion vector performed at lossless
encoding unit.
[Fig. 11] Fig. 11 is a diagram illustrating a
configuration of an image decoding device.
[Fig. 12] Fig. 12 is a diagram illustrating a
configuration regarding motion vectors at a lossless
decoding unit.
[Fig. 13] Fig. 13 is a flowchart illustrating operation
of image decoding processing.
[Fig. 14] Fig. 14 is a flowchart illustrating decoding
processing regarding the motion vector, performed at the
lossless decoding unit.
[Fig. 15] Fig. 15 is a flowchart illustrating
prediction processing.
[Fig. 16] Fig. 16 is a diagram to illustrate case
classifying in accordance with differences of motion vectors
of adjacent blocks and candidates of prediction motion
vectors in each case.
[Fig. 17] Fig. 17 is a diagram illustrating another
configuration regarding a motion vector, at a lossless
encoding unit.
[Fig. 18] Fig. 18 is a flowchart illustrating other
encoding processing regarding the motion vector, performed
at the lossless encoding unit.
- 15 -
sP263812
[Fig. 19] Fig. 19 is a diagram illustrating a
configuration regarding a motion vector, at a lossless
decoding unit.
[Fig. 20] Fig. 20 is a flowchart illustrating other
decoding processing regarding the motion vector performed at
the lossless decoding unit.
[Fig. 21] Fig- 21 is a diagram to illustrate case
classifying in accordance with continuity of blocks where
equivalent movement occurs.
[Fig. 22] Fig. 22 is a diagram illustrating candidates
of prediction motion vectors in each case.
[Fig. 23] Fig. 23 is a flowchart illustrating other
encoding processing regarding the motion vector, performed
at the lossless encoding unit.
[Fig. 24] Fig. 24 is a flowchart illustrating other
decoding processing regarding the motion vector, performed
at the lossless decoding unit.
[Fig. 25] Fig. 25 is a diagram exemplifying probability
of occurrence in each candidate of prediction motion vector.
[Fig. 26] Fig. 26 is a diagram exemplifying a schematic
configuration of a television receiver.
[Fig. 27] Fig. 27 is a diagram exemplifying a schematic
configuration of a cellular telephone.
[Fig. 28] Fig. 28 is a diagram exemplifying a schematic
configuration of a recording/playback device.
- 16 -
SP263812
[Fig. 29] Fig. 29 is a diagram exemplifying a schematic
configuration of an imaging apparatus.
Description of Embodiments
[0023]
Hereinafter, embodiments of the present invention will
be described. Note that description will proceed in the
following order.
1. Configuration of Image Encoding Device
2. Prediction Method of Motion Vector
3. Configuration of Lossless Encoding Unit
4. Operation of Image Encoding Device
5. Configuration of Image Decoding Device
6. Configuration of Lossless Decoding Unit
7. Operation of Image Decoding Device
8.-Other Prediction Method of Motion Vector
9. Other Configuration of Lossless Encoding Unit
10. Operation of Lossless Encoding Unit of Other
Configuration
11.`Other configuration of Lossless Decoding Unit
12. Operation of Lossless Decoding Unit with other
Configuration
13. Other Prediction Method of Motion Vector
14. Other Configuration and Operation of Lossless Encoding
Unit
15. Other Configuration and Operation of Lossless Decoding
- 17 -
SP263812
Unit
16. Encoding Processing of Prediction Motion Vector
Identification Information
17. Case of Software Processing
18. Case of Application to Electronic Equipment
[0024]
<1. Configuration of Image Encoding Device>
Fig. 2 illustrates a configuration of an image encoding
device. The image encoding device 10 includes an
Analog/Digital conversion unit (A/D conversion unit) 11, a
screen rearranging buffer 12, a subtracting unit 13, an
orthogonal transform unit 14, a quantization unit 15, a
lossless encoding unit 16, a storage buffer 17, and a rate
control unit 18. Further, the image encoding device 10
includes an inverse quantization unit 21, an inverse
orthogonal transform unit 22, an adding unit 23, a
deblocking filter 24, a frame memory 25, a selector 26, an
intra prediction unit 31, a motion prediction/compensation
unit 32, and a prediction image/optimal mode selecting unit
33.
[0025]
The A/D conversion unit 11 performs conversion of
analog image signals into digital image data and outputs to
the screen rearranging buffer 12.
[0026]
- 18 -
SP263812
The screen rearranging buffer 12 performs rearranging
of frames as to the image data output from the A/D
conversion unit 11. The screen rearranging buffer 12
performs rearranging of the frames according to a GOP (Group
of Pictures) structure relating to the encoding processing,
and outputs the image data after rearranging to the
subtracting unit 13, intra prediction unit 31, and motion
prediction/compensation unit 32.
[0027]
The image data output from the screen rearranging
buffer 12 and the prediction image data selected at the
later-described prediction image/optimal mode selecting unit
33 are supplied to the subtracting unit 13. The subtracting
unit 13 calculates prediction error data which is a
difference between the image data output from the screen
rearranging buffer 12 and the prediction image data supplied
from the prediction image/optimal mode selecting unit 33,
and outputs to the orthogonal transform unit 14.
[0028]
The orthogonal transform unit 14 performs orthogonal
transform processing such as discrete cosine transform
(DCT : Discrete Cosine Transform), Karhunen-Loeve transform
or the like, as to the prediction error data output from the
subtracting unit 13. The orthogonal transform unit 14
outputs the transform coefficient data obtained by
- 19 -
SP263812
performing orthogonal transform processing to the
quantization unit 15.
[0029]
The transform coefficient data output from the
orthogonal transform unit 14 and rate control signals from
the later-described rate control unit 18 are supplied to the
quantization unit 15. The quantization unit 15 performs
quantization of the transform coefficient data and outputs
the quantized data to the lossless encoding unit 16 and
inverse quantization unit 21. Also, the quantization unit
15 switches the quantized parameter (quantization scale)
based on the rate control signals from the rate control unit
18 so as to change bit rate of the quantized data.
[0030]
The quantized data output from the quantization unit 15
and prediction mode information from the later-described
intra prediction unit 31, motion prediction/compensation
unit 32, and prediction image/optimal mode selecting unit 33
are supplied to the lossless encoding unit 16. Note in the
prediction mode information, according to the intra
prediction or inter prediction, macroblock type indicating a
prediction block size, prediction mode, motion vector
information, reference picture information and the like are
included. The lossless encoding unit 16 performs lossless
encoding processing as to the quantized data, for example
- 20 -
SP263812
using variable length coding, arithmetic coding, or the like,
to generate an encoded stream which is then output to the
storage buffer 17. Also, the lossless encoding unit 16
performs lossless encoding on the prediction mode
information and adds to, for example, header information of
the encoded stream. Also, the lossless encoding unit 16
sets the candidates of the prediction motion vector and of
these candidates, selects a motion vector of which the
encoding efficiency is best as a prediction motion vector.
The lossless encoding unit 16 performs lossless encoding of
the prediction motion vector which indicates the difference
between this prediction motion vector and a motion vector of
a block to be encoded, and prediction motion vector
selection information indicating which motion vector has
been selected from candidates of the prediction motion
vector, and adds to an encoded stream.
[0031]
The storage buffer 17 stores an encoded stream from the
lossless encoding unit 16. Also, the storage buffer 17
outputs the stored encoded stream with a transmission speed
in accordance with the transmission path.
[0032]
The rate control unit 18 performs monitoring of a
available capacity of the storage buffer 17, generates a
rate control signal according to the available capacity and
- 21 -
SP263812
outputs to the quantization unit 15. The rate control unit
18 obtains, for example, information indicating the
available capacity from the storage buffer 17. In the event
that there is little capacity available, the rate control
unit 18 lowers the bit rate of the quantized data by the
rate control signals. Also, in the event that there is much
capacity available at the storage buffer 17, the rate
control unit 18 raises the bit rate of the quantized data by
the rate control signals.
[0033]
The inverse quantization unit 21 performs inverse
quantization processing of the quantized data supplied from
the quantization unit 15. The inverse quantization unit 21
outputs the transform coefficient data obtained by
performing inverse quantization processing to the inverse
orthogonal transform unit 22.
[0034]
The inverse orthogonal transform unit 22 outputs the
data obtained by performing inverse transform processing of
the transform coefficient data supplied from the inverse
quantization unit 21 to the adding unit 23.
[0035]
The adding unit 23 adds data supplied from the inverse
orthogonal transform unit 22 and prediction image data
supplied from the prediction image/optimal mode selecting
- 22 -
SP263812
unit 33 to generate decoded image data, and outputs to the
deblocking filter 24 and frame memory 25.
[0036]
The deblocking filter 24 performs filtering processing
to decrease block distortion which occurs at the time of
image encoding. The deblocking filter 24 performs filtering
processing to remove the block distortion from the decoded
image data supplied from the adding unit 23, and outputs the
decoded image data after filtering processing in the frame
memory 25.
[0037]
The frame memory 25 holds the decoded image data
supplied from the adding unit 23 and the decoding image data
after filtering processing supplied from the deblocking
filter 24.
[0038]
The selector 26 supplies decoding image data before
filtering processing, which has been read out from the frame
memory 25 to perform intra prediction, to the intra
prediction unit 31. Also, the selector 26 supplies decoding
image data after filtering processing, which has been read
out from the frame memory 25 to perform inter prediction, to
the motion prediction/compensation unit 32.
[0039]
The intra prediction unit 31 performs intra prediction
- 23 -
SP263812
processing of all the candidate intra prediction modes,
using image data of the image to be encoded output from the
screen rearranging buffer 12 and decoded image data before
filtering processing read out from the frame memory 25.
Further, the intra prediction unit 31 calculates a cost
function value as to each intra prediction mode and selects
the intra prediction mode of which the calculated cost
function value is smallest, that is, the intra prediction
mode where the encoding efficiency becomes best as an
optimal intra prediction mode. The intra prediction unit 31
outputs prediction image data generated in the optimal intra
prediction mode, prediction mode information regarding the
optimal intra prediction mode, and a cost function value in
the optimal intra prediction mode, to the prediction
image/optimal mode selecting unit 33. Also, to obtain
generated code amount used at the time of calculating a cost
function value as described later, the intra prediction unit
31 outputs prediction mode information regarding the intra
prediction mode to the lossless encoding unit 16, in the
intra prediction processing of each intra prediction mode.
[0040]
The motion prediction/compensation unit 32 performs
motion prediction/compensation processing for all prediction
block sizes (motion compensation block size) corresponding
to macroblocks. The motion/compensation unit 32 detects
- 24 -
SP263812
motion vectors in each image of each prediction block size
in image to be encoded read out from the screen rearranging
buffer 12, using decoded image data after filtering
processing read out from the frame memory 25. Further, the
motion prediction/compensation unit 32 performs motion
compensation processing on the decoded image based on the
detected motion vector to generate prediction image. Also,
the motion prediction/compensation unit 32 calculates a cost
function value to each prediction block size, and selects a
prediction block size of which the calculated cost function
value is smallest, that is, a prediction block size of which
the encoding efficiency is best as an optimal interprediction
mode. The motion prediction/ compensation unit 32
outputs prediction image data generated in the optimal inter
prediction mode and prediction mode information regarding
the optimal inter prediction mode, and a cost function value
in the optimal inter prediction mode to the prediction
image/optimal mode selecting unit 33- Also, to obtain
generated code amount used at the time of calculating cost
function values, the motion prediction/compensation unit 32
outputs prediction mode information regarding the inter
prediction mode to the lossless encoding unit 16, in inter
prediction processing with each prediction block size. Note
that the motion prediction/compensation unit 32 performs
prediction of skipped macroblocks and direct mode, as inter
-- 25 -
SP263812
prediction modes as well.
[0041]
Also, the motion prediction/compensation unit 32
calculates a cost function value for each candidate of the
prediction motion vector, in order to select a motion vector
of which the encoding efficiency is best, from candidates of
the prediction motion vector, at the lossless encoding unit
16. The motion prediction/compensation unit 32 notifies the
calculated a cost function values to the lossless encoding
unit 16. The cost function values for each candidate of
prediction motion vector may be calculated when the cost
function values are calculated in each prediction block size,
and cost function values in each candidate of prediction
motion vector may be calculated in the decided optimal inter
prediction mode.
[0042]
The prediction image/optimal mode selecting unit 33
compares a cost function value supplied from the intra
prediction unit 31 to a cost function value supplied from
the motion prediction/compensation unit 32 in increments of
macroblocks, and selects the one of which the cost function
value is less than the other as the optimal mode where the
encoding efficiency will be best. Also, the prediction
image/optimal mode selecting unit 33 outputs the prediction
image data generated in the optimal mode to the subtracting
- 26 -
SP263812
unit 13 and adding unit 23. Further, the prediction
image/optimal mode selecting unit 33 outputs the prediction
mode information in the optimal mode to the lossless
encoding unit 16. Note that the prediction image/optimal
mode selecting unit 33 performs intra prediction or inter
prediction in increments of slices.
[0043]
<2. Prediction Method of Motion Vector>
In the present application, case classifying according
to the prediction block size (motion compensation block
size) is performed, and a candidate of the prediction motion
vector is set for each case beforehand. Calculation of the
encoding amount is then performed using the candidates and a
candidate of which the encoding efficiency is best, that is,
a candidate of which the encoding amount is the smallest, is
decided as the prediction motion vector. Here, as described
using Fig. 1, in the case of the prediction block size being
large, the prediction precision of the motion vector may
deteriorate as compared with a case where the prediction
block size is small. Therefore, in the case classifying,
when the prediction block size is large, candidates of the
prediction motion vector are increased, so as to select a
motion vector of which the encoding efficiency is best.
[0044]
Fig. 3 indicates case classifying according to the
- 27 -
SP263812
prediction block size and candidates of prediction motion
vector in each case. For example, in the case of the
prediction block size being equal to or smaller than 8x8
pixels, this will be referred to as case SO (e.g., (A) in
Fig. 3), in the case of the prediction block size being
equal to or greater than 8x8 pixels and equal to or smaller
than 16x16 pixels, as case Si (e.g., (B) in Fig. 3), and in
the case of the prediction block size being equal to or
greater than 16xl6 pixels, as case S2 (e.g., (C) in Fig. 3).
[0045]
In case SO, a motion vector of either one block of the
adjacent blocks which have been encoded, or a middle value
of motion vectors of the adjacent blocks which have been
encoded, is taken as a candidate. Note that, in Fig. 3, a
case is exemplified in which the motion vector MV _A of the
adjacent block on the left side, or the middle value MV and
of the motion vectors MV A, MV B, and MV C of the adjacent
blocks on the left, upper, and upper-right side, is taken as
a candidate.
[0046]
In case Sl, motion vector of any two blocks of the
adjacent blocks which have been encoded are taken as
candidates. Here, in the event that the distance between
two blocks where the motion vectors taken as a candidate is
short, there is concern that the prediction motion vector of
- 28 -
SP263812
which the encoding efficiency is best may not be selected.
For example, in the event that motion vector MV B and MV C
indicated in (B) in Fig. 3 are set as candidates, in the
case of the motion vector of the block to be encoded is near
the motion vector MV A, the prediction motion vector of
which the encoding efficiency is best cannot be selected.
Therefore, in the case of multiple motion vectors of the
adjacent blocks are selectively used and taken as a
candidate of a prediction motion vector, motion vector of
the blocks which are mutually apart among the adjacent
blocks which has been encoded are selected. For example,
let us say that the motion vector MV _A of the left-side
adjacent block is the first candidate, and the motion vector
MV_C of the adjacent block on the upper-right side is the
second candidate.
[0047]
In case S2, more candidates than the ones in case Sl,
that is, all the motion vectors of the adjacent blocks which
have been encoded are taken as candidates. For example, let
us say that the motion vector MV A of the left-side adjacent
block is the first candidate, and the motion vector MV B of
the upper-side adjacent block is the second candidate, and
the motion vector MV C of the adjacent block on the upperright
side is the third candidate. Furthermore, the motion
vector MV Co of the same block as the one to be encoded in
- 29 -
SP263812
the reference picture is taken as the fourth candidate.
[0048]
Thus, case classifying is performed according to the
prediction block size (motion compensation block size) and
the motion vector where the encoding efficiency is best is
decided to be the prediction motion vector, out of the
candidates of the applicable case.
[0049]
<3. Configuration of Lossless Encoding Unit>
Fig. 4 illustrates a configuration regarding motion
vectors at the lossless encoding unit. The lossless
encoding unit 16 includes a motion vector storage unit 161,
a motion vector selection unit 165, a subtracting unit 166,
a first encoding processing unit 167, and a second encoding
processing unit 168.
[0050]
The motion vector storage unit 161 stores a motion
vector of each block to set candidates of the prediction
motion vector, using motion vectors of the adjacent blocks
which have been encoded and are adjacent to the block to be
encoded. Note that the motion vector storage unit 161 may
store the motion vector of the same block as the one to be
encoded in the reference picture, to handle the direct mode.
[0051]
The motion vector selecting unit 165 sets candidates of
- 30 -
5P263812
a prediction motion vector from motion vectors of the
adjacent blocks stored in the motion vector storage unit 161
and motion vector of the same block as the one to be encoded
in the reference picture, based on the prediction block size
information supplied from the motion prediction/compensation
unit 32 and prediction image/optimal mode selecting unit 33.
Also, the motion vector selection unit 165 decides a
prediction motion vector from the candidates of prediction
motion vectors, based on cost function values calculated at
the motion prediction/ compensation unit 32. The motion
vector selecting unit 165 outputs the decided prediction
motion vector to the subtracting unit 166.
[0052]
The subtracting unit 166 calculates a difference motion
vector which is the difference between the motion vector
indicated in the motion vector information from the motion
prediction/compensation unit 32 or prediction image/optimal
mode selecting unit 33; and the prediction motion vector
output from the motion vector selection unit 165. The
subtracting unit 166 outputs thedifference motion vector
information indicating the difference motion vector to the
first encoding processing unit 167.
[0053]
The first encoding processing unit 167 performs
encoding of the difference motion vector information using a
- 31 -
SP263812
variable-length encoding (VLC) table or an arithmetic code.
Also, the second encoding processing unit 168 performs
encoding of prediction block size information and prediction
motion vector selecting information using the VLC table or
arithmetic code. Note that the prediction motion vector
selecting information is the information to indicate which
motion vector has been decided to be the prediction motion
vector out of the candidates for the prediction motion
vector, with a flag being used, for example. The
information encoded in the first encoding processing unit
167 and second encoding processing unit 168 is added to the
header information of the encoded stream as described above.
[0054]
<4. Operation of Image Encoding Device>
, Next, description will be made with regard to
operations of image encoding processing. Fig. 5 illustrates
prediction block sizes to use with the image encoding
processing. With the H.264/AVC format, as shown in (C) and
(D) of Fig. 5, a prediction block size of 16xl6 pixels to
4x4 pixels is stipulated. Also, in the event of the
macroblocks extended further than the H.264/AVC format being
used, e.g., when 32x32-pixel macroblocks are used, for
example the prediction block size shown in (B) of Fig. 5 is
stipulated. Also, for example, when 64x64-pixel macroblocks
are used, e.g., a prediction block size shown in (A) of Fig.
- 32 -
SP263812
5 is stipulated.
[0055]
Note that, in Fig. 5, "Skip/direct" indicates to be a
prediction block size when a skipped macroblock or a direct
mode has been selected at the motion prediction/compensation
unit 32. Also, "ME" indicates that it is motion
compensation block size. Also, "P8x8" indicates that the
size of macroblocks can be further divided into the a lower
sub-hierarchal level.
[0056]
Fig. 6 is a flowchart which illustrates operation of
image encoding processing. In step ST11, the A/D converting
unit 11 performs A/D conversion on the input image signals.
[0057]
In step ST12, the screen rearranging buffer 12 performs
image rearranging. The screen rearranging buffer 12 stores
image data supplied from the A/D converting unit 11 and
performs rearranging from an order for displaying the
pictures to an order for encoding.
[00581
In step ST13, the subtracting unit 13 generates
prediction error data. The subtracting unit 13 calculates
the difference between the image data of images rearranged
in step ST12 and prediction image data selected at the
prediction image/optimal mode selecting unit 33 to generate
- 33 -
SP263812
prediction error data. The data amount of the prediction
error data is smaller than that of the original image data.
Therefore, data amount can be compressed in comparison with
a case where the image is encoded as it is.
[0059]
In step ST14, the orthogonal transform unit 14 performs
orthogonal transform processing. The orthogonal transform
unit 14 performs orthogonal transform on the prediction
error data supplied from the subtracting unit 13.
Specifically, orthogonal transform such as such as discrete
cosine transform, Karhunen-Loeve transform, and the like are
performed as to the prediction error data to output
transform coefficient data.
[0060]
In step ST15, the quantization unit 15 performs
quantization processing. The quantization unit 15 quantizes
transform coefficient data. Rate control is performed at
the time of quantization, as illustrated in the laterdescribed
processing in step ST25.
[0061]
The inverse quantization unit 21 performs inverse
quantization processing in step ST16. The inverse
quantization unit 21 performs inverse quantization on the
transform coefficient data quantized by the quantization
unit 15 with properties corresponding to the properties of
- 34 -
SP263812
the quantization unit 15.
[0062]
In step ST17, the inverse orthogonal transform unit 22
performs inverse orthogonal transform processing. The
inverse orthogonal transform unit 22 performs inverse
orthogonal transform on the transform coefficient data
subjected to inverse quantization by the inverse
quantization unit 21 with properties corresponding to the
properties of the orthogonal transform unit 14.
[0063]
In step ST18, the adding unit 23 generates decoded
image data. The adding unit 23 adds the prediction image
data supplied from the prediction image/optimal mode
selecting unit 33 and the data after inverse orthogonal
transform of the corresponding position to this prediction
image, to generate decoded image data.
[0064]
In step STl9, the deblocking filter 24 performs
filtering processing. The deblocking filter 24 filters
decoded image data output from the adding unit 23 and
removes block distortion.
[0065]
In step ST20, the frame memory 25 stores the decoded
image data. The frame memory 25 stores the decoded image
data before filtering processing and decoded image data
- 35 -
SP263812
after filtering processing.
[0066]
In step ST21, the intra prediction unit 31 and motion
prediction/compensation unit 32 each performs prediction
processing. That is to say, the intra prediction unit 31
performs intra prediction processing of the intra prediction
mode, and the motion prediction/compensation unit 32
performs motion prediction/compensation processing of the
inter prediction mode. The details of the prediction
processing are described below with reference to Fig. 7, in
which the prediction processing with all candidate
prediction modes is each performed, and cost function values
with all the candidate prediction mode are each calculated
by this processing. Further,, based on the calculated cost
function values, the optimal intra prediction mode and
optimal inter prediction mode are selected, and the
prediction image and the cost function and prediction mode
information generated in the selected prediction mode are
supplied to prediction image/optimal mode selecting unit 33.
[0067]
In step ST22, the prediction image/optimal mode
selecting unit 33 selects the prediction image data. The
prediction image/optimal mode selecting unit 33 decides in
the optimal mode of which the encoding efficiency is best,
based on each cost function value output from the intra
- 36 -
SP263812
prediction unit 31 and motion prediction/compensation unit
32. Furthermore, the, prediction image/optimal mode
selecting unit 33 selects the prediction image data of the
decided optimal mode and supplies to the subtracting unit 13
and adding unit 23. This prediction image is used for
calculation in step ST13 and ST18, as described above. Note
that the prediction mode information corresponding to the
selected prediction image data is output to the lossless
encoding unit 16.
[0068]
In step ST23, the lossless encoding unit 16 performs
lossless encoding processing. The lossless encoding unit 16
performs lossless encoding on the quantization data output
from the quantization unit 15. That is, lossless encoding
such as variable length encoding or arithmetic encoding is
performed as to the quantization data to be made data
compression. At this time, the prediction mode information
(including macroblocks type and prediction mode, and
reference picture information, for example) input into the
lossless encoding unit 16 in the above-described step ST22,
and information regarding motion vectors and so forth, are
lossless encoded. Further, lossless encoded data such as
prediction mode information is add to the header information
of the encoded stream generated by performing lossless
encoding on the quantization data.
- 37 -
SP263812
[0069]
In step ST24, the storage buffer 17 performs storage
processing. The storage buffer 17 stores an encoded stream
output from the lossless encoding unit 16. The encoded
stream stored in this storage buffer 17 is read out
appropriately and is transmitted to the decoding side
through the transmission path.
[0070]
In step ST25, the rate control unit 18 performs rate
control. The rate control unit 18 controls, in the case of
storing an encoded stream in the storage buffer 17, the rate
of the quantization operation of the quantization unit 15 so
that overflow or underflow does not occur in the storage
buffer 17.
[0071]
Next, with reference to the flowchart of Fig. 7,
prediction processing in step ST21 in Fig. 6 will be
described.
[0072]
In step ST31, the intra prediction unit 31 performs
intra prediction processing. The intra prediction unit 31
performs intra prediction on the image of the block to be
encoded, in all of the candidate intra prediction modes.
Note that, as for the image data of the decoded image
referred to in the intra prediction, the decoded image data
- 37 -
SP263812 SP263812
ST24, the storage buffer 17 performs storage
Phe storage buffer 17 stores an encoded stream
he lossless encoding unit 16. The encoded
in this storage buffer 17 is read out
and is transmitted to the decoding side
ransmission path.
3T25, the rate control unit 18 performs rate
rate control unit 18 controls, in the case of
coded stream in the storage buffer 17, the rate
zation operation of the quantization unit 15 so
or underflow does not occur in the storage
h reference to the flowchart of Fig. 7,
)ceasing in step ST21 in Fig. 6 will be
T31, the intra prediction unit 31 performs
on processing. The intra prediction unit 31
prediction on the image of the block to be
1 of the candidate intra prediction modes.
for the image data of the decoded image
the intra prediction, the decoded image data
ing
ing filter
Lng will be
g, intra
rediction
or all
diction mode
i selected
slculated
3ation unit
Dtion
prediction
des (all
:a after
125. The
L be described
ction
er prediction
for candidate
node of which
ed from all
d cost
- 40
SP263812
prediction mode to encode the block or macroblock. D
represents difference energy (distortion) between a decoded
image and an input image in the event that encoding has been
performed in prediction mode. R is generated code amount
including orthogonal transform coefficient, prediction mode
information, and so forth, and k is a Lagrange multiplier
given as a function of quantization parameter QP.
[0078]
That is, at the time of perform encoding in High
Complexity Mode, the above parameters D and R are calculated
and so there is a need to once perform encode processing
temporarily using all the candidate prediction modes, and
accordingly a higher calculating amount is needed.
[0079]
On the other hand, in the Low Complexity mode, as
processing of step ST41, as far as generating of prediction
images and calculation of header bits such as motion vector
information and prediction mode information, is performed
for all candidate prediction modes, and a cost function
value represented by the following Expression (2) is
calculated as to each prediction mode.
Cost (Mode e 0)=D+QPtoQuant(QP)•Header-Bit ... (2)
0 represents the overall group of a candidate
prediction mode to encode the block or macroblock. D
represents difference energy (distortion) between a decoded
-- 41 -
SP263812
image and an input image in the event that encoding has been
performed in prediction mode. Header Bit the header bit for
the prediction mode, and QPtoQuant is the function which is
given as a function of quantization parameter QP.
[0080]
That is, in the Low Complexity Mode, it is necessary to
perform prediction processing regarding each prediction mode,
however processing as far as decoded images is not needed,
thereby realizing lower amount of calculating than the High
Complexity Mode.
[0081]
In step ST43, the intra prediction unit 31 decides the
optimal intra prediction mode. The intra prediction unit 31
selects an intra prediction mode of which the cost function
value is the smallest based on and from the cost function
values calculated in step ST42, which is decided to the
optimal intra prediction mode.
[0082]
Next, with reference to a flowchart in Fig. 9, inter
prediction processing of step ST32 in Fig. 7 will be
described.
[0083]
In step ST51, the motion prediction/compensation unit
32 decides each of a motion vector and a reference image to
each prediction mode. That is, the motion
- 42 -
SP263812
prediction/compensation unit 32 decides each of a motion
vector and a reference image for a block to be processed in
each prediction mode.
[0084]
In step ST52, the motion prediction/compensation unit
32 performs motion compensation as to each prediction mode.
The motion prediction/compensation unit 32 performs,
regarding each prediction mode (each prediction block size),
based on the motion vector decided in step ST51, motion
compensation as to the reference image and generates
prediction image data regarding each prediction mode.
[0085]
In step ST53, the motion prediction/compensation unit
32 generates motion vector information to each prediction
mode. The motion prediction/ compensation unit 32 generates
motion vector information indicating the motion vector
decided in each prediction mode. The generated motion
vector information is used for calculation of the cost
function values in next step ST54; and in the event that a
corresponding prediction image is selected at the prediction
image/optimal mode selecting unit 33, this is included in
the prediction information and output to the lossless
encoding unit 16.
[0086]
In step ST54, the motion prediction/compensation unit
-- 43 -
5P263812
32 calculates a cost function value to each inter-prediction
mode. The motion prediction/compensation unit 32 performs
calculation of cost function values, using the described
Expressions (1) or (2) . With the calculation of the cost
function values, the generated code amount including
information encoded at the first encoding processing unit
167 and second encoding processing unit 168 is used. Note
that the calculation of the cost function values to the
inter-prediction mode includes an evaluation of the cost
function values of Skip Mode and Direct Mode stipulated in
H.264/AVC format.
[0087]
In step 5T55, the motion prediction/compensation unit
32 decides an optimal inter prediction mode. The motion
prediction/compensation unit 32 selects, based on the cost
function values calculated in step 5T54, a prediction mode
of which the cost function value is smallest and decides an
optimal inter prediction mode.
[0088]
Next, encoding processing regarding a motion vector
performed at the lossless encoding unit 16 will be described
using the flowchart of Fig. 10. Note that Fig. 10
illustrates a case where case classifying and candidate
setting have been performed as shown in Fig. 3.
[0089]
- 44 -
5P263812
In step ST61, the lossless encoding unit 16 acquires
the prediction block size information.
[0090]
In step ST62, the lossless encoding unit 16
distinguishes whether or not this corresponds to case SO.
In the event of the prediction block size being equal to or
smaller than 8x8 pixels, the lossless encoding unit 16
distinguishes that this corresponds to case SO and proceeds
to step ST63, but proceeds to step ST64 if the prediction
block size is not equal to or smaller than 8x8 pixels.
[0091]
The lossless encoding unit 16 decides a candidate of
case SO for the prediction motion vector in step ST63. The
lossless encoding unit 16 decides motion vector MV A (or
motion vector MVmd) which is a candidate of case SO for the
prediction motion vector and advances to step ST69.
[0092]
In step ST64, the lossless encoding unit 16
distinguishes whether or not this corresponds to case Sl.
In the event of the prediction block size being equal to or
smaller than 16xl6 pixels, the lossless encoding unit 16
distinguishes that this corresponds to the case S1 and
proceeds to step ST65, but if the prediction block size is
not equal to or smaller than 16xl6 pixels, proceeds to step
ST67.
- 45 -
SP263812
[0093]
In step ST65, the lossless encoding unit 16 decides the
prediction motion vector from candidates of case Si. In the
event that the lossless encoding unit 16 is case Si, motion
vector MV A and motion vector MV C are taken as the
candidates of the prediction motion vector, as shown in Fig.
3. Therefore, the lossless encoding unit 16 compares the
cost function value when the motion vector MV -A which is the
first candidate is used, with the cost function value when
the motion vector MVC which is the second candidate is used,
and decides the motion vector of which the cost function
value is smaller to be the prediction motion vector.
[0094]
In step ST66, the lossless encoding unit 16 generates
prediction motion vector selecting information. The
lossless encoding unit 16 generates the prediction motion
vector selecting information indicating the prediction
motion vector where the encoding efficiency is best, decided
instep ST65. For example, the lossless encoding unit 16
uses a flag as prediction motion vector selecting
information, and sets the flag to "0" when the motion vector
MV A is decided for the prediction motion vector, and sets a
flag to "1" when the motion vector MV C is decided for the
prediction motion vector.
[0095]
- 46 -
SP263812
In step ST67, the lossless encoding unit 16 decides the
prediction motion vector from the candidates of case S2. In
the event that the lossless encoding unit 16 is case 52,
motion vector MV A, motion vector MV B, motion vector MV C,
and motion vector MV co are taken as the candidates, as
shown in Fig. 3. Therefore, the lossless encoding unit 16
compares the cost function values when the motion vectors
MV A, MV B, MV C, and MV co, which are the first to fourth
candidates, are each used, and decides the motion vector of
which the cost function value is smallest to be the
prediction motion vector.
[0096]
In step ST68, the lossless encoding unit 16 generates
prediction motion vector selecting information. The
lossless encoding unit 16 generates prediction motion vector
selecting information indicating a prediction motion vector
of which the encoding efficiency decided in step ST67 is
best. For example, the lossless encoding unit 16 uses a
flagas prediction motion vector selecting information, and
sets the flag to "0" when motion vector MV -A is decided as
the prediction motion vector, and the flag to "1" when
motion vector MV -B is decided as the prediction motion
vector. Also, the lossless encoding unit 16 sets the flag
to "2" when motion vector MV C is decided as the prediction
motion vector, and the flag to "3" when motion vector MVco
- 47 -
SP263812
is decided as the prediction motion vector.
[0097]
In step ST69, the lossless encoding unit 16 performs
lossless encoding processing. The lossless encoding unit 16
performs lossless encoding on the information indicating the
difference motion vector between the prediction motion
vector decided in steps ST63, 65, and 67, and the motion
vector of the block to be encoded. Also, the lossless
encoding unit 16 performs lossless encoding on the
information and so forth indicating the prediction motion
vector selecting information and prediction block size.
[0098]
Thus, with the image encoding device and method
according to the present invention, candidates of the
prediction motion vector are set according to the size of
the prediction block size, and from the candidates, the
motion vector where the encoding efficiency becomes best is.
decided for the prediction motion vector. Therefore,
reduction of the code amount required for the transmission
of the motion vector can be realized, thereby improving
encoding efficiency. Also, along with the reduction of the
code amount required for the transmission of the motion
vector, the bit rate of quantization data can be increased,
thereby improving image quality. Also, in the case of the
candidate of the prediction motion vector being one, such as
- 48 -
SP263812
with the case SO, prediction motion vector selecting
information is unnecessary. Therefore, only when there are
multiple candidates of the prediction motion vector,
transmission of the prediction motion vector selecting
information is transmitted, which further improves encoding
efficiency.
[0099]
<5. Configuration of Image Decoding Device>
The encoded stream generated by encoding input image is
supplied to an image decoding device via a predetermined
transmission path, recording medium, and the like and
decoded.
[0100]
Fig. 11 shows a configuration for an image decoding
device. The image decoding device 50 includes a storage
buffer 51, a lossless decoding unit 52, an inverse
quantization unit 53, an inverse orthogonal transform unit
54, an adding unit 55, a deblocking filter 56, a screen
rearranging buffer 57, a digital/analog converting unit (D/A
converting unit) 58. Furthermore, the image decoding device
50 includes a frame memory 61, selectors 62, 65, an intra
prediction unit 63, and a motion compensation unit 64.
[0101]
The storage buffer 51 stores an encoded stream which
has been transmitted. The lossless decoding unit 52 decodes
- 49 -
SP263812
the encoded stream supplied from the storage buffer 51 by a
format corresponding to the encoding format of the lossless
encoding unit 16 of Fig. 2.
[0102]
The lossless decoding unit 52 outputs prediction mode
information which has obtained by decoding header
information of the encoded stream to the intra prediction
unit 63 and motion compensation unit 64, and to the
deblocking filter 56. Also, the lossless decoding unit 52
sets the candidate of the prediction motion vector using
motion vectors of the block to be decoded and adjacent
blocks which have been decoded. The lossless decoding unit
52 selects, based on the prediction motion vector selecting
information obtained by performing lossless decoding onthe
encoded stream, a motion vector from the candidate of the
prediction motion vectors, and takes the selected motion
vectoras a prediction motion vector. Also, the lossless
decoding unit 52 adds the prediction motion vector to a
difference motion vector obtained by performing lossless
decoding on the encoded stream and calculates the motion
vector of the block to be decoded, and outputs to the motion
compensation unit 64.
[0103]
The inverse quantization unit 53 performs inverse
quantization on the quantization data decoded at the
- 50 -
SP263812
lossless decoding unit 52 with the format corresponding to
the quantization format of the quantization unit 15 in Fig.
2. The inverse orthogonal transform unit 54 performs
inverse orthogonal transform on the output of the inverse
quantization unit 53 with the format corresponding to the
orthogonal transform format of the orthogonal transform unit
14 in Fig. 2 and outputs to the addition unit 55-
[0104]
The adding unit 55 adds the data after inverse
orthogonal transform to prediction image data to be supplied
from the selector 65, to generate decoded image data and
outputs in the deblocking filter 56 and frame memory 61.
[0105]
The deblocking filter 56 performs filtering processing
as,to the decoded image data supplied from the adding unit
55, removes block distortion and then supplies and stores to
the frame memory 61, and outputs to the screen rearranging
buffer 57.
[0106]
The screen rearranging buffer 57 performs rearranging
of the images. That is, the order of the frame rearranged
in order for encoding by the screen rearranging buffer 12 of
Fig. 2 is rearranged to the original order for display and
is output to the D/A converting unit 58.
[0107]
- 51 -
SP263812
The D/A converting unit 58 performs D/A conversion on
the image data supplied from the screen rearranging buffer
57, so as to display the image by outputting to an unshown
display.
[0108]
The frame memory 61 holds the decoded image data before
filtering processing supplied from the adding unit 55 and
the decoded image data after filtering processing supplied
from the deblocking filter 24.
[0109]
When decoding of the prediction block where intra
prediction has been performed is performed based on
prediction mode information supplied from the inverse
decoding unit 52, the selector 62 supplies decoded image
data before filtering processing, read out from the frame
memory 61, to the intra prediction unit 63. Also, when
decoding of the prediction block where intra prediction has
been performed is performed based on prediction mode
info-
Fig. 12 illustrates the configuration regarding motion
vectors at the lossless decoding unit. The lossless
decoding unit 52 includes a first decoding processing unit
521, a second decoding processing unit 522, a motion vector
53 -
SP263812
storing unit 523, a motion vector selecting unit 525, and an
adding unit 526.
[0114]
The first decoding processing unit 521 performs
decoding processing corresponding to the encoding which has
been performed in the first encoding processing unit 167.
The first decoding processing unit 521 performs lossless
decoding processing of the encoded stream using a VLC table
or an arithmetic code, and generates difference motion
vector information.
[0115]
The second decoding processing unit 522 performs
decoding processing corresponding to encoding which has been
performed in the second encoding processing unit 168. The
second decoding processing unit 522 performs lossless
decoding processing of the encoded stream using a VLC table
or an arithmetic code, and generates prediction block size
information, prediction motion vector selection information,
and so forth.
[0116]
The motion vector storing unit 523 stores the motion
vector for each block, in order to decide a prediction
motion vector using motion vectors of the adjacent blocks
which have been decoded, adjacent to the block to be decoded.
Note that, in the event of handling direct mode, the motion
- 54 -
SP263812
vector storing unit 523 stores the motion vector of the same
block as with the block to be encoded in the reference
picture.
[0117]
The motion vector selection unit 525 performs case
classifying based on the prediction block size information
output from the second decoding processing unit 522, and
sets candidates for the prediction motion vector from the
motion vector of the adjacent block stored in the motion
vector storing unit 161 and motion vector of the same block
as with the block to be encoded in the reference picture.
This case classifying and setting of the candidates of the
prediction motion vector equate with the motion vector
selection unit 165 of the encoding side. Furthermore, the
motion vector selecting unit 525 selects, based on the
prediction motion selecting information output from the
second decoding processing unit 522, a motion vector from
the candidates of the prediction motion vector, and outputs
to the addition unit 526 as a prediction motion vector.
[0118]
The adding unit 526 adds the prediction motion vector
output from the motion vector selecting unit 525 to the
difference motion vector indicated in the difference motion
vector information output from the first decoding processing
unit 521, and accordingly calculates the motion vector of
- 55 -
SP263812
the block to be encoded and outputs to the motion
compensation unit 64.
[0119]
<7. Operation of Image Decoding Device>
Next, with reference to the flowchart in Fig. 13,
operation of image decoding processing which is performed at
the image decoding device 50 will be described.
[0120]
In step ST81, the storage buffer 51 stores the encoded
stream which has been transmitted. In step ST82, the
lossless decoding unit 52 performs lossless decoding
processing. The lossless decoding unit 52 decodes the
encoded stream supplied from the storage buffer 51. That is,
the quantization data of each picture encoded by the
lossless encoding unit 16 in Fig. 2 are obtained. Also, the
lossless decoding unit 52 performs lossless encoding of
prediction mode information included in the header
information of the encoded stream, and supplies the obtained
prediction mode information to the deblocking filter 56 and
selectors 62 and 65. Furthermore, the lossless decoding
unit 52 outputs, in the event that the prediction mode
information is information regarding intra prediction mode,
prediction mode information to the intra prediction unit 63.
Also, the lossless decoding unit 52 outputs, in the event
that the prediction mode information is information
- 56 -
SP263812
regarding intra prediction mode, prediction mode information
to the motion compensation unit 64.
[0121]
In step ST83, the inverse quantization unit 53 performs
inverse quantization processing. The inverse quantization
unit 53 performs inverse quantization on the quantization
data decoded by the inverse decoding unit 52 with properties
corresponding to the properties of the quantization unit 15
in Fig. 2.
[0122]
In step ST84, the inverse orthogonal transform unit 54
performs inverse orthogonal transform processing. The
inverse orthogonal transform unit 54 performs inverse
orthogonal transform on the transform coefficient data
subjected to inverse quantization by the inverse
quantization unit 53 with properties corresponding to the
properties of the orthogonal transform unit 14 of Fig. 2.
[0123]
In step ST85, the adding unit 55 generates the decoded
image data. The addition unit 55 adds the data obtained by
being performed inverse orthogonal transform processing to
the prediction image data selected in the later-described
step ST89, and generates decoded image data. Thus, the
original image is decoded.
[0124]
- 58 -
SP263812
image data.
[0128]
In step ST89, the selector 65 selects prediction image
data. That is, the selector 65 selects the prediction image
supplied from the intra prediction unit 63 and prediction
image data generated at the motion compensation unit 64 and
supplies to the addition unit 55, so as to perform
outputting and adding of the inverse orthogonal transform
unit 54 in step ST85, as described above.
[0129]
In step ST90, the screen rearranging buffer 57 performs
image rearranging. That is to say, in the screen
rearranging buffer 57, the order of frames rearranged for
encoding by the screen rearranging buffer 12 of the image
encoding device 10 in Fig. 2 is rearranged to the original
order for display.
[0130]
In step ST91, the D/A conversion unit 58 performs D/A
conversion on the image data from the screen rearranging
buffer 57 into the D/A conversion unit 58. This image is
output to the unshown display and the image is displayed.
[0131]
Next, decoding process regarding a motion vector
performed in the lossless decoding unit 52 will be described
using a flowchart in Fig. 14. Note that Fig. 14 also
- 59 -
SP263812
illustrates a case where case classifying and setting of the
candidate are performed, as shown in Fig. 3.
[0132]
In step ST101, the lossless decoding unit 52 acquires
prediction block size information. The lossless decoding
unit 52 decodes the encoded stream stored in the storage
buffer 51 and acquires the prediction block size information
on the block to be decoded.
[0133]
In step ST102, the lossless decoding unit 52
distinguishes whether or not this corresponds to case SO.
In the case of the prediction block size which is a size of
the block to be decoded being equal to or smaller than 8x8
pixels, the lossless decoding unit 52 distinguishes that
this corresponds to the case SO, proceeds to step ST103, and
in the case of the prediction block size being not equal to
or smaller than 8x8 pixels, proceeds to step ST104.
[0134]
In step ST103, the lossless decoding unit 52 decides a
candidate of the case SO to the prediction motion vector.
The lossless decoding unit 52 decides the motion vector MV -A
(or motion vector MVmd) which is a candidate of the case SO
to be the prediction motion vector and proceeds to step
ST109.
[0135]
- 60 -
SP263812
In step ST104, the lossless decoding unit 52
distinguishes whether or not this corresponds to case Sl.
In the case of the prediction block size being equal to or
smaller than 16x16 pixels, the lossless decoding unit 52
distinguishes that this corresponds to case Sl, proceeds to
step ST105, and in the case of the prediction block size
being not equal to or smaller than 16x16 pixels, proceeds to
step ST107.
[0136]
In step ST105, the lossless decoding unit 52 acquires
the prediction motion vector selecting information. The
lossless decoding unit 52 decodes the encoded stream stored
in the storage buffer 51 and acquires the prediction motion
vector selecting information on the block to be decoded.
[0137]
In step ST106, the lossless decoding unit 52 decides a
prediction motion vector from the candidates of case St.
The lossless decoding unit 52 decides the prediction motion
vector indicated in the prediction motion vector selection
information in case S1, and proceeds to step ST109. For
example, in the case of the prediction motion vector
information being flag "0", the lossless decoding unit 52
takes the motion vector MV -A as a prediction motion vector.
Also, in the case of the prediction motion vector
information being flag "1", the lossless decoding unit 52
-- 61 -
SP263812
takes the motion vector MV C as a prediction motion vector.
[0138]
In step ST107, the lossless decoding unit 52 acquires
the prediction motion vector selecting information. The
lossless decoding unit 52 decodes the encoded stream stored
in the storage buffer 51 and acquires the prediction motion
vector selecting information on the block to be decoded.
[0139]
In step ST108, the lossless decoding unit 52 decides a
prediction motion vector from the candidates of case S2.
The lossless decoding unit 52 decides the candidate
indicated in the prediction motion vector selecting
information in case S2 for the prediction motion vector, and
proceeds to step ST109. For example, in the case of the
prediction motion vector information being flag "0", the
lossless decoding unit 52 takes the motion vector MV A as a
prediction motion vector. In the case of the prediction
motion vector information being flag "1", the lossless
decoding unit 52 takes the motionvector MV -B as a
prediction motion vector. In the case of the prediction
motion vector information being flag "2", the lossless
decoding unit 52 takes the motion vector MV C as a
prediction motion vector. Also, in the case of the
prediction motion vector information being flag "3", the
lossless decoding unit 52 takes motion vector MV co as a
- 62 -
SP263812
prediction motion vector.
[0140]
In step ST109, the lossless decoding unit 52 performs
motion vector calculation processing. The lossless decoding
unit 52 adds the prediction motion vector decided in steps
ST103, 106, and 108 to the difference motion vector of the
block to be decoded obtained by performing lossless decoding
of the encoded stream, and calculates a motion vector of the
block to be decoded. The lossless decoding unit 52 outputs
the calculated motion vector to the motion compensation unit
64.
[0141]
Next, with reference to the flowchart in Fig. 15,
prediction processing in step ST88 in Fig. 13 will be
described.
[0142]
In step ST111, the lossless decoding unit.52 determines
whether or not the current block has been intra encoded. In
the event of the prediction mode information obtained by
performing lossless decoding being intra prediction mode
information, the lossless decoding unit 52 supplies the
prediction mode information to the intra prediction unit 63
and proceeds to step ST112. Also, in the event of the
prediction mode information not being intra prediction mode
information, the lossless decoding unit 52 supplies the
- 63 -
SP263812
prediction mode information to the motion compensation unit
64, and proceeds to step ST113.
[0143]
In step ST112, the intra prediction unit 63 performs
intra prediction processing. The intra prediction unit 63
performs intra prediction using decoded image data and
prediction mode information supplied via the selector 62,
and generates prediction image data.
[0144]
In step ST113, the motion compensation unit 64 performs
inter prediction processing. The motion compensation unit
64 performs motion compensation of the decoded image data
supplied via the selector 62, based on the prediction mode
information and motion vector from the lossless decoding
unit 52. Furthermore, the motion compensation unit 64
outputs the prediction image data generated by motion
compensation to the selector 65.
[0145]
' Thus, with the image decoding device and method of the
present invention, the candidate of the prediction motion
vector is set according to the size of the prediction block
size, and from the candidates, a motion vector selected in
the image decoding device is decided to be the prediction
motion vector. Therefore, with the image decoding device,
even if improvement of the encoding efficiency and picture
- 63 -
SP263812
prediction mode information to the motion compensation unit
64, and proceeds to step ST113.
[0143]
In step ST112, the intra prediction unit 63 performs
intra prediction processing. The intra prediction unit 63
performs intra prediction using decoded image data and
prediction mode information supplied via the selector 62,
and generates prediction image data.
[0144]
In step ST113, the motion compensation unit 64 performs
inter prediction processing. The motion compensation unit
64 performs motion compensation of the decoded image data
supplied via the selector 62, based on the prediction mode
information and motion vector from the lossless decoding
unit 52. Furthermore, the motion compensation unit 64
outputs the prediction image data generated by motion
compensation to the selector 65.
[0145]
Thus, with the image decoding device and method of the
present invention, the candidate of the prediction motion
vector is set according to the size of the prediction block
size, and from the candidates, a motion vector selected in
the image decoding device is decided to be the prediction
motion vector. Therefore, with the image decoding device,
even if improvement of the encoding efficiency and picture
- 66 -
SP263812
which has been set beforehand has occurred, is taken as a
candidate of the prediction motion vector.
[0150]
In case MO, there are few differences of the motion
vectors among adjacent blocks, so any one of the motion
vector of the adjacent blocks is taken as the candidate of
the prediction motion vector. For example, the motion
vector MV B of the adjacent block on the upper side is taken
as the candidate of the prediction motion vector.
Alternatively, the motion vectors of other adjacent blocks
may be also taken as a candidate.
[0151]
In case Ml, a motion vector where difference which
exceeds the threshold set beforehand has occurred, for
example the motion vector MV A of the left-side adjacent
block, is taken as the first candidate, and the motion
vector MV C of the upper-right side adjacent block is Laken
as the second candidate. Note that even if the difference
between the motion vector MV _A and motion vector MV B
exceeds the threshold, the difference between the motion
vector MV B and motion vector MV C is small, so either of
the motion vector MV B and motion vector MV C may be taken
as a candidate.
[0152]
In case M2, for example the motion vector MV _A of the
- 67 -
SP263812
adjacent block on the left side is taken as the first
candidate, and the motion vector MV C of the adjacent block
on the upper-right side is taken as the second candidate.
[0153]
In case M3, the difference of the motion vector between
each adjacent block exceeds the threshold, for example, so
the motion vector MV _A of the adjacent block on the left
side is taken as the first candidate, the motion vector MV B
of the adjacent block on the upper side is taken as the
second candidate, and the motion vector MV C of the adjacent
block on the upper-right side is taken as the third
candidate.
[0154]
<9. other Configuration of Lossless Encoding Unit>
Fig. 17 illustrates another configuration regarding
motion vectors at the lossless encoding unit. The lossless
encoding unit 16 includes a motion vector storage unit 161,
a case classifying unit 162, a motion vector selecting unit
165a, a subtracting unit 166, a first encoding processing
unit 167, and a second encoding processing unit 168.
[0155]
The motion vector storage unit 161 stores motion vector
of each block to decide a prediction motion vector using a
motion vector of an adjacent block where encoding has been
performed before the block to be encoded. Note that when
- 68 -
SP263812
handling direct mode, the motion vector storage unit 161
stores the motion vector of the same block as with the block
to be encoded in the reference picture.
[0156]
The case classifying unit 162 performs case classifying
according to the difference of the motion vector of the
adjacent block and supplies the case classifying result to
the motion vector selecting unit 165a.
[0157]
The motion vector selecting unit 165a sets, based on
the case classifying result, candidates of the prediction
motion vectors from the motion vectors of the adjacent
blocks stored in the motion vector storage unit 161 and the
motion vector of the same block as with the block to be
encoded in the reference picture. Also, the motion vector
selection unit 165a decides, based on the cost function
values supplied from the prediction/compensation unit 32, a
prediction motion vector from the candidates of the
prediction motion vectors. The motion vector selecting unit
165a outputs the decided prediction motion vector to the
subtracting unit 166. Also, in the event of performing case
classifying according to the prediction block size as well,
the motion vector selecting unit 165a sets, based on the
prediction block size information and case classifying
result, candidates of the prediction motion vectors from the
- 69 -
SP263812
motion vectors of the adjacent blocks stored in the motion
vector storage unit 161 and the motion vector of the same
block as with the block to be encoded in the reference
picture. The prediction motion vector decided at the motion
vector selecting unit 165a is output to the subtracting unit
166. For example, in the case of the prediction block size
being equal to or smaller than 16xl6 pixels, case
classifying is performed according to the prediction block
size, and in the case of the prediction block size being
16x16 pixels or greater, case classifying is performed
according to the difference in motion vectors of the
adjacent blocks, with the candidates of the prediction
motion vectors being set in each case. Thus, in the event
of the prediction block size being greater and the
prediction precision decreasing, performing case classifying
according to the difference of the motion vector may be
performed, the number of the candidate decreases when the
difference of the motion vector of the adjacent block is
small, so the prediction motion vector can be decided
efficiently.
[0158]
The subtracting it 166 calculates the difference
motion vector which is the difference between the motion
vector indicated in the motion vector information from the
motion prediction/compensation unit 32 or the prediction
- 70 -
SP263812
image/optimal mode selecting unit 33, and the prediction
motion vector output from the motion vector selecting unit
165a. The subtracting unit 166 outputs the difference
motion vector information indicating the calculated
difference motion vector in the first encoding processing
unit 167.
[0159]
The first encoding processing unit 167 performs
encoding of the difference motion vector information using a
VLC table or an arithmetic code. Also, the second encoding
processing unit 168 performs encoding of the prediction
block size information and prediction motion vector
selecting information using a VLC table or an arithmetic
code. The information encoded in the first encoding
processing unit 167 and second encoding processing unit 168
is added to the header information of the encoded stream as
described above.
[0160]
<10. Operation of Other Configuration of Lossless Encoding
Unit>
Next, other encoding processing regarding motion vector
performed at the lossless encoding unit 16 will be described,
with reference to the flowchart in Fig. 18. Note that Fig.
18 illustrates a case where case classifying and setting of
the candidate has been performed, as shown in Fig. 16. Also,
- 71 -
SP263812
in the event of the candidate of the prediction motion
vector being provided according to the difference of the
motion vector of the adjacent block and the prediction block
size, for example in the case of the prediction block size
of the block to be encoded being larger than 16x16 pixels,
the processing in Fig. 18 may be performed.
[0161]
In step ST121, the lossless encoding unit 16 calculates
the difference between the motion vectors of the adjacent
blocks. The lossless encoding unit 16 calculates, for
example, the difference motion vector MVD AB between the
motion vector MV A of the adjacent block on the left side
and motion vector MV B of the adjacent block on the upper
side. Also, the lossless encoding unit 16 calculates the
difference motion vector MVD BC between the motion vector
MV B of the adjacent block on the upper side and the motion
vector MV C of the adjacent block on the upper-right side.
[0162]
In step ST122, the lossless encoding unit 16
distinguishes whether or not the difference motion vector
MVD AB is smaller than the threshold. In the event that a
horizontal component MVD ABx of the difference motion vector
MVD AB is smaller than the threshold Thabx, and a vertical
component MVD ABy of the difference motion vector MVD AB is
smaller than the threshold Thaby, the lossless encoding unit
- 72 -
SP263812
16 proceeds to step ST123. Also, the lossless encoding unit
16 proceeds to step ST127 in other cases.
[0163]
In step ST123, the lossless encoding unit 16
distinguishes whether or not the difference motion vector
MVD BC is smaller than the threshold. In the event that a
horizontal component MVD BCx of the difference motion vector
MVD BC is smaller than the threshold Thbcx, and a vertical
component MVD BCyof the difference motion vector MVD BC is
smaller than the threshold Thbcy, the lossless encoding unit
16 proceeds to step ST124. Also, the lossless encoding unit
16 proceeds to step ST125, in other cases.
[0164]
In step ST124, the lossless encoding unit 16 decides a
candidate of case MO to the prediction motion vector. This
corresponds to case MO when the conditions of step ST122 and
stepST123 are met, so the lossless encoding unit 16 decides
the motion vector MV -B which is a candidate of case MO to be
the prediction motion vector, and proceeds to step ST132.
[0165]
In step ST125, the lossless encoding unit 16 decides
the prediction motion vector from the candidate of the case
M2. This corresponds to case M2 when the conditions of step
ST122 being met but step ST123 not being met, so the
lossless encoding unit 16 decides the prediction motion
- 73 -
SP263812
vector from the candidates of the case M2. With the
lossless encoding unit 16, when case M2, motion vector MV -A
and motion vector MV C are taken as the candidate of the
prediction motion vector as shown in Fig. 16. Therefore,
the lossiess encoding unit 16 compares the cost function
values when the motion vector MV A which is the first
candidate is used and the motion vector MV C which is the
second candidate is used, to decide the motion vector of
which the cost function value is smallest to be the
prediction motion vector.
[0166]
In step ST126, the lossless encoding unit 16 generates
prediction motion vector selecting information. The
lossless encoding unit 16 generates the prediction motion
vector selecting information indicating the prediction
motion vector decided in step ST125. For example, the
lossless encoding unit 16 uses a flag as prediction moLion
vector selecting information. With the lossless encoding
unit 16, when the motion vector MV -A is decided to be the
prediction motion vector, the flag is set to be "0", and
when the motion vector MV C is decided to be the prediction
motion vector, the flag is set to be "1" and proceeds to
step ST132.
[0167]
Proceeding from step ST122 to step ST127, the lossless
- 74 -
SP263812
encoding unit 16 distinguishes whether or not the difference
motion vector MVD BC is smaller than the threshold. In the
event that horizontal component MVD BCx of the difference
motion vector MVD BC is smaller than the threshold Thbcx and
vertical component MVD BCy of the difference motion vector
MVD BC is smaller than the threshold Thbcy, the lossless
encoding unit 16 proceeds to step ST128. Also, the lossless
encoding unit 16 proceeds to step ST130 in other cases.
[0168]
In step ST128, the lossless encoding unit 16 decides
the prediction motion vector from case Ml candidates. This
corresponds to case Ml when a condition of step ST127 is met
without meeting a condition of step ST122, so the lossless
encoding unit 16 decides the prediction motion vector from
candidates of the case Ml. With the lossless encoding unit
16, when being case Ml, the motion vector MV -A and motion
vector MV C are taken as the candidate of the prediction
motion vector as shown in Fig. 16. Therefore, the lossless
encoding unit 16 compares a cost function value when the
motion vector MV A which is the first candidate is used to a
cost function value when the motion vector MV C which is the
second candidate is used, and decides the motion vector of
which the cost function value is smallest to be the
prediction motion vector.
[0169]
- 75 -
SP263812
In step ST129, the lossless encoding unit 16 generates
prediction motion vector selecting information. The
lossless encoding unit 16 generates the prediction motion
vector selecting information indicating the prediction
motion vector decided in step ST128. For example, the
lossless encoding unit 16 uses a flag as prediction motion
vector selecting information. The lossless encoding unit 16
sets, when the motion vector MV A is decided to be the
prediction motion vector, the flag to be "0", and when the
motion vector MV C is decided to be the prediction motion
vector, the flag to be "l", and proceeds to step ST132.
[0170]
In step ST130, the lossless encoding unit 16 decides
the prediction motion vector from case M3 candidates. This
corresponds to case M3 when the conditions of step ST122 and
step ST127 are not met, so the lossless encoding unit 16
decides the prediction motion vector from a candidate of the
case M3. The lossless encoding unit 16 is, when case M3,
motion vector MV A, motion vector MV B, and motion vector
MV C are taken as the candidates of the prediction motion
vectors as shown in Fig. 16. Therefore, the lossless
encoding unit 16 compares the cost function value when the
motion vector MV -A which is the first candidate is used, the
cost function value when the motion vector MV -B which is the
second candidate is used, and the cost function value when
-- 76 -
SP263812
the motion vector MV C which is the third candidate. The
lossless encoding unit 16 decides, based on the comparison
result, the motion vector where the cost function value is
smallest, to be the prediction motion vector.
[0171]
In step ST131, the lossless encoding unit 16 generates
prediction motion vector selecting information. The
lossless encoding unit 16 generates the prediction motion
vector selecting information indicating the prediction
motion vector decided in step ST130. For example, the
lossless encoding unit 16 uses a flag as prediction motion
vector selecting information. The lossless encoding unit 16
sets a flag to "0" when motion vector MV A is decided to be
the prediction motion vector. Also, the lossless encoding
unit 16 sets, when the motion vector MV B is decided to be
the prediction motion vector, the flag to be "1", and when
the motion vector MV C is decided to be the prediction
motion vector, the flag to be "2" and proceeds to step ST132.
[0172]
In step ST132, the lossless encoding unit 16 performs
lossless encoding processing. The lossless encoding unit 16
performs lossless encoding of the difference between
prediction motion vector and motion vector of the blocks to
be encoded decided in steps ST124, 125, 128, and 130. Also,
the lossless encoding unit 16 performs lossless encoding on
-, 77 -
SP263812
the information indicating the prediction motion vector
selecting information and prediction block size.
[0173]
Thus, with the image encoding device and method of the
present application, of the candidates, a candidate of the
prediction motion vector for the motion vector where the
encoding efficiency is best is set and decided for the
prediction motion vector, according to the difference of the
motion vector of the adjacent block. Therefore, improvement
of the encoding efficiency and image quality can be improved.
Also, as the case MO, in the case where there exists a
candidate of the prediction motion vector, the prediction
motion vector selecting information is unnecessary.
Therefore, only in the case where there exists multiple
candidates of the prediction motion vector is the prediction
motion vector selecting information transmitted, thereby
further improving encoding efficiency.
[0174]
<11. Other Configuration of Lossless Decoding Unit>
Fig. 19 illustrates another configuration regarding
motion vectors at the lossless decoding unit. The lossless
decoding unit 52 includes a first decoding processing unit
521, a second decoding processing unit 522, a motion vector
storage unit 523, a case classifying unit 524, a motion
vector selecting unit 525a, and an adding unit 526.
- 78 -
SP263812
[0175]
The first decoding processing unit 521 performs
decoding process corresponding to the encoding which has
performed in the first encoding processing unit 167. The
first decoding processing unit 521 performs lossless
decoding processing of the encoded stream using a VLC table
or an arithmetic code, and generates difference motion
vector information.
[0176]
The second decoding processing unit 522 performs
decoding processing corresponding to the encoding which has
performed in the second encoding processing unit 168. The
second decoding processing unit 522 performs lossless
decoding process of the encoded stream using a VLC table or
an,arithmetic code, and generates prediction block size
information, prediction motion vector selecting information
and the like.
[0177]
The motion vector storage unit 523 stores the motion
vector in each block to decide a prediction motion vector
using the motion vectors of the adjacent blocks where
encoding has been performed before the block to be encoded.
Note that the motion vector storage unit 523 stores the
motion vector of the same block as with the block to be
encoded in the reference picture when corresponding to a
- 79 -
SP263812
direct mode as well.
[0178]
The case classifying unit 524 performs case classifying
according to the difference of the motion vector of the
adjacent block, and
this case classifying equates with the case classifying unit
162 of the encoding side. This case classifying equates
with the case classifying unit 162 of the encoding side.
[0179]
The motion vector selecting unit 525a sets , based on
the case classifying result, the candidates of the
prediction motion vectors from the motion vectors of
adjacent blocks stored in the motion vector storage unit 523
and the same motion vector as with the block to be encoded
in,the reference picture. The setting of the candidate of
this prediction motion vector equates with the motion vector
selecting unit 165a of the encoding side . Furthermore, the
motion vector selecting unit 525a selects , based on the
prediction motion vector selecting information output from
the second decoding processing component 522, motion vector
from the candidates of the prediction motion vectors and
outputs to the adding unit 526 as a prediction motion vector.
Also , the motion vector selecting unit 525a sets, in the
event of performing the case classifying according to the
prediction block size as well , based on the prediction block
- 80 -
SP263812
size information, case classifying result and prediction
motion vector selecting information, candidates of the
prediction motion vectors from the motion vectors of the
adjacent blocks stored in the motion vector storage unit 523.
Furthermore, the motion vector selecting unit 525a decides a
prediction motion vector from the candidates of the
prediction vectors, based on the prediction vector selecting
information, and outputs to the adding unit 526. Thus, in
the event that the prediction block size is larger than
16xl6 pixels, for example, even if case classifying
according to the difference of the motion vectors of the
adjacent blocks is performed and candidates of the
prediction motion vector in each case are set, and the
prediction motion vector where the encoding efficiency is
best is decided, decoding processing can be realized using
this prediction motion vector in the image decoding device.
[0180]
The adding unit 526 adds the prediction motion vector
which output from the motion vector selecting unit 525a to
the difference motion vector indicated in the difference
motion vector information output from the first decoding
processing unit 521. The adding unit 526 calculates the
motion vector of the block to be encoded and outputs to the
motion compensation unit 64, by adding difference motion
vector to the prediction motion vector.
- 81 -
SP263812
[0181]
<12. Operation of Other Configuration of Lossless Decoding
Unit>
Next, other decoding processing regarding motion vector
which is performed at the lossless decoding unit 52 will be
described by way of the flowchart of Fig. 20. Note that Fig.
20 illustrates a case where case classifying and setting of
candidates are performed, as shown in Fig. 16. Also, in
image encoding, when the processing in Fig. 18 is performed
in the event that the prediction block size of the block to
be encoded is larger than 16xl6 pixels, for example, the
processing in Fig. 20 is performed if the prediction block
size indicated in the prediction mode information is larger
than 16x16 pixels.
[0l82]
In step ST141, the lossless decoding unit 52 calculates
the difference of the motion vector of the adjacent block
which has been decoded. For example, the lossless decoding
unit 52 calculates the difference motion vector MVD AB
between the motion vector MV A of the adjacent block on the
left side and motion vector MV -B of the adjacent block on
the upper side. Also, the lossless decoding unit 52
calculates the difference motion vector MVD BC between the
motion vector MV B of the adjacent block on the upper side
and motion vector MV C of the adjacent block on the upper-
82 -
SP263812
right side.
[0183]
In step ST142, the lossless decoding unit 52
distinguishes whether or not the difference motion vector
MVD AB is smaller than the threshold. In the event that
horizontal component MVD ABx of the difference motion vector
MVD AB is smaller than the threshold Thabx, and vertical
component MVD ABy of the difference motion vector MVD AB is
smaller than the threshold Thaby, the lossless decoding unit
52 proceeds to step ST143. Also, in other cases, the
lossless decoding unit 52 proceeds to step ST147.
[0184]
In step ST143, the lossless decoding unit 52
distinguishes whether or not difference motion vector MVD BC
is,smaller than the threshold. In the event that horizontal
component MVD BCx of the difference motion vector MVD BC is
smaller than the threshold Thbcx, and vertical component
MVD BCy of the difference motion vector MVD BC is smaller
than the threshold Thbcy, the lossless decoding unit 52
proceeds to step ST144. Also, in other cases, the lossless
decoding unit 52 proceeds to step ST145.
[0185]
In step ST144, the lossless decoding unit 52 decides a
candidate of case MO to be the prediction motion vector.
This corresponds to case MO when a condition of step ST142
- 83 -
SP263812
and step ST143 is met, so the lossless decoding unit 52
decides the motion vector MV -B which is the candidate of
case MO to be the prediction motion vector and proceeds to
step ST152.
[0186]
In step ST145, the lossless decoding unit 52 acquires
the prediction motion vector selecting information. The
lossless decoding unit 52 performs decoding of encoded
stream stored in the storage buffer 51 and acquires the
prediction motion vector selecting information on the block
to be decoded.
[0187]
In step ST146, the lossless decoding unit 52 decides
the prediction motion vector from the candidates of case M2.
This corresponds to case M2 when a condition of step ST142
is met and a condition of step ST143 is not met, so the
lossless decoding unit 52 decides the candidate indicated in
the prediction motion vector selecting information in case
M2 to be the prediction motion vector. For example, when
the prediction motion vector selecting information indicates
the flag "0", the lossless decoding unit 52 decides the
motion vector MV -A to be the prediction motion vector. Also,
when the prediction motion vector selecting information
indicates the flag "1", the lossless decoding unit 52
decides the motion vector MV C to be the prediction motion
- 84 -
SP263812
vector.
[0188]
When proceeding from step ST142 to step ST147, the
lossless decoding unit 52 distinguishes whether or not the
difference motion vector MVD BC is smaller than the
threshold. In the event that horizontal component MVD BCx
of the difference motion vector MVD BC is smaller than the
threshold Thbcx, and vertical component MVD BCy of the
difference motion vector MVD BC is smaller than the
threshold Thbcy, the lossless decoding unit 52 proceeds to
step ST148. Also, the lossless decoding unit 52 proceeds to
step ST150 in other cases.
[0189]
In step ST148, the lossless decoding unit 52 acquires
the prediction motion vector selecting information. The
lossless decoding unit 52 performs decoding of the encoded
stream stored in the storage buffer 51 and acquires the
prediction motion vector selecting information on the block
to be decoded.
[0190]
In step ST149, the lossless decoding unit 52 decides
prediction motion vector from the candidates of the case M1.
This corresponds to case Ml when a condition of step ST142
is not met and a condition of step ST143 is met, so the
lossless decoding unit 52 decides the candidate indicated in
- 85 -
SP263812
the prediction motion vector selecting information in case
Ml to be the prediction motion vector. For example, in the
event of the prediction motion vector selecting information
illustrating flag "0", the lossless decoding unit 52 decides
the motion vector MV -A to be the prediction motion vector.
Also, in the event of the lossless decoding unit 52
indicating a flag "1", the lossless decoding unit 52 decides
the motion vector MV C to be the prediction motion vector.
[0191]
In step ST150, the lossless decoding unit 52 acquires
the prediction motion vector selecting information. The
lossless decoding unit 52 decodes the encoded stream stored
in the storage buffer 51 and acquires the prediction motion
vector selecting information on the block for the decoding.
[0192]
The lossless decoding unit 52 decides, from candidates
of the case M3, to be the prediction motion vector in step
ST151. This corresponds to case M3 when conditions of step
ST142 and step ST147 are not met, so the lossless decoding
unit 52 decides the candidate indicated in the prediction
motion vector selecting information in case M3 to be the
prediction motion vector. For example, the lossless
decoding unit 52 decides, when the prediction motion vector
selecting information indicates the flag "0", a prediction
motion vector MV A to be the prediction motion vector, and
-- 86 -
SP263812
when the prediction motion vector selecting information
indicates the flag "1", decides the prediction motion vector
MV -B to be the prediction motion vector. Also, in the event
that the prediction motion vector selecting information
indicates the flag "2", the lossless decoding unit 52
decides the motion vector MV C to be the prediction motion
vector.
[0193]
In step ST152, the lossless decoding unit 52 performs
motion vector calculation processing. The lossless decoding
unit 52 adds the prediction motion vector decided in steps
ST144, 146, 149, and 151, and the difference motion vector
of the block to be decoded, obtained by performing lossless
decoding of the encoded stream, and calculates the motion
vector of the block to be decoded. The lossless decoding
unit 52 outputs the calculated motion vector to the motion
compensation unit 64.
[0194]
Thus, with the image decoding device and method of the
present invention, candidates of prediction motion vectors
are set according to the difference of the motion vectors of
the adjacent blocks which have been decoded, and from the
candidates, a motion vector selected at the image encoding
device is decided to be the prediction motion vector.
Accordingly, even if improvement of the encoding efficiency
- 87 -
SP263812
and picture quality is realized by the optimal motion vector
being selected from the candidates of the prediction motion
vectors set according to difference in motion vectors of
adjacent blocks, decoding of the encoded stream can be
correctly performed at the image encoding device. Also,
case classifying is performed in accordance with the
difference in motion vectors of adjacent blocks, so
information relating to adjacent blocks does not need to be
included in the encoded stream.
[0195]
<13. Other Prediction Method of Motion Vector>
Next, as another prediction method of the motion vector,
a case will be described where, based on the motion vectors
of the adjacent blocks which have been encoded or decoded,
continuity of the block where the equivalent motion occurs
is distinguished, and candidates of the prediction motion
vectors are provided based on the distinguishing result.
[0196]
"Fig. 21 is a diagram to describe case classifying
according to the continuity in blocks where equivalent
motion occurs. The decision of the continuity of blocks
where equivalent motion occurs is performed using the
difference of motion vectors of the blocks next to each
other between adjacent blocks. Note that, in the
determination of the continuity, the difference of the
- 88 -
SP263812
motion vectors between an adjacent block located at the
upper-right side and,an adjacent block located at the left
side may be also included. In the event that two blocks
indicate equivalent motion, the size (quantity of motion) of
the calculated difference motion vector is small. Therefore,
distinguishing of the continuity is made that when the size
of the difference motion vector between two blocks is
smaller than a threshold, these are blocks where equivalent
motion is occurring, and when the size of the difference
motion vector is greater than a threshold, these are blocks
where different motion is occurring.
[0197]
For example, with distinguishing of continuity, the
difference motion vector MVD AD between motion vector MV A
of,the adjacent block on the left side and motion vector
MV -D of and the adjacent block of the upper-left side is
calculated, as shown in Fig. 21. When this difference
motion vector MVD AD is equal to or smaller than threshold
Tjad, the determination result (MoD AD) is taken as "0", and
when this difference motion vector MVD AD is threshold Tjad
or greater, the determination result (MoD AD) is taken as
"1". Note that the determination result "0" indicates that
two blocks are consecutive blocks where equivalent motion
occurs. Also, the determination result "1" indicates that
two blocks are non-consecutive blocks where different motion
- 89 -
SP263812
occurs.
[0198]
In the same way, the difference motion vector MVD_DB
between motion vector MV -D of the adjacent block on the
upper-left side and motion vector MVB of the adjacent block
on the upper side is calculated, and MoD_DB is decided based
on the comparison between the difference motion vector
MVD DB and threshold Tjdb. Also, the difference motion
vector MVD BC between the motion vector MV B of the adjacent
block on the upper side and motion vector MV_C of the
adjacent block on the upper right side is calculated, and
MoD BC is decided based on the comparison between the
difference motion vector MVD BC and threshold Tjbc. Also,
the difference motion vector MVD CA between the motion
vector MV C of the adjacent block on the upper --right side
and motion vector MV A of the adjacent block on the left
side is calculated, and MoD CA is decided based on the
comparison between the difference motion vector MVD_CA and
threshold Tjca.
[0199]
Next, the case classification is performed using MoD AD,
MoD DB, MoD BC, and MoD CA which are the determination
results of continuity. Furthermore, the candidates of the
prediction motion vector are decided according to the
classified cases. Note that candidates of the prediction
- 90 -
SP263812
motion vector are decided in each case by learning
beforehand.
[0200]
Fig. 22 exemplifies the candidates of the prediction
motion vector in each case. For example, the case m0 is a
case where MoD AD = 0, MoD DB = 0, MoD BC = 0, and MoD CA =
0, with the first candidate of the prediction motion vector
being taken as the motion vector MV A. Also, the case m8 is
a case where MoD AD = 1, MoDDB = 0, MoD BC = 0, and MoD CA
= 0, with the first candidate of the prediction motion
vector being taken as the motion vector MV A and with the
second candidate being taken as the motion vector MV C.
Also, the case m15 is a case where MoD AD = 1, MoD DB = 1,
MoD BC =1, and MoD CA = 1, with the first candidate of the
prediction motion vector being taken as the motion vector
MV A, the second candidate of the prediction motion vector
being taken as motion vector MV B, and the second candidate
of the prediction motion vector being taken as motion vector
MV C.
[0201]
<14. Other Configuration and Operation of Lossless encoding
Unit>
In the event of providing candidates of prediction
motion vectors based on distinguishing results of continuity
of blocks where equivalent motion occurs, another
- 91 -
SP263812
configuration regarding motion vectors according to the
lossless encoding unit is made as with Fig. 17. Note that
the case classifying unit 162 in Fig. 17 performs case
classifying based on distinguishing results of the
continuity of blocks where equivalent motion occurs, and
supplies the case classifying results to the motion vector
selecting unit 165a. Also, the motion vector selection unit
165a sets, based on case classification results, candidates
of prediction motion vectors as shown in Fig. 22.
[0202]
Fig. 23 is a flowchart which illustrates other encoding
processing regarding a motion vector, performed at the
lossless encoding unit 16.
[0203]
In step ST161, the lossless encoding unit 16 calculates
the difference of motion vectors of adjacent blocks. The
lossless encoding unit 16 calculates the difference of the
motion vectors of blocks next to each other between adjacent
blocks. Also, the lossless encoding unit 16 calculates the
difference of the motion vector with adjacent blocks located
at the upper-right side and the adjacent block located at
the left side. That is, the lossless encoding unit 16
calculates the difference motion vectors MVD AD, MVD DB,
MVD_BC, and MVD_CA, and proceeds to step ST162.
[0204]
- 92 -
SP263812
In step ST162, the lossless encoding unit 16 decides
MoD. The lossless encoding unit 16 compares the threshold
Tjad to the difference motion vector MVD AD and decides
MoD AD. When the difference motion vector MVD AD is
threshold Tjad or smaller, the lossless encoding unit 16
takes MoD AD as "0". Also, the lossless encoding unit 16
takes MoD AD as "1" when the difference motion vector MVD AD
is greater than the threshold Tjad. In the same way, the
lossless encoding unit 16 compares the thresholds Tjdb, Tjbc,
Tjca to the difference motion vectors MVD DB, MVD BC, MVD_CA,
decides MoD DB, MoD BC, and MoD CA, and proceed to step
ST163.
[0205]
In step ST163, the lossless encoding unit 16 performs
case classifying. The lossless encoding unit 16 performs
case classifying as in Fig. 22 for example, based on values
of MoD AD, MoD DB, MoD BC, and MoD CA, and proceeds to step
ST164.
[0206]
In step ST164 a prediction motion vector is decided
from the candidates in a distinguished case. The lossless
encoding unit 16 decides a prediction motion vector from the
candidates of the prediction motion vector in the case
distinguished in step ST163. When the number of candidates
of the prediction motion vector is one in a case of
1- 93 -
SP263812
distinguishing, the lossless encoding unit 16 decides this
candidate to the prediction motion vector. For example, as
shown in Fig. 22, in case mO which is MoD AD = 0, MoD DB = 0,
MoD BC = 0, and MoD-CA = 0, the candidate of the prediction
motion vector is the one motion vector MV A. Therefore, the
motion vector MV A is decided to be the prediction motion
vector.
[0207]
When multiple candidates of the prediction motion
vector exist in the distinguished case, the lossless
encoding unit 16 calculates a cost function value for when
each candidate is used, and decides the candidate where the
cost function value is the smallest to be the prediction
motion vector.
[02,08]
For example, as shown in Fig. 22, in case m8 which is
MoD AD = 1, MoD DB = 0, MoD BC = 0, and MoD CA = 0, the
candidates of the prediction motion vector are the two of
the iiotion vectors MV -A and MV C. Therefore, the lossless
encoding unit 16 compares the cost function value when the
motion vector MV A which is the first candidate is used, to
the cost function value when the motion vector MV C which is
the second candidate is used, and decides the motion vector
where the cost function value is the minimum to be the
prediction motion vector.
- 94 -
SP263812
[0209]
In step ST165, the lossless encoding unit 16 generates
prediction motion vector selecting information. The
lossless encoding unit 16 generates the prediction motion
vector selecting information indicating the prediction
motion vector decided in step ST164. For example, the
lossless encoding unit 16 uses a flag as the prediction
motion vector selecting information. The lossless encoding
unit 16 sets a flag to "0" when the first candidate has been
decided to be the prediction motion vector, "1" when the
second candidate has been decided to be the prediction
motion vector, and "2" when the third candidate has been
decided to be the prediction motion vector, and proceeds to
step ST166.
[0210]
In step ST166, the lossless encoding unit 16 performs
lossless encoding processing. The lossless encoding unit 16
performs lossless encoding between the prediction motion
vector decided in step ST164 and motion vector of the block
to be encoded in step ST164. Also, the lossless encoding
unit 16 performs lossless encoding on the information
indicating the prediction motion vector selecting
information and prediction block size and so forth.
[0211]
Thus, according to the distinguishing result of
- 95 -
SP263812
continuity of the blocks where equivalent motion occurs,
candidates of prediction motion vectors are set, and the
motion vector where the encoding efficiency is best is
decided to be the prediction motion vector out of the
candidates. Therefore, improvement of encoding efficiency
and image quality can be realized. Also, in the event that
there exists a candidate of the prediction motion vector,
prediction motion vector selecting information is
unnecessary. Therefore, transmitting prediction motion
vector selecting information only when multiple candidates
of the prediction motion vector exist can further improve
encoding efficiency.
[0212]
<15. Other Configuration and Operation of Lossless decoding
Unit>
In the event that a candidate of the prediction motion
vector is provided based on the distinguishing result of
continuity of blocks where equivalent motion occurs, another
configuration regarding motion vectors in the lossless
decoding unit is the same as with Fig. 19. Note that the
case classifying unit 524 in Fig. 19 performs case
classifying based on the distinguishing result of continuity
of a blocks where equivalent motion occurs, and supplies the
case classifying result to the motion vector selecting unit
525a. Also, the motion vector selecting unit 525a sets
- 96 -
SP263812
candidates of prediction motion vectors as shown in Fig. 22
based on the case classifying result.
[0213]
Fig. 24 is a flowchart which indicates other decoding
processing regarding the motion vector, performed at the
lossless decoding unit 52. Note that, Fig. 24 also
illustrates case classifying and the setting of the
candidate being performed as shown in Figs. 21 and 22. Also,
in the image encoding, when the processing in Fig. 23 is
performed in the event that the prediction block size of the
block to be encoded is larger than 16x16 pixels, for example,
the processing in Fig. 24 is performed in the event the
prediction block size indicated in the prediction mode
information is larger than 16x16 pixels.
[02,14]
In step ST171, the lossless decoding unit 52 calculates
the difference of motion vectors of adjacent blocks which
have been decoded. For example, the lossless decoding unit
52 calculates the difference of motion vectors of blocks
next to each other between adjacent blocks. Also, the
lossless encoding unit 16 calculates the difference of
motion vectors between the adjacent block located at the
upper right side and the adjacent block located at the left
side. That is, the lossless encoding unit 16 calculates the
difference motion vectors MVD AD, MVD DB, MVD BC, and MVD CA,
- 97 -
SP263812
and proceeds to step ST172.
[0215]
The lossless decoding unit 52 decides MoD in step ST172.
The lossless decoding unit 52 compares threshold Tjad with
the difference motion vector MVD AD and decides MoD AD.
When the difference motion vector MVD AD is threshold Tjad
or less, the lossless decoding unit 52 takes MoD-AD as "0".
Also, the lossless decoding unit 52 takes MoD AD as "1" when
the difference motion vector MVD AD is larger than the
threshold Tjad. In the same way, the lossless decoding unit
52 compares the difference motion vectors MVD DB, MVD BC,
MVD CA and thresholds Tjdb, Tjbc, and Tjca, MoD_DB, MoD-BC,
MoD CA are decided and proceed to step ST173.
[0216]
In step ST173, the lossless decoding unit 52 performs
case classifying. The lossless decoding unit 52 performs
case classifying, such as in Figs. 21 and 22 for example,
based on the values of MoD AD, MoD DB, MoD BC, and MoD CA,
and proceeds to step ST174.
[0217]
In step ST174, the lossless decoding unit 52 acquires
the prediction motion vector selecting information. The
lossless decoding unit 52 performs decoding of the encoded
stream stored in the storage buffer 51 and acquires the
prediction motion vector selecting information on the block
- 98 -
5P263812
to be decoded and proceeds to step ST175.
[0218]
In step ST175, the lossless decoding unit 52 decides
the prediction motion vector from the candidates in the
distinguished case. The lossless decoding unit 52 decides a
prediction motion vector based on the prediction motion
vector selecting information acquired in step ST174, from
the candidates of prediction motion vectors in the decided
case in step ST173. When the number of candidates of the
prediction motion vector existing is one in the
distinguished case, the lossless decoding unit 52 decides
this candidate to be the prediction motion vector. For
example, in case mO which is MoD AD = 0, MoD DB = 0, MoD BC
= 0, and MoD CA = 0, the candidate of the prediction motion
vector is the one motion vector MV A. Therefore, the motion
vector MV -A is decided to the prediction motion vector.
[0219]
Also, in the event that there exist multiple candidates
of the prediction motion vectors in the distinguished case,
the lossless decoding unit 52 decides the candidate of the
prediction motion vector to be the prediction motion vector.
For example, in case m8 which is MoD AD = 1, MoD DB = 0,
MoD-BC = 0, and MoD CA = 0, the candidates of the prediction
motion vector are the two of motion vectors MV -A and MV C.
Here, when prediction motion vector selecting information
- 99 -
SP263812
indicates flag "0", the motion vector MV -A which is the
first candidate is decided to be the prediction motion
vector. Also, when prediction motion vector selecting
information indicates flag "1", the motion vector MV C which
is the second candidate is decided to be the prediction
motion vector.
[0220]
The lossless decoding unit 52 performs processes motion
vector calculation processing in step ST176. The lossless
decoding unit 52 adds the prediction motion vector decided
in step ST175 and the difference motion vector of the block
to be encoded by performing lossless decoding of the encoded
stream, and calculates the motion vector of the block to be
decoded. The lossless decoding unit 52 outputs the
calculated motion vector to the motion compensation unit 64.
[0221]
Thus, with the image decoding device and method of the
present invention, continuity of blocks where equivalent
motion occurs is distinguished regarding decoded adjacent
blocks, and, according to the distinguishing result,
candidates of prediction motion vectors are set.
Furthermore, from the candidates, the motion vector selected
at the image encoding device is decided to be the prediction
motion vector. Therefore, with the image encoding device,
even if the optimal motion vector is selected from
- 100 -
SP263812
candidates set for the prediction motion vector, according
to continuity of blocks where equivalent motion occurs, and
improvement of encoding efficiency and image quality is
realized, decoding of the encoded stream can be correctly
performed at the image decoding device. Also, classifying
is performed according to difference of motion vectors of
the adjacent blocks, so it is not necessary to include the
information regarding case classifying in the encoded stream.
[0222]
<16. Encoding Processing of Prediction Motion Vector
Identification Information>
Also, in the event that case classifying is performed
according to motion vectors of adjacent blocks, occurrence
probability is calculated for each candidate beforehand, and
encoding amount can be further reduced at the second
encoding processing unit by performing encoding in
accordance with the occurrence probability. Fig. 25
exemplifies the occurrence probability for each prediction
motion vector candidate. For example, let us say that in
case Ml, the occurrence probability of the motion vector
MV -A is "30%", and the occurrence probability of motion
vector MV C is "70%". Also, let us say that in case M2, the
occurrence probability of the motion vector MV_A is "70%",
and the occurrence probability of motion vector MV C is
"30%". Furthermore, in case M3, the occurrence probability
- 10
5P263812
of the motion vector MV A is "35%", and the occurrence
probability of motion vector MV -B is "35%" and the
occurrence probability of the motion vector MV C is "30%".
[0223]
In encoding of the prediction motion vector information,
when the prediction motion vector is a motion vector of
higher occurrence probability, the second encoding
processing unit 168 shortens the bit length as compared to a
case of being a motion vector with a low occurrence
probability. That is, in the case of case M1, in the event
that the prediction motion vector is the vector MV C,
encoding is performed so as to be shorten the bit length as
compared to a case where the motion vector is MV A. Also,
in the case of case M2, in the event that the prediction
motion vector is the vector MV A, encoding is performed so
as to be shorten the hit length as compared to a case where
the motion vector is MV C.
[0224]
Thus, occurrence probability is calculated for each
prediction motion vector candidate beforehand, and the
prediction motion vector selecting information indicating a
motion vector with a high candidate probability reduces the
allocated code amount as compared with prediction motion
vector selecting information indicating a motion vector with
a low occurrence probability. Thus, compression of the
- 102 -
SP263812
prediction motion vector information can be raised.
[0225]
<17. Software Processing>
The series of the processing described in the
specification can be performed by hardware, software, or a
combined configuration of both. In the case where
processing by the software is performed, a program in which
is recorded a processing sequence is installed in memory
within a computer built into dedicated hardware, and is
executed. Alternatively, a program may be installed in a
general-purpose computer where various types of processing
can be performed.
[0226]
For example, the program can be recorded beforehand in
a hard disk or ROM (Read Only Memory) as the recording
medium. Alternatively, the program can temporarily or
permanently be stored (recorded) in removable recording
media such as a flexible disk, CD-ROM (Compact Disc Read
Only Memory), MO (Magneto optical) disc, DVD (Digital
Versatile Disc), a magnetic disk, and semiconductor memory.
Such removable recording media can be provided as so-called
packaged software.
[0227]
Note that in addition to a program being installed onto
a computer from removable recording media as described above,
- 103 -
SP263812
the program can be transferred wirelessly to a computer from
a download site, or transferred by cable to the computer
through a network such as a LAN (Local Area Network)or and
the Internet, and a computer may receive the program
transferred in that way and may install in a recording
medium such as a built-in hard disk or the like.
[0228]
It goes without saying that the steps describing the
program include processing which is performed following the
described order in time-sequence, and also include
processing which is performed in parallel or individually,
even if not necessarily being processed in time-sequence.
[0229]
<18. Case of Applying to Electronic Devices>
Also, in the above, the H.264/AVC format has used as
the encoding format/decoding format, but the present
invention can be also applied to the image encoding
device/image decoding device which uses an encoding
format/decoding format which performs other motion
prediction/compensation processing.
[0230]
Furthermore, the present invention can be applied to
the image encoding device and image decoding device used at
the time of receiving image information (bit stream)
compressed by orthogonal transform such as discrete cosine
- 104 -
SP263812
transform, as with MPEG, H.26x or the like, and motion
compensation via network media such as satellite
broadcasting, cable TV (television), the Internet, cellular
telephone, or the like, or at the time of processing on a
storage medium such as an optical and magnetic disk, and the
flash memory.
[0231]
The above-described image encoding device 10 and image
decoding device 50 can be applied to any electronic device.
Examples are described below.
[0232]
Fig. 26 exemplifies a schematic configuration of a
television apparatus to which the present invention has been
applied. The television apparatus 90 has an antenna 901, a
tuner 902, a demultiplexer 903, a decoder 904, a video
signal processing unit 905, a display unit 906, an audio
signal processing unit 907, a speaker 908, and external
interface unit 909. Furthermore, the television apparatus
90 has a control unit 910, a user interface unit 911 or the
like.
[0233]
The tuner 902 performs demodulation by choosing a
desired channel from the broadcast wave signals received at
the antenna 901, and outputs the obtained stream to the
demultiplexer 903.
- 105 -
SP263812
[0234]
The demultiplexer 903 extracts the packet of a video
and audio of a program to be viewed from a stream and
outputs the data of extracted packets to the decoder 904.
Also, the demultiplexer 903 supplies the packets of data
such as EPG (Electronic Program Guide) to the control unit
910. Note that in the event that scrambling has been
performed, descrambling is performed at a demultiplexer or
the like.
[0235]
The decoder 904 performs decoding process of the packet,
and outputs the video data generated by being subjected to
decoding processing to the video signal processing unit 905
and audio data to the audio signal processing unit 907.
[0236]
The video signal processing unit 905 performs video
processing according to the noise reduction and user
settings, on the video data. The video signal processing
unit 905 generates video data for displaying programs on the
display unit 906 and image data according to processing
based on applications supplied through the network. Also,
the video signal processing unit 905 generates video data to
display menu screens or the like such as for selection of
items, and superimposes this on video data of the program.
The video signal processing unit 905 generates driving
- 106 -
SP263812
signals based on the video data generated in this way and
drives the display unit 906.
[0237]
The display unit 906 drives a display device (e.g.,
liquid crystal display device or the like) based on the
driving signal from the video signal processing unit 905 so
as to display the video of the program.
[0238]
The audio signal processing unit 907 subjects the audio
data to predetermined processing such as noise reduction and
performs audio output by performing D/A converting
processing and amplifying processing of the audio data after
processing and supplying to the speaker 908.
[0239]
The external interface unit 909 is an interface to be
connected to external equipment or a network, and performs
data transmission and reception of such as video data or
audio data.
[0240]
The user interface unit 911 is connected to the control
unit 910. The user interface unit 911 is configured of an
operation switch or a remote control signal receiver or the
like, and supplies operation signals according to user
operation to the control unit 910.
[0241]
- 107 -
SP263812
The control unit 910 is configured using a CPU (Central
Processing Unit), memory or the like. The memory stores
programs to be executed by the CPU, and various data
necessary for the CPU to perform processing, EPG data, data
obtained via a network, and the like. The program stored in
the memory is read out by the CPU at a predetermined timing
such as at the time of starting up the television apparatus
90 and is executed. The CPU controls each part so that the
television apparatus 90 operates according to user
operations by executing a program.
[0242]
Note that with the television apparatus 90, a bus 912
is provided to connect a tuner 902, a demultiplexer 903, a
video signal processing unit 905, an audio signal processing
unit 907, an external interface unit 909 and a control unit
910.
[0243]
With the television apparatus thus configured, the
function of the image decoding device (image decoding
method) of the present application is provided to the
decoder 904. Therefore, even if the encoding efficiency and
image quality is improved and generating of the encoded
stream is performed by using a function of the image
encoding device of the present application on the
broadcasting station side, decoding of the encoded stream
- 108 -
SP263812
can be correctly performed at the television apparatus.
[0244]
Fig. 27 exemplifies a schematic configuration of the
cellular telephone to which the present invention has been
applied. The cellular telephone 92 has a communication unit
922, an audio codec 923, a camera unit 926, an image
processing unit 927, a multiplex separating unit 928, a
record reproduction unit 929, a display unit 930, and a
control unit 931. These are connected each other through a
bus 933.
[0245]
Also, an antenna 921 is connected to the communication
unit 922, and a speaker 924 and microphone 925 are connected
to the audio codec 923. Furthermore, an operating unit 932
is connected to the control unit 931.
[0246]
The cellular telephone 92 performs various operation
such as transmission and reception of audio signals,
transmission and reception of email and image data, image
shooting, data recording, and so forth, in various modes
such as audio call mode or data communication mode.
[0247]
In an audio call mode, audio signals generated at the
microphone 925 are converted to audio data and data
compression at the audio codec 923 and supplied to the
- 109 -
SP263812
communication unit 922. The communication unit 922 performs
demodulation processing of the audio data and frequency
conversion processing of audio data to generate transmission
signals. Also, the communication unit 922 supplies
transmission signals to the antenna 921 so as to be
transmitted to an unshown base station. Also, the
communications unit 922 performs amplification, frequency
conversion processing, and demodulation processing of
reception signals received at the antenna 921 and
demodulation processing, and supplies the obtained audio
data to the audio codec 923. The audio codec 923 performs
data decompression of audio data and conversion to the
analog audio signals and outputs to the speaker 924.
[0248]
Also, in data communication mode, in the event of
performing email transmission, the control unit 931 receives
text data input by the operation of the operating unit 932
and displays the input text to the display unit 930. Also,
the control unit 931 generates email data based on user
instructions at the operating unit 932 and supplies to the
communication unit 922. The communication unit 922 performs
modulation processing of the email data, frequency
conversion processing, and so forth, and transmits the
obtained transmission signals from the antenna 921. Also,
the communication unit 922 performs amplification, frequency
- 110 -
SP263812
conversion processing, and demodulation processing of the
reception signals received with the antenna 921, and
restores the email data. This email data is supplied to the
display unit 930 to display the contents of the email.
[0249]
Note that the cellular telephone 92 may store the
received email data in storage medium in the
recording/playback unit 929. The storage medium is any
storage medium which is readable/writeable. For example,
the storage medium is semiconductor memory such as RAM or
built-in flash memory, removable media such as a hard disk,
a magnetic disk, an MO disc, an optical disc, USB memory, a
memory card, or the like.
[0250]
In the event that image data is transmitted in a data
communication mode, the image data generated at the camera
unit 926 is supplied to the image processing unit 927. The
image processing unit 927 performs encoding processing of
the image data and generates encoded data.
[0251]
The multiplex separating unit 928 multiplexes encoded
data generated at the image processing unit 927 and audio
data supplied from the audio codec 923 by a predetermined
format and supplies to the communication unit 922. The
communication unit 922 performs demodulation processing of
- ill -
SP263812
the multiplexed data, frequency conversion processing, and
the like, and transmits the obtained transmission signals to
the antenna 921. Also, the communication unit 922 performs
amplification, frequency conversion processing, demodulation
processing, or the like of the reception signals received at
the antenna 921, and restores the multiplexing data. This
multiplexing data is supplied to the multiplex separating
unit 928. The multiplex separating unit 928 performs
separating of the multiplexing data, and supplies the audio
data to the image processing unit 927. The image processing
unit 927 performs decoding processing of the encoded data,
and generates image data. This image data is supplied to
the display unit 930 to display the received image. The
audio codec 923 converts the audio data into analog audio
signals and supplies to the speaker 924 to output the
received audio.
[0252]
With the cell-phone device thus configured, the image
processing unit 927 has a function of the image encoding
device (image encoding method) and the image decoding device
(image decoding method) of the present application.
Therefore, encoding efficiency and image quality can be
improved at the time of performing communication of the
image data.
[0253]
- 112 -
SP263812
Fig. 28 exemplifies a schematic configuration of the
recording playback device to which the present invention has
been applied. The recording/playback device 94 records, for
example, audio data and video data of the received broadcast
program to a recording medium, and provides the recorded
data to a user in a timing according to the instructions of
the user. Also, an arrangement can be made such that the
recording/playback device 94 may acquire, for example, audio
data and video data from other devices, so as to record to a
recording medium. Furthermore, an arrangement can be made
such that the recording/playback device 94 may perform, by
decoding audio data and video data recorded in a recording
medium to output image display and audio output on monitor
devices.
[0254]
The recording/playback device 94 has a tuner 941, an
external interface unit 942, an encoder 943, an HDD (Hard
Disk Drive) unit 944, a disk drive 945, a selector 946, a
decoder 947, an OSD (On-Screen Display) unit 948, a control
unit 949, and a user interface unit 950.
[0255]
The tuner 941 chooses a station of a desired channel
from the broadcast signals received at an unshown antenna.
The tuner 941 outputs the encoded stream obtained by
demodulating the reception signals of the desired channel to
- 113 -
SP263812
the selector 946.
[0256]
The external interface unit 942 is configured of at
least any one of an IEEE1394 interface, a network interface
unit, a USB interface, a flash memory interface, and so
forth. The external interface unit 942 is an interface to
be connected to an external device and a network, a memory
card and the like, and performs data reception of such as
video data or audio data to record.
[0257]
The encoder 943 performs encoding when video data and
audio data supplied from the external interface unit 942 are
not encoded by a predetermined format and outputs an encoded
stream to the selector 946.
[0258]
The content data such as video or the audio, various
programs, other data, or the like are recorded in a built-in
hard disk, and the HDD unit 944 also reads out these at the
time of playback from the hard disk.
[0259]
The disk drive 945 performs recording or playback of
the signals to a mounted optical disc. An optical disc is,
e.g., a DVD disc (DVD-Video, DVD-RAM, DVD-R, DVD-RW, DVD+R,
DVD+RW or the like) or a Blu-ray disk or the like.
[0260]
- 114 -
SP263812
The selector 946 selects, at the time of the recording
of video and audio, either stream from the tuner 941 or
encoder 943, and supplies to either of HDD unit 944 and disk
drive 945. Also, the selector 946 supplies, at the time of
the playback of video and audio, a stream output from the
HDD unit 944 or disk drive 945 to the decoder 947.
[0261]
The decoder 947 performs decoding process of the stream.
The decoder 947 supplies the generated video data to the OSD
unit 948 by performing decoding processing. Also, the
decoder 947 outputs the generated audio data by performing
decoding processing.
[0262]
The OSD unit 948 generates video data to display menu
screens or the like such as for the selection of items and
superimposes this on the video data output from the decoder
947, and outputs.
[0263]
The user interface unit 950 is connected to the control
unit 949. The user interface unit 950 is configured of an
operation switch or a remote control signal receiver or the
like and supplies operation signals according to user
operations to the control unit 949.
[0264]
The control unit 949 is configured using a CPU or
- 115 -
SP263812
memory. The memory stores a program executed by CPU and
necessary various data when the CPU performing processing.
The program stored in the memory is read out at a
predetermined timing such as at the time of start of the
recording/playback device 94, and executed by the CPU. The
CPU controls each part so that the recording/playback device
94 operates in accordance with user operation, by executing
a program.
[0265]
With the recording/playback device thus configured,
functions of the image encoding device (image encoding
method) of the present application are provided to the
encoder 943, functions of the image decoding device (image
decoding method) are provided to the decoder 947, and
accordingly, encoding efficiency and image quality are
improved, thereby performing recording and playback of video
efficiently.
[0266]
Fig. 29 exemplifies a schematic configuration of an
imaging apparatus to which the present invention has been
applied. The imaging apparatus 96 images a subject so as to
display an image of a subject on a display unit, and record
this in a recording medium as image data.
[0267]
The imaging apparatus 96 has an optical block 961, an
- 116 -
SP263812
imaging unit 962, a camera signal processing unit 963, an
image data processing unit 964, a display unit 965, an
external interface unit 966, a memory unit 967, a media
drive 968, an OSD unit 969, and a control unit 970. Also, a
user interface unit 971 is connected to the control unit 970.
Furthermore, the image data processing unit 964 and external
interface unit 966, memory unit 967, media drive 968, OSD
unit 969, and control unit 970 and so forth are connected
via a bus 972.
[0268]
The optical block 961 is configured of a focusing lens,
diaphragm mechanism, and so forth. The optical block 961
images an optical image of a subject on an imaging face of
the imaging unit 962. The imaging unit 962 is configured
using a CCD or CMOS image sensor, and electrical signals
corresponding to the optical image is generated by
photoelectric conversion and supplied to the camera signal
processing unit 963.
[0269]
The camera signal processing unit 963 performs various
kinds of camera signal processing such as KNEE correction
and gamma correction, color correction and the like, to the
electrical signals supplied from the imaging unit 962. The
camera signal processing unit 963 supplies the image data
after camera signal processing to the image data processing
- 117 -
SP263812
unit 964.
[0270]
The image data processing unit 964 performs encoding
processing of the image data supplied from the camera signal
processing unit 963. The image data processing unit 964
supplies the generated encoded data to the external
interface unit 966 and media drive 968 by performing
encoding processing. Also, the image data processing unit
964 performs decoding processing of the encoded data
supplied from the external interface unit 966 and media
drive 968. The image data processing unit 964 supplies the
generated image data to the display unit 965 by performing
decoding processing. Also, the image data processing unit
964 performs processing to supply the image data supplied
from the camera signal processing unit 963 to the display
unit 965, and processing to superimpose data for display
acquired from the OSD unit 969 onto the image data and
supply to the display unit 965.
[0271]
The OSD unit 969 generates data for display such as a
menu screen or the icon made of signs, text or shapes, and
outputs to the image data processing unit 964.
[0272]
For example, the external interface unit 966 is
configured of USB input and output terminals, and in a case
- 118 -
SP263812
of performing printing of the image, is connected to a
printer. Also, a drive is connected to the external
interface unit 966 according to need, and removable media
such as a magnetic disk, optical disc, or the like is
mounted as appropriate, and a computer program read out
therefrom is installed according to need. Furthermore, the
external interface unit 966 has a network interface
connected to a predetermined network such as a LAN or the
Internet. For example, according to the instructions from
the user interface unit 971, the control unit 970 reads out
encoded data from the memory unit 967 so as to be supplied
to the other devices connected via a network from the
external interface unit 966. Also, the control unit 970
acquires encoded data and image data supplied from other
devices via a network, through the external interface unit
966, so as to supply this to the image data processing unit
964.
[0273]
For example, as for a recording medium driven by the
media drive 968, any removable media which is readable and
writable may be used, such as a magnetic disk, an MO disk,
an optical disc, and semiconductor memory. Also, with a
recording medium, the kind of removable media is also
optional, and may be a tape device, may be a disk and may be
a memory card. As a matter of course this may be a non
- 119 -
SP263812
contact IC card or the like.
[0274]
Also, an arrangement may be made where the media drive
968 and recording medium are integrated and, for example,
are configured of a non-portable storage medium such as a
built-in type hard disk drive or SSD (Solid State Drive) or
the like.
[0275]
The control unit 970 is configured using a CPU memory,
and so forth. The memory stores programs to be stored by
the CPU, and various types of data necessary for the CPU to
perform processing. Programs stored in the memory are read
out at predetermined timing such as at the time of startup
of the imaging device 96 by the CPU, and are executed. The
CPU controls each part so that operations of the imaging
device 96 correspond to user operations, by executing the
program.
[0276]
With the imaging device thus configured, the image data
processing unit 964 is provided with a function of the image
encoding device (image encoding method) and the image
decoding device (image decoding method) of the present
application. Therefore, at the time of recording the
imaging image to the memory unit 967 or a recording medium,
improvement of encoding efficiency and image quality can be
- 120 -
SP263812
realized, and recording/playback of the imaging image can be
performed efficiently.
[0277]
Furthermore, the present invention is not to be
interpreted as being restricted to the above-described
embodiments. The embodiments are disclosed exemplarily, and
it is clearly understood that one skilled in the art can
accomplish modifications and a substitutions of the
embodiments without departing from the essence of the
present invention. That is, the Claims should be taken into
consideration to judge the essence of the present invention.
Industrial Applicability
[0278]
With the image decoding device and image encoding
device and method thereof and programs thereof in this
invention, in the decoding of the image, candidates of
prediction motion vectors are set for a block to be decoded,
using this block and motion vectors of adjacent blocks which
havebeen decoded. Also, a motion vector indicated by
prediction motion vector selecting information obtained by
performing lossless decoding of an encoded stream is
selected from candidates to be a prediction motion vector.
The motion vector of the block to be decoded is calculated
by adding the difference motion vector obtained by
performing lossless decoding of this prediction motion
- 121 -
SP263812
vector and an encoded stream. Also, with the encoding of
the image, candidates of prediction motion vectors are set
for the block to be encoded, and a motion vector where the
encoding efficiency is the best is selected from these
candidates as a prediction motion vector. Also, encoding of
a difference motion vector indicating the difference between
the prediction motion vector and motion vector of the block
to be encoded, and prediction motion vector selecting
information which motion vector has been selected from the
candidates, is performed. Therefore, the motion vector
where the encoding efficiency is the best is selected from
candidates of the prediction motion vector and is used, so
reduction of code amount needed for the transmission of the
motion vector is enabled, thereby improving encoding
efficiency. Also, along with the reduction of the code
amount needed for the transmission of the motion vector,
raising the bit rate of the quantization data is enabled,
thereby realizing improvement of the image quality.
Therefore, as with MPEG, H.26x or the like, this is suitable
of an image decoding device, image encoding device, and so
forth, used at the time of transmitting and receiving image
information (bit stream) obtained by performing encoding in
increments of blocks via network media such as satellite
broadcasting, cable TV, the Internet, cell phone and so
forth, or at the time of processing on a storage medium such
- 122 -
SP263812
as an optical disc, a magnetic disk, and flash memory.
Reference Signs List
[0279]
10 image encoding device
11 A/D conversion unit
12, 57 screen rearranging buffer
13, 166 subtraction unit
14 orthogonal transform unit
15 quantization unit
16 lossless encoding unit
17,51 storage buffer
18 rate control unit
21, 53 inverse quantization unit
22, 54 inverse orthogonal transform unit
23, 55, 526 addition unit
24, 56 deblocking filter
25, 61 frame memory
26, 62, 65, 946 selector
31,63 intra prediction unit
32 motion prediction/compensation unit
33 prediction image/optimal mode selecting unit
50 image decoding device
52 lossless decoding unit
58 D/A converting unit
64 motion compensation unit
- 123 -
SP263812
90 television apparatus
92 cellular telephone
94 recording/playback device
96 imaging apparatus
161, 523 motion vector storage unit
162, 524 case classifying unit
165, 165a, 525, 525a motion vector selecting unit
167 first encoding processing unit
168 second encoding processing unit
521 first decoding processing unit
522 second decoding processing unit
901, 921 antenna
902, 941 tuner
903 demultiplexer
904,947 decoder
905 video signal processing unit
906 display unit
907 audio signal processing unit
908 speaker
909,
910,
911,
912,
942, 966 external I/F
931, 949, 970 control unit
932, 971 user interface unit
933, 972 bus
922 communication unit
923 audio codec
- 124 -
924 speaker
925 microphone
926 camera unit
927 image processing unit
928 multiplex separating unit
929 recording/playback unit
930 display unit
943 encoder
944 ADD unit
945 disk drive
948, 969 OSD unit
961 optical block
962 imaging unit
963 camera signal processing unit
964 image data processing unit
965 display unit
967 memory unit
968 media drive
SP263812
- 125 -

CLAIMS
SP263812
[Claim 1] (amended)
An image decoding device comprising:
a first decoding processing unit configured to obtain a
difference motion vector by performing decoding of an
encoded stream;
a second decoding processing unit configured to obtain
prediction motion vector selecting information by decoding
the encoded stream;
a motion vector selecting unit configured to set
prediction motion vector candidates as to a block to be
decoded, select a motion vector, indicated in the prediction
motion vector selecting information, from prediction motion
vector candidates, and in the event that the size of the
block to be decoded is great, increase the number of the
prediction motion vector candidates as compared to a case
where the block size is small; and
an adding unit configured to calculate a motion vector
of the block to be decoded by adding the difference motion
vector to the prediction motion vector.
[Claim 2]
The image decoding device according to Claim 1,
wherein the motion vector selecting unit uses a motion
- 126 -
SP263812
)r of adjacent blocks which have been decoded, and which
djacent to the block to be decoded, and sets candidates
e prediction motion vector.
Im 3]
The image decoding device according to Claim 2,
wherein the second decoding processing unit decodes the
led stream and obtains the size of the block to be
led,
and wherein the motion vector selecting unit performs
classifying according to the size of the block to be
led, and sets candidates of the prediction motion vector
>ach case.
The image decoding device according to Claim 2, further
rising:
a case classifying unit configured to perform case
sifying according-to the difference of motion vectors of
adjacent blocks,
wherein the motion vector selecting unit sets
idates of the prediction motion vector for each case
inguished at the case classifying unit.
- 128 -
[Claim O-T ( amended)
SP263812
An image encoding device comprising:
a motion vector selecting unit configured to set
prediction motion vector candidates as to a block to be
encoded, select a motion vector, indicated in the prediction
motion vector selecting information, from prediction motion
vector candidates, and in the event that the size of the
block to be decoded is great, increase the number of the
prediction motion vector candidates as compared to a case
where the block size is small;
a first encoding processing unit configured to perform
encoding of a difference motion vector indicating the
difference between the prediction motion vector selected by
the motion vector selecting unit and a motion vector of the
block to be encoded; and
a second encoding processing unit configured to perform
encoding of prediction motion vector selecting information
indicating which motion vector has been selected from the
prediction motion vector candidates.
3
[Claim 6']
The image encoding device according to Claim.S
wherein the motion vector selecting unit uses motion vectors
of adjacent blocks which have been decoded and which are
- 129 -
SP263812
adjacent to the block to be decoded, and sets candidates of
the prediction motion vector.
[Claim 1l-] J
3
The image encoding device according to Claim 1.0,
wherein the motion vector selecting unit performs case
classifying according to the size of the block to be decoded,
and sets candidates of the prediction motion vector for each
case.

[Claim ,1,-3] (amended)
;al
The image encoding device according to Claim 11
wherein the motion vector selecting unit selectively uses a
plurality of motion vectors of the adjacent blocks as the
prediction motion vector candidates, and in the selection of
motion vectors to serve as candidates, motion vectors of
blocks apart from each other in the adjacent blocks are
selected.
[Claim '$A-] )
The image encoding device according to Claim-1-0,
further comprising:
acase classifying unit configured to perform case
- 130 -
SP263812
classifying according to difference of the motion vectors of
adjacent blocks,
wherein the motion vector selecting unit sets the
prediction motion vector candidates for each case
distinguished by the case classifying unit.
[Claim 7„81t 12
The image encoding device according to Claim ] ,
wherein the motion vector selecting unit takes each motion
vector where difference occurs which exceeds a threshold set
beforehand, as a candidate of the prediction motion vector.
[Claim 113
The image encoding device according to Claim 9,
wherein, in the event that the number of candidates of the
prediction motion vector is a plurality, the second encoding
processing unit performs encoding of the prediction motion
vector selecting information indicating which motion vector
has been selected from the candidates.
[Claim 171^^
2
The image encoding device according to Claim 9,
wherein occurrence probability is calculated beforehand
for each prediction motion vector candidate;
and wherein the second encoding processing unit reduces
- 131 -
SP263812
the code amount to be allocated for the prediction motion.
vector selecting information indicating a motion vector
where occurrence probability is higher, as compared with the
prediction motion vector selecting information indicating a
motion vector where occurrence probability is lower.
S
[Claim 18) ( amended)
An image decoding method comprising:
a process of setting prediction motion vector
candidates as to a block to be encoded, selecting select a
motion vector, indicated in the prediction motion vector
selecting information, from prediction motion vector
candidates, and in the event that the size of the block to
be decoded is great, increasing the number of the prediction
motion vector candidates as compared to a case where the
block size is small;
a process of performing encoding of a difference motion
vector indicating the difference between the selected
prediction motion vector and a motion vector of the block to
be encoded; and
a process of performing encoding of the prediction
motion vector selecting information indicating which motion
vector has been selected from the prediction motion vector
candidates.

Documents

Application Documents

# Name Date
1 Power of Authority.pdf 2012-12-17
2 Form-5.pdf 2012-12-17
3 Form-3.pdf 2012-12-17
4 Form-1.pdf 2012-12-17
5 Drawings.pdf 2012-12-17
6 10420-delnp-2012-Correspondence Others-(17-12-2012).pdf 2012-12-17
7 10420-delnp-2012-Form-3-(01-03-2013).pdf 2013-03-01
8 10420-delnp-2012-Correspondence Others-(01-03-2013).pdf 2013-03-01