exponenta event banner

visionhdl. ChromaResampler

Компонент понижающей или повышающей цветности

Описание

visionhdl.ChromaResampler понижает или увеличивает выборку потока пикселей.

  • Понижающая дискретизация уменьшает пропускную способность и требования к памяти в видеосистеме за счет объединения компонентов цветности пикселей в нескольких пикселях. Можно указать фильтр для предотвращения наложения псевдонимов, выбрав фильтр по умолчанию или введя коэффициенты.

  • Повышающая дискретизация восстанавливает сигнал до его первоначальной скорости. Для вычисления дополнительной пробы можно использовать интерполяцию или репликацию.

Этот объект использует потоковый пиксельный интерфейс со структурой для сигналов управления кадрами. Этот интерфейс позволяет объекту работать независимо от размера и формата изображения и подключаться к другим объектам Vision HDL Toolbox™. Объект принимает и возвращает значение скалярного пикселя и управляющие сигналы в виде структуры, содержащей пять сигналов. Сигналы управления указывают достоверность каждого пикселя и его местоположение в кадре. Чтобы преобразовать матрицу пикселей в поток пикселей и управляющие сигналы, используйте visionhdl.FrameToPixels объект. Полное описание интерфейса см. в разделе Потоковый пиксельный интерфейс.

Объект принимает компоненты яркости и цветности. Объект не изменяет компонент яркости и применяет задержку для выравнивания с повторно дискретизированными выходами цветности. Скорость выхода компонента luma такая же, как и у входа.

Примечание

Начиная с R2016b, вместо использования step для выполнения операции, определенной системным object™, можно вызвать объект с аргументами, как если бы это была функция. Например, y = step(obj,x) и y = obj(x) выполнять эквивалентные операции.

Строительство

CR = visionhdl.ChromaResampler возвращает объект System, CR, что понижает выборку с 4:4:4 до 4:2:2 и применяет фильтр сглаживания по умолчанию.

CR = visionhdl.ChromaResampler(Name,Value) возвращает системный объект resampler цветности, CR, с дополнительными опциями, указанными одним или несколькими Name,Value аргументы пары. Name является именем свойства и Value - соответствующее значение. Name должно отображаться внутри отдельных кавычек (''). Можно указать несколько аргументов пары имя-значение в любом порядке как Name1,Value1,...,NameN,ValueN. Не указанные свойства сохраняют значения по умолчанию.

Свойства

Resampling

Формат повторной выборки.

  • 4:4:4 to 4:2:2 (по умолчанию) - выполнение операции понижающей дискретизации.

  • 4:2:2 to 4:4:4 - Выполните операцию повышения дискретизации.

AntialiasingFilterSource

Фильтр нижних частот, сопровождающий операцию понижающей дискретизации.

  • Auto (по умолчанию) - встроенный фильтр нижних частот.

  • Property - Фильтр по коэффициентам в HorizontalFilterCoefficients собственность.

  • None - Фильтрация входного сигнала отсутствует.

Это свойство применяется при установке Resampling кому 4:4:4 to 4:2:2.

HorizontalFilterCoefficients

Коэффициенты для фильтра сглаживания.

Введите коэффициенты в виде вектора. Это свойство применяется при установке Resampling кому 4:4:4 to 4:2:2 и Antialiasing filter кому Property.

По умолчанию: [0.2,0.6,0.2]

InterpolationFilter

Метод интерполяции для операции увеличения выборки.

  • Linear (по умолчанию) - линейная интерполяция для вычисления отсутствующих значений.

  • Pixel replication - Повторите значение цветности предыдущего пикселя, чтобы создать отсутствующий пиксель.

Это свойство применяется при установке Resampling кому 4:2:2 to 4:4:4.

RoundingMethod

Режим округления, используемый для операций с фиксированной точкой.

Объект использует арифметику с фиксированной точкой для внутренних вычислений, если входные данные являются целыми или фиксированными. Этот параметр не применяется, если типом входных данных является single или double.

По умолчанию: Floor

OverflowAction

Действие переполнения, используемое для операций с фиксированной точкой.

Объект использует арифметику с фиксированной точкой для внутренних вычислений, если входные данные являются целыми или фиксированными. Этот параметр не применяется, если типом входных данных является single или double.

По умолчанию: Wrap

CustomCoefficientsDataType

Тип данных для коэффициентов фильтра сглаживания.

Укажите пользовательский тип данных в качестве символьного вектора. Этот параметр применяется при установке Antialiasing filter кому Property или Auto.

По умолчанию: 'fixdt(1,16,0)'

Методы

шагВычисление следующего пикселя в восходящем или нисходящем потоке пикселей
Общие для всех системных объектов
release

Разрешить изменение значения свойства объекта системы

Примеры

свернуть все

Повторная выборка изображения 4:4:4 Y 'CbCr в 4:2:2. В примере также показано, как преобразовать входное изображение R 'G' B' в цветовое пространство Y 'CbCr.

