在消息信号中嵌入辅助数据的制作方法

文档序号:7579585阅读:239来源:国知局
专利名称:在消息信号中嵌入辅助数据的制作方法
技术领域
本发明涉及在诸如音频或视频的消息信号中嵌入辅助数据的方法,这是通过修改选择的信号采样以代表所述辅助数据的各个符号进行的。本发明还涉及从这种消息信号中检索辅助数据的方法。
在开始段中限定的辅助数据的已知方法公开在欧洲专利申请EP-A-0 359 325中。在这个已有技术的方法中,嵌入辅助数据发生在原始信号域。修改数字音频采样或视频象素以代表辅助数据信号的位。已经公开了这种修改的多个例子。一个例子在本专利申请的引言部分作了描述,即,用辅助数据位替代每第n个音频采样的最低有效位。另一个例子是通过异或OR其最高有效位和辅助数据位而代替每第n个采样的最低有效位。
现在,通常在传输和/或存储之前压缩音频和视频信号。把已有技术应用于这种信号要求压缩的数据被解码和再编码。这不仅是一个高价的操作,而且还是不可靠的,因为容纳在信号采样的最低有效位中的辅助数据消息在压缩阶段可能会丢失。
本发明的一个目的是以成本有效而且可靠的方式把辅助数据嵌入压缩的消息信号中。
根据本发明,信号采样是通过变换编码消息信号获得的变换系数并且被编码为可变长度代码字。该方法的进一步的特征在于包括步骤解码代表选择的系数的可变长度代码字,修改所述选择的系数以代表辅助数据符号,把修改的系数编码为新的可变长度代码字以及用新的代码字取代旧的代码字。从而实现了嵌入辅助数据,却不需要把压缩的信号首先反变换到原始信号域。
相应的检索辅助数据的方法包括步骤解码代表所述选择的系数的可变长度代码字以及从所述解码的系数检索每个辅助数据符号。从而检测到辅助数据,而不需要把压缩的信号首先反变换到原始信号域。
注意到在变换编码信号中嵌入辅助数据就其本身而论从ICASSP出版的1997年第4卷2621-2624页F.Hartung和B.Girod的文章“Digital Watermarking of MPEG-2 Coded Video in the BitstreamDomain”中是已知的。在这个已有技术的方法中,嵌入的数据是以原始信号域中的伪噪声序列表示的水印。在嵌入之前离散余弦变换水印。通过对其增加变换后的水印块的相应系数来修改压缩信号的非零系数。隐藏消息的恢复通过把加水印的视频信号与相同的伪噪声序列相关来完成。这种相关要求伪噪声序列是可变的,并且在信号域执行该相关。本发明不同于已有技术之处在于数据符号直接以特定值代表,不首先变换数据。这样嵌入的辅助数据可在压缩信号域中检索。
在该方法的一个实施例中,在以新代码字取代旧代码字的步骤中,如果所述取代引起新代码字的给定序列的长度基本超出旧代码字相应序列的长度,例如超出预定数目的位,则省略该步骤。这种序列的例子是MPEG视频流的片块(slice),图像或传输包。与上述Hartung等人的文章相比,其中仅在相应的新代码字更短或更长时才取代系数,代码字可用更长的代码字一个取代,只要它们的累加长度的增长可由其它新代码字的缩短来补偿。不需要缓冲器,并且在位流中时间标志保持在它们各自的位置上。从而可修改更多的系数而并不影响位率或存储容量。通过辅助数据字的每一个以数据符号的多种组合来表示,即通过在编码模式中提供冗余度,满足了不允许修改代表数据符号的所有系数的潜在目标。
相反,如果取代代码字引起序列的长度比原始序列长度短,在该方法的优选实施例中插入虚拟位来保持位率恒定。已知的压缩标准如MPEG已经提供了容纳这种虚拟位的字段。
在一个优选实施例中,选择的系数是代表连续块系数的DC系数之间的差值的差分DC系数。这种差分DC系数总是存在并且在位流中容易找到。为防止差分DC成分的修改引起接受器中平均亮度和色度电平漂移,优选是这样的修改,其使得给定的块系列(例如,片块)的差分DC系数总和基本上不被修改。
构成辅助数据“字母表”的数据符号可根据EP-A-0 3159 325中公开的例子来表示。例如,字母表可具有以选择的系数的最低有效位表示的两个符号“0”和“1”。在本发明的一个实施例中,字母表具有n个符号,以选择的系数的模-n值表示。数字n可以是2,在这种情况下,偶数系数值表示数据符号“0”,奇数系数值表示数据符号“1”。
根据后面描述的实施侧并且将参考后面描述的实施例进行阐述,本发明的上述和进一步的方面是很明显的。


