天天看點

手機上用AI實時、流暢解碼視訊,超精細畫質提升:高通研發出首個神經視訊解碼器

随着通信和網際網路技術的進步,特别是智能手機的普及以及 4G、5G 移動通信技術的成熟與發展,視訊聊天、視訊遊戲等多樣化的視訊娛樂方式層出不窮,普通使用者對視訊的消費需求也在不斷增長。2018 年思科 CISCO《視覺網絡指數》報告預測,到 2022 年,82% 的網際網路流量将由視訊創造。

除了日常生活中的娛樂交流用途之外,視訊也正在更多行業場景中大顯身手。比如,以視訊技術為核心的安防領域、智能工廠中對勞工行為的視訊監控與識别、輔助與自動駕駛中通過攝像頭記錄視訊畫面實時檢測環境、以及近年來越來越多明星也下場參與的視訊直播營銷,等等。與此同時,随着 AI 領域計算機視覺(CV)技術的蓬勃發展,CV + 視訊的技術組合将會在越來越多的應用場景中發揮不可或缺的作用。

手機上用AI實時、流暢解碼視訊,超精細畫質提升:高通研發出首個神經視訊解碼器

然而,海量的視訊資料對視訊的傳輸、存儲和其他處理帶來了巨大的挑戰。視訊壓縮、編解碼等視訊處理技術也就變得至關重要。在觀看視訊時,使用者想要體驗更高的畫質和流暢度,這些都依托更高效的視訊處理技術。多年來,計算機中視訊解碼的工作多由 CPU 來完成,這種方式易于使用但效率算不上很高。利用 GPU 解碼視訊是另一種選擇。随着短視訊等應用的興起,在手機等移動端借助專用解碼單元進行實時視訊解碼也成為了一種新的發展方向,對于視訊直播等實時性視訊服務具有重要意義。

與此同時,随着 AI 領域深度神經網絡的發展,越來越多的企業探索如何使神經網絡賦能自身産品。高通骁龍 SoC 中的 AI 引擎就充分融入了神經網絡能力,其中的硬體元件 Hexagon 向量處理器支援 8 位定點加速神經網絡運作,軟體元件骁龍神經處理(SNP)SDK 支援 CNN、LSTM 與自定義層。

旗艦 SoC 骁龍 888 內建的第六代高通 AI 引擎更是實作了 26 TOPS 的 AI 算力,神經網絡處理 SDK 帶來一系列改進,增加了對 RNN 模型的支援,助力手機端側 AI 性能提升至了全新水準。

那麼,有沒有可能将 AI 引擎蘊含的巨大算力更廣泛、更深入地應用于視訊領域呢?最近,高通就在這方面做了更多的嘗試,利用骁龍 888 内置的 AI 引擎和 CPU 進行視訊解碼。結果發現:基于神經網絡的神經視訊解碼效果還不錯。

高通 AI 研究院的新工作,實作了業界首款在商用智能手機端實時運作、基于軟硬體結合的神經視訊解碼器,在接近 720p HD 分辨率的視訊上實作了 30 fps 以上的實時解碼。

手機上用AI實時、流暢解碼視訊,超精細畫質提升:高通研發出首個神經視訊解碼器

從軟 / 硬解碼到 AI 神經視訊解碼

作為一項重要的視訊處理技術,視訊編解碼廣泛應用于通信、計算機與廣播電視領域,并催生了網絡電視、廣播電視、數字影院、遠端教育和會議電視等一系列實際應用。

就主要作用而言,視訊編解碼技術是在可用的計算資源内,追求盡可能高的視訊重建品質和盡可能高的壓縮比,以達到帶寬和存儲容量的要求。視訊編解碼器則是一種能夠對數字視訊進行壓縮或者解壓縮的程式或者裝置。

很長時間以來,基于 CPU 的軟體編解碼技術(也稱軟解碼)一直主導着市場,如英特爾内置于其 CPU 中的視訊編解碼引擎以及開源軟體 FFmpeg 中的 libavcodec 解碼器,雖然易于使用,但會占用 CPU 資源,提升功耗,編解碼效率不高,容易出現卡頓、花屏等異常,影響其他應用的正常運作。

