图像数据压缩方法

2023-11-20

数据压缩方法

数据能够进行压缩,是因为数据中存在或多或少的冗余信息,而对于视频和音频等多媒体信息,更可以利用人类自身的感知冗余(失真)特点来实现更高的压缩比例。衡量压缩算法的三个主要性能指标如下:

压缩比
压缩质量(失真)
压缩与解压缩效率

注:事实上人类视觉系统一般分辨能力约为64灰度等级,而一般图像量化采用256灰度等级,这类冗余我们称为视觉冗余。
例如,人的视觉对于边缘的急剧变化不敏感,且人眼对图像的亮度信息敏感,对颜色的分辨率弱等,因此视频编码算法需要充分利用人眼的“弱点”进行 “欺骗性”设计.

数据压缩方法分类:

1、根据编码后数据与原始数据是否一致:

1、1 可逆编码(无失真编码,无损压缩)

例如:Huffman编码、算术编码、行程长度编码等。

1、2 不可逆编码(有失真编码,有损压缩)

例如:变换编码和预测编码

图像压缩编码方法分类:
在这里插入图片描述

2、根据压缩原理:

2、1 信息熵编码(统计编码)

信息熵编码又称统计编码,它是根据信源符号出现概率的分布特性而进行的压缩编码,基本思想是在信源符号和码字之间建立明确的一一对应关系,以便在恢复时能准确地再现原信号,同事要使平均码长或码率尽量小。最常见的是Huffman编码、Shannon(香农)编码以及算术编码。

Huffman编码
Huffman编码属于信息熵编码的方法之一,霍夫曼编码的码长是变化的,对于出现频率高的信息,编码的长度较短:而对于出现频率低的信息,编码长度较长。如此,处理全部信息的总码长一定小于实际信息的码长。

算术编码
算术编码把一个信源集合表示为实数线上的0到1之间的一个区间,这个集合的每一个元素都用来缩短这个区间。
信源集合的元素越多,所得到的区间就越小,当区间变小时,就需要更多的数位来表示这个区间,这就是区间作为代码的原理。算数编码首先假设一个信源的概率模型,然后利用这些概率来缩小表示信源集的区间。

行程编码
行程编码又称为运行长度编码或游程编码,是一种统计编码,常用RLE(Run-LengthEncoding)表示。
这是无损编码,一般包含两项,第一项时用一个符号串代替具有相同值得连续符号,第二项是记录原始数据中有多少个这样的值。
例如66777770002555558888的行程编码为(6,2)(7,5)(0,3)(2,1)(5,5)(8,4).

预测编码
预测编码的原理是利用相邻样本的相关性来预测数据,预测编码可以用于空域(比如同一帧中相邻像素样本之间具有高度相关性),也可以用于时域(比如相邻两帧图像的相同位置的像素样本之间具有高度相关性)。

这样,预测编码无需编码传输所有的采样值,而是编码传输采样值的预测值与其实际值之间的差值。预测编码分为线性预测及非线性预测,线性预测的典型代表是差分脉冲编码调制( DPCM) 编码。

空间冗余是图像数据中经常存在的一种冗余,在同一幅图像中,规则物体和规则背景的表面物理特性具有相关性,这些相关性的光成像结构在数字化图像中就表现为数据冗余。时间冗余则是序列图像中所经常包含的冗余,序列图像中的两幅相邻的图像之间有较大的相关性,即反映为时间冗余。空间冗余及时间冗余示意如下图所示。
在这里插入图片描述
变换编码

预测编码方式消除相关性的能力有限,变换编码是一种更高效的编码方式。变换编码的思想是将原始数据从时间域或者空间域变换到另一个更适合于压缩的抽象域,通常为频域。

即变换编码不是对空间区域的图像信号编码,而是将图像信号映射变换到另外一个正交矢量空间(变换域或频域),产生一系列变换系数,然后对这些系数进行编码处理。

变换具有可逆性及可实现性,目前普遍采用的是基于块的离散余弦变换(DCT)。

变换编码的主要分类如下:
离散余弦变换(DCT)
离散正弦变换(DST)
离散小波变换(DWT)
离散傅立叶变换(DFT)

模型编码
模型编码是利用计算机视觉技术和图形学技术对图像信号进行分析和合成,通过对图像的分析和描述,将图像视为实际的三维空间场景的二维平面的投影,进而对图像结构和特征进行分析并提取出特征参数,然后用某种模型进行描述,最后通过对模型参数编码达到视频压缩的目的。

在解码时,根据参数和模型的“先验”知识重建图像。由于是对“特征参数”进行的编码,因此压缩比较高。模型编码目前主要集中应用于可视电话和会议电视系统中。

因为此类应用传送的图像中主要感兴趣的内容是人的“头肩像”,是一种基本固定的特定场景,可以预先建立人体头肩像的三维模型,从而进行模型编码。

混合编码
用两种或两种以上的方法对图像进行编码称为混合编码,混合编码是近年来广泛采用的一种视频编码压缩方法。
混合编码通常使用DCT等变换方式进行空间冗余度的压缩,用帧间预测或运动补偿预测进行时间冗余度的压缩,从而达到对运动图像的更高的压缩率。
视频压缩过程中主要利用的冗余信息如下表所示。
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

图像数据压缩方法 的相关文章

