数字图像压缩编码方法的研究_第1页
数字图像压缩编码方法的研究_第2页
数字图像压缩编码方法的研究_第3页
数字图像压缩编码方法的研究_第4页
数字图像压缩编码方法的研究_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

1、安徽财经大学(图像处理课程论文)题目:数字图像压缩编码方法的研究学 院:管理科学与工程学院专 业:电子信息工程姓 名:付帅学 号:20122780电 话:课教师:许晓丽论文成绩:2015年10月数字图像压缩编码方法的研究摘 要:随着各种现代化技术地不断发展,数字图像的数据压缩在数字图像传输中发挥着关键性的作用。为了方便对各种压缩方法的进行研究、实现和比较,根据图像的信息在编码中是否有损失将数字图像编码分为有损压缩和无损压缩。设计以matlab为仿真工具,利用信源概率不相等的特性来去掉图像的冗余以及用不等长的码字来对信源进行无损压缩编码。而运用某种变换去掉数字图像在空间

2、和时间上的相关性对信源进行有损压缩编码。利用DCT变换和huffman编码对图像的信源进行JEPG编码。为了更好地研究和实现各种压缩方法并将这些方法用于教学,又设计了一个GUI界面,将全部的压缩编码的方法结合在一起。在设计GUI时,要特别注意用handles来进行数据间的传递和静态文本显示的细节。关键词:数字图像;压缩编码;matlab1 研究背景1.1 引言随着各种现代化技术的不断发展,图像信息已变为众多领域重要的处理对象,怎样充分利用信道和具有一定带宽的信道下传输有用的图像信息的问题就出现了。对原始图像进行存储、记录和传输为其提供了可能,那么必须对数字图像的信息进行有效的压缩。因此,对图像

3、压缩技术的研究和实现在数字图像传输中发挥着关键性的作用。1.2 数字图像压缩编码的分类为了方便对各种压缩方法的研究和比较,根据图像的信息在编码中是否有损失将数字图像编码分为有损压缩和无损压缩1。分类如图1所示:图1 图像压缩的分类图无损压缩就是主要是利用信源概率不相等的特性来去掉图像的冗余以及用不等长的码字来对信源进行编码。有些失真是人眼所不能察觉的,有损压缩就是利用人眼的这一视觉特性来进行压缩的。有损压缩是运用某种变换去掉数字图像在空间和时间上的相关性对信源进行编码。为了解决如何从各种图像压缩算法中选择正确的算法处理实际的压缩问题,就必须对各种压缩方法的性能进行评价。1.3 图像压缩技术的性

4、能指标这里主要用均方根误差和压缩比的大小来比较各种压缩编码方法的性能。也可用编码效率、平均码字长度、冗余度。(1)均方根误差erms主要是通过计算原始图像数据和解码后图像数据之间的差异,来体现经压缩编码方法的准确性,其计算公式如(1)如下: (1)其中,和分别表示原始图像和解码后的图像。(i=1,2,3,4.,N,j=1,2,3,4.,M)(2)压缩比cr:其计算式如公式(2)所示: (2)用其大小来反映压缩编码方法的压缩效果。其中,(压缩后图像数据大小)小于(压缩后图像数据大小)的压缩编码方法才是有意义的,则cr要小于1。1.4 研究内容这里主要是对有损压缩和无损压缩编码方法进行分类研究。并

5、设计以matlab为仿真工具,利用信源概率不相等的特性来去掉图像的冗余以及用不等长的码字来对信源进行无损压缩编码。而运用某种变换去掉数字图像在空间和时间上的相关性对信源进行有损压缩编码。利用DCT变换和huffman编码对图像进行JEPG编码。在仿真软件matlab中用相应的函数计算均方根误差erms、原始图像数据大小和压缩后数据大小,通过利用公式计算cr以便衡量压缩编码的性能。将各种数据绘制成表格加以比较,总结出不同图像所适合的压缩编码。为了将各种压缩编码的方法应用于教学和锻炼自己对GUI的认识及编程能力,又创建了一个GUI界面将各种压缩编码的实现集合此。2 无损压缩编码的研究和实现 2.1

