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. |
3rd June 2016, 04:55 | #1 | Link |
Soul Architect
Join Date: Apr 2014
Posts: 2,559
|
16-bit Convert YV12 to YV24
What's the right way to convert YV12 clip to YV24 using 16-bit-depth?
I'm thinking of this, but is it the right way or will it add distortion? Code:
Dither_convert_8_to_16() Dither_resize16(Width, Height, csp="YV24") |
3rd June 2016, 13:15 | #4 | Link |
Registered User
Join Date: Jan 2010
Posts: 709
|
you can either use spline36/blackman(minlobe) to reduce chroma blurring, and dither_resize16nr to avoid halo and ringing caused by sharper resize.
or Dither_resize16nr(Width(),Height()/2,csp="YV24", kernel="bicubic",invks=true)
__________________
powered by Google Translator Last edited by Motenai Yoda; 3rd June 2016 at 13:50. |
3rd June 2016, 15:42 | #5 | Link |
Soul Architect
Join Date: Apr 2014
Posts: 2,559
|
I wasn't totally satisfied with the results I was getting.
invks allows reversing the kernel to get back the original picture? Great! I might have to experiment with the various kernels and compare the image quality after converting back and forth. Dither_resize16nr(Width(),Height()/2,csp="YV24", kernel="spline36") [process in YV24] Dither_resize16nr(Width(),Height()/2,csp="YV12", kernel="spline36", invks=true) |
4th June 2016, 16:30 | #6 | Link | |
Registered User
Join Date: Jan 2010
Posts: 709
|
Quote:
also it can't reconstruct the exact image, but something lookalike (debilinear/debicubic do a better job but are for downscaling and rgb/yv12 only)
__________________
powered by Google Translator Last edited by Motenai Yoda; 4th June 2016 at 16:32. |
|
5th June 2016, 07:19 | #7 | Link |
Soul Architect
Join Date: Apr 2014
Posts: 2,559
|
You are right, it looks better without invks. Bicubic appears too soft to me. Spline36 appears closer to what ConvertToYV24/ConvertToYV12 produces, although they say they use Bicubic.
For this script, this is what's giving the best results so far Code:
Dither_convert_8_to_16() Dither_resize16nr(Width, Height/2, kernel="Spline36", csp="YV24") KNLMeansCL(D=1, A=2, h=2.1, cmode=true, device_type="GPU", device_id=0, lsb_inout=true) SuperResXBR(5, 1, 0.15, XbrStr=2.7, XbrSharp=1.3, MatrixIn="601", lsb_in=true, lsb_out=true) Dither_resize16nr(Width, Height/2, kernel="Spline36", csp="YV12") DitherPost() |
|
|