Patent TW-424201-B (TW)
Title: A printing apparatus, a method of efficiently storing bitmap print data and a computer readable storage medium encoded with an application program for efficiently storing bitmap print data
Inventor: DUFFIN DARREN LEE
IPC: H04N1/21
Filed: 1998-08-10
Granted: 2001-03-01
Abstract: An improved printer is provided that receives a print job from a host computer and divides the bitmap image of a page to be printed into a series of image blocks or tiles. Each image block containing non-null data will be stored in the printer's memory system, typically placed in a non-contiguous memory location with respect to other blocks. The null image data blocks will not be stored in the printer's memory system, but instead only their locations on the physical printed page will be stored in a ""block list table"". Each entry in the block list table contains the beginning address of the physical RAM area that contains one of the image data blocks, and also contains other variables or attributes concerning the particular image data block, such as whether or not this block is a regular non-null data block, or a ""no-op"" (or ""NOP"") block containing null data. Null data blocks require no physical memory address to be listed in their entry on the block list table, since no physical RAM areas are needed for storing null bitmap image data. Rather than building a band buffer in contiguous memory before shipping rasterized data to the laser printhead, the present invention builds in a cache a series of rasterized line segments of bitmap data in real time and sends them to the laser printhead ""on the fly"", by retrieving a single rasterized line segment of data, block-by block, as needed to complete a single entire line required to define a ""scan line"" to be created on a photoconductive drum by a rotating polygonal mirror being struck by the laser's output beam. While a particular block list entry resides in the cache, the block address is inspected to direct a read operation from the corresponding area of RAM that is holding the bitmap ""real data"" for this particular block. By use of pointers, the appropriate rasterized line segment of bitmap data will be retrieved from the corresponding memory locations in RAM, and transferred into a first in, first out (FIFO) memory in the ASIC. As the laser printhead requires data for this particular line segment, the FIFO memory will provide serialized data at the appropriate data transmission rate. If the particular block of data is a null block, then when its corresponding block list entry is inspected while residing in the cache, its ""NOP"" attribute will indicate that the printer's image system should not look to the RAM to find the ""real data"" for this particular block's rasterized line segment, but instead should pull a line segment of null data from a special NOP register residing within the ASIC. This NOP register will feed a line segment of either all zeros or ones (depending upon whether regular image data or reverse image data is desired for the printed page) to the FIFO memory in the ASIC. This null data then will be sent to the laser printhead at the appropriate data transmission rate from the bottom of the FIFO memory.