2013-11-25 12 views
1

當內核大小大於255時是否有其他人遇到任何問題?vImageBoxConvolve:當內核大小> 255時出錯

我收到的錯誤看起來像顏色通道超載......但只有當內核大小> 255.文檔沒有提到內核大小的限制。並且vImage沒有返回錯誤。

順便說一句,我正在使用vImageBoxConvolve_ARGB8888。它發生在任何圖像上,特別是在白色區域。

下面是一個輸出:enter image description here

,在左上角多色爛攤子真的只是一個明亮的背景。

似乎有點奇怪,隨着這些日子裏所有的模糊,沒有人會得到這個。

謝謝。

+1

您確定要使用寬度大於255的卷積嗎?這是每個像素執行的很多計算。對於模糊,下采樣後跟上採樣,再加上其他一些優化,可以大幅度降低:http://www.sunsetlakesoftware.com/2013/10/21/optimizing-gaussian-blurs-mobile-gpu。由於動態範圍的問題,當您使用非浮點型進行卷積時,我並不感到驚訝。 –

+0

我有一個類似的問題:http://stackoverflow.com/questions/32677548/uiimageeffects-white-image-when-gaussian-radius-above-280-vimageboxconvolve-ar – Archagon

+0

有這麼高的內核大小是有用的時您正試圖(例如)在不同分辨率下對高斯模糊進行歸一化處理。如果你想擁有相同數量的高度爲1024的模糊,比如8000的高度,那麼你將不得不將內核大小調高一點。 – Archagon

回答

1

無論內核大小如何,框卷積都具有(大致)恆定成本,所以它和帳篷是用於大型卷積的過濾器。我很驚訝255 * 255內核足夠溢出。我們應該在這裏使用一個32位有符號累加器。也許帳篷可能會以這種大小溢出。我建議用一個可重複的例子來提交一個bug。

http://bugreporter.apple.com