6、 行程编码RLE(Run Length Encoding)行程是指具有相同灰度值的像素序列,其编码思想就是去除掉像素空间冗余,即用行程的行程和灰度的长度来替换行程本身2。例如:编码前:hhhhhbbmmmmmm 编码后:h5b2m6行程编码如图2所示:图2 行程编码系统图对于行程编码的研究,这里选用大小为像素、灰度级为256的cameraman图像,对其进行行程编码来实现图像压缩的目的。其中采用RLEncode函数对图像进行压缩,而用RLEdecode函数对压缩图像进行复原。显示原始图像和解压后的图像、用size函数计算的原始图像数据和压缩后数据大小、均方根误差erms,通过利用公式计算cr。

7、对大小为像素、灰度级为256的cameraman图像进行行程编解码结果如图3所示,在其编码的程序中,添加display(e)语句使其显示cameraman图像的压缩编码,可得部分编码如下:(1 150),(1 153),(1 152),(1 151),(1 150),(1 151),(1 156),(1 154),(2 151),(1 149),(1 154),(1 152),(1 153),(1 152),(3 149),(2 151)此处是对灰度图进行行程编码的,由于灰度图的灰度值不像二值化图像只有0和1,而cameraman图像没有白色的部分就没有灰度值为0,则其编码中含除了1以外的灰度

8、值。其编解码结果如图3所示图3 cameraman图像进行行程编码结果图由图3可得:=112224,=65536,则压缩比=1.7127。对大小为像素、灰度级为256的cameraman图像先进行黑白二值化再行程编解码结果如图4所示,在其编码的程序中,添加display(e)语句使其显示二值化cameraman的压缩编码,可得部分编码如下: (1 158),( 0 8),( 1 2),( 0 1),(1 1),( 0 3),(1 1),(0 1),( 1 2),( 0 1),( 1 40),( 0 1),( 1 14),( 0 1),( 1 12),( 0 1)此处是将灰度图转换为黑白二值化图

9、像再进行行程编码的,由于黑白二值化的灰度值只有0和1,则其编码只含有0和1的灰度值。图4 黑白二值化cameraman图像进行行程编码结果图由图4可得:=6802,=65536,则压缩比=0.10379。为了方便比较两种行程编码,将以上两种结果的数据列在表1中,表1如下所示:表1 对灰度图像和二值化图像进行行程编码结果的数据比较表图像原始图像数据大小压缩后数据大小均方根误差erms压缩比cr灰度图6553611222401.7124二值化图像65536680200.10379由表1可以明显看出:均方根误差erms =0,则行程编码是一种无损压缩编码。对灰度图像进行行程编码后图像的大小与原始图像

10、大小相比,其需要更大的存储空间,没不到压缩图像的目的。而对二值化图像进行行程编码后图像的大小比原始图像小将近10倍,这样更有利于图像的存储和传输。则说明行程编码更适合于二值化图像和那些连续出现灰度级相同的图像。2.2 哈弗曼编码(Huffman)哈弗曼(Huffman)编码步骤可概括为大到小排列、相加(到只有一个信源符号为止)、赋码字、得huffman编码,以上均是对于信源符号概率而言的。Huffman编码,这里选用大小为像素、灰度级为256的coin图像,对其进行huffman编码来实现图像压缩的目的。其中采用huffncode函数对图像进行压缩,而用huffdecode函数对压缩图像进行复

11、原,显示原始图像和解压后的图像、用size函数计算的原始图像数据和压缩后数据大小、均方根误差erms,通过利用公式计算cr。对大小为像素、灰度级为256的boat图像进行huffman编解码可得5个概率最大的灰度值及其概率大小:M1(145,0.0213), M2(144,0.0209), M3(147,0.0208), M4(146,0.0207), M5(149,0.0195),用其对huffman编码的步骤进行说明,其编码过程如图5所示:图5 huffman编码过程图由图5可得:经过huffman编码后信源M1、M2、M3、M4、M5的码字分别为:01、10、00、111、011。由经过

