瀏覽單個文章
sswroom
Advance Member
 

加入日期: Aug 2003
您的住址: Hong Kong
文章: 308
引用:
作者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的品質很難比得上硬體。
舊 2004-09-27, 12:23 AM #30
回應時引用此文章
sswroom離線中