嗶哩嗶哩視頻雲畫質與窄帶高清AI落地實踐

技術聯盟總壇 發佈 2023-06-06T02:31:27.919921+00:00

以下文章來源於LiveVideoStack ,作者成超LiveVideoStack.LiveVideoStack直播技術社區官方帳號,分享音視頻直播相關技術乾貨,產品研究與行業趨勢。

以下文章來源於LiveVideoStack ,作者成超

LiveVideoStack.

LiveVideoStack直播技術社區官方帳號,分享音視頻直播相關技術乾貨,產品研究與行業趨勢。

視頻賽道卷到下半場,一定會面臨體驗與成本的對抗,尤其是在行業大環境「過冬」的背景下,想要在有限帶寬下獲得最佳的畫質觀感變得異常具備挑戰性。從視頻雲業務場景的視角來看,如何有效解決cross-domain問題、如何突破低業務延遲下的算力瓶頸、如何提升單位碼字承載的有效信息量,成為我們在實踐過程中的應用範式。LiveVideoStackCon 2022 北京站邀請了bilibili雲端多媒體平台的成超老師,為我們分享Bilibili在急速發展過程中基於視頻業務上總結的一些先進的經驗和想法 。

文/成超

編輯/LiveVideoStack

大家好,我叫成超,來自bilibili雲端多媒體。我們雲端多媒體主要負責bilibili點直播技術業務,而我所在的算法組則是基於AI算法為bilibili點直播降本增效相關工作賦能。

儘管過去行業在過冬,但是bilibili仍然是一家保持著非常高增長的公司,我們的用戶規模以及播放量一直在持續增長,相關的總帶寬成本也在節節攀升。大家參加LiveVideoStackCon2022北京站可能最高頻聽到的一個詞就是降本增效,它對成本增長提出了非常高的要求,我們需要把成本增長控制在一個非常合理並且高效的規模上。但與此同時,我認為B站的初心仍是沒有變的,我們始終秉持著「用戶是B站最核心的價值」這一信條,也始終期望著用戶能夠在B站得到最好的音畫體驗。

圍繞著這個目標,我們做了非常多的工作,自下而上我們在預處理層面做了今天要講的畫質矩陣、AI前處理,並且我們有一個很強大的團隊自研編碼器,再上一層,研究使用編碼器開展窄帶高清工作,最底層也會設立一道CDN來進行網絡、調度和節點優化等等工作。

如果說降本增效是目前行業對於所有公司提出來的命題作文,那麼我們的答卷就是:低碼高畫

今天我的分享主要分為四部分,第一部分講視頻雲AI畫質提升鏈路;第二部分將結合一個非常具體的實時遊戲直播來分享我們所做的4K遊戲實時超分;第三部分則轉到低碼部分,講一下基於低秩重構所做的AI窄帶高清前處理算法;第四部分是一個簡單的總結及展望,介紹我們在做和未來可能會做的一些工作。

-01-

視頻雲AI畫質提升鏈路

首先簡單談談我們對於畫質業務的思考和理解,即為什麼要在成本受限的情況下仍然堅持做高畫質服務,我認為原因可能出於以下四個方面:

第一方面是對於用戶,我們認為高畫質是科技發展的必然趨勢,並不受行業的升降趨勢所左右。我們在企業內部提出了一個「全時高清」的概念,即用戶在任何時間、任何地點都無需受到任何約束來享受高品質的音畫服務

第二方面是希望對UP主進行賦能,我們希望UP主們能夠將百分百的身心投入到idea創作和內容的生產中去,無需受到專業的拍攝器材設備和拍攝條件限制;

第三方面是針對產品和運營,我們希望畫質能力能夠成為他們執行一些策劃或者活動的有效抓手,配合擴大B站的影響力;

第四方面則是針對商業合作夥伴,我們希望能以畫質做為切入點,配合他們做好商業宣發和推廣活動。

在這裡談談B站以前舊的畫質生產鏈路,在過往長期的業務需求里我們積累了大量的畫質原子能力,形成了畫質矩陣,但實際上應用模式並沒有實時更新到原子能力的增長上。

