最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊

色彩空間、HDR和ACES

2023-03-06 21:35 作者:朵格子Dolag  | 我要投稿

原文是我用Markdown來寫的,復(fù)制到B站然后改了一下,但還是丟掉了例如引用鏈接之類的東西,md原文和pdf在此https://driver.dolag.work/Share/Misc

色彩模型(Color Model)

色彩模型規(guī)定了顏色能夠被哪些分量(也就是原色)進(jìn)行表示。舉例來說RGB色彩模型下的顏色就可以用RGB三原色的數(shù)值來進(jìn)行表示,比如存在一個(gè)顏色可以表示為[Red = 0.2, Green = 0.75, Blue = 0.13]。

常見的色彩模型有RGB、CMYK、HSV、HSL等。

色彩空間(Color Space)

色彩空間如其名,是顏色的空間。由于我們是進(jìn)行設(shè)計(jì)、創(chuàng)作、游戲等,最終都會(huì)使用顯示器、屏幕等進(jìn)行顯示,而這些設(shè)備一般都是使用RGB色彩模型,因此此文章只討論RGB色彩模型相關(guān)的問題。

CIE XYZ色彩空間

CIE XYZ色彩空間之前有一個(gè)CIE RGB色彩空間,CIE XYZ色彩空間中的XYZ是對之前CIE RGB色彩空間的一個(gè)修改,因?yàn)橹癈IE RGB色彩空間不能表達(dá)出人眼可見的所有顏色(因?yàn)榇藭r(shí)的三原色刺激值中的紅色部分有負(fù)值)。XYZ近似對應(yīng)紅綠藍(lán)。[1]

下圖為CIE xy 色度圖(Chromaticity Diagram),之所以只用xy是因?yàn)?,任何可見光顏色都可以通過XYZ三個(gè)分量進(jìn)行一定比例混合,且x + y + z = 1,因此z = 1 - x - y。下圖三角形區(qū)域表示原來的CIE RGB顏色空間。



CIE XYZ顏色空間可以表達(dá)所有的可見顏色(上圖的奇怪蹄狀三角區(qū)域就是人眼可見光區(qū)域,但是XYZ能夠表達(dá)式的范圍顯然不至于此),是絕對顏色空間,因此常常用這個(gè)CIE xy色度圖來度量其他顏色空間的色域(Gamut),這種表示方法也叫三色刺激值(Tristimulus Value)表示,也稱為色度(Chromaticity)表示。

然后這個(gè)CIE XYZ顏色空間和CIE xy色度圖很哈人的一點(diǎn)就是,色度圖上兩點(diǎn)之間的中間位置,完全符合人眼感知的,兩顏色的中間值。畢竟是根據(jù)人眼感知特性來創(chuàng)造的顏色空間。

RGB色彩空間

RGB色彩模型下有很多色彩空間,常見的有sRGB、Adobe RGB、ProPhoto RGB、DCI-P3、Rec.2020、Rec.709、ACES2065-1、ACEScc/ACEScct、ACEScg。

白點(diǎn)(White Point)和原色(Primaries)

白點(diǎn)是一個(gè)色彩空間里設(shè)定為白色的點(diǎn),用開爾文或者色度來表示。原色就是一個(gè)色彩空間的基本顏色,其他顏色都可以通過這些基本顏色進(jìn)行表示,也用色度表示。每個(gè)色彩空間有不同的原色、白點(diǎn)。[2]

以DCI-P3 D65色彩空間為例(D65表示其白點(diǎn)為6500開爾文色溫的顏色),其白點(diǎn)為(0.3127, 0.3290),原色為R = (0.68, 0.32),G = (0.265, 0.650),B = (0.15, 0.06)。

另外,RGB色彩模式下的色彩空間,在CIE xy色度圖上的表示顯然都是三角形區(qū)域,每一個(gè)頂點(diǎn)表示了一個(gè)原色,因此其能夠表達(dá)的顏色區(qū)域自然只能是三原色圍起來的三角形區(qū)域。

