视频数据量化控制装置的制作方法

文档序号:7561753阅读:232来源:国知局
专利名称:视频数据量化控制装置的制作方法
技术领域
本发明涉及用以控制视频数据量化的装置和方法。
如果图象信息是以数字格式提供的,则重现的视频图象就会明显地被增强。但是,实时数字编码的视频信号所占的带宽明显地要比模拟的视频信号的带宽宽,而且在当前传输信道内可采用的数据速率是受限制的,该速率标称植不足以处理原始信号的数字编码的视频信号。为此,数字的视频信号要在传送之前被压缩。
被压缩的视频数据以可变速率出现,亦即各帧含有不同数量和被压缩数据。希望以相当于信道容量的一种恒定速率来传送被压缩的数据,以有效利用信道。提供速率缓冲器用以执行可变/恒定速率变换。供给速率缓冲器的数据量可根据缓冲器的占用率来调整,这种调整是借助监视缓冲器的占用率以产生控制信号而实现的。压缩器通常包括可变量化被压缩数据的装置,该装置按照控制信号的某种函数来调节供给该速率缓冲器的被压缩数据的数量。
目前已知的、可以用来计算把视频数据压缩到一特定速率所需的量化电平的第一种方法是计算施加在一整帧上的量化步的大小,这种方法虽然在各帧上提供了一个均匀量化的图象,但它难以精确地确定以所需速率提供数据时的量化电平。第二种方法是把每一帧划分为多个块,并且以块为基础产生量化电平。这种方法虽然可以所需的速率精细地提供被压缩的数据,但由于图象的不同区域不同地被量化,因而图象可能不是以一致的质量被重现的。
本发明含有以逐块为基础量化视频信号的装置,以相当恒定的速率提供数据,在图象质量上没有引入非一致性的倾向。
本发明是在用以自适应地控制被压缩视频信号数据宏块量化的装置中实施的。该装置包括一个量化器,该量化器接收数据宏块,以逐个宏块为基础,根据一种预定的量化函数对代码数据进行量化。该量化器响应一个复杂性控制信号,改变量化函数。此外,还提供一种信号产生装置,该装置响应各数据宏块内和相邻各块,产生复杂性控制信号,供给各宏块使用。


