多媒体通信毕业设计论文.docx

上传人:b****2 文档编号:11715005 上传时间:2023-06-02 格式:DOCX 页数:45 大小:479.07KB
下载 相关 举报
多媒体通信毕业设计论文.docx_第1页
第1页 / 共45页
多媒体通信毕业设计论文.docx_第2页
第2页 / 共45页
多媒体通信毕业设计论文.docx_第3页
第3页 / 共45页
多媒体通信毕业设计论文.docx_第4页
第4页 / 共45页
多媒体通信毕业设计论文.docx_第5页
第5页 / 共45页
多媒体通信毕业设计论文.docx_第6页
第6页 / 共45页
多媒体通信毕业设计论文.docx_第7页
第7页 / 共45页
多媒体通信毕业设计论文.docx_第8页
第8页 / 共45页
多媒体通信毕业设计论文.docx_第9页
第9页 / 共45页
多媒体通信毕业设计论文.docx_第10页
第10页 / 共45页
多媒体通信毕业设计论文.docx_第11页
第11页 / 共45页
多媒体通信毕业设计论文.docx_第12页
第12页 / 共45页
多媒体通信毕业设计论文.docx_第13页
第13页 / 共45页
多媒体通信毕业设计论文.docx_第14页
第14页 / 共45页
多媒体通信毕业设计论文.docx_第15页
第15页 / 共45页
多媒体通信毕业设计论文.docx_第16页
第16页 / 共45页
多媒体通信毕业设计论文.docx_第17页
第17页 / 共45页
多媒体通信毕业设计论文.docx_第18页
第18页 / 共45页
多媒体通信毕业设计论文.docx_第19页
第19页 / 共45页
多媒体通信毕业设计论文.docx_第20页
第20页 / 共45页
亲,该文档总共45页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

多媒体通信毕业设计论文.docx

《多媒体通信毕业设计论文.docx》由会员分享,可在线阅读,更多相关《多媒体通信毕业设计论文.docx(45页珍藏版)》请在冰点文库上搜索。

多媒体通信毕业设计论文.docx

多媒体通信毕业设计论文

摘要

图像的数字化表示使得图像信号可以高质量地传输,并便于图像的检索、分析、处理和存储。

但是数字图像的表示需要大量的数据,必须进行数据的压缩。

因此图像压缩编码技术的研究显得特别有意义,也正是由于图像压缩编码技术及传输技术的不断发展、更新,推动了现代多媒体技术应用的迅速发展。

凍鈹鋨劳臘锴痫婦胫籴。

本设计在研究JPEG压缩编码对图像数据压缩的基本原理的基础上,设计了JPEG仿真方案和程序实现流程,根据流程图编写了JPEG压缩编码的仿真程序,并利用MATLAB软件对仿真程序进行了调试,验证了JPEG压缩编码对图像数据压缩的可行性。

恥諤銪灭萦欢煬鞏鹜錦。

通过运行JPEG仿真程序输出了原图像,重建图像,以及二者的差值图像,通过直观比较,发现经过JPEG仿真程序压缩后的图像仍有很好的视觉效果。

通过对输出的压缩比,峰值信噪比等参数的研究,科学的论证了JPEG压缩编码对图像数据巨大的压缩效果以及良好的压缩质量。

鯊腎鑰诎褳鉀沩懼統庫。

实验结果表明基于DCT变换的JPEG图像压缩方法简单、方便,既能保证有较高的压缩比,又能保证有较好的图像质量,应用MATLAB仿真出来的结果较好的反应了其编码算法原理。

硕癘鄴颃诌攆檸攜驤蔹。

关键词:

JPEG,DCT,MATLAB,图像压缩

 

Abstract

Digitalimagesthatmakehigh-qualityimagesignalcanbetransmitted,andtofacilitateimageretrieval,analysis,processingandstorage.Butthedigitalimagesthatrequirelargeamountsofdata,thedatamustbecompressed.Therefore,imagecompressioncodingtechnologyresearchisparticularlymeaningful,andbecausetheimagecompressiontechnologyandtransmissiontechnologycontinuestodevelop,updateandpromotetheapplicationofmodernmultimediatechnologytodeveloprapidly.

