图像压缩-从DCT到小波变换

引言

未经压缩的多媒体(图形,音频,视频)数据要求很大的存储容量和传输带宽。尽管大容量存储器,处理器速度,和数字通信系统在快速进步,但对数据存储容量和数据通信的需求仍然超越当前技术。近来兴起的数据密集的基于多媒体的Web应用不但需要信号和图像的更有效的编码方式,而且要求对这些信号做基于 存储和通信技术的压缩。静止图像的压缩,已经有ISO(国际标准化组织)和IEC(国际电工技术委员会)建立的'联合图像专家组'即 JPEG标准[19]。这些编码器的在低比特率时的低性能主要时因为内在的基于块的离散余弦变换(DCT)[20]。

近来,小波变换正成为图像压缩领域的前沿技术。基于小波的编码[29]有效改进了更高压缩比的画面质量。在最近几年,人们开发和实现了多种强大和完善的基于小波的图像压缩方法,这在后面会讨论到。因为这许多优势,未来的JPEG-2000标准[14] ,对有力的竞争者都是基于小波的压缩算法。写这篇文章有2个意图。首先,对压缩的新手,我们简单介绍图像压缩的一些概念,简短回顾基于DCT的JPEG标准和更流行的基于小波的图像编码方法。其次,对更高级的读者,我们涉及一些现代流行的成熟的基于小波的技术,包括我们当前正在追踪的。简要介绍即将到来的基于小波的JPEG-2000图像压缩标准的要实现的目标。因特网上也有很多关于图像压缩的信息。

背景

我们为什么需要压缩?表 1 的数据展示了储存,传输这些未经压缩的数据,从单一的文本到动态的视频数据,所需要的硬盘空间,传输带宽,传输时间。表 1 多媒体数据类型和压缩前需要的存储空间,传输带宽,传输时间。前缀 k- 代表因子1000,而不是1024。多媒体数据大小/时间长度比特/像素 or比特/样本压缩前大小(B 为字节)传输带宽(b 为比特)传输时间 (使用28.8K Modem)一页文本11'' x 8.5''Varying resolution4-8 KB32-64 Kb/page1.1 - 2.2 sec电话质量语音10 sec8 bps80 KB64 Kb/sec22.2 sec灰度图像512 x 5128 bpp262 KB2.1 Mb/image1 min 13 sec彩色图像512 x 51224 bpp786 KB6.29 Mb/image3 min 39 sec医学图像2048 x 168012 bpp5.16 MB41.3 Mb/image23 min 54 secSHD 图像2048 x 204824 bpp12.58 MB100 Mb/image58 min 15 sec动态视频640 x 480, 1 min(30 frames/sec)24 bpp1.66 GB221 Mb/sec5 days 8 hrs上面的这些例子清楚的表明,图像,音频和视频数据要求相当大的存储空间,带宽和传输时间。

对于现阶段的技术,唯一的解决方案是,把多媒体数据在存储和传输前进行压缩,接收后再解压然后播放。例如,对32:1的压缩比,在质量可以接受的情况下,空间,带宽和传输时间可以缩小到原来的1/32。压缩背后的原理是什么?大多数图像都有个共同特点,相邻象素是相关的,所以存在冗余信息。 冗余度压缩 在于 消除原信号(图像/视频)的重复信息。 不相干压缩 则 忽略部分不会被信号接收者,即人类视觉系统 (HVS)察觉的信号。

一般地,可有3种冗余:*. 空间冗余 或 临近像素的相关性。.*. 光谱冗余 或 不同色彩平面或光谱带之间的相关性。.*. 时间冗余 或 图像序列(视频应用中)中相邻帧之间的相关性。.图像压缩的研究在于通过尽可能地消除空间和光谱冗余来减少表示图像所需比特数。因为我们只介绍静止图像压缩,所以不理会时间冗余。压缩技术有哪些分类?这里介绍压缩技术的2种分类方法。(a) 无损压缩 vs. 有损压缩: 对无损压缩方法,压缩后复原的图像,在数值上与原图像完全相同。然而无损压缩收到的压缩效果很有限。经过有损压缩然后重建的图像相对原来的图像质量会降低。这常常是由于压缩方法完全丢弃了冗余信息。然而,有损的压缩方法能够实现高得多的压缩。正常观测条件下,感觉不到明显的损失(视觉无损)。(b) 预测编码 vs. 变换编码: 在预测编码中,已经发送或存在的信息用来预测新的值,只对差值编码。由于这是在图像或空间域上完成,所以相对容易实现并且很适合局部图像特征。差值脉冲编码调制(DPCM)是预测编码的一个典型例子。另一方面,变换编码,先用一些已知的变换将图像在空间域的表示转化为另一种不同的表示,再对变换后的值(系数)编码。这种方法相对预测编码可实现更高的压缩率,尽管计算代价更高。典型的图像编码器是什么样的呢?图 1 是一个典型的有损图像压缩系统。由紧密连接的三个构件组成,即(a) 信源编码器 (b) 量化器, 和 (c) 熵编码器。通过应用一个线性变换来减少图像数据的相关性,量化变换结果的系数,对结果应用熵编码来完成压缩。图 1. 一个典型的有损信号/图像 编码器信源编码器 (或 线性变换器)在过去几年里,发展了包括离散傅立叶变换(DFT),离散余弦变换 (DCT) [1],离散小波变换(DWT)[29]等等多种线性变换,它们各有优缺点。量化器量化器通过降低值的精度来减少存储变换后的系数需要的比特数。这是一个多到一的映射,所以是一个有损的过程并且是编码器压缩的主要来源。量化可以在单个系数上进行,叫做标量量化(SQ)。也可以在一组系数上同时进行,叫向量量化(VQ)。统一和非统一的量化器都可以使用,这取决于手头的问题。对不同量化方法的分析,可见[12]。熵编码器熵编码器进一步无损地压缩量化了的值以提高总体的压缩效果。

它利用一个模型来准确确定各个量化值的概率然后产生基于这些概率的合适的编码,从而让输出的编码流小于输入流。最常用的熵编码器是哈夫曼编码器和算术编码器,尽管对要求很快执行速度的应用行程编码(RLE)已经证明很有效。需要注意的是,要获得最好的压缩效果,除了最佳的信号变换,一个设计得当的量化器和熵编码器也是必不可少的。JPEG : 基于DCT 的图像编码标准压缩图像并不是什么新鲜的主意。1974年DCT的发现[1]对正在研究图像压缩的团体来说是一项重大的成就。DCT可看作是傅立叶-余弦级数的离散时间版本。它和DFT,一种把一个信号转换为基本频率成分的技术,有密切关系。DCT可以用类似快速傅立叶变换(FFT)的算法, 通过O(n log n)步操作计算得到。 与DFT不同,DCT是实值的,因而用更少的系数提供了更好的对信号的逼近。一个离散信号 x(n), n=0, 1, .. , N-1 的DCT定义为:where, C(u) = 0.707 for u = 0 and= 1 otherwise.对DCT及相关变换和应用的一份极好的分析可见[26]。1992年, JPEG 建立了图像压缩的第一个国际标准,其中编码器和解码器是基于DCT的。JPEG标准指定了顺序式,递增式,和阶梯式三种有损编码的模式,和一种无损编码模式。?#22522;线JPEG编码器?#37319;用一种最简单形式的顺序式编码,在这里做简单介绍。图 2(a) 和 2(b) 展示了针对灰度图像这种编码器和解码器的关键处理步骤。彩色图像压缩能被近似看作多个灰度图像的压缩, 全部同时进行,或者依次从中取出一个8x8数据块进行处理。 

在这篇文章中,我们只涉及灰度图像。图 2(a) JPEG 编码器结构图图 2(b) JPEG 解码器结构图基于DCT的编码器本质上可看作对8x8图像块流的压缩。每个8x8图像块经过各个处理步骤,产生压缩形式的结果汇入数据流。因为相邻象素高度相关,向扗CT(FDCT)通过把信号集中到低频部分为数据的压缩打下基础。对一个典型的8x8的图像采样块,多数频率上的幅度为0或者接近0,所以无需编码。大体上,DCT没有给图像造成什么损失,仅仅把它们变换到能更有效编码的另一个域。从 FDCT 出来后,64个DC系数被量化器借助精心设计的64元量化表(QT)统一的量化。在解码器一端,量化值被乘上相应QT元素以恢复为量化前的值。量化后,所有的量化系数被排进揨字形列,如图3。这种排序把低频非零系数放在高频系数前,便于熵编码。包含图像能量很大部分的DC系数,用不同的方式编码。

图 3. Z字形序列熵编码(EC)

根据它们的统计特征,把量化的DCT系数更紧凑地编码,无损地获得进一步的压缩。JPEG proposal 指定了Huffman编码和算术编码。基线顺序编码器使用Huffman编码,但是所有这些模式中,2种编码方法都会被用到。 算术编码虽然复杂,但一般压缩效果要比Huffman编码好5-10%。小波和图像压缩小波变换是什么 ?小波是定义在一个有限区间上,平均值为0的一组函数。小波变换的基本思想是把任一个函数 ?t)表示成一组这些小波或基函数的叠加。这些基函数或子小波可由一个原型小波,叫母小波,通过 扩大缩小 (scaling) 和平移 (shifts)得到。例如,一个 长度为 N 的有限长信号 x(n) 的离散小波变换可以用一个 N x N 的矩阵表示。对小波简单而优秀的介绍,可见[6]。对小波和滤波器组的深入分析和应用,请参见[24,29]。

为什么用小波作压缩?

尽管基于DCT的JPEG压缩方法有简单,满意的性能并且有专用的硬件来实现,它也不可避免的有其缺点。因为输入的图像必须被切成?跨方块边界的相关性并没有清除。这就导致恼人的?#26041;块效果?#29305;别是比特率低时,如图 4。Lapped Orthogonal Transforms (LOT)[16]

试图通过使用交叠的块来解决此问题。尽管方块效果在LOT压缩图像中减少了,但此算法增加的计算复杂度使LOT无法大面积代替DCT。(a)(b)图 4(a)原始Lena图像,和 (b)只使用 DC构件重建的Lena,可以看到方块效应在过去的很多年里,小波变换在一般的信号处理和图像压缩研究中被广泛地接受。在许多应用中,基于小波的方法(也叫子频带编码)要胜过其他编码方法比如基于DCT的 。因为没必要对图像分块并且基函数可变长度,小波编码方法在高压缩率时没有方块效应。

基于小波的编码对传输和解码错误更具有鲁棒性,有利图像的逐步传输。另外,它们更符合HVS的特点。因为它们固有的多尺度性质,小波编码方法很适合 重视 可伸缩性和 可容忍降级 的 应用。子频带编码子频带编码(SBC)的基本思想是分割信号(在我们这里是图像)的频带,然后对每个子频带使用和该子频带统计特征匹配的编码器和比特率来进行编码。SBC在子频带之间可变的位分配,编码错误被限制在子频带内,由于这些固有的优点,SBC首先在语音编码得到广泛应用然后是图像编码。(a)(b)图 5(a) 可分离4-子频带 滤波器组 和 5(b) 频域分割Woods 和 O'Neil [31] 使用一个一维积分映射滤波器组(QMF)的组合使用行-列方式执行4-频带分解,如图 5(a) 所示。对应的频带划分如图 5(b)。这个过程可以迭代来获得更高频带分解滤波器树。

在解码器一端,子频带信号被解码,超取样(upsampled) 然后传给一组合成滤波器,生成重建的图像。从子频带到小波编码过去几年,人们做了很多努力来发展滤波器组和子频带编码的改进和高效设计技术。从1990年开始,许多研究者提出使用专门设计的滤波器,与子频带编码有密切关联的相似方法,取名小波编码(WC)。这些滤波器另外的许多常常冲突的需求。包括分解滤波器的短脉冲响应以在保证快速计算的同时保持图像的局部特征,合成滤波器的短脉冲响应来防止因量化误差引起的 artifacts的扩散(环绕边缘),2种滤波器都是线性相位的,因为非线性相位会导致波形在边缘附近扭曲。正交性也是另一个有用的需求,因为正交滤波器,除了保持能量之外,还在输入和子频带之间做单元变换(unitary transform)。

然而,一维的情况,对2-子频带的有限脉冲响应(FIR)系统,线性相位和正交性是互斥的,所以只能牺牲正交性来获得线性相位。小波变换和滤波器组的联系正交小波基函数族的可以在连续时间上构造。同样的也可以由离散时间滤波器得到。Daubechies[9]是第一个发现离散滤波器或QMFs可以在一定条件下通过迭代导出连续时间小波。因为可以通过FIR离散时间滤波器实现,所以这是一个非常实用的小波分解方法。[9]中的正交基对应一个有精确重构属性的子频带编码方法,使用相同的FIR滤波器来重构或分解。

早期的子频带编码实际上是一种伪小波编码。在Daubechies在80年代后期建立此联系之前,小波编码在图像编码领域并不受欢迎。稍后,Cohen, Daubechies, and Feauveau (CDF) [7]提出一种构造紧支撑双正交小波族的系统方法。尽管各种滤波器的设计与选择和为这些滤波器的迭代构造的不同小波非常重要,但已经超出这篇文章的范围。小波分解的一个例子小波变换有多种方法可以把一个信号分解为多个子频带。包括均匀分解,8度频带分解(octave-band decomposition),和自适应或小波包分解。其中,8度频带分解使用最广。这是一种非均匀的频带分割方法,它把低频部分分解为更窄的频带,而各个级别的高通输出则不作进一步分解。图 6(a)展示了对Lena图像经过一个三级8度频带分解的各个子频带图像,其中应用的是流行的CDF-9/7 [7] 双正交小波。(a)(b)图 6(a) Lena图像的三级8度频带分解 ,和(b)光谱分解和排序。 大多子频带和小波编码方法也可以用图 1 的一般框架来表达。在JPEG标准的准要区别是DWT对 DCT的取代。而且,图像不需分解为8 x 8的独立块。当然,标准量化和编码技术做了很多增强来充分发挥小波变换在图像处理的优势,充分利用产生的变换系数的统计特性,这会在下面做讨论。高级小波编码方法A. 子频带和小波编码的最新进展任一个图像编码器的三个组件之间的相互影响是不可小觑的,因为要获得最好的压缩效果,除了最佳的信号变换,设计得当的量化器和熵编码器是绝对不可少的。标准量化器和编码器做了很多增强来充分发挥小波变换在图像处理的优势,充分利用HVS的特点和变换系数的统计特性。也开发了许多标准熵编码器的更完善的变种,包括Q, QM, ELS, Z, 和ZP 编码器[3,25]。这些改进了编码效果,一定的图像质量只需要更低的比特率,而给定比特率可以有更好的图像质量。

最近几年,人们开发了多种新颖而精致的基于小波的图像编码方法。包括EZW[23], SPIHT[22], SFQ[32],CREW[2],EPWIC[4],EBCOT[25],SR[26],第二代图像编码[11],应用小波包的图像编码[8],使用VQ的小波图像编码[12],和使用整数移位的无损小波图像压缩[5]。这里并不想无一遗漏的列出来,并且写这篇文章的同时很多这样的革新的技术正在开发中。在这里我们简要的讨论其中一些有趣的算法。1. 嵌入式零树小波 (EZW) 压缩在8度频带小波分解中,如图 7(a)所示,小波变换的高通频带的各个系数中,有四个系数对应频域中8度频带上的空间位置。这种分解的特别结构,需要一种更好的对系数的编码来获得更优的压缩效果。1992年,Lewis 和 Knowles[15]第一次引入一种树状数据结构来表示8度频带分解的系数。之后,在1993年Shapiro称此结构为小波系数的?#38646;树?#65292;并提出熵编码的优雅算法叫'嵌入式零树小波'(EZW)算法。零树基于以下假设:如果一个小波系数对一个给定的阈限T在粗尺度上可忽略,则所有在同样空间位置的同向的小波系数在更细尺度上很可能对T也是可忽略的。方法是定义一个从根开始的零符号,其根也是零并且标记为块终点。图 7(a) 和 7(b) 展示了一个相似的零树结构。许多高频子带(更细的分解)的无关紧要的系数可以丢弃,依你为树以4的幂增长。EZW算法对得到的树结构编码。因此,代码按照重要性的顺序产生,是完全嵌入式的编码。这种编码的主要优势是编码器可以在任一点终止编码,从而可以精确匹配目标比特率。

同样地,解码器也可以在任意点结束解码,得到截断地比特流可以得到的图像。该算法不使用任何预先存储的表格或密码本,不需要训练和原图像的任何先验知识,即可获得优秀的效果。(a)(b)图 7(a) 零树的结构,和7(b) 编码时对子频带的扫描顺序自从1993年出现以来,人们对EZW算法做了许多增强以使其更加健壮和有效。一个很流行的改进了的EZW 的变种就是 SPIHT 算法。2. 层次树的集分割 (SPIHT) 算法Said 和 Pearlman [22],给出了EZW算法运作原理的另一种解释,来更好的理解它优秀性能的原因。依据变换系数的量值用集分割排序算法对其做部分排序,提炼位的有序比特平面传输,和图像小波变换跨图像不同尺度的自相似性的挖掘,是EZW的三个关键概念。另外,他们提出基于层次树的集分割的一个新的更有效的改进EZW算法的实现。也针对排序系数提出了系数值的渐进传输方法以优先传送最重要的数据。他们使用均匀的标量量化器,并声明排序信息这个简单的量化方法比预计的 更有效率。也提出对排序信息的高效编码方法。由SPIHT算法得到的结果大多比EZQ算法得到的要好。3. 基于 EBCOT 的可伸缩图像压缩该算法基于独立的嵌入比特流的最优切割的嵌入块编码(EBCOT)[25],利用了它的一些主要功能。.EBCOT算法在不同程度上和先前的可伸缩图像压缩的工作有关。值得注意的先驱有:EZW 算法,SPIHT 算法,与Taubman 和 Zakhor的 LZC (分层零编码) 算法。跟这些一样,EBCOT算法使用一个小波变换来生成要进行量化和编码的子频带系数。尽管通常用二值小波分解,但其他?#21253;?#20998;解也支持,有时甚至更好。可伸缩压缩生成一个包含嵌入子集的比特流,子集表示原图像的一个有效压缩,只是分辨率较低,或者说更高失真。可伸缩压缩的一个关键优势是目标比特率或重建分辨率在压缩时不需要知道。另一个有实际意义的优势是为获得目标比特率,不必象现存JPEG压缩标准那样做多次压缩。与集中生成一个单一的比特流来表示整个图像不同,EBCOT将各个子频带分割为更小的采样块,并生成一个单独的具有高可伸缩性的比特流来表示各个所谓的码块。该算法表现出了空前的压缩性能,生成的比特流包含之前未有的特征集,有分辨率,可伸缩的SNR和随机访问属性。算法具有合适的计算复杂度,非常适合涉及远程浏览大压缩图像的应用。4. 使用 Integer to Integer WT 的无损图像压缩 虽然在这篇文章中,我们集中讨论有损图像 压缩,但无损编码对高保真图像比如医学图像,地震数据,卫星图像,和工作室质量视频生成的图像来说是很重要的。JPEG标准指定了一种无损编码方法,仅仅对各个象素的差异和象素的预测值编码。

差值序列采用Huffman或算术编码方法编码。不幸地,无损压缩需要的巨大图像尺寸使得编码方法必须得支持图像整个分辨率带的存储和渐进传输,保真度从有损到无损。 小波变换的多尺度性质[17] 使它成为渐进式传输的最佳候选者。然而,当对输入图像(整象素值的集合) 应用小波滤波时,因为滤波器系数不一定是整数,输出结果不再是整数二十浮点数。对无损编码,为了使解码过程精确可逆,滤波器系数必须用整数值来表示。[5]中描述了将整数映射为整数的可逆小波变换的的构造方法。这些整数到整数的可逆小波编码对无损图像压缩很有用。方法的基本思想是把小波变换分解为一些提升步骤,因此可以为每个小波变换构造整数版本。构造基于一个用?#25552;升?#20889;成的小波变换。提升是一种很灵活的技巧,它用其他子频带的一个适当的线性组合来代替一个字频带,如此迭代,就这样被人们用来构造小波。[5]中实现了很多可逆整数小波变换并应用到图像的无损压缩。

尽管结果显示这些新开发的滤波器性能各异,但可以肯定的是这些小波变换允许图像的无损表示,从而允许渐进传输,即先传图像的一个较低分辨率版本,接着继续传细节。5. 应用自适应小波的图像编码 接下来说说应用自适应小波的 图像编码。我们最近做的研究工作背后的主要思想就是所有图像都是不同的,所以在基于小波的图像编码中,小波滤波器须根据图像的统计特性做适应性的选择。我们用各种小波对许多不同类型的图像在不同的压缩率下做压缩实验。我们的结果[21]显示,有损编码器的性能是和图像有关的,对特定的图像,一些小波滤波器表现得比另外的好, 没有哪一种小波滤波器在所有图像上都比其他的好。类似的结果也在应用整数到整数的小波变换的无损压缩中观察到。自适应滤波器的选择是很重要的,因为,当小波滤波器表现不佳时,使用更复杂的量化和变换系数的环境建模有时并不能获得足够的改进。因此,在大多编码方法中搜索和使用好的小波滤波器是至关重要的。我们最近在研究可以根据输入图像 的类型和统计特性来动态确定合适的小波滤波器的算法。B. 性能比较: DCT vs. DWT 最后说说基于小波的 和JPEG编码器的性能。

对512 x 512, 8-bpp Lena图像应用一些不同的小波压缩技术,其信号-噪音峰值比(PSNR),还有基线JPEG图像压缩器的性能,[13]对它们做了比较,图 8 是它们的重现。可以看出,当压缩率低于或等于25:1时,JPEG在数值上表现得比单一的小波编码器好。当压缩率高于30:1时,JPEG的表现迅速恶化,而小波编码器则在100:1之上的压缩率仍缓缓下降。从图中也可以看出,编码技术和特定小波的结合可以使压缩系统的性能有明显改善:零树编码器最好,双正交比W6好;可变长度编码器(VLC)比固定长度编码器(FLC)好。 Fig 8. Comparison of Wavelet Compression methods [ 13 ]图 8. 小波压缩方法的比较 [13]许多这里提到的基于小波的算法的PSNR的详细比较可以在UCLA的图像通信实验室的网站[URL http://www.icsl.ucla.edu/~ipl/psnr_results.html ]上找到。

未来图像压缩标准和结语JPEG-2000: 新世纪的图像压缩标准 自从1992年JPEG标准建立以来,关于静止图像压缩人们做了很多研究工作。为了集中反映这些研究成果,一种静止图像编码的新标准JPEG-2000 [14] 正在开发中,预计2000年底可以完成。这标准试图推进标准图像编码系统来适应新世纪的应用。它将利用许多现代技术,为许多高端和不断涌现的图像应用提供一系列的重要功能。特别的,这个新标准将涉及现行标准难一获得高质量的领域和当前未使用压缩的市场。它将争取开放和免版税授权。是对当前JPEG标准的补充,而不是取代。它将包括学多现代的技术:改进的低比特率压缩性能,无损和有损压缩, 连续色调 和 双标准压缩, 大图像压缩,单一解压缩架构(single decompression architecture), 在噪声环境中的传输 包括 位容错的健壮性, 精确到象素的渐进传输 和 分辨率, 基于内容的描述, 和图像安全保护。值得一提的是在考虑中的22个候选算法中,大部分是基于小波的,几乎可以肯定JPEG-2000将会是基于DWT,而不是DCT的。更多的关于JPEG-2000活动的信息可以访问JPEG的网站(URL http://www.jpeg.org/ ),虽然大部分信息只限于JPEG会员。

结语 

基于DCT的图像编码器在中等比特率时表现良好,在高一些的压缩率时,图像质量下降,因为由基于块的DCT方法产生的artifacts。另一方面,基于小波的编码有效改进了在低比特率时的画面质量,这是因为其交叠的基函数和小波编码更好的能量紧致性。由于固有的多尺度性质,基于小波的编码器方便了图像的渐进传输,从而允许可变比特率。我们简单回顾了一些利用小波系数统计特性的复杂一些的技术。即将确定的JPEG-2000标准将综合这许多研究成果,并兼顾新千年图像编码的许多重要方面。然而,当前数据压缩方法可能离特定数据源比如图像的内在结构决定的最终极限很远。获取图像的精确模型,这些模型的最优表示,和这些最优表示的快速计算等等有趣的课题是数据压缩界面临的?

数据压缩和调和分析的交互,联合源信道编码,基于人类感知模型的图像编码,可伸缩性,健壮性,容错性,和复杂性是图像编码很多突出挑战中的几个,需要在未来几年完全解决,并可能影响图像数据压缩性能。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值