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 > VapourSynth

Reply
 
Thread Tools Search this Thread Display Modes
Old 9th September 2016, 16:55   #1  |  Link
Boulder
Pig on the wing
 
Boulder's Avatar
 
Join Date: Mar 2002
Location: Finland
Posts: 5,718
[REQ] SmoothD2 for VapourSynth

Jim Conklin's nice deblocking filter for Avisynth cannot be used with the x64 version of VapourSynth as it's compiled with Avisynth 2.5 headers. If there's someone bored out of his/her mind, I'd be grateful if the filter was ported to VapourSynth

https://sites.google.com/site/jconkl...othd2/download
__________________
And if the band you're in starts playing different tunes
I'll see you on the dark side of the Moon...
Boulder is offline   Reply With Quote
Old 9th September 2016, 18:09   #2  |  Link
Myrsloik
Professional Code Monkey
 
Myrsloik's Avatar
 
Join Date: Jun 2003
Location: Kinnarps Chair
Posts: 2,548
You forgot to mention that there isn't an x64 Avisynth version. And the reason for that is piles and piles of inline asm. Also piles of dead code in this. And of course it uses a custom memcpy.

A+++++

Would Avisynth filter again

I find it very hard to motivate myself to clean up this kind of mess. Porting is easy, messes are hard.
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet
Myrsloik is offline   Reply With Quote
Old 9th September 2016, 18:13   #3  |  Link
feisty2
I'm Siri
 
feisty2's Avatar
 
Join Date: Oct 2012
Location: void
Posts: 2,633
why not just go Deblock_QED (performance-wise) or Oyster.Deblocking(quality-wise)
feisty2 is offline   Reply With Quote
Old 9th September 2016, 18:14   #4  |  Link
Boulder
Pig on the wing
 
Boulder's Avatar
 
Join Date: Mar 2002
Location: Finland
Posts: 5,718
I totally forgot that the original site doesn't have an x64 version, but the Avisynth+ wiki page links to it:

http://www.dropbox.com/s/ui8chlbzopu...3_x64.zip?dl=1

Don't know how messy it is though
__________________
And if the band you're in starts playing different tunes
I'll see you on the dark side of the Moon...
Boulder is offline   Reply With Quote
Old 9th September 2016, 18:26   #5  |  Link
Myrsloik
Professional Code Monkey
 
Myrsloik's Avatar
 
Join Date: Jun 2003
Location: Kinnarps Chair
Posts: 2,548
Quote:
Originally Posted by Boulder View Post
I totally forgot that the original site doesn't have an x64 version, but the Avisynth+ wiki page links to it:

http://www.dropbox.com/s/ui8chlbzopu...3_x64.zip?dl=1

Don't know how messy it is though
That is depressing. Still has inline asm and can only ever be compiled with intel's compiler. And to think this was something produced in modern times...
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet
Myrsloik is offline   Reply With Quote
Old 9th September 2016, 18:42   #6  |  Link
Boulder
Pig on the wing
 
Boulder's Avatar
 
Join Date: Mar 2002
Location: Finland
Posts: 5,718
Off to check out Oyster then
__________________
And if the band you're in starts playing different tunes
I'll see you on the dark side of the Moon...
Boulder is offline   Reply With Quote
Old 10th September 2016, 10:10   #7  |  Link
Boulder
Pig on the wing
 
Boulder's Avatar
 
Join Date: Mar 2002
Location: Finland
Posts: 5,718
OK - is there an intermediate choice between Deblock_QED and Oyster?
__________________
And if the band you're in starts playing different tunes
I'll see you on the dark side of the Moon...
Boulder is offline   Reply With Quote
Old 10th September 2016, 11:34   #8  |  Link
feisty2
I'm Siri
 
feisty2's Avatar
 
Join Date: Oct 2012
Location: void
Posts: 2,633
I could make one if you do want that
feisty2 is offline   Reply With Quote
Old 10th September 2016, 12:12   #9  |  Link
Boulder
Pig on the wing
 
Boulder's Avatar
 
