Conventional video compression algorithms to significantly reduce the amount of data needed to transmit the video sequences with an acceptable level of quality. In conventional video coding standards the coding processes are performed using units of macroblocks of 16×16 pixels. In conventional motion compensation, each block or macroblock of size N×N is associated with a different motion vector and coding mode. Finally, residual error is coded using a transform, followed by quantization and entropy coding.
In early implementations of conventional decomposition, decomposition was restricted to macroblocks and sub-macroblocks of squares or rectangles. However, squares or rectangles macroblock shapes typically do not correspond to the outline of the shape of the moving object. In cases where a macroblock includes several regions with fixed shapes having different motion, the coding efficiency is substantially reduced. As a result, later implementations of decomposition introduced alternative macroblock shapes using oblique straight line partitions, followed by predicting the individual parts using separate motion vectors.
The later implementations typically use a prediction mechanism that selects between one motion vector and another, for every pixel, based on the underlying partition. However, this motion vector selection leads to an introduction of spurious high-frequencies in the corresponding predictor values (e.g., residual errors) that are detrimental to coding efficiency. In addition, a large number of possible partitions (e.g., resulting in a large number of possible motion vector combinations) are needed resulting in a large increase in utilization of computation resources.
As a result, there is a need for a technique for predictor value selection in implementations of quad-tree decomposition using macroblock shapes with oblique straight line partitions that minimize introduction of spurious high-frequencies and minimize utilization of computation resources.