IP Library Granted Patent US 7,848,432
Granted Patent B2
US 7,848,432 · App. 10/716,008 · Granted Dec 7, 2010

System and method for efficiently storing macroblocks in SD-RAM

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,848,432
App. No.
10/716,008
Granted
Dec 7, 2010
Kind
B2
Abstract

Presented herein are systems and methods for efficiently storing macroblocks in DRAM. The macroblocks are stored contiguously allowing each macroblock to be written and overwritten in a single write transaction. Additionally, in one embodiment, as many as five macroblocks can be written or overwritten in a single write transaction.

Claims (63)

1. A method for storing macroblocks in a memory, said method comprising:

decoding a macroblock, thereby resulting in a decoded macroblock, said decoded macroblock comprising pixels; and

executing an instruction, wherein the instruction causes:

writing the decoded macroblock to the memory, wherein writing the macroblock to the memory further comprises:

continuously writing a block of decoded luminance pixels to a first portion of the memory;

continuously writing a first block of decoded chrominance pixels to a second portion of the memory;

continuously writing a second block of decoded chrominance pixels to a third portion of the memory; and

the first portion storing the block of decoded luminance pixels, second portion storing the first block of decoded chrominance pixels, and third portion storing the second block of decoded chrominance pixels, being contiguous and wherein each block comprises at least 8×8 pixels in a frame; and

outputting the frame comprising said decoded macroblock to a display device.

2. A method for storing macroblocks in a memory, said method comprising:

decoding five macroblocks, thereby resulting in decoded macroblocks, said decoded macroblocks comprising pixels; and

executing at least one instruction, wherein the at least one instruction causes:

writing the five macroblocks to the memory, wherein writing the macroblock to the memory further comprises:

continuously writing five matrices of decoded luminance pixels to the memory;

continuously writing a first five matrices of decoded chrominance pixels to the memory;

continuously writing a second five matrices of decoded chrominance pixels to the memory; and

the five matrices of decoded luminance pixels, the first five matrices of decoded chrominance pixels and the second five matrices of decoded chrominance pixels being stored contiguously in the memory, wherein the matrices of decoded luma pixels are at least 16×16 and wherein the matrices of decoded chrominance pixels are at least 8×8 in a frame; and

outputting the frame comprising said five decoded macroblocks to a display device.

3. A circuit for storing macroblocks, said circuit comprising:

a decoder for decoding macroblocks; and

a computer readable medium storing an executable instruction, wherein the instruction causes:

writing the macroblock to the memory, wherein writing the macroblock to the memory further comprises:

continuously writing a matrix of decoded luminance pixels to a first portion of the memory;

continuously writing a first matrix of decoded chrominance pixels to second portion of the memory;

continuously writing a second matrix of decoded chrominance pixels to a third portion of the memory;

wherein the matrix of decoded luminance pixels at least 16×16 in a frame, and wherein the first matrix and second matrix of decoded chrominance pixels are at least 8×8; and

the first portion, second portion, and third portion being contiguous.

4. A circuit for storing macroblocks, said circuit comprising:

a decoder for decoding five macroblocks, thereby resulting in decoded macroblocks, said decoded macroblocks comprising pixels; and

a computer readable medium storing an executable instruction, wherein the instruction causes:

writing the five macroblocks to the memory, wherein writing the macroblock to the memory further comprises:

continuously writing five matrices of decoded luminance pixels to a first portion of the memory;

continuously writing a first five matrices of decoded chrominance pixels to a second portion of the memory;

continuously writing a second five matrices of decoded chrominance pixels to a third portion of the memory, wherein the matrices of decoded luma pixels are at least 16×16 and wherein the matrices of decoded chrominance pixels are at least 8×8 in a frame; and

the first portion, second portion, and third portion being contiguous.

5. The method of claim 1 , wherein one portion of a single data word is part of the second portion of the memory where the first matrix of chrominance pixels are written and another portion of the single data word is part of the third portion of the memory where the second matrix of chrominance pixels are written.

6. A method for storing macroblocks in a memory, said method comprising:

decoding a macroblock, thereby resulting in a decoded macroblock, said decoded macroblock comprising pixels; and

executing an instruction, wherein the instruction causes:

writing the decoded macroblock to the memory, wherein writing the macroblock to the memory further comprises:

writing a matrix of decoded luminance pixels to a first portion of the memory;

writing a first matrix of decoded chrominance pixels to a second portion of the memory;

writing a second matrix of decoded chrominance pixels to a third portion of the memory; and

the first portion, second portion, and third portion being contiguous; and

outputting a frame comprising said decoded macroblock to a display device; and

wherein the frame comprises a plurality of sequential macroblocks, and wherein periodic ones of the sequential macroblocks are stored at memory addresses that are offset by a power of 2.

7. A method for storing macroblocks in a memory, said method comprising:

decoding five macroblocks, thereby resulting in decoded macroblocks, said decoded macroblocks comprising pixels; and

executing an instruction, wherein the instruction causes:

writing the five macroblocks to the memory, wherein writing the macroblock to the memory further comprises:

writing five matrices of decoded luminance pixels to the memory;

writing a first five matrices of decoded chrominance pixels to the memory;

writing a second five matrices of decoded chrominance pixels to the memory; and

the five matrices of decoded luminance pixels, the first five matrices of decoded chrominance pixels and the second five matrices of decoded chrominance pixels being stored contiguously in the memory;

outputting a frame comprising said five decoded macroblocks to a display device;

decoding another five macroblocks, thereby resulting in decoded another macroblocks, said decoded another macroblocks comprising pixels; and

executing an instruction, wherein the instruction causes:

writing the another five macroblocks to the memory, wherein writing the another five macroblocks to the memory further comprises:

writing another five matrices of decoded luminance pixels to the memory;

writing a another first five matrices of decoded chrominance pixels to the memory;

writing a another second five matrices of decoded chrominance pixels to the memory; and

wherein the another five matrices of decoded luminance pixels, another first five matrices of decoded chrominance pixels to the memory, and the another second five matrics of decoded chrominance pixels are written contiguously to the memory; and

wherein each one of the first five matrices of luminance pixels, the first five matrices of decoded chrominance pixels, and the second five matrices of decoded chrominance pixels are stored at memory addresses that are offset by a power of two from memory addresses storing each one of the another first five matrices of luminance pixels, the another first five matrices of decoded chrominance pixels, and the another second five matrices of decoded chrominance pixels.

Assignments (4)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: BROADCOM CORPORATION
Reel/Frame 041712/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2017
From: BROADCOM CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041706/0001 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: BROADCOM CORPORATION
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037806/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 6, 2004
From: RAMAKRISHNAN, LAKSHMAN; RADHAKRISHNAN, SATHISH KUMAR; SCHONER, BRIAN; NEUMAN, DARREN
To: BROADCOM CORPORATION
Reel/Frame 014496/0151 →