Libvpx
| 原作者 | On2 Technologies / Google |
|---|---|
| 開發者 | 開放媒體聯盟 |
| 首次發布 | 2010年5月19日[1][2] |
| 當前版本 |
|
| 原始碼庫 | |
| 程式語言 | C, assembly |
| 作業系統 | Unix-like (包括 Linux, FreeBSD and Mac OS X), Windows |
| 類型 | Video encoder and decoder |
| 許可協議 | 三句BSD 許可證版 |
| 網站 | www |
libvpx是Google和開放媒體聯盟 (AOMedia) 聯合開發的自由軟件視頻編解碼器庫。它是VP8和VP9視頻編碼格式的參考軟件實現。該庫有一個特殊分支libaom,專門支持AV1編碼。
它以兩句BSD 許可證條款開源。它附帶了命令行工具vpxenc / aomenc和vpxdec / aomdec。
歷史
[編輯]libvpx 源自視頻編解碼器公司On2 Technologies ,該公司在 90 年代中期售出了其第一個軟件編解碼器。
以超過 1.2 億美元的價格收購了 On2 Technologies後,2010 年 5 月 19 日,Google 以免費軟件形式發布了 libvpx。
2010 年 6 月,Google將 VP8 編解碼器軟件許可證修改為3句 BSD 許可證。此前的許可證是否為真正開源有爭議。
Google因最初發布的 libvpx 代碼混亂、文檔匱乏,且開發過程閉門進行,未與社區進行任何溝通而受到批評。 VP9 發布後,開發過程才公開透明。
2013 年 6 月 17 日,libvpx 初步支持了 VP9 。12 月 2 日,libvpx 1.3 正式支持了 VP9,該版本還支持無損壓縮。
2015 年 4 月,Google發布了 libvpx 庫的重大更新(1.4.0 版本),增加了對 10 位和 12 位深度的 VP9 編碼、4:2:2 和 4:4:4 色度子採樣(VP9 配置文件 1、2 和 3)以及對 VP9 的多線程解碼/編碼的支持。
1.5 版(2015 年 11 月)、1.6 版(2016 年 7 月)、1.7 版 (2018 年 1 月)[4]和 1.8 版 (2019 年 2 月)[5]較前一版都顯著提升了編碼/解碼速度。
特性
[編輯]libvpx 實現了單輪和兩輪編碼模式,可以設置比特率或質量水平。
該模式可以使編碼耗時、開銷遠長於解碼。它最多可以配置 25 幀的預讀,可以提高壓縮效率,增加延遲。
libvpx 包含一種「性能模式」,在該模式下,將使用儘可能多的 CPU 資源,同時保持編碼速度幾乎與實時播放速度完全一致,從而在不產生延遲的情況下保持儘可能高的質量。
libvpx 支持Rec. 601 、 Rec. 709 、 Rec. 2020 、 SMPTE-170 、 SMPTE-240和sRGB色彩空間。
性能
[編輯]在 VOD 應用中,libvpx 的 VP9 編碼在高解像度(UHD)的表現明顯好於x264 的H.264 編碼 [6]。 雖然 x265 的 HEVC 編碼較 VP9 壓制效果更好 [6],但由於免版稅,VP9 在多個高清視頻領域仍有極強競爭力。
libvpx的解碼性能較低,這主要為了使代碼庫更易維護。 [5]FFmpeg 項目的 ffvp8 性能較 libvpx 提升了 22% 以上。 2016 年,社區的 VP9 解碼器較原版仍有25% ~ 50%的提升。[6][7]
技術
[編輯]libvpx 是用C語言和匯編語言編寫的。截至 2015 年,它尚未完全支持SIMD.[5]
用法
[編輯]libvpx 被YouTube 、 Netflix 、 Amazon 、 JW Player 、 Brightcove和Telestream等主要OTT 視頻服務商使用,這些服務商是互聯網流量最大來源。2017年,僅 Netflix 一家就佔美國所有互聯網流量的近三分之一。 [8]
VP8 和 VP9 的解碼方案有多種選擇,包括商業閉源和開源方案。作為對比,截至 2016 年,VP9 編碼方案只有商業閉源方案和一些尚未完成的 VP8 實驗性方案(如xvp8)。
參考
[編輯]- ^ CHANGELOG - webm/libvpx - Git at Google. chromium.googlesource.com. [March 14, 2019]. (原始內容存檔於October 26, 2016).
- ^ Introducing WebM, an open web media project. blog.webmproject.org. May 19, 2010 [March 14, 2019]. (原始內容存檔於March 21, 2019).
- ^ refs/tags/v1.17.0 - webm/libvpx - Git at Google. [2026年8月26日].
- ^ V1.7.0 - webm/Libvpx - Git at Google. [June 29, 2020]. (原始內容存檔於June 29, 2020).
- ^ 5.0 5.1 5.2 Refs/Tags/V1.8.0 - webm/Libvpx - Git at Google. [June 29, 2020]. (原始內容存檔於June 30, 2020).
- ^ 6.0 6.1 6.2 Cock, Jan De; Mavlankar, Aditya; Moorthy, Anush; Aaron, Anne. A large-scale video codec comparison of x264, x265 and libvpx for practical VOD applications
. SPIE Digital Library. Applications of Digital Image Processing XXXIX (International Society for Optics and Photonics). September 27, 2016, 9971: 997116 [December 20, 2017]. Bibcode:2016SPIE.9971E..16D. S2CID 63431190. doi:10.1117/12.2238495. (原始內容存檔於December 22, 2017).
- ^ VLC. VideoLAN Dev Days 2015: VP9 encoding/decoding performance vs. H.264/HEVC. 2015-09-22 [2026-06-26]. (原始內容存檔於2016-06-07) –透過YouTube.
- ^ Spangler, Todd. Netflix Chews Up Less Bandwidth, as Amazon Video Streaming Surges. Variety. June 22, 2016 [December 20, 2017]. (原始內容存檔於December 22, 2017) (美國英語).