馬緒怡 顧曉娟
(北京電影學(xué)院中國(guó)電影高新技術(shù)研究院,北京 100088)
圖1 LUT在影視領(lǐng)域中的應(yīng)用
數(shù)字電影在拍攝制作的過程中,無論是現(xiàn)場(chǎng)導(dǎo)演和攝影用來監(jiān)看的監(jiān)視器,DIT制作代理文件需要做的畫面色彩還原,還是后期DI調(diào)色要用到的色彩空間轉(zhuǎn)換、畫面風(fēng)格塑造以及監(jiān)視器的校色,都會(huì)去使用LUT(lookup table,色彩查找表)。如圖1,通過使用不同的LUT,可以高效地獲得創(chuàng)作者所要實(shí)現(xiàn)的創(chuàng)作意圖。
圖2 1DLUT公式及作用
在使用LUT的時(shí)候,可以根據(jù)畫面風(fēng)格的轉(zhuǎn)換,分為技術(shù)LUT和風(fēng)格LUT;也可以根據(jù)索引出一個(gè)輸出值,需要的輸入值索引數(shù),分為1DLUT和3DLUT。1DLUT可以被用來簡(jiǎn)單地調(diào)整畫面整體亮度、伽馬校正、對(duì)比度、色彩平衡。其公式及效果如圖2。
1DLUT的優(yōu)點(diǎn)是簡(jiǎn)單且運(yùn)算效率高,可以直接在電路上完成,缺點(diǎn)是無法完成復(fù)雜的畫面色彩的調(diào)整,且存在精度不夠的問題;3DLUT則可以在調(diào)整畫面亮度的同時(shí)調(diào)整色彩,其公式及效果如圖3。
圖3 3DLUT公式及作用
3DLUT中的RGB三個(gè)通道數(shù)據(jù)共同構(gòu)成一組輸入,從而完成復(fù)雜的畫面色彩調(diào)整。3DLUT的優(yōu)點(diǎn)是可以同時(shí)調(diào)整畫面亮度和色彩,缺點(diǎn)是存在精度不夠,需要插值,以及輸入范圍有限制的問題。
雖然LUT已經(jīng)被廣泛地運(yùn)用在各個(gè)制作環(huán)節(jié),但是受限于LUT本身存儲(chǔ)數(shù)據(jù)的有限性、LUT存在精度不夠以及輸入范圍有限制的問題。對(duì)此,美國(guó)電影藝術(shù)與科學(xué)學(xué)院科學(xué)與技術(shù)委員會(huì)(The Academy of Motion Picture Arts and Sciences,AMPAS)發(fā)布了CTL(The Color Transformation Language,色彩轉(zhuǎn)換語言),旨在實(shí)現(xiàn)電影成像流程中的色彩變換和其他基于像素的操作,用來解決LUT存在的精度不夠和輸入范圍有限制的問題,并用來編寫ACES(Academy Color Encoding System,學(xué)院色彩編碼系統(tǒng))。本文主要通過介紹CTL的工作原理及簡(jiǎn)單應(yīng)用,對(duì)比了LUT優(yōu)缺點(diǎn)的同時(shí),并以CTL在ACES中的應(yīng)用為例,介紹IDT(Input Device Transform,輸入設(shè)備轉(zhuǎn)換)的代碼構(gòu)成。最后,提出了一種通過多項(xiàng)式擬合的方法,使用數(shù)學(xué)函數(shù)來擬合任意一個(gè)1DLUT,提供了一種沒有公式的前提下,LUT轉(zhuǎn)換成CTL的思路。
因?yàn)椴煌浖{(diào)用CTL的方式不同,且都有一定程度修改,本文主要以Baselight軟件為例。
圖4 測(cè)試圖原圖
圖5 加載了CTL程序1的測(cè)試圖
CTL本質(zhì)上是一種小型的編程語言,其本質(zhì)為一段代碼,用簡(jiǎn)潔明確的方式來精準(zhǔn)地描述色彩轉(zhuǎn)換的程序。AMPAS設(shè)計(jì)CTL的目的就是為了幫助色彩管理,彌補(bǔ)LUT目前存在的不足。同樣的色彩轉(zhuǎn)換,除了使用LUT,也可以通過分發(fā)CTL,來實(shí)現(xiàn)同樣的色彩空間轉(zhuǎn)換。
下面是一個(gè)通過CTL來實(shí)現(xiàn)“曝光”參數(shù)調(diào)整圖像整體亮度的CTL程序1代碼,測(cè)試圖原圖及效果見圖4和圖5。
void
adjust Exposure
(output varying half r Out,
output varying half g Out,
output varying half b Out,
input varying half r,
input varying half g,
input varying half b,
input uniform float e=0)
{float f=pow(2,e); //pow是次方
r Out=r*f;
gOut=g*f;
b Out=b*f;
}
在CTL中,色彩空間轉(zhuǎn)換被認(rèn)為是必須在每個(gè)像素上執(zhí)行操作的函數(shù),為了讓轉(zhuǎn)換應(yīng)用于圖像,CTL編譯器會(huì)對(duì)每個(gè)像素調(diào)用色彩轉(zhuǎn)換函數(shù)一次。
正如上述的CTL程序1,其作用是:輸入一個(gè)圖像,它有三個(gè)通道的輸入?yún)?shù):r、g、b和一個(gè)曝光參數(shù)e。該函數(shù)將所有的像素都乘以2,來使得圖像變得更暗或者更亮。此函數(shù)的結(jié)果是一個(gè)新的圖像,有著新的r、g、b。
可以從CTL程序1看出,相比于LUT,CTL可以自行編寫數(shù)學(xué)函數(shù),因?yàn)槭且院瘮?shù)的形式,所以不會(huì)出現(xiàn)因?yàn)長(zhǎng)UT采用插值方式進(jìn)行色彩映射所帶來的誤差。
很多風(fēng)格化LUT很難用函數(shù)形式表達(dá),無法使用CTL準(zhǔn)確實(shí)現(xiàn)。對(duì)此,CTL也可以直接調(diào)用現(xiàn)有的LUT。例如Baselight官網(wǎng)提供的ARRI ALF-2 v5 DRT family中的CTL文件(后綴名為fltransform),見圖6和圖7。
圖6 ARRI_ALF-2.fltransform部分代碼
圖7 Baselight使用的CTL文件調(diào)用的LUT
可以看出,在Baselight CTL文件編寫的時(shí)候,可以同時(shí)使用不止一個(gè)LUT,還可以使用反向LUT。使用反向LUT的這種設(shè)計(jì)主要是保證了當(dāng)操作者需要進(jìn)行或者由于錯(cuò)誤的操作,例如由顯示參考轉(zhuǎn)換為場(chǎng)景參考時(shí),通過使用反向LUT來確保畫面的正常。如圖8,這樣的設(shè)計(jì)使得調(diào)色師無需思考色彩空間大小的關(guān)系,只需要明確由哪個(gè)色彩空間轉(zhuǎn)換到哪個(gè)色彩空間。
圖8 由顯示參考到場(chǎng)景參考會(huì)調(diào)用反向LUT
對(duì)于CTL而言,如果要實(shí)現(xiàn)技術(shù)LUT所實(shí)現(xiàn)的色彩空間轉(zhuǎn)換,只需要知道色彩空間轉(zhuǎn)換的矩陣即可,例如從Rec.709轉(zhuǎn)換到Y(jié)UV,已知矩陣為:
那么便可以編寫CTL程序2(具體代碼見圖9)。
可以從上述代碼看出,相比于LUT所需要存儲(chǔ)的海量映射數(shù)據(jù),CTL只需要明確色彩空間轉(zhuǎn)換矩陣即可,大幅節(jié)省了數(shù)據(jù)存儲(chǔ)所需的必要空間。
圖9 由Rec.709轉(zhuǎn)換到Y(jié)UV的CTL程序2代碼
學(xué)院色彩編碼系統(tǒng)(The Academy Color Encoding System,ACES)是由AMPAS推廣的一種色彩管理工作流程,如圖10,其工藝流程轉(zhuǎn)換主要包含以下四個(gè)過程: (1)IDT;(2)ACEScsc(AP0→AP1) ;(3)ACEScct(AP1→AP0);(4)RRT+ODT。
圖10 ACES色彩管理工作流程
圖11 佳能C700 Clog3的IDT代碼
這四個(gè)過程,都采用了CTL編寫,其中IDT可以在設(shè)備廠商的官網(wǎng)下載。如圖11,在這里筆者以佳能C700 Clog3的IDT(Input Device Transform)為例。
對(duì)于佳能C700 Clog3的官方IDT而言,可以分為以下四個(gè)部分:(1)IDT名稱版本和版權(quán)信息;(2)攝影機(jī)型號(hào);(3)伽馬曲線函數(shù)轉(zhuǎn)換;(4)ACES轉(zhuǎn)換。
在這四個(gè)部分中,第一部分和第二部分是以注釋形式出現(xiàn),主要介紹了該CTL的基本信息;第三部分則是定義了Clog3伽馬校正函數(shù)的逆函數(shù),以用來還原攝影機(jī)伽馬曲線帶來的非線性影響,將其伽馬值轉(zhuǎn)換為線性;第四部分則是將非線性的像素首先校正為線性之后,再將其轉(zhuǎn)換至ACES的色彩空間中。其轉(zhuǎn)換過程可見圖12-圖14。
圖12 佳能C700原始畫面
圖13 佳能C700伽馬=1.0畫面
圖14 佳能C700 Rec.709/Gamma2.4畫面
從使用攝影機(jī)官方提供技術(shù)LUT的方式,來進(jìn)行非線性還原攝影機(jī)LOG畫面的方法,可以看出,使用CTL的三大優(yōu)勢(shì)和一個(gè)明顯缺點(diǎn):
(1)文件體積小,一個(gè)CTL可以只有1kb到2kb;
(2)不需要通過插值的方式來還原畫面,幾乎是無限高的精度;
(3)可以根據(jù)需求直接進(jìn)行修改CTL;
(4)因?yàn)榭梢噪S意修改,所以無法保證安全性。
使用1DLUT進(jìn)行亮度調(diào)整,它會(huì)通過LUT中的離散樣點(diǎn)進(jìn)行插值,來實(shí)現(xiàn)亮度映射的目的。但是,插值會(huì)帶來計(jì)算誤差,如果能夠直接獲得1DLUT本身的計(jì)算函數(shù),便可以編寫一個(gè)CTL來代替該LUT以便獲得更高的精度。但是在大部分情況下,在制作的過程中無法直接拿到其數(shù)學(xué)表達(dá)式,可以使用多項(xiàng)式擬合的方式來近似。多項(xiàng)式擬合的公式為:
其意義為,通過人為的認(rèn)定該LUT為n階函數(shù),使用LUT本身的數(shù)值反求出函數(shù)本身。對(duì)于一個(gè)12bit的1DLUT,理論上可以通過此公式得出4096個(gè)函數(shù)擬合式。
圖15 Grapher中做出的LUT全覽圖
在此,如圖15,筆者選定一個(gè)1DLUT“Gamma 2.6 to Linear”為擬合對(duì)象進(jìn)行多項(xiàng)式擬合,擬合階數(shù)分別為2、5、10、30、50。
圖16 擬合函數(shù)與不同階數(shù)數(shù)值對(duì)比圖
圖17 擬合函數(shù)不同階數(shù)百分比偏差對(duì)比圖
圖16和圖17是使用LUT原始數(shù)據(jù)和擬合函數(shù)的數(shù)值進(jìn)行的客觀對(duì)比圖數(shù)據(jù)(30階因誤差較大故舍去)。
擬合函數(shù)的選取會(huì)直接影響亮度映射的結(jié)果,如何選取擬合函數(shù)成為了一個(gè)核心問題??梢詮膱D17和圖18看出,筆者使用多項(xiàng)式擬合去擬合LUT,當(dāng)擬合階數(shù)越高時(shí),擬合效果未必越逼近原始LUT數(shù)值;同時(shí)還可以觀察到,隨著階數(shù)的增加,一方面,因?yàn)槎囗?xiàng)式函數(shù)本身的長(zhǎng)度增加,這給文件的編寫帶來了一定壓力的同時(shí),還大幅度影響了計(jì)算機(jī)運(yùn)算出結(jié)果的效率;另一方面,綜合對(duì)比多個(gè)擬合效果發(fā)現(xiàn),在擬合階數(shù)很高的時(shí)候,其擬合匹配度反而存在著急速變化的情況。所以,選取一個(gè)合適的擬合函數(shù)成為了擬合LUT的關(guān)鍵所在。
根據(jù)公式(1)擬合得出的函數(shù),寫成不同的色彩轉(zhuǎn)換語言文件,除了客觀數(shù)據(jù)的對(duì)比,還可以進(jìn)行擬合LUT的主觀對(duì)比。圖18到圖23是直接加載LUT和擬合階數(shù)變化的主觀效果對(duì)比。
圖18 直接加載了LUT的測(cè)試圖
圖19 擬合階數(shù)為2時(shí)
圖20 擬合階數(shù)為5時(shí)
圖21 擬合階數(shù)為10時(shí)
圖22 擬合階數(shù)為30時(shí)
圖23 擬合階數(shù)為50時(shí)
通過主觀效果對(duì)比可以發(fā)現(xiàn),越是色彩映射復(fù)雜的LUT,用多項(xiàng)式函數(shù)這種簡(jiǎn)單函數(shù)形式去擬合出的CTL,擬合效果越差;同時(shí),多項(xiàng)式擬合的方法并不適用于3DLUT,因?yàn)榇蟛糠?DLUT都屬于極其復(fù)雜的映射,單純使用此公式無法擬合。
本文所述內(nèi)容是基于使用非ACES色彩管理前提下,對(duì)當(dāng)下部分電影工作流程的改善。事實(shí)上,ACES本身便是使用CTL去編寫。目前,無論是否是影視行業(yè),查找表都已經(jīng)被大量使用在各個(gè)方面,一些校色平臺(tái)軟件也針對(duì)單獨(dú)的硬件做LUT來校色收費(fèi)。色彩轉(zhuǎn)換語言的優(yōu)點(diǎn)在于,對(duì)于純數(shù)學(xué)函數(shù)的編寫,十分簡(jiǎn)單且效果好。對(duì)于那些純伽馬變換和色彩空間轉(zhuǎn)換的,可以直接取代1DLUT或者“技術(shù)LUT”;但是其缺點(diǎn)也是明顯的,目前只能應(yīng)用在支持色彩轉(zhuǎn)換語言的軟件里,加密性不強(qiáng)的同時(shí),對(duì)于那些具有復(fù)雜色彩變換效果的3DLUT編寫難度較高,且運(yùn)算效率遠(yuǎn)低于LUT。