Использование аппаратного обеспечения для декодирования и загрузки JPG-изображений на 45 % быстрее в Internet Explorer 11
Internet Explorer 11 и приложения Магазина Windows в Windows 8.1 переносят компоненты процесса декодирования изображений на графическое оборудование, благодаря чему изображения загружаются на 45 % быстрее, используется на 40 % меньше памяти и увеличивается время работы батареи. В среднем, к изображениям относится большинство байтов, загружаемых сегодня в Интернете. Чтобы повысить производительность загрузки изображений в формате JPG, Internet Explorer 11 модернизировал декодирование JPG путем переноса некоторых этапов процесса декодирования непосредственно на графический процессор, где это может быть выполнено гораздо быстрее и в режиме параллельной обработки.
Формат изображений JPG
61 % байтов, загружаемых в Интернете в настоящее время, относится к изображениям, и 47 % запросов изображений относится к изображениям в формате JPG. Благодаря более эффективному использованию аппаратного обеспечения для декодирования JPG-изображений, Internet Explorer 11 теперь загружает JPG-изображения на 45 % быстрее и использует на 40 % меньше памяти по сравнению с предыдущими версиями Internet Explorer.
Чтобы разобраться в этих улучшениях в сфере производительности, сначала рассмотрим, как обычно выполняется кодирование JPG-изображений. Первый этап кодирования в формат JPG заключается в преобразовании точечного рисунка из цветового пространства RGB в цветовое пространство YCbCr.
Цвет в пространстве RGB определяется тремя компонентами: красным, зеленым и синим. Если мы разделим это изображение Национального парка Гранд-Титон на его цветовые каналы RGB, вы увидите высокий уровень детализации в каждом из каналов. Объем памяти, необходимой Internet Explorer для изображения с цветовой моделью RGB, можно рассчитать путем умножения ширины изображения на высоту изображения и на 32 бита.
Изображение Национального парка Гранд-Титон и его красный, зеленый и синий компоненты
YCbCr (часто называемое цветовым пространством YUV) определяет цветовое пространство в терминах одного компонента, представляющего яркость (Y), и двух компонентов, представляющих цветность (CbCr). Компонент яркости представляет данные о яркости цвета. Компоненты цветности содержат цветовые различия, Cb содержит разность синего и яркости, а Cr — разность красного и яркости. На следующем рисунке представлено то же изображение Национального парка Гранд-Титон, разделенное на каналы Y, Cb и Cr.
Изображение Национального парка Гранд-Титон и его каналы Y, Cb, Cr
Следующий этап процесса кодирования заключается в сжатии изображения (уменьшении его размера) с использованием процедуры сжатия с потерями под названием цветовая субдискретизация. Каналы цветности могут быть существенно сжаты, поскольку человеческий глаз более чувствителен к яркости изображения и менее чувствителен к цвету или оттенку. Например, когда вы смотрите на каналы Cb и Cr (два крайних изображения справа), вы видите, что в них содержится очень мало информации по сравнению с каналом Y. Уровень субдискретизации обычно представляется с использованием тройного соотношения, например 4:2:0. Первая часть этого соотношения представляет эталон дискретизации по горизонтали, а следующие две части представляют количество цветоразностных отсчетов в первой и второй строках этого эталона дискретизации. Обычно субдискретизация цветности выполняется на одном из трех уровней:
- 4:4:4 — данные цветности не подвергаются субдискретизации.
- 4:2:2 — объем данных цветности сокращается по горизонтали в 2 раза.
- 4:2:0 — где объем данных цветности сокращается по горизонтали и по вертикали в 2 раза.
JPG-изображение с цветовой моделью YCbCr и субдискретизацией 4:2:0 может использовать на 62,5 % меньше памяти, чем исходный точечный рисунок с цветовой моделью RGB! Большинство JPG-изображений, используемых в современном Интернете, уже находятся в режимах цветовой субдискретизации 4:2:2 или 4:2:0. Большинство средств обработки изображений будут автоматически выполнять субдискретизацию 4:2:2 или 4:2:0 при использовании возможности Save for Web (Сохранить для Интернета).
После выполнения субдискретизации к изображению также применяются процессы дискретного косинусного преобразования, дискретизации и кодирования методом Хаффмана для получения конечного закодированного изображения в формате JPG.
Более эффективное использование аппаратного обеспечения в Internet Explorer 11
Чтобы декодировать JPG-изображение, те же операции кодирования выполняются в обратном порядке. Традиционно Internet Explorer всегда декодировал JPG-изображения в точечные рисунки с цветовой моделью RGB путем выполнения всех операций декодирования непосредственно на центральном процессоре. Во время отрисовки Internet Explorer копировал этот точечный рисунок с цветовой моделью RGB на графический процессор для отрисовки.
Чтобы более эффективно использовать аппаратное обеспечение, Internet Explorer 11 теперь распределяет работу по декодированию JPG между центральным и графическим процессорами. Internet Explorer 11 декодирует изображение в формате JPG в цветовое пространство YCbCr с цветовой субдискретизацией на центральном процессоре, а затем выполняет цветовую передискретизацию и преобразование цвета из YCbCr в RGB на графическом процессоре во время отрисовки, когда это может выполняться гораздо быстрее и в режиме параллельной обработки. Этот процесс освобождает центральный процессор для выполнения других операций, поскольку загруженность центрального процессора является распространенной проблемой для современных сайтов и приложений. Кроме сокращения времени декодирования, копирование гораздо меньшего изображения в формате YCbCr на графический процессор сокращает объем памяти, которая копируется и хранится на графическом процессоре (ограниченный ресурс). Снижение нагрузки на центральный процессор и память также снижает энергопотребление и увеличивает локальность данных.
На следующей диаграмме использования центрального процессора показано количество времени, которое тратится на декодирование и отрисовку JPG-версии изображения Национального парка Гранд-Титон с цветовой моделью YCbCr в режиме цветовой субдискретизации 4:2:0 в Internet Explorer 10 в Windows 8. Декодирование изображения длится 31,9 мс, общее время отрисовки изображения — 81,5 мс.
Если мы загружаем то же JPG-изображение в Internet Explorer 11 в Windows 8.1, то можем увидеть, что время декодирования теперь составляет всего 17,9 мс, что быстрее на 44 %! Общее время отрисовки изображения теперь составляет 57,5 мс, это на 30 % быстрее.
Поскольку большинство JPG-изображений в современном Интернете закодированы в формате YCbCr, пользователи Internet Explorer 11 в Windows 8.1 автоматически почувствуют эти усовершенствования. Мы рекомендуем разработчикам убедиться, что их JPG-изображения сжаты в режимах цветовой субдискретизации 4:2:2 или 4:2:0, чтобы максимально эффективно использовать преимущества аппаратного ускорения в процессе декодирования JPG.
Подводя итоги
Благодаря более эффективному использованию аппаратного обеспечения для декодирования JPG-изображений Internet Explorer 11 повышает производительность почти каждой просматриваемой веб-страницы, сокращает энергопотребление вашего устройства и увеличивает время его работы от батареи. Установите Windows 8.1 Preview из Магазина Windows и оцените преимущества Internet Explorer 11. Как обычно, мы с нетерпением ждем ваших отзывов, которыми вы можете поделиться через средство отправки отзывов и предложений в Internet Explorer 11 или на сайте Connect.
Джатиндер Манн (Jatinder Mann), руководитель программы, Internet Explorer
Comments
- Anonymous
October 05, 2013
четко!!!