12、编码的码字可得到huffman编码的特点:用短的码字对概率大的信源进行编码,而用较长的码字对概率小的信源进行编码。其运行结果如图6所示:图6 对boat图像进行huffman编解码结果图由图6可得:=58986,=65536,则压缩比=0.90005。由huffman编解码的运行结果数据可得表2如下所示:表2 对boat图像进行huffman编解码结果数据表编码原始图像数据大小压缩后数据大小均方根误差erms=压缩比crHuffman编码655365898600.90005由上表可得:均方根误差erms =0,则huffman编码为无损压缩编码。对boat进行huffman编码后的图像大小与原

13、始图像差不多,其压缩比接近于1,则huffman编码对图像没有很好的压缩效果。如信源M1、M2、M3、M4、M5经过huffman编码的码字分别为:01、10、00、111、011,是由近似的整数来对其进行编码的,没有达到预期的效果。2.3 线性预测编码(DPCM,Different Pulse Code Modulation)差值脉冲编码调制(Different Pulse Code Modulation),即线性预测编码(DPCM)是对图像的预测误差进行编码的一种无损压缩编码。预测误差是当前信号的实际值和根据前面的信号对当前信号进行预测得到的预测值的之差。其编解码系统如图7所示:图7 线性

14、预测编码编解码系统图线性预测编码,这里选用大小为像素、灰度级为256的yun图像,对其进行行程编码来实现图像压缩的目的。其中采用LPCencode函数对图像进行压缩,而用LPCdecode函数对压缩图像进行复原,用size函数计算的原始图像数据和压缩后数据大小、均方根误差erms并在静态文本框中显示出来。由于线性预测编码是对图像的预测误差进行编码的一种无损压缩编码,也通过显示原始图像和预测误差的直方图,来反映经过预测编码去除图像冗余的情况。对大小为像素、灰度级为256的yun图像进行DPCM编码的运行结果如图8、9所示:图8 对circuit图像进行DPCM编解码结果图图9 原始图像和预测误差

15、直方图由图8可得:均方根误差erms =0,则线性预测编码是对图像的预测误差进行编码的一种无损压缩编码。由图9可得:预测误差的概率分布在零处的峰值很大,则线性预测编码通过预测和差分消除了大量像素间的冗余。将以上几种无损压缩编码方法运行结果数据汇总在表3中进行比较,表3如下所示:表3 无损压缩编码比较表图像编码原始数据大小压缩后数据大小均方根误差erms压缩比cr灰度图RLERLEHuffmanDPCM6553611222401.7124二值化图像灰度图灰度图655366553616384680258986163840000.103790.90005由于线性预测编码是对预测误差进行编码的,其要与

16、RLE和huffman编码比较得通过预测误差直方图的概率分布来进行。由表3可得:要对黑白二值化图像进行编码,最好选择RLE编码。而对于灰度图,进行RLE编码后图像数据(112224)比原始数据(65536)大很多;进行huffman编码后的图像大小与原始图像差不多,均没达到好的压缩效果;进行线性预测编码其预测误差的概率分布在零处的峰值很大,说明消去了很多的冗余。因此,灰度图像要进行无损压缩编码,最好的选择是进行线性预测编码。3 有损压缩编码研究和实现有损压缩主要是对变换编码进行研究的。变换编码是一种基于某种变换的编码方法,其只对变换域上有用的低频信息进行量化、编码、传输,而丢弃那些没用的高频分

17、量。变换编码是先将图像分割为个子图像再分别进行变换、量化和编码处理,而非一次性对图像进行变换和编码。其编解码系统如图10所示:图10 变换编码编解码系统图3.1 基于DCT的图像压缩编码由于在空间域里进行DCT变换编码比在变换域里较复杂,因此DCT变换编码选择在变换域里进行。经过DCT变换后信号的能量积聚到少量的系数上,使其图像的相关性下降了和抗干扰能力增加了,更利于压缩图像的传输。因而,被图像压缩领域广泛的运用。关于基于DCT的图像压缩编码的实现,这里选用大小为像素、灰度级为256的lena图像,对其进行DCT变换来实现图像压缩的目的。编写matlab程序时,先用blkproc和dctmtx

