[mythtv-commits] Ticket #10793: CommFlagger improvements

MythTV noreply at mythtv.org
Sat Oct 20 02:50:21 UTC 2012

#10793: CommFlagger improvements
 Reporter:  markspieth             |          Owner:  cpinkham
     Type:  Patch - Feature        |         Status:  new
 Priority:  minor                  |      Milestone:  unknown
Component:  MythTV - Mythcommflag  |        Version:  Unspecified
 Severity:  medium                 |     Resolution:
 Keywords:                         |  Ticket locked:  0

Comment (by bryan@…):

 I decided to put these here since a lot of the work is similar; my
 apologies if they should have gone in their own ticket.  I have been these
 in testing now for about a month with good results.  It's not perfect of
 course, but it works better for me (US Eastcoast mostly HiDef from a
 HDHRP) that the baseline 0.25/0.26 comm flagger.  I've got 4 diffs here,
 and I apologize for the size... I got kind of carried away and I should
 have probably tried to do these tasks more independently.

 The largest one is all of the others combined.  I split it up into 3
 individual pieces for easy reviewing, but I didn't generate them
 separately so I'm not sure they will apply as individuals.  If there's
 problems with that and using the monolithic one isn't a good idea, I can
 split them up and diff them individually against the baseline.

 The "commdetector.diff" file contains my extensive changes to
 BuildAllMethodsCommList().  I did a lot of reorganizing in here to help me
 wrap my head around what was going on.  I'm not sure that any of my
 changes netted all that much positive here, except where related to the
 other two patches.  I think the cleanups make it easier to follow, but
 that could just be me.

 I mostly rewrote the LogoDetector to use "Sobel" edge detection (there's a
 decent wikipedia article about it).  That plus a few other changes to the
 thresholds and border areas makes the logo detector a lot more reliable.
 Because of that, I recommend making changes to BuildAllMethodsCommList()
 to require less frames containing the logo before giving a score boost.

 I rewrote Histogram similarity detection to allow slight changes in
 overall brightness by averaging over a range of intensities.  This seems
 to work well.  Bundled together, I added a bit of code to the scene change
 detector to avoid rapid scene changes over a very short (< 1s) period of
 time (reducing them to 1).  I also added a bit of a "memory" of the
 previous scene, so that when the scene switches to something, and then
 switches back to the previous scene, neither is counted as a scene change.
 This is common in programming when there's dialog going on.  These changes
 resulted in a much lower (about half as much) scene changes being
 reported, but nearly no legitimate changes are missed (except those
 purposely not reported because they appear to be part of programming).
 This necessitates changes to BuildAllMethodsCommList() to account for the
 lower scene change rate.  I ended up going with about half of what all of
 the old schene change rate requirements were.

 I hope these are helpful.  I'm happy to answer questions on them or try to
 clean them up a bit if needed.  I can also change them to be against THE
 Nextgen detectors rather than Classic if that works better.

Ticket URL: <http://code.mythtv.org/trac/ticket/10793#comment:7>
MythTV <http://code.mythtv.org/trac>
MythTV Media Center

More information about the mythtv-commits mailing list