一、部分专有名词解释
ultrahigh definition resolution(UHD)超高清分辨率的定义
advanced video coding (AVC)先进视频编码
tiles and wavefront parallel processing (WPP) 瓦片和波阵面的并行处理(???)
the largest coding unit最大编码单元 (LCU)
mode-dependent intrasmoothing 模式依赖型帧内滤波(MDIS)
motion vectors 运动矢量(MVs)

二、Introduction
视频编码联合协作小组(JCT-VC)【the Joint Collaborative Team on Video Coding (JCT-VC)】:
1.将七种高质量的建议核心特点整合至一个测试模型。这个测试模型也是后来HM代码的基础
2.召开多次会议共同商定来自商用和学术界的几百条建议,挑选最优的编入HEVC标准

当前HEVC测试模型(TMuC 5.0)版本的一些关键元素如下:
1)块结构更加复杂,包含了使用递归四叉树算法的8x8~64x64像素的变换块
2)改进了支持并行编码和解码的机制,包括slices和tiles的并行处理
3)35种帧内预测模式,绝大多数是定向型预测模式,并且可以在多个块大小的条件下完成
4)支持多种整数像素块(8x8~32x32)变换,甚至非方形块变换
5)改进运动信息编码,包括一个新的合并模式,即在位流中只用一个指针来表示前一个块的运动状态
6)在图片重建中广泛使用内循环,包括去块效应滤波、采样点自适应偏移和自适应环路滤波

三、HEVC的设计(HEVC虽然一直在改进和做出改变,本文只讨论一些新的特点和和H.264\AVC的区别之处)

图1:HM-5.0编码器的框图
根据图1可以看出HEVC的编码部分类似于H.264\AVC。到目前为止,HEVC只指定了一个概要文件(main),现在正在考虑更多的概要文件和多个级别。以下将详细描述最新版本HEVC的主要特性。

1.图像分割
和其他视频编码标准相似,HEVC也是基于块的混合编码结构。HEVC能够更高效率压缩的主要原因是HEVC引入了具有灵活子分割机制的更大的块结构。HEVC的基础单元块是最大编码单元(LCU) ,它可以被递归地划分成更小的编码单元(CUs),进而可以划分成为小的预测单元(PUs)和变换单元(TUs)
2.编码单元
1)鞭尸其他标准(H.264\AVC和H.263\MPEG-2的严格的块大小划分不能很好地满足各种视频的大小)
2)对于图片的平滑区域,划分为大块效果更好,而对于边缘和细节部分,划分为小块才更加合适
3)随着视频分辨率的不断提高,图片将包含大量的平滑区域,因此使用大块效率更高
但是,HEVC不仅可以在平滑区域使用高效率的大块,并且可以在细节和不平坦区域将大块灵活的划分为小块。
在HEVC中,将图片划分为方块,这些方块被称为LCU,最大可以达到64x64大小。HEVC中LCU的概念类似于以前编码标准中的宏模块。LCU可以进一步被分割为用于帧内和帧间编码的基础块CUs ,CUs的大小可以和LCU一样,或者可以将LCU递归分割最小至8x8,这取决于图片的内容。在HEVC中,由于四分之一大小的递归分割,形成了一种由CUs组成的内容自适应的编码树结构,图2是将64 x64 LCU分割为不同大小的CUs的过程。

图2:64 x64 LCU分割为不同大小的CUs的过程
3.预测单元
每个CU可以更进一步分割为更小的单元,用来进行预测,这些单元被称作PUs。每个CU可以包括一个或者多个PU,PU的大小可以和根CU的大小相同,最小小至亮度块大小4x4。虽然LCU分割成CUs时使用递归方法,但是CUs划分为PUs时并不是递归且只能分割一次。
PUs可以使对称也可以是非对称的,对称的PUs可以是方形或者是矩形。用于帧内(只能使用方形)或者帧间预测。特别的,一个大小为2Nx2N的CU可以被分割为Nx2N或者2NxN这两个对称的PUs,或者是4个NxN大小的PUs。非对称PUs只能用于帧间预测,并且可以分割用来匹配图像的边界部分。图3显示CU划分为PUs的这一过程。

