首页>>科技 >>内容

mp4是mpeg4格式吗,H.264(MPEG)-4AVC

发布时间:2023-11-01 22:20:07编辑:温柔的背包来源:

mp4是mpeg4格式吗,H.264(MPEG)-4AVC

很多朋友对mp4是mpeg4格式吗,H.264(MPEG)-4AVC不是很了解,每日小编刚好整理了这方面的知识,今天就来带大家一探究竟。

mp4是mpeg4格式吗,H.264(MPEG)-4AVC

H.264(MPEG)-4AVC版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议。转载时请附上原文出处链接及本声明。本文链接:https://blog.csdn.net/Tosonw/article/details/89251677

H.264 或MPEG-4 第10 部分,高级视频编码(MPEG-4 AVC) 是一种基于块的运动补偿视频压缩标准。截至2014 年,它是记录、压缩和分发视频内容最常用的格式之一。 1支持高达81924320的分辨率,包括8K UHD。 2

H.264/AVC 项目的目的是创建一个标准,能够以比以前标准低得多的比特率(即MPEG-2、H.263 或MPEG-2 的比特率一半或更多)提供良好的视频质量。低的)。 4 第2 部分),不会将设计的复杂性增加到实施起来不切实际或成本过高的程度。另一个目标是提供足够的灵活性,使该标准能够应用于各种网络和系统上的各种应用,包括低比特率和高比特率、低分辨率和高分辨率视频、广播、DVD 存储、RTP/IP 数据包网络和ITU-T 多媒体电话系统。 H.264 标准可以被视为由许多不同配置文件组成的“标准系列”。特定解码器解码至少一个但不一定是所有配置文件。解码器规范描述了可以解码哪些配置文件。 H.264 通常用于有损压缩,尽管也可以在有损编码图像中创建真正无损的编码区域,或者支持整个编码无损的罕见用例。

H.264 由ITU-T 视频编码专家组(VCEG) 与ISO/IEC JTC1 运动图像专家组(MPEG) 共同开发。该项目合作伙伴称为联合视频团队(JVT)。 ITU-T H.264 标准和ISO/IEC MPEG-4 AVC 标准(正式名称为ISO/IEC 14496-10-MPEG-4 第10 部分,高级视频编码)共同维护,因此具有相同的技术内容。该标准第一版的最终起草工作于2003年5月完成,并在后续版本中添加了其功能的各种扩展。高效视频编码(HEVC)、H.265 和MPEG-H Part 2 是同一组织开发的H.264/MPEG-4 AVC 的后续版本,而早期的标准仍然普遍使用。

H.264 可能是最著名的,它是蓝光光盘的视频编码标准之一;所有蓝光光盘播放器都必须能够解码H.264。它还广泛用于流媒体互联网源,例如来自Vimeo、YouTube 和iTunes Store 的视频、Web 软件(例如Adobe Flash Player 和Microsoft Silverlight)以及各种地面HDTV 广播(ATSC、ISDB-T、DVB) - T或DVB-T2)、有线(DVB-C)和卫星(DVB-S 和DVB-S2)。

H.264 受各方拥有的专利保护。涵盖H.264 所需的大多数(但不是全部)专利的许可证由专利池MPEG LA 管理。 3 H.264 专利技术的商业使用需要向MPEG LA 和其他专利所有者支付特许权使用费。 MPEG LA 允许使用H.264 技术向最终用户免费传输互联网视频,思科系统公司代表其开源H.264 编码器二进制文件的用户向MPEG LA 支付版税。

H.264 名称遵循ITU-T 命名约定,该标准是VCEG 视频编码标准H.26x 系列的成员; MPEG-4 AVC 名称遵循ISO/IEC MPEG 中的命名约定,其标准为ISO/IEC Part 10 of 14496,ISO/IEC 14496 是一套称为MPEG-4 的标准。该标准是在ITU-T 称为H.26L 的VCEG 项目之后,VCEG 和MPEG 合作开发的。因此,该标准经常使用H.264/AVC、AVC/H.264、H.264/MPEG-4AVC 或MPEG-4/H.264 AVC 等名称来引用,以强调共同的遗产。有时,它也被称为“JVT 编解码器”,指的是开发它的联合视频组(JVT) 组织。 (这种合作伙伴关系和多种命名法并不少见。例如,称为MPEG-2 的视频压缩标准也源自MPEG 和ITU-T 之间的合作伙伴关系,其中MPEG-2 视频被ITU-T 社区称为H.262 4) 一些软件程序(例如VLC媒体播放器)在内部将该标准标识为AVC1。

