Printer Memory:

When a computer is showing something on a screen or printing it on a page a working copy of that image often exists somewhere in memory as well.

Printing can use a lot of memory. Almost all current printers use a raster-scan technique. The page is made up of a matrix of microscopic dots. There need not be a one-to-one correspondence between a dot on the page and a bit in memory - but there often is a relationship. People have become more demanding about the look of things they print and so the demand for memory in printers has increased.

Printers generally need some memory of their own, rather than merely using the processor and memory resources of a nearby computer.

Printers built for network sharing often have RAM slots allowing their local memory to be expanded so that they can handle pictures more quickly.

Moore's Law and Big Pictures

Computer printers could have produced big colour pictures anytime from the 1970s onwards, using colour ribbons in dot matrix printers for instance.   Early printers weren't used that way very much in practice. Computers and printers didn't have sufficient memory. For instance a 6x4 postcard sized picture at 100 dots per inch needs 240,000 bits in memory - 30 kilobytes, or more than most mini-computers had in the '70s. So even a crudely printed postcard sized image would occupy ten thousand dollars worth of equipment for some time. If architects, engineers and geologists wanted big colour diagrams they used a pen plotter.

People relate strongly to pictures, so a great deal of the effort and ingenuity in computing goes into making them more available. In the 1970s big, blocky space invader games became available in arcades. Until the 1990s it was rare for a computer to show any sort of picture beyond a game, only research labs could afford the equipment. But then in the early 1990s scanners and digital cameras came onto the market to match the demand from Apple Mac and Windows computer users. A year or so later the first inkjet colour printers with something like photographic resolution appeared. By 1999 colour laser printers were available for less than £1,000.

Moore's Law

How much memory a computer or printer can affordably have increases all the time. The rate of increase is generally described as Moore's Law, after Gordon Moore, co-founder of Intel who suggested in a 1965 paper   Cramming more components onto integrated circuits   that the number of transistors on a chip could be greatly increased by shrinking their dimensions. The suggestion was that the transistor count might double every couple of years over ten years of so, making new products possible. In fact the law has held for fourty years. In a memory chip most of the transistors are individual memory bits, so that doubling every couple of years has gradually made huge memories that can hold big colour pictures and music affordable. Where a couple of kilobytes of memory were affordable in 1970 a couple of megabytes were in 1990 and a couple of gigabytes are affordable now. In recent times the cost of making circuits has also risen, but their speed and abilities have risen still more. The net effect is that computer power doubles in about 18 months.

Memory is no longer an issue printing a postcard sized picture on a recent printer. Memory becomes a problem dealing with larger pictures at the high resolutions required to mimic colours accurately. Digital photography has largely replaced the traditional chemical kind and there are inkjet printers that print a good picture. These inkjet printers use the PC and it's memory to rasterise the image. If there are just one or two people sharing a printer that is a sensible approach.

Printers shared on a network can be more of a problem. The PC that the printer is attached to might slow down significantly when it is handling a complicated print job. Laser printers will usually be better at dealing with this since they can offload more of the processing from the PC, but that does mean that they need their own memory.

Because of the Moore's Law progress in memory and processor design computers become obsolescent within about 5 years. When a computer is over five years old it can still do what it was bought for, but a replacement will probably have ten times the memory and processing power, which means it can do things more easily in new and clever ways. Old computers are not only slow but more difficult to use.

Printer Hardware

The weak point is usually memory. Ten years ago printers typically came with a couple of megabytes of memory which is sufficient for mixed text and a few graphics; but isn't always enough to deal with recent scanned PDFs, web-pages and big colour pictures. Problems usually show up when the printer pauses for a long time with the data light flashing but not much else happening. Although printers have memory-error codes they often don't show them straight away, instead they try to process the document and only raise an error after some time.

Printers can process one page quickly but then make a prolonged pause on another. That is because of the different ways things can be coded in computer and printer memory. There are often ways round the problem, checking memory settings, increasing printer memory or printing several copies of a problem page as one job and the rest of a report as another - but first it might help to give some context about the problem.