图3:(a)对称分割(b)非对称分割
4.变换单元
在HEVC中变换单元(TUs)是进行变换和量化的基础。TUs的大小和形状取决于PUs。方形TUs可以小至4x4,大至32x32。非方形(矩形)TUs的大小可以是32x8、8x32、4x16和16x4亮度样值。每个CU可以包含一个或多个TU,每个方形CU可以根据四叉树分割结构分为更小的TU。图4是在LCU中TUs如何被分配,图5则揭示了32x32的CU块如何一步一步划分为PU和TU块。

图4:LCU中的TUs分配状况(例)

图5: 32x32CU的分割过程(例)
5.slices 和tile的结构(鬼知道这两个怎么翻译
H.264\AVC已经使用了slices进行并行编解码,并且提供了差错恢复。每个slices都被独立地解码,其他slices的信息并没有参与。H.264\AVC引入了宏块排序 (FMO) 作为工具将宏块灵活地配置到各个slices中。虽然宏块排序 (FMO) 能够在高损耗的环境下提高容错性,但是由于slices的边界不可预测性会导致复杂度增加和编码效率降低,因此宏块排序 (FMO) 并不能在实际中广泛应用。
HEVC引入了tile来支持并行传输,比H.264\AVC中的普通slices更加灵活并且复杂度要比宏块排序 (FMO)低。tiles可以利用边界垂直和水平方向的交叉点将一幅图片划分为不同的矩形区域。图6表示了包含slices的tile分区的一个例子:tiles的行列边界的间距不一定非要是均匀的,这种设定增加了灵活性并且能够很好地应用到差错恢复当中。在每一tile中,LCUs是以光栅扫描的方式进行处理的,同样的,在图片中tiles也是以光栅扫描的方式进行处理的。

图6:一副图片被划分为9块tile的例子
HEVC支持slices,但是不支持宏块排序 (FMO)。在同一幅图片中,slices和tiles一般可以同时使用。为了支持并行传输,HEVC中每一slice都可以被划分为更小的slice,称作熵slices。每一个熵slices都可以独立地进行解码而不依赖于其他的熵slices。因此,每个CPU的核心都可以并行处理熵解码过程。
6.波阵面并行处理
在HEVC中,slices和tiles为并行编解码提供了相应的机制。但是他们都带来了相应的损失。在边界的预测的依赖性被打破,对于每一slice和tile来说,熵编码的统计数据必须被初始化。为了避免这些问题,HEVC引入了波阵面并行处理(WPP)。波阵面处理可以不用打破边界的依赖性,并且在熵编码中尽可能利用相关性来实现并行编解码。基本的概念是,在上面一行中处理了两个LCUs之后,就开始启用新的并行进程(通常是一个新的线程),来处理新的LCUs行(编码或解码)如图7所示。

图7:四线程WPP的示意图
由于帧内预测和运动是量预测都依赖于上方和右上方LCU的数据,因此至少需要两个LCU。熵编码的参数是根据从上面一行中两个完全编码的LCUs中获得的信息进行初始化的,在这儿允许在新的编码线程中使用尽可能利用相关性。

四、帧内编码
就像H.264\AVC一样,HEVC在一幅图片中利用空间相关性来进行基于块的帧内预测。HEVC继承了H.264\AVC帧内预测的基本思想但使之更加灵活。HEVC中有35种亮度预测模式,而H.264\AVC中只有9种。并且,无论PU的大小是多少,帧内预测可以在块大小不同(4x4~64x64)的情况下完成。图8表示了HEVC和H.264\AVC的亮度帧内预测模式的对比示意图。

图8:HEVC和H.264\AVC的亮度帧内预测模式的对比示意图
支持的亮度帧内预测模式的数量是以PU的大小为基础的,见表1。
表1:不同PU的大小对应的亮度帧内预测模式的数量

HEVC同样包括 平面帧内预测模式,平面帧内预测模式一般用来预测图片的平滑区域。在平面预测模式中,预测值来自于两个线性插值(垂直和水平方向)的均值。
为了提高帧内预测的性能,对于某些帧内模式使用模式依赖型帧内滤波 (MDIS) 。MDIS包含对预测的样本应用一个系数为(1,2,1)/4的简单低通有限脉冲响应滤波器。参考信号的平滑滤波能够提高预测的性能,尤其对于尺寸较大的PUs。MDIS通常以PU的大小和帧内模式为基础,一般来说,在PU较大或者定向模式中使用MDIS(除了水平和垂直模式),详情请看图9所示:

图9:使用模式依赖型帧内滤波 (MDIS)器来进行帧内预测的例子
HEVC当中色度帧内预测模式数量(6种)同样比H.264\AVC中的模式(4种)多。包括:定向模式(DM)、线性模式(LM)、垂直(mode 0)、水平(mode 1)、DC(mode 2)和平面(mode 3)6种模式。原则上,DM和LM利用了亮度和色度分量的相关性。如果亮度和色度分量的纹理方向一致,则选择DM;如果样本的亮度和色度分量高度相关,则选择LM。这样看来,利用和亮度分量的线性关系可以重建色度模块。由于DM和LM利用的关联类型不同,这两种模式在编码性能上是互补的。根据亮度和色度分量之间的相关性,在帧内预测色度分量时经常选择DM和LM模式。

五、帧间预测
帧间编码图片是指那些参考其他图片进行编码的图片。帧间预测利用了个图片时间邻域的相关性,并深入研究。相比H.264\AVC,HEVC引入了帧间预测增强,大大提高性能。
1、可变PU尺寸运动补偿
早前说过,每个LCU都可以被再次分割为方形的CUs,这些CUs可以被分割为更小的方形或矩形PUs。每个使用帧间编码的PU都有一系列的运动参数,包括:运动矢量组成、参考图片索引和参考列表标志位。帧间编码的CUs可以使用对称和非对称的分割区域(AMPs),AMPs允许将CU划分为非对称的小的PUs。图10展示了32x32的CU如何进行非对称划分。

图10: 32x32CU的非对称运动区域划分
AMPs可以应用在16x16~64x64大小的CUs中。由于AMPs可以根据图片中的物体更加精准地判断是否需要进一步分割PUs,因此提高了编码效率。

2.更优的亚像素插值
和H.264/AVC一样,HEVC对于亮度样值的运动补偿精确度为1/4像素。为了获得非整数亮度样本,使用分别在水平和垂直方向使用可分维的8抽头和7抽头的内插滤波器来产生1/2和1/4像素值的亮度样本。

图11:从全像素样本中获得亚像素插值
图11展示了如何使用全像素值产生分数像素值,表2展示了对于每个非整数亮度位置所对应的滤波器系数。此处注意,与H.264/AVC中不同的是,1/4像素值来自于具有更长滤波器的整数亮度样本值,而不是来自于相邻半像素和全像素样本的线性插值。
表2:亚像素插值滤波器系数

色度分量的预测值同样可由一个一维四抽头基于DCT的插值滤波器产生。色度样本的预测精度为色度样本的1/8。

3、运动参数编码和改进的skip模式
在H.264/AVC中,运动矢量的编码是通过计算一个预测的运动矢量和对目标MV和预测MV的差值进行编码来实现的。预测的MV是左、上、右上的三个方向的中值构成的。并且,H.264/AVC中只有一种skip模式,在比特流中没有运动参数且量化残差未被编码,但是运动参数可以从前一帧的相同位置的MB(这是什么鬼??)中得到。
在HEVC中,MVs在空间和时间上都可以被预测,并且引入了运动融合的概念。
对于每个用于帧间编码的PU来说,编码器可以在以下几种情况中选择:
1)使用显式编码的运动参数(也就是使用运动矢量预测并对MV的差值和参考图片进行编码)
2)使用运动融合模式
3)使用改进的skip模式
运动融合模式包括,为了当前PU编码而产生关于过去已编码邻域PUs(候选PUs)的列表。这些候选PUs无论是在时域还是空域都无限接近于当前PU。从运动融合列表中选择一个PU,则当前PU的运动信息和编码器信号全部都来自于这个候选PU。值得注意的是,运动融合并没有为PU进行运动矢量编码,而是对运动融合列表中的候选PUs的索引进行编码。
HEVC中新的skip模式,编码器同样对运动融合列表中的候选PUs的索引进行编码,当前PU的运动信息和编码器信号也全部都来自候选PU。这样就可以使用极少的比特位来对那些帧与帧之间图片的变化很小或者恒定运动的区域进行编码。

