(数字图像处理MATLAB+Python)第十二章图像编码-第三、四节:有损编码和JPEG

文章目录

  • 一:有损编码
    • (1)预测编码
      • A:概述
      • B:DM编码
      • C:最优预测器
    • (2)变换编码
      • A:概述
      • B:实现变换编码的主要问题
  • 二:JPEG

一:有损编码

(1)预测编码

A:概述

预测编码:是一种数据压缩技术,旨在通过利用数据中的统计规律来减少存储或传输所需的比特数。它基于预测模型,根据已经观察到的数据来预测未来的数据,并将预测误差编码和传输。预测编码的过程通常包括以下几个步骤

  • 模型训练:首先,根据已有的数据,建立一个预测模型。这可以是简单的算术模型,也可以是更复杂的统计模型,如线性回归、自回归模型等。
  • 预测:使用训练好的模型来预测下一个数据点的值。预测结果与实际观测值之间的差异称为预测误差。
  • 编码:将预测误差转换成二进制序列。较大的误差通常需要更多的比特表示,而较小的误差则需要较少的比特。
  • 传输/存储:将编码后的二进制序列进行传输或存储。由于预测误差经过编码后变得更紧凑,所以可以节省存储空间或减少传输带宽。

在解码时,接收端使用相同的预测模型和解码器来还原预测误差,并通过与先前的预测值相加来重建原始数据

B:DM编码

DM编码:也称为差分脉冲调制(Differential Manchester coding),是一种数字信号编码方法。它的主要特点是通过改变信号的边沿来传输信息,而不是依赖信号的电平。编码原理如下

  • 每个位周期被分成两个时间间隔,通常称为一个时钟周期
  • 逻辑值 1 被表示为从高电平到低电平或者从低电平到高电平的过
  • 逻辑值 0 被表示为在时钟周期中的每个中点处发生电平的变化
  • 在每个时钟周期开始时,信号的边沿都会发生变化,不管数据位的值如何,这样可以提供同步和时钟恢复的机制

DM编码优势如下

  • 抗干扰能力强:由于在每个时钟周期都有信号边沿的变化,DM编码在面对噪声和干扰时具有较好的抗干扰能力。
  • 同步性好:由于每个时钟周期开始时信号边沿都会变化,接收端可以利用这些边沿来进行时钟恢复和数据解码,保证了通信双方的同步性。
  • 错误检测能力强:由于每个位周期中的边沿变化是固定的,如果接收到的信号不符合DM编码规则,可以判断出错误发生

