SysElegance Research Lab


Адаптивная графика в протоколе RDP 8 (RemoteFX)


Page URL:
http://syselegance.ru/ru/technologies/research/rdp8_remotefx_adaptive_graphics.php
Copyright:
© 2003-2017 SysElegance Ltd. All rights reserved.

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

Рендеринг на стороне сервера.

В Windows Server 2012 и Windows 8, полный локальный рабочий стол сначала составляется и визуализируется на хосте в удаленной сессии, а затем полученное изображение кодируется и отправляется с помощью протокола RDP 8 (RemoteFX). Иными словами, в RDP 8 (RemoteFX), рендеринг полностью происходит на стороне сервера. В результате, все составляющие рабочего стола Windows 8, также как и все пользовательские приложения постоянно отправляются в самом высоком качестве в 32 бита на пиксель (BPP). Чтобы обеспечить высокое качество графики при приемлемых затратах на кодирование и требованиях к пропускной способности сети, кадровая частота в удаленной сессии составляет 30 кадров/сек. (FPS).

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

Структура рабочего стола Windows Server 2012 и Windows 8 оптимизирована для визуализации на стороне сервера. Кроме того, протокол RDP 8 (RemoteFX) использует множество методов, имеющихся в более ранних версиях, таких, как кэширование или обнаружение изменений в определенной области экрана. Другие нововведения касаются усовершенствования кодирования графических изображений и его способности адаптироваться к условиям среды. В следующих разделах мы обсудим, что нового появилось в адаптивной графике протокола RDP 8 (RemoteFX).

Растровое кодирование, адаптирующееся к типу контента.

Одним из важных аспектов адаптивной графики RDP 8 (RemoteFX) является то, что мы можем использовать многочисленные растровые кодеки, эффективные для кодирования конкретных типов контента.

В предыдущей версии Remote Desktop Protocol (RDP), после открытия удаленной сессии для кодирования всех растровых изображений использовался только один кодек (лучший кодек для клиента \ сервера из возможных).

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

- текстовое содержимое - изображение

Текст является наиболее распространенным типом контента в Windows, поэтому решающее значение имеет поддержка кодека, который является эффективным для текста. Протокол RDP 8 (RemoteFX) поддерживает новый кодек, предназначенный для кодирования текстового содержимого с высокой степенью сжатия и высоким качеством.

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

По оси Y в следующей диаграмме показана степень сжатия (отношение несжатого \ сжатого). Высший показатель означает лучшее сжатие. Например, в сценарии "Knowledge Worker", при использовании кодека RDP7, общий коэффициент сжатия 400:1, в то время как при использовании кодека RDP 8 (RemoteFX) текст на тех же условиях повышается степень сжатия до 500:1.

Для видео контента, используется кодек H.264, поддерживаемый в Windows 8. Для натурального изображения используется прогрессивное кодирование, которое может пошагово улучшать качество картинки.

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

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

Прогрессивный рендеринг в RDP 8 (RemoteFX), адаптрующийся к пропускной способности сети

Протокол RDP 8 (RemoteFX) поддерживает новый кодек, который может кодировать растровые изображения последовательно. Он также известен как "Прогрессивная визуализация протокола RDP 8 (RemoteFX)". Это означает, что изображения могут быть закодированы и отправлены в несколько этапов, а качество изображения становится все более четким на каждом из них.

В предыдущих версиях RDP, когда пропускная способность сети была ограничена, пользовательская сессия могла временно "подвиснуть" из-за большого кадра, который блокировал дальнейшие обновления в течение некоторого времени.

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

Следующие изображения иллюстрируют фон рабочего стола, который кодируется постепенно в 4 этапа. В этом примере, первый шаг сжатия изображения в 77 раз. Следующие три шага постепенно повышают качество. Последний шаг, который генерирует изображение высочайшего качества, сжат в 15 раз от общего объема.

Стек адаптивного кодирования с регулировкой частоты кадров

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

Во-первых, RDP 8 (RemoteFX) использует прогрессивное кодирование, регулируя качество каждого кадра в соответствии с доступной пропускной способностью сети. В локальной сети, при наличии достаточной пропускной способности, каждый кадр кодируется с высоким качеством и минимальными затратами на кодирование. В WAN, когда существует возможность перегрузки сети, качество изображения снижается для использования меньшей полосы пропускания с сохранением высокой частоты кадров. Иными словами, качество изображения адаптируется к доступной пропускной способности для каждого кадра.

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

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

В-третьих, после выбора оптимального стека, если есть ограничения, которые мешают протоколу RDP 8 (RemoteFX) достичь заданной частоты кадров, частота динамически уменьшается, чтобы иметь возможность отправлять клиенту самые последние кадры. Например, в Windows 7 просмотр содержимого каталога в WAN может привести к эффекту "зависания" удаленной сессии. Теперь же, в тех же условиях, отображается только финальный кадр.

Последнее, но не менее важное, - в дополнение к сессионной конфигурации, RDP 8 (RemoteFX) также рассчитывает время кодирования на одного пользователя удаленной сессии в сервисе Fair Share CPU Scheduling. Таким образом одна пользовательская сессия на сервере не потребляет ресурсы других пользователей на этом сервере.

Улучшения кэширования

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

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

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

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

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

Настройка адаптивной графики протокола RDP 8 (RemoteFX)

В дополнение к тому, что протокол RDP 8 (RemoteFX) адаптируется к условиям среды, он также поддерживает два параметра групповой политики, которые дают администраторам возможность вручную выбрать наилучшую конфигурацию для своего сценария. Обе политики находятся в "ComputerConfiguration \ AdministrativeTemplates \ WindowsComponents \ Remote Desktop Services \ Remote Desktop Session Host \ Remote Desktop Session Environment".

Первый параметр политики - "Настройка качества изображения для адаптивной графики RDP 8 (RemoteFX)". Этот параметр политики определяет качество изображения для удаленного сеанса. Администраторы могут использовать эту опцию, чтобы выбрать оптимальный баланс между используемой полосой пропускания сети и качеством графики. Доступны варианты "Средний" (по умолчанию), "Высокий", и "Без потерь". "Среднее" качество создает наименьшей трафик. "Высокое" качество - повышается качество изображения с умеренным трафиком. "Без потерь" - использует кодирование без потерь, оставляя полную сохранность изображений, но создает значительно больший трафик.

Второй параметр политики - "Настройка адаптивной графики RDP 8 (RemoteFX)." Этот параметр политики позволяет администратору выбрать конфигурацию, оптимальную по потребляемым вычислительным ресурсам или по создаваемому трафику. Как уже говорилось в разделе "Адаптивное кодирование регулирует стек и кадр", протокол RDP 8 (RemoteFX) по-умолчанию выбирает наилучшую конфигурацию во время выполнения и может динамически переключаться между конфигурациями в зависимости от параметров сети.

Выводы

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

В статье использовались материалы из блога команды разработчиков Microsoft Remote Desktop Services.