那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

NEON技術如何實現移動端視頻高效解碼AV1?

LiveVideoStack ? 來源:yxw ? 2019-06-05 10:47 ? 次閱讀

ARM的NEON技術,其基本原理是讓處理器在每個時鐘周期內完成更多工作。dav1d 0.3.1中,在解碼1080p視頻時,基于NEON開發的dav1d可以毫不費力地達到30 fps的流暢度。

多媒體解碼是一項數據規模的挑戰。解碼幾個像素對現代處理器來說小菜一碟,但當多媒體文件升級至每秒6200萬像素的數據規模時,一般的處理器就會不堪重負。

因此,ARM的NEON技術應運而生。這項基于ARMv7與ARMv8指令集的擴展技術,其基本原理是讓處理器在每個時鐘周期內完成更多工作;同時,支持單指令多數據(SIMD)操作也令其在單個指令中不會一次性處理一個龐大或精確的數據,而是處理多個較小的數據。

NEON允許在單個指令中處理128位數據。幾乎在所有情況下,128位都是精確有用的方法。如果我們有一個128位精度的坐標系,我們甚至可以在仙女座星系指定每個點且精確度可達0.00006皮米,這是什么概念呢?要知道最小的原子氫原子的直徑也才32pm,而仙女座星系距離地球有250萬光年!

很明顯,如果是為了清晰且流暢呈現用戶上傳的視頻,我們并不需要如此夸張的精確度,這也就是為什么在大多數情況下每個像素的色彩深度為8位,而若想實現HDR則需要10或12位的色彩深度。使用NEON則可通過將128位的數據精度擬合成每像素8或16位色彩深度,以防止出現路由錯誤。

總而言之,NEON可在單個操作中適應多個數據精度,且當視頻解碼器需要對大量數據進行處理時,使用NEON是一個不錯的主意。

dav1d中的NEON

dav1d是由VideoLAN維護的AV1解碼器,VideoLAN則是VLC媒體播放器、x264與x265視頻編碼器的主要推動者。很多開發人員為將此項目打造成可在幾乎任何CPU上運行且處理速度最快的AV1視頻編碼器做出了不可磨滅的貢獻。

回顧2018年12月的dav1d 0.1.0,我在不同規格的ARMv8處理器上比較基于C語言開發的dav1d與基于NEON匯編的dav1d(感謝Janne Grunau和MartinStorsj?提供的這些數據),盡管當時只有少數功能通過NEON加速,但性能仍相對于平均提高了80%。

有無NEON 代碼對dav1d 0.1.0的影響

幾個月后,更多基于NEON的應用逐漸出現。在得到最終結果之前,讓我們先來探究一下哪些讓NEON的性能如此出色。

功能及其加速

解碼視頻需要多個步驟,每個步驟由一項單獨的函數執行,多個函數組合成視頻解碼處理流程;這些步驟也會根據編碼器、參數與視頻內容酌情增減修改。dav1d的開發人員嚴重依賴一個名為checkasm的工具以測試特定功能所需的時間。他們使用匯編語言編寫代碼并用checkasm測試,如果一些步驟的處理速度足夠快那么它們就會被合并。

在MartinStorsj?的測試中,他使用了兩個編譯器(Clang 9和GCC 7)與三個不同的內核:Arm Cortex-A53、Arm Cortex-A72和Arm Cortex-A73。第一個是一般性能的有序核心,后兩個是高性能的無序核心。

下表顯示了當前基于NEON加速所有功能所得到的測試結果。其中的數字表示速度——基于C語言開發的dav1d帶來了5秒鐘的加速而基于NEON開發的dav1d則帶來了2.5秒加速。

這張表的信息量遠不止這些。首先,我們可以看到加速結果的分布區間非常廣泛,從幾個百分點到20+都涵蓋在里面;其次我們還看到在大多數情況下,Clang編譯器可以更好地優化基于C代碼的dav1d(可以看到NEON的加速成績更小);除此之外我們還可以發現,一般性能且有序的A53內核,其加速成績比高性能且無序的A73內核高,而A73的效率又高于A72,其原因可能是前者的解碼帶寬降低。

需要明確的是,由于NEON的多項功能并非全部滿負荷運行,這里的平均加速成績并不能完全代表其整體性能。對于當前的NEON來說,其性能取決于核心和編譯器。盡管計算加權平均值可以在一定程度上從側面反映出大致性能水平,但每個視頻(編碼器、編碼器設置、內容都不同)卻存在很大差異。

