【视频编码\VVC】帧间预测编码基础知识

帧间预测编码概述

基本原理

利用时间相关性,使用邻近已编码图像像素值预测当前图像的像素值,能够有效去除时域冗余。目前的视频编码标准中,帧间预测都采用了基于块的运动补偿技术。

运动估计(ME):当前图像的每个像素块在之前已编码图像中寻找一个最佳匹配块的过程。

参考图像或者参考帧:用于预测的图像

运动矢量(MV):最佳匹配块到当前块的位移

预测残差:当前块与参考块的像素差值

运动补偿:根据MV得到的参考块作为当前当前块预测值的过程

I图像:只能使用帧内预测编码技术

P图像:可以使用帧间预测编码技术

B图像:可以选择使用前向预测、后向预测或双向预测。一个宏块拥有2个MV。

MV差分:去除相邻块运动矢量之间的相关性。

半像素精度:MV不一定是像素的整数倍

MV预测(MVP)

H.264:有7种尺寸的运动补偿块、1/4像素精度MV、多参考图像预测、加权预测及空域/时域MVP技术

H.265:非对称划分、更先进的MVP技术(merge和AMVP)、多参考图像和加权预测

H.266:更加灵活的二叉树、三叉树、四叉树混合编码单元划分和非矩形几何划分、还在运动矢量预测、获取、运动补偿中引入了新的技术。

帧间预测编码关键技术

运动估计、运动矢量表示、运动补偿

运动估计

再当前已编码图像中寻找一个最佳参考块,得到最优编码性能。编码器根据率失真代码最小的参考块作为当前块的最佳匹配块。

  • 运动估计的准则:MSE\MAD\MPC\SAD\SATD(使用比较广泛的是SAD\SATD)
  • 运动搜索算法:根据匹配准则寻找最优匹配块获得最优MV的过程。(全局搜索、对数搜索、三步搜索、UMHexagonS\TZSearch)
  • 亚像素精度运动估计:因为物体运动不一定以整像素为基本单位,因此将运动估计的精度提升到亚像素级别,可以提高运动补偿的精确度,进而提高编码效率。意味着需要对参考图像进行插值。
运动矢量表示

运动矢量信息:参考图像索引、MV水平分量、MV垂直分量

  • MV空域预测:利用空域相邻块的运动信息。
  • MV时域预测:利用时域临近帧的运动矢量预测当前帧的运动矢量。

记录时空域相关块的预测信息,建立候选MV列表,选取性能最优的一个运动信息作为MVP

运动补偿

目标:利用参考重建块构建当前块的预测值,使其率失真代价最小。

  • 普通运动补偿
  • 多参考图像运动补偿
  • 加权运动补偿

VVC帧间预测编码概述

MV的预测和获取

MV预测技术继承和发展了H.265的merge和AMVP技术,拓展了MV预测选择范围,提高MV的表示精度。

(1)Merge模式

在MVP候选列表的构造上,保留了空域和时域候选,去除了组合MVP候选,增加了基于历史的MV预测(HMVP)和成对平均MVP候选,并且改变了空域候选的检查顺序。

  • 联合帧内帧间预测技术CIIP
  • 带有运动矢量差的Merge技术MMVD
  • 几何划分帧间预测技术GPM

(2)AMVP模式

保留原AMVP列表构造方式的同时,引入了HMVP候选的构造。

双向AMVP模式的选择上,增加对称运动矢量差分编码AMVD技术。

引入了CU级的自适应运动矢量精度(AMVR)技术,允许多种不同亚像素精度来编码MVD。

(3)基于子块的MV表示

新增了基于子块的帧间预测技术,可以一次性表示一个编码块中多个子块不同MV的信息。

  • 基于子块的时域MV预测(SbTMVP),每个子块使用同位图像中对应位置块的运动信息来预测MV。
  • 放射运动补偿预测(AMCP)技术,针对缩放、旋转等运动场景。

(4)解码端MV细化

为提升双向MV预测的准确性,VVC采用了一种双向MV修正技术解码端运动会矢量细化(DMVR),在解码端通过基于双边匹配的局部小区域运动搜索,将MV微调后再用于运动补偿。

运动补偿
  • GPM模式需要你对划分边缘进行加权渐变处理
  • 与多种帧间预测模式同时应用的光流场修正、片级运动补偿(WP)、CU级权重的加权预测(BCW)等预测块处理技术
  • 双向光流技术
  • 光流预测细化(PROF)
