H264 sps和pps成员值含义

合集下载

H264编码详细说明

H264编码详细说明

序列、图像(存储单元)、宏块、像素一个序列的第一个图像叫做IDR 图像(立即刷新图像),IDR 图像都是I 帧图像。

H.264 引入IDR 图像是为了解码的重同步,当解码器解码到IDR 图像时,立即将参考帧队列清空,将已解码的数据全部输出或抛弃,重新查找参数集,开始一个新的序列。

●I帧(帧内编码帧)是一种自带全部信息的独立帧,无需参考其它图像便可独立进行解码。

视频序列中的第一个帧始终都是I帧。

I帧可以用来实现快进、快退以及其它随机访问功能。

如果新的客户端将参与查看视频流,编码器将以相同的时间间隔或者根据要求自动插入I帧。

I帧的缺点在于它们会占用更多的数据位,但I帧不会产生可觉察的模糊现象。

●P帧(帧间预测编码帧)需要参考前面的I帧和/或P帧的不同部分才能进行编码。

与I帧相比,P帧通常占用更少的数据位,但其缺点是,由于P帧对前面的P和I参考帧有着复杂的依赖性,因此对传输错误非常敏感。

●B帧(双向预测编码帧)需要同时以前面的帧和后面的帧作为参考帧。

不是参考帧,不会造成解码错误的扩散。

运算比较复杂,CPU占用较高。

I、B、P各帧是根据压缩算法的需要人为定义的,它们都是实实在在的物理帧。

一般来说,I帧的压缩率是7(跟JPG差不多),P帧是20,B帧可以达到50。

网络打包、网络抽象层单元(NALU)、片NALU的网络打包:(1) 额外开销要少,使MTU尺寸在100~64k字节范围都可以;(2) 不用对包内的数据解码就可以判别该包的重要性;(3) 载荷规范应当保证不用解码就可识别由于其他的比特丢失而造成的包不可解码;(4) 支持将NALU分割成多个RTP包;(5) 支持将多个NALU汇集在一个RTP包中。

●灵活宏块次序(FMO) 可以通过设置宏块次序映射表(MBAmap)来任意地指配宏块到不同的片组,FMO模式打乱了原宏块顺序,降低了编码效率,增加了时延,但增强了抗误码性能。

划分图像的模式各种各样,主要的有棋盘模式、矩形模式等。

H264编码原理详解

H264编码原理详解

H264编码原理详解前言•在日常生活中我们知道,电脑中的视频文件先要通过视频采集设备对物体进行采集,然后通过编码核心部件得到mp4,rmvb等格式进行保存。

有没有可能不经过上述核心编码部件采集之后直接进行显示呢?答案是可以的。

那为什么还要进行编码呢?答案是原始采集到的视频数据为YUV格式,这种格式不经过处理的话特别大,对于网络传输和永久保存非常不利,为了解决这个问题,就需要对原原始的视频数据进行压缩处理。

而H264则是目前一种流传广泛,成熟的视频压缩算法。

•先来看一个例子在学习H.264编码之前,我们先了解一下在手机相机拍摄视频的过程,如果Camera采集的YUV图像不做任何处理进行传输,那么每秒钟需要传输的数据量是多少?Camera采集的YUV图像通常为YUV420,根据YUV420的采样结构,YUV图像中的一个像素中Y、U、V分量所占比例为1:1/4:1/4,而一个Y分量占1个字节,也就是说对于YUV图像,它的一个像素的大小为(1+1/4+1/4)Y=3/2个字节。

如果直播时的帧率设置为30fps,当分辨率为1280x720,那么每秒需要传输的数据量为1280720(像素)30(帧)3/2(字节)=39.5MB;当分辨率为1920x720,那么每秒需要传输的数据量接近60MB,这对于手机的存储空间有很大考验,因此,我们就必须在拍摄形成视频文件保存在本地之前对采集的视频数据进行压缩编码。

H26X简介H261•目前国际上制定视频编解码技术的组织有两个,一个是“国际电联(ITU-T)”,它制定的标准有H.261、H.263、H.263+等,另一个是“国际标准化组织(ISO)”它制定的标准有MPEG-1、MPEG-2、MPEG-4等。

