H264详解
H264详解
h.264详解:什么是H.264编码H.264是什么格式2009-04-24 12:53一、H.264与其他标准的比较1.1在画质上H.264概述随着市场的需求,在尽可能低的存储情况下获得好的图像质量和低带宽图像快速传输已成为视频压缩的两大难题。
为此IEO/IEC/和ITU-T两大国际标准化组织联手制定了新一代视频压缩标准H.264。
1.2在编码上H.264和以前的标准一样,也是DPCM加变换编码的混合编码模式。
但它采用“回归基本”的简洁设计,不用众多的选项,获得比MEPG-4好得多的压缩性能;H.264加强了对各种信道的适应能力,采用“网络友好”的结构和语法,有利于对误友和丢包的处理;H.264应用目标范围较宽,可以满足不同速率、不同解析度以及不同传输(存储)场合的需求。
1.3在技术上H.264标准中有多个闪光之处,如统一的VLC符号编码,高精度、多模式的位移估计,基于4块的整数变换、分层的编码语法等。
这些措施使得H.264得算法具有很高的编码效率,在相同的重建图像质量下,能够比H.263节约50%左右的码率。
H.264的码流结构网络适应性强,增加了差错恢复能力,能够很好地适应IP和无线网络的应用。
1.4在传输上H.264能以较低的数据速率传送基于联网协议(IP)的视频流,在视频质量、压缩效率和数据包恢复丢失等方面,超越了现有的MPEG-2、MPEG-4和H.26x视频通讯标准,更适合窄带传输。
1.5在算法上MPEG-1标准视频编码部分的基本得法与H.261/H.263相似,也采用运动补偿的帧间预测、二维DCT、VLC游程编码等措施。
此外还引入了帧内帧(I)、预测帧(P)、双向预测帧(B)和直流帧(D)等概念,进一步提高了编码效率。
在MPEG-1的基础上,MPEG-2标准在提高图像分辨率、兼容数字电视等方面做了一些改进,例如它的运动适量的精度为半像素;在编码运算中(如运动估计和DCT)区分“帧”和“场”;引入了编码的可分级性技术,如空间可分级性、时间可分级性和信噪比可分级性等。
H264编解码协议详解
H264编解码协议详解H.264编解码协议,也被称为AVC(Advanced Video Coding),是一种广泛应用于视频压缩的标准。
它是一种基于帧的压缩算法,可以将高质量的视频数据以较低的比特率传输和存储。
以下是H.264编解码协议的详细解释:1.压缩结构H.264使用了多种技术来实现高效率的视频压缩。
它使用了预测编码、变换编码和熵编码等多种技术。
预测编码通过利用帧间和帧内的冗余性,对视频进行空间和时间上的预测。
变换编码则通过对预测误差进行离散余弦变换(DCT),在频域上进行编码。
最后,熵编码使用了熵编码表将变换后的数据进行进一步的压缩。
2.帧结构H264将视频数据划分为一系列的帧,每个帧包含了许多宏块(macroblock)。
其中,关键帧(I帧)是完全独立的帧,它包含了视频的全局信息。
预测帧(P帧)和双向预测帧(B帧)则通过对前一帧和前后一帧进行预测来进行编码。
P帧只依赖前一帧,而B帧则依赖前后两帧。
这种结构可以进一步提高视频压缩的效率。
3.量化参数H.264使用量化参数对预测误差进行编码。
量化参数决定了每个预测误差值的精度,较大的量化参数会导致更高的压缩率,但也会导致较大的失真。
编码器和解码器可以通过动态调整量化参数来平衡压缩率和失真。
4.帧间预测帧间预测是H.264压缩的核心技术之一、它通过对前后帧的像素进行比较,预测当前帧的像素值。
如果在帧间没有大的运动,那么预测误差就会较小,从而达到更好的压缩效果。
帧间预测有多种模式,包括帧间直接模式(inter-direct mode)、帧间双向模式(inter-bidirect mode)和帧间skip模式(inter-skip mode)等。
5.熵编码H.264使用了基于上下文的自适应变长编码(CAVLC)和基于上下文的自适应二进制算术编码(CABAC)两种熵编码技术。
CAVLC主要用于编码量化系数和运动矢量等数据,而CABAC主要用于编码预测模式和其他语法元素。
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编码原理详解前言•在日常生活中我们知道,电脑中的视频文件先要通过视频采集设备对物体进行采集,然后通过编码核心部件得到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芯片H.264芯片,也被称为AVC(Advanced Video Coding),是一种视频压缩标准,被广泛应用于视频编码和解码设备中。
以下是关于H.264芯片的1000字介绍:第一部分:H.264芯片的背景和概述(200字)H.264是一种视频压缩标准,由国际电信联盟(ITU)和国际标准化组织(ISO)共同开发。
它被认为是当前最先进的视频压缩技术之一,具有卓越的压缩性能和视频质量。
H.264芯片是实现H.264视频编码和解码功能的专用芯片,其设计和优化旨在提高视频传输和存储的效率。
第二部分:H.264芯片的工作原理(300字)H.264芯片通过采用一系列算法和技术,将视频信号压缩为更小的比特流,以减少数据量并提高传输效率。
在视频编码方面,H.264芯片使用了多种技术,包括运动补偿、变换和量化等。
运动补偿技术通过在连续的视频帧之间检测和预测移动物体的位置,从而减少重复信息的传输。
变换技术将视频信号从时域转换为频域表示,以便更好地进行压缩。
量化技术通过减少视频信号的精度和细节,以减少比特流的大小。
在视频解码方面,H.264芯片将接收到的压缩比特流转换为可视的视频帧。
它通过反向过程解压缩比特流,恢复出原始视频信号。
解码过程主要包括解码器的控制、解码过程和图像恢复等步骤。
H.264芯片通常会集成在视频编码和解码设备中,如数字摄像机、视频会议系统和流媒体服务器等。
第三部分:H.264芯片的应用领域(300字)H.264芯片被广泛应用于多个领域,其中包括数字媒体领域、通信领域和安全领域。
在数字媒体领域,H.264芯片常用于数字摄像机和网络摄像机等设备,用于实时视频传输和存储。
它可以提供高质量的视频效果,并减少存储空间和带宽消耗。
在通信领域,H.264芯片被广泛应用于视频会议系统、手机和IP电话等设备,用于实时视频通信。
它可以提供更流畅和清晰的视频通话体验。
在安全领域,H.264芯片还可以用于视频监控系统和安防设备,实现高效的视频压缩和存储。
H.264详解
H.264详解H.264,同时也是MPEG-4第十部分,是由ITU-T视频编码专家组(VCEG)和ISO/IEC动态图像专家组(MPEG)联合组成的联合视频组(JVT,Joint Video Team)提出的高度压缩数字视频编解码器标准。
H.264基本概况随着HDTV的兴起,H.264这个规范频频出现在我们眼前,HD-DVD和蓝光均计划采用这一标准进行节目制作。
而且自2005年下半年以来,无论是NVIDIA还是ATI都把支持H.264硬件解码加速作为自己最值得夸耀的视频技术。
H.264到底是何方“神圣”呢?H.264是一种高性能的视频编解码技术。
目前国际上制定视频编解码技术的组织有两个,一个是“国际电联(ITU-T)”,它制定的标准有H.261、H.263、H.263+等,另一个是“国际标准化组织(ISO)”它制定的标准有MPEG-1、MPEG-2、MPEG-4等。
而H.264则是由两个组织联合组建的联合视频组(JVT)共同制定的新数字视频编码标准,所以它既是ITU-T的H.264,又是ISO/IEC的MPEG-4高级视频编码(Advanced Video Coding,AVC),而且它将成为MPEG-4标准的第10部分。
因此,不论是MPEG-4 AVC、MPEG-4 Part 10,还是ISO/IEC 14496-10,都是指H.264。
H.264最大的优势是具有很高的数据压缩比率,在同等图像质量的条件下,H.264的压缩比是MPEG-2的2倍以上,是MPEG-4的1.5~2倍。
举个例子,原始文件的大小如果为88GB,采用MPEG-2压缩标准压缩后变成3.5GB,压缩比为25∶1,而采用H.264压缩标准压缩后变为879MB,从88GB到879MB,H.264的压缩比达到惊人的102∶1!H.264为什么有那么高的压缩比?低码率(Low Bit Rate)起了重要的作用,和MPEG-2和MPEG-4 ASP等压缩技术相比,H.264压缩技术将大大节省用户的下载时间和数据流量收费。
H264标准详解
H264标准详解H.264 标准详解JVT(Joint Video T eam,视频联合工作组)于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 不仅比H.263 和MPEG-4 节约了50%的码率,而且对网络传输具有更好的支持功能。
它引入了面向IP 包的编码机制,有利于网络中的分组传输,支持网络中视频的流媒体传输。
H.264 具有较强的抗误码特性,可适应丢包率高、干扰严重的无线信道中的视频传输。
H.264 支持不同网络资源下的分级编码传输,从而获得平稳的图像质量。
H.264 能适应于不同网络中的视频传输,网络亲和性好。
一、H.264 视频压缩系统H.264 标准压缩系统由视频编码层(VCL)和网络提取层(Network Abstraction Layer,NAL)两部分组成。
VCL 中包括VCL 编码器与VCL 解码器,主要功能是视频数据压缩编码和解码,它包括运动补偿、变换编码、熵编码等压缩单元。
NAL 则用于为VCL 提供一个与网络无关的统一接口,它负责对视频数据进行封装打包后使其在网络中传送,它采用统一的数据格式,包括单个字节的包头信息、多个字节的视频数据与组帧、逻辑信道信令、定时信息、序列结束信号等。
包头中包含存储标志和类型标志。
H264媒体和数据传输介绍
H264媒体简单说明一、H264简介H264分层结构由五层组成:序列参数集(sps)图像参数集(pps)片(slice)宏块、子块其中后面层应用前面层(或则说从属关系);其中序列的第一个帧叫做IDR帧,用于清空参考帧队列,避免错误累积。
H264 nalu包RTP传输一般分为三种情况:单一nalu模式,一般nalu<mtu组合封包模式,多个nalu组成一个RTP包分片封包模式,一般nalu>mtu依据不同帧的情况来实现不同打包,代码可参考NALU打包demo二、H264的文件存储和传输区别H264的文件存储:每一个NALU包前都会多一个00 00 01 or 00 00 00 01的起始头,作为NALU包之间的分隔标识;并通过给非起始头的00 00后插入0x03来避免标识冲突。
取数据后,起始头需要丢掉,0x03数据也需要去除。
H264的文件传输:NALU包属于传输包的自然分割,不需要加起始头。
包格式一般是:x串+h264nalu头+h264data比如RTP传输,x串往往就是RTP头(一般12字节)三、H264和MP4关系是ITU-T与ISO/IEC两个组织联合进行开发的视频编解码方案。
ITU-T命名为H264ISO/IEC命名为MPEG-4 A VC是MPEG-4标准的第10部分其中标准H264格式的文件存储不是国际标准格式相关传输协议简单说明(本次使用到)一、RTP/RTCP、RTSP、SIP等RTP/RTCP是传输层的传输和控制协议,是一个传输子层,运行在TCP/UDP之上RTSP/SIP是更上一层的传输协议SIP运行在RTP之上RTSP直接在TCP/UDP上运行二、RTP包头音频和视频采用不同端口,初期先考虑仅H264视频三、RTCP在RTP会话期间,各参与者周期性地传送RTCP包,包中含有已发送的数据包的数量、丢失的数据包的数量等统计资料。
分为五类:200 SR 发送端报告主要考虑201 RR 接收端报告202 SDES 源点描述203 BYE 结束传输204 APP 特定应用SR主要包括:相应的RTP流的SSRC(丢失率、累计丢包数、接收抖动、上次SR以来的延时等)、RTP流中最新产生的RTP分组时间戳和NTP、RTP流包含的分组数、字节数。
H264编码原理以及I帧、B和P帧详解,H264码流结构分析
H264编码原理以及I帧、B和P帧详解,H264码流结构分析H264码流结构分析/chenchong_219/article/details/379905411、码流总体结构:h264的功能分为两层,视频编码层(VCL)和⽹络提取层(NAL)。
H.264 的编码视频序列包括⼀系列的NAL 单元,每个NAL 单元包含⼀个RBSP。
⼀个原始的H.264 NALU 单元常由 [StartCode] [NALU Header] [NALU Payload] 三部分组成,其中 Start Code ⽤于标⽰这是⼀个NALU 单元的开始,必须是"00 00 00 01" 或"0000 01"。
其中RBPS有分为⼏种类型:NAL的解码单元的流程如下:2、 NAL Header:占⼀个字节,由三部分组成forbidden_bit(1bit),nal_reference_bit(2bits)(优先级),nal_unit_type(5bits)(类型)。
forbidden_bit:禁⽌位。
nal_reference_bit:当前NAL的优先级,值越⼤,该NAL越重要。
nal_unit_type :NAL类型。
参见下表⼏个例⼦:3、 ffmpeg解析H264流程分析这是⼀段实际的码流在上⾯的图⽚中,共有三个起始码:0x00 0000 01const uint8_t*ff_h264_decode_nal(H264Context*h, const uint8_t *src,int *dst_length, int*consumed, int length)中分析过程为:h->nal_ref_idc= src[0] >> 5;h->nal_unit_type= src[0] & 0x1F;此处src[0]即为06,写成⼆进制位0000 0110,则h->nal_ref_idc = 0,h->nal_unit_type = 6可以判断这个NALU类型为SEI,重要性优先级为0。
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越重要,需要优先受到保护。
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灰度等级,这类冗余我们称为视觉冗余。
通常情况下,⼈类视觉系统对亮度变化敏感,⽽对⾊度的变化相对不敏感;在⾼亮度区,⼈眼对亮度变化敏感度下降。
H.264详解
H.264详解为什么叫H.264H.264是一种视频高压缩技术,全称是MPEG-4 A VC,用中文说是“活动图像专家组-4的高等视频编码”,或称为MPEG-4 Part10。
它是由国际电信标准化部门ITU-T和规定MPEG的国际标准化组织ISO/国际电工协会IEC共同制订的一种活动图像编码方式的国际标准格式,这是我们叫惯了的MPEG中的一种,那为什么叫H.264呢?原来国际电信标准化部门从1998年就H.26L的H.26S两个分组,前者研制节目时间较长的高压缩编码技术,后者则指短节目标准制订部门。
H.26S 的标准化技术的名称为H.263,听起来很耳生,但实质上却早在用了,还被骂得很激烈。
因为,H.263先入为大,一直以MPEG-4大内涵的名字在用。
H.263的全称为MPEG-4 Visual或MPEG-4 Pall Ⅱ,即MPEG-4视频简单层面的基础编码方式。
2001年后,国际电信标准化部门ITU-T和MPEG的上级组织国际标准化组织ISO/国际电气标准会议IEC成立了联合视频组JVT,在H.26L基础进行H.264的标准化。
2002年12月9日~13日,在日本香川县淡路岛举行的MPEG聚会上确定了相关技术的规格。
规格书定稿后,2003年3月17日,H.364的技术格式最终稿国际标准规格(FDIS)被确立。
目前软件和LSI芯片,服务及设备也都进入了使用阶段。
格式书中,列出了比特流规定,解码必要格式,和可供参考的编码记载。
为了不引起误解,ITU-T推荐使用H.264作为这一标准的正式名称。
实际上,MPEG-4里还有MPEG-4 Audio和MPEG-4 System的不同规格。
MPEG-4挨骂是因为MPEG-4 Visual许可收费离谱引起的。
别以为有了专利就可以随意向人要钱了,专利的最终目的的是使全社会的智力资料更合理地使用,防止重复劳动,并不是犒赏最先发明者。
按唯美史观,当社会技术发展到某一阶段时,新技术必然会出现。
h264协议
h264协议H.264协议是一种视频压缩标准,也被称为MPEG-4 AVC(Advanced Video Coding),它是一种广泛使用的视频编解码标准,适用于各种应用领域,包括广播、电视、视频会议、移动视频等。
H.264协议的出现使得视频文件能够以更小的尺寸存储和传输,同时保持较高的视觉质量,因此备受业界青睐。
H.264协议的优势主要体现在其高压缩比和出色的视频质量上。
相比于之前的视频压缩标准,H.264能够将视频文件的尺寸压缩至原来的很小一部分,而且在保持高清晰度的情况下,大大减小了文件大小,这对于视频存储和传输来说是非常重要的。
另外,H.264还支持多种分辨率和帧率的视频,能够适应不同的播放环境和设备,这也是其受欢迎的原因之一。
在实际应用中,H.264协议被广泛应用于各种领域。
在数字电视领域,H.264被用于有线电视、卫星电视和互联网视频传输,它能够在有限的频谱和带宽条件下实现更高的视频质量。
在视频会议系统中,H.264协议能够实现更流畅、清晰的视频传输,让远程会议更加高效便捷。
而在移动视频领域,H.264协议也被广泛应用于各种移动设备上,能够保证在较低的网络带宽下依然能够播放高清视频。
除了以上的应用领域,H.264协议还在监控系统、医疗影像、视频广告等领域有着重要的地位。
它的出现极大地推动了数字视频技术的发展,为人们的生活和工作带来了诸多便利。
然而,虽然H.264协议有着诸多优势,但也存在一些挑战和局限性。
例如,H.264对编解码的复杂性要求较高,这对硬件设备和软件实现都提出了一定的要求。
此外,在处理低比特率下的视频时,H.264的性能可能会受到影响,出现失真等现象。
因此,随着技术的不断发展,人们也在不断寻求更高效的视频压缩标准,以满足不断增长的视频传输和存储需求。
总的来说,H.264协议作为一种先进的视频压缩标准,已经在各个领域得到了广泛的应用。
它的出现极大地促进了数字视频技术的发展,为视频存储和传输带来了革命性的变化。
直播一:H.264编码基础知识详解
直播⼀:H.264编码基础知识详解⼀、编码基础概念1、为什么要进⾏视频编码?视频是由⼀帧帧图像组成,就如常见的gif图⽚,如果打开⼀张gif图⽚,可以发现⾥⾯是由很多张图⽚组成。
⼀般视频为了不让观众感觉到卡顿,⼀秒钟⾄少需要16帧画⾯(⼀般是30帧),假如该视频是⼀个1280x720分辨率的视频,那么不经过编码⼀秒钟的⼤⼩:结果:1280x720x60≈843.75M所以不经过编码的视频根本没法保存,更不⽤说传输了。
2、视频压缩编码标准视频中存在很多冗余信息,⽐如图像相邻像素之间有较强的相关性,视频序列的相邻图像之间内容相似,⼈的视觉系统对某些细节不敏感等,对这部分冗余信息进⾏处理的过程就是视频编码。
H.26X系列(由ITU[国际电传视讯联盟]主导)H.261:主要在⽼的视频会议和视频电话产品中使⽤H.263:主要⽤在视频会议、视频电话和⽹络视频上H.264:H.264/MPEG-4第⼗部分,或称AVC(Advanced Video Coding,⾼级视频编码),是⼀种视频压缩标准,⼀种被⼴泛使⽤的⾼精度视频的录制、压缩和发布格式。
H.265:⾼效率视频编码(High Efficiency Video Coding,简称HEVC)是⼀种视频压缩标准,H.264/MPEG-4 AVC的继任者。
可⽀持4K分辨率甚⾄到超⾼画质电视,最⾼分辨率可达到8192×4320(8K分辨率),这是⽬前发展的趋势,尚未有⼤众化MPEG系列(由ISO[国际标准组织机构]下属的MPEG[运动图象专家组]开发)MPEG-1第⼆部分:MPEG-1第⼆部分主要使⽤在VCD上,有些在线视频也使⽤这种格式MPEG-2第⼆部分(MPEG-2第⼆部分等同于H.262,使⽤在DVD、SVCD和⼤多数数字视频⼴播系统中MPEG-4第⼆部分(MPEG-4第⼆部分标准可以使⽤在⽹络传输、⼴播和媒体存储上3、编码流程在进⾏当前信号编码时,编码器⾸先会产⽣对当前信号做预测的信号,称作预测信号(predicted signal)预测的⽅式:时间上的预测(interprediction),亦即使⽤先前帧的信号做预测空间上的预测(intra prediction),亦即使⽤同⼀张帧之中相邻像素的信号做预测得到预测信号后,编码器会将当前信号与预测信号相减得到残余信号(residual signal),并只对残余信号进⾏编码,如此⼀来,可以去除⼀部份时间上或是空间上的冗余信息。
h264规范
h264规范H.264是一种广泛使用的视频压缩标准,也被称为MPEG-4 Part 10或AVC(Advanced Video Coding)。
它提供了出色的视频质量和高压缩比率,适用于各种应用,包括广播、视频会议、流媒体和视频存储。
H.264规范定义了一种视频编码方式,将视频分割成块,并对每个块进行压缩。
编码过程包括运动估计、变换、量化和熵编码。
首先,H.264使用运动估计来减少冗余信息。
它检测相邻帧之间的运动向量,然后利用这些向量来预测当前帧的内容。
当两个帧之间存在较小的运动时,只需编码运动向量和残差信息,而无需编码整个帧。
这有效地减少了编码所需的比特数。
接下来,H.264使用变换来将时间域上的连续像素值转换为频域上的系数。
采用离散余弦变换(DCT)来减少冗余,并且可以通过量化来减小系数的值。
量化过程将频域系数除以一个量化矩阵,并将结果四舍五入成整数,从而减少了系数的精度。
随后,H.264使用熵编码来对量化后的系数进行编码。
它采用可变长度编码(VLC)和上下文自适应二进制算术编码(CABAC)来压缩剩余系数,并通过利用统计特性来实现高效的编码。
除了上述的编码过程,H.264还定义了一些其他的特性,以进一步提高编码效率。
例如,它引入了多个帧类型,如关键帧和预测帧,以便可以对帧进行更加有针对性的编码。
它还支持多个参考图像,这允许在运动估计过程中使用多个相邻帧的信息。
H.264还提供了灵活的比特率控制和层次化编码机制。
比特率控制可以根据网络带宽和质量要求来调整编码的比特率。
层次化编码允许在不同的分辨率和质量层之间进行逐步编码和传输,以便在带宽变化的情况下提供更好的用户体验。
总体而言,H.264规范通过运动估计、变换、量化和熵编码等技术,实现了高效的视频压缩和高质量的视频播放。
它在广泛的应用中发挥着重要的作用,并被广泛支持和采用。
h264 编码标准
h264 编码标准H.264编码标准。
H.264,又称为MPEG-4 AVC(Advanced Video Coding),是一种用于视频压缩的标准。
它是由国际标准化组织(ISO)和国际电信联盟(ITU)共同制定的,旨在提供高质量的视频压缩,并且适用于各种不同的应用场景,包括广播、视频存储和互联网传输。
H.264编码标准的出现,极大地推动了数字视频技术的发展,并且被广泛应用于许多不同的领域。
H.264编码标准的核心是一种高效的视频压缩算法,它可以将视频信号压缩到较小的体积,同时保持高质量的视觉效果。
这一算法利用了运动补偿、变换编码和熵编码等技术,通过减少视频信号中的冗余信息来实现压缩。
与之前的视频编码标准相比,H.264在相同的画质下能够实现更高的压缩比,这意味着它可以在相同的带宽下传输更高质量的视频信号,或者在相同的质量下节省带宽资源。
除了高效的压缩算法之外,H.264还支持多种不同的视频分辨率和帧率,这使得它可以适用于各种不同的应用场景。
无论是高清电视、移动视频还是网络视频会议,H.264都能够提供出色的性能表现。
同时,H.264还支持多种不同的配置参数,用户可以根据自己的需求进行调整,以获得最佳的压缩效果。
在实际的应用中,H.264已经成为了许多不同领域的标准配置。
在数字电视领域,大多数高清电视节目都采用了H.264编码标准,以提供更清晰、更流畅的视频体验。
在移动互联网领域,H.264也是最为流行的视频编码格式之一,许多在线视频平台和移动应用都在使用H.264来传输视频内容。
此外,H.264还被广泛应用于视频监控、视频会议、医学影像等领域,它的高效性能和广泛适用性使得它成为了当今最为重要的视频编码标准之一。
总的来说,H.264编码标准是一种高效、灵活并且广泛适用的视频压缩标准。
它的出现极大地推动了数字视频技术的发展,为用户提供了更高质量的视频体验,同时也为各种不同的应用场景提供了更多的选择。
H264标准详解
H.264 标准详解JVT(Joint Video Team,视频联合工作组)于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 不仅比H.263 和MPEG-4 节约了50%的码率,而且对网络传输具有更好的支持功能。
它引入了面向IP 包的编码机制,有利于网络中的分组传输,支持网络中视频的流媒体传输。
H.264 具有较强的抗误码特性,可适应丢包率高、干扰严重的无线信道中的视频传输。
H.264 支持不同网络资源下的分级编码传输,从而获得平稳的图像质量。
H.264 能适应于不同网络中的视频传输,网络亲和性好。
一、H.264 视频压缩系统H.264 标准压缩系统由视频编码层(VCL)和网络提取层(Network Abstraction Layer,NAL)两部分组成。
VCL 中包括VCL 编码器与VCL 解码器,主要功能是视频数据压缩编码和解码,它包括运动补偿、变换编码、熵编码等压缩单元。
NAL 则用于为VCL 提供一个与网络无关的统一接口,它负责对视频数据进行封装打包后使其在网络中传送,它采用统一的数据格式,包括单个字节的包头信息、多个字节的视频数据与组帧、逻辑信道信令、定时信息、序列结束信号等。
包头中包含存储标志和类型标志。
H264简介
H264简介1. H.264中的视频压缩技术一、帧内预测模式在帧内预测模式下,当前块在被编码之前需要与预测值相减,而这些预测值是从已编码并重构的相邻块得到的。
亮度信号的帧内预测分为两种,一种是以4×4 的块为单位,共包括9 种预测方式(图 2.2);另一种是以16×16 的块为单位,共包括4 种预测方式(图2.3)。
色差信号的帧内预测以8×8 的块为单位,也包括4 种预测方式,与亮度信号16×16 的块的预测方式相似。
图2.2 4×4亮度块的9种帧内预测模式图2.3 16×16亮度块的四种预测方式其实相邻块的帧内预测模式也有很大的相关性,尤其在4×4预测模式下。
令块A、B、E分别为左、上及当前块,位置关系如图2.5。
如果A、B块的帧内预测模式都是1,那么块E的最佳模式也很可能是1。
编码器及解码器都需要先计算当前块预测模式的预测值,令这个预测值为A块、B 块中较小的模式值。
如果这个预测值与当前块的最佳模式一致,则发送的prev_intra4x4_pred_mode标志为1,否则为0。
如果为0,则还需要发送一个rem_intra4x4_pred_mode的标志,具体指明采用了哪种模式。
注意到此时由于当前块的模式值与预测值不一致,可以先排除掉一种模式。
如果当前块的模式比预测值小,rem_intra4x4_pred_mode标志就取当前块的模式值;反之,取当前块的模式值减去1。
这样一来,就可以将9种模式映射到[0,7]这个区间内,正好能用3个比特表示。
图2.5 相邻块的位置关系二、帧间编码模式可变尺寸块、多参考帧、带权重预测和1/4像素精度是H.264运动补偿技术的四个新特征。
对于可变块大小的概念其实在H.263中已经出现过了,那就是高级预测模式,一个宏块的亮度块可以分为4个8×8子块分别进行运动估计。
【H264】码流结构详解
【H264】码流结构详解⽆论是解析视频⽂件或者通过⽹络传输,其实都是⼀串字节序列。
H264 码流就是按照⼀定的规则组织排列的字节串。
⼀、码流的组织形式在 H264 中完全没有 I 帧、P 帧、B 帧、IDR 帧的概念,之所以沿⽤这些说法是为了表明数据的编码模式。
H264 码流的组织形式从⼤到⼩排序是:视频序列(video sequence)、图像(frame/field-picture)、⽚组(slice group)、⽚(slice)、宏块(macroblock)、⼦块(sub-block)、像素(pixel)。
⼆、码流功能的⾓度从码流功能的⾓度可以分为两层:视频编码层(VCL)和⽹络提取层(NAL)VCL:进⾏视频编解码,包括预测(帧内预测和帧间预测),DCT 变化和量化,熵编码和切分数据等功能,是为了实现更⾼的视频压缩⽐。
NAL:负责以⽹络所要求的恰当的⽅式对 VCL 数据进⾏打包和传送。
VCL 是管理 H264 的视频数据层,是为了实现更⾼的视频压缩⽐,那 VCL 究竟是怎么管理 H264 视频数据的呢?抛开 H264 压缩算法细节来看就 3 步:压缩:预测(帧内预测和帧间预测)-> DCT 变化和量化 -> ⽐特流编码;切分数据,主要为了第三步。
这⾥⼀点,⽹上看到的“切⽚(slice)”、“宏块(macroblock)”是在VCL 中的概念,⼀⽅⾯提⾼编码效率和降低误码率、另⼀⽅⾯提⾼⽹络传输的灵活性。
压缩切分后的 VCL 数据会包装成为 NAL 中的⼀部分。
下⾯要重点讲解下 NAL。
三、⽹络提取层(NAL)NAL,英⽂全称为 Network Abstraction Layer,这块和 H264 压缩算法⽆关,涉设计出 NAL 的⽬的就是为了获得 “network-friendly”,即为了实现良好的⽹络亲和性,即可适⽤于各种传输⽹络。
终于要讲 NAL 了,但是,我们需要先看 NAL的组成单元 - NALU。
h264协议
h264协议H.264是一种常用的视频压缩编码协议,也被称为AVC (Advanced Video Coding)或MPEG-4 Part 10。
它是一种使视频流能够在较小的带宽上进行高质量传输的标准。
H.264协议的主要目标是通过提供高质量视频编码的同时减少带宽需求。
为了实现这一目标,H.264采用了一些先进的编码技术,包括运动补偿、帧内预测、变换和熵编码等。
其中,运动补偿是H.264协议的一个重要特性。
它通过分析帧间的差异来实现视频压缩。
在连续的帧中,相邻帧之间的图像通常只有部分区域发生变化。
通过将这些变化的部分与参考帧进行比较,可以通过发送变化的部分和一些额外的信息来减少带宽需求。
另一个H.264的特性是帧内预测。
帧内预测通过在图像的当前帧内预测像素值,来减少数据的传输量。
具体的方法是使用相邻像素的值来估计当前像素的值,并将估计误差进行编码传输。
这样可以大大减少数据量,提高传输效率。
H.264还采用了变换和熵编码技术。
变换技术将图像空域的像素转换为频域的变换系数,从而能够更好地提取图像的局部特征。
熵编码技术将高概率事件用较短的编码表示,低概率事件用较长的编码表示,从而进一步减少数据的传输量。
总体而言,H.264协议通过运动补偿、帧内预测、变换和熵编码等技术,使得视频数据能够以较低的带宽要求进行传输,同时保持较高的视频质量。
这使得H.264成为了广泛应用于视频传输领域的标准协议。
H.264协议被广泛应用于各种领域,包括视频通话、视频会议、流媒体传输等。
由于其高效的视频压缩能力,H.264能够在低带宽环境下实现高质量的视频传输,大大提升了用户体验。
然而,H.264也存在一些问题。
它对编码和解码的计算要求较高,需要较强的硬件支持。
此外,H.264是一种有损压缩技术,压缩后的视频质量无法与未压缩的视频完全保持一致。
这些问题在一定程度上限制了H.264在某些应用场景中的应用。
随着技术的发展,H.264也在不断演进。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.引言H.264的主要目标:1.高的视频压缩比2.良好的网络亲和性解决方案:VCL video coding layer 视频编码层NAL network abstraction layer 网络提取层VCL:核心算法引擎,块,宏块及片的语法级别的定义NAL:片级以上的语法级别(如序列参数集和图像参数集),同时支持以下功能:独立片解码,起始码唯一保证,SEI以及流格式编码数据传送VCL设计目标:尽可能地独立于网络的情况下进行高效的编解码NAL设计目标:根据不同的网络把数据打包成相应的格式,将VCL产生的比特字符串适配到各种各样的网络和多元环境中。
NALU头结构:NALU类型(5bit)、重要性指示位(2bit)、禁止位(1bit)。
NALU类型:1~12由H.264使用,24~31由H.264以外的应用使用。
重要性指示:标志该NAL单元用于重建时的重要性,值越大,越重要。
禁止位:网络发现NAL单元有比特错误时可设置该比特为1,以便接收方丢掉该单元。
2.NAL语法语义NAL层句法:在编码器输出的码流中,数据的基本单元是句法元素。
句法表征句法元素的组织结构。
语义阐述句法元素的具体含义。
分组都有头部,解码器可以很方便的检测出NAL的分界,依次取出NAL进行解码。
但为了节省码流,H.264没有另外在NAL的头部设立表示起始位置的句法元素。
如果编码数据是存储在介质上的,由于NAL是依次紧密相连的,解码器就无法在数据流中分辨出每个NAL的起始位置和终止位置。
解决方案:在每个NAL前添加起始码:0X000001在某些类型的介质上,为了寻址的方便,要求数据流在长度上对齐,或某个常数的整数倍。
所以在起始码前添加若干字节的0来填充。
检测NAL的开始:0X000001和0X000000我们必须考虑当NAL内部出现了0X000001和0X000000解决方案:H.264提出了“防止竞争”机制:0X000000——0X000003000X000001——0X000003010X000002——0X000003020X000003——0X00000303为此,我们可以知道:在NAL单元中,下面的三字节序列不应在任何字节对齐的位置出现0X0000000X0000010X000002Forbidden_zero_bit =0;Nal_ref_idc:表示NAL的优先级。
0~3,取值越大,表示当前NAL越重要,需要优先受到保护。
如果当前NAL是属于参考帧的片,或是序列参数集,或是图像参数集这些重要的单位时,本句法元素必需大于0。
Nal_unit_type:当前NAL 单元的类型3.H.264的NAL层处理结构示意图:NAL以NALU(NAL unit)为单元来支持编码数据在基于分组交换技术网络中传输。
它定义了符合传输层或存储介质要求的数据格式,同时给出头信息,从而提供了视频编码和外部世界的接口。
NALU:定义了可用于基于分组和基于比特流系统的基本格式RTP封装:只针对基于NAL单元的本地NAL接口。
三种不同的数据形式:SODB 数据比特串-->最原始的编码数据RBSP 原始字节序列载荷-->在SODB的后面填加了结尾比特(RBSP trailing bits 一个bit“1”)若干比特“0”,以便字节对齐EBSP 扩展字节序列载荷-->在RBSP基础上填加了仿校验字节(0X03)它的原因是:在NALU加到Annexb上时,需要添加每组NALU之前的开始码StartCodePrefix,如果该NALU对应的slice为一帧的开始则用4位字节表示,ox00000001,否则用3 位字节表示ox000001.为了使NALU主体中不包括与开始码相冲突的,在编码时,每遇到两个字节连续为0,就插入一个字节的0x03。
解码时将 0x03去掉。
也称为脱壳操作处理过程:1.将VCL层输出的SODB封装成nal_unit, Nal_unit是一个通用封装格式,可以适用于有序字节流方式和IP包交换方式。
2.针对不同的传送网络(电路交换|包交换),将nal_unit 封装成针对不同网络的封装格式。
第一步的具体过程:VCL层输出的比特流SODB(String Of Data Bits),到nal_unit之间,经过了以下三步处理:1.SODB字节对齐处理后封装成RBSP(Raw Byte Sequence Payload)。
2.为防止RBSP的字节流与有序字节流传送方式下的SCP(start_code_prefix_one_3bytes,0x000001)出现字节竞争情形,循环检测RBSP前三个字节,在出现字节竞争时在第三字节前加入emulation_prevention_three_byte (0x03),具体方法:nal_unit( NumBytesInNALunit ) {forbidden_zero_bitnal_ref_idcnal_unit_typeNumBytesInRBSP = 0for( i = 1; i < NumBytesInNALunit; i++ ) {if( i + 2 < NumBytesInNALunit && next_bits( 24 ) = = 0x000003 ) {rbsp_byte[ NumBytesInRBSP++ ]rbsp_byte[ NumBytesInRBSP++ ]i += 2emulation_prevention_three_byte /* equal to 0x03 */} elserbsp_byte[ NumBytesInRBSP++ ]}}3. 防字节竞争处理后的RBSP再加一个字节的header(forbidden_zero_bit+ nal_ref_idc+ nal_unit_type),封装成nal_unit.第二步的具体过程:case1:有序字节流的封装byte_stream_nal_unit( NumBytesInNALunit ) {while( next_bits( 24 ) != 0x000001 )zero_byte /* equal to 0x00 */if( more_data_in_byte_stream( ) ) {start_code_prefix_one_3bytes /* equal to 0x000001 */nal_unit( NumBytesInNALunit )}}类似H.320和MPEG-2/H.222.0等传输系统,传输NAL作为有序连续字节或比特流,同时要依靠数据本身识别NAL单元边界。
在这样的应用系统中,H.264/AVC 规范定义了字节流格式,每个NAL单元前面增加3个字节的前缀,即同步字节。
在比特流应用中,每个图像需要增加一个附加字节作为边界定位。
还有一种可选特性,在字节流中增加附加数据,用做扩充发送数据量,能实现快速边界定位,恢复同步Case2:IP网络的RTP打包封装分组打包的规则(1)额外开销要少,使MTU尺寸在100~64k字节范围都可以;(2)不用对分组内的数据解码就可以判别该分组的重要性;(3)载荷规范应当保证不用解码就可识别由于其他的比特丢失而造成的分组不可解码;(4)支持将NALU分割成多个RTP分组;(5)支持将多个NALU汇集在一个RTP分组中。
RTP的头标可以是NALU的头标,并可以实现以上的打包规则。
一个RTP分组里放入一个NALU,将NALU(包括同时作为载荷头标的NALU 头)放入RTP的载荷中,设置RTP头标值。
为了避免IP层对大分组的再一次分割,片分组的大小一般都要小于MTU尺寸。
由于包传送的路径不同,解码端要重新对片分组排序,RTP包含的次序信息可以用来解决这一问题。
NALU分割对于预先已经编码的内容,NALU可能大于MTU尺寸的限制。
虽然IP层的分割可以使数据块小于64千字节,但无法在应用层实现保护,从而降低了非等重保护方案的效果。
由于UDP数据包小于64千字节,而且一个片的长度对某些应用场合来说太小,所以应用层打包是RTP打包方案的一部分。
新的讨论方案(IETF)应当符合以下特征:(1)NALU的分块以按RTP次序号升序传输;(2)能够标记第一个和最后一个NALU分块;(3)可以检测丢失的分块。
NALU合并一些NALU如SEI、参数集等非常小,将它们合并在一起有利于减少头标开销。
已有两种集合分组:(1)单一时间集合分组(STAP),按时间戳进行组合;(2)多时间集合分组(MTAP),不同时间戳也可以组合。
NAL规范视频数据的格式,主要是提供头部信息,以适合各种媒体的传输和存储。
NAL支持各种网络,包括:1.任何使用RTP/IP协议的实时有线和无线Internet 服务2.作为MP4文件存储和多媒体信息文件服务3.MPEG-2系统4.其它网NAL规定一种通用的格式,既适合面向包传输,也适合流传送。
实际上,包传输和流传输的方式是相同的,不同之处是传输前面增加了一个起始码前缀在类似Internet/RTP面向包传送协议系统中,包结构中包含包边界识别字节,在这种情况下,不需要同步字节。
NAL单元分为VCL和非VCL两种VCL NAL单元包含视频图像采样信息,非VCL包含各种有关的附加信息,例如参数集(头部信息,应用到大量的VCL NAL 单元)、提高性能的附加信息、定时信息等参数集:参数集是很少变化的信息,用于大量VCL NAL单元的解码,分为两种类型:1.序列参数集,作用于一串连续的视频图像,即视频序列。
两个IDR图像之间为序列参数集。
IDR和I帧的区别见下面。
2.图像参数集,作用于视频序列中的一个或多个个别的图像序列和图像参数集机制,减少了重复参数的传送,每个VCL NAL单元包含一个标识,指向有关的图像参数集,每个图像参数集包含一个标识,指向有关的序列参数集的内容因此,只用少数的指针信息,引用大量的参数,大大减少每个VCL NAL单元重复传送的信息。
序列和图像参数集可以在发送VCL NAL单元以前发送,并且重复传送,大大提高纠错能力。
序列和图像参数集可以在“带内”,也可以用更为可靠的其他“带外”通道传送。
存储单元:一组指定格式的NAL单元称为存储单元,每个存储单元对应一个图像。
每个存储单元包含一组VCL NAL单元,组成一个主编码图像,VCL NAL单元由表示视频图像采样的像条所组成。
存储单元前面可以加一个前缀,分界存储单元,附加增强信息(SEI)(如图像定时信息)也可以放在主编码图像的前面。
主编码图像后附加的VCL NAL单元,包含同一图像的冗余表示,称为冗余编码图像,当主编码图像数据丢失或损坏时,可用冗余编码图像解码。