BR112013018566B1 - Método para negociar capacidades entre um dispositivo de origem sem fio e um dispositivo de destino sem fio, dispositivo de destino sem fio, dispositivo de origem sem fio e memória legível por computador - Google Patents

Método para negociar capacidades entre um dispositivo de origem sem fio e um dispositivo de destino sem fio, dispositivo de destino sem fio, dispositivo de origem sem fio e memória legível por computador Download PDF

Info

Publication number
BR112013018566B1
BR112013018566B1 BR112013018566-0A BR112013018566A BR112013018566B1 BR 112013018566 B1 BR112013018566 B1 BR 112013018566B1 BR 112013018566 A BR112013018566 A BR 112013018566A BR 112013018566 B1 BR112013018566 B1 BR 112013018566B1
Authority
BR
Brazil
Prior art keywords
supported
wireless
source device
data
target device
Prior art date
Application number
BR112013018566-0A
Other languages
English (en)
Other versions
BR112013018566B8 (pt
BR112013018566A2 (pt
Inventor
Vijayalaksmi R. Raveendran
Xiaolong Huang
Xiaodong Wang
Fawad Shaukat
Original Assignee
Qualcomm Incorporated
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Incorporated filed Critical Qualcomm Incorporated
Publication of BR112013018566A2 publication Critical patent/BR112013018566A2/pt
Publication of BR112013018566B1 publication Critical patent/BR112013018566B1/pt
Publication of BR112013018566B8 publication Critical patent/BR112013018566B8/pt

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W80/00Wireless network protocols or protocol adaptations to wireless operation
    • H04W80/08Upper layer protocols
    • H04W80/10Upper layer protocols adapted for application session management, e.g. SIP [Session Initiation Protocol]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/16Central resource management; Negotiation of resources or communication parameters, e.g. negotiating bandwidth or QoS [Quality of Service]
    • H04W28/18Negotiating wireless communication parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/613Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for the control of the source by the destination

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Communication Control (AREA)
  • User Interface Of Digital Computer (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

NEGOCIAR CAPACIDADES ENTRE UM DISPOSITIVO DE ORIGEM SEM FIO E UM DISPOSITIVO DE DESTINO SEM FIO. Como parte de uma sessão de comunicação, um dispositivo de origem sem fio pode transmitir dados de áudio e vídeo para um dispositivo de destino sem fio, e o dispositivo de destino sem fio pode transmitir entradas de usuário recebidas no dispositivo de destino sem fio de volta para o dispositivo de origem sem fio. Desta forma, um usuário do dispositivo de destino sem fio pode controlar o dispositivo de origem sem fio e controlar o conteúdo que está sendo transmitido a partir do dispositivo de origem sem fio para o dispositivo de destino sem fio. Como parte do estabelecimento da sessão de comunicação, o dispositivo de destino sem fio e o dispositivo de origem sem fio podem realizar uma negociação de capacidade.

Description

[0001] Este pedido reivindica o benefício de Pedido Provisório U.S. Nº 61/435,194, depositado em 21 de janeiro de 2011; Pedido Provisório U.S. Nº 61/447,592, depositado em 28 de fevereiro de 2011; Pedido Provisório U.S. Nº 61/448,312, depositado em 2 de março de 2011; Pedido Provisório U.S. Nº 61/450,101, depositado em 7 de março de 2011; Pedido Provisório U.S. Nº 61/467,535, depositado em 25 de Março de 2011; Pedido Provisório U.S. Nº 61/467,543, depositado em 25 de Março de 2011; Pedido Provisório U.S. Nº 61/514,863, depositado em 03 de agosto de 2011; e Pedido Provisório U.S. Nº 61/544,445, depositado em 7 de outubro de 2011; a totalidade do conteúdo de cada um dos quais é aqui incorporada por referência na sua totalidade.
Campo da Invenção
[0002] Esta descrição se refere a técnicas para a transmissão de dados entre um dispositivo de origem e um dispositivo de destino sem fio.
Descrição da Técnica Anterior
[0003] Sistemas de Exibição Sem Fio (WD) ou de Exibição Wi-Fi (WFD) incluem um dispositivo de origem sem fio e um ou mais dispositivos de destino sem fio. O dispositivo de origem e cada um dos dispositivos de destino podem ser dispositivos móveis ou dispositivos com fio com capacidades de comunicação sem fio. Um ou mais dos dispositivos móveis e dispositivos de destino podem, por exemplo, incluir telefones móveis, computadores portáteis com cartões de comunicação sem fio, assistentes digitais pessoais (PDAs), aparelhos de reprodução de mídia portáteis ou outros dispositivos com capacidade de comunicação sem fio, incluindo os assim chamados "smartphones" e "smartpads" ou tablets, e-readers, ou qualquer tipo de aparelho de exibição sem fio, dispositivos de videogame, ou outros tipos de dispositivos de comunicação sem fio. Um ou mais dispositivos de origem e dispositivos de destino também pode incluir dispositivos com fio, tais como, televisores, computadores desktop, monitores, projetores, e similares, que incluem capacidades de comunicação.
[0004] O dispositivo de origem envia dados de mídia, tais como dados de áudio/vídeo (AV), para um ou mais dos dispositivos de destino participantes em uma sessão de compartilhamento de mídia particular. Os dados de mídia podem ser reproduzidos em ambos, uma tela local do dispositivo de origem e em cada uma das telas dos dispositivos de destino. Mais especificamente, cada um dos dispositivos de destino participantes renderiza os dados de mídia recebidos em seu monitor e equipamentos de áudio.
Sumário da Invenção
[0005] Esta invenção em geral descreve um sistema em que um dispositivo de destino sem fio pode comunicar com um dispositivo de destino sem fio. Como parte de uma sessão de comunicação, um dispositivo de origem sem fio pode transmitir dados de áudio e vídeo para o dispositivo de destino sem fio, e o dispositivo de destino sem fio pode transmitir entradas de usuário recebidas no dispositivo de destino sem fio de volta para o dispositivo de origem sem fio. Desta forma, um usuário do dispositivo de destino sem fio pode controlar o dispositivo de origem sem fio e controlar o conteúdo que está sendo transmitido do dispositivo de origem sem fio para o dispositivo de destino sem fio.
[0006] Em um exemplo, um método para negociar capacidades entre um dispositivo de destino sem fio e um dispositivo de origem sem fio inclui transmitir uma mensagem para o dispositivo de origem sem fio, em que a mensagem identifica uma lista de categorias de entrada suportadas e uma pluralidade de listas de tipos suportados, em que cada uma das categorias de entrada suportadas da lista de categorias de entrada suportadas possui uma lista associada de tipos suportados.
[0007] Em outro exemplo, um dispositivo de destino sem fio está configurado para negociar capacidades com um dispositivo de origem sem fio. O dispositivo de destino sem fio inclui uma memória que armazena instruções e um ou mais processadores configurados para executar as instruções. Após a execução das instruções os um ou mais processadores transmitem uma mensagem para o dispositivo de origem sem fio, em que a mensagem identifica uma lista de categorias de entrada suportadas; e uma pluralidade de listas de tipos suportados, em que cada uma das categorias de entrada suportadas da lista de categorias de entrada suportadas possui uma lista associada de tipos suportados.
[0008] Em outro exemplo, um meio de armazenamento legível por computador armazena instruções que, após a execução por um ou mais processadores fazem com que os um ou mais processadores realizem um método para negociar capacidades entre um dispositivo de destino sem fio e um dispositivo de origem sem fio. O método inclui transmitir uma mensagem para o dispositivo de origem sem fio, em que a mensagem identifica uma lista de categorias de entrada suportadas e uma pluralidade de listas de tipos suportados, em que cada uma das categorias de entrada suportadas da lista de categorias de entrada suportadas possui uma lista associada de tipos suportados.
[0009] Em outro exemplo, um dispositivo de destino sem fio está configurado para negociar capacidades com um dispositivo de origem sem fio. O dispositivo de destino sem fio inclui mecanismos para transmitir uma mensagem para o dispositivo de origem sem fio, em que a mensagem identifica uma lista de categorias de entrada suportadas; e, uma pluralidade de listas de tipos suportados, em que cada uma das categorias de entrada suportadas da lista de categorias de entrada suportadas possui uma lista associada de tipos suportados.
[00010] Em outro exemplo, um método para negociar capacidades entre um dispositivo de destino sem fio e um dispositivo de origem sem fio inclui receber uma mensagem a partir do dispositivo de destino sem fio, em que a mensagem identifica uma lista de categorias de entrada suportadas e uma pluralidade de listas de tipos suportados, em que cada uma das categorias de entrada suportadas da lista de categorias de entrada suportadas possui uma lista associada de tipos suportados.
[00011] Em outro exemplo, um dispositivo de origem sem fio é configurado para negociar capacidades com um dispositivo de destino sem fio. O dispositivo de origem sem fio inclui uma memória que armazena instruções e um ou mais processadores configurados para executar as instruções, em que após a execução das instruções os um ou mais processadores recebem uma mensagem do dispositivo de destino sem fio, em que a mensagem identifica uma lista de categorias de entrada suportadas e uma pluralidade de listas de tipos suportados, em que cada uma das categorias de entrada suportadas da lista de categorias de entrada suportadas possui uma lista associada de tipos suportados.
[00012] Em outro exemplo, um meio de armazenamento legível por computador armazena instruções que, após a execução por um ou mais processadores fazem com que os um ou mais processadores realizem um método para negociar capacidades entre um dispositivo de destino sem fio e um dispositivo de origem sem fio. O método inclui receber uma mensagem a partir do dispositivo de destino sem fio, em que a mensagem identifica uma lista de categorias de entrada suportadas e uma pluralidade de listas de tipos suportados, em que cada uma das categorias de entrada suportadas da lista de categorias de entrada suportadas possui uma lista associada de tipos suportados.
[00013] Em outro exemplo, um dispositivo de origem sem fio está configurado para negociar capacidades com um dispositivo de destino sem fio. O dispositivo de origem sem fio inclui mecanismos para receber uma mensagem a partir do dispositivo de destino sem fio, em que a mensagem identifica uma lista de categorias de entrada suportadas e uma pluralidade de listas de tipos suportados, em que cada uma das categorias de entrada suportadas da lista de categorias de entrada suportadas possui uma lista associada de tipos suportados.
Breve Descrição dos Desenhos
[00014] Figura 1A - é um diagrama em blocos que ilustra um exemplo de um sistema de origem/destino, que pode implementar as técnicas da presente invenção.
[00015] Figura 1B - é um diagrama em blocos que ilustra um exemplo de um sistema de origem/destino com dois dispositivos de destino.
[00016] Figura 2 - mostra um exemplo de um dispositivo de origem que pode implementar as técnicas da presente invenção.
[00017] Figura 3 - mostra um exemplo de um dispositivo de destino que pode implementar as técnicas da presente invenção.
[00018] Figura 4 - mostra um diagrama em blocos de um sistema transmissor e um sistema receptor, que pode implementar as técnicas da presente invenção.
[00019] Figuras 5A e 5B - mostram exemplos de sequências de transferência de mensagem para a realização de negociações de capacidade de acordo com as técnicas da presente invenção.
[00020] Figura 6 - mostra um pacote de dados que pode ser utilizado para entrega de dados de entrada de usuário obtidos em um dispositivo de destino para um dispositivo de origem.
[00021] Figuras 7A e 7B - são fluxogramas que ilustram as técnicas desta invenção que podem ser utilizadas para a negociação de capacidade entre um dispositivo de origem e um dispositivo de destino.
[00022] Figuras 8A e 8B - são fluxogramas que ilustram técnicas desta invenção que podem ser utilizadas para transmitir e receber pacotes de dados com dados de entrada de usuário.
[00023] Figuras 9A e 9B - são fluxogramas que ilustram as técnicas desta invenção que podem ser utilizadas para transmitir e receber pacotes de dados com os dados de entrada de usuário.
[00024] Figuras 10A e 10B - são fluxogramas que ilustram técnicas desta invenção que podem ser utilizadas para transmitir e receber pacotes de dados com informação de marca de tempo e dados de entrada de usuário.
[00025] Figuras 11A e 11B - são fluxogramas que ilustram técnicas desta invenção que podem ser utilizadas para transmitir e receber pacotes de dados com informação de marca de tempo e dados de entrada de usuário.
[00026] Figuras 12A e 12B - são fluxogramas que ilustram técnicas desta invenção que podem ser utilizadas para transmitir e receber pacotes de dados que incluem comandos de voz.
[00027] Figuras 13A e 13B - são fluxogramas que ilustram técnicas desta invenção que podem ser utilizadas para transmitir e receber pacotes de dados através de comandos de entrada de usuário por multitoque.
[00028] Figuras 14A e 14B - são fluxogramas que ilustram as técnicas desta invenção que podem ser utilizadas para transmitir e receber pacotes de dados com dados de entrada de usuário encaminhados a partir de um dispositivo de terceiros.
[00029] Figuras 15A e 15B - são fluxogramas que ilustram as técnicas desta invenção que podem ser utilizadas para transmitir e receber pacotes de dados.
Descrição Detalhada da Invenção
[00030] Esta invenção geralmente descreve um sistema em que um dispositivo de destino sem fio pode comunicar com um dispositivo de destino sem fio. Como parte de uma sessão de comunicação, um dispositivo de origem sem fio pode transmitir dados de áudio e vídeo para o dispositivo de destino sem fio, e o dispositivo de destino sem fio pode transmitir entradas de usuário recebidas no dispositivo de destino sem fio de volta para o dispositivo de origem sem fio. Desta forma, um usuário do dispositivo de destino sem fio pode controlar o dispositivo de origem sem fio e controlar o conteúdo que está sendo transmitido do dispositivo de origem sem fio para o dispositivo de destino sem fio.
[00031] A Figura 1A é um diagrama em blocos que ilustra um sistema de origem/destino 100 exemplar que pode implementar uma ou mais das técnicas desta invenção. Como mostrado na Figura 1A, o sistema 100 inclui um dispositivo de origem 120 que comunica com o dispositivo de destino 160 através do canal de comunicação 150. O dispositivo de origem 120 pode incluir uma memória que armazena dados de áudio/vídeo (A/V) 121, tela 122, alto-falante 123, codificador de áudio/vídeo 124 (também conhecido como codificador 124), módulo de controle de áudio/vídeo 125, e uma unidade de transmissor/receptor (TX/RX) 126. O dispositivo de destino 160 pode incluir tela 162, alto- falante 163, decodificador de áudio/vídeo 164 (também conhecido como decodificador 164), unidade de transmissor/receptor 166, dispositivo de entrada de usuário (UI) 167, e módulo de processamento de entrada de usuário (UIPM) 168. Os componentes ilustrados constituem apenas um exemplo de configuração para o sistema de origem/destino 100. Outras configurações podem incluir menos componentes que os ilustrados, ou podem incluir componentes adicionais diferentes dos ilustrados.
[00032] No exemplo da Figura 1A, o dispositivo de origem 120 pode exibir a parte de vídeo dos dados de áudio/vídeo 121 na tela 122 e pode reproduzir a parte de áudio dos dados de áudio/vídeo 121 no alto-falante 123. Os dados de áudio/vídeo 121 podem ser armazenados localmente no dispositivo de origem 120, acessados a partir de um meio de armazenamento externo, tal como um servidor de arquivos, disco rígido, memória externa, disco Blu-ray, DVD, ou outro meio de armazenamento físico, ou podem ser transmitidos para o dispositivo de origem 120 através de uma conexão de rede, tal como a internet. Em alguns casos, os dados de áudio/vídeo 121 podem ser capturados em tempo real através de uma câmera e um microfone do dispositivo de origem 120. Os dados de áudio/vídeo 121 podem incluir conteúdo de multimídia, tais como filmes, programas de televisão, ou música, mas também podem incluir conteúdo em tempo real gerado pelo dispositivo de origem 120. Tais conteúdos em tempo real podem, por exemplo, ser produzidos por aplicativos rodando no dispositivo de origem 120, ou dados de vídeo capturados, por exemplo, como parte de uma sessão de vídeo-telefonia. Como será descrito em maiores detalhes, tal conteúdo em tempo real pode, em alguns casos incluir um quadro de vídeo de opções de entrada de usuário disponíveis para o usuário selecionar. Em alguns casos, os dados de áudio/vídeo 121 podem incluir quadros de vídeo que são uma combinação de diferentes tipos de conteúdo, tal como um quadro de vídeo de um filme ou programa de TV que tem opções de entrada de usuário sobrepostas no quadro de vídeo.
[00033] Além de renderizar os dados de áudio/vídeo 121 localmente através da tela 122 e do alto-falante 123, o codificador de áudio/vídeo 124 do dispositivo de origem 120 pode codificar os dados de áudio/vídeo 121, e uma unidade de transmissor/receptor 126 pode transmitir os dados codificados através do canal de comunicação 150 para o dispositivo de destino 160. A unidade de transmissor/receptor 166 do dispositivo de destino 160 recebe os dados codificados, e o decodificador de áudio/vídeo 164 decodifica os dados codificados e transmite os dados decodificados através da tela 162 e do alto- falante 163. Desta forma, os dados de áudio e vídeo sendo renderizados pela tela 122 e alto-falante 123 podem ser simultaneamente renderizados pela tela 162 e pelo alto- falante 163. Os dados de áudio e os dados de vídeo podem ser organizados em quadros, e os quadros de áudio podem ser sincronizados no tempo com os quadros de vídeo quando renderizados.
[00034] O codificador de áudio/vídeo 124 e o decodificador de áudio/vídeo 164 podem implementar qualquer número de padrões de compressão de áudio e vídeo, tais como o padrão ITU-T H.264, alternativamente conhecido como MPEG- 4 Parte 10, Codificação de Vídeo Avançada (AVC), ou o recente padrão de codificação de vídeo de alta eficiência emergente (HEVC), às vezes chamado de o padrão H.265. Vários outros tipos de técnicas de compressão proprietária ou padronizada podem ser também utilizados. De modo geral, o decodificador de áudio/vídeo 164 é configurado para realizar as operações de codificação recíprocas do codificador de áudio/vídeo 124. Embora não mostrado na Figura 1A, em alguns aspectos, o codificador A/V 124 e o decodificador A/V 164 podem cada qual ser integrado com um codificador e decodificador de áudio, e podem incluir unidades de MUX-DEMUX adequadas, ou outro hardware e software, para controlar a codificação de áudio e de vídeo em um fluxo de dados comum ou fluxos de dados separados.
[00035] Como será descrito com maiores detalhes a seguir, o codificador A/V 124 pode também realizar outras funções de codificação em adição à implementação de um padrão de compressão de vídeo, como descrito acima. Por exemplo, o codificador A/V 124 pode adicionar vários tipos de metadados para dados A/V 121 antes dos dados A/V 121 serem transmitidos para o dispositivo de destino 160. Em alguns casos, os dados A/V 121 podem ser armazenados ou recebidos no dispositivo de origem 120 sob a forma codificada e, portanto, não necessitam de mais compressão pelo codificador A/V 124.
[00036] Apesar de, a Figura 1A mostrar o canal de comunicação 150 portando dados de carga útil de áudio e dados de carga útil de vídeo separadamente, deve ser entendido que, em alguns casos, os dados de carga útil de vídeo e dados de carga útil de áudio podem ser parte de um fluxo de dados comum. Se aplicável, as unidades MUX-DEMUX podem estar de acordo com o protocolo multiplexador ITU H.223, ou outros protocolos, como o Protocolo de Datagrama de Usuário (UDP). O codificador de áudio/vídeo 124 e o decodificador de áudio/vídeo 164 cada qual pode ser implementado como um ou mais microprocessadores, processadores de sinal digital (DSPs), circuitos integrados de aplicação específica (ASICs), matrizes de portas programáveis em campo (FPGAs), lógica discreta, software, hardware, firmware ou qualquer combinação dos mesmos. Cada um dentre o codificador de áudio/vídeo 124 e o decodificador de áudio/vídeo 164 pode ser incluído em um ou mais codificadores ou decodificadores, os quais podem ser integrados como parte de um codificador/decodificador (CODEC) combinado. Deste modo, cada um dentre o dispositivo de origem 120 e o dispositivo de destino 160 pode compreender máquinas especializadas configuradas para executar uma ou mais das técnicas desta invenção.
[00037] A tela 122 e a tela 162 podem compreender qualquer um de uma variedade de dispositivos de saída de vídeo tais como, um tubo de raios catódicos (CRT), uma tela de cristal líquido (LCD), uma tela de plasma, uma tela de diodo emissor de luz (LED), uma tela de diodo orgânico emissor de luz (OLED), ou outro tipo de dispositivo de exibição. Nesses ou em outros exemplos, as telas 122 e 162 podem cada qual serem telas emissivas ou telas transmissivas. A tela 122 e a tela 162 também podem ser telas sensíveis ao toque tal que elas sejam, simultaneamente, ambas, o dispositivo de entrada e o dispositivo de exibição. Essas telas sensíveis ao toque podem ser capacitivas, resistivas, ou outro tipo de painel sensível ao toque, que permite ao usuário prover a entrada de usuário para o respectivo dispositivo.
[00038] O alto-falante 123 pode compreender qualquer um de uma variedade de dispositivos de saída de áudio, tais como fones de ouvido, um sistema de alto-falante único, um sistema de alto-falante múltiplo, ou um sistema de som ambiente. Além disso, apesar da tela 122 e do alto-falante 123 serem mostrados como parte do dispositivo de origem 120 e a tela 162 e o alto-falante 163 serem mostrados como parte do dispositivo de destino 160, o dispositivo de origem 120 e o dispositivo de destino 160 podem ser de fato um sistema de dispositivos. Como um exemplo, a tela 162 pode ser uma televisão, o alto-falante 163 pode ser um sistema de som ambiente, e o decodificador 164 pode ser parte de uma caixa externa conectada, com ou sem fio, para tela 162 e o alto-falante 163. Em outros casos, o dispositivo de destino 160 pode ser um único dispositivo, tal como um tablet ou smartphone. Em ainda outros casos, o dispositivo de origem 120 e o dispositivo de destino 160 são dispositivos semelhantes, por exemplo, sendo ambos smartphones, tablets, ou semelhantes. Neste caso, um dispositivo pode operar como o de origem e o outro pode operar como o de destino. Estes registros podem até ser revertidos em sessões de comunicação subsequentes. Em ainda outros casos, o dispositivo de origem pode compreender um dispositivo móvel, tal como um smartphone, laptop ou tablet, e o dispositivo de destino pode compreender um dispositivo mais estacionário (por exemplo, com um cabo de alimentação AC), neste caso, o dispositivo de origem pode entregar dados de áudio e vídeo para apresentação em larga escala através do dispositivo de destino.
[00039] A unidade de transmissor/receptor 126 e a unidade de transmissor/receptor 166 podem cada qual incluir vários misturadores, filtros, amplificadores e outros componentes designados para modulação de sinal, bem como uma ou mais antenas e outros componentes designados para transmitir e receber dados. O canal de comunicação 150 geralmente representa qualquer meio adequado de comunicação, ou coleção de diferentes mídias de comunicação, para transmitir dados de vídeo do dispositivo de origem 120 para o dispositivo de destino 160. O canal de comunicação 150 é geralmente um canal de comunicação de alcance relativamente curto, semelhante ao Wi-Fi, Bluetooth, ou semelhante. Contudo, o canal de comunicação 150 não é necessariamente limitado a este respeito, e pode compreender qualquer forma de comunicação com ou sem fio, tal como um espectro de rádio frequência (RF) ou uma ou mais linhas de transmissão físicas, ou qualquer combinação de mídias de comunicação com ou sem fio. Em outros exemplos, o canal de comunicação 150 pode até fazer parte de uma rede baseada em pacotes, tal como uma rede com ou sem fio de área local, uma rede de área ampla, ou uma rede global tal como a Internet. Além disso, o canal de comunicação 150 pode ser usado pelo dispositivo de origem 120 e pelo dispositivo de destino 160 para criar um enlace ponto a ponto. O dispositivo de origem 120 e o dispositivo de destino 160 podem comunicar através de um canal de comunicação 150 utilizando um protocolo de comunicação, tal como um padrão da família de padrões IEEE 802.11. O dispositivo de origem 120 e o dispositivo de destino 160 podem, por exemplo, comunicar de acordo com o padrão Wi-Fi Direto, tal que o dispositivo de origem 120 e o dispositivo de destino 160 comunicam diretamente um com o outro sem a utilização de um intermediário, tal como pontos de acesso sem fio ou assim chamado de hotspot. O dispositivo de origem 120 e o dispositivo de destino 160 podem também estabelecer uma configuração de enlace direto tunelado (TLDs) para evitar ou reduzir o congestionamento da rede. As técnicas da presente invenção podem, por vezes, ser descritas em relação à Wi-Fi, mas está contemplado que os aspectos destas técnicas também podem ser compatíveis com outros protocolos de comunicação. A título de exemplo e não de limitação, a comunicação sem fio entre o dispositivo de origem 120 e o dispositivo de destino podem utilizar técnicas de multiplexação por divisão de frequência ortogonal (OFDM). Uma grande variedade de outras técnicas de comunicação sem fio pode também ser utilizada, incluindo, mas não limitada a acesso múltiplo por divisão de tempo (TDMA), acesso múltiplo por divisão de frequência (FDMA), acesso múltiplo por divisão de código (CDMA), ou qualquer combinação de OFDM, FDMA, TDMA e/ou CDMA. Wi-Fi direto e TDLS se destinam a configurar sessões de comunicação de distância relativamente curta. O termo distância relativamente curta, neste contexto, pode referir-se a, por exemplo, menos do que 70 metros, embora em um ambiente ruidoso ou obstruído, a distância entre os dispositivos pode ser ainda mais curta, tal como menor que 35 metros.
[00040] Além de decodificar e renderizar dados recebidos do dispositivo de origem 120, o dispositivo de destino 160 também pode receber entradas de usuário do dispositivo de entrada de usuário 167. O dispositivo de entrada de usuário 167 pode, por exemplo, ser um teclado, mouse, trackball ou track pad, tela sensível ao toque, módulo de reconhecimento de comando de voz, ou qualquer outro dispositivo de entrada de usuário. UIPM 168 formata comandos de entrada de usuário recebidos pelo dispositivo de entrada de usuário 167 em uma estrutura de pacote de dados que o dispositivo de origem 120 é capaz de interpretar. Tais pacotes de dados são transmitidos pelo transmissor/receptor 166 para o dispositivo de origem 120 através do canal de comunicação 150. A unidade de transmissor/receptor 126 recebe os pacotes de dados, e o módulo de controle A/V 125 analisa os pacotes de dados para interpretar o comando de entrada de usuário que foi recebido pelo dispositivo de entrada de usuário 167. Com base no comando recebido no pacote de dados, o módulo de controle A/V 125 pode alterar o conteúdo a ser codificado e transmitido. Desta forma, um usuário do dispositivo de destino 160 pode controlar os dados de carga útil de áudio e os dados de carga útil de vídeo sendo transmitidos pelo dispositivo de origem 120 remotamente e sem interagir diretamente com o dispositivo de origem 120. Exemplos dos tipos de comandos que um usuário de dispositivo de destino 160 pode transmitir ao dispositivo de origem 120 incluem comandos para retrocesso, avanço rápido, pausa, e reprodução de dados de áudio e vídeo, bem como os comandos para zoom, rotação, rolagem, e assim por diante. Os usuários também podem fazer seleções, a partir de um menu de opções, por exemplo, e transmitir a seleção de volta ao dispositivo de origem 120.
[00041] Além disso, os usuários do dispositivo de destino 160 podem ser capazes de lançar e controlar aplicativos no dispositivo de origem 120. Por exemplo, um usuário de dispositivo de destino 160 pode ser capaz de lançar um aplicativo de edição de fotos armazenado no dispositivo de origem 120 e usar o aplicativo para editar uma foto que está armazenada localmente no dispositivo de origem 120. O dispositivo de destino 160 pode apresentar um usuário com uma experiência de usuário que olha e sente como se a foto estivesse sendo editada localmente no dispositivo de destino 160, enquanto na verdade a foto está sendo editada no dispositivo de origem 120. Usando tal configuração, um usuário do dispositivo pode ser capaz de aproveitar os recursos de um dispositivo para uso com vários dispositivos. Por exemplo, o dispositivo de origem 120 pode ser um smartphone com uma grande quantidade de memória e capacidade de processamento avançada. Um usuário do dispositivo de origem 120 pode usar o smartphone em todas as configurações e situações, nas quais os smartphones são normalmente utilizados. Ao assistir a um filme, no entanto, o usuário pode querer assistir ao filme em um dispositivo com uma tela de exibição maior, neste caso o dispositivo de destino 160, pode ser um tablet ou dispositivo de exibição ainda maior ou televisão. Quando se quer enviar ou responder a um e-mail, o usuário pode querer usar um dispositivo com um teclado, neste caso o dispositivo de destino 160 pode ser um laptop. Em ambos os casos, a maior parte do processamento pode ainda ser realizada pelo dispositivo de origem 120 (um smartphone neste exemplo), mesmo que o usuário esteja interagindo com um dispositivo de destino. Neste contexto operacional específico, devido à maior parte do processamento estar sendo executada pelo dispositivo de origem 120, o dispositivo de destino 160 pode ser um dispositivo de baixo custo com menos recursos do que se o dispositivo de destino 160 estivesse sendo solicitado a fazer o processamento que está sendo feito pelo dispositivo de origem 120. Ambos, o dispositivo de origem e o dispositivo de destino podem ser capazes de receber a entrada de usuário (tal como comandos em tela sensível ao toque), em alguns exemplos, e as técnicas desta invenção podem facilitar a interação de duas maneiras através da negociação e ou da identificação das capacidades dos dispositivos, em qualquer sessão.
[00042] Em algumas configurações, o módulo de controle A/V 125 pode ser um processo do sistema operacional sendo executado pelo sistema operacional do dispositivo de origem 125. Em outras configurações, no entanto, o módulo de controle A/V 125 pode ser um processo de software de um aplicativo em execução no dispositivo de origem 120. Em tal configuração, o comando de entrada de usuário pode ser interpretado pelo processo de software, tal que um usuário do dispositivo de destino 160 esteja interagindo diretamente com o aplicativo em execução no dispositivo de origem 120, ao contrário do sistema operacional em execução no dispositivo de origem 120. Ao interagir diretamente com um aplicativo, por oposição a um sistema operacional, um usuário do dispositivo de destino 160 pode ter acesso a uma biblioteca de comandos que não são nativas ao sistema operacional do dispositivo de origem 120. Além disso, interagir diretamente com um aplicativo pode permitir que os comandos sejam mais facilmente transmitidos e processados por dispositivos sendo executados em diferentes plataformas.
[00043] O dispositivo de origem 120 pode responder às entradas de usuário aplicadas no dispositivo de destino sem fio 160. Nesse tipo de configuração de aplicativo interativo, as entradas de usuário aplicadas no dispositivo de destino sem fio 160 podem ser enviadas de volta para a tela do dispositivo de origem sem fio através do canal de comunicação 150. Em um exemplo, uma arquitetura de canal reverso, também referida como um canal de retorno de interface de usuário (UIBC) pode ser implementado para permitir que o dispositivo de destino 160 transmita as entradas de usuário aplicadas no dispositivo de destino 160 para o dispositivo de origem 120. A arquitetura de canal reverso pode incluir mensagens de camadas superiores para transportar entradas de usuário e quadros de camada inferior para negociar as capacidades de interface de usuário no dispositivo de destino 160 e no dispositivo de origem 120. O UIBC pode residir sobre a camada de transporte de Protocolo Internet (IP) entre o dispositivo de destino 160 e o dispositivo de origem 120. Desta maneira, o UIBC pode estar acima da camada de transporte no modelo de comunicação de Interconexão de Sistema Aberto (OSI). Em um exemplo, a comunicação OSI inclui sete camadas (1 - física, 2 - enlace de dados, 3 - rede, 4 - transporte, 5 - sessão, 6 - apresentação e 7 - aplicação). Neste exemplo, estar acima da camada de transporte refere-se às camadas 5, 6, e 7. Para promover a transmissão confiável e na entrega de sequência de pacotes de dados contendo dados de entrada de usuário, o UIBC pode ser configurado para ser executado em cima de outros protocolos de comunicação baseados em pacotes, tal como o Protocolo de Controle de transmissão/Protocolo Internet (TCP/IP) ou o Protocolo de Datagrama de Usuário (UDP). UDP e TCP podem operar em paralelo na arquitetura da camada OSI. TCP/IP pode permitir que o dispositivo de destino 160 e o dispositivo de origem 120 implementem técnicas de retransmissão em caso de perda de pacotes.
[00044] Em alguns casos, pode existir uma incompatibilidade (mismatch) entre as interfaces de entrada de usuário localizadas no dispositivo de origem 120 e no dispositivo de destino 160. Para resolver os potenciais problemas criados por tal incompatibilidade e promover uma boa experiência de usuário sob tais circunstâncias, a negociação de capacidade de interface de entrada de usuário pode ocorrer entre o dispositivo de origem 120 e o dispositivo de destino 160 antes de estabelecer uma sessão de comunicação ou em vários momentos ao longo de uma sessão de comunicação. Como parte deste processo de negociação, o dispositivo de origem 120 e o dispositivo de destino 160 podem concordar com uma resolução de tela negociada. Quando o dispositivo de destino 160 transmite dados de coordenada associados a uma entrada de usuário, o dispositivo de destino 160 pode escalonar dados de coordenada obtidos da tela 162 para coincidir com a resolução de tela negociada. Em um exemplo, se o dispositivo de destino 160 tem uma resolução de 1280x720 e um dispositivo de origem 120 tem uma resolução de 1600x900, os dispositivos podem, por exemplo, utilizar 1280x720 como sua resolução negociada. A resolução negociada pode ser escolhida com base em uma resolução de dispositivo de destino 160, embora uma resolução de dispositivo de origem 120 ou alguma outra resolução possa também ser utilizada. No exemplo em que o dispositivo de destino 1280x720 é usado, o dispositivo de destino 160 pode escalonar as coordenadas-x obtidas por um fator de 1600/1280 antes de transmitir as coordenadas para o dispositivo de origem 120, e da mesma forma, o dispositivo de destino 160 pode escalonar as coordenadas-y obtidas por 900/720 antes de transmitir as coordenadas para o dispositivo de origem 120. Em outras configurações, o dispositivo de origem 120 pode escalonar as coordenadas obtidas com a resolução negociada. O escalonamento pode aumentar ou diminuir uma faixa de coordenadas com base no fato de que o dispositivo de destino 160 usa uma tela de resolução superior a do dispositivo de origem 120, ou vice- versa.
[00045] Além disso, em alguns casos, a resolução do dispositivo de destino 160 pode variar durante uma sessão de comunicação, criando potencialmente uma incompatibilidade entre a tela 122 e a tela 162. A fim de melhorar a experiência do usuário e garantir a funcionalidade adequada, o sistema de origem/destino 100 pode implementar técnicas para reduzir ou prevenir a incompatibilidade de interação do usuário ao implementar técnicas para normalização de tela. A tela 122 do dispositivo de origem 120 e a tela 162 do dispositivo de destino 160 podem ter resoluções diferentes e/ou proporções de aspectos diferentes. Além disso, em algumas configurações, um usuário do dispositivo de destino 160 pode ter a capacidade para redimensionar uma janela de exibição para os dados de vídeo recebidos do dispositivo de origem 120 tal que os dados de vídeo recebidos do dispositivo de origem 120 sejam renderizados em uma janela que cobre menos que toda a tela 162 do dispositivo de destino 160. Em outra configuração exemplar, um usuário do dispositivo de destino 160 pode ter a opção de visualizar o conteúdo no modo paisagem ou no modo retrato, cada um dos quais tem coordenadas exclusivas e proporções de aspectos diferentes. Em tais situações, as coordenadas associadas a uma entrada de usuário recebida no dispositivo de destino 160, tal como a coordenada para onde um clique do mouse ou um evento de toque ocorre, pode não ser capaz de ser processada pelo dispositivo de origem 120 sem modificação das coordenadas. Por conseguinte, as técnicas da presente invenção podem incluir mapear as coordenadas de entrada de usuário recebidas no dispositivo de destino 160 para coordenadas associadas ao dispositivo de origem 120. Este mapeamento é também referido aqui como normalização, e como será explicado em maiores detalhes abaixo, este mapeamento pode ser baseado-destino ou baseado-origem.
[00046] As entradas de usuário recebidas pelo dispositivo de destino 160 podem ser recebidas pelo módulo UI 167, a nível de acionador (driver), por exemplo, e passadas para o sistema operacional do dispositivo de destino 160. O sistema operacional do dispositivo de destino 160 pode receber coordenadas (XDESTINO, yDESTINO) associadas com onde na superfície de exibição ocorreu uma entrada de usuário. Neste exemplo, (XDESTINO, yDESTINO) podem ser coordenadas da tela 162, onde um clique de mouse ou um evento de toque ocorreu. A janela de exibição que está sendo renderizada na tela 162 pode ter um comprimento de coordenada-x (LDW) e uma largura de coordenada-y (WDW) que descrevem o tamanho da janela de exibição. A janela de exibição pode também ter uma coordenada de canto superior esquerdo (aDW, bDW), que descreve a localização da janela de exibição. Com base na LDW, WDW, e na coordenada superior esquerda (aDW, bDW), a parte da tela 162 coberta pela janela de exibição pode ser determinada. Por exemplo, um canto superior direito da janela de exibição pode ser localizado na coordenada (aDW + LDW, bDW), um canto inferior esquerdo da janela de exibição pode ser localizado na coordenada (aDW, bDW, WDX), e um canto inferior direito da janela de exibição pode ser localizado na coordenada (aDW + LDW, bDW + WDW). O dispositivo de destino 160 pode processar uma entrada como uma entrada UIBC se a entrada for recebida em uma coordenada dentro da janela de exibição. Em outras palavras, uma entrada com coordenadas associadas (XDESTINO, yDESTINO) pode ser processada como uma entrada UIBC se as condições a seguir forem satisfeitas: bDW — yDESTINO — bDW + WDW
[00047] Após determinar que a entrada de usuário é uma entrada UIBC, as coordenadas associadas com a entrada podem ser normalizadas pela UIPM 168 antes de serem transmitidas para o dispositivo de origem 120. As entradas que são determinadas para estarem fora da janela de exibição podem ser processadas localmente pelo dispositivo de destino 160 como entradas não-UIBC.
[00048] Como mencionado acima, a normalização de coordenadas de entrada pode ser baseada em origem ou baseada em destino. Ao implementar a normalização baseada em destino, o dispositivo de origem 120 pode enviar uma resolução de exibição suportada (LORIGEM, WORIGEM) para a tela 122, ou com dados de vídeo ou de forma independente dos dados de vídeo, para o dispositivo de destino 160. A resolução de exibição suportada pode ser, por exemplo, transmitida como parte de uma sessão de negociação de capacidade ou pode ser transmitida em outro momento durante uma sessão de comunicação. O dispositivo de destino 160 pode determinar a resolução de destino (LDESTINO, WDESTINO) para a tela 162, a resolução da janela de exibição (LDW, WDW) para a janela que exibe o conteúdo recebido do dispositivo de origem 120, e as coordenadas do canto superior esquerdo (aDW, bDW) para a janela de exibição. Como descrito acima, quando uma coordenada (XDESTINO, yDESTINO) correspondente a uma entrada de usuário é determinada para estar dentro da janela de exibição, o sistema operacional do dispositivo de destino 160 pode mapear as coordenadas (XDESTINO, yDESTINO) para as coordenadas de origem (XORIGEM, YORIGEM) usando funções de conversão. Exemplos de funções de conversão para converter (XDESTINO, yDESTINO) para (XORIGEM, YORIGEM) pode ser como a seguir: XORIGEM = (XDESTINO - aDW) * (LORIGEM / LDW ) (3) YORIGEM = (yDESTINO - bDW) * (WORIGEM/WDW) (4)
[00049] Assim, ao transmitir uma coordenada correspondente a uma entrada de usuário recebida, o dispositivo de destino 160 pode transmitir a coordenada (XORIGEM, YORIGEM) para uma entrada de usuário recebida no (XDESTINO, yDESTINO). Como será descrito em maiores detalhes abaixo, a coordenada (XORIGEM, YORIGEM) pode, por exemplo, ser transmitida como parte de um pacote de dados utilizado para transmitir a entrada de usuário recebida no dispositivo de destino 160 para o dispositivo de origem 120 ao longo do UIBC. Durante outras partes desta invenção, onde as coordenadas de entrada são descritas como sendo incluídas em um pacote de dados, as coordenadas podem ser convertidas em coordenadas de origem, como descrito acima, em casos onde o sistema de origem/destino 100 implementa a normalização baseada em destino.
[00050] Quando o sistema de origem/destino 100 implementa a normalização baseada em origem, para as entradas de usuário determinadas pelas entradas UIBC em oposição às entradas locais (isto é, dentro de uma janela de exibição, em oposição ao lado de fora de uma janela de exibição), os cálculos acima referidos podem ser realizados no dispositivo de origem 120 em vez de no dispositivo de destino 160. Para facilitar esses cálculos, o dispositivo de destino 160 pode transmitir ao dispositivo de origem 120 valores para LDW, WDW, e informações de localização para a janela de exibição (por exemplo, aDW, bDW), bem como as coordenadas para (XDESTINO, yDESTINO). Usando estes valores transmitidos, o dispositivo de origem 120 pode determinar valores para (XORIGEM, YORIGEM) de acordo com as equações 3 e 4 acima.
[00051] Em outras implementações da normalização baseada em destino, o dispositivo de destino 160 pode transmitir coordenadas (xDW, yDW) para a entrada de usuário que descreve onde dentro da janela de exibição um evento de entrada de usuário ocorre em oposição a onde na tela 162 a entrada de usuário ainda ocorre. Em tal implementação, as coordenadas (xDW, yDW) podem ser transmitidas para o dispositivo de origem 120, juntamente com os valores (LDW, WDW). Com base nestes valores recebidos, o dispositivo de origem 120 pode determinar (XORIGEM, YORIGEM) de acordo com as funções de conversão a seguir: XORIGEM = XDW * (LORIGEM/LDW) YORIGEM = yDW * (WORIGEM/WDW) O dispositivo de destino 160 pode determinar XDW e yDW com base nas funções a seguir:
[00052] Quando esta invenção descreve transmitir coordenadas associadas a uma entrada de usuário, em um pacote de dados, por exemplo, a transmissão destas coordenadas pode incluir normalização baseada em destino ou baseada em origem, como descrito acima, e/ou pode incluir qualquer informação adicional necessária para realizar a normalização baseada em destino ou baseada em origem.
[00053] O UIBC pode ser projetado para transportar vários tipos de dados de entrada de usuário, incluindo dados de entrada de usuário de plataforma cruzada. Por exemplo, o dispositivo de origem 120 pode executar o sistema operacional iOS®, enquanto o dispositivo de destino 160 executa outro sistema operacional, tal como Android® ou Windows®. Independentemente da plataforma, UIPM 168 pode encapsular entrada de usuário recebida em uma forma compreensível para o módulo de controle A/V 125. Vários diferentes tipos de formatos de entrada de usuário podem ser suportados pelo UIBC, de modo a permitir que vários tipos diferentes de dispositivos de origem e destino explorem o protocolo, independentemente de se os dispositivos de origem e destino funcionem em diferentes plataformas. Os formatos de entrada genéricos podem ser definidos, e formatos de entrada específicos de plataforma podem ambos ser suportados, assim provendo flexibilidade na forma em que a entrada de usuário pode ser comunicada entre o dispositivo de origem 120 e o dispositivo de destino 160 pelo UIBC.
[00054] No exemplo da Figura 1A, o dispositivo de origem 120 pode compreender um smartphone, tablet, laptop, computador desktop, televisão habilitada para Wi-Fi, ou qualquer outro dispositivo capaz de transmitir dados de áudio e vídeo. O dispositivo de destino 160 pode também incluir um smartphone, tablet, laptop, computador desktop, televisão habilitada para Wi-Fi, ou qualquer outro dispositivo capaz de receber dados de áudio e vídeo e receber dados de entrada de usuário. Em alguns casos, o dispositivo de destino 160 pode incluir um sistema de dispositivos, tal que a tela 162, o alto-falante 163, o dispositivo de UI 167, e o codificador A/V 164, i.e., todas as partes de dispositivos separados, mas interoperativos. O dispositivo de origem 120 pode ser igualmente um sistema de dispositivos em vez de um único dispositivo.
[00055] Na presente invenção, o termo dispositivo de origem é geralmente utilizado para se referir ao dispositivo que está transmitindo dados de áudio/vídeo, e o termo dispositivo de destino é geralmente utilizado para se referir ao dispositivo que está recebendo os dados de áudio/vídeo do dispositivo de origem. Em muitos casos, o dispositivo de origem 120 e o dispositivo de destino 160 podem ser dispositivos semelhantes ou idênticos, com um dispositivo operando como o de origem e o outro operando como o de destino. Além disso, esses registros podem ser invertidos em diferentes sessões de comunicação. Assim, um dispositivo de destino em uma sessão de comunicação pode se tornar um dispositivo de origem em uma sessão de comunicação subsequente, ou vice-versa.
[00056] A Figura 1B é um diagrama em blocos que ilustra um sistema de origem/destino exemplar 101 que pode implementar técnicas desta invenção. O sistema de origem/destino 101 inclui o dispositivo de origem 120 e o dispositivo de destino 160, cada um dos quais pode funcionar e operar da maneira descrita acima para a Figura 1A. O sistema de origem/destino 101 inclui ainda o dispositivo de destino 180. De modo semelhante ao dispositivo de destino 160 acima descrito, o dispositivo de destino 180 pode receber os dados de áudio e de vídeo do dispositivo de origem 120 e transmitir comandos de usuário para o dispositivo de origem 120 através de um UIBC estabelecido. Em algumas configurações, o dispositivo de destino 160 e o dispositivo de destino 180 podem operar de forma independente um do outro, e os dados de áudio e vídeo produzidos no dispositivo de origem 120 podem ser, simultaneamente, produzidos no dispositivo de destino 160 e no dispositivo de destino 180. Em configurações alternativas, o dispositivo de destino 160 pode ser um dispositivo de destino primário e o dispositivo de destino 180 pode ser um dispositivo de destino secundário. Em tal configuração exemplar, o dispositivo de destino 160 e o dispositivo de destino 180 podem ser acoplados, e o dispositivo de destino 160 pode exibir dados de vídeo enquanto o dispositivo de destino 180 produz dados de áudio correspondentes. Além disso, em algumas configurações, o dispositivo de destino 160 pode emitir dados de vídeo transmitidos apenas enquanto o dispositivo de destino 180 emite os dados de áudio transmitidos apenas.
[00057] A Figura 2 é um diagrama em blocos, mostrando um exemplo de um dispositivo de origem 220. O dispositivo de origem 220 pode ser um dispositivo semelhante ao dispositivo de origem 120 na Figura 1A e pode operar da mesma maneira que o dispositivo de origem 120. O dispositivo de origem 220 inclui tela local 222, alto- falante local 223, processadores 231, memória 232, unidade de transporte 233, e modem sem fio 234. Como mostrado na Figura 2, o dispositivo de origem 220 pode incluir um ou mais processadores (i.e., processador 231) que codificam e/ou decodificam dados A/V para transporte, armazenamento e exibição. Os dados A/V podem, por exemplo, ser armazenados na memória 232. A memória 232 pode armazenar um arquivo A/V inteiro, ou pode compreender um armazenador (buffer) menor, que simplesmente armazena uma parte de um arquivo A/V, por exemplo, transmitido de outro dispositivo ou origem. A unidade de transporte 233 pode processar dados A/V codificados para transporte de rede. Por exemplo, os dados A/V codificados podem ser processados pelo processador 231 e encapsulados pela unidade de transporte 233 para as unidades de Camada de Acesso à Rede (NAL) para comunicação através de uma rede. As unidades NAL podem ser enviadas pelo modem sem fio 234 para um dispositivo de destino sem fio através de uma conexão de rede. O modem sem fio 234 pode, por exemplo, ser um modem Wi-Fi configurado para implementar um da família de padrões IEEE 802.11.
[00058] O dispositivo de origem 220 também pode processar localmente e exibir dados A/V. Em particular, o processador de exibição 235 pode processar dados de vídeo para serem exibidos na tela local 222, o processador de áudio 236 pode processar dados de áudio para serem reproduzidos no alto- falante 223.
[00059] Tal como descrito acima, com referência a um dispositivo de origem 120 da Figura 1A, o dispositivo de origem 220 também pode receber comandos de entrada de usuário de um dispositivo de destino. Desta forma, o modem sem fio 234 do dispositivo de origem 220 recebe os pacotes de dados encapsulados, tais como unidades NAL, e envia as unidades de dados encapsulados para a unidade de transporte 233 para desencapsulamento. Por exemplo, a unidade de transporte 233 pode extrair pacotes de dados das unidades NAL, e o processador 231 pode analisar os pacotes de dados para extrair os comandos de entrada de usuário. Com base nos comandos de entrada de usuário, o processador 231 pode ajustar os dados A/V codificados sendo transmitidos pelo dispositivo de origem 220 para um dispositivo de destino. Desta maneira, a funcionalidade descrita acima em referência ao módulo de controle A/V 125 da Figura 1A pode ser implementada, parcial ou totalmente, pelo processador 231.
[00060] O processador 231 da Figura 2 representa em geral qualquer um de uma ampla variedade de processadores, incluindo, mas não limitados a um ou mais processadores de sinais digitais (DSPs), microprocessadores de propósitos gerais, circuitos integrados de aplicação específica (ASICs), matrizes de lógicas programáveis em campo (FPGA), ou outros conjuntos de circuitos lógicos discretos ou equivalentes integrados, ou alguma combinação destes. A Memória 232 da Figura 2 pode compreender qualquer uma de uma ampla variedade de memória volátil ou não-volátil, incluindo, mas não limitado a memória de acesso aleatório (RAM) tal como memória de acesso aleatório dinâmica síncrona (SDRAM), memória de leitura (ROM), memória de acesso aleatório não-volátil (NVRAM), memória de leitura programável e eletricamente apagável (EEPROM), memória flash, e assim por diante. A memória 232 pode compreender um meio de armazenamento legível por computador para armazenamento de dados de áudio/vídeo, bem como outros tipos de dados. A memória 232 pode adicionalmente armazenar instruções e códigos de programa que são executados pelo processador 231 como parte para realizar as várias técnicas descritas nesta invenção.
[00061] A Figura 3 mostra um exemplo de um dispositivo de destino 360. O dispositivo de destino 360 pode ser um dispositivo semelhante ao dispositivo de destino 160 na Figura 1A e pode operar da mesma maneira que o dispositivo de destino 160. O dispositivo de destino 360 inclui um ou mais processadores (i.e., processador 331), memória 332, unidade de transporte 333, modem sem fio 334, processador de exibição 335, tela local 362, processador de áudio 336, alto-falante 363, e entrada de interface de usuário 376. O dispositivo de destino 360 recebe no modem sem fio 334 unidades de dados encapsulados enviadas de um dispositivo de origem. O modem sem fio 334 pode ser, por exemplo, um modem Wi-Fi configurado para implementar um ou mais padrões da família de padrões IEEE 802.11. A unidade de transporte 333 pode desencapsular as unidades de dados encapsuladas. Por exemplo, a unidade de transporte 333 pode extrair dados de vídeo codificados das unidades de dados encapsuladas e enviar os dados A/V codificados para o processador 331 para serem decodificados e renderizados para saída. O processador de exibição 335 pode processar dados de vídeo decodificados para serem exibidos na tela local 362, e o processador de áudio 336 pode processar dados de áudio decodificados para serem reproduzidos no alto-falante 363.
[00062] Além de renderizar os dados de áudio e vídeo, o dispositivo de destino sem fio 360 também pode receber dados de entrada de usuário através da interface de entrada de usuário 376. A interface de entrada de usuário 376 pode representar qualquer um de uma série de dispositivos de entrada de usuário incluídos, mas não limitados a uma interface de tela sensível ao toque, um teclado, um mouse, um módulo de comando de voz, um dispositivo de captura de gestos (por exemplo, com capacidades de captura de entrada baseada em câmera) ou qualquer outra de uma série de dispositivos de entrada de usuário. A entrada de usuário recebida através da interface de entrada de usuário 376 pode ser processada pelo processador 331. Este processamento pode incluir a geração de pacotes de dados que incluem o comando de entrada de usuário recebido de acordo com as técnicas descritas nesta invenção. Uma vez gerada, a unidade de transporte 333 pode processar os pacotes de dados para transporte de rede para um dispositivo de origem sem fio através de um UIBC.
[00063] O processador 331 da Figura 3 pode compreender um ou mais de uma gama ampla de processadores, tais como um ou mais processadores de sinais digitais (DSPs), microprocessadores de propósitos gerais, circuitos integrados de aplicação específica (ASICs), matrizes de lógica programáveis em campo (FPGA), outros circuitos lógicos discretos ou equivalentes integrados, ou alguma combinação destes. A memória 332 da Figura 3 pode compreender qualquer uma de uma ampla variedade de memória volátil ou não-volátil, incluindo, mas não limitado a memória de acesso aleatório (RAM), tal como memória de acesso aleatório dinâmica síncrona (SDRAM), memória de leitura (ROM), memória de acesso aleatório não-volátil (NVRAM), memória de leitura programável e eletricamente apagável (EEPROM), memória flash, e assim por diante. A memória 232 pode compreender um meio de armazenamento legível por computador para armazenar dados de áudio/vídeo, bem como outros tipos de dados. A memória 332 pode adicionalmente armazenar instruções e códigos de programa que são executados pelo processador 331, como parte da realização das várias técnicas descritas nesta invenção.
[00064] A Figura 4 mostra um diagrama em blocos de um exemplo de sistema transmissor 410 e um sistema receptor 450, que pode ser utilizado pelo transmissor/receptor 126 e transmissor/receptor 166 da Figura 1A para comunicar através do canal de comunicação 150. No sistema transmissor 410, dados de tráfego para uma série de fluxos de dados são providos de uma fonte de dados 412 para um processador de dados de transmissão (TX) 414. Cada fluxo de dados pode ser transmitido através de uma respectiva antena de transmissão. O processador de dados TX 414 formata, codifica e intercala os dados de tráfego para cada fluxo de dados com base em um esquema de codificação específico selecionado para este fluxo de dados.
[00065] Os dados codificados para cada fluxo de dados podem ser multiplexados com dados piloto utilizando técnicas de multiplexação por divisão de frequência ortogonal (OFDM). Uma ampla variedade de outras técnicas de comunicação sem fio pode também ser utilizada, incluindo, mas não limitadas a acesso múltiplo por divisão de tempo (TDMA), acesso múltiplo por divisão de frequência (FDMA), acesso múltiplo por divisão de código (CDMA), ou qualquer combinação de OFDM, FDMA, TDMA e/ou CDMA.
[00066] De acordo com a Figura 4, os dados piloto são tipicamente um padrão de dados conhecido que são processados de modo conhecido e podem ser utilizados no sistema receptor para estimar a resposta de canal. Os dados codificados e piloto multiplexado para cada fluxo de dados são então modulados (por exemplo, mapeados em símbolo) com base em um esquema de modulação específico (por exemplo, Modulação por Deslocamento de Fase Binária (BPSK), Modulação por Deslocamento de Fase em Quadratura (QPSK), M- PSK ou M-QAM (Modulação de Amplitude em Quadratura), em que M pode ser uma potência de dois) selecionado para esse fluxo de dados para prover símbolos de modulação. A taxa de dados, codificação e modulação para cada fluxo de dados pode ser determinada por instruções executadas pelo processador 430, que pode ser acoplado com a memória 432.
[00067] Os símbolos de modulação para os fluxos de dados são, então, providos a um processador MIMO TX 420, que pode adicionalmente processar os símbolos de modulação (por exemplo, para OFDM). O processador MIMO TX 420 pode prover NT fluxos de símbolo de modulação para NT transmissores (TMTR) 422a a 422t. Em certos aspectos, o processador MIMO TX 420 aplica ponderações de formação de feixe aos símbolos dos fluxos de dados e à antena da qual o símbolo está sendo transmitido.
[00068] Cada transmissor 422 pode receber e processar um fluxo de símbolos respectivo para prover um ou mais sinais analógicos, e adicionalmente condiciona (por exemplo, amplifica, filtra e converte ascendentemente) os sinais analógicos para prover um sinal modulado adequado para transmissão através do canal MIMO. NT sinais modulados dos transmissores 422a a 422t são então transmitidos de NT antenas 424a a 424t, respectivamente.
[00069] No sistema receptor 450, os sinais modulados transmitidos são recebidos por NR antenas 452a a 452r e o sinal recebido de cada antena 452 é provido a um respectivo receptor (RCVR) 454a a 454r. O receptor 454 condiciona (por exemplo, filtra, amplifica e converte descendentemente) um respectivo sinal recebido, digitaliza o sinal condicionado para prover amostras, e adicionalmente processa as amostras para prover um fluxo de símbolos "recebido" correspondente.
[00070] Um processador de dados de recepção (RX) 460, em seguida, recebe e processa os NR fluxos de símbolos recebidos de NR receptores 454 com base em uma técnica de processamento de receptor especial para prover NT fluxos de símbolos "detectados". O processador de dados RX 460 então demodula, deintercala e decodifica cada fluxo de símbolo detectado para recuperar os dados de tráfego para o fluxo de dados. O processamento pelo processador de dados RX 460 é complementar ao realizado pelo processador MIMO TX 420 e ao processador de dados TX 414 no sistema transmissor 410.
[00071] Um processador 470 que pode ser acoplado a uma memória 472, determina periodicamente qual matriz de pré- codificação usar. A mensagem de enlace reverso pode compreender vários tipos de informação a respeito do enlace de comunicação e/ou o fluxo de dados recebido. A mensagem de enlace reverso é então processada por um processador de dados TX 438, o qual também recebe dados de tráfego para uma série de fluxos de dados de uma fonte de dados 436, modulados por um modulador 480, condicionados pelos transmissores 454a a 454r, e transmitidos de volta ao sistema transmissor 410.
[00072] No sistema transmissor 410, os sinais modulados do sistema receptor 450 são recebidos pelas antenas 424, condicionados pelos receptores 422, demodulados por um demodulador 440, e processados por um processador de dados RX 442 para extrair a mensagem de enlace reverso transmitida pelo sistema receptor 450. O processador 430 determina então qual matriz de pré-codificação usar para determinar as ponderações de formação de feixe, e então processa a mensagem extraída.
[00073] A Figura 5A é um diagrama em blocos que ilustra um exemplo de sequência de transferência de mensagem entre um dispositivo de origem 520 e um dispositivo de destino 560 como parte de uma sessão de negociações de capacidades. A negociação de capacidade pode ocorrer como parte de um processo de estabelecimento de sessão de comunicação maior entre o dispositivo de origem 520 e o dispositivo de destino 560. Esta sessão pode, por exemplo, ser estabelecida com Wi-Fi Direta ou TDLS como o padrão de conectividade subjacente. Após estabelecer a sessão TDLS ou Wi-Fi Direta, o dispositivo de destino 560 pode iniciar uma conexão TCP com o dispositivo de origem 520. Como parte do estabelecimento da conexão TCP, uma porta de controle executando um Protocolo de Fluxo contínuo em Tempo Real (RTSP) pode ser estabelecida para gerenciar uma sessão de comunicação entre o dispositivo de origem 520 e o dispositivo de destino 560.
[00074] O dispositivo de origem 520 pode geralmente operar da mesma maneira descrita acima para o dispositivo de origem 120 da Figura 1A, e o dispositivo de destino 560 pode geralmente operar da mesma maneira descrita acima para o dispositivo de destino 160 da Figura 1A. Após o dispositivo de origem 520 e o dispositivo de destino 560 estabelecer conectividade, o dispositivo de origem 520 e o dispositivo de destino 560 podem determinar o conjunto de parâmetros a serem utilizados para a sua sessão de comunicação subsequente, como parte de uma troca de negociação de capacidade.
[00075] O dispositivo de origem 520 e o dispositivo de destino 560 podem negociar capacidades através de uma sequência de mensagens. As mensagens podem ser, por exemplo, mensagens de protocolo de fluxo contínuo em tempo real (RTSP). Em qualquer fase das negociações, o destinatário de uma mensagem de solicitação de RTSP pode responder com uma resposta RTSP, que inclui um código de status RTSP diferente de RTSP OK, neste caso, a troca de mensagens pode ser repetida com um conjunto diferente de parâmetros ou a sessão de negociação de capacidade pode ser encerrada.
[00076] O dispositivo de origem 520 pode enviar uma primeira mensagem (mensagem de solicitação OPÇÕES RTSP) para o dispositivo de destino 560, a fim de determinar o conjunto de métodos RTSP que o dispositivo de destino 560 suporta. Ao receber a primeira mensagem do dispositivo de origem 520, o dispositivo de destino 560 pode responder com uma segunda mensagem (mensagem de resposta OPÇÕES RTSP) que lista os métodos RTSP suportados pelo destino 560. A segunda mensagem também pode incluir um código de status RTSP OK.
[00077] Depois de enviar a segunda mensagem para o dispositivo de origem 520, o dispositivo de destino 560 pode enviar uma terceira mensagem (mensagem de solicitação OPÇÕES RTSP), a fim de determinar o conjunto de métodos de RTSP que o dispositivo de origem 520 suporta. Ao receber a terceira mensagem do dispositivo de destino 560, o dispositivo de origem 520 pode responder com uma quarta mensagem (mensagem de resposta OPÇÕES RTSP), que lista os métodos de RTSP suportados pelo dispositivo de origem 520. A quarta mensagem pode também incluir o código de status RTSP OK.
[00078] Depois de enviar a quarta mensagem, o dispositivo de origem 520 pode enviar uma quinta mensagem (mensagem de solicitação OBTER_PARÂMETRO RTSP) para especificar uma lista de recursos que são de interesse para o dispositivo de origem 520. O dispositivo de destino 560 pode responder com uma sexta mensagem (uma mensagem de resposta OBTER_PARÂMETRO RTSP). A sexta mensagem pode conter um código de status RTSP. Se o código de status RTSP é OK, então a sexta mensagem também pode incluir parâmetros de resposta para o parâmetro especificado na quinta mensagem que são suportados pelo dispositivo de destino 560. O dispositivo de destino 560 pode ignorar os parâmetros na quinta mensagem que o dispositivo de destino 560 não suporta.
[00079] Com base na sexta mensagem, a origem 520 pode determinar o melhor conjunto de parâmetros a ser usado para a sessão de comunicação e pode enviar uma sétima mensagem (uma mensagem de solicitação CONFIGURAR_PARÂMETRO RTSP) para o dispositivo de destino 560. A sétima mensagem pode conter o parâmetro definido para ser usado durante a sessão de comunicação entre o dispositivo de origem 520 e o dispositivo de destino 560. A sétima mensagem pode incluir a wfd-presentation-url que descreve o Identificador de Recursos Universal (URI) a ser usado na solicitação de Configuração RTSP, a fim de configurar a sessão de comunicação. A wfd-presentation-url especifica o URI que o dispositivo de destino 560 pode usar para mensagens posteriores, durante uma troca de estabelecimento de sessão. Os valores wfd-url0 e wfd-url1 especificados neste parâmetro podem corresponder aos valores de rtp-port0 e rtp-port1, no wfd-client-rtp-ports na sétima mensagem. O RTP neste caso refere-se geralmente ao protocolo de tempo real que pode ser executado no topo do UDP.
[00080] Mediante recebimento da sétima mensagem, o dispositivo de destino 560 pode responder com uma oitava mensagem com um código de status RTSP indicando se a configuração dos parâmetros como especificado na sétima mensagem foi bem sucedida. Como mencionado acima, as funções (roles) ou dispositivo de origem e dispositivo de destino podem reverter ou alterar em diferentes sessões. A ordem das mensagens que estabelecem a sessão de comunicação pode, em alguns casos, definir o dispositivo que opera como a origem e definir o dispositivo que opera como o destino.
[00081] A Figura 5B é um diagrama em blocos que ilustra outro exemplo de sequência de transferência de mensagem entre um dispositivo de origem 560 e um dispositivo de destino 520, como parte da sessão de negociações de capacidades. A sequência de transferência de mensagem da Figura 5B é destinada a prover uma visão mais detalhada da sequência de transferência anteriormente descrita para a Figura 5A. Na Figura 5B, mensagem "1b. RESPOSTA OBTER_PARÂMETRO" mostra um exemplo de uma mensagem que identifica uma lista de categorias de entrada suportadas (por exemplo, genéricas e HIDC) e uma pluralidade de listas de tipos de entrada suportados. Cada uma das categorias de entrada suportadas da lista de categorias de entrada suportadas tem uma lista associada de tipos suportados (por exemplo, generic_cap_list e hidc_cap_list). Na Figura 5B, a mensagem "2a. SOLICITAÇÃO CONFIGURAR_PARÂMETRO" é um exemplo de uma segunda mensagem que identifica uma segunda lista de categorias de entrada suportadas (por exemplo, genéricas e HIDC), e uma pluralidade de segundas listas de tipos suportados. Cada uma das categorias de entrada suportadas da segunda lista de categorias de entrada suportadas tem uma segunda lista associada de tipos suportados (por exemplo, generic_cap_list e hidc_cap_list). A mensagem "1b. RESPOSTA OBTER_PARÂMETRO" identifica as categorias de entrada e os tipos de entrada suportados pelo dispositivo de destino 560. A mensagem "2a. SOLICITAÇÃO CONFIGURAR_PARÂMETRO" identifica as categorias de entrada e os tipos de entrada suportados pelo dispositivo de origem 520, mas não pode ser uma lista compreensiva de todas as categorias de entrada e tipos de entrada suportados pelo dispositivo de origem 520. Em vez disso, a mensagem "2a. SOLICITAÇÃO CONFIGURAR_PARÂMETRO" pode identificar apenas as categorias de entrada e os tipos de entrada identificados na mensagem "1b. RESPOSTA OBTER_PARÂMETRO" como sendo suportados pelo dispositivo de destino 560. Deste modo, as categorias de entrada e os tipos de entrada identificados na mensagem "2a. SOLICITAÇÃO CONFIGURAR_PARÂMETRO" pode constituir um subconjunto das categorias de entrada e dos tipos de entrada identificados na mensagem "1b. RESPOSTA OBTER_PARÂMETRO".
[00082] A Figura 6 é um diagrama conceitual que ilustra um exemplo de um pacote de dados que pode ser gerado por um dispositivo de destino e transmitido para um dispositivo de origem. Aspectos do pacote de dados 600 irão ser explicados com referência à Figura 1A, mas as técnicas discutidas poderão ser aplicadas a outros tipos de sistemas de origem/destino. O pacote de dados 600 pode incluir um cabeçalho de pacote de dados 610, seguido pelos dados de carga útil 650. Dados de carga útil 650 podem incluir adicionalmente um ou mais cabeçalhos de carga útil (por exemplo, cabeçalho de carga útil 630). O pacote de dados 600 podem, por exemplo, ser transmitido do dispositivo de destino 160 da Figura 1A para o dispositivo de origem 120, tal que um usuário do dispositivo de destino 160 pode controlar os dados de áudio/vídeo a serem transmitidos pelo dispositivo de origem 120. Em tal caso, os dados de carga útil 650 podem incluir dados de entrada de usuário recebidos no dispositivo de destino 160. Os dados de carga útil 650 podem, por exemplo, identificar um ou mais comandos de usuário. O dispositivo de destino 160 pode receber um ou mais comandos de usuário, e com base nos comandos recebidos, pode gerar cabeçalho de pacote de dados 610 e dados de carga útil 650. Com base no conteúdo do cabeçalho de pacote de dados 610 do pacote de dados 600, o dispositivo de origem 120 pode analisar os dados de carga útil 650 para identificar os dados de entrada de usuário recebidos no dispositivo de destino 160. Com base nos dados de entrada de usuário contidos nos dados de carga útil 650, o dispositivo de origem 120 pode alterar de alguma forma, os dados de áudio e vídeo a serem transmitidos do dispositivo de origem 120 para o dispositivo de destino 160.
[00083] Como usado nesta invenção, o termo "analisar" e "análise" referem-se geralmente ao processo de análise de um fluxo de bits para extrair os dados do fluxo de bits. Uma vez extraído, os dados podem ser processados pelo dispositivo de origem 120, por exemplo. A extração de dados pode, por exemplo, incluir a identificação de como a informação no fluxo de bits está formatada. Como será descrito em maiores detalhes abaixo, o cabeçalho de pacote de dados 610 pode definir um formato padronizado que é conhecido tanto do dispositivo de origem 120 quanto do dispositivo de destino 160. Os dados de carga útil 650, no entanto, podem ser formatados em uma de muitas formas possíveis. Pela análise do cabeçalho de pacote de dados 610, o dispositivo de origem 120 pode determinar como os dados de carga útil 650 são formatados, e assim, o dispositivo de origem 120 pode analisar dados de carga útil 650 para extrair dos dados de carga útil 650 um ou mais comandos de entrada de usuário. Isso pode prover flexibilidade em termos dos diferentes tipos de dados de carga útil que podem ser suportados na comunicação de origem-destino. Como será descrito em maiores detalhes abaixo, os dados de carga útil 650 podem também incluir um ou mais cabeçalhos de carga útil, tal como, um cabeçalho de carga útil 630. Em tais casos, o dispositivo de origem 120 pode analisar o cabeçalho de pacote de dados 610 para determinar um formato para o cabeçalho de carga útil 630, e então analisar o cabeçalho de carga útil 630 para determinar um formato para o restante dos dados de carga útil 650.
[00084] O diagrama 620 é uma representação conceitual de como o cabeçalho de pacote de dados 610 pode ser formatado. Os números 0-15 na linha 615 são utilizados para identificar locais de bits dentro do cabeçalho de pacote de dados 610 e não se pretende que, na verdade, represente a informação contida dentro do cabeçalho de pacote de dados 610. O cabeçalho de pacote de dados 610 inclui o campo versão 621, o indicador de marca de tempo 622, campo reservado 623, campo categoria de entrada 624, campo comprimento 625, e o campo marca de tempo opcional 626.
[00085] No exemplo da Figura 6, o campo versão 621 é um campo de três bits, que pode indicar a versão de um protocolo de comunicações particular sendo implementado pelo dispositivo de destino 160. O valor no campo versão 621 pode informar ao dispositivo de origem 120 como analisar o restante do cabeçalho de pacote de dados 610, bem como a forma de analisar os dados de carga útil 650. No exemplo da Figura 6, o campo versão 621 é um campo de três bits, o que permitiria um único identificador para oito versões diferentes. Em outros exemplos, mais ou menos bits podem ser dedicados ao campo versão 621.
[00086] No exemplo da Figura 6, o indicador de marca de tempo (T) 622 é um campo de 1 bit que indica se ou não o campo marca de tempo 626 está presente no cabeçalho de pacote de dados 610. O campo marca de tempo 626 é um campo de 16 bits que contém uma marca de tempo com base nos dados de multimídia que foram gerados pelo dispositivo de origem 120 e transmitidos para o dispositivo de destino 160. A marca de tempo pode ser, por exemplo, um valor sequencial atribuído a quadros de vídeo pelo dispositivo de origem 120 antes dos quadros serem transmitidos para o dispositivo de destino 160. O indicador de marca de tempo 622 pode, por exemplo, incluir um "1" para indicar que o campo marca de tempo 626 está presente e pode incluir um "0" para indicar que o campo marca de tempo 626 não está presente. Ao analisar o cabeçalho de pacote de dados 610 e determinar que o campo marca de tempo 626 está presente, o dispositivo de origem 120 pode processar a marca de tempo incluída no campo marca de tempo 626. Ao analisar o cabeçalho de pacote de dados 610 e determinar que o campo marca de tempo 626 não está presente, o dispositivo de origem 120 pode começar a analisar os dados de carga útil 650 após analisar o campo comprimento 625, uma vez que nenhum campo marca de tempo está presente no cabeçalho de pacote de dados 610.
[00087] Se estiver presente, o campo marca de tempo 626 pode incluir uma marca de tempo para identificar um quadro de dados de vídeo que estava sendo exibido no dispositivo de destino sem fio 160, quando os dados de entrada de usuário dos dados de carga útil 650 foram obtidos. A marca de tempo pode, por exemplo, ter sido adicionada ao quadro de vídeo pelo dispositivo de origem 120 antes do dispositivo de origem 120 transmitir o quadro de vídeo para o dispositivo de destino 160. Assim, o dispositivo de origem 120 pode gerar um quadro de vídeo e embutir nos dados de vídeo do quadro, como metadados, por exemplo, uma marca de tempo. O dispositivo de origem 120 pode transmitir o quadro de vídeo, com a marca de tempo, para o dispositivo de destino 160, e o dispositivo de destino 160 pode exibir o quadro de vídeo. Enquanto o quadro de vídeo está sendo exibido pelo dispositivo de destino 160, o dispositivo de destino 160 pode receber um comando de usuário de um usuário. Quando o dispositivo de destino 160 gera um pacote de dados para transferir o comando de usuário para o dispositivo de origem 120, o dispositivo de destino 160 pode incluir no campo marca de tempo 626, a marca de tempo do quadro que estava sendo exibida pelo dispositivo de destino 160, quando o comando de usuário foi recebido.
[00088] Ao receber o pacote de dados 600 com o campo marca de tempo 626 presente no cabeçalho, o dispositivo de origem sem fio 120 pode identificar o quadro de vídeo que está sendo exibido no dispositivo de destino 160 no momento que os dados de entrada de usuário dos dados de carga útil 650 foram obtidos e processar os dados de entrada de usuário com base no conteúdo do quadro identificado pela marca de tempo. Por exemplo, se os dados de entrada de usuário são um comando de toque aplicado a uma tela sensível ao toque ou a um clique do mouse, o dispositivo de origem 120 pode determinar o conteúdo do quadro que está sendo exibido no momento em que o usuário aplicar o comando de toque na tela ou clicar no mouse. Em alguns casos, o conteúdo do quadro pode ser necessário para processar adequadamente os dados de carga útil. Por exemplo, a entrada de usuário com base em um toque do usuário ou um clique do mouse pode ser dependente do que estava sendo mostrado na tela no momento do toque ou clique. O toque ou clique pode, por exemplo, corresponder a uma opção de menu ou ícone. Nos casos em que o conteúdo da tela está mudando, uma marca de tempo presente no campo marca de tempo 626 pode ser usada pelo dispositivo de origem 120 para coincidir com o toque ou clique na opção de menu ou ícone correto.
[00089] O dispositivo de origem 120 pode adicional ou alternativamente, comparar a marca de tempo no campo marca de tempo 626 com uma marca de tempo sendo aplicada a um quadro de vídeo atualmente renderizado. Ao comparar a marca de tempo do campo marca de tempo 626 com uma marca de tempo atual, o dispositivo de origem 120 pode determinar um tempo de ida e volta. O tempo de ida e volta geralmente corresponde à quantidade de tempo que decorre desde o momento em que um quadro é transmitido pelo dispositivo de origem 120 até o ponto em que a entrada de usuário com base nesse quadro é recebida de volta no dispositivo de origem 120 do dispositivo de destino 160. O tempo de ida e volta pode prover um dispositivo de origem 120 com uma indicação de latência de sistema, e se o tempo de ida e volta for maior que um valor limite, então o dispositivo de origem 120 pode ignorar os dados de entrada de usuário contidos nos dados de carga útil 650 sob a hipótese de o comando de entrada ter sido aplicado a um quadro de exibição desatualizado. Quando o tempo de ida e volta for inferior ao limite, o dispositivo de origem 120 pode processar os dados de entrada de usuário e ajustar o conteúdo de áudio/vídeo a ser transmitido em resposta aos dados de entrada de usuário. Os limites podem ser programáveis, e diferentes tipos de dispositivos (ou diferentes combinações origem-destino) podem ser configurados para definir limites diferentes para os tempos de ida e volta que são aceitáveis.
[00090] No exemplo da Figura 6, o campo reservado 623 é um campo de 8 bits que não inclui informações usadas pela origem 120 na análise de cabeçalho de pacote de dados 610 e dados de carga útil 650. Futuras versões de um protocolo específico (como identificado no campo versão 621), no entanto, podem fazer uso do campo reservado 623, caso em que o dispositivo de origem 120 pode usar a informação no campo reservado 623 para a análise do cabeçalho de pacote de dados 610 e/ou para a análise dos dados de carga útil 650. O campo reservado 623 em conjunto com o campo versão 621 potencialmente provê capacidades para a expansão e adição de recursos para o formato de pacote de dados, sem alterar fundamentalmente o formato e características já em uso.
[00091] No exemplo da Figura 6, o campo categoria de entrada 624 é um campo de 4 bits para identificar uma categoria de entrada para os dados de entrada de usuário contidos nos dados de carga útil 650. O dispositivo de destino 160 pode categorizar os dados de entrada de usuário para determinar uma categoria de entrada. A categorização dos dados de entrada de usuário pode, por exemplo, ser baseado no dispositivo a partir do qual um comando é recebido, ou baseado nas propriedades do próprio comando. O valor do campo categoria de entrada 624, possivelmente em conjunto com outras informações de cabeçalho de pacote de dados 610, identifica para o dispositivo de origem 120 como os dados de carga útil 650 são formatados. Com base nesta formatação, o dispositivo de origem 120 pode analisar os dados de carga útil 650 para determinar a entrada de usuário que foi recebida pelo dispositivo de destino 160.
[00092] Como a categoria de entrada 624, no exemplo da Figura 6, é de 4 bits, dezesseis diferentes categorias de entrada poderiam ser identificadas. Uma dessas categorias de entrada pode ser um formato de entrada genérico para indicar que os dados de entrada de usuário dos dados de carga útil 650 são formatados usando elementos de informação genéricos definidos em um protocolo que está sendo executado por ambos o dispositivo de origem 120 e o dispositivo de destino 160. Um formato de entrada genérico, como será descrito em maiores detalhes abaixo, pode utilizar elementos de informação genéricos que permitem a um usuário do dispositivo de destino 160 interagir com o dispositivo de origem 120 ao nível do aplicativo.
[00093] Outra tal categoria de entrada pode ser um formato de comando de dispositivo de interface humana (HIDC) para indicar que os dados de entrada de usuário dos dados de carga útil 650 são formatados com base no tipo de dispositivo de entrada utilizado para receber os dados de entrada. Exemplos de tipos de dispositivos incluem um teclado, mouse, dispositivo de entrada de toque, joystick, câmera, dispositivo de captura de gesto (como um dispositivo de entrada baseado em câmera) e controle remoto. Outros tipos de categorias de entrada que poderiam ser identificados no campo categoria de entrada 624 incluem encaminhar um formato de entrada para indicar os dados do usuário nos dados de carga útil 650 que não se originam no dispositivo de destino 160, ou um formato específico do sistema operacional, e um formato de comando de voz para indicar os dados de carga útil 650 que incluem um comando de voz.
[00094] O campo comprimento 625 pode compreender um campo de 16 bits para indicar o comprimento de pacote de dados 600. O comprimento pode ser, por exemplo, indicado em unidades de 8 bits. Como o pacote de dados 600 é analisado pelo dispositivo de origem 120 em palavras de 16 bits, o pacote de dados 600 pode ser preenchido até um número inteiro de 16 bits. Com base no comprimento contido no campo comprimento 625, o dispositivo de origem 120 pode identificar o fim dos dados de carga útil 650 (isto é, o fim do pacote de dados 600), e o início de um novo pacote de dados subsequente.
[00095] Os vários tamanhos dos campos providos no exemplo da Figura 6 destinam-se meramente a ser explicativos, e pretende-se que os campos possam ser implementados utilizando diferentes números de bits do que o que é mostrado na Figura 6. Adicionalmente, é também contemplado que o cabeçalho de pacote de dados 610 pode incluir menos do que todos os campos acima discutidos ou pode utilizar campos adicionais não discutidos acima. Na verdade, as técnicas da presente invenção podem ser flexíveis, em termos de formato real usado para os vários campos de dados dos pacotes.
[00096] Após a análise do cabeçalho de pacote de dados 610 para determinar a formatação dos dados de carga útil 650, o dispositivo de origem 120 pode analisar os dados de carga útil 650 para determinar o comando de entrada de usuário contido nos dados de carga útil 650. Os dados de carga útil 650 podem ter seu próprio cabeçalho de carga útil (cabeçalho de carga útil 630), indicando os conteúdos de dados de carga útil 650. Deste modo, o dispositivo de origem 120 pode analisar o cabeçalho de carga útil 630 com base na análise de cabeçalho de pacote de dados 610 e, em seguida, analisar os dados de carga útil restantes 650 com base na análise do cabeçalho de carga útil 630.
[00097] Se, por exemplo, o campo categoria de entrada de dados 624 do cabeçalho de pacote de dados 610 indicar que uma entrada genérica está presente nos dados de carga útil 650, então os dados de carga útil 650 podem ter um formato de entrada genérico. O dispositivo de origem 120 pode, assim, analisar dados de carga útil 650 de acordo com o formato de entrada genérico. Como parte do formato de entrada genérico, os dados de carga útil 650 podem incluir uma série de um ou mais eventos de entrada com cada evento de entrada tendo o seu próprio cabeçalho de evento de entrada. A Tabela 1, a seguir identifica os campos que podem ser incluídos em um cabeçalho de entrada. Tabela 1
Figure img0001
[00098] O campo identificação (ID) de evento de entrada (IE) genérico identifica a identificação de evento de entrada genérico para identificar um tipo de entrada. O campo ID IE genérico pode, por exemplo, ser um octeto em comprimento e pode incluir uma identificação selecionada da Tabela 2 abaixo. Se, como neste exemplo, o campo ID IE genérico é de 8 bits, então 256 diferentes tipos de entradas (identificadas 0-255) podem ser identificadas, apesar de nem todas as 256 identificações necessariamente necessitar de um tipo de entrada associada. Algumas das 256 podem ser reservadas para uso futuro com versões futuras de qualquer protocolo que está sendo implementado pelo dispositivo de destino 160 e pelo dispositivo de origem 120. Na Tabela 2, por exemplo, IDs IE genéricos 9-255 não têm tipos de entrada associados, mas poderiam ser atribuídos com tipos de entrada no futuro.
[00099] O campo comprimento no cabeçalho de evento de entrada identifica o comprimento do campo descrição enquanto o campo descrição inclui os elementos de informação que descrevem a entrada de usuário. A formatação do campo descrição pode ser dependente do tipo de entrada identificada no campo ID IE genérico. Assim, o dispositivo de origem 120 pode analisar os conteúdos do campo descrição com base no tipo de entrada identificado no campo ID IE genérico. Com base no campo comprimento do cabeçalho de evento de entrada, o dispositivo de origem 120 pode determinar o final de um evento de entrada nos dados de carga útil 650 e o começo de um novo evento de entrada. Como será explicado em maiores detalhes abaixo, um comando de usuário pode ser descrito nos dados de carga útil 650, como um ou mais eventos de entrada.
[000100] A Tabela 2 provê um exemplo de tipos de entrada, cada qual com um ID IE genérico correspondente que pode ser utilizado para identificar o tipo de entrada. Tabela 2
Figure img0002
[000101] Os campos descrição associados a cada tipo de entrada podem ter um formato diferente. Os campos descrição de um evento Mouse esquerdo-para baixo/Toque para baixo, um evento Mouse esquerdo-para cima/toque para cima, e um evento Mover Mouse/Mover Toque podem, por exemplo, incluir os elementos de informação identificados na Tabela 3 a seguir, embora outros formatos também possam ser usados em outros exemplos. Tabela 3
Figure img0003
Figure img0004
[000102] O número de ponteiros pode identificar o número de toques ou cliques do mouse associados a um evento de entrada. Cada ponteiro pode ter um ID de ponteiro único. Se, por exemplo, um evento de multitoque inclui um toque de três dedos, então o evento de entrada pode ter três ponteiros, cada um com um ID de ponteiro único. Cada ponteiro (ou seja, cada toque do dedo) pode ter uma coordenada-x correspondente e uma coordenada-y correspondente ao local onde ocorreu o toque.
[000103] Um único comando de usuário pode ser descrito como uma série de eventos de entrada. Por exemplo, se um deslize de três dedos é um comando para fechar um aplicativo, os três deslizes de dedo podem ser descritos em dados de carga útil 650 como um evento de toque para baixo com três ponteiros, um evento de mover toque com três ponteiros, e um evento de toque para cima com três ponteiros. Os três ponteiros do evento de toque para baixo podem ter os mesmos IDs de ponteiro que os três ponteiros do evento de mover toque e evento de toque para cima. O dispositivo de origem 120 pode interpretar a combinação destes três eventos de entrada como um deslize de três dedos.
[000104] Os campos descrição de um evento de tecla para baixo ou um evento de tecla para cima podem, por exemplo, incluir os elementos de informação identificados na Tabela 4 abaixo. Tabela 4
Figure img0005
[000105] O campo descrição de um evento de zoom pode, por exemplo, incluir os elementos de informação identificados na Tabela 5 abaixo. Tabela 5
Figure img0006
Figure img0007
[000106] O campo descrição de um evento de rolagem horizontal ou um evento de rolagem vertical pode, por exemplo, incluir os elementos de informação identificados na Tabela 6 abaixo. Tabela 6
Figure img0008
[000107] Os exemplos acima mostram alguns aspectos exemplares em que os dados de carga útil podem ser formatados para uma categoria de entrada genérica. Se o campo categoria de entrada 624 de cabeçalho de pacote de dados 610 indica uma categoria de entrada diferente, tal como uma entrada de usuário encaminhada, então, os dados de carga útil 650 podem ter um formato de entrada diferente. Com a entrada de usuário encaminhada, o dispositivo de destino 160 pode receber os dados de entrada de usuário a partir de um dispositivo de terceiros e encaminhar a entrada para o dispositivo de origem 120 sem interpretar os dados de entrada de usuário. O dispositivo de origem 120 pode, assim, analisar os dados de carga útil 650 de acordo com o formato de entrada de usuário encaminhado. Por exemplo, o cabeçalho de carga útil 630 dos dados de carga útil 650 pode incluir um campo para identificar o dispositivo de terceiros do qual foi obtida a entrada de usuário. O campo pode, por exemplo, incluir um endereço de protocolo internet (IP) do dispositivo de terceiros, endereço MAC, nome de domínio, ou algum outro tipo de identificador. O dispositivo de origem 120 pode analisar o restante dos dados de carga útil com base no identificador do dispositivo de terceiros.
[000108] O dispositivo de destino 160 pode negociar capacidades com o dispositivo de terceiros através de uma série de mensagens. O dispositivo de destino 160 pode transmitir um identificador único do dispositivo de terceiros para o dispositivo de origem 120 como parte de estabelecer uma sessão de comunicação com o dispositivo de origem 120 como parte de um processo de negociação de capacidade. Alternativamente, o dispositivo de destino 160 pode transmitir informações que descrevem o dispositivo de terceiros para o dispositivo de origem 120, e com base na informação, o dispositivo de origem 120 pode determinar um identificador único para o dispositivo de terceiros. A informação que descreve o dispositivo de terceiros pode, por exemplo, incluir informações para identificar o dispositivo de terceiros e/ou informações para identificar capacidades do dispositivo de terceiros. Independentemente de os identificadores únicos serem determinados pelo dispositivo de origem 120 ou pelo dispositivo de destino 160, quando o dispositivo de destino 160 transmite pacotes de dados com a entrada de usuário obtida do dispositivo de terceiros, o dispositivo de destino 160 pode incluir o identificador único no pacote de dados, em um cabeçalho de carga útil, por exemplo, para que o dispositivo de origem 120 possa identificar a origem da entrada de usuário.
[000109] Se o campo categoria de entrada 624 do cabeçalho de pacote de dados 610 indica ainda uma categoria de entrada diferente, tal como um comando de voz, então os dados de carga útil 650 podem ter ainda um formato de entrada diferente. Para um comando de voz, os dados de carga útil 650 podem incluir áudio codificado. O codec para codificação e decodificação de áudio do comando de voz pode ser negociado entre o dispositivo de origem 120 e o dispositivo de destino 160 através de uma série de mensagens. Para transmitir um comando de voz, o campo marca de tempo 626 pode incluir um valor de tempo de amostragem de fala. Em tal caso, o indicador de marca de tempo 622 pode ser configurado para indicar que uma marca de tempo está presente, mas em vez de uma marca de tempo como descrito acima, o campo marca de tempo 626 pode incluir um valor de tempo de amostragem de fala para o áudio codificado de dados de carga útil 650.
[000110] Em alguns exemplos, um comando de voz pode ser transmitido como um comando genérico, como descrito acima, caso em que o campo categoria de entrada 624 pode ser configurado para identificar o formato de comando genérico, e um dos IDs IE genéricos reservados pode ser atribuído a comandos de voz. Se o comando de voz que é transmitido como um comando genérico, então uma taxa de amostragem de fala pode estar presente no campo marca de tempo 626 do cabeçalho de pacote de dados 610 ou pode estar presente nos dados de carga útil 650.
[000111] Para os dados de comando de voz capturados, os dados de voz podem ser encapsulados em vários aspectos. Por exemplo, os dados de comando de voz podem ser encapsulados usando RTP que pode prover o tipo de carga útil para identificar o codec e marca de tempo, com a marca de tempo sendo utilizada para identificar a taxa de amostragem. Os dados RTP podem ser encapsulados usando o formato de entrada de usuário genérico descrito acima, com ou sem a marca de tempo opcional. O dispositivo de destino 160 pode transmitir os dados de entrada genéricos que portam os dados de comando de voz para o dispositivo de origem 120 usando TPC/IP.
[000112] Como discutido anteriormente, quando as coordenadas estão incluídas como parte de um pacote de dados tal como pacotes de dados 600, nos dados de carga útil 650, por exemplo, as coordenadas podem corresponder às coordenadas dimensionadas com base em uma resolução negociada, as coordenadas da janela de exibição, as coordenadas normalizadas ou as coordenadas associadas a uma tela de destino. Em alguns casos, a informação adicional, pode ser incluída, ou no pacote de dados ou transmitida separadamente, para utilização por um dispositivo de origem para normalizar as coordenadas recebidas no pacote de dados.
[000113] Independentemente da categoria de entrada para um pacote de dados em particular, o cabeçalho de pacote de dados pode ser um cabeçalho de pacote de camada de aplicação, e os pacotes de dados podem ser transmitidos através de TCP/IP. TCP/IP pode permitir que o dispositivo de destino 160 e o dispositivo de origem 120 executem técnicas de retransmissão em caso de perda de pacotes. O pacote de dados pode ser enviado do dispositivo de destino 160 para o dispositivo de origem 120 para controlar os dados de áudio ou dados vídeo do dispositivo de origem 120 e para outros propósitos, tal como para controlar um aplicativo em execução no dispositivo de origem 120.
[000114] A Figura 7A é um fluxograma de um método exemplar de negociação de capacidades entre um dispositivo de destino e um dispositivo de origem. O método exemplar ilustrado pode ser realizado por um dispositivo de destino 160 (Figura 1A) ou 360 (Figura 3). Em alguns exemplos, um meio de armazenamento legível por computador (por exemplo, a memória 332) pode armazenar instruções, módulos, ou algoritmos que, quando executados, fazem com que um ou mais processadores (por exemplo, o processador 331) realizem uma ou mais das etapas ilustradas nos um ou mais esquemas de fluxo aqui descritos.
[000115] O método da Figura 7A inclui um dispositivo de destino 160 que recebe do dispositivo de origem 120 uma primeira mensagem (701). A mensagem pode, por exemplo, compreender uma solicitação para obter o parâmetro. Em resposta à primeira mensagem, o dispositivo de destino 160 pode enviar uma segunda mensagem para o dispositivo de origem 120 (703). A segunda mensagem pode, por exemplo, compreender uma resposta para obter o parâmetro que identifica uma primeira lista de categorias de entrada suportadas e uma pluralidade de primeiras listas de tipos suportados, em que cada uma das categorias de entrada suportadas da primeira lista de categorias de entrada suportadas tem uma primeira lista associada de tipos suportados. As categorias de entrada suportadas podem, por exemplo, corresponder às mesmas categorias utilizadas para o campo categoria de entrada 624 da Figura 6. A tabela 2 acima representa um exemplo de tipos suportados de uma categoria de entrada específica (entradas genéricas neste exemplo). O dispositivo de destino 160 pode receber do dispositivo de origem 120, uma terceira mensagem (705). A terceira mensagem pode, por exemplo, compreender uma solicitação para configurar parâmetro, em que a solicitação para configurar parâmetro identifica uma porta para comunicação, uma segunda lista de categorias de entrada suportadas, e uma pluralidade de segundas listas de tipos suportados, com cada uma das categorias de entrada suportadas da segunda lista de categorias de entrada suportadas tendo uma segunda lista de tipos suportados associada, e cada um dos tipos suportados das segundas listas incluindo um subconjunto dos tipos das primeiras listas. O dispositivo de destino 160 pode transmitir para o dispositivo de origem 120 uma quarta mensagem (707). A quarta mensagem pode, por exemplo, compreender uma resposta para configurar parâmetro para confirmar que os tipos das segundas listas foram habilitados. O dispositivo de destino 160 pode receber do dispositivo de origem 120 uma quinta mensagem (709). A quinta mensagem pode, por exemplo, compreender uma segunda solicitação para configurar parâmetro que indica que um canal de comunicação entre o dispositivo de origem 120 e o dispositivo de destino 160 foi habilitado. O canal de comunicação pode, por exemplo, compreender um canal de retorno de entrada de usuário (UIBC). O dispositivo de destino 160 pode transmitir para o dispositivo de origem 120 uma sexta mensagem (711). A sexta mensagem pode, por exemplo, compreender uma segunda resposta para configurar o parâmetro que confirma a recepção da segunda solicitação para configurar parâmetro pelo dispositivo de destino 160.
[000116] A Figura 7B é um fluxograma de um método exemplar de capacidades de negociação entre um dispositivo de destino e um dispositivo de origem. O método exemplar ilustrado pode ser realizado pelo dispositivo de origem 120 (Figura 1A) ou 220 (Figura 2). Em alguns exemplos, um meio de armazenamento legível por computador (por exemplo, a memória 232) pode armazenar instruções, módulos, ou algoritmos que, quando executados, fazem com que um ou mais processadores (por exemplo, processador 231) realizem uma ou mais das etapas ilustradas no fluxograma.
[000117] O método da Figura 7B inclui um dispositivo de origem 120 transmitindo para o dispositivo de destino 160 uma primeira mensagem (702). A primeira mensagem pode, por exemplo, compreender uma solicitação para obter parâmetro. O dispositivo de origem 120 pode receber uma segunda mensagem do dispositivo de destino 160 (704). A segunda mensagem pode, por exemplo, compreender uma resposta para obter parâmetro que identifica uma primeira lista de categorias de entrada suportadas e uma pluralidade de primeiras listas de tipos suportados, em que cada uma das categorias de entrada suportadas da primeira lista de categorias de entrada suportadas tem uma primeira lista associada de tipos suportados. O dispositivo de origem 120 pode transmitir para o dispositivo de destino 160, uma terceira mensagem (706). A terceira mensagem pode, por exemplo, compreender uma solicitação para configurar parâmetro que identifica uma porta para comunicação, uma segunda lista de categorias de entrada suportadas, e uma pluralidade de segundas listas de tipos suportados, com cada uma das categorias de entrada suportadas da segunda lista de categorias de entrada suportadas tendo uma segunda lista de tipos suportados associada, e cada um dos tipos suportados da segunda lista incluindo um subconjunto de tipos das primeiras listas. O dispositivo de origem 120 pode receber uma quarta mensagem (708) do dispositivo de destino 160. A quarta mensagem pode, por exemplo, compreender uma resposta para configurar parâmetro para confirmar que os tipos das segundas listas foram habilitados. O dispositivo de origem 120 pode transmitir uma quinta mensagem (710) para o dispositivo de destino 160. A quinta mensagem pode, por exemplo, compreender uma segunda solicitação para configurar parâmetro que indica que o canal de comunicação entre o dispositivo de origem 120 e um dispositivo de destino 160 foi habilitado. O canal de comunicação pode, por exemplo, compreender um canal de retorno de entrada de usuário (UIBC). O dispositivo de origem 120 pode receber uma sexta mensagem (712) do dispositivo de destino 160. A sexta mensagem pode, por exemplo, compreender uma segunda resposta para configurar parâmetro que confirma a recepção da segunda solicitação para configurar parâmetro pelo dispositivo de destino 160.
[000118] A Figura 8A é um fluxograma de um método exemplar para transmitir dados de entrada de usuário de um dispositivo de destino sem fio para um dispositivo de origem sem fio em conformidade com esta invenção. O método exemplar ilustrado pode ser realizado por um dispositivo de destino 160 (Figura 1A) ou 360 (Figura 3). Em alguns exemplos, um meio de armazenamento legível por computador (por exemplo, a memória 332) pode armazenar instruções, módulos, ou algoritmos que, quando executados, fazem com que um ou mais processadores (por exemplo, processador 331) realize uma ou mais das etapas ilustradas no fluxograma.
[000119] O método da Figura 8A inclui obter dados de entrada de usuário em um dispositivo de destino sem fio, tal como o dispositivo de destino sem fio 160 (801). Os dados de entrada de usuário podem ser obtidos através de um componente de entrada de usuário de um dispositivo de destino sem fio 160, tal como, por exemplo, a interface de entrada de usuário 376 mostrada em relação ao dispositivo de destino sem fio 360. Além disso, o dispositivo de destino 160 pode categorizar os dados de entrada de usuário, tal como, por exemplo, específico de sistema genérico, encaminhado ou operacional. O dispositivo de destino 160 pode, em seguida, gerar um cabeçalho de pacote de dados com base nos dados de entrada de usuário (803). O cabeçalho de pacote de dados pode ser um cabeçalho de pacote de camada de aplicação. O cabeçalho de pacote de dados pode compreender, entre outros campos, um campo para identificar uma categoria de entrada correspondente aos dados de entrada de usuário. A categoria de entrada pode compreender, por exemplo, um formato de entrada genérico ou comando de dispositivo de interface humana. O dispositivo de destino 160 pode adicionalmente gerar um pacote de dados (805), em que o pacote de dados compreende o cabeçalho de pacote de dados gerado e dados de carga útil. Em um exemplo, os dados de carga útil podem incluir dados de entrada de usuário recebidos e pode identificar um ou mais comandos de usuário. O dispositivo de destino 160 pode, em seguida, transmitir os pacotes de dados gerados (807) para o dispositivo de origem sem fio (por exemplo, dispositivo de origem 120 da Figura 1A ou 220 da Figura 2). O dispositivo de destino 160 pode compreender componentes que permitem a transferência de pacotes de dados, incluindo a unidade de transporte 333 e um modem sem fio 334, como mostrado na Figura 3, por exemplo. O dispositivo de destino 160 pode transferir o pacote de dados sobre TCP/IP.
[000120] A Figura 8B é um fluxograma de um método exemplar para receber dados de entrada de usuário de um dispositivo de destino sem fio para um dispositivo de origem sem fio em conformidade com a presente invenção. O método exemplar ilustrado pode ser realizado pelo dispositivo de origem 120 (Figura 1A) ou 220 (Figura 2). Em alguns exemplos, um meio de armazenamento legível por computador (por exemplo, a memória 232) pode armazenar instruções, módulos, ou algoritmos que, quando executados, fazem com que um ou mais processadores (por exemplo, processador 231) realizem uma ou mais das etapas ilustradas no fluxograma.
[000121] O método da Figura 8B inclui receber um pacote de dados (802), em que o pacote de dados pode compreender, entre outras coisas, um cabeçalho de pacote de dados e dados de carga útil. Os dados de carga útil podem incluir, por exemplo, os dados de entrada de usuário. O dispositivo de origem 120 pode compreender componentes de comunicação que permitem a transferência de pacotes de dados, incluindo a unidade de transporte 233 e um modem sem fio 234, por exemplo, conforme mostrado em referência à Figura 2. O dispositivo de origem 120 pode, em seguida, analisar o cabeçalho de pacote de dados (804), incluído no pacote de dados, para determinar uma categoria de entrada associada aos dados de entrada de usuário contidos nos dados de carga útil. O dispositivo de origem 120 pode processar os dados de carga útil com base na categoria de entrada determinada (806). Os pacotes de dados descritos com referência às Figuras 8A e 8B podem geralmente tomar a forma de pacotes de dados descritos com referência à Figura 6 e podem ser usados para controlar dados de áudio/vídeo e aplicativos em um dispositivo de origem.
[000122] A Figura 9A é um fluxograma de um método exemplar para transmitir dados de entrada de usuário de um dispositivo de destino sem fio para um dispositivo de origem sem fio em conformidade com esta invenção. O método exemplar ilustrado pode ser realizado por um dispositivo de destino 160 (Figura 1A) ou 360 (Figura 3). Em alguns exemplos, um meio de armazenamento legível por computador (por exemplo, a memória 332) pode armazenar instruções, módulos, ou algoritmos que, quando executados, fazem com que um ou mais processadores (por exemplo, o processador 331) realizem uma ou mais das etapas ilustradas no fluxograma.
[000123] O método da Figura 9A inclui obter dados de entrada de usuário em um dispositivo de destino sem fio, tal como o dispositivo de destino sem fio 160 (901). Os dados de entrada de usuário podem ser obtidos através de um componente de entrada de usuário de um dispositivo de destino sem fio 160, tal como, por exemplo, a interface de entrada de usuário 376 mostrada com referência à Figura 3. O dispositivo de destino 160 pode, então, gerar dados de carga útil (903), em que os dados de carga útil podem descrever os dados de entrada de usuário. Em um exemplo, os dados de carga útil podem incluir dados de entrada de usuário recebidos e podem identificar um ou mais comandos de usuário. O dispositivo de destino 160 pode adicionalmente gerar um pacote de dados (905), em que o pacote de dados compreende um cabeçalho de pacote de dados e dados de carga útil gerados. O dispositivo de destino 160 pode, em seguida, transmitir os pacotes de dados gerados (907) para o dispositivo de origem sem fio (por exemplo, dispositivo de origem 120 da Figura 1A ou 220 da Figura 2). O dispositivo de destino 160 pode compreender componentes que permitem a transferência de pacotes de dados, tais como a unidade de transporte 333 e um modem sem fio 334, por exemplo. O pacote de dados pode ser transmitido para um dispositivo de origem sem fio através do TCP/IP.
[000124] A Figura 9B é um fluxograma de um método exemplar para receber dados de entrada de usuário de um dispositivo de destino sem fio para um dispositivo de origem sem fio em conformidade com a presente invenção. O método exemplar ilustrado pode ser realizado pelo dispositivo de origem 120 (Figura 1A) ou 220 (Figura 2). Em alguns exemplos, um meio de armazenamento legível por computador (por exemplo, a memória 232) pode armazenar instruções, módulos, ou algoritmos que, quando executados, fazem com que um ou mais processadores (por exemplo, o processador 231) realizem uma ou mais das etapas ilustradas no fluxograma.
[000125] O método da Figura 9B inclui receber um pacote de dados do dispositivo de destino 360 (902), em que o pacote de dados pode compreender, entre outras coisas, um cabeçalho de pacote de dados e os dados de carga útil. Em um exemplo, os dados de carga útil podem compreender, por exemplo, os dados que descrevem os detalhes de uma entrada de usuário, tal como o valor do tipo de entrada. O dispositivo de origem 120 pode compreender componentes de comunicação que permitem a transferência de pacotes de dados, incluindo a unidade de transporte 233 e um modem sem fio 234, por exemplo, como mostrado com referência à Figura 2. O dispositivo de origem 120 pode, em seguida, analisar o pacote de dados (904) para determinar um valor do tipo de entrada em um campo tipo de entrada nos dados de carga útil. O dispositivo de origem 120 pode processar os dados que descrevem os detalhes da entrada de usuário com base no valor do tipo de entrada determinado (906). Os pacotes de dados descritos com referência às Figuras 9A e 9B podem ter geralmente a forma de pacotes de dados descritos com referência à Figura 6.
[000126] A Figura 10A é um fluxograma de um método exemplar para transmitir dados de entrada de usuário de um dispositivo de destino sem fio para um dispositivo de origem sem fio em conformidade com esta invenção. O método exemplar ilustrado pode ser realizado por um dispositivo de destino 160 (Figura 1A) ou 360 (Figura 3). Em alguns exemplos, um meio de armazenamento legível por computador (por exemplo, a memória 332) pode armazenar instruções, módulos, ou algoritmos que, quando executados, fazem com que um ou mais processadores (por exemplo, o processador 331) realizem uma ou mais das etapas ilustradas no fluxograma.
[000127] O método da Figura 10A inclui obter dados de entrada de usuário em um dispositivo de destino sem fio, tal como o dispositivo de destino sem fio 160 (1001). Os dados de entrada de usuário podem ser obtidos através de um componente de entrada de usuário de um dispositivo de destino sem fio 160, tal como, por exemplo, a entrada de interface de usuário 376, como mostrado, com referência à Figura 3. O dispositivo de destino 160 pode então gerar um cabeçalho de pacote de dados com base na entrada de usuário (1003). O cabeçalho de pacote de dados pode compreender, entre outros campos, um indicador de marca de tempo (por exemplo, um campo de 1 bit) para indicar se um campo marca de tempo está presente no cabeçalho de pacote de dados. O indicador de marca de tempo pode, por exemplo, incluir um "1" para indicar que o campo marca de tempo está presente e pode incluir um "0" para indicar que o campo marca de tempo não está presente. O campo marca de tempo pode ser, por exemplo, um campo de 16 bits que contém uma marca de tempo gerada pelo dispositivo de origem 120 e adicionada aos dados de vídeo, antes da transmissão. O dispositivo de destino 160 pode adicionalmente gerar um pacote de dados (1005), em que o pacote de dados compreende o cabeçalho de pacote de dados gerado e os dados de carga útil. Em um exemplo, os dados de carga útil podem incluir dados de entrada de usuário recebidos e pode identificar um ou mais comandos de usuário. O dispositivo de destino 160 pode então transmitir o pacote de dados gerado (1007) para o dispositivo de origem sem fio (por exemplo, o dispositivo de origem 120 da Figura 1A ou 220 da Figura 2). O dispositivo de destino 160 pode compreender componentes que permitem a transferência de pacotes de dados, incluindo a unidade de transporte 333 e um modem sem fio 334, por exemplo, conforme mostrado em referência à Figura 3. O pacote de dados pode ser transmitido para um dispositivo de origem sem fio através do TCP/IP.
[000128] A Figura 10B é um fluxograma de um método exemplar para receber dados de entrada de usuário de um dispositivo de destino sem fio para um dispositivo de origem sem fio em conformidade com a presente invenção. O método exemplar ilustrado pode ser realizado pelo dispositivo de origem 120 (Figura 1A) ou 220 (Figura 2). Em alguns exemplos, um meio de armazenamento legível por computador (por exemplo, a memória 232) pode armazenar instruções, módulos, ou algoritmos que, quando executados, fazem com que um ou mais processadores (por exemplo, o processador 231) realizem uma ou mais das etapas ilustradas no fluxograma.
[000129] O método da Figura 10B inclui receber um pacote de dados do dispositivo de destino sem fio 160 (1002), onde o pacote de dados pode compreender, entre outras coisas, um cabeçalho de pacote de dados e dados de carga útil. Os dados de carga útil podem incluir, por exemplo, os dados de entrada de usuário. O dispositivo de origem 120 pode compreender os componentes de comunicação que permitem a transferência de pacotes de dados, incluindo a unidade de transporte 233 e um modem sem fio 234, por exemplo, conforme mostrado em referência à Figura 2. O dispositivo de origem 120 pode, em seguida, analisar o cabeçalho de pacote de dados (1004) incluído no pacote de dados. O dispositivo de origem 120 pode determinar se um campo marca de tempo está presente no cabeçalho de pacote de dados (1006). Em um exemplo, o dispositivo de origem 120 pode realizar a determinação com base em um valor de indicador de marca de tempo incluído no cabeçalho de pacote de dados. Se o cabeçalho do pacote de dados incluir um campo marca de tempo, o dispositivo de origem 120 pode processar os dados de carga útil com base em uma marca de tempo que está no campo marca de tempo (1008). Os pacotes de dados descritos com referência às Figuras 10A e 10B podem em geral tomar a forma dos pacotes de dados descritos com referência à Figura 6, e podem ser utilizados para controlar os dados de áudio/vídeo em um dispositivo de origem.
[000130] A Figura 11A é um fluxograma de um método exemplar para transmitir dados de entrada de usuário de um dispositivo de destino sem fio para um dispositivo de origem sem fio em conformidade com esta invenção. O método exemplar ilustrado pode ser realizado por um dispositivo de destino 160 (Figura 1A) ou 360 (Figura 3). Em alguns exemplos, um meio de armazenamento legível por computador (por exemplo, a memória 332) pode armazenar instruções, módulos, ou algoritmos que, quando executados, fazem com que um ou mais processadores (por exemplo, o processador 331) realizem uma ou mais das etapas ilustradas no fluxograma.
[000131] O método da Figura 11A inclui obter dados de entrada de usuário em um dispositivo de destino sem fio, tal como um dispositivo de destino sem fio 160 (1101). Os dados de entrada de usuário podem ser obtidos através de um componente de entrada de usuário de um dispositivo de destino sem fio 160, tal como, por exemplo, a interface de entrada de usuário 376 mostrada em referência à Figura 3. O dispositivo de destino 160 pode então gerar um cabeçalho de pacote de dados com base na entrada de usuário (1103). O cabeçalho de pacote de dados pode compreender, entre outros campos, um campo marca de tempo. O campo marca de tempo pode compreender, por exemplo, um campo de 16 bits que contém uma marca de tempo com base em dados de multimídia que foram gerados pelo dispositivo de origem sem fio 120 e transmitidos para o dispositivo de destino sem fio 160. A marca de tempo pode ter sido adicionada ao quadro de dados de vídeo pelo dispositivo de origem sem fio 120 antes de ser transmitida para o dispositivo de destino sem fio. O campo marca de tempo pode, por exemplo, identificar uma marca de tempo associada a um quadro de dados de vídeo que está sendo exibido no dispositivo de destino sem fio 160, no momento que os dados de entrada de usuário foram capturados. O dispositivo de destino 160 pode adicionalmente gerar um pacote de dados (1105), em que o pacote de dados compreende o cabeçalho de pacote de dados gerado e os dados de carga útil. Em um exemplo, os dados de carga útil podem incluir dados de entrada de usuário recebidos e podem identificar um ou mais comandos de usuário. O dispositivo de destino 160 pode, em seguida, transmitir os pacotes de dados gerados (1107) para o dispositivo de origem sem fio (por exemplo, dispositivo de origem 120 da Figura 1A ou 220 da Figura 2). O dispositivo de destino 160 pode compreender componentes que permitem a transferência de pacotes de dados, incluindo a unidade de transporte 333 e um modem sem fio 334, por exemplo, conforme mostrado em referência à Figura 3. O pacote de dados pode ser transmitido para um dispositivo de origem sem fio através do TCP/IP.
[000132] A Figura 11B é um fluxograma de um método exemplar para receber dados de entrada de usuário de um dispositivo de destino sem fio em um dispositivo de origem sem fio em conformidade com a presente invenção. O método exemplar ilustrado pode ser realizado pelo dispositivo de origem 120 (Figura 1A), ou 220 (Figura 2). Em alguns exemplos, um meio de armazenamento legível por computador (por exemplo, a memória 232) pode armazenar instruções, módulos, ou algoritmos que, quando executados, fazem com que um ou mais processadores (por exemplo, o processador 231) realizem uma ou mais das etapas ilustradas no fluxograma.
[000133] O método da Figura 11B inclui receber um pacote de dados de um dispositivo de destino sem fio, tal como o dispositivo de destino sem fio 160 (1102), em que o pacote de dados pode compreender, entre outras coisas, um cabeçalho de pacote de dados e dados de carga útil. Os dados de carga útil podem incluir, por exemplo, os dados de entrada de usuário. O dispositivo de origem 120 pode compreender componentes de comunicações, que permitem a transferência de pacotes de dados, incluindo a unidade de transporte 233 e um modem sem fio 234, por exemplo, conforme mostrado em referência à Figura 2. O dispositivo de origem 120 pode então identificar um campo marca de tempo no cabeçalho de pacote de dados (1104). O dispositivo de origem 120 pode processar os dados de carga útil com base em uma marca de tempo que está no campo marca de tempo (1106). Como parte do processamento dos dados de carga útil, com base na marca de tempo, o dispositivo de origem 120 pode identificar um quadro de dados de vídeo que está sendo exibido no dispositivo de destino sem fio no momento em que os dados de entrada de usuário foram obtidos e interpretar os dados de carga útil com base no conteúdo do quadro. Como parte do processamento dos dados de carga útil com base na marca de tempo, o dispositivo de origem 120 pode comparar a marca de tempo com uma marca de tempo atual para um quadro de vídeo atual que está sendo transmitido pelo dispositivo de origem 120 e pode realizar um comando de entrada de usuário descrito nos dados de carga útil em resposta a uma diferença de tempo entre a marca de tempo e a marca de tempo atual sendo inferior a um valor limite, ou não realizar um comando de entrada de usuário descrito nos dados de carga útil em resposta a uma diferença de tempo entre a marca de tempo e a marca de tempo atual sendo superior a um valor limite. Os pacotes de dados descritos com referência às Figuras 11A e 11B podem em geral tomar a forma de pacotes de dados descritos com referência à Figura 6 e podem ser utilizados para controlar os dados de áudio/vídeo de um dispositivo de origem.
[000134] A Figura 12A é um fluxograma de um método exemplar para transmitir dados de entrada de usuário de um dispositivo de destino sem fio para um dispositivo de origem sem fio em conformidade com esta invenção. O método exemplar ilustrado pode ser realizado por um dispositivo de destino 160 (Figura 1A) ou 360 (Figura 3). Em alguns exemplos, um meio de armazenamento legível por computador (por exemplo, a memória 332) pode armazenar instruções, módulos, ou algoritmos que, quando executados, fazem com que um ou mais processadores (por exemplo, o processador 331) realizem uma ou mais das etapas ilustradas no fluxograma.
[000135] O método da Figura 12A inclui obter dados de entrada de usuário em um dispositivo de destino sem fio, tal como o dispositivo de destino sem fio 160 (1201). Em um exemplo, os dados de entrada de usuário podem ser dados de comando de voz, os quais podem ser obtidos através de um componente de entrada de usuário de um dispositivo de destino sem fio 160, tal como, por exemplo, um módulo de reconhecimento de comando de voz incluído na entrada de interface de usuário 376 na Figura 3. O dispositivo de destino 160 pode gerar um cabeçalho de pacote de dados com base na entrada de usuário (1203). O dispositivo de destino 160 também pode gerar dados de carga útil (1205), em que os dados de carga útil podem incluir os dados de comando de voz. Em um exemplo, os dados de carga útil podem também incluir dados de entrada de usuário recebidos e podem identificar um ou mais comandos de usuário. O dispositivo de destino 160 pode adicionalmente gerar um pacote de dados (1207), em que o pacote de dados compreende o cabeçalho de pacote de dados gerados e os dados de carga útil. O dispositivo de destino 160 pode, em seguida, transmitir os pacotes de dados gerados (1209) para o dispositivo de origem sem fio (por exemplo, o dispositivo de origem 120 da Figura 1A ou 220 da Figura 2). O dispositivo de destino 160 pode compreender componentes que permitem a transferência de pacotes de dados, incluindo a unidade de transporte 333 e um modem sem fio 334, por exemplo, conforme mostrado em referência à Figura 3. O pacote de dados pode ser transmitido para um dispositivo de origem sem fio através do TCP/IP.
[000136] A Figura 12B é um fluxograma de um método exemplar para receber dados de entrada de usuário de um dispositivo de destino sem fio em um dispositivo de origem sem fio em conformidade com a presente invenção. O método exemplar ilustrado pode ser realizado pelo dispositivo de origem 120 (Figura 1A) ou 220 (Figura 2). Em alguns exemplos, um meio de armazenamento legível por computador (por exemplo, a memória 232) pode armazenar instruções, módulos, ou algoritmos que, quando executados, fazem com que um ou mais processadores (por exemplo, o processador 231) realizem uma ou mais das etapas ilustradas no fluxograma.
[000137] O método da Figura 12B inclui receber um pacote de dados (1202), em que o pacote de dados pode compreender, entre outras coisas, um cabeçalho de pacote de dados e dados de carga útil. Os dados de carga útil podem incluir, por exemplo, os dados de entrada de usuário, tal como dados de comando de voz. O dispositivo de origem 120 pode compreender os componentes de comunicação que permitem a transferência de pacotes de dados, incluindo a unidade de transporte 233 e um modem sem fio 234, por exemplo, conforme mostrado em referência à Figura 2. O dispositivo de origem 120 pode, em seguida, analisar os dados de carga útil (1204) incluídos no pacote de dados, para determinar se os dados de carga útil compreendem os dados de comando de voz. Os pacotes de dados descritos com referência às Figuras 12A e 12B podem em geral tomar a forma de pacotes de dados descritos com referência à Figura 6, e podem ser utilizados para controlar os dados de áudio/vídeo de um dispositivo de origem.
[000138] A Figura 13A é um fluxograma de um método exemplar para transmitir dados de entrada de usuário de um dispositivo de destino sem fio para um dispositivo de origem sem fio em conformidade com esta invenção. O método exemplar ilustrado pode ser realizado por um dispositivo de destino 160 (Figura 1A) ou 360 (Figura 3). Em alguns exemplos, um meio de armazenamento legível por computador (por exemplo, a memória 332) pode armazenar instruções, módulos, ou algoritmos que, quando executados, fazem com que um ou mais processadores (por exemplo, o processador 331) realizem uma ou mais das etapas ilustradas no fluxograma.
[000139] O método da Figura 13A inclui obter dados de entrada de usuário em um dispositivo de destino sem fio, tal como o dispositivo de destino sem fio 160 (1301). Em um exemplo, os dados de entrada de usuário podem ser um gesto multitoque, que pode ser obtido através de um componente de entrada de usuário de um dispositivo de destino sem fio 160, tal como, por exemplo, a UI 167 ou a interface de entrada de usuário 376 da Figura 3. Em um exemplo, o gesto multitoque pode compreender uma primeira entrada de toque e uma segunda entrada de toque. O dispositivo de destino 160 pode gerar um cabeçalho de pacote de dados com base na entrada de usuário (1303). O dispositivo de destino 160 também pode gerar dados de carga útil (1305), em que os dados de carga útil podem associar dados de entrada de usuário ao primeiro evento de entrada de toque com uma primeira identificação de ponteiro e os dados de entrada de usuário para o segundo evento de entrada de toque com uma segunda identificação de ponteiro. O dispositivo de destino 160 pode adicionalmente gerar um pacote de dados (1307), em que o pacote de dados compreende o cabeçalho de pacote de dados gerado e dados de carga útil. O dispositivo de destino 160 pode, em seguida, transmitir os pacotes de dados gerados (1309) para o dispositivo de origem sem fio (por exemplo, o dispositivo de origem 120 da Figura 1A ou 220 da Figura 2). O dispositivo de destino 160 pode compreender componentes que permitem a transferência de pacotes de dados, incluindo a unidade de transporte 333 e um modem sem fio 334, por exemplo, conforme mostrado em referência à Figura 3. O pacote de dados pode ser transmitido para um dispositivo de origem sem fio através do TCP/IP.
[000140] A Figura 13B é um fluxograma de um método exemplar para receber dados de entrada de usuário de um dispositivo de destino sem fio em um dispositivo de origem sem fio de acordo com a presente invenção. O método exemplar ilustrado pode ser realizado pelo dispositivo de origem 120 (Figura 1A) ou 220 (Figura 2). Em alguns exemplos, um meio de armazenamento legível por computador (por exemplo, a memória 232) pode armazenar instruções, módulos, ou algoritmos que, quando executados, fazem com que um ou mais processadores (por exemplo, o processador 231) realizem uma ou mais das etapas ilustradas no fluxograma.
[000141] O método da Figura 13B inclui receber um pacote de dados (1302), em que o pacote de dados pode compreender, entre outras coisas, um cabeçalho de pacote de dados e dados de carga útil. Os dados de carga útil podem incluir, por exemplo, os dados de entrada de usuário, tal como gestos multitoque. O dispositivo de origem 120 pode compreender os componentes de comunicação que permitem a transferência de pacotes de dados, incluindo a unidade de transporte 233 e um modem sem fio 234, por exemplo, como mostrado na Figura 2. O dispositivo de origem 120 pode, em seguida, analisar os dados de carga útil (1304) incluídos no pacote de dados, para identificar dados de entrada de usuário incluídos nos dados de carga útil. Em um exemplo, os dados identificados podem incluir dados de entrada de usuário para um primeiro evento de entrada de toque com uma primeira identificação de ponteiro e os dados de entrada de usuário para um segundo evento de entrada de toque com uma segunda identificação de ponteiro. O dispositivo de origem 120 pode, então, interpretar os dados de entrada de usuário para o primeiro evento de entrada de toque e os dados de entrada de usuário para o segundo evento de entrada de toque como um gesto multitoque (1306). Os pacotes de dados descritos com referência às Figuras 13A e 13B podem em geral tomar a forma dos pacotes de dados descritos com referência à Figura 6 e podem ser utilizados para controlar os dados de áudio/vídeo de um dispositivo de origem.
[000142] A Figura 14A é um fluxograma de um método exemplar para transmitir dados de entrada de usuário de um dispositivo de destino sem fio para um dispositivo de origem sem fio em conformidade com esta invenção. O método exemplar ilustrado pode ser realizado por um dispositivo de destino 160 (Figura 1A) ou 360 (Figura 3). Em alguns exemplos, um meio de armazenamento legível por computador (por exemplo, a memória 332) pode armazenar instruções, módulos, ou algoritmos que, quando executados, fazem com que um ou mais processadores (por exemplo, o processador 331) realizem uma ou mais das etapas ilustradas no fluxograma.
[000143] O método da Figura 14A inclui obter dados de entrada de usuário no dispositivo de destino sem fio 360 de um dispositivo externo (1401). Em um exemplo, o dispositivo externo pode ser um dispositivo de terceiros conectado ao dispositivo de destino. O dispositivo de destino 160 pode gerar um cabeçalho de pacote de dados com base na entrada de usuário (1403). Em um exemplo, o cabeçalho de pacote de dados pode identificar os dados de entrada de usuário como os dados de entrada de usuário encaminhados. O dispositivo de destino 160 também pode gerar dados de carga útil (1405), em que os dados de carga útil podem incluir os dados de entrada de usuário. O dispositivo de destino 160 pode adicionalmente gerar um pacote de dados (1407), em que o pacote de dados pode compreender o cabeçalho de pacote de dados gerado e dados de carga útil. O dispositivo de destino 160 pode, em seguida, transmitir os pacotes de dados gerados (1409) para o dispositivo de origem sem fio (por exemplo, dispositivo de origem 120 da Figura 1A ou 220 da Figura 2). O dispositivo de destino 160 pode compreender componentes que permitem a transferência de pacotes de dados, incluindo a unidade de transporte 333 e um modem sem fio 334, por exemplo, como mostrado com referência à Figura 3. O pacote de dados pode ser transmitido para um dispositivo de origem sem fio através do TCP/IP.
[000144] A Figura 14B é um fluxograma de um método exemplar para receber dados de entrada de usuário de um dispositivo de destino sem fio em um dispositivo de origem sem fio em conformidade com a presente invenção. O método exemplar ilustrado pode ser realizado pelo dispositivo de origem 120 (Figura 1A) ou 220 (Figura 2). Em alguns exemplos, um meio de armazenamento legível por computador (por exemplo, a memória 232) pode armazenar instruções, módulos, ou algoritmos que, quando executados, fazem com que um ou mais processadores (por exemplo, o processador 231) realizem uma ou mais das etapas ilustradas no fluxograma.
[000145] O método da Figura 14B inclui receber um pacote de dados (1402), em que o pacote de dados pode compreender, entre outras coisas, um cabeçalho de pacote de dados e dados de carga útil. Os dados de carga útil podem incluir, por exemplo, os dados de entrada de usuário, tal como um comando de entrada de usuário encaminhado, indicando que os dados de entrada de usuário foram encaminhados de um dispositivo de terceiros. O dispositivo de origem 120 pode compreender os componentes de comunicações que permitem a transferência de pacotes de dados, incluindo a unidade de transporte 233 e um modem sem fio 234, por exemplo, como mostrado em referência à Figura 2. O dispositivo de origem 120 pode, então, analisar o cabeçalho de pacote de dados e pode determinar que os dados de carga útil compreendem um comando de entrada de usuário encaminhado (1404). O dispositivo de origem 120 pode, em seguida, analisar os dados de carga útil (1406) incluídos no pacote de dados, para identificar uma identificação associada ao dispositivo de terceiros correspondente ao comando de entrada de usuário encaminhado. O dispositivo de origem 120 pode então processar os dados de carga útil com base na identificação identificada do dispositivo de terceiros (1408). Os pacotes de dados descritos com referência às Figuras 14A e 14B podem em geral tomar a forma de pacotes de dados descritos com referência à Figura 6, e podem ser utilizados para controlar os dados de áudio/vídeo em um dispositivo de origem.
[000146] A Figura 15A é um fluxograma de um método exemplar para transmitir dados de usuário de um dispositivo de destino sem fio para um dispositivo de origem sem fio em conformidade com esta invenção. O método exemplar ilustrado pode ser realizado por um dispositivo de destino 160 (Figura 1A) ou 360 (Figura 3). Em alguns exemplos, um meio de armazenamento legível por computador (por exemplo, a memória 332) pode armazenar instruções, módulos, ou algoritmos que, quando executados, fazem com que um ou mais processadores (por exemplo, o processador 331) realizem uma ou mais das etapas ilustradas no fluxograma.
[000147] O método da Figura 15A inclui obter dados de entrada de usuário no dispositivo de destino sem fio (1501). Os dados de entrada de usuário podem ter dados de coordenadas associadas. Os dados de coordenadas associadas podem, por exemplo, corresponder a uma localização de um evento de um clique do mouse ou a localização de um evento de toque. O dispositivo de destino 160 pode, em seguida, normalizar os dados de coordenadas associadas para gerar dados de coordenadas normalizadas (1503). O dispositivo de destino 160 pode, em seguida, gerar um pacote de dados que inclui os dados de coordenadas normalizadas (1505). Normalizar os dados de coordenadas pode incluir o escalonamento dos dados de coordenadas associadas com base em uma relação da resolução de uma janela de exibição e uma resolução da tela de origem, tal como a tela 22 do dispositivo de origem 120. A resolução da tela pode ser determinada por um dispositivo de destino 160, e a resolução da tela do dispositivo de origem pode ser recebida do dispositivo de origem 120. O dispositivo de destino 160 pode então transmitir o pacote de dados com as coordenadas normalizadas para o dispositivo de origem sem fio 120 (1507). Como parte do método da Figura 15A, o dispositivo de destino 160 também pode determinar se os dados de coordenadas associadas estão dentro de uma janela de exibição para conteúdo que está sendo recebido do dispositivo de origem sem fio, e, por exemplo, processar a entrada de usuário localmente, se os dados de coordenadas associadas estiverem fora da janela de exibição, ou caso contrário normalizar as coordenadas, conforme descrito se a entrada estiver dentro da janela de exibição.
[000148] A Figura 15B é um fluxograma de um método exemplar para receber dados de entrada de usuário de um dispositivo de destino sem fio para um dispositivo de origem sem fio de acordo com a presente invenção. O método exemplar ilustrado pode ser realizado pelo dispositivo de origem 120 (Figura 1A) ou 220 (Figura 2). Em alguns exemplos, um meio de armazenamento legível por computador (por exemplo, a memória 232) pode armazenar instruções, módulos, ou algoritmos que, quando executados, fazem com que um ou mais processadores (por exemplo, o processador 231) realizem uma ou mais das etapas ilustradas no fluxograma.
[000149] O método da Figura 15B inclui receber um pacote de dados com o dispositivo de origem sem fio, em que o pacote de dados compreende os dados de entrada de usuário com os dados de coordenadas associadas (1502). Os dados de coordenadas associadas podem, por exemplo, corresponder a uma localização de um evento de clique do mouse ou a localização de um evento de toque em um dispositivo de destino. O dispositivo de origem 120 pode, então, normalizar os dados de coordenadas associadas para gerar dados de coordenadas normalizadas (1504). O dispositivo de origem 120 pode normalizar os dados de coordenadas ao escalonar os dados de coordenadas associadas com base em uma relação da resolução da janela de exibição e uma resolução da tela da origem. O dispositivo de origem 120 pode determinar a resolução da tela do dispositivo de origem e pode receber a resolução da tela do dispositivo de destino sem fio. O dispositivo de origem pode, então, processar o pacote de dados com base nos dados de coordenadas normalizadas (1506). Os pacotes de dados descritos com referência as Figuras 15A e 15B podem em geral tomar a forma de pacotes de dados descritos com referência à Figura 6, e podem ser utilizados para controlar os dados de áudio/vídeo em um dispositivo de origem.
[000150] Para simplicidade de explicação, os aspectos da presente invenção têm sido descritos separadamente, com referência às Figuras 7-15. É contemplado, no entanto, que estes vários aspectos podem ser combinados e usados em conjunto com os outros e não apenas separadamente. Em geral, a funcionalidade e/ou módulos aqui descritos podem ser implementados em qualquer um ou ambos, o dispositivo de destino sem fio e o dispositivo de origem sem fio. Desta forma, as capacidades de interface de usuário descritas no presente exemplo podem ser utilizadas alternadamente entre o dispositivo de origem sem fio e o dispositivo de destino sem fio.
[000151] As técnicas da presente invenção podem ser implementadas em uma ampla variedade de dispositivos ou aparelhos, incluindo um aparelho de telefone sem fio, e um circuito integrado (IC) ou de um conjunto de ICs (isto é, um conjunto de chips). Quaisquer componentes, módulos ou unidades foram descritos desde que enfatizem aspectos funcionais e não requeiram necessariamente a realização por diferentes unidades de hardware.
[000152] Deste modo, as técnicas aqui descritas podem ser implementadas em hardware, software, firmware ou qualquer combinação destes. Se implementadas em hardware, quaisquer características descritas como módulos, unidades ou componentes podem ser implementadas em conjunto em um dispositivo lógico integrado ou separadamente, como dispositivos lógicos discretos, mas interoperáveis. Se implementadas em software, as técnicas podem ser realizadas, pelo menos em parte por um meio legível por computador que compreende instruções que, quando executadas em um processador, realizam um ou mais dos métodos descritos acima. O meio legível por computador pode compreender um meio de armazenamento legível por computador, tangível e não-transitório e pode fazer parte de um produto de programa de computador, que pode incluir materiais de empacotamento. O meio de armazenamento legível por computador pode incluir memória de acesso aleatório (RAM), tais como a memória de acesso aleatório dinâmica síncrona (SDRAM), memória de leitura (ROM), memória de acesso aleatório não-volátil (NVRAM), memória de leitura programável e eletricamente apagável (EEPROM), memória flash, mídia de armazenamento de dados magnéticos ou ópticos, e assim por diante. As técnicas adicional ou alternativamente, podem ser realizadas, pelo menos em parte por um meio de comunicação legível por computador que porta ou comunica código na forma de instruções ou estruturas de dados, e que podem ser acessadas, lidas e/ou executadas por um computador.
[000153] O código pode ser executado por um ou mais processadores, tais como um ou mais processadores de sinais digitais (DSPs), microprocessadores de propósito geral, circuitos integrados de aplicação específica (ASICs), matriz de portas programáveis em campo (FPGA), ou outros equivalentes integrados ou conjunto de circuitos lógicos discretos. Por conseguinte, o termo "processador", tal como aqui utilizado pode referir-se a qualquer uma das estruturas precedentes ou qualquer outra estrutura adequada para a aplicação das técnicas aqui descritas. Além disso, em alguns aspectos, a funcionalidade aqui descrita pode ser provida dentro de módulos de software dedicado ou módulos de hardware configurados para codificar e decodificar, ou incorporada em um codec de vídeo combinado. Além disso, as técnicas podem ser totalmente implementadas em um ou mais circuitos ou elementos lógicos.
[000154] Vários aspectos da invenção têm sido descritos. Estes e outros aspectos estão dentro do escopo das reivindicações apensas.

Claims (15)

1. Método para negociar capacidades entre um dispositivo de destino sem fio e um dispositivo de origem sem fio, o método caracterizado pelo fato de que compreende: transmitir (1b) uma mensagem ao dispositivo de origem sem fio, em que a mensagem identifica: uma lista de categorias de entrada suportadas, em que a lista de categorias de entrada suportadas identifica formatos de dados de entrada de usuário suportados pelo dispositivo de destino sem fio; e uma pluralidade de listas de tipos suportados, em que cada uma das categorias de entrada suportadas da lista de categorias de entrada suportadas possui uma lista associada de tipos suportados.
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a mensagem é uma mensagem de resposta RTSP OBTER_PARÂMETRO.
3. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende adicionalmente: em que a lista de categorias de entrada suportadas é uma primeira lista de categorias de entrada suportadas, e em que a pluralidade de listas de tipos suportados é uma primeira pluralidade de listas de tipos suportados; e receber (2a) do dispositivo de origem sem fio uma segunda mensagem, em que a segunda mensagem identifica: uma segunda lista de categorias de entrada suportadas; uma pluralidade de segundas listas de tipos suportados, em que cada uma das categorias de entrada suportadas da segunda lista de categorias de entrada suportadas possui uma segunda lista associada de tipos suportados; em que os tipos suportados das segundas listas são um subconjunto dos tipos das primeiras listas.
4. Método, de acordo com a reivindicação 3, caracterizado pelo fato de que compreende adicionalmente: transmitir ao dispositivo de origem sem fio, uma terceira mensagem para confirmar que os tipos das segundas listas foram ativados; receber do dispositivo de origem sem fio, uma quarta mensagem, em que a quarta mensagem indica que um canal de comunicação entre o dispositivo de origem sem fio e o dispositivo de destino sem fio foi ativado; e em que o canal de comunicação é um canal de retorno de entrada de usuário (UIBC).
5. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que as categorias de entrada suportadas da lista de categorias de entrada suportadas são selecionadas a partir de um grupo que consiste em um comando genérico e um comando de dispositivo de interface humana (HIDC).
6. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende adicionalmente: receber do dispositivo de origem sem fio uma mensagem de solicitação de parâmetro, em que a mensagem de solicitação de parâmetro identifica um percurso de entrada para um tipo suportado da lista de tipos suportados.
7. Dispositivo de destino sem fio configurado para negociar capacidades com um dispositivo de origem sem fio, o dispositivo de destino sem fio caracterizado pelo fato de que compreende: mecanismos para transmitir uma mensagem ao dispositivo de origem sem fio, em que a mensagem identifica: uma lista de categorias de entrada suportadas, em que a lista de categorias de entrada suportadas identifica formatos de dados de entrada de usuário suportados pelo dispositivo de destino sem fio; e uma pluralidade de listas de tipos suportados, em que cada uma das categorias de entrada suportadas da lista de categorias de entrada suportadas possui uma lista associada de tipos suportados.
8. Método para negociar capacidades entre um dispositivo de destino sem fio e um dispositivo de origem sem fio, o método caracterizado pelo fato de que compreende: receber (1b) uma mensagem a partir do dispositivo de destino sem fio, em que a mensagem identifica: uma lista de categorias de entrada suportadas, em que a lista de categorias de entrada suportadas identifica formatos de dados de entrada de usuários suportados pelo dispositivo de destino sem fio; e uma pluralidade de listas de tipos suportados, em que cada uma das categorias de entrada suportadas da lista de categorias de entrada suportadas possui uma lista associada de tipos suportados.
9. Método, de acordo com a reivindicação 8, caracterizado pelo fato de que compreende adicionalmente: em que a lista de categorias de entrada suportadas é uma primeira lista de categorias de entrada suportadas, e em que a pluralidade de listas de tipos suportados é uma primeira pluralidade de listas de tipos suportados; e transmitir (2a) ao dispositivo de destino sem fio uma segunda mensagem, em que a segunda mensagem identifica: uma segunda lista de categorias de entrada suportadas; uma pluralidade de segundas listas de tipos suportados, em que cada uma das categorias de entrada suportadas da segunda lista de categorias de entrada suportadas possui uma segunda lista associada de tipos suportados; em que os tipos suportados das segundas listas são um subconjunto dos tipos das primeiras listas.
10. Método, de acordo com a reivindicação 9, caracterizado pelo fato de que a segunda mensagem é uma mensagem de solicitação RTSP CONFIGURAR_PARÂMETRO.
11. Método, de acordo com a reivindicação 9, caracterizado pelo fato de que compreende adicionalmente: receber no dispositivo de origem sem fio, uma terceira mensagem para confirmar que os tipos das segundas listas foram ativados; transmitir ao dispositivo de destino sem fio, uma quarta mensagem, em que a quarta mensagem indica que um canal de comunicação entre o dispositivo de origem sem fio e o dispositivo de destino sem fio foi ativado, e em que o canal de comunicação é um canal de retorno de entrada de usuário (UIBC).
12. Método, de acordo com a reivindicação 8, caracterizado pelo fato de que as categorias de entrada suportadas da lista de categorias de entrada suportadas são selecionadas a partir de um grupo que consiste em um comando genérico e um comando de dispositivo de interface humana (HIDC).
13. Método, de acordo com a reivindicação 8, caracterizado pelo fato de que os tipos suportados das listas de tipos suportados são selecionados a partir de um grupo que consiste em um teclado, um mouse, um toque único, multitoque, um joystick, uma câmera, gestos e um controle remoto.
14. Dispositivo de origem sem fio configurado para negociar capacidades com um dispositivo de destino sem fio, o dispositivo de origem sem fio caracterizado pelo fato de que compreende: mecanismos para receber uma mensagem do dispositivo de destino sem fio, em que a mensagem identifica: uma lista de categorias de entrada suportadas, em que a lista de categorias de entrada suportadas identifica formatos de dados de entrada de usuário suportados pelo dispositivo de destino sem fio; e uma pluralidade de listas de tipos suportados, em que cada uma das categorias de entrada suportadas da lista de categorias de entrada suportadas possui uma lista associada de tipos suportados.
15. Memória legível por computador caracterizada pelo fato de que armazena instruções que quando executadas por um ou mais processadores fazem com que os um ou mais processadores realizem o método conforme definido em qualquer uma das reivindicações 1 a 6.
BR112013018566A 2011-01-21 2012-01-20 Método para negociar capacidades entre um dispositivo de origem sem fio e um dispositivo de destino sem fio, dispositivo de destino sem fio, dispositivo de origem sem fio e memória legível por computador BR112013018566B8 (pt)

Applications Claiming Priority (15)

Application Number Priority Date Filing Date Title
US201161435194P 2011-01-21 2011-01-21
US201161447592P 2011-02-28 2011-02-28
US201161448312P 2011-03-02 2011-03-02
US61/448,312 2011-03-02
US201161450101P 2011-03-07 2011-03-07
US61/450,101 2011-03-07
US201161467535P 2011-03-25 2011-03-25
US201161467543P 2011-03-25 2011-03-25
US201161514863P 2011-08-03 2011-08-03
US61/514,863 2011-08-03
US201161544445P 2011-10-07 2011-10-07
US61/544,445 2011-10-07
US13/344,291 2012-01-05
US13/344,291 US8677029B2 (en) 2011-01-21 2012-01-05 User input back channel for wireless displays
PCT/US2012/022106 WO2012100218A1 (en) 2011-01-21 2012-01-20 Negotiating capabilities between a wireless sink and a wireless source device

Publications (3)

Publication Number Publication Date
BR112013018566A2 BR112013018566A2 (pt) 2016-09-27
BR112013018566B1 true BR112013018566B1 (pt) 2022-03-29
BR112013018566B8 BR112013018566B8 (pt) 2023-02-28

Family

ID=45554900

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112013018566A BR112013018566B8 (pt) 2011-01-21 2012-01-20 Método para negociar capacidades entre um dispositivo de origem sem fio e um dispositivo de destino sem fio, dispositivo de destino sem fio, dispositivo de origem sem fio e memória legível por computador

Country Status (14)

Country Link
US (1) US8677029B2 (pt)
EP (1) EP2666323A1 (pt)
JP (2) JP5815741B2 (pt)
KR (1) KR101503386B1 (pt)
CN (1) CN103392359B (pt)
AU (1) AU2012207073B2 (pt)
BR (1) BR112013018566B8 (pt)
CA (1) CA2824567C (pt)
IL (1) IL227194A (pt)
MY (1) MY167007A (pt)
RU (1) RU2567378C2 (pt)
SG (1) SG191765A1 (pt)
WO (1) WO2012100218A1 (pt)
ZA (1) ZA201306271B (pt)

Families Citing this family (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9198084B2 (en) * 2006-05-26 2015-11-24 Qualcomm Incorporated Wireless architecture for a traditional wire-based protocol
US8811294B2 (en) * 2008-04-04 2014-08-19 Qualcomm Incorporated Apparatus and methods for establishing client-host associations within a wireless network
US9398089B2 (en) * 2008-12-11 2016-07-19 Qualcomm Incorporated Dynamic resource sharing among multiple wireless devices
US9264248B2 (en) * 2009-07-02 2016-02-16 Qualcomm Incorporated System and method for avoiding and resolving conflicts in a wireless mobile display digital interface multicast environment
US9582238B2 (en) 2009-12-14 2017-02-28 Qualcomm Incorporated Decomposed multi-stream (DMS) techniques for video display systems
US9787725B2 (en) 2011-01-21 2017-10-10 Qualcomm Incorporated User input back channel for wireless displays
US10135900B2 (en) 2011-01-21 2018-11-20 Qualcomm Incorporated User input back channel for wireless displays
US9582239B2 (en) 2011-01-21 2017-02-28 Qualcomm Incorporated User input back channel for wireless displays
US8964783B2 (en) 2011-01-21 2015-02-24 Qualcomm Incorporated User input back channel for wireless displays
US9065876B2 (en) 2011-01-21 2015-06-23 Qualcomm Incorporated User input back channel from a wireless sink device to a wireless source device for multi-touch gesture wireless displays
US8677029B2 (en) * 2011-01-21 2014-03-18 Qualcomm Incorporated User input back channel for wireless displays
US9413803B2 (en) 2011-01-21 2016-08-09 Qualcomm Incorporated User input back channel for wireless displays
US9503771B2 (en) 2011-02-04 2016-11-22 Qualcomm Incorporated Low latency wireless display for graphics
US8674957B2 (en) 2011-02-04 2014-03-18 Qualcomm Incorporated User input device for wireless back channel
US10108386B2 (en) 2011-02-04 2018-10-23 Qualcomm Incorporated Content provisioning for wireless back channel
US9106651B2 (en) * 2011-09-19 2015-08-11 Qualcomm Incorporated Sending human input device commands over internet protocol
US9525998B2 (en) 2012-01-06 2016-12-20 Qualcomm Incorporated Wireless display with multiscreen service
KR20130143162A (ko) * 2012-06-20 2013-12-31 삼성전자주식회사 휴대단말기의 데이터 전송 장치 및 방법
US9360997B2 (en) 2012-08-29 2016-06-07 Apple Inc. Content presentation and interaction across multiple displays
US9270692B2 (en) * 2012-11-06 2016-02-23 Mediatek Inc. Method and apparatus for setting secure connection in wireless communications system
US9007384B2 (en) * 2012-12-18 2015-04-14 Apple Inc. Display panel self-refresh entry and exit
JP6117562B2 (ja) * 2013-02-13 2017-04-19 ソニー株式会社 情報処理装置、情報処理方法および情報処理システム
KR101531856B1 (ko) * 2013-04-03 2015-06-29 주식회사 팬택 와이파이 디스플레이 장치들의 역할 전환 방법 및 이를 위한 단말 장치
KR101479582B1 (ko) * 2013-04-10 2015-01-06 주식회사 팬택 Wfd 통신에서 소스/싱크 역할전환을 수행하는 디바이스 및 방법
US9197680B2 (en) * 2013-05-23 2015-11-24 Qualcomm Incorporated Establishing and controlling audio and voice back channels of a Wi-Fi display connection
RU2656230C2 (ru) * 2013-05-31 2018-06-04 Сони Корпорейшн Устройство обработки информации и способ обработки информации
WO2014192414A1 (ja) * 2013-05-31 2014-12-04 ソニー株式会社 情報処理装置および情報処理方法
US9306992B2 (en) 2013-06-07 2016-04-05 Qualcomm Incorporated Method and system for using Wi-Fi display transport mechanisms to accomplish voice and data communications
US9532043B2 (en) 2013-08-02 2016-12-27 Blackberry Limited Wireless transmission of real-time media
US9525714B2 (en) 2013-08-02 2016-12-20 Blackberry Limited Wireless transmission of real-time media
CN103677566A (zh) * 2013-11-27 2014-03-26 北京百纳威尔科技有限公司 图片编辑方法和装置
CN103702436B (zh) * 2013-12-11 2016-09-14 东软集团股份有限公司 Miracast反向控制方法及系统
JP6503558B2 (ja) * 2014-03-19 2019-04-24 ソニー株式会社 情報処理装置、情報処理システム、および情報処理方法
US9554183B2 (en) * 2014-05-08 2017-01-24 Lattice Semiconductor Corporation Caching of capabilities information of counterpart device for efficient handshaking operation
US10162769B2 (en) 2014-06-12 2018-12-25 Lg Electronics Inc. Method and apparatus for transmitting and receiving data using HDMI
TWI604382B (zh) * 2014-07-08 2017-11-01 緯創資通股份有限公司 應用程式分享方法以及使用該方法的系統
JP6729372B2 (ja) * 2014-11-27 2020-07-22 ソニー株式会社 情報処理装置および情報処理方法
US10034047B2 (en) * 2014-12-11 2018-07-24 Lg Electronics Inc. Method and apparatus for outputting supplementary content from WFD
US9432556B2 (en) * 2015-01-05 2016-08-30 Qualcomm Incorporated Devices and methods for facilitating frame dropping in remote display applications
KR102281341B1 (ko) * 2015-01-26 2021-07-23 엘지전자 주식회사 싱크 디바이스 및 그 제어 방법
EP3273712B1 (en) 2015-03-17 2021-12-29 Sony Group Corporation Information processing device, information processing method, and program
KR102295686B1 (ko) 2015-04-15 2021-08-31 삼성전자주식회사 외부 전자 장치와 하이브리드 통신을 수행하는 전자 장치 및 방법
US10540302B2 (en) 2015-04-17 2020-01-21 Lg Electronics Inc. Method and apparatus for switching input character in WFD
US10531127B2 (en) * 2015-06-19 2020-01-07 Serious Simulations, Llc Processes systems and methods for improving virtual and augmented reality applications
US10356829B2 (en) 2015-09-09 2019-07-16 Lg Electronics Inc. Method and apparatus for transmitting metadata in WFD
CN106612445A (zh) * 2015-10-21 2017-05-03 中国移动通信集团公司 一种无线同屏音频通道的控制方法、发送设备及接受设备
CN106941732B (zh) * 2016-01-04 2020-08-04 中国移动通信集团公司 重连接方法、系统及wfd设备
JP6462627B2 (ja) * 2016-05-13 2019-01-30 ソニー株式会社 情報処理装置、情報処理方法およびプログラム
CN106408200A (zh) * 2016-09-28 2017-02-15 孙腾 一种互助管控系统及方法
US10471360B2 (en) 2017-03-06 2019-11-12 Sony Interactive Entertainment LLC User-driven spectator channel for live game play in multi-player games
US10765938B2 (en) 2018-02-28 2020-09-08 Sony Interactive Entertainment LLC De-interleaving gameplay data
US10953322B2 (en) 2018-02-28 2021-03-23 Sony Interactive Entertainment LLC Scaled VR engagement and views in an e-sports event
US10765957B2 (en) 2018-02-28 2020-09-08 Sony Interactive Entertainment LLC Integrating commentary content and gameplay content over a multi-user platform
US11065548B2 (en) 2018-02-28 2021-07-20 Sony Interactive Entertainment LLC Statistical driven tournaments
US10953335B2 (en) 2018-02-28 2021-03-23 Sony Interactive Entertainment Inc. Online tournament integration
US10751623B2 (en) 2018-02-28 2020-08-25 Sony Interactive Entertainment LLC Incentivizing players to engage in competitive gameplay
US10814228B2 (en) 2018-02-28 2020-10-27 Sony Interactive Entertainment LLC Statistically defined game channels
US10792576B2 (en) 2018-02-28 2020-10-06 Sony Interactive Entertainment LLC Player to spectator handoff and other spectator controls
US10818142B2 (en) 2018-02-28 2020-10-27 Sony Interactive Entertainment LLC Creation of winner tournaments with fandom influence
US10792577B2 (en) 2018-02-28 2020-10-06 Sony Interactive Entertainment LLC Discovery and detection of events in interactive content
KR20210087653A (ko) * 2020-01-03 2021-07-13 삼성전자주식회사 전자장치 및 그 제어방법
CN111738862B (zh) * 2020-08-19 2020-11-27 南京艾科朗克信息科技有限公司 一种基于fpga的证券行情低延迟行情恢复方法

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06318984A (ja) * 1993-02-19 1994-11-15 Canon Inc マルチメディア情報送信装置、マルチメディア情報受信装置、マルチメディア通信装置、及びマルチメディア通信システム
US7185266B2 (en) 2003-02-12 2007-02-27 Alacritech, Inc. Network interface device for error detection using partial CRCS of variable length message portions
US6996072B1 (en) * 2000-01-19 2006-02-07 The Phonepages Of Sweden Ab Method and apparatus for exchange of information in a communication network
EP1139631A1 (en) * 2000-03-31 2001-10-04 BRITISH TELECOMMUNICATIONS public limited company Method of initiating a data transfer from a server to a client
EP1248431B1 (en) * 2001-03-27 2007-10-31 Sony Deutschland GmbH Method for achieving end-to-end quality of service negotiation for distributed multimedia applications
EP1253750A1 (en) * 2001-04-24 2002-10-30 Deutsche Thomson-Brandt Gmbh Method for the control of network devices connected via a bus system
US7299304B2 (en) 2001-11-20 2007-11-20 Intel Corporation Method and architecture to support interaction between a host computer and remote devices
US20030109252A1 (en) 2001-12-10 2003-06-12 Koninklijke Philips Electronics N.V. System and method of codec employment in a cellular telephone
JP3932974B2 (ja) * 2002-05-16 2007-06-20 株式会社デンソー 情報システム、車載端末、情報端末、プログラム
PE20040139A1 (es) * 2002-06-04 2004-04-15 Qualcomm Inc Metodo y aparato para reproducir contenido multimedia en un dispositivo portatil que tiene un procesador incorporado
US20040047424A1 (en) 2002-10-15 2004-03-11 Kumar Ramaswamy System and method for transmitting digital video files with error recovery
US7558265B2 (en) 2003-01-31 2009-07-07 Intel Corporation Methods and apparatus to limit transmission of data to a localized area
EP1593249A1 (en) 2003-02-03 2005-11-09 Koninklijke KPN N.V. Message data transmission in mobile communication systems taking into account capabilities of sending and receiving devices
US7558869B2 (en) 2003-02-13 2009-07-07 Nokia Corporation Rate adaptation method and device in multimedia streaming
KR100559025B1 (ko) 2003-05-30 2006-03-10 엘지전자 주식회사 홈 네트워크 관리 시스템
US20050091311A1 (en) 2003-07-29 2005-04-28 Lund Christopher D. Method and apparatus for distributing multimedia to remote clients
US7904184B2 (en) 2004-11-23 2011-03-08 Rockwell Automation Technologies, Inc. Motion control timing models
KR100630166B1 (ko) 2005-03-02 2006-09-29 삼성전자주식회사 멀티미디어 서비스 시스템에서 멀티미디어 컨텐츠의 정보를제공하는 방법
KR100656159B1 (ko) 2005-10-17 2006-12-13 삼성전자주식회사 광디스크 재생방법
US20080019391A1 (en) 2006-07-20 2008-01-24 Caterpillar Inc. Uniform message header framework across protocol layers
US8339967B2 (en) 2007-09-18 2012-12-25 Samsung Electronics Co., Ltd. Method and apparatus for generating data frame
CN101626363B (zh) 2008-07-07 2013-03-27 华为技术有限公司 聚合业务装置、系统、聚合业务创建及使用方法
KR20100016954A (ko) * 2008-08-05 2010-02-16 주식회사 대우일렉트로닉스 유무선으로 접속가능한 분리형 디스플레이장치
US8358670B2 (en) 2008-12-30 2013-01-22 Samsung Electronics Co., Ltd. Method and apparatus for processing packet
US8743906B2 (en) 2009-01-23 2014-06-03 Akamai Technologies, Inc. Scalable seamless digital video stream splicing
CN102356619B (zh) 2009-03-16 2016-11-09 皇家Kpn公司 已修改流同步
US8156238B2 (en) * 2009-05-13 2012-04-10 Stmicroelectronics, Inc. Wireless multimedia transport method and apparatus
WO2010131316A1 (ja) * 2009-05-14 2010-11-18 パナソニック株式会社 映像データの伝送方法
JP5351960B2 (ja) * 2009-05-14 2013-11-27 パナソニック株式会社 ビデオデータの伝送方法
KR101732057B1 (ko) 2009-11-02 2017-05-02 삼성전자주식회사 Av 시스템에서 사용자 입력 백 채널을 제공하는 방법 및 기기
US10009647B2 (en) 2010-03-02 2018-06-26 Qualcomm Incorporated Reducing end-to-end latency for communicating information from a user device to a receiving device via television white space
KR101660305B1 (ko) 2010-03-31 2016-09-27 삼성전자주식회사 이동통신 단말기 간의 원격 제어 방법 및 장치
CN102860034B (zh) 2010-04-28 2016-05-18 Lg电子株式会社 图像显示设备和操作图像显示设备的方法
EP2664994B1 (en) * 2011-01-14 2021-06-30 Samsung Electronics Co., Ltd. Method and apparatus for transmitting user input from a sink device to a source device in a wi-fi direct communication system
US20130003624A1 (en) 2011-01-21 2013-01-03 Qualcomm Incorporated User input back channel for wireless displays
US10135900B2 (en) 2011-01-21 2018-11-20 Qualcomm Incorporated User input back channel for wireless displays
US8677029B2 (en) * 2011-01-21 2014-03-18 Qualcomm Incorporated User input back channel for wireless displays
US10057736B2 (en) 2011-06-03 2018-08-21 Apple Inc. Active transport based notifications

Also Published As

Publication number Publication date
WO2012100218A1 (en) 2012-07-26
ZA201306271B (en) 2014-05-28
JP2015222953A (ja) 2015-12-10
BR112013018566B8 (pt) 2023-02-28
IL227194A (en) 2017-05-29
CN103392359B (zh) 2017-03-01
EP2666323A1 (en) 2013-11-27
JP2014506082A (ja) 2014-03-06
CN103392359A (zh) 2013-11-13
US20130002949A1 (en) 2013-01-03
KR20130126973A (ko) 2013-11-21
SG191765A1 (en) 2013-08-30
CA2824567C (en) 2016-04-26
AU2012207073B2 (en) 2015-05-07
US8677029B2 (en) 2014-03-18
KR101503386B1 (ko) 2015-03-17
MY167007A (en) 2018-07-31
RU2567378C2 (ru) 2015-11-10
BR112013018566A2 (pt) 2016-09-27
RU2013138748A (ru) 2015-02-27
JP6013562B2 (ja) 2016-10-25
CA2824567A1 (en) 2012-07-26
JP5815741B2 (ja) 2015-11-17
AU2012207073A1 (en) 2013-08-01

Similar Documents

Publication Publication Date Title
BR112013018566B1 (pt) Método para negociar capacidades entre um dispositivo de origem sem fio e um dispositivo de destino sem fio, dispositivo de destino sem fio, dispositivo de origem sem fio e memória legível por computador
BR112013018573B1 (pt) Método e dispositivo de destino sem fio configurado para encaminhar dados de entrada de usuário originários de um dispositivo de terceiros para um dispositivo de origem sem fio, método e dispositivo de origem sem fio configurado para receber dados de entrada de usuário encaminhados a partir de um dispositivo de destino sem fio, e memória
CA2824563C (en) User input back channel for wireless displays
US9065876B2 (en) User input back channel from a wireless sink device to a wireless source device for multi-touch gesture wireless displays
JP5826860B2 (ja) ワイヤレスディスプレイのためのユーザ入力バックチャネル
US8964783B2 (en) User input back channel for wireless displays
US10135900B2 (en) User input back channel for wireless displays
US20130013318A1 (en) User input back channel for wireless displays
CA2824287C (en) User input back channel for wireless displays
JP2014510434A (ja) ワイヤレスディスプレイのためのユーザ入力バックチャネル

Legal Events

Date Code Title Description
B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 20/01/2012, OBSERVADAS AS CONDICOES LEGAIS. PATENTE CONCEDIDA CONFORME ADI 5.529/DF, QUE DETERMINA A ALTERACAO DO PRAZO DE CONCESSAO.

B16C Correction of notification of the grant [chapter 16.3 patent gazette]

Free format text: REFERENTE A RPI 2673 DE 29/03/2022, QUANTO AO ITEM (72) NOME DO INVENTOR.