历史1998 年初,视频编码专家组(VCEG-ITU-T SG16 Q.6) 发出了一项名为H.26L 的项目征集提案,其目标是使编码效率加倍(这意味着将所需的比特率减半) )与各种应用中使用的任何其他现有视频编码标准相比,对于给定的保真度水平。 VCEG 由Gary Sullivan(微软,前身为PictureTel USA)担任主席。新标准的初稿设计于1999年8月通过。2000年,Thomas Wiegand(德国海因里希赫兹研究所)成为VCEG联合主席。

2001 年12 月,VCEG 和运动图像专家组(MPEG-ISO/IEC JTC 1/SC 29/WG 11) 组建了联合视频组(JVT),其章程最终确定了视频编码标准。 [5] 该规范于2003 年3 月正式批准。JVT 由Gary Sullivan、Thomas Wiegand 和Ajay Luthra(美国摩托罗拉:后来的美国Arris)担任主席。 2004 年6 月,保真度范围扩展(FRExt) 项目最终确定。从2005 年1 月到2007 年11 月,JVT 致力于通过称为可扩展视频编码(SVC) 的附件(G) 扩展H.264/AVC 的可扩展性。 JVT 管理团队由Jens-Rainer Ohm(德国亚琛大学)扩展。 2006年7月至2009年11月,JVT进行了多视频视频编码(MVC),这是H.264/AVC向自由观看电视和3D电视的扩展。这项工作包括开发两个新的标准配置文件:Multiview High Profile 和Stereo High Profile。

H.264/AVC 第一个版本的标准化于2003 年5 月完成。在第一个扩展原始标准的项目中,JVT 随后开发了所谓的保真度范围扩展(FRExt)。这些扩展通过支持更高的采样位深度精度和更高分辨率的颜色信息来实现更高质量的视频编码,包括所谓的Y'CbCr 4:2:2 (=YUV 4:2:2) 和Y'CbCr 4 的采样结构:4:4。 Fidelity Range Extensions 项目中还包含其他功能,例如44 和88 整数变换之间的自适应切换、编码器指定的基于感知器的量化加权矩阵、高效的图像间无损编码以及对附加色彩空间的支持。 Fidelity Range Extensions的设计工作于2004年7月完成,起草工作于2004年9月完成。

该标准最近的进一步扩展包括添加其他五个新配置文件[哪个? ] 主要面向专业应用,增加了扩展色域空间支持,定义了额外的宽高比指标,定义了两种额外类型的“补充增强信息”(滤镜后提示和色调映射),并弃用了之前的FRExt 配置文件一(高4 :4:4 简介),行业反馈[由谁提出? ] 指令的设计应有所不同。

该标准中添加的下一个主要功能是可扩展视频编码(SVC)。 H.264/AVC 附件G 中规定,SVC 允许构建包含也符合该标准的子比特流的比特流,其中包括一种称为“基础层”的比特流,它可以由H.264/AVC 解码。支持SVC 的AVC 编解码器。对于时间比特流可伸缩性(即,存在具有比主比特流更小的时间采样率的子比特流),当导出子比特流时,从比特流中移除完整的访问单元。在这种情况下,相应地构造比特流中的高级语法和帧间预测参考图片。另一方面,对于空间和质量比特流可扩展性(即存在比主比特流具有更低空间分辨率/质量的子比特流),在导出子比特流(网络抽象层)时从比特流中删除NAL。在这种情况下,层间预测(即,从较低空间分辨率/质量信号的数据预测较高空间分辨率/质量信号)通常用于高效编码。可扩展视频编码扩展于2007 年11 月完成。

