Оптимизация аудио и видео в AccentOS VDI¶
Оптимизация аудио/видео трафика в реальном времени требуется, поскольку данные виды трафика часто занимают значительную долю из общей полосы, выделяемой сетью на пользователей.
Для обеспечения одновременной работы большого количества пользователей необходимо оптимизировать все виды трафика любыми имеющимися способами, в частности:
- исключения ситуаций с переполнением канала связи и потерей пакетов. Данная проблема решается за счет асинхронной передачи и автоматического регулирования объема передаваемых данных. Терминальный протокол реализован таким образом, что очередной кадр не будет обработан и отправлен пока от получателя не придет подтверждение, что предыдущий кадр обработан.
- передачи обновлений только при накоплении определенного объема изменений. Данная проблема решается за счет асинхронной передачи и автоматического определения минимума изменений, после чего начнется его обработка и передача. При этом проверяется и максимально допустимое время, после которого кадр будет отправлен если произошло хотя бы какое-то изменение.
- снижения взрывного трафика за счет кеширования от других процессов, особенно при загрузке при запуске ВМ. Данная проблема решается за счет кеширования образов ВМ, изменений ВМ на локальных дисках, чтобы не загружать сеть передачи данных.
- уменьшения объема передаваемых данных за счет кеширования. Данная проблема решается за счет использования буферов с кешем передаваемых блоков информации. Это позволяет уменьшить трафик при старте, т.к. начальный буфер сразу дает уменьшение трафика и далее в процессе работы, когда в кеше сохраняется наиболее часто передаваемая информация.
- эффективных кодеков, повышающих компрессию при сохранении визуально воспринимаемого качества изображений. Данная проблема решается за счет компрессии и предварительной фильтрации поступающей аудио/видео информации с помощью фильтров и эффективных кодеков, что помогает уменьшать трафик без существенного увеличения нагрузки на процессор.
- уменьшение времени задержки и уменьшение взрывного трафика за счет распараллеливания и конвейеризации данных на передающей стороне. Данная проблема решается за счет использования многопоточночности, использования нескольких ядер для разных задач, передача данных без ожидания завершения компрессии всего кадра.