RealNetworks是流媒體類別的發明者,改變了音頻和視頻內容在各類設備和全世界消費的方式。在編解碼市場的大環境下,RealNetworks推出了新一代的視頻壓縮算法RMHD,專爲下一代的高清流媒體業務所設計。本文將從視頻編解碼優化以及與AI的實踐結合兩方面來爲你們介紹RealNetworks在這部分所作的工做。css
你們好,我是RealNetworks的況超,本次演講的主題是視頻編解碼優化以及與AI的實踐結合,雖然我不是AI技術的專家,但在作視頻編解碼的後期也會用到一些AI的技術,因此也會與你們一塊兒分享這部分的內容。
本次演講主要由背景與需求、RMHD簡介、RMHD優化以及與AI結合和總結展望四部分組成。
首先你們須要瞭解,視頻壓縮是一種很是重要的技術,隨着時代的演進,產品不斷更新,新的應用不斷出現,在此期間用戶的需求和要求也一定會愈來愈高,這些因素都會促使視頻壓縮技術的迭代,以求適應市場需求。
作上層應用或產品的公司在產品定義或開發過程當中,常常面臨的一個問題是選擇適合本身的編解碼標準,視頻服務商的共同目標是在現有的網絡和編碼工具基礎上將視頻質量提升到極致,讓用戶體驗更好,用戶羣增加更快,但在視頻質量提升的同時更須要考慮下降包括存儲、編碼時間、算力和帶寬等因素在內的總成本。
因此編解碼器是須要在綜合考慮碼率節省、編碼速度、碼率波動和版權稅等諸多因素以後才能作出選擇。
編解碼工做的展開就是圍繞在開發一個適合本身的視頻壓縮技術或使用既有編解碼技術之間作選擇,工做內容須要在其中找到一個最佳的平衡狀態,也就是在畫質、碼率和性能之間作平衡。
在編解碼市場的大環境下,RealNetworks推出了本身的視頻壓縮算法RMHD,即RealMedia HD。
RealMedia HD專爲下一代的高清流媒體業務所設計,可以極大地維持視頻質量和文件大小之間的平衡,即在現有的網絡環境中,也能夠幫助運營商和製造商普及高清內容的服務和相關產品。
RealNetworks是流媒體類別的發明者,改變了音頻和視頻內容在各類設備和全世界消費的方式。
目前以數字媒體專業知識和創新爲基礎創造了新一代產品,採用最新的人工智能和機器學習來加強和保護咱們的平常生活。
編解碼技術是不斷演進的,從早期的RV8到RV9,再到後來的RV10(RMVB)以及目前主推的RV11(RMHD),本次演講的內容也主要圍繞RMHD展開。
RealNetworks在以前的25年裏都在不斷地創新,部分產品因爲是在海外市場使用,所以不被你們熟知。
在2017年推出了新一代的編解碼技術RMHD,在4K實時流媒體編解碼方面實現了史無前例的效果,尤爲是在畫質和碼率控制。
RMHD實際上是一個高清低碼、低複雜度的算法集合,設計之初主要是針對流媒體產品以及軟硬件實現時比較友好的私有編解碼解決方案,在達到更高壓縮效率的同時可以在軟硬件實現更快的編碼速度,複雜度也相對較低。
因爲低複雜性、短PBBP幀間依賴性和高壓縮效率,RMHD編解碼器對低延遲HLS流很是友好。
同時它對CDN也是友好的,只使用標準的 HTTP / 1.1 協議就能夠輕鬆地與P2P 解決方案集成。
有關RMHD性能測試的結果能夠從上圖中瞭解,在採用1080P/4K測試序列,具備八個CPU的AWS C5計算實例上對RMHD進行測試。
採用VMAF做爲視頻質量感知的衡量指標,編碼設置都是在以最慢的速度運行,而且執行二次編碼。
收集測試結果後從利用編碼速度、畫質和帶寬三個維度分別與主流的Codec進行比較。
在編碼速度方面,RMHD的編碼速度要比HEVC和VP9更快(都是在以最慢的速度運行,而且執行二次編碼)。
編碼1080P,在碼率大於2M時VMAF的得分RealMedia HD僅低於AV1,但高於其餘Codec
對於4K分辨率,在碼率大於5M時VMAF的得分RealMedia HD要高於其餘Codec
在畫質相同的狀況下,同爲1080P分辨率時,RMHD的碼率較AV1以外的其餘Codec小;
同爲4K分辨率時,RMHD的碼率表現也優於其餘Codec。
以上是RMHD技術的性能指標,在實際應用中也有着良好的使用體驗,可以在對比中佔優點的結果都來源於團隊背後所作的大量工做。
視頻壓縮技術在實際應用中,主要圍繞三個維度來展開工做,首先是視頻壓縮算法coding tools的設計,coding tool的設計和取捨要考慮到複雜度,既兼顧軟件實現的便利又兼顧硬件設計的友好。
其次是複雜度的問題,優化調優編解碼工具,在使用過程當中及時調整不一樣狀況下複雜度對質量的影響。
這部分主要是去除實現上的冗餘,一套算法在真正實現的過程當中存在不少冗餘,傳統編碼框架首先須要作預編碼來決策最優編碼方案,快速算法的優化對編碼的質量和速度影響很大。
最後是視覺質量評估系統,從視覺冗餘角度來去除冗餘信息,將比特調優以後再分配,優化比特利用率。
RMHD的基本框圖是基於傳統編碼框架,經過pre-encoding決策最優。
在上一代RMVB基礎上,新增了不少coding tool,作了大量的改進和優化。
爲了可以同時達到高的壓縮率和更高的編解碼速度(軟件解決方案),coding tool的設計和取捨考慮到複雜度和應用場景。
在白色塊部分主要是以前提到的第一維度視頻壓縮算法coding tools的設計。
而RDCO在團隊內部被稱爲率失真-複雜度優化模塊(濾失真複雜度優化模塊),在使用過程當中及時調整不一樣狀況下複雜度對質量的影響。
RC主要負責將比特調優以後再分配,優化比特利用率。
當編碼工具集肯定以後,在實際應用中有一些方式能夠提高編解碼器的速度。
首先對於代碼的加速,這部分不會改變畫質,它只是在算法層面進行加速,在不一樣的賽道(平臺)上運行,都會有相應的SIMD的優化(arm,x86),好比intrinsic/assembly (arm-v7/v8/neon, sse2/4,avx2),速度會有顯著的提升。
其次針對架構來講,RMHD採用良好的多線程設計,以CU line爲運行單元,短PBBP幀間依賴性利於併發性, 同時擁有高效的內存管理和針對性的cache優化。
再者基於硬件加速,主要是利用GPU算力加速,GPU自己比較適合用於大規模、分支條件較少的的視頻數據運算,好比運動估計,插值濾波。
但在用GPU進行加速時須要儘量減小數據搬移量,使用「頁鎖定內存」提升傳輸帶寬,小數據合併一次傳輸,不然使用GPU的加速做用很小。
除此以外也能夠基於IntelGPU使用QuickSync Video (Core i7)的部分功能達到加速編碼的目的,利用device side VME反饋的有用信息來指導RV11的整個編碼流程,達到提質增速的效果。
接下來是一個重要的部分,那就是快速算法,這部分是有損的,會影響畫質,其核心就是在優化複雜度,針對coding tool自己的特性,開發出一整套快速算法集合,根據實際須要選擇不一樣的級別(檔位),換擋的前提是要控制質量損失,質量損失在可接受範圍內便可。
RMHD內部大概有10檔快速算法的級別,用戶能夠根據須要自適應選擇相應的檔位。
最後一塊就Lossy解碼, 主要是動態偵測當前速度,使得在播放速度達標的同時能夠保持視頻質量。
當速度有不達標的風險時,能夠用多種快速算法的組合實現不一樣級別的有損解碼,經過犧牲小部分視頻質量換取播放速度的大幅上升。
GPU編碼速度對比上如上圖所示,在4K序列上,GPU加速能夠在通常家用的IntelCore i7上達到接近每秒50幀的超實時轉碼速度,沒有GPU加速時速度僅爲每秒23幀。
對比兩者在圖像細節上的表現(以480p RaceHorse爲例)來看,GPU加速後畫質損失也相對較小。
對於Lossy解碼性能從質量速度轉換圖來看,犧牲小部分質量就可以換得速度大幅提高,這能夠改善在性能較差的設備上的播放體驗。
RealNetworks針對市面上大多數的手機和多媒體盒子作了大量的測試(畫質和流暢達標率)。
經過設備性能達標率的對比圖能夠看到,這種策略使得在同一個設備上可以順利播放的視頻更多了,更不容易出現視頻卡頓現象。
經過上面畫質對比圖,也能夠看到策略開啓先後,視頻的主觀質量沒有明顯的差距,左邊是在正常流暢解碼狀態下的視頻畫面,右邊是在不流暢時開啓lossy解碼功能的視頻畫面。
剛剛提到RMHD編碼也是基於傳統編碼框架,其中不少環節都要付出時間的代價,若是想要進一步提升壓縮質量,就須要對編碼模式有更多的劃分和預測,整個遍歷的代價會更大,優化的工做量也會更大。
除了傳統的手段以外,還能夠利用AI改善編解碼功能,好比利用AI作碼率控制模型、CAE編碼以及加強編碼。
碼率控制具體包括比特分配策略、碼率控制模型選擇和量化參數調整三個部分,關於比特分配策略,首先須要肯定碼率控制的目標,如VBR、CBR、CQ等,針對不一樣的目標採起不一樣的比特分配策略,VBR能夠採起較大的時間緩衝區、CBR應該採起較小的時間緩衝區,以適應相應的目標。
碼率控制模型目前經常使用的有R-Q模型和R-λ模型可供選擇,這裏列舉了Live-streaming 和 VODRMHD兩個RMHD主要的應用場景,對應不一樣碼率控制策略。
量化參數調整應該結合可用的參考信息,參數的選擇和利用該參數對量化參數的調整一般是最爲重要的一個部分。
經過機器學習訓練優化以後,RC模型優化先後的差異由圖中所示,對於標準測試序列「Fourpeople」來講,優化幅度是0.4比特左右。
3.7 Adaptive Quantization
碼控模型能夠理解爲一種基準的比特分配功能,但其實這樣還不足以改善畫質,提高比特分配的精準度,Adaptive Quantization就是對比特分配進行微調的工具,輸入圖像在進入編碼流程以前,將會進行LCU級別的圖像預分析。
圖像在通過LSM (Local SensitivityMeasurement) 模塊和dQPM (delta QP Mapping) 模塊後,每一個LCU將會被動態賦予一個delta QP值,並最終影響每一個LCU的編碼量化係數,從而獲得更優的編碼效率。
採用的局部感知測量方法,將主要考慮對比度屏蔽效應對於人眼主觀視覺的影響,爲追求更好的主觀編碼效率提高,後續可能會引入更多人眼屏蔽效應因子作結合。
經過訓練,獲得模型的最佳參數。
對不一樣的場景,方便對模型參數調整。
基於內容的CAE編碼包括人臉的檢測/特殊處理和場景的檢測/區別處理兩個方面,人臉檢測利用RN自身的CV技術,可以檢測畫面中關鍵的人臉部位並進行特殊的處理,包括QP調整和加強。
場景檢測能夠經過不一樣場景的信息,利用不一樣的訓練模型獲得最佳的編碼配置,不一樣的場景採用不一樣的編碼配置,進一步提升編碼比特利用效率。
基於場景的動態編碼模型訓練過程分爲四步,首先對每一個視頻場景進行屢次fix-QP編碼,每次編碼採用不一樣的分辨率和QP的組合,根據VMAF值,畫出convex hull。
在convex hull上,根據目標碼率,找到最佳VMAF對應的分辨率和QP組合,做爲神經網絡的dataset的y值。
以後統計每一個視頻場景的feature信息,好比每一幀的satd的平均值,這些feature做爲神經網絡的dataset的x值。
最後採用4層神經網絡訓練準確率爲0.96,而目前測試的準確率爲0.9。
PlaybackNavigation 是CV與codec應用結合的播放導航功能,在編碼端產生對應的CV meta data,在播放端基於對應的meta data開展應用,能夠靈活選擇感興趣的片斷、自動插播廣告、刪除某些人像等功能,SAFR技術是非codec依賴的。
上圖是Playback Navigation Sever端和Client端的流程圖,在Sever端數據進來以後會進行CV分析,一個產生編碼數據,另外一個產生CV信息,在將來RealNetworks會作更多關於AI相關的實踐。
在將來,RealNetworks會基於RMHD框架,利用AI的相關技術實施加強編碼引擎(Enhancement Coding Plugin),對前處理,後處理,視頻壓縮等方面進行改善,助力RMHD的生態更加完善。
SAFR系統不斷優化會便利和保障人們的平常生活。
做爲實時視頻人臉識別平臺,須要提供高準確度同時識別運動中人臉,以及化妝和部分遮擋,天然環境和微光下人臉,作到這一點最小隻須要60x60像素便可識別面部。
測試準確率99.86%, 可在100ms內快速識別實時視頻中移動的人臉,比其它算法快3-5倍,在準確性和性能方面達到了最佳的效果,是一套輕量級的人臉識別系統,後續會基於CV技術繼續對SAFR系統進行持續優化改進。
LiveVideoStack正在招募編輯/記者/運營,與全球頂尖多媒體技術專家和LiveVideoStack年輕的夥伴一塊兒,推進多媒體技術生態發展。同時,也歡迎你利用業餘時間、遠程參與內容生產。瞭解崗位信息請在BOSS直聘上搜索「LiveVideoStack」,或經過微信「Tony_Bao_」與主編包研交流。微信
本文分享自微信公衆號 - LiveVideoStack(livevideostack)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。網絡