ЛР5 > Преобразование видеосигнала с помощью NIOS II

Тема: Создание устройства преобразования аналогового видео в цифровое используя видеокодек ADV7181B.

Теоретические сведения

  Скачать Материалы к лабораторной работе №5.

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

Блок-схема устройства представлена на рисунке 1.

Рисунок 1. Блок-схема устройства преобразования видеосигнала.

На входной соединитель VIDEO IN стенда DE2 от внешней видеокамеры поступает композитный (полный, т.е содержащий информацию о яркостной и цветовой составляющих, а также синхронизирующие сигналы вертикальной и горизонтальной разверток) аналоговый видеосигнал стандарта PAL с чересстрочной разверткой(т.е., один кадр изображения передается двумя полукадрами – с четными и нечетными строками).

Этот видеосигнал подается на видеокодек ADV7181B.
Данное устройство преобразует аналоговый видеосигнал в цифровой, представленный в цветовом поле YCbCr 4:2:2, (яркость – цветоразностный сигнал синего – цветоразностный сигнал красного).

Обозначение «4:2:2» указывает на способ сжатия цифрового видеосигнала (представления информации о яркости и цвете в видеосигнале). Метод кодирования описывается в виде отношения трех частей, J:a:b (например 4:2:2), которые указывают на соотношение количества значений яркости пикселя и цветности пикселя в пространственной области, равной J пикселей в ширину и 2 пикселя в высоту:

  • J –
    ширина пространственной области. Обычно равна 4.
  • а –
    количество отсчетов цветности (Cr, Cb) в первой строке из J пикселей.
  • b –
    количество дополнительных отсчетов цветности (Cr, Cb) во второй строке
    из J пикселей.

На рисунке 2 показаны примеры вариантов кодирования цифрового видеосигнала.

Рисунок 2. Примеры разных способов представления цифрового видеосигнала.

С выхода видеокодека ADV7181B цифровой сигнал по последовательному каналу поступает непосредственно в ПЛИС. В ПЛИС последовательный видеопоток преобразуется в параллельный. Затем, видеосигнал перекодируется в формат YCbCr 4:4:4 (т.е., каждый пиксель изображения представляется тремя байтами – яркостной и двумя цветоразностными составляющими). После этого видеосигнал перекодируется в формат RGB. Полученный выходной видеосигнал поступает на генератор
уровней
VGA
(цифро-аналоговый преобразователь) ADV7123.

Задание 1

1. Создайте новый проект в Вашей рабочей директории. Укажите название проекта Video.

2. Для реализации всех необходимых функций с помощью утилиты SOPC Builder создайте ядро устройства преобразования видеосигнала следующей конфигурации.

Рисунок 3. Конфигурация устройства преобразования видеосигнала.

 

3. Выберите компонент Clocked Video Input из папки Video and Image Processing. Этот модуль предназначен для преобразования стандартного последовательного видеопотока в формат Avalon-ST Video. Его необходимо настроить на прием сигнала, представленного двумя полукадрами (чересстрочная развертка) с разрешением 720 х 288 пикселей. Количество цветоразностных составляющих – 2, каждая представлена 8 битами (рисунок 4).

Рисунок 4. Настройки блока CVI.

4. Настройки компонента Color Plane Sequencer показаны на рисунке 5. Этот блок преобразовывает последовательный видеопоток в параллельный.

Рисунок 5. Настройки блока CPS_442_to_Y.

5. Настройки компонента Chroma Resampler показаны на рисунке 6. Этот компонент изменяет метод кодирования цветоразностной составляющей с 4:2:2 на 4:4:4

Рисунок 6. Настройки блока alt_vip_crs_0.

6. Настройки компонента CSC представлены на рисунках 7 и 8. Этот блок преобразовывает цветовое поле сигнала YCbCr в цветовое поле RGB.

Рисунок 7. Настройки блока alt_vip_csc_0. Страница 1.

Рисунок 8. Настройки блока alt_vip_csc_0. Страница 2.

7. Настройки блока Deinterlacer показаны на рисунке 9. Этот блок объединяет два полукадра в один кадр (прогрессивная развертка) с разрешением 720 х 576 пикселей.

Рисунок 9. Настройки блока deintrlacer.

8. Настройки блока Scaler представлены на рисунке 10. Этот блок изменяет разрешение выходного сигнала с 720 х 576 пикселей на 640 х 480 пикселей (для VGA монитора). Настройки на страницах 2 и 3 для данного блока оставьте по умолчанию.

Рисунок 10. Настройки блока scaler.

9. Настройки компонента Frame Buffer представлены на рисунке 11. Блок выполняет функцию временного буфера для накопления некоторого количества видеофреймов с их дальнейшей передачей компоненту Clocked video Output. Используется для синхронизации видеопоследовательности.

Рисунок 11. Настройки блока FrameBuffer.