帧间编码信息的存储

需要存储除了参考帧、MV水平分量、MV垂直分量,还有半像素插值滤波器索引、CU级权重双向加权预测的权重索引、用于放射模式的局部多控制点MV信息、参考图像的MV信息。

亚像素插值

VVC采用双线性插值方法,插值滤波器为一维滤波器,按照先水平方向后垂直方向的顺序完成二维亚像素插值。

用于提升运动矢量精度也用来防止当前帧与参考帧分辨率不同的情况。

插值滤波器选择

(1)亮度分量:最高支持1/16像素精度插值,统一为8抽头滤波器。

(2)色度分量:最高支持1/32像素精度插值,统一使用4抽头滤波器。

水平、垂直滤波器的系数分别由水平、垂直方向的缩放因子决定,最后通过查表的方式获得插值滤波器的系数。

亚像素插值方法

采用双线性插值方法,,按照先水平后垂直方向的顺序进行。

1、对整像素所在行的亚像素进行插值

2、对列亚像素进行插值

Merge模式

merge模式直接利用一个或者一组MVP,推断得到当前编码块的MV信息。进行运动补偿获取帧间预测块,然后对预测残差进行编码。Merge模式不需要传输MVD和参考帧索引,是一种高效的MV编码方法。

常规Merge模式

直接将MVP运动矢量信息(参考图像索引、运动矢量)作为当前CU运动矢量信息的帧间模式编码。需要建立一个MVP候选列表(MergeMVP),选择一个MVP作为当前CU的MV,就可以得到当前CU的像素预测值,进一步编码预测残差。

MergeMVP列表构造较为复杂,是Merge模式最关键的环节,候选最多为6个。依次包含

  • 空域候选MVP:使用当前CU的左侧和上侧已编码CU的MV作为空域候选,列表最多选择4个空域候选。按照B1-A1-B0-A0-B2的顺序进行选择。
  • 时域候选MVP:利用当前CU在时域邻近已编码图像中对应位置CU来确定,叫做同位图像(ColPic),但是需要按照位置关系进行比例伸缩调整。参考时域距离(图片顺序技术POC)。最多提供一个时域MVP。
  • 基于历史的候选MVP:将先前已编码块的运动信息存储在一个最大长度为5的HMVP列表中,随着编码过程不断更新,按照先进先出的原则保持列表控制冗余,每个CTU行重新置0。如果MergeMVP列表还有空域位置,就按照HMVP列表顺序添加不同的选项。
  • 成对平均候选MVP:如果还有位置,就使用平均候选AvgCnd来补充列表,
  • 零值MVP:还剩下就将单向、双向、值为(0,0)的MV补充道MergeMVP列表的末端

SKIP模式

是merge模式的特例,直接使用MVP信息作为当前CU的运动矢量,除了不编码MVD信息,也不编码预测残差信息。只需要MVP信息索引,编码比特数很少。skip模式也可以是MMVD\GPM\SbTMVP和仿射Merge等的拓展模式。由cu_skip_flag标记。

带有运动矢量差的Merge模式(MMVD)

因为视频相邻区域CU往往有不同的运动特性,常规merge降低了MV编码比特数,但也因为不准确的MV产生大的预测误差。AMVP技术编码运动矢量的预测残差MVD,与MVP一起表示运动矢量。

但是AMVP模式下的MVD通常需要较多的比特表达,所以VVC引入了一种带有运动矢量差的merge技术MMVD,设定了包含多个固定值的M_MVd集合,选取集合中的一个值作为当前CU的MVD。MVD和MVP都是通过索引获得,MVP必须为mergeMVD列表前2项候选项。M_MVd对应4种方向上8种偏移步长,共2*8*4=64个新的运动矢量候选项。具体单项预测和双向预测,需要根据时间信息进行缩放。

联合帧内帧间预测模式(CIIP)

利用帧内预测值和帧间预测值的加权平均得到当前CU预测值的技术。限定帧内预测只采用planar模式,帧间预测只采用常规merge模式,CU的尺寸和形状有限定。

几何划分预测模式(GPM)

VVC中,CTU可以经过二叉、三叉、四叉树划分,但是实际视频内容和多样,当物体运动具有非水平或垂直边缘的时候,不能有效匹配,所以引入几何帧间预测模式,允许使用非水平或垂直直线对矩形CU进行划分,每个子区域可以使用不同的运动信息进行运动补偿。从而提升预测准确度。为merge拓展模式。

