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. Domains: forum.doom9.org / forum.doom9.net / forum.doom9.se |
|
|
#1 | Link |
|
Registered User
Join Date: May 2003
Location: Germany
Posts: 502
|
RemoveGrain
RemoveGrain is a spatial denoiser for progressive video. Because of SSE optimisation, it is fairly fast (above 100 fps on my whimpy 1.3 GHZ Celeron). There are now significantly faster SSE2, SSE3 versions. For more details go to www.RemoveGrain.de.tf.
16|07|04 version 0.4 (first public version) released. 17|08|04 version 0.5 released (for a change log see the posting below) 12|09|04 version 0.6 released (for a change log see the posting below) 13|02|05 version 0.7 released (for a change log see the posting below) 09|04|05 version 0.8 released (for a change log see the posting below) 01|05|05 version 0.9 released (for a change log see the posting below) Last edited by kassandro; 1st May 2005 at 14:41. |
|
|
|
|
|
#3 | Link |
|
Pig on the wing
Join Date: Mar 2002
Location: Finland
Posts: 5,836
|
I can't get the SSE2 version working. I extracted first both RemoveGrain.dll and RemoveGrainSSE2.dll in my plugins folder and then tried removing RemoveGrain.dll. In both cases I got an error message "there is no function named DRemoveGrain".
__________________
And if the band you're in starts playing different tunes I'll see you on the dark side of the Moon... |
|
|
|
|
|
#5 | Link |
|
Registered User
Join Date: May 2003
Location: Germany
Posts: 502
|
Sorry, I was a little bit too fast and too tired (after midnight), when I rushed out the plugin. Actually RemoveGrainSSE2.dll was the non-test version, which I wanted to release only after satisfactory testing. I hope that it's correct now. Thanks in advance for testing.
I also made some slight corrections in the documentation. |
|
|
|
|
|
#6 | Link |
|
Pig on the wing
Join Date: Mar 2002
Location: Finland
Posts: 5,836
|
OK, I tested the SSE2 version, and there were no differences in the DebugView log. However, the only modes I got working were 5,6,7 and 8, all the others gave an access violation when the script was loaded in VirtualDub. I used a 720x576 MPEG-2 capture as the test material.
Other than that, the filter seems to work very well, mode 8 did an excellent job with my TV caps when followed by RemoveDirt(). Which reminds me, are you planning on adding SSE2 optimizations to RemoveDirt as well?
__________________
And if the band you're in starts playing different tunes I'll see you on the dark side of the Moon... |
|
|
|
|
|
#7 | Link | ||
|
Registered User
Join Date: May 2003
Location: Germany
Posts: 502
|
First, many thanks for testing.
Quote:
Quote:
Last edited by kassandro; 18th July 2004 at 01:47. |
||
|
|
|
|
|
#10 | Link | |
|
Registered User
Join Date: May 2003
Location: Germany
Posts: 502
|
Quote:
@Boulder: many thanks already. So far, I can't reproduce these ugly access errors. A thorough inspection of the source code also didn't help. |
|
|
|
|
|
|
#11 | Link | ||||
|
Pig on the wing
Join Date: Mar 2002
Location: Finland
Posts: 5,836
|
Quote:
Quote:
Quote:
Quote:
Hope this all helps
__________________
And if the band you're in starts playing different tunes I'll see you on the dark side of the Moon... |
||||
|
|
|
|
|
#12 | Link |
|
Registered User
Join Date: May 2003
Location: Germany
Posts: 502
|
Thank you Boulder for all your efforts, but I'll have to withdraw the SSE2 version. I spend quite some time to find the bug(s) using your precise observation, but all I found was one wrong SSE2 macro in for mode 1 and nothing in the other modes. Surprisingly my Celeron with Tualatin P3 design swallows the SSE2 version without any access error (also with 720x576 mpeg2 input). Of course, the output is not quite correct. While with the true SSE2 one can handle 16 pixels at a time, with the P3 SSE2 only the first 8 bytes of the 16 byte SSE register are processed. Thus if chrom processing id disabled (i.e. modeU=0), then after 8 correctly processed pixels there are 8 incorrectly processed pixels with the SSE2 version on Tualatin P3 (I don't know what happens on a Katmai or Coppermine P3 or on the various Athlons). I simply have to get my hands on a P4 to finish the job. Programming for the P4 without having one simply does not work.
|
|
|
|
|
|
#13 | Link |
|
Pig on the wing
Join Date: Mar 2002
Location: Finland
Posts: 5,836
|
Well, fortunately the speedup isn't that big, I'd estimate somewhere along 8-12% on my system. I suppose that mode 8 (which I also prefer) works OK, at least according to the difference debug log, so the SSE2 version can be used and I probably will.
I don't know if there are any developers who have a P4 system and could help..maybe it would be worth asking around a bit. Thanks for your efforts anyway
__________________
And if the band you're in starts playing different tunes I'll see you on the dark side of the Moon... |
|
|
|
|
|
#14 | Link |
|
Hates all his encodes
Join Date: Sep 2003
Posts: 166
|
Why can't I access the page?
It's loading but I see a blank page.
__________________
http://thevideophile.blogspot.com/ Watch and be amazed by my frustration over the video world! |
|
|
|
|
|
#15 | Link | |||
|
Registered User
Join Date: May 2003
Location: Germany
Posts: 502
|
Quote:
Code:
SSE processing time - SSE mmemory access time = 2 * (SSE2 processing time - SSE2 mmemory access time) Quote:
Quote:
|
|||
|
|
|
|
|
#16 | Link | |
|
Pig on the wing
Join Date: Mar 2002
Location: Finland
Posts: 5,836
|
Quote:
The speedup might have (and probably would have) been bigger if RemoveGrain was the only thing eating CPU cycles, there's always other processes and Avisynth and CCE probably cause some loss to the actual gain.
__________________
And if the band you're in starts playing different tunes I'll see you on the dark side of the Moon... |
|
|
|
|
|
|
#17 | Link |
|
Registered User
Join Date: May 2003
Location: Germany
Posts: 502
|
I just put up version 0.5 to the web site.
There have been substantial internal changes. The code for handling color spaces other than yv12 has changed, however the speed still remains surprisingly poor compared with the very satisfactory speed for yv12. The assembly code for mode=2,3,4 has been optimised. Here is a comparison of the old and new version on my machine (1.3 GHZ Celeron): Code:
mode old version new version 2 149.5 fps 150.5 fps 3 141 145.5 4 142 149.5 Last edited by kassandro; 17th August 2004 at 08:27. |
|
|
|
|
|
#18 | Link |
|
Pig on the wing
Join Date: Mar 2002
Location: Finland
Posts: 5,836
|
Thanks, RemoveGrain's one of my standard filters for processing analog TV caps
![]() EDIT: Has the SSE2 version changed in any way or am I better off using the SSE optimised one? I use mainly mode=8.
__________________
And if the band you're in starts playing different tunes I'll see you on the dark side of the Moon... Last edited by Boulder; 17th August 2004 at 09:47. |
|
|
|
|
|
#19 | Link |
|
Registered User
Join Date: Nov 2003
Posts: 1,283
|
In Vitualdubmod, I get an error,
Unable to load "C:\RemoveGrain.dll" Same goes for the SSE2 version. LoadPlugin("C:\PROGRA~1\ARCALC~1\AVS_Plugins\Mpeg2dec3.dll") LoadPlugin("C:\RemoveGrain.dll") Mpeg2Source("z:\*.D2V") RemoveGrain(mode=4,mode=U2) |
|
|
|
|
|
#20 | Link |
|
Pig on the wing
Join Date: Mar 2002
Location: Finland
Posts: 5,836
|
Works fine for me.. did you try extracting the dll to the Avisynth plugins directory?
__________________
And if the band you're in starts playing different tunes I'll see you on the dark side of the Moon... |
|
|
|
![]() |
| Thread Tools | Search this Thread |
| Display Modes | |
|
|