日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

手淘H265编解码算法与工程优化

發(fā)布時間:2024/4/11 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 手淘H265编解码算法与工程优化 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.


本文來自淘寶(中國)軟件有限公司 高級算法專家 李曉波在LiveVideoStackCon 2018講師熱身分享,并由LiveVideoStack整理而成。在分享中李曉波詳細解析了手淘在H.265高效編解碼器的實現(xiàn)過程中的所進行的優(yōu)化探索。


文 / 李曉波

整理 / LiveVideoStack

直播回放:

https://www.baijiayun.com/web/playback/index?classid=18092766674408&session_id=201809270&token=9cvtEB4cD-tt681rrJ0J_X_xhMZ1RNYubVFqPjdR-aayU733iyVK8KmAzLIxdcURbGXiSLeoTesKp0fXMnVKLQ


大家好,我是來自淘寶的李曉波(籬悠)。本次分享的主要內(nèi)容可以分為以下四個部分:


1、項目背景

2、H.265介紹

3、H.265高效編解碼器的實現(xiàn)

4、總結(jié)和未來展望


1、項目背景



手淘的產(chǎn)品目前已經(jīng)拓展到直播、短視頻等領(lǐng)域,業(yè)務中存在著大量的圖片和視頻;自2015年起,圖片和視頻的數(shù)量呈指數(shù)級別高速增長;并且隨著網(wǎng)絡技術(shù)的發(fā)展與消費升級,用戶對圖片和視頻清晰度的要求也不斷提升,從最早的360P到現(xiàn)在的4k甚至8k,這些都帶來了寬帶成本與存儲成本的大規(guī)模提升,這也就是為什么我們希望借助H265技術(shù)支持音視頻業(yè)務的良性發(fā)展。


2、H.265介紹


2.1 成本效益



借助H265技術(shù)我們可以實現(xiàn)大規(guī)模并發(fā)場景下音視頻業(yè)務的有效成本控制。帶寬與存儲成本不容小覷,與H264相比,以典型4K場景中使用H265技術(shù)為例,可在保持畫質(zhì)不變的同時節(jié)省達50%的帶寬,而以720P直播為例使用H265則可節(jié)省30%流量。現(xiàn)在的流量有90%以上都來自移動端(手機)而非傳統(tǒng)意義的PC、服務器、Pad等;而對手機端尤其是Android設(shè)備而言,碎片化帶來的計算能力受限、性能層次不齊等問題使得H265上的很多優(yōu)化與功能受到限制。如果我們直接將H265應用于手機端則會在解碼時出現(xiàn)發(fā)熱大、能耗高、實時編碼無法正常進行等現(xiàn)象;與此同時,也缺少快速、高效且成熟的端上編碼方案,這些都是亟待我們解決的問題。


2.2 編碼框架



接下來介紹下H265的編碼框架。H265編碼框架由四個模塊組成:輸入一段視頻的連續(xù)多幀,首先需要經(jīng)過的是包含幀內(nèi)預測、幀間預測兩個操作的預測模塊;隨后進行變換量化模塊也就是針對原始圖像塊與預測圖像塊的差值進行DCT和量化;接下來解碼模塊會將圖像解碼以便用于下一幀的預測;最后的熵編碼模塊將針對預測信息和殘差系數(shù)進行算數(shù)編碼從而進一步消除編碼冗余。


2.3 技術(shù)亮點



H265主要有哪些技術(shù)亮點?首先H265具有靈活的編碼結(jié)構(gòu),擁有CUPUN、CTUN等多個細分編碼單元;其次H265的塊大小也非常靈活,包括4×4、8×8等更多塊劃分方式;除此之外,H265的Sample Adaptive Offset(SAO)技術(shù)相對于Deblock和ALF具有更高性價比;最后在整個H265中包含了并行化設(shè)計,使得H265的優(yōu)勢更加明顯。



除了以上技術(shù)亮點,H265相比于H264 在插值、MV預測、幀內(nèi)預測、變換、去塊濾波等方面進行了大量改進與優(yōu)化。上圖右側(cè)表展示的是H.265相對于H.264在多方面帶來提升的量化數(shù)據(jù)。


2.4 改進代價



H.265為音視頻帶來了技術(shù)提升,與此同時也帶來了不容忽視的改進代價。碼流的節(jié)省意味著計算復雜度的提升,從上圖右側(cè)的統(tǒng)計表中我們可以看出,相對于H264,H265的編碼復雜程度增加了約3到4倍,解碼復雜程度也增加了近50%。這就意味著傳統(tǒng)的針對H.264的軟硬件解決方案處理H.265會明顯感到力不從心,我們需要妥善解決因方案升級帶來的諸多技術(shù)挑戰(zhàn)。


3、H.265高效編解碼器的實現(xiàn)



