自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 VTM10.0代码学习18:xCheckRDCostMerge2Nx2N()

此系列是为了记录自己学习VTM10.0的过程,目前正在看编码端。主要的参考文档有JVET-S2001-vH和JVET-S2002-v1。由于本人水平有限,出现的错误恳请大家指正。如果觉得我的文章对您有帮助的话,不妨点赞收藏加关注,谢谢!!本篇博文就是这个系列的最后一篇了,从开始看VTM到现在差不多9个月,之中断断续续地把VTM的主干大致过了一遍,虽然有很多部分都略过未看,但也对VVC有了大致的认识,算得上是实现开始更新这个系列时的初心。之后如果没有找到想跟大家分享的内容,应该就是无期停更了。欢迎大家.

2021-06-29 11:34:14 887 1

原创 VTM10.0代码学习17:xCheckRDCostInter()&xCheckRDCostInterIMV()

此系列是为了记录自己学习VTM10.0的过程,目前正在看编码端。主要的参考文档有JVET-S2001-vH和JVET-S2002-v1。由于本人水平有限,出现的错误恳请大家指正。如果觉得我的文章对您有帮助的话,不妨点赞收藏加关注,谢谢!!上次更新博客已是两个月前了,这两个月被internship反复折磨,但收获也是不少。现在终于结束了!!想到的第一件事就是赶快更博客,大家千万别取关/(ㄒoㄒ)/~。从这篇博客就开始讲有关帧间的内容了,不知道大家还记不记得之前的博客(VTM10.0代码学习11),末尾.

2021-06-01 16:58:13 1326 4

原创 VTM10.0代码学习16:estIntraPredChromaQT()

此系列是为了记录自己学习VTM10.0的过程,目前正在看编码端。主要的参考文档有JVET-S2001-vH和JVET-S2002-v1。由于本人水平有限,出现的错误恳请大家指正,欢迎与大家一起交流进步。前两篇博文(VTM10.0代码学习14和VTM10.0代码学习15)讲述了如何抉择出亮度的最佳帧内模式,本篇博文就来看看色度部分的函数estIntraPredChromaQT(),会比亮度部分简单一些1. estIntraPredChromaQTconst ChromaFormat format.

2021-04-04 21:15:29 650

原创 VTM10.0代码学习15:xIntraCodingLumaISP()&xRecurIntraCodingLumaQT()

此系列是为了记录自己学习VTM10.0的过程,目前正在看编码端。主要的参考文档有JVET-S2001-vH和JVET-S2002-v1。由于本人水平有限,出现的错误恳请大家指正,欢迎与大家一起交流进步。上一篇博文(VTM10.0代码学习14)留了两个计算RDcost的函数没讲,一个是xIntraCodingLumaISP(),另一个是xRecurIntraCodingLumaQT()。前一个是计算开启ISP时亮度的RDcost,后一个是计算不开启ISP时亮度RDcost,接下来就详细说说它们1..

2021-03-30 11:39:41 574

原创 VTM10.0代码学习14:estIntraPredLumaQT()

此系列是为了记录自己学习VTM10.0的过程,目前正在看编码端。主要的参考文档有JVET-S2001-vH和JVET-S2002-v1。由于本人水平有限,出现的错误恳请大家指正,欢迎与大家一起交流进步。上一篇博文提到(VTM10.0代码学习13)帧内模式是分亮度和色度处理的,这篇博文就先讲处理亮度的函数estIntraPredLumaQT()。这个函数会先用化简版的RDcost对帧内的亮度模式进行一个筛选,然后对筛选出来的模式执行完整的RDcost计算,来得到最佳的帧内亮度预测模式。1. 预备变.

2021-03-22 15:25:52 943 1

原创 VTM10.0代码学习13:xCheckRDCostIntra()

此系列是为了记录自己学习VTM10.0的过程,目前正在看编码端。主要的参考文档有JVET-S2001-vH和JVET-S2002-v1。由于本人水平有限,出现的错误恳请大家指正,欢迎与大家一起交流进步。从这篇博文开始就会进入到如何测试当前CU的帧内模式的内容,编码端的帧内模式的入口就是xCheckRDCostIntra()。这个函数的作用是确定MTS和LFNST的模式,然后分成亮度和色度单独处理,接下来就详细说说。本篇内容是默认cfg文件中MTS和LFNST都允许开启的1. 变量解释doubl.