六、变换和量化
与H.264/AVC类似,HEVC对预测残差应用了类似于DCT的整数变换。HEVC包括的变换模式可以应用在4x4~32x32像素的块中。4x4、8x8、16x16和32x32的变换基向量均可以得到。HEVC同样支持对矩形块的变换,即行变换和列变换有不同的长度。HEVC中使用的整数变换比H.264/AVC中的变换更加接近DCT变换。HEVC中变换的基向量均具有相同的能量,因此不必像H.264/AVC中还要对不同的norms(规范???)作出补偿。
HEVC还包含了一个4x4的离散正弦变换(DST),用于对一些帧内预测模式的块的编码。在帧内预测时,使用最接近当前像素的像素值(靠近上方或左边界)来进行预测的精确度要远远大于使用距离更远的像素。因此,对于远离边界的像素,残差往往更大。由于DST基函数从低到高增加,DCT基函数从高到低减小,因此,DST更加适合对上述形式的残差进行编码。

七、熵编码
经过变换之后,所有的语法元素和量化后的变换系数都可以用熵编码进行编码。在H.264/AVC中,上下文自适应变长编码(CAVLC)是熵编码器的基础,上下文自适应二进制算数编码(CABAC)往往应用在主要和重要的文件中。由于CABAC具有算术编码引擎和更加复杂的上下文建模算法,CABAC的编码效果比CAVLC更优。但是CABAC在提高编码效率的同时也增加了编码的复杂度,这一现象在那些高速比特速率(量化参数很少)、变换系数数据在比特流编码中占主导地位的环境中显得尤为突出。在HEVC中,为了提高最坏情况下的吞吐量,编解码器为编码变换系数数据使用了更高吞吐量的替代模式。图12显示了HEVC中熵编码的图解过程。

