Информационные технологииStfw.Ru 🔍

Построение функционально насыщенной и расширяемой платформы мультимедиа

🕛 20.06.2012, 10:45
Windows предоставляет обширный набор технологий, позволяющий пользователям наслаждаться видео и звуком, а разработчикам — взаимодействовать с этими технологиями через полнофункциональные API. В данной статье подробно рассматриваются оба указанных аспекта платформы мультимедиа Windows, которая была значительно улучшена как для классических приложений, так и для приложений в стиле Metro. После выпуска Windows 7 условия воспроизведения мультимедиа во многом изменились — больше внимания стало уделяться потоковой передаче, владельцы контента приложили значительные усилия, чтобы обеспечить его воспроизведение на более широком круге устройств. Одновременно с этим происходило существенное сокращение энергопотребления в режиме воспроизведения. Учитывая все эти новые возможности, которые входят в состав как Windows 8, так и Windows RT, мы старались предоставить ведущую в отрасли поддержку для пользователей и разработчиков. Автор этой статьи — Скотт Манчестер (Scott Manchester), руководитель программ в рабочей группе по платформе и технологиям мультимедиа. – Стивен
Взаимодействие с широким спектром мультимедийного контента (просмотр фильма, видеоразговор или воспроизведение музыки) является одним из наиболее распространенных и интересных занятий, для которых в настоящее время используются компьютеры. Я бы хотел немного рассказать о той работе, которую мы проделали в Windows 8, чтобы сделать доступным все разнообразие функций мультимедиа и предоставить соответствующие возможности сторонним разработчикам с помощью расширяемой платформы мультимедиа.
При разработке платформы мультимедиа Windows 8 мы руководствовались следующими тремя целями: Обеспечить максимальную производительность. Мы хотели сделать воспроизведение мультимедиа более быстрым и "отзывчивым", обеспечив полномасштабное использование всех возможностей оборудования и максимальное время работы батареи на каждом из компьютеров. Упростить разработку и расширяемость. Мы хотели создать платформу, которую можно было бы легко расширить и настроить под конкретное приложение, чтобы заложить фундамент для использования инновационных пользовательских мультимедийных приложений в среде Windows. Обеспечить условия для реализации обширного набора сценариев. Высокопроизводительная, эффективная и расширяемая платформа позволит в дальнейшем реализовать обширный диапазон приложений для работы с музыкой и видео, приложений для связи и других мультимедийных приложений.
Сосредоточившись на трех этих целях, мы начали переосмыслять принципы работы с мультимедиа на платформе Windows. Более быстрая работа с мультимедиа с повышенной скоростью отклика
Производительность — это ключевой показатель любого процесса взаимодействия с пользователем, но особенно он важен в сценариях работы с мультимедиа. Видео должно воспроизводиться в режиме реального времени, голосовая связь должна осуществляться практически без задержек. Кроме того, все эти задачи должны выполняться с минимальным расходом заряда батареи.
Мы измеряем производительность по тому времени, вычислительным ресурсам и объему памяти, которые требуются для выполнения конкретной задачи. Мы поставили перед собой цель минимизировать значения всех этих показателей. Применительно к произв��дительности мультимедиа мы сосредоточили усилия на воспроизведении звука и видео, перекодировке, кодировании и захвате. Эффективное декодирование видео
Чтобы добиться увеличения времени работы батареи или простого сокращения энергопотребления для всех сценариев использования мультимедиа, мы продолжаем сотрудничать с партнерами из отрасли производства кремниевых микросхем в целях разработки новых и ускорения существующих механизмов взаимодействия с пользователем. При использовании операционной системы Windows 8 на компьютере, сертифицированном для Windows 8, декодирование видео для распространенных форматов мультимедиа будет разгружаться на выделенную аппаратную подсистему для обработки мультимедиа. Это позволяет значительно снизить уровень использования ЦП, что, в свою очередь, обеспечивает более плавное воспроизведение видео и более длительное время работы батареи, так как выделенное оборудование осуществляет декодирование мультимедиа значительно эффективнее ЦП. В результате наблюдается улучшение во всех сценариях, где требуется декодирование видео, включая воспроизведение, перекодировку, кодирование и захват.
На следующем рисунке приведено сравнение среднего уровня использования ЦП для Windows 7 и Windows 8 во время воспроизведения видеоклипов 720p VC1/H.264 и просмотра изображения, захваченного с веб-камеры.

