從技術全景到場景實戰,透析阿里雲影片雲「窄帶高清」的演進突破

隨著5G時代的到來,互聯網短影片、電影電視劇、電商直播、遊戲直播、影片會議等音影片業務呈井噴式發展。

作為通用雲端轉碼平台,阿里雲影片雲的窄帶高清需要處理海量、不同品質的影片。對於中高品質的影片,現有的窄帶高清1.0就能提供滿意的轉碼效果,並帶來達30%的頻寬成本降低;而對於有明顯壓縮失真和成像雜訊的低品質影片,需要使用性能更好的窄帶高清2.0進行去壓縮失真、去噪和增強處理從而得到更好的觀看體驗。

在2022稀土開發者大會上,阿里雲智慧影片雲技術專家周明才以《阿里雲窄帶高清的演進突破與場景實戰》為主題,深度分享阿里雲影片雲在窄帶高清上的研發思考與實踐。

01 窄帶高清的源起

談及窄帶高清之前,先來聊聊普通的雲端轉碼流程。轉碼本質上是一個先解碼再編碼的過程。從下圖可以看到,普通雲端轉碼是在用戶端先形成一個原始影片,經過編碼之後以影片流的形式傳到服務端,在服務端解碼之後做轉碼,然後再編碼通過CDN(內容分發網路)分發出去,此時普通轉碼主要的功能就是做影片格式的統一,並在一定程度上降低碼率。

未標題-1-05.png

窄帶高清是什麼?它與普通轉碼的主要區別是什麼?通過窄帶高清的字面意思可以理解,「窄帶」是指讓影片經過窄帶高清轉碼之後,對頻寬的需求變得更小。同時,「高清」是指經過轉碼後的畫質仍然能夠保持高清、豐富的視覺體驗。

上圖的下半部分也就是窄帶高清的流程,與普通轉碼流程不同點在於,在雲端做了解碼之後,窄帶高清還會對影片品質做增強處理,以及利用編碼資訊來輔助提升影片品質。經過品質提升後,再用針對主觀品質做過優化的編碼器進行編碼,最後進行分發。

總結來說,窄帶高清本質上解決的是品質提升和壓縮的問題,其主要目標是追求品質、碼率和成本的最優均衡。

阿里雲早在2015年就已經提出了窄帶高清這一概念。在2016年正式推出窄帶高清這一技術品牌並且進行了產品化。

未標題-1-06.png

今年,阿里雲推出了窄帶高清2.0極致修復生成版本。相較於先前版本,最大特點是能生成細節紋理做到極致修復。

窄帶高清全景圖

窄帶高清在做自適應參數決策時主要考慮三個維度:業務場景、影片熱度、影片內容。

由於業務場景的不同,比如電商直播、遊戲直播、賽事直播,所需要的影片增強和編碼參數不一樣;對於一些高熱內容,如:在手淘場景中可以用窄帶高清2.0啟動二次轉碼來實現品質的進一步提升和碼率的節省;在影片內容維度,會針對當前的影片做一些High-level和 Low-level的分析,High-level包含語義的分析,特別是ROI的檢測,Low-level包括影片壓縮程度、模糊程度、雜訊程度的影片品質分析。

未標題-1-07.png

根據以上這些維度的分析,可以得到自適應參數的決策結果。根據此結果,窄帶高清再去做相應的影片修復和影片增強。具體來說,影片修復包括強壓縮失真、降噪等,影片增強包含細節增強、色彩增強、對比度增強等。

02 影片內容分析

ROI

ROI的主要目的是在碼率受限或碼率一致的情況下,將碼率儘可能分配到人眼更關注的區域,比如在電影電視劇中,觀眾會更多關注主角的臉。

基於ROI的處理和壓縮,有以下兩個難點:一是如何得到低成本的ROI演算法,二是如何基於ROI進行碼控決策,例如:保證ROI區域主觀品質提升的同時,非ROI區域的主觀品質不會明顯下降;同時做到時域連續、不閃爍。

未標題-1-09.png

在低成本ROI計算方面,阿里雲自研了自適應決策的人臉檢測跟蹤演算法,這是一款低成本、高精度的演算法。在極大部分時間只需要做計算量極小的人臉跟蹤,只有少部分時間做人臉檢測,從而在保證高精度的情況下,實現超低成本和快速ROI獲取。