图12: HEVC熵编码的过程
如图所示,HEVC的熵编码包括两种模式:高效率二值化(HEB)和高吞吐量二值化(HTB)。HEB模式全部基于CABAC,而HTB模式则部分基于CAVLC的残差编码模块。HTB旨在为HEVC提供高吞吐量,它的使用与slice层的一个信号有关(1比特的标志位来控制是否使用HTB模式).在HTB模式中,除了残差系数使用CAVLC进行编码,其他的语法元素全部使用CABAC进行编码。这种相互协作的机制,能够使HEVC的熵编码在CABAC和CAVLC两种编码方式(即高效率和低复杂度)中得到最满意的效果。

八、环路滤波
如图1所示,环路滤波在反变换之后,但是在重构后的图像通过运动补偿来预测其他图像之前。环路滤波的名称反映了这样一个事实,即滤波是预测循环的一部分,而不是后处理。H.264/AVC包括了一个循环内去块滤波器。HEVC采用了一种类似于H.264/AVC的去块过滤器,但也通过引入两种新工具扩展了循环内处理的功能:SAO和ALE。它们在编码的主要步骤(预测、变换和量化)中被使用,旨在减少失真。通过在预测循环中加入滤波,从而图像的编码失真小,对运动补偿预测具有更好的参考价值。
1、去块效应滤波器
块效应是基于块的运动补偿中最显而易见的缺点。正因为如此,在H.264/AVC中根据边界强度,块的边界自适应地应用低通滤波器。这样做无论从主观和客观都提高了视频的质量。
HEVC使用了一个类似于H.264/AVC中的内循环去块效应滤波器。在HEVC中,存在多种块的边界,比如:CUs、PUs和TUs。在HEVC中可能被滤除的那些边界只能在这些块中(4x4的块不能通过滤波来降低复杂度)。对于每个块边界而言,能否去除块效应和应用强滤波还是弱滤波有关。这个决定是基于像素的梯度,梯度是在块的QP基础上,通过边界和阈值得出的。
2、采样点自适应偏移(SAO)
SAO是HEVC引入的一个新的编码工具,它将像素分成若干个不同类别,并根据每个像素的不同类别为它们加上简单的偏移值。SAO根据边界属性和强度将重建后的像素分成不同的类别。然后在一个区域每个种类的像素上加上偏移量,带偏移(BO)或者边缘偏移(EO),用来减小失真。
BO将一个区域的所有像素分类为多重带,每个带中的像素都具有相同的强度间隔。强度范围被分成从0到最大强度的32个等距。例如:8比特数据的最大值是255,所以带的宽度为256/32=8个像素。这32个带可以被分为两组,一个组包括中间的16个带,另外一个组包括剩下的16个带。详情请看图13。编码器决定哪组波段应用SAO,所以16个偏移量将在比特流中被编码。

图13:8比特数据的BO模式强度带和带的分组情况
EO使用4个一维3像素模式的其中一个,来根据边缘方向对像素进行分类,如图14所示。每个像素都可以划分为峰(如果它大于两个邻域),谷(如果它小于两个邻域),边(如果它等于一个邻域,类 2和3),或者哪种情况都不是。将为这四个类别计算四个不同的偏移值。

