PCDVD數位科技討論區

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)

Shade 2003-04-30 09:34 PM

引用:
Originally posted by snic
恩...我可能沒說清楚...
在線條的邊緣有輕微的馬賽克現象
在我放大到200%,250%看時(我也是用ACDSEE)會發現DIVX5.03確實比較乾淨

那是因為 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 壓縮。
引用:

而且顏色真的有點偏某個顏色(yhnui兄不講我還沒發覺XD)
DIVX的顏色跟原來一樣沒問題...

您提供的圖片中有一張 XviD 確實偏綠,不過我不清楚造成的原因。
而且我沒有原始圖片可供比對。
引用:

不過說真的靜圖我找過幾張其實差異都看不太出來...

銳利度差很多,不是嗎? ;)
引用:

但是在播放的時候會發現比方說圖中天空的部分會有色塊浮動的現象
DIVX5.03也有不過沒那麼多雜訊
感覺動起來就是覺得XVID的雜訊比較多^^"
所以想說看提昇流量能不能減少浮動現象...
不過麻煩就在於容量無法提昇...想加沒得加@@...
我再試試看把B禎關掉好了...

色塊浮動或流動的現象,有可能是 B-frame 造成的,請降低連續 B-frame 的個數。
雜訊是 MPEG quant 造成的,請改用 H.263 quant,或者是自訂 MPEG Matrix,改用壓出來雜訊比較少的量化矩陣。

可以試試看上上一頁我提供的那個 xvid.dll。
引用:

對了...有沒有可以看DIVX5.X的1st產生的log資訊的軟體阿?

直接用記事本開啟。

LOCK.LAI 2003-05-01 01:06 AM

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的功能有沒有改善了,實用上是否建議勾選?

謝謝您的指導囉。

Shade 2003-05-01 01:55 AM

引用:
Originally posted by LOCK.LAI

以我幾次壓製,算出來的話我多半會變成設定max: 4 , min:2,而結果呢,目測來看是比我以前second pass設的max:31, min:2要來得好。而我想請問的是,這種設定方法是不是合理有根據?因為用起來效果不錯,但是還是有點毛毛的^_^(因為這樣一來,Quantization就跟first pass的設定不一樣了)

LOCK.LAI 兄:

那個方法好像是「小嘴巴」兄說的。
有沒有根據我不知道,我沒有學過這個理論。
這個應該是人家的製作經驗談,如果做出來效果不錯,好用就好,就不用管他有沒有理論根據了 :P
最小 quantizer 建議還是保持設為 2,不要用 3。
first pass 不能設定 quantizer,而是固定用 quantizer 2 壓一遍。設定、限制 quantizer 是 2nd-pass 才有的功能,所以您不用擔心改變 quantizer 會造成 1st-pass 和 2nd-pass 的設定不相同。
這個設定原本 1st-pass 和 2nd-pass 就不同 :)
引用:

另外,有關選項中的GMC(Global Motion Compensation),同樣在該網站去年九月份的文章中說到〞开发中,功能简陋,完全没有实质上的压缩助益,并且还有错误需要修正,绝对不要使用〞。

我想問的就是,已經過了大半年了,以目前而言,像我常用的koepi 20030405的版本,GMC的功能有沒有改善了,實用上是否建議勾選?

有改善。
但是改善最多的 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。

Shade 2003-05-03 11:26 PM

抓圖

所有的圖都是以該 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 少,不過背景的方塊還是很引人注目。

Shade 2003-05-03 11:30 PM

接下來是 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 的畫面則較模糊,整體壓縮瑕疵較多,給人的印象畫質較差。

Shade 2003-05-03 11:37 PM

測試四

因為 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


其他項目的測試原理,礙於時間因素,就不詳加介紹了。

Shade 2003-05-03 11:39 PM

因為硬碟空間大小的限制,我只有比較後面 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

snic 2003-05-04 05:15 AM

Shade 兄...
從您一連串測試(您真的很閒XD...小的甘拜下風^^; )後我覺得...
不管是 DIVX 還是 XVID...
是不是在不限制容量流量的情況下...
能不開 B-frame 功能就別開比較好
總覺得開 B-frame 只是提高壓縮比的一種手段
像 DivX 因為從頭到尾都要開...所以不適合的地方也要強迫使用
雖然 XviD 可以自動判斷是否加 B-frame...
可是就像自動 IVTC...還是會有判對錯的地方
那我覺得不開 B-frame 還比較好...總比你壓完發現有瑕疵來的好
又不像 TMPEGNC 的自動 IVTC 還可以手動檢查^^;
還是說 B-frame 還有其他用途?會提高畫質嗎?

無責任 2003-05-04 12:21 PM

哇~~超豐富的測試...^^正努力吸收中...
目前我沒使用過DIVX5以上或XVID壓過...目前只使用過DIVX 3.11+SBC壓..@@
不過以網路所取得的動畫...個人覺得XVID勝過DIVX許多...
但播放XVID動畫出的問題也較多...可能CODE版本太多了...

請問有經驗的大大...以同流量來說...假設影片中的動態及亮度變化量極大..
各以2 PASS來壓...何者CODE較優...
另外那裡有比較詳細DVIX 5.X及XVID的設定教學...當然希望以動畫設定為主...^^|||
謝謝~~

snic 2003-05-04 05:21 PM

引用:
Originally posted by 無責任
哇~~超豐富的測試...^^正努力吸收中...
目前我沒使用過DIVX5以上或XVID壓過...目前只使用過DIVX 3.11+SBC壓..@@
不過以網路所取得的動畫...個人覺得XVID勝過DIVX許多...
但播放XVID動畫出的問題也較多...可能CODE版本太多了...

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
引用:
Originally posted by 無責任
另外那裡有比較詳細DVIX 5.X及XVID的設定教學...當然希望以動畫設定為主...^^|||
謝謝~~

還在作@@...請耐心等待(我這句話不知講多久了[爆])


所有的時間均為GMT +8。 現在的時間是07:38 PM.

vBulletin Version 3.0.1
powered_by_vbulletin 2025。