Программно аппаратные средства ускорения приложений. Повышение производительности мультимедиа приложений с помощью аппаратного ускорения. Устройства безопасности и защиты данных

С определением понятия «Аппаратное ускорение» можно ознакомиться, например, в данной же статье мы постараемся ответить на этот вопрос как можно более короче, и понятнее, простому пользователю ПК, а кроме того, рассмотрим, как его отключить, и в каких случаях это может потребоваться.

Аппаратное ускорение – это способ повышения быстродействия той или иной компьютерной программы и операционной системы (ОС) в целом, основанный на перераспределении нагрузки между процессором (ЦП) и видеокартой. Т.е. задачи по обработке видео и графики перекладываются с ЦП на видеокарту, что в конечном итоге позволяет не только несколько снизить нагрузку на процессор, но и добиться прироста производительности, как отдельно взятого приложения, так и всей системы, за счёт ресурсов видеокарты.

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

Рассмотрим способ отключения аппаратного ускорения на примере флеш плеера.

Откройте в вашем браузере любую веб-страницу с флеш-анимацией или видеороликом, использующим технологию Flash, кликните по флеш-объекту правой кнопкой мыши (ПКМ), и выберите в контекстном меню пункт «Параметры» (как на скриншоте).

На этом всё, так мы отключаем ускорение для приложений.

Отключение аппаратного ускорения на уровне операционной системы не всегда возможно (опционально зависит от драйвера видеокарты), да и редко, когда его наличие является причиной ошибок или сбоев в ОС Windows, например, в Windows 7.

Чтобы выключить аппаратное ускорение в Windows, кликните ПКМ по рабочему столу, и выберите «Разрешение экрана».

Проблему медленной работы 1С ИБД можно решить аппаратно и программно. Рассмотрим более подробно каждый из способов более детально.

Во-первых, скорость работы зависит от ее версии. Например, при использовании программы локально проблем со скоростью не возникает. Проблемы, как правило, возникают при использовании сетевых версий. Существует два вида платформ для сетевой работы. Рассмотрим их особенности.

Файл-серверная версия 1С: Предприятие 7.7 использует для подключения к информационной базе данных формат файла DBF. Ее главным преимуществом является то, что она не требует для работы дополнительного программного или аппаратного обеспечения. Однако есть и существенный недостаток. Этот формат был разработан преимущественно для однопользовательских версий, поэтому при увеличении количества пользователей работа программы значительно замедляется, особенно, если кто-то из пользователей запускает процесс, осуществляющий частые запросы к БД, например, построение отчета.

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

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

SQL-версия отличается высокой масштабируемостью. Таблицы в ИБД хранятся под управлением Microsoft SQL Server, для которой время реакции программы практически не изменяется, что также изображено на графике. В 1С: Предприятии 8 реализована трехуровневая архитектура «клиент-сервер». В ней «клиент» обращается к серверу 1С, тот - к серверу БД Microsoft SQL Server, а последний - к 1С ИБД. Сервер 1С берет на себя выполнение сложных и объемных задач, после чего «клиент» получает лишь необходимую выборку. Чтобы повысить эффективность работы, необходимо установить сервера 1С и Microsoft SQL Server на разных компьютерах. Это позволит распределить нагрузку и ускорить работу программы.

Аппаратные и программные средства ускорения работы программы 1С

Скорость работы 1С: Предприятия и 1С: Бухгалтерии файл-серверной версии главным образом определяется производительностью клиентских рабочих станций, особенно той, где хранится 1С ИБД. Производительность в свою очередь определяется параметрами оперативной памяти и скоростью дисков. Первым - в большей степени. Поэтому для ускорения работы программ 1С: Предприятие можно установить Citrix Terminal Server или Microsoft Terminal Server. Последний входит в стандартную комплектацию Microsoft Windows 2003 Server. Главным преимуществом данного продукта является принцип обработки информации, что осуществляется не на компьютерах пользователей, а на Терминал сервере. Поэтому программа 1С: Предприятие на компьютерах пользователей не устанавливается, на них поставляется лишь готовая экранная форма, что напоминает работу «облачного» сервиса 1С. Использование Microsoft Windows 2003 Server позволяет снизить требования к производительности каналов связи и компьютерам пользователей. Вся нагрузка ложиться на сервер.

