跳至內容

Libvpx

維基百科,自由的百科全書
libvpx
截圖
libvpx
原作者On2 Technologies / Google
開發者開放媒體聯盟
首次發布2010年5月19日,​16年前​(2010-05-19)[1][2]
當前版本
  • 1.17.0(2026年8月21日;穩定版本)[3]
編輯維基數據鏈接
原始碼庫 編輯維基數據鏈接
程式語言C, assembly
作業系統Unix-like (包括 Linux, FreeBSD and Mac OS X), Windows
類型Video encoder and decoder
許可協議三句BSD 許可證版
網站www.webmproject.org/tools/

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)。

參考

[編輯]
  1. ^ CHANGELOG - webm/libvpx - Git at Google. chromium.googlesource.com. [March 14, 2019]. (原始內容存檔於October 26, 2016). 
  2. ^ Introducing WebM, an open web media project. blog.webmproject.org. May 19, 2010 [March 14, 2019]. (原始內容存檔於March 21, 2019). 
  3. ^ refs/tags/v1.17.0 - webm/libvpx - Git at Google. [2026年8月26日]. 
  4. ^ V1.7.0 - webm/Libvpx - Git at Google. [June 29, 2020]. (原始內容存檔於June 29, 2020). 
  5. ^ 5.0 5.1 5.2 Refs/Tags/V1.8.0 - webm/Libvpx - Git at Google. [June 29, 2020]. (原始內容存檔於June 30, 2020). 
  6. ^ 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). 
  7. ^ VLC. VideoLAN Dev Days 2015: VP9 encoding/decoding performance vs. H.264/HEVC. 2015-09-22 [2026-06-26]. (原始內容存檔於2016-06-07) –透過YouTube. 
  8. ^ Spangler, Todd. Netflix Chews Up Less Bandwidth, as Amazon Video Streaming Surges. Variety. June 22, 2016 [December 20, 2017]. (原始內容存檔於December 22, 2017) (美國英語). 

外部連結

[編輯]