图像压缩编码(2)有损压缩--变换编码

news2024/9/21 0:32:28

#灵感# 接上文,继续讲解第二种有损压缩,但是内容太多了,浅尝就行。

有损压缩编码以丢失一部分信息为代价,换来较高的压缩比。有损压缩主要分为几类:预测编码、变换编码、子带编码、模型编码。

变换编码

变换编码与预测编码一样,都是通过去除图像的相关性达到压缩的目的。其不同之处在于,预测编码是在空间域、时间域内进行的,而变换编码则是在变换域内进行的。变换编码包括离散 K-L 变换、离散傅里叶变换 (DFT)、沃尔什一哈达码变换、离散余弦变换Discrete Cosine Transform,DCT) 以及离散小波变换 (Discrete Wavelet Transform,DWT)等多种,而在图像压缩编码中用得最多的还是 DCT,其次是小波变换。

(1)DCT变换

离散余弦变换DCT是一种实数域的正交变换,由于其变换矩阵的基向量与 Toeplitz矩阵的特征向量非常接近,而Toeplitz 矩阵又体现了人类语言及图像信号的相关特性,因此,DCT 常常被认为是对语言与图像信号进行变换的准最佳变换,其变换特性接近K-L变换。

定义啥的不想抄了,就抄一个例子示意一下。

一维DCT变换

例:设信号序列 X(i)=1 (i=0,1,...7 ), 试对此序列进行DCT 变换。

由题可知N=8时,DCT的变换矩阵为

因此,全“1”序列的DCT变换为 

从例子中可以看的,完全相关的信号序列经过DCT 变换后,得到了完全不相关的信号序列,并且除了直流系数Y(0)=Y(0)=2\sqrt{2}外,其余系数都为0。 由于这些系数0 不需要都传送,只需要传送一个为 0的结束码即可,因此有效的压缩了码率。 

二维DCT 变换

对于一个分辨率为MxN 的图像块,如果用f(x,y)(x=0,1,2,...N-1, y=0,1,2....M-1)表示图像块中的各像素的样值,则图像块用矩阵表示为:

请直接看图片吧:

扩展:DCT变换本身是无损的且具有对称性。对原始图像进行离散余弦变换,变换后DCT系数能量主要集中在左上角,其余大部分系数接近于零。【将变换后的DCT系数进行门限操作】,将小于一定值的系数归零,这就是图像压缩中的量化过程,然后进行逆DCT运算,可以得到压缩后的图像。

(2)小波变换

小波变换继承和发展了短时傅里叶 (Fourier) 变换局部化的思想,同时又克服了窗口大小不随频率变化等缺点,能够提供一个随频率改变的“时间-频率”窗口,具有良好的时频局部化特性,因而能有效地从信号中提取信息,被誉为“数学显微镜”。

后续再补充算法吧,多我来说太长太复杂了。包含有 “连续小波变换”、“尺度及位移均离散化的小波变换”、“多分辨率分析与小波变换的关系”、“离散序列的小波变换”、“二维离散小波变换”、。。。。

总结图像经过小波变换后有如下特点。
(1)小波变换对信号进行多分辨率分解时频带以对数的形式等分,这与人眼视觉的多通道模型具有一致性。
(2)通过小波变换可以得到体现原图像水平信息、垂直信息以及对角边缘信息的子图像,反映出明显的方向选择性,这些都与人眼的视觉特性相吻合。
(3)小波变换后的低通模糊子图像的统计直方图与原图像统计直方图相似,其各带通高频子图像的统计直方图近似服从以零为中心的Laplacian分布。
(4)低通模糊子图像具有很强的相关性,水平子图像在水平方向相关系数大而在垂直方向上小,垂直子图像在水平方向相关系数小而在垂直方向上大,对角方向子图像在水平和垂直方向的相关系数都小。
(5)以正交小波基进行小波变换,不同分解层次的相关性被消除,同一层次分量间也不相关。理论上不同尺度空间的子图像和同一尺度空间不同方向的子图像均相互正交,因而彼此不相关,但不同层同一方向的小波系数具有相似性。
(6) 除了低通模糊子图像外,其他子带方差明显减少;对同一方向子带,按从高层到低层(从低频到高频)子带,方差大致是按从大到小的规律变化。

以上这些特点对于图像压缩编码很有指导意义。图像小波变换编码与解码的框图如图3-45所示,编码时,通过选取一个固定的小波基对图像作小波分解,在小波域内进行量化、扫描与熵编码;解码过程正好与编码过程相反。其中,量化是小波编码的核心,通过合理的量化可以更好地进行小波图像系数的组织,进一步提高压缩性能。

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

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

相关文章

Java、python、php版 舞蹈工作室管理系统 舞蹈课程预约平台(源码、调试、LW、开题、PPT)

💕💕作者:计算机源码社 💕💕个人简介:本人 八年开发经验,擅长Java、Python、PHP、.NET、Node.js、Android、微信小程序、爬虫、大数据、机器学习等,大家有这一块的问题可以一起交流&…

Redis网络通信模型

1.1. Java IO读写原理 不管是Socket的读写仍是文件的读写,在Java层面的应用开发或者是linux系统底层开发,都属于输入input和输出output的处理,简称为IO读写。在原理上和处理流程上,都是一致的。区别在于参数的不一样。用户程序进…

Kaggle竞赛——手写数字识别(Digit Recognizer)

目录 1. 数据集介绍2. 数据分析3. 数据处理与封装3.1 数据集划分3.2 将数据转为tensor张量3.3 数据封装 4. 模型训练4.1 定义功能函数4.1 resnet18模型4.3 CNN模型4.4 FCNN模型 5. 结果分析5.1 混淆矩阵5.2 查看错误分类的样本 6. 加载最佳模型7. 参考文献 本次手写数字识别使用…

【书生2.5】XTuner 微调个人小助手认知

XTuner 微调个人小助手认知 【Intern Studio的gpu不足。本实验使用自有服务器】 1 环境安装 # 创建虚拟环境 conda create -n xtuner python3.10 -y# 激活虚拟环境(注意:后续的所有操作都需要在这个虚拟环境中进行) conda activate xtuner…

同样128个内核,AMD霄龙9755性能翻倍:Zen 5架构下的性能飞跃

近日,AMD在服务器处理器领域再次展示了其强大的技术实力,随着AMD EPYC“Turin”处理器发布日期的临近,其基准测试结果也开始浮出水面。硬件爱好者博主9550pro近期分享了AMD 128核EPYC 9755“Turin”处理器在7zip压缩/解压缩基准测试中的跑分数…

深圳MES系统在电子制造业中的应用体现

深圳是中国电子制造业的重要基地,许多电子制造企业在深圳地区都在应用MES系统来优化生产管理、提高生产效率和产品质量。深圳MES系统在电子制造业中的应用主要体现在以下几个方面: 生产计划管理:电子制造企业通常面临订单量大、产品种类多的情…

【知识图谱】4、LLM大模型结合neo4j图数据库实现AI问答的功能

昨天写了一篇文章,使用fastapi直接操作neo4j图数据库插入数据的例子, 本文实现LLM大模型结合neo4j图数据库实现AI问答功能。 废话不多说,先上代码 import gradio as gr from fastapi import FastAPI, HTTPException, Request from pydantic…

分享使用智狐联创AI助手生成的一个食品选择器网页

先看效果: 使用的是智狐超强模型,只有一个html网页,点击开始会有动画的选择动画。效果很不错,你可以更改成任意类似场景使用,如:抽奖等等。感兴趣的可以去搜索官网试试,也有免费模型。https://w…

【云故事探索】NO.8:揭秘餐饮行业龙头 SaaS 厂商神州商龙的全栈可观测实践

云布道师 天津市神州商龙科技股份有限公司成立于1998年,是一家专为餐饮行业提供数字化整体解决方案及咨询业务的高新技术企业。秉承着“产品是第一生产力”的发展理念,神州商龙凭借过硬的产品与服务质量,为呷哺呷哺、大董、新荣记、刘一手、巴…