即便如此,H.265的優(yōu)勢也不容忽視。上圖展示的是我們在2017年開展的一項調(diào)研,以當時比較成熟的金山HEVC解碼器為例,對比標準H.265解碼器,無論是在解碼速度還是解碼質(zhì)量上金山的HEVC解碼器都有很大優(yōu)勢,這項調(diào)研結(jié)果也讓我們對H.265的未來發(fā)展更加充滿信心。


3.1 RDO優(yōu)化



手淘在H.265編解碼領(lǐng)域作出了哪些探索?我們的優(yōu)化探索主要分為兩部分:算法優(yōu)化與工程優(yōu)化,而算法優(yōu)化主要集中在RDO方向。由于HEVC支持不同的CTU/CU/PU/TU組合模式,可選編碼模式激增;搜尋最優(yōu)編碼模式時,隨著編碼模式數(shù)量的增加,率失真計算會成為編碼過程的計算瓶頸,這主要是由于傳統(tǒng)H.264中基于SATD的率失真優(yōu)化不可在H.265中使用,需要精度更高的失真代價計算。為了優(yōu)化RDO以實現(xiàn)更高效的處理效果,我們進行了以下7項改進:


  • ?高效預判CU層次。

  • ?采用基于紋理信息等內(nèi)容的CU遍歷提前終止策略。

  • ?基于卷積神經(jīng)網(wǎng)絡解決圖像分塊的非線性問題。

  • ?提前預判殘差AZB塊,從而減少D與R的計算。

  • ?使用量化誤差D和殘差比特數(shù)R的快速計算模型。

  • ?采用基于單調(diào)性的ME快速計算模型。

  • ?在35中模式中快速選擇合適的幀內(nèi)預測模式。


1)模式劃分CTU/CU/PU/TU



以PU為例,H.264有7種劃分模式,而H.265則有24種劃分模式。



如果統(tǒng)計H.265中一個圖像可以選擇的所有劃分模式,一個塊有高達384種可選擇的劃分模式。只有計算完成所有選擇后才能確定最佳劃分方案,如何縮短計算如此多選擇所需要的時間?


2)RDO優(yōu)化


快速模式?jīng)Q策——深度預估



首先,由于每塊的劃分層級與劃分深度和當前塊的參考幀塊之間有很強的相關(guān)性,利用時間和空間的相關(guān)性,我們可從參考塊的深度預估本塊的深度范圍并得到Min-depth與Max-depth;其次,即使本塊與上一塊或參考塊有相關(guān)關(guān)系,本塊也有一些自己獨有的信息可被利用,我們可通過結(jié)合本塊的運動與紋理信息界定深度的精度范圍,確定具體劃分深度的精度范圍。


快速模式?jīng)Q策——紋理Corner檢測



通過對圖像紋理的檢測我們可快速選擇最優(yōu)的劃分模式。迅速識別平坦或?qū)Ρ榷容^強的紋理,提升劃分效率。


快速模式?jīng)Q策——CNN分類



應對帶Corner的紋理時,可通過按照強度判決是否繼續(xù)劃分來實現(xiàn)快速選擇,這對線性變化的處理效果較好,而在實際應用中我們需要面對很多非線性變化的應用場景,此時就需要CNN卷積神經(jīng)網(wǎng)絡+深度學習的模型對非線性變化進行紋理分類與快速模式選擇,這里的線性分析與非線性分析是分開進行的。


快速模式?jīng)Q策——AZB決策



AZB(All Zero Block)是量化后系數(shù)為全0的塊,通過AZB提前判別決策可對塊進行快速歸類,從而減少D與R的計算。


Distortion&Bits估計



縱覽整個劣勢幀的計算過程 ,計算Dp需原圖到重建圖像間的SSE,也就是完成編碼模式P的預測、變換、量化、反量化、反變換、重建等。為避免這樣冗長而復雜的計算過程,我們可以在變換與量化后在頻域計算殘差能量;而碼率統(tǒng)計 則是通過一次熵編碼實現(xiàn),為了提高計算效率我們可以對殘差數(shù)據(jù)的碼率統(tǒng)計建立線性估計模型并根據(jù)NxN變換矩陣量化后的特征估計其碼率,可減少近50%的計算量。


FME最優(yōu)搜索位置估計



這里我們主要進行的優(yōu)化是,通過整像素點及1/2像素點的SAD值和其坐標來估算出最優(yōu)1/4像素點,從而加速整個搜索過程。


快速幀率預測方法



我們采用了基于貝葉斯模型開發(fā)的一套幀內(nèi)預測快速決策方法,可為幀內(nèi)預測速度帶來一倍的提升并將損失降低到0.01dB。


3)碼率控制優(yōu)化



我們使用以下策略對碼率控制與Lookahead進行優(yōu)化,首先是基于CuTree的信息傳遞來調(diào)整CUQP,其次是基于rates和復雜度的IBP FrameQP,最后是·基于參考強度的Slice Type Decision,這一部分內(nèi)容我會在LiveVideoStackCon 2018上作出更加詳細描述 。