•H.261是1990年ITU-T制定的一个视频编码标准,属于视频编解码器。

设计的目的是能够在带宽为64kbps的倍数的综合业务数字网(ISDN forIntegrated Services Digital Network)上质量可接受的视频信号。

H264标准阅读笔记

H264标准阅读笔记

为便于阅读,特约定如下: 紫色: 未解决问题;浅蓝色:强调/突出重点内容;关键知识点和难点:难点/复杂问题;黄色: 推测/需要进一步确认和验证的结论;2007-11-6:JM 文档描述研究(一)I RC 问题是在2.6节中描述的,这些符号的含义是什么? 1)有关字母含义的说明j th picture in the i th GOP :表示第i 个GOP 的第j 幅图像。

bpp :就是每个像素的bits 数。

Bits per pixel(?). 1) 图像数据ii i i i i i i N j fj R j b j V j V otheri N V V ,...,3,2)1()1()1()(1)(0)1(11=−−−+−=⎩⎨⎧==−−以上公式含义说明:若为第1个GOP 图像组的第一个图像,那么,此时虚存为0,容易理解;若为某个GOP 图像组的第一个图像,那么,此时的虚存为上一个GOP 的虚存。

对于不是第一个图像的情况,此时的虚存为上一个图像编码时占据的虚存。

II 请教个问题:对于GOP 图像序列,若编码第i 个GOP 的第j 个图像时,此时在虚存中保留着上一个GOP 的所有图像数据?解答:IGOP 就是第一frame 为IDR,然后其余frame 按照预设的frame 类型序列编码,直到该周期结束;接着开始下一个GOP,但此时第一frame 图像不是IDR,因此,它要保留前一个GOP 中的信息(至少是部分信息)。

2007-11-6:JM 文档描述研究(二)I 总体而言,JM 模型主要的数据结构、文件内容、函数功能、软件架构和核心算法是怎样的?JM 模型主要的描述和说明文档有哪些?JMII 请教:1) jm 中InputParameters 中成员IntraBottom 什么含义? 2) 数组存储的数据用作什么? LevelScale4x4Luma LevelScale4x4Chroma LevelScale8x8Luma InvLevelScale4x4Luma InvLevelScale4x4Chroma InvLevelScale8x8Luma3)下面代码来自函数void init_poc()if (input->BRefPictures == 1) {img->offset_for_non_ref_pic = 0; img->offset_for_ref_frame[0] = 2; } else {img->offset_for_non_ref_pic = -2*(input->successive_Bframe); img->offset_for_ref_frame[0] = 2*(input->successive_Bframe+1); }它的实现原理是什么?解答:当输入参数表明B 参考图像可以用作参考frame 时,不存在非参考图像的问题,因此,所谓的偏移为0;否则,就存在偏移。

RTP的H.264视频传输技术的探究

RTP的H.264视频传输技术的探究

RTP的H.264视频传输技术的探究RTP(Real-time Transport Protocol)是一种用于在Internet上传输多媒体数据的通讯协议。

在H.264视频传输领域,RTP协议也扮演着非常重要的角色。

本文将探究RTP 的H.264视频传输技术,在传统RTP技术的基础上进行了怎样的变化和创新,以及它所带来的优势和挑战。

我们来了解一下H.264视频传输技术的基本原理。

H.264是一种视频压缩标准,它可以将高质量视频进行高效地压缩,从而减小视频文件的大小和网络带宽的需求。

H.264在视频质量和传输效率方面都具有显著的优势,因此在视频传输领域被广泛应用。

而RTP协议则是用于在IP网络上传输多媒体数据流的协议,它提供了一种标准的、灵活的、适用于各种应用场景的方法,用于传输音频和视频数据。

RTP协议可以保证多媒体数据的实时传输,同时还能提供同步、复用、定时和带宽管理等功能。

在H.264视频传输领域,RTP协议可以很好地与H.264技术相结合,实现高效的视频传输。

RTP的H.264视频传输技术在传统的RTP技术上进行了怎样的变化和创新呢?H.264视频传输技术对传统RTP协议的扩展和优化,使得其可以更好地支持H.264视频编码标准。