Citrix Terminal Server работает аналогично, с разницей в том, что позволяет использовать не только мощности сервера, но и компьютера пользователя. Преимущество использования Терминал-сервера является в сжатии передаваемой информации, что позволяет работать с 1С не только по локальной сети, но и по сети Интернет.

Организационное решение для ускорения программы 1С

Организационное решение по ускорению работы программы заключается в следующем. Условно все работающих в программе пользователей можно разделить на операционистов и аналитиков. Операционисты занимаются вводом информации и оформлением документов, а аналитики - обрабатывают имеющееся данные для анализа деятельности организации. Для операционистов очень важна быстрая реакция программы на внесенные изменения, тогда как для аналитиков актуальность данных в течение нескольких часов не играет роли.

  • Поскольку торможение программы главным образом вызывает обработка информации, особенно задним числом, поэтому можно предложить аналитикам для работы создавать архивную копию 1С ИБД на локальный диск компьютера.
  • Можно настроить ежедневное резервное копирование базы данных.
  • После построения отчета или выполнения другого объемного процесса лучше закрыть программу, а потом открыть ее снова. Это позволит высвободить память, выделенную операционной системой, и ускорить работу компьютера.
  • Тяжелые процессы, такие как открытие периода, переиндексация документации, перепроведение документов и т. д., лучше запускать непосредственно на сервере, на локальном диске которого хранится каталог с информационной базой данных.

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

Программно-аппаратная защита используется для защиты про­граммного обеспечения от несанкционированного (неавторизованного) доступа и нелегального использования. Защит­ный механизм программным образом опрашивает специальное уст­ройство, используемое в качестве ключа, и работает только в его присутствии. Таким образом, механизм программно-аппаратной за­щиты содержит две составляющие:

1) аппаратное устройство(аппаратная часть);

2) программный модуль(программная часть).

Поэтому обычно говорят о системах программно-аппаратной защиты.

Очевидно, что стоимость такого механизма превышает стоимость программной защиты, причем стоимость аппаратной части, как правило, превышает стоимость программной части. По этой причине программно-аппаратная защита считается привилегией корпоративных заказчиков, так как для индивидуального пользователя часто неприемлема с экономической точки зрения.

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

Система защиты от несанкционированного доступа к данным реализована таким образом, что осуществляет проверку легальности пользователя при работе с программным обеспечением и тем самым косвенно препятствует и незаконному использованию программы.

Кроме того, современные аппаратные устройства (ключи), помимо информации о законном пользователе, могут содержать также информацию о программном продукте. А системы программно-аппаратной защиты, кроме аутентификации пользователя, могут производить аутентификацию приложения.

Поэтому системы программно-аппаратной защиты от несанкционированного доступа могут служить в то же время и для защиты авторских прав разработчиков программ.

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

Идентификация пользователя может быть основана

· на знании некоторой секретной информации (пароль, код);

· на владении некоторым специальным предметом или устройством (магнитная карточка, электронный ключ);

· на биометрических характеристиках (отпечатки пальцев, сетчатка глаза, спектральный состав голоса и т.п.).

Системы, основанные на знании некоторой секретной информации

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

Системы, основанные на владении некоторым специальным предметом или устройством

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

Уникальный код пользователя хранится и на так называемой Proximity -карте , снабженной радиопередатчиком. Специальный считыватель постоянно излучает электромагнитную энергию. При попадании карты в электромагнитное поле, карта посылает считывателю свой код, который затем система сравнивает с эталоном.

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

Многие специалисты технологии защиты, основанные на использовании смарт-карт, считают прогрессивными, поэтому уделяют большое внимание их развитию.

Параллельно с развитием смарткарт-технологий усиленными темпами развиваются сегодня технологии, основанные на использовании электронных ключей . Такие технологии являются наиболее интересными с точки зрения защиты прав разработчиков программного обеспечения, поэтому ниже рассмотрим их подробнее.

Системы, основанные на биометрических характеристиках

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

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

Устройства считывания отпечатков пальцев идентифицируют личность по форме и числу деталей - точек начала и конца линий на пальце.

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

Устройства верификации голоса строят математическую модель вокального диапазона говорящего и используют ее для сравнения с образцом голоса (цена такого устройства колеблется от 1.000 до 1.500 долларов). Разработчики таких систем уделяют внимание решению проблеме обмана таких систем с помощью магнитофонов.

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

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

Аутентификация пользователя обычно реализуется по одной из двух схем: простая PIN -аутентификация или защищенная PIN -аутентификация. Обе схемы основаны на установлении подлинности пользователя посредством сравнения PIN -кода пользователя (PIN - Personal identification number , персональный идентификационный номер) с эталоном.

При простой PIN -аутентификации PIN -код просто посылается в ключ (смарт-карту); ключ (смарт-карта) сравнивает его с эталоном, который хранится в его (ее) памяти, и принимает решение о дальнейшей работе.

Процесс защищенной PIN -аутентификации реализуется по следующей схеме:

· защищенное приложение посылает запрос ключу (смарт-карте) на PIN -аутентификацию;

· ключ (смарт-карта) возвращает случайное 64-разрядное число;

· приложение складывает это число по модулю 2 с PIN -кодом, который ввел владелец ключа (смарт-карты), зашифровывает его DES -алгоритмом на специальном ключе аутентификации и посылает результат ключу (смарт-карте);

· ключ (смарт-карта) осуществляет обратные преобразования и сравнивает результат с тем, что хранится в его (ее) памяти.

В случае совпадения считается, что аутентификация прошла успешно и пользователь (приложение) может продолжать работу.

Электронный ключ – это некоторое физическое устройство. Электронный ключ может быть выполнен либо на основе специализированного чипа, либо на микросхемах энергонезависимой электрически перепрограммируемой памяти, либо на базе микропроцессоров.

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

Новейшие стандарты и технологии (в частности, технология подключения устройств на основе USB -шины - Universal Serial Bus ) позволяют иметь дополнительные порты в удобных и легкодоступных местах компьютера и тем самым способствуют широкому применению аппаратных устройств для защиты.

В памяти электронного ключа хранится уникальная информация. Программная часть системы защиты определяет наличие электронного ключа при запуске программы и проверяет правильность содержащейся в ключе информации.

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

n серийный номер программы;

n номер версии;

n дату выпуска (продажи) и др.

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

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

Сегодня усилия разработчиков, помимо повышения качества основных функций программного обеспечения и увеличения надежности защиты, направлены и на повышение потребительских свойств продукта: простоту установки и настройки, удобство администрирования, гибкость применения и т.п. Дистанционное перепрограммирование памяти ключа позволяет разработчику с максимальной степенью удобства для конечного пользователя сопровождать программное обеспечение. Например, вместе с новой версией продукта пользователь получает и специальный модуль, который производит модификацию поля номера версии в памяти электронного ключа. Модуль защиты всегда производит сравнение номера версии программы с соответствующим полем. Такой механизм препятствует нелегальному использованию программы: нарушитель не сможет воспользоваться незаконно полученной копией новой версии продукта без перепрограммирования памяти электронного ключа.

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

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

Электронные ключи обеспечивают также лицензирование в сетях.

Лицензия - это оговоренные при покупке программного продукта права на использование программы.

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

Традиционно эта проблема решается с помощью специальных программ - администраторов лицензий (licence manager ). Подчеркнем, что при использовании таких программ контроль за легальным использованием программного продукта возлагается на администраторов сетей и часто не защищен от обмана. Поэтому для гарантированного решения проблемы защиты авторских прав разработчиков сетевого программного обеспечения необходимо, чтобы контроль за легальным использованием продукта производил сам разработчик.

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

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

В январе 1999 года израильской компанией Aladdin Knowledge Systems была запатентована технология eToken USB (для нового поколения компьютеров с периферийной шиной USB ) на основе концептуально нового электронного ключа eToken . Электронный ключ eToken предназначен для безопасного хранения паролей, ключей шифрования, а также для защиты программного обеспечения и данных от несанкционированного использования. Устройство eToken USB представляет собой миниатюрный брелок (размер - 52 x 16 x 8 мм, вес 5 г.) с энергонезависимой (до 8 Кб) памятью, допускающей перезапись (не менее 100 тыс. раз). Ключ eToken является компромиссом между традиционным электронным ключом и смарт-картой. Для получения доступа к защищенному объекту пользователю достаточно вставить ключ eToken в USB -порт и набрать на клавиатуре личный код.

Электронный ключ eToken базируется на встроенной аппаратной системе аутентификации пользователей. Для аутентификации пользователей используется защищенная PIN -аутентификация.

Разработчику защиты предоставляется комплект разработчика - Developer ’ s Kit . В комплект разработчика входит программное обеспечение, которое позволяет организовать различные механизмы защиты.

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

Эмулирование электронного ключа - это способ взлома путем эмулирования программными или аппаратными средствами работы электронного ключа.

Эмулятор - программа, выполняющая функции, обычно реализуемые некоторым внешним устройством.

Программа-эмулятор реализована таким образом, что возвращает защищенному приложению «правильные» ответы на все обращения к электронному ключу. В результате получается электронный ключ, реализованный только на программном уровне.

Для противодействия эмуляции через точку входа рекомендуется контролировать целостность соответствующего фрагмента программы и/или зашифровать его. Специалисты рекомендуют наряду с явными обращениями к ключу реализовывать и скрытые вызовы.

Для противодействия эмуляции с помощью подмены драйвера работы с ключом специалисты также рекомендуют контролировать целостность драйвера, например, с помощью электронной цифровой подписи.

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

Интересное решение для защиты от эмуляции электронного ключа и защиты программ от взлома предлагает компания Актив. Програм­мно-аппаратный комплекс защиты Guardant Stealth использует аппаратные алгоритмы преобразования данных, серьезно усложняющие разработку эмулятора ключа. Электронные ключи Guardant Stealth содержат микроконтроллеры (прозрачные для пользователя), производящие вычисления по одному из нескольких оригинальных высоко сложных алгоритмов (ключ может содержать до 18 таких алгоритмов). Микроконтроллер возвращает защищенному приложению преобразованную с помощью аппаратного алгоритма входную информацию.

___________________________________________________________

Подробнее

1. Электронные ключи Guardant Aptus - Internet -ресурс (www . novex . ru )

2. Аппаратные алгоритмы электронных ключей - Системы программно-аппаратной защиты компании Актив. Электронные ключи Guardant Stealth . Internet- ресурс (www.novex.ru)

3. Система лицензирования NetHASP - С. Груздев «Лицензирование программного обеспечения в сетях» Internet -ресурс (www . aladdin . ru )

Архитектура процессоров Intel становится все более ориентированной на ГП, что открывает удивительные возможности для резкого повышения производительности просто за счет разгрузки обработки мультимедиа с ЦП на ГП. Существует немало инструментов, доступных разработчикам для повышения производительности мультимедиа приложений. В числе этих инструментов есть бесплатные и простые в использовании.
В этой публикации вы найдете:

  • Обзор вычислительных архитектур и текущие возможности ГП Intel
  • Реализацию аппаратного ускорения с помощью FFmpeg
  • Реализацию аппаратного ускорения с помощью Intel Media SDK или аналогичного компонента Intel Media Server Studio (в зависимости от целевой платформы)
Если вы испытываете потребность повысить производительность обработки мультимедиа, но не знаете, с чего начать, начните с FFmpeg. Измерьте производительность при программной обработке, затем просто включите аппаратное ускорение и проверьте, насколько изменилась производительность. Затем добавьте использование Intel Media SDK и снова сравнивайте при использовании разных кодеков и в разных конфигурациях.

Вычислительная архитектура: от суперскалярной до разнородной

Чтобы оценить важность развития ГП, давайте начнем с истории совершенствования архитектуры ЦП.
Вернемся в девяностые годы. Первый серьезный этап в развитии - появление суперскалярной архитектуры, в которой была достигнута высокая пропускная способность за счет параллельной обработки на уровне инструкций в пределах одного процессора.


Рисунок 1. Суперскалярная архитектура

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

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


Рисунок 2. Многоядерная архитектура

Современная разнородная архитектура

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

Другими словами, благодаря этой архитектуре мы получили ощутимые преимущества как в области производительности, так и в области потребления электроэнергии, недоступные ранее. На рис. 3 показано развитие ГП за пять последних поколений: графические процессоры приобретают все более важное значение. И при использовании h.264, и при переходе на самые современные кодеки h.265 графические процессоры предоставляют значительную вычислительную мощность, благодаря которой обработка видео с разрешением 4K и даже с более высоким разрешением не только становится возможной, но и выполняется достаточно быстро.


Рисунок 3. Развитие разнородной архитектуры

Поколения производительности ГП

На рис. 4 показано резкое повышение вычислительной мощности всего за несколько поколений, в которых графические процессоры конструктивно размещались на одном кристалле с ЦП. Если в вашем приложении используется обработка мультимедиа, необходимо задействовать разгрузку на ГП, чтобы добиться ускорения в 5 раз или более (в зависимости от возраста и конфигурации системы).


Рисунок 4. Усовершенствование обработки графики в каждом поколении процессоров Intel

Приступая к программированию ГП

На шаге 1 обычно измеряется производительность H.264, чтобы можно было в дальнейшем оценивать изменение производительности по мере доработки кода. FFmpeg часто используется для измерения производительности и для сравнения скорости при использовании аппаратного ускорения. FFmpeg - очень мощный, но при этом достаточно простой в использовании инструмент.

На шаге 2 проводится тестирование с разными кодеками и в разных конфигурациях. Можно включить аппаратное ускорение, просто заменив кодек (замените libx264 на h264_qsv) на использующий Intel Quick Sync Video .

На шаге 3 добавлено использование Intel Media SDK.

Примечание. В этой публикации рассматривается использование этих инструментов в операционной системе Windows*. Если вас интересует реализация для Linux*, см. Доступ к Intel Media Server Studio для кодеков Linux с помощью FFmpeg .

▍Кодирование и декодирование FFmpeg

Начните с H.264 (AVC), поскольку h264: libx264 является программной реализацией в FFmpeg по умолчанию и выдает высокое качество исключительно программными средствами. Создайте собственный тест, затем снова измерьте производительность, сменив кодек с libx264 на h264_qsv. Позднее мы поговорим о кодеках H.265.

Следует отметить, что при работе с видеопотоками приходится выбирать между качеством и скоростью. При более быстрой обработке практически всегда снижается качество и возрастает размер файлов. Вам придется найти собственный приемлемый уровень качества, основываясь на количестве времени, необходимого для кодирования. Существует 11 предустановок для выбора определенного сочетания качества и скорости - от «Самой быстрой» до «Самой медленной». Существует несколько алгоритмов управления скоростью данных:

  • кодирование за 1 проход с постоянной скоростью данных (set -b:v);
  • кодирование за 2 прохода с постоянной скоростью данных;
  • постоянный коэффициент скорости (CRF).
Intel Quick Sync Video поддерживает декодирование и кодирование с помощью ЦП Intel и интегрированного ГП1. Обратите внимание, что процессор Intel должен быть совместимым с Quick Sync Video и с OpenCL*. Дополнительные сведения см. в Заметках о выпуске Intel SDK для приложений OpenCL* . Поддержка декодирования и кодирования встроена в FFmpeg с помощью кодеков с суффиксом _qsv . В настоящее время Quick Sync Video поддерживается следующими кодеками: видео MPEG2, VC1 (только декодирование), H.264 и H.265.

Если вы хотите поэкспериментировать с Quick Sync Video в FFmpeg, необходимо добавить libmfx. Самый простой способ установить эту библиотеку - использовать версию libmfx , упакованную разработчиком lu_zero.
Пример кодирования с аппаратным ускорением Quick Sync Video:

Ffmpeg -I INPUT -c:v h264_qsv -preset:v faster out.qsv.mp4

FFmpeg также может использовать аппаратное ускорение при декодировании с помощью параметра -hwaccel .

Кодек h264_qsv работает очень быстро, но видно, что даже самый медленный режим работы с аппаратным ускорением значительно быстрее только программного кодирования при самом низком качестве и самой высокой скорости.
При тестировании с кодеками H.265 вам потребуется либо получить доступ к сборке с поддержкой libx265, либо собрать собственную версию согласно инструкциям в Руководстве по кодированию для FFmpeg и H.265 или в документации X265 .
Пример H.265:

Ffmpeg -I input -c:v libx265 - preset medium -x265-params crf=28 -c:a aac -strict experimental -b:a 128k output.mp4

Дополнительные сведения об использовании FFmpeg и Quick Sync Video см. в разделе Облачные вычисления Intel QuickSync Video и FFmpeg .

Использование Intel Media SDK (sample_multi_transcode)

Для дальнейшего повышения производительности при использовании FFmpeg необходимо оптимизировать приложение с помощью Intel Media SDK. Media SDK - это межплатформенный интерфейс API для разработки и оптимизации мультимедиа приложений таким образом, чтобы использовать аппаратное ускорение блоков Intel с фиксированными функциями.
  • Если ваши приложения и решения мультимедиа предназначены для клиентских устройств, используйте пакет Intel Media SDK . Его можно загрузить бесплатно .
  • Если же ваши решения предназначены для встроенных систем, серверов или облачных платформ, доступ к Intel Media SDK можно получить с помощью Intel Media Server Studio . У этого решения есть бесплатный выпуск Community Edition и два платных выпуска: Essentials и Professional (их также можно использовать для ускорения перехода на HEVC и 4K/UHD).
Чтобы начать работать с Intel Media SDK, достаточно выполнить несколько простых действий:
  1. Загрузите Intel Media SDK для целевого устройства.
  2. Загрузите учебные руководства и прочтите их, чтобы понять, как настраивать программное обеспечение с помощью SDK.
  3. Установите Intel Media SDK. Если вы используете Linux, см. руководство по установке для Linux .
  4. Загрузите образец кода SDK , чтобы поэкспериментировать с уже скомпилированными образцами приложений.
  5. Соберите и запустите приложение Video Transcoding: sample_multi_transcode
Команды аналогичны командам FFmpeg. Примеры:

VideoTranscoding_folder\_bin\x64>\sample_multi_transcode.exe -hw -i::h264 in.mpeg2 -o::h264 out.h264
VideoTranscoding_folder\_bin\x64>\sample_multi_transcode.exe -hw -i::h265 in.mpeg2 -o::h265 out.h265

Обратите внимание, что для использования аппаратного ускорения необходимо указать параметр -hw в списке аргументов.
Этот пример также работает с декодером и кодировщиком HEVC (h.265), но его необходимо устанавливать из выпуска Intel Media Server Studio Pro.
Существует множество параметров, которые можно указывать в командной строке. С помощью параметра -u можно задать целевое использование (TU), как при использовании предустановок FFmpeg. TU = 4 используется по умолчанию. На рис. 5 показаны показатели производительности при разных настройках TU.


Рисунок 5. Примеры характеристик производительности H264 по отношению к целевому использованию

Используйте другие программные средства Intel
Для дальнейшей доработки кода можно использовать средства оптимизации и профилирования Intel, в том числе

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

Широкий выбор аппаратных и программных инструментов мирового уровня делает написание и отладку программного кода устройств и систем эффективными и простыми.

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

Рис. 1. Пример программно-аппаратного комплекса разработчика, включающего полноскоростной эмулятор

Программные средства

Главным звеном в разработке программного обеспечения микроконтроллеров является High$performance Embedded Workshop – HEW (рис. 2) – высокоэффективная среда разработки ПО, универсальная для всех микроконтроллеров компании Renesas Technology . Она представляет собой графическую среду для разработки программного обеспечения с пакетом компилятора С/С++, имеющую типичный для программ такого рода интерфейс. Все элементы интерфейса среды HEW, такие как различные оконные меню, панели инструментов, строки состояния, связанные окна и контекстные локальные меню, направлены на упрощение создания и управления проектами программного обеспечения конечной продукции.

Среда разработки ПО HEW обеспечивает следующие возможности:

  • создания и редактирования проекта
  • графического конфигурирования утилит компилятора
  • сборки проекта
  • отладки
  • управления версиями.

В среде HEW имеется интегрированный симулятор с расширенными возможностями, который позволяет отлаживать код приложения даже при отсутствии соответствующих аппаратных средств. Помимо этого сборка инструментальных средств компилятора С/С++, подключаемая к среде HEW, позволяет генерировать код, оптимизированный по скорости выполнения и/или по объему занимаемой памяти.

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


Рис. 2. Интерфейс среды разработки HEW

Более того, эффективность работы увеличивается благодаря использованию единообразного интерфейса, который имеет один и тот же вид для всех микроконтроллеров и микропроцессоров компании Renesas. Причем, интерфейс можно настроить таким образом, чтобы сформировать среду, наиболее удобную для разработки конкретного приложения.

"Мастера" упрощают выполнение начальных этапов . Наличие "мастеров" генератора проекта (рис. 3), входящего в состав среды HEW, упрощает написание программы. Разработчик может прибегнуть к их помощи при задании конфигурации, выборе объектов отладки и создании стартового кода.


Рис. 3. Шаблоны и "мастера" проектов, упрощающие генерацию оптимального кода

Новые функции, помогающие оптимизировать код программы . Встроенный симулятор/отладчик имеет специальные возможности и окна для исследования кода программы, полученного в результате компиляции:

  • окно профилирования кода (позволяет отображать статистическую информацию в текстовом и графическом виде)
  • возможность анализа производительности
  • окно анализатора использования исходного кода.

Вспомогательные инструментальные средства анализа, которые помогут разобраться в функционировании и структуре программы:

  • программа-анализатор стека
  • программа для просмотра файла распределения кода и данных (*.map), генерируемого компоновщиком.

Программные средства генерации оптимизированного кода C/C++ . Инструментальные средства Renesas (компилятор, ассемблер и компоновщик) полностью соответствуют спецификации языка C++ и обратно совместимы с языком C. В них реализованы расширения, позволяющие осуществлять полноценное управление встраиваемой системой средствами самого языка C без использования ассемблерных вставок. К этим расширениям относятся:

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

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

Бесплатная демонстрационная версия пакета HEW . Гибкая методика лицензирования, установленная компанией Renesas в отношении выпускаемой ею продукции, означает, что можно загрузить бесплатную демонстрационную версию пакета HEW с компилятором и использовать ее без ограничений в течение 60 дней. Такая возможность очень полезна для тестирования эффективности скомпилированного оптимизированного кода и производительности архитектуры. По истечении этого срока размер генерируемого кода ограничивается величиной 64 кбайт, что, тем не менее, не мешает исследовать архитектуру микроконтроллеров или экспериментировать с периферийными устройствами. Демонстрационная версия среды HEW отличается от полной версии только ограничением размера компилируемого кода. Поэтому возможна генерация полноценного кода для устройств, построенных на базе младших моделей микроконтроллеров (с меньшим, чем 64 кбайт объемом ПЗУ).

Интегрированные средства отладки пакета HEW . Поддержка отладки модульных объектов обеспечивается непосредственно самой средой HEW, благодаря чему можно создавать свое приложение и отлаживать его, не покидая эту среду. "Мастер" отладочной сессии позволяет добавлять следующие объекты отладки в рабочую среду:

  • симулятор
  • внутрисхемные эмуляторы (серия E6000)
  • JTAG$эмуляторы (E10A, E8)
  • оценочные платы с резидентным монитором.

Программа Flash Development Toolkit (FDT) компании Renesas является простой в использовании утилитой для программирования встроенной флэш-памяти микроконтроллеров семейства H8. Она позволяет создавать проекты, объединяющие несколько файлов, содержащих s$записи, в один загружаемый образ, а также сохранять параметры соединения для упрощения управления процессом программирования устройств.

FDT поддерживает:

  • непосредственное USB-подключение устройств, имеющих режим загрузки через USB$порт
  • последовательный обмен на скоростях до 115 200 бод
  • шестнадцатиричный редактор образа
  • выдачу разнообразных сообщений, помогающих при работе над проектом
  • аппаратные средства.

Аппаратные средства выпускаются в различных ценовых категориях, начиная с недорогих отладочных комплектов и стартовых наборов RSK (Renesas Starter Kit).

