一、前言
轉(zhuǎn)置操作在很多算法上都有著廣泛的應用,在數(shù)學上矩陣轉(zhuǎn)置更有著特殊的意義。而在圖像處理上,如果說圖像數(shù)據(jù)本身的轉(zhuǎn)置,除了顯示外,本身并無特殊含義,但是在某些情況下,確能有效的提高算法效率,比如很多行列可分離的算法,在很多情況下,行和列方向的算法邏輯隨相同,但是由于多方面原因(比如Cache miss, 優(yōu)化水平等)行列處理時間還是由很大的差異的,這個時候如果轉(zhuǎn)置的耗時和處理時間相比所占比例甚小,則可以考慮在進行耗時處理前先轉(zhuǎn)置數(shù)據(jù),然后調(diào)用不耗時的方向的算法,處理完后再次進行轉(zhuǎn)置。因此,一個高效的圖像轉(zhuǎn)置算法的設計時非常有必要的。
二、目前的狀況
沒怎么搜集這方面的資料,不過在百度上看到的優(yōu)化的帖子也有幾篇:
1、利用SSE優(yōu)化圖像轉(zhuǎn)置 這篇文章講到了SSE優(yōu)化轉(zhuǎn)置操作,講的很簡單,我只是稍微看了下他的代碼,他似乎處理的不是普通的8位圖像,而是16位的,反正我是沒有看懂,并且他的提供比較的C代碼本身寫法就完全沒有考慮到C語言自身的優(yōu)化,因此最后提出SSE代碼比C快5倍說服力就大為打折扣,不過他這里可以值得學習的地方就是這個轉(zhuǎn)置支持In-Place操作,就是Src和Dest可以相同。
2、圖像轉(zhuǎn)置的Neon優(yōu)化代碼 Neon的代碼,沒看懂,不過后面說10倍左右的提速,其實也要看原始的C代碼是怎么寫的了,不過原文也明確的說,只支持RGBA 32位的圖,顯然作者也避而不談灰度或者24位的圖,當然這于手機端似乎沒有24位的概念有關。
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍牙鎖 2017-07-26
- 消息隊列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標分割】 2017-07-26
- 詞向量-LRWE模型-更好地識別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動安全 Android端惡意鎖屏勒索應用分析 2017-07-26
- 集合結合數(shù)據(jù)結構來看看(二) 2017-07-26