Patent ID: 8855191

Claim:
A non-transitory computer-readable storage medium comprising instructions configured to cause a computing device to perform a method for encoding video frames, the method comprising: determining a partition configuration for the video frames based on macroblock processing dependencies, wherein the determined partition configuration is adapted to reduce macroblock processing dependencies between respective partitions; processing one or more video frames by use of a plurality of processing elements, wherein each processing element is configured to process frame macroblocks, and wherein processing a video frame comprises, partitioning the video frame into a plurality of partitions in accordance with the determined partition configuration, each partition comprising a plurality of macroblocks, identifying inter-macroblock motion-vector dependencies between the macroblocks in the partitions, assigning each of the partitions of the video frame to a respective processing element of the plurality of processing elements, identifying inter-processing element motion-vector dependencies between the plurality of processing elements processing macroblocks of the video frame based on the partition assignments, in each of the processing elements, staggering motion-estimation processing of the macroblocks in partitions assigned to the processing element to maintain the identified inter-macroblock motion-vector dependencies, and staggering processing of the partitions by the plurality of processing elements to maintain the identified inter-processing element motion-vector dependencies.