IhaveJPEGcompressionin-depthstudyonthebasicprinciplesofimagedatacompressionbasedonJPEGemulatorhandsdrawnflowchart,flowchartwaspreparedaccordingtoJPEGcompressionsimulationprogram,andthesimulationprogramusingMATLABsoftwarewasdebuggedtoverifytheJPEGcompressionofimagedatacompressionisfeasible.

SimulationprogrambyrunningtheoutputoftheoriginalJPEGimage,reconstructedimage,andthedifferencebetweenthetwoimages,byvisualcomparison,foundthroughsimulationprogramcompressedJPEGimageisstillverygoodvisualeffects.Compressionratioontheoutputpeaksignaltonoiseratioandotherparametersofthestudy,scientificproofoftheJPEGimagedatacompressioncodingofthegreatcompressionandgoodcompressionquality.

Keywords:

JPEG,Huffman,DCT,quantization,MATLABsimulation阌擻輳嬪諫迁择楨秘騖。

 

1.设计要求

图像通信之前需要进行数据量压缩,编程实现JPEG图像压缩标准的主要环节,完成压缩和解压过程,计算压缩比。

氬嚕躑竄贸恳彈瀘颔澩。

要求:

将彩色图像进行颜色空间转换、对不同的颜色分量进行不同的采样、对于3个分量进行8×8的DCT变换、对DCT系数矩阵按照JPEG推荐的量化表进行量化;对量化后的系数进行Z形扫描,最后进行熵编码,形成码流,计算比特数,和压缩比。

解压从量化后的DCT系数表开始逆向进行。

釷鹆資贏車贖孙滅獅赘。

通过分析知道本次设计要求主要是对图像进行压缩处理,涉及了JPEG图像压缩的环节,掌握其过程原理。

 

2.JPEG图像压缩原理

2.1图像压缩技术简介

图像压缩是减少表示数字图像时需要的数据量

图像数据的压缩基于两点:

(1)图像信息存在着很大的冗余度,数据之间存在着相关性,如相邻像素之间色彩的相关性等。

(2)人眼是图像信息的接收端。

因此,可利用人的视觉对于边缘急剧变化不敏感(视觉掩盖效应),以及人眼对图像的亮度信息敏感、对颜色分辨率弱的特点实现高压缩比,而解压缩后的图像信号仍有着满意的主观质量。

怂阐譜鯪迳導嘯畫長凉。

1.图像压缩的基本原理

图像数据之所以能被压缩,就是因为数据中存在着冗余。

图像数据的冗余主要表现为:

图像中相邻像素间的相关性引起的空间冗余;图像序列中不同帧之间存在相关性引起的时间冗余;不同彩色平面或频谱带的相关性引起的频谱冗余。

数据压缩的目的就是通过去除这些数据冗余来减少表示数据所需的比特数。

由于图像数据量的庞大,在存储、传输、处理时非常困难,因此图像数据的压缩就显得非常重要。

谚辞調担鈧谄动禪泻類。

信息时代带来了“信息爆炸”,使数据量大增,因此,无论传输或存储都需要对数据进行有效的压缩。

在遥感技术中,各种航天探测器采用压缩编码技术,将获取的巨大信息送回地面。

嘰觐詿缧铴嗫偽純铪锩。

图像压缩是数据压缩技术在数字图像上的应用,它的目的是减少图像数据中的冗余信息从而用更加高效的格式存储和传输数据。

熒绐譏钲鏌觶鷹緇機库。

2.图像压缩基本方法

图像压缩可以是有损数据压缩也可以是无损数据压缩。

对于如绘制的技术图、图表或者漫画优先使用无损压缩,这是因为有损压缩方法,尤其是在低的位速条件下将会带来压缩失真。

如医疗图像或者用于存档的扫描图像等这些有价值的内容的压缩也尽量选择无损压缩方法。

有损方法非常适合于自然的图像,例如一些应用中图像的微小损失是可以接受的(有时是无法感知的),这样就可以大幅度地减小位速。

鶼渍螻偉阅劍鲰腎邏蘞。

无损图像压缩方法有:

行程长度编码纣忧蔣氳頑莶驅藥悯骛。