原理

为了区分不同的物体,可能在物体边缘产生大量小块,消耗过多头信息,且划分边缘与实际边缘不符合,无法有效表示非垂直边缘。

GPM使用直线将矩形CU划分成2个不规则子区域,拥有自己的运动矢量信息,并进行相应的单向运动补偿。划分线可以用角度和偏移量表示,使用法线和点到直线的距离来表示。VVC中角度和偏移量只允许选择部分预定义的离散数值。各区域分别利用不同运动信息获得补偿,并对划分线附近区域以软混合的方式进行加权融合,以模拟自然场景中柔和的边缘过度。

  • 几何划分:共支持64种划分方式。
  • 子区域运动矢量:两个子区域都只使用单项预测,并以merge模式编码,运动矢量由GPM模式专用的单向MVP候选列表、列表索引获得。
  • 运动补偿加权融合:为了避免划分线附近像素值的突变,距离话分享较近像素的权重渐变,融合了两个方向的预测值,模拟柔和过渡。
  • 运动信息存储:1、当子块中心位置到划分线距离大于等于2时,存储运动矢量为中心所在子区域的运动矢量2、当划分线小于等于2的时候,如果两个子区域运动矢量所在参考列表不同,则作为双向预测分别存储两个运动矢量信息,如果两个子区域运动矢量所在参考列表相同,则取第二个预测分区的运动矢量作为单项预测存储。

高级运动矢量预测技术(AMVP)

通过高效表达运动矢量插值MVDF进行运动信息编码。

常规AMVP模式

是针对运动矢量信息的差分编码技术。利用空域、时域上运动矢量的相关性,为当前CU建立MVP候选列表,和Merge不同,AMVP在构建候选MVP候选列表的时候,针对不同参考图像得到的MVP列表可能不同,需要编码参考帧索引,还需要编码选中MVD列表缩影和MVD(MV-MVP)。AMVP列表针对每个参考图像建立,每个列表各项只包含单项运动信息,且列表长度仅为2。

  • 空域候选MVP:最多选2个候选,左侧顺序A0-A1,上方顺序B0-B1-B2
  • 时域候选MVP:与merge类似
  • 基于历史的候选MVP:从HMVP中最近4项进行选择
  • 零值MVP

对称运动矢量差分编码技术(SMVD)

对于双向预测,并且参考位于当前帧两侧的情形,前后向运动矢量具有对称一致性,可以采用对称运动矢量差分编码。

采用SMVD的时候,前后向参考图像直接选择两个参考图像列表中距离当前图像最近的,并且时间上处于当前图像两侧的短期参考图像。这样可以有效节省前向MV的参考图像索引、后向图像索引、后向MVD编码消耗的比特数。只需要编码双向AMVP候选列表索引、前向运动矢量差MVD。过程如下:

  • 分别获取两个参考图像列表中距离当前帧最近的短期参考图像,得到当前CU的前后向参考图像
  • 根据前后向参考图像索引RefIdxSymL0和RefIdxSymL1分别建立前向AMVP候选列表和后向AMVP候选列表
  • 根据MVP列表缩影,得到双向MVP
  • 根据码流得到前向MVD,推断得到后向MVD
  • 计算得到MV

自适应运动矢量精度(AMVR)

允许每个CU自适应选择一种精度表示MVD,最高精度为1/16,最低精度为4亮度像素。适用于传输非0MVD的情况吗,如常规AMVP、SMVD、仿射AMVP。使用率失真优化的方法噶判断是否使用AMVR以及采用何种精度。VTM使用快速算法跳过部分MVD精度。

基于子块的帧间预测技术

视频内容包括平移、旋转、缩放、拉伸运动,利用基于子块的帧间预测模式将CU划分为多个子块,利用CU的运动信息按一定规则得到每个子块不同的运动信息,可以节省此类运动信息所包含的比特数。

基于子块的时域MV预测技术(SbTMVP)

使用同位图像ColPic中参考块的运动信息直接得到当前CU子块的MV信息,在当前片是P片时为每个子块构造一个单项预测TMVP,在当前片为B片时为每个子块构造一个双向预测TMVP。当前CU各子块的运动信息由相应同位子块推导得到,当同位子块的运动信息不同时,子块运动信息也不同。

  • 获取同位运动偏移
  • 获取中心运动信息
  • 获取子块运动信息:针对内部子块推导得到对应的TMVP

