![]() |
PCDVD數位科技討論區
(https://www.pcdvd.com.tw/index.php)
- DVD 討論區
(https://www.pcdvd.com.tw/forumdisplay.php?f=5)
- - DivX Video 5.0.4
(https://www.pcdvd.com.tw/showthread.php?t=202171)
|
---|
引用:
那是因為 MPEG quant 的關係。 MPEG quant 的畫面較銳利,但是線條周圍會有很明顯的雜訊,H.263 quant 畫面較模糊,但是雜訊較少,畫面較乾淨。 所以我建議壓動畫用 H.263 quant,因為動畫有很多銳利線條。 DivX 5 用的是 H.263 quant,也只能用 H.263 quant 壓縮,沒得選。 但是 DivX 5 的畫面很模糊。 模糊和線條邊緣雜訊,就看兩個您比較能接受哪一個。 但是 XviD 的 H.263 quant,還是要比 DivX 5 稍微清晰一點,細節保留得比較多。 我個人比較喜歡銳利一點的畫面,畫面太糊我實在不能接受。 所以您如果覺得線條邊緣的雜訊太明顯,就改成用 H.263 quant 壓縮。 引用:
您提供的圖片中有一張 XviD 確實偏綠,不過我不清楚造成的原因。 而且我沒有原始圖片可供比對。 引用:
銳利度差很多,不是嗎? ;) 引用:
色塊浮動或流動的現象,有可能是 B-frame 造成的,請降低連續 B-frame 的個數。 雜訊是 MPEG quant 造成的,請改用 H.263 quant,或者是自訂 MPEG Matrix,改用壓出來雜訊比較少的量化矩陣。 可以試試看上上一頁我提供的那個 xvid.dll。 引用:
直接用記事本開啟。 |
Shade兄您好,我又有問題想請教您了,希望您別介意^o^。
我曾在某大陸網站上看到,有關Quantization的設定,他們是提到: 1.以StatsReader讀取2pass first pass的stats檔,看Size顯示多少MB(假設500MB好了) 2.假定我希望我的second pass的出來成品為200MB,則在second pass的Max I,P frame quantizer的設定為(500/200)*2的結果作四捨五入,也就是5。而Min I,P frame quantizer則設定5-2=3,但最小不小於2。 以我幾次壓製,算出來的話我多半會變成設定max: 4 , min:2,而結果呢,目測來看是比我以前second pass設的max:31, min:2要來得好。而我想請問的是,這種設定方法是不是合理有根據?因為用起來效果不錯,但是還是有點毛毛的^_^(因為這樣一來,Quantization就跟first pass的設定不一樣了) 另外,有關選項中的GMC(Global Motion Compensation),同樣在該網站去年九月份的文章中說到〞开发中,功能简陋,完全没有实质上的压缩助益,并且还有错误需要修正,绝对不要使用〞。 我想問的就是,已經過了大半年了,以目前而言,像我常用的koepi 20030405的版本,GMC的功能有沒有改善了,實用上是否建議勾選? 謝謝您的指導囉。 |
引用:
LOCK.LAI 兄: 那個方法好像是「小嘴巴」兄說的。 有沒有根據我不知道,我沒有學過這個理論。 這個應該是人家的製作經驗談,如果做出來效果不錯,好用就好,就不用管他有沒有理論根據了 :P 最小 quantizer 建議還是保持設為 2,不要用 3。 first pass 不能設定 quantizer,而是固定用 quantizer 2 壓一遍。設定、限制 quantizer 是 2nd-pass 才有的功能,所以您不用擔心改變 quantizer 會造成 1st-pass 和 2nd-pass 的設定不相同。 這個設定原本 1st-pass 和 2nd-pass 就不同 :) 引用:
有改善。 但是改善最多的 GMC 在 dev-api-4 裡面,有 3 warp points 和新的 GME,而 api-4 目前還在開發中。 實用上... DivX 5 只有 1 warp point,可以將參考畫面整個平移,所以遇到鏡頭 pan 的畫面,DivX 5 會判斷使用 GMC。但是平移的畫面,用傳統的 Local MC,或者叫 Block MC,一個 Macroblock 一個 Macroblock 地搜尋最佳參考對象,就可以達到很好的預測效果。所以在這種情況使用 GMC,並不能節省下非常多的 bit。 然而大家還是用得很開心。 所以現在的 XviD 已經有 2 warp points 的 GMC,可以對付 zoom in/out、旋轉的畫面,威力比 DivX 5 更強,似乎沒有理由不用 :P 而 dev-api-4 的 3 warp points 可以用在什麼地方上?我不知道,也許是非常劇烈扭曲變形的畫面 :P 目前能解 3 warp points 的 decoder 只有 XviD 自己,ffdshow 用的 libavcodec 也只能解到 2 warp points。 其實最主要的問題是,要怎麼判斷現在這個畫面、方塊,是使用 GMC 的最佳時機,可以省下大量的 bit。判斷越準確,GMC 就越有效率。 我想現在的 XviD GMC 的效率應該已經不錯,當然還可以再做測試。 不過,目前 VHQ 功能不能和 GMC 並用,所以兩者比較,我會選 VHQ 功能,不開 GMC。 |
抓圖
所有的圖都是以該 Encoder 各自的 VFW Codec 解碼,強制輸出 YV12,由 Avisynth 統一做 YV12 -> RGB32,語法如下 avisource("Kiddy Grade NCOP_DivX5.05-B_4-pass.avi", false, "YV12").ConvertToYUY2().ConvertToRGB32() 先轉成 YUY2 再轉成 RGB32 的原因是,目前的 Avisynth 2.5,YUY2 -> RGB32 的 upsampling 計算式比 YV12 -> RGB32 的計算式,品質要好。Avisynth 的 YV12 -> RGB 計算式,目前還沒改成較高品質的 upsampling 方法。 因為圖太多,檔案太大,為避免下載負擔,部分情況用口述。 開頭有一段緩慢 zoom in,鏡頭慢慢拉遠的場景,畫面是漆黑的宇宙和中間發光的星球,其黑白交界處,XviD 有比較明顯的方塊感。這一段 XviD 會插入很多 B-frame,B-frame 用高 quantizer 壓縮,很容易出現方塊。減少連續 B-frame 個數,可以減低這種方塊感。DivX 5 也有這種方塊現象,不過因為 DivX 5 的 B-frame 最大個數只能為一個,一個 B 之後一定要接一張 P,形成 ..BPBPBP... 這樣的構造,所以不會有連續好幾張有瑕疵的 B 出現在畫面上,停留一段長時間而被人眼注意到。另外 DivX 5 的 DirectShow Filter Decoder 如果將解碼的品質調高,會有 Post-Processing 的 De-block Filter,去方塊濾波器的作用,也可以減少這種方塊現象,所以看起來不明顯。XviD 要避免,可能要減少 B-frame 的個數、降低 B-frame quantizer、改用 MPEG quant 壓縮(MPEG quant 方塊瑕疵較少),或者是開啟 XviD Decoder 的 De-block Filter。 接下來是這部動畫的標題字幕,「Kiddy Grade」,紅色的字,完全靜態的畫面。XviD 在這裡沒有問題,但是 DivX 5.0.5 在線條的邊緣,有很詭異的閃爍的雜訊。這個看單張抓圖看不出來,要實際觀看時,接連好幾張畫面連著看,才會發覺這種時間軸上雜訊閃爍的現象。在後面的畫面中 DivX 5.0.5 也是一樣,在靜態的場景,有時線條邊緣會有閃爍的雜訊,很引人注意。 接下來的圖片是 XviD 在這整片中最糟的 case。 Frame #628 DivX 5.0.5,這是一張 B-frame,Quantizer 8 壓縮。前一張 Frame #627 是一張 P-frame,Quantizer 4 壓縮,畫面和這張 B 一樣。 注意圖中用白色箭頭指出來的部分。 左邊的兩個箭頭指出來的瑕疵,一個是黑色的細線段,一個是灰色的方塊,這兩個瑕疵都是原始檔案中沒有的。而右邊箭頭指的瑕疵,看起來很奇怪,頭髮邊緣的線段突然缺了口,放大觀察,上面和下面一點的地方也有缺口,這個缺口看起來很像是有一個灰色的方塊插進去,中斷了原本連續的線條。 這是怎麼回事呢? 我們看下一張 Frame #629,Frame #629 是一張 P-frame,Quantizer 4 壓縮。Frame #629 較 Frame #628 臉部往左移動了位置。仔細觀察兩張圖片,細線段瑕疵出現的位置,是下一張圖頭髮尖端移動到的位置,而左邊線段的缺口位置,在下一張圖是灰色的牆壁。(抓下來用 ACDSee 切換著看會更清楚) 628DivX B-frame Quantizer 8 ![]() 629DivX P-frame Quantizer 4 ![]() 我們知道 B-frame 有一種動作預測模式叫做 Direct Mode,用這種預測模式時,該 B-Frame 的 Forward/Backward Motion Vector 是由下一張 P 直接產生: I B P 連續動作時,我們可以預測中間的那張 B,運動會介於 I 和 P 之間,所以我們直接拿 P 的 MV 除以二,作為 B 的 Forward/Backward MV,以 I 和 P 的平均,做為參考對象。 這樣我們就可以省下記錄 MV 的 bit,只要記錄和 (I+P)/2 的誤差就好了。這是 B-frame 壓縮率最高的動作預測模式,在高 quantizer 中,這種模式使用的次數會比較多。 那二個白色箭頭所指的瑕疵,就是使用了 Direct Mode 壓縮,以前後畫面的平均為參考對象。然而後面那張 Frame 在這些地方和前面的差距很大,B-frame 又用高 quantizer 壓縮,無法精確記錄參考後的誤差,所以便出現了這種「後面畫面的影像殘留在前一張畫面」的詭異現象。 我們來看 XviD 的慘狀 628XviD B-frame Quantizer 8 ![]() 629XviD P-frame Quantizer 4 ![]() XviD 在 #628 少了一些殘像的瑕疵,不過還是有灰色的方塊。慘的是,這幾個畫面的動態都不大,XviD 是插入最大的 B-frame 個數,#628 的前一張 #627 也是 B-frame,也是有灰色方塊,連續兩張 Frame 都有灰色方塊,比較容易被看出來。 XviD 的另一個敗筆是背景灰色的牆壁,方塊瑕疵很明顯,很容易注意到。雖然 XviD 在人物臉部,線條周圍的雜訊較 DivX 少,不過背景的方塊還是很引人注目。 |
接下來是 DivX 5 單一且固定 B-frame 所造成的慘劇 :P
下面這幾張圖是動態蠻大的幾個畫面,前景快速往下平移,後景快速往右平移,畫面交錯重疊,前景淡出,後景淡入,同時畫面的亮度由亮轉暗。XviD 在這幾個場景,判斷不適合使用 B-frame,決定都以 P-frame 壓縮。 1177DivX B-frame Quantizer 8 ![]() 1177XviD P-frame Quantizer 4 ![]() 1178DivX P-frame Quantizer 4 ![]() 1178XviD P-frame Quantizer 4 ![]() 1179DivX B-frame Quantizer 8 ![]() 1179XviD P-frame Quantizer 4 ![]() 這種類型的畫面持續了幾百個 Frame,DivX 完全破功,是輸得最慘的地方。 最後是比較紅色的部分 1729DivX P-frame Quantizer 4 ![]() 1729XviD B-frame Quantizer 8 ![]() 1730DivX B-frame Quantizer 8 ![]() 1730XviD P-frame Quantizer 4 ![]() 呃,應該不用小弟再多言.... 小弟個人觀看的感覺,XviD 的畫面稍微清晰一點點,整體來說壓縮瑕疵較少,但是有些畫面銳利線條周圍的雜訊較明顯,Frame #628 附近,背景的方塊瑕疵太明顯。DivX 的畫面則較模糊,整體壓縮瑕疵較多,給人的印象畫質較差。 |
測試四
因為 PSNR 不一定能反應看起來的視覺品質(有時候要看哪種瑕疵人眼看起來會覺得比較舒服),我另外做了 VQM 測試。 VQM 是 ITS 發展的視訊品質評量法,也是 ANSI T1.801.03 標準所採用的方法,會根據人眼的視覺特性,對人眼較敏感的部分作分析比較,例如畫面細節的損失度,物體邊緣、銳利線條周圍的雜訊等等。 這個評量法,也就是 ITU-T Recommendation J.143, "User requirements for objective perceptual video quality measurements in digital cable television" 當中提到的 "reduced-reference" video quality measurements。 VQM 做出來的評量分數,會和主觀測試的分數非常接近,和人眼觀看的感受趨於一致。 這個測試的演算法,說起來要寫好幾萬字,而且很多數學,所以就不仔細說明了 ^^; 以下簡單介紹它的測試原理: 1. 測量畫面的模糊程度 偵測計算一個參數叫做 Spatial Information,空間資訊(SI),包含了畫面上 edge 邊線的能量,比較 input 和 output 能量的損失,計算畫面模糊化的程度。 原始畫面 #690 ![]() 原始畫面邊緣強度 #690 ![]() XviD 壓縮後邊緣強度 #690 ![]() 2. 測試畫面馬賽克(方格狀)的程度 測量垂直和水平的 SI,比較 input 和 output 的 SIh/SIv,由 SI 的 histogram 可以分析強度增強的程度。方塊瑕疵,會使畫面上多出許多明顯的邊界,會增加垂直和水平的 SI,減弱對角的 SIr。 DivX #938 ![]() DivX #938 的 SIh/SIv ![]() 3. 測試畫面的雜訊程度 將前後畫面相減,計算一個參數叫做 Temporal Information,如果畫面有雜訊,前後畫面的差異會加大,TI 會增加。 原始 #567-566 ![]() DivX 壓縮後 #567-566 ![]() 其他項目的測試原理,礙於時間因素,就不詳加介紹了。 |
因為硬碟空間大小的限制,我只有比較後面 750 個 Frame。
評量分數我選擇用 VQM native 的表示法,範圍是 0.0~1.0,0.0 代表觀察不出明顯的壓縮瑕疵,1.0 代表有非常明顯的壓縮瑕疵,所以分數越小越好。 VQM 的評量結果 DivX: 0.0791 Blurring = 8% Block Distortion = 5% XviD: 0.0685 Blurring = 7% Block Distortion = 4% 細部參數有七個之多,因為圖實在太多了,我只列出兩個上面提過的有關參數:SI 的損失程度 SI LOSS 和 SIh/SIv 的增強程度 HV_GAIN。 注意 XviD 和 DivX 的 histogram,縱軸的單位長度不一樣。由 histogram 得到的結論是,XviD 的 SI LOSS 程度較少,HV GAIN 的強度較弱。 DivX SI LOSS XviD SI LOSS DivX HV GAIN XviD HV GAIN |
Shade 兄...
從您一連串測試(您真的很閒XD...小的甘拜下風^^; )後我覺得... 不管是 DIVX 還是 XVID... 是不是在不限制容量流量的情況下... 能不開 B-frame 功能就別開比較好 總覺得開 B-frame 只是提高壓縮比的一種手段 像 DivX 因為從頭到尾都要開...所以不適合的地方也要強迫使用 雖然 XviD 可以自動判斷是否加 B-frame... 可是就像自動 IVTC...還是會有判對錯的地方 那我覺得不開 B-frame 還比較好...總比你壓完發現有瑕疵來的好 又不像 TMPEGNC 的自動 IVTC 還可以手動檢查^^; 還是說 B-frame 還有其他用途?會提高畫質嗎? |
哇~~超豐富的測試...^^正努力吸收中...
目前我沒使用過DIVX5以上或XVID壓過...目前只使用過DIVX 3.11+SBC壓..@@ 不過以網路所取得的動畫...個人覺得XVID勝過DIVX許多... 但播放XVID動畫出的問題也較多...可能CODE版本太多了... 請問有經驗的大大...以同流量來說...假設影片中的動態及亮度變化量極大.. 各以2 PASS來壓...何者CODE較優... 另外那裡有比較詳細DVIX 5.X及XVID的設定教學...當然希望以動畫設定為主...^^||| 謝謝~~ |
引用:
divx5.03也可以壓的很好喔 我在網路看到的スクラップド.ブリンセス (Scrapped Princess,廢材公主?) 是日本職人壓的...畫面非常漂亮 雖然我沒有一張一張檢查 但整體看下來無任何明顯瑕疵 反倒是你會被他的色彩鮮豔,線條清晰,乾淨無色階色塊吸引 讓我對divx的印象完全改觀 其實我自己壓的片子最近也都是divx比較滿意 可能是我還不會調整xvid吧(笑 至於XVID不能播放不正常好像是因為開B禎的關係 不過灌了ffdshow MPEG-4 Code 以後好像就沒問題了 可是我試過用了Quarter Pixel壓出來的divx5.03 avi 如果灌了ffdshow MPEG-4 Code 看的時候會很慘 好像一張圖被水潑到顏色混在一起一樣@@... 但是原來的divx5.03的code看就沒事...所以建議用divx5.x壓的人別開Quarter Pixel 引用:
還在作@@...請耐心等待(我這句話不知講多久了[爆]) |
所有的時間均為GMT +8。 現在的時間是07:38 PM. |
vBulletin Version 3.0.1
powered_by_vbulletin 2025。