舉一個簡單的例子:以前想要對視頻做超分大概要按照這樣一個流程,如果上傳了一部動漫,在其轉碼完成後,運營首先要瀏覽視頻內容並判斷它適合進行什麼樣的畫質增強處理,如果認為適合做超分,那就將它送到對應的超分服務里去。

這個流程存在的問題就是所有內容都是預先定義好的,如果一個視頻需要同時進行多種畫質增強處理(如先去噪、再增強、再超分)但目前沒有對應服務,那便必須先上線相應的服務才能支持該視頻所需的處理流程。這導致舊鏈路的時效性很差,在業務規模較小的時候尚可,一旦處理需求增長,它勢必將受到運營人員的經驗主義制約,並且無法實時去響應業務需求。

新鏈路與舊鏈路最大的區別在於兩點:一個是QoE的接入,我們把QoE接入到畫質決策體系中,形成了一個以QoE為主,人工運營策略為輔的決策模式。QoE將會提取視頻的約40多個特徵,包括視頻的信息密度、噪聲強度,動態分析結果,一些業務上的指標(如上傳的視頻是否會成為一個高熱度視頻),另外還涉及一個內部的無參畫質評價。

總之QoE策略加上運營策略最後得到的特徵向量,將被送至一個決策器來決策當前投稿究竟適合什麼樣的畫質處理,如果信息密度不夠則需要做超分,如果時域性不夠強並且有提升空間的話則可以做超幀,如果要進行完美的畫質修復,則可能需要進行超分加超幀,甚至還需要進行修復,後續的處理流程可能是非常多樣並複雜的。基於此,為了滿足視頻複雜的畫質處理需要,我們要完成可用於自定義畫質處理鏈路的工程支持。

最終我們對畫質矩陣重新設計了一套底層的AI處理框架,這也是新舊鏈路的第二個主要區別。它的思想是把所有的畫質原子能力儘量節點化,然後我們將處理流程搭成計算圖,以計算圖的形式來支持任意的畫質處理流程,可以說它在使用上就像搭積木一樣。

在這個處理流程上線之後生產力得到了極大的增強。我舉一個簡單的例子:去年大家都知道,在全網範圍內發生了一個非常重大的宣發事件,就是周杰倫新專輯《最偉大的作品》的發布,B站也全程跟進了這張新專輯所有曲目的宣發工作。這次工作可以說是最具代表性的一個CASE,主要有兩點:

第一是1080P的問題,可能大家不是很清楚,類似杰威爾這樣的頭部音畫文化傳媒公司其實還是在生產1080P清晰度的視頻,並沒有更新4K、60FPS這樣的新技術。但實際上4k對於用戶來說又是一個非常剛需的需求,我們當時就反映了這一問題並詢問能否提供4K介質,實際當然是沒有生產的。

而用戶有需求怎麼辦?

我們提出了建議方案:即藉助AI對原視頻進行4K高清化。他們聽後表示非常高興,並且很樂意我們對他們的介質進行AI增強。同時還提出,如果用戶希望得到最好的音畫體驗,要做乾脆就將畫質拉滿。所以除了超分外,本CASE還一併進行了60fps增強,大家上B站是可以看到的。

第二點就是時效性。如去年7月6日,新專輯第一張單曲最偉大的作品發布時,杰威爾公司要求歌曲在當天中午十二點準時全網上線,但只提前兩到三小時提供歌曲原始介質。如果以舊鏈路對介質進行4K化處理,至正式上線可能需要三到四小時。使用新的生產鏈路,整個流程可以縮短到約一小時。使用新鏈路可以更好地響應業務的實時性,B站也是去年全網唯一在第一時間支持4K模式的宣發平台。

大家可以從圖中看到三次元的超分效果,發現衣服的紋理、人臉和背景的木質材質得到了極大的增強。

