AVSCube
(→External Links) |
(Added differences between trilinear and tetrahedral interpolation) |
||
Line 43: | Line 43: | ||
:::*0 : limited range | :::*0 : limited range | ||
:::*1 : full range | :::*1 : full range | ||
+ | <br> | ||
+ | |||
+ | == Trilinear vs Tetrahedral == | ||
+ | Trilinear interpolation is used by default only for historical reasons. | ||
+ | When Cube() was first developed it only had one interpolation method, namely trilinear. | ||
+ | Although this was far from ideal as it can produce ripples, plenty of people used this function, therefore when tetrahedral was introduced it was agreed to leave trilinear as default to allow people to still obtain the same results when upgrading the version. | ||
+ | However, in practice, tetrahedral should always be used and it's the suggested method: | ||
+ | Source - Trilinear - Tetrahedral: | ||
+ | [[File:Trilinear_vs_Tetrahedral_Interpolation.png]] | ||
+ | |||
+ | As you can see, in the right hand side waveform (tetrahedral) there are no ripples. | ||
<br> | <br> | ||
Revision as of 19:08, 11 July 2023
Abstract | |
---|---|
Author | Donald Graft |
Version | v1.3 |
Download | avscube_1.3.zip |
Category | Adjustment Filters |
License | Open source |
Discussion | Doom9 Thread |
Contents |
Description
AviSynth+ plugin to load and apply Adobe 3D LUTs to a clip. Ported from VapourSynth timecube plugin.
Requirements
Syntax and Parameters
- Cube (clip, string "cube", int "cpu", int "interp", int "fullrange")
- clip =
- Input clip; the filter receives and delivers the RGBP16 color space.
- clip =
- string cube = ""
- Full path of the 3D LUT file. This must be an Adobe *.cube file.
- string cube = ""
- int cpu = INT_MAX
- cpu: default INT_MAX, which selects best SIMD.
- 0 : SIMD_NONE
- 1 : SIMD_SSE41
- 2 : SIMD_AVX2
- 3 : SIMD_AVX512
- cpu: default INT_MAX, which selects best SIMD.
- int cpu = INT_MAX
- int interp = 0
- interp: default 0 selects the worse interpolation method for backwards compatibility reasons.
- 0 : trilinear interpolation
- 1 : tetrahedral interpolation
- interp: default 0 selects the worse interpolation method for backwards compatibility reasons.
- int interp = 0
- int fullrange = 1
- 0 : limited range
- 1 : full range
- int fullrange = 1
Trilinear vs Tetrahedral
Trilinear interpolation is used by default only for historical reasons. When Cube() was first developed it only had one interpolation method, namely trilinear. Although this was far from ideal as it can produce ripples, plenty of people used this function, therefore when tetrahedral was introduced it was agreed to leave trilinear as default to allow people to still obtain the same results when upgrading the version. However, in practice, tetrahedral should always be used and it's the suggested method: Source - Trilinear - Tetrahedral:
As you can see, in the right hand side waveform (tetrahedral) there are no ripples.
Examples
Apply 3D LUT to clip obtained from BlankClip:
BlankClip(pixel_type="RGBP16", color=$ff0000) Cube("...\test.cube") ConvertToYUV420()
Apply 3D LUT to HDR10 PQ clip obtained from DGSource() to go to HLG:
# Source DGSource("THE GREAT WALL.dgi")
# From Limited Range 10bit YUV420 to 16bit Full Range Planar RGB z_ConvertFormat(pixel_type="RGBP16", colorspace_op="2020:st2084:2020:limited=>rgb:st2084:2020:full", dither_type="error_diffusion")
# Load and apply "PQ_to_HLG.cube" to go from PQ to HLG Cube("PQ_to_HLG.cube", fullrange=1, interp=1)
# From 16bit Full Range Planar RGB to Limited Range 10bit YUV420 with dithering z_ConvertFormat(pixel_type="YUV420P10", colorspace_op="rgb:std-b67:2020:full=>2020:std-b67:2020:limited", dither_type="error_diffusion")
Changelog
Version Date Changes v1.3 2022/01/21 - Updated to timecube version 1.3 base code. - Added frame properties passthrough. - Updated the help document. v1.1 2019/01/25 - Rather than upgrade to r2a I ported the fullrange fix only. v1.0 2018/08/16 - Initial release
Archived Downloads
Version | Download | Mirror |
---|---|---|
v1.3 | avscube_1.3.zip | avscube_1.3.zip |
v1.1 | avscube_1.1.rar | avscube_1.1.rar |
v1.0 | avscube_1.0.rar | avscube_1.0.rar |
External Links
- Doom9 Forum - FranceBB LUT Collection
- GitHub - ColorMatch3D - tool that creates a .cube 3D LUT that matches colors of a reference image with a different grading. Discussion thread
- GitHub - hlg-tools - this tool suite consists of the basics needed to generate 3D LUTs that will convert video streams from Perceptual Quantizer (PQ) HDR into Hybrid-Log Gamma (HLG) HDR. Discussion thread, original discussion thread
- AMPAS CLF LUT PseudoCode - Walkthrough on different interpolation methods
Back to External Filters ←