- 博客(31)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 H.266相关网址
1.JVETdocuments:phenix.int-evry.fr/jvet JVET note: https://www.itu.int/wftp3/av-arch/jvet-site/#userconsent#JEM code: https://jvet.hhi.fraunhofer.de/svn/svn_HMJEMSoftware/ VVC code:http...
2018-08-11 16:19:39
6104
2
翻译 长方形块的广角度帧内预测(JVET-K0500)
JVET会议在帧内预测部分采纳了此提案。不得不说,很佩服这些写提案的人,他们思考的真的十分细致到位。言归正传。写在这里是便于自己参考,想看原提案的请找JVET-K0500会议文档。提案对长方形块的帧内预测部分,用广角度帧内预测模式代替了几种传统角度帧内预测模式。总的角度模式与原始VTM保持一致。对于有广角度的块而言,需进行参考样本的平滑操作。发现问题对于VTM而言,目前包括Planar以...
2018-10-22 15:55:02
494
原创 信号处理中傅里叶等变换的理解
上了这么久的学,突然感觉学的最明白的课程竟然是信号处理……其实刚开始接触信号处理的时候,整个人的状态就是——懵,这是什么东西,能干什么用。最后通过一个知乎大神顿时醍醐灌顶。那个时候还不会用CSDN,如果有的话看一些大神的博客,估计也能明白吧。言归正传。信号处理中有很多的变换,为什么要有变换这个东西?理由就是:把在时域内不好处理的信号变换到频域里处理。那变换了为什么就好处理了?其实这就...
2018-10-15 11:38:08
1245
原创 VVC代码 BMS 帧内预测学习之六:Planar、DC及角度模式下预测值的计算 xPredIntraPlanar(),xPredIntraDC(),xPredIntraAng()
1、Planar模式,函数xPredIntraPlanar():预测像素是水平、垂直两个方向上4个参考像素的平均值。left, top为预测像素正左,正上方参考像素值;right = leftColumn[height]- left, bottom = topRow[width] - top;最终预测值:pred = (( left << log2
2018-09-25 17:08:53
2745
2
原创 VVC代码 BMS 帧内预测学习之五:边界值的滤波
帧内预测中,对一些涉及边界的模式下得到的帧内预测块,会进行进一步调整,保持边界的连续性。BMS中(目前BMS1.1中边界值滤波操作默认关闭),对采用边界滤波且宽/高均>2的亮度块进行:1、对模式2,调用函数xIntraPredFilteringMode02()进行滤波。若高大于2,对左四列像素进行滤波,从左到右系数为[8, 8],[12, 4],[14, 2],[15, 1]:p...
2018-09-21 17:36:56
458
原创 VVC代码 BMS 帧内预测学习之四:参考像素的获取——xFillReferenceSamples()
xFillReferenceSamples()函数是参考像素的获取过程。主要步骤:1、分析临近的像素是否可获取2、进行参考样本的填充:若临近的像素全部可获取,则赋值;全部不可获取,则赋默认值;若部分可获取,则对可获取的赋对应的值,不可获取的用默认值填充。void IntraPrediction::xFillReferenceSamples( const CPelBuf &recoB...
2018-09-20 19:14:43
962
3
原创 visual studio学习大型代码的超实用工具
学习大型代码需要一些实用的技能,现在把个人觉得十分有用的记在下面,一起学习~(想起来还有什么会不断更新哦) 操作 功能 右击函数,选择 “查看调用层次结构” 可查看调用此函数的上层函数,及此函数调用的下层函数,以及调用站点 设置断点运行,打开 “调用堆栈” 可查看断点处上层一步步进入的函数 打开 “监视” 可监视当前所运行函数中的变量等 ...
2018-09-11 16:00:57
1324
原创 VVC运行相关
鉴于记性不太好,把encode.bat以及decode.bat中的内容记录一下:encode.batEncoderApp.exe -c encoder…….cfg -b str22.bin > output22.txt EncoderApp.exe -c encoder…….cfg -b str27.bin > output27.txt EncoderApp.exe -...
2018-09-11 14:45:39
1129
原创 VVC代码 BMS 帧内预测学习之三:67个角度预测 predIntraAng()
predIntraAng()void IntraPrediction::predIntraAng( const ComponentID compId, PelBuf &piPred, const PredictionUnit &pu, const bool useFilteredPredSamples ){ const ComponentID compID ...
2018-08-16 10:25:58
1225
原创 VVC代码 BMS 帧内预测学习之二:亮度色度预测函数 estIntraPredLumaQT()及estIntraPredChromaQT()
亮度预测函数:estIntraPredLumaQT()Void IntraSearch::estIntraPredLumaQT( CodingUnit &cu, Partitioner &partitioner ){ CodingStructure
2018-08-14 20:21:08
1300
原创 VVC代码 BMS 帧内预测学习之一:帧内预测函数 xCheckRDCostIntra()
这些只是自己初步的学习,若有问题烦请更正,共同进步~void EncCu::xCheckRDCostIntra( CodingStructure *&tempCS, CodingStructure *&bestCS, Partitioner &partitioner, const EncTe
2018-08-14 16:16:11
1005
原创 H.266 JEM7.0 块划分之QTBT
QTBT在编码前的相关配置配置包括cfg文件中的配置以及CommonDef.h文件中的配置。 可在cfg文件中配置的参数:(QT配置只在cfg中进行) I帧:亮度及色度划分分离 P/B帧:亮度色度划分一致 MinQTLumaISlice MinQTNonISlice MinQTChromaISlice 在CommonDef.h文件中定义了(...
2018-08-11 14:08:16
845
原创 H.266 JEM7.0 帧内预测之四(Planar模式的基于位置的帧内预测组合 (PDPC))
1.5 Planar模式的基于位置的帧内预测组合 (PDPC) “.JEM中,帧内顶迥planar模式的结果被一个基于位置的帧内顶测组合修正。PDPC呈帧 内预测方式,包括非滤波边界参考样本和HEVc的有滤波边界参考样本的鯨血预测定义PDPC的标志如图。rMs表示未滤波和滤波的边界样本。assy)是HEVC基于滤波 参考边界样本s的帧內 (JEM中只有planar模式) 。rMy是到边...
2018-08-06 19:41:17
979
原创 H.266 JEM7.0 帧内预测之三(跨分量线性模型预测CCLM)
为了减少跨分量冗余,提出CCLM。假设色度和亮度内容中存在现行关系,同一个CU的色度样本根据重构亮度样本进行预测,通过采用一个线性模型来实现:predc(i,j)=α∗rec′(i,j)L+βpredc(i,j)=α∗recL′(i,j)+βpred_c(i,j)=\alpha*rec_L^{'(i,j)}+\beta左边代表CU中预测的色度样本,rec代表同一个CU的下采样的重构亮度样本...
2018-08-03 18:02:17
914
原创 H.266 JEM7.0 帧内预测之二(预测过程的4抽头插值滤波器;对部分模式采用的边界预测滤波器)
4抽头插值滤波器HEVC中,2抽头线性插值滤波器被用来产生方向预测模式的帧内预测块(不包括planar和DC)。在EM中,使用4抽头插值滤波器。使用了两种4抽头插值滤波器:大小小于等于64的立方体差值滤波器以及大于64的高斯插值滤波器。滤波器的参数由块大小决定,并且在所有角度模式中,对于所有预测样本使用相同的滤波器。边界预测滤波器HEVC中,由水平或垂直帧内模式得到的帧内预测块,预测样...
2018-08-03 17:32:13
1058
原创 H.266 JEM7.0 帧内预测之一(67个帧内预测模式编码)
为捕获自然视频序列中出现的任意边缘方向,帧内预测角度模式数量从HEVC中的33个增加至65个。新增的模式如图红色虚线所示,planar和DC模式保持不变。这些更紧密的帧内预测模式适用于亮度和色度分量的所有尺寸块。亮度帧内编码模式. 为了容纳数量增多的角度帧内预测模式,使用一种有6个最可能模式 (Most Probable Modes,MPMs) 的帧内模式编码方法。该方法主要由两方面组成...
2018-08-03 17:25:02
2193
3
原创 H.266 JEM7.0 熵编码
修正的变换系数的上下文模型HEVC中,一个编码块的变换系数采用非重叠系数组(CGs)进行编码,每个CG包括编码块的4x4块的系数。一个编码块的CGs,以及一个CG内的变换系数,是根据先定义的扫描顺序编码的。一个CG变换系数级别的编码至少有一个非零变换系数,且可能被划分为多个扫描通道。第一个通道,编码第一个bin(用bin0表示,即significant_coeff_flag,表示系数的大小大于...
2018-08-03 14:35:04
545
2
原创 H.266 JEM7.0 变换之三(信号依赖的变换 SDT)
Signal dependent transform, SDT 考虑到帧内和帧之间存在许多类似的块,依赖于信号的变换探索这样的相关性发现可以通过KLT增强编码性能。这种训练的KLT扮演一种变换的角色,其目的是更有效地集中能量。 对当前编码块C而言,首先,获取包含重构左上模板tb和编码块的预测块p的参考块R。然后,参考块被用来在重构区域中找N个最相似块。最后,计算基于这些块的一维KLT(Ka...
2018-07-30 20:15:22
418
3
原创 H.266 JEM7.0 变换之二(模式相关的不可分二次变换 MDNSST)
模式相关的不可分二次变换mode-dependent non-separable secondary transform (MDNSST) JEM中在前向编码端的变换核以及量化中,以及解码端的反量化和反核变换中使用了MDNSST。保证低复杂度MDNSST只对初等变换得到的低频率系数使用。如果变换系数块的宽和高大于等于8,对块的左上8x8区域使用8x8不可分二次变换NSST。否则,...
2018-07-30 17:18:56
632
3
原创 H.266 JEM7.0 变换之一(大尺寸块的高频归零以及自适应多核变换AMT)
高频归零的大尺寸块变换JEM中,支持大尺寸块的变换(最大为128x128),主要用于高分辨率视频。高频变换系数数在变换块(宽或高,或者宽和高)大于等于64时归零,所以只包含低频系数。由于块尺寸较大,变换后的高频分量大多集中在块的左上角部分,通过此操作可达到减少数据量的目的。如对于宽为M,高为N的MxN的变换块,当M大于等于64时,只保留左侧32列的变换系数。同样,当N大于等于64时,只保留顶...
2018-07-30 14:50:38
688
原创 JEM7.0中各算法与其对应的宏
Macro Tool JVET_C0024_QTBT Quadtree plus binary tree (QTBT) block structure VCEG_AZ07_INTRA_65ANG_MODES 65 intra prediction directions VCEG_AZ07_INTRA_4TAP_FILTER 4-tap inter...
2018-07-27 16:15:07
395
原创 H.266 JEM7.0 帧间预测之九(解码端运动矢量修正DMVR)
解码端运动矢量修正 decoder-side motion vector refinement (DMVR)在双向预测操作中,对于一个块区域的预测,两个预测块,分别用一个list0的MV和一个list1的MV结合成一个预测信号。在解码端,采用解码端的运动矢量修正DMVR方法,双向预测的两个运动矢量通过双边模板匹配被进一步优化。解码端使用双边模板匹配来在参考图像中执行双边模板和重构样本之间的基于...
2018-07-25 09:48:56
874
原创 H.266 JEM7.0 帧间预测之八(双向光流BIO)
双向光流 Bi-directional Optical flow (BIO)BIO是采样点级别的运动优化,在双向预测的块运动补偿中使用。不需要传输信号。Ik表示块运动补偿后参考k(0,1)的亮度值,Ik对k求偏导,对y求偏导分别表示Ik梯度的水平和垂直内容。假设光流是有效的,运动矢量场(vx,vy)通过下式可得:将此公式与艾尔米特插值结合,得到每个样本的运动轨迹,其结果是一个唯一的...
2018-07-25 09:48:45
2438
3
原创 H.266 JEM7.0 帧间预测之七(模式匹配的运动矢量推导PMMVD)(FRUC)
模式匹配的运动矢量推导 Pattern matched motion vector derivation(PMMVD)PMMVD是一个基于 Frame-Rate Up Conversion (FRUC)的特殊merge模式。在此模式下,块的运动信息不传输但可在解码端推导得到。当merge标志为真时,CU传输一个FRUC标志位。当FRUC标志位为假,merge索引需传输,同时采用传统的merge...
2018-07-25 09:48:29
703
原创 H.266 JEM7.0 帧间预测之六(仿射运动补偿预测 Affine)
仿射运动补偿预测 Affine motion compensation predictionHEVC中,运动补偿预测MCP中只使用平移的运动模型。真实世界存在放大、缩小、旋转、透视等其他情况。JEM中引入affine运动MCP。块的仿射运动场MVF由两个控制点MV描述。一个块的MVF被描述为:(v0x,v0y)为左上角控制点的MV,(v1x,v1y)为右上角控制点的MV。为...
2018-07-24 11:09:56
2393
原创 H.266 JEM7.0 帧间预测之五(局部光补偿LIC)
局部光补偿 Local Illumination Compensation (LIC)LIC是基于光照变化的线性模型,采用一个缩放因子a和偏移量b。根据当前CU的临近块与其在参考帧中的对应块的线性关系,用于当前块与参考帧中对应块的关系,得到当前块的预测值。对每个帧间模式编码的CU是可自适应使用或禁用。求出光照补偿函数的函数为:TComPrediction::xGetLLSICP...
2018-07-24 11:09:16
613
3
原创 H.266 JEM7.0 帧间预测之四(重叠块的运动补偿 OBMC)
重叠块的运动补偿 Overlapped Block Motion Compensation (OBMC)OBMC可以在CU级别通过采用语法元素进行开关。当JEM中使用OBMC时,对CU除去右侧和底部所有边界的运动补偿MC都使用OBMC,包括亮度及色度。JEM中,MC块对应一个编码块。当CU采用子CU模式编码(包括子CUmerge,affine以及FRUC模式),CU的每个子块都是一个MC块。为...
2018-07-24 10:51:14
1272
原创 H.266 JEM7.0 帧间预测之三(高精度的运动矢量存储)
高精度的运动矢量存储 Higher motion vector storage accuracyHEVC中,MV精度为1/4像素(亮度)。JEM中,内部MV和merge候选MV的存储精度提高为1/16像素。当CU采用skip/merge模式时,在运动补偿操作的帧间编码中使用1/16像素的MV精度。对于AMVP模式编码的CU,使用整数或1/4像素的MV。SHVC( HEVC的扩展包 )上...
2018-07-24 10:49:33
497
原创 H.266 JEM7.0 帧间预测之二(自适应运动矢量残差分辨率LAMVR)
自适应运动矢量残差分辨率 locally adaptive motion vector resolution (LAMVR)HEVC中,当use_integer_mv_flag = 0时,MVD是以1/4亮度为单位传输的。JEM中,引入locally adaptive motion vector resolution (LAMVR)局部自适应运动矢量分辨率。JEM中的MVD可以以1/4,整数...
2018-07-24 10:48:10
533
原创 H.266 JEM7.0 帧间预测之一(子CU级别的运动矢量预测)
子CU级别的运动矢量预测 Sub-CU based motion vector predictionJEM中的QTBT,使得每个CU对每个预测方向可以最多拥有一个运动参数集。两个亚CU级别的MV预测方法ATMVP,STMVP加入了编码器,通过划分一个大CU为多个子CU,并且得到所有子CU运动信息来进行性能提升。Alternative temporal motion vector predi...
2018-07-20 17:05:50
1377
原创 运算符的优先级和结合性
最近看程序越来越多发现有些基础还是不扎实,c语言课本后面的附表把运算符的优先级和结合性说的很清楚,特来做搬运工,顺便加强记忆。优先级运算符结合方向1()[]->●从左到右2!~++---sizeof(类型名)*(指针)&(取地址)
2017-05-24 21:26:59
190
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人