Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
pfstmo_fattal02(1)	     General Commands Manual	      pfstmo_fattal02(1)

NAME
     pfstmo_fattal02 - Gradient domain high dynamic range compression

SYNOPSIS
     pfstmo_fattal02  [--alpha	<val>] [--beta <val>] [--gamma <val>] [--satura-
     tion <val>] [--noise <val>] [--detail-level  <val>]  [--black-point  <val>]
     [--white-point <val>] [--multigrid] [--verbose] [--help]

DESCRIPTION
     This command implements a tone mapping operator as described in:

     Gradient  Domain  High  Dynamic Range Compression R. Fattal, D. Lischinski,
     and M. Werman In ACM Transactions on Graphics, 31(3), p. 249, 2002.

     With respect to the original paper, this program provides additional  para-
     meter  which  limits the amplification of noise. The noise is often starkly
     amplified because of division by zero in one of the equations in the paper.
     Extension contributed by Przemyslaw Bazarnik.

     At the core of the programme is a Poisson PDE which  as  suggested  in  the
     original paper is solved using a Full Multigrid Algorithm. However, this is
     an  iterative  solver  which  seems to lose accuracy when applied to higher
     resolution images resulting in halo effects and surreal looking images. For
     that reason a second solver has been implemented using the discrete  cosine
     transform as the underlying method and is considerably more accurate mainly
     because  it  is a direct solver. This solver is the preferred method and is
     used by default. The old multigrid solver can be selected with the --multi-
     grid (-m) option.

OPTIONS
     --alpha <val>, -a <val>

	    Set alpha parameter. This parameter  is  depreciated  as  setting  a
	    <val>  other  than 1.0 has only the effect of a global gamma adjust-
	    ment of the luminance channel which can be directly specified  using
	    the  --gamma  option.  See the paper for the definition of alpha. It
	    can be shown, although not mentioned in the paper, that setting  al-
	    pha  other	than  1.0  has	the  same  effect as setting gamma = al-
	    pha^(k*(1-beta)), where beta is the value as specified by --beta and
	    k is the number of levels of the Gaussian Pyramid (see paper for de-
	    tails), which depends on the image pixel size (smallest  k	so  that
	    2^(k+detail_level)	>=  min(width,height)/MSIZE,  MSIZE  see  source
	    code, e.g. 8 or 32).

     --beta <val>, -b <val>

	    Set beta parameter. <val> sets the strength of gradient (local  con-
	    trast) modification.  Suggested range is 0.8 to 0.96, default is 0.9
	    (see paper for details).  Value of 1 does not change contrasts, val-
	    ues  above 1 reverse the effect: local contrast is stretched and de-
	    tails are attenuated.  Values below 0.5 lead to very strong amplifi-
	    cation of small contrast, so consider  using  --noise  parameter  to
	    prevent noise.

     --gamma <val>, -g <val>

	    Set  luminance  gamma  adjustment. This can be described as a global
	    contrast enhancement and is applied after the local  enhancement  as
	    specified  by the parameter --beta is performed. Gamma adjustment or
	    correction is defined by a power-law, in this case
	     L_out(x,y) = L_in(x,y)^gamma, where  L_in(x,y)=exp(I(x,y))  is  the
	    luminance value after the local contrast enhancement (I is the solu-
	    tion  of  the  Poisson PDE). The suggested range for <val> is 0.6 to
	    1.0, default is 0.8.

     --saturation <val>, -s <val>

	    Amount of color saturation. Suggested range is 0.4 to  0.8.  Default
	    value: 0.8.

     --noise <val>, -n <val>

	    Reduces  the  gradient  amplification value for gradients close to 0
	    and reduces noise as a result. <val> defines gradient  value  (lumi-
	    nance difference of adjacent pixels) which is treated as noise. Sug-
	    gested  range is 0.0 to the value of alpha. Default value calculated
	    based on alpha: 0.001*alpha.

     --detail-level <val>, -d <val>

	    Specifies up to which detail level the  local  contrast  enhancement
	    should  be	performed. It basically means that local contrast levels
	    within small squares of pixel size 2^<val> are not changed.  In  the
	    implementation  this corresponds to removing the <val> finest levels
	    of the Gaussian Pyramid as described in the paper,	i.e.  the  paper
	    only  considers  <val>=0. Suggested values are 1, 2 or 3; 3 for high
	    resolution images. The default is 3 for --fftsolver, and  0  if  the
	    original  multi-level  solver is used (to be consistent with the pa-
	    per).

     --white-point <val>, -w <val>

	    Specifies the percentage of pixels which are allowed to  be  overex-
	    posed  and	therefore blown out. This can be useful for example when
	    there is a very bright object in the image like the sun and  details
	    of	it  do	not  need to be resolved.  As a result the overall image
	    will look brighter the greater <val> is.  Default is 0.5.

     --black-point <val>, -k <val>

	    Same as --white-point but for under-exposed pixels. Default is 0.1.

     --multigrid, -m

	    Enable the use of the multigrid solver as suggested by the	original
	    paper.  For accuracy the default fft solver is generally recommended
	    especially when using high resolution images. The user will  benefit
	    by obtaining photo-realistic rather than surreal looking images. The
	    fft  solver  is  also  faster despite the fact it is only O(n*log n)
	    with n=width*height, as compared to O(n) for the  multigrid  solver.
	    The  speed improvement is thanks to the very efficient fftw3 library
	    which is used to calculate the discrete cosine transform.

     --verbose

	    Print additional information during program execution.

     --help

	    Print list of command line options.

EXAMPLES
     pfsin memorial.hdr | pfstmo_fattal02 -v -t | pfsout memorial.png

	    Tone map image (using fft solver) and save it in png format.

     pfsin memorial.hdr | pfstmo_fattal02 -v -t -b 0.85 -g 0.7 -w 2.0 \
	    | pfsout memorial.png

	    Tone map image (using fft solver) with stronger  contrast  modifica-
	    tion than default, i.e. beta=0.85, gamma=0.7 and white point 2.0%.

     pfsin memorial.hdr | pfstmo_fattal02 -v | pfsout memorial.png

	    Tone map image (old style) and save it in png format.

SEE ALSO
     pfsin(1) pfsout(1) pfsview(1)

KNOWN ISSUES
     For  stronger local contrast enhancements (beta<0.9) the fft solver (--fft-
     solver) might produce slightly dark image corners.  This can  be  mitigated
     using bigger values for the --noise parameter.

     With  a value of --detail-level greater than 0, the internal implementation
     could be made much more efficient as only a reduced sized PDE would need to
     be solved, greatly improving speed.

BUGS
     Please report bugs and comments on implementation to the  pfstools  discus-
     sion  group (http://groups.google.com/group/pfstools). For bugs specific to
     the FFT solver email Tino Kluge <tino.kluge@hrz.tu-chemnitz.de>.

							      pfstmo_fattal02(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=pfstmo_fattal02&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>

home | help