ДонНТУ | Портал магистров ДонНТУ

Библиотека

RGB to YCrCb Color-Space

Первоисточник: RGB to YCrCB Color-space Converter v2.0 Data Sheet [pdf]

Введение

RGB to YCrCb Color-Space Converter это - упрощенный 3x3 матричный множитель, преобразовывающий три входных канала цвета в три выходных канала цвета за один CLK цикл. Оптимизированная структура использует только четыре множителя или DSP48 - слайсы, используя зависимости между коэффициентами в конвертируемой матрице RGB к YCrCb или RGB к YUV стандартам. Ядро эффективно использует 18x18-битные множители, сумматоры и регистры, построенные на блоках DSP Virtex ™-5, Virtex-4 и Spartan ™-3A DSP устройств, или интегрированные 18x18-битные множители в Virtex-II, Virtex-II Pro и Spartan 3, приводящие к высокоэффективному и оптимальному использованию ресурсов.

Особенности

Применения

Общее описание

Цветовое пространство -это математическое представление наборацветов. Три самые популярные модели цвета:

Эти цветовые пространства имеют непосредственное отношение к интуитивному понятию оттенка, насыщенности и яркости.
Все цветовые пространства могут быть получены из RGB поставляемых устройствами, такими как цифровые камеры и сканеры.
Различные цветовые пространства, исторически развивались для различных приложений. Каждое цветовое пространство вбиралось для конкретного применения.

Цветовое пространство RGB

Красный, зеленый и синий (RGB) цветовое пространство, широко используются в компьютерной графике. Красный, зеленый и синий три основных аддитивных цвета: отдельные компоненты добавляются вместе, чтобы сформировать требуемый цвет, и представлены в трехмерные, прямоугольной системе координат, как показано на рисунке 1.
В таблице 1 показаны RGB значения для 100% насыщенных цветов.

Таблица 1 - RGB значения для 100% насыщенных цветов.



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

RGB не очень эффективно, когда речь идет о реальных изображений. Все три компоненты должны иметь одинаковую пропускную способность чтобы генерировать произвольные цвета внутри цветового куба. Кроме того, обрабатывать изображение в пространстве RGB не очень удобно. Например, чтобы изменить интенсивность или цвет пикселя нужно чтобы все три RGB-значения были доступны на чтение, изменение и запись. Если изображение представлено в формате цветоразностной модели, то процесс происходит быстрее.

YCbCr (или YCrCb) цветовое пространство

YCbCr или YCrCb цветовое пространство было разработано в ходе развития всемирного цифрового стандарта видео компонента. YCbCr представляет собой упрощенную версию YUV цветового пространства. Y имеет диапазон от 16 до 235, Cb и Cr имеют номинальный диапазон от 16 до 240. Существует несколько стандартов YCbCr: 4:4:4, 4:2:2 и 4:2:0.

Преобразование уравнений

Вывод преобразования уравнений

Чтобы сгенерировать яркостный компонент (Y, или сервый уровень), были проведены биологические эксперименты чтобы измерить как человеческий глаз воспринимает интенсивность красного, зеленого и синего цветов. Основываясь на этих экспериментах, оптимальные значения коэффициентов СА и СВ были определены как :

Фактические значения для CA и CB могут немного отличаться в различных стандартах.

Преобразованные параметры из пространства RGB яркость и цветность выражаются следующим образом:

Коэффициенты СА и СВ выбраны между 0 и 1 и гарантирует, что диапазон Y расположен между максимальным и минимальным разрешенными значениями RGB, RGBmax и RGBmin соответственно.
Минимальные и максимальные значения R-Y:

Таким образом, диапазон R-Y:

Точно так же минимальные и максимальные значения B-Y:

Таким образом, диапазон B-Y:

В большинстве практического выполнения диапазон Y и C должен быть равным. Есть два способа достигнуть этого: компоненты хроматических данных (B-Y и R-Y) могут быть нормализованы (сжатый), или значения выше и ниже диапазона светимости могут быть сокращены.

Сокращение и сжатие динамического диапазона приводит к потере информации. Чтобы усилить различия во входном (RGB) диапазоне, различные стандарты выбирают различные комбинации между сокращением и нормализацией.

Преобразование из RGB в YCrCb облегчает и сжатие диапазона и дополнительное сокращение, сжатие и расширение. Диапазон, сдвиг, сокращение и сжатие уровней являются параметризироваными. Ядро поддерживает преобразования, которые соответствуют следующей общей форме:

CC и CD позволяют динамическое сжатие даипазона для R-Y и B-Y, а константы OY и OC компенсируют результирующие Y, CB и CR компонент. Основываясь на Уравнении 3 и Уравнении 4, чтобы ограничить результирующие компоненты хроматических данных (CB и CR) в [0 1] диапазон, цветовое смещение (OC), и константы сжатия цветового диапазона (CC и CD) должны быть отобраны следующим образом (OC=0.5):

Когда значения RGB находятся также в этом [0.1] диапазоне, использование следующих уравнений позволяет избежать арифметического переполнения (OC=0.5).

