-
Notifications
You must be signed in to change notification settings - Fork 0
/
fft3dfilter-rus.html
535 lines (488 loc) · 26.9 KB
/
fft3dfilter-rus.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="ru">
<head>
<meta http-equiv="Content-Language" content="ru">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Частотный 3D фильтр для подавления шума и повышения резкости</title>
<link rel="stylesheet" type="text/css" href="../avisynth.css">
</head>
<body>
<h1>
FFT3DFilter<br>
</h1>
<p>Плагин для <a href="http://www.avisynth.org">Avisynth 2.5</a><br>
Версия 2.1.1<br>
Copyright (C)2004-2007 Александр Г. Балахнин aka Fizick<br>
<a href="http://bag.hotmail.ru">http://avisynth.org.ru</a>
</p>
<h4>FFT3DFilter - частотный 3D фильтр для сильного понижения шума
и умеренного повышения резкости. </h4>
<h3>Техническая информация</h3>
<p> FFT3DFilter использует метод быстрого дискретного преобразования Фурье
(БПФ, FFT) для обработки видео изображений в частотной области.
Он основан на некоторых продвинутых математических алгоритмах оптимальной фильтрации.
Он работает не локально, но делает некоторую делокализованную (блочную) обработку.
В режиме 3D, это приводит к эффекту подобному частичной компенсации движения.
Данный фильтр может уменьшить шум без видимой потери качества и артефактов,
даже с вполне сильными настройками.
Он может значительно улучшить сжимаемость и снизить размер закодированного файла.<br>
Также он имеет опцию ограниченного повышения резкости как без усиления шума,
так и без ее чрезмерного повышения (образования ореолов).<br>
Вымысел? Попробуй его сам! :)</p>
<h4>Итак, это пространственно-временной (3D) фильтр, работающий следующим
образом:</h4>
<ol>
<li>получаем текущий и некоторые предыдущие кадры;</li>
<li>разделяем каждый кадр на малые перекрывающиеся блоки;</li>
<li>вычисляем частотный спектр путем оконного прямого двумерного (2D)
преобразования Фурье каждого блока этих кадров;</li>
<li>делаем некоторую фильтрацию слабых компонент частотного спектра;</li>
<li>опционально повышаем резкость изображения (в двумерной частотной
области) путем усиления некоторых частот; </li>
<li>вычисляем обратное 2D преобразование фурье очищенного спектра для каждого блока;</li>
<li>делаем оконное суммирование очищенных перекрывающихся блоков
в результирующий выходной кадр.</li>
</ol>
<p>Перекрывающиеся блоки и взвешивающие окна использованы
для предотвращения блочности изображения (и снижения "звона").<br>
Блоки перекрываются на некоторую величину
вдоль их вертикального и горизонтального размеров.<br>
Чем меньше перекрытие, тем выше скорость обработки,
но с более видимыми артефактами в виде сетки по границам.
</p>
<p>Принцип перекрытия показан на картинке.</p>
<p><img alt="overlap" src="overlap.gif"></p>
<p>Использованы некоторые взвешивающие окна анализа и синтеза,
чтобы получить эффективный коэффициент передачи =1 после суммирования блоков.</p>
<h4>Плагин имеет несколько режимов обработки на стадии фильтрации спектра:</h4>
<ul>
<li>(параметр <var>bt</var>=1)
Двумерный пространственный (2D) фильтр Винера для спектральных данных. Использует данные
только текущего кадра. Понижает слабые частоты (с малой спектральной
мощностью) путем оптимальной Винеровской фильтрации с некоторым
заданным уровнем шума. Повышение резкости и шумопонижение
объединены в этом режиме.</li>
<li>(параметр <var>bt</var>=2)
Трехмерный (3D) фильтр Винера для спектральных данных. Добавляет третье
измерение к БПФ, используя данные предыдущего и текущего кадров.
Ослабляет слабые частоты (с малой спектральной мощностью) путем
оптимальной Винеровской фильтрации с некоторым заданным уровнем шума. </li>
<li>(параметр <var>bt</var>=3)
Тоже 3D фильтрация Винера, используя данные предыдущего, текущего и следующего
кадров.</li>
<li>(параметр <var>bt</var>=4)
Тоже 3D фильтрация Винера, используя данные двух предыдущих, текущего и следующего
кадров.</li>
<li>(параметр <var>bt</var>=5)
Тоже 3D фильтрация Винера, используя данные двух предыдущих, текущего и двух
последующих кадров. </li>
<li>(параметр <var>bt</var>=0)
Временной фильтр Кальмана для спектральных данных. Использует данные
всех предыдущих кадров, чтобы получить оценку очищенных
данных текущего кадра с помощью алгоритма оптимального
рекурсивного процесса. Фильтр начинает работу с малой (=1) силой (степенью
снижения шума), и затем постепенно (в последовательности кадров)
увеличивает силу, если текущая межкадровая вариация спектра (шум)
является малой. Таким образом, фильтр Кальмана может обеспечить
более сильное понижение шума, чем фильтр Винера.
Сила фильтра Кальмана ограничивается некоторой заданной величиной шума.
Локальная сила (и работа фильтра) сбрасывается в 1, если вариация превысит
заданный порог (из-за движения, изменения сцены и т.п.). Таким образом, выход
фильтра Кальмана является зависящим от предистории
(от какого кадра началась фильтрация).</li>
</ul>
<h4>Использование структуры (образца) шума</h4>
<p>С версии 1.5 введена возможность выявления структуры (образца) шума
путем определения его спектра в некотором пустом блоке (без объектов),
и затем подавления шума в соответствии с этой структурой во всем кадре и во всем клипе.
Это может быть полезно для подавления гранулярности фильмов (особенно любительских 8 мм)
и регулярных помех аналогового ТВ.<p>
<h4>Повышение резкости</h4>
<p>На стадии повышения резкости (после шумопонижения),
плагин усиливает высокие (пространственные, 2D) частоты спектра.<br>
Также есть режим повышения резкости без шумопонижения (<var>bt</var>=-1).<br>
С версии 1.1, используется некоторый специальный метод ограниченного повышения резкости :</p>
<ul>
<li>самые слабые частоты (с малыми амплитудами) не усиливаются,
чтобы предотвратить увеличение шума;</li>
<li>самые сильные частоты (с большими амплитудами) не усиливаются,
чтобы предотвратить чрезмерное повышение резкости и образование ореолов.</li>
</ul>
<p>Степень повышения резкости максимальна для частот с средними амплитудами.
Конечно, вы можете управлять как этими границами, так и общей силой повышения резкости.</p>
<p>С версии 1.7, для повышения резкости используется фильтр высоких частот Гаусса с переменной частотой среза.</p>
<p>С версии v.1.9, плагин имеет специальный параметр <var>dehalo</var> для снижения сильных частот,
это может быть использовано для пространственного адаптивного смягчения изображений с чрезмерно повышенной резкостью (удаления ореолов).
Этот режим быть скомбинирован с понижением шума и повышением резкости.</p>
<h3>Синтаксис</h3>
<p><code>FFT3DFilter</code>(<var>clip,
float "sigma", float "beta", int "plane", int "bw", int "bh", int "bt", int "ow", int "oh",
float "ratio", float "sharpen", float "scutoff", float "svr", float "smin", float "smax",
bool "measure", bool "interlaced", int "wintype",
int "pframe", int "px", int "py", bool "pshow", float "pcutoff", float "pfactor",
float "sigma2", float "sigma3", float "sigma4", float "degrid",
float "dehalo", float "hr", float "ht", int "ncpu"</var>)</p>
<p>Все параметры - именованные.</p>
<h3> Параметры функции:</h3>
<p>первый параметр - входной клип.</p>
<p>
<var>sigma</var>
- заданная величина шума для всех (или наивысших) частот (реальное>0, по умолчанию=2.0)<br>
<var>beta</var>
- граница шума (реальное>=1.0, по умолчанию=1.0 без остатка
шума):<br>
управляет количеством остающегося шума после применения фильтра
Винера, максимальное подавления шума = <var>(beta-1)/beta</var><br>
<var>plane</var>
- обрабатываемый цветовой канал: 0 - яркость Y, 1 - цветоразность U,
2 - цветоразность V <br>
3 - обе цветоразности U и V, 4 - яркость и обе цветоразности (по умолчанию = 0)<br>
<var>bw</var>
- ширина блока (целое четное, по умолчанию = 48 с версии 1.2)<br>
<var>bh</var>
- высота блока (целое четное, по умолчанию = 48 с версии 1.2)<br>
<var>bt</var>
- временной размер блока, число кадров (-1, 0, 1, 2 или
3, по умолчанию = 3):<br>
0 - все предыдущие кадры (включает режим фильтра Кальмана);<br>
1 - только текущий кадр (пространственный 2D фильтр Винера);<br>
2 - предыдущий и текущий кадры (3D фильтр Винера);<br>
3 - предыдущий, текущий и следующий кадры (3D фильтр Винера))<br>
4 - два предыдущих, текущий и следующий кадры (3D фильтр Винера))<br>
-1 - только повышение резкости (2D);<br>
<var>ow</var> -
ширина перекрытия (по умолчанию=<var>bw/3</var> с версии 1.2)<br>
<var>oh</var> -
высота перекрытия (по умолчанию=<var>bh/3</var> с версии 1.2)<br>
<var>kratio</var>
- отношение порога к <var>sigma</var>
для сброса (переиницилизации) фильтра Кальмана (по умолчанию = 2.0):<br>
порог вариации = <var>sigma*kratio</var>, хорошие значения от 1.5 до 3.0;<br>
<var>sharpen</var>
- степень повышения резкости (по умолчанию=0 - без повышения)<br>
хорошие значения от 0.3 до 1.0 (отрицательные величины приводят к
обратному эффекту)<br>
<var>scutoff</var>
- частота среза для повышения резкости, относительно максимальной (по умолчанию =0.3)<br>
<var>svr</var>- отношение вертикального повышения (или снижения) резкости к горизонтальному
(по умолчанию=1.0 - равно горизонтальному, 0 - без вертикального)<br>
<var>smin</var>
- нижний предел (приблизительная граница шума) для стадии повышения резкости
(по умолчанию=4.0)<br>
<var>smax</var>
- верхний предел (приблизительная граница чрезмерной резкости) для стадии повышения резкости
(по умолчанию=20.0)<br>
<var>measure</var>
- выбрать наиболее оптимальный (быстрейший) метод БПФ путем измерения
скорости (с некоторой стартовой задержкой) вместо простой оценки
(по умолчанию=true с версии 0.9.2)<br>
<var>interlaced</var>
- раздельная обработка полей чересстрочного клипа (по умолчанию=false)<br>
<var>wintype</var>
- тип взвешивающих окон (по умолчанию=0):<br>
0 - одинаковые окна анализа и синтеза типа полу-косинуса, использовались во всех версиях до 1.4;<br>
1 - промежуточный между 0 и 2;<br>
2 - плоское окно анализа, окно синтеза типа приподнятого косинуса (Hanning).<br>
<var>pframe</var>
- номер кадра с образцом структуры шума (по умолчанию=false)<br>
<var>px</var>
- горизонтальная X позиция блока с образцом шума (по умолчанию=0)<br>
<var>py</var>
- вертикальная Y позиция блока с образцом шума (по умолчанию=0)<br>
Если оба px=px=0, то блок определяется автоматически по минимуму мощности спектра.<br>
<var>pshow</var>
- показать блок с образцом шума и его свойства (по умолчанию=false)<br>
<var>pcutoff</var>
- частота среза образца шума (относительно максимальной) (по умолчанию=0.1)<br>
<var>pfactor</var>
- степень подавления шума по образцу (0 to 1, по умолчанию=0, этот метод отменен)<br>
<var>sigma2</var>
- заданная величина шума на частотах второго масштабного уровня (float>0, по умолчанию=<var>sigma</var>)<br>
<var>sigma3</var>
- заданная величина шума на частотах третьего масштабного уровня (float>0, по умолчанию=<var>sigma</var>)<br>
<var>sigma4</var>
- заданная величина шума на низших частотах (float>0, по умолчанию=<var>sigma</var>)<br>
<var>degrid</var>
- степень компенсации взвешивающего окна для снижения сеточности (float>0, по умолчанию=1.0)<br>
<var>dehalo</var>
- сила подавления ореолов (float>0, default=0.0)<br>
<var>hr</var>
- примерный радиус ореолов (float>0, default=2.0)<br>
<var>ht</var>
- примерный порог ореолов (float>0, default=50.0)<br>
<var>ncpu</var>
- максимальное число потоков процессоров при вычислении FFT (int>0, default=1)
</p>
<p>Наиболее важным параметром является задаваемое значение уровня шума
<var>sigma</var>.
Вы должны использовать разумные значения, основанные на
априорных данных для конкретного клипа (источника видео).
Типичными значениями для цифровых источников будут от 1.5 до 2.5,
а для аналоговых около 3 и выше.<br>
Хорошие значения для размера перекрытия -
примерно от четверти до половины размера блока. Половина (ow=bw/2, oh=bh/2) - лучше, но медленнее.<br>
Хорошие значения размеров блока - примерно от 32 до 64.</p>
<p>Фильтр может дать некоторые сеточные артефакты для больших
<var>sigma </var>и малых <var>bw, bh</var> и <var>oh, ow</var> или малых относительных размерах перекрытия.<br>
Фильтр может дать призраки для больших <var>sigma</var> (и <var>kratio</var>)
для 3D режимов.</p>
<p>Взвешивающие окна <var>wintype</var>=0 могут дать наихудшие сеточные артефакты,
окна типа <var>wintype</var>=2 не производят сеточных артефактов, но могут дать некоторый звон,
<var>wintype</var>=1 является промежуточным случаем.</p>
<p>Я рекомендую использовать компенсацию оконного взвешивания с <var>degrid</var>=1 (с версии 1.8),
это улучшает качество фильтрации и снижает сеточные артефакты, особенно для 2D.</p>
<p>Повышение резкости приведет к некоторому ухудшению сжимаемости клипа.</p>
</p>
<p>Для использования метода с использованием образца структуры шума
вместо обычного (слепого) метода понижения шума, вы должны: <br>
Сначала включить режим просмотра <var>pshow</var>=true, и задать некоторое ненулевое значение <var>pfactor</var>=1.0. <br>
Затем выбрать номер кадра и подобрать позицию блока,
чтобы данный показываемый блок не содержал объектов, кроме шума характерной структуры.<br>
Затем отключите режим просмотра <var>pshow</var>=false, <br>
и установите желаемое подавление шума, рекомендуемое значение <var>pfactor</var> от 0.5 до 1.0.<br>
Наилучшее окно для этого метода - <var>wintype</var>=2.<br>
Параметры <var>sigma</var> и <var>beta</var> не используется в данном методе понижения шума,
но Вы можете использовать данный метод в режиме просмотра <var>pshow</var>=true
для оценки значения <var>sigma</var> для обычного метода понижения шума.
(это не стого та же, но подобная величина).</p>
<p>Есть также комбинированный метод, когда Вы можете прямо задать различную величину шума
<var>sigma</var> для наивысших и <var>sigma2, sigma3, sigma4</var> для более низких частот.
Коэффициенты структуры шума будут созданы внутренне из этих величин sigma путем интерполяции.
Введите pfactor=0 для этого метода (внутренне он будет =1). </p>
<h3>Особенности и ограничения</h3>
<ol>
<li>Работает только с форматами хранения цвета YV12 или YUY2.</li>
<li>Может обрабатывать только указываемый цветовой канал (Y, U или V).<br>
С версии 1.8.4 возможна обработка сразу нескольких (всех) цветовых каналов.</li>
<li>С версии 1.3 работает как с прогрессивными так и чересстрочными клипами.
</li>
<li>Тестирован с Avisynth v2.55, v2.56, v2.5.7.</li>
<li>Использует внешнюю быструю библиотеку FFTW версии 3 (<a href="http://www.fftw.org/">http://www.fftw.org</a>)<br>
как Windows бинарную DLL (скомпилированную gcc под MinGW by Alessio Massaro),<br>
которая поддерживает многопоточность и AMD K7 (3dNow!) вдобавок к SSE/SSE2.<br>
Она может быть загружена с
<a href="ftp://ftp.fftw.org/pub/fftw/fftw3win32mingw.zip">ftp://ftp.fftw.org/pub/fftw/fftw3win32mingw.zip</a><br>
<font color="#ff0000"> Для использования плагина, Вы ДОЛЖНЫ
поместить файл FFTW3.DLL из указанного архива (не fft3dfilter.dll) в некоторый каталог в путях
(например, C:\WINNT\SYSTEM32). <br>
Плагин НЕ работает без этого!</font></li>
<li>Библиотека FFTW работает наиболее эффективно для массивов, размеры
которых (<var>bw, bh</var>)
могут быть разложены на простые сомножители 2, 3, 5, 7 (и по одному 11, 13), и в противном
случае использует медленный универсальный метод расчета.</li>
<li>Первые версии были действительно
мееедленными! Но последние версии являются просто медленными :-).<br>
Улучшен алгоритм и ассемблерные инструкции 3DNow! и SSE использованы в некоторых режимах.</li>
<li>Алгоритм обработки оптимизирован по скорости только для прямого последовательного доступа к кадрам.</li>
<li>Метод повышения резкости является экспериментальным,
но с версии 1.1 (и 1.7) вроде неплох.</li>
<li>Метод использования образца шума - тоже экспериментальный.</li>
<li>Опция <var>degrid</var> для фильтра Кальмана (bt=0) не реализована.</li>
<li>Для шумного видео хорошо использовать предварительную медианную фильтрацию (например DeGrainMedian)
перед FFT3Dfilter.</li>
<li>Режим использования нитей многих процессоров почти не тестировался
(у меня нет Core duo), попробуйте ncpu=2 если у вас есть.</li>
</ol>
<h3>Простые примеры скриптов:</h3>
<h4>Чтобы понизить шум яркости прогрессивного или разложенного на поля клипа:</h4>
<pre>Avisource("input.avi")
loadplugin("c:\plugins\fft3dfilter.dll")
FFT3DFilter(sigma=3)</pre>
<p>Конечно, вы должны заменить "c:\plugins" на путь к вашей папке плагинов (и также установить имя и путь вашего видео :).
Вы можете опустить команду LoadPlugin, если вы поместите файл fft3dfilter.dll в папку автозагрузки плагинов
(C:\Program Files\Avisynth 2.5\plugins). </p>
<h4>Чтобы только повысить резкость:</h4>
<pre>Avisource("input.avi")
loadplugin("fft3dfilter.dll")
FFT3DFilter(bt=-1, sharpen=0.7)</pre>
<h4>Чтобы понизить шум и слегка повысить резкость чересстрочного клипа:</h4>
<pre>Avisource("input.avi")
loadplugin("fft3dfilter.dll")
FFT3DFilter(sigma=2, sharpen=0.3, interlaced=true)</pre>
<h4>Некие "наилучшие настройки, медленные:</h4>
<pre>Avisource("input.avi")
loadplugin("fft3dfilter.dll")
FFT3DFilter(sigma=1.5, bt=5, bw=32, bh=32, ow=16, oh=16, sharpen=0.4)</pre>
<h4>Чтобы понизить шум всех цветовых каналов (как яркости, так и цветности)</h4>
<p>Замечание. Скорость обработки при этом понизится,
так что вы можете рассмотреть использование других (более простых и быстрых) фильтров для понижения шума цветности
(<code>CNR2</code>, <code>DeGrainMedian</code> и т.п.).</p>
<h4>Простой способ подавить шум во всех каналах с одинаковыми настройками</h4>
<pre>Avisource("input.avi")
loadplugin("fft3dfilter.dll")
fft3dfilter(sigma=2, plane=4)
</pre>
<h4>Подавить шум яркости и цветности с разными настройками</h4>
<pre>Avisource("input.avi")
loadplugin("fft3dfilter.dll")
fft3dfilter(sigma=2, plane=0)
fft3dfilter(sigma=3, plane=3)
</pre>
<h4>Другой способ обработки всех цветовых каналов (скрипт от AI)</h4>
<p>Это было важно в старых версиях, особенно если вы используете компенсацию движения</p>
<pre>Avisource("input.avi")
loadplugin("fft3dfilter.dll")
YToUV(fft3dfilter(sigma=3, plane=1).UToY(),\
fft3dfilter(sigma=3, plane=2).VToY(),\
fft3dfilter(sigma=2, plane=0))
</pre>
<h4>Чтобы только понизить существующие горизонтальные ореолы</h4>
<pre>Avisource("input.avi")
loadplugin("fft3dfilter.dll")
fft3dfilter(bt=-1, plane=0, dehalo=1.0, hr=2.0, ht=50, svr=0)
</pre>
<h3>Дополнительная информация</h3>
<p>
Алгоритм фильтра Винера основан на "3D IIR/3D Frequency Domain Filter" из источника:<br>
MOTION PICTURE RESTORATION. by Anil Christopher Kokaram. Ph.D. Thesis. May 1993.<br>
<a href="http://www.mee.tcd.ie/%7Eack/papers/a4ackphd.ps.gz">http://www.mee.tcd.ie/~ack/papers/a4ackphd.ps.gz</a>
в формате postscript (используйте GSview с Ghostscript для чтения).<br>
Ищи дополнительную информацию про фильтрацию Винера и Кальмана в
специальной литературе или Googles.</p>
<p>
Обсуждение фильтра ведется на форуме DOOM9 по Avisynth, ветка
"New very slow FFT denoiser":<br>
<a href="http://forum.doom9.org/showthread.php?t=85790">http://forum.doom9.org/showthread.php?t=85790</a></p>
<p>Разрабатывается также плагин <code>FFT3DGPU</code> (автор - <b>tsp</b>)
с подобным алгоритмом, но используя процессор современных видеокарт для БПФ.<br>
<b>tsp</b> перенес многие особенности fft3dfilter.
Смотри <a href="http://forum.doom9.org/showthread.php?t=89941">http://forum.doom9.org/showthread.php?t=89941</a>.</p>
<h3>Лицензия</h3>
<p>Данная программа представляет собой свободно распространяемый<br>
программный продукт; вы можете распространять ее далее и\или изменять<br>
на условиях Стандартной публичной лицензии GNU версии номер 2, опубликованной<br>
"Free Software Foundation".<br>
<br>
Распространяя данный программный продукт, мы надеемся что он окажется<br>
полезным, но НЕ ДАЕМ НИКАКИХ ГАРАНТИЙ, даже подразумеваемой гарантии<br>
ПРИГОДНОСТИ К КУПЛЕ-ПРОДАЖЕ или ИСПОЛЬЗОВАНИЮ В КОНКРЕТНЫХ ЦЕЛЯХ<br>
(см. "Стандартную публичную лицензию GNU").<br>
Вместе с данной программой вы должны были получить копию "Стандартной<br>
публичной лицензии GNU"; если это не так, напишите в Free Software<br>
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.<br>
<br>
(Суть: Вы можете модифицировать и программу и ее исходный код,<br>
но все модификации должны распространяться на таких же условиях, с
исходными кодами, свободно).</p>
Документация распространяется на условиях лицензии <a href="http://creativecommons.org/licenses/by-sa/3.0/">CreativeCommons BY-SA 3.0 license.</a>
<p>Буду благодарен за финансовую поддержку.</p>
<h3>Изменения версий:</h3>
<ul>
<li>Версия 0.1, 23 ноября 2004 - начальная экспериментальная.</li>
<li>Версия 0.2, 3 декабря 2004 - добавлен параметр <var>beta</var> (граница шума).</li>
<li>Версия 0.3, 21 декабря 2004 - добавлен параметр временного размера
<var>bt</var> (был фиксирован =3 внутренне).</li>
<li>Версия 0.4, 16 января 2005 - алгоритм оптимизирован по скорости для
<var>bt</var>=2 (стал по умолчанию);<br>
режим <var>bt</var>=3 временно исключен;<br>
изменены по умолчанию <var>bw=bh</var>=32;<br>
фильтруемая область центрирована.</li>
<li>Версия 0.5, 28 января 2005 - добавлена поддержка YUY2</li>
<li>Версия 0.6, 29 января 2005 - добавлен режим фильтра Кальмана для
<var>bt</var>=0, и параметр <var>ratio</var></li>
<li>Версия 0.7, 30 января 2005 - восстановлен режим фильтра
Винера с тремя кадрами (<var>bt</var>=3);<br> первый и последний кадр в 3D режимах Винера
теперь фильтруются (как 2D)</li>
<li>Версия 0.8, 5 февраля 2005 - добавлена экспериментальная опция
повышения резкости <var>sharpen</var> и <var>bt</var>=-1</li>
<li>Версия 0.8.1, 6 февраля 2005 - опущено повышение резкости
наинизших частот для предотвращения паразитных линии у краев </li>
<li>Версия 0.8.2, 15 февраля 2005 - добавлен внутренний буфер чтобы
обрабатывать весь кадр (включая края) для любых <var>bw, bh</var>
(немного медленнее)</li>
<li>Версия 0.8.3, 16 марта 2005 - исправлена ошибка для режима <var>bt</var>=-1
для YUY2</li>
<li>Версия 0.8.4, 3 апреля 2005 - (не публичная) - отложенная динамическая
загрузка FFTW3.DLL</li>
<li>Версия 0.9, 4 апреля 2005 - переменный размер перекрытия <var>ow,oh</var>
для более быстрой обработки;<br>
половинное перекрытие <var>ow=bw/4, oh=bh/4</var> теперь по умолчанию, в то время как во всех предыдущих
версиях использовалось полное перекрытие <var>ow=bw/2, oh=bh/2</var>.</li>
<li>Версия 0.9.1, 7 апреля 2005 - некоторая ассемблерная 3DNow! оптимизация
скорости для режима <var>bt</var>=3.</li>
<li>Версия 0.9.2, 10 апреля 2005 - некоторая ассемблерная 3DNow!
оптимизация скорости для режима bt=0; опция <var>measure</var>=true
теперь по умолчанию как более быстрая.</li>
<li>Версия 0.9.3, 24 апреля 2005 - исправлена ошибка для <var>bt</var>=2 с
3DNow! (благодарность kxproject за доклад);<br>
режим <var>bt</var>=3 теперь по умолчанию;<br>
повышение резкости теперь только горизонтальное и модифицировано (все еще экспериментальное)</li>
<li>Версия 1.0, 27 июня 2005 - улучшена обработка краев (путем дополнения); <br>
добавлен параметр <var>svr</var> для контроля вертикального повышения резкости</li>
<li>Версия 1.0.1, 5 июля 2005 - исправлена ошибка для плоскостей цветности в YUY2
(появилась в версии 1.0) </li>
<li>Версия 1.1 - 8 июля 2005 - улучшен метод повышения резкости чтобы предотвратить сетчатые артефакты
и ограничить повышение резкости (добавлены параметры <var>smin, smax</var>); <br>
параметр <var>ratio</var> переименован в <var>kratio</var>.
</li>
<li>Версия 1.2 - 12 июля 2005 - изменены размеры блока <var>bw=bh=48</var>
и перекрытия <var>ow=bw/3, oh=bh/3</var> по умолчанию,
чтобы наконец предотвратить сеточные артефакты в режиме повышения резкости (но скорость уменьшилась).
</li>
<li>Версия 1.3, 20 июля 2005 - добавлен параметр <var>interlaced</var> для обработки чересстрочного видео
</li>
<li>Версия 1.3.1, 21 июля 2005 - исправлена ошибка для чересстрочного YUY2.
</li>
<li>Версия 1.4 - 23 июля 2005 - скорректирован нейтральный уровень для обработки цветности, <br>
изменен тип взвешивающего окна с новым параметром <var>wintype</var>
</li>
<li>Версия 1.5 - 26 июля 2005 - добавлен метод образца шума
и его параметры <var>pframe, px, py, pshow, pcutoff, pfactor</var>
</li>
<li>Версия 1.5.1 - 29 июля 2005 - исправлена ошибка с <var>pshow</var>
</li>
<li>Версия 1.5.2 - 31 июля 2005 - исправлена ошибка с режимом Kalman (bt=0) для Athlon (введена в v1.5)
</li>
<li>Версия 1.6 - 3 августа, 2005 - добавлен режим <var>bt</var>=4; добавлена оптимизированная SSE версия для <var>bt</var>=2,3;
добавлены параметры <var>sigma2,sigma3,sigma4</var> для комбинированного метода.
</li>
<li>Версия 1.7 - 29 августа, 2005 - изменено повышение резкости на фильтр Гаусса с новым параметром <var>scutoff</var>;<br>
добавлена SSE версия для режима sharpen и режимов pattern с <var>bt</var>=2,3 ; <br>
код реструктурирован и открыт по GNU GPL v2.
</li>
<li>Версия 1.8 - 3 октября 2005 - улучшил внутренний FFT кэш; добавил параметр <var>degrid=1</var> по умолчанию;
изменил по умолчанию <var>wintype=0</var>.
</li>
<li>Версия 1.8.1 - 26 октября 2005 - исправил ошибку с <var>sharpen</var> >0 И <var>degrid</var> >0 для <var>bt</var> не равной 1. (Благодарю <b>Wull</b> за доклад).
</li>
<li>Версия 1.8.2 - 4 ноября 2005 - на самом деле установил по умолчанию <var>degrid</var>=1.0 (был =0 случайно).
</li>
<li>Версия 1.8.3 - 28 ноября 2005 - исправил ошибку первого кадра для Kalman YV12 (спасибо tsp).
</li>
<li>Версия 1.8.4 - 29 ноября 2005 - добавил много-канальные режимы plane=3,4
</li>
<li>Версия 1.8.5 - 4 декабря 2005 - исправил ошибку утечки памяти в конструкторе (спасибо tsp)
</li>
<li>Версия 1.9 - 25 апреля 2006 - добавлены опции <var>dehalo</var>; скорректирован режим sharpen;
восстановлена SSE оптимизация для degrid=0; добавлена SSE оптимизация для bt=3,-1 с degrid>0 (на 15% быстрее).
</li>
<li>Версия 1.9.1 - 10 мая 2006 - добавлена SSE оптимизация для bt=4 с degrid>0 (на 30% быстрее).
</li>
<li>Версия 1.9.2 - 11 сентября 2006 - изменил умолчания bw=bh=32; добавил режим bt=5
</li>
<li>Версия 2.0.0 - 29 ноября 2006 - добавил экспериментальный режим внутренней компенсации движения;
реорганизовано оконное суммирование; внутренняя поддержка многопоточности (Core duo, trio, quadro et cetera)
</li>
<li>Версия 2.1.0 - 17 января 2007 - убрал (пока ?) экспериментальный режим внутренней компенсации движения.
</li>
<li>Версия 2.1.1 - 20 февраля 2007 - исправил ошибку с bw не кратным 4
(вернул метод версии 1.9.2, спасибо JKinG за доклад).
</li>
</ul>
<h3>
<a href="fft3dfilter192.zip">Download FFT3DFilter version 1.9.2</a><br>
<a href="fft3dfilter211.zip">Download FFT3DFilter version 2.1.1</a><br>
</h3>
<p><a href="../">Возврат на главную страницу</a>
</p>
</body>
</html>