Часть 3. Теперь немного пофильтруем или Вторгаемся на территорию ультранизкого битрейта
В принципе, фильтрация используется для достижения двух целей -  устранение дефектов изображения, а также улучшение сжимаемости видео. В  этом разделе я буду использовать термин “фильтр” в более узком смысле -  “шумоподавление”, а не просто “плагин AviSynth”.
Мы рассмотрим только второй момент, поскольку во-первых, DVD Video  имеет, как правило, хорошее качество, а во-вторых, устранение дефектов -  вещь очень специфическая. Каждый тип дефекта требует применения  собственных методов и фильтров, здесь лучше поискать тематические  форумы. А вот фильтрование для улучшения сжимаемости - это достаточно  универсальная тема, причем настолько, что некоторые даже советуют  производить шумоподавление всегда (по крайней мере, при кодировании с  помощью XviD/DivX).
Давайте разберемся. Кому какое дело до сжимаемости как таковой? Мне,  например, никакого - важен качественный результат, и только. Так вот,  качество практически не растет при увеличении битрейта более 1500 kbps.  Это значит, что никакого смысла увеличивать сжимаемость видео в такой  ситуации нет. И мы просто внесем фильтрами дополнительные искажения. А  зачем?
Другое дело, когда битрейта не хватает. Вот здесь мы вполне можем  рассчитывать на то, что предварительно удалив шумы и повысив сжимаемость  видео, мы не получим в результате кодирования неизбежные в противном  случае артефакты.
Рассмотрим типовую задачу - изготовление DVD-Rip в типоразмере 700-745  Мбайт. Берем нашего обычного подопытного кролика - “Ромео и Джульетту”.  Конечно же, не очень здорово издеваться так над бессмертным творением  Франко Дзеффирелли, этот фильм заслуживает много большего. С другой  стороны, с точки зрения сложности поставленной задачи вариант достаточно  привлекательный: длительность более двух часов, старая пленка, да и  оцифровка оставляет желать лучшего.
Для начала попробуем воспользоваться старыми рецептами рипования, просто понизив битрейт до 600 kbps - а вдруг прокатит?
Не прокатило, как и следовало ожидать - артефакты получились просто чудовищные. Стало быть, будем фильтровать.
Упомянутая выше статья 
http://www.ixbt.com/divideo/avisynth1.shtml  содержит не только неплохое изложение основ AviSynth, но и введение в  мир фильтрации. Написал ее не кто иной, как Александр Балахнин (aka  Fizick) - автор довольно популярных фильтров шумоподавления  DeGrainMedian и FFT3DFilter, и уж он разбирается в вопросе, можно не  сомневаться.
Я опробовал следующие фильтры шумоподавления - VagueDenoiser,  TemporalCleaner, DeGrainMedian, FFT3DFilter, TtempSmooth, FluxSmooth,  SmoothHiQ, Convolution3D, RemoveGrain (
http://avisynth.org/warpenterprises/). Причем с различными параметрами,  рекомендованными как самими разработчиками фильтров, так и продвинутыми  пользователями, съевшими собаку на этом деле. Более того, я пробовал  различные монстрообразные сочетания фильтров типа MCTemporalDenoise.avsi  (
http://forum.doom9.org/showthread.php?t=139766) и “DVD MDegrain2 mask4 DLS.avs” (из программы XVID4PSP), грубо нарушив при этом завет Балахнина: 
“В  среде профессионалов обычно распространено негативное отношение к  скриптам верстки отдельных любителей, в которых нагромождено несколько  фильтров подавления шума. Обычно это приводит к излишнему замыливанию  картинки и накоплению артефактов”.
Каков же итог? А никакого. Либо не удается избавиться от артефактов,  либо катастрофически падает резкость. Иногда получается так - скриншоты  вышли очень неплохие, но при воспроизведении видео начинается настоящая  свистопляска - мазня и рябь.
Безусловно, результат зависит от материала, поэтому воздержусь от глобальных выводов. Сформулирую так - 
далеко не факт, что фильтры помогут вам компенсировать дефицит битрейта.  И уж я категорически против бездумного применения шумодавов “для лучшей  лучшести”. Попробуйте сами - наиболее приличные результаты получились у  меня при использовании следующих фильтров - FFT3DFilter(),  VagueDenoiser(nsteps=6), FluxSmoothST(). Что характерно: как видите,  практически везде - с параметрами по умолчанию.
Так что же делать? Как же люди умудряются изготавливать приличные рипы в  данном типоразмере? Или для такого длинного фильма это вообще  невозможно? Недаром минимальный битрейт для рипов ASP, допустимый на  многих трекерах - 700 kbps.
Не будем терять надежды. Попробуем рассмотреть резервы, которые мы еще не задействовали.
Первый рецепт при недостатке битрейта очевиден - это уменьшение размера  кадра. Берем из таблицы чисел, делящихся нацело на 16, несколько  значений в районе 600 - 624, 608, 592, 576.  Находим для каждого  вертикальный размер так же, как делали это раньше. В моем случае лучше  всего подошла ширина 608 пикселей: строим пропорцию -  608*9/16=342.  Корректируем с учетом обрезания: 342*720/700=351,771. Опять повезло -  352 делится на 16, и разница получилась всего ничего.
Второй момент - ресайз. При недостатке битрейта нельзя использовать  алгоритмы lanczos и ему подобные, поскольку они увеличивают визуальную  резкость, а нам нужно наоборот, немного “смягчить” изображение. Если вы  до сих пор “застряли” в VirtualDub, используйте Precise bicubic  (A=-0.60) вместо (A=-1.00), применявшегося раньше. Если уже перешли на  AviSynth, лучше всего подойдет фильтр bicubic с параметрами по умолчанию  (опробовались еще параметры, моделирующие фильтры VirtualDub - 0.6 и  0.75, а также 0.5 - Catmull-Rom spline). Можно еще попробовать алгоритм  bilinear. В моем случае указанные варианты дали чуть худший результат.
И последнее - параметры кодирования. Если раньше (при достаточном  битрейте) я рекомендовал выключать все опции кодера XviD, то сейчас  подход будет диаметрально противоположным. Нужно наоборот, включить все  параметры оптимизации - Adaptive Quantization, B-frames, Use chroma  motion, Use VHQ for bframes too, Trellis quantization. Дадим кодеру шанс  показать себя во всей красе.
И вот теперь все встало на свои места. Резкость, конечно, упала, но не  катастрофически, артефакты почти незаметны. Конечно, B-фреймы вредят  совместимости, но в данном случае без них никак не обойтись.
В общем, мои принципы подбора параметров кодера XviD таковы.
При достаточном битрейте выключите все опции кодирования. Затем, если  желаете поэкспериментировать, включайте опции по одной - вполне  возможно, что на конкретном материале какая-то из них “выстрелит”.
При дефиците битрейта включите все опции кодирования. Затем, если желаете поэкспериментировать, выключайте их по одной.
Важное замечание: параметры Quarter Pixel и Global Motion Compensation  по-прежнему являются табу. Улучшения качества при использовании этих  опции мне выявить не удалось, скорее - наоборот. Кроме того, не советую  использовать более одного B-фрейма подряд. Вспомните также, что компания  DivX, LLC считает все эти параметры несовместимыми с аппаратными  плеерами.
На данном материале самый лучший результат получился у меня при  включении всех параметров кроме Use chroma motion. Также некоторый  прирост качества дала тонкая настройка кривых компрессии - Low bitrate  scenes improvement = 20.
Посмотрим теперь, нельзя ли продвинуться еще дальше за счет  использования MPEG-матрицы квантизации. Она, конечно же, тоже считается  несовместимой, но в данном случае нам не до жиру - приходится чем-то  жертвовать. В принципе, даже ярые поклонники матриц MPEG советуют  использовать их только при битрейте более 1000 kbps. Однако существует  специальный класс матриц, заточенных на ультранизкий битрейт. Я  опробовал следующие - Jawor_1CD_Matrix.cqm, CCE Ultra Low Bitrate.cqm,  Sharktooth's EQM v3ULR.cqm, Bulletproof's Heavy Compression Matrix.cqm.  Но результат не порадовал - все они оказались хуже стандартной матрицы  H.263. Приличнее всех выглядела матрица Jawor_1CD, изображение  получилось даже чуть-чуть резче, зато взамен появились контурные  “призраки”, которые начинали отчаянно “плясать” при воспроизведении  видео. 
Что-то мы совсем забыли про кодер DivX - может быть, он поможет нам  добавить немного качества? Увы, мои опыты показали обратное - результат  получился существенно хуже. Причем, на мой взгляд, психо-визуальные  расширения реализованы в DivX, в отличие от XviD, из рук вон плохо.
В итоге, уменьшив размер кадра до 608х352, задействовав алгоритм ресайза  bicubic с параметрами по умолчанию и установив опции Adaptive  Quantization, 1 B-VOPs, Use VHQ for bframes too, Trellis quantization и  Low bitrate scenes improvement = 20, мне удалось получить вполне  приличный результат на битрейте 600 kbps.
Применение фильтров шумоподавления не позволило улучшить качество или отказаться от не любимых мною B-фреймов.
Не удержусь и процитирую еще одну мысль из статьи Александра Балахнина,  всю гениальность которой я до конца осознал, только потратив кучу  времени на возню с фильтрами, и так и не получив в итоге никакого  удовлетворительного результата: 
“Мое мнение таково — если шума  немного, то может лучше его не трогать? Просто добавьте битрейт, если  это возможно. А если шума много, удалить его безболезненно тем более не  получится”.
Советую и вам прислушаться к мнению разработчика одного из самых  эффективных на сегодняшний день шумодавов и фильтровать только при  крайней необходимости.