FUSION · СПРАВОЧНИК НОД
RankFilter
RankFilter / Ранговый фильтр
RankFilter заменяет каждый пиксель цветом одного из соседних пикселей после сортировки локального neighbourhood по значению. Rank 0 выбирает минимум, 0.5 даёт медианный случай, 1 — максимум; Size задаёт размер анализируемой области.
RankFilter
Обзор
Что делает RankFilter
Главная модель RankFilter — локальный порядок, а не среднее. Для каждого выходного pixel нода рассматривает окружающие pixels, сортирует их по value и выбирает один конкретный элемент списка. В результате sharp outlier может исчезнуть без характерного размазывания Blur, потому что в output попадает уже существовавший соседний pixel, а не среднее нескольких значений.
Blackmagic отдельно противопоставляет RankFilter обычному Blur: Blur агрегирует соседние samples, а RankFilter выбирает sample по позиции в отсортированном наборе. Это различие нужно держать в голове при любой диагностике — Amount/Strength здесь нет, а визуальная сила возникает из Size и Rank.
Rank нормирован от 0 до 1. Документация определяет 0 как lowest value, 1 как brightest value. Практически Rank около 0.5 соответствует median behavior — выбирается middle value, поэтому одиночные яркие и тёмные выбросы часто исчезают, не превращаясь в мягкое пятно.
Rank = 0 даёт min-подобное поведение. На светлом объекте по тёмному фону край чаще получает более тёмный соседний sample, поэтому мелкие светлые детали и белые островки могут сжиматься или пропадать. Одновременно тёмные области могут визуально расширяться.
Rank = 1 даёт max-подобное поведение. Светлые структуры получают преимущество и могут расширяться, а небольшие тёмные дырки внутри светлой области закрываться. Это полезная практическая аналогия с morphology, но RankFilter остаётся отдельным rank-based image filter, а не ErodeDilate с теми же controls.
Промежуточные Rank между 0 и 0.5 тянут выбор к нижней части local distribution, между 0.5 и 1 — к верхней. Это позволяет не только median cleanup, но и более мягкое смещение локальных extrema без перехода сразу в полный min/max режим.
Size измеряет область sampling в pixels. В официальном Fusion reference Size = 1 описан как immediate-neighbor case; larger values вовлекают более широкое окружение. Поэтому Size — не процент кадра и не blur radius в нормализованных координатах.
Малый Size — правильная стартовая точка для cleanup. Blackmagic прямо рекомендует small values для salt-and-pepper style noise. Если дефект занимает один-два pixel, большой neighbourhood только увеличивает риск потерять полезную текстуру и тонкие линии.
Большой Size меняет уже не только шум, но и структуру изображения. Историческая документация отмечает watercolor-like характер на крупных значениях: локальные области начинают собираться в более широкие однородные пятна, а мелкая фактура исчезает.
Effect Mask — второй, опциональный синий input. Он ограничивает, где уже вычисленный RankFilter применяется к исходному image. Это правильный способ локализовать удаление пыли, hot pixel или stylized min/max effect, не фильтруя весь кадр.
Effect Mask не становится дополнительным sample-source для ранжирования. Основные pixel values берутся из Image; mask определяет coverage эффекта. Поэтому Rectangle/Ellipse/Polygon полезны для изоляции проблемной области, но не подменяют входной raster.
Для restoration удобно сначала сделать глобальный диагностический тест без mask, чтобы понять правильные Size/Rank, затем подключить Effect Mask и сократить область обработки до реального дефекта. Так проще отличить неверный Rank от неверной маски.
На коже, волосах, мелком тексте и film grain RankFilter легко переусердствовать. Даже при Rank 0.5 large Size может превращать естественную texture в блоки. Проверяйте 100% Viewer, а не только fit-to-window, где потеря detail может быть незаметна.
На видео оценивайте temporal stability. RankFilter принимает решение отдельно для каждого frame и local neighbourhood; при меняющемся шуме или мелкой текстуре слишком большой Size/крайний Rank может создавать crawling, popping или изменение мелких деталей между кадрами.
Для matte-workflow важно различать image и mask streams. RankFilter — image processor. Если вы хотите чистить matte, убедитесь, что matte представлен как подходящий image/alpha-bearing raster в вашей цепочке; не предполагайте автоматически, что любой blue mask output является тем же типом входа, что RankFilter.Image.
Если задача — строго контролируемое расширение/сжатие альфы с Amount, channel selection и специализированными morphology controls, ErodeDilate обычно понятнее. RankFilter лучше выбирать, когда нужен именно order-statistic подход: median cleanup, min/max selection или stylized local quantization.
Если задача — мягко усреднить detail, используйте Blur; если убрать impulse noise без обычного smear — RankFilter с Rank около 0.5; если нужен directional/edge-aware denoise — ищите специализированный denoise pipeline. Правильный выбор ноды важнее попытки заставить RankFilter решать все типы шума.
Хорошая диагностическая тест-карта — чёрное поле с несколькими белыми точками, белое поле с чёрными точками и тонкая линия. На ней сразу видно: median убирает isolated outliers, low Rank съедает bright islands, high Rank закрывает dark holes, а большой Size начинает менять geometry полезной линии.
Надёжный порядок работы: один Image → Size 1 → Rank 0.5 → оценить median cleanup → отдельно проверить Rank 0 и 1 → вернуть минимально достаточный Size → подключить Effect Mask только после доказанной фильтрации → проверить детали и playback.
Captured Resolve Inspector для этой статьи подтверждает максимально компактный Controls: только Size и Rank. Не нужно искусственно приписывать ноде несуществующие quality/mode controls — глубина работы здесь в понимании алгоритма, входов, маскирования и правильной диагностики результата.
Когда применять
Удаление salt-and-pepper noise и одиночных hot/dead pixels через median-like Rank 0.5.
Локальная чистка пыли или цифрового мусора внутри Effect Mask.
Подавление мелких светлых точек через low/min-like Rank.
Закрытие мелких тёмных дырок через high/max-like Rank.
Подготовка технического grayscale/alpha-bearing image перед дальнейшим key/matte workflow.
Создание stylized watercolor/blocky texture на большом Size.
Сравнение median/order-statistic фильтрации с обычным Blur.
Локальное изменение мелкой структуры без усредняющего smear.
RankFilter в контексте
Скриншоты из статьи. Откройте изображение, чтобы рассмотреть его крупнее.
Пример для RankFilter.
Оригинальное изображение