数据压缩实验指导书.doc_第1页
数据压缩实验指导书.doc_第2页
数据压缩实验指导书.doc_第3页
数据压缩实验指导书.doc_第4页
数据压缩实验指导书.doc_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

数字据压缩实验指导书北方民族大学电气信息工程系2012年5月目录 数据压缩实验教学大纲3实验一 RL编码解码5实验二 HUFFMAN编码算法6实验三 LZW编码与解码算法8实验四 JPEG2000编码解码9实验五 H.264/AVC编码解码13数据压缩实验教学大纲(供信息工程本科专业使用)适用专业:通信工程、信息工程课程类别:专业任选课课程性质:选修课实验类别:专业实验一、学时与学分1.课程总学时:462.课程总学分:23.实验学时:104.实验学分:0二、实验教学目标与基本要求本课程是理论性较强的课程,实验教学可以加深学生对理论教学的理解,提高学习的兴趣和动手能力,为将来进一步有关数据压缩知识的学习与使用打下基础。设置数据压缩实验的目的是要让学生掌握数据压缩方法的经典算法;其主要任务是使学生深入理解和掌握几种数据压缩技术及这些技术在视频标准中的综合应用。三、实验内容实验内容主要包括:实验一RL编码。设计RL编码的流程,并写出程序,能够将输入的数据进行RL编码,并输出结果。实验二HUFFMAN编码与解码算法。设计HUFFMAN编码的流程,并写出程序,能够将输入的数据进行HUFFMAN编码,并输出结果。实验三LZW编码与解码算法。设计LZW编码的流程,并写出程序,能够将输入的数据进行LZW编码,并输出结果。实验四JPEG2000编码解码。在ICETEK-DM642-PCI板上实现JPEG2000编码解码,将摄入的视频图像首先进行编码,产生JPEG压缩图,再由解码程序处理此压缩图,生成解压图像送显示设备显示,并理解各种数据压缩技术在其中的综合应用。实验五H.264/AVC编码解码。H.264/AVC编码解码。在JM8.4视频标准测试模型上,实现Foreman.qcif等视频序列的编码解码,再修改一些基本参数,查看结果,并理解各种数据压缩技术在其中的综合应用。四、参考教材1、数据压缩第二版,吴乐南编著,电子工业出版社,2005年。2、数据压缩原理与应用,David Salomon编著,吴乐南译,电子工业出版社,2003年。3、数字图像压缩编码,张春田,苏育挺,张静编著,清华大学出版社,2006年。五、考核方式以每次实验验收和实验报告评阅的方式进行考核。六、实验设备及器材配置实验设备:瑞泰生产的ICETEK-DM642-PCI图像、语音仿真实验系统,共13套。计算机一台。七、实验项目一览适用专业、年级信息工程、通信工程专业三、四年级总学时实验学时448序 号实验项目名称实验内容摘要学 时实验要求实验类型每组人数面向专业编号备注1RL编码解码写出程序,能够将输入的数据进行RL编码,并输出结果。2必做设计型2080609Y2HUFFMAN编码与解码算法写出程序,能够将输入的数据进行HUFFMAN编码,输出结果2必做设计型2080609Y3LZW编码与解码算法写出程序,能够将输入的数据进行LZW编码,输出结果2必做设计型2080609Y4JPEG2000编码解码将摄入的视频图像首先进行编码,产生JPEG压缩图,再由解码程序处理此压缩图,生成解压图像送显示设备显示2必做验证型2080609YH.264/AVC编码解码在JM8.4视频标准测试模型上,实现Container.qcif等视频序列的编码解码,并修改一些基本参数,查看结果2必做综合型2080609Y制定人:马宏兴 2006年12月24日审核人:张广忠 2006年12月30日批准人:任维桢 2006年 1月 4日实验一 RL编码解码(设计性实验)一、实验目的l. 设计RL编码解码的流程;2. 编写RL编码解码程序,使之能够将输入的数据进行RL编码,并输出结果。二、实验仪器与器材1. 微机一台(型号不限)2. TC或C+环境三、实验设计思路RL编码思想:仅存储一个像素值以及具有相同颜色的像素数目的图象数据编码方式称为行程编码,行程指具有相同灰度值的像素序列。可用行程的灰度和行程的长度代替行程本身。例如:设重复次数为 iC, 重复像素值为 iP编码为:iCiP iCiP iCiP;编码前:aaaaaaabbbbbbcccccccc ;编码后:7a6b8c。RL解码刚好相反,如果解码前为7a6b8c,则解码后为:aaaaaaabbbbbbcccccccc。四、实验要求1. 理解RL编码思想;2. 设计出RL编码解码程序;3输入一串字符:aaabbbcaaabbc,求出编码后的输出,并计算其压缩比CR;4. 解码时,输入4c5b2a,求解码后的输出。五、实验思考题1. 分析RL编码的优缺点;2. 如何编写二值图像的MH编码算法。 实验二 HUFFMAN编码算法(设计性实验)一、实验目的l. 设计HUFFMAN编码解码的流程;2. 编写HUFFMAN编码解码程序,使之能够将输入的数据进行HUFFMAN编码,并输出结果。二、实验仪器与器材1. 微机一台(型号不限)2. TC或C+环境三、实验设计思路HUFFMAN编码思想: HUFFMAN编码的基本方法是先对图像数据扫描一遍,计算出各种像素出现的概率,按概率的大小指定不同长度的唯一码字,由此得到一张该图像的霍夫曼码表。编码后的图像数据记录的是每个像素的码字,而码字与实际像素值的对应关系记录在码表中。 编码步骤:1计算输入信源的概率并按由大到小的顺序排列;2将两个最小的概率组合相加,然后再将信源的概率由大到小的顺序排列;该过程直到概率达到1为止;3对每组合中的上边一个指定为1,下边一个指定为0;4将由概率1到每个信源符号概率的路径所过之处的1和0依次输出,即为该字符的霍夫曼码字。HUFFMAN编码示例如下图:四、实验要求1预习HUFFMAN编码思想;2设计出HUFFMAN编码与解码程序;3输入信源Aabaaabbbcccddddedfffffgaaaag,输出各字符的码字并计算其平均码长。五、实验思考题1. HUFFMAN算法能否真正逼近信源熵的极限?2. 如何编写自适应HUFFMAN编码算法?实验三 LZW编码与解码算法(设计性实验)一、实验目的l. 设计LZW编码流程;2. 编写LZW编码解码程序,使之能够将输入的数据进行LZW编码,并输出结果。二、实验仪器与器材1. 微机一台(型号不限)2. TC或C+环境三、实验设计思路LZW编码思想:(1) 在压缩过程中动态地形成一个字符序列表(字典)(2) (a)每当压缩扫描图像发现一个字典中没有的字符序列,就把该字符序列存到字典中(b)并用字典的地址(编码)作为这个字符序列的代码,替换原图像中的字符序列(c)下次再碰到相同的字符序列,就用字典的地址代替字符序列LZW编码算法流程:视始化:将所的单字符串放入串表读第一个字符前缀串Step:读下一个输入字符KIf没有这样的K(输入已穷尽)码字()输出;结束If K已存在于串表中: K:repeat Step Else K不在串表中: 码字()输出 K串表;K;repeat Step四、实验要求1预习LZW编码思想;2设计出LZW编码程序;3输入信源Aababcbababaaaaaaa,输出LZW编码后的码字,同时输出编码过程中的码字串表。五、实验思考题1. 试编写LZW解码算法;2. 试分析LZW编码算法的优缺点。实验四 JPEG2000编码解码(验证性实验)一实验目的1. 掌握JPEG2000中所应用的数据压缩方法2. 学习运用IDMA规范综合JPEG编码和解码库3. 了解在RF-5平台上调用JPEG编码、解码库实现可编程控制的压缩质量和帧率的视频采集、显示功能。二实验设备计算机,ICETEK-DM642-IDK-M实验箱。三实验原理实验程序在ICETEK-DM642-PCI板上实现D1格式的JPEG2编码和解码。程序将摄入的视频图像首先进行编码,产生JPEG压缩图,再由解码程序处理此压缩图,生成解压缩图像送显示设备显示。1数据流图JPEG编码器色差信号重采样YUV(4:2:2)-YUV(4:2:0)摄入一帧图像数据视频源JPEG解码器显示此帧图像数据显示设备色差信号重采样YUV(4:2:0)-YUV(4:2:2)数据流程:(1)输入设备提供的一帧图像被采集到输入缓存。(2)获得的数据由YUV 4:2:2格式进行重抽样变为YUV 4:2:0格式。(3)提供图像数据给JPEG编码库程序,产生用户定制压缩质量的JPEG图像。(4)产生的JPEG图像被作为解码器的输入,产生一幅YUV 4:2:0格式的解码图像。(5)解码产生的YUV 4:2:0格式的图像被重新采样成YUV 4:2:2格式的图像。(6)显示设备显示输出的图像。2程序流程(1)实验程序采用RF-5(参考设计框架5)来整合JPEG的编码、解码库。程序使用了四个任务模块结构。第四个任务是一个控制任务,它使用一个邮箱发送消息给处理任务模块。处理任务模块从邮箱接收消息,并根据消息中指定的图像质量调节图像帧率。在进入DSP/BIOS的调度程序之前,程序初始化了多个要使用的模块。包括:处理器和系统板的初始化:-初始化BIOS环境和CSL。-设置使用128K的二级高速缓存。-设置二级高速缓存可映射到EMIF的CE0和CE1空间。-设置DMA优先级序列长度取最大值。-设置二级高速缓存的请求优先级最高。-DMA管理器用内部的和扩展堆初始化。RF-5模块的初始化:-系统初始化RF-5的通道模块。-系统初始化RF-5框架中用于内部单元通讯和传递消息的ICC和SCOM模块。-各通道建立在内部的和扩展的堆上建立摄入和显示通道-建立和启动一个摄入通道的实例。-建立和启动一个显示通道的实例。 (2)在完成初始化工作之后,系统进入DSP/BIOS调度程序管理下的4个任务系统。4个任务通过RF-5的SCOM模块互相发送消息。以下是这4个任务:输入任务输入任务从输入设备驱动程序获得视频图像。并将YUV 4:2:2格式的获得图像重采样成YUV 4:2:0。输入任务接着发送消息到处理任务,消息中包含图像数据指针。接着等待处理任务发送来的消息以继续处理。处理任务处理任务包含两个单元。第一个单元是一个JPEG编码单元,它接受YUV 4:2:0格式的图像,产生用户定制压缩质量的JPEG图像。第二个单元是一个JPEG解码单元,它接收JPEG压缩图像并生成解压缩图像。解码的图像格式是YUV 4:2:0的。在解码完成后,处理任务发送一个消息给所有输入和输出任务模块,标示缓冲区使用完毕,现在可以重新使用。输出任务输出任务将图像显示在显示设备上。它使用输出驱动程序提供的FVID_exchange调用实现图像的显示。它得到的图像的格式是YUV 4:2:0的,需要重新采样成YUV 4:2:2格式。然后等待处理任务发来的消息以继续运行。控制任务控制任务管理可选参数,可以控制JPEG图像帧率和压缩质量。控制任务检测参数的改变,这些参数定义在一个全局结构“External Control”,同时将更新的参数复制到任务自定义的结构“External Control_prev”中,并向处理任务模块的邮箱中发送消息。处理任务模块定时检测这些消息并调用相应单元的控制函数。四实验步骤1实验准备(1)连接设备关闭计算机和实验箱电源。连接ICETEK-5100USBV2.0仿真器一端的黑色插头到ICETEK-DM642-PCI板上J7插座(JTAG),电缆上红色线要靠近“J7”丝印。连接+5V电源线到ICETEK-DM642-PCI板上J10插座。连接实验箱中视频转接线的输入端连接到选配的摄像头或视频信号输入端子上,将转接线的输出端(两个接头)分别连接到ICETEK-DM642-PCI板上J15和J16插座。连接实验箱中电视显示器接头到专用电视转接线的相应插头,连接转接线的黄色莲花插头到ICETEK-DM642-PCI板上J4插座。用实验箱所配的电源转接线(两端均为带孔的插头)连接实验箱底板上+12V电源输出插座到选配的摄像头上电源插座。将电视转接线上电源插头(带孔的黑色插头)插入实验箱底板上+12V电源输出插座。(2)开启设备打开计算机电源。打开实验箱电源开关,注意ICETEK-DM642-PCI板上指示灯DS10亮,表示OSD FPGA配置完成,与此同时,DS1DS8全亮。附带的USB电缆连接计算机(最好使用PC机机箱后部的USB插座)和仿真器相应接口,注意仿真器上两个指示灯均亮。打开电视显示器开关,可以看到彩条显示。双击运行桌面上“初始化ICETEK-5100USB仿真器”,在弹出的DOS窗口中观察初始化操作结果。如果窗口中最后一行显示“This utility has successfully reset the controller.”,并提示“按任意键继续”,表示成功地初始化仿真器,可按键盘上空格键继续下步操作。如果窗口中没有出现“按任意键继续”,请关闭窗口,关闭实验箱电源,再将USB电缆从仿真器上拔出,返回第步重试。如果窗口中出现“The adapter returned an error.”,并提示“按任意键继续”,表示初始化失败,请关闭窗口重试两三次,如果仍然不能初始化则关闭实验箱电源,再将USB电缆从仿真器上拔出,返回第步重试。(3)设置Code Composer Studio为Emulator方式参见“Code Composer Studio入门实验”相关部分。(4)启动Code Composer Studio双击桌面上“CCS 2(C6000)”图标,启动Code Composer Studio。成功后可看到CCS环境界面。2打开工程:工程目录C:ICETEK-DM642-EDULabLab532-VideoJPEG23浏览工程中源程序并理解含义。4编译、连接、下载并运行程序,观察显示结果。5加载C:ICETEK-DM642-EDULabLab532-VideoJPEG2目录中的JPEG2.gel6选择菜单“GEL”-“JPEG2: 修改帧率和压缩质量”-“ChangeParameters”。7修改帧传输率:在“Frame ratio”项中输入比例数8,即将原来30帧/秒的帧率改为30/8=3.75帧/秒,单击“Execute”,可观察到图像传输帧率降低。再将此值改回1。8修改压缩质量:在“Quality”项中输入压缩质量,取值在1到100之间,默认值为75,100质量最好,1最差,观察图像质量的改变。9结束运行,退出工程。五实验结果程序将摄入的视频图像首先进行编码,产生JPEG压缩图,再由解码程序处理此压缩图,并生成解压缩图像送显示设备显示。如果将帧传输率及压缩质量降低,则图像质量降低。六实验要求1. 掌握JPEG2000编码解码知识;2. 记录实验数据,至少两组。七实验思考题2. 改变压缩比率,图像质量如何变换?3. 图像传输帧率降低,人眼能否查觉?为什么?4. JPEG2000应用了哪些数据压缩方法?实验五 H.264/AVC编码解码一实验目的1. 学习使用JM7.6测试模型来对图像序列进行处理。2. 掌握JM7.6测试模型里设置文件中的相关参数对H.264/AVC编码解码的影响。3. 了解H.264/AVC视频标准的编解码原理。二实验设备计算机,JM7.6测试模型。三实验原理在VC环境下运行JM7.6测试模型,对如container.qcif、suzie.qcif等标准视频序列进行编码解码。程序首先对视频序列进行编码,产生H.264码流,并输出处理后的H.264格式的视频。1数据流图NALFn当前Fn-1参考Fn重建变换量化重排序熵编码逆变换反量化运动估计运动补偿帧内预测选择帧内预测滤波器+P帧间帧内Dn+XuFn+-DnH.264/AVC视频编码器原理框图2数据流程:(1)输入设备提供的一帧图像被采集到输入缓存。(2)对数据进行变换、量化,并对变换量化后的数据进行以下处理:A:进行重排序、熵编码,送到网络自适应层。B:反变换、反量化,用来重建图像。(3)对P、B帧进行帧间预测进行运动补偿处理。(4)对I帧进行帧内预测处理。(5)重建当前帧。(6)继续处理下一帧图像。四实验步骤1. 运行VC+,打开lencode.dsw;2. 打开编码器端的配置文件名:encorder.cfg,可以看到下面这些内容:# Files#InputFile = foreman_cif.yuv # Input sequence, YUV 4:2:0InputHeaderLength = 0 # If the inputfile has a header, state its length in byte here FramesToBeEncoded = 15 # Number of frames to be codedPictureRate = 15 # Picture Rate per second (1-100)SourceWidth = 352 # Image width in Pels, must be multiple of 16SourceHeight = 288 # Image height in Pels, must be multiple of 16TraceFile = trace_enc.txtReconFile = test_rec.yuvOutputFile = test.264#说明:上面这些内容为输入的视频序列名称,编码帧数,帧率及视频的大小,输出文件等,其中输入视频序列及输出文件可做相应的修改。# Encoder Control#IntraPeriod = 0 # Period of I-Frames (0=only first)IDRIntraEnable = 0 # Force IDR Intra (0=disable 1=enable)QPFirstFrame = 28 # Quant. param for first frame (intra) (0-51)QPRemainingFrame = 28 # Quant. param for remaining frames (0-51)FrameSkip = 0 # Number of frames to be skipped in input (e.g 2 will code every third frame)UseHadamard = 1 # Hadamard transform (0=not used, 1=used)SearchRange = 16 # Max search rangeNumberReferenceFrames = 1 # Number of previous frames used for inter motion search (1-5)MbLineIntraUpdate = 0 # Error robustness(extra intra macro block updates)(0=off, N: One GOB every N frames are intra coded)RandomIntraMBRefresh = 0 # Forced intra MBs per pictureInterSearch16x16 = 1 # Inter block search 16x16 (0=disable, 1=enable)InterSearch16x8 = 1 # Inter block search 16x8 (0=disable, 1=enable)InterSearch8x16 = 1 # Inter block search 8x16 (0=disable, 1=enable)InterSearch8x8 = 1 # Inter block search 8x8 (0=disable, 1=enable)InterSearch8x4 = 1 # Inter block search 8x4 (0=disable, 1=enable)InterSearch4x8 = 1 # Inter block search 4x8 (0=disable, 1=enable)InterSearch4x4 = 1 # Inter block search 4x4 (0=disable, 1=enable)#说明:上面这些内容为编码的控制参数,可以修改量化步长,搜索范围,参考帧数,Hadamard变换以及各种帧间搜索块等,这些参数都可以进行修改。# B Frames#NumberBFrames = 0 # Number of B frames inserted (0=not used) QPBPicture = 30 # Quant. param for B frames (0-51)DirectModeType = 0 # Direct Mode Type (0:Temporal 1:Spatial)DirectInferenceFlag = 0 # Direct Inference Flag (0: Disable 1: Enable)#说明:上面这些面内容为B帧的编码参数,量化步长等,亦可以做相应的修改。# Search Range Restriction / RD Optimization #RestrictSearchRange = 2 # restriction for (0: blocks and ref, 1: ref, 2: no restrictions)RDOptimization = 1 # rd-optimized mode decision (0:off, 1:on, 2: with losses)LossRateA = 0 # expected packet loss rate of the channel for the first partition, only valid if RDOptimization = 2LossRateB = 0 # expected packet loss rate of the channel for the second partition, only valid if RDOptimization = 2LossRateC = 0 # expected packet loss rate of the channel for the third partition, only valid if RDOptimization = 2NumberOfDecoders = 2 # Numbers of decoders used to simulate the channel, only valid if RDOptimization = 2RestrictRefFrames = 0 # Doesnt allow reference

温馨提示

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

评论

0/150

提交评论