U.S. patent application number 13/942081 was filed with the patent office on 2016-10-20 for method and device for encoding/decoding motion vector.
The applicant listed for this patent is SK TELECOM CO., LTD.. Invention is credited to Jongki Han, Byeungwoo Jeon, Haekwang Kim, Juock Lee, Yunglyul Lee, Jeongyeon LIM, Joohee Moon, Hyoungmee Park.
Application Number | 20160309144 13/942081 |
Document ID | / |
Family ID | 46714521 |
Filed Date | 2016-10-20 |
United States Patent
Application |
20160309144 |
Kind Code |
A9 |
LIM; Jeongyeon ; et
al. |
October 20, 2016 |
METHOD AND DEVICE FOR ENCODING/DECODING MOTION VECTOR
Abstract
A method performed by a motion vector encoding apparatus for
encoding a motion vector includes: determining a first motion
vector and a second motion vector relating to a current block to be
encoded; determining predicted motion vectors of the first motion
vector and the second motion vector, respectively; calculating a
first differential motion vector and a second differential motion
vector; the first differential motion vector corresponding to a
difference between the first motion vector and the predicted motion
vector of the first motion vector, the second differential motion
vector corresponding to a difference between the second motion
vector and the predicted motion vector of the second motion vector;
and encoding the first differential motion vector and the second
differential motion vector, wherein the first motion vector and the
second motion vector have different resolutions.
Inventors: |
LIM; Jeongyeon;
(Seongnam-si, KR) ; Moon; Joohee; (Seoul, KR)
; Lee; Yunglyul; (Seoul, KR) ; Kim; Haekwang;
(Seoul, KR) ; Jeon; Byeungwoo; (Seongnam-si,
KR) ; Han; Jongki; (Seoul, KR) ; Lee;
Juock; (Seoul, KR) ; Park; Hyoungmee;
(Suwon-si, KR) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
SK TELECOM CO., LTD. |
Seoul |
|
KR |
|
|
Prior
Publication: |
|
Document Identifier |
Publication Date |
|
US 20130294518 A1 |
November 7, 2013 |
|
|
Family ID: |
46714521 |
Appl. No.: |
13/942081 |
Filed: |
July 15, 2013 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
PCT/KR2012/000361 |
Jan 16, 2012 |
|
|
|
13942081 |
|
|
|
|
Current U.S.
Class: |
1/1 |
Current CPC
Class: |
H04N 19/52 20141101;
H04N 19/46 20141101; H04N 19/513 20141101; H04N 19/91 20141101;
H04N 19/523 20141101 |
International
Class: |
H04N 7/26 20060101
H04N007/26 |
Foreign Application Data
Date |
Code |
Application Number |
Jan 15, 2011 |
KR |
10-2011-0004298 |
Jan 17, 2011 |
KR |
10-2011-0004388 |
Claims
1. A method performed by a motion vector encoding apparatus for
encoding a motion vector, the method comprising: determining a
first motion vector and a second motion vector relating to a
current block to be encoded; determining a predicted motion vector
of the first motion vector and a predicted motion vector of the
second motion vector; calculating a first differential motion
vector and a second differential motion vector, wherein the first
differential motion vector corresponds to a difference between the
first motion vector and the predicted motion vector of the first
motion vector, and the second differential motion vector
corresponds to a difference between the second motion vector and
the predicted motion vector of the second motion vector; and
encoding the first differential motion vector and the second
differential motion vector, wherein the first motion vector and the
second motion vector have different resolutions.
2. The method of claim 1, further comprising: generating a motion
vector resolution flag indicating a resolution of at least one
motion vector between the first motion vector and the second motion
vector.
3. The method of claim 1, wherein one of the first motion vector
and the second motion vector has a fixed resolution and the other
of the first motion vector and the second motion vector has a
variable resolution.
4. A method performed by a motion vector decoding apparatus for
decoding a motion vector, the method comprising: determining a
first predicted motion vector and a second predicted motion vector
relating to a current block to be decoded; decoding information on
a motion vector resolution; decoding a first differential motion
vector and a second differential motion vector by using the decoded
information on the motion vector resolution; reconstructing a first
motion vector by adding the decoded first differential motion
vector and the first predicted motion vector; and reconstructing a
second motion vector by adding the decoded second differential
motion vector and the second predicted motion vector.
5. The method of claim 4, wherein the information on the motion
vector resolution includes a motion vector resolution flag
indicating a resolution of at least one motion vector among the
first motion vector and the second motion vector.
6. The method of claim 5, wherein one of the first motion vector
and the second motion vector has a fixed resolution, the other of
the first motion vector and the second motion vector has a variable
resolution, and the motion vector resolution flag indicates the
resolution of the other of the first motion vector and the second
motion vector.
7. The method of claim 4, further comprising: deriving a motion
vector for the current block by interpolating the first motion
vector and the second motion vector.
8. The method of claim 7, further comprising: deriving
motion-compensated blocks using the first and second motion vector,
and generating a predicted block of the current block from the
motion-compensated blocks.
9. A method performed by a motion vector encoding apparatus for
encoding a motion vector, the method comprising: determining an
inter prediction mode of a current block to be encoded, among
prediction modes including a first prediction mode which uses a
motion vector and a second prediction mode which uses a plurality
of motion vectors; determining each resolution of one or more
motion vectors of the current block; and encoding the one or more
motion vectors based on the determined each resolution.
10. The method of claim 9, further comprising: encoding a motion
vector resolution flag for indicating each resolution of the one or
more motion vectors of the current block.
11. The method of claim 9, wherein both of the first and the second
inter prediction mode belong to a unidirectional inter prediction
mode.
12. The method of claim 9, wherein the first inter prediction mode
is a unidirectional inter prediction mode, and the second inter
prediction mode is a bidirectional prediction mode.
13. A method performed by a motion vector decoding apparatus for
decoding a motion vector, the method comprising: determining an
inter prediction mode of a current block to be decoded, among
prediction modes including a first prediction mode which uses a
motion vector and a second prediction mode which uses a plurality
of motion vectors; determining each resolution of one or more
motion vectors of the current block; and decoding the one or more
motion vectors based on the determined each resolution.
14. The method of claim 13, further comprising: decoding a motion
vector resolution flag for indicating said each resolution of the
one or more motion vectors of the current block.
15. The method of claim 13, wherein said each resolution of the one
or more motion vectors is determined based on the determined inter
prediction mode.
16. The method of claim 13, wherein the inter prediction mode is
determined based on the determined each resolution of the one or
more motion vectors.
Description
CROSS-REFERENCE TO RELATED APPLICATION
[0001] The present application is a continuation of International
Patent Application No. PCT/KR2012/000361, filed Jan. 16, 2012,
which is based on and claims priority to Korean Patent Application
No. 10-2011-0004298, filed on Jan. 15, 2011 and Korean Patent
Application No. 10-2011-0004388, filed on Jan. 17, 2011. The
disclosures of the above-listed applications are hereby
incorporated by reference herein in their entirety.
TECHNICAL FIELD
[0002] The present disclosure relates to a method and a device for
encoding/decoding a motion vector in consideration of an adaptive
motion vector resolution.
BACKGROUND
[0003] The statements in this section merely provide background
information related to the present disclosure and may not
constitute prior art.
[0004] Encoding of data for a video includes an intra prediction
encoding and an inter prediction encoding. The intra prediction
encoding and the inter prediction encoding corresponds to an
effective method which can reduce the correlation between data and
is widely used for compression of various data. Especially, in the
inter prediction encoding, since a motion vector of a current block
determined through estimation of the motion of the current block
closely relates to motion vectors of neighboring (or adjacent)
blocks, it is allowed to calculate a Predicted Motion Vector (PMV)
for the motion vector of the current block from the motion vectors
of the neighboring blocks and then encode a Differential Motion
Vector (DMV) for the PMV without encoding the value of the motion
vector of the current block itself, which can considerably reduce
the quantity of bits to be encoded, so as to improve the encoding
efficiency.
[0005] That is, in the case of performing an inter prediction
encoding, an encoder encodes and transmits a differential vector
which corresponds to a differential value between a current motion
vector and a predicted motion vector determined through estimation
of the motion of the current block from a reference frame
reconstructed through previous encoding and decoding. Also, a
decoder reconstructs a current motion vector by adding a predicted
motion vector and a differential vector transmitted by predicting a
motion vector of a current block by using a motion vector of
previously decoded motion vectors of neighboring blocks.
[0006] Further, at the time of performing an inter prediction
encoding, the resolution may be collectively raised by
interpolating the reference frame, and the differential vector
corresponding to a differential value between the current motion
vector and the predicted motion vector determined through
estimation of the motion of the current block may be then encoded
and transmitted. In this event, an increase in the resolution of
the reference frame enables a more exact inter prediction, thereby
reducing the quantity of bits generated by the encoding of a
residual signal between an original image and a predicted image.
However, such an increase of the resolution of the reference frame
may also increase the resolution of the motion vector, which
increases the quantity of bits generated by the encoding of the
differential vector. In contrast, a decrease in the resolution of
the reference frame increases the quantity of bits generated by the
encoding of a residual signal but decreases the resolution of the
motion vector, which thereby decreases the quantity of bits
generated by the encoding of the differential vector.
[0007] The inventor(s) has noted that in the inter prediction
encoding according to the prior art, all blocks, slices, and
pictures of an image, which correspond to encoding units of the
image, are interpolated with the same resolution, and an inter
prediction encoding is then performed using a motion vector of the
same resolution for all of them. For example, in the case of
H.264/AVC standard, the resolution of the motion vector is fixed to
a 1/4 resolution. The inventor(s) has experienced that an increase
of the motion vector causes an increase of the residual signal to
thereby degrade the compression efficiency.
[0008] Further, the inventor(s) has experienced that since the
inter prediction decoding corresponds to the inter prediction
encoding, the degradation of the compression efficiency in the
inter prediction encoding makes it difficult to expect a high
efficiency of the inter prediction decoding.
SUMMARY
[0009] In accordance with some embodiments of the present
disclosure, a motion vector encoding apparatus is configured to
determine a first motion vector and a second motion vector relating
to a current block to be encoded, to determine a predicted motion
vector of the first motion vector and a predicted motion vector of
the second motion vector, to calculate a first differential motion
vector and a second differential motion vector, and to encode the
first differential motion vector and the second differential motion
vector.
[0010] In accordance with some embodiments of the present
disclosure, a motion vector decoding apparatus is configured to
determine a first predicted motion vector and a second predicted
motion vector relating to a current block to be decoded, to decode
information on a motion vector resolution, to decode a first
differential motion vector and a second differential motion vector
by using the decoded information on the motion vector resolution,
to reconstruct a first motion vector by adding the decoded first
differential motion vector and the first predicted motion vector,
and to reconstruct a second motion vector by adding the decoded
second differential motion vector and the second predicted motion
vector.
[0011] In accordance with some embodiments of the present
disclosure, a motion vector encoding apparatus is configured to
determine an inter prediction mode of a current block to be
encoded, among prediction modes including a first prediction mode
which uses a motion vector and a second prediction mode which uses
a plurality of motion vectors, to determine each resolution of the
one or more motion vectors of the current block, and to encode the
one or more motion vectors based on the determined each
resolution.
[0012] In accordance with some embodiments of the present
disclosure, a motion vector decoding apparatus is configured to
determine an inter prediction mode of a current block to be
decoded, among prediction modes including a first prediction mode
which uses a motion vector and a second prediction mode which uses
a plurality of motion vectors, to determine each resolution of one
or more motion vectors of the current block, and decoding the one
or more motion vectors based on the determined each resolution.
BRIEF DESCRIPTION OF DRAWINGS
[0013] FIG. 1 is an exemplary diagram of implementations of
different inter prediction modes combined with motion vector
resolutions and transmission or non-transmission of the motion
vector resolution flag according to at least one embodiment of the
present disclosure.
[0014] FIG. 2 is an exemplary diagram of implementations of
different inter prediction modes combined with motion vector
resolutions and transmission or non-transmission of the motion
vector resolution flag according to at least one embodiment of the
present disclosure.
[0015] FIG. 3 is an exemplary diagram of methods of
encoding/decoding motion vector resolutions and inter prediction
modes for a P picture in a single syntax.
[0016] FIG. 4 is an exemplary diagram of relative positions of
neighboring blocks A and B of a current block to be encoded/decoded
according to at least one embodiment of the present disclosure.
[0017] FIG. 5 is a diagram of a probability condition of bin 1.
[0018] FIG. 6 is a diagram of a probability condition of bin 2.
[0019] FIG. 7 is an exemplary diagram of methods of
encoding/decoding motion vector resolutions and inter prediction
modes for a B picture in a single syntax.
[0020] FIG. 8 is a diagram of a probability condition of bin 3.
[0021] FIG. 9 is a flowchart of encoding a motion vector according
to one embodiment of the present disclosure.
[0022] FIG. 10 is a flowchart of decoding a motion vector according
to another embodiment and the one embodiment of the present
disclosure.
[0023] FIG. 11 is a flowchart of encoding a motion vector according
to another embodiment and yet another embodiment of the present
disclosure.
[0024] FIG. 12 is a flowchart of decoding a motion vector according
to the another embodiment and yet another embodiment of the present
disclosure.
DETAILED DESCRIPTION
[0025] The present disclosure improves an encoding efficiency of a
motion vector, a compression efficiency of an image, and a quality
of a reconstructed image by encoding the motion vector using an
adaptive motion vector accuracy. The present disclosure
reconstructs an encoded motion vector by using an adaptive motion
vector accuracy. The present disclosure also efficiently encodes
and decodes information indicating the accuracy of a motion vector
in the case of using an adaptive motion vector accuracy.
[0026] Hereinafter, one embodiment of the present disclosure will
be described in detail with reference to the accompanying drawings.
In the following description, like reference numerals designate
like elements although the elements are shown in different
drawings. Further, in the following description of the one
embodiment, a detailed description of known functions and
configurations incorporated herein will be omitted for the purpose
of clarity and for brevity.
[0027] Additionally, in describing the components of the present
disclosure, terms like first, second, A, B, (a), and (b) are used.
These are solely for the purpose of differentiating one component
from another, and one of ordinary skill would understand the terms
are not to imply or suggest the substances, order or sequence of
the components. If a component is described as `connected`,
`coupled`, or `linked` to another component, one of ordinary skill
in the art would understand the components are not necessarily
directly `connected`, `coupled`, or `linked` but also are
indirectly `connected`, `coupled`, or `linked` via a third
component.
[0028] A video encoding apparatus and/or a video decoding apparatus
according to one or more embodiments may correspond to a user
terminal such as a PC (personal computer), notebook computer, PDA
(personal digital assistant), PMP (portable multimedia player), PSP
(PlayStation Portable), wireless communication terminal, smart
phone, TV, and the like. A video encoding apparatus and/or a video
decoding apparatus according to one or more embodiments may
correspond to various apparatuses each including a communication
apparatus such as a communication modem and the like for performing
communication with various types of devices or a wired/wireless
communication networks, a memory for storing various programs and
data that encode or decode a video or perform an
inter/intra-prediction for encoding or decoding, and a
microprocessor to execute a program so as to perform calculation
and controlling, and the like. The entropy coding is a scheme that
encodes a given set of symbols with the minimum number of bits to
represent them.
[0029] Hereinafter, motion vector encoding and decoding according
to some embodiments of the present disclosure will be
described.
One Embodiment
[0030] Now, an apparatus and a method for motion vector
encoding/decoding according to One embodiment of the present
disclosure will be described.
[0031] According to one or more embodiments of the present
disclosure, a motion vector may have various resolutions. The
motion vector according to the one embodiment of the present
disclosure may have a 1/4 resolution and a 1/8 resolution. When a
motion vector encoding apparatus according to the one embodiment of
the present disclosure need to notify a decoding apparatus of a
resolution of a motion vector, the motion vector encoding apparatus
may generate and transmit a motion vector resolution flag
indicating a resolution of a motion vector of a current block.
[0032] In the one embodiment, the motion vector resolution flag
indicates the resolution of the motion vector of the current block
rather than a resolution of a differential motion vector or a
predicted motion vector.
[0033] In the one embodiment, a plurality of motion vectors
relating to the current block, i.e. a plurality of motion vectors
for use in an inter prediction encoding of the current block, may
be transmitted. Further, the motion vector resolution flag for each
motion vector may be transmitted. Otherwise, the motion vector
resolution flag may be transmitted in units of current blocks. For
example, two motion vectors of ( 2/4, 1/4) and (-1/4, 1/4) wherein
the resolution of the motion vector of the current block is 1/4 may
be transmitted. Respective motion compensation blocks are generated
using the two motion vectors, and a predicted block of the current
block is generated using an average of the two motion compensation
blocks. In this event, the weighted average of the two motion
compensation blocks may be calculated.
[0034] When a plurality of motion vectors used for the inter
prediction of the current block are transmitted, the encoder
encodes information indicating that it is a mode in which a
plurality of motion vectors are transmitted. Therefore, when the
mode of the current block is a mode in which a plurality of motion
vectors exists, the decoder decodes the plurality of motion
vectors.
[0035] In the one embodiment, it is possible to generate a block
having a different resolution by using a plurality of motion
vectors. For example, when two motion vectors are used for the
inter prediction of the current block and are (0, 1/4) and (1/4,
1), respectively, it is possible to generate a motion compensation
block at the position of (1/8, 5/8) by generating respective motion
compensation blocks by using the two motion vectors and then
bi-linearly interpolating the two motion compensation blocks.
Therefore, the encoder may perform encoding using two motion
vectors having calculable locations, without encoding a motion
vector using the resolutions in units of 1/8 pixels. In this event,
the motion vector resolution is fixed to a 1/4 pixel resolution and
it is not necessary to encode the motion vector resolution flag.
Further, a plurality of motion vectors may have either the same
reference picture or different reference pictures.
[0036] As an alternative, when a plurality of motion vectors are
used in the inter prediction of the current block, the plurality of
motion vectors may have different resolutions, instead of having
the same fixed resolution. For example, when motion vector 1 is
(1/4, 1) and motion vector 2 is (1/8, 3/4), a motion compensation
block at the position of ( 3/16, 7/8) may be generated through the
motion compensation as described above. In this event, motion
vector 1 is fixed to a resolution in units of 1/4 pixels and,
accordingly, a motion vector resolution flag thereof is not
encoded. In the case of motion vector 2, a motion vector resolution
is adaptively encoded and a motion vector resolution flag
indicating the resolution is encoded. Or, on the contrary, the
resolution of motion vector 1 may be adaptively encoded while the
resolution of motion vector 2 is fixed to a predetermined value.
Otherwise, when two or more motion vectors are used in the inter
prediction of the current block, an adaptively selected resolution
may be used in encoding each of the motion vectors. Meanwhile, it
is usual that the decoder performs inverse operations to the
operations of an encoder. Further, in relation to determination of
a motion vector resolution and use of a resolution flag, there is
an agreement arranged in advance between the encoder and the
decoder. In a case where there is a fixed motion vector resolution
according to this agreement, when the decoder previously knows the
fixed resolution and has the motion vector resolution flag
transmitted from the encoder, the decoder decodes a motion vector
by using the motion vector resolution flag.
[0037] Further, in the case of a P picture allowing a
unidirectional simple prediction mode and a unidirectional complex
prediction mode, the one embodiment is also applicable to use of
the unidirectional complex prediction mode.
[0038] In addition, the one embodiment is applicable to an inter
prediction mode allowing a bidirectional prediction mode using two
reference pictures in a B picture. Further, it is natural that the
one embodiment is also applicable to a unidirectional complex
prediction mode in an inter prediction mode using one reference
picture in the B picture.
[0039] The unidirectional simple prediction mode of a P picture is
identical to the known prediction mode used for encoding and
decoding of the P picture. That is, this corresponds to the inter
prediction mode using one past reference picture and one motion
vector. According to the one embodiment, the unidirectional complex
prediction mode of the P picture is the inter prediction mode using
one past reference picture and two motion vectors. The other
operations are substantially the same as those of the bidirectional
prediction mode of the B picture, except for the point that two
motion compensation blocks are generated using one past reference
picture. Further, it is possible to achieve the unidirectional
complex prediction mode in the B picture also, and the
unidirectional complex prediction mode of the B picture is
identical to the unidirectional complex prediction mode in the P
picture.
[0040] FIG. 9 is a flowchart of encoding a motion vector according
to one embodiment of the present disclosure.
[0041] A motion vector encoding apparatus determines a first motion
vector and a second motion vector of a current block to be encoded
(S910). Herein, the first motion vector may have resolution which
is different from that of the second predicted motion vector as
mentioned earlier.
[0042] Meanwhile, the motion vector encoding apparatus determines a
first predicted motion vector of the first motion vector and a
second predicted motion vector of the second motion vector (S920).
Herein, the predicted motion vectors may be determined by using
motion vectors of the neighboring blocks adjacent to the current
block.
[0043] Then, the motion vector encoding apparatus differentiates
the first motion vector and the first predicted motion vector to
calculate a first differential motion vector, and differentiates
the second motion vector and the second predicted motion vector to
calculate a second differential motion vector (S930). The motion
vector encoding apparatus then encodes the first differential
motion vector and second differential motion vector (S940).
[0044] Meanwhile, the motion vector encoding apparatus may carry
out the encoding operation by selectively generating a motion
vector resolution flag which indicates motion vector resolution(s)
of the first motion vector and/or the second motion vector (S950).
For example, when both of the motion vector resolutions of the
first motion vector and second motion vector are fixed, the motion
vector encoding apparatus may not generate the motion vector
resolution flag. If the first motion vector has a fixed resolution
and the second motion vector has a variable resolution, it is okay
to generate and encode just one motion vector resolution flag which
indicates the resolution of the second motion vector.
[0045] Referring to FIG. 10, a method performed by a motion vector
decoding apparatus for decoding a motion vector will now be
described according to the aforementioned one embodiment of the
present disclosure.
[0046] At first, the motion vector decoding apparatus determines a
first predicted motion vector and a second predicted motion vector
of a current block to be decoded (S1010). The first and second
predicted motion vectors may be determined by using motion vectors
of neighboring blocks adjacent to the current block.
[0047] In addition, decoding is performed on information on a
motion vector resolution from a bitstream (S1020), followed by
decoding a first differential motion vector and a second
differential motion vector by using the information on the motion
vector resolution (S1030). Herein, the motion vector resolution
information may include a resolution flag which indicates motion
vector resolution(s) of a first motion vector and/or a second
motion vector.
[0048] For example, when both of the motion vector resolutions of
the first motion vector and second motion vector are fixed as
described earlier, the motion vector resolution flag may not be
included in the decoded information on the motion vector
resolution. Otherwise, when at least one of the motion vector
resolutions of the first motion vector and second motion vector is
variable, the motion vector resolution flag may be included in the
decoded information on the motion vector resolution. For example,
if when the first motion vector has a fixed resolution of 1/4 and
the second motion vector has resolution 1/8 which is different from
the fixed resolution, the motion vector resolution information may
include just the second motion vector resolution flag. These above
described functions and features are performed by the motion vector
encoding apparatus and the motion vector decoding apparatus sharing
a fixed resolution, when the motion vector decoding apparatus can
determine the motion vector resolution without needing a separate
motion vector resolution flag. However, the present disclosure is
not limited thereto. Regardless of whether the motion vector
resolution is fixed or not, the motion vector encoder apparatus may
transmit the motion vector resolution flag of the motion vector
incorporated in the motion vector resolution information, and then
the motion vector decoding apparatus may decode the motion vector
resolution flag to decode a differential motion vector.
[0049] The motion vector decoding apparatus determines in step
S1040 a first motion vector of the current block by adding the
decoded first differential motion vector decoded in step S1030 and
the first predicted motion vector determined in step S1010. In
addition, the motion vector decoding apparatus determines in step
S1050 a second motion vector by adding the decoded second
differential motion vector decoded in step S1030 and the second
predicted motion vector determined in step S1010. Thusly, the
motion vector decoding apparatus performs motion compensation on
the determined first motion vector and second motion vector to
thereby generate a prediction block of the current block.
[0050] For example, the motion vector decoding apparatus may use
the first motion vector and second motion vector to generate two
respective motion compensated blocks of the current block, and it
may calculate an average (or weighted average) of the two motion
compensated blocks to generate the predicted block of the current
block. Alternatively, the first motion vector and second motion
vector may be interpolated to generate the ultimate current block
motion vector which is then used to generate prediction block of
the current block. For example, if steps S1040 and S1050 determine
the first motion vector and second motion vector to be (1/4, 1) and
(1/8, 3/4) respectively, the motion vector decoding apparatus may
perform a linear interpolation of the two motion vectors to
generate a motion vector of ( 3/16, 7/8), and it may use this
linearly interpolated motion vector to generate the predicted block
of the current block.
Another Embodiment
[0051] Now, an apparatus and a method for motion vector
encoding/decoding according to another embodiment of the present
disclosure will be described.
[0052] In the another embodiment, the inter prediction encoding
includes a unidirectional simple prediction mode that uses one
motion vector, and a unidirectional complex prediction mode and a
bidirectional prediction mode, each of which uses two motion
vectors. For each block or each predetermined area, an optimum
prediction mode is determined and information indicating the
determined prediction mode is encoded. Further, a B picture allows
all of the unidirectional simple prediction mode, the
unidirectional complex prediction mode, and the bidirectional
prediction mode. In the case of a P picture, the unidirectional
simple prediction mode and the unidirectional complex prediction
mode are allowed. In the bidirectional prediction mode or the
unidirectional complex prediction mode, one reference block is
generated using a weighted average of two reference blocks obtained
through motion compensation using two motion vectors.
Alternatively, a real motion vector may be first obtained from an
average of two motion vectors, and a reference block may be then
generated by performing motion compensation using the real motion
vector. For example, motion vectors (1/4, 1) and (1/8, 3/4) are
encoded, and a reference block is then generated by performing
motion compensation using ( 3/16, 7/8), which is calculated using
the two motion vectors.
[0053] According to the another embodiment, a motion vector
resolution can be determined for each prediction mode.
[0054] FIG. 1 is some embodiments of resolutions of motion vectors
and transmission or non-transmission of resolution flags of motion
vectors according to each inter prediction mode.
[0055] The embodiments illustrated in FIG. 1 include embodiments of
motion vector resolutions including a 1/4 pixel resolution and a
1/8 pixel resolution usable in the unidirectional simple prediction
mode, the unidirectional complex prediction mode, and the
bidirectional prediction mode, and transmission or non-transmission
of resolution flags in the cases of those motion vector
resolutions.
[0056] Referring to FIG. 1, embodiments of the unidirectional
simple prediction mode include: (1) an embodiment in which the
motion vector resolution is fixed to a 1/4 pixel and, accordingly,
the resolution flag is not transmitted; and (2) an embodiment in
which the motion vector resolution is selectable from a 1/4 pixel
and a 1/8 pixel and the resolution flag is thus transmitted.
[0057] Referring to FIG. 1, embodiments of motion vector 1 and
motion vector 2 of the unidirectional complex prediction mode and
the bidirectional prediction mode include: (1) an embodiment in
which the motion vector resolution of motion vector 1 is fixed to a
1/4 pixel and, accordingly, the resolution flag of motion vector 1
is not transmitted, while the motion vector resolution of motion
vector 2 is selectable from a 1/4 pixel and a 1/8 pixel and the
resolution flag of motion vector 2 is thus transmitted; (2) an
embodiment in which each of the motion vector resolutions of motion
vector 1 and motion vector 2 is selectable from a 1/4 pixel and a
1/8 pixel and both of the resolution flags of motion vector 1 and
motion vector 2 are thus transmitted; (3) an embodiment in which
the motion vector resolution of motion vector 1 is selectable from
a 1/4 pixel and a 1/8 pixel and the resolution flag of motion
vector 1 is thus transmitted, while the motion vector resolution of
motion vector 2 is fixed to a 1/4 pixel and, accordingly, the
resolution flag of motion vector 2 is not transmitted; and (4) an
embodiment in which each of the motion vector resolutions of motion
vector 1 and motion vector 2 is selectable from a 1/4 pixel and a
1/8 pixel and one resolution flag indicating the resolution of
motion vector 1 or motion vector 2 is transmitted.
[0058] FIG. 2 is some embodiments of resolutions of motion vectors
and transmission or non-transmission of resolution flags of motion
vectors according to each inter prediction mode.
[0059] Referring to FIG. 2, embodiments of the unidirectional
simple prediction mode include: (1) an embodiment in which the
motion vector resolution is fixed to a 1/2 pixel and, accordingly,
the resolution flag is not transmitted; and (2) an embodiment in
which the motion vector resolution is selectable from a 1/2 pixel
and a 1/4 pixel and the resolution flag is thus transmitted.
[0060] Referring to FIG. 2, embodiments of motion vector 1 and
motion vector 2 of the bidirectional prediction mode include: (1)
an embodiment in which the resolution of motion vector 1 is fixed
to a 1/4 pixel and, accordingly, the resolution flag of motion
vector 1 is not transmitted, while the motion vector resolution of
motion vector 2 is selectable from a 1/2 pixel and a 1/8 pixel and
the resolution flag of motion vector 2 is thus transmitted; (2) an
embodiment in which the resolution of motion vector 1 is selectable
from a 1/2 pixel and a 1/8 pixel and the resolution flag of motion
vector 1 is thus transmitted and the resolution of motion vector 2
is selectable from a 1/2 pixel and a 1/4 pixel and the resolution
flag of motion vector 2 is thus transmitted; (3) an embodiment in
which the motion vector resolution of motion vector 1 is selectable
from a 1/2 pixel and a 1/8 pixel and the resolution flag of motion
vector 1 is thus transmitted, while the motion vector resolution of
motion vector 2 is fixed to a 1/4 pixel and, accordingly, the
resolution flag of motion vector 2 is not transmitted; and (4) an
embodiment in which each of the motion vector resolutions of motion
vector 1 and motion vector 2 is selectable from a 1/4 pixel and a
1/8 pixel and one resolution flag indicating the resolution of
motion vector 1 or motion vector 2 is transmitted.
[0061] Meanwhile, according to one or more embodiments of the
present disclosure, the motion vector resolution may be determined
for each motion vector or each predetermined picture area, for
example, in units of blocks, macro blocks, slices, pictures, or
sequences, which correspond to units for encoding/decoding. For
example, in inter prediction of blocks belonging to the first
slice, the resolution of a motion vector in the unidirectional
simple prediction mode is fixed to a 1/4 pixel and, accordingly,
the resolution flag of the motion vector is not transmitted, the
resolution of motion vector 1 in the bidirectional prediction mode
is fixed to a 1/4 pixel and, accordingly, the resolution flag of
motion vector 1 is not transmitted, and the resolution of motion
vector 2 in the bidirectional prediction mode is selectable from a
1/4 pixel and a 1/8 pixel and the resolution flag of motion vector
2 is thus transmitted to the decoder. In inter prediction of blocks
belonging to the next slice, the resolution of a motion vector in
the unidirectional simple prediction mode is fixed to a 1/2 pixel
and, accordingly, the resolution flag of the motion vector is not
transmitted, the resolution of motion vector 1 in the bidirectional
prediction mode is fixed to a 1/4 pixel and, accordingly, the
resolution flag of motion vector 1 is not transmitted, and the
resolution of motion vector 2 in the bidirectional prediction mode
is selectable from a 1/2 pixel and a 1/8 pixel and the resolution
flag of motion vector 2 is thus transmitted to the decoder.
[0062] Further, differently combined motion vector resolutions may
be used for the P picture and the B picture. For example, all P
pictures may be encoded and decoded using exemplary combined
resolution 1 of FIG. 2 and all B pictures may be encoded and
decoded using exemplary combined resolution 8 of FIG. 2.
[0063] Further, the another embodiment can be applied to both a P
picture and a B picture. It is also possible to use different
motion vector resolutions according to prediction modes used in the
P picture and the B picture.
Yet another Embodiment
[0064] Now, an apparatus and a method for motion vector
encoding/decoding according to yet another embodiment of the
present disclosure will be described.
[0065] According to one or more embodiments of the present
disclosure, a motion vector may have various resolutions.
[0066] In the yet another embodiment, the inter prediction encoding
includes a unidirectional simple prediction mode that uses one
motion vector, and a unidirectional complex prediction mode and a
bidirectional prediction mode, each of which uses two motion
vectors. For example, the unidirectional simple prediction mode is
used as the prediction mode in the case where the motion vector
resolution is 1/4, and an optimum mode among the unidirectional
simple prediction mode, the unidirectional complex prediction mode,
and the bidirectional prediction mode is determined as the
prediction mode for encoding in the case where the motion vector
resolution is a high resolution, for example, 1/8, higher than 1/4.
Therefore, an optimum motion vector resolution is determined for
each block or each predetermined area and information indicating
the determined motion vector resolution is encoded, and an optimum
prediction mode is determined according to the motion vector
resolution and information indicating the determined prediction
mode is encoded. Further, a B picture allows all of the
unidirectional simple prediction mode, the unidirectional complex
prediction mode, and the bidirectional prediction mode. For
example, when the motion vector resolution is 1/4, the motion
vector resolution flag is encoded into 1/4 and the unidirectional
simple prediction mode is the prediction mode, which is not
encoded. When the motion vector resolution is a high resolution,
for example, 1/8, higher than 1/4, the motion vector resolution
flag is encoded into 1/8, the optimum mode among the unidirectional
simple prediction mode, the unidirectional complex prediction mode,
and the bidirectional prediction mode is determined as the
prediction mode, and the optimum mode is encoded.
[0067] In this event, the motion vector resolution and the inter
prediction mode may be encoded using their syntaxes, respectively.
For example, at the time of encoding them using their syntaxes,
respectively, if the current optimum motion vector resolution is
1/8 and the optimum prediction mode is the unidirectional simple
prediction mode, the motion vector resolution and the prediction
mode of the current block are encoded. Since the motion vector
resolution after it is decoded is 1/8, the decoder decodes the
prediction mode into the unidirectional simple prediction mode.
[0068] FIG. 3 is an example of encoding and decoding a motion
vector resolution and an inter prediction mode using one syntax in
the case of P picture.
[0069] For example, the motion vector resolution and the inter
prediction mode are encoded into "11" when the motion vector
resolution is 1/8 and the prediction mode is the unidirectional
complex prediction mode and into "10" when the motion vector
resolution is 1/8 and the prediction mode is the unidirectional
simple prediction mode. Further, when the motion vector resolution
is 1/4, the prediction mode is the unidirectional simple prediction
mode and the motion vector resolution and the inter prediction mode
are encoded into "0". When the unidirectional complex prediction
mode has been selected, resolutions of motion vectors 1 and 2 may
be selected from the combined unidirectional simple prediction
mode/unidirectional complex prediction mode resolutions shown in
FIG. 1.
[0070] In this event, in the case of encoding by CAVLC, bins of
FIG. 3 are encoded as they are. In the case of encoding by CABAC,
encoding may be performed with different probabilities according to
the bins with reference to FIGS. 4 to 6.
[0071] FIG. 5 illustrates the probability conditions of bin 1, and
FIG. 6 illustrates the probability conditions of bin 2.
[0072] For example, referring to FIG. 5, when the motion vector
resolution of the current block is 1/8 and the prediction mode is
the unidirectional simple prediction mode, the resolutions of
neighboring blocks A and B are used for encoding of "1"
corresponding to bin 1 of "10". When both of the two blocks are
1/4, probability model 0 (Context 0) is used for the encoding.
Referring to FIG. 6, the probability models are determined using
the prediction modes of blocks A and B in encoding of "2"
corresponding to bin 2 of "10". When neither of the two blocks is
the unidirectional complex prediction mode, probability model 2
(Context 2) is used for the encoding.
[0073] FIG. 7 is an example of a method of encoding and decoding a
motion vector resolution and an inter prediction mode using one
syntax in the case of B picture.
[0074] For example, the motion vector resolution and the inter
prediction mode are encoded into "111" when the motion vector
resolution is 1/8 and the prediction mode is the bidirectional
prediction mode, into "110" when the prediction mode is the
unidirectional complex prediction mode, and into "10" when the
prediction mode is the unidirectional simple prediction mode.
Further, when the motion vector resolution is 1/4, the prediction
mode is the unidirectional simple prediction mode and the motion
vector resolution and the inter prediction mode are encoded into
"0". When the unidirectional complex prediction mode or the
bidirectional prediction mode has been selected, resolutions of
motion vectors 1 and 2 may be selected from the combined
unidirectional simple prediction mode/unidirectional complex
prediction mode resolutions shown in FIG. 1.
[0075] In this event, in the case of encoding by CAVLC, bins of
FIG. 7 are encoded as they are. In the case of encoding by CABAC,
encoding may be performed with different probabilities according to
the bins with reference to FIGS. 4 to 6 and 8.
[0076] FIG. 8 is the probability conditions of bin 3.
[0077] Referring to FIG. 8, arithmetic encoding may be performed
with different probability conditions according to the prediction
modes of neighboring blocks. For example, both blocks A and B,
which are neighboring blocks, are in the bidirectional prediction
mode, probability model 0 (Context 0) is used for the encoding.
When one of blocks A and B are in the bidirectional prediction
mode, probability model 1 (Context 1) is used for the encoding.
When neither of the two blocks is the bidirectional prediction
mode, probability model 2 (Context 2) is used for the encoding.
[0078] Further, in the bidirectional prediction mode or the
unidirectional complex prediction mode, one reference block is
generated using a weighted average of two reference blocks obtained
through motion compensation using two motion vectors. Or, a real
motion vector may be first obtained from an average of two motion
vectors, and a reference block may be then generated by performing
motion compensation using the real motion vector. For example,
motion vectors (1/4, 1) and (1/8, 3/4) are encoded, and a reference
block is then generated by performing motion compensation using (
3/16, 7/8) calculated using the two motion vectors.
[0079] Meanwhile, it is usual that the decoder performs inverse
operations to the operations of an encoder. In relation to
determination of a prediction mode and use of mode information, and
to determination of a motion vector resolution and use of a
resolution flag, there is an agreement arranged in advance between
the encoder and the decoder. According to this agreement, the
decoder may first decode prediction mode information and then
decode a motion vector resolution promised according to the
prediction mode. For example, in a case where there is a fixed
motion vector resolution, when a decoder previously knows the fixed
resolution and has a motion vector resolution flag transmitted from
an encoder, the decoder decodes a motion vector by using the motion
vector resolution flag.
[0080] Methods for encoding/decoding a motion vector will now be
described according to the another embodiment and the yet another
embodiment of the present disclosure, referring to FIGS. 11 and
12.
[0081] Referring to FIG. 11 on the methods performed by an motion
vector encoding apparatus for encoding a motion vector according to
the another and yet another embodiments, the motion vector encoding
apparatus determines an inter prediction mode among a number of
prediction modes of the current block (S1110). Herein, the number
of prediction modes include a first prediction mode (unidirectional
prediction mode) using a single motion vector and a second
prediction mode using multiple motion vectors which include a
unidirectional complex prediction mode and a bidirectional
prediction mode.
[0082] The motion vector encoding apparatus determines motion
vector resolution(s) of one or more motion vectors of the current
block (S1120), and encodes the one or more motion vectors based on
the determined motion vector resolution(s) (S1130). Herein,
encoding the motion vectors may refer to encoding the current block
motion vector itself but it should be understood to encompass
encoding the difference between the current block motion vector and
predicted motion vector.
[0083] Meanwhile, the encoding apparatus may encode in step S1140 a
motion vector resolution flag which indicates the respective motion
vector resolution(s) determined in step S1120. For example, if the
motion vector resolution determined in step S1120 is a fixed
resolution shared by the motion vector encoding apparatus and the
motion vector decoding apparatus, the motion vector encoding
apparatus may not encode the motion vector resolution flag. If the
motion vector resolution determined in step S1120 is not a fixed
for the motion vector, the motion vector encoding apparatus encodes
the motion vector resolution flag which indicates the resolution of
the motion vector. However, the present disclosure is not limited
thereto. Regardless of whether the determined motion vector
resolution is fixed or not, the encoder apparatus may encode the
resolution flag of the motion vector.
[0084] Referring to FIG. 12 on the methods for decoding a motion
vector according to the another and yet another embodiments, a
motion vector decoding apparatus determines an inter prediction
mode among a number of prediction modes of the current block
(S1210). Herein, the number of prediction modes includes a first
prediction mode using a single motion vector and a second
prediction mode using multiple motion vectors.
[0085] The motion vector decoding apparatus determines respective
motion vector resolution(s) of one or more motion vectors of the
current block (S1220), and decodes the one or more motion vectors
based on the determined motion vector resolution(s) (S1230).
[0086] Meanwhile, the decoding apparatus may decode from a
bitstream a motion vector resolution flag which indicates the
motion vector resolution(s) and determine the respective
resolutions of the one or more motion vectors of the current block
depending on the decoded motion vector resolution flag. For
example, if the inter prediction mode determined in step S1210 is
the second prediction mode, the decoding apparatus checks if a
motion vector resolution flag on the first motion vector is absent
in the bitstream and if positive, determines the resolution of the
first motion vector to be fixed at 1/4 pixel resolution. In
addition, if there is a motion vector resolution flag in existence
on the second motion vector, the decoding apparatus determines the
flag representation of the resolution as the second motion vector
resolution.
[0087] On the other hand, the motion vector resolutions may be
determined depending on the inter prediction mode as determined in
step S1210, as described by the another embodiment in FIGS. 1 and
2.
[0088] Alternatively in reverse, the inter prediction mode of the
current block may be determined depending on the motion vector
resolutions as determined in step S1220, as described by the yet
another embodiment in FIGS. 3 to 8. For example, if the motion
vector resolution is 1/4, the inter prediction mode may be
determined as the first prediction mode, while if the motion vector
resolution is higher than 1/4 to be, for example, 1/8, the inter
prediction mode may be designated based on mode information
extracted from the bitstream.
[0089] According to an aspect of the present disclosure as
described above, a motion vector is encoded and an encoded motion
vector is decoded by using an adaptively determined motion vector
accuracy, so that it is possible to improve the compression
efficiency of an image and the quality of a reconstructed image.
The present disclosure can reduce the number of bits required for
encoding of a differential motion vector. The present disclosure
can improve the quality of a reconstructed image through motion
compensation using a motion vector of a high accuracy and can
improve the compression efficiency of an image by reducing the
number of bits required for encoding of a residual signal of the
image. The present disclosure can also reduce the number of bits
required for encoding of information indicating the accuracy of a
motion vector by efficiently encoding the information indicating
the accuracy of the motion vector.
[0090] Some embodiments as described above may be implemented in
the form of one or more program commands that can be read and
executed by a variety of computer systems and be recorded in any
non-transitory, computer-readable recording medium. The
computer-readable recording medium may include a program command, a
data file, a data structure, etc. alone or in combination. The
program commands written to the medium are designed or configured
especially for the one embodiment, or known to those skilled in
computer software. Examples of the computer-readable recording
medium include magnetic media such as a hard disk, a floppy disk,
and a magnetic tape, optical media such as a CD-ROM and a DVD,
magneto-optical media such as an optical disk, and a hardware
device configured especially to store and execute a program, such
as a ROM, a RAM, and a flash memory. Examples of a program command
include a premium language code executable by a computer using an
interpreter as well as a machine language code made by a compiler.
The hardware device may be configured to operate as one or more
software modules to implement one or more embodiments of the
present disclosure. In some embodiments, one or more of the
processes or functionality described herein is/are performed by
specifically configured hardware (e.g., by one or more application
specific integrated circuits or ASIC(s)). Some embodiments
incorporate more than one of the described processes in a single
ASIC. In some embodiments, one or more of the processes or
functionality described herein is/are performed by at least one
processor which is programmed for performing such processes or
functionality.
[0091] Although exemplary embodiments of the present disclosure
have been described for illustrative purposes, those skilled in the
art will appreciate that various modifications, additions and
substitutions are possible, without departing from the various
characteristics of the disclosure. That is, it is understood that
the present disclosure should not be limited to these embodiments
but various changes and modifications can be made by one ordinary
skilled in the art within the subject matter, the spirit and scope
of the present disclosure as hereinafter claimed. Specific terms
used in this disclosure and drawings are used for illustrative
purpose and not to be considered as limitations of the present
disclosure. Exemplary embodiments of the present disclosure have
been described for the sake of brevity and clarity. Accordingly,
the scope of the claimed invention is not limited by the explicitly
described above embodiments but by the claims and equivalents
thereof.
* * * * *