版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第10章图像压缩编码
图像编码的研究背景
——
通信方式改变带来的需求信息传输方式发生了很大的改变通信方式的改变
文字+语音图像+文字+语音通信对象的改变
人与人人与机器,机器与机器图像编码的研究背景
——
通信方式改变带来的需求由于通信方式和通信对象的改变带来的最大问题是:
传输带宽、速度、存储器容量的限制。给我们带来了一个难题,也给了我们一个机会:
如何用软件的手段来解决硬件上的物理极限。图像编码的研究背景
——
海量数据带来的需求数码图像的普及,导致了数据量的庞大。图像的传输与存储,必须解决图像数据的压缩问题。彩色视频数据量分析对于电视画面的分辨率640*480的彩色图像,每秒30帧,则一秒钟的数据量为:
640*480*24*30=221.12M播放时,需要221Mbps的通信回路。
彩色视频数据量分析实时传输:在10M带宽网上实时传输的话,需要压缩到原来数据量的0.045,即1.08bit/pixel。存储:
(按1张光盘可存640M计算)如果不进行压缩,1张CD则仅可以存放2.89秒的数据。存2小时的信息则需要压缩到原来数据量的0.0004,即:0.003bit/pixel。传真数据量分析如果只传送2值图像,以200dpi的分辨率传输,一张A4稿纸的数据量为:
1654*2337*1=3888768bit=3900K按14.4K的电话线传输速率,需要传送的时间是:270秒(4.5分)
图像通信系统模型图像信息源图像预处理图像信源
编码信道编码调制信道传输解调信道解码图像信源
解码显示图像讨论的内容数据的冗余图像压缩编码简介行程编码Huffman编码DCT变换编码混合编码数据的冗余——
基本概念我们从一个互动游戏来体会数据冗余的概念。在下面的例子中,用一种最好的方式来发送一封电报。数据的冗余——
基本概念你的妻子,Helen,将于明天晚上6点零5分在上海的虹桥机场接你。
(23*2+10=56个半角字符)你的妻子将于明天晚上6点零5分在虹桥机场接你
(20*2+2=42个半角字符)
Helen将于明晚6点在虹桥接你
(10*2+6=26个半角字符)结论:只要接收端不会产生误解,就可以减少承载信息的数据量。数据冗余——描述上的冗余描述方式:
1)这是一幅2*2的图像,图像的第一个像素是红的,第二个像素是红的,第三个像素是红的,第四个像素是红的。
2)这是一幅2*2的图像,整幅图都是红色的。由此我们知道,整理图像的描述方法可以达到压缩的目的。1234图像冗余——数据冗余的压缩图像冗余无损压缩的原理RGBRGBRGBRGBRGBRGBRGBRGBRGBRGBRGBRGBRGBRGBRGBRGB16RGB从原来的16*3*8=384bits压缩为:(1+3)*8=32bits压缩比为:12:1图像冗余——数据冗余的压缩图像冗余有损压缩的原理36353434343434323434333730343434343434343435343431343434343434343434343434343434343434343434343434342534图像冗余
——
实际图像中的像素冗余
实际图像中冗余信息的表现(灰度图)图像冗余——视觉冗余的压缩图像的视觉冗余(彩色)
R
G
B2488822*2*2=242=16,777,216(248,27,4)(251,32,15)(248,27,4)(248,27,4)
图像编码与压缩从本质上来说就是对要处理的图像源数据按一定的规则进行变换和组合,从而达到以尽可能少的代码(符号)来表示尽可能多的数据信息,压缩通过编码来实现,或者说编码带来压缩的效果,所以一般把此项处理称之为压缩编码。
图像压缩编码的可能性
数据是用来表示信息的,如果不同的方法为表示给定量的信息使用了不同的数据量,那么使用较多数据量的方法中,有些数据必然是代表了无用的信息,或者是重复地表示了其他数据已经表示的信息,这就是数据冗余的概念。由于图像数据本身固有的冗余性和相关性,使得将一个大的图像数据文件转换成较小的图像数据文件成为可能,图像数据压缩就是要去掉信号数据的冗余性,一般来说,图像数据中存在着以下几种冗余:
(1)空间冗余(像素间冗余、几何冗余):这是图像数据中所经常存在的一种冗余。在同一幅图像中,规则物体和规则背景(所谓规则是指表面是有序的而不是完全杂乱无章的排列)的表面物理特性具有相关性,这些相关性的光成像结果在数字化图像中就表现为数据冗余。(2)时间冗余:在序列图像(电视图像、运动图像)中,相邻两帧图像之间有较大的相关性。如图所示,Fl帧中有一个小汽车和一个路标,在时间T后的F2图像中仍包含以上两个物体,只是小车向前行驶了一段路程,此时F1和F2中的路标和背景都是时间相关的,小车也是时间相关的,因而F2和Fl具有时间冗余。
(a)F1帧
(b)F2帧时间冗余示例(3)信息熵冗余:也称为编码冗余,如果图像中平均每个像素使用的比特数大于该图像的信息熵,则图像中存在冗余,称为信息熵冗余。(4)结构冗余:有些图像存在较强的纹理结构,如墙纸、草席等图像,称之存在结构冗余。(5)知识冗余:有许多图像的理解与某些基础知识有相当大的相关性,例如人脸的图像有固定的结构,比如说嘴的上方有鼻子,鼻子的上方有眼睛,鼻子位于正脸图像的中线上等等,这类规律性的结构可由先验知识和背景知识得到,称此类冗余为知识冗余。(6)心理视觉冗余:人类的视觉系统对于图像场的注意是非均匀和非线性的,特别是视觉系统并不是对于图像场的任何变化都能感知,即眼睛并不是对所有信息都有相同的敏感度,有些信息在通常的视觉感觉过程中与另外一些信息相比来说并不那么重要,这些信息可认为是心理视觉冗余的,去除这些信息并不会明显地降低所感受到的图像的质量。心理视觉冗余的存在是与人观察图像的方式有关的,人在观察图像时主要是寻找某些比较明显的目标特征,而不是定量地分析图像中每个像素的亮度,或至少不是对每个像素等同地分析,人通过在脑子里分析这些特征并与先验知识结合以完成对图像的解释过程,由于每个人所具有的先验知识不同,对同一幅图像的心理视觉冗余也就因人而异。
图像压缩原理由于一幅图像存在数据冗余和主观视觉冗余,所以压缩方式就可以从这两方面着手开展。改变图像信息的描述方式,以压缩掉图像中的数据冗余。忽略一些视觉不太明显的微小差异,以压缩掉图像中的视觉冗余。图像的压缩编码第一代压缩编码
八十年代以前,主要是根据传统的信源编码方法。第二代压缩编码
八十年代以后,突破信源编码理论,结合分形、模型基、神经网络、小波变换等数学工具,充分利用视觉系统生理心理特性和图像信源的各种特性。图像的压缩编码像素编码变换编码预测编码位平面编码增量调制熵编码算术编码DCT变换DPCM调制第一代压缩编码其他编码行程编码图像的压缩编码子带编码模型编码分层编码分型编码第二代压缩编码
图像压缩编码的系统评价
在图像编码中,编码质量是一个非常重要的概念,怎样以尽可能少的比特数来存储或传输一幅图像,同时又让接收者感到满意,这是图像编码的目标。对于图像编码的质量评价主要体现在基于压缩编码参数的评价、基于保真度(逼真度)准则的评价、算法的适用范围、算法的复杂度等四个方面。
压缩比:压缩比是衡量数据压缩程度的指标之一,到目前为止,尚无压缩比的统一定义,目前常用的压缩比定义为:
其中:为源代码长度;为压缩后的代码长度。
压缩比的物理意义是被压缩掉的数据占源数据的百分比,一般的讲,压缩比大,则说明被压缩掉的数据量多,当压缩比接近100%时,压缩效率最理想。
保真度
在图像压缩编码中,解码图像与原始图像可能会有差异,因此,需要评价压缩后图像的质量。描述解码图像相对原始图像偏离程度的测度一般称为保真度(逼真度)准则。常用的准则可分为两大类:客观保真度准则和主观保真度准则。
(1)客观保真度准则
最常用的客观保真度准则是原图像和解码图像之间的均方根误差和均方根信噪比两种,令f(x,y)表示原图像,表示f(x,y)先压缩又解压缩后得到的的近似,对任意x和y,f(x,y)和之间的误差定义为:
若f(x,y)和均为M×N,则它们之间的均方根误差为:
如果将看做原始图像f(x,y)和噪声图像e(x,y)的和,则解压缩图像的均方信噪比为:
若对上式求平方根,则得到均方根信噪比。
实际使用时,常将归一化并用分贝(dB)表示,令
则有
若令,x=0,1,…,M-1,y=0,1,…,N-1,则可以得到峰值信噪比PSNR(2)主观保真度准则尽管客观保真度准则提供了一种简单方便的信息损失的方法,但是很多解压图像最终是供人观看的,有时单用某一个或几个解析式来度量图像品质,甚至得到与主观评估相反的结果,这样就造成采用这些解析公式得到的定量的逼真度的可信度低,造成逼真度不能从理论上完满解决的根本原因在于人眼视觉感知得到的信息传输到神经系统的处理、判别过程不清楚,而这又涉及到生物物理学、
生物化学以及生态光学等领域的成就,至今还不能提供这一过程的满意回答(这也是当今计算机视觉的一个前沿课题,目前正在研究发展中)。鉴于这样的原因,目前对图像品质的度量仍停留在主观评估上。所谓主观评估就是聘请一些‘外行’或专家,通过对图像的观察来判别好坏。因而这是一种定性的评估。算法的适用范围特定的图像编码算法具有其相应的适用范围,并不对所有的图像都有效。一般说来,大多数基于图像信息统计特性的压缩算法具有较广的适用范围,而一些特定的编码算法的适用范围较窄,如分形编码主要用于自相似性高的图像;某些算法(如基于对象的图像压缩编码方案),只能用于特定图像场景(如人的头肩像场景)的压缩。算法的复杂度算法的复杂度即指完成图像压缩和解压缩所需的运算量和硬件实现该算法的难易程度。优秀的压缩算法要求有较高的压缩比,压缩和解压缩快,算法简单,易于硬件实现,还要求解压缩后的图像质量较好。选用编码方法时一定要考虑图像信源本身的统计特性、多媒体系统的适应能力、应用环境以及技术标准。
行程编码(RLE编码)——基本概念行程编码是一种最简单的,在某些场合是非常有效的一种无损压缩编码方法。虽然这种编码方式的应用范围非常有限,但是因为这种方法中所体现出的编码设计思想非常明确,所以在图像编码方法中都会将其作为一种典型的方法来介绍。
行程编码——
基本原理通过改变图像的描述方式,来实现图像的压缩。将一行中灰度值相同的相邻像素,用一个计数值和该灰度值来代替。行程编码——
实现方法
举例说明:a=100,b=1,c=23,d=254
aaaa
bbb
cc
d
eeeee
fffffff
432157
(共22*8=176bits)
4a3b2c1d5e7f
(共12*8=96bits)
压缩比为:176:96=1.83:1行程编码——传真中的应用方法传真件中一般都是白色比较多,而黑色相对比较少。所以可能常常会出现如下的情况:
500W3b470w12b4w
3b3000w
上面的行程编码所需用的字节数为:因为:2048<3000<4096
所以:计数值必须用12bit来表示行程编码——传真中的应用方法对于:500W3b470w12b4w
3b3000w
编码为:500,3,570,12,4,3,3000
编码位数为:12,12,12,12,12,12,12需要的数据量为:12*7=84bit压缩比为:168:84=2:1因为只有白或黑,而且排版中一定要留出页边距,因此,一般情况下,可以只传输计数值即可。行程编码——传真中的应用方法现在,根据传真件的特点,对其进行改进。既然已经可以预知白色多黑色少,所以可对白色和黑色的计数值采用不同的位数。以这个例子,可以定义:
白色:12bit,黑色:4bit
行程编码——传真中的应用方法编码为:500,3,470,12,4,3,3000
编码位数为:12,4,12,4,12,4,12所需字节数为:4*12+3*4=60bit压缩比为:168:60=2.8:1比原来的RLE方式168bit减少到了60bit,相当于又提高了压缩比为168/60=2.8:1
。二维行程编码——
基本概念二维行程编码要解决的核心问题是:
将二维排列的像素,采用某种方式转化成一维排列的方式。之后按照一维行程编码方式进行编码。二维行程编码——
数据排序如下图所示,是两种典型的二维行程编码的排列方式:(a)(b)二维行程编码——例例:数据量:64*8=512(bit)二维行程编码——例
如果按照行扫描的顺序排列的话,数据分布为:130,130,130,129,134,133,129,130;130,130,130,129,134,133,130,130;
130,130,130,129,132,132,130,130;129,130,130,129,130,130,129,129;127,128,127,129,131,129,131,130;127,128,127,128,127,128,132,132;125,126,129,129,127,129,133,132;127,125,128,128,126,130,131,131二维行程编码——例一维行程编码后为:(3,130),(1,129),(1,134),(1,133),(1,129),(4,130),(1,129),(1,134),(1,133),(5,130),(1,129),(2,132),(2,130),(1,129),(2,130),(1,129),(2,130),(2,129),(1,127),(1,128),(1,127),(1,129),(1,131),(1,129),(1,131),(1,130),(1,127),(1,128),(1,127),(1,128),(1,127),(1,128),(2,132),(1,125),(1,126),(2,129),(1,127),(1,129),(1,133),(1,132),(1,127),(1,125),(2,128),(1,126),(1,130),(2,131)数据量为:46*(3+8)=506(bit)压缩比为:512:506=1.01:1二维行程编码——例如果按照列扫描的顺序排列的话,数据分布为:130,130,130,129,127,127,125,127;130,130,130,130,128,128,126,125;130,130,130,130,127,127,129,128;129,129,129,129,129,128,129,128;134,134,132,130,131,127,127,126;133,133,132,130,129,128,129,130;129,130,130,129,131,132,133,131;130,130,130,129,130,132,132,131二维行程编码——例一维行程编码为:数据量为:42*(3+8)=462(bit)压缩比为:512:462=1.11:1(3,130),(1,129),(2,127),(1,125),(1,127),(4,130),(2,128),(1,126),(1,125),(4,130),(2,127),(1,129),(1,128),(5,129),(1,128),(1,129),(1,128),(2,134),(1,132),(1,130),(1,131),(2,127),(1,126),(2,133),(1,132),(1,130),(1,129),(1,128),(1,129),(1,130),(1,129),(2,130),(1,129),(1,131),(1,132),(1,133),(1,131),(3,130),(1,129),(1,130),(2,132),(1,131)二维行程编码——例如果按照方式(a)扫描的顺序排列的话,数据分布为:130,130,130,130,130,130,130,130;130;129,129,129,129,130,130,129;127,128,127,129,131,130,132,134;134;133,133,132,130,129,128,127;128,127,128,127,125,126,129,129;127,129,133,132,131,129,130,130;129,130,130,130,129,130,132,132;131,131,130,126,128,128,125,127二维行程编码——例一维行程编码为:数据量为:44*(3+8)=484(bit)压缩比为:512:484=1.06:1(7,130),(2,130),(4,129),(2,130),(1,129),(1,127),(1,128),(1,127),(1,129),(1,131),(1,130),(1,132),(2,134),(2,133),(1,132),(1,130),(1,129),(1,128),(1,127),(1,128),(1,127),(1,128),(1,127),(1,125),(1,126),(2,129),(1,127),(1,129),(1,133),(1,132),(1,131),(1,129),(2,130),(1,129),(3,130),(1,129),(1,130),(2,132),(2,131),(1,130),(1,126),(2,128),(1,125),(1,127)Huffman编码(熵编码)行程编码要获得好的压缩率的前提是有比较长的相邻像素的值是相同的。熵是指数据中承载的信息量。所谓的熵编码是指在完全不损失信息量前提下最小数据量的编码。Huffman编码——
基本原理为了达到大的压缩率,提出了一种方法就是将在图像中出现频度大的像素值,给一个比较短的编码,将出现频度小的像数值,给一个比较长的编码。Huffman编码——
基本原理例:
aaaa
bbb
cc
d
eeeee
fffffff
432157如果不进行特殊的编码,按照图像像素的描述,需要的数据量为:
22*8=176bits
Huffman编码——
基本原理
aaaa
bbb
cc
d
eeeee
fffffff
432157按照熵编码的原理进行编码:
f=0e=10a=110b=1111c=11100d=11101这里的编码规则是长短不一的异字头码Huffman编码——
基本原理
由:f=0e=10a=110b=1111c=11100d=11101
aaaabbbccdeeeeefffffff11011011011011111111111111100111001110110101010100000000
数据量:7*1+5*2+4*3+3*4+2*5+1*5=56bit压缩比为:176:56=3.14:1Huffman编码——
算法首先求出图像中灰度分布的灰度直方图;根据该直方图,对其按照分布概率从小到大的顺序进行排列;每一次从中选择出两个概率为最小的节点相加,形成一个新的节点,构造一个称为“Huffman树”的二叉树;对这个二叉树进行编码,就获得了Huffman编码码字。Huffman编码——
例例:对数据序列
aaaa
bbb
cc
d
eeeee
fffffff
其概率分布为:
a:4/22b:3/22c:2/22d:1/22e:5/22f:7/22
概率大小的排序为:
d,c,b,a,e,f
1/222/223/224/225/227/22Huffman编码——
例cbafe7/225/224/222/2210f=11e=01a=00b=101c=1001d=1000d1/223/226/2222/2213/229/223/2210101010Huffman编码——
压缩效率对这个例子,计算出经过Huffman编码后的数据为:
10101010001001001000100010000111111111101010101010101
共7*2+5*2+4*2+3*3+2*4+1*4=53bit压缩比为176:53=3.32:1Huffman编码——
图像压缩中的应用我们知道,对一幅图像进行编码时,如果图像的大小大于256时,这幅图像的不同的码字就有可能是很大,例如极限为256个不同的码字。这时如果采用全局Huffman编码则压缩效率不高。甚至有可能与原来的等长编码的数据量相同。
Huffman编码——
图像压缩中的应用
常用的且有效的方法是:将图像分割成若干的小块,对每块进行独立的Huffman编码。例如:分成
的子块,就可以大大降低不同灰度值的个数(最多是64而不是256)。Huffman编码——
图像压缩中的应用8*8分块的编码压缩比为2.12:116*16分块的编码压缩比为1.64:1全图的编码压缩比为1.09:1变换编码——
问题的提出行程编码与Huffman编码的设计思想都是基于对信息表述方法的改变,属于无损压缩方式。虽然无损压缩可以保证接收方获得的信息与发送方相同,但是其压缩率一定有极限。因此,采用忽略视觉不敏感的部分进行有损压缩是提高压缩率的一条好的途径。
变换编码——
设计思想变换编码
就是将原来空间域上描述的图像信号,通过一种数学变换,变换到变换域中进行描述,达到改变能量分布的目的。
将图像能量在空间域的分散分布变为在变换域的能量的相对集中分布,达到去除相关的目的,再经过适当的方式量化编码,进一步压缩图像。
信息论研究表明,正交变换不改变信源的熵值,变换前后图像的信息量并无损失,完全可以通过反变换得到原来的图像值。
但统计分析表明,图像经过正交变换后,把原来分散在原空间的图像数据在新的坐标空间中得到集中,对于大多数图像,大量的变换系数很小,只要删除接近于0的系数,并且对较小的系数进行粗量化,而保留包含图像主要信息的系数,以此进行压缩编码。变换编码——
设计思想变换编码——
方法正交变换逆变换原图像除以量化系数取整1)编码过程:2)解码过程:压缩图像乘以量化系数取整压缩图像解压图像变换的选择
理论上,K-L变换是最有的正交变换,它能完全消除子图像块内像素间的线性相关性。但K-L变换的基对不同图像是不同的,这种不确定性使其应用不方便。
DCT变换的性能仅次于K-L变换,所以被认为是一种准最佳变换。而且DCT变换矩阵与图像内容无关,也有快速算法,所以二维DCT在图像编码中常常被使用。
沃尔什变换与DCT变换相比,算法简单,速度快,适用于高速实时系统以及硬件实现,但性能比DCT差一些。子图像尺寸的选择在实用中变换编码并不是对整幅图像进行变换和编码,而是将图像分成若干个nxn的子图像后分别处理,原因有:
小图像的变换计算容易;
距离较远的像素之间的相关性比距离较近的像素之间的相关性小。
实践证明,子图像取4x4,8x8,16x16适合图像的压缩,这是因为:
如果子图像尺寸取得太小,虽然计算速度快,实现简单,但压缩能力有限;
如果子图像尺寸取得太大,虽然去相关效果好,但由于图像本身的相关性很小,反而使其压缩效果不明显,而且增加了计算的复杂度。变换系数的选择
对图像经过变换后,保留变换后的哪些系数用作编码和传输将直接影响信号恢复的质量,变换系数的选择原则是保留能量集中的、方差大的系数。
系数选择通常有:
变换区域编码;
变换阈值编码变换区域编码
对设定形状的区域内的变换系数进行量化编码就,区域外的系数被舍去;
变换后的系数较大的会集中在区域的左上部,即低频分量都集中在此部分,保留的也是这一部分。其他部分的系数被舍去,在恢复信号时再对它们补0;
由于保留了大部分图像信号能量,恢复信号后,其质量不会产生显著变化;
变换区域编码的明显缺陷,是高频分量的完全丢失。变换阈值编码变换阈值编码是根据实际情况设定某一大小幅度的阈值,若变换系数超过该阈值,则保留这些系数进行编码传输,其余的补0;
多数低频成分被编码输出,少数超过阈值的高频成分也将被保留进行编码输出;
需要解决两个问题:
需要增加“地址”编码比特数,码率较高;
“阈值”需要通过实验来确定,复杂度较高。DCT变换案例分析:cr=0.5;initialimage=imread('baboon512x512.bmp');imshow(initialimage);initialimage=double(initialimage);t=dctmtx(8);dctcoe=blkproc(initialimage,[8,8],'P1*x*P2',t,t');coevar=im2col(dctcoe,[8,8],'distinct');coe=coevar;[y,ind]=sort(coevar);[m,n]=size(coevar);sum=64-64*cr;fori=1:ncoe(ind(1:sum),i)=0;endb2=col2im(coe,[8,8],[512,512],'distinct');i2=blkproc(b2,[8,8],'P1*x*P2',t',t);i2=uint8(i2);figureimshow(i2)原图DCT压缩后DCT变换编码——
例Huffman:42bits;压缩比为3.05:1Huffman:16bits;压缩比为:8:1例:原图像为:DCT变换除以量化系数,取整DCT变换编码——
例图原图解压图混合编码——
设计思想每一种编码方式都有其擅长的一点,以及局限的一点,混合编码的思想就是将两种以上的编码方式的优点进行综合,达到提高编码效率的目的。混合编码——
可能性及有效性分析回顾一下讲过的几个内容的特点:行程编码:擅长于重复数字的压缩。Huffman编码:擅长于像素个数分布不均匀情况下的编码。DCT变换:擅长分离视觉敏感
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《sd教育训练》课件
- 晕针晕血的应急处理流程
- 物业消防安全检查表
- 管理培训班讲义
- 腹腔引流管的护理常规
- 课件田字格怎么做
- 《om共混改性》课件
- 人物课件教学课件
- 大学体育与健康 教案 咏春6
- 太阳能供热采暖系统设计
- 分布式屋顶光伏组件支架安装施工方案
- DB32∕T 4111-2021 预应力混凝土实心方桩基础技术规程
- 地铁运营车站保洁
- 小学 主题班会:中国民间故事(11张PPT)
- 全球各主要股指期权市场做市商制度比较研究
- 《口腔修复学(一)》教学大纲
- 砌体结构知识讲解
- 佛山纺织调查报告
- 六年级趣味数学活动课堂(课堂PPT)
- 液压破碎锤液压系统的设计与研究
- 百灵达X1622USB - X2222USB - X2442USB - 中文说明书 - 图文-
评论
0/150
提交评论