第十章项目实践.docx

上传人:牧羊曲112 文档编号:1740886 上传时间:2022-12-16 格式:DOCX 页数:47 大小:448.41KB
返回 下载 相关 举报
第十章项目实践.docx_第1页
第1页 / 共47页
第十章项目实践.docx_第2页
第2页 / 共47页
第十章项目实践.docx_第3页
第3页 / 共47页
第十章项目实践.docx_第4页
第4页 / 共47页
第十章项目实践.docx_第5页
第5页 / 共47页
点击查看更多>>
资源描述

《第十章项目实践.docx》由会员分享,可在线阅读,更多相关《第十章项目实践.docx(47页珍藏版)》请在三一办公上搜索。

1、多媒体技术项目实践项目实践一 Huffman编码一、实验目的与要求1、实验目的(1)掌握哈夫曼编码原理。(2)理解数据压缩的实现过程。2、实验要求根据哈夫曼编码算法,对下列信源实现哈夫曼编码。求出编码后的平均码长。二、实验内容与步骤1、实验内容对上面信源进行哈夫曼编码。显示出每个符号的分配代码及平均码长。2、实验步骤(1)初始化,根据符号概率的大小按由大到小顺序对符号进行排序。 (2)把概率最小的两个符号组成一个节点。(3)重复步骤(1)(2),直到概率和为1(4)从根节点开始到相应于每个符号的“树叶”,概率大的标“0”,概率小的标“1”(5)从根节点开始,对符号进行编码。三、实验成果1、哈夫

2、曼编码程序。2、实验报告。项目实践二 DCT变换编码一、实验目的与要求1、实验目的(1)掌握DCT变换编码原理。(2)理解DCT变换的实现过程。2、实验要求 现有一张320240的图像一张,要求对其进行 DCT变换。二、实验内容与步骤1、实验内容对320240的图像进行 DCT变换2、实验步骤步骤一、分块将每个分量图像分成许多88=64个样点组成的像块,并对其采样,得到在空域中的88的样值矩阵。 步骤二、 变换利用FDCT公式,将空域中的88样值矩阵,正向变换(FDCT)为频域中的88 DCT系数矩阵。 步骤三、 关于FDCT变换的几点说明 (1)f(x,y)为空域中位置为(x,y)点的样值函

3、数(x,y=0,1,7)。 (2)F(u,v)为频率域中频率位置为(u,v)点的DCT系数(u,v=0,1,7)。 (3)沿u,v方向频率增加,但是07并不特指某一频率(可视为小的频率域)。 (4)F(0,0)对应直流分量,称为DC系数,其它63个对应交流分量的系数,称为AC系数。 (5)两个空间的同位置系数无对应关系。 (6)在频域中的右下角对应高频部分,而在左上角对应低频部分(特点,相关性)。 步骤四、讨论(1) DC系数的构成: 当u,v0时, C(U)=C(V)=1/2 , 有: 可见DC系数为空域中64个样值的平均值(对8的)。 (2) AC系数的构成: 当u,v0时, C(U)=C

4、(V)=1 每个AC系数为空域中64个样值分别乘以对应的余弦量后求和,再取平均。 (3)DCT系数的取值范围:在视频数字化中,由于采用8位量化,在空域中的样值的最大值应为256,所以 F(0,0)MAX=DCMAX=25664/8=2048 故:0DC2047 -1024AC1023 (4) DCT系数规律:低频系数值大,高频系数值小。步骤五、 DCT系数量化(1)量化的原因: DCT之后其系数矩阵中相关性不够明显,为进一步降低DCT系数矩阵中非零系数的幅值,增加零系数的个数,使相关性表现的更明显,需要进一步量化。 (2)量化的依据 对失真的要求:量化是图像质量下降的重要原因,DCT系数量化是

5、基于限失真编码理论进行的,容许有失真,但应在视觉容许的容限内。 对视觉的要求:亮度信号与色度信号的分辨能力不同; 对低频图像信号和高频图像信号的分辨能力不同。 (3)量化的方法 区域滤波法:采用对DCT系数矩阵中的每一个值逐一量化 。 三、实验成果1、写好实验报告。项目实践三 词典编码一、实验环境Turbo C二、实验目的与要求1.实验目的(1) 理解词典编码的思想。(2) 了解LZ77算法。(3) 掌握LZW算法。2.实验要求根据LZW算法原理对一段具体的字符进行编译。要求在编码过程中写出流程图,以便充分理解LZW算法原理,最终达到熟练应用。三、实验内容与步骤1.实验内容任意输入一段字符进行

