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

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

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

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

相关文章
|
2月前
|
缓存 自然语言处理 Java
浅析JAVA日志中的性能实践与原理解释问题之减少看得见的业务开销问题如何解决
浅析JAVA日志中的性能实践与原理解释问题之减少看得见的业务开销问题如何解决
|
4月前
|
算法 安全 数据安全/隐私保护
深入探究一个长期隐藏的底层bug的学习报告
在软件开发的过程中,底层bug往往像一颗定时炸弹,随时可能引发严重的问题。本文将分享我在开发过程中遇到的一个长期未被发现的底层bug,以及我如何逐步排查并最终解决这个问题的全过程。通过这次排查,我深刻认识到了代码规范性的重要性。一个不规范的代码修改,虽然短期内可能不会引起问题,但长期累积下来,可能会引发灾难性的后果。此外,我也意识到了底层模块的通用性和风险意识的重要性。在解决一个问题的同时,应该审视是否有相似的问题存在,以避免未来的风险。
110 3
|
4月前
|
算法 搜索推荐 数据挖掘
掌握程序员之剑:解析常见算法与其在生活和工作中的影响
掌握程序员之剑:解析常见算法与其在生活和工作中的影响
63 1
|
存储 算法 安全
终于有人用1.6W字把分布式算法的系统模型给彻底讲明白了!
系统模型-进程 在真实的分布式系统中,可能存在服务器(节点)、处理器、进程、线程等并发执行的实体。 在分布式算法中,这些实体都被抽象为进程。 注意,这里的进程与操作系统中的进程不完全是一个概念,后者侧重于描述一组资源的集合,例如文件句柄、地址空间、数据、代码等,还可以有多个线程,而前者是一个有状态的自动机。
918 3
|
XML 安全 Java
【解决方案 十二】一文彻底解决文件格式判别问题
【解决方案 十二】一文彻底解决文件格式判别问题
456 0
【解决方案 十二】一文彻底解决文件格式判别问题
|
安全 Windows
这5款软件虽然知名度不高,但不代表不好用
其实有许多工具,知名度不高,用的人也很少,不过并不代表它们不好用,小编励志做一个合格的搬运工,让大家都能用上好用的软件。
103 1
|
算法 索引
算法创作 | 0到n-1中缺失的数字问题解决方法
算法创作 | 0到n-1中缺失的数字问题解决方法
93 0
|
人工智能 数据挖掘 API
马丁策略量化交易系统开发(逻辑特性)| 马丁策略量化交易源码参考
马丁策略,全名马丁格尔策略,倍投原理,是在亏损之后进行加倍下注,直到连本带利赚回本金为止。随着下注的连续失败,追加的筹码也在成倍增加,只要赢一次,就可以赢回所有的本金和利润,简单来说马丁策略就是输掉后加倍投资的交易策略。量化是在用户授权交易所账户API的前提下,选择交易策略和主流货币,启用AI智能数据分析引擎帮助用户自动匹配“大概率”交易策略,根据数据模型自动分析市场关键点,通过毫秒级闪电交易,向交易所发出买入卖出指令,大幅提高账户交易速率与频率。
|
消息中间件 存储 Java
【Java深层系列】「技术盲区」让我们一起去挑战一下如何读取一个较大或者超大的文件数据!
【Java深层系列】「技术盲区」让我们一起去挑战一下如何读取一个较大或者超大的文件数据!
138 0
【Java深层系列】「技术盲区」让我们一起去挑战一下如何读取一个较大或者超大的文件数据!
|
机器学习/深度学习 数据采集 自然语言处理
高级能力和算法效果优化(二)| 学习笔记
快速学习高级能力和算法效果优化。
172 0
高级能力和算法效果优化(二)| 学习笔记