5G+AI时代的高效视频处理
當前互聯網上大于75%的流量都來自于視頻,據估計5G時代視頻流量更是高達90%以上。如何壓縮、傳輸以及分析視頻內容成為5G部署及大規模應用的關鍵。雖然傳統的5G部署也有一定市場,但經過AI加持的智能終端/邊緣/云計算可以為5G帶來更大的收益及降低其部署成本。本次報告主要探索了在硬件層面如何利用傳統方法及深度學習方法對視頻進行壓縮和分析,以及如何在5G信道中傳輸壓縮后的碼流。
文 / 徐科
整理 / LiveVideoStack
本次分享的內容是關于在AI + 5G時代下視頻、圖像處理等技術的發展情況,以及在5G技術與人工智能的加持下,視頻處理,圖像處理等技術的發展方向。本次分享側重于硬件以及芯片方面,將更多地介紹關于硬件設計、驅動、并行架構等方面的內容。
?
本次內容主要分為三個部分。第一部分是針對人眼的視頻編解碼壓縮,這也是傳統的處理領域。二是針對機器視覺的視頻壓縮。現在越來越多的視頻或者圖像主要目的是給機器分析,而不是給人眼去看,那么視頻編解碼、視頻處理是否會有變化,如果有變化,其變化情況如何。三是隨著5G和AI的興起,尤其是在視頻編解碼標準這一方面,是否遵循著以前的混合架構。MPEG系列的的混合架構已經用了幾十年了,到現在使用的ITU、H.266、VVC也沒有完全地跳出MPEG-I的框架。
1.?對于人而言的視頻編解碼的壓縮
1.1 VVC、EVC、LCEVC介紹
最開始的視頻編解碼可能就是MPEG一條線,然后一步一步發展,比如H.264、H.265,到現在正在做的H.266。但這樣一條線的日子并沒持續太長時間,就出現了兩個競爭對手,其中一個就是我們國家自己的AVS標準,之所以出現這樣的標準,原因是H.264基本上被國際標準組織所把控,所以國家也需要有一些自己特定的標準,于是就開發了AVS,到現在已經是AVS3了。另外一個是像Google或者AOM聯盟,其主要目的是把標準開源化。像Facebook這樣的大公司,視頻占據整個流量的絕大部分,所以Facebook需要每一年向MPEG這樣的標準組織交納大概6000萬美元的專利費,這是一個巨大的數字,因此像Facebook這樣的公司計劃將每年交納的專利費用于做標準并且進行開源,這就促成了VP8、VP9,現在的AV1以及正在開發的AV2這一標準系列的誕生。所以除了MPEG系列之外,還有AVS、VP/AV這樣的標準系列。圖中列舉了三個,對于MPEG標準組織而言,也不是只做VVC這一方面,EVC和LCEVC兩者可用于解決VVC里一些不能覆蓋的問題。
?
H.264是20年前的技術,H.265是2013年出來的,H.264是2003年出來的,目前H.264在整個網絡流量的占比非常大,超過一半。而H.265到現在為止,經過多年還未成為主流的技術的主要原因就是輸在它的專利上,第一它的專利費不如H.264便宜,第二H.264專利的收費方明確規定,一旦交納專利費就不會再有其他的專利問題。但H.265并非如此,它有幾個不同的專利池,另外還有些公司在H.265里有自己的專利,但實際上并未加入專利池,這相當于即使使用了H.265,還是需要交納專利費,所以這就阻止了很多公司對H.265進行大規模地開發。
?
H.266里面有VVC、EVC、LCEVC,三者針對不同的應用有不同的收費方式。比如VVC是即將在2020發布的,它的Versatile就是適應很多不同的場景,VVC里做了很多的技術以適應不同場景下的不同的編碼,所以它的License是要收費的。EVC跟VVC的區別是EVC在Baseline部分是不收費的,它是一個免費簡單且效率不太高的編解碼標準,但是在Main及以上部分就需要收費了。
?
隨著視頻編解碼越來越復雜,VVC里的一些新的編碼工具的復雜度也是一代一代地增加,LCEVC主要的目的就是,不管在軟件還是在硬件方面,把復雜度降低,這相當于把復雜度倒回去,因為H.264->H.265->H.266越來越復雜,所以LCEVC可以在硬件受限制的場景下進行使用。
?
隨著人工智能或者5G的發展,視頻編解碼應用的場合越來越多,VVC的目的就是滿足對一個巨大而全的編碼方式的需求,但是在這樣的標準出來之后,首先要解決的并不是技術問題,而是知識產權的歸屬以及收費的模式,這才是阻礙VVC大量發展與應用的關鍵因素。
?
1.2?VVC的新的編碼工具
這里列舉了VVC里的一些新的編碼工具,實際上從整個MPEG發展到現在的趨勢看,它的整個框架并未偏離hybrid-coding的趨勢。隨著目前AI的興起,很多研究人員開始用一些深度學習的方法來替代其中的一些coding tool。所以H.266/VVC可能是最后一代混合架構。右圖中假如H.264把整個圖像分成16x16的Block,可以再分成小的4x4,但是不能擴大。而H.265在圖像的平滑區域,會將編碼的LCU劃得更大。H.266/VVC更近一步,會把整個CTU做到128/256甚至更多。如果在圖像紋理非常明顯或者非常密集的地方,可以做很多很小的劃分,通過這種不對稱的劃分方式,可以大幅度提升編碼效率。
?
1.3?VVC的多樣性
VVC主要解決以下三個問題:一是屏幕內容編碼,隨著玩游戲人數的增加,大部分觀看的都是游戲重播,即把游戲錄制下來然后進行播放。很多時候游戲內容跟一般的自然風景內容不同,它的結構所表現出來的形式和自然產生的是完全不同的,如果還是采取針對自然場景下的壓縮形式就達不到較好的效果,所以VVC里的Versatility最重要的一點就是屏幕內容編碼。
?
二是參考圖片重采樣,先傳輸一個720的分辨率,再調成1080或者4K的分辨率,如果采用傳統的方法是難以進行參考的。因為分辨率變成了1080,不可能再取前面的那一幀,VVC就是嘗試著解決隨著Streaming的內容越來越多的時候,編碼工具如何變化以減少基流的費用開支。
?
三是獨立子圖片,其中包括了像360等級的視頻,主要針對虛擬現實情況下的編解碼。
總的來說VVC主要針對多樣性,根據不同的場景進行編解碼處理。目前最新的測試模型6.1跟HEVC(HM)相比,基于PSNR的HD和UHD比特率會降低38%。一般情況下視頻標準都是10年一代,但由于AVS以及AV1、AV2等的競爭,VVC的標準提前了大約三年左右。另外,目前版本的VVC中我們可以看到x8.9倍編碼器和x1.6倍的解碼器硬件資源消耗的增加。
?
2.?對于機器視覺而言的視頻壓縮
2.1 面向機器視覺的編碼
這部分介紹了面向機器視覺的視頻壓縮與人和機器混合視覺的視頻壓縮之間的區別。對于人的視覺來說,較高的高清度還原性是最重要的,即看到的就是所拍攝下來的內容;其次是較大的圖像規格,即不斷的提高視頻的分辨率;三是幀率的提高,隨著VR的發展,為了滿足人眼的舒適度就要不斷的提高幀率。
?
但是對于機器來說,視覺要求沒有人那么高,但是要求具有較高的精確度;其次是較低延遲,尤其在5G情況下,要求較低的延遲;最后是面向目標對象。
?
評估面向機器的視頻編解碼的性能主要有三點:PSNR、mAP、主觀和客觀的評判標準。
?
2.2?面向機器視覺的應用場景
這里列舉了有關機器視覺的例子,比如智能工廠、視頻監控、自動駕駛車輛、娛樂方面、零售分析等等。機器視覺不同于人眼視覺只需要高保真就可以,它在很多不同的應用場景需要不同的要求,這些都是對機器視覺提出來的挑戰。
?
2.3?面向機器視覺的視頻編碼方式
面向機器的視頻編碼主要有兩種方式,圖中的上面是一種傳統方法,先輸入視頻進行編碼,在接收端進行解碼再進行通用特征提取等,最后將結果輸出。
對于面向機器的視頻編碼不需要傳輸原始的圖像,而是在輸入視頻里將針對神經網絡的權重提取出來,然后將這些特殊的特征進行壓縮后,通過傳送器傳輸到接收端對其進行解壓,最后用神經網絡進行檢測。神經網絡的輸入不再是單純的圖片,而是前面已經處理好的特殊的特征。
?
3. 新時代的視頻壓縮
3.1 視頻壓縮的發展方向
針對于現在的5G+AI時代,視頻壓縮未來的方向主要包括圖中四部分:5G、系統方法、AI/DL/NN上的硬件和半導體。
?
3.2?5G應用場景
目前5G主要有三個應用場景:eMBB、URLLC、mMTC。
?
eMBB是針對人的視覺的,5G進一步提升帶寬和降低延遲。
?
URLLC是一個低延遲的傳輸協議,主要用于自動駕駛的車聯網以及遠程醫療。
mMTC主要針對物聯網IoT,目前的人聯網會隨著5G的發展成為物聯網,問題是用傳統的網絡帶寬不夠,而5G會極大地擴充整個網絡帶寬的頻段以及同時接入的設備數量。
?
3.2.1 5G技術
這張圖是5G和3G、4G的展示圖,主要介紹幾個方面,一是Mobility,即在某種速度下可以聯網,4G可以做到在25km每小時的高鐵上連網也沒有問題,5G更推進了一步,可以做到在500km每小時的情況下正常連網。二是Latency,延遲在4G情況下是10毫秒,這是相當大的,在5G情況下延遲提高到1毫秒,相當于達到十倍的降低。三是Peak Data Rate,4G情況下是1Gbps,5G情況下是4G的20倍,可以達到20Gbps。四是Number of Decvices,5G情況下可以達到10^6/km2,即在一平方公里可以連接100萬個設備。
?
利用5G技術在路上進行自動駕駛通訊
這張圖表示,5G改變了通信的信道,在視頻編解碼階段,以前的通信里面編解碼歸編解碼管,通訊歸通訊管,兩個基本上是分開的,視頻壓縮端不涉及數據的即時傳輸,這就會造成視頻的卡頓。
?
解決方法就是將視頻編解碼和傳輸協議做成緊密耦合的系統。編碼時要做到:一是可伸縮視頻編碼,二是功能性視頻編解碼。
?
3.3 視頻編解碼的改革
編解碼器為傳輸提供了三種選擇:一是稍高的版本,二是較低的版本,三是直接丟棄。這三種形式需要根據當前的網絡形態或者當前網絡阻塞的判斷,決定采用哪一種,即視頻編解碼將最后的決定權給了傳輸協議。
以后的視頻編碼標準可能會有圖中所列的三個:內容感知、任務感知、接受方式感知。
以前的壓縮標準對要求每個像素的方式或者效率基本都相等,但這并不是最好的方式,因為它不是一個針對對象的壓縮方式,尤其對機器視覺來說,更需要的是關注的對象。比如在自動駕駛過程中更關注的是車牌,所以這種方式就需要通過一些人工智能的方式進行處理。
在介紹人工智能處理器之前先普及一些硬件的知識。圖中可以看到每一磅的碳排放量,如果坐飛機從紐約到舊金山進行往返旅行,那每一磅的碳排放量大概是1984;一個正常的地球人一年來說是11023;一個美國人一年碳排放量比全世界平均排放量高了三倍。
?
但一種對神經網絡進行架構搜索的算法transformer運算起來的碳排放量非常的驚人,達到了626155。這就產生一個問題,即現在的人工智能雖然在某些地方可能超過人的智能,但其功耗是非常大的,實際上是通過堆砌眾多的計算單元及計算量來進行一件簡單的事。
?
現有的神經網絡運算是如何把復雜度支撐起來
如果采用傳統的一些硬件進行,它的效能就比較低,過于消耗功耗。解決這種問題的方案是,圖中對比了三種不同的計算單元,一是藍線代表的CPU,二是綠線代表的GPGPU,雖然它的效能提高,但是其靈活度下降了。三是紅線代表Semi-custom SoCs & FPGAs,做一些專用的神經網絡加速器,它的靈活度非常低,但是效率卻非常高。
?
3.4 MemoryWall
在設計人工智能加速器的時候,首先關注的是Memory Wall,這些神經網絡從本質上來講就是一堆乘加的運算,但如何將乘加的操作數搬上去,這是一個非常重要和最難的事情,圖中是比較經典的三個網絡:AlexNet、ResNet-152、Languagemodel。其中Memory操作占了整個需要計算的75%及以上。
?
3.4.1 MemoryCapacity
從準確的數字表達可以看到,對于ResNet的CNN和LSTM引擎,兩者的模型大小都非常大,分別是120MBytes和2.5GBytes。兩者的記憶使用,即在進行訓練和推理時所占的帶寬,ResNet在訓練時有21,而推理時只有0.12。LSTM在訓練時是40,而推理時是2.5。
高性能算法系統性能從硬件的角度看,有10%的節點內通信,10%的CPU計算,10%的網絡帶寬和延遲,50%的GPU計算,GPU的優點是將很多小的相似的任務并行操作,最后是20%的記憶帶寬和容量。基本上就是按圖中這種劃分方式對高性能計算的性能進行劃分。
圖中展示的是深度學習神經網絡系統,整個系統最上部有Tensorflow、PyTorch、Caffe、ONNX等神經網絡訓練架構。中間部分是軟件堆棧層,最下部分是硬件層。
在不同的軟件堆棧層要進行不同的事情,在優化層,比如現在的神經網絡有很多是冗余的,因為它對于一個黑盒子來說,很多參數在訓練的時候,作為設計師不知道什么意思,但嘗試后效果還不錯,所以將其留下,但實際上如果仔細地解剖看,里面有很多冗余的東西,所以要進行修剪、量化的處理,即把神經網絡里面有些不必要的部分去除。其次,固件層的工作主要是數據管理、流量控制、異常處理。最后是驅動層,它與硬件結合十分緊密,主要進行寄存器配置、寄存器狀態讀取、啟動/停止硬件、中斷處理。
?
3.5 AI引擎
圖中是一個AI引擎設計圖,它有幾個不同的層次,其中DMA處理數據的進出。
?
這是一個8×16×32的AI加速引擎設計的MAC列陣圖。
?
目前的AI加速引擎都是類似脈動陣列的方式,輸入數據一是從上往下進去,一是從左往右進去,那么通過排列組合,將其成為一個非常規則的脈動陣列的方式。其實現有的神經網絡的設計并不復雜,基本上就是一堆乘加器,它的挑戰主要在于計算量非常的大,需要計算眾多參數和圖片,另外需要消耗巨大的存儲。
?
目前AI計算引擎已經是一個2.0的引擎,它有海量的傳感器,比如在自動駕駛的時候,會有很多的傳感器收集數據,并傳輸到AI處理器進行處理,再通過極低延遲與傳統的SoC進行交互。
圖中展示的是芯片設計或者硬件設計的性能增益,其中增益最多的是40%的工藝技術,也就是隨著工藝的不斷發展,其性能提高了40%。其他有編譯器性能提升了8%,微架構性能提升了17等等。總的來說,如果想要優化神經網絡處理器,可以根據圖中這些方面進行一步步的優化。
這是一個三維堆疊圖,SoC芯片跟DRAM兩個并列在一起,但隨著進一步的發展,會把不同的芯片合并在一起,通過這種方式,片上存儲的通訊帶寬就會擴大,就無需考慮記憶庫的問題。但需要考慮的是散熱,如果把所有東西都垂直的疊在一起,散熱就成了需要解決的問題。
?
4. 總結
目前為止,視頻編解碼器仍被視為視頻系統中的黑匣子,尤其是和5G結合時。但是隨著通信的發展以及對延遲的需求的擴大,應該將視頻系統、通信系統、視頻編解碼和5G通信結合起來。
?
目前針對視頻,我們需要對應用程序、標準、硬件和軟件等不同層次進行優化。首先要不斷開發新的視頻標準,其次,需要一些深度學習/神經網絡技術進行處理,將應用、標準、硬件、軟件進行協同優化(應用+標準+硬件+軟件),不管針對視頻還是深度學習,需要不斷對硬件架構進行開發(宏/微架構),隨著摩爾定律推進的減弱,將邏輯+內存+3D封裝在一起。(邏輯+內存+3D)。
LiveVideoStackCon 2020
上海/北京/舊金山 講師招募
2020年LiveVideoStackCon將持續迭代,LiveVideoStackCon將分別在上海(6月13-14日),北京(9月11-12日)和舊金山(11月)舉行。歡迎將你的技術實踐、踩坑與填坑經歷、技術與商業創業的思考分享出來,獨樂不如眾樂。請將個人資料和話題信息郵件到 speaker@livevideostack.com 或點擊【閱讀原文】了解成為LiveVideoStackCon講師的權益與義務,我們會在48小時內回復。
總結
以上是生活随笔為你收集整理的5G+AI时代的高效视频处理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于Nginx的媒体服务器技术
- 下一篇: 腾讯视频P2P带宽节省率持续提升之路