Open main menu

A video coding format[1][2] (or sometimes video compression format) is a content representation format for storage or transmission of digital video content (such as in a data file or bitstream). Examples of video coding formats include H.262 (MPEG-2 Part 2), MPEG-4 Part 2, H.264 (MPEG-4 Part 10), HEVC (H.265), Theora, RealVideo RV40, VP9, and AV1. A specific software or hardware implementation capable of video compression and/or decompression to/from a specific video coding format is called a video codec; an example of a video codec is Xvid, which is one of several different codecs which implements encoding and decoding videos in the MPEG-4 Part 2 video coding format in software.

Some video coding formats are documented by a detailed technical specification document known as a video coding specification. Some such specifications are written and approved by standardization organizations as technical standards, and are thus known as a video coding standard. The term 'standard' is also sometimes used for de facto standards as well as formal standards.

Video content encoded using a particular video coding format is normally bundled with an audio stream (encoded using an audio coding format) inside a multimedia container format such as AVI, MP4, FLV, RealMedia, or Matroska. As such, the user normally doesn't have a H.264 file, but instead has a .mp4 video file, which is an MP4 container containing H.264-encoded video, normally alongside AAC-encoded audio. Multimedia container formats can contain any one of a number of different video coding formats; for example the MP4 container format can contain video in either the MPEG-2 Part 2 or the H.264 video coding format, among others. Another example is the initial specification for the file type WebM, which specified the container format (Matroska), but also exactly which video (VP8) and audio (Vorbis) compression format is used inside the Matroska container, even though the Matroska container format itself is capable of containing other video coding formats (VP9 video and Opus audio support was later added to the WebM specification).

Distinction between "format" and "codec"Edit

Although video coding formats such as H.264 are sometimes referred to as codecs, there is a clear conceptual difference between a specification and its implementations. Video coding formats are described in specifications, and software or hardware to encode/decode data in a given video coding format from/to uncompressed video are implementations of those specifications. As an analogy, the video coding format H.264 (specification) is to the codec OpenH264 (specific implementation) what the C Programming Language (specification) is to the compiler GCC (specific implementation). Note that for each specification (e.g. H.264), there can be many codecs implementing that specification (e.g. x264, OpenH264, H.264/MPEG-4 AVC products and implementations).

This distinction is not consistently reflected terminologically in the literature. The H.264 specification calls H.261, H.262, H.263, and H.264 video coding standards and does not contain the word codec.[3] The Alliance for Open Media clearly distinguishes between the AV1 video coding format and the accompanying codec they are developing, but calls the video coding format itself a video codec specification.[4] The VP9 specification calls the video coding format VP9 itself a codec.[5]

As an example of conflation, Chromium's[6] and Mozilla's[7] pages listing their video format support both call video coding formats such as H.264 codecs. As another example, in Cisco's announcement of a free-as-in-beer video codec, the press release refers to the H.264 video coding format as a "codec" ("choice of a common video codec"), but calls Cisco's implementation of a H.264 encoder/decoder a "codec" shortly thereafter ("open-source our H.264 codec").[8]

A video coding format does not dictate all algorithms used by a codec implementing the format. For example, a large part of how video compression typically works is by finding similarities between video frames (block-matching), and then achieving compression by copying previously-coded similar subimages (e.g., macroblocks) and adding small differences when necessary. Finding optimal combinations of such predictors and differences is an NP-hard problem,[9] meaning that it is practically impossible to find an optimal solution. While the video coding format must support such compression across frames in the bitstream format, by not needlessly mandating specific algorithms for finding such block-matches and other encoding steps, the codecs implementing the video coding specification have some freedom to optimize and innovate in their choice of algorithms. For example, section 0.5 of the H.264 specification says that encoding algorithms are not part of the specification.[3] Free choice of algorithm also allows different space–time complexity trade-offs for the same video coding format, so a live feed can use a fast but space-inefficient algorithm, while a one-time DVD encoding for later mass production can trade long encoding-time for space-efficient encoding.

