Patent US3134734A successfully refreshed from Google Patents.
Patent US4722547A successfully refreshed from Google Patents.
Patent US6801219B2 successfully refreshed from Google Patents.
US6801219B2
Expired / Lapsed
US
⏱️ 0.0 years remaining
Method and apparatus using a two-dimensional circular data buffer for scrollable image display
Assignee: STMicroelectronics lnc USA
•
Filing: 2001-08-01
•
Granted: 2004-10-05
•
Expires: 2021-08-01
Abstract
Abstract A method and apparatus for buffering 2-dimensional graphical image data to be supplied to a scrolling display controller. A 2-dimensional, circularly addressed data buffer is used to store a portion of an entire image. The data buffer is larger than the amount of data displayed at one time. A user enters scrolling commands and the display scrolls around the data initially in the buffer. New data is loaded into the buffer as the displayed data approaches the edge of the buffered data.
Inventors
- 👤 Osvaldo M. Colavin
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-10-29 14:17
CPC Classifications
G; G09; G09G; G09G5/00; G09G5/34; G09G5/346; G09G2360/00; G09G2360/12; G09G2360/121
Claims Analysis
Total Claims: 17
Claim 1
Independent Claim
300 words
A method for buffering a subset of digital image data used to drive a scrolling display, the method comprising the steps of: storing a first contiguous data subset of a complete set of digital image data into a buffer memory, the data subset being greater than an amount of data accessed by a display and the buffer memory being organized as a two dimensional circular buffer; determining if a display buffer within the first contiguous data subset is within a threshold distance of an edge of data forming the first contiguous data subset; identifying an additional subset of the complete set of digital image data to place into the buffer memory, wherein the additional subset is image data that is contiguous with the first contiguous data and wherein the additional subset of data extends beyond the edge of the first contiguous data subset; and loading the additional subset of data into the display buffer beyond the edge of the first contiguous data subset through circular addressing of the display buffer, wherein the buffer memory stores a plurality of pixels, each of the plurality of pixels having a pixel address within the buffer memory, wherein each pixel is characterized by a row position and a row number, and wherein the buffer memory is characterized by a row length and a data buffer size, wherein a selected pixel is access by: calculating a row offset within the buffer memory by multiplying a row number of the selected pixel by the row length; adding a buffer memory starting data address, modulo the data buffer size, to a selected row position of the selected pixel, and adding that sum to the row offset; and subtracting the data buffer size from the row offset if the row offset is greater than the data buffer size.
Claim 2
Independent Claim
300 words
A method for buffering a subset of digital image data used to drive a scrolling display, the method comprising the steps of: storing a first contiguous data subset of a complete set of digital image data into a buffer memory, the data subset being greater than an amount of data accessed by a display and the buffer memory being organized as a two dimensional circular buffer; determining if a display buffer within the first contiguous data subset is within a threshold distance of an edge of data forming the first contiguous data subset; identifying an additional subset of the complete set of digital image data to place into the buffer memory, wherein the additional subset is image data that is contiguous with the first contiguous data and wherein the additional subset of data extends beyond the edge of the first contiguous data subset; and loading the additional subset of data into the display buffer beyond the edge of the first contiguous data subset through circular addressing of the display buffer, wherein the buffer memory stores a plurality of pixels, each of the plurality of pixels having a pixel address within the buffer memory, wherein each pixel is characterized by a row position and a row number, and wherein the buffer memory is characterized by a row length and a data buffer size, wherein a selected pixel is access by: calculating a row offset within the buffer memory by multiplying a row number of the selected pixel by the row length; adding a buffer memory starting data address, modulo the data buffer size, to a selected row position of the selected pixel, and adding that sum to the row offset; and subtracting the data buffer size from the row offset if the row offset is greater than the data buffer size.
Claim 3
Dependent Claim
34 words
A method according to claim 1 , wherein the step of loading the additional subset of data comprises progressively loading the additional subset of the complete set of digital image data into the buffer.
Claim 4
Independent Claim
321 words
A system for buffering a subset of digital image data used to drive a scrolling display, comprising: a display buffer cache for storing a first contiguous data subset of a complete set of digital image data, the data subset being greater than an amount of data accessed by a display and the display buffer cache being organized as a two dimensional circular buffer; and a scrolling controller, electrically connected to the display buffer cache, which performs the following processing: determining if a display buffer within the display buffer cache is within a threshold distance of an edge of data forming the first contiguous data subset; identifying an additional subset of the complete set of digital image data to place into the buffer memory, wherein the additional subset is image data that is contiguous with the first contiguous data and wherein the additional subset of data extends beyond the edge of the first contiguous data subset; and loading the additional subset of data into the display buffer beyond the edge of the first contiguous data subset through circular addressing of the display buffer, wherein the display buffer cache stores a plurality of pixels, each of the plurality of pixels having a pixel address within the two dimensional circular buffer, wherein each pixel is characterized by a row position and a row number, and wherein the two dimensional circular buffer is characterized by a row length and a data buffer size, wherein a current pixel is access by: calculating a row offset within the two dimensional circular buffer by multiplying a row number of the current pixel by the row length; adding a two dimensional circular buffer starting data address, modulo the data buffer size, to a current row position of the current pixel, and adding that sum to the row offset; and subtracting the data buffer size from the row offset if the row offset is greater than the data buffer size.
Claim 5
Independent Claim
321 words
A system for buffering a subset of digital image data used to drive a scrolling display, comprising: a display buffer cache for storing a first contiguous data subset of a complete set of digital image data, the data subset being greater than an amount of data accessed by a display and the display buffer cache being organized as a two dimensional circular buffer; and a scrolling controller, electrically connected to the display buffer cache, which performs the following processing: determining if a display buffer within the display buffer cache is within a threshold distance of an edge of data forming the first contiguous data subset; identifying an additional subset of the complete set of digital image data to place into the buffer memory, wherein the additional subset is image data that is contiguous with the first contiguous data and wherein the additional subset of data extends beyond the edge of the first contiguous data subset; and loading the additional subset of data into the display buffer beyond the edge of the first contiguous data subset through circular addressing of the display buffer, wherein the display buffer cache stores a plurality of pixels, each of the plurality of pixels having a pixel address within the two dimensional circular buffer, wherein each pixel is characterized by a row position and a row number, and wherein the two dimensional circular buffer is characterized by a row length and a data buffer size, wherein a current pixel is access by: calculating a row offset within the two dimensional circular buffer by multiplying a row number of the current pixel by the row length; adding a two dimensional circular buffer starting data address, modulo the data buffer size, to a current row position of the current pixel, and adding that sum to the row offset; and subtracting the data buffer size from the row offset if the row offset is greater than the data buffer size.
Claim 6
Dependent Claim
27 words
A system according to claim 3 , wherein the scrolling controller progressively loads the additional subset of the complete set of digital image data into the buffer.
Claim 7
Independent Claim
325 words
A device incorporating a video display, comprising: image display for displaying a video image defined by a display buffer; a display buffer cache, electrically connected to the image display and for storing a first contiguous data subset of a complete set of digital image data, wherein the data subset is larger than display buffer and the display buffer cache is organized as a two dimensional circular buffer; and a scrolling controller, electrically connected to the display buffer cache, which performs the following processing: determining if a display buffer within the display buffer cache is within a threshold distance of an edge of data forming the first contiguous data subset; identifying an additional subset of the complete set of digital image data to place into the buffer memory, wherein the additional subset is image data that is contiguous with the first contiguous data and wherein the additional subset of data extends beyond the edge of the first contiguous data subset; and loading the additional subset of data into the display buffer beyond the edge of the first contiguous data subset through circular addressing of the display buffer, wherein the display buffer cache stores a plurality of pixels, each of the plurality of pixels having a pixel address within the two dimensional circular buffer, wherein each pixel is characterized by a row position and a row number, and wherein the two dimensional circular buffer is characterized by a row length and a data buffer size, wherein a current pixel is access by: calculating a row offset within the two dimensional circular buffer by multiplying a row number of the current pixel by the row length; adding a two dimensional circular buffer starting data address, modulo the data buffer size, to a current row position of the current pixel, and adding that sum to the row offset; and subtracting the data buffer size from the row offset if the row offset is greater than the data buffer size.
Claim 8
Independent Claim
325 words
A device incorporating a video display, comprising: image display for displaying a video image defined by a display buffer; a display buffer cache, electrically connected to the image display and for storing a first contiguous data subset of a complete set of digital image data, wherein the data subset is larger than display buffer and the display buffer cache is organized as a two dimensional circular buffer; and a scrolling controller, electrically connected to the display buffer cache, which performs the following processing: determining if a display buffer within the display buffer cache is within a threshold distance of an edge of data forming the first contiguous data subset; identifying an additional subset of the complete set of digital image data to place into the buffer memory, wherein the additional subset is image data that is contiguous with the first contiguous data and wherein the additional subset of data extends beyond the edge of the first contiguous data subset; and loading the additional subset of data into the display buffer beyond the edge of the first contiguous data subset through circular addressing of the display buffer, wherein the display buffer cache stores a plurality of pixels, each of the plurality of pixels having a pixel address within the two dimensional circular buffer, wherein each pixel is characterized by a row position and a row number, and wherein the two dimensional circular buffer is characterized by a row length and a data buffer size, wherein a current pixel is access by: calculating a row offset within the two dimensional circular buffer by multiplying a row number of the current pixel by the row length; adding a two dimensional circular buffer starting data address, modulo the data buffer size, to a current row position of the current pixel, and adding that sum to the row offset; and subtracting the data buffer size from the row offset if the row offset is greater than the data buffer size.
Claim 9
Dependent Claim
27 words
A device according to claim 5 wherein the device incorporating a video display is one of a digital camera, video camera and a digital image file viewer.
Claim 10
Dependent Claim
30 words
A device according to claim 5 , wherein the device incorporating a video display is one of a personal computing device, a wireless communications device and a digital communications device.
Claim 11
Dependent Claim
305 words
A computer program product for buffering a subset of digital image data used to drive a scrolling display, the computer program product configured to perform the steps of: storing a first contiguous data subset of a complete set of digital image data into a buffer memory, the data subset being greater than an amount of data accessed by a display and the buffer memory being organized as a two dimensional circular buffer; determining if a display buffer within the first contiguous data subset is within a threshold distance of an edge of data forming the first contiguous data subset; identifying an additional subset of the complete set of digital image data to place into the buffer memory, wherein the additional subset is image data that is contiguous with the first contiguous data and wherein the additional subset of data extends beyond the edge of the first contiguous data subset; and loading the additional subset of data into the display buffer beyond the edge of the first contiguous data subset through circular addressing of the display buffer, wherein the buffer memory stored a plurality of pixels, each of the plurality of pixels having a pixel address within the buffer memory, wherein each pixel is characterized by a row position and a row number, and wherein the buffer memory is characterized by a row length and a data buffer size, wherein each pixel is access by: calculating a row offset within the buffer memory by multiplying a row number of a current pixel by the row length; adding a buffer memory starting data address, modulo the data buffer size, to a current row position of the current pixel, and adding that sum to the row offset; and subtracting the data buffer size from the row offset if the row offset is greater than the data buffer size.
Claim 12
Dependent Claim
305 words
A computer program product for buffering a subset of digital image data used to drive a scrolling display, the computer program product configured to perform the steps of: storing a first contiguous data subset of a complete set of digital image data into a buffer memory, the data subset being greater than an amount of data accessed by a display and the buffer memory being organized as a two dimensional circular buffer; determining if a display buffer within the first contiguous data subset is within a threshold distance of an edge of data forming the first contiguous data subset; identifying an additional subset of the complete set of digital image data to place into the buffer memory, wherein the additional subset is image data that is contiguous with the first contiguous data and wherein the additional subset of data extends beyond the edge of the first contiguous data subset; and loading the additional subset of data into the display buffer beyond the edge of the first contiguous data subset through circular addressing of the display buffer, wherein the buffer memory stored a plurality of pixels, each of the plurality of pixels having a pixel address within the buffer memory, wherein each pixel is characterized by a row position and a row number, and wherein the buffer memory is characterized by a row length and a data buffer size, wherein each pixel is access by: calculating a row offset within the buffer memory by multiplying a row number of a current pixel by the row length; adding a buffer memory starting data address, modulo the data buffer size, to a current row position of the current pixel, and adding that sum to the row offset; and subtracting the data buffer size from the row offset if the row offset is greater than the data buffer size.
Claim 13
Dependent Claim
34 words
A method according to claim 8 , wherein the step of loading the additional subset of data comprises progressively loading the additional subset of the complete set of digital image data into the buffer.
Claim 14
Dependent Claim
28 words
A device according to claim 5 , wherein the device incorporating a video display is one of a digital camera, video camera and a digital image file viewer.
Claim 15
Dependent Claim
230 words
A system according to claim 3 , wherein the display buffer cache comprises: a register A for storing a base address for image data to be displayed; a register A 1 for storing a position of a top-left corner of the image data to be displayed; a register Wc for storing the row length; a register Sc for storing a size of the image data to be displayed; a first accumulator, communicatively coupled to the register Sc, for accumulating an offset value for each display line, wherein the first accumulator comprises a first delay element for storing a prior output of the first accumulator in order to compile a running sum of prior outputs of the first accumulator; a second accumulator for calculating the current row position; a 3-input adder, communicatively coupled to the register A 1 , the first accumulator and the second accumulator, for computing a sum of values stored in the register A 1 , the first accumulator and the second accumulator; a modulus calculator, communicatively coupled to the first 3-input adder and the register Sc, for calculating the modulus of the value stored in the register Sc and an the sum of values stored in the register A 1 ,the first accumulator and the second accumulator; and a 2-input adder 728 for adding values stored in the register A and an output of the modulus calculator.
Claim 16
Independent Claim
202 words
A system for buffering a subset of digital image data used to drive a scrolling display, comprising: a display buffer cache for storing a first contiguous data subset of a complete set of digital image data, the data subset being greater than an amount of data accessed by a display and the display buffer cache being organized as a two dimensional circular buffer, wherein the display buffer cache stores a plurality of pixels, each of the plurality of pixels having a pixel address within the two dimensional circular buffer, wherein each pixel is characterized by a row position and a row number, and wherein the two dimensional circular buffer is characterized by a row length and a data buffer size, wherein a current pixel is access by: calculating a row offset within the two dimensional circular buffer by multiplying a row number of the current pixel by the row length; adding a two dimensional circular buffer starting data address, modulo the data buffer size, to a current row position of the current pixel, and adding that sum to the row offset; and subtracting the data buffer size from the row offset if the row offset is greater than the data buffer size.
Claim 17
Independent Claim
202 words
A system for buffering a subset of digital image data used to drive a scrolling display, comprising: a display buffer cache for storing a first contiguous data subset of a complete set of digital image data, the data subset being greater than an amount of data accessed by a display and the display buffer cache being organized as a two dimensional circular buffer, wherein the display buffer cache stores a plurality of pixels, each of the plurality of pixels having a pixel address within the two dimensional circular buffer, wherein each pixel is characterized by a row position and a row number, and wherein the two dimensional circular buffer is characterized by a row length and a data buffer size, wherein a current pixel is access by: calculating a row offset within the two dimensional circular buffer by multiplying a row number of the current pixel by the row length; adding a two dimensional circular buffer starting data address, modulo the data buffer size, to a current row position of the current pixel, and adding that sum to the row offset; and subtracting the data buffer size from the row offset if the row offset is greater than the data buffer size.
References Cited (Backward Citations)
US4445114A
Cited
US4445114B1
Cited
US4442495A
Cited
US4829493A
Cited
US5138460A
Cited
US5006837A
Cited
US5032907A
Cited
US5278966A
Cited
US5798749A
Cited
US5682197A
Cited
US5774108A
Cited
US5929927A
Cited
US6366295B1
Cited
US5940641A
Cited
US6229544B1
Cited
US20020140829A1
Cited
US20020126126A1
Cited
US20020163512A1
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 2007-10-05 | 2008-04-05 | 2008-10-05 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2011-10-05 | 2012-04-05 | 2012-10-05 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2015-10-05 | 2016-04-05 | 2016-10-05 | $7700.00 | Window Closed / Lapsed |