-01-
視頻處理架構與畫質帶寬優化
首先,大家對小紅書的印象是什么呢?
小紅書最初主要面向消費場景,比如美妝產品的分享和購買攻略。經過近幾年的發展,小紅書已經變成了一個綜合的 UGC 分享社區,在“衣食住行玩”各方面都有大量的用戶真實分享,提供很多有價值的信息。同時用戶群體也發生了較大的變化,性別以及各年齡段的用戶比例變得更加均衡。
另一個顯著的變化是:小紅書以前主要是圖文筆記分享,隨著視頻成為用戶分享生活的重要載體,小紅書也響應趨勢提出視頻戰略,目前用戶刷小紅書可以發現視頻筆記占了很大的比例。當前每日新增視頻達到了百萬級別,直播消費側業務也在穩步提升。
那么,PUGC 點播及直播業務背后涉及的關鍵技術有哪些?
這里展示一張架構圖,整個鏈路主要包含生產端、云端和消費端,用戶在生產端進行內容創作、編輯和推流;然后將內容發布到后臺云端進行處理,主要包括多檔位視頻轉碼、內容審核與理解、以及視頻搜索與推薦;消費端則是用戶實際體驗的場景,用戶體驗來自兩方面,一方面是視頻推薦內容的體驗,另一方面是視頻畫質及播放流暢度的體驗,后者也是我們在音視頻處理中需要關注和優化的目標。從這張圖可以看到,音視頻處理橫跨三端,也是整個上層視頻業務及應用的基礎設施,我們需要保障整條視頻鏈路的穩定和通暢、關注用戶體驗以及降低成本(帶寬、計算、存儲等)。
回歸本次分享的主題:如何對畫質與帶寬進行優化?
在論述這個話題前,先簡單介紹一下背景。
小紅書成立專業的音視頻團隊還不到 2 年,如果是正常的研發路徑,應該是先提升體驗,容許增加一些成本。但是在疫情之后,全行業進入降本增效主題,降成本也成為我們重要目標之一。而提升體驗是建立這個專業團隊的初衷,在不犧牲用戶體驗的前提下來換取技術成本的節省,唯一的手段就是提升技術和優化策略。
因此,我們算是跑步進入了“深水區”,比較幸運的是,一方面我們是站在行業經驗的肩膀上;另一方面,我們也有后發優勢,并結合自己的思考可以進一步改進和優化。所以如何兼顧體驗和成本?下面分三個層面說說我的理解。
1、模塊級優化
首先,大家熟知的是編碼標準的迭代和升級,每一代標準相比前一代標準在畫質基本不變前提下可以節省 30%~50% 的碼率。當前小紅書大規模部署的是 H.265 標準,目前達到比較高的覆蓋率。在研主要標準是 AV1,H.266 未來也可能會跟進。
新一代標準大規模落地還需要一些時間,當前主要挑戰是計算復雜度比較高。對于點播來說,云端可以用計算成本來換,而在播放端,當前硬解 AV1 和 H.266 的設備非常少,因此需要配套部署經過極致優化的軟解。
2、跨技術方向融合
編碼考慮的是用最少的碼率最大程度地代表原視頻,因此視頻質量的上限就是原視頻。而 UGC 創作的視頻質量非常多樣,如果能用畫質增強及修復算法提升原視頻的質量,那么對應消費側的轉碼視頻質量也能隨之提升。比如一個帶噪視頻經過去噪算法后再編碼,不僅畫質有提升,還能進一步節省碼率。當然并不是所有畫質算法都能帶來這種 double 的收益。比如在云端做超分,畫質提升的同時碼率也會增加。
其次,當前的編碼框架還是比較傳統,缺乏對視頻內容的理解,固定的編碼參數以及碼控算法并不是最優的。因此,通過對視頻場景的分類以及增加對內容和語義的理解,可以進一步提升編碼效果和效率。另外從主觀感受來講,對于感興趣區域提升編碼質量可以更有效地提升實際觀看體驗,而對于非感興趣區域降低編碼質量,不太影響觀看體驗但有助于節省碼率。
視頻分析、處理以及內容自適應編碼技術整體形成了智能轉碼方案,涉及到 high level 圖像分析、low level 圖像處理、編碼技術的融合。據我了解,各家廠商在這部分都有自己的一些方案,但是智能程度(包括效果和自動化程度兩個方面)還有待提升,隨著智能化程度的提升,收益及效率也會越來越高。
此外,學術界也有一些顛覆性的前沿探索,比如端到端的深度學習視頻編碼,不過總的來說更偏中長期才有機會大規模落地。
3、全局系統優化
轉碼是音視頻處理最重要的一個任務,而它也只是云端處理的重要一環。全局來看,音視頻處理是一個從生產端到消費端的視頻處理鏈路。局部優化往往帶來局部最優,站在全局視角,可以發現很多技術優化不再矛盾,比如前文提到云端超分,提升畫質但是會增加碼率,理論上會增加帶寬成本,但如果全局分析,我們可以發現 CDN 通常是根據高峰期來收費,在非高峰期下發超分后的高碼率視頻并不會增加帶寬成本。
另外,如果能夠在播放端做好畫質增強,就可以下發更低碼率和更低分辨率的視頻,從而實現顯著的帶寬節省,后面要講的端云結合超分就是一個典型例子。
站在更大的視角,用戶體驗包含畫質體驗和內容體驗,音視頻處理的結果是提升大盤視頻整體質量,而視頻推薦能結合視頻質量評估,就可以給用戶推薦感興趣且高質的視頻。
從編碼標準迭代到全局優化,我認為在兼顧體驗和成本的優化上還有不少可以挖掘的點,且在單一技術點上其實也還有很大空間,給出這樣的判斷基于兩個主要原因:一是音視頻系統的智能化程度還比較低,更高的智能化意味著能夠更好地兼顧體驗和成本;此外,我們發現在音視頻系統里落地的算法效果離學術界上限還有一定距離,客觀原因是學術 idea 通常在很小的數據集上驗證,而在億級視頻消費和展現上會有很多問題,但好的一面是,未來如果我們能利用好這些最新 idea 且解決泛化及性能問題,就會產生可觀的收益。
從模塊優化到全局優化的演進過程中,我認為最重要且最基礎的能力升級是質量評估。如果只是優化編碼,可以用 PSNR/SSIM/VMAF 等有參考指標。而當構建智能轉碼時,這些有參考質量評估方法不再適用,比如經過畫質增強的視頻比原視頻看著更好。此外,站在全局視角來看,很多處理節點也沒有參考視頻可用,相對質量評估方法也無法使用。因此質量評估需要升級為以人眼感知質量為基礎,并且評估視頻的絕對質量。
-02-
基于人眼感知的質量評估指標 RedVQA
下面介紹小紅書自研的質量評估指標 RedVQA,它是一個基于深度學習的無參考視頻質量評估算法。
回到這張架構圖,我們希望 RedVQA 能做什么?
首先,我們希望它能對整個視頻鏈路任一節點的視頻質量做評估,包括拍攝視頻的原始質量、經過編輯和特效處理后的質量、經過轉碼下發到消費端的質量。
其次,我們希望它可以指導優化畫質及編碼算法。
最后,我們希望它能夠輔助上層視頻業務和應用。
基于上面的分析,我總結下 RedVQA 的研發目標與挑戰。
第一個目標是能夠捕捉拍攝或上傳視頻的多種視頻質量問題;挑戰是如何盡量多地覆蓋到各種 UGC 質量問題(比如模糊、過曝欠曝、噪聲、顏色不自然、過銳等)。
第二個目標是能夠捕捉視頻處理鏈路中的降質和升質變化,要求我們能夠識別和理解整個視頻鏈路的升質和降質操作,并且把這些因素融入到算法和數據集設計中。舉個例子,低碼率編碼會引入降質,畫質問題表現為:細節丟失、清晰度下降、平坦區出現塊效應、邊緣和紋理區域出現振鈴效應/蚊式噪聲。另外值得注意的是,視頻壓縮相比圖像壓縮在碼率分配上更加復雜,會使得視頻質量在空域和時域上不是均勻分布,這也對算法的智能識別能力提出了更高的要求。畫質增強算法通常可以提升畫質,常見的超分、去模糊、去壓縮損失、HDR 等算法有助于改善細節、清晰度、噪聲、亮度/色彩等方面的畫質體驗。
第三個目標是與人眼主觀感受質量一致,要求算法智能且泛化強。比如大光圈拍的照片會產生背景虛化效果,人眼覺得 ok、有美感,而算法有可能把虛化的背景誤判為模糊問題。
在自研數據集前,我們收集了質量評估領域的幾個主要數據集,通過分析和總結得出一些結論:a. 相比 CV 任務,開源質量評估數據集規模很小;b. 數據來源可能和我們線上不太一致,包括用戶設備和拍攝專業程度等;c. 開源數據集缺少經過業務視頻鏈路處理的數據,如小紅書特有的編碼/畫質處理、特效模板處理;d. 我們也測試了使用開源數據集訓練的算法在業務測試集上的準確率,結果比開源數據集低很多。
因此,我們決定自研構建 RedVQA 數據集。數據集構建中非常關鍵的是視頻收集,主要思考的問題是如何通過有限的數據集來代表相對無限的大數據,使得訓練出來的算法具有很強的泛化能力。實踐中,我們分為三個步驟:首先是視頻初篩,這一步根據線上視頻的標簽、垂類和基礎視頻信息進行篩選,比如主要的分辨率要覆蓋到,包含不同的碼率、轉碼質量的視頻。第二步,我們需要在候選數據集內采樣一批盡可能場景豐富和質量多樣的視頻子集,我們利用了一些場景分類以及不同畫質維度的檢測指標作為判斷標準。通過指標采樣,希望采集到的數據集在各指標上更加均衡或者符合預期。經過前面兩步,仍然會缺失一些低質視頻,因為有些問題視頻占比很少,很難從線上篩選出來。通過對整個視頻鏈路的理解和分析,需要人工補充或構造一些低質視頻。
在數據標注和清洗上主要參照 ITU-T P.910 標準,通過流程規范來保證數據標注質量。質量分的定義也比較重要,由于美學具有很強的個體主觀性,我們主要考慮畫質維度,而不同畫質維度的優先級主要參考了小紅書的用戶調研。
算法設計上,重點是如何有效提取質量特征,這里需要對質量問題的產生過程有充分的認知,比如視頻鏈路中編輯和轉碼會如何影響質量,我總結了 3 個關鍵點:
1、在時空采樣中,全局構圖和局部紋理信息都很重要。質量感知特征體現在局部紋理上,而劣化程度在于全局感知;
2、網絡設計要能夠捕捉大范圍時空信息及依賴關系,人眼對質量的感知涉及到整體語義理解、關注區域、創作意圖理解等,很多視頻處理操作會在較大的時空范圍內影響質量,比如碼率分配、ROI 編碼;
3、質量評估數據集的量級和完備程度遠低于分類識別等 CV 任務,而質量特征又非常復雜,因此需要某種顯式地輔助質量特征提取的手段。一種方法是通過添加有序的質量樣本或者利用質量評估的代理任務,進行數據增強及質量特征自監督學習。
接下來是算法驗證。首先介紹下質量評估領域的幾個評價指標,PLCC 表示相關性,SRCC/KRCC 反映保序性,RMSE 反映絕對誤差。RedVQA 的相關性在 0.9 左右,達到了可用的狀態。此外,我們也驗證了算法對質量劣化的敏感程度,首先需要構造一批質量保序的樣本。我們通過編碼參數的配置得到一系列不同分辨率和碼率的樣本,實際線上轉碼服務也是基于不同分辨率以及不同的編碼參數來設計轉碼檔位,這也貼合了線上的視頻處理方式。上圖可以看到,隨著質量控制參數 CRF 的增大,質量分逐漸減小,符合預期,說明算法可以在一定程度上捕捉一些細微的質量損失。其次,我們也看到,同一個視頻的不同分辨率版本,高分辨率質量整體優于低分辨率,這也符合預期。
基于 RedVQA,我們實現了一個大盤質量監控看板,按照不同的維度統計視頻的質量分。通過這些數據,有助于了解大盤整體的視頻質量以及各拆分維度的質量。在有了數據后,后續的優化動作變得有據可依。圖中展示了不同垂類的視頻質量分,不同分位數的質量統計使得我們對生產側視頻的質量分布有了全局的掌握。右邊上圖是按照分辨率拆分的生產側視頻質量統計,右邊下圖是不同編輯方式的統計。
除了生產側質量監控,消費側視頻質量監控更加重要,這決定了小紅書對用戶呈現的整體質量。消費側比生產側更復雜,一方面為了應對網速變化、成本控制以及端設備計算能力不同,每個上傳視頻都需要轉碼成不同的檔位,通過播放控制來決策下發檔位;另一方面,推薦系統會極大影響用戶看到的視頻內容,因此消費側質量監控除了有助于了解實際用戶看到的視頻質量,也有助于我們對轉碼檔位、播放以及推薦策略的優化。
-03-
基于人眼感知質量的端云結合超分
下面介紹端云結合超分,也是今年我們降本增效的重點項目。
超分這個課題在學術界和工業界研究了很多年。但面向不同的業務場景和集成系統,端側超分技術在業務目標和技術方向上存在很明顯的區別。
比如面向一款新的硬件設備,只需要基于它的硬件加速器定制化地設計和優化算法即可。
對于視頻業務和 APP,需要關注什么,如何獲得顯著收益,下面分享下我們的理解與實踐。
對于視頻 APP 來說,一個算法能不能落地,除了離線評測外,AB 實驗數據是最終量化指標。我們希望獲得 QoS 技術指標和 QoE 業務指標的正向收益,對于降本增效任務來說,帶寬節省也是最重要的一個指標。而播放端視頻算法落地,算法性能有極大的影響,算法耗時長可能引起卡頓、集成方式不對可能導致播放失敗率和首幀時長增加。此外,用戶設備機型及性能多種多樣,通常在高端機上部署算法比較容易,如果想進一步覆蓋到中低端機會非常困難。
最近兩年業界在端側超分大規模部署上有所突破,效果和覆蓋率的進一步提升是大家都關注的問題。但我們也發現另一個問題待解決:通常算法效果驗證是離線驗證,而上線后很難再對畫質算法效果進行量化,有沒有 badcase 并不知道。而 QoE 指標是后驗指標,而且從定義可以看到它不完全受到畫質一個因素影響,因此 QoE 數據的好與壞,并不直接對應超分效果,也沒法對算法后續迭代有指導作用。
還要說明的是,如果犧牲一部分收益,落地也會更簡單,比如當我們針對一款高端機來設計端側超分時,可以按照其計算性能打滿算法復雜度從而提升效果,但在大盤上的收益就會非常有限。
為了獲取最大的收益,我們設計了一個基于人眼感知質量的端云結合超分方案來解決上述挑戰,主要分為云端媒體處理和端側播放兩部分。用戶在看視頻時,對應的云端視頻是有多個檔位的,而不同的檔位對應不同的決策。對超分來說,端側超分算法部署在播放端解碼之后,同時我們在云端為端側超分定制化了的一個超分檔位,定制化的目的是為了精細化控制超分開啟策略且補償最終端側超分的效果。首先,我們通過帶寬高峰期預測來控制超分檔位下發的時間段;其次,我們通過質量&碼率收益評估來更好地平衡用戶體驗與帶寬收益,動態精細地量化出每個視頻的質量問題及收益,避免超分效果不佳的視頻產生超分檔位,這里用到的質量評估即是前文提到的 RedVQA。
當我們設計超分算法時,首先要保證的是 QoS 數據無負向,要求開啟超分后的各項技術指標不會顯著劣化。而為了達到比較高的覆蓋率,需要在中低端機上也能流暢的運行,這對于算法的性能提出了更高的要求。我們對算法的性能目標有個經驗性的判斷:計算復雜度應該在 GFLOPS 以內,耗時在 10ms 以內,功耗在 100mAh 以內,這樣開啟超分后的影響可能比較小。
在部署層面,因為 CPU 通常被多任務共享,如果算法過多占用 CPU 和內存也會引起 APP 崩潰,因此我們也要求算法盡量少占用 CPU 和內存。避免“碎片化”部署的意思是,我們不希望設計多個算法,以及針對多個處理器做優化,主要原因還是我們希望第一版算法能夠快速驗證和部署,盡快帶來收益。當然我們后續也計劃對部分機型設計更優的算法進行迭代。
下面的表格是一些算法調研總結,可以看到,公開文獻中輕量深度學習超分算法 (SCSRN) 仍然有比較大的計算量,盡管網絡模型看起來已經非常小了,而在VeriSilicon NPU 上的耗時是 19ms,如果在更通用的處理器上耗時會更大。給出一個計算量級的對比,5x5 高斯濾波的計算量大概在 100Mflops。
雖然可以進一步對上述算法進行模型壓縮,不過我們總體判斷在極輕量算法設計中,有圖像理論指導的 low level 圖像算法會比深度學習更高效,因此我們把目光投向超分領域更早的文獻。這里列出一篇 Google 發表的很有啟發意義的文獻,被用于節省圖片下發帶寬。總體來說,這是一個 two-stage 算法,推理時先對圖片 patch 進行模式分類,選出濾波 kernel,然后用這個 kernel 進行濾波,可以認為是一個內容自適應的濾波算法。在訓練階段,通過將相同分類的輸入 patch 及對應的 ground truth pixel 集合在一起形成訓練集,求解出 kernel。需要說明的是,這個算法的 kernel 求解不是通過梯度后向傳播訓練出來的,而是直接求的解析解。從左下圖可以看到,這個算法在當時還是非常高效的,可以達到實時。
我們認識到這個算法的計算復雜度還是有點高,并且難以直接滿足我們的性能目標,所以借鑒它的思路做了進一步的優化。下面幾個點值得探究和改進:
1、模式分類還是有點復雜,為了降低復雜度,需要通過實驗找到最有代表性的特征;
2、當前的 kernel 是解析解,效果上 與 L2 loss 相當,且是線性濾波,如果能引入可導梯度學習,就可以引入非線性濾波以及多種 loss;
3、當前算法是 Patch-to-pixel 映射,如果改成 Patch-to-patch 映射,可能計算會更高效;
4、最后推理結果可能出現一些畫質問題,考慮加一些低計算復雜度后處理方法。
盡管在端側超分算法上做了精心設計,但受限于其本身的計算量,能實現的效果還是有限。如果是一款終端產品研發,似乎也沒有更好的辦法。而在我們的視頻處理架構中,端側超分的輸入視頻或者下發的超分檔位是由云端轉碼而來。通過定制化超分檔位,可以有效提升和補償端側超分效果。實踐中,我們基于 RedVQA 把原視頻分成高質和低質。對于高質視頻,可以通過云端增強算法有效提升超分后的紋理細節;對于低質視頻,重點在于去除一些壓縮損失,避免 artifact 放大。
下面是整套方案的離線評測。上圖是性能數據,對于一個 60fps 540P 的視頻,開關超分幀率降得不多,GPU 占用增加 20%,內存增加 8M 左右(在撰寫本文時,GPU 及內存占用經算法及性能優化后進一步降低),基本沒有發熱問題。下表是超分檔位的碼率和 RedVQA 質量分數據,其中超分檔位是一個 540P 檔位,我們用了自適應銳化以及深度學習增強來生成超分檔位,對比的檔位是一個 720P 檔位,考慮計算時效以及計算成本,這個檔位只帶了自適應銳化。可以看到超分檔位相比 720P 檔位有 40% 的碼率節省,平均質量分會小一點,而經過端側超分后,平均質量分也超過了 720P 檔位。進一步看下超分結果和 720P 視頻的質量分差值分布,會發現并不是每個超分后視頻質量分都高于 720P 視頻。總的來說,RedVQA 提供了一種規模量化視頻質量的方式,目前在畫質優化方向上的準召率上還沒有非常精細,不過實踐中我們可以做一些權衡和策略來彌補。
以上是兩個畫質優化的例子。上圖超分檔位碼率節省 45%,RedVQA 提升 0.529;下圖碼率節省 32%,RedVQA 提升 0.275。從這兩個例子可以看到,超分視頻同時兼具了畫質收益和帶寬收益。
再看兩個劣化 case。上圖超分檔位碼率節省 45%,RedVQA 降低 0.09;下圖碼率節省 46%,RedVQA 降低 0.13。我們也發現,并不是所有 RedVQA 降低都是畫質劣化,但當碼率節省過大時,比如這兩個 case 都超過了 40% 的平均碼率節省,判定為畫質劣化的準確率就會提升。如前面所述,我們通過質量&碼率收益評估可以更好的平衡用戶體驗與帶寬成本,避免一些極端的劣化 case 影響用戶體驗。
我們也做了 AB 實驗佐證大盤上的表現。實驗條件是基于 iPhone XR/XS 及以上開啟超分,在帶寬高峰 3 小時下發超分檔位。實驗結果還比較正向,QoE 數據整體波動,說明超分整體效果基本沒大的問題,QoS 數據在卡頓率、啟播失敗率等技術指標上有顯著優化,下發碼率及帶寬節省也比較顯著。
-04-
總結與展望
最后做下總結。在降本增效的大背景下,如何兼顧體驗和成本是大家都很關注的問題。但對于音視頻處理來說,體驗和成本一直都是音視頻處理的“一體兩面”,而算法研發以及技術的迭代就是為了實現“既要又要”。從技術角度來說,我更關注如何提升音視頻系統智能化這個話題,智能化的目標之一就是實現“既要又要”,另一個目標是實現更高的系統自動化程度及效率。另外,更好的跨方向技術融合以及全局系統優化能力可能是構建更智能音視頻系統的有效途徑,而基于人眼感知的質量評估是支撐音視頻系統智能化的關鍵技術。最后,端側超分部署面臨性能要求苛刻、部署覆蓋率低、難規模量化等挑戰,我們設計了一個基于人眼感知質量的端云結合超分來解決這些挑戰。
對于未來的展望,我們希望達到更智能的質量評估,在細粒度質量評估上有所提升,期待在畫質優化方面發揮更好的作用。另外,未來我們會持續優化云端“窄帶高清”視頻轉碼,“窄帶高清”的效果和收益會隨著轉碼智能化程度的提升而持續擴大,但同時我們判斷,整體收益提升的同時可能會伴隨著畫質分布方差也變大,融合了多種技術的“窄帶高清”碼流也對質量評估的準確性和泛化能力提出了更高的要求。
端云結合超分是一個非常有價值和可探索的方向,總的目標我們希望端云能夠深度協同提升端側超分后效果,從而無論在畫質提升或帶寬節省目標上帶來更大的收益,這里說的“深度協同”包括整體方案端云劃分合理、超分與編解碼技術配合、端側計算與播放策略適配等多個層面。具體來說,可以迭代更優的超分轉碼檔位,設計更具表征能力和利用 Metadata 的超分模型,以及探索超分與編碼的融合方案。
審核編輯:劉清
-
編碼器
+關注
關注
45文章
3784瀏覽量
137459 -
圖像處理器
+關注
關注
1文章
105瀏覽量
15863 -
編碼技術
+關注
關注
1文章
35瀏覽量
11205 -
深度學習
+關注
關注
73文章
5557瀏覽量
122583 -
HDR技術
+關注
關注
0文章
22瀏覽量
6538
原文標題:基于人眼感知質量的端云結合畫質及帶寬優化實踐
文章出處:【微信號:livevideostack,微信公眾號:LiveVideoStack】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
如何評估CAN總線信號質量
方波無感控制中懸空相端電壓的一半為什么對應反電動勢過零點?(可下載)
《AI Agent 應用與項目實戰》----- 學習如何開發視頻應用
九聯智城中標AI智能視頻分析算法服務項目
中科創達旗下MM Solutions推出突破性視頻降噪算法
一文解析LOPA應用-點火概率估算的策略與實踐

Luma AI Ray 2視頻模型即將發布
【「從算法到電路—數字芯片算法的電路實現」閱讀體驗】+介紹基礎硬件算法模塊
Pure path studio內能否自己創建一個component,來實現特定的算法,例如LMS算法?
如何評估 Llama 3 的輸出質量
如何評估AIGC內容的質量和效果
平衡創新與倫理:AI時代的隱私保護和算法公平
如何對無標識貼片電容的容量估算、檢測和代換?

評論