第六季HISI

注:为学习朱有鹏课程笔记
图像冗余信息:空间冗余:同一幅图片,里面相同的像素。例如编辑器里的底色,就是空间冗余的。时间冗余:一个视频里,上一帧图像和下一帧图像中相同的像素,就是时间冗余的。正因为冗余的存在,原始的图像信息才能被编码压缩。
 
 压缩比:压缩后的图像大小和压缩前的图像大小之比。这个指标越大越好。
算法复杂度:图像压缩要靠算法,算法越复杂,对硬件的要求越高,功耗也越高。
 还原度:将来解压缩后,画质有没有损害的很厉害。
 
 压缩有软件压缩和硬件压缩。前者靠cpu运算,效率低,因为cpu运算并不擅长。后者靠dsp。
 
 MB:macro block宏块,一副图片里像素基本相似的一些像素点,压缩算法是以宏块为单元的
 slice:片。比MB大,一帧由一个或多个片组成
 
 像素--宏块--片--帧--序列--码流
 
 参考帧:B帧 ,指的是参考前一帧或后一帧所做出来的一帧 P帧 指的是参考前一帧 前后帧进行时间压缩同时也可以空间压缩
 非参考帧:I帧,不参考前一帧或后一帧所做出来的一帧 起始帧 只对帧内的像素进行空间压缩
 
 帧率:fps 运动相机帧率要高,安防监控摄像头帧率低 6 7的样子
 
 
 H.264有两大块组成:VCL NAL.前者是压缩,后者是压缩后的视频流如何在网络中的传输及解压缩
 VCL是压缩后的纯视频流,没有办法传送
 NAL关心的是VCL输出的纯视频流如何被表达和封包以利于网络传输,就是添加一些头信息,NAL出来的就是H.264码流,,具体作用就是让别人知道怎么传你,怎么解压缩你
 
 SODB:string of data bytes  VCL输出的
 RBSP:   raw byte sequence payload原始字节序列载荷
  SODB+RBSP trailing bitsRBSP后位=RBSP
 
 NALU:network abstraction layer units网络抽象层单元
 NAL header(1 byte) + RBSP=NALU
 
 一个 H.264文件,是由若干个序列构成,一个序列又是由sps+pps+sei+I帧+若干p帧
 
 用winhex打开一个H.264文件,里面规定4个字节00 00 00 01是分隔符(是用来识别的,不算有效数据),分隔sps(sequence parameter set),pps(picture parameter set),
 sei(supplemental enhancement information),I帧,,,若帧数据里有00 00 00会变成00 00 03 00
 
 00 00 00 01是分隔符后的第一个字节是NALU的类型,从左数第一位,值为一表示数据出错;2~3位表示参考级别,只有4种情况00 01 10 11,越大表示越重要,像I帧,肯定很重要,后面的p帧,
 就没有那么重要,如果要保证实时性,网速还不好的时候,就会丢包,就会丢掉参考级别低的p帧。;4~8位为NAL单元类型。
 
 sps的NALU的第一个字节是告诉这个NALU是什么类型,是sps类型;第二个字节是讲profile(压缩比,十进制66baseline profile  77main profile  88extended profile);第四个字节讲level
 (十进制31 表示分辨率720p  1280x720)
 
 sps pps sei是sequence的图像信息,因为图像不能自己解释自己。
 
 I帧是关键,一般有两万多字节,而p帧只有几千字节。。在一个sequence中,I帧越大,p帧越小,因为p帧是参考I帧。图像的变化越大,p帧的越大。
 
 CBR 和VBR p帧的大小策略会不同。前者的p帧变化不会特别大,码率比较稳,有时候前后帧变化大就会牺牲清晰度。,后者变化可能会比较大,,不管码率,就是维持图像本身的清晰度。
 
 
 
 
 
 
 
 
 
 
 

猜你喜欢

转载自blog.csdn.net/qq_41648636/article/details/80374427
今日推荐