DctFilter это экспериментальный фильтр, который, для каждого блока 8x8, будет делать Дискретное косинусное преобразование (DCT), уменьшать значения выбранных частот, и затем обращать процесс с обратным дискретным косинусным преобразованием (IDCT).
В Вашем файле Avisynth скрипта используйте примерно такие команды
Avisource("D:\wherever\myfile.avi") DctFilter(1,1,1,1,1,1,0.5,0)
Имеется 8 позиционных параметров с плавающей точкой, все из них должны быть указаны в диапазоне (0.0 <= x <= 1.0). Они соответствуют масштабным факторам для 8 строк и столбцов блоков DCT размера 8x8. Самый левый параметр соответствует верхней строчке, левому столбцу. Это есть компонент нулевой частоты (DC) преобразования, он должен всегда быть оставлен 1.0.
В приведенном выше примере самые высокочастотные компоненты в каждой строке и столбце будут занулены, в то время как вторые сверху по частоте будут уполовинены.
Параметры строки и столбца перемножаются, чтобы получить масштабный фактор для каждой из 64 величин в блоке. Так что, если верхняя левая величина была V[0,0], то в указанном примере мы умножим стоку 6, столбец 6 (V[6,6]) на .5*.5 = .25.
Отметьте, что хотя они выглядят как параметры с плавающей точкой, реально они имеют только 3 бит точность, так что в действительности используются только величины 0, 1/8, 1/4, 3/8 ... 1.0. Но Вы можете указать любую величину, и она будет округлена к ближайшей из этих.
Вместо этого, вы можете использовать DctFilterD(DiagCt). Это работает подобно указанному выше, но будет занулять заданное параметром DiagCt число нижних правых диагоналей DCT, оставляя другие величины неизменными. В результирующей матрице 8x8 DCT есть 15 возможных диагоналей. (представьте шахматную доску). Параметр DiagCt должен быть целым 1-14, говорящим, как много из этих диагоналей должны быть занулены, начиная с нижнего правого угла.
Эта новая функция DctFilterD(DiagCt) работает на диагоналях. Она проще и либо зануляет диагонали, либо оставляет их неизменными.
Так что если вы укажете:
DctFilterD(4)
тогда 4 диагонали в нижнем правом углу результата DCT будут установлены в 0.
Я не тестировал это много, но, подобно моим результатам с задаваемыми таблицами квантования, оказывается, что если Вы установите DiagCt очень большим, вы начнете получать краевой шум, что-то подобно волнам (ringing).
$English Date: 2004/08/13 21:57:25 $
Русский перевод 19.05.2006 Fizick avisynth.org.ru