К вопросу о высоких разрешениях

Одним из результатов нашего диалога является интерес пользователей, выраженный в комментариях к статьям и электронных письмах. Эта статья является ответом на комментарии пользователей о высоких разрешениях мониторов, программной совместимости и распространенных проблемах с удобочитаемостью и разборчивостью текста в различных ситуациях. Позвольте представить Райана Хэвсона ( Ryan Haveson), программного менеджера, возглавляющего команду Desktop Graphics . Он продолжит наш диалог о графике и Windows 7.

Когда мы приступали в планированию Windows 7, мы внимательно изучили статистику использования различных мониторов и обнаружили нечто интересное (и удивительное). Мы обнаружили, что более 50% пользователей используют разрешение ниже оригинального разрешения LCD-панели. Для информации приведу таблицу, в которой представлена статистика, собранная через программу Windows Feedback Program и о которой говорила Кристина Сторм (Christina Storm) в предыдущей статье блога:

clip_image002[8]

Мы не можем сказать, по какой причине пользователи намеренно уменьшают разрешение своих мониторов, но большинство комментариев к ранее опубликованным статьям подтверждают нашу гипотезу о том, что пользователи делают это по причине того, что им неудобно читать текст на экранах с большим разрешением. Некоторые пользователи могут делать это случайно, а причиной этому может послужить неподходящий драйвер видеокарты. Но независимо от причины, по которой разрешение экрана занижено, результатом является размытый текст, которой в значительной степени увеличивает утомляемость глаз. Для LCD-мониторов размытость вызвана их архитектурными особенностями, в частности тем фактом, что панели имеют фиксированное количество пикселей. Поэтому на разрешениях, отличных от оригинального, система должна визуализировать фрагментарные пиксели, что и вызывает эффект размытия. Еще одной причиной для размытия является тот факт, что на разрешениях, отличных от оригинального, невозможно использовать технологию сглаживания ClearType, которую применяют многие (хотя далеко не все) пользователи. Следует отметить, что появлении размытости при смене разрешения менее ощутимо на CRT-мониторах, поскольку в них нет фиксированных пикселей в том смысле, в каком они присутствуют в LCD-мониторах. Однако, ввиду преимуществ в размерах и цене LCD-мониторы быстро завоевывают рынок. Еще одной проблемой мониторов, разрешение которых установлено ниже номинального, является тот факт, что многие пользователи неверно задают соотношение сторон. В результате изображение получается размытым и вытянутым. Это тоже вносит свой "вклад" в усталось глаз при длительной работе на таких мониторах.

Кроме проблем при чтении текстов, некорректные настройки монитора приводят к ухудшению качества воспроизведения мультимедиа. Поэтому даже в случаях, когда аппаратное обеспечение, имеющееся у пользователя, в силах воспроизводить HD-видео, невозможно комфортно смотреть видео в формате 720p или 1080p, которые соответствуют разрешениям 1280x720 и 1920x1080, соответственно. Монитор компьютера всегда был устройством с поддержкой высокого разрешения, но если оставить вышеописанные проблемы без внимания, то придется вечно плестись в хвосте у TV индустрии в этом отношении. На сегодняшний день по-настоящему 1080p-совместимые мониторы имеются лишь у 10% пользователей, но поскольку цены мониторы становятся все более доступными, число пользователей мониторов высокого разрешения увеличивается с каждым днем. В будущем же стоит ожидать появления контента с еще более высоким разрешением. Для информации: при просмотре на мониторе информации с плотностью 400 DPI она неотличима от печатного текста. Даже нынешнее поколение устройств для чтения электронных книг с разрешающей способностью в 170 DPI выглядит как кусок газеты за стеклом.

Желание исправить ситуацию привело к появлению в Windows инфраструктуры под названием “High DPI”. High DPI не является новой функцией Windows, но была таковой до выхода Vista. Для того, чтобы оценить функцию в Vista, щелкните правой кнопкой мыши на рабочем столе, выберите Personalize и далее “Adjust Font Size (DPI)”. Но в Windows 7 при условии, что на совместимом мониторе включена функция High DPI, пользователи получат высочайшее качество картинки и, как следствие, в значительной степени сократится усталость глаз при чтении с монитора. В нашем распоряжении есть инфраструктура, позволяющая определять оригинальное разрешение экрана, поэтому мы может в момент установки системы выбирать идеальные настройки. Тем не менее, в этом случае могут появиться проблемы с некоторыми приложениями, которые несовместимы с режимами высоких разрешений.

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

