引用:
Originally posted by snic
LIBIDO 老師....我有個地方不清楚
DVD2AVI 解壓縮出來成為 YUV 4:2:0 之後再內插展開成為 YUV 4:2:2 在這步驟有做到 YC 伸張(Y: 16~235 -> 0~255,C: 16~240 -> 0~255)嗎?還是根本一點關係都沒有^^"...那這選項到底是做什麼的阿?
|
什麼老師,我是學生,您認錯人了,老師是 jackei 前輩

沒有做 YC 伸張,這裡做的是另一件事情。
DVD 存的 YUV 4:2:0 是上下兩排 4 個點為一個單位,每個點取樣(記錄)一個 Y(亮度)值,4 個點共用一個 C(色度,UV)值(因為人眼對亮度比較敏感,對色度的差異比較看不出來,所以亮度取樣多一點,色度少一點,可以節省空間,縮小容量)。像下面這個樣子
Y Y
Y Y
然後一個 UV。
DVD 的解析度是 720x480,總共有 720x480 個點,所以解碼出來會有 720x480 個 Y(亮度)值和 360x240 個 U 值還有 360x240 個 V 值。
DVD2AVI 會將這個 4:2:0 的資料先展開成 4:2:2,也就是同排的兩個點為一個單位,每個點一個 Y,兩個點共用一個 UV。像下面這樣
Y Y 然後一個 UV ....
Y Y 然後一個 UV ....
展開的時候如果直接複製同樣的 UV 值,四個點顏色都一樣,看起來會是一塊一塊的色塊,很難看,所以通常會做一些內插的處理。DVD2AVI 的計算式是(**交錯畫面 4:4:4**)
odd line 8*n+1: [ Yo1, ( Co0 + 7*Co1)/8 ]
even line 8*n+2: [ Ye1, (3*Ce0 + 5*Ce1)/8 ]
odd line 8*n+3: [ Yo2, (5*Co1 + 3*Co2)/8 ]
even line 8*n+4: [ Ye2, (7*Ce1 + Ce2)/8 ]
odd line 8*n+5: [ Yo3, ( Co1 + 7*Co2)/8 ]
even line 8*n+6: [ Ye3, (3*Ce1 + 5*Ce2)/8 ]
odd line 8*n+7: [ Yo4, (5*Co2 + 3*Co3)/8 ]
even line 8*n+8: [ Ye4, (7*Ce2 + Ce3)/8 ]
jackei 樣說效果等於 6-tap 的 FIR filter。
如果你的 Color Space 選的是 YUV 4:2:2 輸出,那就做到這裡為止了。
如果你的 Color Space 選的是 RGB24,**而且** YUV->RGB 選的是 "PC Scale",則 DVD2AVI 會繼續做 YUV 4:2:2 -> YUV 4:4:4 -> YC 伸張 -> RGB(0~255)
效果等同於 YUV 4:2:2 輸出 + AviUtl ITU-R BT.601 補正。
如果你選的是 TV Scale,則 DVD2AVI 就不會做 YC 伸張。
PC Scale/TV Scale 的選項影響的是 YUV -> RGB 的轉換,只有在 Color Space 選 RGB24 輸出時才有作用。
而 YC 伸張的計算式是(簡略)
Y' = (Y - 16) * 255 / (235 - 16)
C' = C * 255 / (255 - (240-16))
Y', C' 是伸張後的 YC 值。
引用:
還有...VFAPI 會改變 RGB 的範圍嗎?會不會把 0~255 改成 16~235 阿?
|
不會。