Visual Codes

Both dot matrix and laser printers were first made in 1970 (more accurately the first laser printers were made in the lab and the dot matrix became commercial). Memory sizes were very limited by today's standards, but there need not be a one to one correspondence between dots and memory. For instance:

  • Text   is sent to the printer as single byte ASCII codes. If a dot matrix printer carriage is 132 characters wide it just needs 132 of these codes to print a line. It looks up the character pattern for the code in it's own memory and prints that - so if its a 7x9 matrix one 8-bit code becomes 63 dots. Character generator memory need not be very large - a simple 95 character set of 9x7 characters is a mere 5985 bits - less than a kilobyte. Even laser printers don't need much memory to deal with pure text, a densley printed page might have 66 lines of 80 characters but storing it just needs 5280 bytes of framebuffer.
  • Barcodes   and other special images aren't necessarily memory hungry. Printers can often be given an escape code which will pick a barcode font, barcode data follows as ordinary character bytes but the printer turns those into barcode graphics. Barcodes are quite like text but each number can change the subsequent patterns. Although barcodes a a bit different from text because simple print input can translate to a fairly complicated graphic they are a special case and won't be given further attention here.
  • Vectors   Vector graphics such as HP/GL first appeared on pen-plotters where they worked naturally with the hardware of the machine. The plotter got a vector pair and moved it's X-Y motors from it's existing position to the new one. In principle this doesn't need memory for anything except the vector pair last plotted and that currently underway. A fairly complicated diagram such as an architectural outline of a house is often composed of just a few thousand lines, each with a couple of coordinates, colour, thickness and fill - perhaps 20 bytes per line. It is probabnly fair to suggest that there are very few diagrams that can usefully contain more than 10,000 lines, so that 200,000 bytes is about the biggest likely file. Vectors can be an efficient way to communicate information. To work with wide-body inkjets and laser printers vectors are fed through some algorithms which create a bitmap.
  • Bitmaps   pictures or raster images are where massive memory consumption becomes an issue. These kind of pictures are made from a pattern of pixels in memory which translate to one or more dots on the page. For printed material to look good we need at least 300 dots per inch resolution which means that even a bi-level (black and white but no grey) 6 x 4 postcard needs 270,000 bytes of data and not the mere 30 kilobytes suggested above for crude dot-matrix print. A whole 11.5 x 8 inch page at 300 dpi needs about a megabyte of memory as a bi-level image. In full colour using the CMYK print process something like 32 megabytes is possible; a million pixels each with four colours and each of them having an 8 bit scale. Bitmaps can be very memory hungry.

Text and vectors use memory efficiently for what is achieved on the page. When computer graphics and printing came into use in the 1970s and '80s they were typically chosen as the only practical way to do a job, given the limited availablity of memory at the time. The problems are that:

  • Fine-grained bitmaps are the best way to accurately reflect what can be drawn or printed on paper, where marks are not limited to simple letters, lines, curves and fills.
  • Cameras and scanners naturally produce bitmaps, not vectors. People really like using camera images and other fine-grained graphics. The problem is that bitmaps are very memory hungry.

It is not particularly difficult to turn a bitmap into vectors. Pick out edges on the basis of contrast and draw lines. If a human does it they tend to do it meaningfully, picking out a group of lines that represent windows, doors, the house and then a tree and ignoring irrelevances. The same job done by software will tend to muddle the objects up, so the branches of the tree are treated as part of the house. Software also fails to assign significance to things and includes leaves and blades of grass that have low significance. Software produced vector files are often so full of irrelevance and disjointed fragments that they are uneditable and twice the size of the original bitmap.

Text to bitmap is easy, bitmap to text is hard, OCR still struggles even though the forms of letters in any given font are very limited. To make text computer readable techiques like MICR are used. Vector to bitmap is easy but going the other way requires intelligent interpretation and knowledge of the world.

