[mythtv-commits] Ticket #10793: CommFlagger improvements
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 Media Center
More information about the mythtv-commits