2021-03-07 20:47:56 1116 2

原创 VTM10.0代码学习12:xCheckModeSplit()

此系列是为了记录自己学习VTM10.0的过程,目前正在看编码端。主要的参考文档有JVET-S2001-vH和JVET-S2002-v1。由于本人水平有限,出现的错误恳请大家指正,欢迎与大家一起交流进步。上一篇博文(VTM10.0代码学习11)的末尾留着一个涉及CU划分的分支没讲,本篇博文就来说说。这个分支里会调用函数xCheckModeSplit(),而这个函数里面又会调用xCompressCU()。所以从CTU到任何一个CU的编码过程可以描述为如下,先从compressCtu()开始,之后就是xC.

2021-02-15 17:11:37 971 2

原创 VTM10.0代码学习11:from_EncSlice_compressSlice()_to_EncCu_xCompressCU()

此系列是为了记录自己学习VTM10.0的过程,目前正在看编码端。主要的参考文档有JVET-S2001-vH和JVET-S2002-v1。由于本人水平有限,出现的错误恳请大家指正,欢迎与大家一起交流进步。上一篇博文(VTM10.0代码学习10)提到compressSlice()这个函数,这篇博文就继续推进,从Slice级编码深入到CU级编码。compressSlice()里面没啥重要的内容,所以就从里面调用的函数encodeCtus()开始讲起。1. encodeCtus()int prevQP.

2021-02-09 19:43:10 1205 2

原创 VTM10.0代码学习10:EncGOP_compressGOP()

此系列是为了记录自己学习VTM10.0的过程,目前正在看编码端。主要的参考文档有JVET-S2001-vH和JVET-S2002-v1。由于本人水平有限,出现的错误恳请大家指正,欢迎与大家一起交流进步。上一篇博文(VTM10.0代码学习9)提到compressGOP(),这个函数由于涉及到slice的设置,十分地冗长,足足有1700多行。在解码端也有类似的部分,就在本系列的第二篇博文(VTM10.0代码学习2)提到。刚看VTM没多久的我又怎能啃下这块硬骨头,就战略性跳过很多内容了。现在稍微有些底气来.

2021-01-25 19:28:50 2050

原创 VTM10.0代码学习9:from_encmain_to_EncLib_encode()

此系列是为了记录自己学习VTM10.0的过程,目前正在看编码端。主要的参考文档有JVET-S2001-vH和JVET-S2002-v1。由于本人水平有限,出现的错误恳请大家指正,欢迎与大家一起交流进步。好久不见,距离上一次更新已经时隔一个多月了。从这篇博文开始就进入编码端的内容,由于不打算从main函数开始讲,前面的部分会一笔带过,下一篇博文会有比较详细的讲解,这篇就相当于预备阶段。整个VTM有众多的技术,但大部分平时是不开的,这里就以RA的cfg文件为指导,里面不开启的技术就不提了。与之前的博文一.

2021-01-20 11:19:57 1468

原创 VTM10.0代码学习8:xReconInter()

此系列是为了记录自己学习VTM10.0的过程和锻炼表达能力,主要是从解码端进行入手。由于本人水平有限,出现的错误恳请大家指正,欢迎与大家一起交流进步。上一篇博文(VTM10.0代码学习7)的第1大节提到xReconInter(),这个函数是用来重构帧间模式或IBC模式下的CU块,本篇博文就来细说它。1. xReconInter()if( cu.geoFlag )//如果当前CU开启GPM{ m_pcInterPred->motionCompensationGeo( cu, m_.

2020-12-07 20:44:26 597

原创 VTM10.0代码学习7:decompressCtu()&xReconIntraQT()

此系列是为了记录自己学习VTM10.0的过程和锻炼表达能力,主要是从解码端进行入手。由于本人水平有限,出现的错误恳请大家指正,欢迎与大家一起交流进步。之前的博文(VTM10.0代码学习3)提到两个重要的函数coding_tree_unit()和decompressCtu(),coding_tree_unit()已经说过了,本篇博文就来讲解一下decompressCtu()。这个函数是利用coding_tree_unit()得到的语义信息来重构CTU块,涉及到多种预测模式。前面也提到过VTM中主要将预.

