news 2026/4/3 6:23:36

数字图像处理篇---JPEG

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
数字图像处理篇---JPEG

核心比喻:画一幅印象派油画

假设你要临摹一张细节丰富的照片,但时间有限、画布也很贵。JPEG的做法就像一位印象派画家

  1. 先画轮廓和大色块(这是最重要的信息)。

  2. 对于远处树叶的细碎纹理、墙上的微小斑点,就用笔触稍微“糊弄”一下,眯起眼来看整体效果差不多就行。

  3. 观众站在正常距离看,会觉得画得很像;但若凑得非常近用放大镜看,就会发现很多细节是模糊的色块。

JPEG就是一种“印象派”的图像压缩技术:在保证人眼远看效果的前提下,聪明地省掉费时费力的超精细细节。


具体是怎么“糊弄”的?8步拆解

想象我们把照片交给JPEG“压缩工厂”,它会严格按照流水线处理:

第一步:分块(准备工作)

  • 把整张图片切成很多个8像素 × 8像素的小方块,就像马赛克一样。后续所有操作都以一个“块”为单位进行。

第二步:颜色转换(利用人眼弱点)

  • 把每个块的颜色信息,从RGB模式(红、绿、蓝)转换成YCbCr模式

    • Y亮度(Luminance),记录明暗。人眼对此极度敏感

    • Cb, Cr色度(Chrominance),记录颜色偏移。人眼对此比较迟钝

  • 关键技巧:JPEG通常会把色度信息扔掉一半(比如4个像素共用一组颜色值)。这是第一次有损压缩,但因为你眼睛不敏感,所以几乎察觉不到。

第三步:离散余弦变换(DCT,核心魔法)

  • 对每个8x8的块,进行一种名为DCT的数学变换。

  • 变换前:块里是64个不同的像素亮度值。

  • 变换后:变成64个频率系数,排列成8x8的矩阵。

    • 左上角的值是低频系数,代表这个块的整体轮廓和主要色块(非常重要!)。

    • 右下角的值是高频系数,代表这个块的细微纹理和边缘细节(比如头发丝、树叶脉络)。

第四步:量化(有损压缩的关键一步)

  • 这是“糊弄”的核心!JPEG拿出一张量化表,表上的数字越大,表示压缩得越狠。

  • 操作:用DCT系数除以量化表上对应的数字,然后四舍五入取整数

  • 结果

    • 重要的低频系数除以较小的数,得以较好保留。

    • 不重要的高频系数除以很大的数,结果直接变成0或接近0

  • 量化表越“激进”,产生的0就越多,图片文件就越小,但细节损失也越严重。这是图像质量下降的主要原因

第五步:Z字形扫描与打包

  • 经过量化后,矩阵右下角会出现一大串连续的0。JPEG聪明地按“之”字形顺序(从左上低频到右下高频)把64个数字排成一串。这样,末尾的一长串0就很容易处理了。

第六步:熵编码(最后的无损压缩)

  • 对这一长串数字(尤其是那串0)进行哈夫曼编码(一种用短代码表示常见数字的技巧),完成最后的“打包”,生成最终的.jpg文件。


解压(看图片)时,过程相反:

  1. 解码哈夫曼编码。

  2. 把数据填回8x8矩阵。

  3. 乘以量化表(注意:被量化为0的高频信息永远丢失了!这就是为什么JPEG压缩不可逆)。

  4. 进行逆DCT变换,变回像素值。

  5. 颜色空间转换回RGB。

  6. 把所有块拼回完整的图片。


JPEG的特点(优缺点)

优点:

  • 压缩率极高:能把图片文件缩小到原来的1/10甚至1/20,而人眼在正常观看距离下几乎看不出差别

  • 通用性极强.jpg是世界上最通用的图片格式。

缺点(副作用):

  1. 块状伪影:如果压缩得太狠(量化表太激进),在颜色或亮度剧烈变化的边界(比如天空和建筑的边缘),原本平滑的过渡会变成可见的、一格一格的“马赛克”(块效应)。

  2. 模糊与振铃:细节丰富的区域(如草地、毛发)会变得模糊,并且在锐利边缘旁边可能出现虚假的波纹或光环

  3. 不适合反复编辑保存:每保存一次JPEG,就相当于重新“糊弄”一次,细节损失会累积,图像质量会像复印件的复印件一样越来越差。

一句话总结

JPEG就像一个聪明的“视觉魔术师”。它利用人眼对亮度敏感、对色度和高频细节不敏感的特性,通过“分块->转频率域->大胆舍弃高频细节”的三步法,用极小的文件大小,换取了人眼观感上几乎无损的图像效果。它是为“观看”而生的,不是为“反复编辑”而生的。

框图要点解读:

  1. 从核心理念出发:JPEG的一切设计都围绕“利用人眼感知特性进行有损压缩”这一核心。它不是为完美还原,而是为高效观看。

  2. 三步预处理

    • 分块:将大问题分解为可并行处理的小单元(8x8块)。

    • 色彩转换:转换为YCbCr色彩空间,这是利用人眼生理特性的第一步。下采样色度是首次有损操作,但效果显著且感知损失小。

  3. 核心压缩流程(对每个块)

    • DCT变换:将信息从像素域转换到频率域。这是技术的关键,实现了“能量集中”—— 将图像的主要信息(能量)集中在少数低频系数上。

    • 量化:这是“有损”和“智能取舍”的灵魂。通过精心设计的量化表,系统性地丢弃对人眼不重要的高频细节量化表的激进程度直接决定了最终的图像质量和文件大小

  4. 高效打包

    • Z字形扫描:一种巧妙的排序方法,目的是将量化后产生的大量0(通常集中在高频区)排列在一起,为后续压缩创造最佳条件。

    • 熵编码:最后一步使用成熟的无损编码技术(哈夫曼编码)对非零值和零游程进行极致压缩,生成紧凑的二进制码流。

  5. 解压的不可逆性:必须强调,解压是压缩的逆向过程,但量化中被舍入(特别是归零)的高频信息已永久丢失。这是“有损”的本质,也是产生视觉瑕疵的根源。

  6. 特征与副作用

    • JPEG是为连续色调的自然图像(如照片)优化的。它对大块平缓颜色和渐变区域压缩效果极好。

    • 副作用(块效应、模糊、振铃)在过度压缩或压缩包含锐利边缘和文字的图像时会变得非常明显。

总之,JPEG是一个精巧的、针对人眼视觉系统弱点进行“精准打击”的工程杰作。它在文件大小和视觉保真度之间取得了划时代的平衡,从而成为数十年来最主流的图像格式。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/30 0:32:32

【课程设计/毕业设计】基于springboot+小程序的家校通程序设计与实现消息推送、班级管理、作业管理、考勤管理、成绩管理【附源码、数据库、万字文档】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/4/1 22:14:20

(100分)- 单向链表中间节点(Java JS Python)

(100分)- 单向链表中间节点(Java & JS & Python)题目描述求单向链表中间的节点值,如果奇数个节点取中间,偶数个取偏右边的那个值。输入描述第一行 链表头节点地址 后续输入的节点数n后续输入每行表示一个节点,…

作者头像 李华
网站建设 2026/3/24 21:05:57

《分布式追踪Span-业务标识融合:端到端业务可观测手册》

分布式追踪体系的核心价值本应是打通全链路的可观测性,但传统Span数据仅聚焦于技术调用的时序与拓扑维度,缺失业务维度的锚点,导致追踪结果始终停留在技术层面的链路排查,无法与真实业务场景形成联动,这成为了可观测体…

作者头像 李华
网站建设 2026/4/3 4:15:57

Python快速入门——学习笔记(持续更新中~)

Python 软件安装 & 环境配置 基础阶段创建文件打印输出变量赋值数学计算结语 软件安装 & 环境配置 首先要想在电脑上运行python文件 就需要两个东西 一个是解释器 一个是编辑器 二者缺一不可 解释器直接用官方的就行 编辑器我推荐pycharm 当然也可以用vscode等等 安…

作者头像 李华
网站建设 2026/3/20 3:32:26

基于springboot的群众网上高效办事系统的设计与实现

文章目录 详细视频演示项目介绍技术介绍功能介绍核心代码系统效果图源码获取 详细视频演示 文章底部名片,获取项目的完整演示视频,免费解答技术疑问 项目介绍 基于 Spring Boot 的群众网上高效办事系统,是一款聚焦政务服务数字化转型的综合…

作者头像 李华
网站建设 2026/3/1 23:38:10

同城跑腿APP源码部署攻略:从后端接口到前端UI的完整开发路径

博主介绍: 所有项目都配有从入门到精通的安装教程,可二开,提供核心代码讲解,项目指导。 项目配有对应开发文档、解析等 项目都录了发布和功能操作演示视频;项目的界面和功能都可以定制,包安装运行&#xff…

作者头像 李华