但一般來說,基于NEON匯編語言形成的大多數函數,在性能優化方面會比基于編譯器優化的C語言所形成的函數快4到5倍,在某些特殊情況之下可能會超過20倍。

dav1d 0.3.1性能

我將會從以下圖表開始介紹:

測試此1080p視頻我們可以觀察到結果存在巨大差異:基于編譯器優化的C語言(使用Clang)開發的dav1d,其在Apple A7與Snapdragon 835平臺甚至無法達到24 fps的幀率,而基于NEON開發的dav1d可以毫不費力地達到30 fps的流暢度,而Apple A10則從45 fps躍升至100 fps以上。如此性能提升對于移動設備來說意味著更低的功耗與更高效的資源利用。

如果將結果標準化,我們可以仔細查看確切的加速成果:

Snapdragon 835中的Cortex-A73所獲得的加速最為明顯,幾乎是基準的3倍。其他核心平均值略低,為基準的2.5倍。這意味著從基于優化后的C語言開發的dav1d所實現的1倍性能提升到基于NEON開發的dav1d 0.1.0所實現的1.8倍性能提升,再到dav1d 0.3.1高達2.5倍的性能提升,NEON的優化成果十分顯著。

展望未來

dav1d的Arm64開發還遠未完成,現在需要實現的最重要功能是提高移動端的NEON整合速度(同時推廣用于PC的AVX2和SSSE3),發展空間巨大。我們希望可實現比平均基準三倍以上的性能優化,同時更好的自動矢量化也可提供很多幫助,但主要的驅動程序仍然需要開發者的智慧和勤奮。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 處理器
    +關注

    關注

    68

    文章

    19407

    瀏覽量

    231182
  • ARM
    ARM
    +關注

    關注

    134

    文章

    9165

    瀏覽量

    369189
  • NEON技術
    +關注

    關注

    1

    文章

    9

    瀏覽量

    6117

原文標題:NEON技術如何實現移動端視頻高效解碼AV1?

