1.什麼是AV1格式?
AV1是一種全新的圖片格式,我們可以使用這種格式把圖片壓縮很多,而且不會損失圖片的質量。AV1是一種開源的,免費的,下一代視頻編碼格式,來自開放媒體視頻聯盟。它旨在取代谷歌的VP9,與H.265/HEVC競爭。AV1的目標是在VP9/HEVC上提高約30%,僅在編碼和回放複雜度上合理增加。儘管在正式推出AV1的時候我們才能知道編解碼器的性能,但是AOM的強力支持賦予了AV1巨大的競爭優勢,這樣可以確保在瀏覽器、移動設備、OTT和智能電視中及時部署AV1以及快速增加YouTube、Netflix和Amazon的AV1編碼內容的發行。當然AV1也面臨着挑戰,首先HEVC在硬件部署方面具有多年的領先優勢,另外要在不侵犯H.264、HEVC和其他視頻相關的IP擁有者的專利權的前提下去開發AV1也受到了權威專家的質疑。雖然最初的AV1實現將吸收Daala和Thor的一些特色,但是它的大部分代碼來自於VP10,AOM的目標是使AV1的壓縮性能比VP9/HEVC提高50%,允許合理地增加編碼和播放的複雜度,AV1主要應用於UHD視頻(包括更高的碼率、更寬的色域和增加的幀率)並具有在相當快的計算機的瀏覽器上播放4K 60fps視頻的能力,編解碼器的基礎版本和BT.2020的彩色空間一樣將支持10bit和12bit編碼,此外AV1還要爲WebRTC(實時通信)提供編解碼支持。
目前的JPEG不僅受到不必要的大文件大小的限制,對更廣泛的明亮和黑暗色調,更廣泛的色彩和圖形元素的支持也很薄弱。
蘋果也在極力推廣自己的照片格式HEIC,其照片大約只需要JPEG的一半體積,但卻可以可以滿足這些下一代照片需求。例如,支持iPhone拍攝的三維場景數據,照片應用程序可以創建特殊效果,或者在自拍中播放背景。
主流編解碼器的發展歷程:
AV1編解碼器的雲編碼時間對比:
對比發現,AV1編碼器的性能,壓縮效率和效率都很高,基於AV1開發的Bitmovin編碼API是當今市場上最快的。我們基於塊的雲編碼方法使內容能夠以可想象的最高質量實時傳輸多達100倍。
下面,我們開始編譯使用AV1:
http://www.pianshen.com/article/5267380513/
https://www.jianshu.com/p/03c391a1a08b
以上是參考網站:
編譯工具和依賴庫下載安裝:
(1).CMake安裝
(2).Git安裝
(3).Perl安裝
(4).yasm安裝
http://yasm.tortall.net/Download.html
(5).Python安裝
https://www.python.org/downloads/windows/
源碼下載:
1.使用git下載:git clone https://aomedia.googlesource.com/aom
2.GitHub下載:https://github.com/mozilla/aom
下載代碼包如下:
編譯生成VS解決方案
- 安裝好所有依賴庫和第三方包,打開
cmake
,選擇代碼路徑
配置項目:
生成項目:
查看生成的AV1 VS工程:
使用vs2015打開工程開始編譯:
編譯的過程中會遇到如下錯誤:
>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(171,5): error MSB6006: “cmd.exe”已退出,代碼爲 9009。
29>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(171,5): error MSB6006: “cmd.exe”已退出,代碼爲 9009。
具體情況是程序使用了彙編代碼,然後電腦裏面沒有nasm.exe程序,之所以新建工程不會出現該問題是因爲新建工程後移除了彙編程序的自定義屬性,改爲了不編譯,雖然能夠通過編譯,但是會出現後續引用錯誤
報錯:
'C:\Windows\System32\yasm.exe' 不是內部或外部命令,也不是可運行的程序,給windows和VC增加yasm.exe可執行程序,即可編譯通過。
測試,我這裏使用aomenc的測試例子:
OK,測試可用!