Разработки СО РАН - каталог программ

На данной странице представлен каталог программ, включенных в Фонд алгоритмов и программ Сибирского отделения РАН. Полный каталог программ и БД, включенных в Фонд, а также любые выборки по научным центрам, объединенным ученым советам и др. вы можете найти на данной странице.

2013-07-19

Назначение: Программа ЭВМ позволяет вычислить значения метрик качества видеоизображения MSE, PSNR, и SSIM для видеофрагмента, переданного по беспроводной сети, с учетом потерь целых кадров, а также определять число и номера потерянных кадров.

Область применения: Современные сети связи. Передача видеопотоков по беспроводной сети.

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

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

2.     Путём сравнения некоторого количества начальных байт заголовков закодированных кадров из обоих видеофрагментов, кадры сопоставляются друг другу. Несопоставленные кадры из оригинального фрагмента (для которых не найдено соответствия в полученном фрагменте) считаются потерянными при передаче.

3.     После определения соответствия между кадрами происходит покадровый расчёт значения какой-либо из метрик (тип метрики выбирается пользователем из трёх возможных).

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

Входные параметры:

·         Оригинальный видеофрагмент;

·         Видеофрагмент, полученный в результате передачи оригинального фрагмента по беспроводной сети;

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

Выходные параметры:

·         Значения одной из метрик (MSE, PSNR или SSIM) для каждого кадра из полученного видеофрагмента;

·         Номера кадров из оригинального видеофрагмента, которые были потеряны при передаче.

Алгоритм опубликован в работе: А. Гущин, А. Кирьянов, А. Ляхов, Е. Хоров «Быстрый алгоритм выравнивания кадров для оценки качества MPEG-4 видеопотоков, передаваемых по беспроводным сетям» // Труды конференции «Информационные технологии и системы (ИТиС-2013)», Калининград, Россия, 2013

Функциональные возможности:

·         Расчёт значений метрик качества видеоизображения MSE, PSNR, и SSIM;

·         Технология кодирования видеофрагментов: MPEG 4 Part 2;

·         Длительность видеофрагментов: до десятков минут (зависит от размера ОЗУ ЭВМ);

·         Разрешение видеофрагментов: до Full HD 1920 на 1080 пикселей.

Инструментальные средства создания:

Среда разработки MATLAB .

2013-07-19

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

Область применения: Современные сети связи. Многошаговые сети на базе IEEE 802.11. Передача видеопотоков по беспроводной сети.

Используемый алгоритм: Первым шагом моделирования является получение с помощью медиаплеера VLC и программы-анализатора трафика Wireshark pcap-файла, который содержит внутри себя IP пакеты с исходным видеопотоком и относительные временные метки, когда эти пакеты должны быть поставлены в очередь на передачу в среду. Полученный pcap-файл - это входные данные для сетевого эмулятора ns3, который моделирует канальный и физический уровни стека сетевых протоколов. Именно с помощью ns3 моделируется, собственно, передача данных по беспроводному каналу с учетом возникающих при этом эффектов: задержек при распространении сигнала, интерференции, возможных потерь пакетов. Внутри данного эмулятора также имплементируется оригинальная политика управления очередью. Выходные данные эмулятора -  pcap-файл, содержащий пакеты полученного видеопотока с временными метками, соответствующими моментам получения пакетов. В выходном pcap-файле отражены возникающие при передаче эффекты, а именно задержки и возможные потери каких-то пакетов. Для получения видеоизображения выходной pcap-файл проигрывается с помощью утилиты Tcpreplay и сохраняется как видеофайл с помощью медиаплеера VLC.

Входные параметры:

·         видеофайл для передачи по беспроводной сети;

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

Выходные параметры:

·         видеофайл, полученный в результате передачи по беспроводной сети.

