01-编码-H264编码原理

整体方案:
采集端:摄像头采集(YUV)->编码(YUV转H264)->RTMP推流
客户端:RTMP拉流->解码(H264转YUV)->YUV显示(SDL2)

1.整体概念
编码的含义就是压缩,将摄像头采集的YUV或RGB数据压缩成H264。
压缩的过程就是去除信息冗余的过程,一般视频有如下的冗余信息。
(1)空间冗余:在同一个画面中,相邻的像素点之间的变化很小,因而可以用一个特定大小的矩阵来描述相邻的这些像素。
(2)时间冗余:相邻的画面变化很小,因而可以记录变化的部分代替记录整个画面,从而减少空间的使用。
(3)编码冗余:对出现概率高的像素分配尽量少的字节,对出现概率低的像素分配尽量多的字节。
(4)视觉冗余:丢掉人眼不敏感的像素颜色,减少存储空间使用而不影响观看效果。
(5)知识冗余:根据已有知识,对图像或物体构造其基本模型,并创建对应各种特征的图像库,图像的存储只保存一些特征参数。

H264编码:帧内预测,帧间预测,变化量化,熵编码,NAL层编码。

YUV数据进行编码后,会生成I帧,P帧和B帧,下面对这三种帧进行描述。
I帧:关键帧,采用帧内压缩技术生成,I帧可以理解成一个完整的画面。
P帧:采用帧间压缩技术,又叫向前参考帧,P帧表示的是这一帧与前一

你可能感兴趣的:(音视频开发,音视频)