07/12/28 16:07:39
ちょっと誤差がでるけど、俺だったらこうするかな?
new_a = src_a + temp_a;
new_r = (dest_r * temp_a + src_r * src_a) / new_a;
↓
new_a = src_a + temp_a;
temp_div = 65535/new_a; //実際にはテーブル化して temp_div = table[new_a];
new_r = ((dest_r * temp_a + src_r * src_a) * temp_div) >> 16;
// ( x * temp_div ) >> 16 はPMULHWを使用