Motion vector estimation, motion picture encoding and storage
First Claim
1. A method of estimating motion vectors for pixel blocks in a frame of a digitised motion picture sequence, comprising the steps of:
- dividing the pixel blocks into at least two separate ordered subsets of pixel blocks;
for each given pixel block in the frame, selecting at least one pixel block which is a neighbour of the given pixel block in space and/or in time,any selected pixel block which is a neighbour of the given pixel block in space being selected only from pixel blocks that precede the given pixel block in the same ordered subset as the given pixel block; and
for each given pixel block in the frame, performing a vector search around at least one starting motion vector for the given pixel block to determine an estimated motion vector for the given pixel block, the at least one starting motion vector being derived from at least one previously estimated motion vector of said at least one selected pixel block which is a neighbour of the given pixel block,the vector searches for pixel blocks in each of the subsets being performed in parallel.
1 Assignment
0 Petitions
Accused Products
Abstract
In the encoding of a frame (P3) in a digitised motion picture sequence, the frame is divided into blocks (A) of pixels and a motion vector (VA) found to predicts the contents of each block A from a block (A'"'"') in a previous frame (I0). Rather than evaluate many thousands of candidate vectors to find the best motion vector (VA), relatively few candidate vectors are evaluated, based on starting vector which is the estimated motion vector for a neighbouring block (LB(A)) in the same frame. To allow parallel processing of several pixel blocks, all the blocks of one row in the current frame are assigned to one processor (DSP), and a starting vector is obtained from a block (LB(A)) previously processed by the same processor. Further starting vectors are obtained if desired from neighbouring blocks (UR(B),DR(B)) in neighbouring frames of the sequence. The candidate vectors based on a starting vector may be very few in number, or may fill an area a few percent of the full search area. The method may favor candidate vectors which are more economical to encode.
166 Citations
13 Claims
-
1. A method of estimating motion vectors for pixel blocks in a frame of a digitised motion picture sequence, comprising the steps of:
-
dividing the pixel blocks into at least two separate ordered subsets of pixel blocks; for each given pixel block in the frame, selecting at least one pixel block which is a neighbour of the given pixel block in space and/or in time, any selected pixel block which is a neighbour of the given pixel block in space being selected only from pixel blocks that precede the given pixel block in the same ordered subset as the given pixel block; and for each given pixel block in the frame, performing a vector search around at least one starting motion vector for the given pixel block to determine an estimated motion vector for the given pixel block, the at least one starting motion vector being derived from at least one previously estimated motion vector of said at least one selected pixel block which is a neighbour of the given pixel block, the vector searches for pixel blocks in each of the subsets being performed in parallel. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A method of estimating a motion vector for a given block of pixels in a frame of a digitised motion picture sequence, which estimated motion vector is to be encoded in a data stream encoding the motion picture sequence, the method comprising the steps of:
-
generating a set of candidate motion vectors for evaluation; determining a quality of prediction value for each of the candidate motion vectors; selecting candidate motion vectors having a quality of prediction value within a pre-determined threshold of a highest quality of prediction value for the candidate motion vectors; determining an encoding length for each of the selected candidate motion vectors, the encoding length being dependent on the value of the selected candidate motion vector; and selecting as the estimated motion vector for the given block of pixels the selected candidate motion vector having a shortest encoding length.
-
-
13. An apparatus for estimating motion vectors for pixel blocks in a frame of a digitized motion picture sequence, said apparatus comprising in combination:
-
a) means for dividing the pixel blocks into at least two separate ordered subsets of pixel blocks; b) means for selecting for each given pixel block in the frame, at least one pixel block which is a neighbor of the given pixel block in space and/or in time, wherein any selected pixel block which is a neighbor of the given pixel block in space is selected only from pixel blocks that precede the given pixel block in the same ordered subset as the given pixel block; and c) means for performing, for each given pixel block in the frame, a vector search around at least one starting motion vector for the given pixel block to determine an estimated motion vector for the given pixel block, the at least one starting motion vector being derived from at least one previously estimated motion vector of said at least one selected block which is a neighbor of the given pixel block, wherein the vector searches for pixel blocks in each of the subsets is performed in parallel.
-
Specification