Поделиться через


Кодировка графики по протоколу удаленного рабочего стола

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

Целью кодирования и передачи графических данных является обеспечение оптимальной производительности и качества с таким же интерфейсом, как и локальное использование устройства. Этот процесс важен при использовании Виртуального рабочего стола Azure, облачных компьютеров в Windows 365 и Microsoft Dev Box, где пользователи ожидают высокого качества при удаленной работе.

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

  • Аппаратное и программное кодирование: использует ЦП или GPU для кодирования графических данных.

    • Кодирование с аппаратным ускорением. Разгружает обработку кодирования графики с ЦП на GPU на удаленной виртуальной машине, оснащенной графическим процессором. GPU обеспечивает более высокую производительность для приложений с большим объемом графики, таких как трехмерное моделирование или редактирование видео высокой четкости. Совместимые GPU также включают специализированные обработчики кодирования видео, которые RDP может использовать для кодирования содержимого сеанса.

    • Программное кодирование: использует ЦП для кодирования графических данных по низким затратам. Кодирование программного обеспечения — это профиль кодирования по умолчанию, используемый на удаленной виртуальной машине без дискретного GPU.

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

  • Адаптивная графика: настраивает качество кодирования на основе доступной пропускной способности и содержимого экрана.

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

  • Обнаружение и кэширование разностных данных: уменьшает объем передаваемых данных.

  • Поддержка нескольких кодеков: использует аппаратные декодеры на локальном устройстве. Кодеки включают в себя видеокодек Advanced Video Coding (AVC), также известный как H.264, и видеокодек С высокой эффективностью видеокодека (HEVC), также известный как H.265. Для поддержки HEVC/H.265 требуется совместимая удаленная виртуальная машина с поддержкой GPU.

  • 4:2:0 и 4:4:4 chroma: обеспечивает баланс между качеством изображения и использованием пропускной способности.

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

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

Совет

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

Смешанный режим

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

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

Остальное содержимое разделено на изображения и видео:

  • Изображения кодируются программным обеспечением с помощью графики AVC/H.264 или RemoteFX в зависимости от возможностей локального устройства. Кодировка по умолчанию для содержимого обнаруженного изображения использует AVC/H.264 при поддержке конфигурации конечной точки сеанса.

  • Видео закодировано с помощью AVC/H.264.

AVC/H.264 — это широко поддерживаемый кодек, который имеет хороший коэффициент сжатия для изображений, способен к прогрессивному кодированию и может настраивать качество на основе скорости. Он использует аппаратный декодер на локальном устройстве, который широко поддерживается на современных устройствах. Использование аппаратного декодера на локальном устройстве сокращает загрузку ЦП на локальном устройстве и обеспечивает более удобный пользовательский интерфейс. Обратитесь к производителю устройства, чтобы убедиться, что оно поддерживает аппаратное декодирование AVC/H.264.

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

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

Этот процесс описывается следующим образом:

  1. Растровое изображение кадра сначала обрабатывается путем определения того, содержит ли оно видео. Если он содержит видео, кадр отправляется в видеокодек, который в программном сценарии кодируется с помощью AVC/H.264, а затем кадр передается в графический канал.

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

  3. Если кадр нуждается в дальнейшей обработке, классификатор изображений определяет, содержит ли он текст или изображения.

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

Вместо использования двух отдельных кодеков для текста и изображений в смешанном режиме можно включить полноэкранное кодирование видео для обработки всего экранного содержимого с помощью видеокодека AVC/H.264.

Кодирование видео в полноэкранном режиме

Кодирование видео в полноэкранном режиме полезно в тех случаях, когда содержимое экрана в значительной степени основано на изображениях и используется в качестве альтернативы смешанному режиму. Кодирование видео в полноэкранном режиме обрабатывает все графические данные с помощью AVC/H.264 или HEVC/H.265. В результате он работает хуже, чем в смешанном режиме кодирования, когда содержимое экрана в основном основано на тексте.

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

Если включить аппаратное ускорение HEVC/H.265 и AVC/H.264, но HEVC/H.265 недоступен на локальном устройстве, вместо этого будет использоваться AVC/H.264. HEVC/H.265 обеспечивает сжатие данных на 25–50 % по сравнению с AVC/H.264 с тем же качеством видео или с той же скоростью.

Вы можете включить полноэкранное кодирование видео с помощью AVC/H.264 даже без ускорения GPU, но для HEVC/H.265 требуется совместимая удаленная виртуальная машина с поддержкой GPU.

Дополнительные сведения см. в статье Включение ускорения GPU для Виртуального рабочего стола Azure.

Аппаратное ускорение GPU

Виртуальный рабочий стол Azure, облачные компьютеры в Windows 365 и Microsoft Dev Box поддерживают ускорение графической обработки (GPU) в отрисовке и кодировании для повышения производительности и масштабируемости приложений с помощью протокола удаленного рабочего стола (RDP). Ускорение GPU имеет решающее значение для графических приложений, таких как графические дизайнеры, видеоредакторы, трехмерные модели, аналитики данных или специалисты по визуализации.

Существует два компонента ускорения GPU, которые работают вместе для улучшения взаимодействия с пользователем:

  • Рендеринг приложений с ускорением GPU. Используйте GPU для отрисовки графики в удаленном сеансе.

  • Кодирование кадров с ускорением GPU: RDP кодирует всю графику, отрисованную для передачи на локальное устройство. Когда часть экрана часто обновляется, она кодируется с помощью AVC/H.264.

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

Дополнительные сведения см. в статье Включение ускорения GPU.

Поддержка chroma subsampling для 4:2:0 и 4:4:4

Значение chroma определяет цветовое пространство, используемое для кодирования. По умолчанию для параметра chroma задано значение 4:2:0, что обеспечивает хороший баланс между качеством изображения и пропускной способностью сети. Чтобы улучшить качество изображения, можно увеличить значение хрома до 4:4:4, включив полноэкранное кодирование AVC/H.264 и установив для параметра Качество изображения значение Высокое с помощью групповой политики. Вам не нужно использовать ускорение GPU для изменения значения хрома, однако значение 4:4:4 chroma будет использовать большую пропускную способность для тех же кадров с использованием 4:2:0.

Дополнительные сведения см. в статье Увеличение значения chroma до 4:4:4 с помощью видеокодека Advanced Video Coding (AVC).