Алгоритм описан в работе: Andrey Guschin, Evgeny Khorov, Anton Kiryanov, Andrey Lyakhov, Alexander Safonov. P-persistent Queue Management to Overcome Channel Failures in IEEE 802.11 Networks for Real-time Multimedia Streaming //Lecture notes in computer science. Volume 8072. 2013. 

Во Вложении прикреплен файл с примером снимка экрана при проигрывании выходного видеопотока.

Функциональные возможности:

·         Передача любых видеофайлов, воспроизведение которых поддерживает медиаплеер VLC.

·         Моделируемый стек протоколов: RTP/UDP/IP/MAC IEEE 802.11

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

·         Использование различных политик управления MAC-очередью, в том числе оригинальных политик.

·         Метод инкапсуляции видеокадров в пакеты транспортного уровня – MPEG-TS.

Рекомендуемое ограничение на интенсивность потока - менее 6 Мбит/с

Инструментальные средства создания: Среда разработки Eclipse, сетевой эмулятор ns3, медиаплеер VLC, утилита Tcpreplay, программа-анализатор трафика Wireshark 

2013-07-15

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

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

Используемый алгоритм - Программная система основана на новых алгоритмах оптимизации, включая алгоритм эволюционных вычислений, генетический алгоритм и нейронные алгоритмы. По сравнению с версией 41 системы (регистрационный номер в ФАП СО РАН - PR12008), в данную версию включены три модификации метода моделирования отжига, включая алгоритмы глобальных и локальных вычислений, что позволяет расширить множество исследуемых алгоритмов отображения.  Алгоритмы  опубликованы в монографии:  Монахов О. Г.,  Монахова Э. А. Параллельные системы с распределенной памятью: управление ресурсами и заданиями. Новосибирск: Изд-во ИВМиМГ СО РАН, 2001.  168с.

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

Инструментальные средства создания - Java, Eclipse

В приложении приведен пример визуализации работы программы.

 

2013-07-12

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

Область применения - Проектирование систем информатики, сетей связи, структур вычислительных систем.

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

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

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

Алгоритм опубликован в монографии:  Монахов О. Г.,  Монахова Э. А. Параллельные системы с распределенной памятью: структуры и организация взаимодействий. Новосибирск: Изд-во СО РАН, 2000.  242с.

Функциональные возможности -  Программа позволяет синтезировать циркулянтные сети со степенью вершин до 8 и с числом вершин до 100 тысяч.

Инструментальные средства создания - Язык: C. ОС: Windows, Linux, Unix.

В приложении приведен пример работы программы.

2013-07-11

Назначение: Анализ поведения процессов в ОС Windows. 

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

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

Область применения: Компьютерная безопасность. Защита от вредоносного ПО.

Используемый алгоритм: Анализ поведения процессов с использованием составного обработчика на основе трехслойных персептронов [1].

Основной идеей алгоритма является разделение персептрона-анализатора на несколько (4) атомарных трехслойных персептронов. Например, 17 входов персептрона были разделены на 4 группы: 3, 4, 5, 5. Каждый из таких персептронов имеет свой выход и отвечает за соответствие образа какому-либо признаку (тому признаку, за который отвечает персептрон). В качестве входов используется количество произошедших событий в системе событий определенного класса (использовано 17 типов событий по 1 на каждый вход). Каждый из 4 атомарных персептронов возвращает свой ответ, является ли процесс «своим» или нет. Например, {да, нет, да, да}. Эти ответы согласуются с помощью вектора доверия размерности 4 в финальный ответ всего анализатора как скалярное произведение вектора доверия на вектор ответов. Вектор доверия формируется на этапе обучения анализатора. Данный алгоритм был разработан с целью решения проблемы неэффективности нейронных сетей, когда подавляющее большинство входов равно нулю.         

1. Р.С. Прохоров, Методика бихевиористической классификации процессов в ОС Windows 7 // Информационные технологии и автоматизация управления - Материалы V Всероссийской научно-практической конференции студентов, аспирантов, работников образования и промышленности, Омск, Издательство ОмГТУ, стр 163-165, 23-26 апреля, 2013.        

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

