前篇回顾
RA8 Cortex-M85 Helium入门指南(1)
RA8 Cortex-M85 Helium入门指南(2)
瑞萨RA8x1系列工具支持如下:
*编译器必须直接从第三方购买并获得许可
J-Link model需要支持Cortex-M85
- BASE / PLUS V11
- ULTRA+ / PRO V5
- J-Link Model更多信息,请参考:
https://wiki.segger.com/J-Link_Model_Overview
瑞萨RA8x1编译器支持如下:
注:
1.CM85有限支持。
2.Beta版本。
3.IAR自动矢量化支持还在开发中。
PACBTI : Pointer Authentication Code & Branch Target Identification 指针验证和分支目标识别
Helium实例
我们将通过一个RGBA图像数据中的R(红色),G(绿色),B(蓝色)3种色彩通道数据分离的例子,介绍使用helium原语函数的解交织(deinterleaving)功能。
在计算机图形学中,一个RGB颜色模型是由RGB3个色彩通道数据构成的,每个通道用了8位色彩深度,共计24位,包含了所有的彩色信息。为实现图形的透明效果,采取在图形文件的处理与存储中附加上另一个8位信息的方法,这个附加的代表图形中各个素点透明度的通道信息就被叫做Alpha通道。Alpha通道使用8位二进制数,就可以表示256级灰度,即256级的透明度,因此图片可以是RGB888或者RGBA888,当然现在也有一些其他的格式,如RGB565,RGB555等。
下图这张彩色图片的分辨率是240*160,格式是RGBA8888的。
图片的色彩数据排列为按照下列方式,RGBA,RGBA,如此反复循环。
通过使用vld4q来进行4个色彩通道数据的解交织操作。
点击可查看大图
在这个例子中,我们使用了以下的Helium原语函数编程。
通过上面的代码,我们可以得到3张不同灰度的图片,下面仅给出G通道的数据供参考,其他通道数据类似,只是灰度不同。
图像数据可以使用e2 studio中的Memory工具直接显示出来,非常方便图像类的调试。
使用普通的标量操作C代码,如下所示:
点击可查看大图
在RA8x1的实际部署中,对比了上面的两种代码运行时间,使用了helium原语函数编程的代码比普通的标量C代码要快1倍以上。如果图片的分辨率越大,提示效果会更加明显。
相关参考资料
您可复制下方对应的链接到浏览器中打开查看:
102095_0100_00_en_HeliumProgrammersGuide_CodingForHelium.pdf
https://developer.arm.com/-/media/Arm%20Developer%20Community/PDF/Helium%20Programmers%20Guide/102095_0100_00_en_HeliumProgrammersGuide_CodingForHelium.pdf?revision=514a1efd-739a-4c85-b68b-b2596cb163bc
102107_0100_01_HeliumProgrammersGuide_NeonMigration.pdf
https://documentation-service.arm.com/static/620259d9965f7d118e3f5f7f
arm-helium-technology-ebook-v2.pdf
https://www.arm.com/resources/education/books/mve-reference-book
Arm Helium技术指南:Cortex-M系列处理器的矢量运算扩展
如您在使用瑞萨MCU/MPU产品中有任何问题,可识别下方二维码或复制网址到浏览器中打开,进入瑞萨技术论坛寻找答案或获取在线技术支持。
https://community-ja.renesas.com/zh/forums-groups/mcu-mpu/
1
END
1
推荐阅读
“芯” 高度 • “芯”赋能——瑞萨电子RA8高算力MCU产品介绍
解决方案 | 瑞萨RA8D1&RA8M1产品方案分享
解决方案 | 基于RT-Thread&OpenMV的RA8人机交互方案