一种视频编码方法、解码方法及装置的制作方法

文档序号:7648299阅读:117来源:国知局
专利名称:一种视频编码方法、解码方法及装置的制作方法
技术领域
本发明涉及视频传输技术领域,具体是涉及一种视频编码方法、视频解码方法以及相应的装置。
背景技术
目前,网络已经成为人们日常工作和生活中必不可少的一种工具。随着网络相关技术的日趋成熟,视频聊天、在线观看视频之类的视频业务已经得到非常广泛的使用。
当前的主流视频压缩标准有MPEG4、H264等。在这些压缩技术中,编码图像一般分为三种类型帧内预测帧(I)、帧间预测帧(P)和双向预测帧(B)。I帧是利用了空间相关性,采用与JPEG类似的方式对静止的图像进行编码所产生的;P帧则是利用了时间相关性,采用前面的帧作为参考帧进行预测所产生的;B帧则是同时利用前面的帧和后面的帧作为参考帧进行预测所产生的。预测之后将产生残差数据,对残差数据进行DCT变换和量化,再输出编码码流,从而完成视频压缩过程。
对于视频业务而言,在传输过程中出现丢包是非常常见的。在网络环境恶劣或带宽极低的环境中,丢包会对视频质量造成非常大的影响。按照传统的视频编码方式,I帧的数据量平均为P帧的4倍,而在低带宽环境中,数据包越大,就越容易丢失,因此,I帧丢失的可能性更大。而I帧的丢失会影响后续一系列的P帧和B帧,导致这些数据全部报废,直至下一个I帧到来,这必然会对视频质量造成非常大的影响。
为尽量避免因丢包给视频质量造成的影响,目前一般是采用交织编码的处理方案,即进行信道编码,信道编码的原理是通过增大码流的冗余或增加延时来获得抗误码能力。比如,交织编码方案需要较大的缓冲区,容易引入延时;对于无线信道等较容易引入误码的信道而言,诸如前向纠错编码(FEC)之类的信道编码技术也是一种常用的方法,但这类方法为了对抗误码,需要引入一些冗余,而在低带宽环境中引入冗余无疑会对数据传输造成比较大的影响。
综上所述,目前用于低带宽环境的压缩编码方案都不能在保证数据传输速率的同时,很好地解决丢包影响视频质量的问题。