熵编码法颖刍莖蛺饽亿顿裊赔泷。

如LZW这样的自适应字典算法

有损压缩方法有:

濫驂膽閉驟羥闈詔寢賻。

将色彩空间化减到图像中常用的颜色。

所选择的颜色定义在压缩图像头的调色板中,图像中的每个像素都用调色板中颜色索引表示。

这种方法可以与抖动(en:

dithering)一起使用以模糊颜色边界。

銚銻縵哜鳗鸿锓謎諏涼。

色度抽样,这利用了人眼对于亮度变化的敏感性远大于颜色变化,这样就可以将图像中的颜色信息减少一半甚至更多。

挤貼綬电麥结鈺贖哓类。

变换编码,这是最常用的方法。

首先使用如离散余弦变换(DCT)或者小波变换这样的傅立叶相关变换,然后进行量化和用熵编码法压缩。

赔荊紳谘侖驟辽輩袜錈。

分形压缩(en:

Fractalcompression)。

塤礙籟馐决穩賽釙冊庫。

2.2JPEG图像压缩基本原理

量化表

裊樣祕廬廂颤谚鍘羋蔺。

图2-1JPEG图像压缩基本原理图

2.1.1颜色空间转换以及图像分量采样

工具箱用RGB图像中直接描述颜色,或者在索引图像中间接描述颜色,此时,彩色映射使用RGB格式来储存。

然而,还有其他的色彩空间(又称彩色模型),他们的应用有时会更加方便或更加恰当。

其中包括NTSC、YCbCr、HSV、CMY、CMYK和YUV色彩空间。

仓嫗盤紲嘱珑詁鍬齊驁。

NTSC色彩空间:

NTSC彩色制式在美国用于电视系统。

这种形式的有点是灰度信息和彩色信息是分离的,所以同一个信号既可以用于彩色电视,又可以用于黑白电视机。

在NTSC制式中,图像数据是有三部分组成的:

亮度Y、色调I和饱和度Q,其中字母YIQ选择常常是按照惯例进行的。

亮度分量描述灰度信息的,其他俩个分量携带电视信号的彩色信息。

YIQ这几个分量都是利用如下变换从一副RGB分量中得到的:

绽萬璉轆娛閬蛏鬮绾瀧。

Y=0.229R+0.587G+0.114B

I=0.596R-0.274G-0.322B

Q=0.211R-0.523G+0.312B(式2-1)骁顾燁鶚巯瀆蕪領鲡赙。

根据以上可以得到rgb2ntsc可执行这样的变换yiq_image=rgb2ntsc(rgb_image)瑣钋濺暧惲锟缟馭篩凉。

同上理:

IPT函数ntsc2rgb用于实现ntsc转换为RGB:

rgb_image=ntsc2rgb(yiq_image)

YCbCr彩色空间:

YCbCr1Cb是蓝色分量和一个彩色空间广泛用于数字电视。

在这种格式中,亮度信息单个分量Y来表示,彩色信息用俩个色差Cb和Cr来储存。

分量Cb是蓝色分量和一个参考值的差,分量Cr是红色分量和一个参考值的差。

鎦诗涇艳损楼紲鯗餳類。

JPEG采用的是YCrCb颜色空间,而BMP采用的是RGB颜色空间,要想对BMP图片进行压缩,首先需要进行颜色空间的转换。

YCrCb颜色空间中,Y代表亮度,Cr,Cb则代表色度和饱和度(也有人将Cb,Cr两者统称为色度),三者通常以Y,U,V来表示,即用U代表Cb,用V代表Cr。

RGB和YCrCb之间的转换关系如下所示:

Y=0.299R+0.587G+0.114B栉缏歐锄棗鈕种鵑瑶锬。

Cb=-0.1687R-0.3313G+0.5B+128

Cr=0.5R=0.418G-0.0813B+128(式2-2)辔烨棟剛殓攬瑤丽阄应。

一般来说,C值(包括CbCr)应该是一个有符号的数字,但这里通过加上128,使其变为8位的无符号整数,从而方便数据的存储和计算。

峴扬斕滾澗辐滠兴渙藺。

R=Y+1.402(Cr-128)

G=Y-0.34414(Cb-128)-0.71414(Cr-128)

