压缩的必要性和可能性(下)| 学习笔记

简介: 快速学习压缩的必要性和可能性(下),介绍了压缩的必要性和可能性(下)系统机制, 以及在实际应用过程中如何使用。

开发者学堂课程【高校精品课-华中科技大学 -智能媒体计算压缩的必要性和可能性(下)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/811/detail/15678


压缩的必要性和可能性(下)


内容介绍

一、数据压缩的可能性

二、压缩与编码方法分类


一、数据压缩的可能性

我们有无可能对这个数据进行压缩,我们研究发现,多媒体数据中间里,存在了大量的冗余信息。什么叫冗余?

就是这些存在的数据没有,或者把它去除掉,不影响我们数据的质量,那么去除这些冗余的数据,就是可以使我们原始的数据量变小,甚至大幅的变小。

从而,解决了我们多媒体数据量巨大的问题,这不就是压缩的数据,所以这里面要给大家一个概念,就是数据压缩一定不是以大幅降低数据的质量为前提的,而是基本保证质量,不要降低或者降低的非常小的情况下,让数据变小。那么数据压缩,其实就是研究如何利用数据本身,它的容易性来让数据量变小的方法,那么这个定义就是我刚才前面讲的另外一个说法,那么数据压缩的起点是什么?就是要研究数据本身它的容易性,那么下面我们就看一看我们多媒体数据里面存在哪几种冗余信息。

1、空间冗余

image.png

我们先来看叫空间的冗余,这是一幅蓝天白云加草地的这个照片,大家观察一下这个照片有什么特点?

你看一下上面蓝天,你说大面积的脸蓝,蓝天它的颜色和纹理基本是相同的,而绿色的草地也是这就说明一个什么问题?就说我在图像本身,相邻的点之间,它的是相似的,就像上面的蓝天在一块儿,我连续的可能存了很多像素,而这个像素和像素之间的这个差很小,有时候这种情况下,我其实可能不需要把每一个点都存下来我们可能有1920乘这个1080的点,但是很多点它的颜色值相同,我们有没有办法不每个点都存,或者我们不存它原始的值,这就是所谓的空间的冗余,就是我们空图像上的点之间相邻的点,它的颜色值是相近的。

2、时间冗余

image.png

我们看一下这个时间的冗余,就是这两帧图像,这是新闻联播的,就是七点钟的新闻联播,我抓了两幅图像,大家看一看,这两帧图像的背景是相同的,不同的是什么?你看我们的播音员的口型有变化,那么前一帧下面是没有字幕的,后一帧是有字幕。另外就看你看手部的有所区别,就是这个,它的这个,你看手有微小的点,其他的大面积都是相同的,就是连续的两帧图像非常的相近。这个时候我们是不是每一幅图像都把它原始的保存下来?其实我们在运动图像的压缩里面就尽可能的用到了两帧图像之间的相关性。大家思考个问题,我们怎么样才能把数据变小?

既然它们俩很一样,很像很像,但是也有不同,但是你想想它们俩的差值怎么样,是很小的。大家记着,在时间上,我们视频的相邻两帧图像之间是有很大的相关性的,也就是说存了一幅,我基本上可以推断出另外一幅,那我们要存的可能存它的差值就可以了。

3、结构冗余

image.png

第三种类型的冗余,就是我们有一些图像,它的纹理区域里边,它的像素值存在着一个明显的分布模式,你比如说我们有的穿的衣服的这种纹理,或者,你像我们的墙纸,我们的地板,我们的瓷砖等等,都有这样的纹理,我们如果知道了它的分布模式,我们又已知了它的某一个区域的,它的这个图像,那我们就可以通过分析它的分布模式来设计一个生成算法,把其他区域怎么样通过算法来生成出来,而不是我们把所有的图像区域都把它存下来,你比如这是个墙纸,你看我就知道了一个区域,其实我剩下的区域怎么样,我可以复制,你说这也是一种墙纸的类型,你看后面的就是瓷砖,这在大面积存在,你比如说像我们的教室里面,它的这个墙板等等都有这个,包括我们的下面铺的地毯都是一样的好。

4、知识冗余

image.png

第四种类型,就是所谓的叫知识冗余,就是有些图像的理解,与一些基础知识或者领域知识非常相关,就是举个例子,人的脸,它的图像它是有固定的结构的,有什么固定结构,比如说我们的人有两只眼睛,一个鼻子,一个嘴巴,还有什么,两只耳朵。

那你想想我们就知道鼻子、鼻子上面才是眼睛,鼻子下面是嘴的,其实我们不需要把整个人脸怎么样都给记录下来,我们可能知道了一部分脸,我们就可以推断,比如说知道左眼睛,那我们按照对称算法怎么样,它就可以把右眼睛给它生成出来。

