Computer system for processing images using a virtual frame buffer
First Claim
1. A computer implemented process for creating a computer readable representation of an image comprising:
- creating a data structure for storing an indication of forms and memory locations of image data associated with regions of the image, where the image is defined as a plurality of said regions defined by a first number, M, indicating the number of rows of regions in the image and a second number, N, indicating the number of regions in each row of the image, such that M and N are both greater than one and each region comprises a plurality of line segments from a plurality of lines;
allocating memory to store image data associated with all of the regions; and
rendering display lists including image operations by performing, for each image operation, steps of;
identifying a region affected by the image operation;
modifying image data associated with the identified region;
storing image data associated with each region in a form and at memory locations located within the allocated memory according to an amount of memory required to store the image data associated with all of the regions and an amount of memory allocated to store the image data associated with all of the regions; and
updating the data structure.
4 Assignments
0 Petitions
Accused Products
Abstract
A page of an image is divided into several regions. Each of these regions may be compressed according to a different technique according to the kind of data within the region. Compression is used to reduce the memory requirements. Data for each region is available at any time and can be randomly accessed. Display operations may be processed in any order. For each display operation, the region which is affected is uncompressed and processed. As other regions are processed, memory space is made available by compressing data in currently unused regions. By using this kind of representation of a page and method of processing display operations, each region can be represented independently and differently. Because display operations can be processed in any order, regions may be processed by multiple imaging systems functioning in parallel. Additionally, representations of regions on a page can be stored, transmitted, or used in different locations at different times.
109 Citations
46 Claims
-
1. A computer implemented process for creating a computer readable representation of an image comprising:
-
creating a data structure for storing an indication of forms and memory locations of image data associated with regions of the image, where the image is defined as a plurality of said regions defined by a first number, M, indicating the number of rows of regions in the image and a second number, N, indicating the number of regions in each row of the image, such that M and N are both greater than one and each region comprises a plurality of line segments from a plurality of lines;
allocating memory to store image data associated with all of the regions; and
rendering display lists including image operations by performing, for each image operation, steps of;
identifying a region affected by the image operation;
modifying image data associated with the identified region;
storing image data associated with each region in a form and at memory locations located within the allocated memory according to an amount of memory required to store the image data associated with all of the regions and an amount of memory allocated to store the image data associated with all of the regions; and
updating the data structure. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
reading stored image data for enough regions to provide enough image data for at least one scan line;
generating pixels from the read stored image data of a first region;
selecting a next region from regions read;
repeating the steps of generating and selecting until an end of a scanline is reached; and
determining if a current region is a location in a next row, and returning to the step of reading when the current region is a location in the next row, and returning to the step of generating pixels when the current region is not a location in the next row.
-
-
13. The process of claim 1 wherein the step of rendering the display list comprises steps of:
-
accumulating into a display list, a sequence of at least one command in the page description;
terminating the step of accumulating according to a predetermined decision procedure;
processing the commands in the display list to produce and update an image in a frame buffer;
clearing the display list; and
repeating the steps of accumulating, terminating, processing, and clearing until the page description has been completely processed.
-
-
14. A computer system for creating a computer readable representation of an image comprising:
-
means for creating a data structure for storing an indication of forms and memory locations of image data associated with regions of the image, where the image is defined as a plurality of said regions defined by a first number, M, indicating the number of rows of regions in the image and a second number, N, indicating the number of regions in each row of the image, such that M and N are both greater than one and each region comprises a plurality of line segments from a plurality of lines;
means for allocating memory to store image data associated with all of the regions; and
means for rendering display lists including image operations, wherein the means for rendering comprises;
means for identifying a region affected by the image operation;
means for modifying image data associated with the identified region;
means for storing image data associated with each region in a form and at memory locations located within the allocated memory according to an amount of memory required to store the image data associated with all of the regions and an amount of memory allocated to store the image data associated with all of the regions; and
means for updating the data structure. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
-
-
25. A computer implemented process for creating a computer readable representation of an image comprising:
-
creating a data structure for storing an indication of forms and memory locations of image data associated with regions of the image, where the image is defined as a plurality of said regions defined by a first number, M, indicating the number of rows of regions in the image and a second number, N, indicating the number of regions in each row of the image, such that M and N are both greater than one and each region comprises a plurality of line segments from a plurality of lines;
allocating memory to store image data associated with all of the regions;
rendering display lists including image operations; and
storing image data independently for each of the associated regions in compressed or uncompressed form within the allocated memory, wherein the memory locations for the image data are determined independently of the compressed or uncompressed form of the image data. - View Dependent Claims (26, 27, 28, 29, 30, 31, 32, 33, 34, 35)
identifying a region affected by the image operation;
modifying image data associated with the identified region;
storing image data associated with each region in a form and at memory locations located within the allocated memory according to an amount of memory required to store the image data associated with all of the regions and an amount of memory allocated to store the image data associated with all of the regions;
updating the data structure;
decompressing the image data associated with the identified region if the image data is compressed; and
recovering memory when the amount of memory required to store the image data associated with all of the regions exceeds the amount of memory allocated to store the image data associated with all of the regions.
-
-
29. The process of claim 28, wherein the recovering of memory comprises compressing uncompressed image data.
-
30. The process of claim 28, wherein the recovering of memory comprises decompressing and recompressing image data that has been compressed.
-
31. The process of claim 25, wherein the step of rendering display lists includes, for each image operation, steps of:
-
identifying a region affected by the image operation;
modifying image data associated with the identified region;
storing image data associated with each region in a form and at memory locations located within the allocated memory according to an amount of memory required to store the image data associated with all of the regions and an amount of memory allocated to store the image data associated with all of the regions;
updating the data structure; and
recovering memory when the modifying causes the amount of memory required to store the image data associated with all of the regions to exceed the amount of memory allocated to store the image data associated with all of the regions.
-
-
32. The process of claim 31, wherein the recovering of memory comprises compressing uncompressed image data.
-
33. The process of claim 31, wherein the recovering of memory comprises decompressing and recompressing image data that has been compressed.
-
34. The process of claim 25, further comprising steps of:
-
reading stored image data for enough regions to provide enough image data for at least one scanline;
generating pixels from stored image data of a first region;
selecting a next region from regions read;
repeating the steps of generating and selecting until an end of a scanline is reached;
determining if a current region is a location in a next row, and returning to the step of reading when the current region is a location in the next row, and returning to the step of generating pixels when the current region is not a location in the next row.
-
-
35. The process of claim 25, wherein the step of rendering the display list comprises steps of:
-
accumulating into a display list, a sequence of at least one command in the page description;
terminating the step of accumulating according to a predetermined decision procedure;
processing the commands in the display list to produce and update an image in a frame buffer;
clearing the display list; and
repeating the steps of accumulating, terminating, processing, and clearing until the page description has been completely processed.
-
-
36. A computer system for creating a computer readable representation of an image comprising:
-
means for creating a data structure for storing an indication of forms and memory locations of image data associated with regions of the image, where the image is defined as a plurality of said regions defined by a first number, M, indicating the number of rows of regions in the image and a second number, N, indicating the number of regions in each row of the image, such that M and N are both greater than one and each region comprises a plurality of line segments from a plurality of lines;
means for allocating memory to store image data associated with all of the regions;
means for rendering display lists including image operations; and
means for storing image data independently for each of the associated regions in compressed or uncompressed form within the allocated memory, wherein the memory locations for the image data are determined independently of the compressed or uncompressed form of the image data. - View Dependent Claims (37, 38, 39, 40, 41, 42, 43, 44)
means for identifying a region affected by the image operation;
means for modifying image data associated with the identified region;
means for storing image data associated with each region in a form and at memory locations located within the allocated memory according to an amount of memory required to store the image data associated with all of the regions and an amount of memory allocated to store the image data associated with all of the regions;
means for updating the data structure;
means for decompressing the image data associated with the identified region if the image data is compressed; and
means for recovering memory when the amount of memory required to store the image data associated with all of the regions exceeds the amount of memory allocated to store the image data associated with all of the regions.
-
-
40. The computer system of claim 39, wherein the recovering of memory comprises compressing uncompressed image data.
-
41. The computer system of claim 39, wherein the recovering of memory comprises decompressing and recompressing image data that has been compressed.
-
42. The computer system of claim 36, wherein the means for rendering comprises:
-
means for identifying a region affected by the image operation;
means for modifying image data associated with the identified region;
means for storing image data associated with each region in a form and at memory locations located within the allocated memory according to an amount of memory required to store the image data associated with all of the regions and an amount of memory allocated to store the image data associated with all of the regions;
means for updating the data structure; and
means for recovering memory when the means for modifying causes the amount of memory required to store the image data associated with all of the regions to exceed the amount of memory allocated to store the image data associated with all of the regions.
-
-
43. The computer system of claim 42, wherein the recovering of memory comprises compressing uncompressed image data.
-
44. The computer system of claim 42, wherein the recovering of memory comprises decompressing and recompressing image data that has been compressed.
-
45. A computer implemented process for creating a computer readable representation of an image comprising:
-
creating a data structure for storing an indication of compressed or uncompressed form and memory locations of image data associated with regions of the image, where the image is defined as a plurality of said regions defined by a first number, M, indicating the number of rows of regions in the image and a second number, N, indicating the number of regions in each row of the image, such that M and N are both greater than one and each region comprises a plurality of line segments from a plurality of lines;
allocating memory to store image data associated with all of the regions; and
rendering display lists including image operations by performing, for each image operation, steps of;
identifying a region affected by the image operation;
modifying image data associated with the identified region;
storing image data associated with each region in a compressed or uncompressed form and at memory locations located within the allocated memory in accordance with space available in the allocated memory; and
updating the data structure.
-
-
46. A computer system for creating a computer readable representation of an image comprising:
-
means for creating a data structure for storing an indication of compressed or uncompressed form and memory locations of image data associated with regions of the image, where the image is defined as a plurality of said regions defined by a first number, M, indicating the number of rows of regions in the image and a second number, N, indicating the number of regions in each row of the image, such that M and N are both greater than one and each region comprises a plurality of line segments from a plurality of lines;
means for allocating memory to store image data associated with all of the regions; and
means for rendering display lists including image operations, wherein the means for rendering comprises;
means for identifying a region affected by the image operation;
means for modifying image data associated with the identified region;
means for storing image data associated with each region in a compressed or uncompressed form and at memory locations located within the in accordance with space available in the allocated memory; and
means for updating the data structure.
-
Specification