ForewordMost of us remember our first demonstration of a printer driven from a personal computer. We watched with fascination because previous to that, the only printers we had seen had been in corporate computer rooms. The printers had been massive devices, feeding 18 inch wide folded paper out of big boxes. Their solenoid driven hammers noisily churned out reams of paper printed in a single font. Computer based printing had started long before that, however. Xerographic technology had been used in copiers since late 1959 when Xerox introduced their model 914 machine. The Xerox technology was magical when compared against the old Thermofax (heat-sensitive copy paper) copies and Oxalid copy machines with their ammonia process smell, used mostly for drafting sized drawing copies. By the mid 1970's, the industrial printing business was printing in color using color separation techniques. With this technique, four color half tone negatives were produced, one each for cyan, magenta, yellow, and black, the four primary colors. This technique required skilled pressmen to operate, align, and optimize the combining of the negatives. The results they achieved were stunning. But all of this was done in controlled environments, out of the reach of everyday users. Then Hewlett-Packard entered the picture. The first consumer product to hit the market was the HP 2225 ThinkJet printer, in Spring,1984. It used the newly developed thermal inkjet technology. This monochrome printer used sprocket fed, accordion folded special paper. A replaceable ink cartridge fired tiny ink dots through its print head to form characters within a font. It was absolutely quiet, except for the whine of its tiny horizontal drive motor. And, it connected directly to a personal computer. The printing revolution had begun. Then, electrophotography, or laser printing, entered the picture, May, 1984. On this website, we learned about the first HP LaserJet technology from Jim Hall in his HP Memoir (Click here). The HP LaserJet used plain paper, utilized precise and beautiful fonts, and was affordable. Additional fonts could be added by using plug in font cartridges. The combination of inkjet and LaserJet printers catapulted Hewlett-Packard into the leadership position in monochrome printing. But the world is in color. TV, computer monitors, presentations, advertising, and business operate in a color environment. Could Hewlett-Packard bring color printing to personal printing? The theory of color printing is complex. It is as much art as it is science. Color tends to be subjective. It is culture dependent. What truly is red? This story does a magnificent job at describing all the considerations that need to be taken to perform color printing. These considerations include the creation of an image's digital data representation, the transforming and transferring of data, and the reconstruction of the image to be placed on paper. Along the way, massive amounts of data must be moved and processed within milliseconds. Highly efficient techniques needed to be developed to allow these considerations to be viable. The reader is referred to a paper by John Meyer of HP Labs, who was an expert on the theory of color data handling. John's monograph is referenced at the HP Labs web site. http://www.hpl.hp.com/news/2004/apr-jun/color_printing.htm. All of us have gone to our favorite electronics store and bought a computer and printer. We've taken them home, plugged them in, and expected them to start printing as soon as we click the print button. Behind that experience is a world of engineering, brought to you by Hewlett-Packard. Find out how Hewlett-Packard brought color personal printing to reality by reading the story of the first HP Color LaserJet. John Minck |
Click here to download Ted and Bernie's memories in PDF format - The 22 pages document is a 3.8 Mb PDF file.
Ted Podelnyk grew up in Center Line, Michigan, a suburb of Detroit, and attended Wayne State University, where he received his BSEE in 1978. After graduation, Ted was off to the wilds of Phoenix, Arizona, where he worked for Sperry Flight Systems, and pursued his MSEE at Arizona State University.
Sperry provided plenty of opportunities to expand Ted's experience base. He was responsible for digital hardware design, (including one of the first 8086/8087 processor implementations) analog hardware design, low level firmware, and system software design. Arizona also provided the perfect place for Ted to hunt and camp. But Phoenix was just too hot. Ted needed to get back to somewhere that had real winters.
In July of 1984, Ted joined Hewlett-Packard as a member of the Boise Printer Division's R&D lab. His original group had bit released the code for the original LaserJet printer the day before Ted started.
His initial years at Hewlett-Packard were involved in a number of projects, including
When the opportunity arose in 1990 to join the Color LaserJet effort, Ted pounced on it. Over the next seven years, Ted not only helped bring the original Color LaserJet to market, but also worked on the first multiple bit per pixel Color LaserJet, created and implemented "Fast Raster," a hardware ready bit implementation scheme that increased raster processing speeds by a factor of 10. He also, defined PCL5C, presented at several PCL Developer's conferences, and co-authored the PCL5C Technical Reference Manual, published by Hewlett-Packard.
Throughout it all, Ted has maintained a work/life balance. Ted and his wife Pat (a Hewlett-Packard retiree) have four children and one grandchild. Ted has remained active as a hockey referee since starting officiating at age 16, and has officiated games from kids through college level. He is approaching having officiated 2000 games. Hobbies still include hunting and camping. Woodworking has been added to the mix, with an emphasis on furniture. In their spare time, Ted and Pat enjoy travelling to see family, and especially the grandchild.
I was born in Heidleberg, Germany and moved back to the US at age 6. After moving around somewhat, my family settled in Colorado.
I received a BSME from Colorado State University in 1979. While attending CSU, I worked as an undergraduate research assistant in NASA's deep space ion propulsion program at the Foothills Research Center of CSU. First employment out of CSU was with Storage Technology Corporation in Louisville, Colorado. I participated in the development and large scale manufacture of first generation thin film disk heads for the IBM plug compatible storage market.
I started with HP in Boise, Idaho in Jan of 1985. During my time with HP, I worked in both inkjet and laser printing technologies. The first five years was devoted to ink but then I transitioned into laser beginning with the first Color LaserJet.
Since the Color LaserJet project, I worked on various laser platforms, primarily color. Besides working at HP it was also one of my great fortunes to work closely with two Japanese companies, Konica and Canon.
In Dec of 2012, I decided to become blissfully retired and have been that way (blissful and retired) ever since. I live in Boise with my wife Julie.
This Color LaserJet was the object of our design team efforts. It was introduced in Sept, 1994, and helped Hewlett-Packard dominate the personal computing printing market for years. Photo courtesy of the HP Computer Museum. |
In 1984, Hewlett-Packard (HP) revolutionized the desktop printing market with the introduction of the HP LaserJet printer. It offered unparalleled print quality at an affordable price point. Desktop printing exploded. Over the next several years, Hewlett-Packard expanded the LaserJet product line to include personal models, higher throughput models, advanced paper handling models and network ready models.
But HP management always knew the next breakthrough in printing would be color. Someday, there would be a HP Color LaserJet printer.
The history of the first HP Color LaserJet hasn't been told before. The HP Color LaserJet came to be from a bunch of engineers who didn't realize the magnitude of the effort they were undertaking. But they were bound and determined to revolutionize desktop printing in a manner that would surpass the introduction of the original HP LaserJet.
This story is going to be told from the viewpoint of the engineers who worked on the HP Color LaserJet from day one.
We hope you like our story.
In 1990, Dick Hackborn, Vice President of the Boise Printer Division made a decision to organize an effort to introduce the world's first color laser printer for the desktop. A call went out, in the form of a memo, looking for volunteers to work on the project. The memo and initial program mission statement are shown below.
It wasn't until September of 1990, when the initial five member team was assembled. They were:
Bernie Clifton A mechanical engineer with extensive knowledge of laser technology, and engine reliability, Bernie was able to leverage his competitive analysis knowledge to determine what would be needed to constitute a viable product.
Doug Heins A software engineer with monochrome LaserJet formatter experience. Doug brought color science, raster processing and image processing knowledge to the mix.
Ted Podelnyk A software engineer with monochrome LaserJet formatter and machine control experience. Ted was familiar with networking, Ink Jet mechanisms and Ink Jet technology.
Gary Vondran An electrical engineer with monochrome LaserJet formatter hardware design experience. Gary brought parallel processing, VLSI design, and high data throughput design experience to the team.
Rob Horton A marketeer who knew about the color printer market. Rob had contacts with third party development teams, Independent Software Vendors (ISVs) and the dealer channel.
As the team was being assembled, a change in project manager took place. Jim Bratnober, the original project manager, left to take on another high priority project. Pat Walker, from HP's Disc Memory Division, was named to lead the effort.
Pat had extensive experience with Hewlett-Packard's disk drive product line, but had no experience with printers. In hindsight, this lack of printer experience turned out to be a valuable asset. We once asked Pat what he expected from us. His answer was, "Impress me." He was exactly the type of manager the group needed.
The team was moved from Hewlett-Packard's Boise Printer Division to the Network Printer Division. This was done to:
The project needed a name. It was decided to name it Bedrock, after the Flintstones cartoons because this product would form the bedrock of future Hewlett-Packard printer products (both color and monochrome). Besides, the group thought the Flintstones were cool.
The original project mission statement called for a determination to be made whether to source an engine from another vendor, or have Hewlett-Packard develop their own engine.
To do this, we had to determine whether other vendors had color laser engines that would meet our needs. We needed to find engines we could evaluate. Bernie and Rob took the lead in this effort. Bernie put together Request-For-Proposals to send to engine vendors to determine if they either had prototypes for evaluation, or if they were willing to work with Hewlett-Packard in a joint development effort.
Meanwhile, Rob was determining needed engine specifications, such as price, print quality, speed, color quality, paper handling, and graphics capabilities.
This led to the creation of the first product data sheet for Bedrock.
Bernie and Rob needed to research companies Hewlett-Packard could talk to about starting a new business. There were a number of companies from the US, Japan and Europe to consider.
However, contacting these companies always turned into a cat and mouse game. When they learned Hewlett-Packard, the monochrome printing leader was looking to move into color, they got very interested and started trying to extract information without giving away information of their own. We, on the other hand, wanted to extract as much information about what the companies were doing in the area of color without giving away Hewlett-Packard's strategy. It became apparent in many cases that companies were on a fact finding mission as they gave purposefully deceptive information.
The team flew to Las Vegas to attend Comdex, learn more about the state of color printing, and arrange meetings with potential engine partners. The trip was planned at the last minute, and due to a shortage of available rooms in Vegas, several team members ended up staying in a rented Winnebago in the camping area of the Circus-Circus casino. We arranged vendor meetings whenever and wherever we could. Several meetings were actually held in the Winnebago, where refreshments of bottled water, beer and Hostess Twinkies were offered. It may not have been a glamorous start, but we did establish that Hewlett-Packard was serious about getting into color desktop printing.
In the end, two companies emerged as the best candidates with which to partner. Canon and Konica. Both companies had poured large amounts of money and effort into developing actual prototypes. Both companies had seen the opportunity of Color Electrophotographic (EP) printing, and both wanted to play a part in it. While both seemed to have viable products (Canon's actually fit the technology direction fairly closely), we saw deficiencies in both. The major difference between the two was that Canon was done making changes and basically told us to take their product as is or leave it. They were inflexible toward many of our proposals and generally gave us less access from a technical standpoint than we desired. Konica, on the other hand, remained flexible, acknowledged design deficiencies, and indicated a willingness to work with us to improve the product.
Meanwhile, Doug, Gary and Ted jumped into development of a prototype engine evaluation system. An evaluation system (Spandex) was developed that allowed raster image files to be sent to a designated prototype engine while reconfiguring and manipulating custom hardware that interfaced to the prototype. The first prototype was the Konica 7010 engine. The prototype, its engine specification and three Konica engineers arrived in Boise at the beginning of March 1991. On March 7, 1991 at 8:40 p.m., we printed our first page. Here's a copy of that first page, signed by those who were present when it printed.
This was a significant milestone for Bedrock. We had received a prototype engine and had it printing within one week. This made quite an impression on the Konica engineers. They later told us they had heard American engineers weren't as good as Japanese engineers and they were hesitant about coming to Boise. However, our ability to get the prototype engine to print within a week made them call back to Japan and tell their management that American engineers were as good as anyone within Konica. This was a point of pride for Bedrock.
Once we had the Konica prototype engine printing, we threw a steady stream of files at it so as to evaluate its capabilities. It looked quite good.
Dick Hackborn, Executive HP Vice President, came by to see what progress was being made. We ran the Konica prototype engine through a number of print jobs to show its capability. Dick was impressed. He asked when it would be available for introduction. We told him a date late in 1992. He was not happy. He wanted a product introduction sometime in 1991. He asked what it would take to introduce on his date. When he received an answer of $250,000.00 bonus for each engineer working on the project, he was very clearly not happy. He responded with, "That's not how we do things at Hewlett-Packard."
We explained to him that this was a breakthrough product that would require engineers to work around the clock, 24/7 to the detriment of health and family to complete it within that timeframe. We explained that came at a cost. Dick was not happy with us. But, we never heard him mention the 1991 introduction date again. We waited for the Canon prototype to show up. It never did. Canon stuck to their position of our taking the engine as is, with no modification. This became a major stumbling block.
The team ended up making a recommendation to move forward with Konica. We got management approval to move forward. Naturally, Bedrock still needed lots of work before it was customer ready, but now we had a direction in which to proceed.
We had decided on a vendor and had our engine picked out. Here were the specifications for Bedrock.
The engine fed letter and A4 sized paper in a landscape orientation. This was a departure from other Hewlett-Packard LaserJet and Inkjet printers. The rational for the paper feed direction decision was that by feeding the paper this way, it made the engine capable of feeding legal, 11x17, and A3 sized paper in a portrait orientation. This allowed the printer to support an expanded paper size range within a standard printer footprint.
The following diagram shows the Bedrock printing mechanism and paper path:
Bedrock printed with four colors of toner, cyan, magenta, yellow, and black. When a page was to be printed, the photoconductor drum started rotating. A cleaning station (not shown on diagram) removed any toner that might still have been on the drum and deposited it in the waste toner collection unit. The cleaned drum continued rotating under a charging station where a uniform electrical charge was placed on the drum.
Once a uniform charge was on the drum, the laser within the image writing station exposed the drum, effectively writing the image for a single color on it. The drum continued rotating, and passed under the developers. Toner particles supplied to the developers from the toner hoppers were attracted to the phtoconductor drum in the locations where the laser wrote the image. Only one developer at a time was in position to transfer its toner to the drum. Because of this, four rotations of the photoconductor drum were required to form a full color image. With each rotation, a different developer was moved into position so that its toner could be transferred to the drum.
As the fourth drum rotation occurred, the transfer belt assembly was moved into position so that the image on the drum could be transferred to it. Meanwhile, paper was being picked out of the paper tray, and was moved into position to allow the image on the transfer belt assembly to be transferred to it. This was timed such that as the fourth drum rotation completed, the leading edge of the paper would arrive at the transfer station coincidentally with the leading edge of the developed image. Toner was then transferred directly form the photoconductor to the paper. The paper continued moving and entered the fuser assembly where the toner particles were fused to the paper.
Meanwhile, the photoconductor drum passed under the cleaning station where any remaining toner on the drum was removed, in preparation of printing the next page.
As with all laser engines, once the printing process begins, it must keep moving until the page is complete regardless of whether the entire image is successfully written. The formatter must be able to supply data to the engine and keep up with it. When the formatter cannot keep up with the engine, the condition is referred to as a "page punt." This differs from inkjet printers, which can stop moving the print head to allow the formatter to catch up with data being sent to the engine.
On Bedrock, the phtoconductor drum circumference was equivalent with the width of Letter or A4 pages. This meant that when printing on letter or A4 sized pages, Bedrock could successfully transfer the image to paper with four rotations of the photoconductor drum. The process could then go like the following:
But what about larger paper sizes, namely Legal, 11x17, and A3? These paper sizes fed into the printer in a portrait orientation and have lengths are longer than the circumference of the phtoconductor drum. This meant a full color legal, 11x17 or A3 page couldn't be printed using the four rotation process. The color image formed with the four rotations would only cover half of the paper. To print the second half of the page in full color, the photoconductor drum would have to go through another four rotations to develop the full color image for the bottom half of the page. That would require the paper to stop moving while the image for the bottom half of the page was formed.
But as was just said, once the paper starts moving, it must keep moving. This means printing full page color images on legal, 11x17, and A3 paper couldn't be done on the Bedrock engine.
A full color image for the top half of the page could be transferred to the page, but the bottom half of the page could be imaged in one of the primary colors, cyan, magenta, yellow, or black. The reason why the bottom half of the page could be imaged in one of the primary colors is because as the photoconductor drum was transferring its image to the paper, the laser could continue to image a successive plane of data. Therefore, as the full color image on the drum finished transferring, the single plane image moves into position to continue the transfer to the transfer belt. This single plane image could then be transferred to paper.
The process would look like this.
Konica thought that the top half of the page full color printing and bottom half single color for legal, 11x17 and A3 papers was an acceptable solution. Hewlett-Packard deemed this unacceptable. Customers did not understand the concept of a single primary color. They thought it meant any color. For example, if asked what color they would like on the bottom half, and they would say "red." Red is produced through the combining of two primary colors, magenta and yellow. Customers did not understand this. They also rejected the idea of images and text being split between full color and a single primary color, if the image or text was unlucky enough to land on the boundary of color capabilities.
The solution was to support only monochrome gray scale printing for legal, 11x17 and A3 paper sizes. Customers weren't happy with this decision, but it gave them grayscale representations of full color pages, along with predictable and consistent output. This was probably the number one complaint received about legal, 11x17, and A3 printing.
The Color LaserJet team (both HP and Konica engineers). We would go to a local paintball arena and take out our frustrations by shooting paint balls at each other. No shots were ever fired in anger and only minor injuries. One key to our success was the closeness of the teams. There was a mutual respect. We never gave up even when things were tough. |
Once an engine and vendor had been selected, reality set in. We had gone from determining feasibility to having to deliver a real product. Efforts were undertaken in the following areas:
Primary requirements of the project were to produce a product with:
The Konica engine was very good, but it still needed some modifications to make it great. Any changes to the mechanism or print process modifications directly influenced our primary requirements. In the initial Bedrock engine design, the fuser did not meet expectations. It did not work well with transparencies. It was capable of fusing standard and glossy finishes on pages. The glossy finish was for images. Desktop printing users hated the glossy finish. Speed, power consumption and usability issues also existed. These parameters had to be tweaked to fit desktop printing better.
The toner composition was analyzed to determine if the device met world-wide environmental regulations. It was found that a re-formulation was needed.
Re-formulation of the toner became a significant effort. It required changes to the print process, the fuser, and just about every mechanical subsystem within the engine. However, the mechanical engineering team attacked the problems with a vengeance. Working closely in conjunction with Konica engineers, each problem was addressed and resolved. Sometimes the process felt like peeling an onion. One layer of problems would be solved, only to find another layer with more issues.
Transparency printing proved to be an issue in terms of fusing the toner and color quality. The color looked fine upon visual inspection, but when the transparency was displayed on an overhead project, some colors, especially the yellows, tended to shift.
Building a hardware formatter for the Color LaserJet was a daunting task. Hewlett-Packard had been building cost effective monochrome formatters for years. But the addition of color stretched existing formatter design past the breaking point.
The amount of data for a single print job far exceeded what had been seen before. This data consisted of:
It wasn't unusual to see Power Point presentations with full page color backgrounds. Whereas a large monochrome print job consisted of one or two megabytes of data being sent to the printer, we were now seeing print jobs with page sizes 24 megabytes or larger being sent!
Initially, color print jobs used 24 bits per pixel, whereas monochrome print jobs used one bit per pixel. This resulted in higher internal data transfer rates and more data being moved. These requirements exceeded the processing power of processors used in monochrome formatter boards.
Data transmission rates to the print engine were faster than had been seen before. Even with a single bit per primary plane, four times the amount of data needed to be sent to the engine for each page printed. When these three data requirements were combined, the required data processing power needed for the hardware formatter far exceeded the capabilities of the processors Hewlett-Packard had been using up to that time. As a result, one of our first activities was to perform an analysis to determine what processor family had the needed processing power.
It was decided to use the AMD29000 processor family. This gave the needed performance, but it came at a cost. Due to increased processor cost, the cost of hardware assist ASICs for the formatter could not be justified.
The formatter was built with an amount of memory that allowed a full page to be buffered for transmission to the engine. This meant that the Color LaserJet would never "punt" when printing a page. If it was determined the formatter software might be unable to keep up with the laser, the software reverted to a "Page Punt" mode where buffering of the full page was done before any data was written to the engine. The hardware formatter made sure it could always drive the engine.
Color LaserJet software development required far more effort than we had expected. The effort was larger and more complicated than what would be required for a monochrome single bit per pixel formatter and a pen plotter formatter combined.
Large efforts were required in a number of areas including:
There needed to be a way to specify color print jobs. The process of printing a job was widely understood. First, the content of what was to be printed had to be created. Then the content had to be converted into a description in a format the printer understood. Once converted, the content description had to be sent to the printer. The printer had to then convert the content description into an image to be transferred to paper.
Finally, the image had to be transferred to paper.
Creating content is done using applications. This capability already existed. What didn't exist was the ability to convert this content into a format the printer understood. Hewlett-Packard's Printer Command Language (PCL) was capable of converting monochrome content into a format that could be understood by monochrome printers, but it lacked the ability to do so for color content and color printers. There needed to be ways to specify the color used for texts, raster images, background colors and patterns. How was this conversion to be done?
Once the printer received the content description, how was it going to convert it into a printable format? If red text was being asked for, how would one verify that what was delivered met the asked for expectations? What if the printer couldn't produce the color? What if the specified color was outside of the gamut of colors the printer was able to produce?
Color monitors are capable of producing 24-bit color at any pixel location. Each primary color has 256 levels of modulation at any pixel location. The Bedrock engine was not capable of doing this. A single bit per pixel in each of the four primary colors, cyan, magenta, yellow, and black were available. Dot size could not be modulated. How would Bedrock overcome this limitation to produce the best color possible?
What about color deviation? In an ideal world, all primary toners are pure color. In reality, they contain impurities which causes color deviations. How would Bedrock compensate for this?
These are very complex issues. Separate activities were started to address each of them.
Printer Command Language (PCL) was Hewlett-Packard's proprietary printing language. It had been designed for monochrome printing. It supported the LaserJet product line, along with a few monochrome inkjet products. Hewlett-Packard also supported a second printing language, Hewlett-Packard/Graphics Language (HP/GL). This language was designed to support pen plotters.
Neither of these languages really supported color. HP/GL was designed for plotters containing a carousel of color pens whose line widths could vary. HP/GL controlled the selection of pens from the carousel, and then the drawing of vectors to create drawings.
Work was underway within the inkjet divisions to create HP/GL2. In HP/GL2, printing and plotting was being done using inkjet print heads rather than mechanical pens. This would allow for the creation of inkjet plotters.
Additionally, work was underway to determine the feasibility of merging PCL and HP/GL2. The idea was to combine the two to allow advanced page printing capabilities and vector graphics to be used by both printers and plotters. This new effort was being called PCL5.
While one could think of PCL5 as a merging of PCL and HP/GL2, it would really have been better to think of them as a bolting together of two entities. PCL and HP/GL2 were based on incompatible coordinate systems. Rather than combine them into a single environment, it was decided to maintain both environments, and context switch between them. This was done for backwards compatibility with existing products. At the time, large numbers of plotting print jobs existed that were based on individual product drivers. Changing the print environment would break these print jobs and cause significant customer dissatisfaction.
As a result, the separate print environments were maintained, and context switching was added. This put a burden on common resources and functionality. Duplicate versions of the same resource needed to exist in both PCL and HP/GL2. In some cases functionality only existed in one context.
There was obviously room for improvement with PCL5.
Even so, Bedrock decided to jump on the PCL5 bandwagon. PCL5 would allow Bedrock to offer the latest in page printing capabilities, while providing vector graphics capabilities. It would provide a good starting point. Then Bedrock would improve PCL5 by adding great color capabilities, and improving on how PCL and HP/GL2 merged their contexts.
It was evident that Hewlett-Packard's existing color printing capabilities and strategy were insufficient to be a viable contender in the color printing market. But what was needed to become a contender? A study was undertaken to determine the state of color printing. Hewlett-Packard needed to determine what its competitors were doing, what the market wanted, and PCL5's shortcomings. As a result of the study, the following was learned;
As a result of the study, a set of extensions to PCL5 were identified and proposed. Some of these extensions were in both PCL and HP/GL2, while others fit better into either PCL or HP/GL2. The extensions to PCL5 were so extensive that it was determined Bedrock was creating a new level of PCL. The new level was named PCL5C.
PCL5C had a huge impact on Hewlett-Packard's printing strategy. Support from all printer divisions and approval by Hewlett-Packard's PCL Committee was needed.
PCL5C gave Hewlett-Packard an industry standard for color print job description, and commonality across all Hewlett-Packard products.
It also achieved the format of job descriptions that Bedrock was going to use to produce color output.
The ability to specify a color print job is the first step in color reproduction. The next step is to take the desired specification and make it reality.
PCL5C allowed colors to be specified in a number of color spaces, both device independent and device dependent. Printers print using four primary colors, cyan, magenta, yellow, and black (CMYK). How does one convert color specifications in any of a number of color spaces into CMYK?
Color conversion is achieved using a color pipeline to perform all the calculations, adjustments, corrections, and mappings, needed to convert a color specification within a color space to the correct combination of printer primary colors that will produce the specified color on a specified device. Color pipelines can be implemented in either hardware or software. For Bedrock, the color pipeline was implemented in software.
Luckily, work was underway within HP Labs to develop such a color pipeline. A mutually beneficial partnership was established. The work set a precedent for HP Labs as it marked the first time their software work had been directly incorporated into a product. Bedrock benefitted by being able to leverage code that exceeded its wildest expectations and supported a plethora of color spaces.
HP Labs participated in discussions the Bedrock team was having with commercial printers. They were able to condense the user supplied information and determine what color spaces needed to be supported within PCL5C. They then optimized their color pipeline's performance and resource usage for those color spaces.
The color pipeline converted the color specification into a CMYK representation. In an ideal world, this is all that would have had to be done. However, Bedrock was not in an ideal world. Its toner was not perfect. (Nor is any toner or ink) It contained impurities. These impurities resulted in color variations.
This created a new challenge for the Bedrock team. Color tables were added to compensate for toner color impurities and anomalies. Brian Hoffmann joined the Bedrock team and led this effort.
Color tables are capable of doing more than correcting for color impurities and anomalies. Color tables can also compensate for color half toning deficiencies and cultural color expectations.
Let's illustrate this by asking the question, "What is red?" The technical definition of red is a combination of equal parts magenta and yellow. However, if you were to print red this way and ask an American and a Japanese person if this were red, they both would probably say no. The Japanese person would want the color to take on a more orange hue, to reflect, the color of red in the Japanese flag. The American would expect a more fully saturated color, similar to the red of a fire truck. These are cultural expectations. Color tables can help overcome these expectations.
Color tables allow colors to be adjusted such that when the toner impurities, device capabilities, half toning method and cultural aspects are all taken into account, the color printed meets the specified color definition, and user expectations.
Bedrock color table work was crucial to color fidelity.
Because Bedrock was unable to modulate its dot size, it was not able to produce 24-bit color at each pixel location. As a result, Bedrock was required to use half toning techniques. Half toning utilizes an [n x m] pixel cell populated with one of eight colors at each location within the cell. Those colors are white, black, cyan, yellow, magenta, red (magenta and yellow), green (cyan and yellow) or blue (cyan and magenta). Filling the half tone cell with different combinations of these colors produces a large number of colors because the eye integrates all the colors within the halftone cell into a single color. The more pixels within the half tone cell, the more colors that can be produced. The problem is that the more pixels within the half tone cell, the lower the effective resolution and the more the eye sees the image as a bunch of separate color blocks. This impacts image quality.
Bedrock print resolution was 300 dots per inch. Its half tone cell size was [8 x 8]. These two factors, when combined, impacted Bedrock's image quality.
Bedrock's image quality was also impacted by laser technology. Laser printers produce pixels whose size and shape are very precise. Precise pixel size is desirable when printing text because it produces clean and crisp edges. When producing images, precise pixel size and shape is not as desirable as is having pixels that blend together. When pixels blend into one another, the transition between them seems smoother. For laser printers, the precise pixel size and shape results in more abrupt transitions and no blending between pixels.
When the human eye looks at an image, it perceives individual pixels, but integrates them to form the overall image. The smaller the half tone cell and the smoother the transition between pixels, the better the eye will perceive the color and image quality. With the abrupt transitions between pixels, Bedrock's image quality was not perceived to be as good as ink jet printer image quality.
To compensate, different half tone techniques were utilized for text, vectors, and images. Text half tones needed to assure that color anomalies did not occur on horizontal, vertical, or diagonal edges. Vector half tones needed to assure thin vectors could produce the desired colors. Image half tones needed to assure high image quality with smooth color transition.
As previously mentioned, color tables and half tones impact one another. As a result, half tone changes impacted color tables, and the subsequent color table changes impacted half tone tables. Multiple iterations were required to optimize the two.
The initial Color LaserJet code base was leveraged from the LaserJet 4Si, a network printer from Hewlett-Packard's Network Printer Division. The LaserJet 4Si was a high speed printer which supported PCL. It did not support HP/GL2. HP/GL2 code was leveraged from the San Diego Printer Division and added into the Bedrock code base.
The LaserJet 4Si fed paper in a portrait orientation. HP/GL2 code was written for devices that fed paper in a portrait orientation. Bedrock fed paper in a landscape orientation. This difference in feed orientation was significant. The 90 degree rotation in feed orientation impacted formatter calculations by swapping the numerator and denominator terms. Previously valid calculations whose result was zero were now resulting in divide by zero errors. HP/GL2 was impacted the most by this, as it was calculation heavy. A huge effort was required to fix these divide by zero errors situations.
When filling an area with color, the formatter used a technique called polygon decomposition. Polygon decomposition breaks the area to be filled into a number of trapezoids, and each trapezoid is rendered on the page. In monochrome printers, each pixel is black. No matter how many times one places a pixel on a location, the result will always be black. For color printers, not every pixel is black. When a pixel is placed at a location already occupied by a pixel of another color, the pixels interact with one another. The exact way they interact is determined by the raster operation currently being applied. When filling in large areas, it is important to only place one pixel at each location contained by the area, otherwise unexpected results can occur due to the raster operation (ROP). It was discovered that the polygon decomposition technique was actually yielding unexpected anomalies.
As an example, if a yellow circle two inches in diameter were to be filled, we were seeing the circle dotted with pixels of various colors at random locations within the circle. The reason was determined to be due to errors in the polygon decomposition algorithm. It was breaking the area to be filled into trapezoids, and laying each trapezoid into the image to be printed. The problem was that the trapezoids sometimes overlapped one another by one or more pixels. This resulted in the pixel being imaged multiple times. The raster operation was being applied multiple times, which resulted in different colors at the pixel.
Depending on home many times the pixel was imaged, different colors were resulting.
An effort was undertaken to improve polygon decomposition. The normal polygon decomposition was performed as it had been performed previously to create a list of trapezoids. Then an additional step was added to parse the list of trapezoids and prune the trapezoids to remove edges or pixels that overlapped. The amount of effort to do this was significant. The number of trapezoids generated to draw a shape often exceeded 10,000. Pruning needed to be done on each edge of each polygon. It had to be done quickly, without impacting formatter performance.
PCL5C supported patterns. Patterns are used for area fill, or shading. For monochrome printers, single bit per pixel mask was created. This was insufficient for color patterns. A whole new approach to color patterns was needed, along with code to support and manage the patterns. Bedrock wrote a new pattern management module to support this functionality. The pattern manager then was ported back to the monochrome printer products to allow them to function in a similar manner.
Along with being able to specify and reproduce color, and LaserJet compatibility issues, a number of color printing issues were discovered that needed to be addressed. One of these was printing white and color transparency. White can be applied to the page in one of three manners:
It was possible to have white being applied in one or more of these manners at any pixel location on a page. The printer needed to know how white was to be applied. The raster operation being utilized designated how items were to be applied, but information was also needed to designate how white had been previously applied at a pixel location.
As a result, a transparency plane was added within the formatter to designate if each pixel was transparent. This designation, along with the raster operation to be used when placing an image on the page determined what the overall result should be when placing white on an image.
Color patterns and raster images are specified in 24-bit color. Therefore, at each pixel location, the color specified, had to be half toned to get its appropriate representation in primary toner colors. This involved a complicated process of masking and bit-blitting to determine what toner should be deposited on the page. When patterns were applied to thin diagonal areas, half toning anomalies could occur resulting in color shifts. Thin 45 degree vectors were especially susceptible to this because the angle of the vector aligned itself with a repeating pattern in the half tone. The work around for this situation was to modify vector graphic half tones to be more random in nature.
The Color LaserJet formatted data that was to be sent to the engine in strips. A strip was a chunk of data N pixels high and the width of the page. When vectors were being printed, the vector often spanned across strip boundaries. Because of this, half toning techniques had to assure half toning flowed smoothly between strips. Otherwise, strip boundary anomalies discernible to the human eye would result. This problem also held true for images. The anomalies would appear as lines through the image. Error diffusion half tones were introduced which better dispersed the half toning impact.
As mentioned previously, HP/GL initially supported pen plotters that contained carousels containing pens. These carousels were thought of as a "palette" of colors. Due to an extensive library of HP/GL print jobs, there was a requirement to support palettes. With the advent of PCL5C, palettes became more flexible through the creation of Palette Management. Palettes could be created in both PCL and HP/GL2. The active palette could be programmed to include any 24-bit color specification. Palettes could be shared between PCL and HP/GL2.
More than one palette could exist at any time, but only one palette could be active. Palettes could be defined in any color space, and could be configured to contain any color. Palettes were always created with a default set of colors. Palettes could be made active by selecting them.
Users could also opt to forego palette usage and specify a 24-bit color to be used as the current color.
First Color LaserJet off the production line in Boise, in Sept. 1994. From left to right: Neil Martini-Division Manager, Warren Keller-Project Manager, Rod DeGuillio-Manufacturing Manager, Jim Hall-R&D Lab Manager. It was a happy day. |
It took over 3 years to complete the Color LaserJet development. Many aspects of the work had to be revisited and reworked in order to ensure compatibility with other HP products, take advantage of new discoveries, incorporate optimizations, and improve product quality along the way.
When all was said and done, the Color LaserJet project had produced one of Hewlett-Packard's most complicated printer mechanisms. The mechanism was being driven by one of Hewlett-Packard's highest performance formatters. And, the software driving it all had been leveraged from six different sources to create the largest LaserJet code base to date.
The first Hewlett-Packard Color LaserJet was now a reality.
On September 19, 1994, four years, two months, and two days after the initial memo went out looking for project volunteers, the Color LaserJet was introduced.
We had done it. A team that had started with a small core group had grown into a major effort. We had created a color printer worthy of the LaserJet name. Together, we had launched Hewlett-Packard into desktop color printing, and in doing so had created a new market.
|