Techniques for image segment accumulation in document rendering
AssigneeRicoh Company, Ltd.
InventorsKurt W. Piersol, Martin Boliek
Life of this patent
Estimating the term…
Abstract
A method and apparatus is disclosed herein for image processing. In one embodiment, the method comprises performing an analysis corresponding to a sequence of drawing commands that create a bit-map when executed and generating a set of image segments based on the analysis corresponding to the sequence of drawing commands.
Claims31
A computer-implemented method comprising:
- performing an analysis corresponding to a sequence of drawing commands from a drawing instruction stream that create a bit-map when executed, wherein performing the analysis corresponding to the sequence of drawing commands comprises classifying each of the commands into groups as each of the sequence of drawing commands are examined in sequence;
- and
- generating a set of image segments that group drawing commands from the sequence together for encoding, each image segment grouping one or more drawing commands to be encoded as a separate image based on drawing command type, where each of a plurality of different drawing command types is defined, at least in part, on a corresponding drawing command opcode, determined from the analysis of the sequence of drawing commands, wherein the generated set of image segments having one of a plurality of different encoding methods selected for each image segment in the set to achieve a highest level of compression with a least amount of distortion, the selection based on a drawing command type associated with each image segment, wherein generating the set of image segments further comprises:
- generating a first bitmap for a first of the groups of one or more drawing commands,
- saving the first bitmap when the all drawing commands in the first group have been analyzed, and
- creating a second bitmap for a second of the groups of one or more drawing commands.
A computer-implemented method comprising:
- performing an analysis corresponding to a sequence of drawing commands from a drawing instruction stream that create a bit-map when executed, wherein performing the analysis corresponding to the sequence of drawing commands comprises:
- classifying each of the commands into groups based at least in part on drawing command type as each of the sequence of drawing commands are examined in sequence,
- for each of the commands,
- adding a result of said each command to an electronic version of a first drawing that exists if said each command is in the same group based on drawing command type as a command that immediately precedes said each command in the sequence, and
- if said each command is not in the same group as a command that immediately precedes said each command in the sequence, then saving the first drawing and creating an electronic version of a second drawing using the result of said each command, where the electronic versions of the first and second drawings are the image segments;
- and
- generating a set of image segments that group drawing commands from the sequence together for encoding, each image segment grouping one or more drawing commands to be encoded as a separate image based on drawing command type, where each of a plurality of different drawing command types is defined, at least in part, on a corresponding drawing command opcode, determined from the analysis of the sequence of drawing commands, wherein the generated set of image segments having one of a plurality of different encoding methods selected for each image segment in the set to achieve a highest level of compression with a least amount of distortion, the selection based on a drawing command type associated with each image segment.
A computer-implemented method comprising:
- performing an analysis corresponding to a sequence of drawing commands from a drawing instruction stream that create a bit-map when executed, wherein performing the analysis corresponding to the sequence of drawing commands comprises:
- for each of the drawing commands,
- determining a list of colors generated by a result of said each drawing command,
- determining a list of tiles intersected by the result of said each drawing command,
- adding the list of colors to tag each tile in the list of tiles intersected by the result of said each drawing command, and
- copying result bits to tiles in the list of tiles intersected by the result of said each drawing command;
- and
- generating a set of image segments that group drawing commands from the sequence together for encoding, each image segment grouping one or more drawing commands to be encoded as a separate image based on drawing command type, where each of a plurality of different drawing command types is defined, at least in part, on a corresponding drawing command opcode, determined from the analysis of the sequence of drawing commands, wherein the generated set of image segments having one of a plurality of different encoding methods selected for each image segment in the set to achieve a highest level of compression with a least amount of distortion, the selection based on a drawing command type associated with each image segment, and further comprising selecting the encoding for each of the plurality of image segments based at least in part on image data for its associated region.
A computer-implemented method comprising:
- performing an analysis corresponding to a sequence of drawing commands from a drawing instruction stream that create a bit-map when executed, wherein performing the analysis corresponding to the sequence of drawing commands comprises, for each of the drawing commands,
- determining a list of colors generated by said each drawing command;
- determining a bounding box to encompass a result of performing said each drawing command;
- creating a tile bitmap associated with said each drawing command;
- and
- copying bits that would result from execution of said each drawing command to bit maps affected by said each drawing command, including tagging the tile bitmap with the list of colors;
- and
- generating a set of image segments that group drawing commands from the sequence together for encoding, each image segment grouping one or more drawing commands to be encoded as a separate image based on drawing command type, where each of a plurality of different drawing command types is defined, at least in part, on a corresponding drawing command opcode, determined from the analysis of the sequence of drawing commands, wherein the generated set of image segments having one of a plurality of different encoding methods selected for each image segment in the set to achieve a highest level of compression with a least amount of distortion, the selection based on a drawing command type associated with each image segment.
A non-transitory computer readable storage medium storing instructions thereon which, when executed by a system, causes the system to perform a method comprising:
- performing an analysis corresponding to a sequence of drawing commands from a drawing instruction stream that create a bit-map when executed, wherein performing the analysis corresponding to the sequence of drawing commands comprises classifying each of the commands into groups as each of the sequence of drawing commands are examined in sequence;
- and
- generating a set of image segments that group drawing commands from the sequence together for encoding, each image segment grouping one or more drawing commands to be encoded as a separate image based on drawing command type, where each of a plurality of different drawing command types is defined, at least in part, on a corresponding drawing command opcode, determined from the analysis of the sequence of drawing commands, wherein the generated set of image segments having one of a plurality of different encoding methods selected for each image segment in the set to achieve a highest level of compression with a least amount of distortion, the selection based on a drawing command type associated with each image segment, wherein generating the set of image segments further comprises:
- generating a first bitmap for a first of the groups of one or more drawing commands,
- saving the first bitmap when the all drawing commands in the first group have been analyzed, and
- creating a second bitmap for a second of the groups of one or more drawing commands.
A computer-implemented method comprising:
- performing an analysis corresponding to a sequence of drawing commands to generate a plurality of image segments that group drawing commands from the sequence together for encoding by groups as separate images, each image segment grouping one or more drawing commands to be encoded as a separate image based on drawing command type, where each of a plurality of different drawing command types is defined, at least in part, on a corresponding drawing command opcode, determined from the analysis of the sequence of drawing commands, wherein performing the analysis corresponding to the sequence of drawing commands comprises classifying each of the commands into groups as each of the sequence of drawing commands are examined in sequence, and further comprising:
- generating a first bitmap for a first of the groups of one or more drawing commands,
- saving the first bitmap when the all drawing commands in the first group have been analyzed, and
- creating a second bitmap for a second of the groups of one or more drawing commands;
- and
- selecting an encoding for each of the plurality of image segments based on the analysis corresponding to a sequence of drawing commands, wherein one of a plurality of different encoding methods is selected for each image segment in the plurality of image segments to achieve a highest level of compression with a least amount of distortion, the selection based on a drawing command type associated with each image segment.
An apparatus comprising:
- a processor configured to control:
- means for performing an analysis corresponding to a sequence of drawing commands from a drawing instruction stream that when performed create an image, wherein the means for performing the analysis corresponding to the sequence of drawing commands comprises means for classifying each of the commands into groups as each of the sequence of drawing commands are examined in sequence;
- and
- means for generating a set of image segments that group drawing commands from the sequence together for encoding, each image segment grouping one or more drawing commands to be encoded as a separate image based on drawing command type, where each of a plurality of different drawing command types is defined, at least in part, on a corresponding drawing command opcode, determined from the analysis of the sequence of drawing commands, wherein the generated set of image segments having one of a plurality of different encoding methods selected for each image segment in the set to achieve a highest level of compression with a least amount of distortion, the selection based on a drawing command type associated with each image segment, wherein the means for generating the set of image segments further comprises:
- means for generating a first bitmap for a first of the groups of one or more drawing commands,
- means for saving the first bitmap when the all drawing commands in the first group have been analyzed, and
- means for creating a second bitmap for a second of the groups of one or more drawing commands.
Dependencies are inferred from the claim text.