Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Advanced Video Coding
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== Implementations == [[File:YouTube H264 video with Opus audio stat screenshot.png|upright=1.2|thumb|A YouTube video statistics with AVC (H.264) video codec and [[Opus (audio format)|Opus]] audio format]] In 2009, the [[WHATWG|HTML5 working group]] was split between supporters of Ogg [[Theora]], a free video format which is thought to be unencumbered by patents, and H.264, which contains patented technology. As late as July 2009, Google and Apple were said to support H.264, while Mozilla and Opera support Ogg Theora (now Google, Mozilla and Opera all support Theora and [[WebM]] with [[VP8]]).<ref>{{cite web|url=https://arstechnica.com/open-source/news/2009/07/decoding-the-html-5-video-codec-debate.ars |title=Decoding the HTML 5 video codec debate |website=Ars Technica |date=2009-07-06 |access-date=2011-01-12}}</ref> Microsoft, with the release of Internet Explorer 9, has added support for HTML 5 video encoded using H.264. At the Gartner Symposium/ITXpo in November 2010, Microsoft CEO Steve Ballmer answered the question "HTML 5 or [[Silverlight]]?" by saying "If you want to do something that is universal, there is no question the world is going HTML5."<ref>{{cite web|url=https://www.youtube.com/watch?v=iI47b3a9cEI | archive-url=https://ghostarchive.org/varchive/youtube/20211030/iI47b3a9cEI| archive-date=2021-10-30|title= Steve Ballmer, CEO Microsoft, interviewed at Gartner Symposium/ITxpo Orlando 2010 |publisher=Gartnervideo |date=November 2010|access-date=2011-01-12}}{{cbignore}}</ref> In January 2011, Google announced that they were pulling support for H.264 from their Chrome browser and supporting both Theora and WebM/VP8 to use only open formats.<ref>{{cite web|url=https://blog.chromium.org/2011/01/html-video-codec-support-in-chrome.html |title=HTML Video Codec Support in Chrome |date=2011-01-11 |access-date=2011-01-12}}</ref> On March 18, 2012, [[Mozilla]] announced support for H.264 in Firefox on mobile devices, due to prevalence of H.264-encoded video and the increased power-efficiency of using dedicated H.264 decoder hardware common on such devices.<ref>{{cite web|url=https://hacks.mozilla.org/2012/03/video-mobile-and-the-open-web/ | title=Video, Mobile, and the Open Web|date=2012-03-18|access-date=2012-03-20}}</ref> On February 20, 2013, Mozilla implemented support in Firefox for decoding H.264 on Windows 7 and above. This feature relies on Windows' built in decoding libraries.<ref>{{cite web|title=WebRTC enabled, H.264/MP3 support in Win 7 on by default, Metro UI for Windows 8 + more β Firefox Development Highlights|url=https://hacks.mozilla.org/2013/02/webrtc-enabled-h-264mp3-support-in-win-7-on-by-default-metro-ui-for-windows-8-more-firefox-development-highlights/|work=hacks.mozilla.org|publisher=mozilla|access-date=2013-03-15|date=2013-02-20}}</ref> Firefox 35.0, released on January 13, 2015, supports H.264 on OS X 10.6 and higher.<ref>{{cite web|url=https://www.mozilla.org/en-US/firefox/35.0/releasenotes/|title=Firefox β Notes (35.0)|website=Mozilla}}</ref> On October 30, 2013, [[Rowan Trollope]] from [[Cisco Systems]] announced that Cisco would release both binaries and source code of an H.264 video codec called [[OpenH264]] under the [[Simplified BSD license]], and pay all royalties for its use to MPEG LA for any software projects that use Cisco's precompiled binaries, thus making Cisco's OpenH264 ''binaries'' free to use. However, any software projects that use Cisco's source code instead of its binaries would be legally responsible for paying all royalties to MPEG LA. Target CPU architectures include x86 and ARM, and target operating systems include Linux, Windows XP and later, Mac OS X, and Android; iOS was notably absent from this list, because it does not allow applications to fetch and install binary modules from the Internet.<ref>{{cite web |url=http://blogs.cisco.com/collaboration/open-source-h-264-removes-barriers-webrtc |title=Open-Sourced H.264 Removes Barriers to WebRTC |date=2013-10-30 |access-date=2013-11-01 |archive-url=https://web.archive.org/web/20150706222941/http://blogs.cisco.com/collaboration/open-source-h-264-removes-barriers-webrtc |archive-date=July 6, 2015 |url-status=dead }}</ref><ref name=OpenH264faq>{{cite web|url=http://www.openh264.org/faq.html |title=Cisco OpenH264 project FAQ |access-date=2021-09-26}}</ref><ref>{{cite web|url=https://github.com/cisco/openh264/blob/master/LICENSE |title=OpenH264 Simplified BSD License |website=[[GitHub]] |date=2013-10-27 |access-date=2013-11-21}}</ref> Also on October 30, 2013, [[Brendan Eich]] from Mozilla wrote that it would use Cisco's binaries in future versions of Firefox to add support for H.264 to Firefox where platform codecs are not available.<ref>{{cite web|url=https://blog.mozilla.org/blog/2013/10/30/video-interoperability-on-the-web-gets-a-boost-from-ciscos-h-264-codec/ |title=Video Interoperability on the Web Gets a Boost From Cisco's H.264 Codec |date=2013-10-30 |access-date=2013-11-01}}</ref> Cisco published the source code to OpenH264 on December 9, 2013.<ref>{{cite web|url=https://github.com/cisco/openh264/commit/59dae50b1069dbd532226ea024a3ba3982ab4386|title=Updated README Β· cisco/openh264@59dae50|website=GitHub}}</ref> Although iOS was not supported by the 2013 Cisco software release, Apple updated its Video Toolbox Framework with [[iOS 8]] (released in September 2014) to provide direct access to hardware-based H.264/AVC video encoding and decoding.<ref name=OpenH264faq/> === Software encoders === {| class="wikitable" |+ AVC software implementations ! Feature ! [[QuickTime]] ! [[Nero Digital|Nero]] ! [[OpenH264]] ! [[x264]] ! [[MainConcept|Main-<br />Concept]] ! Elecard ! [[Telestream Episode| TSE ]] ! [[ProCoder|Pro-<br />Coder]] ! [[Avivo]] ! [[Elemental Technologies|Elemental]] ! [[Integrated Performance Primitives| IPP ]] |- ! B slices | {{yes}} || {{yes}} || {{yes}} || {{yes}} || {{yes}} || {{yes}} || {{yes}} || {{yes}} || {{no}} || {{yes}} || {{yes}} |- ! Multiple reference frames | {{yes}} || {{yes}} || {{yes}} || {{yes}} || {{yes}} || {{yes}} || {{yes}} || {{yes}} || {{no}} || {{yes}} || {{yes}} |- ! Interlaced coding (PicAFF, MBAFF) | {{no}} || {{Yes-No|MBAFF}} || {{Yes-No|MBAFF}} || {{Yes-No|MBAFF}} || {{yes}} || {{yes}} || {{no}} || {{yes}} || {{Yes-No|MBAFF}} ||{{yes}} || {{no}} |- ! CABAC entropy coding | {{yes}} || {{yes}} || {{yes}} || {{yes}} || {{yes}} || {{yes}} || {{yes}} || {{yes}} || {{no}} || {{yes}} || {{yes}} |- ! 8Γ8 vs. 4Γ4 transform adaptivity | {{no}} || {{yes}} || {{yes}} || {{yes}} || {{yes}} || {{yes}} || {{yes}} || {{yes}} || {{no}} || {{yes}} || {{yes}} |- ! Quantization scaling matrices | {{no}} || {{no}} || {{yes}} || {{yes}} || {{yes}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} |- ! Separate C<sub>B</sub> and C<sub>R</sub> QP control | {{no}} || {{no}} || {{yes}} || {{yes}} || {{yes}} || {{yes}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} |- ! Extended chroma formats | {{no|No}} || {{no|No}} || {{no|No}} || {{yes|4:0:0<ref>[http://code.videolan.org/videolan/x264/commit/698c5a32e63a3ed6b976ed196abe479efd78530b "x264 4:0:0 (monochrome) encoding support"], Retrieved 2019-06-05.</ref><br />4:2:0<br />4:2:2<ref>[http://code.videolan.org/videolan/x264/commit/5b0cb86f27ba0c5433c404bed51c06a5124dfb49 "x264 4:2:2 encoding support"], Retrieved 2019-06-05.</ref><br />4:4:4<ref>[http://code.videolan.org/videolan/x264/commit/a93e4c4a75d05e7bf379cb9a39caad57f615eeb0 "x264 4:4:4 encoding support"], Retrieved 2019-06-05.</ref> }} || {{Yes-No|4:2:2}} || {{Yes-No|4:2:2}} || {{Yes-No|4:2:2}} || {{no|No}} || {{no|No}} || {{yes-no|4:2:0<br />4:2:2}} || {{no|No}} |- ! Largest sample depth (bit) | {{Yes-No|8}} || {{Yes-No|8}} || {{Yes-No|8}} || {{yes|10<ref>[http://code.videolan.org/videolan/x264/commit/c91f43a4b09dab84953f417e6d6662ec0fa7acb1 "x264 support for 9 and 10-bit encoding"], Retrieved 2011-06-22.</ref>}} || {{yes|10}} || {{Yes-No|8}} || {{Yes-No|8}} || {{Yes-No|8}} || {{Yes-No|8}} || {{Yes|10}} || {{yes|12}} |- ! Predictive lossless coding | {{no}} || {{no}} || {{no}} || {{yes|Yes<ref>[http://code.videolan.org/videolan/x264/commit/a9e86d248d8d5f1e892159a7d86dcea2f884a859 "x264 replace High 4:4:4 profile lossless with High 4:4:4 Predictive"], Retrieved 2011-06-22.</ref>}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} || {{no}} |} === Hardware <span class="anchor" id="HW-BASED"></span>=== {{See also|H.264/MPEG-4 AVC products and implementations}} Because H.264 encoding and decoding requires significant computing power in specific types of arithmetic operations, software implementations that run on general-purpose CPUs are typically less power efficient. However, the latest{{when|date=January 2020}} quad-core general-purpose x86 CPUs have sufficient computation power to perform real-time SD and HD encoding. Compression efficiency depends on video algorithmic implementations, not on whether hardware or software implementation is used. Therefore, the difference between hardware and software based implementation is more on power-efficiency, flexibility and cost. To improve the power efficiency and reduce hardware form-factor, special-purpose hardware may be employed, either for the complete encoding or decoding process, or for acceleration assistance within a CPU-controlled environment. CPU based solutions are known to be much more flexible, particularly when encoding must be done concurrently in multiple formats, multiple bit rates and resolutions ([[multi-screen video]]), and possibly with additional features on container format support, advanced integrated advertising features, etc. CPU based software solution generally makes it much easier to load balance multiple concurrent encoding sessions within the same CPU. The 2nd generation [[Intel]] "[[Sandy Bridge]]" [[Intel Core|Core i3/i5/i7]] processors introduced at the January 2011 CES ([[Consumer Electronics Show]]) offer an on-chip hardware full HD H.264 encoder, known as [[Intel Quick Sync Video]].<ref>{{cite web |url=http://software.intel.com/en-us/articles/quick-reference-guide-to-intel-integrated-graphics/ |title=Quick Reference Guide to generation Intel Core Processor Built-in Visuals |publisher=Intel Software Network |date=2010-10-01 |access-date=2011-01-19}}</ref><ref>{{cite web |url=http://www.intel.com/content/www/us/en/architecture-and-technology/quick-sync-video/quick-sync-video-general.html |title=Intel Quick Sync Video|publisher=www.intel.com |date=2010-10-01 |access-date=2011-01-19}}</ref> A hardware H.264 encoder can be an [[Application-specific integrated circuit|ASIC]] or an [[Field-programmable gate array|FPGA]]. ASIC encoders with H.264 encoder functionality are available from many different semiconductor companies, but the core design used in the ASIC is typically licensed from one of a few companies such as [[Chips&Media]], Allegro DVT, [[On2]] (formerly Hantro, acquired by Google), [[Imagination Technologies]], NGCodec. Some companies have both FPGA and ASIC product offerings.<ref>{{cite web |url=http://www.design-reuse.com/sip/?q=H.264+encoder |title=Design-reuse.com |publisher=Design-reuse.com |date=1990-01-01 |access-date=2010-05-17}}</ref> Texas Instruments manufactures a line of ARM + DSP cores that perform DSP H.264 BP encoding 1080p at 30 fps.<ref>{{cite web |url=http://processors.wiki.ti.com/index.php/Category:DM6467 |title=Category:DM6467 - Texas Instruments Embedded Processors Wiki |publisher=Processors.wiki.ti.com |date=2011-07-12 |access-date=2011-07-30 |archive-date=July 17, 2011 |archive-url=https://web.archive.org/web/20110717053351/http://processors.wiki.ti.com/index.php/Category:DM6467 |url-status=dead }}</ref> This permits flexibility with respect to codecs (which are implemented as highly optimized DSP code) while being more efficient than software on a generic CPU.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)