Show detection with Rating Logo

To discuss the tuning of comskip and for posting your ini files
NiteShdw
Posts: 11
Joined: Sun Oct 29, 2006 3:39 am

Show detection with Rating Logo

Post by NiteShdw »

In the U.S., all TV shows have a rating logo in the upper-left corner for the first few seconds after the show resumes from commercial break.

Is it possible to configure Comskip to look for those TV rating logos to detect when to end a commercial segment? All of the shows I've recorded ALL have that logo. It seems to me that detecting that rating logo could make detecting show starts much more accurate.

Ideas?
erik
Site Admin
Posts: 3368
Joined: Sun Aug 21, 2005 3:49 pm

Post by erik »

If it would be possible to do this then it would be very nice.
Seems like the comskip in mythtv can do this alread.
Now for two simple questions

Do the rating logo's always appear at the same location?
Do the rating logo's always look exactly the same?

Can someone upload some small recordings of a commercial-> show transition the shows these rating logo's at the start of the show?
NiteShdw
Posts: 11
Joined: Sun Oct 29, 2006 3:39 am

Post by NiteShdw »

The logos do always apear in the same place. The logos are either a white box with black text or a black box with white text. Within the same recording they are always the same. I'll upload some short clicks from several different stations when I get a chance.
dejunai
Posts: 3
Joined: Sun Nov 12, 2006 11:47 pm

I'd like to see this too...

Post by dejunai »

I'd like to see this too...

The common logos are here : LINK
More detail ala Wiki is available HERE

The logos ~normally~ appear White Text on Black Field,
Or Black Text on White Field...

However they can be in high contrast colors... other than black and white.

The logos are customized per episode...
depending on the type of material presented...
and it's content...
The customizations are small letters under the logos pictured on the above page.
The letters are withing the field, and are always the same font, and color as the logos.
The Linked page describes the possible letters for each logo.

~Normally~ the logo is constant thru out the episode.
However some hour long shows may alter the logo on the half hour break.
And two hour TV movies will also occasionally change the logo over the
course of the show.

A totally fictitious example: Law & Order ( half cop drama / half court drama )
May have the logo TV-PG + VL ( for violence and language ) in the first half hour.
And the as the court room drama begins, start with the logo TV-PG + L ( language only ).

However the main TV-PG rating logo will not be altered.
The colors of the logo, will not change thru out the episode.
The position of the logo will not change thru out the episode.
The logo will ~normally~ appear for a few seconds -after- the fade-in.
It ~normally~ does not appear in the first few real frames.

The logo is required by law in America to appear at the beginning of the show.
It is not required after each commercial break, but has become customary.
It is required to be prominently displayed in the upper left hand corner.

There are a number of show types that are exempt, such as live broadcast news, but these are rare.

Please let me know if there is more I can do.
I'd very much like to see this implemented.
-DEJ


[/url]
NiteShdw
Posts: 11
Joined: Sun Oct 29, 2006 3:39 am

Post by NiteShdw »

I submitted a few clips with some TV rating logos. We'll see how it goes.
dejunai
Posts: 3
Joined: Sun Nov 12, 2006 11:47 pm

Post by dejunai »

Much ThX, NiteShdw...

I am very eager to see if this will work.
As well, I am very VERY eager to help.

I have been far more attuned to the comings and goings of the ratings logo,
as of late, in hopes I can help more.

Paying attention is always the first step. :)

I live in the USA ( and I didn't vote for the guy in charge, doH ).
And I'd like to see this implemented.

As such I have been paying close attention to the ratings logos for USA,
Network/Cable transmissions.

I have also read up, on the legal requirements of the logos.

Clearly (legally), the logo is only required at the start of the broadcast,
and is required to be repeated each hour...
( for programs longer than one hour ).

From my recent research, it would seem that roughly 50% of NEW
( first time on originating networks [NBC,ABC,CBS] )
broadcasts use the logo after commercial breaks, and yet many do not.

Other networks, that only Repeat the broadcast ( TNT, USA, BRAVO )
seem to always use the logo after a commercial break. However, these
networks will often change "exact location" and "size"
( ie much smaller logos ) for commercial breaks, as compared to "on the
hour" logos. It appears to be simply a scale issue, tho I can't say for sure.

I will continue to post what I observe/learn, in the hope that it helps.

I, myself, am a programmer... Tho I can't begin to comprehend the logic
behind "video frame analysis".. I hope, at the very least, I have some
degree of logic that might help.

And I am very eager to help.
-DEJ
erik
Site Admin
Posts: 3368
Joined: Sun Aug 21, 2005 3:49 pm

Post by erik »

A initial analysis of the difference in the logo's leads to the assumtion that quite an amount of processing power will be required to do the recognition.
That will lead to a noticable reduction in speed of comskip.

On the other hand I know that the black frame detection is most reliable in the USA. So know I need to understand the problems with commercial recognition that are going to be solved by using rating logo's

Could someone send me a .csv file with a corrected .txt file of a recording where comskip does not recorgnize the commercials such that adding rating logo detection could solve the problem?

Sorry to be persistent but I am a lazy guy and adding the rating logo detection is a LOT of work and maybe there is a simpler solution ;-)
dejunai
Posts: 3
Joined: Sun Nov 12, 2006 11:47 pm

