H.264/AVC视频协议类似MPEG-4协议,也分为多个档级标准以适应不同领域的应用。H.264/AVC定义了4种不同的Profile(类):Baseline Profile(基类)、Main Profile(主类)、Extended Profile(扩展类)和High Profile(高端类)。H.264的各种档实现的主要功能如图6-1所示。
图6-1 H.264不同档对应的功能特色
(1)Baseline Profile
提供I/P帧,仅支持Progressive(逐行扫描)和CAVLC。主要应用在“视频会话”,如可视电话、会议电视、远程医疗、远程教学、视频监控等,要求低延迟。
(2)Extended Profile
提供I/P/B/SP/SI帧,仅支持Progressive(逐行扫描)和CAVLC。主要应用于网络的视频流,如视频点播、基于网络的视频监控等。
(3)Main Profile
提供I/P/B帧,支持Progressive(逐行扫描)和Interlaced(隔行扫描),提供CAVLC或CABAC。主要应用于消费电子应用,如数字电视广播、数字视频存储等。
(4)High Profile(即FRExt)
在Main Profile的基础上新增:8×8帧内预测(8×8 Intra Prediction), 自定义量化(Custom Quant),无损视频编码(Lossless Video Coding),更多的YUV格式(4:2:2,4:4:4),像素精度提高到10位或12位等。主要应用于针对高分辨率和高清晰度有特别要求的专业。
H.264视频编码协议自2003年第一版发布至今,一直在升级、更新,编码功能越来越强大。下面列出发布情况[注:来源于WikiPedia]。
● Version 1:(2003年5月)H.264/AVC的第一个正式标准,包括Baseline、Extended、Main档。
● Version 2:(2004年5月)更正版,包括各种次要的改动。
● Version 3:(2005年3月)第一次修订,作了大幅的增添,实现了包括High, High 10, High 4:2:2, and High 4:4:4档的Fidelity Range Extensions (FRExt)。
● Version 4:(2005年9月)更正版,包括各种次要的改动,增加了三个宽高比指示器。
● Version 5:(2006年6月)修订版,包括删除High 4:4:4档,(在ISO/IEC中作为更正处理)。
● Version 6:(2006年6月)修订版,包括次要的扩展如支持扩展的颜色空间(在ISO/IEC中与上面的宽高比指示器一起更正)。
● Version 7:(April 2007年4月)修订版,包括增加High 4:4:4 Predictive档和四个仅支持Intra的档(High 10
Intra, High 4:2:2 Intra, High 4:4:4 Intra, 和CAVLC 4:4:4 Intra)。
● Version 8:(2007年11月)修订版,较大幅度改动,增加了可伸缩视频编码(包括Baseline, Scalable High,
和Scalable High Intra档)。
● Version 9:(2009年1月)更正,次要的改动。
● Version 10:(2009年3月)修订版,包括定义了一个新档:Constrained Baseline,它是前面各个档相兼容的公共的子集。
● Version 11:(2009年3月)修订版,较大幅度改动,包括增加了多视点视频编码Multiview Video
Coding(MVC),内含Multiview High档。
x264是H.264/AVC视频压缩标准的一个工程实现。x264最大的特点是为H.264/AVC的实用性做了部分功能简化。与JM相比,x264并没有完整的实现H.264/AVC标准,而是舍去了一些对编码性能贡献很小,但计算复杂度极高的新特性,如多参考帧、帧间预测中不必要的块模式等技术。从而极大降低计算复杂度,编码效率却并没有明显降低。x264主要实现了Main档级的功能,码流兼容H.264/AVC。在实用的系统中,比较普遍的是在DSP芯片上实现H.264/AVC,大多是移植x264工程,来实现Baseline或Main档级。
补:
DivX编码方式的库有两种编码模式: low-motion, fast-motion:
简单地说,low-motion和fast-motion是使用DivX压缩影片时可供选择的两种编码方式,前者是一种固定码率的编码方式,即压缩时输出码率基本固定,不会因为画面场景的变化而改变,而后者是一种动态码率的编码方式,它可以根据画面场景的变化自动调节输出码率。通常用fast- motion方式生成的文件要比low-motion小50%左右,但播放时画面质量要略逊一筹。
Divx和Xvid区别:
Xvid是微软公司开发的,Divx是黑客看了微软重写后开发的,随着后面两者不断发展开源,现在这两个都有较高的使用率。
AVC/h264:两者是同一个协议,就是起了两个名字。
x264与Xvid区别:x264根据h264编码算法协议实现的库,h264属于MPEG-4的第十部分协议
Xvid是根据MPEG-4的第二部分协议实现的库,因此在技术上没有第十部分协议先进。