傳統處理方法
傳統處理方法純粹基於c++,通過指標操作進行處理。通常的優化是使用定點數來代替浮點數,這裡使用的方法為:
比值=(顏色分量值 * 65535) / 255
轉換成位移操作:
比值=(顏色分量值 << 16) >> 8
進行一步簡化:
比值=顏色分量值 << 8
**如下:
float
test_normal_filter()
ptr += 4; // 以4為步進 }
}end_perf() // 記錄結束時間
free(buf); // 釋放記憶體
return get_perf(); // 返回操作花費的時間 }
在測試中發現,如果不使用omp,該方法其實是最快的。這樣的資料無關處理在形成流水線後,速度那是相當的快!
程式優化 演算法對上SIMD OMP 0
程式優化是個永恆的話題。隨著mmx,sse,sse2硬體的普及,越來越多的編譯器開始支援simd指令程式設計,程式設計師編寫程式時可以很方便的利用先進的硬體為程式帶來更大的效能提公升,所為 花一樣錢補兩樣 真是惠而不費,程式設計師的福音。能夠使用高效能的硬體固然好,不過,如果親身進行例項分析,想當然...
程式優化 演算法對上SIMD OMP 3
使用intrinsics方法,實現simd處理 使用intrinsics,可以利用硬體的simd指令進行處理。mmx,sse,sse2 amd已經通過交叉授權取得該技術 看起來真有那麼美好麼?讓我們拭目以待。在處理中同樣使用了定點數技術。float test simd filter ptr buf ...
GUI程式優化演算法之矩形覆蓋
在一些gui程式中,需要在乙個圖形容器中同時繪製若干個矩形區域的圖形,而且這些矩形區域可能相互覆蓋,這就類似於windows桌面 中各個矩形窗體的相互覆蓋,這時程式繪製這些矩形圖形時,應當不需要全部繪製 如圖1中的矩形b,c 甚至其中的某些被其他矩形完全覆蓋的矩形區域不需要全部繪製 如圖1中的矩形a...