引用:
|
作者EIGHTS
其實我個人是覺得
原始的影片檔紀錄了每一個像素的完整資料
再經過各種壓縮法壓縮成某種格式的影片檔
最後紀錄的還是像素的資料
這部份根本不能算是浮點運算
因為輸入是 Byte 值,輸出還是 Byte 值
影像轉檔不就是從這個格式轉成那個格式
轉來轉去,還是一樣 Byte 值轉 Byte 值
而影像轉檔為加速過程
使用 SSE 這類平行計算的指令
這樣完全不能叫浮點運算
以上是我的看法,有錯請指教
|
雖然進去是整數資料,最後儲存結果也是整數資料,但運算過程卻是浮點運算。
理由很簡單,因為色彩轉換和值域轉換函數本身就是必須使用浮點運算。例如 DCT, 需要算 consine 值,怎麼可能用整數去算,那不是算出一堆誤差?
至於利用整數去模擬小數做 DCT 運算完全沒必要,因為會更慢。
簡言之,對影像壓縮的 DCT 而言,是經過整數(原始資料) -> 浮點數(運算過程) -> 整數(結果資料)的轉換,你說對了結果,但過程卻錯了。
看一下 DCT 的公式,你就知道為什麼必須使用浮點數運算了。
http://en.wikipedia.org/wiki/Discrete_cosine_transform