Man Linux: Main Page and Category List

NAME

       pfstmo_mantiuk08 - Display adaptive tone mapping

SYNOPSIS

       pfstmo_mantiuk08  [--display-function <df-spec>] [--display-size=<size-
       spec>] [--color-saturation  <float>]  [--contrast-enhancement  <float>]
       [--white-y=<float>]    [--temporal=<pass>]   [--output-tone-curve=<file
       name>] [--verbose] [--help]

DESCRIPTION

       This command applies the display adaptive tone mapping, which  attempts
       to preserve contrast of an input (HDR) image as close as possible given
       the characteristic of an output display. Use this tone mapping operator
       if  you want to preserve original image appearance, or slightly enhance
       contrast (-e option) while maintaining the natural look of images.  The
       operator can also compensate for ambient light reflections on a screen,
       and for varying dynamic range and brightness of a display.

       More details can be found in:
              Rafal Mantiuk, Scott Daly and Louis Kerofsky.
              Display Adaptive Tone Mapping.
              In: ACM Transactions on Graphics 27 (3), 2008.
              http://www.mpi-inf.mpg.de/resources/hdr/datmo/

       If you find this TMO useful in your research project, please  cite  the
       paper above.

       This operator also employs color correction mechanism from:
              Radoslaw  Mantiuk,  Rafal  Mantiuk,  Anna  Tomaszewska, Wolfgang
              Heidrich.
              Color Correction for Tone Mapping.
              In: Computer Graphics Forum (Proc. of  EUROGRAPHICS’09),  28(2),
              2009.
              http://zgk.wi.ps.pl/color_correction/

       The result of this TMO does not require gamma correction.

OPTIONS

       --display-function <df-spec>, -d <df-spec>
              To  adapt tone-mapping to different displays, this operator must
              be provided a display function. 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 lux Family living room (dim, default)
                   400 lux
                          A brightly lit office
                   32000 lux
                          Sunlight on an average day (min.)
                   100000 lux
                          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.

       --display-size=<size-spec>, -s=<size_spec>
              Specifies  how  large  the image appears to a viewer and what is
              the viewing distance.  If no parameter is  given,  -s ppd=30  is
              assumed.  Since  this  tone-mapper  is  global, display size has
              moderate effect on the resulting images and thus  skipping  this
              parameter should not do much harm. There are two ways to specify
              image size:
              vres=<lines>:vd=<screen_heights>[:d=<meters>]
                      vres   - screen’s  vertical  resolution  in  lines,  for
                             example 1024.
                      vd     -  viewing  distance  specified  as multiplies of
                             screen height. For example if the display is seen
                             from  0.5m  and the height of its screen is 25cm,
                             vd=2.
                      d      - (optional) viewing distance in meters. This  is
                             to account for lower eye’s sensitivity for larger
                             viewing  distances  (although   the   effect   is
                             negligible). By default -d=0.5 is assumed.
              ppd=<pixels_per_visual_degree>[:d=<meters>]
                      ppd    - how many pixels spans one visual degree.
                      d      -  (optional) viewing distance in meters. This is
                             to account for lower eye’s sensitivity for larger
                             viewing   distances   (although   the  effect  is
                             negligible). By default -d=0.5 is assumed.

       --color-saturation <float>, -c <float>
              Decrease  or  increase  color  saturation  after  tone  mapping.
              Default  value -c=1 attempts to preserve color appearance of the
              original image. Use values >1 to increase  and  <1  to  decrease
              color saturation.

       --contrast-enhancement <float>, -e <float>
              By  default this tone-mapper attempts to preserve contrast of an
              input image (-e=1). This parameter controls whether the contrast
              of  an  input  image should be enhanced before tone-mapping. For
              example -e=1.15 boosts contrast by 15%. Note that  if  a  target
              display does not offer sufficient dynamic range, contrast may be
              enhanced only for selected tone-values (those that  dominate  in
              an image) or not enhanced at all.

       --white-y=<float>, -y=<float>
              Tells  the  tone-mapper  what luminance level in the input image
              should be mapped to the maximum luminance of  a  display.  Since
              HDR  images  contain  only relative luminance information, tone-
              mapper does not know how bright should be the scene. This option
              is  meant  to fix this problem by providing tone-mapper with the
              information what luminance level in an  input  image  should  be
              perceived  as  a  diffuse  white surface. Default is none, which
              means that no such mapping will be enforced and  tone-mapper  is
              free  to find an optimal brightness for a given image. This is a
              recommended setting for HDR images. Setting --white-y  could  be
              necessary for dark scenes, which could be made too bright by the
              tone-mapper. The value of this parameter can be also  passed  in
              pfsstream as a tag WHITE_Y. pfstools 1.7 and newer sets set this
              tag automatically  for  LDR  images.  The  command  line  option
              overrides the value of the pfstream tag.

       --temporal=<pass>, -t=<pass>
              Use  temporal  filtering  of  the  tone-curve  to tone-map video
              sequence. This option should be  used  for  video  sequences  to
              avoid  flickering.  Since the temporal filter requires knowledge
              of at  least  25  frames  in  advance,  the  filtering  must  be
              performed  in two passes, similar to MPEG video encoding. In the
              first pass (pass=1) tone-curves are calculated  for  each  frame
              and  stored  in  a  temporary file (datmo_tone_curves.tmp in the
              current directory). In the second pass (pass=2) the  tone-curves
              are  read  from  that  file, filtered and used to tone-map video
              sequence. The tone-mapper does not produce any  output  (frames)
              in  the  first  pass.  See  below an example how to use two-pass
              filtering. Note that the same set of tone mapping  options  must
              be provided for both passes.

       --output-tone-curve=<file name>, -o=<file name>
              Write  tone-curves  to  a  text  file. This option is mainly for
              debugging purposes, but can be used to visualize computed  tone-
              curves.  The tone-curve data is stored in a comma separated text
              file (CSV), consisting of three columns: frame number, log10  of
              input   luminance   factor,   log10  of  the  resulting  display
              luminance, and the pixel value (0-1).

       --verbose, -v
              Print additional information during program execution.

       --quiet, -q
              Do not display progress report.

       --help, -h
              Print list of commandline options.

