2D КИХ-фильтрация
Vision HDL Toolbox / Фильтрация
Блок Image Filter выполняет двумерную фильтрацию конечной импульсной характеристики (FIR) на пиксельном потоке и поддерживает использование программируемых коэффициентов фильтра.
Этот блок использует пиксельный интерфейс потоковой передачи с шиной для сигналов управления кадром. Этот интерфейс позволяет блоку действовать независимо от размера изображения и формата. Порты pixel на этом блоке поддерживают одну пиксельную потоковую передачу или мультипиксельную потоковую передачу. Одна пиксельная потоковая передача принимает и возвращает одно пиксельное значение каждый такт. Мультипиксельная потоковая передача принимает и возвращает 4 или 8 пикселей за такт, чтобы поддержать высокую частоту кадров или форматы с высоким разрешением. Наряду с пикселем, блок принимает и возвращает pixelcontrol
соедините шиной, который содержит пять управляющих сигналов. Управляющие сигналы указывают на валидность каждого пикселя и их местоположения в системе координат. Для мультипиксельной потоковой передачи один набор управляющих сигналов применяется ко всем четырем или восьми пикселям в векторе. Чтобы преобразовать систему координат (пиксельная матрица) в последовательный пиксельный поток и управляющие сигналы, используйте блок Frame To Pixels. Для полного описания интерфейса смотрите Пиксельный Интерфейс Потоковой передачи.
pixel
— Входной пиксель или мультипиксельный векторЭтот блок поддерживает одну пиксельную потоковую передачу или мультипиксельную потоковую передачу. Для одной пиксельной потоковой передачи задайте один входной пиксель как скалярное значение интенсивности. Для мультипиксельной потоковой передачи задайте вектор четырех или восьми значений интенсивности пикселей. Для получения дополнительной информации того, как настроить вашу модель для мультипиксельной потоковой передачи, смотрите Мультипиксельные Видеопотоки Фильтра.
double
и single
типы данных поддерживаются для симуляции, но не для генерации HDL-кода.
Типы данных: uint8
| uint16
| uint32
| int8
| int16
| int32
| fixed point
| Boolean
| double
| single
ctrl
— Управляющие сигналы сопоставлены с пиксельным потокомpixelcontrol
шинаУправляющие сигналы сопоставлены с пиксельным потоком в виде pixelcontrol
соедините шиной, который содержит пять сигналов. Сигналы описывают валидность пикселя и его местоположения в системе координат. Для получения дополнительной информации смотрите Пиксельную Шину управления.
Для мультипиксельной потоковой передачи каждый вектор пиксельных значений имеет один набор управляющих сигналов. Поскольку вектор имеет только один valid
сигнал, пиксели в векторе должны быть или всеми допустимыми или всеми недопустимыми. hStart
и vStart
сигналы применяются к пикселю с самым низким индексом в векторе. hEnd
и vEnd
сигналы применяются к пикселю с самым высоким индексом в векторе.
Типы данных: bus
coeff
— Отфильтруйте коэффициентыЗадайте коэффициенты фильтра как 2D матрицу числовых значений. Каждая размерность матрицы должна иметь по крайней мере 2 элемента, но не больше, чем 64 элемента.
double
и single
типы данных поддерживаются для симуляции, но не для генерации HDL-кода.
Блок производит значения от порта coeff только в начале системы координат и игнорирует любые изменения в системе координат.
Чтобы включить этот порт, установите параметр Filter coefficients source на Input port
.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| fixed point
pixel
— Выходной пиксель или мультипиксельный векторЭтот блок поддерживает одну пиксельную потоковую передачу или мультипиксельную потоковую передачу. При использовании одной пиксельной потоковой передачи блок возвращает один пиксель как скалярное значение интенсивности. При использовании мультипиксельной потоковой передачи блок возвращает вектор значений интенсивности. Этот вектор одного размера с вектором входа pixel. Для получения дополнительной информации того, как настроить вашу модель для мультипиксельной потоковой передачи, смотрите Мультипиксельные Видеопотоки Фильтра.
Тип данных выходного пикселя совпадает с типом данных входных пикселей.
double
и single
типы данных поддерживаются для симуляции, но не для генерации HDL-кода.
Типы данных: uint8
| uint16
| uint32
| int8
| int16
| int32
| fixed point
| Boolean
| double
| single
ctrl
— Управляющие сигналы сопоставлены с пиксельным потокомpixelcontrol
шинаУправляющие сигналы сопоставлены с пиксельным потоком в виде pixelcontrol
соедините шиной, который содержит пять сигналов. Сигналы описывают валидность пикселя и его местоположения в системе координат. Для получения дополнительной информации смотрите Пиксельную Шину управления.
Для мультипиксельной потоковой передачи каждый вектор пиксельных значений имеет один набор управляющих сигналов. Поскольку вектор имеет только один valid
сигнал, пиксели в векторе - или все допустимые или все недопустимые. hStart
и vStart
сигналы применяются к пикселю с самым низким индексом в векторе. hEnd
и vEnd
сигналы применяются к пикселю с самым высоким индексом в векторе.
Типы данных: bus
Filter coefficients source
— Источник, чтобы обеспечить коэффициенты фильтраProperty
(значение по умолчанию) | Input port
Выберите источник для определения коэффициентов фильтра.
Property
(значение по умолчанию) — Использование это значение, чтобы задать коэффициенты фильтра с помощью параметра Filter coefficients.
Input port
— Используйте это значение, чтобы задать, пропускают коэффициенты через входной порт coeff.
Filter coefficients
— Коэффициенты фильтра
(значение по умолчанию) | матрицаЗадайте коэффициенты фильтра как матрицу. Каждая размерность матрицы должна иметь по крайней мере 2 элемента, но не больше, чем 64 элемента.
Чтобы включить этот параметр, установите параметр Filter coefficients source на Property
.
Padding method
— Метод для дополненияConstant
(значение по умолчанию) | Replicate
| Symmetric
| None
Выберите один из этих методов для дополнения контура входного изображения. Для получения дополнительной информации об этих методах, смотрите, что Ребро Дополняет.
Constant
— Интерпретируйте пиксели вне фрейма изображения как наличие постоянного значения.
Replicate
— Повторите значение пикселей в ребре изображения.
Symmetric
— Установите значение дополнительных пикселей, чтобы зеркально отразить ребро изображения.
None
— Исключите дополнительную логику. Блок не устанавливает пиксели вне фрейма изображения ни к какому конкретному значению. Эта опция уменьшает аппаратные ресурсы, используемые блоком и очищением, требуемым между системами координат, но влияет на точность выходных пикселей в ребрах системы координат. Чтобы обеспечить пиксельную потоковую синхронизацию, выходная система координат одного размера с входным кадром. Однако избегать использования пикселей, вычисленных от неопределенных дополнительных значений, маски от KernelSize/2 пиксели вокруг ребра системы координат для нисходящих операций. Для получения дополнительной информации смотрите Пропускную способность Увеличения с Дополнением Ни одного.
Padding value
— Значение раньше заполняло контур входного изображения
(значение по умолчанию) | целое числоЗадайте целое число, чтобы заполнить контур входного изображения. Блок бросает это значение к совпадающему типу данных как входной пиксель.
Чтобы включить этот параметр, установите параметр Padding method на Constant
.
Line buffer size
— Размер буфера линии
(значение по умолчанию) | целое числоЗадайте степень двойки, которая размещает количество активных пикселей в одной горизонтальной линии.
Если вы задаете значение, которое не является степенью двойки, блок использует следующую самую большую степень двойки. Блок выделяет (N — 1)-by-Line buffer size ячейки памяти, чтобы сохранить пиксели. N представляет строки матрицы коэффициентов.
Rounding mode
— Режим Rounding для внутренних вычислений фиксированной точкиFloor
(значение по умолчанию) | Ceiling
| Convergent
| Nearest
| Round
| Zero
Выберите округляющийся режим для внутренних вычислений фиксированной точки как Floor
, Ceiling
, Convergent
самый близкий
вокруг
, и Zero
. Для получения дополнительной информации об округлении режимов, смотрите Округление Режимов (DSP System Toolbox).
Saturate on integer overflow
— Действие переполнения для внутренних вычислений фиксированной точкиoff
(значение по умолчанию) | on
Когда вы очищаете этот параметр, фиксированная точка и целочисленные значения повторяются, чтобы обнулить, когда значение переполняет того, что является представимым с тем типом данных. Когда вы выбираете этот параметр, значение насыщает в максимальном представимом значении.
Coefficients
— Отфильтруйте содействующий выбор типа данныхInherit: Same as first input
(значение по умолчанию) | fixdt(1, 16, 0)
| <data type expression>
Выберите метод для определения типа данных коэффициентов фильтра.
Нажмите ассистент типа данных Show кнопка, чтобы отобразить Data Type Assistant, который помогает вам установить тип данных параметра Coefficients. Для получения дополнительной информации смотрите, Задают Типы данных Используя Ассистент Типа данных (Simulink).
При преобразовании коэффициентов в заданный тип данных блок округляется к самому близкому представимому значению и насыщает к максимальному значению, если значение превышает максимальное значение, представимое с типом данных.
Чтобы включить этот параметр, установите параметр Filter coefficients source на Property
.
Output
— Выбор типа выходных данныхInherit: Same as first input
(значение по умолчанию) | Inherit: Inherit via internal rule
| fixdt(1, 16, 0)
| <data type expression>
Выберите метод для определения типа данных выходного пикселя.
Нажмите ассистент типа данных Show кнопка, чтобы отобразить Data Type Assistant, который помогает вам установить тип данных параметра Output. Для получения дополнительной информации смотрите, Задают Типы данных Используя Ассистент Типа данных (Simulink).
Lock data type settings against changes by the fixed-point tools
— Заблокируйте настройки типа данныхoff
(значение по умолчанию) | on
Выберите этот параметр, чтобы заблокировать все настройки типа данных этого блока против изменений Fixed-Point Tool и Советником Фиксированной точки. Для получения дополнительной информации смотрите Блокировку Установка Типа Выходных данных (Fixed-Point Designer).
Блок реализует 2D КИХ-фильтр с полностью конвейерной архитектурой. Каждый множитель имеет две настройки канала связи на каждом входе и две настройки канала связи на каждом выходе. Сумматор является конвейерной древовидной структурой. Симметричное использование генерации HDL-кода, единица или коэффициенты нулевого значения, чтобы сократить количество множителей.
Когда вы используете мультипиксельную потоковую передачу, блок использует однострочную память и реализует ядра фильтра NumberOfPixels параллельно. Это увеличение аппаратных ресурсов является компромиссом для увеличения пропускной способности по сравнению с потоковой передачей одно пикселя.
Когда вы обеспечиваете коэффициенты с помощью параметра Filter coefficients, можно оптимизировать множители для генерации HDL-кода при помощи представления канонической цифры со знаком (CSD) или учтенного представления CSD. Чтобы использовать CSD учтенного представления CSD, щелкните правой кнопкой по блоку, выберите HDL Code> HDL Block Properties и установите параметр ConstMultiplierOptimization на csd
или fcsd
.
Когда вы обеспечиваете коэффициенты с помощью порта coeff, задержка зависит от размера коэффициентов фильтра. Для N-by-M матрица коэффициентов обеспечил использование порта coeff, блок генерирует N xM множители.
Задержка блока является буферной задержкой линии плюс задержка вычисления ядра. Буферная задержка линии включает ребро, дополняющее по умолчанию. Задержка дополнительной операции зависит от размера ядра. Если дополнение ребра не необходимо для вашего проекта, можно уменьшать задержку путем установки параметра Padding method на None
. Когда вы используете эту опцию, задержка блока не зависит от вашего размера ядра. Чтобы определить точную задержку для любой настройки блока, измерьте количество временных шагов между управляющими сигналами ввода и вывода.
Когда вы будете использовать дополнение ребра, используйте горизонтальный интервал гашения больших, чем дважды ширина ядра. Этот интервал позволяет блоку закончить обрабатывать одну линию, прежде чем это начнет обрабатывать следующее, включая добавление дополнительных пикселей до и после активных пикселей в линии. Стандартные форматы потокового видео используют горизонтальный интервал гашения приблизительно 25% ширины системы координат. Этот интервал намного больше, чем фильтры применились к каждой системе координат. Когда вы отключаете дополнение ребра, горизонтальный интервал гашения должен быть по крайней мере 12 циклами и независим от размера ядра. Если вы используете пользовательский формат видео, установите горизонтальный интервал гашения при помощи параметров блоков Frame To Pixels. Горизонтальный интервал гашения равен Total pixels per line – Active pixels per line или, эквивалентно, Front porch + Back porch.
Этот блок поддерживает генерацию кода C/C++ для акселератора Simulink® и быстрых режимов Accelerator и для генерации компонента DPI.
HDL Coder™ обеспечивает дополнительные параметры конфигурации, которые влияют на реализацию HDL и синтезируемую логику.
Этот блок имеет одну, архитектуру HDL по умолчанию.
ConstrainedOutputPipeline | Количество регистров, чтобы поместить при выходных параметрах путем перемещения существующих задержек в рамках проекта. Распределенная конвейеризация не перераспределяет эти регистры. |
InputPipeline | Количество входных настроек канала связи, чтобы вставить в сгенерированный код. Распределенная конвейеризация и ограниченная выходная конвейеризация могут переместить эти регистры. |
OutputPipeline | Количество выходных настроек канала связи, чтобы вставить в сгенерированный код. Распределенная конвейеризация и ограниченная выходная конвейеризация могут переместить эти регистры. |
Вы не можете сгенерировать HDL-код для этого блока, если это в Resettable Synchronous Subsystem.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.