[Fansubbing] x264 setting (for reference)

delacroix01

Eroge Addict
Messages
852
Reaction score
131
Points
43
Credits
0
x264 presets for reference: http://forum.doom9.org/showthread.php?t=139765

có thấy cái này, chưa thử nữa, well, ai thích cứ lấy vọc, patch mixAQ & oreAQ
new b-frame decision (r928 patched trở lên)
Psy RDO / Psy trellis (not really useful for normal encoding but well, for reference)

edit: sources for beginners:
http://tinyurl.com/3cp7bq (this should suffice atm)
http://mewiki.project357.com/wiki/X264_Settings
Rảnh ngồi viết chia sẻ vài kinh nghiệm encode cho anh em chơi ~3

Đầu tiên: CRF

Trước đây tui luôn tự hỏi sao tụi trên doom9 toàn xài CRF mà không xài 2 Pass thì bây giờ tui đã hiểu tại sao.
CRF (Constant Quality) là gì thì vô 2 trang dưới là biết, ở đây chỉ nói về công dụng.
http://trac.handbrake.fr/wiki/ConstantQuality
http://trac.handbrake.fr/wiki/CRFGuide

Nếu ai cho rằng CRF là 1 pass chắc chắn không thể đọ lại 2 pass ABR thì xin thưa điều đó là hoàn toàn sai lầm vì trong nhiều trường hợp CRF cho chất lượng cao hơn hẳn 2 pass.

Giải thích về công dụng của CRF:
Nói 1 cách đơn giản dễ hiểu nếu như 2 Pass dựa vào số bitrate được thiết lập để thực hiện việc tăng giảm Bitrate thì CRF dựa vào quality để tăng giảm bit, chính vì thế CRF thực hiện rất tốt việc tăng giảm bit so với 2 Pass.

Ưu điểm: tăng giảm bit hợp lý giúp phim giữ được chất lượng.
Khuyết điểm: không kiểm soát được file size, phim nhiều cảnh tĩnh thì size nhỏ, nhiều cảnh động thì size lớn.
Tốc độ: Nhanh hơn 2 pass ABR và chậm hơn 1 pass ABR.

Khi nào cần xài CRF:
Khi file cần encode có sự chênh lệch quá lớn về chuyển động và độ chi tiết giữa các đoạn phim. Lấy ví dụ anime Kara no Kyoukai 3 tui đã encode, tui xài CRF 16 chứ không dùng 2 pass. Nếu ai đã từng xem sẽ thấy vào những cảnh trò chuyện, khung cảnh xung quanh rất ít chuyển động, cảnh lặp lại giữa các frame rất nhiều, lúc này CRF giảm mức bitrate xuống còn ~700; với những cảnh toàn màu đen như đoạn ed thì bit giảm xuống còn ~100; còn vào những cảnh mưa bão và những đoạn đánh nhau khung cảnh chuyển động liên tục, bit tăng lên đến 3000 thậm chí ~4000 giúp giữ được quality; so với 2 pass nếu chỉnh bit là 1400 thì với những cảnh trên bit chỉ tăng trên 2000 một chút làm chất lượng giảm đi. Dĩ nhiên, nếu thiết lập đúng thì 2 pass vẫn có thể khắc phục được điểm này.
Psy-RDO / Psy-trellis test results (clean CGI/game recording): http://forum.doom9.org/showthread.php?t=141188

còn cái này nữa chú ý dành cho người xài crf
test cùng 1 setting trên cùng 1 file
x264 r89x -> 200kbps ~ 300kbps
x264 r96x -> 300kbps ~ 400kbps
x264 r97x -> 500kbps ~ 600kbps
========
Warning: Avoid colorspace conversion

ra lossless thì ít nhiều gì nó cũng gây banding rồi, nhưng thường ko khác bản gốc.
btw, đừng bao giờ test về noise, color hay banding trên virtualdub, có gì thì click chuột phải vô file avs rồi play = mpc. Khi encode cũng vậy, có gì thì dùng avs2avi, nếu thấy khó khăn thì dùng thêm AvsP. Thằng virtualdub cực kì xạo sự, ko hiểu nó dùng cơ chế gì mà mấy file hơi noise lên đó đều thành clean hết, lại còn rất đẹp mắt nữa chứ, cái filter 2D cleaner của nó cũng vậy, khi test thì kết quả trên màn hình cực kì mượt mà, ko có 1 chút banding, nhưng khi xuất ra thì, chấp uncompress luôn, banding còn kinh khủng hơn dùng filter của avisynth.
Encode trên đó cũng vậy, dù có chọn decompress hay compress là RGB thì file xuất ra vẫn bị banding, thậm chí còn ác chiến hơn bình thường.
Tóm lại, xuất file avi thì dùng avs2avi là được, đừng đụng tới virtualdub.
Mặc định thì nó sẽ convert colorspace nên quality bị ảnh hưởng là đúng rồi. Mấy cái raw thường gặp hầu hết đều được nén sẵn với colorspace YV12, ko phải RGB. Tớ vẫn xài VirtualDubMod bình thường, ko thấy khác biệt gì cả. Chỉ cần set lại thành Fast Recompress mode rồi output ra YV12 là được thôi, ko gây thêm banding gì hết.
========
http://forum.doom9.org/showthread.php?t=148686

new experimental patch

btw, ai chưa biết thì x264 có --subme 10 rồi đấy, efficiency + ~2%
Lâu ngày ko encode thấy bản mới update nhiều option mới khá phết. Encode thử thấy có vẻ khá hơn lúc trước.

AVS : MPEG2Source("OP.d2v", cpu=2, info=3)

Settings :
program --profile high --tune animation --crf 17.0 --thread-input --deblock -2:-1 --keyint 300 --min-keyint 30 --b-adapt 2 --b-pyramid strict --ref 10 --aq-strength 0.8 --merange 20 --me umh --subme 9 --partitions all --output "output" "input"

Before


After



Nói chung detail được retain khá ổn sau khi deblock luma với sử dụng profile như trên. Mai chắc thử với vid cùi hơn coi thế nào :]
Dạo này thấy có nhiều chú rảnh rỗi đi encode x264 10-bit và nhiều bạn chả hiểu rõ thực hư đã đi support bừa nên chắc tớ post 1 cái để tham khảo.

Code:
https://www.doom9.org/showpost.php?p=1528638&postcount=109


Về bản chất thì x264 10-bit coding là lấy thêm 2 bit cho phần color, vì thế nó có lợi hơn ở những đoạn gradient, vốn cần 1 lượng màu lớn hơn so với bình thường, kết quả là giảm banding ở những chỗ này (xem hình 1). Tuy nhiên về mức độ giữ detail thì nó gần như ko cải thiện chút nào cả (xem mấy hình sau), trong khi lại cần 1 khoảng thời gian lớn hơn để decode (8 bit là vừa chẵn 1 byte nên process nhanh hơn nhiều). Chưa kể cùng 1 setting thì 10-bit chỉ giảm được 5-10% filesize so với 8-bit (cái quảng cáo giảm 40% size của 1 số tên là bố láo) nên tớ thấy lợi thế là chưa đáng kể. Hiện nay thì vẫn ko ít người còn sử dụng P4 (chẳng hạn như tớ), cho nên tớ thấy chưa cần thiết phải chuyển sang định dạng này làm gì. Khi nào nó được hỗ trợ nhiều bởi mấy cái h264 decoder thì hẵng tính.
 
Top