文章出處:【微信號:livevideostack,微信公眾號:LiveVideoStack】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    RK3588 原廠設計資料首次公開(規格書+原理圖+設計說明+DDR參考),速搶

    NEON協處理器。 視頻處理方面: 提供了硬件加速,RK3588支持H.265和VP9解碼器通過8K@60fps, H.264解碼器8K@30fps和
    發表于 02-05 16:52

    迅為iTOP-RK3576開發板/核心板適用于ARM PC、邊緣計算、個人移動互聯網設備及其他多媒體產品

    、PyTorch、Caffe等一系列框架的網絡模型。滿足多種應用場景。 iTOP-3576擁有強大的視頻解碼能力,支持4K@120fps的H.265、VP9、AVS2和AV1解碼器,
    發表于 01-23 10:26

    迅為iTOP-RK3576開發板/核心板6TOPS算力4K視頻解碼

    、PyTorch、Caffe等一系列框架的網絡模型。滿足多種應用場景。 iTOP-3576擁有強大的視頻解碼能力,支持4K@120fps的H.265、VP9、AVS2和AV1解碼器,
    發表于 01-20 14:56

    迅為iTOP-RK3576開發板/核心板支持Android14、Buildroot、Debian11、Ubuntu22系統

    、PyTorch、Caffe等一系列框架的網絡模型。滿足多種應用場景。 iTOP-3576擁有強大的視頻解碼能力,支持4K@120fps的H.265、VP9、AVS2和AV1解碼器,
    發表于 01-16 17:03

    迅為瑞芯微RK3576開發板/核心板高性能低功耗

    、PyTorch、Caffe等一系列框架的網絡模型。滿足多種應用場景。 iTOP-3576擁有強大的視頻解碼能力,支持4K@120fps的H.265、VP9、AVS2和AV1解碼器,
    發表于 01-09 11:26

    迅為RK3576開發板適用于ARM PC、邊緣計算、個人移動互聯網設備及其他多媒體產品

    、PyTorch、Caffe等一系列框架的網絡模型。滿足多種應用場景。 iTOP-3576擁有強大的視頻解碼能力,支持4K@120fps的H.265、VP9、AVS2和AV1解碼器,
    發表于 12-27 14:18

    迅為RK3576開發板支持Android14系統穩定好用

    、PyTorch、Caffe等一系列框架的網絡模型。滿足多種應用場景。 iTOP-3576擁有強大的視頻解碼能力,支持4K@120fps的H.265、VP9、AVS2和AV1解碼器,
    發表于 12-23 14:50

    基于Arm架構的珠峰芯片加速極致視頻體驗

    視頻解碼技術作為支撐超高清視頻及泛音視頻產業發展的基石,其重要性愈發凸顯。H.264/AVC 是目前廣泛使用的編
    的頭像 發表于 11-01 13:54 ?1518次閱讀
    基于Arm架構的珠峰芯片加速極致<b class='flag-5'>視頻</b>體驗

    【RTC程序設計:實時音視頻權威指南】音視頻的編解碼壓縮技術

    技術可以實現不同的高效壓縮和解壓縮,常用的就是MP4文件。 MP4是一種容器格式,包含多種類型的媒體文件,如視頻,音頻,靜態圖像等,這些媒體數據同時存在于同一個MP4文件中,MP
    發表于 04-28 21:04

    微軟Teams應用整合AV1解碼器,降低帶寬需求,提升畫面清晰度

    AVI是新一代的開源視頻編碼格式,因高效的壓縮能力而備受推崇。借助AV1,只需極小的帶寬即可保證視頻的高清傳輸。對于要求高清晰度和流暢度的Teams應用,此時使用
    的頭像 發表于 03-28 09:52 ?497次閱讀

    解碼矩陣技術賦能電力監控,實現高效能源管理

    在現代電力系統中,高效、穩定的監控與管理對于保障能源安全、提升能源使用效率具有至關重要的意義。訊維解碼矩陣技術作為一種前沿的視頻解碼與傳輸
    的頭像 發表于 03-25 17:24 ?552次閱讀

    訊維解碼矩陣技術為機場監控提供高清、流暢的視頻解決方案

    機場作為交通樞紐,其安全性和運行效率至關重要。高效的監控系統是保障機場安全運行的重要手段,而訊維解碼矩陣技術則為機場監控提供了高清、流暢的視頻解 首先,訊維
    的頭像 發表于 03-25 17:22 ?482次閱讀

    訊維網絡解碼矩陣構建全面視頻監控系統

    隨著酒店行業的快速發展,安防工作日益受到重視。為了提升酒店的安防水平,構建全面、高效視頻監控系統成為了關鍵。而訊維網絡解碼矩陣作為先進的視頻處理
    的頭像 發表于 03-25 17:21 ?381次閱讀

    谷歌計劃在Android系統升級中采用libdav1d替換libgav1,提高AV1視頻性能

    然而,盡管眾多流媒體公司提供AV1內容卻仍用其他編碼器形式傳輸至終端設備,因為許多設備尚未配置硬件解碼AV1視頻的芯片,僅靠軟件解碼器難以滿
    的頭像 發表于 02-28 11:02 ?1487次閱讀

    SDI轉AV轉換器技術解析:轉換過程中的關鍵要素與優勢

    隨著高清視頻技術的快速發展,SDI(Serial Digital Interface)轉AV轉換器成為了實現高清信號與普通家電設備兼容的關鍵設備。這種轉換器在
    的頭像 發表于 02-22 15:03 ?717次閱讀
    丽星百家乐的玩法技巧和规则| 百家乐园天将| 百家乐真人游戏开户| 百家乐优惠高的网址| E乐博百家乐| 百家乐官网网站新全讯网| 罗浮宫百家乐官网的玩法技巧和规则| 百家乐桌颜色可定制| 合肥太阳城在哪| 百家乐官网视频表演| 星期8百家乐官网的玩法技巧和规则| 新2百家乐官网现金网百家乐官网现金网| 2404这个房号 风水| 全讯网娱乐353788| 百家乐官网专打和局| 百家乐视频大厅| 大发888体育官网| 赌场百家乐官网规则| 帝王百家乐新足球平台| bet365注册找谁| 网上百家乐官网赌博网| 真人百家乐赌城| 利博| 金都百家乐官网的玩法技巧和规则 | 瑞金市| 百家乐注册| 德州扑克 术语| 网上百家乐官网打牌| 百家乐最佳注码法| 绥宁县| 百家乐加牌规则| 大发8888游戏平台| 闲和庄百家乐官网娱乐场| 狮威百家乐娱乐| 鄂尔多斯市| 百家乐在线娱乐可信吗| 成安县| 线上百家乐| E乐博百家乐官网现金网| 百家乐任你博娱乐网| 百家乐官网投注翻倍方法|