10. Настройки контроллера SDRAM – такие же, как и в лабораторных работах № 2 и № 3.

11. Настройка компонента
Clocked video Output представлены на рисунке 12.
Блок преобразовывает видеопоток Avalon-ST Video в формат, совместимый с VGA. Блок настроен на генерацию стандартного сигнала для VGA монитора с разрешением 640х480 пикселей.

Рисунок 12. Настройки компонента CVO.

12. Укажите базовый адрес для компонента sdram_ctrl равный 0х00800000. Укажите значение входной внешней тактовой частоты, равное 100 МГц.

13. Сохраните конфигурацию устройства преобразования видеосигнала.
Выполните команду Generate.

Задание 2

1. После успешного создания устройства преобразования видеосигнала необходимо создать файл верхнего уровня иерархии проекта.

2. Откройте файл Video.v (в папке с исходными данными). Данный файл является файлом верхнего уровня иерархии проекта, написанный на языке Verilog. Подключите разработанное устройство после строки с комментарием

//SOPC builder generated system.

3. Обратите внимание!!! Интерфейс устройства преобразования видеосигнала описывается в файле имя_устройства_inst.v в рабочей директории проекта.

4. Подключите следующие сигналы к устройству преобразования видеосигнала:

//Example instantiation for system ‘video_system’

video_system video_system_inst (

.clk_0             (OSC_100),

.overflow_from_the_CVI     (),

.reset_n             (RESET),

.underflow_from_the_CVO    (),

.vid_clk_to_the_CVI        (TD_CLK),

.vid_clk_to_the_CVO    (OSC_27),

.vid_data_from_the_CVO    (RGB),

.vid_data_to_the_CVI    (TD_DATA),

.vid_datavalid_from_the_CVO    (),

.vid_datavalid_to_the_CVI    (1’b1),

.vid_f_from_the_CVO    (),

.vid_h_from_the_CVO    (hblank),

.vid_h_sync_from_the_CVO    (hsync),

.vid_locked_to_the_CVI    (1’b1),

.vid_v_from_the_CVO    (vblank),

.vid_v_sync_from_the_CVO    (vsync),

.zs_addr_from_the_sdram_ctrl    (DRAM_ADDR),

.zs_ba_from_the_sdram_ctrl    ({DRAM_BA_1, DRAM_BA_0}),

.zs_cas_n_from_the_sdram_ctrl    (DRAM_CAS_N),

.zs_cke_from_the_sdram_ctrl    (DRAM_CKE),

.zs_cs_n_from_the_sdram_ctrl    (DRAM_CS_N),

.zs_dq_to_and_from_the_sdram_ctrl (DRAM_DQ),

.zs_dqm_from_the_sdram_ctrl    ({DRAM_UDQM, DRAM_LDQM}),

.zs_ras_n_from_the_sdram_ctrl    (DRAM_RAS_N),

.zs_we_n_from_the_sdram_ctrl    (DRAM_WE_N)

);

5. Кроме устройства преобразования видеосигнала в файле проекта подключаются следующие модули:

  • I2C_AV_Config – блок
    конфигурирования видеокодека ADV7181B по протоколу I2S;


  • PLL – блок ФАПЧ, генерирующий тактовый сигнал с частотой 100МГц для работы

    SDRAM-памяти и видеосистемы;

     


  • для формирования выходного VGA-сигнала используется следующий код:

assign VGA_R = {RGB[23:16], 2’b00};

assign VGA_G = {RGB[15:8], 2’b00};

assign VGA_B = {RGB[7:0], 2’b00};

assign VGA_HS     = ~hsync;

assign VGA_VS     = ~vsync;

assign VGA_BLANK = ~(vblank | hblank);

assign VGA_SYNC     = 1’b1;

assign VGA_CLK     = OSC_27;

Все выходные сигналы с префиксом VGA непосредственно подключаются к микросхеме генератора
уровней
для VGA-монитора ADV7123.

6. Задайте назначения контактов ввода/вывода (используя файл DE2.csv в папке с исходными данными).

7. Скомпилируйте проект.

Задание 3

1. Перед запуском программы, к стенду необходимо подключить дополнительные устройства, как показано на рисунке 13.

Рисунок 13. Подключение внешних устройств к стенду DE2.

Аналоговая камера подключается ко входу «Video In», монитор подключается ко входу «VGA Video Port».

2. Загрузите программу в ПЛИС и проверьте ее работу.

Внимание! После компиляции проекта и загрузки файла конфигурации ПЛИС, убедитесь, что переключатель SW17 находится в верхнем положении!

Переключатель SW17 выполняет аппаратный сброс системы.

Задание для самостоятельной работы.

1. Переделайте видеосистему таким образом, чтобы на VGA-мониторе воспроизводилось черно-белое изображение.

Напоминание!!! Черно-белое изображение можно получить тогда, когда все составляющие цветного сигнала (RGB) имеют одинаковое значение.