Browse Prior Art Database

Method Using Partial Swath Blocks to Buffer Rasterized Text in Multi-Line APA Printers

IP.com Disclosure Number: IPCOM000061324D
Original Publication Date: 1986-Jul-01
Included in the Prior Art Database: 2005-Mar-09
Document File: 2 page(s) / 15K

Publishing Venue

IBM

Related People

Czyszczewski, JS: AUTHOR [+2]

Abstract

A method is described which allows for efficient use of printer memory, processing time, and ribbon by using a block structure for storing rasterized text rather than a full swath of memory. This method may be used as All-Points-Addressable (APA) printers that must rasterize characters from pel patterns or by using mathematical algorithms, and is especially useful for printers that normally print more than one line of text with each pass and/or also support image and graphics print objects. The tasks are temporarily stored in a buffer known as the Task Table. In this table, they are still in coded form, i.e., code points for text and vectors for graphics. A swath of print tasks is built by first linking the tasks in the task table that are completely located within the boundaries of the swath.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 51% of the total text.

Page 1 of 2

Method Using Partial Swath Blocks to Buffer Rasterized Text in Multi-Line APA Printers

A method is described which allows for efficient use of printer memory, processing time, and ribbon by using a block structure for storing rasterized text rather than a full swath of memory. This method may be used as All-Points- Addressable (APA) printers that must rasterize characters from pel patterns or by using mathematical algorithms, and is especially useful for printers that normally print more than one line of text with each pass and/or also support image and graphics print objects. The tasks are temporarily stored in a buffer known as the Task Table. In this table, they are still in coded form, i.e., code points for text and vectors for graphics. A swath of print tasks is built by first linking the tasks in the task table that are completely located within the boundaries of the swath. The tasks are then rasterized into a buffer known as the Swath Data Buffer. Graphics tasks and text tasks are rasterized and printed in separate passes. Two problems are presented by prior methods. One is that generally not enough RAM is available to store two full swaths of print data which would be required to implement a double buffering scheme. The other problem is a performance problem which exists because the text data is not printed in the same order in which it was stored and rasterized. The rasterization routines sequentially rasterize the code points in a task, then move to the next task. However, the print head needs to print the first characters in each of the three text tasks simultaneously. When entire tasks are rasterized, the complete swath has to be rasterized before any of the data can be printed. This presents a throughput problem because of the lead time involved with having to raster the entire swath before any printing is possible. In addition, the use of memory is inefficient if the tasks were rasterized into full swath buffers. Since the print data is sent to the mechanism, one column at a time, a particular column has to contain the data for all three lines before it can be printed. Memory for an entire swath would have to be allocated before the first column is rasterized even if it was not required, because the line lengths are not known when the memory allocation is performed. Since lines of text are typically shorter than the full writing line, a great deal of memory is normally not used. In accordance with the improved method, the swath is broken up into blocks and all three lines in the block are rasterized before any of the lines in the next block are rasterized so as to optimize throughput and allow printing to start before the entire swath has been rasterized. A small overflow area at the end of each block is also provided. If a character is split across a block boundary, the portion of the character that does not fit in the block can be rasterized into the overflow region. This allows the raster routines to be much faste...