Помимо разгрузки видео реализована возможность улучшения захвата изображения с веб-камеры посредством перехода с API захвата DirectShow на новый, значительно более оптимизированный API захвата Windows 8 Media Foundation. Мы также улучшили программные кодировщики для контента H.264 и VC-1, чтобы кодирование с использованием ЦП (когда это имеет смысл) выполнялось быстрее и с меньшими затратами энергии. Обеспечение максимального времени работы батареи при воспроизведении звука
Другим примером повышения производительности мультимедиа в Windows 8 является максимизация времени работы батареи (или просто снижение энергопотребления) во время воспроизведения звука. В дополнение к разгрузке звукового конвейера (по аналогии с описанной выше разгрузкой видео) мы радикально улучшили конвейер воспроизведения звука, чтобы повысить эффективность его использования во время длительного воспроизведения. Благодаря пакетной обработке крупных блоков аудиоданных и выполнению всей обработки для такого блока за один проход, ЦП может оставаться в спящем режиме до 100 раз дольше (более 1 секунды по сравнению с 10 мс), что приводит к существенному увеличению времени работы батареи в режиме воспроизведения звука.
Конечно, такой подход не является оптимальным для всех сценариев, так как повышенный уровень буферизации вносит дополнительную задержку. В приведенном ниже разделе, посвященном вопросам связи, мы подробнее рассмотрим эти компромиссные решения и то, как мультимедийный стек адаптируется для обеспечения оптимальной работы в каждом из сценариев.
Разгрузка звука и видео — это всего лишь пара примеров тех способов, которыми мы пользовались для оптимизации мультимедийного стека в Windows 8, чтобы обеспечить пониженное использование ЦП и памяти, а также увеличенное время работы батареи для классических приложений и приложений в стиле Metro. Поддержка обширного набора сценариев использования мультимедиа
Высокая производительность является крайне важной характеристикой данной платформы, но не менее важными являются и те возможности, которые становятся доступными благодаря значительному росту производительности. Эти возможности в Windows 8 включают в себя поддержку современных видеоформатов, потоки связи с небольшой задержкой и простое подключение к внешним устройствам мультимедиа. Компромиссные решения платформы
Одна из проблем разработки единой платформы мультимедиа, удовлетворяющей различным сценариям, обусловлена наличием конкурирующих целей такой платформы. Например, для сценариев связи требуется небольшая задержка, а для обеспечения качества и производительности в сценариях кодирования и воспроизведения звука/видео требуется буферизация, которая ведет к увеличению задержки. В нескольких последующих разделах мы рассмотрим эти трудности в контексте некоторых сценариев, которые мы стремились реализовать в Windows 8, включая следующие: Связь (например, Skype, Lync и т. д.) Воспроизведение видео и поддержка современных форматов Автоматическая настройка ориентации видео Воспроизведение платного контента Непрерывные звуковые переходы Перенесение использования мультимедиа на дополнительные экраны Развитие возможностей мультимедиа Упрощение разработки и расширяемости
Одной общей чертой этих процессов является расширяемость, встроенная нами в платформу мультимедиа. Поскольку существует множество вариантов использования, форматов мультимедиа, кодеков, защитных механизмов и видов обработки, мы предоставили разработчикам возможность настраивать и адаптировать их предложения для создания великолепных приложений и веб-сайтов на базе Windows.
При описании сценариев использования мультимедиа в нескольких следующих разделах также рассматривается часть той работы, которую мы проделали для того, чтобы предоставить разработчикам и сторонним партнерам возможность расширять такие сценарии. Давайте подробнее остановимся на тех сценариях, на которые мы ориентировались для Windows 8. Связь
В течение последнего десятилетия наблюдался бурный рост в области использования возможностей связи в режиме реального времени на компьютерах (особенно на мобильных устройствах). Пользователи Windows используют такие службы, как Skype и Lync, для выполнения голосовых звонков и видеозвонков, длительность которых исчисляется миллиардами минут в день. По оценкам агентства TeleGeography в 2011 году общая длительность международных звонков "из Skype в Skype" (включая видеозвонки) выросла на 48 процентов и составила 145 миллиардов минут. Мы приложили значительные усилия, чтобы улучшить качество видеозвонков и голосовых звонков на всех компьютерах с Windows 8. Для достижения этой цели мы сосредоточили внимание на двух областях: Обеспечение встроенной поддержки захвата и отрисовки мультимедиа с небольшой задержкой. Небольшая задержка очень важна для приложений связи, поэтому поддержка захвата и отрисовки мультимедиа с небольшой задержкой включена в состав самой операционной системы Windows. Поддержка камер высокой четкости для улучшения качества видеосвязи. Видео высокой четкости делает общение более реальным и интересным, поэтому Windows поддерживает камеры высокой четкости. Обеспечение небольшой задержки
При общении с другим человеком вы ожидаете практически мгновенных ответов. По этой причине в общем случае системы связи стремятся минимизировать сквозное запаздывание (которое также называется задержкой). При разработке систем для воспроизведения звука и видео часто используется буферизация, которая обеспечивает защиту от искажений, вызванных пиковыми периодами обработки или сетевым трафиком, а также сокращает энергопотребление. Однако эта буферизация приводит к запаздыванию звука и видео, которая воспринимается аудиторией как задержка. При разработке Windows 8 мы спроектировали платформу мультимедиа таким образом, чтобы она поддерживала сценарии, оптимизированные как для воспроизведения, так и для возможностей связи. Инфраструктура мультимедиа позволяет переключаться между режимом воспроизведения (высокий уровень буферизации, улучшенная устойчивость к изменению условий) и режимом, оптимизированным для связи (небольшая задержка).
В соответствии со стандартом TIA/EIA 920 для обеспечения нормальной связи в режиме реального времени задержка звука в одном направлении, которую можно отнести исключительно на счет конвейера обработки мультимедиа, не должна превышать 100 мс. Учитывая этот показатель, мы разработали тестовую среду для измерения сквозной задержки конвейера, что и показано на следующей схеме:

