編者按:快手平台上視頻類型繁多,且視頻源的畫面質量存在較大差異。“面對種類多且質量差異較大的視頻,如何讓用戶獲得更清晰的觀看體驗?”對于這一問題,快手音視頻技術團隊深入研究智能音視頻修複及增強處理等相關技術,打造“快手質臻影音”,為用戶提供極緻視頻體驗。本次LiveVideoStackCon 2022上海站大會,我們邀請到了快手音視頻高級算法工程師何剛老師,為我們分享了快手平台視頻多樣性和處理挑戰;針對這些挑戰提出的智能修複和增強算法;以及質臻影音的落地方案。
文/何剛
整理/LiveVideoStack
大家好,我是何剛,距離我上次參加LiveVideoStack2019年分享視頻增強算法已過去三年之久,這三年發生了很多故事,也對所處領域帶來了很多機遇與挑戰。對我來說最讓我榮幸和開心的是加入快手音視頻算法團隊,并和團隊一起完成很多有意義的工作。這次主要就來分享下我們團隊在視頻增強修複方面做了哪些工作。
分享主題為《快手質臻影音:視頻智能修複及增強技術》,内容包含以下三個方面:第一是介紹快手平台視頻多樣性和處理挑戰;第二是針對處理挑戰,我們提出的智能修複和增強算法;第三是團隊如何用增強算法解決挑戰并構成體系,即質臻影音的成功落地方案。
1、快手平台視頻多樣性和處理挑戰
1.1 快手視頻内容多樣性及處理挑戰
快手應用平均日活躍用戶達3.47億,每天新視頻上傳量在千萬量級。針對如此大規模的視頻數量進行增強修複和畫質提升,主要有如下兩個方面的挑戰。
第一是視頻内容的多樣性,包含類型繁多,如:新聞、生活、娛樂、遊戲等。多樣化内容表示什麼樣的内容都可能出現,也就意味着算法處理需要針對多種類型視頻内容。
第二是視頻質量的參差不齊,千萬量級的視頻中,有些制作精良,但也有很多素材制作不佳。首先,針對UGC來說,用戶的手機機型存在差異,且在視頻制作的過程中,用戶有時會加入一些非拍攝素材,制作技術也非專業級别,這些因素都會導緻視頻存在噪聲、模糊、低分辨率、低幀率等問題。其次,即使PGC作品也會存在一些問題,如在視頻二次創作過程中,制作水平的差異化造成視頻質量參差不齊,并且對于老舊影片還存在劃痕、嚴重膠片噪聲等損傷。此外,視頻還會經曆多次轉碼壓縮損傷,用戶在拍攝時就會有第一次編碼,之後如果用戶再進行多次編輯,這就意味着多次損傷,當用戶把視頻上傳時,平台也需要做轉碼工作——這樣一個疊加操作過程下來,視頻會經曆多次轉碼壓縮損傷。
面對這些挑戰,如果用人眼或手動去判斷視頻質量并嘗試做相應增強處理,這顯然是不現實的。為此團隊建立了智能的增強處理技術架構。此外,我們還要平衡成本和效果,考量如何獲得高ROI。
如下是快手平台容易出現低畫面質量視頻的類型案例:包括高噪聲低質量視頻(夜間拍攝或光線不足等導緻)、模糊低質量視頻(拍攝失焦、設備原因或運動過快等因素)、塊效應低質量視頻(非專業多次編輯或多次轉發等因素)等。
針對上述問題,我們提出了如上圖所示的解決方案。這是一個智能解決方案總框架,分為如下兩個部分。
第一步是快手自研視頻質量檢測的算法處理,主要檢測兩部分。一是檢測視頻中的場景,如半人像場景、風景視頻、CG動畫場景等,通過對場景進行分類,将會有相應不同的處理算法;二是檢測視頻多維度基礎特征,首先我們對視頻質量有總評分,然後同時還進行多個維度的細緻評分,維度包括:如是否有Blocky;Blocky的程度怎麼樣;Noisy的程度怎麼樣;Blur的程度怎麼樣;Colorfulness的程度怎麼樣等。我們需要統計很多維度的信息,隻有統計出來才可以确認這個視頻采用什麼算法。分析視頻多維度基礎特征,給到算法決策的部分,通過算法決策再去選擇算法。整體檢測環節提供了精準高效的視頻特征分析,助力算法自主感知。
第二步是快手智能感知增強修複原子算法池中進行自動增強算法處理,包含超分、插幀、去噪、去模糊、區塊效應、反交錯、視頻增穩、音頻增強等。我們将根據第一步視頻質量檢測結果,智能自動化決策出獨立或組合使用增強處理算子,可以對不同的畫質内容進行針對性調優,能夠大幅提升畫質和美感。此外,視頻增強還需要與視頻編解碼(包括快手自研K264、K265和KVC)處理鍊路結合,最終需要呈現給用戶消費最佳視頻效果。
舉個例子,如一個視頻包含大量複雜紋理的草地和人物,要求編碼碼率非常低。如果把所有紋理(草地和人物)都變清晰,那麼在低碼率的情況下,用戶就會獲得更好的視覺體驗嗎?答案是否定的。反而在低碼率情況下,對有限高ROI區域如人物進行紋理增強,而對其他區域做不同編碼前處理增強,這樣才能做到最佳低碼率編碼後效果。這說明增強要和編解碼強結合,用戶才能獲得更好的觀感。
2、智能修複及增強算法
第一部分主要介紹了挑戰和處理框架,接下來主要講快手在修複和增強算法研發中實際做的事情。
2.0 技術架構圖下圖是技術架構圖。首先進行視頻檢測分析,确認視頻損傷的類型、程度,從而做相應調度、相應增強修複算法,最後做主客觀評價。
快手自研視頻增強修複算法分為三類:
1.視頻修複:這裡指視頻質量本身需要修複,例如轉碼塊效應很大,就要做轉碼修複,噪聲很大就要做去噪等;
2.時空域清晰度增強:空域上包含超分辨率和去模糊算法,增強空域清晰度,以及時域上的視頻插幀算法,對時域進行增強;
3.色彩和紋理增強:包括色彩增強,對比度增強,以及SDR視頻通過算法能力生成HDR視頻,為用戶帶來更高的視覺對比度體驗,色域更寬,感受更好。
除視頻增強外,快手還會做智能音頻增強,如3D環繞聲場。
2.1 視頻修複:首創視頻轉碼修複(創新)
接下來講述幾個典型創新算法的基本原理和效果。首先來看自研創新修複算法,即首創視頻轉碼修複算法。
我們首先考慮一個典型實際應用例子,用戶首先用手機拍下視頻,這時候是用手機内置編碼器芯片ASIC完成第一次編碼,然後将視頻上傳至某平台,平台不會按照原視頻直接下發,而是先做一次視頻轉碼,轉碼後再下發至各個播放消費終端,在這個過程中就進行一次轉碼或編碼。所以一個視頻從拍攝到消費最少也要經過兩次編碼,而每經過一次編碼,視頻就損傷一次,這個例子應用還不包括對視頻的多次編輯以及複雜操作。多次壓縮會造成視頻失真嚴重,壓縮僞影更加明顯。
業内算法和修複解決方案均針對單次視頻壓縮損傷進行修複,如将其直接用在多次視頻壓縮上效果會大打折扣。我們提出的解決方案是面向視頻轉碼的時空聯合輔助質量增強算法,其一大亮點是在模型網絡中設置輔助監督,在對修複過程訓練中不隻是從頭部到尾部,而是将中間第一次編碼後的結果作成中間級label并進行輔助監督,相當于把網絡中前半部分進行引導。輔助監督和全局監督的損失函數是有一定比例的,整體引導網絡訓練。然後,我們設計了時域可變形對齊模塊(TDAM)、金字塔空域融合模塊(PSFM)等卷積神經網絡架構以進行紋理信息重建,達到顯著修複并提升畫質效果。
上圖是我們算法的處理流程圖,首先會做時域上的對齊(TDAM)、做空域上的融合(PSFM),及我們提出的特有的輔助監督注意力模塊(ASAM),最後做全局監督重建模塊(GSRM)。
這裡講述下如何做時空域上的對齊融合處理。首先,時域上針對每一幀做雙向光流,随後将對齊之後的幀以及取得光流的信息做可變形卷積,得到時域上對齊後的特征,如左圖。其次,空域上的信息融合過程,基本操作是UNet,但它與單純UNet不同點是提出在下采樣的時候用多種融合的方式去做,其中包含雙線性下采樣,包括平均池化、最大池化、步長為2等卷積下采樣,如右圖所示。實際多種下采樣用消融實驗也證實可以更大地拟合真實情況,證明算法有效性。
接下來看實驗結果。首先從實驗環境來看,為了貼近實際應用,我們在實驗過程中第一遍編碼用10Mbps模拟很多手機編碼,接下來轉碼用1000kbps和500kbps,這與工業界下發應用更貼近碼率,編碼用H.265。接下來看結果,如圖所示(最後一列是快手算法修複結果),可以看出,相比之前的所有經典算法,我們對籃球、斑馬線、人、走路的修複都得到大幅度提升,主觀上效果好很多,客觀上更明顯,平均PSNR增益為0.782dB。這項研發成果也被人工智能頂會AAAI 2022收錄,分享給工業界同行。
下圖顯示快手算法在實際電影和動畫片中對塊效應的良好修複能力,修複出色的同時能夠良好控制無色偏,主觀效果感受顯著提升。
視頻超分辯率已發展多年,網絡設計思路相對穩定,大體上可分為這三步。首先做視頻幀Alignment對齊,如t 1、t、t-1時間域上的相鄰幀,包括是隐式 deformable卷積還是顯式光流對齊,不同網絡有不同設計;第二步做特征提取和特征融合,第三步基于ResBlock塊等結構去做Reconstruction重建,從而生成清晰高分辨率圖像。
那麼,超分辨率在面向工業應用有什麼問題?首先,傳統的視頻超分辨率算法在提升紋理清晰度的同時将原小分辨率視頻中噪聲放大;其次,畫面往往會變得過度平滑,丢失小細節和紋理,而将大區域畫面處理偏平,這樣畫面看起來會有些偏假;第三就是一個網絡很難去做好所有場景的自适應。這些就是我們需要解決的幾個挑戰。
針對這些挑戰,我們提出了對應的解決方案。首先,針對視頻超分辨率把視頻噪聲放大的問題,我們做了視頻超分辯率與編碼損傷修複或去噪的融合算法,這種視頻超分辨率是附帶一些抗噪能力。大多數視頻分辨率又小質量又差,所以既要提高分辨率,又要抗噪,就需要把這些融合在裡面;第二,我們做了針對性突出畫面紋理和邊緣,主要在數據集上做的一些工作;第三,我們利用視頻基礎特征檢測分析,對不同内容的視頻進行相應的質量判斷,用不同的超分辨率算子來解決,已對不同質量視頻進行自适應。
這裡舉個例子表達basic idea,我們具備兩者不同針對性超分算子,分别叫做SR-LQ(用于做低質量視頻)和SR-HQ(用于做高質量視頻)。
上圖以SR-LQ為例,可以看到左圖的分辨率低同時有很強的塊效應。我們做超分辨率設計的核心是超分辯率能夠做到抗鋸齒,以及能夠對塊效應做到一定程度修複,避免傳統超分辨率将分辨率變高的同時将塊效應也變大的問題。
上圖是以SR-HQ算法為例。這主要是針對影視劇,即視頻質量不太差的情況下做分辨率的提升。優化重點在草地的紋理邊緣,使之更加清楚明顯。與上一個例子抗噪聲、抗Blocky情況相比,這個需要細節越清晰越好。這裡SR-HQ主要用在視頻本身就很清晰的條件下。因此,對于超分辨率根據視頻内容情況可以有很多不同的做法,從而達到最佳自适應效果。
2.2 清晰度增強算法:視頻去模糊算法
視頻模糊是視頻低質的一種主要來源。模糊的原因有很多種,第一種是拍攝時出現失焦、抖動等情況;第二種是在編碼壓縮和轉碼或分發視頻時的上下采樣模糊,例如前面提到的多次編輯;第三種是畫面主體運動模糊。
為應對以上模糊情況,我們首先考慮如何構建數據集。為此,我們在快手平台上獲取了大量視頻,并對低質成因進行分析并模拟大盤數據情況,根據退化比例、類型來設計數據集模拟真實,并在數據集上增加了噪聲、塊效應等低質因素來符合真實的業務場景。另外,合理的損失函數也很關鍵,在去模糊時,我們在loss中兼顧不同主客觀損失函數。此外,我們還根據基礎特征視頻評價對算法增強力度進行自适應處理,并對處理完的視頻進行質量評價回溯,從而進一步完善算法效果。以下圖為例,我們為原視頻去模糊,可以看到人臉和報紙上字的清晰度得到了明顯提升,細節紋理更加豐富,色偏控制也很出色,畫面清晰度顯著提高。
此外快手清晰度增強算法還具備低質視頻針對性算法版本,這個算法版本專門針對性算子進行處理,能夠在去模糊處理同時具備抗低質效果。對于噪聲/塊效應進行去除修複并增強清晰度紋理,這樣有效避免增強清晰度紋理的同時放大低質(噪聲/塊效應),從而更好地服務大量實際應用場景,這種情況在UGC視頻中較為常見。
快手智能色彩增強算法能夠根據視頻内容質量自動化增強并避免傳統色彩增強容易引起的bad case。傳統色彩增強算法往往增強色彩同時也存在較多bad case。首先噪聲容易被放大;其次在膚色方面,人對人臉膚色非常敏感,用傳統算法對全圖進行色彩增強容易失真。因此,我們推出的相應解決方案,引入了畫面色彩特征。由于每個視頻對色彩增強程度需求不同,不能統一設定數值全部增強,所以對不同的視頻采取自适應的色彩增強方案;另外,我們還會對過飽和區域增加色彩增強限制,使噪聲變小;最後,我們還引入了膚色保護機制對人臉膚色進行區域保護和區域異化處理。
色彩增強算法的創新特點流程如上圖,與傳統飽和度增強不同,我們首先會根據色彩分布生成K值mask進行自适應處理。其次,我們對于過飽和區域做抑制,可以降低噪聲變強情況。然後在artifacts方面,我們也做了調整,在高光區域的時候進行了統計,随着飽和度的提升,噪聲會變得很強。所以這裡也體現出把一個算法做得很好,提升産品的穩定性,需要很多統計工作和細節工作。最後,我們對膚色和唇色也做了相應的保護,方案試了很多種包括膚色和顔色分割等實驗,最終取得穩定色彩增強效果。
2.3 智能色彩增強:HDR生成算法(High Dynamic Range)
再來介紹一下HDR生成技術。2021年,團隊開始支持HDR在快手上的拍攝、編輯、轉碼,再到消費側客戶端顯示等工作,這其中包含很多算法。本次主要分享SDR轉HDR算法。
為什麼要做SDR轉HDR這件事情呢?五六年前,很多手機機型就具備支持HDR顯示,但HDR拍攝姗姗來遲,因此業内缺乏HDR視頻内容。換句話說,HDR屏幕沒有被充分利用。所以我們想做SDR轉HDR,以提升視頻播放消費體驗。
這裡算法細節比較多,主要介紹兩個核心點。
第一個是将SDR亮度對比度拉起來變成HDR亮度對比度,這裡強調的是要做自适應。因為一條單獨的曲線不能适應各種各樣SDR場景,以及各種各樣的明暗區分布,所以我們做了一個基于統計的亮度自适應調整算法。比如基于幀級來說,我們會統計每一幀的亮區、暗區、中區分布占比,占比影響轉換曲線等。轉換曲線是自适應的,裡面有很多拐點,拐點的亮度拉多高多低,曲線最後的形态是由統計的數值而生成的。所以我們是基于每一幀的不同具體畫面生成不同的轉換曲線,從而生成相應的HDR達到最好效果。
第二個核心點是飽和度的提升,從SDR到HDR會做色域的飽和度提升,這裡會發現一個問題,直接提升飽和度然後生成HDR,會發現草地風景等顔色飽和多了層次感,但人像皮膚容易過曝,所以膚色是需要特殊處理區域。因此,我們對膚色分割後,對膚色部分使用柔和飽和度算法提升,然後其他區域使用普通飽和度提升,中間設置有過度區及羽化處理等,不能出現斷層,這些bad case也要做到細節控制。
下圖是我們SDR生成HDR算法的效果圖,可以看出來無論是從對比度、亮度和色彩方面,均有較明顯的畫質效果提升;
在音頻增強方面,大多數流媒體平台隻能獲取雙聲道,且UGC音頻存在聲場狹窄、音質受損等問題。對此,我們的解決方案是利用雙聲道打造立體環繞聲,針對左右兩聲道進行不同的濾波處理,獲得聲場展開效果,對于低頻部分我們做了一定的增益和動态壓縮,來獲得更穩定的鼓聲和bass以及部分人聲的基頻。
2.5 快手算法特有亮點:融合增強處理(All in One)
這裡和大家分享視頻修複增強算法的一個新亮點,即多種融合增強(All in One)。以低分辨率視頻生成高分辨率HDR視頻典型應用為例,分享為什麼做融合增強的原因。傳統做法第一步是先超分辨率SR生成4K,再用SDR轉HDR算法變成HDR,正常情況下是兩個算子串起來做。但這麼做的問題是任何一個圖像處理算法做完後,無論如何利用深度學習使新圖質量更好,但原始信息會丢失是不可避免的。如果丢失了一些原始信息,在串聯第二個算子過程中會缺少很多信息。比如第一步在做超分辨率時不可避免有細節丢失,第二步做HDR,即使SDR轉HDR算法再優異也不可能還原。所以這就是融合的意義,融合會比兩個封閉的串行算法要好。
分享下結果,與業界SOTA(JSInet)相比,快手融合增強方法PSNR提升了0.64dB左右,參數減少約70%,速度快約3倍,是做的比較快且好的網絡。
上圖是效果截圖,以前的SOTA結果存在有顯著bad case,而我們超分辨率後bad case沒有了,而且顔色和紋理都變得很清晰,體現出4K HDR該有的效果。
典型案例:去噪 超分 色彩(All in One)
上圖是一個真實案例,這是一個老港片。我們用融合算法對影片進行處理,原片中有很強的噪聲,在處理後噪聲少了很多,面部和背景都變得更加清晰,色彩也有所提升。
2.6 快手如何利用上述增強服務
針對快手平台的每日千萬級海量視頻,增強修複算法是如何利用的?接下來主要介紹下基本原理和需要注意策略basic idea。
首先是算子的觸發邏輯,一共有三種。第一種觸發邏輯是根據技術特征、模糊程度、Blocky程度等,它會有分值,然後由分值來決定觸發邏輯;第二是根據熱度視頻觸發,對平台上全部視頻應用是沒有意義的,需要基于Fan Count還是View Count 這些細節去設計;第三是事件觸發針對具體事件case。所以觸發策略是和具體的業務形态有關系,然後根據業務去做具體的觸發方式。
其次要介紹的是設計處理優先級。增強觸發時會有不同的優先級,因為視頻上傳到平台後,會有波峰波谷。但是GPU等計算資源一定是固定的,當一定時間内觸發量過大,這時處理不完怎麼辦?肯定不能随機丢掉,而是做優先級方式以保證重要視頻被處理。
最後就是多個算子在調用過程中會存在交疊處理的情況。比如在做算法分析時發現視頻的分辨率又小、塊效應又重,可能會認為既要做DeArt又要做超分辨率,這時算子在交疊的時候該如何解決?我們的解決方案有兩種,第一種處理算子交疊的方案是在算子設計的過程中,其實是有一定抗交疊能力的,舉個例子,在超分辨率過程中,對于一些簡單的僞影噪聲等視頻也可以用超分辯率,調用不同的超分辯率算子。第二種方案,在解決交疊态視頻的時候,我們收集了很多離線視頻進行分析對比,我們測量出什麼樣的分值該做什麼樣的視頻收益最大,然後在上線策略上完成。
3、質臻影音的成功落地方案
最後介紹下,快手智能增強修複方案整合産品「質臻影音」的成功落地方案。2022年1月,快手質臻影音正式上線,包含高分辨率、高幀率、HDR、3D環繞聲場這四大效果,能夠排列組合剛剛提到的算子,定制化對視頻進行提升,包含如下兩方面:低質變優質,以及優質變極緻。例如對老電影、破損影片進行去劃痕、降噪、去模糊等“點對點”修複,主要針對低質量視頻;對高質量視頻,可以提升到極緻效果,使用去模糊、4K超分辨率技術、HDR等達到極緻的體驗效果。
此次分享的相關技術後續将不僅在快手平台得到更廣泛的應用,也将在快手toB品牌StreamLake業務中。歡迎大家來咨詢StreamLake智能視頻增強修複算法,以及直播、編解碼、音頻處理等多種業務。
以上就是我本次分享的全部内容,謝謝大家!
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!