PCDVD數位科技討論區
PCDVD數位科技討論區   註冊 常見問題 標記討論區為已讀

回到   PCDVD數位科技討論區 > 數位影音討論群組 > DVD 討論區
帳戶
密碼
 

  回應
 
主題工具
ego
Advance Member
 

加入日期: Oct 2001
您的住址: 台中
文章: 380
LIBIDO
如果沒記錯的話你應該以前是玩audio的吧
別太謙虛了
     
      
舊 2002-07-26, 05:24 AM #31
回應時引用此文章
ego離線中  
Matt
Regular Member
 

加入日期: Dec 2000
您的住址: 台中市
文章: 51
引用:
Originally posted by snic

好吧...你確定你整個過程中用的軟體的版本跟我所提到的版本一樣嗎?
剛剛搜尋了以前的文章...
發現之前有人因為用 DVDAVI 1.74 版做D2V...
結果不能讓VD去讀VFAPIConv做的AVI檔
然後換了DVD2AVI 1.76就可以了...
不然你先用1.76版試試看...
如果TMPGEnc可以讀你的AVI了以後...
你再用1.77.3做出來的WAV檔配合1.76版做出來的D2V-->AVI檔給TMPGEnc處理...
如果還是不行的話...建議你重灌看看...
為好像大家的問題都用那個方法解決了只有你不行^^"


還是不行,請問VFAPI那個AVI檔,可以用WINDOWS MEDIA PLAYER
 
舊 2002-07-26, 05:27 AM #32
回應時引用此文章
Matt離線中  
Matt
Regular Member
 

加入日期: Dec 2000
您的住址: 台中市
文章: 51
引用:
Originally posted by snic

好吧...你確定你整個過程中用的軟體的版本跟我所提到的版本一樣嗎?
剛剛搜尋了以前的文章...
發現之前有人因為用 DVDAVI 1.74 版做D2V...
結果不能讓VD去讀VFAPIConv做的AVI檔
然後換了DVD2AVI 1.76就可以了...
不然你先用1.76版試試看...
如果TMPGEnc可以讀你的AVI了以後...
你再用1.77.3做出來的WAV檔配合1.76版做出來的D2V-->AVI檔給TMPGEnc處理...
如果還是不行的話...建議你重灌看看...
為好像大家的問題都用那個方法解決了只有你不行^^"


還是不行,請問VFAPI那個AVI檔,可以用WINDOWS MEDIA PLAYER播放嗎?
舊 2002-07-26, 05:27 AM #33
回應時引用此文章
Matt離線中  
jessehu
Advance Member
 

加入日期: May 2001
文章: 458
謝謝LIBIDO兄的詳細回應,請原諒我老實說,後面那一半我有看沒有懂
不過我按照先提供的參數加上您提供的資訊實作一遍,看起來好多了,
(Luminous, Chroma 我不知要加多少,隨便各加了60)
Anyway 謝謝您!

修正後
舊 2002-07-26, 05:30 AM #34
回應時引用此文章
jessehu離線中  
snic
Master Member
 

加入日期: Nov 2001
文章: 1,563
引用:
Originally posted by Matt


還是不行,請問VFAPI那個AVI檔,可以用WINDOWS MEDIA PLAYER播放嗎?

不行...可以的話我就可以利用AviUtl 修正來看�**穭痐kdvd了=_=...
舊 2002-07-26, 07:04 AM #35
回應時引用此文章
snic離線中  
LIBIDO
Major Member
 

加入日期: May 2001
文章: 122
引用:
Originally posted by jessehu
謝謝LIBIDO兄的詳細回應,請原諒我老實說,後面那一半我有看沒有懂
不過我按照先提供的參數加上您提供的資訊實作一遍,看起來好多了,
(Luminous, Chroma 我不知要加多少,隨便各加了60)

我沒寫清楚
YUV Descale CCIR601(Luminous, Chroma ~> 255)
的意思是 Luminous, Chroma 都推到 255

後面那一段是我作的筆記,在解釋為什麼有作 ITU-R BT.601 補正就不能勾選 "Basic YCbCr 出力"。
......
原來 DVD 上面記錄的是壓縮過的 YUV 訊號,DVD2AVI 解壓縮出來成為 YUV 4:2:0 之後再內插展開成為 YUV 4:2:2。存成專案檔以後轉成 VFAPI,VFAPI 會將 YUV 4:2:2 轉成 RGB 的格式才能交給其他程式開啟處理。此時 RGB 的範圍是 16~235(以" R(d)G(d)B(d) "表示),純白是 R(235),G(235),B(235)。在電腦上看,因為電腦螢幕的純白應該是 R(255),G(255),B(255),所以 R(235),G(235),B(235) 看起來會"不夠白",整個顏色對比都不正確。所以交給 AviUtl 之後,要先作 ITU-R BT.601 補正,將 0~235 的 RGB 資料伸張為 0~255,看起來才會接近正確。AviUtl 應該是將 R(d)G(d)B(d) 轉回 YUV 之後做 YC 伸張,再轉為 RGB,此時 RGB 的範圍就是 0~255(表示為" RGB ")。
======================================================DVD 解碼 YUV 4:2:0
==> DVD2AVI 補間 YUV 4:2:2 --> .D2V
==> VFAPI YUV 4:2:2 <2>--> RdGdBd(16~235)
==> AviUtl ITU-R BT.601 補正
RdGdBd <2>--> YUV --> 伸張 <1>--> RGB(0~255)
======================================================

然後交給 TMPGEnc 壓 MPEG1/2 的時候,TMPGEnc 有個選項,叫做 "Basic YCbCr 出力",不勾的話 TMPGEnc 會先將 RGB 壓縮為 16~255 之間的範圍(表示為" R(d)G(d)B(d) "),然後再轉換為 YUV 進行 MPEG 壓縮。這樣做等於 Cinema Craft Encoder SP 這個軟體的 "16 から235" 這個選項,用的是下面這個 RGB->YUV 的轉換式
======================================================
<1> CCS 的 "16 から235" = TMPGEnc 不勾 "Basic YCbCr で出力", PC Scale
Rd = 219*R + 16*256
Gd = 219*G + 16*256
Bd = 219*B + 16*256
Y = 77*Rd + 150*Gd + 29*Bd / 2^16
CR = (( 131*Rd - 110*Gd - 21*Bd ) / 2^16 ) +128
CB = (( -44*Rd - 87*Gd + 131*Bd ) / 2^16 ) +128
======================================================

經過這樣壓縮以後的 MPEG1/2 拿到電視放是正常的,在電腦上放播放軟體會先解出 YUV 4:2:0,然後包成 YUY2 的格式,走 YUY2 DirectDraw Overlay,直接丟給顯示卡上的硬體色空間轉換做 YUV->RGB,轉換成 RGB 然後顯示到螢幕上。顯示卡的 YUY2 轉 RGB 是 PC Scale,會先作 YC 伸張,然後才轉為 RGB,所以轉換後的 RGB 範圍也是 0~255,這樣在電腦上看顏色才會是正常的。
======================================================
==> TMPGEnc MPEG 壓縮, 不勾選 "Basic YCbCr で出力"
RGB(0~255) --> RdGdBd(16~235) <1>--> YUV 4:2:0 壓縮
==> 播放
解出 YUV 4:2:0 --> YUY2 DirectDraw Overlay -->
顯示卡色空間轉換(PC Scale)--> 正確的顏色
======================================================

那麼如果勾選 "Basic YCbCr 出力" 的話會怎樣呢?
勾選的話(等於 Cinema Craft Encoder SP 的 "0 から255" )TMPGEnc 就不會作 RGB 壓縮,直接以下面這個轉換式轉換為 YUV
======================================================
<2> CCS 的 "0 から255" = TMPGEnc 勾 "Basic YCbCr で出力", TV Scale
Y = 77*Rd + 150*Gd + 29*Bd / 2^8
CR = (( 131*Rd - 110*Gd - 21*Bd ) / 2^8 ) +128
CB = (( -44*Rd - 87*Gd + 131*Bd ) / 2^8 ) +128
======================================================
這個轉換式(ITU-R BT.601-5)的 RGB 是給範圍 16~235 的 R(d)G(d)B(d) 用的,而我們現在輸入的 RGB,是已經做過伸張之後範圍 0~255 的 RGB,強行帶進去轉換的話,會造成許多資料破表被削掉,轉換之後的 YUV 再顯示出來,顏色對比會完全不正確。

所以如果有作 ITU-R BT.601 補正的話,壓縮時就不能勾選 "Basic YCbCr 出力"。
^^;

反過來說如果沒有作 ITU-R BT.601 補正,壓縮時就要勾選 "Basic YCbCr 出力"。
希望這樣會清楚一點。
舊 2002-07-26, 07:08 AM #36
回應時引用此文章
LIBIDO離線中  
snic
Master Member
 

加入日期: Nov 2001
文章: 1,563
LIBIDO 老師....我有個地方不清楚
引用:
Originally posted by LIBIDO
如果您在 DVD2AVI 的階段,Color Space 選的是 RGB24,而且 YUV --> RGB 選的是 PC Scale,那麼也不要再使用 ITU-R BT.601 補正,這兩個做的也是相同的事情,請不要使用兩次。

DVD2AVI 解壓縮出來成為 YUV 4:2:0 之後再內插展開成為 YUV 4:2:2 在這步驟有做到 YC 伸張(Y: 16~235 -> 0~255,C: 16~240 -> 0~255)嗎?還是根本一點關係都沒有^^"...那這選項到底是做什麼的阿?

還有...VFAPI 會改變 RGB 的範圍嗎?會不會把 0~255 改成 16~235 阿?
舊 2002-07-26, 09:09 AM #37
回應時引用此文章
snic離線中  
NJA
New Member
 

加入日期: Jul 2002
您的住址: TAIPEI
文章: 1
小弟是在男性物語拜讀您的教學
目前已會粗淺的轉檔技巧..先感謝您了
再來就慢慢學習吧!!
__________________
**********
*新 手 上 路*
*請 多 指 導*
**********
舊 2002-07-26, 10:26 AM #38
回應時引用此文章
NJA離線中  
LIBIDO
Major Member
 

加入日期: May 2001
文章: 122
引用:
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 阿?

不會。
舊 2002-07-26, 10:46 AM #39
回應時引用此文章
LIBIDO離線中  
snic
Master Member
 

加入日期: Nov 2001
文章: 1,563
引用:
Originally posted by LIBIDO

什麼老師,我是學生,您認錯人了,老師是 jackei 前輩

ㄏㄏ..了解了^^

那"名師出高徒"總可以了吧^^d

所以只要我選 YUV 4:2:2 輸出,接下來不管選 PC Scale 還是 TV Scale,都不會做 YC 伸張,因此須再經過 AviUtl 做 ITU-R BT.601 補正,並且不能勾"Basic YCbCr 出力",轉出來的影片顏色才會是正確的,或是乾脆不經過 AviUtl 直接在壓縮時勾"Basic YCbCr 出力"也可

所以我整理一下:

要轉出正常顏色的選擇:

1.選 YUV 4:2:2 輸出-->選 PC Scale 或是 TV Scale 沒差-->
a.用 AviUtl 做 ITU-R BT.601 補正-->壓縮時就不能勾選 "Basic YCbCr 出力"。
b.不用 AviUtl 做 ITU-R BT.601 補正-->壓縮時就要勾選 "Basic YCbCr 出力"。

2.選 RGB24 輸出-->選 PC Scale-->不用 AviUtl 做 ITU-R BT.601 補正-->壓縮時就要勾選 "Basic YCbCr 出力"。

3.選 RGB24 輸出-->選 TV Scale-->用 AviUtl 做 ITU-R BT.601 補正-->壓縮時就不能勾選 "Basic YCbCr 出力"。
舊 2002-07-26, 01:14 PM #40
回應時引用此文章
snic離線中  


    回應


POPIN
主題工具

發表文章規則
不可以發起新主題
不可以回應主題
不可以上傳附加檔案
不可以編輯您的文章

vB 代碼打開
[IMG]代碼打開
HTML代碼關閉



所有的時間均為GMT +8。 現在的時間是08:09 AM.


vBulletin Version 3.0.1
powered_by_vbulletin 2024。