IP Library Granted Patent US 8,659,620
Granted Patent B2
US 8,659,620 · App. 12/422,574 · Granted Feb 25, 2014

Methods and apparatus for rendering images

Inventors: Roderick A. McMullen (Tampa, FL); David Hilsabeck (Valrico, FL)
Assignee: Accusoft Corporation
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,659,620
App. No.
12/422,574
Granted
Feb 25, 2014
Kind
B2
Abstract

To facilitate rendering an image, e.g., a portion of a PDF page, at higher resolutions or locations than could be expressed using standard 32 bit fixed point integer values, an image is segmented and a user space coordinate system origin used for individual segment processing is transformed on a per segment basis to each segment locality before a render request is made to a rendering function library. After a new origin of a segment is established, the PDF page content contained within that locality corresponding to the individual segment being processed is rendered, e.g., using functions available in the PDF software library. The results of processing the segments is combined to produce a final high-resolution image. While the input to the rendering process may include values which can not be expressed in 32 bit fixed point notation, the segmentation process allows the individual segments to be rendered using rendering specified using such notation.

Claims (40)

1. A method of rendering an image, the method comprising:

receiving image manipulation information including floating point values of a first coordinate system ,said floating point values indicating a manipulation to be performed on a portion of an input image which is to be manipulated;

segmenting the input image into a plurality of non-overlapping partition areas to be manipulated using a second coordinate system which uses fixed point values;

for each of the partition areas including at least some of said portion of an input image which is to be manipulated:

generating a set of partition area manipulation information indicating a manipulation to be performed on a partition area being processed, said set of partition area manipulation information including fixed point values corresponding to said second coordinate system;

redefining the location of the partition area being processed so that a corner of the partition area being processed is positioned at the origin of a coordinate grid corresponding to the second coordinate system used to define image area location during said manipulating of the partition area being processed;

manipulating the partition area being processed, after redefining the location of the partition area being processed, in accordance with the generated set of partition area manipulation information including fixed point values corresponding to said second coordinate system; and

outputting at least a portion of the resulting manipulated partition area to a location in memory used to store rendered image data.

2. The method of claim 1 , wherein the rendered image data is pixel data.

3. The method of claim 1 , wherein the rendered image data is image data is expressed in a device context format.

4. The method of claim 3 , wherein the device context format is a format used by a printer.

5. The method of claim 1 , wherein said floating point values indicating a manipulation to be performed includes at least one value which can not be expressed as a 32 bit fixed point value; and

wherein said fixed point values in said set of partition area manipulation information are 32 bit fixed point values.

6. The method of claim 5 , wherein said values indicating a manipulation to be performed include 32 bit floating point values.

7. The method of claim 5 , wherein dynamically determining a segment size includes selecting as a segment width, when said portion of an input image has a width that is too large to express as a 32 bit fixed point value, which is the largest width that can be expressed as a 32 bit fixed point value.

8. The method of claim 1 , further comprising:

prior to segmenting the image, dynamically determining a segment size as a function of image resolution expressed in dots per inch and the area of the image portion to be rendered.

9. The method of claim 1 ,

wherein said input image is represented in a PDF format; and

wherein manipulating the partition area being processed includes a call to a PDF graphics rendering subroutine.

10. The method of claim 9 , further comprising:

mapping the manipulated partition area to a location in the final output image based on image partitioning information to determine the location in the memory to which at least a portion of the manipulated partition area is to be output.

11. An apparatus for rendering an image, comprising: processor configured to:

receive image manipulation information including floating point values of a first coordinate s stem said floating point values indicating a manipulation to be performed on a portion of an input image which is to be manipulated;

segment the input image into a plurality of non-overlapping partition areas to be manipulated using a second coordinate system which uses fixed point values;

generate a set of partition area manipulation information indicating a manipulation to be performed on a partition area being processed, said set of partition area manipulation information including fixed point values corresponding to the second coordinate system;

redefine the location of the partition area being processed, prior to manipulating the partition area being processed, so that a corner of the partition area being processed is positioned at the origin of a coordinate grid corresponding to the second coordinate system used to define image area location during said manipulation of the partition area being processed;

manipulate the partition area being processed in accordance with the generated set of partition area manipulation information including fixed point values corresponding to said second coordinate system; and

an output output at least a portion of the resulting manipulated partition area to a location in memory used to store rendered image data.

12. The apparatus of claim 11 , further comprising:

dynamically determine, prior to segmenting the image, a segment size as a function of image resolution expressed in dots per inch and the area of the image portion to be rendered.

13. The apparatus of claim 11 , wherein the rendered image data is pixel data.

14. A non-transitory computer readable medium including computer executable instructions for controlling a computer to implement a method of rendering an image, the method comprising:

receiving image manipulation information including floating point values of a first coordinate system, floating point values indicating a manipulation to be performed on a portion of an input image which is to be manipulated;

segmenting the input image into a plurality of non-overlapping partition areas to be manipulated using a second coordinate system which uses fixed point values;

for each of the partition areas including at least some of said portion of an input image which is to be manipulated:

generating a set of partition area manipulation information indicating a manipulation to be performed on the partition area being processed, said set of partition area manipulation information including fixed point values corresponding to said second coordinate system;

redefining the location of the partition area being processed so that a corner of the partition area being processed is positioned at the origin of a coordinate grid corresponding to said second coordinate system used to define image area location during said manipulating of the partition area being processed;

manipulating the partition area being processed, after redefining the location of the partition area, in accordance with the generated set of partition area manipulation information including fixed point values corresponding to said second coordinate system; and

outputting at least a portion of the resulting manipulated partition area to a location in memory used to store rendered image data.

Assignments (4)
SECURITY INTEREST Recorded Oct 23, 2025
From: ACCUSOFT CORPORATION
To: MS PRIVATE CREDIT ADMINISTRATIVE SERVICES LLC, AS COLLATERAL AGENT
Reel/Frame 072659/0776 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 8, 2014
From: MCMULLEN, RODERICK A.; HILSABECK, DAVID
To: ACCUSOFT CORPORATION
Reel/Frame 031915/0639 →
CHANGE OF NAME Recorded Mar 29, 2013
From: PEGASUS IMAGING CORPORATION
To: ACCUSOFT CORPORATION
Reel/Frame 030114/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 8, 2009
From: MCMULLEN, RODERICK A; HILSABECK, DAVID
To: ACCUSOFT-PEGASUS
Reel/Frame 022658/0322 →
Continuity (1)
Related Publication 20100259557A1 · Oct 14, 2010