快科技7月18日消息,FFmpeg項目的開發者們再次通過手寫匯編代碼實現了顯著的性能提升,開發者稱:「手寫匯編代碼使FFmpeg速度提升100倍,這可能是目前我所見到的最大速度提升」。
不過其很快澄清,這一100倍的提升僅適用於一個特定函數,而不是整個FFmpeg應用。
通過最新的手寫匯編補丁,應用中的「rangedetect8_avx512」性能提升了100倍。即使用戶的處理器不支持AVX512,使用rangedetect8_avx2代碼路徑時,仍可獲得不小的性能提升。
開發者們在後續的推文中承認:「這是一個現在快了100倍的單一函數,而不是整個FFmpeg。」他們進一步解釋說,這個享受速度提升的功能是一個「較為冷門的過濾器」。
由於該功能的冷門性,它直到現在才被開發者優先考慮,該過濾器代碼被重新編寫,採用了SIMD(單指令多數據)處理概念,從而實現了大幅改進的並行處理。
顯然,編譯器仍然無法與手寫匯編相競爭,或者正如FFmpeg所說:「編譯器的寄存器分配器很糟糕。」
FFmpeg是少數幾個仍然堅持使用手寫匯編代碼優化的項目之一,團隊甚至運營著一所「學校」,教授手寫匯編代碼的技巧。
FFmepg是一套視頻音頻的完整解決方案,提供了視頻解碼、編碼、後期處理等一系列功能,對世界上千奇百怪的視頻音頻編碼有著完善的支持。