用Discrete Cosine Transform实现jpeg压缩

实际上先把图片分成好多个8*8子图片,再把8*8图像变成一组离散cos曲线基的叠加,因为这组离散cos曲线基是固定的,那么只需要确定这组离散cos曲线基的系数/权重就可以用系数/权重代表这个8*8图像了。

先讨论1*8线性图像

这时候这组离散cos曲线基如下图,调整每个分量的系数/权重可以组成任意1*8线性图像

yiw

已知1*8图像,则分量的系数可以通过下面公式求出

DCT definition of a 1-D sequence of length 8, 其中N=8

再讨论8*8二维图像

此时这组离散cos曲线基如下图,调整每个分量的系数/权重可以组成任意8*8的二维图像

已知8*8图像,则分量的系数可以通过下面公式求出

jpeg压缩完整过程如下:

  1. The representation of the colors in the image is converted to Y′ CB CR, consisting of one luma component (Y'), representing brightness, and two chroma components, (CB and CR), representing color. This step is sometimes skipped.
  2. The resolution of the chroma data is reduced, usually by a factor of 2 or 3. This reflects the fact that the eye is less sensitive to fine color details than to fine brightness details.
  3. The image is split into blocks of 8×8 pixels, and for each block, each of the Y, CB, and CR data undergoes the discrete cosine transform (DCT).
  4. 因为人的视觉对低频的变化比对高频的变化要敏感. Therefore, the magnitudes of the high-frequency components are stored with a lower accuracy than the low-frequency components. The quality setting of the encoder (for example 50 or 95 on a scale of 0–100 in the Independent JPEG Group's library[52]) affects to what extent the resolution of each frequency component is reduced. If an excessively low quality setting is used, the high-frequency components are discarded altogether.
  5. The resulting data for all 8×8 blocks is further compressed with a lossless algorithm, a variant of Huffman encoding.

用Discrete Cosine Transform实现jpeg压缩相关推荐

  1. 离散余弦变换 - Discrete Cosine Transform

    离散余弦变换(DCT)最近可能要用,不过之前上课学的内容有点忘记了,这里复习一下.       离散余弦变换的定义 与傅里叶变换的思想相似,离散余弦变换(Discrete CosineTransfor ...

  2. 离散余弦变换(Discrete Cosine Transform)

    DCT变换和FFT变换都属于变换压缩方法(TransformCompression),变换压缩的一个特点是将从前密度均匀的信息分布变换为密度不同的信息分布.在图像中,低频部分的信息量要大于高频部分的信 ...

  3. java jpeg压缩解码_JPEG图像压缩原理简介

    JPEG(发音:[ˈdʒeɪpɛg])是一种针对照片视频而广泛使用的有损压缩标准方法. 这个名称代表 Joint Photographic Experts Group(联合图像专家小组).联合图像专家 ...

  4. 【转】JPEG压缩原理

     第一章 图像压缩编码的综述 1.1 图象压缩的目的和方法 图象的数字化表示使得图象信号可以高质量地传输,并便于图像的检索.分析.处理和存储.但是数字图像的表示需要大量的数据,必须进行数据的压缩. ...

  5. JPEG压缩基本原理

    JPEG算法的第一步是将图像分割成8X8的小块. 在计算机中,彩色图像最常见的表示方法是RGB格式,通过R(Red).G(Green)A和(Blue)组合出各种颜色. 除此以外,还有一种表示彩色图像的 ...

  6. JPEG压缩的Python实现过程 -- 1图像压缩概念

    现如今互联网上绝大部分图片都使用了JPEG压缩技术,也就是大家使用的jpg文件,通常JPEG文件相对于原始图像,能够得到1/8的压缩比,如此高的压缩率是如何做到的呢?图像压缩是指什么呢?JPEG图像时 ...

  7. java dct变换_Discrete Cosine Transform [DCT] (离散余弦变换)

    Discrete Cosine Transform [DCT] (离散余弦变换) 描述:Binarizer是一个Transformer. 离散余弦变换是与傅里叶变换相关的一种变换,它类似于离散傅立叶变 ...

  8. 【图像处理】图像离散小波变换(Discrete Wavelet Transform)及python代码实现

    Motivation 看到有论文用到了图像的Haar Discrete Wavelet Transform(HDWT),前面也听老师提到过用小波变换做去噪.超分的文章,于是借着这个机会好好学习一下. ...

  9. JPEG压缩原理(DCT)

    本文介绍JPEG压缩技术的原理,对于DCT变换.Zig-Zag扫描和Huffman编码,给出一个较为清晰的框架. 1. JPEG压缩的编解码互逆过程: 编码 解码 2. 具体过程:(这里仅以编码为例, ...

  10. JPEG压缩原理与DCT离散余弦变换 量化

    原文网址:http://blog.csdn.net/newchenxf/article/details/51719597 1 前言 JPEG是joint Photographic Experts Gr ...

最新文章

  1. Stream流与Lambda表达式(一) 杂谈
  2. 单细胞转录组单飞第二期开课啦!!
  3. Python中的lambda是什么?
  4. python 从excel中抓取数据_使用Python抓取美团数据存于Excel中
  5. 锗钛项圈真的可以治颈椎病吗
  6. Android UI 优化——使用HierarchyViewer工具
  7. dbForge Studio for SQL Server入门教程:如何创建和编辑查询
  8. html中img显示旋转,css如何实现图片的旋转展示效果(代码示例)
  9. visio用例图箭头怎么画_visio2010绘制用例图-带图例
  10. Scratch编程与游戏:和电脑玩大富翁游戏
  11. 计算机端最好用的词典——GoldenDict
  12. 维宏控制卡win7 驱动_ncstudio(维宏控制系统)64位下载v5.4.86[百度网盘资源] - 软件学堂...
  13. Nmap局域网主机存活发现
  14. 斐讯N1强制刷机-免拆版
  15. Base64和Base64URL加解密
  16. iOS游戏《胖鸟大冒险》上架app store+感想
  17. 高等数学(预备知识之对数函数)
  18. Aapache 启动不了,报错信息:suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
  19. 2014年去哪儿网校园招聘笔试题
  20. 遗传算法(python实现,虚拟机中运行)

热门文章

  1. bean的生命周期——Spring对bean的管理(三)
  2. 使用nrm管理npm源的切换
  3. python制作课程表_创建课程表设计
  4. 超能搜索系统输入关键字_电商后台设计——搜索
  5. if函数判断单元格颜色_IF条件函数10大用法完整版,全会是高手,配合SUMIF,VLOOKUP更逆天...
  6. laravel mysql 悲观锁_Laravel中悲观锁 乐观锁的使用
  7. springboot项目引入图片_SpringBoot集成阿里云OSS图片上传
  8. javaweb项目图
  9. 《Android进阶之光》--Dagger2
  10. EM 算法求解高斯混合模型python实现