Accurate Image Manipulation for Desktop Publishing  
Calibration

General

This page explains a manual printer calibration that does result notable accuracy improvement or provides a screen to print match. However it takes quite a lot of printing material and work.

In my opinion the best (that is most accurate and definitely easiest) way to calibrate a printer is, by far, ICC profiling. However ICC profilers are expensive, especially those that allow fine-tuning. Some printers come with ready made profiles and it is very beneficial to fist experiment with them. Even if ready made profiles are not very accurate they may easily give better match than this manual calibration can.

Compensating the Dotgain of Printers

    This calibration process is good for any type of printing device such as lasers, ink-jets or dye-subs. It is valid for printing both B&W and RGB images.    

    Dotgain can be compensated within the CMYK separation process, this process is not discussed here.

What is Dotgain

    All printing suffers from the phenomena called dotgain. Dotgain is the uncontrolled spreading of the ink (solid or wet) of printed dots on the printing surface. Dotgain can be positive or negative, i.e. the dot can either gain more area or lose some of it. See a microscopic photograph of typical appearance of the dotgain if you wish.    
        
      Modern laser printers are able to change their dot size in order to print sharper fonts or images. This is a controlled function, not the dotgain phenomena.    
         
      Dye sublimation printers are said to be continuous tone devices but they also have dotgain. Even if they do not utilize dithering they do produce the image dot-wise and the dot area most often is not equally saturated. 

The amount of dotgain differs between printing surfaces (e.g. copy-paper, glossy-paper or transparency) even for the same printer. Dotgain affects mostly to the midtones, making them more dark. 

Unfortunately the dotgain is not all

    Most of the printer manufacturers try to make the intensity-scale (or tonal scale) of their printers to approximate the transfer characteristics of uncalibrated monitors. By doing so the spreadsheet etc. office graphics will print acceptable since office workstations most often have uncalibrated monitors.  Often this gamma tweak in the peripheral printers is 1.72 (the default gamma of Mac systems) but some printers may have a gamma tweak as high as 2.5.

    Traditionally peripheral printers provide no option for bypassing this gamma distortion, a policy that is rather difficult to understand.    Such printers are not the best possible choice for digital imaging because this thumbing of the transfer curve of the printer degrades the image quality (by large quantization errors) even in the case the image is compensated for this gamma tweaking.   
     

      Because of the thumbing there can be up some 30 intensity levels in the black end of the intensity scale that always will print pure black. 
        
      On the light end of the scale there can be several intensity levels that, when printed, are seen as pure light (possibly with some dirt). This is partly because the dots will land so far apart that the eye is not anymore fooled to see that as a smooth, even intensity level and partly because the gamma thumbing of the transfer curve that makes intensity codes to appear far apart each other at the highlight.

Dotgain and Gamma Compared

    The below graph shows the mathematically derived characteristics of printer dotgain and monitor gamma. 
        
        
    Mathematically the dotgain is not a curve but contains two line sections with the knee point at exactly 50% input intensity (level 128), that is direct result of the dithering. This is not the exact case in reality because there are other issues that affects to the dotgain like the paper quality so it is best to measure the transfer curve.  Note that a dotgain of 20% is very large even for an ink-jet printer.      

    The effect of the dotgain is always largest at 50% intensity and in case only a single the dotgain percentage value is given it will be the dotgain value for 50% intensity.   

    Monitor gamma is about 2.4 to 2.6, the value is dictated by the physical characteristics of the CRT tube. CRT monitors follows the theory quite accurately so a gamma value of 2.5 is a good average.     

    Because printer vendors are distorting the transfer characteristics of the printers (by the printer driver software) in order to make the printed images to approximate the image appearance on an uncalibrated monitor, the pure dotgain is rarely seen, it is buried below this much larger alteration. In general the transfer characteristics between printers varies greatly and the only way to print accurate (or even decent) images is to measure the transfer curve of the printer and then compensate the image for it.  

    The dotgain compensation method described below will correct both the gamma tweak and the physical dotgain at the same time. It will also automatically adjusts for the black-point and white-point of the ink/paper and also takes the paper quality issues into account, automatically. All these good thing comes from the fact that the eye itself is used as the measuring instrument, in comparison mode that it very accurate.

