在半月前結束的NBA總決賽中,百視TV作為全網唯一採用“主播陪你看NBA”模式的直播平臺,以“陪看型”賽事解說來面對內容差異化競爭。與此同時,百視TV還運用了“窄帶高清2.0”直播轉碼技術,為觀眾在賽事畫面質量上打造更進一步的體驗提升。
簡單來說,“窄帶高清”是一套以“主觀體驗最好”為優化目標的視訊編碼技術,讓我們看一張對比圖,感受一下畫質提升效果:
上圖為主播推流原畫,下圖為修復後畫面
上圖上半部分是主播推流的原畫,下半部分是使用窄帶高清2.0技術轉碼後的畫面。可以看到,經過窄帶高清2.0 技術轉碼,球衣上的數字、地板上的英文字母、籃網、邊界線等變得更加清晰。此外,畫面整體清晰度都有明顯的提升,甚至地板紋理和場外觀眾輪廓都會肉眼可見變得更加清晰。
下文將深度解讀為NBA直播賽事帶來超清畫質背後的“窄帶高清”技術原理。
1. 窄帶高清技術
阿里雲早在2015年就已經提出了“窄帶高清”的概念,在2016年正式推出窄帶高清技術品牌並進行產品化。窄帶高清代表的是一種成本與體驗相調和的視訊服務理念,是以人眼主觀感受最優為基準的視訊編碼技術。
“窄帶高清”示意圖
窄帶高清本質上是一個質量提升和壓縮的問題,主要目標是追求質量、位元速率和成本的最優均衡。在這個方向有兩個版本,即窄帶高清1.0和窄帶高清2.0(以下簡稱“窄高”)。
窄高1.0是均衡版,主要作用是如何用最少的成本去實現自適應的內容處理和編碼,達到節省位元速率的同時實現畫質的提升。所以,在窄高1.0充分利用編碼器裡的資訊幫助視訊處理,即用成本很小的前處理方法實現低成本的自適應內容處理和編碼。同時,在編碼器裡,主要是基於主觀的碼控。
窄高2.0和窄高1.0相比會有更多的、更充分的和複雜度更高的技術來保證自適應能力,包括JND自適應內容編碼、ROI編碼、SDR+、更自然的細節增強等。同時,在窄高2.0裡增加了更適用於高熱內容的修復能力,在質量提升的同時,位元速率節省也更多。
2. 賽事直播的挑戰
當前,窄帶高清技術在長視訊、短視訊、泛娛樂、線上教育、電商直播等場景有著廣泛應用。
相較於長視訊和電商直播等場景,NBA籃球賽事直播由於畫面切換快、運動性很強,往往需要高位元速率流。然而,高位元速率的直播尤其是NBA比賽直播在跨國傳輸中可能會受網路質量波動,造成音視訊卡頓及延遲。
為了保證直播的穩定性和基於播放端的絲滑觀賽體驗,百視TV選擇了較小位元速率的源流。於是,面臨真實場景下的多個挑戰:
挑戰 1:低碼流導致賽場畫面模糊失真
相比於高位元速率流的畫面畫質,低位元速率流會有較明顯的壓縮失真、細節模糊和弱紋理丟失。對於籃球賽事場景來說,就會造成如球星球衣上的文字模糊、籃網模糊、邊界線及地面上文字邊緣毛刺多等諸多畫質現象,導致觀看體驗不佳。
挑戰 2:劇烈運動畫面的“去交錯處理”殘留
除了低位元速率流帶來的壓縮失真細節模糊外,體育比賽場景還有一個特有的問題,即原始訊號一般是隔行掃描採集的,在網際網路傳輸時首先需要做“去交錯處理”,但是對於劇烈運動畫面,很難保證有完美的去交錯處理,通常會有一些“交錯”沒有去除乾淨,形成一些殘留噪聲。
挑戰 3:數次轉碼後的畫面損失
此外,基於企業客戶當前業務邏輯,直播視訊從拍攝到終端使用者,經歷了數次轉碼,每一次轉碼,都會帶來一定的壓縮失真和畫質損失。
為了更好地平衡直播流暢性、穩定性和高清畫質體驗,百視TV在NBA決賽轉播過程中先選擇相對較低的位元速率實現穩定的跨國傳輸,將源流拉到國內後再做修復,在此過程中,百視TV便使用了阿里雲視訊雲的“窄帶高清2.0”技術。
3. 針對體育賽事的解決方案
針對體育賽事視訊,如果簡單地使用阿里雲線上常規窄帶高清轉碼,存在兩大弊端:
第一,難以修復體育賽事視訊中的特有噪聲,同時還有可能把一些噪聲放大,從而影響觀看體驗。
第二,常規窄帶高清無法對籃球場景的特有元素比如球衣上數字、籃網、邊界線等實現完美修復。
為此,窄帶高清2.0針對體育賽事場景,對已有的原子演算法能力進行了優化組合,同時部分演算法針對籃球賽場景進行了定向調優。
最終採用的轉碼流程如下圖所示:
直播轉碼演算法流程
4. 關鍵技術解析
4.1 視訊處理
極致修復生成
前面已提到我們輸入源本身畫質不高,同時還經過了多次轉碼,因此第一個處理步驟為修復生成,其主要目的是修復視訊中的多種瑕疵,比如壓縮塊效應、壓縮偽影、邊緣毛刺、去交錯後殘留噪聲、模糊等,同時生成一些因壓縮丟失的細節紋理。
學術界有不少利用深度學習去專門做去壓縮失真、專門做去模糊的研究工作。比如早期做圖片去壓縮的ARCNN[1],做視訊去壓縮的MFQE[2],早期端到端去模糊演算法DeepDeblur[3]。
比較新的方法有:自帶壓縮程度估計的圖片去壓縮演算法FBCNN[4],基於可形變卷積的視訊去壓縮演算法STDF[5],無需非線性啟用的NAFNet[6]等等 。
這些演算法大部分都是針對單一任務構造資料集和設計網路結構進行模型訓練,得到的模型只能處理單一退化型別,但是在這次百視TV NBA比賽直播轉碼中,我們要處理的視訊同時包含多種“退化降質”,除了典型的視訊壓縮,還有相機失焦模糊/運動模糊,去交錯後殘留噪聲等。
圖片去壓縮演算法ARCNN的網路結構
視訊去壓縮演算法MFQE的網路結構
端到端去模糊演算法DeepDeblur的網路結構
為了解決上述諸多“退化”,一種方式是針對每一種退化訓練一個模型,然後依次執行這些模型。這種方式的優點是每個模型的任務變得比較簡單,方便構造資料集和訓練,但在實際使用時效果並不好,因為其他退化會帶來很大的干擾,導致演算法效能急劇下降。
於是,我們採用了第二種方式,即用一個模型來處理多種退化。第二種方式的好處是可以取得相對更好的處理效果,難點在於訓練資料的構造比較複雜,對網路容量的要求較高,需要同時兼顧多種退化方式,這其中還可以有多種排列組合。
在訓練資料構造方面,我們借鑑了影像超分領域的BSRGAN[7]/Real-ESRGAN[8]和視訊超分領域的RealBasicVSR[9]中的資料退化方式,同時新增了一些體育賽事直播場景特有的退化模式來模擬場地邊界線處的鋸齒、白邊等瑕疵。
在網路結構方面,為了減少計算量,我們採用了單張圖片處理方式,可以採用經典的ESRGAN[10]模型或常見的UNet[12]結構,亦或ResSR[13]提到的VGG-Style結構。
在損失函式方面,考慮到需要修復因各種退化丟失的細節,除了使用常見的L1/L2 loss外,還使用了percectual loss 和 GAN loss。
BSRGAN提出的多種影像退化方式
基於GAN的生成網路的一個主要問題是魯棒性和時域連續性不夠好。魯棒性問題是指能否穩定地生成比較自然的紋理,比如有些GAN模型有時生成出來的細節紋理比較奇怪不自然,尤其是當在人臉區域生成一些奇怪紋理時會比較恐怖。
時域連續性問題是指相鄰幀生成出來的紋理是否保持一致,如果不一致則會產生閃爍現象,降低觀看體驗。
為了解決魯棒性問題,尤其是人臉區域魯棒性,我們借鑑了LDL[14]中通過檢測fine-scale details區域並加以額外懲罰來提升fine-scale details生成效果的思想,通過人臉區域分割得到人臉區域,對人臉區域生成效果施加額外的懲罰來提升人臉區域細節生成的魯棒性。
人臉區域分割
針對時域連續性問題,我們採用了TCRnet網路來作為額外監督訊號來提升。TCRnet網路原本用於超分任務,通過簡單改造可用於修復任務,該網路用IRRO偏移迭代修正模組結合可變形卷積,來提高運動補償的精度,同時利用ConvLSTM進行時序資訊的補償防止造成資訊誤差,從而提升時域連續性。
TRCNet網路結構
下面兩張圖對比了源流和修復後效果。
從第一張對比圖可以看出,修復後地板上的字母GARDEN的邊緣變得非常清晰銳利,邊界線、球員輪廓及球衣上數字22也變得更清晰,此外地板紋理也得到修復。
第二張對比圖也能看到場外觀眾輪廓和衣服上線條變得更清晰,此外原本扭曲成鋸齒狀的地板邊界線也變直了。
模型加速
為了獲得極致修復生成效果,基於深度學習的AI演算法通常是首選演算法。但深度學習演算法的一個問題是計算量大,而對於視訊修復生成這種low level視覺任務來說,計算量比普通high level視覺任務還要大很多。
一方面,視訊修復生成模型的輸入通常是視訊原解析度,而像檢測分類這種high level處理模型的輸入解析度,可以比原解析度小很多,且基本不影響檢測分類效能。而同樣的網路結構,輸入解析度越大計算量越大,所以視訊修復模型的計算量要大很多。
另一方面,視訊修復生成模型的輸出是和輸入視訊同解析度的視訊幀,這勢必使得模型後半部分的計算量也會很大,因為後半部分也需要在比較高的解析度特徵圖上做計算,不像檢測分類high level任務只輸出目標框或類別這種語義資訊,模型後半部分雖然通道數多但因為特徵圖解析度小所以總體計算量小很多。
此外,對於體育賽事直播,視訊幀率通常都是50fps,藍光檔位的解析度通常是1080p,也就是深度學習模型在1080p輸入下需要至少跑到50fps,這對深度學習演算法是非常大的挑戰。
針對這一情況,我們從多個維度進行模型推理加速。
首先,對深度學習模型做壓縮,比如通過神經架構搜尋(Neural Architecture Search,NAS)或剪枝降低模型大小,為了彌補模型變小之後的效能損失,需要對壓縮後的模型,進行知識蒸餾訓練提升小模型的效能,此外還可以通過8bit整型量化或者FP16半精度來進一步降低計算量。
其次,可以通過選擇合適的硬體和推理框架來獲得極致的速度提升,比如使用高效能GPU卡和配套的推理框架實現最優配置。為了進一步提升推理速度,還可以使用多GPU卡平行計算。
通過上述多種方式加速,在1080p解析度輸入下,處理速度從8fps提升到67fps,完全滿足50fps直播轉碼需求。
深度學習演算法加速分類
清晰度增強
為了提升觀看體驗,在上述極致修復生成基礎上,進一步做了清晰度增強處理。
最簡單的清晰度增強演算法就是做銳化處理,比如ffmpeg自帶的unsharp和cas就是兩種簡單的銳化演算法。unsharp和cas這兩種方法都是基於USM(UnSharp Mask)框架設計的,USM框架可以用如下公式[15]來描述:
其中,original待銳化的影像,blurred是original的模糊版本,比如高斯模糊後的版本,這也是unsharp名字的由來。(original - blurred)表徵的是原始影像的細節部分,乘以amount之後疊加到原圖,即可獲得細節更銳利看起來更清晰的圖sharpened。
除了銳化,還可以通過調節對比度、亮度、色彩等方法來提升清晰度。在百視TV籃球賽直播中,我們使用自研的銳化、亮度、對比度和色彩增強演算法來實現清晰度的進一步提升。
其中,相比開源銳化演算法如unsharp,阿里雲視訊雲自研銳化演算法具有如下特點:
• 更精細的影像紋理細節提取方式:能提取不同尺寸,不同特徵的影像紋理結構,增強效果更優;
• 通過對影像內容紋理結構分析,根據區域紋理複雜度實現區域性區域自適應增強;
• 與編碼結合,根據編碼器的編碼資訊反饋,來自適應調整增強策略。
細節增強(銳化)演算法流程
4.2 位元速率分配
JND
通過前面的極致修復生成和清晰度增強,細節資訊得到極大增加,同時我們希望經過壓縮編碼後能儘量保留這些資訊。我們知道,傳統的視訊編碼是基於資訊理論的,所以它在一直做時域冗餘、空域冗餘、統計冗餘等等冗餘的去除,但是對視覺冗餘的挖掘是遠遠不夠的。下圖取自於王海強博士的一篇paper,它的思路是傳統做RDO ,是一個連續的凸曲線,但在人眼中它是個階梯形的,那我們只要找到這個階梯就可以省下位元速率,同時不影響主觀質量。JND(Just Noticeable Difference)正是基於這個思路對視覺冗餘進行挖掘。
位元率與感知失真關係
阿里雲視訊雲自研的JND演算法從空域和時域兩個維度,對視覺冗餘進行充分挖掘,實現在通用場景下,同等主觀質量位元速率節省30%以上。
有了該自研JND演算法,使得通過極致修復生成和清晰度增強獲得的細節資訊經過較低位元速率編碼後,仍然得以保留。
JND演算法流程
ROI
前面所述的JND演算法通過對視覺冗餘的挖掘能節省30%以上的位元速率,但這種位元速率節省是完全基於low level統計資訊來獲得的,並沒有考慮high level語義資訊。
針對體育賽事場景中觀眾們很關注的人物近景特寫鏡頭,我們希望能夠讓人物特寫更清晰地呈現在觀眾面前。除了通過極致修復生成獲得清晰人物特寫外,還要通過某種方法使得編碼後仍然保持清晰。在此,需要用到我們自研的ROI編碼技術。
ROI(Region Of Interest)編碼是一項基於感興趣區域的視訊編碼技術,簡單來說就是給影像中感興趣區域分配更多位元速率已提升畫質,對其他不感興趣區域分配較少位元速率,可實現總體位元速率基本不變的情況下提升視訊整體觀看體驗。
ROI編碼的主要難點在於:
1)要有成本足夠低速度足夠快的ROI演算法,以滿足高解析度高幀率體育賽事直播要求;
2)如何基於ROI進行碼控決策,使得ROI區域主觀質量提升,非ROI區域主觀不下降,同時保持時域連續不閃爍。
在低成本ROI計算方面,我們自研了自適應決策的人臉檢測跟蹤演算法,即大部分時間只需要做計算量極小的人臉跟蹤,只有少部分時間需要做人臉檢測,從而實現超低成本和快速ROI獲取,同時保持很高的精度。
在碼控決策上,一方面與編碼器結合,在主觀和客觀之間取得均衡,保持時域一致;另一方面與JND結合,在ROI和非ROI之間取得主觀均衡,從而實現場景、質量自適應的位元速率分配。
ROI演算法流程
4.3 編碼核心
針對體育賽事直播場景,在視訊編碼核心方面,我們做了主觀快劃分優化和塊效應優化,以提升壓縮後視訊的主觀清晰度,降低塊效應,從而提升整體觀看體驗。
主觀塊劃分
編碼器的塊劃分模式決策是根據最佳率失真模型RDO (Rate Distortion Optimization,率失真優化)來決策:
其中D表示失真,R表示編碼當前模式所需的bit數。
在塊劃分決策時,有時會出現最終決策為大塊,但從主觀上看劃分為小塊的結果更好的情況。這是因為大塊模式雖然失真D更大,但R更小,導致編碼器最終決策為大塊劃分。
針對這種情況,我們修改了不同塊劃分模式的失真表示式,針對不同大小的塊增加不同的權重係數,使得最終劃分的結果與主觀更一致。
優化前 優化後
優化前塊劃分 優化後塊劃分
塊效應優化
視訊編碼的率失真理論與人眼感受比較貼切,按照率失真理論構建的編碼器也是對人眼主觀質量的優化,唯一的問題在塊效應,因為人眼會放大直線,對塊效應很敏感。
我們觀察到,在基於客觀的RDO(Rate Distortion Optimization,率失真優化),編碼部分模式會放大塊效應,而265協議中的deblock在該場景失效。同時我們發現在平坦區域場景,模糊加噪聲的效果要優於清晰塊效應。
基於以上觀察,我們採用瞭如下塊效應優化策略以儘量減少塊效應,提升觀看體驗。
塊效應優化演算法流程
下圖是我們做塊效應優化前後的對比圖。可以看出,右邊做了優化的結果中塊效應明顯降低。
優化前 優化後
4.4 視訊效果展示
通過前述視訊處理、位元速率分配優化和編碼核心優化,最終實現畫質極致修復和1080p下50fps直播轉碼,為觀眾提供流暢、穩定和高清的觀看體驗。
https://www.youku.com/video/X...
左為源流效果,右為修復後效果
由此可見,通過與百視TV的NBA賽事合作,充分體現了“窄帶高清2.0”技術在籃球賽事直播中對視覺體驗提升的重要價值,其帶來同等畫質下更省流、同等頻寬下更高清的商業意義與觀看體感平衡。
未來,窄帶高清技術也將持續升級,通過演算法能力進一步提升修復生成效果、降低位元速率和優化成本。於此同時,該項技術也將應用於更多的頂級賽事活動,在成本優化調和之上,實現視效體驗的全新升級。
參考文獻:
[1] ARCNN:Chao Dong, et al., Compression Artifacts Reduction by a Deep Convolutional Network, ICCV2015
[2] MFQE:Ren Yang, et al., Multi-Frame Quality Enhancement for Compressed Video, CVPR2018
[3] DeepDeblur:Seungjun Nah, et al., Deep Multi-scale Convolutional Neural Network for Dynamic Scene Deblurring, CVPR2017
[4] FBCNN:Towards Flexible Blind JPEG Artifacts Removal, ICCV2021
[5] STDF:Jianing Deng, et al., Spatio-Temporal Deformable Convolution for Compressed Video Quality Enhancement, AAAI2020
[6] NAFNet:Liangyu Chen, et al., Simple Baselines for Image Restoration,https://arxiv.org/abs/2204.04676
[7] BSRGAN: Kai Zhang, et al., Designing a Practical Degradation Model for Deep Blind Image Super-Resolution, CVPR2021
[8] Real-ESRGAN: Xintao Wang, et al., Real-ESRGAN: Training Real-World Blind Super-Resolution with Pure Synthetic Data, ICCVW2021
[9] RealBasicVSR: Kelvin C.K. Chan, et al., Investigating Tradeoffs in Real-World Video Super-Resolution, CVPR2022
[10] ESRGAN: Xintao Wang, et al., ESRGAN: Enhanced Super-Resolution Generative Adversarial Networks, ECCVW2018
[11] ESRGAN: Xintao Wang, et al., ESRGAN: Enhanced Super-Resolution Generative Adversarial Networks, ECCVW2018
[12] UNet: Olaf Ronneberger, et al., U-Net: Convolutional Networks for Biomedical Image Segmentation, MICCAI2015
[13] RepSR: Xintao Wang, et al., RepSR: Training Efficient VGG-style Super-Resolution Networks with Structural Re-Parameterization and Batch Normalization, https://arxiv.org/abs/2205.05671
[14] LDL:Jie Liang, et al., Details or Artifacts: A Locally Discriminative Learning Approach to Realistic Image Super-Resolution, CVPR2022
[15] USM:https://en.wikipedia.org/wiki...
「視訊雲技術」你最值得關注的音視訊技術公眾號,每週推送來自阿里雲一線的實踐技術文章,在這裡與音視訊領域一流工程師交流切磋。公眾號後臺回覆【技術】可加入阿里雲視訊雲產品技術交流群,和業內大咖一起探討音視訊技術,獲取更多行業最新資訊。