Post by dejunai »

Erik,
I am happy to do all that I can...

I respect that you are a "lazy guy", ( seriously )
I hope to assist in a manner that makes the task easier...

How can I make it easier?

I assume that, If I can provide a video/episode, that fails with
the default INI, but has the ratings logos per commercial break,
and I provide an accurate cut-list; that this would be helpful.

Of course I'll use the appropriate/provided tools and file formats.

I am very very new to ComSkip... and I am 110% grateful.
I am becoming quiet intimate with the INI,
and I recognize the genius that built it.

I endeavor to contribute to a reasonable solution for USA rating logos.
I also hope my eagerness doesn't seem demanding.

I endeavor to do what I can when I can,
-DEJ
erik
Site Admin
Posts: 3368
Joined: Sun Aug 21, 2005 3:49 pm

Post by erik »

NiteShdw, thanks for uploading the clips.
They do clearly show the rating logo's
But they also show a very good recognizable black frame sequence separating the commercials and the show.
The default comskip settings where sufficient to find them.

Does comskip have any problems in determining where the commercials are in any of the shows you record?
hbien
Posts: 2
Joined: Tue Feb 20, 2007 3:26 am

Post by hbien »

Oopps, I just posted a similar idea on Feedback - you can ignore it.
From what I've found, the ratings is now almost always shown after every commercial break (at least on cable, since the major cable organization have agreed to do this - see my feedback post for link to news release). While I understand the reluctance to put in more complex processing for little gain, I, too, feel that rating logo detection is a much more robust method of detecting show starts (unfortunately, doesn't help much on show ends). That's because you are guaranteed a show segment if you detect the rating. Since the rating is high-contrast, it should be readily identified, especially since they all have identical "TV" letters (the actual rating, elements, etc. may vary, but they all have large, prominent TV). I should think the standard "logo" detection algorithm should work (and would work really well as you already have a predefined mask, albeit scaling would be the only issue) as well a known location for the logo (upper left corner). It shouldn't be that hard to identify a large black block (solid edges) that will give you the scaling factor to search for the letters "TV" - might not even need that. A solid box of the appropriate aspect ratio in the upper left is probably all that you will need. I highly doubt any programming - show or commercial, will have a solid box of that aspect ratio lasting >2secs and never moves.
I believe such a detection algorithm will make detection of show start segments nearly fool-proof. As for show stops, well, for the interactive user, we don't really care as much if the program mis-identifies a stop. Since the user will simply ask to seek forward to the next rating logo, even if the ad were mis-identified, seeking to the next logo appearance will cut out all commercials in-between - just have to always permit seeking. In fact, one can achieve very simply skipping by tagging just these rating logo appearances and indexing them. This won't work for programs like comclean, of course, but for the interactive viewer, this is not a problem.

FWIW, the logo method works really well for me (US SD CATV), but I've noticed now that certain stations (perhaps in response to the success of PVRs and Comskip?) are now showing the station logo in previews/trailers of programs to come - and that these are usually in the middle of a commercial break. While setting minimum/maximum timings in the comskip.ini file usually (but not always) strips these out, I have a feeling that the TV stations will only get more aggressive to try to prevent programs like Comskip to work properly. The advantage of the ratings block is that its mandated by law, and that there is a widespread adoption/agreement among cable providers giving it a consistency unrivaled anywhere else.
erik
Site Admin
Posts: 3368
Joined: Sun Aug 21, 2005 3:49 pm

Post by erik »

If you guy's could mail me some examples where comskip makes the wrong decisions as described in "how to ask for help"
viewtopic.php?t=34
I will may become more motivated to look into the rating logo recognition.
erik
Site Admin
Posts: 3368
Joined: Sun Aug 21, 2005 3:49 pm

Post by erik »

