[問題] 奇怪的計算時間
我目前在寫一支關於影像色彩空間轉換的程式
是從RGB轉換到YUV
程式結果是沒有問題的
但是在消耗時間上出了一個不像bug的bug
以我們現在用的2560X1920的影像來說
做完一次轉換大約需要1.2秒左右
一開始以為是影像太大的緣故
後來把每一個pixel做轉換的時間記錄下來
發現某些時候在轉換的過程中會莫名停頓一下
會有這種發現是我在函式中放了兩個時間記錄點
DateTime T1 ,T2;
然後去計算這兩點之間差了多少ms
發現有的時候 這兩點之間 就算中間沒有任何程式碼
竟然差了15ms 正常狀況下中間沒有任何程式碼
時間差距應該小於1ms
猜測是可能CPU那段時間去執行別的程序了
不過這樣解釋也怪怪的
因為其他函式也不會這樣
希望有人可以幫我解答
以下是我的程式碼:
private void pixel2yuv(ref int[] o, ref double[] y)
{
DateTime T1 ,T2;
double nor_R, nor_G, nor_B;
double kr = 0.299, kb = 0.114;
nor_R = o[0] / 255.0;
nor_G = o[1] / 255.0;
T1 = DateTime.Now;
T2 = DateTime.Now;
Console.Write(CalTime(T1, T2)); //輸出時間記錄點差了多少
nor_B = o[2] / 255.0;
y[0] = kr * nor_R + (1 - kr - kb) * nor_G + kb * nor_B;
y[1] = 0.436 * ((nor_B - y[0]) / (1 - kb));
y[2] = 0.615 * ((nor_R - y[0]) / (1 - kr));
}
麻煩各位了
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.116.246.32
→
04/01 01:25, , 1F
04/01 01:25, 1F
→
04/01 04:04, , 2F
04/01 04:04, 2F
推
04/01 09:29, , 3F
04/01 09:29, 3F
→
04/01 09:56, , 4F
04/01 09:56, 4F
→
04/01 11:40, , 5F
04/01 11:40, 5F
→
04/01 17:03, , 6F
04/01 17:03, 6F
→
04/07 22:41, , 7F
04/07 22:41, 7F
推
04/08 09:46, , 8F
04/08 09:46, 8F
討論串 (同標題文章)