编码压缩介绍

简介: 压缩编码介绍,JPEG标准,H.264,AVS,预测,变换,量化,熵编码,环路滤波

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

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

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



常见的压缩标准有以下:

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 - 维基百科

目录
相关文章
|
XML 物联网 API
服务端和客户端 RESTful 接口上传 Excel 的 Python 代码
本文作者木头左是物联网工程师,分享如何使用 Python 和 Flask-RESTful 构建一个简单的 RESTful API,实现文件上传功能,特别支持Excel文件。通过安装Flask和Flask-RESTful库,创建Flask应用,实现文件上传接口,并将其添加到API。该方法具有简单易用、灵活、可扩展及社区支持等优点。
服务端和客户端 RESTful 接口上传 Excel 的 Python 代码
|
存储 Nacos 数据安全/隐私保护
【SpringCloud】Nacos的安装、Nacos注册、Nacos服务多级存储模型
【SpringCloud】Nacos的安装、Nacos注册、Nacos服务多级存储模型
249 1
|
搜索推荐 Python
快速排序的 Python 实践:从原理到优化,打造你的排序利器!
本文介绍了 Python 中的快速排序算法,从基本原理、实现代码到优化方法进行了详细探讨。快速排序采用分治策略,通过选择基准元素将数组分为两部分,递归排序。文章还对比了快速排序与冒泡排序的性能,展示了优化前后快速排序的差异。通过这些分析,帮助读者理解快速排序的优势及优化的重要性,从而在实际应用中选择合适的排序算法和优化策略,提升程序性能。
345 1
|
消息中间件 缓存 Java
Java 最常见的面试题:怎么保证缓存和数据库数据的一致性?
Java 最常见的面试题:怎么保证缓存和数据库数据的一致性?
|
机器学习/深度学习 人工智能 自然语言处理
人工智能的发展现状如何?
【10月更文挑战第16天】人工智能的发展现状如何?
|
存储 缓存 定位技术
如果遇到网络延迟问题,有哪些方法可以快速解决以保证视频源同步?
如果遇到网络延迟问题,有哪些方法可以快速解决以保证视频源同步?
|
JSON Java jenkins
实现Jenkinsfile与Json的转换
实现Jenkinsfile与Json的转换
210 4
|
前端开发 容器
解锁CSS定位奥秘,从迷茫到精通,让你的网页布局“稳如老狗”,引领前端新潮流!
【8月更文挑战第23天】本文深入探讨了Web前端开发中CSS定位的三大基石:相对定位、绝对定位与固定定位。通过具体示例,展示了各种定位方式的特点及应用场景。相对定位可在不影响布局的情况下微调元素位置;绝对定位使元素完全脱离文档流,适用于精确控制位置的需求;固定定位则确保元素始终固定于浏览器窗口特定位置,不受页面滚动影响。这些技巧对于实现复杂网页布局至关重要。
226 0
|
缓存 Java API
build.gradle文件介绍,gradle版本对应
build.gradle文件介绍,gradle版本对应
|
算法 Linux API
Pygame的主要优势
【6月更文挑战第12天】Pygame的主要优势
351 3