PSNR:峰值信噪比;评价图像的客观标准
QP:量化步长
IDR帧是视频流的分隔符,所有帧不可以使用越过关键帧的帧作为参考帧。
同样分辨率下,视频文件的码流越大,压缩比越小,画面质量越高。
I帧通常是每个GOP的第一个帧,经过适度压缩作为随机访问的参考点,可以当成图像。
H.264码率控制算法可以分为:
group of picture level
picture level
macroblock level
一个序列的第一个图像叫做IDR图像(立即刷新图像)。
只要显示屏幕分辨率>=1280*720即可分为HD等级。
SPS(序列参数集)/PPS(图像参数集):包含了初始化H.264解码器所需要的信息参数,包括编码用profile,level,图像宽和高,deblock滤波器
H.264把图像分为一帧(frame)或两场(filed);帧又分为片(slice),片由宏块(MB)组成,宏块是编码处理的单元。
SODB(string of data bits)原始数据比特流
RBSP(raw byte sequence payload) 原始数据字节流
NAL(network abstraction layer units) NAL单元
SODB + RBSP trailing bits = RBSP
NAL header + RBSP = NALU
OpenMax:多媒体应用程序标准,对音视频,静态图片的常用操作进行封装:1应用层(AL) 2集成层(IL) 3开发层(DL)
GSstreamer用来构建流媒体应用的开源多媒体框架,其目标是简化音视频应用程序的开发。
多数的无损编码都采用RLE行程编码算法
帧内一般采用有损压缩算法
对称意味着压缩和解压缩占用相同的计算处理能力和时间,对称算法适合于实时压缩和传送视频
MPEG-1标准的码率为1.2Mbits左右,可提供30帧CIIF(352*288)质量的图像,是CD-ROM关盘的视频存储和播放所制定的。
I:帧内帧 P:预测帧B:双向预测帧D:直流帧
H.264算法在概念上分为两层:
视频编码层(VCL):负责高效的视频内容表示
网络提取层(NAL):负责网络所要求的恰当的方式对数据进行打包和传送
NAL负责使用下层网络的分段格式来封装数据,包括组帧,逻辑信道,定时信息的利用和序列结束信号等
NAL包括自己的头部信息,段结构信息和实际载荷信息,即上层VCL数据
H.264熵编码:1 UVLC;2 CABAC
H.264RAM需求主要用于参考帧图像,大多数编码视频使用了3-5帧参考图像,他对ROM的需求并不比通常的视频编码器更多。
H.264有四种画质级别:
BP(Base Profile)基本画质:支持I/P帧,只支持无交错和CAVLC
EP(Extended Profile)进阶画质:支持I/P/B/SP/SI帧,只支持无交错和CAVLC
MP(Main Profile)主流画质:提供I/P/B帧,支持交错和无交错,CAVLC和CABAC
HP(High Profile)高级画质:在MP增加8x8预测,自定义量化
视频编码器将原始图像数据按照标准规定语法压缩成视频基本码流(video ES),音频编码器将立体声音压缩成音频基本码流(audio ES)。这两种基本码流在进入复用器之前分别经打包器打包成PES码流。PES码流的包结构可变,最大可达216字节,一般一个PES对应一个显示单元,可以是一副图像,也可以是一帧音频帧。
视频打包基本码流和音频打包基本码流经节目流复用器或传输复用器分别组成节目流和传输流。
图像序列层,图像组层,图像层,条带层都有相应的起始码。起始码有其独特的比特模式,一般包括起始码前缀和起始码控制字。起始码放在这四层数据流的前面,可作为同步时别用。
MPEG-2规定,视频或音频基本流ES必须进行PES打包,并以PES包数据流为基础,再进行节目码流PS或传送码流TS的数据流打包。PES包的长度可变,由PES包头,PES扩展头及可变长的有效数据负载组成。
PES的包头长度为5字节,由起始码前缀,数据流识别字段及PES包长信息三部分组成。
PES包控制信息由PES包头时别标志,PES包长信息,信息区和用于调整信息字段以及可变包长的填充字节4部分组成。
是否有PTS/DTS标志,是解决视音频同步显示,防止解码器输入缓存器上溢或下溢的关键所在。
每个I,P,B帧的包头都有一个PTS和DTS字段。
解码器依靠PTS和DTS确定开始解码和开始显示的时刻,以达到视频和音频同步的目的。
每一个PS包均含有一个包头,PS包中包含着若干个可变长度的PES包。
PS包由包头,系统头,PES包三部分构成。包头由PS包起始码,系统时钟基准(SCR)基本部分,SCR扩展部分和PS复用速率两部分组成。