H.264视频传输技术增加了一系列新的RTP扩展头,用于传输H.264视频流的参数和控制信息,例如Sequence Parameter Set(SPS)和Picture Parameter Set(PPS),这样可以使接收端根据这些信息对视频进行解码。

这样一来,RTP协议就可以更好地支持H.264视频格式的传输。

H.264视频传输技术还对RTP协议进行了一些编解码器级别的优化,例如在传输过程中对不同类型的帧进行优先级的调整和处理,使得关键帧和预测帧能够更快地在传输端和接收端之间进行同步和传输,从而提高传输效率和视频质量。

H.264视频传输技术还对RTP 协议的报文格式和传输方式进行了一定的调整,以更好地满足H.264视频编码标准的特点和需求。

H.264笔记

H.264笔记

H.264笔记收藏H.264标准写得比较繁复,所以考虑在浏览完Whitepaper之后就开始研读X264代码。

X264代码风格还是比较清晰简洁的。

根据对标准得理解,Picture Order Count在Slice解码的一开始就被提及:I0 B1 B2 P3 B4 B5 P6I0 P3 B1 B2 P6 B4 B5于是I0的POC是0,P3的POC是3,B1是1……为了支持H264复杂的帧存机制,X264以专门的一个模块frame.c进行处理。

common/frame.c中包括一组帧缓冲操作函数。

包括对帧进行FILO和FIFO存取,空闲帧队列的相应操作等。

以下逐个函数分析encoder.c中编码一帧的函数x264_encoder_encode中有关frame的调用:x264_reference_update这个函数里最主要的工作的是将上一个参考帧放入参考帧队列,并从空闲帧队列中取出一帧作为当前的参考工作帧(即解码操作的目的帧),即h->fdec。

x264_t 结构体维护着CODEC的诸多重要信息,其中成员frames是一个指示和控制帧编码过程的结构。

其中current是已经准备就绪可以编码的帧,其类型已经确定;next是尚未确定类型的帧;unused用于回收不使用的frame结构体以备今后再次使用。

frames结构体中i_input指示当前输入的帧的(播放顺序)序号。

i_delay设置为由B帧个数(线程个数)确定的帧缓冲延迟,在多线程情况下为i_delay = i_bframe + i_threads - 1。

而判断B帧缓冲填充是否足够则通过条件判断:h->frames.i_input <= h->frames.i_delay + 1 - h->param.i_threads。

x264_encoder_encode 每次会以参数送入一帧待编码的帧pic_in,函数首先会从空闲队列中取出一帧用于承载该新帧,而它的i_frame被设定为播放顺序计数,如:fenc->i_frame = h->frames.i_input++。

H264(NAL简介与I帧判断)

H264(NAL简介与I帧判断)

H264(NAL简介与I帧判断)1、NAL全称Network Abstract Layer, 即⽹络抽象层。

在H.264/AVC视频编码标准中,整个系统框架被分为了两个层⾯:视频编码层⾯(VCL)和⽹络抽象层⾯(NAL)。

其中,前者负责有效表⽰视频数据的内容,⽽后者则负责格式化数据并提供头信息,以保证数据适合各种信道和存储介质上的传输。

因此我们平时的每帧数据就是⼀个NAL单元(SPS与PPS除外)。

在实际的H264数据帧中,往往帧前⾯带有00 00 00 01 或 00 00 01分隔符,⼀般来说编码器编出的⾸帧数据为PPS与SPS,接着为I帧……如下图:2、如何判断帧类型(是图像参考帧还是I、P帧等)?NALU类型是我们判断帧类型的利器,从官⽅⽂档中得出如下图:我们还是接着看最上⾯图的码流对应的数据来层层分析,以00 00 00 01分割之后的下⼀个字节就是NALU类型,将其转为⼆进制数据后,解读顺序为从左往右算,如下:(1)第1位禁⽌位,值为1表⽰语法出错(2)第2~3位为参考级别(3)第4~8为是nal单元类型例如上⾯00000001后有67,68以及65其中0x67的⼆进制码为:0110 01114-8为00111,转为⼗进制7,参考第⼆幅图:7对应序列参数集SPS其中0x68的⼆进制码为:0110 10004-8为01000,转为⼗进制8,参考第⼆幅图:8对应图像参数集PPS其中0x65的⼆进制码为:0110 01014-8为00101,转为⼗进制5,参考第⼆幅图:5对应IDR图像中的⽚(I帧)所以判断是否为I帧的算法为:(NALU类型 & 0001 1111) = 5 即 NALU类型 & 31 = 5⽐如0x65 & 31 = 5帧格式H264帧由NALU头和NALU主体组成。

