
VVC
神遁克里苏
这个作者很懒,什么都没留下…
展开
-
JVET提案学习:块重要性映射Block importance mapping
JVET-Y0077:AHG10: Block importance mapping视频前处理技术学习原创 2022-10-01 22:22:57 · 1071 阅读 · 0 评论 -
视频前处理:时域滤波MCTF技术学习
时域滤波MCTF(Motion Compensated Temporal Filter)原理解析原创 2022-10-01 21:42:52 · 5480 阅读 · 1 评论 -
【VTM10.0】反量化之DQ技术
DQ反量化时,会把初始状态设置为0,然后根据level(也就是k)来进行下个点的state判断,如下图所示:反DQ的函数是dequantBlock函数,个人理解见注释:void Quantizer::dequantBlock( const TransformUnit& tu, const ComponentID compID, const QpParam& cQP, CoeffBuf& recCoeff, bool enableScalingLists, int* piDequ原创 2021-06-05 15:47:12 · 660 阅读 · 0 评论 -
【VTM10.0】量化之一般量化技术
量化公式:其中:函数是quant函数,个人理解见注释:void Quant::quant(TransformUnit &tu, const ComponentID &compID, const CCoeffBuf &pSrc, TCoeff &uiAbsSum, const QpParam &cQP, const Ctx& ctx){ const SPS &sps = *tu.cs->sps; const原创 2021-06-05 15:22:22 · 899 阅读 · 0 评论 -
【VTM10.0】反量化之RDOQ、一般量化
RDOQ与一般量化的过程虽然不同,但是解码的步骤时在相同的,如下:解码都调用的dequant函数:该函数主要完成写下面的公式,进行反量化。void Quant::dequant(const TransformUnit &tu, CoeffBuf &dstCoeff, const ComponentID &compID,原创 2021-06-05 11:57:56 · 699 阅读 · 1 评论 -
【VTM10.0】量化之RDOQ技术
其中第一步的量化与普通量化相同,步骤如下:代码理解见注释(仅个人理解,欢迎指正):void QuantRDOQ::xRateDistOptQuant(TransformUnit &tu, const ComponentID &compID, const CCoeffBuf &pSrc, TCoeff &uiAbsSum, const QpParam &cQP, const Ctx &ctx){ const FracBitsAccess&..原创 2021-06-05 11:44:40 · 813 阅读 · 0 评论 -
【VTM10.0】反量化反变换技术
void TrQuant::invTransformNxN( TransformUnit &tu, const ComponentID &compID, PelBuf &pResi, const QpParam &cQP ){//反量化与反变换 const CompArea &area = tu.blocks[compID]; const uint32_t uiWidth = area.width; const uint32_t uiHe原创 2021-05-15 11:42:57 · 625 阅读 · 3 评论 -
【VTM10.0】熵编码技术
CABAC编码template <class BinProbModel>void TBinEncoder<BinProbModel>::encodeBin( unsigned bin, unsigned ctxId ){ BinCounter::addCtx( ctxId ); BinProbModel& rcProbModel = m_Ctx[ctxId]; uint32_t LPS = rcProbModel.getLPS( m原创 2021-05-14 20:53:19 · 346 阅读 · 0 评论 -
【VTM10.0】帧内之MIP技术
MIP (Matrix weighted Intra Prediction,基于矩阵的帧内预测 )矩阵:根据不同块大小,分别预先训练出不同的多组矩阵,存在ROM中;向量:将参考像素的一部分进行一些处理,排成一维向量;通过矩阵与向量相乘进行帧内预测,得到当前块的预测值。其预测过程可以分为三步,以大小为8 x 8的CU为例:ROM中矩阵规模为[16 x 8],待输入向量规模为[8 x 1],经过矩阵相乘后得到16个预测值。MIP初始化代码:void IntraPrediction::initIn原创 2021-05-13 20:34:15 · 459 阅读 · 1 评论 -
【VTM10.0】xPredIntraAng函数解析
xPredIntraAng函数内进行角度模式的解析,获取块内的预测值。void IntraPrediction::xPredIntraAng( const CPelBuf &pSrc, PelBuf &pDst, const ChannelType channelType, const ClpRng& clpRng){ int width =int(pDst.width); int height=int(pDst.height); const bool bIsMod原创 2021-05-13 20:21:00 · 511 阅读 · 0 评论 -
【VTM10.0】predIntraAng函数解析
void IntraPrediction::predIntraAng( const ComponentID compId, PelBuf &piPred, const PredictionUnit &pu){ const ComponentID compID = MAP_CHROMA( compId ); const ChannelType channelType = toChannelType( compID ); const int原创 2021-05-13 20:18:12 · 264 阅读 · 0 评论 -
【VTM010.0】xIntraRecBlk函数解析
本函数完成了重建值的生成。1.获取当前块的pred2.反量化反变换得到resi3.resi+pred=recovoid DecCu::xIntraRecBlk( TransformUnit& tu, const ComponentID compID ){ if( !tu.blocks[ compID ].valid() ) {//如果当前的tu块是无效的,则返回 return; } CodingStructure &cs = *tu.cs;原创 2021-05-13 20:10:21 · 398 阅读 · 0 评论 -
【VTM10.0】帧内之DM技术
色度只有8种候选模式:横轴是色度块所对应的亮度块的预测方向,纵轴是当前色度块的候选预测模式。冗余性检验: 如列表前面出现过DM的模式,则用66取代列表前面的重复模式以免在RDcost的时候和DM模式重复,最后选取RDcost最小的一种角度模式,即可最终确定色度角度预测模式。DM模式:找到当前色度CU位置对应的亮度CU位置,将其中心块的预测模式作为DM候选模式。uint32_t PU::getFinalIntraMode( const PredictionUnit &pu, cons原创 2021-05-12 19:46:51 · 395 阅读 · 1 评论 -
【VTM10.0】帧内之CCLM技术
为了减少分量间的冗余,提出分量间线性模型预测技术,基本思想是假设亮度分量和色度分量间存在某种线性关系,根据此线性关系实现亮度分量到色度分量的预测。VVC中CCLM步骤如下:1.使用特定位置的四个点。对同位亮度块的 上述4个位置 以及 块内的所有 亮度样本进行下采样以获得和色度样本一一对应的亮度样本。以CCLM为例:VTM10.0亮度下采样的代码:用于生成包括参考像素和块内像素的下采样亮度值。// LumaRecPixels 获得亮度的重建值void IntraPrediction原创 2021-05-12 19:30:02 · 512 阅读 · 0 评论 -
【VTM10.0】帧内之ISP技术
ISP(Intra Sub-Partitions,帧内子区域划分)依据CU的亮度块尺寸,将其沿水平或垂直方向划分成2个或者4个尺寸相同的子块,然后逐个子区域进行预测和重建。进行帧内ISP的最小CU尺寸为4 x 8或8 x 4(即4 x 4的CU不使用ISP),4 x 8或8 x 4的CU会被分成2个子区域,其他尺寸则被分成4个子区域,即每个子区域最少需要有16个像素。代码意思见注释void IntraPrediction::initIntraPatternChTypeISP(const Codi原创 2021-05-08 21:09:30 · 1734 阅读 · 4 评论 -
【VTM10.0】帧内之PDPC技术
PDPC (Position dependent intra prediction combination)一种对预测值的修正的技术。部分帧内模式在进行帧内预测之后,进行PDPC的加权平均计算,得到最终预测值。分为以下三种情况处理:Planar/DCHor/Ver角度模式 2~17 和 51~66(代码里好像所有角度都用了??m_ipaParam.applyPDPC &= m_ipaParam.angularScale >= 0;这一句是什么意思??是只有 2~17 和 5原创 2021-05-07 21:09:26 · 824 阅读 · 0 评论