一、前言

      轉(zhuǎn)置操作在很多算法上都有著廣泛的應(yīng)用,在數(shù)學(xué)上矩陣轉(zhuǎn)置更有著特殊的意義。而在圖像處理上,如果說(shuō)圖像數(shù)據(jù)本身的轉(zhuǎn)置,除了顯示外,本身并無(wú)特殊含義,但是在某些情況下,確能有效的提高算法效率,比如很多行列可分離的算法,在很多情況下,行和列方向的算法邏輯隨相同,但是由于多方面原因(比如Cache miss, 優(yōu)化水平等)行列處理時(shí)間還是由很大的差異的,這個(gè)時(shí)候如果轉(zhuǎn)置的耗時(shí)和處理時(shí)間相比所占比例甚小,則可以考慮在進(jìn)行耗時(shí)處理前先轉(zhuǎn)置數(shù)據(jù),然后調(diào)用不耗時(shí)的方向的算法,處理完后再次進(jìn)行轉(zhuǎn)置。因此,一個(gè)高效的圖像轉(zhuǎn)置算法的設(shè)計(jì)時(shí)非常有必要的。

二、目前的狀況

     沒(méi)怎么搜集這方面的資料,不過(guò)在百度上看到的優(yōu)化的帖子也有幾篇:

     1、利用SSE優(yōu)化圖像轉(zhuǎn)置      這篇文章講到了SSE優(yōu)化轉(zhuǎn)置操作,講的很簡(jiǎn)單,我只是稍微看了下他的代碼,他似乎處理的不是普通的8位圖像,而是16位的,反正我是沒(méi)有看懂,并且他的提供比較的C代碼本身寫(xiě)法就完全沒(méi)有考慮到C語(yǔ)言自身的優(yōu)化,因此最后提出SSE代碼比C快5倍說(shuō)服力就大為打折扣,不過(guò)他這里可以值得學(xué)習(xí)的地方就是這個(gè)轉(zhuǎn)置支持In-Place操作,就是Src和Dest可以相同。

     2、圖像轉(zhuǎn)置的Neon優(yōu)化代碼  Neon的代碼,沒(méi)看懂,不過(guò)后面說(shuō)10倍左右的提速,其實(shí)也要看原始的C代碼是怎么寫(xiě)的了,不過(guò)原文也明確的說(shuō),只支持RGBA 32位的圖,顯然作者也避而不談灰度或者24位的圖,當(dāng)然這于手機(jī)端似乎沒(méi)有24位的概念有關(guān)。

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開(kāi)發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式