View Single Post
Old 4th January 2015, 04:24   #1  |  Link
StainlessS
HeartlessS Usurer
 
StainlessS's Avatar
 
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
DBSC v0.051, Scene Change Detection - Work-in-Progress

Post #1 of Many.

Updated: v0.051
http://www.mediafire.com/download/c9...BSC-v0.051.zip


Basic Info
Code:
/*
  DBSC.avs v0.04, by StainlessS @ Doom9    
    
  A Scene Change Detection Tool set/kit/box. (Work In Progress - guinea pigs required)
    
  Currently Implemented: (to some degree):-
    
    Scenechange detection:-
      DBSC_CreateInfo(), creates fast scan RT_Stats INFO DBase.
        For each frame stores RT_YPlaneMin, RT_YPlaneMax, RT_YPlaneMinMaxDifference, RT_YPlaneMedian, RT_AverageLuma, RT_YPlaneStdev
         and RT_FrameDifference(n<->n+1). Could also be useful for other purposes.
          
      DBSC_Scan(), Using INFO DBase, creates a second SCAN DBase containing Scene Change detection data.
        Single Flash frame tolerant.
        Fade-To-Black Scene changes detected.

      DBSC_Override(), Using SCAN DBase and Overrides.txt, allows user to set additional Scene Change or remove erroneous ones
        from the SCAN DBase. Additional overrides set/unset without re-creating ScanDB.

    Scenechange Utility:-
      DBSC_WriteFiles(), Using SCAN DBase, Writes Start, End, Mid, And/Or Range Files for Scene Changes.
        Also writes a ClipClop command file for Start (ClipClop clip 1) and End (clip 2) frames, used by DBSC_Select().
    
      DBSC_SubsClip(), Returns clip optionally subtitled (metrics And/Or START OF SCENE / END OF SCENE / SINGLE FRAME SCENE subtitles)
            
      DBSC_StackSceneChanges(), Returns clip, End frame of a scene together with Stacked Start frame of following scene.
        (Check detections).

      DBSC_Select(), Similar-ish to SCSelect.
      
    Dynamically Changing Borders:-
      DBSC_DynaCrop(), Detect Dyanamically changing borders using ScanDB and create a SpliceDB for DBSC_DynaSplice().       

      DBSC_DynaSplice(), Trim, Crop, Resize and Splice, dynamically changing borders. Option to call user defined function
        on each trim, after it has been cropped and resized, and before splicing back together again.
      
      DBSC_Levels(), Function to DEMO a User Function as called by DBSC_DynaSplice().
                  
  TODO:-
    Improve detection.
    Blended Scene Change Detection (Well I can dream cant I, anybody any ideas ? )
    + whatver else I (or you) can think of. 
    
  Required:-
      Frame Accurate seekable source clip.
      RT_Stats, http://forum.doom9.org/showthread.php?t=165479
      GSCript,  http://forum.doom9.org/showthread.php?t=147846 
      Grunt,    http://forum.doom9.org/showthread.php?t=139337
      FrameSel, http://forum.doom9.org/showthread.php?t=167971
      ClipClop, http://forum.doom9.org/showthread.php?t=162266
      RoboCrop  http://forum.doom9.org/showthread.php?t=168053
      DebugView http://technet.microsoft.com/en-gb/sysinternals/bb896647.aspx (viewing Debug Output in real time)
*/
EDIT: Spell check and auto link insertion broken on site again (both worked fine a few days ago)
__________________
I sometimes post sober.
StainlessS@MediaFire ::: AND/OR ::: StainlessS@SendSpace

"Some infinities are bigger than other infinities", but how many of them are infinitely bigger ???

Last edited by StainlessS; 14th February 2015 at 12:05. Reason: Update
StainlessS is offline   Reply With Quote