image.png

因此我们在人脸的模型里面,我们经常是可以建模的,那我们就可以用这些鲜艳知识和背景知识,给它的其他的区域,比如说这个人脸模型里面,它可以利用这些特性,大幅的降低数据。比如说步骤,你看我们根据已有的知识,对某些图像所包含的物体,构造它的基本的模型,创建各种特征的这种图像图,那么图像里面的存只存储保留这些参数,比如说是有的人,眼睛有各种类型,那么眉毛也有各种事情说,有的是柳叶眉,有的是什么样的眉,但是它的眉。那它怎么样,它就做参数的变化,它可能调一个参数以后,这个眉毛就变得弯一点,那嘴巴也是,它可以把那个长度,宽度,包括它的弯度这三个参数,你的各种嘴型怎么样都可以设计出来,而不用存储这个口,鼻子、眼睛,它本身的这些像素,这就是所谓的我们叫模型编码,它可以大大的减少数据量。

5、视觉冗余

image.png

那么另外一个,就是我们感知领域,这里我们以视觉为例,就说视觉系统对颜色和亮度,它的感知的敏感度是不同的。我们前面曾经讲过,就讲颜色的时候讲过,就是人对颜亮度敏感度最高,对三种颜色里边的绿色最敏感,红色次之,蓝色最敏感。

既然你的敏感度不同,怎么样我们不需要用相同的量化精度去量化这几种不同的颜色,敏感度高的,我们就描述的精细一点,让它的位数多,而不敏感的怎么样就可以粗糙一点,那么它又占用的位数就可以变少,这样不就可以减少了我们的数据量吗?

而这是视觉上,其实我们听觉上也是一样的,我们有的声音听不见,比如说小于20赫兹,高于2000赫兹、2万赫兹的我们也听不见,那我们就可以把这些数据不去保留。另外,同时发出的声音,我们有的频率的声音,可以把其他频率的声音掩蔽掉。那么这闭眼闭的声音怎么样,你也可以不存在,虽然它存在,但是你听不见,那么后面我们讲音频压缩的时候,会专门讲这个我们人的听觉系统对我们数据的这种感知,就说人,它的感知特性被生物学家发现了,而我们把这感知特性,就可以用在我们的数据压缩里,这就是后面我们要讲的所谓的感知编码。它可以大幅的降低数据量。

6、发展趋势

那么发展的趋势就随着人类对视觉、听觉系统和图像模型的进一步研究,那么人们可能会发现更多的冗余性。那么为什么说我们的颜色也好,我们的这个多媒体它是一个化学课,就是我们需要依靠我们生理学家,生物学家,甚至物理学家,材料学家,怎么样他们的一些研究成果,那么视频数据的压缩的可能性,就是它的越来越大,就会推动了我们整个视频压缩技术,它的快速发展也会让这些什么,高分辨量率的,这种4K也好,8K的也好,这些辨识会让大家普通的老百姓也享受到,如果你这个数据量太大这老百姓他买不起。

image.png

我们的压缩标准当然我们分了三代例如我们就是所谓的第一代压缩标准,它这个带宽是多少呢?以这个高清为例它是20 MB BPS,它是压缩了多少压缩了75倍,那么到了第二代

我们就压缩了多少倍?压缩了150倍,到了第三代是什么,就压缩了300倍,基本上是每隔十年这个样,我们就翻一倍。

image.png

基本上是每隔十年我们就翻一倍,这个不是摩尔定律,是十年翻一倍就压缩,比十年可以翻倍,就现在就是原来十年前的数据量,用我们现在的压缩标准去压缩的话,可以让它的数据量怎么样减少一倍,那么或者说,在十年前相同的这个数据下,我们可以传这视频质量的,怎么样可以提高一倍,很显然我们压缩不仅必要,,这个数据压缩的一个研究领域,也是我们多媒体领域的一个非常重要的研究领域,那么国内,你像以北京大学高文院士牵头的也制定了我们国家的压缩标准AVS,那么也目前,在世界上也有非常大的影响。


二、压缩与编码方法分类

我们接着讲的就是压缩和编码的分类,我们按照,信息是否有损失,就是压缩的过程里边是否有信息的损失来分的话,我们可以分为无损压缩和有损压缩,那么这个很很容易理解,就无损的就是信息没有损失,有损就是信息是有损失,那么我们还分可以分成三种类。

B型的编码方法,比如说熵编码,它是不考虑数据源的,它只考虑怎么样,它只考虑它的统计特性,而原编码,是要考虑数据源本身的特性,混合编码,就是把熵编码和原编码两个怎么样混合在一起使用。目前的压缩算法都是混合的方法。

