Content deleted Content added
Citation bot (talk | contribs) Added bibcode. | Use this bot. Report bugs. | Suggested by Abductive | Category:All articles needing examples | #UCB_Category 691/867 |
|||
(42 intermediate revisions by 14 users not shown) | |||
Line 1:
{{Short description|
{{Use mdy dates|date=January 2024}}
A '''video coding format'''{{efn|The term ''video coding'' includes [[Advanced Video Coding]], [[High Efficiency Video Coding]], and [[Video Coding Experts Group]].<ref>{{cite web|url=http://654lab.webstarts.com/uploads/csvt_overview.pdf|title=Overview of the H.264 / AVC Video Coding Standard|publisher=IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY|date=July 2003|author1=Thomas Wiegand | author1-link=Thomas Wiegand |author2=Gary J. Sullivan |author3=Gisle Bjontegaard |author4=Ajay Luthra |name-list-style=amp }}</ref>}} (or sometimes '''video compression format''') is
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'''. There are [[de facto standard|''de facto'' standards]] and 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 [[container format (digital)#Multimedia container formats|multimedia container format]] such as [[Audio Video Interleave|AVI]], [[
==Distinction between ''format'' and ''codec''==
A ''format'' is the layout plan for data produced or consumed by a ''codec''.
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=May 23, 2016}}</ref> The [[VP9]] specification calls the video coding format VP9 itself a ''codec''.<ref>{{cite web|url=https://storage.googleapis.com/downloads.webmproject.org/docs/vp9/vp9-bitstream-specification-v0.6-20160331-draft.pdf|title=VP9 Bitstream & Decoding Process Specification|author1=Adrian Grange |author2=Peter de Rivaz |author3=Jonathan Hunt |name-list-style=amp }}</ref>
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=May 23, 2016}}</ref> and Mozilla's<ref>{{cite web|url=https://developer.mozilla.org/en-US/docs/Web/HTML/Supported_media_formats|title=Media formats supported by the HTML audio and video elements|publisher=Mozilla|access-date=May 23, 2016}}</ref> pages listing their video
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)
==History==
The concept of [[analog video]] compression dates back to 1929, when R.D. Kell in [[United Kingdom|Britain]] proposed the concept of transmitting only the portions of the scene that changed from frame-to-frame. The concept of [[digital video]] compression dates back to 1952, when [[Bell Labs]] researchers B.M. Oliver and
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=September 20, 2019}}</ref> Digital video was introduced in the 1970s,<ref name="Ghanbari"/> initially using uncompressed [[pulse-code modulation]] (PCM), requiring high [[bitrate]]s around 45{{ndash}}200 [[Mbit/s]] for [[standard-definition]] (SD) video,<ref name="Ghanbari"/><ref name="Lea"/> which was up to 2,000 times greater than the [[telecommunication]] [[Bandwidth (computing)|bandwidth]] (up to 100{{nbsp}}[[
===Motion-compensated DCT===
Practical [[video compression]] emerged with the development of [[motion compensation|motion-compensated]] [[Discrete cosine transform|DCT]] (MC DCT) coding,<ref name="Lea"/><ref name="Ghanbari"/> also called block motion compensation (BMC)<ref name="ITU"/> or DCT motion compensation. This is a hybrid coding algorithm,<ref name="ITU"/> which combines two key [[data compression]] techniques: [[discrete cosine transform]] (DCT) coding<ref name="Lea"/><ref name="Ghanbari"/> in the [[spatial dimension]], and predictive [[motion compensation]] in the [[temporal dimension]].<ref name="ITU"/>
DCT coding is a [[
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
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=October 13, 2019}}</ref> who developed a fast DCT algorithm with C.H. Smith and S.C. Fralick in 1977,<ref>{{cite journal |last1=Chen |first1=Wen-Hsiung |last2=Smith |first2=C. H. |last3=Fralick |first3=S. C. |title=A Fast Computational Algorithm for the Discrete Cosine Transform |journal=[[IEEE Transactions on Communications]] |date=September 1977 |volume=25 |issue=9 |pages=1004–1009 |doi=10.1109/TCOM.1977.1093941}}</ref><ref name="t81">{{cite web |title=T.81 – Digital compression and coding of continuous-tone still images – Requirements and guidelines |url=https://www.w3.org/Graphics/JPEG/itu-t81.pdf |publisher=[[CCITT]] |date=September 1992 |access-date=July 12, 2019}}</ref> and founded [[Compression Labs, Inc.|Compression Labs]] to commercialize DCT technology.<ref name="Stankovic"/> In 1979, [[Anil K. Jain (electrical engineer, born 1946)|Anil K. Jain]] and Jaswant R. Jain further developed motion-compensated DCT video compression.<ref>{{cite book |last1=Cianci |first1=Philip J. |title=High Definition Television: The Creation, Development and Implementation of HDTV Technology |date=2014 |publisher=McFarland |isbn=9780786487974 |page=63 |url=https://books.google.com/books?id=0mbsfr38GTgC&pg=PA63}}</ref><ref name="ITU"/> This led to Chen developing a practical video compression algorithm, called motion-compensated DCT or adaptive scene coding, in 1981.<ref name="ITU"/> Motion-compensated DCT later became the standard coding technique for video compression from the late 1980s onwards.<ref name="Ghanbari"/><ref name="Li">{{cite book |last1=Li |first1=Jian Ping |title=Proceedings of the International Computer Conference 2006 on Wavelet Active Media Technology and Information Processing: Chongqing, China, 29-31 August 2006 |date=2006 |publisher=[[World Scientific]] |isbn=9789812709998 |page=847 |url=https://books.google.com/books?id=FZiK3zXdK7sC&pg=PA847}}</ref>
===Video coding standards===
The first digital video coding standard was [[H.120]], developed by the [[
[[MPEG-1]], developed by the [[Moving 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]]/[[
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=November 5, 2019}}</ref> It was developed in 2003, and uses patents licensed from a number of organizations, primarily Panasonic, [[Godo kaisha|Godo Kaisha IP Bridge]] and [[LG Electronics]].<ref name="avc-patents"/> In contrast to the standard DCT used by its predecessors, AVC uses the [[Discrete cosine transform|integer DCT]].<ref name="Stankovic"/><ref name="Wang">{{cite journal |last1=Wang |first1=Hanli |last2=Kwong |first2=S. |last3=Kok |first3=C. |title=Efficient prediction algorithm of integer DCT coefficients for H.264/AVC optimization |journal=IEEE Transactions on Circuits and Systems for Video Technology |date=2006 |volume=16 |issue=4 |pages=547–552 |doi=10.1109/TCSVT.2006.871390 |
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 = August 11, 2015}}</ref> Patent status has also been a major point of contention for the choice of which video formats the mainstream [[web browser]]s will support inside the [[
The current-generation video coding format is [[HEVC]] (H.265), introduced in 2013. AVC uses the integer DCT with 4x4 and 8x8 block sizes, and HEVC uses integer DCT and [[Discrete sine transform|DST]] transforms with varied block sizes between 4x4 and 32x32.<ref name="apple">{{cite web |last1=Thomson |first1=Gavin |last2=Shah |first2=Athar |title=Introducing HEIF and HEVC |url=https://devstreaming-cdn.apple.com/videos/wwdc/2017/503i6plfvfi7o3222/503/503_introducing_heif_and_hevc.pdf |publisher=[[Apple Inc.]] |year=2017 |access-date=August 5, 2019}}</ref> HEVC is heavily patented, mostly by [[Samsung Electronics]], [[
==List of video coding standards==
Line 59:
! Popular implementations
|- style="text-align:center;"
| [[
| [[H.120]]
| 1984 ||[[
| [[VCEG]]
| {{n/a}}
Line 71:
| 1988 || CCITT
| VCEG
| [[Hitachi]], [[PictureTel]], [[Nippon Telegraph and Telephone|NTT]], [[BT
| {{n/a}}
| [[Videoconferencing]], [[videotelephony]]
Line 79:
| [[Joint Photographic Experts Group|JPEG]]
| [[Joint Photographic Experts Group|JPEG]]
| [[ISO]] / [[Open
| {{n/a}}
| [[QuickTime]]
|- style="text-align:center;"
| [[MPEG-1 Part 2]]
| 1993||[[
| [[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=July 10, 2019}}</ref>
Line 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=July 7, 2019 |archive-date=May 29, 2019 |archive-url=https://web.archive.org/web/20190529164140/https://www.mpegla.com/wp-content/uploads/m2-att1.pdf |url-status=dead }}</ref>
| 29%
| [[DVD|DVD Video]], [[Blu-ray]], [[DVB]], [[ATSC]], [[SVCD]], [[SDTV]]
Line 100:
| 1995
| IEC
| [[IEC]]
| Sony, [[Panasonic]]
| {{unk}}
Line 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=July 6, 2019 |archive-date=July 6, 2019 |archive-url=https://web.archive.org/web/20190706184814/https://www.mpegla.com/wp-content/uploads/m4v-att1.pdf |url-status=dead }}</ref>
| {{unk}}
| Videoconferencing, videotelephony, [[H.320]], [[
|- style="text-align:center;"
| [[MPEG-4 Part 2]] (MPEG-4 Visual)
Line 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=July 6, 2019 |archive-date=January 25, 2023 |archive-url=https://web.archive.org/web/20230125102953/https://www.mpegla.com/wp-content/uploads/avc-att1.pdf |url-status=dead }}</ref>
| 91%
| [[Blu-ray]], [[HD DVD]], [[HDTV]] ([[
|- style="text-align:center;"
| [[Theora]]
| 2004
| [[
| [[
| {{n/a}}
| {{unk}}
Line 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=July 11, 2019 |archive-date=July 6, 2019 |archive-url=https://web.archive.org/web/20190706203225/https://www.mpegla.com/wp-content/uploads/hevc-att1.pdf |url-status=dead }}</ref>
| {{unk}}
| Blu-ray, Internet video
Line 161:
| ISO, IEC, ITU-T
| MPEG, VCEG
| Samsung, [[
| 43%
|[[
|- style="text-align:center;"
| [[AV1]]
Line 171:
| {{n/a}}
| 7%
| [[
|- style="text-align:center;"
| [[Versatile Video Coding]] (VVC / H.266)
Line 183:
==Lossless, lossy, and uncompressed==
Consumer video is generally compressed using [[
[[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
==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=March 6, 2013|archive-date=May 10, 2013|archive-url=https://web.archive.org/web/20130510133020/http://shodh.inflibnet.ac.in/bitstream/123456789/821/5/05_hypothesis.pdf|url-status=dead}}</ref>
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
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=February 10, 2022|website=www.w3.org}}</ref>
==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
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"/>
|