是以,利用 GPU 或者專用處理器來對視訊進行編解碼(也稱硬解碼)成為另一種選擇,如英偉達推出的基于 GPU 的硬體解碼器子產品 NvCodec,不僅可以實作良好的編碼性能,而且使用顯示卡編碼不會占用太多系統資源,也就不會影響應用的使用性能。

但是,日益增長的視訊消費需求對未來的視訊編解碼器提出了更高的要求,應該具備以下功能:

  • 比特率和感覺品質名額的直接優化
  • 簡化的編解碼器開發
  • 内在的大規模并行性
  • 高效執行和更新已部署硬體的能力
  • 可下載下傳的編解碼器更新

随着深度神經網絡(DNN)技術的顯著進步及其在計算機視覺和通信系統領域的廣泛應用,基于神經網絡的視訊編解碼器有可能提供所有上述期望的功能。具體來說,這類視訊編解碼器不僅可以在為其他 AI 應用開發的 AI 硬體加速器上運作,還能實作更高效的熵編碼并行化。

在這種潛力的驅動下,過去幾年神經網絡視訊編解碼器成為了研究熱門,如 2017 年谷歌提出的 Hyperprior 自編碼器、18 年上海交通大學等機構提出的端到端深度視訊壓縮(Deep Video Compression )架構以及 2020 年谷歌研究院感覺團隊提出的用于端到端優化視訊壓縮的擴充空間流(Scale-Space Flow)。這類神經視訊編解碼器展現出了令人矚目的壓縮性能,并縮小了與傳統編解碼器之間的差距。

手機上用AI實時、流暢解碼視訊,超精細畫質提升:高通研發出首個神經視訊解碼器

基于 AI 的壓縮具有絕對優勢。

但還應看到,将 AI 研究從實驗室帶到實際應用場景往往并不容易。這也意味着,神經視訊編解碼器的實際部署面臨着很大的挑戰。大多數相關研究利用具有浮點計算的壁式驅動的高端 GPU,并且神經網絡模型架構往往沒有針對快速推理進行優化。是以,對于具有固定計算、功率和溫度限制的移動裝置而言,在這類神經網絡解碼器模型上運作實時推理不切實際或不可行。

在骁龍 888 SoC 的商用智能手機上,高通 AI 研究院在基于軟硬體結合的神經網絡視訊解碼器方面實作了新的突破。

利用骁龍 888 的 CPU 和 AI 引擎,實作 30+fps 的高清視訊解碼

憑借在節能 AI 方面的專業知識以及骁龍 888 平台的強大 AI 算力,高通在商用智能手機上實作了實時幀内神經視訊編碼。高效率視訊編碼(HEVC)中的幀内編碼可以視為高端視訊編碼(AVC)的擴充,它們利用空間上的取樣預測來編碼。幀内編碼過程與幀間編碼共用部分的處理步驟包含轉換、量化、熵編碼等。為此,高通

AI 研究院在以下幾個方面進行了優化:

  • 重新設計網絡架構以降低複雜度;
  • 在 AI 推理引擎上量化和加速神經網絡;
  • 利用并行熵編碼。

基于以上幾個方面的優化,高通利用骁龍 888 移動平台上的 CPU 和 AI 引擎,開發出了一種基于軟硬體結合的神經視訊解碼器,以超過 30fps 的速度解碼了分辨率 1280×704 的高清視訊,并且無需視訊解碼單元的任何幫助。骁龍 888 內建第六代高通 AI 引擎,作為一整套處理器協作系統,這代 AI 引擎包含了重新設計的 Hexagon 780 處理器,将 AI 全方位賦能極速通信、專業影像、遊戲體驗等諸多方面。

手機上用AI實時、流暢解碼視訊,超精細畫質提升:高通研發出首個神經視訊解碼器

具有高效解碼性能的 8 比特模型

解碼器架構優化、并行熵解碼(PEC)和 AIMET 量化感覺訓練是高通 AI 研究院實作智能手機端高效神經編碼的三個重要步驟。

手機上用AI實時、流暢解碼視訊,超精細畫質提升:高通研發出首個神經視訊解碼器

第一步,基于一個 SOTA 幀對壓縮網絡,通過剪枝通道和優化網絡操作實作了解碼器架構優化,依靠骁龍 888 内置的 AI 引擎進行加速,降低了計算複雜度。

第二步,建立一種快速并行化熵解碼(fast parallel entropy decoding)算法。該算法可以利用資料級和線程級并行化,進而可以實作更高的熵編碼吞吐量。在高通的方案中,骁龍 888 的 CPU 用來處理并行熵解碼。

