IP Library Granted Patent US 7,015,918
Granted Patent B2
US 7,015,918 · App. 10/458,157 · Granted Mar 21, 2006

2-D luma and chroma DMA optimized for 4 memory banks

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,015,918
App. No.
10/458,157
Granted
Mar 21, 2006
Kind
B2
Abstract

A method for storing data of a plurality of components of an image in a memory system with four banks comprising the steps of (A) placing a first portion of data of a first component of the plurality of components into a first bank of the four banks and (B) placing a second portion of the data of the first component in a second bank of the four banks, where all of the data of the first component is stored in the first and second banks and occupies at least three pages in the memory system.

Claims (44)

1. A method for storing luminance data and chrominance data of an image in a memory system with four banks comprising the steps of:

placing a first portion of said luminance data into a first bank of the four banks;

placing a second portion of said luminance data in a second bank of said four banks, wherein all of said luminance data is stored in said first and second banks and occupies at least three pages in said memory system; and

placing all chrominance data of said image in a third and fourth banks of said four banks, wherein said chrominance data occupies at least three pages in said memory system.

2. The method according to claim 1 , further comprising the steps of:

dividing said image into a plurality of tiles;

placing luminance data of said tiles in said first bank and said second bank, wherein (i) luminance data of vertically or horizontally adjacent tiles in said image is stored in different banks and (ii) luminance data of diagonally adjacent tiles is stored in the same bank; and

placing chrominance data of said tiles in said third bank and said fourth bank, wherein (i) chrominance data of vertically or horizontally adjacent tiles is stored in different banks and (ii) chrominance data of diagonally adjacent tiles is stored in the same bank.

3. A method for storing data of a component of at least part of an image in a memory system with four banks, comprising the steps of:

placing all of the data of a first component of at least part of said image in a first bank and a second bank of the four banks;

placing all of the data of a second component of at least part of said image in a third bank and a fourth bank of the four banks; and

placing the data of said first component in at least four pages in said first and said second banks, wherein (i) each of said 4 pages comprises a sub-rectangle of said image, (ii) the data in all four of said pages comprises a contiguous group of sub-rectangles of said image and (iii) said contiguous group of sub-rectangles is larger in both vertical and horizontal dimensions than each of the sub-rectangles forming the contiguous group of sub-rectangles of said image.

4. The method according to claim 3 , wherein:

a first of said four pages comprises data from a first sub-rectangle;

a second of said four pages comprises data that is from a second sub-rectangle that is horizontally adjacent to said first sub-rectangle;

a third of said four pages comprises data from a third sub-rectangle that is vertically adjacent to said first sub-rectangle; and

a fourth of said four pages comprises data from a fourth sub-rectangle that is vertically adjacent to said second sub-rectangle and horizontally adjacent to said third sub-rectangle.

5. The method according to claim 4 , wherein the first and third pages are in the same memory bank.

6. The method according to claim 4 , wherein the second and fourth pages are in the same memory bank.

7. The method according to claim 6 , wherein the first and third pages are in the same memory bank.

8. The method according to claim 3 , wherein said first component comprises a luminance component of said image.

9. The method according to claim 3 , wherein said first component comprises a chrominance component of said image.

10. The method according to claim 3 , wherein said memory system is part of a data path of a video decoder.

11. The method according to claim 3 , wherein said memory system is part of a data path of a video encoder.

12. A method for transferring image data from a first device to a second device comprising the steps of:

loading data of a luminance component or a chrominance component of said image from a first page of memory for a current transfer; and

preparing a second page of memory for a next transfer while loading said data from said first page, wherein (i) said memory has four memory banks, (ii) all data of said luminance component is stored in a first bank and a second bank of said four memory banks, (iii) all data of said chrominance component is stored in a third bank and a fourth bank of said four memory banks and (iv) said luminance component and said chrominance component of said image are located in at least 2 different pages.

13. The method according to claim 12 , wherein data of a first luminance transfer is loaded from said first page while preparing a second page containing data for a second luminance transfer.

14. The method according to claim 12 , wherein data of a first chrominance transfer is loaded from said first page while preparing a second page containing data for a second chrominance transfer.

15. A method for loading a rectangular array of luminance data or chrominance data from a memory system with four banks comprising the steps of:

loading a first sub-rectangle of said rectangular array from a first bank or a third bank of said four banks;

loading a second sub-rectangle of said rectangular array from a second bank or a fourth bank of said four banks;

loading a third sub-rectangle of said rectangular array from the same bank as said first sub-rectangle of said rectangular array; and

loading a fourth sub-rectangle of said rectangular array from the same bank as said second sub-rectangle of said rectangular array, wherein (i) each of said four sub-rectangles is completely contained in a different page, (ii) all of said luminance data is stored in said first bank and said second bank of said four banks and occupies at least three pages in said memory system and (iii) all of said chrominance data is stored in said third bank and said fourth bank of said four banks and occupies at least three pages in said memory system.

16. A method for loading a rectangular array of pixels from a memory device comprising the steps of:

loading at least two sub-rectangles of said rectangular array, wherein (i) each of said at least two sub-rectangles is completely contained in a different page and (ii) each of said at least two sub-rectangles is completely contained in a different memory bank; and

ordering transfers of said at least two sub-rectangles such that (i) when the pages containing said at least two sub-rectangles are not available at the same time, the sub-rectangle in a page that is available for transfer first is loaded first and (ii) when the pages containing said at least two sub-rectangles are available at the same time, the sub-rectangle loaded first is loaded from a memory bank determined by a next load.

17. A method for loading a first rectangular array of pixels and a second rectangular array of pixels from a memory device comprising the steps of:

loading a first sub-rectangle of pixels; and

loading a second sub-rectangle of pixels, wherein said first rectangular array comprises at least two sub-rectangles, each of said at least two sub-rectangles of said first rectangular array is completely contained in a different page, each of said at least two sub-rectangles of said first rectangular array is completely contained in a different memory bank, said second rectangular array is completely contained in a single page, one of said first and said second sub-rectangles is in the same bank as the second rectangular array, and transfers of said first sub-rectangle and said second sub-rectangle are ordered such that the one of said first sub-rectangle and said second sub-rectangle that is in the same bank as the second rectangular array is loaded before the other of said first sub-rectangle and said second sub-rectangle.

18. A method for loading data from a first page in a memory device and a second page in a memory device, wherein the first page is not available for transferring and the second page is available for transferring, comprising the steps of:

loading a first part of the data from the second page until the first page is available;

loading all of the data from the first page when the first page is available; and

loading any remaining data from the second page.

Assignments (9)
CORRECTIVE ASSIGNMENT TO CORRECT THE EXECUTION DATE PREVIOUSLY RECORDED AT REEL: 047196 FRAME: 0097. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Mar 6, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 048555/0510 →
MERGER Recorded Oct 4, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047196/0097 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041710/0001 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037808/0001 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (RELEASES RF 032856-0031) Recorded Feb 2, 2016
From: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
To: LSI CORPORATION; AGERE SYSTEMS LLC
Reel/Frame 037684/0039 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 20, 2015
From: LSI CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 035058/0248 →
CHANGE OF NAME Recorded Jun 6, 2014
From: LSI LOGIC CORPORATION
To: LSI CORPORATION
Reel/Frame 033102/0270 →
PATENT SECURITY AGREEMENT Recorded May 8, 2014
From: LSI CORPORATION; AGERE SYSTEMS LLC
To: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
Reel/Frame 032856/0031 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 10, 2003
From: LINZER, ELLIOT N.; LEUNG, HO-MING
To: LSI LOGIC CORPORATION
Reel/Frame 014175/0428 →