精华内容
下载资源
问答
  • 压缩感知原理简介

    万次阅读 多人点赞 2019-07-15 21:51:23
    学过通信原理或信号与系统的都知道奈奎斯特采样定理,即想让采样之后的数字信号完整保留原始信号中的信息,采样频率必须大于信号中最高频率的2倍。原因是时域以τ为间隔进行采样,频域会以1/τ为周期发...

    压缩感知——简介

    压缩感知,compressed sensing又称compressed sampling,是在采样过程中完成了数据压缩的过程
    压缩感知在信号采样的过程中,用很少的采样点,实现了和全采样一样的效果。

    压缩感知——信号采样

    学过通信原理或信号与系统的都知道奈奎斯特采样定理,即想让采样之后的数字信号完整保留原始信号中的信息,采样频率必须大于信号中最高频率的2倍。原因是时域以τ为间隔进行采样,频域会以1/τ为周期发生周期延拓。那么如果采样频率低于两倍的信号最高频率,信号在频域频谱搬移后就会发生混叠。
    2004年,Candes,陶哲轩和Donoho提出了压缩感知理论,该理论认为:如果信号是稀疏的,那么它可以由远低于采样定理要求的采样点重建恢复。
    突破的关键就在于采样的方式。当我们说“采样频率”的时候,意味着做的是等间距采样,数字信号领域通常都是做等间距采样,也服从奈奎斯特采样定律。
    在这里插入图片描述
    但是压缩感知采用不等间距采样,比如采用随机亚采样(图b上方的红点),那么这时候频域就不再是以固定周期进行延拓了,而是会产生大量不相关(incoherent)的干扰值。如图c,最大的几个峰值还依稀可见,只是一定程度上被干扰值覆盖。这些干扰值看上去非常像随机噪声,但实际上是由于三个原始信号的非零值发生能量泄露导致的(不同颜色的干扰值表示它们分别是由于对应颜色的原始信号的非零值泄露导致的)
    之所以随机亚采样会有这样的效果,可以理解成随机采样使得频谱不再是整齐地搬移,而是一小部分一小部分胡乱地搬移,频率泄露均匀地分布在整个频域,因而泄漏值都比较小,从而有了恢复的可能。

    压缩感知——信号恢复

    压缩感知——两个前提条件

    刚刚的例子之所以能够实现最终信号的恢复,是因为它满足了两个前提条件:

    1. 这个信号在频域只有3个非零值,所以可以较轻松地恢复出它们。
    2. 采用了随机亚采样机制,因而使频率泄露均匀地分布在整个频域。
      这两点对应了CS的两个前提条件——稀疏性(sparsity)不相关性(incoherence)
      稀疏性可以简单直观地理解为:若信号在某个域中只有少量非零值,即信号在某个域中非零点远远小于信号总点数,那么它在该域稀疏,该域也被称为信号的稀疏域
      因此,第一个前提条件要求信号必须在某一个变换域具有稀疏性。比如例子中,信号在频域是稀疏的,因而可以通过所述的重建方法轻松地在稀疏域(频域)复原出原信号。
      然而通常信号在变换域中不会呈现完全的稀疏性。其实只要它近似满足稀疏性,即大部分值趋于零,只有少量大的非零值,就可以认为它是可压缩信号,可以对它进行CS亚采样。
      对于之前讲的例子,如果它在频域中不稀疏,我们可以做DWT、DCT等,找到它的稀疏变换。

    前提条件1——稀疏性在这里插入图片描述

    前提条件2——非相关性/等距约束性

    在讲第二个前提条件之前,需要引入必要的数学表达。
    在这里插入图片描述
    上面这张图把亚采样的过程用矩阵的方式表达出来:
    如图,x是为长度N的一维信号,也就是原信号,稀疏度为k。此刻它是未知的。
    Φ为观测矩阵,对应着亚采样这一过程。它将高维信号x投影到低维空间,是已知的。
    y=Φx为长度M的一维测量值,也就是亚采样后的结果。显然它也是已知的。
    因此,压缩感知问题就是在已知测量值y和测量矩阵Φ的基础上,求解欠定方程组y=Φx得到原信号x。
    然而,一般的自然信号x本身并不是稀疏的,需要在某种稀疏基上进行稀疏表示。令x=Ψs,Ψ为稀疏基矩阵,s为稀疏系数。
    于是最终方程就变成了:y=ΦΨs。已知y、Φ、Ψ,求解s。
    y=ΦΨs有点长,我们把ΦΨ合并成一个矩阵,称之为传感矩阵。即令Θ=ΦΨ ,则y=ΘS。问题即为,已知y和Θ,求解S
    对应到一开始的例子中:
    x就是三个正弦信号叠加在一起的原信号a;
    稀疏矩阵Ψ就是傅里叶变换,将信号变换到频域S;
    观测矩阵Φ就是我们采用的随机亚采样方式;
    y就是最终的随机亚采样的结果c。
    在这里插入图片描述
    求解出S后,由x=Ψs即可得到恢复出的原信号x。
    然而在正常情况下,方程的个数远小于未知数的个数,方程是没有确定解的,无法重构信号。但是,由于信号是K稀疏,如果上式中的Φ满足有限等距性质(RIP),则K个系数就能够从M个测量值准确重构(得到一个最优解)。
    陶哲轩和Candès证明了RIP是观测矩阵要满足的准确要求。但是,要确认一个矩阵是否满足RIP非常复杂。于是Baraniuk证明:RIP的等价条件是观测矩阵和稀疏表示基不相关(incoherent)。即压缩感知的第二个前提条件。
    在这里插入图片描述
    在这里插入图片描述
    那怎样找到不相关的观测矩阵呢?陶哲轩和Candès又证明: 独立同分布的高斯随机测量矩阵可以成为普适的压缩感知测量矩阵。
    于是满足高斯分布的随机测量矩阵就成了CS最常用的观测矩阵。
    对于二维信号,往往就采用二维高斯随机测量采样矩阵对图像进行亚采样。
    对于一维信号,采用前文提到的随机不等间距的亚采样即可。

    压缩感知——重建方法

    信号采样后需要将其恢复。CS的重建也就是求解欠定方程组y=ΘS的方法。这是一个零范数(l0)最小化问题,是一个NP完全问题(没有快速解法的问题),因此往往转换成一范数(l1)最小化的求解,或者用一些近似估计的算法。
    匹配追踪是一种典型的算法。以上文中的例子为例:
    (1) 由于原信号的频率非零值在亚采样后的频域中依然保留较大的值,其中较大的两个可以通过设置阈值,检测出来(图a)。
    (2) 然后,假设信号只存在这两个非零值(图b),则可以计算出由这两个非零值引起的干扰(图c)。
    (3) 用a减去c,即可得到仅由蓝色非零值和由它导致的干扰值(图d),再设置阈值即可检测出它,得到最终复原频域(图e)
    (4) 如果原信号频域中有更多的非零值,则可通过迭代将其一一解出。
    在这里插入图片描述

    扩展:图像压缩与压缩感知

    信号的稀疏性已经在图像压缩领域有了很广泛的应用。利用信号的稀疏性,可以对信号进行压缩。如图像压缩领域的JPEG格式,就是将图像变换到离散余弦域,得到近似稀疏矩阵,只保留较大的值,从而实现压缩。
    图像压缩和压缩感知这两个概念有着本质上的区别。
    图像压缩是先进行了全采样,然后再变换域丢弃小系数,完成压缩;
    而压缩感知不同,它的思想其实从图像压缩中借鉴了很多:既然全采样了还要再丢弃,我们为什么不能直接少采样一些点?因此,压缩感知直接进行了亚采样,然后再用算法消除亚采样导致的伪影。可以说,压缩感知直接在采样时就完成了压缩
    在这里插入图片描述
    这种直接减少采样点,采集完后重建的方式,相比于图像压缩的全采用之后再压缩的方式,对于很多情形,比如照相机拍摄照片,并没有优势。因为所有像素的采集在一瞬间就都完成了。但是对于一些采集比较慢的情形,比如核磁共振成像,CS就可以发挥巨大优势。原本一副MRI图像常常需要几十秒,速度慢也是MRI的一大缺陷。而应用CS技术后,只需要采集全采样几分之一的数据,就可以重建出原图。这样就可以把成像速度提高好几倍,同时对图像质量影响不大。

    总结

    什么是压缩感知:
    如果一个信号在某个变换域是稀疏的,那么就可以用一个与变换基不相关的观测矩阵将变换所得高维信号投影到一个低维空间上,然后通过求解一个优化问题就可以从这些少量的投影中以高概率重构出原信号。
    压缩感知理论主要包括三部分:
    (1)信号的稀疏表示;
    (2)设计测量矩阵,要在降低维数的同时保证原始信号x的信息损失最小;
    (3)设计信号恢复算法,利用M个观测值无失真地恢复出长度为N的原始信号。

    从06年提出至今,已经发展出了很多算法,原来的基于l1 minimization的BP算法很慢,现在都是快速算法,而且求解算法也从纯优化方面扩展到了estimation方面,有很多基于贝叶斯估计的方法了,目前最火的也是Donoho他们组搞得AMP算法,是用Graph model里面的message passing算法通过近似求解MMSE(MAP)解。在测量矩阵方面,也已经设计出了各种矩阵,除了i.i.d. Gaussian的矩阵还有很多正交的矩阵,比如partial random DFT/DCT 矩阵。对信号的要求也从稀疏变成了存在某种结构,比如low rank,group sparse等等。(2017年进展)

    压缩感知和矩阵填充

    矩阵填充的要领是通过低秩矩阵中的已知要素还原出该矩阵的其他未知要素的进程。这几年,关于矩阵填充方法的理论研究成为压缩感知技术的一个研究热点。在实际的应用领域中涉及对高维数据的分析与处理,可以运用矩阵填充的方法来解决。其过程主要是:通过观测到的局部数据来准确填充缺失数据,从而获得完整数据矩阵的过程。
    压缩感知和矩阵填充都是稀疏约束下的反问题,压缩感知利用信号本身或在变换域中的稀疏约束性求解欠定方程,矩阵填充利用矩阵的低秩约束性求解欠定方程。
    压缩感知理论的核心问题是信号的稀疏表示、观测矩阵的设计和重构算法,信号本身或在变换域中的系数越稀疏,观测矩阵和稀疏基构成的压缩感知矩阵的受限等距常数越小,则压缩感知的性能越好。
    矩阵填充理论的核心问题是矩阵的低秩特性、非相干特性和重构算法,寻找性能良好的重构算法一直是矩阵填充理论中的一个研究重点。此外,压缩感知的应用领域已经拓展得较为广泛,但矩阵填充的应用尚处于起步阶段,挖掘矩阵填充的应用,进而将矩阵填充和压缩感知结合起来进行应用方面的探索,是非常重要和有意义的课题。
    压缩感知的性能取决于3个要素:信号的稀疏性、压缩感知矩阵的非相干性和重构算法的快速有效性。
    矩阵填充性能也取决于3个要素:矩阵的低秩性、矩阵的不相关性和重构算法的快速有效性。

    低秩矩阵

    还记得我们怎么手工求矩阵的秩吗?为了求矩阵A的秩,我们是通过矩阵初等变换把A化为阶梯型矩阵,若该阶梯型矩阵有r个非零行,那A的秩rank(A)就等于r。从物理意义上讲,矩阵的秩度量的就是矩阵的行列之间的相关性。如果矩阵的各行或列是线性无关的,矩阵就是满秩的,也就是秩等于行数。回到上面线性方程组来说吧,因为线性方程组可以用矩阵描述嘛。秩就表示了有多少个有用的方程了。上面的方程组有3个方程,实际上只有2个是有用的,一个是多余的,所以对应的矩阵的秩就是2了。
    OK。既然秩可以度量相关性,而矩阵的相关性实际上就表示了矩阵的结构信息。如果矩阵之间各行的相关性很强,那么就表示这个矩阵实际可以投影到更低维的线性子空间,也就是用几个向量就可以完全表达了,它就是低秩的。所以我们总结的一点就是:如果矩阵表达的是结构性信息,例如图像、用户-商品推荐表等等,那么这个矩阵各行之间存在这一定的相关性,那这个矩阵一般就是低秩的。
    如果X是一个m行n列的数值矩阵,rank(X)是X的秩,假如rank (X)远小于m和n,则我们称X是低秩矩阵。低秩矩阵每行或每列都可以用其他的行或列线性表出,可见它包含大量的冗余信息。利用这种冗余信息,可以对缺失数据进行恢复,也可以对数据进行特征提取。

    应用

    矩阵填充越来越多的应用在协同滤波、系统识别、无线传感网络、视频去噪、人脸识别、医学成像等领域,正在发挥着巨大的作用。特别是在室内定位中的 应用越来越多,是当下的研究热点之一。

    参考网址:
    形象易懂讲解算法II——压缩感知(非常好)
    AndyJee:浅谈压缩感知系列——博客园(非常丰富)
    压缩感知理论
    机器学习——低秩矩阵分解中低秩的意义、矩阵填补、交叉验证

    展开全文
  • 视频压缩编码基本原理

    千次阅读 2018-09-26 16:26:31
    数字化的视频信号能进行压缩的主要依据两个基本条件: 数据冗余:空间冗余、时间冗余、结构冗余、信息熵冗余等,图像的各个像素之间存在着很强的相关性,消除这些冗余不会导致信息损失,属于无损压缩。 视觉冗余:...

    1.视频信号的冗余信息

    数字化的视频信号能进行压缩的主要依据两个基本条件:

    数据冗余:空间冗余、时间冗余、结构冗余、信息熵冗余等,图像的各个像素之间存在着很强的相关性,消除这些冗余不会导致信息损失,属于无损压缩。

    视觉冗余:人眼的一些特性,例如亮度分辨阈值、视觉阈值、对亮度和色度的敏感度不同,是的编码的时候引入适量的误差,也不会被察觉出来。可以利用人眼的这一特性,以一定客观失真换取数据压缩。这种压缩属于有损压缩。

    数字视频信号的压缩正是基于上述两种条件,使得视频数据量得以极大的压缩,有利于传输和存储。

    2.压缩编码方法

    一般的数字视频压缩编码方法都是混合编码,即将变换编码运动估计和运动补偿,以及熵编码三种方式相结合来进行压缩编码。

    变换编码:消去除图像的帧内冗余
    运动估计和运动补偿:去除图像的帧间冗余
    熵编码:进一步提高压缩的效率

    1. 变换编码
    变换编码的作用是将空间域描述的图像信号变换到频率域,然后对变换后的系数进行编码处理。一般来说,图像在空间上具有较强的相关性,变换到频率域可以实现去相关能量集中

    常用的正交变换有离散傅里叶变换,离散余弦变换等等。数字视频压缩过程中应用广泛的是离散余弦变换。

    2. 熵编码
    熵编码是因编码后的平均码长接近信源熵值而得名。熵编码多用可变字长编码(VLC,Variable Length Coding)实现。其基本原理是对信源中出现概率大的符号赋予短码,对于出现概率小的符号赋予长码,从而在统计上获得较短的平均码长。可变字长编码通常有霍夫曼编码、算术编码、游程编码等。其中游程编码是一种十分简单的压缩方法,它的压缩效率不高,但编码、解码速度快,仍被得到广泛的应用,特别在变换编码之后使用游程编码,有很好的效果。

    3. 运动估计和运动补偿
    运动估计(Motion Estimation)和运动补偿(Motion Compensation)是消除图像序列时间方向相关性的有效手段。上文介绍的DCT变换、量化、熵编码的方法是在一帧图像的基础上进行,通过这些方法可以消除图像内部各像素间在空间上的相关性。实际上图像信号除了空间上的相关性之外,还有时间上的相关性。例如对于像新闻联播这种背景静止,画面主体运动较小的数字视频,每一幅画面之间的区别很小,画面之间的相关性很大。对于这种情况我们没有必要对每一帧图像单独进行编码,而是可以只对相邻视频帧中变化的部分进行编码,从而进一步减小数据量,这方面的工作是由运动估计和运动补偿来实现的。

    运动估计技术一般将当前的输入图像分割成若干彼此不相重叠的小图像子块,例如一帧图像的大小为1280x720,首先将其以网格状的形式分成40x45个尺寸为16x16的彼此没有重叠的图像块,然后在前一图像或者后一个图像某个搜索窗口的范围内为每一个图像块寻找一个与之最为相似的图像块。这个搜寻的过程叫做运动估计。通过计算最相似的图像块与该图像块之间的位置信息,可以得到一个运动矢量。这样在编码过程中就可以将当前图像中的块与参考图像运动矢量所指向的最相似的图像块相减,得到一个残差图像块,由于残差图像块中的每个像素值很小,所以在压缩编码中可以获得更高的压缩比。这个相减过程叫运动补偿

    由于编码过程中需要使用参考图像来进行运动估计和运动补偿,因此参考图像的选择显得很重要。一般情况下编码器的将输入的每一帧图像根据其参考图像的不同分成3种不同的类型:I(Intra)帧B(Bidirection prediction)帧P(Prediction)帧
    典型的I、B、P帧结构顺序
    如图所示,I帧只使用本帧内的数据进行编码,在编码过程中它不需要进行运动估计和运动补偿。显然,由于I帧没有消除时间方向的相关性,所以压缩比相对不高。P帧在编码过程中使用一个前面的I帧或P帧作为参考图像进行运动补偿,实际上是对当前图像与参考图像的差值进行编码。B帧的编码方式与P帧相似,惟一不同的地方是在编码过程中它要使用一个前面的I帧或P帧和一个后面的I帧或P帧进行预测。由此可见,每一个P帧的编码需要利用一帧图像作为参考图像,而B帧则需要两帧图像作为参考。相比之下,B帧比P帧拥有更高的压缩比。

    4. 混合编码
    在实际应用中,这几种方法常常是不可分离的,通常将它们结合起来以达到最好的压缩效果。下面是混合编码(即变换编码+ 运动估计和运动补偿+ 熵编码)模型,该模型普遍适用于MPEG1,MPEG2,H.264等标准中。
    混合编码模型

    展开全文
  • 视频压缩基本原理一(转)

    千次阅读 2014-08-15 09:10:49
     在压缩过程中,需要应用压缩算法对源视频进行压缩以创建压缩文件,以便进行传输和存储。要想播放压缩文件,则需要应用相反的解压缩算法对视频进行还原,还原后的视频内容与原始的源视频内容几乎完全相同。文件压缩...
    视频编解码器
      在压缩过程中,需要应用压缩算法对源视频进行压缩以创建压缩文件,以便进行传输和存储。要想播放压缩文件,则需要应用相反的解压缩算法对视频进行还原,还原后的视频内容与原始的源视频内容几乎完全相同。文件压缩、传送、解压和显示所需的时间称为时延。压缩算法越高级,时延就越长。
      视频编解码器(编码器/解码器)是指两个协同运行的压缩-解压算法。使用不同标准的视频编解码器通常彼此之间互不兼容;也就是说,使用一种标准进行压缩的视频内容无法使用另外一种标准进行解压缩。例如,MPEG-4 Part 2解码器就不能与H.264编码器协同运行。
      这是因为一种算法无法正确地对另外一个算法的输出信号进行解码,然而我们可以在同一软件或硬件中使用多种不同的算法,实现多种格式共存。
      图像压缩与视频压缩
      由于不同的视频压缩标准会使用不同的方法来减少数据量,因此压缩结果在比特率、质量和时延方面也各不相同。
      图像压缩采用帧内编码技术。这种技术通过删除肉眼看不到的无关信息,仅压缩一帧图像内的数据。M-JPEG是这种压缩标准的一个例子。M-JPEG序列中的图像按单个JPEG图像进行编码或压缩。

    视频压缩算法,如MPEG-4和H.264等,采用帧内预测模式压缩一系列帧之间的数据。这种算法涉及多种技术,如差分编码,一帧与参考帧进行比较,仅编码相对于参考帧发生变化的像素。这种方法减少了编码和发送的像素值数量。这种顺序编码的图像以原有视频顺序显示。

      对差分编码(包括H.264在内的大多数视频压缩标准都采用这种方法)来说,只有第一个图像(I帧)是将全帧图像信息进行编码。在后面的两个图像(P帧)中,其静态部分(即房子)将参考第一个图像,而仅对运动部分(即正在跑步的人)使用运动矢量进行编码,从而减少发送和存储的信息量。
      其他技术,如基于块的运动补偿可用来进一步减少数据。基于块的运动补偿考虑到视频序列中构成新帧的大量信息都可以在前面的帧中找到,但可能会在不同的位置上。
      所以,这种技术将一个帧分为一系列的宏块(像素块)。然后,通过在参考帧中查找匹配块的方式,逐个块地构建或者“预测”一个新帧。如果发现匹配的块,编码器只需要对参考帧中发现匹配块的位置进行编码。从名称可以看出,与对块的实际内容进行编码相比,只对运动矢量进行编码可以减少所占用的数据位。

    采用帧间预测编码帧时,将会把图像序列中的帧划分为不同类型的帧,如I帧、P帧或B帧。
      I帧(帧内编码帧)是一种自带全部信息的独立帧,无需参考其它图像便可独立进行解码。视频序列中的第一个帧始终都是I帧。如果所传输的比特流遭到破坏,则需要将I帧用作新查看器的起始点或重新同步点。I帧可以用来实现快进、快退以及其它随机访问功能。
      如果新的客户端将参与查看视频流,编码器将以相同的时间间隔或者根据要求自动插入I帧。I帧的缺点在于它们会占用更多的数据位,但从另一方面看,I帧不会因丢失数据而产生可觉察的模糊现象。
      P帧(帧间预测编码帧)需要参考前面的I帧和/或P帧的不同部分才能进行编码。与I帧相比,P帧通常占用更少的数据位,但其缺点是,由于P帧对前面的P和I参考帧有着复杂的依赖性,因此对传输错误非常敏感。
      B帧(双向预测编码帧)需要同时以前面的帧和后面的帧作为参考帧。采用B帧会加大时延。

      当视频解码器逐个帧地对比特流进行解码以便重构视频时,必须始终从I帧开始解码。如果使用了P帧和B帧,则必须与参考帧一起解码。 

      除差分编码和运动补偿外,还可以采用其他先进方法减少数据量,提高视频质量。例如,H.264支持各种高级技术,从用于I帧编码的预测机制、改进运动补偿到亚像素精度、环内去块效应滤波器直至平滑块边缘(模糊现象)等。

    展开全文
  • 图像压缩原理

    万次阅读 多人点赞 2019-02-14 15:48:22
    1 图像可压缩的原因 一张原始图像(1920x1080),如果每个像素32bit表示(RGBA),那么,图像需要的内存大小  1920x1080x4 = 8294400 Byte,大约8M。这我们是万万不能接受的。如果这样,1G硬盘才存100多张图片,伤不....

    原文网址:http://blog.csdn.net/newchenxf/article/details/51693753 
    转载请注明出处。

    1 图像可压缩的原因
    一张原始图像(1920x1080),如果每个像素32bit表示(RGBA),那么,图像需要的内存大小 
    1920x1080x4 = 8294400 Byte,大约8M。这我们是万万不能接受的。如果这样,1G硬盘才存100多张图片,伤不起啊!视频也一样,如果视频是1920x1080,30fps, 1小时。那不压缩大概需要的内存: 
    8Mx30x60*60 = 864000M,都800多G了!疯了吧!

    所以说,我们需要图像压缩。

    那图像为何可以压缩呢?因为它有很多冗余信息。 
    常见图像、视频、音频数据中存在的冗余类型如下: 
    1. 空间冗余 
    2. 时间冗余 
    3. 视觉冗余 
    下面详细介绍。

    1.1 空间冗余
    一幅图像表面上各采样点的颜色之间往往存在着空间连贯性,比如下图,两只老鼠的颜色,背后的墙,灰色的地板,颜色都一样。这些颜色相同的块就可以压缩。 
    比如说,第一行像素基本都一样,假设亮度值Y是这么存的 
    [105 105 105…….105],如果共100个像素,那需要1Byte*100。 
    最简单的压缩:[105, 100],表示接下来100个像素的亮度都是105,那么只要2个字节,就能表示整行数据了!岂不是压缩了! 

    空é´åä½
    空间冗余主要发生在单张图片,比如我们的照片。

    1.2 时间冗余
    这种冗余主要针对视频。 
    运动图像(视频)一般为位于一时间轴区间的一组连续画面,其中的相邻帧往往包含相同的背景和移动物体,只不过移动物体所在的空间位置略有不同,所以后一帧的数据与前一帧的数据有许多共同的地方,这种共同性是由于相邻帧记录了相邻时刻的同一场景画面,所以称为时间冗余。 
    如下图所示,其实1秒30帧,每一帧之间都是33ms,这么短,前后帧的变话很少,也许只有嘴巴动了,背景没动。 

    è¿éåå¾çæè¿°
    1.3 视觉冗余
    人类的视觉系统由于受生理特性的限制,对于图像场的注意是非均匀的,人对细微的颜色差异感觉不明显。 
    例如,人类视觉的一般分辨能力为26灰度等级,而一般的图像的量化采用的是28灰度等级,即存在视觉冗余。 
    人类的听觉对某些信号反映不太敏感,使得压缩后再还原有允许范围的变化,人也感觉不出来。

    2 数据压缩方法的分类
    2.1 按照压缩方法是否产生失真分类
    2.1.1 无失真压缩
    无失真压缩要求解压以后的数据和原始数据完全一致。解压后得到的数据是原数据的复制,是一种可逆压缩。 
    无失真压缩法去掉或减少数据中的冗余,恢复时再重新插到数据中,因此是可逆过程 
    根据目前的技术水平,无损压缩算法一般可以把普通文件的数据压缩到原来的1/2-1/4。一些常用的无损压缩算法有赫夫曼(Huffman)算法和LZW(Lenpel-Ziv & Welch)压缩算法

    2.1.2 有失真压缩
    解压以后的数据和原始数据不完全一致,是不可逆压缩方式。有失真压缩还原后,不影响信息的表达 
    例如,图像、视频、音频数据的压缩就可以采用有损压缩方法,因为其中包含的数据往往多于我们的视觉系统和听觉系统所能接收的信息,丢掉一些数据而不至于对声音或者图像所表达的意思产生误解,但可大大提高压缩比。图像、视频、音频数据的压缩比可高达100:1,但人的主观感受仍不会对原始信息产生误解。

    2.2 按照压缩方法的原理分类
    2.2.1 预测编码
    基本思想是利用已被编码的点的数据值,预测邻近的一个像素点的数据值

    2.2.2 变换编码
    基本思想是将图像的光强矩阵变换到系数空间上,然后对系数进行编码压缩

    2.2.3 统计编码
    根据信息出现概率的分布特性而进行的压缩编码。比如霍夫曼编码。

    3 图像压缩的要素
    压缩比 
    压缩前后文件大小之比,越高越好,但受速度、消耗资源等的影响。 
    图像质量 
    还原后与原图像相比,评估的方法有客观评估和主观评估。 
    压缩与解压缩速度 
    与压缩方法和压缩编码的算法有关,一般压缩比解压缩计算量大,因而压缩比解压缩慢。

    4. 图像压缩编码举例
    4.1 行程编码(RLE)
    这是最好理解的一种编码了。 
    现实中有许多这样的图像,在一幅图像中具有许多颜色相同的图块。在这些图块中,许多行上都具有相同的颜色,或者在一行上有许多连续的像素都具有相同的颜色值。在这种情况下就不需要存储每一个像素的颜色值,而仅仅存储一个像素的颜色值,以及具有相同颜色的像素数目就可以,或者存储像素的颜色值,以及具有相同颜色值的行数。 
    这种压缩编码称为行程编码(run length encoding,RLE),具有相同颜色并且是连续的像素数目称为行程长度。 
    例如,字符串AAABCDDDDDDDDBBBBB 
    利用RLE原理可以压缩为3ABC8D5B 
    RLE编码简单直观,编码/解码速度快, 
    因此许多图形和视频文件,如.BMP .TIFF及AVI等格式文件的压缩均采用此方法. 
    由于一幅图像中有许多颜色相同的图块,用一整数对存储一个像素的颜色值及相同颜色像素的数目(长度)。例如: 
    (G ,L)//G为颜色值,L为长度值 
    编码时采用从左到右,从上到下的排列,每当遇到一串相同数据时就用该数据及重复次数代替原来的数据串。

    举例,如下的18*7的像素(假设只有灰度值,1字节) 
    000000003333333333 
    222222222226666666 
    111111111111111111 
    111111555555555555 
    888888888888888888 
    555555555555553333 
    222222222222222222 
    仅仅需要11对数据表示。 
    (0,8) (3,10) (2,11) (6,7) 
    (1,18) (1,6) (5,12) (8,18) 
    (5,14) (3,4) (2,18)

    游程长度编码特点: 
    直观,经济; 
    是一种无损压缩; 
    压缩比取决于图像本身特点,相同颜色图像块越大,图像块数目越少,压缩比越高。 
    适用于计算机生成的图像,例如。BMP、TIF等,不适于颜色丰富的自然图像。

    这并不是说RLE编码方法不适用于自然图像的压缩,相反,在自然图像的压缩中少不了RLE,只不过是不能单纯使用RLE一种编码方法,需要和其他的压缩编码技术联合应用。

    4.2 哈夫曼编码(Huffman)
    由于图像中表示颜色的数据出现的概率不同,对于出现频率高的赋(编)予较短字长的码,对出现频率小的编于较长字长的码,从而减少总的代码量,但不减少总的信息量。

    编码步骤: 
    (1)初始化,根据符号概率的大小按由大到小顺序对符号进行排序 
    (2)把概率最小的两个符号组成一个节点,如图4-02中的D和E组成节点P1。 
    (3)重复步骤2,得到节点P2、P3和P4,形成一棵“树”,其中的P4称为根节点。 
    (4)从根节点P4开始到相应于每个符号的“树叶”,从上到下标上“0”(上枝)或者“1”(下枝),至于哪个为“1”哪个为“0”则无关紧要,最后的结果仅仅是分配的代码不同,而代码的平均长度是相同的。 
    (5)从根节点P4开始顺着树枝到每个叶子分别写出每个符号的代码。

    4.3 DCT编码
    4.3.1 基本概念
    将在空域上描述的图象,经过某种变换(通常采用,余弦变换、傅立叶变换、沃尔什变换等),在某种变换域里进行描述。 
    在变换域里,首先降低了图象的相关性;其次通过某种图象处理(如频域的二维滤波)以及熵编码,则可进一步压缩图象的编码比特率。 
    这种变换常用于JPEG图像压缩。

    4.3.2 变换压缩原理框图
     è¿éåå¾çæè¿°
    G : 输入源图像 
    G’ :解码后的图像 
    U: 二维正交变换 
    U’ : 二维正交逆变换

    有关DCT变换,由于内容较长,将在另一边博文讨论。 
    请看我另一篇博文:[JPEG压缩原理与DCT离散余弦变换] 
    http://blog.csdn.net/newchenxf/article/details/51719597

    除了这些常见的压缩算法,还有很多种其他算法,这里就不一一介绍啦,反正你有个感性的认识就行。
    --------------------- 
    作者:长江很多号 
    来源:CSDN 
    原文:https://blog.csdn.net/newchenxf/article/details/51693753 
    版权声明:本文为博主原创文章,转载请附上博文链接!

    展开全文
  • 这些原理,就是指明方向的。 一.视频压缩的可行性 1.空间冗余 一幅静态图像,比如人脸。背景,人脸,头发等处的亮度,颜色,都是平缓变化的。相邻的像素和色度信号值比较接近。具有强相关
  • JPEG压缩原理

    2014-05-10 12:08:01
    详细介绍了JPEG压缩原理和核心算法, 对嵌入式图像压缩的开发有很大帮助.
  • 压缩感知原理及应用,英文版,(1-12章)完整版,作者:Yonina C. Eldar, 经典教材。
  • 基于博客https://blog.csdn.net/q18421896/article/details/116998818,看需求再下载,是基于分块运动补偿的视频压缩,纯手打实现,但是结果并不是很理想,可能仅能提供一个思路或实现方式,以及一些原理性细节。...
  • 图像压缩编码和解码原理

    万次阅读 2016-07-29 17:16:45
    本节介绍图像压缩编码的基本原理,图像数据压缩和解压缩电路的基本结构。它们是看影碟机电路图的基础知识。  一、图像压缩的基本途径  图像的数据量极大,必须对其数据总量大大压缩,才能够存储在直径12cm的...
  • 压缩感知基本原理

    千次阅读 2013-03-04 10:59:36
    传统的信息获取和处理过程主要包括采样、压缩、传输和解压缩四个部分。采样过程必须满足奈奎斯特采样定理。 采样定理:在进行模拟/数字信号的转换过程中,当采样频率fs.max大于信号中最高频率fmax的2倍时(fs.max>=2...
  • 概述了虚拟压缩恢复基本原理及其在地球科学特别是边值问题中的应用。作为新的应用实例,论证了 Runge定理、Runge-Krarup定理和 Keldysh-Lavrentiev定理均是虚拟压缩恢复原理的推论。
  • 关于压缩感知的基本原理

    千次阅读 2018-12-11 21:10:53
    转自... 该博客中作者介绍了传统的压缩压缩感知,并且介绍了匹配追踪算法OMP的基本原理,让我看明白点了OMP算法。但是有一个疑问,如果不知道信号的稀疏度该怎么办? ...
  • ZIP压缩原理

    千次阅读 2017-06-25 12:35:44
    ZIP压缩原理 接着上一篇,我们学会了用vs2013将zlib.h头文件载入了vs2013,我们可以调用压缩和解压函数来实现这些操作,今天我们来一起学习下zip压缩原理。 zip压缩原理分为以下步骤: 1,将数据进行LZ压缩:...
  • 视频压缩编码和音频压缩编码的基本原理

    万次阅读 多人点赞 2014-06-03 00:01:20
    本文介绍一下视频压缩编码和音频压缩编码的基本原理。其实有关视频和音频编码的原理的资料非常的多,但是自己一直也没有去归纳和总结一下,在这里简单总结一下,以作备忘。
  • IP电话基本原理是:通过语音压缩算法对语音信号进行压缩编码处理,然后把这些语音数据按TCP/IP标准进行打包,经过网络把数据包发送到接收地;接收端把这些语音数据包串起来,经过解码解压缩处理后恢复成原来的语音...
  • JPEG压缩原理详解

    千次阅读 多人点赞 2019-03-25 15:36:17
    图片压缩有多重要,可能很多人可能并没有一个直观上的认识,举个例子,一张800X800大小的普通图片,如果未经压缩,大概在1.7MB左右,这个体积如果存放文本文件的话足够保存一部92万字的鸿篇巨著《红楼梦》,现如今...
  • 本节介绍图像压缩编码的基本原理,图像数据压缩和解压缩电路的基本结构。它们是看影碟机电路图的基础知识。  一、图像压缩的基本途径  图像的数据量极大,必须对其数据总量大大压缩,才能够存储在直径12cm的光盘...
  • Huffman树与文件压缩原理

    千次阅读 2018-07-13 12:31:35
    Huffman树与文件压缩 1、Huffman树的简单介绍 Huffman树,又称为最优二叉树,是加权路径长度最短的二叉树。 下面,我要用一个简单的数组构造一棵Huffman树: a[]={0,1,2,3,4,5,6,7,8,9}; 从图片里我们可以...
  • JPEG 图像压缩原理

    千次阅读 2019-10-26 20:24:17
    JPG格式的图片体积相对较小,是因为它采用了一系列的压缩算法,压缩图片弊端就是和原始的图片相比,它牺牲掉了一些画面细节,这些丢失的细节或许可被人的肉眼看出,或许以人的肉眼难以发现,对于这种通过牺牲画面的...
  • voip的基本原理

    2021-01-19 21:32:51
    VoIP的基本原理是通过语音的压缩算法对语音数据编码进行压缩处理,然后把这些语音数据按 TCP/IP 标准进行打包,经过 IP 网络把数据包送至接收地,再把这些语音数据包串起来,经过解压处理后,恢复成原来的语音信号,...
  • 视频压缩编码的基本原理

    千次阅读 2017-02-02 22:32:59
    陆陆续续学习H264有一段时间了,曾经以为自己可以在这方面大有作为,但是越是学习越... 首先推荐三本书,《新一代视频压缩编码标准H.264(毕厚杰)》,《h264和mpeg-4视频压缩:新一代多媒体的视频编码技术》,《H264标
  • 图像压缩编码原理

    千次阅读 2018-01-10 17:23:12
    为什么要进行图像压缩编码? 1) 在数字分量编码中,按照4:2:2格式对电视信号进行取样、量化、编码后,数据率达27MW/S。 2) 在数字高清晰度电视格式中,取样、量化、编码后的数据率会更大。 3) 电视信号...
  • 压缩文件的原理

    千次阅读 2017-06-22 22:01:23
    很久以前就好奇压缩文件是怎么实现的。在网上搜索了下发现压缩的原理还是很容易理解的,将搜索的结果整理如下: 简单的说,就是经过压缩...压缩文件的基本原理是查找文件内的重复字节,并建立一个相同字节的"词典
  • PCA降维原理,包含基本的线性代数基础知识,以及降维的原理,和降维矩阵的求解方法。。。。。。。。。。。。。。。。。。。。。。。
  • 经典的介绍压缩感知原理的入门书籍! 1.《Compressed Sensing:Theory and Applications》 2.《A Mathematical Introduction to Compressive Sensing》 3.《Adapted Compressed Sensing for Effective Hardware ...
  • 摘要:为解决雷达作用距离和距离分辨力的问题,分析了线性调频脉冲压缩的原理及工程实现方法,并利用Matlab软件对加权前后的线性调频信号脉冲压缩波形进行对比。简述了分布式(DA)算法的基本原理,给出一种基于FPGA分

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 155,431
精华内容 62,172
关键字:

压缩的基本原理