HistoryEdit

The earliest video coding algorithms were either uncompressed or used lossless compression, both of which were inefficient and impractical for video coding.[10] In 1967, A.H. Robinson and C. Cherry proposed a lossless run-length encoding (RLE) compression scheme to slightly reduce the transmission bandwidth of analog television signals.[11] Digital video coding was later introduced in the 1970s with uncompressed pulse-code modulation (PCM), requiring high bitrates between 45–140 Mbps.[10]

Practical video coding was eventually made possible with the discrete cosine transform (DCT), a form of lossy compression.[10] DCT compression was first proposed by Nasir Ahmed in 1972, and then developed by Ahmed with T. Natarajan and K. R. Rao at the University of Texas in 1973.[12][13][14] DCT would later become the standard for video compression since the late 1980s.[10]

The first digital video coding standard was H.120, created by the CCITT (now ITU-T) in 1984.[15] H.120 was not usable in practice, as its performance was too poor.[15] H.120 was based on differential pulse-code modulation (DPCM), a lossless compression algorithm that was inefficient for video coding. During the late 1980s, a number of companies began experimenting with DCT, a much more efficient form of compression for video coding. The CCITT received 14 proposals for DCT-based video compression formats, in contrast to a single proposal based on vector quantization (VQ) compression. The H.261 standard was developed based on DCT compression.[10] H.261 was the first practical video coding standard,[15] and was developed by a number of companies, including Hitachi, PictureTel, NTT, BT, and Toshiba, among others.[16] Since H.261, DCT compression has been adopted by all the major video coding standards that followed.[10]

MPEG-1, developed by the Motion Picture Experts Group (MPEG), followed in 1991, and it was designed to compress VHS-quality video. It was succeeded in 1994 by MPEG-2/H.262,[15] which was developed by a number of companies, primarily Sony, Thomson and Mitsubishi Electric.[17] MPEG-2 became the standard video format for DVD and SD digital television.[15] In 1999, it was followed by MPEG-4/H.263, which was a major leap forward for video compression technology.[15] It was developed by a number of companies, primarily Mitsubishi Electric, Hitachi and Panasonic.[18]

Perhaps the most widely used video coding format as of 2016 is H.264/MPEG-4 AVC. It was developed in 2003 by a number of organizations, primarily Panasonic, Godo Kaisha IP Bridge and LG Electronics.[19] H.264 is one of the video encoding standards for Blu-ray Discs; all Blu-ray Disc players must be able to decode H.264. It is also widely used by streaming internet sources, such as videos from YouTube, Netflix, Vimeo, and the iTunes Store, web software such as the Adobe Flash Player and Microsoft Silverlight, and also various HDTV broadcasts over terrestrial (Advanced Television Systems Committee standards, ISDB-T, DVB-T or DVB-T2), cable (DVB-C), and satellite (DVB-S2).

A main problem for many video coding formats has been patents, making it expensive to use and/or potentially risking a patent lawsuit due to submarine patents. The motivation behind many recently designed video coding formats such as Theora, VP8, and VP9 have been to create a (libre) video coding standard covered only by royalty-free patents.[20] Patent status has also been a major point of contention for the choice of which video formats the mainstream web browsers will support inside the HTML5 video tag.

The next generation video coding format is HEVC (H.265). It is heavily patented, with the majority of patents belonging to Samsung Electronics, GE, NTT and JVC Kenwood.[21] It is currently being challenged by the aiming-to-be-freely-licensed AV1 format.

