US2004076233A1PendingUtilityA1
Motion vector coding method
Assignee: SAMSUNG ELECTRONICS CO LTDPriority: May 24, 2000Filed: Sep 26, 2003Published: Apr 22, 2004
Est. expiryMay 24, 2020(expired)· nominal 20-yr term from priority
Inventors:Kook-Yeol Yoo
H04N 19/537H04N 19/517H04N 19/124H04N 19/139H04N 19/70H04N 19/176
47
PatentIndex Score
0
Cited by
0
References
0
Claims
Abstract
A motion vector coding method is provided. The motion vector coding method includes the steps of (a) performing an affine motion estimation to obtain affine motion parameters, (b) converting the affine motion parameters to a predetermined number of translational motion vectors, and (c) coding the difference between the converted translational motion vectors of a current block and the converted translational motion vectors of a previous block. The method allows for low bit generation while maintaining motion estimation performance available from affine motion estimation.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . A method of coding a motion vector comprising the steps of:
(a) performing an affine motion estimation to obtain affine motion parameters; (b) converting the affine motion parameters to a predetermined number of translational motion vectors; and (c) coding the difference between the converted translational motion vectors of a current block and the converted translational motion vectors of a previous block.
2 . The method of claim 1 , prior to step (c), further comprising the step of quantizing the translational motion vectors in step (b) to fixed-point numbers having a predetermined accuracy.
3 . The method of claim 2 , prior to step (c), further comprising the step of determining a predetermined pixel range for each translational motion vector of the current block and obtaining an accuracy φ for each pixel value in the predetermined range, the accuracy φ producing the smallest value in
min
ϕεΠ
{
MSE
(
ϕ
)
+
λ
Bits
(
ϕ
)
}
among a set Π of accuracies, where QP is a quantization interval used in coding an image, λ is a constant determined based on the quantization interval QP, MSE(φ) denotes the mean square sum of a differential signal between the current block and the preceding motion-compensated block when translational motion vectors of the current block are represented with an accuracy φ, and Bits (φ) denotes the number of bits used to code the translational motion vector of the current block with an accuracy φ.
4 . The method of claim 3 , further comprising the step of predicting the converted translational motion vectors of the current block by translational motion vectors of neighboring blocks using,
{circumflex over (v)} X,Ca =median{v X,Cb , v X,Uc , v X,Ud }, {circumflex over (V)} Y,Ca =median{V Y,Cb , V X,Uc , V Y,Ud }, {circumflex over (V)} X,Cb =median{V X,Ld , V X,Ud , V X,Dc }, {circumflex over (V)} Y,Cb =median{V Y,Ca , V Y,Ud , V Y,Dc }, {circumflex over (V)} X,Cc =median{V X,Ld , V X,Ca , V X,Cb },
and {circumflex over (v)} Y,Cc =median{v Y,Ld , v Y,Ca , v Y,Cb }, where a hat denotes an operation for obtaining a predicted value and median { } denotes an operation for obtaining the translational motion vector having the median magnitude among the translational motion vectors.
5 . The method of claim 1 , wherein step (c) comprises the steps of:
(c-1) calculating the differences between the translational motion vectors of the current block and the blocks neighboring the current block by using the converted translational motion vectors of the current block and the translational motion vectors of the neighboring blocks; and (c-2) performing variable length coding on the obtained differences between the translational motion vectors.
6 . The method of claim 1 , wherein step (a) comprises the step of obtaining six affine motion estimation parameters (a 0 , a 1 , a 2 , . . . , a 5 ) T by estimating the motion of a pixel in an image using pixel values of a block to be encoded in a current frame and pixel values in a preceding frame and using v X (i,j)=a 0 +a 1 i+a 2 j, and v Y (i,j)=a 3 +a 4 i+a 5 j, where the pair (i,j) are the coordinates of a macroblock or the sub-block thereof.
7 . The method of claim 1 , wherein step (b) comprises the step of obtaining motion vectors of the center points of the sub-blocks A, B, C, and D by using (v X,A ,v Y ,)=(a 0 +a 1 α+a 2 α,a 3 +a 4 α+a 5 α), (v X,B ,v Y,B )=(a 0 +3a 1 α+a 2 α,a 3 +3a 4 α+a 5 α), and (v X,C ,v Y,C )=(a 0 +a 1 α+3a 2 α,a 3 +a 4 α+3a 5 α) based on
v
X
(
i
,
j
)
=
1
2
α
(
4
α
-
i
-
j
)
v
X
,
A
+
1
2
α
(
-
2
α
+
i
)
v
X
,
B
1
2
α
(
-
2
α
+
j
)
v
X
,
C
,
v
Y
(
i
,
j
)
=
1
2
α
(
4
α
-
i
-
j
)
v
Y
,
A
+
1
2
α
(
-
2
α
+
i
)
v
Y
,
B
+
1
2
α
(
-
2
α
+
j
)
v
Y
,
C
*
,
where one macroblock consists of sub-blocks A, B, C, and D, the size of the macroblock is S×S, and the constant α is S/4+½.
8 . The method of claim 1 , after step (b), further comprising the steps of:
(b′-1) quantizing the converted translational motion vectors to fixed-point numbers having a predetermined accuracy; (b′-2) selecting an optimum accuracy considering a bit rate and distortion among accuracies, with which the translational motion vectors are represented; and (b′-3) predicting translatonal motion vectors having the selected accuracy using converted translational motion vectors of neighboring blocks.
9 . The method of claim 1 , prior to step (a), further comprising the step of obtaining one translational motion vector for the current block by a block matching technique,
wherein step (a) further comprises the step (a′) of performing an affine motion estimation using the obtained translational motion vector as an initial value.
10 . The method of claim 1 , prior to step (a), further comprising the step of obtaining a motion parameter that minimizes the mean square sum of a difference signal between the current block and the motion-compensated previous block among estimated affine motion parameters of blocks located above the current block and located on the left thereof,
wherein step (a) comprises the step of (a′) performing an affine motion estimation using the obtained motion parameter as an initial value to obtain affine motion parameters for a predetermined pixel range.
11 . A method of coding a motion vector comprising the steps of:
(a) performing an affine motion estimation to obtain affine motion parameters; (b) obtaining translational motion vectors based on v X ( i , j ) = 1 2 α ( 4 α - i - j ) v X , A + 1 2 α ( - 2 α + i ) v X , B 1 2 α ( - 2 α + j ) v X , C ,
and v Y ( i , j ) = 1 2 α ( 4 α - i - j ) v Y , A + 1 2 α ( - 2 α + i ) v Y , B + 1 2 α ( - 2 α + j ) v Y , C * where the size of a block is S×S, and the constant α is S/4+½; and (c) coding the difference between the translational motion vectors obtained in step (b).
12 . The method of claim 11 , prior to the step (c), further comprising the step of quantizing the translational motion vectors converted in the step (b) to fixed-point numbers having a predetermined accuracy.
13 . The method of claim 11 , prior to step (c), further comprising the step of determining a predetermined pixel range for each translational motion vector of a current block and obtaining an accuracy φ for each pixel value in the predetermined range, the accuracy φ producing the smallest value in
min
ϕεΠ
{
MSE
(
ϕ
)
+
λ
Bits
(
ϕ
)
}
among a set Π of accuracies, where QP is a quantization interval used in coding an image, λ is a constant determined based on the quantization interval QP, MSE(φ) denotes the mean square sum of a differential signal between the current block and the preceding motion-compensated block when translational motion vectors of the current block are represented with an accuracy φ, and Bits (φ) denotes the number of bits used to code the translational motion vector of the current block with an accuracy φ.
14 . The method of claim 11 , further comprising the step of predicting the converted translational motion vectors of the current block by translational motion vectors of neighboring blocks using
{circumflex over (v)} X,Ca =median{v X,Cb , v X,Uc , v X,Ud }, {circumflex over (v)} Y,Ca =median{v Y,Cb , v Y,Uc , v Y,Ud }, {circumflex over (v)} X,Cb =median{v X,Ca , v X,Ud , v X,Dc }, {circumflex over (v)} Y,Cb =median{v Y,Ca , v Y,Ud , v Y,Dc }, {circumflex over (v)} X,Cc =median{v X,Ld , v X,Ca , v X,Cb } and {circumflex over (v)} Y,Cc =median{v Y,Ld , v Y,Ca , v Y,Cb },
where a hat denotes an operation for obtaining a predicted value and median {} denotes an operation of taking the translational motion vector having the median magnitude among the translational motion vectors.
15 . The method of claim 11 , wherein step (c) comprises the steps of:
(c-1) calculating the differences between the translational motion vectors of the current block and the blocks neighboring the current block by using the converted translational motion vectors of the current block and translational motion vectors of the neighboring blocks; and (c-2) performing variable length coding on the obtained differences between the translational motion vectors.
16 . A method of coding a motion vector comprising the steps of:
(a) determining a predetermined pixel range for each translational motion vector of a current block; (b) determining the translational motion vector of a current block for each pixel value in the predetermined range, wherein the pixel motion vector is represented with an accuracy φ that produces the smallest value in min ϕεΠ { MSE ( ϕ ) + λ Bits ( ϕ ) } among a set Π of accuracies, where QP is a quantization interval used in coding an image, λ is a constant determined based on the quantization interval QP, MSE(φ) denotes the mean square sum of a differential signal between the current block and the preceding motion-compensated block when translational motion vectors of the current block are represented with an accuracy φ, and Bits (φ) denotes the number of bits used to code the translational motion vector of the current block with an accuracy φ; and (c) coding the difference between the translational motion vectors of the current block and the translational motion vectors of the previous block.
17 . The method of claim 16 , prior to the step (c), further comprising the step of predicting the converted translational motion vectors of the current block by translational motion vectors of neighboring blocks using
{circumflex over (v)} X,Ca =median{v X,Cb , v X,Uc , v X,Ud }, {circumflex over (v)} Y,Ca =median{v Y,Cb , v Y,Uc , v Y,Ud }, {circumflex over (v)} X,Cb =median{v X,Ca , v X,Ud , v X,Dc }, {circumflex over (v)} Y,Cb =median{v Y,Ca , v Y,Ud , v Y,Dc }, {circumflex over (v)} X,Cc =median{v X,Ld , v X,Ca , v X,Cb }, {circumflex over (v)} Y,Cc =median{v Y,Ld , v Y,Ca , v Y,Cb }, where a hat denotes an operation for obtaining a predicted value and median {} denotes an operation of taking the translational motion vector having the median magnitude among the translational motion vectors.
18 . The method of claim 16 , wherein step (c) comprises the steps of:
(c-1) calculating the differences between the translational motion vectors of the current block and the blocks neighboring the current block by using the converted translational motion vectors of the current block and translational motion vectors of the neighboring blocks; and (c-2) performing variable length coding on the obtained differences between the translational motion vectors.
19 . A method of coding a motion vector comprising the steps of:
(a) determining a predetermined pixel range for each of six translational motion vector components {v X,A , v Y,A , v X,B , v Y,B , v X,C , v Y,C }; (b) obtaining the translational motion vector of a current block for each pixel values in the predetermined range determined for each of the six translational motion vector components {v X,A , v Y,A , v X,B , v Y,B , v X,C , v Y,C } in step (a), wherein the pixel motion vector is represented with an accuracy φ that produces the smallest value in min ϕεΠ { MSE ( ϕ ) + λ Bits ( ϕ ) } among a set Π of accuracies, where QP is a quantization interval used in coding an image, λ is a constant determined based on the quantization interval QP, MSE(φ) denotes the mean square sum of a differential signal between the current block and the preceding motion-compensated block when translational motion vectors of the current block are represented with an accuracy φ, and Bits (φ) denotes the number of bits used to code the translational motion vector of the current block with an accuracy φ; and (c) coding the difference between the translational motion vectors obtained in step (b).
20 . The method of claim 19 , prior to step (c), further comprising the step of predicting the converted translational motion vectors of the current block by translational motion vectors of neighboring blocks using
{circumflex over (v)} X,Ca =median{v X,Cb , v X,Uc , v X,Ud }, {circumflex over (v)} Y,Ca =median{v Y,Cb , v Y,Uc , v Y,Ud }, {circumflex over (v)} X,Cb =median{v X,Ca , v X,Ud , v X,Dc }, {circumflex over (v)} Y,Cb =median{v Y,Ca , v Y,Ud , v Y,Dc }, {circumflex over (v)} X,Cc =median{v X,Ld , v X,Ca , v X,Cb }, {circumflex over (v)} Y,Cc =median{v Y,Ld , v Y,Ca , v Y,Cb }, where a hat denotes an operation for obtaining a predicted value and median {} denotes an operation of taking the translational motion vector having the median magnitude among the translational motion vectors.
21 . The method of claim 19 , wherein step (c) comprises the steps of:
(c-1) calculating the differences between the translational motion vectors of the current block and the blocks neighboring the current block by using the converted translational motion vectors of the current block and translational motion vectors of the neighboring blocks; and (c-2) performing variable length coding on the obtained differences between the translational motion vectors.
22 . A motion estimation method comprising the steps of:
(a) performing an affine motion estimation to obtain affine motion parameters; and (b) converting the affine motion parameters to a predetermined number of translational motion vectors.
23 . The method of claim 22 , after step (b), further comprising the step of quantizing the translational motion vector converted in step (b) to fixed-point numbers having a predetermined accuracy.
24 . The method of claim 23 , after step (b), further comprising the step of determining a predetermined pixel range for each translational motion vector of the current block and obtaining an accuracy φ for each pixel value in the predetermined range, the accuracy φ producing the smallest value in
min
ϕεΠ
{
MSE
(
ϕ
)
+
λ
Bits
(
ϕ
)
}
among a set Π of accuracies, where QP is an quantization interval used in coding an image, λ is a constant determined based on the quantization interval QP, MSE (φ) denotes the mean square sum of a differential signal between the current block and the preceding motion-compensated block when translational motion vectors of the current block are represented with an accuracy φ, and Bits (φ) denotes the number of bits used to code the translational motion vector of the current block with an accuracy φ.
25 . The method of claim 24 , further comprising the step of predicting the converted translational motion vectors of the current block by translational motion vectors of neighboring blocks using,
{circumflex over (v)} X,Ca =median{v X,Cb , v X,Uc , v X,Ud }, {circumflex over (v)} Y,Ca =median{v Y,Cb , v Y,Uc , v Y,Ud }, {circumflex over (v)} X,Cb =median{v X,Ca , v X,Ud , v X,Dc }, {circumflex over (v)} Y,Cb =median{v Y,Ca , v Y,Ud , v Y,Dc }, {circumflex over (v)} X,Cc =median{v X,Ld , v X,Ca , v X,Cb }, and {circumflex over (v)} Y,Cc =median{v Y,Ld , v Y,Ca , v Y,Cb }, where a hat denotes an operation for obtaining a predicted value and median {} denotes an operation of taking the translational motion vector having the median magnitude among the translational motion vectors.
26 . A method of decoding a motion vector comprising the steps of:
(a) receiving encoded data; (b) decoding the received data to obtain translational motion vectors; (c) converting the obtained translational motion vectors to affine motion parameters; and (d) performing motion compensation using the obtained affine motion parameters.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.