该标准中添加的下一个主要功能是多视图视频编码(MVC)。在H.264/AVC 的附件H 中指定,MVC 能够构建表示视频场景的多个视图的比特流。此功能的一个重要示例是立体3D 视频编码。 MVC 工作中开发了两个配置文件:Multiview High Profile 支持任意数量的视图,Stereo High Profile 专为双视图立体视频而设计。多视图视频编码扩展于2009年11月完成。

应用程序更多信息:使用H.264/MPEG-4 AVC 的视频服务列表:https://en.wikipedia.org/wiki/List_of_video_services_using_H.264/MPEG-4_AVC

H.264 视频格式的应用范围非常广泛,涵盖从低比特率互联网流应用到HDTV 广播和几乎无损编码的数字电影应用的所有形式的数字压缩视频。通过使用H.264,与MPEG-2 Part 2 相比,您可以节省50% 或更多的比特率。例如,据报道,H.264 可以以不到一半的比特率提供与当前MPEG-2 实现相同的数字卫星电视质量,大约为3.5 Mbit/s,而H.264/s 仅为1.5 Mbit/s。 [23]索尼声称9 Mbit/s AVC记录模式相当于HDV格式的图像质量,该格式使用大约18-25 Mbit/s。 [24]

为了确保H.264/AVC 的兼容性和顺利采用,许多标准组织都修改或添加了其视频相关标准,以便这些标准的用户可以使用H.264/AVC。蓝光光盘格式和现已停产的HD DVD 格式都将H.264/AVC High Profile 作为三种强制视频压缩格式之一。数字视频广播项目(DVB) 于2004 年底批准在广播电视中使用H.264/AVC。

美国高级电视系统委员会(ATSC) 标准机构于2008 年7 月批准H.264/AVC 在广播电视中使用,尽管该标准尚未在美国境内用于固定ATSC 广播。 [25] [26] 它还获得最新ATSC-M/H(移动/手持)标准的批准,使用H.264 的AVC 和SVC 部分。 [27]

CCTV(闭路电视)和视频监控市场已将该技术融入到许多产品中。

许多常见的DSLR 相机使用QuickTime MOV 容器中包含的H.264 视频作为本机录制格式。派生格式

AVCHD 是索尼和松下为使用H.264 设计的高清录制格式(符合H.264,同时添加其他特定于应用程序的功能和限制)。

AVC-Intra 是松下开发的仅帧内压缩格式。

XAVC 是索尼设计的一种记录格式,使用H.264/MPEG-4 AVC 5.2 级,这是该视频标准支持的最高级别。 [28] [29] XAVC 可以支持4K 分辨率(40962160 和38402160),速度高达每秒60 帧(fps)。 [28] [29] 索尼宣布推出支持XAVC 的摄像机,包括两款CineAlta 摄像机- 索尼PMW-F55 和索尼PMW-F5。 [30] Sony PMW-F55 以4K 分辨率、30 fps、300 Mbit/s 记录XAVC,以2K 分辨率、30 fps、100 Mbit/s 记录XAVC。 [31] XAVC 可以以60 fps 的速度录制4K 分辨率,并以600 Mbit/s 的速度进行4:2:2 色度子采样。 [32] [33]

派生格式AVCHD 是索尼和松下为使用H.264 设计的高清录制格式(符合H.264,同时添加其他特定于应用程序的功能和限制)。

AVC-Intra 是松下开发的仅帧内压缩格式。

XAVC 是索尼设计的一种记录格式,使用H.264/MPEG-4 AVC 5.2 级,这是该视频标准支持的最高级别。 [28] [29] XAVC 可以支持4K 分辨率(40962160 和38402160),速度高达每秒60 帧(fps)。 [28] [29] 索尼宣布支持XAVC 的摄像机包括两款CineAlta 摄像机- 索尼PMW-F55 和索尼PMW-F5。 [30] Sony PMW-F55 以4K 分辨率、30 fps、300 Mbit/s 记录XAVC,以2K 分辨率、30 fps、100 Mbit/s 记录XAVC。 [31] XAVC 可以以60 fps 的速度录制4K 分辨率,并以600 Mbit/s 的速度进行4:2:2 色度子采样。 [32] [33]