第三步,優化後模型的權重和激活量化至 8 比特,然後通過量化感覺訓練來恢複速率失真帶來的損失。這裡用到了高通創新中心開源的 AI 模型效率工具包(AI Model Efficiency Toolkit, AIMET),該工具于 2020 年 5 月推出并開源,是一個支援神經網絡模型訓練的進階量化和壓縮技術的庫。

通過這三個步驟,高通 AI 研究院建構了一個具有高效解碼性能的 8 比特模型(8-bit model)。

AI 解碼的效果

在 Demo 設定中,高通 AI 研究院選取了分辨率為 1280×704(接近 720p HD)的視訊,通過離線運作解碼器網絡和熵解碼生成壓縮的比特流。接着,壓縮的比特流通過骁龍 888 移動裝置(商用智能手機)上運作的并行熵解碼和解碼器網絡來處理,其中并行熵解碼在 CPU 上運作,解碼器網絡在第六代高通 AI 引擎進行加速。

手機上用AI實時、流暢解碼視訊,超精細畫質提升:高通研發出首個神經視訊解碼器

最終,高通 AI 研究院得到了一個神經解碼算法,在 1280×704 分辨率的視訊中實作了每秒 30 幀以上的解碼速度。如下為商用智能手機上神經視訊解碼的動态示範,右上角為視訊解碼速度(Speed)和同一視訊幀内的疊代次數(Loop),右邊為運作時平均比特率(Bit Rate)和視訊每幀圖像中每機關像素的平均碼流(Bits per Pixel per Frame, BPF)。

在 Demo 示範中,視訊和解碼參數被設定為高品質,并選取了一系列具有挑戰性和精細紋理的自然場景。在實作 30 幀以上解碼速度的同時,豐富的視覺結構和紋理都借助神經解碼網絡準确地保留了下來,實作了非常好的場景重制。比特率符合全幀内(all-intra)配置和選取的品質,表明這一神經視訊解碼器能夠支援高品質視訊流所需的資料吞吐量。

手機上用AI實時、流暢解碼視訊,超精細畫質提升:高通研發出首個神經視訊解碼器

由于基于 AI 的編解碼器可以生成比特流中沒有的視覺細節,是以與傳統編解碼器相比,相同或更高品質視訊的比特率應該會低一些。這也意味着視訊編解碼器将變成軟硬體結合驅動的,任何新的編解碼器都可以由 SoC 中的 CPU 和内置 AI 加速器處理,隻要它們足夠強大。

目前,這一神經視訊解碼器隻支援幀内解碼,這意味着每幀視訊都是獨立解碼,不需要像其他視訊編解碼器那樣考慮幀之間的微小變化。據悉,高通還将繼續緻力于研究移動裝置上實時運作的幀間視訊解碼。

就此項研究的意義而言,雖然在骁龍 888 SoC 上實作 30 fps + 高清視訊實時解碼依然有提升的空間,但手機端側 AI 算力和影像能力的釋放,能夠為手機使用者帶來更豐富的視訊應用以及更清晰流暢的觀看體驗。比如近期最新釋出的骁龍 888 Plus 移動平台,雖然僅僅是在骁龍 888 基礎上做出了部分更新,但其 AI 算力已經達到了驚人的 32TOPS,進一步大幅度更新;再加上高通接下來的持續深入研究,可以預見的是,AI 的高清視訊實時解碼能力将很快進一步提升。

除了手機平台之外,高通也已将 AI 處理視訊的各項能力引入了 PC、XR 和汽車等其他應用平台。比如全球首款 5G 擴充現實平台骁龍 XR2 的 AI 性能相較初代 XR 提升了 11 倍,大幅提升了視訊處理能力;PC 端的第二代骁龍 8cx 5G 計算平台中,AI 能力加持的 Spectra ISP 支援了 4K HDR 品質的視訊拍攝和背景虛化;第 4 代骁龍汽車數字座駕平台,增強了圖形圖像、計算機視覺和 AI 等功能,可以為駕乘者提供更智能和舒适的視訊服務等體驗。

是以,從更大的視角來看,利用 AI 算力進行視訊處理代表了未來的一個發展方向,也勢必會賦能更多應用場景。

繼續閱讀