> 文档中心 > 编码压缩介绍

编码压缩介绍

从前文我们知道,YUV420 已经比 YUV444 数据少了一半,而且体验几乎感受不到差别。如下:

从上图可以看到,虽然数据减少了一般,但是一张 1080p 的图片也有 3038kb 的大小,也就是 3Mb 大小,动画看起来流畅,需要一秒播放 24 张图片,1个小时的电影大小如下:3 *24 * 60 * 60 = 2592003∗24∗60∗60=259200因此,1小时的YUV420 的电影,需要 253G 空间来存储,截止 2022 年,一个普通的硬盘,才500G大小,只能存两部电影。所以 即使 YUV420 这种 HVS 技巧,已经让数据量少了一半,但是还是不能满足当前硬件环境的存储跟传输的需求,所以需要进一步压缩。

在音视频领域,压缩 被称为 codec (编码),因为 压缩这个术语比较通用,字符串文本也能压缩,其他的二进制文件也能压缩。音视频里面的压缩算法 比较有行业自身的特点,所以叫 编码 。


常见的压缩标准有以下:

1,JPEG 标准,用于单张图片压缩。标准文档 ISO/IEC 10918-1

2,H.262 标准,用于视频编解码,标准文档 ISO/IEC 13818-2

3,H.263 标准,用于视频编解码。

4,H.264 标准,在 2022年 目前是应用非常广泛的标准。

5,VP9,Google 出的视频编解码标准。

6,AVS,中国的视频压缩标准。


视频编码系统中,用到的主流技术有以下:

1,预测

2,变换

3,量化

4,熵编码

5,环路滤波

上面的术语现在看不懂也没事,这里只是简单介绍一下,有个印象。因为本书的重点是讲解如何使用 FFmpeg 的 API。现在你只需要知道,YUV420 这些数据,进入 编码系统之后,从编码系统出了的数据会少很多,具体少多少,H264 的压缩比 可以是 102:1 ,也就是上面那个 253G 的YUV420电影,压缩之后只需 2.5G 存储空间。多么惊人的压缩比,这就是编码系统的魅力。


FFmpeg 初学者 不太需要 掌握 编解码的具体算法跟优化技巧。如果是小白,想入门音视频开发,首先要学会的是 调 FFmpeg 库的API,怎么调编解码的API。

至于具体的 H264,H265 编解码算法,可以等 FFmpeg 使用熟练了再去深入研究 。

本书编解码系统的分析会放在最后的章节。


参考文章:

1,JPEG - 维基百科


由于笔者的水平有限, 加之编写的同时还要参与开发工作,文中难免会出现一些错误或者不准确的地方,恳请读者批评指正。如果读者有任何宝贵意见,可以加我微信 Loken1。QQ:2338195090。


推荐一个零声学院免费公开课程,个人觉得老师讲得不错,分享给大家:[Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK等技术内容,立即学习]

神片云