h264与x264支持的Profile

简介: h264与x264支持的Profile

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的第二部分协议实现的库,因此在技术上没有第十部分协议先进。


thxchtb3wcn3k_d11fc1ff3db9431d8ad7575e9297ae48.png

相关文章
|
3月前
Mac每次都要执行source ~/.bash_profile配置的环境变量才生效
Mac每次都要执行source ~/.bash_profile配置的环境变量才生效
150 2
|
3月前
|
测试技术
Profile Config 多环境不同配置
Profile Config 多环境不同配置
31 0
|
5月前
|
Java Maven 数据库
|
Java 测试技术 开发者
Profile 配置|学习笔记
快速学习 Profile 配置
330 0
Profile 配置|学习笔记
|
Shell
MAC修改.bashrc/.bash_profile无效,默认的用户配置文件是.zshrc,
MAC修改.bashrc/.bash_profile无效,默认的用户配置文件是.zshrc,
318 0
|
Java Shell Linux
解决shell脚本中"source /etc/profile"重载配置文件不生效的问题
1、shell脚本中“source /etc/profile”无法生效的原因及解决办法;2、shell中"."、"source"、"sh"、"./"的区别;
解决shell脚本中"source /etc/profile"重载配置文件不生效的问题
|
Java 测试技术 开发者
Profile多环境支持|学习笔记
快速学习Profile多环境支持
|
Shell 开发工具
/etc/profile新配置在新终端无法生效
/etc/profile新配置在新终端无法生效
321 0
|
SQL Perl
profile
SQL> declare 2 v_hints sys.sqlprof_attr; 3 begin 4 v_hints:=sys.sqlprof_attr('full(test)'); 5 dbms_sqltune.
1245 0
|
Shell Linux
/etc/profile和~/.bash_profile的区别与联系
/etc/profile 为系统的每个用户设置环境信息和启动程序,当用户第一次登录时,该文件被执行,其配置对所有登录的用户都有效。当被修改时,必须重启才会生效。
3482 0