Для получения небольшой задержки необходимо оптимизировать множество компонентов
В случае видеосвязи сквозная задержка конвейера измеряется как запаздывание при захвате видеокадра камерой, его кодировании в поддерживаемый видеоформат, передаче в потоковом режиме через сетевые интерфейсы замыкания на себя, декодировании и итоговой отрисовке на экране.
На следующем рисунке приведен результат захвата и воспроизведения звука PCM при работе конвейера мультимедиа в режиме небольшой задержки. Первый набор пиковых значений соответствует исходным произнесенным словам у передатчика, а второй набор соответствует этому же набору на приемнике. Запаздывание между этими двумя точками составляет 65 мс, что значительно ниже целевого значения в 100 мс.

Сквозная задержка конвейера для звука PCM: режим небольшой задержки
На следующей диаграмме показано сравнение задержки конвейера для режима воспроизведения и режима, оптимизированного для связи, при захвате видеокадра, его кодировании (в формат H.264), потоковой передаче, декодировании и итоговом отображении с различными разрешениями. Целевое значение общей задержки в 145 мс (в соответствии с требованием стандарта TIA/EIA 920 для нормальной связи в режиме реального времени) на диаграмме изображено зеленой линией.

Видеокадры захватываются с частотой 30 кадров в секунду и кодируются в формат H.264
В режиме воспроизведения средняя задержка конвейера составляет около 575 мс. Эта задержка необходима для плавного воспроизведения при просмотре видео, но недопустима для видеосвязи в режиме реального времени. С другой стороны, в режиме небольшой задержки измеряемая задержка значительно меньше целевого значения при каждом из рассматриваемых разрешений видео. Поддержка видеозвонков высокой четкости
Другим примером той работы, которую мы проделали для улучшения связи на компьютерах с Windows 8, является поддержка этой операционной системой камер высокой четкости. Новый класс драйверов будет прозрачно взаимодействовать с приложениями, чтобы обеспечить поддержку возможностей работы с видео высокой четкости. Кроме того, все описанные ранее способы аппаратного ускорения для декодирования видео будут использоваться и в сценариях связи.
Windows 8 предложит согласованный, высококачественный, экономичный и снабженный аппаратным ускорением процесс общения с использованием мультимедиа на компьютерах, разработанных для Windows 8. При проектировании платформы мультимедиа мы приложили значительные усилия для сокращения задержки конвейера, а благодаря добавленной поддержке камер стандарта H.264 пользователи смогут общаться с друзьями и родными посредством видео высокой четкости. Поддержка видео и звука для приложений в стиле Metro
При обеспечении собственной поддержки форматов мультимедиа для приложений в стиле Metro главной нашей задачей было предоставить пользователям и разработчикам согласованный и высококачественный процесс воспроизведения на обширном наборе форм-факторов с использованием современных форматов в наиболее распространенных сценариях, например: Развлекательные интернет-ресурсы на базе HTML5. Фильмы, снятые в домашних условиях с использованием популярных смартфонов, компактных камер и камер AVC-HD. Потоковая передача музыки, фильмов и телепрограмм из популярных служб.
В следующих таблицах приведены аудио- и видеоформаты, имеющие встроенную поддержку приложений в стиле Metro. Форматы, рекомендованные для использования приложениями в стиле Metro, отражают тесное сотрудничество с производителями оборудования, которое обеспечивает предсказуемую работу аппаратного ускорения на компьютерах различных форм-факторов и предсказуемую сквозную производительность в сценариях, отличных от воспроизведения, например при захвате, потоковой передаче и перекодировке.

