那曲檬骨新材料有限公司

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

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

3天內不再提示

手淘H265編解碼算法與工程優化

LiveVideoStack ? 來源:未知 ? 作者:工程師李察 ? 2018-11-03 10:26 ? 次閱讀

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

2、H.265介紹

2.1 成本效益

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

2.2 編碼框架

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

2.3 技術亮點

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

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

2.4 改進代價

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

3、H.265高效編解碼器的實現

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

3.1 RDO優化

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

高效預判CU層次。

采用基于紋理信息等內容的CU遍歷提前終止策略。

基于卷積神經網絡解決圖像分塊的非線性問題。

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

使用量化誤差D和殘差比特數R的快速計算模型。

采用基于單調性的ME快速計算模型。

在35中模式中快速選擇合適的幀內預測模式。

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

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

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

2)RDO優化

快速模式決策——深度預估

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

快速模式決策——紋理Corner檢測

通過對圖像紋理的檢測我們可快速選擇最優的劃分模式。迅速識別平坦或對比度較強的紋理,提升劃分效率。

快速模式決策——CNN分類

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

快速模式決策——AZB決策

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

Distortion&Bits估計

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

FME最優搜索位置估計

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

快速幀率預測方法

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

3)碼率控制優化

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

4)參考幀優化——長期參考幀

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

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

3.2 工程化優化方法

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

3.3 優化成果

1)軟件編碼

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

2)軟件解碼

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

4、總結與未來展望

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

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

Q&A

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

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

Q:能否在客戶端實現硬編?

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

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

    關注

    0

    文章

    183

    瀏覽量

    27453
  • 工程
    +關注

    關注

    0

    文章

    166

    瀏覽量

    27924
  • H265
    +關注

    關注

    0

    文章

    5

    瀏覽量

    16883

原文標題:手淘H265編解碼算法與工程優化

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

