SYNOPSIS

pfsdisplayfunction [--display-function <df-spec>] [--to-pixels | --to-luminance] [--help] [--verbose]

DESCRIPTION

Use this command to convert pixel values to luminance / radiance units displayed on a monitor or to perform inverse conversion. This command is useful in combination with the HDR-VDP to convert LDR images to luminance maps representing images shown on a particular display. The display function specification is identical to the specification used in the pfstmo_mantiuk08 tone mapping operator (from the pfstmo package).

If neither --to-luminance nor --to-pixels option is specified, the appropriate conversion direction will be deducted from the LUMINANCE tag in the pfs stream.

OPTIONS

--to-luminance, -l

Convert pixel values to absolute luminance / radiance units. For RGB images the same display function is applied in each color channel.

--to-pixels, -p

Convert absolute luminance / radiance units to pixel values. For RGB images the same display function is applied in each color channel.

--display-function <df-spec>, -d <df-spec>

The display function describes how output luminance of a display changes with pixel values. If no parameter is given, the command assumes -df pd=lcd (see Pre-defined display below). There are several ways to specify the display function:

Gamma-gain-black-ambient display model

  • g=<float>:l=<float>:b=<float>:k=<float>:a=<float>[:n=<float>]

  • Gamma-gain-black-ambient model can approximate a range of displays and is a compact way to specify a display function. It assumes that a display function has the following form:

  • L_d(I) = (l-b)*I^gamma + b + k/pi*a

  • The parameters are as follows:

    g -

    gamma or exponent of a display function (default 2.2, usually from 1.8 to 2.8)

    l -

    peak luminance of a display in cd/m^2 (default 100, from 80 for CRTs to 500 or more for newer displays)

    b -

    black level, which is luminance of a black pixel when the display is on (default 1, usually from 0.3 to 1 cd/m^2)

    k -

    reflectivity of a screen (assuming that it is diffuse) (default 0.01, usually about 0.01 (1%) for LCD displays, more for CRTs)

    a -

    ambient illumination in lux. Typical values are:

    50

    Family living room (dim, default)

    400

    A brightly lit office

    32000

    Sunlight on an average day (min.)

    100000

    Sunlight on an average day (max.)

Pre-defined display

  • pd=<display_type>

  • Use pre-defined display type. This options are for convenience only and they do not mean to accurately model the response of a particular display. The following display types are recognized:

    lcd_office (g=2.2, l=100, b=0.8, k=0.01, a=400 )

    lcd set to "office" mode seen in bright environment

    lcd (g=2.2, l=200, b=0.8, k=0.01, a=60 )

    typical lcd seen in dim environment (default)

    lcd_bright (g=2.6, l=500, b=0.5, k=0.01, a=10 )

    newer LCD TV seen in dark environment

    crt (g=2.2, l=80, b=1, k=0.02, a=60 )

    CRT monitor seen in dim environment

  • The parameters in the parenthesis are the same as for the gamma-gain-black-ambient model explained above.

Lookup-table

  • lut=<file>

  • This is the most accurate specification of the display response function, but requires measuring it with a luminance meter. The lookup table should account also for ambient light, so that it is recommended to use the luminance meter that can measure screen luminance from a distance, such as Minolta LS-100 (as opposed to those that use rubber tube touching a display that eliminates the influence of ambient light). The <file> must be a comma-separated text file in a format (CSV) with two columns: first column represents pixel values (from 0.0 to 1.0) and the second physical luminance in cd/m^2. Both the pixel value and the luminance should increase in each raw.

EXAMPLES

pfsin barbara.jpg | pfsdisplayfunction -l -d pd:crt -v | pfsout barbara_crt.hdr

  • Convert barbara.jpg image from pixel values to a luminance map of the image shown on a CRT monitor and store the map as an HDR image.

RELATED TO pfsdisplayfunction…

BUGS

Please report bugs and comments to the pfstools discussion group (http://groups.google.com/group/pfstools).