在Govips中,是否有在基礎影像上并行疊加多個影像的功能?有一個函式——compositeMulti,它接受一個影像串列,但它會并行渲染它嗎?此外,它是否能夠識別必須在影像上渲染哪個影像的哪個像素,而不是迭代地遍歷所有影像并一張一張地渲染。
uj5u.com熱心網友回復:
libvips(govips 背后的影像處理庫)是需求驅動和水平執行緒的。正在計算的影像處理管道被表示為一個圖形,PC 上的每個執行緒在輸出影像中選取一個圖塊(通常為 128 x 128 像素),并且執行緒獨立地從圖形的末端開始計算像素。
composite運算子(呼叫的compositeMulti物件)計算使用 PDF 樣式混合模式覆寫一組圖層的結果。對于每個圖塊,它選擇在該點可見的圖層子集。如果所選的混合模式為“跳過”,則只能執行此操作,即。在基礎影像上合成黑色(空像素)將無效。
您可以在此處查看可跳過性測驗:
https://github.com/libvips/libvips/blob/master/libvips/conversion/composite.cpp#L1273-L1296
圖層剔除回圈在這里:
https://github.com/libvips/libvips/blob/master/libvips/conversion/composite.cpp#L443-L460
最后,如果可能的話,使用矢量算術合成選定的層。它將一個 RGBA 像素表示為四個浮點數的向量,并一起計算所有浮點數。
tldr:libvips 復合是執行緒化的、矢量化的,并且(如果可能的話)進行平鋪可見性剔除。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/462346.html
上一篇:計算中心差
下一篇:標準化像素后如何保存影像?
