![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
VVC (H266)
文章平均质量分 67
小马甲不被占用
这个作者很懒,什么都没留下…
展开
-
VVC/VTM:环路滤波——Deblocking filter(DF)
Deblocking filter原创 2020-06-03 15:39:36 · 1951 阅读 · 0 评论 -
VVC/VTM:代码学习——CIIP详细过程
位于函数void EncCu::xCheckRDCostMerge2Nx2N()中 if (isIntrainterEnabled) { int numTestIntraMode = 4; // prepare for Intra bits calculation const TempCtx ctxStart(m_CtxCac...原创 2019-04-21 11:02:12 · 1677 阅读 · 0 评论 -
VVC/VTM:帧间预测——Triangle partition mode(TPM)
Triangle partition mode(TPM)帧间预测中的三角划分模式,即将CU块划分为两个均等的三角形,并分别从周边继承运动信息。原创 2019-04-21 11:08:13 · 819 阅读 · 0 评论 -
VVC/VTM:环路滤波——Luma mapping with chroma scaling (LMCS)
LMCS,位于环路滤波前,主要由两部分组成:1)基于自适应分段线性模型的亮度环路映射;2)基于亮度分量的色度残差伸缩。下图显示了解码端的LMCS框架,淡蓝色着色框为在映射区进行的步骤,包括反变换反量化、亮度帧内预测和亮度重建过程。非着色框为在非映射区进行的步骤,包括解码、ALF、SAO、运动补偿、色度帧内预测、色度重建过程以及缓存解码帧。淡黄色着色框则为新添加的LMCS功能框,包括亮度信号的前向映射和逆映射,以及基于亮度分量的色度伸缩。LMCS可以在序列层用SPS flag表示使用或禁止。原创 2019-04-21 11:18:28 · 1696 阅读 · 0 评论 -
VVC/VTM:变换量化——Quantization
HEVC中,根据8bit信号的取值范围,量化参数QP取值为0~51,为了向解码端传输量化参数,编码器会首先在PPS中传输一个起始的QP,然后再在条和CU层传送增量QP值。而在VTM中,QP取值范围扩展到0 ~ 63(相应的,init_qp_minus26的取值范围变为-(26+QpBdOffsetY ) 到37),且相应的起始QP改为在slice层传输。原创 2019-04-21 11:19:22 · 3247 阅读 · 0 评论 -
VVC/VTM:如何查找每次会议接收的提案
1、会议记录网址:https://www.itu.int/wftp3/av-arch/jvet-site/,里面有每次会议相关的记录,包括每个提案的大概内容、提案的讨论发言以及是否被接受,还有工作组会议报告等等。2、找到对应会议的分支;3、进入到对应会议分支,里面有很多个会议记录文档,是一直更新的,只需下载最新的文档就可以了;4、打开文档,找到标题为List of actions tak...原创 2019-04-14 12:14:45 · 997 阅读 · 0 评论 -
VVC/VTM:代码学习——三角划分模式TPM
主体函数为xCheckRDCostMergeTriangle2Nx2N(),进行三角划分模式预测void EncCu::xCheckRDCostMergeTriangle2Nx2N( CodingStructure *&tempCS, CodingStructure *&bestCS, Partitioner &partitioner, const EncTestMode...原创 2019-04-26 10:20:01 · 1131 阅读 · 0 评论 -
H266/JEM:帧间预测——Frame-Rate Up Conversion (FRUC)
文章目录Frame-Rate Up Conversion (FRUC)1、基本原理1.1、双向匹配(Bilateral matching,BM)1.2、模板匹配(Template matching,TM)2、具体过程2.1、CU级MV候选列表2.2、Sub-CU级MV候选列表2.3、插值MV场的生成(eneration of interpolated MV field)2.4、插值和匹配cost(...原创 2019-04-15 09:50:51 · 1562 阅读 · 0 评论 -
VVC/VTM:帧间预测——Decoder side motion vector refinement (DMVR)
Decoder side motion vector refinement (DMVR)在第13次Marrakech会议之后被写入标准(初次出现在JVET-M1002文档中)为了增加merge模式中MV的准确度,VTM4.0中采用了一种基于解码端MV refinement的双边匹配(bilateral matching),基本原理是在参考帧list0和参考帧list1中的初始MV附近搜索一个...原创 2019-04-15 15:49:48 · 2544 阅读 · 3 评论 -
VVC/VTM:环路滤波——Adaptive Loop Filter (ALF)
文章目录Adaptive Loop Filter (ALF)1.滤波形状(Filter shape)2.块分类(Block classification)3.滤波系数的几何变换(Geometric transformations of filter coefficients)4.滤波参数signal(Filter parameters signalling)5.滤波过程(Filtering pro...原创 2019-04-25 16:06:11 · 6370 阅读 · 0 评论 -
VVC/VTM:代码学习——量化的实现(普通量化和Dependent scalar Quantization)
VVC中引进了Dependent Scalar Quantization(依赖性的标量量化),所以代码中有三种量化函数,本文分为普通量化、率失真优化量化RDOQ和Dependent Quantization(简称DQ)原创 2019-05-07 19:34:41 · 3706 阅读 · 4 评论 -
VVC/VTM:代码学习——环路滤波ALF详细过程
Adaptive Loop Filter (ALF)ALF在代码实现过程主要分为以下几个部分1.1、原创 2019-05-12 16:38:31 · 6035 阅读 · 3 评论 -
VVC/VTM:VTM运行编解码参数配置
根据下面的博文下载VVC参考软件:https://blog.csdn.net/baidu_28446365/article/details/80308724其中cfg文件夹中包含如下内容其中蓝色框中的分别为AI、LDP、LDB、RA模式下的配置文件,主要对不同情况下的运行参数进行规定(包括工具的开关、尺寸的大小、量化参数等);红色框中是每个视频序列的配置文件,主要对视频序列的信息进行说明,...原创 2019-05-12 19:52:46 · 5200 阅读 · 17 评论 -
VVC/VTM:代码学习——alfFilter()函数
25个ALF滤波器的系数存储在Slice级别,所以,先解析Slice级别的滤波器参数(filter coefficient),解析滤波器参数的主体函数为void HLSyntaxReader::alfFilter()关键点包括alfLumaCoeffDeltaPredictionFlag :亮度分量的滤波器之间的Filter Coeff可使用DPCM编码方式;alfLumaCoeffDel...原创 2019-05-13 09:21:47 · 836 阅读 · 0 评论 -
VVC/VTM:变换量化——变换Transform
Transform1.更大的变换尺寸&舍弃高频变换系数在VTM中,允许变换的最大尺寸为64x64(原来只应用于1080p和4K)。对于长或宽等于64的大尺寸变换块,直接舍弃高频变换系数,仅保留低频变换系数。例如,对于长x宽为MxN的块,若M等于64,则只保留左边的32列,若N等于64,则只保留上方的32行。如果当前为变换跳过模式,则保留所有变换系数。2.多种变换核心(Multipl...原创 2019-05-13 15:35:21 · 2032 阅读 · 0 评论 -
VVC/VTM:帧间预测——Combined inter and intra prediction (CIIP)
Combined inter and intra prediction (CIIP)CIIP,顾名思义,就是说对编码块进行帧间预测Pred_inter和帧内预测Pred_intra,将两个预测块加权组合得到最终预测块。当CU用Merge模式进行编码,且至少有64个亮度样点时(W∗H>=64W*H>=64W∗H>=64),编码器用一个附加的flag标识当前...原创 2019-04-21 10:44:36 · 1898 阅读 · 0 评论 -
VVC/VTM:帧间预测—DMVR与FRUC中BM的区别
因为前面学习过了FRUC和DMVR,记录博客链接分别如下H266/JEM:帧间预测——Frame-Rate Up Conversion (FRUC)VVC/VTM:帧间预测——Decoder side motion vector refinement (DMVR)发现DMVR和FRUC中的BM方法有点相似,现在尝试总结一下他们的不同点如下:DMVR针对Merge模式中的双向预测候选进行M...原创 2019-04-20 20:24:03 · 1644 阅读 · 0 评论 -
H266:BIO
二维可分离滤波得垂直梯度__inline Void TComPrediction::gradFilter2DVer (Pel* piSrc, Int iSrcStride, Int iWidth, Int iHeight, Int iDstStride, Pel*& rpiDst, Int iMV, const Int iShift){ Pel* piDst = rpiD...原创 2018-04-11 13:13:45 · 472 阅读 · 0 评论 -
H266:光流基本概念
光流的概念是Gibson在1950年首先提出来的。它是空间运动物体在观察成像平面上的像素运动的瞬时速度,是利用图像序列中像素在时间域上的变化以及相邻帧之间的相关性来找到上一帧跟当前帧之间存在的对应关系,从而计算出相邻帧之间物体的运动信息的一种方法。一般而言,光流是由于场景中前景目标本身的移动、相机的运动,或者两者的共同运动所产生的。其计算方法可以分为三类:(1)基于区域或者基于特征的匹配方法;(2...原创 2018-04-11 13:47:06 · 1861 阅读 · 0 评论 -
VVC/JEM(一):VVC参考软件
以Meeting J之后更新的参考软件为例进入https://mailman.rwth-aachen.de/mailman/listinfo/jvet进行注册 http://phenix.it-sudparis.eu/jvet/下载J1002文件(Algorithm description for Versatile Video Coding and Test Model 1 (VTM 1)...原创 2018-05-14 14:10:05 · 4541 阅读 · 6 评论 -
VVC/JEM(二):MTT结构
在HEVC中,CTU通过四叉树划分为不同大小的CU。根据PU模式,CU可分割为一个/两个/四个PU,一个PU有着相同的预测过程。HEVC结构的基本概念是有着多个单元概念,CU、PU、TU。在VVC中,嵌套二叉树/三叉树划分的四叉树结构代替了CU、PU、TU概念。JVET第十次会议正式定义了VVC Test Model 1(VTM1),最初版本的VTM1仅仅包含了binary/ter...原创 2018-05-23 15:58:24 · 2792 阅读 · 0 评论 -
VVC/JEM(三):VTM1代码阅读
VTM1版本中目前只加入了QTBTTT结构。主线代码流程:int main(int argc, char* argv[])调用pcEncApp->encode();Void EncApp::encode()调用m_cEncLib.encode( bEos, flush ? 0 : &orgPic, flush ? 0 : &trueOrgPic, snrCSC, recBuf...原创 2018-05-23 16:53:52 · 1527 阅读 · 1 评论 -
VVC/VTM:虚拟流水数据单元(VPDUs)
Virtual pipeline data units (VPDUs)定义为图像中的非重叠单元。硬件解码过程中,连续的VPDU由多个流水线并行处理。VPDU大小与大多数流水线中的缓冲区大小大致成比例,因此其尺寸不能太大。一般设置为变换块TB的大小。VTM4.0中VPDU大小被设置为64x64,为了保证VPDU的独立性,编码器不允许下图所示的划分情况(虚线框为VPDU边界,红色为CU边界)...原创 2019-03-26 20:28:21 · 1444 阅读 · 1 评论 -
VVC/VTM:JVET-N0671—Support of 4:4:4 and 4:2:2 chroma formats in VVC
JVET-N0671: Support of 4:4:4 and 4:2:2 chroma formats in VVC主要对VTM标准软件和VVC标准文档进行修改,以便支持YUV4:4:4, RGB4:4:4, and YUV4:2:2格式(现有的VTM仅仅支持420格式)。因此,主要的改动在于CCLM模式和Affine模式原有CCLMCCLM利用当前块重建的亮度像素预测色度像素,因此...原创 2019-03-27 10:01:07 · 753 阅读 · 0 评论 -
VVC/VTM:第14次会议接收提案汇总
JVET-N0671:Support of 4:4:4 and 4:2:2 chroma formats in VVC为了支持4:4:4 和 4:2:2 格式对CCLM和Affine进行修改。JVET-N0266 test 2:CE2-related: Disabling bi-prediction or inter-prediction for small blocks-test2...原创 2019-03-27 10:55:49 · 1771 阅读 · 0 评论 -
VVC/VTM:帧内预测——Intra Sub-Partitions (ISP)
Intra Sub-Partitions (ISP)根据块的大小将帧内的亮度预测块垂直或水平的划分为2或4个子区域。下图显示了两种可能性的例子。原创 2019-03-27 20:07:16 · 1743 阅读 · 0 评论 -
VVC/VTM:帧间预测—Extended merge prediction
扩展的Merge模式VTM中的Merge模式在HEVC的基础上进行了扩展。现有的候选列表构建方式如下Spatial MVP from spatial neighbour CUsTemporal MVP from collocated CUsHistory-based MVP from an FIFO tablePairwise average MVPZero MVs.前两项与...原创 2019-03-27 20:17:18 · 701 阅读 · 0 评论 -
H266/JEM:帧间预测——Decoder side motion vector refinement (DMVR)
双向预测:编解码器首先根据两个MV(list0中的MV0和list1中的MV1)从两个不同的参考帧中获取两个预测块Pred0和Pred1,然后将两者进行加权得到当前CU的预测块。DMVR:在DMVR中,双向预测中的两个MV(MV0和MV1)通过双向模板匹配(bilateral template matching)过程得到进一步的修正(简单来说就是使得MV更加精准,减小预测误差)。DMVR用于双...原创 2019-04-20 18:02:32 · 735 阅读 · 0 评论 -
H266:xCheckRdCostInter()到xPredInterUni()流程
rpcTempCU->setICFlagSubParts(bICFlag, 0, uiDepth);xCheckRDCostInter()Bool bICFlag = rpcTempCU->getICFlag( 0 );if( bIMV && pcCUInfo2Reuse != NULL )//若信息可以重复使用,则无需进行帧间预测{ rpcTempCU-&...原创 2018-04-16 10:13:32 · 770 阅读 · 0 评论