Re: [問題] 色域的概念 log to 709

看板Filming作者 (Zabiela)時間2年前 (2021/08/22 06:45), 2年前編輯推噓17(17011)
留言28則, 13人參與, 3年前最新討論串2/5 (看更多)
先上一張圖,然後下面解釋: https://i.imgur.com/LRmfXd6.jpg
由左至右是一幅景象被你看到、被相機記錄的影像旅程。 從左邊說起,光就是電磁波,可以被眼睛看到的電磁波叫可見光 (A區)。 接下來我們要複習一點點高中生物,很快就結束, 這會為接下來講到相機的部分提供一個熟悉的類比,所以是必要的。 場景中的亮度依照我們眼睛的「習慣」(這點很重要,最後補充說明), 可以分為 X、Y、Z 三區,其中每一區從頂到底,細分為 h、m、l 高中低, 例如暗部 Z 和中間調 Y 的交界點就是 Zh 或 Yl,後面都這樣指稱比較省事。 前面說到光就是電磁波,所謂的「亮」,就能粗略理解成「電磁波的訊號很強」, 而圖中有很多像刻度的彩色小橫槓,我們叫它訊號條, 位置高的訊號條,就負責攜帶場景裡高亮度 (高訊號強度) 的資訊。 場景中「亮的部分」送到眼睛以後,就會轉換成高位訊號條 (B區), 然後大腦再把高位訊號條解析為高亮度,反之亦然。 舉例來說,太陽和水面的反光這些影像資訊在我們眼裡就是 X 區最頂的那條; 膚色跨度大,則大致上對應到 Y 區那幾條,以此類推。 亮度和訊號強度的對應 OK 了,但麻煩的是「顏色」這個概念。 視網膜透過三種錐細胞 (L、M、S) 來感光辨色,和一種桿細胞 (Rod) 負責暗視覺 (B區), 然後把訊號送大腦處理,這就是看到傷眼的東西頭痛的正確位置, 其中 LMS 比較重要,這邊非常簡略地說明一下: LMS 這三種感光細胞分別對某個波長的光敏感 (不等於 RGB), 場景中的各種顏色和亮度會分別對 LMS 造成程度不一的刺激, 接著只要知道這三種刺激的強度比例,大腦就能解析為「你看到某顏色」, 也就是說,你完全可以把顏色這個概念理解為「LMS 訊號的強度配方」。 所以: 「亮度」就是訊號的強度, 「顏色」就是三種訊號的強度配方, 至此我們就能用訊號強度來描述一切了。 下一個來看訊號強度的分階。 訊號條之間的距離就是訊號強度分階的細緻程度, 當一個東西愈來愈亮 (訊號越來越強), 到達一個程度後,在我們眼裡就會視為更上一階; 也就是說,如果有兩個東西之間的亮度差異小於神經訊號條的分階跨度, 我們就會分不出來哪個亮,因為差異太小了,會被眼睛認為是同一個訊號強度。 反過來講,如果你有一套色鉛筆, 它們之間的亮度和顏色這些訊號差異若大於你能辨識的階度, 你就會視為色階,而不是完美滑順的彩色漸層。 現在開始講相機,我再重貼一次第一張圖,閱讀比較方便: https://i.imgur.com/LRmfXd6.jpg
你帶著相機在美麗的海灘上,還有好多穿著比基尼的正妹在玩水, 刺眼的烈日下,波光粼粼,和這些正妹的笑容一樣耀眼, 海灘旁的防風林也坐滿了在陰影下休息的情侶, 單身的你,和他人幸福的對比,就如同此景的動態範圍般寬廣。 好了,在 B 的地方此景映入你眼簾,當你舉起相機開始錄影時會發生什麼事? 首先,太陽和那些海水的反光超出你相機的動態範圍,所以細節丟失了, 其他有記錄到的地方,相機的 sensor 就如同你眼睛運作的方式, 開始把場景拆解成不同強度的訊號條。 但與你眼睛不同的是, 相機很弔詭地用了一堆訊號條在描述天空白雲的細緻層次, 陽光下的膚色反而交代得沒那麼詳細,陰影下的肉體更是草草帶過, 沒有辦法,這是 sensor 的物理特性, 反正無論如何都比你眼睛的明暗解析來得細緻就沒差,看不出來就好。 麻煩的地方是, 相機忠實紀錄很暗到很亮的完整畫面, 可是你家的螢幕只能投射出要亮不亮、要暗不暗的一小段範圍, 跟大自然的高反差、高飽和根本不能比,這樣要怎麼重現海灘美景? 如果不能的話,那平常看的影片是怎麼辦到的? 這邊就要先從色彩空間講起了。 https://i.imgur.com/7es95BX.jpg
人總有製表的習慣,顏色也是如此, 你看到像蝴蝶翅膀的色塊,就是透過一個坐標系描述了所有人類眼睛能看到的顏色, 它叫 CIE 1931 色彩空間 (Color Space,且實際上是三維的,但現在不重要)。 既然是坐標系,它就是絕對的色彩標準,每個顏色對應唯一的坐標, 現在,我們在圖中藍色、綠色、紅色 (R, G, B) 的區域各選一個原色 (Primary), 把它們做成燈泡, 這三個燈泡發出的色光就能透過亮暗 (訊號強弱) 的比例, 組合出等效於三角型範圍內的所有顏色, 這個三角形,就叫做色域 (Gamut), 你的螢幕就是這樣運作的,這就是為什麼像素點會由 RGB 構成。 而相機在記錄色彩也是一樣的邏輯, 要記錄某顏色,就先透過色彩濾鏡 (Color filter array), 把該顏色拆成 RGB 的訊號比例,然後記下來 到時候只要再依照比例讓螢幕亮三顆燈泡,你就會再度看到那個顏色了。 (中間的技術細節也很值得探究,但現在沒有空間詳述) 這道理很像麥克風其實就是喇叭倒過來運作。 其中, 一個 Gamut 會用它自己的 RGB 值定義自己的坐標系, 例如,我們先規定訊號強度 0-99, 上圖中的「G 點」在小三角形就會是 rgb小(0, 99, 0), 但這個點在大三角形可能就是 rgb大(12, 87, 14),(舉例而已不精確) 因為它離大三角形的最綠點 G’ 還有一段距離, 所以 RGB 值不是絕對,你還要先定義你的色域範圍才可以。 另外,你在播放的時候,螢幕等級也有差, 高級的螢幕能呈現更鮮豔的原色, 也就能在色彩空間裡圍出更大的三角形,換句話說就是色域更廣; 差一點的螢幕能呈現的色彩就比較少,色域比較窄。 再一次地,相機也相同,好一點的 sensor 就能捕捉更廣的色域,反之亦然。 這下就製造了一個嚴重問題, 每個品牌的相機、每個螢幕的 Gamut 都不一樣, 這樣要怎麼確保哪個顏色是哪個顏色? 這時候就要引入色彩標準,一樣方便閱讀再貼一次: https://i.imgur.com/7es95BX.jpg
我們就把小三角型的那三個點固定下來, 說,這個三角形涵蓋的範圍是一個標準 Gamut,取名 sRGB (Standard RGB), 這是在照片的領域,用在影片時它叫 Rec. 709。 這個 Rec. 709 的色彩標準通用於幾乎所有的顯示器, 所以偏小一些,以確保多數螢幕都能支援裡面涵蓋的色彩。 這邊補充一下: Rec. 709 這詞同時包含另一個規範,等下會講到,跟亮度對比有關, 所以有人會以為跟 sRGB 不同,但只論顏色的話,Rec. 709 色彩就是 sRGB。 現在我們理解方便 (實際上更複雜些,但不影響學習), 先把那個叫做 S-Gamut3.Cine 的大三角視為你相機能拍到的完整 Gamut, (以下簡稱 SG3C) 好了,你拍到歸拍到,但螢幕只能顯示裡面更小的 709, 這怎麼辦? 有兩個方法, 第一個,SG3C 裡太鮮豔、鮮豔到不常見的邊緣就放棄顯示, 用最接近的 709 色彩取代; 第二個,沒那麼極端,但還是落在 709 範圍外的顏色, 就整個「縮放」納入 709。這個有點難想像,意思是這樣: 原本拍到的 G’ 點經過縮放會移動到 G 點; 而原本拍到的 G 點也跟著被內推到 709 內部, 這樣一來你就能用 709 的有限空間「模擬出」SG3C 的顏色, 這兩個方法通常會同時使用,而且詳細的轉換方式也更複雜, 因為人眼對顏色算很敏感的,太粗糙的轉換很容易看出不對勁, 但概念上簡單講就是這樣, 這個就是所謂的色彩空間轉換 (Color Space Transform, CST)。 現在我們再回到剛剛的地方: https://i.imgur.com/LRmfXd6.jpg
稍早說到相機捕捉到的訊號很寬廣,但螢幕能呈現的訊號很窄, 要解決這問題,必須從顏色和亮度這些訊號強度相關的部分下手, 顏色的部分觀念已補完,接著看亮度。 通常在場景中,重要的被攝體亮度都會落在 Y 區,例如膚色等, 什麼叫重要?就是細節、色彩亮度的分階在拍攝時描述得越詳細越好, 播放時重現的精準度也是越接近越好, 所以螢幕被設計的時候,能投出的訊號強度主要也在這區, 重點來了: https://i.imgur.com/qZnTv04.jpg
H 區是你影片的檔案,它是裝載影像資訊的一個載體, 既然是檔案,就要有合理的大小,也就是裡面的資訊量是有限的, 那要怎麼讓它的大小合理呢? 方法是這樣,相機捕捉到的訊號條海量般多, 但要錄成影片檔的時候,從最暗到最亮只准你放 100 條,編號 0-99, (100 這數字在這邊只是方便理解,正確數字後面補充) 剛好配合前面提到螢幕的訊號強度 0-99 階。 現在,C 區相機捕捉到的訊號條準備要開始送 D區處理器處理了, 手續是這樣: 1. 把捕捉到的訊號放在 CIE 色彩空間內,然後看主人指定哪個 Gamut, 把那個訊號的 RGB 值求出來,變成新的訊號條。 2. 把這些新的訊號條錄製進 H 區檔案裡。 麻煩來了,H 區 比 C 區小、密度也低,這些處理好的訊號條怎麼塞進去? 方法是這樣: 1. 將來螢幕顯示的亮度基本上涵蓋了 Y 區、而 Y 區也是重點, 所以 Y 區盡可能從暗到亮完整錄入, 頂多均勻地抽掉幾個訊號條,來配合檔案的 100 條限制, 這沒有關係,只要密度不要比眼睛的訊號條鬆散就看不太出來。 2. C-X 區大多是超亮的太陽和白雲,不是很重要, 但還是要看得出來是什麼,所以折衷一下, 丟掉最亮的一部分,剩下的地方比照前面方法,也抽掉幾條, 塞進訊號條配額所剩無幾的 H-X 區。 3. C-Z 區同上 丟掉最暗的一部分,剩下的地方抽掉幾條, 塞進 H-Z 區。 這樣一來,微觀上你是在重新分配訊號條的高度和密度, 宏觀上,你是在「剪裁」、「伸縮」XYZ 三個亮度區域, 這一系列對訊號條的處理,就叫做 Gamma 轉換, 事實上 XYZ 分布在檔案內的比例是有一些慣例的, 像上面為了配合一般螢幕顯示而分配出的 XYZ 比例,就稱為 Rec. 709 Gamma, 而 C 區感光元件捕捉到那種上密下疏的分配情形, 就是原始的線性 Gamma (Linear)。 為什麼 OETF、EOTF 這些東西要叫做 TF、Transfer Function, 就是因為做的事情是 Gamma轉換,「傳遞」合理的訊號條給下一個載體使用。 你應該有發現我們敘述的速度越來越快, 前面補了很多前置觀念,就能讓我們在後面全部一次串起來, 現在就能進到最後的 Log 部分了。 https://i.imgur.com/qZnTv04.jpg
前面講到相機捕捉以後直接錄成 709 影片檔,就能直接播放,是很方便沒錯, 但買那麼好的相機,捕捉到的資訊最後丟棄了部分沒錄入,很是可惜, 有沒有什麼方法可以更進一步發揮相機的能耐呢? 有,我們可以這樣做: https://i.imgur.com/rx9mia6.jpg
C 區捕捉到以後,錄入時不採用前面講到的 709 方法, 而採用另一種訊號條處理方式 (也就是「採用另一種 Gamma」) 這個方式很簡單,甚至比 709 更單純: 1. 把捕捉到的訊號放在 CIE 色彩空間內,然後看主人指定哪個 Gamut, 把那個訊號的 RGB 值求出來,變成新的訊號條。 2. 均勻地地把信號條抽掉, 而不去想「哪部分比較重要所以保留、哪部分丟棄」這種問題, 直接就把 C 區的 XYZ 等比例錄入 E 區影片檔, 這種作法相當於把 C 區訊號條在數學上做對數轉換,所以才會叫 Log 檔, 那這樣不是很好嗎?保留全部資訊的 Log 檔為什麼不能直出使用? 顏色更忠實、明暗變化更全面,憑什麼輸給 709? ...因為人家有祖產做靠山 認真說,符合市場需求價格的螢幕,就是有那個技術瓶頸 (訊號範圍較窄), 709 就是配合這個瓶頸而設計的標準, 你花大錢當然能做出神級螢幕,但現在是大家都要用,所以市場決定了一切。 好,那如果你拿 Log 檔直出在螢幕播放會怎樣? 你注意看 E 區和 H 區: https://i.imgur.com/rx9mia6.jpg
若餵 Log 影片給一般螢幕,螢幕會「以為」這個影片檔已做好 709 轉換, 就如同過去它所為你顯示的其他東西一樣,根本沒想到你會來這招, 所以說,過去在 H-Yl (H 區中間調底端,下面不再贅述) 的部分, 也就是由下數來第三條,螢幕會幫你以「有點暗」的亮度呈現, 問題是你現在給的是 Log,Log 的倒數第三條 (E-Zm 附近) 原本應該是暗部的, 換句話說,Log 暗部被螢幕以中間調顯示出來、提亮了; 同理,Log 亮部也被螢幕以中間調顯示出來、壓暗了。 結果是什麼?對比度降低。 這就是為什麼 Log 直接播放看起來會那樣的原因。 等一下,明暗對比降低這沒問題, 那 Log 通常搭配廣色域拍攝,為什麼對比降低,飽和度也跟著變低了? 仔細回顧一下前面,我們之所以一直強調「訊號強度」這個觀念, 就是為了解釋這件事情, 對比降低,意味著最亮和最暗的訊號強度被限制, 訊號強度由 RGB 三個訊號的配方組成, 所以可以說 RGB 的訊號強度的最高、最低值「在播放時」被限制了, 這就可以得到飽和度衝不高的結論,實際上在檔案內部它是無比鮮豔多彩的。 所以 Log 不是拿來直出,它是盡量以低成本 (相較 raw) 的方式保留當初拍到的訊號, 讓你在後期自行手動轉換成 Rec. 709,既然是手動轉換, 你就可以自己選擇要不要切掉原本機器會幫你捨棄的亮暗部,彈性增大許多。 最後一個重點, 你在後期調整對比,意義上其實是調整訊號條的高度位置, 你在後期調整色彩,意義上還是調整訊號條的高度位置, 只不過你是針對訊號條的 RGB 做個別處理。 在你調整這些訊號條高度的時候要注意的是, 你如果調整過頭,它們之間的距離可能會變得比眼睛的訊號條還鬆散, 直觀上就是你會看到斷階 (Banding), 所以後期用的 Log 影片,我們一般會挑選訊號條密度更高的格式, 前面有講到一般是 0-99 階,其實正確數字是 0-255,共 256 個值, 256這數字是來自於 8 位元 (8-bit),也就是 2 的 8 次方個值, 而所謂的高密度就是 10 位元 (10-bit),2 的 10 次方個值, 總共給你 1024 個訊號條的配額, 這就是為什麼一般會建議以 Log Gamma 拍攝時盡量選用 10-bit 的原因, 另外這些容量也能更好地容納廣色域的豐富色彩變化。 ============ 以下快速補充: 1. 一開始提到「眼睛的習慣」, 其實蘊含一個事實:我做的這些圖表縱軸是對數尺度, 相機 sensor 那種看起來不合理的分布密度其實才是符合常理的, 但人眼的光敏度用對數描述比較合理,謹此說明。 2. 用 Log Gamma 搭配 Rec. 709 色彩(sRGB) 拍攝會怎樣? 前面有說明,這樣做並不能讓你的影片變得能直出, 因為 Log 直接播放會被螢幕降低對比, 降低對比顏色就會被洗掉,既然不直出,那更沒必要用 709 色彩。 3. 那反過來用 Rec. 709 Gamma 搭配廣色域 (例如 SG3C) 拍攝會怎樣? 應用前述色彩空間轉換的觀念就可得知, 這樣做反而會讓你的影片直接播放時顏色變得更淡, 如果不直出播放,那更沒必要用 709 Gamma。 4. 以上每一張圖都是我自己畫的,那是我個人的理解方式, 也沒看過有人畫這種圖, 我一般看到的解釋方式都是從兩個角度切入,可能更嚴謹,各提供一個網址供參考: https://bit.ly/3B4aJPJ https://bit.ly/38579bY 5. 我的敘述在大方向不變的前提下會省略細節方便理解, 但如果有完全錯誤的地方請讓我知道, 雖然這篇文花了我快24小時畫圖和寫作, 但過程中很多細節也有機會想得更清楚, 希望也對別人有幫助。 -- 恨貓園: https://bit.ly/3B15vo5 裡面沒東西: https://taylorhu.com -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 193.36.225.59 (美國) ※ 文章網址: https://www.ptt.cc/bbs/Filming/M.1629585957.A.F2C.html

08/22 11:14, 2年前 , 1F
詳細推
08/22 11:14, 1F

08/23 00:03, 2年前 , 2F
推推 改天上班時再認真看
08/23 00:03, 2F

08/23 00:10, 2年前 , 3F
我覺得這文可以發到FB「色彩管理交流」
08/23 00:10, 3F

08/23 17:36, 2年前 , 4F
挖 這篇好長~用心先推。有看到一個小錯誤,就是關於CIE1931
08/23 17:36, 4F

08/23 17:37, 2年前 , 5F
馬蹄形外的部分代表什麼,過去我也聽過說是人眼不可見光等一
08/23 17:37, 5F

08/23 17:38, 2年前 , 6F
類說法也苦思很久。實際上,回歸到CIE XYZ甚至CIE RGB的原始
08/23 17:38, 6F

08/23 17:39, 2年前 , 7F
函數設計上,就可以知道函式本身是由真實實驗數據推導出來的
08/23 17:39, 7F

08/23 17:40, 2年前 , 8F
產物,而CIE XYZ或CIE xy只是變換後的結果~意思就是外面那圈
08/23 17:40, 8F

08/23 17:42, 2年前 , 9F
其實是沒有實質意義的,它只是數學計算自然產生的"虛擬光"
08/23 17:42, 9F

08/23 17:43, 2年前 , 10F
實際上並不會對應到任何真實光譜分布、真實能量的光線
08/23 17:43, 10F
我懂了(?),表中的顏色是由刺激值轉換後列出,範圍外的空間就是沒有對應的刺激值, 而沒有刺激值就沒有意義,我們不能說它可能代表什麼,這樣對嗎? 謝謝你的解釋 ※ 編輯: Zabiela (192.109.205.7 德國), 08/23/2021 19:35:14

08/23 20:35, 2年前 , 11F
沒錯。單色光佔據在馬蹄狀外圈,以外的數值不會是不可見光
08/23 20:35, 11F

08/23 20:37, 2年前 , 12F
而是非人類的"視覺刺激值"組合。
08/23 20:37, 12F

08/23 20:38, 2年前 , 13F
數位相機等設備就有可能得出這類的數值,因為感光元件與人類
08/23 20:38, 13F

08/23 20:39, 2年前 , 14F
視覺LMS刺激不同,組合計算下有數值會跑出去可見光範圍
08/23 20:39, 14F

08/23 20:40, 2年前 , 15F
但反推說是"不可見光"那不合理
08/23 20:40, 15F

08/23 21:35, 2年前 , 16F
(想了一下應該修一下我的用詞:不可見光可能會得到非人類的視
08/23 21:35, 16F

08/23 21:36, 2年前 , 17F
覺刺激值,但非人類的視覺刺激值不一定是不可見光)
08/23 21:36, 17F

08/24 08:51, 2年前 , 18F
推推,總算比較懂了
08/24 08:51, 18F

08/24 11:28, 2年前 , 19F
感謝Z大!這篇看完有種醍醐灌頂的感覺!真的萬分感謝
08/24 11:28, 19F

08/24 13:33, 2年前 , 20F
竟有如此長篇大論(褒)
08/24 13:33, 20F

08/24 14:05, 2年前 , 21F
詳細推
08/24 14:05, 21F

08/26 03:18, 2年前 , 22F
太神啦
08/26 03:18, 22F

08/26 10:16, 2年前 , 23F
這篇是不是可以M起來了XD
08/26 10:16, 23F

09/06 19:33, 2年前 , 24F
推推
09/06 19:33, 24F

09/09 10:57, 2年前 , 25F
這篇好猛
09/09 10:57, 25F

11/01 19:44, 2年前 , 26F
受教了,感謝分享,大推
11/01 19:44, 26F

12/01 02:17, 2年前 , 27F
推推
12/01 02:17, 27F

02/01 15:54, 3年前 , 28F
02/01 15:54, 28F
文章代碼(AID): #1X8O8byi (Filming)
文章代碼(AID): #1X8O8byi (Filming)