Patent ID: 7889206
Filing Date: 2011-02-15
Classification: G06F

Abstract:
1. A method for retrieving a macroblock from a memory, said method comprising: storing a macroblock in a memory, wherein the memory comprises a transport stream presentation buffer, wherein the memory is communicatively disposed to buffer an MPEG transport stream in the transport stream presentation buffer, wherein a data transport processor is communicatively disposed between the memory and a video transport processor; accessing, by a video decoder that is communicatively disposed between a display engine and the video transport processor, a macroblock address table to determine a starting byte address and an ending byte address of a macroblock, wherein the macroblock address table comprises records, wherein each record comprises an identifier associated with the macroblock, a first indicator indicating the starting byte address of the macroblock, and a second indicator indicating the ending byte address of the macroblock; determining, by the video decoder, the starting byte address and the ending byte address from the first indicator and the second indicator; issuing, by the video decoder, a read command that includes the starting byte address and the ending byte address, the starting byte address being indicative of a starting byte of the macroblock that is stored in the transport stream presentation buffer of the memory; the ending byte address being indicative of the ending byte of the macroblock in the transport stream presentation buffer; the starting byte address, the ending byte address and intermediate byte addresses therebetween being indicative of data bytes of the macroblock; the intermediate byte addresses being indicative of intermediate bytes of the macroblock between the starting byte and the ending byte; receiving, by a memory controller, the issued read command, wherein the memory controller receives byte addresses from the video decoder, wherein the memory controller accesses the memory on a word-by-word basis, wherein each word comprises N bytes, wherein N is an integer greater than one and a power of two; determining, by the memory controller, a starting data word address and an ending data word address from the starting byte address and the ending byte address, the starting data word address being indicative of a starting data word that includes the starting byte of the macroblock and first bytes that are not part of the macroblock, the first bytes being disposed before the macroblock in the starting data word, the first bytes including first data that cause the video decoder to operate erroneously; the ending data word address being indicative of an ending data word that includes the ending byte of the macroblock and second bytes that are not part of the macroblock, the second bytes being disposed after the macroblock in the ending data word, the second bytes including second data that cause the video decoder to operate erroneously; the starting data word address, the ending data word address and intermediate data word addresses therebetween being indicative of data words of the macroblock, the intermediate data word addresses being indicative of intermediate data words of the macroblock between the starting data word and the ending data word; accessing the starting data word, the ending data word and the intermediate data words of the transport stream presentation buffer of the memory; overwriting, by the memory controller, the first bytes of the accessed starting data word and second bytes of the accessed ending data word with null information, wherein the null information does not cause the video decoder to operate erroneously; and sending, from the memory controller to the video decoder, the macroblock and the null information, wherein the macroblock and the null information comprise the accessed starting data word with the first bytes overwritten by the null information, the accessed ending data word with the second bytes overwritten by the null information and the accessed intermediate data words.