除超分外,我們也支持很多low level的能力,比如超幀。不知道大家對B站舞蹈區是否有了解,舞蹈區可謂是所有分區中的「卷王」,這主要體現在拍攝手段上,舞蹈區UP主們的拍攝手段甚至會比一些攝像、器材區的UP主還要專業,舞蹈區視頻普遍已經達到了4K清晰度,有些甚至到了8K。流暢度方面,如果大家觀看宅舞較多,應該知道高幀率下人體的舞蹈是非常絲滑的,眾宅男對60fps也有相當高的需求。如果觀察B站舞蹈區排行榜就會發現,榜單頭部視頻都至少支持60fps,有的甚至支持120fps。

這隨之帶來的問題是拍攝高清晰度高幀率視頻所需的器材成本非常高。對於中長尾UP主,我們不希望器材設備條件限制他們的內容創作,所以在雲端通過插幀的方式來對他們進行賦能。

插幀現在已經比較成熟,但在落地過程中存在比較多的問題。可以發現,插幀對於大規模運動的特徵捕捉得不夠好,反映到舞蹈中則會造成圖中紅框所示的斷肢問題,或者在一些高動態場景(如賽車場景)中,可能會出現紋理丟失問題,如路面的柏油、瀝青路面紋理丟失,路面變得平滑。這都是插幀算法目前面臨的比較典型的問題。

我們針對這些問題進行了定點優化,比如在插幀網絡中頭部的特徵提取部分拉出一個額外的分支去預測人體關鍵點,希望網絡在特徵提取部分就能夠去關注到一些人體姿態的變化,更好地去捕捉人體姿態特徵。

經過優化,可以看到斷肢問題得到了極大的緩解,動作已經能十分流暢了。現在上線的插幀算法已經支持30幀超60幀,30幀超120幀,並且線上已經有低幀率視頻通過該算法實現了高流暢度。歡迎大家去抓抓蟲,看能否識別哪些CASE是原生高幀率,哪些是經過算法處理,我認為現在已經很難看出區別了。

本頁講一下我們所做的HDR工作。HDR也是一項非常重要的工作,因為人眼對色彩是非常敏感的。將SDR轉為HDR大概需要三個步驟,第一步是Color Conversion,它是在8bit上對全局的曝光和色彩進行調整,調整後能夠得到很好的色彩增強效果。第二步是Global Color Mapping,在這個階段主要將8bit由bt709色域映射至bt2020色域的10bit HDR。第三步是Local Enhancement,主要是進行一些局部微調,至此HDR的AI生產鏈路就完成了。

由於HDR需要專業設備渲染,所以此次現場不再演示HDR demo,而是主要介紹其中一項非常有趣的工作。我們將Color Conversion特化成了一個調色方案,具體是如何做到的呢?

最開始是採用了大量的3D LUT去學習一些非常specific的調色風格,然後將一個視頻切成不同的clip,每個clip要求AI按照視頻中的場景來學習應該如何使用3D LUT調色單元,通過網絡預測權重得到最終的建議調色方案。

其中的有趣點是,我們在權值特徵的embedding階段手工引入一個策略對它的latent code進行約束,例如在訓練階段可以約束一些不同的latent code指向不同的調色風格。

這種自定義調色風格可以應用在一些場景。打個比方:很多美食區UP主做菜和教程講解做得都不錯,但在菜品拍攝上有欠缺,拍出的成品飽和度偏低,讓人沒有食慾。該怎麼辦呢?實際可以通過以上方式將調色方案下放到UP主手中,通過指定菜單和latent code調整可以對UP主特化出一個具體的調色風格來支持他們的工作。

可以看到,現階段的調色效果已經相當好了,兩個演示demo中第一個是還原人眼所見色彩的調色風格;第二個有暗場增強能力,圖中右側暗處本來有塊廣告牌,經過調色增強後是清晰可見的。

-02-

4K實時超分

接下來主要圍繞直播場景來介紹4K實時超分。我們對超分是這麼理解的:超分業務被它的一些性能指標劃分為不同的應用場景。

