Использование процессов Blackfin для обработки видеоизображений

№ 2’2006
PDF версия
В любой системе распределение памяти и управление потоками данных являются решающими элементами для успешной разработки мультимедиаприложений. Процессоры Blackfin имеют многоуровневую организацию памяти и параллельный периферийный интерфейс (PPI), поддерживающий механизм ПДП (DMA). При использовании в вашем приложении они могут обеспечить очень высокую эффективность системы.

Введение

В этой статье рассматриваются проблемы, связанные с обеспечением максимальной производительности процессоров ADSP в приложениях видеообработки:

  • Оптимизация работы с памятью:
    • работа с внутренней памятью;
    • работа с памятью SDRAM;
    • управление доступом к внешним данным.
  • Режимы DMA для захвата и воспроизведения видео через PPI:
    • входные режимы ITU-R-656;
    • вывод видеокадров ITU-R-656;
    • приоритет DMA и регистр управления трафиком.

Оптимизация работы с памятью

Архитектура процессоров Blackfin поддерживает иерархическую память, что позволяет программисту иметь доступ к быстрой памяти меньшего объема для размещения там часто исполняющегося кода, и к памяти большего объема для буферов данных, относящихся к видеоприложениям. Память процессоров Blackfin имеет унифицированное адресное пространство, куда входит внутренняя память первого уровня L1 (а в случае процессора ADSP-BF561 также и память второго уровня L2), синхронное динамическое ОЗУ (SDRAM) и пространство асинхронной памяти.

Работа с внутренней памятью

Память L1 работает на частоте ядра и, таким образом, имеет наименьшее время доступа по сравнению с другими областями памяти. Процессоры Blackfin® имеют отдельную память L1 для данных и программ.

Статическая (SRAM) память данных L1 состоит из однопортовых подсекций (банков); каждый такой банк содержит 4 кбайт памяти. Результатом такой организации является мультипортовое поведение при одновременном обращении к разным банкам или к одному четному и одному нечетному 32-битному слову внутри одного и того же 4-кбайтного банка.

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

Неоптимизированное распределение памяти L1
Рис. 1. Неоптимизированное распределение памяти L1

Рис. 2 показывает оптимизированное распределение памяти среди 4-кбайтных банков памяти данных. Такое распределение памяти допускает одновременный доступ к ней двух устройств генерации адреса (DAG) и контроллера DMA, за счет чего обеспечивается максимальная пропускная способность шин данных.

Оптимизированное распределение памяти L1
Рис. 2. Оптимизированное распределение памяти L1

В приложениях кодирования и декодирования видео оптимизированное распределение памяти уменьшает задержки доступа к памяти данных L1, связанные с одновременным обращением ядра и контроллера DMA.

Работа с памятью SDRAM

Контроллер SDRAM (SDC) позволяет процессору обмениваться данными с синхронной динамической памятью (SDRAM). Он способен поддерживать соединение с четырьмя внутренними банками SDRAM. Соответственно, в конечных приложениях, размещая буферы данных в разных внутренних банках, можно минимизировать задержки доступа ядра/DMA к данным. SDC может отслеживать по одной строке в каждом из четырех возможных внутренних банков. То есть переключение между четырьмя внутренними банками SDRAM будет осуществляться без каких-либо дополнительных задержек.

В приложениях обработки изображений видеокадр вводится в память при помощи PPI DMA. Из-за существенных размеров кадра вводимого изображения (например, форматы VGA, D-1 NTSC, D-1 PAL, 4CIF, 16CIF), каждый кадр должен быть захвачен в SDRAM через PPI с использованием канала DMA. Алгоритм может считывать точки блок за блоком из SDRAM и обрабатывать каждый блок по мере его поступления. Каждый последующий кадр PPI захватывает в другой буфер, пока ядро занято обработкой предыдущего. Поскольку ядро и контроллер DMA обращаются к SDRAM памяти одновременно, то для минимизации задержек доступа необходимо соответствующим образом размещать программный код, видеокадры и другие буферы в SDRAM.

Рис. 3 иллюстрирует неоптимальное распределение объектов по внутренним банкам памяти SDRAM. На рис. 3 программный код и один из буферов видеокадра помещены в нулевой внутренний банк SDRAM. Такой способ размещения порождает дополнительую задержку, потому что циклы выборки строки SDRAM происходят почти каждый системный такт. Причина — в чередовании обращений со стороны ядра (извлечение инструкций) и DMA к разным страницам одного и того же внутреннего банка SDRAM. Эта задержка может привести к ошибке переполнения (в случае захвата изображения) или недополнения (в случае вывода изображения) аппаратной очереди (FIFO) PPI. Для увеличения пропускной способности при доступе к внешней памяти необходимо размещать видео/эталонный буферы так, чтобы только один канал DMA обращался к банку SDRAM в любое заданное время.