NALU头由⼀个字节组成,它的语法如下:+---------------+|0|1|2|3|4|5|6|7|+-+-+-+-+-+-+-+-+|F|NRI| Type |+---------------+F: 1个⽐特.forbidden_zero_bit. 在 H.264 规范中规定了这⼀位必须为 0.NRI: 2个⽐特.nal_ref_idc. 取00~11,似乎指⽰这个NALU的重要性,如00的NALU解码器可以丢弃它⽽不影响图像的回放,0~3,取值越⼤,表⽰当前NAL越重要,需要优先受到保护。

【什么是h.264,什么是mpeg2】-数码摄像机论坛-zol中关村在线

【什么是H.264,什么是MPEG2。

】-数码摄像机论坛-ZOL中关村在线什么是H.264,什么是MPEG2。

一、H.264简介H.264是ITU-T的视频编码专家组(VCEG)和ISO/IEC 的活动图像编码专家组(MPEG)的联合视频组(JVT:joint videoteam)开发的一个新的数字视频编码标准,它既是ITU-T 的H.264,又是ISO/IEC的MPEG-4的第10部分。

H.264和以前的标准一样,也是DPCM加变换编码的混合编码模式。

JVT(JointVideoTeam,视频联合工作组)于2001年12月在泰国Pattaya成立。

它由ITU-T和ISO两个国际标准化组织的有关视频编码的专家联合组成。

JVT的工作目标是制定一个新的视频编码标准,以实现视频的高压缩比、高图像质量、良好的网络适应性等目标。

目前JVT的工作已被ITU-T接纳,新的视频压缩编码标准称为H.264标准,该标准也被ISO接纳,称为A VC(Advanced Video Coding)标准,是MPEG-4的第10部分。

H.264标准可分为三档:基本档次(其简单版本,应用面广);主要档次(采用了多项提高图像质量和增加压缩比的技术措施,可用于SDTV、HDTV和DVD等);扩展档次(可用于各种网络的视频流传输)。

H.264标准压缩系统由视频编码层(VCL)和网络提取层(Network Abstraction Layer,NAL)两部分组成。

VCL中包括VCL编码器与VCL解码器,主要功能是视频数据压缩编码和解码,它包括运动补偿、变换编码、熵编码等压缩单元。

NAL则用于为VCL提供一个与网络无关的统一接口,它负责对视频数据进行封装打包后使其在网络中传送,它采用统一的数据格式,包括单个字节的包头信息、多个字节的视频数据与组帧、逻辑信道信令、定时信息、序列结束信号等。

包头中包含存储标志和类型标志。

存储标志用于指示当前数据不属于被参考的帧。

H264基础简介

H264基础简介前⾔H264是属于视频的编码层的标准格式,视频编码显然是为了压缩⼤⼩。

我们看下⼀个完全没压缩的视频数据⼤⼩。

假设视频是⾼清(1280 * 720),每秒30帧,也就是每秒的数据1280 * 720 *30 / 8(字节) /1024(KB)/1024(MB) = 3.11MB那么90分钟的电影就要16.7GB,这个数据量显然在当前⽹络下是不现实的。

视频压缩的原理就是去除视频冗余部分,下⾯列举下1,时间冗余时间冗余是序列图像(电视图像、动画)和语⾳数据中所经常包含的冗余。

图像序列中的两幅相邻的图像,后⼀幅图像与前⼀幅图像之间有较⼤的相关性,这反映为时间冗余。

同理,在语⾔中,由于⼈在说话时发⾳的⾳频是⼀连续的渐变过程,⽽不是⼀个完全的在时间上独⽴的过程,因⽽存在时间冗余。

2,空间冗余空间冗余是图像数据中经常存在的⼀种冗余。