首先以超分的計算效率為例,它被兩個指標劃為三個應用場景。如果超分算法只能跑到30幀以下,那麼就只能做點播業務;如果能跑到30幀以上,那麼可以做直播;如果可以進一步跑到60幀以上,那便支持幾乎所有的場景,因為一般情況下視頻直播不會超過60幀。

第二,受超分算法的資源限制影響,使用場景又可被分為三個。如果跑一路超分必須多機多卡,那麼勢必只能去做低頻需求,畢竟顯卡價格太高;如果能做到單機多卡,那麼可以去做一些頭部需求;如果可以只用單卡支持單路甚至是多路超分,那便具備工業化生產能力。

在從前超分算法性能不夠的情況下,如果還是想去做實時超分那該怎麼辦呢?一般會有兩種思路,一種是幀並行方案,一種是塊並行方案。無論哪種方案本質都是用空間交換時間,並且都有各自的問題。幀並行方案會引入同步buffer,造成額外延遲。塊並行方案如果模型能力不夠強,模型拼接處大部分時間會出現明顯拼接縫,視覺感受非常不好。

我們去年也參與了英雄聯盟S12的全程直播,實際上S12這種頭部賽事也是不支持4K清晰度的,主辦方為了保證所有下游直播方的服務穩定性,主推的流為1080P 60幀。但大多數用戶對4K是有天然需求的,我們希望能夠一步到位,單卡下支持4K 60幀的超分。這項工作非常難,不僅在於要將1080P實時超幀到4K清晰度,而且還要保持60幀的高幀率。

接下來分析一下遊戲場景。遊戲超分實際比普通超分要簡單,因為遊戲視頻信號以高頻重複紋理居多,如果單個地方紋理發生缺失,可以在另一個地方找回來。第二就是遊戲的特徵空間以及模型在學習時的參數搜索空間都非常小,與普通超分相比訓練難度小。

直播遊戲場景還有另外一個特點,就是接到的原始流其實都經過了編碼,這個問題會貫穿點直播業務始終,為了應對源流編碼造成的細節損失,我們採用GAN引入對抗loss以達到重複紋理生成的目的,並且配合Pixel-loss初步約束GAN可能產生的偽影。

一般情況下,使用GAN可能還會配合使用感知loss,感知loss一般會在imagenet這種大數據量級上進行訓練,但遊戲畫面的特徵空間較小,並不需要這些非常general的特徵,如果引入感知loss反而會造成訓練速度降低,所以最終Cont-loss被放棄。並且為了進一步約束遊戲中產生的結構化紋理,引入了基於sobel算子的Edge-loss對紋理進行強化。

在網絡的具體結構上,談一談細微計算單元的設計思想,我們並沒有使用ESA這種非常流行的空間注意力,而是設計了一個更加高效的高通通道注意力機制,可以看到該模塊在開始時就通過運算簡單提取到了patch的高頻部分,並在最後對其進行加權得到了最後的attention權重。本方案配合接下來提到的重參數可以達到非常強的高頻學習目標。

重參數的原理可以歸結為,利用卷積的同質性和可加性把不同的卷積進行融合。從上圖中可以看到,開始的計算結構有三個連結:一個跳躍連結、一個1x1卷積和一個3x3卷積,通過卷積的兩個特性可將它們最終歸併成一個3x3卷積。大家可能有疑問,為什麼不可以直接使用3x3卷積呢,這是因為三個連結的學習力度是不一樣的,跳躍連結、1x1和3x3對特徵抽取的力度不同,所以可以使用一個很簡單的策略,不增加額外計算量即可提升卷積模塊的學習性能。在訓練階段採用重參數,在infer階段則是把它歸併成單個卷積。

接下來介紹一個性價比最高的加速方法,叫做Unshuffle。大家可以將Unshuffle理解成Pixelshuffle的對偶。如果對超分算法了解得足夠透徹,可以發現實際上目前主流的超分網絡的主要計算量並不在中間的bottleneck和backbone部分,而是在featuremap相對較大的head和tail。以前如果不使用Unshuffle要如何實現降維?大概只能通過pooling或帶stride的卷積兩種方式。帶strike的卷積會將很大計算量放在網絡頭部,所以效率很低;pooling可能會使特徵出現人為丟失。

