
音视频开发
wD丶路人
稳步前进
展开
-
H.266/VVC代码学习笔记4:带你深入解析VTM5.0中的最新技术ALWIP
ALWIP技术全称是Affine linear weighted intra prediction该技术是HHI在N次会议上提出的,在目前新发布的VTM5.0软件中已经更新。该技术的核心就是训练矩阵,通过当前的亮度预测块的相邻采样点首先进行平均操作减少采样点数目,构成一个向量然后通过该向量和视频序列集去训练出一个参数矩阵,通过该矩阵和相邻采样点向量相乘得到一个部分预测值的散点阵列,最后通过双线...原创 2019-05-18 21:47:21 · 2258 阅读 · 4 评论 -
H.266/VVC相关技术学习笔记9:JVET——O次会议关于色度预测模式编码的一些修改
在这次的O次会议中,关于色度预测模式的熵编码部分的修改就有好几家提案,其中这几家的修改方案都是重合的。总共有以下四家单位:海康威视(Hikvision )、索尼(Sony)、大疆(DJI)、北京大学(Peking)。其中大疆和北京大学联合提案O0416,他们认为在使用CCLM预测时,色度预测模式的解析过程存在依赖性,导致硬件设计延迟。为了消除色度CCLM预测分析过程的这种依赖关系,他们针对目前V...原创 2019-07-14 16:54:16 · 1646 阅读 · 0 评论 -
H.266/VVC相关技术学习笔记10:JVET——O0674: Multiple reference set for CCLM
富士康在O次会议上关于CCLM又提出一个新技术,对于色度预测性能的提升很明显。下面我介绍一下该技术的细节:首先介绍一下在VTM5.0中的三种LM的4个参考像素点的选取方式:当前块的长为W,宽为H1、CCLM:当前色度预测块的上一行(长度为W)和左一列(长度为H)同时存在时,选择的4个点的位置为——R[W/4, -1], R[3W/4, -1], R[-1, H/4] and R[-1, 3H...原创 2019-07-14 20:24:58 · 1318 阅读 · 0 评论 -
H.266/VVC相关技术学习笔记11:O次会议新接收的技术——色度预测模式编码的简化和统一
O次会议顺利结束,其中有不少新接收的技术提案,其中一个关于简化帧内色度模式编码的提案我还是比较感兴趣的,开会之前并没有看到这篇提案,是后来上传的,结果是非常重要的一篇提案~该提案的第一条建议就是无论CCLM模式是否开启,将相同的intra_chroma_pred_mode用于DM模式,以提高规范文本的可读性和一致性,该建议并不会影响压缩的性能。第二个建议为sps_cclm_enabled_fla...原创 2019-07-16 16:47:42 · 521 阅读 · 0 评论 -
H.266/VVC代码学习笔记9:即将接收到VTM6.0中的新技术——帧内色度预测模式编码的简化统一
关于该技术的技术细节我在之前的博客讲过啦,大家可以直接去看那篇博客:H.266/VVC相关技术学习笔记:O次会议新接收的技术——色度预测模式编码的简化和统一刚把相关的代码看了一下,现在把代码和注释给补上,有疑问的同学可以直接留言~intra_chroma_pred_mode()函数学习void CABACWriter::intra_chroma_pred_mode(const Predict...原创 2019-07-16 17:28:34 · 1220 阅读 · 0 评论 -
H.266/VVC代码学习笔记12:VTM5.0中的estIntraPredChromaQT()函数的学习
对于学习视频编码中帧内预测部分的同学来说,estIntraPredChromaQT()函数可以说是必须掌握的一个很重要的函数,该函数是帧内色度预测的第一主函数入口,和帧内亮度预测的第一主入口函数estIntraPredLumaQT()函数相对应,关于亮度预测的入口函数的代码细节在我之前的博客已经详细讲过啦,这里就直接给出链接:H.266/VVC代码学习笔记8:VTM5.0中帧内亮度预测函数——es...原创 2019-07-28 22:10:08 · 1306 阅读 · 0 评论 -
H.266/VVC相关技术学习笔记13:O0343——Simplification on CCLM process
这次会议还有一篇关于关于简化CCLM操作的提案也值的大家学习关注。在WD 5.0中,包括相邻样本位置推导,亮度下采样和线性模型参数推导的CCLM过程具有许多条件分支,这在硬件和软件实现方面是不期望的。因此所提出的方法对于不可用的参考样本,借用WD中帧内预测的参考样本填充过程,使用可用参考样本填充。由此简化CCLM的这些过程。简化的部分如下表所示:①简化相邻样本位置推导过程,固定地选择四个点...原创 2019-07-19 20:29:16 · 767 阅读 · 0 评论 -
H.266/VVC相关技术学习笔记14:色度残差联合编码技术
最近跟进了现有VTM5.0中关于色度残差编码的相关细节,在VTM5.0中新加入了CbCr分量残差联合编码的技术。应该是研究统计发现,以往的版本中Cb和Cr残差彼此呈相反的关系,因此建议利用这种现象并引入一种用于色度残差的联合编码的模式。在这种联合模式中,对于TU的两个色度块只有一个残差。该联合的残差放置到Cb的预测块中,并从Cr的预测块中扣除(即Cr的预测快中没有残差数据,因此也不用进行变换量化...原创 2019-07-19 21:37:23 · 1320 阅读 · 0 评论 -
H.266/VVC代码学习笔记10:VTM5.0中的xIntraCodingTUBlock()函数
xIntraCodingTUBlock()函数是帧内预测函数的一个关键函数,里面进行亮度预测模式的具体实现,以及亮度和色度的残差的变换以及量化,该函数是亮度预测和色度预测都要用的统一函数,今天抽空讲一下该函数的代码细节。该函数的主要流程如下:一、 初始化各种参数,定义一些变量。二、 如果是亮度分量,则进行亮度分量的预测编码(MIp模式或者传统的角度预测)三、 预测结束之后计算残差(非联合模...原创 2019-07-26 16:48:10 · 1059 阅读 · 0 评论 -
H.266/VVC代码学习笔记11:VTM5.0中的xRecurIntraChromaCodingQT()函数
今天抽空讲一下目前VTM5.0中的编码端的xRecurIntraChromaCodingQT()函数的代码细节,该函数是帧内色度预测编码的第二入口函数,里面有所有的帧内色度预测模式的底层的实现细节,根据所传递进来的模式号,对应特定的预测模式进行预测编码。该函数的主要流程如下:一、 一些初始化操作,定义一些缓存空间及变量(在代码里有详细备注)二、 通过getFinalIntraMode()函数...原创 2019-07-26 16:57:18 · 953 阅读 · 0 评论 -
H.266/VVC相关技术学习笔记22:VVC中TMVP技术(时域Merge列表的构建)
TMVP (时域运动矢量预测)技术,实际上就是Merge列表构造环节中时域候选列表的构造。关于时域候选列表的构造需要拿出来单独讲一下,因为这块不像空域候选构造那样直观易懂,时域的构造容易混淆。时域MV候选列表的构造是利用当前PU在邻近的已编码图像(同位图像)中对应位置的PU(即同位PU)的运动信息,同位图像一般取参考帧列表中离当前帧最近的那一帧,所以当前帧同位图像也有可能和当前帧的参考图像重合。...原创 2019-09-16 18:39:47 · 2314 阅读 · 0 评论 -
H.266/VVC相关技术学习笔记8:JVET——O次会议提案O0320:CCLM simplification
O次会议昨天也已经结束了,其中CCLM相关的提案明显减少,不过都比较值得去学习,这篇博客主要介绍一下其中一篇关于CCLM简化的一篇提案。之前的VTM5.0版本中的CCLM已经简化为只选用四个点,详细的技术细节在之前的博客已经介绍过啦:H.266/VVC代码学习笔记3:带你解析VTM5.0中CCLM的代码实现细节本次会议对该技术进行简化和统一,由于之前VTM5.0中如过选择的参考点的总数cntT...原创 2019-07-14 11:52:48 · 1572 阅读 · 0 评论 -
H.266/VVC代码学习笔记8:VTM5.0中帧内亮度预测函数——estIntraPredLumaQT()函数
今天对VTM5.0中的亮度帧内预测的入口函数estIntraPredLumaQT()进行详细的学习estIntraPredLumaQT中完成了亮度分量的帧内预测,其主要流程如下:一、初始化各种参数。二、为了减少最终RDcost的次数,降低编码端的复杂度,VVC的VTM5.0版本默认使用帧内快速搜索算法,主要经过两轮的SATD的粗选阶段和一轮RDcost的细选阶段1、第一轮的SATD粗选,首...原创 2019-06-02 16:12:42 · 3815 阅读 · 35 评论 -
H.266/VVC代码学习笔记7:VTM5.0中Mip模式的MPM列表构造函数——getMipMPMs()
在最新的VVC的参考软件VTM5.0中新加入的技术Mip亮度预测模式有其独立于传统的68种预测模式的MPM列表,而其MPM列表的构造也不同于传统的MPM列表构造。今天来详细讲一下关于Mip模式的MPM列表的构造函数。传统亮度预测模式的MPM列表的构造函数的代码之前我已经讲过啦,这里直接给出链接:H.266/VVC代码学习笔记6:传统的MPM列表构造函数——getIntraMPMs()Mip模...原创 2019-06-01 16:08:59 · 1934 阅读 · 0 评论 -
H.266/VVC相关技术学习笔记2:N次会议有关MPM列表的所有提案大汇总
在N次会议开会之前先预先看了一下所有上传的有关MPM列表的提案,今天抽出时间把之前总结的内容再重新梳理一遍一、N0134 Simplification of MPM derivation单位:ETRI (Electronics and Telecommunications Research Institute)Title:CE3: Simplification of MPM derivati...原创 2019-05-06 21:02:51 · 2484 阅读 · 1 评论 -
H.266/VVC相关技术学习笔记3:帧内色度预测模式中的DM模式及其在N次会议上相关的提案总结
之前对于DM这一块跟进了一下,也学习了N次会议关于DM技术的相关改进今天就顺便把DM的技术详细总结一下,并N次会议提出的提案的技术细节和大家分享一下所谓DM(derived mode)模式就是通过某一个色度预测块所对应的亮度块所选中的预测模式去预测当前的色度块。一、DM预测模式的流程对于色度块来说,其帧内预测方向与两个条件相关:1、该色度块对应的中心亮度块预测方向,亮度块位置如下图所示;...原创 2019-05-06 21:29:51 · 2313 阅读 · 0 评论 -
H.266/VVC代码学习笔记1:VTM5.0的下载和安装简单而实用的教程
今年的五月初,H.266/VVC的新一代的参考软件--VTM5.0终于发布了那么有些刚接触会议的同学可能还不会这个参考软件的配置过程,那么今天我就详细来讲一下VTM5.0的配置教程,对于之前版本的VTM也可参照同样的方法进行配置原创 2019-05-19 12:46:01 · 6987 阅读 · 16 评论 -
H.266/VVC代码学习笔记3:带你解析VTM5.0中CCLM的代码实现细节
昨天VVC新的参考软件VTM5.0正式发布啦,其中对于CCLM部分的改动还是挺大的。接下来我来详细讲讲改动的地方,并且讲一下具体的代码实现细节,希望对大家理解有所帮助~首先,VTM4.0中的CCLM是通过对所有的相邻参考像素去搜寻一个亮度最小点和一个亮度最大点,通过这两个点去拟合线性模型。如今的VTM5.0中的CCLM现在只从相邻参考像素中总共找四个点或者两个点,如果是四个点的情况,则先进行排...原创 2019-05-07 21:50:52 · 2613 阅读 · 0 评论 -
H.266/VVC相关技术学习笔记4:HEVC和VVC中块划分的差别
关于H.265/HEVC和H.266/VVC中的块划分的区别:一、HEVC中首先需要将一个图像固定划分为多个CTU。① CTU的尺寸固定划分为64×64,一个CTU由一个亮度CTB和两个色度CTB,再加上相应的语法元素组成。② CTU可以通过四叉树的方式向下划分为一个个小的CU,一个CU由一个亮度CB和两个色度CB再加上相应的语法元素组成。③ CTU划分的CU最大尺寸是64×64(即整个C...原创 2019-05-25 19:00:27 · 4358 阅读 · 3 评论 -
H.266/VVC相关技术学习笔记5:视频编码中的码率控制的原理和目的
很多学习视频编码的同学一定接触过码率控制这么一个学术名词今天就给大家简单通俗的介绍一下关于码率控制的相关理论和其在视频编码中的作用一般视频压缩技术中,为了提高压缩效率,常见的视频压缩技术(如MPEG , H.264,H.265 )都采用了变长编码,所以一个视频序列经过压缩编码之后所得到的码流是变速率的,即每帧编码所用的比特数是不相等的。图 1 所示为用MPEG-4 编码器和固定量化步长 30 ...原创 2019-05-26 15:31:03 · 3645 阅读 · 0 评论 -
H.266/VVC代码学习笔记2 :深入解析帧内色度预测模式的编码方式及其代码详解
之前的博客中我详细的讲解了关于视频编码中熵编码部分的具体的技术细节H.266/VVC中的熵编码CABAC内容史上超详解!!(基础进阶必看系列)今天就来具体的讲一下在帧内色度预测模式中的熵编码具体是怎么编码的。一、VTM2.0中的帧内色度模式的编码1.编码端的Rdcost:按照下表的顺序对这6种模式进行Rdcost检测; modeList[ 0 ] = PLANAR_IDX; ...原创 2019-05-18 13:54:12 · 2523 阅读 · 0 评论 -
H.266/VVC相关技术学习笔记6:ISP(Intra Sub-Partitions)技术发展历程和技术细节
目前在VTM5.0中接收的ISP技术的中文名就是帧内子块划分技术这项技术是HHI最早提出的,经历了三次标准的发展才形成现在的ISP一、K次会议的LIP最早是在K次会议上提出的,提案号是K0049,当时的ISP技术被称为LIP( Line-based Intra Prediction)基于线性划分的帧内预测。基于线的帧内预测(LIP)可以将亮度预测块划分为一维分区或行。因此,可以将W×H(其...原创 2019-05-31 00:05:35 · 3065 阅读 · 15 评论 -
H.266/VVC相关技术学习笔记7:传统帧内预测模式的MPM列表的构造
在以前的VTM3.0中,由于引入了MRL,使得MPM的列表增加了很多的分支,如下所示的VTM3.0中MPM列表的构造流程:!原创 2019-06-01 14:50:58 · 2393 阅读 · 0 评论 -
H.266/VVC代码学习笔记6:传统的MPM列表构造函数——getIntraMPMs()
有关于传统预测模式的MPM列表的构造的技术细节以及发展历程我在之前就写过啦,这里就不做介绍了H.266/VVC相关技术学习笔记:传统帧内预测模式的MPM列表的构造下面我主要给大家详细剖析一下传统MPM列表的构造函数 getIntraMPMs()代码里有详细的注释,可以根据之前讲过的构造流程一个一个对着代码看。有不懂的地方可以私聊我// PU tools//传统角度模式的MPM列表的...原创 2019-06-01 15:09:40 · 1851 阅读 · 4 评论 -
如何在Windows下跑视频编码代码(详细流程,入门必看)
关于初学视频编码的同学来讲,除了了解关于视频编码的一些理论的知识以及代码之外,还有一项必备的技能就是能够在各种操作系统之下,熟练的去跑视频编解码的代码,以及怎么配置相关的配置文件,如何将编解码之后的数据统计出来都是要求必须熟练掌握的。今天详细讲一下关于在本地Windows下如何顺利地编解码视频序列,并在正确测试的基础上在远程计算资源上对所有序列进行统一的测试。(AI的本地少帧测试+远程全帧编码)R...原创 2019-09-24 21:49:23 · 5572 阅读 · 17 评论