利用neon技術對矩陣旋轉進行加速(2)

2022-09-15 20:42:15 字數 689 閱讀 8839

上次介紹的是順時針旋轉90度,最近用到了180度和270度,在這裡記錄一下。

1.利用neon技術將矩陣順時針旋轉180度:

順時針旋轉180度比順時針旋轉90度容易很多,如下圖

a1 a2 a3 a4              d4 d3 d2 d1

b1 b2 b3 b4        順時針旋轉180度    c4 c3 c2 c1

c1 c2 c3 c4              b4 b3 b2 b1

d1 d2 d3 d4               a4 a3 a2 a1

其實就是把矩陣每一行的元素逆序排列,再把矩陣的每一行逆序排列,**如下:

void rotate180(unsigned char* dstimg,unsigned char* srcimg,int width,int

height)

}}

2.利用neon技術將矩陣順時針旋轉270度:

這個和順時針旋轉90度非常像,只是在對neon暫存器中的向量進行轉置時不太一樣,這點需要注意

void rotate270(unsigned char* dstimg,unsigned char* srcimg,int width,int

height)

}}

利用 Neon 傳輸學習

在過去幾年間,許多深度神經網路 dnn 模型用於各種應用,如影象識別和語音翻譯。上述模型通常針對特定目標,但是可以進一步擴充套件,應用於新型使用案例。例如,可以訓練模型,以識別影象中的數字和字母,重複使用該模型,在更廣泛的模型或資料集 用於自主駕駛 中閱讀指示牌。通過本博文,我們將會 介紹傳輸學習及...

NEON指令化並行技術簡介和簡單使用

向量化simd是一種單指令多資料的並行執行方式。具體而言,向量化是指相同指令在硬體向量處理單元上對多個資料流進行操作。這些硬體向量處理單元也被稱為simd單元。補充 cpu在單位時間內 同一時間 能一次處理的二進位制數的位數稱為字長。1位元組是8位字長。如果每個執行緒能夠充分利用每個處理器核心的si...

利用vector定義矩陣

熟悉c風格的矩陣定義,那麼用純c 特性vector如何定義乙個矩陣呢?1 include2 include 3 intmain 412 array 2 3 5 13 cout array 3 3 array 2 3 14 cout array的行數 array.size 15 cout array的...