Find Articles in:
All
Business
Reference
Technology
News
Lifestyle

PPA printer software driver design

Hewlett-Packard Journal, June, 1997 by David M. Hall, Lee W. Jackson, Katrina Heiles, Karen E. Van der Veer, Thomas J. Halpenny

The software driver for the HP DeskJet 820C printer performs many functions that were formerly performed in the printer, including swath cutting, data formatting, and communications. The driver also includes a PCL emulation module for DOS application support.

The software driver for the new HP DeskJet 820C printer includes many new functions that need to be performed on the host computer because of the printer's Printing Performance Architecture (PPA). In older PCL (Printer Control Language) printers, these functions were performed in the printer. Fig. 1 shows the differences. These functions include:

[Figure 1 ILLUSTRATION OMITTED]

* Swath cutting

* Data formatting

* PPA communications

* PCL emulation for DOS application support.

This article provides an overview of the changes necessary for supporting PPA and then discusses each of the functions listed above in more detail.

Driver Overview

Under the Windows[R] operating system, printer drivers are responsible for supporting a specific API (application programming interface) known as the DDI (Device Driver Interface). This interface gives the driver fairly high-level drawing commands. It is up to the driver to take those commands and produce a bitmap that can be encapsulated in a language and sent to the printer.

Typically, within a Windows printer driver, a rendering engine takes the DDI commands and produces a rendered bitmap. A halftoning algorithm is performed on the rendered bitmap and a halftoned bitmap is produced. This halftoned bitmap is typically in a format that can be encapsulated in a language such as PCL and then given to the printer.

For the HP DeskJet 820C, this halftoned bitmap has to be put through additional processing as shown in Fig. 1 to create data that is ready to be printed by the printer's electronics directly. This additional processing includes swath cutting and sweep formatting.

Since the HP DeskJet 820C does not understand PCL (Printer Control Language), a PCL emulation module is necessary to provide support for DOS applications. The DOS application data stream is captured by a DOS redirector and passed to the PCL emulator, which produces a halftoned bitmap ready for swath cutting.

PCL versus PPA

Fig. 2 shows the printing model for PCL printers. For PCL printers, the process of encapsulating the halftoned bitmap is fairly straightforward. Raster data from the halftoned bitmap is compressed, PCL wrapped, and then sent to the I/O module. The reason that this is a simple process is that PCL printers are designed to receive data in the same format as the halftoned bitmap. PCL printers unwrap the data into an internal buffer and perform the necessary swath cutting and data formatting internally.

[Figure 2 ILLUSTRATION OMITTED]

Fig. 3 shows the printing model for PPA printers. For the HP DeskJet 820C, the PCL encapsulator is replaced with an SCP data encapsulator. SCP (Sleek Command Protocol) is an HP-proprietary command language. This module contains swath cutting functionality, data formatting, SCP language encapsulation, and printer status management.

[Figure 3 ILLUSTRATION OMITTED]

Raster data from the halftoned bitmap comes into the SCP data encapsulator, goes through the SCP manager, and eventually arrives at a raster block within the swath manager. The swath cutting state machine examines the data and determines the appropriate sweep to generate. A sweep is a collection of rasters appropriate for the printer mechanism to print while it sweeps the printhead over the paper.

Once the sweep is generated, it is given to the sweep formatter. The sweep formatter is responsible for taking the sweep data and putting it into the appropriate format for the HP DeskJet 820C internal hardware. Then the data is compressed, wrapped in SCP, and handed off to the I/O layer.

The I/O layer is responsible for communicating with the printer by wrapping the data stream in VLink and IEEE 1284 protocols. VLink is an HP-proprietary link-level protocol and IEEE 1284 is an industry-standard physical-layer protocol.

Performing Swath Cutting on the Host

Swath cutting is the process of taking a page of halftoned raster data and producing sweep data appropriate for the carriage electronics to print as the printhead is sweeping across the page. Swath cutting has historically been part of printer firmware, but in the HP DeskJet 820C printer, it is part of the software driver running on the host computer. Typically, a swath manager encapsulates a swath cutting engine and receives as input a bitmap representation of the page to be printed. The swath manager is responsible for determining how the pens and paper should be moved and when and how the pens should be fired to produce the printed page. The swath manager must balance the often conflicting goals of printing with the highest possible print quality and printing as fast as possible. The swath manager must be aware of certain printer-specific attributes such as printhead alignment and strategies to minimize line feed error. In PPA, swath management is performed on the host computer.

 

BNET TalkbackShare your ideas and expertise on this topic

The following tags are supported in BNET comments:
<b></b> <i></i> <u></u> <pre></pre>

Leave a Reply

  1. You are currently a guest | Login?
advertisement
CIO SessionsVision Series on ZDNet

See and hear what CIOs the world over thinks about the business of technology and how it's changing the way we live and work.

Go
advertisement
  • Click Here
  • Click Here
advertisement

Content provided in partnership with Thompson Gale