Patent ID: 8194730

Claim:
A method for storing data of a video frame slice in a non-transitory storage of a computer system comprising cache, the video frame slice comprising a set of macroblocks, each macroblock comprising one or more partitions, the data of the video frame slice comprising macroblock headers and partition data for partitions of the macroblocks, the method comprising: allocating storage for a storage structure based on a maximum number of partitions that are possible for all the macroblocks in the set of the macroblocks, the set of macroblocks comprising a plurality of partitions that is less than said maximum number, the allocated storage structure comprising a first contiguous section for storing header and partition data of the set of macroblocks and a second contiguous section not used for the header and partition data of the set of macroblocks; in order to minimize cache misses for subsequent processing of the data of the video frame slice during which portions of the data of the video frame slice are loaded from the storage into the cache a portion at a time, when the set of macroblocks has less partitions than the maximum number, storing the headers and partition data of the set of macroblocks in the first contiguous section by allocating different portions of the first contiguous section with different sizes to store different macroblocks with different number of partitions, wherein a cache miss occurs when a particular header or particular partition data needed for processing is not found in the cache; and creating a list of indexes associated with the allocated storage, an index in the list of indexes identifying a macroblock in the video frame slice and location information for partition data for a partition of the macroblock in the allocated storage.