引用:
作者Shade
所以 MainConcept MPEG Encoder 的這個選項的名字就取得很好,簡潔易懂,不像其他 Encoder 這個控制選項寫了半天你也不知道他在說什麼
MainConcept MPEG Encoder 的這個選項是這麼寫的:"Input video is RGB16~235",意即,如果輸入的資料是 RGB,而且是有壓縮過的、無伸張的RGB,資料範圍只有...
|
這個名字好像有點問題......
Y的範圍才是16~235,RGB要在Cb, Cr = 0的時候,範圍才是16~235。
如Y = 235, Cb(U) = 140 (+12), Cr(V) = 94 (-34)
跟據
www.fourcc.org內的Basic YUV -> RGB的算式,
R = Y + 1.403 (V - 128)
G = Y - 0.34414 (U - 128) - 0.71414 (V - 128)
B = Y + 1.773 (U - 128)
R = 187.298
G = 255.15108
B = 256.276
轉成8-bit整數為
R = 187
G = 255
B = 255
已經超過235。
另外,XviD的YUV -> RGB的轉換式實在太爛了,Y是235的地方,也不是白色的,還有,內部應該是用8-bit/Channel的整數算式,運算的誤差很大,產生大量色塊。現在的CPU是32-bit的,用16-bit/Channel的算式比較好,因為速度沒有分別,但誤差降低。
近來看到的是關於YV12 -> YUV 4:4:4,nVidia的顯示卡是用n-Tap Resizer來進行這個步驟,所以一般的軟體的YV12 -> YUV 4:4:4的品質很難比得上硬體。