Video.com.cn(视频网)2006-09-25 15:38 来源: 央视科技
H.264/AVC 是ITU-T VCEG 和ISO/IEC MPEG 共同开发的视频处理标准,ITU-T作为标准建议H.264,ISO/IEC作为国际标准14496-10(MPEG-4 第10部分)高级视频编码(AVC)。
MPEG-2视频编码标准(又称为ITU-T H.262[2])已有10年的历史了,由MPEG-1扩充而来,支持隔行扫描。使用十分广泛,几乎用于所有的数字电视系统,适合标清和高清电视,适合各种媒体传输,包括卫星、有线、地面等,都能有效地传输。然而,类似xDSL、UMTS(通用移动系统)技术只能提供较小的传输速率,甚至DVB-T,也没有足够的频段可用,提供的节目很有限,随着高清电视的引入,迫切需要高压缩比技术的出现。
应用于电信的视频编码经历了ITUT H.261、H.262(MPEG-2)、H.263、H.263+、H.263++,提供的服务从ISDN和T1/E1到PSTN、移动无线网和LAN/INTERNET网。
最近MPEG-4 第二部分进入了实用领域,提供了视频形状编码,目标是与MPEG-2一样获得广泛的数字电视应用。
1998年,视频编码专家组(VCEG-ITU-T SG16 Q.6)启动了H.26L工程,旨在研制出新的压缩标准,与以前的任何标准相比,效率要提高一倍,同时具有简单、直观的视频编码技术,网络友好的视频描述,适合交互和非交互式应用(广播、存储、流煤体)。
2001年12月,VCEG和运动图像专家组(MPEG-ISO/IEC JTC 1/SC 29/WG 11)组成了联合视频组(JVT,Joint Video Team),研究新的编码标准H.264/AVC,该标准于2003年3月正式获得批准。
视频的各种应用必须通过各种网络传送,这要求一个好的视频方案能处理各种应用和网络接口。H.264/AVC为了解决这个问题,提供了很多灵活性和客户化特性。H.264/AVC的设计方案包含两个层次,视频编码层(VCL,Video Coding Layer)和网络抽象层(NAL,Network Abstraction Layer)。视频编码层主要致力于有效地表示视频内容,网络抽象层格式化VCL视频表示,提供头部信息,适合多种传输和存储媒体。
VCL的设计同以前的ITU-T和 ISO/IEC JTC一样,基于块的混合视频编码方法。基本的源编码算法是: 利用时间统计的相关性,开发帧间预测算法;利用预测残留变换编码,开发空间统计的相关性。在提高编码效率方面,没有一个单一的算法做出特别的贡献,而是大量的小的改善算法综合产生的结果。
一 主要特性
1. H.264/AVC相对以前的编码方法,以MPEG-2为例,在图像内容预测方面提高编码效率,改善图像质量的主要特点如下:
● 可变块大小运动补偿: 选择运动补偿大小和形状比以前的标准更灵活,最小的亮度运动补偿块可以小到4×4。
● 1/4采样精度运动补偿:以前的标准最多1/2精度运动补偿,首次1/4采样精度运动补偿出现在MPEG-4第二部分高级类部分,但H.264/AVC大大减少了内插处理的复杂度。
● 运动矢量可跨越图像边界:在以前的标准中,运动矢量限制在已编码参考图像的内部。图像边界外推法作为可选技术首次出现在H.263中。
● 多参考图像运动补偿:在MPEG-2及以前的标准中,P帧只使用一帧,B帧只使用两帧图像进行预测。H.264/AVC使用高级图像选择技术,可以用以前已编码过且保留在缓冲区的大量的图像进行预测,大大提高了编码效率。
● 消除参考图像顺序和显示图像顺序的相关性:在以前的标准中,参考图像顺序依赖显示图像顺序,H.264/AVC消除了该限制,可以任意选择。
● 消除参考图像与图像表示方法的限制:在以前的标准中,B帧图像不能作为预测图像,H.264/AVC 在很多情况可以利用B帧图像作为参考。
● 加权预测: H.264/AVC采用新技术,允许加权运动补偿预测和偏移一定量。在淡入淡出场景中该技术极大提高编码效率,该技术还可用于其他多种用途。
● 改善“跳过”和“直接”运动推测:在以前的标准中,预测编码图像的“跳过”区不能有运动。当编码有全局运动的图像时,该限制非常有害。H.264/AVC对“跳过”区的运动采用推测方法。对双预测的B帧图像,采用高级运动预测方法,称为“直接”运动补偿,进一步改善编码效率。
● 帧内编码直接空间预测: 将编码图像边沿进行外推应用到当前帧内编码图像的预测。
● 循环去块效应滤波器: 基于块的视频编码在图像中存在块效应,主要来源于预测和残余编码。自适应去块效应滤波技术是非常著名的技术,能有效消除块效应,改善视频的主观和客观质量。
2. 除改善预测方法外,其他改善编码效率的特性如下:
● 小块变换: 以前的标准变换的块都是8×8,H.264/AVC主要使用4×4块变换,使编码器表示信号局部适应性更好,更适合预测编码,减少“铃”效应。另外图像边界需要小块变换。
● 分级块变换: H.264/AVC通常使用小块变换,但有些信号包含足够的相关性,要求以大块表示,H.264/AVC有两种方式实现。低频色度信号可用8×8,;对帧内编码,可使用特别的编码类型,低频亮度信号可用16×16块。
● 短字长变换: 所有以前标准使用的变换要求32位运算,H.264/AVC只使用16位运算。
● 完全匹配反变换: 所有以前标准反变换和变换之间存在一定容限的误差,因此,每个解码器输出视频信号都不相同,产生小的漂移,最终影响图像的质量,H.264/AVC实现了完全匹配。
● 基于上下文的熵编码: H.264/AVC使用两种熵编码方法,CAVLC(上下文自适应的可变长编码)和CABAC(上下文自适应二进制算术编码),两种都是基于上下文的熵编码技术。
3. H.264/AVC具有强大的纠错功能和各种网络环境操作灵活性,主要特性如下:
● 参数集结构:H.264/AVC参数集结构设计了强大、有效的传输头部信息。在以前的标准中,如果少数几位关键信息丢失,可能解码器产生严重解码错误。H.264/AVC采用很灵活、特殊的方式,分开处理关键信息,能在各种环境下可靠传送。
● NAL单元语法结构:H.264/AVC中的每一个语法结构放置在称为NAL的单元中,以前的标准采用强制性特定的位流接口。NAL单元语法结构允许很自由的客户化,几乎适合所有的网络接口。
● 灵活的像条大小:在MPEG-2中,规定了严格的像条结构,头部数据量大,降低预测效率,编码效率低。在H.264/AVC可采用非常灵活的像条大小。
● 灵活宏块排序(FMO):H.264/AVC可以将图像划分为像条组,又称为图像区,每个像条可以独立解码。FMO通过管理图像区之间的关系,具有很强的抗数据丢失能力。
● 任意像条排序:因为每个像条几乎可以独立解码,所以像条可以按任意顺序发送和接收,在实时应用中,可以改善端到端的延时特性,特别适合于接收顺序和发送顺序不能对应的网络中,如使用INTERNET网络协议的应用。
● 冗余图像:为提高抗数据丢失的能力,H.264/AVC设计中包含一种新的能力,允许编码器发送图像区的冗余表示,当图像区的主表示丢失时仍可以正确解码。
● 数据划分:视频流中的编码信息的重要性不同,有些信息(如运动矢量、预测信息等)比其他信息更为重要。H.264/AVC可以根据每个像条语法元素的范畴,将像条语法划分为3部分,分开传送。
二 网络层
NAL规范视频数据的格式,主要是提供头部信息,以适合各种媒体的传输和存储。NAL支持各种网络,包括:
● 任何使用RTP/IP协议的实时有线和无线Internet 服务。
● 作为MP4文件存储和多媒体信息文件服务。
● MPEG-2系统。
● 其他网。
1. NAL 单元
编码的视频流组织成NAL单元,视频数据放置在网络单元中传输,每个网络单元包含整数个字节,第一个字节是头部信息,指示NAL单元的数据类型,其余是净荷。
净荷数据与仿真预防字节做交织处理,仿真预防字节是特殊值字节,防止偶然在净荷中出现同步字节图样。
NAL规定一种通用的格式,既适合面向包传输,也适合流传送。实际上,包传输和流传输的方式是相同的,不同之处是流传输前面增加了一个起始码前缀。
2. NAL单元在字节流中的应用
类似H.320和MPEG-2/H.222.0等传输系统,传输NAL作为有序连续字节或比特流,同时要依靠数据本身识别NAL单元边界。在这样的应用系统中,H.264/AVC规范定义了字节流格式,每个NAL单元前面增加3个字节的前缀,即同步字节。在比特流应用中,每个图像需要增加一个附加字节作为边界定位。还有一种可选特性,在字节流中增加附加数据,用做扩充发送数据量,能实现快速边界定位,恢复同步。
3. NAL单元在面向包传送中的应用
在类似Internet/RTP面向包传送协议系统中,包结构中包含包边界识别字节,在这种情况下,不需要同步字节。
4. VCL和非VCL的NAL单元
NAL单元分为VCL和非VCL两种,VCL NAL单元包含视频图像采样信息,非VCL包含各种有关的附加信息,例如参数集(头部信息,应用到大量的VCL NAL单元)、提高性能的附加信息、定时信息等。
5. 参数集
参数集是很少变化的信息,用于大量VCL NAL单元的解码,分为两种类型:
● 序列参数集,作用于一串连续的视频图像,即视频序列。
● 图像参数集,作用于视频序列中的一个或多个个别的图像。
序列和图像参数集机制,减少了重复参数的传送,每个VCL NAL单元包含一个标识,指向有关的图像参数集,每个图像参数集包含一个标识,指向有关的序列参数集的内容,因此,只用少数的指针信息,引用大量的参数,大大减少每个VCL NAL单元重复传送的信息。
序列和图像参数集可以在发送VCL NAL单元以前发送,并且重复传送,大大提高纠错能力。序列和图像参数集可以在“带内”,也可以用更为可靠的其他“带外”通道传送。
6. 存储单元
一组指定格式的NAL单元称为存储单元,每个存储单元对应一个图像。每个存储单元包含一组VCL NAL单元,组成一个主编码图像,VCL NAL单元由表示视频图像采样的像条所组成。存储单元前面可以加一个前缀,分界存储单元,附加增强信息(SEI)(如图像定时信息)也可以放在主编码图像的前面。
主编码图像后附加的VCL NAL单元,包含同一图像的冗余表示,称为冗余编码图像,当主编码图像数据丢失或损坏时,可用冗余编码图像解码。
7. 编码视频序列
一个编码视频序列由一串连续的存储单元组成,使用同一序列参数集。每个视频序列可独立解码。编码序列的开始是即时刷新存储单元(IDR)。IDR是一个I帧图像,表示后面的图像不用参考以前的图像。一个NAL单元流可包含一个或更多的编码视频序列。
新标准类的使用领域
H.264/AVC的高压缩效率,扩充了现有的应用领域,至少包含以下领域:
(1)交互视频服务,通常速率1Mbps以下,低延迟。ITU-T SG16正在修改有关系统建议, IETF正在设计RTP净荷打包器,以支持H.264/AVC在交互视频方面的应用。近期主要利用基类,然后过渡到另两类。主要应用如下:
H.320 交互式视频服务,利用基于ISDN视频会议的电路交换;
3 GPP交互式H.324/M服务;
H.323交互式视频服务,基于INTERNET,利用IP/RTP协议。
(2)娱乐视频应用,1Mbps~8Mbps码率,0.5 到 2秒中等时延。H.222.0|MPEG-2正在被修改以支持这方面的应用,这些应用主要利用主类,主要应用如下:
有线、卫星、地面、DSL等广播电视;
标清和高清DVD;
通过各种媒体的视频点播。
(3)流媒体服务,典型50kbps 到1.5Mbps,2秒以上的时延,这些应用主要利用基类或扩展类。有线或无线使用情况有所不同,主要应用如下:
3GPP 流, 利用IP/RTP传输,RTSP作会话设置,3GPP规范的扩充部分可能仅使用基类;
有线INTERNET 流,利用IP/RTP传输,RTSP作会话设置。
(4)其他服务,主要是低码率,以文件传送方式,不考虑时延,根据不同应用,可能用到3类,主要应用如下:
3GPP 多媒体信息服务;
视频邮件。
六 结论
H.264代表了当前业界最先进的视频压缩技术,且具有以下无可比拟的优越性。
1. 码率低:和MPEG-2等压缩技术相比,在同等图像质量下,采用H.264技术压缩后的数据量只有MPEG-2的1/2~1/3。显然,H.264压缩技术的采用将大大节省用户的下载时间和数据流量收费。
2. 图像质量高:H.264能提供连续、流畅的高质量图像。
3. 容错能力强:H.264提供了解决在不稳定网络环境下容易发生的丢包等错误的必要工具。
4. 网络适应性强:H.264提供了网络适应层, 使得H.264的文件能容易地在不同网络上传输。
H.264超越以往的视频编解码标准,成为各个厂商竞争的焦点。目前,各主流厂商纷纷宣布,已经或将在明年推出产品化的H.264。在视频广播领域,美国哈雷公司宣布其产品MV100编码器可以支持H.264协议,哈雷原来的MPEG-2编码器MV100硬件平台已经兼容H.264能力,只需从软件升级即可。在欧洲,有两个用户已经选用了此种编码器。其中一个是法国的卫星及直播星运营商CanalSatellite,它采用哈雷高性能的数字前端系统在ADSL上传输视频业务,MV100超低码率编码能力可以实现在多种电信网上传输广播级视频节目。另外是第一个即将投入正式商业运营的英国Video network limited
分享到:
相关推荐
第15章 X264实现H.264/AVC视频编码 565 15.1 H.264/AVC编码概要 566 15.1.1 开源代码工程管理软件 566 15.1.2 获取开源算法工程 566 15.1.3 H.264/AVC新特性 567 15.2 X264视频编码分析 568 15.2.1 H.264/AVC...
第15章 X264实现H.264/AVC视频编码 565 15.1 H.264/AVC编码概要 566 15.1.1 开源代码工程管理软件 566 15.1.2 获取开源算法工程 566 15.1.3 H.264/AVC新特性 567 15.2 X264视频编码分析 568 15.2.1 H.264/AVC关键...
第15章 X264实现H.264/AVC视频编码 565 15.1 H.264/AVC编码概要 566 15.1.1 开源代码工程管理软件 566 15.1.2 获取开源算法工程 566 15.1.3 H.264/AVC新特性 567 15.2 X264视频编码分析 568 15.2.1 H.264/AVC关键...
第15章 X264实现H.264/AVC视频编码 565 15.1 H.264/AVC编码概要 566 15.1.1 开源代码工程管理软件 566 15.1.2 获取开源算法工程 566 15.1.3 H.264/AVC新特性 567 15.2 X264视频编码分析 568 15.2.1 H.264/AVC关键...
第15章 X264实现H.264/AVC视频编码 565 15.1 H.264/AVC编码概要 566 15.1.1 开源代码工程管理软件 566 15.1.2 获取开源算法工程 566 15.1.3 H.264/AVC新特性 567 15.2 X264视频编码分析 568 15.2.1 H.264/AVC关键...
第15章 X264实现H.264/AVC视频编码 565 15.1 H.264/AVC编码概要 566 15.1.1 开源代码工程管理软件 566 15.1.2 获取开源算法工程 566 15.1.3 H.264/AVC新特性 567 15.2 X264视频编码分析 568 15.2.1 H.264/AVC关键...
第15章 X264实现H.264/AVC视频编码 565 15.1 H.264/AVC编码概要 566 15.1.1 开源代码工程管理软件 566 15.1.2 获取开源算法工程 566 15.1.3 H.264/AVC新特性 567 15.2 X264视频编码分析 568 15.2.1 H.264/AVC关键...
第15章 X264实现H.264/AVC视频编码 565 15.1 H.264/AVC编码概要 566 15.1.1 开源代码工程管理软件 566 15.1.2 获取开源算法工程 566 15.1.3 H.264/AVC新特性 567 15.2 X264视频编码分析 568 15.2.1 H.264/AVC关键...
赠送jar包:spring-aop-5.2.0.RELEASE.jar;...使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。
赠送jar包:error_prone_annotations-2.0.18.jar...使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。
使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。 双语对照,边学技术、边学英语。
使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。 双语对照,边学技术、边学英语。
赠送jar包:zstd-jni-1.3.2-2.jar;...使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。
赠送jar包:openblas-0.3.13-1.5.5.jar;...使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。
赠送jar包:mybatis-3.5.9.jar;...使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。
赠送jar包:netty-codec-dns-4.1.65.Final.jar;...使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。
赠送jar包:hamcrest-core-1.3.jar;...使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。
赠送jar包:springfox-oas-3.0.0.jar;...使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。
赠送jar包:spring-webmvc-5.2.15.RELEASE.jar;...使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。
赠送jar包:netty-transport-classes-epoll-4.1.73.Final.jar; 赠送原API文档:netty-...使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保