ReadOIIO node

pluginIcon

This documentation is for version 2.0 of ReadOIIO (fr.inria.openfx.ReadOIIO).

Description

Read images using OpenImageIO.

Output is always Premultiplied (alpha is associated).

The “Image Premult” parameter controls the file premultiplication state, and can be used to fix wrong file metadata (see the help for that parameter).

OpenImageIO supports reading/writing the following file formats:

BMP (*.bmp)

Cineon (*.cin)

Direct Draw Surface (*.dds)

DPX (*.dpx)

Field3D (*.f3d)

FITS (*.fits)

GIF (*.gif)

HDR/RGBE (*.hdr)

HEIC/HEIF (*.heic *.heif)

ICO (*.ico)

IFF (*.iff)

JPEG (*.jpg *.jpe *.jpeg *.jif *.jfif *.jfi)

JPEG-2000 (*.jp2 *.j2k)

OpenEXR (*.exr)

PNG / Portable Network Graphics (*.png)

PNM / Netpbm (*.pbm *.pgm *.ppm *.pfm)

PSD (*.psd *.pdd *.psb)

Ptex (*.ptex)

RAW digital camera files (*.crw *.cr2 *.nef *.raf *.dng and others)

RLA (*.rla)

SGI (*.sgi *.rgb *.rgba *.bw *.int *.inta)

Softimage PIC (*.pic)

Targa (*.tga *.tpic)

TIFF (*.tif *.tiff *.tx *.env *.sm *.vsm)

Webp (*.webp)

Zfile (*.zfile)

Inputs

Input

Description

Optional

Sync

Sync

Yes

Controls

Parameter / script name

Type

Default

Function

File / filename

N/A

The input image sequence/video stream file(s).

First Frame / firstFrame

Integer

0

The first frame number to read from this image sequence or video file. This cannot be less than the first frame of the image sequence or video file, and cannot be greater than the last frame of the image sequence or video file. The first frame of a video file is numbered 1. If startingTime is 1 or timeOffset is 0, this is also the first output frame.

Before / before

Choice

Hold

What to do before the first frame of the sequence.
Hold (hold): While before the sequence, load the first frame.
Loop (loop): Repeat the sequence before the first frame
Bounce (bounce): Repeat the sequence in reverse before the first frame
Black (black): Render a black image
Error (error): Report an error

Last Frame / lastFrame

Integer

0

The last frame number to read from this image sequence or video file. This cannot be less than the first frame of the image sequence or video file, and cannot be greater than the last frame of the image sequence or video file. The first frame of a video file is numbered 1. If startingTime is 1 or timeOffset is 0, this is also the last output frame.

After / after

Choice

Hold

What to do after the last frame of the sequence.
Hold (hold): While before the sequence, load the first frame.
Loop (loop): Repeat the sequence before the first frame
Bounce (bounce): Repeat the sequence in reverse before the first frame
Black (black): Render a black image
Error (error): Report an error

On Missing Frame / onMissingFrame

Choice

Error

What to do when a frame is missing from the sequence/stream.
Hold previous (previous): Try to load the previous frame in the sequence/stream, if any.
Load next (next): Try to load the next frame in the sequence/stream, if any.
Load nearest (nearest): Try to load the nearest frame in the sequence/stream, if any.
Error (error): Report an error
Black (black): Render a black image

Frame Mode / frameMode

Choice

Starting Time


Starting Time (startingTime): Set at what output frame the first sequence frame is output. The sequence frame designated by the firstFrame parameter is output at frame timeOffset.
Time Offset (timeOffset): Set an offset to be applied as a number of frames. The sequence frame designated by the firstFrame parameter is output at frame firstFrame+timeOffset.

Starting Time / startingTime

Integer

0

At what time (on the timeline) should this sequence/video start.

Time Offset / timeOffset

Integer

0

Offset applied to the sequence in time units (i.e. frames).

Proxy File / proxy

N/A

Filename of the proxy images. They will be used instead of the images read from the File parameter when the proxy mode (downscaling of the images) is activated.

Proxy threshold / proxyThreshold

Double

x: 1 y: 1

The scale of the proxy images. By default it will be automatically computed out of the images headers when you set the proxy file(s) path. When the render scale (proxy) is set to a scale lower or equal to this value then the proxy image files will be used instead of the original images. You can change this parameter by checking the “Custom scale” checkbox so that you can change the scale at which the proxy images should be used instead of the original images.

Custom Proxy Scale / customProxyScale

Boolean

Off

Check to enable the Proxy scale edition.

File Premult / filePremult

Choice

PreMultiplied