那么按照我们的数据压缩和编码方法,它的作用域是在空域、时域还是在什么?频域我们也可以分为,比如说空间的方法,或者时间为的方法。比如说我们的这个音频,我们的图像,那么变换方法就是是不是变换到了频域或者另外一个空间去进行压缩的,这叫变换方法。混合方法,就是两种方法结合在一起,根据方法本身是否能够自适应,可以分为自适应编码和非自适应编码。

目前一般来说,我们都每一种方法都有它自身的什么自适应方法。

image.png

我们以图像为例,你看我们有多少种压缩算法,比如说我们有PCM压缩算法,那么有固定的,有自适应的,那我们用预测编码,也就是我们的,差分脉冲编码调制,它本身也有自适应,我们也还有什么变换编码,,有离散余弦编码,那我后面还有统计编码,就是熵编码,还有其他的,我们像这个各种其他的编码混合在一起的。我们的课程里面,不是把这里边的每一种方法都讲了,而是把每一类方法里面把它讲它的基础的知识,各位同学注意了,我们讲那些基础的理论,他有新的方法,这些新的方法,无论他怎么变。我们万变不离其宗,从基础的方法里面去做优化,去做改进所形成。

相关文章
|
6月前
|
存储 安全 编译器
C++学习过程中的一些值得注意的小点(1)
C++学习过程中的一些值得注意的小点(1)
|
3月前
|
索引
Sora视频重建与创新路线问题之TECO代码中条件部分和主体部分的编码如何处理
Sora视频重建与创新路线问题之TECO代码中条件部分和主体部分的编码如何处理
|
4月前
|
缓存 自然语言处理 Java
浅析JAVA日志中的性能实践与原理解释问题之减少看得见的业务开销问题如何解决
浅析JAVA日志中的性能实践与原理解释问题之减少看得见的业务开销问题如何解决
|
5月前
|
编译器 测试技术 Linux
技术洞察:循环语句细微差异下的性能探索(测试while(u--);和while(u)u--;的区别)
该文探讨了两种循环语句(`while(u--);` vs. `while(u) u--;`)在性能上的微妙差异。通过实验发现,后者比前者平均执行速度快约20%,原因在于循环条件检查的顺序影响了指令数量。尽管差异可能在多数情况下不显著,但在性能关键的代码中,选择合适的循环结构能优化执行效率。建议开发者在编写循环时考虑编译器优化和效率。未来研究可扩展到不同编译器、优化级别及硬件架构的影响。
|
6月前
|
人工智能 自然语言处理 测试技术
论文介绍:LLMLingua-2——面向高效忠实任务无关性提示压缩的数据蒸馏方法
【5月更文挑战第2天】LLMLingua-2是一种针对大型语言模型(LLMs)的数据蒸馏方法,旨在实现高效且忠实的提示压缩。通过从LLMs中提取知识,该方法在压缩提示的同时保持关键信息,提高模型泛化能力和效率。采用Transformer编码器,LLMLingua-2将提示压缩转化为标记分类问题,确保压缩后的提示忠实度并减少延迟。实验表明,该方法在多个数据集上优于基线,并在压缩延迟上取得显著改进,但也存在泛化能力和扩展性限制。论文链接:https://arxiv.org/abs/2403.12968
119 5
|
XML 安全 Java
【解决方案 十二】一文彻底解决文件格式判别问题
【解决方案 十二】一文彻底解决文件格式判别问题
481 0
【解决方案 十二】一文彻底解决文件格式判别问题
|
安全 Windows
这5款软件虽然知名度不高,但不代表不好用
其实有许多工具,知名度不高,用的人也很少,不过并不代表它们不好用,小编励志做一个合格的搬运工,让大家都能用上好用的软件。
111 1
|
算法 索引
算法创作 | 0到n-1中缺失的数字问题解决方法
算法创作 | 0到n-1中缺失的数字问题解决方法
99 0
|
缓存 Kubernetes 负载均衡
K8s有损发布问题探究
应用发布过程往往出现流量有损,本次文章内容通过提出问题、问题分析和解决方案,EDAS在面对上述问题时,提供了无侵入式的解决方案,无需更改程序代码或参数配置,在EDAS控制台即可实现应用无损上下线。
1044 8
K8s有损发布问题探究
|
消息中间件 存储 Java
【Java深层系列】「技术盲区」让我们一起去挑战一下如何读取一个较大或者超大的文件数据!
【Java深层系列】「技术盲区」让我们一起去挑战一下如何读取一个较大或者超大的文件数据!
146 0
【Java深层系列】「技术盲区」让我们一起去挑战一下如何读取一个较大或者超大的文件数据!