B=Y+1.772(Cb-128)(式2-3)詩叁撻訥烬忧毀厉鋨骜。

通过以上的算法可以得到转换函数ycbcr_image=rgb2ycbcr(rgb_iage)

输入的图像可以是uint8类、uint16类或者double类。

输出图像和输出图像是相同类别。

YUV色彩空间:

YUV色彩空间和YCrCb类似,其计算方法如下:

Y=0.299*R+0.587*G+0.114*B;

U=-0.147*R-0.289*G+0.436*B;

V=0.615*R-0.515*G-0.100*B;(式2-4)则鯤愜韋瘓賈晖园栋泷。

数据分块采样:

在彩色图像中,JPEG分别压缩图像的每个彩色分量。

虽然JPEG可以压缩通常的红绿蓝分量,但在YCbCr空间的压缩效果会更好。

这是因为人眼对色彩的变化敏感,因而对色彩的编码可以比对亮度的编码粗糙些。

这主要体现在不同的采样频率和量化精度上,因此,编码前一般先将图像从RGB空间转换到YCbCr空间。

胀鏝彈奥秘孫戶孪钇賻。

研究发现,人眼对亮度变换的敏感度要比对色彩变换的敏感度高出很多。

因此,我们可以认为Y分量要比Cb,Cr分量重要的多。

在BMP图片中,RGB三个分量各采用一个字节进行采样,也就是我们常听到的RGB888的模式;而JPEG图片中,通常采用两种采样方式:

YUV411和YUV422,它们所代表的意义是Y,Cb,Cr三个分量的数据取样比例一般是4:

1:

1或者4:

2:

2(4:

1:

1含义就是:

在2x2的单元中,本应分别有4个Y,4个U,4个V值,用12个字节进行存储。

经过4:

1:

1采样处理后,每个单元中的值分别有4个Y、1个U、1个V,只要用6个字节就可以存储了)。

这样的采样方式,虽然损失了一定的精度但也在人眼不太察觉到的范围内减小了数据的存储量。

当然,JPEG格式里面也允许将每个点的U,V值都记录下来;由于后面的DCT变换是是对8x8的子块进行处理的,因此,在进行DCT变换之前必须把源图象数据进行分块。

源图象中每点的3个分量是交替出现的,先要把这3个分量分开,存放到3张表中去。

然后由左及右,由上到下依次读取8x8的子块,存放在长度为64的表中,即可以进行DCT变换。

注意,编码时,程序从源数据中读取一个8x8的数据块后,进行DCT变换,量化,编码,然后再读取、处理下一个8*8的数据块。

鳃躋峽祷紉诵帮废掃減。

 

8

M/2

稟虛嬪赈维哜妝扩踴粜。

图2-2矩阵分块图

2.1.2离散余弦变换(DCT)

DCT(DiscreteCosineTransform,离散余弦变换),是码率压缩中常用的一种变换编码方法。

任何连续的实对称函数的傅里叶变换中只含有余弦项,因此,余弦变换同傅里叶变换一样具有明确的物理意义。

DCT是先将整体图像分成N*N的像素块,然后针对N*N的像素块逐一进行DCT操作。

需要提醒的是,JPEG的编码过程需要进行正向离散余弦变换,而解码过程则需要反向离散余弦变换。

陽簍埡鲑罷規呜旧岿錟。

正向离散余弦变换计算公式:

反向离散余弦变换计算公式:

DCT编码属于正交变换编码方式,用于去除图像数据的空间冗余。

变换编码就是将图像光强矩阵(时域信号)变换到系数空间(频域信号)上进行处理的方法。

在空间上具有强相关的信号,反映在频域上是在某些特定的区域内能量常常被集中在一起,或者是系数矩阵的分布具有某些规律。

我们可以利用这些规律在频域上减少量化比特数,达到压缩的目的。

图像经DCT变换以后,DCT系数之间的相关性就会变小。

而且大部分能量集中在少数的系数上,因此,DCT变换在图像压缩中非常有用,是有损图像压缩国际标准JPEG的核心。

从原理上讲可以对整幅图像进行DCT变换,但由于图像各部位上细节的丰富程度不同,这种整体处理的方式效果不好。