Timeline of international video compression standards
Year Standard Publisher Developers Popular implementations
1984 H.120 ITU-T ITU-T
1988 H.261 ITU-T Hitachi, PictureTel, NTT, BT, Toshiba, etc.[16] Videoconferencing, videotelephony
1993 MPEG-1 Part 2 ISO, IEC MPEG, Fujitsu, IBM, Matsushita, etc.[22] Video-CD
1995 H.262/MPEG-2 Part 2 ISO, IEC, ITU-T Sony, Thomson, Mitsubishi, etc.[17] DVD Video, Blu-ray, DVB, ATSC, SVCD
1996 H.263 ITU-T Mitsubishi, Hitachi, Panasonic, etc.[18] Videoconferencing, videotelephony, video on mobile phones (3GP)
1999 MPEG-4 Part 2 ISO, IEC Mitsubishi, Hitachi, Panasonic, etc.[18] Video on Internet (DivX, Xvid ...)
2003 H.264/MPEG-4 AVC ISO, IEC, ITU-T Panasonic, Godo Kaisha IP Bridge, LG, etc.[19] Blu-ray, HD DVD, DVB, ATSC, iPod Video, Apple TV, videoconferencing
2006 VC-1 SMPTE Microsoft, Panasonic, LG, Samsung, etc.[23] Blu-ray, video on Internet
2013 H.265/MPEG-H HEVC ISO, IEC, ITU-T Samsung, GE, NTT, JVC Kenwood, etc.[21][24] Ultra HD Blu-ray, DVB, ATSC 3.0, UHD streaming, High Efficiency Image Format, macOS High Sierra, iOS 11
2018 AV1 Alliance for Open Media Alliance for Open Media HTML5 video

Lossless, lossy, and uncompressed video coding formatsEdit

Consumer video is generally compressed using lossy video codecs, since that results in significantly smaller files than lossless compression. While there are video coding formats designed explicitly for either lossy or lossless compression, some video coding formats such as Dirac and H.264 support both.

Uncompressed video formats, such as Clean HDMI, is a form of lossless video used in some circumstances such as when sending video to a display over a HDMI connection. Some high-end cameras can also capture video directly in this format.

Intra-frame video coding formatsEdit

Interframe compression complicates editing of an encoded video sequence.[25] One subclass of relatively simple video coding formats are the intra-frame video formats, such as DV, in which each frame of the video stream is compressed independently without referring to other frames in the stream, and no attempt is made to take advantage of correlations between successive pictures over time for better compression. One example is Motion JPEG, which is simply a sequence of individually JPEG-compressed images. This approach is quick and simple, at the expense the encoded video being much larger than a video coding format supporting Inter frame coding.

Because interframe compression copies data from one frame to another, if the original frame is simply cut out (or lost in transmission), the following frames cannot be reconstructed properly. Making 'cuts' in intraframe-compressed video while video editing is almost as easy as editing uncompressed video: one finds the beginning and ending of each frame, and simply copies bit-for-bit each frame that one wants to keep, and discards the frames one doesn't want. Another difference between intraframe and interframe compression is that, with intraframe systems, each frame uses a similar amount of data. In most interframe systems, certain frames (such as "I frames" in MPEG-2) aren't allowed to copy data from other frames, so they require much more data than other frames nearby.[26]

It is possible to build a computer-based video editor that spots problems caused when I frames are edited out while other frames need them. This has allowed newer formats like HDV to be used for editing. However, this process demands a lot more computing power than editing intraframe compressed video with the same picture quality.

Profiles and levelsEdit

A video coding format can define optional restrictions to encoded video, called profiles and levels. It is possible to have a decoder which only supports decoding a subset of profiles and levels of a given video format, for example to make the decoder program/hardware smaller, simpler, or faster.

A profile restricts which encoding techniques are allowed. For example, the H.264 format includes the profiles baseline, main and high (and others). While P-slices (which can be predicted based on preceding slices) are supported in all profiles, B-slices (which can be predicted based on both preceding and following slices) are supported in the main and high profiles but not in baseline.[27]

A level is a restriction on parameters such as maximum resolution and data rates.[27]

See alsoEdit