Пример представляет из себя два приложения

  1. Основное приложение (IncinerateService), которое можно зарегистрировать как сервис Windows, а можно просто запускать как консольное приложение. Возможности:
    1. обучение нового агента (Learn)

      для этого администратору необходимо задать список PID'ов целевого процесса и имя нового агента (произвольная строчка, но уникальный идентификатор). когда обучаемый агент получает достаточно информации для работы (настраивается), он сохраняется в репозиторий агентов (c:/program data/incinerate).
    2. запуск обученного агента в состояние слежки за системой (Watch). Из репозитория агентов (c:/program data/incinerate) берется агент по имени из запроса. Данный агент будет искать "свой" процесс среди всех активных процессов и, например, писать в лог определенную информацию (можно задать любую модель поведения)
    3. получение информации обо всех обученных или обучающихся агентах (GetInfo)
  2. Клиентское приложение (IncinerateCmd), работающее с сервисом и подающее ему соответствующие команды (L, W, I). Взаимодействие идет через pipe. Канал открытый.
    1. incicmd -w=<имя_агента> - Запуск слежения за процессами с помощью ранее обученного агента
    2. incicmd -a=<имя_нового_агента> -p=<PID_1,PID_2,...,PID_N> - Запуск обучения агента с новым именем, который будет считать, что все указанные процессы - целевые, а все остальные - чужие.
    3. incicmd -l - Печатает список обучающихся и готовых агентов

Инструментальные средства создания: Visual C# Express

Описание содержимого репозитория

В репозитории https://github.com/Evlikat/incinerate находится полностью компилируемый под  платформу  .NET Framework 3.0+ проект Visual C# Express 2010. Подпроекты в составе:

  1. IncinerateCmd - проект-пример, клиентское приложение, описанное выше. Состоит из одного файла - main'а консольного приложения
  2. IncinerateService - проект-пример, серверное приложение, которое можно зарегистрировать как сервис Windows. Описано выше.
  3. NeuroApplication - проект, содержащий программы-эксперименты для установления эффективности работы алгоритма
  4. NeuroIncinerate - базовый проект, содержащий все необходимые алгоритмы
  5. Sample.Eventing, TraceEvent - дочерние проекты, используются для подключения к системе отслеживания событий Windows (сторонние библиотеки с открытым кодом)
  6. Incinerate - сторонний исторический проект, отношения к алгоритму не имеет (можно игнорировать)

Инструкция по использованию

  1. Запустить IncinerateService/bin/Debug/IncinerateService.exe от имени администратора. Сервис будет запущен как консольное приложение
  2. Запустить IncinerateCmd/bin/Debug/incicmd -a=ИмяНовогоАгента -p=PID'ыЦелевых процессов
  3. Сервис обучит анализатор на заданных процессах. Как только наберется 500 образцов поведения целевых процессов и 2500 образцов любых других процессов, он будет сохранен в c:/ProgramData/Incinerate/ИмяНовогоАгента.agent
  4. Получить список всех агентов с помощью команды incicmd -l
  5. Запустить в режим слежения команда (incicmd -w=ИмяНовогоАгента)
  6. Сервис будет писать в окно PID опознанного процесса. [HARD] - свидетельствует о жестком опознании, то есть высоком уровне уверенности. [SOFT] - указывает, что процесс был опознан, но анализатор "сомневается" тот ли это процесс

Замечания к использованию

  1. Если агент плохо опознает целевые процессы, то возможно его удалить и обучить заново. Повторять до желаемого уровня уверенности
  2. Агент также можно "отрегулировать" с помощью необходимого уровня доверия данному агенту. Файл IncinerateService/Core/AgentRegistry.cs содержит константы для "регулировки" агентов. После внесения изменения программу необходимо перекомпилировать