Motion vector coding method
AssigneeSamsung Electronics Co., Ltd.
InventorKook-yeol Yoo
Life of this patent
Estimating the term…
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.
Claims19
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, 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 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 pixel 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 a 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 Φ.
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, 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.
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, 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 (vx,A, vY,)=(a0+a1α+a2α,a3+a4α+a5α), (vx,B, vY,B)=(a0+3a1α+a2α,a3+3a4α+a5α), and (vx,C, vY,C)=(a0+a1α+3a2α,a3+a4α+3a5α) 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+1/2.
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, 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 translational motion vectors having the selected accuracy using converted translational motion vectors of neighboring blocks.
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, 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 a 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.
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+1/2;
- and
- (c) coding the difference between the translational motion vectors obtained in step (b).
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 pixel range, wherein a 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 that mean square sum of a differential signal between the current block and a 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.
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 {vX,A, vY,A, vX,B, vY,B, vX,C, vY,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 {vX,A, vY,A, vX,B, vY,B, vX,C, vY,C} in step (a), wherein a 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).
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, after step (b), further comprising the step of quantizing the translational motion vectors converted in step (b) to fixed-point numbers having a predetermined accuracy, and after step (b), 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 pixel 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 a 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 Φ.
Dependencies are inferred from the claim text.