91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

NEON技術(shù)如何實(shí)現(xiàn)移動(dòng)端視頻高效解碼AV1?

LiveVideoStack ? 來源:yxw ? 2019-06-05 10:47 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

多媒體解碼是一項(xiàng)數(shù)據(jù)規(guī)模的挑戰(zhàn)。解碼幾個(gè)像素對(duì)現(xiàn)代處理器來說小菜一碟,但當(dāng)多媒體文件升級(jí)至每秒6200萬像素的數(shù)據(jù)規(guī)模時(shí),一般的處理器就會(huì)不堪重負(fù)。

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

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

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

總而言之,NEON可在單個(gè)操作中適應(yīng)多個(gè)數(shù)據(jù)精度,且當(dāng)視頻解碼器需要對(duì)大量數(shù)據(jù)進(jìn)行處理時(shí),使用NEON是一個(gè)不錯(cuò)的主意。

dav1d中的NEON

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

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

有無NEON 代碼對(duì)dav1d 0.1.0的影響

幾個(gè)月后,更多基于NEON的應(yīng)用逐漸出現(xiàn)。在得到最終結(jié)果之前,讓我們先來探究一下哪些讓NEON的性能如此出色。

功能及其加速

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

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

下表顯示了當(dāng)前基于NEON加速所有功能所得到的測(cè)試結(jié)果。其中的數(shù)字表示速度——基于C語言開發(fā)的dav1d帶來了5秒鐘的加速而基于NEON開發(fā)的dav1d則帶來了2.5秒加速。

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

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

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

dav1d 0.3.1性能

我將會(huì)從以下圖表開始介紹:

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

如果將結(jié)果標(biāo)準(zhǔn)化,我們可以仔細(xì)查看確切的加速成果:

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

展望未來

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 處理器
    +關(guān)注

    關(guān)注

    68

    文章

    20255

    瀏覽量

    252340
  • ARM
    ARM
    +關(guān)注

    關(guān)注

    135

    文章

    9553

    瀏覽量

    391923
  • NEON技術(shù)
    +關(guān)注

    關(guān)注

    1

    文章

    9

    瀏覽量

    6347

原文標(biāo)題:NEON技術(shù)如何實(shí)現(xiàn)移動(dòng)端視頻高效解碼AV1?

