jsvm9_19中BufferParameters参数解释

JSVM是对输出图象做边界扩展的, 扩展的方式是 左右32象素, 上下 64象素

注意:这是针对亮度值,色度值也进行相对尺度的扩展。对于4:2:0,每个色度空间大小仍是亮度值扩展后的1/4。对于4:2:0,存放顺序是:先存放扩展后亮度值,再存放两个扩展后的色度值。总的buffer大小为其扩展后大小的和,就是 (m_uiLumaWidth+32*2)*( m_uiLumaHeigh+64*2)*(1.5)

它的成员有

    UInt  m_uiLumaOffset;   //
图象Y分量左上角象素在扩展后缓冲区的偏移
    UInt  m_uiCbOffset;       //
图象Cb分量左上角象素的偏移
    UInt  m_uiCrOffset;       //
图象Cr分量左上角象素的偏移
    UInt  m_uiLumaHeight;   //
图象高度   
    UInt  m_uiLumaWidth;    //
图象宽度
    UInt  m_uiLumaStride;   //
图象跨度 = 宽度 + 32*2
    UInt  m_uiBufferSize;     //
扩展后缓冲区的大小
    UInt  m_auiCropping[4]; //
图象最终输出的时候裁剪用的

 

举例:假设输出图像的格式为CIF352*288大小。

m_uiLumaHeight = 288m_uiLumaWidth = 352;扩展后的示意图如下:

 

 

 

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

注意,在内存空间里,先存放亮度值,再存放色度值。扩展后整个亮度值占用的空间大小为LumaSize = (352+32+32)*(288+64+64) = 173056.

所以: m_uiCbOffset = LumaSize + (176+16+16)*32 + 16 = 173056 + 6672 = 179728.

下面计算CrOffset,它的前面已经存放了LumaCb采样值。

CbSize = 173056/4 = 43264.

m_uiCrOffset = LumaSize + CbSize + (176+16+16)*32 + 16 = 173056 + 43264 + 6672=222992.

 m_uiLumaStride 指的是亮度值的宽展后的跨度,就是扩展后的宽度

m_uiLumaStride = 352 + 32 + 32 = 416

 

m_uiBufferSize 为扩展后总的大小 = LumaSize + CbSize + CrSize = 173056 + 43264*2 = 259584

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值