劍眉星目,衣帶飄飄,伴着仙樂,傳聞中的瑤池仙堡堡主從閉關處飛身而出:
一身霓裳羽衣,宛如敦煌壁畫中的飛天,或許見過林青霞這一造型的觀衆并不多。
這段經典的出場畫面,來自于 1983 年徐克執導的《蜀山:新蜀山劍俠》,是林青霞的第一部武俠作品。在傳統武俠功夫片的内核之中,導演注入了天馬行空的想象。這也是港片拍攝中,第一次邀請到好萊塢《星球大戰》特效小組支援特技鏡頭的作品,很多特效制作在當時顯得十分前衛和大膽。
以《蜀山:新蜀山劍俠》爲代表的老港片,承載了很多人的童年回憶,成爲了一代人心目中難以超越的珍貴影像。
但記憶中的這些老港片,往往伴随着模糊、昏暗、掉幀等畫質問題。即使今天再将經典之作翻出來重新觀賞,部分作品的「全損畫質」也會影響到我們感受其藝術和美學價值。
爲此,抖音及火山引擎在 2023 年發起了「經典香港電影修複計劃」,宣布将在一年内修複 100 部香港經典影片。通過最新技術的助力,讓大衆看清香港電影最初的、最清晰的樣子。
在 8 月 16 日舉辦的「再續時光 —— 經典香港電影修複發布會」上,這一計劃正式啓動。首批上線的老港片包括《武狀元蘇乞兒》、《A 計劃》、《蜀山:新蜀山劍俠》等 22 部作品。
基于最前沿的 AI 技術加持,一系列八九十年代的老港片重新煥發了生機。比如在 4K 版本的《蜀山:新蜀山劍俠》中,女神林青霞的美貌被完全還原:
修複前。
修複後。
值得關注的是,這一次老港片修複首次應用了 AIGC 視覺大模型。字節跳動視頻架構負責人、火山引擎視頻雲架構技術總監王悅表示,基于視覺大模型優越的生成能力和豐富的先驗知識,修複的效果與效率均實現了大幅度提升。
修複一部四十年前的港片,有多難?
如今,想要找到一部老港片的播放資源并不難,隻不過這些視頻的畫質與我們常看的高清視頻相比,觀感體驗不那麽友好。
受限于拍攝設備、存儲方式等的影響,一些老港片往往會更加模糊、有嚴重的膠片噪聲且分辨率較低。帶給觀衆的直觀感受就是「高糊」、「昏暗」、「不絲滑」:
造成這些問題的原因是多種多樣的:在上個世紀,大部分港片拍攝後都是儲存在膠片上,而儲存膠片的環境需要恒溫恒濕。如果保存的溫度和濕度不合适,以及在使用、搬運的過程中造成的物理和化學性損傷,産生褪色、撕裂、髒點、黴變、劃痕、酸變、收縮、扭曲等情況,反複的放映更是容易造成畫面劃痕、閃爍、丢幀等損傷。再加上拷貝版本因爲翻印過多次,畫質也會有衰減。
此外,受限于技術原因,很多武俠類的老港片都無法完全處理掉威亞的痕迹。以《蜀山:新蜀山劍俠》爲例,這部作品存在大量的武打動作,觀衆很容易在觀賞過程中發現「鋼絲」:
近年來,對此類老電影的修複工作正在越來越多地開展。一般來說,老電影修複分爲傳統修複、算法修複和藝術修複三大步驟。首先要清潔電影膠片表面的灰塵、污垢,然後對其進行接補,再将膠片每格内容轉換爲數字化信息,經過修複師一幀幀處理畫面上的劃痕、污漬等問題,最後進行畫面調色。
一部電影可能多達十幾萬幀,人工修複的成本高、耗時長,難以進行大規模修複。這一套流程下來,大概要花費好幾個月的時間,其中又屬數字修複環節的工作最爲繁瑣、枯燥、耗時。
近年來,越來越多的 AI 技術被用于修複老電影,也帶來了驚豔的效果。在本次「經典影像修複計劃」中,火山引擎團隊将傳統人工修複與最新的 AI 算法修複相結合,在極大提升電影修複效率的同時,進一步優化了影片的畫質。
在這一過程中,火山引擎和中國電影資料館進行了多輪溝通和讨論,經過不斷地測試和反複地調優,才達到算法服務于藝術的理想效果。
特别要提到的是,火山引擎多媒體實驗室基于多種自研的畫質增強能力,首次将 AIGC 視覺大模型「Stable Diffusion」應用于老片修複場景。
老電影修複,用上生成式 AI 大模型
我們知道的「Stable Diffusion」,是一個文本到圖像的生成模型。那麽它如何用于視頻修複?效果如何?
火山引擎多媒體實驗室研究員趙世傑介紹說,除了通過文字 prompt 生成圖片和視頻内容,相關算法同樣可以應用在 prompt 爲圖片或者視頻的場景,實現通過圖片或視頻來創作新的圖片或視頻。視頻的逐幀修複流程與圖像修複類似,其方法也是基于圖像修複演變而來的,因此這些算法可以應用于老舊視頻到高清視頻的轉換或是視頻畫質修複、增強。
相比于此前的 AI 修複方法,采用 AIGC 視覺大模型還具備兩大優勢:更強大的生成能力,更大規模的先驗知識。
「擴散模型」的火熱,爲生成領域帶來了全新的景象。在更廣闊的數據規模、更龐大的模型參數、更豐富的算力的加持下,諸如 Stable Diffusion 這類的 AIGC 大模型顯示出了遠超以往算法的生成能力,産生的内容紋理細節更逼真且高度靈活。大模型的優勢同是來自于數據和模型兩個方面。
從先驗知識上看,在通用大模型成爲主流之前,模型常常針對特定任務建立特定數據集,再利用特定數據集去訓練特定的端對端模型,這必然帶來先驗信息不足的問題。而模型從數據集中蒸餾出來的先驗信息,卻是任務模型能否獲得高性能的關鍵。針對老港片修複這樣總體場景數量有限、退化模型衆多且未知的任務,很難定制數據集,因此就需要一個能在大型數據集上習得海量先驗知識的生成模型。
而在模型層面,基于 Stable Diffusion 的大模型有非常強大的信息結構化能力,有能力在學習了海量數據對後,從中提煉出大量的有用知識,「存儲」在模型參數之中,爲下遊的老片修複任務提供了豐富的先驗信息。
趙世傑還提到,目前開源的 Stable Diffusion 大模型在老港片修複場景中會遇到許多問題,在實際應用過程中,團隊有針對性地對模型進行了多項優化:
1、生成能力優化:基于擴散模型的現有方案,也會在部分場景上表現不穩定,體現在生成僞影或者虛假紋理或閃爍等情況。一方面,團隊通過控制模型的邊界條件,通過對生成過程中随機種子的優化,增加了模型在叠代過程中輸出内容的穩定性,并且保證輸出内容的主觀效果。另一方面,團隊對生成空間進行分析,對大模型複雜龐大的生成空間抽絲剝繭,強化生成質量較高的空間,同時弱化生成較差的空間内容。
2、視頻場景優化:像 Stable Diffusion 這樣的視覺大模型是基于圖片或者單幀的視頻圖像進行訓練和應用的,對于連續的視頻序列經常會出現效果和穩定性的問題。爲了解決這個問題,團隊使用了多種技術手段,包括設計時域的自編碼器,光流特征對齊,時域條件約數,使得大模型在修複的過程中可以使用前後幀的信息,生成的内容具有時域穩定性。
3、效率優化:已有的擴散模型因爲需要叠代降噪計算結果,所以運算速度很慢,對算力的要求很高。因此,團隊對采樣的推理步數進行了蒸餾優化,将冗餘的采樣步數大幅縮減。此外,面向老片修複場景對高分辨率的要求,一個非常實用的思路就是做并行。團隊設計了分塊推理的結構,在保證各個塊算法穩定的前提下提高算法并行度,使得大模型的推理效率整體提高 50 倍以上。
老片修複,火山引擎有哪些技術沉澱?
此外,在清晰度、流暢度、色彩、瑕疵四種老片修複的常見問題上,火山引擎團隊已經積累了豐富的 AI 修複技術,有效加速了此次修複。
首先,從清晰度上,團隊自研了去噪、去壓縮、去模糊、超分辨率、人像增強等多種 AI 算法。針對老舊電影存在的噪聲,壓縮,模糊等混合畫質損傷,通過智能畫質問題分析,自适應決策處理算法,達到減少影片僞像、消除模糊、提升分辨率等效果。
針對人像爲主的場景,優化後的人像增強模塊能夠在提升五官清晰度的同時保留皮膚紋理細節,不破壞影片質感。
修複前(左),修複後(右)。
其次,從流暢度上,團隊自研了智能插幀算法,通過對前後幀的内容進行光流估計,根據光流信息将前後幀像素都轉換到中間幀,然後進行整合,生成中間幀,提升視頻幀率,減少觀看時的卡頓感。
特别是對于《蜀山:新蜀山劍俠》的衆多武打場景來說,幀間運動較大,運動範圍超過光流模型感受野時,光流就會估計不準确,導緻最終前後幀像素轉換到中間幀也不準确,産生拖影。
爲了解決這一問題,團隊在計算光流時,自适應确定下采倍數,使用下采分辨率後的圖片作爲輸入,得到下采光流後再上采回原分辨率,用于原分辨率圖像的像素轉換,從而讓光流模型在較小的計算量下能夠處理較大運動。
修複前(左),修複後(右)。
對于武打中一些過于複雜的運動,插幀對複雜運動的拟合不夠準确,從而導緻最終插幀結果不準确,産生僞影,對用戶觀感會有負向體驗,這種情況下要盡量避免去做插幀,因此需要有是否适合做插幀的判斷方法,我們的插幀判斷主要從圖像差異度、幀間運動情況、模型預測的插幀置信度三方面去分析,對于圖像内容差異度過大、幀間運動複雜度過大、模型預測出插壞的區域過多這三種情況避免使用插幀模型的輸出,而使用相鄰幀作爲插出的幀。
下圖是插幀置信度的預測,插幀置信度的黑色區域對應插壞的區域:
然後,從色彩上,團隊構建了一整套色彩相關處理算法,包括色彩增強、色偏校正、SDR2HDR 等能力,可以解決老片中的褪色、色偏等問題,讓老片色彩更豐富,煥然一新。
由于早期攝影設備能力弱,存儲介質老化等原因,常常存在色偏,動态範圍偏低等問題,導緻影片失真嚴重,需要通過色彩校正 / 增強等算法對失真進行修複,使其重煥生機。對于色彩校正算法而言,其難點在于白點估計,傳統的灰度世界 / 完美反射等算法難以準确地估計老片場景中較爲複雜的色偏情況,而基于深度學習的色偏校正算法雖然上限較高,但其幀間穩定性較差,且不同幀校正效果差異較大。
爲了有效解決上述問題,團隊首先對影片進行場景分割,使用深度學習方案逐幀學習其色彩校正矩陣,同時通過質量檢測算法剔除其中效果較差校色矩陣,然後按場景求得剩餘色彩校正矩陣的均值,對同一場景,使用同一套色彩校正矩陣進行處理,從而得到穩定的校正結果。
修複前。
修複後。
最後,從瑕疵上,老港片中常出現的瑕疵包括線狀劃痕、雪花顆粒噪點、塊狀污漬等。團隊給出的解決方案包括:
對于較小的雪花噪聲,使用傳統時域運動補償去噪算法,利用相鄰幀信息,對固定規律的紋理和随機的噪點進行區分,在保證去除大部分噪點的同時,減少對紋理細節的損傷。
對于線狀劃痕和塊狀污漬,使用基于深度學習的劃痕檢測修複模塊。通過生成随機長度的直線和不規則的塊狀 mask 來模拟劃痕損傷,将其添加至無劃痕的視頻數據獲得匹配的數據對。利用該數據集訓練網絡,可以修複大部分線狀劃痕和較小的塊狀污漬。
對于畫面損傷較大的塊狀污漬,使用基于生成式的 image inpainting 算法,通過局部紋理信息,全局結構信息和顔色紋理信息,來優化生成的畫面内容與片源的相似性,同時利用時域一緻性算法,防止修複後的畫面在時域出現閃爍。
技術與開放的價值
很多人可能會好奇,這樣一套複雜的 AI 修複方案,是否有機會組合起來對外開放,讓普通人也能将「全損畫質」輕松轉化爲高清視頻?
其實,這些相關的能力開放工作,火山引擎團隊很早就開始做了。在火山引擎視頻雲中,「智能處理」就是團隊基于多年對多媒體智能處理的實踐經驗提煉出的全流程視頻前後智能處理及增強技術産品。
火山引擎智能處理官方網站:https://www.volcengine.com/product/imp
作爲字節跳動旗下的企業級技術服務平台,火山引擎此前已将字節跳動快速發展過程中積累的增長方法、技術工具和能力開放給外部企業,提供雲、AI、大數據技術等系列産品和服務,幫助企業在數字化升級中實現持續增長。
比如,火山引擎每天都會在多個鏈路、環節對海量視頻進行分析,做針對性的增強和修複。而這些修複影像過程中使用到的技術,已經通過火山引擎的「智能處理」工具向所有内外部客戶提供服務,便于讓更多的企業參與到老片的修複中,爲觀衆帶來更多的 4K 超高畫質影像作品。