ОБРАТНЫЙ КАНАЛ ПОЛЬЗОВАТЕЛЬСКОГО ВВОДА ДЛЯ БЕСПРОВОДНЫХ ДИСПЛЕЕВ
USER INPUT BACK CHANNEL FOR WIRELESS DISPLAYS

[0001] Настоящая заявка испрашивает приоритет:
Предварительной заявки США № 61/435,194, поданной 21 января 2011;
предварительной заявки США № 61/447,592, поданной 28 февраля 2011;
предварительной заявки США№ 61/448,312, поданной 2 марта 2011;
предварительной заявки США № 61/450,101, поданной 7 марта 2011;
предварительной заявки США № 61/467,535, поданной 25 марта 2011;
предварительной заявки США № 61/467, 543, поданной 25 марта 2011;
предварительной заявки США № 61/514,863, поданной 3 августа 2011; и
предварительной заявки США № 61/544,475, поданной 7 октября 2011;
каждая из которых полностью включена в настоящем описании посредством ссылки.
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ НАСТОЯЩЕЕ ИЗОБРЕТЕНИЕ
[0002] Настоящее раскрытие относится к способам для передачи данных между беспроводным устройством источника и беспроводным устройством получателя.
ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИ
[0003] Беспроводной дисплей (WD) или системы Wi-Fi дисплея (WFD) включают в себя беспроводное устройство источника и одно или более беспроводных устройств получателя. Устройство источника и каждое из устройств получателя могут быть или мобильными устройствами или проводными устройствами с возможностями беспроводной связи. Одно или более из устройства источника и устройств получателя могут, например, включать в себя мобильные телефоны, портативные компьютеры с картами беспроводной связи, персональные цифровые ассистенты (ассистенты PDA), портативные медиаплееры или другие такие устройства с возможностями беспроводной связи, включающие в себя так называемые "смартфоны" и "смартпады" или планшеты, электронные книги или любой тип беспроводного дисплея, устройств для видеоигр или другие типы устройств беспроводной связи. Одно или более из устройства источника и устройств получателя могут также включать в себя проводные устройства, такие как телевизоры, настольные компьютеры, мониторы, проекторы и т.п., которые включают в себя возможности связи.
[0004] Устройство источника посылает медиаданные, такие как аудио/видео (AV) данные, на одно или более устройств получателя, участвующих в конкретном сеансе совместного использования медиа. Медиаданные могут быть воспроизведены как на локальном дисплее устройства источника, так и на каждом из дисплеев устройств получателя. Более конкретно, каждое из участвующих устройств получателя воспроизводит принятые медиаданные на своем экране и аудиооборудовании.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0005] Настоящее раскрытие в целом описывает систему, в которой беспроводное устройство получателя может связываться с беспроводным устройством получателя. В качестве части связи беспроводное устройство источника может передавать аудио и видеоданные на беспроводное устройство получателя, и беспроводное устройство получателя может передавать пользовательские вводы, принятые в беспроводном устройстве получателя, назад на беспроводное устройство источника. Таким образом, пользователь беспроводного устройства получателя может управлять беспроводным устройством источника и управлять контентом, который передается от беспроводного устройства источника на беспроводное устройство получателя.
[0006] В одном примере способ передачи данных пользовательского ввода от беспроводного устройства получателя на беспроводное устройство источника включает в себя получение данных пользовательского ввода от внешнего устройства; генерирование заголовка пакета данных, причем заголовок пакета данных идентифицирует данные пользовательского ввода в качестве направленных данных пользовательского ввода; генерирование полезных данных, содержащих данные пользовательского ввода; генерирование пакета данных, содержащего заголовок пакета данных и полезные данные, передачу этого пакета данных на беспроводное устройство источника.
[0007] В другом примере беспроводное устройство получателя сконфигурировано для передачи данных пользовательского ввода на беспроводное устройство источника. Беспроводное устройство получателя включает в себя память, хранящую команды; один или более процессоров, сконфигурированных для выполнения команд, причем при выполнении команд один или более процессоров вызывают: получение данных пользовательского ввода от внешнего устройства; генерирование заголовка пакета данных, причем заголовок пакета данных идентифицирует данные пользовательского ввода в качестве направленных данных пользовательского ввода; генерирование полезных данных, содержащих данные пользовательского ввода; генерирование пакета данных, содержащего заголовок пакета данных и полезные данные. Беспроводное устройство получателя также включает в себя транспортный блок для передачи этого пакета данных на беспроводное устройство источника.
[0008] В другом примере считываемый компьютером запоминающий носитель хранит команды, которые при выполнении одним или более процессорами вынуждают эти один или более процессоров выполнять способ передачи данных пользовательского ввода от беспроводного устройства получателя на беспроводное устройство источника. Способ включает в себя получение данных пользовательского ввода от внешнего устройства; генерирование заголовка пакета данных, причем заголовок пакета данных идентифицирует данные пользовательского ввода в качестве направленных данных пользовательского ввода; генерирование полезных данных, содержащих данные пользовательского ввода; генерирование пакета данных, содержащего заголовок пакета данных и полезные данные, и передачу этого пакета данных на беспроводное устройство источника.
[0009] В другом примере беспроводное устройство получателя сконфигурировано для передачи данных пользовательского ввода на беспроводное устройство источника. Беспроводное устройство получателя включает в себя средство для получения данных пользовательского ввода от внешнего устройства; средство для генерирования заголовка пакета данных, причем заголовок пакета данных идентифицирует данные пользовательского ввода в качестве направленных данных пользовательского ввода; средство для генерирования полезных данных, содержащих данные пользовательского ввода; средство для генерирования пакета данных, содержащего заголовок пакета данных и полезные данные, и средство для передачи этого пакета данных на беспроводное устройство источника.
[0010] В другом примере способ приема данных пользовательского ввода от беспроводного устройства получателя в беспроводном устройстве источника включает в себя прием пакета данных, содержащего заголовок пакета данных и полезные данные, от беспроводного устройства получателя; выполнение синтаксического анализа заголовка пакета данных для определения, что полезные данные содержат направленную команду пользовательского ввода; выполнение синтаксического анализа полезных данных для идентификации идентификационной информации устройства третьей стороны, и обработку этих полезных данных на основании идентификационной информации устройства третьей стороны.
[0011] В другом примере беспроводное устройство источника сконфигурировано для приема данных пользовательского ввода от беспроводного устройства получателя. Беспроводное устройство источника включает в себя транспортный блок, сконфигурированный для приема пакета данных, содержащего заголовок пакета данных и полезные данные, от беспроводного устройства получателя. Беспроводное устройство источника также включает в себя память, хранящую команды, и один или более процессоров, сконфигурированных для выполнения этих команд, причем при выполнении команд эти один или более процессоров вызывают выполнение синтаксического анализа заголовка пакета данных для определения, что полезные данные содержат направленную команду пользовательского ввода; выполнение синтаксического анализа полезных данных для идентификации идентификационной информации устройства третьей стороны, и обработку этих полезных данных на основании идентификационной информации устройства третьей стороны.
[0012] В другом примере считываемый компьютером запоминающий носитель хранит команды, которые при выполнении одним или более процессорами вынуждают один или более процессоров выполнять способ приема данных пользовательского ввода от беспроводного устройства получателя в беспроводном устройстве источника. Способ включает в себя прием пакета данных, содержащего заголовок пакета данных и полезные данные, от беспроводного устройства получателя, выполнение синтаксического анализа заголовка пакета данных для определения, что полезные данные содержат направленную команду пользовательского ввода; выполнение синтаксического анализа полезных данных для идентификации идентификационной информации устройства третьей стороны, и обработку этих полезных данных на основании идентификационной информации устройства третьей стороны.
[0013] В другом примере беспроводное устройство источника сконфигурировано для приема данных пользовательского ввода от беспроводного устройства получателя. Беспроводное устройство источника включает в себя средство для приема пакета данных, содержащего заголовок пакета данных и полезные данные, от беспроводного устройства получателя, средство для выполнения синтаксического анализа заголовка пакета данных для определения, что полезные данные содержат направленную команду пользовательского ввода; средство для выполнения синтаксического анализа полезных данных для идентификации идентификационной информации устройства третьей стороны, и средство для обработки этих полезных данных на основании идентификационной информации устройства третьей стороны.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0014] Фиг. 1A является блок-схемой, иллюстрирующей пример системы источника/получателя, которая может реализовать способы настоящего раскрытия.
[0015] Фиг. 1B является блок-схемой, иллюстрирующей пример системы источника/получателя с двумя устройствами получателя.
[0016] Фиг. 2 показывает пример устройства источника, которое может реализовать способы настоящего раскрытия.
[0017] Фиг. 3 показывает пример устройства получателя, которое может реализовать способы настоящего раскрытия.
[0018] Фиг. 4 показывает блок-схему системы передатчика и системы приемника, которые могут реализовать способы настоящего раскрытия.
[0019] Фиг. 5А и 5B показывают примерные последовательности передачи сообщений для выполнения согласований возможностей согласно способам настоящего раскрытия.
[0020] Фиг. 6 показывает примерный пакет данных, который может быть использован для доставки данных пользовательского ввода, полученных в устройстве получателя, на устройство источника.
[0021] Фиг. 7А и 7B являются блок-схемами, иллюстрирующими способы настоящего раскрытия, которые могут быть использованы для согласований возможностей между устройством источника и устройством получателя.
[0022] Фиг. 8А и 8B являются блок-схемами, иллюстрирующими способы настоящего раскрытия, которые могут быть использованы для передачи и приема пакетов данных с данными пользовательского ввода.
[0023] Фиг. 9А и 9B являются блок-схемами, иллюстрирующими способы настоящего раскрытия, которые могут быть использованы для передачи и приема пакетов данных с данными пользовательского ввода.
[0024] Фиг. 10А и 10B являются блок-схемами, иллюстрирующими способы настоящего раскрытия, которые могут быть использованы для передачи и приема пакетов данных с информацией о временной отметке и данными пользовательского ввода.
[0025] Фиг. 11А и 11B являются блок-схемами, иллюстрирующие способы настоящего раскрытия, которые могут быть использованы для передачи и приема пакетов данных с информацией о временной отметке и данными пользовательского ввода.
[0026] Фиг. 12А и 12B являются блок-схемами, иллюстрирующими способы настоящего раскрытия, которые могут быть использованы для передачи и приема пакетов данных, которые включают в себя голосовые команды.
[0027] Фиг. 13А и 13B являются блок-схемами, иллюстрирующими способы настоящего раскрытия, которые могут быть использованы для передачи и приема пакетов данных с командами пользовательского ввода посредством множественных касаний.
[0028] Фиг. 14А и 14B являются блок-схемами, иллюстрирующими способы настоящего раскрытия, которые могут быть использованы для передачи и приема пакетов данных с данными пользовательского ввода, направленными от устройства третьей стороны.
[0029] Фиг. 15А и 15B являются блок-схемами, иллюстрирующими способы настоящего раскрытия, которые могут быть использованы для передачи и приема пакетов данных.
ПОДРОБНОЕ ОПИСАНИЕ
[0030] Настоящее раскрытие в целом описывает систему, в которой беспроводное устройство получателя может связываться с беспроводным устройством получателя. В качестве части сеанса связи, беспроводное устройство источника может передавать аудио и видеоданные на беспроводное устройство получателя, и беспроводное устройство получателя может передавать пользовательские вводы, принятые в беспроводном устройстве получателя, обратно на беспроводное устройство источника. Таким образом пользователь беспроводного устройства получателя может управлять беспроводным устройством источника и управлять контентом, который передается от беспроводного устройства источника на беспроводное устройство получателя.
[0031] Фиг. 1A является блок-схемой, иллюстрирующей примерную систему 100 источника/получателя, которая может реализовать один или более способов настоящего раскрытия. Как показано на Фиг. 1A, система 100 включает в себя устройство 120 источника, которое связывается с устройством 160 получателя с помощью канала 150 связи. Устройство 120 источника может включать в себя память, которая хранит аудио/видео (A/V) данные 121, дисплей 122, динамик 123, кодер 124 аудио/видео (также называемый кодером 124), модуль 125 управления аудио/видео и блок 126 передатчика/приемника (TX/RX). Устройство 160 получателя может включать в себя дисплей 162, динамик 163, декодер 164 аудио/видео (также называемый декодером 164), блок 166 передатчика/приемника, устройство 167 пользовательского ввода (UI) и модуль 168 обработки пользовательского ввода (UIPM). Иллюстрированные компоненты составляют просто одну примерную конфигурацию для системы 100 источника/получателя. Другие конфигурации могут включать в себя меньше компонентов, чем те, которые иллюстрированы, или могут включать в себя дополнительные компоненты, чем те, которые иллюстрированы.
[0032] В примере согласно Фиг. 1A устройство 120 источника может отображать часть видео аудио/видеоданных 121 на дисплее 122 и может выводить часть аудио/видеоданных 121 на динамик 123. Аудио/видеоданные 121 могут храниться локально на устройстве 120 источника, к которому получают доступ от внешнего запоминающего носителя, такого как файловый сервер, жесткий диск, внешняя память, диск blue-ray, DVD или другой физический запоминающий носитель, или могут быть переданы потоком на устройство 120 источника с помощью сетевого соединения, такого как Интернет. В некоторых случаях аудио/видеоданные 121 могут быть захвачены в режиме реального времени с помощью камеры и микрофона устройства 120 источника. Аудио/видеоданные 121 могут включать в себя мультимедийный контент, такой как фильмы, телешоу или музыка, но могут также включать в себя контент в реальном времени, сгенерированный устройством 120 источника. Такой контент в реальном времени, например, может быть произведен приложениями, работающими на устройстве 120 источника, или захваченными видеоданными, например, как часть сеанса видео телефонии. Как будет описано более подробно, такой контент в реальном времени может в некоторых случаях включать в себя видео кадр опций пользовательского ввода, доступных пользователю для выбора. В некоторых случаях аудио/видеоданные 121 могут включать в себя видео кадры, которые являются комбинацией различных типов контента, такого как видео кадр кино или телепрограммы, которая имеет опции пользовательского ввода, наложенные на кадр видео.
[0033] В дополнение к воспроизведению аудио/видеоданных 121 локально с помощью дисплея 122 и динамика 123, кодер 124 аудио/видеоустройства 120 источника может кодировать аудио/видеоданные 121, и блок 126 передатчика/приемника может передавать закодированные данные по каналу 150 связи на устройство 160 получателя. Блок 166 передатчика/приемника устройства 160 получателя принимает закодированные данные, и декодер 164 аудио/видео декодирует закодированные данные и выводит декодированные данные с помощью дисплея 162 и динамика 163. Таким образом, аудио и видеоданные, воспроизведенные посредством дисплея 122 и динамика 123, могут быть одновременно воспроизведены дисплеем 162 и динамиком 163. Аудиоданные и видеоданные могут быть скомпонованы в кадрах, и аудиокадры могут быть синхронизированы во времени с видео кадрами при воспроизведении.
[0034] Кодер 124 аудио/видео и декодер 164 аудио/видео могут реализовывать любое количество стандартов сжатия аудио и видео, таких как стандарт ITU-T H.264, альтернативно называемый MPEG-4, Часть 10, усовершенствованное кодирование видео (AVC) или недавно появившийся стандарт кодирования видео высокой производительности (HEVC), иногда называемым стандартом H.265. Также может быть использовано много других типов составляющих собственность или стандартизированных способов сжатия. В целом, декодер 164 аудио/видео сконфигурирован для выполнения взаимно обратных операций кодирования кодера 124 аудио/видео. Хотя не показано на Фиг. 1A, в некоторых аспектах кодер 124 A/V и декодер 164 A/V могут быть объединены с кодером и декодером аудио и могут включать в себя соответствующие блоки MUX-DEMUX или другое аппаратное и программное обеспечение, чтобы управлять кодированием как аудио, так и видео в общем потоке данных или в отдельных потоках данных.
[0035] Как будет описано более подробно ниже, кодер 124 A/V может также выполнять другие функции кодирования в дополнение к реализации стандарта сжатия видео, как описано выше. Например, кодер 124 A/V может добавлять различные типы метаданных к A/V данным 121 до передачи A/V данных 121 на устройство 160 получателя. В некоторых случаях A/V данные 121 могут быть сохранены на или приняты в устройстве 120 источника в закодированной форме и, таким образом, не требовать дополнительного сжатия посредством кодера 124 A/V.
[0036] Хотя Фиг. 1A показывает канал 150 связи, переносящий полезные данные аудио и полезные данные видео отдельно, должно быть понятно, что в некоторых случаях полезные данные видео и полезные данные аудио могут быть частью общего потока данных. Если применимо, блоки MUX-DEMUX могут соответствовать протоколу мультиплексора ITU H.223 или другим протоколам, таким как протокол пользовательских дейтаграмм (UDP). Кодер 124 аудио/видео и декодер 164 аудио/видео могут быть реализованы как один или более микропроцессоров, цифровых сигнальных процессоров (процессоров DSP), специализированных интегральных схем (схем ASIC), программируемых пользователем вентильных матриц (матриц FPGA), дискретная логика, программное обеспечение, аппаратное обеспечение, программно-аппаратное обеспечение или любые их комбинации. Каждый из кодера 124 аудио/видео и декодера 164 аудио/видео может быть включен в один или более кодеров или декодеров, любой из которых может быть интегрирован как часть объединенного кодера/декодера (кодека). Таким образом, каждое из устройства 120 источника и устройства 160 получателя может содержать специализированные машины, сконфигурированные для выполнения одного или более способов настоящего раскрытия.
[0037] Дисплей 122 и дисплей 162 могут содержать любое множество устройств вывода видео, таких как электронно-лучевая трубка (CRT), жидкокристаллический дисплей (LCD), плазменный дисплей, светодиодный дисплей (LED), дисплей на органических светодиодах (OLED) или другой тип устройства отображения. В этих или других примерах дисплеи 122 и 162 могут быть излучающими дисплеями или пропускающими дисплеями. Дисплей 122 и дисплей 162 могут также быть дисплеями ввода касанием, таким образом, чтобы они одновременно были как устройствами ввода, так и устройствами отображения. Такие дисплеи ввода касанием могут быть емкостными, резистивными или другим типом панели ввода касанием, которая разрешает пользователю обеспечить пользовательский ввод соответствующему устройству.
[0038] Динамик 123 может содержать любое множество устройств вывода аудио, таких как наушники, система с единственным динамиком, система с множеством динамиков или система окружающего объемного звука. Дополнительно, хотя дисплей 122 и динамик 123 показаны как часть устройства 120 источника, и дисплей 162 и динамик 163 показаны как часть устройства 160 получателя, устройство 120 источника и устройство 160 получателя могут фактически быть системой устройств. В качестве одного примера, дисплей 162 может быть телевизором, динамик 163 может быть системой окружающего объемного звука, и декодер 164 может быть частью внешнего блока, соединенного или проводным или беспроводным способом с дисплеем 162 и динамиком 163. В других случаях устройство 160 получателя может быть единственным устройством, таким как планшетный компьютер или смартфон. Во других случаях устройство 120 источника и устройство 160 получателя являются аналогичными устройствами, например, оба являются смартфонами, планшетными компьютерами и т.п. В этом случае одно устройство может работать как источник, а другое может работать как получатель. Эти перечисления могут быть даже изменены на обратные в последующих сеансах связи. В других случаях устройство источника может содержать мобильное устройство, такое как смартфон, ноутбук или планшетный компьютер, и устройство получателя может содержать более стационарное устройство (например, со шнуром питания переменного тока АС), когда устройство источника может поставлять аудио и видеоданные для презентации многочисленной аудитории с помощью устройства получателя.
[0039] Блок 126 передатчика/приемника и блок 166 передатчика/приемника могут включать в себя различные микшеры, фильтры, усилители и другие компоненты, сконструированные для модуляции сигнала, а также одну или более антенн и другие компоненты, сконструированные для передачи и приема данных. Канал 150 связи в целом представляет любой подходящий коммуникационный носитель или коллекцию различных коммуникационных носителей для передачи видеоданных от устройства 120 источника на устройство 160 получателя. Канал 150 связи обычно является каналом связи относительно малой дальности, аналогично Wi-Fi, Bluetooth и т.п. Однако канал 150 связи не обязательно ограничивается в этом отношении и может содержать любой беспроводной или проводной коммуникационный носитель, такой как радиочастотный (RF) (РЧ) спектр или одну или более физических линий передачи, или любую комбинацию беспроводных и проводных носителей. В других примерах канал 150 связи может даже быть частью пакетной сети, такой как проводная или беспроводная локальная сеть, широкомасштабная сеть или глобальная сеть, такая как Интернет. Дополнительно, канал 150 связи может быть использован устройством 120 источника и устройством 160 получателя, чтобы создать одноранговую линию связи. Устройство 120 источника и устройство 160 получателя могут связываться по каналу 150 связи, используя протокол передачи данных, такой как стандарт из группы стандартов IEEE 802.11. Устройство 120 источника и устройство 160 получателя могут, например, связываться согласно стандарту Wi-Fi Direct таким образом, чтобы устройство 120 источника и устройство 160 получателя связывались непосредственно друг с другом без использования посредника, такого как беспроводные точки доступа или так называемая «горячая точка». Устройство 120 источника и устройство 160 получателя могут также установить установку туннелированной прямой линии связи (TLDS), чтобы избежать или уменьшить перегрузку сети. Способы настоящего раскрытия могут время от времени быть описаны относительно Wi-Fi, но рассматривается, что аспекты этих способов могут также быть совместимы с другими протоколами передачи данных. Посредством примера, а не ограничения, беспроводная связь между устройством 120 источника и устройством получателя может использовать способы ортогонального мультиплексирования с частотным разделением каналов (OFDM). Также может быть использовано большое разнообразие других способов беспроводной связи, включающих в себя, но не ограниченных, множественный доступ с временным разделением каналов (TDMA), множественный доступ с частотным разделением каналов (FDMA), множественный доступ с кодовым разделением каналов (CDMA) или любую комбинацию OFDM, FDMA, TDMA и/или CDMA. WiFi Direct и TDLS предназначены для установки сеансов связи на относительно короткие расстояния. Относительно короткое расстояние в этом контексте может относиться, например, к менее, чем 70 метрам, хотя в шумной или создающей помехи окружающей среде расстояние между устройствами может быть еще короче, например, меньше чем 35 метров.
[0040] В дополнение к декодированию и воспроизведению данных, принятых от устройства 120 источника, устройство 160 получателя может также принять пользовательские вводы от устройства 167 пользовательского ввода. Устройство 167 пользовательского ввода может, например, быть клавиатурой, мышью, трекболом или сенсорным планшетом, экраном ввода касанием, модулем распознавания голосовой команды или любым другим таким устройством пользовательского ввода. UIPM 168 форматирует команды пользовательского ввода, принятые устройством 167 пользовательского ввода, в структуру пакета данных, которую устройство 120 источника способно интерпретировать. Такие пакеты данных передаются передатчиком/приемником 166 на устройство 120 получателя по каналу 150 связи. Блок 126 передатчика/приемника принимает пакеты данных, и модуль 125 управления A/V выполняет синтаксический анализ пакетов данных, чтобы интерпретировать команду пользовательского ввода, которая была принята устройством 167 пользовательского ввода. На основании команды, принятой в пакете данных, модуль 125 управления A/V может изменить контент, закодированный и переданный. Таким образом пользователь устройства 160 получателя может управлять полезными аудиоданными и полезными видеоданными, передаваемыми устройством 120 источника, удаленно и без непосредственного взаимодействия с устройством 120 источника. Примеры типов команд, которые пользователь устройства 160 получателя может передать на устройство 120 источника, включают в себя команды для перемотки назад, ускоренной перемотки, приостановки и проигрывания аудио и видеоданных, а также команды для изменения масштаба изображения, вращения, прокрутки и т.д. Пользователи могут также сделать выборы из меню опций, например, и передать выбор назад на устройство 120 источника.
[0041] Дополнительно, пользователи устройства 160 получателя могут быть в состоянии запустить и управлять приложениями на устройстве 120 источника. Например, пользователь устройства 160 получателя может быть способен запустить приложение редактирования фотографий, сохраненное на устройстве 120 источника, и использовать это приложение для редактирования фотографии, которая локально сохранена на устройстве 120 источника. Устройство 160 получателя может предоставить пользователю пользовательский опыт, который выглядит и воспринимается как фотография, которая редактируется локально на устройстве 160 получателя, в то время как фактически фотография редактируется на устройстве 120 источника. Используя такую конфигурацию, пользователь устройства может быть в состоянии эффективно использовать возможности одного устройства для использования с несколькими устройствами. Например, устройство 120 источника может быть смартфоном с большим объемом памяти и возможностями обработки на высоком уровне. Пользователь устройства 120 источника может использовать смартфон во всех параметрах настройки и ситуациях, в которых обычно используются смартфоны. Однако при просмотре кино пользователь может захотеть смотреть кино на устройстве с большим экраном дисплея, в этом случае устройство 160 получателя может быть планшетным компьютером или еще более крупным устройством отображения или телевизором. Желая послать или ответить на сообщение электронной почты, пользователь может захотеть использовать устройство с клавиатурой, в этом случае устройство 160 получателя может быть ноутбуком. В обоих случаях большая часть обработки может быть все еще выполнена устройством 120 источника (смартфоном в этом примере) даже притом, что пользователь взаимодействует с устройством получателя. В этом конкретном операционном контексте, из-за большой части обработки, выполняемой устройством 120 источника, устройство 160 получателя может быть более дешевым устройством с меньшим количеством ресурсов, чем если бы устройство 160 получателя запросили сделать обработку, сделанную устройством 120 источника. Как устройство источника так и устройство получателя могут быть способны принять пользовательский ввод (например, команды экрана ввода касанием) в некоторых примерах, и способы настоящего раскрытия могут облегчить двустороннее взаимодействие посредством согласования и или идентификации возможностей устройств в любом заданном сеансе.
[0042] В некоторой конфигурации модуль 125 управления A/V может быть процессом операционной системы, выполняемым операционной системой устройства 125 источника. Однако в других конфигурациях модуль 125 управления A/V может быть процессом программного обеспечения приложения, работающего на устройстве 120 источника. В такой конфигурации команда пользовательского ввода может интерпретироваться процессом программного обеспечения таким образом, чтобы пользователь устройства 160 получателя непосредственно взаимодействовал с приложением, работающем на устройстве 120 источника, в противоположность операционной системе, работающей на устройстве 120 источника. Посредством непосредственного взаимодействия с приложением, в противоположность операционной системе, пользователь устройства 160 получателя может иметь доступ к библиотеке команд, которые не являются «родными» для операционной системы устройства 120 источника. Дополнительно, непосредственное взаимодействие с приложением может позволить команды более легко передавать и обрабатывать устройствами, работающими на различных платформах.
[0043] Устройство 120 источника может ответить на пользовательские вводы, примененные в беспроводном устройстве 160 получателя. В такой установке интерактивного приложения пользовательские вводы, примененные в беспроводном устройстве 160 получателя, могут быть посланы назад на беспроводной источник дисплея по каналу 150 связи. В одном примере архитектура обратного канала, также называемая обратным каналом пользовательского интерфейса (UIBC), может быть реализована, чтобы разрешить устройству 160 получателя передавать пользовательские вводы, примененные в устройстве 160 получателя, на устройство 120 источника. Архитектура обратного канала может включать в себя сообщения верхнего уровня для транспортировки пользовательских вводов и кадры нижнего уровня для согласования возможностей пользовательского интерфейса в устройстве 160 получателя и устройстве 120 источника. UIBC может находиться в транспортном уровне Интернет-протокола (IP) между устройством 160 получателя и устройством 120 источника. Таким образом, UIBC может быть выше транспортного уровня в модели связи взаимодействия открытых систем (OSI). В одном примере связь OSI включает в себя семь уровней (1 - физический, 2 - линия передачи данных, 3 - сетевой, 4 - транспортный 5 - сеансовый, 6 - представления и 7 - приложений). В этом примере расположение выше транспортного уровня относится к уровням 5, 6 и 7. Чтобы способствовать надежной передаче и последовательной доставке пакетов данных, содержащих данные пользовательского ввода, UIBC может быть сконфигурирован работающим поверх других протоколов пакетной передачи данных, таких как протокол управления передачей/Интернет-протокол (TCP/IP) или протокол пользовательских дейтаграмм (UDP). UDP и TCP могут работать параллельно в архитектуре уровня OSI. TCP/IP может разрешить устройству 160 получателя и устройству 120 источника реализовывать способы повторной передачи в случае потери пакета.
[0044] В некоторых случаях может быть несовпадение между интерфейсами пользовательского ввода, расположенными в устройстве 120 источника и устройстве 160 получателя. Чтобы решить потенциальные проблемы, созданные таким несовпадением, и способствовать хорошему пользовательскому опыту при таких обстоятельствах, согласование возможностей интерфейса пользовательского ввода может иметь место между устройством 120 источника и устройством 160 получателя до установления сеанса связи или в различные времена в течение сеанса связи. Как часть этого процесса согласования, устройство 120 источника и устройство 160 получателя могут договориться о согласованном разрешении экрана. Когда устройство 160 получателя передает данные координат, ассоциированные с пользовательским вводом, устройство 160 получателя может масштабировать данные координат, полученные от дисплея 162, чтобы сопоставить с согласованным разрешением экрана. В одном примере, если устройство 160 получателя имеет разрешение 1280x720, и устройство 120 источника имеет разрешение 1600x900, устройства могут, например, использовать 1280x720 в качестве своего согласованного разрешения. Согласованное разрешение может быть выбрано на основании разрешения устройства 160 получателя, хотя может также быть использовано разрешение устройства 120 источника или некоторое другое разрешение. В примере, в котором используется устройство получателя с разрешением 1280x720, устройство 160 получателя может масштабировать полученные x-координаты посредством коэффициента 1600/1280 до передачи координат на устройство 120 источника, и аналогично, устройство 160 получателя может масштабировать полученные y-координаты посредством коэффициента 900/720 до передачи координат на устройство 120 источника. В других конфигурациях устройство 120 источника может масштабировать полученные координаты до согласованного разрешения. Масштабирование может или увеличить или уменьшить диапазон координат на основании того, использует ли устройство 160 получателя дисплей с более высоким разрешением, чем устройство 120 источника, или наоборот.
[0045] Дополнительно, в некоторых случаях разрешение в устройстве 160 получателя может изменяться во время сеанса связи, потенциально создавая несовпадение между дисплеем 122 и дисплеем 162. Чтобы улучшить пользовательский опыт и гарантировать надлежащие функциональные возможности, система 100 источника/получателя может реализовать способы для уменьшения или предотвращения несовпадения пользовательского взаимодействия посредством реализации способов для нормализации экрана. Дисплей 122 устройства 120 источника и дисплей 162 устройства 160 получателя могут иметь разные разрешения и/или разные соотношения сторон. Дополнительно, в некоторых параметрах настройки пользователь устройства 160 получателя может иметь способность изменить размеры окна экрана дисплея для видеоданных, принятых от устройства 120 источника таким образом, чтобы видеоданные, принятые от устройства 120 источника, были воспроизведены в окне, которое охватывает меньше, чем весь дисплей 162 устройства 160 получателя. При других примерных параметрах настройки пользователь устройства 160 получателя может иметь опцию просмотра контента или в режиме «горизонтальной ориентации», или в режиме «портрет», каждый из которых имеет уникальные координаты и разные соотношения сторон. В таких ситуациях координаты, ассоциированные с пользовательским вводом, принятым в устройстве 160 получателя, такие как координата того, где имеет место щелчок мыши или событие касания, могут не быть способны обрабатываться устройством 120 источника без изменения в координатах. Соответственно, способы настоящего раскрытия могут включать в себя отображение координат пользовательского ввода, принятого в устройстве 160 получателя, в координаты, ассоциированные с устройством 120 источника. Это отображение также называется нормализацией в настоящем описании, и, как будет объяснено более подробно ниже, это отображение может быть основано или на получателе, или основано на источнике.
SINK
SINK
SINK
SINK
DW
DW
DW
DW
DW
DW
DW
DW
DW
DW
DW
DW
DW
DW
DW
DW
DW
DW
SINK
SINK
[0046] Пользовательские вводы, принятые устройством 160 получателя, могут быть приняты модулем 167 UI на уровне драйвера, например, и направлены в операционную систему устройства 160 получателя. Операционная система в устройстве 160 получателя может принимать координаты (x, y), ассоциированные с тем, где на поверхности дисплея имел место пользовательский ввод. В этом примере (x, y) могут быть координатами дисплея 162, в котором имел место щелчок мыши или событие касания. Окно экрана дисплея, воспроизводимое на дисплее 162, может иметь длину x-координат (L) и ширину y-координат (W), которые описывают размер окна экрана дисплея. Окно экрана дисплея может также иметь координату верхнего левого угла (a, b), которая описывает местоположение окна экрана дисплея. На основании L, W и верхней левой координаты (a, b) может быть определена часть дисплея 162, охваченная окном экрана дисплея. Например, правый верхний угол окна экрана дисплея может быть расположен в координате (a+L, b), левый нижний угол окна экрана дисплея может быть расположен в координате (a, b+W), и правый нижний угол окна экрана дисплея может быть расположен в координате (a+L, b+W). Устройство 160 получателя может обработать ввод как ввод UIBC, если этот ввод принят в координате в пределах окна экрана дисплея. Другими словами, ввод с ассоциированными координатами (x, y) может быть обработан как ввод UIBC, если удовлетворены следующие условия:
DW
SINK
DW
DW
a≤x≤a+L
DW
SINK
DW
DW
b≤y≤b+W
[0047] После определения, что пользовательский ввод является вводом UIBC, координаты, ассоциированные с этим вводом, могут быть нормализованы посредством UIPM 168 до передачи на устройство 120 источника. Вводы, которые определены как вне окна экрана дисплея, могут быть обработаны локально устройством 160 получателя как вводы не-UIBC.
SRC
SRC
SINK
SINK
DW
DW
DW
DW
SINK
SINK
SINK
SINK
SRC
SRC
SINK
SINK
SRC
SRC
[0048] Как упомянуто выше, нормализация координат ввода может быть основана или на источнике, или основана на получателе. При реализации основанной на получателе нормализации устройство 120 источника может послать поддерживаемое разрешение дисплея (L, W) для дисплея 122, или с видеоданными или независимо от видеоданных, на устройство 160 получателя. Поддерживаемое разрешение дисплея, например, может быть передано как часть сеанса согласования возможностей или может быть передано в другое время во время сеанса связи. Устройство 160 получателя может определить разрешение дисплея (L, W) для дисплея 162, разрешение окна экрана дисплея (L, W) для окна, отображающего контент, принятый от устройства 120 источника, и координату левого верхнего угла (a, b) для окна экрана дисплея. Как описано выше, когда координата (x, y), соответствующая вводу данных пользователем, определяется в пределах окна экрана дисплея, операционная система устройства 160 получателя может отобразить координату (x, y) в координаты (x, y) источника, используя функции преобразования. Примерные функции преобразования для преобразования (x, y) в (x, y) могут быть следующими:
SRC
SINK
DW
SRC
DW
x=(x-a)*(L/L)
SRC
SINK
DW
SRC
DW
y=(y-b)*(W/W)
SRC
SRC
SINK
SINK
SRC
SRC
[0049] Таким образом, при передаче координаты, соответствующей принятому вводу данных пользователем, устройство 160 получателя может передать координату (x, y) для пользовательского ввода, принятого в (x, y). Как будет описано более подробно ниже, координата (x, y), например, может быть передана как часть пакета данных, используемого для передачи пользовательского ввода, принятого в устройстве 160 получателя, на устройство 120 источника по UIBC. На протяжении других частей настоящего раскрытия, в котором координаты ввода описаны как включенные в пакет данных, эти координаты могут быть преобразованы в исходные координаты, как описано выше в случаях, в которых система 100 источника/получателя реализует основанную на получателе нормализацию.
DW
DW
DW
DW
SINK
SINK
SRC
SRC
[0050] Когда система 100 источника/получателя реализует основанную на источнике нормализацию, для пользовательских вводов, определенных вводами UIBC, в противоположность локальным вводам (то есть в пределах окна экрана дисплея в противоположность внешней стороне окна экрана дисплея), вычисления, описанные выше, могут быть выполнены в устройстве 120 источника вместо устройства 160 получателя. Чтобы облегчить такие вычисления, устройство 160 получателя может передать на устройство 120 источника значения для L, W и информацию местоположения для окна экрана дисплея (например, a, b), а также координаты для (x, y). Используя эти переданные значения, устройство 120 источника может определить значения для (x, y) согласно уравнениям 3 и 4, представленным выше.
DW
DW
DW
DW
DW
DW
SRC
SRC
[0051] В других реализациях основанной на получателе нормализации устройство 160 получателя может передать координаты (x, y) для пользовательского ввода, которые описывают, где в пределах окна экрана дисплея имеет место событие пользовательского ввода, в противоположность тому, где на дисплее 162 имеет место пользовательский ввод. В такой реализации координаты (x, y) могут быть переданы на устройство 120 источника наряду со значениями для (L, W). На основании этих принятых значений устройство 120 источника может определить (x, y) согласно следующим функциям преобразования:
SRC
DW
SRC
DW
x=x*(L/L)
SRC
DW
SRC
DW
y=y*(W/W)
DW
DW
Устройство 160 получателя может определить x и y на основании следующих функций:
DW
SINK
DW
x=x-a
DW
SINK
DW
y=y-b
[0052] Когда настоящее раскрытие описывает передачу координат, ассоциированных с пользовательским вводом, в пакете данных, например, передача этих координат может включать в себя основанную на получателе или основанную на источнике нормализацию, как описано выше, и/или может включать в себя любую дополнительную информацию, необходимую для выполнения основанной на получателе или основанной на источнике нормализации.
[0053] UIBC может быть сконструирован для транспортировки различных типов данных пользовательского ввода, включающих в себя межплатформенные данные пользовательского ввода. Например, устройство 120 источника может управлять операционной системой iOS, в то время как устройство 160 получателя управляет другой операционной системой, такой как Android или Windows. Независимо от платформы UIPM 168 может инкапсулировать принятый пользовательский ввод в форме, понятной модулю 125 управления A/V. Ряд различных типов форматов пользовательского ввода могут поддерживаться посредством UIBC таким образом, чтобы разрешить многим различным типам устройств источника и получателя использовать протокол независимо от того, работают ли устройства источника и получателя на разных платформах. Могут быть определены форматы родового ввода, и могут поддерживаться специфичные для платформы форматы ввода, таким образом обеспечивая гибкость способом, в котором пользовательский ввод может быть передан между устройством 120 источника и устройством 160 получателя посредством UIBC.
[0054] В примере на Фиг. 1A устройство 120 источника может содержать смартфон, планшетный компьютер, ноутбук, настольный компьютер, телевизор с поддержкой Wi-Fi или любое другое устройство, способное передавать аудио и видеоданные. Устройство 160 получателя может аналогично содержать смартфон, планшетный компьютер, ноутбук, настольный компьютер, телевизор с поддержкой Wi-Fi или любое другое устройство, способное принять аудио и видеоданные и принять данные пользовательского ввода. В некоторых случаях устройство 160 получателя может включать в себя систему устройств, таких как дисплей 162, динамик 163, устройство 167 UI и кодер 164 A/V всех частей отдельных, но взаимодействующих устройств. Устройство 120 источника может аналогично быть системой устройств, а не единственным устройством.
[0055] В настоящем раскрытии термин «устройство источника» в целом используется, чтобы относиться к устройству, которое передает аудио/видеоданные, и термин «устройство получателя» в целом используется, чтобы относиться к устройству, которое принимает аудио/видеоданные от устройства источника. Во многих случаях устройство 120 источника и устройство 160 получателя могут быть аналогичными или идентичными устройствами, с одним устройством, работающим как источник, и другим, работающим как получатель. Кроме того эти перечисления могут быть изменены на обратные в различных сеансах связи. Таким образом, устройство получателя в одном сеансе связи может стать устройством источника в последующем сеансе связи, или наоборот.
[0056] Фиг. 1B является блок-схемой, иллюстрирующей примерную систему 101 источника/получателя, которая может реализовать способы настоящего раскрытия. Система 101 источника/получателя включает в себя устройство 120 источника и устройство 160 получателя, каждое из которых может функционировать и работать так, как описано выше для Фиг. 1A. Система 101 источника/получателя дополнительно включает в себя устройство 180 получателя. Аналогично устройству 160 получателя, описанному выше, устройство 180 получателя может принимать аудио и видеоданные от устройства 120 источника и передавать пользовательские команды на устройство 120 источника по установленному UIBC. В некоторых конфигурациях устройство 160 получателя и устройство 180 получателя могут работать независимо друг от друга, и вывод аудио и видеоданных в устройстве 120 источника может быть одновременно выведен в устройстве 160 получателя и устройстве 180 получателя. В дополнительных конфигурациях устройство 160 получателя может быть первичным устройством получателя, и устройство 180 получателя может быть вторичным устройством получателя. В такой примерной конфигурации могут быть подсоединены устройство 160 получателя и устройство 180 получателя, и устройство 160 получателя может отображать видеоданные, в то время как устройство 180 получателя выводит соответствующие аудиоданные. Дополнительно, в некоторых конфигурациях устройство 160 получателя может выводить переданные видеоданные только тогда, когда устройство 180 получателя выводит переданные аудиоданные.
[0057] Фиг. 2 является блок-схемой, показывающей один пример устройства 220 источника. Устройство 220 источника может быть устройством, аналогичным устройству 120 источника на Фиг. 1A, и может работать так же, как устройство 120 источника. Устройство 220 источника включает в себя локальный дисплей 222, локальный динамик 223, процессоры 231, память 232, транспортный блок 233 и беспроводной модем 234. Как показано на Фиг. 2, устройство 220 источника может включать в себя один или более процессоров (то есть процессор 231), которые кодируют и/или декодируют A/V данные для транспортировки, хранения и отображения. A/V данные могут, например, храниться в памяти 232. Память 232 может хранить весь A/V файл или может содержать буфер меньшего размера, который просто хранит часть A/V файла, например, переданного потоком от другого устройства или источника. Транспортный блок 233 может обрабатывать закодированные A/V данные для сетевого транспорта. Например, закодированные A/V данные могут быть обработаны процессором 231 и инкапсулированы транспортным блоком 233 в блоки уровня сетевого доступа (NAL) для передачи через сеть. Блоки NAL могут быть посланы беспроводным модемом 234 на беспроводное устройство получателя с помощью сетевого соединения. Беспроводной модем 234 может, например, быть модемом Wi-Fi, сконфигурированным для реализации одного из группы стандартов IEEE 802.11.
[0058] Устройство 220 источника может также локально обрабатывать и отображать A/V данные. В частности, процессор 235 дисплея может обрабатывать видеоданные, которые должны быть отображены на локальном дисплее 222, аудиопроцессор 236 может обрабатывать аудиоданные для вывода на динамике 223.
[0059] Как описано выше со ссылками на устройство 120 источника на Фиг. 1A, устройство 220 источника может также принимать команды пользовательского ввода от устройства получателя. Таким образом, беспроводной модем 234 устройства 220 источника принимает пакеты инкапсулированных данных, например, блоки NAL, и посылает блоки инкапсулированных данных в транспортный блок 233 для декапсулирования. Например, транспортный блок 233 может извлечь пакеты данных из блоков NAL, и процессор 231 может провести синтаксический анализ пакетов данных, чтобы извлечь команды пользовательского ввода. На основании команд пользовательского ввода процессор 231 может настраивать закодированные A/V данные, передаваемые устройством 220 источника на устройство получателя. Таким образом, функциональные возможности, описанные выше относительно модуля 125 управления A/V на Фиг. 1 A, могут быть реализованы или полностью или частично процессором 231.
[0060] Процессор 231 согласно Фиг. 2 в целом представляет любое большое разнообразие процессоров, включающих в себя, но не ограниченных, один или более цифровых сигнальных процессоров (процессоров DSP), микропроцессоры общего назначения, специализированные интегральные схемы (схемы ASIC), программируемые пользователем вентильные матрицы (матрицы FPGA), другую эквивалентную интегрированную или дискретную логическую схему, или некоторую их комбинацию. Память 232 согласно Фиг. 2 может содержать любое большое разнообразие энергозависимой или энергонезависимой памяти, включающей в себя, но не ограниченной, оперативное запоминающее устройство (RAM), такое как синхронное динамическое оперативное запоминающее устройство (SDRAM), постоянное запоминающее устройство (ROM), энергонезависимое оперативное запоминающее устройство (NVRAM), электрически стираемое постоянное запоминающее устройство (EEPROM), флэш-память и т.п. Память 232 может содержать считываемый компьютером запоминающий носитель для хранения аудио/видеоданных, а также других видов данных. Память 232 может дополнительно хранить команды и программный код, которые выполняются процессором 231, как часть выполнения различных способов, описанных в настоящем раскрытии.
[0061] Фиг. 3 показывает пример устройства 360 получателя. Устройство 360 получателя может быть устройством, аналогичным устройству 160 получателя на Фиг. 1A, и может работать так же, как устройство 160 получателя. Устройство 360 получателя включает в себя один или более процессоров (то есть процессор 331), память 332, транспортный блок 333, беспроводной модем 334, процессор 335 дисплея, локальный дисплей 362, аудиопроцессор 336, динамик 363 и интерфейс 376 пользовательского ввода. Устройство 360 получателя принимает в беспроводном модеме 334 блок инкапсулированных данных, посланных от устройства источника. Беспроводной модем 334, например, может быть модемом Wi-Fi, сконфигурированным для реализации еще одного стандарта из группы стандартов IEEE 802.11. Транспортный блок 333 может декапсулировать блоки инкапсулированных данных. Например, транспортный блок 333 может извлечь закодированные видеоданные из блоков инкапсулированных данных и послать закодированные A/V данные на процессор 331, которые должны быть декодированы и воспроизведены для вывода. Процессор 335 дисплея может обрабатывать декодированные видеоданные, которые должны быть отображены на локальном дисплее 362, и аудиопроцессор 336 может обрабатывать декодированные аудиоданные для вывода на динамике 363.
[0062] В дополнение к воспроизведению аудио и видеоданных беспроводное устройство 360 получателя может также принять данные пользовательского ввода через интерфейс 376 пользовательского ввода. Интерфейс 376 пользовательского ввода может представлять любое из ряда устройств пользовательского ввода, включающих, но не ограниченных ими, интерфейс сенсорного дисплея, клавиатуру, мышь, модуль голосовых команд, устройство захвата жеста (например, с основанными на камере возможностями захвата ввода данных) или любым другим из ряда устройств пользовательского ввода. Пользовательский ввод, принятый через интерфейс 376 пользовательского ввода, может быть обработан процессором 331. Эта обработка может включать в себя генерирование пакетов данных, которые включают в себя принятую команду пользовательского ввода, в соответствии со способами, описанными в настоящем раскрытии. После генерирования транспортный блок 333 может обрабатывать пакеты данных для сетевой транспортировки на беспроводное устройство источника по UIBC.
[0063] Процессор 331 согласно Фиг. 3 может содержать один или более процессоров из широкого диапазона, таких как один или более цифровых сигнальных процессоров (процессоров DSP), микропроцессоры общего назначения, специализированные интегральные схемы (схемы ASIC), программируемые пользователем вентильные матрицы (матрицы FPGA), другие эквивалентные интегрированные или дискретные логические схемы или некоторую их комбинацию. Память 332 согласно Фиг. 3 может содержать любое большое разнообразие энергозависимой или энергонезависимой памяти, включающей в себя, но не ограниченной ими, оперативное запоминающее устройство (RAM), такое как синхронное динамическое оперативное запоминающее устройство (SDRAM), постоянное запоминающее устройство (ROM), энергонезависимое оперативное запоминающее устройство (NVRAM), электрически стираемое программируемое постоянное запоминающее устройство (EEPROM), флэш-память, и т.п. Память 232 может содержать считываемый компьютером запоминающий носитель для хранения аудио/видеоданных, а также других видов данных. Память 332 может дополнительно хранить команды и программный код, которые выполняются процессором 331, как часть выполнения различных способов, описанных в настоящем раскрытии.
[0064] Фиг. 4 показывает блок-схему примерной системы 410 передатчика и системы 450 приемника, которые могут быть использованы передатчиком/приемником 126 и передатчиком/приемником 166 на Фиг. 1 для связи по каналу 150 связи. В системе 410 передатчика данные трафика для ряда потоков данных выдаются от источника 412 данных в процессор 414 (TX) передачи данных. Каждый поток данных может быть передан по соответствующей антенне передачи. Процессор 414 TX передачи данных форматирует, кодирует и чередует данные трафика для каждого потока данных на основании конкретной схемы кодирования, выбранной для этого потока данных.
[0065] Закодированные данные для каждого потока данных могут быть мультиплексированы с данными пилот-сигнала, используя способы мультиплексирования с ортогональным частотным разделением каналов (OFDM). Может быть также использовано большое разнообразие других способов беспроводной связи, включающих в себя, но не ограниченных, множественный доступ с временным разделением каналов (TDMA), множественный доступ с частотным разделением каналов (FDMA), множественный доступ с кодовым разделением каналов (CDMA) или любую комбинацию OFDM, FDMA, TDMA и/или CDMA.
[0066] В соответствии с Фиг. 4, данные пилот-сигнала обычно являются известным шаблоном данных, который обрабатывается известным способом и может быть использован в системе приемника для оценки ответа канала. Мультиплексированные данные пилот-сигнала и закодированные данные для каждого потока данных затем модулируются (например, отображаются в символ) на основании конкретной схемы модуляции (например, двоичной фазовой манипуляции (BPSK), квадратурной фазовой манипуляции (QPSK), М-PSK или М-QAM (квадратурной амплитудной модуляции), где М может быть степенью двойки), выбранной для этого потока данных, чтобы выдать символы модуляции. Скорость передачи данных, кодирование и модуляция для каждого потока данных могут быть определены командами, выполненными процессором 430, который может быть подсоединен к памяти 432.
T
T
[0067] Затем символы модуляции для потоков данных выдаются в процессор 420 MIMO TX передачи данных, который может дополнительно обрабатывать символы модуляции (например, для OFDM). Затем процессор 420 MIMO TX передачи данных может выдавать N символьных потоков модуляции в N передатчиков (TMTR) 422a-422t. В некоторых аспектах процессор 420 MIMO TX передачи данных применяет веса формирования диаграммы направленности к символам потоков данных и к антенне, от которой передается символ.
T
T
[0068] Каждый передатчик 422 может принимать и обрабатывать соответствующий символьный поток, чтобы выдавать один или более аналоговых сигналов, и дополнительно приводить к требуемым условиям (например, усиливать, фильтровать и преобразовывать с повышением частоты) аналоговые сигналы, чтобы выдавать модулированный сигнал, подходящий для передачи по каналу MIMO. Затем N модулированных сигналов от передатчиков 422a-422t передаются от N антенн 424a-424t, соответственно.
R
[0069] В системе 450 приемника переданные модулированные сигналы принимаются N антеннами 452a-452r, и принятый сигнал от каждой антенны 452 выдается в соответствующий приемник (RCVR) 454a-454r. Приемник 454 приводит к требуемым условиям (например, фильтрует, усиливает и преобразует с понижением частоты) соответствующий принятый сигнал, переводит приведенный к требуемым условиям сигнал в цифровую форму, чтобы обеспечить выборки, и дополнительно обрабатывает выборки для выдачи соответствующего "принятого" символьного потока.
R
R
T
[0070] Затем процессор 460 RX приема данных принимает и обрабатывает N принятых символьных потоков от N приемников 454 на основании конкретного способа обработки приемника для выдачи N"обнаруженных" символьных потоков. Затем процессор 460 RX приема данных демодулирует, выполняет обратное чередование и декодирует каждый обнаруженный символьный поток для восстановления данных трафика для потока данных. Обработка процессором 460 RX приема данных может быть комплементарной к той, которая выполняется процессором 420 MIMO TX передачи данных и процессором 414 TX передачи данных в системе 410 передатчика.
[0071] Процессор 470, который может быть подсоединен к памяти 472, периодически определяет, какую использовать матрицу предварительного кодирования. Сообщение обратной линии связи может содержать различные типы информации относительно линии связи и/или принятого потока данных. Затем сообщение обратной линии связи обрабатывается процессором 438 TX передачи данных, который также принимает данные трафика для ряда потоков данных от источника 436 данных, модулируется модулятором 480, приводится к требуемым условиям передатчиками 454a-454r и передается назад в систему 410 передатчика.
[0072] В системе 410 передатчика модулированные сигналы от системы 450 приемника принимаются антеннами 424, приводятся к требуемым условиям приемниками 422, демодулируются демодулятором 440 и обрабатываются процессором 442 RX приема данных, чтобы извлечь сообщение обратной линии связи, переданное системой 450 приемника. Процессор 430 затем определяет, какую использовать матрицу предварительного кодирования, чтобы определить веса диаграммы направленности, затем обрабатывает извлеченное сообщение.
[0073] Фиг. 5A является блок-схемой, иллюстрирующей примерную последовательность передачи сообщений между устройством 520 источника и устройством 560 получателя в качестве части сеанса согласования возможностей. Согласование возможностей может иметь место как часть большего процесса установления сеанса связи между устройством 520 источника и устройством 560 получателя. Этот сеанс может, например, быть установлен посредством Wi-Fi Direct или TDLS как лежащий в основе стандарт соединения. После установления сеанса Wi-Fi Direct или TDLS устройство 560 получателя может инициировать соединение TCP с устройством 520 источника. В качестве части установления соединения TCP может быть установлен порт управления, реализующий протокол потоковой передачи в реальном времени (RTSP), чтобы управлять сеансом связи между устройством 520 источника и устройством 560 получателя.
[0074] Устройство 520 источника может в целом работать так же, как описано выше для устройства 120 источника на Фиг. 1A, и устройство 560 получателя может в целом работать так же, как описано выше для устройства 160 получателя на Фиг. 1A. После того, как устройство 520 источника и устройство 560 получателя установят связность, устройство 520 источника и устройство 560 получателя могут определить набор параметров, которые должны быть использованы для их последующего сеанса связи в качестве части обмена согласованием возможностей.
[0075] Устройство 520 источника и устройство 560 получателя могут согласовать возможности через последовательность сообщений. Сообщения, например, могут быть сообщениями протокола потоковой передачи в реальном времени (RTSP). На любом этапе согласований получатель сообщения запроса RTSP может ответить посредством ответа RTSP, который включает в себя код состояния RTSP, кроме RTSP OK, в этом случае обмен сообщениями может быть повторен с другим набором параметров, или может быть закончен сеанс согласования возможностей.
[0076] Устройство 520 источника может послать первое сообщение (сообщение запроса опций RTSP (RTSP OPTIONS)) на устройство 560 получателя, чтобы определить набор способов RTSP, которые поддерживает устройство 560 получателя. После приема первого сообщения от устройства 520 источника устройство 560 получателя может ответить вторым сообщением (сообщением ответа RTSP OPTIONS), которое перечисляет способы RTSP, поддерживаемые устройством 560 получателя. Второе сообщение может также включать в себя код состояния RTSP OK.
[0077] После посылки второго сообщения на устройство 520 источника, устройство 560 получателя может послать третье сообщение (сообщение запроса RTSP OPTIONS), чтобы определить набор способов RTSP, которые поддерживает устройство 520 источника. После приема третьего сообщения от устройства 560 получателя, устройство 520 источника может ответить четвертым сообщением (сообщением ответа RTSP OPTIONS), которое перечисляет способы RTSP, поддерживаемые устройством 520 источника. Четвертое сообщение может также включать в себя код состояния RTSP OK.
[0078] После посылки четвертого сообщения устройство 520 источника может послать пятое сообщение (сообщение запроса GET_PARAMETER RTSP), чтобы определить список возможностей, которые представляют интерес для устройства 520 источника. Устройство 560 получателя может ответить шестым сообщением (сообщением ответа GET_PARAMETER RTSP). Шестое сообщение может содержать код состояния RTSP. Если кодом состояния RTSP является OK, то шестое сообщение может также включать в себя параметры ответа для параметра, определенного в пятом сообщении, которые поддерживаются устройством 560 получателя. Устройство 560 получателя может игнорировать параметры в пятом сообщении, которое не поддерживает устройство 560 получателя.
[0079] На основании шестого сообщения источник 520 может определить оптимальный набор параметров, которые должны быть использованы для сеанса связи, и может послать седьмое сообщение (сообщение запроса SET_PARAMETER RTSP) на устройство 560 получателя. Седьмое сообщение может содержать набор параметров, который должен быть использован во время сеанса связи между устройством 520 источника и устройством 560 получателя. Седьмое сообщение может включать в себя wfd-presentation-ur1, который описывает универсальный идентификатор ресурса (URI), который должен быть использован в запросе на установку RTSP, чтобы установить сеанс связи. wfd-presentation-ur1 определяет URI, который может использовать устройство 560 получателя для более поздних сообщений во время обмена установлением сеанса. Значения wfd-ur10 и wfd-ur11, определенные в этом параметре, могут соответствовать значениям rtp-port0 и значениям rtp-port1 в wfd-client-rtp-ports в седьмом сообщении. RTP в этом случае в целом относится к протоколу в реальном времени, который может работать поверх UDP.
[0080] После приема седьмого сообщения устройство 560 получателя может ответить восьмым сообщением с кодом состояния RTSP, указывающим, была ли успешна установка параметров, как определено в седьмом сообщении. Как упомянуто выше, роли или устройство источника и устройство получателя могут быть изменены на обратные или изменяться в различных сеансах. Порядок сообщений, которые устанавливают сеанс связи, может в некоторых случаях определить устройство, которое работает в качестве источника, и определить устройство, которое работает в качестве получателя.
[0081] Фиг. 5B является блок-схемой, иллюстрирующей другую примерную последовательность передачи сообщения между устройством 560 источника и устройством 520 получателя как часть сеанса согласования возможностей. Последовательность передачи сообщения на Фиг. 5B предназначена, чтобы обеспечить более подробный вид последовательности передачи, описанной выше для Фиг. 5A. На Фиг. 5B сообщение "1b. GET_PARAMETER RESPONSE" показывает пример сообщения, которое идентифицирует список поддерживаемых категорий ввода (например, родового и HIDC) и множество списков поддерживаемых типов ввода. Каждая из поддерживаемых категорий ввода из списка поддерживаемых категорий ввода имеет ассоциированный список поддерживаемых типов (например, generic_cap_list и hidc_cap_list). На Фиг. 5B сообщение "2a. SET_PARAMETER REQUEST" является примером второго сообщения, которое идентифицирует второй список поддерживаемых категорий ввода (например, родового и HIDC), и множество вторых списков поддерживаемых типов. Каждая из поддерживаемых категорий ввода из второго списка поддерживаемых категорий ввода имеет ассоциированный второй список поддерживаемых типов (например, generic_cap_list и hidc_cap_list). Сообщение "1b. GET_PARAMETER RESPONSE" идентифицирует категории ввода и типы ввода, поддерживаемые устройством 560 получателя. Сообщение "2a. SET_PARAMETER REQUEST" идентифицирует категории ввода и типы ввода, поддерживаемые устройством 520 источника, но это может не быть полным списком всех категорий ввода и типов ввода, поддерживаемых устройством 520 источника. Вместо этого сообщение "2a. SET_PARAMETER REQUEST" может идентифицировать только такие категории ввода и типы ввода, идентифицированные в сообщении "1b. GET_PARAMETER RESPONSE", как поддерживаемые устройством 560 получателя. Таким образом, категории ввода и типы ввода, идентифицированные в сообщении "2a. SET_PARAMETER REQUEST", могут составлять поднабор категорий ввода и типов ввода, идентифицированных в сообщении "1b. GET_PARAMETER RESPONSE".
[0082] Фиг. 6 является концептуальной диаграммой, иллюстрирующей один пример пакета данных, который может быть сгенерирован устройством получателя и передан на устройство источника. Аспекты пакета 600 данных будут объяснены со ссылками на Фиг. 1A, но рассмотренные способы могут применяться к дополнительным типам систем источника/получателя. Пакет 600 данных может включать в себя заголовок 610 пакета данных с последующими полезными данными 650. Полезные данные 650 могут дополнительно включать в себя один или более заголовков полезных данных (например, заголовок 630 полезных данных). Пакет 600 данных может, например, быть передан от устройства 160 получателя Фиг. 1 на устройство 120 источника таким образом, чтобы пользователь устройства 160 получателя мог управлять аудио/видеоданными, передаваемыми устройством 120 источника. В таком случае полезные данные 650 могут включать в себя данные пользовательского ввода, принятые в устройстве 160 получателя. Полезные данные 650 могут, например, идентифицировать одну или более пользовательских команд. Устройство 160 получателя может принять одну или более пользовательских команд и на основании принятых команд может генерировать заголовок 610 пакета данных и полезные данные 650. На основании контента заголовка 610 пакета данных пакета 600 данных устройство 120 источника может провести синтаксический анализ полезных данных 650, чтобы идентифицировать данные пользовательского ввода, принятые в устройстве 160 получателя. На основании данных пользовательского ввода, содержащихся в полезных данных 650, устройство 120 источника может некоторым образом изменять аудио и видеоданные, передаваемые от устройства 120 источника на устройство 160 получателя.
[0083] Используемые в настоящем раскрытии термины "проводить синтаксический анализ" и "выполнение синтаксического анализа" в целом относятся к процессу анализа битового потока, чтобы извлечь данные из битового потока. После извлечения данные могут быть обработаны устройством 120 источника, например. Извлечение данных может, например, включать в себя идентификацию того, как форматирована информация в битовом потоке. Как будет описано более подробно ниже, заголовок 610 пакета данных может определить стандартизированный формат, который известен как устройству 120 источника так и устройству 160 получателя. Полезные данные 650, однако, могут быть отформатированы одним из многих возможных способов. Посредством проведения синтаксического анализа заголовка 610 пакета данных устройство 120 источника может определить, как форматированы полезные данные 650, и таким образом устройство 120 источника может провести синтаксический анализ 650 полезных данных, чтобы извлечь из полезных данных 650 одну или более команд пользовательского ввода. Это может обеспечить гибкость относительно различных типов полезных данных, которые могут поддерживаться в связи источник-получатель. Как будет описано более подробно ниже, полезные данные 650 могут также включать в себя один или более заголовков полезных данных, такие как заголовок 630 полезных данных. В таких случаях устройство 120 источника может провести синтаксический анализ заголовка 610 пакета данных, чтобы определить формат для заголовка 630 полезных данных, и затем провести синтаксический анализ заголовка 630 полезных данных, чтобы определить формат для остатка полезных данных 650.
[0084] Диаграмма 620 является концептуальным описанием того, как может быть форматирован заголовок 610 пакета данных. Числа 0-15 в ряду 615 предназначены, чтобы идентифицировать местоположения битов в заголовке 610 пакета данных, и не предназначены, чтобы фактически представлять информацию, содержащуюся в заголовке 610 пакета данных. Заголовок 610 пакета данных включает в себя поле 621 версии, флаг 622 временной отметки, зарезервированное поле 623, поле 624 категории ввода, поле 625 длины и необязательное поле 626 временной отметки.
[0085] В примере согласно Фиг. 6 поле 621 версии является 3-битовым полем, которое может указать версию конкретного протокола передачи данных, реализуемого устройством 160 получателя. Значение в поле 621 версии может информировать устройство 120 источника о том, как провести синтаксический анализ остатка заголовка 610 пакета данных, а также о том, как провести синтаксический анализ полезных данных 650 . В примере на Фиг. 6 поле 621 версии является 3-битовым полем, которое разрешает уникальный идентификатор для восьми различных версий. В других примерах большее или меньшее количество битов может быть выделено для поля 621 версии.
[0086] В примере на Фиг. 6 флаг (T) 622 временной отметки является 1-битовым полем, которое указывает, имеется ли поле 626 временной отметки в заголовке 610 пакета данных. Поле 626 временной отметки является 16-битовым полем, содержащим временную отметку, основанную на мультимедийных данных, которые были сгенерированы устройством 120 источника и переданы на устройство 160 получателя. Временная отметка может, например, быть порядковым номером, назначенным кадрам видео посредством устройства 120 источника до того, как будут переданы кадры на устройство 160 получателя. Флаг 622 временной отметки может, например, включать в себя "1", чтобы указать, что есть поле 626 временной отметки, и может включать в себя "0", чтобы указать, что нет поля 626 временной отметки. После проведения синтаксического анализа заголовка 610 пакета данных и определения, что есть поле 626 временной отметки, устройство 120 источника может обработать временную отметку, включенную в поле 626 временной отметки. После проведения синтаксического анализа заголовка 610 пакета данных и определения, что нет поля 626 временной отметки, устройство 120 источника может начать проводить синтаксический анализ полезных данных 650 после проведения синтаксического анализа поля 625 длины, так как нет никакого поля временной отметки в заголовке 610 пакета данных.
[0087] Если есть, поле 626 временной отметки может включать в себя временную отметку для идентификации кадра видеоданных, которые были отображены в беспроводном устройстве 160 получателя, когда были получены данные пользовательского ввода полезных данных 650. Временная отметка, например, может быть добавлена к кадру видео посредством устройства 120 источника до того, как устройство 120 источника передаст кадр видео на устройство 160 получателя. Соответственно, устройство 120 источника может генерировать кадр видео и включить в видеоданные кадра, в качестве метаданных, например, временную отметку. Устройство 120 источника может передать видео кадр с временной отметкой на устройство 160 получателя, и устройство 160 получателя может отображать кадр видео. В то время как кадр видео отображается устройством 160 получателя, устройство 160 получателя может принять пользовательскую команду от пользователя. Когда устройство 160 получателя генерирует пакет данных для передачи пользовательской команды на устройство 120 источника, устройство 160 получателя может включать в поле 626 временной отметки временную отметку кадра, который был отображен устройством 160 получателя, когда была принята пользовательская команда.
[0088] После приема пакета 600 данных с полем 626 временной отметки, которое есть в заголовке, беспроводное устройство 120 источника может идентифицировать кадр видео, отображаемый в устройстве 160 получателя, в то время как были получены данные пользовательского ввода полезных данных 650, и обработать данные пользовательского ввода на основании контента кадра, идентифицированного временной отметкой. Например, если данные пользовательского ввода являются командой касания, примененной к сенсорному дисплею, или щелчком указателя мыши, устройство 120 источника может определить контент кадра, отображаемого в то время, когда пользователь применил команду касания к дисплею или щелкнул мышью. В некоторых случаях контент кадра может быть необходим, чтобы должным образом обработать полезные данные. Например, пользовательский ввод на основании касания пользователя или щелчка мыши могут зависеть от того, что было показано на дисплее во время касания или щелчка. Касание или щелчок могут, например, соответствовать символу или опции меню. В случаях, в которых контент дисплея изменяется, временная отметка, которая есть в поле 626 временной отметки, может быть использована устройством 120 источника, чтобы сопоставить касание или щелчок с корректным символом или опцией меню.
[0089] Устройство 120 источника может дополнительно или альтернативно сравнивать временную отметку в поле 626 временной отметки с временной отметкой, примененной к в настоящее время воспроизводимому кадру видео. Посредством сравнения временной отметки поля 626 временной отметки с текущей временной отметкой устройство 120 источника может определить время прохождения сигнала «туда и обратно». Время прохождения сигнала «туда и обратно» в целом соответствует количеству времени, которое истекает от момента, когда кадр передан устройством 120 источника, до момента, когда пользовательский ввод на основании этого кадра принят назад в устройстве 120 источника от устройства 160 получателя. Время прохождения сигнала «туда и обратно» может обеспечить устройству 120 источника индикацию системного времени ожидания, и если время прохождения сигнала «туда и обратно» больше, чем пороговое значение, то устройство 120 источника может игнорировать данные пользовательского ввода, содержащиеся в полезных данных 650, в соответствии с предположением, что команда ввода была применена к устаревшему кадру отображения. Когда время прохождения сигнала «туда и обратно» меньше, чем порог, устройство 120 источника может обработать данные пользовательского ввода и приспособить аудио/видеоконтент, передаваемый в ответ на данные пользовательского ввода. Пороги могут быть программируемыми, и различные типы устройств (или различные комбинации источника-получателя) могут быть сконфигурированы для определения различных порогов в течение времен прохождения сигнала «туда и обратно», которое является приемлемым.
[0090] В примере на Фиг. 6 зарезервированное поле 623 является 8-битовым полем, которое не включает в себя информацию, используемую посредством источника 120 при проведении синтаксического анализа заголовка 610 пакета данных и полезных данных 650. Будущие версии конкретного протокола (как идентифицировано в поле 621 версии), однако, могут использовать зарезервированное поле 623, когда устройство 120 источника может использовать информацию в зарезервированном поле 623 для проведения синтаксического анализа заголовка 610 пакета данных и/или для проведения синтаксического анализа полезных данных 650. Зарезервированное поле 623 вместе с полем 621 версии потенциально обеспечивает возможности для расширения и добавления признаков к формату пакета данных без существенного изменения формата и признаков, которые уже используются.
[0091] В примере на Фиг. 6 поле 624 категории ввода является 4-битовым полем для идентификации категории ввода для данных пользовательского ввода, содержащихся в полезных данных 650. Устройство 160 получателя может распределять по категориям данные пользовательского ввода, чтобы определить категорию ввода. Распределение по категориям данных пользовательского ввода может, например, быть основано на устройстве, от которого принята команда, или основано на свойствах самой команды. Значение поля 624 категории ввода, возможно вместе с другой информацией заголовка 610 пакета данных, идентифицирует для устройства 120 источника, как форматированы полезные данные 650. На основании этого форматирования устройство 120 источника может провести синтаксический анализ полезных данных 650, чтобы определить пользовательский ввод, который был принят в устройстве 160 получателя.
[0092] Так как категория 624 ввода в примере на Фиг. 6 составляет 4 бита, шестнадцать различных категорий ввода, вероятно, могут быть идентифицированы. Одна такая категория ввода может быть форматом родового ввода, чтобы указать, что данные пользовательского ввода полезных данных 650 форматируются, используя родовые информационные элементы, определенные в протоколе, выполняемом как устройством 120 источника, так и устройством 160 получателя. Формат родового ввода, который будет описан более подробно ниже, может использовать родовые информационные элементы, которые позволяют пользователю устройства 160 получателя взаимодействовать с устройством 120 источника на уровне приложения.
[0093] Другая такая категория ввода может быть форматом команды устройства интерфейса с человеком (HIDC), чтобы указать, что данные пользовательского ввода полезных данных 650 форматированы на основании типа устройства ввода, используемого для приема данных ввода. Примеры типов устройств включают в себя клавиатуру, мышь, сенсорное устройство ввода, джойстик, камеру, устройство захвата жеста (такое, как основанное на камере устройство ввода) и средство удаленного управления. Другие типы категорий ввода, которые могут быть идентифицированы в поле 624 категории ввода, включают в себя направление формата ввода для указания, что пользовательские данные в полезных данных 650 не начинались в устройстве 160 получателя, или специфичный для операционной системы формат и формат голосовой команды, чтобы указать, что полезные данные 650 включают в себя голосовую команду.
[0094] Поле 625 длины может содержать 16-битовое поле для указания длины пакета 600 данных. Длина, например, может быть указана в блоках из 8 битов. Так как проводится синтаксический анализ пакета 600 данных посредством устройства 120 источника в словах 16 битов, пакет 600 данных может быть заполнен до целого числа из 16 битов. На основании длины, содержащейся в поле 625 длины, устройство 120 источника может идентифицировать конец полезных данных 650 (то есть конец пакета 600 данных) и начало нового последующего пакета данных.
[0095] Различные размеры полей, обеспеченных в примере на Фиг. 6, просто предназначены, чтобы быть пояснительными, и предназначены, что поля могут быть реализованы, используя отличные количества битов, чем количество, которое показано на Фиг. 6. Дополнительно, также рассмотрено, что заголовок 610 пакета данных может включать в себя меньше, чем все поля, рассмотренные выше, или может использовать дополнительные поля, не рассмотренные выше. Действительно, способы настоящего раскрытия могут быть гибкими относительно фактического формата, используемого для различных полей данных пакетов.
[0096] После проведения синтаксического анализа заголовка 610 пакета данных, чтобы определить форматирование полезных данных 650, устройство 120 источника может провести синтаксический анализ полезных данных 650, чтобы определить команду пользовательского ввода, содержащуюся в полезных данных 650. Полезные данные 650 могут иметь свой собственный заголовок полезных данных (заголовок 630 полезных данных), указывающий содержимое полезных данных 650 . Таким образом, устройство 120 источника может провести синтаксический анализ заголовка 630 полезных данных на основании проведения синтаксического анализа заголовка 610 пакета данных, и затем провести синтаксический анализ остатка полезных данных 650 на основании проведения синтаксического анализа заголовка 630 полезных данных.
[0097] Если, например, поле 624 категории ввода заголовка 610 пакета данных указывает, что есть родовой ввод в полезных данных 650, то полезные данные 650 могут иметь формат родового ввода. Устройство 120 источника может, таким образом, провести синтаксический анализ полезных данных 650 согласно формату родового ввода. Как часть формата родового ввода, полезные данные 650 могут включать в себя последовательность из одного или более событий ввода с каждым событием ввода, имеющим свой собственный заголовок события ввода. Таблица 1, представленная ниже, идентифицирует поля, которые могут быть включены в заголовок ввода.
<b>Таблица 1</b>
Поле
Размер (октет)
Значение
ID родового IE
1
См. Таблицу 2
Длинна
2
Длина следующих полей в октетах
Описание
переменный
Детали пользовательских вводов. См. Таблицы.
[0098] Поле идентификации (ID) события родового ввода (IE) идентифицирует идентификацию события родового ввода для идентификации типа ввода. Поле ID родового IE может, например, быть одним октетом в длину и может включать в себя идентификацию, выбранную из Таблицы 2, представленной ниже. Если, как в этом примере, поле ID родового IE составляет 8 битов, то 256 различных типов вводов (идентифицированных 0-255) могут быть идентифицируемыми, хотя не всем 256 идентификациям обязательно нужен ассоциированный тип ввода. Некоторые из 256 могут быть зарезервированы для будущего использования с будущими версиями независимо от протокола, реализуемого устройством 160 получателя и устройством 120 источника. В Таблице 2, например, идентификации ID 9-255 родового IE не имеют ассоциированных типов ввода, но им могут быть назначены типы ввода в будущем.
[0099] Поле длины в заголовке события ввода идентифицирует длину поля описания, в то время как поле описания включает в себя информационные элементы, которые описывают пользовательский ввод. Форматирование поля описания может зависеть от типа ввода, идентифицированного в поле ID родового IE. Таким образом, устройство 120 источника может провести синтаксический анализ содержимого поля описания на основании типа ввода, идентифицированного в поле ID родового IE. На основании поля длины заголовка события ввода устройство 120 источника может определить конец одного события ввода в полезных данных 650 и начало нового события ввода. Как будет объяснено более подробно ниже, одна пользовательская команда может быть описана в полезных данных 650 как одно или более событий ввода.
[00100] Таблица 2 обеспечивает пример типов ввода с соответствующей ID родового IE, которая может быть использована для идентификации типа ввода.
<b>Таблица 2</b>
ID родового IE
Тип ввода
0
Левая кнопка мыши вниз/касание вниз
1
Левая кнопка мыши вверх/касание вверх
2
Движение мышью/движение касания
3
Клавиша вниз
4
Клавиша вниз
5
Изменение масштаба
6
Вертикальная прокрутка
7
Горизонтальная прокрутка
8
Вращение
9-255
Зарезервированный
[00101] Поля описания, ассоциированные с каждым типом ввода, могут иметь различный формат. Поля описания события «Левая кнопка мыши вниз/касание вниз», события «Левая кнопка мыши вверх/касание вверх» и события «Движение мышью/движение касания» могут, например, включать в себя информационные элементы, идентифицированные в Таблице 3, представленной ниже, хотя другие форматы могут быть также использованы в других примерах.
<b>Таблица 3</b>
Поле
Размер (октет)
Примечания
Количество указателей (N)
1
Количество указателей события движения посредством множественных касаний. Когда установлено в 1, указывает событие движения посредством единственного касания
Для i=1:N{
ID указателя
1
Номер идентификации этого указателя. Значение находится в промежутке [0,1,…]
X-координата
2
X-координата для события, нормализованного относительного согласованного разрешения потока видео между устройством получателя и устройством источника
Y-координата}
2
Y-координата для события, нормализованного относительного согласованного разрешения потока видео между устройством получателя и устройством источника
[00102] Количество указателей может идентифицировать количество касаний или щелчков мыши, ассоциированных с событием ввода. Каждый указатель может иметь уникальный ID указателя. Если, например, событие множественных касаний включает в себя три касания пальцем, то событие ввода может иметь три указателя, каждый с уникальным ID указателя. Каждый указатель (то есть каждое касание пальцем) может иметь соответствующую x-координату и y-координату, соответствующую тому, где имело место касание.
[00103] Единственная пользовательская команда может быть описана как последовательность событий ввода. Например, если скольжение тремя пальцами является командой закрыть приложение, скольжение тремя пальцами может быть описано в полезных данных 650 как событие касания вниз тремя указателями, событие движения касания тремя указателями и событие касания вверх тремя указателями. Три указателя события касания вниз могут иметь одни и те же идентификаторы ID указателя, что и три указателя события движения касания и события касания вверх. Устройство 120 источника может интерпретировать комбинацию этих трех событий ввода как скольжение тремя пальцами.
[00104] Поля описание события «Клавиша вниз» или события «Клавиша вверх» могут, например, включать в себя информационные элементы, идентифицированные в Таблице 4, представленной ниже.
<b>Таблица 4</b>
Поле
Размер (октет)
Примечания
Зарезервировано
1
зарезервировано
Код клавиши 1 (ASCII)
2
Код клавиши первого события «клавиша вниз или вверх». Основной/расширенный код ASCII использует младший один байт. Старший один байт зарезервирован для будущего ASCII-совместимого кода клавиши
Код клавиши 2 (ASCII)
2
Код клавиши второго события «клавиша вниз или вверх». Основной/расширенный код ASCII использует младший один байт. Старший один байт зарезервирован для будущего ASCII-совместимого кода клавиши
[00105] Поле описания события изменения масштаба может, например, включать в себя информационные элементы, идентифицированные в Таблице 5, представленной ниже.
<b>Таблица 5</b>
Поле
Размер (октет)
Примечания
X
2
Опорная X-координата для операции изменения масштаба, нормализованной относительно согласованного разрешения видео потока между устройством получателя и устройством источника
Y
2
Опорная Y-координата для операции изменения масштаба, нормализованной относительно согласованного разрешения видео потока между устройством получателя и устройством источника
Целое число умножить на изменение масштаба
1
Беззнаковая целая часть количества раз на изменение масштаба
Дробное число умножить на изменение масштаба
1
Дробная часть количества раз на изменение масштаба
[00106] Поле описания события горизонтальной прокрутки или события вертикальной прокрутки может, например, включать в себя информационные элементы, идентифицированные в Таблице 6, представленные ниже.
<b>Таблица 6</b>
Поле
Размер (октет)
Примечание
Величина для прокрутки
2
Количество пикселей для прокрутки, нормализованной относительно согласованного разрешения видео потока между устройством получателя и устройством источника. Отрицательное число может указывать на прокрутку направо, и положительное число может указывать на прокрутку налево.
[00107] Вышеупомянутые примеры показали некоторые примерные способы, которыми могут быть отформатированы полезные данные для категории родового ввода. Если поле 624 категории ввода заголовка 610 пакета данных указывают отличную категорию ввода, такую как направленный пользовательский ввод, то полезные данные 650 может иметь отличный формат ввода. С направленным пользовательским вводом устройство 160 получателя может принять данные пользовательского ввода от устройства третьей стороны и направить ввод на устройство 120 источника, не интерпретируя данные пользовательского ввода. Устройство 120 источника может, таким образом, провести синтаксический анализ полезных данных 650 согласно направленному формату пользовательского ввода. Например, заголовок 630 полезных данных полезных данных 650 может включать в себя поле для идентификации устройства третьей стороны, от которого был получен пользовательский ввод. Поле может, например, включать в себя адрес Интернет-протокола (IP) устройства третьей стороны, MAC адрес, доменное имя или некоторый другой такой идентификатор. Устройство 120 источника может провести синтаксический анализ остатка полезных данных на основании идентификатора устройства третьей стороны.
[00108] Устройство 160 получателя может согласовать возможности с устройством третьей стороны с помощью последовательности сообщений. Устройство 160 получателя может затем передать уникальный идентификатор устройства третьей стороны на устройство 120 источника как часть установления сеанса связи с устройством 120 источника как часть процесса согласования возможностей. Альтернативно, устройство 160 получателя может передать информацию, описывающую устройство третьей стороны, на устройство 120 источника, и на основании этой информации устройство 120 источника может определить уникальный идентификатор для устройства третьей стороны. Информация, описывающая устройство третьей стороны, может, например, включать в себя информацию для идентификации устройства третьей стороны и/или информацию для идентификации возможностей устройства третьей стороны. Независимо от того, определены ли уникальные идентификаторы посредством устройства 120 источника или устройства 160 получателя, когда устройство 160 получателя передает пакеты данных с пользовательским вводом, полученным от устройства третьей стороны, устройство 160 получателя может включать уникальный идентификатор в пакет данных в заголовке полезных данных, например, таким образом, чтобы устройство 120 источника могло идентифицировать происхождение пользовательского ввода.
[00109] Если поле 624 категории ввода заголовка 610 пакета данных все еще указывает отличную категорию ввода, такую как голосовая команда, то полезные данные 650 могут все еще иметь отличный формат ввода. Для голосовой команды полезные данные 650 могут включать в себя закодированное аудио. Кодек для кодирования и декодирования аудио голосовой команды может быть согласован между устройством 120 источника и устройством 160 получателя с помощью последовательности сообщений. Для передачи голосовой команды поле 626 временной отметки может включать в себя значение времени дискретизации речевого сигнала. В таком случае флаг 622 временной отметки может быть установлен для указания, что есть временная отметка, но вместо временной отметки, которая описана выше, поле 626 временной отметки может включать в себя значение времени дискретизации речевого сигнала для закодированного аудио полезных данных 650.
[00110] В некоторых примерах голосовая команда может быть передана как родовая команда, как описано выше, в этом случае поле 624 категории ввода может быть установлено для идентификации формата родовой команды, и одна из зарезервированных идентификаций родовых IE может быть назначена на голосовые команды. Если голосовая команда передана как родовая команда, то частота дискретизации речевого сигнала может присутствовать в поле 626 временной отметки заголовка 610 пакета данных или может присутствовать в полезных данных 650.
[00111] Для захваченных данных о голосовой команде голосовые данные могут быть инкапсулированы множественными способами. Например, данные голосовой команды могут быть инкапсулированы, используя RTP, который может обеспечить тип полезных данных, чтобы идентифицировать кодек и временную отметку, с временной отметкой, используемой для идентификации частоты дискретизации. Данные RTP могут быть инкапсулированы, используя формат родового пользовательского ввода, описанный выше, или с или без опциональной временной отметки. Устройство 160 получателя может передать данные родового ввода, которые переносят данные голосовой команды, на устройство 120 источника, используя TPC/IP.
[00112] Как рассмотрено ранее, когда координаты включены как часть пакета данных, такого как пакет 600 данных, в полезные данные 650, например, координаты могут соответствовать координатам, масштабированным на основании согласованного разрешения, координатам окна экрана дисплея, нормализованным координатам или координатам, ассоциированным с дисплеем получателя. В некоторых случаях дополнительная информация может быть включена или в пакет данных или передана отдельно для использования посредством устройства источника, чтобы нормализовать координаты, принятые в пакете данных.
[00113] Независимо от категории ввода для конкретного пакета данных, заголовок пакета данных может быть заголовком пакета уровня приложений, и пакет данных может быть передан по TCP/IP. TCP/IP может разрешить устройству 160 получателя и устройству 120 источника выполнять способы повторной передачи в случае потери пакета. Пакет данных может быть послан от устройства 160 получателя на устройство 120 источника, чтобы управлять аудиоданными или видеоданными устройства 120 источника, или для других целей, например, чтобы управлять приложением, работающим на устройстве 120 источника.
[00114] Фиг. 7A является блок-схемой примерного способа согласования возможностей между устройством получателя и устройством источника. Иллюстрированный примерный способ может быть выполнен устройством 160 получателя (Фиг. 1A) или устройством 360 получателя (Фиг. 3). В некоторых примерах считываемый компьютером запоминающий носитель (например, память 332) может хранить команды, модули или алгоритмы, которые при выполнении вынуждают один или более процессоров (например, процессор 331) выполнять один или более иллюстрированных этапов в одной или более из блок-схем, описанных в настоящем описании.
[00115] Способ согласно Фиг. 7A включает в себя устройство 160 получателя, принимающее от устройства 120 источника первое сообщение (этап 701). Сообщение может, например, содержать запрос получения параметра. В ответ на первое сообщение устройство 160 получателя может послать второе сообщение на устройство 120 источника (этап 703). Второе сообщение может, например, содержать ответ получения параметра, который идентифицирует первый список поддерживаемых категорий ввода и множество первых списков поддерживаемых типов, причем каждая из поддерживаемых категорий ввода из первого списка поддерживаемых категорий ввода имеет ассоциированный первый список поддерживаемых типов. Поддерживаемые категории ввода могут, например, соответствовать тем же категориям, используемым для поля 624 категории ввода на Фиг. 6. Таблица 2, представленная выше, представляет один пример поддерживаемых типов для конкретной категории ввода (родовые вводы в этом примере). Устройство 160 получателя может принять от устройства 120 источника третье сообщение (этап 705). Третье сообщение может, например, содержать запрос установления параметра, причем запрос установления параметра идентифицирует порт для связи, второй список поддерживаемых категорий ввода и множество вторых списков поддерживаемых типов, где каждая из поддерживаемых категорий ввода из второго списка поддерживаемых категорий ввода имеет ассоциированный второй список поддерживаемых типов, и каждый из поддерживаемых типов из вторых списков включает в себя поднабор типов из первых списков. Устройство 160 получателя может передать на устройство 120 источника четвертое сообщение (этап 707). Четвертое сообщение может, например, содержать ответ установления параметра, чтобы подтвердить, что типы вторых списков были разрешены. Устройство 160 получателя может принять от устройства 120 источника пятое сообщение (этап 709). Пятое сообщение может, например, содержать второй запрос установления параметра, который указывает, что канал связи между устройством 120 источника и устройством 160 получателя был разрешен. Канал связи может, например, содержать обратный канал пользовательского ввода (UIBC). Устройство 160 получателя может передать на устройство 120 источника шестое сообщение (этап 711). Шестое сообщение может, например, содержать второй ответ установления параметра, который подтверждает прием второго запроса установления параметра посредством устройства 160 получателя.
[00116] Фиг. 7B является блок-схемой примерного способа согласования возможностей между устройством получателя и устройством источника. Иллюстрированный примерный способ может быть выполнен устройством 120 источника (Фиг. 1A) или устройством 220 источника (Фиг. 2). В некоторых примерах считываемый компьютером запоминающий носитель (например, память 232) может хранить команды, модули или алгоритмы, которые при выполнении вынуждают один или более процессоров (например, процессор 231) выполнять один или более иллюстрированных этапов в этой блок-схеме.
[00117] Способ согласно Фиг. 7B включает в себя устройство 120 источника, передающее на устройство 160 получателя первое сообщение (702). Первое сообщение может, например, содержать запрос получения параметра. Устройство 120 источника может принять второе сообщение от устройства 160 получателя (704). Второе сообщение может, например, содержать ответ получения параметра, который идентифицирует первый список поддерживаемых категорий ввода и множество первых списков поддерживаемых типов, причем каждая из поддерживаемых категорий ввода из первого списка поддерживаемых категорий ввода имеет ассоциированный первый список поддерживаемых типов. Устройство 120 источника может передать на устройство 160 получателя третье сообщение (706). Третье сообщение может, например, содержать запрос установления параметра, который идентифицирует порт для передачи данных, второй список поддерживаемых категорий ввода и множество вторых списков поддерживаемых типов, каждая из поддерживаемых категорий ввода из второго списка поддерживаемых категорий ввода имеет ассоциированный второй список поддерживаемых типов, и каждый из поддерживаемых типов из вторых списков включает в себя поднабор типов из первых списков. Устройство 120 источника может принять от устройства 160 получателя четвертое сообщение (708). Четвертое сообщение может, например, содержать ответ установления параметра, чтобы подтвердить, что типы вторых списков были разрешены. Устройство 120 источника может передать на устройство 160 получателя пятое сообщение (710). Пятое сообщение может, например, содержать второй запрос установления параметра, который указывает, что канал связи между устройством 120 источника и устройством 160 получателя был разрешен. Канал связи может, например, содержать обратный канал пользовательского ввода (UIBC). Устройство 120 источника может принять от устройства 160 получателя шестое сообщение (712). Шестое сообщение может, например, содержать второй ответ установления параметра, который подтверждает прием второго запроса установления параметра посредством устройства 160 получателя.
[00118] Фиг. 8 A является блок-схемой примерного способа передачи данных пользовательского ввода от беспроводного устройства получателя на беспроводное устройство источника в соответствии с настоящим раскрытием. Иллюстрированный примерный способ может быть выполнен устройством 160 получателя (Фиг. 1A) или устройством 360 получателя (Фиг. 3). В некоторых примерах считываемый компьютером запоминающий носитель (например, память 332) может хранить команды, модули или алгоритмы, которые при выполнении вынуждают один или более процессоров (например, процессор 331) выполнять один или более иллюстрированных этапов в блок-схеме.
[00119] Способ согласно Фиг. 8A включает в себя получение данных пользовательского ввода в беспроводном устройстве получателя, таком как беспроводное устройство 160 получателя (801). Данные пользовательского ввода могут быть получены через компонент пользовательского ввода беспроводного устройства 160 получателя, такой как, например, интерфейс 376 пользовательского ввода, показанный относительно беспроводного устройства 360 получателя. Дополнительно, устройство 160 получателя может разбивать на категории данные пользовательского ввода как, например, родовые, направленные или специфичные для операционной системы. Устройство 160 получателя может затем генерировать заголовок пакета данных на основании данных пользовательского ввода (803). Заголовок пакета данных может быть заголовком пакета уровня приложений. Заголовок пакета данных может содержать, среди других полей, поле для идентификации категории ввода, соответствующей данным пользовательского ввода. Категория ввода может содержать, например, формат родового ввода или команду устройства интерфейса человека. Устройство 160 получателя может дополнительно генерировать пакет данных (805), где пакет данных содержит сгенерированный заголовок пакета данных и полезные данные. В одном примере полезные данные могут включать в себя принятые данные пользовательского ввода и могут идентифицировать одну или более пользовательских команд. Устройство 160 получателя может затем передать сгенерированный пакет данных (807) на беспроводное устройство источника (например, устройство 120 источника согласно Фиг. 1A или устройство 220 источника согласно Фиг. 2). Устройство 160 получателя может содержать компоненты, которые разрешают передачу пакетов данных, включающие в себя транспортный блок 333 и беспроводной модем 334, как показано на Фиг. 3, например. Устройство 160 получателя может передать пакет данных по TCP/IP.
[00120] Фиг. 8B является блок-схемой примерного способа приема данных пользовательского ввода от беспроводного устройства получателя в беспроводном устройстве источника в соответствии с настоящим раскрытием. Иллюстрированный примерный способ может быть выполнен устройством 120 источника (Фиг. 1A) или устройством 220 источника (Фиг. 2). В некоторых примерах считываемый компьютером запоминающий носитель (например, память 232) может хранить команды, модули или алгоритмы, которые при выполнении вынуждают один или более процессоров (например, процессор 231) выполнять один или более иллюстрированных этапов в блок-схеме.
[00121] Способ согласно Фиг. 8B включает в себя прием пакета данных (этап 802), где пакет данных может содержать, среди всего прочего, заголовок пакета данных и полезные данные. Полезные данные могут включать в себя, например, данные пользовательского ввода. Устройство 120 источника может содержать компоненты связи, которые разрешают передачу пакетов данных, включающие в себя транспортный блок 233 и беспроводной модем 234, например, как показано со ссылками на фиг. 2. Устройство 120 источника может затем провести синтаксический анализ заголовка пакета данных (804), включенного в пакет данных, чтобы определить категорию ввода, ассоциированную с данными пользовательского ввода, содержащимися в полезных данных. Устройство 120 источника может обработать полезные данные на основании определенной категории ввода (806). Пакеты данных, описанные со ссылками на Фиг. 8А и 8B, в целом могут принимать форму пакетов данных, описанных со ссылками на Фиг. 6, и могут быть использованы для управления аудио/видеоданными и приложениями в устройстве источника.
[00122] Фиг. 9A является блок-схемой примерного способа передачи данных пользовательского ввода от беспроводного устройства получателя на беспроводное устройство источника в соответствии с настоящим раскрытием. Иллюстрированный примерный способ может быть выполнен устройством 160 получателя (Фиг. 1A) или устройством 360 получателя (Фиг. 3). В некоторых примерах считываемый компьютером запоминающий носитель (например, память 332) может хранить команды, модули или алгоритмы, которые при выполнении вынуждают один или более процессоров (например, процессор 331) выполнять один или более иллюстрированных этапов в блок-схеме.
[00123] Способ согласно Фиг. 9A включает в себя получение данных пользовательского ввода в беспроводном устройстве получателя, таком как беспроводное устройство 160 получателя (901). Данные пользовательского ввода могут быть получены через компонент пользовательского ввода беспроводного устройства 160 получателя такой как, например, интерфейс 376 пользовательского ввода, показанный со ссылками на Фиг. 3. Устройство 160 получателя может затем генерировать полезные данные (903), где полезные данные могут описывать данные пользовательского ввода. В одном примере полезные данные могут включать в себя принятые данные пользовательского ввода и могут идентифицировать одну или более пользовательских команд. Устройство 160 получателя может дополнительно генерировать пакет данных (905), где пакет данных содержит заголовок пакета данных и сгенерированные полезные данные. Устройство 160 получателя может затем передать сгенерированный пакет данных (907) на беспроводное устройство источника (например, устройство 120 источника согласно Фиг. 1A или устройство 220 источника согласно Фиг. 2). Устройство 160 получателя может содержать компоненты, которые разрешают передачу пакетов данных, такие как транспортный блок 333 и беспроводной модем 334, например. Пакет данных может быть передан на беспроводное устройство источника по TCP/IP.
[00124] Фиг. 9В является блок-схемой примерного способа приема данных пользовательского ввода от беспроводного устройства получателя в беспроводном устройстве источника в соответствии с настоящим раскрытием. Иллюстрированный примерный способ может быть выполнен устройством 120 источника (Фиг. 1A) или устройством 220 источника (Фиг. 2). В некоторых примерах считываемый компьютером запоминающий носитель (например, память 232) может хранить команды, модули или алгоритмы, которые при выполнении вынуждают один или более процессоров (например, процессор 231) выполнять один или более иллюстрированных этапов в блок-схеме.
[00125] Способ согласно Фиг. 9B включает в себя прием пакета данных от устройства 360 получателя (902), где пакет данных может содержать, среди прочего, заголовок пакета данных и полезные данные. В одном примере полезные данные могут содержать, например, данные, описывающие детали пользовательского ввода, например, значение типа ввода. Устройство 120 источника может содержать компоненты связи, которые разрешают передачу пакетов данных, включающие в себя транспортный блок 233 и беспроводной модем 234, например, как показано со ссылками на Фиг. 2. Устройство 120 источника может затем провести синтаксический анализ пакета данных (904), чтобы определить значение типа ввода в поле типа ввода в полезных данных. Устройство 120 источника может обработать данные, описывающие детали пользовательского ввода, на основании определенного значения типа ввода (906). Пакеты данных, описанные со ссылками на Фиг. 9А и 9B, в целом могут принимать форму пакетов данных, описанных со ссылками на Фиг. 6.
[00126] Фиг. 10A является блок-схемой примерного способа передачи данных пользовательского ввода от беспроводного устройства получателя на беспроводное устройство источника в соответствии с настоящим раскрытием. Иллюстрированный примерный способ может быть выполнен устройством 160 получателя (Фиг. 1A) или устройством 360 получателя (Фиг. 3). В некоторых примерах считываемый компьютером запоминающий носитель (например, память 332) может хранить команды, модули или алгоритмы, которые при выполнении вынуждают один или более процессоров (например, процессор 331) выполнять один или более иллюстрированных этапов в этой блок-схеме.
[00127] Способ согласно Фиг. 10A включает в себя получение данных пользовательского ввода в беспроводном устройстве получателя, таком как беспроводное устройство 160 получателя (1001). Данные пользовательского ввода могут быть получены через компонент пользовательского ввода беспроводного устройства 160 получателя, такой как, например, интерфейс 376 пользовательского ввода, как показано со ссылками на Фиг. 3. Устройство 160 получателя может затем генерировать заголовок пакета данных на основании пользовательского ввода (1003). Заголовок пакета данных может содержать, среди других полей, флаг временной отметки (например, 1-битовое поле), чтобы указать, имеется ли поле временной отметки в заголовке пакета данных. Флаг временной отметки может, например, включать в себя "1", чтобы указать, что есть поле временной отметки, и может включать в себя "0", чтобы указать, что нет поля временной отметки. Поле временной отметки может быть, например, 16-битовым полем, содержащим временную отметку, сгенерированную устройством 120 источника и добавленную к видеоданным до передачи. Устройство 160 получателя может дополнительно генерировать пакет данных (1005), где пакет данных содержит сгенерированный заголовок пакета данных и полезные данные. В одном примере полезные данные могут включать в себя принятые данные пользовательского ввода и могут идентифицировать одну или более пользовательских команд. Устройство 160 получателя может затем передать сгенерированный пакет данных (1007) на беспроводное устройство источника (например, устройство 120 источника на Фиг. 1A или устройство 220 источника на Фиг. 2). Устройство 160 получателя может содержать компоненты, которые разрешают передачу пакетов данных, включающие в себя транспортный блок 333 и беспроводной модем 334, например, как показано со ссылками на фиг. 3. Пакет данных может быть передан на беспроводное устройство источника по TCP/IP.
[00128] Фиг. 10B является блок-схемой примерного способа приема данных пользовательского ввода от беспроводного устройства получателя в беспроводном устройстве источника в соответствии с настоящим раскрытием. Иллюстрированный примерный способ может быть выполнен устройством 120 источника (Фиг. 1A) или устройством 220 источника (Фиг. 2). В некоторых примерах считываемый компьютером запоминающий носитель (например, память 232) может хранить команды, модули или алгоритмы, которые при выполнении вынуждают один или более процессоров (например, процессор 231) выполнять один или более иллюстрированных этапов в блок-схеме.
[00129] Способ согласно Фиг. 10B включает в себя прием пакета данных от беспроводного устройства 160 получателя (1002), где пакет данных может содержать, среди всего прочего, заголовок пакета данных и полезные данные. Полезные данные могут включать в себя, например, данные пользовательского ввода. Устройство 120 источника может содержать компоненты связи, которые разрешают передачу пакетов данных, включающие в себя транспортный блок 233 и беспроводной модем 234, например, как показано со ссылками на фиг. 2. Устройство 120 источника может затем провести синтаксический анализ заголовка пакета данных (1004), включенного в пакет данных. Устройство 120 источника может определить, имеется ли поле временной отметки в заголовке пакета данных (1006). В одном примере устройство 120 источника может сделать определение на основании значения флага временной отметки, включенного в заголовок пакета данных. Если заголовок пакета данных включает в себя поле временной отметки, устройство 120 источника может обработать полезные данные на основании временной отметки, которая находится в поле временной отметки (1008). Пакеты данных, описанные со ссылками на Фиг. 10А и 10B, в целом могут принимать форму пакетов данных, описанных со ссылками на Фиг. 6, и могут быть использованы для управления аудио/видеоданными в устройстве источника.
[00130] Фиг. 11 A является блок-схемой примерного способа передачи данных пользовательского ввода от беспроводного устройства получателя на беспроводное устройство источника в соответствии с настоящим раскрытием. Иллюстрированный примерный способ может быть выполнен устройством 160 получателя (Фиг. 1A) или устройством 360 получателя (Фиг. 3). В некоторых примерах считываемый компьютером запоминающий носитель (например, память 332) может хранить команды, модули или алгоритмы, которые при выполнении вынуждают один или более процессоров (например, процессор 331) выполнять один или более иллюстрированных этапов в блок-схеме.
[00131] Способ согласно Фиг. 11A включает в себя получение данных пользовательского ввода в беспроводном устройстве получателя, таком как беспроводное устройство 160 получателя (1101). Данные пользовательского ввода могут быть получены через компонент пользовательского ввода беспроводного устройства 160 получателя, такой как, например, интерфейс 376 пользовательского ввода, показанный со ссылками на фиг. 3. Устройство 160 получателя может затем генерировать заголовок пакета данных на основании пользовательского ввода (1103). Заголовок пакета данных может содержать, среди других полей, поле временной отметки. Поле временной отметки может содержать, например, 16-битовое поле, содержащее временную отметку, основанную на мультимедийных данных, которые были сгенерированы беспроводным устройством 120 источника и переданы на беспроводное устройство 160 получателя. Временная отметка могла быть добавлена к кадру видеоданных посредством беспроводного устройства 120 источника до передачи на беспроводное устройство получателя. Поле временной отметки может, например, идентифицировать временную отметку, ассоциированную с кадром видеоданных, отображаемых в беспроводном устройстве 160 получателя, в то время, когда были захвачены данные пользовательского ввода. Устройство 160 получателя может дополнительно генерировать пакет данных (1105), где пакет данных содержит сгенерированный заголовок пакета данных и полезные данные. В одном примере полезные данные могут включать в себя принятые данные пользовательского ввода и могут идентифицировать одну или более пользовательских команд. Устройство 160 получателя может затем передать сгенерированный пакет данных (1107) на беспроводное устройство источника (например, устройство 120 источника согласно Фиг. 1A или устройство 220 источника согласно Фиг. 2). Устройство 160 получателя может содержать компоненты, которые разрешают передачу пакетов данных, включающие в себя транспортный блок 333 и беспроводной модем 334, например, как показано со ссылками на фиг. 3. Пакет данных может быть передан на беспроводное устройство источника по TCP/IP.
[00132] Фиг. 11B является блок-схемой примерного способа приема данных пользовательского ввода от беспроводного устройства получателя в беспроводном устройстве источника в соответствии с настоящим раскрытием. Иллюстрированный примерный способ может быть выполнен устройством 120 источника (Фиг. 1A) или устройством 220 источника (Фиг. 2). В некоторых примерах считываемый компьютером запоминающий носитель (например, память 232) может хранить команды, модули или алгоритмы, которые при выполнении вынуждают один или более процессоров (например, процессор 231) выполнять один или более иллюстрированных этапов в блок-схеме.
[00133] Способ согласно Фиг. 11B включает в себя прием пакета данных от беспроводного устройства получателя, такого как беспроводное устройство 160 получателя (1102), где пакет данных может содержать, среди всего прочего, заголовок пакета данных и полезные данные. Полезные данные могут включать в себя, например, данные пользовательского ввода. Устройство 120 источника может содержать компоненты связи, которые разрешают передачу пакетов данных, включающие в себя транспортный блок 233 и беспроводной модем 234, например, как показано со ссылками на фиг. 2. Устройство 120 источника может затем идентифицировать поле временной отметки в заголовке пакета данных (1104). Устройство 120 источника может обработать полезные данные на основании временной отметки, которая находится в поле временной отметки (1106). В качестве части обработки данных полезных данных, на основании временной отметки устройство 120 источника может идентифицировать кадр видеоданных, отображаемых в беспроводном устройстве получателя в то время, когда были получены данные пользовательского ввода, и интерпретировать полезные данные на основании контента кадра. В качестве части обработки полезных данных, на основании временной отметки устройство 120 источника может сравнить временную отметку с текущей временной отметкой для текущего кадра видео, передаваемого устройством 120 источника, и может выполнить команду пользовательского ввода, описанную в полезных данных, в ответ на разницу во времени между временной отметкой и текущей временной отметкой, которая меньше, чем пороговое значение, или не выполнить команду пользовательского ввода, описанную в полезных данных, в ответ на разницу во времени между временной отметкой и текущей временной отметкой, которая больше, чем пороговое значение. Пакеты данных, описанные со ссылками на Фиг. 11А и 11B, в целом могут принимать форму пакетов данных, описанных со ссылками на Фиг. 6, и могут быть использованы для управления аудио/видеоданными в устройстве источника.
[00134] Фиг. 12A является блок-схемой примерного способа передачи данных пользовательского ввода от беспроводного устройства получателя на беспроводное устройство источника в соответствии с настоящим раскрытием. Иллюстрированный примерный способ может быть выполнен устройством 160 получателя (Фиг. 1A) или устройством 360 получателя (Фиг. 3). В некоторых примерах считываемый компьютером запоминающий носитель (например, память 332) может хранить команды, модули или алгоритмы, которые при выполнении вынуждают один или более процессоров (например, процессор 331) выполнять один или более иллюстрированных этапов в блок-схеме.
[00135] Способ согласно Фиг. 12A включает в себя получение данных пользовательского ввода в беспроводном устройстве получателя, таком как беспроводное устройство 160 получателя (1201). В одном примере данные пользовательского ввода могут быть данными голосовой команды, которые могут быть получены через компонент пользовательского ввода беспроводного устройства 160 получателя, такой как, например, модуль распознавания голосовой команды, включенный в интерфейс 376 пользовательского ввода на Фиг. 3. Устройство 160 получателя может генерировать заголовок пакета данных на основании пользовательского ввода (1203). Устройство 160 получателя может также генерировать полезные данные (1205), где полезные данные могут содержать данные голосовой команды. В одном примере полезные данные могут также включать в себя принятые данные пользовательского ввода и могут идентифицировать одну или более пользовательских команд. Устройство 160 получателя может дополнительно генерировать пакет данных (1207), где пакет данных содержит сгенерированный заголовок пакета данных и полезные данные. Устройство 160 получателя может затем передать сгенерированный пакет данных (1209) на беспроводное устройство источника (например, устройство 120 источника согласно Фиг. 1A или устройство 220 источника согласно Фиг. 2). Устройство 160 получателя может содержать компоненты, которые разрешают передачу пакетов данных, включающие в себя транспортный блок 333 и беспроводной модем 334, например, как показано со ссылками на фиг. 3. Пакет данных может быть передан на беспроводное устройство источника по TCP/IP.
[00136] Фиг. 12B является блок-схемой примерного способа приема данных пользовательского ввода от беспроводного устройства получателя в беспроводном устройстве источника в соответствии с настоящим раскрытием. Иллюстрированный примерный способ может быть выполнен устройством 120 источника (Фиг. 1 A) или устройством 220 источника (Фиг. 2). В некоторых примерах считываемый компьютером запоминающий носитель (например, память 232) может хранить команды, модули или алгоритмы, которые при выполнении вынуждают один или более процессоров (например, процессор 231) выполнять один или более иллюстрированных этапов в блок-схеме.
[00137] Способ согласно Фиг. 12B включает в себя прием пакета данных (1202), где пакет данных может содержать, среди всего прочего, заголовок пакета данных и полезные данные. Полезные данные могут включать в себя, например, данные пользовательского ввода, такие как данные голосовой команды. Устройство 120 источника может содержать компоненты связи, которые разрешают передачу пакетов данных, включающие в себя транспортный блок 233 и беспроводной модем 234, например, как показано со ссылками на фиг. 2. Устройство 120 источника может затем провести синтаксический анализ полезных данных (1204), включенных в пакет данных, чтобы определить, содержат ли полезные данные голосовой команды. Пакеты данных, описанные со ссылками на Фиг. 12А и 12B, в целом могут принимать форму пакетов данных, описанных со ссылками на Фиг. 6, и могут быть использованы для управления аудио/видеоданными в устройстве источника.
[00138] Фиг. 13 A является блок-схемой примерного способа передачи данных пользовательского ввода от беспроводного устройства получателя на беспроводное устройство источника в соответствии с настоящим раскрытием. Иллюстрированный примерный способ может быть выполнен устройством 160 получателя (Фиг. 1A) или устройством 360 получателя (Фиг. 3). В некоторых примерах считываемый компьютером запоминающий носитель (например, память 332) может хранить команды, модули или алгоритмы, которые при выполнении вынуждают один или более процессоров (например, процессор 331) выполнять один или более иллюстрированных этапов в блок-схеме.
[00139] Способ согласно Фиг. 13A включает в себя получение данных пользовательского ввода в беспроводном устройстве получателя, таком как беспроводное устройство 160 получателя (1301). В одном примере данные пользовательского ввода могут быть жестом множественных касаний, который может быть получен через компонент пользовательского ввода беспроводного устройства 160 получателя, такой как, например, UI 167 или интерфейс 376 пользовательского ввода Фиг. 3. В одном примере жест множественных касаний может содержать первый ввод данных касанием и второй ввод данных касанием. Устройство 160 получателя может генерировать заголовок пакета данных на основании пользовательского ввода (1303). Устройство 160 получателя может также генерировать полезные данные (1305), где полезные данные могут ассоциировать данные пользовательского ввода для первого события ввода касанием с первой идентификацией указателя и данные пользовательского ввода для второго события ввода касанием со второй идентификацией указателя. Устройство 160 получателя может дополнительно генерировать пакет данных (1307), где пакет данных содержит сгенерированный заголовок пакета данных и полезные данные. Устройство 160 получателя может затем передать сгенерированный пакет данных (1309) на беспроводное устройство источника (например, устройство 120 источника согласно Фиг. 1A устройство 220 источника согласно Фиг. 2). Устройство 160 получателя может содержать компоненты, которые разрешают передачу пакетов данных, включающие в себя транспортный блок 333 и беспроводной модем 334, например, как показано со ссылками на фиг. 3. Пакет данных может быть передан на беспроводное устройство источника по TCP/IP.
[00140] Фиг. 13B является блок-схемой примерного способа приема данных пользовательского ввода от беспроводного устройства получателя в беспроводном устройстве источника в соответствии с настоящим раскрытием. Иллюстрированный примерный способ может быть выполнен устройством 120 источника (Фиг. 1A) или устройством 220 источника (Фиг. 2). В некоторых примерах считываемый компьютером запоминающий носитель (например, память 232) может хранить команды, модули или алгоритмы, которые при выполнении вынуждают один или более процессоров (например, процессор 231) выполнять один или более иллюстрированных этапов в блок-схеме.
[00141] Способ согласно Фиг. 13B включает в себя прием пакета данных (1302), где пакет данных может содержать, среди всего прочего, заголовок пакета данных и полезные данные. Полезные данные могут включать в себя, например, данные пользовательского ввода, такие как жест множественных касаний. Устройство 120 источника может содержать компоненты связи, которые разрешают передачу пакетов данных, включающие в себя транспортный блок 233 и беспроводной модем 234, например, как показано на Фиг. 2. Устройство 120 источника может затем провести синтаксический анализ полезных данных (1304), включенных в пакет данных, чтобы идентифицировать данные пользовательского ввода, включенные в полезные данные. В одном примере идентифицированные данные могут включать в себя данные пользовательского ввода для первого события ввода касанием с первой идентификацией указателя и данные пользовательского ввода для второго события ввода касанием со второй идентификацией указателя. Устройство 120 источника может затем интерпретировать данные пользовательского ввода для первого события ввода касанием и данные пользовательского ввода для второго события ввода касанием как жест множественных касаний (1306). Пакеты данных, описанные со ссылками на Фиг. 13А и 13B, в целом могут принимать форму пакетов данных, описанных со ссылками на Фиг. 6, и могут быть использованы для управления аудио/видеоданными в устройстве источника.
[00142] Фиг. 14A является блок-схемой примерного способа передачи данных пользовательского ввода от беспроводного устройства получателя на беспроводное устройство источника в соответствии с настоящим раскрытием. Иллюстрированный примерный способ может быть выполнен устройством 160 получателя (Фиг. 1A) или устройством 360 получателя (Фиг. 3). В некоторых примерах считываемый компьютером запоминающий носитель (например, память 332) может хранить команды, модули или алгоритмы, которые при выполнении вынуждают один или более процессоров (например, процессор 331) выполнять один или более иллюстрированных этапов в блок-схеме.
[00143] Способ согласно Фиг. 14A включает в себя получение данных пользовательского ввода в беспроводном устройстве 360 получателя от внешнего устройства (1401). В одном примере внешнее устройство может быть устройством третьей стороны, соединенным с устройством получателя. Устройство 160 получателя может генерировать заголовок пакета данных на основании пользовательского ввода (1403). В одном примере заголовок пакета данных может идентифицировать данные пользовательского ввода как направленные данные пользовательского ввода. Устройство 160 получателя может также генерировать полезные данные (1405), где полезные данные могут содержать данные пользовательского ввода. Устройство 160 получателя может дополнительно генерировать пакет данных (1407), где пакет данных может содержать сгенерированный заголовок пакета данных и полезные данные. Устройство 160 получателя может затем передать сгенерированный пакет данных (1409) на беспроводное устройство источника (например, устройство 120 источника согласно Фиг. 1A устройство 220 источника согласно Фиг. 2). Устройство 160 получателя может содержать компоненты, которые разрешают передачу пакетов данных, включающие в себя транспортный блок 333 и беспроводной модем 334, например, как показано со ссылками на Фиг. 3. Пакет данных может быть передан на беспроводное устройство источника по TCP/IP.
[00144] Фиг. 14B является блок-схемой примерного способа приема данных пользовательского ввода от беспроводного устройства получателя в беспроводном устройстве источника в соответствии с настоящим раскрытием. Иллюстрированный примерный способ может быть выполнен устройством 120 источника (Фиг. 1A) или устройством 220 источника (Фиг. 2). В некоторых примерах считываемый компьютером запоминающий носитель (например, память 232) может хранить команды, модули или алгоритмы, которые при выполнении вынуждают один или более процессоров (например, процессор 231) выполнять один или более иллюстрированных этапов в блок-схеме.
[00145] Способ согласно Фиг. 14B включает в себя прием пакета данных (1402), где пакет данных может содержать, среди всего прочего, заголовок пакета данных и полезные данные. Полезные данные могут включать в себя, например, данные пользовательского ввода, такие как команда направленного пользовательского ввода, указывающая, что данные пользовательского ввода были направлены от устройства третьей стороны. Устройство 120 источника может содержать компоненты связи, которые разрешают передачу пакетов данных, включающие в себя транспортный блок 233 и беспроводной модем 234, например, как показано со ссылками на фиг. 2. Устройство 120 источника может затем провести синтаксический анализ заголовка пакета данных и может определить, что полезные данные содержат команду направленного пользовательского ввода (1404). Устройство 120 источника может затем провести синтаксический анализ полезных данных (1406), включенных в пакет данных, чтобы идентифицировать идентификацию, ассоциированную с устройством третьей стороны, в соответствии с командой направленного пользовательского ввода. Устройство 120 источника может затем обработать полезные данные на основании идентифицированной идентификации устройства третьей стороны (1408). Пакеты данных, описанные со ссылками на Фиг. 14А и 14B, в целом могут принимать форму пакетов данных, описанных со ссылками на Фиг. 6, и могут быть использованы для управления аудио/видеоданными в устройстве источника.
[00146] Фиг. 15A является блок-схемой примерного способа передачи пользовательских данных от беспроводного устройства получателя на беспроводное устройство источника в соответствии с настоящим раскрытием. Иллюстрированный примерный способ может быть выполнен устройством 160 получателя (Фиг. 1A) или устройством 360 получателя (Фиг. 3). В некоторых примерах считываемый компьютером запоминающий носитель (например, память 332) может хранить команды, модули или алгоритмы, которые при выполнении вынуждают один или более процессоров (например, процессор 331) выполнять один или более иллюстрированных этапов в блок-схеме.
[00147] Способ согласно Фиг. 15A включает в себя получение данных пользовательского ввода в беспроводном устройстве получателя (1501). Данные пользовательского ввода могут иметь ассоциированные данные координат. Ассоциированные данные координат могут, например, соответствовать местоположению события щелчка мыши или местоположению события касания. Устройство 160 получателя может затем нормализовать ассоциированные данные координат, чтобы генерировать нормализованные данные координат (1503). Устройство 160 получателя может затем генерировать пакет данных, который включает в себя нормализованные данные координат (1505). Нормализация данных координат может включать в себя масштабирование ассоциированных данных координат на основании отношения разрешения окна экрана дисплея и разрешения дисплея источника, такого как дисплей 22 устройства 120 источника. Разрешение окна экрана дисплея может быть определено устройством 160 получателя, и разрешение дисплея устройства источника может быть принято от устройства 120 источника. Устройство 160 получателя может затем передать пакет данных с нормализованными координатами на беспроводное устройство 120 источника (1507). В качестве части способа согласно Фиг. 15A, устройство 160 получателя может также определить, находятся ли ассоциированные данные координат в пределах окна экрана дисплея, для контента, принятого от беспроводного устройства источника, и, например, обработать пользовательский ввод локально, если ассоциированные данные координат находятся вне окна экрана дисплея, или иначе нормализовать координаты, как описано, если ввод находится в пределах окна экрана дисплея.
[00148] Фиг. 15B является блок-схемой примерного способа приема данных пользовательского ввода от беспроводного устройства получателя в беспроводном устройстве источника в соответствии с настоящим раскрытием. Иллюстрированный примерный способ может быть выполнен устройством 120 источника (Фиг. 1 A) или устройством 220 источника (Фиг. 2). В некоторых примерах считываемый компьютером запоминающий носитель (например, память 232) может хранить команды, модули или алгоритмы, которые при выполнении вынуждают один или более процессоров (например, процессор 231) выполнять один или более иллюстрированных этапов в блок-схеме.
[00149] Способ согласно Фиг. 15B включает в себя прием пакета данных в беспроводном устройстве источника, где пакет данных содержит данные пользовательского ввода с ассоциированными данными координат (1502). Ассоциированные данные координат могут, например, соответствовать местоположению события щелчка мыши или местоположению события касания в устройстве получателя. Устройство 120 источника может затем нормализовать ассоциированные данные координат, чтобы генерировать нормализованные данные координат (1504). Устройство 120 источника может нормализовать данные координат посредством масштабирования ассоциированных данных координат на основании отношения разрешения окна экрана дисплея и разрешения дисплея источника. Устройство 120 источника может определить разрешение дисплея устройства источника и может принять разрешение окна экрана дисплея от беспроводного устройства получателя. Устройство источника может затем обработать пакет данных на основании нормализованных данных координат (1506). Пакеты данных, описанные со ссылками на Фиг. 15А и 15B, в целом могут принимать форму пакетов данных, описанных со ссылками на Фиг. 6, и могут быть использованы для управления аудио/видеоданными в устройстве источника.
[00150] Для простоты объяснения аспекты настоящего раскрытия были описаны отдельно со ссылками на Фиг. 7-15. Однако рассмотрено, что эти различные аспекты могут быть объединены и использованы вместе друг с другом, а не просто отдельно. В целом, функциональные возможности и/или модули, описанные в настоящем описании, могут быть реализованы в любом одном или в обоих из: беспроводного устройства источника и беспроводного устройства получателя. Таким образом, возможности пользовательского интерфейса, описанные в текущем примере, могут быть использованы попеременно между беспроводным устройством источника и беспроводным устройством получателя.
[00151] Способы настоящего раскрытия могут быть реализованы в большом разнообразии устройств или приборов, включающих в себя беспроводную телефонную трубку и интегральную схему (IC) или набор схем IC (то есть чипсет). Любые компоненты, модули или блоки, которые были описаны, обеспечены, чтобы подчеркнуть функциональные аспекты, и не обязательно требуется реализация посредством различных блоков аппаратного обеспечения.
[00152] Соответственно, способы, описанные в настоящем описании, могут быть реализованы в аппаратном обеспечении, программном обеспечении, программно-аппаратном обеспечении или любой их комбинации. Если реализованы в аппаратном обеспечении, любые признаки, описанные как модули, блоки или компоненты, могут быть реализованы вместе в интегрированном логическом устройстве или отдельно как дискретные, но взаимодействующие логические устройства. Если реализованы в программном обеспечении, способы могут реализованы, по меньшей мере частично, посредством считываемого компьютером носителя, содержащего команды, которые при выполнении в процессоре выполняют один или более способов, описанных выше. Считываемый компьютером носитель может содержать материальный и невременный считываемый компьютером запоминающий носитель и может быть частью компьютерного программного продукта, который может включать в себя упаковочные материалы. Считываемый компьютером запоминающий носитель может содержать оперативное запоминающее устройство (RAM), такое как синхронное динамическое оперативное запоминающее устройство (SDRAM), постоянное запоминающее устройство (ROM), энергонезависимое оперативное запоминающее устройство (NVRAM), электрически стираемое программируемое постоянное запоминающее устройство (EEPROM), флэш-память, магнитные или оптические запоминающие носители данных, и т.п. Способы дополнительно или альтернативно могут быть реализованы, по меньшей мере частично, посредством считываемого компьютером коммуникационного носителя, который переносит или передает код в форме команд или структур данных, и который может быть доступен, считан и/или выполнен компьютером.
[00153] Код может быть выполнен одним или более процессорами, такими как один или более цифровые сигнальные процессоры (процессоры DSP), микропроцессоры общего назначения, специализированные интегральные схемы (схемы ASIC), программируемые пользователем вентильные матрицы (матрицы FPGA) или другая эквивалентная интегральная или дискретная логическая схема. Соответственно, термин "процессор", который используется в настоящем описании, может относиться к любой предшествующей структуре или любой другой структуре, подходящей для реализации способов, описанных в настоящем описании. В дополнение, в некоторых аспектах функциональные возможности, описанные в настоящем описании, могут быть обеспечены в пределах выделенных модулей программного обеспечения или модулей аппаратного обеспечения, сконфигурированных для кодирования и декодирования, или включенных в объединенный кодек видео. Кроме того, способы могут быть полностью реализованы в одной или более схемах или логических элементах.
[00154] Были описаны различные аспекты настоящего раскрытия. Эти и другие аспекты находятся в рамках следующей формулы изобретения.