CN103404104B - 用于无线显示器的用户输入返回信道 - Google Patents
用于无线显示器的用户输入返回信道 Download PDFInfo
- Publication number
- CN103404104B CN103404104B CN201280010361.3A CN201280010361A CN103404104B CN 103404104 B CN103404104 B CN 103404104B CN 201280010361 A CN201280010361 A CN 201280010361A CN 103404104 B CN103404104 B CN 103404104B
- Authority
- CN
- China
- Prior art keywords
- data
- host device
- field
- source device
- timestamp
- Prior art date
- Legal status (The legal status 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 status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 claims description 127
- 230000005540 biological transmission Effects 0.000 claims description 42
- 230000004044 response Effects 0.000 claims description 26
- 238000005538 encapsulation Methods 0.000 claims description 9
- 241001269238 Data Species 0.000 claims description 4
- 240000002853 Nelumbo nucifera Species 0.000 claims description 3
- 235000006508 Nelumbo nucifera Nutrition 0.000 claims description 3
- 235000006510 Nelumbo pentapetala Nutrition 0.000 claims description 3
- 238000004891 communication Methods 0.000 abstract description 66
- 238000005516 engineering process Methods 0.000 description 43
- 238000004422 calculation algorithm Methods 0.000 description 36
- 230000008569 process Effects 0.000 description 27
- 238000010586 diagram Methods 0.000 description 9
- 238000010606 normalization Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 230000008859 change Effects 0.000 description 6
- 238000003860 storage Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 230000002441 reversible effect Effects 0.000 description 3
- 238000005096 rolling process Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 241000208340 Araliaceae Species 0.000 description 2
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 2
- 235000003140 Panax quinquefolius Nutrition 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000000712 assembly Effects 0.000 description 2
- 238000000429 assembly Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 235000008434 ginseng Nutrition 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000004899 motility Effects 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 210000003127 knee Anatomy 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000010363 phase shift Effects 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L25/00—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/65—Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/756—Media network packet handling adapting media to device capabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Computer Security & Cryptography (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- Acoustics & Sound (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Mobile Radio Communication Systems (AREA)
- Telephone Function (AREA)
Abstract
作为通信会话的一部分,无线源设备可以向无线宿设备发送音频和视频数据,并且无线宿设备可以将在该无线宿设备处接收的用户输入数据发送回无线源设备。以这种方式,无线宿设备的用户可以控制无线源设备,并且可以控制从无线源设备发送到无线宿设备的内容。在无线宿设备处接收的输入数据可以是语音命令。
Description
本申请要求下列美国临时申请的权益:
于2011年1月21日递交的美国临时申请No.61/435,194;
于2011年2月28日递交的美国临时申请No.61/447,592;
于2011年3月2日递交的美国临时申请No.61/448,312;
于2011年3月7日递交的美国临时申请No.61/450,101;
于2011年3月25日递交的美国临时申请No.61/467,535;
于2011年3月25日递交的美国临时申请No.61/467,543;
于2011年8月3日递交的美国临时申请No.61/514,863;
于2011年10月7日递交的美国临时申请No.61/544,434;
以引用方式将上述临时申请的全部内容并入本文。
技术领域
本公开内容涉及用于在无线源设备和无线宿设备之间发送数据的技术。
背景技术
无线显示(WD)或Wi-Fi显示(WFD)系统包括无线源设备和一个或多个无线宿设备。源设备和每一个宿设备可以是具有无线通信能力的移动设备或有线设备。例如,源设备和宿设备中的一个或多个可以包括移动电话、具有无线通信卡的便携式计算机、个人数字助理(PDA)、便携式媒体播放器或其它具有无线通信能力的这种设备,其中包括所谓的“智能”电话和“智能”平板或平板电脑、电子阅读器或任何类型的无线显示器、视频游戏设备、或其它类型的无线通信设备。源设备和宿设备中的一个或多个还可以包括具有通信能力的有线设备,诸如电视、台式计算机、监视器、投影仪等。
源设备向参与特定媒体共享会话的宿设备中的一个或多个宿设备发送媒体数据(诸如音频视频(AV)数据)。可以在源设备的本地显示器以及宿设备的显示器中的每一个显示器处对媒体数据进行回放。更确切地,所参与的宿设备中的每一个宿设备在其屏幕和音频设备上呈现所接收的媒体数据。
发明内容
本公开内容概括地描述了在其中无线宿设备可以与无线宿设备进行通信的系统。作为通信会话的一部分,无线源设备可以向无线宿设备发送音频和视频数据,并且无线宿设备可以将在该无线宿设备处接收的用户输入发送回无线源设备。以这种方式,无线宿设备的用户可以控制无线源设备并且可以控制从无线源设备向无线宿设备发送的内容。
在一个示例中,一种从无线宿设备向无线源设备发送用户输入数据的方法包括:接收包括分组报头和有效载荷数据的数据分组;以及对所述有效载荷数据进行解析,以确定所述有效载荷数据是否包括语音命令数据。
在另一个示例中,一种配置为向无线源设备发送用户输入数据的无线宿设备。所述无线宿设备包括:传输单元,其用于接收包括分组报头和有效载荷数据的数据分组;存储器,其存储指令;一个或多个处理器,其配置为执行所述指令,其中,在执行所述指令后,所述一个或多个处理器使得:对所述有效载荷数据进行解析,以确定所述有效载荷数据是否包括语音命令数据。
在另一个示例中,一种存储指令的计算机可读存储介质,在所述指令由一个或多个处理器执行后,使得所述一个或多个处理器执行从无线宿设备向无线源设备发送用户输入数据的方法。所述方法包括:接收包括分组报头和有效载荷数据的数据分组;以及对所述有效载荷数据进行解析,以确定所述有效载荷数据是否包括语音命令数据。
在另一个示例中,一种配置为向无线源设备发送用户输入的无线宿设备。所述无线宿设备包括:用于接收包括分组报头和有效载荷数据的数据分组的模块;以及用于对所述有效载荷数据进行解析,以确定所述有效载荷数据是否包括语音命令数据的模块。
在另一个示例中,一种从无线宿设备向无线源设备发送用户输入数据的方法包括:在所述无线宿设备处获得语音命令数据;生成数据分组报头;生成包括所述语音命令数据的有效载荷数据;生成包括所述数据分组报头和所述有效载荷数据的数据分组;以及向所述无线源设备发送所述数据分组。
在另一个示例中,一种无线宿设备被配置为向无线源设备发送用户输入数据。所述无线宿设备包括:存储器,其存储指令;一个或多个处理器,其配置为执行所述指令,其中,在执行所述指令后,所述一个或多个处理器使得:在所述无线宿设备处获得语音命令数据;生成数据分组报头;生成包括所述语音命令数据的有效载荷数据;以及生成包括所述数据分组报头和所述有效载荷数据的数据分组。所述无线宿设备还包括:传输单元,其用于向所述无线源设备发送所述数据分组。
在另一个示例中,一种存储指令的计算机可读存储介质,在所述指令由一个或多个处理器执行后,使得所述一个或多个处理器执行从无线宿设备向无线源设备发送用户输入数据的方法。所述方法包括:在所述无线宿设备处获得语音命令数据;生成数据分组报头;生成包括所述语音命令数据的有效载荷数据;生成包括所述数据分组报头和所述有效载荷数据的数据分组;向所述无线源设备发送所述数据分组。
在另一个示例中,一种无线宿设备被配置为向无线源设备发送用户输入数据。所述无线宿设备包括:用于在所述无线宿设备处获得语音命令数据的模块;用于生成数据分组报头的模块;用于生成包括所述语音命令数据的有效载荷数据的模块;用于生成包括所述数据分组报头和所述有效载荷数据的数据分组的模块;以及用于向所述无线源设备发送所述数据分组的模块。
附图说明
图1A是示出可以实现本公开内容的技术的源/宿系统的示例的框图。
图1B是示出具有两个宿设备的源/宿系统的示例的框图。
图2示出了可以实现本公开内容的技术的源设备的示例。
图3示出了可以实现本公开内容的技术的宿设备的示例。
图4示出了可以实现本公开内容的技术的发射机系统和接收机系统的框图。
图5A和5B示出了根据本公开内容的技术用于执行能力协商的示例消息传输顺序。
图6示出了可以用于向源设备递送在宿设备处获得的用户输入数据的示例数据分组。
图7A和7B是示出可以用于源设备和宿设备之间的能力协商的本公开内容的技术的流程图。
图8A和8B是示出可以用于发送和接收具有用户输入数据的数据分组的本公开内容的技术的流程图。
图9A和9B是示出可以用于发送和接收具有用户输入数据的数据分组的本公开内容的技术的流程图。
图10A和10B是示出可以用于发送和接收具有时间戳信息和用户输入数据的数据分组的本公开内容的技术的流程图。
图11A和11B是示出可以用于发送和接收具有时间戳信息和用户输入数据的数据分组的本公开内容的技术的流程图。
图12A和12B是示出可以用于发送和接收包括语音命令的数据分组的本公开内容的技术的流程图。
图13A和13B是示出可以用于发送和接收具有多点触摸用户输入命令的数据分组的本公开内容的技术的流程图。
图14A和14B是示出可以用于发送和接收具有从第三方设备转发的用户输入数据的数据分组的本公开内容的技术的流程图。
图15A和15B是示出可以用于发送和接收数据分组的本公开内容的技术的流程图。
具体实施方式
本公开内容概括地描述了无线宿设备可以与无线宿设备进行通信的系统。作为通信会话的一部分,无线源设备可以向无线宿设备发送音频和视频数据,并且无线宿设备可以将在该无线宿设备处接收的用户输入发送回该无线源设备。以这种方式,无线宿设备的用户可以控制无线源设备,并且可以控制从无线源设备向无线宿设备发送的内容。
图1A是示出可以实现本公开内容的技术中的一个或多个技术的示例性源/宿系统100的框图。如图1A所示,系统100包括经由通信信道150与宿设备160进行通信的源设备120。源设备120可以包括存储音频/视频(A/V)数据121的存储器、显示器122、扬声器123、音频/视频编码器124(也被称为编码器124)、音频/视频控制模块125和发射机/接收机(TX/RX)单元126。宿设备160可以包括显示器162、扬声器163、音频/视频解码器164(也被称为解码器164)、发射机/接收机单元166、用户输入(UI)设备167和用户输入处理模块(UIPM)168。所示出的组件仅构成源/宿系统100的一个示例配置。其它配置可以包括比所示出的那些组件更少的组件或者可以包括所示出的那些组件之外的另外的组件。
在图1A的示例中,源设备120可以在显示器122上显示音频/视频数据121的视频部分,并且可以在扬声器123上输出音频/视频数据121的音频部分。音频/视频数据121可以本地存储在源设备120上、从外部存储介质(诸如文件服务器、硬盘驱动器、外部存储器、蓝光光盘、DVD或其它物理存储介质)存取、或可以经由诸如因特网的网络连接流式传输到源设备120。在一些情况下,可以经由源设备120的照相机和麦克风对音频/视频数据121进行实时捕捉。音频/视频数据121可以包括诸如电影、电视节目或音乐之类的多媒体内容,但还可以包括由源设备120生成的实时内容。例如,这种实时内容可以是由运行在源设备120上的应用产生的,或者是捕捉到的视频数据(例如作为视频电话会话的一部分)。如同将会更详细描述的,在一些情况下,这种实时内容可以包括可供用户选择的用户输入选项的视频帧。在一些情况下,音频/视频数据121可以包括不同类型内容的组合的视频帧,诸如具有覆盖在视频帧上的用户输入选项的电影或电视节目的视频帧。
除了经由显示器122和扬声器123来本地呈现音频/视频数据121之外,源设备120的音频/视频编码器124可以对音频/视频数据121进行编码,并且发射机/接收机单元126可以在通信信道150上向宿设备160发送经编码的数据。宿设备160的发射机/接收机单元166接收该经编码的数据,并且音频/视频解码器164对该经编码的数据进行解码,并经由显示器162和扬声器163输出经解码的数据。以这种方式,由显示器122和扬声器123呈现的音频和视频数据可以同时由显示器162和扬声器163呈现。可以将音频数据和视频数据排列在帧中,并且当呈现时,音频帧可以与视频帧时间同步。
音频/视频编码器124和音频/视频解码器164可以实现任意数量的音频和视频压缩标准,诸如ITU-T H.264标准(或者称为MPEG-4,部分10)、高级视频编码(AVC)或新出现的高效率视频编码(HEVC)标准(有时称为H.265标准)。还可以使用许多其它类型的私有的或标准化的压缩技术。总的来说,音频/视频编码器164配置为执行音频/视频编码器124的互易编码操作。虽然没有在图1A中示出,但在一些方面,A/V编码器124和A/V解码器164均可以与音频编码器和解码器集成,并可以包括适当的MUX-DEMUX(复用-解复用)单元或其它硬件和软件,以处理对公共数据流或单独数据流中的音频和视频二者的编码。
如同下面将会更加详细描述的,除了实现如上所述的视频压缩标准之外,A/V编码器124还可以执行其它的编码功能。例如,在将A/V数据121发送到宿设备160之前,A/V编码器124可以向A/V数据121添加各种类型的元数据。在一些情况下,可以以编码的形式将A/V数据121存储在源设备120或者在源设备120处接收A/V数据121,从而不需要由A/V编码器124进一步压缩。
尽管图1A示出了单独携带音频有效载荷数据和视频有效载荷数据的通信信道150,但应当理解的是,在某些情况下,视频有效载荷数据和音频有效载荷数据可以是公共数据流的一部分。如果适用,MUX-DEMUX单元可以遵循ITU H.223复用器协议或者诸如用户数据报协议(UDP)之类的其它协议。音频/视频编码器124和音频/视频解码器164均可以实现为一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、分立逻辑器件、软件、硬件、固件或其任意组合。可以将音频/视频编码器124和音频/视频解码器164中的每一个包括在一个或多个编码器或解码器中,可以将其中任何一个集成为组合的编码器/解码器(CODEC)的一部分。因此,源设备120和宿设备160中的每一个可以包括配置为执行本公开内容的技术中的一个或多个技术的专用机器。
显示器122和显示器162可以包括各种视频输出设备中的任何一种,诸如阴极射线管(CRT)、液晶显示器(LCD)、等离子显示器、发光二极管(LED)显示器、有机发光二极管(OLED)显示器、或其它类型的显示设备。在这些或其它示例中,显示器122和162均可以是发射式显示器或透射式显示器。显示器122和162还可以是触摸显示器,使得它们同时既是输入设备也是显示设备。这类触摸显示屏可以是电容式、电阻式或允许用户向各自的设备提供用户输入的其它类型的触摸面板。
扬声器123可以包括各种音频输出设备中的任何一种,诸如头戴式耳机、单扬声器系统、多扬声器系统或环绕声系统。此外,虽然将显示器122和扬声器123示为源设备120的一部分并且将显示器162和扬声器163示为宿设备160的一部分,但源设备120和宿设备160实际上可以是设备系统。作为一个示例,显示器162可以是电视机,扬声器163可以是环绕声系统,并且解码器164可以是有线或无线地连接到显示器162和扬声器163的外箱的一部分。在其它情况下,宿设备160可以是诸如平板电脑或智能电话之类的单个设备。在其它情况下,源设备120和宿设备160是类似的设备,例如,二者都是智能手机、平板电脑等。在这种情况,一个设备可以作为源来进行操作,而另一个设备可以作为宿来进行操作。在后续的通信会话中,这些角色可以甚至反转。在其它情况下,源设备可以包括诸如智能电话、膝上型计算机或平板电脑之类的移动设备,并且宿设备可以包括更加静态的设备(例如,具有AC电源线),在这种情况下,源设备可以经由宿设备传送音频和视频数据以便向较大的人群进行呈现。
发射机/接收机单元126和发射机/接收机单元166均可以包括各种混频器、滤波器、放大器和设计用于信号调制的其它组件,以及一个或多个天线和设计用于发送和接收数据的其它组件。通信信道150通常表示用于从源设备120向宿设备160发送视频数据的任何合适的通信介质或不同通信介质的集合。通信信道150通常是相对短距离的通信信道,类似于Wi-Fi、蓝牙等。然而,通信信道150并不必限于此方面,而可以包括任何无线或有线的通信介质(诸如射频(RF)频谱或一个或多个物理传输线)或者无线和有线介质的任意组合。在其它的示例中,通信信道150甚至可以组成基于分组的网络(诸如有线或无线局域网、广域网或诸如因特网的全球性网络)的一部分。此外,通信信道150可以由源设备120和宿设备160用来创建对等链路。源设备120和宿设备160可以使用诸如来自IEEE802.11标准族的标准的通信协议在通信信道150上进行通信。例如,源设备120和宿设备160可以根据Wi-Fi直接标准进行通信,使得源设备120和宿设备160在不使用诸如无线接入点或所谓的热点的媒介的情况下直接彼此相互通信。源设备120和宿设备160还可以建立隧道式直接链路建立(TLDS)以避免或减少网络拥塞。有时可以参照Wi-Fi来描述本公开内容的技术,但应当设想的是,这些技术的各方面还可以与其它通信协议兼容。通过举例而非限定的方式,源设备120和宿设备之间的无线通信可以使用正交频分复用技术(OFDM)技术。也可以使用各种各样的其它无线通信技术,包括但不限于时分多址(TDMA)、频分多址(FDMA)、码分多址(CDMA)或OFDM、FDMA、TDMA和/或CDMA的任意组合。WiFi直接和TDLS旨在建立相对短距离的通信会话。在该上下文中,相对短距离可以指例如小于70米,尽管在嘈杂或阻挡的环境中,设备之间的距离甚至可能更短,诸如小于35米。
除了对从源设备120接收的数据进行解码和呈现之外,宿设备160还可以从用户输入设备167接收用户输入。例如,用户输入设备167可以是键盘、鼠标、轨迹球或轨迹板、触摸屏、语音命令识别模块或任何其它这种用户输入设备。UIPM将由用户输入设备167接收到的用户输入命令格式化成源设备120能够解释的数据分组结构。由发射机/接收机166在通信信道150上将这些数据分组发送给源设备120。发射机/接收机单元126接收该数据分组,并且A/V控制模块125对该数据分组进行解析以解释由用户输入设备167接收的用户输入命令。基于在数据分组中接收的命令,A/V控制模块125可以改变进行编码和发送的内容。以这种方式,宿设备160的用户可以远程地对由源设备120发送的音频有效载荷数据和视频有效载荷数据进行控制,而不直接地与源设备120进行交互。宿设备160的用户可以向源设备120发送的命令的类型的示例包括用于倒回、快进、暂停和播放音频和视频数据的命令,以及用于缩放、旋转、滚动等的命令。例如,用户还可以从选项菜单中进行选择,并且将该选择发送回源设备120。
此外,宿设备160的用户能够启动和控制源设备120上的应用。例如,宿设备160的用户能够启动存储在源设备120上的照片编辑应用,并且使用该应用对本地存储在源设备120上的照片进行编辑。宿设备160可以向用户呈现看起来以及感觉上是在宿设备160上对图片进行本地编辑的用户体验,而实际上是在源设备120上对图片进行编辑。使用这样的配置,设备用户能够将一个设备的能力用于若干设备。例如,源设备120可以是具有大量存储器和高端处理能力的智能电话。源设备120的用户可以在智能电话通常所使用的所有设置和情况中使用该智能电话。然而,当观看电影时,用户可能希望在具有较大显示屏幕的设备上观看电影,在这种情况下,宿设备160可以是平板电脑或者甚至是较大的显示设备或电视机。当想要发送或回复电子邮件时,用户可能希望使用具有键盘的设备,在这种情况下,宿设备160可以是膝上型计算机。在上述两种情况下,尽管用户正在与宿设备进行交互,但大多数处理可以仍然由源设备120(在该示例中是智能电话)来执行。在该特定的操作上下文中,由于大多数操作是由源设备120执行的,因此如果要求宿设备160执行正由源设备120进行的处理,则宿设备160可以是具有相比之下较少资源的较低成本的设备。在一些示例中,源设备和宿设备二者都能够接受用户输入(诸如触摸屏命令),并且本公开内容的技术可以通过在任何给定的会话中对设备的能力进行协商和或识别来促进双向交互。
在一些配置中,A/V控制模块125可以是正由源设备125的操作系统执行的操作系统过程。然而,在其它配置中,A/V控制模块125可以是运行在源设备120上的应用的软件过程。在这种配置中,用户输入命令可以由软件过程进行解释,以使得宿设备160的用户直接与运行在源设备120上的应用而不是运行在源设备120上的操作系统进行交互。通过直接与应用而不是操作系统进行交互,宿设备160的用户可以有权访问不是源设备120的操作系统本地的命令库。此外,直接与应用进行交互可以使得命令能够被运行在不同平台上的设备更容易地进行发送和处理。
源设备120可以对在无线宿设备160处应用的用户输入进行响应。在这种交互式应用设置中,可以在通信信道150上将在无线宿设备160处应用的用户输入发送回无线显示源。在一个示例中,可以实现反向信道架构(还称为用户接口返回信道(UIBC))以使得宿设备160能够向源设备120发送在宿设备160处应用的用户输入。反向信道架构可以包括用于传送用户输入的上层消息和用于对宿设备160和源设备120处的用户接口能力进行协商的下层帧。UIBC可以位于宿设备160和源设备120之间的因特网协议(IP)传输层。以这种方式,UIBC可以在开放系统互联(OSI)通信模型中的传输层之上。在一个示例中,OSI通信包括七层(1-物理、2-数据链路、3-网络、4-传输、5-会话、6-表示和7-应用)。在该示例中,在传输层之上指的是层5、6和7。为了提升可靠的传输以及对包含用户输入数据的数据分组的顺序递送,UIBC可以配置为在其它基于分组的通信协议(诸如传输控制协议/因特网协议(TCP/IP)或用户数据报协议(UDP))的顶部运行。UDP和TCP可以在OSI层架构中并行操作。TCP/IP可以使宿设备160和源设备120能够在分组丢失的情况下实现重传技术。
在一些情况下,可能在位于源设备120和宿设备160处的用户输入接口之间存在失配。为了解决由这种失配导致的潜在问题以及在这些情况下提升良好的用户体验,可以在建立通信会话之前或者在贯穿通信会话的各个时刻,在源设备120和宿设备160之间进行用户输入接口能力协商。作为该协商过程的一部分,源设备120和宿设备160可以就协商的屏幕分辨率达成一致。当宿设备160发送与用户输入相关联的坐标数据时,宿设备160可以对从显示器162获得的坐标数据进行缩放,以匹配所协商的屏幕分辨率。在一个示例中,如果宿设备160具有1280x720的分辨率,而源设备120具有1600x900的分辨率,则设备可以例如使用1280x720作为其协商的分辨率。尽管还可以使用源设备120的分辨率或一些其它的分辨率,但是可以基于宿设备160的分辨率来选择协商的分辨率。在使用1280x720的宿设备的示例中,宿设备160可以在向源设备120发送坐标之前,以1600/1280为因子对所获得的x坐标进行缩放,并且同样地,宿设备160可以在向源设备120发送坐标之前,以900/720对所获得的y坐标进行缩放。在其它配置中,源设备120可以将获得的坐标缩放到所协商的分辨率。进行缩放可以是基于宿设备160是否使用比源设备120更高的分辨率显示器,来增加或减少坐标范围,或反之亦然。
此外,在一些实例中,宿设备160处的分辨率可能在通信会话期间发生改变,从而潜在地导致显示器122和显示器162之间的失配。为了改善用户体验以及确保适当的功能,源/宿系统100可以通过实现用于屏幕归一化的技术来实现用于减少或防止用户交互失配的技术。源设备120的显示器122和宿设备160的显示器162可以具有不同的分辨率和/或不同的屏幕高宽比。此外,在一些设置中,宿设备160的用户可以具有针对从源设备120接收的视频数据来调整显示窗口大小的能力,以使得在覆盖少于宿设备160的显示器162的全部的窗口中呈现从源设备120接收的视频数据。在另一种示例设置中,宿设备160的用户可以具有以横向模式或竖向模式观看内容的选择,每种模式具有独特的坐标和不同的屏幕高宽比。在这些情况下,与在宿设备160处接收的用户输入相关联的坐标(诸如鼠标点击或触摸事件发生处的坐标)可能无法由源设备120在没有对坐标进行修改的情况下进行处理。因此,本公开内容的技术可以包括将在宿设备160处接收的用户输入的坐标映射到与源设备120相关联的坐标。在本文中,该映射还称为归一化,并且下面将对该映射进行更加详细的解释,该映射可以是基于宿的或基于源的。
由宿设备160接收的用户输入可以由UI模块167接收(例如,在驱动程序层),并被传递给宿设备160的操作系统。宿设备160上的操作系统可以接收与在显示器表面发生用户输入处相关联的坐标(xSINK,ySINK)。在这个示例中,(xSINK,ySINK)可以是发生鼠标点击或触摸事件处的显示器162的坐标。呈现在显示器162上的显示窗口可以具有描述该显示窗口的大小的x-坐标长度(LDW)和y-坐标宽度(WDW)。该显示窗口还可以具有描述该显示窗口的位置的左上角坐标(aDW,bDW)。基于LDW、WDW和左上坐标(aDW,bDW),可以确定显示器162被显示窗口覆盖的部分。例如,显示窗口的右上角可以位于坐标(aDW+LDW,bDW),显示窗口的左下角可以位于坐标(aDW+LDW,bDW+WDW),而显示窗口的右下角可以位于坐标(aDW+LDW,bDW+WDW)。如果输入是在显示窗口内的坐标处接收到的,则宿设备160可以将该输入作为UIBC输入进行处理。换句话说,如果满足下面的条件,则可以将与坐标(xSINK,ySINK)相关联的输入作为UIBC输入进行处理:
aDW≤xSINK≤aDW+LDW (1)
bDW≤ySINK≤bDW+WDW (2)
在确定用户输入是UIBC输入之后,在被发送到源设备120之前,UIPM168可以对与该输入相关联的坐标进行归一化。被确定是在显示窗口之外的输入可以由宿设备160本地作为非UIBC输入进行处理。
如同上面所提到的,输入坐标的归一化可以是基于源的或基于宿的。当实现基于源的归一化时,源设备120可以将显示器122所支持的显示分辨率(LSRC,WSRC)与视频数据一起或独立于视频数据发送到宿设备160。例如,可以将所支持的显示分辨率作为能力协商会话的一部分进行发送或者可以在通信会话期间的另一时刻来进行发送。宿设备160可以确定显示器162的显示分辨率(LSINK,WSINK)、显示从源设备120接收的内容的窗口的显示窗口分辨率(LDW,WDW)、以及该显示窗口的左上角坐标(aDW,bDW)。如上所述,当确定与用户输入相对应的坐标(xSINK,ySINK)在显示窗口内时,宿设备160的操作系统可以使用转换函数将坐标(xSINK,ySINK)映射到源坐标(xSRC,ySRC)。用于将(xSINK,ySINK)转换成(xSRC,ySRC)的示例转换函数可以如下:
xSRC=(xSINK-aDW)*(LSRC/LDW) (3)
ySRC=(ySINK-bDW)*(WSRC/WDW) (4)
因此,当发送与接收的用户输入相对应的坐标时,宿设备160可以发送在(xSINK,ySINK)处接收的用户输入的坐标(xSRC,ySRC)。如同下面将要更加详细描述的,例如,可以将坐标(xSRC,ySRC)作为用于在UIBC上向源设备120发送在宿设备160处接收的用户输入的数据分组的一部分来进行发送。贯穿将输入坐标描述为包括在数据分组中的本公开内容的其它部分,如同上面在源/宿系统100实现基于宿的归一化的实例中所描述的,可以将那些坐标转换成源坐标。
当源/宿系统100实现基于宿的归一化时,对于确定是UIBC输入而不是本地输入的用户输入(即,在显示窗口内而不是在显示窗口外),可以在源设备120处而不是在宿设备160处执行上面的计算。为了促进这些计算,宿设备160可以向源设备120发送LDW、WDW的值和显示窗口的位置信息(例如,aDW、bDW),以及(xSINK,ySINK)的坐标。使用这些所发送的值,源设备120可以根据上面的公式3和4来确定(xSRC,ySRC)的值。
在基于宿的归一化的其它实现中,宿设备160可以发送描述用户输入事件发生在显示窗口内的位置而不是用户输入事件发生在显示器162上的位置的用户输入的坐标(xDW,yDW)。在这样的实现中,可以将坐标(xDW,yDW)连同(LDW,WDW)的值发送到源设备120。基于这些接收的值,源设备120可以根据下列转换函数来确定(xSRC,ySRC):
xSRC=xDW*(LSRC/LDW) (5)
ySRC=yDW*(WSRC/WDW) (6)
宿设备160可以基于下列函数来确定xDW和yDW:
xDW=xSINK-aDW (7)
yDW=ySINK-bDW (8)
当本公开内容描述例如在数据分组中发送与用户输入相关联的坐标时,这些坐标的发送可以包括如上所述的基于宿或基于源的归一化,和/或可以包括用于执行基于宿或基于源的归一化所必需的任何额外信息。
可以将UIBC设计为传送各种类型的用户输入数据,包括跨平台用户输入数据。例如,源设备120可以运行操作系统,而宿设备160运行诸如或之类的另一操作系统。无论什么平台,UIPM168可以以A/V控制模块125可理解的形式对接收的用户输入进行封装。UIBC可以支持多种不同类型的用户输入格式,以便允许许多不同类型的源设备和宿设备利用协议,而不论源设备和宿设备是否在不同的平台上操作。可以定义通用输入格式,并且可以同时支持特定于平台的输入格式,从而以通过UIBC在源设备120和宿设备160之间传送用户输入的方式提供灵活性。
在图1A的示例中,源设备120可以包括智能电话、平板电脑、膝上型计算机、桌面型计算机、支持Wi-Fi的电视、或能够发送音频和视频数据的任何其它设备。宿设备160可以同样地包括智能电话、平板电脑、膝上型计算机、桌面型计算机、支持Wi-Fi的电视、或能够接收音频和视频数据以及接收用户输入数据的任何其它设备。在一些情况下,宿设备160可以包括设备的系统,使得显示器162、扬声器163、UI设备167和A/V编码器164所有部分分离但是可互操作的设备。源设备120同样可以是设备的系统,而不是单个设备。
在本公开内容中,术语源装置一般用于指发送音频/视频数据的设备,并且术语宿设备一般用于指从源设备接收音频/视频数据的设备。在许多情况下,源设备120和宿设备160可以是相似或相同的设备,一个设备作为源进行操作而另一个设备作为宿进行操作。此外,在不同的通信会话中这些角色可以颠倒。因此,一个通信会话中的宿设备可以在后来的通信会话中变成源设备,或反之亦然。
图1B是示出可以实现本公开内容的技术的示例性源/宿系统101的框图。源/宿系统101包括源设备120和宿设备160,源设备120和宿设备160中的每一个可以以上面针对图1A所描述的方式运行和操作。源/宿系统101还包括宿设备180。宿设备180可以以与上面描述的宿设备160类似的方式在建立的UIBC上从源设备120接收音频和视频数据,并且向源设备120发送用户命令。在一些配置中,宿设备160和宿设备180可以彼此独立地进行操作,并且在源设备120处输出的音频和视频数据可以同时在宿设备160和宿设备180处输出。在替代配置中,宿设备160可以是主宿设备,而宿设备180可以是辅宿设备。在这种示例配置中,宿设备160和宿设备180可以相耦合,并且宿设备160可以显示视频数据而宿设备180输出相对应的音频数据。此外,在一些配置中,宿设备160可以仅输出发送的视频数据,而宿设备180可以仅输出发送的音频数据。
图2是示出源设备220的一个示例的框图。源设备220可以是与图1A中的源设备120类似的设备,并且可以以与源设备120相同的方式进行操作。源设备220包括本地显示器222、本地扬声器223、处理器231、存储器232、传输单元233和无线调制解调器234。如图2中所示,源设备220可以包括对A/V数据进行编码和/或解码以便进行传输、存储和显示的一个或多个处理器(即,处理器231)。例如,可以将A/V数据存储在存储器232处。存储器232可以存储完整的A/V文件,或者可以包括只存储(例如,从另一设备或源流式传输的)A/V文件的一部分的较小的缓冲器。传输单元233可以对经编码的A/V数据进行处理以便进行网络传输。例如,经编码的A/V数据可以由处理器231进行处理,并且由传输单元233封装成网络接入层(NAL)单元以便进行跨网络通信。可以由无线调制解调器234经由网络连接将NAL单元发送到无线宿设备。无线调制解调器234可以是例如配置为实现IEEE802.11标准族之一的Wi-Fi调制解调器。
源设备220还可以对A/V数据进行本地处理和显示。具体而言,显示处理器235可以对要在本地显示器222上显示的视频数据进行处理,音频处理器236可以对音频数据进行处理以便在扬声器223上输出。
如上面参照图1A的源设备120所描述的,源设备220还可以从宿设备接收用户输入。以这种方式,源设备220的无线调制解调器234接收诸如NAL单元之类的封装的数据分组,并且将该封装的数据单元发送给传输单元233以便进行解封装。例如,传输单元233可以从NAL单元提取数据分组,并且处理器231可以对该数据分组进行解析以提取用户输入命令。基于该用户输入命令,处理器231可以对由源设备220发送到宿设备的经编码的A/V数据进行调整。以这种方式,可以由处理器231完整地或部分地实现上面参照图1A的A/V控制模块125所描述的功能。
图2的处理器231通常表示各种处理器中的任何一种,包括但不限于一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)、其它等效的集成或分立逻辑电路、或其某种组合。图2的存储器232可以包括各种易失性或非易失性存储器中的任何一种,包括但不限于诸如同步动态随机存取存储器(SDRAM)之类的随机存取存储器(RAM)、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、电可擦除可编程只读存储器(EEPROM)、闪存等。存储器232可以包括用于存储音频/视频数据以及其它类型数据的计算机可读存储介质。存储器232可以另外地存储由处理器231作为执行本公开内容中描述的各种技术的一部分而执行的指令和程序代码。
图3示出了宿设备360的一个示例。宿设备360可以是与图1A中的宿设备160类似的设备,并且可以以与宿设备160相同的方式进行操作。宿设备360包括一个或多个处理器(即,处理器331)、存储器332、传输单元333、无线调制解调器334、显示处理器335、本地显示器362、音频处理器336、扬声器363以及用户输入接口376。宿设备360在无线调制解调器334处接收从源设备发送的封装的数据单元。无线调制解调器334可以是例如配置为实现IEEE802.11标准族中的一个或多个标准的Wi-Fi调制解调器。传输单元333可以对封装的数据单元进行解封装。例如,传输单元333可以从封装的数据单元中提取经编码的视频数据,并且将经编码的A/V数据发送到处理器331以进行解码和呈现,以便输出。显示处理器335可以对要在本地显示器362上显示的经解码的视频数据进行处理,并且音频处理器336可以对经解码的音频数据进行处理以便在扬声器363上输出。
除了呈现音频和视频数据以外,无线宿设备360还可以通过用户输入接口376接收用户输入数据。用户输入接口376可以表示多个用户输入设备中的任何一个,包括但不限于:触摸显示接口、键盘、鼠标、语音命令模块、手势捕捉设备(例如,具有基于照相机的输入捕捉能力)或者多个用户输入设备中的任何其它设备。可以由处理器331对通过用户输入接口376接收的用户输入进行处理。该处理可以包括根据本公开内容中描述的技术来生成包括接收的用户输入命令的数据分组。一旦生成,传输单元333可以对这些数据分组进行处理以便在UIBC上网络传输到无线源设备。
图3的处理器331可以包括范围广泛的处理器中的一个或多个,诸如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)、其它等效的集成或分立逻辑电路、或其某种组合。图3的存储器332可以包括各种易失性或非易失性存储器中的任何一种,包括但不限于:诸如同步动态随机存取存储器(SDRAM)之类的随机存取存储器(RAM)、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、电可擦除可编程只读存储器(EEPROM)、闪存等。存储器232可以包括用于存储音频/视频数据以及其它类型数据的计算机可读存储介质。存储器332还可以存储由处理器331作为执行本公开内容中描述的各种技术的一部分而执行的指令和程序代码。
图4示出了示例发射机系统410和接收机系统450的框图,发射机系统410和接收机系统450可以由图1A中的发射机/接收机126和发射机/接收机166用于在通信信道150上进行通信。在发射机系统410处,从数据源412向发射(TX)数据处理器414提供针对多个数据流的业务数据。可以在相应的发射天线上发送每个数据流。TX数据处理器414基于针对每个数据流所选择的特定的编码方案来对每个数据流的业务数据进行格式化、编码和交织。
可以使用正交频分复用(OFDM)技术将每个数据流的经编码的数据与导频数据进行复用。还可以使用各种其它无线通信技术,包括但不限于时分多址(TDMA)、频分多址(FDMA)、码分多址(CDMA)或OFDM、FDMA、TDMA和/或CDMA的任意组合。
与图4一致地,导频数据通常是以已知方式处理的已知数据模式,并且可以在接收机系统处用来估计信道响应。然后,可以基于针对每个数据流选择的特定调制方案(例如,二进制相移键控(BPSK)、正交相移键控(QPSK)、M-PSK、或M-QAM(正交幅度调制),其中M可以是2的幂)来对经复用的导频和数据流的经编码的数据进行调制(例如,符号映射)以提供调制符号。每个数据流的数据速率、编码和调制可以通过由处理器430执行的指令来确定,其中处理器430可以与存储器432耦合。
然后,将数据流的调制符号提供给TX MIMO处理器420,TX MIMO处理器420可以对该调制符号进行进一步处理(例如,针对OFDM)。然后,TX MIMO处理器420可以向NT个发射机(TMTR)422a至422t提供NT个调制符号流。在某些方面,TX MIMO处理器420将波束成形权重应用于数据流的符号以及发送该符号的天线。
每个发射机422可以接收并处理相应的符号流以提供一个或多个模拟信号,并且进一步调节(例如,放大、滤波和上变频)该模拟信号以提供适合于在MIMO信道上传输的经调制的信号。然后,分别从NT个天线424a至424t发送来自发射机422a至422t的NT个经调制的信号。
在接收机系统450处,通过NR个天线452a至452r来接收所发送的经调制的信号,并且将来自每个天线452的接收信号提供给相应的接收机(RCVR)454a至454r。接收机454调节(例如,滤波、放大和下变频)各自的接收信号,对经调节的信号进行数字化以提供采样,并且进一步处理该采样以提供相对应的“接收的”符号流。
然后,接收(RX)数据处理器460可以接收并基于特定的接收机处理技术来处理来自NR个接收机454的NR个接收的符号流,以提供NT个“检测的”符号流。然后,RX数据处理器460可以对每个检测的符号流进行解调、解交织、和解码,以恢复数据流的业务数据。由RX数据处理器460进行的处理与由发射机系统410处的TX MIMO处理器420和TX数据处理器414执行的处理是互补的。
可以与存储器472耦合的处理器470周期性地确定使用哪个预编码矩阵。反向链路消息可以包括与通信链路和/或接收的数据流有关的各种类型的信息。然后,反向链路消息由TX数据处理器438进行处理(TX数据处理器438还从数据源436接收多个数据流的业务数据),由调制器480进行调制,由发射机454a至454r进行调节,并且被发送回发射机系统410。
在发射机系统410处,来自接收机系统450的经调制的信号由天线424接收,由接收机422进行调节,由解调器440进行解调,并且由RX数据处理器442进行处理,以提取由接收机系统450发送的反向链路消息。然后,处理器430确定使用哪个预编码矩阵来确定波束成形权重,然后对所提取的消息进行处理。
图5A是示出在源设备520和宿设备560之间作为能力协商会话的一部分的示例消息传输顺序的框图。能力协商可以作为源设备520和宿设备560之间的较大的通信会话建立过程的一部分来进行。例如,可以使用Wi-Fi直接或TDLS作为基础连接性标准来建立该会话。在建立Wi-Fi直接或TDLS会话之后,宿设备560可以发起与源设备520的TCP连接。作为建立TCP连接的一部分,可以建立运行实时流式传输协议(RTSP)的控制端口,以对源设备520和宿设备560之间的通信会话进行管理。
源设备520通常可以以与上面针对图1A的源设备120所描述的相同的方式来进行操作,并且宿设备560通常可以以与上面针对图1A的宿设备160所描述的相同的方式来进行操作。在源设备520和宿设备560建立连接性之后,源设备520和宿设备560可以确定用于其后续通信会话的参数集合,作为能力协商交换的一部分。
源设备520和宿设备560可以通过一系列消息来协商能力。这些消息可以是例如实时流式传输协议(RTSP)消息。在协商的任意阶段,RTSP请求消息的接收方可以使用除了RTSP OK之外还包括RTSP状态代码的RTSP响应来进行响应,在这种情况下,可以使用不同的参数集合来重试消息交换,或者可以结束能力协商会话。
源设备520可以向宿设备560发送第一消息(RTSP选择请求消息),以便确定宿设备560支持的RTSP方法集合。在从源设备520接收到第一消息后,宿设备560可以使用第二消息(RTSP选择响应消息)来进行响应,该第二消息列出了由宿560支持的RTSP方法。该第二消息还可以包括RTSP OK状态代码。
在向源设备520发送第二消息之后,宿设备560可以发送第三消息(RTSP选择请求消息)以便确定源设备520支持的RTSP方法集合。在从宿设备560接收到第三消息后,源设备520可以使用第四消息(RTSP选择响应消息)来进行响应,该第四消息列出了由源设备520支持的RTSP方法。该第四消息还可以包括RTSP OK状态代码。
在发送第四消息之后,源设备520可以发送第五消息(RTSP获得_参数请求消息)来指定源设备520所感兴趣的能力的列表。宿设备560可以使用第六消息(RTSP获得_参数响应消息)来进行响应。该第六消息可以包含RTSP状态代码。如果RTSP状态代码是OK,则该第六消息还可以包括针对在第五消息中指定的由宿设备560所支持的参数的响应参数。宿设备560可以忽略第五消息中宿设备560不支持的参数。
基于第六消息,源520可以确定用于通信会话的最优参数集合,并且可以向宿设备560发送第七消息(RTSP设置_参数请求消息)。该第七消息可以包含要在源设备520和宿设备560之间的通信会话期间使用的参数集合。该第七消息可以包括描述要在RTSP建立请求中使用的通用资源标识符(URI)的wfd-presentation-url,以便建立该通信会话。wfd-presentation-url指定在会话建立交换期间宿设备560可以针对后来的消息使用的URI。该参数中指定的wfd-url0和wfd-url1的值可以与第七消息中的wfd-client-rtp-ports中的rtp-port0和rtp-port1值相对应。在该情况下,RTP通常指的是可以在UDP之上运行的实时协议。
在接收到第七消息后,宿设备560可以使用具有RTSP状态代码的第八消息来进行响应,该RTSP状态代码指示按照第七消息中指定的对参数的设置是否成功。所上面所提到的,在不同的会话中,角色或源设备和宿设备可以反转或变化。在一些情况下,建立通信会话的消息的顺序可以定义作为源进行操作的设备并且定义作为宿进行操作的设备。
图5B是示出在源设备560和宿设备520之间作为能力协商会话的一部分的另一示例消息传输顺序的框图。图5B的消息传输顺序旨在提供上面针对图5A描述的传输顺序的更详细的视图。在图5B中,消息“1b.获得_参数响应”示出了标识所支持的输入类别(例如,通用和HIDC)的列表和所支持的输入类型的多个列表的消息的示例。所支持的输入类别的列表中的每一个所支持的输入类别具有相关联的所支持的类型(例如,generic_cap_list和hidc_cap_list)的列表。在图5B中,消息“2a.设置_参数请求”是标识所支持的输入类别(例如,通用和HIDC)的第二列表和所支持的类型的多个第二列表的第二消息的示例。所支持的输入类别的第二列表中的每一个所支持的输入类别具有相关联的所支持的类型(例如,generic_cap_list和hidc_cap_list)的第二列表。消息“1b.获得_参数响应”标识由宿设备560所支持的输入类别和输入类型。消息“2a.设置_参数请求”标识由源设备520所支持的输入类别和输入类型,但其可以不是由源设备520所支持的所有输入类别和输入类型的全面的列表。而是,消息“2a.设置_参数请求”可以仅标识在消息“1b.获得_参数响应”中标识为由宿设备560所支持的那些输入类别和输入类型。以这种方式,在消息“2a.设置_参数请求”中标识的输入类别和输入类型可以构成在消息“1b.获得_参数响应”中标识的输入类别和输入类型的子集。
图6是示出可以由宿设备生成并被发送到源设备的数据分组的一个示例的概念图。将参照图1A对数据分组600的各方面进行解释,但是所讨论的技术可以应用于另外类型的源/宿系统。数据分组600可以包括数据分组报头610,数据分组报头610后接着有效载荷数据650。有效载荷数据650可以另外包括一个或多个有效载荷报头(例如,有效载荷报头630)。例如,可以将数据分组600从图1A的宿设备160发送到源设备120,以使得宿设备160的用户能够控制由源设备120发送的音频/视频数据。在这样的情况下,有效载荷数据650可以包括在宿设备160处接收的用户输入数据。例如,有效载荷数据650可以标识一个或多个用户命令。宿设备160可以接收该一个或多个用户命令,并且基于所接收的命令可以生成数据分组报头610和有效载荷数据650。基于数据分组600的数据分组报头610的内容,源设备120可以对有效载荷数据650进行解析,以识别在宿设备160处接收的用户输入数据。基于在有效载荷数据650中所包含的用户输入数据,源设备120可以以某种方式改变从源设备120发送到宿设备160的音频和视频数据。
如本公开内容中所使用的,术语“解析”和“进行解析”通常指的是对比特流进行分析以从该比特流中提取数据的过程。一旦被提取,例如,可以由源设备120对该数据进行处理。例如,提取数据可以包括识别该比特流中的数据是如何被格式化的。如下面将要更详细描述的,数据分组报头610可以定义对源设备120和宿设备160二者皆已知的标准化格式。然而,可以以许多可能的方式中的一种方式对有效载荷数据650进行格式化。通过对数据分组报头610进行解析,源设备120可以确定有效载荷数据650是如何被格式化的,并且从而,源设备120可以对有效载荷数据650进行解析,以从有效载荷数据650中提取一个或多个用户输入命令。这可以在源-宿通信中所支持的不同类型的有效载荷数据方面提供灵活性。如下面将要更详细描述的,有效载荷数据650还可以包括诸如有效载荷报头630之类的一个或多个有效载荷报头。在这些情况下,源设备120可以对数据分组报头610进行解析以确定有效载荷报头630的格式,并且然后对有效载荷报头630进行解析以确定有效载荷数据650的剩余部分的格式。
图620是关于可以如何对数据分组报头610进行格式化的概念性描述。行615中的数字0-15旨在用来标识数据分组报头610内的比特位置,而并非旨在实际地表示数据分组报头610内包含的信息。数据分组报头610包括版本字段621、时间戳标志622、保留字段623、输入类别字段624、长度字段625和可选的时间戳字段626。
在图6的示例中,版本字段621是3比特字段,其可以指示由宿设备160实现的特定通信协议的版本。版本字段621中的值可以告知源设备120如何对数据分组报头610的剩余部分进行解析,以及如何对有效载荷数据650进行解析。在图6的示例中,版本字段621是3比特字段,其能够实现针对8种不同版本的唯一标识符。在其它示例中,更多或更少的比特可以专门用于版本字段621。
在图6的示例中,时间戳标志(T)622是1比特字段,其指示在数据分组报头610中是否存在时间戳字段626。时间戳字段626是16比特字段,其包含基于由源设备120生成并被发送到宿设备160的多媒体数据的时间戳的。例如,该时间戳可以是在将视频帧发送到宿设备160之前由源设备120分配给该帧的顺序值。时间戳标志622可以例如包括用于指示存在时间戳字段626的“1”,并且可以包括用于指示不存在时间戳字段626的“0”。在对数据分组报头610进行解析并确定存在时间戳字段626后,源设备120可以对包括在时间戳字段626中的时间戳进行处理。在对数据分组报头610进行解析并且确定不存在时间戳字段626后,由于在数据分组报头610中不存在时间戳字段,因此源设备120可以在对长度字段625进行解析之后开始对有效载荷数据650进行解析。
如果存在,时间戳字段626可以包括用于标识当获得有效载荷数据650的用户输入数据时在无线宿设备160处显示的视频数据帧的时间戳。例如,在源设备120将该视频帧发送到宿设备160之前,可以由源设备120已将该时间戳添加到该视频帧。因此,源设备120可以生成视频帧并且在该帧的视频数据中嵌入时间戳(例如作为元数据)。源设备120可以向宿设备160发送具有时间戳的视频帧,并且宿设备160可以显示该视频帧。当由宿设备160显示该视频帧时,宿设备160可以从用户接收用户命令。当宿设备160生成数据分组以向源设备120传送该用户命令时,宿设备160可以将当接收到该用户命令时由宿设备160显示的帧的时间戳包括在时间戳字段626中。
在接收到具有存在于报头中的时间戳字段626的数据分组600后,无线源设备120可以识别在获得有效载荷数据650的用户输入数据时在宿设备160处显示的视频帧,并且可以基于由时间戳标识的帧的内容来对用户输入数据进行处理。例如,如果用户输入数据是应用于触摸显示器的触摸命令或鼠标指针的点击,则源设备120可以确定当用户向显示器应用触摸命令或者点击鼠标时所显示的帧的内容。在一些情况下,可能需要帧的内容来对有效载荷数据进行适当的处理。例如,基于用户触摸或鼠标点击的用户输入可以依赖于当触摸或点击时正在显示器上显示的内容。例如,触摸或点击可以与图标或菜单选项相对应。在显示器的内容发生变化的情况下,可以由源设备120使用时间戳字段626中存在的时间戳来将触摸或点击匹配到正确的图标或菜单选项。
另外地或替代地,源设备120可以将时间戳字段626中的时间戳与应用于当前呈现的视频帧的时间戳进行比较。通过将时间戳字段626中的时间戳与当前时间戳进行比较,源设备120可以确定往返时间。该往返时间通常与从源设备120发送帧的时刻到在源设备120处从宿设备160接收回基于该帧的用户输入的时刻所经过的时间量相对应。该往返时间可以向源设备120提供对系统延时的指示,并且如果该往返时间大于阈值,则在输入命令被应用于过时的显示帧的假设下,源设备120可以忽略包含在有效载荷数据650中的用户输入数据。当该往返时间小于阈值时,源设备120可以对用户输入数据进行处理,并且对响应于该用户输入数据而发送的音频/视频内容进行调整。阈值可以是可编程的,并且不同类型的设备(或者不同的源-宿组合)可以配置为定义可接受的针对往返时间的不同阈值。
在图6的示例中,保留字段623是8比特字段,其不包括由源设备120在对数据分组报头610以及有效载荷数据650进行解析时所使用的信息。然而,(如在版本字段621中所标识的)特定协议的未来版本可以使用保留字段623,在这种情况下,源设备120可以使用保留字段623中的信息来对数据分组报头610进行解析和/或对有效载荷数据650进行解析。保留字段623结合版本字段621潜在地提供了在不对已在使用的格式和特征从根本上进行改变的情况下,对数据分组格式进行扩展和添加特征的能力。
在图6的示例中,输入类别字段624是4比特字段,其用于标识有效载荷数据650中所包含的用户输入数据的输入类别。宿设备160可以对用户输入数据进行分类以确定输入类别。例如,对用户输入数据进行分类可以是基于从其接收到命令的设备或者是基于命令本身的属性的。输入类别字段624的值(可能结合数据分组报头610的其它信息)向源设备120标识有效载荷数据650是如何被格式化的。基于该格式化,源设备120可以对有效载荷数据650进行解析以确定在宿设备160处接收的用户输入。
在图6的示例中,由于输入类别字段624是4比特,因此可以标识16种不同的输入类别。一种这样的输入类别可以是通用输入格式,其指示有效载荷数据650的用户输入数据是使用在由源设备120和宿设备160二者所执行的协议中定义的通用信息元素来进行格式化的。如下面将要更详细描述的,通用输入格式可以使用允许宿设备160的用户在应用层与源设备120进行交互的通用信息元素。
另一这种输入类别可以是人机接口设备命令(HIDC)格式,其指示有效载荷数据650的用户输入数据是基于用于接收该输入数据的输入设备的类型来进行格式化的。设备的类型的示例包括:键盘、鼠标、触摸输入设备、操纵杆、照相机、手势捕获设备(诸如基于照相机的输入设备)以及远程控制。可以在输入类别字段624中标识的其它类型的输入类别包括:指示有效载荷数据650中的用户输入数据不是来源于宿设备160的转发输入格式、或者特定于操作系统的格式、以及指示有效载荷数据650包括语音命令的语音命令格式。
长度字段625可以包括用于指示数据分组600的长度的16比特字段。例如,可以以8比特为单位来指示该长度。由于数据分组600是由源设备120以16比特的字进行解析的,因此可以对数据分组600进行填充以达到16比特的整数倍。基于长度字段625中包含的长度,源设备120可以识别有效载荷数据650的结束(即数据分组600的结束)和新的后续的数据分组的开始。
图6的示例中提供的字段的各种大小仅旨在是解释性的,并且旨在可以使用与图6中示出的不同数量的比特来实现这些字段。此外,还可以设想的是,数据分组报头610可以包括比上面所讨论的所有字段更少的字段或者可以使用上面没有讨论的额外的字段。当然,在用于分组中的各个数据字段的实际格式方面,本公开内容的技术可以是灵活的。
在对数据分组报头610进行解析以确定对有效载荷数据650的格式化之后,源设备120可以对有效载荷数据650进行解析以确定有效载荷数据650中包含的用户输入命令。有效载荷数据650可以具有其自己的有效载荷报头(有效载荷报头630),其指示有效载荷数据650的内容。以这种方式,源设备120可以基于对数据分组报头610的解析来对有效载荷报头630进行解析,并且然后可以基于对有效载荷报头630的解析来对有效载荷数据650进行解析。
例如,如果数据分组报头610的输入类别字段624指示在有效载荷数据650中存在通用输入,则有效载荷数据650可以具有通用输入格式。因此,源设备120可以根据该通用输入格式对有效载荷数据650进行解析。作为通用输入格式的一部分,有效载荷数据650可以包括一系列的一个或多个输入事件,其中每个输入事件具有其自己的输入事件报头。下面的表1标识了可以在输入报头中包括的字段。
表格1
字段 | 大小(八位字节) | 值 |
通用IEID | 1 | 见表2 |
长度 | 2 | 后面的字段以八位字节为单位的长度 |
描述 | 变量 | 用户输入的细节。见各表 |
通用输入事件(IE)标识(ID)字段标识用于标识输入类型的通用输入事件标识。例如,通用IE ID字段可以长度为1个八位字节,并且可以包括从下面的表2中选择的标识。如在该示例中,如果通用IE ID字段是8比特,则可以标识256种不同类型的输入(标识为0-255),尽管不是全部256种标识都一定需要相关联的输入类型。这256个中的一些可以保留以便将来用于由宿设备160和源设备120实现的任何协议的未来版本。在表2中,例如,通用IE ID9-255不具有相关联的输入类型,但在将来可以向其分配输入类型。
输入事件报头中的长度字段标识描述字段的长度,而描述字段包括描述用户输入的信息元素。对描述字段的格式化可以取决于通用IE ID字段中标识的输入的类型。因此,源设备120可以基于通用IE ID字段中标识的输入类型来对描述字段的内容进行解析。基于输入事件报头的长度字段,源设备120可以确定有效载荷数据650中的一个输入事件的结束和新的输入事件的开始。如下面将更加详细解释的,在有效载荷数据650中可以将一个用户命令描述为一个或多个输入事件。
表2提供了输入类型的示例,每个输入类型具有可以用于标识该输入类型的相应的通用IE ID。
表格2
通用IE ID | 输入类型 |
0 | 左鼠标按下/触摸按下 |
1 | 左鼠标抬起/触摸抬起 |
2 | 鼠标移动/触摸移动 |
3 | 按键按下 |
4 | 按键抬起 |
5 | 缩放 |
6 | 垂直滚动 |
7 | 水平滚动 |
8 | 旋转 |
9-255 | 保留 |
与每个输入类型相关联的描述字段可以具有不同的格式。例如,左鼠标按下/触摸按下事件、左鼠标抬起/触摸抬起事件、以及鼠标移动/触摸移动的描述字段可以包括下面的表3中标识的信息元素,尽管在其它示例中也可以使用其它格式。
表格3
指针的数量可以标识与输入事件相关联的触摸或鼠标点击的次数。每个指针可以具有唯一的指针ID。例如,如果多点触摸事件包括三指触摸,则输入事件可以具有三个指针,其中每个指针具有唯一的指针ID。每个指针(即,每个手指触摸)可以具有与触摸发生处相对应的x坐标和y坐标。
可以将单个用户命令描述为一系列的输入事件。例如,如果三指轻扫是关闭应用的命令,则在有效载荷数据650中可以将三指轻扫描述为具有三个指针的触摸按下事件、具有三个指针的触摸移动事件和具有三个指针的触摸抬起事件。触摸按下事件的三个指针可以具有与触摸移动事件和触摸抬起事件的三个指针相同的指针ID。源设备120可以将这三个输入事件的组合解释为三指轻扫。
例如,按键按下事件或按键抬起事件的描述字段可以包括下面的表4中标识的信息元素。
表格4
例如,缩放事件的描述字段可以包括下面的表5中标识的信息元素。
表格5
例如,水平滚动事件或垂直滚动事件的描述字段可以包括下面的表6中标识的信息元素。
表格6
上面的示例示出了可以针对通用输入类别对有效载荷数据进行格式化的一些示例性方式。如果数据分组报头610的输入类别字段624指示不同的输入类别(诸如转发的用户输入),则有效载荷数据650可以具有不同的输入格式。在转发的用户输入的情况,宿设备160可以从第三方设备接收用户输入数据,并且在不对该用户输入数据进行解释的情况下将该输入转发到源设备120。从而,源设备120可以根据转发的用户输入格式对有效载荷数据650进行解析。例如,有效载荷数据650的有效载荷报头630可以包括用于标识从其获得用户输入的第三方设备的字段。例如,该字段可以包括第三方设备的因特网协议(IP)地址、MAC地址、域名或一些其它此类标识符。源设备120可以基于第三方设备的标识符对有效载荷数据的剩余部分进行解析。
宿设备160可以经由一系列消息与第三方设备协商能力。然后,作为能力协商过程的一部分,宿设备160可以向源设备120发送第三方设备的唯一标识符,作为与源设备120建立通信会话的一部分。或者,宿设备160可以向源设备120发送描述第三方设备的信息,并且基于该信息,源设备120可以确定第三方设备的唯一标识符。例如,描述第三方设备的信息可以包括用于标识第三方设备的信息和/或用于标识第三方设备的能力的信息。不管该唯一标识符是由源设备120还是由宿设备160确定的,当宿设备160发送具有从第三方设备获得的用户输入的数据分组时,宿设备160可以将该唯一标识符包括在数据分组中(例如,包括在有效载荷报头中),以使得源设备120能够识别该用户输入的来源。
如果数据分组报头610的输入类别字段624指示又一不同的输入类别,诸如语音命令,则有效载荷数据650可以具有又一不同的输入类型。针对语音命令,有效载荷数据650可以包括经编码的音频。可以经由一系列消息在源设备120和宿设备160之间对用于对语音命令的音频进行编码和解码的编解码器进行协商。为了发送语音命令,时间戳字段626可以包括语音采样时间值。在这种情况下,可以将时间戳标志622设置为指示存在时间戳,而不是如上面所描述的时间戳,时间戳字段626可以包括针对有效载荷数据650的经编码的音频的语音采样时间值。
在一些示例中,如上所述,可以将语音命令作为通用命令进行发送,在这种情况下,可以将输入类别字段626设置为标识通用命令格式,并且可以将保留的通用IE ID中的一个分配给语音命令。如果将语音命令作为通用命令进行发送,则语音采样率可以存在于数据分组报头610的时间戳字段626中或可以存在于有效载荷数据650中。
针对捕获的语音命令数据,可以以多种方式对语音数据进行封装。例如,可以使用RTP来对语音命令数据进行封装,RTP可以提供有效载荷类型以标识编解码器和时间戳,其中该时间戳用于标识采样率。在具有或不具有可选的时间戳的情况下,可以使用上面描述的通用用户输入格式来对RTP数据进行封装。宿设备160可以使用TCP/IP向源设备120发送携带语音命令数据的通用输入数据。
如之前所讨论的,当把坐标作为数据分组(诸如数据分组600)的一部分包括在例如有效载荷数据650中时,该坐标可以与基于协商的分辨率缩放的坐标、显示窗口坐标、归一化坐标、或者与宿显示器相关联的坐标相对应。在一些情况下,可以将额外的信息包括在数据分组中或者单独地进行发送,以便由源设备用来对在数据分组中接收到的坐标进行归一化。
不考虑特定数据分组的输入类别,数据分组报头可以是应用层分组报头,并且可以通过TCP/IP来发送数据分组。TCP/IP可以使宿设备160和源设备120能够在分组丢失的情况下执行重传技术。可以将数据分组从宿设备160发送到源设备120以控制源设备120的音频数据或视频数据,或者出于其它目的(诸如控制运行在源设备120上的应用)。
图7A是在宿设备和源设备之间协商能力的示例方法的流程图。所示出的示例方法可以由宿设备160(图1A)或360(图3)来执行。在一些示例中,计算机可读存储介质(例如,存储器332)可以存储指令、模块或算法,当该指令、模块或算法被执行时,使得一个或多个处理器(例如,处理器331)执行本文中所描述的流程图中的一个或多个流程图中的所示出的步骤中的一个或多个步骤。
图7A的方法包括宿设备160从源设备120接收第一消息(701)。例如,该消息可以包括获得参数请求。响应于该第一消息,宿设备160可以向源设备120发送第二消息(703)。例如,该第二消息可以包括获得参数响应,该获得参数响应标识所支持的输入类别的第一列表和所支持的类型的多个第一列表。其中,所支持的输入类别的第一列表中的每一个所支持的输入类别具有相关联的所支持的类型的第一列表。例如,所支持的输入类别可以与用于图6的输入类别字段624相同的类别相对应。上面的表2表示针对特定的输入类别(在该示例中是通用输入)的所支持的类型的一个示例。宿设备160可以从源设备120接收第三消息(705)。例如,该第三消息可以包括设置参数请求,其中,该设置参数请求标识用于通信的端口、所支持的输入类别的第二列表、以及所支持的类型的多个第二列表,其中,所支持的输入类别的第二列表中的每一个所支持的输入类别具有相关联的所支持的类型的第二列表,并且第二列表中的每一个所支持的类型包括第一列表中的类型的子集。宿设备160可以向源设备120发送第四消息(707)。例如,该第四消息可以包括用于确认已经启用第二列表中的类型的设置参数响应。宿设备160可以从源设备120接收第五消息(709)。例如,该第五消息可以包括指示已经启用源设备120和宿设备160之间的通信信道的第二设置参数请求。例如,该通信信道可以包括用户输入返回信道(UIBC)。宿设备160可以向源设备120发送第六消息(711)。例如,该第六消息可以包括确认宿设备160对第二设置参数请求的接收的第二设置参数响应。
图7B是在宿设备和源设备之间协商能力的示例方法的流程图。所示出的示例方法可以由源设备120(图1A)或220(图2)来执行。在一些示例中,计算机可读存储介质(例如,存储器232)可以存储指令、模块或算法,当该指令、模块或算法执行时,使得一个或多个处理器(例如,处理器231)执行该流程图中的所示出的步骤中的一个或多个步骤。
图7B的方法包括:源设备120向宿设备160发送第一消息(702)。例如,该第一消息可以包括获得参数请求。源设备120可以从宿设备160接收第二消息(704)。例如,该第二消息可以包括获得参数响应,该获得参数响应标识所支持的输入类别的第一列表和所支持的类型的多个第一列表,其中,所支持的输入类别的第一列表中的每一个所支持的输入类别具有相关联的所支持的类型的第一列表。源设备120可以向宿设备160发送第三消息(706)。例如,该第三消息可以包括设置参数请求,该设置参数请求标识用于通信的端口、所支持的输入类别的第二列表、以及所支持的类型的多个第二列表,其中,所支持的输入类别的第二列表中的每一个所支持的输入类别具有相关联的所支持的类型的第二列表,并且第二列表中的每一个所支持的类型包括第一列表中的类型的子集。源设备120可以从宿设备160接收第四消息(708)。例如,该第四消息可以包括用于确认已经启用第二列表中的类型的设置参数响应。源设备120可以向宿设备160发送第五消息(710)。例如,该第五消息可以包括指示已经启用源设备120和宿设备160之间的通信信道的第二设置参数请求。例如,该通信信道可以包括用户输入返回信道(UIBC)。源设备120可以从宿设备160接收第六消息(712)。例如,该第六消息可以包括确认宿设备160对第二设置参数请求的接收的第二设置参数响应。
图8A是根据本公开内容,从无线宿设备向无线源设备发送用户输入数据的示例方法的流程图。所示出的示例方法可以由宿设备160(图1A)或360(图3)来执行。在一些示例中,计算机可读存储介质(例如,存储器232)可以存储指令、模块或算法,当该指令、模块或算法执行时,使得一个或多个处理器(例如,处理器231)执行该流程图中的所示出的步骤中的一个或多个步骤。
图8A的方法包括在无线宿设备(诸如无线宿设备160)处获得用户输入数据(801)。可以通过无线宿设备160的用户输入组件(诸如,例如,结合无线宿设备360示出的用户输入接口376)来获得用户输入数据。此外,宿设备160可以将用户输入数据分类为例如通用的、转发的或特定于操作系统的。然后,宿设备160可以基于用户输入数据来生成数据分组报头(803)。该数据分组报头可以是应用层分组报头。除了其它字段之外,该数据分组报头还可以包括用于标识与用户输入数据相对应的输入类别的字段。例如,输入类别可以包括通用输入格式或人机接口设备命令。宿设备160还可以生成数据分组(805),其中,该数据分组包括所生成的数据分组报头和有效载荷数据。在一个示例中,有效载荷数据可以包括所接收的用户输入数据,并且可以标识一个或多个用户命令。然后,宿设备160可以向无线源设备(例如,图1A的源设备120或图2的220)发送所生成的数据分组(807)。宿设备160可以包括允许传送数据分组的组件,例如包括图3中所示的传输单元333和无线调制解调器334。宿设备160可以通过TCP/IP来传送数据分组。
图8B是根据本公开内容,在无线源设备处从无线宿设备接收用户输入数据的示例方法的流程图。所示出的示例方法可以由源设备120(图1A)或220(图2)来执行。在一些示例中,计算机可读存储介质(例如,存储器232)可以存储指令、模块或算法,当该指令、模块或算法执行时,使得一个或多个处理器(例如,处理器231)执行该流程图中的所示出的步骤中的一个或多个步骤。
图8B的方法包括接收数据分组(802),其中,除了其它方面之外,该数据分组可以包括数据分组报头和有效载荷数据。有效载荷数据可以包括例如用户输入数据。源设备120可以包括允许传送数据分组的通信组件,其包括例如参照图2所示的传输单元233和无线调制解调器234。然后,源设备120可以对包括在数据分组中的数据分组报头进行解析(804),以确定与包含在该有效载荷数据中的用户输入数据相关联的输入类别。源设备120可以基于所确定的输入类别对该有效载荷数据进行处理(806)。参照图8A和8B描述的数据分组通常可以采取参照图6所描述的数据分组的形式,并且可以用于控制源设备处的音频/视频数据和应用。
图9A是根据本公开内容,从无线宿设备向无线源设备发送用户输入数据的示例方法的流程图。所示出的示例方法可以由宿设备160(图1A)或360(图3)来执行。在一些示例中,计算机可读存储介质(例如,存储器332)可以存储指令、模块或算法,当该指令、模块或算法执行时,使得一个或多个处理器(例如,处理器331)执行该流程图中的所示出的步骤中的一个或多个步骤。
图9A的方法包括在无线宿设备(诸如无线宿设备160)处获得用户输入数据(901)。可以通过无线宿设备160的用户输入组件(诸如,例如,参照图3示出的用户输入接口376)来获得用户输入数据。然后,宿设备160可以生成有效载荷数据(903),其中该有效载荷数据可以描述用户输入数据。在一个示例中,有效载荷数据可以包括所接收的用户输入数据并且可以标识一个或多个用户命令。宿设备160还可以生成数据分组(905),其中,该数据分组包括数据分组报头和所生成的有效载荷数据。然后,宿设备160可以向无线源设备(例如,图1A的源设备120或图2的220)发送所生成的数据分组(907)。宿设备160可以包括允许传送数据分组的组件,诸如,例如,传输单元333和无线调制解调器334。可以通过TCP/IP将数据分组发送到无线源设备。
图9B是根据本公开内容,在无线源设备处从无线宿设备接收用户输入数据的示例方法的流程图。所示出的示例方法可以由源设备120(图1A)或220(图2)来执行。在一些示例中,计算机可读存储介质(例如,存储器232)可以存储指令、模块或算法,当该指令、模块或算法执行时,使得一个或多个处理器(例如,处理器231)执行该流程图中的所示出的步骤中的一个或多个步骤。
图9B的方法包括从宿设备360接收数据分组(902),其中,除了其它方面之外,该数据分组可以包括数据分组报头和有效载荷数据。在一个示例中,有效载荷数据可以包括例如描述用户输入的细节的数据(诸如输入类型值)。源设备120可以包括允许传送数据分组的通信组件,包括例如参照图2所示出的传输单元233和无线调制解调器234。然后,源设备120可以对该数据分组进行解析(904),以确定有效载荷数据中的输入类型字段中的输入类型值。源设备120可以基于所确定的输入类型值对描述用户输入的细节的数据进行处理(906)。参照图9A和9B描述的数据分组通常可以采取参照图6描述的数据分组的形式。
图10A是根据本公开内容,从无线宿设备向无线源设备发送用户输入数据的示例方法的流程图。所示出的示例方法可以由宿设备160(图1A)或360(图3)来执行。在一些示例中,计算机可读存储介质(例如,存储器332)可以存储指令、模块或算法,当该指令、模块或算法执行时,使得一个或多个处理器(例如,处理器331)执行该流程图中的所示出的步骤中的一个或多个步骤。
图10A的方法包括在无线宿设备(诸如无线宿设备160)处获得用户输入数据(1001)。可以通过无线宿设备160的用户输入组件(诸如,例如,参照图3示出的用户输入接口376)来获得用户输入数据。然后,宿设备160可以基于用户输入来生成数据分组报头(1003)。除了其它字段之外,该数据分组报头可以包括用于指示在数据分组报头中是否存在时间戳字段的时间戳标志(例如,1比特字段)。例如,该时间戳标志可以包括指示存在时间戳字段的“1”,并且可以包括指示不存在时间戳字段的“0”。例如,该时间戳字段可以是16位字段,其包含由源设备120生成并且在传输之前被添加到视频数据的时间戳。宿设备160还可以生成数据分组(1005),其中,该数据分组包括所生成的数据分组报头和有效载荷数据。在一个示例中,有效载荷数据可以包括所接收的用户输入数据并且可以标识一个或多个用户命令。然后,宿设备160可以向无线源设备(例如,图1A的源设备120或图2的220)发送所生成的数据分组(1007)。宿设备160可以包括允许传送数据分组的组件,其包括例如参照图3所示出的传输单元333和无线调制解调器334。可以通过TCP/IP将数据分组发送到无线源设备。
图10B是根据本公开内容,在无线源设备处从无线宿设备接收用户输入数据的示例方法的流程图。所示出的示例方法可以由源设备120(图1A)或220(图2)来执行。在一些示例中,计算机可读存储介质(例如,存储器232)可以存储指令、模块或算法,当该指令、模块或算法执行时,使得一个或多个处理器(例如,处理器231)执行该流程图中的所示出的步骤中的一个或多个步骤。
图10B的方法包括从无线宿设备160接收数据分组(1002),其中,除了其它方面之外,该数据分组可以包括数据分组报头和有效载荷数据。例如,有效载荷数据可以包括用户输入数据。源设备120可以包括允许传送数据分组的通信组件,其包括例如参照图2所示出的传输单元233和无线调制解调器234。然后,源设备120可以对该数据分组中包括的数据分组报头进行解析(1004)。源设备120可以确定在该数据分组报头中是否存在时间戳字段(1006)。在一个示例中,源设备120可以基于在该数据分组报头中包括的时间戳标志值来进行该确定。如果该数据分组报头包括时间戳字段,则源设备120可以基于该时间戳字段中的时间戳对有效载荷数据进行处理(1008)。参照图10A和10B描述的数据分组通常可以采取参照图6描述的数据分组的形式,并且可以用于控制源设备处的音频/视频数据。
图11A是根据本公开内容,从无线宿设备向无线源设备发送用户输入数据的示例方法的流程图。所示出的示例方法可以由宿设备160(图1A)或360(图3)来执行。在一些示例中,计算机可读存储介质(例如,存储器332)可以存储指令、模块或算法,当该指令、模块或算法执行时,使得一个或多个处理器(例如,处理器331)执行该流程图中的所示出的步骤中的一个或多个步骤。
图11A的方法包括在无线宿设备(诸如无线宿设备160)处获得用户输入数据(1101)。可以通过无线宿设备160的用户输入组件(诸如,例如,参照图3示出的用户输入接口376)来获得该用户输入数据。然后,宿设备160可以基于用户输入来生成数据分组报头(1103)。除了其它字段之外,该数据分组报头可以包括时间戳字段。例如,该时间戳字段可以包括16比特字段,该16比特字段包含基于由无线源设备120生成并且被发送到无线宿设备160的多媒体数据的时间戳。可以在被发送到无线宿设备之前,由无线源设备120将该时间戳添加到视频数据帧。例如,该时间戳字段可以标识与在捕获用户输入数据时,在无线宿设备160处显示的视频数据帧相关联的时间戳。宿设备160还可以生成数据分组(1105),其中,该数据分组包括所生成的数据分组报头和有效载荷数据。在一个示例中,有效载荷数据可以包括所接收的用户输入数据并且可以标识一个或多个用户命令。然后,宿设备160可以向无线源设备(例如,图1A的源设备120或图2的220)发送所生成的数据分组(1107)。宿设备160可以包括允许传送数据分组的组件,其包括例如参照图3所示出的传输单元333和无线调制解调器334。可以通过TCP/IP将数据分组发送到无线源设备。
图11B是根据本公开内容,在无线源设备处从无线宿设备接收用户输入数据的示例方法的流程图。所示出的示例方法可以由源设备120(图1A)或220(图2)来执行。在一些示例中,计算机可读存储介质(例如,存储器232)可以存储指令、模块或算法,当该指令、模块或算法执行时,使得一个或多个处理器(例如,处理器231)执行该流程图中的所示出的步骤中的一个或多个步骤。
图11B的方法包括从无线宿设备(诸如无线宿设备160)接收数据分组(1102),其中,除了其它方面之外,该数据分组可以包括数据分组报头和有效载荷数据。例如,有效载荷数据可以包括用户输入数据。源设备120可以包括允许传送数据分组的通信组件,其包括例如参照图2所示出的传输单元233和无线调制解调器234。然后,源设备120可以识别数据分组报头中的时间戳字段(1104)。源设备120可以基于时间戳字段中的时间戳对有效载荷数据进行处理(1106)。作为对有效载荷数据进行处理的一部分,源设备120可以基于时间戳来识别在获得该用户输入数据时在无线宿设备处显示的视频数据帧,并且基于该帧的内容来解释该有效载荷数据。作为基于该时间戳对有效载荷数据进行处理的一部分,源设备120可以将该时间戳与由源设备120发送的当前视频帧的当前时间戳进行比较,并且可以响应于该时间戳和当前时间戳之间的时间差小于阈值来执行有效载荷数据中描述的用户输入命令,或者响应于该时间戳和当前时间戳之间的时间差大于阈值而不执行有效载荷数据中描述的用户输入命令。参照图11A和11B描述的数据分组通常可以采取参照图6描述的数据分组的形式,并且可以用于控制源设备处的音频/视频数据。
图12A是根据本公开内容,从无线宿设备向无线源设备发送用户输入数据的示例方法的流程图。所示出的示例方法可以由宿设备160(图1A)或360(图3)来执行。在一些示例中,计算机可读存储介质(例如,存储器332)可以存储指令、模块或算法,当该指令、模块或算法执行时,使得一个或多个处理器(例如,处理器331)执行该流程图中的所示出的步骤中的一个或多个步骤。
图12A的方法包括在无线宿设备(诸如无线宿设备160)处获得用户输入数据(1201)。在一个示例中,该用户输入数据可以是语音命令数据,可以通过无线宿设备160的用户输入组件(诸如,例如,图3中的用户输入接口376中包括的语音命令识别模块)来获得该语音命令数据。宿设备160可以基于用户输入来生成数据分组报头(1203)。宿设备160还可以生成有效载荷数据(1205),其中该有效载荷数据可以包括语音命令数据。在一个示例中,有效载荷数据还可以包括所接收的用户输入数据并且可以标识一个或多个用户命令。宿设备160还可以生成数据分组(1207),其中,该数据分组包括所生成的数据分组报头和有效载荷数据。然后,宿设备160可以向无线源设备(例如,图1A的源设备120或图2的220)发送所生成的数据分组(1209)。宿设备160可以包括允许传送数据分组的组件,其包括例如参照图3所示出的传输单元333和无线调制解调器334。可以通过TCP/IP将数据分组发送到无线源设备。
图12B是根据本公开内容,在无线源设备处从无线宿设备接收用户输入数据的示例方法的流程图。所示出的示例方法可以由源设备120(图1A)或220(图2)来执行。在一些示例中,计算机可读存储介质(例如,存储器232)可以存储指令、模块或算法,当该指令、模块或算法执行时,使得一个或多个处理器(例如,处理器231)执行该流程图中的所示出的步骤中的一个或多个步骤。
图12B的方法包括接收数据分组(1202),其中,除了其它方面之外,该数据分组可以包括数据分组报头和有效载荷数据。例如,有效载荷数据可以包括诸如语音命令数据之类的用户输入数据。源设备120可以包括允许传送数据分组的通信组件,其包括例如参照图2所示出的传输单元233和无线调制解调器234。然后,源设备120可以对该数据分组中包括的有效载荷数据进行解析(1204),以确定该有效载荷数据是否包括语音命令数据。参照图12A和12B描述的数据分组通常可以采取参照图6描述的数据分组的形式,并且可以用于控制源设备处的音频/视频数据。
图13A是根据本公开内容,从无线宿设备向无线源设备发送用户输入数据的示例方法的流程图。所示出的示例方法可以由宿设备160(图1A)或360(图3)来执行。在一些示例中,计算机可读存储介质(例如,存储器332)可以存储指令、模块或算法,当该指令、模块或算法执行时,使得一个或多个处理器(例如,处理器331)执行该流程图中的所示出的步骤中的一个或多个步骤。
图13A的方法包括在无线宿设备(诸如无线宿设备160)处获得用户输入数据(1301)。在一个示例中,该用户输入数据可以是多点触摸手势,其可以通过无线宿设备160的用户输入组件(诸如,例如,UI167或图3中的用户输入接口376)来获得。在一个示例中,该多点触摸手势可以包括第一触摸输入和第二触摸输入。宿设备160可以基于用户输入来生成数据分组报头(1303)。宿设备160还可以生成有效载荷数据(1305),其中该有效载荷数据可以将针对第一触摸输入事件的用户输入数据与第一指针标识相关联,并且将针对第二触摸输入事件的用户输入数据与第二指针标识相关联。宿设备160还可以生成数据分组(1307),其中,该数据分组包括所生成的数据分组报头和有效载荷数据。然后,宿设备160可以向无线源设备(例如,图1A的源设备120或图2的220)发送所生成的数据分组(1309)。宿设备160可以包括允许传送数据分组的组件,其包括例如参照图3所示出的传输单元333和无线调制解调器334。可以通过TCP/IP将数据分组发送到无线源设备。
图13B是根据本公开内容,在无线源设备处从无线宿设备接收用户输入数据的示例方法的流程图。所示出的示例方法可以由源设备120(图1A)或220(图2)来执行。在一些示例中,计算机可读存储介质(例如,存储器232)可以存储指令、模块或算法,当该指令、模块或算法执行时,使得一个或多个处理器(例如,处理器231)执行该流程图中的所示出的步骤中的一个或多个步骤。
图13B的方法包括接收数据分组(1302),其中,除了其它方面之外,该数据分组可以包括数据分组报头和有效载荷数据。例如,有效载荷数据可以包括诸如多点触摸手势之类的用户输入数据。源设备120可以包括允许传送数据分组的通信组件,其包括例如参照图2所示出的传输单元233和无线调制解调器234。然后,源设备120可以对该数据分组中包括的有效载荷数据进行解析(1304),以识别该有效载荷数据中包括的用户输入数据。在一个示例中,所识别的数据可以包括具有第一指针标识的针对第一触摸输入事件的用户输入数据以及具有第二指针标识的针对第二触摸输入事件的用户输入数据。然后,源设备120可以将针对第一触摸输入事件的用户输入数据和针对第二触摸输入事件的用户输入数据解释为多点触摸手势(1306)。参照图13A和13B描述的数据分组通常可以采取参照图6描述的数据分组的形式,并且可以用于控制源设备处的音频/视频数据。
图14A是根据本公开内容,从无线宿设备向无线源设备发送用户输入数据的示例方法的流程图。所示出的示例方法可以由宿设备160(图1A)或360(图3)来执行。在一些示例中,计算机可读存储介质(例如,存储器332)可以存储指令、模块或算法,当该指令、模块或算法执行时,使得一个或多个处理器(例如,处理器331)执行该流程图中的所示出的步骤中的一个或多个步骤。
图14A的方法包括在无线宿设备360处从外部设备获得用户输入数据(1401)。在一个示例中,该外部设备可以是连接到该宿设备的第三方设备。宿设备160可以基于用户输入来生成数据分组报头(1403)。在一个示例中,该数据分组报头可以将用户输入数据标识为转发的用户输入数据。宿设备160还可以生成有效载荷数据(1405),其中,该有效载荷数据可以包括用户输入数据。宿设备160还可以生成数据分组(1407),其中,该数据分组包括所生成的数据分组报头和有效载荷数据。然后,宿设备160可以向无线源设备(例如,图1A的源设备120或图2的220)发送所生成的数据分组(1409)。宿设备160可以包括允许传送数据分组的组件,其包括例如参照图3所示出的传输单元333和无线调制解调器334。可以通过TCP/IP将数据分组发送到无线源设备。
图14B是根据本公开内容,在无线源设备处从无线宿设备接收用户输入数据的示例方法的流程图。所示出的示例方法可以由源设备120(图1A)或220(图2)来执行。在一些示例中,计算机可读存储介质(例如,存储器232)可以存储指令、模块或算法,当该指令、模块或算法执行时,使得一个或多个处理器(例如,处理器231)执行该流程图中的所示出的步骤中的一个或多个步骤。
图14B的方法包括接收数据分组(1402),其中,除了其它方面之外,该数据分组可以包括数据分组报头和有效载荷数据。例如,有效载荷数据可以包括诸如转发的用户输入命令的用户输入数据,该转发的用户输入命令指示用户输入数据是从第三方设备转发的。源设备120可以包括允许传送数据分组的通信组件,其包括例如参照图2所示出的传输单元233和无线调制解调器234。然后,源设备120可以对数据分组报头进行解析(1404)并且可以确定该有效载荷数据包括转发的用户输入命令(1404)。然后,源设备120可以对该数据分组中包括的有效载荷数据进行解析(1406),以识别与对应于转发的用户输入命令的第三方设备相关联的标识。然后,源设备120可以基于所识别的第三方设备的标识对有效载荷数据进行处理(1408)。参照图14A和14B描述的数据分组通常可以采取参照图6描述的数据分组的形式,并且可以用于控制源设备处的音频/视频数据。
图15A是根据本公开内容,从无线宿设备向无线源设备发送用户数据的示例方法的流程图。所示出的示例方法可以由宿设备160(图1A)或360(图3)来执行。在一些示例中,计算机可读存储介质(例如,存储器332)可以存储指令、模块或算法,当该指令、模块或算法执行时,使得一个或多个处理器(例如,处理器331)执行该流程图中的所示出的步骤中的一个或多个步骤。
图15A的方法包括在无线宿设备处获得用户输入数据(1501)。该用户输入数据可以具有相关联的坐标数据。例如,该相关联的坐标数据可以与鼠标点击事件的位置或触摸事件的位置相对应。然后,宿设备160可以对该相关联的坐标数据进行归一化以生成归一化的坐标数据(1503)。然后,宿设备160可以生成包括所归一化的坐标数据的数据分组(1505)。对坐标数据进行归一化可以包括:基于显示窗口的分辨率与源的显示器(诸如源设备120的显示器22)的分辨率的比率对相关联的坐标数据进行缩放。显示窗口的分辨率可以由宿设备160确定,并且可以从源设备120接收源设备的显示器的分辨率。然后,宿设备160可以向无线源设备120发送具有归一化坐标的数据分组(1507)。作为图15A的方法的一部分,宿设备160还可以针对从无线源设备接收的内容确定相关联的坐标数据是否在显示窗口之内,并且例如,如果相关联的坐标数据在显示窗口之外则在本地对用户输入进行处理,或者否则如果该输入在显示窗口之内则按所描述的对坐标进行归一化。
图15B是根据本公开内容,在无线源设备处从无线宿设备接收用户输入数据的示例方法的流程图。所示出的示例方法可以由源设备120(图1A)或220(图2)来执行。在一些示例中,计算机可读存储介质(例如,存储器232)可以存储指令、模块或算法,当该指令、模块或算法执行时,使得一个或多个处理器(例如,处理器231)执行该流程图中的所示出的步骤中的一个或多个步骤。
图15B的方法包括在无线源设备处接收数据分组,其中,该数据分组包括与坐标数据相关联的用户输入数据(1502)。例如,该相关联的坐标数据可以与宿设备处的鼠标点击事件的位置或触摸事件的位置相对应。然后,源设备120可以对该相关联的坐标数据进行归一化,以生成归一化的坐标数据(1504)。源设备120可以通过基于显示窗口的分辨率与源的显示器的分辨率的比率对该相关联的坐标数据进行缩放,来对该坐标数据进行归一化。源设备120可以确定源设备的显示器的分辨率,并且可以从无线宿设备接收显示窗口的分辨率。然后,源设备可以基于归一化的坐标数据来对数据分组进行处理(1506)。参照图15A和15B描述的数据分组通常可以采取参照图6描述的数据分组的形式,并且可以用于在源设备处控制音频/视频数据。
为了简单解释起见,参照图7-15单独地对本公开内容的各个方面进行了描述。然而,应当设想这些各个方面可以互相结合以及互相联合使用而不只是单独使用。通常,可以在无线源设备和无线宿设备二者中实现本文中描述的功能和/或模块。以这种方式,当前的示例中描述的用户接口功能可以在无线源设备和无线宿设备之间互换使用。
可以使用包括无线手持装置以及集成电路(IC)或一组IC(即,芯片组)的各种设备和装置来实现本公开内容的技术。提供所描述的任何组件、模块或单元以强调功能性方面,而并不一定要求通过不同的硬件单元来实现。
相应地,可以使用硬件、软件、固件或它们的任意组合来实现本文中描述的技术。如果用硬件实现,则可以将被描述为模块、单元或组件的任何特征一起实现在集成逻辑器件中或者单独地实现为分立但可共同操作的逻辑器件。如果用软件实现,则这些技术可以至少部分由计算机可读介质来实现,该计算机可读介质包括当在处理器中执行时执行上述方法中的一个或多个方法的指令。计算机可读介质可以包括有形的和非临时性的计算机可读存储介质,并且可以形成计算机程序产品的部分,计算机程序产品可以包括封装材料。计算机可读存储介质可以包括诸如同步动态随机存取存储器(SDRAM)的随机存取存储器(RAM)、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、电可擦除可编程只读存储器(EEPROM)、闪存、磁性或光学数据存储介质等。额外地或替换地,这些技术可以至少部分由计算机可读通信介质来实现,该计算机可读通信介质携带具有指令或数据结构形式的通信代码并且可以由计算机访问、读取和/或执行。
代码可以由诸如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其它等效的集成或分立逻辑电路的一个或多个处理器来执行。相应地,如同本文中所使用的,术语“处理器”可以指的是前述结构或适合用于实现本文中描述的技术的任何其它结构中的任何一种。此外,在一些方面中,可以在被配置为进行编码和解码或纳入组合视频编解码器的专用软件模块或硬件模块内提供本文中描述的功能。此外,可以使用一个或多个电路或逻辑单元来全面地实现这些技术。
对本公开内容的各个方面进行了描述。这些方面和其它方面在下面的权利要求的范围之内。
Claims (56)
1.一种在无线源设备处从无线宿设备接收用户输入数据的方法,所述方法包括:
接收包括分组报头和有效载荷数据的数据分组,其中,所述分组报头包括用于标识是否存在时间戳字段的时间戳标志;
对所述有效载荷数据进行解析,以确定所述有效载荷数据是否包括语音命令数据;
响应于所述时间戳标志指示存在时间戳字段并且所述有效载荷数据包括语音命令数据,将所述时间戳字段中的条目解释为语音采样时间;
响应于所述时间戳标志指示存在时间戳字段并且所述有效载荷数据包括不同于语音命令数据的命令数据,将所述时间戳字段中的所述条目解释为:与在捕获到所述用户输入数据时在所述无线宿设备处显示的视频数据的帧相关联的时间戳。
2.根据权利要求1所述的方法,其中,对所述有效载荷数据进行解析包括在所述有效载荷数据中识别指示输入类型的字段,其中,所述字段中的值指示所述有效载荷数据包括语音命令数据。
3.根据权利要求1所述的方法,还包括:
经由一系列消息与所述无线宿设备协商语音命令能力。
4.根据权利要求3所述的方法,其中,所述协商包括识别一个或多个音频编解码器。
5.根据权利要求1所述的方法,其中,所述语音命令数据是RTP封装的语音数据。
6.根据权利要求1所述的方法,其中,所述数据分组报头包括用于标识输入类别的字段,并且其中,所述字段标识通用输入。
7.根据权利要求1所述的方法,其中,所述有效载荷数据包括用于标识输入类型的字段,并且其中,用于标识所述输入类型的所述字段标识语音命令。
8.根据权利要求1所述的方法,其中,所述有效载荷数据包括描述字段,并且其中,所述描述字段包括所述语音命令数据。
9.根据权利要求8所述的方法,其中,所述有效载荷数据包括用于标识所述描述字段的长度的长度字段。
10.根据权利要求1所述的方法,其中,获得所述用户输入数据包括:通过所述无线宿设备的输入设备来捕获所述用户输入数据。
11.根据权利要求1所述的方法,其中,获得所述用户输入数据包括:从另一个无线宿设备接收转发的用户输入数据。
12.根据权利要求1所述的方法,其中,所述数据分组报头是应用层分组报头。
13.根据权利要求1所述的方法,其中,所述数据分组是用于控制所述无线源设备的音频数据或视频数据的。
14.根据权利要求1所述的方法,其中,所述数据分组是通过TCP/IP发送的。
15.一种配置为从无线宿设备接收用户输入数据的无线源设备,所述无线源设备包括:
传输单元,其用于接收包括分组报头和有效载荷数据的数据分组,其中,所述分组报头包括用于标识是否存在时间戳字段的时间戳标志;
存储器,其存储指令;
一个或多个处理器,其配置为执行所述指令,其中,在执行所述指令后,所述一个或多个处理器使得:
对所述有效载荷数据进行解析,以确定所述有效载荷数据是否包括语音命令数据;
响应于所述时间戳标志指示存在时间戳字段并且所述有效载荷数据包括语音命令数据,将所述时间戳字段中的条目解释为语音采样时间;
响应于所述时间戳标志指示存在时间戳字段并且所述有效载荷数据包括不同于语音命令数据的命令数据,将所述时间戳字段中的所述条目解释为:与在捕获到所述用户输入数据时在所述无线宿设备处显示的视频数据的帧相关联的时间戳。
16.根据权利要求15所述的无线源设备,其中,对所述有效载荷数据进行解析包括在所述有效载荷数据中识别指示输入类型的字段,其中,所述字段中的值指示所述有效载荷数据包括语音命令数据。
17.根据权利要求15所述的无线源设备,其中,在执行所述指令后,所述一个或多个处理器还使得:
经由一系列消息与所述无线宿设备协商语音命令能力。
18.根据权利要求17所述的无线源设备,其中,所述协商包括识别一个或多个音频编解码器。
19.根据权利要求15所述的无线源设备,其中,所述语音命令数据是RTP封装的语音数据。
20.根据权利要求15所述的无线源设备,其中,所述数据分组报头包括用于标识输入类别的字段,并且其中,所述字段标识通用输入。
21.根据权利要求15所述的无线源设备,其中,所述有效载荷数据包括用于标识输入类型的字段,并且其中,用于标识所述输入类型的所述字段标识语音命令。
22.根据权利要求15所述的无线源设备,其中,所述有效载荷数据包括描述字段,并且其中,所述描述字段包括所述语音命令数据。
23.根据权利要求22所述的无线源设备,其中,所述有效载荷数据包括用于标识所述描述字段的长度的长度字段。
24.根据权利要求15所述的无线源设备,其中,获得所述用户输入数据包括:通过所述无线宿设备的输入设备来捕获所述用户输入数据。
25.根据权利要求15所述的无线源设备,其中,获得所述用户输入数据包括:从另一个无线宿设备接收转发的用户输入数据。
26.根据权利要求15所述的无线源设备,其中,所述数据分组报头是应用层分组报头。
27.根据权利要求15所述的无线源设备,其中,所述数据分组是用于控制所述无线源设备的音频数据或视频数据的。
28.根据权利要求15所述的无线源设备,其中,所述数据分组是通过TCP/IP发送的。
29.一种配置为从无线宿设备接收用户输入数据的无线源设备,所述无线源设备包括:
用于接收包括分组报头和有效载荷数据的数据分组的模块,其中,所述分组报头包括用于标识是否存在时间戳字段的时间戳标志;
用于对所述有效载荷数据进行解析,以确定所述有效载荷数据是否包括语音命令数据的模块;
用于响应于所述时间戳标志指示存在时间戳字段并且所述有效载荷数据包括语音命令数据,将所述时间戳字段中的条目解释为语音采样时间的模块;以及
用于响应于所述时间戳标志指示存在时间戳字段并且所述有效载荷数据包括不同于语音命令数据的命令数据,将所述时间戳字段中的所述条目解释为:与在捕获到所述用户输入数据时在所述无线宿设备处显示的视频数据的帧相关联的时间戳的模块。
30.一种从无线宿设备向无线源设备发送用户输入数据的方法,所述方法包括:
在所述无线宿设备处获得语音命令数据;
生成数据分组报头;
生成包括所述语音命令数据的有效载荷数据;
生成包括所述数据分组报头和所述有效载荷数据的数据分组;
向所述无线源设备发送所述数据分组;
其中,所述数据分组报头包括用于标识是否存在时间戳字段的时间戳标志,并且其中,所述方法还包括:
设置所述时间戳标志以指示所述时间戳字段;
向所述时间戳字段添加语音采样时间值。
31.根据权利要求30所述的方法,还包括:
经由一系列消息与所述无线源设备协商语音命令能力。
32.根据权利要求31所述的方法,其中,所述协商包括识别一个或多个音频编解码器。
33.根据权利要求30所述的方法,其中,所述语音命令数据是RTP封装的语音数据。
34.根据权利要求30所述的方法,其中,所述数据分组报头包括用于标识输入类别的字段,并且所述字段标识通用输入。
35.根据权利要求30所述的方法,其中,所述有效载荷数据包括用于标识输入类型的字段,并且用于标识所述输入类型的所述字段标识语音命令。
36.根据权利要求30所述的方法,其中,所述有效载荷数据包括描述字段,并且其中,所述描述字段包括所述语音命令数据。
37.根据权利要求36所述的方法,其中,所述有效载荷数据包括用于标识所述描述字段的长度的长度字段。
38.根据权利要求30所述的方法,其中,获得所述用户输入数据包括:通过所述无线宿设备的输入设备来捕获所述用户输入数据。
39.根据权利要求30所述的方法,其中,获得所述用户输入数据包括:从另一个无线宿设备接收转发的用户输入数据。
40.根据权利要求30所述的方法,其中,所述数据分组报头是应用层分组报头。
41.根据权利要求30所述的方法,其中,所述数据分组是用于控制所述无线源设备的音频数据或视频数据的。
42.根据权利要求30所述的方法,其中,所述数据分组是通过TCP/IP发送的。
43.一种配置为向无线源设备发送用户输入数据的无线宿设备,所述无线宿设备包括:
存储器,其存储指令;
一个或多个处理器,其配置为执行所述指令,其中,在执行所述指令后,所述一个或多个处理器使得:
在所述无线宿设备处获得语音命令数据;
生成数据分组报头;
生成包括所述语音命令数据的有效载荷数据;
生成包括所述数据分组报头和所述有效载荷数据的数据分组;
传输单元,其用于向所述无线源设备发送所述数据分组;
其中,所述数据分组报头包括用于标识是否存在时间戳字段的时间戳标志,并且其中,在执行所述指令时,所述一个或多个处理器还使得:
设置所述时间戳标志以指示所述时间戳字段;
向所述时间戳字段添加语音采样时间值。
44.根据权利要求43所述的无线宿设备,其中,在执行所述指令后,所述一个或多个处理器还使得:
经由一系列消息与所述无线源设备协商语音命令能力。
45.根据权利要求44所述的无线宿设备,其中,所述协商包括识别一个或多个音频编解码器。
46.根据权利要求43所述的无线宿设备,其中,所述语音命令数据是RTP封装的语音数据。
47.根据权利要求43所述的无线宿设备,其中,所述数据分组报头包括用于标识输入类别的字段,并且所述字段标识通用输入。
48.根据权利要求43所述的无线宿设备,其中,所述有效载荷数据包括用于标识输入类型的字段,并且用于标识所述输入类型的所述字段标识语音命令。
49.根据权利要求43所述的无线宿设备,其中,所述有效载荷数据包括描述字段,并且其中,所述描述字段包括所述语音命令数据。
50.根据权利要求49所述的无线宿设备,其中,所述有效载荷数据包括用于标识所述描述字段的长度的长度字段。
51.根据权利要求43所述的无线宿设备,其中,获得所述用户输入数据包括:通过所述无线宿设备的输入设备来捕获所述用户输入数据。
52.根据权利要求43所述的无线宿设备,其中,获得所述用户输入数据包括:从另一个无线宿设备接收转发的用户输入数据。
53.根据权利要求43所述的无线宿设备,其中,所述数据分组报头是应用层分组报头。
54.根据权利要求43所述的无线宿设备,其中,所述数据分组是用于控制所述无线源设备的音频数据或视频数据的。
55.根据权利要求43所述的无线宿设备,其中,所述数据分组是通过TCP/IP发送的。
56.一种配置为向无线源设备发送用户输入数据的无线宿设备,所述无线宿设备包括:
用于在所述无线宿设备处获得语音命令数据的模块;
用于生成数据分组报头的模块;
用于生成包括所述语音命令数据的有效载荷数据的模块;
用于生成包括所述数据分组报头和所述有效载荷数据的数据分组的模块;
用于向所述无线源设备发送所述数据分组的模块;
其中,所述数据分组报头包括用于标识是否存在时间戳字段的时间戳标志,并且其中,所述无线宿设备还包括:
用于设置所述时间戳标志以指示所述时间戳字段的模块;
用于向所述时间戳字段添加语音采样时间值的模块。
Applications Claiming Priority (19)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201161435194P | 2011-01-21 | 2011-01-21 | |
US61/435,194 | 2011-01-21 | ||
US201161447592P | 2011-02-28 | 2011-02-28 | |
US61/447,592 | 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 | |
US61/467,535 | 2011-03-25 | ||
US61/467,543 | 2011-03-25 | ||
US201161514863P | 2011-08-03 | 2011-08-03 | |
US61/514,863 | 2011-08-03 | ||
US201161544434P | 2011-10-07 | 2011-10-07 | |
US61/544,434 | 2011-10-07 | ||
US13/344,512 US20130013318A1 (en) | 2011-01-21 | 2012-01-05 | User input back channel for wireless displays |
US13/344,512 | 2012-01-05 | ||
PCT/US2012/022087 WO2012100201A1 (en) | 2011-01-21 | 2012-01-20 | User input back channel for wireless displays |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103404104A CN103404104A (zh) | 2013-11-20 |
CN103404104B true CN103404104B (zh) | 2016-08-24 |
Family
ID=45659010
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280010361.3A Expired - Fee Related CN103404104B (zh) | 2011-01-21 | 2012-01-20 | 用于无线显示器的用户输入返回信道 |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP2666277A1 (zh) |
JP (1) | JP5847846B2 (zh) |
KR (1) | KR101616009B1 (zh) |
CN (1) | CN103404104B (zh) |
WO (1) | WO2012100201A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9558718B2 (en) * | 2014-09-03 | 2017-01-31 | Qualcomm Incorporated | Streaming video data in the graphics domain |
KR102281341B1 (ko) * | 2015-01-26 | 2021-07-23 | 엘지전자 주식회사 | 싱크 디바이스 및 그 제어 방법 |
WO2016186352A1 (ko) * | 2015-05-21 | 2016-11-24 | 엘지전자 주식회사 | Uibc를 통한 음성 명령어 처리 방법 및 장치 |
US20170195735A1 (en) * | 2015-12-31 | 2017-07-06 | Nagravision S.A. | Method and apparatus for peripheral context management |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1842996A (zh) * | 2003-08-26 | 2006-10-04 | 皇家飞利浦电子股份有限公司 | 用于改进视频性能的无线网络中的数据分离和分段 |
CN101360157A (zh) * | 2008-09-27 | 2009-02-04 | 深圳华为通信技术有限公司 | 一种无线通信终端、方法及系统 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6195680B1 (en) * | 1998-07-23 | 2001-02-27 | International Business Machines Corporation | Client-based dynamic switching of streaming servers for fault-tolerance and load balancing |
US20030126188A1 (en) * | 2001-12-27 | 2003-07-03 | Zarlink Semiconductor V.N. Inc. | Generic header parser providing support for data transport protocol independent packet voice solutions |
JP2004265329A (ja) * | 2003-03-04 | 2004-09-24 | Toshiba Corp | 情報処理装置およびプログラム |
WO2005109815A1 (ja) * | 2004-05-10 | 2005-11-17 | Fujitsu Limited | 通信装置、通信方法およびプログラム |
CN102984133B (zh) * | 2004-05-13 | 2016-11-23 | 高通股份有限公司 | 用于分配信息到通信系统的信道的设备 |
US20070018844A1 (en) * | 2005-07-19 | 2007-01-25 | Sehat Sutardja | Two way remote control |
US7733891B2 (en) * | 2005-09-12 | 2010-06-08 | Zeugma Systems Inc. | Methods and apparatus to support dynamic allocation of traffic management resources in a network element |
US8630312B2 (en) * | 2006-12-04 | 2014-01-14 | Samsung Electronics Company, Ltd. | System and method for wireless communication of uncompressed video having connection control protocol |
JP2009021698A (ja) * | 2007-07-10 | 2009-01-29 | Toshiba Corp | 映像表示端末装置、表示切替方法およびプログラム |
US8855192B2 (en) * | 2007-09-05 | 2014-10-07 | Amimon, Ltd. | Device, method and system for transmitting video data between a video source and a video sink |
US8126509B2 (en) * | 2008-08-01 | 2012-02-28 | Mediatek Inc. | Methods for handling packet-switched data transmissions by mobile station with subscriber identity cards and systems utilizing the same |
JP5077181B2 (ja) * | 2008-10-14 | 2012-11-21 | ソニー株式会社 | 情報受信装置、情報送信装置および情報通信システム |
WO2010059005A2 (en) * | 2008-11-24 | 2010-05-27 | Lg Electronics, Inc. | Apparatus for receiving a signal and method of receiving a signal |
US8743906B2 (en) * | 2009-01-23 | 2014-06-03 | Akamai Technologies, Inc. | Scalable seamless digital video stream splicing |
US8411746B2 (en) * | 2009-06-12 | 2013-04-02 | Qualcomm Incorporated | Multiview video coding over MPEG-2 systems |
-
2012
- 2012-01-20 JP JP2013550636A patent/JP5847846B2/ja not_active Expired - Fee Related
- 2012-01-20 CN CN201280010361.3A patent/CN103404104B/zh not_active Expired - Fee Related
- 2012-01-20 KR KR1020137021924A patent/KR101616009B1/ko not_active IP Right Cessation
- 2012-01-20 WO PCT/US2012/022087 patent/WO2012100201A1/en active Application Filing
- 2012-01-20 EP EP12702125.1A patent/EP2666277A1/en not_active Withdrawn
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1842996A (zh) * | 2003-08-26 | 2006-10-04 | 皇家飞利浦电子股份有限公司 | 用于改进视频性能的无线网络中的数据分离和分段 |
CN101360157A (zh) * | 2008-09-27 | 2009-02-04 | 深圳华为通信技术有限公司 | 一种无线通信终端、方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103404104A (zh) | 2013-11-20 |
KR20130126969A (ko) | 2013-11-21 |
EP2666277A1 (en) | 2013-11-27 |
WO2012100201A1 (en) | 2012-07-26 |
JP5847846B2 (ja) | 2016-01-27 |
KR101616009B1 (ko) | 2016-04-27 |
JP2014510434A (ja) | 2014-04-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103392160B (zh) | 用于无线显示器的用户输入返回信道 | |
CN103392359B (zh) | 在无线宿设备和无线源设备之间协商能力 | |
CN103392325B (zh) | 用于无线显示器的用户输入返回信道 | |
CN103404114B (zh) | 用于无线显示器的用户输入返回信道的方法和设备 | |
CN103392161B (zh) | 用于无线显示器的用户输入返回信道 | |
CN103384995B (zh) | 用于无线显示器的用户输入返回信道的方法和装置 | |
CN103392326B (zh) | 用于无线显示器的用户输入返回信道 | |
CN103403649B (zh) | 用于无线显示器的用户输入返回信道 | |
CN103404104B (zh) | 用于无线显示器的用户输入返回信道 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160824 Termination date: 20180120 |
|
CF01 | Termination of patent right due to non-payment of annual fee |