6、编码。依据字典算法的步骤,写出字符编码的流程图。 2.实验步骤进入Tubor C编译环境。在编译环境下输入词典的编码算法。(参考程序) #include void copy1(char *prefix,char *s,int i,int j) /*拷贝字符串*/ int k; for(k=0;k20;k+) /*将前缀字符串清空*/ prefixk=; for(k=i;ki+j;k+) prefixk-i=sk; /* printf(aplght is:%d-%cn,k-i,prefixk-i);*/ main() char s30, prefix30,dic2030=A,B,C,c20; i

7、nt i,j,k,n,t,m; /*k指字典中的编号,m指匹配号码,j指截取字母的长度*/ k=3; m=0;j=1; i=0; printf(please input string:n); gets(s); while(istrlen(s) copy1(prefix,s,i,j); /*读取字符的长度*/ for(n=0;nk;n+) /*查找字典中的编号*/ /* printf(prefix=%s ,prefix); printf(dic3=%s ,dicn); */ if(strcmp(prefix,dicn)=0) j=j+1; m=n; if(i+j)16)-128)#define

8、Cb(R,G,B)(BYTE)(CbRtab(R)+CbGtab(G)+CbBtab(B)16)#define Cr(R,G,B)(BYTE)(CrRtab(R)+CrGtab(G)+CrBtab(B)16)#define writebyte(b) fputc(b),fp_jpeg_stream)#define writeword(w) writebyte(w)/256) ;writebyte(w)%256) ;-/JGLOBALS. Hstatic BYTE bytenew=0; / The byte that will be written in the JPG file static S

9、BYTE bytepos=7; /bit position in the byte we write (bytenew)/should be=0 static WORD maskl6 = l, 2, 4, 8, 16, 32, 64,128, 256, 512,1024, 2048, 40%, 8192,16384, 32768;/ The Huffman tables well use: static bitstring YDC_HTl2; static bitstring CbDC_HTl2; static bitstring YAC_HT256; static bitstring CbA

10、CJtT256;static BYTE *category_alloc;static BYTE *category; /Here well keep the category of the numbers in range: -32767. 32767static bitstring *bitcode_alloc;static bitstring *bitcode; / their bitcoded representation/Precalculated tables for a faster YCbCr- RSB transformation/ We use a SDWORD table

11、because we*11 scale values by 216 and work with integersstatic SDTORD YRtab256,YGtab256,YBtab256; static SDWORD CbRtab256, CbGtab256, CbBtab256; static SDWORD CrRtab256, CrGtab256, CrBtab256; static float fdtbl_Y64;static float fdtbl_Cb64; /the same with the fdtbl_Cr64colorRGB *RGB_buffer; /image to

12、 be encodedWORD Ximage, Yimage;/ image dimensions divisible by 8static SBYTE YOU64; / This is the Data Unit of Y after YCbCr-RGB transformationstatic SBYTE CbDU64;static SBYTE CrDU64;static SWORD DU_DCT64; / Current DU (after DCT and quantization) which well zigzagstatic SWORD DU64; /zigzag reordere

13、d DU which will be Huffman codedFILE *fp_jpeg_stream;-/ JTABLES. Hstatic BYTE zigzag64 = 0, 1, 5, 6,14,15,27,28,2, 4, 7,13,16,26,29,42,3, 8,12,17, 25, 30, 41,43,9,11,18,24,31,40,44,53,10, 19, 23, 32, 39, 45, 52, 54,20. 22, 33, 38, 46, 51, 55, 60,21. 34, 37, 47, 50, 56, 59, 61, 35, 36, 48, 49, 57, 58

14、, 62, 63 ;/* These are the sample quantization tables given in JPEG spec section K. 1. The spec says that the values given produce good quality, and when divided by 2, very good quality.*/static BYTE std_luminance_qt64 = 16, 11, 10, 16, 24, 40, 51, 61, 12, 12, 14, 19, 26, 58, 60, 55, 14, 13, 16, 24,

15、 40, 57, 69, 56,14,17,22,29,51,87,80,62,18,22,37,56,68,109,103,77,24,35,55,64,81,104,113,92,49,64,78,87,103,121,120,101,72,92,95,98,112,100,103,99;static BYTE std_chrominance_qt 64= 17.18,24,47,99,99,99,99,18.21,26,66,99,99,99,99,24,26,56,99,99,99,99,99,47,66,99,99,99,99,99,99,99,99,99,99,99,99,99,9

16、9,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99;/ Standard Huffman tables (cf. JPEG standard section K. 3) */ static BYTE std_dc_luminance_nrcodesl7=0f 0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0 ; static BYTE std_dc_luminance_values 12 = (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 ; static BYTE std_dc_chrominance_nrcodesl7 = 0, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0 ; static BYTE std_dc_chrominance_valuesl2 = 0, 1, 2, 3, 4,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号