注:HM代码版本为HM-16.2+SCM-3.0rc1/。
在介绍逆扫描的过程之前,先说明扫描表的存储和初始化过程(初始化只在解码器启动时进行,对应函数为initROM())。
HEVC扫描方式中提到:对于超过
4x4 的块,先将块分成若干个4x4的CG(Coefficient Group),CG之间和每个CG内部都使用选定的扫描顺序进行扫描。所以,存在两种扫描表:像素...
分类:
其他好文 时间:
2014-12-28 15:40:06
阅读次数:
187
逆扫描在整个解码器标准代码中的位置如下图所示:
图3 逆扫描在整个解码器标准代码中的位置
在上图中,在TDecEntropy::xDecodeTransform()函数中通过递归调用将CU划分成TU,在TDecSbac::parseCoeffNxN()函数中完成对TU以4x4为单位的逆扫描。...
分类:
其他好文 时间:
2014-12-28 15:39:56
阅读次数:
221
注:HM代码版本为HM-16.2+SCM-3.0rc1/。
在HEVC逆扫描之三:TU逆扫描过程中介绍了TU的逆扫描过程,这里继续介绍CG内部的逆扫描过程。
4x4CG内部的逆扫描流程如下图所示。
图14 4x4CG逆扫描流程
对于每一个4x4块,也是按照与扫描顺序相反的顺序进行逆扫描的。首先通过熵解码解出CG标识(如果是TU内的第一个或者...
分类:
其他好文 时间:
2014-12-28 15:37:20
阅读次数:
185
注:HM代码版本为HM-16.2+SCM-3.0rc1/。
对应TDecSbac::parseCoeffNxN()函数解析。暂时先忽略掉几个模式:pcCU->getCUTransquantBypass(uiAbsPartIdx)、pcCU->getSlice()->getPPS()->getUseTransformSkip()、pcCU->isRDPCMEnabled(uiAbsPa...
分类:
其他好文 时间:
2014-12-28 15:36:35
阅读次数:
238
我的这篇文章《HEVC解码器流程》给出了HEVC解码器的整体流程图,这里主要针对TDecCu部分进行讲解。
TDecCu入口主要有两部分:一部分是decodeCtu,完成的是熵解码和逆扫描;另外一部分是decompressCtu,完成的是预测、反量化、反变换和重构等功能。
具体流程图如下图所示。红色部分表示的是递归函数,对应括号里面完成的是相应的劈分。...
分类:
其他好文 时间:
2014-12-26 11:11:47
阅读次数:
251