Неоптимизированное распределение SDRAM-памяти
Рис. 3. Неоптимизированное распределение SDRAM-памяти

Рис. 4 иллюстрирует оптимизированное размещение объектов по внутренним банкам SDRAM. В этом примере распределения памяти в любой момент времени или ядро, или контроллер DMA осуществляют доступ в конкретный внутренний банк SDRAM памяти. Таким образом, задержки минимизированы, поскольку циклы выборки строк разбросаны среди сотен обращений к SDRAM.

Оптимизированное распределение SDRAM-памяти
Рис. 4. Оптимизированное распределение SDRAM-памяти

Управление доступом к внешним данным

Обращения к внешней памяти производятся более эффективно, если передача осуществляется в одном и том же направлении. При доступе к памяти SDRAM, группирование однонаправленных пересылок (то есть избежание частой смены направления) может снизить задержки передачи данных. Частые смены направлений в контроллере DMA могут привести к увеличению задержек из-за циклов записи, следующих непосредственно за чтением.

Режимы DMA для захвата и воспроизведения видео через PPI

Контроллер DMA процессора Blackfin® способен эффективно передавать данные между памятью и периферией. Разработчик имеет возможность выбрать соответствующие режимы DMA (например: режим остановки, автобуфер, или дескрипторные цепочки DMA) для передачи данных. Также, программист может выбрать приоритет DMA для конкретной периферии путем использования соответствующего канала DMA.

Порт PPI процессоров Blackfin® поддерживает режим промышленного стандарта ITU-R-656, а также режим ввода/вывода общего назначения с различными опциями внутренней и внешней синхронизации кадров. Целостное изображение может быть захвачено или отображено при помощи PPI в сочетании с соответствующим режимом DMA. Программисту следует выбрать конкретный режим DMA таким образом, чтобы изображение могло обрабатываться в реальном времени без потери кадров.

В приложениях кодирования изображения порт PPI может быть запрограммирован на работу в режиме дескрипторных цепочек DMA — для захвата кадров в два или более буферов. Ядро может обрабатывать один буфер, пока DMA заполняет другой буфер. Вы должны убедиться, что ядро и контроллер DMA не обращаются в один и тот же банк SDRAM, как уже обсуждалось выше.

Бесконфликтный доступ PPI DMA и ядра при обращении к внутренним банкам SDRAM
Рис. 5. Бесконфликтный доступ PPI DMA и ядра при обращении к внутренним банкам SDRAM

В приложениях кодирования и декодирования изображения количество инструкций, выполняемых процессором в единицу времени (выраженное в MIPS) не является постоянным. Значение показателя MIPS зависит от коэффициента сжатия, содержания захватываемого изображения и т. д. В приложениях декодирования изображения, если декодируемый кадр еще не готов, PPI может передать последний декодированный кадр повторно. Чтобы реализовать такую возможность, порт PPI может быть запрограммирован на использование в режиме DMA с остановкой. Этот режим предоставляет больший контроль над данными, чем это необходимо для простого вывода изображения.

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

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

Входные режимы ITU-R-656

Порт PPI поддерживает три входных режима для данных в формате ITU-R-656:

  • Режим «Поле целиком»
  • Режим «Активное видео»
  • Режим «Только вертикальное гашение»

В приложениях кодирования изображения видеокадр можно вводить в режиме «Активное видео», так что будут захватываться только поля 1 и 2. Хотя ITU-R-656 имеет чересстрочный (interlaced) формат, алгоритмы могут требовать, чтобы видеоданные были доступны в прогрессивном (de-interlaced) формате. Используя канал Memory DMA (MDMA), программист может объединить вместе два поля видеокадра.

Типичный формат видеокадра ITU-R-656
Рис. 6. Типичный формат видеокадра ITU-R-656

Для минимизации накладных расходов процессора на объединение полей кадра PPI может осуществлять захват с пропуском одной строки после ввода каждой строки активного видео (как показано на рис. 7). В этом случае MDMA сможет добавить поле 2 к полю 1, заполняя пустые строки.

Чередование строк в 2D-режиме DMA
Рис. 7. Чередование строк в 2D-режиме DMA

Рис. 8 иллюстрирует объединение видеополей с использованием механизма MDMA. Данные поля 2 должны быть объединены с данными поля 1. Таким образом, пропущенные строки заменяются данными поля 2. Здесь адрес источника MDMA должен содержать адрес первой строки поля 2, а адрес назначения MDMA — первой пропущенной строки. Значения регистров MDMAx_Y_MODIFY для обоих портов MDMA (источника и назначения) должны быть сконфигурированы для пропуска одной строки.

