colour.models.log_encoding_SLog3#
- colour.models.log_encoding_SLog3(x: Annotated[_Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str], 1], bit_depth: int = 10, out_normalised_code_value: bool = True, in_reflection: bool = True) Annotated[ndarray[tuple[Any, ...], dtype[float16 | float32 | float64]], 1][source]#
Apply the Sony S-Log3 log encoding opto-electronic transfer function (OETF).
- Parameters:
x (Annotated[_Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str], 1]) – Reflection or \(IRE / 100\) input light level \(x\) to a camera.
bit_depth (int) – Bit-depth used for conversion.
out_normalised_code_value (bool) – Whether the Sony S-Log3 non-linear data data \(y\) is encoded as normalised code values.
in_reflection (bool) – Whether the light level \(x\) to a camera is reflection.
- Returns:
Sony S-Log3 non-linear encoded data \(y\).
- Return type:
Notes
Domain
Scale - Reference
Scale - 1
x1
1
Range
Scale - Reference
Scale - 1
y1
1
References
Examples
>>> log_encoding_SLog3(0.18) 0.4105571...
The values of S-Log3 10bit code values (18%, 90%) table in [SonyCorporationc] are obtained as follows:
>>> x = np.array([0, 18, 90]) / 100 >>> np.around(log_encoding_SLog3(x, 10, False) * 100).astype(np.int_) array([ 4, 41, 61]) >>> np.around(log_encoding_SLog3(x) * (2**10 - 1)).astype(np.int_) array([ 95, 420, 598])