随机推荐

  • 如何把ipa文件(iOS安装包)安装到iPhone手机上? 附方法汇总

    苹果APP安装包ipa如何安装在手机上 很多人不知道怎么把ipa文件安装到手机上 这里就整理了苹果APP安装到iOS设备上的方式 仅供参考 苹果APP安装包ipa如何安装在手机上 使用过苹果手机的人应该深有感触 那就是苹果APP安装要比安卓
  • 深度态势感知

    1 引 言 从某种意义上说 人类文明是一个人类对世界和自己不断认知的过程 所为认知就是对有用的数据 信息进行采集过滤 加工处理 预测输出 调整反馈的全过程 纵观人类最早的美索不达米亚文明 距今6000多年 古埃及文明 距今6000年 及其衍
  • 前端使用layui结合canvas实现图片验证码

    fieldset class layui elem field layui field title style margin top 20px legend 图形验证码 legend fieldset
  • 基于PCA的人脸识别(MATLAB)

    项目描述 采用数据库为剑桥大学ORL人脸数据库 包含40个人的400张人脸图像 每人对应10张 图像为92x112灰度图像 256灰度级 对于每个人的10张图像 随机选择7张用来训练 另外3张用于测试 采用2范数最小匹配 对每个人的另外3张
  • 网站更换IP会对收录有什么影响?

    IP对于网站来说相当于是一个身份证 如果频繁换新对网站还是会带来一些波动的 那么 网站更换IP会有什么影响 接下来百万号快排系统小编就跟大家聊聊更换IP会给网站带来的影响 一起来看看吧 1 百度快照停止搜索和收录 企业建立IP之后 在百度快
  • 不同kNN模型在R语言中的比较

    不同kNN模型在R语言中的比较 k近邻 k Nearest Neighbors 简称kNN 是一种常见的机器学习算法 被广泛用于分类和回归问题 它基于一个简单的假设 与某个样本集中距离最近的k个样本具有相似的特征和标签 本文将探讨在R语言中
  • std::future、std::promise、std::packaged_task、std::async

    include
  • 使用下标给string类型赋值之后,cout输出变量为空的问题。

    今天写创建文件夹的时候 怎么创建都不会 反复修改 确定错误是出在了string类型的变量上面 看下面代码 这个一个函数中的代码 函数参数是string fileurl s int len fileurl s length std strin
  • 栈的基本操作(创建栈,压栈,出栈,遍历栈,清空栈,判断是否为空栈)

    include
  • arthas 线上更新代码不生效的问题Memory compiler error, exception message: Compilation Error

    arthas 线上更新代码的场景 线上代码bug 参数值不对 if判断 代码写错了 应用场景不对 导致代码报错出现问题 这个时候我们可以避免版本的发布就不走hostfix分支发布 应为自动化部署比较麻烦 需要jenkins打包推镜像 我们小
  • ubuntu 20.04 docker安装emqx 最新版本或指定版本

    要在Ubuntu 20 04上使用Docker安装EMQX EMQ X Broker 的4 4 3版本 您可以执行以下步骤 1 更新系统包列表 sudo apt update 2 安装Docker sudo apt install dock
  • MAttNet

    PyTorch Implementation of MAttNet Introduction This repository is Pytorch implementation of MAttNet Modular Attention Ne
  • 继承,重载函数,派生函数

    继承是类与类之间的关系 是一个很简单很直观的概念 与现实世界中的继承 例如儿子继承父亲财产 类似 继承 Inheritance 可以理解为一个类从另一个类获取成员变量和成员函数的过程 例如类B继承于类A 那么B就拥有A的成员变量和成员函数
  • 【软硬件通信】ESP32 Arduino 服务端 控制舵机

    1 安装esp32开发环境 搭建ESP32开发环境 2 编写舵机驱动程序 include
  • javaScript基础面试题---找出多维数组最大值

    function fnArr arr var newArr arr forEach item index gt newArr push Math max item return newArr console log fnArr 4 5 1
  • python 猫狗二分类简单实现

    1 数据集介绍 需要数据集可以在下面留言 数据集一共有猫图片 6000张 有狗图片 6000张 图片已经被命名为 0 1 jpg 0 6000 jpg 猫 1 0 jpg 1 6000 jpg 狗 照片读取代码如下 import numpy
  • C/C++在线编译器

    一直以来都喜欢用手机看书 尤其是在上班时 看的最多的是编程一类的书 主要是C 看着就想写写代码 可是电脑用不能用 怎么办 于是想到用UC浏览器找找看网上有没有在线的编译器 想什么时候写代码都可以验证 于是就找了几个 各有千秋吧 中文的我没找
  • python中用于返回元组中元素最小值的是_10个示例带你掌握python中的元组

    数据结构是任何编程语言的关键部分 为了创建强大而性能良好的产品 必须非常了解数据结构 在本文中 我们将研究Python编程语言的重要数据结构 元组 元组是用逗号分隔并括在括号中值的集合 与列表不同 元组的元素是不可变的 不变性可以视为元组的
  • 阿里巴巴开发手册-并发处理

    强制 获取单例对象要线程安全 在单例对象里面做操作也要保证线程安全 说明 资源驱动类 工具类 单例工厂类都需要注意 强制 线程资源必须通过线程池提供 不允许在应用中自行显式创建线程 说明 使用线程池的好处是减少在创建和销毁线程上所花的时间以
  • 图像数据压缩方法

    数据压缩方法 数据能够进行压缩 是因为数据中存在或多或少的冗余信息 而对于视频和音频等多媒体信息 更可以利用人类自身的感知冗余 失真 特点来实现更高的压缩比例 衡量压缩算法的三个主要性能指标如下 压缩比 压缩质量 失真 压缩与解压缩效率 注