当前位置: 首页 > 滚动

天天快报!秦始皇都做不到统一!视频编码的那点事

来源:太平洋电脑网 发布时间:2023-05-08 13:59:07

写在开头

这几年,短视频兴起、流媒体火爆,视频服务已经成为互联网流量占比最大的服务类型,绝大多数网站和应用都或多或少加入了视频相关的内容版块。为了让大家看到更高清的视频,手机、相机、电影机等设备的像素一直攀升,显示设备也是不断升级,不过想要多快好省的看视频,光靠这些高级的硬件还不够,能够让你随时随地看视频的背后,还有一个默默付出的推手——视频编码技术。


【资料图】

什么是视频编码?

所谓视频编码方式就是指通过压缩技术,将原始视频格式的文件转换成另一种视频格式文件的方式。用人话说就是,当你用相机拍照时,直出的基本都是RAW格式,这种格式包含的信息量相当丰富,因此占用空间也相当大,而视频的本质是一张张相片的堆叠,那视频的占用空间必然更大,因此视频编码技术应运而生,本质就是压缩你的视频,将原本信息量巨大的视频内那些冗余的或不影响观看的信息进行删减,达到“瘦身”的效果。

为什么需要对视频进行压缩编码?

那有的人可能会问,那我不视频编码不压缩不行吗?如果我们的视频不经过压缩,那么一个4K分辨率的视频,每一帧的大小就是3840x2160(分辨率)x3(RGB三原色)x8(色深),这么计算下来的大小就是19906500bit,换算成MB就是每一帧就占用了21MB,而一秒的4K60帧大小则是21(一帧大小)x60(帧)=1260MB,换句话说不经过压缩的4K视频,一秒就要占用掉你1GB左右的空间大小,试问你有多少空间可以装这些无压缩的视频呢?

空间占用是一回事,如果视频网站上都是这种大小的视频,那你观看个10分钟的4K视频就要花掉600GB的流量,多看几个视频,房子就归运营商的了。因此视频压缩编码就尤为重要了,在传统数据压缩算法来看视频文件里面基本上是没有什么冗余信息的,所以人们就有必要去开发针对视频的压缩算法,把实际存在的冗余信息给去掉,从而减少它的数据量,达到减小占用容量的目的。

规格的制定者:国际电联ITU-T & 国际标准化组织ISO & 新势力

长期以来视频编码标准主要由两个国际组织负责制定:国际电信联盟ITU-T和国际标准化组织ISO。当然这两个国际组织的实力还是在的,其中ITU-T的视频编码专家组名称为:VideoCodingExpertGroup即VCEG,H.26X系列就出自它之手。而国际标准化组织ISO/IEC的视频编码专家组名称为:MovingPicturesExpertsGroup即MPEG,它的作品则是MPEG-1、MPEG-2、MPEG-4等。

当然除了上述的两个国际组织外,在视频编码领域也不乏挑战者,像比较有影响力的则有Google,在收购了On2后陆续推出了VP8和VP9两种编码格式,一度成为最强力的挑战者;我们熟悉的老朋友微软也推出过自己的视频编码标准即VC-1,不过后来也逐渐没落了;国产化的道路也没有停止,国内也有自己的标准——AVS,并且至今一致迭代中。当然还有近年来才创立的AOMedia,它们推出的AV1有望成为未来的趋势。这些视频编码格式我们也将在下文中详细介绍。

一张图带你了解一下视频编码发展的漫长历程,其中还有不少你闻所未闻的视频编码标准,不过有些已经淹没在历史的车轮中,有些则凭借更新的技术不断迭代甚至进化成了全新的标准,挑战视频编码界的老前辈们。闲言少叙,下面我们一同见证视频编码的发展。

首个数字视频压缩标准:H.120(1984)

最早的视频编码标准诞生在1984年,它被命名为H.120,由ITU-T的视频编码专家组制定,同时它也是首个国际视频压缩标准,主要用于视频会议或保存电视内容,虽然它没能大规模的使用,但不得不说这是一次伟大的成就。

一切的开始:H.261(1988)

后来,随着互联网的发展,用户开始有在网络上看视频的需求后,更高级的H.261诞生了。H.261与首个数字视频编码标准H.120不能说一模一样,只能说毫不相干。为了这个更高级的视频压缩编码,无数研发人员使用了一直延用至今的离散余弦变换(DCT)算法。

