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
- Будут полезны знания теории работы с графикой