View Full Version : Dogway's Filters Packs
Dogway
19th November 2022, 00:37
Yes I know the effect, it's the grain low frequency contribution from the DCT compression. Basically you have to strongly temporal denoise low frequencies, this can lead to smearing so you have to be careful. LFR=true is a default, but if the effect is strong you have to lower it to make it stronger (recover less of the high frequencies). It really depends on the content, maybe you can get away with a a very crude mode="TemporalSoften".
LeXXuz
19th November 2022, 10:26
Yes I know the effect, it's the grain low frequency contribution from the DCT compression. Basically you have to strongly temporal denoise low frequencies, this can lead to smearing so you have to be careful. LFR=true is a default, but if the effect is strong you have to lower it to make it stronger (recover less of the high frequencies). It really depends on the content, maybe you can get away with a a very crude mode="TemporalSoften".
Thanks Dogway. :) So actually lowering the LFR-value from its default strengthens the effect of the filter? Is the default 150/300/600 for SD/HD/UHD and this value is used for LFR=true?
Just want to make sure I get it right this time. :D
Dogway
19th November 2022, 11:24
Default is 300 for all modes, rising or lowering that has a different effect since they all converge at maximum dimension resolution.
So 300 is same for all and max(width,height) is same for all, interpolated in between. It's made so for LFR=true to look similar at all resolutions.
By the way, I took the liberty to help Notepad3 (https://github.com/rizonesoft/Notepad3/issues/1129) devs with AVS+ lexer and handed them an updated list of Internal Functions, Plugins and User Functions definitions. They were kind to update it immediately.
I also made two syntax schemes, a "light" one and a dark one, you can have a glance here (https://github.com/rizonesoft/Notepad3/issues/4014#issuecomment-1320734339).
The problem now that I made Notepad3 my default text editor is that it feels glitchy. Opening a file takes like 300ms, and the GUI flickers while writing... Dunno if it's a Win7 thing here.
LeXXuz
19th November 2022, 15:26
Default is 300 for all modes, rising or lowering that has a different effect since they all converge at maximum dimension resolution.
So 300 is same for all and max(width,height) is same for all, interpolated in between. It's made so for LFR=true to look similar at all resolutions.
Good I asked. :D It seems my info was a little outdated from somewhere quite early in this thread. Must've missed that they are scaled now internally according to resolution so I don't have to worry that much about.
Btw. on some sources I had the feeling LFR may increase the pumping/flickering effect. But it improved textures on clothing and stuff so I kept it. Greyish / dark suit textures are often the first things that get blurry in moving scenes.
LeXXuz
20th November 2022, 20:27
From the helpfile here:
https://raw.githack.com/Dogway/Avisynth-Scripts/master/SMDegrain%20v3.5.5d/SMDegrain%20v3.5.5d.html
If instead you want to use your own prefilter denoiser, just define it in a variable and reference it here. Remember to:
Feed always 8 bit clips.
Input in fields for interlaced content *(read below)
Feed here planar ( by using Interleaved2Planar() ) YUY2 clips (not interleaved) when working with YUY2 sources.
Is that still valid or outdated info from the older helpfile?
Ryushin
23rd November 2022, 16:12
Set refinemotion=false?
That actually did fix it. Thanks. I had problem in my x265 settings that propagated to other jobs that was causing it to keep restarting the encoding chunks and not make any progress.
Boulder
28th November 2022, 11:31
Hello,
i'm looking reason why my dolby vision encodes have significaly higher bitrate compare to SDR encodes with all the same avisynth filters and x265 settings (DV - has few more additional tweaks).
AQ-mode 3.
madey83
28th November 2022, 11:36
AQ-mode 3.
hi,
any reson for that? if so which i should use?
madey83
28th November 2022, 12:49
AQ-mode 3.
Thank you. You were right :D
kedautinh12
28th November 2022, 13:06
hi,
any reson for that? if so which i should use?
I seen many people use aq-mode 2 for HDR and aq-mode 3 for sdr
Dogway
29th November 2022, 16:44
Major update today that I've been holding back for a few months.
QTGMC+: Implemented EEDI3CL for faster EEDI3 deinterlacing
TransformsPack: Refined illuminant chromaticities. Fixed chroma placement algo (finally). More robust range and gamma conversions. Still need to finish CAT.
ResizersPack: Fixes on chroma placement and pixel center shifts in nnedi3/eedi3. New functions/wrappers (eedi3resize, RAVUresize, FSRresize, RIFEwrap, EEDI3wrap)
Please test and report since I won't be working much further on these anymore.
LeXXuz
29th November 2022, 18:22
Thanks Dogway! :thanks:
Doing a lot of DVD stuff soon. I always let QTGMC+ as part of Ceppo's tools run in these scripts to take care of nasty phase shifts which a lot of the ordinary deinterlacers can't handle properly. Will let you know if I see something unusual. :)
Btw. what about NNEDI3CL and subpixel=4? Is the issue still present?
https://forum.doom9.org/showthread.php?p=1976247#post1976247
Dogway
29th November 2022, 20:12
I tested again and it's working fine for me, no errors. However I noticed a ghosting artifact caused by big pixel center shift with high pel. That is because by default the center shift is not being fixed for nnedi3 in SMDegrain, as that matches the internal motion vectors shift. But with high pel the deviation is higher, so I better fix it for that case. I will update tomorrow with a few other cosmetics.
kedautinh12
30th November 2022, 13:37
Your latest ver can't fix with propSet("_FieldBased",0) anymore
- When i use with tfm().tdecimate() i got this error
https://i.imgur.com/i1d3SFh.png
- After add propSet("_FieldBased",0), i got this error (fine with older vers)
https://i.imgur.com/vevJ9KG.png
Dogway
30th November 2022, 15:08
Thanks for the report! Test now (https://github.com/Dogway/Avisynth-Scripts/commit/8e0941bbfa9cf91d74e362ab231758411fdf77c0).
kedautinh12
30th November 2022, 16:32
Ok, error gone with propSet("_FieldBased",0) but error still have without propSet("_FieldBased",0)
Dogway
30th November 2022, 17:18
Yes, TIVTC needs to be updated for frameprops support.
BTW I'm updating SMDegrain in a moment.
madey83
1st December 2022, 08:55
@Dogway,
Your last release give me below errors:
Script Error
Script error: There is no function named 'libplacebo_Resample'.
(E:\4k_encode\Avisynth-Scripts-master\TransformsPack - Main.avsi, line 927)
(E:\4k_encode\Avisynth-Scripts-master\TransformsPack - Main.avsi, line 1302)
(E:\4k_Encode\Avisynth-Scripts-master\ResizersPack.avsi, line 230)
(E:\4k_Encode\Avisynth-Scripts-master\ResizersPack.avsi, line 274)
(E:\myVideo.avs, line 159)
line 159 of avs script is: deep_resize(1920,edge="Zopti1080")
my plugns:
import("E:\4k_Encode\Avisynth-Scripts-master\MIX mods\GradFun3plus.avsi")
import("E:\4k_Encode\Avisynth-Scripts-master\ExTools.avsi")
import("E:\4k_encode\Avisynth-Scripts-master\SMDegrain v3.5.6d\SMDegrain v3.5.6d.avsi")
Import("E:\4k_encode\Avisynth-Scripts-master\ResizersPack.avsi")
Import("E:\4k_encode\Avisynth-Scripts-master\MIX mods\LSFplus.avsi")
Import("E:\4k_encode\Avisynth-Scripts-master\MIX mods\SharpenersPack.avsi")
Import("E:\4k_encode\Avisynth-Scripts-master\GradePack.avsi")
Import("E:\4k_encode\Avisynth-Scripts-master\ScenesPack.avsi")
Import("E:\4k_encode\Avisynth-Scripts-master\MasksPack.avsi")
Import("E:\4k_encode\Avisynth-Scripts-master\MIX mods\Spresso.avsi")
import("E:\4k_encode\Avisynth-Scripts-master\EX mods\GrainFactory3mod.avsi")
import("E:\4k_encode\Avisynth-Scripts-master\EX mods\DeblockPack.avsi")
import("E:\4k_encode\Avisynth-Scripts-master\TransformsPack - Main.avsi")
import("E:\4k_encode\Avisynth-Scripts-master\TransformsPack - Models.avsi")
import("E:\4k_encode\Avisynth-Scripts-master\TransformsPack - Transfers.avsi")
import("E:\4k_Encode\Avisynth-Scripts-master\ResizersPack.avsi")
loadplugin("E:\4k_encode\BM3DCUDA_AVS-test9\x64\BM3DCPU_AVS.dll")
loadplugin("E:\4k_encode\BM3DCUDA_AVS-test9\x64\BM3DCUDA_AVS.dll")
loadplugin("E:\4k_encode\BM3DCUDA_AVS-test9\x64\BM3D_VAggregate_AVS.dll")
loadplugin("E:\4k_encode\dgdecnv_244\DGDecodeNV.dll")
loadplugin("E:\4k_encode\vsTCanny-1.1.8\x64\Release\vsTCanny.dll")
loadplugin("E:\4k_Encode\neo_FFT3D_r11\x64\neo-fft3d.dll")
loadplugin("E:\4k_Encode\fmtconv-r30\win64\fmtconv.dll")
Do i miss something? Your previous release worked fine with the same AVS settings.
kedautinh12
1st December 2022, 08:57
You need load this plugin
https://github.com/Asd-g/avslibplacebo
madey83
1st December 2022, 09:08
You need load this plugin
https://github.com/Asd-g/avslibplacebo
Thank you. It was so quick :)
madey83
1st December 2022, 10:23
now i have got this:
Script Error
System exception - Access Violation
(E:\4k_encode\Avisynth-Scripts-master\EX mods\DeblockPack.avsi, line 239)
(E:\myVideo.avs, line 164):: CCD(15)
function CCD (clip a, float "thres", bool "interlaced", int "U", int "V") - function definition.
kedautinh12
1st December 2022, 10:31
Are you got avs+ and vc++ latest ver???
https://gitlab.com/uvz/AviSynthPlus-Builds
https://github.com/abbodi1406/vcredist
madey83
1st December 2022, 10:40
Are you got avs+ and vc++ latest ver???
https://gitlab.com/uvz/AviSynthPlus-Builds
https://github.com/abbodi1406/vcredist
i will test this out later today.
Thank you for support :)
LeXXuz
1st December 2022, 11:57
Dogway, when I use globals in SMDegrain for 2-stage denoising I can't use subpixel=3 in the 2nd stage.
Error message:
Scrip error: the named argument "pelclip" to MSuper had the wrong type. Lines 299 and 656.
I have to use subpixel=2 for the 2nd stage if globals are active.
madey83
1st December 2022, 13:08
Are you got avs+ and vc++ latest ver???
https://gitlab.com/uvz/AviSynthPlus-Builds
https://github.com/abbodi1406/vcredist
i did encode with CCD and without deep_resize(1920,edge="Zopti1080")
and it went fine and i did not change anything regarding AVS and VC versions.
madey83
2nd December 2022, 08:05
Are you got avs+ and vc++ latest ver???
https://gitlab.com/uvz/AviSynthPlus-Builds
https://github.com/abbodi1406/vcredist
Good morning,
you were right. thank you :D
Dogway
2nd December 2022, 21:01
Dogway, when I use globals in SMDegrain for 2-stage denoising I can't use subpixel=3 in the 2nd stage.
Error message:
Scrip error: the named argument "pelclip" to MSuper had the wrong type. Lines 299 and 656.
I have to use subpixel=2 for the 2nd stage if globals are active.
Sure, with globals some parameters must match, read docs (https://raw.githack.com/Dogway/Avisynth-Scripts/master/SMDegrain/SMDegrain.html#Globals).
You are trying to reinterpret the same motion vectors you are loading.
LeXXuz
2nd December 2022, 21:10
Sure, with globals some parameters must match, read docs (https://raw.githack.com/Dogway/Avisynth-Scripts/master/SMDegrain%20v3.5.6d/SMDegrain%20v3.5.6d.html#Globals).
You are trying to reinterpret the same motion vectors you are loading.
Yeah I know they have to match. First stage was also set to subpixel=3, of course.
It only works if both are set to 2.
It does not work when both are set to 3.
(And of course it doesn't work when they don't match.)
Dogway
2nd December 2022, 21:42
Thanks, I spotted the issue, promoted to v3.5.7. Not sure what was the logic of my !GlobalR ternary but I removed it and works now. Also fixed Globals=3 and a typo on nnedi3 pixel_shift.
LeXXuz
2nd December 2022, 23:06
Nice! Will give it a go again soon. :thanks:
madey83
2nd December 2022, 23:23
Yeah I know they have to match. First stage was also set to subpixel=3, of course.
It only works if both are set to 2.
It does not work when both are set to 3.
(And of course it doesn't work when they don't match.)
HI LeXXuz
what is the benefit to use globals in denoising?
Could it improve denoise, could it replace prefilters....
have you got some script to share to do some comparison test with my current setup?
Thank you in advance.
LeXXuz
3rd December 2022, 01:37
HI LeXXuz
what is the benefit to use globals in denoising?
Could it improve denoise, could it replace prefilters....
have you got some script to share to do some comparison test with my current setup?
Thank you in advance.
You may want to take a look into the docs with the link Dogway provided.
The globals parameter can be helpful if you want to run more than one instance of SMDegrain for denoising. The benefit is you dont't have to recalculate motion vectors again for your second instance of SMDegrain which can improve performance.
Some forms of noise can better be reduced by two instances of SMDegrain (each with weaker settings) than just one instance with stronger settings.
This doesn't replace prefiltering in any way. Appropriate prefiltering is always important to get best results with SMDegrain.
kedautinh12
7th December 2022, 06:01
Hi Dogway, your scripts requirements need only transforms pack. I wonder it's need 3 parts of them or only main version?? Of cause i load all and I ask for my friend (old man) :D
guest
7th December 2022, 06:31
@ Dogway ,
"Old Man" here, just to give a little more info on kedautinh12's post above.
I asked him for some help a little earlier today, and he mentioned about the 3 Transforms Packs:-
Transforms Pack-Main
Transforms Pack-Models
Transforms Pack-Transfers
I have ONLY been using the "Main" one, with my scripts that need Transforms Pack, and it works....adding the other 2 didn't make any difference to the script I was working on.
Respect.
Reel.Deel
7th December 2022, 07:06
Transforms Pack-Main has lots of functions and some of those are dependent on the functions included in the Models/Transfers pack. If you're using the Main pack and it's not complaining about a missing function, then it does not anything from the other two packs. It does not hurt one bit to have all of the scripts.
kedautinh12
9th December 2022, 07:06
Hi, i report new issue: when i use this scripts, i got that error (test with some video but i still got same issue. I think issue not from my video)
src=last
RatioResize(0.25,"%",kernel="bicubic")
DeStripeV(3,1,255)
ex_boxblur(1,0,mode="weighted")
bicubicresize(1338,974)
ex_LFR(src,last, LFR=150)
src=last
ex_edge("kroon")
ex_boxblur(0,5)
ex_binarize(80,true,hi=-1)
ex_lut("x[-1,0] x[1,0] - abs 5 *").ex_inpand().ex_expand()
ex_boxblur(0,10)
ex_lut("x 40 - 0 max 20 *") # Assumes 8-bit
# ex_deflate().ex_deflate()
InpaintDelogo(src, mask=last, Loc="0,0,0,0")
ex_lutxy(src,"y 5 + x > y x ?") # Assumes 8-bit
smdegrain(tr=2,mode="temporalsoften",blksize=32,thSAD=900,LFR=false,DCTFlicker=true,contrasharp=false,refinemotion=true)
smdegrain(tr=1,mode="MDegrain",blksize=32,thSAD=300,LFR=false,contrasharp=false,refinemotion=false)
ex_bilateral(5,0, ithres=10.0, sthres=10.0, dejaggie=false)
https://i.imgur.com/6otW7D0.png
Dogway
9th December 2022, 10:16
Sure, you are comparing the original with a scaled clip in ex_LFR().
By the way, among other things I finished the CAT refactor so I'm uploading TransformsPack v1.0 final in a few moments. Will write a full fledged post later in the day with examples and benchmarks.
kedautinh12
9th December 2022, 13:55
Ah, ok thanks
Dogway
10th December 2022, 02:51
I had time to run some speed benchs and some examples for ConvertFormat()
Mind you, I still need to work on the Preset system and Model conversion within ConvertFormat()
In my tests all filters run better at Prefetch(4). P8 indicates the speed at 8-bit for comparison.
The template script is as follows:
setmemorymax(2048*4)
DGSource("src.dgi")
ConvertBits(16)
[...] # Filters
Prefetch(4)
YUV to RGB
100 329 P8 520 z_ConvertFormat(pixel_type="RGBP16",colorspace_op ="709:709:709:l=>rgb:709:709:l",resample_filter="spline36")
fmtc_resample(kernel="spline36", css="444")
65 213 P8 251 fmtc_matrix(mat="709", col_fam="RGB",fulld=false)
64 209 P8 372 ConvertFormat(1,1,"YUV","RGB",kernel="spline36",tv_out=true)
59 194 P8 368 ConverttoPlanarRGB(matrix="709:f",chromaresample="spline36")
RGB to YUV
100 216 z_ConvertFormat(pixel_type="YUV420P16",colorspace_op ="rgb:709:709:f=>709:709:709:l",resample_filter="spline36")
76 163 ConverttoYUV420(matrix="709:l",chromaresample="spline36")
fmtc_matrix(mat="709", col_fam="YUV")
75 161 fmtc_resample(kernel="spline36", css="420")
64 138 ConvertFormat(1,1,"RGB","YUV",kernel="spline36")
1080p to UHD
100 253 P8 351 z_ConvertFormat(3840,2072,resample_filter="spline36")
83 210 P8 243 fmtc_resample(3840,2072,kernel="spline36")
63 158 P8 246 ConvertFormat(3840,cs_out="",kernel="spline36")
Rec.601 to Rec.709 (no P8 since speeds are similar except avsresize with a 25% speed increase)
100 294 z_ConvertFormat(pixel_type="YUV420P16",colorspace_op ="601:709:170m:l=>709:709:170m:l",resample_filter="spline36")
fmtc_resample (css="444",kernel="spline36")
fmtc_matrix (mats="601", matd="rgb")
fmtc_transfer (transs="1886", transd="linear")
fmtc_primaries(prims="170m", primd="709")
fmtc_transfer (transs="linear", transd="1886")
fmtc_matrix (mats="rgb", matd="709")
26 77 fmtc_resample (css="420",kernel="spline36")
13 38 ConvertFormat(cs_in="601",cs_out="709",kernel="spline36")
Some useful examples for ConvertFormat()
No Moirée
https://i.imgur.com/vZKuDBl.png
ConvertFormat(0.5,nomoiree=true,kernel="RobiSharp")
Ringing
Plain lanczos4 x4 upscale
https://i.imgur.com/6ASu3TK.png
With sigmoid scaling, a bit better.
https://i.imgur.com/LxNfXXr.png
ConvertFormat(4,cs_out="",kernel="lanczos4",scale_space="sigmoid")
But noring=true makes the difference
https://i.imgur.com/LdP142w.png
ConvertFormat(4,cs_out="",kernel="lanczos4",noring=true)
yes, you can mix them to get less 'bloating'
https://i.imgur.com/hv5uRqS.png
ConvertFormat(4,cs_out="",kernel="lanczos4",noring=true,scale_space="sigmoid")
Now nnedi3, nice
https://i.imgur.com/8ja8523.png
ConvertFormat(4,cs_out="",kernel="nnedi3")
But it can also be further improved
https://i.imgur.com/FJ7Tkbx.png
ConvertFormat(4,cs_out="",kernel="nnedi3",noring=true)
UHD upscale
Talking about nnedi3, you can upscale to UHD with decent speed at 72fps (nnedi3 GPU):
ConvertFormat(3840,cs_out="",kernel="nnedi3")
Or if you want some more sharpness
deep_resize(3840,grain=0) # 12 fps
Downscaling
Now for the opposite. With typical downscale kernels you can't go too far.
See in this example with 'Zopti1080', which is a bicubic with -0.99 and 0.06 coefs.
Source (https://download.hrz.tu-darmstadt.de/media/FB20/GCC/dpid/res/userstudy/069/Reference.png)
Spline64
https://i.imgur.com/Ry8jKeS.png
ConvertFormat(0.25,cs_out="",kernel="spline64")
Zopti1080
https://i.imgur.com/rhALgDc.png
ConvertFormat(0.25,cs_out="",kernel="Zopti1080")
Of course, you can try using linear scaling but result doesn't look nice at all (even worse with Zopti1080)
https://i.imgur.com/F3tDXTA.png
ConvertFormat(0.25,cs_out="",kernel="spline64",scale_space="linear")
Now check using 'SSIM2' downscaler
https://i.imgur.com/7d2om8R.png
ConvertFormat(0.25,cs_out="",kernel="SSIM2")
This is streamlined in deep_resize() by default:
deep_resize(0.25)
kedautinh12
10th December 2022, 03:31
Wow, amazing result
tormento
10th December 2022, 11:22
I had time to run some speed benchs and some examples for ConvertFormat()
[…]
ConvertBits(16)
On older machines (like mine) ConvertBits seems to be slower than other HBD conversion such as avsresize and fmt_, beside giving problems when converting to RGB and back (there are some posts about the need of fulld=true).
Moreover, if I am not wrong, avsresize allows to compact the conversion process in a single line instead of two calls. I can't remember about fmt_ :p.
Perhaps you could gift us with some more tests. :)
Dogway
10th December 2022, 12:40
Well, I can't compete with compiled programs and yet ConvertFormat() manages to equal fmtconv and internal Convert_ in some modes. avsresize is another thing, I don't know if they handcrafted the code in assembly or what but it's insanely fast.
In any case it was never my purpose, the beauty of it is to for example, scale up with nnedi3, using noring, in linear scale, with correct chroma placement, and change transfer or color space with gamut compression all in "one step" and with a self explanatory one-liner. Moreover, all the coefficients are derived so you might probably get more accurate* results (though not standard). It also serves me and others as a notebook for color management, as I write notes here and there, and the code isn't populated with CPU/SIMD specific intrinsics.
*Yeah, I realize CIE 1931 is far from being accurate, that's why I keep working on the CMFs.
Running these tests gave me some ideas for further optimizations, namely while fixing several bugs deep_resize() saw a near 50% speed decrease, so I might give it a look for a refactor.
DTL
10th December 2022, 13:24
"With typical downscale kernels you can't go too far."
Scaling for moving pictures systems is very complex task if trying to get sharpest result. Static scalers may give nice results but may cause significant artifacts in motion. So may be next generation scalers can be scene-adaptive so can apply best static scaler for static areas of the scene (it is really very common for many motion pictures footages like static camera for the total scenecut) and use motion-friendly not as sharp scaler for moving parts of the scene.
So 'classic' non-content adaptive scalers for motion pictures may be not as sharp as best static but fast and produce average result for the total movie in both static and moving parts of frames.
If possible it is nice to see 'motion' test of scalers using some synthetic or external slow motion speed content with typical motion speed about 0.1..0.3 samples per frame to see different content positions relative to sampling grid. 'As sharp as single (pixel)sample' static scalers may significantly fail this test. Because moving of single sample keeping its amplitude and 'width' in any real number position relative to sampling grid is not possible. May be animated .GIF file may be natural for text forum to see 'motion test' result.
Typical issue for motion of too-sharp and/or non-linear scalers is 'temporal aliasing' that looks like flickering of small details and sharp edges.
So selecting same for all moving pictures scaler is some balance between temporal artifacts and spatial artifacts and sharpness. Skipping temporal tests for moving pictures scaler may cause selecting too sharp scaler but producing too much temporal artifacts at natural moving pictures.
The 'classic' AVS convolution based linear scalers are result of some balance between temporal artifacts and spatial artifacts and sharpness.
Boulder
10th December 2022, 13:26
Can you do a test with that astronomical image and linear scale downscaling with avsresize (using HBD for all steps)? I'd be interested in seeing the result as I've always understood that linear light is better for such source material.
kedautinh12
10th December 2022, 13:45
Can you do a test with that astronomical image and linear scale downscaling with avsresize (using HBD for all steps)? I'd be interested in seeing the result as I've always understood that linear light is better for such source material.
I think Transforms Pack of Dogway just finished in 8 bit. HBD will support in future
Dogway
10th December 2022, 20:56
Can you do a test with that astronomical image and linear scale downscaling with avsresize (using HBD for all steps)? I'd be interested in seeing the result as I've always understood that linear light is better for such source material.
I did the test but with fmtconv and result was same.
I think Transforms Pack of Dogway just finished in 8 bit. HBD will support in future
It works at any bitdepth (color space is even hard-coded to 32-bit, that's why is so slow AVS wise), what is not supported currently in ConvertFormat() is HDR, but I want to post a few examples of what you can do using ancillary model functions.
madey83
10th December 2022, 21:22
@Dogway,
What is your recommendation to downscale dolby vision 2160p source to 1080p Dolby vision?
Dogway
10th December 2022, 21:55
What is your recommendation to downscale dolby vision 2160p source to 1080p Dolby vision?
By default deep_resize() uses 'Zopti1080' for going down to 1080p. This is correct in the sense you get a good speed and good quality.
Since you are keeping Dolby Vision (you need to attach metadata to the reencode), the metrics might be changed, but not so much than if you downscaled further.
I did a test and scaling in Dolby Vision 'log' with SSIM2 has a similar effect than scaling with Zopti1080 in 'gamma' (because you lose some sharpness in log)
Scaling for moving pictures systems is very complex task if trying to get sharpest result. Static scalers may give nice results but may cause significant artifacts in motion.
That is true, it really depends whether your downscale is display referred or scene referred. For display referred you want something softer and motion aware, maybe a PP filter like Soothe() or ex_reduceflicker() can help, it is also content dependent. On the other side, with scene referred downscales, you are better relying on smart guest device upscalers/PP, similar to basicvsr and such.
tormento
11th December 2022, 11:56
Well, I can't compete with compiled programs
I was talking about internal ConvertBits function, that you used in your benchmarks. :)
tormento
11th December 2022, 11:57
By default deep_resize() uses 'Zopti1080'
What about DPID?
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.