Quantcast MA Script for AVI? - Page 2 - digitalFAQ.com Forums [Archives]
Go Back    digitalFAQ.com Forums [Archives] > Video Production Forums > Video Encoding and Conversion

Reply
 
LinkBack Thread Tools
  #21  
03-25-2004, 05:14 AM
toliman toliman is offline
Free Member
 
Join Date: Mar 2004
Location: Melbourne AU
Posts: 6
Thanks: 0
Thanked 0 Times in 0 Posts
Send a message via ICQ to toliman Send a message via AIM to toliman Send a message via MSN to toliman Send a message via Yahoo to toliman
i usually like ffdshow's noise feature to enhance viewing, but in avisynth, i had no idea how to emulate it without reading the source code. so this may be way off, but it seems to be workable for adding grain/artificial detail, as the dshow mpeg-4 decode filters do. this would work ideally for low-medium bitrate "action" video (600-900kbps) to a higher bitrate end-product.

results are fast enough, and some noise is removed by the HybridFuPP() script, while sharpening the distinct edges and enhancing definition.

you may even want to limit the luma range in blockbuster to stop adding excess noise to bright areas, as ffdshow also allows for. depending on the source avi or final bitrate, this might be an advantage.

i didn't add Convolution3D(), TemporalSoften() or DCTFilter(1,1,1,1,1,1,0.5,0) from the original MA/DIKO script, as i wasnt in a need to post-process the unfilter/flux masks from within HyFupp, and im unsure as to the greater effect of DCTFilter.

Code:
LoadPlugin("C:\VIDEO\Avisynth 2.5 Plugins\MPEG2Dec3dg.dll")
LoadPlugin("C:\VIDEO\Avisynth 2.5 Plugins\Blockbuster.dll")
LoadPlugin("C:\VIDEO\Avisynth 2.5 Plugins\grip.dll")
LoadPlugin("C:\VIDEO\Avisynth 2.5 Plugins\UnDot.dll")
LoadPlugin("C:\VIDEO\Avisynth 2.5 Plugins\masktools.dll")
LoadPlugin("C:\VIDEO\Avisynth 2.5 Plugins\fluxsmooth.dll")
LoadPlugin("C:\VIDEO\Avisynth 2.5 Plugins\deen-beta1.dll")
LoadPlugin("C:\VIDEO\Avisynth 2.5 Plugins\UnFilter.dll")


Import("C:\VIDEO\Avisynth 2.5 Plugins\HybridFupp-v0.855a.avs")
AVISource("C:\Temp\video.avi",False)
converttoyv12()
BlindPP(cpu=4, quant=8, moderate_h=20, moderate_v=40)
Blockbuster(method="noise",detail_min=1,detail_max=10,variance=0.3,seed=45623)
HybridFupp(preset="high")
GripCrop(720, 576, overscan=1, source_anamorphic=false, dest_anamorphic=false)
GripSize(resizer="BicubicResize")
Blockbuster(method="noise",detail_min=1,detail_max=70,variance=4,seed=42)
GripBorders()
Limiter()
ConverttoYUY2()
any changes/suggestions are welcome, as i really only hacked this up in 4 hours of reading other posts and the scratchy online manuals. so very scratchy ...

ideally i'd move the order around, but it seems to work OK as it is, the pre-resize/HybridFupp() noise and the post-resize noise add definition to the edge sharpening mask, which will be softened by detailed noise, not a harsh blurring/ringing effect. i only really tried VagueDenoiser, which works too well at removing grain/detailed noise, but i didnt experiment much at all.
Reply With Quote
Someday, 12:01 PM
admin's Avatar
Site Staff / Ad Manager
 
Join Date: Dec 2002
Posts: 42
Thanks: ∞
Thanked 42 Times in 42 Posts
  #22  
03-25-2004, 05:46 AM
Dialhot Dialhot is offline
Free Member
 
Join Date: May 2003
Posts: 10,463
Thanks: 0
Thanked 0 Times in 0 Posts
Why don't you let HybridFupp doing the resizing ?
Reply With Quote
  #23  
03-25-2004, 11:02 AM
incredible incredible is offline
Free Member
 
Join Date: May 2003
Location: Germany
Posts: 3,189
Thanks: 0
Thanked 0 Times in 0 Posts
Send a message via ICQ to incredible
And I would add that its NOT useful to add noise before HybridFupp as this wont end up in the same purposure like it does in the optimal scripts!
The purpose was to "spray" on existing artifacts/blocks so that they can be handled by for example ATC() and so in a much heavier temporal cleaning way.

And you do postprocessing using BlindPP before where BlindPP already is used in HybridFupp()
Reply With Quote
  #24  
03-25-2004, 02:41 PM
toliman toliman is offline
Free Member
 
Join Date: Mar 2004
Location: Melbourne AU
Posts: 6
Thanks: 0
Thanked 0 Times in 0 Posts
Send a message via ICQ to toliman Send a message via AIM to toliman Send a message via MSN to toliman Send a message via Yahoo to toliman
Re HybridFuPP resizing, i initially tried it, Avisynth threw up an exception error a few times. so i left it up to GripResize. if i knew how the mechanics of gripsize worked... i'd change it around to do bicubic -> lanczos, which is what preset="high" is set for.

after evaluating the HybridFupp v0.855alpha script deeper, i came to a conclusion, the filters are a little too strong on easily compressed footage (which is why i added noise). i tried to look at sky, smoke, foliage and skin, this seems to be more what i intended it to look like.

re: adding that initial BB noise might confuse the mask/edge detection (looking at Fupp's debug info, i couldn't notice any difference with with noise/edge mask displacement, just that more low-light areas were picked up by the 'green' edges with added noise), but it did so without changing parameters, which was easier at the time ...

anyway

Code:
converttoyv12()
AssumeFPS(25,1,false)
GripCrop(720, 576, overscan=1, source_anamorphic=false, dest_anamorphic=false)
GripSize(resizer="BicubicResize")
HybridFupp(D_str=7,dering=false,preset="high")
Blockbuster(method="noise",detail_min=1,detail_max=70,luma_threshold=16,variance=4,seed=42)
VagueDenoiser(threshold=0.3,method=1,nsteps=6,chroma=true)
GripBorders()
limiter()
ConverttoYUY2()
Reply With Quote
  #25  
03-25-2004, 04:03 PM
incredible incredible is offline
Free Member
 
Join Date: May 2003
Location: Germany
Posts: 3,189
Thanks: 0
Thanked 0 Times in 0 Posts
Send a message via ICQ to incredible
And now you applied at the end a blockbuster followed by the noisekilling Vaguedenoiser and its spatial work

What are you doing ???
Reply With Quote
  #26  
03-25-2004, 04:55 PM
toliman toliman is offline
Free Member
 
Join Date: Mar 2004
Location: Melbourne AU
Posts: 6
Thanks: 0
Thanked 0 Times in 0 Posts
Send a message via ICQ to toliman Send a message via AIM to toliman Send a message via MSN to toliman Send a message via Yahoo to toliman
mainly two things, as hap-hazardly as possible. also, trying not to hijack the original thread, but the script doesnt do so well on low-quality bitrates unless you like your blurring, extra crispy.

i'm not used to reconstructing 600 kbps to 4mbps, and i'm doing this by feel, since documentation on avisynth filter systems is just like reading a german->japanese dictionary translated back to english by a snotty french waiter. ("sacre bleu, you should know this *sneer*")

mainly i want a script that will ...
convert a progressive, blurred NTSC 24ps to PAL 25fps, without using telecide or tomsmocomp to blend/process frames, and/or perform some frame/motion evaluation that AssumeFPS doesn't do (without having to do some wacky IVTC-field doubling analysis that will just bleed time and details with no effect. no offense to the people who deal with int fields daily, but it's far too late to fix it)

some motion/edge aware enhancement to increase detail and a detail sensitive noise/denoise process to add the detail back into the heavily DCT compressed blocks of the original file. (it's only because of some distant memory of wavelet image reconstruction in texture construction, that i even use it in preference to the normal spatio/temporal smoothers.)

i'm looking to emulate pretty much what ffdshow could do (overscan borders/resizer, luma-sensitive noise, adaptive post-processing with deringing/deblocking), but with a higher output quality. if all else fails, i could just wring an avs into ffvfw, then into CCE and do it that way.

i tried modifying the existing DIKO/MA/Optimal script, but i get too much detail reduction in the 8x8 blocks, especially in sky/smoke/water/skin areas, and it seems like avisynth can do a lot more to reconstruct the impression of image quality than to dismember, by squeezing YUV channel macroblock delta's, or by other measures.
Reply With Quote
  #27  
03-25-2004, 05:34 PM
FuPP FuPP is offline
Free Member
 
Join Date: Mar 2004
Posts: 92
Thanks: 0
Thanked 0 Times in 0 Posts
Quote:
HybridFuPP resizing, i initially tried it, Avisynth threw up an exception error a few times
Could you tell me more ? Are you using avisynth 2.55, masktools 1.4.15 and deen 1.0 beta 1 ?

Using a resizer before HybridFuPP is a nonsense...

Quote:
after evaluating the HybridFupp v0.855alpha script deeper, i came to a conclusion, the filters are a little too strong on easily compressed footage
If I remember well, 0.855 uses deen("c3d",1,2,3,4,6,0.3,9) as a default for N2 parameter, which is a little bit too strong.

You would rather like to use hybridFuPP(preset = "high", N2="""deen("c3d",1,2,3,2,3,0.3,9)""") as a workaround or directly hybridFuPP(preset = "high", N2="VagueDenoiser(threshold=0.3,method=1,nsteps=6, chroma=true)"). Be aware that using N2, filtering is applied after resizing. If you want to apply it before, you should use N1.

PS : Blockbuster shouldn't be necessary after HybridFuPP

Regards,
FuPP
Reply With Quote
  #28  
03-25-2004, 05:56 PM
toliman toliman is offline
Free Member
 
Join Date: Mar 2004
Location: Melbourne AU
Posts: 6
Thanks: 0
Thanked 0 Times in 0 Posts
Send a message via ICQ to toliman Send a message via AIM to toliman Send a message via MSN to toliman Send a message via Yahoo to toliman
Quote:
Could you tell me more ? Are you using avisynth 2.55, masktools 1.4.15 and deen 1.0 beta 1 ?
yes to all. i hunted down an old/distinct beta copy of deen, and that works fine, iirc, the avisynth exception came up if i used HybridFuPP(720,576,preset="high"), but not if i used width=720, etc. it might also be related to avisynth memory alloc, but with less filters loaded, it works fine.

ive only recently become more interested in looking at masked filters to only apply an effect to needed areas, since most destroy fine detail unless used sparingly.

i'd ditch GripResize, if i could, but it's so much easier ...
for N2, deen("c3d",1,7,9,4,6,0.5,0) is what im looking at in the original avs. i'll make the change and see how it goes.
Reply With Quote
  #29  
03-26-2004, 01:18 PM
toliman toliman is offline
Free Member
 
Join Date: Mar 2004
Location: Melbourne AU
Posts: 6
Thanks: 0
Thanked 0 Times in 0 Posts
Send a message via ICQ to toliman Send a message via AIM to toliman Send a message via MSN to toliman Send a message via Yahoo to toliman
it worked great. after a lot of unnecessary wailing, its fine.

i modified my script a little after trying to reduce the HybridFupp preset de-noise thresholds, and moved from noise to 'dither' in Blockbuster. the quality looks and seems to be just like the original source, with no discernable blocking, constrasts and edges are distinct, looks fine.

except for it being 12-15fps. at best. a different denosier would work a lot faster. also using scripting instead of GripResize to do anamorphic ratio sizing /overscan, would be a plus.

Code:
Import("C:\Program Files\DVD2SVCD\Avisynth2.5 Plugins\HybridFupp-v0.855a.avs")

converttoyv12()
GripCrop(720, 576, overscan=1, source_anamorphic=false, dest_anamorphic=false)
GripSize(resizer="BicubicResize")
Blockbuster(method="dither",detail_min=1,detail_max=70,luma_threshold=16,variance=4)
HybridFupp(D_str=8,dering=false,N2="VagueDenoiser(threshold=0.2,method=1,nsteps=3,chroma=false)",preset="high")
GripBorders()
limiter()
ConverttoYUY2()
Reply With Quote
  #30  
03-26-2004, 01:25 PM
kwag kwag is offline
Free Member
 
Join Date: Apr 2002
Location: Puerto Rico, USA
Posts: 13,537
Thanks: 0
Thanked 0 Times in 0 Posts
Quote:
Originally Posted by toliman
and moved from noise to 'dither' in Blockbuster.
That's no good at all
Even SansGrip agrees, and the dither option was experimental.

-kwag
Reply With Quote
  #31  
03-26-2004, 02:12 PM
FuPP FuPP is offline
Free Member
 
Join Date: Mar 2004
Posts: 92
Thanks: 0
Thanked 0 Times in 0 Posts
Did you try without blockbuster (actually, I'm not sure to understand why you use it) ?

I definitively do not like the idea to resize twice... It must slow down terribly things !

You can use a simple crop() and addborders() and help you with fitcd or something else to do the calculations...

Btw, I will have a look to see if I can do something with SansGrip thingies and HybridFuPP...

FuPP
Reply With Quote
  #32  
03-26-2004, 03:43 PM
toliman toliman is offline
Free Member
 
Join Date: Mar 2004
Location: Melbourne AU
Posts: 6
Thanks: 0
Thanked 0 Times in 0 Posts
Send a message via ICQ to toliman Send a message via AIM to toliman Send a message via MSN to toliman Send a message via Yahoo to toliman
ok, i feel silly. works better without Blockbuster, its now unnecessary.

all this ended up because of harsh denoising in presets which i never really looked at to begin with. as the saying goes .. less, is more

all of the help is very much appreciated.

and Fupp, if you do get code to work overscan borders in, as a resize option in some future HybridFupp(), i'd expect a lot of old and new fans in KVCD would appreciate it too.
Reply With Quote
  #33  
03-26-2004, 05:27 PM
FuPP FuPP is offline
Free Member
 
Join Date: Mar 2004
Posts: 92
Thanks: 0
Thanked 0 Times in 0 Posts
ok, I've just discovered that doing the following, you do not need Gripsize anymore :


Code:
Import("C:\Program Files\DVD2SVCD\Avisynth2.5 Plugins\HybridFupp-v0.855a.avs") 

converttoyv12() 
GripCrop(720, 576, overscan=1, source_anamorphic=false, dest_anamorphic=false) 

HybridFupp(width = GripFit_resize_width, height = GripFit_resize_height, D_str=8,dering=false,N2="VagueDenoiser(threshold=0.2,method=1,nsteps=3,chroma=false)",preset="high") 

GripBorders() 
limiter() 
ConverttoYUY2()
Regards,
FuPP
Reply With Quote
Reply




Similar Threads
Thread Thread Starter Forum Replies Last Post
Script AVS: Recodificando MPEG-1 - o que otimizar no script? danpos Conversão e Codificação de Vídeo (Português) 7 08-29-2004 03:28 AM
Optimal script or simple resize script? bigggt Avisynth Scripting 2 06-22-2004 08:17 PM
Divx script vs Optimal script? bigggt Video Encoding and Conversion 12 11-20-2003 04:22 AM
new KVCD script candidate for optimal script! Dialhot Video Encoding and Conversion 12 10-11-2003 02:09 PM
Avisynth: Difference between MA script and optimal script? mistermickster Avisynth Scripting 2 08-01-2003 09:36 AM




 
All times are GMT -5. The time now is 02:28 PM  —  vBulletin © Jelsoft Enterprises Ltd