JPEG基准类型存储算法.pptVIP

  1. 1、本文档共37页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
JPEG基准类型存储算法

JPEG标准的工作原理和实现技术;1.位图文件格式简介 ;BMP文件大体上分成四个部分,如下图所示:;1.1位图文件头 ;1.2位图信息头 ;该结构长度固定为40个字节(LONG为32位整数),各个域的说明如下: biSize:指定这个结构的长度,为40。 biWidth:指定图像的宽度,单位是像素。 biHeight:指定图像的高度,单位是像素。 biPlanes:必须是1,不用考虑。 biBitCount:指定表示颜色时要用到的位数。常用的位数值有:1(黑白两色图),4(16色图),8(256色图),24(真彩色图)。 biCompression:指定位图是否压缩。一般为BI_RGB,表示不压缩。 biSizeImage:指定实际的位图数据占用的字节数。 biXPelsPerMeter:指定目标设备的水平分辨率,单位是每米的像素个数。 biYPelsPerMeter:指定目标设备的垂直分辨率,单位是每米的像素个数。 biClrUsed:指定本图像实际用到的颜色数,如果该值为零,则用到的颜色数为2的biBitCount次方。 biClrImportant:重要的颜色数,如果该值为零,则认为所有的颜色都重要。;1.3调色板 ;1.4 实际的图像数据 ;1.5 BMP文件读取和显示的过程可以概括为以下几步:;若是8位图,需要先读取调色板的数据,再根据像素点颜色在调色板中的索引值获得每个像素点的R、G、B值;若是24位图,直接读取每个像素点的值即可。 根据每个像素点的值显示图片。需要注意一点,BMP文件的数据是从下到上、从左到右的。从文件中最先读到的是图像最下面一行的左边第一个像素,然后是左边第二个像素……接下来是倒数第二行左边第一个像素,然后是左边第二个像素……依次类推,最后得到的是最上面一行的最右边的一个像素。;2. 静态图像压缩标准JPEG ;基于DCT的JPEG压缩算法是有损压缩,它利用了人的视角系统的特性,使用量化和无损压缩编码相结合来去掉视角的冗余信息和数据本身的冗余信息。JPEG算法框图如图1所示,压缩编码大致分成三个步骤: (1)使用正向离散余弦变换(Forward Discrete Cosine Transform,FDCT)把空间域表示的图变换成频率域表示的图。 (2)使用加权函数对DCT系数进行量化,这个加权函数对于人的视觉系统是最佳的。 (3)使用哈夫曼可变字长编码器对量化系数进行编码。 ;;2.2 JPEG压缩的基本原理;2.2.1颜色模式转换及采样;2.2.2正向离散余弦变换(FDCT);DCT变换是做什么的 ?;(3)用f表示像素值的数组,f(i ,j)表示i行j列的值,则离散余弦变换后定义一个新的数组F (u ,v),表示u行v列的值。 ;图3显示了对源图像的8×8的图像样本的原始数组应用离散余弦变换的结果。在对源数组f进行变换之前首先对源图像中的每个样本数据减去128。然后再按公式(1)分别计算出结果数组F中每个数组元素的值。比如说,计算F(0,0)的值过程如下:;;(4)在计算二维的DCT变换时,也可使用下面的计算式(3)、(4)进行简化,把二维的DCT变换变成一维的DCT变换,如图4所示为二维DCT变换方法。;2.2.3量化 为了达到压缩数据的目的,DCT系数需做量化。量化是对经过FDCT变换后的频率系数进行量化,这是一个多到一映射的过程。量化的目的是减小非0系数的幅度以及增加0值系数的数目,在一定的主观保真的前提下,丢掉那些对视觉效果影响不大的信息,量化是图像质量下降的最主要原因。 ;;对于上面的例子,我们用表2的量化表对其进行量化,得到数组Q(i,j)。量化的公式为: Q(i,j)=Integer(F(i,j)/U(i,j)) 其中:U(i,j)为量化数组中对应的数组元素。也就是用数组F中的各元素分别除以量化数组Q中的相应元素,如图6所示。;以上是编码时对图像块的正向离散余弦变换和量化过程,解码的时候要进行逆量化和逆向离散余弦变换,图6说明了解码的过程,并且在逆向离散余弦变换之后对重构图像中的每个样本数据加了128,最后得到重构图像样本:;2.2.4编码阶段;(3)熵编码; ;尺寸分类(符号1 );行程/尺寸(符号1);2.2.5组成位数据流;继续前面的例子说明编码过程: ;2.2.6生成JPEG文件 ;2.2.7哈夫曼编码在图像压缩中的实现;在JPEG文件格式中,哈夫曼表以哈夫曼码字中位数相同的个数和所有的哈夫曼码值的形式存储,实际上是存储了一个哈夫曼树。下面以亮度DC系数表(表3)为例说明哈夫曼表构造的整个过程。 由表3可以得到两个数组:;为了生成哈夫曼表,要建立huffsize[],huffcode[] 两个整数型数组,此处它们的元素个数只要大于12即可。;参考资料:

文档评论(0)

junjun37473 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档