Provided by: pfstmo_1.4-1_amd64 bug

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)