伽馬(Gamma)空間和伽馬校正

以sRGB為例,由于sRGB色彩空間提出的時(shí)代,流行的CRT顯示器顯示圖片時(shí),實(shí)際發(fā)出的亮度和電信號(hào)(也就是顏色數(shù)據(jù))表示的亮度不是線性的,而是有一個(gè)2.2次冪的非線性關(guān)系,因此需要提前對圖像數(shù)據(jù)進(jìn)行一個(gè)1 / 2.2 = 0.4545的一個(gè)冪次變換,此過程稱為伽馬校正,校正過后的圖像數(shù)據(jù)處在伽馬空間中。但是其實(shí)sRGB并不只是一個(gè)單純的伽馬校正,是個(gè)接近1 / 2.2的分段函數(shù)。

現(xiàn)代的顯示器其電壓亮度響應(yīng)函數(shù)其實(shí)是可調(diào)的,但是現(xiàn)代顯示器一般都支持這個(gè)2.2次冪的傳統(tǒng),因此現(xiàn)在sRGB還是非常的常用。

然后Rec.709色彩空間也是一個(gè)伽馬空間,通常認(rèn)為它的伽馬值為2.4,但實(shí)際上也是個(gè)分段函數(shù)。Rec.709和sRGB其實(shí)色域差不多。

顯而易見的,對一個(gè)顏色空間應(yīng)用伽馬校正,會(huì)變成另一個(gè)顏色空間,但是這兩個(gè)顏色空間的色域是不變的,因?yàn)閼?yīng)用冪次變換后顯然原色和白點(diǎn)都不會(huì)變。

經(jīng)典色彩空間

sRGB

sRGB(Standard RGB)是目前最常用的色彩空間,它是一個(gè)帶有伽馬的色彩空間。sRGB在色度圖上的面積現(xiàn)在來看其實(shí)是比較小的。

sRGB最初設(shè)計(jì)的目的是作為生成在因特網(wǎng)以及萬維網(wǎng)上瀏覽的圖像的通用色彩空間,最后選擇的是使用Gamma校準(zhǔn)系數(shù)為2.2的色彩空間,即CRT顯示器在這種情況下的平均線性電壓響應(yīng)。[3]

我們現(xiàn)在,一般的貼圖、圖片、照片等一般都是處在sRGB空間下。

DCI-P3

DCI-P3蠻怪的,它的色溫是6300開爾文,但不是在CIE Standard Illuminant下的,所以不能稱為63D,而且白點(diǎn)稍微有點(diǎn)發(fā)綠,好怪。然后它是一個(gè)系數(shù)為2.6的伽馬空間,這是為了能適當(dāng)兼容sRGB。但是DCI-P3色域比sRGB大了有30%,因此許多HDR設(shè)備都用這個(gè)色彩空間,比如你的手機(jī)。

Display-P3

Display-P3是蘋果創(chuàng)造的色彩空間,要正常一點(diǎn)。它使用65D的白點(diǎn),系數(shù)為2.2的伽馬空間,非常兼容sRGB,感覺還不錯(cuò)。

Rec.2020及P3-D65

Rec.2020又比上面兩個(gè)P3的色域大上一圈,色域相當(dāng)不錯(cuò),但是顯然造價(jià)更高,在激光影院可能會(huì)使用。

實(shí)際上幾個(gè)HDR格式HDR10、HDR10+、Dolby Vision、HLG的技術(shù)極限都是Rec.2020,普遍的色彩空間都是P3-D65(一個(gè)和DCI-P3與Display-P3都不同的P3色域)。

Adobe RGB和DCI-P3的色域面積是差不多的,然而是兩個(gè)差別不小的色彩空間,所以說在選購顯示器的時(shí)候不要只關(guān)注色域的面積,主要看它的色度圖以及和你想要的色彩空間的覆蓋率。

HDR(High Dynamic Range)