其实DCT算法简单来说就是利用了人眼对画面细节的分辨是有限的,人的眼睛没办法捕捉到那些细致入微的小细节,因此DCT算法就是将图像从空间域转换到频率域,即分为低频域跟包含细节的高频域,然后经过量化后,保留绝大部分的低频信息,减少人眼不敏感的高频信息,从而实现图像的压缩,减少体积。

不过这只是早期针对图像的一种压缩,对于视频压缩来说并不算重大发明,因此研究者引入了一系列针对视频的特性,这也奠定了现代视频编码的基础,其中主要有宏块(Macroblock)和基于宏块的运动补偿(MotionCompensation)。

怎么理解宏块?研究者发现绝大部分视频中可以分为主体跟背景两部分,而背景有很长时间是不动的,因此可以利用重复利用不动的影像,降低视频的体积。所以一个视频的每一帧可以划分为无数个小区块,这样两帧视频之间重复且没有运动的区块就可以沿用前一帧的画面,而产生运动的区块则只需要给它增加一个方向和距离的矢量,这就是“基于宏块的运动补偿”,而视频本身需要存储的只有那些少数与前一帧完全不同的区块即可,这样大大的减少了视频体积,不得不说想出这个办法的人真的聪明。

在上面我们说到记录前一帧的画面可以形容为完整的帧,称为关键帧I帧,它就是一张完整的静态图像,可以直接被解码出来,而后续那些通过相关方向和距离矢量运动补偿算法计算得到的就是预测帧P帧。这种基于宏块的运动补偿与DCT算法的结合就组成了现代视频编码的开山鼻祖H.261。

VCD的标准:MPEG-1(1991)

在ITU-T创造H.261的同时,另一边也在奋起直追,在1988年,ISO和IEC两大国际标准化组织建立了MPEG(动态图像专家组,MovingPictureExpertsGroup),并在1992年完成了MPEG-1的制定,后来也成为了VCD的标准,一度风靡世界。由于它在H.261的基础上进行了改进,因此可以理解为MPEG-1是H.261的Plus版本,它继承了H.261的宏块、运动补偿、DCT算法等,还新增了帧序列、双向预测帧、亚像素精度的运动补偿等新技术。

其中值得说道的就是这个双向预测帧,在H.261时可以分成两种帧,一种是完整的关键帧I帧,一种是通过运动补偿算法在I帧基础上计算得到的预测帧P帧,而MPEG-1在此基础上引入了帧类别的概念,不仅有完整的I帧与P帧,还有双向预测帧B帧,顾名思义,B帧即可以通过前面的关键帧I帧进行补偿算法运算出部分信息做参考,同时也可以通过后续的P帧补充前面预测所缺失的部分细节。由于比预测帧I帧参考了更多的信息,双向预测帧B帧相比预测帧I帧能够节省更多空间。

但是,由于双向预测帧B帧的引入也带来了一个新的问题,即编解码难度上升了,所需要的算力也增加了。而帧序列的意思是一些按顺序排列的图像帧的组合,简称为GOP,一个完整的GOP内,一个I和P帧之间隔了三个B帧,视频编码时会通过I帧预测生成P1和P2帧,再通过这三帧画面双向预测出中间的B1、B2、B3帧。因此实际视频编码中,B帧确实是最多的帧,编解码难度上升也是意料之中了。

除此之外,H.261中引入的帧间预测精度为像素级的,对很多宏块的运动预不够精确,而MPEG-1在此基础上进行了优化,引入了亚像素级别的运动补偿,更高精度的像素能够更准确的命中运动的宏块,提高预测准确度。以上这些技术已经初步形成了视频编码技术的基础,后续绝大多数视频编码标准都是在此基础上进行改进,通过不断优化算法,提升预测时的像素密度从而实现更高的压缩比。

DVD的标准:H.262/MPEG-2(1994)

在MPEG-1推出不久后,MPEG-2来了,不过它还有一个名字,就是H.262,相比MPEG-1,它其实并没有太大的改动,主要是在传输和系统方面做了更加详细的规定和进一步的完善。并且MPEG-2在制定时充分考虑到了数字电视系统的需求,也加入了对隔行扫描的支持。