文章出處:【微信號(hào):livevideostack,微信公眾號(hào):LiveVideoStack】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    探索TVP5147M1:高性能數(shù)字視頻解碼器的深度剖析

    探索TVP5147M1:高性能數(shù)字視頻解碼器的深度剖析 在當(dāng)今數(shù)字化的時(shí)代,視頻處理技術(shù)不斷發(fā)展,數(shù)字
    的頭像 發(fā)表于 12-29 11:15 ?408次閱讀

    TVP5150AM1-EP:超低功耗視頻解碼的卓越之選

    TVP5150AM1-EP:超低功耗視頻解碼的卓越之選 在當(dāng)今的視頻處理領(lǐng)域,對(duì)于高效、低功耗的視頻
    的頭像 發(fā)表于 12-26 09:15 ?440次閱讀

    視頻解碼封裝解封裝部件介紹

    是否有探索開源鴻蒙音視頻解碼技術(shù)的欲望?是否對(duì)開源鴻蒙音視頻解碼格式支持有訴求?別急——今天這份開源鴻蒙AVCodec Kit介紹文章,
    的頭像 發(fā)表于 10-31 09:15 ?502次閱讀
    音<b class='flag-5'>視頻</b>編<b class='flag-5'>解碼</b>封裝解封裝部件介紹

    EASY EAI Orin-Nano(RK3576主控AIOT 主板)產(chǎn)品數(shù)據(jù)全解

    ,支持8K@30fps的H.265,VP9AVS2和AV1解碼器,4k@60fps的H.264解碼器和4K@60fps的AV1解碼器;還支持
    的頭像 發(fā)表于 10-25 09:00 ?2581次閱讀
    EASY EAI Orin-Nano(RK3576主控AIOT 主板)產(chǎn)品數(shù)據(jù)全解

    EAI3576-Core-T(RK3576 核心板)產(chǎn)品數(shù)據(jù)全解

    Cortex-A53及獨(dú)立的NEON協(xié)處理器,支持4K@120fps的H.265,VP9AVS2和AV1解碼器,4k@60fps的H.264解碼器和4K@60fps的
    的頭像 發(fā)表于 10-24 09:00 ?1784次閱讀
    EAI3576-Core-T(RK3576 核心板)產(chǎn)品數(shù)據(jù)全解

    EAI3588-Core-T(板對(duì)板核心板)產(chǎn)品介紹

    Cortex-A55及獨(dú)立的NEON協(xié)處理器,支持8K@60fps的H.265和VP9解碼器,8k@30fps的H.264解碼器和4K@60fps的AV1
    的頭像 發(fā)表于 07-29 09:51 ?1389次閱讀
    EAI3588-Core-T(板對(duì)板核心板)產(chǎn)品介紹

    迅為iTOP-3576開發(fā)板適用于ARM PC、邊緣計(jì)算、個(gè)人移動(dòng)互聯(lián)網(wǎng)設(shè)備及其他多媒體產(chǎn)品。

    、PyTorch、Caffe等一系列框架的網(wǎng)絡(luò)模型。滿足多種應(yīng)用場(chǎng)景。 iTOP-3576擁有強(qiáng)大的視頻解碼能力,支持4K@120fps的H.265、VP9、AVS2和AV1解碼器,
    發(fā)表于 06-19 10:48

    基于RK3576處理器,EASY EAI Orin Nano開發(fā)板免費(fèi)試用

    8K@30fps的H.265,VP9AVS2 和 AV1解碼器,4k@60fps的H.264 解碼器和4K@60fps的AV1解碼器;還支持
    的頭像 發(fā)表于 06-09 15:01 ?1421次閱讀
    基于RK3576處理器,EASY EAI Orin Nano開發(fā)板免費(fèi)試用

    迅為iTOP-3576開發(fā)板采用瑞芯微RK3576高性能、低功耗的應(yīng)用處理芯片

    、PyTorch、Caffe等一系列框架的網(wǎng)絡(luò)模型。滿足多種應(yīng)用場(chǎng)景。 iTOP-3576擁有強(qiáng)大的視頻解碼能力,支持4K@120fps的H.265、VP9、AVS2和AV1解碼器,
    發(fā)表于 05-20 11:15

    迅為iTOP-RK3576開發(fā)板/核心板6TOPS超強(qiáng)算力NPU適用于ARM PC、邊緣計(jì)算、個(gè)人移動(dòng)互聯(lián)網(wǎng)設(shè)備及其他多媒體產(chǎn)品

    、PyTorch、Caffe等一系列框架的網(wǎng)絡(luò)模型。滿足多種應(yīng)用場(chǎng)景。 iTOP-3576擁有強(qiáng)大的視頻解碼能力,支持4K@120fps的H.265、VP9、AVS2和AV1解碼器,
    發(fā)表于 05-16 14:46

    迅為iTOP-RK3576開發(fā)板/核心板八核處理器6TOPS超強(qiáng)算力NPU

    、PyTorch、Caffe等一系列框架的網(wǎng)絡(luò)模型。滿足多種應(yīng)用場(chǎng)景。 iTOP-3576擁有強(qiáng)大的視頻解碼能力,支持4K@120fps的H.265、VP9、AVS2和AV1解碼器,
    發(fā)表于 04-18 15:36

    迅為瑞芯微iTOP-3576開發(fā)板/核心板

    、PyTorch、Caffe等一系列框架的網(wǎng)絡(luò)模型。滿足多種應(yīng)用場(chǎng)景。 iTOP-3576擁有強(qiáng)大的視頻解碼能力,支持4K@120fps的H.265、VP9、AVS2和AV1解碼器,
    發(fā)表于 04-15 16:34

    QuarkPi-CA2 RK3588S卡片電腦:6.0Tops NPU+8K視頻解碼+接口豐富,高性能嵌入式開發(fā)!

    支持INT4/INT8/INT16/FP16,支持TensorFlow、PyTorch等主流框架,支持8K@60fps視頻解碼和8K@30fps視頻編碼,H.265/H.264/VP9/AV1
    發(fā)表于 04-11 16:03

    iTOP-3588開發(fā)板采用瑞芯微RK3588處理器四核心架構(gòu)GPU內(nèi)置獨(dú)立NPU強(qiáng)大的視頻解碼

    視頻解碼 8K編碼+8K解碼,多路視頻源同時(shí)解碼。支持8K@60fps H.265/H.264/VP9/
    發(fā)表于 04-09 16:09

    迅為iTOP-RK3576開發(fā)板/核心板視頻解碼能力強(qiáng)高性能低功耗的應(yīng)用處理芯片

    、PyTorch、Caffe等一系列框架的網(wǎng)絡(luò)模型。滿足多種應(yīng)用場(chǎng)景。 iTOP-3576擁有強(qiáng)大的視頻解碼能力,支持4K@120fps的H.265、VP9、AVS2和AV1解碼器,
    發(fā)表于 04-07 14:18