基于子块的仿射运动补偿

运动具有一定的规律性,可以统一通过仿射变换的思想。即块内任意像素的运动矢量可以由已知固定像素的运动矢量确定。

有4、6参数仿射模型,只需要编码CU控制点的运动矢量,根据模型公式就可以推导出CU内所有秀昂宿的运动矢量。VVC为每个4x4亮度子块推导一个共用的与i你懂矢量,以中心位置推导得到的运动矢量。并给出了内存访问带宽限制机制和回退模式。

仿射Merge模式

在基于子块的仿射运动补偿的基础上,各控制点的运动矢量(CPMV)由SubBlkMergeMVP列表直接得到,是merge的扩展模式。列表中每项候选项包含多个运动矢量,由空间、时间相邻CU的运动信息生成。

SubBlkMergeMVP列表包含

  • 空间相邻仿射模式CU继承候选:最多包含2个,左侧相邻块扫描顺序A0-A1,上册相邻块为B0-B2,每侧采用一个使用仿射模式编码的CU来推导CPMVP候选。
  • 空域和时域相邻CU的平移MV构造:设置4个控制点备选。查表组合得到候选CPMVP
  • 零值MV填充

仿射AMVP模式

当仿射merge无法得到有效的控制点运动矢量的时候使用。针对指定的参考图像,利用仿射AMVP列表得到CPMV的预测值CPMVP,结合对应控制点MVD(MvdCp)表示CPMV。需要将单双向运动信息,包括参考索引、CPMVP列表索引、对应的Mvdcp,和预测残差一起送入码流。

仿射AMVP模式列表

  • 空域相邻仿射模式CU继承:根据采用仿射模式的空域相邻CU的CPMV推导得到CPMVP候选。
  • 空域相邻CU的平移MVP构造:根据MV平移得到
  • 空域相邻CU的平移MV填充
  • 时域平移MV填充
  • 零值MV填充

解码端运动矢量细化(DMVR)

merge模式可以高效表示运动矢量信息,但可能会导致其运动矢量并非使参考块与编码块最匹配。所以VVC采用了一种双边匹配的解码端运动矢量细化技术。

正对采用双向预测merge模式的CU,可以直接得到前后向运动矢量MVL0\MVL1。以对称的方式,给这两个运动矢量加一个小的偏移量MV_diff。基本过程:

  • 参考块获取,根据前后向运动矢量,对每个子块实施运动补偿得到前后向参考块,并对前后向参考子块进行扩充。
  • 整像素搜索:通过计算前后向参考子块的SAD衡量其匹配程度,找到最小的对应MV_diff作为整像素搜索的最优MV整像素精度偏移量。
  • 亚像素计算:亚像素精度MV_diff并不搜索MV_diff周围的亚像素位置,而是基于二次误差曲面函数计算得到。

基于光流场的预测值修正

基于光流的预测值修正

光流指视频帧内容在时域上的瞬时运动速度,即像素在时间域上的运动速度。时间较短的两帧,光流也表现为统一目标点在两帧之间位移,即像素的运动矢量。所以可以利用图像帧中像素亮度在时间域上的变化及像素空域相关性,计算视频帧之间的像素运动信息。因此可以根据参考像素值、光流值、空域梯度得到。当运动补偿中运动矢量存在较小误差时,可以计算运动矢量误差,利用预测值进行修正。

双向光流预测值修正(BDOF)

采用参考帧对称的帧间双向预测的编码块,前、后向预测参考块和当前编码块间的光流对称。可以根据光流公式推到i计算解决一个优化问题:对齐后前后向预测参考块应一致。可以求出双向预测得到的预测值,和双向光流补偿值,得到当前块的补偿光流。为4x4的子块估计一个光流。

  • 子块获取:包括padding预处理
  • 子块亮度空域梯度和时域梯度的计算:根据公式计算
  • 光流计算:VVC采用了简化的光流计算方式
  • 补偿值计算:进一步得到每个像素的光流修正值

基于光流的仿射预测修正

针对采用仿射运动补偿的编码块,光流预测细化技术为4x4子块的每个像素计算光流补偿值,即像素运动矢量和子块运动矢量的插值,然后计算每个像素的亮度补偿值。

  • 子块光流计算
  • 子块亮度空域梯度计算
  • 亮度补偿值计算:利用空间梯度和光流补偿值,计算每个像素的亮度补偿值