除此之外,MPEG-2最大的亮点就是DVD的应用,由于它能够提供更高的码率,因此在当时一度成为了DVD的标准,从而顺利地成为了世界范围内通行的视频编码格式,时至今日,它仍然被大量地应用在数字电视等系统中。

3GGP座上宾:H.263(1995)

H.263就比较复杂了,H.263是国际电联ITU-T制定的,是为低码流通信而设计。但实际上这个标准可用在很宽的码流范围,而非只用于低码流应用,它被多数人认为是用于取代H.261。不过H.263的编码算法与H.261一样,只是做了一些改善,例如:加入了新的运动向量中值预测法,在编码效率上相比H.261有较为明显的提升。

并且H.263的同门师兄弟众多,在初版之后还存在H.263+和H.263++两个官方升级版。与H.263标准相比,H.263+标准主要有以下几个方面的改进。提高了压缩效率,相对初版有15~25%的总体提升,主要是通过增加帧内编码模式和增强PB帧模式做到的;而H.263++标准则在H.263+基础上增强了参考帧的选择模式和增加数据分片选项,这样做能够提高编码效率。

后续H.263也得到了广泛的应用,它与FLash一度活跃在各种视频网站上面,风光程度不亚于MPEG-1和MPEG-2称霸VCD与DVD;并且在通信业,H.263在3GPP中占有很高的地位,包括运营商的标准一直保留着H.263,地位远远高于它的师弟H.264。

老熟人:MPEG-4(1998)

MPEG-2之后,MPEG组织为了追赶隔壁的H.263,开始奋起直追,终于在1998年时,MPEG-4标准正式诞生,它主要应用于视像电话,视像电子邮件和电子新闻等。它的核心设计实际上与H.263趋同,但是包含了更多关于编码效率的增强。

尽管MPEG-4是一个野心勃勃的编码,但它依旧遭到了业界的冷待和批评。一个是它的压缩率虽然相比起MPEG-1有不小的提升,但相比起它的前作MPEG-2并没有质的提升,更多是小修小补,而且还有授权和专利费用等问题因此普及率远不及后续的H.264/AVC。

曾经一统江山:H.264/AVC(2003)

H.264是目前公认的效率最高的的视频编码。它是由国际电信联盟通电信标准部(ITU-T)和国际标准化组织/国际电工委员会动态图像专家组(ISO/IECMPEG)共同开发的一种视频压缩技术。它的另外一个名称是MPEG-4AVC或MPEG-4Part10。

目前H.264被广泛的运用在蓝光电影、数字电视、卫星电视、网络媒体等领域。可以说H.264是目前被运用得最为广泛的视频编码。并且它在多方面进行了改善,总结下来主要有如下的几点:更灵活的宏块划分方法、数量更多的参考帧、更先进的帧内预测和压缩比更高的数据压缩算法。

在上面我们介绍了宏块,而H.264/AVC在原有的宏块划分上进行了改进,原本的宏块划分是以16x16像素为一个,不过这种划法在2003年显然不太够用了,因此H.264引入了16x8、8x16、8x8、8x4、4x8和4x4这些精细度更高的划分方式。并且亚像素精度的运动补偿描述从MPEG-1的1/2像素精度细化到了1/4的程度,在预测过程中,能够提高更准确的精度,同时还能进一步提高压缩率。

而“数量更多的参考帧”是指H.264/AVC在原本I帧与P帧中仅含3帧B帧的情况下,将限制放大到16帧,因此可参考预测的帧将会变多,能够提升画面质量及降低视频体积。“更先进的帧内预测”则是类似一幅图里数据在包含了多种颜色、光亮,而人的肉眼很难察觉的所有的变化,对于这些数据可以认作是冗余,直接压缩掉的。这里只是简单描述,而H.264对4x4的宏块规定了9种预测模式,对16x16的亮度平面宏块规定了4种可用模式,整体能够减少单帧图像的数据量,并且保证画面质量。

最后再来说说这个“更高的数据压缩算法”,在数据压缩时通常需要编码,而H.264在VLC编码的基础上研发了两种无损数据压缩编码,一种是VLC的升级版——CAVLC,另一种是复杂程度更高的CABAC,简单来说就是能够使用编码来替代数据,从而达到压缩的效果。

也正是因为这些技术手段的改进,使得H.264/AVC至今仍然应用广泛,甚至一度统治了视频编码界,即使在现在这个新视频编码不断涌现的时代,它依旧凭借超高的泛用性和不错的压缩性能宰治着4K以下的视频编码领域。

