h264 profile & level
转自:http://blog.csdn.net/sphone89/article/details/17492433
H.264 Profiles
H.264有四种profile,每个profile支持一组特定的编码功能,并支持一类特定的应用,分别是BP、EP、MP、HP:
1、BP-Baseline Profile:
a、I/P slices
b、Multiple reference frames (–refs <int>, >1 in the x264 CLI)
c、In-loop deblocking(环路滤波)
d、CAVLC entropy coding (–no-cabac in the x264 CLI)
利用I片和P片支持帧内和帧间编码,支持利用基于上下文的自适应的变长编码进行的熵编码(CAVLC)和只支持无交错(Progressive)。主要用于可视电话、会议电视、无线通信等实时视频通信。
2、EP-Extendedprofile:
支持I/P/B/SP/SI帧,即支持码流之间有效的切换(SP和SI片)、改进误码性能;只支持无交错(Progressive)和CAVLC;但不支持隔行视频和CABAC。
3、MP-Main profile:
a、Baseline Profile features mentioned above
b、B slices
c、CABACentropy coding
d、Interlacedcoding – PAFF/MBAFF
e、Weightedprediction
提供I/P/B 帧,支持无交错(Progressive)和交错(Interlaced),也支持CAVLC 和CABAC 的支持;主要用于数字广播电视与数字视频存储。
4、HP-High profile:
a、Main Profile features mentioned above
b、8×8 transform option (–8×8dct in the x264 CLI)
c、Custom quantisation matrices
在mainProfile的基础上增加了8x8内部预测、自定义量化、 无损视频编码和更多的YUV格式。
H.264 FRExt(即:FidelityRange Extensions)扩展部分(Amendment),包括High profile(HP)、High10 profile(Hi10P)、High 4:2:2 profile(Hi422P)、High4:4:4 profile(Hi444P)4个profile。H.264 Baseline profile、Extended profile和Main profile都是针对8位样本数据、4:2:0格式的视频序列,FRExt将其扩展到8~12位样本数据,视频格式可以为4:2:0、4:2:2、4:4:4,设立了High profile(HP)、High 10profile(Hi10P)、High 4:2:2 profile(Hi422P)、High 4:4:4 profile(Hi444P) 4个profile,这4个profile都以Main profile为基础
在相同配置情况下,Highprofile(HP)可以比Mainprofile(MP)节省10%的码流量,比MPEG-2 MP节省60%的码流量,具有更好的编码性能。根据应用领域的不同,Baselineprofile多应用于实时通信领域,Main profile多应用于流媒体领域,High profile则多应用于广电和存储领域。
---------------------------
下面是x264关于profile的简单特点描述
--profile<string> Force the limits ofan H.264 profile
Overrides allsettings.
- baseline:
--no-8x8dct--bframes 0 --no-cabac
--cqm flat--weightp 0
Nointerlaced.
Nolossless.
- main:
--no-8x8dct--cqm flat
Nolossless.
- high:
Nolossless.
- high10:
Nolossless.
Support forbit depth 8-10.
- high422:
Nolossless.
Support forbit depth 8-10.
Support for4:2:0/4:2:2 chroma subsampling.
- high444:
Support forbit depth 8-10.
Support for4:2:0/4:2:2/4:4:4 chroma subsampling.
-----------------------------------------------------------------------------------------------
符合BaselineProfile 的比特流应该遵守如下的限制:
-- 比特流中只能出现I 和 P 片。
-- NAL 单元比特流的nal_unit_type 值不应该落在[2,4](包括2,4,下同)范围内。
注释:nal_unit_type=2对应片分区A;nal_unit_type=3对应片分区B;nal_unit_type=4对应片分区C。因为baselineprofile不采用数据分区的方法。
-- 序列参数集中的frame_mbs_only_flag 应该等于1。
注释:frame_mbs_only_flag 等于0 表示编码视频序列的编码图像可能是编码场或编码帧。frame_mbs_only_flag 等于1表示编码视频序列的每个编码图像都是一个仅包含帧宏块的编码帧。
-- 图像参数集中的weighted_pred_flag 和weighted_bipred_idc 都应该等于0。
注释:weighted_pred_flagequal to 0 specifies that weighted prediction(加权预测) shall not be applied to P and SPslices.weighted_pred_flag equal to 1 specifies that weighted prediction shallbe applied to P and SP slices.
weighted_bipred_idcequal to 0 specifies that the default weighted prediction(默认的加权预测) shall be applied to B slices.weighted_bipred_idcequal to 1 specifies that explicit weighted prediction(指定的加权预测方式) shall be applied to B slices.weighted_bipred_idcequal to 2 specifies that implicit weighted prediction(隐含的加权预测方式) shall be applied to B slices. The value ofweighted_bipred_idcshall be in the range of 0 to 2, inclusive.
-- 图像参数集中的entropy_coding_mode_flag 应该等于0。
注释:entropy_coding_mode_flag=0,表示熵编码使用CAVLC。
-- 图像参数集中的num_slice_groups_minus1 应该在[0,7]范围之内。
注释:本句法元素加1表示图像中片组的个数。H.264中没有专门的句法元素用于指明是否使用片组模式,当本句法元素等于0时(即只有一个片组),表示不使用片组模式,后面也不会跟有用于计算片组映射到句法元素。
-- 应该满足在A.3 节中规定的Baseline profile 级别限制。
与Baselineprofile 相符的比特流,它的profile_idc 应该等于66。对一个遵守Baseline profile某个指定级别的解码器,它能够解码任何符合如下要求的比特流:1. profile_idc 等于66 或者constraint_set0_flag 等于1; 2. level_idc所代表的级别小于或等于这个指定的级别。
注释:constraint_set0_flag 其值等于1表示必须遵从标准中附录A.2.1(即上面)所指明的所有约束条件;等于0表示不必遵从所以条件。
--------------------------------------------------------------------------------------------
h264 level
每个profile 都规定了一个算法特征和限制的子集,任何遵守某个profile 的解码器都应该支持与其相应的子集。
每个level都规定了一组对标准中语法成员(syntax element)所采用的各种参数值的限制。
在给定的profile下,level通常与解码器的处理能力和内存容量相对应。每一个档次设置不同的参数(如取样速率、图像尺寸、编码比特率等),得到对应的编解码器性能的不同level。
下图是levels参数表格
几种h.264 software encoder
h264 profile & level的更多相关文章
- H264编码profile & level控制
背景知识 先科普一下profile&level.(这里讨论最常用的H264) H.264有四种画质级别,分别是baseline, extended, main, high: 1.Baseli ...
- 流媒体技术学习笔记之(十六)H264编码profile & level控制
H.264有四种画质级别,分别是baseline, extended, main, high: 1.Baseline Profile:基本画质.支持I/P 帧,只支持无交错(Progressive)和 ...
- FFmpeg基础知识之————H264编码profile & level控制
H.264有四种画质级别,分别是baseline, extended, main, high: 1.Baseline Profile:基本画质.支持I/P 帧,只支持无交错(Progressive)和 ...
- H.264编码profile & level控制
背景知识 先科普一下profile&level.(这里讨论最常用的H264) H.264有四种画质级别,分别是baseline, extended, main, high: 1.Baseli ...
- H265 Profile & Level & Tier 介绍
H265/HEVC Profile Level Tier 档次.水平.等级 为了提供不同应用之间的兼容互通,HEVC/H265 定义了不同的编码 Profile 档次.Level 水平.Tier 等级 ...
- 【转】H264视频编码级别说明profile level Encoder
版权声明:本文为博主原创文章,未经博主允许不得转载. 首先要阐明所谓的AVC其实就是H.264标准,是由ITU-T和ISO/IEC组成的联合视频组(JVT,Joint Video Team)一起开发的 ...
- H264 Profile
H.264有四种profile,对应四种H264画质级别.每个profile支持一组特定的编码功能,并支持一类特定的应用,分别是BP.EP.MP.HP: 1. BP-Baseline Profile ...
- ffmpeg 编码h264 profile如何设置为baseline的问题
http://blog.csdn.net/kisaa133/article/details/7792008 使用最新版ffmpeg-0.11 libx264-125,使用默认编码时,用Eyecard发 ...
- iOS视频硬编码技术
iOS视频硬编码技术 一.iOS视频采集硬编码 基本原理 硬编码 & 软编码 硬编码:通过系统自带的Camera录制视频,实际上调用的是底层的高清编码硬件模块,即显卡,不使用CPU,速度快 软 ...
随机推荐
- 多节点 devstack 部署
1, 网络配置 每个节点 /etc/network/interfaces auto eth0 iface eth0 inet static address 192.168.42.11 netmask ...
- 【Docker】docker /var/lib/docker/aufs/mnt 目录满了,全是垃圾数据,咋搞?
命令: #!/bin/bash # 推荐方式 docker volume ls -f dangling=true | awk '{ print $2 }' | xargs docker volume ...
- Largest BST Subtree
Given a binary tree, find the largest subtree which is a Binary Search Tree (BST), where largest mea ...
- CEF3开发者系列之进程间消息传递
在使用CEF3作为框架开发过程中,实现WebSockets.XMLHttpRequest.JS与本地客户端交互等功能时,需要在渲染(Render)进程和浏览(Browser)进程中传递消息.CEF3在 ...
- ubuntu14.04和win7共享文件夹
环境:vmware12 问题:安装了vmware-tools,但是在/mnt/hgfs下面看不到共享的文件夹. 按照网上的一些经验和教程使用如下命令: mount -t vmhgfs .host:/ ...
- MySQL thread pool【转】
本文来自:http://blog.chinaunix.net/uid-26896862-id-3993773.html 刚刚经历了淘宝的双11,真实感受到了紧张的氛围.尽管DB淡定的度过,但是历程中的 ...
- 关于定时器 setTimeout
1.这里不考虑线程问题.把javascript想象成在时间线上运行,页面载入时,首先执行的是<script>标签中的代码,之后,将执行更多代码,当进程空闲时,下个代码就被触发并执行 如图: ...
- (译)利用ASP.NET加密和解密Web.config中连接字符串
介绍 这篇文章我将介绍如何利用ASP.NET来加密和解密Web.config中连接字符串 背景描述 在以前的博客中,我写了许多关于介绍 Asp.net, Gridview, SQL Server, A ...
- 【leetcode】Rotate List(middle)
Given a list, rotate the list to the right by k places, where k is non-negative. For example:Given 1 ...
- validation验证器指定action中某些方法不需要验证
今天写代码时,遇到个问题,在一个输入数据的页面有一个按钮,单击会发出请求从数据库中取数据,在这里出现问题,单击该按钮,配置的validation起作用,该请求没有到达后台的action 点击按钮选择作 ...