Version 0.1.0-r1



htpp - High-Tune: Post-Process


htpp [option] ... [input]


htpp post-processes an htrdr-image(5) and convert it to a regular PPM image [1]. If input is not defined, the htrdr-image(5) is read from standard input.

htpp tone maps the high dynamic range colors of the input image with the following filmic tone mapping operator [2]:

out-color = f(in-color) / white-scale * exposure


f(x) = (x * (A*x + C*B) + D*E) / (x*(A*x + B + D*F)) - E/F

A = 0.15
B = 0.50
C = 0.10
D = 0.20
E = 0.02
F = 0.30

The exposure term is an user defined parameter provided by the -e option. If not defined, a default exposure of 1 is used. The white-scale factor is either defined by the user through the -w option or automatically computed as the luminance from which roughly all image pixels have a luminance less than white-scale. Currently, htpp empirically defines white-scale as the luminance greater than the luminance of 99.5% of the pixels. Once tone mapped, the pixels are transformed from the CIE 1931 XYZ color space to the sRGB linear color space before to be gamma corrected. Finally, the resulting pixel components are clamped to [0, 1] and encoded on 8-bits.


-e exposure

Pixel exposure. By default its value is 1.


Force overwrite of the output file.


List short help and exit.

-o output

File where the PPM image is written. If not defined, write output to standard output.


Generate an image of the uncertainties of the pixels rather of their estimated radiance. The uncertainties are tone mapped as if they were regular colors but no XYZ to sRGB conversion is applied on the tone mapped values.


Generate an image of the per radiative path computation time rather than an image of the estimated radiance.

-t threads-count

Hint on the number of threads to use. By default use as many threads as CPU cores.


Make htpp verbose.

-w white-scale

Factor used to normalize input colors. If not defined, white-scale is automatically computed from the luminance of the input image.


Display version information and exit.


Post-process the htrdr-image(5) saved in img.htrdr and write the resulting PPM image in img.ppm. Use the -f option to overwrite img.ppm if it already exists:

$ htpp -f -o img.ppm img.htrdr

Convert img.htrdr and visualise the resulting image by redirecting the standard output to the feh(1) image viewer. Use an exposure of 0.5 and explicitly define the normalization factor to 0.0025:

$ htpp -e 0.5 -w 0.0025 img.htrdr | feh -

Use the -u option to visualise the uncertainty of the img.htrdr image rather than its estimated radiance:

$ htpp -u img.htrdr | feh -


1. Portable PixMap -

2. Filmic tone mapping operator -


Copyright © 2018-2019 CNRS, |Meso|Star> <>, Université Paul Sabatier <>. htpp is free software released under the GPLv3+ license: GNU GPL version 3 or later You are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.


feh(1), htrdr-image(5)