從下圖表格裡面可以看到,阿里雲自研演算法相比開源人臉檢測演算法,精度和召回基本上沒有損失,同時複雜度和計算耗時有明顯數量級的下降。

在有了ROI演算法之後,需要對場景、影片品質的自適應碼率分配進行決策。針對此難題,主要考慮與編碼器結合,在主觀和客觀之間取得均衡,同時保證時域的一致。

未標題-1-10.png

JND

傳統影片壓縮方法主要基於資訊理論,從預測結構的角度減小時域冗餘、空間冗餘、統計冗餘,但這對視覺冗餘挖掘是遠遠不夠的。

未標題-1-11.png

在JND演算法里,主要採用了兩個演算法,一個是空域JND演算法,一個是時域JND演算法,拿到這些JND演算法後,我們再基於MOS的自適應碼控演算法,對QP做自適應的分配,最終實現在通用場景及主觀情況下,碼率可以節省30%以上。

未標題-1-12.png

03 影片修復增強

細節增強

講到影片修復增強,提及最多的就是細節增強部分,效果確實會比較明顯。

通常的細節增強基於UnSharp Mask的框架。阿里雲影片雲自研的細節增強演算法,有以下三個特點:第一是有更精細的影像紋理細節提取方式,能提取不同尺寸,不同特徵的影像紋理結構,增強效果更優;第二,演算法可以通過對影像內容紋理結構分析,根據區域紋理複雜度實現局部區域自適應增強;第三個特點是演算法可以和與編碼結合,根據編碼器的編碼資訊回饋來自適應調整增強策略。

未標題-1-15.png

色彩增強

通常採集的影片素材,因為採集的設備或者光線亮度的原因,導致素材顏色可能看起來會比較暗淡。特別是在短影片場景,這類影片會失去視覺吸引力,因此需要色彩增強。

未標題-1-16.png

色彩增強存在哪些難點問題?具體如何做色彩增強?

像Ffmpeg裡面有EQ filter,EQ filter會用UV通道去做色彩增強。而在我們的自研演算法里,實際上是在RGB顏色空間去做增強,即會根據當前顏色點的飽和度,去做一些局部的自適應。同時,也會根據當前畫面整體的情況,做一個整體的自適應。

在膚色保護這塊,因為傳統的色彩增強完之後,人臉區域會泛紅,主觀視覺上不自然。為了解決這一問題,我們採用了膚色保護的方法,對膚色區域做一個額外的保護。

這是一個色彩增強前跟增強後的效果對比。可以看到增強後的綠色的蔬菜、肉,整個的顏色看著會更飽滿,對於美食類影片來講更能夠激發起觀眾的食慾。

未標題-1-17.png

對比度增強

在對比度增強中,使用了經典的CLAHE演算法,其思路是對一個影片幀做分塊,通常分成8×8個分塊,在每一塊統計直方圖。然後統計直方圖的時候,對直方圖做一個Clip,就是所謂的對比度受限的直方圖均衡,這主要是克服過度放大雜訊的問題。基於CLAHE的影片對比度增強其實有一個難點,就是時域閃爍問題。這在學術界也是一個較難的問題,到目前為止,還沒有得到非常徹底的解決。

未標題-1-18.png

降噪

降噪在ffmpeg裡面有很多演算法,比如像BM3D、BM4D、 NLM,這些演算法的去噪效果好,但是複雜度非常高,會導致速度慢成本高,可能還需要配合雜訊估計模組來一起使用。

另外還有一些相對均衡的演算法,速度比較快,但是效果不強。如果想要提升它的去噪強度,通常會引入一些偽影或細節丟失的問題。

未標題-1-19.png

基於這些調研,我們自研的降噪演算法採用基於多解析度分解在上面做濾波框架。首先是對輸入影像會做小波分解,得到高頻跟低頻資訊。對於高頻做軟閾值處理。對於低頻採用雙邊濾波降噪。經過這種濾波或者軟閾值之後,再重新合成回去,就可以達到去噪目的。演算法的核心難點在於如何去做加速,使得成本和運算速度能夠滿足轉碼要求,尤其是實時轉碼場景,對速度要求是非常高的。

加速

演算法團隊對於小波變換加速做了包括整形化很多的嘗試,總是存在一些累積誤差。所以我們最後採用了浮點型加速方式,用avx2浮點加速能夠達到大概三倍的提升。

