JPEG压缩是一种针对静止的连续色调的图像压缩方法.

JPEG压缩编码-解压缩算法框图

DCT基压缩编码步骤

DCT基解压缩编码步骤

离散余弦变换,比较重要的低频信号在左上角区域,因此可以把右下角区域数据去掉,用量化表。

量化表的量化信号的量化是不一样的,信号量化是指把信号的幅值压缩一下这里的量化表量化是对某个像素作除法对应除,数据分布不均匀,左上角数据量化步长很,靠右下角的数据量化步长很

JPEG压缩标准要点

(1)压缩比可控:编码器的参数中应包括控制压缩比图像质量的成分。
(2)不受限制:适用于所有的连续色调图像,不应对图像的尺寸、彩色空间和像素纵横比等特性进行限制,也不应对图像的场景内容(如复杂性、彩色范围或统计特性)有任何限制

(3)适中的计算复杂性:压缩算法既可用软件实现,也可用硬件实现,并且具有较好的性能。
(4)有述具有下述4种操作模式:
      ①顺序编码  ②累进编码  ③无失真编码  ④层次编码

JPEG压缩编码方框图

1.分块采样(帧改组)
(1)JPEG压缩编码对象:为连续色调静止图像各分量信号进行单独采样。
(2)4:2:0格式中各分量信号的采样点数:
PAL制:
     亮度信号(Y)有效采样点数为720×576,
     色差信号(U,V有采点均)有效采样点数均为360×288。
NTSC制:
     亮度信号(Y)有采点点数为720×480,
     色差信号(I,Q)有效采样点数均为360×240。
(3)帧改组:采样时,当一帧图像信号输入到编码器时,编码器对其进行的分解处理,称为帧改组。
(4)帧改组方法:(亮度信号)

①分片:将图像分割成许多横向条(或称“片”),每条的宽度为16个采样点。
 ②分段:以16个采样点为一段, 得到16×16个采样点构成的块,称为宏区块
分像块:宏区块再分成4个8×8样点组成的像块
  注:a.DCT变换就是以像块为单位的
  b. 在::4:2:0式,格式中,U和V的采样点数均为Y(行和列)的一半,所以U,V的像块与Y的宏区块重叠(亮度信号有宏区块,色差信号无宏区块)。
    ④ 宏块的形成:由4个8×8的亮度(Y)像块组成的宏区块和与之重叠的两个8×8的色差(U,V )像块,这6个像块组成一个宏块。见下图。

