Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion. Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules. |
1st February 2014, 15:08 | #1 | Link |
Registered User
Join Date: Dec 2002
Location: Region 0
Posts: 1,436
|
Any resizers with anti-ringing?
Are there any plugins / filters for AVIsynth that have anti-ringing capability for resizing like madVR has? I know ResampleHQ has linear light capability, but no mention of anti-ringing. I searched around some but didn't find any mention of any.
|
1st February 2014, 15:32 | #3 | Link |
I'm Siri
Join Date: Oct 2012
Location: void
Posts: 2,633
|
or you can use any other resizer you want like this "xxxresize ().repair (gaussresize (p=100),mode=1)" which is basically the same as dither_resize16nr script
Last edited by feisty2; 1st February 2014 at 15:48. |
1st February 2014, 16:10 | #5 | Link |
I'm Siri
Join Date: Oct 2012
Location: void
Posts: 2,633
|
no, downscaling ringing is almost invisible, so using dither_resize16nr instead of dither_resize16 will only cause blur and other problems but gives you no good, it's only recommended to use non ringing resizer for upscaling
|
1st February 2014, 16:52 | #6 | Link | |
Registered User
Join Date: Dec 2002
Location: Region 0
Posts: 1,436
|
Quote:
I was using this: Code:
ResampleHQ(1280,720, "YV12", "TV.709", "TV.709", false, 0, 0, -0, -0 ,"CatmullRom") flash3kyuu_deband(range=15, grainY=32, grainC=32, sample_mode=2, dither_algo=3, mt=false) Code:
Dither_convert_8_to_16() Dither_resize16(1280, 720, 0, 0, -0, -0, kernel="bicubic", a1=0, a2=.5) GradFun3(smode=1,lsb_in=true,lsb=true,debug=0) DitherPost() |
|
2nd February 2014, 14:11 | #11 | Link |
I'm Siri
Join Date: Oct 2012
Location: void
Posts: 2,633
|
you can use gamma aware resizing but it may give you ringing and aliasing for some unknown reasons
Code:
# 1920x1080 stacked 16bit input here # dither_convert_yuv_to_rgb (lsb_in=true,output="rgb48y") Dither_y_gamma_to_linear (curve="709") dither_resize16 (1280,720) Dither_y_linear_to_gamma (curve="709") Dither_convert_rgb_to_yuv (SelectEvery (3, 0),SelectEvery (3, 1),SelectEvery (3, 2),lsb=true) Last edited by feisty2; 2nd February 2014 at 14:14. |
3rd February 2014, 15:22 | #13 | Link |
͡҉҉ ̵̡̢̛̗̘̙̜̝̞̟̠͇̊̋̌̍̎̏̿̿
Join Date: Feb 2009
Location: No support in PM
Posts: 712
|
With gamma-aware resizing, ringing occurs on the dark part of a contrasted dark/light edge. The ringing exists without gamma awareness too, but it becomes more visible when resizing in a linear colorspace. The reason is exactly the same as for the preservation of stars in a night sky. Averaging pixels of different intensities in a gamma-compensated colorspace tends to darken the result.
On the other hand, the ringing is attenuated in the light part. Anyway, the correct way to resize a Y’Cb’Cr’ picture in linear light is to convert it first in R’G’B’, then to RGB by linearizing each component. Then resize and do the inverse transform. Check this.
__________________
dither 1.28.1 for AviSynth | avstp 1.0.4 for AviSynth development | fmtconv r30 for Vapoursynth & Avs+ | trimx264opt segmented encoding |
4th February 2014, 03:29 | #14 | Link | |
Registered User
Join Date: Dec 2002
Location: Region 0
Posts: 1,436
|
Quote:
Code:
Dither_convert_8_to_16() GradFun3(radius=15, smode=1, lsb_in=true, lsb=true, debug=0) dither_convert_yuv_to_rgb (lsb_in=true, output="rgb48y") Dither_y_gamma_to_linear (curve="709", tv_range_in=false, tv_range_out=false, u=1, v=1) Dither_resize16(1280, 720, 2, 2, -6, -2, kernel="bicubic", a1=0, a2=.5, u=1, v=1) Dither_y_linear_to_gamma (curve="709", tv_range_in=false, tv_range_out=false, u=1, v=1) Dither_convert_rgb_to_yuv (SelectEvery (3, 0), SelectEvery (3, 1), SelectEvery (3, 2), lsb=true) DitherPost(mode=0) |
|
4th February 2014, 15:28 | #16 | Link |
Registered User
Join Date: Dec 2007
Location: Germany
Posts: 632
|
This raises a question...
Which curve is the correct one to use in linear <-> gamma conversions if we're working with stacked RGB originating from standard 8 bit YCbCr (like YV12)? I noticed you guys use curve="709" while in cretindesalpes' example there is no curve specified which means it defaults to "sRGB". |
4th February 2014, 16:25 | #18 | Link |
Registered User
Join Date: Dec 2007
Location: Germany
Posts: 632
|
Well, yes, I know. But after we convert YV12 to RGB... doesn't that change the transfer curve to sRGB?
I thought 601 and 709 (and BT.2020) exist only in YCbCr land, not RGB. By the way, the transfer characteristics for DVD are definitely not 709 but 601 like pretty much all SD sources. Last edited by TheSkiller; 4th February 2014 at 16:31. |
4th February 2014, 16:35 | #19 | Link | |
I'm Siri
Join Date: Oct 2012
Location: void
Posts: 2,633
|
Quote:
|
|
4th February 2014, 16:42 | #20 | Link |
Registered User
Join Date: Dec 2007
Location: Germany
Posts: 632
|
OK, true, it also says it in the dither documentation. However this doesn't answer my question whether the transfer characteristics change to sRGB or not if we convert a source with 709 transfer characteristics to RGB.
|
Thread Tools | Search this Thread |
Display Modes | |
|
|