意义
1080P视频7s原始数据有817MB H.264编码压缩后只有708KB
压缩原理
最原始的做法是获取每一帧的图片,进行图片压缩处理
但是很多时候视频由于是连续的, 所以帧与帧之间的变化很小 所以后续开发出了一些比较高级的编码器, 可以帧间编码
比如第二帧和第一帧相比变化不大, 那第二帧只用记录这个微小的变化差异即可 这样就可以达到压缩又能保证图片质量的效果了
具体的帧处理如下
主要有IBP三种帧的概念
- I帧, 帧间压缩帧, 也就是关键帧 保留完整画面数据
- P帧,前向预测编码帧 记录和前一个I帧或者P帧的差别, 利用前一帧+差别信息生成本帧最终完整画面
- B帧,双向预测内插编码帧 记录了与前后帧(I帧或者P帧)的差别
其实只要有P帧+I帧就可以达到压缩的效果了 但是I帧压缩率是7, P是20, B可以达到50 因此即使B帧的计算需要更大的CPU,但是能提高压缩比例
所以压缩主要分为帧内压缩和帧间压缩 帧内压缩主要针对关键帧I帧
压缩好I帧后, 再进行帧间压缩根据I帧确定P帧,最后根据I和P帧一起决定B帧
具体压缩处理的冗余内容如下:
- 空间冗余:图像相邻像素之间有较强的相关性
- 时间冗余:视频序列的相邻图像之间内容相似
- 编码冗余:不同像素值出现的概率不同
- 视觉冗余:人的视觉系统对某些细节不敏感
- 知识冗余:规律性的结构可由先验知识和背景知识得到
现在最主流的视频压缩编码就是H.264