JSVM9.19.9中类YuvBufferParameter中getYBlk方法的猜测解释

class H264AVCCOMMONLIB_API YuvBufferParameter

{

。。。。。。

const UInt getYBlk( LumaIdx cIdx ) const    { return m_uiLumOffset +  ((cIdx.y() * m_iStride + cIdx.x())<<(2 + m_iResolution)); }

。。。。。。

}

猜测作用:在整个YUV缓冲区中,获取一个宏块中一个4*4块的偏移位置。

m_iResolution含义还不明确,根据空间两分层(增强层的长和宽是基本层的2倍)下的调试,该值一直为0,暂时先不管。

比如对于352*288的图像,由于处理的时候加上的margin,如下图所示(相关参考文档:关于JSVM中的BufferParameters):

 

m_uiLumOffset是指图像内某个宏块相对于扩展后图像最左上点的坐标。

如上面的示意图,为了说明问题,我们只表明了索引号为01n的三个宏块,01的坐标为(00),(10),假设宏块n的坐标为(xy)。事实上根据宏块坐标求其左上点相对于扩展后空间左上点的偏移还是很容易的。

我们知道图像有效区域起始位置,也就是0宏块左上点位置相对于扩展空间左上点的偏移是固定的,如下:

LumaStartOffset = (352+32+32)*64 + 32 = 26656;

所以MB0_Offset = LumaStartOffset.

MB1_Offset = LumaStartOffset + 16;

MBn_Offset = LumaStartOffset + y*16*Stride + x*16.

此时m_uiLumOffset = MBn_Offset

宏块n中的索引值0-15164*4宏块的位置则通过getYBlk方法来获取,色度同理。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值