所謂的「Unshuffle是Pixelshuffle的對偶」這一想法貌似簡單,但實際上諸如pytorch或tensorflow支持Unshuffle也就是最近這一年的事情,在沒有這些工具的時候要如何去使用Unshuffle?

這其實是一個純粹的矩陣變換問題,我們可以將它拆成三個簡單的算子,使用reshape、 transpose和第二個reshape對它不同的維度進行調整,得到最後的結果。

我們還可以看到Unshuffle有個很好的特性就是它在降維時是信息無損的,它原始是哪些像素,新來還是哪些像素,在其中只要配合少量的卷積就可以達到與前述兩種方式相當或者更好的畫質能力。經過全局優化,backbone的計算量相對於原生網絡可縮減75%,並由此可將bottleneck的寬度適當進行增加(例如增加一倍),以便讓其儲存到更多的特徵。最後上線的遊戲超分算法只用到了106K個參數,不到1M,它的計算量只有49G。

最後一個懸而未決的問題是,我們在訓練策略中引入了對抗生成網絡的方式,大家也提到這將大概率造成偽影的問題,怎麼理解這個問題呢?把特徵搜索路徑以上圖來進行示意,可以看到,如果不對GAN訓練增加約束,它的參數搜索將極不穩定。

圖中最外側的圓代表人眼最佳的感知點,越趨近於圓心紋理應該越平滑,相反則代表出現了不必要的偽影。我們通過使用一個巧妙的阻尼策略來對每一步學習到的參數進行step by step的加權,可以將其視作對網絡學習參數的濾波機制。

通過這個方法最後可以將參數搜索路徑儘量平滑化,極大抑制其超出圓外的概率。並且我們也參考了CVPR2022的一篇關於Locally Discriminative Learning論文的策略。它的思想是:如果當前這個step網絡所預測出的某一個特定像素與EMA網絡所預測出的像素差距甚遠,那就將它定義為偽影並加以懲罰。

這套策略極大抑制了偽影問題。大家可以看兩個demo,由於B站並沒有對S12比賽做轉錄,作為替代方案我們在UAT環境裡用S11和S3世界總決算來進行演示,這就是線上的實時效果。

可以看到,在對結構性紋理的保護和重複紋理的生成上,超分算法使原視頻效果產生了極大提升。視頻在V100單顯卡下可以跑出75fps的幀率。B站也是在參與S12直播的平台中,唯一有4K模式的。

-03-

基於低秩重構窄帶高清前處理

高畫部分到此講解結束,接下來引入到低碼部分。我們本次想要介紹基於低秩重構所做的AI窄帶高清前處理算法。

首先談談傳統的編碼觀點,編碼實際上是在DCT頻域人為製造精度缺損以達到碼率節省的目的。但可以看到,如果以高觀點來看待這個問題,編碼器是不關注編碼單元中的內容的,它一視同仁地做有損編碼,從高頻到低頻去相對應地去抹掉特定的頻率分量。它對編碼內容的頻譜不做任何改變,並不知道自己壓縮了什麼,在壓縮有效信息的同時也去壓縮噪聲,反之亦然。

第二個觀點就是去噪觀點,這也是目前做窄帶高清會用到的傳統方案,即通過去噪增強的方式來進行窄帶高清。因為源流里已經包含了大量的編碼噪聲或者其他類型的噪聲,可以通過增強編碼流的信噪比來折中得到二次編碼的效率提升。但這種方式非常依賴去噪網絡的去噪能力,去噪能力要足夠強,一般和工業化生產需求無法匹配。那麼它在抹除噪聲的同時勢必也會抹除一些有效信息,最終造成畫質缺損。

今天主要想要談論的是基於一個重構觀點來完成這項工作。低秩重構有兩個核心出發點:第一是重構之後的圖像變化對人眼來說是幾乎無法認知的,第二是使用儘量少的頻率分量達到與原生頻率分布一樣的效果,對圖像進行重建

