图片浏览器知识总结.doc_第1页
图片浏览器知识总结.doc_第2页
图片浏览器知识总结.doc_第3页
图片浏览器知识总结.doc_第4页
图片浏览器知识总结.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

图像的编码和解码能够对数据进行压缩并大大减少其数据量是因为数据存在大量的数据冗余,即存在冗余的、可预测的和不必要的数据。数据量(D)与其所表达的信息量(I)一般并不相等,它们之间存在如下关系:I=D-dudu0其中,du代表数据的冗余量,如冗余量du=0,则不需要也不能对数据进行有效压缩。即,需要并能够对数据进行有效压缩的条件是du0。而图像数据中广泛存在着数据冗余。数据冗余一般有4种形式,即统计冗余、信息熵冗余、结构冗余、知识冗余。利用冗余进行图像数据压缩包括两个相反的过程。l 数据编码:即对原始图像数据进行编码,以减小其数据量。l 数据解码:即把编码压缩的图像数据还原成原始的表示形式。由于数据编码和数据解码是互逆的过程,只要研究好数据编码就能处理好数据解码。根据冗余类型的不同,人们提出了不同的数据编码方法,根据不同的出发点可把数据编码方法进行不同的分类。(1)以对编码数据在解码后能否完全一致的还原为原始数据为标准,可将数据编码方法划分为如下两类。l 无失真编码(可逆编码):编码数据进行解码后的数据与编码前的原始数据完全相同,没有任何失真。l 有失真编码(不可逆编码):编码数据进行解码后的数据与编码前的数据有一定的偏差或失真,但在视觉效果上基本相同。(2)根据数据编码的实现原理可以把数据编码划分为预测编码、变换编码、信息熵编码、亚抽样与内插编码、矢量量化编码、基于神经网络的编码、分频带编码、结构编码、基于知识的编码和混合编码等10类。其中,信息熵编码中的哈夫曼编码(Huffman Coding)、LZW(Lempel Ziv Welch Compression)编码、游程长度编码(Run Length Coding)和算术编码(Arithmetic Coding)都是常用的无失真图像编码方式。由于本设计并未涉及到上述所有的编码算法,故在此不再进行一一说明,在后面的内容中会对使用到的算法及其实现进行详细论述。BMP图像BMP图像,即通常所说的位图(Bitmap),是Windows系统中最为常见的图像格式。Windows 3.0以前的版本只支持与设备相关位图DDB(Device Dependent Bitmap)。DDB是一种内部位图格式,它显示的图像依计算机显示系统的设置不同而不同,因此一般不存储为文件,与通常所说的BMP图像不同。在Windows.h中,结构体BITMAP定义了DDB位图的类型、宽度、高度、颜色格式和像素位值等,代码如下:typedef struct tagBITMAP int bmType;/位图类型,必须设为0 int bmWidth; /位图宽度 int bmHeight;/位图高度 int bmWidthBytes;/位图中每一扫描行中的字节数 BYTE bmPlanes;/颜色层数 BYTE bmBitsPixel;/每一像素所占的位数 void FAR*bmBits; /存放像素值内存块的地址BITMAP;DDB中不包括颜色信息,显示时是以系统的调色板为基础进行像素的颜色映射的。Windows只能保证系统调色板的前20种颜色稳定不变,所以DDB只能保证正确显示少于20色的位图。Windows SDK提供标准的DDB位图操作函数;MFC中定义了CBitmap类来说明DDB位图,其中封装了与DDB位图操作相关的数据结构和函数。Windows 3.1以上版本提供了对设备无关位图DIB(Device Independent Bitmap)的支持。DIB位图可以在不同的机器或系统中显示位图所固有的图像。相对于DDB而言,DIB是一种外部位图格式,经常存储为常见的以BMP为后缀的位图文件(有时也以DIB为后缀)。因此,通常所说的BMP图像,即是DIB位图。BMP位图文件包括4部分,即位图文件头结构BITMAPFILEHEADER、位图信息头结构BITMAPINFOHEADER、位图颜色表RGBQUAD和位图像素数据,BMP位图文件的结构如图3.1所示。位图文件头结构BITMAPFILEHEADER位图信息头结构BITMAPINFOHEADER位图颜色表RGBQUAD位图像素数据图3.1 BMP位图文件的结构下面介绍BMP文件头、BMP位图信息头、颜色表这3个结构体在Windows.h中的定义。1. BMP文件头BMP文件头含有BMP文件的类型、文件的大小、位图文件的保留字、位图数据距文件头的偏移量等信息。定义如下:typedef struct tagBITMAPFILEHEADER UINT bfType;/位图文件的类型,必须为BM DWORD bfSize;/位图文件的大小,以字节为单位 UINT bfReserved1;/位图文件保留字,必须为0 UINT bfReserved2;/位图文件保留字,必须为0 DWORD bfOffBits;/位图数据距文件头的偏移量,以字节为单位 BITMAPFILEHEADER;2. BMP位图信息头BMP位图信息头用于说明位图的尺寸等信息,定义如下:typedef struct tagBIMAPINFOHEADER DWORD biSize; /本结构所占用字节数 LONG biWidth; /位图的宽度,以像素为单位 LONG biHeight; /位图的高度,以像素为单位 WORD biPlanes; /目标设备的级别,必须为1 WORD biBitCount; /每个像素所需的位数,必须是1(双色)、 /4(16色)、8(256色)或24(真彩色)之一 DWORD biCompression; /位图压缩类型,必须是 0(不压缩)、 /1(BI_RLE8压缩类型)或2(BI_RLE压缩类型)之一 DWORD biSizeImage; /位图的大小,以字节为单位 LONG biXPelsPerMeter; /位图水平分辨率,每米像素数 LONG biYPelsPerMeter; /位图垂直分辨率,每米像素数 DWORD biClrUsed; /位图实际使用的颜色表中的颜色数 DWORD biClrImportant; /位图显示过程中重要的颜色数 BITMAPINFOHEADER;3. 颜色表颜色表用于说明位图中的颜色,它有若干个表项,每一个表项是一个RGBQUAD类型的结构,且定义一种颜色,定义如下:typedef struct tagRGBQUAD BYTE rgbBlue;/蓝色的亮度(值范围为0255) BYTE rgbGreen;/绿色的亮度(值范围为0255) BYTE rgbRed;/红色的亮度(值范围为0255) BYTE rgbReserved;/保留,必须为0 RGBQUAD;位图信息头和颜色表组成位图信息,BITMAPINFO结构定义如下:typedef struct tagBITMAPINFO BITMAPINFOHEADER bmiHeader; RGBQUAD bmiColorsi; BITMAPINFO;颜色表中RGBQUAD结构数据的个数由biBitCount来确定,当biBitCount=1、4、8时,分别有2、16、256个表项;当biBitCount=24时,没有颜色表项。位图数据记录了位图的每一个像素值,记录顺序是在扫描行内从左到右、扫描行之间从下到上。位图的一个像素值所占的字节数如下:l 当biBitCount=1时,8个像素占1个字节。l 当biBitCount=4时,2个像素占1个字节。l 当biBitCount=8时,1个像素占1个字节。l 当biBitCount=24时,1个像素占3个字节。Windows规定一个扫描行所占的字节数必须是4的倍数(即以long为单位),不足的以0填充,一个扫描行所占的字节数计算方法如下:DataSizePerLine=(biWidthbiBitCount+31)/8这是本设计中的一个关键点,无论对图像进行何种变换,都要进行扫描行的4字节对齐。除了上述的Windows BMP以外,还有一种与其结构相似,但不完全相同的另一种BMP图像,即OS/2采用的BMP。其与Windows BMP的主要区别是位图信息结构(信息头结构和颜色表结构)不同。而它们的图像位数据的存储方式是完全一样的。本设计只讨论Windows系统下的BMP图像,故对OS/2使用的BMP不进行详细分析。模块划分本设计的实现基于微软的MFC应用程序框架,故软件也采用了文档(Document)/视图(View)结构,并使用单文档界面(Single Document Interface,简称SDI)。程序框架在响应它生成的标准用户接口“打开”命令时创建文档/视图结构,由于软件只需提供浏览的供能,因此将生成的标准框架中的“新建”命令禁用,其创建次序如下。步骤1:程序启动时,WinMain()函数调用应用程序对象的InitInstance()函数,并在其中创建文档模板。步

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论