视频就是一组图像组成,图像由像素组成,像素由rgb组成,图像就是一组数据
分辨率:横向乘以纵向有多少个像素组成
像素的位深:多少个位表示一个像素
rgb888 24位
RGBA 32位
PPI pixels per inch 像素密度
DPI dots pen inch 每英寸的点数
ppi>300就属于视网膜级别,人眼区分不出
帧率:每秒钟采集多少/播放图像的个数,动画:25帧/s,实时通信:15/s,录视频:30/s,电影拍摄:60/s
视频在原始数据占空间很大,传输中一般会进行压缩,这就涉及到编解码
GOP:group of picture,根据视频相关性,将相似的视频帧进行分组
编码帧:I帧 intraframe frame 关键帧,属于帧内压缩技术
P帧 forward Predicted frame向前参考帧,压缩时,只参考前面处理好的帧,帧间压缩,只占I帧的一半大小
B帧 bidirectioinally predicted frame 双向参考帧,压缩时候只占四分之一,参考前面也参考后面,最后进行压缩
播放顺序:先播放I帧,后B帧,最后P帧
B帧压缩效率高,但是占用大量cpu,因此实时通讯中,不使用B帧技术,视频播放中,大量使用B帧技术
B帧之间不进行参考
IDR帧:是一种特殊的I帧,遇到IDR帧后,解码器立即刷新,清除之前所有的缓存,一般一个GOP的第一帧就是IDR帧
视频花屏的原因:同一个GOP分组中,有一个帧丢了,解码端的图像发生错误,主要指B帧和P帧
视频卡顿的原因:为了解决花屏发生, 有丢帧就丢弃当前GOP所有帧,直到下一个IDR帧重新刷新,I帧是按照周期来的,需要一个长的时间周期,如果下一帧来之前不显示后面的图像,视频静止的现象就是卡顿
视频帧压缩技术分为帧内压缩和帧间压缩,帧内压缩解决空间冗余问题,帧间压缩解决时间冗余问题
帧内压缩:
宏块:一张图片,放大到像素级别,相邻的两个像素差别不大,可以将一块区域的像素点视为一个基本单元,是视频压缩操作的基本单元
由于人眼对亮度的敏感度远超过色度,因此色度的细微差别不会影响太影响主体观感,为了压缩图像大小,会使用帧内预测,通过一块颜色推测相邻的另一块颜色是什么
H264中提供9种模式进行帧内预测推算,横向复制,纵向复制,斜向复制,求平均值,相邻的下一块颜色是什么颜色,使用哪种模式,有专门算法,核心思想就是最接近原色
帧内预测残差值:预测之后的图和原图的差异由于用算法推测出的和原图还是有差异的,因此需要计算原图的差异
只需传输:压缩预测模式信息+压缩残差值即可,接收方通过算法和残差值进行还原即可,相比传输原始图像信息,压缩率很高,但是整个过程还是有损压缩
帧间压缩:
使用参考帧技术:后面的帧参考前面的帧
运动估计:宏块匹配+运动矢量,是一个过程,结果是找到运动矢量,手段是宏块匹配
运动补偿:找到残差值,解码时进行补充信息
宏块查找:对比两个关键帧,对比关键宏块的位置变化,并记录
传输:宏块变化残差值+运动矢量
网友评论