基于DCT的JPEG图像编解码概述
- 格式:ppt
- 大小:4.92 MB
- 文档页数:26
课程设计任务书学生姓名:王晓飞专业班级:通信1001班指导教师:魏洪涛工作单位:信息工程学院题目:通信工程应用技术综合训练与实习初始条件:MATLAB软件平台设计任务与要求:图像通信之前需要进行数据量压缩,编程实现JPEG图像压缩标准的主要环节,完成压缩和解压过程,计算压缩比。
要求:将彩色图像进行颜色空间转换、对不同的颜色分量进行不同的采样、对于3个分量进行8×8的DCT变换、对DCT系数矩阵按照JPEG推荐的量化表进行量化;对量化后的系数进行Z形扫描,最后进行熵编码,形成码流,计算比特数,和压缩比。
解压从量化后的DCT系数表开始逆向进行。
时间安排:指导教师签名:年月日系主任(或责任教师)签名:年月日目录摘要 (3)1概述 (5)1.1 图像压缩编码技术 (5)1.2 离散余弦变换(DCT) (5)1.3 MATLAB 及其图像处理工具箱 (6)2 基于DCT的图像压缩编码算法 (6)2.1 基于DCT的图像压缩编码算法的过程 (6)2.2 基于DCT的JPEG图像压缩编码步骤 (7)2.2.1 颜色空间的转换和采样 (7)2.2.2 二维离散余弦变换 (8)2.2.3 DCT系数的量化 (9)2.2.4 量化系数的编排 (10)2.2.5 DC系数的编码 (11)2.2.6 AC系数的编码 (11)2.2.7 组成位数据流 (12)3 基于DCT图像压缩的MATLAB实现 (13)4 matlab仿真结果 (14)5 心得体会 (15)参考文献 (17)附录 (18)摘要随着科学技术的发展,图像压缩技术越来越引起人们的关注,本论文研究了基于DCT 变换的JPEG图像压缩编码算法。
首先说明了图像压缩在现代通信中的必要性和可行性以及MATLAB图像处理工具箱的相关知识,然后重点介绍了JPEG压缩编码的具体过程和方法,详细介绍了编码中DCT变换、量化、熵编码和霍夫曼编码等模块的原理。
最后分析了图像经过不同压缩比时,图像质量的变化情况。
摘要随着科学技术的发展,图像压缩技术越来越引起人们的关注。
为此从众多的图像压缩编码标准中选取了基于DCT变换的JPEG图像压缩编码算法进行研究,并通过对比分析各种软件特性选取了MATLAB进行实验仿真。
首先说明了图像压缩在现代通信中的必要性和可行性,然后讲述了MATLAB及其图像处理工具箱的相关知识,并对基于DCT变换的JPEG图像压缩算法进行了详细的研究,重点介绍了JPEG压缩编码的具体过程和方法 ,详细介绍了编码中DCT变换、量化、熵编码和霍夫曼编码等模块的原理和数学推导以及各模块的功能分析。
最后应用MATLAB进行了实验仿真并分析结果得出结论。
实验结果表明基于DCT 变换的JPEG 图像压缩方法简单、方便,既能保证有较高的压缩比,又能保证有较好的图像质量,应用MATLAB仿真出来的结果较好的反应了其编码算法原理。
关键词JPEG图像压缩;DCT;MATLAB;图像处理工具箱目录摘要 (I)Abstract ....................................... 错误!未定义书签。
第1章绪论. (1)1.1课题背景 (1)1.1.1 离散余弦变换 (2)1.1.2 预测技术 (3)1.2图像压缩技术的发展和现状 (3)1.2.1 图像编码技术发展历史 (3)1.2.2 图像编码技术的现状 (4)1.3MATLAB及其图像处理工具箱 (4)第2章图像压缩编码理论算法 (6)2.1DCT变换的思想来源 (6)2.2基于DCT的JPEG图像压缩编码步骤 (8)2.2.1 颜色空间的转换和采样 (8)2.2.2 二维离散余弦变换 (9)2.2.3 DCT系数的量化 (13)2.2.4 量化系数的编排 (14)2.2.5 DC系数的编码 (16)2.2.6 AC系数的编码 (16)2.2.7 组成位数据流 (18)2.2.8 DCT变换在图像压缩中的应用 (21)2.3代码实现................................ 错误!未定义书签。
第8章 DCT 与JPEG 编码JPEG 是用于灰度图与真彩图的静态图像压缩的国际标准,JPEG 主要采用了以DCT (Discrete Cosine Transform ,离散余弦变换)为基础的有损压缩算法,在本章中会作较为详细的介绍。
JPEG 2000则是用于二值图、灰度图、伪彩图和真彩图的静态图像压缩的新标准,它采用的是性能更优秀的DWT (Discrete Wavelet Transform ,离散小波变换),将在下一章介绍。
因为视频的帧内编码就是静态图像编码,所以JPEG 和JPEG 2000的编码算法也用于MPEG 的视频编码标准中。
8.1 DCT与上一章所讲的几种熵编码不同,DCT (Discrete Cosine Transform 离散余弦变换)是一种变换型的源编码,使用十分广泛,也是JPEG 编码的一种基础算法。
DCT 将时间或空间数据变成频率数据,利用人的听觉和视觉对高频信号(的变化)不敏感和对不同频带数据的感知特征不一样等特点,可以对多媒体数据进行压缩。
8.1.1 余弦变换DCT 是计算(Fourier 级数的特例)余弦级数之系数的变换。
若函数f (x ) 以2 l 为周期,在[-l , l ]上绝对可积,则f (x )可展开成Fourier 级数:∑∞=⎪⎭⎫ ⎝⎛++=10sin cos 2)(n n n l x n b l x n a a x f ππ其中正弦变换余弦变换 sin )(1 cos )(1⎰⎰--==l l n l l n dx l x n x f l b dx lxn x f l a ππ若f (x )为奇或偶函数,有 a n ≡0或b n ≡0,则f (x )可展开为正弦或余弦级数:∑∑∞=∞=+==101cos 2)( sin )(n n n n l xn a a x f l x n b x f ππ或任给f (x ),x ∈[0, l ],总可以将其偶延拓到[-l , l ]:⎩⎨⎧-∈-∈=]0,[),(],0[ ),()(l x x f l x x f x f 然后再以2l 为周期进行周期延拓,使其成为以2l 为周期的偶函数。
DCT 与JPEG 编码JPEG 是用于灰度图与真彩图的静态图像压缩的国际标准,JPEG 主要采用了以DCT (Discrete Cosine Transform ,离散余弦变换)为基础的有损压缩算法,在本章中会作较为详细的介绍。
JPEG 2000则是用于二值图、灰度图、伪彩图和真彩图的静态图像压缩的新标准,它采用的是性能更优秀的DWT (Discrete Wavelet Transform ,离散小波变换),将在下一章介绍。
因为视频的帧内编码就是静态图像编码,所以JPEG 和JPEG 2000的编码算法也用于MPEG 的视频编码标准中。
8.1 DCT与上一章所讲的几种熵编码不同,DCT (Discrete Cosine Transform 离散余弦变换)是一种变换型的源编码,使用十分广泛,也是JPEG 编码的一种基础算法。
DCT 将时间或空间数据变成频率数据,利用人的听觉和视觉对高频信号(的变化)不敏感和对不同频带数据的感知特征不一样等特点,可以对多媒体数据进行压缩。
8.1.1 余弦变换DCT 是计算(Fourier 级数的特例)余弦级数之系数的变换。
若函数f (x ) 以2 l 为周期,在[-l , l ]上绝对可积,则f (x )可展开成Fourier 级数:∑∞=⎪⎭⎫⎝⎛++=10sin cos 2)(n n n l x n b l x n a a x f ππ其中正弦变换余弦变换sin )(1 cos )(1⎰⎰--==l l n l l n dx lx n x f l b dx lx n x f l a ππ若f (x )为奇或偶函数,有 a n ≡0或b n ≡0,则f (x )可展开为正弦或余弦级数:∑∑∞=∞=+==101cos2)( sin )(n n n n l xn a a x f l x n b x f ππ或任给f (x ),x ∈[0, l ],总可以将其偶延拓到[-l , l ]:⎩⎨⎧-∈-∈=]0,[),(],0[ ),()(l x x f l x x f x f 然后再以2l 为周期进行周期延拓,使其成为以2l 为周期的偶函数。
基于DCT量化系数重组的JPEG图像加密算法
王方超;李斌;周佳虹
【期刊名称】《微电子学与计算机》
【年(卷),期】2014(0)8
【摘要】整个加密算法分两个过程,首先在DCT变换之前对原始图像进行以8×8图像块为单位的统一图像置乱,使图像整体视觉效果上杂乱无章.其次,DCT变换量化系数之后,将相邻两个8×8系数块的低频系数组成一个新块,高频系数组成一个新块,分别进行块内的系数置乱,在改变原始图像频率成分的同时,可以减少改变零游程结构带来的加密对JPEG图像压缩影响,而且8×8系数块内的非零系数个数发生了变化,可以有效抵御统计非零系数个数攻击.
【总页数】5页(P139-143)
【关键词】JPEG图像;DCT量化系数;系数重组;置乱加密
【作者】王方超;李斌;周佳虹
【作者单位】镇江船艇学院
【正文语种】中文
【中图分类】TN918.4
【相关文献】
1.一种基于DCT系数直方图差异的JPEG图像篡改检测 [J], 王浩明;杨晓元
2.基于DCT系数统计特性的JPEG图像隐写分析 [J], 徐志杰;蔡晓霞
3.基于DCT系数的JPEG图像检索算法 [J], 赵珊;赵倩
4.基于DCT系数首位数字特征抽取的JPEG图像重压缩检测及篡改定位 [J], 刘洪利;刘本永
5.基于DCT变换的JPEG图像加密算法 [J], 单泽润;龚涛
因版权原因,仅展示原文概要,查看原文内容请购买。
DCT 与JPEG 编码JPEG 是用于灰度图与真彩图的静态图像压缩的国际标准,JPEG 主要采用了以DCT (Discrete Cosine Transform ,离散余弦变换)为基础的有损压缩算法,在本章中会作较为详细的介绍。
JPEG 2000则是用于二值图、灰度图、伪彩图和真彩图的静态图像压缩的新标准,它采用的是性能更优秀的DWT (Discrete Wavelet Transform ,离散小波变换),将在下一章介绍。
因为视频的帧内编码就是静态图像编码,所以JPEG 和JPEG 2000的编码算法也用于MPEG 的视频编码标准中。
8.1 DCT与上一章所讲的几种熵编码不同,DCT (Discrete Cosine Transform 离散余弦变换)是一种变换型的源编码,使用十分广泛,也是JPEG 编码的一种基础算法。
DCT 将时间或空间数据变成频率数据,利用人的听觉和视觉对高频信号(的变化)不敏感和对不同频带数据的感知特征不一样等特点,可以对多媒体数据进行压缩。
8.1.1 余弦变换DCT 是计算(Fourier 级数的特例)余弦级数之系数的变换。
若函数f (x ) 以2 l 为周期,在[-l , l ]上绝对可积,则f (x )可展开成Fourier 级数:∑∞=⎪⎭⎫⎝⎛++=10sin cos 2)(n n n l x n b l x n a a x f ππ其中正弦变换余弦变换sin )(1 cos )(1⎰⎰--==l l n l l n dx lx n x f l b dx lx n x f l a ππ若f (x )为奇或偶函数,有 a n ≡0或b n ≡0,则f (x )可展开为正弦或余弦级数:∑∑∞=∞=+==101cos2)( sin )(n n n n l xn a a x f l x n b x f ππ或任给f (x ),x ∈[0, l ],总可以将其偶延拓到[-l , l ]:⎩⎨⎧-∈-∈=]0,[),(],0[ ),()(l x x f l x x f x f 然后再以2l 为周期进行周期延拓,使其成为以2l 为周期的偶函数。
jpeg 原理
JPEG(Joint Photographic Experts Group;联合图像专家组)是一种使用有损压缩方法的图像格式,常用于储存数字照片和网络图像。
JPEG 原理基于两个主要的概念:离散余弦变换(DCT)和量化。
首先,将输入的图像划分为若干个8x8像素块,每个像素块的像素值通过离散余弦变换得到频域系数。
然后,对频域系数进行量化,即将其除以一个固定的矩阵,得到一个近似的压缩表示。
量化可以在频域上实现较高的压缩比率,但会带来明显的失真,因为一些高频信息被舍弃。
最后,以二进制形式储存量化后的系数。
在解码时,储存的量化系数乘以相应的量化矩阵得到频域系数,再反变换回时域,就可以得到图像的近似重建。
由于量化和舍弃了一些高频信息,所以重建图像会有明显的失真。
但是,如果选择一个适当的量化矩阵,可以在可接受的失真下实现高压缩比。
JPEG文件编/解码详解(1)2.初步了解图像数据流的结构1)理论说明分析图像数据流的结构,笔者准备以一个从宏观到微观的顺序为读者详细剖析,即:数据流→最小编码单元→数据单元与颜色分量。
a)在图片像素数据流中,信息可以被分为一段接一段的最小编码单元(Minimum Coded Unit,MCU)数据流。
所谓MCU,是图像中一个正方矩阵像素的数据。
矩阵的大小是这样确定的:查阅标记SOF0,可以得到图像不同颜色分量的采样因子,即Y、Cr、Cb三个分量各自的水平采样因子和垂直采样因子。
大多图片的采样因子为4:1:1或1:1:1。
其中,4:1:1即(2*2):(1*1):(1*1));1:1:1即(1*1):(1*1):(1*1)。
记三个分量中水平采样因子最大值为Hmax,垂直采样因子最大值为Vmax,那么单个MCU矩阵的宽就是Hmax*8像素,高就是Vmax*8像素。
如果,整幅图像的宽度和高度不是MCU宽度和高度的整数倍,那么编码时会用某些数值填充进去,保证解码过程中MCU的完整性(解码完成后,可直接忽视图像宽度和高度外的数据)。
在数据流中,MCU的排列方法是从左到右,从上到下。
b)每个MCU又分为若干个数据单元。
数据单元的大小必定为8*8,所以每个MCU的数据单元个数为Hmax*Vmax。
另外JPEG的压缩方法与BMP文件有所不同,它不是把每个像素的颜色分量连续存储在一起的,而是把图片分成Y,Cr,Cb三张子图,然后分别压缩。
而三个颜色分量的采样密度(即采样因子)可能一样(例如1:1:1)也可能不一样(例如4:1:1)。
每个MCU内部,数据的顺序是Y、Cr、Cb。
如果一个颜色分量有多个数据单元,则顺序是从左到右,从上到下。
2)举例说明下面通过一幅32*35的图像,对上面两个问题列出两种采样因子的具体说明。
图1 整张完整的图像(4:1:1)图2 将图像的MCU1放大图1及图3中灰色部分为实际图像大小(32px*35px);粗虚线表示各个MCU的分界;细虚线表示MCU内部数据单元的分界。
JPEG图片压缩算法流程详解薛晓利JPEG是Joint Photographic Exports Group的英文缩写,中文称之为联合图像专家小组。
该小组隶属于ISO国际标准化组织,主要负责定制静态数字图像的编码方法,即所谓的JPEG 算法。
JPEG专家组开发了两种基本的压缩算法、两种熵编码方法、四种编码模式。
如下所示:压缩算法:(1)有损的离散余弦变换DCT(Discrete Cosine Transform)(2)无损的预测压缩技术;熵编码方法:(1)Huffman编码;(2)算术编码;编码模式:(1)基于DCT的顺序模式:编码、解码通过一次扫描完成;(2)基于DCT的渐进模式:编码、解码需要多次扫描完成,扫描效果由粗到精,逐级递增;(3)无损模式:基于DPCM,保证解码后完全精确恢复到原图像采样值;(4)层次模式:图像在多个空间分辨率中进行编码,可以根据需要只对低分辨率数据做解码,放弃高分辨率信息;在实际应用中,JPEG图像编码算法使用的大多是离散余弦变换、Huffman编码、顺序编码模式。
这样的方式,被人们称为JPEG的基本系统。
这里介绍的JPEG编码算法的流程,也是针对基本系统而言。
基本系统的JPEG压缩编码算法一共分为11个步骤:颜色模式转换、采样、分块、离散余弦变换(DCT)、Zigzag 扫描排序、量化、DC系数的差分脉冲调制编码、DC系数的中间格式计算、AC系数的游程长度编码、AC系数的中间格式计算、熵编码。
下面,将一一介绍这11个步骤的详细原理和计算过程。
(1)颜色模式转换JPEG采用的是YCrCb颜色空间,而BMP采用的是RGB颜色空间,要想对BMP图片进行压缩,首先需要进行颜色空间的转换。
YCrCb颜色空间中,Y代表亮度,Cr,Cb则代表色度和饱和度(也有人将Cb,Cr两者统称为色度),三者通常以Y,U,V来表示,即用U代表Cb,用V代表Cr。
RGB和YCrCb之间的转换关系如下所示:Y = 0.299R+0.587G+0.114BCb = -0.1687R-0.3313G+0.5B+128Cr = 0.5R=0.418G-0.0813B+128一般来说,C 值(包括Cb Cr) 应该是一个有符号的数字, 但这里通过加上128,使其变为8位的无符号整数,从而方便数据的存储和计算。