top of page

NOISE TESTS

After we implemented completely our fingerprinting algorithm and the least square error approximation method to know which video we are trying to detect, we first relaxed our problem by introducing to our video inputs some popular noises, so that we can know how does it react to those. We have used three different noises to do that: uniform noise, AWGN noise and luminance change.

Add uniform noise

The uniform noise is one the most basic noises there are, as it is described by the uniform distribution of statistics. The mathematical function that describes this noise’s random behaviour is the next one:

Uniform noise example

So we have used the matlab function rand to obtain a set of uniformly distributed numbers between 0 and 1, and we then use a coefficient that we have called NOISE_DEVIATION, so that we can control the strength of that noise. Bigger NOISE_DEVIATION imply bigger numbers in the noise matrix, so the final values of the noisy video (after summing the original video with the noise), will be more erratic until it is just noise and we cannot even distinguish which video it is by watching it.

 

Our algorithm is quite strong against this type of noise, and it is able to detect successfully which video we are trying to detect in noisy conditions, the limits of it are the next ones for all the videos

(in NOISE_DEVIATION terms):

  • Reservoir Dogs: always OK

 

  • The Godfather: 160

 

  • Blade Runner: 29

 

  • Full Metal Jacket: 72

This threshold values show the strength of our code under noisy conditions, as we can see that our original videos are corrupted by values of the order 27*[0-1] in the worst conditions, and that it still works. In the case Reservoir Dogs, it can be seen that it does not matter how much noise is applied that the algorithm is always successful. This may happen due to the fact that the noisy videos always converge to that video when they have noise values bigger than the threshold, and we will explain our theory of why does this happen in the conclusions part.

Add AWGN noise

AWGN noise example

The additive white gaussian noise is very used to model noises in a lot of fields as it is quite close to some real noises. This fact comes from the CLT or Central Limit Theorem, that states that if we sum up a sequence of identically distributed random variables, the converge to a gaussian distribution. So we take advantage of that fact and we say that combining all the noises which all have mean zero, and supposing that their variance is the same, an approach of an AWGN noise, will be quite good for testing our algorithm.

 

 

The properties of an AWGN noise are that the random noise behaves following a Gaussian distribution, and that its spectrum is flat in the frequencies of interest (meaning that if we take its Fourier Transform it will be flat in the frequencies we are operating). This is the mathematical expression that describes it:

To use this noise, we have used the matlab function awgn, that receives the parameter SNR instead of the standard deviation of the noise, and it is more interesting for us to know the limit SNRs that our algorithm can handle than the standard deviation, as the SNR gives us a more understandable information of the performance of our video-detection-algorithm.

 

After testing our code for different videos and SNR, we have seen that it is quite strong against this noise as most of them have a threshold of success in a -12 dB SNR gaussian noise added. This is good because it means that the code can handle videos with a noise power 8 times higher than the video power approximately, that seems quite reasonable.

 

 

The thresholds and the video that estimates incorrectly are the next ones (in SNR terms):

  • Reservoir Dogs: -10000 dB approximately (meaning it always works)

 

  • The Godfather: -44 dB

 

  • Blade Runner: -29 dB

 

  • Full Metal Jacket: -36 dB

Luminance change

The final ideal test we realized is the luminance change, which means the fact of changing the illumination of the place where we would be recording the video with the mobile phone. This test may seem a bit unrealistic as in the reality the luminance won’t change uniformly, and there will be reflections in the screen, but it’s the first approach to obtain the final results.


The tests are realized by multiplying our frames by a coefficient between 0 and 1, so that we make the video darker. After realizing the test for values like 0.01, and seeing that it was successful, we reached the following conclusion:

Luminance change example

Scalar factor=0.01

The algorithm will always be successful in this test because our algorithm is calculating a vector that is the fingerprint of our new noisy video, and then comparing it to the original fingerprints by seeing whose projection has less squared error. So multiplying a coefficient to all the components won’t change the direction of the new fingerprint, and then it will be colinear with the original fingerprint, implying a zero valued squared error. That’s why our algorithm is heavily strong for ideal luminance changes.

Record the scenes with the phone

Finally, we have also tested our program with videos recorded with our mobile phones, so that it can be seen how our algorithm works with real life conditions, with reflections of the screen, the camera moving a bit because we cannot record it perfectly, the fact that we record more part of the screen than the video… and it is working quite well.

Full Metal Jacket - Cellphone record

Reservoir Dogs - Cellphone record

We first did a test recording Full Metal Jacket where it can be seen the reflections in the screen, where we appear recording the video, and it can be seen that the quality of the recorded video is not really good, but our algorithm is capable of guessing that it is FMJ.

After that, we tested our algorithm with a video of Reservoir Dogs, which didn’t record everything well (meaning that some part of the screen where the film does not appear is also recorded. Our algorithm did also succeed in this test and detected correctly that the film being played was Reservoir Dogs.

The Godfather - Cellphone record

Finally, we wanted to test our Video Shazam in extreme conditions, so we recorded a the part of the film The Godfather, with the camera having some tremors, recording the whole screen of the computer and letting the camera record a part of the background where we were. The algorithm failed and predicted that was Reservoir Dogs the film we had recorded, but this conditions are very difficult to deal with, so we conclude that our algorithm is good in detecting which film is being displayed in the screen of the computer.

bottom of page