2011-11-04 76 views
1

可以理解,在GPU上渲染而不是GPU時,渲染將花費更多時間。但是,使用iPhone 4的相機拍攝的照片太大而無法用GPU進行渲染,因此必須使用CPU進行渲染。這適用於核心圖像過濾器,但autoAdjustmentFiltersWithOptions返回的過濾器除外:在渲染使用這些過濾器修改的CIImage時,它需要40多秒,而不是使用GPU分割秒。核心圖像自動調整在CPU上渲染速度太慢

重現步驟:

  1. 具有比2048×2048上iPhone 4S的iPhone 4,或4096×4096放大圖像創建CIImage。
  2. 在CIImage上調用autoAdjustmentFiltersWithOptions:方法。
  3. 將返回的過濾器應用於CIImage。
  4. 將CIImage渲染爲CGImageRef。

預期結果: 圖像比使用GPU渲染時花費的時間要長几秒。

實際效果: 渲染需要40秒以上的時間。

備註: 照片應用程序可以比此方法快得多地增強大照片。顯示iPhone 4/4S的硬件能夠實現這一點,無論Photos應用是否使用私有API。

任何人有任何建議?

回答

1

autoAdjustmentFiltersWithOptions使用CPU來確定應用的過濾器。在調用之前嘗試縮小圖像尺寸,然後將濾鏡應用於原始圖像。另外,如果您不需要,請考慮關閉紅眼檢測。