EXAMPLES

       pfsin memorial.hdr | pfstmo_mantiuk08 -d pd=crt | pfsout memorial.png

              Tone map memorial image for a CRT display and store  the  result
              in the PNG format.

       pfsin  memorial.hdr | pfstmo_mantiuk08 -d g=2.6:l=500:b=0.5:k=0.01:a=10
       | pfsview

              Tone  map memorial image for a display that has a 2.2 gamma, the
              peak luminance of 500 cd/m^2, the black level of 0.5 cd/m^2, the
              panel   reflectivity   of  1%  (0.01)  and  is  seen  under  the
              illumination of 10 lux.

       pfsin bridge.jpg --linear | pfsclamp --min 0.007 | pfstmo_mantiuk08  -v
       | pfsview

              Enhance the  low-dynamic  range  image  ’bridge’  and  view  the
              result. pfsclamp command reduces noise for low code values.

       pfsin frame%05d.exr | pfstmo_mantiuk08 -d pd=lcd_bright -t 1
       pfsin  frame%05d.exr  | pfstmo_mantiuk08 -d pd=lcd_bright -t 2 | pfsout
              out_frame%04d.png

              Tone-map video sequence using 2-pass temporal filtering to avoid
              flicker.

       pfsin *.exr | pfstmo_mantiuk08 | pfsview

              Tone-map  and display *.exr HDR images in the current directory.

       pfsin *.exr | pfstmo_mantiuk06 | pfsgamma -g 0.8 |  pfstmo_mantiuk08  |
       pfsview

              It  is  possible  to  stack   a   TMO   that   sharpens   images
              (pfstmo_mantiuk06)    with    the    contrast   preserving   TMO
              (pfstmo_mantiuk08) to get new interesting results.

SEE ALSO

       pfsin(1) pfsout(1) pfsview(1)

BUGS

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

                                                           pfstmo_mantiuk08(1)