18、(8) 函数对图像进行分割为 个大小为的子图像进行DCT,则每一个子图像中均有64个的傅里叶系数。再量化,用im2col函数将的图像块排列成向量,根据设置的压缩比cr确定要变零的系数个数snum并将最小的snum个变化系数设置为0。接着用col2im函数将向量重新排列成图像块以便图像的复原,最后用blkproc和dctmtx(8) 函数对新的图像块进行逆DCT变换来恢复图像和计算均方根误差erms来体现DCT的信息集中能力。其编解码系统如图11所示:图11 DCT变换编解码系统图设置压缩比cr=0.5,即对大小为像素、灰度级为256的lena图像进行2:1的DCT压缩,截取一子图像8,8数据分

19、析其编码,截取的数据如下:由上可得:全部负数是当中最小的32个变换系数。经过量化编码后的数据如下:由上可得:量化编码将64个变换系数中最小的32个变换系数变0,而保留32个比较大的变换系数。其运行结果如图12所示:图12 进行压缩比为0.5的DCT变换编解码运行结果图设置压缩比cr=0.125,即对大小为像素、灰度级为256的lena图像进行8:1的DCT压缩,截取一子图像8,8数据分析其编码,截取的数据如下:由上可得:5.0838,0.0230,0.0018,0.0453,0.0222,0.0019,0.0015,0.0019是8个比较大的变换系数。经过量化编码的数据如下:由上可得:量化编码

20、将64个变换系数中最小的56个变换系数变0,而保留8个比较大的变换系数。其运行结果如图13所示:图13 进行压缩比为0.125的DCT变换编解码运行结果图3.2 基于哈达玛变换(HT)的图像压缩编码哈达玛变换矩阵有三个优点3: 只含+1和-1; 任意两行或两列对应元素相乘后相加为0,即正交; 变换核矩阵使高阶矩阵可通过低阶矩阵来获得。关于基于哈达玛变换的图像压缩编码的实现,在matlab7.0中没有产生哈达玛矩阵的函数hadamard,因此就得编写一个产生哈达玛矩阵的函数hadamard。这里选用大小为像素、灰度级为256的lena图像,对其进行哈达玛变换来实现图像压缩的目的。编写matlab

21、程序时,先用blkproc和hadamard 函数对图像进行分割为 个大小为的子图像进行哈达玛变换,则每一个子图像中均有64个的傅里叶系数,再用im2col函数将的图像块排列成向量,根据设置的压缩比cr确定要变零的系数个数snum并将最小的snum个变化系数设置为0,接着要col2im函数将向量重新排列成图像块以便图像的复原,最后用blkproc和hadamard 函数对新的图像块进行逆哈达玛变换来恢复图像和计算均方根误差erms来体现哈达玛变换的信息集中能力。其编解码系统如图14所示:图14 Hadamard变换编解码系统图设置压缩比cr=0.5对大小为像素、灰度级为256的lenan图像进

22、行2:1的哈达玛变换压缩,截取一子图像8,8数据分析其编码,截取的数据如下:经过量化编码的数据如下:由上可得:经过量化编码将64个变换系数中最小的32个变换系数变0,而保留32个比较大的变换系数。其运行结果如图15示:图15 进行压缩比为0.5的哈达玛变换编解码运行结果图设置压缩比cr=0.125对大小为像素、灰度级为256的lena图像进行8:1的哈达玛变换压缩,截取一子图像8,8数据分析其编码,截取的数据如下:经过量化编码的数据如下:由上可得:经过量化编码将64个变换系数中最小的56个变换系数变0,而保留8个比较大的变换系数。其运行结果如图16所示:图16 进行压缩比为0.125的哈达玛变

23、换编解码运行结果图为了方便比较以上两种变换编码集中能量的能力,两种变换均是对大小为像素、灰度级为256的lena图像进行处理。将以上两种变换编码结果制作为一张表,表4如下所示:表4 三种变换编码结果汇总表压缩比cr=变换编码原始图像数据大小:压缩后数据大小:均方根误差erms=0.50.5基于DCT的变换编码65536327680.047319基于HT的变换编码65536327680.0452090.1250.125基于DCT的变换编码基于HT的变换编码6553665536819281920.0550190.055239由表4可得:在压缩比相同的情况下(即丢弃的系数个数相同),DCT的均方根误

