exrmetrics¶
exrmetrics [options] infile [infile2...] [-o outfile]
Description¶
Read an OpenEXR image from infile, write an identical copy to outfile reporting time taken to read/write and file sizes.
Options:¶
- -o file
File to write to. If no file specified, uses a memory buffer.
Note: file may be overwritten multiple times during tests
- -p n
Part number to copy, or
all
for all parts. Default isall
.
- -m
Set to multi-threaded (system selected thread count).
- -t n
Use a pool of
n
worker threads for processing files. Default is single threaded (no thread pool).
- -l level
Set DWA or ZIP compression level.
- -z,--compression list
List of compression methods to test (
none/rle/zips/zip/piz/pxr24/b44/b44a/dwaa/dwab,orig,all
).Default is
orig
: retains original method.
- --convert
Shorthand options for writing a new file with no metrics:
-p all --type orig --time none --type orig --no-size --passes 1
Change pixel type or compression by specifying
--type
or-z
after--convert
.
- --bench
Shorthand options for robust performance benchmarking:
-p all --compression all --time write,reread --passes 10 --type half,float --no-size --csv
- -16 rgba|all
[DEPRECATED] force 16 bit half float: either just RGBA, or all channels. Use
--type half
or--type mixed
instead.
- --pixelmode list
List of pixel types to use (
float,half,mixed,orig
).mixed
uses half for RGBA, float for others. Default isorig
.
- --time list
Comma-separated list of operations to report timing for. Operations can be any of
read,write,reread
(use--time none
for no timing)
- --no-size
Don’t output size data.
- --json
Print output as JSON dictionary (default).
- --csv
Print output in csv mode. If
passes>1
, show median timing. Default isJSON
.
- --passes num
Write and re-read file num times (default is 1)
- -h, --help
Print this message
- -v
Output progress messages
- --version
Print version information
Example Usage:¶
Basic usage: report sizes and read time, write time, reread time.
% exrmetrics input.exr -o output.exr
[
{
"file": "input.exr",
"input file size": 3180931,
"pixels": 396225,
"channels": 4,
"total raw size": 3169800,
"compression": "none",
"part type": "scanlineimage",
"parts":
[
{
"part": 0,
"pixels": 396225,
"channels": 4,
"compression": "none",
"part type": "scanlineimage",
"total raw size": 3169800
}
],
"metrics":
[
{
"compression": "original",
"pixel mode": "original",
"output size": 3180960,
"read time": 0.0061315,
"write time": 0.0125296,
"re-read time": 0.00393838
}
]
}
]
Report read time, write time, re-read time with each available compression type:
% exrmetrics --bench *.exr
file name,compression,pixel mode,write time,count reread time,reread time
input.exr,none,half,0.00147702,---,0.000437916
input.exr,none,float,0.00124969,---,0.000425501
input.exr,rle,half,0.00655444,---,0.00484196
input.exr,rle,float,0.00823504,---,0.006153
input.exr,zips,half,0.0243503,---,0.00615663
input.exr,zips,float,0.0322755,---,0.00982083
input.exr,zip,half,0.0224963,---,0.00438646
input.exr,zip,float,0.0351248,---,0.00679192
input.exr,piz,half,0.0194071,---,0.00750638
input.exr,piz,float,0.0310976,---,0.0124893
input.exr,pxr24,half,0.0230168,---,0.00463231
input.exr,pxr24,float,0.0280254,---,0.00549154
input.exr,b44,half,0.00880035,---,0.00188298
input.exr,b44,float,0.0010236,---,0.000360021
input.exr,b44a,half,0.00816444,---,0.00159444
input.exr,b44a,float,0.00101096,---,0.000393375
input.exr,dwaa,half,0.0340554,---,0.00496896
input.exr,dwaa,float,0.0372704,---,0.00825308
input.exr,dwab,half,0.0249792,---,0.00452442
input.exr,dwab,float,0.0286153,---,0.0079899
Just convert the file, printing no metrics:
% exrmetrics --convert -z zip input.exr -o output.exr