发明内容
有鉴于此,本发明所要解决的主要问题在于提供一种视频编码方法,以便在出现丢包时能够通过解码处理来避免丢包给视频质量所造成的影响。
本发明同时还提供了一种视频解码方法,以及视频编码装置和视频解码装置。
为解决上述问题,本发明提供了以下技术方案本发明的一种视频编码方法,设置视频编码结构包括多个组帧,每个组帧中包括一个I帧,该I帧之后至少包括一个P帧,该方法进一步包括读取一帧数据,根据预设的视频编码结构确定该帧的类型;在确定该帧为Ii,且i≠0时,通过分析该Ii帧及其前一组帧,确定Ii帧中包含在前一组帧的背景区域中的区域,将该区域作为Ii帧的背景区域,直接用相应的标记表示,并对其余的前景区域进行编码;在确定该帧为Pi,且i≠0时,通过分析该Pi帧及相应的Ii帧,确定Pi帧中包含在该Ii帧的背景区域中的区域,将该区域作为Pi帧的背景区域,直接用相应的标记表示,并对其余的前景区域进行编码;将得到的帧整合为编码码流。
进一步,所述通过分析该Ii帧及其前一组帧来确定Ii帧中包含在前一组帧的背景区域中的区域,包括对于I1帧,通过对0组帧进行运动检测测出该组帧的共同区域,将其作为0组帧的背景区域,之后通过运动检测测出I1帧中包含在0组帧的背景区域中的区域;对于其余i>1的Ii帧,则通过对前一组帧进行运动检测测出该组帧中包含在该前一组帧之前的组帧的背景区域中的区域,将其作为前一组帧的背景区域,之后通过运动检测测出Ii帧中包含在前一组帧的背景区域中的区域。
进一步,所述通过分析该Pi帧及相应的Ii帧来确定Pi帧中包含在该Ii帧的背景区域中的区域,包括通过运动检测测出Pi帧中包含在Ii帧的背景区域中的区域。
所述视频编码结构进一步包括多个大组,每个大组包括多个组帧,且每个大组中的组帧分别排序。
该方法进一步包括在确定该帧为第一个组帧时,直接对该组帧进行编码。
本发明的一种视频编码装置,所述装置包括接收及转发模块、Ii帧编码模块、Pi帧编码模块以及整合模块,其中,接收及转发模块,用于读取一帧数据,并根据该帧的类型将该帧发送到相应的编码模块;Ii帧编码模块,用于分析该Ii帧及其前一组帧,确定Ii帧中包含在前一组帧的背景区域中的区域,将该区域作为Ii帧的背景区域,直接用相应的标记表示,以及对其余的前景区域进行编码,将处理后的Ii帧发送给整合模块;Pi帧编码模块,用于分析该Pi帧及相应的Ii帧,确定Pi帧中包含在该Ii帧的背景区域中的区域,将该区域作为Pi帧的背景区域,直接用相应的标记表示,以及对其余的前景区域进行编码,将处理后的Pi帧发送给整合模块;整合模块,用于将收到的各个帧整合为编码码流;进一步,所述Ii帧编码模块用于通过对0组帧进行运动检测测出该组帧的共同区域,将其作为0组帧的背景区域,以及通过运动检测测出I1帧中包含在0组帧的背景区域中的区域;还用于通过对i>1的前一组帧进行运动检测测出该组帧中包含在该前一组帧之前的组帧的背景区域中的区域,将其作为前一组帧的背景区域,以及通过运动检测测出Ii帧中包含在前一组帧的背景区域中的区域。
进一步,所述Pi帧编码模块用于通过运动检测测出Pi帧中包含在Ii帧的背景区域中的区域,以及将所述区域作为Pi帧的背景区域。
视频编码结构进一步包括多个大组,每个大组包括多个组帧,且每个大组中的组帧分别排序。
所述装置进一步包括0组帧编码模块,用于直接对0组帧进行编码,并将编码后的0组帧发送给整合模块。
本发明的一种视频解码方法,收到的视频码流中包括多个组帧,每个组帧中包括一个I帧,该I帧之后至少包括一个P帧,该方法进一步包括A.对收到的0组帧进行解码;B.在收到当前组帧中的Ii帧,且i>0时,读取该Ii帧背景区域的标记,根据前一组帧的背景区域所对应的标记及码流信息,确定该Ii帧的背景区域所对应的码流信息,并对Ii帧中的前景区域进行解码;C.在收到当前组帧中的Pi帧,且i>0时,读取该Pi帧背景区域的标记,根据当前组帧中的Ii帧的背景区域所对应的标记及码流信息,确定该Pi帧背景区域所对应的码流信息,并对Pi帧中的前景区域进行解码;D.输出解码得到的视频码流。
该方法进一步包括判断i>0的组帧中的Ii帧和Pi帧是否收到,如果均收到,则执行步骤B或C的相应处理;如果是Ii帧未收到,则执行步骤A01;如果是Pi帧未收到,则执行步骤A02;A01.收到所丢失的Ii帧后续的Pi帧后,利用该Ii帧之前的组帧及所述Pi帧确定该Ii帧的可恢复背景区域并对其进行恢复处理,并根据该Ii帧前后的P帧恢复出该Ii帧的其余区域,之后再根据所述步骤C对所述Pi帧进行解码;A02.利用所丢失的Pi帧之后的Ii+1帧确定该Pi帧的可恢复背景区域并对其进行恢复处理,并根据该Pi帧之前和/或之后的帧恢复出该Pi帧的其余区域,之后再根据所述步骤B对所述Pi帧之后的Ii+1帧进行解码。
进一步,步骤A01中,所述利用Ii帧之前的组帧及Pi帧确定该Ii帧的可恢复背景区域包括确定Ii帧之前的组帧的背景区域,读取Pi帧的背景标记,将其所对应区域作为i组帧的背景区域,并将所述两个背景区域的并集作为所述Ii帧的可恢复背景区域;所述根据Ii帧前后的P帧恢复出该Ii帧的其余区域包括将所述其余区域划分为至少一个的待恢复区域,如果所述Ii帧前后的P帧在待恢复区域的对应区域有运动矢量信息,则根据所述运动矢量信息确定所述Ii帧在所述待恢复区域的运动矢量信息,并以所述Ii帧之前的Pi-1帧作为参考帧恢复出所述待恢复区域;如果最靠近所述Ii帧前后的两个P帧在待恢复区域的对应区域有帧内编码信息,则根据所述帧内编码信息恢复Ii帧中的所述待恢复区域。
进一步,所述视频码流中每个组帧中的I帧之后包括一个以上的P帧,步骤A01中,所述Ii帧前后的P帧在待恢复区域的对应区域有运动矢量信息如果是所述Ii帧前后的所有P帧均有运动矢量信息,则执行以所述运动矢量信息确定Ii帧在所述待恢复区域的运动矢量信息的步骤;如果是所述最靠近Ii帧前后的P帧均有运动矢量信息,则根据所述P帧的所述运动矢量信息执行以所述运动矢量信息确定Ii帧在所述待恢复区域的运动矢量信息的步骤。
所述最靠近所述Ii帧前后的两个P帧在待恢复区域的对应区域有帧内编码信息,如果是两个P帧均有帧内编码信息,则根据所述帧内编码信息,利用插值算法恢复出所述待恢复区域;如果是两个P帧中只有一个有帧内编码信息,则通过复制所述帧内编码信息恢复所述待恢复区域。
进一步,步骤A02中,所述利用Pi帧之后的I帧确定该Pi帧的可恢复背景区域包括将所述I帧的背景区域作为该Pi帧的可恢复背景区域;所述根据该Pi帧之前和/或之后的帧恢复出该Pi帧的其余区域包括将所述其余区域划分为至少一个以上的待恢复区域,如果i组帧中包括1个P帧,如果Ii帧在Pi帧的待恢复区域有背景标记,则认为Pi帧的该待恢复区域也是背景区域,根据所述背景标记对应的背景信息恢复出所述待恢复区域;如果Ii帧在Pi帧的待恢复区域是帧内编码信息,则利用Ii帧及Ii+1帧插值恢复Pi帧的所述待恢复区域;如果i组帧中包括两个或两个以上的P帧,且i组帧中靠近所述Pi帧的其他P帧在Pi帧的待恢复区域的对应区域有运动矢量信息,则利用该运动矢量信息,并以所述Pi帧之前的帧作为参考帧恢复出所述待恢复区域;如果i组帧中靠近所述Pi帧的其他P帧在Pi帧的待恢复区域的对应区域有帧内编码信息,则根据Ii帧和该P帧插值恢复Pi帧的待恢复区域;如果i组帧中靠近所述Pi帧的其他P帧在Pi帧的待恢复区域的对应区域有背景标记,则根据所述背景标记对应的背景信息恢复出所述待恢复区域。
本发明的一种视频解码装置,所述装置收到的视频码流中包括多个组帧,每个组帧中包括一个I帧,该I帧之后至少包括一个P帧,所述装置包括0组帧解码模块、Ii帧解码模块、Pi帧解码模块及输出模块,其中,0组帧解码模块,用于对收到的0组帧进行解码,以及将解码得到的码流信息发送给输出模块;Ii帧解码模块,用于读取Ii帧背景区域的标记,根据前一组帧的背景区域所对应的标记及码流信息,确定所述Ii帧背景区域所对应的码流信息,以及对Ii帧中的前景区域进行解码,还用于将解码得到的码流信息发送给输出模块;Pi帧解码模块,用于读取Pi帧背景区域的标记,根据当前组帧中的Ii帧的背景区域所对应的标记及码流信息,确定所述Pi帧背景区域所对应的码流信息,以及对Pi帧中的前景区域进行解码,还用于将解码得到的码流信息发送给输出模块;输出模块,用于输出解码得到的码流;其中,i>0。
所述装置进一步包括判断模块、Ii帧恢复模块和Pi帧恢复模块,其中,判断模块,用于在确定i>0的组帧中的Ii帧和Pi帧收到时,将所述Ii帧发送到Ii帧解码模块,将所述Pi帧发送到Pi帧解码模块,还用于在确定Ii帧未收到时,通知Ii帧恢复模块恢复所述Ii帧,以及用于在确定Pi帧未收到时,通知Pi帧恢复模块恢复所述Pi帧;Ii帧恢复模块,用于利用丢失的Ii帧之前的组帧以及所述Ii帧之后的Pi帧确定该Ii帧的可恢复背景区域并对其进行恢复处理,以及根据所述Ii帧前后的P帧恢复出该Ii帧的其余区域,还用于将所恢复的码流信息发送给输出模块;Pi帧恢复模块,用于利用丢失的Pi帧之后的Ii+1帧确定该Pi帧的可恢复背景区域并对其进行恢复处理,以及根据该Pi帧之前和/或之后的帧恢复出该Pi帧的其余区域,还用于将所恢复的码流信息发送给输出模块。
所述Ii帧恢复模块,用于确定Ii帧之前的组帧的背景区域,读取Pi帧的背景标记,将其所对应的区域作为i组帧的背景区域,将所述两个背景区域的并集作为所述Ii帧的可恢复背景区域;还用于在Ii帧前后的P帧在待恢复区域的对应区域有运动矢量信息时,根据所述运动矢量信息确定所述Ii帧在所述待恢复区域的运动矢量信息,以及以所述Ii帧之前的Pi-1帧作为参考帧恢复出所述待恢复区域;以及用于在Ii帧前后的P帧在待恢复区域的对应区域有帧内编码信息时,根据所述帧内编码信息恢复Ii帧中的所述待恢复区域。
所述Pi帧解码模块,用于将所述Ii+1帧的背景区域作为该Pi帧的可恢复背景区域;以及用于在i组帧中包括1个P帧,且Ii帧在Pi帧的待恢复区域有背景标记时,根据所述背景标记恢复出所述待恢复区域,以及在确定Ii帧在Pi帧的待恢复区域有帧内编码信息时,利用所述Ii帧及Ii+1帧插值恢复出所述待恢复区域;还用于在i组帧中包括两个或两个以上P帧,且i组帧中靠近所述Pi帧的其他P帧在Pi帧的待恢复区域的对应区域有运动矢量信息时,利用所述运动矢量信息,以所述Pi帧之前的帧作为参考帧恢复出所述待恢复区域,以及在所述其他P帧在Pi帧的待恢复区域的对应区域有帧内编码信息时,根据Ii帧和所述其他P帧插值恢复出所述待恢复区域,以及在所述其他P帧在Pi帧的待恢复区域的对应区域有背景标记时,根据所述背景标记对应的背景信息恢复出所述待恢复区域。
本发明所提供的视频编码及解码方案,使得在不增加视频编解码处理复杂度的同时,还对即时通信之类的视频作了优化处理。本发明的视频编码方案只对I帧和P帧进行编码,节省了码流,尤其适合于低带宽下的视频传输,而且还考虑到后期丢包时的解码处理,使得能够很方便地恢复出丢弃的I帧和P帧,在较大程度上对抗网络丢包,从而能够提高视频通信之类业务的连接成功率,极大地改善了用户体验。


图1为本发明的编码处理流程图;图2为本发明视频编码装置的结构示意图;图3为本发明的解码处理流程图;图4为本发明在存在丢包情况下的解码处理流程图;图5为本发明视频解码装置的结构示意图。
具体实施例方式
下面结合附图及具体实施例对本发明方案作进一步详细的描述。
为保证图像编码完整性的同时,尽量减少图像编码的复杂度,并且方便图像解码,本发明的视频编码方法主要是针对I帧和P帧进行编码处理。
本发明的视频编码方案是将视频编码为多个组,每个组包括一个I帧,该I帧之后至少包括一个P帧。具体来说,可以采取IPIPIP……的编码方式,也可以采取IPPIPPIPP……的编码方式,当然也可以采取其他的编码方式。
不管采用哪种具体编码方式,编码端的具体实现基本相同。因此本实施例仅以IPPIPPIPP……的编码方式为例进行详细描述。
本实施例的编码方式所对应的编码结构为I0、P01、P02、I1、P11、P12、I2、P21、P22、I3、P31、P32、I4、P41、P42、I5、P51、P52……。
可以看出,该实施例中,每组帧包括3个帧,比如,第一个组帧,即0组帧包括I0、P01、P02,第二个组帧,即1组帧则包括I1、P11、P12。当然,这里的0、01、02等只是为方便处理做的一个编号,显然也可以将其设置为其它编号,比如,将上述0组帧中的编号设置为10。且这里的0组帧也只是表示整个编码结构中的第一个组帧。为方便描述,在第一个组帧中的编号为10时,还可以将第一个组帧称为10组帧。
该编码处理如图1所示,包括以下步骤步骤101、读取一帧数据,根据预设的视频编码结构确定该帧的类型,如果该帧为Ii,且i≠0,则进入步骤102;如果该帧为Pi,且i≠0,则进入步骤103。
步骤102、通过分析本Ii帧及i-1组帧,确定Ii帧中包含在i-1组帧的背景区域中的区域,将该区域作为Ii帧的背景区域,直接用相应的标记来表示,并对其余的前景区域进行编码处理,之后进入步骤104。
其中,该i-1组帧即为i帧的前一组帧,为方便描述,将i帧的前一组帧称为i-1组帧。类似地,将i帧的前一组帧之前的组帧称为i-2组帧。
由步骤102可以看出,需要确定i-1组帧中的背景区域,在确定该背景区域后,即可为该背景区域中的每个小区域设置背景标记。从而,在确定Ii帧的背景区域后,即可为该背景区域用相应的背景标记来表示。
对于Ii帧来说,对其余的前景区域进行编码处理,具体是进行帧内编码。
步骤103、通过分析本Pi帧及相应的Ii帧,确定Pi帧中包含在该Ii帧的背景区域中的区域,将该区域作为Pi帧的背景区域,直接用相应的标记来表示,并对其余的前景区域进行编码处理,之后进入步骤104。
本步骤103中,背景标记的设置及标记与上述步骤102类似,因此不再赘述。
对于Pi帧来说,对其余的前景区域进行编码处理,具体是利用帧间预测进行编码,且该编码具体包括帧间编码及帧内编码。
步骤104、将步骤102及103得到的帧整合为编码码流,并发送到网络中。
当然,在编码时,对于第一个组帧来说,则可以直接对其进行编码处理,具体可以用传统方式对0组帧进行编码,之后进入步骤104。该传统方式具体可以为对I0帧进行帧内编码,对P0帧进行帧间编码。当然,也可以考虑采用其他的编码处理方案。
下面以对第二组帧,即I1、P11和P12进行编码为例,对上述步骤102~103的处理过程进行详细描述。
步骤102中,在对I1帧进行编码时,首先对0组帧进行运动检测,测出该组帧中的共同区域A0,将该区域作为该组帧的背景区域。具体来说,该运动检测即为比较I0、P01和P02中是否存在相同的像素,如果存在,则该像素所对应的区域即为背景区域。之后,在对该I1帧进行编码时,先结合0组帧进行运动检测,测出I1帧中包含在0组帧的背景区域A0中的区域B1,将该区域B1作为I1帧的背景区域,并直接用相应的标记来表示;其余的前景区域则进行帧内编码。
步骤103中,在对P11和P12帧进行编码时,首先通过运动检测测出这两个P帧中包含在I1帧的背景区域中的区域S11和S12,将区域S11和S12分别作为P11和P12帧的背景区域,并直接用相应的标记来表示。其余的前景区域,则通过帧间预测进行预测编码。
由此可以看出,根据0组帧确定了该组帧的背景区域后,后续与该0组帧相关的其余组帧中各帧的背景区域均包含在0组帧的背景区域中。而0组帧中的P01和P02帧中所有的区域都是前景区域,对其均需通过帧间编码进行处理。
另外,为方便后续的解码处理,本发明还可以设定视频编码结构为在间隔设定的组帧数后,进行重新计数。比如,可以设置编码结构为I0、P01、P02、I1、P11、P12、I2、P21、P22、I3、P31、P32、I4、P41、P42、I0、P01、P02、I1、P11、P12、I2、P21、P22、I3、P31、P32、I4、P41、P42、……。从而相当于在码流中设置同步点。也就是说,可以设定视频编码结构包括多个大组,每个大组包括多个组帧,并且每个大组中的组帧分别排序。
与上述视频编码方案对应的视频编码装置如图2所示,包括的模块有接收及转发模块、Ii帧编码模块、Pi帧编码模块及整合模块。
其中,接收及转发模块,用于读取一帧数据,并根据该帧的类型将该帧发送到相应的编码模块。
Ii帧编码模块,用于分析本Ii帧及i-1组帧,确定Ii帧中包含在i-1组帧的背景区域中的区域,将该区域作为Ii帧的背景区域,直接用相应的标记来表示,以及对其余的前景区域进行编码,并将处理后的Ii帧发送给整合模块。其中,这里所说的编码即为帧内编码处理。
Pi帧编码模块,用于分析本Pi帧及相应的Ii帧,确定Pi帧中包含在该i帧的背景区域中的区域,将该区域作为Pi帧的背景区域,直接用相应的标记来表示,以及对其余的前景区域进行编码处理,并将处理后的Pi帧发送给整合模块。这里所说的编码包括帧间编码和帧内编码处理。
整合模块,用于将收到的各个帧整合为编码码流,以及将编码码流发送到网络。
可以看出,上述Ii帧编码模块和Pi帧编码模块所处理的均为i>0的帧。
其中,上述的Ii帧编码模块中,分析本Ii帧及i-1组帧,确定Ii帧中包含在i-1组帧的背景区域中的区域,具体是先对i-1组帧进行运动检测,测出该组帧中的背景区域Ai-1,显然,该Ai-1是包括在0组帧的背景区域A0中的,之后,再结合该i-1组帧进行运动检测,测出Ii帧中包含在i-1组帧的背景区域Ai-1中的区域Bi,将该区域Bi作为Ii帧的背景区域。
上述的Pi帧编码模块中,分析本Pi帧及相应的Ii帧,确定Pi帧中包含在该Ii帧的背景区域中的区域,具体是通过运动检测测出这两个P帧中包含在Ii帧的背景区域中的区域Si1和Si2,并将这两个区域分别作为这两个P帧的背景区域。
对于0组帧来说,则可以通过设置0组帧编码模块,并用该编码模块进行编码处理。该模块可以用于直接对0组帧进行编码,并将编码后的0组帧发送给整合模块。
上述对图像编码处理进行了详细描述,下面再结合附图描述图像解码处理。
首先,图像在解码处理时,会收到包括多个组帧的视频码流,每个组帧中包括一个I帧,该I帧之后至少包括一个P帧。如前所述,该P帧可以为一个,也可以为多个。
在收到视频码流后,图像解码处理的实现流程如图3所示,对应以下步骤步骤301、对收到的0组帧进行解码。
具体来说,对0组帧中的I0帧进行帧内解码,对P0帧进行帧间解码。
步骤302、在收到当前组帧中的I1帧时,读取背景部分的标记,结合前一组帧的背景区域所对应的标记及码流信息,确定该I1帧的背景部分所对应的码流信息,并对前景区域的码流进行解码,最后恢复出整帧图像。
本步骤中,前一组帧的背景区域,就是步骤301中解码出的0组帧的背景区域,该背景区域具体可以通过分析得出。
本步骤中,对前景区域的码流进行解码,具体是对其进行帧内解码。
步骤303、在收到当前组帧中的P1帧时,读取该P1帧背景区域的标记,结合步骤302中得到的I1帧的背景区域所对应的标记及码流信息,确定该P1帧背景区域所对应的码流信息,并对P1帧的前景区域进行解码,最后恢复出整帧图像。
步骤304、对后续组帧中的Ii重复执行上述步骤302的处理,对Pi则重复执行上述步骤303的处理,从而得到解码后的图像。
通过上述处理即实现了对组帧的解码。
上述步骤302至304的解码处理如果换一种描述方式,即为下述两个步骤步骤A、在收到当前组帧中的Ii帧,且i>0时,读取该Ii帧背景区域的标记,根据前一组帧的背景区域所对应的标记及码流信息,确定该Ii帧的背景区域所对应的码流信息,并对Ii帧中的前景区域进行解码;步骤B、在收到当前组帧中的Pi帧,且i>0时,读取该Pi帧背景区域的标记,根据当前组帧中的Ii帧的背景区域所对应的标记及码流信息,确定该Pi帧背景区域所对应的码流信息,并对Pi帧中的前景区域进行解码。
之后再将解码得到的视频码流输出。
假如编码码流在传输过程中出现了丢包,则在解码过程中,需要通过一系列的处理尽量恢复出丢掉的包的内容。
本发明的编码码流中只包括I帧和P帧,因此丢包只涉及这两种帧。因此,在缓存网络包时,首先要判断是否出现丢包,如果没有丢包,则采用上述步骤301~304的处理即可;如果出现了丢包,则需要判断丢失的帧的类型,并对该类型的帧进行恢复处理。下面结合图4对该具体实现流程进行详细描述。
如图4所示,该实现流程对应以下步骤步骤401~402、缓存网络包,并判断i>0的组帧中的Ii帧和Pi帧是否收到,如果均收到,则执行上述步骤302~304,也即执行上述步骤A和B的处理;如果Ii帧未收到,则执行步骤403;如果Pi帧未收到,则执行步骤404。
步骤403、收到丢失的Ii帧后续的Pi帧后,利用该Ii帧之前的组帧及所述Pi帧确定该Ii帧的可恢复背景区域,对其进行恢复,并根据该Ii帧前后的P帧恢复出该Ii帧的其余区域,之后再按照上述步骤303的处理方式对该Pi帧进行解码,也即根据上述步骤B对该Pi帧进行解码,并继续执行后续的步骤。
步骤404、利用丢失的Pi帧之后的Ii+1帧确定该Pi帧的可恢复背景区域,对其进行恢复,并根据该Pi帧之前和/或之后的帧恢复出该Pi帧的其余区域,之后再根据上述步骤302的处理方式对该Pi帧之后的Ii+1帧进行解码,也即根据上述步骤A对Pi帧之后的Ii+1帧进行解码,并继续执行后续的步骤。
对于上述帧恢复处理来说,I0帧无法恢复,因此,在视频编码结构中设置多个大组的情况下,如果某个大组中的I0帧丢失,则需要等待下一个大组,即在得到下一个大组中的I0帧后,再进行解码处理。
下面以I2帧和P42帧丢失为例,对上述步骤403和404的具体处理进行详细描述。
其中,上述步骤403中,利用该I2帧之前的组帧及之后的Pi帧确定该I2帧的可恢复背景区域,是通过I2帧之前的1组帧,以及I2帧之后的P21和P22确定。具体来说,该处理包括通过分析1组帧来确定1组帧的背景区域,将该背景区域称为R1,并读取P21和P22帧中的背景区域的标记,将这两个P帧的背景标记所对应的区域之和作为2组帧的背景区域R2。显然,在2组帧中,I2的实际背景区域RI2包含在1组帧的背景区域R1中,P21和P22的背景区域则包含在I2的背景区域中,P21和P22帧的背景区域的并集即为I2的背景区域的一部分,但该并集可能存在重复的区域。因此,如果P21和P22帧的背景区域的并集与1组帧的背景区域R1存在交集,将该交集称为R,则该交集R必然包含在I2的实际背景区域RI2中。该交集R具体可由公式(1)得出。
R=R1∩(Rp21∪Rp22)(1)因此,可以根据1组帧中已经解码得到的背景区域的码流信息恢复出I2的大部分实际背景区域。
对于其余未恢复的区域,则可以通过分析I2帧之前和之后的P帧获得。
为方便检测,可以将其余区域划分为至少一个的待恢复区域。
之后,如果I2帧之前和之后的4个P帧对应该I2帧的待恢复区域存在运动矢量信息,则可以根据该运动矢量信息确定该I2帧的这个待恢复区域的运动矢量信息,之后再利用该I2帧之前的P12帧作为参考帧恢复出该待恢复区域。
具体来说,由于本实施例中,I2帧之前和之后的P帧包括P11、P12、P21和P12,因此,在恢复I2中的待恢复区域时,可以分析这四个P帧在相应区域的运动矢量信息。设BI2为I2帧中未恢复出的一块区域,Bp11、Bp12、Bp21、Bp22分别代表P11、P12、P21和P12的对应区域,记录一个变量MV,该MV的算法如公式(2)所示。
MV=(MVBp11+MVBp12+MVBp21+MVBp22)/4 (2)则以MV作为B12的运动矢量,以之前的P12帧作为参考帧恢复出该BI2块。
以上仅以I2帧中的BI2块为例,对于其它前景区域,可以用同样的方式进行处理,直至恢复出整个I2帧。
当然,如果I2帧之前和之后的最靠近的两个P帧对应该待恢复区域存在运动矢量信息,本实施例中这两个P帧即为P12帧和P21帧,而其余两个较远的P帧,即P11帧和P22帧所对应的不全是运动矢量信息,则只根据P12帧和P21帧的运动矢量信息确定该I2帧的待恢复区域的运动矢量信息,之后同样根据所得的运动矢量信息及P12帧作为参考帧恢复出该待恢复区域。
如果I2帧之前和之后的最靠近的两个P帧,即P12帧和P21帧对应该待恢复区域有帧内编码,则需要根据帧内编码信息恢复I2帧中的待恢复区域。具体来说,如果是两个P帧均有帧内编码信息,则根据该帧内编码信息,并利用插值算法恢复出该待恢复区域;如果是两个P帧中只有一个有帧内编码信息,则通过复制帧内编码信息恢复出该待恢复区域。
另外,在恢复出I2帧的全部待恢复区域后,为改善视觉效果,还可以对所有的区域进行边界滤波处理。
上述实施例中帧的编码结构为I0、P01、P02、I1、P11、P12、I2、P21、P22、I3、P31、P32、I4、P41、P42、I5、P51、P52……。因此,在恢复I2帧时,是利用了P11、P12、P21和P22。在编码结构为其它方式时,同样是利用该Ii帧前后的P帧进行恢复处理,所不同的只是可以利用的P帧的个数不同,因此这里不再赘述。
对于P42帧丢失的情况来说,在根据上述步骤404进行恢复时,可以先利用该P42帧之后的I5帧确定该P42帧的可恢复背景区域。再利用该P42帧之前的P41帧和/或I4帧恢复出该P42帧的前景区域。
具体来说,由于第4组帧的背景区域一定包括在P42帧的背景区域中,而I5帧的背景区域又一定包括在第4组帧的背景区域中,因此,I5帧的背景区域必然在P42帧的背景区域内。从而,可以将该区域作为P42帧的可恢复背景区域。
剩下的其余区域同样分为待恢复区域,可以利用与该P42帧相邻的P41帧进行恢复。具体来说,如果P41帧中与待恢复区域对应的区域有运动矢量信息,则将该运动矢量信息作为该待恢复区域的运动矢量信息,并以P41帧作为参考帧进行恢复处理。当然,如果P41帧中与待恢复区域对应的区域有帧内编码,则可以根据该I4帧及P41帧恢复出待恢复区域;如果P41帧中与待恢复区域对应的区域有背景标记,则根据所述背景标记对应的背景信息恢复出待恢复区域。
另外,在恢复出P42帧的全部待恢复区域后,为改善视觉效果,还可以对所有的区域进行边界滤波处理。
上述实施例所针对的编码结构为I0、P01、P02、I1、P11、P12、I2、P21、P22、I3、P31、P32、I4、P41、P42、I5、P51、P52……。如果I帧之间的P帧为2个以上,则可以直接采用上述恢复方案来恢复I帧和P帧。如果I帧之间的P帧为1个,则在上述步骤404中,利用该P帧前后的I帧恢复出P帧的其余区域。且如果I帧在P帧的待恢复区域有帧内编码信息,则说明该Ii帧在该待恢复区域为前景区域,相应地,后面的Ii+1帧在该待恢复区域必然也是前景区域,因此可以利用Ii帧与Ii+1帧插值恢复出该待恢复区域。如果不是帧内编码信息,而是背景标记,则认为所丢失的P帧在该待恢复区域也是背景区域,因此直接根据所述背景标记对应的背景信息恢复出待恢复区域。虽然针对不同的编码结构,在恢复其余区域时的处理略有不同,但处理原则相同。
本发明的视频解码方案所对应的视频解码装置如图5所示,包括的模块有0组帧解码模块、Ii帧解码模块及Pi帧解码模块及输出模块。
其中,0组帧解码模块,用于对收到的0组帧进行解码,以及将解码得到的码流信息发送给输出模块;Ii帧解码模块,用于读取Ii帧背景区域的标记,根据前一组帧的背景区域所对应的标记及码流信息,确定所述Ii帧背景区域所对应的码流信息,以及对Ii帧中的前景区域进行解码,还用于将解码得到的码流信息发送给输出模块;Pi帧解码模块,用于读取Pi帧背景区域的标记,根据当前组帧中的Ii帧的背景区域所对应的标记及码流信息,确定该Pi帧背景区域所对应的码流信息,以及对Pi帧中的前景区域进行解码,还用于将解码得到的码流信息发送给输出模块;输出模块,用于输出解码得到的码流。
其中,上述的i>0。
当然,针对丢包的情况来说,所述装置还需要进一步包括判断模块、Ii帧恢复模块和Pi帧恢复模块,其中,判断模块,用于在确定i>0的组帧中的Ii帧和Pi帧收到时,将所述Ii帧发送到Ii帧解码模块,将所述Pi帧发送到Pi帧解码模块,还用于在确定Ii帧未收到时,通知Ii帧恢复模块恢复所述Ii帧,以及用于在确定Pi帧未收到时,通知Pi帧恢复模块恢复所述Pi帧;Ii帧恢复模块,用于利用丢失的Ii帧之前的组帧以及所述Ii帧之后的Pi帧确定该Ii帧的可恢复背景区域,并对其进行恢复处理,以及根据所述Ii帧前后的P帧恢复出该Ii帧的其余区域,还用于将所恢复的码流信息发送给输出模块;Pi帧恢复模块,用于利用丢失的Pi帧0之后的I帧确定该Pi帧的可恢复背景区域,并对其进行恢复处理,并根据该Pi帧之前和/或之后的帧恢复出该Pi帧的其余区域,还用于将所恢复的码流信息发送给输出模块。
具体来说,Ii帧恢复模块,用于确定Ii帧之前的组帧的背景区域,读取Pi帧的背景标记,将其所对应的区域作为i组帧的背景区域,将所述两个背景区域的并集作为所述Ii帧的可恢复背景区域;还用于在Ii帧前后的P帧在待恢复区域的对应区域有运动矢量信息时,根据所述运动矢量信息确定所述Ii帧在所述待恢复区域的运动矢量信息,以及以所述Ii帧之前的Pi-1帧作为参考帧恢复出所述待恢复区域;以及用于在Ii帧前后的P帧在待恢复区域的对应区域有帧内编码信息时,根据所述帧内编码信息恢复Ii帧中的所述待恢复区域。
Pi帧解码模块,用于将Ii+1帧的背景区域作为该Pi帧的可恢复背景区域;以及用于在i组帧中包括1个P帧,且Ii帧在Pi帧的待恢复区域有背景标记时,根据所述背景标记恢复出所述待恢复区域,以及在确定Ii帧在Pi帧的待恢复区域有帧内编码信息时,利用Ii帧及Ii+1帧插值恢复出所述待恢复区域;还用于在i组帧中包括两个或两个以上P帧,且i组帧中靠近所述Pi帧的其他P帧在Pi帧的待恢复区域的对应区域有运动矢量信息时,利用所述运动矢量信息,以所述Pi帧之前的帧作为参考帧恢复出所述待恢复区域,以及在所述其他P帧在Pi帧的待恢复区域的对应区域有帧内编码信息时,根据Ii帧及该其他P帧恢复出待恢复区域,在所述其他P帧在Pi帧的待恢复区域的对应区域有背景标记时,根据所述背景标记对应的背景信息恢复出所述待恢复区域。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
权利要求
1.一种视频编码方法,其特征在于,设置视频编码结构包括多个组帧,每个组帧中包括一个I帧,该I帧之后至少包括一个P帧,该方法进一步包括读取一帧数据,根据预设的视频编码结构确定该帧的类型;在确定该帧为Ii,且i≠0时,通过分析该Ii帧及其前一组帧,确定Ii帧中包含在前一组帧的背景区域中的区域,将该区域作为Ii帧的背景区域,直接用相应的标记表示,并对其余的前景区域进行编码;在确定该帧为Pi,且i≠0时,通过分析该Pi帧及相应的Ii帧,确定Pi帧中包含在该Ii帧的背景区域中的区域,将该区域作为Pi帧的背景区域,直接用相应的标记表示,并对其余的前景区域进行编码;将得到的帧整合为编码码流。
2.根据权利要求1所述的一种视频编码方法,其特征在于,所述通过分析该Ii帧及其前一组帧来确定Ii帧中包含在前一组帧的背景区域中的区域,包括对于I1帧,通过对0组帧进行运动检测测出该组帧的共同区域,将其作为0组帧的背景区域,之后通过运动检测测出I1帧中包含在0组帧的背景区域中的区域;对于其余i>1的Ii帧,则通过对前一组帧进行运动检测测出该组帧中包含在该前一组帧之前的组帧的背景区域中的区域,将其作为前一组帧的背景区域,之后通过运动检测测出Ii帧中包含在前一组帧的背景区域中的区域。
3.根据权利要求1所述的一种视频编码方法,其特征在于,所述通过分析该Pi帧及相应的Ii帧来确定Pi帧中包含在该Ii帧的背景区域中的区域,包括通过运动检测测出Pi帧中包含在Ii帧的背景区域中的区域。
4.根据权利要求1所述的一种视频编码方法,其特征在于,所述视频编码结构进一步包括多个大组,每个大组包括多个组帧,且每个大组中的组帧分别排序。
5.根据权利要求1至4中任意一项所述的方法,其特征在于,该方法进一步包括在确定该帧为第一个组帧时,直接对该组帧进行编码。
6.一种视频编码装置,其特征在于,所述装置包括接收及转发模块、Ii帧编码模块、Pi帧编码模块以及整合模块,其中,接收及转发模块,用于读取一帧数据,并根据该帧的类型将该帧发送到相应的编码模块;Ii帧编码模块,用于分析该Ii帧及其前一组帧,确定Ii帧中包含在前一组帧的背景区域中的区域,将该区域作为Ii帧的背景区域,直接用相应的标记表示,以及对其余的前景区域进行编码,将处理后的Ii帧发送给整合模块;Pi帧编码模块,用于分析该Pi帧及相应的Ii帧,确定Pi帧中包含在该Ii帧的背景区域中的区域,将该区域作为Pi帧的背景区域,直接用相应的标记表示,以及对其余的前景区域进行编码,将处理后的Pi帧发送给整合模块;整合模块,用于将收到的各个帧整合为编码码流;其中,i>0。
7.根据权利要求6所述的一种视频编码装置,其特征在于,所述Ii帧编码模块用于通过对0组帧进行运动检测测出该组帧的共同区域,将其作为0组帧的背景区域,以及通过运动检测测出I1帧中包含在0组帧的背景区域中的区域;还用于通过对i>1的前一组帧进行运动检测测出该组帧中包含在该前一组帧之前的组帧的背景区域中的区域,将其作为前一组帧的背景区域,以及通过运动检测测出Ii帧中包含在前一组帧的背景区域中的区域。
8.根据权利要求6所述的一种视频编码装置,其特征在于,所述Pi帧编码模块用于通过运动检测测出Pi帧中包含在Ii帧的背景区域中的区域,以及将所述区域作为Pi帧的背景区域。
9.根据权利要求6所述的一种视频编码装置,其特征在于,视频编码结构进一步包括多个大组,每个大组包括多个组帧,且每个大组中的组帧分别排序。
10.根据权利要求6所述的一种视频编码装置,其特征在于,所述装置进一步包括0组帧编码模块,用于直接对0组帧进行编码,并将编码后的0组帧发送给整合模块。
11.一种视频解码方法,其特征在于,收到的视频码流中包括多个组帧,每个组帧中包括一个I帧,该I帧之后至少包括一个P帧,该方法进一步包括A.对收到的0组帧进行解码;B.在收到当前组帧中的Ii帧,且i>0时,读取该Ii帧背景区域的标记,根据前一组帧的背景区域所对应的标记及码流信息,确定该Ii帧的背景区域所对应的码流信息,并对Ii帧中的前景区域进行解码;C.在收到当前组帧中的Pi帧,且i>0时,读取该Pi帧背景区域的标记,根据当前组帧中的Ii帧的背景区域所对应的标记及码流信息,确定该Pi帧背景区域所对应的码流信息,并对Pi帧中的前景区域进行解码;D.输出解码得到的视频码流。
12.根据权利要求11所述的一种视频解码方法,其特征在于,该方法进一步包括判断i>0的组帧中的Ii帧和Pi帧是否收到,如果均收到,则执行步骤B或C的相应处理;如果是Ii帧未收到,则执行步骤A01;如果是Pi帧未收到,则执行步骤A02;A01.收到所丢失的Ii帧后续的Pi帧后,利用该Ii帧之前的组帧及所述Pi帧确定该Ii帧的可恢复背景区域并对其进行恢复处理,并根据该Ii帧前后的P帧恢复出该Ii帧的其余区域,之后再根据所述步骤C对所述Pi帧进行解码;A02.利用所丢失的Pi帧之后的Ii+1帧确定该Pi帧的可恢复背景区域并对其进行恢复处理,并根据该Pi帧之前和/或之后的帧恢复出该Pi帧的其余区域,之后再根据所述步骤B对所述Pi帧之后的Ii+1帧进行解码。
13.根据权利要求12所述的一种视频解码方法,其特征在于,步骤A01中,所述利用Ii帧之前的组帧及Pi帧确定该Ii帧的可恢复背景区域包括确定Ii帧之前的组帧的背景区域,读取Pi帧的背景标记,将其所对应区域作为i组帧的背景区域,并将所述两个背景区域的并集作为所述Ii帧的可恢复背景区域;所述根据Ii帧前后的P帧恢复出该Ii帧的其余区域包括将所述其余区域划分为至少一个的待恢复区域,如果所述Ii帧前后的P帧在待恢复区域的对应区域有运动矢量信息,则根据所述运动矢量信息确定所述Ii帧在所述待恢复区域的运动矢量信息,并以所述Ii帧之前的Pi-1帧作为参考帧恢复出所述待恢复区域;如果最靠近所述Ii帧前后的两个P帧在待恢复区域的对应区域有帧内编码信息,则根据所述帧内编码信息恢复Ii帧中的所述待恢复区域。
14.根据权利要求13所述的一种视频解码方法,其特征在于,所述视频码流中每个组帧中的I帧之后包括一个以上的P帧,步骤A01中,所述Ii帧前后的P帧在待恢复区域的对应区域有运动矢量信息如果是所述Ii帧前后的所有P帧均有运动矢量信息,则执行以所述运动矢量信息确定Ii帧在所述待恢复区域的运动矢量信息的步骤;如果是所述最靠近Ii帧前后的P帧均有运动矢量信息,则根据所述P帧的所述运动矢量信息执行以所述运动矢量信息确定Ii帧在所述待恢复区域的运动矢量信息的步骤。
15.根据权利要求13所述的一种视频解码方法,其特征在于,所述最靠近所述Ii帧前后的两个P帧在待恢复区域的对应区域有帧内编码信息,如果是两个P帧均有帧内编码信息,则根据所述帧内编码信息,利用插值算法恢复出所述待恢复区域;如果是两个P帧中只有一个有帧内编码信息,则通过复制所述帧内编码信息恢复所述待恢复区域。
16.根据权利要求12所述的一种视频解码方法,其特征在于,步骤A02中,所述利用Pi帧之后的I帧确定该Pi帧的可恢复背景区域包括将所述I帧的背景区域作为该Pi帧的可恢复背景区域;所述根据该Pi帧之前和/或之后的帧恢复出该Pi帧的其余区域包括将所述其余区域划分为至少一个以上的待恢复区域,如果i组帧中包括1个P帧,如果Ii帧在Pi帧的待恢复区域有背景标记,则认为Pi帧的该待恢复区域也是背景区域,根据所述背景标记对应的背景信息恢复出所述待恢复区域;如果Ii帧在Pi帧的待恢复区域是帧内编码信息,则利用Ii帧及Ii+1帧插值恢复Pi帧的所述待恢复区域;如果i组帧中包括两个或两个以上的P帧,且i组帧中靠近所述Pi帧的其他P帧在Pi帧的待恢复区域的对应区域有运动矢量信息,则利用该运动矢量信息,并以所述Pi帧之前的帧作为参考帧恢复出所述待恢复区域;如果i组帧中靠近所述Pi帧的其他P帧在Pi帧的待恢复区域的对应区域有帧内编码信息,则根据Ii帧和该P帧插值恢复Pi帧的待恢复区域;如果i组帧中靠近所述Pi帧的其他P帧在Pi帧的待恢复区域的对应区域有背景标记,则根据所述背景标记对应的背景信息恢复出所述待恢复区域。
17.一种视频解码装置,其特征在于,所述装置收到的视频码流中包括多个组帧,每个组帧中包括一个I帧,该I帧之后至少包括一个P帧,所述装置包括0组帧解码模块、Ii帧解码模块、Pi帧解码模块及输出模块,其中,0组帧解码模块,用于对收到的0组帧进行解码,以及将解码得到的码流信息发送给输出模块;Ii帧解码模块,用于读取Ii帧背景区域的标记,根据前一组帧的背景区域所对应的标记及码流信息,确定所述Ii帧背景区域所对应的码流信息,以及对Ii帧中的前景区域进行解码,还用于将解码得到的码流信息发送给输出模块;Pi帧解码模块,用于读取Pi帧背景区域的标记,根据当前组帧中的Ii帧的背景区域所对应的标记及码流信息,确定所述Pi帧背景区域所对应的码流信息,以及对Pi帧中的前景区域进行解码,还用于将解码得到的码流信息发送给输出模块;输出模块,用于输出解码得到的码流;其中,i>0。
18.根据权利要求17所述的一种视频解码装置,其特征在于,所述装置进一步包括判断模块、Ii帧恢复模块和Pi帧恢复模块,其中,判断模块,用于在确定i>0的组帧中的Ii帧和Pi帧收到时,将所述Ii帧发送到Ii帧解码模块,将所述Pi帧发送到Pi帧解码模块,还用于在确定Ii帧未收到时,通知Ii帧恢复模块恢复所述Ii帧,以及用于在确定Pi帧未收到时,通知Pi帧恢复模块恢复所述Pi帧;Ii帧恢复模块,用于利用丢失的Ii帧之前的组帧以及所述Ii帧之后的Pi帧确定该Ii帧的可恢复背景区域并对其进行恢复处理,以及根据所述Ii帧前后的P帧恢复出该Ii帧的其余区域,还用于将所恢复的码流信息发送给输出模块;Pi帧恢复模块,用于利用丢失的Pi帧之后的Ii+1帧确定该Pi帧的可恢复背景区域并对其进行恢复处理,以及根据该Pi帧之前和/或之后的帧恢复出该Pi帧的其余区域,还用于将所恢复的码流信息发送给输出模块。
19.根据权利要求18所述的一种视频解码装置,其特征在于,所述Ii帧恢复模块,用于确定Ii帧之前的组帧的背景区域,读取Pi帧的背景标记,将其所对应的区域作为i组帧的背景区域,将所述两个背景区域的并集作为所述Ii帧的可恢复背景区域;还用于在Ii帧前后的P帧在待恢复区域的对应区域有运动矢量信息时,根据所述运动矢量信息确定所述Ii帧在所述待恢复区域的运动矢量信息,以及以所述Ii帧之前的Pi-1帧作为参考帧恢复出所述待恢复区域;以及用于在Ii帧前后的P帧在待恢复区域的对应区域有帧内编码信息时,根据所述帧内编码信息恢复Ii帧中的所述待恢复区域。
20.根据权利要求18所述的一种视频解码装置,其特征在于,所述Pi帧解码模块,用于将所述Ii+1帧的背景区域作为该Pi帧的可恢复背景区域;以及用于在i组帧中包括1个P帧,且Ii帧在Pi帧的待恢复区域有背景标记时,根据所述背景标记恢复出所述待恢复区域,以及在确定Ii帧在Pi帧的待恢复区域有帧内编码信息时,利用所述Ii帧及Ii+1帧插值恢复出所述待恢复区域;还用于在i组帧中包括两个或两个以上P帧,且i组帧中靠近所述Pi帧的其他P帧在Pi帧的待恢复区域的对应区域有运动矢量信息时,利用所述运动矢量信息,以所述Pi帧之前的帧作为参考帧恢复出所述待恢复区域,以及在所述其他P帧在Pi帧的待恢复区域的对应区域有帧内编码信息时,根据Ii帧和所述其他P帧插值恢复出所述待恢复区域,以及在所述其他P帧在Pi帧的待恢复区域的对应区域有背景标记时,根据所述背景标记对应的背景信息恢复出所述待恢复区域。
全文摘要
本发明公开了一种视频编码方法,该方法设置视频编码结构包括多个组帧,每个组帧中包括一个I帧,该I帧之后至少包括一个P帧,之后根据预设的视频编码结构确定读取到的帧的类型,对i>0的I
文档编号H04N7/32GK101072344SQ20071007379
公开日2007年11月14日 申请日期2007年3月30日 优先权日2007年3月30日
发明者吕静, 李世平 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1