昙花一现:VC-1(2003)

同年诞生的还有一个VC-1,全名VC-1视讯编解码器(VideoCodec1),是微软所开发的视频编解码系统。2003年提出标准化申请,最早名字是VC-9。2006年4月正式通过成为标准。它的前身其实是微软的WindowsMediaVideo9(WMV9)格式,不过由于VC-1的迭代更新,WMV9格式现在已经成为VC-1标准的实际执行部分。

总的来说,从压缩比上来看,H.264的压缩比率更高一些,也就是同样的视频,通过H.264编码算法压出来的视频容量要比VC-1的更小,但是VC-1格式的视频在解码计算方面则更小一些,一般通过高性能的CPU就可以很流畅的观看高清视频,讲人话就是VC-1在软解上对CPU更加友好。

另外,VC-1多为“.wmv”后缀,如果你是90后在一些高清DVD或蓝光光碟上应该也见过这个格式,不过也因为VC-1与高清DVD有一定的捆绑关系,在那个DVD兴起的时代,这个视频编码格式红极一时。但随着现在流媒体时代的开始,VC-1也随着DVD逐渐淡出人们的视野,不过也因为它极佳的兼容性,“.wmv”这个后缀的视频在现在还有不少人在用,但大多数都是在问“wmv怎么转mp4”。

本土力量:AVS(2006)

视频编码也有“国标”!我国视频编码领域的专家从1996年开始追踪国际标准化工作。除了上面提到的两个国际标准化组织以外,2002年6月,我国正式成立了数字音视频编解码技术标准工作组(AVS),其主要任务是面向我国的信息产业需求,联合国内企业和科研机构,制(修)订数字音视频的压缩、解压缩、处理和表示等共性技术标准。自AVS工作组成立以来,至今,已制订了三代AVS标准:AVS、AVS+/AVS2和AVS3,其中2006年2月,AVS视频编码成为国家标准,获批的标准号为GB/T20090,并于2006年3月1日起实施。

AVS最直接的产业化成果是未来10年我国需要的3-5亿颗解码芯片,最直接效益是节省超过10亿美元的专利费。另外早在2005年时,AVS就与华为、TCL、海信等企业成立了AVS产业联盟,推动AVS的产业化进程,早日形成完整的产业链和多厂家供货环境,为中国音视频产业的发展注入强劲动力。后续华为海思也在2019年发布了全球首颗基于AVS3.0视频标准的8K/120fps解码芯片Hi3796CV300,该产品的发布也有助于引领我们未来5年到10年8K超高清和VR视频产业的发展。

饱受争议:VP8(2008)

VP8是类似于H.264/AVC的另一种视频编码,由On2公司开发。不过后来Google收购了On2,因此VP8现在归Google所有。在收购On2不久之后,Google就宣布了VP8将永久免费。至于它的编码性能,从压缩效率的角度上,VP8比H.264差很多,这也是因为VP8想要规避H.264/AVC的相关专利所作出的妥协。

另外由于VP8在开发过程中参考了H.264/AVC的代码,对于很多技术细节,只有几段代码而没有任何相关解释。所有的技术细节几乎掌握在谷歌手中。并且x264的主要开发者之一曾对VP8的参照实现的源代码进行过仔细分析,得出的结论是VP8和H.264过于相似,很难相信没有任何专利侵权之处。

虽然谷歌一直宣称VP8不会有专利问题,但不少公司为了不必要的麻烦都选择了专利更为明确且收费的H.264/AVC,这也是VP8迟迟无法推动的原因之一。

后继有人:H/265/HEVC(2013)

随着视频分辨率的提高,4K甚至8K对H.264/AVC就有些力不从心了,因此更强的H.265/HEVC应运而生。同样的,它也是由MPEG和ITU-T联合制定的国际标准编码。因此从诞生之处就有多个名字,在ITU-T这,它是H.26x家族的新宠——H.265,而在MPEG那,它又被称为MPEG-HPart2。

H.265/HEVC主要是针对高清及超清分辨率视频而开发的,H.265/HEVC标准在H.264/AVC的基础上对一些技术进行改进,仅需原来的一半带宽就可以播放相同质量的视频。值得一提的就是H.265/HEVC在编码和解码过程中不使用宏块。相反,它使用了全新的编码树单元(CTU),它们的大小或形状不一定相同,但保留了可分割的特性。单个CTU可以小至4×4像素,大至64×64像素,这使得程序可以更有效地压缩数据。

