M-JPEG or MJPEG (Motion JPEG) is a video compression format where each video frame or interlaced fields of a digital video sequence are compressed individually, each as a JPEG image.
The standard was initially designed for multimedia PC applications. Currently, M-JPEG is used by software and devices including internet browsers, multimedia players, game consoles, digital cameras, IP cameras, webcams, streaming servers, video cameras and non-linear video editors.
M-JPEG is supported by many IP cameras and is natively supported by internet browsers like Mozilla Firefox and other Webkit-based browser (open source internet browser engine).
Another important reason for using M-JPEG in IP cameras is the ability to stream videos. HTTP stream divides every image into HTTP responses with a marker. RTP streaming creates image sequence packages in JPEG format that can be received by client applications, e.g. QuickTime or VLC. It is natively supported by Safari, Google Chrome and Firefox. Other browsers, e.g. Internet Explorer can display M-JPEG images with plug-ins installed.
M-JPEG coding uses an intra-frame compression technique. It does not include any complex algorithms, nor does it use any inter-frame prediction techniques. Since advanced video compression techniques, e.g. MPEG-4 and H.264/AVC offer compression ratio over 1:50, lack of the inter-frame prediction in the M-JPEG compression limits its compression ratio to 1:20 or lower, depending on the artefact tolerance in the output image. Since the frames are compressed individually, M-JPEG requires less computing power and memory.