图1A到1D表示已知格式的MPEG压缩视频信号图;图2表示根据本发明在消息信号中嵌入辅助数据的装置简图;图3表示图2所示的装置的实施例执行的操作流程图;图4表示图2所示的装置的操作示例图;图5表示从消息信号检索辅助数据的装置简图;图6表示图5所示的装置的操作示例图;图7表示包括图2所示的装置的视频记录机的简图;图8表示把未压缩消息信号编码为压缩消息信号以及在压缩信号中嵌入辅助数据的装置。
在描述把数据嵌入压缩消息信号的装置之前,将简略描述这种压缩信号的格式的已知示例。以MPEG压缩视频信号为参考,但是本发明并不限制于在这种MPEG信号中嵌入数据。
图1A表示视频图像100的左上图像像素101。把图像分为8×8像素的块102,在图中示出2个这种块。每个像素块进行正交变换,通常是离散余弦变换(DCT)。DCT产生8×8变换系数y(i,j)的块103,如图1B所示。块的左上变换系数表示相应像素块的平均亮度并且通常叫作DC系数。其它系数表示空间频率并叫作AC系数。几个AC系数值在图1B中表示出来。使用给定的量化步长量化AC系数。图1C表示量化的系数块c(i,j)。该图所示的系数值是图1B所示的相应系数的量化式样(这里以16为步长)。量化引起块104的很多AC系数假设为零。
之后根据锯齿模式105顺序读出块的量化系数c(i,j)并进行可变长度编码。可变长度编码模式是霍夫曼编码和游程长度编码的组合。具体讲,把零AC系数和随后的非零AC系数的每一游程装入单一可变长度码(VLC)字。例如,把图1C的系数值系列106编码为VLC字“(2,4)”,其中第一数字表示2个零的游程,第二数字表示非零系数值4。块的DC系数被DPCM编码为不同的系数dc并被可变长度编码。
图1D的参考序号110指示代表DCT块104的VLC字系列。该系列包括代表差分DC系数dc的VLC字111和代表系数系列106的VLC字112。图1D中的参考序号120指示片块。在MPEG中,片块是一系列连续DCT块。每个片块开始于包括同步字的片块标题121,其使得片块在位流中容易被找到。若干片块构成图像,一系列图像构成视频序列。结果得到的位流130也在图1D中示出。以每一个188字节的固定长度传输包131对流打包。一些包尤其包括程序时钟参考(PCR)字段132。所述PCR代表其到达的预定时间。在接受器中,把它用于同步本地时钟发生器,以控制图像解码和显示时序。
图2表示在消息信号中嵌入辅助数据的装置简图。该装置接收具有图1D所示的格式130的MPEG压缩视频信号MP。把该信号应用于程序分析器1,该分析器从位流抽取特定VLC字W并把所述VLC字应用于可变长度解码器2和开关3的一个输入。位流的剩余部分,即没有选择的VLC字和其它消息,如标题、时间标志、运动矢量等被直接提供给该装置的输出多路复用器4。开关3的输出也被应用于所述多路复用器。
应用于可变长度解码器2的特定VLC字W是代表每个DCT块的给定变换系数c(i,j)的代码字,例如以VLC字112表示的系数c(6,4)(看图1D),或优选地以VLC字111代表的差分DC系数dc(看图1D)。可变长度解码器2解码系数c(i,j)和VLC字的长度n。把系数c(i,j)应用于修改电路5。把长度n应用于控制电路6。
修改电路5以后面要描述的方式修改c(i,j)。修改后的系数c’(i,j)和前面的零游程,如果有的话,被可变长度编码器7应用与可变长度解码器2相同的代码簿再编码为新的VLC字W’。把新的VLC字的长度n’应用于控制电路6。如后所述,控制电路6控制开关3来选择原始VLC代码字W或新VLC字W’。之后通过多路复用器4把选择的代码字再插入在位流MP中的其原始位置。装置的输出是修改后的MPEG位流MP’。
该装置还接收辅助数据消息XD。以举例方式后面将假设辅助数据消息是一连串的字母数字字符,每一个被嵌入视频信号图像中。把该消息用于对每个字母数字字符产生若干符号(或数字)b(k)的数据符号发生器8。根据本发明的一方面,每个符号是模-n数字,这里n是预定整数。例如,对于n=4,符号为0,1,2和3。对于n=3,符号为0,1和2。在本示例中,假设n=2,即,符号为0和1,为传统位。
显然,并非代表字符的所有符号可被正确地嵌入在图像中。结果,数据符号发生器8应用的编码模式提供冗余度,使得即使一些符号是错误的也能在接收器端正确解码字符。文献中提供很多种冗余编码模式。在这里描述的实施例中,数据符号发生器每一图像块产生1位。对于垂直方向具有576像素水平方向具有768像素的传统的625行电视系统,8×8块的数目是72×96=6912。从而以6912位b(k)编码每一字符,其中k=1.6912表示图像块在图像中的位置。
把修改电路5设置成根据字符代码的相应符号修改每个块的给定变换系数c(i,j)。给定变换系数c(i,j)可以是DC系数c(0,0)或所述DC系数与前面DCT块的DC系数之差。给定变换系数也可以是锯齿序列的第k个系数,k足够高以掩盖修改引起的赝象。还可能修改每个块的两个或多个给定系数。
修改电路以一种方式修改c(i,j)使得输出系数c’(i,j)的模-n模值代表符号。显然,如果系数c(i,j)已经有适当的值将不修改该系数。如果系数是具有值0的AC系数,则不修改该系数,因为这将把再编码的过程变得相当复杂。在本示例中,将修改差分DC系数dc,并且每个数据符号b(k)是0或1。修改差分DC系数以在b(k)=0时假设偶数值,b(k)=1时假设奇数值。通过向系数增加+1或-1来执行修改。增加+1或-1的选择取决于已经处理的差分DC系数的累加和。增加+1或-1的选择还可取决于可变长度再编码后代码字W’的长度。结果,修改电路从控制电路6接收附加消息,如图2中的虚线所示。
图2所示的装置的操作由控制电路6的操作限定,并且将参考图3所示的操作步骤的流程图来描述。一检测到MPEG位流中的图像的开始就开始操作。在步骤301种,变量L和L’假设初始值0。变量L保持接收到的代码字W的累加长度。变量L’保持相应发送出去的代码字的累加长度。
在步骤302中,接收到DCT块k的预定系数c(i,j)和要被嵌入所述块中的位b(k)。在步骤303中,控制电路6通过把当前代码字W的长度n加到变量L而计算目前接收到的选择的代码字W的总长度。
在步骤304中,修改电路5检查选择的系数c(i,j)是否已代表要被嵌入的数据位b(k)。结果,电路检查是否满足条件c(i,j)的模n=b(k)。在本实施例中,其中n=2,偶数系数值c(i,j)表示b(k)=0,奇数系数值c(i,j)表示b(k)=1。如果满足条件,不需要对当前DCT块采取进一步的行动。在步骤305中,把开关3(图2)设置到位置“b”以把接收到的代码字W传递到输出。在同一步骤,至此传送来的代码字W的长度L’通过增加代码字W的长度n到变量L’而被更新。
如果不满足条件c(i,j)的模n=b(k),执行步骤306,其中修改系数c(i,j)以满足所述条件。在本实施例(其中差分DC系数dc被处理且n=2)中,修改包括向系数增加+1或-1。控制电路6选择+1或-1来应用于修改电路5,从而输出位流中的差分DC系数累加和与输入位流中相应和基本没有差别。这可简单地通过交替增加+1和-1来实现。
如果修改后的系数c’(i,j)和它的前面的0的游程可利用,则由编码器7对它们可变长度编码为代码字W’。在步骤307中,相对于位流长度评估用修改后的c’(i,j)系数取代输入系数c(i,j)的结果。结果,已经传送来的代码字的长度L’与修改后的代码字W’的长度n’之和L’+n’同相应接收的代码字系列的长度L比较。如果L’+n’大于L,不传送修改后的系数。即,执行步骤305,其中把开关3设置在位置“b”以传送未修改的系数c(i,j)。如果L’+n’小于或等于L,执行步骤308,其中把开关3(图2)设置在位置“a”以用修改后的代码字W’代替接收到的代码字W。在同一步骤通过向其增加代码字W’的长度n’更新变量L’。
上述替代模式保证输出位流的长度不会超出接收到的位流的长度。但是应注意只要原来的代码字被更短的代码字取代,各个代码字可长于它们的原始长度。这与上面参考讨论的Hartung等人公开的已有技术相比是明显的改进。
显然,输出位流的长度可短于接收到的位流的长度。这一点并不吸引人,因为它将引起时间标志(图1D中的132)相对移动。它还引起代码字或其一部分从一个传输包(图1D中的131)移动到另一个传输包,这在诸如以包级别来执行信号处理的数字视频记录的应用中是不利的。结果,操作流程进行到步骤309,其中检查给定序列代码字的处理是否已经完成。这种序列尤其是连续时间标志、传输包或片块之间的间隔。只要序列还没有被处理完成,程序返回到步骤302以把下一个数据位嵌入在下一个DCT块中。如果序列处理完成,执行步骤310,其中,在位流的适当位置插入必要的数目的虚拟位(即L~L’)以保持位数恒定。然后程序返回步骤301开始新的序列。
上面的描述通过具体示例被进一步阐明。在这个例子中,要把字符“A”嵌入水平方向上具有40像素垂直方向上具有24像素的图像中。根据MPEG标准压缩图像。尤其,把图像分割为8×8像素的5×3块。每个块进行离散余弦变换,产生每个8×8个系数的5×3DCT块。每行5块是一个片块。在图4种,阵列410表示块的差分DC系数。要被嵌入图像中的字符“A”以15位代码表示,作为420,如图4中阵列420所示。为了方便,在这个例子中15位代码是0和1交替的模式。考虑前面的描述显然可理解,嵌入器将把差分DC系数修改成为奇数(对于“1”)和偶数(对于“0”)值交替的模式。传送来的系数模式以图4中的430表示。可看到有两个不能被修改的系数431和432。提供字符代码表中的冗余度来确保模式仍被解码为字母“A”。
将讨论传送来的阵列430的一些值。以下面的表1为参考,该表1表示根据MPEG标准用于差分亮度DC系数值的范围的可变长度代码字的长度。
表1
第一片块的处理如下进行-第一代码字代表具有11位的长度(后面称为n)的系数值(后面称为c)62。系数具有需要(偶数)值并且不需要被修改。
-通过向系数增加+1修改第二代码字(c=12,n=7)。新的代码字(c’=13)具有相同的长度(n’=7)并且被传送。
-必须对第三代码字(c=-1,n=3)进行修改以假设一个偶数值。在这个阶段修改的合格方式是增加-1。但是,修改后的代码字(c’=-2,n’=4)可不取代接受到的代码字,因为这将引起传送的位数(L’+n’=22)超出接受到的位数(L=21)。
-必须修改第四代码字(c=16,n=9)。要应用的修改类型仍是增加-1。可取代代码字,这是由于新代码字(c’=15)具有更短的长度(n’=7)。接受到的位数现在为30并且传送的位数是28。
-由于在位流中有空闲空间,甚至在新代码字更长(n’=7)时也能修改(c’=8)第五代码字(c=7,n=6)。
在第一片块的末端有3个系数被修改。总位数被降低1,通过在片块末端插入一个虚拟位来对此进行补偿。通过向差分DC电平交替地增加+1和-1避免了亮度DC电平的漂移。
在这个例子中图像的第二片块具有相同的DC电平。由于交替模式的1和0以“1”开始,仅第一个系数需要被修改。各个代码字(c=62,n=11)用(c’=63,n’=11)取代。片块中的位数不改变。
第三片块的第一代码字(c=32,n=11)和第三代码字(c=0,n=3)不需要修改。第二代码字(c=-2,n=4)以(c’=-1,n’=3)取代。第四代码字(c=10,n=7)以(c’=9,n’=7)取代。但是第五代码字(c=3,n=4)不能被取代,因为传送修改后的系数(c’=4)需要n’=6位,而在这个阶段仅1个空闲位可利用。
图5表示从MPEG位流检索辅助数据的终点装置的简图。该装置包括从位流抽取预定代码字W的分析程序501,解码具有嵌入其中的数据的系数c(i,j)的可变长度解码器502,计算各个系数c(i,j)的模-n值的符号检索电路503。在这个实施例中,n=2,各个系数c(i,j)的模-n值(即1或0)构成嵌入的数据的位b(k)。消息再生器504执行图2所示的消息发生器8的反向操作并把符号(这里是嵌入图像中的位)的组合转换为消息XD的字符。但是应注意消息再生器把位的多个组合转换为相同的字符。例如,尽管两个位611和612不同于“原始”代码(图4中的420),图6中的位阵列610(如果数据根据图4的例子来嵌入则该装置检索它)仍是字符“A”。已有技术中已知有各种装置,如Hamming解码器或相关性检测器。相关性检测器计算接受到的代码(图7中的610)与所有字符代码的相关性,并选择具有最高相关性的字符。
本发明的通常应用是把识别数字家用录像机的系列号嵌入所述设备记录的MPEG内容中。图7表示这种录像机的简图。录像机接收要被记录的MPEG位流,并包括相应于图2所示的装置的数据嵌入器701,常规记录电路702和可移开的记录载体703,这种载体例如是磁带或光盘。数据嵌入器701接收固定存储在录像机中的唯一标识号704形式的数据消息XD。考虑前面对数据嵌入器的描述很容易理解录像机的操作。诸如图5所示的装置的解码器解码并显示嵌入的系列号。从而容易跟踪非法拷贝资料。
图8表示把未压缩的消息信号I编码为压缩的消息信号MP的装置,该装置适合于把辅助数据嵌入压缩输出信号中。该装置,在这个例子中是MPEG视频编码器包括从输入图像中减去预测图像的减法器801,离散余弦变换电路802,量化器803,数据嵌入器810,可变长度编码器804,反向量化器805,离散余弦反变换电路806,加法器807,和包括帧存储器的运动估测与补偿阶段808。电路原件801-808构成公知的MPEG编码器并且不需要进一步解释。数据嵌入器810接收要被嵌入的辅助数据消息XD。它以前述方式操作。即,它包括对每一数据字产生若干位b(k)的数据符号发生器(比较图2中的8),修改给定变换系数c(i,j)的修改电路(比较图2中的5),和在一个实施例中确定对系数添加+1或-1的控制电路(比较图2中的8)。在这个装置中不需要可变长度解码器(比较图2中的2)。原则上,每个给定系数无论其结果如何都可被修改来用于相应可变长度代码字的长度。但是具有0值的AC系数的修改优选被省略,因为这将显著影响可变长度编码器805执行的游程长度/霍夫曼编码组合的编码效率。
公开的是一种在消息信号(MP)中嵌入辅助数据(XD)的方法,该信号采样被可变长度编码,例如编码为MPEG压缩视频信号。选择的信号采样,例如构成视频图像的块的给定的变换系数(c(i,j)),通过解码(2)相应的可变长度代码字(W)而被检索。选择的信号采样被修改(5)以代表数据符号(b(k)),并且被再编码(7)。如果信号采样的修改引起给定序列代码字(片块、MPEG传输包)的长度超出其原始长度,或者如果它影响时钟参考时间标志在位流中的位置,则省略信号取样修改。插入虚拟位来补偿序列中数据的短缺。
权利要求
1.一种在消息信号(MP)中嵌入辅助数据(XD)的方法,包括修改选择的信号采样以代表所述辅助数据的各个符号的步骤,其特征在于所述信号采样是通过变换编码消息信号获得的变换系数(c(i,j))并且被编码为可变长度代码字,该方法还包括步骤-解码代表选择的系数的可变长度代码字;-修改所述选择的系数以代表辅助数据符号;-把修改的系数编码为新的可变长度代码字;以及-用新的代码字取代旧的代码字。
2.根据权利要求1的方法,其中,如果所述替代引起代码字的给定序列的长度基本超出所述序列的原始长度,则省略所述用新的代码字取代旧的代码字的步骤。
3.根据权利要求1的方法,还包括如果所述替代引起代码字的给定序列的长度基本短于原始序列的长度,在信号已经根据其被编码的格式所提供的字段中插入虚拟位的步骤。
4.根据权利要求2的方法,其中辅助数据包括每个以数据符号的多种组合来代表的数据字。
5.根据权利要求2或3的方法,其中所述给定序列是MPEG视频信号的片块。
6.根据权利要求2或3的方法,其中所述给定序列是MPEG传输流的传输包。
7.根据权利要求2或3的方法,其中所述给定序列是容纳在信号中的时钟参考时间标志之间的代码字序列。
8.根据权利要求1的方法,其中选择的系数是代表连续系数块的系数的DC系数之间的差值的差分DC系数。
9.根据权利要求8的方法,其中修改选择的系数的步骤包括增加一个值使得给定块系列的差分DC系数之和基本不被修改。
10.根据权利要求8的方法,其中块系列是MPEG视频信号的片块。
11.根据权利要求1的方法,其中所述数据符号以选择的系数的模-n值表示,其中n是预定整数。
12.根据权利要求11的方法,其中n=2。
13.一种从消息信号检索辅助数据的方法,包括从各个选择的信号采样检索所述辅助数据的符号的步骤,其特征在于所述信号采样是通过变换编码消息信号获得的变换系数,其被修改以代表所述符号,并且其被编码为可变长度代码字,检索步骤包括步骤解码代表选择的系数的可变长度代码字;从所述解码的系数检索每个辅助数据符号。
14.根据权利要求13的方法,其中数据符号的多种组合代表相同的数据字。
15.根据权利要求13的方法,其中所述数据符号以选择的系数的模-n值表示,其中n是预定整数。
16.一种在存储媒体上记录消息信号的方法,包括步骤接收具有变换系数形式的信号采样的压缩消息信号,该变换系数通过变换编码消息信号获得并且被编码为可变长度代码字;使用权利要求1的方法把辅助数据嵌入所述消息信号中;在所述存储媒体上记录带有嵌入的辅助数据的所述消息信号。
17.一种在消息信号中嵌入辅助数据的装置,包括修改选择的信号采样以表示所述辅助数据的各个符号的装置,其特征在于所述信号采样是通过变换编码消息信号获得的变换系数并且被编码为可变长度代码字,该装置还包括解码代表选择的系数的可变长度代码字的装置;修改所述选择的系数以代表辅助数据符号的装置;把修改的系数编码为新的可变长度代码字的装置;以及用新的代码字取代旧的代码字的装置。
18.一种从消息信号检索辅助数据的装置,包括从各个选择的信号采样检索所述辅助数据的符号的装置,其特征在于所述信号采样是通过变换编码消息信号获得的变换系数并且被修改来表示所述符号,还被编码为可变长度代码字,检索装置还包括解码代表选择的系数的可变长度代码字的装置;从所述解码的系数检索每个辅助数据符号的装置。
19.一种在存储媒体上记录消息信号的装置,包括接收具有变换系数形式的信号采样的压缩消息信号的装置,该变换系数通过变换编码消息信号获得并且被编码为可变长度代码字;使用权利要求17的装置把辅助数据嵌入所述消息信号中的装置;在所述存储媒体上记录带有嵌入的辅助数据的所述消息信号的装置。
20.一种带有嵌入的辅助数据的消息信号,所述辅助数据的各个符号由选择的信号采样代表,其特征在于所述信号采样是通过变换编码消息信号获得的变换系数并且被编码为可变长度代码字。
21.一种存储媒体,其上存储权利要求20的带有嵌入的辅助数据的消息信号。
全文摘要
公开一种在消息信号(MP)中嵌入辅助数据(XD)的方法,该信号采样被可变长度编码,例如编码为MPEG压缩视频信号。选择的信号采样,例如构成视频图像的块的给定的变换系数(c(i,j)),通过解码(2)相应的可变长度代码字(W)而被检索。选择的信号采样被修改(5)以代表数据符号(b(k)),并且被再编码(7)。如果信号采样的修改引起给定序列代码字(片块、MPEG传输包)的长度超出其原始长度,或者如果它影响时钟参考时间标志在位流中的位置,则省略该修改。插入虚拟位来补偿序列中数据的短缺。
文档编号H04N7/08GK1318176SQ00801413
公开日2001年10月17日 申请日期2000年7月4日 优先权日1999年7月15日
发明者W·H·A·布吕尔斯, A·J·M·德尼森 申请人:皇家菲利浦电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1