以一個空域頻譜重建的demo來做實例,上下圖分別是重構前和重構後的效果,圖中的細節變化是人眼不太可能感知到的。但實際上再看右邊的頻譜,可以發現它的頻譜構造尤其是中高頻部分已經和之前完全不同。它並不像編碼一樣造成了頻譜的缺損,而是排列本身發生了變化,頻率分量發生了更替,最終達到了一定的稀疏性。這是非常有利於編碼器進行編碼的。

低秩重構是一個非常經典的數學問題,具體描述如下:一個原始信號為D,我希望用一個重建後的信號A來表示D。E是D與A的殘差。低秩重構的目標是兩點,第一點是A的秩要足夠低,用另外一個方式來解釋就是矩陣的冗餘信息要儘量少。第二點則是殘差要足夠小,即從某種角度上衡量,重建信號與原始信號差距不要太大。

那麼在算法中,以上問題被特化為兩點:第一點是使用感知約束對E進行約束,使重建後的信號在感知層面與原信號沒有太大差異;第二點對於A的約束則是非常難的,因為傳統的低秩約束實際上是把一個非凸優化問題轉換為凸優化問題,由於矩陣的秩是不可導的,所以使用神經網絡來進行低秩約束是幾乎是不可能的。

我們採用了一個頻譜熵約束的方法來逼近它,當最終優化目標逼近頻譜熵約束時,它自然就逼近了低秩約束。最終在感知約束部分我們採用三個loss來聯合表徵感知優化目標,第一是pixel-loss,第二是感知loss,第三是FID,在感知loss上採用的是LPIPS。

頻譜熵約束在訓練階段是一個two stage的結構,圖中的重建圖像是已經通過stage1網絡重新生成的結果,重建圖像經過unfold切片以及dct變換後得到其所對應的頻譜,所有塊得到的頻譜共同構成了頻譜簇。我們在stage2中引入了可學習網絡用來學習各塊對應的頻譜每一個頻率分量的重要性,可以理解為是在頻率中設立一個attention機制,經過加權疊加得到最後頻譜簇的熵,使熵最小化即達到了頻譜熵約束。

在網絡的訓練階段則要考慮到工程中的一些常見問題和非常多的落地問題,如果大家基於上述原理去進行訓練,基本上一定能達到編碼收益。但想將收益最大化則需考慮非常多的trick。

在這裡介紹之前也提到過的一點,怎麼去處理視頻編碼中含編碼噪聲的問題。因為B站面向的直播場景都是點直播,視頻源都經過了一次轉碼,無論如何都會攜帶編碼噪聲。在做窄帶高清時需要讓網絡學習基本的噪聲模式,為構造學習所需的典型低清高清圖像對,可能大家大概率會採用的方案是將一個高清視頻不斷做編碼,得到低清視頻。

但此方法在實操上有兩個問題:第一,高清視頻非常難獲取;第二,高清視頻並沒有大家想像得那麼高清,本身可能也包含噪聲。真正優質的數據一定是圖片,但在圖片內施加編碼噪聲難度非常大,針對圖片可以考慮使用jpeg壓縮,不過相對編碼器來說它只考慮到了空域特性,並沒有考慮時域特性。通過一個巧妙的方法,可以將時域編碼引入到圖片中以產生時域編碼噪聲。

我們可以將原始圖片複製成多份,在其中引入連續形變來得到一個淺顯的單圖生動畫效果,通過人為引入形變和時域變化再對圖片進行編碼,最後進行特定解幀,其中有一幀是不會做任何形變的,也就是我們需要加的一幀,最終形成構造的LR/HR對。

使用這種方法可以在圖像上施加編碼噪聲。

以上述訓練策略和方法來訓練網絡,在實際部署階段非常簡單,它是一個frame by frame的處理,不涉及時域工作,可以無縫插入到所有基本的轉碼流程中來達到收益。本算法最終只用了三千個參數就達到了低秩學習分解的能力,即使在CPU上也能夠得到很好的推理性能,目前基於TensorRT做T4卡的部署可以跑到300fps以上,可以滿足大規模生產的需求。