Преобразование RGB в YCrCb (Уравнение 5) может быть выражено как:

Эти уравнения могут быть непосредственно аппаратно реализованы, как показано на рисунке 2. Синие блоки на рисунке 2 представляют собой логические блоки, которые всегда реализуются на DSP-блоках, если DSP-блоки доступны в целевом устройстве.

Ядро генератора - Графический Пользовательский Интерфе

Первая страница генератора позволяет выполнить быстрое стандартное преобразование из RGB to YCrCb или RGB to YUV, не требуя необходимости вручную вводить значения из Таблиц 2, 3, и 4. Color- Space Converter также поддерживает нестандартную реализацию конвертера. Это сделано, с помощью функции "выборочный" из меню выбора, пока произвольная конвертируемая матрица может быть преобразована к форме Уравнения 5. Первую страницу GUI показывают в рисунке 3.

Первая страница GUI показывает следующие варианты:

Пункт "выборочный" включает средства управления на странице 2 и 3 GUI, таким образом, могут быть настроены конверсионные параметры. Иначе, страницы 2 и 3 будут только показывают параметры, которые будут использоваться, чтобы выполнить выбранный стандарт.

Обрезание выходных данных и сжатие значений являются одинаковыми для каналов цвета и яркости. Чтобы установить асимметричное значение, например от 16 до 235 для Cr и Cb и 16 - 240 для Y, выберите "выборочная" для стандарта, тогда вручную изменяют обрезание и сжатие значений на странице 3.

Вышеупомянутые диапазоны характерны для 8-битовых выходов. Если используются 10-или 16- битовые выходы, то диапазоны расширяются пропорционально. Например, 16 - 240 режим для 10- битовых выходов приведет к значениям выходов в пределах от 64 - 960.

Страница 2 GUI, показанного в рисунке 4, показывает и позволяет редактирование конверсионных коэффициентов, подобных Уравнению 9, Уравнение 10, и Уравнение 11. Содержание модифицируемо только, когда пункт "выборочный" отмечен как стандарт на странице 1.

Страница 3 GUI позволяет устанавливать отсечение и фиксацию значений. Содержание доступно для редактирования, только когда "пользовательский" выбран как стандарт на странице 1.

Страница 4 GUI позволяет устанавливать длину слова для битов множителя и коэффициентов. Страница также показывает оценку ресурсов для ядра, которое будет произведено с выбранными параметрами.

Распиновка

CLK - Часы

Это – основной синхросигнал для всех регистров, SRL16/SRL32s и DSP-блоков.

SCLR- Synchronous Clear

Высокий уровень SCLR сбрасыает все выходы в ноль. Кроме того, внутренние регистры в пределах блока DSP и D-триггеров очищаются. Однако, ядро использует основанные на SRL16/SRL32 линии задержки для генерации сигналов синхронизации SYNC и PIX_EN, которые не очищаются SCLR. Это может привести к ненулевым значениям на выходах после того как сигнал SCLR сброшен, пока содержание SRL16/SRL32s не стирается. Нежелательных результатов можно избежать, если SCLR считается активным, пока SRL16/SRL32s не стираются.

CE – Clock Enable

Низкий уровень CE приостанавливает все операции в пределах ядра. Выходы удерживаются, и никакие входные сигналы не обрабатываются, за исключением сброса (SCLR имеет приоритет над CE).

R, G, B Inputs

Красные, зеленые и синие входы - шириной IWIDTH (UINT format).

Y, Cr, Cb Outputs

Для яркости и цветности, данные представлены в UINT (IWIDTH bus) формате.

H_SYNC_in, H_SYNC_in, Входы PIX_EN_in

Много видео систем требуют синхронизирующих сигналов наряду с видео потоками. Синхронизация и справедливые/позволенные сигналы могут отличить интервалы гашения / активные интервалы. Три основных видео сигнала синхронизации потока предоставляются и задерживаются ядром, таким образом, сигналы синхронизации находятся в фазе с Y, Cr, и Cb выходами. Синхронизация и включает входы, не затрагивая RGB to YCrCb конвертацию. Сбрасывание их не остановило бы обработку R, G, B потоков.

H_SYNC_out, H_SYNC_out, PIX_EN_out Outputs

Соответствующие входные сигналы приходят с задержкой, поэтому синхронизация и разрешенные выходные сигналы находятся в фазе с выходами Y, Cr и Cb, сохраняя целостность видео-потока. Сигналы синхронизации не влияют на процесс преобразования. Выводы синхронизации соединяются с соответствующими вводами через линии задержки, соответствующие задержку канала обработки RGB. Распространение синхронизации является удобным свойством для более легкой интеграции Color-Space Converter на практике с трема синхро -входами. Нежелательные входы должны иметь высокий уровень на входе, а соответствующие им выходы должны остаться не подключенными, в результате отсечетса неиспользуемая логика.

Анализ ошибок

Следующий анализ, основанный на основных принципах DSP, представляет среднеквадратическую ошибку (MSE) вычисления для преобразования из RGB в YCrCb, предполагая, что IWIDTH - размер входных данных на входах RGB, OWIDTH - размер выходных данных на выходах YCrCb, и биты CWIDTH для коэффициентов точности.

Принимая округление/квантизацию во внимание, структура, иллюстрированная на рисунке 2, осуществляет следующие уравнения:

где [ ]k обозначает округление до k битов. Архитектура содержит три возможных оператора, которые могли бы представить шум. Шум квантизации появляется при округлении данных.

  1. Данные округлены до бит MWIDTH-2 после вычисления Yraw,
  2. Данные округлены до бит OWIDTH на выходе.
  3. Если коефициенты CCOEF and DCOEF выбраны так что Cb and Cr могут превышать или быть меньше, шум отсечения появляется в общем потоке сигнала.

Прежде, чем проанализировать эффекты от шумовых источников, сначала рассмотрим входной Сигнал в Отношение Шума Квантизации (SQNR). Принятие однородно распределенной ошибки квантизации,

Первый округляющийся шумовой источник может быть фактически устранен аккуратным выбором MWIDTH. Приближая SQNR 6.02 MWIDTH [dB], интуитивно округляющийся шум может быть уменьшен, увеличивая MWIDTH. Тем не менее, MWIDTH влияет на использование ресурсов и отвечает за длину цепочки в разработке (тем самым, затрагивая максимальной скорости). Выбор MWIDTH> 18 значительно увеличил бы количество используемых множителей в проекте.

Таким образом, оптимальные значения MWIDTH в диапазоне от IWIDTH +4 до 18, не значительно увеличит объем ресурсов, но гарантирует, что шум квантования будет незначительным (по крайней мере на 20 дБ меньше, чем входной шум).

Шум Квантизации продукции

Коэффициенты СС и СD в уравнении 3 позволяют разработчикам искать компромисс квантования выходов и шума при отсечении. Фактически наличие шума зависит от вероятности статистики Cb и Cr переменных, но в целом, если СС и CD больше, чем максимальное значения, рассчитанные из уравнения 4 и 5 уравнения, выходные значения могут урезаться, представляя отсечения шума. Тем не менее, чем ниже выбраны значения СС и CD, тем хуже Cb и Cr значения будут использовать имеющиеся динамический диапазон, таким образом, внедряя больше шумов квантования. Таким образом, задача разработчика состоит в уравнении мощности квантования и отсечения шума, тщательно выбрав СС и CD зная значения Cb и Cr. Например, когда вероятность экстремальных значений цветности очень маленькое, может быть полезно увеличить значения СС и CD, так как дополнительный шум появившийся в результате случайного отсеченя меньше, чем прирост средней мощности сигнала (и, следовательно, SQNR).

Хотя количественный анализ шума графа потока сигналов, построенных на рисунке 2, возможен путем замены квантователей с соответствующими источниками AWGN, сложность при выводе формулы окончательного шума в котором рассматриваются отсечения шума, выходит за рамки этого документа. Вместо этого, Таблица 6 иллюстрирует значение шума для некоторых типичных (см. таблицу 2 на стр. 5) комбинации параметров.

Выходные Помехи Отсечения

Если коэффициенты СС и CD в уравнении 3 больше, чем максимальное значения, рассчитанные в уравнениях 4 и 5, выходные значения Cr и Cb могут стать больше (переполнение), чем максимум или меньше, чем может быть минимальное выходное значение. Если происходит переполнение HAS_CLIPPING = 0, появляются вокруг двоичные значения и существенный шум на выходе. Если HAS_CLIPPING = 1, выход значений насыщения, представляя меньше шума(рис.8).

Точно так же зажимающая логика включена в дизайн если HAS_CLAMPING=1. Использование обрыва и зажима увеличивает количество частей в проекте приблизительно в 6OWIDTH части.

Выходная Синхронизация

Задержка распространения сигнала от RGB к основным YCrCb зависит от параметризации, но не зависит от фактического значения сигналов (R, G, B h_sync_in, v_sync_in, pix_en_in) . Сбрасывая, CE приостанавливает обработку, которая может быть полезной, чтобы соответствовать задержке других компонентов обработки. Время ожидания ядра показывают в следующем кодексе:

Этот код вычисляется CLK 11 циклов для типичных случаев (если не в "пользовательском" режим отсечения и / или зажимной схемы ).

Основное Использование Ресурса

Для точной меры использования примитивов, слайсов и CLB для определенного экземпляра проверяют флажок Display Core Viewer после Generation чек бокса в генераторе ядра. Таблица 7 показывает количество триггеров и слайсов для параметров по умолчанию для разных семейств. Блоков DSP48 всегда 4. Ядро конвертера не использует блоков RAM, предназначенных IO и средств CLK.

Таблицы 8,9,10 ,11 представляют ресурсы логических структур для ядра конвертера для всех входов- выходов различных семейств и стандартов.

Тест

Проект был протестирован с использованием стандарта ISE 9.2i (J.36) с опциями по умолчанию.

ДонНТУ | Портал магистров ДонНТУ