sRGB和Rec. 709色域蠻窄,覆蓋了色度圖35.9%左右區(qū)域[4],使用它作為色彩空間的OO稱為SDR(Standard Dynamic Range)。相對的HDR的色域就蠻高。下面是一些HDR格式的參數(shù)[5]

HDR10、HDR10+、Dolby Vision都是使用PQ傳輸函數(shù)(Transfer Function)。

這些HDR格式,由于色域比sRGB提高了不少,因此也需要用更多的比特來精確地表示顏色(說實(shí)話,Rec.2020的色域覆蓋了75.8%[5]的CIE 1931色彩空間,感覺用16bit的bpc才勉強(qiáng)能行),因此HDR都是10比特起步的。

傳輸函數(shù)(Transfer Function)

也有人翻譯為轉(zhuǎn)換函數(shù),實(shí)際上就是起到一個(gè)轉(zhuǎn)換的作用。

傳輸函數(shù)分為OETF(opto-electronic transfer function,光電傳輸函數(shù))、EOTF(electro-optical transfer function,電光傳輸函數(shù))、OOTF(opto-optical transfer function,光光傳輸函數(shù))

OOTF說是OETF除以EOTF的結(jié)果,可能是用來衡量看到的和拍攝的之間失真度的東西。

OETF是從攝像機(jī)等輸入設(shè)備到圖像數(shù)據(jù)的轉(zhuǎn)換函數(shù),在攝像機(jī)內(nèi)完成,我不太想研究這部分。

EOTF是從圖像數(shù)據(jù)到光信號(hào)的轉(zhuǎn)換函數(shù),這是在顯示器內(nèi)完成的,例如前面說到的sRGB和Rec.709,就需要先進(jìn)行一次伽馬校正,這樣在經(jīng)過EOTF之后才是顯示的正常的光。大家都喜歡的HDR10、HDR10+、Dolby Vision在設(shè)備上會(huì)進(jìn)行PQ轉(zhuǎn)換,所以應(yīng)該要在此之前進(jìn)行反PQ編碼,HLG同理,不過是HLG轉(zhuǎn)換和反HLG編碼。 SDR的色彩范圍始終是0到1的,這樣在不同亮度峰值的顯示器上的亮度是不同的[7]。而HDR的這些EOTF,以PQ為例,實(shí)現(xiàn)了0到10000尼特的轉(zhuǎn)換,因此在不同顯示器上的亮度也應(yīng)該是一樣的如果顯示器支持的話。

HDR和SDR之間的轉(zhuǎn)換及顯示過程中的顏色變換

微軟有在文檔里寫普通的顏色變換管線和Windows實(shí)現(xiàn)任意兩個(gè)色彩空間轉(zhuǎn)換的過程[6]。

顏色變換管線

首先0是原本的色彩空間,首先如果這個(gè)色彩空間不是線性空間,則需要先進(jìn)行反伽馬變換1,變換完后就到了線性空間,線性空間的顏色就可以通過顏色矩陣2這種線性變換來變換到其他顏色空間,如果目標(biāo)顏色空間也是一個(gè)伽馬空間,則要施加一個(gè)對應(yīng)的伽馬校正3,然后就得到了轉(zhuǎn)換后的顏色空間。


Windows的顏色變換管線

Windows使用單獨(dú)的管線。其實(shí)這個(gè)例子都不太像是顏色變換管線而是圖像顯示管線了


