К странице... |
---|
FAQ: Кодирование видео с помощью Gordian Knot
Список форумов Tapochek.net » Кинематограф » Помощь по Видео-категориям |
|
Автор | Сообщение |
---|---|
Кодирование видео с помощью Gordian Knot 1. Введение. Gordian Knot представляет собой графическую оболочку для быстрой и удобной работы с целым набором программ, которые, по сути, вполне самостоятельны, и пользоваться которыми можно и без Gordian Knot. Каждая из входящих в пакет программ написана абсолютно разными людьми. Gordian Knot просто помогает немного автоматизировать последовательность необходимых действий. 2. Подготовка инстументов. Для осуществления процесса Вам понадобятся: Пакет программ В процессе установки пакета кодеков Gordian Knot Codec Pack будут последовательно устанавливаться выбранные Вами кодеки. Перед установкой пакета, настоятельно рекомендуется деинсталировать установленные до этого кодеки и фильтры (DivX, XviD, ffdshow, x264 и пр.) и установить все кодеки из пакета. В процессе установки на экране будет возникать куча вопросов, на которые вам следует отвечать утвердительно. Однако, совсем не обязательно пользоваться кодеками из этого пакета. Можно скачать и установить только тот кодек, которым Вы собираетесь в основном пользоваться, а остальными не загроможнать свой компьютер. При установке Gordian Knot Rip Pack вопросов будет поменьше, но опять же, на все следует дать утвердительный ответ. После установки пакета необходимо совершить некие шаманские действия: запустить программы Nandub и VirtualDubMod (Пуск -> Программы -> Gordian Knot -> Apps) и нажать "Ok" во всех предупредительных окнах, которые могут повиться после запуска. Теперь можно запускать программу Gordian Knot (Пуск -> Программы -> Gordian Knot). Сразу после запуска мы увидим рабочее окно программы. Переходим на закладку "Настройки" (Options) и, собственно, производим эти самые настройки: Все те настройки, которые Вы сейчас сделали, будут использоваться для каждого кодирования, которое Вы будете делать. Хотя их, конечно, всегда можно изменить перед кодированием очередного фильма. 3. Этап первый. Декодирование и сброс содержимого DVD на жёсткий диск. Как все уже, наверняка, знают, DVD-диски обладают несколькими степенями защиты, встроенными в сам формат. Поэтому обрабатывать информацию прямо с DVD-диска скорее всего не получится. Нам придется декодировать диск и сбросить его содержимое на жесткий диск нашего компьютера (рипнуть диск). В принципе, выбор программм для рипования DVD-дисков огромен, у каждой есть свои плюсы и свои минусы, но наиболее стабильные результаты получаются при использовании программы DVD Decrypter. Именно ее и предлагают использовать разработчики Gordian Knot. Итак, запускаем GKnot и переходим на закладку Считывание: 4. Этап второй. Создание d2v-проекта, вырезание звука. На этом этапе нашим инструментом станет программа DGIndex, входящая, как и DVD Decrypter, в состав пакета Gordian Knot Rip Pack. Запустить DGIndex можно с закладки Считывание программы GKnot нажатием кнопки Сразу после запуска необходимо открыть рипнутые VOB-файлы, для этого используем меню File -> Open или кнопку F2 и выбираем все VOB-файлы в той папке, куда Вы рипнули Ваш DVD при помощи DVD Decrypter. Теперь обратим свой взор на параметр Frame Rate.
Следующим нашим шагом станет установка необходимых параметров для получения звука из VOB-файлов. Проверям, что в меню Audio -> Dolby Digital Decode -> Dynamic Range Control установлен режим Normal. А в меню Audio -> 48 -> 44.1KHz выбан пункт Off. После сохранения проекта, мы получим d2v-файл и файл звуковой дорожки в формате wav или ac3 в зависимости от выбранных настроек. Но только не удаляйте vob-файлы, они еще будут нужны. И вообще, рекомендую не стирать их до тех пор пока фильм не будет полностью готов. 5. Этап четвертый. Предварительная настройка параметров видео и создание AviSynth скрипта. Запускаем Gordian Knot, и сразу обращаем внимание в правый нижний угол, в раздел Сохранить. Здесь содержится список из 16 точек сохранения, которые позволяют запоминать выбранные настройки, дабы в дальнейшем можно было вернуться к параметрам, выбранным для какого-либо фильма. Выбираем в выпадающем списке свободную точку сохранения и нажатием кнопки "Переим." переименовываем ее так, чтобы было понятно, к какому фильму она относится. Теперь переходим на закладку Битрейт и начинаем проверку и установку параметров, связанных с вычислением битрейта фильма.
Далее, переходим на закладку Разрешение. И переходим к более деликатному делу - обрезанию черных полос на избражении. Первую итерацию этой процедуры возложим на компьютер, для чего в разделе Урезать (перед изменением размеров!) нажмем кнопку "Авто" и подождем пока в окне предварительного просмотра GKnot пролистает несколько кадров видео. После завершения процедуры автоматического определения границ изображения, будет автоматически выбран режим "Попиксельно" в том же разделе и поля ввода справа заполнятся цифрами, соответсвующими размерам обрезания слева, сверху, справа и снизу соотвественно расположению. Теперь стоит проверить насколько хорошо компьютер справился с этой задачей, для этого переходим в окно предварительного просмотра и внимательно смотрим на края изображения, на разных кадрах, желательно наиболее светлых. Если где-то остались черные полоски, или неровные границы кадра - обрезаем их при помощи стрелок около строк ввода размеров обрезания. Режем беспощадно, добиваясь четкого прямоугольного кадра, потому что пикселем больше, пикселем меньше - роли не играет, а вот кривой кадр будет потом бросаться в глаза, да и сжиматься будет хуже. После того, как кадр идеально вырезан, выбираем в разделе пункт "Умное урезание (полное)", после чего изображения будет еще немного подрезано, для получения правильной пропорции отношения высоты к ширине. Теперь самое время проверить результаты нашего труда, для этого переключаемся в окно предварительного просмотра и в меню "Смотреть" отмечаем пункт "С измен. размеров". Мы должны увидеть идеально обрезанный кадр, без черных полос с боков и неровных границ (если это не так, Вы плохо сделали обрезание кадра), и самое главное лица должны выглядеть естественно, т.е. не быть сплюснутыми или вытянутыми (если что-то не так, значит вы неправильно установили "Входящее разрешение" или "Пропорции вх. изображения"). Теперь переходим к одному из важнейших шагов - предварительному выбору размера кадра фильма. Почему важнейшему? Дело в том что для каждого фильма (а точнее для конкретной степени сжимаемости фильма) и для каждого битрейта существует только одно оптимальное значение размеров. И не думайте, что чем больше размеры, тем лучше качество картинки. Оптимальные размеры разные для каждого фильма и для каждого битрейта. Если выбрать размеры кадра слишком большие, то на экране будет много "квадратов", если же выбрать слишком малые, то мы просто подойдем к порогу сжатия и те же самые результаты могли бы быть получены для картинки большего размера, так мы впустую потратим место на болванке. Так что размер должен быть выбран оптимально! Почему предварительному? Да потому что мы еще пока не знаем степени сжимаемости фильма в данном разрешении. И вполне возможно, что фильм сжимается плохо и его размеры придется взять поменьше, а может быть наоборот, сжимается хорошо и можно выбрать размеры побольше. Степень сжимаемости, кстати, зависит от целого ряда параметров, среди которых повторяемость участков изображения от кадра к кадру, количество пикселей, изменяющих свой цвет на следующем кадре, количество и размеры областей, состоящих из пикселей, цвет которых неотличим человеческим глазом друг от друга и многих других. Но вот узнать степень сжимаемости не производя кодирование невозможно. Т.е. узнать степень сжимаемости можно только закодировав фильм. А чтобы закодировать фильм нужно выбрать его размеры исходя из степени сжимаемости. Вот такой замкнутый круг... Но хватит философии, вернемся к практике. Итак нам необходимо выбрать размеры для нашего фильма. Причем воспроизведение видео на компьютере тоже накладывает свои ограничения - для того чтобы фильм проигрывался без рывков необходимо, чтобы его ширина была кратна 32, а высота кратна 16. Это в идеале. В принципе нет ничего криминального и в кратности ширины 16, но гарантий корректного вопроизведения такого фильма на всех видеокартах и на всех драйверах уже не будет, хотя чаще всего и будет работать. Обращаем внимание в среднюю часть закладки "Разрешение":
Не следует забывать также, что при воспроизведении на экране ТВ, фильм с размером 288 по вертикали, но без "квадратов", вызванных пониженным Бит/(Пиксель*Кадр), смотрится лучше, чем тот же фильм с 384 строками и с пониженным Бит/(Пиксель*Кадр), в следствие неидеальности самого телевизора. Но не переборщите, а то можете перешагнуть за предел сжимаемости. И, главное, помните - наш выбор лишь предварителен, мы еще не знаем истиного значения степени сжимаемости фильма. Может случиться так, что фильм с Бит/(Пиксель*Кадр) = 0.28 будет выглядеть ужасно, а может быть и при значении 0.11 будет выглядеть великолепно. Если Вы все же решили использовать кодек DivX 5, перейдите к окну предварительного просмотра. Здесь, при помощи ползунка, Вам необходимо установить момент начала титров. Т.е. момент, когда кино закончилось, а титры еще не начались. Обычно появлению титров предшествует кадр с черным экраном, именно на этот момент необходимо и установить ползунок. Хотя, конечно, черного экрана может и не быть, тогда необходимо просто поймать момент их начала. Установив ползунок в нужном месте, нажимаете кнопку "Начало титров". Нужно это, как Вы наверное поняли из предыдущего повествования, для того, чтобы кодировать титры (на которые обычно мало кто обращает особое внимание) с пониженным битрейтом, экономя место для самого фильма. Теперь в окне предварительного просмотра нажимаем кнопку Сохранить & Кодировать. На экране появится окно "Сохранить .avs". 6. Этап пятый. Тест сжимаемости. Как уже говорилось ранее, каждый видеоматериал обладает неким коэффициентом сжимаемости, который показывает насколько хорошо может быть этот материал сжат при помощи алгоритма MPEG-4. Но единственный способ получить этот коэффициент - провести тестовое сжатие, что потребует достаточно много времени. Поэтому, для оценки степени сжимаемости фильма, проводят кодирование не всего фильма целиком, а лишь отдельных его частей (обычно 5%). По окночании процесса, все окна отображаюшие ход процесса будут автоматически закрыты, а в заголовке окна предварительного просмотра появится надпись "Проверка сжимаемости: Завершено". Обратим теперь свое внимание на раздел Бит/(Пиксель*Кадр), который находится в нижней части главного окна GKnot. Ориентируясь именно на цифру этого раздела мы предварительно выбирали размер видео. После же проведения теста сжимаемости, в этом разделе появятся 2 новые цифры: приблизительный коэффициент, показывающий насколько хорошо может быть сжат данный фильм (3-ий столбец) и выраженное в процентах отношение между оптимальным и выбранным Бит/(Пиксель*Кадр). Теперь необходимо скорректировать разрешение с учетом результатов теста сжимаемости. Если выбранное значение совпадает с оптимальным, т.е. процентное соотношение равно 100%, то выбрано самое оптимальное разрешение, и вы получите идеальное изображение. Если соотношение составляет более 100% это перебор, вы не получите значительного улучшения качества изображения, использовав в пустую отведенный для фильма размер файла, в этом случае необходимо увеличить разрешение. Процентное соотношение в интервале 80-100% дает очень хороший результат, интервал 60-80% говорит о том, что качество будет нормальным, значения в интервале 40-60% так же являются приемлемыми для некоторых фильмов, опускаться же ниже 40% крайне не рекомендуется, это уже будет отвратительное качество. Исключением является кодек x264, который при тестовом кодировании очень завышает свои требования, и при 30% может дать очень качественную картинку. Но и для него без острой необходимости опускаться ниже 40-50% от тестового значения не рекомендуется. Как уже упоминалась выше, на степень сжимаемости влияют такие параметры как метод фильтрации при масшатабировании и фильтр шумов, но для того чтобы узнать насколько изменится степень сжимаемости при изменении этих параметров необходимо повторно проводить тест сжимаемости, меняя необходимые параметры. 7. Этап шестой. Кодирование. Итак, разрешение для фильма выбрано, можно приступать к собственно кодированию. Опять вызываем окно "Сохранить .avs" из меню Файл -> Сохранить & Кодировать окна предварительного просмотра. Удостоверяемся что все параметры выбраны так же, как при проведении теста сжимаемости. Теперь нажимаем кнопку Сохр & Кодир и в появившемся диалоговом окне указываем, куда и под каким именем сохранить AviSynth-скипт (служебный файл, необходимый в процессе кодирования). После этого, появится диалоговое окно "Панель контроля кодирования", в котором необходимо настроить параметры для автоматического кодирования видео и наложения звуковой дорожки.
Если же в программе DGIndex для получения звука использовался режим Demux, то задержку необходимо учитывать. Выяснить величину задержки можно либо заглянув в файл "VTS_0х - Stream Information.txt", который DVD Decrypter заботливо разместил в том же каталоге, что и vob-файлы. Либо просто отбратиться к назанию файла, например для файла "ssch AC3 T01 3_2ch 192Kbps DELAY 197032ms.ac3" задержка, как явствует из его названия составляет 197032ms. Если задержка представляет собой отрицательное число, то необходимо указать задержку без знака минуса и отметить пункт "отрицательная". В разделе "Интерливинг" оставляем все значения по умолчанию и переходим к закладке видеокодека. Нажимаем кнопку "Add Job to Encoding Queue" для добавления задания в очередь кодировния и положительно отвечаем на вопрос о том, хотим ли мы приступить к кодированию прямо сейчас. Настройки кодека XviD Основное окно настройки кодека имеет следующий вид: Рассмотрим настройки Profile @ Level:
Теперь разберемся с настройками типов работы кодека, доступ к которым можно получить с основного окна: 1. "Single Pass". Это однопроходный режим работы с постоянным битрейтом. При вызове настроек однопроходного режима (нажатие на кнопку "more...") появится окно:
Twopass - 1st pass. Это первый проход двухпроходного режима. О нём говорить особо нечего, заглянем только в его настройки:
Twopass - 2nd pass. Это второй проход двухпроходного режима. Заглянем в его настройки:
При работе с компрессией по криволинейному алгоритму, перед тем, как им воспользоваться нужно произвести сжатие без него. Если Вы видите, что видео получилось недостаточно качественнее, посмотрев видео можно проанализировать, в каких местах плохо отработал кодек. С динамикой, как правило, проблем не бывает. Динамика - это высокобитрейтные сцены. Так же, к высокобитрейтным относится зашумлённое видео или видео с множеством мелких предметов. Так вот, если при просмотре оказалось, что динамика смотрится хорошо, а статика не очень, можно немного снять битрейт с динамичных и среднебитрейтных сцен, для этого нужно поставить какой-то процент в "Low bitrate scenes %". Если среднебитрейтные (движение есть, но его не много) сцены смотрятся то же не очень хорошо, то битрейт можно снять только с высокобитрейтных сцен. Для этого нужно проставить какое-то значение в опции "High bitrate scenes %". Как я уже сказал, эти параметры нужно подбирать экспериментально. Далее рассмотрим установку требуемого битрейта для видеопотока. Возвращаемся к основному окну настроек кодека:
При однопроходном кодировании с выбором "Target quantizer" происходит кодирование с постоянным качеством, независимо от сложности сцен. Т.е. необходимый битрейт будет определяться кодеком так, чтобы в любой сцене, статичной или динамичной, качество полученного видео было одинаковым. При таком кодировании размер полученного файла будет абсолютно непредсказуемым. Поэтому кодировать таким способом имеет смысл лишь в том случае, если Вы собираетесь записать полученное видео на DVD, и по этой причине размер в 700 Mb Вас не лимитирует. Также учтите, что у вас ещё есть звук, на который тоже надо оставить место. Если вы хотите сделать фильм на один CD диск, то для подсчёта размера видео лучше всего воспользоваться встроенным калькулятором, который учтёт размер звука в итоговом файле. В том случае, если кнопка подсвечена надписью "Target bitrate (kbps)", то задаваться будет средний битрейт, с которым будет кодироваться фильм. Для того, что бы переключить из одного режима в другой, нужно нажать на эту кнопку. Для доступа ко встроенному калькулятору нажмите кнопку "calc...":
Теперь рассмотрим расширенные опции кодека XviD. Получить к ним доступ можно, нажав кнопку "Advanced options" в основном окне:
Перейдём на следующую вкладку "Quantization".
На последней вкладке находится отладочная информация кодека.
Далее, идут два пункта ("OutputDebugString debug level" и "Print debug info on each frame"), которые требуются для отладки кодека и при сжатии они абсолютно не нужны. И последний пункт в этой закладке "Display encoding status". Эта опция включает информационную панель во время сжатия. И последнее, раздел Zones в основном окне. Здесь указываются интервалы, на которых нужно повышать или понижать битрейты. Этот пункт очень удобно использовать на титрах. На них не обязательно сохранять полное качество, но полностью отрезать их мне не нравится.
Теперь немного расскажу, как можно просматривать фильмы, сжатые при помощи кодека Xvid... Если при кодировании Вы выставили FourCC в DivX или DX50, при воспроизведении у Вас запустится системный декодер DivX. Это наулучший случай. Если же Вы оставили FourCC XviD, тоже неплохо. Тогда может запуститься декодер XviD. Если же Вас не устраувает качество XviD-овского декодера, можно либо изменить FourCC в уже зажатом фильме при помощи спец. программ (напр. abcAVI Tag Editor), либо настроить декодер DivX 5, чтобы именно он запускался при проигрывании всех совместимых с ним кодеков. Для этого необходимо установить галочку напротив "Support Generic Mpeg-4": Кодек x264 AVC/H.264 – это часть MPEG-4 стандарта, определяющая один из самых современных и технически совершенных форматов видео кодирования. Он был совместно завершён и специфицирован в 2003 году двумя группами: MPEG из Интернациональной Организации Стандартизации (ISO) и VCEG из Интернационального Телекоммуникационного Союза (ITU) Организации Объединённых Наций (UNO). AVC/H.264 стандарт был разработан Joint Video Team (JVT), которая включает экспертов из MPEG и VCEG. Со стороны MPEG, стандарт называется MPEG-4 Часть 10 (ISO 14496-10), а со стороны ITU – H.264. Под этим названием формат уже широко известен. С выходом спецификации H.264 многие компании начали разрабатывать свои версии видеокодеков по этому стандарту. У всех этих кодеков есть по крайней мере один серьезный недостаток - их лицензионность, и, как следствие, небесплатность. Исключением является кодек x264, который начал развиваться как проект с открытым исходным кодом (open source). Над ним работает большое количество квалифицированных специалистов со всего мира, периодически выпуская обновления, исправляющие баги, увеличивающие скорость кодирования за счет оптимизации алгоритма, добавляя новые фичи. На сегодняшний день x264 является наилучшим среди AVC-кодеков по соотношению качество/скорость кодирования. Однако, правильнее будет называть x264 не кодеком, а кодером, т.к. он не включает в себя декодера для проигрывания зажатого видеоматериала. Для просмотра видео, зажатого x264, придется установить декодер стороннего производителя. Так, например, для проигрывания AVC-видео, находящегося в контейнерах AVI или Matroska можно использовать декодер от VSS, либо ffdshow. А для контейнера MP4 лучше использовать декодер Nero Digital, устанавливающийся вместе с пакетом Nero Vision Express. Версии кодека x264 выходят двух разновидностей:
Первая представляет собой привычный вариант кодека, устанавливаемый в систему, и доступный для большинства программ для кодирования видео (VirtualDub, FlaskMPEG, GordianKnot и т.п.). Вторая представляет собой .exe-файл, запускаемый с определенными параметрами (местоположение исходного видео, параметры кодирования, имя выходного файла и т.п.), и дающий на выходе видеофайл в контейнере mp4. В данной статье будут рассмотрены настройки кодека x264 в версии VFW. Настройки кодека x264 Основное окно настройки кодека имеет следующий вид: Закладка Rate Control:
Закладка MBs & Frames:
Закладка More:
Что такое матрицы распределения квантов и с чем их едят. Несмотря на то, что популярность стремительно набирают кодеки нового поколения, старому доброму XviD ещё жить и жить, пока люди не повыбрасывают на помойку свои старые консервные видео проигрыватели. Это ещё боюсь не год и не два. В общем дело вкуса, лично я сам давно для себя определил формат коллекции - AVC. Тем не менее, XviD не так мало может, как может показаться на первый взгляд и у него есть одно неоcпоримое преимущество перед AVC(помимо консервной совместимости): XviD - кодек, проверенный временем, стабильный и надёжный Вот решил немного поделиться опытом кодирования с помощью XviD и ввести ещё несведущих в азы видеокомпресии. Если вы ничего не знаете о том, как работают видеокодеки - дальше лучше не читать, будет туго и бессмысленно. Всем кому интересно - добро пожаловать. Материал собран с использованием информации, собранной по крупицам с doom9, моих комметнариев и дополнений. За подробные исследования respect Sharktooth, Didee, Dark Shikari и прочим мега кодерам с doom9 Приступим... Что такое макроблоки? Плохо если вы не в курсе. Каждый фрейм mpeg4 поток состоит из типичных макроблоков размером 16x16 или 32x32. Каждый из макроблоков состоит в свою очередь из блоков 8x8, вокруг которых и пляшет алгоритм видеокомпрессии. Самое ценное в видеокомпрессии - коэффициент сжатия, поэтому вместо того, чтобы хранить блоки в виде растрового изображения, макроблок хранится в виде сложной формулы, которая имитирует оригинальное изображение настолько точно, насколько это возможно в отведённые для конкретного макроблока биты. Человеческий глаз наиболее чувствителен к изменениями в яркости изображения, чем к искажениям в цветах. Поэтому в mpeg4 заложено изначально резервировать больше битрейта для точной передачи яркости, чем для достоверной передачи цветов. Каждый блок 8x8 представляется не в виде пикселей, а в виде единственной величины, которая передаёт среднее значение яркости или цвета в массиве 8x8, а все остальные значения представляют собой математические зависимости, в которых находится исходный блок от заданной величины яркости и цвета. Другими словами, для конкретного макроблока задаётся некое значение, из которого путём математических преобразований восстанавливается блок целиком таким образом, чтобы он максимально был похож на исходный. Всё остальное место занимают пиксели, точнее то, что мы привыкли называть пикселями, а на самом деле просто данные, которые передают геометрические детали изображения. Присмотримся к блоку повнимательнее: X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X Значение в верхнем левом углу передаёт среднее значение макроблока. Т.е. если макроблок описывает кусочек неба, то грубо говоря в этом углу будет храниться среднее значение голубого цвета. Вправо и вниз от этого угла расходятся значения отклонений от заданной величины. Сверху вниз или справа налево в блоке по нарастающей описываются детали. Если обратиться к исходному блоку 8x8, то детали трансформируются в значения в зависимости от частоты конкретной детали. Понятие частоты ту имеет несколько иной смысл. Чем тоньше деталь, тем выше частота, которая её описывает. Таким образом, чем правее позиция в блоке, тем выше частота и соответсвенно более точно передаётся конкретная деталь. Например: В блоке 8x8 с кусочком неба почти нет деталей, поэтому частота в этом блоке очень низкая. В блоке 8x8 в который попали 5 или 6 спичек появляется больше деталей, но не так много, поэтому частота такого блока находится на среднем уровне. Блок 8x8, в который попали волосы крупным планом или трава или кусты, насыщен мелкими деталями, поэтому его частота высока. Как видно, значение в блоках передают горизонтальные и вертикальные частоты деталей исходной картинки. Формула, которая преобразует детали в частоты макроблока, называется Дискретная Косинусоидальная Трансформация (по англ. Discrete Cosine Transformation или DCT) Теперь посмотрим на макроблок с учётом того, что мы уже о нём знаем. Код: Среднее значение цвета и яркости всего блока I I Низкие частоты (крупные детали) I I I I Средние частоты (обычные детали) I I I I I I I I I Высокие частоты (самые мелкие детали) I I I I X--X--X--X--X--X--X--X X--\--X--X--X--X--X--X Низкие частоты -------- X--X--\--X--X--X--X--X X--X--X--\--X--X--X--X Средние частоты ------- X--X--X--X--\--X--X--X X--X--X--X--X--\--X--X X--X--X--X--X--X--\--X Высокие частоты --------X--X--X--X--X--X--X--A I I Математическое описание самой смой тонкой детали по горизонтали и вертикали Код: 08 16 19 22 26 27 29 34 16 16 22 24 27 29 34 37 19 22 26 27 29 34 34 38 22 22 26 27 29 34 37 40 22 26 27 29 32 35 40 48 26 27 29 32 35 40 48 58 26 27 29 34 38 46 56 69 27 29 35 38 46 56 69 83 Теперь попробуем описать в простых словах всю сложность процесса. Для начала разберёмся что такое в принципе распределение квантов. Распределение квантов - это процесс выборочного уничтожения информации из первоисходника с как можно меньшими изменениями в визуальных ощущениях от просмотра. Каждое значение в МРК это порог для DCT формулы для преобразования описания детали в частоту. Т.е. МРК описывает на какой частоте детализации стоит выкинуть исходный материал из процесса компрессии. Все детали ниже этого порога будут просто проигнорированы при кодировании и бесследно потеряны. В этом и состоит суть компрессии с потерями. Детали просто теряются при компрессии, до того порога детализации, который указан в МРК. Как видно по матрице в примере, чем правее и ниже, тем выше порог потери детализации. Чем мельче деталь, тем больше места она займёт в видеопотоке, в противном случае она просто будет безвозвратно утеряна. Чтобы приблизиться к пониманию процесса, опустимся до абстракции: Представим себе блондинку с длинными волосами, стоящую перед светло-серой стеной за 2 прутьями тюремной решётки. Представим, что это изображение помещается в блок 8x8 Блондинка и светлая стена будут близки по контрасту, поэтому разница между средними значениями яркости и контраста и их максимальными значениями будет невелика. Значения в блоке будут ниже и практически могут не преодолеть порога потери детализации. Это значит, что разница между участками будет минимальной и картинка превосходно будет поддаваться компресии. Если бы стена была чёрной, контраст был бы намного больше и разница между средними значениями и максимальными будет зашкаливать. Если в такой блок не попадёт достаточно высокий порог из значений МРК, то либо блондинка может оказаться брюнеткой за счёт стены за ней, либо стена из чёрной станет серой, а скорее всего обе потеряют свой первоначальный цвет. В любом случае при более высоком контрасте через порог DCT пройдёт значительно больше деталей и попадут дальше в конвеер видеокомпрессора, который уже будет думать как же это всё запаковать поуютнее. Тюремные прутья перед девушкой - детали, но совсем не мелкие, они пойдут в макроблок по низкой частоте. (По крайней мере, если они будут отличаться цветом от блондинки) Мы забыли, что у девушки есть волосы и разумеется волосы имеют сложную текстуру. Поэтому волосы пойдут в макроблок по высокой частоте. Как видно по МРК, порог для высоких частот намного выше, чем для низких. Поэтому, чтобы волосы попали в видеопоток, они должны значительно отличаться от среднего значение цвета, иначе, могут просто слиться со средним фоном. Поэтому если разница со средним значением невелика (как в этом случае), детализация волос просто пропадёт на этом этапе. Ситуацию могут спасти разноцветные ленточки в волосах, которые увеличат контраст. Таким образом, чтобы детали на выходе получились чётким и резким, контраст деталей должен быть как можно дальше от среднего значения, иначе чёрная кошка утонет в чёрной комнате. Это упрощённое представление процесса видеокомпрессии. Для полноты картины надо добавить, что всё, вышесказанное справедливо для I-фреймов. МРК к p- b- фреймам применяется не напрямую, а после распределения векторов направления движения, что должно учитываться при составлении матриц. Теперь подбираемся к главному. XviD кодек (забудем про DivX вообще, для меня он умер ) по умолчанию использует либо H.263 матрицу либо MPEG. H.263 даёт на выходе более размытую картинку с более точными значениями яркости/цветов, а MPEG передаёт больше деталей, но теряет больше параметров яркость-цвет. Эти матрицы по-умолчанию хороши в среднем для обычной штамповки. С помощью спец. подобранных матриц можно значительно улучшить результаты работы видеокомпрессора за счёт снижения сжимаемости картинки. Как видно, матрица в примере - как раз снижает сжимаемость, значение в среднем очень низкие. Для чего могут использоваться квантовые матрицы: Матрица для максимального сжатия устанавливает жёсткий порог деталей, чтобы битрейт расходовался более эффективно В идеале можно разработать матрицы для конкретного типа видеоряда: космические баталии, мультики, аниме т.д. С помощью матриц можно фильтровать шумы и артефакты, вычислив помеховые частоты можно добиться довольно точной фильтрации В заключение, привожу матрицы, разработанные уважаемым г. Sharktooth, как на мой взгляд наиболее удачные в качестве исходного материала для экспериментов. Лёгкая подгонка этих матриц к конкретному фильму - и XviD будет творить чудеса. EQM v3hr Матрица для высоких битрейтов для кодирования DVD в полный анаромфный размер на битрейтах 1600Kbps+ (для фильмов со средним экншном) Код: 8 10 10 10 11 11 13 15 10 10 10 10 11 12 14 16 10 10 11 11 13 14 16 18 10 10 11 13 15 17 19 23 11 11 13 15 19 22 26 29 11 12 14 17 22 28 34 41 13 14 16 19 26 34 44 55 15 16 18 23 29 41 55 72 15 15 15 15 16 17 19 22 15 15 15 15 16 18 20 23 15 15 16 17 19 20 23 27 15 15 17 19 22 25 29 33 16 16 19 22 28 32 38 43 17 18 20 25 32 41 50 60 19 20 23 29 38 50 66 81 22 23 27 33 43 60 81 106 EQM V3LR: Матрица для низких битрейтов до 1500Kbps для кодирования DVD на полном анаморфном разрешении. На более высоких битрейтах - отличный выбор для фильмов насыщенных экшном. Код: 8 14 14 14 15 15 18 21 14 14 14 14 15 16 19 22 14 14 15 15 17 19 22 25 14 14 15 18 21 23 27 31 15 15 17 21 26 30 35 40 15 16 19 23 30 38 46 56 18 19 22 27 35 46 61 76 21 22 25 31 40 56 76 99 19 19 19 19 20 21 24 28 19 19 19 19 20 22 26 29 19 19 20 21 23 26 29 34 19 19 21 24 28 31 36 42 20 20 23 28 35 41 48 55 21 22 26 31 41 51 63 76 24 26 29 36 48 63 83 103 28 29 34 42 55 76 103 134 EQM V3ULR Матрица для очень низких битретов: - уменьшает артефакты насколько это возможно сохраняя хорошую картинку на низких битрейтах - Одна из лучших матриц для кодирования на 1CD Код: 8 14 20 28 38 45 56 65 14 20 26 37 44 56 64 70 20 26 36 43 55 64 70 75 28 37 43 54 63 70 76 79 38 44 55 63 70 77 80 83 45 56 64 70 77 81 84 88 56 64 70 76 80 84 89 95 65 70 75 79 83 88 95 102 18 19 20 22 24 26 28 30 19 20 22 24 26 28 30 34 20 22 24 26 29 30 34 40 22 24 26 30 32 36 44 50 24 26 29 32 38 48 55 60 26 28 30 36 48 58 74 80 28 30 34 44 55 74 92 104 30 34 40 50 60 80 104 128 EQM V3UHR Матрица для очень высоких битрейтов для кодирования DVD в полный анаморфный размер на очень высоких битрейтах. Точка насыщенности за счёт сжимаемости на 30% выше чем в матрице Didees 6of9 Код: 8 8 8 8 8 8 10 11 8 8 8 8 8 9 10 12 8 8 8 8 9 10 12 14 8 8 8 10 11 13 15 17 8 8 9 11 14 16 19 22 8 9 10 13 16 21 25 31 10 10 12 15 19 25 33 41 11 12 14 17 22 31 41 54 10 10 10 10 10 10 10 11 10 10 10 10 10 10 10 12 10 10 10 10 10 10 12 14 10 10 10 10 11 13 15 17 10 10 10 11 14 16 19 22 10 10 10 13 16 21 25 31 10 10 12 15 19 25 33 41 11 12 14 17 22 31 41 54 EQM V3EHR Матрица для кодирования на повышенных битрейтах разработана для кодирования только в режиме постоянное качество. Сжимаемость вообще никакая по сравнению с другими матрицами, но на то есть причины. Сфера применения: создание резервных копий исходника или HD, не прибегая к кодекам, работающим по принципу "без потерь" Код: 8 8 9 11 13 13 14 17 8 8 11 12 13 14 17 18 9 11 13 13 14 17 17 16 11 11 13 13 13 17 18 20 11 13 13 13 16 17 20 24 13 13 13 16 17 20 24 29 13 12 13 17 19 23 28 34 12 13 17 19 23 28 34 41 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 Автор: shellgen Авторы: Странник, dvdtocd |
|
21-Ноя-2010 21:52 (спустя 1 минута) [-]0[+] |
|
18-Ноя-2011 23:03 (спустя 11 месяцев 27 дней) [-]-5[+] |
|
Страница 1 из 1 |
Список форумов Tapochek.net » Кинематограф » Помощь по Видео-категориям |
Текущее время: 21-Ноя 12:31
Часовой пояс: GMT + 4
Вы не можете начинать темы
Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете прикреплять файлы к сообщениям Вы не можете скачивать файлы |