Measuring the Dot Gain or Printer Linearity

    To measure the dotgain or printer linearity, download either one of the packages below:    
        
    • two sheet dgm_11.zip ~289kb contains dgm_1of2.bmp and dgm_2of2.bmp. They give 11 control points for the calibration curve.
        
    • three sheet prlin.zip ~488kb contains prlin_1.bmp, prlin_2.bmp and prlin_3.bmp. They give 19 control points for the calibration curve.

     

    The control points that the two sheet methods provides area a subset of the control points of the two sheet image so there is no need to download the single sheet if you choose the two sheet chart.
 


The two sheet version gives 11 control points for the calibration curve. 

 

The three sheet version is very accurate giving 19 control points and has enhanced coarse dithers.

These charts are all gray, they are suitable for creating the dotgain compensation (or printer linearization curves or gray linearity correction curves) for both color and b&w printers with printing resolution ranging from 300 dpi to any higher dpi value.    
     
Each of the sections in the image(s) have:    

    • Input level (the x= value)
    • BaseLevel of the gray-bar (the b= value)
    • Index (the numbers on top of each sections) .

The sections will give 11 (or 19) control points (x,y) by which the compensation curve can be easily made. The y value is calculated by y = b + index.    
    
Before you print the dotgain measurement image please familiarize yourself with the various settings of your printer driver and set them all to a known and "neutral" position. You should use these known settings always when you use the dotgain compensation curve that is the result of these measurements.    

It is usually best to let the printer to do the halftoning, not the image manipulation system. Modern printers are able to change their dot size and this feature is most often used also in halftoning in addition to the main purpose; to print sharper fonts. 

Reading the Values from the Dotgain Measurement Images: 

    All the other sections except the sections x = 0 (black) and x = 255 (white) must be viewed at a great distance (about 5 meters away or more) so that the coarse halftoning of the background is fully averaged by the eye. The function of the coarse halftoning is to make the dotgain in the background area negligible and it does so with good accuracy but only if you view the image at proper distance.  
        
      You may find that a help from a friend may be a big assistance in doing this. Ask him/her to point the print using a pencil according your instructions. 

For each section except x = 0 and x = 255 sections, view the image at great distance and  locate the point where the gray-bar exactly match with the background. For each section, make a note of the x_value, BaseLevel (b= value) and the Index of that point. For each of the sections calculate: 

       y_value = BaseLevel + Index    
          

        And the control points then are (x_value, y_value) 

    For the white (x=255) and black (x=0) sections view the image at the reading distance and locate the point where the graybar merges with the background and again calculate the y_values.    
        

    Note for the white section: If you are using lower than 1200dpi printer it will usually make the appearance of the image better if you define the white to be the level just a little before the dithering starts to show obtrusively. In addition this way there will not be any specular white spots in the print, even if there are saturated areas in the data.  

    In case a 1200 dpi or better printer you can enhance the appearance of the image by defining the white point to be just a little before the specular white, so that there will not be those white spots/areas in the image. 

Error of the procedure

    The Dotgain Measurement Image has an error that depends:    
        
    1. on the actual amount of the pure dotgain of the printer. The error comes from coarse half-tone areas of the background only. 

    2.     
    3. on the DPI resolution of the printer (the image is self is set to 300 dpi and should not be changed).
      • For a 300 dpi printer the remaining dotgain at 50% intensity is the actual dotgain times 0.125. (e.g. an actual dotgain of 10% is reduced to be only 1.25%).
      • For a 600 dpi printer the remaining dotgain at 50% gray is the actual dotgain times 0.0625. (e.g. an actual dotgain of 10% is reduced to be only 0,625%)
      • For a 1200 dpi printer the remaining dotgain at 50% gray is the actual dotgain times 0.03125. (e.g. an actual dotgain of 10% is reduced to  be only 0,3125%)
           
      The error is always largest at 50% intensity level (x=128) and decreases linearly toward black (x=0) and white (x=255) where the error is 0.    

      The common 8 bit color or gray system limits the achievable accuracy to 1/256 or 0,4%. If a 10% actual dotgain is assumed then for a 1200 DPI printer the error is -1 level  at 50% intensity, virtually negligible. For a 600 DPI printer there is error of -1 or -2 levels at 50% intensity (still quite negligible). For a 300 DPI printer the error is -3 or -4 levels at 50% intensity. 

