2014-06-11 169 views
23

核心圖像和GPUImage框架(除了GPUImage是開源的)之間的主要區別是什麼?一目瞭然,它們的界面看起來非常相似......將一系列過濾器應用於輸入以創建輸出。我看到一些小的差異,例如GPUImage具有易於使用的LookupFilter。我正試圖弄清楚爲什麼有人會選擇一個照片過濾應用程序。核心圖像和GPUImage之間的主要區別

+2

你讀過關於GPUImage的自述文件的任何信息嗎?這裏全部概述。 –

+0

謝謝..假設導出已過濾的視頻比核心圖像還要快嗎? –

+0

GPUImage不一定比Core Image快,反之亦然。有時候是,有時並非如此。你應該看看哪個框架最適合你的需求。 – lxt

回答

75

由於GPUImage的作者,你可能要採取什麼樣的我與鹽糧說。我應該首先說我對Core Image團隊以及他們如何繼續更新框架有極大的尊重。在我寫GPUImage之前,我是一名沉重的Core Image用戶,我根據Core Image在Mac上的工作原理設計了許多設計元素。

兩個框架在不斷地發展,所以今天做了一個對比可能不是在幾個月內如此。我可以指出當前的功能和基準,但是我們不能保證在我們任何一方更新時都不會翻轉。

我的哲學與GPUImage是創造與周圍着色渲染的OpenGL(ES)四邊形一個輕量級的包裝,並用簡單的界面可以這樣做。正如我前面所說的,我從Core Image的方面着手,但是​​我也改變了他們過去絆倒我的界面部分。我還擴展了一些內容,因爲核心圖像只處理圖像處理,而我掛鉤電影回放,相機輸入,視頻錄製和圖像捕獲。

當我最初是圍繞想法此踢,核心圖片還沒有來的iOS。當我發佈它時,Core Image剛剛被添加到iOS。但是,當時iOS支持的篩選器數量爲was fairly limited(例如,無模糊),而iOS上的Core Image不允許您創建自定義內核,就像它在Mac上所做的那樣。

GPUImage提供的手段,做圖像和視頻在iOS上,其中核心映像未定製的GPU加速運算。大多數開始使用它的人都是這樣做的,因爲他們有一些效果,他們無法使用庫存核心圖像過濾器。

最初,GPUImage也是had significant performance advantages for many common operations。但是,Core Image團隊已經在每個iOS版本中顯着提高了處理速度,現在情況非常接近。對於某些操作,GPUImage速度更快,對於其他操作,Core Image更快。他們看起來僱用了一些pretty clever optimizations for things like blurs,我已經開始複製像我的GPUImageiOSBlurFilter這樣的東西。他們還將智能化的多階段操作結合在一起,我將過濾步驟視爲分離和分離的項目。在iOS上的某些情況下,這給了我一個優勢,我試圖最近減少這種內存的後果,但他們比我更好地處理多種類型的濾波器鏈。

的iOS 8引入了核心形象定製的內核支持在iOS上,它一直有在Mac上。這使得在iOS上的Core Image中編寫自己的自定義過濾器和其他操作成爲可能,因此對於GPUImage而言,這將不再是一個優勢。當然,任何想要定位舊iOS版本的人仍然會受到Core Image可以在那裏做什麼的限制,其中GPUImage的目標可以回溯到iOS 4.0。

核心圖像在iOS應用程序在後臺時能夠進行過濾(首先是基於CPU,但是iOS 8現在增加了GPU端支持),但它具有一些整潔的功能,其中GPUImage的依賴在OpenGL ES上防止應用程序在後臺運行。在iOS 8中可能會遇到這種限制,但我還沒有完成所有文檔。

我對GPUImage的興趣來自機器視覺領域。圖像過濾器是一個有趣的分心,但我想用這個框架來探索GPU加速圖像分析的可能性。我正在研究任意對象識別和跟蹤操作,這就是我將繼續向框架發展的方向。但是,您有框架the code,所以您不必依靠我。

2

這是一個古老的線程,但我認爲值得注意的是,GPUImage還具有一些Core Image中不存在的特性:特別是hough變換和多個邊緣檢測濾波器。

核心圖像似乎全部都是關於應用過濾器和效果的 - 很高興看到GPUImage在圖像/視頻分析方面有更多的探索,有點像openCV,但以更有效的方式。

相關問題