The image file being read is considered to have this premultiplication state.
To get UnPremultiplied (or “unassociated alpha”) images, set the “Output Premult” parameter to Unpremultiplied.
By default the value should be correctly be guessed by the image file, but this parameter can be edited if the metadatas inside the file are wrong.
- Opaque means that the alpha channel is considered to be 1 (one), and it is not taken into account in colorspace conversion.
- Premultiplied, red, green and blue channels are divided by the alpha channel before applying the colorspace conversion, and re-multiplied by alpha after colorspace conversion.
- UnPremultiplied, means that red, green and blue channels are not modified before applying the colorspace conversion, and are multiplied by alpha after colorspace conversion.
This is set automatically from the image file and the plugin, but can be adjusted if this information is wrong in the file metadata.
RGB images can only be Opaque, and Alpha images can only be Premultiplied (the value of this parameter doesn’t matter).
Opaque (opaque): The image is opaque and so has no premultiplication state, as if the alpha component in all pixels were set to the white point.
PreMultiplied (premult): The image is premultiplied by its alpha (also called “associated alpha”).
UnPreMultiplied (unpremult): The image is unpremultiplied (also called “unassociated alpha”).

Output Premult / outputPremult

Choice

PreMultiplied

The alpha premultiplication in output of this node will have this state.
Opaque (opaque): The image is opaque and so has no premultiplication state, as if the alpha component in all pixels were set to the white point.
PreMultiplied (premult): The image is premultiplied by its alpha (also called “associated alpha”).
UnPreMultiplied (unpremult): The image is unpremultiplied (also called “unassociated alpha”).

Output Components / outputComponents

Choice

RGBA

What type of components this effect should output when the main color plane is requested. For the Read node it will map (in number of components) the Output Layer choice to these.
RGBA
RGB
RG
Alpha

Frame rate / frameRate

Double

24

By default this value is guessed from the file. You can override it by checking the Custom fps parameter. The value of this parameter is what will be visible by the effects down-stream.

Custom FPS / customFps

Boolean

Off

If checked, you can freely force the value of the frame rate parameter. The frame-rate is just the meta-data that will be passed downstream to the graph, no retime will actually take place.

Image Info… / showMetadata

Button

Shows information and metadata from the image at current time.

Auto Bright / rawAutoBright

Boolean

Off

If checked, use libraw’s automatic increase of brightness by histogram (exposure correction).

Use Camera WB / rawUseCameraWB

Boolean

On

If checked, and if possible, use the white balance from the camera.

Adjust Maximum Thr. / rawAdjustMaximumThr

Double

0

This parameters controls auto-adjusting of maximum value based on channel_maximum[] data, calculated from real frame data. If calculated maximum is greater than adjust_maximum_thr*maximum, than maximum is set to calculated_maximum.
Default: 0. If you set this value above 0.99999, then default value will be used. If you set this value below 0.00001, then no maximum adjustment will be performed. A value of 0.75 is reasonable for still shots, but sequences should always use 0.
Adjusting maximum should not damage any picture (esp. if you use default value) and is very useful for correcting channel overflow problems (magenta clouds on landscape shots, green-blue highlights for indoor shots).

Max. value / rawUserSat

Integer

0

The camera sensor saturation (maximum) value. Raw values greater or equal to this are considered saturated and are processed using the algorithm specified by the rawHighlightMode parameter. 0 means to use the default value.

Output Colorspace / rawOutputColor

Choice

sRGB

Output colorspace.
Raw (raw): Raw data
sRGB (srgb): sRGB
Adobe (adobergb): Adobe RGB (1998)
Wide (wide): Wide-gamut RGB color space (or Adobe Wide Gamut RGB)
ProPhoto (prophoto): Kodak ProPhoto RGB (or ROMM RGB)
XYZ (xyz): CIE XYZ
ACES (aces): AMPAS ACES

Camera Matrix / rawUseCameraMatrix

Choice

Default

Use/don’t use an embedded color matrix.
None (none): Do not use the embedded color matrix.
Default (default): Use embedded color profile (if present) for DNG files (always); for other files only if rawUseCameraWb is set.
Force (force): Use embedded color data (if present) regardless of white balance setting.

Highlight Mode / rawHighlightMode

Choice

Clip

Algorithm for restoring highlight clippings. Highlights are part of your images that are burned due to the inability of your camera to capture the highlights. Highlight recovery is applied after white balance and demosaic.
Clip (clip): Clip all highlights to white.
Unclip (unclip): Leave highlights unclipped in various shades of pink.
Blend (blend): Blend clipped and unclipped values for a gradual fade to white.
Rebuild (rebuild): Reconstruct highlights with various levels of aggressiveness.

Rebuild Level / rawHighlightRebuildLevel

Integer

2

Level of aggressiveness used to rebuild highlights. rawHighlightRebuildLevel=2 (which corresponds to -H 5 in LibRaw/dcraw) is a good compromise. If that’s not good enough, use rawHighlightRebuildLevel=6, cut out the non-white highlights, and paste them into an image generated with rawHighlightRebuildLevel=0.

