Real-time selective encryption of MJPEG video streams

figure encrypt-all.jpg
Encrypted video stream
figure encrypt-motion-only.jpg
Motion-only encrypted video stream


The principle is similar to that developed for JPEG images in [1]. For each frame, the requirements are:
[Visual acceptance] Part of information may be visible but the encrypted image should look noisy.
[Selective encryption] Encryption occurs after compression and leaves parts of the bitstream unencrypted.
[Constant bit rate] Encryption should preserve the size of the bitstream.
[Bitstream compliance] The encryption step should produce a compliant bitstream according to the chosen format definition.
Follow this link for more information for selective encryption applied to JPEG images.

Software description

Please contact Mr Van Droogenbroeck if you are interested in the software. We can provide both a program (for Windows or Linux) and the full source code. Here are the specifications of the software:
  1. Programming language: standard C (compiled with gcc).
  2. Real time encryption and decryption.
  3. External dependencies:
    1. Intel® Integrated Performance Primitive
    2. libcurl
    3. FFMPEG
    4. libSDL
  4. Possibility to encrypt only parts of the image or Region of Interests (ROIs). See [2] for a full description. As an alternative, the program can encode only the parts in motion or the parts that are static.
  5. Cascading of encryption (over-encryption) is possible and reversible.


[1] M. Van Droogenbroeck, R. Benedet. Techniques for a selective encryption of uncompressed and compressed images. Advances Concepts for Intelligent Vision Systems (ACIVS):90-97, 2002. URL

[2] M. Van Droogenbroeck. Partial encryption of images for real-time applications. Fourth IEEE Signal Processing Symposium:11-15, 2004. URL Invited presentation.