以上算法雖然設計上只針對空域,未對時域做特定優化,包括在推理過程中也是frame by frame地進行時域推理。但本算法是有時域親和力的,在時域上一個連續的patch經過低秩重構後所得的頻譜會相似於原始頻譜,以一個典型的室內演播廳場景為例,當碼率相對比較充足時,背景看似不變,但其中包含了很多人眼難以感知的擾動,這些擾動可能是因拍攝期間的熱噪聲或受拍攝條件影響所致。編碼器也會將碼率分配到這些對於人眼來說不變化的地方。經過本算法處理後,可以看到大部分的塊都被skip掉,對有一部分塊則採用幀間編碼方式,對真正差異較大的地方才會使用幀內編碼。這樣可以使編碼器做到高效率碼率分配,無形地提高了時域壓縮性能。

這裡介紹一下編碼收益,主要分三部分,第一部分是基於ssim的RD-curve,使用ssim做編碼的同學都知道,ssim是比較難優化的,我們在264、265甚至在AV1上都達到了一個全局的ssim的編碼收益。

如果將評價指標改為vmaf,那麼收益會更大。

本算法已經灰度上線,在實際生產數據中,我們基於典型碼率段做了分析,在1080P及以上解析度可以達到18%以上的碼率節省,全局也有16%的碼率節省。

-04-

總結與展望

至此今天主要的分享內容結束,接下來想和大家介紹我們將持續跟進的一項工作:高糊修復。在這次LiveVideoStackCon上我們遇到了很多同行,經過交流,這也是同行們做視頻雲業務都會遇到的問題。高糊修復在一些特定場景有重要用途,如老片修復或一些拍攝質量極低的視頻修復。

我認為目前雖然大家對高糊修復都研究了很久,但仍然沒有很好的解決方案。去噪、增強、劃痕修復和調色並不能解決根本的問題,高糊視頻缺失了對人眼來說最基本的材質、紋理等細節。在古早片中可以發現,人物在高清處理後雖然很清晰,但衣物還有紋理缺失的現象。

為了解決這個問題,我們做了很多嘗試,甚至是對早期的歷史拍攝器材進行專門研究。例如老西遊記電視劇使用了顯像管攝像機進行拍攝,我們便研究了這種攝像機的成像原理,從鏡頭組到感光元器件再到最後的曝光成像介質,了解成像流程對原始畫面造成了怎樣的降質。

了解這個原理是非常重要的,可能和大家平時做超分或者修復預想的不同,一般超分或修復會使用一些典型的降質算子,如高斯模糊、中值模糊和各種各樣的壓縮,但高糊修復和前述的這些算子關係相去甚遠。

近期AIGC以及大模型的興起對高糊修復是很好的信號,可以看到LDM已經具備非常不錯的圖像細節修復能力,但它還不能很好地適應生產應用場景。

目前針對圖像大模型調優已經出現了一些低成本調優方案,例如lora,基於lora可以對LDM像類似於condition-GAN一樣的方式訓練,把低清和高清pair當做condition/target,採用這樣的圖像對來微調大模型。

通過研究各類古早片原始畫質的降質過程可以對畫質改善起到很大的積極作用,我認為如果持續跟進大模型調優,它將是非常好的解決方案,可以解決很多應用上的痛點。

大家可以看展示的CASE,原圖相當模糊。

經過大模型處理後,吉他上的木紋、衣服上的材質和柜子上的木紋等在原視頻中幾乎沒有的材質都被進行了豐富與補充。

為了達到這個效果,還需要做很多工作去約束擴散模型產生的時域不連續問題,如果不採用一些trick進行抑制,不連續情況可能會很嚴重。

我相信通過後續不斷的研究和應用,這些問題都會或早或晚的解決。

我認為低碼高畫工作非常有意思,雖然當下的環境艱難,但期間也促成了行業全體同仁優化工作的明顯進步,對於技術人員也是挑戰與機遇並存,相信接下來的工作仍然任重道遠,謝謝大家!

關鍵字: