В окошке "Stats filename" стоит название файла, в который будет записываться статистика от первого прохода о фильме.
"Discrad first pass" если убрать галочку с этого пункта, то во время первого прохода будет не только производится сбор статистики, так же будет производится сохранение сжатого материала. Если вы используете двух проходный режим, то нет никакого смысла это делать. Единственное, для чего может это понадобится - что бы сделать видео с переменным битрейтом за 1 проход. Но размер при этом будет абсолютно не управляем., он получится на усмотрение кодека.
Теперь расскажу, о двухпроходном режиме и переменном битрейте. Для этого нужно немного рассмотреть теорию работы кодека. Кодеки Mpeg4 разработаны таким образом, что они видят не картинку целиком, а только объекты и изменение картинки от кадра к кадру. Из этого можно сделать вывод, что шумное видео сложнее сжимать, чем чистое и статичные картины так же проще сжимаются, чем динамичные (именно эту информацию и собирает кодек во время первого прохода). В любом видео, не бывает, что бы было абсолютно монотонное движение и неизменное количество объектов. Получается, что для каждого кадра нужно выделять разное количество памяти. Для того, что бы выделять каждому кадру своё количество битрейта, был введён переменный битрейт. То есть, во время первого прохода кодек собирает информацию о количестве движения и объектов, производит запись её в файл. Во время второго прохода, кодек начинает обрабатывать фильм снова. Только он уже производит сжатие исходного материала, пользуясь статистикой от первого прохода. При этом, для каждого кадра выделяется нужный ему битрейт. Таким образом происходит повышение качества кодируемого материала.
Продолжим рассмотрение настроек типа работы кодера.
3 тип - Twopass - 2 st pass. Это второй проход двухпроходного режима. Заглянем в его настройки:
Рассмотрю настройки сверху.
"Stats filename" здесь указывается файл, в котором находится статистика от первого прохода. Вы спросите, зачем это надо? Дело в том, что уже появились программы, позволяющие править этот файл. Если вы создали (исправили) свой собственный файл статистики, то можно указать его здесь и кодирование будет происходить по этим данным.
"I-frame boost %" эта функция делает увеличение потока на I-frames. Указывается в процентном соотношении. То есть, если указать 10, то на I-frames пойдёт на 10 процентов больше битрейт, относительно расчётного значения (расчёт изначально производит кодер, а мы можем к этому ещё добавить).
"I-frames closer than… frames" здесь указывается расстояние между соседними I-frames, меньше которого считается, что ключевые кадры следуют друг за другом. Если какие-то I-frames попадают в этот предел, то производится уменьшение потока, расходуемого на них. При установке этого параметра в 1, производится отключение этой функции. Оптимальным значением я считаю 2.
"…are reduced by %" эта функция уменьшает битрейт первых I-frames в ряде идущих подряд I-frames. Последний I-frames идёт с нормальным коэффициентом сжатия.
"Max overflow improvement" этот параметр определяет, на сколько можно поднимать битрейт, относительно среднего битрейта, на непродолжительных участках (там, где это требуется). Слишком большое значение замедляет работу кодера.
"Max overflow degradation %" этот параметр определяет, на сколько можно снижать битрейт, относительно среднего битрейта, на непродолжительных участках (там, где это требуется). Слишком большое значение замедляет работу кодера.
Теперь мы дошли до компрессии по криволинейному алгоритму (Curve compression) . Эта функция есть только у кодека Xvid. Я бы не назвал это большим преимуществом кодека Xvid, но в определённых обстоятельствах это может добавить немного качества.
"High bitrate scenes %" здесь можно указать, сколько процентов битрейта может забрать кодек со сцен с высокими битрейтами и перераспределить на средне и низкобитрейтные сцены.
"Low bitrate scenes %" этот параметр указывает, сколько процентов битрейта нужно добавить сценам с низкими битрейтами. Этот битрейт будет забран со сцен со средним и высоким битрейтом.
"Overflow control strength %" этот параметр указывает, на сколько кодек может выходить за расчётные значения в каждом кадре (без разницы, уменьшение или увеличение). При установке этого параметра в 0, кодек начинает работать по-умолчанию (как заложено в алгоритме кодека).
При работе с компрессией по криволинейному алгоритму, перед тем, как им воспользоваться нужно произвести сжатие без него. Если вы видите, что видео получилось недостаточно качественнее, посмотрев видео можно проанализировать, в каких местах плохо отработал кодек. С динамикой, как правило, проблем не бывает. Динамика - это высокобитрейтные сцены. Так же, к высокобитрейтным относится зашумлённое видео или видео с множеством мелких предметов. Так вот, если при просмотре оказалось, что динамика смотрится хорошо, а статика не очень, можно немного снять битрейт с динамичных и среднебитрейтных сцен, для этого нужно поставить какой-то процент в "Low bitrate scenes %". Если среднебитрейтные (движение есть, но его не много) сцены смотрятся то же не очень хорошо, то битрейт можно снять только с высокобитрейтных сцен. Для этого нужно проставить какое-то значение в опции "High bitrate scenes %". Как я уже сказал, эти параметры нужно подбирать экспериментально.
3.
Под цифрой 3 скрывается поток, который будет расходоваться на фильм.
Здесь мы можем задать размер файла, который мы хотим получить (при этом кнопка будет подсвечена надписью "Target size (kbytes)"). Только учтите, что у вас ещё есть звук, на который то же надо оставить место. Для подсчёта размера видео лучше всего воспользоваться каким-либо калькулятором, который учтёт размер звука в итоговом файле. В том случае, если кнопка подсвечена надписью "Target bitrate (kbps)", то задаваться будет средний битрейт, с которым будет кодироваться фильм. Для того, что бы переключить из одного режима в другой, нужно нажать на эту кнопку. Битрейт можно изменять слайдером и вводом цифр вручную, а вот размер файла можно задавать только вводом вручную, в килобайтах.
Качество картинки в основном зависит от соотношения разрешения и битрейта, на личном опыте для видео из Ро можно порекомендовать битрейт около 900-1000 для видео кодируемого в разрешении 640х480.
4.
Здесь указываются интервалы, на которых нужно повышать или понижать битрейты. Этот пункт очень удобно использовать на титрах. На них не обязательно сохранять полное качество, но полностью отрезать их мне не очень то нравится. При нажатии на кнопку "Add" добавится ещё один пункт в списке. Для того, что бы его отредактировать, нужно нажать на кнопку "Edit":
Сверху здесь указывается, с какого кадра начнётся действие этого раздела. Его действие идёт до следующего раздела, а если следующего раздела нет, то действие идёт до конца фильма. Номер кадра вводится вручную. Посмотреть, с какого кадра вам нужно делать раздел очень просто. Для этого надо найти его на видеоряде в вашей программе видеомонтажа.
Вы можете просто выделить его и скопировать в буфер. После вставления этого номера в окошко "Start frame #" можно продолжать настройки для этого раздела. Всё, что вы настроите ниже, будет применено только для этого раздела.
Далее, в настройках интервалов, можно указать коэффициент битрейта или квантизер, с которым будет производится сжатие.
При выборе параметра "Weight" в окошке нужно указать коэффициент умножения битрейта (ставится вручную или ползунком). Если поставить 0,5, то битрейт снизится в 2 раза относительно расчётного значения. При выставлении в 1 с битрейтом ничего не произойдёт.
Если выбрать "Quantizer", то в окне нужно указать квантизер, с которым будет производиться сжатие. Это не очень удобно. Я пользуюсь снижением битрейта. Пожалуй, этот пункт можно использовать для того, что бы получить на каком-то промежутке предсказуемое качество. Для этого мы задаём на этом промежутке какой-то квантизер (например 10 - это довольно высокий квантизер, при котором практически все детали будут сохранены).
"Force keyframe" если вы поставите галочку в этом пункте, то первый кадр этого раздела будет сделан как I-frame (ключевой кадр). Это бывает очень удобно, когда вы хотите пометить начало какого-то момента.
"Greyscale" включение этой функции переводит изображение в чёрно-белое.
"Chroma optimizer" эта функция усредняет цвета на ярких/тёмных местах. Это приводит к более качественным краям.
5.
Для того, что бы вызвать дополнительные настройки кодека, нужно нажать на кнопку 5.
При этом вы увидите окно:
Посмотрим на настройки:
"Motion search precision" прямой перевод - точность поиска движения. Чем выше этот параметр, тем более качественно будут выглядеть движения. Авторы рекомендуют ставить не менее 5, в идеале 6. Но учтите, чем выше этот параметр, тем медленнее будет работать кодек.
"VHQ mode" эта функция позволяет оптимизировать режим макроблоков, вместо усреднения. Чем выше это значение, тем медленнее будет работать кодек. Качество вместе с этим повышается значительно (не сравнить с использованием B-frames). Нельзя использовать совместно VHQ mode и GMC (Global Motion Compensation).
"Use chroma motion" эта функция включает поиск движения по цветовой информации. Этот способ на много более точен, чем стандартный способ. Включение этого метода замедляет работу кодера.
"Frame drop ratito" количество пропускаемых кадров. Эта функция будет работать в том случае, если кодек считает, что для кодирования не хватает битрейта. В этом случае кодер начнёт выкидывать кадры. При выставлении в 0 не пропускается ни одного кадра, при выставлении в 100 пропускается столько кадров, сколько нужно кодеру для нормальной работы. Для получения качественного видео я не рекомендую использовать значения отличные от нуля.
"Maximum I-frame interval" максимальное количество кадров, которое может быть между ключевыми (I-frames). На качество кодирования это особо не сказывается, а вот на поиске фрагмента очень сильно. Объясню почему. При просмотре фильма, когда мы хотим переместится в какое-то произвольное место, мы передвигаем ползунок поиска. Если в том месте, куда мы попали, стоит ключевой кадр, то воспроизведение пойдёт сразу. А вот если ключевого (I-frame) нет, то мы будем слышать звук, а видео увидим только когда положение просмотра дойдёт до ключевого кадра. Я ставлю этот параметр в значение 100. При этом, гарантировано мы будем ждать появления картинки не более 4 секунд.
"Use cartoon mode" эта функция введена для работы кодера с мультипликацией. Я не знаю, чем отличаются алгоритмы работы в этом режиме.
Перейдём на следующую вкладку "Quantization".
Что такое квантизеры я уже объяснял выше. В этом меню можно расставить, в каких интервалах будут работать квантизеры отдельно для I,P и B-frames. По большому счёту, не вижу смысла менять эти значения. Кодер Xvid распоряжается квантизерами достаточно хорошо. Но скажу, что это значит ещё раз.
"Min ..-frame quantizer" - минимально возможный квантизер для .. типа фреймов. Чем ниже это значение, тем более чёткая картинка будет получаться (при условии, что битрейт будет достаточно высоким для достижения этого квантизера). Для I-frame это будет самое низкое значение, для P-frame - повыше, а для B-frame самое высокое. Но лучше не трогать значения по-умолчанию.
"Max ..-frame quantizer" - максимально возможный квантизер для .. типа фреймов. Высокое значение этого параметра снижает детализацию картинки. Для I-frame это будет самое низкое значение, для P-frame - повыше, а для B-frame самое высокое. Но лучше не трогать значения по-умолчанию.
"Trellis quantization" на данный момент, эта функция работает только с матрицей квантования H.263. За счёт небольшого изменения математического алгоритма работы должно происходить улучшение качества. Эта функция экспериментальная. При включении этой опции я не заметил большой разницы от материалов, сжатых без неё. Разница была как на качелях, то в её пользу, то наоборот. Если учесть, что это использует нестандартные функции, то включать "Trellis quantization" наверное не стоит.
На последней вкладке находится отладочная информация кодека.
При выборе параметров оптимизации для конкретного процессора ("Performance optimizations") можно сделать 2 выбора:
"Automatically detect optimizations" - включает автоматический выбор оптимизации под ваш процессор.
"Force optimizations" - ручное выставление параметров оптимизации.
Следующая доступная функция "FourCC used". Объясню, что это такое. При сжатии, в заголовке AVI файла прописывается метка, каким кодеком это было сжато. При воспроизведении проигрыватель считывает эту метку и запускает соответствующий декодер. Для Mpeg4 совместимых кодеков возможна замена декодера. Так, сжимать виде мне больше нравится при помощи кодера Xvid, а просматривать при помощи декодера DivX (этот декодер имеет меньше проблем с разными проигрывателями и картинка после него имеет меньше артефактов). Для того, что бы изменить FourCC метку, нужно сделать выбор в выпадающем меню. Если здесь выбрать DX50, то для воспроизведения запустится декодер DivX5. Именно это я вам и рекомендую сделать.
Далее, идут два пункта ("OutputDebugString debug level" и "Print debug info on each frame"), которые требуются для отладки кодека и при сжатии они абсолютно не нужны.
И последний пункт в этой закладке "Display encoding status". Эта опция включает информационную панель во время сжатия.
На этой панели будет отображена информация о кавнтизерах, которые были использованы при сжатии, диапазоне квантизеров для каждого типа кадров, средний битрейт и много другой информации о кодировании.
6.
Цифрой 6 обозначены 2 кнопки:
"Load Defaults" - Возвращает установки по умолчанию.
"Decoder Options" - Опции Декодера. Это уходит за рамки гайда, поэтому на этом я заострять внимание
не буду.
x264
Выкладываю скрины настройки х264, присланные мне Алексом. Сам с кодеком пока не работал, поэтому сказать что-то конкретное не могу.
http://img168.imageshack.us/img168/9760/93521059to7.jpg
http://img168.imageshack.us/img168/7907/16620503py6.jpg
http://img168.imageshack.us/img168/3741/22755654au6.jpg
http://img168.imageshack.us/img168/8504/96580620ic7.jpg