读取JPEG头文件中的huffman表

读取JPEG头文件中的huffman表


实验工具:UltrEdit、Matlab

实验目的:提取出JPEG头文件中的huffman表段,并构建huffman映射。


在讲实验前,先了解一下JPEG的格式。

一.JPEG格式

JPEG格式是一种常见的图像文件压缩格式,是一些未压缩图像(如Tiff格式、bmp格式、png格式等),在经过JPEG压缩后形成的图像文件。图像的内容上会有一些肉眼不可见的失真。

JPEG压缩的过程为:

1.将像素点分块(8x8);2.将块内的像素点做DCT变换,每个块内得到1个DC系数和63个AC系数;3.将DC系数和AC系数量化;4.将DC系数和AC系数根据定义的Huffman表编码成二进制的压缩数据(在编码之前,还要对DC系数和AC系数做一些变换,如DC系数是按差值保存,而AC系数是按行程长度码保存)。

因此,JPEG格式的图象文件可以分为两个部分,即头文件部分和压缩数据部分。头文件中保存着一些图像的基本信息,如图像大小、量化表、Huffman表等。JPEG的比特流结构如下所示:

图像以FFD8开始,以FFD9结尾。压缩数据段以FFDA开始,即FFD8-FFDA之间的是JPEG图像的头文件。Huffamn码段则以FFC4为开头。JPEG定义了一些标准的Huffman表(也可以使用自定义的Huffman表)。

aml是一种xml格式的语言。 翻译过来大概叫 安全断言(标记)语言。 这里有两个点: 第一是“安全”, 第二是“断言(assertion)”。 用人话翻译saml就是 用安全的方式表达断言一种语言。 先看它的核心概念“断言”。 断言是什么? 就是做出判断的语言。比如一句话: 小明是超级管理员。 这就是一个断言。再来一个例子:小红没有权限读取根目录。这也是一个断言。 这种“做出判断的语句”我们在很多场合都需要用到。 比如你在网上尝试登陆一个服务的时候, 这个服务需要知道你是不是合法的用户。 这个时候如果你能提供一个“安全,可靠,可信任”的断言:“小明有权登陆XX服务”, 那么这个服务就知道你合法了, 于是就能为你提供服务了。 这个例子比较抽象,但基本上能表达断言在实际用例中的作用了。 实际上saml的大部分用例就在于证明你是谁,你拥有什么权限等等了。 saml中大部分主要内容也都是类似于:你是谁, 你有什么。。等等这些简单的语句。 详细内容后面会介绍。 接下来第二个概念就是“安全”了。 你能提供一个断言, 别人能不能假冒你提供一个断言从而骗取服务端的信任呢? 另外服务端为什么会信任你给的断言呢? 这就涉及到安全的问题了。为了防止断言被假冒,篡改。saml中加入了安全措施。 当然现今能抵御假冒,篡改,重放攻击的利器就是公钥-私钥系统了。 通过给断言加上签名和加密,再结合数字证书系统就确保了saml不受攻击。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值