介紹一下各個(gè)步驟:

  1. 其實(shí)還有第0步,那就是Framebuffer里面渲染得到的顏色數(shù)據(jù),它們都是RGB伽馬空間的,可以是sRGB, sYCC, HDR10, 或者scRGB顏色空間。

  2. 反伽馬,轉(zhuǎn)換到線性空間。

  3. 2a、2b、2c是顏色空間轉(zhuǎn)換的三個(gè)變換,它們乘在一起就是顏色空間的轉(zhuǎn)換矩陣。

    2a:從線性空間轉(zhuǎn)換到CIE XYZ的絕對顏色空間。 2b:做一些例如校準(zhǔn)的調(diào)整,可編程。 2c:從CIE XYZ轉(zhuǎn)換到目標(biāo)的線性的RGB色彩空間上。 2a和Framebuffer相關(guān),2c和顯示器相關(guān),普通應(yīng)用可以控制2b這個(gè)矩陣。 然后上面的1、2都是在顯示器驅(qū)動(dòng)控制下完成的。

  4. 也分兩步。 3a:使用EOTF來伽馬校正,由顯示器驅(qū)動(dòng)完成。 3b:做一些例如校準(zhǔn)的調(diào)整,又是可編程的那種。 3a的轉(zhuǎn)換由wire format color space(實(shí)在搜不到)來指定,但應(yīng)該就是顯示器的顏色空間,例如SDR顯示器就需要做一次伽馬校正,HDR10顯示器就需要做一次逆PQ(或稱ST.2084)電光傳輸函數(shù)的變換。

完成上述步驟后,F(xiàn)ramebuffer(沒錯(cuò),還是在Framebuffer里)里的數(shù)據(jù)就會(huì)掃描到你GPU連接顯示器的那條線里,然后顯示。

Windows的色彩顯示流程

上面其實(shí)還不是完整的顯示過程,第0步顯然也是需要輸入的,這部分說明了上文第0步是怎么來的[8]

HDR

先說說Windows的HDR顯示,首先HDR是在Windows10 1703才支持的,其步驟如下:


  • APP就是每個(gè)窗體應(yīng)用的Framebuffer,可以是任何色彩空間,最高支持32位浮點(diǎn)精度。

  • DWM(Desktop Window Manager)是用來混合窗體的,簡單來說就是把各個(gè)應(yīng)用的窗體給合成成一個(gè)Framebuffer,這一步會(huì)將各種窗體不管什么顏色空間都給轉(zhuǎn)換到scRGB顏色空間下——scRGB是一個(gè)色域?qū)挼诫x譜的線性顏色空間,其色域感覺是就是把sRGB放大了一倍,所以精度也使用了16位浮點(diǎn)。 16位浮點(diǎn)精度的scRGB也稱為CCCS(canonical composition color space),是為了把各種窗體各種不同的色彩空間都統(tǒng)一轉(zhuǎn)換到CCCS方便管理。


  • Display Kernel是將CCCS轉(zhuǎn)換到 wire format color space的(例如BT.2100 ST.2084),然后可選的,Windows會(huì)使用前文所述的Windows的顏色變換管線進(jìn)行處理。

  • System Color Management還沒研究。

SDR

SDR顯示就是一坨,不管應(yīng)用渲染得多精細(xì),SDR顯示都會(huì)Clip到8bpc。

Apps using graphics APIs such as DirectX could perform internal rendering using high bit-depths and extended color spaces; however, the OS supported only 8-bit integer with implicit sRGB and no system color management

然而......

SDR since Windows 11 22H2

喜大普奔,Windows 11 22H2及之后,SDR的顯示流程也和HDR的類似了,至少來說支持超過8bpc的應(yīng)用的數(shù)據(jù)了,超過8bpc的顏轉(zhuǎn)換到CCCS之后會(huì)得到正確的結(jié)果,這樣在10bpc的SDR顯示器上能夠顯示更加豐富的顏色了。


淚目。

把游戲引擎渲染納入考慮......

如果把游戲引擎的渲染流程納入考慮,那么Windows的,線性工作流下的游戲引擎渲染流程就是:


色調(diào)映射發(fā)生在渲染這個(gè)過程。

關(guān)于幀緩沖(Framebuffer)

幀緩沖就是用來存需要顯示在顯示器上數(shù)據(jù)的顯存。在Vulkan API下[9]

對于SDR屏幕,Buffer主要有:

R8G8B8A8_UNORM:首先屏幕的EOTF曲線是始終存在的,這種格式輸入的顏色,圖像接口不會(huì)進(jìn)行任何處理,需要我們自己在shader中進(jìn)行sRGB編碼。