在同⼀幅图像中,规则物体和规则背景(所谓规则是指表⾯颜⾊分布是有序的⽽不是杂乱⽆章的)的表⾯物理特性具有相关性,这些相关性的光成像结构在数字化图像中就表现为数据冗余。

,3,知识冗余有许多图像的理解与某些基础知识有相当⼤的相关性,例如:⼈脸的图像有固定的结构。

⽐如,嘴的上⽅有⿐⼦。

⿐⼦的上⽅有眼睛,⿐⼦位于正脸图像的中线上等等。

这类规律性的结构可由先验知识相背景知识得到,我们称此类冗余为知识冗余。

4,结构冗余有些图像从⼤域上看存在着⾮常强的纹理结构,例如布纹图像和草席图像,我们说它们在结构上存在冗余。

5,视觉冗余⼈类视觉系统对于图像场的任何变化,并不是都能感知的。

例如,对于图像的编码和解码处理时,由于压缩或量⽐截断引⼊了噪声⽽使图像发⽣了⼀些变化,如果这些变化不能为视觉所感知,则仍认为图像⾜够好。

事实上⼈类视觉系统⼀般的分辨能⼒约为26灰度等级,⽽⼀般图像量化采⽤28灰度等级,这类冗余我们称为视觉冗余。

通常情况下,⼈类视觉系统对亮度变化敏感,⽽对⾊度的变化相对不敏感;在⾼亮度区,⼈眼对亮度变化敏感度下降。

H264 SVC

motion-compensated prediction
GOP border
GOP border
CIF
inter-layer prediction
QCIF
key pictures key pictures
6
interinter-layer prediction
◆由于低层是由高层通过下采样得到的,因此在相 同的时域分辨率情况下,每一个高层帧都有与之 相对应的低层帧,两者之间存在着显而易见的相 关性,我们称之为层间冗余。显然,为了获得更 高的压缩效率,有必要通过各种层间预测技术来 消除层间冗余,这也是空域可伸缩性技术的关键 所在。设计层间预测算法的目的是尽可能利用基 本层的信息提高增强层的编码效率。 ◆inter-layer intra prediction ◆inter-layer motion prediction ◆inter-layer residual prediction
10
参考代码
◆仅有JVSM( Joint Multiview Video Model) ◆开源软件-有个svc的解码器,但是不支持 windows平台 ◆参考代码复杂度高,可读性差,主要是进 行技术研制的。
11
12
2

SVC
◆ SVC为了能够实现从单一码流中解码得到不同 帧率(时间可分级)、分辨率(空间可分级)和 图像质量(SNR可分级)的视频数据的编码技术。 ◆ H.264 SVC以H.264 AVC 视频编解码器标准为 基础,利用了AVC编解码器的各种高效算法工具, 在编码产生的编码视频时间上(帧率)、空间上 (分辨率)可扩展,并且是在视频质量方面可扩 展的,可产生不同帧速率、分辨率或质量等级的 解码视频。
H264 SVC Scalable Video Coding

H264编码参数的一些小细节

H264编码参数的⼀些⼩细节
⼀次写播放器,基于ijkplayer。在播放⼀些⽹络视频的时候,发现⽆论怎么转码,视频⽐例始终不对。即便获取了分辨率,但是播放的时
候,view不是分辨率⽐例的那个长宽⽐。
使⽤ffmpeg查看了⼀下属性,见下图:

原来有⼏个参数,之前都没有认真对待的。
SAR 2:1 DAR 32:9
视频本⾝的分辨率是1080P,即 1920x1080

查资料才发现,视频在使⽤264编码的时候,使⽤了sar和dar⽐例限制。
看wikipedia对DAR和SAR的解释

原来:
DAR,Display_aspect_ratio,是指定该视频播放的时候,看到的视频⽐例。
SAR,Storage aspect ratio,是指采集这个视频的⽐例,也就是存储像素点的⽐例。
这两个中间如果有差别的话,肯定有⼀个因素,就是像素点不是矩形的,不是1:1的单个像素点。
这⾥就产⽣了PAR,Pixel Aspect Ratio
DAR = SAR x PAR
wikipedia关于PAR的解释

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

