Multiview Video Coding

Multiview Video Coding (MVC) is a standard that allows for the efficient encoding of video sequences captured simultaneously from multiple cameras in a single video stream.[1] It uses the 2D plus Delta methodology and is an amendment to the H.264 (MPEG-4 AVC) video compression standard, developed jointly by MPEG and VCEG.

MVC is intended for encoding stereoscopic (two-view) video, as well as free viewpoint television and multi-view 3D television. The Stereo High profile has been standardized in June 2009; the profile is based on the MVC toolset and is used in stereoscopic Blu-ray 3D releases.

MVC streams are backward compatible with H.264/AVC, which allows older video player devices and software decoders to decode MVC video streams while ignoring additional information for the second view, meaning that the stereoscopic image will not be available.

Technical overview

MVC is based on the idea that video recordings of the same scene from multiple angles share many common elements. It is possible to encode all simultaneous frames captured in the same elementary stream and to share as much information as possible across the different layers. This can reduce size of the encoded video.[2]

Multiview video contains a large amount of inter-view statistical dependencies, since all cameras capture the same scene from different viewpoints. Therefore combined temporal and inter-view prediction is important for efficient MVC encoding. A frame from a certain camera can be predicted not only from temporally related frames from the same camera, but also from the frames of neighboring cameras. These interdependencies can be used for efficient prediction.[3]

This methodology is known as 2D plus Delta, and the MVC specification itself is part of the H.264 standard as an amendment in H.264 "Annex H" of the specification.[4]

Open source support missing

As of January 2015 there is still no free and open source software that supports decoding the MVC video compression standard. So popular open source H.264 decoders such as those used in the FFmpeg and Libav libraries simply ignore the additional information for the second view and thus don't show the second view for stereoscopic views. In most cases the reason for this is that MVC was not considered when the initial core H.264 decoder code was written so it was coded in one large chunk. Later amendment will often mean a lot of prerequisite code refactoring work, with major work in untangling and reordering some code, and splitting different functions in exiting decoder code into smaller chunks for simpler handling to make amendments such as MVC easier to add.[5]

Some work has however been done in the past but never made it into official releases.[6][7]

See also

References

  1. https://research.nokia.com/page/4988 Mobile 3D Video
  2. https://wiki.libav.org/Blueprint/MultiAVFrame Libav MultiAVFrame Blueprint
  3. MPEG – Technologies – Introduction to Multiview Video Coding
  4. http://www.itu.int/rec/T-REC-H.264 H.264 : Advanced video coding for generic audiovisual services
  5. blogs.gentoo.org/lu_zero/2014/04/04/the-road-to-mvc/ The road to MVC
  6. http://www.nt.uni-saarland.de/fileadmin/file_uploads/theses/master/Optimized_implementation_of_a_MVC_decoder.pdf Jochen Britz - Optimized implementation of an MVC decoder - Master’s Thesis in Computer and Communication Technology
  7. https://github.com/Britz/FFmpeg Britz - In terms of my master thesis, I work on a H.264 MVC implementation in libvacodec based on H.264 Annex H.

External links