TomsMoComp
所属分类:图形图像处理
开发工具:Visual C++
文件大小:128KB
下载次数:319
上传日期:2007-08-24 08:44:12
上 传 者:
crazyd
说明: 视频反交错方面的最经典代码,是目前处理后图象质量最高的一种算法。
the classic code for video deinterlace
(Video de-interlacing the most classical codes, is the highest image quality after the treatment of an algorithm. the classic code for video deinterlace)
文件列表:
DI_TomsMoComp.c (4336, 2002-07-10)
DI_TomsMoComp.dsp (6000, 2002-07-10)
DI_TomsMoComp.plg (2028, 2002-07-07)
DI_TomsMoComp.rc (2789, 2002-07-10)
DI_TomsMoComp3DNOW.c (145, 2002-05-28)
DI_TomsMoCompMMX.c (139, 2002-05-28)
DI_TomsMoCompSSE.c (143, 2002-05-11)
DI_TomsMoCompSSE2.c (145, 2002-05-11)
resource.h (417, 2002-07-07)
SearchLoop0A.inc (508, 2002-08-07)
SearchLoopBottom.inc (1849, 2003-06-17)
SearchLoopEdgeA.inc (623, 2002-11-12)
SearchLoopEdgeA8.inc (577, 2002-05-05)
SearchLoopEdgeAH.inc (621, 2002-11-12)
SearchLoopEdgeAH8.inc (556, 2002-05-05)
SearchLoopOddA.inc (514, 2002-11-12)
SearchLoopOddA2.inc (330, 2002-11-12)
SearchLoopOddA6.inc (583, 2002-05-05)
SearchLoopOddAH.inc (600, 2002-11-12)
SearchLoopOddAH2.inc (368, 2003-06-17)
SearchLoopOddAH6.inc (571, 2002-05-27)
SearchLoopOddAHH2.inc (411, 2002-11-12)
SearchLoopTop.inc (3855, 2003-06-17)
SearchLoopVA.inc (269, 2002-05-13)
SearchLoopVAH.inc (307, 2002-05-05)
TomsMoComp.cpp (35154, 2006-04-22)
TomsMoComp.h (11811, 2005-08-10)
TomsMoComp.plg (2389, 2003-06-11)
TomsMoComp.rc (2748, 2002-07-07)
TomsMoComp3DNOW.c (125, 2002-06-22)
TomsMoComp3DNOW.cpp (145, 2002-05-28)
TomsMoComp3DNOW_VF.c (157, 2002-06-22)
TomsMoComp3DNOW_VF_YV12.c (180, 2002-11-13)
TomsMoComp3DNOW_YV12.c (148, 2002-11-13)
TomsMoCompAll.inc (4727, 2002-07-07)
TomsMoCompAll2.inc (5688, 2005-08-10)
TomsMoCompAllAvisynth.inc (3875, 2002-07-07)
TomsMoCompMMX.c (119, 2002-06-22)
TomsMoCompMMX.cpp (139, 2002-05-28)
... ...
File: Readme_TomsMoComp.txt
TomsMoComp - Motion Compensating Deinterlace Filter
Copyright (c) 2002-2006 Tom Barry. All rights reserved.
trbarry@trbarry.com
Requires Avisynth source code to compile for Avisynth
Avisynth Copyright 2000 Ben Rudiak-Gould.
http://www.math.berkeley.edu/~benrg/avisynth.html
This file is subject to the terms of the GNU General Public License as
published by the Free Software Foundation. A copy of this license is
included with this software distribution in the file COPYING. If you
do not have a copy, you may obtain a copy by writing to the Free
Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
This software is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details
Also, this program is "Philanthropy-Ware". That is, if you like it and feel
the need to reward or inspire the author then please feel free (but not obligated)
to consider joining or donating to the Electronic Frontier Foundation. This will
help keep cyber space free of barbed wire and bullsh*t.
See their web page at www.eff.org.
***************
Okay, on to business.
TomsMoComp.dll is a filter (for Avisynth and DScaler 4.0) that uses motion compensation
and adaptive processing to deinterlace video source. It uses a variable amount of CPU
time based upon the user specified SearchEffort parameter. The SearchEffort may currently be
set anywhere from 0 (a smarter Bob) to about 30 (too CPU intensive for everybody). Only certain
values are actually implemented (currently 0,1,3,5,9,11,13,15,19,21,max) but the nearest value
will be used. Values above 15 have not been well tested and should probably be avoided for now.
TomsMoComp should run on all MMX machines or higher. It has also has some added code
for 3DNOW instructions for when it is running on a K6-II or higher and some SSEMMX
for P3 & Athlon.
WARNING - The source is a mess and I'm mostly no longer maintaining this. Be sure to use the most
up to date Avisynth source in folder TomsMoComp_Avisynth.
***************
For DScaler:
I'm no longer supporting the DScaler version for the last couple years. Please
get it as part of the DScaler project, www.dscaler.org. If there are DScaler-only compoenents
in this release you should assume they are very obsolete.
***************
For Avisynth:
Just unzip the TomsMoComp.dll from the Avisynth zip folder into your Avisynth directory, or
somewhere. As the script below shows, I made a subdirectory under Avisynth just to keep it separate.
Sample avs script:
LoadPlugin("d:\AVISynth\TomsMoComp\Release\TomsMoComp.dll")
clip = AVISource("c:\vcr\bikes.avi")
return clip.TomsMoComp(-1,5,1)
Of course replace the file and directory names with your own and supply the desired integer
values for parameters.
The above avs file specifies for TopFirst=auto, SearchEffort=5, and a Vertical Filter option to be
turned on.
***************
A WARNING FOR DEVELOPERS
There is a quirk in TomsMoComp inline assembly code or in VS6 such that it will crash
if compiled with C optimizations (or at least auto inlining) turned on. They must
be OFF. Since all the work is done in assembly anyway you don't need them. I'll (maybe)
figure it out someday.
***************
TomsMoComp Parm list:
TomsMoComp(TopFirst, SearchEffort, VerticalFilter)
All the values are integer, 0=no, 1=yes:
TopFirst - assume the top field, lines 0,2,4,... should be displayed first.
The default is the supposedly more common BottomFirst (not for me). You may
have to bring it up in Virtualdub and look at a few frames to see which
looks best. (0=BottomFirst, 1=TopFirst)
New - setting TopFirst=-1 will automatically pick up whatever Avisynth reports.
SearchEffort - determines how much effort (CPU time) will be used to find
moved pixels. Currently numbers from -1 to 30 with 0 being practically
just a smarter bob and 30 being fairly CPU intensive.
For Avisynth only, a value of -1 is supported. In this case the TomsMoComp
filter will not deinterlace but instead assume you already have progressive
frames but want to double the vertical size. I found by accident that this could
give slightly better apparent detail than regular scaling algorithms and is useful
for low bit rate captures that are hard to IVTC/deinterlace or where you have just
kept the even fields for some other reason.
VerticalFilter - If turned on will very slightly blend each pair of horizontal lines
together. This loses only a small amount of vertical resolution but is probably
a good idea as it can somewhat hide remaining deinterlace artifacts and will
probably also make you clip compress a bit better. (0 = no filter, 1 = filter).
I recommend always using this.
***
Known issues and limitations (for both DScaler and Avisynth):
1) Assumes YUV (YUY2 or YV12) Frame Based input. Use an Avisynth function to convert first if
needed. YV12 is supported by the 2.5 Avisynth Alpha version only.
2) Currently still requires the pixel width to be a multiple of 4. This probably
shouldn't be required but I pilfered the code from some of my other filters.
3) So far it has only been tested on SSEMMX machines. (now others)
4) TomsMoComp is for pure video source material. Use IVTC, DeComb, or DScaler's
Auto Pulldown processing for mixed or film source material.
Temporary file locations:
For now, both source, this readme, and DLL should be at:
www.trbarry.com/TomsMoComp.zip
A copy of this Readme_TomsMoComp.txt file should be at:
www.trbarry.com/Readme_TomsMoComp.txt
The source is included in above zip file and also in the TomsMoComp directory
of the DScaler project at SourceForge, www.sourceforge.org (including Avisynth version)
If you have questions email Tom Barry, trbarry@trbarry.com
Cheers,
- Tom
***************
// Change Log
//
// Date Version Developer Changes
//
// ?? Aug 2005 0.0.1.8 Tom Barry Fix bug so TMC60 script works with
// vertical filter for 60 fps output.
// Also add SE=8 support.
// 17 Jun 2003 0.0.1.7 Tom Barry Fix YV12 crash bug when TF=0
// 17 Jun 2003 0.0.1.6 Tom Barry Fix SearchEffortW for YUY2
Change various "2" to BPP for YV12 (bits/pixel
// 21 Jan 2003 0.0.1.5 Tom Barry Same source compiled without Optimize
// 18 Jan 2003 0.0.1.4 Tom Barry Use AvisynthPluginit2
// 12 Nov 2002 0.0.1.3 Tom Barry YV12 support for Avisynth 2.5 Alpha
// 07 Jul 2002 0.0.1.0 Tom Barry Create TomsMoComp Deinterlacer
// (still brand new and experimental!)
近期下载者:
相关文件:
收藏者: