博客
关于我
JPEG压缩技术
阅读量:355 次
发布时间:2019-03-04

本文共 779 字,大约阅读时间需要 2 分钟。

JPEG压缩是一种基于离散余弦变换(DCT)的图像压缩技术,旨在在保持图像质量的同时最大程度地减少数据冗余。JPEG通过分离图像的亮度信息(Y)和色彩信息(Cr、Cb),将明暗和色彩分开处理,这种方法基于人眼的特性:人眼对亮度的敏感度高于色彩,而色彩信息对压缩更为敏感。

JPEG压缩的主要步骤

  • 颜色空间转换

    JPEG压缩首先将图像的颜色空间从RGB转换为YUV色彩空间(包括Y、C_b、C_r)。

    • Y:代表图像的明度(亮度)。
    • C_bC_r:分别代表色彩通道,用于捕捉颜色的细节。
      这种转换是因为人眼对亮度的敏感度高于对色彩的敏感度,而色彩信息对压缩更为敏感。
  • 零偏置转换

    在进行DCT之前,JPEG压缩会对像素值进行零偏置处理。

    • 对于8位(0-255)灰度像素,像素值减去128,将值域调整为-128到+127。
    • 这种转换减少了像素值的绝对值出现3位10进制的概率,从而减少数据冗余。
  • 离散余弦变换(DCT)

    将图像分成8x8的块,每个块进行DCT变换。

    • DCT将图像的频率信息重新组织,分离出直流(低频)和交流(高频)成分。
    • 直流成分包含了图像的主要信息,交流成分则包含细节信息。
  • 量化

    量化是JPEG压缩的重要步骤,主要用于降低DCT系数的精度。

    • 原理:将DCT系数除以对应的量化步长,四舍五入为整数。
    • 量化表:量化表与量化因子一一对应,量化因子越大,量化表中的步长越小。
    • 亮度与色彩:亮度(Y)和色彩(Cr、Cb)通道使用不同的量化表。
  • 编码

    • Z形扫描:将8x8的DCT系数转换为1x64的矢量,优化高频成分的排列,减少连续零系数的数量。
    • 编码方式:通常采用哈夫曼编码,对高频成分进行压缩。
  • 通过以上步骤,JPEG压缩有效降低了图像数据的冗余,同时最大限度地保留图像质量。这种压缩方法在保持图像可视性的同时,大幅减少了存储和传输所需的数据量。

    转载地址:http://hsbg.baihongyu.com/

    你可能感兴趣的文章
    程序员面试防坑宝典,带你手撸红黑树,一文轻松搞定
    查看>>
    为什么使用消息队列
    查看>>
    二分查找算法
    查看>>
    关于EFI系统分区(ESP)你应该知道的3件事
    查看>>
    题目总结 web 51-100
    查看>>
    5.Mybatis复杂映射开发
    查看>>
    Servlet2.5的增删改查功能分析与实现------删除功能(四)
    查看>>
    环境配置 jdk_mysql_myeclipse8.6
    查看>>
    Session验证码的实现(2018-7-3)
    查看>>
    spring启动错误:Could not resolve placeholder
    查看>>
    kafka和rabbitmq对比
    查看>>
    日志写入xml上传ftp遇到的问题
    查看>>
    Eclipse中serverRuntime Environment中没有Tomcat选项
    查看>>
    下载任意版本vmware对应的vmware tools
    查看>>
    将 github 中他人的 仓库 导入 码云中,从而 加快下载速度的 方式
    查看>>
    Java 类加载的过程 加载、验证、准备、解析、初始化
    查看>>
    JavaWeb---实现JavaBean来接收参数、请求转发、域对象
    查看>>
    瀚高数据库中 java代码类型与bit对应(APP)
    查看>>
    选择性估算器绕过行安全策略漏洞
    查看>>
    admin 修改数据报错
    查看>>