Claims
- 1. An ASIC, comprising:
a DMA arbiter to parse color plane data, sending each color plane's data to a DMA associated with each color plane; a compressor, to receive color plane data from the DMA associated with each color plane and to compress color data in runs, seedrow copies and literals, thereby forming compressed data; a decompressor to decompress the compressed data, the decompressor comprising:
a decompressor core to direct data decompression; and a state machine, operating within the decompressor core, to recognize and decompress runs, seedrow copies and literals.
- 2. The ASIC of claim 1, wherein the compressor additionally comprises:
a data interleaver to interleave color plane data in a format comprising RGBR, GBRG and BRGB sequences.
- 3. The ASIC of claim 1, wherein the compressor comprises:
a compression controller to determine if the color plane data should be compressed as a run, seedrow copy or as a literal.
- 4. The ASIC of claim 3, wherein the compressor additionally comprises:
a run command unit to compress runs in the color plane data; a seedrow copy unit to compress seedrow copies in the color plane data; and a literal unit to process literals in the color plane data.
- 5. The ASIC of claim 1, wherein the decompressor additionally comprises:
a look-ahead buffer to contain compressed pixel data for use in loading Boolean equations within sequence of prioritized equations within the state machine; and wherein the decompressor is configured to decompress data at one pixel per clock cycle of the ASIC.
- 6. The ASIC of claim 1, wherein the compressor comprises:
an entropy module, instantiated in each color plane as an indicator of compression effectiveness, which counts changes between sequential pixels to measure entropy on a line basis, and which averages together multiple lines to broaden the indicator.
- 7. An ASIC, comprising:
a decompressor to decompress compressed data for transfer to a print engine, wherein the decompressor comprises: a look-ahead buffer to contain compressed data; a state machine to load the compressed data from the look-ahead buffer into locations within a sequence of prioritized equations associated with each of a plurality of states, wherein each equation is associated with movement from a first state to a second state and wherein equations within the sequence of prioritized equations are configured for sequential evaluation; and states, included among the plurality of states, to recognize data associated with run, seedrow copy and literal pixels.
- 8. The ASIC of claim 7, additionally comprising:
a compressor, to receive color plane data associated with each color plane and to compress color data in runs, seedrow copies and literals.
- 9. The ASIC of claim 8, wherein the compressor comprises:
an entropy module to measure compression effectiveness by counting changes between sequential pixels.
- 10. The ASIC of claim 8, wherein the compressor comprises:
a data interleaver to interleave color plane data in a format comprising RGBR, GBRG and BRGB sequences; and a compression controller to determine if data associated with each pixel of the color plane data should be compressed as a run, seedrow copy or as a literal.
- 11. The ASIC of claim 10, wherein the compressor additionally comprises:
a run command unit to compress runs; a seedrow copy unit to compress seedrow copies; and a literal unit to process literals.
- 12. The ASIC of claim 7, wherein the state machine comprises:
an idle state to wait for a new command; a decode command state to look at a current command; a write seedrow copy initial state to write out a number of initial seedrow copy pixels specified; a write seedrow copy subsequent state to write out subsequent seedrow copy pixels that are specified in seedrow copy count bytes that follow a command; a wait for first pixel state to wait for a first pixel of a run or a literal to be available; a write replacement initial state to write out literal or run pixels; and a write replacement subsequent state to write out subsequent literal or run pixels.
- 13. A method of compressing data, comprising:
interleaving color plane data; determining an appropriate compression type from among runs, seedrow copies and literals; buffering commands to assist a run module, a seedrow copy module and a literal module to be operated concurrently; and buffering literals to allow the literal module to batch literals for output.
- 14. The method of claim 13, additionally comprising:
sequencing output of the seedrow copy module and the literal module to maintain correct pixel order; and outputting compressed data for storage until decompression.
- 15. The method of claim 13, additionally comprising:
measuring entropy to determine compression effectiveness, wherein the measuring is performed by counting changes between sequential pixels.
- 16. An ASIC comprising logic for:
interleaving color plane data; determining an appropriate compression type from among runs, seedrow copies and literals; buffering commands to assist a run module, a seedrow copy module and a literal module to be operated concurrently; and buffering literals to allow the literal module to batch literals for output.
- 17. A printer, comprising:
print engine means for producing print output; controller means for controlling operation of the print engine; means for interleaving color plane data; means for determining an appropriate compression type from among runs, seedrow copies and literals; means for buffering commands to assist a run module, a seedrow copy module and a literal module to be operated concurrently; and means for buffering literals to allow the literal module to batch literals for output.
- 18. A printer, comprising:
print engine means for producing print output; controller means for controlling operation of the print engine means; means for interleaving color plane data to be used for producing print output; means for associating the interleaved data to be compressed with runs, seedrow copies and literals; and means for buffering commands to enable independent and simultaneous operation of a run module, a seedrow copy module and a literal module.
- 19. The printer of claim 18, additionally comprising:
means for monitoring the run module, the seedrow copy module and the literal module to facilitate output sequencing.
- 20. The printer of claim 18, additionally comprising:
means for buffering literals to allow the literal module to batch literals for output.
- 21. The printer of claim 18, additionally comprising:
means for measuring entropy to determine compression effectiveness, wherein the measuring is performed by counting changes in numeric color plane data between sequential pixels.
- 22. A method of decompressing data, comprising:
buffering not yet decompressed data in a look-ahead buffer; loading Boolean expressions in parallel with load equations, registers and signals which are based in part on the look-ahead buffer; evaluating a sequence of prioritized equations comprising the Boolean expressions, wherein the sequence is associated with a current state in a state machine; and locating and decompressing, through operation of states within the state machine, instances of runs, seedrow copies and literals.
- 23. The method of claim 22, additionally comprising:
performing the evaluating within the state machine, wherein movement between states is based on identification of a first true expression within the sequence of prioritized equations associated with a current pixel.
- 24. The method of claim 22, additionally comprising:
triggering movement between states by finding a true equation within the sequence of prioritized equations; and moving to a state associated with the true equation.
- 25. The method of claim 22, wherein operation of the state machine comprises:
idling within an idle state to wait for a new command; decoding a current command within a decode command state; writing out a number of initial seedrow copy pixels specified within a write seedrow copy initial state; writing out subsequent seedrow copy pixels that are specified in seedrow copy count bytes that follow a command within a write seedrow copy subsequent state; waiting for a first pixel of a run or a literal to be available within a wait for first pixel state; writing out literal or run pixels within a write replacement initial state; writing out subsequent literal or run pixels within a write replacement subsequent state; and prioritizing equations associated with movement from a first state to a second state within the state machine.
- 26. The method of claim 22, additionally comprising:
outputting decompressed data associated with one pixel each clock cycle.
- 27. An ASIC comprising logic for:
idling within an idle state to wait for a new command; decoding a current command within a decode command state; writing out a number of initial seedrow copy pixels specified within a write seedrow copy initial state; writing out subsequent seedrow copy pixels that are specified in seedrow copy count bytes that follow a command within a write seedrow copy subsequent state; waiting for a first pixel of a run or a literal to be available within a wait for first pixel state; writing out literal or run pixels within a write replacement initial state; writing out subsequent literal or run pixels within a write replacement subsequent state; and prioritizing equations associated with movement from a first state to a second state within the state machine.
- 28. A printer, comprising:
print engine means for producing print output; controller means for controlling operation of the print engine means; means for idling the controller means within an idle state to wait for a new command; means for decoding a current command within a decode command state; means for writing out a number of initial seedrow copy pixels specified within a write seedrow copy initial state; means for writing out subsequent seedrow copy pixels that are specified in seedrow copy count bytes that follow a command within a write seedrow copy subsequent state; means for waiting for a first pixel of a run or a literal to be available within a wait for first pixel state; means for writing out literal or run pixels within a write replacement initial state; means for writing out subsequent literal or run pixels within a write replacement subsequent state; and means for prioritizing equations associated with movement from a first state to a second state within the state machine.
- 29. A printer, comprising:
print engine means for producing print output; controller means for controlling operation of the print engine means; means for buffering not yet decompressed data in a look-ahead buffer; means for loading a sequence of prioritized equations for a current state within a state machine in part using look-ahead data; means for examining a current pixel for instances of runs, seedrow copies and literals; and means for decoding the instances of runs, seedrow copies and literals for transmission to the print engine.
- 30. The printer of claim 29, additionally comprising:
means for performing the loading of equations within the sequence of prioritized equations in parallel, wherein load equations, registers and signals are based in part on the look-ahead buffer.
- 31. The printer of claim 29, additionally comprising:
means for outputting decompressed data associated with one pixel each clock cycle.
- 32. The printer of claim 29, wherein the state machine additionally comprises:
means for instantiating an idle state to wait for a new command; means for instantiating a decode command state to look as a current command; means for instantiating a write seedrow copy initial state to write out a number of initial seedrow copy pixels specified; means for instantiating a write seedrow copy subsequent state to write out subsequent seedrow copy pixels that are specified in seedrow copy count bytes that follow a command; means for instantiating a wait for first pixel state to wait for a first pixel of a run or a literal to be available; means for instantiating a write replacement initial state to write out literal or run pixels; means for instantiating a write replacement subsequent state to write out subsequent literal or run pixels; and a sequence of prioritized equations, associated with each state, wherein each equation within each sequence of prioritized equations is associated with a state.
RELATED APPLICATIONS
[0001] This application is a continuation of a U.S. provisional application having Ser. No. 60/360,835, filed Feb. 27, 2002 by the same inventors herein named.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60360835 |
Feb 2002 |
US |