Облачные игры, предполагающие возможность играть в видеоигры удаленно из облака, стали свидетелями беспрецедентного роста во время блокировок и нехватки игрового оборудования, которые произошли в разгар пандемии COVID-19. Сегодня растущая индустрия охватывает глобальный рынок стоимостью 6 миллиардов долларов и более 23 миллионов игроков по всему миру.
Однако синхронизация между устройствами остается постоянной проблемой в облачных играх и в более широкой области сетевых технологий. В облачных играх видео, аудио и тактильная обратная связь передаются из одного центрального источника на несколько устройств, таких как экран игрока и контроллер, которые обычно работают в разных сетях. Эти сети не синхронизированы, что приводит к задержке между этими двумя отдельными потоками. Игрок может увидеть, что что-то происходит на экране, а затем через полсекунды услышать это на своем контроллере.
Вдохновленные этой проблемой, ученые из MIT и Microsoft Research применили уникальный подход к синхронизации потоков, передаваемых на два устройства. Их система под названием Ekho добавляет неслышимые последовательности белого шума к игровому звуку, передаваемому с облачного сервера. Затем он прослушивает эти последовательности в аудио, записанном контроллером проигрывателя.
Ekho использует несоответствие между этими шумовыми последовательностями для непрерывного измерения и компенсации задержки между потоками.
В реальных сеансах облачных игр исследователи показали, что Ekho очень надежен. Большую часть времени система может поддерживать синхронизацию потоков с точностью менее 10 миллисекунд друг от друга. Другие методы синхронизации приводили к постоянным задержкам более 50 миллисекунд.
И хотя Ekho был разработан для облачных игр, этот метод можно использовать в более широком смысле для синхронизации медиапотоков, передаваемых на разные устройства, например, в учебных ситуациях, в которых используются несколько гарнитур дополненной или виртуальной реальности.
«Иногда все, что нужно, чтобы найти хорошее решение, — это подумать за пределами того, что было определено для вас. Все сообщество было сосредоточено на том, как решить эту проблему путем синхронизации через сеть. Синхронизация двух потоков путем прослушивания аудио «В комнате» звучало безумно, но оказалось, что это очень хорошее решение», — говорит Пуя Хамаданян, аспирантка электротехники и информатики (EECS) и ведущий автор статьи, описывающей Ekho.
К Хамаданяну в статье присоединился Дуг Галлатин, разработчик программного обеспечения из Microsoft; Мохаммад Ализаде, доцент кафедры электротехники и информатики и член Лаборатории компьютерных наук и искусственного интеллекта (CSAIL); и старший автор Кришна Чинталапуди, главный исследователь Microsoft Research. Доклад будет представлен на конференции ACM SIGCOMM.
Вне часов
В основе задержки между потоками в облачных играх лежит фундаментальная проблема сетевых технологий, известная как синхронизация часов.
«Если бы контроллер и экран могли смотреть на свои часы и в то же время видеть одно и то же, мы могли бы синхронизировать все с часами. Но множество теоретических работ по синхронизации часов показывают, что существуют определенные границы, которые невозможно преодолеть «, — говорит Хамаданян.
Многие подходы пытаются синхронизировать часы с помощью обмена сообщениями пинг-понга, когда устройство отправляет пинг-сообщение на сервер, который отправляет сообщение пинг-понга обратно. Устройство подсчитывает, сколько времени потребуется на возврат сообщения, и сокращает это значение вдвое, чтобы рассчитать задержку в сети.
Но путь по сети, скорее всего, асимметричен, поэтому для того, чтобы сообщение достигло сервера, может потребоваться больше времени, чем для обратного сообщения. Следовательно, этот метод ненадежен и может привести к ошибкам в сотни миллисекунд. Люди обычно могут почувствовать задержку между потоками, когда она достигает 10 миллисекунд.
«Поэтому, если что-то происходит на экране, мы хотим, чтобы это произошло и на контроллере в течение 10 миллисекунд», — объясняет Хамаданян.
Он и его коллеги решили попробовать прослушать игровой звук, чтобы синхронизировать эти отдельные потоки.
В облачных играх микрофон на контроллере игрока записывает звук в комнате, включая игровой звук, воспроизводимый динамиками на экране, и отправляет его обратно на сервер. Но использовать это для синхронизации ненадежно, поскольку звук в помещении содержит фоновый шум.
Поэтому они разработали Ekho, чтобы добавлять к игровому звуку идентичные последовательности чрезвычайно тихого белого шума, известного как псевдошум, перед его потоковой передачей на экран игрока. Он использует эти псевдошумовые сегменты для синхронизации.
Прежде чем создать Ekho, исследователи провели исследование пользователей, чтобы доказать, что игроки не слышат псевдошум в игровом звуке. Эти шумовые последовательности также устойчивы к сжатию, что важно, поскольку звук, отправляемый с контроллера, сильно сжимается для ускорения передачи данных.
Псевдошум, настоящий успех
Модуль Ekho-Estimator добавляет в игровой звук псевдошумовые последовательности. Когда он получает записанный игровой звук от контроллера, он прослушивает эти маркеры и пытается выровнять потоки. Это позволяет точно рассчитать задержку между потоками.
Эхо-Оценщик отправляет эту информацию в модуль Эхо-Компенсатор, который либо пропускает несколько миллисекунд звука, либо добавляет несколько миллисекунд тишины к игровому звуку, отправляемому сервером, который синхронизирует потоки.
Они протестировали Ekho на реальных сеансах облачной потоковой передачи и обнаружили, что он превосходит другие методы синхронизации, даже когда качество микрофона было плохим или при записи улавливался фоновый шум.
Ekho ограничил задержку между потоками до менее 10 миллисекунд почти в 87 процентах случаев во время потоковой передачи. Ни один другой метод, протестированный командой, не смог сократить эту задержку до менее 50 миллисекунд.
«Традиционный способ сделать это, который предполагает попытку измерить ошибку синхронизации с использованием базовой сети, ошибки значительно больше. Когда мы начали этот проект, мы не были уверены, что это вообще возможно сделать. Но точность мы можем работать с Ekho на уровне менее миллисекунды — это неслыханно», — говорит Чинталапуди.
Впечатленные этими результатами, исследователи хотят увидеть, насколько хорошо Ekho работает в более сложных ситуациях, например, при синхронизации пяти контроллеров с одним и тем же экранным устройством. Кроме того, поскольку Ekho предназначен для облачных игр, у него есть ограничения по дальности действия. Будущая работа может быть направлена на улучшение Ekho, чтобы оно могло синхронизировать устройства в любом конце очень большой комнаты, например концертного зала.
«Использование неслышимого белого шума в качестве своего рода «хронометриста» — отличный пример того, как нестандартное мышление может привести к неожиданным результатам», — говорит Ализаде. «Эта методика может улучшить взаимодействие с пользователем не только в облачных играх, но и потенциально в любом сценарии потоковой передачи на несколько устройств».
Теги: облако, сервер