VEC-C直方图

来源:互联网 发布:德国 帅哥 推倒 知乎 编辑:程序博客网 时间:2024/05/22 10:28
ushort p_u16DstB0[256*16];
uchar *src=(uchar*)img->imageData;
histogram(src, p_u16DstB0 , p_u16DstB1, width, height, width);
sum_histogram2(p_u16DstB0, p_u16DstB1, (uint*) hist);
void sum_histogram2(ushort* p_u16SrcB0, ushort* p_u16SrcB1, uint* p_u32Dst)
{      /*输出内存信息*/
    for(int i=0;i<32*256;i++)
    {
        if(p_u16SrcB0[i]!=0)
        cout<<i<<":"<<p_u16SrcB0[i]<<",";
    }
}
void histogram(uchar* p_u8Src, ushort* p_u16DstB0 , ushort* p_u16DstB1, uint s32SrcStep, int s32N, int s32M)
{      /*做2次求直方图*/
    short16 v0=(short16)*(uchar16*)p_u8Src;
    vhist((short*)p_u16DstB0,v0); 
    p_u8Src+=16;
    short16 v1=(short16)*(uchar16*)p_u8Src;
    vhist((short*)p_u16DstB0,v1); 
}
需要一个内存为256*32的空间才能装的下直方图结果,红色表示内存地址,v0~v15为vector寄存器

如果寄存器v0中的值为0的话,则内存地址0上的值+1,如果v1中的值为255则内存地址4068上的值+1......

v0v1...v150123......30310101......0132333435......62632323......2364656667......94954545  45....................................4064406540674068  40944095254255254255  254255

原创粉丝点击