What to do with the control points

    Using the image manipulation software, create the compensation curve in the appropriate dialog with the aid of the above control points and save this curve with a name that indicates the device it was created for. In case of Adobe Photoshop this dialog is Image/Adjust/Curves. Every high end image manipulation software has such a dialog with what you can adjust intensity levels in non-linear manner.    

    The measurement points should be fitted onto a smooth continuous and monotonous curve ( the y value only grows when going from black-point to white-point). There is something wrong with the printer if the measurements suggests a negative slope (y value decreases) somewhere in the curve. The curve should be in a form of a slanted and inverted s-shape, approximation of the gamma function,  comprised by two or three linear segments or in case of good printer: linear.  

    Then use this curve as described in the Linear intensity Space, compensation curves section to compensate a copy of the image before printing. Never save the printer compensated image, keep only the original and make a copy and compensate that.  

    Note: The compensation curve above works when the image is linear. In other words the transfer curve of the printer is the inverse of the above compensation curve. In case you are working in some gamma space (and not with linear images) then you will need the transfer curve of the printer in order to calculate the required compensation. To plot the the transfer curve of the printer just rename all the x and y values as y and x values (all x's become y's and vica verca).

Photoshop Transfer Functions

    In Photoshop it is easy to calibrate any printer using the File/Print/Setup/Transfer -dialog. The above measured control points needs some recalculations as the dialog uses percentages and light and black are the other way around. So you would calculate: 
     
      x' = 100- (100 * x / 255) 
      y' = 100- (100 * y / 255) 

      Where the x' is the argument and y' is the correction value (to enter into the boxes) in Transfer -dialog.

     

    In case the transfer curve of your printer does follow the gamma law and you know the value of it you can simply calculate the correction that is needed. Here is a zip file of transfer function (*.atf) files for gamma compensation in the range from 1.0 to 3.0 and the inverse of that 

    Example: if your viewing gamma = 2.5 and the printer is in gamma space = 1.72 then you will need to load into File/Print/Setup/Transfer -dialog the 
    gamma 1.45.atf since 2.5/1.72 =1.45. 

    Note that usually printers do not follow the gamma law accurately: In that case the above transfer functions do not provide accurate printer calibration.

About the Dot Gain Percentage

    The dot gain compensation may be supported by the printer driver as a singe percentage setting. This could be calculated from the above control points but this is not an accurate method to compensate dotgain since most often the printers grayscale is made to match uncalibrated monitors.

Calibrating PostScript Printers

    Some PostScript printers can be calibrated easily with a PostScript command file that is sent to the printer. This is useful if the application that is used for printing (like most of the office grade applications) does not provide means for printer calibration.    

    By calibrating the printer the image-files need no printer compensation and this reduced the workload considerably.    

    For more information please see Calibrating Lexmark PostScript Printers. Currently I have no knowledge for other brands but the I will add pages as soon as more information becomes available.    
        
    There is also a general PostScript hack for calibration, it involves printing the the job into a ps-file and then editing a calibration block into it before sending to the printer.

Spectrum Maps

These maps are useful in creating color-space calibration manually. The zip archive contains 6 spectrum maps (with 1, 2, 3, 5, 10 and 15 degree hue separation) in RGB space. Each of the hue-planes in the charts are divided into 307 perceptually uniform saturation/lightness patches (of which 18 end up to gray).

The charts are higher bit-depth linear files. They come in miniature size, before use they need to be resampled up using nearest neighbor interpolation.

In short, once the transfer function of the printer is known, the spectrum map is compensated for that transfer function and then printed. The printout is then visually compared against the appearance of the chart on the CRT and a hue-angle+saturation conversion is created in attempt to correct hue-shifts and to boost the saturation as much as is possible without serious clipping.


Download spectrum_maps


Accurate Image Manipulation for Desktop Publishing    

Copyright Timo Autiokari, 1997-2007. Contact info