24、差erms相对比较小,也就是DCT比HT有更强的信息集中能力。在压缩比为0.5的情况下,两种变换的均方根误差均比压缩比为0.125的小,也就是压缩比越大其集中信息的能力越强。这是因为图像的有用信息低频信息大多在变换域的左上角,变换编码只对该区域的变换进行量化、编码、传输,而丢弃那些没用的高频分量。3.3 小波编码小波变换利用对信号的局域的性质进行分析来提取信号的有用信息,这样可以解决一些傅里叶(Fourier)变换不能解决的问题4。例如:傅里叶(Fourier)变换的局限性。这里采用直接阈值的小波编码法,其是省略小于某一阈值的系数而留下那些有大能量的系数,以达到压缩图像的效果。有多种方法可以得

25、到阈值,既可以通过直接赋值,也可以通过函数来产生。这里用wdcbm2函数来求阈值。其编解码系统如图17所示:图17 直接阈值编码法的编解码系统图在这种方法中用imnoise函数对图像信号进行加噪,用wfilters函数得到haar滤波器的分解和重构的滤波器,用wavedec2函数和得到的分解滤波器对加噪信号进行2层二维的小波分解并得到分解结构c,s,用wdcbm2函数得到阈值和保留的系数,用wdencmp对图像进行重构。用size函数计算的原始图像数据和压缩后数据大小、均方根误差erms,通过利用公式计算cr。这里是用不同的阈值对各个子图像的小波系数进行舍取处理。对lena图像(大小为像素、灰

26、度级为256)进行2层二维小波编解码结果如图18所示:图18 直接阈值的小波编码法运行结果图由图18可得:=218,=65536,则压缩比cr=0.00332641,由此数据可得小波编码有很大的压缩比。将基于DCT的变换编码与小波编码进行比较总结出小波编码的优点,表5如下所示:表5 FFT和小波编码运行结果比较表编码原始图像数据大小: 压缩后数据大小: 均方根误erms=压缩比cr=基于DCT的变换编码65536327680.0473190.5基于DCT的变换编码6553681920.0550190.125小波编码65536613.31310.00332641由上表可得:与DCT相比,小波编码

27、有更高的压缩比,因为小波编码去除了所有的相关性,这是DCT所不能达到的。虽然小波编码的均方根误差比DCT高很多,但是小波编码是去除那些能量比较小的系数,而将那些高能量的系数保留下来,小能量的系数对图像恢复没有多大的影响。4 JPEG部分压缩算法的研究和实现融合了DCT,Huffman压缩编码方法和有高压缩比cr的JPEG是一种有损/无损压缩方法5,其是联合图像专家组(Joint Photographic Expert Group)的简称6。其编解码方框图如图19所示:图19 JPEG编解码方框图这里从【open】中选择people图像(大小为像素、灰度级为256)对其进行JEPG编解码。编写m

28、atlab程序时,除了用到DCT变换和huffman编码所有的函数,如:blkproc、dct2(x)、size、idct2(x)、DCHuffmanEncoding、round等函数,还用到了ZigZag函数来分别对DC系数和AC系数扫描和编码以及矩阵系数替换等基本matlab编程语句。最后用set和num2str函数将原始图像数据和压缩后数据大小、均方根误差erms在静态文本框中显示出来,并通过利用公式计算cr。对大小为像素、灰度级为256的people图像进行JEPG编解码结果如图20所示:图20 JEPG编解码结果图由图20可得:=108,=65536,则压缩比cr=0.001647,

29、由此数据可得JPEG编码和小波编码一样都有很高的压缩比。将以上DCT变换编码、huffman编码、JEPG编码的结果数据汇制成表6,表6如下所示:表6 DCT、huffman、JEPG编码结果表编码 原始图像大小: 压缩后图像的大小:均方根误erms=压缩比cr=基于DCT的变换编码65536655360.0473190.5基于DCT的变换编码65536655360.0550190.125Huffman编码JEPG编码65536655365898610809.60480.900050.001647由表6可得:DCT变换编码是一种具有高信息集中能力的编码,huffman编码是一种无损压缩,这里采

