Особенности кодирования кодеком XviD 1.3.Х CLI

Topic locked
 
Author Message

Серый1779 ®

Gender: Male

Longevity: 1 year

Posts: 733

Location: Украина

Post 02-Mar-2019 23:12

[Quote]

Особенности кодирования кодеком XviD 1.3.Х CLI.- 
Рассмотрение вопроса кодирования кодеком XviD обязательно надо начинать со статьи Alex T1000 Кодек Xvid. Основные понятия и настройки
Очень полезно прочесть и Руководство по приготовлению DVD рипов программой VirtualDub-MPEG2 и кодеком XviD, также этот мануал
Теперь после прочтения данного мануала, начнём с того, что в мире XviD мало чего поменялось с момента выхода в свет последнего билда XviD+VAQ by Dark Shikari в 2008 году. Но всё же регулярно выходят пропатченные версии XviD различных разработчиков и у многих рипперов возникают вопросы по кодированию XviD, в особенности где брать пропатченные билды с VAQ, а также особенности разнообразия профилей кодирования в связи с выходом XviD 1.3.0, обновленной уже несколько раз только в 2010 году с новым VAQ, хотя первые версии вышли уже 2 года назад. Поэтому вот и решил указать вам где это можно взять. Многие помнят матрицы квантования Jawor, так вот сей поляк и делает свои пропатченные билды. Скачать их можно здесь.
Кому лень переводить его XviD FAQ, вот вам сокращенный перевод:
Xvid Builds FAQ
БИЛДЫ
• Какой компилятор вы используете?
MingW32-GCC 3.4.5. Версии 4.x.x кажется, производят более медленные бинары и имеют тенденцию к miscompile некоторых программ. DirectShow decoder filter был построен с Visual C++ 2008 Express Edition.
• В чём отличие от ванильных билдов? Какие исправления Вы использовали?
Я включил DivX профили, Dark Shikari's VAQ и celtic_druid's MTK профили. Я изменил GUI, чтобы принять Отношение Снижения Кадра Frame Drop Ratio =-1, который отключает появление "real" N-VOPs.
Я включил VBV параметры для "(unrestricted)" профиля. Я возвратил опцию Closed GOV (которая может быть без контроля типов только для "unrestricted" профиля!). Я ввёл опцию Use 4MV (которая должен быть без контроля типов только для воспроизведения на shitty устройствах). Я увеличил максимальный номер зон до 255
Я заставил DirectShow decoder распознать дополнительно MPEG-4 FourCCs (3IVX, 3IV0, 3IV1, 3IV2, LMP4, RMP4, SMP4 and HDX4).
• Вы подключите cropping/resizing/deinterlacing/denoising фильтры в кодек? У DivX они есть!
Нет, я не буду. Это было бы бессмысленно. У AviSynth есть большие возможности в этом плане к программе, которые делают все эти вещи. Насколько я знаю, DivX - единственный популярный VfW кодек, у которого есть фильтры предварительной обработки. Xvid не должен конкурировать с DivX в каждом аспекте
================================================
ИНСТАЛЛЯТОРЫ
• я нуждаюсь в деинсталляции предыдущей версии Xvid, прежде чем выполнить *.exe инсталлятор?
Это строго рекомендуется. Если Вы не будете делать этого, вероятно ничто ужасное не случаться, но у Вас могут быть некоторые более не существенные ярлыки в Меню Пуска после этого.
• Как Вы создавали инсталляторы?
Я использовал Inno Setup .Это - великое (и бесплатное!) приложение, которое создает инсталляторы для Windows.
• Инсталляторы содержат бесплатный программный продукт с размещенной в них рекламой/спами /тулбарами.Они подключаются к интернету?
Нет. Я думаю, что помещение бесплатного программного продукта с размещенной в нем рекламой или инструментальных панелей в приложение GNU было бы неэтично, возможно даже незаконно. У Inno Setup даже нет "особенности" установки сети. Инсталляторы создают ярлыки для некоторого Xvid-связанного webpages в Меню Пуска (папка "Xvid"), но они не начаты автоматически.
• программа установки устанавливает службы или программы, которые будут работать при запуске Windows?
Нет.
• Почему программа установки изменяет Системный реестр?
Это имеет отношение ко всем кодер-декодерам VFW, они должны быть описаны в системном реестре, чтобы работать должным образом.
• Какие версии Windows поддержаны?
2000, XP и Vista. Инсталляторы могут воздействовать также на Сервер Windows 2003, Сервер Windows 2008 и Windows 7, но в настоящее время я не могу проверить это. 95/98/ME не поддержаны. Я строго советую пользователей этих устаревших систем модернизировать. Декодер DirectShow не воздействует на Windows 2000 (инсталлятор обнаруживает Windows 2000 и не устанавливает его). Это было проверено под XP SP2 и Vista (не SP).
=============================================================
ПОДДЕРЖКА
• Где я могу получить справку и поддержку?
В разделе MPEG-4 ASP <http://forum.doom9.org/forumdisplay.php? f=52> на Форуме Doom9's <http://forum.doom9.org/>. Пожалуйста не посылайте мне личные сообщения, просящие поддержку. Только ищите информацию на форуме и, если Вы не будете находить ответ, запускайте новую тему.
============================================================
КОДИРОВАНИЕ
• я могу использовать тот же самый метод кодирования, как с другими Xvid билдами?
Да. Вы можете использовать свое любимое приложение кодирования VFW в VirtualDub .
• Вы изменяли настройки по умолчанию?
Я изменил заданное по умолчанию Frame Drop Ratio от 0 до -1, потому что я думаю, что большинство людей не хотело бы N-VOPs в них, кодирует так или иначе (и если кто-то действительно будет хотеть N-VOPs, (s), то он будет вероятно знать то, для чего опция Frame Drop Ratio и как корректировать это). Я сделал "Advanced Simple @ L5" задавая по умолчанию конфигурация так, чтобы никто не мог ввернуть параметры настройки VBV случайно. Я не изменял никакие другие настройки по умолчанию.
• Каковы лучшие параметры настройки Xvid для того, чтобы кодировать?
Нет никаких "лучших" параметров настройки! Кодирование параметров настройки должно зависеть от видео источника и Ваших визуальных персональных настроек.
• OK, но... там какие-нибудь параметры настройки, которые Вы рекомендовали бы?
Используйте VHQ для B-кадров, он заставляет их выглядеть немного лучше. Поднимите значение VHQ, если у Вас есть еще некоторое время (чем выше значение VHQ, тем медленнее кодирование). Чтобы избежать превышения выходного размера, установите Минимум I/P/B-frame квантизатор к 2 (квантизатор 1 не значительно лучше, чем 2, это используется главным образом, чтобы предотвратить undersizing, но это иногда сверхкомпенсирует). Если Вы хотите выбрать определенный целевой выходной размер или среднее число bitrate, применяйте кодирование с двумя проходами.Это позволит получить намного лучшее видео по качеству, чем однопроходное кодирование с постоянным битрейтом. Если Вы кодируете видео для автономного "железного" DVD плейера, выбирайте конфигурации DIVX/XVID/MTK ниже.
• Кто-то сказал мне, что VHQ несовместим с DVD плейерами! Действительно ли это - правда?
Абсолютно нет! Это - только суеверие и невежество. VHQ - только лучший макроблоковый тип алгоритма выбора решения и более расширенный метод поиска движения. И между прочим, Trellis(квантование Решетки) - только более расширенный алгоритм квантования, таким образом это также полностью совместимо со всеми декодерами.
• Какие звуковые форматы я могу использовать с Xvid?
можно использовать почти любой формат, который Вы любите если Вы муксите аудио и видео в контейнере Matroska (*.mkv). Но для просмотра на DVD плейеерах Вы должны выбрать старый *.avi контейнер и MP3 или аудио AC3 .
• я могу использовать Xvid-закодированные файлы для авторинга ПРОИГРЫВАНИЯ ФИЛЬМОВ И АУДИО?
Нет. Xvid - кодек MPEG-4 ASP. Стандарт ПРОИГРЫВАНИЯ ФИЛЬМОВ И АУДИО позволяет только MPEG-1 и MPEG-2. Вы должны повторно закодировать своё видео (предпочтительно из Вашего оригинального источника). Для MPEG-2 кодирование Вы можете использовать CCE SP2 или Carbon Coder, который предлагают очень хорошее качество.
• Можно ли микшировать Xvid-закодированные файлы в *.mp4?
Да. YAMB <http://yamb.unite-video.com/> является бесплатным *.mp4 muxer. Помните, что большинство DVD плейеров не поддерживает *.mp4 контейнер.
• Можно ли микшировать Xvid-закодированные файлы в *.mkv?
Да. Фактически Вы должен, если Вы хотите использовать некоторые звуковые форматы (например. FLAC). MKVToolnix <http://www.bunkus.org/videotools/mkvtoolnix> является бесплатным Matroska muxer. Помните, что большинство большинство DVD плейеров не поддерживает контейнер Matroska
=======================================
VAQ
• Какова эта вещь VAQ так или иначе?
"VAQ" означает "Дисперсионное Адаптивное Квантование". В основном это - алгоритм, который пытается оптимально выбрать квантизатор для каждого макроблока, используя некоторое расширенное математическое волшебство. Алгоритм был создан Dark Shikari <http://forum.doom9.org/member.php? u=83421> для x264 кодера и позже перенесенный к Xvid.
• Как я могу активизировать VAQ?
В опции Variance AQ (в версии 1.2.2 выберите) выберите вариант Variance-Masking или же аналогично в опции Adaptive Quantization (в 1.3.x версиях). В моем старом 1.2.x билде Вы должны проверить опцию Adaptive Quantization.
• Почему Вы удалили "normal" Adaptive Quantization из 1.2.x, билдов?
Это - способ, которым исправление VAQ было написано Dark Shikari (VAQ заменил старый AQ). В 1.3.x версиях GUI(графический интерфейс пользователя) был изменен, чтобы включать всплывающий список, который дает возможность Вам выбрать алгоритм AQ. Я не вижу никакого смысла в backporting, который встраивают эти изменения к 1.2.x, поскольку старое AQ не было очень хорошим так или иначе (обычно, это делало изображение хуже, особенно в темных областях).
• Работает ли VAQ хорошо со всеми матрицами квантования?
Это, кажется, работает вполне прилично с H.263, MPEG и EQM v3 HR. Но часто делает изображение немного хуже с моими матрицами. Проверьте это сами непосредственно. Ваше мнение может измениться.
• VAQ совместим с "железными" DVD плейерами?
Обычно. Это совместимо с Simple Profile @ Level 1 и выше. Xvid, DivX и конфигурации MTK также позволяют использовать это (кодер-декодер DivX использовал форму AQ, когда программа свидетельства проектировалась, таким образом DivX-гарантированные плейера должны поддержать это). Это, не гарантируют, что будет работать хорошо с "no name" плейерами, которые не удостоверены.
===================================
DIVX 5 USER DATA, "USE 4MV" AND "CLOSED GOV"
• Что это за вещь "user data" данных и почему я должен заботиться?"
Пользовательская область" данных используется Xvid и DivX, чтобы сохранить информацию о версии кодер-декодера. Некоторые автономные DVD плейеры читают эту информацию и могут отказаться запустить файл, если пользовательская строка данных DivX отсутствует. Поэтому рекомендуется написать DivX 5 пользовательских данных, если мы намереваемся запустить наш рип на DVD плейере.
• я должен всегда подключать Use 4MV?
Нет, если Вы не кодируете для действительно дрянного устройства воспроизведения, которое не поддерживает макроблочный режим INTER4V.
• Что относительно Closed GOV?
Этот опция может быть только в "(unrestricted)" конфигурации. Оставьте это в покое, если Вы действительно не знаете то, что Вы делаете.
=========================================================
DIVX ПРОФИЛИ
• Кто добавил конфигурации DivX к Xvid?
Разработчики Xvid's добавили их к приблизительно с версии1.0. Они были прокомментированы в исходном тексте впоследствии. Я возвращал их только, чтобы помочь неопытным людям. Эти конфигурации делают совместимые файлы для автономных DVD плейеров намного проще.
• Вы присоединены к DivX, Inc?
Нет. Если DivX, Inc <http://www.divx.com/> попросит, чтобы я удалил название "DivX" из этих конфигураций, я сделаю это. Насколько я знаю, параметры настройки, используемые в этих конфигурациях, не могут быть запатентованы, таким образом я не должен буду удалить эти конфигурации в целом.
• Вы можете гарантировать, что эти конфигурации совместимы с DivX-стандартом?
Нет. Но я приложил все усилия, чтобы сделать их совместимыми. Я использовал публично доступную информацию (такую как пользовательские руководства от вебсайта DivX <http://www.divx.com/>), чтобы создать их. Я не дизассемблировал бинарные наборы DivX, чтобы получить информацию.
• Что относительно DVD плейеров , которые не удостоверены DivX, Inc? Они запустят видео Xvid, созданные с этими конфигурациями?
Почти все DVD плейера с MPEG-4-поддержкой запустят такие файлы.
• Вы проверял файлы, созданные с этими конфигурациями на DVD плейере?
Да. Я использовал Philips DVP3142/12. Прекрасно проиграл все файлы.
• Можно ли мне микшировать видео, созданное с этими конфигурациями в *.divx файл?
Да. Возьмите AVIAddXSubs <http://www.calcitapp.com/AVIAddXSubs.php>, это - бесплатная утилита, которая не полагается на DivXMux. Фактически, Вы можете даже mux файлы с Qpel, GMC и другими "несовместимыми" особенностями с ним.
• я должен выбрать конфигурацию PAL ИЛИ NTSC?
Это зависит главным образом от разрешающей способности и FPS Вашего исходного видео. Для 720x576 и 25 FPS выбирают PAL, для 720x480, и 23.976/24/29.97/30 FPS выбирают NTSC.
• Что, если мой DivX-плейер не хочет запустить какие-нибудь файлы Xvid?
Измените коды FourCC в файле к "DIVX" Преобразователь использующего Nic's FourCC (это - приложение, включенное в пакет - ищут это в папке "Xvid" под Меню Начала). Вы можете вынудить Xvid использовать "DIVX" FourCC в Вашем, кодирует - только идите в "Other options -> Encoder -> FourCC used" " в диалоге конфигурации кодер-декодера, и выбирают "DIVX" из списка. Если "DIVX" не работает с Вашим DVD плейером, попробуйте "DX50".
• Почему бы не использовать DivX вместо XviD?
Бесплатный выпуск DivX испытывает недостаток в более расширенных алгоритмах поиска движения, включенных в Про версию. У DivX нет VAQ. DivX не позволяет Вам корректировать параметры B-frames (такие как отношение/смещение квантизатора и чувствительность). Xvid производит лучшее видео качество (это субъективно конечно).
=====================================================
XVID ПРОФИЛИ
• Каковы они " Xvid профили"? Я никогда не слышал о них.
Эти конфигурации были определены в соответствии с Решениями Xvid <http://www.xvid.org/>. Они предназначаются для многих видов автономных устройств и аппаратных декодеров. Поскольку Вы, возможно, обратили внимание, они столь не ограничены как конфигурации DivX (они позволяют использование Qpel, квантование MPEG/MPEG-Custom и больше B-кадров). К сожалению программа свидетельства Xvid не так почти успешна как тот, созданный DivX, Inc (программа DivX была просто первой на рынке, и название "DivX" было намного больше рекомендовано тогда).
• Делают DivX-гарантированную поддержку плейеров конфигурации Xvid?
Не официально. DivX-плейера не обязаны поддерживать Qpel, GMC, квантование MPEG/MPEG-Custom и множественные B-кадры, но им не запрещают сделать это также. Многие DivX-гарантированные standalones (особенно более новые) поддерживают Qpel, множественность B-кадров и MPEG/MPEG-Custom. GMC Xvid's - самая проблематичная особенность (это более сложно чем GMC DivX's), автономные плейера не поддерживают это или запускают такие видео с экспонатами.
• у меня есть недешевый "no name" плейер, у которого есть некоторое Лого "Xvid". Это удостоверено в соответствии с Решениями Xvid?
Не обязательно. "No name" изготовители не использовало подобные эмблемы "Xvid" много лет. Их плейера вероятно не удостоверены в соответствии с Решениями Xvid или кем - либо еще. Эти standalones, как гарантируют, полностью не поддержат Xvid (или DivX) конфигурации. Вы должны проверить их сами. На Xvid защищают авторским правом, программное обеспечение и использование названия "Xvid" на таких продуктах могут быть незаконными.
=======================================================
MTK ПРОФИЛИ
• Каковы эти профили MTK? Для чего они хороши?
"Профили MTK" были созданы celtic_druid <http://forum.doom9.org/member.php? u=190> от Форума Doom9's <http://forum.doom9.org/>. Они стремятся к совместимости с автономными DVD плейерами, использующими наборы микросхем MediaTek.
• Как я могу сказать, использует ли мой автономный DVD плейер набор микросхем MediaTek?
Ищите свой плейер здесь <http://www.videohelp.com/dvdplayers>. К сожалению информация о наборе микросхем не доступна для многих DVD плейеров (изготовители иногда не хотят обнародовать технические подробности их продуктов).
• Какую конфигурацию MTK я должен выбрать?
Если Вы хотите. чтобы ваш рип нормально воспроизводился бытовыми DVD плейерами, выберите профиль по битрейту "PAL MTK" или "MTK NTSC" (для выбора PAL/NTSC, см., что DIVX ПРОФИЛИРУЕТ раздел). "PAL MTK 6000" и "MTK NTSC 6000" позволяет выше bitrates, и возможно, что Ваш DVD плейер не будет в состоянии обработать их.
=========================================
XVID_ENCRAW
• я могу использовать Ваш xvidcore.dll с xvid_encraw?
Да. Если Ваша версия xvid_encraw не поддерживает --drop -1, использует специальные xvidcore.dll файлы, которые обрабатывают 0 как-1.
• Как я использую Ваш xvidcore.dll с xvid_encraw?
Ищите в Вашей xvid_encraw папке, резервируйте старый xvidcore.dll и поместите мой xvidcore.dll в папку.
===============================================
ВОСПРОИЗВЕДЕНИЕ ЗАКОДИРОВАННОГО ВИДЕО НА PC
• Какой декодер я могу использовать, чтобы запустить моё Xvid-закодированные видео?
Новые пакеты содержат Xvid DirectShow decoder для Windows XP и выше (не 2000), но любой MPEG-4 ASP декодер выполнит (если файл не содержит ошибок). Если у Вас нет декодера (или недовольны с тем, который Вы получили), попробуйте ffdshow <http://ffdshow-tryout.sourceforge.net/>. Это является бесплатным и может декодировать много других форматов.
• Какого программный плейер Вы рекомендуете для видео Xvid?
Media Player Classic HomeCinema <http://mpc-hc.sourceforge.net/>. Забудьте об Универсальном проигрывателе Windows
======================================================
ВОСПРОИЗВЕДЕНИЕ ЗАКОДИРОВАННОГО ВИДЕО НА СТАЦИОНАРНЫХ ПРОИГРЫВАТЕЛЯХ
• Какой автономный DVD плейер лучший для того, чтобы запустить видео Xvid?
"Лучший" DVD плейер - тот, который лучше всего удовлетворяет Вас. Если Вы собираетесь покупать DVD плейер, ищите на VideoHelp <http://www.videohelp.com/dvdplayers> для возможностей, которых Вы желаете. И помните, Google <http://www.google.com/> является Вашим другом
• Существует ли XviD видео, закодированное регион-кодом? Я нуждаюсь в DVD плейере мультизонном, чтобы запустить их?
Нет. Кодирование регион-кодом применяется только к BD и DVD.
• Мой DVD плейер не запускает *.avi / *.divx файлы, только "нормальные" DVD. Это запустит такие файлы после обновления встроенного программного обеспечения?
Нет. Набор микросхем ответственен по большей части за процесс декодирования видео. Это - специализированный MPEG декодерный чип, а не универсальный CPU как в PC. Вы не можете заставить это декодировать новые форматы сжатия видеоизображения, передавая некоторое новое программное обеспечение.
• Какой звуковой формат я должен использовать?
Все DVD плейера должны декодировать CBR MP3 в *.avi файлах. Большинство DVD плейеров также принимает VBR MP3 и CBR в AC3. DivX-DVD плейер также поддерживают "Аудио DivX", взломанный вариант Аудио Носителей Windows, который предлагает относительно низкое качество. Постоянная скорость передачи в битах MP3 в 128 kbps - вероятно самый безопасный выбор, но должным образом закодированный VBR MP3, может предложить лучшее качество. Перевыборка от 48000 Гц до 44100 Гц не должна быть необходимой.
• Какой формат субтитров я должен использовать?
Когда в сомнении, используйте SubRip (*.srt) формат и удалите все ПОДОБНЫЕ HTML тэги (некоторые игроки отображают их, как будто они были только нормальными символами). Много DVD плейеров поддерживают MicroDVD (*.txt), SubStation Alpha (*.ssa) и другие форматы, но разработанные тэги, и другие расширенные особенности обычно игнорируются. Это означает, что PC можно лучше удовлетворить для того, чтобы запустить Ваше аниме fansubs и караоке.
Много полезной информации по кодированию XviD с новыми билдами можно подчерпнуть здесь и скачать последние билды различных версий XviD.
===========================================================================
1. Для определения необходимо битрейта для кодирования вашего видео материала воспользуйтесь "Методикой подбора битрейта под ваш исходник для получения оптимального по качеству рипа".
2. Минимальные квантизеры должны быть установлены следующим образом: -imin 2 -pmin 2 -bmin 2 . Для двухпроходного кодирования максимальные квантизеры выставлять специально не надо на низких битрйтах, на высоких это вполне можно сделать, а вот все минимальные лучше установить со значением "2". Фреймы с квантом "2" не будут выглядеть хуже, чем с "1", поскольку алгоритм управления скоростью кодека не всегда справляется с минимальными квантами "1" хорошо и можно получить негабаритный файл на выходе, кроме того с минимальным квантом "1" кодек делает распределение квантов хуже. Прежде всего подобная установка квантизеров выполняется при кодировании в аспект разрешения 4:3.
3. Минимальные квантизеры лучше установить следующим образом: -imin 1 -pmin 1 -bmin 1 при условии, что вы отказались от применения указанной выше методики и вам необходимо обеспечить точное попадание в заданный битрейт или размер.
4. Минимальные квантизеры для однопроходного кодирования должны быть установлены -pmin 1 -bmin 3. Важным условием для попадания в заданный битрейт является установка -pmin 1
5. Максимальные квантизеры нужно ограничить только на однопроходном кодировании, приблизительно до уровня -imax 5 -pmax 5 -bmax 8, иначе на более высоких значениях будут наблюдаться артефакты блочности изображения.
6. Адаптивное квантование распространяется только на P-frames с максимальным квантизером -pmax 3
а) Ключ опции VAQ для версии 1.3.Х имеет вид: -masking 2 с возможностью включения старого адаптивного квантования: -masking 1
б) Ключ опции VAQ для версии 1.2.2 имеет вид: -lumimasking без выбора варианта.
Старая версия VAQ пытается отдать меньший битпоток областям изображения, которые человеческий глаз не в состоянии увидеть достаточно хорошо, что позволит кодировщику потратить сэкономленные биты на более важные части картинки. Качество закодированного материала, привнесенное этой опцией, сильно зависит от личных предпочтений и от типа и настроек монитора, использовавшегося для просмотра (обычно результат выглядит не очень хорошо, если он яркий, или является TFT монитором). Новая версия VAQ взята от кодека x264 и способствует лучшей упаковке p-frames c более низкими значениями квантов. Но вряд ли стоит ожидать от этой опции большой толк. Можно запросто нарваться на артефакты блочности на участках тёмных сцен и сцен с градиентами цветовых переходов. Особого смысла нет применять эту опцию на высоких битрейтах или кодировании с постоянным квантизером 2 или 3.
7. Для максимального попадания в заданный битрейт при однопроходном экспериментальном кодировании настройки кодека по CBR не совсем правильные: -reaction 16 -averaging 100 -smoother 100. Лучше будет их установить -reaction 60 -averaging 28 -smoother 28. При этом разброс в выходном битрейте значительно снизится.
Однопроходный пресет имеет вид:
-bitrate XXXX -qtype 0 -nopacked -metric 1 -reaction 60 -averaging 28 -smoother 28 -max_key_interval 250 -vhqmode 4 -pmin 1 -bmin 3 -max_bframes 2 -bvhq -bquant_ratio 162 -bquant_offset 0 -pmax 4 -bmax 6 -masking 2
Стоит однако учесть, что для улучшения качества p- и b-frames лучше всегда применять -max_brames 2, но для максимальной совместимости со стационарными плеерами рекомендуемая установка -max_brames 1.
РЕКОМЕНДАЦИЯ: Внимательно следите за коэффициентом качества на однопроходном кодировании и не опускайте его ниже 0,2 бит\пиксель иначе из-за верхнего ограничения по квантам на p- и b-frames можно получить перерасход битрейта. Если на выбранном вами разрешении с заданным битрейтом идёт превышение последнего, лучше выбрать пресет с более высоким битрейтом или снизить ваше разрешение или как последний вариант увеличить ограничение максимальных квантов. Считаю, что применять однопроходное кодирование не следует при желании создать качественный рип. Это чистой воды эксперимент и не более. Лучше проведите однопроходное кодирование с постоянным квантизером 2 или 3.
8. Интервал между ключевыми кадрами должен быть 10*fps, т.е., например, для 25,00 fps: -max_key_interval 250
9. Если вы используете -vbvmax 4854000 -vbvsize 3145728 (величина для “DivX Home Theatre” профиля), кодек не будет нарушать ограничения “DivX Home Theatre” профиля. Рекомендуемые установки для второго прохода:
-ostrength 10 -oimprove 10 -odegrade 10 -chigh 15 -clow 7 -vbvmax 4854000 -vbvsize 3145728 -imin 2 -bmin 2 -pmin 2
Для профиля "MTK 6000" необходимо установить -vbvmax 7281300 -vbvsize 4718592.
10. Опцию -qpel желательно пока не включать. qpel увеличивает количество предполагаемых векторов движения, путём повышения точности оценки движения с полупиксельной до четвертьпиксельной. Идея состоит в том, чтобы найти лучшие векторы движения, которые взамен уменьшат битпоток (тем самым увеличивая качество). Однако, векторы движения с четвертьпиксельной точностью требуют большего количества дополнительных бит для кодирования, а векторы-кандидаты не всегда дают (значительно) лучшие результаты. Достаточно часто кодек тратит дополнительные биты на повышенную точность впустую, а взамен получает или вообще ничего, или небольшое увеличение качества. К сожалению, нет способа предсказать возможные улучшения от qpel, так что Вам придется сделать кодирование с ней и без нее, чтобы знать наверняка.
qpel может почти удвоить время кодирования и требует, как минимум, на 25% большей мощности при декодировании. Она поддерживается не всеми аппаратными проигрывателями.. Помните также, что применение -vhqmode 4 -qpel приводят к сбою даже кодека XviD 1.2.2 . Так что применяйте -vhqmode 1 -qpel. Общая рекомендация: отключено
11. Теперь о важном: максимально идущих подряд B-frames. Данной настройкой определяется, последовательность какого количества B-кадров может использовать XviD. Обратите внимание, что максимально возможное количество B-frames предполагает большое расстояние между опорными кадрами. При этом трансформация изображения от опорных кадров будет более трудной и конечное качество более низким. Плохое качество опорных кадров влечет за собой плохое качество и B-frames. Практически, эта настройка проводится под ваши конкретные нужды. Как правило, значения от 1 до 2 выбираются для «естественных», а несколько более высокие – для анимированных фильмов с большим количеством одноцветных участков изображения. Кроме того старые модели стационарных плейеров не поддерживают количество идущих подряд -max_b-frames более 1. Проверьте свой плейер на данную совместимость.
12. Ещё подметил одну особенность с -bquant_ratio, который по умолчанию в XviD для VD составляет 150(1.50), а в CLI версиях 162. Некоторые гуру кодирования рекомендуют установить эту опцию -bquant_ratio 100. При этом значительно возрастает качество B-frames. Аналогичный прирост в качестве B-frames даёт опция: -bquant_ratio 162 -bquant_offset 0. Именно эта установка в настоящее время активно используется при кодировании.
Стоит отметить, что при кодировании довольно качественных исходников типа BD с заданием довольно высокого битрейта при кодировании >1600 кбит\с, лучше удалить ключ -zones 0,q,3.0 в первом проходе и установить ключи -bquant_ratio 100 -bquant_offset 100 в обоих проходах.
13. Ключ для новой опции XviD 1.3.X VHQ metric: 1 - PSNR-HVS-M имеет вид: -metric 1 . Ключ для старой опции VHQ metric: 0 - PSNR имеет вид: -metric 0
Провёл тестирование разных версий XvID: 1.2.1 с xvidvideo.ru, 1.2.1 билд от Koepi, 1.2.2 из состава Megui и 1.3.2 билд от Jawor с -metric 0(старой) и -metric 1(новой). Результат у всех практически одинаков, как по размеру в целом, так и по каждому типу фреймов отдельно, кроме последнего варианта. Качество тоже. Но когда дошёл до тестирования 1.3.2 билд от Jawor с -metric 1, результат оказался следующим:
а) Опция -metric 1 очень прожорливо поедает битрейт, при кодировании с одинаковым битрейтом или с одинаковым квантизером выходной размер файла на 5...8 % больше, чем с -metric 0
б) Опция -metric 1 пожирает весь этот битрейт в сторону лучшей цветопередачи человеческой кожи и всей окружающей гаммы цветов, но при этом увеличивает незначительно радужность изображения и снижается скорость кодирования.
Таким образом можно сказать, что -metric 1 лучше не применять на исходниках с повышенной радужностью изображения: аниме, Cartoon, SATRip и TVRip, материала любого типа камкодеров при съёмке со слабой освещённостью.
Минусов получается от этой метрики тоже хватает. Вероятно от неё по-просту следует отказаться или подключать её при достаточно высоких битрейтах.
14. Матрицы квантования выбирайте лучше стандартные для совместимости: Н263 на низких битрейтах до 900 кбит\с и MPEG для высоких битрейтов с целью улучшения детализации изображения. Хотя моё мнение: матрицу MPEG надо использовать при коэффициенте качества не ниже 0,21 бит\пиксель и только при двухпроходном кодировании. А лучше вообще при битрейте выше 1650 кбит\с перейти на костумную матрицу квантования heini_mr, а при битрейте ниже этого значения применять Sharktooth's EQM v3LR. Для битрейта > 1850 кбит\с стоит уже задуматься от применении матрицы квантования heini_lr_6o9. Помните, что костумные матрицы квантования не поддерживаются большинством железных DVD плейеров, кроме Sharktooth's и heini_mr.
Для убитых или блочных исходников, а также при кодировании в 1 проход лучше остаться ВСЕГДА на матрице квантования Sharktooth's EQM v3LR даже на высоких битрейтах. Это касается и старых мультфильмов Cartoon. Матрица квантования H263, к сожалению, больше склонна к блочности изображения.
На качественных релизах XviD cобственно всё упирается в возможности четырёх типов матриц квантования, которые имеют очень ровные и качественные характеристики и при достаточном битрейте 1600...2050 кбит\с, который должен обеспечить средние кванты не более 3 на I-и P-frames и 4 на B-frames , способны слегка убрать остатки шума самостоятельно и немного пригладить изображение по окружающему фону, не создавая на этом битрейте блочность изображения и сохраняя при этом прекрасную детализацию объектов движения. Это следующие матрицы квантования:
1)Jawor_ZSM.cqm, требующая -I 2 -P 2 -B 3, имеющая наилучшую характеристику для прогрессивного видео, но она к сожалению не поддерживается многими железными плеерами.
2) Sharktooth's EQM v3HR.cqm требует также битрейта 1600...2050 кбит\с, есть поддержка практически всех железных коней, но имеющая ограничение на применение по минимальным квантам 1 и trellis от разработчика, поскольку выдает артефакты на всех версиях и билдах XviD ниже XviD 1.3.3 build 65:
WARNING: It may not work with some standalones (expecially the ones with ESS chipsets).
IMPORTANT NOTE:
- FIXED -
There's a recently discovered bug in Xvid that affects all 1.xx versions with Trellis Quantization.
Some matrices trigger an overflow in trellis causing visible blocking at certain quants. One of them is EQM V3HR (but other matrices where reported as well).
There are 2 workarounds (at least i found those 2 only):
disable Trellis Quantization OR limit the MinQ and MaxQ to 2-31 respectively.
- FIXED -
Многие рипперы пренебрегали этим предупреждением и получали артефакты.
3) heini_mr.cqm -эта матрица квантования родная сестра Sharktooth's EQM v3HR.cqm с чуть улучшенными характеристиками и все предупреждения касаются и её. Данная матрица наиболее часто применяется в рипах повышенного качества всех рипперов здешнего трекера. Обычно битрейт для видео задается 1600...2050 кбит\с с одной звуковой дорожкой 448 кбит\с. При этом суммарный битрейт позволяет обеспечить поддержку большинства железных плееров. Остальные звуковые дорожки просто рядом выкладываются в релизе. На мой взгляд это самая удачная из всех костумнух матриц квантования для битрейтов от 1600 до 1850 кбит\с и в совокупности с -max_bframes 1 и ресайзером bicubicresize(W, H, 0, 0.5), дающая потрясающий результат даже без применения дополнительной фильтрации изображения.
Как я уже сказал ранее, при битрейте >1850 кбит\с стоит уже выбрать матрицу квантования heini_lr_6o9, особенно, если материал исходника представляет собой чистенький BDRemux или HDTV.
4) HVS Best Picture.cqm более редко используется рипперами, но лишена ограничений по вышеуказанным матрицам и дающая тоже прекрасный результат, но на мой взгляд несколько хуже, судя по остаточному шуму и незначительной блочности изображения.
Все четыре типа этих матриц терпеть не могут, когда средние кванты в рипе превышают 4 для I, P-frames и 5 для B-frames.
5) При кодировании полнометражных фильмов в размер 745 МБ рекомендуется применять матрицу квантования Sharktooth's EQM v3LR.
15. Сетчатая (trellis) квантизация является одним из адаптивных методов квантования, который экономит биты изменением значений коэффициента квантования, способствуя достижению более плотного сжатия энтропическим энкодером. При этом достигается
неплохое качество, и если вам покажется, что VHQ сильно нагружает процессор, это будет хорошей альтернативой, которая сэкономит вам энное количество битов (и улучшит качество при условии постоянства частоты), минимально нагружая CPU.
trellis оптимизирует процесс квантования для получения оптимального соотношения между PSNR и битпотоком, что позволяет существенно экономить биты. Эти биты впоследствии будут потрачены на другие части видео, что приведет к увеличению общего качества. Следует оставлять эту опцию включенной, поскольку ее влияние на качество хоть незначительно, но есть.
16. ОБЯЗАТЕЛЬНО отключить упаковку p-и b-frames: -nopacked (об этом официально предупредил Jawor).
17. Motion (Motion search precision /Точность восприятия движения)
Данная опция отвечает за подсистему восприятия движения. Чем выше ее значение, тем более детальным будет восприятие. Чем лучше будет восприятие, тем больше битов сэкономится. Высокая детальность восприятия сильнее нагружает процессор
Величины:
• 0 - None (отсутствует)
• 1 - Very Low (очень низкая)
• 2 - Low (низкая)
• 3 - Medium (средняя)
• 4 - High (высокая)
• 5 - Very High (очень высокая)
• 6 - Ultra High (высочайшая)
Если вам нужно качество, выбирайте 5 или 6. Значение 6 - Ultra High рекомендуется почти для всех случаев, а более низкие следует выбирать лишь для кодирования если вам необходимо как можно быстрее создать рип или для тестового прохода.
18. VHQ mode
В основе алгоритма восприятия движения лежит определение вектора перемещения по данной расцвеченной области, который сводит к минимуму расхождения между опорным и кодированным кадром. Если возможность VHQ активирована, для определения вектора перемещения XviD будет использовать и область частот (DCT, дискретно-косинусоидальное преобразование), сводя к минимуму не только пространственные различия, но и размер закодированного блока. Чем больше значение, тем больше нагрузка на процессор.
Величины:
• 0 - Disabled (отключено)
• 1 - Mode Selection (автоматический выбор режима)
• 2 - Limited Search (ограниченный диапазон восприятия)
• 3 - Medium Search (средний диапазон восприятия)
• 4 - Wide Search (широкий диапазон восприятия)
Высокие значения VHQ понижают коэффициент квантования, повышая тем самым качество. Однако обычно повышение качества не окупается из-за увеличения продолжительности кодирования. Но сильно увеличивается степень компрессии. Значение 4 рекомендуется для фильмов на один CD и длинных фильмов. Для высоких значений потока данных (bitrate, битрейт) рекомендуют использовать низкие (1), особенно в случае, когда минимальные кванты установлены в 2, для низких– более высокие (2 – 4) значения.
В случае достаточного битрейта (коэффициент качества > 0.25 бит\пиксель) опцию -vhqmode 4 можно заменить на -vhqmode 1(по умолчанию). Это позволит немного сократить время кодирования и на мой взгляд чуточку улучшит детализацию изображения.
19. Опция Chroma Motion Estimation
Для определения наиболее подходящего вектора алгоритм восприятия движения обычно использует лишь сведения о яркости (luminance). Некоторые видеорекордеры способны определять наиболее подходящий вектор, используя цветовые (chromatic) уровни. Данная опция включает или отключает использование цветовых уровней для восприятия движения.
Chroma ME включает в расчет вектора перемещения также сведения о цвете. Этим еще больше увеличивается точность восприятия движения. Если вы желаете избавиться от артефактов блочности, то применение этой опции будет вполне оправдано.
20. ВНИМАНИЕ: У кодека XviD существует особенность точного попадания в заданный размер или битрейт, которая зависит от качества и уровня шума исходного видео:
а) Если наш исходник зашумленный DVD, камкодер DV, видеоматериалы спутникового или цифрового кабельного телевидения, то ваш пресет кодирования имеет вид:
video codec:
XviD
video cli:
-nopacked -bquant_ratio 162 -bquant_offset 0 -max_bframes 2 -qtype 0 -vhqmode 1 -max_key_interval 250 -zones 0,q,3,O -quality 5 -nochromame -turbo
-nopacked -bquant_ratio 162 -bquant_offset 0 -max_bframes 2 -qtype 0 -vhqmode 4 -max_key_interval 250 -zones 0,w,1,O -bitrate XXXX  -quality 6 -bvhq -vbvmax 4854000 -vbvsize 3145728 -ostrength 30 -oimprove 30 -odegrade 10 -chigh 30 -clow 15 -imin 2 -pmin 2 -bmin 2
Здесь рекомендуемая костумная матрица квантования Sharktooth's EQM v3LR.
б) Если наш исходник чистый DVD9, BD, HD DVD, HDTV, AVC HD, HDTV, то во втором проходе настроек кодека надо ввести -imin 1 -pmin 1 -bmin 1 -imax 3 -pmax 3 -bmax 5 и пресет кодирования приобретает следующий вид :
video codec:
XviD
video cli:
-nopacked -bquant_ratio 100 -max_bframes 1 -qtype 1 -vhqmode 1 -max_key_interval 250 -quality 5 -nochromame -turbo
-nopacked -bquant_ratio 100 -max_bframes 1 -qtype 1 -vhqmode 1 -max_key_interval 250 -bitrate XXXX -quality 6 -bvhq -vbvmax 7281300 -vbvsize 4718592 -ostrength 30 -oimprove 30 -odegrade 10 -chigh 10 -clow 3 -imin 1 -pmin 1 -bmin 1 -imax 3 -pmax 3 -bmax 5
Здесь рекомендуемая костумная матрица квантования heini_mr или Sharktooth's EQM v3НR при битрейте 1650...1850 кбит\с и heini_lr_6o9 при битрейте > 1850 кбит\с
В случае, если ваш стационарный плеер не поддерживает max_bframes более одного "1", следует в обоих проходах установить -max_bframes 1.
[Profile] [PM]

Серый1779 ®

Gender: Male

Longevity: 1 year

Posts: 733

Location: Украина

Post 02-Mar-2019 23:13 (after 41 second)

[Quote]

21. Информация о N-Frames.
N-frames представляют собой кадры-пустышки для того чтобы забить место в видеоряде. Основная причина их появления-применение B-frames. Маленькое лирическое отступление:
При сжатии видео используется 3 типа кадров: I,P и B - frames. I-frames - это кадры с очень небольшим коэффициентом компрессии. Их кодер описывает целиком. I-frames так же называются ключевыми кадрами. При просмотре сжатого фильма, вся навигация по фильму производится через ключевые кадры. После I-frames следует последовательность P-frames, например так: IPPPPPPPPPPPPPPPPIPPPPPPP и так далее. P-frames имеют гораздо больший коэффициент сжатия, т.к. в них кодер сохраняет информацию не обо всей картинке, а только о той ее части, которая изменилась по сравнению с предыдущим кадром. Для того, что бы еще больше повысить коэффициент сжатия, были введены B-frames. Они ставятся между двумя менее сжатыми кадрами (I,P-frames). Последовательность получается такой: IPBPBPBPBPBPBPIPBPBPBP… Коэффициент сжатия B-frames больше, чем коэффициент сжатия P-frames. Это достигается тем, что P-кадр сравнивается только с предыдущим кадром, а B-кадр с 2 окружающими его кадрами, и в B-кадре записывается, чем он отличается от них. Но вместе с этим, это накладывает определённые ограничения. Например, видеопоследовательность не может заканчиваться B-frames. Начинаться же видеоряд должен обязательно с I-кадра, т.к. в нём содержится вся информация об изображении. Итак, с B-frames мы можем сильнее сжать видео. Вы спросите, а причём здесь качество? Всё просто. Сильнее сжали, а размеры видео файла у нас те же самые. Этот "освободившийся" поток перераспределяется на все кадры.
Теперь дальше рассказываю о причине появления и смысла N-Vops.
VirtualDub использует кодеки(кодер-декодеры) VFW. VFW основана на модели "one-frame-in -one-frame-out". Программа читает один кадр с сжатытыми данными от исходного файла, подаёт это к декодеру, декодер развертывает кадр и возвращает несжатый кадр программе. Это работает прекрасно с кодер-декодерами, когда все кадры являются ключевыми I-frames или P-frames. Но используя birectional предсказание, на котором основаны B-frames (некоторые кадры кодируют только различие между собой и более поздним кадром видео) кадры не могут быть расшифрованы должным образом.
Не всегда мы имеем дело с последовательностью IPBBPBBPBBP... или IPBPBPIPBPBPBP…
Иногда возникает последовательность кадров типа IBBP. Это - ордер, где они должны быть рассмотрены, сначала I-frame, затем первый B-frames, затем второй B-frames, и наконец P-frames. I - ключевой кадр, два кадра B предсказаны от кадра P заранее, и P-кадр вперед предсказан от I-кадра. Чтобы расшифровать эту последовательность должным образом, вы сначала должны развернуть I-кадр, тогда вы сможете развернуть P-кадр, и наконец после этого вы можете развернуть два B-кадра. Это путает декодеры VFW, потому что они не могут развернуть P-кадр прежде, чем развернуть B-кадры.
Опция Packed Bitstream работает вокруг этой проблемы, заключая в капсулу последовательность BBP, как будто это - единный кадр, затем добавляя два N (пустых)кадра, как placeholders(занять место): I [BBP] NN. Теперь, когда программа читает последовательность, то сначала cчитывает данные I-кадра, и VFW развертывает это. Затем программа читает последовательность BBP, думая, что это - один кадр видео. Декодер знает, что это - три кадра, таким образом развертывает все три, хранит их внутренне, и возвращает первый развернутый(декомпрессованный) B-кадр программе. Затем программа читает первый N-кадр и передает его декодеру. Декодер игнорирует N-кадр и возвращает второй B-кадр, который уже расшифрован. Наконец программа читает второй N-кадр и передает ее к декодеру. Снова, декодер игнорирует N-кадр и вручает уже расшифрованный P-кадр программе.
Теперь что надо сделать, чтобы не было N-frames: да по-просту отключить возможность появления B-frames между I и P кадрами. Опять маленькое лирическое отступления:
"Frame drop ratito" количество пропускаемых кадров. Эта функция будет работать в том случае, если кодек считает, что для кодирования не хватает битрейта. В этом случае кодер начнёт выкидывать кадры. При выставлении в 0 не пропускается ни одного кадра, при выставлении в 100 пропускается столько кадров, сколько нужно кодеру для нормальной работы. Для получения качественного видео я не рекомендую использовать значения отличные от нуля.
Так вот считается . что установка Frame drop ratito=-1 позволяет нам избежать появления N-Vops, но простому смертному она не доступна и мы пользуемся сборками XviD 1.2.2, например, от Jawor, где это выполнено на программном уровне. Но даже на его сборках в логе мы встречаем появление N-Vops, но реально об их отсутствии или наличии вам может точно сказать программа GSpot.В сборках XviD 1.3.0 и выше установка опции Frame drop ratito=0 позволяет отключить N-Vops.
22. Дополнительные настройки второго прохода:
-kboost XXX или "I-frame boost %" эта функция делает увеличение потока на I-frames. Указывается в процентном соотношении. То есть, если указать 10, то на I-frames пойдёт на 10 процентов больше битрейт, относительно расчётного значения (расчёт изначально производит кодер, а мы можем к этому ещё добавить).
-kthresh X "I-frames closer than… frames" здесь указывается расстояние между соседними I-frames, меньше которого считается, что ключевые кадры следуют друг за другом. Если какие-то I-frames попадают в этот предел, то производится уменьшение потока, расходуемого на них. При установке этого параметра в 1, производится отключение этой функции. Оптимальным значением я считаю 2.
-kreduction XX или "…are reduced by %" эта функция уменьшает битрейт первых I-frames в ряде идущих подряд I-frames. Последний I-frames идёт с нормальным коэффициентом сжатия. По умолчанию 20.
-oimprove ХХ или "Max overflow improvement" этот параметр определяет, на сколько можно поднимать битрейт, относительно среднего битрейта, на непродолжительных участках (там, где это требуется). Слишком большое значение замедляет работу кодера. Рекомендуемое значение 10.
-odegrade ХХ или "Max overflow degradation %" этот параметр определяет, на сколько можно снижать битрейт, относительно среднего битрейта, на непродолжительных участках (там, где это требуется). Слишком большое значение замедляет работу кодера. Рекомендуемое значение 10.
Теперь мы дошли до компрессии по криволинейному алгоритму (Curve compression) . Эта функция есть только у кодека Xvid. Это небольшое преимущество кодека Xvid в сравнении с DivX, но в определённых обстоятельствах это может добавить немного качества.
-ostrength ХХ или "Overflow control strength %" этот параметр указывает, на сколько кодек может выходить за расчётные значения в каждом кадре (без разницы, уменьшение или увеличение). При установке этого параметра в 0, кодек начинает работать по-умолчанию (как заложено в алгоритме кодека). Рекомендуемое значение 10.
-chigh XX или "High bitrate scenes %" здесь можно указать, сколько процентов битрейта может забрать кодек со сцен с высокими битрейтами и перераспределить на средне и низкобитрейтные сцены.
-clow XX или "Low bitrate scenes %" этот параметр указывает, сколько процентов битрейта нужно добавить сценам с низкими битрейтами. Этот битрейт будет забран со сцен со средним и высоким битрейтом.
При работе с компрессией по криволинейному алгоритму, перед тем, как им воспользоваться нужно произвести сжатие без него. Если вы видите, что видео получилось недостаточно качественное, посмотрев видео, можно проанализировать, в каких местах плохо отработал кодек. С динамикой, как правило, проблем не бывает. Динамика - это высокобитрейтные сцены. Так же, к высокобитрейтным относится зашумлённое видео или видео с множеством мелких предметов. Так вот, если при просмотре оказалось, что динамика смотрится хорошо, а статика не очень, можно немного снять битрейт с динамичных и среднебитрейтных сцен, для этого нужно поставить какой-то процент в "Low bitrate scenes %". Если среднебитрейтные (движение есть, но его не много) сцены смотрятся то же не очень хорошо, то битрейт можно снять только с высокобитрейтных сцен. Для этого нужно проставить какое-то значение в опции "High bitrate scenes %". Как я уже сказал, эти параметры нужно подбирать экспериментально.
===========================================================================
В канун Нового года команда разработчиков провела активную работу над совершенствованием настроек кодека XviD 1.3.0, цитирую одного из них Jawora:
1) В начале вышла 1 декабря обновленная версии XviD 1.3.0 билд-127, содержащая некоторые дополнительные VHQ, а именно метрику PSNR HVS-М .
VHQ в ходе своей деятельности должна вычислить "искажение" (разница в качестве между оригиналом и закодированными макроблоками), и это может быть сделано по-разному. До сих пор использовалась метрика PSNR . Теперь у нас есть альтернатива, то есть PSNR HVS-М. Эта опция может дать лучшее качество, потому что она стремится принимать во внимание характеристики человеческого зрения (отсюда "HVS" в названии).
Отметьте галочкой включение данной опции Use PSNR-HVS-M metric for VHQ на закладке кодека XviD Configuration (т.е. там, где есть также опция VHQ для B-frames). Эта кнопка еще не присутствует в CVS, так что если что добавленная опция может иметь другое имя. (Собственно в билде от 02.01.2011 так и произошло, отныне есть опция VHQ metric с возможностью выбора варианта метрики: 0-PSNR или 1-PSNR-HVS-M). Я не заметил, разницы в скорости сжатия. Что касается качества, я не проверял его слишком тщательно, но сложилось такое впечатление, что есть небольшой рост.
PSNR HVS-М (и VHQ в целом) не имеет никакой связи с характеристиками декодера, поэтому он может быть использован при сжатии видеоматериала для стационарных DVD плейеров.
Ну, и я ограничил количество потоков до 4, для предотвращения сбоя процессоров с логическими ядрами например, Quad HyperThreadingiem.
2) 7 декабря сборка сегодня по-прежнему основана на источниках от 01/12/2010 CVS, но внес некоторые поправки.
Программа установки содержит целых три версии библиотек xvidcore.dll - "SSE", "SSE+SSE2" и "SSE + SSE2 + SSE3". Они отличаются по оптимизации применяемых при компиляции (конечно, ваш процессор должен поддерживать эти наборы инструкций, чтобы воспользоваться ими.) Версия "SSE + SSE2 + SSE3" может дать ускорение около 3% по сравнению с "SSE".
Xvid планируется работа по внедрению в графический интерфейс для VFW кодека логотипов для каждого профиля "Xvid", но оно еще не готово.
3)vid достигла версии 1.3.а-31.
Сегодня билд включает в себя новый (дополнительный) алгоритм многопоточности. Запустите его, введя значение больше 1 в поле Other options -> Encoder -> Number of slices.
Новый алгоритм делит кадр на "ломтики"(куски или части) (так называемые ломтики ), и каждый из них обрабатывается в отдельном потоке. Он может работать со старым многопоточным алгоритмом, делящий кадр на несколько макроблоков. Если Number of threads = Number of slices , происходит только деление кадра на ломтики .Если Number of threads > Number of slices , кадр вначале делится на количество ломтиков "патч", а затем каждый "патч" делится на Number of threads / Number of slices и каждый из них идет в отдельном потоке.
Два логических ядра процессора дают небольшой прирост скорости, но вот на четырех скорость может увеличиться на 47% (по крайней мере, как видно из испытаний Isibaara). Эксперимент.
Недостатком нового алгоритма является небольшое увеличение спроса на битрейт (0,1-0,9%).
Ну, по-видимому случайные сбои, когда большое число потоков (8 и т.д.) уже отремонтированы.
Наконец подошли к билду, который вызвал вопросы за 25 декабря.
4) ПРЕДУПРЕЖДЕНИЕ: деление на "slices" ( ломтики ) вызывает проблемы с воспроизведением видео на некоторых (возможно, всех) стационарных плейерах. Поверьте мне, я уже знал, о потенциальных проблемах ранее.
Ничего страшного не произошло. Эта функция отключена по умолчанию. Проблемы будут только тогда, когда вы вошли в значение больше 1 для Number of slices. . Ну, а в версия 1.3.x еще имеет статус "нестабильной", так что ожидайте, что проблемы могут появиться в ней.Проблем с декодерами программного обеспечения не будет.
Опять какие-либо изменения в источниках, поэтому сегодня у нас появились новые сборники.
На этот раз, я заблокировал доступ к параметру Number of slices (в общем многопоточности на основе ломтиков) во всех профилях, кроме "неограниченного"
Привожу пример пресета кодирования кодеком XviD в заданный битрейт 1500 в один проход с режимом VAQ:
video codec:
XviD
video cli:
-reaction 60 -averaging 28 -smoother 28 -nopacked -bquant_ratio 162 -bquant_offset 0 -max_bframes 2 -qtype 0 -vhqmode 4 -max_key_interval 250 -bitrate 1500 -bvhq -quality 6 -pmin 1 -bmin 3 -pmax 6 -bmax 8 -lumimasking
Пресет кодирования кодеком XviD в заданный битрейт 1500 в один проход без VAQ и новой метрики VHQ:
video codec:
XviD
video cli:
-reaction 60 -averaging 28 -smoother 28 -nopacked -bquant_ratio 162 -bquant_offset 0 -max_bframes 2 -qtype 0 -vhqmode 4 -max_key_interval 250 -bitrate 1500 -bvhq -quality 6 -pmin 1 -bmin 3 -pmax 6 -bmax 8
Здесь установлены максимальные ограничения по квантам при условии достаточного битрейта, если его явно не хватает, то лучше сменить на пресет с большим битрейтом или снизить разрешение. Возможно и увеличение максимальных квантизеров -pmax 10 -bmax 12, но это приведёт к снижению качества рипа и появлению артефакта блочности изображения. Терпимо, когда максимальные выбросы по квантам не превышают -imax 5 -pmax6 -bmax 8
Для варианта двухпроходного кодирования в заданный битрейт 1500 кбит\с возможности кодека шире за счёт возможного перераспределения битрейта по разным сценам:
video codec:
XviD
video cli:
-qtype 1 -vhqmode 1 -nopacked -bquant_ratio 100 -max_bframes 1 -max_key_interval 250 -quality 5 -zones 0,q,3.0 -notrellis -nochromame -turbo
-qtype 1 -vhqmode 4 -nopacked -bquant_ratio 100 -max_bframes 1 -max_key_interval 250 -quality 6 -fourcc DX50 -bitrate 1500 -bvhq -vbvmax 4854000 -vbvsize 3145728 -ostrength 30 -oimprove 30 -odegrade 10 -chigh 20 -clow 7 -imin 1 -pmin 1 -bmin 1
В заключении пример двухпроходного кодирования в заданный размер 1,37 ГБ:
video codec:
XviD
video cli:
-nopacked -bquant_ratio 100 -max_bframes 1 -qtype 1 -vhqmode 1 -max_key_interval 250 -quality 5 -nochromame -turbo
-nopacked -bquant_ratio 100 -max_bframes 1 -qtype 1 -vhqmode 4 -max_key_interval 250 -quality 6 -fourcc DX50 -size 1400000 -bvhq -vbvmax 4854000 -vbvsize 3145728 -ostrength 30 -oimprove 30 -odegrade 10 -chigh 20 -clow 7 -imin 1 -pmin 1 -bmin 1 -imax 4 -pmax 5 -bmax 6
Помните всегда, что однопроходные пресеты дают худший результат и имеют больший вес артефактов, квантизеры по всем фреймам получаются довольно высокими, так что только воспалённый разум может заставить риппера установить однопроходное кодирование. Если уж так хочется выполнить скоростной однопроходный режим кодирования, подберите битрейт такой, чтобы на выбранном вами разрешении коэффициент качества был не ниже 0,21 бит\пиксель !!!
Наиболее лучший результат можно получить при кодировании XviD c постоянным квантизером 2 для всех фреймов:
video codec:
XviD
video cli:
-cq 2.0 -qmatrix "C:\Program Files\XviD4PSP 5\presets\matrix\cqm\Jawor_ZSM.cqm" -vhqmode 1 -metric 1 -zones 0,w,1.0,O -nopacked -bvhq -bquant_ratio 100 -bquant_offset 0 -max_bframes 1 -max_key_interval 250 -smoother 0
Только в данном случае квантизёр для всех кадров – I, P и B и для всех сцен(статических и динамических),-одинаковый. Для этого необходимо задать "Quantizer ratio"равным единице -bquant_ratio 100, а параметр "Quantizer offset" задаём равным нулю -bquant_offset 0. В результате получаем:
Квантизёр B-кадров = заданный квантизёр * Quantizer ratio + Quantizer offset. То есть 2 * 1 + 0 = 2, что и требовалось.
Квантизёр P-кадров = Квантизёр I-кадров = заданный квантизёр.
Выбор ресайзера при кодировании XviD:
1) Если перед вами проблемный исходник, то выберите ресайзер Bicubicresize(W, H, 0, 0.5)
2) Если ваш исходник чистенький DVD9 или BD , то лучший выбор для сохранения детализации и качества ресайзер spline144resize(W, H)
ПРЕДУПРЕЖДЕНИЕ: СЛЕДИТЕ ВНИМАТЕЛЬНО ЗА ПРИМЕНЯЕМЫМИ БИЛДАМИ. НА НЕКОТОРЫХ ПРИ ВКЛЮЧЕНИИ РЕЖИМА VAQ НАБЛЮДАЕТСЯ КРАХ ИЗОБРАЖЕНИЯ!!!
Не воспринимайте данный опус, как некий постулат. У вас вполне может быть иное мнение, так что сразу прошу вашего критического снисхождения и реальных своих рекомендаций с целью повышения качества кодирования кодеком XviD .
[Profile] [PM]
Display posts:    
Topic locked

Current time is: 09-Dec 15:41

All times are UTC + 3



You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You cannot download files in this forum