Bitmaps

Wherever real design flexibility or a picture is wanted people tend to turn to bitmaps - they are a sort of lowest common denominator of the graphics world. However they do need a lot of memory. An ordinary TV picture contains about a third of a million points of light or 0.3 megapixels. HDTV contains 2 megapixels. That might be enough to keep the human eye busy with a moving picture. An A4 page printed at 300dpi is about 8 megapixels (see below), but add colour or increase the print resolution and that grows very rapidly.

Bitmaps tend to be big if Moores' law allows that affordably. Digital cameras from the 1990s took pictures that would fit a VGA screen - 640x480 = 307,200 pixels. That looked good on a VGA screen and surprisingly good in print. On the 1280x1024 SXGA (1.3 megapixels) screens that quickly replaced VGA it only filled part of the screen. The picture could be made bigger by pixel replication and halving the resolution, or by interpolating values. Neither works well, so people wanted megapixel cameras to fill the screen. Moore's law doubles the number of pixels possible at a price point every two years and before long 12 megapixels becomes a consumer standard.

That old saying a picture is worth a thousand words is often true but the rider in the computer world is that a picture often takes as much memory as a million words. Pictures from a 12 megapixel camera start off as 4272 x 2848 with 3 colours to 8 bit accuracy giving 36,499,968bytes - about 35 megabytes. With jpeg< compression that shrinks to 3 to 5 megabytes, depending on how compressable the image is.

Moore's law has made a 5 megabyte picture file trivial in computer terms, a 2 gigabyte SD card holds about 400 such shots. Its worth noting, however, that Tolstoy's War & Peace is about 4 megabytes of text and a pictures is about the same size.

It is relatively easy to make high pixel count camera sensor chips. Sensor chips are like memory chips and follow Moore's Law. It may be more difficult to make sense of an image in terms of true spatial resolution, camera lenses and autofocus often isn't good enough, so the megapixel count has become on of those figures of merit that help sell digital cameras without being entirely evaluated.

There are no readily available screens to show 12 megapixels. Typical monitors are SXGA (1280 x 1024 = 1.3 megapixel) and FHD (1920 x 1080 = 2 megapixels). Although various 4K monitors like the IBM T220 (3840 x 2400 = 9 megapixels)have been made they tend to cost $10,000 plus. Screens need to be mass produced to be economic. Printing a 12 megapixel image to full advantage might be possible.

Bitmaps don't have to be big of course, little icons on web pages are often just a few hundred bytes in size. Photos on web sites are usually (not invariably) hugely reduced from the camera original to make them load efficiently over limited bandwidth internet connections and fit limited screen space. But there is a tendency for people to use more and larger bitmaps and that has an impact on printing.

Memory & Print

A piece of A4 paper measures 210 × 297 mm or approximately 11.75 x 8.25 inches. Printed at 300 dots per inch that gives 3525 x 2475 = 8,724,375 pixels. Most printers can't actually print right to the margins so its fair to regard the area available on a sheet of A4 as about 8 megapixels.

Image Creation

Three main ways of populating that space with an image were suggested above:

Text  to cover a page on a regular grid might be generated from a mere 5280 bytes of frame-buffer and less than a kilobyte of character generator space.

Vectors  are likely to be under 20 digits each, contain two coordinates, line shape, thickness and colour. A page is unlikely to contain as many as 10,000 of them so 200,000 bytes.

Bitmaps  might specify every dot on the page. Of course the whole page doesn't have to be specified as one huge image, it might hold several tiles each with an image.

In practice of course printers can mix any or all three of these methods. As well as producing areas of image in these ways image fragments can also be tiled. A small ares of image can be created and then placed anywhere in the space allocated to the image. This technique dates back a long way, HP used it for the 2680A EPOC laser printer in the late 1970s describing it as a cell printer and using a special linked-list bit-slice microprocessor for the job Tiling an image like this is inherently a combination of all three methods. The tile might be a bitmap, but its positioning is done by giving an origin vector. Text characters might originate as a bitmap or a vector and then be tiled. Text might be generated from a local ROM, could be supplied as a bitmap or could be supplied as vectors, then scaled, then tiled.

