我的图像处理项目适用于灰度图像。我有ARM Cortex-A8处理器平台。我想利用NEON。
我有一个灰度图像(考虑下面的示例),在我的算法中,我只需要添加列。
如何将 uint8_t 的四个8位像素值并行加载为128位NEON寄存器之一,作为的四个uint32_t ?我必须使用什么内在函数来做到这一点?
我是说:
我必须将它们加载为32位,因为如果仔细看,我执行255 + 255的那一刻将是512,这不能保存在8位寄存器中。
例如
255 255 255 255 ......... (640 pixels)
255 255 255 255
255 255 255 255
255 255 255 255
.
.
.
.
.
(480 pixels)
最佳答案
我建议您花一些时间来了解SIMD如何在ARM上工作。看着:
看一眼:
让您开始。然后,您可以使用嵌入式汇编程序或domen建议的相应ARM内部函数来实现SIMD代码。