В Windows существует несколько техник, позволяющих сократить число таких проблем (к примеру, автоматическое масштабирование для приложений без поддержки высокого разрешения (по этой теме следует обратиться к блогу Грега Шехтера — Greg Schechter), но и эти техники не могут похвастаться отсутствием проблем. В случае автоматического масштабирования приложения, в которых отсутствует DPI-зависимый код, автоматически масштабируются менеджером окон. Размер шрифтов соответствует настройкам пользователя, но в результате появляется эффект размытия окон приложения. Для тех, кто попросту не может читать тексты, написанные мелким шрифтом, без масштабирования, данная функция является отличным решением. Однако, те, кто используют приложения, которые отлично масштабируются при высоких DPI или менее подвержены эффекту несовпадения размеров шрифтов, могут посчитать размытие окон, возникающее при автоматическом масштабировании, неподходящим решением. Покуда не найден способ определения операционной системой, умеет ли приложение масштабироваться в соответствии с выбранным DPI или нет, нам приходится выбирать настройку по умолчанию. Поэтому здесь снова приходится взвешивать преимущества и компромиссы, на которые приходится идти. В длительной перспективе решение кроется в создании приложений, независящих от разрешения и способных масштабироваться в соответствии с настройками пользователя, что требует поддержки в нашем инструментарии и документации. Теперь остается понять, как достичь этой цели и как обеспечить максимальное удобство при этом переходе.

Краткосрочное удовлетворение нужд пользователей против долгосрочного

Если взять, к примеру, модель телевидения с высоким разрешением, становится очевидным, что в долгосрочной перспективе пользователи желают получить высочайшую точность воспроизведения. Единственной преградой этому является невозможность определить количество DPI-независимых приложений, несмотря на тот факт, что инфраструктура для данной функции присутствует в нескольких релизах Windows (на MSDN есть статья о том, как сделать приложение DPI-независимым, датируемая 1 апрелем 2001 года). Поэтому мы столкнулись с краткосрочной неудовлетворенностью пользователей, вызванной более широким использованием функции. Мы провели тестирование более 1000 приложений с целью посмотреть на их поведение при высоких установках DPI. Полученные нами результаты приведены на графике, который иллюстрирует распределение проблем, с которыми мы столкнулись при тестировании этих приложений.

Следует отметить, что под “багом” (от англ. bug) мы понимаем любое поведение приложения, отличного от предполагаемого, поэтому в это понятие входят всё — от ошибок прорисовки UI до аварийного завершения работы. Мы распределяем серьезность багов по категориям от 1 до 4, при этом Sev 1 значит, что проблема крайне серьезна (такие проблемы приводят к завершению работы приложения и могут повлечь потерю данных или функциональности), а категория Sev 4 – проблема несущественна и ее крайне сложно воспроизвести.

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

clip_image002[6]

Мы обнаружили, что наиболее серьезной проблемой является некорретно прорисованный интерфейс. Это имеет место, как правило, на конфигурациях, где эффективное разрешение экрана составляет 800x600 и менее пикселей. На базе этой информации нам удалось разработать такую конфигурацию UI, при которой существенно снизилось количество случаев, когда пользователям требуется использовать столь низкое разрешение. Одну за одной мы изучили каждую категорию ошибок и разработали для них свои варинты решения. Но самым лучшим вариантом решения проблемы является ее предупреждение, поэтому на грядущих конференциях – PDC и WinHEC – мы уделим этому вопросу особое внимание.

Агрегированные данные против индивидуальных

Одним из факторов для нас является количество пользователей Vista/XP, использующих разрешения с высоким DPI. Согласно собранной нами статистике, сегодня функцию "high DPI" применяет весьма малый процент пользователей. Такой результат может быть интерпретирован двояко: либо их вовсе не заботит данная функция и она им не нужна, либо же она не используется поскольку и в XP, и в Vista имеется лишь ограниченная поддержка высоких DPI, а версии IE, поставляемые с этими платформами, имели существенные проблемы с масштабированием. Мы знаем, что есть пользователи, которым нравится данная функция и которые применяли ее еще до появления Vista. И снова мы должны верно интерпретировать данные, что бывает не так просто, как кажется.

Выбор времени: насколько данная функция востребована на рынке в текущий момент?

К счастью, мы не стояли перед выбором “кто появился раньше - курица или яйцо?”. Совместимые устройства уже давно присутствуют на рынке, поэтому дело лишь за операционной системой. С точки зрения программного обеспечения, большинство существующих приложений созданы с поддержкой высоких DPI (включая браузеры с улучшенными функциями масштабирования, как IE8), но все еще существует немало приложений, которые некорректно работают на высоких DPI . Следует отметить, что разрешение LCD-мониторов достигает своих пределов на номинальном DPI. Для таких мониторов нет смысла наращивать разрешение выше 1900x1200 без поддержки высоких DPI в самой ОС, потому что текст будет слишком мал для чтения. Более того, на данном разрешении можно воспроизводить видео в высочайшем на сегодняшний день качестве - 1080p. Комбинация имеющихся на рынке устройств, перспективы будущего совершенствования взаимодействия пользователя и компьютера и тот факт, что возможности устройств сегодня ограничены операционной системой, говорят о том, что время выбрано верно.

Заключение

Собранная статистика помогает нам находить пути дальнейшего улучшения Windows. В данном случае мы четко увидели, что у нас есть возможность помочь пользователям настроить их мониторы так, чтобы они могли в полной мере насладиться контентом в высоком разрешении. Мы хотим быть уверены, что уже на раннем этапе в адаптации технологии принимает участие сообщество наших ISV (независимый производитель программного обеспечения – independent software vendor), которые смогут донести преимущества наших технологий до конечных пользователей. В тоже самое время проводимое нами внутреннее тестирование и собранные отзывы критически важны для принятия решений о дальнейших шагах. Функция "High DPI" является хорошим примером необходимости участия всей экосистемы в адаптации технологии, а также отлично иллюстрирует, каким образом собранные нами отзывы и результаты внутреннего тестирования используются для определения проблем, с которыми сталкиваются пользователи, и нахождения путей их решения.