需方软件供应链安全保障要求及开源场景对照自评表(下)

国标《信息安全技术 软件供应链安全要求》确立了软件供应链安全目标,规定了软件供应链安全风险管理要求和供需双方的组织管理和供应活动管理安全要求。 开源软件供应链作为软件供应链的一种特殊形式,该国标亦适用于指导开源软件供应链中的供需双方开展组…

完美解决LBP2900打印机安装驱动提示无法识别USB及连接错误等问题(附Win11全新安装支持及卸载方案)

目录 前言驱动获取方法简易全新安装方法安装完成后的验证方法常见驱动卸载方法 前言 LBP2900打印机虽然属于经典老旧款,但依旧好用不过时。老早之前也分享过心相关的解决方案,请戳:👉旧版解决方案。但因年代久远还diss部分系统不通…

ssm“最多跑一次”微信小程序论文源码调试讲解

2系统相关技术 2.1 Java语言简介 Java是由SUN公司推出,该公司于2010年被oracle公司收购。Java本是印度尼西亚的一个叫做爪洼岛的英文名称,也因此得来java是一杯正冒着热气咖啡的标识。Java语言在移动互联网的大背景下具备了显著的优势和广阔的前景&…

HarmonyOS开发实战( Beta5版)应用TSJS高性能编程工具最佳实践

概述 本文参考业界标准,并结合应用TS&JS部分的性能优化实践经验,从应用编程指南、高性能编程实践、性能优化调试工具等维度,为应用开发者提供参考指导,助力开发者开发出高性能的应用。 本文主要提供TS&JS高性能编程实践…

什么是短视频矩阵?一个人能做好短视频矩阵营销吗?

很多人认为做短视频矩阵就是多账号、多发视频就可以了,但其实做短视频矩阵,并不仅仅是更多账号更多视频那么简单,它的核心在于搭建一个全方位的内容传播方式。这种方式包括三个方面:账号矩阵、平台矩阵和内容矩阵。 首先是账号矩阵…

TikTok运营:IP地址如何影响TikTok的内容运营?

TikTok作为外贸人宣传推广的重要平台,其运营成效与产品的实际转化率息息相关。然而,在TikTok的运营过程中,一个看似微不足道的元素—IP地址,却扮演着至关重要的角色。本文将深入探讨TikTok运营中IP地址的重要性,揭示其…

炫700头猪!所有长久的关系,都是讲条件的——早读(逆天打工人爬取热门微信文章解读)

A股呀A股你好狠呀 引言Python 代码第一篇 洞见 所有长久的关系,都是讲条件的第二篇 华为小黑子?结尾 (这哥们是来炫他家的700头猪的吧,等我有钱了,包圆咯) 引言 周末工作一天 休息一天 周六上班 那天晚上…

8Manage PM:掌握高效项目进度跟踪的关键策略

在负责管理众多项目的同时,管理人员最不希望遭遇因项目进度滞后而产生额外负担。 项目可能会因资源分配不当、范围蔓延以及其他意外中断等因素而遭受延误,有时这种延误甚至可能是长期的。 因此,掌握项目进度跟踪的方法相当重要。在整个项目…

Unity(2022.3.41LTS) - UI详细介绍-InputField(输入字段)

目录 零.简介 一、基本功能与用途 二、组件介绍 三、使用方法 四、优化和注意事项 零.简介 在 Unity 中,输入字段(Input Field)是一个非常实用的用户界面组件,以下是更详细的介绍,包括组件方面的深入分析&#x…

深入理解MySQL慢查询优化(2) -- SQL的执行流程

要优化一条SQL语句,要先理解SQL操作的执行流程 1. 不同SQL操作的执行流程 1.1 order by order by用于排序,如果用于排序的列上没有索引,就需要把整张表加载进内存进行排序,非常耗时。如果有索引,因为B树存储的数据本…

计算机毕业设计选题推荐-高校一卡通系统-Java/Python项目实战

✨作者主页:IT毕设梦工厂✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…