以列表格式设计这篇文章,可以更好地使用散文来呈现。如果合适的话,你可以将这篇文章转换成散文。可以使用编辑帮助。 (2016 年4 月) H.264 的功能框图https://upload.wikimedia.org/wikipedia/commons/8/82/H.264_block_diagram_with_quality_score.jpg H.264/AVC/MPEG-4 第10 部分包含许多新功能,可将视频压缩得更多比旧标准更高效,并为各种网络环境中的应用程序提供更大的灵活性。特别是,一些这样的关键功能包括: 多图像图像间预测包括以下功能:以比以前的标准更灵活的方式使用先前编码的图像作为参考,在某些情况下允许使用最多16 个参考帧(或隔行编码情况下为32 个参考字段)。在支持非IDR 帧的配置文件中,大多数级别规范应具有足够的缓冲,以允许在最大分辨率下至少有4 或5 个参考帧。这与现有标准形成鲜明对比,现有标准的限制通常为1;或者,在传统的“B-图片”(B-帧)的情况下,是两个。在大多数情况下,此特殊功能通常可以适度提高比特率和质量。 [需要引用]但在某些类型的场景中,例如具有重复动作的场景或来回切换的场景或不覆盖背景区域的场景,它可以在保持清晰度的同时显着降低比特率。可变块大小运动补偿(VBSMC),块大小为1616,小至44,可实现运动区域的精确分割。支持的亮度预测块大小包括1616、168、816、88、84、48 和44,其中许多大小可以在单个宏块中一起使用。根据所使用的色度子采样,色度预测块大小相应地更小。在B 宏块由16 个44 分区组成的情况下,每个宏块使用多个运动向量(每个分区一个或两个)的能力最多为32。每个88 或更大分区区域的运动向量可以指向到不同的参考图像。能够在B 帧中使用任何宏块类型(包括I 宏块),从而在使用B 帧时实现更高效的编码。这个特点可以从MPEG-4 ASP中看出。六抽头滤波用于导出半像素亮度样本预测,以实现更清晰的子像素运动补偿。四分之一像素运动是通过半色值的线性插值得出的,以节省处理能力。四分之一像素精度的运动补偿,准确描述运动区域的位移。对于色度,分辨率通常在垂直和水平方向减半(参见4:2:0),因此色度的运动补偿使用八分之一的色度像素网格单元。加权预测允许编码器在执行运动补偿时指定比例和偏移的使用,并在特殊情况下(例如交叉淡入淡出、交叉淡入淡出和交叉淡入淡出过渡)提供显着的性能优势。这包括B 帧的隐式加权预测和P 帧的显式加权预测。用于“帧内”编码的相邻块边缘的空间预测,而不是MPEG-2 第2 部分中的“DC”预测以及H.263v2 和MPEG-4 第2 部分中的变换系数预测:这包括亮度预测块大小为16 16、88 和44(每个宏块中只能使用一种类型)。无损宏块编码能力包括:无损“PCM宏块”表示模式,其中视频数据样本直接表示,[34]允许完美表示特定区域,并允许严格限制每个宏块的编码数据量。增强型无损宏块表示模式可以完美表示特定区域,同时通常使用比PCM 模式少得多的位数。

