[发明专利]基于ARM-NEON扩展指令集的图像直方图统计方法有效
申请号: | 202110721567.8 | 申请日: | 2021-06-28 |
公开(公告)号: | CN113436121B | 公开(公告)日: | 2022-12-02 |
发明(设计)人: | 刘凯;孙单单;谷一鑫;张瑞钰 | 申请(专利权)人: | 西安电子科技大学 |
主分类号: | G06T5/40 | 分类号: | G06T5/40;G06F9/38 |
代理公司: | 陕西电子工业专利中心 61205 | 代理人: | 田文英;王品华 |
地址: | 710071*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 arm neon 扩展 指令 图像 直方图 统计 方法 | ||
1.一种基于ARM-NEON扩展指令集的图像直方图统计方法,其特征在于,将图像直方图灰度级临界点分配到128位NEON寄存器存储,通过连续矢量操作对图像直方图进行统计;该方法的步骤如下:
(1)按照下式,计算图像直方图中每个灰度级的临界点:
其中,pi-1表示图像直方图中第i个灰度级的左临界点,i表示图像直方图中灰度级的序号i∈[0,n+1),n表示图像直方图统计范围内灰度级的总数,l表示图像直方图统计范围r的下边界,u表示图像直方图统计范围r的上边界,pi表示图像直方图中第i个灰度级的右临界点;
(2)设置图像直方图中每个灰度级的临界点寄存器:
使用128位NEON寄存器设置m+1个临界点寄存器,每个临界点寄存器与图像直方图灰度级临界点一一对应,用每个临界点的像素值对相应的临界点寄存器中的所有元素进行赋值,其中,m的取值与n相等;
(3)统计源图像所有像素点的图像直方图:
(3a)将焦点区域roi区域中的源图像从首个像素点开始,逐行逐列依次将像素点加载到源图像寄存器src中;
(3b)从图像直方图第一个有效灰度级开始遍历,将源图像寄存器src中的像素点与当前灰度级的左、右临界点寄存器进行连续矢量比较操作,统计在源图像寄存器src中像素点在当前灰度级左、右临界点之间的像素点个数c,用c更新当前灰度级的总像素点数;
所述连续矢量比较操作的步骤如下:
第一步,通过比大于等于矢量操作,判断源图像寄存器src中的每个像素点是否大于或等于当前灰度级左临界点寄存器中对应位置的元素,若是,则设置结果寄存器res0中对应位置的元素值为1,否则,设置为0;
第二步,若当前flag值是为0,则通过比小矢量操作,判断源图像寄存器src中的每个像素点是否小于当前灰度级右临界点寄存器中对应位置的元素,若是,则设置结果寄存器res1中对应位置的元素值为1,否则,设置为0;
第三步,若当前flag值是为1,则通过比小于等于矢量操作,判断源图像寄存器src中的每个像素点是否小于等于当前灰度级右临界点寄存器中对应位置的元素,若是,则设置结果寄存器res1中对应位置的元素值为1,否则,设置为0;
第四步,将res0与res1执行逻辑与操作得到结果寄存器res,将res中所有元素进行求和运算;
(3c)采用与步骤(3b)相同的方式,使用源图像寄存器src更新所有有效灰度级的总像素点数;
(3d)采用与步骤(3a)-(3c)相同的方式,更新源图像中所有像素点在每个图像直方图灰度级的个数;
(4)将统计的源图像在每个图像直方图灰度级的像素点总数赋值到图像直方图数组pHist中。
2.根据权利要求1所述的基于ARM-NEON扩展指令集的图像直方图统计方法,其特征在于,步骤(2)中所述使用128位NEON寄存器设置m+1个临界点寄存器的步骤如下:从第一个图像直方图灰度级临界点开始,依次判断当前临界点pk是否小于源图像所属数据类型最小值MIN,且下一个临界点pk+1是否大于等于0,若是,设置第k个临界点寄存器中的元素均为MIN,记录该临界点索引位置k1作为第一个有效灰度级的左临界点,否则,判断当前临界点pk是否大于源图像所属数据类型最大值MAX,若是,设置第k个临界点寄存器中的元素均为MAX,记录该临界点索引位置k2作为最后一个有效灰度级的右临界点,设置标记flag值为1,否则,使用当前临界点像素值对相应的临界点寄存器中所有元素进行赋值。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安电子科技大学,未经西安电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110721567.8/1.html,转载请声明来源钻瓜专利网。