R8G8B8A8_SNORM:這種格式輸入的顏色在顯示之前會(huì)自動(dòng)編碼到SRGB空間(自動(dòng)Gamma矯正),所以我們不需要進(jìn)行處理,也就是說shader當(dāng)中直接寫出線性顏色即可。A通道是線性的。

對于HDR屏幕,Buffer主要有:

R16G16B16_Float:這種格式輸出的是線性浮點(diǎn)數(shù)顏色,數(shù)據(jù)可以超過1,1對應(yīng)的是80nits。使用的是scRGB。

DX的參考:

https://docs.microsoft.com/en-us/windows/win32/direct3darticles/high-dynamic-range

R10G10B10A2_UNORM:這種格式不會(huì)進(jìn)行任何處理,直接結(jié)合EOFT曲線進(jìn)行顯示, 所以需要我們自己在Shader中進(jìn)行PQ編碼。(在我的顯示器上Vulkan不支持,暫時(shí)沒有測試過,但是GL和DX是支持這個(gè)格式的)

VK_COLOR_SPACE_HDR10_ST2084_EXT:說明colorSpace,表示使用BT2020顏色空間,使用ST2048的EOTF。

這些圖形API輸出的幀緩沖應(yīng)該都是上文Windows的色彩顯示流程中APP的輸入,由于Windows的色彩顯示流程階段會(huì)將圖形API輸出的幀緩沖根據(jù)其色彩空間轉(zhuǎn)換到scRGB或說CCCS,因此我們只需要保證在渲染時(shí),渲染出的圖像數(shù)據(jù)和色彩空間匹配即可,按Vulkan來說就是要讓Color Attachment是正確的。

此外,感覺和我一樣搞游戲技術(shù)的,都會(huì)覺得圖像API輸出的幀緩沖就是天,實(shí)際上其他所有窗口都會(huì)輸出幀緩沖數(shù)據(jù),然后交由DWM來合成,合成后的內(nèi)容也是儲(chǔ)存在幀緩沖里,甚至由顯示器驅(qū)動(dòng)進(jìn)行的處理也是存在幀緩沖的——幀緩沖不是什么特別的東西。

色調(diào)映射(Tone Mapping)

上文其實(shí)已經(jīng)解釋過了如何從HDR的顏色空間(如P3-D65)轉(zhuǎn)換到SDR的顏色空間(如sRGB),但是簡單地從色域較大的空間轉(zhuǎn)換到色域較小的空間,一定會(huì)產(chǎn)生SDR中無法表現(xiàn)的顏色,如果直接將超出范圍的顏色進(jìn)行截?cái)?,就?huì)出現(xiàn)如大片相同顏色,因此需要在轉(zhuǎn)換之前先進(jìn)行色調(diào)映射。此外HDR圖像是浮點(diǎn)表示的,可能會(huì)產(chǎn)生值超過1的部分,但SDR是歸一化的色彩空間,所以數(shù)據(jù)上來說,其歸一化后的數(shù)值只能從0到1,要將HDR圖像轉(zhuǎn)換到SDR,就需要色調(diào)映射。(個(gè)人理解,不知道對不對)

色調(diào)映射的算法蠻多,比較常用的有CE Tone Mapping、Filmic Tone Mapping,但現(xiàn)在基本都被ACES色調(diào)映射統(tǒng)一了[10]。這篇文章說ACES色調(diào)映射是ACES提出的,但是我找不到任何證據(jù)(比如ACES官網(wǎng)上查不到任何色調(diào)映射相關(guān)的文字)說明這是ACES提出,而應(yīng)該是Epic Games的圖程Krzysztof Narkowicz基于ACES的ODT提出的,他在他的博客中有提到[11],在研究出來之后稱為了UE的默認(rèn)色調(diào)映射函數(shù),UE的文檔[12]可以看到。