除此之外,单个CTU单元还可以继续被切割、分类,可以成为预测单元(PredictionUnits),并且可以指示该单元采用何种预测形式,无论是帧内预测还是帧间预测亦或者是其他形式;当然这个CTU单元也可以成为转换单元(TransformUnits),可以配合DCT算法进行更精确的变化,真正做到有的放矢,精细化操作,让转码效率变得更高效。

正因为引入了CTU这一概念,H.265/HEVC还配套性的提供更高效的运动补偿和预测技术,使其成为非常动态视频的特别好选择。如:H.265/HEVC将DCT算法的最大尺寸扩大到了32x32的地步,使其有着更高的压缩率;另一个改动则是将宏块的帧内预测方向扩张至35种,一系列的操作都使得视频压缩过程更加高效。

当然,别看H.265/HEVC在性能上突飞猛进,但在推广上可是碰了一鼻子灰。究其原因主要是两点,一是它的编解码难度比H.264/AVC高了太多,不过这点已经通过软件优化跟新的硬件编码器化解了,真正妨碍H.265/HEVC推广的其实还是它高昂的专利费用问题,每个用户需要1美元左右,对于普通人可能没什么,但对那些以流媒体或直播为主的网站那就是一笔不小的开支,并且收专利费这个行为在业界普遍追求开放、开源的今天无疑是一大劣势。

VP8的继任者:VP9(2013)

VP8的表现并不理想,Google很快就推出了它的继任者——VP9。但与上次设计VP8一样,谷歌参考了H.265/HEVC,但与后者最大的区别是前者使用时基本不需要支付费用,不过还是因为VP8中类似的原因,众多厂商为了避免不必要的麻烦还是选择使用了收费的H.265/HEVC协议,并且由于VP9是谷歌独自研发的,在实际推广中,不少公司也不愿看到VP9一家独大,甚至于主流视频编码格式被垄断。因此目前VP9的应用范围实际局限在Google自家的YouTube中。

不过它的视频编码性能还是值得说道一下的,其编解码性能与H.264/AVC相当或略快,但质量更好。

而VP9的编码视频质量在相似比特率下可与H.265/HEVC相媲美,在实际应用中几乎不存在差异。

至于VP10嘛,谷歌的说法是:VP10视频编码的技术被收录在开放媒体联盟所领导的AV1编码中,因此不会继续推出VP10视频编码技术,不过从AV1的AOMedia成员名单中也可以看到谷歌的身影,这也侧面佐证了这一点。

未来的趋势:AV1(2015)

不少厂商也注意到了H.265/HEVC的专利问题,而视频服务商也是苦不堪言,终于受不了H.264/H.265的收费模式了,所以联合起来开放媒体视频联盟(AllianceofOpenMediaVideo),我们先看看这个联盟里有谁!谷歌、苹果、微软、英特尔、思科等,好家伙,一眼看过去全是大厂!

上面提到了这些大厂联合成立了开放的AOMedia,划重点!“开放”!这也意味着它们推出的AV1视频编码格式是不受专利限制的,任何厂商和用户都可以直接使用。这也是AV1区别于H.265/HEVC等格式的地方,开放且免费是它的重要优势之一,这也是为什么它能够快速推广普及的原因。

作为下一代主流的视频编码技术,AV1有着自己独特的优势,更快的编码速度和更高质量的流媒体传输性能,让越来越多的剪辑软件和视频网站青睐于它,像我们熟悉的达芬奇、剪映等工具已经支持AV1编解码,而热门的流媒体平台,像B站等也悄咪咪的支持了AV1的应用,可以说未来AV1将会成为一个新趋势,距离全面普及只是时间问题。

相比传统的H.264编码,AV1编码的效率平均提升了40%,在同码率下AV1编码的画质将更好。目前大部分直播的分辨率和清晰度,均受限于平台规定的最大比特率。以Twitch限制的8Mbps为例,可以看到在同等带宽下,同为2K60帧的画面,采用AV1编码的清晰度明显比H.264更高。

