Video coder with global motion compensation
AssigneeHitachi, Ltd.
InventorYuichiro Nakaya
Life of this patent
Estimating the term…
Abstract
A method of simplifying the arithmetic operation in a global motion compensation process approximates the motion vector field of the whole image without using many parameters. Motion vectors in the global motion compensation are found by the interpolation and/or extrapolation of the motion vectors of a plurality of representative points 602, 603 and 604 having particular features in the spatial distance thereof. Since the shift operation can be substituted for the division for synthesizing a predicted image of global motion compensation, the processing using a computer or a dedicated hardware is simplified.
Claims42
A storage medium for storing a global motion compensation program, the program comprising:
- calculating the motion vectors for all pixels in an image by effecting the linear interpolation and/or extrapolation of the motion vectors at three representative points for the image, and
- assuming sampling intervals of the pixels to be 1 in both horizontal and vertical directions with respect to the image, and assuming sampling points for which horizontal and vertical components of coordinates of the sampling points are both integers,
- wherein the three points used as the representative points are selected from among four points of which the coordinates are (i, j), (i+p, j), (i, j+q), and (i+p, j+q) (where i and j are integers, and p and q are positive integers), and wherein p and q are 2.sup..alpha. and 2.sup..beta. (.alpha. and .beta. are positive integers), respectively.
A storage medium for storing a global motion compensation program, the program comprising:
- calculating the motion vectors for all pixels in an image by effecting the bilinear interpolation and/or extrapolation of the motion vectors at three representative points for the image, and
- assuming sampling intervals of the pixels to be 1 in both horizontal and vertical directions with respect to the image, and assuming sampling points for which horizontal and vertical components of coordinates of the sampling points are both integers,
- wherein the three points used as the representative points are selected from among four points of which the coordinates are (i, j), (i+p, j), (i, j+q), and (i+p, j+q)(where i and j are integers, and p and q are positive integers), and wherein p and q are 2.sup..alpha. and 2.sup..beta. (.alpha. and .beta. are positive integers), respectively.
A video coder, comprising:
- a global motion compensation unit for performing motion estimation based on global motion compensation between a decoded image of a reference frame and an original image of a present frame, and outputting a predicted image of present frame, wherein said global motion compensation unit includes:
- means for calculating a motion vector of each pixel in said predicted image by using motion vectors of representative points having coordinates (i, j), (i+p, j), (i, j+q), where i and j are integers, and p and q are integer powers of 2;
- and
- means for synthesizing said predicted image by using said motion vector of each pixel.
A video coder, comprising;
- a global motion compensation unit for performing motion estimation based on global motion compensation between a decoded image of a reference frame and an original image of a present frame, and outputting a predicted image of the present frame, wherein said global notion compensation unit includes:
- means for calculating motion vector of each pixel in said predicted image by using motion vectors of representative points having coordinates (i, j), (i+p, j) and (i, j+q),
- where i and j are integers, and p and q are integer powers of 2;
- and
- means for synthesizing said predicted image of present frame by using said motion vector of each pixel,
- wherein horizontal and vertical components of said motion vector of each pixel has value of integral multiples of 1/m,
- horizontal and vertical components of said motion vectors of representative points having values of integral multiples of 1/k,
- by assuming (u(x, y), v(x, y)) is m times the motion vector of a pixel having coordinates (x, y);
- and (u0, v0), (u1, v1) and (u2, v2) are k times said motion vectors of said representative points (i, j), (i+p, j) and (i, j+q), respectively,
- said means for calculating motion vector of each pixel executes the equation:
- u(x,y)=((u0pq+(u1-u0)(x-i)q+(u2-u0)(y-j)p)m)//(pqk)
- v(x,y)=((v0pq+(v1-v0)(x-i)q+(v2-v0)(y-j)p)m)//(pqk)
- where m and k are integer powers of 2, and "//" represents a division with rounding operation in which a quotient of ordinary division is rounded to an adjacent integer when the quotient of the ordinary division is not an integer, and than division with rounding operation has a priority as an operator the same as that of ordinary multiplication and division, and u(x, y), v(x, y), u0, v0, u1, v1, u2, and v2 are integers.
A video coder, comprising:
- a global motion compensation unit for performing motion estimation based on global motion compensation between a decoded image of a reference frame and an original image of a present frame, and outputting a predicted image of the present frame, wherein said global compensation unit includes:
- means for calculating motion vector of each pixel in said predicted image by using motion vectors of representative points having coordinates (i, j), (i+p, j), (i, j+q) and (i+p, j+q), where i and j are integers, and p and q are integer powers of 2;
- and
- means for synthesizing said predicted image by using said motion vector of each pixel.
A video coder, comprising:
- a global motion compensation unit for performing motion estimation based on global motion compensation between a decoded image of a reference frame and an original image of a present frame, and outputting a predicted image of the present frame, wherein said global motion compensation unit includes:
- means for calculating motion vector of each pixel in said predicted image by using motion vectors of representative points having coordinates (i, j), (i+p, i), (i, j+q) and (i+p, j+q), where i and j are integers, and p and q are integer powers of 2, and
- means for synthesizing said predicted image of present frame by using said motion vector of each pixel,
- wherein horizontal and vertical components of said motion vector of each pixel have values of integral multiples of 1/m,
- horizontal and vertical components of said motion vectors of representative points have values of integral multiples of 1/k,
- by assuming (u(x, y), v(x, y)) is m times the motion vector of a pixel having coordinates (x, y);
- and (u0, v0) (u1, v1), (u2, v2) and (u3, v3) are k times said motion vectors of said representative points (i, j), (i+p, j), (i, j+q) and (i+p, j+q), respectively,
- said means for calculating motion vector of each pixel executes the equation:
- u(x,y)=((j+q-y)((i+p-x)u0+(x-i)u1)+(y-j)((i+p-x)u2+(x-i)u3))m//(pqk)
- v(x,y)=((j+q-y)((i+p-x)v0+(x-i)v1)+(y-j)((i+p-x)v2+(x-i)v3))m//(pqk)
- where k and m are integer powers of 2, and "//" represents a division with rounding operation in which a quotient of ordinary division is rounded to an adjacent integer when the quotient of the ordinary division is not an integer, and the division with rounding operation has a priority as an operator the same as that of ordinary multiplication and division, and u(x, y), v(x, y), u0, v0, u1, v1, u2, v2, u3, and v3 are integers.
A video decoder, comprising:
- a memory for storing a decoded image of a previously decoded frame,
- a synthesizer for synthesizing an image of a present frame by using said decoded image and received information about the present frame, wherein:
- said synthesizer includes:
- means for calculating a motion vector of each pixel in said image of the present frame by using motion vectors of representative points having coordinates (i, j), (i+p, j), (i, j+q), where said i and j are integers, and p and q are integer powers of 2;
- and
- means for synthesizing said predicted image by said motion vector of each pixel.
A video decoder, comprising;
- a memory for storing a decoded image of a previously decoded frame,
- a synthesizer for synthesizing an image of a present frame by using said decoded image and received information about the present frame, wherein:
- said synthesizer includes:
- means for calculating a motion vector of each pixel in said image of the present frame by using motion vectors of representative points having coordinates (i, j), (i+p, j), and (i, j+q), where said p and q are integer powers of 2;
- and
- means for synthesizing said predicted image by using said motion vector of each pixel,
- horizontal and vertical components of said motion vectors of pixels having values of integral multiples of 1/m,
- horizontal and vertical components of said motion vectors of representative points having values of integral multiples of 1/k,
- by assuming (u(x, y), v(x, y)) is m times the motion vector of a pixel having coordinates (x, y);
- and (u0, v0), (u1, v1) and (u2, v2) are k times said motion vectors of said representative points (i, j), (i+p, j), and (i, j+q) respectively,
- said means for calculating a motion vector of each pixel executes the equation:
- u(x,y)=((u0pq+(u1-u0)(x-i)q+(u2-u0)(y-j)p)m)//(pqk)
- v(x,y)=((v0pq+(v1-v0)(x-i)q+(v2-v0)(y-j)p)m)//(pqk)
- where k and m are integer powers of 2, and "//" represents a division with rounding operation in which a quotient of ordinary division is rounded to an adjacent integer when the quotient of the ordinary division is not an integer, and the division with rounding operation has a priority as an operator the same as that of ordinary multiplication and division, and u(x, y), v(x, y), u0, v0, u1, v1, u2, and v2 are integers.
A video decoder, comprising;
- a memory for storing a decoded image of a previously decoded frame,
- a synthesizer for synthesizing an image of a present frame by using said decoded image and received information about the present frame, wherein:
- said synthesizer includes:
- means for calculating a motion vector of each pixel in said image of the present frame by using motion vectors of representative points having coordinates (i, j), (i+p, j), (i, j+q) and (i+p, j+q) where said i and j are integers, and p and q are integer powers of 2;
- and
- means for synthesizing said predicted image by said motion vector of each pixel.
A video decoder, comprising:
- a memory for storing decoded image of a previously decoded frame;
- a synthesizer for synthesizing an image of present frame by using said decoded image and received information about present frame, wherein:
- said synthesizer includes:
- means for calculating motion vector of each pixel in said image of the present frame by using motion vectors of representative points having coordinates (i, j), (i+p, j), (i, j+q) and (i+p, j+q), where said p and q are integer powers of 2;
- means for synthesizing said predicted image by using said motion vector of each pixel;
- and
- horizontal and vertical components of said motion vectors of pixels have values of integral multiples of 1/m,
- horizontal and vertical components of said motion vectors of representative points having values of integral multiples of 1/k,
- by assuming (u(x, y), v(x, y)) is m times said motion vector of a pixel having coordinates (x, y);
- and (u0, v0), (u1, v1) and (u2, v2) are k times said motion vectors of said representative points (i, j), (i+p, j), (i, j+q) and (i+p, j+q), respectively,
- said means for calculating a motion vector of each pixel executes the equation:
- u(x,y)=((j+q-y)((i+p-x)u0+(x-i)u1)+(y-j)((i+p-x)u2+(x-i)u3))m//(pqk)
- v(x,y)=((j+q-y)((i+p-x)v0+(x-i)v1)+(y-j)((i+p-x)v2+(x-i)v3))m//(pqk)
- where k and m are integer powers of 2, and "//" represents a division with rounding operation in which a quotient of ordinary division is rounded to an adjacent integer when the quotient of the ordinary division is not an integer, and the division with rounding operation has a priority as an operator the same as that of ordinary multiplication and division, and u(x, y), (v(x, y), u0, v0, u1, v1, u2, v2, u3, and v3 are integers.
Dependencies are inferred from the claim text.