Объединение полей при помощи MDMA
Рис. 8. Объединение полей при помощи MDMA

Вывод видеокадров ITU-R-656

PPI в явном виде не обеспечивает формирования полного выходного потока ITU-R-656 со всеми необходимыми преамбулами и интервалами гашения. Однако это можно сделать путем единовременного создания полного кадра в памяти и последующей его передачи через PPI в нулевом режиме кадровой синхронизации. Видеоданные, коды гашения и управления могут быть сформированы в памяти перед началом вывода видеопотока. Информация о горизонтальном и вертикальном гашении может быть занесена в память однократно, после чего можно будет обновлять на покадровой основе только активные поля.

Гашение и активное видео в памяти
Рис. 9. Гашение и активное видео в памяти

Приоритеты каналов DMA и регистр управления трафиком

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

По умолчанию PPI использует канал с более высоким приоритетом, чем другие периферийные устройства. Если в приложении имеется несколько работающих параллельно потоков DMA, периферийные устройства с более высоким уровнем трафика или требованием готовности могут быть назначены на каналы DMA с меньшим номером (то есть большим приоритетом) при помощи регистра DMA_PERIPHERAL_MAP.

С помощью регистра управления каналом DMA программист может влиять на направление передачи данных по внутренним шинам DMA (DAB, DCB и DEB). Управление трафиком обеспечивает возможность влияния на то, как часто может меняться направление передачи по шинам данных, за счет автоматической группировки в серии однонаправленных пересылок.

Шины DAB, DCB и DEB предоставляют периферийным устройствам, работающим в режиме DMA, средства доступа к внутренней и внешней памяти при небольшом снижении пропускной способности между ядром и памятью или даже практически без него.

Контроллер DMA использует шину DAB для доступа к DMA-совместимым периферийным устройствам. Шина DCB используется для доступа к внутренней памяти. Аналогично, шина DEB используется для доступа к внешней памяти через EBIU (модуль интерфейса внешней шины).

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

На рис. 10 показаны поля регистра DMA_TC_PER. Например, рассмотрим приложение, в котором задействован MDMA вместе с PPI DMA и используется регистр управления трафиком. Если PPI DMA и MDMA одновременно требуется шина DEB (при этом направление передачи MDMA «по трафику» а PPI DMA — «против трафика»), MDMA первым получит доступ к шине DEB, даже несмотря на более высокий приоритет PPI DMA. Поскольку PPI DMA запрос осуществляется «против трафика» шины DEB, эффективный номер приоритета PPI DMA увеличится на 16, и в результате MDMA получает доступ к шине DEB. PPI DMA получит доступ к шине DEB, когда обнулится соответствующий счетчик в регистре управления трафиком (или когда трафик прекратится либо поменяет направление сам по себе).

Регистр управления трафиком DMA
Рис. 10. Регистр управления трафиком DMA

Для более подробной информации о регистре управления трафиком DMA обращайтесь к аппаратному руководству по ADSP-BF533 и ADSP-BF561.

Шинный арбитраж

При доступе к внутренней памяти L1 приоритет DMA выше, чем у ядра. По умолчанию, при доступе к внешней памяти, ядро имеет приоритет выше, чем DMA. При установке бита CDPRIO в регистре EBIU_AMGCTL, все транзакции DEB к внешней шине имеют приоритет перед обращениями ядра к внешней памяти. Программисты могут использовать этот бит, исходя из конкретных требований их приложения.

DMA и когерентность кэша

В приложении с включенным кэшем, если ядро и DMA обращаются к совместно используемому буферу, следует обеспечить когерентность кэша за счет инвалидации (invalidating)* данных в разделяемом буфере. В процессорах Blackfin содержимое кэша может быть инвалидированно при помощи системных регистров, отображенных в память. Кроме того, средства разработки VisualDSP++ 4.0 предоставляют библиотечные функции (вызываемые из C кода) для инвалидации конкретных банков кэша. Программное обеспечение может производить инвалидацию кэша каждый раз перед доступом к совместно используемому volatile буферу.

* Инвалидация — процесс придания данным, находящимся в кэше статуса недействительных. Фактически речь идет об удалении данных из кэша.

Заключение

Учитывая различные факторы, обсуждаемые в данной статье, вы можете обеспечить максимальную производительность процессоров Blackfin® в приложениях обработки видео изображения.

