I have to agree with jellygoose..It's awesome!!..Great job Kwag
David |
Back again...
Ok this new filter chain just throws me off my chair... The CQ value actually didn't raise too much, for me (by 1.6 points), but it seemed to be a lot sharper throughout the movie... I'm currently testing "TemporalCleaner" against "TemporalSoften", while I'm using a very low y-Threshold, and a rather high c-Threshold! I'll let you know the results! :wink: |
@All,
Kawg wrote: Quote:
try to load avisynth 2.51 this evening and see if I have problems. I stayed away from this because of 2.51, but this too good to ignor. It would be very nice to have this as avisynth v2.08 :roll: Wonder what BV shows against a video using adapative vs the way it's done now. :?: Maybe a comparison of frames showing how targeting has really improved picture quality :?: There's a lot to discover here :D -bp |
Hi Friends! Need Some help.
I have loaded AviSynth 2.5 (latest version) Created a Script using Kwag's latest. But when I try to load in Tmpgenc, it tells me that my file is not supported. When I load the script in VirtualDub I get this error message: "Couldn't locate decompressor for format YV12" Here is a copy of my Script: LoadPlugin("C:\Filters2_5\MPEG2Dec3.dll") LoadPlugin("C:\Filters2_5\STMedianFilter.dll") LoadPlugin("C:\Filters2_5\UnFilter.dll") Mpeg2Source("C:\My Documents\My Videos\movie.d2v") MaxThreshold=1.58 UnFilter(50, 50) BicubicResize(496, 334, 1/3, 1/3, 4, 0, 712, 480) STMedianFilter(8, 32, 0, 0 ) TemporalSoften(2,7,7,3,2) mergechroma(blur(1.50)) ## Dynamic linear adaptive filtering ## ScriptClip("val=YDifferenceFromPrevious()/14.55" + "val > MaxThreshold ? MergeLuma(blur(MaxThreshold)) : MergeLuma(blur( val ))") ## AddBorders(16, 73, 16, 73) Limiter() What am I doing wrong? :oops: Thanks for your help... I can't wait to try this new script... :wink: |
@ All
I see all of us are impressed with adaptive filtering method :D :D :D According my quest KWAG implement this method on 2 filters MergeLuma and BlockBuster . Thanx him for that !!! I didn't made tests yet and can't say how much compression new filter can add to mpg but IF IT'S RIGHT and it helps to get higher compression then - WHY DON'T try adaptive on WHOLE SCRIPT( I mean without resizing and SUBS ) . If its working on 2 filters then maybe it could be accomplish on all others in the script :?: :?: :wink: :wink: What do u think ? It could be worked out KWAG :?: :?: :?: Just an idea (maybe a stupid one ) bman |
:?
i need some help , please, a full script posted here will be great.... i got errors like DorvalCS. thanks in advance! :) |
Quote:
Yes, I mentioned this earlier in the thread, to incude filters that we can "plug" for different conditions. Some filters will need "static" values ( like temporal filters ) throughout the movie, unless sh0dan gives us a function similar to YDifferencefromPrevious, that instead of reporting a value change for activity, gives us a value change for "noise" activity per frame :idea: ( Hello sh0dan ;) ) Another thing I thought of last night was that instead of reporting the activity on a per-frame basis, divide the frame in a 16x16 array or so, and then the difference from previous frames would return a quadrant of information :idea: Then when adaptive filtering is used, it can also be applied selectively to each "quadrant". For example, you are watching a scene where the top half of the picture is a still sharp backgroung, and the bottom half is cars driving by (fast action). Right now, there would be an average of blur added to the complete frame, because it's the average applied from the value returned by the motion. With the quadrant approach, the blur would apply ONLY to the bottom area of the scene, and leave the top part untouched :!: So imaging that with this method, we could apply say a hight mergeluma to the bottom half of the screen, then the right top quadrants if it was pitch dark, we could apply some level of BlockBuster noise and if the left top quadrant doesn't need any filters, then that area is left alone. So we would have "Hybrid Adaptive Filtering" :mrgreen: Maybe I'm asking too much, but if the function hooks are developed in AviSynth, then it's just a matter of plugging our filters either on a "frame level" or on a "quadrant level" per frame. The possibilities we could get with this would be just amazing 8) @sh0dan, Comments on this :?: -kwag |
Kwag, I thought about the exact same thing this morning... :o
I thought this would be a lot to complicated in a way... Am I right, that this procedure of analyzing every square in a frame would take a LOT of time? However, it sounds extremely good, and I'm definately looking forward to further developments... Well you're right about the TemporalFilters, but STMedianFilter as a Spatial Filter (at least that's how WE use it) can still be adjusted to the amount of motion in a frame right? |
Quote:
Code:
AviSource(" -Your movie here.- ") |
Thanks Tenra,
That will sure divide the picture in slices fine, but we still need activity "per slice" from previous frames :!: That would be the only way to apply selective filtering on a "slice", based on activity from the previous "slices" on prior frames. -kwag |
@ KWAG , @ Tenra
What a BEAUTIFUL MIND , man , BEAUTIFUL MIND !!!! It's just me or somebody else can smell something extraordinary is cooking here ??!!! I have no patience to wait and see what will grow up from this :!: :!: :!: bman |
Quote:
Regards, Tenra |
Quote:
-kwag |
Quote:
-kwag |
I can't believe no one of us had this kind of idea earlier... :o
It sounds so simple and logical to me... :!: brilliant :!: :D |
Quote:
can you post a sample script that is ready to cut and paste so we can have a better idea more or less how this works, I know What the Linear Adaptive Script is suppose to do, i just dont know how it works I dont have a programmer's mentallity so it will take 4 me more time to understand. sorry to be a pain in the a.. :twisted: thanks again :!: ## Dynamic linear adaptive filtering ## ScriptClip("val=YDifferenceFromPrevious()/14.55" + "val > MaxThreshold ? MergeLuma(blur(MaxThreshold)) : MergeLuma(blur( val ))") ## |
One of the BEST things I like of this, is that there are virtually no blocks on high speed motion :!:
Because of the heavy blur on high speed pannings, what the encoder "sees" is a a frame with no sharp edges at all, and the result is that there are barely any visible blocks seen :!: This brings me to another question: Maybe we don't need 2,300Kbps for MAX bitrate :idea: Maybe we can drop the MAX to ~2000Kbps, and increase our play time per media :idea: I'll have to try this 8) -kwag |
Here's the script I used for the sample:
Code:
LoadPlugin("C:\Filters25\MPEG2Dec3.dll") |
Man, I go away for a couple of days and you guys just tear everything up. :lol:
|
I'm going nowhere fast! :lol:
"Blockbuster.dll is not an Avisynth 2.5 plugin" "STMedianFilter.dll is not an Avisynth 2.5 plugin" "I don't know what subblur means" "Unfilter.dll is not an Avisynth 2.5 plugin" i installed Avisynth 2.51 build May 21, 2003 and the filters are for 2.5x help!! :lol: |
Site design, images and content © 2002-2024 The Digital FAQ, www.digitalFAQ.com
Forum Software by vBulletin · Copyright © 2024 Jelsoft Enterprises Ltd.