Отладочные комплекты . Отладочные комплекты и наборы RSK (рис. 4) представляют собой недорогой вариант аппаратных средств для оценки характеристик микроконтроллеров . В составе каждого комплекта имеется собранная макетная плата и компактдиск, который содержит:

  • ознакомительную версию пакета HEW, компиляторы языков C/C++, а также программу связи отладчика с резидентным монитором
  • утилиту Flash Development Toolkit (FDT).


Рис. 4. Набор начального уровня RSK

На компакт-диске также содержится руководство по быстрому старту, в котором подробно описан процесс инсталляции ПО, а также полный комплект документации с учебными проектами и учебным программным модулем "Project Generator" для среды HEW.

Внутрисхемные эмуляторы E8 и E10A-USB . Эмуляторы E8 и E10A$USB (рис. 5 и 6 соответственно) предназначены для подключения к отладочному интерфейсу JTAG. Эти недорогие устройства обеспечивают отладку в режиме реального времени с использованием специализированных ресурсов микроконтроллера, входящего в состав отлаживаемого устройства. Эмуляторы соединяются с пользовательской системой по интерфейсу, который может использоваться как для ее отладки, так и программирования расположенной на кристалле микроконтроллера флэш-памяти.


Рис. 5. Эмулятор-отладчик E8


Рис. 6. Эмулятор-отладчик E10A-USB

В эмуляторах E8 и E10A-USB используется интерфейс USB 2.0 с функцией plug-and-play, что позволяет легко подключать их к любому ПК или ноутбуку, имеющему интерфейс USB.

Основные возможности эмуляторов:

  • до 255 программных точек останова
  • одна аппаратная точка останова по значению адреса и данных
  • сохранение информации о 4 последних переходах
  • программирование внутренней флэш-памяти
  • интегрированная поддержка отладки в среде HEW.

Внутрисхемный эмулятор E6000 . Серия инструментов E6000 компании Renesas содержит множество развитых внутрисхемных эмуляторов реального времени, каждый из которых поддерживает одно из процессорных семейств. Эти эмуляторы можно использовать в полностью автономном режиме для разработки и отладки программного обеспечения или же, подключив их с помощью специального кабеля к разрабатываемому устройству, для отладки аппаратной части. Эти мощные отладочные средства обеспечивают:

  • эмуляцию микроконтроллера в режиме реального времени без циклов ожидания или изменения хода выполнения программы
  • память эмуляции объемом от 1 до 4 Мбайт, которая может быть сопоставлена с адресным пространством целевого процессора
  • 256 точек останова
  • наличие буфера трассировки размером до 32К машинных циклов, запись в который может быть остановлена, а его содержимое считано во время выполнения программы
  • фильтрацию событий, заносимых в буфер трассировки с использованием системы Complex Event System
  • фильтрацию событий, уже занесенных в буфер трассировки, с возможностью поиска
  • автоматическое отслеживание напряжения питания отлаживаемого устройства для исключения неправильной работы эмулятора при отклонении уровня напряжения питания устройства от допустимого значения
  • большой выбор источников тактового сигнала целевого устройства
  • интегрированную поддержку отладки в среде HEW.

Заключение

Архитектура SuperH не только востребована мировыми производителями электронной техники, но в некоторых областях она стала стандартом де-факто.

В частности, ИМС семейства SH-Mobile использованы в более чем 200 моделях мобильных телефонов, а на базе ИМС с ядром SH-4 и SH-4A построена большая часть автомобильных навигационных систем. Так же, как и старшие семейства, SH-2 и SH-2A активно используются в различных устройствах и системах, например, в бытовой технике, системах вентиляции и кондиционирования и т.п. С появлением недорогих микросхем семейства SH-Tiny повысился интерес к семейству SuperH в целом. Высокая производительность, оптимальный объем памяти, отличный набор периферии и развитые коммуникационные возможности делают эти микроконтроллеры незаменимыми не только в бытовых системах и офисном оборудовании, но и в промышленных системах для управления производственными процессами. Специализированный набор коммуникационной периферии позволяют использовать микросхемы с архитектурой SuperH в системах проводной связи, например, в телефонии и в локальных компьютерных сетях.

Литература

  1. High-performance Embedded Workshop User"s Manual. – Renesas, January 2004.
  2. Renesas Starter Kit User"s Manual. – Renesas, February 2006.