Detecting reusable content in a sequence of drawing commands
AssigneeSofha GmbH
InventorsPaul Jones, Christoph Oeters
Life of this patent
Estimating the term…
Abstract
A method to detect reusable groups of drawing commands in a sequence of drawing commands. Drawing commands are identified by checksums. Recurring and co-occurring drawing commands are combined into groups of drawing commands. Under certain conditions such a group can be replaced by a new drawing command, making the group reusable.
Claims23
A method for detecting a group of drawing commands in an original sequence of drawing commands comprising a set of observation points defining locations at which an appearance of drawing commands is evaluated, wherein said group of drawing commands occurs multiple times in the original sequence of drawing commands, wherein the drawing commands in zero or more of the occurrences of said group are in a different order, wherein the drawing commands in zero or more of the occurrences of said group have intervening drawing commands not belonging to the occurrence, and wherein the method ensures that the sequence of drawing commands is reorderable such that, after reordering, the drawing commands of each occurrence of the group of repeated drawing commands have the same order and have no intervening drawing commands and the appearance of the reordered sequence of drawing commands at each observation point is the same as the appearance of the original sequence of drawing commands at the corresponding observation point, the method comprising:
- computing, via a processor, for each drawing command in the original sequence of drawing commands, a checksum based on the drawing command and one or more appearance attributes associated with the drawing command;
- determining, via the processor, reused drawing commands in the original sequence of drawing commands by identifying drawing commands having the same checksum;
- and
- determining, via the processor, a sequence of such checksums identifying a group of reused drawing commands and a set of occurrences identifying where the drawing commands of the group of reused drawing commands occur in the original sequence of drawing commands,
- wherein each occurrence contains a set of locations of reused drawing commands with one drawing command associated with each of said checksums,
- wherein further for each checksum in the original sequence of checksums, the drawing commands associated with that checksum each draw at the same position relative to a reference point defined for the occurrence containing the respective drawing command, and
- wherein further the drawing commands of the group are reorderable such that, after reordering, the drawing commands contained in a each occurrence of the group of repeated drawing commands have the same order and have no intervening drawing commands, and the appearance at each observation point of the reordered sequence is the same as the appearance at the corresponding observation point of the original sequence.
The method according to claim 22, wherein, for a system which allows defining containers and referencing such containers from a drawing command, determining the replacement drawing command comprises:
- defining, via the processor, a container for the sequence of checksums whose content comprises drawing commands with the same appearance as the drawing commands in each occurrence;
- and
- for the replacement, using a command which places the content of the container such that the appearance is the same as before the replacement.
The method according to claim 23, wherein the modified sequence of drawing commands is stored in a Page Description Language (PDL).
The method according to claim 23, wherein the modified sequence of drawing commands is stored in a Page Description Language (PDL) and the replacement drawing commands are implemented using forms or macros.
The method according to claim 23, wherein the modified sequence of drawing commands is stored in Portable Document Format (PDF) using optional content, allowing drawing commands to be selectively enabled or disabled for raster image processor (RIP) optimization purposes.
The method according to claim 23, wherein the modified sequence of drawing commands is directly interpreted by a raster image processor (RIP) to generate raster data for each observation point.
The method according to claim 23, wherein the modified sequence of drawing commands refers to pre-rasterized data.
The method according to claim 23, wherein after performing the method of claim 23, the method of claim 23 is applied again to the resulting modified sequence of drawing commands, resulting in a further optimized version of the sequence of drawing commands.
A system for detecting a group of drawing commands in an original sequence of drawing commands comprising a set of observation points defining locations at which an appearance of drawing commands is evaluated, wherein said group of drawing commands occurs multiple times in the original sequence of drawing commands, wherein the drawing commands in zero or more of the occurrences of said group are in a different order, wherein the drawing commands in zero or more of the occurrences of said group have intervening drawing commands not belonging to the occurrence, and wherein the system ensures that the sequence of drawing commands is reorderable such that, after reordering, the drawing commands of each occurrence of the group of repeated drawing commands have the same order and have no intervening drawing commands and the appearance of the reordered sequence of drawing commands at each observation point is the same as the appearance of the original sequence of drawing commands at the corresponding observation point, the system comprising:
- a processor;
- and
- memory, wherein the memory stores instructions that, when executed by the processor, cause the processor to:
- compute, for each drawing command in the original sequence of drawing commands, a checksum based on the drawing command and one or more appearance attributes associated with the drawing command;
- determine reused drawing commands in the original sequence of drawing commands by identifying drawing commands having the same checksum;
- and
- determine a sequence of such checksums identifying a group of reused drawing commands and a set of occurrences identifying where the drawing commands of the group of reused drawing commands occur in the original sequence of drawing commands,
- wherein each occurrence contains a set of locations of reused drawing commands with one drawing command associated with each of said checksums,
- wherein further for each checksum in the original sequence of checksums, the drawing commands associated with that checksum each draw at the same position relative to a reference point defined for the occurrence containing the respective drawing command, and
- wherein further the drawing commands of the group are reorderable such that, after reordering, the drawing commands contained in each occurrence of the group of repeated drawing commands have the same order and have no intervening drawing commands, and the appearance at each observation point of the reordered sequence is the same as the appearance at the corresponding observation point of the original sequence.
Dependencies are inferred from the claim text.