图1示出含有实施本发明的量化器在内的视频信号编码装置的方块图;
图1B和1C示出按照与MPEG式压缩有关的编码方式顺序已编码的视频信号帧的块的图象;
图2和图3是表示MPEG式信号的编码格式的简图;
图4是图1中MPEG式压缩器的部分细节方块图;
图5是以部分原理图和部分图示说明表示量化装置及其函数;
图6示出在产生有关宏块的量化复杂性信号过程中所使用的各数据块的相对位置。
本发明是在高清晰度电视信号编码器的环境下描述的,但它对于任何提供经历量化的压缩数据块的视频信号编码系统是普遍适用的,例如CD-I系统。为了公开本发明的目的,将视频数据按照MPEG式的格式被压缩。“MPEG”式指的是与“标准化国际组织”订立的编码格式相似的一种编码格式。这种格式在“标准化国际组织”的文件ISO-IECJT(1/SC2/WG1),“运动图象及有关声频的编码”,MPEG90/176,1990年12月18日的Rev.2中描述了。
在MPEG系统中,接续的视频帧的奇数场按照以下三种压缩算法中的一种进行压缩,亦即帧内编码(I),预测编码(P),或者是,双向预测编码(B)。偶数场则被丢掉。用相应算法进行编码的连续帧示于图1B中,作为一个例子。在图1B中,各编号的框对应各连续帧间隔,在上述各框上面的字母对应在相邻帧上采用的编码类型。
图1示出按MPEG式的格式对视频信号编码的一种示例性的HDTV装置。在所示的HDTV系统中,各帧的奇数场和偶数场都被编码。图1示出处理单一视频输入信号的系统,但可以理解,亮度分量和色度分量是单独压缩的,并且利用亮度运动矢量来产生被压缩的色度分量。将被压缩的亮度分量和色度分量交错,以形成宏块,供传输用。
如图1B所示的一序列的图象场/帧施加在压缩器10上,后者产生一个被压缩的帧序列(图1C),各帧按照MPEG式的格式来编码。框内的数字表示连续的帧号,字母I、P、B表示在有关帧上采用的压缩方式。对于帧1-15所示的编码I、P、B顺序是循环重复的。
在图3中以缩写形式所示的MPEG分级格式含有多层,每层具有各自的头标信息。标称上,每个头标都含有一个起始码、与各自层有关的和与增加头标扩充部分有关的数据。大部分头标信息(如在前引述的MPEG文件中所指明的)对于MPEG系统环境中的同步化用途是需要的。为给数字HDTV电视和无线广播同时联播系统提供压缩的视频信号的目的,仅描述性的头标信息是需要的,亦即起始码和选择扩充部分可被除掉。编码视频信号的各层在图2中示出。
当涉及本系统产生的MPEG式信号时,指的是a)视频信号的接续场/帧按照I、P、B的编码顺序被编码,及b)尽管每场/帧的片数可能不同并且每片的宏块数可能不同,但是以图象电平(picturelevel)编码的数据是在MPEG式片或块组内编码的。
本系统的编码输出信号按图3的那排框L1所示的场/帧组(GOF)分段。每个GOF(L2)包括一个头标,随后是图象数据段。GOF的头标包括与图象水平垂直尺寸、宽高比、场/帧速率、比特速率等有关的数据。
与各场/帧相对应的图象数据(L3)包括一个头标,随后是片数据(L4)。图象的头标包括一个场/帧号和图象代码类型。每个片(L4)包括一个头标,随后是多个数据块MBi,片的头标包括一个组号和一个量化参数。
每个块MBi(L5)表示一个宏块,及包括一个头标,随后是运动矢量和编码的系数。MBi的头标包括一个宏块地址、一个宏块型号和一个量化参数。被编码的系数示于层L6内。请注意,每个宏块包括六个块,亦即四个亮度块、一个U色度块和一个V色度块,请见图2。“块”表示象素矩阵,例如8×8,在其内进行离散余弦变换(DCT)。四个亮度块是邻接的亮度块的2×2矩阵,上述的邻接亮度块代表例如16×16象素矩阵。色度(U和V)块代表与四个亮度块相同的总面积。也就是说,色度信号在压缩以前在水平与垂直方向上相对于亮度以2为因数进行二次取样。片数据与对应于一组邻接的宏块所代表的区域的图象的一个矩形部分的数据相对应。
一次给一个块提供多个块系数,按照系数的相对重要性,DCT、DC系数先出现,随后是相应的DCTAC系数。块代码EOB的尾端附在数据的各连续出现的块的尾端。
压缩器10提供的数据量由速率控制器18来决定。众所周知,被压缩的视频数据以可变速率发生。速率缓冲器13和14执行可变/恒定数据速率变换。缓冲器13和14包括用以指明它们各自占用率等级的电路。这些指示信号施加在速率控制器18上,来调节由压缩器10提供的平均数据速率。所述的调节是借助调节对DCT系数施加的量化来实现的。
如图3所示的分级格式化的被压缩视频数据耦合到优先权选择元件11上,该优先权选择元件分析(parse)高优先权通道HP和低优先权通道LP间的编码数据。高优先权信息是创建一幅图象所需的最少的数据,尽管不如一幅完美无缺的图象。低优先权信息则是其余的信息。
将HP和LP压缩的视频数据耦合到传输处理器12上,该传输处理器的作用是a)将HP和LP数据流分段成为多个传输块,b)在每个传输块上作奇偶或循环冗余校验并在其上附加上适当的奇偶校验比特,及c)使辅助数据与HP或LP视频数据一起多路复用。
来自传输处理器12的HP和LP数据流分别施加在各自的速率缓冲器13和14上,这两个缓冲器将来自处理器12的可变速率的被压缩的视频数据转换为以基本上恒定速率出现的数据。速率调节后的HP和LP数据耦合到正向误差编码元件15和16上,这两个编码元件的作用是a)执行与各自数据流无关的里德索罗门(REEDSOLOMON)正向误差校正编码,b)使数据块交错,以排除大的误差的短脉冲群不致败坏再现图象的大邻接区域,以及c)把诸如巴克(Barker)码之类的代码附加在该数据上,以使接收机的数据同步。最后,将信号耦合到发送调制解调器17上,在该调制解调器内HP通道数据对第一载波进行正交振幅调制,LP通道数据对第二载波进行正交振幅调制,第二载波与第一载波相隔约2.88MHz。已调制的第一载波和第二载波的6db带宽分别约为0.96MHz和3.84MHz。
I方式压缩包括把I指定帧划分为多个诸如8×8象素的块,并且在各块内的象素上执行离散余弦变换(DCT),然后对DCT产生的系数进行量化,已量化的系数构成I编码帧的压缩后的图象信息。
P方式压缩包括A)把各个P指定帧划分为若干个宏块,宏块是由例如4个邻接的8×8象素块所组成,b)在含有相似图象信息的宏块的GOF内搜索最后出现的P或I帧,C)产生运动矢量,以使在前一个I或P帧内找到的宏块变换成为在正被压缩的P帧内相似宏块的位置,D)利用运动矢量从前一帧里产生预测帧,E)以逐块为基础地从正被压缩的P帧里减去预测帧,以产生剩余块,F)在剩余块上执行DCT,G)对已变换的剩余块的系数进行量化,以及H)对已量化的剩余系数和运动矢量进行连接以形成一个已压缩视频信号。
B指定帧的压缩与P指定帧的压缩相似,只是运动矢量和从而预测的B帧相对于I和/或P指定帧而被形成,在I和P帧之间,B帧是依序设置的。也就是说,P指定帧的压缩仅与最后发生的P或I指定帧有关,而B指定帧的压缩不仅与最后发生的I或P指定帧有关,而且与下一个发生的I或P指定帧有关。为此,P指定帧是正向预测的,而B帧是正向和反向预测的。
根据这个指定系统和所需的压缩,已量化的系数和运动矢量可以通过例如统计编码或DPCM编码或这两种编码方式经历进一步的数据简化。
图4示出压缩器10的细节,该压缩器包括一个产生运动矢量和DCT系数的压缩元件30,压缩元件可以与US4,972,260(题为“运动图象信号的编码装置”)中的压缩装置相似。DCT系数耦合到量化元件32上,运动矢量加在编码器34上。来自元件32的已量化DCT系数耦合到编码器34上,在该编码器内上述的已量化的DCT系数与运动矢量和头标数据一起多路复用,以形成压缩的视频信号。
量化器根据各象素块的一种预定的矩阵模式来接收DCT系数,所述的模式是例如图5中的框44所示的那样。左上方标有DC的方格是与该块有关的所有象素幅值的平均值。标有A1-A63的方格与AC系数或不同的频谱相对应。较高序号的系数通常在图象的再现中起较不重要的作用。箭头指示这些系数出现的顺序。量化器还接收诸如全局量化值GLOBAL_QUANT和宏块复杂性因子MB_COMP之类的量化控制信息。
量化器含有一个通用的量化模式(例如图5的块45),它是一个有关量化值的矩阵,该量化值与DCT矩阵的各个系数相关,即g0、g1、g2、g3与系数DC、A1、A2、A3等等相关。量化值GLOBAL_QUANT及MB_COMP按下式组合Gi=MB_comp*CLOBAL_QUANT*gi各个数值Gi用来控制系数DC和Ai的量化。在图5中,数值Gi由乘法器42提供并施加到量化器43上。量化器43被设置成用以提供所需的量化函数。例如一种具体的量化函数按下式给出QAi=(16*Ai+8)//(2*Gi);Ai>0QAi=(16*Ai-8)//(2*Gi);Ai<0QAi=0Ai=0式中QAi是系数Ai的量化型式,//表示整数除法。
量化操作可以向按照不同编码方式编码的帧或宏块提供不同的函数,例如可将有关的量化值gi的各种不同矩阵用于相应的I、P、B帧,然而这本发明不是重要的。本发明力求实现的是对量化器提供量化控制,以在同时对相对复杂编码的系数的一些宏块进行较严格量化时使一帧上图象质量不受量化造成非均匀性的影响。这是通过各帧建立压缩数据量的目标值(根据这些压缩数据计算全局量化值)和给一帧内的每个宏块产生一个复杂性因子(可用该因子以宏块为基础对全局量化值进行修改)来实现的。
首先要考虑产生复杂性因子这里考虑的是一个宏块的复杂性,宏块的复杂性与相应宏块内的各块有关,并且与该宏块周围的各块有关。如果所有宏块具有相等的复杂性,则它们相等地被量化,不致产生非均匀量化的影响。换句话说,若相等复杂性的宏块不相等地被量化,则会发生非均匀量化的后果。然而,为了达到显著的压缩,必须对一帧内的块或宏块进行不相等地量化。于是,问题在于要确定可能发生量化作用但量化是最低程度可见的地方。这是以如下方式完成的对各帧执行两个通行过程,在各帧的第一通行期间,该帧以帧内方式压缩,各系数以一恒常数值来量化,它可以是例如前一帧的平均量化值。记录各块的压缩的被量化AC系数的比特(计数值),亦即实际的码字被丢弃。接着,确定各宏块的具有最小数目的编码比特的块(来自相关一组的块的计数值MB_x。在确定该帧的所有MB_x以后,计算该MB_x的平均值MB_xa。各宏块的复杂性因子MB_comp按下式计算
MB_comp=((K1)(MB_xi)+(K3)(MB_xa))/((K2)(MB_xa)+(K4)(MB_xi))式中K1、K2、K3、K4是常数,可依经验而定。可以看出当K1=2、K2=2、K3=1和K4=1时可以得到好的结果。对于K3和K4等于1,MB_comp值的范围是从1/K2(在较不复杂的图象区内)到K1(在复杂的图象区内)。请注意,对于具有均匀结构的图象而言,各宏块的MB_comp将等于1。
使一相应宏块可从中选定MB_x的相关块示于图6中。图6中矩阵的各大方格对应着各宏块,各小方格对应着各编码数据块。中心的大方格包括块BK4、BK5、BK8和BK9,表示正被检查的宏块。MB_x是从所有的块BK1-BK12中选出的。若任一邻块(BK1、BK2、BK3、BK6、BK7、BK10、BK11、BK12)是简单的(亦即呈现一个低的码字比特计数),则可能该宏块中至少一块也是简单的,即便宏块的其它各块是复杂的。在这种情况下,该宏块被认为是具有低的复杂性而不必经受高量化电平。高程度复杂性仅与所有有关块都是复杂的(呈现高码字比特计数值)的宏块相关。较高的量化电平可应用于较复杂的块上,而不会出现可见的人为产物(artifacts)。
速率控制器18包括计数器和存储器,在由系统控制器起动的第一编码通行期间控制器18对该帧的每个块计数由量化器32提供的已量化比特量,并且存储各相应的计数值。然后,速率控制器检查与各宏块相关的块组的计数值,以确定每组中具有最低计数值的块,而且把该值存储作为MB_xi。一旦所有的MB_xi已被确定,该控制器18就确定它们的平均值MB_xa,计算各相应值MB_compi。在第二编码通行期间,随着相应的宏块被量化,将MB_compi值施加在量化器32上。
全局量化值是用于全帧或部分帧的数值。以一组帧为基础产生GLOBAL_QUANT,亦即例如帧7(图1B)的GLOBAL_QUANT7值是针对所有帧以重复帧1-15的I、P、B编码顺序进行计算的。标称上,对于不同编码方式的各帧而言,GLOBAL_QUANTi值是不同的。在产生GLOBAL_QUANT值的过程中,先计算一组帧的目标值GOF_TARGET。若在速率缓冲器上仅施加视频数据,则一组帧的数据GOF_size的量将受传输数据速率的限制,并等于一组帧内的帧数乘以速率缓冲器的输出比特,再除以输入视频数据的帧速率。由于声频和/或辅助数据可以与被传送数据相加,因此上述值与缓冲器传送的实际数据不同,而且这样要以GOF为基础进行校正。调整是相对于上一个GOF期间产生的数据进行计算的。GOF_TARGET值按下式计算GOF_TARGETn=GOF_size-(GOF_TARGETn-ACTUAL DATAn-1)式中GOF_TARGETn和GOF_TARGETn-1与当前和最后的GOF的目标值相对应,ACTUAL DATAn-1是在最后的GOF期间施加在速率缓冲器上的编码数据的实际量。在系统起动时,第一个GOF的GOF_TARGET值设定成等于GOF_size。
GOF_TAREGT值按一个比值分配给GOF的各帧,数据空间量实际上由GOF内以前的编码帧使用。规定TSize_I、TSize_P、TSize_B分别为一组帧内I、P、B帧的目标值;
LBits_I、LBits_P、LBits_B作为为相应编码类型的先前帧所产生的编码比特的实际个数;
LQ_I、LQ_P、LQ_B为相应编码类型的先前帧的平均量化值;
N_I、N_P、N_B为GOF中I、P、B帧的个数;
K_I、K_P、K_B为常数(一个代表性的的比值为K_I∶K_P∶K_B=15∶10∶15),该比值实际上由各设计者来选定。
n_I和n_P,B两值按下式根据上述参量算出n_I=(N_I)(LBits_I)(LQ_I)(K_I)+(N_P)(LBits_P)(LQ_P)(K_P)+
(N_B)(LBits_B)(LQ_B)(K_B);
n_P,B=(N_P)(LBits_P)(LQ_P)(K_P)+(N_B)(LBits_B)(LQ_B)(K_B);
各相应编码帧类型的目标值由下式计算TSize_I=(GOF_TARGET)(LBits_I)(LQ_I)(K_I)/n_I;
TSize_P=((GOF_TARGET-LBits_I)(LBits_P)(LQ_P)(K_P)/n_P,B;
TSize_B=((GOF_TARGET-LBits_I)(LBits_B)(LQ_B)(K_B)/n_P,B;
在目标值TSize_i确定以后,根据下式计算EQuant_I、EQuant_P、EQuant_B值,这些值是紧接着的I、P、B编码帧所期望的平均量化值,EQuant_P=(LQ_P)(LBits_P)/TSize_P;
EQuant_B=(LQ_B)(LBits_B)/TSize_B;
EQuant_I=(LQ_P)(K_P)/K_I.
相应的值BS_I、BS_P、BS_B是借助期望量化值由各自的常量R_I、R_P、R_B定标而产生的,亦即BS_I=(EQuant_I)(R_I);
BS_P=(EQuant_P)(R_P);
BS_B=(EQuant_B)(R_B);
常量R_I可以等于R_P和R_B而且正比于通道比特速度除以帧速率与最大量化值之乘积。代表性的最大量化值可以设置为等于31。
在一帧的编码期间,BS_i值按下式每m个宏块进行更新BS_ik=BS_ik-1+mMBs-(m)(TSize_i)/NMB式中字母i对应于I、P或B;BS_ik对应于当前正产生的BS_i的值;BS_i-1对应于被计算的BS_i的上一个值;mMBs是先前m个宏块(以比特表示)的数据量大小;m是整数个宏块(最好是小的);以及NMB是正被编码帧内宏块的总数。GLOBAL_QUANT由下式产生
GLOBAL_QUANTi=BS_i/R_i式中字母i对应于适合的I、P或B。该值在每个相应帧周期起始时施加在量化器上。
在本文中,参量GLOBAL_QUANT可通过先计算与GOF使用的数据空间量相对应的目标值来产生。这个目标值与除以帧速率并由先前的GOF计算出的目标值的误差来调整的传送数据成正比。因此GOF_TARGET是成比例的,以为该GOF的各帧根据编码类型产生帧目标值TSize_i。帧目标值TSize_i被计算作为先前GOF中编码帧的相应类型而产生编码数据量和GOF中各编码类型的帧数的函数。各相应帧的GLOBAL_QUANT值由TSize_i的倒数产生,并在相应帧的编码期间根据当前为相应帧产生的编码数据量进行周期性调整。
在第二编码通行期间,当视频信号为了传输而实际编码时,速度控制器对量化器提供的编码比特数进行计数,并累加这些值作为mMBs和LBits_i,供更新GLOBAL_QUANT值和计算目标值用。此外,速率控制器在相应帧上累加量化值,并产生量化值的平均值LQ_i,以在产生GLOBAL_QUANT后续值的过程中使用。参量ACTUAL_DATA可通过对在相应的GOF间隔内给速率缓冲器施加的比特数进行计数而获得的。为了方便起见,这个数据不需要在单一的GOF上进行累加,但是只要帧的所需个数和类型包含在累加数据的间隔内,就可以包括来自两个相邻GOF的数据。理论上,如果比特填充是在量化器与速率缓冲器之间任一编码装置内发生,则应计算比特填充量,并从对应于施加在速率缓冲器上的数据的累加数据中减掉。
在上文中,曾指出了所建议的MPGE标准每一帧一场地编码,但是示例性的HDTVMPEG式系统每帧两场地编码。然而本发明可在两种系统内使用。因此在本权利要求书中使用了“帧”或“一组帧”这些词,它们是指每幅图象或每组图象所实际处理的数据量,这是指每帧一场或每帧两场等的情况。
权利要求
1.在一种视频信号压缩配置中,这种型式的配置提供作为数据宏块的已压缩的数据帧,所述的宏块包含多个易于量化的编码数据块,量化装置的特征在于包括一个量化器(22),接收上述数据宏块,用以逐个宏块为基础根据一个预定的量化函数对编码数据进行量化,而且响应复杂性控制信号来改变上述量化函数;装置(18),响应相应的数据宏块以内和相邻的各块,产生上述相应宏块的上述复杂性控制信号。
2.根据权利要求1所述的装置,其特征在于调节上述量化器的装置,在第一量化通行期间,用相同的量化函数对一帧内的所有宏块进行量化,并且在第二量化通行期间用上述复杂性信号改变了的一个量化函数对上述帧内的宏块进行量化,而且所述的产生上述复杂性控制信号的装置响应在上述第一量化通行期间所产生的量化数据块。
3.根据权利要求2所述的装置,其特征在于,所述的用以产生上述复杂性控制信号的装置包括用以“A)确定相应帧的相应块内量化数据量,B)为各宏块确定与具有最少数据的上述宏块有关的一组块中块的数据MB_x的数量,C)计算一帧中多个MB_x的平均值MB_xa,D)计算相应宏块的复杂性控制信号作为对应的MB_x和上述平均值的函数”的装置。
4.根据权利要求3所述的装置,其特征在于,所述的复杂性信号根据下式来计算((K1)(MB_x)+(K3)(MB_xa))/((K2)(MB_xa)+(K4)(MB_x))式中K1、K2、K3和K4是预定的常数。
5.根据权利要求1所述的装置,其特征在于,相应帧的数据按照编码方式的循环顺序的编码方式编码,每个循环包括多个指定GOF的帧,而且其特征在于所述装置还包括计算对应于相应组帧的期望量化数据量的目标值的装置,该值是为前一个GOF而产生的实际量化数据量与为前一个GOF计算的目标值之间的误差的函数;用以使GOF内相应帧中的上述目标值成比例和为一组帧内相应帧产生全局量化值的装置;所述的量化器响应所述全局量化值和上述复杂性信号,用以改变上述量化函数。
6.根据权利要求5所述的装置,其特征在于上述使目标值成比例的装置包括使一帧内的上述全局量化值周期性更新作为各在更新周期之间产生的量化数据的数量的函数的装置。
7.根据权利要求1所述的装置,其特征在于,用以产生上述复杂性控制信号的所述装置包括用以“A)确定相应帧的相应块内量化数据量,B)为各宏块确定与具有最少数据的上述宏块有关的一组块中块的数据MB_x数量,C)计算一帧中多个MB_x的平均值MB_xa,D)为相应宏块计算复杂性控制信号作为对应的MB_x和上述平均值的函数”的装置。
8.根据权利要求7所述的装置,其特征在于,所述的复杂性信号根据下式来计算((K1)(MB_x)+MB_xa)/((K2)(MB_xa)+MB_x)式中K1和K2是预定的常数。
9.根据权利要求7所述的装置,其特征在于,与所述宏块有关的块包括在所述宏块内的块和在所述宏块周围与之紧密相邻的块。
全文摘要
量化置于宏块内的压缩视频数据的装置独立计算各宏块的量化参数。该装置确定相应宏块的有关编码复杂性,且确定在没有明显影响图象质量情况下较复杂的宏块中哪些能够承受较严格量化。确定是根据与相应宏块相关块内码字的相对量进行的。通常比较每个相关块编码所需的数据,找出与各宏块相关的最少数据的那块,然后产生定标因子。它是与宏块相关的最小块中数据量和图象帧内所有最小块的数据平均值的函数。用定标因子给加在一帧压缩视频数据至少一部分上的全局量化值定标。
文档编号H04N7/50GK1073313SQ9211169
公开日1993年6月16日 申请日期1992年10月14日 优先权日1991年10月15日
发明者T·萨瓦蒂埃 申请人:汤姆森消费电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1