CN200410043165.3
2004.05.13
CN1622471A
2005.06.01
撤回
无权
发明专利申请公布后的视为撤回|||实质审查的生效|||公开
H03M13/00
LG电子株式会社;
徐光德
韩国汉城
2003.06.03 KR 35724/2003
中原信达知识产权代理有限责任公司
樊卫民;袁炳泽
本发明提供了一个确定运动矢量和宏块类型的方法。所述的方法包括:接收一个具有N帧的高帧-速率视频信息流;跳过帧N-1;根据被跳过的帧N-1的宏块类型分配一个运动矢量给帧N的宏块;根据被跳过的帧N-1的宏块类型分配一个宏块类型给帧N的宏块类型;以及输出一个低帧-速率视频信息流。
1. 一种确定运动矢量和宏块类型的方法,其包括下列步骤:接收具有N帧的高帧速率视频流;跳过帧N-1;根据被跳过的帧N-1的宏块类型将一个运动矢量分配给帧N的宏块;根据被跳过的帧N-1的宏块类型将一个宏块类型分配给帧N的宏块;输出一个低帧-率视频流。2. 根据权利要求1的方法,其中帧N的宏块类型被分为交互类型和跳过类型。3. 根据权利要求2的方法,其中当帧N的宏块是交互类型的时候,根据被跳过的帧N-1的宏块类型确定帧N的宏块的运动矢量。4. 根据权利要求2的方法,其中当帧N的宏块是跳过类型的时候,根据与帧N的宏块所在位置大致相同的帧N-1的宏块类型确定帧N的宏块类型。5. 如权利要求4的方法,进一步包括:当新的宏块是交互类型的时候,确定帧N的宏块的新的运动矢量。6. 根据权利要求5的方法,其中确定帧N的宏块的新的运动矢量,以便使其与帧N的宏块所在位置大致相同的帧N-1的宏块的运动矢量相同。7. 一种确定运动矢量和宏块类型的方法,其包括下列步骤:确定一个被跳过的帧N-1后面的被传输的帧N的宏块是交互类型还是跳过类型;当帧N的宏块是内部类型的时候,根据被跳过的帧N-1的宏块类型将一个新的运动矢量分配给帧N;和当帧N的宏块是跳过类型的时候,根据与帧N的宏块所在位置大致相同的帧N-1的宏块类型确定帧N的新宏块类型。8. 如权利要求7的方法,进一步包括:当帧N的宏块是内部类型的时候,确定被跳过的帧N-1的宏块类型;当被跳过的帧N-1的宏块是内部类型的时候,将一个无穷大运动矢量分配给帧N的宏块;当被跳过的帧N-1的宏块是跳过类型的时候,分配帧N的宏块的相同运动矢量;和当被跳过的帧N-1的宏块是交互类型的时候,将分配给帧N的宏块的运动矢量和分配给帧N-1的宏块的运动矢量的总和作为帧N的新的运动矢量进行分配。9. 如权利要求7的方法,进一步包括:当帧N的宏块是跳过类型的时候,确定与帧N的宏块所在位置大致相同的帧N-1的宏块类型;当帧N-1的宏块是内部类型的时候,确定帧N的宏块为内部类型;当帧N-1的宏块是跳过类型的时候,确定帧N的宏块为一个跳过类型;和当帧N-1的宏块是交互类型的时候,确定帧N的宏块为交互类型。10. 如权利要求9的方法,进一步包括:当帧N的宏块是交互类型的时候,将运动矢量分配给帧N的宏块。11. 根据权利要求10的方法,其中对运动矢量进行分配,使其与帧N的宏块的所在位置大致相同的帧N-1的宏块的运动矢量相似。12. 一种确定运动矢量和宏块类型的方法,包括下列步骤:检查一个被跳过的帧N-1后面的被传输的帧N的宏块是交互类型;确定帧N-1的宏块类型;和根据帧N-1的宏块类型将一个新的运动矢量分配给帧N的宏块。13. 根据权利要求12的方法,其中将帧N-1的宏块类型分成内部类型、跳过类型和交互类型。14. 根据权利要求12的方法,其中根据等式MV′N=MVN+MVN-1确定新的运动矢量,其中MV′N是分配给帧N的宏块的运动矢量,MVN是帧N的宏块的运动矢量,而MVN-1是帧N-1的宏块的运动矢量。15. 根据权利要求14的方法,其中当帧N-1的宏块是内部类型的时候,MVN-1具有近似无穷大的值。16. 根据权利要求14的方法,其中当帧N-1的宏块是一个跳过类型的时候,MVN-1具有约等于0的值。17. 根据权利要求12的方法,其中所述新的运动矢量分配步骤包括:当被跳过的帧N-1的宏块是内部类型的时候,将一个无穷大运动矢量分配给帧N的宏块;当被跳过的帧N-1的宏块是跳过类型的时候,分配帧N的宏块的运动矢量;当被跳过的帧N-1的宏块是交互类型的时候,将分配给帧N的宏块的运动矢量和分配的帧N-1的宏块的运动矢量的和作为帧N的宏块的新运动矢量进行分配。18. 一种确定运动矢量和宏块类型的方法,其包括下列步骤:检查在被跳过的帧N-1后面的被传输的帧N的宏块;检查与帧N的宏块所在位置大致相同的帧N-1的宏块类型;和确定帧N的宏块类型是否与帧N-1的宏块类型相同。19. 根据权利要求18的方法,其中当帧N-1的宏块是内部类型的时候,帧N的宏块被确定为内部类型。20. 根据权利要求18的方法,其中当帧N-1的宏块是跳过类型的时候,帧N的宏块确定为跳过类型。21. 如权利要求18的方法,进一步包括:当帧N-1的宏块是交互类型的时候,帧N的宏块被确定为交互类型;和分配帧N的宏块的新的运动矢量。22. 根据权利要求21的方法,其中将与帧N的宏块的所在位置大致相同的帧N-1的宏块的运动矢量被分配为帧N的宏块的新运动矢量。
确定运动矢量和宏块类型的方法 技术领域 本发明涉及确定运动矢量和宏块类型的方法,尤其涉及确定一个帧的运动矢量和宏块类型的方法,所述的帧是被传输的帧,且在帧速率转换变码器中不被跳过的帧。 背景技术 视频点播(VOD)或视频信息流服务是通过将视频内容以已压缩文件的形式存储在一个传输服务器中,用于有选择地传输所请求的内容的。在一个低信道带宽的移动通信网络或具有可变信道带宽的因特网中,进行视频内容服务是很复杂的问题,因为很可能出现信道带宽锐减或拥塞的情况。 为了解决这些问题,传输服务器必须减少视频传输帧速率。可以使用帧速率转换变码器来调整视频传输帧速率。图1是一个方框图,示出了通用的帧速率转换视频变码器的操作。 通常,一个活动图像,比如运动图像专家组(MPEG),由预测编码来进行压缩。在该预测编码中,通过使用不同时间中图像信号值之间的差获得特定像素的信号值。活动图像的每个帧互相之间都是时间相关的。该帧由多个宏块构成。该宏块可以分为交互型(inter type)或内部型(intra type)宏块。 参考图1,帧速率转换视频变码器10包括一个帧跳转器(skipper)11,用于跳过一帧以便将高帧速率位序列转换为低帧速率位序列;一个估算器12,通过将帧跳转器11中被跳过的帧作为预测参考,分配给后一的帧一个新的运动矢量和宏块类型。 当为了减少视频传输率而跳过特定的帧的时候,后一帧使用被跳过的帧作为进行预测的参考。因此,不得不确定一个新的运动矢量和一个新的宏块类型。 为了确定一个新的运动矢量,FDVS(前向控制向量选择)方法已经由J.Youn和M.Sun(“用于高性能代码转换的运动矢量求精”IEEETrans.,多媒体杂志1999年3月第1卷30-40页)提出。在一个编码器中,在计算复杂性中,需要对运动矢量进行计算的计算量占到了全部计算复杂性的70%。相应地,Youn和Sun也已经给出了不用执行运动矢量判断,利用预先获得的运动矢量确定一个新的运动矢量的方法。 图2示出一个现有技术中的FDVS方法。该FDVS方法将参考一个在传输中跳过帧N-1的例子进行说明。在现有技术FDVS的方法中,在被跳过的帧的四个宏块之中,将被预测的具有最大重叠部分的宏块的运动矢量定义为主运动矢量。所述的主运动矢量被定义为所跳过的帧的宏块的运动矢量。 如图2所示,将与由被分配给帧N的宏块MBN的运动向量MVN测预的宏块具有最大重叠部分的宏块称为MBN-1,将分配给宏块MBN-1的运动矢量称为MVN-1。 相应地,被跳过的帧N-1后面的帧N的宏块MBN的新的运动矢量MV′N,可以通过将分配给宏块MBN的运动矢量MVN加上分配给宏块MVN-1的运动矢量MBN-1求和计算。以下等式1,示出了帧N的宏块MBN的新的运动矢量MV′N的计算。 MV′N=MVN+MVN-1-------(等式1) 如等式1所示,在现有技术的FDVS中,可以使用预先获得的运动矢量确定一个新的运动矢量,该新的运动矢量与将被传输的在被跳过的帧之后的帧有关。然而,如果使用等式1,而不考虑帧N地宏块MBN的宏块类型,则可能出现下列问题。 首先,当帧N-1的宏块MBN-1是“内部类型”的时候,重新分配的运动矢量MV′N由以下等式2定义。在这里,“内部类型”的宏块没有运动矢量,分配给宏块MBN-1的运动矢量MVN-1是(0,0)。 MV′N=MVN+(0,0)=MVN-------(等式2) 在等式2中,由帧N-2中的运动矢量MVN预测的宏块是相匹配的,以便使其与由帧N-1中的运动矢量MVN预测的宏块尽可能相似。然而,因为帧N-1和帧N-2的特性不同,不能达到最佳匹配。 其次,在FDVS方法中,当帧N的宏块MBN是一个“跳过类型”的时候,不考虑被跳过的帧N-1的宏块类型,该宏块MBN被确定为“跳过类型”。然而,当帧N-1的宏块是“内部类型”或“交互类型”的时候,且帧N-1的宏块与帧N的宏块MBN定位在相同位置时,则宏块MBN不同于帧N-1的宏块类型。更具体地说,作为参考图像的宏块MBN的再现图像与宏块MBN的实际图像数据不同,其中所述的宏块MBN的再现图像是用帧N-2进行解码的。 如上所述,如果在不考虑传输中被跳过的帧的宏块类型,并且不考虑根据该被跳过的帧所预测的帧的宏块类型的情况下评估一个新的运动矢量,则可以通过接收块的解码器对图像进行还原,且被还原的图像与实际图像不同。因此可能在后面的图像中积累误差错误,相应地图像质量将会降低。因此,需要能够解决上述与现有FDVS方法相关的缺点的方法和系统。 发明内容 为了解决以上问题,本发明的一个目的是提供一种方法,该方法可以确定运动矢量和宏块类型,该方法能够精确地确定帧的运动矢量和宏块类型,所述的帧是将被传输的帧且该帧在视频变码器中是不被跳过的。 提供了一个确定运动矢量和宏块类型的方法。所述的方法包括:接收一个具有N个帧的高帧-速率视频信息流;跳过帧N-1;根据被跳过的帧N-1的宏块类型为帧N的宏块分配一个运动矢量;根据被跳过的帧N-1的宏块类型为帧N的宏块类型分配一个宏块类型;以及输出一个低帧-速率视频信息流。 将该帧N的宏块类型分成内部类型和跳过类型。当帧N的宏块是一个内部类型的时候,根据被跳过的帧N-1的宏块类型确定帧N的宏块的运动矢量。当帧N的宏块是一个跳过类型的时候,根据被跳过的帧N-1的宏块类型确定帧N的宏块的运动矢量,该帧N-1的宏块与帧N的宏块的所在位置接近。 在一些实施例中,该方法还包括,当新的宏块是交互类型的时候,确定帧N的宏块的新的运动矢量。帧N的宏块的新的运动矢量被确定,使其与帧N-1的宏块的运动矢量相同,所述的帧N-1的宏块与帧N的宏块所在位置接近。 根据一个实施例,确定运动矢量和宏块的方法包括:确定在跳过的帧N-1后面的且将被传输的帧N的宏块是内部类型还是跳过类型;当帧N的宏块是内部类型的时候,根据被跳过的帧N-1的宏块类型为帧N分配一个新的运动矢量;当帧N的宏块是跳过类型的时候,根据帧N-1的宏块类型确定帧N的新的宏块类型,其中所述的帧N-1的宏块与帧N的宏块所在位置接近。 根据特定实施例,当帧N的宏块是内部类型的时候,确定被跳过的帧N-1的宏块类型;这样,当跳过帧N-1的宏块是内部类型的时候,将分配给帧N的宏块一个无穷大的运动矢量;当跳过的帧N-1的宏块是跳过类型的时候,分配给帧N的宏块相同的运动矢量;当跳过的帧N-1是交互类型的时候,将分配给帧N的宏块的运动矢量和分配给帧N-1的运动矢量的总和作为新的运动矢量分配给帧N的宏块。 在一个实施例中,所述的方法还包括:当帧N的宏块是跳过类型的时候,确定与帧N的宏块所在位置接近的帧N-1的宏块类型;当帧N-1的宏块是内部类型的时候,将帧N的宏块确定为内部类型;当帧N-1的宏块是跳过类型的时候,将帧N的宏块确定为跳过类型;以及当帧N-1的宏块是交互类型的时候,将帧N的宏块确定为交互类型。 当帧N的宏块是交互类型的时候,将运动矢量分配给帧N的宏块。对运动矢量进行分配,使其与帧N的宏块所在位置接近的帧N-1的宏块的运动矢量相似。 根据另一个实施例,提供了一个确定运动矢量和宏块类型的方法。所述的方法包括:检查被跳过的帧N-1后面的被传输的帧N的宏块是否是交互类型;确定帧N-1的宏块类型;以及根据帧N-1的宏块类型,为帧N的宏块分配一个新的运动矢量。将所述的帧N-1的宏块类型分成内部类型、跳过类型和交互类型。 在一些实施例中,新的运动矢量根据等式MV′N=MVN+MVN-1确定,其中MV′N是分配给帧N的宏块的运动矢量,MVN是帧N的宏块的运动矢量,而MVN-1是帧N-1的宏块的运动矢量。当帧N-1是内部类型的时候,MVN近似无穷大值。当帧N-1的宏块是跳过类型的时候,该MVN-1接近于0。 分配新的运动矢量的步骤包括:当被跳过的帧N-1是内部类型的时候,将一个无穷大运动矢量分配给帧N的宏块;当被跳过的帧N-1是跳过类型的时候,分配一个帧N的宏块的运动矢量;当被跳过的帧N-1的宏块是交互类型的时候,将分配给帧N-1的宏块的运动矢量和分配给帧N-1的宏块的运动矢量的和作为帧N的宏块的一个新的运动矢量进行分配。 根据另一个实施例,提供了一个确定运动矢量和宏块类型的方法。所述的方法包括:检查被跳过的帧N-1后面的被传输的帧N的宏块;检查与帧N的宏块所在位置接近的帧N-1的宏块类型;以及确定帧N的宏块类型是否与帧N-1的宏块类型相同。当帧N-1的宏块是内部类型的时候,帧N的宏块被确定为内部类型。 当帧N-1的宏块是一个跳过类型的时候,帧N的宏块被确定为一个跳过类型。当帧N-1的宏块是交互类型的时候,帧N的宏块被确定为交互类型;为帧N的宏块分配一个新的运动矢量。在一个实施例中,将与帧N的宏块所在位置接近的帧N-1的宏块的运动矢量作为帧N的宏块的新的运动矢量进行分配。 根据下列参考附图对实施例的详细说明,本发明的这些及其它实施例对本领域的普通技术人员是显而易见的,但是本发明并不仅限于公开的任意特定的实施例。 附图说明 所包括的相关附图用于提供对本发明的进一步理解,在此结合并组成这些说明书的一部分,本发明的示例性实施例结合说明书用于说明本发明的原理。 图1是一个方框图,示出了通用的帧速率转换视频变码器的操作; 图2示出了相关技术FDVS方法的例子; 图3示出了根据本发明实施例的一个典型的方法,组成机器可读的代码,重新给宏块MBN分配一个类型; 图4是一个流程图,示出了根据本发明的一个实施例的确定一个运动矢量和一个宏块类型的方法;和 图5A和5B示出了本发明的一个实施例在相关现有技术FDVS方法的基础上提出的改进方法与相关现有技术中FDVS方法的性能比较图。 在本发明的一个或多个实施例的不同附图中,相同的附图标记表示相同、等效或相似的功能部件、元件或特征。 具体实施方式 在下文中,将参考相关附图对根据本发明的一个确定运动矢量和宏块类型的方法的优选实施例进行说明。根据本发明的确定运动矢量和宏块类型的方法可以解决与现有FDVS方法相关的现有技术中存在的问题。 根据本发明一个或多个实施例,当传输中被帧跳过的N-1包括一个内部类型宏块的时候,按照如下等式3定义新的运动矢量: MV′N=MVN+(∞,∞)=(∞,∞)-------(等式3) 例如:将运动矢量(0,0)分配给内部类型宏块。在本发明的一个实施例中,将一个无穷大运动矢量分配给帧N的宏块MBN,并且将宏块MBN确定为内部类型。 当被跳过的帧N-1后面的被传输的帧N的宏块MBN是跳过类型的时候,确定将被重新分配的宏块类型和运动矢量。在一些实施例中,不考虑被跳过的帧N-1的宏块类型,将帧N的宏块确定为跳过类型。然而,在本发明的特定实施例中,根据与宏块MBN所在位置接近的帧N-1的宏块类型,确定宏块MBN的宏块类型和运动矢量。 更具体地说,当与宏块MBN所在位置接近的帧N-1的宏块类型是一个内部类型的时候,新分配的宏块MBN的类型是内部类型。当帧N-1的宏块类型是交互类型的时候,新分配的宏块MBN的类型是交互类型。当帧N-1的宏块类型是跳过类型的时候,新分配的宏块MBN的类型是跳过类型。 参考图3,当帧N的宏块MBN是跳过类型的时候,提供了重新分配宏块MBN的类型的过程。相应地,宏块MBN的类型是MB_型_MBN,与在帧N-1中的宏块MBN所在位置接近的宏块的类型是MB_型_跳过帧。 参考图4,示出了根据本发明的一个实施例的提供用于确定一个运动矢量和一个宏块类型的方法。当被输入到帧速率转换视频变码器的视频信息流中的帧N-1被跳过的时候(步骤S11),将帧N的运动矢量和宏块类型作为预测帧N-1的基准帧进行重新分配。 判断帧N的宏块MBN是交互类型还是跳过类型(步骤S12)。当宏块MBN是交互类型的时候,执行运动矢量重新分配步骤。当宏块MBN是跳过类型的时候,执行分配适当的宏块类型和运动矢量的步骤。当宏块MBN是内部类型的时候,认为所述的操作与前一帧(即,当执行情景转换的时候)无关。相应地,不必到执行运动矢量重新分配的步骤。 在特定实施例中,确定宏块MBN的运动矢量和宏块类型的步骤将参考两个情况进行说明(例如,宏块MBN是交互类型或跳过类型)。首先,如果所述的宏块MBN是交互类型,确定被跳过的帧N-1的宏块MBN-1的类型是否是内部类型(步骤S13)。如果宏块MBN-1是内部类型,则通过应用等式3,确定关于宏块MBN的新的运动矢量(步骤S14)。根据一个或多个实施例,新分配的运动矢量是一个无穷大运动矢量。 当被跳过的帧N-的宏块MBN-1不是内部类型的时候,判断宏块MBN-1是否是跳过类型(步骤S15)。当宏块MBN-1是跳过类型的时候,应用等式2,确定关于宏块MBN-1的新的运动矢量(步骤S16)。更具体地说,当宏块MBN-1是跳过类型的时候,因为宏块没有运动矢量,将运动矢量MVN分配给宏块MBN,而且与新分配的运动矢量相同。 当被跳过的帧N-1的宏块MBN-1是交互类型的时候,应用等式1,如同传统的FDVS,确定关于宏块MBN的新的运动矢量(步骤S17)。如果帧N的宏块MBN是交互类型,根据被跳过的帧N-1的宏块MBN-1的宏块类型,为宏块MBN分配一个类型。 在一些实施例中,判断被跳过的帧N-1中的与宏块MBN所在位置相同的宏块是否是内部类型(步骤S18)。当帧N-1的宏块是内部类型的时候,确定宏块MBN的类型为内部类型(步骤S19)。当帧N-1的宏块是跳过类型的时候(步骤S20),确定宏块MBN的类型为跳过类型(步骤S21)。当帧N-1的宏块是交互类型的时候,确定宏块MBN的类型为交互类型(步骤S22)。 在一个实施例中,在宏块MBN被确定为交互类型之后,将与帧N-1的宏块相对应的运动矢量作为宏块MBN的运动矢量进行分配(步骤S23)。也就是说,当宏块MBN是内部类型或跳过类型的时候,不必给分配新的运动矢量。然而,当宏块MBN是交互类型的时候,将分配给帧N-1的宏块的运动矢量作为新的运动矢量进行分配。 当宏块MBN是跳过类型的时候,根据与宏块MBN所在位置相同的帧N-1的宏块类型,确定新的宏块MBN的类型。尽管通过帧速率转换视频变码器传输的没有被跳过的帧的宏块是内部或跳过类型,也可以使用根据本发明的确定运动矢量和宏块类型的方法。 本发明能够减少视频信息流中产生的位数量,并提高图像再现的图像质量。表1和表2比较了传统FDVS方法和根据本发明的改善的FDVS方法的性能。在表1和表2中,以30每秒帧被MPEG-1编码的图像位序列分别转换为15帧和7.5帧。 [表1] 测试图像 传统的FDVS 改进的FDVS产生的位数量(字节) 平均 PSNR(dB)产生的位数量 (字节)平均PSNR(dB) 足球 845061 29.19 831462 29.58 乒乓球 467328 30.79 456531 31.37 花园 1217779 27.93 1193164 28.43[表2] 测试图像 传统的FDVS 改进的FDVS产生的位数量(字节) 平均 PSNR(dB)产生的位数量 (字节)平均PSNR(dB) 足球 489008 28.99 469577 29.34 乒乓球 302333 30.68 291734 31.16 花园 779824 27.59 764982 27.94在表1和2中,利用120帧的足球、乒乓球和花园图像作为测试图像,传统的FDVS方法与根据本发明的改进的FDVS方法在产生的位数量和图像质量方面进行对比。在此,例如图像质量比较的尺度是功率信噪比(PSNR)。 与传统的FDVS方法相比,图像质量被提高到最大值0.6dB,并且在改进的FDVS方法中产生的位序列数量有所降低。更具体地说,根据本发明的FDVS方法,可以减少产生的位数量并同时提高图像质量。 参考图5A和图5B,将以1.5Mbps的编码速率进行MPEG-1编码的乒乓球图像的120帧作为测试图像,例如,测试图像通过帧速率转换视频变码器被转换为15每秒帧数。在测试图像的第68帧和98帧出现序列转换。当出现序列转换的时候,由于预测编码的性能降下,P帧中的很多的宏块被确定为内部类型。 图5A示出了当测试图像转换为15每秒帧数的时候,每个帧的PSNR的比较图。在传统的FDVS方法的应用中,序列转换出现的第68帧和第98帧被跳过之后,例如,图像在第69帧和第99帧质量急剧下降。然而,在根据本发明的改进的FDVS方法的应用中,在第69帧和第99帧可以保持相同的图像质量。 图5B示出了内部类型宏块的数量和在测试序列的每个帧产生的跳过类型的宏块的数量。在第68帧和第98帧发生序列转换,内部类型宏块的数目激增。因此,确定运动矢量和宏块类型的方法不但要考虑交互类型宏块,而且要考虑内部类型和跳过类型宏块。同样地,通过应用本发明中的考虑每个宏块类型的方法,可以提高图像质量。 在根据本发明的确定运动矢量和宏块类型的方法中,可以精确地给帧重新分配一个运动矢量和一个宏块类型,所述的帧通过帧速率转换视频变码器被没有被跳过地传输。在根据本发明的确定运动矢量和宏块的方法中,尽管预测编码的性能例如序列转换有所下降,但是还是可以提高图像质量并且减少产生的位序列数量。
《确定运动矢量和宏块类型的方法.pdf》由会员分享,可在线阅读,更多相关《确定运动矢量和宏块类型的方法.pdf(20页珍藏版)》请在专利查询网上搜索。
本发明提供了一个确定运动矢量和宏块类型的方法。所述的方法包括:接收一个具有N帧的高帧速率视频信息流;跳过帧N1;根据被跳过的帧N1的宏块类型分配一个运动矢量给帧N的宏块;根据被跳过的帧N1的宏块类型分配一个宏块类型给帧N的宏块类型;以及输出一个低帧速率视频信息流。 。
copyright@ 2017-2020 zhuanlichaxun.net网站版权所有经营许可证编号:粤ICP备2021068784号-1