引用:
作者山寨主
因為你想的太美好了
CUDA算法 都需要重新寫過
重寫 是會有bug的
寫這種東西 一句話就是bug滿天飛 一個轉碼器 有1000個以上的bug並不奇怪
cpu的解碼器 幾乎都是10年以上的除錯累積 才有目前的成果
CUDA+平行處理開發難度 是用傳統用cpu撰寫難度30倍以上
也就是說 相同人力下大約還需要50年以上 才能有穩定的轉碼畫質
|
寫程式是很簡單的,軟體編碼器十年來一直在發展,那是因為一直在增加功能上的完整性。並不是因為有什麼 bug.
編碼器最困難的地方在「演算法」,想出怎樣才能達到最好的效果,需要很複雜的數學推導和無數的實驗,但要數學式子化成程式,其實是很簡單的事。
以我的碩士論文來說,我推導幾個月的式子,寫成程式只需要一、兩個禮拜。然後執行實驗測試,需要三個禮拜。
所以「寫程式」是最簡單,最不花時間的步驟。
所以為什麼寫程式會餓死呢?因為這本來就是很簡單的東西。
如果以 X.264 這種幾 MB 的程式,會寫到有除不完的 bug, 那作者也未免太弱了(而且人家演算法和數學公式都幫他寫好了)。
同理,CUDA 硬體編碼也絕對不是因為有什麼 bug 才畫質不好,而是因為「支援度」不夠完整,
你如果用過 CUDA Encoder 就知道,它根本沒什麼參數可以調整,只有幾個弱弱的 preset, 和 X.264 比起來就跟天與地的差別一般。
但如果同壓縮時間和同流量下,CUDA Encoder 還是可以電爆 X.264.
再來 CUDA 也不是完全沒用,事實上不用它來壓縮,也可以用它來解碼。軟解至少要耗 20~30% 的 CPU, 如果使用硬解,這些多出來的資源就可以給軟體編碼器使用了。這也是為什麼 TMPGEnc 編碼會純軟體編碼程式稍快一點的關係。