4)參考幀優(yōu)化——長期參考幀



我們知道,參考幀大都在一個GOP范圍內(nèi),往往有更好的編碼質(zhì)量,參考幀有助于提高被參考幀的質(zhì)量,而長期參考幀可能源于多個GOP。這就使得對于背景很少發(fā)生變化的直播場景,長期參考幀可有效減少信息經(jīng)過多幀傳遞帶來的損失,引用長期參考幀可將平均EV提高大概0.25dB,



上圖展示的是各模塊計算量占比,以上就是我們圍繞RDO領(lǐng)域進行的多項探索。


3.2 工程化優(yōu)化方法



基于工程方面我們也進行了多項優(yōu)化,首先是針對一些特殊函數(shù)的匯編計算優(yōu)化,我們通過采用NEON指令集優(yōu)化,為典型計算性能帶來2~4倍的提升,如RDO(SSE、SAD)模塊、運動搜索模塊、幀內(nèi)預測模塊等均提升兩倍以上;其次,針對現(xiàn)在移動端廣泛使用的多核處理器,我們優(yōu)化多核并行計算并適應現(xiàn)代處理器的架構(gòu);除此之外,我們也優(yōu)化bottleneck的指令和訪存,從而進一步提升整體性能。


3.3 優(yōu)化成果


1)軟件編碼



經(jīng)過算法與工程兩個層次上的優(yōu)化,我們?yōu)镠EVC編解碼帶來了明顯的性能提升。就編碼速度而言,手淘比X.265 17年初的版本提升3倍以上并可在iPhone6上實現(xiàn)720P&30幀的實時編碼;若想實現(xiàn)相同的編碼質(zhì)量,手淘的編碼碼率相對于X.265降低了至少15%,上圖展示的便是具體的測試結(jié)果。


2)軟件解碼



軟解優(yōu)化更多集中在工程方面也就是NEON指令集部分,較少在算法層面進行調(diào)整。通過對NEON指令集的優(yōu)化與一些邏輯上的改寫,手淘可實現(xiàn)相對于FFmpeg提升150%以上的視頻解碼速度,例如將1Mbps 720P H.265的測試用例用于小米5手機進行解碼測試,其解碼速度可達兩百幀以上,而CPU的占用率也控制在20%以下;在處理圖片方面,例如對H.265的標準I幀處理上我們也做出了不少優(yōu)化和改進,APG的圖片解碼速度相對于FFmpeg提升70%以上。


4、總結(jié)與未來展望



這里我們對視頻編碼標準的未來進行簡單的展望。過去10年大家都是按照H.264、H.265的標準;而在流媒體漸成趨勢的未來,Google提出的VP8、VP9、VP10,還有H.266、AV1等標準將推動音視頻行業(yè)向更光明的未來發(fā)展。技術(shù)的進步為我們實現(xiàn)更多更新潮的效果打下基礎(chǔ),助力消費升級與用戶體驗的日漸完善。



如果簡單對比H.266與AV1我們可以看到,因為H.266引入了更多的四叉樹二叉樹結(jié)構(gòu)(QTBT),整體的BD-Rate提升近4%;但H.266對比H.265,在保持畫質(zhì)不變的情況下碼流降低了近1倍而整體編碼時間卻增加了2倍左右,整體解碼時間則增加近1倍。基于之前的調(diào)研我們發(fā)現(xiàn),AV1的時間復雜度是X.265的2000~3000倍,這說明AV1未來的改進與優(yōu)化任重而道遠。


Q&A


Q:VP9在將來會大面積普及嗎?


A:我認為VP9當前存在最大的妨礙其普遍推行的問題是兼容性,因為現(xiàn)在很多設(shè)備都采用向下兼容的策略,而VP9在諸多設(shè)備上的普及率不高;如果大家在直播等領(lǐng)域使用VP9進行編碼則必須經(jīng)過轉(zhuǎn)碼之后才能通過CDN分享,隨后重新轉(zhuǎn)成H.264或H.265再播放,這樣勢必會帶來很多麻煩。


Q:能否在客戶端實現(xiàn)硬編?


A:現(xiàn)在的一些高端手機已經(jīng)可以實現(xiàn)性能穩(wěn)定的硬編H.265,例如對iOS而言,iPhone7以上的機型都可穩(wěn)定實現(xiàn)。但在較為碎片化的安卓機型上,由于安卓機型解碼時對多種協(xié)議的支持力度不統(tǒng)一,加上不同檔次的手機性能差距過大,編碼性能受到很大影響。手淘上主播的機型主要是ios,所以在淘寶上我們主要采用硬編方案;而對于直播環(huán)境,因為需要CDN進行內(nèi)容分發(fā),而CDN重點支持的鏈路基本屬于H.264,編碼方式受限于整個直播的鏈路環(huán)境。

總結(jié)

以上是生活随笔為你收集整理的手淘H265编解码算法与工程优化的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。