Windows 8 обеспечивает отличную поддержку для формата MPEG-4, который чаще всего состоит из видео в формате H.264 и звука в формате AAC. Несколько популярных кодеков, включая Divx и Xvid, реализуют возможности, описанные в части 2 стандарта MPEG-4, поэтому многие из таких файлов прекрасно воспроизводятся в приложениях в стиле Metro. Это также справедливо и для современных MOV-файлов, которые основаны на части 2 стандарта MPEG-4, например видеоклипов, захваченных на устройствах с iOS. Сейчас стали доступны фрагментированный формат MPEG-4 и разрешения 2K/4K. Ранее мы уже говорили о воспроизведении MPEG-2 и DVD, доступном в Windows 8 Media Center.
Во время разработки Windows 7 мы довольно часто обсуждали возможности собственной поддержки кодеков в Windows и форматы, доступные благодаря расширяемости. С того момента ситуация с кодеками заметно сместилась в сторону небольшого набора хорошо продуманных и распространенных форматов, в частности формата h.264 для видео. С учетом таких факторов, как интеллектуальная собственность и поддержка оборудования, это представляется весьма разумным. Даже браузеры совершают такой переход с помощью HTML5. Но мы также понимаем, что по различным причинам люди могут предпочитать те или иные форматы, поэтому мы хотели предоставить разработчикам приложений для Windows 8 возможность использовать предпочитаемые ими форматы. Форматы, популярные в сообществе энтузиастов или у конкретных разработчиков, такие как FLAC, MKV и OGG, могут иметь собственные кодеки, упакованные в составе приложения в стиле Metro, поскольку платформа мультимедиа Windows 8 обеспечивает высокую степень расширяемости. Автоматическая настройка ориентации видео
В результате распространения функций видеозаписи в традиционных камерах, смартфонах и планшетных ПК пользователи получили возможность записывать видео, удерживая устройство как в книжной, так и в альбомной ориентации — благодаря современным сенсорным интерфейсам ограничений на единственно правильное положение больше не существует. Многие из нас сталкивались с неприятной ситуацией, когда уже при просмотре записанного видео на компьютере выяснялось, что камера была повернута набок или вверх ногами. Поскольку шаблон сканирования видео является фиксированным, видео при просмотре может иметь неправильную ориентацию.
Чтобы устранить данную проблему, при сохранении видео камеры начинают вносить метаданные ориентации в распространенные форматы файлов, такие как MP4 и ASF.