ACES色調(diào)映射不僅比較符合感知,細(xì)節(jié)損失較少,而且代碼很簡單,開銷蠻小,很適合用在游戲里,比如UE4.8及之后就全面支持了ACES色調(diào)映射。下面是Krzysztof Narkowicz寫的最初版的HLSL代碼。

float3 ACESToneMapping(float3 color, float adapted_lum)
{
const float A = 2.51f;
const float B = 0.03f;
const float C = 2.43f;
const float D = 0.59f;
const float E = 0.14f;

color *= adapted_lum;
return (color * (A * color + B)) / (color * (C * color + D) + E);
}

B站不讓插入代碼塊我超。

據(jù)稱,ACES色調(diào)映射不僅可以用于HDR到SDR的轉(zhuǎn)換,在你的HDR顯示器峰值亮度不夠時(shí),還可以進(jìn)行HDR到HDR的轉(zhuǎn)換。

建議稱其為ACES色調(diào)映射或者ACES Filmic Tone Mapping,而不是簡單的ACES,不然很容易和真正的ACES(學(xué)院顏色編碼系統(tǒng))弄混。

ACES(Academy Color Encoding System)流程

中文是學(xué)院顏色編碼系統(tǒng),大家都簡稱為ACES。它的優(yōu)勢在于,給影片制作的全部流程,都提供了一個(gè)統(tǒng)一的色彩管理,且由于其較大的色域,并參與了影片從拍攝到放映的全過程,相比傳統(tǒng)流程來說質(zhì)量更好[13]。


ACES其實(shí)是包含了很多部分的[14]

  • ACES Input Transform(IDT或輸入設(shè)備轉(zhuǎn)換):它將攝影機(jī)獨(dú)有的拍攝參考數(shù)據(jù)轉(zhuǎn)換為線性場景的ACES色彩空間。目前,攝影機(jī)廠商會(huì)為自己的攝影機(jī)系統(tǒng)來開發(fā)IDT轉(zhuǎn)換算法,然后ACES學(xué)院對其進(jìn)行測試和驗(yàn)證,未來ACES學(xué)院會(huì)擁有更多的控制權(quán)。IDT轉(zhuǎn)換和其它ACES轉(zhuǎn)換一樣也是用CTL(色彩轉(zhuǎn)換語言)編程語言來編寫的。IDT并不是完全與攝影機(jī)系統(tǒng)一對一的關(guān)系,有時(shí)也會(huì)將不同的IDT應(yīng)用于同一個(gè)攝影機(jī)系統(tǒng)來補(bǔ)償一些攝影機(jī)系統(tǒng)中因不同設(shè)置所帶來的差別。

  • ACES Look Transform(LMT或外觀修改轉(zhuǎn)換):它是ACES觀看轉(zhuǎn)換(它由LMT、RRT和ODT系統(tǒng)組成)的一部分,它提供一種類似于將LUT應(yīng)用于鏡頭的方法。不同的是,LMT位于ACES色彩的調(diào)色流程之后,且并非所有工作都支持它。

  • Reference Rendering Transform(RRT或參考渲染轉(zhuǎn)換):你可以將其理解為ACES的渲染引擎組件,RRT將場景參考的線性數(shù)據(jù)轉(zhuǎn)換為超寬的顯示參考數(shù)據(jù)集。RRT與ODT一起為顯示創(chuàng)建可視化的數(shù)據(jù)。

  • ACES Output Transform(ODT或輸出設(shè)備轉(zhuǎn)換):這是ACES流程的最后一步,它從RRT獲得超寬和高動(dòng)態(tài)范圍的數(shù)據(jù)后,轉(zhuǎn)換為不同顯示設(shè)備所對應(yīng)的色彩空間,比如P3、Rec.709、Rec.2020等。

ACES的野心不小,它囊括了拍攝、調(diào)色、特效、顯示、歸檔各個(gè)階段,流程可以歸納為如下圖[15]



其中攝像機(jī)部分的流程應(yīng)當(dāng)如下圖,不管是真實(shí)的攝像機(jī)還是各種渲染器/渲染引擎的攝像機(jī),都會(huì)經(jīng)過IDT變換變換到ACES2065-1色彩空間:


ACES Central舉的一個(gè)ACES流程的例子[16]為下圖:


可以看到,在攝像期間,攝像機(jī)捕獲到的自然界的光線會(huì)經(jīng)過OETF先轉(zhuǎn)換成電信號(hào)(現(xiàn)在是在攝像機(jī)自己的log顏色空間下),然后再經(jīng)過IDT(Input Device Transform)后轉(zhuǎn)換到ACES2065-1色彩空間

其實(shí)IDT是ACES第一版的稱呼,現(xiàn)在改名為Input Transform了[17],但好像還是簡稱IDT。

ACES的色彩空間

ACES中規(guī)定和使用了幾個(gè)色彩空間:

  1. AP0(ACES Color Primaries 0)規(guī)定了一組原色,這組原色的色域包含了整個(gè)CIE色度圖,好牛。然后AP1(ACES Color Primaries 1)也規(guī)定了一組原色,這組原色的色域就要小不少。 AP0和AP1的色域[16]如下:


  1. ACES2065-1使用AP0的原色,是一個(gè)線性空間,主要是為了存儲(chǔ)、歸檔素材[18]而設(shè)計(jì)的,

  2. 也是在ACES中用于進(jìn)行色彩交換的中間空間,例如說在進(jìn)行ACEScc轉(zhuǎn)換到P3-D65的過程中,就要先轉(zhuǎn)換到ACES2065-1再轉(zhuǎn)到P3-D65,就類似Windows上使用的scRGB。

  3. ACEScc使用AP1原色,是一個(gè)log空間,這個(gè)空間可以用于分級(jí)調(diào)色(Color Grading)中,說是因?yàn)橛行┱{(diào)色師喜歡在log空間下調(diào)色。

  4. ACEScct和ACEScc差不多,只是在趾(Toe)部會(huì)有一些抬升。

    A variant of ACEScc color space, except that it adds a “toe” to make it more akin to traditional “l(fā)og” curves to generate a distinct “milking” or “fogging” of shadows under lift operations, which is typical of some film looks. This comes from requests to provide colorists with a grading environment more similar to that of traditional legacy log film scan encodings when grading using a working space from the “ACES” family of color spaces.

  5. ACEScg也是使用AP1原色,是一個(gè)線性空間,一般在這個(gè)空間里進(jìn)行合成、特效、繪畫和其他CG相關(guān)的工作。

可能讀者會(huì)有些疑惑,這個(gè)ACEScg是一個(gè)線性空間,那豈不是說我們在進(jìn)行合成時(shí)看到的色彩竟然是處在線性空間的,置顯示器EOTF于何處!

其實(shí)ACES這些色彩空間,都是需要先轉(zhuǎn)換到sRGB、VP-D65等顯示器的色彩空間之后再顯示的——目前還沒有ACES的顯示器——上面流程圖中的RRT&ODT就是進(jìn)行了這些處理,以我們用sRGB屏幕來顯示ACEScg的內(nèi)容來說,會(huì)有一個(gè)ACEScg->ACES2065->sRGB的過程,第一步稱為RRT(Reference Rendering Transform),第二步稱為ODT(Out Device Transform),這兩個(gè)過程合稱為Output Transform(wikipedia說的,感覺有點(diǎn)怪)。

LMT(Look Modification Transform)是用在ACES色彩空間之間進(jìn)行轉(zhuǎn)換的步驟,例如在分級(jí)調(diào)色之前就需要將ACES的某種色彩空間轉(zhuǎn)換到ACEScc或者ACEScct色彩空間中去。

wikipedia上說LMT + RRT + ODT才組成Academy Viewing Transform,但我還不太懂LMT在這里的作用是什么。

注意,讀者如果要去閱讀ACES的文檔,需要理解文檔中提到的scene-referred或者說scene-linear是指ACES2065-1,猜測因?yàn)樗纳士臻g足夠大所以稱之為“referred”。

