閑話ACES(修訂)


最近身邊的人見面就聊ACES,ACES儼然已經是行業熱點了。

ACES的確更高效的解決了色彩一致性的問題,這是符合歷史進程的(+1s),無疑值得肯定。但由於色彩管理意識不強,關於ACES的認識就存在着不同程度的偏差。毫無疑問,脫離色彩管理孤立地學習ACES很容易產生偏頗。

 

ACES簡介(口水話,可跳過)

色彩對人而言只是一種感覺,感覺會隨參考和心情而變化,但色彩又是客觀存在的,它由物體的物理特性和光照所決定,所以它又是可以量化的。

什么是色彩管理,通俗一點,色彩管理確保攝影機拍攝的原始數據在各類放映設備上都觀感一致。DI環節、CG制作環節和放映環節觀感一致,色彩管理的目的就達到了。

那么如何統一這些環節的色彩觀感呢?首先這個色彩是需要被量化的,只有色彩被量化,才能進行計算,才能被控制。

當你把某些場景用數字攝影機記錄下來的那一刻起,這些東西都是已經被量化的。它們是如何被量化的?在色彩科學(color science)發展的歷史進程中出現了多個色彩模型,來規定色彩的向量空間,量化這些分量,並且限定色域。

隨着攝影機型號及品牌日趨豐富,其能表達的色域和色彩編碼的方式也越來越多,它們都可以涵蓋到色彩空間這個概念中,要統一這些色彩空間,就需要有一個公共的色彩編碼系統在這些色彩空間之間建立轉換關系,而這個公共的色彩編碼系統一定是與設備無關的。

有些攝影機輸出的raw文件是場景相關的(可以認為是linear編碼,比如RED攝影機),有些攝影機輸出的raw文件是設備相關的(可以認為是log編碼,比如ARRI攝影機),采用log編碼方式的raw文件都可以通過LUT轉換為linear編碼,雖然linear的編碼方式已經可以參與線性計算了,但此時的色彩空間依然處在不同子空間中,為了統一這些子空間,ACES色彩空間就橫空出世了。

廣義上講ACES是學院色彩編碼系統(Academy Color Encoding System),它是一套色彩空間及編碼方式的轉換體系;狹義上講,ACES指的是這套體系中最為核心的、用作中間交換的色彩空間,這個色彩空間的全名是ACES2065-1,一般簡稱ACES。這個色彩空間色域極大,你幾乎無法觸及它的色域極限。放個ACES及其相關色彩空間的色域對比圖:

ACES色彩空間寬闊的色域遠超其他標准,OpenEXR格式提供了16比特浮點數據結構也剛好能支持這個色域的存儲,這當然就為統一各類色彩空間創造了條件,各類色彩標准的色域幾乎都在這個范圍,完全不用擔心某個raw文件的linear編碼的色彩空間轉換進ACES時會丟失色彩信息,也不用擔心ACES轉換回這些色彩空間時會造成臨界色彩溢出(實際上這個問題還需要時間解決)。

ACES的出現就是歷史的必然。

 

但大部分制作團隊的問題在於缺乏色彩管理的理論知識和經驗,而不是沒有采用ACES這類新技術,即使采用了ACES,如果缺少色彩管理經驗,問題一樣無法解決。

由於我的工作重點並不在這里,我就不把相關知識再扒一遍了,簡單舉個Nuke的例子來談談色彩管理和ACES吧。

 

  • 在未采用ACES方案進行色彩管理的情況下,想要統一DI環節和制作環節的色彩,只需要DI提供相應LUT即可。Nuke中的viewerprocess掛上該LUT(一般還要再轉換到rec709色彩空間中),就可以統一DI環節和制作環節的色彩觀感了。
  • 在采用ACES方案進行色彩管理的情況下,ACEScc和ACEScg可以架起拍攝、DI環節與制作環節的橋梁,且配套工具內置大部分攝影機的LUT,DI也不需要額外提供LUT,確實省了功夫。
  • 如果拍攝環節、DI環節采用ACES的色彩管理流程,且DI軟件(Davince Resolve)的ACES Output Device Transform選擇ACEScg,並輸出為exr格式,再交付到后續環節,那么后續VFX制作環節就不需要做過多設置,因為ACEScg在這里就相當於掛載了LUT並以linear形式編碼存儲了,Nuke和Maya都能正確識別自動配置,這兩個軟件的工作空間都是在ACEScg中的,默認輸出也是ACEScg的色彩空間,但值得注意的是:輸出給下一個環節(Publish)的色彩空間需要根據情況選擇ACES2065-1或者ACEScc,這依然需要和DI環節或者IO環節反復確認,商定方案。
    有三維的小伙伴會擔心輸出的ACES色彩空間的線性OpenEXR文件顏色過於艷麗,動態范圍不足,色彩信息大幅損失。
    這其實是多慮了,因為ACES的色域足夠大,幾乎不會有溢出的情況。實際上你也可以把Maya輸出的exr文件導入Nuke,再
    利用OICOFileTransform節點多次轉換回默認linear色彩空間來驗證這個特性。
    如果擔心的是制作時不方便觀察高亮區域和暗部細節,可以請技術部門或者DI部門提供預覽HDR素材的LUT。你可以在多個view transform之間切換,以觀看不同的效果。
  • 如果拍攝環節、DI環節都沒有采用ACES,而你想在制作環節中獨立引入ACES進行色彩管理,就必須要考慮轉換的問題,需要手動設置。以合成環節為例,如果你的素材是RED ONE拍攝的,以RedLogFilm的形式編碼且文件格式為dpx,那就有必要修改default LUT settings中的log files選項,如圖:

    實際上在拍攝環節、DI環節未采用ACES進行色彩管理的情況下,我是完全不推薦在VFX流程中強行使用ACES的,因為你無法確定你拿到的dpx序列(或者exr序列)與.r3d序列在色彩空間和編碼上是否一致,你拿到的dpx序列極有可能是從RedLog轉到Cineon的;而且很有可能DI環節並沒有采用ACES的色彩管理方案,你的顯示色彩與DI環節的顯示色彩也不一定能一致。所以請一定與DI環節或者IO環節反復確認過此事。

    如果一定要在VFX環節用ACES,建議用.r3d文件或者.ari作為初始序列,自行做raw-->ACEScg的轉換。官方也是這樣推薦的。

 

下面再以阿萊RAW文件舉兩個例子。

 

  • 如果拍攝環節、DI環節都沒有采用ACES,你想在制作環節中獨立引入ACES進行色彩管理,就必須要考慮轉換的問題,需要手動設置。
    以合成環節為例,如果你的素材是阿萊攝影機拍攝的,原始文件就是.ari格式,就需要手動做一個色彩空間轉換,如圖:
  • 如果拍攝環節、DI環節都沒有采用ACES,你想在制作環節中獨立引入ACES進行色彩管理,就必須要考慮轉換的問題,需要手動設置。
    以合成環節為例,如果你的素材是阿萊攝影機拍攝的,而你從DI部門或者IO部門拿到的序列是exr文件格式,且並未經過編碼轉換,那還是需要做手動做這樣一個色彩空間轉換,如圖:

 

下面再稍微談談合成外的環節。Maya中的情況就稍有不同,因為Maya並沒有集成OICO(實際上Flame,Lustre,Houdini,Photoshop都沒有集成OICO,依靠自身的色彩管理模塊來實現ACES),所以在Maya中你不能做類似Nuke中的轉換工作。想在Maya中采用ACES色彩方案你就需要打開Preferences面板,將其設置如下: 
     

這樣的話,圖片導入的色彩空間和渲染的工作空間以及顯示、輸出的色彩空間就都是ACEScg了。你可以通過為相機添加一個imagePlane並渲染出來與原序列做對比的方法來驗證,此處略過。

 

 

顯然,無論是否采用ACES,VFX環節都需要與DI環節密切配合,請反復與DI確認色彩管理方式,不要一味嘗新。

 

關於ACES在Nuke中的實現(詳情請看源碼)

在Nuke安裝目錄中可以找到如下文件夾:”..\plugins\OCIOConfigs\configs\aces_1.0.3\python\aces_ocio\colorspaces“,里面有各類轉換的實現代碼。隨便翻翻就能看到大部分色彩空間轉換到ACES中都需要LUT來映射(RED除外,它的成像過程是典型的場景相關--Scene Refered,r3d文件的原始色彩空間幾乎等價ACEScg),而且幾乎都是先轉到某線性空間再空間變換到ACES中。只不過這一部分封裝的比較好,用戶分分鍾不明覺厲。而且其實這一套方法和Nuke的線性工作流是異曲同工的,換句話講,ACES和Nuke默認色彩管理方案在實現上套路極為相似。更進一步,其實ACEScg和Nuke自身的默認線性工作色彩空間基本一致,這一點你可以通過勾選Read節點的raw data選項來確定。

至於ACES鼓吹的純數學轉換,僅限於坐標系變換,比如ACES2065-1<-->CIE XYZ、AP0<-->AP1。這都是線性計算,只是空間變換而已。其實一些能被擬合的LUT也可以通過數學計算實現正逆轉換。

還有一些小伙伴認為只有在ACES中才能實現LUT的逆運算,但實際上ACES中LUT的反轉是通過OICOFileTransform節點實現的,用這個節點你可以反轉幾乎所有LUT,實際上ACES就是在OICO色彩管理系統下運行的。更進一步,Nuke的OICO config設置為ACES時,色彩觀感一樣可以通過OICOFileTransform的多次轉換回到nuke-default。所以ACES在實現層面上並不神奇,通過LUT的轉換加簡單的線性變換,提供一個統一的、中立的運算空間(你管它叫工作空間、work area、color space、working space都行)。它勝在提供了一個被各大軟硬件廠商認可的色彩標准,這個標准具備作為中間色彩空間的實力,它能夠統一現今大部分色彩空間。總結一下就是:OICOFileTransform提供了轉換色彩空間的計算工具,而ACES提供了一個能存儲任意色彩的數據結構,以確保轉換過程不會溢出。

其實只要具備色彩管理的概念,知道OICO的相關知識,有一些閱讀代碼的能力,這類常識性的認識誤區都是可以避免的。

 

 

(剛聊開兩百字就匆匆結束,似乎也沒怎么聊色彩管理)

最后再提一下,無論采用怎樣的技術,都要充分理解它的應用場景和該場景背后的技術體系,盡量避免孤立的學習新技術。

一般在有DI部門的公司里,色彩管理工作都不差,可以找幾個理論基礎扎實的調色師問問,術業有專攻,此話不假。

再次強調,ACES不是銀彈。

對新技術有興趣是好事,但這是建立在對舊有知識體系的理解和尊重之上的。舊的沒明白,就躍進搞新的,只會背負更多的技術債,以上。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM