RA8 Cortex-M85 Helium入门指南(3)

描述

瑞萨RA8x1系列工具支持如下:

二进制

*编译器必须直接从第三方购买并获得许可

J-Link model需要支持Cortex-M85

- BASE / PLUS V11

- ULTRA+ / PRO V5

- J-Link Model

瑞萨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倍以上。如果图片的分辨率越大,提示效果会更加明显。


 

审核编辑:刘清
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分