为此,发送者首先将输入图像分解为8*8或16*16块,然后再对每个图像块进行二维DCT变换,接着再对DCT系数进行量化、编码和传输;接收者通过对量化的DCT系数进行解码,并对每个图像块进行的二维DCT反变换。

最后将操作完成后所有的块拼接起来构成一幅单一的图像。

对于一般的图像而言,大多数DCT系数值都接近于0,所以去掉这些系数不会对重建图像的质量产生较大影响。

因此,利用DCT进行图像压缩确实可以节约大量的存储空间。

在实验中,先将输入的原始lena图像分为8*8块,然后再对每个块进行二维DCT变换。

MATLAB图像处理上具箱中提供的二维DCT变换及DCT反变换函数如下。

沩氣嘮戇苌鑿鑿槠谔應。

   dct2实现图像的二维离散余弦变换。

其语法格式为:

   

(1)B=dct2(A)返回图像A的二维离散余弦变换值,其大小与A相同且各元素为离散余弦变换的系数B(K1,k2)。

钡嵐縣緱虜荣产涛團蔺。

   

(2)B=dct2(A,in,n)或B=dct2(A,[m,n])如果m和n比图像A大,在对图像进行二维离散余弦变换之前,先将图像A补零至m*n如果m和n比图像A小。

则进行变换之前,将图像A剪切。

懨俠劑鈍触乐鹇烬觶騮。

   idct2可以实现图像的二维离散余弦反变换,其语法格式为:

   B=idct2(A);B=idct2(A,m,n)或B=idct2(A,[m,n])。

图像数据块分割后,即以MCU为单位顺序将DU进行二维离散余弦变换。

对以无符号数表示的具有P位精度的输入数据,在DCT前腰减去2P-1,转换成有符号数;而在IDCT后,应加上2P-1,,转换成无符号数。

对每个8×8的数据块DU进行DCT后,得到的64个系数代表了该图像块的频率成分,其中低频分量集中在左上角,高频分量分布在右下角。

系数矩阵左上角的称为直流(DC)系数,它代表了该数据块的平均值;其余63个称为交流(AC)系数。

謾饱兗争詣繚鮐癞别瀘。

2.2.3系数量化

图像数据转换为DCT频率系数之后,还要进行量化阶段,才能进入编码过程。

量化阶段需要两个8*8量化矩阵数据,一个是专门处理亮度的频率系数,另一个则是针对色度的频率系数,将频率系数除以量化矩阵的值之后取整,即完成了量化过程。

当频率系数经过量化之后,将频率系数由浮点数转变为整数,这才便于执行最后的编码。

不难发现,经过量化阶段之后,所有的数据只保留了整数近似值,也就再度损失了一些数据内容。

在JPEG算法中,由于对亮度和色度的精度要求不同,分别对亮度和色度采用不同的量化表。

前者细量化,后者粗量化。

下图给出JPEG的亮度量化表和色度量化表,该量化表是从广泛的实验中得出的。

当然,你也可以自定义量化表。

呙铉們欤谦鸪饺竞荡赚。

表2-1亮度量化值表

16

11

10

16

24

40

51

61

12

12

14

19

26

58

60

55

14

13

16

24

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

 

 

表2-2色度量化值表

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

99

99

99

99

99

99

99

99

99

99

99

99

99

99

99

99

99

99

99

99

99

99

99

99

99

 

这两张表依据心理视觉阀制作,对8bit的亮度和色度的图象的处理效果不错。

量化表是控制JPEG压缩比的关键,这个步骤除掉了一些高频量,损失了很多细节信息。

但事实上人眼对高频信号的敏感度远没有低频信号那么敏感。

所以处理后的视觉损失很小,从上面的量化表也可以看出,低频部分采用了相对较短的量化步长,而高频部分则采用了相对较长的量化步长,这样做,也是为了在一定程度上得到相对清晰的图像和更高的压缩率。

另一个重要原因是所有的图片的点与点之间会有一个色彩过渡的过程,而大量的图象信息被包含在低频率空间中,经过DCT处理后,在高频率部分,将出现大量连续的零。

莹谐龌蕲賞组靄绉嚴减。

2.2.4Zigzag扫描排序