另外是雙邊濾波這部分的加速,傳統的雙邊濾波基於鄰域像素的操作。這種基於鄰域的操作其實非常慢的。因此,我們採用了RBF這個快速演算法,把二維的濾波分解成一維的,同時採用遞歸的方式去從左到右,從右到左,從上到下,從下到上,這樣的一維操作,就可以實現類似於原始雙邊濾波效果。通過採用RBF這個快速演算法,我們可以獲得大概13倍的加速。此外我們還做了這種AVX2彙編的優化,這塊能夠額外加速十倍左右。

未標題-1-21.png

上圖是SDR+的整體效果圖,在經過SDR+的處理之後,畫面整體的對比度、亮度、清晰度會有很大的提升,以上這些是針對影片增強做的一些工作。

CDEF去振鈴

首先是CDEF去振鈴,CDEF本身是源自於AV 1的一個技術,在CDEF處理之前,強邊緣附近會有很多的毛刺和振鈴。經過CDEF處理之後,畫面中的雜訊得到很大的剔除。

CDEF演算法的核心步驟,其實是一個平滑濾波的過程,只不過它的平滑濾波的權重、偏差都做了一些特殊的處理。特別是它的濾波權重,跟當前像素點所在的8×8像素區域的主要方向是有關係,也就是圖中左下角這裡展示的,它會去做一個最優方向的一個搜索。搜索完了之後,根據主方向來確定它的這個濾波器抽頭的方向和權重。此外,CDEF有兩部分的權重,一個是主方向的WP,另一個是輔助方向WS。然後對於鄰域點和當前點的灰度偏差做截斷,這可以避免過平滑。

未標題-1-23.png

去壓縮失真

除了用CDEF基於傳統的影像處理演算法做去振鈴之外,還做了基於深度學習的去壓縮失真的演算法。這個演算法是基於多幀的方案,更利於幀間連續性,不易出現幀間閃爍。「窄帶高清」演算法分成兩大塊:一個是品質檢測模組,一個是去壓縮模組。品質檢測模組可以識別不同品質影片源的壓縮程度,然後輸出QP MAP作為壓縮強度衡量指標。另一個是去壓縮模組,輸入多幀影片和對應幀的QP MAP,利用QP MAP進行自適應去壓縮。

未標題-1-24.png

極致修復生成

極致修復生成主要是針對畫質比較差的場景,去除較強的壓縮失真的同時,生成一些因壓縮而丟失的細節。在極致修復生成研發中,有以下幾個要點:一是構建訓練數據(在訓練數據構建時,參照了Real-ESRGAN的二階退化思路);二是對比較敏感的人臉區域,保證人臉生成穩定性;三是做模型壓縮時,使得模型計算量低的同時保持良好的效果;四是模型部署。

未標題-1-25.png

極致修復的場景實戰

在六月份NBA決賽直播時,百視TV希望通過使用我們的窄帶高清2.0修復生成技術,來提升他們賽事直播的品質。如中間這個截圖所示,截圖的上半部分是主播直接推過來的影片效果,下半部分是經過極致修復生成之後的效果。

未標題-1-29.png

可以看到修復之後,Youtube這幾個字母邊緣會更清晰、乾淨,不再毛躁。其他籃球場景相關的,比如球員身後的數字及球員的身體輪廓,也會變得特別清晰。另外也有些生成效果,比如地板上有生成一些紋理,使整體的賽事觀感大大提升。

除了自研的演算法,阿里雲也有一些高校合作項目,字幕修復就是其中一個合作項目的成果。可以看圖中右下角實際修復字幕例子。該字幕取自一個老片MV,上面一行是原始MV里的字幕,可以看到「話」字的言字旁幾條橫筆畫會有一些粘連,此外文字邊緣還有很多的雜訊。下面一行是經過字幕修復之後的效果,能夠看到會變得很乾凈、清晰。

未標題-1-30.png

未來,窄帶高清技術也將持續升級,通過演算法能力進一步提升修復生成效果、降低碼率和優化成本,通過打通前後端的處理,以及探索落地更多沉浸式場景,如:針對VR領域的窄帶高清。與此同時,該項技術也將應用於更多的頂級賽事活動,在成本優化調和之上,實現視效體驗的全新升級。


「影片雲技術」你最值得關注的音影片技術公眾號,每周推送來自阿里雲一線的實踐技術文章,在這裡與音影片領域一流工程師交流切磋。公眾號後台回復【技術】可加入阿里雲影片雲產品技術交流群,和業內大咖一起探討音影片技術,獲取更多行業最新資訊。