H.264/MPEG-4 AVC

H.264，又称为MPEG-4第10部分，高级视频编码（MPEG-4 Part 10, Advanced Video Coding，缩写为MPEG-4 AVC）是一种面向块，基于运动补偿的 。到2014年，它已经成为高精度视频录制、压缩和发布的最常用格式之一。第一版标准的最终草案于2003年5月完成。
H.264/AVC项目的目的是为了创建一个更佳的视频压缩标准，在更低的比特率的情况下依然能够提供良好视频质量的标准（如，一半或者更少于MPEG-2,H.263,或者MPEG-4 Part2 ）。同时，还要不会太大的增加设计的复杂性。H.264的另外一个目标是提供足够的灵活性，以允许该标准能够应用于各种各样的网络和系统的各应用上，包括低和高比特率，低和高分辨率视频，广播，DVD存储，RTP / IP分组网络和ITU-T多媒体电话系统。H.264标准可以被视为由多个不同的应用框架 / 配置文件（profiles）组成的“标准系列”。
H.264/MPEG-4 AVC是一种面向块的基于运动补偿的编解码器标准。由ITU-T视频编码专家组与ISO/IEC联合工作组——即动态图像专家组（MPEG）——联合组成的联合视频组（JVT，Joint Video Team）开发。因ITU-T H.264标准和ISO/IEC MPEG-4 AVC标准（正式名称是ISO/IEC 14496-10—MPEG-4第十部分，高级视频编码）有相同的技术内容，故被共同管理。
H.264因其是蓝光碟片的其中一种编解码标准而著名，所有蓝光碟片播放器都必须能解码H.264。它也被广泛用于网络流媒体数据如Vimeo、YouTube、以及iTunes Store，网络软件如Adobe Flash Player和Microsoft Silverlight，以及各种高清晰度电视地面电视（DVB-T、DVB-T2）、有线电视（DVB-C）以及卫星（DVB-S和DVB-S2）。
概述.
H.264/AVC项目是想创建一种视频标准。与旧标准相比，它能够在更低带宽下提供优质视频（换言之，只有MPEG-2，H.263或MPEG-4第2部分的一半带宽或更少），也不增加太多设计复杂度使得无法实现或实现成本过高。另一目的是提供足够的灵活性以在各种应用、网络及系统中使用，包括高、低带宽，高、低视频分辨率，广播，DVD存储，RTP/IP网络，以及ITU-T多媒体电话系统。
H.264标准可以被看作一个“标准家族”，成员有下面描述的各种配置（profile）。一个特定的解码器至少支持一种，但不必支持所有的。解码器标准描述了它可以解码哪些配置。
H.264的命名遵循了ITU-T的命名约定，它是VCEG视频编码标准H.26x线中的一员；MPEG-4 AVC的命名来自ISO/IEC MPEG的命名约定，它是ISO/IEC 14496的第10部分，该协议族被称为MPEG-4。该标准是作为VCEG和MPEG的一部分开发的，此前在ITU-T作为VCEG的项目，叫做H.26L。所以常用于指代此标准的名称有H.264/AVC，AVC/H.264，H.264/MPEG-4 AVC，或MPEG-4/H.264 AVC，以强调共同遗产。有时，也用“JVT编解码”指代它，以指明是JVT（联合开发组）组织开发的。（这种伙伴关系和多命名并不少见。例如，视频编码标准MPEG-2也出现在MPEG和ITU-T的伙伴关系中，MPEG-2视频在ITU-T社区中称作H.262。）一些软件（如VLC media player）内部标识此标准为AVC1。
H.264/AVC标准化的第一个版本于2003年5月完成。在第一个扩展原始标准的项目中，JVT开发了高精度拓展（Fidelity Range Extensions，FRExt）。该拓展通过支持更高的像素精度（包括10位元和12位元像素精度）和支持更高的色度抽样率（包括YUV 4:2:2和YUV 4:4:4）来支持更高精度的视频编码。该拓展加入了一些新的特性（比如自适应的4x4和8x8的整数变换，用户自定义量化加权矩阵，高效的帧间无失真编码，支持新增的色度空间和色度参差变换）。该拓展的设计于2004年7月完成，草案也于2004年9月完成。
对标准进一步的最新扩展包括：增加五个新的配置，主要用于专业应用；增加扩展全范围（extended-gamut）色彩空间的支持；定义附加长宽比标识；定义“补充增强信息”的两个附加类型（滤波后提示和色调映射）；以及废弃一个根据产业反馈应该另行设计的早期FRExt配置。
接着加入标准的主要特性是可适应视频编码（Scalable Video Coding，SVC）。据H.264/AVC附件G，SVC允许码流结构中包含遵循标准的子码流，这种称作“基础层”的码流要能够为不支持SVC的H.264/AVC编解码器所解码。为达成在时间上的可适应性，在推导子码流时，从码流中移除了完整访问单元（complete access unit）。这种情况下，要按相应方式来构造码流中的高层语法和帧间预测参考帧。另一方面，为达成空间和质量的可适应性（换言之，低分辨率/低质量作为子码流而不是主码流），推导子码流时移除了NAL（网络抽象层）。这种情况下，层间预测（暨，从低分辨率/低质量信号数据中预测高分辨率/高质量信号）常被用于提高编码效率。可适应视频编码扩展于2007年11月完成。
下一个加入标准的主要特性是多视图编码（Multiview Video Coding，MVC）。据H.264/AVC附件H，MVC使得码流结构可以表达一个视频场景的不止一个视图。该功能的一个重要例子是3D立体视频编码。MVC的工作中开发了两个配置：多视图高配置（Multiview High Profile）支持任意数量的视图，立体高配置（Stereo High Profile）是为双视图立体视频特别设计的。多视图编码扩展于2009年11月完成。
技术细节.
H.264/AVC包含了一系列新的特征，使得它比起以前的编解码器不但能够更有效的进行编码，还能在各种网络环境下的应用中使用。这些新特性包括：
上述这些技术，与其它技术的结合，使得H.264比起以前的视频编解码能够带来性能上显著的提高，并在各种不同的环境下达成更广泛的应用。H.264在压缩性能上比起MPEG-2有很大的提高，在相同的图像质量下，码率可以减少到一半或者更少。
和MPEG的其它视频标准一样，H.264/AVC也提供了一个参考软件，并可以免费下载。它的主要目的是提供一个演示H.264/AVC各种功能的演示平台，而不是作为一个直接的应用平台。目前在MPEG也同时在进行一些硬件参考设计的实现。
专利许可.
和MPEG-2第一部分、第二部分，MPEG-4第二部分一样，使用H.264/AVC的产品制造商和服务提供商需要向他们的产品所使用的专利的持有者支付专利许可费用。这些专利许可的主要来源是一家称为MPEG-LA LLC的私有组织，该组织和MPEG标准化组织没有任何关联，但是该组织也管理著MPEG-2第一部分系统、第二部分视频、MPEG-4第二部分视频和其它一些技术的专利许可。
其他的专利许可则需要向另一家称为VIA Licensing的私有组织申请，这家公司另外也管理偏向音频压缩的标准如MPEG-2 AAC及MPEG-4 Audio的专利许可。
应用.
光碟储存.
当时竞争的两种下一代光碟格式技术，都已经计划在2005年下半年，将H.264/MPEG-4 AVC作为必需的编码格式，包括：
数位电视.
欧洲与北美洲地区.
欧洲的数位电视广播（DVB）标准组织，于2004年下半年通过了采用H.264/MPEG-4 AVC于欧洲地区进行数位电视广播，而法国总理让-皮埃尔·拉法兰于2004年宣布法国将会选用H.264/MPEG-4 AVC作为高画质电视接收器和数位电视地面广播服务的付费电视频道的一项要求。
另外，美国正在考虑使用H.264/MPEG-4 AVC，作为数位电视地面广播的视讯编码规格。
亚洲地区.
至于亚洲地区，日本所采用的ISDB数位电视广播制式，提供的ISDB行动电视广播服务，使用了H.264/MPEG-4 AVC编码，而其中包括了以下的电视台：
在台湾以DVB-T数位电视广播格式进行高解析度无线数位电视频道，自2020年10月12日起，均采用H.264/MPEG-4 AVC作为视讯编码格式。
香港的无线电视、港台电视与香港电视娱乐的所有频道都使用H.264/MPEG-4 AVC作为编码制式。
澳门方面，澳广视的所有自家及转播频道均采用H.264作为视讯编码格式。
韩国也正在考虑改使用H.264/MPEG-4 AVC，作为数位电视无线广播的视讯编码规格。
卫星数码电视.
卫星数码电视广播方面，以下数间服务供应商亦采用了该编码标准，包括：
网络电视.
南京电信在南京推广的IPTV业务由于受带宽限制，将原有4M左右码流的MPEG-2格式的标清卫星节目用H.264重新编码约为2.23M码流的节目播放。
通讯与多媒体.
第三代移动通信合作组织（3GPP）已经在第六次发布中批准H.264/AVC作为其移动多媒体电话服务标准的可选技术。
美国国防部下的运动图像标准协会（MISB for The Motion Imagery Standards Board）已经接受H.264/AVC为其核心应用的推荐视频编解码器。
互联网工程工作小组（IETF）已经完成了一个负载打包格式（RFC 3984）作为在其实时传输协议（RTP）上传输H.264/AVC码流的打包办法。
互联网流媒体协会（ISMA for ）已经接受H.264/AVC作为其ISMA 2.0的技术规范。
MPEG组织将H.264/AVC完全的集成进入了它的系统协议（例如MPEG-2和MPEG-4系统）和ISO媒体格式协议。
国际电信联盟ITU-T标准组已经采纳H.264/AVC作为其H.32x系列的多媒体电话系统的系统规范的一部分。ITU-T的采纳，使得H264/AVC已经被广泛的使用在视频会议系统中，并获得了视频电话主要的两家产品提供商（Polycom和Tandberg的支持。实际上所有新的视频会议产品都支持H.264/AVC。
H.264将很可能被各种视频点播服务（Video-On-Demand，VOD）使用，用来在互联网上提供电影和电视节目直接到个人电脑的点播服务。
产品和实现.
有几家公司正在制作能够对H.264/AVC视频进行解码的可编程芯片。2005年1月，博通（Broadcom）的BCM7411、科胜讯公司（Conexant）的CX2418X、Neomagic的MiMagic 6和意法半导体（STMicroelectronics）的STB7100等几家公司推出的产品都提供了可供测试的样片。Sigma Designs预计在2005年3月提供样片。这些芯片的出现将极大的推动低成本的能够播放标准画质和高画质分辨率的H.264/AVC视频的快速推广。除了Neomagic的芯片是针对低能耗应用以外，其他四种晶片都具有播放高画质分辨率视频的能力，而且大部分都将支持标准中的High Profile。
苹果公司已经将H.264集成进入Mac OS X版本v10.4（暱称Tiger），并于2005年5月发布了支持H.264的QuickTime版本7.0。2005年4月苹果公司升级了软件DVD Studio Pro以支持授权的高画质格式的内容。该软件支持将HD-DVD格式的内容刻录到标准DVD或者HD-DVD媒体上。为了播放刻录在标准DVD上的HD-DVD内容，所需要的硬件是PowerPC G5、软件是Apple DVD Player v4.6，以及Mac OS X v10.4或者更新版本。
Envivio公司已经可以提供针对H.264组播用的标准画质实时编码器和离线的高画质（720p、1080i、1080p）编码器。Envivio公司同时提供针对windows、Linux和Macintosh平台的H.264解码器，H.264视频伺服器和授权工具。
Modulus Video公司提供广播、电话用广播质量的H.264标准画质实时编码器，并宣布将与2005年中提供高画质实时编码器（ME6000）。该公司曾在2004年4月在NAB上演示过高画质实时编码器，并获得"Pick Hit"奖项。该公司使用LSI Logic的技术。
Tandberg television公司推出了EN5990实时编码器。DirecTV和BSkyB已经把EN5990编码器用于它们的卫星直播服务（DBS）。
哈雷（Harmonic）也推出了型号DiviCom MV 100的实时编码器，。法国的广播商TF1和Video Networks Limited（VNL）在伦敦的家用视频点播服务已经宣布使用该产品。佩斯公司（Pace Micro）为一些主要的直播卫星公司提供了机顶盒。
Sony公司的PSP在硬件上提供对H.264 Main Profile Level 3解码的支持。
Nero Digital公司推出的由Nero AG和Ateme共同开发的软件包提供了对H.264编码的支持，并在Doom9获得"Pick Hit"[https://web.archive.org/web/20050523235314/http://www.doom9.org/codecs-104-1.htm] 奖项。
Sorenson提供了H.264实现方式。相关的编解码软件Sorenson AVC Pro codec已经包含在Sorenson Squeeze 4.1 for MPEG-4中。
自由软件版x264的编解码软件采用GPL授权方式下载。
InterVideo的WinDVD 7于2005年6月24日正式发布。发布版本分为WinDVD 7 Gold黄金版和WinDVD 7 Platinum白金版，白金版支持H.264/MPEG-4 AVC解码播放，推荐配置为P4 3.6G。（不属于原文）
ATI于2005年10月5日发布的Radeon X1300、X1600、X1800系列图形芯片支持H.264硬件加速解码。
Matrox公司推出的Matrox Mxo2 mini with MAX产品提供了H.264加速运算的功能，可以更快的输出档案。
设计.
The maximum bit rate for High Profile is 1.25 times that of the Base/Extended/Main Profiles, 3 times for Hi10P, and 4 times for Hi422P/Hi444PP.
The number of luma samples is 16x16=256 times the number of macroblocks (and the number of luma samples per second is 256 times the number of macroblocks per second).