f ^ N ( x , y ) = a ⋅ f N ′ ( x , y ) e N ′ ( x , y ) = { + c if  e N ( x , y ) > 0 − c if  e N ( x , y ) ≤ 0 \begin{array}{l}\hat{f}_{N}(x, y)=a \cdot f_{N}^{\prime}(x, y) \\e_{N}^{\prime}(x, y)=\left\{\begin{array}{lll}+c & \text { if } & e_{N}(x, y)>0 \\-c & \text { if } & e_{N}(x, y) \leq 0\end{array}\right.\end{array} f^N(x,y)=afN(x,y)eN(x,y)={+cc if  if eN(x,y)>0eN(x,y)0

如下,假设输入序列如下,DM编码系统中的 a = 1 a=1 a=1 c = 6 c=6 c=6

在这里插入图片描述

DM编码过程实现如下

在这里插入图片描述

C:最优预测器

最优预测器:是一种能够根据给定的数据和模型,对未来事件或现象进行准确预测的算法或系统。它能够通过分析历史数据、探索潜在模式和趋势,以及应用统计学和机器学习方法,对未知情况进行预测

  • 数据驱动:最优预测器通过利用可用的数据来进行预测,这些数据可以是过去的观测结果、实验数据、传感器数据等。它依赖于大量的数据,并利用这些数据中的模式和趋势来做出预测
  • 模型选择:最优预测器需要选择合适的模型来对数据进行建模。这些模型可以是统计模型、机器学习模型、时间序列模型等。选择合适的模型是提高预测准确性的重要因素之一
  • 特征工程:最优预测器通常需要对原始数据进行特征提取和特征工程,以便更好地表示数据的信息和特征。这可以包括对数据进行降维、标准化、归一化等操作,以及选择合适的特征子集
  • 参数调整:最优预测器可能有一些参数需要调整,以便使模型更好地适应数据和预测任务。这可以通过交叉验证、网格搜索等方法进行
  • 评估准则:最优预测器需要选择合适的评估准则来度量其预测性能。这可以是均方根误差(RMSE)、平均绝对百分比误差(MAPE)等。通过评估准则,可以比较不同模型或算法的性能,选择最优的预测器

求解最佳预测系数需要满足如下条件,这种限制是为了确保预测器的输出能落到灰度级的允许范围内,并减少传输噪声的影响,传输噪声的影响通常在重构图像中表现为水平的条纹

∑ i = 1 m a i ≤ 1 \sum_{i=1}^{m} a_{i} \leq 1 i=1mai1
如下是一个4阶的线性预测系统

在这里插入图片描述

(2)变换编码

A:概述

变换编码:是一种用于信号压缩的技术,它通过将信号转换到另一个表示域进行编码和压缩。在变换编码中,常用的变换方法包括傅里叶变换、离散余弦变换(DCT)、小波变换等

  • 信号分帧:将长时间的连续信号切分成若干个短时段的信号帧,通常每帧长度为2的幂次方
  • 变换:对每个信号帧应用某种变换方法,将信号从时域转换到频域或其他表示域。常用的变换方法有傅里叶变换、DCT、小波变换等
  • 量化:在变换领域中,对获得的转换系数进行量化,将其映射为离散的数值。通过量化可以减少表示数字的位数,从而实现数据压缩
  • 编码:对量化后的系数进行编码,将其转换为更紧凑的码字表示。常用的编码方法包括霍夫曼编码、熵编码等
  • 压缩:将编码后的数据进行存储或传输

在解码时,需要按照相反的步骤对压缩数据进行解码和恢复。即先进行解码,还原出量化系数,然后逆变换到原始的时域信号。变换编码的优势在于能够通过剔除冗余信息和利用信号的统计特性来实现高效的信号压缩。通过选择合适的变换方法和调整量化参数,可以实现在保持较高信号质量的前提下,显著减少数据的存储空间或传输带宽需求

下图是变换编码系统组成

在这里插入图片描述

B:实现变换编码的主要问题

问题一:子块尺寸选择

  • 通常划分子块需要满足
    • 相邻子块间相关程度减到某个可接受水平
    • 子块的长和宽通常为2的整数次幂
  • 好处是
    • 使正交变换后能量更加集中
    • 大大降低计算复杂度
    • 一般典型的划分子块尺寸是8×8或16×16

问题二:正交变换

  • K-L变换:很少使用。其严重依赖图像数据,每次都重新计算协方差矩阵,计算量大
  • DFT变换:块效应严重
  • DCT变换:被认为是准最佳变换。被国际压缩标准采纳。优点是
    • 基本没有块效应
    • 信息封装能力强,把最多的信息封装在最少的系数中

问题三:比特分配

  • 区域编码
    • 由于变换系数集中在低频区域,而低频区集中在变换域的左上角,可对该区域变换系数进行量化、编码、传输
    • 而右下角高频区既不编码又不传输,可达压缩目的。缺点为高频分量被丢弃,图像可视分辨率下降
  • 阈值编码:设定一门限值,只对变换系数幅值大于此阈值的编码,这样使低频成分不仅保留,而且某些高频成分也被选择编码。重建图像时,品质得到改善

二:JPEG

JPEG((Joint Photographic Experts Group)):是一种广泛应用于图像压缩的标准算法。它由国际电信联盟(ITU-T)和国际标准化组织(ISO)共同制定,旨在实现高效的图像压缩,以减小图像文件的大小并保持较好的视觉质量。JPEG压缩算法主要分为两个阶段

  • 离散余弦变换(DCT):JPEG将输入图像分成8x8的块,并对每个块应用离散余弦变换。这将图像从空域转换到频域,得到频域系数。DCT的作用是将图像中的能量集中在少数重要的低频系数上,而抑制高频细节
  • 量化:在DCT之后,JPEG使用量化表对频域系数进行量化。量化表中的元素决定了各个频域系数所保留的精度,即决定了压缩比。高频系数通常具有较低的量化值,因此会更加粗糙,而较低频的系数则可能获得较高的精度

通过DCT和量化过程,JPEG能够去除图像中的高频细节和冗余信息,实现图像压缩。压缩后的数据可以通过编码(如熵编码)进一步减小文件大小

下图是JPEG编码流程

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/73011.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于ArcGIS、ENVI、InVEST、FRAGSTATS等多技术融合提升环境、生态、水文、土地、土壤、农业、大气等领域的数据分析能力与项目科研水平教程

详情点击链接:基于ArcGIS、ENVI、InVEST、FRAGSTATS等多技术融合提升环境、生态、水文、土地、土壤、农业、大气等领域的数据分析能力与项目科研水平教程 一,空间数据获取与制图 1.1 软件安装与应用 1.2 空间数据 1.3海量空间数据下载 1.4 ArcGIS软件…

MATLAB中M文件编写

简介 所谓M文件就是将处理问题的各种命令融合到一个文件中,该文件以.m为扩展名。然后,由MATLAB系统编译M文件,得出相应的运行结果。M文件具有相当大的可开发性和扩展性。M文件有脚本文件和函数文件两种。脚本文件不需要输入参数,…

C++QT day3

1> 自行封装一个栈的类,包含私有成员属性:栈的数组、记录栈顶的变量 成员函数完成:构造函数、析构函数、拷贝构造函数、入栈、出栈、清空栈、判空、判满、获取栈顶元素、求栈的大小 2> 自行封装一个循环顺序队列的类,包含…

计算机视觉领域经典模型汇总(2023.09.08

一、RCNN系列 1、RCNN RCNN是用于目标检测的经典方法,其核心思想是将目标检测任务分解为两个主要步骤:候选区域生成和目标分类。 候选区域生成:RCNN的第一步是生成可能包含目标的候选区域,RCNN使用传统的计算机视觉技术&#x…

【0908练习】shell脚本使用expr截取网址

题目: 终端输入网址,如:www.hqyj.com, 要求:截取网址每个部分,并放入数组中,不能使用cut,使用expr解决 #!/bin/bash read -p "请输入一个网址" net lenexpr length $net …

Unity中Shader的屏幕抓取 GrabPass

文章目录 前言一、抓取1、抓取指令2、在使用抓取的屏幕前,需要像使用属性一样定义一下,_GrabTexture这个名字是Unity定义好的 前言 Unity中Shader的屏幕抓取 GrabPass 一、抓取 1、抓取指令 屏幕的抓取需要使用一个Pass GrabPass{} GrabPass{“NAME”} 2、在使用…

TGA格式文件转材质

今天淘宝上买了一个美女的模型,是blender的源文件,上面说有fbx格式的。我用unity,所以觉得应该可以用。文件内容如下图: FBX文件夹打开后,内容如下图所示,当时就预感到可能没有色彩。 unity打开后果然发现只…

CSS的break-inside 属性 的使用

break-inside 属性在 CSS 页码分隔模块中使用,它定义了一个元素内部是否允许发生页面、栏目或者区域的分隔。 break-inside有以下几个值 break-inside: avoid- 表示避免在该元素内部发生分页或者分栏。break-inside: auto - 默认允许分页break-inside: avoid-page - 避免页面…

Java虚拟机反射机制

1 什么是Java虚拟机反射机制? 虚拟机在运行期间,对于任何一个类,我们都能知道其内部信息,包括属性,方法,构造函数,实现接口;对于任何一个对象,我们都能获取其字段值、调…

Git 客户端基本使用及新手常见问题

Git作为一个版本管理工具,在企业中的应用越来越普遍。作为一个测试工程师,不可避免会需要接触到Git的相关操作,以下整理Git客户端的常见操作,以及应用中新手常碰到的一些问题。 1、环境安装及配置 Git下载地址:https…

手敲Cocos简易地图编辑器:人生地图是一本不断修改的书,每一次编辑都是为了克服新的阻挡

引言 本系列是《8年主程手把手打造Cocos独立游戏开发框架》,欢迎大家关注分享收藏订阅。 在上一篇文章,笔者给大家讲解了在Cocos独立游戏开发框架中,如何自定义实现Tile地图管理器,成功地在游戏中优化加载一张特大的地图。接下来…

springboot~静态资源配置

springboot~静态资源配置 springboot的静态资源默认路径给静态资源请求加前缀指定静态资源加载的包欢迎页 springboot的静态资源默认路径 请求效果见图 给静态资源请求加前缀 有时需要用拦截器对某些请求进行拦截后再处理相关的业务代码,此时我们就要对请求进行…

腾讯云PK阿里云2核2G云服务器租用价格表

2核2G云服务器可以选择阿里云服务器或腾讯云服务器,腾讯云轻量2核2G3M带宽服务器95元一年,阿里云轻量2核2G3M带宽优惠价108元一年,不只是轻量应用服务器,阿里云还可以选择ECS云服务器u1,腾讯云也可以选择CVM标准型S5云…

ICIF2023化工展首亮相,宏工科技解决方案助力制造升级

ICIF China 2023中国国际化工展览会于9月4日-6日在上海新国际博览中心举办。宏工科技携化工物料处理一站式解决方案首次亮相,同化工行业全产业链共叙物料处理自动化未来。 宏工科技是一家提供物料处理自动化设备、系统与服务的国家级高新技术企业,业务覆…

uniapp 微信小程序最新隐私弹窗更新方案,更新后无法登录问题解决方案

1&#xff0c;在manifest.json文件中的mp-weixin 节点下&#xff0c;添加&#xff1a;"__usePrivacyCheck__": true 2&#xff0c;在需要的页面配置隐私保护弹窗&#xff0c;或者直接写到首页也可以 <uni-popup ref"popusAuthorization" type"cen…

overleaf 参考文献引用,创建引用目录.bib文件,在文档中引用参考文献,生成参考文献列表

目录 1 创建一个Overleaf项目 2 导入或创建 .bib 文件 2.1 导入 .bib 文件&#xff1a; 参考文献的 .bib文件获取步骤 &#xff08;1&#xff09;打开谷歌学术 &#xff08;2&#xff09;输入文献题目 &#xff08;3&#xff09;点击引用&#xff0c;然后选择BibTex格式…

opencv基础: 视频,摄像头读取与保存的常用方法

当然还可以从视频中抓取截图&#xff0c;所以现在聊一下常用的抓取视频截图的的方法。 VideoCapture 方法 cv2.VideoCapture();cv2.VideoCapture( device);cv2.VideoCapture(filename);上面有三种构造方法&#xff0c; 第一种是无法构造方法。 第二种参数device是一个数字。 …

SpringBoot+jSerialComm实现Java串口通信 读取串口数据以及发送数据

记录一下使用SpringBootjSerialComm实现Java串口通信&#xff0c;使用Java语言开发串口&#xff0c;对串口进行读写操作,在win和linux系统都是可以的&#xff0c;有一点好处是不需要导入额外的文件。 案例demo源码&#xff1a;SpringBootjSerialComm实现Java串口通信 读取串口…

【已更新代码图表】2023数学建模国赛E题python代码--黄河水沙监测数据分析

E 题 黄河水沙监测数据分析 黄河是中华民族的母亲河。研究黄河水沙通量的变化规律对沿黄流域的环境治理、气候变 化和人民生活的影响&#xff0c;以及对优化黄河流域水资源分配、协调人地关系、调水调沙、防洪减灾 等方面都具有重要的理论指导意义。 附件 1 给出了位于小浪底水…

【算法题】小红书2023秋招提前批算法真题解析

文章目录 题目来源T1&#xff1a;5900: 【DP】小红书2023秋招提前批-连续子数组最大和5801: 【二分查找】小红书2023秋招提前批-精华帖子解法1——排序滑动窗口解法2——前缀和 二分查找 5000: 【模拟】小红书2023秋招提前批-小红的数组构造解法——数学 5300: 【哈希表】小红…