帧间加权预测

Slice级加权预测

由于光强造成全局或者局部的亮度变化,但是这类相邻图像内容依旧相似,但在像素值上无法反应,所以对于亮度整体渐变的场景,slice级加权预测可以有效应对,对参考图像的重建像素值做一个线性变换得到预测值。

可以用于单项预测也可以用于双向预测,slice内所有CU采用其中一组或者两组加权参数。

CU级双向加权预测(BCW)

仅对双向预测CU开启,使用少量预定义的权值,且不同配置下权集不同,编码索引。

帧间预测模式组织结构

VVC中使用了大量的帧间编码啊技术,但是编码选取帧间预测模式也需要消耗很多比特。所以设计了树形结构来编码该模式的使用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/707424.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024程序员进阶宝典,字节跳动+腾讯+华为+小米+阿里面试题分享

1、拓宽知识面 兴趣来了挡也挡不住!从最初开始学习编程,从ASP到ASP.net,JS,Winform,Java,C,PHP,Python,都是自学! 不过这里要说一下,如果没有一两门编程语言比较熟悉的情况下,最好还是不要自学;入门是最难…

Linux系统——Nginx拓展

目录 一、重写功能——rewrite 1.if 1.1 if 2. return 2.1状态码301和302的区别 301 302 3. set 4. break 5. rewrite 5.1 rewrite flag使用 5.2 flag说明 5.3举例 5.3.1访问 bj 跳转 beijing 5.3.2举例——break 5.3.3 http 转 https 5.3.4 break 与 last …

要在Javascript中实现表格新增行功能,且添加元素,增删操作

起始表格元素&#xff1a; <!-- table>(thead>tr>th*6)(tbody>tr>td*6) --><div class"container"><table id"myTable"><caption><h3>员工信息管理系统</h3></caption><thead><tr>&…

Python爬虫获取淘宝商品详情页数据|实现自动化采集商品信息

要实现自动化采集淘宝商品详情页数据&#xff0c;可以使用Python的第三方库如requests和BeautifulSoup。以下是一个简单的示例&#xff1a; Taobao.item_get-获得淘宝商品详情数据接口返回值说明 1.请求方式:HTTP POST &#xff1b;复制Taobaoapi2014获取APISDK文件。 2.请求…

【kubernetes】关于k8s集群的声明式管理资源

目录 一、声明式管理方法 二、资源配置清单管理 1、导出资源配置清单 2、修改资源配置清单并应用 2.1离线修改 2.2在线修改 三、通过资源配置清单创建资源对象 获取K8S资源配置清单文件模板&#xff1f; 关于配置清单常见的字段 方案一&#xff1a;手写yaml配置文件 …

swagger-ui.html报错404,解决办法

swagger-ui.html报错404,解决办法&#xff01;现在后端开发项目中&#xff0c;为了节省时间&#xff0c;使用swagger插件&#xff0c;可以方便的快捷生成接口文档。但是如果你在请求前端页面路径比如&#xff1a;http://127.0.0.1:7777/swagger-ui.html。找不到。那是因为你的配…

ROS-Ubuntu 版本相关

ROS-Ubuntu 版本相关&#xff1a;安装指引 年代ROS1版本Ubuntu 版本2014Indigo14.042016Kinetic16.042018Melodic18.042020Noetic20.04 & 22.04 ROS2兼顾了工业使用上的问题。 年代ROS2版本Ubuntu 版本2022Humble20.04 & 22.042023Iron16.04 相关参考&#xff1a; […

回归预测 | Matlab实现OOA-HKELM鱼鹰算法优化混合核极限学习机多变量回归预测

回归预测 | Matlab实现OOA-HKELM鱼鹰算法优化混合核极限学习机多变量回归预测 目录 回归预测 | Matlab实现OOA-HKELM鱼鹰算法优化混合核极限学习机多变量回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现OOA-HKELM鱼鹰算法优化混合核极限学习机多变量…

单片机复位按键电路、唤醒按键电路

目录 单片机复位按键 外部手动复位 单片机复位按键电路 复位按键电路1 复位按键电路2 单片机唤醒按键 单片机唤醒按键电路 单片机复位按键 单片机复位&#xff1a;简单来说&#xff0c;复位引脚就是有复位信号&#xff0c;就是从头开始执行程序 本质&#xff1a;就是靠…