收藏 人收藏

    評論

    相關推薦

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

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

    視頻編解碼標準課件

    編解碼起初的MEPG-1開始,及相關專業組織的各個標準開始,詳細介紹講解了各編碼原理。
    發表于 12-06 15:07 ?0次下載

    請問有沒有將音頻編解碼后的數字信號用UART傳輸的芯片?

    有沒有這樣的芯片,可以實現雙向的編解碼,但是數字信號的輸入和輸出是通過UART口,即PCM編解碼的信號來源和去向可以是通過單片機UART口來的?
    發表于 11-07 06:04

    在米爾電子MPSOC實現12G SDI視頻采集H.265壓縮SGMII萬兆以太網推流

    的ZU4EV MPSoC平臺,接入真4k 60UHD-SDI視頻源后,使用VCU進行高效H.265編解碼,再通過SGMII萬兆以太網實現網絡推流,以確保高質量4K視頻的流暢傳輸。2. 視頻質量下降的原因與優化
    發表于 11-01 16:56

    在米爾電子MPSOC實現12G SDI視頻采集H.265壓縮SGMII萬兆以太網推流

    米爾電子的ZU4EV MPSoC平臺,接入真4k 60UHD-SDI視頻源后,使用VCU進行高效H.265編解碼,再通過SGMII萬兆以太網實現網絡推流,以確保高質量4K視頻的流暢傳輸。 2.視頻質量
    發表于 10-14 17:42

    音頻編解碼器中的常見噪聲問題

    電子發燒友網站提供《音頻編解碼器中的常見噪聲問題.pdf》資料免費下載
    發表于 10-09 10:19 ?0次下載
    音頻<b class='flag-5'>編解碼</b>器中的常見噪聲問題

    遙控編解碼芯片有哪些

    遙控編解碼芯片是無線遙控系統中的重要組成部分,它們負責編碼和解碼信號,以實現遙控功能。以下是一些常見的遙控編解碼芯片: PT2262/PT2272 : PT2262是一種編碼芯片,而PT2272
    的頭像 發表于 09-30 14:21 ?1285次閱讀

    PT2262/2272編解碼集成電路介紹

    電子發燒友網站提供《 PT2262/2272編解碼集成電路介紹.doc》資料免費下載
    發表于 08-15 10:44 ?0次下載

    【技術分享】H.264 與H.265的區別,二者應該如何選擇?

    啟明智顯的國產工業級HMI芯片Model4集成圖形、視頻顯示和編解碼相關的硬件模塊,支持H.264視頻解碼器,能夠為高清視頻播放提供強大的硬件基礎。H.264兼容性廣,也能節省空間和帶
    的頭像 發表于 07-30 16:41 ?1639次閱讀
    【技術分享】<b class='flag-5'>H</b>.264 與<b class='flag-5'>H.265</b>的區別,二者應該如何選擇?

    教您在79元ARM平臺實現H.265視頻解碼

    本帖最后由 Tronlong創龍科技 于 2024-7-19 17:01 編輯 什么是H.265視頻編解碼? (1)什么是H.265 H.265,也被稱為HEVC(HighEff
    發表于 07-17 10:46

    全志T527芯片詳解【二】:高清圖像編解碼

    ) ...... 在硬件加速模塊加持下,T527可以輕松實現4K視頻的錄制和播放,并支持H.264\\\\H.265\\\\VP9等多種主流的編解碼格式,同時支持多路編解碼的場景。
    發表于 05-24 14:14

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

    至關重要的作用,編解碼器的主要目標是通過去除冗余信息和壓縮視頻數據來減少文件的大小,同時還要保持高質量的視頻圖像編碼器負責壓縮解碼器則負責還原,編解碼器都是基于一些特定的算法和標準運行
    發表于 04-28 21:04

    瑞芯微工業處理器8K視頻編解碼+8K顯示案例測試

    本案例使用GStreamer API通過ARM從本地導入8K視頻文件(H.264編碼格式或H.265編碼格式),然后進行H.264或H.265(NV12)
    發表于 04-28 14:28 ?983次閱讀
    瑞芯微工業處理器8K視頻<b class='flag-5'>編解碼</b>+8K顯示案例測試

    嵌入式操作教程_數字信號處理_音頻編解碼:3-6 AAC音頻解碼實驗

    、有損音樂壓縮格式、有損語音壓縮格式和合成算法。本實驗中使用的AAC格式屬于有損音樂壓縮格式。音頻編解碼的目的是減少傳輸的信息量和減少儲存的信息。 音頻的編解碼的格式分類 無壓縮的格式(PCM,WAV
    發表于 04-11 09:22

    STM32H7系列目前有沒有支持h264編解碼?fps大概為多少?

    STM32H7系列目前有沒有支持h264編解碼,fps大概為多少?
    發表于 04-07 06:06
    韩国百家乐官网的玩法技巧和规则 | 澳门百家乐官网的玩法技巧和规则 | 蓝盾百家乐官网代理打| 申城棋牌2.0| 百家乐视频官方下载| 百家乐官网最好的平台是哪个 | 大丰收百家乐官网的玩法技巧和规则| 威尼斯人娱乐城网上赌博| 百家乐官网娱乐城送分| 大发888登录| 百家乐一起多少张牌| 百家乐官网游戏开户网址| 网上百家乐官网庄家有赌场优势吗| 单机百家乐的玩法技巧和规则 | 大发888使用条款| 金鼎百家乐局部算牌法| 夜总会百家乐官网的玩法技巧和规则| 大发888游戏在线客服| 百家乐api| 百家乐官网视频聊天软件| 金银岛娱乐城开户| 威尼斯人娱乐城易博| 百家乐娱乐网77scs| 实战百家乐博彩正网| 杨公24山| 网上百家乐官网骗钱| E乐博百家乐官网娱乐城| CEO百家乐官网现金网| 会泽县| 皇冠网上69691| 大发888易付168 充值| 百家乐QQ群娱乐| 百家乐庄闲的几率| 百家乐官网平注法口诀| 乐天堂百家乐官网娱乐| 百家乐官网现金游戏注册送彩金| 大发888官方删除| 大发888娱乐游戏平台| 大发888东方鸿运| 大发888手机注册送钱| 大发888第一在线|