Instead of finding the Ratings logos I implemented a new cutpoint detection method.
Cutscenes
This enables you to record upto 8 frames that can be recorgnized by comskip as cutpoints.
This is similar to recognizing a ratings logo but uses the whole frame instead.
This helps a lot for reducing the CPU load when searching multiple frames.
The readme.txt in build 73 contains a howto description.
Possible additional future function could be that certain frames can be tagged as "show start" frames and other as "show end" frames.
Send me your feedback if this is usefull.
kerryklarson
Posts: 116
Joined: Sun May 14, 2006 9:15 am

Post by kerryklarson »

I would like to endorse this idea of using the ratings logo to aid in detection. I am getting some erroneous cut points because the network logo is absent. The ratings logo ALWAYS comes up right after each commercial break. Awhile later, the network logo usually appears. Occasionally, the network logo doesn't appear at all. When the network logo doesn't appear or doesn't last long enough, the cut point is wrong. I have uploaded an example at "ftp://athome.kaashoek.com/Kerry/b86/Ugly Betty-(Icing on the Cake)-2007-03-15-0-D.zip".

Code: Select all

34:--   28  28   0 128363 128556   3.45    3.220  0.01   2 1.37          A  C     a    175- 0.00  556+ 35-  0.000    17
Cut is in the middle of program material. Ratings logo is present for most of this block, but network logo doesn't appear.

Frame 141454 is all hosed up. ComskipGUI and VRD are 'looking' at completely different segments. ComskipGUI appears to have detected a logo, there is a visible logo, but the log file doesn't show it as detected. See here:
Image


191674 is another cut point in the middle of a program segment. There is a ratings logo, but no network logo. I haven't paid enough attention to know for certain, but the network logo doesn't generally appear until the ratings logo has disappeared.

I doubt that I understand the Cutscenes concept. It does appear to require manual intervention. How would "whole frame" recognition work when only a small portion of the frame has the ratings logo and the rest of the frame will be completely different for every segment?

Why is ratings logo detection any more CPU intensive than network logo detection?
erik
Site Admin
Posts: 3368
Joined: Sun Aug 21, 2005 3:49 pm

Post by erik »

Lets look at the block list

