Content deleted Content added
m fixed (via WP:JWB) |
|||
Line 1:
{{short description|Content representation format for storage or transmission of digital video content}}
{{Use mdy dates|date=January 2024}}
A '''video coding format'''{{efn|The term ''video coding''
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 organization]]s as [[technical standard]]s, and are thus known as a '''video coding standard'''.
Video content encoded using a particular video coding format is normally bundled with an audio stream (encoded using an [[audio coding format]]) inside a [[container format (digital)#Multimedia container formats|multimedia container format]] such as [[Audio Video Interleave|AVI]], [[MP4 file format|MP4]], [[Flash Video|FLV]], [[RealMedia]], or [[Matroska]]. As such, the user normally does not have a [[H.264/MPEG-4 AVC|H.264]] file, but instead has a
==Distinction between ''format'' and ''codec''==
Line 12 ⟶ 13:
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, [[firmware]], 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)|C Programming Language]] (specification) is to the compiler [[GNU Compiler Collection|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''.<ref name="h264" /> 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''.<ref>{{cite web|url=http://aomedia.org/|publisher=Alliance for Open Media|title=Front Page|access-date=
As an example of conflation, Chromium's<ref>{{cite web|url=https://www.chromium.org/audio-video|title=Audio/Video|publisher=The Chromium Projects
|access-date=
A video coding format does not dictate all [[algorithm]]s used by a [[codec]] implementing the format. For example, a large part of how video compression typically works is by finding [[Video compression picture types|similarities between video frames]] (block-matching), and then achieving compression by copying previously-coded similar subimages (
==History==
The concept of [[analog video]] compression dates back to
The earliest digital video coding algorithms were either for [[uncompressed video]] or used [[lossless compression]], both methods inefficient and impractical for digital video coding.<ref name="Ghanbari">{{cite book |last1=Ghanbari |first1=Mohammed |title=Standard Codecs: Image Compression to Advanced Video Coding |date=2003 |publisher=[[Institution of Engineering and Technology]] |isbn=9780852967102 |pages=1–2 |url=https://books.google.com/books?id=7XuU8T3ooOAC&pg=PA1}}</ref><ref name="Lea">{{cite book |last1=Lea |first1=William |title=Video on demand: Research Paper 94/68 |date=1994 |publisher=[[House of Commons Library]] |url=https://researchbriefings.parliament.uk/ResearchBriefing/Summary/RP94-68 |access-date=
===Motion-compensated DCT===
Line 29 ⟶ 30:
DCT coding is a [[lossy compression|lossy]] block compression [[transform coding]] technique that was first proposed by [[N. Ahmed|Nasir Ahmed]], who initially intended it for [[image compression]], while he was working at [[Kansas State University]] in 1972. It was then developed into a practical image compression algorithm by Ahmed with T. Natarajan and [[K. R. Rao]] at the [[University of Texas]] in 1973, and was published in 1974.<ref name="Ahmed">{{cite journal |last=Ahmed |first=Nasir |author-link=N. Ahmed |title=How I Came Up With the Discrete Cosine Transform |journal=[[Digital Signal Processing (journal)|Digital Signal Processing]] |date=January 1991 |volume=1 |issue=1 |pages=4–5 |doi=10.1016/1051-2004(91)90086-Z |url=https://www.scribd.com/doc/52879771/DCT-History-How-I-Came-Up-with-the-Discrete-Cosine-Transform}}</ref><ref name="pubDCT">{{Citation |first1=Nasir |last1=Ahmed |author1-link=N. Ahmed |first2=T. |last2=Natarajan |first3=K. R. |last3=Rao |title=Discrete Cosine Transform |journal=IEEE Transactions on Computers |date=January 1974 |volume=C-23 |issue=1 |pages=90–93 |doi=10.1109/T-C.1974.223784|s2cid=149806273 }}</ref><ref name="pubRaoYip">{{Citation |last1=Rao |first1=K. R. |author-link1=K. R. Rao |last2=Yip |first2=P. |title=Discrete Cosine Transform: Algorithms, Advantages, Applications |publisher=Academic Press |___location=Boston |year=1990 |isbn=978-0-12-580203-1}}</ref>
The other key development was motion-compensated hybrid coding.<ref name="ITU"/> In 1974, Ali Habibi at the [[University of Southern California]] introduced hybrid coding,<ref name="Habibi">{{cite journal |last1=Habibi |first1=Ali |title=Hybrid Coding of Pictorial Data |journal=IEEE Transactions on Communications |date=1974 |volume=22 |issue=5 |pages=614–624 |doi=10.1109/TCOM.1974.1092258}}</ref><ref>{{cite journal |last1=Chen |first1=Z. |last2=He |first2=T. |last3=Jin |first3=X. |last4=Wu |first4=F. |title=Learning for Video Compression |journal=IEEE Transactions on Circuits and Systems for Video Technology |date=2019 |volume=30 |issue=2 |pages=566–576 |doi=10.1109/TCSVT.2019.2892608 |arxiv=1804.09869 |s2cid=13743007 }}</ref><ref>{{cite book |last1=Pratt |first1=William K. |title=Advances in Electronics and Electron Physics: Supplement |date=1984 |publisher=[[Academic Press]] |isbn=9780120145720 |page=158 |url=https://books.google.com/books?id=OX00AAAAIAAJ |quote=A significant advance in image coding methodology occurred with the introduction of the concept of hybrid transform/DPCM coding (Habibi, 1974).}}</ref> which combines predictive coding with transform coding.<ref name="ITU"/><ref>{{cite book |last1=Ohm |first1=Jens-Rainer |title=Multimedia Signal Coding and Transmission |date=2015 |publisher=Springer |isbn=9783662466919 |pages=364 |url=https://books.google.com/books?id=e7xnBwAAQBAJ&pg=PA364}}</ref> He examined several transform coding techniques, including the DCT, [[Hadamard transform]], [[Fourier transform]], slant transform, and [[Karhunen-Loeve transform]].<ref name="Habibi"/> However, his algorithm was initially limited to [[intra-frame]] coding in the spatial dimension. In 1975, John A. Roese and Guner S. Robinson extended Habibi's hybrid coding algorithm to the temporal dimension, using transform coding in the spatial dimension and predictive coding in the temporal dimension, developing [[inter-frame]] motion-compensated hybrid coding.<ref name="ITU"/><ref name="Roese">{{cite journal |last1=Roese |first1=John A. |last2=Robinson |first2=Guner S. |editor-first1=Andrew G. |editor-last1=Tescher |title=Combined Spatial And Temporal Coding Of Digital Image Sequences |journal=Efficient Transmission of Pictorial Information |date=
The DCT was applied to video encoding by Wen-Hsiung Chen,<ref name="Stankovic">{{cite journal |last1=Stanković |first1=Radomir S. |last2=Astola |first2=Jaakko T. |title=Reminiscences of the Early Work in DCT: Interview with K.R. Rao |journal=Reprints from the Early Days of Information Sciences |date=2012 |volume=60 |url=http://ticsp.cs.tut.fi/reports/ticsp-report-60-reprint-rao-corrected.pdf |access-date=
===Video coding standards===
The first digital video coding standard was [[H.120]], developed by the [[ITU-T|CCITT]] (now ITU-T) in 1984.<ref name="history">{{cite web |title=The History of Video File Formats Infographic |url=http://www.real.com/resources/digital-video-file-formats/ |website=[[RealNetworks]] |access-date=
[[MPEG-1]], developed by the [[Motion Picture Experts Group]] (MPEG), followed in 1991, and it was designed to compress [[VHS]]-quality video.<ref name="history"/> It was succeeded in 1994 by [[MPEG-2]]/[[H.262/MPEG-2 Part 2|H.262]],<ref name="history"/> which was developed with patents licensed from a number of companies, primarily [[Sony]], [[Technicolor SA|Thomson]] and [[Mitsubishi Electric]].<ref name="mp2-patents"/> MPEG-2 became the standard video format for [[DVD]] and [[SD digital television]].<ref name="history"/> Its motion-compensated DCT algorithm was able to achieve a [[compression ratio]] of up to 100:1, enabling the development of [[digital media]] technologies such as [[video-on-demand]] (VOD)<ref name="Lea"/> and [[high-definition television]] (HDTV).<ref name="Shishikui">{{cite journal |last1=Shishikui |first1=Yoshiaki |last2=Nakanishi |first2=Hiroshi |last3=Imaizumi |first3=Hiroyuki |title=An HDTV Coding Scheme using Adaptive-Dimension DCT |journal=Signal Processing of HDTV: Proceedings of the International Workshop on HDTV '93, Ottawa, Canada |date=October 26–28, 1993 |pages=611–618 |doi=10.1016/B978-0-444-81844-7.50072-3 |url=https://books.google.com/books?id=j9XSBQAAQBAJ&pg=PA611 |publisher=[[Elsevier]] |isbn=9781483298511}}</ref> In 1999, it was followed by [[MPEG-4 Visual|MPEG-4]]/[[H.263]], which was a major leap forward for video compression technology.<ref name="history"/> It uses patents licensed from a number of companies, primarily Mitsubishi, [[Hitachi]] and [[Panasonic]].<ref name="mp4-patents"/>
The most widely used video coding format {{as of|2019|lc=y}} is [[H.264/MPEG-4 AVC]].<ref name="Bitmovin">{{cite web |url=https://cdn2.hubspot.net/hubfs/3411032/Bitmovin%20Magazine/Video%20Developer%20Report%202019/bitmovin-video-developer-report-2019.pdf |title=Video Developer Report 2019 |website=[[Bitmovin]] |year=2019 |access-date=
A main problem for many video coding formats has been [[patent]]s, making it expensive to use or potentially risking a patent lawsuit due to [[submarine patent]]s. The motivation behind many recently designed video coding formats such as [[Theora]], [[VP8]], and [[VP9]] have been to create a ([[Free software|libre]]) video coding standard covered only by royalty-free patents.<ref>{{Cite web|url=https://blogs.cisco.com/collaboration/world-meet-thor-a-project-to-hammer-out-a-royalty-free-video-codec|title = World, Meet Thor – a Project to Hammer Out a Royalty Free Video Codec|date =
The current-generation video coding format is [[HEVC]] (H.265), introduced in 2013.
==List of video coding standards==
Line 52 ⟶ 53:
! Video coding standard
! Year
! Publishers
! Committees
! Licensors
! Market presence {{small|(2019)}}<ref name="Bitmovin"/>
! Popular implementations
Line 70 ⟶ 71:
| 1988 || CCITT
| VCEG
| [[Hitachi]], [[PictureTel]], [[Nippon Telegraph and Telephone|NTT]], [[BT plc|BT]], [[Toshiba]], [[H.261#Patent holders|etc.]]<ref name="h261-patents">{{cite web |title=ITU-T Recommendation declared patent(s) |url=https://www.itu.int/ITU-T/recommendations/related_ps.aspx?id_prod=1088 |website=ITU |access-date=
| {{n/a}}
| [[Videoconferencing]], [[videotelephony]]
Line 78 ⟶ 79:
| [[Joint Photographic Experts Group|JPEG]]
| [[Joint Photographic Experts Group|JPEG]]
| [[ISO]] / [[Open Source|Open Source does NOT mean free!]] <ref>{{cite web |last1=ISO |title=Home |url=https://www.iso.org/home.html |website=International Standards Organization |publisher=ISO |access-date=
| {{n/a}}
| [[QuickTime]]
Line 85 ⟶ 86:
| 1993||[[International Organization for Standardization|ISO]], [[International Electrotechnical Commission|IEC]]
| [[MPEG]]
| [[Fujitsu]], [[IBM]], [[Matsushita Electric|Matsushita]], [[MPEG-1#Patent holders|etc.]]<ref>{{cite web |title=ISO Standards and Patents |url=https://www.iso.org/iso-standards-and-patents.html |website=ISO |access-date=
| {{n/a}}
| [[Video CD]], [[Internet video]]
Line 92 ⟶ 93:
| 1995|| ISO, IEC, [[ITU-T]]
| MPEG, VCEG
| [[Sony]], [[Technicolor SA|Thomson]], [[Mitsubishi Electric|Mitsubishi]], [[H.262/MPEG-2 Part 2#Patent holders|etc.]]<ref name="mp2-patents">{{cite web |title=MPEG-2 Patent List |url=https://www.mpegla.com/wp-content/uploads/m2-att1.pdf |website=[[MPEG LA]] |access-date=
| 29%
| [[DVD|DVD Video]], [[Blu-ray]], [[DVB]], [[ATSC]], [[SVCD]], [[SDTV]]
Line 107 ⟶ 108:
| 1996|| ITU-T
| VCEG
| Mitsubishi, [[Hitachi]], Panasonic, [[MPEG-4 Part 2#Patent holders|etc.]]<ref name="mp4-patents">{{cite web |title=MPEG-4 Visual - Patent List |url=https://www.mpegla.com/wp-content/uploads/m4v-att1.pdf |website=[[MPEG LA]] |access-date=
| {{unk}}
| Videoconferencing, videotelephony, [[H.320]], [[Integrated Services Digital Network]] (ISDN),<ref>{{cite news |last1=Davis |first1=Andrew |title=The H.320 Recommendation Overview |url=https://www.eetimes.com/document.asp?doc_id=1275886 |access-date=
|- style="text-align:center;"
| [[MPEG-4 Part 2]] (MPEG-4 Visual)
Line 119 ⟶ 120:
|- style="text-align:center;"
| [[Discrete wavelet transform|DWT]]||[[Motion JPEG 2000]] (MJ2)
| 2001||JPEG<ref name="j2kpart3">{{cite web|title=Motion JPEG 2000 Part 3|url=http://www.jpeg.org/jpeg2000/j2kpart3.html|website=Joint Photographic Experts Group, JPEG, and Joint Bi-level Image experts Group, JBIG|access-date=
| JPEG<ref>{{cite book |last1=Taubman |first1=David |last2=Marcellin |first2=Michael |title=JPEG2000 Image Compression Fundamentals, Standards and Practice: Image Compression Fundamentals, Standards and Practice |date=2012 |publisher=[[Springer Science & Business Media]] |isbn=9781461507994 |url=https://books.google.com/books?id=y7HeBwAAQBAJ&pg=PA402}}</ref>
| {{n/a}}
Line 128 ⟶ 129:
| 2003|| ISO, IEC, ITU-T
| MPEG, VCEG
| Panasonic, [[Godo kaisha|Godo Kaisha IP Bridge]], [[LG Electronics|LG]], [[H.264/MPEG-4 AVC#Patent holders|etc.]]<ref name="avc-patents">{{cite web |title=AVC/H.264 {{ndash}} Patent List |url=https://www.mpegla.com/wp-content/uploads/avc-att1.pdf |website=MPEG LA |access-date=
| 91%
| [[Blu-ray]], [[HD DVD]], [[HDTV]] ([[Digital Video Broadcasting|DVB]], [[ATSC]]), [[video streaming]] ([[YouTube]], [[Netflix]], [[Vimeo]]), [[iTunes Store]], [[iPod Video]], [[Apple TV]], videoconferencing, [[Flash Player]], [[Silverlight]], [[Video on demand|VOD]]
Line 144 ⟶ 145:
| [[SMPTE]]
| [[SMPTE]]
| [[Microsoft]], Panasonic, LG, [[Samsung Electronics|Samsung]], [[VC-1#Patent holders|etc.]]<ref>{{cite web |title=VC-1 Patent List |url=https://www.mpegla.com/wp-content/uploads/vc-1-att1.pdf |website=[[MPEG LA]] |access-date=
| {{unk}}
| Blu-ray, Internet video
Line 160 ⟶ 161:
| ISO, IEC, ITU-T
| MPEG, VCEG
| Samsung, [[General Electric|GE]], [[Nippon Telegraph and Telephone|NTT]], [[JVCKenwood]], [[High Efficiency Video Coding#Patent holders|etc.]]<ref name="hevc-patents">{{cite web |title=HEVC Patent List |url=https://www.mpegla.com/wp-content/uploads/hevc-att1.pdf |website=[[MPEG LA]] |access-date=
| 43%
|[[Ultra HD Blu-ray|UHD Blu-ray]], DVB, [[ATSC 3.0]], [[Ultra HD|UHD]] streaming, [[High Efficiency Image File Format]], [[macOS High Sierra]], [[iOS 11]]
Line 181 ⟶ 182:
|}
==Lossless, lossy, and uncompressed
Consumer video is generally compressed using [[lossy compression|lossy]] [[video codec]]s, since that results in significantly smaller files than [[lossless compression|lossless]] compression.
[[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
Interframe compression complicates editing of an encoded video sequence.<ref name="Bhojani">{{cite web|last=Bhojani|first=D.R.|title=4.1 Video Compression|url=http://shodh.inflibnet.ac.in/bitstream/123456789/821/5/05_hypothesis.pdf|work=Hypothesis|access-date=
One subclass of relatively simple video coding formats are the [[intra-frame]] video formats, such as [[DV (video format)|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 of 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 does not 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 "[[Video compression picture types|I frames]]" in [[MPEG-2]]) are not allowed to copy data from other frames, so they require much more data than other frames nearby.<ref name="Jaiswal">{{cite book|last=Jaiswal|first=R.C.|title=Audio-Video Engineering|year=2009|publisher=Nirali Prakashan|___location=Pune, Maharashtra|isbn=9788190639675|page=3.55}}</ref>
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. But, this compression is not very effective to use for any audio format.<ref>{{Cite web|title=WebCodecs|url=https://www.w3.org/TR/webcodecs/Overview.html|access-date=
==Profiles and levels==
A video coding format can define optional restrictions to encoded video, called [[profile (engineering)|profile]]s 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.<ref>{{Cite web|title=Video Rendering - an overview {{!}} ScienceDirect Topics|url=https://www.sciencedirect.com/topics/computer-science/video-rendering|access-date=
A ''profile'' restricts which encoding techniques are allowed. For example, the H.264 format includes the profiles ''baseline'', ''main'' and ''high'' (and others). While [[Video compression picture types|P-slices]] (which can be predicted based on preceding slices) are supported in all profiles, [[Video compression picture types|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''.<ref name="adobe"/>
A ''level'' is a restriction on parameters such as maximum resolution and data rates.<ref name="adobe">{{cite web|url=http://www.adobe.com/devnet/adobe-media-server/articles/h264_encoding.html|title=Encoding options for H.264 video|author=Jan Ozer|publisher=Adobe.com|access-date=
==See also==
|