Чтобы обеспечить отличное качество просмотра самостоятельно снятых видеоклипов на компьютерах с Windows, мы внесли следующие улучшения в целях устранения описанной проблемы: Метаданные ориентации теперь поддерживаются в видео форматов MP4 и ASF (VC-1, WMV). Во время воспроизведения видео с метаданными ориентации необходимый поворот выполняется автоматически. Эскиз для видео с метаданными ориентации поворачивается автоматически. Приложения в стиле Metro с возможностями захвата видео могут считывать и записывать метаданные ориентации. Платный контент
Другой областью, которой мы уделили повышенное внимание в Windows 8, является обеспечение простого воспроизведения платного контента. Хотя изначально основная часть видеоконтента в Интернете создавалась пользователями, сейчас существенную часть видеопространства Интернета занимает "платный контент", который включает в себя приобретение фильмов в Интернете через службы предоставления потокового видео по требованию, а также телепрограммы со встроенной рекламой. Согласно IHS Screen Digest, в 2012 году в США через Интернет будет осуществлено потоковое воспроизведение 3,4 миллиарда платных фильмов, что более чем в два раза превышает аналогичный показатель за 2011 год и на миллиард превышает совокупные показатели продаж фильмов на носителях DVD и Blu-Ray.
К платному видеоконтенту предъявляются многие из тех требований, которые применяются к любому другому видеоконтенту. Однако для обеспечения высокого качества использования платного видеоконтента требуются следующие два важных компонента платформы: потоковая передача с адаптацией скорости и защита контента. Потоковая передача с адаптацией скорости
Потоковая передача с адаптацией скорости обеспечивает повышенную плавность и уменьшение времени отклика при воспроизведении видео, так как позволяет компьютеру адаптироваться к наиболее подходящей скорости в изменяющихся условиях сетевого подключения и использования ресурсов. В результате могут быть значительно улучшены характеристики времени запуска и поиска, поскольку несколько первых кадров могут предоставляться с пониженной скоростью, чтобы сократить время буферизации и отклика. При изменении состояния сети или устройства компьютер может установить более высокую или более низкую скорость, чтобы минимизировать буферизацию или повысить качество видео.
Благодаря расширяемости платформы Media Foundation Platform в Windows 8 приложения могут иметь настраиваемые источники мультимедиа и источники мультимедиа с адаптацией скорости, чтобы обеспечить поддержку новых форматов. Настраиваемые источники мультимедиа и протоколы потоковой передачи также могут использовать преимущества аппаратной разгрузки и защиты контента.
Рабочая группа по Windows Azure Media Services использует нашу модель расширяемости для построения пакета Smooth Streaming Client SDK для приложений в стиле Metro. Smooth Streaming — это инициатива корпорации Майкрософт по предоставлению высококачественного контента с переменной скоростью и реализации возможностей "видео по запросу", "прямой эфир", "линейное телевидение" и "загрузи и играй". Защита контента
Большинство интернет-служб платного видеоконтента применяют меры по его защите, так как обычно этого требуют владельцы контента (например, киностудии или телевизионные сети). Чтобы обеспечить воспроизведение защищенного контента в приложениях в стиле Metro, корпорация Майкрософт предоставляет пакет PlayReady Client SDK для служб платного контента. PlayReady поддерживает загрузку и потоковую передачу, а упомянутый выше IIS Smooth Streaming Client SDK эффективно интегрируется с PlayReady Client SDK, что позволяет службам легко обеспечивать защищенное использование потокового режима.
Нам известно, что сейчас в данной отрасли используются и другие технологии защиты контента. Как и в случае с адаптивной потоковой передачей, модель расширяемости Media Foundation разрешает третьим лицам интегрировать свои системы защиты контента со встроенным декодированием видео, поддерживающим аппаратное ускорение. Если службе требуется использовать собственный формат потоковой передачи или собственную систему защиты контента, она может интегрировать такую технологию без снижения качества декодирования или времени работы батареи.
В итоге Windows 8 предоставляет пользователю более широкий выбор служб платного контента, которые можно использовать на устройствах с Windows 8, что позволяет повысить качество потокового воспроизведения и эффективность загрузки контента и увеличить время работы батареи при просмотре платного контента в формате HD. Непрерывные звуковые переходы
Поскольку Windows 8 поддерживает множество сценариев использования мультимедиа, мы хотели, чтобы переход между этими сценариями был как можно более незаметным и плавным. Пользователи часто выполняют накладывающиеся друг на друга звуковые операции, например прослушивают музыку с помощью службы потокового воспроизведения и одновременно пытаются просмотреть видеоклип. Мы хотели обеспечить понятный и лаконичный процесс работы со звуком, который позволил бы вам легко и просто прослушивать требуемый контент в удобное для вас время.
В Windows 8 не выполняются микширование всего звукового контента и отправка итогового (часто неоднородного) потока на динамики. Вместо этого операционная система может приостанавливать поток при воспроизведении второго потока, когда это является уместным. В большинстве случаев Windows отдает предпочтение звуку, поступающему из приложения, работающего на переднем плане. При переключении приложения в фоновый режим система отключает звук соответствующего потока. В качестве примера возьмем игровое приложение — ведь вам не захочется слушать звуки игры, когда вы переключаетесь из этого приложения. Однако в некоторых случаях такой режим работы не подходит, например при прослушивании музыки в фоновом режиме во время проверки почты или просмотра веб-страниц. Чтобы реализовать данные сценарии и позволить вам прослушивать фоновую музыку в уместных для этого ситуациях, мы представили типы потоков, которые отражают тип воспроизводимого звука.
Ниже приведен список различных типов потоков вместе с примерами типов контента, предназначенных для каждого из потоков.
Категория звука
Примеры потоков
Поддерживается ли фоновое воспроизведение?
Мультимедиа с поддержкой фонового воспроизведения
Списки воспроизведения для звукового локального и потокового контента
Да
Мультимедиа только для работы на переднем плане
Фильмы, игры
Нет
Связь
Skype, VoIP, общение в Интернете
Да
Оповещения
Сигналы тревоги, уведомления о звонках
Нет
Игры
Фоновая музыка, воспроизводимая в игре
Нет
Игровые эффекты
Выстрелы, взрывы, разговоры персонажей, иные звуки, отличные от музыки
Нет
Звуковые эффекты
Звуки подтверждения нажатия кнопок, гудки, звонки
Нет
Другое
Тип звука по умолчанию, рекомендованный для всего звукового контента, воспроизведение которого в фоновом режиме не требуется.
Нет

Windows 8   Теги:

Читать IT-новости в Telegram
Информационные технологии
Мы в соцсетях ✉