ExactDedup

From Avisynth wiki
(Difference between revisions)
Jump to: navigation, search
m (Description: link)
m
 
(8 intermediate revisions by one user not shown)
Line 1: Line 1:
{{FilterCat4|External_filters|Plugins|Adjustment_filters|Duplicate_Frame_Detectors}}
+
{{FilterCat6|External_filters|Plugins|Plugins_x64|Adjustment_filters|Duplicate_Frame_Detectors|Deep_color_tools}}
 
{{Filter3
 
{{Filter3
| Steve Melenchuk, Arick Chan
+
|1=Steve Melenchuk, Arick Chan, StainlessS
| v0.03
+
|2=v0.0.7Beta
| [http://www.mediafire.com/download/9x2ax1rb5un02d5/ExactDedup+Version+0.03.zip ExactDedup+Version+0.03.zip]
+
|3=[https://web.archive.org/web/20210606011115if_/https://files.videohelp.com/u/223002/ExactDedup_25_26_x86_x64_dll_v0-07Beta_20210604.zip ExactDedup_25_26_x86_x64_dll_v0-07Beta_20210604.zip]
| Duplicate frame detectors
+
|4=Duplicate frame detectors
| [http://www.gnu.org/licenses/gpl-3.0.html GPLv3]
+
|5=[http://www.gnu.org/licenses/gpl-3.0.html GPLv3]
|6=[http://tasvideos.org/forum/viewtopic.php?t=12065 TASVideos Thread]}}
+
|6=[http://forum.doom9.org/showthread.php?t=176111 Doom9 Thread - update], [http://tasvideos.org/forum/viewtopic.php?t=12065 TASVideos Thread]}}
 
<br>
 
<br>
 
== Description ==
 
== Description ==
Line 13: Line 13:
 
Due to the particulars of the AviSynth API, ExactDedup requires two passes to function efficiently. It could theoretically be designed to run with one pass, but this would result in a very long startup delay while the plugin precomputes all of the duplicate frame information and timecodes.
 
Due to the particulars of the AviSynth API, ExactDedup requires two passes to function efficiently. It could theoretically be designed to run with one pass, but this would result in a very long startup delay while the plugin precomputes all of the duplicate frame information and timecodes.
  
ExactDedup theoretically supports any input colorspace, but has been tested only with [[RGB]] colorspaces.
 
 
 
'''ExactDedup 0.04 (2017-02-16) (StainlessS)''' | [http://forum.doom9.net/showthread.php?p=1797482#post1797482 Discussion] | [http://www.mediafire.com/file/m27cv498bg363zz/ExactDeDup-0.04_20170216.zip Download]
 
* Fixed number of bugs
 
* AviSynth v2.6 plugin.
 
* Fixed a number of bugs.
 
* Added Support for v2.6 [[Planar]] (also added U & V chroma scan for YV12, only scanned luma).
 
* Added Show Arg.
 
* Write times and dupinfo files at end of scan,so you don't have to edit script in text editor before second pass.
 
 
<br>
 
<br>
  
 
== Requirements ==
 
== Requirements ==
*AviSynth 2.5.8 or [http://sourceforge.net/projects/avisynth2/ greater]
+
* [x86]: [[AviSynth+]] or [https://sourceforge.net/projects/avisynth2/ AviSynth 2.6]
*Supported color formats: [[RGB32]], [[RGB24]], [[YV12]]
+
* [x64]: [[AviSynth+]]
 +
*Supported color formats: [[RGB24]], [[RGB32]], [[Y8]], [[YV12]], [[YV16]], [[YV24]]
 +
**AviSynth+: High bit-depth colorspaces are supported.
 
<br>
 
<br>
* [http://www.microsoft.com/en-us/download/details.aspx?id=26999 Microsoft Visual C++ 2010 Redistributable Package (x86 / x64)]
+
* [https://www.microsoft.com/en-us/download/details.aspx?id=11895 Microsoft Visual C++ 2008 Redistributable Package (x86 / x64)] <includeonly>[[VC_9.0]]</includeonly>
 
:<span style="color:red">***</span> <tt>vcredist_x86.exe</tt> is required for <tt>ExactDedup-x86</tt>
 
:<span style="color:red">***</span> <tt>vcredist_x86.exe</tt> is required for <tt>ExactDedup-x86</tt>
 
:<span style="color:red">***</span> <tt>vcredist_x64.exe</tt> is required for <tt>ExactDedup-x64</tt>
 
:<span style="color:red">***</span> <tt>vcredist_x64.exe</tt> is required for <tt>ExactDedup-x64</tt>
 
<br>
 
<br>
 +
 
== [[Script variables|Syntax and Parameters]] ==
 
== [[Script variables|Syntax and Parameters]] ==
:{{Template:FuncDef|ExactDedup (clip, bool "firstpass", string "dupinfo", string "times", int "maxdupcount", bool "_keeplastframe")}}
+
:{{Template:FuncDef|ExactDedup (clip, bool "firstpass", string "dupinfo", string "times", int "maxdupcount", bool "_keeplastframe", bool "show")}}
 
<br>
 
<br>
 
::{{Par2| |clip| }}
 
::{{Par2| |clip| }}
Line 54: Line 47:
 
::{{Par2|_keeplastframe|bool|false}}
 
::{{Par2|_keeplastframe|bool|false}}
 
:::Keeps the last frame of a run of duplicates. If a run of duplicates is larger than maxdupcount, this keeps only the last frame of the entire run, not of the individual maxdupcount-size blocks.
 
:::Keeps the last frame of a run of duplicates. If a run of duplicates is larger than maxdupcount, this keeps only the last frame of the entire run, not of the individual maxdupcount-size blocks.
 +
<br>
 +
::{{Par2|show|bool|false}}
 +
:::Default false. If True, shows a little info on second pass..
 
<br>
 
<br>
  
Line 59: Line 55:
 
ExactDedup with default settings:
 
ExactDedup with default settings:
 
  [[AviSource]]("Blah.avi")
 
  [[AviSource]]("Blah.avi")
  ExactDedup(firstpass=true, dupinfo="dupinfo.txt", times="times.txt", maxdupcount=20, _keeplastframe=false)
+
  ExactDedup(firstpass=true, dupinfo="dupinfo.txt", times="times.txt", maxdupcount=20, _keeplastframe=false, show=false)
 
<br>
 
<br>
 
== Changelog ==
 
== Changelog ==
 
  Version      Date            Changes<br>
 
  Version      Date            Changes<br>
 +
v0.0.7      2021-06-04      - Mod by StainlessS
 +
                              - Switched to DDigit v2.0 Metrics renderer for Show=true.
 +
                              - Added HBD for Avs+ [all colorspaces, Avs+ frame Properties NOT supported nor passed to next filter]<br>
 +
v0.0.6      2019-02-15      - Mod by StainlessS - [http://forum.doom9.org/showthread.php?t=176111 see discussion]
 +
                              - Fixed M$ broken relative pathnames.<br>
 +
v0.0.5      2017-05-17      - Mod by StainlessS - [http://forum.doom9.net/showthread.php?p=1820756#post1820756 see discussion]
 +
                              - Using AviSynth+ Header.
 +
                              - Convert to VS2008, x64 compile.
 +
                              - AviSynth v2.6 and AviSynth+ x32/x64 only.<br>
 +
v0.0.4      2017-02-16      - Mod by StainlessS - [http://forum.doom9.net/showthread.php?p=1797482#post1797482 see discussion]
 +
                              - Fixed number of bugs.
 +
                              - AviSynth v2.6 plugin.
 +
                              - Added Support for v2.6 [[Planar]] (also added U & V chroma scan for YV12, only scanned luma).
 +
                              - Added Show Arg.
 +
                              - Write times and dupinfo files at end of scan,so you don't have to edit script in text
 +
                                editor before second pass.<br>
 
  v0.0.3      2011/12/18      - primarily incorporates changes from Aktan to fix some incompatibilities with AviSynth's Crop()  
 
  v0.0.3      2011/12/18      - primarily incorporates changes from Aktan to fix some incompatibilities with AviSynth's Crop()  
 
                                 function (and likely other AviSynth functions) and some VirtualDub usage patterns.  
 
                                 function (and likely other AviSynth functions) and some VirtualDub usage patterns.  
Line 69: Line 81:
 
                                 and also outputs timecodes to nanosecond precision (as opposed to the microsecond precision of 0.01).<br>
 
                                 and also outputs timecodes to nanosecond precision (as opposed to the microsecond precision of 0.01).<br>
 
  v0.0.1      2011/11/16      - initial release
 
  v0.0.1      2011/11/16      - initial release
 +
<br>
 +
== Archived Downloads ==
 +
{| class="wikitable" border="1"; width="600px"
 +
|-
 +
!!width="100px"| Version
 +
!!width="150px"| Download
 +
!!width="150px"| Mirror
 +
|-
 +
!v0.0.7
 +
|[https://www.mediafire.com/file/xoqhbv3sw9d67aa/ExactDedup_25%252626_x86_x64_dll_v0-07Beta_20210604.zip ExactDedup_25&26_x86_x64_dll_v0-07Beta_20210604.zip]
 +
|[https://web.archive.org/web/20210606011115if_/https://files.videohelp.com/u/223002/ExactDedup_25_26_x86_x64_dll_v0-07Beta_20210604.zip ExactDedup_25_26_x86_x64_dll_v0-07Beta_20210604.zip]
 +
|-
 +
!v0.0.6
 +
|[http://www.mediafire.com/folder/hb26mthbjz7z6/StainlessS ExactDedup_25&26_x86_x64_dll_v0-06_20190215.zip]
 +
|[https://archive.org/download/exactdedup/ExactDedup_25%2626_x86_x64_dll_v0-06_20190215.zip ExactDedup_25&26_x86_x64_dll_v0-06_20190215.zip]
 +
|}
 
<br>
 
<br>
 
== External Links ==
 
== External Links ==

Latest revision as of 03:17, 6 June 2021

Abstract
Author Steve Melenchuk, Arick Chan, StainlessS
Version v0.0.7Beta
Download ExactDedup_25_26_x86_x64_dll_v0-07Beta_20210604.zip
Category Duplicate frame detectors
License GPLv3
Discussion Doom9 Thread - update, TASVideos Thread


Contents

[edit] Description

ExactDedup is a filter intended to remove frames that are exact duplicates of each other, leaving only the first and (optionally) last frames of a run intact, and generates a Matroska v2 timecodes file with timing information for the ensuing stream.

Due to the particulars of the AviSynth API, ExactDedup requires two passes to function efficiently. It could theoretically be designed to run with one pass, but this would result in a very long startup delay while the plugin precomputes all of the duplicate frame information and timecodes.


[edit] Requirements


*** vcredist_x86.exe is required for ExactDedup-x86
*** vcredist_x64.exe is required for ExactDedup-x64


[edit] Syntax and Parameters

ExactDedup (clip, bool "firstpass", string "dupinfo", string "times", int "maxdupcount", bool "_keeplastframe", bool "show")


clip   =
Input clip.


bool  firstpass = true
Controls which pass the plugin is running.
The first pass generates a mapping of output frames to input frames (stored in the file specified by dupinfo) and Matroska v2 timecodes (stored in the file specified by times); seeking during this pass is impossible.


string  dupinfo = "dupinfo.txt"
The name of a temporary file generated by the first pass and read by the second pass; each line corresponds to a frame in the output video stream, and specifies the frame number of the frame in the input stream that will be used as that output frame.


string  times = "times.txt"
The name of the Matroska v2 timecodes file that will be output by the first pass.


int  maxdupcount = 20
The number of maximum consecutive duplicate frames corresponding to a single frame of the output; i.e. a maximum of (maxdupcount - 1) frames will be removed from a run of duplicates before another frame is kept.


bool  _keeplastframe = false
Keeps the last frame of a run of duplicates. If a run of duplicates is larger than maxdupcount, this keeps only the last frame of the entire run, not of the individual maxdupcount-size blocks.


bool  show = false
Default false. If True, shows a little info on second pass..


[edit] Examples

ExactDedup with default settings:

AviSource("Blah.avi")
ExactDedup(firstpass=true, dupinfo="dupinfo.txt", times="times.txt", maxdupcount=20, _keeplastframe=false, show=false)


[edit] Changelog

Version      Date            Changes
v0.0.7 2021-06-04 - Mod by StainlessS - Switched to DDigit v2.0 Metrics renderer for Show=true. - Added HBD for Avs+ [all colorspaces, Avs+ frame Properties NOT supported nor passed to next filter]
v0.0.6 2019-02-15 - Mod by StainlessS - see discussion - Fixed M$ broken relative pathnames.
v0.0.5 2017-05-17 - Mod by StainlessS - see discussion - Using AviSynth+ Header. - Convert to VS2008, x64 compile. - AviSynth v2.6 and AviSynth+ x32/x64 only.
v0.0.4 2017-02-16 - Mod by StainlessS - see discussion - Fixed number of bugs. - AviSynth v2.6 plugin. - Added Support for v2.6 Planar (also added U & V chroma scan for YV12, only scanned luma). - Added Show Arg. - Write times and dupinfo files at end of scan,so you don't have to edit script in text editor before second pass.
v0.0.3 2011/12/18 - primarily incorporates changes from Aktan to fix some incompatibilities with AviSynth's Crop() function (and likely other AviSynth functions) and some VirtualDub usage patterns. - 64-bit binary courtesy of Velitha.
v0.0.2 2011/11/18 - fixes a bug resulting in incorrect timecodes being output for some framerates (such as NTSC NES), and also outputs timecodes to nanosecond precision (as opposed to the microsecond precision of 0.01).
v0.0.1 2011/11/16 - initial release


[edit] Archived Downloads

Version Download Mirror
v0.0.7 ExactDedup_25&26_x86_x64_dll_v0-07Beta_20210604.zip ExactDedup_25_26_x86_x64_dll_v0-07Beta_20210604.zip
v0.0.6 ExactDedup_25&26_x86_x64_dll_v0-06_20190215.zip ExactDedup_25&26_x86_x64_dll_v0-06_20190215.zip


[edit] External Links




Back to External Filters

Personal tools