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.

 

Go Back   Doom9's Forum > Capturing and Editing Video > Avisynth Usage
Register FAQ Calendar Today's Posts Search

Reply
 
Thread Tools Search this Thread Display Modes
Old 3rd June 2016, 04:55   #1  |  Link
MysteryX
Soul Architect
 
MysteryX's Avatar
 
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")
MysteryX is offline   Reply With Quote
Old 3rd June 2016, 07:18   #2  |  Link
MysteryX
Soul Architect
 
MysteryX's Avatar
 
Join Date: Apr 2014
Posts: 2,559
I read that ConvertToYV24 uses Bicubic by default. I just tried this but the output is considerably different than with ConvertToYV24.

Dither_resize16(Width, Height, kernel="Bicubic", csp="YV24")
MysteryX is offline   Reply With Quote
Old 3rd June 2016, 07:31   #3  |  Link
MysteryX
Soul Architect
 
MysteryX's Avatar
 
Join Date: Apr 2014
Posts: 2,559
Ah! Got it. This works

Dither_resize16(Width, Height/2, kernel="Bicubic", csp="YV24")
MysteryX is offline   Reply With Quote
Old 3rd June 2016, 13:15   #4  |  Link
Motenai Yoda
Registered User
 
Motenai Yoda's Avatar
 
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.
Motenai Yoda is offline   Reply With Quote
Old 3rd June 2016, 15:42   #5  |  Link
MysteryX
Soul Architect
 
MysteryX's Avatar
 
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)
MysteryX is offline   Reply With Quote
Old 4th June 2016, 16:30   #6  |  Link
Motenai Yoda
Registered User
 
Motenai Yoda's Avatar
 
Join Date: Jan 2010
Posts: 709
Quote:
Originally Posted by MysteryX View Post
Dither_resize16nr(Width(),Height()/2,csp="YV24", kernel="spline36")
[process in YV24]
Dither_resize16nr(Width(),Height()/2,csp="YV12", kernel="spline36", invks=true)
inversing kernel don't works well other than with bilinear or bicubic
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.
Motenai Yoda is offline   Reply With Quote
Old 5th June 2016, 07:19   #7  |  Link
MysteryX
Soul Architect
 
MysteryX's Avatar
 
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()
MysteryX is offline   Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 20:54.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.