Exposure / rawExposure

Double

1

Amount of exposure correction before de-mosaicing, from 0.25 (2-stop darken) to 8 (3-stop brighten). (Default: 1., meaning no correction.)

Demosaic / rawDemosaic

Choice

AHD

Force a demosaicing algorithm. Will fall back on AHD if the demosaicing algorithm is not available due to licence restrictions (AHD-Mod, AFD, VCD, Mixed, LMMSE are GPL2, AMaZE is GPL3).
None (none): No demosaicing.
Linear (linear): Linear interpolation.
VNG (vng): VNG interpolation.
PPG (ppg): PPG interpolation.
AHD (ahd): AHD interpolation.
DCB (dcb): DCB interpolation.
AHD-Mod (ahdmod): Modified AHD interpolation by Paul Lee.
AFD (afd): AFD interpolation (5-pass).
VCD (vcd): VCD interpolation.
Mixed (mixed): Mixed VCD/Modified AHD interpolation.
LMMSE (lmmse): LMMSE interpolation.
DHT (dht): DHT interpolation.
AAHD (aahd): Modified AHD interpolation by Anton Petrusevich.

Aber. / rawAber

Double

x: 1 y: 1

Correction of chromatic aberrations, given as a red multiplier and a blue multiplier. The default values of (1.,1.) correspond to no correction.

Output Layer / outputLayer

Choice

This is the layer that will be set to the the color plane. This is relevant only for image formats that can have multiple layers: exr, tiff, psd, etc… Note that in Natron you can access other layers with a Shuffle node downstream of this node.

Edge Pixels / edgePixels

Choice

Auto

Specifies how pixels in the border of the region of definition are handled
Auto (auto): If the region of definition and format match exactly then repeat the border pixel otherwise use black
Edge Detect (edge): For each edge, if the region of definition and format match exactly then repeat border pixel, otherwise use black
Repeat (repeat): Repeat pixels outside the region of definition
Black (black): Add black pixels outside the region of definition

Offset Negative Display Window / offsetNegativeDispWindow

Boolean

On

The EXR file format can have its “display window” origin at another location than (0,0). However in OpenFX, formats should have their origin at (0,0). If the left edge of the display window is not 0, either you can offset the display window so it goes to 0, or you can treat the negative portion as overscan and resize the format.

OpenImageIO Info… / libraryInfo

Button

Display information about the underlying library.

OCIO Config File / ocioConfigFile

N/A

OpenColorIO configuration file

File Colorspace / ocioInputSpaceIndex

Choice

Input data is taken to be in this colorspace.

Output Colorspace / ocioOutputSpaceIndex

Choice

Output data is taken to be in this colorspace.

key1 / key1

String

OCIO Contexts allow you to apply specific LUTs or grades to different shots.
Here you can specify the context name (key) and its corresponding value.
Full details of how to set up contexts and add them to your config can be found in the OpenColorIO documentation:

value1 / value1

String

OCIO Contexts allow you to apply specific LUTs or grades to different shots.
Here you can specify the context name (key) and its corresponding value.
Full details of how to set up contexts and add them to your config can be found in the OpenColorIO documentation:

key2 / key2

String

OCIO Contexts allow you to apply specific LUTs or grades to different shots.
Here you can specify the context name (key) and its corresponding value.
Full details of how to set up contexts and add them to your config can be found in the OpenColorIO documentation:

value2 / value2

String

OCIO Contexts allow you to apply specific LUTs or grades to different shots.
Here you can specify the context name (key) and its corresponding value.
Full details of how to set up contexts and add them to your config can be found in the OpenColorIO documentation:

key3 / key3

String

OCIO Contexts allow you to apply specific LUTs or grades to different shots.
Here you can specify the context name (key) and its corresponding value.
Full details of how to set up contexts and add them to your config can be found in the OpenColorIO documentation:

value3 / value3

String

OCIO Contexts allow you to apply specific LUTs or grades to different shots.
Here you can specify the context name (key) and its corresponding value.
Full details of how to set up contexts and add them to your config can be found in the OpenColorIO documentation:

key4 / key4

String

OCIO Contexts allow you to apply specific LUTs or grades to different shots.
Here you can specify the context name (key) and its corresponding value.
Full details of how to set up contexts and add them to your config can be found in the OpenColorIO documentation:

value4 / value4

String

OCIO Contexts allow you to apply specific LUTs or grades to different shots.
Here you can specify the context name (key) and its corresponding value.
Full details of how to set up contexts and add them to your config can be found in the OpenColorIO documentation:

OCIO config help… / ocioHelp

Button

Help about the OpenColorIO configuration.