Join Date: Mar 2002
Location: Finland
Posts: 5,718
Don't know if you should bother, my needs are only to use a deblocker for those rare TV series that I have only on DVD (Community, MacGyver etc.) Oyster is a bit too much placebo for that usage.
__________________
And if the band you're in starts playing different tunes
I'll see you on the dark side of the Moon...
Boulder is offline   Reply With Quote
Old 10th September 2016, 12:24   #10  |  Link
feisty2
I'm Siri
 
feisty2's Avatar
 
Join Date: Oct 2012
Location: void
Posts: 2,633
Guess I'll just give it a shot, I like Community, and it's not that "rare", maybe?
feisty2 is offline   Reply With Quote
Old 10th September 2016, 16:40   #11  |  Link
Boulder
Pig on the wing
 
Boulder's Avatar
 
Join Date: Mar 2002
Location: Finland
Posts: 5,718
Thanks, I'd appreciate any effort. If you need any sample material, just let me know.

I feel that TV shows on DVD only are quite rare these days as new series are already in HD when broadcast. The old series need more work though, and they can be quite messy to clean up unless you want to remove all the few details they may still have.
__________________
And if the band you're in starts playing different tunes
I'll see you on the dark side of the Moon...
Boulder is offline   Reply With Quote
Old 11th September 2016, 00:41   #12  |  Link
hydra3333
Registered User
 
Join Date: Oct 2009
Location: crow-land
Posts: 540
I, also, would be economically appreciative. Do you have a paypal donations page of some kind ?
hydra3333 is offline   Reply With Quote
Old 11th September 2016, 15:54   #13  |  Link
feisty2
I'm Siri
 
feisty2's Avatar
 
Join Date: Oct 2012
Location: void
Posts: 2,633
Code:
def fast_deblock(src, radius=6, h=3.2, lowpass="0.0:0.0 0.12:1024.0 1.0:1024.0"):
    core          = vs.get_core()
    MakeDiff      = core.std.MakeDiff
    MergeDiff     = core.std.MergeDiff
    MaskedMerge   = core.std.MaskedMerge
    ShufflePlanes = core.std.ShufflePlanes
    colorspace    = src.format.color_family
    if colorspace != vs.GRAY:
       src_color  = src
    src           = ShufflePlanes(src, 0, vs.GRAY)
    ref           = Oyster.Basic(src, None, radius)
    mask          = Oyster.helpers.genblockmask(src)
    cleansed      = Oyster.helpers.nlmeans(ref, 0, 8, 4, h, ref, False)
    ref           = Oyster.helpers.freq_merge(cleansed, ref, 9, lowpass)
    src           = Oyster.helpers.freq_merge(cleansed, src, 9, lowpass)
    clip          = MaskedMerge(src, ref, mask, first_plane=True)
    if colorspace != vs.GRAY:
       clip       = ShufflePlanes([clip, src_color], [0, 1, 2], vs.YUV)
    return clip

Code:
clip = fast_deblock(clip)


basically a low precision lite version of Oyster.Deblocking, lower quality but like a million times faster
note that chroma will not be processed
feisty2 is offline   Reply With Quote
Old 11th September 2016, 16:51   #14  |  Link
Boulder
Pig on the wing
 
Boulder's Avatar
 
Join Date: Mar 2002
Location: Finland
Posts: 5,718
Thanks, I'll give it a go as soon as my time allows. Is it possible to use the standard MVTools package in 16-bit depth? I think that 32-bit floating point stuff is also quite placebo for my sources and will only slow things down. I know that you like to be mathematically accurate, there's nothing wrong with that
__________________
And if the band you're in starts playing different tunes
I'll see you on the dark side of the Moon...
Boulder is offline   Reply With Quote
Old 11th September 2016, 17:13   #15  |  Link
feisty2
I'm Siri
 
feisty2's Avatar
 
Join Date: Oct 2012
Location: void
Posts: 2,633
not possible, there's no MDegrainN in jackoneill's version
feisty2 is offline   Reply With Quote
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

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 18:22.


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