DGCube
From Avisynth wiki
(Difference between revisions)
(DGCube (2022/08/11)) |
(version 2022/08/19) |
||
Line 2: | Line 2: | ||
{{Filter3 | {{Filter3 | ||
|{{Author/Donald Graft}} | |{{Author/Donald Graft}} | ||
− | |2022/08/ | + | |2022/08/19 |
|3=[https://rationalqm.us/misc/DGCube.zip DGCube.zip] | |3=[https://rationalqm.us/misc/DGCube.zip DGCube.zip] | ||
|4=Adjustment Filters | |4=Adjustment Filters | ||
Line 14: | Line 14: | ||
== Requirements == | == Requirements == | ||
* [[AviSynth+]] (x86 and x64) | * [[AviSynth+]] (x86 and x64) | ||
− | * Supported color formats: [[RGBP16]] | + | * Supported color formats: [[RGBP16]], [[YUV420P16]] |
<br> | <br> | ||
== [[Script variables|Syntax and Parameters]] == | == [[Script variables|Syntax and Parameters]] == | ||
− | :{{Template:FuncDef|DGCube (clip, string "cube", bool "fullrange", string "interp", int "device")}} | + | :{{Template:FuncDef|DGCube (clip, string "cube", bool "fullrange", bool "expand_in", bool "compress_out", string "interp", int "device")}} |
<br> | <br> | ||
::{{Par2| |clip| }} | ::{{Par2| |clip| }} | ||
− | :::Input clip; the filter receives and delivers | + | :::Input clip; the filter receives and delivers either RGBP16 or YUV420P16 color space. |
<br> | <br> | ||
::{{Par2|cube|string|""}} | ::{{Par2|cube|string|""}} | ||
Line 28: | Line 28: | ||
<br> | <br> | ||
::{{Par2|fullrange|bool|true}} | ::{{Par2|fullrange|bool|true}} | ||
+ | :::This parameter is ignored. | ||
:::*false : limited range | :::*false : limited range | ||
:::*true : full range | :::*true : full range | ||
+ | <br> | ||
+ | ::{{Par2|expand_in|bool|false}} | ||
+ | :::Expand the input from limited range to full range. Default is false. | ||
+ | <br> | ||
+ | ::{{Par2|compress_out|bool|false}} | ||
+ | :::Compress the output from full range to limited range. Default is false. | ||
<br> | <br> | ||
::{{Par2|interp|string|"tetrahedral"}} | ::{{Par2|interp|string|"tetrahedral"}} | ||
Line 44: | Line 51: | ||
[[Convert|ConvertToYUV420()]] | [[Convert|ConvertToYUV420()]] | ||
− | Apply 3D LUT to HDR10 PQ clip obtained from [[DGDecNV|DGSource]]: | + | Apply 3D LUT to HDR10 PQ clip obtained from [[DGDecNV|DGSource]] using internal YUV<->RGB conversions: |
+ | |||
+ | # Source | ||
+ | DGSource("THE GREAT WALL.dgi")<br> | ||
+ | # Load and apply [https://github.com/FranceBB/LinearTransformation "PQ_to_BT709_slope" cube]. Input and output is Limited Range YUV420P16 | ||
+ | DGCube("PQ_to_BT709_v1.cube", expand_in=true, compress_out=true, interp="tetrahedral")<br> | ||
+ | |||
+ | Apply 3D LUT to HDR10 PQ clip obtained from [[DGDecNV|DGSource]] using external conversions to RGBP16: | ||
# Source | # Source | ||
DGSource("THE GREAT WALL.dgi")<br> | DGSource("THE GREAT WALL.dgi")<br> | ||
# From 4:2:0 10bit planar Limited Range to RGB Planar 16bit Full Range | # From 4:2:0 10bit planar Limited Range to RGB Planar 16bit Full Range | ||
− | [[Avsresize#z_ConvertFormat|z_ConvertFormat]](pixel_type="RGBP16", colorspace_op="2020:st2084:2020:limited=>rgb:st2084:2020:full | + | [[Avsresize#z_ConvertFormat|z_ConvertFormat]](pixel_type="RGBP16", colorspace_op="2020:st2084:2020:limited=>rgb:st2084:2020:full", dither_type="error_diffusion")<br> |
− | #Load and apply cube | + | # Load and apply [https://github.com/FranceBB/LinearTransformation "PQ_to_BT709_slope" cube] |
− | DGCube(" | + | DGCube("PQ_to_BT709_v1.cube", expand_in=false, compress_out=false, interp="tetrahedral")<br> |
# From RGB 16bit planar Full Range to YUV420 10bit planar Limited Range with dithering | # From RGB 16bit planar Full Range to YUV420 10bit planar Limited Range with dithering | ||
− | [[Avsresize#z_ConvertFormat|z_ConvertFormat]](pixel_type="YUV420P10", colorspace_op="rgb:std-b67:2020:full=>2020:std-b67:2020:limited | + | [[Avsresize#z_ConvertFormat|z_ConvertFormat]](pixel_type="YUV420P10", colorspace_op="rgb:std-b67:2020:full=>2020:std-b67:2020:limited", dither_type="error_diffusion") |
− | + | ||
<br> | <br> | ||
== Changelog == | == Changelog == | ||
Version Date Changes | Version Date Changes | ||
+ | 2022/08/19 - Added "expand_in" and "compress_out" parameters. | ||
+ | - "full_range" parameter ignored. | ||
+ | 2022/08/17 - Add support for YUV420P16. | ||
2022/08/11 - VapourSynth support. | 2022/08/11 - VapourSynth support. | ||
- 'device' parameter to select GPU device. | - 'device' parameter to select GPU device. | ||
Line 73: | Line 89: | ||
!!width="150px"| Download | !!width="150px"| Download | ||
!!width="150px"| Mirror | !!width="150px"| Mirror | ||
+ | |- | ||
+ | !2022/08/19 | ||
+ | |[https://web.archive.org/web/20220819191354if_/https://www.rationalqm.us/misc/DGCube.zip DGCube.zip] | ||
+ | | | ||
|- | |- | ||
!2022/08/11 | !2022/08/11 | ||
− | |||
|[https://web.archive.org/web/20220811180805if_/https://www.rationalqm.us/misc/DGCube.zip DGCube.zip] | |[https://web.archive.org/web/20220811180805if_/https://www.rationalqm.us/misc/DGCube.zip DGCube.zip] | ||
+ | | | ||
|} | |} | ||
<br> | <br> |
Revision as of 06:55, 20 August 2022
Abstract | |
---|---|
Author | Donald Graft |
Version | 2022/08/19 |
Download | DGCube.zip |
Category | Adjustment Filters |
License | Closed source |
Discussion | DG Tools Support Forum |
Contents |
Description
AviSynth+ plugin to load and apply Adobe 3D LUTs to a clip. DGCube is a CUDA version of the AVSCube filter.
Requirements
Syntax and Parameters
- DGCube (clip, string "cube", bool "fullrange", bool "expand_in", bool "compress_out", string "interp", int "device")
- clip =
- Input clip; the filter receives and delivers either RGBP16 or YUV420P16 color space.
- clip =
- string cube = ""
- Full path of the 3D LUT file. This must be an Adobe *.cube file.
- string cube = ""
- bool fullrange = true
- This parameter is ignored.
- false : limited range
- true : full range
- This parameter is ignored.
- bool fullrange = true
- bool expand_in = false
- Expand the input from limited range to full range. Default is false.
- bool expand_in = false
- bool compress_out = false
- Compress the output from full range to limited range. Default is false.
- bool compress_out = false
- string interp = "tetrahedral"
- String specifying the interpolation method: "tetrahedral" (default) or "trilinear".
- string interp = "tetrahedral"
- int device = 255
- GPU device number to use. If device is 255 (default), then the GPU device will be automatically selected.
- int device = 255
Examples
Apply 3D LUT to clip obtained from BlankClip:
BlankClip(pixel_type="RGBP16", color=$ff0000) DGCube("...\test.cube") ConvertToYUV420()
Apply 3D LUT to HDR10 PQ clip obtained from DGSource using internal YUV<->RGB conversions:
# Source DGSource("THE GREAT WALL.dgi")
# Load and apply "PQ_to_BT709_slope" cube. Input and output is Limited Range YUV420P16 DGCube("PQ_to_BT709_v1.cube", expand_in=true, compress_out=true, interp="tetrahedral")
Apply 3D LUT to HDR10 PQ clip obtained from DGSource using external conversions to RGBP16:
# Source DGSource("THE GREAT WALL.dgi")
# From 4:2:0 10bit planar Limited Range to RGB Planar 16bit Full Range z_ConvertFormat(pixel_type="RGBP16", colorspace_op="2020:st2084:2020:limited=>rgb:st2084:2020:full", dither_type="error_diffusion")
# Load and apply "PQ_to_BT709_slope" cube DGCube("PQ_to_BT709_v1.cube", expand_in=false, compress_out=false, interp="tetrahedral")
# From RGB 16bit planar Full Range to YUV420 10bit planar Limited Range 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 2022/08/19 - Added "expand_in" and "compress_out" parameters. - "full_range" parameter ignored. 2022/08/17 - Add support for YUV420P16. 2022/08/11 - VapourSynth support. - 'device' parameter to select GPU device. - Updated user manual. 2022/08/10 - Added tetrahedral interpolation. 2022/08/08 - Ability to open any size cube file, no longer limited to 65. 2022/08/07 - Initial release
Archived Downloads
Version | Download | Mirror |
---|---|---|
2022/08/19 | DGCube.zip | |
2022/08/11 | DGCube.zip |
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
Back to External Filters ←