x264 + VirtualDub vs XviD. Досліджуємо можливості, підвищуємо ефективність

    У попередньому пості я писав про розробку власної матриці під XviD. Тієї статті не було б, якщо б я відразу зайнявся x264. А зайнявся я їм, бо бачив, що такі проблеми XviD, як Квадратичність, спотворення градієнта кольору, ореол навколо об'єктів, усуваються в x264.
Метою завдання стало з'ясування цих можливостей кодека, а також швидкості кодування і розміру файлу. x264 успішно впорався з усіма завданнями і нижче ви дізнаєтеся, як це зробити легко і невимушено.
 
 

Коротка інформація

Кодек x264 — дуже успішна реалізація стандарту H.264, створена під крилом спільноти VideoLAN (автора VLC media player) з вільною ліцензією. Зазвичай експортується консольний варіант, орієнтований в першу чергу на Юніксоід, під вінди також є варіанти з графічним інтерфейсом. Власне, недружні опенсорсний розробників з рядовими користувачами (вічні проблеми з документацією і графічним інтерфейсом успішно і донині відокремлюють Microsoft від багатьох хороших і безкоштовних проектів) і стала гальмівним фактором на шляху виходу кодека до широких мас і любителям відеоколекції. Але, слава Всевишньому, не все так сумно на сьогоднішній день і є гідні графічні варіанти. Тепер будьте уважні, тому що мова піде саме про реліз 2273 від Komisar (посилання тут ). Сам файл, який встановиться в систему, це x264vfw.dll. Встановити його можна на будь-який диск, а установник подбає, щоб цей шлях потрапив до реєстру вінди. Також ви можете мати встановленим цей кодек, якщо у вас є повний K-Lite Codec Pack. Якщо там інша версія, встановіть 2273. Я пробував версію 2274 з іншим інтерфейсом — категорично не раджу, якщо тільки ви не збираєтеся вникати в консольні команди. Щоб ви не заплуталися, дивіться скріншоти.
 
 
 
 
 
Маркером виділені ключі, які ми будемо розбирати і міняти. Поїхали.
 
 Quantizer — квантизатор, який огрубляет підсумковий сигнал, чим більше, тим гірше якість. Я кодую тільки квантизатор і тільки в один прохід, чому — дивіться попередній пост.
Тут він відрізняється від того, що в XviD, тому я прикинув, що потрібно брати значення кратні 4. Ось резюме:
4, 8 — рекомендується тільки тим, хто займається обробкою відео, так як якість ідеальне, але великий розмір файлу;
12, 16 — для любителів якісних роликів невеликого розміру в домашній колекції;
20 — мій вибір, найоптимальніший квантизатор, підходить для фільмів;
24, 28 — компромісний варіант, нормальна якість, підходить для більшості фільмів і серіалів, а також для завантаження роликів на ютуб;
32 і вище — бувають і такі випадки.
 
У другій вкладці багато цікавих і корисних налаштувань.
Блок Analysis — розбивка блоків на частини, фішка стандарту H.264, покликана забезпечити кращу якість, але на перевірку виявилася практично даремною — розмір файлу збільшується, поліпшення якості потрібно шукати з мікроскопом, так що відключайте всі «пташки».
 
 Subpixel ME refinement — складність оцінки руху, значення від 1 до 11.
Чим більше, тим менше розмір і швидкість. Насправді розмір зменшувався до 5, з цифри 6 розмір став рости, а швидкість падати, мабуть, це пов'язано з Psy RDO, який до цифри 6 не працює. Так що висновок такий: якщо хочете максимальну швидкість, то ставте 1 і жертвуйте декількома мегабайтами, якщо ж не хочете жертвувати мегабайтами, а хвилинами, то ставте 5.
 
 Max GOP size — максимальний інтервал між ключовими кадрами, докладніше в попередньому пості. Ставте в межах 200-300 і не партія.
 
 Max consecutive B-frames — максимальна послідовність B-кадрів, чим їх більше, тим менше розмір, але з цим потрібно бути обережніше, можуть бути проблеми з відтворенням. Рекомендую 1 або 2.
 
Ми підійшли до блоку Encoding і це, мабуть, найцікавіша частина налаштувань.
 Deblocking filter (пташка і два числових значення) — вирішує проблему квадратів, так ненависних у XviD. За замовчуванням стоять значення 0, максимум 6. Мені 0 здалося мало і я спробував 6 — сподобалося. Тепер завжди буду ставити 6. Компроміс — 3.
 
 Intra / Inter Deadzone — згладжує фільтр, працює за принципом Гаусса. Цікаво, що в VirtualDub є подібний фільтр і я їм часто користувався, але тепер він особливого сенсу не має. Справа в тому, що при використанні його тільки в VirtualDub кодек в підсумку все одно залишає шуми, а якщо використовувати його тільки в кодеку — ніяких проблем з шумами. Я вибрав максимум 32, тому що деякі моменти просто захоплювалися — проїжджаюча машина дає перламутровий блиск, море і небо просто чудо. Деякі помітять, що є недолік замилювання дрібних деталей, тоді раджу менші значення, кратні 4. Відключити зовсім можна при квантизатор менше 16. На швидкість не впливає.
 
Решта ключі на цій вкладці пояснювати не буду — просто поставте, як на скріншоті.
Тепер третя вкладка, скриншота немає і не потрібно. Там тільки потрібно змінити два значення раз і назавжди. QP factor — виставте обидва в 1, якщо не хочете сюрпризів у вигляді несподіваного погіршення якості.
 
Тепер важлива інормаціі для тих, хто користується зовнішнім плеєром. Якщо є проблеми з відтворенням, зробіть наступні налаштування:
Max frame refs = 1, Max consecutive B-frames = 0, CABAC = викл.
Не всі ці настройки одночасно впливають на сумісність, тому експериментуйте.
 
На швидкість можуть впливати Subpixel ME refinement, Max frame refs, Max consecutive B-frames. За рахунок використання багатоядерності x264 залишає позаду XviD. З тими настройками, які на скріншотах, розмір файлу зіставимо з XviD з середнім квантизатор, але якість набагато краще. Так що прощай старий добрий XviD, ти багато відняв у мене часу і нервів, а також дискового простору, але тобі пора на заслужений спокій.
 
Хто любить пакувати в mkv — юзайте MeGUI, інфи в інеті достатньо. А якщо вам подобається в avi, то завітайте в VirtualDub. До речі, як швидко відкрити неавішний файл в VirtualDub? Легко. Ставите AviSynth, створюєте текстовий файл з розширенням. Avs і пишіть рядок
DirectShowSource("путь к фильму")
Якщо назва кирилицею, не забудьте про кодування Win. Потім відкриваєте файл в VirtualDub. Рекомендації по звуку в попередньому пості. Якщо робите ріпи в HD для заливки на ресурси, можна замість квантизатор 20 використовувати 24 або 28, але обов'язково з Deblocking filter і Intra / Inter Deadzone — отримаєте нормальну якість з малим розміром.
 
Для особливо цікавляться тут можна почитати про налаштування x264 російською.
 
 Кодуйте на здоров'я!
    
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.