Skip to content

Instantly share code, notes, and snippets.

@BigRoy
Last active April 23, 2025 10:57
Show Gist options
  • Save BigRoy/327f3c978b32182348c54ed9f30a5cbe to your computer and use it in GitHub Desktop.
Save BigRoy/327f3c978b32182348c54ed9f30a5cbe to your computer and use it in GitHub Desktop.
Debug speed issue with oiiotool.exe with multichannel EXRs
==================
>> oiiotool --buildinfo
Invalid option "--buildinfo"
oiiotool -- simple image processing operations
OpenImageIO 2.3.10 http://www.openimageio.org
Usage: oiiotool [filename|command]...
Important usage tips:
* The oiiotool command line is processed in order, LEFT to RIGHT.
* The command line consists of image NAMES ('image.tif') and COMMANDS ('--over'). Commands start with dashes (one or two dashes are equivalent). Some commands have required arguments which must follow on the command line. For example, the '-o' command is
followed by a filename.
* oiiotool is STACK-based: naming an image pushes it on the stack, and most commands pop the top image (or sometimes more than one image), perform a calculation, and push the result image back on the stack. For example, the '--over' command pops the top two
images off the stack, composites them, then pushes the result back onto the stack.
* Some commands allow one or more optional MODIFIERS in the form 'name=value', which are appended directly to the command itself (no spaces), separated by colons ':'. For example,
oiiotool in.tif --text:x=100:y=200:color=1,0,0 "Hello" -o out.tif
* Using numerical wildcards will run the whole command line on each of several sequentially-named files, for example:
oiiotool fg.#.tif bg.#.tif -over -o comp.#.tif
See the manual for info about subranges, number of digits, etc.
* Command line arguments containing substrings enclosed in braces {} are replaced by evaluating their contents as expressions. Simple math is allowed as well as retrieving metadata such as {TOP.'foo:bar'}, {IMG[0].filename}, or {FRAME_NUMBER/24.0}.
Options (general flags, usually not positional):
--help Print help message
-v Verbose status messages
-q Quiet mode (turn verbose off)
-n No saved output (dry run)
-a Do operations on all subimages/miplevels
--debug Debug mode
--runstats Print runtime statistics
--info Print resolution and basic info on all inputs, detailed metadata if -v is also used (options: format=xml:verbose=1)
--list-formats List all supported file formats and their filename extensions
--metamatch REGEX Which metadata is printed with -info -v
--no-metamatch REGEX Which metadata is excluded with -info -v
--stats Print pixel statistics of all inputs files
--dumpdata Print all pixel data values of input files (options: empty=1, C=arrayname)
--hash Print SHA-1 hash of each input image
-u Update mode: skip outputs when the file exists and is newer than all inputs
--no-clobber Do not overwrite existing files
--threads N Number of threads (default 0 == #cores)
--frames FRAMERANGE Frame range for '#' or printf-style wildcards
--framepadding NDIGITS Frame number padding digits (ignored when using printf-style wildcards)
--views VIEWNAMES Views for %V/%v wildcards (comma-separated, defaults to "left,right")
--skip-bad-frames Skip to next frame in range if there's an error, rather than exiting
--wildcardoff Disable numeric wildcard expansion for subsequent command line arguments
--wildcardon Enable numeric wildcard expansion for subsequent command line arguments
--evaloff Disable {expression} evaluation for subsequent command line arguments
--evalon Enable {expression} evaluation for subsequent command line arguments
--no-autopremult Turn off automatic premultiplication of images with unassociated alpha
--autopremult Turn on automatic premultiplication of images with unassociated alpha
--autoorient Automatically --reorient all images upon input
--autocc Automatically color convert based on filename (options: unpremult=)
--noautocc Turn off automatic color conversion
--native Keep native pixel data type (bypass cache if necessary)
--cache MB ImageCache size (in MB: default=4096)
--autotile TILESIZE Autotile enable for cached images (the argument is the tile size, default 0 means no autotile)
--metamerge Always merge metadata of all inputs into output
--oiioattrib NAME VALUE Sets global OpenImageIO attribute (options: type=...)
Commands that read images:
-i FILENAME Input file (options: autocc=, ch=, info=, infoformat=, now=, type=, unpremult=)
--iconfig NAME VALUE Sets input config attribute (options: type=...)
--missingfile OPTION Set policy for missing input files: 'error' (default), 'black', 'checker'
Commands that write images:
-o FILENAME Output the current image to the named file (options: all=, autocc=, autocrop=, autotrim=, bits=, contig=, datatype=, dither=, fileformatname=, scanline=, separate=, tile=, unpremult=)
-otex FILENAME Output the current image as a texture
-oenv FILENAME Output the current image as a latlong env map
-obump FILENAME Output the current bump texture map as a 6 channels texture including the first and second moment of the bump slopes (options: bumpformat=height|normal|auto, uvslopes_scale=val>=0)
Options that affect subsequent image output:
-d TYPE '-d TYPE' sets the output data format of all channels, '-d CHAN=TYPE' overrides a single named channel (multiple -d args are allowed). Data types include: uint8, sint8, uint10, uint12, uint16, sint16, uint32, sint32, half, float,
double
--scanline Output scanline images
--tile WIDTH HEIGHT Output tiled images with this tile size
--compression NAME Set the compression method (in the form "name" or "name:quality")
--dither Add dither when writing <= 8-bit output from > 8 bit input
--planarconfig CONFIG Force planarconfig (contig, separate, default)
--adjust-time Adjust file times to match DateTime metadata
--noautocrop Do not automatically crop images whose formats don't support separate pixel data and full/display windows
--autotrim Automatically trim black borders upon output to file formats that support separate pixel data and full/display windows
Options that print data (usually about the current image):
--echo TEXT Echo message to console (options: newline=0)
--printinfo Print info and metadata of the current top image
--printstats Print pixel statistics of the current top image (options: roi=<geom>)
--colorcount COLORLIST Count of how many pixels have the given color (argument: color;color;...) (options: eps=color)
--rangecheck MIN MAX Count of how many pixels are outside the min/max color range (each is a comma-separated color value list)
Options that change current image metadata (but not pixel values):
--attrib NAME VALUE Sets metadata attribute (options: type=...)
--sattrib NAME VALUE Sets string metadata attribute
--eraseattrib REGEX Erase attributes matching regex
--caption TEXT Sets caption (ImageDescription metadata)
--keyword KEYWORD Add a keyword
--clear-keywords Clear all keywords
--nosoftwareattrib Do not write command line into Exif:ImageHistory, Software metadata attributes
--sansattrib Write command line into Software & ImageHistory but remove --sattrib and --attrib options
--orientation ORIENT Set the assumed orientation
--orientcw Rotate orientation metadata 90 deg clockwise
--orientccw Rotate orientation metadata 90 deg counter-clockwise
--orient180 Rotate orientation metadata 180 deg
--origin +X+Y Set the pixel data window origin (e.g. +20+10, -16-16)
--originoffset +X+Y Offset the pixel data window origin from its current position (e.g. +20+10, -16-16)
--fullsize GEOM Set the display window (e.g., 1920x1080, 1024x768+100+0, -20-30)
--fullpixels Set the 'full' image range to be the pixel data window
--chnames NAMELIST Set the channel names (comma-separated)
Options that affect subsequent actions:
--fail THRESH Failure threshold difference (0.000001)
--failpercent PCNT Allow this percentage of failures in diff (0)
--hardfail THRESH Fail diff if any one pixel exceeds this error (infinity)
--warn THRESH Warning threshold difference (0.00001)
--warnpercent PCNT Allow this percentage of warnings in diff (0)
--hardwarn THRESH Warn if any one pixel difference exceeds this error (infinity)
Actions:
--create GEOM NCHANS Create a blank image
--pattern NAME GEOM NCHANS Create a patterned image. Pattern name choices: black, constant, fill, checker, noise
--kernel NAME GEOM Create a centered convolution kernel
--capture Capture an image (options: camera=%d)
--diff Print report on the difference of two images (modified by --fail, --failpercent, --hardfail, --warn, --warnpercent --hardwarn)
--pdiff Print report on the perceptual difference of two images (modified by --fail, --failpercent, --hardfail, --warn, --warnpercent --hardwarn)
--add Add two images
--addc VAL Add to all channels a scalar or per-channel constants (e.g.: 0.5 or 1,1.25,0.5)
--sub Subtract two images
--subc VAL Subtract from all channels a scalar or per-channel constants (e.g.: 0.5 or 1,1.25,0.5)
--mul Multiply two images
--mulc VAL Multiply the image values by a scalar or per-channel constants (e.g.: 0.5 or 1,1.25,0.5)
--div Divide first image by second image
--divc VAL Divide the image values by a scalar or per-channel constants (e.g.: 0.5 or 1,1.25,0.5)
--mad Multiply two images, add a third
--invert Take the color inverse (subtract from 1) (options: chbegin=0, chend=3
--abs Take the absolute value of the image pixels
--absdiff Absolute difference between two images
--absdiffc VAL Absolute difference versus a scalar or per-channel constant (e.g.: 0.5 or 1,1.25,0.5)
--powc VAL Raise the image values to a scalar or per-channel power (e.g.: 2.2 or 2.2,2.2,2.2,1.0)
--noise Add noise to an image (options: type=gaussian:mean=0:stddev=0.1, type=uniform:min=0:max=0.1, type=salt:value=0:portion=0.1, seed=0
--chsum Turn into 1-channel image by summing channels (options: weight=r,g,...)
--colormap MAPNAME Color map based on channel 0 (arg: "inferno", "viridis", "magma", "turbo", "plasma", "blue-red", "spectrum", "heat", or comma-separated list of RGB triples)
--crop GEOM Set pixel data resolution and offset, cropping or padding if necessary (WxH+X+Y or xmin,ymin,xmax,ymax)
--croptofull Crop or pad to make pixel data region match the "full" region
--trim Crop to the minimal ROI containing nonzero pixel values
--cut GEOM Cut out the ROI and reposition to the origin (WxH+X+Y or xmin,ymin,xmax,ymax)
--paste +X+Y Paste fg over bg at the given position (e.g., +100+50; '-' or 'auto' indicates using the data window position as-is; options: all=%d, mergeroi=%d)
--pastemeta Copy the metadata from the first image to the second image and write the combined result.
--mosaic WxH Assemble images into a mosaic (arg: WxH; options: pad=0, fit=WxH)
--over 'Over' composite of two images
--zover Depth composite two images with Z channels (options: zeroisinf=%d)
--deepmerge Merge/composite two deep images
--deepholdout Hold out one deep image by another
--rotate90 Rotate the image 90 degrees clockwise
--rotate180 Rotate the image 180 degrees
--rotate270 Rotate the image 270 degrees clockwise (or 90 degrees CCW)
--flip Flip the image vertically (top<->bottom)
--flop Flop the image horizontally (left<->right)
--reorient Rotate and/or flop the image to transform the pixels to match the Orientation metadata
--transpose Transpose the image
--cshift +X+Y Circular shift the image (e.g.: +20-10)
--resample GEOM Resample (640x480, 50%) (options: interp=0)
--resize GEOM Resize (640x480, 50%) (options: filter=%s)
--fit GEOM Resize to fit within a window size (options: filter=%s, pad=%d, exact=%d)
--pixelaspect ASPECT Scale up the image's width or height to match the given pixel aspect ratio (options: filter=%s)
--rotate DEGREES Rotate pixels (degrees clockwise) around the center of the display window (options: filter=%s, center=%f,%f, recompute_roi=%d
--warp MATRIX Warp pixels (argument is a 3x3 matrix, separated by commas) (options: filter=%s, recompute_roi=%d)
--convolve Convolve with a kernel
--blur WxH Blur the image (options: kernel=name)
--median WxH Median filter the image
--dilate WxH Dilate (area maximum) the image
--erode WxH Erode (area minimum) the image
--unsharp Unsharp mask (options: kernel=gaussian, width=3, contrast=1, threshold=0)
--laplacian Laplacian filter the image
--fft Take the FFT of the image
--ifft Take the inverse FFT of the image
--polar Convert complex (real,imag) to polar (amplitude,phase)
--unpolar Convert polar (amplitude,phase) to complex (real,imag)
--fixnan STRATEGY Fix NaN/Inf values in the image (choices: none, black, box3, error)
--fillholes Fill in holes (where alpha is not 1)
--max Pixel-by-pixel max of two images
--maxc VAL Max all values with a scalar or per-channel constants (e.g.: 0.5 or 1,1.25,0.5)
--maxchan Maximum of all channels of the image
--min Pixel-by-pixel min of two images
--minc VAL Min all values with a scalar or per-channel constants (e.g.: 0.5 or 1,1.25,0.5)
--minchan Minimum of all channels of the image
--clamp Clamp values (options: min=..., max=..., clampalpha=0)
--contrast Remap values (options: black=0..., white=1..., sthresh=0.5..., scontrast=1.0..., gamma=1, clamp=0|1)
--saturate SCALE Scale saturation of the color channels
--rangecompress Compress the range of pixel values with a log scale (options: luma=0|1)
--rangeexpand Un-rangecompress pixel values back to a linear scale (options: luma=0|1)
--line X1,Y1,X2,Y2,... Render a poly-line (options: color=)
--box X1,Y1,X2,Y2 Render a box (options: color=)
--fill GEOM Fill a region (options: color=)
--text TEXT Render text into the current image (options: x=, y=, size=, color=)
Manipulating channels or subimages:
--ch CHANLIST Select or shuffle channels (e.g., "R,G,B", "B,G,R", "2,3,4")
--chappend Append the channels of the last two images
--unmip Discard all but the top level of a MIPmap
--selectmip MIPLEVEL Select just one MIP level (0 = highest res)
--subimage SUBIMAGEINDEX Select just one subimage by index or name (options: delete=1)
--sisplit Split the top image's subimges into separate images
--siappend Append the last two images into one multi-subimage image
--siappendall Append all images on the stack into a single multi-subimage image
--deepen Deepen normal 2D image to deep
--flatten Flatten deep image to non-deep
Image stack manipulation:
--dup Duplicate the current image (push a copy onto the stack)
--swap Swap the top two images on the stack.
--pop Throw away the current image
--label %s Label the top image
Color management:
--colorconfig FILENAME Explicitly specify an OCIO configuration file
--iscolorspace COLORSPACE Set the assumed color space (without altering pixels)
--tocolorspace COLORSPACE Convert the current image's pixels to a named color space
--colorconvert SRC DST Convert pixels from 'src' to 'dst' color space (options: key=, value=, unpremult=, strict=)
--ccmatrix MATRIXVALS Color convert pixels with a 3x3 or 4x4 matrix (options: unpremult=,transpose=)
--ociolook LOOK Apply the named OCIO look (options: from=, to=, inverse=, key=, value=, unpremult=)
--ociodisplay DISPLAY VIEW Apply the named OCIO display and view (options: from=, looks=, key=, value=, unpremult=)
--ociofiletransform FILENAME Apply the named OCIO filetransform (options: inverse=, unpremult=)
--unpremult Divide all color channels of the current image by the alpha to "un-premultiply"
--premult Multiply all color channels of the current image by the alpha
--repremult Multiply all color channels of the current image by the alpha, but don't crush alpha=0 pixels to black.
Input formats supported: bmp, cineon, dds, dpx, ffmpeg, fits, gif, hdr, iff, jpeg, null, openexr, png, pnm, psd, raw, rla, sgi, socket, softimage, targa, tiff, webp, zfile
Output formats supported: bmp, dpx, fits, gif, hdr, iff, jpeg, null, openexr, png, pnm, rla, sgi, socket, targa, term, tiff, webp, zfile
OpenColorIO 2.1.1, color config: built-in
Known color spaces: "linear", "default", "rgb", "RGB", "sRGB", "Rec709"
Filters available: box, triangle, gaussian, sharp-gaussian, catmull-rom, blackman-harris, sinc, lanczos3, radial-lanczos3, nuke-lanczos6, mitchell, bspline, disk, cubic, keys, simon, rifman
Dependent libraries: FFMpeg 4.4.1 (Lavf58.76.100), gif_lib 5.2.1, jpeg-turbo 2.1.3/jp62, null 1.0, OpenEXR 2.5.0, libpng 1.6.37, libraw 0.19.0-Beta1, LIBTIFF Version 4.3.0, Webp 1.2.2
OIIO 2.3.10 built for C++14/199711 sse2
Running on 32 cores 127.9GB sse2,sse3,ssse3,sse41,sse42,avx,popcnt
Full OIIO documentation can be found at
https://openimageio.readthedocs.io
Full command line was:
> oiiotool.exe --buildinfo
Days : 0
Hours : 0
Minutes : 0
Seconds : 0
Milliseconds : 410
Ticks : 4104105
TotalDays : 4.75012152777778E-06
TotalHours : 0.000114002916666667
TotalMinutes : 0.006840175
TotalSeconds : 0.4104105
TotalMilliseconds : 410.4105
==================
>> oiiotool -info -v input.exr
Reading input.exr
input.exr : 2996 x 2058, 78 channel, half/half/half/half/float/float/float/float/float/float/float/float/half/half/half/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/half/half/half/half/half/half/half/half/half/half/half/half/half/half/half/half/half/half openexr
channel list: R (half), G (half), B (half), A (half), Z (float), fresnel (float), N.X (float), N.Y (float), N.Z (float), Pref.X (float), Pref.Y (float), Pref.Z (float), coat.R (half), coat.G (half), coat.B (half), crypto_asset.R (float), crypto_asset.G (float), crypto_asset.B (float), crypto_asset00.R (float), crypto_asset00.G (float), crypto_asset00.B (float), crypto_asset00.A (float), crypto_asset01.R (float), crypto_asset01.G (float), crypto_asset01.B (float), crypto_asset01.A (float), crypto_asset02.R (float), crypto_asset02.G (float), crypto_asset02.B (float), crypto_asset02.A (float), crypto_material.R (float), crypto_material.G (float), crypto_material.B (float), crypto_material00.R (float), crypto_material00.G (float), crypto_material00.B (float), crypto_material00.A (float), crypto_material01.R (float), crypto_material01.G (float), crypto_material01.B (float), crypto_material01.A (float), crypto_material02.R (float), crypto_material02.G (float), crypto_material02.B (float), crypto_material02.A (float), crypto_object.R (float), crypto_object.G (float), crypto_object.B (float), crypto_object00.R (float), crypto_object00.G (float), crypto_object00.B (float), crypto_object00.A (float), crypto_object01.R (float), crypto_object01.G (float), crypto_object01.B (float), crypto_object01.A (float), crypto_object02.R (float), crypto_object02.G (float), crypto_object02.B (float), crypto_object02.A (float), diffuse_direct.R (half), diffuse_direct.G (half), diffuse_direct.B (half), diffuse_indirect.R (half), diffuse_indirect.G (half), diffuse_indirect.B (half), emission.R (half), emission.G (half), emission.B (half), specular_direct.R (half), specular_direct.G (half), specular_direct.B (half), specular_indirect.R (half), specular_indirect.G (half), specular_indirect.B (half), sss.R (half), sss.G (half), sss.B (half)
tile size: 64 x 64
arnold/AA_adaptive_threshold: 0.015
arnold/AA_samples: 2
arnold/AA_samples_max: 2
arnold/AA_seed: 344023205
arnold/aovs/coat/filter: "gaussian_filter"
arnold/aovs/coat/filter_width: 2
arnold/aovs/coat/lpe: 1
arnold/aovs/coat/lpe_expression: "C<RS'coat'>.*"
arnold/aovs/coat/source: "coat"
arnold/aovs/crypto_asset/filter: "cryptomatte_filter"
arnold/aovs/crypto_asset/filter_width: 2
arnold/aovs/crypto_asset/source: "crypto_asset"
arnold/aovs/crypto_asset00/filter: "cryptomatte_filter"
arnold/aovs/crypto_asset00/filter_width: 2
arnold/aovs/crypto_asset00/source: "crypto_asset00"
arnold/aovs/crypto_asset01/filter: "cryptomatte_filter"
arnold/aovs/crypto_asset01/filter_width: 2
arnold/aovs/crypto_asset01/source: "crypto_asset01"
arnold/aovs/crypto_asset02/filter: "cryptomatte_filter"
arnold/aovs/crypto_asset02/filter_width: 2
arnold/aovs/crypto_asset02/source: "crypto_asset02"
arnold/aovs/crypto_material/filter: "cryptomatte_filter"
arnold/aovs/crypto_material/filter_width: 2
arnold/aovs/crypto_material/source: "crypto_material"
arnold/aovs/crypto_material00/filter: "cryptomatte_filter"
arnold/aovs/crypto_material00/filter_width: 2
arnold/aovs/crypto_material00/source: "crypto_material00"
arnold/aovs/crypto_material01/filter: "cryptomatte_filter"
arnold/aovs/crypto_material01/filter_width: 2
arnold/aovs/crypto_material01/source: "crypto_material01"
arnold/aovs/crypto_material02/filter: "cryptomatte_filter"
arnold/aovs/crypto_material02/filter_width: 2
arnold/aovs/crypto_material02/source: "crypto_material02"
arnold/aovs/crypto_object/filter: "cryptomatte_filter"
arnold/aovs/crypto_object/filter_width: 2
arnold/aovs/crypto_object/source: "crypto_object"
arnold/aovs/crypto_object00/filter: "cryptomatte_filter"
arnold/aovs/crypto_object00/filter_width: 2
arnold/aovs/crypto_object00/source: "crypto_object00"
arnold/aovs/crypto_object01/filter: "cryptomatte_filter"
arnold/aovs/crypto_object01/filter_width: 2
arnold/aovs/crypto_object01/source: "crypto_object01"
arnold/aovs/crypto_object02/filter: "cryptomatte_filter"
arnold/aovs/crypto_object02/filter_width: 2
arnold/aovs/crypto_object02/source: "crypto_object02"
arnold/aovs/diffuse_direct/filter: "gaussian_filter"
arnold/aovs/diffuse_direct/filter_width: 2
arnold/aovs/diffuse_direct/lpe: 1
arnold/aovs/diffuse_direct/lpe_expression: "C<RD>L"
arnold/aovs/diffuse_direct/source: "diffuse_direct"
arnold/aovs/diffuse_indirect/filter: "gaussian_filter"
arnold/aovs/diffuse_indirect/filter_width: 2
arnold/aovs/diffuse_indirect/lpe: 1
arnold/aovs/diffuse_indirect/lpe_expression: "C<RD>[DSVOB].*"
arnold/aovs/diffuse_indirect/source: "diffuse_indirect"
arnold/aovs/emission/filter: "gaussian_filter"
arnold/aovs/emission/filter_width: 2
arnold/aovs/emission/lpe: 1
arnold/aovs/emission/lpe_expression: "C[LO]"
arnold/aovs/emission/source: "emission"
arnold/aovs/fresnel/filter: "box_filter"
arnold/aovs/fresnel/source: "fresnel"
arnold/aovs/N/filter: "box_filter"
arnold/aovs/N/source: "N"
arnold/aovs/Pref/filter: "box_filter"
arnold/aovs/Pref/source: "Pref"
arnold/aovs/RGBA/filter: "gaussian_filter"
arnold/aovs/RGBA/filter_width: 2
arnold/aovs/RGBA/lpe: 1
arnold/aovs/RGBA/lpe_expression: "C.*"
arnold/aovs/RGBA/source: "RGBA"
arnold/aovs/specular_direct/filter: "gaussian_filter"
arnold/aovs/specular_direct/filter_width: 2
arnold/aovs/specular_direct/lpe: 1
arnold/aovs/specular_direct/lpe_expression: "C<RS[^'coat''sheen']>L"
arnold/aovs/specular_direct/source: "specular_direct"
arnold/aovs/specular_indirect/filter: "gaussian_filter"
arnold/aovs/specular_indirect/filter_width: 2
arnold/aovs/specular_indirect/lpe: 1
arnold/aovs/specular_indirect/lpe_expression: "C<RS[^'coat''sheen']>[DSVOB].*"
arnold/aovs/specular_indirect/source: "specular_indirect"
arnold/aovs/sss/filter: "gaussian_filter"
arnold/aovs/sss/filter_width: 2
arnold/aovs/sss/lpe: 1
arnold/aovs/sss/lpe_expression: "C<TD>.*"
arnold/aovs/sss/source: "sss"
arnold/aovs/Z/filter: "box_filter"
arnold/aovs/Z/source: "Z"
arnold/auto_transparency_depth: 10
arnold/bounds_max_x: 2995
arnold/bounds_max_y: 2057
arnold/bounds_min_x: 0
arnold/bounds_min_y: 0
arnold/camera/far_clip: 1000
arnold/camera/near_clip: 0.1
arnold/color_manager: "color_manager_ocio"
arnold/color_space: "ACEScg"
arnold/diffuse_depth: 1
arnold/diffuse_samples: 2
arnold/fis_filter: "gaussian"
arnold/fis_filter_width: 2
arnold/fps: 24
arnold/frame: 0
arnold/host/hw: "1 x AMD Ryzen 9 9950X 16-Core Processor (16 cores, 32 logical) with 130710MB"
arnold/host/name: "Maqina-RTX-09"
arnold/host/os: "Windows 10 (version 10.0, build 26100)"
arnold/license_state: "valid"
arnold/specular_depth: 1
arnold/specular_samples: 2
arnold/sss_samples: 3
arnold/stats/date: "Tue Apr 1 23:27:34 2025"
arnold/stats/geo/curve_segments: 8.65504e+07
arnold/stats/geo/triangles: 1.94083e+06
arnold/stats/memory/peak: 26679
arnold/stats/memory/start: 408.539
arnold/stats/rays/all/pixel: 147.915
arnold/stats/rays/all/total: 9.12007e+08
arnold/stats/rays/camera/pixel: 4.25781
arnold/stats/rays/camera/total: 2.62526e+07
arnold/stats/time/render: 62.2762
arnold/stats/time/setup: 34.9591
arnold/texture_max_memory_MB: 4096
arnold/threads: 31
arnold/total_depth: 10
arnold/transmission_depth: 8
arnold/transmission_samples: 2
arnold/version: "Arnold 7.4.1.0 [cc3e15d4] windows x86_64 clang-15.0.7 oiio-2.6.3 osl-1.13.3 vdb-11.0.0 adlsdk-9.5.0.53 clmhub-3.1.1.43 rlm-14.2.5 optix-8.0.0 2025/03/25 22:00:52"
arnold/volume_depth: 0
arnold/volume_samples: 2
CameraFilmApertureHorizontal: 1
CameraFilmApertureVertical: 0.686916
CameraFocalLength: 1.25045
CameraFov: 43.5887
compression: "zip"
cryptomatte/28322e9/conversion: "uint32_to_float32"
cryptomatte/28322e9/hash: "MurmurHash3_32"
cryptomatte/28322e9/manifest: "{"\/character\/char_toy_bear\/geo\/body_GES":"0c1755c6","\/character\/prop_toy_robot\/geo\/Leg_L_GRP\/Foot_L_GRP":"ba7b541c","\/tracking_data\/standin_geo\/floor\/object0":"60863094","\/ibl_reference\/geo":"d6136e07","\/character\/char_toy_bear\/geo\/screen_content_GES":"e635431b","\/character\/prop_toy_robot\/geo\/arm_L_GRP\/lower_arm_L_GRP":"405d1859","\/tracking_data\/standin_geo\/modelTable_var02_bear_si_Geo_shoot02\/root\/si_Geo_shoot02\/geo\/table_02_Geo_shoot02\/geo\/table_bear_GRP\/plateau_GES\/plateau_GESShape":"942f71c3","\/character\/char_slimpie\/geo\/knob_GRP":"1aeefe43","\/tracking_data\/standin_geo\/modelTable_var02_bear_si_Geo_shoot02\/root\/si_Geo_shoot02\/geo\/table_02_Geo_shoot02\/geo\/table_bear_GRP\/stand_GES\/stand_GESShape":"b92ec3b5","\/character\/char_slimpie\/geo":"836fefe9","\/character\/char_toy_bear\/geo\/R_arm_GES":"eadaa9f9","\/character\/prop_toy_robot\/geo\/head_GRP":"01fe1f3a","\/character\/char_slimpie\/geo\/bottom_GRP":"5891ac94","\/character\/char_toy_bear\/geo\/screen_GES":"150214e7","\/character\/prop_toy_robot\/geo":"b8488925","\/character\/char_toy_bear\/geo\/bowtie_GES":"71e3e13a","\/character\/prop_toy_robot\/geo\/Leg_R_GRP":"95ef728e","\/character\/prop_toy_robot\/geo\/Leg_R_GRP\/Foot_R_GRP":"6322670f","\/character\/prop_toy_robot\/geo\/Leg_L_GRP":"eae7695f","\/character\/prop_toy_robot\/geo\/arm_L_GRP":"b25c21ed","\/character\/prop_toy_robot\/geo\/arm_R_GRP":"502906f5","\/character\/char_toy_bear\/geo\/eyes_GES":"b552ae8d","\/character\/prop_toy_robot\/geo\/arm_R_GRP\/lower_arm_R_GRP":"b2774a0b","\/character\/char_toy_bear\/geo\/mouth_GES":"d80ebb77","\/character\/char_toy_bear\/geo\/R_leg_GES":"21ff5e23","\/character\/char_toy_bear\/geo\/head_GES":"fee96276","\/character\/char_toy_bear\/geo\/ears_GES":"4690de75","\/character\/char_toy_bear\/geo\/L_arm_GES":"c1324b6a","\/character\/char_toy_bear\/geo\/L_leg_GES":"8c47a8a3","\/character\/char_toy_bear\/groom":"f42842ac"}"
cryptomatte/28322e9/name: "crypto_asset"
cryptomatte/bda530a/conversion: "uint32_to_float32"
cryptomatte/bda530a/hash: "MurmurHash3_32"
cryptomatte/bda530a/manifest: "{"inside_MTL":"55ce85ef","screen":"aa0ac5dc","flat1":"3654a9dc","glass":"c17feb92","glass_MTL":"ac128a30","bottom_MTL":"c4f1e999","metal_MTL":"cfe4893e","grid_MTL":"15db812d","robot":"5527a8c0","eyes":"3c4b7c32","standard_surface1":"0105d8b5","standard_hair1":"2ab1a9c2","mtlxstandard_surface1":"75baba89"}"
cryptomatte/bda530a/name: "crypto_material"
cryptomatte/f834d0a/conversion: "uint32_to_float32"
cryptomatte/f834d0a/hash: "MurmurHash3_32"
cryptomatte/f834d0a/manifest: "{"bottom_GES":"aa0490fc","Leg_1_R_GES":"4c203bc5","Battery_Cover_GES":"750f9523","mesh":"6e4fa4ca","glass_GES":"7b37169c","ring_GES":"1304f4e7","iron_ring_GES":"2ff0cc0c","gauze_GES":"11c6b11a","inside_GES":"6f2ed9e9","edges_GES":"cde92053","Hand_2_L_Screw_GES":"8d90284d","Head_Part_1_GES":"02911e82","sun_GES":"10d032c8","Torso_GES":"86600e7a","Torso_Screw_GES":"83618a0c","Hand_1_R_GES":"e87e2e36","Glass_Frame_GES":"011881d0","Head_Part_3_GES":"1a0ed5af","Head_Screws_GES":"1248f152","Battery_Cover_Screw_GES":"8805c3d6","bowtie_GESShape":"dc4c0117","Leg_2_R_Screw_GES":"389a3a2a","Head_Part_2_GES":"b532b23d","Head_GES":"4fb77ec7","Glass_GES":"987d699e","Hand_3_L_GES":"e34a71f6","On_Button_GES":"618cf0b9","body_GESShape":"25b88caf","Neck_GES":"2bc65cdb","Leg_2_L_001_GES":"53e018ab","Leg_1_L_GES":"7d0f8166","Leg_2_L_Screw_GES":"793ad8a8","ears_GESShape":"16c1ac47","R_arm_GESShape":"be9c3d65","Leg_2_L_GES":"f3b89228","Hand_1_L_GES":"5c23e33c","Hand_2_L_GES":"3b2904c8","Hand_3_R_GES":"c37e91c9","Hand_2_R_GES":"0c618d5f","Hand_2_R_Screw_GES":"4b242b9b","mouth_GESShape":"da3d7f9b","eyes_GESShape":"90a3f8b0","R_leg_GESShape":"6179a9d9","head_GESShape":"93df4f06","L_arm_GESShape":"7f268699","L_leg_GESShape":"12b7c567","screen_GESShape":"f6a369a2","screen_content_GESShape":"db3f30d4","hair":"65edc56d","hair_short":"9c921132","chrome_ball":"fb15e188","grey_ball":"be20df01","macbeth":"c9d74198"}"
cryptomatte/f834d0a/name: "crypto_object"
DateTime: "2025:04:01 23:27:34"
PixelAspectRatio: 1
screenWindowCenter: 0, 0
screenWindowWidth: 1
worldToCamera: -0.997227, -0.00747155, -0.0740386, 0, 0.00675685, 0.981745, -0.19008, 0, -0.0741072, 0.190054, 0.978973, 0, 10.2405, -31.8519, 57.6854, 1
worldToScreen: -2.49396, -0.0272021, -0.074046, -0.0740386, 0.0168982, 3.5743, -0.190099, -0.19008, -0.185334, 0.691938, 0.979071, 0.978973, 25.6105, -115.965, 57.5912, 57.6854
oiio:ColorSpace: "Linear"
oiio:subimages: 1
Days : 0
Hours : 0
Minutes : 0
Seconds : 0
Milliseconds : 172
Ticks : 1725042
TotalDays : 1.99657638888889E-06
TotalHours : 4.79178333333333E-05
TotalMinutes : 0.00287507
TotalSeconds : 0.1725042
TotalMilliseconds : 172.5042
==================
>> oiiotool -v input.exr -o output.exr
Reading input.exr
Writing output.exr
Days : 0
Hours : 0
Minutes : 0
Seconds : 30
Milliseconds : 791
Ticks : 307915802
TotalDays : 0.000356384030092593
TotalHours : 0.00855321672222222
TotalMinutes : 0.513193003333333
TotalSeconds : 30.7915802
TotalMilliseconds : 30791.5802
==================
>> oiiotool -v input.exr -o output.png
Reading input.exr
oiiotool WARNING: -o : Can't save 78 channels to png... saving only R,G,B,A
Writing output.png
Days : 0
Hours : 0
Minutes : 0
Seconds : 24
Milliseconds : 307
Ticks : 243079233
TotalDays : 0.000281341704861111
TotalHours : 0.00675220091666667
TotalMinutes : 0.405132055
TotalSeconds : 24.3079233
TotalMilliseconds : 24307.9233
==================
>> oiiotool --runstats -v input.exr -o output.png
Reading input.exr
oiiotool WARNING: -o : Can't save 78 channels to png... saving only R,G,B,A
Writing output.png
Threads: 32
oiiotool runtime statistics:
Total time: 24.32s
-i : 354.14
-o : 1.57
Peak memory: 2.2 GB
Current memory: 2.1 GB
OpenImageIO ImageCache statistics (shared) ver 2.3.10
Options: max_memory_MB=4096.0 max_open_files=100 autotile=0
autoscanline=0 automip=0 forcefloat=1 accept_untiled=1
accept_unmipped=1 deduplicate=1 unassociatedalpha=0
failure_retries=0
Images : 1 unique
ImageInputs : 2 created, 1 current, 1 peak
Total pixel data size of all images referenced : 1.8 GB
Total actual file size of all images referenced : 53.9 MB
Pixel data read : 1.8 GB
File I/O time : 5m 54.1s (11.1s average per thread, for 32 threads)
File open time only : 0.0s
ImageInput mutex locking time : 0.2s
Tiles: 2302 created, 1551 current, 1551 peak
total tile requests : 96726
micro-cache misses : 96726 (100%)
main cache misses : 2302 (2.37992%)
redundant reads: 0 tiles, 0 B
Peak cache memory : 1.8 GB
Image file statistics:
opens tiles MB read --redundant-- I/O time res File
1 2 1551 1890.3 5m 54.1s 2996x2058x78.f32 input.exr
Tot: 2 1551 1890.3 ( 0 0.0) 5m 54.1s
Broken or invalid files: 0
Days : 0
Hours : 0
Minutes : 0
Seconds : 24
Milliseconds : 787
Ticks : 247876838
TotalDays : 0.000286894488425926
TotalHours : 0.00688546772222222
TotalMinutes : 0.413128063333333
TotalSeconds : 24.7876838
TotalMilliseconds : 24787.6838
==================
>> oiiotool -v -i:ch=R,G,B,A input.exr -ch R=R,G=G,B=B,A=A -o output.png
Reading input.exr
Writing output.png
Days : 0
Hours : 0
Minutes : 0
Seconds : 33
Milliseconds : 677
Ticks : 336773497
TotalDays : 0.000389784140046296
TotalHours : 0.00935481936111111
TotalMinutes : 0.561289161666667
TotalSeconds : 33.6773497
TotalMilliseconds : 33677.3497
==================
>> oiiotool -v -i:ch=R,G,B,A input.exr -o output.png
Reading input.exr
Writing output.png
Days : 0
Hours : 0
Minutes : 0
Seconds : 32
Milliseconds : 247
Ticks : 322474215
TotalDays : 0.000373234045138889
TotalHours : 0.00895761708333333
TotalMinutes : 0.537457025
TotalSeconds : 32.2474215
TotalMilliseconds : 32247.4215
==================
>> oiiotool -v input.exr -ch R=R,G=G,B=B,A=A -o output.png
Reading input.exr
Writing output.png
Days : 0
Hours : 0
Minutes : 0
Seconds : 25
Milliseconds : 69
Ticks : 250695669
TotalDays : 0.000290157024305556
TotalHours : 0.00696376858333333
TotalMinutes : 0.417826115
TotalSeconds : 25.0695669
TotalMilliseconds : 25069.5669
==================
>> oiiotool -i:ch=R,G,B,A input.exr --cut 1x1 -o out.exr
Days : 0
Hours : 0
Minutes : 0
Seconds : 28
Milliseconds : 679
Ticks : 286793718
TotalDays : 0.000331937173611111
TotalHours : 0.00796649216666667
TotalMinutes : 0.47798953
TotalSeconds : 28.6793718
TotalMilliseconds : 28679.3718
==================
>> oiiotool --buildinfo
OIIO 3.1.1.0dev | unknown arch?
Build compiler: MSVS 1943 | C++17/199711
HW features enabled at build: sse2
No CUDA support (disabled / unavailable at build time)
Dependencies: BZip2 NONE, DCMTK NONE, expat 2.7.1, FFmpeg NONE, fmt 10.2.1, Freetype 2.13.2, GIF NONE, Imath
3.2.0, JPEG 80, JXL NONE, Libheif NONE, libjpeg-turbo 3.0.4, LibRaw NONE, libuhdr, minizip-ng 4.0.7, OpenColorIO
2.4.1, OpenCV NONE, OpenEXR 3.4.0, OpenJPEG NONE, PNG 1.6.47, Ptex NONE, Ptex NONE, pystring, Robinmap 1.4.0, TBB
NONE, TIFF 4.6.0, WebP 1.4.0, yaml-cpp 0.8.0, ZLIB 1.3.1, ZLIB 1.3.1
Days : 0
Hours : 0
Minutes : 0
Seconds : 0
Milliseconds : 240
Ticks : 2408024
TotalDays : 2.78706481481481E-06
TotalHours : 6.68895555555556E-05
TotalMinutes : 0.00401337333333333
TotalSeconds : 0.2408024
TotalMilliseconds : 240.8024
==================
>> oiiotool -info -v input.exr
Reading input.exr
input.exr : 2996 x 2058, 78 channel, half/half/half/half/float/float/float/float/float/float/float/float/half/half/half/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/half/half/half/half/half/half/half/half/half/half/half/half/half/half/half/half/half/half openexr
channel list: R (half), G (half), B (half), A (half), Z (float), fresnel (float), N.X (float), N.Y (float), N.Z (float), Pref.X (float), Pref.Y (float), Pref.Z (float), coat.R (half), coat.G (half), coat.B (half), crypto_asset.R (float), crypto_asset.G (float), crypto_asset.B (float), crypto_asset00.R (float), crypto_asset00.G (float), crypto_asset00.B (float), crypto_asset00.A (float), crypto_asset01.R (float), crypto_asset01.G (float), crypto_asset01.B (float), crypto_asset01.A (float), crypto_asset02.R (float), crypto_asset02.G (float), crypto_asset02.B (float), crypto_asset02.A (float), crypto_material.R (float), crypto_material.G (float), crypto_material.B (float), crypto_material00.R (float), crypto_material00.G (float), crypto_material00.B (float), crypto_material00.A (float), crypto_material01.R (float), crypto_material01.G (float), crypto_material01.B (float), crypto_material01.A (float), crypto_material02.R (float), crypto_material02.G (float), crypto_material02.B (float), crypto_material02.A (float), crypto_object.R (float), crypto_object.G (float), crypto_object.B (float), crypto_object00.R (float), crypto_object00.G (float), crypto_object00.B (float), crypto_object00.A (float), crypto_object01.R (float), crypto_object01.G (float), crypto_object01.B (float), crypto_object01.A (float), crypto_object02.R (float), crypto_object02.G (float), crypto_object02.B (float), crypto_object02.A (float), diffuse_direct.R (half), diffuse_direct.G (half), diffuse_direct.B (half), diffuse_indirect.R (half), diffuse_indirect.G (half), diffuse_indirect.B (half), emission.R (half), emission.G (half), emission.B (half), specular_direct.R (half), specular_direct.G (half), specular_direct.B (half), specular_indirect.R (half), specular_indirect.G (half), specular_indirect.B (half), sss.R (half), sss.G (half), sss.B (half)
tile size: 64 x 64
arnold/AA_adaptive_threshold: 0.015
arnold/AA_samples: 2
arnold/AA_samples_max: 2
arnold/AA_seed: 344023205
arnold/aovs/coat/filter: "gaussian_filter"
arnold/aovs/coat/filter_width: 2
arnold/aovs/coat/lpe: 1
arnold/aovs/coat/lpe_expression: "C<RS'coat'>.*"
arnold/aovs/coat/source: "coat"
arnold/aovs/crypto_asset/filter: "cryptomatte_filter"
arnold/aovs/crypto_asset/filter_width: 2
arnold/aovs/crypto_asset/source: "crypto_asset"
arnold/aovs/crypto_asset00/filter: "cryptomatte_filter"
arnold/aovs/crypto_asset00/filter_width: 2
arnold/aovs/crypto_asset00/source: "crypto_asset00"
arnold/aovs/crypto_asset01/filter: "cryptomatte_filter"
arnold/aovs/crypto_asset01/filter_width: 2
arnold/aovs/crypto_asset01/source: "crypto_asset01"
arnold/aovs/crypto_asset02/filter: "cryptomatte_filter"
arnold/aovs/crypto_asset02/filter_width: 2
arnold/aovs/crypto_asset02/source: "crypto_asset02"
arnold/aovs/crypto_material/filter: "cryptomatte_filter"
arnold/aovs/crypto_material/filter_width: 2
arnold/aovs/crypto_material/source: "crypto_material"
arnold/aovs/crypto_material00/filter: "cryptomatte_filter"
arnold/aovs/crypto_material00/filter_width: 2
arnold/aovs/crypto_material00/source: "crypto_material00"
arnold/aovs/crypto_material01/filter: "cryptomatte_filter"
arnold/aovs/crypto_material01/filter_width: 2
arnold/aovs/crypto_material01/source: "crypto_material01"
arnold/aovs/crypto_material02/filter: "cryptomatte_filter"
arnold/aovs/crypto_material02/filter_width: 2
arnold/aovs/crypto_material02/source: "crypto_material02"
arnold/aovs/crypto_object/filter: "cryptomatte_filter"
arnold/aovs/crypto_object/filter_width: 2
arnold/aovs/crypto_object/source: "crypto_object"
arnold/aovs/crypto_object00/filter: "cryptomatte_filter"
arnold/aovs/crypto_object00/filter_width: 2
arnold/aovs/crypto_object00/source: "crypto_object00"
arnold/aovs/crypto_object01/filter: "cryptomatte_filter"
arnold/aovs/crypto_object01/filter_width: 2
arnold/aovs/crypto_object01/source: "crypto_object01"
arnold/aovs/crypto_object02/filter: "cryptomatte_filter"
arnold/aovs/crypto_object02/filter_width: 2
arnold/aovs/crypto_object02/source: "crypto_object02"
arnold/aovs/diffuse_direct/filter: "gaussian_filter"
arnold/aovs/diffuse_direct/filter_width: 2
arnold/aovs/diffuse_direct/lpe: 1
arnold/aovs/diffuse_direct/lpe_expression: "C<RD>L"
arnold/aovs/diffuse_direct/source: "diffuse_direct"
arnold/aovs/diffuse_indirect/filter: "gaussian_filter"
arnold/aovs/diffuse_indirect/filter_width: 2
arnold/aovs/diffuse_indirect/lpe: 1
arnold/aovs/diffuse_indirect/lpe_expression: "C<RD>[DSVOB].*"
arnold/aovs/diffuse_indirect/source: "diffuse_indirect"
arnold/aovs/emission/filter: "gaussian_filter"
arnold/aovs/emission/filter_width: 2
arnold/aovs/emission/lpe: 1
arnold/aovs/emission/lpe_expression: "C[LO]"
arnold/aovs/emission/source: "emission"
arnold/aovs/fresnel/filter: "box_filter"
arnold/aovs/fresnel/source: "fresnel"
arnold/aovs/N/filter: "box_filter"
arnold/aovs/N/source: "N"
arnold/aovs/Pref/filter: "box_filter"
arnold/aovs/Pref/source: "Pref"
arnold/aovs/RGBA/filter: "gaussian_filter"
arnold/aovs/RGBA/filter_width: 2
arnold/aovs/RGBA/lpe: 1
arnold/aovs/RGBA/lpe_expression: "C.*"
arnold/aovs/RGBA/source: "RGBA"
arnold/aovs/specular_direct/filter: "gaussian_filter"
arnold/aovs/specular_direct/filter_width: 2
arnold/aovs/specular_direct/lpe: 1
arnold/aovs/specular_direct/lpe_expression: "C<RS[^'coat''sheen']>L"
arnold/aovs/specular_direct/source: "specular_direct"
arnold/aovs/specular_indirect/filter: "gaussian_filter"
arnold/aovs/specular_indirect/filter_width: 2
arnold/aovs/specular_indirect/lpe: 1
arnold/aovs/specular_indirect/lpe_expression: "C<RS[^'coat''sheen']>[DSVOB].*"
arnold/aovs/specular_indirect/source: "specular_indirect"
arnold/aovs/sss/filter: "gaussian_filter"
arnold/aovs/sss/filter_width: 2
arnold/aovs/sss/lpe: 1
arnold/aovs/sss/lpe_expression: "C<TD>.*"
arnold/aovs/sss/source: "sss"
arnold/aovs/Z/filter: "box_filter"
arnold/aovs/Z/source: "Z"
arnold/auto_transparency_depth: 10
arnold/bounds_max_x: 2995
arnold/bounds_max_y: 2057
arnold/bounds_min_x: 0
arnold/bounds_min_y: 0
arnold/camera/far_clip: 1000
arnold/camera/near_clip: 0.1
arnold/color_manager: "color_manager_ocio"
arnold/color_space: "ACEScg"
arnold/diffuse_depth: 1
arnold/diffuse_samples: 2
arnold/fis_filter: "gaussian"
arnold/fis_filter_width: 2
arnold/fps: 24
arnold/frame: 0
arnold/host/hw: "1 x AMD Ryzen 9 9950X 16-Core Processor (16 cores, 32 logical) with 130710MB"
arnold/host/name: "Maqina-RTX-09"
arnold/host/os: "Windows 10 (version 10.0, build 26100)"
arnold/license_state: "valid"
arnold/specular_depth: 1
arnold/specular_samples: 2
arnold/sss_samples: 3
arnold/stats/date: "Tue Apr 1 23:27:34 2025"
arnold/stats/geo/curve_segments: 8.65504e+07
arnold/stats/geo/triangles: 1.94083e+06
arnold/stats/memory/peak: 26679
arnold/stats/memory/start: 408.539
arnold/stats/rays/all/pixel: 147.915
arnold/stats/rays/all/total: 9.12007e+08
arnold/stats/rays/camera/pixel: 4.25781
arnold/stats/rays/camera/total: 2.62526e+07
arnold/stats/time/render: 62.2762
arnold/stats/time/setup: 34.9591
arnold/texture_max_memory_MB: 4096
arnold/threads: 31
arnold/total_depth: 10
arnold/transmission_depth: 8
arnold/transmission_samples: 2
arnold/version: "Arnold 7.4.1.0 [cc3e15d4] windows x86_64 clang-15.0.7 oiio-2.6.3 osl-1.13.3 vdb-11.0.0 adlsdk-9.5.0.53 clmhub-3.1.1.43 rlm-14.2.5 optix-8.0.0 2025/03/25 22:00:52"
arnold/volume_depth: 0
arnold/volume_samples: 2
CameraFilmApertureHorizontal: 1
CameraFilmApertureVertical: 0.686916
CameraFocalLength: 1.25045
CameraFov: 43.5887
compression: "zip"
cryptomatte/28322e9/conversion: "uint32_to_float32"
cryptomatte/28322e9/hash: "MurmurHash3_32"
cryptomatte/28322e9/manifest: "{"\/character\/char_toy_bear\/geo\/body_GES":"0c1755c6","\/character\/prop_toy_robot\/geo\/Leg_L_GRP\/Foot_L_GRP":"ba7b541c","\/tracking_data\/standin_geo\/floor\/object0":"60863094","\/ibl_reference\/geo":"d6136e07","\/character\/char_toy_bear\/geo\/screen_content_GES":"e635431b","\/character\/prop_toy_robot\/geo\/arm_L_GRP\/lower_arm_L_GRP":"405d1859","\/tracking_data\/standin_geo\/modelTable_var02_bear_si_Geo_shoot02\/root\/si_Geo_shoot02\/geo\/table_02_Geo_shoot02\/geo\/table_bear_GRP\/plateau_GES\/plateau_GESShape":"942f71c3","\/character\/char_slimpie\/geo\/knob_GRP":"1aeefe43","\/tracking_data\/standin_geo\/modelTable_var02_bear_si_Geo_shoot02\/root\/si_Geo_shoot02\/geo\/table_02_Geo_shoot02\/geo\/table_bear_GRP\/stand_GES\/stand_GESShape":"b92ec3b5","\/character\/char_slimpie\/geo":"836fefe9","\/character\/char_toy_bear\/geo\/R_arm_GES":"eadaa9f9","\/character\/prop_toy_robot\/geo\/head_GRP":"01fe1f3a","\/character\/char_slimpie\/geo\/bottom_GRP":"5891ac94","\/character\/char_toy_bear\/geo\/screen_GES":"150214e7","\/character\/prop_toy_robot\/geo":"b8488925","\/character\/char_toy_bear\/geo\/bowtie_GES":"71e3e13a","\/character\/prop_toy_robot\/geo\/Leg_R_GRP":"95ef728e","\/character\/prop_toy_robot\/geo\/Leg_R_GRP\/Foot_R_GRP":"6322670f","\/character\/prop_toy_robot\/geo\/Leg_L_GRP":"eae7695f","\/character\/prop_toy_robot\/geo\/arm_L_GRP":"b25c21ed","\/character\/prop_toy_robot\/geo\/arm_R_GRP":"502906f5","\/character\/char_toy_bear\/geo\/eyes_GES":"b552ae8d","\/character\/prop_toy_robot\/geo\/arm_R_GRP\/lower_arm_R_GRP":"b2774a0b","\/character\/char_toy_bear\/geo\/mouth_GES":"d80ebb77","\/character\/char_toy_bear\/geo\/R_leg_GES":"21ff5e23","\/character\/char_toy_bear\/geo\/head_GES":"fee96276","\/character\/char_toy_bear\/geo\/ears_GES":"4690de75","\/character\/char_toy_bear\/geo\/L_arm_GES":"c1324b6a","\/character\/char_toy_bear\/geo\/L_leg_GES":"8c47a8a3","\/character\/char_toy_bear\/groom":"f42842ac"}"
cryptomatte/28322e9/name: "crypto_asset"
cryptomatte/bda530a/conversion: "uint32_to_float32"
cryptomatte/bda530a/hash: "MurmurHash3_32"
cryptomatte/bda530a/manifest: "{"inside_MTL":"55ce85ef","screen":"aa0ac5dc","flat1":"3654a9dc","glass":"c17feb92","glass_MTL":"ac128a30","bottom_MTL":"c4f1e999","metal_MTL":"cfe4893e","grid_MTL":"15db812d","robot":"5527a8c0","eyes":"3c4b7c32","standard_surface1":"0105d8b5","standard_hair1":"2ab1a9c2","mtlxstandard_surface1":"75baba89"}"
cryptomatte/bda530a/name: "crypto_material"
cryptomatte/f834d0a/conversion: "uint32_to_float32"
cryptomatte/f834d0a/hash: "MurmurHash3_32"
cryptomatte/f834d0a/manifest: "{"bottom_GES":"aa0490fc","Leg_1_R_GES":"4c203bc5","Battery_Cover_GES":"750f9523","mesh":"6e4fa4ca","glass_GES":"7b37169c","ring_GES":"1304f4e7","iron_ring_GES":"2ff0cc0c","gauze_GES":"11c6b11a","inside_GES":"6f2ed9e9","edges_GES":"cde92053","Hand_2_L_Screw_GES":"8d90284d","Head_Part_1_GES":"02911e82","sun_GES":"10d032c8","Torso_GES":"86600e7a","Torso_Screw_GES":"83618a0c","Hand_1_R_GES":"e87e2e36","Glass_Frame_GES":"011881d0","Head_Part_3_GES":"1a0ed5af","Head_Screws_GES":"1248f152","Battery_Cover_Screw_GES":"8805c3d6","bowtie_GESShape":"dc4c0117","Leg_2_R_Screw_GES":"389a3a2a","Head_Part_2_GES":"b532b23d","Head_GES":"4fb77ec7","Glass_GES":"987d699e","Hand_3_L_GES":"e34a71f6","On_Button_GES":"618cf0b9","body_GESShape":"25b88caf","Neck_GES":"2bc65cdb","Leg_2_L_001_GES":"53e018ab","Leg_1_L_GES":"7d0f8166","Leg_2_L_Screw_GES":"793ad8a8","ears_GESShape":"16c1ac47","R_arm_GESShape":"be9c3d65","Leg_2_L_GES":"f3b89228","Hand_1_L_GES":"5c23e33c","Hand_2_L_GES":"3b2904c8","Hand_3_R_GES":"c37e91c9","Hand_2_R_GES":"0c618d5f","Hand_2_R_Screw_GES":"4b242b9b","mouth_GESShape":"da3d7f9b","eyes_GESShape":"90a3f8b0","R_leg_GESShape":"6179a9d9","head_GESShape":"93df4f06","L_arm_GESShape":"7f268699","L_leg_GESShape":"12b7c567","screen_GESShape":"f6a369a2","screen_content_GESShape":"db3f30d4","hair":"65edc56d","hair_short":"9c921132","chrome_ball":"fb15e188","grey_ball":"be20df01","macbeth":"c9d74198"}"
cryptomatte/f834d0a/name: "crypto_object"
DateTime: "2025:04:01 23:27:34"
PixelAspectRatio: 1
screenWindowCenter: 0, 0
screenWindowWidth: 1
worldToCamera: -0.997227, -0.00747155, -0.0740386, 0, 0.00675685, 0.981745, -0.19008, 0, -0.0741072, 0.190054, 0.978973, 0, 10.2405, -31.8519, 57.6854, 1
worldToScreen: -2.49396, -0.0272021, -0.074046, -0.0740386, 0.0168982, 3.5743, -0.190099, -0.19008, -0.185334, 0.691938, 0.979071, 0.978973, 25.6105, -115.965, 57.5912, 57.6854
oiio:ColorSpace: "lin_rec709"
oiio:subimages: 1
openexr:lineOrder: "randomY"
Days : 0
Hours : 0
Minutes : 0
Seconds : 0
Milliseconds : 320
Ticks : 3201665
TotalDays : 3.70563078703704E-06
TotalHours : 8.89351388888889E-05
TotalMinutes : 0.00533610833333333
TotalSeconds : 0.3201665
TotalMilliseconds : 320.1665
==================
>> oiiotool -v input.exr -o output.exr
Reading input.exr
Writing output.exr
Days : 0
Hours : 0
Minutes : 1
Seconds : 19
Milliseconds : 622
Ticks : 796224082
TotalDays : 0.000921555650462963
TotalHours : 0.0221173356111111
TotalMinutes : 1.32704013666667
TotalSeconds : 79.6224082
TotalMilliseconds : 79622.4082
==================
>> oiiotool -v input.exr -o output.png
Reading input.exr
oiiotool WARNING: -o : Can't save 78 channels to png... saving only channels R,G,B,A
Writing output.png
Days : 0
Hours : 0
Minutes : 0
Seconds : 18
Milliseconds : 631
Ticks : 186310361
TotalDays : 0.000215636991898148
TotalHours : 0.00517528780555556
TotalMinutes : 0.310517268333333
TotalSeconds : 18.6310361
TotalMilliseconds : 18631.0361
==================
>> oiiotool --runstats -v input.exr -o output.png
Reading input.exr
oiiotool WARNING: -o : Can't save 78 channels to png... saving only channels R,G,B,A
Writing output.png
Threads: 32
oiiotool runtime statistics:
Total time: 18.22s
-i : 268.44
-o : 0.84
Peak memory: 2.1 GB
Current memory: 1.9 GB
ImageBuf local memory: current 0 B, peak 94.1 MB
ImageBuf direct read time: 0.00s, open time 0.00s
OpenImageIO ImageCache statistics (0000022338AFE040) ver 3.1.1.0dev
Options: max_memory_MB=4096.0 max_open_files=100 autotile=0
autoscanline=false automip=false forcefloat=true
accept_untiled=true accept_unmipped=true deduplicate=true
unassociatedalpha=false failure_retries=0 openexr:core=1
Images : 1 unique
ImageInputs : 2 created, 1 current, 1 peak
Total pixel data size of all images referenced : 1.8 GB
Total actual file size of all images referenced : 53.9 MB
Pixel data read : 1.8 GB
File I/O time : 4m 28.4s (8.4s average per thread, for 32 threads)
File open time only : 0.1s
ImageInput mutex locking time : 1.6s
Tiles: 2403 created, 1551 current, 1551 peak
total tile requests : 96726
micro-cache misses : 96726 (100.0%)
main cache misses : 2403 (2.5%)
redundant reads: 0 tiles, 0 B
Peak cache memory : 1.8 GB
Cache : 1.8 GB
Strings : 0 B, count : 2
Thread info : 11 KB, count : 32
Fingerprints : 0 B, count : 0
Tiles : 1.8 GB, count : 1551
Files : 10 KB, count : 1
Format 'openexr' : 10 KB, count : 1
Image inputs : 4 KB, count : 1
Image specs : 8 B, count : 1
Subimages : 5 KB, count : 1
Level infos : 4 KB, count : 1
Image specs : 4 KB, count : 2
Members : 320 B
Extra attributes : 24 B
Channel names : 4 KB
Image file statistics:
opens tiles MB read --redundant-- I/O time res File
1 2 1551 1890.3 4m 28.4s 2996x2058x78.f32 input.exr
Tot: 2 1551 1890.3 ( 0 0.0) 4m 28.4s
Broken or invalid files: 0
Days : 0
Hours : 0
Minutes : 0
Seconds : 18
Milliseconds : 586
Ticks : 185863079
TotalDays : 0.000215119304398148
TotalHours : 0.00516286330555555
TotalMinutes : 0.309771798333333
TotalSeconds : 18.5863079
TotalMilliseconds : 18586.3079
==================
>> oiiotool -v -i:ch=R,G,B,A input.exr -ch R=R,G=G,B=B,A=A -o output.png
Reading input.exr
Writing output.png
Days : 0
Hours : 0
Minutes : 0
Seconds : 19
Milliseconds : 952
Ticks : 199522977
TotalDays : 0.000230929371527778
TotalHours : 0.00554230491666667
TotalMinutes : 0.332538295
TotalSeconds : 19.9522977
TotalMilliseconds : 19952.2977
==================
>> oiiotool -v -i:ch=R,G,B,A input.exr -o output.png
Reading input.exr
Writing output.png
Days : 0
Hours : 0
Minutes : 0
Seconds : 19
Milliseconds : 881
Ticks : 198812314
TotalDays : 0.000230106844907407
TotalHours : 0.00552256427777778
TotalMinutes : 0.331353856666667
TotalSeconds : 19.8812314
TotalMilliseconds : 19881.2314
==================
>> oiiotool -v input.exr -ch R=R,G=G,B=B,A=A -o output.png
Reading input.exr
Writing output.png
Days : 0
Hours : 0
Minutes : 0
Seconds : 19
Milliseconds : 69
Ticks : 190699690
TotalDays : 0.000220717233796296
TotalHours : 0.00529721361111111
TotalMinutes : 0.317832816666667
TotalSeconds : 19.069969
TotalMilliseconds : 19069.969
==================
>> oiiotool -i:ch=R,G,B,A input.exr --cut 1x1 -o out.exr
Days : 0
Hours : 0
Minutes : 0
Seconds : 19
Milliseconds : 267
Ticks : 192675217
TotalDays : 0.00022300372337963
TotalHours : 0.00535208936111111
TotalMinutes : 0.321125361666667
TotalSeconds : 19.2675217
TotalMilliseconds : 19267.5217
==================
> oiiotool --buildinfo
OIIO 3.0.5.0 | unknown arch?
Build compiler: MSVS 1943 | C++17/199711
HW features enabled at build: sse2
No CUDA support (disabled / unavailable at build time)
Dependencies: DCMTK NONE, expat 2.6.3, FFmpeg NONE, fmt 10.2.1, Freetype 2.13.2, GIF NONE, Imath 3.1.10, JPEG 80, JXL NONE, libdeflate 1.23, Libheif NONE, libjpeg-turbo 3.0.4, LibRaw NONE, libuhdr 1.2.0, minizip-ng 4.0.7, OpenColorIO 2.4.1, OpenCV NONE, OpenEXR
3.2.4, OpenGL, OpenJPEG NONE, PNG 1.6.47, Ptex NONE, Ptex NONE, pybind11 2.13.6, pystring 1.1.4, Python3 3.11.9, Qt5 NONE, Qt6 NONE, Robinmap 1.3.0, TBB NONE, TIFF 4.6.0, WebP 1.4.0, yaml-cpp 0.8.0, ZLIB 1.3.1, ZLIB 1.3.1
Days : 0
Hours : 0
Minutes : 0
Seconds : 0
Milliseconds : 384
Ticks : 3843581
TotalDays : 4.44858912037037E-06
TotalHours : 0.000106766138888889
TotalMinutes : 0.00640596833333333
TotalSeconds : 0.3843581
TotalMilliseconds : 384.3581
==================
> oiiotool -info -v input.exr
Reading input.exr
input.exr : 2996 x 2058, 78 channel, half/half/half/half/float/float/float/float/float/float/float/float/half/half/half/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/half/half/half/half/half/half/half/half/half/half/half/half/half/half/half/half/half/half openexr
channel list: R (half), G (half), B (half), A (half), Z (float), fresnel (float), N.X (float), N.Y (float), N.Z (float), Pref.X (float), Pref.Y (float), Pref.Z (float), coat.R (half), coat.G (half), coat.B (half), crypto_asset.R (float), crypto_asset.G (float), crypto_asset.B (float), crypto_asset00.R (float), crypto_asset00.G (float), crypto_asset00.B (float), crypto_asset00.A (float), crypto_asset01.R (float), crypto_asset01.G (float), crypto_asset01.B (float), crypto_asset01.A (float), crypto_asset02.R (float), crypto_asset02.G (float), crypto_asset02.B (float), crypto_asset02.A (float), crypto_material.R (float), crypto_material.G (float), crypto_material.B (float), crypto_material00.R (float), crypto_material00.G (float), crypto_material00.B (float), crypto_material00.A (float), crypto_material01.R (float), crypto_material01.G (float), crypto_material01.B (float), crypto_material01.A (float), crypto_material02.R (float), crypto_material02.G (float), crypto_material02.B (float), crypto_material02.A (float), crypto_object.R (float), crypto_object.G (float), crypto_object.B (float), crypto_object00.R (float), crypto_object00.G (float), crypto_object00.B (float), crypto_object00.A (float), crypto_object01.R (float), crypto_object01.G (float), crypto_object01.B (float), crypto_object01.A (float), crypto_object02.R (float), crypto_object02.G (float), crypto_object02.B (float), crypto_object02.A (float), diffuse_direct.R (half), diffuse_direct.G (half), diffuse_direct.B (half), diffuse_indirect.R (half), diffuse_indirect.G (half), diffuse_indirect.B (half), emission.R (half), emission.G (half), emission.B (half), specular_direct.R (half), specular_direct.G (half), specular_direct.B (half), specular_indirect.R (half), specular_indirect.G (half), specular_indirect.B (half), sss.R (half), sss.G (half), sss.B (half)
tile size: 64 x 64
arnold/AA_adaptive_threshold: 0.015
arnold/AA_samples: 2
arnold/AA_samples_max: 2
arnold/AA_seed: 344023205
arnold/aovs/coat/filter: "gaussian_filter"
arnold/aovs/coat/filter_width: 2
arnold/aovs/coat/lpe: 1
arnold/aovs/coat/lpe_expression: "C<RS'coat'>.*"
arnold/aovs/coat/source: "coat"
arnold/aovs/crypto_asset/filter: "cryptomatte_filter"
arnold/aovs/crypto_asset/filter_width: 2
arnold/aovs/crypto_asset/source: "crypto_asset"
arnold/aovs/crypto_asset00/filter: "cryptomatte_filter"
arnold/aovs/crypto_asset00/filter_width: 2
arnold/aovs/crypto_asset00/source: "crypto_asset00"
arnold/aovs/crypto_asset01/filter: "cryptomatte_filter"
arnold/aovs/crypto_asset01/filter_width: 2
arnold/aovs/crypto_asset01/source: "crypto_asset01"
arnold/aovs/crypto_asset02/filter: "cryptomatte_filter"
arnold/aovs/crypto_asset02/filter_width: 2
arnold/aovs/crypto_asset02/source: "crypto_asset02"
arnold/aovs/crypto_material/filter: "cryptomatte_filter"
arnold/aovs/crypto_material/filter_width: 2
arnold/aovs/crypto_material/source: "crypto_material"
arnold/aovs/crypto_material00/filter: "cryptomatte_filter"
arnold/aovs/crypto_material00/filter_width: 2
arnold/aovs/crypto_material00/source: "crypto_material00"
arnold/aovs/crypto_material01/filter: "cryptomatte_filter"
arnold/aovs/crypto_material01/filter_width: 2
arnold/aovs/crypto_material01/source: "crypto_material01"
arnold/aovs/crypto_material02/filter: "cryptomatte_filter"
arnold/aovs/crypto_material02/filter_width: 2
arnold/aovs/crypto_material02/source: "crypto_material02"
arnold/aovs/crypto_object/filter: "cryptomatte_filter"
arnold/aovs/crypto_object/filter_width: 2
arnold/aovs/crypto_object/source: "crypto_object"
arnold/aovs/crypto_object00/filter: "cryptomatte_filter"
arnold/aovs/crypto_object00/filter_width: 2
arnold/aovs/crypto_object00/source: "crypto_object00"
arnold/aovs/crypto_object01/filter: "cryptomatte_filter"
arnold/aovs/crypto_object01/filter_width: 2
arnold/aovs/crypto_object01/source: "crypto_object01"
arnold/aovs/crypto_object02/filter: "cryptomatte_filter"
arnold/aovs/crypto_object02/filter_width: 2
arnold/aovs/crypto_object02/source: "crypto_object02"
arnold/aovs/diffuse_direct/filter: "gaussian_filter"
arnold/aovs/diffuse_direct/filter_width: 2
arnold/aovs/diffuse_direct/lpe: 1
arnold/aovs/diffuse_direct/lpe_expression: "C<RD>L"
arnold/aovs/diffuse_direct/source: "diffuse_direct"
arnold/aovs/diffuse_indirect/filter: "gaussian_filter"
arnold/aovs/diffuse_indirect/filter_width: 2
arnold/aovs/diffuse_indirect/lpe: 1
arnold/aovs/diffuse_indirect/lpe_expression: "C<RD>[DSVOB].*"
arnold/aovs/diffuse_indirect/source: "diffuse_indirect"
arnold/aovs/emission/filter: "gaussian_filter"
arnold/aovs/emission/filter_width: 2
arnold/aovs/emission/lpe: 1
arnold/aovs/emission/lpe_expression: "C[LO]"
arnold/aovs/emission/source: "emission"
arnold/aovs/fresnel/filter: "box_filter"
arnold/aovs/fresnel/source: "fresnel"
arnold/aovs/N/filter: "box_filter"
arnold/aovs/N/source: "N"
arnold/aovs/Pref/filter: "box_filter"
arnold/aovs/Pref/source: "Pref"
arnold/aovs/RGBA/filter: "gaussian_filter"
arnold/aovs/RGBA/filter_width: 2
arnold/aovs/RGBA/lpe: 1
arnold/aovs/RGBA/lpe_expression: "C.*"
arnold/aovs/RGBA/source: "RGBA"
arnold/aovs/specular_direct/filter: "gaussian_filter"
arnold/aovs/specular_direct/filter_width: 2
arnold/aovs/specular_direct/lpe: 1
arnold/aovs/specular_direct/lpe_expression: "C<RS[^'coat''sheen']>L"
arnold/aovs/specular_direct/source: "specular_direct"
arnold/aovs/specular_indirect/filter: "gaussian_filter"
arnold/aovs/specular_indirect/filter_width: 2
arnold/aovs/specular_indirect/lpe: 1
arnold/aovs/specular_indirect/lpe_expression: "C<RS[^'coat''sheen']>[DSVOB].*"
arnold/aovs/specular_indirect/source: "specular_indirect"
arnold/aovs/sss/filter: "gaussian_filter"
arnold/aovs/sss/filter_width: 2
arnold/aovs/sss/lpe: 1
arnold/aovs/sss/lpe_expression: "C<TD>.*"
arnold/aovs/sss/source: "sss"
arnold/aovs/Z/filter: "box_filter"
arnold/aovs/Z/source: "Z"
arnold/auto_transparency_depth: 10
arnold/bounds_max_x: 2995
arnold/bounds_max_y: 2057
arnold/bounds_min_x: 0
arnold/bounds_min_y: 0
arnold/camera/far_clip: 1000
arnold/camera/near_clip: 0.1
arnold/color_manager: "color_manager_ocio"
arnold/color_space: "ACEScg"
arnold/diffuse_depth: 1
arnold/diffuse_samples: 2
arnold/fis_filter: "gaussian"
arnold/fis_filter_width: 2
arnold/fps: 24
arnold/frame: 0
arnold/host/hw: "1 x AMD Ryzen 9 9950X 16-Core Processor (16 cores, 32 logical) with 130710MB"
arnold/host/name: "Maqina-RTX-09"
arnold/host/os: "Windows 10 (version 10.0, build 26100)"
arnold/license_state: "valid"
arnold/specular_depth: 1
arnold/specular_samples: 2
arnold/sss_samples: 3
arnold/stats/date: "Tue Apr 1 23:27:34 2025"
arnold/stats/geo/curve_segments: 8.65504e+07
arnold/stats/geo/triangles: 1.94083e+06
arnold/stats/memory/peak: 26679
arnold/stats/memory/start: 408.539
arnold/stats/rays/all/pixel: 147.915
arnold/stats/rays/all/total: 9.12007e+08
arnold/stats/rays/camera/pixel: 4.25781
arnold/stats/rays/camera/total: 2.62526e+07
arnold/stats/time/render: 62.2762
arnold/stats/time/setup: 34.9591
arnold/texture_max_memory_MB: 4096
arnold/threads: 31
arnold/total_depth: 10
arnold/transmission_depth: 8
arnold/transmission_samples: 2
arnold/version: "Arnold 7.4.1.0 [cc3e15d4] windows x86_64 clang-15.0.7 oiio-2.6.3 osl-1.13.3 vdb-11.0.0 adlsdk-9.5.0.53 clmhub-3.1.1.43 rlm-14.2.5 optix-8.0.0 2025/03/25 22:00:52"
arnold/volume_depth: 0
arnold/volume_samples: 2
CameraFilmApertureHorizontal: 1
CameraFilmApertureVertical: 0.686916
CameraFocalLength: 1.25045
CameraFov: 43.5887
compression: "zip"
cryptomatte/28322e9/conversion: "uint32_to_float32"
cryptomatte/28322e9/hash: "MurmurHash3_32"
cryptomatte/28322e9/manifest: "{"\/character\/char_toy_bear\/geo\/body_GES":"0c1755c6","\/character\/prop_toy_robot\/geo\/Leg_L_GRP\/Foot_L_GRP":"ba7b541c","\/tracking_data\/standin_geo\/floor\/object0":"60863094","\/ibl_reference\/geo":"d6136e07","\/character\/char_toy_bear\/geo\/screen_content_GES":"e635431b","\/character\/prop_toy_robot\/geo\/arm_L_GRP\/lower_arm_L_GRP":"405d1859","\/tracking_data\/standin_geo\/modelTable_var02_bear_si_Geo_shoot02\/root\/si_Geo_shoot02\/geo\/table_02_Geo_shoot02\/geo\/table_bear_GRP\/plateau_GES\/plateau_GESShape":"942f71c3","\/character\/char_slimpie\/geo\/knob_GRP":"1aeefe43","\/tracking_data\/standin_geo\/modelTable_var02_bear_si_Geo_shoot02\/root\/si_Geo_shoot02\/geo\/table_02_Geo_shoot02\/geo\/table_bear_GRP\/stand_GES\/stand_GESShape":"b92ec3b5","\/character\/char_slimpie\/geo":"836fefe9","\/character\/char_toy_bear\/geo\/R_arm_GES":"eadaa9f9","\/character\/prop_toy_robot\/geo\/head_GRP":"01fe1f3a","\/character\/char_slimpie\/geo\/bottom_GRP":"5891ac94","\/character\/char_toy_bear\/geo\/screen_GES":"150214e7","\/character\/prop_toy_robot\/geo":"b8488925","\/character\/char_toy_bear\/geo\/bowtie_GES":"71e3e13a","\/character\/prop_toy_robot\/geo\/Leg_R_GRP":"95ef728e","\/character\/prop_toy_robot\/geo\/Leg_R_GRP\/Foot_R_GRP":"6322670f","\/character\/prop_toy_robot\/geo\/Leg_L_GRP":"eae7695f","\/character\/prop_toy_robot\/geo\/arm_L_GRP":"b25c21ed","\/character\/prop_toy_robot\/geo\/arm_R_GRP":"502906f5","\/character\/char_toy_bear\/geo\/eyes_GES":"b552ae8d","\/character\/prop_toy_robot\/geo\/arm_R_GRP\/lower_arm_R_GRP":"b2774a0b","\/character\/char_toy_bear\/geo\/mouth_GES":"d80ebb77","\/character\/char_toy_bear\/geo\/R_leg_GES":"21ff5e23","\/character\/char_toy_bear\/geo\/head_GES":"fee96276","\/character\/char_toy_bear\/geo\/ears_GES":"4690de75","\/character\/char_toy_bear\/geo\/L_arm_GES":"c1324b6a","\/character\/char_toy_bear\/geo\/L_leg_GES":"8c47a8a3","\/character\/char_toy_bear\/groom":"f42842ac"}"
cryptomatte/28322e9/name: "crypto_asset"
cryptomatte/bda530a/conversion: "uint32_to_float32"
cryptomatte/bda530a/hash: "MurmurHash3_32"
cryptomatte/bda530a/manifest: "{"inside_MTL":"55ce85ef","screen":"aa0ac5dc","flat1":"3654a9dc","glass":"c17feb92","glass_MTL":"ac128a30","bottom_MTL":"c4f1e999","metal_MTL":"cfe4893e","grid_MTL":"15db812d","robot":"5527a8c0","eyes":"3c4b7c32","standard_surface1":"0105d8b5","standard_hair1":"2ab1a9c2","mtlxstandard_surface1":"75baba89"}"
cryptomatte/bda530a/name: "crypto_material"
cryptomatte/f834d0a/conversion: "uint32_to_float32"
cryptomatte/f834d0a/hash: "MurmurHash3_32"
cryptomatte/f834d0a/manifest: "{"bottom_GES":"aa0490fc","Leg_1_R_GES":"4c203bc5","Battery_Cover_GES":"750f9523","mesh":"6e4fa4ca","glass_GES":"7b37169c","ring_GES":"1304f4e7","iron_ring_GES":"2ff0cc0c","gauze_GES":"11c6b11a","inside_GES":"6f2ed9e9","edges_GES":"cde92053","Hand_2_L_Screw_GES":"8d90284d","Head_Part_1_GES":"02911e82","sun_GES":"10d032c8","Torso_GES":"86600e7a","Torso_Screw_GES":"83618a0c","Hand_1_R_GES":"e87e2e36","Glass_Frame_GES":"011881d0","Head_Part_3_GES":"1a0ed5af","Head_Screws_GES":"1248f152","Battery_Cover_Screw_GES":"8805c3d6","bowtie_GESShape":"dc4c0117","Leg_2_R_Screw_GES":"389a3a2a","Head_Part_2_GES":"b532b23d","Head_GES":"4fb77ec7","Glass_GES":"987d699e","Hand_3_L_GES":"e34a71f6","On_Button_GES":"618cf0b9","body_GESShape":"25b88caf","Neck_GES":"2bc65cdb","Leg_2_L_001_GES":"53e018ab","Leg_1_L_GES":"7d0f8166","Leg_2_L_Screw_GES":"793ad8a8","ears_GESShape":"16c1ac47","R_arm_GESShape":"be9c3d65","Leg_2_L_GES":"f3b89228","Hand_1_L_GES":"5c23e33c","Hand_2_L_GES":"3b2904c8","Hand_3_R_GES":"c37e91c9","Hand_2_R_GES":"0c618d5f","Hand_2_R_Screw_GES":"4b242b9b","mouth_GESShape":"da3d7f9b","eyes_GESShape":"90a3f8b0","R_leg_GESShape":"6179a9d9","head_GESShape":"93df4f06","L_arm_GESShape":"7f268699","L_leg_GESShape":"12b7c567","screen_GESShape":"f6a369a2","screen_content_GESShape":"db3f30d4","hair":"65edc56d","hair_short":"9c921132","chrome_ball":"fb15e188","grey_ball":"be20df01","macbeth":"c9d74198"}"
cryptomatte/f834d0a/name: "crypto_object"
DateTime: "2025:04:01 23:27:34"
PixelAspectRatio: 1
screenWindowCenter: 0, 0
screenWindowWidth: 1
worldToCamera: -0.997227, -0.00747155, -0.0740386, 0, 0.00675685, 0.981745, -0.19008, 0, -0.0741072, 0.190054, 0.978973, 0, 10.2405, -31.8519, 57.6854, 1
worldToScreen: -2.49396, -0.0272021, -0.074046, -0.0740386, 0.0168982, 3.5743, -0.190099, -0.19008, -0.185334, 0.691938, 0.979071, 0.978973, 25.6105, -115.965, 57.5912, 57.6854
oiio:ColorSpace: "lin_rec709"
oiio:subimages: 1
openexr:lineOrder: "randomY"
Days : 0
Hours : 0
Minutes : 0
Seconds : 0
Milliseconds : 448
Ticks : 4480517
TotalDays : 5.18578356481481E-06
TotalHours : 0.000124458805555556
TotalMinutes : 0.00746752833333333
TotalSeconds : 0.4480517
TotalMilliseconds : 448.0517
==================
> oiiotool -v input.exr -o output.exr
Reading input.exr
Writing output.exr
Days : 0
Hours : 0
Minutes : 1
Seconds : 23
Milliseconds : 178
Ticks : 831786824
TotalDays : 0.000962716231481481
TotalHours : 0.0231051895555556
TotalMinutes : 1.38631137333333
TotalSeconds : 83.1786824
TotalMilliseconds : 83178.6824
==================
>
+
oiiotool -v input.exr -o output.png
Reading input.exr
oiiotool WARNING: -o : Can't save 78 channels to png... saving only channels R,G,B,A
Writing output.png
Days : 0
Hours : 0
Minutes : 0
Seconds : 16
Milliseconds : 368
Ticks : 163689600
TotalDays : 0.000189455555555556
TotalHours : 0.00454693333333333
TotalMinutes : 0.272816
TotalSeconds : 16.36896
TotalMilliseconds : 16368.96
==================
> oiiotool --runstats -v input.exr -o output.png
Reading input.exr
oiiotool WARNING: -o : Can't save 78 channels to png... saving only channels R,G,B,A
Writing output.png
Threads: 32
oiiotool runtime statistics:
Total time: 15.89s
-i : 232.18
-o : 0.85
Peak memory: 2.3 GB
Current memory: 2.1 GB
ImageBuf local memory: current 0 B, peak 94.1 MB
ImageBuf direct read time: 0.00s, open time 0.00s
OpenImageIO ImageCache statistics (000002428C85E040) ver 3.0.5.0
Options: max_memory_MB=4096.0 max_open_files=100 autotile=0
autoscanline=false automip=false forcefloat=true
accept_untiled=true accept_unmipped=true deduplicate=true
unassociatedalpha=false failure_retries=0 openexr:core=0
Images : 1 unique
ImageInputs : 2 created, 1 current, 1 peak
Total pixel data size of all images referenced : 1.8 GB
Total actual file size of all images referenced : 53.9 MB
Pixel data read : 1.8 GB
File I/O time : 3m 52.2s (7.3s average per thread, for 32 threads)
File open time only : 0.0s
ImageInput mutex locking time : 0.1s
Tiles: 2424 created, 1551 current, 1551 peak
total tile requests : 96726
micro-cache misses : 96726 (100.0%)
main cache misses : 2424 (2.5%)
redundant reads: 0 tiles, 0 B
Peak cache memory : 1.8 GB
Cache : 1.8 GB
Strings : 0 B, count : 2
Thread info : 11 KB, count : 32
Fingerprints : 0 B, count : 0
Tiles : 1.8 GB, count : 1551
Files : 10 KB, count : 1
Format 'openexr' : 10 KB, count : 1
Image inputs : 4 KB, count : 1
Image specs : 8 B, count : 1
Subimages : 5 KB, count : 1
Level infos : 4 KB, count : 1
Image specs : 4 KB, count : 2
Members : 320 B
Extra attributes : 24 B
Channel names : 4 KB
Image file statistics:
opens tiles MB read --redundant-- I/O time res File
1 2 1551 1890.3 3m 52.2s 2996x2058x78.f32 input.exr
Tot: 2 1551 1890.3 ( 0 0.0) 3m 52.2s
Broken or invalid files: 0
Days : 0
Hours : 0
Minutes : 0
Seconds : 16
Milliseconds : 584
Ticks : 165844903
TotalDays : 0.000191950119212963
TotalHours : 0.00460680286111111
TotalMinutes : 0.276408171666667
TotalSeconds : 16.5844903
TotalMilliseconds : 16584.4903
==================
> oiiotool -v -i:ch=R,G,B,A input.exr -ch R=R,G=G,B=B,A=A -o output.png
Reading input.exr
Writing output.png
Days : 0
Hours : 0
Minutes : 0
Seconds : 19
Milliseconds : 234
Ticks : 192349075
TotalDays : 0.000222626244212963
TotalHours : 0.00534302986111111
TotalMinutes : 0.320581791666667
TotalSeconds : 19.2349075
TotalMilliseconds : 19234.9075
==================
> oiiotool -v -i:ch=R,G,B,A input.exr -o output.png
Reading input.exr
Writing output.png
Days : 0
Hours : 0
Minutes : 0
Seconds : 19
Milliseconds : 40
Ticks : 190405977
TotalDays : 0.000220377288194444
TotalHours : 0.00528905491666667
TotalMinutes : 0.317343295
TotalSeconds : 19.0405977
TotalMilliseconds : 19040.5977
==================
> oiiotool -v input.exr -ch R=R,G=G,B=B,A=A -o output.png
Reading input.exr
Writing output.png
Days : 0
Hours : 0
Minutes : 0
Seconds : 16
Milliseconds : 170
Ticks : 161704054
TotalDays : 0.000187157469907407
TotalHours : 0.00449177927777778
TotalMinutes : 0.269506756666667
TotalSeconds : 16.1704054
TotalMilliseconds : 16170.4054
==================
> oiiotool -i:ch=R,G,B,A input.exr --cut 1x1 -o out.exr
Days : 0
Hours : 0
Minutes : 0
Seconds : 18
Milliseconds : 69
Ticks : 180699363
TotalDays : 0.00020914278125
TotalHours : 0.00501942675
TotalMinutes : 0.301165605
TotalSeconds : 18.0699363
TotalMilliseconds : 18069.9363
@BigRoy
Copy link
Author

BigRoy commented Apr 22, 2025

@antirotor was kind enough to also do test runs.

3.1.1.0dev

  C:\dev   .\oiio_tests.ps1
==================
>> oiiotool --buildinfo
OIIO 3.1.1.0dev | unknown arch?
    Build compiler: MSVS 1943 | C++17/199711
    HW features enabled at build: sse2
    No CUDA support (disabled / unavailable at build time)
Dependencies: BZip2 NONE, DCMTK NONE, expat 2.7.1, FFmpeg NONE, fmt 10.2.1, Freetype 2.13.2, GIF NONE, Imath
    3.2.0, JPEG 80, JXL NONE, Libheif NONE, libjpeg-turbo 3.0.4, LibRaw NONE, libuhdr, minizip-ng 4.0.7, OpenColorIO
    2.4.1, OpenCV NONE, OpenEXR 3.4.0, OpenJPEG NONE, PNG 1.6.47, Ptex NONE, Ptex NONE, pystring, Robinmap 1.4.0, TBB
    NONE, TIFF 4.6.0, WebP 1.4.0, yaml-cpp 0.8.0, ZLIB 1.3.1, ZLIB 1.3.1

Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 0
Milliseconds      : 81
Ticks             : 813926
TotalDays         : 9,42043981481482E-07
TotalHours        : 2,26090555555556E-05
TotalMinutes      : 0,00135654333333333
TotalSeconds      : 0,0813926
TotalMilliseconds : 81,3926

==================
>> oiiotool -info -v input.exr
Reading input.exr
input.exr            : 2996 x 2058, 78 channel, half/half/half/half/float/float/float/float/float/float/float/float/half/half/half/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/half/half/half/half/half/half/half/half/half/half/half/half/half/half/half/half/half/half openexr
    channel list: R (half), G (half), B (half), A (half), Z (float), fresnel (float), N.X (float), N.Y (float), N.Z (float), Pref.X (float), Pref.Y (float), Pref.Z (float), coat.R (half), coat.G (half), coat.B (half), crypto_asset.R (float), crypto_asset.G (float), crypto_asset.B (float), crypto_asset00.R (float), crypto_asset00.G (float), crypto_asset00.B (float), crypto_asset00.A (float), crypto_asset01.R (float), crypto_asset01.G (float), crypto_asset01.B (float), crypto_asset01.A (float), crypto_asset02.R (float), crypto_asset02.G (float), crypto_asset02.B (float), crypto_asset02.A (float), crypto_material.R (float), crypto_material.G (float), crypto_material.B (float), crypto_material00.R (float), crypto_material00.G (float), crypto_material00.B (float), crypto_material00.A (float), crypto_material01.R (float), crypto_material01.G (float), crypto_material01.B (float), crypto_material01.A (float), crypto_material02.R (float), crypto_material02.G (float), crypto_material02.B (float), crypto_material02.A (float), crypto_object.R (float), crypto_object.G (float), crypto_object.B (float), crypto_object00.R (float), crypto_object00.G (float), crypto_object00.B (float), crypto_object00.A (float), crypto_object01.R (float), crypto_object01.G (float), crypto_object01.B (float), crypto_object01.A (float), crypto_object02.R (float), crypto_object02.G (float), crypto_object02.B (float), crypto_object02.A (float), diffuse_direct.R (half), diffuse_direct.G (half), diffuse_direct.B (half), diffuse_indirect.R (half), diffuse_indirect.G (half), diffuse_indirect.B (half), emission.R (half), emission.G (half), emission.B (half), specular_direct.R (half), specular_direct.G (half), specular_direct.B (half), specular_indirect.R (half), specular_indirect.G (half), specular_indirect.B (half), sss.R (half), sss.G (half), sss.B (half)
    tile size: 64 x 64
    arnold/AA_adaptive_threshold: 0.015
    arnold/AA_samples: 2
    arnold/AA_samples_max: 2
    arnold/AA_seed: 344023205
    arnold/aovs/coat/filter: "gaussian_filter"
    arnold/aovs/coat/filter_width: 2
    arnold/aovs/coat/lpe: 1
    arnold/aovs/coat/lpe_expression: "C<RS'coat'>.*"
    arnold/aovs/coat/source: "coat"
    arnold/aovs/crypto_asset/filter: "cryptomatte_filter"
    arnold/aovs/crypto_asset/filter_width: 2
    arnold/aovs/crypto_asset/source: "crypto_asset"
    arnold/aovs/crypto_asset00/filter: "cryptomatte_filter"
    arnold/aovs/crypto_asset00/filter_width: 2
    arnold/aovs/crypto_asset00/source: "crypto_asset00"
    arnold/aovs/crypto_asset01/filter: "cryptomatte_filter"
    arnold/aovs/crypto_asset01/filter_width: 2
    arnold/aovs/crypto_asset01/source: "crypto_asset01"
    arnold/aovs/crypto_asset02/filter: "cryptomatte_filter"
    arnold/aovs/crypto_asset02/filter_width: 2
    arnold/aovs/crypto_asset02/source: "crypto_asset02"
    arnold/aovs/crypto_material/filter: "cryptomatte_filter"
    arnold/aovs/crypto_material/filter_width: 2
    arnold/aovs/crypto_material/source: "crypto_material"
    arnold/aovs/crypto_material00/filter: "cryptomatte_filter"
    arnold/aovs/crypto_material00/filter_width: 2
    arnold/aovs/crypto_material00/source: "crypto_material00"
    arnold/aovs/crypto_material01/filter: "cryptomatte_filter"
    arnold/aovs/crypto_material01/filter_width: 2
    arnold/aovs/crypto_material01/source: "crypto_material01"
    arnold/aovs/crypto_material02/filter: "cryptomatte_filter"
    arnold/aovs/crypto_material02/filter_width: 2
    arnold/aovs/crypto_material02/source: "crypto_material02"
    arnold/aovs/crypto_object/filter: "cryptomatte_filter"
    arnold/aovs/crypto_object/filter_width: 2
    arnold/aovs/crypto_object/source: "crypto_object"
    arnold/aovs/crypto_object00/filter: "cryptomatte_filter"
    arnold/aovs/crypto_object00/filter_width: 2
    arnold/aovs/crypto_object00/source: "crypto_object00"
    arnold/aovs/crypto_object01/filter: "cryptomatte_filter"
    arnold/aovs/crypto_object01/filter_width: 2
    arnold/aovs/crypto_object01/source: "crypto_object01"
    arnold/aovs/crypto_object02/filter: "cryptomatte_filter"
    arnold/aovs/crypto_object02/filter_width: 2
    arnold/aovs/crypto_object02/source: "crypto_object02"
    arnold/aovs/diffuse_direct/filter: "gaussian_filter"
    arnold/aovs/diffuse_direct/filter_width: 2
    arnold/aovs/diffuse_direct/lpe: 1
    arnold/aovs/diffuse_direct/lpe_expression: "C<RD>L"
    arnold/aovs/diffuse_direct/source: "diffuse_direct"
    arnold/aovs/diffuse_indirect/filter: "gaussian_filter"
    arnold/aovs/diffuse_indirect/filter_width: 2
    arnold/aovs/diffuse_indirect/lpe: 1
    arnold/aovs/diffuse_indirect/lpe_expression: "C<RD>[DSVOB].*"
    arnold/aovs/diffuse_indirect/source: "diffuse_indirect"
    arnold/aovs/emission/filter: "gaussian_filter"
    arnold/aovs/emission/filter_width: 2
    arnold/aovs/emission/lpe: 1
    arnold/aovs/emission/lpe_expression: "C[LO]"
    arnold/aovs/emission/source: "emission"
    arnold/aovs/fresnel/filter: "box_filter"
    arnold/aovs/fresnel/source: "fresnel"
    arnold/aovs/N/filter: "box_filter"
    arnold/aovs/N/source: "N"
    arnold/aovs/Pref/filter: "box_filter"
    arnold/aovs/Pref/source: "Pref"
    arnold/aovs/RGBA/filter: "gaussian_filter"
    arnold/aovs/RGBA/filter_width: 2
    arnold/aovs/RGBA/lpe: 1
    arnold/aovs/RGBA/lpe_expression: "C.*"
    arnold/aovs/RGBA/source: "RGBA"
    arnold/aovs/specular_direct/filter: "gaussian_filter"
    arnold/aovs/specular_direct/filter_width: 2
    arnold/aovs/specular_direct/lpe: 1
    arnold/aovs/specular_direct/lpe_expression: "C<RS[^'coat''sheen']>L"
    arnold/aovs/specular_direct/source: "specular_direct"
    arnold/aovs/specular_indirect/filter: "gaussian_filter"
    arnold/aovs/specular_indirect/filter_width: 2
    arnold/aovs/specular_indirect/lpe: 1
    arnold/aovs/specular_indirect/lpe_expression: "C<RS[^'coat''sheen']>[DSVOB].*"
    arnold/aovs/specular_indirect/source: "specular_indirect"
    arnold/aovs/sss/filter: "gaussian_filter"
    arnold/aovs/sss/filter_width: 2
    arnold/aovs/sss/lpe: 1
    arnold/aovs/sss/lpe_expression: "C<TD>.*"
    arnold/aovs/sss/source: "sss"
    arnold/aovs/Z/filter: "box_filter"
    arnold/aovs/Z/source: "Z"
    arnold/auto_transparency_depth: 10
    arnold/bounds_max_x: 2995
    arnold/bounds_max_y: 2057
    arnold/bounds_min_x: 0
    arnold/bounds_min_y: 0
    arnold/camera/far_clip: 1000
    arnold/camera/near_clip: 0.1
    arnold/color_manager: "color_manager_ocio"
    arnold/color_space: "ACEScg"
    arnold/diffuse_depth: 1
    arnold/diffuse_samples: 2
    arnold/fis_filter: "gaussian"
    arnold/fis_filter_width: 2
    arnold/fps: 24
    arnold/frame: 0
    arnold/host/hw: "1 x AMD Ryzen 9 9950X 16-Core Processor  (16 cores, 32 logical) with 130710MB"
    arnold/host/name: "Maqina-RTX-09"
    arnold/host/os: "Windows 10 (version 10.0, build 26100)"
    arnold/license_state: "valid"
    arnold/specular_depth: 1
    arnold/specular_samples: 2
    arnold/sss_samples: 3
    arnold/stats/date: "Tue Apr  1 23:27:34 2025"
    arnold/stats/geo/curve_segments: 8.65504e+07
    arnold/stats/geo/triangles: 1.94083e+06
    arnold/stats/memory/peak: 26679
    arnold/stats/memory/start: 408.539
    arnold/stats/rays/all/pixel: 147.915
    arnold/stats/rays/all/total: 9.12007e+08
    arnold/stats/rays/camera/pixel: 4.25781
    arnold/stats/rays/camera/total: 2.62526e+07
    arnold/stats/time/render: 62.2762
    arnold/stats/time/setup: 34.9591
    arnold/texture_max_memory_MB: 4096
    arnold/threads: 31
    arnold/total_depth: 10
    arnold/transmission_depth: 8
    arnold/transmission_samples: 2
    arnold/version: "Arnold 7.4.1.0 [cc3e15d4] windows x86_64 clang-15.0.7 oiio-2.6.3 osl-1.13.3 vdb-11.0.0 adlsdk-9.5.0.53 clmhub-3.1.1.43 rlm-14.2.5 optix-8.0.0 2025/03/25 22:00:52"
    arnold/volume_depth: 0
    arnold/volume_samples: 2
    CameraFilmApertureHorizontal: 1
    CameraFilmApertureVertical: 0.686916
    CameraFocalLength: 1.25045
    CameraFov: 43.5887
    compression: "zip"
    cryptomatte/28322e9/conversion: "uint32_to_float32"
    cryptomatte/28322e9/hash: "MurmurHash3_32"
    cryptomatte/28322e9/manifest: "{"\/character\/char_toy_bear\/geo\/body_GES":"0c1755c6","\/character\/prop_toy_robot\/geo\/Leg_L_GRP\/Foot_L_GRP":"ba7b541c","\/tracking_data\/standin_geo\/floor\/object0":"60863094","\/ibl_reference\/geo":"d6136e07","\/character\/char_toy_bear\/geo\/screen_content_GES":"e635431b","\/character\/prop_toy_robot\/geo\/arm_L_GRP\/lower_arm_L_GRP":"405d1859","\/tracking_data\/standin_geo\/modelTable_var02_bear_si_Geo_shoot02\/root\/si_Geo_shoot02\/geo\/table_02_Geo_shoot02\/geo\/table_bear_GRP\/plateau_GES\/plateau_GESShape":"942f71c3","\/character\/char_slimpie\/geo\/knob_GRP":"1aeefe43","\/tracking_data\/standin_geo\/modelTable_var02_bear_si_Geo_shoot02\/root\/si_Geo_shoot02\/geo\/table_02_Geo_shoot02\/geo\/table_bear_GRP\/stand_GES\/stand_GESShape":"b92ec3b5","\/character\/char_slimpie\/geo":"836fefe9","\/character\/char_toy_bear\/geo\/R_arm_GES":"eadaa9f9","\/character\/prop_toy_robot\/geo\/head_GRP":"01fe1f3a","\/character\/char_slimpie\/geo\/bottom_GRP":"5891ac94","\/character\/char_toy_bear\/geo\/screen_GES":"150214e7","\/character\/prop_toy_robot\/geo":"b8488925","\/character\/char_toy_bear\/geo\/bowtie_GES":"71e3e13a","\/character\/prop_toy_robot\/geo\/Leg_R_GRP":"95ef728e","\/character\/prop_toy_robot\/geo\/Leg_R_GRP\/Foot_R_GRP":"6322670f","\/character\/prop_toy_robot\/geo\/Leg_L_GRP":"eae7695f","\/character\/prop_toy_robot\/geo\/arm_L_GRP":"b25c21ed","\/character\/prop_toy_robot\/geo\/arm_R_GRP":"502906f5","\/character\/char_toy_bear\/geo\/eyes_GES":"b552ae8d","\/character\/prop_toy_robot\/geo\/arm_R_GRP\/lower_arm_R_GRP":"b2774a0b","\/character\/char_toy_bear\/geo\/mouth_GES":"d80ebb77","\/character\/char_toy_bear\/geo\/R_leg_GES":"21ff5e23","\/character\/char_toy_bear\/geo\/head_GES":"fee96276","\/character\/char_toy_bear\/geo\/ears_GES":"4690de75","\/character\/char_toy_bear\/geo\/L_arm_GES":"c1324b6a","\/character\/char_toy_bear\/geo\/L_leg_GES":"8c47a8a3","\/character\/char_toy_bear\/groom":"f42842ac"}"
    cryptomatte/28322e9/name: "crypto_asset"
    cryptomatte/bda530a/conversion: "uint32_to_float32"
    cryptomatte/bda530a/hash: "MurmurHash3_32"
    cryptomatte/bda530a/manifest: "{"inside_MTL":"55ce85ef","screen":"aa0ac5dc","flat1":"3654a9dc","glass":"c17feb92","glass_MTL":"ac128a30","bottom_MTL":"c4f1e999","metal_MTL":"cfe4893e","grid_MTL":"15db812d","robot":"5527a8c0","eyes":"3c4b7c32","standard_surface1":"0105d8b5","standard_hair1":"2ab1a9c2","mtlxstandard_surface1":"75baba89"}"
    cryptomatte/bda530a/name: "crypto_material"
    cryptomatte/f834d0a/conversion: "uint32_to_float32"
    cryptomatte/f834d0a/hash: "MurmurHash3_32"
    cryptomatte/f834d0a/manifest: "{"bottom_GES":"aa0490fc","Leg_1_R_GES":"4c203bc5","Battery_Cover_GES":"750f9523","mesh":"6e4fa4ca","glass_GES":"7b37169c","ring_GES":"1304f4e7","iron_ring_GES":"2ff0cc0c","gauze_GES":"11c6b11a","inside_GES":"6f2ed9e9","edges_GES":"cde92053","Hand_2_L_Screw_GES":"8d90284d","Head_Part_1_GES":"02911e82","sun_GES":"10d032c8","Torso_GES":"86600e7a","Torso_Screw_GES":"83618a0c","Hand_1_R_GES":"e87e2e36","Glass_Frame_GES":"011881d0","Head_Part_3_GES":"1a0ed5af","Head_Screws_GES":"1248f152","Battery_Cover_Screw_GES":"8805c3d6","bowtie_GESShape":"dc4c0117","Leg_2_R_Screw_GES":"389a3a2a","Head_Part_2_GES":"b532b23d","Head_GES":"4fb77ec7","Glass_GES":"987d699e","Hand_3_L_GES":"e34a71f6","On_Button_GES":"618cf0b9","body_GESShape":"25b88caf","Neck_GES":"2bc65cdb","Leg_2_L_001_GES":"53e018ab","Leg_1_L_GES":"7d0f8166","Leg_2_L_Screw_GES":"793ad8a8","ears_GESShape":"16c1ac47","R_arm_GESShape":"be9c3d65","Leg_2_L_GES":"f3b89228","Hand_1_L_GES":"5c23e33c","Hand_2_L_GES":"3b2904c8","Hand_3_R_GES":"c37e91c9","Hand_2_R_GES":"0c618d5f","Hand_2_R_Screw_GES":"4b242b9b","mouth_GESShape":"da3d7f9b","eyes_GESShape":"90a3f8b0","R_leg_GESShape":"6179a9d9","head_GESShape":"93df4f06","L_arm_GESShape":"7f268699","L_leg_GESShape":"12b7c567","screen_GESShape":"f6a369a2","screen_content_GESShape":"db3f30d4","hair":"65edc56d","hair_short":"9c921132","chrome_ball":"fb15e188","grey_ball":"be20df01","macbeth":"c9d74198"}"
    cryptomatte/f834d0a/name: "crypto_object"
    DateTime: "2025:04:01 23:27:34"
    PixelAspectRatio: 1
    screenWindowCenter: 0, 0
    screenWindowWidth: 1
    worldToCamera: -0.997227, -0.00747155, -0.0740386, 0, 0.00675685, 0.981745, -0.19008, 0, -0.0741072, 0.190054, 0.978973, 0, 10.2405, -31.8519, 57.6854, 1
    worldToScreen: -2.49396, -0.0272021, -0.074046, -0.0740386, 0.0168982, 3.5743, -0.190099, -0.19008, -0.185334, 0.691938, 0.979071, 0.978973, 25.6105, -115.965, 57.5912, 57.6854
    oiio:ColorSpace: "lin_rec709"
    oiio:subimages: 1
    openexr:lineOrder: "randomY"
Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 0
Milliseconds      : 71
Ticks             : 717686
TotalDays         : 8,30655092592593E-07
TotalHours        : 1,99357222222222E-05
TotalMinutes      : 0,00119614333333333
TotalSeconds      : 0,0717686
TotalMilliseconds : 71,7686

==================
>> oiiotool -v input.exr -o output.exr
Reading input.exr
Writing output.exr
Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 15
Milliseconds      : 941
Ticks             : 159415758
TotalDays         : 0,000184508979166667
TotalHours        : 0,0044282155
TotalMinutes      : 0,26569293
TotalSeconds      : 15,9415758
TotalMilliseconds : 15941,5758

==================
>> oiiotool -v input.exr -o output.png
Reading input.exr
oiiotool WARNING: -o : Can't save 78 channels to png... saving only channels R,G,B,A
Writing output.png
Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 4
Milliseconds      : 977
Ticks             : 49778858
TotalDays         : 5,76144189814815E-05
TotalHours        : 0,00138274605555556
TotalMinutes      : 0,0829647633333333
TotalSeconds      : 4,9778858
TotalMilliseconds : 4977,8858

==================
>> oiiotool --runstats -v input.exr -o output.png
Reading input.exr
oiiotool WARNING: -o : Can't save 78 channels to png... saving only channels R,G,B,A
Writing output.png

Threads: 20
oiiotool runtime statistics:
  Total time: 4.80s
      -i           : 68.66
      -o           :  0.33
  Peak memory:    2.1 GB
  Current memory: 1.9 GB

ImageBuf local memory: current 0 B, peak 94.1 MB
ImageBuf direct read time: 0.00s, open time 0.00s

OpenImageIO ImageCache statistics (0000024BA6736E00) ver 3.1.1.0dev
  Options:  max_memory_MB=4096.0 max_open_files=100 autotile=0
            autoscanline=false automip=false forcefloat=true
            accept_untiled=true accept_unmipped=true deduplicate=true
            unassociatedalpha=false failure_retries=0 openexr:core=1
  Images : 1 unique
    ImageInputs : 2 created, 1 current, 1 peak
    Total pixel data size of all images referenced : 1.8 GB
    Total actual file size of all images referenced : 53.9 MB
    Pixel data read : 1.8 GB
    File I/O time : 1m 8.7s (3.4s average per thread, for 20 threads)
    File open time only : 0.0s
    ImageInput mutex locking time : 0.3s
  Tiles: 1719 created, 1551 current, 1551 peak
    total tile requests : 96726
    micro-cache misses : 96726 (100.0%)
    main cache misses : 1719 (1.8%)
    redundant reads: 0 tiles, 0 B
    Peak cache memory : 1.8 GB
  Cache : 1.8 GB
    Strings : 0 B, count : 2
    Thread info : 7 KB, count : 20
    Fingerprints : 0 B, count : 0
    Tiles : 1.8 GB, count : 1551
    Files : 10 KB, count : 1
      Format 'openexr' : 10 KB, count : 1
        Image inputs : 4 KB, count : 1
        Image specs : 8 B, count : 1
        Subimages : 5 KB, count : 1
          Level infos : 4 KB, count : 1
            Image specs : 4 KB, count : 2
              Members : 320 B
              Extra attributes : 24 B
              Channel names : 4 KB
  Image file statistics:
        opens   tiles    MB read   --redundant--   I/O time  res              File
      1    2     1551     1890.3                  1m 8.7s    2996x2058x78.f32  input.exr

  Tot:     2     1551     1890.3   (    0    0.0) 1m 8.7s
  Broken or invalid files: 0

Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 4
Milliseconds      : 894
Ticks             : 48946730
TotalDays         : 5,66513078703704E-05
TotalHours        : 0,00135963138888889
TotalMinutes      : 0,0815778833333333
TotalSeconds      : 4,894673
TotalMilliseconds : 4894,673

==================
>> oiiotool -v -i:ch=R,G,B,A input.exr -ch R=R,G=G,B=B,A=A -o output.png
Reading input.exr
Writing output.png
Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 4
Milliseconds      : 70
Ticks             : 40708022
TotalDays         : 4,71157662037037E-05
TotalHours        : 0,00113077838888889
TotalMinutes      : 0,0678467033333333
TotalSeconds      : 4,0708022
TotalMilliseconds : 4070,8022

==================
>> oiiotool -v -i:ch=R,G,B,A input.exr -o output.png
Reading input.exr
Writing output.png
Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 4
Milliseconds      : 28
Ticks             : 40283957
TotalDays         : 4,66249502314815E-05
TotalHours        : 0,00111899880555556
TotalMinutes      : 0,0671399283333333
TotalSeconds      : 4,0283957
TotalMilliseconds : 4028,3957

==================
>> oiiotool -v input.exr -ch R=R,G=G,B=B,A=A -o output.png
Reading input.exr
Writing output.png
Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 4
Milliseconds      : 767
Ticks             : 47676675
TotalDays         : 5,51813368055556E-05
TotalHours        : 0,00132435208333333
TotalMinutes      : 0,079461125
TotalSeconds      : 4,7676675
TotalMilliseconds : 4767,6675

==================
>> oiiotool -i:ch=R,G,B,A input.exr --cut 1x1 -o out.exr
Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 3
Milliseconds      : 822
Ticks             : 38222593
TotalDays         : 4,42391122685185E-05
TotalHours        : 0,00106173869444444
TotalMinutes      : 0,0637043216666667
TotalSeconds      : 3,8222593
TotalMilliseconds : 3822,2593

2.4.6.0

  C:\dev   .\oiio_tests.ps1
==================
>> oiiotool --buildinfo
Invalid option "--buildinfo"
oiiotool -- simple image processing operations
OpenImageIO 2.4.6.0 http://www.openimageio.org

Usage: oiiotool [filename|command]...

Important usage tips:
  * The oiiotool command line is processed in order, LEFT to RIGHT.
  * The command line consists of image NAMES ('image.tif') and COMMANDS ('--over'). Commands start with dashes
    (one or two dashes are equivalent). Some commands have required arguments which must follow on the command line.
    For example, the '-o' command is followed by a filename.
  * oiiotool is STACK-based: naming an image pushes it on the stack, and most commands pop the top image (or
    sometimes more than one image), perform a calculation, and push the result image back on the stack. For example,
    the '--over' command pops the top two images off the stack, composites them, then pushes the result back onto the
    stack.
  * Some commands allow one or more optional MODIFIERS in the form 'name=value', which are appended directly to
    the command itself (no spaces), separated by colons ':'. For example,
       oiiotool in.tif --text:x=100:y=200:color=1,0,0 "Hello" -o out.tif
  * Using numerical wildcards will run the whole command line on each of several sequentially-named files, for
    example:
       oiiotool fg.#.tif bg.#.tif -over -o comp.#.tif
    See the manual for info about subranges, number of digits, etc.
  * Command line arguments containing substrings enclosed in braces {} are replaced by evaluating their contents
    as expressions. Simple math is allowed as well as retrieving metadata such as {TOP.'foo:bar'}, {IMG[0].filename},
    or {FRAME_NUMBER/24.0}.

Options (general flags):
    --help                        Print help message
    --version                     Print version
    -v                            Verbose status messages
    -q                            Quiet mode (turn verbose off and reduce printed output)
    -n                            No saved output (dry run)
    --no-error-exit               Do not exit upon error, try to process additional comands (danger!)
    -a                            Do operations on all subimages/miplevels
    --debug                       Debug mode
    --runstats                    Print runtime statistics
    --info                        Print resolution and basic info on all inputs, detailed metadata if -v is also
                                    used (options: format=xml:verbose=1)
    --list-formats                List all supported file formats and their filename extensions
    --metamatch REGEX             Which metadata is printed with -info -v
    --no-metamatch REGEX          Which metadata is excluded with -info -v
    --stats                       Print pixel statistics of all inputs files
    --dumpdata                    Print all pixel data values of input files (options: empty=1, C=arrayname)
    --hash                        Print SHA-1 hash of each input image
    -u                            Update mode: skip outputs when the file exists and is newer than all inputs
    --no-clobber                  Do not overwrite existing files
    --threads N                   Number of threads (default 0 == #cores)
    --no-autopremult              Turn off automatic premultiplication of images with unassociated alpha
    --autopremult                 Turn on automatic premultiplication of images with unassociated alpha
    --autoorient                  Automatically --reorient all images upon input
    --autocc                      Automatically color convert based on filename (options: unpremult=)
    --noautocc                    Turn off automatic color conversion
    --native                      Keep native pixel data type (bypass cache if necessary)
    --cache MB                    ImageCache size (in MB: default=4096)
    --autotile TILESIZE           Autotile enable for cached images (the argument is the tile size, default 0 means
                                    no autotile)
    --metamerge                   Always merge metadata of all inputs into output
    --oiioattrib NAME VALUE       Sets global OpenImageIO attribute (options: type=...)
Control flow and scripting:
    --set NAME VALUE              Set a user variable (options: type=...)
    --if VALUE                    If VALUE is not 0 or empty, execute commands until --endif
    --else                        Else clause of the current 'if' block
    --endif                       End the current 'if' block
    --while VALUE                 If VALUE is not 0 or empty, execute commands until --endwhile and loop
    --endwhile                    End the current 'while' block
    --for VARIABLE RANGE          Iterate over a range the commands between here and --endfor.  The range may be
                                    END (implied begin 0 and step 1), START,END (implied step 1) or START,END,STEP
    --endfor                      End the current 'for' block
    --frames FRAMERANGE           Frame range for '#' or printf-style wildcards
    --framepadding NDIGITS        Frame number padding digits (ignored when using printf-style wildcards)
    --views VIEWNAMES             Views for %V/%v wildcards (comma-separated, defaults to "left,right")
    --skip-bad-frames             Skip to next frame in range if there's an error, rather than exiting
    --wildcardoff                 Disable numeric wildcard expansion for subsequent command line arguments
    --wildcardon                  Enable numeric wildcard expansion for subsequent command line arguments
    --evaloff                     Disable {expression} evaluation for subsequent command line arguments
    --evalon                      Enable {expression} evaluation for subsequent command line arguments
Commands that read images:
    -i FILENAME                   Input file (options: autocc=, ch=, info=, infoformat=, now=, type=, unpremult=)
    --iconfig NAME VALUE          Sets input config attribute (options: type=...)
    --missingfile OPTION          Set policy for missing input files: 'error' (default), 'black', 'checker'
Commands that write images:
    -o FILENAME                   Output the current image to the named file (options: all=, autocc=, autocrop=,
                                    autotrim=, bits=, contig=, datatype=, dither=, fileformatname=, scanline=,
                                    separate=, tile=, unpremult=)
    -otex FILENAME                Output the current image as a texture
    -oenv FILENAME                Output the current image as a latlong env map
    -obump FILENAME               Output the current bump texture map as a 6 channels texture including the first
                                    and second moment of the bump slopes (options: bumpformat=height|normal|auto,
                                    uvslopes_scale=val>=0)
Options that affect subsequent image output:
    -d TYPE                       '-d TYPE' sets the output data format of all channels, '-d CHAN=TYPE' overrides a
                                    single named channel (multiple -d args are allowed). Data types include: uint8,
                                    sint8, uint10, uint12, uint16, sint16, uint32, sint32, half, float, double
    --scanline                    Output scanline images
    --tile WIDTH HEIGHT           Output tiled images with this tile size
    --compression NAME            Set the compression method (in the form "name" or "name:quality")
    --dither                      Add dither when writing <= 8-bit output from > 8 bit input
    --planarconfig CONFIG         Force planarconfig (contig, separate, default)
    --adjust-time                 Adjust file times to match DateTime metadata
    --noautocrop                  Do not automatically crop images whose formats don't support separate pixel data
                                    and full/display windows
    --autotrim                    Automatically trim black borders upon output to file formats that support
                                    separate pixel data and full/display windows
Options that print data (usually about the current image):
    --echo TEXT                   Echo message to console (options: newline=0)
    --printinfo                   Print info and metadata of the current top image
    --printstats                  Print pixel statistics of the current top image (options: roi=<geom>)
    --colorcount COLORLIST        Count of how many pixels have the given color (argument: color;color;...)
                                    (options: eps=color)
    --rangecheck MIN MAX          Count of how many pixels are outside the min/max color range (each is a
                                    comma-separated color value list)
Options that change current image metadata (but not pixel values):
    --attrib NAME VALUE           Sets metadata attribute (options: type=...)
    --sattrib NAME VALUE          Sets string metadata attribute
    --eraseattrib REGEX           Erase attributes matching regex
    --caption TEXT                Sets caption (ImageDescription metadata)
    --keyword KEYWORD             Add a keyword
    --clear-keywords              Clear all keywords
    --nosoftwareattrib            Do not write command line into Exif:ImageHistory, Software metadata attributes
    --sansattrib                  Write command line into Software & ImageHistory but remove --sattrib and --attrib
                                    options
    --orientation ORIENT          Set the assumed orientation
    --orientcw                    Rotate orientation metadata 90 deg clockwise
    --orientccw                   Rotate orientation metadata 90 deg counter-clockwise
    --orient180                   Rotate orientation metadata 180 deg
    --origin +X+Y                 Set the pixel data window origin (e.g. +20+10, -16-16)
    --originoffset +X+Y           Offset the pixel data window origin from its current position (e.g. +20+10,
                                    -16-16)
    --fullsize GEOM               Set the display window (e.g., 1920x1080, 1024x768+100+0, -20-30)
    --fullpixels                  Set the 'full' image range to be the pixel data window
    --chnames NAMELIST            Set the channel names (comma-separated)
Options that affect subsequent actions:
    --fail THRESH                 Failure threshold difference (0.000001)
    --failpercent PCNT            Allow this percentage of failures in diff (0)
    --hardfail THRESH             Fail diff if any one pixel exceeds this error (infinity)
    --warn THRESH                 Warning threshold difference (0.00001)
    --warnpercent PCNT            Allow this percentage of warnings in diff (0)
    --hardwarn THRESH             Warn if any one pixel difference exceeds this error (infinity)
Actions:
    --create GEOM NCHANS          Create a blank image
    --pattern NAME GEOM NCHANS    Create a patterned image. Pattern name choices: black, constant, fill, checker,
                                    noise
    --kernel NAME GEOM            Create a centered convolution kernel
    --capture                     Capture an image (options: camera=%d)
    --diff                        Print report on the difference of two images (modified by --fail, --failpercent,
                                    --hardfail, --warn, --warnpercent --hardwarn)
    --pdiff                       Print report on the perceptual difference of two images (modified by --fail,
                                    --failpercent, --hardfail, --warn, --warnpercent --hardwarn)
    --add                         Add two images
    --addc VAL                    Add to all channels a scalar or per-channel constants (e.g.: 0.5 or 1,1.25,0.5)
    --sub                         Subtract two images
    --subc VAL                    Subtract from all channels a scalar or per-channel constants (e.g.: 0.5 or
                                    1,1.25,0.5)
    --mul                         Multiply two images
    --mulc VAL                    Multiply the image values by a scalar or per-channel constants (e.g.: 0.5 or
                                    1,1.25,0.5)
    --div                         Divide first image by second image
    --divc VAL                    Divide the image values by a scalar or per-channel constants (e.g.: 0.5 or
                                    1,1.25,0.5)
    --mad                         Multiply two images, add a third
    --invert                      Take the color inverse (subtract from 1) (options: chbegin=0, chend=3
    --abs                         Take the absolute value of the image pixels
    --absdiff                     Absolute difference between two images
    --absdiffc VAL                Absolute difference versus a scalar or per-channel constant (e.g.: 0.5 or
                                    1,1.25,0.5)
    --powc VAL                    Raise the image values to a scalar or per-channel power (e.g.: 2.2 or
                                    2.2,2.2,2.2,1.0)
    --noise                       Add noise to an image (options: type=gaussian:mean=0:stddev=0.1,
                                    type=uniform:min=0:max=0.1, type=salt:value=0:portion=0.1, seed=0
    --chsum                       Turn into 1-channel image by summing channels (options: weight=r,g,...)
    --colormap MAPNAME            Color map based on channel 0 (arg: "inferno", "viridis", "magma", "turbo",
                                    "plasma", "blue-red", "spectrum", "heat", or comma-separated list of RGB triples)
    --crop GEOM                   Set pixel data resolution and offset, cropping or padding if necessary (WxH+X+Y
                                    or xmin,ymin,xmax,ymax)
    --croptofull                  Crop or pad to make pixel data region match the "full" region
    --trim                        Crop to the minimal ROI containing nonzero pixel values
    --cut GEOM                    Cut out the ROI and reposition to the origin (WxH+X+Y or xmin,ymin,xmax,ymax)
    --paste +X+Y                  Paste fg over bg at the given position (e.g., +100+50; '-' or 'auto' indicates
                                    using the data window position as-is; options: all=%d, mergeroi=%d)
    --pastemeta                   Copy the metadata from the first image to the second image and write the combined
                                    result.
    --mosaic WxH                  Assemble images into a mosaic (arg: WxH; options: pad=0, fit=WxH)
    --over                        'Over' composite of two images
    --zover                       Depth composite two images with Z channels (options: zeroisinf=%d)
    --deepmerge                   Merge/composite two deep images
    --deepholdout                 Hold out one deep image by another
    --rotate90                    Rotate the image 90 degrees clockwise
    --rotate180                   Rotate the image 180 degrees
    --rotate270                   Rotate the image 270 degrees clockwise (or 90 degrees CCW)
    --flip                        Flip the image vertically (top<->bottom)
    --flop                        Flop the image horizontally (left<->right)
    --reorient                    Rotate and/or flop the image to transform the pixels to match the Orientation
                                    metadata
    --transpose                   Transpose the image
    --cshift +X+Y                 Circular shift the image (e.g.: +20-10)
    --resample GEOM               Resample (640x480, 50%) (options: interp=0)
    --resize GEOM                 Resize (640x480, 50%) (options: filter=%s, highlightcomp=%d)
    --fit GEOM                    Resize to fit within a window size (options: filter=%s, pad=%d, fillmode=%s,
                                    exact=%d, highlightcomp=%d)
    --pixelaspect ASPECT          Scale up the image's width or height to match the given pixel aspect ratio
                                    (options: filter=%s, highlightcomp=%d)
    --rotate DEGREES              Rotate pixels (degrees clockwise) around the center of the display window
                                    (options: filter=%s, center=%f,%f, recompute_roi=%d, highlightcomp=%d
    --warp MATRIX                 Warp pixels (argument is a 3x3 matrix, separated by commas) (options: filter=%s,
                                    recompute_roi=%d, highlightcomp=%d)
    --st_warp                     Warp the first image using normalized "st" coordinates from the second image
                                    (options: filter=%s, chan_s=0, chan_t=1, flip_s=0, flip_t=0)
    --convolve                    Convolve with a kernel
    --blur WxH                    Blur the image (options: kernel=name)
    --median WxH                  Median filter the image
    --dilate WxH                  Dilate (area maximum) the image
    --erode WxH                   Erode (area minimum) the image
    --unsharp                     Unsharp mask (options: kernel=gaussian, width=3, contrast=1, threshold=0)
    --laplacian                   Laplacian filter the image
    --fft                         Take the FFT of the image
    --ifft                        Take the inverse FFT of the image
    --polar                       Convert complex (real,imag) to polar (amplitude,phase)
    --unpolar                     Convert polar (amplitude,phase) to complex (real,imag)
    --fixnan STRATEGY             Fix NaN/Inf values in the image (choices: none, black, box3, error)
    --fillholes                   Fill in holes (where alpha is not 1)
    --max                         Pixel-by-pixel max of two images
    --maxc VAL                    Max all values with a scalar or per-channel constants (e.g.: 0.5 or 1,1.25,0.5)
    --maxchan                     Maximum of all channels of the image
    --min                         Pixel-by-pixel min of two images
    --minc VAL                    Min all values with a scalar or per-channel constants (e.g.: 0.5 or 1,1.25,0.5)
    --minchan                     Minimum of all channels of the image
    --clamp                       Clamp values (options: min=..., max=..., clampalpha=0)
    --contrast                    Remap values (options: black=0..., white=1..., sthresh=0.5..., scontrast=1.0...,
                                    gamma=1, clamp=0|1)
    --saturate SCALE              Scale saturation of the color channels
    --rangecompress               Compress the range of pixel values with a log scale (options: luma=0|1)
    --rangeexpand                 Un-rangecompress pixel values back to a linear scale (options: luma=0|1)
    --line X1,Y1,X2,Y2,...        Render a poly-line (options: color=)
    --point X1,Y1,X2,Y2,...       Render points (options: color=)
    --box X1,Y1,X2,Y2             Render a box (options: color=)
    --fill GEOM                   Fill a region (options: color=)
    --text TEXT                   Render text into the current image (options: x=, y=, size=, color=)
Manipulating channels or subimages:
    --ch CHANLIST                 Select or shuffle channels (e.g., "R,G,B", "B,G,R", "2,3,4")
    --chappend                    Append the channels of the last two images
    --unmip                       Discard all but the top level of a MIPmap
    --selectmip MIPLEVEL          Select just one MIP level (0 = highest res)
    --subimage SUBIMAGEINDEX      Select just one subimage by index or name (options: delete=1)
    --sisplit                     Split the top image's subimges into separate images
    --siappend                    Append the last two images into one multi-subimage image
    --siappendall                 Append all images on the stack into a single multi-subimage image
    --deepen                      Deepen normal 2D image to deep
    --flatten                     Flatten deep image to non-deep
Image stack manipulation:
    --dup                         Duplicate the current image (push a copy onto the stack)
    --swap                        Swap the top two images on the stack.
    --pop                         Throw away the current image
    --label %s                    Label the top image
Color management:
    --colorconfig FILENAME        Explicitly specify an OCIO configuration file
    --iscolorspace COLORSPACE     Set the assumed color space (without altering pixels)
    --tocolorspace COLORSPACE     Convert the current image's pixels to a named color space
    --colorconvert SRC DST        Convert pixels from 'src' to 'dst' color space (options: key=, value=,
                                    unpremult=, strict=)
    --ccmatrix MATRIXVALS         Color convert pixels with a 3x3 or 4x4 matrix (options: unpremult=,transpose=)
    --ociolook LOOK               Apply the named OCIO look (options: from=, to=, inverse=, key=, value=,
                                    unpremult=)
    --ociodisplay DISPLAY VIEW    Apply the named OCIO display and view (options: from=, looks=, key=, value=,
                                    unpremult=)
    --ociofiletransform FILENAME  Apply the named OCIO filetransform (options: inverse=, unpremult=)
    --unpremult                   Divide all color channels of the current image by the alpha to "un-premultiply"
    --premult                     Multiply all color channels of the current image by the alpha
    --repremult                   Multiply all color channels of the current image by the alpha, but don't crush
                                    alpha=0 pixels to black.
    --iccwrite FILENAME           Output the current image's ICC profile as a separate file
    --iccread FILENAME            Add the contents of the file to the top image as its ICC profile

Input formats supported: bmp, cineon, dds, dpx, ffmpeg, fits, hdr, ico, iff, jpeg, null, openexr, png, pnm, psd,
    raw, rla, sgi, softimage, targa, tiff, webp, zfile
Output formats supported: bmp, dpx, fits, hdr, ico, iff, jpeg, null, openexr, png, pnm, rla, sgi, targa, term,
    tiff, webp, zfile
No OpenColorIO, color config: built-in
Known color spaces: "linear", "default", "rgb", "RGB", "sRGB", "Rec709"
No OpenColorIO support was enabled at build time.
Filters available: box, triangle, gaussian, sharp-gaussian, catmull-rom, blackman-harris, sinc, lanczos3,
    radial-lanczos3, nuke-lanczos6, mitchell, bspline, disk, cubic, keys, simon, rifman
Dependent libraries: OpenEXR 3.1.7, LIBTIFF Version 4.6.0, jpeg-turbo 2.1.4/jp62, FFMpeg 4.4 (Lavf58.76.100),
    null 1.0, libpng 1.6.39, libraw 0.21.1-Release, Webp 1.2.1
OIIO 2.4.6.0 built for C++14/199711 sse2
Running on 20 cores 31.7GB sse2,sse3,ssse3,sse41,sse42,avx,avx2,fma,f16c,popcnt,rdrand
Full OIIO documentation can be found at
    https://openimageio.readthedocs.io

Full command line was:
> oiiotool.exe --buildinfo

Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 0
Milliseconds      : 552
Ticks             : 5522683
TotalDays         : 6,39199421296296E-06
TotalHours        : 0,000153407861111111
TotalMinutes      : 0,00920447166666667
TotalSeconds      : 0,5522683
TotalMilliseconds : 552,2683

==================
>> oiiotool -info -v input.exr
Reading input.exr
input.exr            : 2996 x 2058, 78 channel, half/half/half/half/float/float/float/float/float/float/float/float/half/half/half/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/half/half/half/half/half/half/half/half/half/half/half/half/half/half/half/half/half/half openexr
    channel list: R (half), G (half), B (half), A (half), Z (float), fresnel (float), N.X (float), N.Y (float), N.Z (float), Pref.X (float), Pref.Y (float), Pref.Z (float), coat.R (half), coat.G (half), coat.B (half), crypto_asset.R (float), crypto_asset.G (float), crypto_asset.B (float), crypto_asset00.R (float), crypto_asset00.G (float), crypto_asset00.B (float), crypto_asset00.A (float), crypto_asset01.R (float), crypto_asset01.G (float), crypto_asset01.B (float), crypto_asset01.A (float), crypto_asset02.R (float), crypto_asset02.G (float), crypto_asset02.B (float), crypto_asset02.A (float), crypto_material.R (float), crypto_material.G (float), crypto_material.B (float), crypto_material00.R (float), crypto_material00.G (float), crypto_material00.B (float), crypto_material00.A (float), crypto_material01.R (float), crypto_material01.G (float), crypto_material01.B (float), crypto_material01.A (float), crypto_material02.R (float), crypto_material02.G (float), crypto_material02.B (float), crypto_material02.A (float), crypto_object.R (float), crypto_object.G (float), crypto_object.B (float), crypto_object00.R (float), crypto_object00.G (float), crypto_object00.B (float), crypto_object00.A (float), crypto_object01.R (float), crypto_object01.G (float), crypto_object01.B (float), crypto_object01.A (float), crypto_object02.R (float), crypto_object02.G (float), crypto_object02.B (float), crypto_object02.A (float), diffuse_direct.R (half), diffuse_direct.G (half), diffuse_direct.B (half), diffuse_indirect.R (half), diffuse_indirect.G (half), diffuse_indirect.B (half), emission.R (half), emission.G (half), emission.B (half), specular_direct.R (half), specular_direct.G (half), specular_direct.B (half), specular_indirect.R (half), specular_indirect.G (half), specular_indirect.B (half), sss.R (half), sss.G (half), sss.B (half)
    tile size: 64 x 64
    arnold/AA_adaptive_threshold: 0.015
    arnold/AA_samples: 2
    arnold/AA_samples_max: 2
    arnold/AA_seed: 344023205
    arnold/aovs/coat/filter: "gaussian_filter"
    arnold/aovs/coat/filter_width: 2
    arnold/aovs/coat/lpe: 1
    arnold/aovs/coat/lpe_expression: "C<RS'coat'>.*"
    arnold/aovs/coat/source: "coat"
    arnold/aovs/crypto_asset/filter: "cryptomatte_filter"
    arnold/aovs/crypto_asset/filter_width: 2
    arnold/aovs/crypto_asset/source: "crypto_asset"
    arnold/aovs/crypto_asset00/filter: "cryptomatte_filter"
    arnold/aovs/crypto_asset00/filter_width: 2
    arnold/aovs/crypto_asset00/source: "crypto_asset00"
    arnold/aovs/crypto_asset01/filter: "cryptomatte_filter"
    arnold/aovs/crypto_asset01/filter_width: 2
    arnold/aovs/crypto_asset01/source: "crypto_asset01"
    arnold/aovs/crypto_asset02/filter: "cryptomatte_filter"
    arnold/aovs/crypto_asset02/filter_width: 2
    arnold/aovs/crypto_asset02/source: "crypto_asset02"
    arnold/aovs/crypto_material/filter: "cryptomatte_filter"
    arnold/aovs/crypto_material/filter_width: 2
    arnold/aovs/crypto_material/source: "crypto_material"
    arnold/aovs/crypto_material00/filter: "cryptomatte_filter"
    arnold/aovs/crypto_material00/filter_width: 2
    arnold/aovs/crypto_material00/source: "crypto_material00"
    arnold/aovs/crypto_material01/filter: "cryptomatte_filter"
    arnold/aovs/crypto_material01/filter_width: 2
    arnold/aovs/crypto_material01/source: "crypto_material01"
    arnold/aovs/crypto_material02/filter: "cryptomatte_filter"
    arnold/aovs/crypto_material02/filter_width: 2
    arnold/aovs/crypto_material02/source: "crypto_material02"
    arnold/aovs/crypto_object/filter: "cryptomatte_filter"
    arnold/aovs/crypto_object/filter_width: 2
    arnold/aovs/crypto_object/source: "crypto_object"
    arnold/aovs/crypto_object00/filter: "cryptomatte_filter"
    arnold/aovs/crypto_object00/filter_width: 2
    arnold/aovs/crypto_object00/source: "crypto_object00"
    arnold/aovs/crypto_object01/filter: "cryptomatte_filter"
    arnold/aovs/crypto_object01/filter_width: 2
    arnold/aovs/crypto_object01/source: "crypto_object01"
    arnold/aovs/crypto_object02/filter: "cryptomatte_filter"
    arnold/aovs/crypto_object02/filter_width: 2
    arnold/aovs/crypto_object02/source: "crypto_object02"
    arnold/aovs/diffuse_direct/filter: "gaussian_filter"
    arnold/aovs/diffuse_direct/filter_width: 2
    arnold/aovs/diffuse_direct/lpe: 1
    arnold/aovs/diffuse_direct/lpe_expression: "C<RD>L"
    arnold/aovs/diffuse_direct/source: "diffuse_direct"
    arnold/aovs/diffuse_indirect/filter: "gaussian_filter"
    arnold/aovs/diffuse_indirect/filter_width: 2
    arnold/aovs/diffuse_indirect/lpe: 1
    arnold/aovs/diffuse_indirect/lpe_expression: "C<RD>[DSVOB].*"
    arnold/aovs/diffuse_indirect/source: "diffuse_indirect"
    arnold/aovs/emission/filter: "gaussian_filter"
    arnold/aovs/emission/filter_width: 2
    arnold/aovs/emission/lpe: 1
    arnold/aovs/emission/lpe_expression: "C[LO]"
    arnold/aovs/emission/source: "emission"
    arnold/aovs/fresnel/filter: "box_filter"
    arnold/aovs/fresnel/source: "fresnel"
    arnold/aovs/N/filter: "box_filter"
    arnold/aovs/N/source: "N"
    arnold/aovs/Pref/filter: "box_filter"
    arnold/aovs/Pref/source: "Pref"
    arnold/aovs/RGBA/filter: "gaussian_filter"
    arnold/aovs/RGBA/filter_width: 2
    arnold/aovs/RGBA/lpe: 1
    arnold/aovs/RGBA/lpe_expression: "C.*"
    arnold/aovs/RGBA/source: "RGBA"
    arnold/aovs/specular_direct/filter: "gaussian_filter"
    arnold/aovs/specular_direct/filter_width: 2
    arnold/aovs/specular_direct/lpe: 1
    arnold/aovs/specular_direct/lpe_expression: "C<RS[^'coat''sheen']>L"
    arnold/aovs/specular_direct/source: "specular_direct"
    arnold/aovs/specular_indirect/filter: "gaussian_filter"
    arnold/aovs/specular_indirect/filter_width: 2
    arnold/aovs/specular_indirect/lpe: 1
    arnold/aovs/specular_indirect/lpe_expression: "C<RS[^'coat''sheen']>[DSVOB].*"
    arnold/aovs/specular_indirect/source: "specular_indirect"
    arnold/aovs/sss/filter: "gaussian_filter"
    arnold/aovs/sss/filter_width: 2
    arnold/aovs/sss/lpe: 1
    arnold/aovs/sss/lpe_expression: "C<TD>.*"
    arnold/aovs/sss/source: "sss"
    arnold/aovs/Z/filter: "box_filter"
    arnold/aovs/Z/source: "Z"
    arnold/auto_transparency_depth: 10
    arnold/bounds_max_x: 2995
    arnold/bounds_max_y: 2057
    arnold/bounds_min_x: 0
    arnold/bounds_min_y: 0
    arnold/camera/far_clip: 1000
    arnold/camera/near_clip: 0.1
    arnold/color_manager: "color_manager_ocio"
    arnold/color_space: "ACEScg"
    arnold/diffuse_depth: 1
    arnold/diffuse_samples: 2
    arnold/fis_filter: "gaussian"
    arnold/fis_filter_width: 2
    arnold/fps: 24
    arnold/frame: 0
    arnold/host/hw: "1 x AMD Ryzen 9 9950X 16-Core Processor  (16 cores, 32 logical) with 130710MB"
    arnold/host/name: "Maqina-RTX-09"
    arnold/host/os: "Windows 10 (version 10.0, build 26100)"
    arnold/license_state: "valid"
    arnold/specular_depth: 1
    arnold/specular_samples: 2
    arnold/sss_samples: 3
    arnold/stats/date: "Tue Apr  1 23:27:34 2025"
    arnold/stats/geo/curve_segments: 8.65504e+07
    arnold/stats/geo/triangles: 1.94083e+06
    arnold/stats/memory/peak: 26679
    arnold/stats/memory/start: 408.539
    arnold/stats/rays/all/pixel: 147.915
    arnold/stats/rays/all/total: 9.12007e+08
    arnold/stats/rays/camera/pixel: 4.25781
    arnold/stats/rays/camera/total: 2.62526e+07
    arnold/stats/time/render: 62.2762
    arnold/stats/time/setup: 34.9591
    arnold/texture_max_memory_MB: 4096
    arnold/threads: 31
    arnold/total_depth: 10
    arnold/transmission_depth: 8
    arnold/transmission_samples: 2
    arnold/version: "Arnold 7.4.1.0 [cc3e15d4] windows x86_64 clang-15.0.7 oiio-2.6.3 osl-1.13.3 vdb-11.0.0 adlsdk-9.5.0.53 clmhub-3.1.1.43 rlm-14.2.5 optix-8.0.0 2025/03/25 22:00:52"
    arnold/volume_depth: 0
    arnold/volume_samples: 2
    CameraFilmApertureHorizontal: 1
    CameraFilmApertureVertical: 0.686916
    CameraFocalLength: 1.25045
    CameraFov: 43.5887
    compression: "zip"
    cryptomatte/28322e9/conversion: "uint32_to_float32"
    cryptomatte/28322e9/hash: "MurmurHash3_32"
    cryptomatte/28322e9/manifest: "{"\/character\/char_toy_bear\/geo\/body_GES":"0c1755c6","\/character\/prop_toy_robot\/geo\/Leg_L_GRP\/Foot_L_GRP":"ba7b541c","\/tracking_data\/standin_geo\/floor\/object0":"60863094","\/ibl_reference\/geo":"d6136e07","\/character\/char_toy_bear\/geo\/screen_content_GES":"e635431b","\/character\/prop_toy_robot\/geo\/arm_L_GRP\/lower_arm_L_GRP":"405d1859","\/tracking_data\/standin_geo\/modelTable_var02_bear_si_Geo_shoot02\/root\/si_Geo_shoot02\/geo\/table_02_Geo_shoot02\/geo\/table_bear_GRP\/plateau_GES\/plateau_GESShape":"942f71c3","\/character\/char_slimpie\/geo\/knob_GRP":"1aeefe43","\/tracking_data\/standin_geo\/modelTable_var02_bear_si_Geo_shoot02\/root\/si_Geo_shoot02\/geo\/table_02_Geo_shoot02\/geo\/table_bear_GRP\/stand_GES\/stand_GESShape":"b92ec3b5","\/character\/char_slimpie\/geo":"836fefe9","\/character\/char_toy_bear\/geo\/R_arm_GES":"eadaa9f9","\/character\/prop_toy_robot\/geo\/head_GRP":"01fe1f3a","\/character\/char_slimpie\/geo\/bottom_GRP":"5891ac94","\/character\/char_toy_bear\/geo\/screen_GES":"150214e7","\/character\/prop_toy_robot\/geo":"b8488925","\/character\/char_toy_bear\/geo\/bowtie_GES":"71e3e13a","\/character\/prop_toy_robot\/geo\/Leg_R_GRP":"95ef728e","\/character\/prop_toy_robot\/geo\/Leg_R_GRP\/Foot_R_GRP":"6322670f","\/character\/prop_toy_robot\/geo\/Leg_L_GRP":"eae7695f","\/character\/prop_toy_robot\/geo\/arm_L_GRP":"b25c21ed","\/character\/prop_toy_robot\/geo\/arm_R_GRP":"502906f5","\/character\/char_toy_bear\/geo\/eyes_GES":"b552ae8d","\/character\/prop_toy_robot\/geo\/arm_R_GRP\/lower_arm_R_GRP":"b2774a0b","\/character\/char_toy_bear\/geo\/mouth_GES":"d80ebb77","\/character\/char_toy_bear\/geo\/R_leg_GES":"21ff5e23","\/character\/char_toy_bear\/geo\/head_GES":"fee96276","\/character\/char_toy_bear\/geo\/ears_GES":"4690de75","\/character\/char_toy_bear\/geo\/L_arm_GES":"c1324b6a","\/character\/char_toy_bear\/geo\/L_leg_GES":"8c47a8a3","\/character\/char_toy_bear\/groom":"f42842ac"}"
    cryptomatte/28322e9/name: "crypto_asset"
    cryptomatte/bda530a/conversion: "uint32_to_float32"
    cryptomatte/bda530a/hash: "MurmurHash3_32"
    cryptomatte/bda530a/manifest: "{"inside_MTL":"55ce85ef","screen":"aa0ac5dc","flat1":"3654a9dc","glass":"c17feb92","glass_MTL":"ac128a30","bottom_MTL":"c4f1e999","metal_MTL":"cfe4893e","grid_MTL":"15db812d","robot":"5527a8c0","eyes":"3c4b7c32","standard_surface1":"0105d8b5","standard_hair1":"2ab1a9c2","mtlxstandard_surface1":"75baba89"}"
    cryptomatte/bda530a/name: "crypto_material"
    cryptomatte/f834d0a/conversion: "uint32_to_float32"
    cryptomatte/f834d0a/hash: "MurmurHash3_32"
    cryptomatte/f834d0a/manifest: "{"bottom_GES":"aa0490fc","Leg_1_R_GES":"4c203bc5","Battery_Cover_GES":"750f9523","mesh":"6e4fa4ca","glass_GES":"7b37169c","ring_GES":"1304f4e7","iron_ring_GES":"2ff0cc0c","gauze_GES":"11c6b11a","inside_GES":"6f2ed9e9","edges_GES":"cde92053","Hand_2_L_Screw_GES":"8d90284d","Head_Part_1_GES":"02911e82","sun_GES":"10d032c8","Torso_GES":"86600e7a","Torso_Screw_GES":"83618a0c","Hand_1_R_GES":"e87e2e36","Glass_Frame_GES":"011881d0","Head_Part_3_GES":"1a0ed5af","Head_Screws_GES":"1248f152","Battery_Cover_Screw_GES":"8805c3d6","bowtie_GESShape":"dc4c0117","Leg_2_R_Screw_GES":"389a3a2a","Head_Part_2_GES":"b532b23d","Head_GES":"4fb77ec7","Glass_GES":"987d699e","Hand_3_L_GES":"e34a71f6","On_Button_GES":"618cf0b9","body_GESShape":"25b88caf","Neck_GES":"2bc65cdb","Leg_2_L_001_GES":"53e018ab","Leg_1_L_GES":"7d0f8166","Leg_2_L_Screw_GES":"793ad8a8","ears_GESShape":"16c1ac47","R_arm_GESShape":"be9c3d65","Leg_2_L_GES":"f3b89228","Hand_1_L_GES":"5c23e33c","Hand_2_L_GES":"3b2904c8","Hand_3_R_GES":"c37e91c9","Hand_2_R_GES":"0c618d5f","Hand_2_R_Screw_GES":"4b242b9b","mouth_GESShape":"da3d7f9b","eyes_GESShape":"90a3f8b0","R_leg_GESShape":"6179a9d9","head_GESShape":"93df4f06","L_arm_GESShape":"7f268699","L_leg_GESShape":"12b7c567","screen_GESShape":"f6a369a2","screen_content_GESShape":"db3f30d4","hair":"65edc56d","hair_short":"9c921132","chrome_ball":"fb15e188","grey_ball":"be20df01","macbeth":"c9d74198"}"
    cryptomatte/f834d0a/name: "crypto_object"
    DateTime: "2025:04:01 23:27:34"
    PixelAspectRatio: 1
    screenWindowCenter: 0, 0
    screenWindowWidth: 1
    worldToCamera: -0.997227, -0.00747155, -0.0740386, 0, 0.00675685, 0.981745, -0.19008, 0, -0.0741072, 0.190054, 0.978973, 0, 10.2405, -31.8519, 57.6854, 1
    worldToScreen: -2.49396, -0.0272021, -0.074046, -0.0740386, 0.0168982, 3.5743, -0.190099, -0.19008, -0.185334, 0.691938, 0.979071, 0.978973, 25.6105, -115.965, 57.5912, 57.6854
    oiio:ColorSpace: "Linear"
    oiio:subimages: 1
Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 0
Milliseconds      : 150
Ticks             : 1503675
TotalDays         : 1,74036458333333E-06
TotalHours        : 4,176875E-05
TotalMinutes      : 0,002506125
TotalSeconds      : 0,1503675
TotalMilliseconds : 150,3675

==================
>> oiiotool -v input.exr -o output.exr
Reading input.exr
Writing output.exr
Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 11
Milliseconds      : 488
Ticks             : 114889478
TotalDays         : 0,00013297393287037
TotalHours        : 0,00319137438888889
TotalMinutes      : 0,191482463333333
TotalSeconds      : 11,4889478
TotalMilliseconds : 11488,9478

==================
>> oiiotool -v input.exr -o output.png
Reading input.exr
oiiotool WARNING: -o : Can't save 78 channels to png... saving only R,G,B,A
Writing output.png
Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 6
Milliseconds      : 538
Ticks             : 65381538
TotalDays         : 7,56730763888889E-05
TotalHours        : 0,00181615383333333
TotalMinutes      : 0,10896923
TotalSeconds      : 6,5381538
TotalMilliseconds : 6538,1538

==================
>> oiiotool --runstats -v input.exr -o output.png
Reading input.exr
oiiotool WARNING: -o : Can't save 78 channels to png... saving only R,G,B,A
Writing output.png

Threads: 20
oiiotool runtime statistics:
  Total time: 6.38s
      -i           : 91.42
      -o           :  0.46
  Peak memory:    2.1 GB
  Current memory: 2.0 GB

OpenImageIO ImageCache statistics (shared) ver 2.4.6.0
  Options:  max_memory_MB=4096.0 max_open_files=100 autotile=0
            autoscanline=false automip=false forcefloat=true
            accept_untiled=true accept_unmipped=true deduplicate=true
            unassociatedalpha=false failure_retries=0 openexr:core=0
  Images : 1 unique
    ImageInputs : 2 created, 1 current, 1 peak
    Total pixel data size of all images referenced : 1.8 GB
    Total actual file size of all images referenced : 53.9 MB
    Pixel data read : 1.8 GB
    File I/O time : 1m 31.4s (4.6s average per thread, for 20 threads)
    File open time only : 0.0s
    ImageInput mutex locking time : 0.1s
  Tiles: 1722 created, 1551 current, 1551 peak
    total tile requests : 96726
    micro-cache misses : 96726 (100.0%)
    main cache misses : 1722 (1.8%)
    redundant reads: 0 tiles, 0 B
    Peak cache memory : 1.8 GB
  Image file statistics:
        opens   tiles    MB read   --redundant--   I/O time  res              File
      1    2     1551     1890.3                  1m 31.4s   2996x2058x78.f32  input.exr

  Tot:     2     1551     1890.3   (    0    0.0) 1m 31.4s
  Broken or invalid files: 0

Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 6
Milliseconds      : 484
Ticks             : 64844786
TotalDays         : 7,50518356481481E-05
TotalHours        : 0,00180124405555556
TotalMinutes      : 0,108074643333333
TotalSeconds      : 6,4844786
TotalMilliseconds : 6484,4786

==================
>> oiiotool -v -i:ch=R,G,B,A input.exr -ch R=R,G=G,B=B,A=A -o output.png
Reading input.exr
Writing output.png
Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 5
Milliseconds      : 112
Ticks             : 51126505
TotalDays         : 5,91741956018519E-05
TotalHours        : 0,00142018069444444
TotalMinutes      : 0,0852108416666667
TotalSeconds      : 5,1126505
TotalMilliseconds : 5112,6505

==================
>> oiiotool -v -i:ch=R,G,B,A input.exr -o output.png
Reading input.exr
Writing output.png
Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 5
Milliseconds      : 129
Ticks             : 51291879
TotalDays         : 5,93656006944444E-05
TotalHours        : 0,00142477441666667
TotalMinutes      : 0,085486465
TotalSeconds      : 5,1291879
TotalMilliseconds : 5129,1879

==================
>> oiiotool -v input.exr -ch R=R,G=G,B=B,A=A -o output.png
Reading input.exr
Writing output.png
Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 6
Milliseconds      : 600
Ticks             : 66008067
TotalDays         : 7,63982256944444E-05
TotalHours        : 0,00183355741666667
TotalMinutes      : 0,110013445
TotalSeconds      : 6,6008067
TotalMilliseconds : 6600,8067

==================
>> oiiotool -i:ch=R,G,B,A input.exr --cut 1x1 -o out.exr
Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 4
Milliseconds      : 592
Ticks             : 45921787
TotalDays         : 5,31502164351852E-05
TotalHours        : 0,00127560519444444
TotalMinutes      : 0,0765363116666667
TotalSeconds      : 4,5921787
TotalMilliseconds : 4592,1787

@BigRoy
Copy link
Author

BigRoy commented Apr 22, 2025

Testing on a different faster/newer machine on my end in Windows 11:

  • Windows 11
  • AMD Ryzen 9 9900X 12-Core Processor (4.40 Ghz)
  • 128 GB RAM
  • 12 GB GPU

3.1.1.0dev

==================
>> oiiotool --buildinfo
OIIO 3.1.1.0dev | unknown arch?
    Build compiler: MSVS 1943 | C++17/199711
    HW features enabled at build: sse2
    No CUDA support (disabled / unavailable at build time)
Dependencies: BZip2 NONE, DCMTK NONE, expat 2.7.1, FFmpeg NONE, fmt 10.2.1, Freetype 2.13.2, GIF NONE, Imath
    3.2.0, JPEG 80, JXL NONE, Libheif NONE, libjpeg-turbo 3.0.4, LibRaw NONE, libuhdr, minizip-ng 4.0.7, OpenColorIO
    2.4.1, OpenCV NONE, OpenEXR 3.4.0, OpenJPEG NONE, PNG 1.6.47, Ptex NONE, Ptex NONE, pystring, Robinmap 1.4.0, TBB
    NONE, TIFF 4.6.0, WebP 1.4.0, yaml-cpp 0.8.0, ZLIB 1.3.1, ZLIB 1.3.1


Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 0
Milliseconds      : 597
Ticks             : 5971218
TotalDays         : 6,91113194444444E-06
TotalHours        : 0,000165867166666667
TotalMinutes      : 0,00995203
TotalSeconds      : 0,5971218
TotalMilliseconds : 597,1218

==================
>> oiiotool -info -v input.exr
Reading input.exr
input.exr            : 2996 x 2058, 78 channel, half/half/half/half/float/float/float/float/float/float/float/float/half/half/half/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/half/half/half/half/half/half/half/half/half/half/half/half/half/half/half/half/half/half openexr
    channel list: R (half), G (half), B (half), A (half), Z (float), fresnel (float), N.X (float), N.Y (float), N.Z (float), Pref.X (float), Pref.Y (float), Pref.Z (float), coat.R (half), coat.G (half), coat.B (half), crypto_asset.R (float), crypto_asset.G (float), crypto_asset.B (float), crypto_asset00.R (float), crypto_asset00.G (float), crypto_asset00.B (float), crypto_asset00.A (float), crypto_asset01.R (float), crypto_asset01.G (float), crypto_asset01.B (float), crypto_asset01.A (float), crypto_asset02.R (float), crypto_asset02.G (float), crypto_asset02.B (float), crypto_asset02.A (float), crypto_material.R (float), crypto_material.G (float), crypto_material.B (float), crypto_material00.R (float), crypto_material00.G (float), crypto_material00.B (float), crypto_material00.A (float), crypto_material01.R (float), crypto_material01.G (float), crypto_material01.B (float), crypto_material01.A (float), crypto_material02.R (float), crypto_material02.G (float), crypto_material02.B (float), crypto_material02.A (float), crypto_object.R (float), crypto_object.G (float), crypto_object.B (float), crypto_object00.R (float), crypto_object00.G (float), crypto_object00.B (float), crypto_object00.A (float), crypto_object01.R (float), crypto_object01.G (float), crypto_object01.B (float), crypto_object01.A (float), crypto_object02.R (float), crypto_object02.G (float), crypto_object02.B (float), crypto_object02.A (float), diffuse_direct.R (half), diffuse_direct.G (half), diffuse_direct.B (half), diffuse_indirect.R (half), diffuse_indirect.G (half), diffuse_indirect.B (half), emission.R (half), emission.G (half), emission.B (half), specular_direct.R (half), specular_direct.G (half), specular_direct.B (half), specular_indirect.R (half), specular_indirect.G (half), specular_indirect.B (half), sss.R (half), sss.G (half), sss.B (half)
    tile size: 64 x 64
    arnold/AA_adaptive_threshold: 0.015
    arnold/AA_samples: 2
    arnold/AA_samples_max: 2
    arnold/AA_seed: 344023205
    arnold/aovs/coat/filter: "gaussian_filter"
    arnold/aovs/coat/filter_width: 2
    arnold/aovs/coat/lpe: 1
    arnold/aovs/coat/lpe_expression: "C<RS'coat'>.*"
    arnold/aovs/coat/source: "coat"
    arnold/aovs/crypto_asset/filter: "cryptomatte_filter"
    arnold/aovs/crypto_asset/filter_width: 2
    arnold/aovs/crypto_asset/source: "crypto_asset"
    arnold/aovs/crypto_asset00/filter: "cryptomatte_filter"
    arnold/aovs/crypto_asset00/filter_width: 2
    arnold/aovs/crypto_asset00/source: "crypto_asset00"
    arnold/aovs/crypto_asset01/filter: "cryptomatte_filter"
    arnold/aovs/crypto_asset01/filter_width: 2
    arnold/aovs/crypto_asset01/source: "crypto_asset01"
    arnold/aovs/crypto_asset02/filter: "cryptomatte_filter"
    arnold/aovs/crypto_asset02/filter_width: 2
    arnold/aovs/crypto_asset02/source: "crypto_asset02"
    arnold/aovs/crypto_material/filter: "cryptomatte_filter"
    arnold/aovs/crypto_material/filter_width: 2
    arnold/aovs/crypto_material/source: "crypto_material"
    arnold/aovs/crypto_material00/filter: "cryptomatte_filter"
    arnold/aovs/crypto_material00/filter_width: 2
    arnold/aovs/crypto_material00/source: "crypto_material00"
    arnold/aovs/crypto_material01/filter: "cryptomatte_filter"
    arnold/aovs/crypto_material01/filter_width: 2
    arnold/aovs/crypto_material01/source: "crypto_material01"
    arnold/aovs/crypto_material02/filter: "cryptomatte_filter"
    arnold/aovs/crypto_material02/filter_width: 2
    arnold/aovs/crypto_material02/source: "crypto_material02"
    arnold/aovs/crypto_object/filter: "cryptomatte_filter"
    arnold/aovs/crypto_object/filter_width: 2
    arnold/aovs/crypto_object/source: "crypto_object"
    arnold/aovs/crypto_object00/filter: "cryptomatte_filter"
    arnold/aovs/crypto_object00/filter_width: 2
    arnold/aovs/crypto_object00/source: "crypto_object00"
    arnold/aovs/crypto_object01/filter: "cryptomatte_filter"
    arnold/aovs/crypto_object01/filter_width: 2
    arnold/aovs/crypto_object01/source: "crypto_object01"
    arnold/aovs/crypto_object02/filter: "cryptomatte_filter"
    arnold/aovs/crypto_object02/filter_width: 2
    arnold/aovs/crypto_object02/source: "crypto_object02"
    arnold/aovs/diffuse_direct/filter: "gaussian_filter"
    arnold/aovs/diffuse_direct/filter_width: 2
    arnold/aovs/diffuse_direct/lpe: 1
    arnold/aovs/diffuse_direct/lpe_expression: "C<RD>L"
    arnold/aovs/diffuse_direct/source: "diffuse_direct"
    arnold/aovs/diffuse_indirect/filter: "gaussian_filter"
    arnold/aovs/diffuse_indirect/filter_width: 2
    arnold/aovs/diffuse_indirect/lpe: 1
    arnold/aovs/diffuse_indirect/lpe_expression: "C<RD>[DSVOB].*"
    arnold/aovs/diffuse_indirect/source: "diffuse_indirect"
    arnold/aovs/emission/filter: "gaussian_filter"
    arnold/aovs/emission/filter_width: 2
    arnold/aovs/emission/lpe: 1
    arnold/aovs/emission/lpe_expression: "C[LO]"
    arnold/aovs/emission/source: "emission"
    arnold/aovs/fresnel/filter: "box_filter"
    arnold/aovs/fresnel/source: "fresnel"
    arnold/aovs/N/filter: "box_filter"
    arnold/aovs/N/source: "N"
    arnold/aovs/Pref/filter: "box_filter"
    arnold/aovs/Pref/source: "Pref"
    arnold/aovs/RGBA/filter: "gaussian_filter"
    arnold/aovs/RGBA/filter_width: 2
    arnold/aovs/RGBA/lpe: 1
    arnold/aovs/RGBA/lpe_expression: "C.*"
    arnold/aovs/RGBA/source: "RGBA"
    arnold/aovs/specular_direct/filter: "gaussian_filter"
    arnold/aovs/specular_direct/filter_width: 2
    arnold/aovs/specular_direct/lpe: 1
    arnold/aovs/specular_direct/lpe_expression: "C<RS[^'coat''sheen']>L"
    arnold/aovs/specular_direct/source: "specular_direct"
    arnold/aovs/specular_indirect/filter: "gaussian_filter"
    arnold/aovs/specular_indirect/filter_width: 2
    arnold/aovs/specular_indirect/lpe: 1
    arnold/aovs/specular_indirect/lpe_expression: "C<RS[^'coat''sheen']>[DSVOB].*"
    arnold/aovs/specular_indirect/source: "specular_indirect"
    arnold/aovs/sss/filter: "gaussian_filter"
    arnold/aovs/sss/filter_width: 2
    arnold/aovs/sss/lpe: 1
    arnold/aovs/sss/lpe_expression: "C<TD>.*"
    arnold/aovs/sss/source: "sss"
    arnold/aovs/Z/filter: "box_filter"
    arnold/aovs/Z/source: "Z"
    arnold/auto_transparency_depth: 10
    arnold/bounds_max_x: 2995
    arnold/bounds_max_y: 2057
    arnold/bounds_min_x: 0
    arnold/bounds_min_y: 0
    arnold/camera/far_clip: 1000
    arnold/camera/near_clip: 0.1
    arnold/color_manager: "color_manager_ocio"
    arnold/color_space: "ACEScg"
    arnold/diffuse_depth: 1
    arnold/diffuse_samples: 2
    arnold/fis_filter: "gaussian"
    arnold/fis_filter_width: 2
    arnold/fps: 24
    arnold/frame: 0
    arnold/host/hw: "1 x AMD Ryzen 9 9950X 16-Core Processor  (16 cores, 32 logical) with 130710MB"
    arnold/host/name: "Maqina-RTX-09"
    arnold/host/os: "Windows 10 (version 10.0, build 26100)"
    arnold/license_state: "valid"
    arnold/specular_depth: 1
    arnold/specular_samples: 2
    arnold/sss_samples: 3
    arnold/stats/date: "Tue Apr  1 23:27:34 2025"
    arnold/stats/geo/curve_segments: 8.65504e+07
    arnold/stats/geo/triangles: 1.94083e+06
    arnold/stats/memory/peak: 26679
    arnold/stats/memory/start: 408.539
    arnold/stats/rays/all/pixel: 147.915
    arnold/stats/rays/all/total: 9.12007e+08
    arnold/stats/rays/camera/pixel: 4.25781
    arnold/stats/rays/camera/total: 2.62526e+07
    arnold/stats/time/render: 62.2762
    arnold/stats/time/setup: 34.9591
    arnold/texture_max_memory_MB: 4096
    arnold/threads: 31
    arnold/total_depth: 10
    arnold/transmission_depth: 8
    arnold/transmission_samples: 2
    arnold/version: "Arnold 7.4.1.0 [cc3e15d4] windows x86_64 clang-15.0.7 oiio-2.6.3 osl-1.13.3 vdb-11.0.0 adlsdk-9.5.0.53 clmhub-3.1.1.43 rlm-14.2.5 optix-8.0.0 2025/03/25 22:00:52"
    arnold/volume_depth: 0
    arnold/volume_samples: 2
    CameraFilmApertureHorizontal: 1
    CameraFilmApertureVertical: 0.686916
    CameraFocalLength: 1.25045
    CameraFov: 43.5887
    compression: "zip"
    cryptomatte/28322e9/conversion: "uint32_to_float32"
    cryptomatte/28322e9/hash: "MurmurHash3_32"
    cryptomatte/28322e9/manifest: "{"\/character\/char_toy_bear\/geo\/body_GES":"0c1755c6","\/character\/prop_toy_robot\/geo\/Leg_L_GRP\/Foot_L_GRP":"ba7b541c","\/tracking_data\/standin_geo\/floor\/object0":"60863094","\/ibl_reference\/geo":"d6136e07","\/character\/char_toy_bear\/geo\/screen_content_GES":"e635431b","\/character\/prop_toy_robot\/geo\/arm_L_GRP\/lower_arm_L_GRP":"405d1859","\/tracking_data\/standin_geo\/modelTable_var02_bear_si_Geo_shoot02\/root\/si_Geo_shoot02\/geo\/table_02_Geo_shoot02\/geo\/table_bear_GRP\/plateau_GES\/plateau_GESShape":"942f71c3","\/character\/char_slimpie\/geo\/knob_GRP":"1aeefe43","\/tracking_data\/standin_geo\/modelTable_var02_bear_si_Geo_shoot02\/root\/si_Geo_shoot02\/geo\/table_02_Geo_shoot02\/geo\/table_bear_GRP\/stand_GES\/stand_GESShape":"b92ec3b5","\/character\/char_slimpie\/geo":"836fefe9","\/character\/char_toy_bear\/geo\/R_arm_GES":"eadaa9f9","\/character\/prop_toy_robot\/geo\/head_GRP":"01fe1f3a","\/character\/char_slimpie\/geo\/bottom_GRP":"5891ac94","\/character\/char_toy_bear\/geo\/screen_GES":"150214e7","\/character\/prop_toy_robot\/geo":"b8488925","\/character\/char_toy_bear\/geo\/bowtie_GES":"71e3e13a","\/character\/prop_toy_robot\/geo\/Leg_R_GRP":"95ef728e","\/character\/prop_toy_robot\/geo\/Leg_R_GRP\/Foot_R_GRP":"6322670f","\/character\/prop_toy_robot\/geo\/Leg_L_GRP":"eae7695f","\/character\/prop_toy_robot\/geo\/arm_L_GRP":"b25c21ed","\/character\/prop_toy_robot\/geo\/arm_R_GRP":"502906f5","\/character\/char_toy_bear\/geo\/eyes_GES":"b552ae8d","\/character\/prop_toy_robot\/geo\/arm_R_GRP\/lower_arm_R_GRP":"b2774a0b","\/character\/char_toy_bear\/geo\/mouth_GES":"d80ebb77","\/character\/char_toy_bear\/geo\/R_leg_GES":"21ff5e23","\/character\/char_toy_bear\/geo\/head_GES":"fee96276","\/character\/char_toy_bear\/geo\/ears_GES":"4690de75","\/character\/char_toy_bear\/geo\/L_arm_GES":"c1324b6a","\/character\/char_toy_bear\/geo\/L_leg_GES":"8c47a8a3","\/character\/char_toy_bear\/groom":"f42842ac"}"
    cryptomatte/28322e9/name: "crypto_asset"
    cryptomatte/bda530a/conversion: "uint32_to_float32"
    cryptomatte/bda530a/hash: "MurmurHash3_32"
    cryptomatte/bda530a/manifest: "{"inside_MTL":"55ce85ef","screen":"aa0ac5dc","flat1":"3654a9dc","glass":"c17feb92","glass_MTL":"ac128a30","bottom_MTL":"c4f1e999","metal_MTL":"cfe4893e","grid_MTL":"15db812d","robot":"5527a8c0","eyes":"3c4b7c32","standard_surface1":"0105d8b5","standard_hair1":"2ab1a9c2","mtlxstandard_surface1":"75baba89"}"
    cryptomatte/bda530a/name: "crypto_material"
    cryptomatte/f834d0a/conversion: "uint32_to_float32"
    cryptomatte/f834d0a/hash: "MurmurHash3_32"
    cryptomatte/f834d0a/manifest: "{"bottom_GES":"aa0490fc","Leg_1_R_GES":"4c203bc5","Battery_Cover_GES":"750f9523","mesh":"6e4fa4ca","glass_GES":"7b37169c","ring_GES":"1304f4e7","iron_ring_GES":"2ff0cc0c","gauze_GES":"11c6b11a","inside_GES":"6f2ed9e9","edges_GES":"cde92053","Hand_2_L_Screw_GES":"8d90284d","Head_Part_1_GES":"02911e82","sun_GES":"10d032c8","Torso_GES":"86600e7a","Torso_Screw_GES":"83618a0c","Hand_1_R_GES":"e87e2e36","Glass_Frame_GES":"011881d0","Head_Part_3_GES":"1a0ed5af","Head_Screws_GES":"1248f152","Battery_Cover_Screw_GES":"8805c3d6","bowtie_GESShape":"dc4c0117","Leg_2_R_Screw_GES":"389a3a2a","Head_Part_2_GES":"b532b23d","Head_GES":"4fb77ec7","Glass_GES":"987d699e","Hand_3_L_GES":"e34a71f6","On_Button_GES":"618cf0b9","body_GESShape":"25b88caf","Neck_GES":"2bc65cdb","Leg_2_L_001_GES":"53e018ab","Leg_1_L_GES":"7d0f8166","Leg_2_L_Screw_GES":"793ad8a8","ears_GESShape":"16c1ac47","R_arm_GESShape":"be9c3d65","Leg_2_L_GES":"f3b89228","Hand_1_L_GES":"5c23e33c","Hand_2_L_GES":"3b2904c8","Hand_3_R_GES":"c37e91c9","Hand_2_R_GES":"0c618d5f","Hand_2_R_Screw_GES":"4b242b9b","mouth_GESShape":"da3d7f9b","eyes_GESShape":"90a3f8b0","R_leg_GESShape":"6179a9d9","head_GESShape":"93df4f06","L_arm_GESShape":"7f268699","L_leg_GESShape":"12b7c567","screen_GESShape":"f6a369a2","screen_content_GESShape":"db3f30d4","hair":"65edc56d","hair_short":"9c921132","chrome_ball":"fb15e188","grey_ball":"be20df01","macbeth":"c9d74198"}"
    cryptomatte/f834d0a/name: "crypto_object"
    DateTime: "2025:04:01 23:27:34"
    PixelAspectRatio: 1
    screenWindowCenter: 0, 0
    screenWindowWidth: 1
    worldToCamera: -0.997227, -0.00747155, -0.0740386, 0, 0.00675685, 0.981745, -0.19008, 0, -0.0741072, 0.190054, 0.978973, 0, 10.2405, -31.8519, 57.6854, 1
    worldToScreen: -2.49396, -0.0272021, -0.074046, -0.0740386, 0.0168982, 3.5743, -0.190099, -0.19008, -0.185334, 0.691938, 0.979071, 0.978973, 25.6105, -115.965, 57.5912, 57.6854
    oiio:ColorSpace: "lin_rec709"
    oiio:subimages: 1
    openexr:lineOrder: "randomY"
Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 0
Milliseconds      : 69
Ticks             : 690466
TotalDays         : 7,99150462962963E-07
TotalHours        : 1,91796111111111E-05
TotalMinutes      : 0,00115077666666667
TotalSeconds      : 0,0690466
TotalMilliseconds : 69,0466

==================
>> oiiotool -v input.exr -o output.exr
Reading input.exr
Writing output.exr
Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 10
Milliseconds      : 37
Ticks             : 100377201
TotalDays         : 0,000116177315972222
TotalHours        : 0,00278825558333333
TotalMinutes      : 0,167295335
TotalSeconds      : 10,0377201
TotalMilliseconds : 10037,7201

==================
>> oiiotool -v input.exr -o output.png
Reading input.exr
oiiotool WARNING: -o : Can't save 78 channels to png... saving only channels R,G,B,A
Writing output.png
Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 5
Milliseconds      : 672
Ticks             : 56727833
TotalDays         : 6,56572141203704E-05
TotalHours        : 0,00157577313888889
TotalMinutes      : 0,0945463883333333
TotalSeconds      : 5,6727833
TotalMilliseconds : 5672,7833

==================
>> oiiotool --runstats -v input.exr -o output.png
Reading input.exr
oiiotool WARNING: -o : Can't save 78 channels to png... saving only channels R,G,B,A
Writing output.png

Threads: 24
oiiotool runtime statistics:
  Total time: 5.54s
      -i           : 77.29
      -o           :  0.26
  Peak memory:    2.1 GB
  Current memory: 1.9 GB

ImageBuf local memory: current 0 B, peak 94.1 MB
ImageBuf direct read time: 0.00s, open time 0.00s

OpenImageIO ImageCache statistics (000001B7D3397180) ver 3.1.1.0dev
  Options:  max_memory_MB=4096.0 max_open_files=100 autotile=0
            autoscanline=false automip=false forcefloat=true
            accept_untiled=true accept_unmipped=true deduplicate=true
            unassociatedalpha=false failure_retries=0 openexr:core=1
  Images : 1 unique
    ImageInputs : 2 created, 1 current, 1 peak
    Total pixel data size of all images referenced : 1.8 GB
    Total actual file size of all images referenced : 53.9 MB
    Pixel data read : 1.8 GB
    File I/O time : 1m 17.3s (3.2s average per thread, for 24 threads)
    File open time only : 0.0s
    ImageInput mutex locking time : 0.3s
  Tiles: 2135 created, 1551 current, 1551 peak
    total tile requests : 96726
    micro-cache misses : 96726 (100.0%)
    main cache misses : 2135 (2.2%)
    redundant reads: 0 tiles, 0 B
    Peak cache memory : 1.8 GB
  Cache : 1.8 GB
    Strings : 0 B, count : 2
    Thread info : 8 KB, count : 24
    Fingerprints : 0 B, count : 0
    Tiles : 1.8 GB, count : 1551
    Files : 10 KB, count : 1
      Format 'openexr' : 10 KB, count : 1
        Image inputs : 4 KB, count : 1
        Image specs : 8 B, count : 1
        Subimages : 5 KB, count : 1
          Level infos : 4 KB, count : 1
            Image specs : 4 KB, count : 2
              Members : 320 B
              Extra attributes : 24 B
              Channel names : 4 KB
  Image file statistics:
        opens   tiles    MB read   --redundant--   I/O time  res              File
      1    2     1551     1890.3                  1m 17.3s   2996x2058x78.f32  input.exr

  Tot:     2     1551     1890.3   (    0    0.0) 1m 17.3s
  Broken or invalid files: 0

Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 5
Milliseconds      : 618
Ticks             : 56181718
TotalDays         : 6,50251365740741E-05
TotalHours        : 0,00156060327777778
TotalMinutes      : 0,0936361966666667
TotalSeconds      : 5,6181718
TotalMilliseconds : 5618,1718

==================
>> oiiotool -v -i:ch=R,G,B,A input.exr -ch R=R,G=G,B=B,A=A -o output.png
Reading input.exr
Writing output.png
Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 5
Milliseconds      : 24
Ticks             : 50242375
TotalDays         : 5,81508969907407E-05
TotalHours        : 0,00139562152777778
TotalMinutes      : 0,0837372916666667
TotalSeconds      : 5,0242375
TotalMilliseconds : 5024,2375

==================
>> oiiotool -v -i:ch=R,G,B,A input.exr -o output.png
Reading input.exr
Writing output.png
Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 4
Milliseconds      : 924
Ticks             : 49248331
TotalDays         : 5,70003831018518E-05
TotalHours        : 0,00136800919444444
TotalMinutes      : 0,0820805516666667
TotalSeconds      : 4,9248331
TotalMilliseconds : 4924,8331

==================
>> oiiotool -v input.exr -ch R=R,G=G,B=B,A=A -o output.png
Reading input.exr
Writing output.png
Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 5
Milliseconds      : 627
Ticks             : 56278322
TotalDays         : 6,51369467592593E-05
TotalHours        : 0,00156328672222222
TotalMinutes      : 0,0937972033333333
TotalSeconds      : 5,6278322
TotalMilliseconds : 5627,8322

==================
>> oiiotool -i:ch=R,G,B,A input.exr --cut 1x1 -o out.exr
Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 4
Milliseconds      : 700
Ticks             : 47005319
TotalDays         : 5,44043043981481E-05
TotalHours        : 0,00130570330555556
TotalMinutes      : 0,0783421983333333
TotalSeconds      : 4,7005319
TotalMilliseconds : 4700,5319

3.1.1.0dev with avx and avx2

==================
>> oiiotool --buildinfo
OIIO 3.1.1.0dev | unknown arch?
    Build compiler: MSVS 1943 | C++17/199711
    HW features enabled at build: sse2,avx,avx2
    No CUDA support (disabled / unavailable at build time)
Dependencies: BZip2 NONE, DCMTK NONE, expat 2.7.1, FFmpeg NONE, fmt 10.2.1, Freetype 2.13.2, GIF NONE, Imath 3.2.0, JPEG 80, JXL NONE, Libheif NONE, libjpeg-turbo 3.0.4, LibRaw NONE,
    libuhdr, minizip-ng 4.0.7, OpenColorIO 2.4.1, OpenCV NONE, OpenEXR 3.4.0, OpenJPEG NONE, PNG 1.6.47, Ptex NONE, Ptex NONE, pystring, Robinmap 1.4.0, TBB NONE, TIFF 4.6.0, WebP 1.4.0,
    yaml-cpp 0.8.0, ZLIB 1.3.1, ZLIB 1.3.1


Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 0
Milliseconds      : 16
Ticks             : 164267
TotalDays         : 1,90123842592593E-07
TotalHours        : 4,56297222222222E-06
TotalMinutes      : 0,000273778333333333
TotalSeconds      : 0,0164267
TotalMilliseconds : 16,4267

==================
>> oiiotool -info -v input.exr
Reading input.exr
input.exr            : 2996 x 2058, 78 channel, half/half/half/half/float/float/float/float/float/float/float/float/half/half/half/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/half/half/half/half/half/half/half/half/half/half/half/half/half/half/half/half/half/half openexr
    channel list: R (half), G (half), B (half), A (half), Z (float), fresnel (float), N.X (float), N.Y (float), N.Z (float), Pref.X (float), Pref.Y (float), Pref.Z (float), coat.R (half), coat.G (half), coat.B (half), crypto_asset.R (float), crypto_asset.G (float), crypto_asset.B (float), crypto_asset00.R (float), crypto_asset00.G (float), crypto_asset00.B (float), crypto_asset00.A (float), crypto_asset01.R (float), crypto_asset01.G (float), crypto_asset01.B (float), crypto_asset01.A (float), crypto_asset02.R (float), crypto_asset02.G (float), crypto_asset02.B (float), crypto_asset02.A (float), crypto_material.R (float), crypto_material.G (float), crypto_material.B (float), crypto_material00.R (float), crypto_material00.G (float), crypto_material00.B (float), crypto_material00.A (float), crypto_material01.R (float), crypto_material01.G (float), crypto_material01.B (float), crypto_material01.A (float), crypto_material02.R (float), crypto_material02.G (float), crypto_material02.B (float), crypto_material02.A (float), crypto_object.R (float), crypto_object.G (float), crypto_object.B (float), crypto_object00.R (float), crypto_object00.G (float), crypto_object00.B (float), crypto_object00.A (float), crypto_object01.R (float), crypto_object01.G (float), crypto_object01.B (float), crypto_object01.A (float), crypto_object02.R (float), crypto_object02.G (float), crypto_object02.B (float), crypto_object02.A (float), diffuse_direct.R (half), diffuse_direct.G (half), diffuse_direct.B (half), diffuse_indirect.R (half), diffuse_indirect.G (half), diffuse_indirect.B (half), emission.R (half), emission.G (half), emission.B (half), specular_direct.R (half), specular_direct.G (half), specular_direct.B (half), specular_indirect.R (half), specular_indirect.G (half), specular_indirect.B (half), sss.R (half), sss.G (half), sss.B (half)
    tile size: 64 x 64
    arnold/AA_adaptive_threshold: 0.015
    arnold/AA_samples: 2
    arnold/AA_samples_max: 2
    arnold/AA_seed: 344023205
    arnold/aovs/coat/filter: "gaussian_filter"
    arnold/aovs/coat/filter_width: 2
    arnold/aovs/coat/lpe: 1
    arnold/aovs/coat/lpe_expression: "C<RS'coat'>.*"
    arnold/aovs/coat/source: "coat"
    arnold/aovs/crypto_asset/filter: "cryptomatte_filter"
    arnold/aovs/crypto_asset/filter_width: 2
    arnold/aovs/crypto_asset/source: "crypto_asset"
    arnold/aovs/crypto_asset00/filter: "cryptomatte_filter"
    arnold/aovs/crypto_asset00/filter_width: 2
    arnold/aovs/crypto_asset00/source: "crypto_asset00"
    arnold/aovs/crypto_asset01/filter: "cryptomatte_filter"
    arnold/aovs/crypto_asset01/filter_width: 2
    arnold/aovs/crypto_asset01/source: "crypto_asset01"
    arnold/aovs/crypto_asset02/filter: "cryptomatte_filter"
    arnold/aovs/crypto_asset02/filter_width: 2
    arnold/aovs/crypto_asset02/source: "crypto_asset02"
    arnold/aovs/crypto_material/filter: "cryptomatte_filter"
    arnold/aovs/crypto_material/filter_width: 2
    arnold/aovs/crypto_material/source: "crypto_material"
    arnold/aovs/crypto_material00/filter: "cryptomatte_filter"
    arnold/aovs/crypto_material00/filter_width: 2
    arnold/aovs/crypto_material00/source: "crypto_material00"
    arnold/aovs/crypto_material01/filter: "cryptomatte_filter"
    arnold/aovs/crypto_material01/filter_width: 2
    arnold/aovs/crypto_material01/source: "crypto_material01"
    arnold/aovs/crypto_material02/filter: "cryptomatte_filter"
    arnold/aovs/crypto_material02/filter_width: 2
    arnold/aovs/crypto_material02/source: "crypto_material02"
    arnold/aovs/crypto_object/filter: "cryptomatte_filter"
    arnold/aovs/crypto_object/filter_width: 2
    arnold/aovs/crypto_object/source: "crypto_object"
    arnold/aovs/crypto_object00/filter: "cryptomatte_filter"
    arnold/aovs/crypto_object00/filter_width: 2
    arnold/aovs/crypto_object00/source: "crypto_object00"
    arnold/aovs/crypto_object01/filter: "cryptomatte_filter"
    arnold/aovs/crypto_object01/filter_width: 2
    arnold/aovs/crypto_object01/source: "crypto_object01"
    arnold/aovs/crypto_object02/filter: "cryptomatte_filter"
    arnold/aovs/crypto_object02/filter_width: 2
    arnold/aovs/crypto_object02/source: "crypto_object02"
    arnold/aovs/diffuse_direct/filter: "gaussian_filter"
    arnold/aovs/diffuse_direct/filter_width: 2
    arnold/aovs/diffuse_direct/lpe: 1
    arnold/aovs/diffuse_direct/lpe_expression: "C<RD>L"
    arnold/aovs/diffuse_direct/source: "diffuse_direct"
    arnold/aovs/diffuse_indirect/filter: "gaussian_filter"
    arnold/aovs/diffuse_indirect/filter_width: 2
    arnold/aovs/diffuse_indirect/lpe: 1
    arnold/aovs/diffuse_indirect/lpe_expression: "C<RD>[DSVOB].*"
    arnold/aovs/diffuse_indirect/source: "diffuse_indirect"
    arnold/aovs/emission/filter: "gaussian_filter"
    arnold/aovs/emission/filter_width: 2
    arnold/aovs/emission/lpe: 1
    arnold/aovs/emission/lpe_expression: "C[LO]"
    arnold/aovs/emission/source: "emission"
    arnold/aovs/fresnel/filter: "box_filter"
    arnold/aovs/fresnel/source: "fresnel"
    arnold/aovs/N/filter: "box_filter"
    arnold/aovs/N/source: "N"
    arnold/aovs/Pref/filter: "box_filter"
    arnold/aovs/Pref/source: "Pref"
    arnold/aovs/RGBA/filter: "gaussian_filter"
    arnold/aovs/RGBA/filter_width: 2
    arnold/aovs/RGBA/lpe: 1
    arnold/aovs/RGBA/lpe_expression: "C.*"
    arnold/aovs/RGBA/source: "RGBA"
    arnold/aovs/specular_direct/filter: "gaussian_filter"
    arnold/aovs/specular_direct/filter_width: 2
    arnold/aovs/specular_direct/lpe: 1
    arnold/aovs/specular_direct/lpe_expression: "C<RS[^'coat''sheen']>L"
    arnold/aovs/specular_direct/source: "specular_direct"
    arnold/aovs/specular_indirect/filter: "gaussian_filter"
    arnold/aovs/specular_indirect/filter_width: 2
    arnold/aovs/specular_indirect/lpe: 1
    arnold/aovs/specular_indirect/lpe_expression: "C<RS[^'coat''sheen']>[DSVOB].*"
    arnold/aovs/specular_indirect/source: "specular_indirect"
    arnold/aovs/sss/filter: "gaussian_filter"
    arnold/aovs/sss/filter_width: 2
    arnold/aovs/sss/lpe: 1
    arnold/aovs/sss/lpe_expression: "C<TD>.*"
    arnold/aovs/sss/source: "sss"
    arnold/aovs/Z/filter: "box_filter"
    arnold/aovs/Z/source: "Z"
    arnold/auto_transparency_depth: 10
    arnold/bounds_max_x: 2995
    arnold/bounds_max_y: 2057
    arnold/bounds_min_x: 0
    arnold/bounds_min_y: 0
    arnold/camera/far_clip: 1000
    arnold/camera/near_clip: 0.1
    arnold/color_manager: "color_manager_ocio"
    arnold/color_space: "ACEScg"
    arnold/diffuse_depth: 1
    arnold/diffuse_samples: 2
    arnold/fis_filter: "gaussian"
    arnold/fis_filter_width: 2
    arnold/fps: 24
    arnold/frame: 0
    arnold/host/hw: "1 x AMD Ryzen 9 9950X 16-Core Processor  (16 cores, 32 logical) with 130710MB"
    arnold/host/name: "Maqina-RTX-09"
    arnold/host/os: "Windows 10 (version 10.0, build 26100)"
    arnold/license_state: "valid"
    arnold/specular_depth: 1
    arnold/specular_samples: 2
    arnold/sss_samples: 3
    arnold/stats/date: "Tue Apr  1 23:27:34 2025"
    arnold/stats/geo/curve_segments: 8.65504e+07
    arnold/stats/geo/triangles: 1.94083e+06
    arnold/stats/memory/peak: 26679
    arnold/stats/memory/start: 408.539
    arnold/stats/rays/all/pixel: 147.915
    arnold/stats/rays/all/total: 9.12007e+08
    arnold/stats/rays/camera/pixel: 4.25781
    arnold/stats/rays/camera/total: 2.62526e+07
    arnold/stats/time/render: 62.2762
    arnold/stats/time/setup: 34.9591
    arnold/texture_max_memory_MB: 4096
    arnold/threads: 31
    arnold/total_depth: 10
    arnold/transmission_depth: 8
    arnold/transmission_samples: 2
    arnold/version: "Arnold 7.4.1.0 [cc3e15d4] windows x86_64 clang-15.0.7 oiio-2.6.3 osl-1.13.3 vdb-11.0.0 adlsdk-9.5.0.53 clmhub-3.1.1.43 rlm-14.2.5 optix-8.0.0 2025/03/25 22:00:52"
    arnold/volume_depth: 0
    arnold/volume_samples: 2
    CameraFilmApertureHorizontal: 1
    CameraFilmApertureVertical: 0.686916
    CameraFocalLength: 1.25045
    CameraFov: 43.5887
    compression: "zip"
    cryptomatte/28322e9/conversion: "uint32_to_float32"
    cryptomatte/28322e9/hash: "MurmurHash3_32"
    cryptomatte/28322e9/manifest: "{"\/character\/char_toy_bear\/geo\/body_GES":"0c1755c6","\/character\/prop_toy_robot\/geo\/Leg_L_GRP\/Foot_L_GRP":"ba7b541c","\/tracking_data\/standin_geo\/floor\/object0":"60863094","\/ibl_reference\/geo":"d6136e07","\/character\/char_toy_bear\/geo\/screen_content_GES":"e635431b","\/character\/prop_toy_robot\/geo\/arm_L_GRP\/lower_arm_L_GRP":"405d1859","\/tracking_data\/standin_geo\/modelTable_var02_bear_si_Geo_shoot02\/root\/si_Geo_shoot02\/geo\/table_02_Geo_shoot02\/geo\/table_bear_GRP\/plateau_GES\/plateau_GESShape":"942f71c3","\/character\/char_slimpie\/geo\/knob_GRP":"1aeefe43","\/tracking_data\/standin_geo\/modelTable_var02_bear_si_Geo_shoot02\/root\/si_Geo_shoot02\/geo\/table_02_Geo_shoot02\/geo\/table_bear_GRP\/stand_GES\/stand_GESShape":"b92ec3b5","\/character\/char_slimpie\/geo":"836fefe9","\/character\/char_toy_bear\/geo\/R_arm_GES":"eadaa9f9","\/character\/prop_toy_robot\/geo\/head_GRP":"01fe1f3a","\/character\/char_slimpie\/geo\/bottom_GRP":"5891ac94","\/character\/char_toy_bear\/geo\/screen_GES":"150214e7","\/character\/prop_toy_robot\/geo":"b8488925","\/character\/char_toy_bear\/geo\/bowtie_GES":"71e3e13a","\/character\/prop_toy_robot\/geo\/Leg_R_GRP":"95ef728e","\/character\/prop_toy_robot\/geo\/Leg_R_GRP\/Foot_R_GRP":"6322670f","\/character\/prop_toy_robot\/geo\/Leg_L_GRP":"eae7695f","\/character\/prop_toy_robot\/geo\/arm_L_GRP":"b25c21ed","\/character\/prop_toy_robot\/geo\/arm_R_GRP":"502906f5","\/character\/char_toy_bear\/geo\/eyes_GES":"b552ae8d","\/character\/prop_toy_robot\/geo\/arm_R_GRP\/lower_arm_R_GRP":"b2774a0b","\/character\/char_toy_bear\/geo\/mouth_GES":"d80ebb77","\/character\/char_toy_bear\/geo\/R_leg_GES":"21ff5e23","\/character\/char_toy_bear\/geo\/head_GES":"fee96276","\/character\/char_toy_bear\/geo\/ears_GES":"4690de75","\/character\/char_toy_bear\/geo\/L_arm_GES":"c1324b6a","\/character\/char_toy_bear\/geo\/L_leg_GES":"8c47a8a3","\/character\/char_toy_bear\/groom":"f42842ac"}"
    cryptomatte/28322e9/name: "crypto_asset"
    cryptomatte/bda530a/conversion: "uint32_to_float32"
    cryptomatte/bda530a/hash: "MurmurHash3_32"
    cryptomatte/bda530a/manifest: "{"inside_MTL":"55ce85ef","screen":"aa0ac5dc","flat1":"3654a9dc","glass":"c17feb92","glass_MTL":"ac128a30","bottom_MTL":"c4f1e999","metal_MTL":"cfe4893e","grid_MTL":"15db812d","robot":"5527a8c0","eyes":"3c4b7c32","standard_surface1":"0105d8b5","standard_hair1":"2ab1a9c2","mtlxstandard_surface1":"75baba89"}"
    cryptomatte/bda530a/name: "crypto_material"
    cryptomatte/f834d0a/conversion: "uint32_to_float32"
    cryptomatte/f834d0a/hash: "MurmurHash3_32"
    cryptomatte/f834d0a/manifest: "{"bottom_GES":"aa0490fc","Leg_1_R_GES":"4c203bc5","Battery_Cover_GES":"750f9523","mesh":"6e4fa4ca","glass_GES":"7b37169c","ring_GES":"1304f4e7","iron_ring_GES":"2ff0cc0c","gauze_GES":"11c6b11a","inside_GES":"6f2ed9e9","edges_GES":"cde92053","Hand_2_L_Screw_GES":"8d90284d","Head_Part_1_GES":"02911e82","sun_GES":"10d032c8","Torso_GES":"86600e7a","Torso_Screw_GES":"83618a0c","Hand_1_R_GES":"e87e2e36","Glass_Frame_GES":"011881d0","Head_Part_3_GES":"1a0ed5af","Head_Screws_GES":"1248f152","Battery_Cover_Screw_GES":"8805c3d6","bowtie_GESShape":"dc4c0117","Leg_2_R_Screw_GES":"389a3a2a","Head_Part_2_GES":"b532b23d","Head_GES":"4fb77ec7","Glass_GES":"987d699e","Hand_3_L_GES":"e34a71f6","On_Button_GES":"618cf0b9","body_GESShape":"25b88caf","Neck_GES":"2bc65cdb","Leg_2_L_001_GES":"53e018ab","Leg_1_L_GES":"7d0f8166","Leg_2_L_Screw_GES":"793ad8a8","ears_GESShape":"16c1ac47","R_arm_GESShape":"be9c3d65","Leg_2_L_GES":"f3b89228","Hand_1_L_GES":"5c23e33c","Hand_2_L_GES":"3b2904c8","Hand_3_R_GES":"c37e91c9","Hand_2_R_GES":"0c618d5f","Hand_2_R_Screw_GES":"4b242b9b","mouth_GESShape":"da3d7f9b","eyes_GESShape":"90a3f8b0","R_leg_GESShape":"6179a9d9","head_GESShape":"93df4f06","L_arm_GESShape":"7f268699","L_leg_GESShape":"12b7c567","screen_GESShape":"f6a369a2","screen_content_GESShape":"db3f30d4","hair":"65edc56d","hair_short":"9c921132","chrome_ball":"fb15e188","grey_ball":"be20df01","macbeth":"c9d74198"}"
    cryptomatte/f834d0a/name: "crypto_object"
    DateTime: "2025:04:01 23:27:34"
    PixelAspectRatio: 1
    screenWindowCenter: 0, 0
    screenWindowWidth: 1
    worldToCamera: -0.997227, -0.00747155, -0.0740386, 0, 0.00675685, 0.981745, -0.19008, 0, -0.0741072, 0.190054, 0.978973, 0, 10.2405, -31.8519, 57.6854, 1
    worldToScreen: -2.49396, -0.0272021, -0.074046, -0.0740386, 0.0168982, 3.5743, -0.190099, -0.19008, -0.185334, 0.691938, 0.979071, 0.978973, 25.6105, -115.965, 57.5912, 57.6854
    oiio:ColorSpace: "lin_rec709"
    oiio:subimages: 1
    openexr:lineOrder: "randomY"
Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 0
Milliseconds      : 66
Ticks             : 667699
TotalDays         : 7,72799768518518E-07
TotalHours        : 1,85471944444444E-05
TotalMinutes      : 0,00111283166666667
TotalSeconds      : 0,0667699
TotalMilliseconds : 66,7699

==================
>> oiiotool -v input.exr -o output.exr
Reading input.exr
Writing output.exr
Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 10
Milliseconds      : 572
Ticks             : 105729793
TotalDays         : 0,000122372445601852
TotalHours        : 0,00293693869444444
TotalMinutes      : 0,176216321666667
TotalSeconds      : 10,5729793
TotalMilliseconds : 10572,9793

==================
>> oiiotool -v input.exr -o output.png
Reading input.exr
oiiotool WARNING: -o : Can't save 78 channels to png... saving only channels R,G,B,A
Writing output.png
Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 5
Milliseconds      : 902
Ticks             : 59023985
TotalDays         : 6,83147974537037E-05
TotalHours        : 0,00163955513888889
TotalMinutes      : 0,0983733083333333
TotalSeconds      : 5,9023985
TotalMilliseconds : 5902,3985

==================
>> oiiotool --runstats -v input.exr -o output.png
Reading input.exr
oiiotool WARNING: -o : Can't save 78 channels to png... saving only channels R,G,B,A
Writing output.png

Threads: 24
oiiotool runtime statistics:
  Total time: 5.50s
      -i           : 76.75
      -o           :  0.26
  Peak memory:    2.1 GB
  Current memory: 1.9 GB

ImageBuf local memory: current 0 B, peak 94.1 MB
ImageBuf direct read time: 0.00s, open time 0.00s

OpenImageIO ImageCache statistics (000001BDF08A73C0) ver 3.1.1.0dev
  Options:  max_memory_MB=4096.0 max_open_files=100 autotile=0
            autoscanline=false automip=false forcefloat=true
            accept_untiled=true accept_unmipped=true deduplicate=true
            unassociatedalpha=false failure_retries=0 openexr:core=1
  Images : 1 unique
    ImageInputs : 2 created, 1 current, 1 peak
    Total pixel data size of all images referenced : 1.8 GB
    Total actual file size of all images referenced : 53.9 MB
    Pixel data read : 1.8 GB
    File I/O time : 1m 16.8s (3.2s average per thread, for 24 threads)
    File open time only : 0.0s
    ImageInput mutex locking time : 0.3s
  Tiles: 2040 created, 1551 current, 1551 peak
    total tile requests : 96726
    micro-cache misses : 96726 (100.0%)
    main cache misses : 2040 (2.1%)
    redundant reads: 0 tiles, 0 B
    Peak cache memory : 1.8 GB
  Cache : 1.8 GB
    Strings : 0 B, count : 2
    Thread info : 8 KB, count : 24
    Fingerprints : 0 B, count : 0
    Tiles : 1.8 GB, count : 1551
    Files : 10 KB, count : 1
      Format 'openexr' : 10 KB, count : 1
        Image inputs : 4 KB, count : 1
        Image specs : 8 B, count : 1
        Subimages : 5 KB, count : 1
          Level infos : 4 KB, count : 1
            Image specs : 4 KB, count : 2
              Members : 320 B
              Extra attributes : 24 B
              Channel names : 4 KB
  Image file statistics:
        opens   tiles    MB read   --redundant--   I/O time  res              File
      1    2     1551     1890.3                  1m 16.8s   2996x2058x78.f32  input.exr

  Tot:     2     1551     1890.3   (    0    0.0) 1m 16.8s
  Broken or invalid files: 0

Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 5
Milliseconds      : 620
Ticks             : 56201997
TotalDays         : 6,50486076388889E-05
TotalHours        : 0,00156116658333333
TotalMinutes      : 0,093669995
TotalSeconds      : 5,6201997
TotalMilliseconds : 5620,1997

==================
>> oiiotool -v -i:ch=R,G,B,A input.exr -ch R=R,G=G,B=B,A=A -o output.png
Reading input.exr
Writing output.png
Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 6
Milliseconds      : 777
Ticks             : 67775144
TotalDays         : 7,84434537037037E-05
TotalHours        : 0,00188264288888889
TotalMinutes      : 0,112958573333333
TotalSeconds      : 6,7775144
TotalMilliseconds : 6777,5144

==================
>> oiiotool -v -i:ch=R,G,B,A input.exr -o output.png
Reading input.exr
Writing output.png
Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 5
Milliseconds      : 266
Ticks             : 52664973
TotalDays         : 6,09548298611111E-05
TotalHours        : 0,00146291591666667
TotalMinutes      : 0,087774955
TotalSeconds      : 5,2664973
TotalMilliseconds : 5266,4973

==================
>> oiiotool -v input.exr -ch R=R,G=G,B=B,A=A -o output.png
Reading input.exr
Writing output.png
Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 5
Milliseconds      : 925
Ticks             : 59253413
TotalDays         : 6,85803391203704E-05
TotalHours        : 0,00164592813888889
TotalMinutes      : 0,0987556883333333
TotalSeconds      : 5,9253413
TotalMilliseconds : 5925,3413

==================
>> oiiotool -i:ch=R,G,B,A input.exr --cut 1x1 -o out.exr
Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 5
Milliseconds      : 69
Ticks             : 50697823
TotalDays         : 5,86780358796296E-05
TotalHours        : 0,00140827286111111
TotalMinutes      : 0,0844963716666667
TotalSeconds      : 5,0697823
TotalMilliseconds : 5069,7823

@BigRoy
Copy link
Author

BigRoy commented Apr 23, 2025

Specs:

  • Windows 10
  • 2x Intel(R) Xeon(R) CPU E5-2680 0 @2.70Ghz
    • Dual Xeon in HP workstation
  • 128 GB RAM
  • 4 GB GPU

Got asked about whether adding tbb support would make a difference on my slow dual xeon machine:

Years ago I noticed OIIO’s parallel scheduling code had a bunch of overhead. I vaguely recall lots of work being done to schedule out each individual pixel. Assuming I am not misremembering, and I might be, I am not surprised you are not seeing a scaling benefit, especially on multiple sockets where there is a large cost in cache line sharing. I’m curious if rebuilding with TBB support improves performance?

My response:

So, I've been testing some build variants.

When enabling more hardware features like SSSE3, SSE4.1 SSE4.2, AVX etc. makes it so that the executable doesn't work on my machine - likely due to some AVX (it does work on newer machines but there was no real measurable performance difference on this simple read/write test cases) so I opted going back to just the sse2 default but adding OpenTBB which does run.

Here is the output from using that build:

==================
>> oiiotool --buildinfo
OIIO 3.1.1.0dev | unknown arch?
    Build compiler: MSVS 1943 | C++17/199711
    HW features enabled at build: sse2
    No CUDA support (disabled / unavailable at build time)
Dependencies: DCMTK NONE, expat 2.6.3, FFmpeg NONE, fmt 10.2.1, Freetype 2.13.2, GIF NONE, Imath 3.2.0, JPEG 80,
    JXL NONE, libdeflate 1.23, Libheif NONE, libjpeg-turbo 3.0.4, LibRaw NONE, libuhdr 1.2.0, minizip-ng 4.0.7,
    OpenColorIO 2.4.1, OpenCV NONE, OpenEXR 3.4.0, OpenJPEG NONE, OpenVDB NONE, PNG 1.6.47, Ptex NONE, Ptex NONE,
    pystring 1.1.4, Robinmap 1.4.0, TBB 2022.2.0, TIFF 4.6.0, WebP 1.4.0, yaml-cpp 0.8.0, ZLIB 1.3.1, ZLIB 1.3.1


Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 0
Milliseconds      : 123
Ticks             : 1239272
TotalDays         : 1.43434259259259E-06
TotalHours        : 3.44242222222222E-05
TotalMinutes      : 0.00206545333333333
TotalSeconds      : 0.1239272
TotalMilliseconds : 123.9272

==================
>> oiiotool -info -v input.exr
Reading input.exr
input.exr            : 2996 x 2058, 78 channel, half/half/half/half/float/float/float/float/float/float/float/float/half/half/half/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/float/half/half/half/half/half/half/half/half/half/half/half/half/half/half/half/half/half/half openexr
    channel list: R (half), G (half), B (half), A (half), Z (float), fresnel (float), N.X (float), N.Y (float), N.Z (float), Pref.X (float), Pref.Y (float), Pref.Z (float), coat.R (half), coat.G (half), coat.B (half), crypto_asset.R (float), crypto_asset.G (float), crypto_asset.B (float), crypto_asset00.R (float), crypto_asset00.G (float), crypto_asset00.B (float), crypto_asset00.A (float), crypto_asset01.R (float), crypto_asset01.G (float), crypto_asset01.B (float), crypto_asset01.A (float), crypto_asset02.R (float), crypto_asset02.G (float), crypto_asset02.B (float), crypto_asset02.A (float), crypto_material.R (float), crypto_material.G (float), crypto_material.B (float), crypto_material00.R (float), crypto_material00.G (float), crypto_material00.B (float), crypto_material00.A (float), crypto_material01.R (float), crypto_material01.G (float), crypto_material01.B (float), crypto_material01.A (float), crypto_material02.R (float), crypto_material02.G (float), crypto_material02.B (float), crypto_material02.A (float), crypto_object.R (float), crypto_object.G (float), crypto_object.B (float), crypto_object00.R (float), crypto_object00.G (float), crypto_object00.B (float), crypto_object00.A (float), crypto_object01.R (float), crypto_object01.G (float), crypto_object01.B (float), crypto_object01.A (float), crypto_object02.R (float), crypto_object02.G (float), crypto_object02.B (float), crypto_object02.A (float), diffuse_direct.R (half), diffuse_direct.G (half), diffuse_direct.B (half), diffuse_indirect.R (half), diffuse_indirect.G (half), diffuse_indirect.B (half), emission.R (half), emission.G (half), emission.B (half), specular_direct.R (half), specular_direct.G (half), specular_direct.B (half), specular_indirect.R (half), specular_indirect.G (half), specular_indirect.B (half), sss.R (half), sss.G (half), sss.B (half)
    tile size: 64 x 64
    arnold/AA_adaptive_threshold: 0.015
    arnold/AA_samples: 2
    arnold/AA_samples_max: 2
    arnold/AA_seed: 344023205
    arnold/aovs/coat/filter: "gaussian_filter"
    arnold/aovs/coat/filter_width: 2
    arnold/aovs/coat/lpe: 1
    arnold/aovs/coat/lpe_expression: "C<RS'coat'>.*"
    arnold/aovs/coat/source: "coat"
    arnold/aovs/crypto_asset/filter: "cryptomatte_filter"
    arnold/aovs/crypto_asset/filter_width: 2
    arnold/aovs/crypto_asset/source: "crypto_asset"
    arnold/aovs/crypto_asset00/filter: "cryptomatte_filter"
    arnold/aovs/crypto_asset00/filter_width: 2
    arnold/aovs/crypto_asset00/source: "crypto_asset00"
    arnold/aovs/crypto_asset01/filter: "cryptomatte_filter"
    arnold/aovs/crypto_asset01/filter_width: 2
    arnold/aovs/crypto_asset01/source: "crypto_asset01"
    arnold/aovs/crypto_asset02/filter: "cryptomatte_filter"
    arnold/aovs/crypto_asset02/filter_width: 2
    arnold/aovs/crypto_asset02/source: "crypto_asset02"
    arnold/aovs/crypto_material/filter: "cryptomatte_filter"
    arnold/aovs/crypto_material/filter_width: 2
    arnold/aovs/crypto_material/source: "crypto_material"
    arnold/aovs/crypto_material00/filter: "cryptomatte_filter"
    arnold/aovs/crypto_material00/filter_width: 2
    arnold/aovs/crypto_material00/source: "crypto_material00"
    arnold/aovs/crypto_material01/filter: "cryptomatte_filter"
    arnold/aovs/crypto_material01/filter_width: 2
    arnold/aovs/crypto_material01/source: "crypto_material01"
    arnold/aovs/crypto_material02/filter: "cryptomatte_filter"
    arnold/aovs/crypto_material02/filter_width: 2
    arnold/aovs/crypto_material02/source: "crypto_material02"
    arnold/aovs/crypto_object/filter: "cryptomatte_filter"
    arnold/aovs/crypto_object/filter_width: 2
    arnold/aovs/crypto_object/source: "crypto_object"
    arnold/aovs/crypto_object00/filter: "cryptomatte_filter"
    arnold/aovs/crypto_object00/filter_width: 2
    arnold/aovs/crypto_object00/source: "crypto_object00"
    arnold/aovs/crypto_object01/filter: "cryptomatte_filter"
    arnold/aovs/crypto_object01/filter_width: 2
    arnold/aovs/crypto_object01/source: "crypto_object01"
    arnold/aovs/crypto_object02/filter: "cryptomatte_filter"
    arnold/aovs/crypto_object02/filter_width: 2
    arnold/aovs/crypto_object02/source: "crypto_object02"
    arnold/aovs/diffuse_direct/filter: "gaussian_filter"
    arnold/aovs/diffuse_direct/filter_width: 2
    arnold/aovs/diffuse_direct/lpe: 1
    arnold/aovs/diffuse_direct/lpe_expression: "C<RD>L"
    arnold/aovs/diffuse_direct/source: "diffuse_direct"
    arnold/aovs/diffuse_indirect/filter: "gaussian_filter"
    arnold/aovs/diffuse_indirect/filter_width: 2
    arnold/aovs/diffuse_indirect/lpe: 1
    arnold/aovs/diffuse_indirect/lpe_expression: "C<RD>[DSVOB].*"
    arnold/aovs/diffuse_indirect/source: "diffuse_indirect"
    arnold/aovs/emission/filter: "gaussian_filter"
    arnold/aovs/emission/filter_width: 2
    arnold/aovs/emission/lpe: 1
    arnold/aovs/emission/lpe_expression: "C[LO]"
    arnold/aovs/emission/source: "emission"
    arnold/aovs/fresnel/filter: "box_filter"
    arnold/aovs/fresnel/source: "fresnel"
    arnold/aovs/N/filter: "box_filter"
    arnold/aovs/N/source: "N"
    arnold/aovs/Pref/filter: "box_filter"
    arnold/aovs/Pref/source: "Pref"
    arnold/aovs/RGBA/filter: "gaussian_filter"
    arnold/aovs/RGBA/filter_width: 2
    arnold/aovs/RGBA/lpe: 1
    arnold/aovs/RGBA/lpe_expression: "C.*"
    arnold/aovs/RGBA/source: "RGBA"
    arnold/aovs/specular_direct/filter: "gaussian_filter"
    arnold/aovs/specular_direct/filter_width: 2
    arnold/aovs/specular_direct/lpe: 1
    arnold/aovs/specular_direct/lpe_expression: "C<RS[^'coat''sheen']>L"
    arnold/aovs/specular_direct/source: "specular_direct"
    arnold/aovs/specular_indirect/filter: "gaussian_filter"
    arnold/aovs/specular_indirect/filter_width: 2
    arnold/aovs/specular_indirect/lpe: 1
    arnold/aovs/specular_indirect/lpe_expression: "C<RS[^'coat''sheen']>[DSVOB].*"
    arnold/aovs/specular_indirect/source: "specular_indirect"
    arnold/aovs/sss/filter: "gaussian_filter"
    arnold/aovs/sss/filter_width: 2
    arnold/aovs/sss/lpe: 1
    arnold/aovs/sss/lpe_expression: "C<TD>.*"
    arnold/aovs/sss/source: "sss"
    arnold/aovs/Z/filter: "box_filter"
    arnold/aovs/Z/source: "Z"
    arnold/auto_transparency_depth: 10
    arnold/bounds_max_x: 2995
    arnold/bounds_max_y: 2057
    arnold/bounds_min_x: 0
    arnold/bounds_min_y: 0
    arnold/camera/far_clip: 1000
    arnold/camera/near_clip: 0.1
    arnold/color_manager: "color_manager_ocio"
    arnold/color_space: "ACEScg"
    arnold/diffuse_depth: 1
    arnold/diffuse_samples: 2
    arnold/fis_filter: "gaussian"
    arnold/fis_filter_width: 2
    arnold/fps: 24
    arnold/frame: 0
    arnold/host/hw: "1 x AMD Ryzen 9 9950X 16-Core Processor  (16 cores, 32 logical) with 130710MB"
    arnold/host/name: "Maqina-RTX-09"
    arnold/host/os: "Windows 10 (version 10.0, build 26100)"
    arnold/license_state: "valid"
    arnold/specular_depth: 1
    arnold/specular_samples: 2
    arnold/sss_samples: 3
    arnold/stats/date: "Tue Apr  1 23:27:34 2025"
    arnold/stats/geo/curve_segments: 8.65504e+07
    arnold/stats/geo/triangles: 1.94083e+06
    arnold/stats/memory/peak: 26679
    arnold/stats/memory/start: 408.539
    arnold/stats/rays/all/pixel: 147.915
    arnold/stats/rays/all/total: 9.12007e+08
    arnold/stats/rays/camera/pixel: 4.25781
    arnold/stats/rays/camera/total: 2.62526e+07
    arnold/stats/time/render: 62.2762
    arnold/stats/time/setup: 34.9591
    arnold/texture_max_memory_MB: 4096
    arnold/threads: 31
    arnold/total_depth: 10
    arnold/transmission_depth: 8
    arnold/transmission_samples: 2
    arnold/version: "Arnold 7.4.1.0 [cc3e15d4] windows x86_64 clang-15.0.7 oiio-2.6.3 osl-1.13.3 vdb-11.0.0 adlsdk-9.5.0.53 clmhub-3.1.1.43 rlm-14.2.5 optix-8.0.0 2025/03/25 22:00:52"
    arnold/volume_depth: 0
    arnold/volume_samples: 2
    CameraFilmApertureHorizontal: 1
    CameraFilmApertureVertical: 0.686916
    CameraFocalLength: 1.25045
    CameraFov: 43.5887
    compression: "zip"
    cryptomatte/28322e9/conversion: "uint32_to_float32"
    cryptomatte/28322e9/hash: "MurmurHash3_32"
    cryptomatte/28322e9/manifest: "{"\/character\/char_toy_bear\/geo\/body_GES":"0c1755c6","\/character\/prop_toy_robot\/geo\/Leg_L_GRP\/Foot_L_GRP":"ba7b541c","\/tracking_data\/standin_geo\/floor\/object0":"60863094","\/ibl_reference\/geo":"d6136e07","\/character\/char_toy_bear\/geo\/screen_content_GES":"e635431b","\/character\/prop_toy_robot\/geo\/arm_L_GRP\/lower_arm_L_GRP":"405d1859","\/tracking_data\/standin_geo\/modelTable_var02_bear_si_Geo_shoot02\/root\/si_Geo_shoot02\/geo\/table_02_Geo_shoot02\/geo\/table_bear_GRP\/plateau_GES\/plateau_GESShape":"942f71c3","\/character\/char_slimpie\/geo\/knob_GRP":"1aeefe43","\/tracking_data\/standin_geo\/modelTable_var02_bear_si_Geo_shoot02\/root\/si_Geo_shoot02\/geo\/table_02_Geo_shoot02\/geo\/table_bear_GRP\/stand_GES\/stand_GESShape":"b92ec3b5","\/character\/char_slimpie\/geo":"836fefe9","\/character\/char_toy_bear\/geo\/R_arm_GES":"eadaa9f9","\/character\/prop_toy_robot\/geo\/head_GRP":"01fe1f3a","\/character\/char_slimpie\/geo\/bottom_GRP":"5891ac94","\/character\/char_toy_bear\/geo\/screen_GES":"150214e7","\/character\/prop_toy_robot\/geo":"b8488925","\/character\/char_toy_bear\/geo\/bowtie_GES":"71e3e13a","\/character\/prop_toy_robot\/geo\/Leg_R_GRP":"95ef728e","\/character\/prop_toy_robot\/geo\/Leg_R_GRP\/Foot_R_GRP":"6322670f","\/character\/prop_toy_robot\/geo\/Leg_L_GRP":"eae7695f","\/character\/prop_toy_robot\/geo\/arm_L_GRP":"b25c21ed","\/character\/prop_toy_robot\/geo\/arm_R_GRP":"502906f5","\/character\/char_toy_bear\/geo\/eyes_GES":"b552ae8d","\/character\/prop_toy_robot\/geo\/arm_R_GRP\/lower_arm_R_GRP":"b2774a0b","\/character\/char_toy_bear\/geo\/mouth_GES":"d80ebb77","\/character\/char_toy_bear\/geo\/R_leg_GES":"21ff5e23","\/character\/char_toy_bear\/geo\/head_GES":"fee96276","\/character\/char_toy_bear\/geo\/ears_GES":"4690de75","\/character\/char_toy_bear\/geo\/L_arm_GES":"c1324b6a","\/character\/char_toy_bear\/geo\/L_leg_GES":"8c47a8a3","\/character\/char_toy_bear\/groom":"f42842ac"}"
    cryptomatte/28322e9/name: "crypto_asset"
    cryptomatte/bda530a/conversion: "uint32_to_float32"
    cryptomatte/bda530a/hash: "MurmurHash3_32"
    cryptomatte/bda530a/manifest: "{"inside_MTL":"55ce85ef","screen":"aa0ac5dc","flat1":"3654a9dc","glass":"c17feb92","glass_MTL":"ac128a30","bottom_MTL":"c4f1e999","metal_MTL":"cfe4893e","grid_MTL":"15db812d","robot":"5527a8c0","eyes":"3c4b7c32","standard_surface1":"0105d8b5","standard_hair1":"2ab1a9c2","mtlxstandard_surface1":"75baba89"}"
    cryptomatte/bda530a/name: "crypto_material"
    cryptomatte/f834d0a/conversion: "uint32_to_float32"
    cryptomatte/f834d0a/hash: "MurmurHash3_32"
    cryptomatte/f834d0a/manifest: "{"bottom_GES":"aa0490fc","Leg_1_R_GES":"4c203bc5","Battery_Cover_GES":"750f9523","mesh":"6e4fa4ca","glass_GES":"7b37169c","ring_GES":"1304f4e7","iron_ring_GES":"2ff0cc0c","gauze_GES":"11c6b11a","inside_GES":"6f2ed9e9","edges_GES":"cde92053","Hand_2_L_Screw_GES":"8d90284d","Head_Part_1_GES":"02911e82","sun_GES":"10d032c8","Torso_GES":"86600e7a","Torso_Screw_GES":"83618a0c","Hand_1_R_GES":"e87e2e36","Glass_Frame_GES":"011881d0","Head_Part_3_GES":"1a0ed5af","Head_Screws_GES":"1248f152","Battery_Cover_Screw_GES":"8805c3d6","bowtie_GESShape":"dc4c0117","Leg_2_R_Screw_GES":"389a3a2a","Head_Part_2_GES":"b532b23d","Head_GES":"4fb77ec7","Glass_GES":"987d699e","Hand_3_L_GES":"e34a71f6","On_Button_GES":"618cf0b9","body_GESShape":"25b88caf","Neck_GES":"2bc65cdb","Leg_2_L_001_GES":"53e018ab","Leg_1_L_GES":"7d0f8166","Leg_2_L_Screw_GES":"793ad8a8","ears_GESShape":"16c1ac47","R_arm_GESShape":"be9c3d65","Leg_2_L_GES":"f3b89228","Hand_1_L_GES":"5c23e33c","Hand_2_L_GES":"3b2904c8","Hand_3_R_GES":"c37e91c9","Hand_2_R_GES":"0c618d5f","Hand_2_R_Screw_GES":"4b242b9b","mouth_GESShape":"da3d7f9b","eyes_GESShape":"90a3f8b0","R_leg_GESShape":"6179a9d9","head_GESShape":"93df4f06","L_arm_GESShape":"7f268699","L_leg_GESShape":"12b7c567","screen_GESShape":"f6a369a2","screen_content_GESShape":"db3f30d4","hair":"65edc56d","hair_short":"9c921132","chrome_ball":"fb15e188","grey_ball":"be20df01","macbeth":"c9d74198"}"
    cryptomatte/f834d0a/name: "crypto_object"
    DateTime: "2025:04:01 23:27:34"
    PixelAspectRatio: 1
    screenWindowCenter: 0, 0
    screenWindowWidth: 1
    worldToCamera: -0.997227, -0.00747155, -0.0740386, 0, 0.00675685, 0.981745, -0.19008, 0, -0.0741072, 0.190054, 0.978973, 0, 10.2405, -31.8519, 57.6854, 1
    worldToScreen: -2.49396, -0.0272021, -0.074046, -0.0740386, 0.0168982, 3.5743, -0.190099, -0.19008, -0.185334, 0.691938, 0.979071, 0.978973, 25.6105, -115.965, 57.5912, 57.6854
    oiio:ColorSpace: "lin_rec709"
    oiio:subimages: 1
    openexr:lineOrder: "randomY"
Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 0
Milliseconds      : 357
Ticks             : 3571855
TotalDays         : 4.13409143518519E-06
TotalHours        : 9.92181944444444E-05
TotalMinutes      : 0.00595309166666667
TotalSeconds      : 0.3571855
TotalMilliseconds : 357.1855

==================
>> oiiotool -v input.exr -o output.exr
Reading input.exr
Writing output.exr
Days              : 0
Hours             : 0
Minutes           : 1
Seconds           : 24
Milliseconds      : 812
Ticks             : 848120519
TotalDays         : 0.000981620971064815
TotalHours        : 0.0235589033055556
TotalMinutes      : 1.41353419833333
TotalSeconds      : 84.8120519
TotalMilliseconds : 84812.0519

==================
>> oiiotool -v input.exr -o output.png
Reading input.exr
oiiotool WARNING: -o : Can't save 78 channels to png... saving only channels R,G,B,A
Writing output.png
Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 18
Milliseconds      : 744
Ticks             : 187442626
TotalDays         : 0.000216947483796296
TotalHours        : 0.00520673961111111
TotalMinutes      : 0.312404376666667
TotalSeconds      : 18.7442626
TotalMilliseconds : 18744.2626

==================
>> oiiotool --runstats -v input.exr -o output.png
Reading input.exr
oiiotool WARNING: -o : Can't save 78 channels to png... saving only channels R,G,B,A
Writing output.png

Threads: 32
oiiotool runtime statistics:
  Total time: 18.15s
      -i           : 267.87
      -o           :  0.81
  Peak memory:    2.1 GB
  Current memory: 1.9 GB

ImageBuf local memory: current 0 B, peak 94.1 MB
ImageBuf direct read time: 0.00s, open time 0.00s

OpenImageIO ImageCache statistics (000001E11B85E040) ver 3.1.1.0dev
  Options:  max_memory_MB=4096.0 max_open_files=100 autotile=0
            autoscanline=false automip=false forcefloat=true
            accept_untiled=true accept_unmipped=true deduplicate=true
            unassociatedalpha=false failure_retries=0 openexr:core=1
  Images : 1 unique
    ImageInputs : 2 created, 1 current, 1 peak
    Total pixel data size of all images referenced : 1.8 GB
    Total actual file size of all images referenced : 53.9 MB
    Pixel data read : 1.8 GB
    File I/O time : 4m 27.9s (8.4s average per thread, for 32 threads)
    File open time only : 0.1s
    ImageInput mutex locking time : 1.7s
  Tiles: 2489 created, 1551 current, 1551 peak
    total tile requests : 96726
    micro-cache misses : 96726 (100.0%)
    main cache misses : 2489 (2.6%)
    redundant reads: 0 tiles, 0 B
    Peak cache memory : 1.8 GB
  Cache : 1.8 GB
    Strings : 0 B, count : 2
    Thread info : 11 KB, count : 32
    Fingerprints : 0 B, count : 0
    Tiles : 1.8 GB, count : 1551
    Files : 10 KB, count : 1
      Format 'openexr' : 10 KB, count : 1
        Image inputs : 4 KB, count : 1
        Image specs : 8 B, count : 1
        Subimages : 5 KB, count : 1
          Level infos : 4 KB, count : 1
            Image specs : 4 KB, count : 2
              Members : 320 B
              Extra attributes : 24 B
              Channel names : 4 KB
  Image file statistics:
        opens   tiles    MB read   --redundant--   I/O time  res              File
      1    2     1551     1890.3                  4m 27.9s   2996x2058x78.f32  input.exr

  Tot:     2     1551     1890.3   (    0    0.0) 4m 27.9s
  Broken or invalid files: 0

Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 18
Milliseconds      : 435
Ticks             : 184351679
TotalDays         : 0.000213369998842593
TotalHours        : 0.00512087997222222
TotalMinutes      : 0.307252798333333
TotalSeconds      : 18.4351679
TotalMilliseconds : 18435.1679

==================
>> oiiotool -v -i:ch=R,G,B,A input.exr -ch R=R,G=G,B=B,A=A -o output.png
Reading input.exr
Writing output.png
Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 19
Milliseconds      : 117
Ticks             : 191174308
TotalDays         : 0.000221266560185185
TotalHours        : 0.00531039744444444
TotalMinutes      : 0.318623846666667
TotalSeconds      : 19.1174308
TotalMilliseconds : 19117.4308

==================
>> oiiotool -v -i:ch=R,G,B,A input.exr -o output.png
Reading input.exr
Writing output.png
Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 19
Milliseconds      : 37
Ticks             : 190376082
TotalDays         : 0.0002203426875
TotalHours        : 0.0052882245
TotalMinutes      : 0.31729347
TotalSeconds      : 19.0376082
TotalMilliseconds : 19037.6082

==================
>> oiiotool -v input.exr -ch R=R,G=G,B=B,A=A -o output.png
Reading input.exr
Writing output.png
Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 18
Milliseconds      : 469
Ticks             : 184694306
TotalDays         : 0.00021376655787037
TotalHours        : 0.00513039738888889
TotalMinutes      : 0.307823843333333
TotalSeconds      : 18.4694306
TotalMilliseconds : 18469.4306

==================
>> oiiotool -i:ch=R,G,B,A input.exr --cut 1x1 -o out.exr
Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 18
Milliseconds      : 408
Ticks             : 184083081
TotalDays         : 0.000213059121527778
TotalHours        : 0.00511341891666667
TotalMinutes      : 0.306805135
TotalSeconds      : 18.4083081
TotalMilliseconds : 18408.3081

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment