跳轉到內容

分形/計算機圖形技術/工作流程

來自華夏公益教科書
 Image processing or pipeline of 2D graphic or workflow

維基百科中的圖形管道

色彩理論:色彩梯度

影像處理階段

  • 色彩校準(對於參與色彩管理工作流程的所有裝置)[1]
  • 預處理
  • 處理(捕捉影像 = 拍攝照片,建立數字影像)
  • 後期處理 = 編輯捕捉到的影像 = 影像的修改:圖形演算法


電影(電影)製作包括五個主要階段:[2]

  • 開發:建立電影創意,購買現有智慧財產權的權利,等等,並編寫劇本。 融資該專案的資金並獲得資金。
  • 前期製作:為拍攝做安排和準備,例如聘請演員和攝製組、選擇拍攝地點和建造佈景。
  • 製作:在電影拍攝期間錄製電影的原始素材和其他元素,包括主要拍攝
  • 後期製作:將錄製好的電影的畫面、聲音和視覺效果編輯並組合成最終產品。
  • 發行:完成的電影將在電影院發行、營銷和放映,或發行到家庭錄影供觀看。

色彩空間

[編輯 | 編輯原始碼]

為了獲得正確的結果,需要使用不同的色彩空間來處理:[3]

  • 渲染,
  • 顯示和列印
  • 影像儲存。

渲染和合成最好在場景線性色彩空間中進行,它更接近於自然,並且使計算更具物理準確性。

2D 管道

[編輯 | 編輯原始碼]

另一個示例,對於影像的每個畫素

  • 獲取記憶體 1D 陣列的整數座標
  • 計算虛擬 2D 陣列的整數座標
  • 計算畫素的世界座標
  • 計算該畫素的表示函式的值
  • 計算畫素的顏色

資料結構

  • 記憶體 1D 陣列
  • 虛擬 2D 陣列

檔案



"use pro editing techniques by working non-destructively. This means, don’t edit on the original image layer. Instead, duplicate the layer for every type of edit you plan to do. This way, you can repeat the editing steps with a duplicate file at 16 bits." Chris Parker[4]


步驟[5][6]

  • 裁剪:將世界座標中的物件轉換為物件子集 == 將世界視窗應用於物件
  • 視窗到視口對映
  • 光柵化 =(掃描轉換)– 將高階物件描述轉換為幀緩衝區中的畫素顏色
  • 顯示/儲存

原始圖形檔案

  • 包含以二進位制格式儲存的原始畫素資料(數字)
  • 程式可以儲存原始迭代資料以供以後著色或其他分析。 [7]
  • 因為檔案在讀取/開啟之前不包含任何影像格式資訊,所以需要有關以下資訊:
    • 影像尺寸
    • 畫素資料格式
    • 畫素掃描順序
    • 位元組排列(小端或大端格式)


原始檔案處理階段[8][9][10]


操作:

  • 讀取:從磁碟讀取並將資料儲存到記憶體陣列
  • 著色 = 將畫素的原始資料資訊轉換為畫素顏色。
  • 曝光值調整
  • 白平衡調整
  • 色調和色調調整
  • 高光和陰影恢復
  • 鮮豔度和飽和度調整
  • 裁剪和旋轉
  • 降噪
  • 銳化
  • 以下是一些在轉換為 jpg 檔案後首選的操作
    • 紅眼消除
    • 克隆的區域性修飾以擦除框架中不需要的物件
    • 新增框架
    • 與其他輸出檔案混合,例如更改背景。
    • 儲存


轉換和著色,對於每個畫素都執行以下操作

pgm[i] = raw[i]•m

RAW 影像處理示例

京浩許的示例[11]

  • 處理前的原始影像
  • 二進位制影像
  • 輪廓影像
  • 預處理後的骨架影像
  • 原始影像和輪廓影像的合成影像
  • 原始影像和骨架影像的合成影像


ImageJ 對原始分形的影像處理隨時間變化



提示

  • “在將相機影像緩衝區顯示到螢幕之前,將全屏濾鏡和效果應用於相機影像緩衝區的過程。它可以以很少的設定時間顯著改善產品的視覺效果。”[12]

完整 HDR 管道

[編輯 | 編輯原始碼]
  • HDR 影像
  • HLG 或 PQ 傳輸函式
  • HDR 顯示器


EIZO 的 HDR 內容製作工作流程:[13]

  • 檢查拍攝資料的
  • VFX = 視覺特效
  • 合成工作
  • 最終顏色分級。

HDR 到 SDR 管道

[編輯 | 編輯原始碼]

從 HDR 到色調對映 SDR[14]

  • HDR 影像
  • Reinhard & Drago 色調對映
  • SDR 顯示器 = 從 HDR 色調對映的 SDR 影像

完整的 SDR 管道

[編輯 | 編輯原始碼]
  • SDR 影像
  • 伽馬傳遞函式(伽馬校正)[15]
  • SDR 顯示器(SRGB)

顏色工作流程

[編輯 | 編輯原始碼]

渲染意圖 : 顏色操作應牢記用例

  • 以模擬人類感知
  • 或光的物理行為(基於物理的渲染 PBR)
  • RGB 的線性版本(不是 sRGB)[16]

色彩空間

  • 影像以 sRGB 格式儲存在磁碟上並傳遞到顯示器,該格式在強度方面近似於感知上的一致性。[17]
  • 著色器數學線上性 RGB 中完成,該格式在強度方面在物理上是統一的。
  • 列印在 CMYK 中

另請參閱渲染風格

  • 無偏渲染 = 照片級渲染
  • 非照片級渲染
    • 藝術渲染
  • 超現實渲染 = 將照片級逼真度與非照片級逼真度相結合的渲染風格



Correct procedure when working with graphics is to convert all gamma encoded media to linear intensities, perform any calculation/blending/averaging, and convert back to gamma encoding.
Rendering and compositing is best done in scene linear color space, which corresponds more closely to nature, and makes computations more physically accurate. ( Blender doc)

線性工作流程

[編輯 | 編輯原始碼]

線性工作流程使用線性色彩空間進行渲染[18]

  • "在現實世界中,我們感知到的顏色都線上性色彩空間中。為了讓顯示器模擬現實世界,它也需要以線性方式顯示。由於顯示器硬體的限制和影像最佳化需求,影像會使用伽馬校正進行處理和儲存。"
  • 由於舊 CRT 顯示器技術的限制,影像只能透過伽馬 2.2 色彩校正進行顯示。即使現代顯示器可以直接顯示線性影像,伽馬 2.2 也已成為一種標準約定
  • 無需將 .hdr 和 .exr(32 位)等浮點影像格式線性化,它們已經在伽馬空間 1.0 中。
  • 當相機拍攝影像時,會儲存一個 8 點陣圖像,以透過 sRGB 伽馬 0.45 處理實現顯示器相容性和檔案最佳化。


sRGB Image Gamma 0.45 + Monitor Gamma 2.2 = Final Display Gamma 1  

Unity3D 中的工作流程

[編輯 | 編輯原始碼]

Unity3D[19]

  • 線性色彩空間工作流程:線性色彩空間渲染可提供更精確的結果
  • 伽馬色彩空間工作流程:伽馬色彩空間是歷史上的標準格式 = 不要使用它

Poimandres 的顏色緩衝區

[編輯 | 編輯原始碼]

(開源開發人員集體):[20]

  • 無符號位元組型別 sRGB 幀緩衝區(= 每個顏色通道 8 位)用於儲存中間結果。這是在硬體支援、效率和質量之間的權衡。對於低精度 sRGB 緩衝區,顏色將被鉗制到 [0.0, 1.0],資訊丟失將轉移到較暗的頻譜,這會導致暗場景中出現明顯的條帶。
  • 線性結果通常需要每個顏色通道至少 12 位才能防止顏色降級和條帶。線性、高精度 HalfFloatType 緩衝區沒有這些問題,是臺式裝置上 HDR 類工作流程的首選。


CUVI 中的顏色管道

[編輯 | 編輯原始碼]

Krita [21](一個用於成像和計算機視覺應用的 GPU 加速庫。)

Let's take a typical color pipeline and measure its performance on one of the entry level GPUs. Any color pipeline almost always starts with the Raw image. Before converting to RGB, you might want to do some processing on the raw which may include applying LUTs (look up tables), FPN (fixed point noise) removal and fixing white balance. Next comes demosaic/debayer followed by several further enhancement functions and a color space conversion into the desired format. This pipeline can perform in real-time on a decent entry level GPU on an 8k images and at over 100 FPS on a 2k image:

桌面出版工作流程

[編輯 | 編輯原始碼]
  • GIMP 提供頂級的色彩管理功能,以確保在數字和印刷媒體上高保真色彩再現。
  • 它最適合在涉及其他自由軟體(例如 Scribus、Inkscape 和 SwatchBooker)的工作流程中使用。


Krita 顏色工作流程

[編輯 | 編輯原始碼]

Krita 擁有兩個專門用於色彩管理的系統[22]

  • lcms2,它處理 ICC 配置檔案,透過使用參考空間,使顏色在裝置的多種解釋(螢幕、印表機)上保持一致。用於與以下程式連線 : Gimp 2.9+、Inkscape、digiKam 和 Scribus
  • OCIO,它處理 LUT 色彩管理,用於操作這些顏色的解釋,用於與 Blender 和 Natron 等程式連線

Skia:二維圖形庫


Skia 處理的所有色彩空間都透過如何將顏色從該色彩空間轉換為稱為 XYZ D50 的通用“連線”色彩空間來描述自身。


我們可以從相同的描述中推斷出如何從 XYZ D50 空間轉換回原始色彩空間。


XYZ D50 是一個在三個維度上表示的色彩空間,就像 RGB 一樣,但 XYZ 部分與 RGB 完全不同,而是這些通道的線性混合。Y 最接近您認為的亮度,但 X 和 Z 更加抽象。如果你熟悉 YUV,它有點像 YUV。“D50”部分是指此空間的白點,約為 5000 開爾文。

所有色彩管理繪製都分為六部分

  • 三個步驟將源顏色連線到 XYZ D50 空間
  • 然後三個對稱步驟從 XYZ D50 連接回目標色彩空間。

這些步驟中的一些可以互相抵消成為無操作,有時甚至整個過程都變成了無操作,當源空間和目標空間相同時。



色彩管理步驟

  • 如果源顏色是預乘的,則取消預乘 - alpha 不參與色彩管理,如果它被乘,我們需要將其除掉使用源色彩空間的傳遞函式將源顏色線性化
  • 透過乘以一個 3x3 矩陣將這些未預乘的線性源顏色轉換為 XYZ D50 色域
  • 透過乘以一個 3x3 矩陣將這些 XYZ D50 顏色轉換為目標色域
  • 使用目標色彩空間的傳遞函式的逆函式對該顏色進行編碼
  • 如果目標是預乘的,則用 alpha 預乘

色彩管理工作流程的要求

[編輯 | 編輯原始碼]
  • 使用源或輸出表徵軟體獲得的準確裝置配置檔案。
  • 正確載入的顯示卡 LUT(或不需要 LUT 調整的顯示器配置檔案)。
  • 配置為使用正確顯示器配置檔案和輸入/輸出配置檔案的色彩管理應用程式,支援對渲染意圖和黑點補償的控制。

校準和配置需要

  • 對於輸入裝置(掃描器、相機等),需要一個顏色目標,配置檔案軟體將該目標與製造商提供的顏色值進行比較。
  • 或對於輸出裝置(顯示器、印表機等),使用特定裝置(分光光度計、色度計或分光色度計)讀取顏色色塊值,並將測量的值與最初發送的輸出值進行比較。

顯示器校準和配置

[編輯 | 編輯原始碼]
KDE Plasma 5 上的顏色校正設定面板

在任何色彩管理工作流程中,顯示器都是關鍵因素之一,因為大多數影像都需要透過影像軟體處理和進行顏色適應,因此顯示器呈現準確顏色的能力至關重要。

顯示器色彩管理包括校準和配置。[23][24]

DisplayCAL 上的校準曲線

第一步,校準,是透過調整顯示器控制和顯示卡的輸出(透過校準曲線)來匹配使用者可定義的特性,例如亮度、白點和伽馬。校準設定儲存在 .cal 檔案中。第二步,配置(表徵),包括測量校準後的顯示器的響應並將其記錄在顏色配置檔案中。配置檔案儲存在 .icc 檔案(“ICC 檔案”)中。為了方便起見,校準設定通常與配置檔案一起儲存在 ICC 檔案中。

請注意,.icm 檔案與 .icc 檔案相同 - 唯一的區別在於名稱。

要檢視正確的顏色,需要使用支援顯示器配置檔案的應用程式,以及與配置顯示器時使用的相同校準。僅進行校準不會產生準確的顏色。如果在配置顯示器之前對顯示器進行了校準,則配置檔案僅在與相同校準(相同的顯示器控制調整和載入到顯示卡查詢表中的相同校準曲線)一起使用時才會產生正確的顏色。macOS 內建支援載入校準曲線和安裝系統範圍的配置檔案。從 Windows 7 開始,允許載入校準曲線,但此功能必須手動啟用。[25] Linux 和舊版 Windows 需要使用獨立的 LUT 載入器。

裝置配置檔案

[編輯 | 編輯原始碼]

ICC 配置檔案是跨平臺的,因此可以在其他作業系統上建立並在 Linux 下使用。但是,顯示器配置檔案需要一些額外的注意。由於顯示器配置檔案取決於顯示器本身和顯示卡,因此顯示器配置檔案應僅與建立配置檔案時使用的相同顯示器和顯示卡一起使用。建立配置檔案後,不應調整顯示器設定。此外,由於大多數校準軟體在校準期間使用 LUT 調整,因此每次啟動顯示伺服器(X11、Wayland)時(例如,每次圖形登入時)都必須載入相應的 LUT。

在不太可能的情況下,如果 Linux 不支援色度計,可以在 Windows 或 macOS 下建立配置檔案並在 Linux 下使用。

顯示通道查詢表

[編輯 | 編輯原始碼]

有兩種方法可以載入顯示通道 LUT

  1. 建立一個不修改顯示卡 LUT 的配置檔案,因此不需要稍後載入 LUT。理想情況下,這種方法將依賴於支援顯示資料通道 (DDC) 的顯示器 - 這些顯示器的內部顯示器設定透過校準軟體進行設定。不幸的是,支援透過顯示資料通道 (DDC) 進行這些調整的顯示器並不常見,而且通常價格昂貴。Linux 上只有一款校準軟體可以與支援顯示資料通道 (DDC) 的顯示器互動。[26] 對於主流顯示器,有幾個選項存在
    • BasICColor 軟體支援市場上大多數色度計,允許使用者透過顯示器介面調整顯示器輸出,然後選擇“配置檔案,不校準”選項。透過這樣做,可以建立一個不需要顯示卡 LUT 調整的配置檔案。
    • 對於 EyeOne 裝置,EyeOne Match 允許使用者校準到“原生”伽馬和白點目標,這將導致校準後顯示的 LUT 調整曲線顯示為簡單的線性 1:1 對映(從角到角的直線)。
    • BasICColor 和 EyeOne Match 目前均不支援 Linux,但它們能夠建立不需要 LUT 調整的配置檔案。
  2. 使用 LUT 載入器實際載入校準期間準備的配置檔案中包含的 LUT 調整。根據文件,這些載入器本身不會修改顯示卡 LUT,而是透過修改 X 伺服器伽馬斜坡來實現相同型別的調整。載入器適用於使用 X.org 或 XFree86 的 Linux 發行版 - Linux 上兩個最流行的 X 伺服器。其他 X 伺服器不能保證與當前可用的載入器一起使用。Linux 提供了兩個 LUT 載入器
    • Xcalib 是其中一個載入器,儘管它是一個命令列實用程式,但使用起來非常容易。
    • dispwin 是 Argyll CMS 的一部分。
    • 如果由於任何原因無法載入 LUT,仍然建議執行校準的初始階段,在這些階段中,校準軟體會要求使用者對顯示器進行一些手動調整,因為這通常可以改善顯示器線性,並提供有關其色溫的資訊。特別推薦用於 CRT 顯示器。

色彩管理應用程式

[編輯 | 編輯原始碼]

在支援 ICC 的應用程式中,重要的是確保為裝置分配了正確的配置檔案,主要是顯示器和印表機。某些 Linux 應用程式可以自動檢測顯示器配置檔案,而其他應用程式則需要手動指定。

儘管 Linux 上沒有指定的位置來儲存裝置配置檔案,但 /usr/share/color/icc/ 已成為事實上的標準。

大多數在 WINE 下執行的應用程式尚未針對顏色準確性進行全面測試。雖然 8 位每畫素 (bpp) 程式由於深度轉換錯誤可能會遇到一些顏色解析度問題,但更高深度應用程式中的顏色應該準確,只要這些程式根據用於載入 LUT 的相同顯示器配置檔案執行其色域轉換,前提是已載入相應的 LUT 調整。

硬體加速

[編輯 | 編輯原始碼]


另請參閱

[編輯 | 編輯原始碼]

參考文獻

[編輯 | 編輯原始碼]
  1. sharp/nec displays : colourManagement
  2. Steiff, Josef (2005). 獨立電影製作的完整白痴指南. Alpha Books. pp. 26–28.
  3. blender 手冊: 顏色管理
  4. GIMP 位深:8 位、16 位或 32 位?{完整指南},作者:Chris Parker
  5. educativesite: 2D 圖形管線方框圖
  6. 麻省理工學院 6.837 秋季 2012 年本科計算機圖形學講義
  7. 模擬距離估計著色,作者:Claude Heiland-Allen
  8. cnet: 如何處理和編輯 RAW 檔案
  9. techradar: 如何以正確的方式處理 RAW 影像
  10. 如何按正確的順序對照片進行後期處理,作者:Jackson Couse,2016 年 10 月 24 日
  11. 下頜骨小梁骨的分形分析:用於瓷磚計數法的最佳瓷磚大小,作者:Kyung-Hoe Huh 等人
  12. unity3d 手冊
  13. eizo: HDR 的來龍去脈——HDR 工作流程
  14. 評估 HDR 管線相對於色調對映 SDR 管線的效能,作者:Hamzeh Issa
  15. 影像中的傳遞函式,維基百科
  16. gamma 校正,作者:Mikael Hvidtfeldt Christensen
  17. computergraphics stackexchange 問題:對於著色器數學,為什麼線性 RGB 應該保持 sRGB 的色域
  18. forum reallusion: 1-PBR-線性工作流程
  19. unity3d 手冊: 線性照明
  20. pmndrs: github 上的後期處理
  21. cuvilib wiki: 效能和基準測試
  22. krita: 顏色管理工作流程
  23. "校準與表徵". 2017-11-28.
  24. "顯示器校準和配置的基本概念". 2017-11-28.
  25. "MS Windows 7 或更高版本:校準在登入時不會自動載入". 2017-11-28.
  26. NEC Display Solutions SpectraViewII 支援 Linux
華夏公益教科書