30、用JEPG编码正是集合这两种编码的优点而具有较高的压缩比。5 总体设计在matlab环境中,GUI是一种图形窗口,其包含了许多种的对象并提供了集成了GUI所有支持控件的界面设计工具集GUIE,成就了GUI方便高效的开发。创建一个图形用户界面GUI将各种压缩编码方法结合在一起的具体步骤如下: 启动GUIE:在打开matlab7.0后,点击【file】菜单下的子菜单【new】并选择【GUI】项目,打开如图21的界面。图21 GUI模板设置界面图在窗口GUIE Quick Start中,点击OK就可以选择一个空白的模板,将其保存为GUI.fig同时生成了编写功能所要用到M文件。 在界面设计工具集GU

31、IE中选择所需的控件布置界面并设置属性,设计好界面如图22所示:图22 最初布置图在该界面中,包含有10个静态文本和两个axes窗口。 将各种编码方法均设置在菜单栏上,可以使界面不会那么的凌乱,则打开Menu Editer窗口设计两个菜单项File、Operations,其中File包含的子菜单有Open和Exit,Operations包含的子菜单有RLE、huffman、DPCM、DCT、FFT、hadamard、wavlet、JEPG。菜单项的Callback均设为GUI0(File_Callback,gcbo,guidata(gcbo),菜单项的label和Tag均分别设为File、Op

32、erations、RLE、huffman、DPCM、DCT、FFT、hadamard、wavlet、JEPG。菜单栏的整体排版如图23所示: 图23 菜单栏安排图运行界面GUIE,可得如图24所示:图24 最终布置图 在M文件中编写对应功能代码。其中Open实现的功能是可以打开在根目录下的任何的图片(如图25所示:),Exit用命令close(GUI0)来关闭运行中的界面GUI。Operations下的子菜单RLE、huffman、DPCM、DCT、FFT、hadamard、wavlet、JEPG对应用来实现行程编码、线性预测编码、变换编码、小波编码、JEPG编码。图25 用Open打开任何图

33、片图在编写这些程序时要注意用handles来进行数据间的传递。要将计算好的均方根误差erms、压缩比cr、原始图像和压缩后图像的大小在静态文本中显示出来时,除了用set命令,还得用命令num2str将它们转换为字符形式才能在静态文本显示。在编写程序时必须得注意这两个问题。 运行以编写好代码的GUI界面,选择【Open】下大小为像素、灰度级为256的coin图像和【Operations】的【huffman】选项,进行huffman编码可得如26图结果:图26 实现huffman编码功能图按照以上步骤创建好的GUI界面实现的功能有:选择【Open】下的任何一张图像;选择Operations下的子菜

34、单中的任何一编码计算并显示原始图像和解码后图像的大小、均方根误差、压缩比cr以及解码后的图像;关闭运行的界面。6 结论随着各种现代化技术地不断发展,数字图像的数据压缩在数字图像传输中发挥着关键性的作用。为了方便对各种压缩方法的进行研究、实现和比较,根据图像的信息在编码中是否有损失将数字图像编码分为有损压缩和无损压缩。设计以matlab为仿真工具,利用信源概率不相等的特性来去掉图像的冗余以及用不等长的码字来对信源进行无损压缩编码。而运用某种变换去掉数字图像在空间和时间上的相关性对信源进行有损压缩编码。利用DCT变换和huffman编码对图像的信源进行JEPG编码。为了更好地研究和实现各种压缩方法并将这些方法用于教学,又设计了一个GUI界面,将全部的压缩编码的方法结合在一起。在设计GUI时,要特别注意用handles来进行数据间的传递和静态文本显示的细节。参考文献:1 何东健数字图像处理M北京:西安电子科技出版社,20082 姚敏数字图像处理M北京:机械工业出版社,20083 张德丰

温馨提示

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

评论

0/150

提交评论