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

[0001] Данная заявка притязает на приоритет:
предварительной заявки на патент (США) номер 61/435194, поданной 21 января 2011 года;
предварительной заявки на патент (США) 61/447592, поданной 28 февраля 2011 года;
предварительной заявки на патент (США) 61/448312, поданной 2 марта 2011 года;
предварительной заявки на патент (США) 61/450101, поданной 7 марта 2011 года;
предварительной заявки на патент (США) 61/467535, поданной 25 марта 2011 года;
предварительной заявки на патент (США) 61/467543, поданной 25 марта 2011 года;
предварительной заявки на патент (США) 61/514863, поданной 3 августа 2011 года; и
предварительной заявки на патент (США) 61/544445, поданной 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] Фиг. 5A и 5B показывают примерные последовательности передачи сообщений для выполнения согласований характеристик согласно технологиям этого раскрытия сущности.
[0020] Фиг. 6 показывает примерный пакет данных, который может использоваться для доставки данных пользовательского ввода, полученных в устройстве-приемнике, в устройство-источник.
[0021] Фиг. 7A и 7B являются блок-схемами последовательности операций способа, иллюстрирующими технологии этого раскрытия сущности, которые могут использоваться для согласования характеристик между устройством-источником и устройством-приемником.
[0022] Фиг. 8A и 8B являются блок-схемами последовательности операций способа, иллюстрирующими технологии этого раскрытия сущности, которые могут использоваться для передачи и приема пакетов данных с данными пользовательского ввода.
[0023] Фиг. 9A и 9B являются блок-схемами последовательности операций способа, иллюстрирующими технологии этого раскрытия сущности, которые могут использоваться для передачи и приема пакетов данных с данными пользовательского ввода.
[0024] Фиг. 10A и 10B являются блок-схемами последовательности операций способа, иллюстрирующими технологии этого раскрытия сущности, которые могут использоваться для передачи и приема пакетов данных с информацией временных меток и данными пользовательского ввода.
[0025] Фиг. 11A и 11B являются блок-схемами последовательности операций способа, иллюстрирующими технологии этого раскрытия сущности, которые могут использоваться для передачи и приема пакетов данных с информацией временных меток и данными пользовательского ввода.
[0026] Фиг. 12A и 12B являются блок-схемами последовательности операций способа, иллюстрирующими технологии этого раскрытия сущности, которые могут использоваться для передачи и приема пакетов данных, которые включают в себя речевые команды.
[0027] Фиг. 13A и 13B являются блок-схемами последовательности операций способа, иллюстрирующими технологии этого раскрытия сущности, которые могут использоваться для передачи и приема пакетов данных с командами мультисенсорного пользовательского ввода.
[0028] Фиг. 14A и 14B являются блок-схемами последовательности операций способа, иллюстрирующими технологии этого раскрытия сущности, которые могут использоваться для передачи и приема пакетов данных с данными пользовательского ввода, перенаправляемыми из стороннего устройства.
[0029] Фиг. 15A и 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, доступны из внешнего носителя хранения данных, к примеру, файлового сервера, жесткого диска, внешнего запоминающего устройства, Blu-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, в некоторых аспектах, A/V-кодер 124 и декодер 164 A/V могут быть интегрированы с аудио-кодером и декодером и могут включать в себя надлежащие блоки мультиплексора-демультиплексора либо другие аппаратные средства и программное обеспечение для того, чтобы обрабатывать кодирование как аудио, так и видео в общем потоке данных или в отдельных потоках данных.
[0035] Как подробнее описано ниже, A/V-кодер 124 также может выполнять другие функции кодирования в дополнение к реализации стандарта сжатия видео, как описано выше. Например, A/V-кодер 124 может добавлять различные типы метаданных к A/V-данным 121 до передачи A/V-данных 121 в устройство-приемник 160. В некоторых случаях, A/V-данные 121 могут сохраняться или приниматься в устройстве-источнике 120 в кодированной форме и в силу этого не требовать дополнительного сжатия посредством A/V-кодера 124.
[0036] Хотя, фиг. 1A показывает канал 150 связи, переносящий рабочие аудиоданные и рабочие видеоданные отдельно, следует понимать, что в некоторых случаях рабочие видеоданные и рабочие аудиоданные могут быть частью общего потока данных. Если применимо, блоки мультиплексора-демультиплексора могут соответствовать протоколу мультиплексора ITU H.223 или другим протоколам, таким как протокол пользовательских дейтаграмм (UDP). Аудио-видеокодер 124 и аудио-видеодекодер 164 могут быть реализованы как один или более микропроцессоров, процессоров цифровых сигналов (DSP), специализированных интегральных схем (ASIC), программируемых пользователем вентильных матриц (FPGA), дискретная логика, программное обеспечение, аппаратные средства, микропрограммное обеспечение или любые комбинации вышеозначенного. Каждый из аудио-видеокодера 124 и аудио-видеодекодера 164 может быть включен в один или более кодеров или декодеров, любой из которых может быть интегрирован как часть комбинированного видеокодера/декодера (кодека). Таким образом, каждое устройство-источник 120 и устройство-приемник 160 могут содержать специализированные машины, выполненные с возможностью осуществлять одну или более технологий этого раскрытия сущности.
[0037] Дисплей 122 и дисплей 162 могут содержать любое множество устройств видеовывода, таких как дисплей на электронно-лучевой трубке (CRT), жидкокристаллический дисплей (LCD), плазменный дисплей, дисплей на светоизлучающих диодах (светодиодах), дисплей на органических светодиодах (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. Это преобразование также упоминается как нормализация в данном документе, и, как поясняется более подробно ниже, это преобразование может выполняться на основе приемника или на основе источника.
[0046] Пользовательские вводы, принятые посредством устройства-приемника 160, могут быть приняты посредством UI-модуля 167, например, на уровне драйверов и переданы в операционную систему устройства-приемника 160. Операционная система на устройстве-приемнике 160 может принимать координаты (xSINK, ySINK), ассоциированные с местом на поверхности отображения, в котором произошел пользовательский ввод. В этом примере, (xSINK, ySINK) могут представлять собой координаты дисплея 162, по которым произошло событие щелчка мышью или касания. Окно отображения, рендеринг которого выполняется на дисплее 162, может иметь длину по координате X (LDW) и ширину (WDW) по координате Y, которые описывают размер окна отображения. Окно отображения также может иметь координату (aDW, bDW) верхнего левого угла, которая описывает местоположение окна отображения. На основе LDW, WDW и верхней левой координаты (aDW, bDW) может быть определена часть дисплея 162, покрываемая посредством окна отображения. Например, правый верхний угол окна отображения может находиться по координатам (aDW+LDW, bDW), нижний левый угол окна отображения может находиться по координатам (aDW, bDW+WDW), и нижний правый угол окна отображения может находиться по координатам (aDW+LDW, bDW+WDW). Устройство-приемник 160 может обрабатывать ввод в качестве UIBC-ввода, если ввод принимается по координатам в пределах окна отображения. Другими словами, ввод с ассоциированными координатами (xSINK, ySINK) может быть обработан в качестве UIBC-ввода, если следующие условия удовлетворяются:
aDW≤xSINK≤aDW+LDW (1)
bDW≤ySINK≤bDW+WDW (2)
[0047] После определения того, что пользовательский ввод является UIBC-вводом, координаты, ассоциированные с вводом, могут быть нормализованы посредством UIPM 168 до передачи в устройство-источник 120. Вводы, которые определяются как находящиеся за пределами окна отображения, могут быть обработаны локально посредством устройства-приемника 160 в качестве не-UIBC-вводов.
[0048] Как упомянуто выше, нормализация входных координат может выполняться либо на основе источника, либо на основе приемника. При реализации нормализации на основе приемника, устройство-источник 120 может отправлять поддерживаемое разрешение (LSRC, WSRC) отображения для дисплея 122, с видеоданными или независимо от видеоданных, в устройство-приемник 160. Поддерживаемое разрешение отображения, например, может быть передано в качестве части сеанса согласования характеристик или может быть передано в другое время в ходе сеанса связи. Устройство-приемник 160 может определять разрешение (LSINK, WSINK) отображения для дисплея 162, разрешение (LDW, WDW) окна отображения для отображения контента окна, принимаемого из устройства-источника 120, и координату (aDW, bDW) верхнего левого угла для окна отображения. Как описано выше, когда координата (xSINK, ySINK), соответствующая пользовательскому вводу, определяется как находящаяся в пределах окна отображения, операционная система устройства-приемника 160 может преобразовывать координату (xSINK, ySINK) в координаты (xSRC, ySRC) источника с использованием функций преобразования. Примерные функции преобразования для преобразования (xSINK, ySINK) в (xSRC, ySRC) могут заключаться в следующем:
xSRC=(xSINK-aDW)*(LSRC/LDW) (3)
ySRC=(ySINK-bDW)*(WSRC/WDW) (4)
[0049] Таким образом, при передаче координаты, соответствующей принимаемому пользовательскому вводу, устройство-приемник 160 может передавать координату (xSRC, ySRC) для пользовательского ввода, принимаемого в (xSINK, ySINK). Как подробнее описано ниже, координата (xSRC, ySRC), например, может быть передана в качестве части пакета данных, используемого для передачи пользовательского ввода, принимаемого в устройстве-приемнике 160, в устройство-источник 120 по UIBC. Во всех остальных частях этого раскрытия сущности, в которых входные координаты описываются как включенные в пакет данных, эти координаты могут быть преобразованы в координаты источника, как описано выше в случаях, когда система 100 источников/приемников реализует нормализацию на основе приемника.
[0050] Когда система 100 источников/приемников реализует нормализацию на основе источника для пользовательских вводов, определенных посредством UIBC-вводов, а не локальных вводов (т.е. в пределах окна отображения, а не за пределами окно отображения), вышеприведенные вычисления могут быть выполнены в устройстве-источнике 120 вместо устройства-приемника 160. Чтобы упрощать такие вычисления, устройство-приемник 160 может передавать в устройство-источник 120 значения для LDW, WDW и информацию местоположения для окна отображения (например, aDW, bDW), а также координаты для (xSINK, ySINK). С использованием этих передаваемых значений устройство-источник 120 может определять значения для (xSRC, ySRC) согласно вышеприведенным уравнениям 3 и 4.
[0051] В других реализациях нормализации на основе приемника, устройство-приемник 160 может передавать координаты (xDW, yDW) для пользовательского ввода, которые описывают, в каком месте в пределах окна отображения происходит событие пользовательского ввода, в отличие от того, в каком месте на дисплее 162 происходит событие пользовательского ввода. В этой реализации, координаты (xDW, yDW) могут быть переданы в устройство-источник 120 вместе со значениями для (LDW, WDW). На основе этих принимаемых значений, устройство-источник 120 может определять (xSRC, ySRC) согласно следующим функциям преобразования:
xSRC=xDW*(LSRC/LDW) (5)
ySRC=yDW*(WSRC/WDW) (6)
Устройство-приемник 160 может определять xDW и yDW на основе следующих функций:
xDW=xSINK-aDW (7)
yDW=ySINK-bDW (8)
[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, UI-устройство 167 и A/V-кодер 164 являются частями отдельных, но взаимодействующих устройств. Устройство-источник 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-управления по фиг. 1A, может быть реализована, или полностью или частично, посредством процессора 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 по фиг. 1A для обмена данными по каналу 150 связи. В системе 410 передающего устройства данные трафика для потоков номера данных предоставляются из источника 412 данных в процессор 414 данных передачи (TX). Каждый поток данных может быть передан по соответствующей передающей антенне. Процессор 414 TX-данных форматирует, кодирует и перемежает данные трафика для каждого потока данных на основе конкретной схемы кодирования, выбранной для этого потока данных.
[0065] Кодированные данные для каждого потока данных могут быть мультиплексированы с пилотными данными с использованием технологий мультиплексирования с ортогональным частотным разделением каналов (OFDM). Также может быть использовано множество других технологий беспроводной связи, включающих в себя, но не только, множественный доступ с временным разделением каналов (TDMA), множественный доступ с частотным разделением каналов (FDMA), множественный доступ с кодовым разделением каналов (CDMA) или любую комбинацию OFDM, FDMA, TDMA и/или CDMA.
[0066] Согласно фиг. 4, пилотные данные типично являются известным шаблоном данных, который обрабатывается известным способом и может быть использован в системе приемного устройства для того, чтобы оценивать отклик канала. Мультиплексированный пилотный сигнал и кодированные данные для каждого потока данных затем модулируются (например, символьно преобразуются) на основе конкретной схемы модуляции (например, двухпозиционной фазовой манипуляции (BPSK), квадратурной фазовой манипуляции (QPSK), M-PSK или M-QAM (квадратурной амплитудной модуляции), где M может быть степенью двух), выбранной для этого потока данных, чтобы предоставлять символы модуляции. Скорость передачи данных, кодирование и модуляция для каждого потока данных могут быть определены посредством инструкций, выполняемых посредством процессора 430, который может соединяться с запоминающим устройством 432.
T
T
[0067] Символы модуляции для всех потоков данных затем предоставляются в TX MIMO-процессор 420, который дополнительно может обрабатывать символы модуляции (к примеру, для OFDM). TX MIMO-процессор 420 далее может предоставлять N потоков символов модуляции в Nпередающих устройств (TMTR) 422a-422t. В определенных аспектах, TX MIMO-процессор 420 применяет весовые коэффициенты формирования диаграммы направленности к символам потоков данных и к антенне, из которой передается символ.
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-данных является комплементарной обработке, выполняемой посредством TX MIMO-процессора 420 и процессора 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 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 может отправлять пятое сообщение (сообщение с запросом RTSP GET_PARAMETER), чтобы указывать список характеристик, которые представляют интерес для устройства-источника 520. Устройство-приемник 560 может отвечать шестым сообщением (сообщением с ответом RTSP GET_PARAMETER). Шестое сообщение может содержать код состояния RTSP. Если код состояния RTSP - OK, то шестое сообщение также может включать в себя параметры ответа для параметра, указываемого в пятом сообщении, которые поддерживаются посредством устройства-приемника 560. Устройство-приемник 560 может игнорировать те параметры в пятом сообщении, которые устройство-приемник 560 не поддерживает.
[0079] На основе шестого сообщения, источник 520 может определять оптимальный набор параметров, который должен использоваться для сеанса связи, и может отправлять седьмое сообщение (сообщение с запросом RTSP SET_PARAMETER) в устройство-приемник 560. Седьмое сообщение может содержать набор параметров, который должен быть использован в ходе сеанса связи между устройством-источником 520 и устройством-приемником 560. Седьмое сообщение может включать в себя wfd-presentation-url, который описывает универсальный идентификатор ресурса (URI), который должен быть использован в запросе на установление RTSP, чтобы устанавливать сеанс связи. Wfd-presentation-url указывает URI, который устройство-приемник 560 может использовать для последующих сообщений в ходе обмена сообщениями для установления сеанса. Значения wfd-url0 и wfd-url1, указываемые в этом параметре, могут соответствовать значениям 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 по фиг. 1A в устройство-источник 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 версии является трехбитовым полем, которое должно предоставлять уникальный идентификатор для восьми различных версий. В других примерах, больше или меньшее число битов может выделяться полю 621 версии.
[0086] В примере по фиг. 6, флаг 622 временной метки (T) является 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 идентифицирует поля, которые могут быть включены в заголовок ввода.
Таблица 1
Поле
Размер (октет)
Значение
Идентификатор универсального IE
1
См. таблицу 2
Длина
2
Длина следующих полей в октетах
Описание
Переменный
Подробности пользовательских вводов. См. таблицы
[0098] Поле идентификатора (ID) события универсального ввода (IE) идентифицирует идентификационные данные события универсального ввода для идентификации типа ввода. Поле идентификатора универсального IE, например, может иметь длину в один октет и может включать в себя идентификационные данные, выбранные из нижеприведенной таблицы 2. Если, аналогично этому примеру, поля идентификатора универсального IE составляет 8 битов, то 256 различных типов вводов (идентифицированных 0-255) могут быть идентифицируемыми, хотя не всем 256 идентификаторам обязательно требуется ассоциированный тип ввода. Некоторые из 256 могут быть зарезервированы для будущего использования с будущими версиями любого протокола, который реализуется посредством устройства-приемника 160 и устройства-источника 120. В таблице 2, например, идентификаторы 9-255 универсального IE не имеют ассоциированных типов ввода, но им могут назначаться типы ввода в будущем.
[0099] Поле длины в заголовке события ввода идентифицирует длину поля описания, в то время как поле описания включает в себя информационные элементы, которые описывают пользовательский ввод. Форматирование поля описания может зависеть от типа ввода, идентифицированного в поле идентификатора универсального IE. Таким образом, устройство-источник 120 может синтаксически анализировать контент поля описания на основе типа ввода, идентифицированного в поле идентификатора универсального IE. На основе поля длины заголовка события ввода, устройство-источник 120 может определять конец одного события ввода в рабочих данных 650 и начало нового события ввода. Как подробнее поясняется ниже, одна пользовательская команда может быть описана в рабочих данных 650 в качестве одного или более событий ввода.
[00100] Таблица 2 предоставляет пример типов ввода, каждый из которых имеет соответствующий идентификатор универсального IE, который может использоваться для идентификации типа ввода.
Таблица 2
Идентификатор универсального IE
Тип ввода
0
Нажатие левой кнопки мыши/касание и удерживание
1
Отпускание левой кнопки мыши/касание и отпускание
2
Перемещение мыши/касание с перемещением
3
Нажатие клавиши
4
Отпускание клавиши
5
Изменение масштаба
6
Вертикальная прокрутка
7
Горизонтальная прокрутка
8
Поворот
9-255
Зарезервировано
[00101] Поля описания, ассоциированные с каждым типом ввода, могут иметь различный формат. Поля описания события нажатия левой кнопки мыши/касания и удерживания, события отпускания левой кнопки мыши/касания и отпускания и события перемещения мыши/касания с перемещением, например, могут включать в себя информационные элементы, идентифицированные в нижеприведенной таблице 3, хотя другие форматы также могут быть использованы в других примерах.
Таблица 3
Поле
Размер (октет)
Примечания
Число указателей (N)
1
Число указателей события мультисенсорного ввода. Когда равно 1, это указывает событие традиционного сенсорного ввода.
Для i=1:N{
Идентификатор указателя
1
Идентификационный номер этого указателя. Значение находится в [0, 1,...]
Координата X
2
Координата X для события, нормализованная относительно согласованного разрешения видеопотока между устройством-приемником и устройством-источником.
Координата Y}
2
Координата Y для события, нормализованная относительно согласованного разрешения видеопотока между устройством-приемником и устройством-источником.
[00102] Число указателей может идентифицировать число касаний или щелчков мышью, ассоциированных с событием ввода. Каждый указатель может иметь уникальный идентификатор указателя. Если, например, событие мультисенсорного ввода включает в себя касание тремя пальцами, то событие ввода может иметь три указателя, каждый из которых имеет уникальный идентификатор указателя. Каждый указатель (т.е. каждое касание пальцами) может иметь соответствующую координату X и координату Y, соответствующие месту, в котором произошло касание.
[00103] Одна пользовательская команда может описываться как последовательность событий ввода. Например, если проведение тремя пальцами является командой для того, чтобы закрывать приложение, то проведение тремя пальцами может быть описано в рабочих данных 650 в качестве события касания и удерживания с тремя указателями, события касания с перемещением с тремя указателями и события касания и отпускания с тремя указателями. Три указателя события касания и удерживания могут иметь идентичные идентификаторы указателей в качестве трех указателей события касания с перемещением и события касания и отпускания. Устройство-источник 120 может интерпретировать комбинацию этих трех событий ввода в качестве проведения тремя пальцами.
[00104] Поля описания события нажатия клавиши или события отпускания клавиши, например, могут включать в себя информационные элементы, идентифицированные в нижеприведенной таблице 4.
Таблица 4
Поле
Размер (октет)
Примечания
Зарезервировано
1
Зарезервировано
Код клавиши 1 (ASCII)
2
Код клавиши первого события нажатия или отпускания клавиши. Базовый/расширенный ASCII-код использует более младший один байт. Более старший один байт зарезервирован для будущего ASCII-совместимого кода клавиши.
Код клавиши 2 (ASCII)
2
Код клавиши для второго события нажатия или отпускания клавиши. Базовый/расширенный ASCII-код использует более младший один байт. Более старший один байт зарезервирован для будущего ASCII-совместимого кода клавиши.
[00105] Поле описания события изменения масштаба, например, может включать в себя информационные элементы, идентифицированные в нижеприведенной таблице 5.
Таблица 5
Поле
Размер (октет)
Примечания
X
2
Эталонная координата X для операции изменения масштаба, нормализованная относительно согласованного разрешения видеопотока между устройством-приемником и устройством-источником.
Y
2
Эталонная координата Y для операции изменения масштаба, нормализованная относительно согласованного разрешения видеопотока между устройством-приемником и устройством-источником.
Целая часть коэффициента изменения масштаба
1
Часть целого числа без знака коэффициента изменения масштаба
Дробная часть коэффициента изменения масштаба
1
Дробная часть коэффициента изменения масштаба
[00106] Поле описания события горизонтальной прокрутки или события вертикальной прокрутки, например, может включать в себя информационные элементы, идентифицированные в нижеприведенной таблице 6.
Таблица 6
Поле
Размер (октет)
Примечания
Величина прокрутки
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] Фиг. 8A является блок-схемой последовательности операций примерного способа передачи данных пользовательского ввода из беспроводного устройства-приемника в беспроводное устройство-источник в соответствии с этим раскрытием сущности. Проиллюстрированный примерный способ может быть выполнен посредством устройства-приемника 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). Пакеты данных, описанные со ссылкой на фиг. 8A и 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] Фиг. 9B является блок-схемой последовательности операций примерного способа приема данных пользовательского ввода из беспроводного устройства-приемника в беспроводном устройстве-источнике в соответствии с этим раскрытием сущности. Проиллюстрированный примерный способ может быть выполнен посредством устройства-источника 120 (фиг. 1A) или 220 (фиг. 2). В некоторых примерах, машиночитаемый носитель хранения данных (например, запоминающее устройство 232) может сохранять инструкции, модули или алгоритмы, которые при выполнении инструктируют один или более процессоров (например, процессору 231) выполнять один или более проиллюстрированных этапов на блок-схеме последовательности операций способа.
[00125] Способ по фиг. 9B включает в себя прием пакета данных из устройства-приемника 360 (902), при этом пакет данных может содержать, в числе прочего, заголовок пакета данных и рабочие данные. В одном примере, рабочие данные могут содержать, например, данные, описывающие подробности пользовательского ввода, к примеру, значение типа ввода. Устройство-источник 120 может содержать компоненты связи, которые обеспечивают возможность передачи пакетов данных, включающие в себя, например, транспортный блок 233 и беспроводной модем 234, как показано со ссылкой на фиг. 2. Устройство-источник 120 затем может синтаксически анализировать пакет данных (904), чтобы определять значение типа ввода в поле типа ввода в рабочих данных. Устройство-источник 120 может обрабатывать данные, описывающие подробности пользовательского ввода, на основе определенного значения типа ввода (906). Пакеты данных, описанные со ссылкой на фиг. 9A и 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). Пакеты данных, описанные со ссылкой на фиг. 10A и 10B, в общем, могут принимать форму пакетов данных, описанных со ссылкой на фиг. 6, и могут быть использованы для того, чтобы управлять аудио-видеоданными в устройстве-источнике.
[00130] Фиг. 11A является блок-схемой последовательности операций примерного способа передачи данных пользовательского ввода из беспроводного устройства-приемника в беспроводное устройство-источник в соответствии с этим раскрытием сущности. Проиллюстрированный примерный способ может быть выполнен посредством устройства-приемника 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, и может выполнять команду пользовательского ввода, описанную в рабочих данных, в ответ на разность времен между временной меткой и текущей временной меткой, меньшую порогового значения, или не выполнять команду пользовательского ввода, описанную в рабочих данных, в ответ на разность времен между временной меткой и текущей временной меткой, превышающую пороговое значение. Пакеты данных, описанные со ссылкой на фиг. 11A и 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 (фиг. 1A) или 220 (фиг. 2). В некоторых примерах, машиночитаемый носитель хранения данных (например, запоминающее устройство 232) может сохранять инструкции, модули или алгоритмы, которые при выполнении инструктируют один или более процессоров (например, процессору 231) выполнять один или более проиллюстрированных этапов на блок-схеме последовательности операций способа.
[00137] Способ по фиг. 12B включает в себя прием пакета данных (1202), при этом пакет данных может содержать, в числе прочего, заголовок пакета данных и рабочие данные. Рабочие данные могут включать в себя, например, данные пользовательского ввода, такие как данные речевых команд. Устройство-источник 120 может содержать компоненты связи, которые обеспечивают возможность передачи пакетов данных, включающие в себя, например, транспортный блок 233 и беспроводной модем 234, как показано в отношении фиг. 2. Устройство-источник 120 затем может синтаксически анализировать рабочие данные (1204), включенные в пакет данных, для того чтобы определять то, содержат рабочие данные или нет данные речевых команд. Пакеты данных, описанные со ссылкой на фиг. 12A и 12B, в общем, могут принимать форму пакетов данных, описанных со ссылкой на фиг. 6, и могут быть использованы для того, чтобы управлять аудио-видеоданными в устройстве-источнике.
[00138] Фиг. 13A является блок-схемой последовательности операций примерного способа передачи данных пользовательского ввода из беспроводного устройства-приемника в беспроводное устройство-источник в соответствии с этим раскрытием сущности. Проиллюстрированный примерный способ может быть выполнен посредством устройства-приемника 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). Пакеты данных, описанные со ссылкой на фиг. 13A и 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). Пакеты данных, описанные со ссылкой на фиг. 14A и 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 (фиг. 1A) или 220 (фиг. 2). В некоторых примерах, машиночитаемый носитель хранения данных (например, запоминающее устройство 232) может сохранять инструкции, модули или алгоритмы, которые при выполнении инструктируют один или более процессоров (например, процессору 231) выполнять один или более проиллюстрированных этапов на блок-схеме последовательности операций способа.
[00149] Способ по фиг. 15B включает в себя прием пакета данных в беспроводном устройстве-источнике, при этом пакет данных содержит данные пользовательского ввода с ассоциированными координатными данными (1502). Ассоциированные координатные данные, например, могут соответствовать местоположению события щелчка мышью или местоположению события сенсорного ввода в устройстве-приемнике. Устройство-источник 120 затем может нормализовать ассоциированные координатные данные, чтобы формировать нормализованные координатные данные (1504). Устройство-источник 120 может нормализовать координатные данные посредством масштабирования ассоциированных координатных данных на основе соотношения разрешения окна отображения и разрешения дисплея источника. Устройство-источник 120 может определять разрешение дисплея устройства-источника и может принимать разрешение окна отображения из беспроводного устройства-приемника. Устройство-источник затем может обрабатывать пакет данных на основе нормализованных координатных данных (1506). Пакеты данных, описанные со ссылкой на фиг. 15A и 15B, в общем, могут принимать форму пакетов данных, описанных со ссылкой на фиг. 6, и могут быть использованы для того, чтобы управлять аудио-видеоданными в устройстве-источнике.
[00150] Для простоты пояснения, аспекты этого раскрытия сущности описаны отдельно со ссылкой на фиг. 7-15. Тем не менее, предполагается, что эти различные аспекты могут быть комбинированы и использованы в сочетании друг с другом, а не просто отдельно. В общем, функциональность и/или модули, описанные в данном документе, могут быть реализованы в одном или в обоих из беспроводного устройства-источника и беспроводного устройства-приемника. Таким образом, характеристики пользовательского интерфейса, описанные в текущем примере, могут быть использованы взаимозаменяемо между беспроводным устройством-источником и беспроводным устройством-приемником.
[00151] Технологии этого раскрытия сущности могут быть реализованы в широком спектре устройств или приборов, в том числе в беспроводном переносном телефоне и интегральной схеме (IC) или наборе IC (т.е. наборе микросхем). Все описанные компоненты, модули или блоки предусмотрены для того, чтобы подчеркивать функциональные аспекты, и не обязательно требуют реализации посредством различных аппаратных блоков.
[00152] Технологии, описанные в данном документе, могут быть реализованы в аппаратных средствах, программном обеспечении, микропрограммном обеспечении или в любой их комбинации. При реализации в аппаратных средствах, любые признаки, описанные как модули, блоки или компоненты, могут быть реализованы совместно в интегрированном логическом устройстве или отдельно как дискретные, но взаимодействующие логические устройства. При реализации в программном обеспечении, технологии могут быть реализованы, по меньшей мере, частично посредством машиночитаемого носителя, содержащего инструкции, которые при выполнении в процессоре осуществляют один или более способов, описанных выше, Машиночитаемый носитель может содержать материальный и энергонезависимый машиночитаемый носитель хранения данных и может являться частью компьютерного программного продукта, который может включать в себя упаковку. Машиночитаемые носители хранения данных могут содержать оперативное запоминающее устройство (RAM), такое как синхронное динамическое оперативное запоминающее устройство (SDRAM), постоянное запоминающее устройство (ROM), энергонезависимое оперативное запоминающее устройство (NVRAM), электрически стираемое программируемое постоянное запоминающее устройство (EEPROM), флэш-память, магнитные или оптические носители хранения данных и т.п. Дополнительно или альтернативно, технологии могут быть реализованы, по меньшей мере, частично посредством машиночитаемой среды связи, которая переносит или передает код в форме инструкций или структур данных, и к которой можно осуществлять доступ, считывать или выполнять посредством компьютера.
[00153] Код может выполняться посредством одного или более процессоров, например, одного или более процессоров цифровых сигналов (DSP), микропроцессоров общего назначения, специализированных интегральных схем (ASIC), программируемых пользователем вентильных матриц (FPGA) либо других эквивалентных интегральных или дискретных логических схем. Соответственно, термин "процессор" при использовании в данном документе может означать любую вышеуказанную структуру или другую структуру, подходящую для реализации технологий, описанных в данном документе. Помимо этого, в некоторых аспектах функциональность, описанная в данном документе, может быть предоставлена в рамках специализированных программных модулей или аппаратных модулей, выполненных с возможностью кодирования или декодирования либо встроенных в комбинированный видеокодек. Кроме того, технологии могут быть полностью реализованы в одной или более схем или логических элементов.
[00154] Описаны различные аспекты раскрытия сущности. Эти и другие аспекты находятся в пределах объема, определенного прилагаемой формулы изобретения.