“膠片成像的顆粒感,是數(shù)字影像無法復(fù)制的獨(dú)特魅力。”著名導(dǎo)演克里斯托弗·諾蘭在《信條》上映時(shí)表示。作為膠片電影的忠實(shí)追隨者,自處女作起,諾蘭每一部影片都采用膠片進(jìn)行拍攝,其中包括《星際穿越》《盜夢(mèng)空間》等風(fēng)靡全球的著作。
諾蘭導(dǎo)演口中的“膠片成像的顆粒感”,正是本文要討論的Film Grain(膠片顆粒)。
為何Film Grain作為一種噪聲,卻能得到大量導(dǎo)演和觀眾的喜愛?其實(shí)是因?yàn)樵谀承┨囟ǖ姆蔷€性系統(tǒng)中,噪聲的存在能夠增強(qiáng)微弱信號(hào)的檢測(cè)能力,這種現(xiàn)象就稱為隨機(jī)共振。而在圖像系統(tǒng)中,在一定噪聲(如Film Grain)強(qiáng)度條件下,圖像視覺質(zhì)量可以達(dá)到更優(yōu)的效果。
因此,F(xiàn)ilm Grain作為影視創(chuàng)作意圖的一部分,在對(duì)視頻進(jìn)行編碼時(shí),有效保留Film Grain是非常重要的。
但Film Grain作為圖像噪聲,分布和大小都不規(guī)則,具有隨機(jī)性。Film Grain的隨機(jī)性使得傳統(tǒng)編碼技術(shù)難以有效壓縮,同時(shí)也使得預(yù)測(cè)變得非常困難,運(yùn)動(dòng)估計(jì)的精度也會(huì)降低。
就此,微幀科技在微幀Aurora AV1基礎(chǔ)上研發(fā)了Film Grain編碼技術(shù),此技術(shù)已成功應(yīng)用于某知名PGC視頻平臺(tái),并獲得了客戶及平臺(tái)用戶的認(rèn)可。
使用AV1能更高效地保留與合成Film Grain。因?yàn)閭鹘y(tǒng)視頻標(biāo)準(zhǔn)在制定時(shí),并沒有將Film Grain加進(jìn)標(biāo)準(zhǔn),運(yùn)用傳統(tǒng)編碼方式對(duì)視頻編碼,容易造成grain分布不均勻、保留不完整等問題。而AV1在制定時(shí)就把Film Grain處理工具加進(jìn)了標(biāo)準(zhǔn),對(duì)于Film Grain編碼和解碼的支持度更高。
與開源libaom相比,微幀Aurora-AV1的優(yōu)勢(shì)在于編碼速度更快、效率更高,其次是能支持10bit Film Grain的去噪處理;并且,在開源libaom編碼器上保留grain容易出現(xiàn)明顯的banding,微幀Aurora-AV1的自適應(yīng)量化模式也能更好的避免這種情況。
banding示意
針對(duì)不同類型的grain,微幀科技采用Aurora-AV1視頻編碼器進(jìn)行了3個(gè)方向的嘗試:去噪+合成(Grain Synthesis)、直接保留(Grain Preservation)、保留+合成(Preservation+Synthesis)。
01、去噪+合成(Grain Synthesis)
Grain Synthesis是通過去噪處理去除視頻中的grain,并估計(jì)出grain參數(shù),這些參數(shù)將隨壓縮視頻流一起發(fā)送至解碼器,解碼后,再將grain合成并添加到重建的視頻幀中。
此方法有助于保存已編碼視頻的grain外觀,與直接對(duì)grain進(jìn)行編碼比,能保持更低的碼率。
但Grain Synthesis的缺點(diǎn)在于:合成過程中的第一步需要生成一個(gè)64x64的模板,之后隨機(jī)從模板中選取一個(gè)32x32的塊。在選取的時(shí)候,x,、y的坐標(biāo)需要小于32,導(dǎo)致相鄰塊選取的32x32塊會(huì)有重疊,且朝向一致,在grain強(qiáng)的序列中的平坦區(qū)域非常容易產(chǎn)生pattern,以及明顯的artifacts。
就此問題,微幀的解決方法是:選取grain的種子,只采用pattern沒那么明顯的種子進(jìn)行合成。
左:源視頻;右:通過微幀Aurora-AV1編碼合成的grain,兩者幾乎無差
02、直接保留(Grain Preservation)
若源視頻中的Film Grain是未經(jīng)壓縮的,可以用AV1 Film Grain工具進(jìn)行重建;但對(duì)于已被轉(zhuǎn)碼壓縮的視頻,則很難重建。因?yàn)間rain經(jīng)過壓縮后,會(huì)出現(xiàn)低頻分量,產(chǎn)生一定的pattern,這些很難用AR model完全表示出來。因此,對(duì)于明顯有低頻分量的grain pattern,需要通過直接編碼的方式進(jìn)行保留。
除此之外,對(duì)于grain比較細(xì)的序列,采用直接保留grain的方式,能讓grain保留的更均勻,也能保證更好的清晰度,使得在無grain artifact的同時(shí)生成較好的grain視頻。
值得一提的是,采用微幀Aurora-AV1直接編碼保留grain,能夠抑制grain不一致和不同幀清晰度不一致的現(xiàn)象,這是普通AV1編碼器目前所達(dá)不到的。
03、保留+合成(Preservation+Synthesis)
編碼過程中還會(huì)遇到同一幀grain分布非常不均勻的情況,比如上半部分有g(shù)rain,下半部分沒有g(shù)rain,這種情況不能依賴Grain Synthesis的方法,因?yàn)闃?biāo)準(zhǔn)全圖都為同一種grain model。直接編碼的方式則可能會(huì)出現(xiàn)grain保留不完整、不一致等情況。
對(duì)于類似這種復(fù)雜的grain,微幀采用的方法是:將grain分解,針對(duì)難以用Grain Synthesis標(biāo)準(zhǔn)生成的grain,直接依賴編碼器進(jìn)行編碼;針對(duì)Grain Synthesis標(biāo)準(zhǔn)比較好生成的grain,采用標(biāo)準(zhǔn)生成grain,如高頻的高斯噪聲部分則可以采用Grain Synthesis來合成。
Preservation+Synthesis的方式能解決Grain Synthesis的局限性,重現(xiàn)比較復(fù)雜pattern的grain。同時(shí),增加了grain合成的方式會(huì)比直接編碼的方法,能保留更多的細(xì)小的grain。
左:直接保留grain;右:保留+合成