小弟不是高手,你們不要被我唬了 ^^;
我說的那些都是一些前輩先進們整理出來的心得,小弟只是照抄而已...
那個灰色方塊的 bug,只有在流量很高的時候才會出現 ^^;
當流量很高的時候(瞬間流量 3000bps 以上,不是指定的平均流量,所以即使流量給得低也有可能會出現),高反差的地帶(黑色與白色的交界處),就會出現這種灰色方塊的瑕疵。
解決的方法有兩種,一種是提高 Compression Level,也就是 Quantizer,這樣畫面會被壓縮的較厲害,流量也會掉下來,雖然畫質比較不好,但是明顯的灰色方塊的瑕疵也會跟著消失。Nundub 的 Min quality 選項就是這麼做的,當畫面壓好以後,他會計算此一畫面的 worst block 的 PSNR 值(Peak Signal to Noise Ratio,單位是 dB),如果 PSNR 值低於你所設定的可以容忍的最低品質,Nundub 就會把此一畫面當成 Shit,重新提高 Quantizer 壓縮;對,你沒有看錯,提高 Quantizer 壓縮,把畫面壓得更爛一點 :P
如果是由於灰色方塊造成的壓縮瑕疵,經提高 Quantizer 壓縮以後,灰色方塊會因此減少,PSNR 值也就會大幅上升,直到超過你所設定的 PSNR 下限為止。
另一個方法是把此一畫面重新壓縮成 keyframe,這樣灰色方塊也會跟著消失。M4C 的作法就是這樣,比較壓縮畫面和原始畫面 Y(亮度)的差距,如果差距太大就當作是發現灰色方塊,將該畫面重新壓縮成 keyframe。
Nandub 的 AntiShit 選項也是同樣的作法,當 PSNR 值低於你設定的下限,他就把該畫面重新壓縮成 keyframe,並且提高 Quantizer 壓縮。不過它的演算法有問題,遇到一些特殊情況的時候,他會反覆不停的重新提高 Quantizer 壓縮,直到 31x 為止(MS MPEG4 所能做的最高壓縮)。結果我們最後會得到一張 31x 高壓縮的 "keyframe"
這樣的畫面當然是慘不忍睹,所以我上面才會說 Nandub 的 AntiShit 真的是 Shit。
M4C 壓出來會很漂亮,不過唯一的缺點,keyframe 會比較多,而 MS MPEG4 keyframe 預設的 Quantizer 最低只能到 4x,所以 keyframe 一插,畫面就都是晶格狀
要盡量減少 keyframe 的數量,又要在適當的地方插入 keyframe,最完美的作法,只有用 AviUtl 手動指定 keyframe + M4C 了 ^^
不過長篇動畫搞這麼大概會累死 ^^;;
還有我一直覺得很奇怪,Nandub 的 SCD 是不是有問題,我這裡他每次偵測場景變換插入 keyframe 都插不對地方,往往等到場景變換了以後的三、四個 frame,他才插入 keyframe,白白浪費了許多空間。相較之下,VirtualDub 或 Gordian Knot 的 SCD 反而更正確。
請將 Internal SCD 這個設定調成 100%,關閉 VirtualDub 內建的 SCD(Preferences 底下設定的那一個),只用 Nandub 自己的 SCD,試試看 Nandub 是不是都插不對地方?
我以前快被 Nandub 的 SCD 給氣死,根本就是亂插一通,加上如果 Internal SCD 開啟,兩個 SCD 一起插,無謂的 keyframe 爆多... ^^;
(keyframe 獨立壓縮,通常需要的流量也較大,如果 keyframe 的數目太多,其他 frame 的流量就勢必減少,造成整體畫質下降。所以有人是完全不插 keyframe 派,除非必要,否則 keyframe 能省則省)
由於以上這些原因,所以小弟都不用 Nandub 來壓動畫... ^^;