图14:EO模式中的类别
编码器在图片的不同区域可以选择使用EO或者BO,也可以一个区域这两种都不使用。
3、自适应环路滤波(ALF)
在HEVC中,自适应环路滤波可以在去块效应滤波和采样点自适应偏移(SAO)之后用来重建信号。这个滤波器是自适应的就意味着在比特流中系数是以信号的形式存在,因此系数可以以图像内容和重建图像的失真为基础进行设计。ALF滤波器用来重建图像,并且使原图像和重建后图像的平均平方误差最小。在现在的HEVC草案中使用一个单一的滤波器形状,一个9个系数交叉的3x3结构,这9个系数将在比特流中被编码。值得注意的是,由于滤波器的对称性,抽头的个数要大于9个。如图15所示。

图15:ALF滤波器形状
在一幅图片中,对于不同像素点的不同滤波器,可以分为两种模式:基于区域适应(RA)和基于块的适应(BA)。在基于区域适应(RA)的模式中,图片被分为16个相等的区域,这些区域可以互相融合,但是在融合后每块区域也保留着它自己特有的滤波器(独一无二的滤波系数)。在基于块的适应(BA)的模式中,根据边缘活动和方向,4x4的块可以被归类为16个种类中的一类,这些类别可以合并,合并之后需要为每个类别分别设计一个滤波器。每个区域的滤波系数可以根据该区域的原始像素和重建像素之间的自相关系数和互相关系数进行计算(利用维纳霍普夫方程)。
根据将LCUS划分为CUs的过程(四叉树分割结构),在图片的不同区域可以选择使用或者不使用ALF滤波器。

九、HEVC和H.264/AVC的性能比较
在评估了当前HEVC模型(HM5.1)之后,和H.264/AVC标准(JM16.2)做了比较。从为CFP提供给MPEG的数据库*(实在不知道怎么翻译??)*中选出四种不同分辨率和不同帧速率的测试序列(如表3)。所有测试视频的YUV序列均为4:2:0。
表3:测试序列参数

H.264/AVC的配置如下:高轮廓、B层次图片、图组长度为8、CABAC熵编码和允许优化失真率的量化 (RDOQ)。在 联合CfPs中,通过MPEG/VCEG从H.264/AVC到HEVC,这些配置建议被纳入考虑范围内。对于HEVC的测试,为了保证最高压缩的性能,我们使用随机存取效率高的(RA-HE)配置。(RA-HE)配置如下:B层次图片、图组长度为8、ALF, SAO和 RDOQ。QPs为26、32、37和44。

图16:HEVC和H.264/AVC编码效率的比较(a)people on street (b) basketball drive ©race horses (d)blowing bubbles

图16表示了所有测试序列的误码率曲线,表4陈列了HEVC对比H.264/AVC标准的平均增加信噪比和平均节省比特速率。*(我感觉叙述和图片对应不起来,但是看图片是可以看懂作者所表达的意思的)*可以看出HEVC在比特速率方面超过H.264/AVC 29.14–45.54%;在信噪比方面超过H.264/AVC 1.4–1.87dB 。对于相同的(线性插值)平均意见得分,从主观方面对压缩视频质量进行比较表明了HEVC比H.264/AVC平均节省比特速率58%。注意:在主观测试中,测试者对于不同比特速率的压缩视频的观点作为衡量质量的关键因素,而在客观测试中,信噪比才是作为衡量质量的关键因素。无论从客观还是主观出发,这些结果都表明了HEVC标准能够在和H.264/AVC传输相同质量视频的条件下节省一半的比特速率。

表4:HEVC对比H.264/AVC平均增加信噪比和平均节省比特速率

本博文仅作小白学习记录使用,论文原文在资料下载处可见,所有疑惑点均作了标注。欢迎各位大佬交流批评指正,侵删。