灵活的隔行视频编码功能,包括: 宏块自适应帧场(MBAFF) 编码,它使用宏块对结构将图像编码为帧,允许场模式下的1616 宏块(与MPEG-2 相比,其中场映射模式处理是编码到图像中的帧中,从而处理168 半宏块)。图片自适应帧场编码(PAFF 或PicAFF)允许将自由选择的图像混合编码为全帧,其中两个场组合在一起进行编码或作为单独的单个场。新的变换设计功能包括: 精确匹配的整数44 空间块变换,允许精确放置残留信号,几乎没有以前编解码器设计中常见的“振铃”。此设计在概念上类似于著名的离散余弦变换(DCT),由N. Ahmed、T.Natarajan 和K.R.Rao 于1974 年提出,离散余弦变换1 中引用了该变换。然而,它经过简化并提供了精确指定的解码。精确匹配整数88 空间块变换,允许比44 变换更有效地压缩高度相关的区域。该设计在概念上类似于众所周知的DCT,但经过简化和设计以提供精确指定的解码。针对整数变换操作在44 和88 变换块大小之间进行自适应编码器选择。对应用于色度DC 系数(在一种特殊情况下还有亮度)的主空间变换的“DC”系数执行二次Hadamard 变换,以获得平滑区域中的更多压缩。量化设计包括: 对数步长控制、更简单的比特率管理和编码器简化的逆量化缩放针对编码器选择的频率定制量化缩放矩阵针对基于感知器的量化优化环路解块滤波器,有助于防止其他基于DCT 的常见块效应图像压缩技术,带来更好的视觉外观和压缩效率。熵编码设计包括: 上下文自适应二进制算术编码(CABAC),一种了解给定上下文中语法的方法用于无损压缩视频流中逐元素概率语法元素的算法。 CABAC 比CAVLC 更有效地压缩数据,但需要更多处理来解码。上下文自适应可变长度编码(CAVLC),它是CABAC 的复杂性较低的替代方案,用于对量化变换系数值进行编码。尽管不如CABAC 复杂,但CAVLC 比其他现有设计中通常用于编码系数的方法更加精细和高效。一种常见的简单且高度结构化的可变长度编码(VLC) 技术,用于许多未由CABAC 或CAVLC 编码的语法元素,称为指数哥伦布编码(或Exp-Golomb)。丢失恢复功能包括: 网络抽象层(NAL) 定义允许在许多网络环境中使用相同的视频语法。 H.264 的一个非常基本的设计概念是生成自包含的数据包以删除重复的标头,如MPEG-4 的标头扩展代码(HEC)。 [35]这是通过从媒体流中解耦与多个切片相关的信息来实现的。高级参数的组合称为参数集。 [35] H.264规范包括两种类型的参数集:序列参数集(SPS)和图像参数集(PPS)。有效序列参数组在整个编码视频序列中保持恒定,并且有效图像参数组在编码图像内保持恒定。序列和图像参数集结构包含图像大小、采用的可选编码模式以及宏块到切片组映射等信息。 [35] 灵活宏块排序(FMO),也称为切片组和任意切片排序(ASO),它们是用于重建图片中基本区域(宏块)表示的排序的技术。 FMO 和ASO 通常被认为是错误/缺失的稳健性功能,也可用于其他目的。

数据分区(DP) 是一种将重要和不重要的语法元素分离到不同数据包中的功能,可以应用不等错误保护(UEP) 和其他类型的错误/丢失鲁棒性改进。冗余切片(RS),一种错误/丢失鲁棒性功能,允许编码器发送图像区域的附加表示(通常保真度较低),如果主要表示损坏或丢失,可以使用该附加表示。帧编号,允许创建“子序列”的功能,通过选择性地在其他图片之间包含额外的图片来实现时间可扩展性,以及检测和隐藏整个图片的丢失,这可能是由于网络数据包丢失或通道发生错误。切换切片(称为SP 和SI 切片)允许编码器指示解码器跳转到正在进行的视频流,用于视频流比特率切换和“特技模式”操作等目的。当解码器使用SP/SI 函数跳转到视频流的中间时,它可以获得与视频流中该位置处的解码图像的精确匹配,尽管使用不同的图片,或者根本没有图片,如下之前的参考。转变。一种简单的自动化过程,可防止意外模拟起始码,起始码是编码数据中的特殊位序列,允许随机访问位流并在可能丢失字节同步的系统中恢复字节对齐。补充增强信息(SEI) 和视频可用性信息(VUI),它们是可以插入比特流以出于各种目的增强视频的附加信息。 [需要澄清] SEI FPA(框架封装排列)包含3D 排列的消息:

0:checkerboard:pixelsarealternativelyfromLandR.1:columnalternation:LandRareinterlacedbycolumn.2:rowalternation:LandRareinterlacedbyrow.3:sidebyside:Lisontheleft,Rontheright.4:topbottom:Lisontop,Ronbottom.5:framealternation:oneviewperframe.123456 辅助图片,可用于alpha合成等用途。支持单色(4:0:0)、4:2:0、4:2:2 和4:4:4 色度子采样(取决于所选配置文件)。支持样本位深度精度,范围为每个样本8 到14 位(取决于所选配置文件)。能够将各个颜色平面编码为具有自己的切片结构、宏块模式、运动矢量等的不同图像,从而允许编码器设计为具有简单的并行化结构(仅支持支持4:4:4 的三个配置文件)。图像顺序计数,用于与时序信息隔离地维护解码图像中图像和样本值的顺序的功能,允许系统独立携带和控制/更改时序信息,而不影响解码图像内容。这些技术以及其他多项技术帮助H.264 在各种应用环境和各种情况下比任何以前的标准都表现得更好。 H.264 通常比MPEG-2 视频表现更好- 通常以一半或更少的比特率实现相同的质量,特别是在高比特率和高分辨率下。 [36] 与其他ISO/IEC MPEG 视频标准一样,H.264/AVC 具有可免费下载的参考软件实现。 [37] 其主要目的是提供H.264/AVC 功能的示例,而不是其本身的有用应用程序。移动图形专家组也在研究一些参考硬件设计。以上是H.264/AVC的完整特性,涵盖了H.264的所有profile。编解码器的配置文件是该编解码器的一组特征,这些特征被识别以满足预期应用程序的某些规范集。这意味着某些配置文件不支持列出的许多功能。 H.264/AVC 的各种配置文件将在下一节中讨论。特定配置文件的功能支持

级别当该术语用在标准中时,“级别”是一组指定的约束,指示配置文件所需的解码器性能的程度。例如,配置文件中的支持级别指定解码器可以使用的最大图像分辨率、帧速率和比特率。符合给定级别的解码器必须能够解码为该级别和所有较低级别编码的所有比特流。具有最大属性值的级别[22] High Profile的最大码率是Constrained Baseline、Baseline、Extend和Main Profiles的1.25倍; Hi10P 为3 次,Hi422P/Hi444PP 为4 次。亮度样本数是宏块数的1616=256 倍(每秒亮度样本数是每秒宏块数的256 倍)。

解码图片缓冲区H.264/AVC 编码器使用先前编码的图片来提供其他图片中样本值的预测。这使得编码器能够有效地决定编码给定图像的最佳方式。在解码器处,这些图片存储在虚拟解码图片缓冲区(DPB)中。 DPB 的最大容量(以帧(或场对)为单位),如上表右列中的括号所示,可计算如下: DpbCapacity=min(floor(MaxDpbMbs/(PicWidthInMbs * FrameHeightInMbs)), 16) 其中MaxDpbMbs 是下表中提供的作为级别编号函数的常量值,而PicWidthInMbs 和FrameHeightInMbs 是编码视频数据的图片宽度和帧高度,以宏块单位表示(四舍五入为整数值并裁剪)计算)和宏块对(如果适用))。该公式在2017 版标准的A.3.1.h 和A.3.2.f 节中指定。 [22] 硬件另请参阅:具有板载视频流编码和H.264/MPEG-4 AVC 产品和实施的摄像机列表

由于H.264 编码和解码在某些类型的算术运算中需要大量的计算能力,因此在通用CPU 上运行的软件实现通常消耗较少的功率。然而,最新的四核通用x86 CPU 具有足够的计算能力来执行实时标清和高清编码。压缩效率取决于视频算法的实现,而不取决于使用硬件还是软件实现。因此,基于硬件和基于软件的实现之间的差异更多地取决于功效、灵活性和成本。为了提高能效并缩小硬件外形尺寸,可以采用专用硬件来完成完整的编码或解码过程,或者在CPU 控制的环境中提供加速辅助。

众所周知,基于CPU 的解决方案更加灵活,尤其是当必须以多种格式、多种比特率和分辨率(多个屏幕视图)执行编码时。

以上知识分享希望能够帮助到大家!