2.FDCT变换(Front Discrete Cosine Transform
        经过帧重组和采样,各分量信号变为个一个8×8的样值矩阵。再经过FDCT变换,将每个像块的8×8=64样个样值f(x,y),变为换为8×8=64个FDCT数系数F(u,v)。一个是流直流DC系数,其他的63个是交流AC系数。

3.量化
        可以根据应用环境和需求设计出不同的量化表,亮度信号和色差信号的量化表也不同,量化后输出的是二维的DCT系数矩阵F’(u,v)。

4.差值编码与Zig-Zag扫描                    
      (1)DC系数的处理方法:直流分量(DC系数),并不参与Z形描,而是与前一像块的DC系数进行差值预测编码
      (2)AC系数的处理方法:63个AC系数,采用Z字形扫描输出。
      (3)Z扫描后的数组排列:DC系数的预测误差排在扫描输出数组序列首位

差值编码与Z扫形扫描

在上图中,第n块数据序列中的“”X”是本块的DC系数与前一块DC系数的差值,在这里没有标出。而第n+1块数据序列的第一数个数据是: DCn+1-DCn=10-8=2。

5.熵编码                            
        (1)游程编码:差值编码和Zig-Zag扫描后,生成的一维数组序列还需进行游程
码以减少数组序列中零的个数,1个字节的高4位来表示连续“”0”的个数,而使用它的低4位来表示编码下一个非“”0”系数所需要的位数,跟在它后面的是非0量化AC系数的数值。

JPEGDPCM码后的直流DC系数RLE编码的交流AC系数使用熵编码作进一步的压缩

在JPEG有损压缩算法中,使用Huffman编码器来减少。使用Huffman编码器的理由是可以使用很简单的查表(lookup table)方法进行编码

压缩数据符号时,Huffman编码器对出现频度比较高的符号分配比较短的代码,而对出现频度较低的符号分配比较长的代码。这种变度可变长度的Huffman码表可以事先进行定义

1.DC编码
JPEG指出连续块的DC 之间有很紧密联系, 因此他们决定对  8x8 的块的DC 值的差别
编码 (Y, Cb, Cr 分别有自己的 DC)。
Diff = DC(i )  - DC(i-1)
DC(i)  = DC(i-1)  + Diff

DC码表符号举例


若DC的值(Value)为4,符号SSSS用于表达实际值所需要的位数,实际位数就等于3

JPEG提供的亮度DC系数差的Huffman编码表

亮度差值为5(101的数)的位数为3,则Huffman是0100两连在起,两者连接在一起即
为100101。  
Y矩阵中一个8*8块的DC差值=10,二进制值为1010,码长为4,查亮度DC差值的Huffman编码表得霍夫曼识别为长为3,识别码为101,则其霍夫曼编码为1011010,

JPEG标准提供的色差DC系数差的Huffman
编码表

2.AC编码
  AC编码方式与DC略有不同,在AC编码之前,首先得将63个ACZig-zag序将排序,将AC系
转换成中间符号
    中间符号表示为RRRR/SSSS,其中RRRR是指第非零的AC之前,其值为0的AC个数SSSS指AC值所需的位数,AC系数的范围与SSSS的对应关系与DC差值Bits数与差值内容对照表相似。

数值按实际值所需要的位数分成16组

31,45,0,0,0,0,23,0,-30,-8,0,0,1,0,0,0, 0 ,0 ,0 , 0,..,0
RLC 压缩:(0,31) ; (0,45) ; (4,23) ; (1,-30); (0,-8) ; (2,1) ; EOB

(0,5), 11111 ; (0,6), 101101 ; (4,5), 10111;(1,5), 00001; (0,4) , 0111 ;(2,1), 1 ; (0,0)

查找色度AC系数的huffman表,则:
0/5  huffman 编码为  11001
0/6  huffman 编码为 111000
4/5     ---         1111111110011001
1/5     ---         11111110110
0/4      ---         1011
2/1      ---         11011
0/0 EOB  ---          00
  那么最后对于前面的例子表示的63个系数按位流写入 JPEG文件中就是这样的:

JPEG色差AC系数的Huffman编码部分表

JPEG亮度AC系数的Huffman编码部分表

JPEG压缩编码方框图

总结:首先要对图像420采样区分亮度信号还是色度信号,采集的数据空间先分成条,取一片16*16的大小,对应4个8*8的亮度信号,2个8*8的色度U\V信号,一共6个块,对每个块进行离散余弦变换,变换后最左上角的原点就是直流DC系数,其他63个是交流AC系数,AC系数除以相应的量化表(色度和亮度量化表),对不同的块,第n+1块和n块作DC系数偏差编码,Z形扫描后游程编码,再进行霍夫曼熵编码,最后进行压缩数据的传输。

JPEG图像的压缩编码——笔记整理相关推荐

  1. C#图像处理程序实现--Canny实现 笔记整理(其中的非极大值抑制点)

    在Canny算法中,对于其中的非极大值抑制这一点做笔记整理,过程看之前的这一片,注意理解里面的关于梯度相关的概念 原理如下:(需要理解) 依据当前点的周围点的梯度模来推算中心点的模,然后与实际值比较, ...

  2. 计算机基础:图形、图像相关知识笔记

    1.图形.图像的基础知识 图形:由称为矢量的数学对象所定义的直线和曲线等组成. 图像:也称为栅格图像,由点阵图或位图图像.用像素来代表图像.每一个像素都被分配一个特点的位置和颜色值. 图形和图像之间在 ...

  3. 真彩色图像数据量 计算_计算机基础:图形、图像相关知识笔记

    1.图形.图像的基础知识 图形:由称为矢量的数学对象所定义的直线和曲线等组成. 图像:也称为栅格图像,由点阵图或位图图像.用像素来代表图像.每一个像素都被分配一个特点的位置和颜色值. 图形和图像之间在 ...

  4. dw 快速html注释,笔记整理1-HTML基础知识与DW简单使用-工具-站长头条

    笔记整理1 -- HTML基础知识与DW简单使用 笔记整理1 -- HTML基础知识与DW简单使用 概念 客户端和服务器端 文件名.基本名.扩展名 资源文件和站点 什么是HTML 关于W3C W3C的 ...

  5. html语言需要dw吗,HTML笔记整理1 -- HTML基础知识与DW简单使用

    HTML笔记整理1 -- HTML基础知识与DW简单使用概念客户端和服务器端文件名.基本名.扩展名资源文件和站点什么是HTML关于W3CW3C的规范网站与网页基本概念网页的制作网页的基本框架通过记事本 ...

  6. dw边框弧度设置_笔记整理1 -- HTML基础知识与DW简单使用

    笔记整理1 -- HTML基础知识与DW简单使用 笔记整理1 -- HTML基础知识与DW简单使用 概念 客户端和服务器端 文件名.基本名.扩展名 资源文件和站点 什么是HTML 关于W3C W3C的 ...

  7. 《繁凡的深度学习笔记》前言、目录大纲 一文让你完全弄懂深度学习所有基础(DL笔记整理系列)

    <繁凡的深度学习笔记>前言.目录大纲 (DL笔记整理系列) 一文弄懂深度学习所有基础 ! 3043331995@qq.com https://fanfansann.blog.csdn.ne ...

  8. Deep Learning(深度学习)学习笔记整理系列之(五)

    Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...

  9. Deep Learning(深度学习)学习笔记整理系列之(二)

    Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...

最新文章

  1. Cassandra 2016/00
  2. rancher k8s docker 关系_通过rancher部署k8s过程实战分享
  3. 海量java等互联网相关电子图书分享
  4. java语句类型_01-java数据类型与语句
  5. 安卓fragment笔记
  6. 十九、FPGrowth算法介绍
  7. matlab飞机飞行模型,使用 MATLAB/Simulink 设计无人机飞行控制系统(二、动力学模型建立)...
  8. JSON 对比工具,优秀的JSON对比工具,文件内容对比
  9. 惠普HP Laser MFP 137fnw 一体机驱动
  10. 入门级前端选手半路接手vue项目实录
  11. 跳转打开多个标签导致浏览器崩溃问题
  12. 沙箱环境下实现支付宝网站支付
  13. 超实用后台UI模板有这些就够了!(二)
  14. Ubuntu 下安装使用飞鸽传书
  15. 西安电子科技大学和东北大学计算机,东北大学分数线比西安电子科技大学低,为什么高校排名靠前?...
  16. GitLab CI/CD .gitlab-ci.yaml 关键词(十二):条件限定,only ,except,触发规则rules,工作流workflow
  17. Office2010 下载
  18. android so调用java,AndServer+Service打造Android服务器实现so文件调用
  19. P4799 [CEOI2015 Day2]世界冰球锦标赛(折半暴搜)
  20. GeoGebra数学教学网站

热门文章

  1. 立体车库平面移动PLC项目
  2. 拒绝无意义的内卷吧,你被绑架太久了...
  3. html页面每打开就刷新一次,让页面自动只刷新一次
  4. 十万美元的悬赏——互联网梅森素数大搜索
  5. 广东海洋大学计算机组成原理,广东海洋大学计算机组成课程实习报告课程方案.doc...
  6. 求助,win10系统两个账号,一个账号的office软件无法使用
  7. RFC 是什么含义?
  8. 创建更好的移动Demo:工具篇
  9. 数据库查询重复数据及重复次数
  10. Windows server 2008 优化配置