当然,直播只是我们更容易见到的AV1优势,在视频工作的所有环节,AV1编码都可以带来极大提升。比较显而易见的优点是AV1编码的文件占用空间也比H.265要小,无论是4K分辨率还是8K分辨率,使用AV1编码后,文件整体大小能够降低25%以上。并且AV1编码的视频在画质上与H.265也没有明显差距。

说到这里你可能会觉得既然AV1那么好,大家全换AV1编码就好啦,这里就要给你泼一盆冷水了,与H.265.HEVC一样,由于AV1的压缩率更高,因此它对硬件的计算要求也不是一般的高,没有硬件优化的话,仅仅是解码观看AV1视频就会让用户感觉电脑在忙,风扇在起飞似的。

这是因为不支持硬件级的AV1解码只能将这份工作转交给CPU,此时CPU的负载必然升高,那风扇不就起飞了嘛。想要拥有硬件级的AV1编解码最简单的方式还是换装新显卡,像NVIDIA的RTX40系,苏妈家的RX7000系以及Intel的Arc系列显卡甚至11代及以上带核显的酷睿处理器均支持AV1的硬件解码。而手机端像天玑1000、骁龙8Gen2等主流处理器也已经支持AV1的硬件解码技术,可提供更好的视频体验。

最后值得一提的是,AOMedia在2020年开始了下一代标准AV2的研发工作,下一代视频编码标准AV2将为多媒体通信产业界打开新的局面并创造新的机遇。

新的挑战者:H.266/VVC(2020)

面对AV1的进击,ITU-T和ISO/IEC在2020年也给出了自己的答案,那就是最新的H.266/VVC,从技术角度来看,和H.265/HEVC问世时类似,H.266进一步优化了压缩,大约可以节省50%的数据流量,同时保证视频传输清晰度不变。简单来说,基于H.265编码的一段90分钟UHD4K视频需要10GB左右,基于H.266则仅5GB。

总的来说,H.266/VVC的意义相当非凡,如今网络视频已经普及,使用新的视频编码之后,同等清晰度下,可以进一步节省带宽,减少卡顿等情况,提升用户体验,同时降低企业成本。如果H.266/VVC得到普及,所有与超高清视频相关的行业将迎来巨大变革,说视频编解码技术H.265/H.266是4K/8K超高清视频发展的基石也不为过。

但还是老生常谈的问题,从历史来看,H.265/HEVC的采用可以说相当缓慢,2013年标准签署,直到2017年才在iOS11上被苹果支持。而如今,H.264/AVC仍旧占据相当主流。再加上使用H.26X系列需要支付专利费的问题,并且新的H.266/VVC的专利费相比H.265/HEVC还要小幅增长,这对它的普及又是一个不小的鸿沟。

除此以外,H.266/VVC还要面对以AV1为代表的开放标准的挑战,尽管它改进了一堆技术,但在免费开源面前,如果专利授权费用问题没能有很好的解决方式,那恐怕难以复制H.264/AVC当年的奇迹。

写在最后

随着现在显示设备的分辨率越来越高,不少观众享受到了更高清的观看体验,这其中也少不了视频编码的功劳。从视频编码的发展史看,从最早推出的H.261开始,开发者致力于提升算法,让编解码的效率更高效,不少新推出的视频编码在带宽与容量上面下足了功夫,相比旧的编码方式,节约的可不止一点半点,甚至更新的编码在画质表现上也更有优势。

众所周知,互联网中最大的流量使用就是视频,而随着设备的迭代,流媒体的兴起,这部分的流量只会越来越大,而互联网的带宽有限,无限提升视频流量显然是不智之举,更新更高效的视频编码就是最好的解决方案,即为B站、YouTube这种流媒体网站节省带宽、流量的开销,也为用户节约流量与存储空间。

而在过去十年来,视频编码标准领域也逐渐从H.264的一家独大转向了多种编码方案共存、共同竞争的局面。对于整体市场而言,更多竞争无疑能够打破垄断、带来更多选择,推动行业技术更快进步,像我们上文提到的AV1、VP9甚至是VVC等都是未来的编码趋势。这次的硬件编年史就到这啦,我们下次再见~另外本文笔者只是通过简单的描述,想让更多人了解视频编码的发展史,其中也存在诸多的不足,还望了解的读者指出。

标签:

Copyright   2015-2022 亚洲晨报网 版权所有  备案号:豫ICP备20022870号-9   联系邮箱:553 138 779@qq.com