音视频开发——图像压缩编码的原理

1. 为什么要压缩

试想一下不压缩图像的情形:图像最基本的格式就是RGB,这里以24bit的RGB图像举例,也就是一个像素占3个字节。视频是一帧一帧的图像组成,假设现在的视频分辨率是1080p,帧率是15帧每秒。每秒需要的带宽就是1920x1080x3x15/1024/1024=89M/s,现在安装100M的宽带网速也就几M每秒,网络几乎就没法用。再试想一下,假设一部电影90分钟,需要的存储空间是1920x1080x3x15x60x90/1024/1024/1024=469G,是不是不可思议。基于上面的场景,我们必须要压缩图像,要不然设备都没法用。(小知识:我们通常所说的100M的宽带,单位是比特每秒,而我们说网速的时候通常是字节每秒,100M的带宽换算一下最高就是100/8字节每秒)

2.为什么可以压缩

压缩是在不明显损失图像质量的前提下进行的,要是压缩后图像都没法看,那压缩也没有意义

2.1 空间冗余

一幅图片可能有一大块区域的颜色是完全相同的,我们可以把颜色的数据存一份下来,再把这块区域的信息保存下来,这样我们保存的数据就少多了。接受到图像的一方,按照逆过程将图像还原就可以,将某块区域都还原成某个颜色。

2.2 时间冗余

视频是一帧一帧图像的快速播放,在短时间里可能整个画面只有一小块部分在变化,整个背景都没有改变过。比如画面里是两个人在对话,在变化的只有人物的面部,而占画面大部分的背景却没有变化。对于这部分没有变化的部分,我们就不用每一帧都保存,这样就可以实现压缩。

2.3 视觉冗余

人的眼睛相对于电子元器件,是不精密的仪器,即使损失掉一些精度,人的眼睛也感受不到。人对细微的颜色差异感觉不明显,即使压缩后再还原的图像已经和原来的图像有了差异,只要差异不到,人的眼睛也感受不出来。

3.压缩方法优劣的衡量标准

3.1压缩比

压缩比就是压缩前后文件大小之比,压缩比越大代表压缩后的图像大小就越小,但是一般来说压缩的越小图像失真就越严重;

3.2 图像质量

压缩后再还原的图像原图像的相似度,越接近原图像越好。

3.3 压缩和解压缩的速度

压缩和解压缩互为逆过程,这都是要消耗CPU资源的,占用的时间越短越好。通常情况,压缩比越大,耗时就越多。

3.4 总结

压缩算法会在压缩比、图像质量、压缩和解压缩的速度三者中取平衡,不同的压缩算法侧重不一样。最理想的压缩算法:压缩比高、图像还原度好、压缩和解压缩的速度快。

4 压缩方法的分类

4.1无失真压缩

无失真压缩就是解压缩后的图像和原图像一模一样,压缩和解压缩是真正的逆过程。这样的图像还原度是最好的,但是压缩比一般不高,压缩后的图像大小偏大。

4.2有失真压缩

有失真压缩就是解压缩后的图像和原图像已经不一致了,但是差异在可允许范围内,人的眼睛感受不出来。通常情况,有失真压缩比无失真压缩的压缩比更大。

你可能感兴趣的:(#,海思芯片——音视频开发,音视频)