Code: Select all

  #     sbf  bs  be     fs     fe    sc      len   scr cmb   ar                   cut bri  logo   vol  sil corr stdev        cc
  0:++   49   0  49      1   2172   1.00   36.220  0.03   0 1.80                     b  221= 0.00  632! 56!  0.000    22           
  1:++  532  49 483   2173  46574   0.00  740.757  0.03   0 1.80           EL        b  231= 0.68  444- 33=  0.000    23           
  2:--  483 483   0  46575  48719   2.25   35.769  0.02   2 1.80             C     a     87! 0.00  839= 77=  0.000     8           
  3:--    5   1   4  48720  49806  10.13   18.118  0.02   4 1.37          A  C     a b  231! 0.00  857= 90=  0.000    23           
  4:--    5   5   0  49807  51445   6.75   27.327  0.06   5 1.80             C     a    579= 0.00  860= 70=  0.000    57           
  5:--    3   1   2  51446  51611   3.00    2.753  0.19   3 1.37             C       b 1783= 0.00 1015= 87=  0.000   178           
  6:--    3   2   1  51612  53412  10.50   30.030  0.03   2 1.37          A  C S     b  294- 0.00  822= 83=  0.000    29           
  7:--   49   1  48  53413  53759   2.63    5.772  0.08   1 1.37          A  CN    a b  472= 0.00  802= 81=  0.000    47           
  8:++   96  48  48  53760  73683   0.00  332.382  0.02   0 1.80           EL        b  211= 0.90  445- 35-  0.000    21           
  9:--   54  48   6  73684  73961   2.99    4.621  0.17   5 1.80             CN      b  348+ 0.00  535+ 52=  0.000    34           
 10:--   15   7   8  73962  74768   2.99   13.447  0.20   5 1.80             C       b 1085= 0.00  608+ 60=  0.000   108           
 11:--   11   8   3  74769  74948   6.72    2.986  0.29   7 1.80             C       b  622= 0.00  568+ 64=  0.000    62           
 12:--    8   4   4  74949  75395   3.78    7.441  0.15   5 1.80             C       b  545= 0.00  714= 79=  0.000    54           
 13:--    8   5   3  75396  75526   1.68    2.169  0.03   3 1.80             C     a b  190! 0.00  444- 36-  0.000    19           
 14:--    5   3   2  75527  77326   7.00   30.013  0.10   1 1.37          A  C S   a b  736= 0.00  718= 61=  0.000    73           
 15:--    5   2   3  77327  79131   3.00   30.097  0.03   0 1.80               S   a b  410= 0.00  686= 52=  0.000    41           
 16:--    6   3   3  79132  80032   6.00   15.015  0.03   0 1.37          A    S   a b  347+ 0.00  727= 78=  0.000    34           
 17:--    5   4   1  80033  80935   3.00   15.048  0.06   0 1.80               S   a b  758= 0.00  518- 44+  0.000    75           
 18:--   19   1  18  80936  81854   6.00   15.315  0.17   0 1.37          A    S     b 1495= 0.00  732= 78=  0.000   149           
 19:--   20  18   2  81855  83677   6.00   30.397  0.05   0 1.37          A    S     b  480= 0.00 1126= 89=  0.000    48           
 20:--    6   2   4  83678  85476   6.00   29.997  0.02   0 1.37          A    S     b  256- 0.00 1069= 82=  0.000    25           
 21:++   22   5  17  85477  85748   1.00    4.521  0.61   0 1.37                   a b 1433! 0.00  937! 65!  0.000   143           
 22:++   22  18  39  85749 113013   0.00  454.855  0.02   0 1.80           EL        b  117= 0.96  441- 32=  0.000    11           
 23:--   40  40   0 113014 116633   3.00   60.377  0.04   0 1.80               S   a    484= 0.00  685= 68=  0.000    48           
 24:--    4   1   3 116634 118438   6.00   30.097  0.04   0 1.37          A    S     b  425= 0.00  811= 79=  0.000    42           
 25:--   29   4  25 118439 119310   3.00   14.531  0.03   1 1.37          A  C       b  389= 0.00  564+ 420  0.000    38           
 26:--   27  25   2 119311 121133   9.00   30.397  0.08   1 1.37          A  C S     b  684= 0.00  696= 68=  0.000    68           
 27:--    3   2   1 121134 122936   6.00   30.063  0.06   0 1.37          A    S     b  565= 0.00  688= 67=  0.000    56           
 28:--    7   1   6 122937 123837   6.00   15.015  0.09   0 1.37          A    S     b  357+ 0.00  614+ 61=  0.000    35           
 29:--    7   6   1 123838 125638   6.00   30.030  0.04   0 1.37          A    S     b  314+ 0.00  759= 70=  0.000    31           
 30:--    1   1   0 125639 127702   3.13   34.418  0.09   2 1.37          A  C     a    980= 0.00  897= 80=  0.000    98           
 31:--    1   1   0 127703 127853   2.78    2.503  0.59   4 1.62             C     a   2801= 0.00  918= 97=  0.000   280           
 32:--    1   1   0 127854 128240   5.56    6.440  0.05   4 1.73          A  C     a    421= 0.00  776= 80=  0.000    42           
 33:--   28   1  27 128241 128362   4.79    2.019  0.35   6 1.37             C       b 2016= 0.00  591+ 61=  0.000   201           
 34:-+   28  28   0 128363 128556   1.72    3.220  0.01   2 1.37             C     a    175= 0.00  556+ 35-  0.000    17           
 35:++    1   1   0 128557 141453   0.00  215.148  0.02   0 1.80           EL      a    165= 0.95  394= 28=  0.000    16           
 36:++    1   1   0 141454 141535   1.00    1.351  0.12   0 1.62                   a    243= 0.00  472- 41-  0.000    24           
 37:-+   36   1  35 141536 141930   2.25    6.573  0.04   2 1.80             C       b  146= 0.00  449- 34-  0.000    14           
 38:--   52  35  17 141931 142197   6.75    4.438  0.22   5 1.80             CN      b 1782= 0.00  724= 77=  0.000   178           
 39:--   17  17   0 142198 143767   3.00   26.176  0.18   3 1.80             C     a   1552= 0.00  757= 88=  0.000   155           
 40:--    2   1   1 143768 145565   8.00   29.980  0.12   1 1.37          A  C S     b  927= 0.00  636= 60=  0.000    92           
 41:--    4   1   3 145566 149167   6.00   60.077  0.03   0 1.37          A    S   a b  327+ 0.00  401! 31!  0.000    32           
 42:--    5   3   2 149168 150971   3.00   30.080  0.16   0 1.80               S     b 1111= 0.00  625+ 59=  0.000   111           
 43:--   27   3  24 150972 152794   3.00   30.397  0.14   0 1.80               S     b  800= 0.00  606+ 63=  0.000    80           
 44:--   26  25   1 152795 154613   3.00   30.330  0.07   0 1.80               S     b  297- 0.00 1814= 97=  0.000    29           
 45:--    4   2   2 154614 156414   3.00   30.030  0.18   0 1.80               S     b  627= 0.00 1695= 97=  0.000    62           
 46:--   36   3  33 156415 158267   3.00   30.898  0.03   0 1.80               S     b  310+ 0.00  828= 60=  0.000    31           
 47:++   81  33  48 158268 181800   0.00  392.593  0.02   0 1.80           EL        b  111= 0.94  427- 31=  0.000    11           
 48:--   49  49   0 181801 182087   1.72    4.771  0.32   2 1.80             CN    a   1993= 0.00  635= 68=  0.000   199           
 49:--    6   1   5 182088 183937   3.45   30.848  0.03   2 1.37          A  C       b  361+ 0.00  561+ 53=  0.000    36           
 50:--    6   5   1 183938 186641   6.00   45.095  0.09   0 1.37          A    S   a b 1019= 0.00  585+ 59=  0.000   101           
 51:--    4   2   2 186642 187545   3.00   15.065  0.02   0 1.80               S   a b  253- 0.00  414! 32!  0.000    25           
 52:--    7   3   4 187546 189350   8.00   30.097  0.08   1 1.37          A  C S     b  632= 0.00  669= 64=  0.000    63           
 53:--    9   5   4 189351 190802   6.00   24.208  0.12   3 1.37          A  C       b  692= 0.00  675= 67=  0.000    69           
 54:--   16   4  12 190803 191162  24.00    5.989  0.24   7 1.37          A  C       b 1083= 0.00  661= 75=  0.000   108           
 55:--   46  13  33 191163 191445   4.00    4.705  0.20   4 1.37             CN      b 1194= 0.00 1134= 68=  0.000   119           
 56:-+   33  33   0 191446 191674   1.78    3.804  0.17   2 1.37             C     a    209= 0.00  172=  0=  0.000    20           
 57:-+   41   1  40 191675 212984   0.00  355.506  0.03   0 1.80           EL        b  177= 0.94  321= 21=  0.000    17           
 58:--   42  41   1 212985 213383   1.00    6.640  0.28   0 1.80                     b  989= 0.00  628+ 60=  0.000    98           
 59:--   69   2  67 213384 215317   1.00   32.249  0.14   0 1.80                   a b  990= 0.00  617+ 63=  0.000    99           
Frame 141454 is at the end of block 35. The reason for a cut is indicated by a lower case letter under the heading 'cut'. In this case its a 'a' indicating the aspect ratio changed. aspect ratio changes again at frame 141535. And then at frame 141930 there is the black frame cut indicated by letter 'b'.
The logo in the show disappears around 141837 but because shrink_logo is set to 5 comskip let the logo disappear at frame 141420.
There two simple ways to solve this particular problem.
1) Disable cutting on aspect ratio changes.
2) set shrink_logo=1

When looking at block 56 you see also here the cut is done on aspect ratio change. (letter 'a' again), also at the end of block 34. All these are according you your reference file wrong (as indicated by the '-+' directly after the block number in the block list).
This all suggests that cutting on aspect ratio changes does not seem to be a good strategy for this recording.

However, when disabling the cut on aspect ratio some other things go wrong.
So its best to set shrink_logo=1
The remaining errors are indeed to be solved by improving the global heuristics. That is on the todo list for the next build.
Thanks for this interresting example.
kerryklarson
Posts: 116
Joined: Sun May 14, 2006 9:15 am

Post by kerryklarson »

Frame 141454 is at the end of block 35. The reason for a cut is indicated by a lower case letter under the heading 'cut'. In this case its a 'a' indicating the aspect ratio changed. aspect ratio changes again at frame 141535. And then at frame 141930 there is the black frame cut indicated by letter 'b'.
I don't see the same thing in ComskipGUI that I see in the log file. There is no aspect ratio change at 14154. It doesn't change until 14181 to 14182 (1.76 to 1.61). But even that is wrong as there clearly is not an aspect ratio change:
Image
I'm going by what I see on the screen: AR=1.76 and AR=1.61. Since Comskip and VideoRedo aren't even pointed near the same frame in that area, perhaps there is some timeline corruption that is causing a problem?

Is there a key somewhere for the reason codes and capital letter vs small letter?

I'll give the shrink_logo setting a try. Thanks.
Last edited by kerryklarson on Sat Mar 17, 2007 1:39 pm, edited 1 time in total.
Post Reply