Таблица. Основные параметры семейства процессоров Blackfin
<img class=»wp-image-138942 size-full» src=»https://kit-e.ru/wp-content/uploads/32t1-1.png» alt=»Основные параметры семейства процессоров Blackfin®» title=»» width=»503″ height=»696″>
xosotin chelseathông tin chuyển nhượngcâu lạc bộ bóng đá arsenalbóng đá atalantabundesligacầu thủ haalandUEFAevertonxosofutebol ao vivofutemaxmulticanaisonbetbóng đá world cupbóng đá inter milantin juventusbenzemala ligaclb leicester cityMUman citymessi lionelsalahnapolineymarpsgronaldoserie atottenhamvalenciaAS ROMALeverkusenac milanmbappenapolinewcastleaston villaliverpoolfa cupreal madridpremier leagueAjaxbao bong da247EPLbarcelonabournemouthaff cupasean footballbên lề sân cỏbáo bóng đá mớibóng đá cúp thế giớitin bóng đá ViệtUEFAbáo bóng đá việt namHuyền thoại bóng đágiải ngoại hạng anhSeagametap chi bong da the gioitin bong da lutrận đấu hôm nayviệt nam bóng đátin nong bong daBóng đá nữthể thao 7m24h bóng đábóng đá hôm naythe thao ngoai hang anhtin nhanh bóng đáphòng thay đồ bóng đábóng đá phủikèo nhà cái onbetbóng đá lu 2thông tin phòng thay đồthe thao vuaapp đánh lô đềdudoanxosoxổ số giải đặc biệthôm nay xổ sốkèo đẹp hôm nayketquaxosokq xskqxsmnsoi cầu ba miềnsoi cau thong kesxkt hôm naythế giới xổ sốxổ số 24hxo.soxoso3mienxo so ba mienxoso dac bietxosodientoanxổ số dự đoánvé số chiều xổxoso ket quaxosokienthietxoso kq hôm nayxoso ktxổ số megaxổ số mới nhất hôm nayxoso truc tiepxoso ViệtSX3MIENxs dự đoánxs mien bac hom nayxs miên namxsmientrungxsmn thu 7con số may mắn hôm nayKQXS 3 miền Bắc Trung Nam Nhanhdự đoán xổ số 3 miềndò vé sốdu doan xo so hom nayket qua xo xoket qua xo so.vntrúng thưởng xo sokq xoso trực tiếpket qua xskqxs 247số miền nams0x0 mienbacxosobamien hôm naysố đẹp hôm naysố đẹp trực tuyếnnuôi số đẹpxo so hom quaxoso ketquaxstruc tiep hom nayxổ số kiến thiết trực tiếpxổ số kq hôm nayso xo kq trực tuyenkết quả xổ số miền bắc trực tiếpxo so miền namxổ số miền nam trực tiếptrực tiếp xổ số hôm nayket wa xsKQ XOSOxoso onlinexo so truc tiep hom nayxsttso mien bac trong ngàyKQXS3Msố so mien bacdu doan xo so onlinedu doan cau loxổ số kenokqxs vnKQXOSOKQXS hôm naytrực tiếp kết quả xổ số ba miềncap lo dep nhat hom naysoi cầu chuẩn hôm nayso ket qua xo soXem kết quả xổ số nhanh nhấtSX3MIENXSMB chủ nhậtKQXSMNkết quả mở giải trực tuyếnGiờ vàng chốt số OnlineĐánh Đề Con Gìdò số miền namdò vé số hôm nayso mo so debach thủ lô đẹp nhất hôm naycầu đề hôm naykết quả xổ số kiến thiết toàn quốccau dep 88xsmb rong bach kimket qua xs 2023dự đoán xổ số hàng ngàyBạch thủ đề miền BắcSoi Cầu MB thần tàisoi cau vip 247soi cầu tốtsoi cầu miễn phísoi cau mb vipxsmb hom nayxs vietlottxsmn hôm naycầu lô đẹpthống kê lô kép xổ số miền Bắcquay thử xsmnxổ số thần tàiQuay thử XSMTxổ số chiều nayxo so mien nam hom nayweb đánh lô đề trực tuyến uy tínKQXS hôm nayxsmb ngày hôm nayXSMT chủ nhậtxổ số Power 6/55KQXS A trúng roycao thủ chốt sốbảng xổ số đặc biệtsoi cầu 247 vipsoi cầu wap 666Soi cầu miễn phí 888 VIPSoi Cau Chuan MBđộc thủ desố miền bắcthần tài cho sốKết quả xổ số thần tàiXem trực tiếp xổ sốXIN SỐ THẦN TÀI THỔ ĐỊACầu lô số đẹplô đẹp vip 24hsoi cầu miễn phí 888xổ số kiến thiết chiều nayXSMN thứ 7 hàng tuầnKết quả Xổ số Hồ Chí Minhnhà cái xổ số Việt NamXổ Số Đại PhátXổ số mới nhất Hôm Nayso xo mb hom nayxxmb88quay thu mbXo so Minh ChinhXS Minh Ngọc trực tiếp hôm nayXSMN 88XSTDxs than taixổ số UY TIN NHẤTxs vietlott 88SOI CẦU SIÊU CHUẨNSoiCauVietlô đẹp hôm nay vipket qua so xo hom naykqxsmb 30 ngàydự đoán xổ số 3 miềnSoi cầu 3 càng chuẩn xácbạch thủ lônuoi lo chuanbắt lô chuẩn theo ngàykq xo-solô 3 càngnuôi lô đề siêu vipcầu Lô Xiên XSMBđề về bao nhiêuSoi cầu x3xổ số kiến thiết ngày hôm nayquay thử xsmttruc tiep kết quả sxmntrực tiếp miền bắckết quả xổ số chấm vnbảng xs đặc biệt năm 2023soi cau xsmbxổ số hà nội hôm naysxmtxsmt hôm nayxs truc tiep mbketqua xo so onlinekqxs onlinexo số hôm nayXS3MTin xs hôm nayxsmn thu2XSMN hom nayxổ số miền bắc trực tiếp hôm naySO XOxsmbsxmn hôm nay188betlink188 xo sosoi cầu vip 88lô tô việtsoi lô việtXS247xs ba miềnchốt lô đẹp nhất hôm naychốt số xsmbCHƠI LÔ TÔsoi cau mn hom naychốt lô chuẩndu doan sxmtdự đoán xổ số onlinerồng bạch kim chốt 3 càng miễn phí hôm naythống kê lô gan miền bắcdàn đề lôCầu Kèo Đặc Biệtchốt cầu may mắnkết quả xổ số miền bắc hômSoi cầu vàng 777thẻ bài onlinedu doan mn 888soi cầu miền nam vipsoi cầu mt vipdàn de hôm nay7 cao thủ chốt sốsoi cau mien phi 7777 cao thủ chốt số nức tiếng3 càng miền bắcrồng bạch kim 777dàn de bất bạion newsddxsmn188betw88w88789bettf88sin88suvipsunwintf88five8812betsv88vn88Top 10 nhà cái uy tínsky88iwinlucky88nhacaisin88oxbetm88vn88w88789betiwinf8betrio66rio66lucky88oxbetvn88188bet789betMay-88five88one88sin88bk88xbetoxbetMU88188BETSV88RIO66ONBET88188betM88M88SV88Jun-68Jun-88one88iwinv9betw388OXBETw388w388onbetonbetonbetonbet88onbet88onbet88onbet88onbetonbetonbetonbetqh88mu88Nhà cái uy tínpog79vp777vp777vipbetvipbetuk88uk88typhu88typhu88tk88tk88sm66sm66me88me888live8live8livesm66me88win798livesm66me88win79pog79pog79vp777vp777uk88uk88tk88tk88luck8luck8kingbet86kingbet86k188k188hr99hr99123b8xbetvnvipbetsv66zbettaisunwin-vntyphu88vn138vwinvwinvi68ee881xbetrio66zbetvn138i9betvipfi88clubcf68onbet88ee88typhu88onbetonbetkhuyenmai12bet-moblie12betmoblietaimienphi247vi68clupcf68clupvipbeti9betqh88onb123onbefsoi cầunổ hũbắn cáđá gàđá gàgame bàicasinosoi cầuxóc đĩagame bàigiải mã giấc mơbầu cuaslot gamecasinonổ hủdàn đềBắn cácasinodàn đềnổ hũtài xỉuslot gamecasinobắn cáđá gàgame bàithể thaogame bàisoi cầukqsssoi cầucờ tướngbắn cágame bàixóc đĩaAG百家乐AG百家乐AG真人AG真人爱游戏华体会华体会im体育kok体育开云体育开云体育开云体育乐鱼体育乐鱼体育欧宝体育ob体育亚博体育亚博体育亚博体育亚博体育亚博体育亚博体育开云体育开云体育棋牌棋牌沙巴体育买球平台新葡京娱乐开云体育mu88qh88
Литература
  1. ADSP-BF533 Blackfin Processor Hardware Reference. Revision 3.1 May 2005. Analog Devices, Inc.
  2. ADSP-BF561 Blackfin Processor Hardware Reference. Revision 1.0, July 2005. Analog Devices, Inc.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *