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>] [--satu-
       ration  <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.  Lischin-
       ski,  and  M.  Werman  In  ACM Transactions on Graphics,	31(3), p. 249,
       2002.

       With respect to the original paper, this	 program  provides  additional
       parameter  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 look-
       ing  images. For	that reason a second solver has	been implemented using
       the discrete cosine transform as	the underlying method and is consider-
       ably 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	--multigrid (-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  ad-
	      justment	of  the	luminance channel which	can be directly	speci-
	      fied using the --gamma option. See the paper for the  definition
	      of  alpha. It can	be shown, although not mentioned in the	paper,
	      that setting alpha other than 1.0	has the	same effect as setting
	      gamma = alpha^(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 details), 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
	      contrast)	modification.  Suggested range is 0.8 to 0.96, default
	      is 0.9 (see paper	for details).  Value of	1 does not change con-
	      trasts, values above 1 reverse the  effect:  local  contrast  is
	      stretched	 and details are attenuated.  Values below 0.5 lead to
	      very strong amplification	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  en-
	      hancement	 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  solution 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.  De-
	      fault 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
	      (luminance  difference  of  adjacent pixels) which is treated as
	      noise. Suggested 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 enhance-
	      ment 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 paper).

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

	      Specifies	the percentage of pixels which are allowed to be over-
	      exposed  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 over-
	      all 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 orig-
	      inal 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  sur-
	      real  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 modifi-
	      cation  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
       (--fftsolver)  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 implementa-
       tion 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 dis-
       cussion group (http://groups.google.com/group/pfstools).	For bugs  spe-
       cific  to  the  FFT  solver  email  Tino	Kluge <tino.kluge@hrz.tu-chem-
       nitz.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+14.3.quarterly>

home | help