图像处理中Stride和Width的关系

  一行有 11 个像素(Width = 11), 对一个 32 位(每个像素 4 字节)的图像, Stride = 11 * 4 = 44.

  但还有个字节对齐的问题, 譬如:

  一行有 11 个像素(Width = 11), 对一个 24 位(每个像素 3 字节)的图像, Stride = 11 * 3 + 3 = 36.

  为什么不是 Stride = 33? 因为它是按 4 字节对齐的.

  根据上面道理, 我们可以手动计算 Stride 的值:

  1、Stride = 每像素占用的字节数(也就是像素位数/8) * Width;

  2、如果 Stride 不是 4 的倍数, 那么 Stride = Stride + (4 - Stride mod 4);

 


 

配置系统控制参数 的API
HI_S32 HI_MPI_SYS_SetConf(const MPP_SYS_CONF_S *pstSysConf);
typedef struct hiMPP_SYS_CONF_S 
{ 
 /* stride of picture buffer must be aligned with this value. 
 * you can choose a value from 1 to 1024, 
 * and it except 1 must be multiple of 16.*/ 
 HI_U32 u32AlignWidth; 
 
}MPP_SYS_CONF_S;

整个系统中使用图像的 stride 字节对齐数。取值范围:[1, 1024],一般选择 16 字节对齐。静态属性。

 

 

这里就要填入16的倍数。

 

posted @ 2020-08-06 13:54  祁峰_1024  阅读(485)  评论(0编辑  收藏  举报