Monday, 17 September 2012

Video watermarking idea

I was watching football yesterday with my brother-in-law, Steve. Yes, I know, very odd. I figured out that they have to get the ball in the net, which seemed (from his somewhat vocal comments) was a concept his team had not quite grasped (though they did win in the end).

Anyway, during the game a 10 digit number kept popping up bottom left. It was clearly locally generated as use of any on-screen menus caused it to vanish. It was most distracting. Fortunately, it gave me a chance to stop watching football and google it. I found several comments from others quoting different numbers when viewing Sky Sports via Virgin Media. It is apparently some watermarking to try and catch live streaming of sports events. No idea if they use it to later identify the source or to kill the stream in real time. They claim, wrongly, that it does not affect the viewing, where plainly it does - you can see it!

This got me wondering if there was a better way to do this, and I came up with a cunning plan. If I was in the industry I would probably patent it (I have patented dumber ideas before now).

The problems with watermarks is that they are either clear enough that they can be seen (as above), or they are subtle enough that they get lost. You don't want them seen as they distract from the viewing and make it easier to remove them. If the streaming was taken from the raw mpeg then invisible coding could be added, but it is not (as I understand it). There are tricks with low bits of colours used in images, but these only work if the colour is not distorted. The whole shit with HDMI mean that you probably just point a web cam at the TV, which means changes in colour, scaling, cropping and even re-sampling the video timing. Subtle forms of watermarking are not going to work with that!

So my cunning plan uses the fact that these sorts of events are often filmed in 3D and involve a lot of moving camera shots and clean cuts between cameras a lot.

Why not transmit both eye's views to the play out box. This means it can do a 3D image on a TV which is not likely to be useful for streaming, but can also play out one of the eye's view's as the standard 2D video. Using either eye will do as the camera is pointed at the action from both viewpoints.

Next, either mark frames in the transmission of have the playback work out when there is a camera cut (from one camera to another). The trick here is to then pick left or right eye from then until the next camera cut. This won't be visible as it is no different to just having twice as many cameras and cutting to specific ones. The user is unlikely to even be able to tell that this is happening even if looking for it (unless there is a locked down static camera being used at some point). It does mean on-screen graphics need to be the same on both, which is often the case anyway with 3D.

But this means each cut allows a locally generated "bit" of data to be conveyed (the choice of left or right for the next scene). This can be detected when compared to the original left and right eye broadcast signals. This could allow a continuous repeat of a bit stream with suitable identification data, and maybe some forward error correction. The actual amount of data needed is low - a serial number.

It would be truly non-disruptive watermarking that can survive a hell of a lot of messing with the image and still be detectable.

So, there, published, can't be patented now.


  1. "So, there, published, can't be patented now"
    unless it is...

  2. You loved the game yesterday lol we will make a football fan of you yet xxxx

  3. And people put up with this number appearing? Blimey.