ACES工作流

伽馬、色彩空間、位深度在ACES的每個(gè)過程中如下圖[17]所示:


  1. 攝像機(jī)。在攝像機(jī)拍攝的流程中,攝像機(jī)拍攝后的圖像應(yīng)該是在攝像機(jī)自身的log空間下的,然后現(xiàn)在攝像機(jī)廠商一般會(huì)提供IDT轉(zhuǎn)換的方法,將圖像轉(zhuǎn)換為ACES2065-1色彩空間的,16位浮點(diǎn)精度的圖像。例如索尼的Raw Viewer[19]就能根據(jù)不同的相機(jī)型號(hào)轉(zhuǎn)換到ACES2065-1色彩空間。

  2. 視覺特效。視覺特效不需要輸入,直接就在ACEScg色彩空間下工作。各種VFX軟件應(yīng)當(dāng)要或?qū)⒁С諥CEScg色彩空間,因?yàn)樵?span id="s0sssss00s" class="md-pair-s ">VFX Reference Platform[19]這里規(guī)定了OpenColorIO和ACES的支持以及版本。OpenColorIO(簡稱OPIO)就是那個(gè)幫助我們在各種顏色空間,甚至于不同型號(hào)的相機(jī)的顏色空間進(jìn)行轉(zhuǎn)換的工具。 對于VFX工作者需要注意的是:

    • 反照率/基本色、發(fā)光之類的表示顏色的貼圖需要轉(zhuǎn)換到ACEScg空間再賦予到材質(zhì)上。一般的貼圖都是在sRGB色彩空間下的,因此需要先進(jìn)行一個(gè)sRGB到ACEScg的變換。可以使用OPIO從 "Utility - sRGB - Texture"轉(zhuǎn)換到“ACES - ACEScg”,我想一般在渲染引擎/渲染器里都會(huì)有集成。

    • 其他的法線、置換、金屬度/高光度、粗糙度/光滑度等貼圖,還是需要處在線性空間。

    • 渲染的影片仍然在ACEScg色彩空間中。

  3. 剪輯、合成等都是在ACEScg下進(jìn)行的。

  4. 調(diào)色是在ACEScc下進(jìn)行的,需要先從ACEScg或者ACES2065-1經(jīng)過LMT轉(zhuǎn)換。

  5. Output Transform,也就是RRT和ODT會(huì)將最后的成片進(jìn)行輸出,輸出到顯示器或者銀幕。我沒有查到是在什么階段進(jìn)行的交付,我猜測是看你流程最后一步是在ACEScc/ACEScct還是ACEScg,然后就在這個(gè)顏色空間交付,因?yàn)轱@然經(jīng)過RRT轉(zhuǎn)換會(huì)有精度損失(雖然遲早都會(huì)發(fā)生),還有一個(gè)猜測是在RRT之后轉(zhuǎn)換到ACES2065-1交付,這樣比較統(tǒng)一。我傾向于認(rèn)為是后者。

本來想再寫一點(diǎn)線性工作流和伽馬工作流的,不過這個(gè)前人應(yīng)該都敘述比較詳細(xì)了,就偷懶了,可以參考這篇文章[20]。

色彩空間、HDR和ACES的評(píng)論 (共 條)

分享到微博請遵守國家法律
浮梁县| 楚雄市| 山西省| 大兴区| 乌审旗| 辽中县| 山东省| 行唐县| 河曲县| 温州市| 灵山县| 保定市| 关岭| 图木舒克市| 凌源市| 上虞市| 长沙市| 江达县| 东安县| 绵阳市| 沈丘县| 贵溪市| 咸宁市| 莆田市| 桃源县| 长乐市| 新野县| 广德县| 交城县| 英吉沙县| 叙永县| 绥化市| 繁昌县| 开封市| 清徐县| 新昌县| 霍林郭勒市| 陈巴尔虎旗| 石林| 贵溪市| 屏南县|