References and notesEdit

  1. ^ The term "video coding" can he seen in e.g. the names Advanced Video Coding, High Efficiency Video Coding, and Video Coding Experts Group
  2. ^ Thomas Wiegand; Gary J. Sullivan; Gisle Bjontegaard & Ajay Luthra (July 2003). "Overview of the H.264 / AVC Video Coding Standard" (PDF). IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY.
  3. ^ a b "SERIES H: AUDIOVISUAL AND MULTIMEDIA SYSTEMS : Infrastructure of audiovisual services – Coding of moving video : Advanced video coding for generic audiovisual services". Itu.int. Retrieved 6 January 2015.
  4. ^ "Front Page". Alliance for Open Media. Retrieved 2016-05-23.
  5. ^ Adrian Grange; Peter de Rivaz & Jonathan Hunt. "VP9 Bitstream & Decoding Process Specification" (PDF). Google.
  6. ^ "Audio/Video". The Chromium Projects. Retrieved 2016-05-23.
  7. ^ "Media formats supported by the HTML audio and video elements". Mozilla. Retrieved 2016-05-23.
  8. ^ Rowan Trollope (2013-10-30). "Open-Sourced H.264 Removes Barriers to WebRTC". Cisco. Retrieved 2016-05-23.
  9. ^ "Chapter 3 : Modified A* Prune Algorithm for finding K-MCSP in video compression" (PDF). Shodhganga.inflibnet.ac.in. Retrieved 2015-01-06.
  10. ^ a b c d e f Ghanbari, Mohammed (2003). Standard Codecs: Image Compression to Advanced Video Coding. Institution of Engineering and Technology. pp. 1–2. ISBN 9780852967102.
  11. ^ Robinson, A. H.; Cherry, C. (1967). "Results of a prototype television bandwidth compression scheme". Proceedings of the IEEE. IEEE. 55 (3): 356–364. doi:10.1109/PROC.1967.5493.
  12. ^ Ahmed, Nasir (January 1991). "How I Came Up With the Discrete Cosine Transform". Digital Signal Processing. 1 (1): 4–5. doi:10.1016/1051-2004(91)90086-Z.
  13. ^ Ahmed, Nasir; Natarajan, T.; Rao, K. R. (January 1974), "Discrete Cosine Transform", IEEE Transactions on Computers, C-23 (1): 90–93, doi:10.1109/T-C.1974.223784
  14. ^ Rao, K. R.; Yip, P. (1990), Discrete Cosine Transform: Algorithms, Advantages, Applications, Boston: Academic Press, ISBN 978-0-12-580203-1
  15. ^ a b c d e f "The History of Video File Formats Infographic". RealNetworks. 22 April 2012. Retrieved 5 August 2019.
  16. ^ a b "ITU-T Recommendation declared patent(s)". ITU. Retrieved 12 July 2019.
  17. ^ a b "MPEG-2 Patent List" (PDF). MPEG LA. Retrieved 7 July 2019.
  18. ^ a b c "MPEG-4 Visual - Patent List" (PDF). MPEG LA. Retrieved 6 July 2019.
  19. ^ a b "AVC/H.264 – Patent List" (PDF). MPEG LA. Retrieved 6 July 2019.
  20. ^ https://blogs.cisco.com/collaboration/world-meet-thor-a-project-to-hammer-out-a-royalty-free-video-codec
  21. ^ a b "HEVC Patent List" (PDF). MPEG LA. Retrieved 6 July 2019.
  22. ^ "ISO Standards and Patents". ISO. Retrieved 10 July 2019.
  23. ^ "VC-1 Patent List" (PDF). MPEG LA. Retrieved 11 July 2019.
  24. ^ "HEVC Advance Patent List". HEVC Advance. Retrieved 6 July 2019.
  25. ^ Bhojani, D.R. "4.1 Video Compression" (PDF). Hypothesis. Retrieved 6 March 2013.
  26. ^ Jaiswal, R.C. (2009). Audio-Video Engineering. Pune, Maharashtra: Nirali Prakashan. p. 3.55. ISBN 9788190639675.
  27. ^ a b Jan Ozer. "Encoding options for H.264 video". Adobe.com. Retrieved 6 January 2015.