|
Качественное сжатие видео
Данный материал целиком и полностью посвящен видео,а именно его качественной обработке и сжатию.
Материал был разбит на 2 части
1) Первая часть содержит руководство для людей желающих в кротчайшие сроки познать это исскуство качественного кодинга особо не вдаваясь в подробности, как и что работает, и для чего служит.
2) Вторая часть предназначена для энтузиастов, которые хотят достичь максимально возможного качества при минимальном объеме файла.
И так,вам понадобится все программное обеспечение описываемое в руководстве, разберемся, что нужно и где его взять.
Необходимый софт:
(софт для познавания первой части материала)
K-Lite Mega Codec Pack - свободный набор кодеков, последнюю версию всегда можно взять по этой ссылке
Sony Vegas Pro 8 или 9 версии ( обязательно 32 битная версия, иначе вегас не сможет работать с большинством кодеков установленных в вашей системе) - взять можно на разного рода торрент порталах или варезниках, а также для проведения домашних экспериментов на сайте Sony триал версию, которая будет функционировать 30 дней, брать по этой ссылке
( софт для познавания второй части материала)
Все тоже самое, что и для первой части плюс:
XviD4PSP 5.0 - конвертер, распространяется бесплатно, взять последнюю версию всегда можно по этой ссылке
Так же хочется сказать пару слов и о версии Sony Vegas Pro, если вы решите использовать второе руководство, можете выбрать себе в инструменты и 64 битную версию вегаса.
Глава 1. Быстрый, качественный и простой кодинг.
Прежде чем начать редактировать видео материал в Sony Vegas Pro требуется задать параметры проекта. Доступ к параметрам осуществляется по быстрому сочетанию клавиш ALT+Enter, либо через меню File -> Properties... Открыв параметры проекта мы увидим следующие окно:
Параметры проекта Sony Vegas Pro
Разбирать все настройки подробно в этой части руководства мы не будем, остановим свое внимание только на тех, с которыми нам предстоит работать.
Для удобства я выделил красным те параметры, которые нужно изменить.
Width & Height: Ширина и высота видео, нужно указать значения, равные вашему захваченному видео из игры. В данном примере, я использую разрешение своего монитора - 1920х1200.
Field Order: параметр указывает на порядок чередования видео полей, можно выбрать верхнее строки ( сначала нечетные строки - Upper), нижние строки ( сначала четные - lower) и Progressive scan ( Прогрессивная развертка). Так как захваченное из игры видео, это не фильм, нам не к чему использовать чересстрочную развертку в нашем проекте ( при чересстрочной развёртке показываются попеременено то все чётные, то все нечётные строки от кадра к кадру), поэтому выбираем Progressive scan.
Pixel aspect ratio: Соотношение ширины и высоты кадра, т.к. мы редактируем опять же захваченные из игры материалы, дабы вегас не исковеркал соотношение сторон, выбираем - 1,0000 (Square)
Frame rate: Количество кадров в секунду, желательно выставлять точно такое же значение, которое вы выставили в Fraps до захвата видео. Оптимально захватывать видео с частотой 25 (для наименьшего объема) или 30 (для более плавного видео) кадров в секунду.
После задания нужных нам параметров жмем "OK" и приступаем к своему проекту, начинаем творить "мувик".
Сам процесс творчества в данном руководстве я описывать не буду, ибо данное руководство рассматривает только вопросы качественного сжатия, а не как не самого творчества.
И так, ваш проект полностью готов, пора приступать к рендерингу видео (вывод).
Идем в меню, выбираем File - Render As. Откроется следующее окно Render As:
Окно Render As
Выставляем Template как показано на скриншоте и жмем кнопочку Custom. Видим окно Custom Template, нас интересует вкладка Video:
Окно Custom Template, вкладка Video
Video Format: Кодек, который будет использоваться при кодировании нашего мувика, самым оптимальным для новичка пакетом кодеков я считаю ffdshow, который входит в комплект поставки K-Lite Mega Codec Pack.
Выбираем ffdshow Video Codec и жмем Configure... для конфигурации кодека. Видим окно конфигурации кодека ffdshow:
Окно конфигурации кодека ffdshow
Выбираем Encoder - H.264, этот современный кодек обеспечивает наилучшие качество видео, хотя и требует как для кодирования, так и для воспроизведения достаточно мощный компьютер.
Bitrate (kbps): "битрейт" выражает степень сжатия потока, измеряется в килобитах в секунду, от этого параметра напрямую зависит качество вашего видео. Для разных "разрешений" оптимальным будет разный "битрейт".
Мои рекомендации:
1024х768 - ~2500kbps
1280х1024 - ~3000kbps
1680х1050 - ~4500kbps
1920x1200 - ~6000kbps
Остальные параметры в этой вкладке будут рассмотрены во второй части статьи.
Жмем "ОК".
Переходим на вкладку "Audio" для настройки сжатия звука.
Вкладка "Audio"
Audio: Кодек для звука, выбираем AC-3 ACM Codec, как самый оптимальный установленный в системе.
Attributes: Настройки кодека, в данном случае битрейт, частота дискретизации, количество каналов. Для хорошего качества звука достаточно 160 kbit\s, 44100Hz, Stereo.
Жмем " ОК"
Выбираем место сохранения видео, жмем "Сохранить", ждем пока происходит вывод видео, это может занять очень продолжительное время в зависимости от вашего проекта.
После вывода смотрим, что у нас получилось и любуемся качеством.
Первая глава данного руководства завершена, вы научились кодировать видео с хорошим качеством видео и звука. Во второй части руководства мы более детально подойдем к тонкой настройке кодека, разберемся в каждом! параметре кодека и научимся делать максимально качественные мувики при минимальном объеме.
На изучение и осмысления материала может уйти много времени, по этому я рекомендую вам, если вы не энтузиаст остановится на первой части статьи.
Глава 2. Кодирование для энтузиастов, лучшее качество видео.
Данная глава подразумевает немного другой путь кодирования, чем описанный в первой главе.
В данном случае мы будем использовать вывод из вегаса вашего проекта совершенно без сжатия ( ваше видео займет порядка 200гб без сжатия) и уже последующие сжатие с помощью XviD4PSP 5.0 и тонкой настройкой кодека.
Для вывода вашего проекта без сжатия с помощью вегаса нужно в окне " Render As" нажать " Custom", на вкладке " Video" выбрать " Video Format" - " Uncompressed", а на вкладке "Audio" - " PCM Uncompressed".
Далее устанавливаем XviD4PSP 5.0. Скажу несколько слов и о нем:
В настоящее время существует множество "однокнопочных" конвертеров, которые по заверениям разработчиков очень быстро и качественно конвертируют видео в необходимый пользователю формат. На самом деле качество видео, созданного данными программами, мягко говоря - слабовато. Поэтому для создания максимально качественных мувиков необходимо использовать более серьезные продукты.
Одной из лучших программ для конвертирования видео является Xvid4PSP. XviD4PSP - это удобный и качественный мультиформатный конвертер на основе AviSynth. Благодаря AviSynth, который действует как «посредник» между видеофайлами и программой обработки видео, XviD4PSP способен использовать в качестве исходного потока практически любой тип видео, для обработки применять качественные фильтры (изменения размеров, обрезка, подавление шумов, повышение резкости и т.д.).
Изначально разработчиком данного конвертера является Winnydows. В настоящее время активным развитием и доработкой данного софта занимается fcp, а плагинов - фильтров к нему - Tempter57, за что им огромное спасибо.
Для корректной работы программы необходимы Microsoft Framework 3.0 и K-Lite Codec Pack
Настройки XviD4PSP. Производятся после установки программы
После установки программы необходимо произвести некоторые настройки, которые будут использоваться в дальнейшем. Рекомендую установить-снять галочки так же, как на скриншотах, однако опытные пользователи могут произвести настройки на свое усмотрение.
1. НАСТРОИТЬ-->ЯЗЫК (кому какой нравится, у меня русский)
2. НАСТРОИТЬ-->ДВИЖОК ПЛЕЕРА (оставляем DirectShow)
3. НАСТРОИТЬ-->АВТО ОБЪЕДИНЕНИЕ (только DVD)
4. НАСТРОИТЬ-->АВТО ГРОМКОСТЬ (запрещено)
5. НАСТРОИТЬ-->АВТО ОБРЕЗКА (только MPEG файлы) это автообрезка черных полос, обычно черные полосы присутствуют только в DVD исходниках, т.е. в MPEG-2 видео.
6. НАСТРОИТЬ-->АВТО ДЕИНТЕРЛЕЙС (только MPEG файлы) интерлейсное видео обычно только в DVD исходниках.
7. НАСТРОИТЬ-->ПОСЛЕ ОТКРЫТИЯ (середина)
ГЛОБАЛЬНЫЕ НАСТРОЙКИ
ОСНОВНЫЕ
1. Не извлекать звук для превью. Для исключения большинства проблем, связанных с кодированием звука, рекомендуется галочку снять. Эта настройка изначально была предусмотрена для сокращения времени загрузки исходного файла в программу, но большинство проблем, связанных с кодированием звука в XviD4PSP появляется с включение этой настройки. (ОБЯЗАТЕЛЬНО! ГАЛОЧКУ СНЯТЬ)
2. Сохранять анаморфный аспект. Если установить галочку, то в случае задания аспекта (соотношение сторон кадра), отличного от исходного его значения, на выходе получится анаморфное видео. Галочку лучше снять, т.к. встречаются случаи, когда, при ресайзе (уменьшении исходного разрешения кадра) остается ошибка аспекта, возникающая из-за mod-8 (обязательной кратности размера стороны кадра 8-ми). Эта ошибка, при включенной функции сохранения анаморфного аспекта, исправляется за счет придания кадру небольшой анаморфности. Как пример: перед кодирование вы задавали разрешение кадра - 480х360, а у скриншотов, сделанных после кодирования, размер сторон отличается от заданного вами, он имеет значение 482х360. При получении MediaInfo файла, разрешение правильное - 480х360. Эта разница в 2 пиксела и есть последствия установленной галчки и исправления ошибки аспекта за счет анаморфирования кадра. С другой стороны, если стоит необходимость - сделать анаморфное видео, то анамофность проще задать после кодирования, в программе Yamb. (НА УСМОТРЕНИЕ ПОЛЬЗОВАТЕЛЯ. ЛУЧШЕ ГАЛОЧКУ СНЯТЬ)
3. Кодировать все в прогрессивное видео. При установленной галочке, все видео будет кодироваться в прогрессивное, независимо от того какое исходное видео: чересстрочное или прогрессивное. (ОБЯЗАТЕЛЬНО! ГАЛОЧКУ УСТАНОВИТЬ)
4. Автоматически применять ColorMatrix для MPEG2 файлов. При установке галочки, ко всем DVD исходникам будет применен ColorMatrix - фильтр, корректирующий цвета потоков. (НА УСМОТРЕНИЕ ПОЛЬЗОВАТЕЛЯ)
5. Обновлять скрипт при изменении настроек аудио/видео кодека. Лучше, что бы эта галочка стояла, т.к. в противном случае при изменении настроек кодирования аудио или видео, эти изменения не будут перезаписаны в скрипт, следовательно, кодирование будет произведено без учета последних изменений. Внимание! При установленной галочке, когда производится изменение скрипта вручную, а после этого изменяются настройки в интерфейсе программы, то изменения, сделанные вручную, стираются из скрипта, следовательно, их необходимо будет вписывать повторно. (ЛУЧШЕ ГАЛОЧКУ УСТАНОВИТЬ)
6. Сначала кроп/ресайз, потом фильтрация. После установки галочки, сначала будет происходить изменение размеров (ресайз) и обрезка (кроп) исходного видео до заданной пользователем геометрии кадра, и уже к этому кадру будет применяться скрипт фильтрации (высокая скорость обработки). И наоборот, при её снятии, сначала будет фильтроваться кадр исходного разрешения, и только потом, он будет обрезаться и уменьшаться в размерах (лучшее качество фильтрации). (НА УСМОТРЕНИЕ ПОЛЬЗОВАТЕЛЯ)
7. При сохранении задания считывать параметры видео из скрипта. После установки галочки, сохранение задания будет производиться на основании скрипта. Галочка необходима в том случае, если вы вносите изменения в скрипт вручную. К примеру, когда добавляете строки для проведения анализа оптимального значения среднего битрейта, включаете/отключаете тот или иной вариант фильтра и т.д. В противном случае, все изменения, внесенные в скрипт вручную, программой учитываться не будут. (ЛУЧШЕ ГАЛОЧКУ УСТАНОВИТЬ)
Остальные вкладки нас не интересуют и содержат параметры, настроенные уже оптимальным образом.
XviD4PSP имеет простейший для понимания интерфейс, единственное, с чем могут возникнуть проблемы, это " настройки видео кодирования"
Настройки видео кодирования (настройка кодека)
Для кодирования нашего мувика мы будем использовать H.264/MPEG-4 AVC, определяющего один из самых современных и технически совершенных форматов видео кодирования. На сегодняшний день x264 является наилучшим среди AVC-кодеков по соотношению качество/скорость кодирования. Поэтому для кодирования видео будем использовать кодек х264. Xvid4PSP использует консольную версию данного кодека - х264 CLI.
После загрузки исходного видео в программу, выбора разрешения, типа цветокоррекции, фильтрации и проведения других настроек, приступаем к настройке кодека х264. Для этого нажимаем на шестеренку в пункте "КОДИРОВАНИЕ ВИДЕО". Окно настроек имеет пять вкладок, рассмотрим каждую:
вкладка Main
1. Encoding mode: Выбор режима кодирования (ratecontrol метода)
1.1 Constant Quality (CRF)
Качество, основанное на переменном битрейте (Quality Based VBR). В режиме постоянного качества, основанного на переменном битрейте, каждый кадр кодируется с почти одинаковым математическим качеством (или квантизером), включая движение (оценка скорости). Этот режим визуально повышает качество, кодируя динамичные сцены с более сильной степенью сжатия (ниже качество) и статичные сцены с меньшим сжатием (лучше качество). Квантизер (математическое качество) может колебаться во времени: меньше бит будет потрачено на сценах, где много движения - множество деталей становятся неразличимыми, и больше бит будет потрачено для статичных сцен, когда лучше видны детали. Это позволит получить постоянное визуальное качество на всей видео последовательности. В этом режиме итоговый размер файла, и соответственно значение среднего битрейта, непредсказуемы.
1.2 Constant Quantizer (QP)
(Постоянный квантователь) В режиме Constant Quantizer (постоянного квантователя) каждый кадр кодируется с одинаковым математическим качеством (или квантизером), не обращая внимания на то, сколько битрейта придется потратить, применяя постоянное математическое качество ко всей видео последовательности. В этом режиме итоговый размер файла, и соответственно значение среднего битрейта, непредсказуемы. Файл видео, созданного в режиме QP получится больше по размеру, чем в CRF режиме, при том же визуальном качестве.
1.3 Bitrate режимы (1 Pass bitrate, 2 Pass bitrate, 3 Pass bitrate, 1 Pass size, 2 Pass size, 3 Pass size) (ABR - Average Bit Rate)
(Усреднённый переменный битрейт)
Изменение качества на различных кадрах для достижения наилучшего качества последовательности при заданном битрейте. В режиме ABR каждый кадр кодируется с минимально возможным квантователем (лучшее качество), придерживаясь среднего битрейта на указанном времени. В этом режиме итоговый размер достаточно предсказуем. Цифра перед «Pass» обозначает количество проходов (до 3-х). При увеличении количества проходов, время обработки видео увеличивается. Дополнительные проходы позволяют более эффективно распределить битрейт при кодировании в заданный размер. 3-й проход как правило не даёт существенной прибавки в качестве, но может быть полезен при кодировании коротких роликов, когда длительность видеофрагмента слишком мала, чтобы кодек успел за два прохода эффективно просчитать кривую компресии.
Вопрос: для чего в Bitrate режимах используют два прохода (2-Pass)?
Ответ: На первом проходе происходит анализ видео, результат которого во втором проходе создаст оптимизированное кодирование видео. Несколько проходов позволяют кодеку сделать более правильный выбор при решении, насколько сильно будет сжат каждый кадр, исходя из сложности кодируемого материала.
Вопрос: для чего в Bitrate режимах используют три прохода (3-Pass)?
Ответ: На третьем проходе идёт распределение кривой компрессии с учётом полной оценки видеоряда на основе достоверной сложности всех фреймов. На втором проходе, сжав очередной фрейм, кодек пересчитывает кривую на оставшиеся фреймы, чтобы вписаться в заданный размер, т.е. в отличие от CRF или 3 проходного режима в двухпроходном кодировании распределение QP не будет идеально равномерным для каждого фрейма.
2.Quantizer (Q)/ Bitrate (kbps)/ Размер (MB)
2.1 Значение Quantizer (Q)
(только в режимах Constant Quality (CRF) и Constant Quantizer (QP)
Простыми словами, это коэффициент сжатия видео. Низкие значения означают низкую степень сжатия (выше качество) и соответственно больший размер файла на выходе, большие значения, наоборот, сильное сжатие и меньший размер. Значения ниже 16 полезны только для архивного качества, а при значениях выше 30 заметны значительные потери качества.
Рекомендации: диапазон 18-24 – скорее всего, будет приятен для просмотра. Если Вы нуждаетесь в абсолютно совершенном качестве, то можете понизить Q до 16, но это того не стоит. Значения Q в диапазоне 19 – 21.5 – это те значения, при которых изображение будет выглядеть очень хорошо.
2.2 Значение Bitrate (kbps)
(только в режимах 1-Pass bitrate, 2-Pass bitrate, 3-Pass bitrate)
Это значение среднего битрейта, с которым будет закодировано видео.
Рекомендации: Оптимальное значение среднего битрейта зависит от качества, типа, формата, динамичности, зашумленности и других характеристик исходного видео, а также настроек кодека. Самым лучшим методом определения оптимального значения среднего битрейта является конвертирование видео в режиме Constant Quality (CRF) (Q 20 – 21) с предварительной установкой параметров кодирования, которые будут использоваться в Bitrate режиме. Полученное в итоге значение битрейта и является оптимальным для этого видеоряда. Но этот метод занимает много времени, поэтому рекомендую придерживаться примерно следующих параметров.
1024х768 - ~1500kbps
1280х1024 - ~2000kbps
1680х1050 - ~3000kbps
1920x1200 - ~4000kbps
2.3 Размер (MB)
(только в режимах 1 Pass size, 2 Pass size, 3 Pass size) Это примерный размер видео, который вы хотите получить на выходе после конвертирования. Он необходим в тех случаях, когда вы хотите что бы ваше видео помещалось, к примеру, на DVD болванку или другой носитель. Актуален, когда есть ограничения на размер файла на выходе.
Примечание: Примерный размер файла на выходе можно определить самому, для этого необходимо значение среднего битрейта умножить на продолжительность видео (в секундах) и полученное значение разделить на 8 (перевести из бит в байты). Не забывайте что в фильме помимо видео, присутствует и аудио дорожка (или несколько аудио дорожек), которая(ые) тоже имеют какой то размер, его так же можно узнать, если известен битрейт аудио.
3. AVC Profiles (Профиль)
Спецификация H.264/AVC подразумевает несколько профилей. Каждый профиль определяет, какие настройки кодека разрешены, а какие недопустимы. AVC Profiles устанавливает профиль для выходного потока видео и тем самым определяет его совместимость с устройством, на котором планируется просмотр. Эта опция отменяет все установки, которые не соответствуют устанавливаемому профилю, в итоге будет гарантирован совместимый поток. Если вы, к примеру, включите CABAC, потом поменяете профиль на Baseline Profile, то CABAC отключится, т.к. его Baseline Profile не поддерживает.
3.1 Baseline Profile: Отключает CABAC, 8x8dct, запрещает использование B frames.
3.2 Main Profile: Отключает 8x8dct.3.3
High Profile: нет ограничений.
Рекомендации: используем High Profile для максимального качества.
4. AVC level (Уровень)
Помимо профилей, спецификация H.264/AVC также определяет набор уровней. Если профиль определяет, какие характеристики сжатия могут, или не могут, использоваться, уровень определяет дальнейшие ограничения свойств видео. Эти ограничения включают максимальное разрешение, максимальный битрейт, максимальную частоту кадров (для данного разрешения) и максимальное количество референсных кадров (важный параметр для аппаратной совместимости).
Рекомендации: AVC level – 4, для мувиков будет достаточно.
5. Preset (Пресет)
Варианты изменения опций позволяют добиться соответствующей эффективности сжатия и качества. Если Вы определите заданный пресет, то изменения, которые он сделает, будут применены прежде, чем применены все другие параметры. Пресеты устанавливают следующие значения:
- Fast (быстрый): me algorithm – hexagon; subpixel ME – 5; reference frames – 2.
- Slow (медленный): me algorithm - multi hexagon; subpixel ME – 8; reference frames – 5; b-adapt – optimal; b-frames mode – auto.
- Slower (медленнее): me algorithm - multi hexagon; subpixel ME – 9; reference frames – 8; b-adapt – optimal; b-frames mode – auto; включает I4x4, I8x8, P4x4, P8x8, B8x8; trellis - 2.
- Placebo (плацебо): me algorithm - multi hexagon; subpixel ME – 9; me range - 24; reference frames – 16; b-adapt – optimal; b-frames mode – auto; включает I4x4, I8x8, P4x4, P8x8, B8x8; trellis - 2; b-frames – 16.
Рекомендации: не трогать эту настройку, т.е. значение - custom.
6. Slow 1-st pass (медленный первый проход)
Эта функция предусмотрена для более качественного анализа на первом проходе только в Bitrate режимах. Увеличивает время кодирования. Обычно используется когда нет ограничения по времени и стоит задача сделать видео как можно лучше.
Рекомендации: не включать, имеет смысл для сложного видео и при высокой квантизации по результатам тестов.
7. CABAC
(Контекстно-зависимое адаптивное бинарное арифметическое кодирование)
CABAC - главное достоинство всех AVC-кодеков, он обеспечивает значительно лучшее сжатие, чем алгоритмы использующиеся в других кодеках, но требует больше вычислительных ресурсов как для кодирования, так и для декодирования. Это умная технология сжатия без потерь, упорядочивания элементов видео потока, знающая возможности элементов в окружении. Когда он отключен, видео кодируется с CAVLC (Контекстно-зависимое адаптивное кодирование с переменной длиной), которая использует меньше процессорного времени и, соответственно, даёт хуже качество. Использование CABAC увеличивает сжатие приблизительно на 10-20 % по сравнению с CAVLC. Так же, при отключенном CABAC, недоступны некоторые настройки кодирования.
Рекомендации: включать.
8. Lossles
Режим кодирования без потерь. При включении данной функции Constant Quality (CRF) или Constant Quantizer (QP) получаю значение – 0.
Рекомендации: не включать
9. Deblocking (Фильтр деблокинга)
При кодировании изображение разбивается на блоки (макроблоки) и каждый такой блок кодируется отдельно. При недостаточном значении битрейта эти блоки становятся заметными. Deblocking определяет края этих блоков и определённым образом уравнивает их разницу (смазывает). Так же имеет смысл использовать и при высоких значениях битрейта.
Deblocking имеет два параметра - alpha (сила подавления блоков) и beta (порог или точность определения блоков).
Параметр "alpha" рекомендуется выбрать от -2 до 2. Большее значение увеличивает силу подавления блоков, но картинка становится немного размытой (используйте при низких битрейтах или при кодировании мультипликации). Меньшее значение уменьшает силу, зато картинка остается достаточно четкой (используйте при высоких битрейтах). Если не знаете, что выбрать, то оставьте 0 - подходит для большинства случаев.
Параметр "beta" рекомендуется выбирать от -2 до 2. При больших значениях, кодек может распознать некоторые детали за блок и применить к ним фильтр подавления блоков. При меньших значениях, деталей сохранится больше, но некоторые блоки могут быть приняты за деталь (используйте меньшие значения при кодировании мультипликации - в ней четкие контуры, поэтому кодек не ошибется). Желательно чтобы этот параметр отличался не больше, чем на единицу от предыдущего. Если не знаете, что выбрать, то оставьте 0 - подходит для большинства случаев.
Простыми словами, чем выше сила деблокинга (alpha), тем сильнее он применяется, чем выше порог (beta), тем больше блоков ему попадается. При этом необходимо помнить то, что установка деблокинга в минус никогда не сделает картинку резче чем она есть, а поднятие деблокинга в плюс, едва ли поможет избавиться от блочности исходного сигнала.
Рекомендации: самый оптимальный вариант (90% случаев) – значения (0;0), однако для кодирования анимации можно использовать (1;1), для некоторых мувиков – (-1;-1).
Вкладка «Motion Analysis» (анализ движения)
[IMG] [/IMG]
1.Subpixel ME
[CENTER](уровень сложности оценки субпиксельной точности векторов движения)[/CENTER]
Устанавливает один из десяти уровней сложности оценки субпиксельной точности векторов движения. Чем выше уровень, тем в больших случаях могут быть построены векторы движения повышенной точности.
Первые пять уровней определяют в каком варианте будет использоваться четвертьпиксельная точность (Qpel). Для четвертьпиксельной точности требуется больше информации для кодирования. Но увеличение информации компенсируется тем, что с повышенной точностью может быть построено больше векторов (а значит сжатие будет лучше). Это реализуется за счет использования дополнительной оптимизации – RDO (или RD, Rate–distortion optimization) доступной на следующих уровнях, начиная с шестого. Начиная с восьмого уровня, допускается RDO для векторов движения и intra режимов предсказания. Для функционирования десятого уровня необходимо включение функции Trellis при значении 2- Always (везде), а для включения Trellis, необходимо включение CABAC, что для видео Apple недопустимо. Как следствие, десятый уровень для видео разделов Apple, функционировать не будет. Уровни с RDO медленнее, чем уровни без него, но значительно качественнее.
Рекомендации: лучшим выбором будет уровень – 9, оптимальным - 7
2. ME algorithm.
(Алгоритм оценки движения)
Устанавливает метод оценки движения полного пикселя. Diamond - простейший поиск, начиная с одного пикселя одного кадра, начинают просматриваться соседние пиксели на соседнем кадре, на один пиксель выше, правее, ниже и левее. Выбирается наиболее вероятно сдвинувшийся пиксель и процесс повторяется до тех пор, пока не будет найден лучший пиксель или пока не будет достигнут предел диапазона поиска движения. Hexagon - похож на предыдущий, но оцениваются 6 соседних пикселей. Немного медленней, но более эффективный, чем предыдущий алгоритм. Multi Hexagon - лучше предыдущего, способен найти сложные векторы движения, ценой потери скорости кодирования. В отличие от предыдущих алгоритмов, в этом, и во всех последующих, опция "диапазон поиска движения" задает не количество итераций, а радиус в пределах которого будет искаться пиксель. Exhaustive - не намного лучше, но намного медленнее, работает методом перебора в диапазоне поиска движения: строит все возможные вектора движения и выбирает наилучший. SATD Exhaustive - похож на предыдущий, чуть-чуть лучше и чуть-чуть медленнее. Два последних алгоритма не рекомендуются из-за огромной потери скорости кодирования при незначительном улучшении качества.
Рекомендации: оптимально - Multi Hexagon
3. ME range.
(Алгоритм оценки движения)
Указывает радиус поиска (количество итераций) движения объекта в пикселях. Большие значения улучшают качество ценой потери скорости кодирования. Для алгоритмов "diamond" и "hexagon" допустимыми значениями являются числа от 4 до 16. Для остальных алгоритмов - от 4 до 64. Чем больше значение, тем лучше качество.
Рекомендация: значение 16, для разрешения более 1280х… - 32.
4. Reference frames
(Референсные кадры) Управляют размером DPB (Decoded Picture Buffer). Простыми словами, количество кадров на которые могут ссылаться P- и B-кадры. Чем больше - тем эффективней могут быть закодированы P/B-кадры, но для кодирования потребуется больше времени. Максимальное значение 16, однако, уже после 5 - прирост качества ощущается все меньше и меньше, а прирост времени кодирования все больше и больше. Кроме того, значение 4 - максимальное для видео 1080p, и 9 - максимальное для 720p, придерживаясь level 4.1 спецификации. Т.е., чем больше разрешение, тем меньше должно быть количество референсных кадров, что бы обеспечить совместимость с устройствами, на которых будет воспроизводиться видео.
Рекомендация: значение - 6
5. Mixed ref. frames
(Смешивание референсных кадров) Все блоки из одного P- или B-кадра могут ссылаться только на один кадр. Однако включение данной опции позволит каждому блоку ссылаться на разные кадры независимо друг от друга, что увеличит эффективность кодирования.
[COLOR="#911703]Рекомендация[/COLOR]: включить
6. Adaptive DCT
Адаптивное 8x8 дискретное косинусное преобразование (DCT). Разрешает умное: использование преобразований 8x8 в I-кадре. При отключении, автоматически отключится анализ частиц I8x8. Работает только в High Profile, т.е. если включить, то профиль поменяется на High Profile.
Рекомендация: включить
7. Chroma ME
(Цветовая оценка движения) Рекомендуется включить для того, чтобы движение объектов искалось как для яркостного так и для цветоразностных сигналов. Отключение даст незначительную прибавку к скорости и незначительную потерю качества.
Рекомендация:включить
8. DCT decimate
(Предварительная DCT трансформация) Простыми словами, использование прореживания блоков. Изображение разбивается на блоки, каждый из которых подвергается дискретно-косинусному преобразованию. Если полученный блок в P-кадре не сильно отличается от аналогичного блока в ключевом кадре, то такой блок отбрасывается, т.е. используется прореживание P-кадров. В большинстве случаев в отброшенных блоках находятся помехи и артефакты сжатия, но, в принципе, в них могут находится и мелкие детали. Сэкономленные на прореживании биты идут на улучшение остального видео в целом. Галочка с данной опции должна всегда стоять при кодировании мультипликации и в большинстве случаев при кодировании фотореалистичного видео, кроме случаев когда вы кодируете видео высокого качества с очень высоким битрейтом.
Рекомендация:Обязательно включить в режиме CRF, можно при 2-х проходном кодировании, за исключением тех случаев, когда необходима повышенная детализация.
8. I4x4, I8x8, P4x4, P8x8, B8x8
(Partitions - размеры макроблоков для анализа) При кодировании изображения кодек разбивает его на макроблоки размерами 16*16 пикселей. Каждый такой макроблок разбивается еще на 2, 4, 8 или 16 частей. Вы можете указать какие типы блоков должен использовать кодек для каждого типа кадров:
• i8х8, i4х4 - для ключевых кадров;
• p8х8 (включает также p16х8 и p8х16), p4х4 (включает также p8х4 и p4х8) - для однонаправленных кадров;
• b8х8 (включает также b16х8 и b8х16) - для двунаправленных кадров.
Чем больше вариантов разбиения вы разрешите использовать кодеку, тем лучше будет закодирован материал, ценой потери скорости кодирования. Однако учтите, что включение p4х4 незначительно улучшает качество, но значительно увеличивает время кодирования. i8x8 может использоваться только в High Profile с использованием Adaptive DCT.
Рекомендация:включить i4х4, p8х8, b8х8, остальные отключит для более быстрого кодирования.
Вкладка «B-frames» (B кадры)
1. B-frames
Это максимальное количество последовательных B-кадров. B-кадры – это кадры в которых закодированы изменения не только от предыдущих кадров, но и от последующих (кадры двунаправленного предсказания). Имеют еще большую степень сжатия, чем P-кадры. Несмотря на низкое качество изображения в B-кадрах, их все же рекомендуется использовать, т.к. сэкономленные биты идут на улучшение качества остальных кадров. Значения 2 или 3, как правило, сочетают нормальное качество со значительным улучшением сжимаемости. В Baseline Profile использование B-кадров не предусмотрено.
Рекомендации:значения 2 или 3.
2. B-frames mode
(Режим B-кадров) Способ определения векторов движения в B-кадрах. Spatial (пространственный) - сравнивает блоки в пределах одного кадра (рекомендуется при однопроходном кодировании), Temporal (временной)- в соседних. Auto выбирает для каждого кадра отдельно (рекомендуется при многопроходном кодировании).
Рекомендации:Auto – в случае 2-проходного режима, Spatial при кодировании CRF. Если вы кодируете с использованием Baseline Profile, то работать не будет.
3. Adaptive B-frames
Функция адаптивного распределения B-кадров. При включении этой опции кодек будет более разумно распределять двунаправленные кадры (B-кадры), сокращая их последовательное количество в сценах, которые не сильно от этого выиграют. Имеет смысл только при первом проходе в многопроходном кодировании и только если в настройке B-frames вы выбрали значение больше единицы (т.е. разрешили использование B-кадров).
Fast - старый алгоритм, достаточно быстрый. Optimal - новый алгоритм, значительно медленнее, что становится очевидным при увеличении максимального количества последовательных B-кадров, однако если это значение равно 16, то используйте этот режим, т.к. кодек имеет дополнительную оптимизацию по скорости при таком сочетании опций.
Рекомендации:выключить (если вы кодируете с использованием Baseline Profile, то работать не будет, даже если включите) или Optimal (дольше).
4. B-pyramid
Включение данной функции позволяет использовать B-кадры в качестве опорных, увеличивая эффективность использования 2-х или более B-кадров. Без этой функции кадры могут сослаться только на I или P-кадры. Если она включена, то B-кадры могут кодировать изменения от предыдущих и последующих B-кадров. Эта опция доступна только если максимальное количество последовательных B-кадров больше единицы (B-frames больше 1). Если это так, то рекомендуется включить эту опцию. Незначительно увеличивает время кодирования. На данный момент опция b-pyramid несовместима с --mb-tree, т.е. нельзя использовать однвременно обе метрики.
Рекомендации:включить normal если значение B-frames больше 1 (если вы кодируете с использованием Baseline Profile, то работать не будет, даже если включите).
5. Disable mb-tree
(отключение функции mb-tree rate control) Mb-tree rate control передаёт информацию от будущих блоков к прошлым с помощью векторов движения. Эта функция дает возможность воздействия на отдельные блоки вместо полных сцен. То есть, вместо того, чтобы понижать качество в сценах высокой сложности, эта функция понизит качество только на сложной части сцены, в то время, как например, статический фон останется высококачественным. Во многих случаях mb-tree rate control даёт положительные результаты. Применение этой функции полезно при всех значениях битрейта, особенно при низких, где видео могло бы полностью рассыпаться на блоки.
Рекомендации:не выключать (галочку не ставить)
6. Lookahead
Устанавливает количество кадров, применяемых для mb-tree rate control. Увеличение этого значения способствует повышению качества, но увеличивает время кодирования. Максимально допустимое значение - 250 или максимальный размер VOP-группы (интервал между I кадрами, по умолчанию тоже равен 250), в зависимости от того какое значение меньше.
Рекомендации:значение - 50 или выше
7. Weighted B-Prediction
(Взвешенное B-предсказание) Позволяет использовать B-кадры там, где присутствует плавный переход от одного оттенка цвета к другому. Другими словами, разрешает взвешенное предсказание яркости для B-кадров, которое улучшает затухания и градиенты цвета. Потери в скорости кодирования минимальны, поскольку не требуется производить дополнительные вычисления. Так же, не сильно влияет на требования декодера к CPU.
Рекомендации:включить (если вы кодируете с использованием Baseline Profile, то работать не будет, даже если включите).[/spoiler]
[spoiler=Вкладка «Misc»]
1. Trellis
Определяет, как использовать Trellis квантование. Trellis – это улучшенный алгоритм квантования, лучше сохраняет детали и четкость фотореалистичного изображения, не рекомендуется для кодирования мультипликации. Допустимые значения: 0 – не использовать, 1 - на макроблоках, 2 - везде. Чем выше значение, тем выше эффективность кодирования, но меньше скорость. Значение 1 - хороший компромисс между скоростью и эффективностью. Значение 2 лучше совмещать с Psy-trellis, иначе происходит незначительное замыливание мелких деталей. Для работоспособности требуется включение CABAC.
[COLOR="#911703]Рекомендации:[/COLOR]значение – 1 или 2.
2. Minimum quantizer
(минимальный квантователь) Определяет наименьшее возможное значение квантователя. Чем меньше квантователь, тем лучше качество картинки (и хуже сжатие). Во многих кадрах картинка сжатая квантователями ниже 16 визуально воспринимается как сжатая без потерь. Учтите, что на ключевые кадры этот параметр тоже воздействует, а это значит, что сильно увеличив этот параметр, ключевой кадр будет выглядеть плохо, а на основе этого ключевого кадра могут быть построены еще около 250 P- и B-кадров.
Рекомендации:значение - 10
3. AQ Mode | Strength
AQ Mode - режим адаптивного квантования. Без AQ, кодек, как правило, не производит перераспределение битрейта для снижения или повышения детализации сцен. AQ лучше перераспределяет битрейт между всеми макроблоками в видео.
Подразумевает следующие режимы включения AQ:
- 0 - не использовать AQ;
- 1 - Разрешает AQ для перераспределения битов в каждом кадре;
- 2 - Auto-variance AQ (экспериментальный) темпоральная адаптивная квантизация
Strength - сила адаптивного квантования. Устанавливает уровень AQ. Отрицательные значения не допускаются. Обычно применяется в диапазоне от 0,7 (большая детализация изображения, но и больше артефактов) до 1,5 (меньшая детализация, но значительное снижение вероятности появления артефактов). Всё зависти от качества исходного видео.
Рекомендации:значения – 1:1
4. Psy-RD | Psy-Trellis
Psy-RDO – это сила RD-оптимизации (или RDO, Rate–distortion optimization). Позволяет экономно, с точки зрения битрейта, закодировать шумы видеоряда и значительно повысить детализацию изображения. Зернистость большинства видеоматериалов создаёт эффект большей детализации изображения, но после воздействия шумоподавляющих фильтров происходит замыливание изображения. Psy-RDO позволяет регулировать силу психовизуальной адаптации высокочастотных деталей изображения по следующему сценарию: вместо кодирования мелких деталей максимально приближенными к исходному материалу, Psy-RDO кодирует их максимально похожими на источник удобным с точки зрения битрейта способом, повышая, таким образом, детализацию изображения и несколько завышая показатели шума в PSNR. При этом мелкие детали не замыливаются, а заменяются похожими и выгодными кодеку структурами. Другими словами, Psy-RDO вылавливает из исходного видео шумовую компоненту (некоррелированный сигнал) и добавляет ее впоследствии в рип в тех местах, где его вероятность появления выше, наподобие управляемого информацией из рипа, функционального генератора шума. Этот метод требует дополнительного битрейта в меньших объёмах при значительном повышении детализации изображения. Увеличение параметра PSY-RDO повышает детализацию и зернистость изображения, уменьшение наоборот их снижает. Для функционирования необходимо, что бы Subpixel ME имел значение больше, либо был равен шести.
Psy-Trellis - сила Trellis квантования (экспериментальная функция). Простыми словами, Psy-Trellis ищет реальные мелкие детали (коррелированный сигнал, в основном границы, мелкая фактура и т.д.) и пакует их по более простым правилам, но с гораздо более высокой компрессией, чем сам кодек, также использует вероятностный подход но в меньшей степени чем RDO и в основном при силе большей 1 для сверхмалых битрейтов, 0.8-1.0 для средних и 0.1-0.8 для высоких. Для использования необходимо, что бы Trellis, и соответственно CABAC были включены.
Соотношение и силу обоих компонент нужно подбирать исключительно на глаз, принимая во внимание реальный шумовой битрейт (Psy -RDO) и количество мелкой фактуры (Psy -Trellis) в исходном видео.
Рекомендации:значения 1:0
5. VBV Buffer | maxrate
VBV Buffer - максимальный размер видео буфера. Используется для обеспечения совместимости с аппаратными проигрывателями.
Maxrate - максимальный битрейт в видео буфере. Устанавливает (ограничивает) максимально допустимый битрейт видео, так же необходим для обеспечения совместимости с аппаратными (железными) проигрывателями. Работает только при условии включения VBV Buffer, а корректно только в многопроходных режимах кодирования.
Рекомендации:значения 0:0 (автоматический режим) при кодировании в CRF и согласно таблице уровней совместимости в мультипроходном.
6. QP curve compression
(Кривая квантования) Это коэффициент, который регулирует, насколько сильно может колебаться качество в пределах установленного среднего битрейта. Указывает на то, как сильно может отклоняться квантователь от рекомендуемого значения. Считается, что в высокодинамичных сценах можно пожертвовать качеством не смотря на сложность картинки т.к. во время быстрого движения мелкие детали плохо различимы. Задается числом от 0 до 1 с точностью до одной десятой. Установка меньшего значения будет заставит кодек применять более высокие квантователи (с худшим качеством) к высокодинамичным сценам и более низкие (с хорошим качеством) - к малодинамичным. Установка большего значения - наоборот. Значение 0 даст в результате постоянное качество. Установив 1, вы получите максимальные изменения качества на разных участках клипа.
Рекомендации:значение - 0,6
7. Chroma QP Offset
Смещение квантователя цветности (разница квантования цветности и яркости). Обычно x264 все три цветовых пространства одного кадра (luma, U-chroma, V-chroma) кодирует одним и тем же квантователем. Однако глаз человека более восприимчив к изменению яркости, чем к изменению цвета, поэтому компрессия может быть увеличена путем частичного удаления цветовых деталей. При положительных значениях кодек отдает предпочтение яркости, кодируя цветность большим квантователем (с худшим качеством); при отрицательных - цветности, кодируя яркость с худшим качеством.
Рекомендации:значения - 0
8. Fast P-Skip
(быстрый пропуск P-кадров) Быстрый пропуск определения P-кадров повышает скорость, но может вызвать небольшую блочность в местах, где непрерывная цветовая гамма или лёгкий градиент (тёмные сцены или небо).
Рекомендации:не включать в Bitrate режимах, в режиме CRF – желательно включить.
9. Threads
(количество потоков) Актуально для многоядерных процессоров и многопроцессорных систем. Кодирование в несколько потоков увеличивает скорость кодирования, при незначительном ухудшении качества (на столько незначительном, что невооруженным глазом разница станет заметной лишь при кодировании более чем в 30 потоков). Это ухудшение качества связано с тем, что при многопоточном кодировании кадр разбивается на слайсы, которые кодируются независимо и поэтому не могут иметь референсных связей. Количество потоков вычисляется по формуле: количество ядер умножить на 1.5, т.е. для 2-х ядерного процессора значение 3, для 4-х ядерного 6.
Рекомендации:Auto
Вкладка «CLI»
Данная вкладка необходима для более тонкой настройки кодека, для включения-выключения функций, отсутствующих в интерфейсе программы.
После проведения настройки видео кодирования, можно сохранить полученный пресет для постоянного использования, нажав "+"
Кодирование звука: Выбор кодека для кодирования звука, пресета MP3 ABR 128k обычно вполне досточно, можно экспериментировать с разными пресетами или создать свой. Подробно описывать настройки звуковых кодеков не вижу смысла, ибо обычно достаточно уже встроенного пресета.
В итоге видим такое окошко:
Жмем кодировать, выбираем путь для сохранения и ждем завершения кодирования...
Источник: http://forums.goha.ru
Автор:AbyssMoon
Последний раз редактировалось Devilar; 10.08.2010 в 21:00.
|