Abstract:
Efficient memory fetching techniques are described that can improve data fetching during a motion compensation decoding process. The techniques propose several different memory fetching modes that may be very efficient in different scenarios of the motion compensation decoding process. A motion compensator may a particular memory fetch mode from a plurality of possible modes on a case-by-case basis for the memory fetches associated with a motion compensation decoding process of a macroblock. The techniques described herein may be particularly useful when fractional interpolation to sub-integer pixels is used in the inter-frame compression.
Abstract:
This disclosure describes efficient transformation techniques that can be used in video coding. In particular, intermediate results of computations associated with transformation of a first block of video data are reused in the transformation of a second block of video data. The techniques may be used during a motion estimation process in which video blocks of a search space are transformed, but this disclosure is not necessarily limited in this respect. Pipelining techniques may be used to accelerate the efficient transformation techniques, and transposition memories can be implemented to facilitate efficient pipelining.
Abstract:
This disclosure describes efficient transformation techniques that can be used in video coding. In particular, intermediate results of computations associated with transformation of a first block of video data are reused in the transformation of a second block of video data. The techniques may be used during a motion estimation process in which video blocks of a search space are transformed, but this disclosure is not necessarily limited in this respect. Pipelining techniques may be used to accelerate the efficient transformation techniques, and transposition memories can be implemented to facilitate efficient pipelining.
Abstract:
This disclosure describes efficient memory fetching techniques that can improve data fetching during a motion compensation decoding process. The techniques propose several different memory fetching modes that may be very efficient in different scenarios of the motion compensation decoding process. In some embodiments, a motion compensator selects a particular memory fetches associated with a motion compensation decoding process of a macroblock. The techniques described herein may be particularly useful when fractional interpolation to sub-integer pixels is used in the inter-frame compression.
Abstract:
An embodiment is directed to a method for selecting a predictive macroblock partition from a plurality of candidate macroblock partitions in motion estimation and compensation in a video encoder including determining a bit rate signal for each of the candidate macroblock partitions, generating a distortion signal for each of the candidate macroblock partitions, calculating a cost for each of the candidate macroblock partitions based on respective bit rate and distortion signals to produce a plurality of costs, and determining a motion vector from the costs. The motion vector designates the predictive macroblock partition.
Abstract:
This disclosure describes electronic video image stabilization techniques for imaging and video devices. The techniques involve determining motion and spatial statistics for individual macroblocks of a frame, and determining a global motion vector for the frame based on the statistics of each of the macroblocks. In one embodiment, a method of performing electronic image stabilization includes performing spatial estimation on each of a plurality of macroblocks within a frame of an image to obtain spatial statistics for each of the macroblocks, performing motion estimation on each of the plurality of macroblocks to obtain motion statistics for each of the macroblocks, integrating the spatial statistics and the motion statistics of each of the macroblocks to determine a global motion vector for the frame, and offsetting the image with respect to a reference window according to the global motion vector.
Abstract:
The motion estimation techniques and video encoding device(s) described use a two dimensional pipeline to generate accurate motion estimation parameters for a current video block. The two dimensional pipeline uses previously calculated motion estimation parameters of relevant neighboring video blocks, including a preceding video block on a same row as the current video block, prior to the generation of the accurate motion vectors, motion vector predictors, and mode decision of the current video block. The use of the two dimensional pipeline allows accurate motion vector prediction from neighboring video blocks previously not available, in the computation of motion vectors. Three engines may be used in the two dimensional pipeline, a fetch engine, an integer search engine and a fractional and spatial search engine. While the fetch engine and fraction and spatial search engine operate on one row, the integer search engine operates on another row.
Abstract:
A method for video processing may include receiving video data units, and compressing the video data units to generate compressed video data units that have a variable size. The method may also include storing the compressed video data units contiguously in a memory in memory segments that have a fixed size, where the size of at least one of the compressed video data units is indivisible by the fixed size of the memory segments, and where a portion of the indivisible compressed video data unit is stored with a portion of another compressed video data unit in one of the memory segments. The method may also include determining data storage information associated with the compressed video data units, and storing the data storage information in the memory. A system may have a video processing architecture designed to support the method.
Abstract:
This disclosure describes electronic video image stabilization techniques for imaging and video devices. The techniques involve determining motion and spatial statistics for individual macroblocks of a frame, and determining a global motion vector for the frame based on the statistics of each of the macroblocks. In one embodiment, a method of performing electronic image stabilization includes performing spatial estimation on each of a plurality of macroblocks within a frame of an image to obtain spatial statistics for each of the macroblocks, performing motion estimation on each of the plurality of macroblocks to obtain motion statistics for each of the macroblocks, integrating the spatial statistics and the motion statistics of each of the macroblocks to determine a global motion vector for the frame, and offsetting the image with respect to a reference window according to the global motion vector.
Abstract:
A method for video processing may include receiving video data units, and compressing the video data units to generate compressed video data units that have a variable size. The method may also include storing the compressed video data units contiguously in a memory in memory segments that have a fixed size, where the size of at least one of the compressed video data units is indivisible by the fixed size of the memory segments, and where a portion of the indivisible compressed video data unit is stored with a portion of another compressed video data unit in one of the memory segments. The method may also include determining data storage information associated with the compressed video data units, and storing the data storage information in the memory. A system may have a video processing architecture designed to support the method.