2017-04-21 62 views
0

我需要將區域從紋理移動到另一個位置。如果兩個街區不重疊,那裏沒有問題。我知道Halide是正確的解決方案,但我無法弄清楚在寫入重疊像素之前如何等待讀取數據......我可以根據移動的方向重複一種或另一種方式,但是我無法找到一種方法在Halide中表達。 Halide能夠理解這些微妙之處嗎?Halide:將一塊內存複製到重疊位置(同一圖像)

回答

1

在相反方向上進行迭代的方式是反轉的RDOM:

RDom range(0, width); 
f(width - range.x) = g(width - range.x); // Copy value going from higher addresses to lower. 

(提供語法糖這一直是一個同時待辦事項列表上,我認爲我們已經談到調度指令在這種情況下,你可以使用specialize來確定哪個方向正確地處理重疊並調度到合適的時間表,但是,從extent方法中減去的RDom可能是唯一的選擇。)

+0

謝謝!是否有任何方法可以從發生器獲取'Input '並從中獲取範圍,或者是否將寬度/高度作爲參數傳遞? –

+0

對於輸入,您必須傳遞任何範圍作爲參數。使用'輸入>''''''''''''''''''''''''''''''''''''''''''''''應該可以使用'width() –

相關問題