Working with Large Compositions

ln Brief

Easel includes two adjustments to help maintain performance when working with large compositions: display resolution and multi-pass printing. These settings are configured on the window that appears when you click Adjust Settings for Large Compositions on the printer and page setup window.

You don't need to know about the display resolution adjustment. If you are not technically inclined or curious, leave the mode set to Adjust Resolution Automatically... and forget about it.

If you encounter problems when attempting to print a large high resolution composition, it's possible that Easel is generating a print job too big for your printer to handle. You may be able to get around the problem by setting the number of Print Passes to 2 (or in really extreme cases, 3+). When set > 1, Easel prints a corresponding fraction of the composition on each pass, and prompts you to reload the page until done. Before using this option, check your printer docs for advice about feeding paper that's already been printed on, and always make sure the ink is dry before reloading the page.

In Depth

One of my earliest design goals for Easel was that it support the creation, display, editing and printing of very large, very high resolution digital images -- without problems. I wanted to create a tool that could handle anything that the computer it was running on, and the printer that was hooked up to it, could handle; if something was going to choke on the amount of data being processed, I wanted it to be the hardware.

During Easel's long gestation, rapidly advancing technology kept moving this goal post. When I began, I owned an almost cutting edge 2.1 megapixel camera and 600 dots-per-inch (dpi) color printer. The gold standard for digital color was "high color," using 16 bits for 65,536 possible colors. Now I own a 7.1 megapixel camera, a printer with 2880 dpi resolution, and the color standard is 32 bit "true color" with 4.3 billion possibilities. On the input side, a digital snapshot has increased in size by almost an order of magnitude. On the output side, the amount of data needed to generate the best possible photographic print has increased by a factor of 50!

The point of all this? As I worked on Easel, I couldn't help but notice that everytime I bought a new camera and built a large composition using its higher resolution images, things would slow down, sometimes to the point where basic operations (loading a file, refreshing the screen, etc) were unacceptably slow. Moreover, high resolution large format print jobs (e.g. 1440 dpi on 13x19" paper) were sometimes incomplete or garbled. When I finally did the math and extrapolated the trend, I concluded that if Easel was to deal equally well with more and less demanding compositions, it needed to recognize and react to the job at hand, making trade-offs as the amount of image data grew very large. You can not change the laws of physics (Captain), but you can accomodate them.

The result is that when you open the printer and page setup window, you see a button labeled Adjust Settings for Large Compositions. If you click it, you'll get a window with two settings: display resolution and two pass printing.

Display Resolution

The display resolution adjustment has two components: the actual setting, which is a percentage adjustable between 10 and 100%; and the adjustment mode, which can be manual, manual with prompting, and automatic.

The display resolution setting controls the size of the image that Easel holds in memory for display on screen, relative to the size of the image stored on disk; at 100%, a 3072x2304 7.1 megapixel 24 bit color image would be held in memory as-is, occupying 21 megabytes. At 50%, it would be stored at 1536x1152 occupying 5MB, and at 10% it would be 307x230 using 0.21 MB.

Reducing display resolution is an excellent way to control memory use for a simple reason: the actual resolution of the display ( ~100 dpi) is so coarse that, in typical Easel use, much if not most of the detail in a megapixel image will never be seen. Moreover, because of Easel's architecture (see A little bit about how Easel works), reduced display resolution has NO effect on the quality of Easel output, whether printed or saved imagery: it will always be as good as it can possibly be.

So why not just always operate with reduced resolution? It is possible to reduce resolution and expand an image enough to see the effect, which is blocky and unattractive. Furthermore, when the composition being worked on does not tax available memory, there is no benefit from doing so. So it makes sense to do it only to the extent that it is needed.

Which brings us to the mode, set to Automatic by default and best left that way. In automatic mode, Easel monitors prospective changes in memory use whenever images are added to or removed from a composition, and adjusts the display resolution as needed to keep Easel's memory requirement around 20% or less of available paged memory.

Changing the display resolution is not painless; when it happens, Easel must reconstruct all images in memory, which can cause a noticeable delay for a large composition. For this reason, it tolerates significant variation around the 20% rule before making the change. When it does make the change, Easel will indicate what it is doing with a status bar message.

I can't think of a good reason why you would want to change to manual mode, but that doesn't mean somebody else won't. That's why it's an option.

Multi-Pass Printing

When working with large high resolution images, it is possible for Easel to generate a print job that is bigger than your printer (or more precisely, your printer driver) can handle. I didn't understand what the problem was the first time this happened with my printer, because an Epson 2200 can, in theory at least, print a 13 x 44 inch page at 2880 dpi, and I was only trying to print a 13x19 page at 1440 dpi. The composition contained over 70 high resolution images, but only 40 or so printed; the rest were left blank.

Testing revealed that there was indeed a limit in the driver software that I couldn't get around directly, so I came up with an indirect method: multi-pass printing. When the Print Passes counter is set > 1, Easel will print a fraction of the images on each pass, prompting you to reload the page until printing is complete. I don't know about your printer, but the 2200 does such a precise job of loading and positioning the paper that a multi-pass print job looks no different than one done in a single pass.

Before using this option, check your printer docs for advice about feeding paper that's already been printed on, and always make sure that the ink is dry before reloading the page.