Проектная магистратура Университета ИТМО

Advanced Media Framework

Руководитель от корпоративного партнера: Кравченко А.А., ООО "Люксофт Профешнл"

Набор в этот проект закончен.

Ментор: Ларионов Н.Ю. (nikita.larionov@dxc.com).

Сайт проекта: https://gpuopen.com/advanced-media-framework/

При работе в этом проекте вы не сможете параллельно работать в другой компании.

Аннотация

Advanced Media Framework (AMF)—это фреймворк для разработки приложений удаленного рабочего стола, беспроводного экрана, редактированиявидео, перекодирования видео изодного формата в другой и воспроизведениявидео, стриминга. Фреймворк позволяет разработчикам задействовать ресурсы медиаускорителей для кодирования и раскодированиявидео, преобразования цветовыхпространств.

AMF SDK позволяет оптимизировать производительность приложений путемиспользования CPU-и GPU-шейдеров и аппаратных ускорителей для обработки мультимедиа. Данные средства оптимизации применимы к широкому спектру приложений, таких как приложения для гейминга и создания контента (таких как YouTube и Twitch). Программирование видеодвижков (блоки UVD—унифицированного видеодекодераи блоки VCE—движка кодирования видео высокой четкости) также является важной частью функциональности, которую AMF предоставляет разработчикам.

В данном проекте вам предстоит реализовывать некоторые сценарии использования AMF SDK в приложениях для тестирования.

Streaming SDK — спроектированный на базе AMF SDK инструмент для потоковой передачи медиаданных с удаленного сервера на клиентские устройства, а также дляуправления сервером. Инструмент используется впервую очередь для предоставления возможности облачного гейминга.

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

В данном проекте возможно работать по двум направлениям.

Направление 1: Streaming SDK Quality Assurance

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

Направление 2: AMF Testing Applications Development

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

Разработанные приложения затем внедряются в автотесты AMF. Приложения часто включают в себя работу с одним или несколькими графическими API, такими как DirectX11, Vulkan, Metal, OpenGL.

План действий

Направление 1: Streaming SDK Quality Assurance

Примеры задач:

  • Подготовка новых тестовых групп
  • Подготовка новых тестовых случаев для существующих групп
  • Автоматизация тест-кейсов с помощью Python
  • Встраивание новых тестов в систему автоматического тестирования
  • Исследование стриминговой системы на мобильных устройствах
  • Анализ и сравнение выполненных автотестов
  • Написание отчетов о проделанной работе для заказчика

При выборе данного направления вы получите:

  • Навыки ручного тестирования
  • Навыки написания тестовых сценариев
  • Навыки программирования на Python
  • Навыки работы с Jenkins
  • Навыки разработки автоматизированного тестирования на Python
  • Навыки работы с библиотеками для GUI-тестирования: PyAutoGUI и PyDirectInput
  • Навыки работы с графическими API (DirectX11, Vulkan, OpenGL)
  • Навыки работы с разверткой стримингового клиента на мобильных устройствах
  • Навыки работы со стриминговой архитектурой клиент-сервер
  • Навыки работы с документацией
  • Опыт работы с официальными документами
  • Опыт работы с реальным заказчиком
  • Знания о графических API (DirectX11, Vulkan, OpenGL)
  • Знания особенностей стриминговых систем

Направление 2: AMF Testing Applications Development

Примеры задач:

  • Реализация тестовых приложений по описанному сценарию на языке C++
  • Создание или исправление автотестов на Python с использованием созданных или уже имеющихся приложений
  • Отладка приложений, воспроизведение багов
  • Написание отчетов о проделанной работе для заказчика

При выборе данного направления вы получите:

  • Навыки программирования на C++
  • Навыки программирования приложений AMF
  • Навыки работы с графическими API (DirectX11, Vulkan, Metal, OpenGL и другими)
  • Навыки отладки приложений
  • Навыки работы с документацией
  • Навыки оптимизации приложений
  • Навыки работы с аппаратными ускорителями
  • Навыки программирования на Python
  • Навыки работы с протоколами передачи данных TCP, UDP
  • Опыт работы с официальными документами
  • Опыт работы с заказчиком
  • Знания графических API (DirectX11, Vulkan, Metal, OpenGL и других)
  • Знания особенностей кодирования и декодирования мультимедиа
  • Знания особенностей стриминга

Стек технологий

Направление 1: Streaming SDK Quality Assurance

  • Python, PyAutoGUI, PyDirectInput
  • C++
  • Java
  • Git
  • Visual Studio
  • Android Studio
  • DirectX11, Vulkan, OpenGL
  • Jenkins
  • JIRA

Направление 2: AMF Testing Applications Development

  • C++, C, Python
  • Git
  • Visual Studio
  • AMF SDK
  • DirectX11, Vulkan, Metal, OpenGL
  • OpenCL

Предварительный перечень курсов

Направление 1: Streaming SDK Quality Assurance

  • Тестирование ПО
  • Тест-дизайн
  • Программирование на Python
  • Автоматизированное тестирование на Python
  • Системы потокового вещания (Open Broadcaster Software)
  • Методы сжатия и передачи медиаданных
  • Протоколы передачи данных TCP/UDP
  • Тайм-менеджмент

Направление 2: AMF Testing Applications Development

  • Продвинутое программирование на C++
  • Программирование на Python
  • Разработка шейдеров на HLSL
  • Разработка на OpenGL
  • Разработка на DirectX
  • Разработка на Metal
  • Разработка на Vulkan
  • Основы компьютерной графики
  • Методы сжатия и передачи медиаданных

Кем станет студент по завершению магистратуры

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

  • Manual QA Engineer
  • QA Automation Engineer
  • C++ Developer

Пререквизиты (входные требования)

Направление 1: Streaming SDK Quality Assurance

  • Знание фундаментальных основ тестирования
  • Знание Python
  • Умение использовать Git
  • Опыт работы с С++ и Java
  • Иметь представление о Jenkins
  • Иметь представление о JIRA
  • Иметь представление о стриминге

Направление 2: AMF Testing Applications Development

  • Уверенное знание C++
  • Умение использовать Git
  • Базовые знания по работе сетей, протоколов TCP, UDP
  • Будет полезно знание Python
  • Будут полезны навыки работы с DirectX11, Vulkan, Metal, OpenGL, OpenCL
  • Будут полезны знания теории работы с графикой