视频
视频编解码格式
-
H264
- 压缩流程
- 划分宏块:默认划分成16X16,也可以划分成8X8
- 划分子块:子块的大小可以是 8X16、 16X8、 8X8、 4X8、 8X4、 4X4非常的灵活
- 帧分组:相关性较高的一个图像序列分为一组,即GOP
- 帧间压缩技术:运动估计与补偿:解决帧间数据的冗余
- 运动估计:进行宏块扫描。当发现其中一幅图片中有物体时,就在另一幅图的邻近位置(搜索窗口中)进行搜索,找到的话就能算出物体的运动矢量了。
- 运动矢量计算出来后,将相同部分减去,就得到了补偿数据
- 帧内压缩技术:
- 帧内预测:人眼对图象都有一个识别度,对低频的亮度很敏感,对高频的亮度不太敏感。所以基于一些研究,可以将一幅图像中人眼不敏感的数据去除掉。264的帧内压缩与JPEG很相似。一幅图像被划分好宏块后,对每个宏块可以进行 9 种模式的预测。找出与原图最接近的一种预测模式。
- 对残差数据做DCT(整数离散余弦变换): 将原始图片和预测图片做残差计算,拿到基础的残差值,然后进行DCT,去掉相关性,进一步压缩数据。
- CABAC:利用哈夫曼编码算法,给给高频数据短码,给低频数据长码。同时还会根据上下文相关性进行压缩。
- 压缩后帧的分类
- I帧:关键帧,采用帧内压缩技术。
- P帧:向前参考帧,在压缩时,只参考前面已经处理的帧。采用帧间压缩技术。
- B帧:双向参考帧,在压缩时,它即参考前而的帧,又参考它后面的帧。采用帧间压缩技术。
- IDR帧:即首个I帧,即解码时如果遇到IDR帧,会将DPB(DecodedPictureBuffer 参考帧列表清空
- GOP序列:GOP:两个I帧之间是一个图像序列,在一个图像序列中只有一个I帧。
- 压缩流程
-
H265
H.265是新的编码协议,也即是H.264的升级版。H.265标准保留H.264原来的某些技术,也对其中一些技术做了优化提升。- 优化的点
- 宏块划分:利用四叉树的结构堆宏块进行最小8x8到最大的64x64,进行划分,并基于这种块划分结构采用一系列自适应的预测和变换等编码技术。
- 帧内帧间压缩技术: 帧内预测模式支持33种方向,并且提供了更好的运动补偿处理和矢量预测方法。
- 优化的点
H265 H264 性能比较
- 压缩率:在同样的图像质量下,相比于h264,通过h265编码的视频大小减少了大约40%。
- 传输码率:h264可以在低于2兆每秒的速度下实现标清数字图像传送。而h265则可以在低于1.5兆每秒的速度下实现全高清视频的传输。
音频
音频编解码格式
- AAC(Advanced Audio Coding)
refrence
H5直播系列四 RTMP HTTP-FLV HLS MPEG-DASH
RTMP、RTSP、HTTP视频协议详解(附:直播流地址、播放软件)
带你吃透RTMP
RTMP流媒体技术零基础学习方法