HEVC代码学习36:xTrMxN函数

本文深入探讨了HEVC编码中的xTrMxN函数,揭示了其在前向变换中的核心作用。xT作为入口函数,主要负责初始化和调用xTrMxN。xTrMxN则根据块的宽度和高度选择相应的快速变换模式,如fastForwardDst等,执行实际的变换操作。xITrMxN的反向变换过程与之类似,但在此不再赘述。
摘要由CSDN通过智能技术生成

之前在transformNxN的学习中提到,xT函数是前向变换的入口函数,实际上xT完成的是变换前的准备工作,真正的前向变换由xTrMxN函数实现。

先来看下xT函数。xT只是一个入口函数,首先定义了残差块block和系数块coeff,然后调用xTrMxN进行前向变换。

/** Wrapper function between HM interface and core NxN forward transform (2D)
 *  \param channelBitDepth bit depth of channel
 *  \param useDST
 *  \param piBlkResi input data (residual)
 *  \param uiStride stride of input residual data
 *  \param psCoeff output data (transform coefficients)
 *  \param iWidth transform width
 *  \param iHeight transform height
 *  \param maxLog2TrDynamicRange
 */
//前向变换的入口函数
Void TComTrQuant::xT( const Int channelBitDepth, Bool useDST, Pel* piBlkResi, UInt uiStride, TCoeff* psCoeff, Int iWidth, Int iHeight, const Int maxLog2TrDynamicRange )
{
#if MATRIX_MULT
  if( iWidth == iHeight)
  {
    xTr(channelBitDepth, piBlkResi, psCoeff, uiStride, (UInt)iWidth, useDST, maxLog2TrDynamicRange);
    return;
  }
#endif

  TCoeff block[ MAX_TU_SIZE * MAX_TU_SIZE ];        //同于存储残差块
  TCoeff coeff[ MAX_TU_SIZE * MAX_TU_SIZE ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值