DCT系数量化后,用Z(zigzag)形扫描将其变成一维数列,这样做的目的是有利于熵编码,Z形扫描的顺序如图2-2所示:

麸肃鹏镟轿騍镣缚縟糶。

图2-2zig-zag扫描示意图

DCT将一个8x8的数组变换成另一个8x8的数组.但是内存里所有数据都是线形存放的,如果我们一行行的存放这64个数字,每行的结尾的点和下行开始的点就没有什么关系,所以JPEG规定按如下图中的数字顺序依次保存和读取64个DCT的系数值。

納畴鳗吶鄖禎銣腻鰲锬。

表3-3DCT系数值

这样数列里的相邻点在图片上也是相邻的了。

不难发现,这种数据的扫描、保存、读取方式,是从8*8矩阵的左上角开始,按照英文字母Z的形状进行扫描的,一般将其称之为Zigzag扫描排序。

如下图所示:

風撵鲔貓铁频钙蓟纠庙。

图2-3z扫描示意图

2.2.5DC系数调制编码

在做DC编码之前,还必须对DC值进行脉冲差值运算,8×8图像块经过DCT变换之后得到的DC直流系数有两个特点,一是系数的数值比较大,二是相邻8×8图像块的DC系数值变化不大。

根据这个特点,才使用了差分脉冲调制编码(DPCM)技术,对相邻图像块之间量化DC系数的差值(Delta)进行编码,灭嗳骇諗鋅猎輛觏馊藹。

Delta=DC(0,0)k-DC(0,0)k-1

具体做法是在Y、Cb、Cr频率系数矩阵中,后一个8×8块的DC值减去前一个8×8块的DC作为后一个8×8块新的DC值,并保留后一个8×8块的DC原值,用于后一个8×8块的差值DC运算,亦即每次后一个8×8块的DC值减去的是第一个8×8块的原来DC值,而不是经运算后的差值。

铹鸝饷飾镡閌赀诨癱骝。

DC编码=哈夫曼识别码(或称标志码)+DC差值二进制代码

表3-4、3-5给出了Y、CbCr矩阵的DC差值霍夫曼编码表。

表3-4Y矩阵DC差值参考表

DC差值二进制码的码长

Huffman识别码的码长

Huffman识别码

0

2

00

1

3

010

2

3

011

3

3

100

4

3

101

5

3

110

6

4

1110

7

5

11110

8

6

111110

9

7

1111110

10

8

11111110

11

9

111111110

表3-5Cb、Cr矩阵DC差值参考表

二进制码的码长

Huffman识别码的码长

Huffman识别码

0

2

00

1

2

01

2

2

10

3

3

110

4

4

1110

5

5

11110

6

6

111110

7

7

1111110

8

8

11111110

9

9

111111110

10

10

1111111110

11

11

11111111110

2.2.6AC系数调制编码

由于霍夫曼编码的对象是整数,所以在做霍夫曼编码之前,还得对量化后的DCT系数矩阵进行取整。

经过取整以后,每一个8×8块中,有大量的AC系数的值为0。

为了把尽可能多的其值为0的AC系数串在一起,以利于第四步的AC编码及提高压缩比,还必须把YcbCr矩阵中的每一个8×8块中的64个元素进行“Z”字形排序,这样就可以做到把尽可能多的0串在一起。

攙閿频嵘陣澇諗谴隴泸。

AC编码的原理和方法跟DC相似,所不同的是AC编码中多了一项RLE压缩编码,前面说到经过量化取整以后,有许多AC值为0,并经过“Z”字形排序,把原可能多的0串行在一起。

在这里RLE压缩编码的就是用一个数值表示为0的AC值前有几个AC值为0。

例如,在[M,N]这一组RLE编码中,N表示不为0的AC值,M则表示在这不为0的AC值,N之前0的个数,M最多只能为15,如果AC数据值N之前有17个AC值为0,则先以[15,0]代表有16个值为0,再以[1,N]表示N前有一个值为0,如果在某个AC数据值之后(该值不为0),所有AC值皆为0,则这串数据可以用[0,0]表示。

趕輾雏纨颗锊讨跃满賺。

做完RLE压缩后,再

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

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2