ui设计:利用即使设计设计出漂亮样式

目录 一、基本操作 二、具体介绍 6-1 填充图片 6-2 填充色 6-3 图标 右边栏基础设置 右边栏导出​编辑 一、基本操作 二、具体介绍 6-1 填充图片 选择其一图片填充 6-2 填充色 6-3 图标 右边栏基础设置 右边栏导出

javaWeb个人学习02

会话技术 会话: 用户打开浏览器,访问web服务器的资源,会话建立,直到有一方断开连接,会话结束.在一次会话中包含多次请求和响应 会话跟踪: 一种维护浏览器状态的方法,服务器需要识别多次请求是否来自于同一个浏览器,以便在同一次会话的多次请求之间共享数据 会话跟踪方案: …

数据脱敏(八)静态脱敏

HuggingFists低代码平台提供Mysql,Postgresql,Oracle,ClickHouse等多种数据库连接插件及配套读写算子。提供ftp,sftp,百度盘&#xff0c;阿里云文件系统&#xff0c;腾讯文件系统等多种文件系统连接插件及配套读写算子。满足用户静态脱敏场景下各种数据源要求。 静态脱敏-数据库…

2024智慧城市革命:人工智能、场景与运营的融合之力

在数字革命的浪潮中&#xff0c;2024年的智慧城市将成为人类社会进步的新地标。 三大关键元素——人工智能、场景应用和精准运营——正在重新塑造城市面貌&#xff0c;构建未来的智慧城市生活图景。 一、人工智能&#xff1a;赋能智慧城市 随着人工智能技术的快速发展&#x…

【README 小技巧】 展示gitee中开源项目start

【README 小技巧】 展示gitee中开源项目start <a target"_blank" hrefhttps://gitee.com/wujiawei1207537021/wu-framework-parent><img srchttps://gitee.com/wujiawei1207537021/wu-framework-parent/badge/star.svg altGitee star/></a>

【解读】工信部数据安全能力提升实施方案

近日&#xff0c;工信部印发《工业领域数据安全能力提升实施方案&#xff08;2024-2026年&#xff09;》&#xff0c;提出到2026年底&#xff0c;我国工业领域数据安全保障体系基本建立&#xff0c;基本实现各工业行业规上企业数据安全要求宣贯全覆盖。数据安全保护意识普遍提高…

python 基础绘图函数 实例

简介 在 Python 中&#xff0c;有许多用于绘图的库。以下是一些常用的 Python 绘图库及其基本绘图函数的简要介绍&#xff1a; Matplotlib: matplotlib.pyplot.plot(x, y): 绘制线图。matplotlib.pyplot.scatter(x, y): 绘制散点图。matplotlib.pyplot.bar(x, height): 绘制条…

搜维尔科技:OptiTrack 提供了性能最佳的动作捕捉平台

OptiTrack 动画 我们的 Prime 系列相机和 Motive 软件相结合&#xff0c;产生了世界上最大的捕获量、最精确的 3D 数据和有史以来最高的相机数量。OptiTrack 提供了性能最佳的动作捕捉平台&#xff0c;具有易于使用的制作工作流程以及运行世界上最大舞台所需的深度。 无与伦比…

机器学习模型的过拟合与欠拟合

机器学习模型的训练过程中&#xff0c;可能会出现3种情况&#xff1a;模型欠拟合、模型正常拟合与模型过拟合。其中模型欠拟合与模型过拟合都是不好的情况。下面将会从不同的角度介绍如何判断模型属于哪种拟合情况。 &#xff08;1&#xff09;欠拟合与过拟合表现方式 欠拟合…

GSVA -- 学习记录

文章目录 1.原理简介2. 注意事项3. 功能实现代码实现部分 4.可视化5.与GSEA比较 1.原理简介 Gene Set Variation Analysis (GSVA) 基因集变异分析。可以简单认为是样本数据中的基因根据表达量排序后形成了一个rank list&#xff0c;这个rank list 与 预设的gene sets&#xff…

第三百七十回

文章目录 1. 概念介绍2. 使用方法2.1 获取所有时区2.2 转换时区时间 3. 示例代码4. 内容总结 我们在上一章回中介绍了"分享一些好的Flutter站点"相关的内容&#xff0c;本章回中将介绍timezone包.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1. 概念介绍 我们在…