[問題] 關於量化寫法問題
開發平台(Platform): Windows Dev C++
問題(Question):為什要加上16?
餵入的資料(Input):Pixel_A , Pixel_B , alpha
程式碼(Code):
以下是一般算出像素的blending之後的公式:
Pixel_C = (int)(Pixel_A * alpha + Pixel_B * ( 1-alpha ));
不過為了效率,有些書本會把它量化alpha為0~32之間的一個整數值,所以公式改寫成:
Pixel_C = (Pixel_A * alpha + Pixel_B * ( 32-alpha ) + 16)>>5;
看起來都沒有問題,不過我有疑惑的是,既然都已經>>5 ,為什麼要在>>5之前加上16呢?
我有想過是為了盡量達成16 alignment,不過想想後也不是這樣。
請問有人知道為什麼要加上16呢?
補充說明(Supplement):
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.169.39.88
→
03/03 10:57, , 1F
03/03 10:57, 1F
→
03/03 11:09, , 2F
03/03 11:09, 2F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章