2020-12-02 10:17:04 639

原创 VTM10.0代码学习6:cu_residual()

此系列是为了记录自己学习VTM10.0的过程和锻炼表达能力,主要是从解码端进行入手。由于本人水平有限,出现的错误恳请大家指正,欢迎与大家一起交流进步。上一篇博文(VTM10.0代码学习5)中第1节的末尾提到了cu_residual()这个函数,本篇博文就来讲述这个与解析变换残差语法元素相关的函数。1. cu_residual()if (!CU::isIntra(cu))//如果当前CU不是传统帧内预测{ PredictionUnit& pu = *cu.firstPU; .

2020-11-14 11:25:53 561

原创 VTM10.0代码学习5:coding_unit()&cu_pred_data()

此系列是为了记录自己学习VTM10.0的过程和锻炼表达能力,主要是从解码端进行入手。由于本人水平有限,出现的错误恳请大家指正,欢迎与大家一起交流进步。上一篇博客(VTM10.0代码学习4)讲述了将语法元素的处理从CTU级划分到CU级,并在其2.5节提到coding_unit()这个函数。我原本以为能用一篇博客讲述完coding_unit(),但实际需要两篇,错估了自己的能力(真不想承认啊,这是我太过年轻而犯下的错)。CU级语法元素处理的主要部分可以分为预测模式的参数和变换残差,本篇博客先讲述codi.

2020-11-09 15:11:00 1135

原创 VTM10.0代码学习4:CABACReader_coding_tree_unit()

此系列是为了记录自己学习VTM10.0的过程和锻炼表达能力,主要是从解码端进行入手。由于本人水平有限,出现的错误恳请大家指正,欢迎与大家一起交流进步。上一篇博客(VTM10.0代码学习3)提到两个重要的函数coding_tree_unit()和decompressCtu(),接下来就用两篇博客的篇幅讲解一下coding_tree_unit()这个函数,本篇博客主要是讲从码流解析得到如何将CTU划分成CU,CU级的语义信息讲解会留在下一篇博客中。1.coding_tree_unit()CUCtx.

2020-11-02 10:29:12 824 1

原创 VTM10.0代码学习3:DecSlice_decompressSlice()

此系列是为了记录自己学习VTM10.0的过程和锻炼表达能力,主要是从解码端进行入手。由于本人水平有限,出现的错误恳请大家指正,欢迎与大家一起交流进步。接着本系列的上一篇博客继续讲,上一篇博客的末尾讲到调用slice解码器进行解码,就是m_cSliceDecoder.decompressSlice()这个函数。大致的作用就是将slice切成CTU然后继续解码,下面开始讲解具体流程。1. decompressSlice() //-- For time output for each slice.

2020-10-23 21:21:10 1658 2

原创 VTM10.0代码学习2:NALU的解码

此系列是为了记录自己学习VTM10.0的过程和锻炼表达能力,主要是从解码端进行入手。由于本人水平有限,出现的错误恳请大家指正,欢迎与大家一起交流进步。1. m_cDecLib.decode接着本系列的上一篇博客继续讲,之前的2.1.1小节讲到函数m_cDecLib.decode是调用解码器类进行NALU解码。NALU分两大类VCL和non-VCL类型,这两种类型下面又有很多细分,相应的解码也要把不同类型的NALU分开解码。 bool ret; // ignore all NAL units.

2020-10-19 11:19:57 1446 3

原创 VTM10.0代码学习1:DecApp_decode()

此系列是为了记录自己学习VTM10.0的过程和锻炼表达能力,主要是从解码端进行入手。由于本人水平有限,出现的错误恳请大家指正,欢迎与大家一起交流进步。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aSQsOeUL-1602146705625)(https://hjhyxq2014-blog-images.oss-cn-beijing.aliyuncs.com/img/DecApp_decode()].png)1.初始化int poc;.

2020-10-08 16:58:02 2941 3

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除