Method and apparatus for improving motion compensation in digital video coding
AssigneeAT&T Corp.
InventorCaspar Horne
Life of this patent
Estimating the term…
Abstract
A novel method and apparatus for use in digital video compression provides improved block-based motion compensation using the global motion of a video frame. A video frame comprising a plurality of blocks may be compressed for transmission using block motion vectors. Motion vectors are generated by block matching a block to be coded with a block within a reference frame and determining the displacement therebetween. To effect block matching, motion compensation techniques define a search window within one or more reference frames within which a displaced block will be found. According to the present invention, the location of the search window within a reference frame is defined using the global motion of the frame.
Claims21
A method of converting a block of video data which is one of a plurality of blocks defining a frame of video data, into a compressed encoded digital bit stream for transmission over a transmission medium, said method comprising:
- a) generating a global motion vector;
- b) generating both video data and position data corresponding to the block of video data to be coded;
- and
- c) effecting block matching by using predetermined criteria to identify a displaced block corresponding to the block of video data to be coded, the displaced block having a location within a reference frame, said block matching step further comprising defining a search window within the reference frame using the global motion vector.
An apparatus for determining the location of a displaced block of video data within a reference frame corresponding to a block of video data where the displaced block is identified from a plurality of candidate displaced blocks using predetermined criteria, the apparatus comprising:
- a) a motion estimator comprising a processing means and memory means, the processing means operable to determine the location of a displaced block by defining a search window within the reference frame using a global motion vector, identifying a plurality of candidate displaced blocks having a location with the search window, and comparing each candidate displaced blocks with the block of video data;
- and
- b) a global motion estimator coupled to the motion estimator, comprising processing means and storage means, said processing means operable to generate global motion vectors.
A video coder circuit for converting a plurality of frames of video data comprising a plurality of pels, each pel having pel video data, a plurality of pels further defining a block, into a compressed encoded digital bit stream for transmission over a transmission medium, said video coder circuit comprising:
- a) a video frame storage unit operable to generate a block of video to be coded from a frame of video data, said block having a position within the frame of video data;
- b) a motion estimation means connected to the video frame storage unit for receiving the video data corresponding to a block of video to be coded, said motion estimation means operable to effect block matching between a block of video to be coded and a block within a reference frame to identify a displaced block having a location within the reference frame, and to generate a motion vector defined by the position of the block to be coded and the location of the displaced block within the reference frame, said motion estimation means further operable to effect block matching using a global motion vector;
- c) a first buffer for storing video data corresponding to one or more reference frames connected to the motion estimation means for providing reference frame video data thereto;
- d) a second buffer for storing video data corresponding to a current frame connected to the first buffer for providing current frame video data thereto and connected to the motion estimation means;
- e) a subtraction node connected to the video frame storage unit for receiving block video data and connected to the motion estimation means for receiving displaced block video data, said subtraction node operable to generate an error signal representative of the difference in pel video data between two blocks of video data;
- and
- f) a coding device connected to the subtraction node for receiving an error signal and connected to the motion estimation means for receiving a motion vector, said coding device operable to encode video data from a block error signal and motion vector data into a bit stream.
A method of defining a search window within a stored reference video frame for use in block matching in a block-based motion estimation device, the block-based motion estimation device being operable to effect block matching and generate motion vectors representing the displacement between a new video data block and a displaced block within the reference video frame, the search window definition method comprising:
- a) generating a motion vector for the new data block from a frame of video data comprising a plurality of data blocks;
- b) storing said motion vector in a memory;
- c) repeating steps a) and b) until a plurality of motion vectors for a plurality of said data blocks within said frame of video data have been generated and stored;
- d) generating a global motion vector from the plurality of the stored motion vectors;
- e) identifying a video data block having a location within a frame of video data to be coded;
- and
- f) defining a search window having a location within a stored reference video frame wherein the location of the search window is at least partially dependent upon the global motion vector.
Dependencies are inferred from the claim text.