关于文献HEVC-The New Glod Standard For Video Compress的理解相关推荐

  1. 关于文献Overview of the High Efficiency Video Coding的理解

    由于文献其他博主已经上传,各位可以去下载,本文用于(部分)翻译和学习 传送门:https://download.csdn.net/download/daunxx/7293175 HEVC标准的综述(O ...

  2. HEVC/H265 性能分析

    HEVC/H265 标准中的目标是:H264的码率一般,质量一样,是否达到,数据说话.  下面是视频编解码大师测试数据: HEVC: is it really twice as good as H.2 ...

  3. HEVC新特点一览(3)

    在之前的博文中,我曾经简单把之前阅读文献资料和编译软件的记录和心得记录分享了一下.由于我也是刚刚接触HEVC没几天,有些问题我的理解也不是很深入,在之前的博文中有博友对高层语法中的一些概念提出了疑问. ...

  4. 【转】Net Framework,Net Core 和 Net Standard 区别

    前几天我在一个群里看到有关这方面的讨论,最后感觉讨论的不是很清晰,有幸的是我们的项目去年就开始迁移NetCore的调研了,我个人多多少少也是有过这方面的研究.下面我将说一下我自己对着三个的认识如果有不 ...

  5. 爬虫推特数据分析的外文文献_高效阅读英文文献你必须知道的技巧

    之前带过的研究生很多都存在读文献的严重误区:从头读到尾恨不得嚼透每个单词,读完后束之高阁让记忆随风飘散等等.今天总结一下读英文文献的高效方法,希望对于初涉科研的同学们有些许帮助. 今天总结一下读英文文 ...

  6. 让CEF支持HEVC(H.265)视频播放

    HEVC(H.265)有高昂的版权费用这个是众所周知的,所以现在绝大多数浏览器默认都不具备HEVC解码能力,这一点可以通过caniuse.com看到: 可以看到,基本上只有Apple是HEVC的主要支 ...

  7. 如何用 LiquidText 高效阅读分析文献?

    题图:Photo by Alina Grubnyak on Unsplash 读文献,最忌讳的就是线性阅读.要想把文献读出层次,构建成网络,从而提升理解和吸收效率,你就需要一款合适的工具了. 我之前写 ...

  8. H.265/HEVC在Web视频播放的实践

    H.265 以下是百度百科对于H.265的介绍: H.265是ITU-T VCEG继H.264之后所制定的新的视频编码标准.H.265标准围绕着现有的视频编码标准H.264,保留原来的某些技术,同时对 ...

  9. 论文阅读:Prediction With Multicross Component forFuture Video Coding

    论文来源:2020 IEEE Digital Object Identififier 概要:为了全方位探索不同色彩通道之间的相似度,本文面向AVS3标准提出了一种跨分量预测方法PMC作为一种新的色度帧 ...

最新文章

  1. Java实现文件的RSA和DES加密算法
  2. 小米Android N新功能,快升级牛轧糖 小米Android N支持汇总
  3. CCNP-第十篇-BGP(二)
  4. 新知|你知道生气有多可怕吗?“气死人”是有科学依据的
  5. Postman使用总结(1)——Postman 自动化测试小结
  6. 【LibreOJ109】【模板】并查集
  7. [SQl读书笔记]§6.Transact-SQL(4)
  8. PHP如何启动scrapy,php教程博客
  9. Linux 命令之 yum 软件仓库
  10. 数据分析最具价值的49个案例(建议收藏)
  11. 二维条码和射频识别技术在仓储物流系统中的应用
  12. 【计算机网络】零拷贝之MMAP
  13. 大数据技术架构_大数据架构流程图
  14. python 排列组合函数_python排列组合
  15. 2020届实习招商银行信用卡笔试题(IT算法方向)python版(同2019春招笔试题)
  16. 旌扬机器人_“http://club.liangchanba.com/”搜索蜘蛛、机器人模拟抓取结果--站长工具...
  17. 【机器学习】阿里云天池竞赛——工业蒸汽量预测(4)
  18. MSDN帮助文档安装失败解决方案
  19. 个人安装RHEL7需要做的事情
  20. 自定义UDF函数:将汉字转换成拼音

热门文章

  1. 前端框架React Js入门教程【转】
  2. 【机器学习】Tensorflow.js:我在浏览器中实现了迁移学习
  3. 人机猜拳代码python_python 实现人和电脑猜拳的示例代码
  4. 所以Web 3.0到底是什么?
  5. c++项目实习,药店药品管理系统
  6. Linux下载并安装rabbitmq-server-3.6.5-1.noarch.rpm
  7. c语言编程练习题及答案
  8. 2007年9月19日
  9. bp神经网络和cnn神经网络,bp神经网络与cnn区别
  10. 大数据场景下多源异构数据的实时处理分析