Resolution

Printing at 300 dots per inch is often good enough. Most commercial presses use that as a standard (OK the way they work is a bit different). Desktop computer screen resolution is about 85 dpi and people seem to find that satisfactory, but they tend to hold paper at less than arm length, and screens at more than one arm length. People tend to find print from thermal faxes and dot matrix printers at 100 to 250 dpi a bit unsatisfactory, but by 300 dpi there are few complaints, at least so far as text is concerned.

With printing at 300dpi printers potentially need quite a lot of memory. The 8 megapixel space on the page could be as little as 1 megabyte if all that is possible is a bi-level black and white picture, through to as much as 32 megabytes sepcifying CMYK each with a greyscale as a video graphics card would.

The problem with printers is that they can't do greyscale, they really are bi-level. A mono printer can make a mark or not and the only way to make something look grey is to cover it with a fine pattern of black dots that looks grey to the user. So printers tend to use very small dots - laser printers claim engine resolutions of 1200dpi and inkjets 4800 dpi. If all those dots are individually specified the amount of memory potentially needed becomes large. For instance an A4 mono page at 1200 dpi needs 16 times as much as it would at 300dpi. 11.75 x 8.25 x 1200 x 1200 = 139,590,000 pixels

Print Mechanism

The problem is that photographs aren't bi-level, they can contain a thousand levels of grey. Laser and inkjet printers can't provide much in the way of grey - they tend to be stuck with bi-level printing. To mimic grey printers use lots of little, high resolution dots. To really mimic a thousand levels of grey would need a pattern of 32 dots on a side (322=1024)  Even increasing the resolution to 1200 dpi isn't enough, a square 32 dots wide, sufficient to give the full greyscale is then only giving the equivalent of 37 dots per inch resolution. Print resolution has to be pushed to 4800 dpi

What a printer can do is influenced in part by the print technology -

Dot matrix and inkjet printers won't be able to stop the printhead moving so they need a page-width swath of data. A basic dot-matrix machine has 132 character across the page and creates the characters from a character generator ROM so it only needs 132 bytes of memory in text mode. In 9-pin graphics mode it would need 1320 dot positions across the page (100dpi) and 9 print pins so 11,880 bits - 1485 bytes. That sort of memory became trivial in 1970 when Intel launched the 1103 RAM chip.

Inkjet printers work very similarly to a dot matrix, printing swaths of dot-patterns acreoss the page. Where they differ is in having of the order 10 to 100 times more nozzles and a finer dot pattern. With 50 nozzles working at 300dpi an inkjet might need 120,000 bits of memory or 15,000 bytes. By the late 1980s when inkjets came into widespread use that sort of memory was also trivial - one or two chips.

Laser printers have generally been the hungry beasts so far as memory is concerned. Laser printers don't have a page width swath, there is only the complete page. Once the polygon mirror, developer, drum and page are moving in synchrony they can't stop until the page is complete (- or if they did there would be a black mark across the page). At one time this sort of machine was called a page-printer.

Holding the image for an entire page can use quite a lot of memory. With a page at 300 dpi resolution the 11.5x8 inch page needs 8,280,000 bits or just shy of a megabyte of memory. In the 1980s when laser printers first became common a megabyte was mainframe class. At 1200 dpi the page could need 16 megabytes and that would have cost tens of thousands of pounds in the 1980s and remained several hundred pounds worth of memory until the late 1990s.

Laser printers are also different in how they are likely to be used. Originally the laser printer was most likely to be asked to produce graphics are likely to be shared and the users often want output quickly. So where someone might set a photo to print on a personal inkjet printer knowing it will take a couple of minutes they are likely to want the page from the laser printer much more quickly.

Provides a way meet their real-time demands for dot-patterns

The memory used could be in the computer, the printer or both.