B站畫質補完計劃:視頻超分讓像素細膩生動
1 前言
為了給用戶提供更清晰的畫質體驗,B站自研的超分辨率算法已經在站內廣泛應用,支持了如《賽馬娘》、《流浪地球2》、《權力的游戲》、英雄聯盟S賽賽事直播等知名番劇、電影電視劇以及重要游戲賽事直播的 4K 視頻流生產。
2 超分算法的應用背景
2.1 不同分辨率視頻的畫質差異
隨著終端顯示技術的快速發(fā)展,4K 規(guī)格的終端顯示設備已經逐漸開始普及,用戶對于 4K 清晰度視頻的觀看需求也呈現出不斷增長的趨勢。然而,由于制作年代久遠、拍攝設備受限等原因,流媒體平臺上大量視頻片源還是以 1080P、720P 的規(guī)格存在,無法滿足用戶在高規(guī)格顯示設備上觀看 4K 清晰度視頻的需求。
那么,1080P 視頻和 4K 視頻的畫面質量差距有多大呢?可以參考圖1中的視頻畫面對比,由于 1080P 視頻畫面里沒有足夠多的有效像素去描述草地的紋理、圓柱的線條,因此其呈現的草地紋理細節(jié)遠沒有 4K 視頻畫面中豐富,圓柱線條也遠沒有 4K 視頻畫面中流暢。
為了滿足不斷增長的 4K 清晰度視頻的觀看需求,可以將低分辨率視頻增強提升為高分辨率視頻,所使用的技術稱為超分辨率( Super Resolution )。
圖1. 1080P 視頻和 4K 視頻的畫面質量對比
2.2 傳統插值超分算法的局限
各類超分辨率算法中,在實際應用層面覆蓋范圍最廣的是傳統插值超分算法。傳統插值超分算法(最近鄰差值、雙線性插值、雙三次插值等等)的原理是利用原始畫面中的部分像素作為原始信息并根據某些規(guī)則對新像素的像素值進行預測。傳統插值超分算法解決的問題是可以將原始視頻的分辨率高效地上采樣到任意規(guī)格,以適應各種高規(guī)格顯示設備的實際播放尺寸。
但是,傳統插值超分算法缺乏足夠的非線性擬合能力來復現復雜的圖像特征,無法真正還原缺失的紋理細節(jié)。如圖2所示,1080P 原始視頻畫面中缺失的草地細節(jié)在經過傳統插值超分算法處理后并未被恢復。因此,其主要作用僅限于調整視頻播放的尺寸,并不能改善原始視頻的畫面質量。
2.3 深度學習超分算法的應用價值
由于插值超分算法在提升分辨率的同時并不能真正還原缺失的紋理細節(jié),因此如果想要在高分辨率屏幕上獲得更優(yōu)質的觀看體驗,就需要一種在提升分辨率的同時又能擬合復雜紋理細節(jié)的超分算法,基于深度學習的超分算法在這方面展現了出色的效果。如圖3所示,低分辨率圖像塊在經過插值超分算法處理后線條邊緣仍存在一定程度的偽影,且整體觀感較為模糊。對比之下,經過深度學習超分算法處理后的高分辨率圖像塊顯然減少了線條附近的偽影,線條邊緣更加連續(xù)。
圖3. 插值算法與超分算法的處理結果對比
2.4 超分算法的難點及基于深度學習的解決方案
超分辨率算法的原理如圖4所示,低分辨率像素塊在像素域擴充后得到高分辨率像素塊,高分辨率像素塊中存在諸多未知像素值的像素,而超分辨率算法的作用就是預測出合理的像素值以提升高分辨率像素塊的畫面質量。從原理上看,超分算法的難點在于這是一個不適定問題,其潛在的解空間可能很大,很難找出唯一的最優(yōu)解。
因此,對于基于深度學習的超分算法的落地而言,需要解決兩個最關鍵的問題:1. 如何給不同類型的輸入像素塊提供一個合適的優(yōu)化方向?2. 如何設計一個合理的算法鏈路實現對輸入像素塊的優(yōu)化?
圖4. 超分算法的基本原理
針對第一個問題,我們對海量視頻做了基礎畫質特征分析,并根據畫質分析的結果對視頻內容進行分類,給不同類別的視頻內容設定不同的優(yōu)化方向,并提供了業(yè)務上落地的具體案例,這部分內容將在第三章節(jié)進行詳細介紹。
對于第二個問題,我們自研了一套超分算法,完成了從數據模擬、模型結構設計到損失函數定義的整套技術鏈路研發(fā),這部分內容將在第四章節(jié)進行詳細介紹。
3 基礎畫質特征及畫質優(yōu)化方向分析
在本章節(jié),我們將對站內海量視頻進行了基礎畫質特征分析,發(fā)現不同內容的視頻在基礎畫質特征上有明顯差異。根據這種差異我們給不同內容的視頻提供了專項的優(yōu)化方向,并提供了業(yè)務上落地的案例。
3.1 基礎畫質特征分析
在實際應用超分算法提升視頻清晰度的過程中,需要考慮到不同內容的視頻在基礎畫質特征上的差異,進而可能導致優(yōu)化方向的不同。如圖5所示,我們對不同內容的視頻畫面做了離散余弦變換 ( DCT 變換),并在頻域上觀測其強度值的分布。需要說明的是,DCT 變換后的頻域圖的低頻部分集中在左上角,高頻部分集中在右下角。我們發(fā)現動漫、游戲和真實世界視頻在頻域上的響應有明顯差距。
動漫視頻畫面的頻域響應集中在低頻區(qū)域,意味著動漫視頻畫面在像素域上主要由大面積的純色區(qū)域以及粗粒度的線條構成。
游戲視頻畫面增加了高頻部分的響應,但響應主要還是集中在低頻區(qū)域,意味著游戲類視頻畫面和動漫視頻在像素域上擁有相似的特點,但在此基礎上增加了一些有高頻屬性的復雜紋理、細粒度線條結構。
真實世界視頻畫面的頻域響應范圍最廣,在高頻部分的響應最強,意味著這類視頻在像素域上的紋理結構最為復雜,有著細膩的紋理細節(jié),而這點在諸如動物毛發(fā)、皮膚表面的構造上也有所體現。
圖5. 視頻畫面頻域變換
3.2 畫質優(yōu)化方向分析及落地案例展示
如圖6所示,根據對海量視頻進行基礎畫質特征分析的結果,考慮到動漫、游戲和真實世界視頻在畫質基礎特征上呈現的不同點,我們給各類視頻設計了特定的優(yōu)化方向,并提供了業(yè)務上落地的具體案例進行展示。
圖6. 線上超分業(yè)務落地邏輯
3.2.1 動漫視頻
優(yōu)化方向:對于動漫視頻,其畫面的構成元素大多是純色區(qū)域、粗粒度的線條結構,缺乏復雜、細膩的紋理結構。因此,針對動漫視頻的重點優(yōu)化方向是提升線條的銳利程度,去除大面積色塊中的畫面噪聲。
案例一:由圖7可知,《賽馬娘》視頻畫面中人物面部線條、服飾線條在經過動漫超分模型處理后變得更加連續(xù)、銳利,大面積純色區(qū)域中的畫面噪聲得到去除,整體清晰度得到大幅提升。
案例二:同樣地,圖8《知曉天空之藍的人啊》視頻畫面中架子鼓、人物面部的輪廓線條在經過動漫超分模型的優(yōu)化后變得更加平滑、銳利。
3.2.2 游戲視頻
優(yōu)化方向:對于游戲視頻,其畫面的構成元素與動漫視頻相近,但在此基礎上又有相對復雜的紋理結構。因此,對游戲視頻畫面的優(yōu)化需要兼顧線條銳利程度的提升、噪聲去除,以及對紋理結構的強化。
案例一:由圖9可知,經過游戲超分模型處理,王者榮耀視頻中英雄輪廓變得更加連續(xù),畫面噪聲被成功去除,與此同時,草地、樹木等較為復雜的紋理細節(jié)也得到了恢復,畫面整體清晰度得到大幅提升。
案例二:由圖10可知,經過游戲超分模型處理,爐石傳說視頻中藍色寶石的觀感從模糊變得清晰,同時文字邊緣的鋸齒得到了有效消除,呈現出更為連續(xù)、銳利的外觀。
圖9. 王者榮耀游戲畫面超分前后畫質對比,上圖為超分前,下圖為超分后
圖10. 爐石傳說游戲畫面超分前后畫質對比,上圖為超分前,下圖為超分后
3.2.3 真實世界視頻
優(yōu)化方向:對于真實世界視頻而言,其畫面的構成元素主要由細粒度的線條和復雜、細膩的紋理構成。因此,針對真實世界視頻的優(yōu)化方向是對細粒度的線條結構以及復雜紋理結構的強化。
案例一:在圖11可知,經過真實世界超分模型處理后,畫面中高樓建筑外立面的清晰度明顯提升,馬路邊綠化的細節(jié)也得到大幅增強,綠化帶中樹葉的細節(jié)變得更加豐富。
案例二:圖12中人物的頭發(fā)細節(jié)在經過真實世界超分模型處理后變得更加細膩,細小的發(fā)絲也變得清晰可見。人物衣物上的紋理細節(jié)也得到強化,織物表面呈現出更為豐富的層次感。
圖11. 《前任4》畫面超分前后畫質對比,上圖為超分前,下圖為超分后
圖12. 《權力的游戲》畫面超分前后畫質對比,上圖為超分前,下圖為超分后
4 自研超分算法設計細節(jié)
本章節(jié)將介紹B站自研超分算法的實現細節(jié)。如圖13所示,關鍵的算法包含三個部分:降質方法,模型結構,以及損失函數,每個部分的設計細節(jié)將在以下小節(jié)內作具體介紹。
圖13. 超分算法 Pipeline
4.1 降質方法
4.1.1 主流降質方法
在超分辨率領域,較為主流的降質方法為 Real-ESRGAN 論文中提到的高階降質策略。對于一個降質周期而言,其模擬的都是圖像從成像、處理、編碼、傳輸過程中可能經歷的退化過程,而高階降質策略就是將圖像經過多個相似的降質周期處理,進而產生低清圖像。
然而在實際生產過程中,由于不同內容視頻的優(yōu)化方向不同,降質的策略也會有所變化。例如,對于動漫視頻,超分模型的優(yōu)化方向是增強線條的銳利度和去除純色區(qū)域的畫面噪聲,所以降質策略的重點在于對線條的破壞和對噪聲的模擬。
但是對于真實世界視頻,超分模型優(yōu)化的方向是增強圖像中的紋理信息,當降質過程中線條被過度破壞或噪聲添加過度時,原始圖像中存在的紋理信息往往會被模型當作噪聲抹去,導致模型生成的高分辨率圖像有涂抹感和平滑感。
因此,為了適應不同視頻內容所對應的模型優(yōu)化方向,需要微調高階降質策略中的某些子模塊,然而在現有的串行降質方法中,微調子模塊的工作量較大且結果往往不可控。
圖14. Real-ESRGAN 降質方法
4.1.2 自研降質方法
因此,我們自研了一種適配實際應用的降質方法,目標是降低微調降質策略的工作量,且讓微調的結果穩(wěn)定可控。我們沒有采用類似于 Real-ESRGAN 中串行的降質方法,而是自研了一種更有針對性的具有并行結構的降質策略。并行降質分為三個分支,分別為面向紋理增強的降質、面向線條恢復的降質以及面向噪聲去除的降質。
圖15. 自研降質方法
面向紋理增強的降質由輕度模糊退化、上下采樣和壓縮退化構成,其目的是輕微破壞高清圖像中的紋理結構信息,但由于降質程度較輕,原始紋理信息又有所保留,給模型提供一個穩(wěn)定優(yōu)化紋理的優(yōu)化方向。
面向線條恢復的降質由隨機模糊退化、上下采樣和壓縮退化構成,其目的是較大程度地破壞高清圖像中的線條,使模型在訓練過程中獲得將扭曲斷裂的線條恢復成連續(xù)流暢的能力。
面向噪聲去除的降質由隨機高斯噪聲、隨機柏松噪聲以及隨機壓縮退化構成,其目的是給高清圖像添加一定的程度的噪聲,使模型在訓練過程中獲得去除噪聲的能力。
三個分支的降質結果會被賦予相對應的權重,并最終相加形成最終的降質結果,而權重的賦值是與視頻內容高度相關的。
4.2 模型結構
4.2.1 整體框架
對于模型結構,我們有針對性地設計了兩個串聯的模塊,分別為結構信息處理模塊和紋理信息處理模塊。結構信息處理模塊對大尺度結構信息敏感,負責去除平滑區(qū)域的噪聲、修復物體的輪廓線條。紋理信息處理模塊負責對細粒度的紋理細節(jié)進行一定程度的擬合和增強。
對于結構信息處理模塊,由于這部分圖像信息處理難度不高,所以先對輸入進行 Pixel Unshuffle 下采樣,并犧牲一些通道數,用較小的算力和較大感受野對粗粒度的結構信息進行處理,得到粗估計結果。
對于紋理信息處理模塊,需要對細粒度的紋理細節(jié)進行擬合,故在輸入尺寸上對粗估計的結果進行精調。
圖16. 自研超分模型結構設計
4.2.2 基本組件
實際上,結構信息處理模塊和紋理信息處理模塊采用的是同一種卷積模塊 REPB,其全稱為 Residual Efficient re-Parameterization Block。REPB 有兩個基本的組件,分別為 Conv-x 和 ESA。
Conv-x 是一組運用了重參數化技巧的卷積核,在訓練時有三個并行的分支,分別為 3x3、5x5、1x1 卷積核和殘差連接。由于卷積核的線性可加特性,故在推理時可將三個并行分支的權重合并為同一個卷積核下的權重,在不犧牲效果的條件下獲得更高的推理效率。
ESA全稱為 Efficient Self-Attention,是一種高效的自注意力機制,通過池化層和殘差結構的組合來對局部和非局部的圖像特征進行融合,并對某些重要的結構、紋理特征進行強化。
4.3 損失函數
同樣地,在設計損失函數時,我們也充分考慮到了模型在處理不同內容的輸入時需要有不同優(yōu)化方向的需求,故有針對性地采用了像素損失函數、線條損失函數以及紋理損失函數,并通過加權的方式得到最終的損失函數,以適應不同的超分內容。
4.3.1 像素損失函數
像素損失函數計算了圖像真值和模型預測值的逐像素差值之和,并通過求平均的方式得到最終的整體損失。像素損失函數衡量的是圖像真值和模型預測值的整體差異,為模型提供全局的優(yōu)化方向。
圖17. 像素損失函數
4.3.2 線條損失函數
對于線條損失函數的構建,我們先對圖像真值通過 Sobel 算子提取圖像內的邊緣信息,進一步經過閾值分割得到初步的線條區(qū)域掩膜,將初步的線條區(qū)域進行膨脹腐蝕得到覆蓋范圍更大的線條掩膜。最終,將線條掩膜附加于像素損失函數上,得到對線條恢復更有針對性的線條損失函數。
圖18. 線條損失函數
4.3.3 紋理損失函數
對于紋理損失函數,首先將圖像真值和模型預測值進行切塊得到兩組能更好描述圖像局部紋理結構的小圖像塊集合,再對兩組小圖像塊集合進行結構相似性(SSIM)的計算。SSIM 衡量了局部紋理細節(jié)的相似程度,相似程度越高,SSIM 的數值越接近1。最終,將兩組小圖像塊集合的 SSIM 值求平均并計算與理論最優(yōu)值的差距,我們就構造出了描述真值與預測值紋理相似程度的紋理損失函數。
圖19. 紋理損失函數
最后,根據視頻內容以及優(yōu)化方向的不同,像素、線條、紋理損失函數會被賦予相應的權重,并通過加權的方式得到最終的損失函數。
5 總結與展望
作為B站視頻畫質矩陣的關鍵組成部分,我們的視頻超分算法以提高視頻畫質為出發(fā)點,旨在為用戶創(chuàng)造極致清晰的視頻觀看體驗。在實際的算法落地實踐中,我們從超分算法的基本原理出發(fā),經過對海量視頻的基礎畫質特征和優(yōu)化方向的分析,配合算法層面的合理設計,最終實現了清晰自然的畫質優(yōu)化效果。
目前, 超分算法已成功投入線上點播業(yè)務,并已支持了大量視頻的高分辨率視頻流生產。未來,我們將持續(xù)在覆蓋范圍、主觀效果和部署靈活度等方面進行算法的迭代更新,以在直播、點播、應用端等多個場景為視頻畫質提供更大的增益。
B站對畫質的優(yōu)化,不僅依靠的是視頻超分算法的巧妙應用,我們多媒體實驗室畫質矩陣中的畫質增強、人臉修復、HDR、插幀等技術同樣發(fā)揮著至關重要的作用。
本期作者
徐嘉文嗶哩嗶哩算法工程師
張雅君 嗶哩嗶哩高級算法工程師
張鵬偉 嗶哩嗶哩資深開發(fā)工程師
蔡春磊 嗶哩嗶哩多媒體算法teamleader