H.264 SPS/PPS员值义成含(转)(2011-01-06 09:03:39)转载标签:分类:视频技术相关it一、sequence_parameter_set_rbsp_t结构体内成员及用途1. unsigned profile_idc:它指的是码流对应的profile.1.1 基线profile(Baseline profile)遵循基线profile的码流应该遵循以下的约束:a) 只有I和P切片存在b) NAL单元流不应该有范围在2到4的nal_unit_type值,包括2和4.c) 序列参数集(sps)的frame_mbs_only_fag(之后介绍)应该等于1d) 图象参数值(psp)的weighted_pred_flag和weighted_bipred_idc都应该为0e) 图象参数值(psp)的entropy_coding_mode_flag应该等于0f) 图象参数值(psp)的num_slice_groups_minus1应该在0到7之间,包括0和7g) 对于基线profile对应的level度应该满足.符合基线profile的码流的profile_idc被赋66.符合一定level的基线Baseline的解码器应该可以解码所有的profile_idc等于66的码流或constrained_set0_flag(等会介绍)为1而且level_idc(在level部分介绍)少于或等于一个指定的level的码流。

1.2 主profile(Main profile)符合主profile的码流应该遵循以下的约束:a) 只有I,P,B切片存在.b) NAL单元流不包括nal_unit_type值范围在2-4之内的值。

包括2和4.c) 不能允许有随意顺序的切片d) 图像参数集(psp)的num_slice_groups_minus1应该只为0e) 图像参数集(psp)的redundant_pic_cnt_present_flag应该只为0f) 对于主profile所要求的level级需要达到。

符合主profile的码流的profile_idc应为77。

符合指定level的主profile 的解码器应该可以解码所有的profile_idc为77的或constrained_set1_flag值为1且level_idc值小于或等于指定level的码流。

1.3 扩展profile(Extended profile)符合扩展profile的码流应该遵循以下的约束:a) 序列参数集的direct_8x8_inference_flag值应该为1b) 图像参数集的entropy_coding_mode_flag值应该为0c) 图像参数集的num_slice_groups_minus1的值范围为0到7,包括0和7d) 对于扩展profile指定的level级应该被达到符合指定level级的扩展profile的解码器可以解码所有的profile_idc值为88的或constrained_set2_flag值为1的,而且level_idc小于等于指定level级的码流。

符合指定level级的扩展profile的解码器可以解码所有的profile_idc值为66的或constrained_set0_flag值为1的,而且level_idc小于等于指定level级的码流。

2. constrained_set0_flag当constrained_set0_flag值为1的时候,就说明码流应该遵循基线profile(Baseline profile)的所有约束.constrained_set0_flag值为0时,说明码流不一定要遵循基线profile的所有约束。

3. constrained_set1_flag当constrained_set1_flag值为1的时候,就说明码流应该遵循主profile(Main profile)的所有约束.constrained_set1_flag值为0时,说明码流不一定要遵循主profile的所有约束。

4. constrained_set2_flag当constrained_set2_flag值为1的时候,就说明码流应该遵循扩展profile(Extended profile)的所有约束.constrained_set2_flag值为0时,说明码流不一定要遵循扩展profile的所有约束。

注意:当constraint_set0_flag,constraint_set1_flag或constraint_set2_flag 中不只一个值为1的话,那么码流必须满足所有相应指明的profile约束。

5. level_idc它指的是码流对应的level级.5.1 独立于profile的level约束让fR是这样一个变量:a) 如果图像n是一帧,fR设为1/172b) 如果图像n是一个场,fR设为1/(172*2)任何profile下的指定的level都应该满足如下约束:a) 理论上可访问单元n从CPB中的移除时间满足这样的约束:t(n)-t(n-1)要比Max(PicSizeInMbs,MaxMBPS,fR)值大或相等,MaxMBPS是说在level表中指出的对于图像n的值,PicSizeInMbs是指在图像n中的宏块数。

b) 如果图像n是一个输出图像而且它不是码流的最后一个输出图象,从DPB中取出的连续的输出图象差满足:Dt(n) >= Max(PicSizeInMbs, MaxMBPS, fR), MaxMBPS是指对于图象n来说的相应的值。

PicSizeInMbs指图象n的宏块。

c) 对于可访问单元0的NumBytesInNALunit变量的总和少于或等于256*ChromaFormatFactor*(PicSizeInMbs+MaxMBPS*tr(0)-trn(0)/MinCR,MaxMBPS和MinCR是图象0在level表中相应的值,PicSizeInMbs是图象0的宏块数量。

d) 对于可访问单元n的NumBytesInNALunit值的总和是小于或等于256*ChromaFormatFactor*MaxMBPS*(tr(n)-trn(n-1))/MinCR,MaxMBPS和MinCR的值是图像n在level级表中对应的值。

e) PicWidthInMbs * FrameHeightInMbs <= MaxFS, MaxFS是在level表中指定的值。

f) PicWidthInMbs <= Sqrt(MaxFS * 8)g) FrameHeightInMbs <= Sqrt(MaxFS * 8)h) max_dec_frame_buffering <=MaxDpbSize, MaxDpbSize等于Min(1024 * MaxDPB /(PicWidthInMbs * FrameHeightInMbs * 256 * ChromaFormatFactor,16),MaxDPB是对于1024字节单元的MaxDPB值,max_dec_frame_buffering也叫做DPB大小值。

i) 对于VCL HRD参数值,至少对于一个SchedSelIdx值来说,码率BitRate[SchedSelIdx] <= 1000 *MaxBR且CpbSize[SchedSelIdx] <= 1000 * MaxCPB。

MaxBR和MaxCPB是对于1000bits/s和1000位单元对应于level级表的值。

码流应该为0到cpb_cnt_minus1中的一个值,包括0和cpb_cnt_minus1.CpbSize[SchedSelIdx]也叫做CPB大小值。

j) 对于NAL HRD参数来说,BitRate[SchSelIdx] <= 1200 * MaxBR且CpbSize[SchedSelIdx] <= 1200* MaxCPB,MaxBR和MaxCPB是在1200bits/s和1200位的单元值在极限level下的值。

码流应该满足至少SchedSelIdx值从0到cpb_cnt_minus1中的一个值。

k) 在亮度帧采样中,垂直运动向量元素范围不能超过MaxVmvR,MaxVmvR值在level极限表中提供l) 在亮度帧采样单元中,水平运动向量范围不能超过-2048到2047.75,包括-2048和2047.75。

m) 按解码顺序的两个连续的宏愉的运动向量的数量不超过MaxMvsPer2Mb(对于当前宏块的最后一个切片和下一个宏块的第一个切片也适用),MaxMvsPer2Mb值在level极限表中提供.n) 对于任何宏块的macroblock_layer()的位数值都不能大于128 + 2048 * ChromaFormatFactor.依赖于entropy_coding_mode_flag值,macroblock_layer()的值由如下方式计算如果entropy_coding_mode_flag值为0的话,macroblock_layer()的值由macroblock_layer()的对于一个macroblock的语法结构给出其他情况下,对于一个宏块的macroblock_layer()值是由read_bits(1)给出的.5.2 与profile相关的level级对于基线profile,主profile和扩展profile的相应的level级约束在H.264的文档中有表可查。

6. seq_parameter_set_idseq_parameter_set_id指定了由图像参数集指明的序列参数集。

seq_parameter_set_id值应该是从0到31,包括0和31注意:当可用的情况下,编码器应该在sps值不同的情况下使用不同的seq_parameter_set_id值,而不是变化某一特定值的seq_parameter_set_id的参数集的语法结构中的值。

7. log2_max_frame_num_minus4log2_max_frame_num_minus4指定了变量MaxFrameNum的值,MaxFrameNum =2(log2_max_frame_num_minus4+4)log2_max_frame_num_minus的值应该在0到12之间,包括0和12.8. pic_order_cnt_typepic_order_cnt_type指定了解码图像顺序的方法。

pic_order_cnt_type的值是0,1,2。

pic_order_cnt_type在当一个编码视频序列有如下限定时不为2a) 包含非参考帧的可访问单元,并紧接着一个包含非参考可访问单元b) 两个可访问单元,它们分别包含两个场中的一个,它们一块儿组成了一个互补的非参考场对,被紧接着一个包括非参考图像的可访问单元。

相关文档
最新文档