IP Library Granted Patent US 8,922,573
Granted Patent B1
US 8,922,573 · App. 12/502,927 · Granted Dec 30, 2014

Video non-buffered line memory

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 8,922,573
App. No.
12/502,927
Granted
Dec 30, 2014
Kind
B1
Abstract

A non-buffered video line memory eliminates the need for double buffering video data during processing. While most double buffering systems double the amount of memory necessary to store video data, a non-buffered approach reduces the hardware memory costs substantially. A set of write and read pointers coupled with write and read incrementors allows data to be stored in raster order and removed in block order from a non-buffered memory device. The incrementors, in conjunction with a set of write and read pointers generate a base address for data to be written to and read from the non-buffered memory at substantially the same time. Encoding systems benefit substantially by being able to read and write information into a common memory rather than continuously switching between two different memories, by reducing complexity and cost.

Claims (56)

1. A method of operating a memory in a video device comprising:

receiving a stream of video in scan order;

determining a present value of a write pointer of a non-buffered line memory, the line memory including storage for a set of lines of video data;

writing, in raster scan order, more than one group of data of a block of data from the stream of video in non-adjacent memory locations in the line memory, beginning at a location in the line memory related to the present value of the write pointer;

determining a present value of a read pointer in the line memory; and

reading, in block order, more than one group of data of a block of data from non-adjacent memory locations from the line memory, beginning at a location in the line memory related to the present value of the read pointer.

2. The method of managing a memory of claim 1 , further comprising:

generating a new present value of the write pointer after writing a group of data from the stream of video.

3. The method of managing a memory of claim 2 in which generating a new present value of the write pointer comprises adding the present value of the write pointer to a write pointer increment value.

4. The method of managing a memory of claim 3 in which the write pointer increment value is related to a size of blocks of data stored in the non-buffered line memory.

5. The method of managing a memory of claim 4 in which the write pointer increment value is further related to a capacity of the non-buffered line memory.

6. The method of managing a memory of claim 5 in which the capacity is measured by a number of block widths storable in the non-buffered line memory.

7. The method of managing a memory of claim 1 , further comprising

generating a new present value of the read pointer after reading a group of data from the non-buffered line memory.

8. The method of managing a memory of claim 7 in which generating a new present value of the read pointer comprises adding the present value of the read pointer to a read pointer increment value.

9. The method of managing a memory of claim 8 in which the read pointer increment is related to a size of block stored in the non-buffered line memory.

10. The method of managing a memory of claim 8 in which the read pointer increment value is initially set to a number equal to a width of the non-buffered line memory as measured by number of blocks evenly storable in the line memory.

11. A method of operating a video memory, comprising:

receiving a portion of a video stream in raster order;

storing more than one group of data of a block of data of the portion in the order received in non-sequentially addressed memory locations of a non-buffered video memory; and

retrieving more than one group of data of a block of data from non-sequentially addressed memory locations of the non-buffered video memory in a block order.

12. The method of claim 11 in which storing the video stream in raster order comprises:

initializing a write pointer;

initializing a write pointer increment value; and

writing the video stream to the non-buffered video memory in the order in which it was received.

13. The method of claim 12 , further comprising:

generating a new write pointer for a subsequent group of data by adding the value of the write pointer to the write pointer increment value.

14. The method of claim 13 , further comprising:

generating a series of addresses of the non-buffered video memory based on the new write pointer.

15. The method of claim 12 , further comprising:

after the non-buffered video memory has been fully written to, generating a new write pointer increment value.

16. The method of claim 15 in which generating a new write pointer increment value is related to a present write pointer increment value, a size of blocks stored in the non-buffered video memory, and related to a number of widths of data blocks capable of being stored in a single line of the non-buffered video memory.

17. The method of claim 11 , in which retrieving data from the non-buffered video memory in block order comprises:

generating a first and a subsequent address based on a read pointer and a read pointer increment value.

18. The method of claim 17 in which the read pointer increment value is related to a present write pointer increment value, a size of blocks stored in the non-buffered video memory, and related to a number of widths of data blocks capable of being stored in a single line of the non-buffered video memory.

19. A video system comprising: a non-buffered video memory; a write pointer calculator; a write pointer incrementor structured to generate an increment value based from a block size of data to be stored in the non-buffered video memory, the generated increment value causing more than one group of data of a block of data to be stored in non-adjacent locations; a read pointer calculator; a read pointer incrementor structured to generate an increment value based from the block size, the generated increment value causing more than one group of data of a block of data to be retrieved from non-adjacent locations; a modulo counter related to the block size; an address generator structure to generate a set of write addresses in the non-buffered video memory from outputs from the write pointer calculator and the modulo counter.

20. The video system of claim 19 , further comprising a write initializing facility structured to generate an initial value for the write pointer calculator and the write pointer incrementor.

21. The video system of claim 19 , further comprising a read initializing facility structured to generate an initial value for the read pointer calculator and the read pointer incrementor.

22. The video system of claim 19 , further comprising:

a second modulo counter; and

a second address generator structured to generate a set of read addresses in the non-buffered video memory from outputs from the read pointer calculator and the second modulo counter.

23. An article comprising a non-transitory machine-accessible medium having associated data that, when executed, results in a machine:

receiving a portion of a video stream in raster order;

storing more than one group of data of a block of data of the portion in the order received in non-sequentially addressed memory locations of a non-buffered video memory; and

retrieving more than one group of data of a block of data from non-sequentially addressed memory locations of the non-buffered video memory in a block order.

24. The article of claim 23 in which storing the video stream in raster order comprises:

initializing a write pointer;

initializing a write pointer increment value; and

writing the video stream to the non-buffered video memory in the order in which it was received.

25. The article of claim 24 , further comprising:

generating a new write pointer for a subsequent group of data by adding the a value of the write pointer to the write pointer increment value.

26. The article of claim 25 , further comprising:

generating a series of addresses of the non-buffered video memory based on the new write pointer.

27. The article of claim 24 , further comprising:

after the non-buffered video memory has been fully written to, generating a new write pointer increment value.

28. The article of claim 27 in which generating a new write pointer increment value is related to a present write pointer increment value, a size of blocks stored in the non-buffered video memory, and related to a number of widths of data blocks capable of being stored in a single line of the non-buffered video memory.

Assignments (5)
SECURITY INTEREST Recorded Jul 31, 2024
From: IMAGINATION TECHNOLOGIES LIMITED
To: FORTRESS INVESTMENT GROUP (UK) LTD
Reel/Frame 068221/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 11, 2013
From: NETHRA IMAGING, INC.
To: METAGENCE TECHNOLOGIES LIMITED
Reel/Frame 031576/0320 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 11, 2013
From: METAGENCE TECHNOLOGIES LIMITED
To: IMAGINATION TECHNOLOGIES LIMITED
Reel/Frame 031576/0540 →
SECURITY AGREEMENT Recorded Jun 30, 2010
From: NETHRA IMAGING, INC.
To: ARM LIMITED
Reel/Frame 024611/0288 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 14, 2009
From: CHOUDHARY, SAIF
To: NETHRA IMAGING, INC.
Reel/Frame 022955/0472 →