4
A
回答
3
在所有的情形產生,它確實提供更高的精度。正如在另一個答案中提到的那樣,還有不必來回轉換的好處,這反過來又會對中間結果產生影響 - 想象一下,浮點數爲1.0的像素(一個字節爲255),以及你乘以0.65。然後將其轉換回整數,即166.75 - 但我們下降到166,所以我們失去了0.75。如果我們做進一步的數學運算,錯誤可能會變得更大......當然,如果某個中間步驟導致我們的值超過255(1.0)或低於0(0.0),那麼完全有可能保留新的價值一段時間,然後在需要時「稍後修復」。
當然,您不能在更少的空間(通常)中存儲更多的數據,因此典型的float大於一個字節的4倍。某些GPU具有16位浮點數,它們保存11位尾數和4-5位指數,這使它們適用於大多數簡單像素數學。但它的規模仍然是原來的兩倍,但不是「精確度」的兩倍(我的一個同事花了很多時間試圖使用16位浮點數來匹配32位浮點數的算法,但從未完全實現) 。
4
臨:
- 不需要從浮子做數學時被轉換爲/
- 施加多個處理步驟順序地
- 時更精確地保持中間值具有多更大的動態範圍和分辨率
- float是GPU等的自然格式
缺點:
- 需要更多的存儲
+1
不要忘記,您還可以在以浮點格式存儲顏色時刪除伽馬校正。您不必在飛行中執行此操作,並且可以安全地進行大量「powf」調用。 – Florian
相關問題
- 1. Python,RGB顏色比較
- 2. MagiC++ RGB顏色值
- 3. RGB LED - 顏色值
- 4. 插值RGB顏色
- 5. RGB顏色相近的近似算法
- 6. 有沒有什麼辦法可以知道低於特定值的顏色的RGB值是否較淺顏色
- 7. 如何獲得RGB數值相當於vb.net中的顏色
- 8. direct2d中顏色的RGB值
- 9. 匹配CSS RGB顏色值
- 10. 比較像素以RGB顏色
- 11. HSV顏色轉換爲RGB顏色算法 - 線性插值顏色
- 12. 更改rgb顏色值以表示值
- 13. 比較兩個圖像的RGB顏色值的Android
- 14. 改變RGB顏色
- 15. RGB顏色排列
- 16. Java顏色與RGB?
- 17. iPhone PopUp RGB顏色
- 18. Chrome和RGB顏色
- 19. 設置顏色RGB
- 20. Python - RGB LED顏色褪色
- 21. 使用RGB值改進顏色陰影和色調算法
- 22. C#LINQ - 相較於浮表
- 23. 顏色分解到它的RGB值
- 24. jQuery的css顏色值返回RGB?
- 25. 將整數顏色值轉換爲RGB
- 26. 如何將顏色值轉換爲RGB
- 27. 語義存儲RGB顏色值
- 28. 將8位顏色轉換爲RGB值
- 29. 圖像的RGB顏色的平均值
- 30. 更改現有顏色的RGB值?
那麼在你看來 - 從長遠來看真的值得使用浮點數超過ubytes(無符號字符)嗎? –
在英語中,我們有一種說法是「多長時間是一段字符串」 - 這幾乎意味着「我無法回答」。這完全取決於你在做什麼,你如何做,以及你定義的「更好」或「值得」。更值得關注的是,存儲,說4倍的數據,還是丟失一些信息?你有沒有辦法對你的實現進行基準測試,並比較這兩種解決方案 - 測量同一組操作的內存使用率和執行速度。 –
非常好的迴應!非常感謝您的解釋和建議。 –