H.264中的Profile和Level介绍

Profile(档次): H.264 规定了四种不同的档次,每个档次支持一组特定的编码功能,并支持一类特定的应用。
(1) 基本档次(Base Line Profile):支持帧内和帧间编码,支持利用基于上下文的适应变长编码(CAVLC)主要应用:可视电话,会议电视,和无线通讯等实时视频通讯领域。
只有I,P Slice;
nal_unit_type不应包括2-4的值;
序列参数集frame_mbs_only_flag = 1;
语法元素chroma_format_idc、bit_depth_luma_minus8、bit_depth_chroma_minus8、qpprime_y_zero_transform_bypass_flag和seq_scaling_matrix_present_flag不能出现在序列参数集中。
图片参数集weighted_pred_flag和weighted_bipred_idc均为0。
图像参数集entropy_coding_mode_flag = 0。
num_slice_groups_minus1取值0-7
语法元素transform_8x8_mode_flag、pic_scaling_matrix_present_flag和second_chroma_qp_index_offset不能出现在图片参数集中。
level_prefix不能大于15。
profile_idc ==66.

(2) 主要档次(Main profile):支持隔行视频,采用B片的帧间编码和采用加权预测的帧间编码,支持利用基于上下文的自适应算术编码(CABAC)主要应用:数字广播电视和数字视频存储
I, P, and B slice
nal_unit_type不应包括2-4的值;
语法元素chroma_format_idc、bit_depth_luma_minus8、bit_depth_chroma_minus8、qpprime_y_zero_transform_bypass_flag和seq_scaling_matrix_present_flag不能出现在序列参数集中。
num_slice_groups_minus1 = 0
redundant_pic_cnt_present_flag = 0
transform_8x8_mode_flag、pic_scaling_matrix_present_flag和second_chroma_qp_index_offset不能出现在图片参数集中
level_prefix应不大于15
profile_idc == 77

(3) 扩展档次(Extended Profile):支持码流之间有效的切换(SP和SI片)、改进误码性能,但不支持隔行视频和CABAC。
direct_8x8_inference_flag =1
chroma_format_idc、bit_depth_luma_minus8、bit_depth_chroma_minus8、qpprime_y_zero_transform_bypass_flag和seq_scaling_matrix_present_flag不能出现在序列参数集中。
entropy_coding_mode_flag = 0
num_slice_groups_minus1在0-7
transform_8x8_mode_flag、pic_scaling_matrix_present_flag和second_chroma_qp_index_offset不能出现在图片参数集中
level_prefix应不大于15
profile_idc = 88

(4) 高级画质(High profile):。在main Profile 的基础上增加了8x8内部预测、自定义量化、无损视频编码和更多的YUV 格式;
I, P, and B slice
nal_unit_type不应包括2-4的值;
num_slice_groups_minus1 = 0
redundant_pic_cnt_present_flag = 0
chroma_format_idc 0-1
bit_depth_luma_minus8 =0
bit_depth_chroma_minus8=0
qpprime_y_zero_transform_bypass_flag = 0
profile_idc is equal to 77 or 100,or constraint_set1_flag is equal to 1.

(5) High 10 profile 高级10位档次
(6) High 4:2:2 profile 高级4:2:2档次
(7) High 4:4:4 profile 高级4:4:4档次
不同档次的相关定义如下图:
在这里插入图片描述
Level:级别是用来约束分辨率、帧率和码率的。所有概要文件都使用相同的级别定义集,但是单个实现可能为每个受支持的概要文件支持不同的级别。对于任何给定的概要文件,级别通常对应于解码器处理负载和内存能力。

帧fR =1/172 场 fR = 1/(2*172)
常见视频分辨率所配套的级别:
480P(800x480):若帧率低于13.5用2.2,若帧率在13.5至27之间就用3,帧率高于27时用3.1。
720P(1280x720):一般为3.1。
1080P(1920x1080):一般为4
在这里插入图片描述
在这里插入图片描述
最大存储帧数(max stored frames):也叫最大参考帧数(ref)。
DPB:decoded
picture buffer,解码图片缓存区。在做视频解码时,需要将最近的若干幅参考帧缓存起来,这个缓冲区就叫做DPB。DPB一般以宏块数为单位(DpbMbs),计算公式为:
DpbMbs = ref(参考帧数) * PicWidthInMbs(水平宏块数) * FrameHeightInMbs(垂直宏块数)

参考文献:https://www.cnblogs.com/tinywan/p/6402007.htm
《H.264标准》

1)解码支持的协议特性:h.264 main profile完整规格,严格参照2005年3月正式发布的协议文档(T-REC-H.264-200503-P!!MSW-E.doc)实现。Main profile的特性参见协议附录A对profile以及level的描述。 2)解码库采用的测试工具集:ALLEGRO,HHI,JVT提供的baseline(FMO/ASO特性除外), main profile专业测试码流,以及超过20家IPTV厂家的商用码流。其专业测试码流是业界用来确保解码芯片规格完备的利器。 3)解码容错处理:重用相同协议规格解码芯片IP验证使用的工具集,含盖了几乎所有的业务功能,边界条件,系统异常等问题的测试用例。 4)是针对X86平台开发的在windows系统下的版本:采用intel的编译器,slice以上层解码主要采用C语言实现,宏块层解码大量使用了MMX,SSE2技术进行高性能并行解码设计。由于main profile的复杂度比较高,不推荐在不支持MMX,SSE2技术的计算机上使用本解码库产品。 5)产品标杆:在性能指标上一直参照业界性能最佳coreAVC解码库进行对比开发,目前纯解码性能稳定在其120%以上,而且对协议规格的遵守方面则具有明显优势。本解码库吸收了JM 10.2在调测ALLEGRO等专业测试码流时发现的若干问题,而coreAVC提供的demo程序只能通过一些最基本的测试码流。业界比较知名的公司还有ateme, elecard和cyberlink。 6)接口形式:提供5个独立的API函数(open, close, decode, get, set)。其decode函数只负责解析接收到的用户指定长度的符合协议附录B描述的视频流;在解码库内部维护解码图像缓冲区,通过get和set函数来实现播放显示与解码对重构图像的地址交互,避免YUV数据的多次拷贝。 技术支持联系:kwen_zhang@hotmail.com
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值