Подготовьте тестовое изображение, выбрав часть файла изображения.

frmActivePixels = 64;
frmActiveLines = 48;
frmOrig = imread('fabric.png');
frmInput = frmOrig(1:frmActiveLines,1:frmActivePixels,:);

Создайте сериализатор и укажите размер неактивных пиксельных областей. Количество пикселей заполнения в каждой строке должно быть больше, чем задержка каждого объекта обработки пикселей.

frm2pix = visionhdl.FrameToPixels(...
      'NumComponents',3,...
      'VideoFormat','custom',...
      'ActivePixelsPerLine',frmActivePixels,...
      'ActiveVideoLines',frmActiveLines,...
      'TotalPixelsPerLine',frmActivePixels+40,...
      'TotalVideoLines',frmActiveLines+10,...
      'StartingActiveLine',6,...     
      'FrontPorch',5);

Создайте преобразователь цветового пространства и ресамплер, используя значения свойств по умолчанию. По умолчанию используется преобразование RGB в YCbCr. Режим повторной выборки по умолчанию: «» 4:4:4 - 4:2:2 «». Фильтр сглаживания по умолчанию - фильтр нижних частот с 29 отводами. Это дает объекту задержку в 30 циклов.

convert2ycbcr = visionhdl.ColorSpaceConverter();
downsampler = visionhdl.ChromaResampler();

Сериализируйте тестовый образ с помощью объекта сериализатора. pixIn является numPixelsPerFrame -на-3 матрица. ctrlIn - вектор структур управляющих сигналов. Предварительно распределить векторы для выходных сигналов.

Примечание.Этот синтаксис работает только в R2016b или более поздних версиях. При использовании более ранней версии замените каждый вызов объекта эквивалентным step синтаксис. Например, заменить myObject(x) с step(myObject,x).

[pixIn,ctrlIn] = frm2pix(frmInput);

[~,~,numPixelsPerFrame] = getparamfromfrm2pix(frm2pix);
pix444 = zeros(numPixelsPerFrame,3,'uint8');
ctrl444  = repmat(pixelcontrolstruct,numPixelsPerFrame,1);
pix422 = zeros(numPixelsPerFrame,3,'uint8');
ctrl422 = repmat(pixelcontrolstruct,numPixelsPerFrame,1);

Для каждого пикселя в потоке преобразуйте в YCbCr, затем понижайте выборку.

for p = 1:numPixelsPerFrame  
    [pix444(p,:),ctrl444(p)] = convert2ycbcr(pixIn(p,:),ctrlIn(p));
    [pix422(p,:),ctrl422(p)] = downsampler(pix444(p,:),ctrl444(p));
end

Создайте десериализаторы с форматом, соответствующим формату сериализатора. Преобразуйте потоки 4:4:4 и 4:2:2 пикселей обратно в кадры изображения.

pix2frm444 = visionhdl.PixelsToFrame(...
      'NumComponents',3,...
      'VideoFormat','custom',...
      'ActivePixelsPerLine',frmActivePixels,...
      'ActiveVideoLines',frmActiveLines);

pix2frm422 = visionhdl.PixelsToFrame(...
     'NumComponents',3,...
     'VideoFormat','custom',...
     'ActivePixelsPerLine',frmActivePixels,...
     'ActiveVideoLines',frmActiveLines);

[frm444,frmValid] = pix2frm444(pix444,ctrl444);
[frm422,frmValid] = pix2frm422(pix422,ctrl422);

Существует одинаковое количество пикселей в потоках и кадрах 4:2:2 и 4:4:4. Чтобы проверить повторно дискретизированные данные, перегруппируйте пиксельные данные для первых 8 пикселей первой строки. Первая строка является Y-элементами пикселей, вторая строка является Cb-элементами, а третья строка является Cr-элементами. Обратите внимание, что в данных 4:2:2 элементы Cb и Cr изменяются только в каждом втором образце.

YCbCr444 = [frm444(1,1:8,1); frm444(1,1:8,2); frm444(1,1:8,3)]
YCbCr444 = 3x8 uint8 matrix

   132   134   129   124   125   122   118   119
   116   118   119   122   122   121   123   123
   135   131   125   121   119   116   118   118

YCbCr422 = [frm422(1,1:8,1); frm422(1,1:8,2); frm422(1,1:8,3)]
YCbCr422 = 3x8 uint8 matrix

   132   134   129   124   125   122   118   119
   116   116   120   120   122   122   123   123
   135   135   126   126   119   119   118   118


figure
imshow(frm422,'InitialMagnification',300)
title '4:2:2'

Figure contains an axes. The axes with title 4:2:2 contains an object of type image.

figure
imshow(frm444,'InitialMagnification',300)
title '4:4:4'

Figure contains an axes. The axes with title 4:4:4 contains an object of type image.

Алгоритмы

Этот объект реализует алгоритмы, описанные на странице ссылок блока Chroma Resampler.

См. также

| | (панель инструментов компьютерного зрения)

Представлен в R2015a